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
Aruna S SaylorsItalyAsiya Javayant PROPOSAL
Arvin S ShinkoAustraliaAmy Elsner RENEWAL
Izzy Z GauchoIndiaOnyama Limba NEW
Costa R GillianAustraliaAnna Fali NEGOTIATION
Izzy C RulapaughSpainAmy Elsner QUALIFIED
Faith M OstroskyFranceAsiya Javayant NEGOTIATION
Salvatore S KuskoAustraliaAsiya Javayant UNQUALIFIED
Mujtaba F CaudyFranceElwin Sharvill NEGOTIATION
Leon K OldroydItalyIoni Bowcher RENEWAL
Wickens H ShinkoBrazilIoni Bowcher NEW
Cody E BriddickGermanyStephen Shaw NEGOTIATION
Murillo M VenereUnited KingdomAmy Elsner RENEWAL
David O PoquetteJapanAsiya Javayant QUALIFIED
Antonio I SergiRussiaIvan Magalhaes NEGOTIATION
Leja L BologniaArgentinaStephen Shaw UNQUALIFIED
Silvio S KuskoUnited KingdomXuxue Feng PROPOSAL
Julie V MacleadAustraliaAnna Fali UNQUALIFIED
Faith B DilliardIndiaElwin Sharvill NEW
Kadeem H VenereSpainAmy Elsner QUALIFIED
Antonio M ButtBrazilElwin Sharvill QUALIFIED
Smith L ChuiArgentinaIvan Magalhaes RENEWAL
Aruna N KuskoIndiaBernardo Dominic NEGOTIATION
Maisha B TollnerIndiaAsiya Javayant NEW
Kadeem F WaycottRussiaIoni Bowcher NEGOTIATION
Mayumi H VenereCanadaAmy Elsner NEGOTIATION
Claire L VenereFranceIvan Magalhaes PROPOSAL
Leon Z WhobreyUnited KingdomBernardo Dominic RENEWAL
Izzy F InouyeCanadaAsiya Javayant QUALIFIED
Faith Q AmigonRussiaStephen Shaw PROPOSAL
Jones C CaldareraArgentinaBernardo Dominic RENEWAL
Jefferson R GauchoRussiaAsiya Javayant PROPOSAL
Johnson R DilliardRussiaStephen Shaw QUALIFIED
Costa C RutaCanadaStephen Shaw PROPOSAL
Sinclair K SlusarskiGermanyIvan Magalhaes NEW
Arvin R SlusarskiArgentinaOnyama Limba QUALIFIED
Kaitlin X PerinCanadaAsiya Javayant RENEWAL
Clifford A TollnerRussiaAsiya Javayant RENEWAL
Faith M DilliardUnited KingdomBernardo Dominic RENEWAL
Izzy N GauchoRussiaOnyama Limba NEW
Faith O ChuiUnited KingdomElwin Sharvill RENEWAL
Wickens C AlbaresRussiaXuxue Feng PROPOSAL
Mayumi M SergiRussiaAsiya Javayant RENEWAL
Francesco G FigeroaSpainIoni Bowcher RENEWAL
James J WhobreyArgentinaAmy Elsner NEW
Jones X DoeFranceOnyama Limba UNQUALIFIED
Claire Q KuskoFranceAnna Fali PROPOSAL
Chavez Y DilliardUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin I KuskoBrazilXuxue Feng NEGOTIATION
Aruna G InouyeAustraliaAsiya Javayant PROPOSAL
Maria Z FollerCanadaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba V OstroskyJapanAsiya Javayant PROPOSAL
Deepesh T VenereJapanIvan Magalhaes UNQUALIFIED
Ashley M InouyeBrazilAmy Elsner UNQUALIFIED
Isabel Z PerinArgentinaXuxue Feng QUALIFIED
James H GarufiJapanAmy Elsner NEW
Adams P WieserIndiaStephen Shaw QUALIFIED
Faith G InouyeCanadaStephen Shaw NEGOTIATION
Emily U ButtUnited KingdomStephen Shaw QUALIFIED
Cody P CampainJapanIoni Bowcher PROPOSAL
Leja U BowleyBrazilOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson P NickaSpain2026-06-23Morlong Associates UNQUALIFIED76Stephen Shaw
1001Adams V KolmetzRussia2026-06-07Truhlar And Truhlar Attys UNQUALIFIED68Xuxue Feng
1002Munro C RutaJapan2026-06-09Chemel, James L Cpa NEW76Stephen Shaw
1003Emily K RoysterBrazil2026-06-08Printing Dimensions UNQUALIFIED86Stephen Shaw
1004Wickens T KuskoBrazil2026-06-06King, Christopher A Esq PROPOSAL84Elwin Sharvill
1005Leja E DoeSpain2026-06-06Commercial Press UNQUALIFIED61Xuxue Feng
1006Wickens U BriddickJapan2026-06-21Feiner Bros RENEWAL29Amy Elsner
1007James O CampainSpain2026-06-15Benton, John B Jr NEW13Stephen Shaw
1008Darci W OstroskyBrazil2026-07-02Rousseaux, Michael Esq NEGOTIATION14Elwin Sharvill
1009Sinclair P AlbaresArgentina2026-06-09Feltz Printing Service RENEWAL63Bernardo Dominic
1010Deepesh J VenereAustralia2026-07-01Benton, John B Jr NEW16Onyama Limba
1011Sinclair X ShinkoBrazil2026-07-03Benton, John B Jr RENEWAL52Xuxue Feng
1012Mayumi F CaudyFrance2026-07-03Benton, John B Jr PROPOSAL78Elwin Sharvill
1013Misaki J PaprockiArgentina2026-06-10Chapman, Ross E Esq NEGOTIATION87Anna Fali
1014Maisha V KuskoArgentina2026-06-30Feiner Bros NEW98Asiya Javayant
1015Kadeem K ShinkoJapan2026-06-27Rangoni Of Florence NEW64Elwin Sharvill
1016Wickens C GauchoUnited Kingdom2026-06-10Truhlar And Truhlar Attys NEW67Ioni Bowcher
1017Isabel X RimSpain2026-06-10Feiner Bros QUALIFIED1Ioni Bowcher
1018Darci E FigeroaUnited Kingdom2026-06-21Dorl, James J Esq NEW24Onyama Limba
1019Rodrigues A MaletAustralia2026-06-16Rangoni Of Florence QUALIFIED43Ioni Bowcher
1020Jefferson Z RutaIndia2026-06-24Chemel, James L Cpa UNQUALIFIED97Ioni Bowcher
1021Arvin Z KuskoGermany2026-06-07Truhlar And Truhlar Attys UNQUALIFIED4Asiya Javayant
1022Izzy M StockhamArgentina2026-06-19Buckley Miller Wright NEW84Bernardo Dominic
1023Octavia F ButtGermany2026-06-10Buckley Miller Wright PROPOSAL63Amy Elsner
1024Maria T PerinGermany2026-07-04Dorl, James J Esq NEGOTIATION49Onyama Limba
1025Kadeem C RoysterFrance2026-06-27Feltz Printing Service UNQUALIFIED82Stephen Shaw
1026Faith V RoysterItaly2026-07-02Printing Dimensions QUALIFIED66Xuxue Feng
1027Costa E ChuiJapan2026-06-23Commercial Press RENEWAL27Anna Fali
1028Juan Q FlosiCanada2026-06-26Commercial Press UNQUALIFIED15Onyama Limba
1029Faith B BologniaArgentina2026-06-20Chapman, Ross E Esq NEGOTIATION7Bernardo Dominic
1030Francesco P MaletCanada2026-06-30Dorl, James J Esq UNQUALIFIED93Asiya Javayant
1031Chavez Q InouyeItaly2026-07-02King, Christopher A Esq PROPOSAL9Ioni Bowcher
1032Mujtaba W DarakjyFrance2026-06-16Feiner Bros NEW71Elwin Sharvill
1033Silvio A MaletItaly2026-06-22Feltz Printing Service RENEWAL95Asiya Javayant
1034Ashley U GlickBrazil2026-06-10Morlong Associates PROPOSAL97Stephen Shaw
1035Clifford U FlosiGermany2026-06-20Chapman, Ross E Esq RENEWAL93Onyama Limba
1036Juan L GillianIndia2026-06-16Truhlar And Truhlar Attys RENEWAL9Onyama Limba
1037Emily W FollerSpain2026-06-29Feiner Bros RENEWAL75Onyama Limba
1038Mayumi P SergiFrance2026-06-25Commercial Press NEW27Elwin Sharvill
1039Greenwood O CaudyIndia2026-06-16Buckley Miller Wright NEW84Bernardo Dominic
1040Deepesh W WieserFrance2026-07-03Chapman, Ross E Esq NEGOTIATION64Elwin Sharvill
1041Jennifer Y NestleFrance2026-07-02Truhlar And Truhlar Attys NEW77Ioni Bowcher
1042Silvio S SchemmerJapan2026-06-28Benton, John B Jr RENEWAL73Xuxue Feng
1043Sinclair R DilliardItaly2026-06-11Rousseaux, Michael Esq PROPOSAL67Onyama Limba
1044Jefferson P DilliardJapan2026-06-12Rangoni Of Florence UNQUALIFIED57Xuxue Feng
1045Julie I SchemmerCanada2026-07-01Truhlar And Truhlar Attys UNQUALIFIED88Stephen Shaw
1046Julie O GlickCanada2026-06-28Printing Dimensions RENEWAL84Anna Fali
1047Stacey Y CaudyArgentina2026-06-11Rousseaux, Michael Esq QUALIFIED34Onyama Limba
1048Smith Q OstroskySpain2026-06-07Feltz Printing Service RENEWAL26Xuxue Feng
1049Ashley S SlusarskiBrazil2026-06-09Rangoni Of Florence RENEWAL37Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Costa J DarakjyFranceXuxue Feng RENEWAL
Ashley Z SlusarskiRussiaOnyama Limba UNQUALIFIED
Rodrigues Z AmigonArgentinaOnyama Limba PROPOSAL
Aika H ChuiItalyOnyama Limba PROPOSAL
Antonio B BriddickItalyAnna Fali NEGOTIATION
Ashley K RimAustraliaElwin Sharvill UNQUALIFIED
Ashley Q KuskoItalyElwin Sharvill PROPOSAL
Greenwood O PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro J InouyeJapanAnna Fali QUALIFIED
Faith P StockhamFranceStephen Shaw QUALIFIED
Kadeem U NickaGermanyElwin Sharvill RENEWAL
Aika Z RimRussiaElwin Sharvill RENEWAL
Jennifer V SchemmerArgentinaAmy Elsner NEW
Emily G KolmetzBrazilXuxue Feng NEW
Morrow A RoysterCanadaElwin Sharvill QUALIFIED
Rodrigues R StockhamIndiaAnna Fali PROPOSAL
Maisha Y SaylorsIndiaAsiya Javayant RENEWAL
Costa B SchemmerGermanyAmy Elsner NEGOTIATION
Nicolas O PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues Y OldroydFranceAmy Elsner NEGOTIATION
Claire E CaudyRussiaAsiya Javayant NEGOTIATION
Kaitlin T DilliardGermanyBernardo Dominic PROPOSAL
James B SaylorsCanadaElwin Sharvill NEGOTIATION
Izzy J RoysterSpainIoni Bowcher NEGOTIATION
Kaitlin I SaylorsFranceIvan Magalhaes QUALIFIED
Antonio F CampainIndiaAmy Elsner UNQUALIFIED
Murillo C SlusarskiUnited KingdomAsiya Javayant RENEWAL
Leon S WaycottGermanyXuxue Feng UNQUALIFIED
Alejandro N DarakjyJapanOnyama Limba NEW
Murillo G ShinkoBrazilBernardo Dominic RENEWAL
Costa B GarufiJapanElwin Sharvill NEW
Arvin Q TollnerCanadaIvan Magalhaes RENEWAL
Silvio D GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh A SergiGermanyAmy Elsner NEW
Leon N SlusarskiFranceIvan Magalhaes UNQUALIFIED
Adams W CampainRussiaAmy Elsner UNQUALIFIED
Ricardo Q AmigonJapanBernardo Dominic PROPOSAL
Nicolas K OldroydSpainElwin Sharvill NEGOTIATION
Greenwood O CaudyArgentinaBernardo Dominic UNQUALIFIED
Morrow C InouyeGermanyElwin Sharvill PROPOSAL
Claire O PoquetteIndiaIoni Bowcher NEW
Leja V GauchoCanadaXuxue Feng RENEWAL
Chavez S PaprockiAustraliaAmy Elsner QUALIFIED
Kaitlin L RutaItalyIvan Magalhaes NEGOTIATION
Claire Q DilliardIndiaXuxue Feng UNQUALIFIED
Emily E IturbideBrazilAnna Fali QUALIFIED
Leon C CampainFranceAmy Elsner QUALIFIED
Sinclair L KuskoIndiaElwin Sharvill NEW
Maria Z KolmetzCanadaElwin Sharvill PROPOSAL
Ricardo P BriddickIndiaIoni Bowcher QUALIFIED
Frozen Columns
Name
Morrow I Inouye
Deepesh L Caudy
Ashley L Butt
Emily H Bowley
Kaitlin Y Vocelka
Murillo Q Paprocki
Tony P Shinko
Arvin R Albares
Cody U Chui
Kadeem C Slusarski
Murillo B Caudy
Smith V Albares
Salvatore D Ruta
Murillo L Caldarera
Jennifer T Gillian
Darci V Oldroyd
Ivar B Nestle
Jones E Maclead
Nicolas Z Caldarera
Tony Y Royster
Smith W Sergi
James O Stockham
Wickens E Flosi
Johnson N Ostrosky
Greenwood Q Morasca
Rodrigues A Perin
Octavia F Maclead
Murillo C Schemmer
Nicolas X Bolognia
Deepesh T Tollner
Kadeem S Bowley
Darci C Morasca
Emily N Malet
Sinclair T Stenseth
Jennifer E Nestle
Murillo S Sergi
Jennifer U Rim
Leon S Waycott
Jones E Saylors
Claire J Butt
Tony R Malet
Leon C Perin
Jefferson O Rim
Juan N Briddick
Sinclair A Whobrey
Jefferson F Iturbide
Isabel I Briddick
Aruna Y Rulapaugh
Jones J Whobrey
Kaitlin P Bowley
IdCountryDate
1000United Kingdom2026-06-26
1001Italy2026-06-09
1002Italy2026-06-20
1003Spain2026-06-07
1004India2026-06-07
1005India2026-06-14
1006Australia2026-06-09
1007Italy2026-06-27
1008France2026-06-09
1009United Kingdom2026-06-10
1010France2026-06-20
1011Germany2026-07-03
1012Australia2026-06-26
1013India2026-06-16
1014Germany2026-06-14
1015Canada2026-06-17
1016Australia2026-06-18
1017Australia2026-06-25
1018Canada2026-06-18
1019Argentina2026-06-07
1020Japan2026-06-05
1021Germany2026-07-02
1022India2026-06-20
1023United Kingdom2026-06-13
1024Brazil2026-06-20
1025Argentina2026-06-10
1026Japan2026-07-02
1027Germany2026-06-26
1028Argentina2026-06-10
1029India2026-06-15
1030Brazil2026-06-18
1031Brazil2026-06-07
1032Germany2026-06-17
1033Argentina2026-06-19
1034Australia2026-06-30
1035Australia2026-06-25
1036Italy2026-06-24
1037Canada2026-06-19
1038India2026-06-25
1039Germany2026-07-04
1040Australia2026-06-22
1041Spain2026-06-16
1042Argentina2026-07-02
1043Spain2026-06-12
1044Germany2026-06-15
1045Canada2026-06-07
1046Brazil2026-06-11
1047Japan2026-07-03
1048Argentina2026-06-26
1049Germany2026-06-17

On-Demand Data

NameIdCountryDate
Silvio J Paprocki1000United Kingdom2026-06-26
Jennifer L Marrier1001Germany2026-06-25
Kaitlin E Butt1002Russia2026-06-09
Clifford P Inouye1003Argentina2026-06-08
Salvatore Q Nicka1004Germany2026-06-14
Cody I Garufi1005France2026-06-25
Aruna O Garufi1006Argentina2026-06-13
Rodrigues G Briddick1007France2026-06-10
Stacey U Glick1008Australia2026-06-29
Ashley P Bolognia1009France2026-06-27
Isabel F Malet1010Australia2026-06-22
Jefferson F Figeroa1011France2026-06-26
Cody X Shinko1012Italy2026-06-14
Ricardo C Perin1013Argentina2026-07-01
Tony F Foller1014Canada2026-06-16
Munro S Foller1015Brazil2026-06-22
Johnson L Stenseth1016Italy2026-06-22
Julie X Nestle1017Canada2026-06-27
Claire A Nestle1018Brazil2026-06-25
Octavia M Malet1019Italy2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson I MarrierIndiaIoni Bowcher NEW
Izzy O IturbideSpainXuxue Feng QUALIFIED
Murillo C WieserAustraliaOnyama Limba NEW
Rodrigues S ButtRussiaIvan Magalhaes PROPOSAL
Rodrigues T VenereArgentinaAsiya Javayant PROPOSAL
Jones O PerinGermanyStephen Shaw PROPOSAL
Aditya S WaycottGermanyStephen Shaw NEGOTIATION
Maisha C GillianJapanOnyama Limba QUALIFIED
Isabel C BologniaBrazilAnna Fali UNQUALIFIED
Aditya R CaudyCanadaBernardo Dominic RENEWAL
Mujtaba M BowleyBrazilAnna Fali QUALIFIED
Kadeem G TollnerUnited KingdomXuxue Feng QUALIFIED
Antonio G ShinkoSpainXuxue Feng PROPOSAL
Sinclair Y IturbideItalyIvan Magalhaes NEGOTIATION
Tony B FerenczBrazilIoni Bowcher PROPOSAL
Aruna M DarakjyCanadaAmy Elsner RENEWAL
Leon J ShinkoBrazilXuxue Feng RENEWAL
Adams V GillianGermanyAmy Elsner RENEWAL
Jefferson G CaldareraAustraliaStephen Shaw RENEWAL
Alejandro Q IturbideFranceElwin Sharvill UNQUALIFIED
Tony N AmigonJapanStephen Shaw NEW
Mayumi I InouyeRussiaAnna Fali RENEWAL
Maisha P FollerRussiaIvan Magalhaes RENEWAL
Misaki W FollerItalyStephen Shaw QUALIFIED
Ashley Q FlosiSpainAnna Fali UNQUALIFIED
Murillo R OstroskyGermanyOnyama Limba UNQUALIFIED
Chavez I AmigonJapanStephen Shaw NEGOTIATION
Izzy Z ButtGermanyElwin Sharvill NEGOTIATION
Smith V TollnerGermanyOnyama Limba QUALIFIED
Aruna M PoquetteUnited KingdomBernardo Dominic RENEWAL
Ricardo M InouyeIndiaBernardo Dominic PROPOSAL
Silvio M DilliardBrazilAsiya Javayant PROPOSAL
Smith G FlosiRussiaBernardo Dominic NEW
Kaitlin L PaprockiBrazilAsiya Javayant PROPOSAL
Morrow C IturbideArgentinaAsiya Javayant PROPOSAL
Leja N NickaGermanyElwin Sharvill UNQUALIFIED
Aditya S ChuiIndiaElwin Sharvill UNQUALIFIED
Octavia X OldroydJapanIoni Bowcher NEGOTIATION
Smith E DoeSpainBernardo Dominic NEGOTIATION
Aditya N FollerJapanIoni Bowcher NEW

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