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
Nicolas M GauchoAustraliaIvan Magalhaes QUALIFIED
Cody B RimArgentinaOnyama Limba QUALIFIED
Kaitlin U MarrierItalyIoni Bowcher NEW
Leon H FlosiAustraliaIvan Magalhaes RENEWAL
Ivar V GauchoIndiaOnyama Limba QUALIFIED
Antonio K ShinkoRussiaBernardo Dominic PROPOSAL
Rodrigues L GauchoSpainIoni Bowcher QUALIFIED
Chavez Q PerinArgentinaElwin Sharvill RENEWAL
Maisha R FlosiSpainIvan Magalhaes NEGOTIATION
Jefferson X PerinRussiaXuxue Feng QUALIFIED
Mayumi X SchemmerAustraliaAnna Fali RENEWAL
Nicolas G SergiRussiaAsiya Javayant NEW
Mujtaba J FigeroaBrazilAnna Fali RENEWAL
Chavez L DarakjyGermanyAnna Fali NEGOTIATION
Nicolas X PoquetteBrazilXuxue Feng NEW
Jeanfrancois W WhobreyItalyXuxue Feng NEW
Jefferson H BologniaFranceIvan Magalhaes QUALIFIED
Salvatore Y GillianGermanyIoni Bowcher UNQUALIFIED
Clifford R VenereArgentinaXuxue Feng RENEWAL
Ashley Z FerenczSpainIoni Bowcher NEGOTIATION
Isabel O GauchoArgentinaOnyama Limba UNQUALIFIED
Deepesh V VenereBrazilIoni Bowcher UNQUALIFIED
Aruna R ChuiJapanIoni Bowcher NEGOTIATION
Munro O GillianSpainBernardo Dominic RENEWAL
Adams Z IturbideFranceIoni Bowcher PROPOSAL
Arvin C TollnerRussiaAmy Elsner PROPOSAL
Clifford H SlusarskiSpainAmy Elsner QUALIFIED
Octavia N OstroskyFranceIoni Bowcher RENEWAL
Wickens S MaletGermanyXuxue Feng NEGOTIATION
Cody M NestleJapanXuxue Feng NEGOTIATION
Aditya J StensethItalyAmy Elsner PROPOSAL
Kadeem G NestleUnited KingdomElwin Sharvill QUALIFIED
Leon R KuskoSpainBernardo Dominic UNQUALIFIED
Darci R InouyeArgentinaAsiya Javayant QUALIFIED
Tony V InouyeBrazilStephen Shaw NEW
Tony X TollnerGermanyAmy Elsner RENEWAL
Nicolas G GlickJapanIvan Magalhaes NEW
Arvin H RutaUnited KingdomBernardo Dominic QUALIFIED
Aditya A ChuiFranceBernardo Dominic NEW
Francesco L MaletIndiaAmy Elsner NEW
Greenwood Q InouyeUnited KingdomStephen Shaw QUALIFIED
Rodrigues B NickaArgentinaOnyama Limba NEGOTIATION
Aruna O GarufiArgentinaIoni Bowcher QUALIFIED
Munro I FigeroaBrazilBernardo Dominic UNQUALIFIED
Juan W FerenczUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois B PerinUnited KingdomAsiya Javayant NEGOTIATION
James Y WieserJapanBernardo Dominic NEW
Kadeem T SergiSpainIvan Magalhaes RENEWAL
Stacey V DilliardCanadaXuxue Feng NEW
Johnson D MacleadIndiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki Q DoeRussiaXuxue Feng NEW
Salvatore W FollerBrazilIvan Magalhaes NEW
Kaitlin U CaudyFranceAsiya Javayant NEW
Jones D WaycottArgentinaIoni Bowcher QUALIFIED
Claire W PaprockiIndiaAnna Fali RENEWAL
Emily Z IturbideJapanAsiya Javayant UNQUALIFIED
Morrow Y ButtFranceElwin Sharvill RENEWAL
Clifford Y BriddickUnited KingdomAsiya Javayant NEGOTIATION
Cody H SergiBrazilIoni Bowcher RENEWAL
Francesco L PaprockiBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair A OldroydArgentina2026-06-26Feltz Printing Service NEGOTIATION36Onyama Limba
1001Ashley P SchemmerItaly2026-06-26Rangoni Of Florence RENEWAL8Asiya Javayant
1002Misaki L GarufiRussia2026-07-18Feltz Printing Service NEW21Asiya Javayant
1003Jones B BologniaBrazil2026-07-14King, Christopher A Esq PROPOSAL55Xuxue Feng
1004Emily S GauchoFrance2026-07-21Feiner Bros PROPOSAL76Elwin Sharvill
1005Aika V MarrierCanada2026-07-12Benton, John B Jr PROPOSAL76Xuxue Feng
1006Deepesh W NestleJapan2026-07-21Commercial Press RENEWAL61Ioni Bowcher
1007Silvio R MacleadJapan2026-06-29Rangoni Of Florence PROPOSAL41Onyama Limba
1008Leja P SchemmerUnited Kingdom2026-07-05Benton, John B Jr PROPOSAL13Asiya Javayant
1009Johnson F CampainSpain2026-07-08Chemel, James L Cpa UNQUALIFIED11Amy Elsner
1010Leja A MaletAustralia2026-07-09Morlong Associates QUALIFIED23Onyama Limba
1011Ivar E ShinkoCanada2026-06-25Chapman, Ross E Esq QUALIFIED86Amy Elsner
1012Isabel P RimCanada2026-07-10Rangoni Of Florence NEGOTIATION18Stephen Shaw
1013Aika N GlickUnited Kingdom2026-07-10Commercial Press UNQUALIFIED33Stephen Shaw
1014Cody I GillianItaly2026-07-12Rousseaux, Michael Esq UNQUALIFIED24Elwin Sharvill
1015Kadeem H DilliardGermany2026-07-04Dorl, James J Esq UNQUALIFIED46Ivan Magalhaes
1016Alejandro G GarufiJapan2026-07-07Chanay, Jeffrey A Esq NEW49Amy Elsner
1017Maria E DoeGermany2026-07-04Dorl, James J Esq NEW12Xuxue Feng
1018Greenwood V NestleFrance2026-07-03Rousseaux, Michael Esq RENEWAL21Stephen Shaw
1019Juan J GillianRussia2026-07-17Benton, John B Jr QUALIFIED69Bernardo Dominic
1020Mujtaba W WaycottAustralia2026-07-12Chemel, James L Cpa NEGOTIATION19Xuxue Feng
1021Jennifer N WhobreySpain2026-07-20Feltz Printing Service PROPOSAL77Onyama Limba
1022Jennifer C WhobreyJapan2026-07-18Dorl, James J Esq QUALIFIED24Asiya Javayant
1023Nicolas R ShinkoRussia2026-07-06Chanay, Jeffrey A Esq NEGOTIATION94Asiya Javayant
1024David C GarufiFrance2026-07-21Printing Dimensions UNQUALIFIED85Ioni Bowcher
1025Deepesh F BologniaIndia2026-07-21Chemel, James L Cpa QUALIFIED20Ivan Magalhaes
1026Adams D FigeroaBrazil2026-06-28Buckley Miller Wright UNQUALIFIED35Elwin Sharvill
1027Arvin Q NestleArgentina2026-07-09Truhlar And Truhlar Attys NEW53Stephen Shaw
1028Aika B BologniaUnited Kingdom2026-07-13Morlong Associates PROPOSAL72Anna Fali
1029Darci J MarrierJapan2026-07-03King, Christopher A Esq NEW40Onyama Limba
1030Johnson L VocelkaArgentina2026-07-15Buckley Miller Wright QUALIFIED77Elwin Sharvill
1031Greenwood F SergiAustralia2026-07-01Chapman, Ross E Esq UNQUALIFIED18Amy Elsner
1032Jones C RulapaughCanada2026-07-03King, Christopher A Esq QUALIFIED26Stephen Shaw
1033Antonio R DilliardGermany2026-07-03Morlong Associates NEW91Bernardo Dominic
1034Isabel M MarrierCanada2026-07-15Dorl, James J Esq NEW72Ioni Bowcher
1035Morrow W BologniaArgentina2026-06-28Dorl, James J Esq RENEWAL88Asiya Javayant
1036Faith Y ButtItaly2026-07-05Chapman, Ross E Esq NEGOTIATION79Onyama Limba
1037Alejandro T AmigonSpain2026-07-20Chemel, James L Cpa PROPOSAL4Stephen Shaw
1038Mayumi M FollerGermany2026-07-08Chapman, Ross E Esq QUALIFIED89Stephen Shaw
1039Faith B MaletSpain2026-07-21Commercial Press NEW72Asiya Javayant
1040Emily O RoysterSpain2026-06-26Chapman, Ross E Esq NEW65Anna Fali
1041Smith R RoysterSpain2026-06-22Commercial Press QUALIFIED81Ivan Magalhaes
1042Misaki O KolmetzItaly2026-07-12Feltz Printing Service NEW45Stephen Shaw
1043Faith X MarrierItaly2026-07-09Buckley Miller Wright PROPOSAL14Ivan Magalhaes
1044Greenwood A PoquetteRussia2026-06-23Dorl, James J Esq UNQUALIFIED59Stephen Shaw
1045Jeanfrancois A AmigonUnited Kingdom2026-07-12Commercial Press PROPOSAL0Bernardo Dominic
1046Octavia Y MarrierArgentina2026-06-30Feltz Printing Service UNQUALIFIED74Asiya Javayant
1047Munro J BologniaSpain2026-07-06Rousseaux, Michael Esq RENEWAL71Ioni Bowcher
1048Arvin B VocelkaJapan2026-07-21Rousseaux, Michael Esq NEW14Onyama Limba
1049Nicolas S BologniaSpain2026-06-28King, Christopher A Esq UNQUALIFIED51Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson M MacleadItalyXuxue Feng UNQUALIFIED
Costa I RulapaughJapanElwin Sharvill NEGOTIATION
Juan Q RimUnited KingdomOnyama Limba QUALIFIED
Ashley G FerenczUnited KingdomBernardo Dominic UNQUALIFIED
Costa U RutaUnited KingdomOnyama Limba QUALIFIED
Rodrigues F DilliardGermanyElwin Sharvill NEW
Leja A FerenczSpainElwin Sharvill NEGOTIATION
Leon D AmigonBrazilIoni Bowcher PROPOSAL
Mayumi Z MaletItalyIoni Bowcher RENEWAL
Juan L BowleyCanadaIvan Magalhaes NEGOTIATION
Antonio H GauchoJapanElwin Sharvill UNQUALIFIED
Cody K CaudyJapanAnna Fali QUALIFIED
Rodrigues L PoquetteArgentinaElwin Sharvill QUALIFIED
Mayumi Z ShinkoGermanyIoni Bowcher PROPOSAL
Jefferson A PoquetteSpainOnyama Limba QUALIFIED
Stacey X WaycottFranceElwin Sharvill PROPOSAL
Izzy A OstroskyJapanIoni Bowcher PROPOSAL
Chavez N AlbaresArgentinaIvan Magalhaes RENEWAL
Ashley L AlbaresArgentinaIoni Bowcher NEW
James S WhobreyUnited KingdomIoni Bowcher NEW
Adams S GlickUnited KingdomOnyama Limba RENEWAL
Aditya M RoysterUnited KingdomAsiya Javayant NEGOTIATION
Francesco C KolmetzRussiaElwin Sharvill RENEWAL
Claire Q NestleJapanAmy Elsner UNQUALIFIED
Alejandro A ShinkoArgentinaAnna Fali NEGOTIATION
Smith A FigeroaSpainAnna Fali NEGOTIATION
Francesco S DoeItalyXuxue Feng NEGOTIATION
Darci A MacleadSpainOnyama Limba RENEWAL
Aika P RoysterArgentinaIvan Magalhaes QUALIFIED
Mayumi R CampainUnited KingdomIoni Bowcher RENEWAL
Rodrigues O BologniaArgentinaBernardo Dominic RENEWAL
Kaitlin B KolmetzCanadaAmy Elsner NEGOTIATION
Costa J SaylorsBrazilOnyama Limba NEW
Ashley R CampainIndiaAsiya Javayant QUALIFIED
Alejandro Y MarrierGermanyIoni Bowcher UNQUALIFIED
Octavia U CaldareraCanadaElwin Sharvill NEW
Leja Z SchemmerFranceStephen Shaw NEW
Jennifer L NestleItalyAmy Elsner UNQUALIFIED
Darci S VenereJapanAsiya Javayant RENEWAL
Salvatore W RoysterFranceStephen Shaw UNQUALIFIED
Jefferson S OldroydJapanAmy Elsner NEGOTIATION
Ivar P SlusarskiBrazilIoni Bowcher UNQUALIFIED
Tony X GauchoArgentinaBernardo Dominic NEW
Juan C BriddickItalyXuxue Feng UNQUALIFIED
Murillo T MorascaArgentinaAsiya Javayant PROPOSAL
Costa P SchemmerBrazilXuxue Feng QUALIFIED
Alejandro O RulapaughCanadaIvan Magalhaes QUALIFIED
Darci K OstroskyAustraliaStephen Shaw RENEWAL
Izzy O FlosiItalyIvan Magalhaes RENEWAL
Salvatore X SergiSpainIoni Bowcher NEGOTIATION
Frozen Columns
Name
Antonio K Venere
Stacey W Morasca
James S Waycott
Murillo B Morasca
Jeanfrancois Q Iturbide
Izzy Z Ferencz
Faith O Sergi
Tony H Paprocki
Maisha D Caudy
Deepesh N Malet
Munro M Doe
Isabel C Rim
Ricardo F Poquette
Stacey C Nestle
Nicolas E Gillian
Stacey V Nicka
Isabel X Rim
Aditya P Vocelka
Jefferson W Whobrey
Deepesh C Kolmetz
Munro O Vocelka
Morrow J Campain
Aruna Y Stenseth
Francesco Q Venere
Sinclair D Rulapaugh
Faith T Nestle
Ivar Y Campain
Murillo O Butt
Nicolas P Slusarski
Octavia A Caudy
Adams Y Albares
Julie E Stenseth
Misaki T Maclead
Leon J Bowley
Aika H Venere
Julie O Garufi
Costa F Bolognia
Adams A Ruta
Mayumi M Malet
Aika G Amigon
Jones X Royster
Kadeem Q Albares
Leja B Ostrosky
Jennifer M Chui
Claire U Rulapaugh
Faith Q Venere
Jefferson A Malet
Antonio D Wieser
Leja X Iturbide
Rodrigues J Paprocki
IdCountryDate
1000Australia2026-06-22
1001Spain2026-07-12
1002Japan2026-06-25
1003India2026-07-14
1004Brazil2026-07-07
1005United Kingdom2026-07-08
1006India2026-07-09
1007Italy2026-06-29
1008India2026-06-25
1009India2026-06-23
1010Brazil2026-07-04
1011India2026-07-06
1012Canada2026-07-11
1013Italy2026-06-24
1014Argentina2026-06-28
1015Russia2026-06-29
1016Australia2026-06-30
1017France2026-07-10
1018Australia2026-07-11
1019Brazil2026-07-12
1020Argentina2026-06-23
1021Russia2026-06-26
1022Russia2026-06-27
1023Spain2026-07-11
1024Germany2026-06-25
1025Russia2026-07-02
1026Canada2026-06-23
1027Australia2026-07-15
1028Spain2026-07-10
1029Argentina2026-07-11
1030Italy2026-07-13
1031Argentina2026-07-01
1032Australia2026-07-01
1033Italy2026-06-24
1034France2026-07-01
1035Japan2026-07-07
1036Russia2026-06-30
1037France2026-07-17
1038Russia2026-07-09
1039Argentina2026-07-10
1040Russia2026-07-20
1041India2026-07-20
1042France2026-06-28
1043Argentina2026-07-04
1044Canada2026-07-07
1045Argentina2026-07-12
1046Argentina2026-07-19
1047Argentina2026-07-12
1048Spain2026-06-25
1049Argentina2026-06-27

On-Demand Data

NameIdCountryDate
Francesco P Whobrey1000Brazil2026-06-28
Salvatore N Briddick1001Canada2026-07-18
Johnson T Perin1002France2026-06-22
Maisha K Royster1003Russia2026-07-06
Cody X Schemmer1004Japan2026-06-24
Mayumi A Bolognia1005France2026-06-23
Kaitlin R Royster1006Italy2026-07-10
Jones V Bowley1007Italy2026-07-10
Maisha W Tollner1008Argentina2026-06-28
Antonio H Campain1009Canada2026-07-09
Arvin B Chui1010Argentina2026-07-06
Ashley O Sergi1011Australia2026-07-18
Deepesh Z Chui1012Argentina2026-06-23
Maisha V Ostrosky1013France2026-07-10
Stacey I Shinko1014France2026-07-20
Aditya G Stockham1015Japan2026-07-03
Darci B Gillian1016Japan2026-07-21
Chavez C Doe1017Australia2026-07-15
Juan T Stockham1018France2026-07-11
Johnson W Perin1019India2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio O PaprockiBrazilAsiya Javayant PROPOSAL
Adams Z IturbideItalyAmy Elsner UNQUALIFIED
Mujtaba U VenereSpainIoni Bowcher NEW
Octavia S InouyeSpainXuxue Feng RENEWAL
Aruna G SchemmerSpainXuxue Feng QUALIFIED
Munro C ChuiJapanAsiya Javayant QUALIFIED
Ashley R GillianCanadaIoni Bowcher PROPOSAL
Francesco N OldroydBrazilAnna Fali NEGOTIATION
Octavia G NickaRussiaIvan Magalhaes PROPOSAL
Misaki Q FigeroaUnited KingdomXuxue Feng QUALIFIED
Clifford R RimJapanXuxue Feng QUALIFIED
Wickens H ChuiGermanyAsiya Javayant RENEWAL
Alejandro Z RutaIndiaAmy Elsner RENEWAL
Salvatore C TollnerCanadaOnyama Limba RENEWAL
James P FollerItalyAmy Elsner NEW
Wickens W BologniaAustraliaIvan Magalhaes QUALIFIED
Deepesh L SergiCanadaOnyama Limba QUALIFIED
Darci U CaldareraCanadaXuxue Feng PROPOSAL
James R MaletRussiaXuxue Feng RENEWAL
Smith S StensethIndiaIvan Magalhaes NEGOTIATION
Morrow W PaprockiSpainXuxue Feng NEW
Emily U InouyeUnited KingdomIoni Bowcher RENEWAL
Smith D FollerUnited KingdomIvan Magalhaes QUALIFIED
Murillo E BologniaIndiaBernardo Dominic QUALIFIED
Maria H InouyeGermanyAmy Elsner NEW
Silvio Y DoeUnited KingdomAsiya Javayant NEGOTIATION
James W CaldareraFranceAmy Elsner NEGOTIATION
David S ShinkoCanadaAnna Fali RENEWAL
Murillo I StockhamAustraliaOnyama Limba PROPOSAL
Wickens E VenereSpainStephen Shaw NEW
Maisha L RimIndiaOnyama Limba UNQUALIFIED
Aruna R TollnerAustraliaXuxue Feng NEW
Munro N FerenczIndiaOnyama Limba UNQUALIFIED
Misaki X SchemmerIndiaIoni Bowcher RENEWAL
Jennifer C MaletIndiaOnyama Limba QUALIFIED
Johnson R CampainCanadaOnyama Limba PROPOSAL
Salvatore D PaprockiGermanyElwin Sharvill RENEWAL
Greenwood S FollerArgentinaIvan Magalhaes UNQUALIFIED
Kaitlin L FollerFranceAmy Elsner NEW
Juan X GarufiAustraliaAmy Elsner 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>