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
James N BriddickArgentinaAsiya Javayant NEW
Silvio W InouyeIndiaElwin Sharvill RENEWAL
Kaitlin D OstroskyIndiaAmy Elsner UNQUALIFIED
Antonio E AlbaresBrazilIvan Magalhaes UNQUALIFIED
Munro H MaletCanadaAsiya Javayant NEW
Darci W MarrierItalyAmy Elsner RENEWAL
Smith C KolmetzArgentinaElwin Sharvill PROPOSAL
Kaitlin A WieserBrazilAnna Fali NEGOTIATION
Costa Y TollnerFranceAsiya Javayant QUALIFIED
Arvin K DarakjyAustraliaIvan Magalhaes PROPOSAL
Jennifer E SlusarskiGermanyAnna Fali UNQUALIFIED
Johnson J MaletGermanyXuxue Feng NEW
Ashley P FollerAustraliaElwin Sharvill QUALIFIED
Maisha G VocelkaAustraliaBernardo Dominic RENEWAL
Emily D DilliardGermanyOnyama Limba UNQUALIFIED
Ashley L AlbaresItalyAnna Fali UNQUALIFIED
Darci S GauchoFranceOnyama Limba RENEWAL
Jennifer O DilliardRussiaBernardo Dominic UNQUALIFIED
Aika B CaldareraArgentinaIvan Magalhaes QUALIFIED
Alejandro N RoysterBrazilAsiya Javayant RENEWAL
Octavia Z SaylorsIndiaAsiya Javayant QUALIFIED
Francesco Z BriddickBrazilOnyama Limba NEW
Darci N GillianArgentinaBernardo Dominic UNQUALIFIED
Isabel Z KolmetzJapanIoni Bowcher QUALIFIED
Aika N KuskoBrazilStephen Shaw NEGOTIATION
Wickens W MaletAustraliaAsiya Javayant NEW
Tony I ChuiItalyXuxue Feng UNQUALIFIED
Kaitlin R DoeBrazilElwin Sharvill QUALIFIED
Smith A WaycottRussiaIvan Magalhaes NEW
Munro W OstroskyAustraliaIoni Bowcher RENEWAL
Izzy T PoquetteFranceIoni Bowcher RENEWAL
Nicolas S GlickGermanyIoni Bowcher PROPOSAL
Arvin Y SlusarskiCanadaStephen Shaw UNQUALIFIED
Jones I SergiCanadaAsiya Javayant QUALIFIED
Munro R MarrierUnited KingdomAmy Elsner UNQUALIFIED
Stacey X SchemmerJapanXuxue Feng PROPOSAL
Jones O FollerGermanyAmy Elsner RENEWAL
Silvio M FigeroaArgentinaElwin Sharvill RENEWAL
Juan S RimRussiaStephen Shaw UNQUALIFIED
Mujtaba K ButtIndiaXuxue Feng UNQUALIFIED
Stacey E PerinFranceIvan Magalhaes NEGOTIATION
Emily L BriddickGermanyElwin Sharvill QUALIFIED
Maria A OstroskyAustraliaOnyama Limba NEW
Leon T WieserAustraliaAnna Fali QUALIFIED
Wickens T MarrierAustraliaIvan Magalhaes NEW
Sinclair A BriddickRussiaElwin Sharvill UNQUALIFIED
Adams O GillianRussiaIoni Bowcher UNQUALIFIED
Morrow W MaletIndiaOnyama Limba QUALIFIED
Smith H GlickFranceStephen Shaw PROPOSAL
Adams C StockhamArgentinaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony V BriddickCanadaAnna Fali PROPOSAL
Francesco N DilliardCanadaIvan Magalhaes PROPOSAL
Johnson X ShinkoRussiaIoni Bowcher NEW
James N DilliardAustraliaAmy Elsner RENEWAL
Chavez P MacleadGermanyOnyama Limba PROPOSAL
Morrow J SchemmerArgentinaIvan Magalhaes NEW
Julie X GarufiJapanAnna Fali QUALIFIED
Adams Z FigeroaBrazilXuxue Feng NEW
Jones L RoysterJapanAsiya Javayant PROPOSAL
Deepesh U SaylorsFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci C MacleadBrazil2026-06-19Morlong Associates NEW33Onyama Limba
1001Aruna L TollnerArgentina2026-06-26Feiner Bros UNQUALIFIED62Ivan Magalhaes
1002Jones D FerenczJapan2026-06-29Printing Dimensions PROPOSAL10Elwin Sharvill
1003James R GlickUnited Kingdom2026-06-25Chapman, Ross E Esq QUALIFIED16Elwin Sharvill
1004Jones E WieserCanada2026-06-18Chanay, Jeffrey A Esq RENEWAL43Anna Fali
1005Leja P OstroskyJapan2026-06-22Feiner Bros NEW50Anna Fali
1006Leon B NestleArgentina2026-06-21Printing Dimensions NEGOTIATION35Amy Elsner
1007Darci K DoeJapan2026-06-22Rousseaux, Michael Esq NEW72Asiya Javayant
1008Ashley G MaletSpain2026-06-12Morlong Associates UNQUALIFIED24Asiya Javayant
1009Ashley M BowleySpain2026-06-13Chapman, Ross E Esq QUALIFIED73Ivan Magalhaes
1010Clifford N SchemmerJapan2026-07-04Chemel, James L Cpa UNQUALIFIED64Bernardo Dominic
1011Silvio Z CaudyCanada2026-06-15Printing Dimensions RENEWAL41Ivan Magalhaes
1012Alejandro H DoeBrazil2026-06-12King, Christopher A Esq QUALIFIED18Ivan Magalhaes
1013Morrow D CaudyFrance2026-06-29Buckley Miller Wright QUALIFIED34Ivan Magalhaes
1014Clifford V MaletBrazil2026-07-11Printing Dimensions RENEWAL94Ioni Bowcher
1015Silvio I IturbideUnited Kingdom2026-06-25Rousseaux, Michael Esq PROPOSAL1Elwin Sharvill
1016Francesco Y CaudyCanada2026-06-21Feltz Printing Service PROPOSAL74Xuxue Feng
1017Rodrigues T FollerJapan2026-06-13Commercial Press PROPOSAL27Anna Fali
1018Stacey M KuskoItaly2026-06-28Rousseaux, Michael Esq RENEWAL43Ioni Bowcher
1019Adams W AmigonBrazil2026-06-20Chanay, Jeffrey A Esq NEGOTIATION88Bernardo Dominic
1020Clifford E SergiIndia2026-06-29Printing Dimensions QUALIFIED45Anna Fali
1021Deepesh M FerenczUnited Kingdom2026-06-18Feiner Bros RENEWAL19Ioni Bowcher
1022Jennifer S FigeroaRussia2026-07-01Chanay, Jeffrey A Esq NEW96Amy Elsner
1023David N BowleyUnited Kingdom2026-06-29Buckley Miller Wright RENEWAL78Amy Elsner
1024Stacey G GauchoIndia2026-06-18Benton, John B Jr NEW0Asiya Javayant
1025Jeanfrancois L FerenczItaly2026-07-03King, Christopher A Esq NEGOTIATION60Stephen Shaw
1026Darci Z DoeRussia2026-07-11Chanay, Jeffrey A Esq PROPOSAL18Bernardo Dominic
1027Greenwood F FollerRussia2026-06-12Chemel, James L Cpa NEW70Stephen Shaw
1028Sinclair O ShinkoBrazil2026-06-20Commercial Press UNQUALIFIED47Xuxue Feng
1029Aika N VenereJapan2026-07-07Chapman, Ross E Esq UNQUALIFIED21Onyama Limba
1030Jones U IturbideIndia2026-06-28Feiner Bros QUALIFIED93Ivan Magalhaes
1031Kaitlin O VocelkaGermany2026-07-01Morlong Associates PROPOSAL24Ivan Magalhaes
1032Ashley A BowleySpain2026-06-28Commercial Press PROPOSAL81Anna Fali
1033Costa Y PerinRussia2026-06-18Feltz Printing Service NEGOTIATION46Elwin Sharvill
1034Chavez A VenereAustralia2026-07-05King, Christopher A Esq RENEWAL98Elwin Sharvill
1035Jennifer H NestleCanada2026-06-12Chemel, James L Cpa NEGOTIATION58Elwin Sharvill
1036Tony Q MorascaGermany2026-06-21Rousseaux, Michael Esq NEW66Elwin Sharvill
1037Adams H KolmetzFrance2026-06-30Rousseaux, Michael Esq PROPOSAL1Anna Fali
1038Octavia X WaycottBrazil2026-07-09Truhlar And Truhlar Attys PROPOSAL43Elwin Sharvill
1039Kaitlin I RoysterGermany2026-06-17Morlong Associates QUALIFIED40Ivan Magalhaes
1040Salvatore D OstroskyGermany2026-06-12Feiner Bros PROPOSAL42Bernardo Dominic
1041Stacey D SchemmerGermany2026-07-08Morlong Associates RENEWAL21Stephen Shaw
1042Stacey E GillianGermany2026-07-04Rangoni Of Florence NEW97Onyama Limba
1043Jennifer A KolmetzSpain2026-07-10Rangoni Of Florence NEGOTIATION41Anna Fali
1044Ashley S CaldareraIndia2026-06-25King, Christopher A Esq QUALIFIED30Ivan Magalhaes
1045Emily B OstroskyIndia2026-06-23Chanay, Jeffrey A Esq QUALIFIED43Stephen Shaw
1046Mujtaba L MacleadJapan2026-06-17Commercial Press RENEWAL50Onyama Limba
1047Ivar K PoquetteArgentina2026-06-13Feltz Printing Service NEGOTIATION18Stephen Shaw
1048Munro J KolmetzRussia2026-07-06Rangoni Of Florence UNQUALIFIED67Onyama Limba
1049Cody X GauchoGermany2026-06-30King, Christopher A Esq NEW79Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas Z VenereJapanXuxue Feng QUALIFIED
Morrow R CaudyBrazilXuxue Feng PROPOSAL
Wickens G OldroydBrazilOnyama Limba NEW
Smith V CampainFranceStephen Shaw UNQUALIFIED
Chavez S RoysterUnited KingdomAmy Elsner QUALIFIED
Mujtaba J NestleArgentinaAnna Fali QUALIFIED
Izzy X VenereBrazilAsiya Javayant NEW
Ricardo I ShinkoCanadaOnyama Limba UNQUALIFIED
Silvio G CaldareraAustraliaElwin Sharvill NEGOTIATION
Claire D RoysterGermanyXuxue Feng RENEWAL
Octavia V GillianIndiaElwin Sharvill RENEWAL
Isabel X WaycottArgentinaAmy Elsner RENEWAL
Arvin M CaldareraFranceIvan Magalhaes PROPOSAL
Rodrigues P TollnerFranceAsiya Javayant QUALIFIED
Mujtaba Y TollnerCanadaElwin Sharvill NEGOTIATION
Tony Y SergiArgentinaIoni Bowcher UNQUALIFIED
Francesco I ChuiFranceAmy Elsner RENEWAL
Leja G MaletAustraliaIvan Magalhaes QUALIFIED
Sinclair K GauchoIndiaAnna Fali NEGOTIATION
Jones L SlusarskiItalyAnna Fali RENEWAL
Jones H MacleadJapanAnna Fali RENEWAL
Tony H CaudyCanadaIoni Bowcher PROPOSAL
Kadeem V DarakjyAustraliaStephen Shaw RENEWAL
Leja L TollnerSpainIvan Magalhaes PROPOSAL
Ivar V StensethIndiaIvan Magalhaes PROPOSAL
Darci D RutaArgentinaElwin Sharvill NEGOTIATION
Adams Y StensethAustraliaBernardo Dominic QUALIFIED
Stacey F SaylorsAustraliaElwin Sharvill UNQUALIFIED
Tony L AmigonRussiaAnna Fali PROPOSAL
Isabel T FigeroaRussiaIoni Bowcher NEGOTIATION
Octavia E NestleItalyAsiya Javayant NEGOTIATION
Adams V VenereSpainXuxue Feng NEGOTIATION
Nicolas J AlbaresBrazilAsiya Javayant NEGOTIATION
Emily B FlosiGermanyBernardo Dominic QUALIFIED
Rodrigues C FerenczAustraliaIoni Bowcher PROPOSAL
Arvin K KuskoGermanyAmy Elsner RENEWAL
Emily R PoquetteFranceStephen Shaw NEW
Nicolas I GlickGermanyXuxue Feng RENEWAL
Leon A AlbaresUnited KingdomIvan Magalhaes RENEWAL
Salvatore B ButtJapanStephen Shaw NEW
Darci N WaycottCanadaBernardo Dominic RENEWAL
Emily T AmigonGermanyAnna Fali NEGOTIATION
Faith P RimSpainAnna Fali QUALIFIED
Adams K RulapaughSpainIvan Magalhaes PROPOSAL
Aika B FigeroaGermanyIoni Bowcher UNQUALIFIED
Kaitlin V SaylorsIndiaStephen Shaw NEW
Salvatore R VocelkaRussiaAnna Fali QUALIFIED
Aditya X DoeBrazilIvan Magalhaes NEW
Ashley O MaletAustraliaIvan Magalhaes RENEWAL
Faith H SergiIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Octavia U Stockham
Greenwood I Gillian
Sinclair U Schemmer
Jeanfrancois I Stenseth
Morrow K Amigon
Aditya J Campain
Adams K Stockham
Chavez M Wieser
Jennifer Z Darakjy
Stacey E Paprocki
Mujtaba L Foller
Arvin X Chui
Emily W Slusarski
Ricardo X Nestle
Ashley B Figeroa
Julie Z Vocelka
Morrow Z Ruta
Darci N Glick
Mayumi T Darakjy
Izzy R Kolmetz
Aditya M Nicka
Nicolas F Slusarski
Emily A Marrier
Kaitlin V Ferencz
Ivar C Malet
Wickens N Caudy
Ivar Z Saylors
Jennifer J Inouye
Deepesh L Vocelka
Aika I Figeroa
Smith O Nestle
Izzy V Nestle
Rodrigues G Kolmetz
Julie Y Dilliard
Emily V Malet
Salvatore H Schemmer
Costa O Sergi
Arvin D Whobrey
Julie V Campain
Clifford G Nicka
Maria Z Kolmetz
Munro G Gaucho
Leon D Kusko
Morrow I Stockham
Wickens D Iturbide
Costa Q Figeroa
Kadeem V Tollner
Mujtaba O Waycott
Francesco S Foller
Aika P Bowley
IdCountryDate
1000India2026-06-16
1001Argentina2026-06-15
1002Australia2026-07-06
1003Japan2026-06-22
1004Japan2026-06-15
1005Australia2026-06-16
1006France2026-06-21
1007Argentina2026-06-27
1008India2026-07-11
1009Australia2026-06-18
1010Canada2026-07-01
1011Argentina2026-06-27
1012France2026-06-28
1013Argentina2026-06-25
1014Canada2026-06-30
1015United Kingdom2026-06-27
1016Canada2026-07-06
1017Australia2026-06-28
1018France2026-06-26
1019Canada2026-06-20
1020Germany2026-06-29
1021France2026-06-20
1022Germany2026-06-27
1023United Kingdom2026-07-03
1024Russia2026-06-14
1025India2026-06-12
1026Canada2026-06-25
1027Spain2026-06-15
1028Spain2026-06-26
1029India2026-07-03
1030Italy2026-06-26
1031Brazil2026-06-29
1032Spain2026-07-03
1033Canada2026-06-20
1034Argentina2026-07-01
1035Brazil2026-06-17
1036Germany2026-06-20
1037Italy2026-06-23
1038Australia2026-06-30
1039Germany2026-06-26
1040Russia2026-07-08
1041Argentina2026-06-24
1042Russia2026-06-15
1043Russia2026-06-30
1044Spain2026-06-17
1045Germany2026-07-04
1046Australia2026-06-14
1047Germany2026-07-02
1048Germany2026-06-30
1049Spain2026-07-11

On-Demand Data

NameIdCountryDate
Mayumi C Kolmetz1000Japan2026-06-12
Johnson A Campain1001Argentina2026-07-02
Maria C Ruta1002Australia2026-07-02
Greenwood B Glick1003Russia2026-07-02
Alejandro V Waycott1004Canada2026-06-18
Aruna O Butt1005France2026-06-26
Ricardo U Doe1006Italy2026-07-03
Tony K Rulapaugh1007India2026-07-01
Sinclair N Garufi1008Russia2026-06-12
Ivar U Chui1009Spain2026-06-30
Stacey M Kolmetz1010Australia2026-07-09
Jennifer G Glick1011Canada2026-06-16
Juan I Oldroyd1012France2026-07-05
Maria O Garufi1013Russia2026-07-08
Emily K Malet1014Italy2026-06-25
Jeanfrancois P Ruta1015India2026-06-18
Francesco C Whobrey1016France2026-07-05
Ivar Q Caldarera1017Germany2026-07-03
Aruna N Foller1018Brazil2026-06-30
Aika O Tollner1019Germany2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith S RutaFranceAnna Fali NEW
Jennifer R PaprockiGermanyBernardo Dominic PROPOSAL
Octavia K SergiJapanAnna Fali NEGOTIATION
Costa C VocelkaItalyIvan Magalhaes NEGOTIATION
Juan B KolmetzFranceStephen Shaw PROPOSAL
Morrow C AmigonRussiaAsiya Javayant PROPOSAL
Aruna R PaprockiCanadaAmy Elsner QUALIFIED
Ricardo I RimCanadaAnna Fali UNQUALIFIED
Maisha B VenereGermanyAmy Elsner QUALIFIED
Cody B NickaItalyIoni Bowcher PROPOSAL
Jefferson X OstroskyJapanAnna Fali NEW
Jones U ChuiItalyIoni Bowcher NEGOTIATION
Octavia E FerenczRussiaAsiya Javayant NEGOTIATION
Emily U GauchoItalyStephen Shaw QUALIFIED
Juan R RimBrazilXuxue Feng PROPOSAL
Clifford L BologniaIndiaStephen Shaw UNQUALIFIED
Faith B ChuiFranceBernardo Dominic UNQUALIFIED
Deepesh R NickaCanadaXuxue Feng NEW
Chavez G CaldareraCanadaOnyama Limba PROPOSAL
Ashley R AmigonGermanyAsiya Javayant UNQUALIFIED
Octavia X NestleBrazilOnyama Limba QUALIFIED
Arvin F GlickUnited KingdomStephen Shaw NEGOTIATION
Kaitlin R PoquetteSpainAsiya Javayant PROPOSAL
Salvatore U KolmetzCanadaStephen Shaw QUALIFIED
Emily I GauchoRussiaXuxue Feng UNQUALIFIED
Leon X NickaAustraliaBernardo Dominic PROPOSAL
Jennifer P GillianGermanyBernardo Dominic NEGOTIATION
Izzy F NickaCanadaElwin Sharvill NEGOTIATION
Jones K CaldareraSpainXuxue Feng NEW
Maria Q RutaSpainXuxue Feng QUALIFIED
Costa O MaletRussiaXuxue Feng PROPOSAL
Aruna T WhobreyJapanAmy Elsner RENEWAL
Misaki Q WhobreyIndiaIoni Bowcher RENEWAL
Arvin J StensethFranceIoni Bowcher QUALIFIED
Sinclair F CaudyBrazilStephen Shaw PROPOSAL
Mujtaba R SlusarskiArgentinaStephen Shaw NEW
Murillo U BologniaSpainElwin Sharvill PROPOSAL
Adams F MarrierRussiaBernardo Dominic RENEWAL
Mayumi E WieserAustraliaXuxue Feng NEGOTIATION
Aika N GillianAustraliaBernardo Dominic 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>