Locale

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Bangla
Bosnian
Czech
Greek
Estonian
Persian
Finnish
Danish
Hindi
Indonesian
Icelandic
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

Saga Saga
Vela Vela
Arya Arya

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Aruna FigeroaUnited KingdomIoni Bowcher RENEWAL
Stacey MacleadJapanElwin Sharvill QUALIFIED
Munro FerenczFranceAmy Elsner PROPOSAL
Emily WhobreyJapanXuxue Feng PROPOSAL
Aika InouyeFranceAmy Elsner QUALIFIED
Costa DilliardCanadaAnna Fali NEGOTIATION
Jennifer AmigonArgentinaElwin Sharvill UNQUALIFIED
David DarakjyBrazilBernardo Dominic NEW
Jennifer AmigonJapanIvan Magalhaes RENEWAL
Misaki RoysterSpainBernardo Dominic UNQUALIFIED
Claire TollnerGermanyIvan Magalhaes NEW
Julie StensethBrazilStephen Shaw NEW
Aika InouyeUnited KingdomAnna Fali QUALIFIED
Jefferson SchemmerCanadaAsiya Javayant RENEWAL
Alejandro PerinFranceElwin Sharvill NEGOTIATION
Clifford RimItalyElwin Sharvill NEGOTIATION
Arvin AlbaresJapanAmy Elsner NEGOTIATION
Adams MorascaBrazilAnna Fali QUALIFIED
Cody SaylorsFranceElwin Sharvill RENEWAL
Jeanfrancois VenereItalyIoni Bowcher NEW
Emily WhobreyFranceBernardo Dominic UNQUALIFIED
Ivar PaprockiArgentinaIoni Bowcher NEGOTIATION
James ButtCanadaStephen Shaw QUALIFIED
Alejandro PerinUnited KingdomElwin Sharvill NEW
Ivar PaprockiUnited KingdomStephen Shaw RENEWAL
Arvin AlbaresRussiaIoni Bowcher QUALIFIED
Faith GillianRussiaXuxue Feng NEW
James ButtRussiaBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaStephen Shaw NEGOTIATION
Jeanfrancois VenereJapanAsiya Javayant UNQUALIFIED
Kadeem FlosiGermanyXuxue Feng PROPOSAL
Cody SaylorsCanadaIoni Bowcher NEW
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Tony FollerJapanBernardo Dominic UNQUALIFIED
James ButtBrazilOnyama Limba PROPOSAL
Maria MarrierFranceAmy Elsner UNQUALIFIED
James ButtIndiaStephen Shaw UNQUALIFIED
Aruna FigeroaUnited KingdomAmy Elsner QUALIFIED
Jefferson SchemmerFranceIoni Bowcher QUALIFIED
Ivar PaprockiIndiaStephen Shaw RENEWAL
Jennifer AmigonAustraliaIvan Magalhaes NEW
Leon OldroydArgentinaAnna Fali RENEWAL
Emily WhobreyRussiaOnyama Limba QUALIFIED
Salvatore StockhamCanadaIoni Bowcher QUALIFIED
Francesco ShinkoBrazilAnna Fali UNQUALIFIED
Chavez BriddickRussiaAnna Fali UNQUALIFIED
Kadeem FlosiItalyOnyama Limba UNQUALIFIED
Alejandro PerinUnited KingdomStephen Shaw NEGOTIATION
Sinclair WaycottCanadaXuxue Feng PROPOSAL
Munro FerenczFranceAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin OstroskyBrazilAmy Elsner RENEWAL
Faith GillianJapanIoni Bowcher QUALIFIED
Cody SaylorsUnited KingdomIoni Bowcher RENEWAL
Ricardo GauchoAustraliaElwin Sharvill NEW
Wickens NestleSpainAnna Fali NEW
Aditya KuskoIndiaOnyama Limba QUALIFIED
Murillo MaletFranceOnyama Limba PROPOSAL
Morrow RutaGermanyAmy Elsner NEW
Jeanfrancois VenereFranceOnyama Limba RENEWAL
Aditya KuskoJapanStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadFrance2026-05-11Dorl, James J Esq RENEWAL89Xuxue Feng
1001Nicolas IturbideSpain2026-05-09Morlong Associates UNQUALIFIED98Elwin Sharvill
1002Nicolas IturbideRussia2026-05-10Rangoni Of Florence RENEWAL13Ivan Magalhaes
1003Jefferson SchemmerIndia2026-05-20Rangoni Of Florence PROPOSAL43Stephen Shaw
1004Julie StensethArgentina2026-04-26Printing Dimensions NEGOTIATION72Onyama Limba
1005Aika InouyeJapan2026-05-18Rousseaux, Michael Esq RENEWAL16Onyama Limba
1006Johnson SergiAustralia2026-04-24Benton, John B Jr PROPOSAL63Xuxue Feng
1007Aruna FigeroaArgentina2026-05-16Chanay, Jeffrey A Esq NEGOTIATION44Onyama Limba
1008Aruna FigeroaCanada2026-05-01Feiner Bros NEW30Elwin Sharvill
1009Isabel BowleyItaly2026-05-01King, Christopher A Esq QUALIFIED9Anna Fali
1010Aika InouyeAustralia2026-05-02Rangoni Of Florence PROPOSAL34Ivan Magalhaes
1011Kaitlin OstroskyArgentina2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED50Xuxue Feng
1012Clifford RimAustralia2026-05-17King, Christopher A Esq UNQUALIFIED59Ioni Bowcher
1013Morrow RutaItaly2026-05-03Morlong Associates QUALIFIED82Xuxue Feng
1014Deepesh ChuiJapan2026-04-24Chanay, Jeffrey A Esq QUALIFIED9Ioni Bowcher
1015David DarakjyRussia2026-05-16Buckley Miller Wright PROPOSAL48Xuxue Feng
1016Jefferson SchemmerCanada2026-05-14Dorl, James J Esq RENEWAL39Anna Fali
1017Chavez BriddickCanada2026-04-27Rangoni Of Florence UNQUALIFIED76Anna Fali
1018Maisha RulapaughIndia2026-04-22Rangoni Of Florence RENEWAL80Asiya Javayant
1019Ivar PaprockiAustralia2026-05-06Rangoni Of Florence UNQUALIFIED52Onyama Limba
1020Aruna FigeroaBrazil2026-05-04Chanay, Jeffrey A Esq PROPOSAL42Stephen Shaw
1021Arvin AlbaresSpain2026-05-09King, Christopher A Esq NEGOTIATION50Amy Elsner
1022Rodrigues CampainAustralia2026-05-11Benton, John B Jr UNQUALIFIED66Amy Elsner
1023Francesco ShinkoFrance2026-05-02Buckley Miller Wright QUALIFIED21Asiya Javayant
1024Aika InouyeFrance2026-05-01Feiner Bros PROPOSAL99Ivan Magalhaes
1025Antonio CaudyItaly2026-05-02Chanay, Jeffrey A Esq UNQUALIFIED30Xuxue Feng
1026Salvatore StockhamItaly2026-05-04Feiner Bros QUALIFIED51Xuxue Feng
1027Salvatore StockhamArgentina2026-05-08Buckley Miller Wright UNQUALIFIED51Xuxue Feng
1028Johnson SergiCanada2026-04-27Printing Dimensions PROPOSAL63Stephen Shaw
1029Leon OldroydBrazil2026-05-19Morlong Associates UNQUALIFIED27Ioni Bowcher
1030Leon OldroydFrance2026-05-15Commercial Press NEGOTIATION40Elwin Sharvill
1031Costa DilliardItaly2026-05-07Printing Dimensions QUALIFIED82Ioni Bowcher
1032Leja CaldareraJapan2026-04-25Commercial Press QUALIFIED99Asiya Javayant
1033Leon OldroydFrance2026-05-19Chapman, Ross E Esq PROPOSAL18Onyama Limba
1034Izzy GarufiItaly2026-05-14Chanay, Jeffrey A Esq QUALIFIED17Stephen Shaw
1035Emily WhobreyGermany2026-05-07Rousseaux, Michael Esq NEW58Elwin Sharvill
1036Smith GlickIndia2026-05-15Buckley Miller Wright UNQUALIFIED16Asiya Javayant
1037Alejandro PerinSpain2026-04-30Truhlar And Truhlar Attys NEGOTIATION99Anna Fali
1038Ricardo GauchoUnited Kingdom2026-04-30Printing Dimensions RENEWAL73Stephen Shaw
1039Ricardo GauchoCanada2026-05-18Rangoni Of Florence NEW89Amy Elsner
1040Munro FerenczAustralia2026-05-16Benton, John B Jr NEW93Ioni Bowcher
1041Sinclair WaycottCanada2026-05-12Printing Dimensions UNQUALIFIED93Anna Fali
1042Leja CaldareraIndia2026-05-03Commercial Press NEGOTIATION45Onyama Limba
1043Tony FollerUnited Kingdom2026-05-06Rangoni Of Florence PROPOSAL97Anna Fali
1044Claire TollnerCanada2026-05-04Chanay, Jeffrey A Esq UNQUALIFIED2Xuxue Feng
1045Greenwood BologniaCanada2026-05-20Commercial Press UNQUALIFIED35Elwin Sharvill
1046Kaitlin OstroskyFrance2026-05-11Morlong Associates UNQUALIFIED6Ivan Magalhaes
1047Misaki RoysterIndia2026-05-05Rousseaux, Michael Esq NEW24Onyama Limba
1048Mujtaba NickaIndia2026-05-03Printing Dimensions NEGOTIATION42Amy Elsner
1049Kaitlin OstroskyItaly2026-05-12Printing Dimensions QUALIFIED34Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David DarakjyItalyAsiya Javayant UNQUALIFIED
Maisha RulapaughIndiaStephen Shaw QUALIFIED
Francesco ShinkoBrazilElwin Sharvill RENEWAL
Jeanfrancois VenereGermanyBernardo Dominic NEGOTIATION
Nicolas IturbideRussiaAsiya Javayant RENEWAL
Ashley DoeBrazilIoni Bowcher QUALIFIED
Isabel BowleyIndiaIoni Bowcher RENEWAL
Ashley DoeCanadaStephen Shaw QUALIFIED
Aika InouyeUnited KingdomStephen Shaw NEGOTIATION
David DarakjyRussiaStephen Shaw NEGOTIATION
Ivar PaprockiSpainIvan Magalhaes NEGOTIATION
Mujtaba NickaCanadaXuxue Feng UNQUALIFIED
Costa DilliardAustraliaAnna Fali UNQUALIFIED
Julie StensethItalyAsiya Javayant PROPOSAL
Darci PoquetteBrazilIvan Magalhaes QUALIFIED
Mayumi KolmetzSpainIvan Magalhaes PROPOSAL
Octavia MaletBrazilIvan Magalhaes NEW
Kaitlin OstroskyIndiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereGermanyAsiya Javayant PROPOSAL
James ButtCanadaAmy Elsner PROPOSAL
Aditya KuskoCanadaStephen Shaw NEGOTIATION
Deepesh ChuiFranceIvan Magalhaes NEGOTIATION
Adams MorascaBrazilIoni Bowcher NEW
Isabel BowleyRussiaBernardo Dominic RENEWAL
Jefferson SchemmerJapanIoni Bowcher RENEWAL
Chavez BriddickUnited KingdomBernardo Dominic NEGOTIATION
Isabel BowleyBrazilAnna Fali NEW
Greenwood BologniaUnited KingdomAnna Fali NEW
Ivar PaprockiGermanyAmy Elsner UNQUALIFIED
Aditya KuskoGermanyIvan Magalhaes NEGOTIATION
Kadeem FlosiAustraliaXuxue Feng NEW
Ricardo GauchoSpainIoni Bowcher QUALIFIED
Arvin AlbaresArgentinaAsiya Javayant PROPOSAL
James ButtGermanyIoni Bowcher QUALIFIED
Cody SaylorsFranceAnna Fali QUALIFIED
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Johnson SergiItalyStephen Shaw QUALIFIED
Maisha RulapaughArgentinaElwin Sharvill UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Ricardo GauchoBrazilAmy Elsner PROPOSAL
Greenwood BologniaCanadaIvan Magalhaes QUALIFIED
Ricardo GauchoItalyXuxue Feng NEGOTIATION
Aruna FigeroaRussiaAsiya Javayant RENEWAL
Darci PoquetteJapanBernardo Dominic PROPOSAL
Jeanfrancois VenereUnited KingdomAsiya Javayant UNQUALIFIED
Clifford RimIndiaElwin Sharvill RENEWAL
Jefferson SchemmerFranceElwin Sharvill NEGOTIATION
Darci PoquetteBrazilStephen Shaw PROPOSAL
Wickens NestleItalyBernardo Dominic RENEWAL
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Claire Tollner
Costa Dilliard
Salvatore Stockham
Darci Poquette
Nicolas Iturbide
Aika Inouye
Smith Glick
Emily Whobrey
James Butt
Leon Oldroyd
Octavia Malet
Faith Gillian
Francesco Shinko
Aika Inouye
Mayumi Kolmetz
Mujtaba Nicka
Ivar Paprocki
Clifford Rim
Leja Caldarera
Maria Marrier
Julie Stenseth
Arvin Albares
Antonio Caudy
Jennifer Amigon
Alejandro Perin
Leja Caldarera
Salvatore Stockham
Ivar Paprocki
Kadeem Flosi
Aruna Figeroa
Deepesh Chui
Kadeem Flosi
Ivar Paprocki
James Butt
Emily Whobrey
Misaki Royster
Clifford Rim
Deepesh Chui
Ricardo Gaucho
Stacey Maclead
Adams Morasca
Ivar Paprocki
Jefferson Schemmer
Kadeem Flosi
Misaki Royster
Stacey Maclead
Stacey Maclead
Mayumi Kolmetz
Kaitlin Ostrosky
Wickens Nestle
IdCountryDate
1000Russia2026-05-20
1001Italy2026-05-19
1002Canada2026-05-19
1003Italy2026-04-23
1004Brazil2026-04-22
1005India2026-05-18
1006India2026-05-08
1007Japan2026-05-09
1008Russia2026-05-17
1009Australia2026-04-23
1010Spain2026-05-19
1011United Kingdom2026-05-21
1012Argentina2026-05-16
1013Spain2026-05-10
1014Brazil2026-04-30
1015Italy2026-04-23
1016Germany2026-05-02
1017Argentina2026-05-19
1018United Kingdom2026-05-09
1019Australia2026-05-20
1020Australia2026-05-01
1021Spain2026-05-18
1022Spain2026-05-10
1023Argentina2026-05-10
1024Spain2026-05-03
1025Germany2026-05-17
1026Germany2026-04-27
1027United Kingdom2026-04-26
1028Australia2026-05-21
1029Japan2026-05-01
1030Germany2026-05-15
1031Australia2026-05-03
1032Canada2026-04-26
1033Spain2026-05-01
1034India2026-05-17
1035Australia2026-05-19
1036France2026-05-17
1037France2026-05-11
1038United Kingdom2026-05-21
1039Canada2026-04-28
1040Japan2026-05-21
1041Japan2026-05-02
1042Canada2026-05-21
1043Australia2026-04-26
1044Spain2026-05-17
1045United Kingdom2026-05-04
1046Australia2026-05-07
1047France2026-05-01
1048Russia2026-04-27
1049France2026-04-29

On-Demand Data

NameIdCountryDate
Mayumi Kolmetz1000Russia2026-04-23
Ricardo Gaucho1001Germany2026-05-17
Greenwood Bolognia1002Japan2026-04-24
Sinclair Waycott1003Canada2026-05-13
Darci Poquette1004India2026-04-28
Maria Marrier1005France2026-05-02
Julie Stenseth1006Canada2026-05-19
Ivar Paprocki1007United Kingdom2026-04-30
Arvin Albares1008India2026-05-13
Nicolas Iturbide1009Australia2026-05-11
Ivar Paprocki1010United Kingdom2026-04-27
Antonio Caudy1011Japan2026-04-26
Izzy Garufi1012Russia2026-04-22
Emily Whobrey1013Argentina2026-05-08
Jefferson Schemmer1014Spain2026-05-12
Octavia Malet1015Russia2026-04-24
Adams Morasca1016Argentina2026-05-01
Cody Saylors1017Canada2026-05-21
Murillo Malet1018Spain2026-04-22
Salvatore Stockham1019Spain2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaCanadaBernardo Dominic PROPOSAL
Silvio SlusarskiRussiaOnyama Limba UNQUALIFIED
Ivar PaprockiCanadaXuxue Feng QUALIFIED
Kadeem FlosiAustraliaAnna Fali UNQUALIFIED
Leon OldroydSpainElwin Sharvill NEW
Tony FollerFranceIoni Bowcher RENEWAL
Ashley DoeIndiaAsiya Javayant QUALIFIED
Salvatore StockhamUnited KingdomAnna Fali PROPOSAL
Smith GlickUnited KingdomOnyama Limba NEGOTIATION
Smith GlickFranceElwin Sharvill UNQUALIFIED
Tony FollerCanadaOnyama Limba NEGOTIATION
Ivar PaprockiJapanXuxue Feng UNQUALIFIED
Juan WieserBrazilStephen Shaw RENEWAL
Aika InouyeIndiaXuxue Feng NEGOTIATION
Adams MorascaBrazilAnna Fali QUALIFIED
Johnson SergiSpainAmy Elsner NEW
Salvatore StockhamAustraliaStephen Shaw NEGOTIATION
Sinclair WaycottArgentinaAnna Fali NEW
Ricardo GauchoBrazilOnyama Limba NEGOTIATION
Sinclair WaycottAustraliaStephen Shaw RENEWAL
Rodrigues CampainIndiaStephen Shaw UNQUALIFIED
Emily WhobreyRussiaIvan Magalhaes QUALIFIED
Emily WhobreyUnited KingdomAmy Elsner NEGOTIATION
Leon OldroydArgentinaAsiya Javayant RENEWAL
Aditya KuskoCanadaAsiya Javayant NEGOTIATION
Ricardo GauchoFranceIvan Magalhaes NEGOTIATION
Clifford RimItalyStephen Shaw QUALIFIED
Mujtaba NickaIndiaIvan Magalhaes UNQUALIFIED
Claire TollnerJapanXuxue Feng QUALIFIED
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaAnna Fali NEW
Alejandro PerinSpainAsiya Javayant RENEWAL
Claire TollnerGermanyStephen Shaw PROPOSAL
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Cody SaylorsBrazilIoni Bowcher NEW
Claire TollnerBrazilBernardo Dominic UNQUALIFIED
Sinclair WaycottUnited KingdomElwin Sharvill PROPOSAL
James ButtBrazilStephen Shaw PROPOSAL
Salvatore StockhamFranceAnna Fali UNQUALIFIED
Silvio SlusarskiGermanyIoni Bowcher RENEWAL

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.statusName}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>