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
Rodrigues V SergiBrazilOnyama Limba UNQUALIFIED
Darci T ChuiUnited KingdomOnyama Limba RENEWAL
Juan T SchemmerUnited KingdomIvan Magalhaes RENEWAL
Smith X StensethBrazilElwin Sharvill RENEWAL
Costa P SergiCanadaXuxue Feng UNQUALIFIED
Jennifer O RimItalyOnyama Limba QUALIFIED
Costa K StensethItalyBernardo Dominic NEW
Johnson F OstroskySpainXuxue Feng UNQUALIFIED
Ashley L StensethCanadaBernardo Dominic UNQUALIFIED
Silvio E VenereRussiaBernardo Dominic UNQUALIFIED
James N BriddickFranceStephen Shaw RENEWAL
Stacey C PaprockiArgentinaOnyama Limba QUALIFIED
Izzy G CaldareraBrazilXuxue Feng NEGOTIATION
Aditya J VenereSpainStephen Shaw PROPOSAL
Johnson L FigeroaGermanyElwin Sharvill UNQUALIFIED
Silvio W WaycottArgentinaBernardo Dominic NEGOTIATION
Misaki L CampainRussiaAmy Elsner NEW
Silvio O IturbideBrazilIoni Bowcher UNQUALIFIED
Munro T KuskoItalyAnna Fali PROPOSAL
Mujtaba I BologniaAustraliaIoni Bowcher PROPOSAL
Jefferson T VocelkaUnited KingdomAmy Elsner NEW
Munro H MorascaIndiaAnna Fali QUALIFIED
Wickens X SlusarskiSpainOnyama Limba RENEWAL
Greenwood V RoysterCanadaAsiya Javayant NEGOTIATION
Izzy C GarufiCanadaIvan Magalhaes NEW
David W StensethIndiaOnyama Limba PROPOSAL
Wickens L SergiSpainOnyama Limba NEGOTIATION
Jeanfrancois V CaudyJapanIvan Magalhaes RENEWAL
Murillo I IturbideCanadaStephen Shaw PROPOSAL
Clifford X WieserSpainBernardo Dominic RENEWAL
Darci S GarufiJapanElwin Sharvill QUALIFIED
Alejandro H OstroskyCanadaIvan Magalhaes RENEWAL
Tony O GlickIndiaAsiya Javayant NEGOTIATION
Murillo C KuskoFranceAnna Fali QUALIFIED
Munro Y WieserSpainBernardo Dominic UNQUALIFIED
Faith M DilliardItalyElwin Sharvill NEW
Mayumi M ButtBrazilBernardo Dominic NEW
Maisha H VocelkaUnited KingdomAsiya Javayant NEW
Jefferson Q BologniaArgentinaIvan Magalhaes NEGOTIATION
Faith A DoeItalyXuxue Feng NEW
Maisha E WaycottArgentinaXuxue Feng PROPOSAL
Aditya W MaletIndiaXuxue Feng NEW
Tony S ChuiGermanyBernardo Dominic UNQUALIFIED
Jefferson M VenereArgentinaOnyama Limba NEGOTIATION
Rodrigues K NestleAustraliaXuxue Feng NEGOTIATION
Leon W ShinkoItalyXuxue Feng PROPOSAL
Morrow V StockhamCanadaElwin Sharvill UNQUALIFIED
Darci V RoysterBrazilAnna Fali NEGOTIATION
Jefferson U BowleyBrazilAsiya Javayant NEGOTIATION
Ricardo Z MaletArgentinaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja H ChuiAustraliaOnyama Limba NEGOTIATION
Aditya T AmigonRussiaAsiya Javayant QUALIFIED
Julie N DarakjyRussiaOnyama Limba RENEWAL
Faith M IturbideCanadaBernardo Dominic QUALIFIED
Juan M GarufiIndiaElwin Sharvill RENEWAL
Tony K MaletRussiaIoni Bowcher UNQUALIFIED
Sinclair G KolmetzJapanIoni Bowcher QUALIFIED
Claire A ChuiFranceAmy Elsner NEGOTIATION
Salvatore T PaprockiSpainElwin Sharvill QUALIFIED
Munro J FollerJapanIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy R FerenczBrazil2026-07-09Chanay, Jeffrey A Esq PROPOSAL33Amy Elsner
1001Ashley D GarufiArgentina2026-08-03Rangoni Of Florence UNQUALIFIED17Asiya Javayant
1002Munro O StockhamJapan2026-07-24Chanay, Jeffrey A Esq RENEWAL33Anna Fali
1003Clifford D OstroskyAustralia2026-07-14Benton, John B Jr RENEWAL59Anna Fali
1004Cody S RulapaughAustralia2026-07-21Benton, John B Jr PROPOSAL88Asiya Javayant
1005Smith Z WieserUnited Kingdom2026-07-20Feltz Printing Service UNQUALIFIED54Asiya Javayant
1006Chavez B FerenczFrance2026-08-02Dorl, James J Esq NEGOTIATION84Asiya Javayant
1007Mujtaba B FigeroaJapan2026-08-01Benton, John B Jr NEGOTIATION36Asiya Javayant
1008Darci A OldroydCanada2026-07-23Feiner Bros QUALIFIED25Ivan Magalhaes
1009Adams X AmigonArgentina2026-07-16Chapman, Ross E Esq RENEWAL86Onyama Limba
1010Maisha W InouyeSpain2026-07-31Commercial Press RENEWAL83Ioni Bowcher
1011Darci U NickaSpain2026-07-15Feltz Printing Service RENEWAL79Asiya Javayant
1012Munro Q SaylorsFrance2026-07-28Buckley Miller Wright RENEWAL53Xuxue Feng
1013Julie G FigeroaArgentina2026-07-21Feiner Bros PROPOSAL29Ioni Bowcher
1014Johnson L BriddickItaly2026-07-07Truhlar And Truhlar Attys NEW71Amy Elsner
1015Aditya O DilliardItaly2026-07-29Commercial Press UNQUALIFIED86Ioni Bowcher
1016Stacey Z MacleadFrance2026-07-25Chanay, Jeffrey A Esq NEGOTIATION73Ivan Magalhaes
1017Faith Y NickaArgentina2026-08-03Rousseaux, Michael Esq QUALIFIED88Anna Fali
1018Ricardo Y RutaRussia2026-08-01Rangoni Of Florence RENEWAL14Anna Fali
1019Deepesh G OstroskyCanada2026-07-31Chanay, Jeffrey A Esq NEW0Ivan Magalhaes
1020David X MaletAustralia2026-07-21Benton, John B Jr QUALIFIED18Ivan Magalhaes
1021Jefferson Z FigeroaItaly2026-07-09Feltz Printing Service PROPOSAL99Ioni Bowcher
1022Deepesh U KuskoGermany2026-07-06King, Christopher A Esq UNQUALIFIED97Stephen Shaw
1023Mujtaba L CaudyItaly2026-07-22Feiner Bros QUALIFIED51Bernardo Dominic
1024Maisha G RulapaughSpain2026-08-01Feiner Bros QUALIFIED64Ivan Magalhaes
1025Sinclair I VenereJapan2026-07-10Printing Dimensions PROPOSAL49Bernardo Dominic
1026Mujtaba Z GarufiSpain2026-08-02Rangoni Of Florence NEGOTIATION37Onyama Limba
1027Emily R GlickAustralia2026-07-25Dorl, James J Esq QUALIFIED18Onyama Limba
1028Morrow S KuskoUnited Kingdom2026-07-12Printing Dimensions NEGOTIATION13Onyama Limba
1029Leja R DilliardFrance2026-07-15Benton, John B Jr RENEWAL49Xuxue Feng
1030Wickens O VenereIndia2026-07-06Truhlar And Truhlar Attys PROPOSAL73Amy Elsner
1031Ricardo O SchemmerAustralia2026-07-15Dorl, James J Esq RENEWAL82Onyama Limba
1032Isabel J SergiArgentina2026-07-13Printing Dimensions NEW92Asiya Javayant
1033Munro B FerenczAustralia2026-07-16Benton, John B Jr PROPOSAL76Ioni Bowcher
1034Darci D SaylorsBrazil2026-07-09Feltz Printing Service NEGOTIATION54Anna Fali
1035Ashley A PaprockiBrazil2026-07-30Commercial Press RENEWAL46Stephen Shaw
1036Alejandro E AmigonAustralia2026-07-11Printing Dimensions PROPOSAL49Elwin Sharvill
1037Maisha I AlbaresGermany2026-07-10Morlong Associates NEW88Elwin Sharvill
1038Deepesh G WieserCanada2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED50Amy Elsner
1039Adams P ButtArgentina2026-07-31Dorl, James J Esq NEGOTIATION57Onyama Limba
1040Salvatore F StensethSpain2026-08-01Truhlar And Truhlar Attys NEW41Onyama Limba
1041Emily P PoquetteIndia2026-07-06Rousseaux, Michael Esq QUALIFIED96Amy Elsner
1042Emily V PerinAustralia2026-07-09Printing Dimensions UNQUALIFIED95Anna Fali
1043Julie T DilliardAustralia2026-07-20Chemel, James L Cpa NEW28Bernardo Dominic
1044Jeanfrancois Z RimItaly2026-07-17Chanay, Jeffrey A Esq QUALIFIED9Stephen Shaw
1045Greenwood X CaudyFrance2026-07-28Feiner Bros UNQUALIFIED19Onyama Limba
1046Alejandro O DilliardIndia2026-07-10Feiner Bros NEW72Ivan Magalhaes
1047Leja H OldroydSpain2026-07-20Benton, John B Jr NEGOTIATION99Ivan Magalhaes
1048Aruna P DilliardRussia2026-07-10Chemel, James L Cpa UNQUALIFIED74Anna Fali
1049James K OstroskyGermany2026-07-13Feltz Printing Service QUALIFIED67Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria R CaldareraSpainAnna Fali NEW
Munro C CaudyFranceStephen Shaw NEGOTIATION
Clifford I GauchoGermanyIvan Magalhaes QUALIFIED
Wickens J AmigonBrazilAmy Elsner NEW
Kaitlin O WieserGermanyStephen Shaw PROPOSAL
Jeanfrancois Y WaycottGermanyIoni Bowcher UNQUALIFIED
Isabel A AmigonJapanIoni Bowcher QUALIFIED
Arvin B FlosiRussiaXuxue Feng QUALIFIED
Antonio J SaylorsGermanyIoni Bowcher NEW
Kadeem M OstroskyCanadaBernardo Dominic UNQUALIFIED
Tony S OstroskyIndiaElwin Sharvill QUALIFIED
Tony G SlusarskiGermanyOnyama Limba UNQUALIFIED
Leon J WaycottJapanStephen Shaw RENEWAL
Maria Q CampainIndiaAnna Fali PROPOSAL
Antonio S KolmetzIndiaXuxue Feng PROPOSAL
Juan B GauchoFranceXuxue Feng NEW
Isabel J VenereSpainElwin Sharvill NEGOTIATION
Chavez V AmigonGermanyIoni Bowcher RENEWAL
Mujtaba U MarrierIndiaIvan Magalhaes UNQUALIFIED
Wickens Q ChuiFranceOnyama Limba RENEWAL
Jennifer B MorascaIndiaBernardo Dominic UNQUALIFIED
Johnson S ChuiFranceAnna Fali UNQUALIFIED
Johnson Z SergiIndiaAmy Elsner UNQUALIFIED
Juan Q CaldareraJapanIoni Bowcher PROPOSAL
Cody S PoquetteCanadaIoni Bowcher NEW
Izzy H CampainAustraliaAmy Elsner NEGOTIATION
Ivar L MaletGermanyIvan Magalhaes UNQUALIFIED
Isabel O NestleSpainIoni Bowcher QUALIFIED
Leja K FigeroaBrazilStephen Shaw NEGOTIATION
Maria A PoquetteCanadaIoni Bowcher QUALIFIED
Jefferson L MarrierGermanyIoni Bowcher UNQUALIFIED
Faith S DoeRussiaAmy Elsner UNQUALIFIED
Francesco L WieserAustraliaXuxue Feng NEW
Julie D RutaAustraliaAsiya Javayant PROPOSAL
Mujtaba F RulapaughFranceIvan Magalhaes RENEWAL
Maisha D GillianBrazilAnna Fali PROPOSAL
Francesco R DarakjyGermanyIvan Magalhaes NEGOTIATION
Clifford C WhobreyJapanIvan Magalhaes NEGOTIATION
Arvin P BriddickItalyBernardo Dominic UNQUALIFIED
Francesco Q ButtCanadaIoni Bowcher RENEWAL
Aika G ShinkoCanadaElwin Sharvill RENEWAL
Cody A StockhamJapanStephen Shaw NEGOTIATION
Darci R GarufiBrazilXuxue Feng NEGOTIATION
Arvin K OldroydCanadaElwin Sharvill RENEWAL
Murillo A PerinFranceOnyama Limba NEGOTIATION
Juan L GarufiFranceIvan Magalhaes NEW
Greenwood V MaletSpainAnna Fali PROPOSAL
Silvio B PaprockiBrazilElwin Sharvill QUALIFIED
Alejandro E PerinGermanyAsiya Javayant RENEWAL
Maisha O MacleadAustraliaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Jennifer F Amigon
James I Sergi
Chavez I Kolmetz
Maria L Gillian
Julie D Darakjy
Greenwood H Morasca
Octavia Y Whobrey
Julie Z Briddick
Mujtaba A Gillian
Deepesh E Ostrosky
Isabel U Schemmer
Leja Y Maclead
Morrow V Paprocki
Ricardo I Sergi
Munro C Marrier
Leja I Nicka
Emily Q Nestle
Adams G Stockham
Leon E Waycott
Salvatore L Caldarera
Johnson U Foller
Silvio O Caudy
Wickens O Perin
Julie X Foller
Aruna P Kusko
Smith H Slusarski
Ashley U Paprocki
Leja L Gaucho
Alejandro K Amigon
Wickens U Perin
Ashley A Foller
Darci B Sergi
Nicolas T Morasca
Deepesh D Waycott
Sinclair T Kusko
Munro P Rim
Maisha Z Rulapaugh
Aruna P Tollner
Izzy L Bolognia
Maisha A Ruta
Stacey Y Whobrey
Maisha Z Butt
Jefferson Z Rulapaugh
Johnson L Darakjy
Chavez X Maclead
Murillo R Ostrosky
Aika U Royster
Sinclair G Amigon
Emily W Rulapaugh
Leon F Royster
IdCountryDate
1000France2026-07-29
1001Brazil2026-07-16
1002France2026-07-07
1003India2026-07-23
1004Canada2026-07-20
1005Argentina2026-07-18
1006India2026-08-02
1007Argentina2026-07-18
1008Spain2026-07-28
1009Brazil2026-07-26
1010India2026-07-24
1011Brazil2026-07-26
1012Italy2026-07-06
1013Russia2026-07-18
1014France2026-07-13
1015United Kingdom2026-08-03
1016Argentina2026-07-15
1017Australia2026-07-17
1018Brazil2026-07-30
1019Argentina2026-07-21
1020Australia2026-08-02
1021Brazil2026-07-23
1022Germany2026-07-19
1023Argentina2026-08-03
1024France2026-07-27
1025Canada2026-07-30
1026India2026-07-26
1027Japan2026-07-12
1028Brazil2026-07-19
1029Russia2026-07-24
1030Argentina2026-08-04
1031Brazil2026-07-31
1032France2026-07-10
1033Italy2026-07-29
1034Canada2026-07-26
1035Japan2026-07-29
1036United Kingdom2026-07-13
1037Australia2026-07-24
1038Russia2026-07-07
1039Canada2026-08-03
1040Germany2026-07-06
1041Brazil2026-07-23
1042Germany2026-07-19
1043Spain2026-07-08
1044Argentina2026-07-10
1045Argentina2026-08-02
1046Australia2026-07-31
1047Canada2026-07-23
1048Japan2026-07-07
1049France2026-07-30

On-Demand Data

NameIdCountryDate
Maisha P Nicka1000Italy2026-07-28
Aika T Glick1001Italy2026-07-17
Jeanfrancois E Perin1002United Kingdom2026-07-20
Jeanfrancois R Nestle1003France2026-08-02
Johnson H Malet1004Russia2026-07-06
Aditya N Rulapaugh1005Spain2026-07-06
Tony K Maclead1006Australia2026-07-30
Adams J Stenseth1007Spain2026-07-18
Jefferson B Stockham1008Argentina2026-07-21
Adams B Figeroa1009Russia2026-08-03
Leon R Briddick1010Australia2026-07-31
Leon A Malet1011India2026-07-10
Jennifer S Stenseth1012Japan2026-08-04
Jones K Chui1013India2026-07-16
Julie W Whobrey1014Spain2026-07-25
Jeanfrancois M Gaucho1015Russia2026-07-12
Jennifer X Morasca1016India2026-07-25
Smith Y Iturbide1017Russia2026-07-22
Izzy L Figeroa1018Italy2026-08-03
Jones U Slusarski1019Italy2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro K WieserGermanyAmy Elsner RENEWAL
Jones K KuskoJapanAnna Fali RENEWAL
Maisha N GillianBrazilAsiya Javayant UNQUALIFIED
Aditya S MaletCanadaElwin Sharvill UNQUALIFIED
Aditya Z BologniaSpainXuxue Feng QUALIFIED
Misaki L VocelkaItalyAnna Fali NEW
Tony G SlusarskiSpainBernardo Dominic PROPOSAL
Misaki K SaylorsIndiaIvan Magalhaes NEGOTIATION
Smith X VenereSpainIoni Bowcher UNQUALIFIED
Greenwood C CampainGermanyBernardo Dominic QUALIFIED
Cody I DilliardItalyElwin Sharvill QUALIFIED
Octavia N MaletIndiaElwin Sharvill PROPOSAL
Costa J StensethBrazilElwin Sharvill NEGOTIATION
Alejandro S SchemmerRussiaBernardo Dominic NEGOTIATION
Faith M MaletCanadaBernardo Dominic RENEWAL
James D PerinBrazilAmy Elsner NEW
Octavia R TollnerFranceBernardo Dominic NEW
Murillo V MarrierUnited KingdomBernardo Dominic NEW
Ricardo S MacleadSpainIoni Bowcher UNQUALIFIED
Johnson U InouyeUnited KingdomElwin Sharvill NEW
Wickens W VenereCanadaBernardo Dominic NEGOTIATION
Adams X FlosiArgentinaAsiya Javayant NEW
Munro B PaprockiCanadaIoni Bowcher PROPOSAL
Misaki E MaletAustraliaBernardo Dominic PROPOSAL
Jefferson B MacleadGermanyIoni Bowcher PROPOSAL
Arvin K FigeroaRussiaAsiya Javayant PROPOSAL
Maisha E RulapaughFranceAmy Elsner PROPOSAL
Juan D RoysterJapanAmy Elsner UNQUALIFIED
Kadeem L PoquetteIndiaAsiya Javayant NEGOTIATION
Ashley F VenereCanadaIoni Bowcher UNQUALIFIED
Ashley C OldroydItalyIvan Magalhaes QUALIFIED
Smith D DilliardArgentinaOnyama Limba RENEWAL
Aika L VocelkaFranceAnna Fali RENEWAL
Alejandro J FigeroaCanadaOnyama Limba NEW
Ricardo O CampainFranceOnyama Limba PROPOSAL
Murillo A FollerFranceBernardo Dominic PROPOSAL
Antonio V TollnerUnited KingdomBernardo Dominic NEW
David B ButtArgentinaStephen Shaw UNQUALIFIED
Mayumi T SchemmerGermanyAnna Fali UNQUALIFIED
Deepesh O WhobreyItalyIoni Bowcher 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>