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
Ivar O GillianRussiaAmy Elsner NEW
Wickens M RutaItalyElwin Sharvill QUALIFIED
James M PaprockiArgentinaAnna Fali NEW
Isabel O AmigonIndiaBernardo Dominic QUALIFIED
Ricardo D OstroskyCanadaAsiya Javayant PROPOSAL
Smith P SchemmerRussiaStephen Shaw UNQUALIFIED
Murillo V AmigonArgentinaOnyama Limba UNQUALIFIED
Salvatore R DilliardIndiaAmy Elsner RENEWAL
Claire K CaudySpainBernardo Dominic PROPOSAL
Leja S InouyeFranceOnyama Limba RENEWAL
Aika O PerinRussiaXuxue Feng RENEWAL
Kaitlin A MaletRussiaElwin Sharvill PROPOSAL
Nicolas W StockhamArgentinaElwin Sharvill PROPOSAL
Cody W BowleyCanadaAnna Fali PROPOSAL
Isabel Z RulapaughAustraliaXuxue Feng UNQUALIFIED
Ivar J GlickRussiaIvan Magalhaes QUALIFIED
Stacey O PoquetteIndiaIvan Magalhaes UNQUALIFIED
David J PaprockiJapanIoni Bowcher PROPOSAL
Mujtaba Y DilliardJapanStephen Shaw NEGOTIATION
Ivar N ButtCanadaAsiya Javayant PROPOSAL
Alejandro L MorascaAustraliaStephen Shaw QUALIFIED
Jennifer Q IturbideCanadaElwin Sharvill PROPOSAL
Chavez D BriddickFranceIvan Magalhaes QUALIFIED
Juan F GarufiAustraliaIoni Bowcher NEGOTIATION
Juan M MaletAustraliaAnna Fali NEW
Ashley J NestleUnited KingdomOnyama Limba UNQUALIFIED
Julie R VenereBrazilOnyama Limba QUALIFIED
Smith S WaycottBrazilBernardo Dominic PROPOSAL
Munro X GlickUnited KingdomAnna Fali UNQUALIFIED
Antonio M OstroskyAustraliaAnna Fali UNQUALIFIED
Jones T ButtGermanyOnyama Limba RENEWAL
Isabel Y TollnerBrazilOnyama Limba UNQUALIFIED
Nicolas E RoysterRussiaAmy Elsner QUALIFIED
Cody G StensethFranceBernardo Dominic NEW
Smith F OstroskyAustraliaAmy Elsner UNQUALIFIED
Alejandro N SlusarskiRussiaIoni Bowcher PROPOSAL
Salvatore M BriddickAustraliaIoni Bowcher UNQUALIFIED
David W GarufiArgentinaIvan Magalhaes RENEWAL
Faith L FlosiGermanyXuxue Feng NEGOTIATION
Leon X RutaJapanElwin Sharvill QUALIFIED
Darci L RoysterAustraliaXuxue Feng UNQUALIFIED
Munro I GillianGermanyAnna Fali NEW
Costa S MacleadBrazilAnna Fali QUALIFIED
Octavia J MaletUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem T BowleyBrazilXuxue Feng RENEWAL
Jones M SaylorsArgentinaElwin Sharvill UNQUALIFIED
Murillo V NickaRussiaAnna Fali QUALIFIED
Octavia N FollerRussiaStephen Shaw PROPOSAL
Jennifer Z OstroskySpainIvan Magalhaes PROPOSAL
Rodrigues K FerenczIndiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya G SaylorsSpainIvan Magalhaes UNQUALIFIED
Ashley L RoysterAustraliaOnyama Limba QUALIFIED
Morrow W GillianBrazilAnna Fali NEW
Sinclair K DilliardAustraliaElwin Sharvill RENEWAL
Adams P GarufiArgentinaIvan Magalhaes PROPOSAL
Leon R FerenczSpainStephen Shaw UNQUALIFIED
Sinclair T CampainFranceAmy Elsner NEGOTIATION
Munro W MaletFranceIoni Bowcher PROPOSAL
Clifford U MorascaArgentinaElwin Sharvill QUALIFIED
Octavia A CaldareraItalyElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie K ButtUnited Kingdom2026-08-07Rousseaux, Michael Esq PROPOSAL37Anna Fali
1001Maria L RimIndia2026-08-10King, Christopher A Esq QUALIFIED17Elwin Sharvill
1002Ashley X BowleyBrazil2026-08-02Feltz Printing Service NEW0Bernardo Dominic
1003Emily Y FigeroaAustralia2026-08-02Chemel, James L Cpa NEW30Stephen Shaw
1004Munro I SchemmerItaly2026-08-04Rangoni Of Florence QUALIFIED13Elwin Sharvill
1005Murillo L NestleAustralia2026-08-02Feltz Printing Service RENEWAL74Stephen Shaw
1006Deepesh N KolmetzSpain2026-08-03Benton, John B Jr NEW81Onyama Limba
1007Darci W KolmetzRussia2026-08-07Feltz Printing Service RENEWAL12Bernardo Dominic
1008Isabel O MaletIndia2026-08-06Benton, John B Jr RENEWAL79Xuxue Feng
1009Isabel P BowleyAustralia2026-08-20Printing Dimensions NEGOTIATION79Bernardo Dominic
1010Arvin M CaudyUnited Kingdom2026-08-11Chemel, James L Cpa PROPOSAL86Stephen Shaw
1011Greenwood X FigeroaAustralia2026-08-18Benton, John B Jr RENEWAL69Asiya Javayant
1012Kaitlin C RulapaughIndia2026-07-23Dorl, James J Esq NEW44Bernardo Dominic
1013Silvio H RoysterAustralia2026-07-26Feiner Bros NEGOTIATION12Stephen Shaw
1014Aika Y WaycottAustralia2026-07-29Printing Dimensions QUALIFIED37Anna Fali
1015Silvio E GillianItaly2026-08-05Chemel, James L Cpa UNQUALIFIED11Ivan Magalhaes
1016Claire C FollerUnited Kingdom2026-08-09Commercial Press UNQUALIFIED1Bernardo Dominic
1017Ashley C InouyeUnited Kingdom2026-08-17Commercial Press NEW41Bernardo Dominic
1018James J GarufiIndia2026-08-07Chanay, Jeffrey A Esq PROPOSAL33Elwin Sharvill
1019Kaitlin X SlusarskiCanada2026-08-17Printing Dimensions NEW63Onyama Limba
1020Nicolas K NickaUnited Kingdom2026-08-11Benton, John B Jr PROPOSAL42Onyama Limba
1021Jeanfrancois K KuskoBrazil2026-07-28Dorl, James J Esq RENEWAL32Elwin Sharvill
1022Stacey U VenereCanada2026-08-06Commercial Press NEW53Elwin Sharvill
1023Alejandro Y PerinCanada2026-08-05King, Christopher A Esq RENEWAL58Asiya Javayant
1024Mujtaba T PerinIndia2026-08-05Truhlar And Truhlar Attys RENEWAL36Asiya Javayant
1025Octavia X DarakjySpain2026-08-13Feltz Printing Service UNQUALIFIED74Onyama Limba
1026Isabel E PaprockiSpain2026-08-18Rangoni Of Florence UNQUALIFIED99Onyama Limba
1027Mujtaba A CaudySpain2026-07-31Chemel, James L Cpa QUALIFIED19Bernardo Dominic
1028Greenwood W PoquetteFrance2026-08-08Commercial Press NEW11Asiya Javayant
1029James M GillianGermany2026-08-20Printing Dimensions NEW41Xuxue Feng
1030Leon Z NickaIndia2026-07-29Feltz Printing Service PROPOSAL6Asiya Javayant
1031Munro Y MarrierRussia2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED46Ioni Bowcher
1032Ricardo K VenereUnited Kingdom2026-08-18Dorl, James J Esq PROPOSAL21Asiya Javayant
1033Deepesh B ShinkoItaly2026-08-15Commercial Press QUALIFIED70Stephen Shaw
1034Mujtaba H RimSpain2026-07-29Chemel, James L Cpa NEGOTIATION32Ioni Bowcher
1035Chavez W DoeItaly2026-07-25Rangoni Of Florence NEW89Bernardo Dominic
1036Salvatore R DarakjyFrance2026-08-06King, Christopher A Esq PROPOSAL61Amy Elsner
1037Kaitlin Q GarufiUnited Kingdom2026-08-04Dorl, James J Esq RENEWAL30Asiya Javayant
1038Kaitlin Q StockhamJapan2026-08-11Feiner Bros RENEWAL16Amy Elsner
1039James E DoeRussia2026-07-22Feiner Bros UNQUALIFIED7Amy Elsner
1040Salvatore V FigeroaFrance2026-08-08Rousseaux, Michael Esq NEW39Anna Fali
1041Aika C ChuiAustralia2026-08-03Chanay, Jeffrey A Esq PROPOSAL89Xuxue Feng
1042Julie U MaletJapan2026-08-20Chemel, James L Cpa RENEWAL59Ioni Bowcher
1043Izzy Y PerinRussia2026-08-09King, Christopher A Esq PROPOSAL68Amy Elsner
1044Deepesh K AmigonJapan2026-08-01King, Christopher A Esq QUALIFIED91Asiya Javayant
1045Jennifer Q MacleadRussia2026-07-26Feiner Bros UNQUALIFIED95Elwin Sharvill
1046Antonio B MaletItaly2026-07-31Dorl, James J Esq NEGOTIATION36Onyama Limba
1047Kaitlin K GlickIndia2026-08-13Rangoni Of Florence RENEWAL50Asiya Javayant
1048Misaki R MorascaItaly2026-08-11Rousseaux, Michael Esq QUALIFIED77Onyama Limba
1049Antonio D KuskoFrance2026-07-27Dorl, James J Esq NEW6Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Silvio G DoeSpainAnna Fali NEGOTIATION
Aruna W BologniaRussiaIoni Bowcher QUALIFIED
Tony C FigeroaCanadaIoni Bowcher RENEWAL
Claire U InouyeIndiaIvan Magalhaes NEW
Jennifer T RulapaughFranceElwin Sharvill NEGOTIATION
Morrow K FerenczFranceIoni Bowcher RENEWAL
Aditya W MaletIndiaIvan Magalhaes UNQUALIFIED
Adams B DarakjySpainBernardo Dominic NEGOTIATION
Nicolas Y StockhamAustraliaElwin Sharvill RENEWAL
Juan J ButtFranceXuxue Feng UNQUALIFIED
Greenwood F DilliardAustraliaOnyama Limba RENEWAL
Alejandro K FigeroaUnited KingdomAnna Fali RENEWAL
Salvatore S KolmetzCanadaElwin Sharvill UNQUALIFIED
Darci A WaycottUnited KingdomAsiya Javayant RENEWAL
Juan U PaprockiFranceAnna Fali RENEWAL
Ivar X VenereRussiaElwin Sharvill NEW
Maria E GarufiGermanyXuxue Feng QUALIFIED
Silvio T BriddickAustraliaAnna Fali NEGOTIATION
Deepesh K FollerItalyAmy Elsner UNQUALIFIED
Alejandro E MorascaFranceElwin Sharvill NEW
Jeanfrancois T FlosiSpainAnna Fali NEGOTIATION
Aruna I FlosiGermanyIoni Bowcher PROPOSAL
Jennifer Y NickaFranceElwin Sharvill RENEWAL
Jones P PoquetteSpainBernardo Dominic NEGOTIATION
Maria N OstroskyAustraliaAmy Elsner RENEWAL
Claire C GlickCanadaAnna Fali NEW
Antonio F BologniaArgentinaAmy Elsner NEGOTIATION
Jeanfrancois C MarrierAustraliaAsiya Javayant PROPOSAL
David D ChuiSpainBernardo Dominic RENEWAL
Faith R PaprockiFranceXuxue Feng NEW
Murillo D DarakjyCanadaAsiya Javayant RENEWAL
Octavia S RutaBrazilStephen Shaw PROPOSAL
Aruna X GauchoBrazilAmy Elsner NEGOTIATION
Silvio I DarakjySpainStephen Shaw PROPOSAL
Izzy M WieserGermanyAnna Fali NEGOTIATION
Emily N MaletCanadaStephen Shaw QUALIFIED
Emily L MaletItalyIoni Bowcher UNQUALIFIED
Greenwood P WaycottJapanAmy Elsner NEGOTIATION
Maria A CampainIndiaStephen Shaw PROPOSAL
Kaitlin R WaycottJapanIvan Magalhaes QUALIFIED
Mayumi W MaletUnited KingdomElwin Sharvill NEW
Maisha P MarrierIndiaStephen Shaw RENEWAL
Jones R RimItalyIoni Bowcher NEW
Darci G MacleadRussiaOnyama Limba NEGOTIATION
Jennifer I ButtCanadaAnna Fali PROPOSAL
Jones Y GarufiArgentinaOnyama Limba UNQUALIFIED
Juan U CampainCanadaAmy Elsner NEGOTIATION
Rodrigues B BologniaIndiaStephen Shaw QUALIFIED
David N CaldareraArgentinaAsiya Javayant NEGOTIATION
Jennifer A FollerArgentinaIoni Bowcher QUALIFIED
Frozen Columns
Name
Jeanfrancois T Ostrosky
Tony C Paprocki
Tony J Stockham
Juan Z Glick
Jefferson L Maclead
Kaitlin Q Inouye
Tony J Caldarera
Ricardo T Schemmer
Ricardo X Butt
Leja T Malet
David Z Caudy
Ashley B Marrier
Aditya J Butt
Julie T Figeroa
Kaitlin N Ostrosky
Aditya T Kusko
Leja P Sergi
Claire I Paprocki
Salvatore K Caudy
Cody Y Saylors
Mujtaba U Caudy
Smith S Nestle
Salvatore A Stenseth
Johnson K Albares
Francesco T Glick
Kadeem B Ruta
Izzy N Bowley
Rodrigues Q Waycott
Mayumi B Campain
Cody K Wieser
Maria K Bolognia
Alejandro P Morasca
Rodrigues Q Chui
Kadeem B Figeroa
Ricardo U Chui
Maria L Dilliard
Adams L Glick
Jefferson J Rim
Wickens H Wieser
Emily Q Chui
Octavia W Foller
Stacey S Tollner
Faith O Nicka
Ivar X Nicka
Deepesh H Ferencz
Arvin F Paprocki
Tony A Marrier
Octavia J Stenseth
Emily M Butt
Kadeem B Morasca
IdCountryDate
1000Italy2026-07-30
1001Russia2026-08-01
1002Brazil2026-07-29
1003Italy2026-07-24
1004Italy2026-08-05
1005Canada2026-08-08
1006Russia2026-07-26
1007Canada2026-08-20
1008Japan2026-08-15
1009United Kingdom2026-07-25
1010United Kingdom2026-07-29
1011Germany2026-07-27
1012Australia2026-08-16
1013France2026-08-17
1014India2026-08-01
1015Russia2026-07-24
1016India2026-08-09
1017United Kingdom2026-08-01
1018Japan2026-08-02
1019India2026-07-23
1020Argentina2026-08-07
1021Germany2026-08-11
1022India2026-08-07
1023India2026-08-07
1024Italy2026-08-14
1025France2026-07-23
1026United Kingdom2026-08-04
1027Germany2026-08-08
1028Canada2026-07-23
1029Argentina2026-08-08
1030Canada2026-08-06
1031Spain2026-08-20
1032Brazil2026-08-16
1033France2026-08-16
1034India2026-08-06
1035Brazil2026-07-24
1036Russia2026-08-15
1037Canada2026-07-27
1038Argentina2026-07-27
1039Argentina2026-08-02
1040France2026-07-23
1041Australia2026-07-27
1042Brazil2026-07-22
1043Japan2026-08-01
1044Italy2026-08-14
1045France2026-08-07
1046France2026-08-02
1047India2026-08-10
1048Spain2026-08-01
1049Russia2026-08-03

On-Demand Data

NameIdCountryDate
Kadeem N Dilliard1000India2026-07-24
Munro J Poquette1001Japan2026-08-09
Darci M Tollner1002Brazil2026-08-18
Silvio C Butt1003France2026-07-24
Jefferson Z Morasca1004Australia2026-08-15
Clifford U Bolognia1005Russia2026-08-09
Morrow T Inouye1006Italy2026-07-24
Emily R Campain1007Brazil2026-08-05
Francesco H Iturbide1008Japan2026-08-08
Deepesh J Ostrosky1009Australia2026-08-01
Isabel R Gaucho1010India2026-08-07
Julie B Albares1011United Kingdom2026-07-31
Aditya Q Kusko1012Spain2026-08-15
James M Bolognia1013France2026-08-17
Deepesh M Nestle1014Canada2026-08-11
Silvio J Rulapaugh1015Russia2026-07-27
Aruna B Marrier1016United Kingdom2026-08-06
Clifford L Ruta1017Brazil2026-08-19
Jennifer A Perin1018Canada2026-08-09
Ricardo L Bowley1019France2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez T NickaSpainIoni Bowcher UNQUALIFIED
Murillo U DoeFranceAmy Elsner UNQUALIFIED
Salvatore I GarufiUnited KingdomStephen Shaw UNQUALIFIED
Silvio F DoeSpainIvan Magalhaes NEW
Silvio H InouyeFranceOnyama Limba PROPOSAL
Jeanfrancois J KuskoRussiaAnna Fali QUALIFIED
James Q GarufiRussiaIoni Bowcher NEGOTIATION
James K SchemmerJapanBernardo Dominic UNQUALIFIED
Rodrigues G ShinkoGermanyAmy Elsner UNQUALIFIED
Murillo D MacleadFranceAmy Elsner PROPOSAL
Octavia T VocelkaGermanyElwin Sharvill NEGOTIATION
Wickens N KuskoBrazilAsiya Javayant NEW
Aika L CaudySpainAmy Elsner QUALIFIED
Nicolas M VenereJapanElwin Sharvill NEW
Claire U NestleCanadaXuxue Feng QUALIFIED
Tony V SchemmerGermanyAnna Fali NEGOTIATION
Maria C SlusarskiJapanAnna Fali UNQUALIFIED
James M PerinRussiaOnyama Limba UNQUALIFIED
Morrow I BowleyGermanyIoni Bowcher RENEWAL
Aditya B FerenczCanadaBernardo Dominic RENEWAL
Ricardo K SlusarskiBrazilXuxue Feng PROPOSAL
Rodrigues E BowleyAustraliaXuxue Feng NEGOTIATION
Aika N FlosiIndiaOnyama Limba PROPOSAL
Johnson I ShinkoUnited KingdomStephen Shaw QUALIFIED
Costa J CaldareraArgentinaOnyama Limba NEGOTIATION
Claire V ShinkoGermanyOnyama Limba NEGOTIATION
Juan I CampainArgentinaIoni Bowcher RENEWAL
Jeanfrancois E SergiAustraliaElwin Sharvill UNQUALIFIED
Francesco O VocelkaGermanyAnna Fali UNQUALIFIED
Antonio M DarakjyBrazilIoni Bowcher RENEWAL
Faith R GarufiArgentinaStephen Shaw PROPOSAL
Costa I WieserUnited KingdomStephen Shaw PROPOSAL
Mujtaba L AmigonAustraliaXuxue Feng NEGOTIATION
Stacey F PaprockiSpainElwin Sharvill RENEWAL
Ricardo E GauchoFranceAsiya Javayant NEGOTIATION
Isabel O SergiSpainAnna Fali RENEWAL
Silvio M RutaRussiaXuxue Feng PROPOSAL
Maria Y RutaCanadaIoni Bowcher PROPOSAL
Julie U VenereCanadaAmy Elsner PROPOSAL
Silvio H OldroydRussiaElwin Sharvill NEGOTIATION

<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>