Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
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
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

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

Vertical
NameCountryRepresentativeStatus
Jones W PerinSpainIvan Magalhaes UNQUALIFIED
Chavez P AmigonItalyIvan Magalhaes NEGOTIATION
Juan Y WaycottArgentinaStephen Shaw PROPOSAL
Kaitlin E OldroydRussiaIoni Bowcher QUALIFIED
Mujtaba L StockhamSpainIoni Bowcher NEW
Greenwood R InouyeItalyOnyama Limba NEW
Isabel H OldroydCanadaStephen Shaw NEW
Mayumi K FollerRussiaElwin Sharvill QUALIFIED
Emily X MacleadUnited KingdomOnyama Limba QUALIFIED
Salvatore K MacleadBrazilBernardo Dominic NEW
Greenwood O RutaGermanyBernardo Dominic RENEWAL
Mujtaba X WaycottItalyBernardo Dominic UNQUALIFIED
Alejandro Z OstroskyFranceIvan Magalhaes QUALIFIED
Francesco W AlbaresFranceIoni Bowcher RENEWAL
Tony F DoeSpainAsiya Javayant QUALIFIED
Clifford E SchemmerAustraliaXuxue Feng QUALIFIED
Rodrigues N SergiItalyAsiya Javayant PROPOSAL
Mayumi O RimCanadaStephen Shaw RENEWAL
Juan B TollnerGermanyAnna Fali RENEWAL
Octavia X FollerSpainAnna Fali UNQUALIFIED
James R FerenczRussiaBernardo Dominic NEGOTIATION
Morrow Y PerinFranceXuxue Feng RENEWAL
Adams P AlbaresJapanAmy Elsner QUALIFIED
Jefferson Q NestleAustraliaElwin Sharvill NEW
Stacey C VenereSpainBernardo Dominic NEW
Ashley X ButtIndiaIoni Bowcher UNQUALIFIED
Costa Z RoysterFranceIoni Bowcher QUALIFIED
Juan A OstroskyArgentinaAsiya Javayant UNQUALIFIED
Clifford Y InouyeUnited KingdomOnyama Limba RENEWAL
Arvin S OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Emily D SergiArgentinaElwin Sharvill RENEWAL
Claire F GlickFranceIoni Bowcher NEGOTIATION
Morrow R InouyeFranceAmy Elsner UNQUALIFIED
Chavez Q MorascaBrazilIoni Bowcher UNQUALIFIED
Julie F CampainSpainXuxue Feng NEW
Morrow N SergiUnited KingdomIoni Bowcher PROPOSAL
Jennifer Y FollerUnited KingdomElwin Sharvill NEGOTIATION
Aditya J MacleadGermanyOnyama Limba PROPOSAL
Arvin I ShinkoSpainIvan Magalhaes PROPOSAL
Deepesh K PaprockiBrazilAmy Elsner NEW
Jeanfrancois Z MarrierArgentinaStephen Shaw NEW
Alejandro P KuskoItalyIvan Magalhaes NEW
Costa G GarufiSpainAmy Elsner RENEWAL
Costa U BologniaRussiaAmy Elsner NEW
Maria B CampainBrazilXuxue Feng NEGOTIATION
Adams W RimGermanyAmy Elsner RENEWAL
Murillo V FlosiArgentinaXuxue Feng UNQUALIFIED
Mujtaba T MaletRussiaAmy Elsner UNQUALIFIED
Aditya R GillianBrazilElwin Sharvill QUALIFIED
Faith X VenereSpainIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Stacey N GlickGermanyOnyama Limba UNQUALIFIED
Tony H ButtArgentinaXuxue Feng QUALIFIED
Kadeem L RulapaughItalyAnna Fali NEW
Faith O StensethFranceStephen Shaw QUALIFIED
Silvio I GauchoItalyXuxue Feng PROPOSAL
Julie L CaldareraJapanIvan Magalhaes PROPOSAL
Rodrigues C FollerUnited KingdomOnyama Limba NEW
Salvatore N SaylorsItalyAnna Fali PROPOSAL
Aika Q SchemmerIndiaElwin Sharvill RENEWAL
Arvin W FigeroaIndiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James D TollnerGermany2026-07-02Truhlar And Truhlar Attys UNQUALIFIED9Ioni Bowcher
1001David V SaylorsBrazil2026-06-29Feltz Printing Service UNQUALIFIED17Asiya Javayant
1002Izzy Z RutaSpain2026-06-28Chapman, Ross E Esq UNQUALIFIED93Onyama Limba
1003Antonio D CaldareraCanada2026-06-29Printing Dimensions QUALIFIED24Elwin Sharvill
1004Claire N StensethIndia2026-06-22Chemel, James L Cpa NEW79Xuxue Feng
1005Morrow D ShinkoCanada2026-06-08Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1006Aika R CaudyCanada2026-06-14Feltz Printing Service RENEWAL33Stephen Shaw
1007Kadeem Y IturbideSpain2026-06-29Rousseaux, Michael Esq QUALIFIED87Bernardo Dominic
1008Greenwood X WhobreyAustralia2026-06-21Morlong Associates NEW38Ivan Magalhaes
1009Sinclair G BowleyBrazil2026-06-15Chemel, James L Cpa NEGOTIATION44Ioni Bowcher
1010Chavez D FigeroaGermany2026-06-16Chemel, James L Cpa PROPOSAL98Onyama Limba
1011Leja Y SaylorsBrazil2026-06-24Commercial Press QUALIFIED70Elwin Sharvill
1012Juan Q RutaJapan2026-06-16Truhlar And Truhlar Attys RENEWAL35Onyama Limba
1013James K GarufiCanada2026-06-30Feltz Printing Service PROPOSAL57Ivan Magalhaes
1014Sinclair B VocelkaRussia2026-06-27Buckley Miller Wright PROPOSAL94Xuxue Feng
1015Misaki G ButtJapan2026-06-24Morlong Associates UNQUALIFIED33Ivan Magalhaes
1016Costa Y CaudyAustralia2026-06-06Rousseaux, Michael Esq NEW73Ivan Magalhaes
1017Greenwood Z FollerItaly2026-06-13Morlong Associates PROPOSAL24Amy Elsner
1018Wickens X MacleadCanada2026-06-04Morlong Associates UNQUALIFIED31Ioni Bowcher
1019Alejandro S StockhamRussia2026-07-02Feltz Printing Service NEW11Asiya Javayant
1020Cody U WhobreyAustralia2026-06-14Chemel, James L Cpa PROPOSAL20Anna Fali
1021Octavia N PerinItaly2026-06-15Morlong Associates NEGOTIATION83Ivan Magalhaes
1022Jennifer U AlbaresBrazil2026-06-06Buckley Miller Wright RENEWAL13Bernardo Dominic
1023Kaitlin Q SergiItaly2026-06-10Buckley Miller Wright QUALIFIED61Xuxue Feng
1024James X MaletUnited Kingdom2026-06-12King, Christopher A Esq QUALIFIED94Amy Elsner
1025Isabel G RimIndia2026-06-14Rousseaux, Michael Esq NEW31Bernardo Dominic
1026Jennifer Y RutaJapan2026-06-10Morlong Associates NEGOTIATION99Amy Elsner
1027Alejandro C BologniaRussia2026-06-22Chanay, Jeffrey A Esq NEGOTIATION82Asiya Javayant
1028Izzy G FerenczIndia2026-06-13Truhlar And Truhlar Attys NEGOTIATION70Bernardo Dominic
1029Antonio M SlusarskiFrance2026-06-26King, Christopher A Esq NEGOTIATION70Elwin Sharvill
1030Stacey G RimIndia2026-06-29Printing Dimensions PROPOSAL45Elwin Sharvill
1031Costa W RulapaughJapan2026-06-09Rousseaux, Michael Esq PROPOSAL40Bernardo Dominic
1032Arvin F FollerFrance2026-06-05Truhlar And Truhlar Attys NEGOTIATION24Bernardo Dominic
1033Stacey U SaylorsCanada2026-06-26Buckley Miller Wright UNQUALIFIED13Onyama Limba
1034Stacey L AmigonJapan2026-06-06King, Christopher A Esq NEGOTIATION14Anna Fali
1035Aruna O RoysterBrazil2026-06-09Chemel, James L Cpa RENEWAL63Asiya Javayant
1036Darci E CaldareraArgentina2026-06-20Printing Dimensions UNQUALIFIED35Asiya Javayant
1037Munro N MarrierRussia2026-06-06Rousseaux, Michael Esq NEGOTIATION53Ivan Magalhaes
1038Munro T ShinkoIndia2026-06-06Feltz Printing Service UNQUALIFIED68Ioni Bowcher
1039Darci U MorascaIndia2026-06-07Rangoni Of Florence RENEWAL5Ioni Bowcher
1040Aika N ChuiSpain2026-06-19Chanay, Jeffrey A Esq QUALIFIED90Bernardo Dominic
1041Maria L FigeroaIndia2026-06-30Chemel, James L Cpa RENEWAL33Anna Fali
1042Izzy L KolmetzItaly2026-07-02Feltz Printing Service PROPOSAL87Anna Fali
1043Leja T VenereBrazil2026-06-05Chanay, Jeffrey A Esq NEW28Bernardo Dominic
1044Leon R PerinItaly2026-07-01Dorl, James J Esq NEGOTIATION41Ioni Bowcher
1045Adams K MaletArgentina2026-06-30Printing Dimensions NEGOTIATION99Onyama Limba
1046Smith T CaldareraGermany2026-07-02Buckley Miller Wright QUALIFIED48Xuxue Feng
1047Maisha K ChuiItaly2026-06-21Benton, John B Jr UNQUALIFIED25Stephen Shaw
1048Faith M SaylorsAustralia2026-06-28Chanay, Jeffrey A Esq NEGOTIATION67Anna Fali
1049Adams G MaletIndia2026-06-23Rangoni Of Florence PROPOSAL0Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Clifford O WaycottCanadaAsiya Javayant RENEWAL
Claire D OldroydCanadaElwin Sharvill PROPOSAL
Jennifer D RulapaughArgentinaAmy Elsner RENEWAL
Munro W MaletIndiaIoni Bowcher UNQUALIFIED
Ashley O CaudyItalyIvan Magalhaes QUALIFIED
James D FlosiGermanyElwin Sharvill UNQUALIFIED
Nicolas A OstroskyGermanyOnyama Limba UNQUALIFIED
Leja W StensethFranceAsiya Javayant PROPOSAL
Faith S RulapaughGermanyOnyama Limba NEW
Leja T OstroskyAustraliaAsiya Javayant RENEWAL
Costa O MaletBrazilAsiya Javayant NEW
Kaitlin Q IturbideFranceAmy Elsner PROPOSAL
Emily B VocelkaGermanyAsiya Javayant NEW
Mujtaba C SchemmerFranceAnna Fali RENEWAL
Ricardo U RulapaughCanadaAnna Fali NEW
Juan S ShinkoCanadaAsiya Javayant RENEWAL
Darci O RoysterRussiaIvan Magalhaes QUALIFIED
Aruna A PerinIndiaAnna Fali QUALIFIED
Adams G DarakjyUnited KingdomBernardo Dominic RENEWAL
Claire V AmigonFranceAmy Elsner NEGOTIATION
Sinclair Y WaycottBrazilOnyama Limba NEW
James J WaycottCanadaIvan Magalhaes QUALIFIED
Jefferson V ShinkoFranceAsiya Javayant NEGOTIATION
Leja Q MaletGermanyOnyama Limba UNQUALIFIED
Cody Y WhobreyUnited KingdomXuxue Feng NEW
Munro U IturbideCanadaElwin Sharvill QUALIFIED
Clifford O AlbaresFranceOnyama Limba NEGOTIATION
Rodrigues O StockhamGermanyAnna Fali UNQUALIFIED
Silvio T StensethGermanyAmy Elsner UNQUALIFIED
Murillo B VocelkaGermanyStephen Shaw NEGOTIATION
Ricardo M SaylorsSpainIoni Bowcher NEW
Aruna L SchemmerRussiaBernardo Dominic NEW
Nicolas R OldroydJapanAnna Fali RENEWAL
Jefferson G AmigonBrazilXuxue Feng PROPOSAL
Arvin C WaycottAustraliaElwin Sharvill QUALIFIED
Aika M FollerAustraliaStephen Shaw PROPOSAL
Stacey C VenereIndiaStephen Shaw UNQUALIFIED
Leja D VocelkaFranceAmy Elsner NEW
Johnson X OldroydBrazilXuxue Feng UNQUALIFIED
Arvin K NickaJapanElwin Sharvill NEW
Sinclair U GarufiAustraliaElwin Sharvill UNQUALIFIED
Misaki Z GillianArgentinaIvan Magalhaes NEW
Juan J VocelkaAustraliaAmy Elsner UNQUALIFIED
Murillo R ChuiBrazilOnyama Limba QUALIFIED
Cody W BowleyBrazilAsiya Javayant QUALIFIED
Aruna S PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Juan V DoeCanadaIoni Bowcher NEW
Chavez J SaylorsJapanStephen Shaw QUALIFIED
Rodrigues Z BowleyIndiaBernardo Dominic NEGOTIATION
Darci R PoquetteJapanIvan Magalhaes NEW
Frozen Columns
Name
Octavia W Wieser
Jeanfrancois X Marrier
Jefferson B Briddick
Emily Y Maclead
Claire G Royster
Sinclair S Caudy
Maisha Z Ferencz
Morrow Z Marrier
Wickens G Briddick
Chavez P Dilliard
Aruna X Glick
Kaitlin B Garufi
David U Ferencz
Tony S Glick
Ricardo R Glick
Nicolas D Malet
Arvin T Garufi
Cody T Schemmer
James B Briddick
Leja T Malet
Johnson W Paprocki
Greenwood V Caldarera
Stacey T Butt
Aruna M Gillian
Aruna W Kusko
Murillo C Stockham
Jeanfrancois X Marrier
Stacey H Flosi
Salvatore U Poquette
Maria V Figeroa
Julie T Royster
Tony V Campain
James A Malet
Juan G Poquette
Misaki Y Briddick
Rodrigues N Caldarera
Clifford R Rulapaugh
Julie J Poquette
Emily D Stenseth
Adams R Paprocki
Greenwood X Foller
Aditya J Iturbide
Jennifer B Vocelka
Costa O Bolognia
James U Royster
David M Foller
Mujtaba C Morasca
Maria X Oldroyd
Maisha V Shinko
Wickens S Amigon
IdCountryDate
1000Brazil2026-06-03
1001Italy2026-06-19
1002United Kingdom2026-06-09
1003United Kingdom2026-06-30
1004Japan2026-06-17
1005Argentina2026-06-08
1006Argentina2026-06-21
1007Russia2026-06-20
1008Brazil2026-06-14
1009Japan2026-06-10
1010Canada2026-06-20
1011Russia2026-06-17
1012Spain2026-06-19
1013Spain2026-06-14
1014Australia2026-06-22
1015Australia2026-06-20
1016Brazil2026-06-19
1017Germany2026-06-06
1018Italy2026-06-05
1019Germany2026-06-19
1020Germany2026-06-11
1021Spain2026-06-17
1022Argentina2026-06-21
1023India2026-06-19
1024Canada2026-06-12
1025Spain2026-06-17
1026Russia2026-06-18
1027Argentina2026-06-10
1028India2026-06-08
1029Germany2026-06-10
1030India2026-06-10
1031Canada2026-06-20
1032Russia2026-06-22
1033Italy2026-06-05
1034Germany2026-06-18
1035Australia2026-06-04
1036Spain2026-06-27
1037Canada2026-06-04
1038France2026-06-26
1039United Kingdom2026-07-02
1040Brazil2026-06-14
1041Italy2026-06-23
1042Japan2026-06-30
1043Germany2026-06-13
1044Argentina2026-06-29
1045Canada2026-06-29
1046Italy2026-06-19
1047Italy2026-06-30
1048Brazil2026-06-07
1049India2026-06-25

On-Demand Data

NameIdCountryDate
Juan D Inouye1000Spain2026-06-07
Arvin Q Figeroa1001Russia2026-06-20
Francesco Y Inouye1002Russia2026-06-11
Clifford B Stenseth1003Russia2026-07-02
Nicolas N Malet1004Brazil2026-06-21
Johnson W Nicka1005Australia2026-06-03
Juan R Campain1006Japan2026-06-30
Antonio K Shinko1007Brazil2026-06-08
Alejandro F Venere1008Canada2026-06-17
Costa Z Rim1009Italy2026-06-20
Silvio W Morasca1010Brazil2026-06-25
Tony E Malet1011France2026-06-07
Jennifer Y Gillian1012Canada2026-06-09
Alejandro A Albares1013Italy2026-06-30
Morrow D Sergi1014United Kingdom2026-06-15
Antonio M Stockham1015France2026-06-14
Sinclair Q Iturbide1016United Kingdom2026-06-22
James A Malet1017Russia2026-07-02
Emily G Vocelka1018United Kingdom2026-06-19
Maisha W Slusarski1019France2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba L WieserGermanyElwin Sharvill NEW
Isabel W SaylorsGermanyOnyama Limba NEGOTIATION
Darci T MacleadSpainIoni Bowcher UNQUALIFIED
Francesco K DoeAustraliaAsiya Javayant NEGOTIATION
Nicolas J GlickJapanIvan Magalhaes QUALIFIED
Darci D WhobreyBrazilStephen Shaw RENEWAL
Alejandro L SergiUnited KingdomOnyama Limba NEGOTIATION
Antonio N GlickUnited KingdomStephen Shaw NEW
Costa N RulapaughRussiaXuxue Feng QUALIFIED
Kadeem G OldroydRussiaXuxue Feng NEGOTIATION
Sinclair S RutaGermanyIoni Bowcher NEW
Maisha U MarrierArgentinaElwin Sharvill PROPOSAL
Aditya W FollerGermanyAmy Elsner UNQUALIFIED
Cody E RoysterGermanyAmy Elsner UNQUALIFIED
Octavia S ShinkoUnited KingdomOnyama Limba NEW
Greenwood C GauchoJapanElwin Sharvill RENEWAL
Claire V InouyeGermanyXuxue Feng PROPOSAL
Jones C NestleIndiaAmy Elsner NEW
Kaitlin P SaylorsJapanAnna Fali NEGOTIATION
Cody T CaldareraArgentinaOnyama Limba NEGOTIATION
Maisha C WaycottSpainStephen Shaw RENEWAL
Aruna R StockhamBrazilAsiya Javayant QUALIFIED
Julie L WieserCanadaOnyama Limba NEGOTIATION
Aditya E PoquetteItalyXuxue Feng QUALIFIED
Murillo I SchemmerJapanAmy Elsner PROPOSAL
Arvin R StensethRussiaOnyama Limba RENEWAL
Francesco U MorascaGermanyAnna Fali QUALIFIED
Faith S StensethItalyIvan Magalhaes PROPOSAL
Jennifer Q RutaBrazilElwin Sharvill NEW
Greenwood C MarrierItalyAnna Fali NEGOTIATION
Mayumi B KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya E RoysterAustraliaElwin Sharvill QUALIFIED
Antonio B AmigonItalyStephen Shaw PROPOSAL
Deepesh M SlusarskiArgentinaAmy Elsner QUALIFIED
Ricardo W FigeroaIndiaIoni Bowcher RENEWAL
Antonio C PaprockiRussiaStephen Shaw NEW
Mayumi H FlosiAustraliaStephen Shaw NEGOTIATION
Sinclair A GauchoBrazilXuxue Feng RENEWAL
Cody I GlickBrazilBernardo Dominic PROPOSAL
David Q FerenczBrazilXuxue Feng QUALIFIED

<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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>