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
Faith Q FerenczRussiaOnyama Limba PROPOSAL
Cody S TollnerCanadaAsiya Javayant PROPOSAL
Stacey Q VenereArgentinaBernardo Dominic PROPOSAL
Aruna E ChuiItalyStephen Shaw QUALIFIED
Antonio V ShinkoFranceAmy Elsner NEW
Morrow R WieserArgentinaIvan Magalhaes RENEWAL
Chavez K CaudyUnited KingdomAsiya Javayant NEW
Claire O OldroydUnited KingdomXuxue Feng RENEWAL
Claire W ButtUnited KingdomStephen Shaw QUALIFIED
Smith D DilliardIndiaAsiya Javayant NEW
Misaki E BologniaRussiaStephen Shaw UNQUALIFIED
Arvin X RutaArgentinaAnna Fali NEW
Misaki N PerinAustraliaOnyama Limba PROPOSAL
Francesco S OldroydItalyIvan Magalhaes NEGOTIATION
Misaki K CampainIndiaAnna Fali PROPOSAL
Aika V RimIndiaOnyama Limba PROPOSAL
Tony P InouyeGermanyXuxue Feng NEW
Claire L PoquetteBrazilAmy Elsner UNQUALIFIED
Leon V MaletItalyIoni Bowcher NEW
Ivar G MorascaSpainIvan Magalhaes PROPOSAL
Jones L StockhamUnited KingdomStephen Shaw NEW
Mayumi D StensethRussiaIvan Magalhaes QUALIFIED
Kaitlin R SchemmerJapanIvan Magalhaes NEW
Sinclair Z ShinkoUnited KingdomElwin Sharvill RENEWAL
Arvin I CaudyUnited KingdomStephen Shaw UNQUALIFIED
Morrow B WhobreyItalyAsiya Javayant NEGOTIATION
Silvio X DarakjyIndiaIoni Bowcher UNQUALIFIED
Silvio E MaletFranceBernardo Dominic PROPOSAL
Arvin N CaudyAustraliaIvan Magalhaes NEW
Arvin N GillianCanadaIoni Bowcher NEGOTIATION
Morrow D BowleyItalyAmy Elsner PROPOSAL
Tony T WaycottJapanAsiya Javayant RENEWAL
Stacey V StensethSpainElwin Sharvill RENEWAL
Jennifer S SchemmerSpainOnyama Limba RENEWAL
Mujtaba G FollerBrazilXuxue Feng UNQUALIFIED
Sinclair N PoquetteJapanAmy Elsner QUALIFIED
Jeanfrancois M GauchoJapanAsiya Javayant NEGOTIATION
Tony J WhobreyIndiaIoni Bowcher UNQUALIFIED
Leja U RoysterUnited KingdomIoni Bowcher QUALIFIED
David R TollnerArgentinaAmy Elsner NEW
Chavez A WaycottAustraliaAsiya Javayant NEW
Deepesh G RutaAustraliaIvan Magalhaes PROPOSAL
Munro F AlbaresCanadaStephen Shaw RENEWAL
Jefferson P NestleCanadaIoni Bowcher NEGOTIATION
Aika S FollerArgentinaAnna Fali NEW
Francesco H SchemmerSpainAnna Fali NEW
Morrow D PoquetteAustraliaOnyama Limba UNQUALIFIED
Smith K WaycottGermanyElwin Sharvill QUALIFIED
Darci F KolmetzSpainAsiya Javayant RENEWAL
Jones P VenereIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi L DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Arvin Y GillianFranceStephen Shaw NEGOTIATION
Deepesh E StensethIndiaBernardo Dominic RENEWAL
Faith D FlosiGermanyOnyama Limba RENEWAL
Wickens V TollnerItalyOnyama Limba NEW
Arvin L PerinIndiaAnna Fali PROPOSAL
Stacey V ShinkoJapanElwin Sharvill NEW
Antonio B MarrierUnited KingdomStephen Shaw RENEWAL
Alejandro O GauchoSpainIvan Magalhaes UNQUALIFIED
Francesco J CaudyUnited KingdomElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco S RimIndia2026-07-12Rousseaux, Michael Esq RENEWAL15Bernardo Dominic
1001Smith P TollnerArgentina2026-07-19Rangoni Of Florence RENEWAL16Amy Elsner
1002Izzy X OldroydJapan2026-07-06Commercial Press UNQUALIFIED23Onyama Limba
1003Kaitlin H FlosiGermany2026-07-08Printing Dimensions PROPOSAL39Xuxue Feng
1004Jones J SergiAustralia2026-07-19Truhlar And Truhlar Attys RENEWAL3Ivan Magalhaes
1005Claire U KuskoCanada2026-07-11Chanay, Jeffrey A Esq NEW96Onyama Limba
1006Leja J ButtRussia2026-06-25Dorl, James J Esq QUALIFIED22Asiya Javayant
1007Ricardo L RutaSpain2026-07-15Rangoni Of Florence NEGOTIATION22Ioni Bowcher
1008Deepesh F OstroskyAustralia2026-06-22Truhlar And Truhlar Attys RENEWAL98Asiya Javayant
1009Smith V KolmetzIndia2026-07-20Feiner Bros RENEWAL20Bernardo Dominic
1010Wickens Y GlickIndia2026-06-26Feiner Bros RENEWAL75Ivan Magalhaes
1011Jefferson T StockhamSpain2026-07-12Chapman, Ross E Esq UNQUALIFIED35Onyama Limba
1012Mayumi A MarrierRussia2026-06-24Rangoni Of Florence RENEWAL28Onyama Limba
1013Deepesh M RoysterSpain2026-07-18Morlong Associates NEW24Anna Fali
1014Leon B RutaGermany2026-07-02Truhlar And Truhlar Attys PROPOSAL58Elwin Sharvill
1015Smith J SergiCanada2026-07-06Feiner Bros QUALIFIED76Ioni Bowcher
1016Stacey R SchemmerUnited Kingdom2026-06-24Benton, John B Jr PROPOSAL87Xuxue Feng
1017Juan R VocelkaUnited Kingdom2026-07-11Feiner Bros NEGOTIATION29Amy Elsner
1018Francesco H DoeItaly2026-06-29Dorl, James J Esq RENEWAL65Anna Fali
1019Faith W NestleJapan2026-07-19Truhlar And Truhlar Attys UNQUALIFIED29Stephen Shaw
1020Leja Z RimRussia2026-06-30Feltz Printing Service NEGOTIATION94Onyama Limba
1021Misaki D RimAustralia2026-07-02Buckley Miller Wright NEW34Xuxue Feng
1022Jefferson M RutaArgentina2026-07-01Chanay, Jeffrey A Esq QUALIFIED23Onyama Limba
1023Wickens Q SergiCanada2026-07-02Buckley Miller Wright QUALIFIED91Asiya Javayant
1024Antonio T ChuiAustralia2026-06-22Buckley Miller Wright RENEWAL51Xuxue Feng
1025Munro C MacleadUnited Kingdom2026-07-11Feltz Printing Service RENEWAL75Amy Elsner
1026Maisha I FerenczRussia2026-06-24Feltz Printing Service UNQUALIFIED31Bernardo Dominic
1027Claire A FollerJapan2026-07-06Buckley Miller Wright RENEWAL52Stephen Shaw
1028Clifford V CaudyCanada2026-07-15Chapman, Ross E Esq NEW30Asiya Javayant
1029Antonio D AmigonRussia2026-07-02Rousseaux, Michael Esq PROPOSAL87Ioni Bowcher
1030Deepesh D FlosiFrance2026-07-19Dorl, James J Esq QUALIFIED79Asiya Javayant
1031Juan F DilliardRussia2026-07-08King, Christopher A Esq PROPOSAL44Ioni Bowcher
1032David H GillianSpain2026-07-11Dorl, James J Esq NEW91Ioni Bowcher
1033Deepesh Z MaletSpain2026-07-15Rangoni Of Florence QUALIFIED81Bernardo Dominic
1034Izzy H PerinFrance2026-07-08Rousseaux, Michael Esq NEGOTIATION97Asiya Javayant
1035Salvatore X MorascaBrazil2026-07-20Morlong Associates UNQUALIFIED93Bernardo Dominic
1036Morrow O PaprockiSpain2026-07-04Feltz Printing Service PROPOSAL8Bernardo Dominic
1037Jefferson P SergiIndia2026-07-14Chemel, James L Cpa QUALIFIED4Ioni Bowcher
1038Wickens N MarrierIndia2026-07-12Morlong Associates QUALIFIED68Onyama Limba
1039Rodrigues D StockhamSpain2026-07-20Rousseaux, Michael Esq PROPOSAL22Xuxue Feng
1040Leja N FigeroaGermany2026-07-17Feiner Bros UNQUALIFIED77Onyama Limba
1041Maria D NestleBrazil2026-07-06Buckley Miller Wright RENEWAL75Anna Fali
1042Smith T SaylorsFrance2026-07-16King, Christopher A Esq RENEWAL24Stephen Shaw
1043Ricardo L OstroskyItaly2026-06-22Rangoni Of Florence NEW53Amy Elsner
1044Maria N KuskoJapan2026-06-22Commercial Press PROPOSAL89Ioni Bowcher
1045Emily G ShinkoUnited Kingdom2026-06-28Chanay, Jeffrey A Esq PROPOSAL21Asiya Javayant
1046Kaitlin U MaletCanada2026-07-19Rousseaux, Michael Esq NEGOTIATION86Elwin Sharvill
1047Mujtaba Z RutaBrazil2026-07-08Dorl, James J Esq NEGOTIATION29Ivan Magalhaes
1048Mayumi S MaletCanada2026-06-23Rousseaux, Michael Esq PROPOSAL60Stephen Shaw
1049Juan H WhobreyArgentina2026-07-19Chapman, Ross E Esq RENEWAL73Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mayumi J VenereItalyIoni Bowcher QUALIFIED
Mujtaba S RimArgentinaIoni Bowcher NEW
Aditya B SlusarskiAustraliaXuxue Feng NEW
Salvatore A DoeAustraliaStephen Shaw RENEWAL
Leja X ButtIndiaIoni Bowcher QUALIFIED
Maisha P OstroskyArgentinaIvan Magalhaes PROPOSAL
Leon O ChuiItalyAmy Elsner PROPOSAL
David Z DoeCanadaAsiya Javayant NEGOTIATION
Octavia X NestleFranceIoni Bowcher NEGOTIATION
Kaitlin S GarufiJapanBernardo Dominic RENEWAL
Faith U ButtIndiaAnna Fali QUALIFIED
Wickens P OldroydGermanyAmy Elsner NEW
Murillo E OldroydItalyAmy Elsner RENEWAL
Aruna B MaletSpainXuxue Feng RENEWAL
Smith P MaletGermanyStephen Shaw QUALIFIED
Chavez M ShinkoFranceIvan Magalhaes RENEWAL
Jeanfrancois A NickaUnited KingdomIvan Magalhaes NEW
Julie J ShinkoFranceIoni Bowcher PROPOSAL
Stacey B ShinkoGermanyAmy Elsner RENEWAL
Faith L OldroydBrazilXuxue Feng RENEWAL
Maisha N BowleyJapanAnna Fali UNQUALIFIED
Francesco V RimIndiaIoni Bowcher PROPOSAL
James G OstroskyGermanyBernardo Dominic RENEWAL
Faith I MorascaAustraliaXuxue Feng NEW
Ivar K KuskoGermanyBernardo Dominic QUALIFIED
Deepesh T ChuiSpainAsiya Javayant UNQUALIFIED
Aika V AlbaresUnited KingdomStephen Shaw PROPOSAL
Emily G FlosiJapanIoni Bowcher NEW
Clifford B NickaCanadaIoni Bowcher NEW
Maisha K ButtArgentinaAsiya Javayant NEGOTIATION
Smith J BriddickFranceIoni Bowcher PROPOSAL
Aditya A FollerItalyStephen Shaw PROPOSAL
Faith U ButtBrazilIoni Bowcher PROPOSAL
Juan G DilliardArgentinaStephen Shaw UNQUALIFIED
Ashley X SaylorsCanadaAsiya Javayant NEW
Arvin O FollerFranceAmy Elsner NEGOTIATION
Mujtaba G MorascaUnited KingdomBernardo Dominic NEW
Claire J OldroydFranceOnyama Limba UNQUALIFIED
Ivar Z GlickSpainIoni Bowcher UNQUALIFIED
Emily P AmigonArgentinaIoni Bowcher NEW
Costa O IturbideArgentinaAnna Fali RENEWAL
Izzy V OldroydArgentinaStephen Shaw NEW
Wickens E SergiSpainStephen Shaw PROPOSAL
Emily O PaprockiAustraliaXuxue Feng NEGOTIATION
Costa H MaletIndiaBernardo Dominic NEW
Mayumi A KolmetzRussiaAnna Fali NEGOTIATION
David Y CaldareraIndiaOnyama Limba PROPOSAL
Mayumi B FerenczSpainIvan Magalhaes QUALIFIED
Ivar E SlusarskiIndiaOnyama Limba NEW
Aika N WieserFranceAnna Fali PROPOSAL
Frozen Columns
Name
Stacey F Inouye
Darci C Slusarski
Arvin S Glick
Faith X Gaucho
Chavez D Malet
Maisha C Flosi
Julie G Gaucho
Munro L Gillian
Stacey M Amigon
Darci K Saylors
Cody B Schemmer
Kaitlin U Royster
Ivar D Glick
Juan X Garufi
Aruna P Ferencz
Aditya U Vocelka
Antonio T Schemmer
Ivar Y Saylors
Kaitlin Q Paprocki
Munro E Ostrosky
Faith R Rim
Jefferson C Waycott
Murillo F Royster
Kaitlin V Poquette
Aruna I Figeroa
Aruna P Nicka
Nicolas Y Schemmer
Francesco W Darakjy
Ashley X Briddick
Antonio U Royster
Silvio P Nestle
Aika U Sergi
James T Ferencz
Aditya O Figeroa
Mujtaba X Nicka
Alejandro R Garufi
Rodrigues F Marrier
Misaki L Wieser
Claire N Oldroyd
Octavia W Rulapaugh
Jefferson T Albares
Deepesh M Marrier
Octavia Y Sergi
Jennifer D Perin
Jones Q Kusko
Maisha W Caldarera
Adams W Vocelka
Johnson L Figeroa
Tony U Rulapaugh
Chavez J Slusarski
IdCountryDate
1000Spain2026-06-26
1001Japan2026-07-03
1002United Kingdom2026-06-21
1003India2026-07-20
1004Italy2026-06-25
1005Australia2026-07-06
1006Japan2026-06-21
1007Japan2026-07-07
1008Australia2026-07-20
1009Japan2026-07-04
1010Japan2026-07-16
1011Argentina2026-07-19
1012India2026-07-04
1013India2026-06-21
1014Australia2026-06-25
1015Germany2026-07-14
1016Japan2026-07-18
1017United Kingdom2026-07-13
1018Russia2026-07-16
1019Russia2026-06-22
1020Canada2026-07-14
1021France2026-07-17
1022Germany2026-06-21
1023Argentina2026-06-23
1024Spain2026-07-04
1025Spain2026-07-04
1026United Kingdom2026-07-01
1027Spain2026-07-09
1028France2026-07-02
1029Italy2026-07-06
1030Argentina2026-06-22
1031Germany2026-06-24
1032Canada2026-07-07
1033United Kingdom2026-07-12
1034Australia2026-07-05
1035Russia2026-06-26
1036Italy2026-06-25
1037Australia2026-06-23
1038France2026-06-24
1039United Kingdom2026-06-27
1040Australia2026-07-08
1041Canada2026-07-07
1042Spain2026-06-30
1043Italy2026-06-25
1044Australia2026-06-21
1045Germany2026-07-10
1046United Kingdom2026-06-21
1047Italy2026-07-07
1048Brazil2026-06-26
1049Australia2026-07-15

On-Demand Data

NameIdCountryDate
Deepesh C Garufi1000Italy2026-07-19
Kaitlin I Figeroa1001Canada2026-07-13
Greenwood H Tollner1002Russia2026-07-18
Darci F Caudy1003India2026-07-19
Stacey H Poquette1004Brazil2026-06-21
Leja A Albares1005Italy2026-07-10
Greenwood G Briddick1006Argentina2026-07-04
Jennifer Z Paprocki1007Spain2026-07-04
Claire I Chui1008Italy2026-07-01
Stacey Q Doe1009Russia2026-06-26
Kadeem S Ferencz1010Russia2026-07-05
Jones G Garufi1011Australia2026-07-01
Maisha G Nestle1012Spain2026-06-24
Juan V Campain1013Argentina2026-06-30
Cody B Iturbide1014Argentina2026-07-16
Aruna Y Kusko1015Brazil2026-07-09
James M Ruta1016Australia2026-07-15
Wickens X Glick1017France2026-07-01
Julie O Paprocki1018Argentina2026-07-02
Aika F Nicka1019Spain2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya V WieserCanadaIvan Magalhaes NEW
Jeanfrancois G OstroskyUnited KingdomBernardo Dominic QUALIFIED
Octavia M MorascaGermanyXuxue Feng NEW
Arvin R PaprockiJapanElwin Sharvill QUALIFIED
Stacey Z OstroskyRussiaBernardo Dominic UNQUALIFIED
Alejandro B WaycottJapanAsiya Javayant RENEWAL
Emily D BologniaBrazilIoni Bowcher PROPOSAL
Clifford S StensethJapanBernardo Dominic UNQUALIFIED
Mayumi R CampainGermanyElwin Sharvill NEGOTIATION
Salvatore P BowleyBrazilBernardo Dominic PROPOSAL
Alejandro W TollnerIndiaStephen Shaw PROPOSAL
Munro X StockhamGermanyAnna Fali UNQUALIFIED
Julie X GauchoArgentinaElwin Sharvill PROPOSAL
Stacey M BriddickCanadaElwin Sharvill NEGOTIATION
Octavia I VenereSpainIoni Bowcher NEGOTIATION
Jeanfrancois K PerinUnited KingdomElwin Sharvill UNQUALIFIED
Maria F MarrierArgentinaBernardo Dominic PROPOSAL
Aruna W GauchoFranceElwin Sharvill UNQUALIFIED
Clifford E PoquetteGermanyIoni Bowcher PROPOSAL
Claire W FollerAustraliaIoni Bowcher PROPOSAL
Mayumi R OstroskyIndiaOnyama Limba PROPOSAL
Clifford C ButtSpainIoni Bowcher RENEWAL
Misaki I MaletItalyElwin Sharvill NEGOTIATION
Silvio Z SlusarskiJapanAsiya Javayant QUALIFIED
Jennifer X BowleyRussiaStephen Shaw NEGOTIATION
Jefferson G DarakjyGermanyStephen Shaw QUALIFIED
Isabel J PerinArgentinaIoni Bowcher NEW
Deepesh I CaudyIndiaAnna Fali NEGOTIATION
Nicolas I FerenczJapanAmy Elsner QUALIFIED
Maria J GarufiRussiaBernardo Dominic PROPOSAL
Leja N CaldareraGermanyAmy Elsner NEW
Nicolas Y FerenczArgentinaAsiya Javayant QUALIFIED
Cody H PaprockiIndiaIoni Bowcher PROPOSAL
Clifford J FerenczFranceAmy Elsner RENEWAL
Izzy N InouyeUnited KingdomAnna Fali NEW
David P SlusarskiBrazilAmy Elsner UNQUALIFIED
Alejandro N NickaArgentinaIoni Bowcher NEW
Rodrigues B FollerItalyStephen Shaw QUALIFIED
Nicolas Z WhobreyBrazilStephen Shaw UNQUALIFIED
Costa C CaldareraCanadaOnyama Limba 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>