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 F NickaBrazilBernardo Dominic QUALIFIED
Costa E RoysterArgentinaAsiya Javayant NEGOTIATION
Wickens A MacleadJapanStephen Shaw QUALIFIED
Adams P MarrierArgentinaAmy Elsner NEGOTIATION
Faith O NestleBrazilXuxue Feng UNQUALIFIED
Morrow K RoysterFranceIoni Bowcher QUALIFIED
Leja F NickaRussiaAmy Elsner NEGOTIATION
Kaitlin C WaycottUnited KingdomAnna Fali UNQUALIFIED
Leja T PerinJapanOnyama Limba NEGOTIATION
Aditya L RimItalyElwin Sharvill RENEWAL
Deepesh C GillianIndiaAmy Elsner UNQUALIFIED
Rodrigues M MacleadFranceStephen Shaw NEW
Jeanfrancois K DarakjyFranceAnna Fali NEW
Claire H StensethUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois X TollnerIndiaOnyama Limba RENEWAL
Maisha W WhobreyIndiaOnyama Limba RENEWAL
Jones X PoquetteAustraliaElwin Sharvill QUALIFIED
Isabel C StockhamSpainStephen Shaw NEGOTIATION
Izzy U OldroydAustraliaBernardo Dominic NEW
Misaki U ChuiGermanyIoni Bowcher RENEWAL
Juan A BriddickIndiaXuxue Feng PROPOSAL
Jefferson X FigeroaIndiaElwin Sharvill PROPOSAL
Tony B FollerItalyXuxue Feng NEW
David F PoquetteSpainStephen Shaw RENEWAL
Claire S MarrierJapanAnna Fali PROPOSAL
Mayumi D KolmetzJapanBernardo Dominic PROPOSAL
Aruna A MaletJapanIvan Magalhaes UNQUALIFIED
Wickens O KuskoBrazilIoni Bowcher UNQUALIFIED
Jeanfrancois Y NestleFranceElwin Sharvill RENEWAL
Antonio P BologniaSpainXuxue Feng NEGOTIATION
Chavez K MaletJapanBernardo Dominic NEW
Jeanfrancois C CampainJapanBernardo Dominic PROPOSAL
Claire U StockhamItalyStephen Shaw QUALIFIED
Darci W StensethJapanStephen Shaw QUALIFIED
Emily I FollerItalyBernardo Dominic RENEWAL
Izzy M SchemmerIndiaAsiya Javayant NEGOTIATION
Nicolas H AlbaresSpainBernardo Dominic PROPOSAL
Greenwood S SchemmerSpainAmy Elsner QUALIFIED
Juan Y ChuiFranceXuxue Feng QUALIFIED
James Y BriddickIndiaAsiya Javayant QUALIFIED
Adams Z SlusarskiBrazilBernardo Dominic PROPOSAL
Maria G MacleadJapanAmy Elsner NEGOTIATION
Jones Z FerenczArgentinaIoni Bowcher RENEWAL
Leon L NestleUnited KingdomBernardo Dominic UNQUALIFIED
Faith P MaletRussiaAmy Elsner NEGOTIATION
Clifford U NickaArgentinaAsiya Javayant RENEWAL
Ivar N NestleBrazilOnyama Limba NEW
Maisha E WaycottUnited KingdomElwin Sharvill QUALIFIED
Julie G WaycottSpainStephen Shaw RENEWAL
Leja T MorascaAustraliaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie U MaletJapanIoni Bowcher PROPOSAL
Jones I GlickUnited KingdomIoni Bowcher NEW
Jennifer U MaletFranceAmy Elsner RENEWAL
Wickens J MorascaJapanXuxue Feng PROPOSAL
Jefferson T NickaSpainAmy Elsner RENEWAL
Izzy H AlbaresCanadaIoni Bowcher QUALIFIED
Aika O RulapaughSpainAsiya Javayant PROPOSAL
Antonio A GarufiCanadaIvan Magalhaes NEW
Morrow X CaldareraSpainIoni Bowcher PROPOSAL
Aruna M FigeroaCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood H OstroskySpain2026-08-07Morlong Associates UNQUALIFIED45Anna Fali
1001Julie Y AlbaresAustralia2026-07-30Chanay, Jeffrey A Esq RENEWAL8Anna Fali
1002Chavez B ChuiCanada2026-08-07King, Christopher A Esq QUALIFIED91Onyama Limba
1003Aditya O FollerCanada2026-08-09Commercial Press NEW41Stephen Shaw
1004Alejandro N MaletFrance2026-07-28Rousseaux, Michael Esq RENEWAL14Bernardo Dominic
1005Ricardo D InouyeAustralia2026-08-04Feltz Printing Service NEGOTIATION84Xuxue Feng
1006Juan V FerenczItaly2026-08-03Dorl, James J Esq QUALIFIED0Amy Elsner
1007Morrow T NickaUnited Kingdom2026-07-20King, Christopher A Esq QUALIFIED92Onyama Limba
1008Leon X ChuiJapan2026-08-02Feltz Printing Service QUALIFIED48Bernardo Dominic
1009Mujtaba Y ButtItaly2026-08-09Chemel, James L Cpa NEGOTIATION70Onyama Limba
1010Claire P PaprockiUnited Kingdom2026-08-14Dorl, James J Esq QUALIFIED28Ivan Magalhaes
1011Arvin R PaprockiUnited Kingdom2026-07-30Printing Dimensions UNQUALIFIED92Amy Elsner
1012Ricardo M PerinGermany2026-07-26Dorl, James J Esq QUALIFIED96Anna Fali
1013Aruna W PoquetteUnited Kingdom2026-08-13Commercial Press NEGOTIATION42Onyama Limba
1014Stacey Q RulapaughRussia2026-08-07Chemel, James L Cpa UNQUALIFIED44Onyama Limba
1015Aika L NickaArgentina2026-07-30Commercial Press PROPOSAL17Ioni Bowcher
1016James C StockhamGermany2026-08-09Rousseaux, Michael Esq QUALIFIED14Asiya Javayant
1017Jones V MaletFrance2026-08-11King, Christopher A Esq NEGOTIATION67Stephen Shaw
1018David C WhobreyUnited Kingdom2026-07-29Rangoni Of Florence PROPOSAL69Ioni Bowcher
1019Chavez G CaudyJapan2026-08-02Chapman, Ross E Esq NEW94Amy Elsner
1020Johnson Z PaprockiRussia2026-08-07Buckley Miller Wright NEGOTIATION26Elwin Sharvill
1021Jones T MaletSpain2026-07-21Buckley Miller Wright RENEWAL9Xuxue Feng
1022David Q RulapaughArgentina2026-08-05Commercial Press PROPOSAL93Bernardo Dominic
1023Mayumi F SaylorsFrance2026-08-12Truhlar And Truhlar Attys UNQUALIFIED21Stephen Shaw
1024Francesco D PaprockiAustralia2026-07-22Commercial Press PROPOSAL93Ivan Magalhaes
1025Leon W GlickRussia2026-07-26Chanay, Jeffrey A Esq RENEWAL19Ivan Magalhaes
1026Costa H SergiFrance2026-07-30Morlong Associates QUALIFIED64Elwin Sharvill
1027Jennifer F AmigonUnited Kingdom2026-07-25Dorl, James J Esq NEGOTIATION60Elwin Sharvill
1028Leja D SaylorsCanada2026-08-10Chanay, Jeffrey A Esq UNQUALIFIED35Onyama Limba
1029Arvin L MorascaRussia2026-07-29Morlong Associates NEW32Anna Fali
1030Aruna J FigeroaItaly2026-07-26Feiner Bros QUALIFIED97Asiya Javayant
1031Mujtaba P BologniaGermany2026-07-21Truhlar And Truhlar Attys QUALIFIED10Bernardo Dominic
1032Jones Q RulapaughArgentina2026-07-31Dorl, James J Esq UNQUALIFIED5Bernardo Dominic
1033Emily L CaldareraJapan2026-08-10Buckley Miller Wright NEW98Anna Fali
1034Emily B WaycottSpain2026-07-24Morlong Associates NEW40Anna Fali
1035Jones P PerinArgentina2026-08-01Commercial Press UNQUALIFIED62Xuxue Feng
1036Francesco O FlosiAustralia2026-08-03Dorl, James J Esq NEW79Stephen Shaw
1037Julie Z NickaGermany2026-08-03Feiner Bros UNQUALIFIED26Elwin Sharvill
1038Emily R SchemmerSpain2026-08-03Truhlar And Truhlar Attys UNQUALIFIED9Asiya Javayant
1039Jeanfrancois B OldroydArgentina2026-08-04Rangoni Of Florence RENEWAL7Xuxue Feng
1040Munro T TollnerFrance2026-08-07King, Christopher A Esq NEW57Anna Fali
1041Stacey U KolmetzIndia2026-08-09Buckley Miller Wright NEGOTIATION32Anna Fali
1042Morrow Q CampainSpain2026-07-27Chanay, Jeffrey A Esq NEW68Asiya Javayant
1043Ivar A MarrierAustralia2026-08-06Chemel, James L Cpa PROPOSAL15Anna Fali
1044Jones A PerinBrazil2026-08-04Chanay, Jeffrey A Esq QUALIFIED40Anna Fali
1045Stacey W CaudyItaly2026-07-30Chanay, Jeffrey A Esq QUALIFIED62Xuxue Feng
1046Arvin M FerenczIndia2026-07-26Morlong Associates NEGOTIATION62Asiya Javayant
1047Izzy R OldroydUnited Kingdom2026-08-01Truhlar And Truhlar Attys NEGOTIATION62Xuxue Feng
1048Arvin L PaprockiIndia2026-07-31Rangoni Of Florence NEGOTIATION41Bernardo Dominic
1049Leja O ButtArgentina2026-08-07Printing Dimensions PROPOSAL27Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Johnson V NestleItalyAmy Elsner PROPOSAL
Arvin D WhobreyFranceStephen Shaw PROPOSAL
Jefferson G MorascaArgentinaBernardo Dominic PROPOSAL
Johnson B BriddickJapanAnna Fali QUALIFIED
Antonio V CaudyArgentinaIvan Magalhaes UNQUALIFIED
David W OldroydRussiaOnyama Limba NEGOTIATION
Kadeem Z WaycottArgentinaIvan Magalhaes PROPOSAL
Stacey H RulapaughRussiaStephen Shaw UNQUALIFIED
Julie R FigeroaFranceAnna Fali RENEWAL
Cody W AmigonCanadaElwin Sharvill NEGOTIATION
Ivar J WhobreyUnited KingdomAsiya Javayant NEW
Morrow R AmigonIndiaStephen Shaw NEW
Darci M KuskoGermanyAmy Elsner RENEWAL
Claire A DilliardFranceAmy Elsner NEW
Maisha N GlickBrazilAnna Fali PROPOSAL
Murillo Y GarufiCanadaAsiya Javayant NEGOTIATION
Aditya G PoquetteAustraliaAmy Elsner PROPOSAL
Darci A SaylorsIndiaAsiya Javayant UNQUALIFIED
Ivar G AmigonFranceOnyama Limba NEGOTIATION
Deepesh S NickaRussiaStephen Shaw NEGOTIATION
Clifford R PerinBrazilIoni Bowcher UNQUALIFIED
Stacey B IturbideBrazilOnyama Limba UNQUALIFIED
Ricardo D FerenczJapanStephen Shaw NEGOTIATION
Maisha L InouyeCanadaStephen Shaw NEW
Kadeem O StensethBrazilIvan Magalhaes PROPOSAL
Murillo F ShinkoItalyAsiya Javayant QUALIFIED
Isabel L FlosiItalyOnyama Limba QUALIFIED
James Y PoquetteCanadaStephen Shaw PROPOSAL
Darci N FerenczUnited KingdomStephen Shaw RENEWAL
Aika P ChuiFranceAnna Fali QUALIFIED
Francesco N AmigonItalyStephen Shaw UNQUALIFIED
Isabel G MaletRussiaIvan Magalhaes NEW
Jeanfrancois V ShinkoBrazilStephen Shaw RENEWAL
Aruna J AmigonArgentinaOnyama Limba NEW
Leja J PoquetteAustraliaIoni Bowcher UNQUALIFIED
Misaki R OstroskyCanadaStephen Shaw UNQUALIFIED
Nicolas W StensethJapanAsiya Javayant PROPOSAL
Darci H AmigonCanadaBernardo Dominic NEGOTIATION
Julie W VenereItalyBernardo Dominic RENEWAL
Francesco Q NestleUnited KingdomOnyama Limba NEW
Aditya G MarrierGermanyStephen Shaw PROPOSAL
Arvin R WieserIndiaStephen Shaw UNQUALIFIED
Emily P MarrierBrazilXuxue Feng NEW
Ivar N KuskoSpainAnna Fali QUALIFIED
Munro P WhobreyJapanIvan Magalhaes PROPOSAL
Ashley J ShinkoAustraliaAmy Elsner NEW
Isabel R GillianAustraliaStephen Shaw NEW
Ricardo F TollnerUnited KingdomAsiya Javayant PROPOSAL
Mujtaba W InouyeAustraliaIvan Magalhaes NEW
Costa B CaudyIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Ashley N Nestle
Costa C Glick
Maria S Rulapaugh
Kaitlin G Figeroa
Maria G Butt
Leon E Tollner
Francesco L Albares
Leja G Inouye
Jefferson J Poquette
Tony R Shinko
Aditya Z Perin
Alejandro L Nestle
Juan J Whobrey
Ricardo R Amigon
Smith K Ferencz
Ashley A Malet
Ivar E Kusko
Cody B Inouye
Aruna Z Albares
Maria P Butt
Chavez X Caudy
Leon R Gillian
Ricardo L Darakjy
Johnson L Maclead
Adams U Whobrey
Darci T Dilliard
Aditya K Maclead
Maisha N Flosi
Jones Y Iturbide
Izzy B Royster
Costa C Ruta
Antonio C Doe
Mayumi L Gillian
Greenwood I Tollner
Sinclair C Tollner
David R Kolmetz
James G Foller
Stacey M Briddick
Juan Z Butt
Izzy V Flosi
Salvatore F Schemmer
Faith R Inouye
Silvio A Poquette
Deepesh K Amigon
Wickens R Foller
Ricardo U Morasca
Nicolas U Stenseth
Stacey Q Waycott
Antonio S Kusko
Cody W Maclead
IdCountryDate
1000Russia2026-08-03
1001Germany2026-07-28
1002Argentina2026-08-13
1003United Kingdom2026-08-14
1004Canada2026-07-27
1005Canada2026-08-07
1006Australia2026-07-29
1007Germany2026-08-10
1008Russia2026-08-03
1009United Kingdom2026-07-24
1010Italy2026-07-29
1011Russia2026-07-26
1012Germany2026-08-15
1013France2026-08-03
1014Japan2026-07-24
1015Brazil2026-08-06
1016Italy2026-07-27
1017Australia2026-08-02
1018Russia2026-07-21
1019India2026-08-14
1020Japan2026-08-11
1021India2026-08-04
1022United Kingdom2026-07-25
1023Canada2026-08-04
1024Brazil2026-08-01
1025Canada2026-08-13
1026Australia2026-07-25
1027Italy2026-07-30
1028Canada2026-07-20
1029Brazil2026-07-26
1030India2026-08-11
1031Canada2026-07-18
1032Italy2026-08-15
1033Italy2026-08-14
1034Russia2026-07-19
1035Italy2026-07-23
1036Argentina2026-07-30
1037Germany2026-08-08
1038Canada2026-08-03
1039France2026-08-08
1040Spain2026-07-29
1041Russia2026-08-14
1042Germany2026-07-26
1043Spain2026-08-13
1044Brazil2026-08-13
1045Japan2026-07-27
1046Italy2026-07-17
1047India2026-07-23
1048Canada2026-07-17
1049Italy2026-08-03

On-Demand Data

NameIdCountryDate
Jennifer F Campain1000Canada2026-08-02
Francesco M Perin1001Russia2026-08-03
David U Shinko1002France2026-08-12
Leon H Nicka1003Argentina2026-08-06
James M Ostrosky1004Brazil2026-07-22
Kaitlin S Malet1005United Kingdom2026-08-04
Francesco Z Whobrey1006India2026-08-08
Antonio U Glick1007Italy2026-08-04
Francesco P Ruta1008Argentina2026-07-24
Julie D Shinko1009Spain2026-08-01
Darci N Caudy1010Germany2026-07-24
Izzy N Garufi1011Japan2026-08-05
Smith E Ruta1012Brazil2026-08-04
Mujtaba Y Ruta1013Australia2026-07-23
James J Tollner1014Russia2026-07-18
Ivar I Waycott1015Australia2026-08-12
Ricardo I Figeroa1016France2026-08-12
Jennifer M Kolmetz1017Russia2026-07-27
Jennifer W Gillian1018India2026-07-31
Adams B Kolmetz1019Germany2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones U PoquetteGermanyIvan Magalhaes RENEWAL
Isabel R FigeroaCanadaAmy Elsner QUALIFIED
Emily M OstroskyArgentinaIvan Magalhaes PROPOSAL
Adams C PoquetteJapanOnyama Limba PROPOSAL
Jeanfrancois D MacleadSpainBernardo Dominic RENEWAL
David A DarakjyRussiaStephen Shaw RENEWAL
Octavia C SergiArgentinaIvan Magalhaes RENEWAL
James I MaletArgentinaElwin Sharvill NEGOTIATION
Faith K MaletCanadaAmy Elsner NEW
Nicolas Z ShinkoIndiaOnyama Limba RENEWAL
Munro J FollerCanadaOnyama Limba QUALIFIED
Kadeem N DarakjyAustraliaAsiya Javayant UNQUALIFIED
Rodrigues P NestleJapanIvan Magalhaes PROPOSAL
Greenwood A SaylorsGermanyOnyama Limba PROPOSAL
Murillo L SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Jones X MacleadIndiaXuxue Feng RENEWAL
Murillo X DilliardCanadaIvan Magalhaes NEGOTIATION
Deepesh V FollerGermanyBernardo Dominic RENEWAL
Octavia S SlusarskiArgentinaBernardo Dominic RENEWAL
Julie C MarrierCanadaAmy Elsner NEGOTIATION
Aditya L TollnerItalyOnyama Limba NEW
James D NickaJapanAnna Fali QUALIFIED
Adams B SlusarskiAustraliaBernardo Dominic RENEWAL
Murillo J IturbideBrazilOnyama Limba QUALIFIED
Juan S GauchoBrazilAsiya Javayant UNQUALIFIED
Octavia T CampainGermanyIvan Magalhaes RENEWAL
Mujtaba K RimRussiaIvan Magalhaes NEGOTIATION
Ivar Z MaletUnited KingdomBernardo Dominic RENEWAL
Maisha X PerinSpainXuxue Feng QUALIFIED
Francesco K VenereFranceIoni Bowcher NEGOTIATION
Claire G MarrierBrazilIvan Magalhaes QUALIFIED
Rodrigues P GauchoJapanIoni Bowcher NEGOTIATION
Clifford Q VenereFranceBernardo Dominic PROPOSAL
Aika V ChuiArgentinaIvan Magalhaes RENEWAL
Ivar M SergiIndiaIoni Bowcher PROPOSAL
Jefferson B TollnerFranceAsiya Javayant QUALIFIED
Kaitlin I GarufiRussiaIoni Bowcher PROPOSAL
Maria N KuskoGermanyAmy Elsner UNQUALIFIED
Deepesh K WaycottGermanyBernardo Dominic PROPOSAL
Kadeem I PerinJapanStephen Shaw 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>