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
Aditya W GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Greenwood I KuskoCanadaAsiya Javayant NEGOTIATION
Mayumi O BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Wickens F DoeBrazilXuxue Feng QUALIFIED
Jefferson A MarrierBrazilIvan Magalhaes RENEWAL
Adams T DarakjyArgentinaAsiya Javayant NEW
James X FerenczBrazilAsiya Javayant UNQUALIFIED
Antonio L FollerFranceIoni Bowcher NEW
Arvin D WaycottAustraliaBernardo Dominic PROPOSAL
Nicolas J CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Kadeem D InouyeIndiaXuxue Feng NEW
David V MaletSpainAnna Fali PROPOSAL
Jeanfrancois G OstroskyItalyStephen Shaw NEGOTIATION
Octavia H ShinkoRussiaBernardo Dominic PROPOSAL
Izzy C SergiSpainElwin Sharvill NEW
Tony R RutaIndiaAmy Elsner RENEWAL
Leja M TollnerArgentinaStephen Shaw RENEWAL
Johnson I OldroydArgentinaAmy Elsner NEW
Claire B MacleadJapanAsiya Javayant UNQUALIFIED
Maria S ShinkoArgentinaOnyama Limba NEW
Rodrigues X FlosiCanadaIvan Magalhaes NEW
David O BowleyFranceIvan Magalhaes RENEWAL
Nicolas Z CaldareraUnited KingdomAsiya Javayant NEW
Claire I GarufiIndiaOnyama Limba QUALIFIED
Arvin A ChuiCanadaBernardo Dominic NEW
Alejandro X AmigonArgentinaAsiya Javayant QUALIFIED
Chavez E DilliardJapanAnna Fali QUALIFIED
Ricardo V CaldareraArgentinaAsiya Javayant NEW
Chavez F RimAustraliaAsiya Javayant PROPOSAL
Aditya Z MacleadUnited KingdomElwin Sharvill RENEWAL
Ivar X MaletBrazilAnna Fali RENEWAL
Kadeem I NickaArgentinaOnyama Limba PROPOSAL
Arvin T KuskoIndiaOnyama Limba PROPOSAL
Mayumi H IturbideSpainAmy Elsner NEW
Smith X GarufiSpainAsiya Javayant NEGOTIATION
Faith S GarufiFranceElwin Sharvill PROPOSAL
Rodrigues Y ShinkoCanadaBernardo Dominic RENEWAL
Rodrigues T DoeRussiaElwin Sharvill PROPOSAL
Tony U SchemmerGermanyOnyama Limba PROPOSAL
Claire J DarakjyBrazilBernardo Dominic PROPOSAL
Kaitlin N VocelkaUnited KingdomAnna Fali PROPOSAL
Morrow J SchemmerAustraliaIoni Bowcher NEW
Smith C WhobreyAustraliaAsiya Javayant NEGOTIATION
Maisha Q KolmetzItalyStephen Shaw UNQUALIFIED
Smith X FollerAustraliaAmy Elsner NEW
Smith K BowleyJapanOnyama Limba UNQUALIFIED
Emily V AmigonFranceXuxue Feng UNQUALIFIED
Stacey I DoeIndiaOnyama Limba RENEWAL
Cody G DilliardAustraliaBernardo Dominic PROPOSAL
Mujtaba L InouyeIndiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya T DilliardItalyAmy Elsner NEW
Maria T GlickGermanyAnna Fali QUALIFIED
Jennifer U NestleIndiaStephen Shaw PROPOSAL
Wickens M SlusarskiIndiaIoni Bowcher NEGOTIATION
Stacey B GlickGermanyBernardo Dominic QUALIFIED
Julie C RutaFranceElwin Sharvill UNQUALIFIED
Chavez F BowleyArgentinaXuxue Feng NEW
Ashley N ChuiBrazilXuxue Feng NEW
Claire O AmigonRussiaOnyama Limba NEGOTIATION
Chavez D FigeroaBrazilXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson N OldroydBrazil2026-08-22Chemel, James L Cpa NEGOTIATION28Amy Elsner
1001Greenwood I AlbaresRussia2026-08-10Feltz Printing Service RENEWAL51Xuxue Feng
1002Chavez F BriddickRussia2026-08-12Chemel, James L Cpa NEW19Xuxue Feng
1003Maisha J OldroydArgentina2026-08-15Rangoni Of Florence NEGOTIATION69Anna Fali
1004Faith W KuskoFrance2026-08-08Morlong Associates QUALIFIED63Ioni Bowcher
1005Salvatore Q OstroskyBrazil2026-08-21Benton, John B Jr QUALIFIED43Asiya Javayant
1006Kadeem N SaylorsUnited Kingdom2026-07-30Rousseaux, Michael Esq PROPOSAL72Asiya Javayant
1007Ricardo O NickaFrance2026-08-17Chanay, Jeffrey A Esq QUALIFIED92Onyama Limba
1008Stacey F SergiCanada2026-08-02Chanay, Jeffrey A Esq RENEWAL29Stephen Shaw
1009Costa L GarufiFrance2026-08-21Feiner Bros QUALIFIED24Asiya Javayant
1010Isabel W MaletJapan2026-08-16Feltz Printing Service PROPOSAL4Xuxue Feng
1011Ivar O PaprockiCanada2026-07-26Rousseaux, Michael Esq UNQUALIFIED68Ivan Magalhaes
1012Munro S BriddickJapan2026-07-28Chemel, James L Cpa NEW34Elwin Sharvill
1013Nicolas B KuskoCanada2026-08-23Feiner Bros QUALIFIED83Amy Elsner
1014James N MaletSpain2026-08-11Truhlar And Truhlar Attys QUALIFIED70Elwin Sharvill
1015Leja W GarufiFrance2026-08-01Chemel, James L Cpa UNQUALIFIED62Xuxue Feng
1016Smith K RulapaughSpain2026-08-21King, Christopher A Esq PROPOSAL98Bernardo Dominic
1017Jeanfrancois F MaletItaly2026-08-09Feltz Printing Service UNQUALIFIED7Bernardo Dominic
1018Maria R SaylorsJapan2026-08-24Buckley Miller Wright RENEWAL37Amy Elsner
1019Ricardo J TollnerCanada2026-08-24Printing Dimensions NEW0Ioni Bowcher
1020Salvatore B AmigonBrazil2026-08-24King, Christopher A Esq PROPOSAL21Anna Fali
1021Smith B RutaCanada2026-07-29Truhlar And Truhlar Attys RENEWAL78Elwin Sharvill
1022Munro J MaletCanada2026-08-24Truhlar And Truhlar Attys PROPOSAL29Amy Elsner
1023Antonio R FlosiBrazil2026-08-16Feiner Bros NEW7Anna Fali
1024Alejandro Y StensethBrazil2026-08-16Dorl, James J Esq UNQUALIFIED84Asiya Javayant
1025Maisha G FlosiSpain2026-08-10Commercial Press UNQUALIFIED60Amy Elsner
1026Jefferson B StockhamIndia2026-08-24Buckley Miller Wright NEW18Asiya Javayant
1027James F DilliardGermany2026-07-27Commercial Press QUALIFIED1Asiya Javayant
1028Izzy P SchemmerSpain2026-08-02Printing Dimensions PROPOSAL28Ioni Bowcher
1029Leja G RoysterSpain2026-08-15Feiner Bros PROPOSAL97Asiya Javayant
1030Salvatore Y CaldareraSpain2026-08-02Morlong Associates NEGOTIATION84Stephen Shaw
1031Faith E MacleadSpain2026-07-27Buckley Miller Wright QUALIFIED27Bernardo Dominic
1032Chavez G WhobreyCanada2026-08-12Printing Dimensions UNQUALIFIED51Bernardo Dominic
1033Aika Q InouyeArgentina2026-08-10Morlong Associates RENEWAL29Asiya Javayant
1034Aika R WhobreyJapan2026-08-16Rangoni Of Florence QUALIFIED91Onyama Limba
1035Julie E RoysterCanada2026-07-27Feiner Bros NEGOTIATION99Elwin Sharvill
1036Munro G VenereCanada2026-08-14Rousseaux, Michael Esq PROPOSAL19Amy Elsner
1037Juan P BologniaUnited Kingdom2026-08-21Truhlar And Truhlar Attys PROPOSAL28Anna Fali
1038Juan R RulapaughAustralia2026-08-22Feltz Printing Service UNQUALIFIED79Asiya Javayant
1039Wickens L AmigonBrazil2026-08-24Dorl, James J Esq NEGOTIATION31Xuxue Feng
1040Jefferson E InouyeJapan2026-08-08King, Christopher A Esq NEW52Ioni Bowcher
1041Adams Y RoysterJapan2026-08-08Truhlar And Truhlar Attys PROPOSAL81Xuxue Feng
1042Clifford L ChuiRussia2026-08-09Chanay, Jeffrey A Esq NEW64Elwin Sharvill
1043Ricardo Y GarufiJapan2026-07-29Feiner Bros RENEWAL9Anna Fali
1044Jones G MorascaUnited Kingdom2026-08-05Dorl, James J Esq PROPOSAL62Stephen Shaw
1045Juan G BowleyBrazil2026-08-10Feltz Printing Service NEW56Elwin Sharvill
1046Ashley L StockhamBrazil2026-07-28Chemel, James L Cpa QUALIFIED97Xuxue Feng
1047Costa R CaudyAustralia2026-07-30Printing Dimensions RENEWAL37Ioni Bowcher
1048Greenwood S StensethIndia2026-08-13Rangoni Of Florence NEW8Ivan Magalhaes
1049Jones Q PoquetteAustralia2026-08-06Chemel, James L Cpa UNQUALIFIED26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Alejandro U BriddickUnited KingdomIvan Magalhaes NEW
Chavez N GauchoItalyBernardo Dominic PROPOSAL
Morrow K MarrierGermanyAmy Elsner QUALIFIED
Ivar C MarrierGermanyAsiya Javayant QUALIFIED
Jennifer C RoysterArgentinaAnna Fali RENEWAL
Maisha Q KolmetzCanadaOnyama Limba UNQUALIFIED
Leja N FigeroaSpainStephen Shaw QUALIFIED
Antonio S StockhamFranceBernardo Dominic NEGOTIATION
Costa F MorascaCanadaAsiya Javayant UNQUALIFIED
Salvatore N ChuiRussiaElwin Sharvill QUALIFIED
Claire W CaudyBrazilBernardo Dominic RENEWAL
Deepesh L RoysterArgentinaBernardo Dominic PROPOSAL
Wickens H BowleyUnited KingdomXuxue Feng UNQUALIFIED
Smith D AmigonBrazilBernardo Dominic UNQUALIFIED
Cody T ChuiBrazilAsiya Javayant RENEWAL
Nicolas V FollerSpainIoni Bowcher QUALIFIED
Johnson V VenereFranceAmy Elsner NEW
Wickens G MarrierCanadaIvan Magalhaes UNQUALIFIED
James N NickaRussiaAmy Elsner QUALIFIED
Costa Q MaletSpainIvan Magalhaes PROPOSAL
Chavez W WaycottItalyIvan Magalhaes UNQUALIFIED
Stacey U SaylorsJapanAmy Elsner NEGOTIATION
Kadeem E GillianJapanXuxue Feng QUALIFIED
Antonio N ShinkoSpainXuxue Feng QUALIFIED
Arvin L WhobreyAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin G IturbideUnited KingdomBernardo Dominic PROPOSAL
Jennifer L MaletFranceBernardo Dominic QUALIFIED
Nicolas B KuskoFranceIvan Magalhaes RENEWAL
Jefferson V WhobreyRussiaAmy Elsner UNQUALIFIED
Julie Z CaldareraCanadaXuxue Feng RENEWAL
Jefferson M FerenczCanadaBernardo Dominic RENEWAL
Misaki Z RulapaughSpainAsiya Javayant QUALIFIED
Aika K FerenczJapanAmy Elsner RENEWAL
Jennifer X RoysterRussiaAmy Elsner RENEWAL
Tony B DoeCanadaStephen Shaw QUALIFIED
Mujtaba M StensethUnited KingdomIoni Bowcher RENEWAL
Leja F GlickIndiaIvan Magalhaes UNQUALIFIED
Antonio C ChuiRussiaAsiya Javayant NEGOTIATION
Ashley S WaycottAustraliaBernardo Dominic UNQUALIFIED
Kaitlin Q RulapaughGermanyOnyama Limba UNQUALIFIED
Aruna K FollerRussiaXuxue Feng NEGOTIATION
Misaki C RutaSpainStephen Shaw NEGOTIATION
Sinclair B GillianUnited KingdomElwin Sharvill PROPOSAL
Sinclair H MarrierFranceStephen Shaw RENEWAL
Isabel J NestleIndiaAmy Elsner NEW
Francesco S StensethBrazilXuxue Feng NEW
Ricardo F AlbaresAustraliaStephen Shaw QUALIFIED
Clifford O ChuiIndiaAnna Fali UNQUALIFIED
Jennifer F CaldareraRussiaBernardo Dominic NEW
Emily E FigeroaRussiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Wickens D Caldarera
Ashley Q Venere
Sinclair T Rim
Adams E Waycott
Costa V Gillian
Leon L Glick
Clifford I Schemmer
James A Caldarera
Mayumi M Iturbide
Claire X Venere
Darci V Malet
Aika B Sergi
Johnson R Nestle
Antonio Y Tollner
David B Rim
Ricardo W Saylors
Chavez X Maclead
Kaitlin S Ferencz
Kadeem J Albares
Clifford T Nestle
Costa U Marrier
Antonio N Bowley
Darci E Morasca
Maria E Dilliard
Maria L Briddick
Costa U Butt
Smith J Kusko
Kadeem U Kolmetz
James P Rim
Darci Z Stenseth
Darci N Glick
Francesco L Rim
Johnson H Nestle
Stacey J Flosi
Morrow J Butt
Ashley A Campain
Greenwood R Slusarski
Greenwood D Chui
David K Rim
Claire T Iturbide
Ricardo S Briddick
Salvatore A Malet
Rodrigues K Foller
Adams W Iturbide
Aditya U Rulapaugh
Tony N Sergi
Juan Z Briddick
David T Gillian
Jennifer R Doe
Misaki X Rulapaugh
IdCountryDate
1000Spain2026-08-09
1001France2026-08-03
1002Japan2026-08-12
1003Argentina2026-08-21
1004Russia2026-08-15
1005Russia2026-07-31
1006Russia2026-08-19
1007Canada2026-07-26
1008Russia2026-08-16
1009Italy2026-08-23
1010Canada2026-08-24
1011Canada2026-08-14
1012France2026-08-15
1013Japan2026-08-07
1014Canada2026-08-05
1015Canada2026-08-01
1016Japan2026-08-15
1017Italy2026-08-24
1018Italy2026-08-20
1019Italy2026-08-13
1020Italy2026-08-04
1021Argentina2026-08-23
1022Italy2026-08-18
1023Spain2026-08-11
1024United Kingdom2026-08-16
1025Russia2026-08-03
1026Germany2026-08-24
1027Russia2026-07-26
1028France2026-08-22
1029Brazil2026-07-30
1030Brazil2026-08-15
1031France2026-08-15
1032Italy2026-07-28
1033Canada2026-08-13
1034Russia2026-08-24
1035United Kingdom2026-08-10
1036Brazil2026-08-16
1037Spain2026-08-24
1038Spain2026-08-16
1039Australia2026-07-30
1040Argentina2026-08-05
1041United Kingdom2026-08-23
1042Germany2026-08-13
1043Italy2026-08-11
1044Japan2026-08-11
1045United Kingdom2026-08-21
1046Brazil2026-07-26
1047Japan2026-07-30
1048France2026-08-05
1049Russia2026-07-30

On-Demand Data

NameIdCountryDate
Ricardo J Oldroyd1000Brazil2026-08-22
Aditya P Morasca1001United Kingdom2026-08-17
Clifford K Sergi1002Russia2026-07-31
Mujtaba Z Butt1003Japan2026-08-01
Rodrigues W Tollner1004Canada2026-08-14
Mujtaba U Caudy1005France2026-08-17
Mujtaba K Paprocki1006Canada2026-07-28
Alejandro N Chui1007Japan2026-08-18
Alejandro R Darakjy1008Spain2026-08-15
Leon Z Perin1009Spain2026-08-21
Darci H Shinko1010Canada2026-08-04
Francesco I Sergi1011Russia2026-07-28
Alejandro L Ostrosky1012Canada2026-08-19
Ivar Q Garufi1013United Kingdom2026-08-02
James O Morasca1014Argentina2026-07-31
Smith D Kolmetz1015Canada2026-08-17
Kaitlin L Campain1016Brazil2026-08-14
Ricardo R Chui1017Japan2026-08-07
Maria M Inouye1018Argentina2026-08-11
Aika U Caudy1019Italy2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan W DoeIndiaXuxue Feng UNQUALIFIED
Deepesh H CaudyJapanAmy Elsner QUALIFIED
Julie R TollnerItalyOnyama Limba PROPOSAL
Morrow P StockhamJapanElwin Sharvill QUALIFIED
Salvatore V IturbideBrazilOnyama Limba NEGOTIATION
Stacey M BriddickJapanBernardo Dominic NEW
Munro B KolmetzFranceOnyama Limba UNQUALIFIED
Morrow V ChuiIndiaIvan Magalhaes QUALIFIED
Ricardo L AmigonCanadaAsiya Javayant NEGOTIATION
Jennifer A RimFranceElwin Sharvill NEW
Octavia Z WhobreyJapanAsiya Javayant PROPOSAL
Greenwood V WaycottCanadaIvan Magalhaes RENEWAL
Emily V MorascaCanadaAsiya Javayant NEW
Juan H CampainFranceStephen Shaw NEGOTIATION
Maisha H WaycottGermanyIoni Bowcher QUALIFIED
Nicolas B FigeroaItalyAnna Fali NEGOTIATION
Antonio H RulapaughArgentinaStephen Shaw RENEWAL
Rodrigues H KuskoAustraliaOnyama Limba RENEWAL
Darci F VenereCanadaXuxue Feng NEGOTIATION
Morrow P AmigonArgentinaElwin Sharvill NEGOTIATION
Ivar G BologniaGermanyIvan Magalhaes QUALIFIED
Alejandro A OstroskyFranceIoni Bowcher NEW
Ivar E InouyeSpainIoni Bowcher RENEWAL
Nicolas W DoeSpainAsiya Javayant NEW
Ivar J RulapaughRussiaAsiya Javayant RENEWAL
Adams H WaycottArgentinaStephen Shaw RENEWAL
Jefferson O WhobreyItalyIoni Bowcher NEGOTIATION
David G ButtItalyBernardo Dominic UNQUALIFIED
Arvin G StensethBrazilAsiya Javayant NEGOTIATION
Silvio C CampainUnited KingdomAmy Elsner NEW
Juan P StockhamBrazilAnna Fali RENEWAL
Deepesh I WhobreyIndiaStephen Shaw NEGOTIATION
Greenwood R InouyeAustraliaOnyama Limba QUALIFIED
Leja U RutaSpainAmy Elsner NEW
Jeanfrancois U CaudyRussiaOnyama Limba RENEWAL
Maria W PoquetteItalyAsiya Javayant QUALIFIED
Rodrigues T RutaSpainOnyama Limba QUALIFIED
Cody N MacleadAustraliaOnyama Limba UNQUALIFIED
Adams E ShinkoItalyAnna Fali UNQUALIFIED
David Y TollnerCanadaElwin Sharvill 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>