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
Maria T RoysterCanadaAnna Fali PROPOSAL
Smith T ShinkoRussiaAnna Fali NEGOTIATION
Kaitlin C PaprockiItalyElwin Sharvill NEW
Morrow P OstroskyItalyStephen Shaw RENEWAL
Chavez U GauchoFranceAmy Elsner NEW
Johnson D PaprockiCanadaIvan Magalhaes QUALIFIED
Nicolas X StensethJapanOnyama Limba PROPOSAL
Darci T MaletArgentinaStephen Shaw NEW
Nicolas X RoysterBrazilIvan Magalhaes UNQUALIFIED
Deepesh M AlbaresRussiaIoni Bowcher PROPOSAL
Aruna F MacleadAustraliaElwin Sharvill PROPOSAL
Izzy A TollnerBrazilStephen Shaw NEGOTIATION
Antonio A CaudyRussiaAnna Fali UNQUALIFIED
Kaitlin N RimArgentinaStephen Shaw NEW
Smith F DilliardUnited KingdomIoni Bowcher NEGOTIATION
Stacey L BologniaUnited KingdomIoni Bowcher QUALIFIED
Arvin U GlickJapanElwin Sharvill QUALIFIED
Johnson P RimSpainAmy Elsner RENEWAL
Sinclair P BriddickFranceElwin Sharvill NEW
Costa M MarrierSpainStephen Shaw PROPOSAL
Deepesh Y GauchoRussiaAsiya Javayant PROPOSAL
James S CaudyFranceIoni Bowcher RENEWAL
Deepesh G DoeArgentinaOnyama Limba QUALIFIED
Greenwood U VenereAustraliaOnyama Limba QUALIFIED
Morrow I DoeIndiaIvan Magalhaes QUALIFIED
Jones I NickaSpainElwin Sharvill PROPOSAL
Alejandro Y GarufiAustraliaXuxue Feng QUALIFIED
Alejandro L FlosiFranceStephen Shaw QUALIFIED
David N BriddickSpainElwin Sharvill RENEWAL
Kaitlin E StensethIndiaBernardo Dominic NEGOTIATION
Murillo D GlickSpainAsiya Javayant QUALIFIED
Ricardo G OldroydCanadaXuxue Feng NEW
Ricardo W PaprockiJapanAnna Fali NEGOTIATION
Deepesh F MarrierUnited KingdomStephen Shaw NEGOTIATION
Juan M VocelkaFranceXuxue Feng NEGOTIATION
Maria D CampainSpainElwin Sharvill NEW
Jefferson L BowleyRussiaAmy Elsner PROPOSAL
Darci Y FlosiFranceAnna Fali RENEWAL
Johnson B SaylorsBrazilIvan Magalhaes RENEWAL
Deepesh J PerinFranceAmy Elsner UNQUALIFIED
Darci L MorascaBrazilStephen Shaw QUALIFIED
David P InouyeSpainAmy Elsner RENEWAL
Kaitlin L MaletGermanyAsiya Javayant NEGOTIATION
Adams D OldroydCanadaIoni Bowcher RENEWAL
Jones C VocelkaArgentinaIoni Bowcher RENEWAL
Jeanfrancois C RimGermanyIvan Magalhaes PROPOSAL
Morrow Y GarufiCanadaAsiya Javayant QUALIFIED
Leja X WhobreyItalyXuxue Feng NEW
Aruna J SlusarskiAustraliaOnyama Limba RENEWAL
Morrow X BologniaCanadaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith S NickaJapanAsiya Javayant PROPOSAL
Chavez Q SergiCanadaAsiya Javayant RENEWAL
Antonio I MaletGermanyAsiya Javayant UNQUALIFIED
Juan C GlickCanadaXuxue Feng NEW
Aditya X FollerArgentinaAmy Elsner NEW
Kaitlin K RutaItalyIoni Bowcher NEGOTIATION
Stacey P WaycottSpainStephen Shaw NEGOTIATION
Sinclair X AlbaresJapanElwin Sharvill NEW
Nicolas X InouyeAustraliaIoni Bowcher PROPOSAL
Isabel J MorascaCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro N PerinAustralia2026-06-27Dorl, James J Esq UNQUALIFIED49Stephen Shaw
1001Costa F FerenczJapan2026-06-19Commercial Press PROPOSAL52Ivan Magalhaes
1002Maria D CaudyFrance2026-06-24Morlong Associates UNQUALIFIED79Bernardo Dominic
1003Clifford W StensethJapan2026-06-22Buckley Miller Wright PROPOSAL88Anna Fali
1004Adams C MaletAustralia2026-07-03Feltz Printing Service PROPOSAL9Asiya Javayant
1005Greenwood K RoysterGermany2026-06-18Printing Dimensions UNQUALIFIED13Ivan Magalhaes
1006Leon E CaudyIndia2026-06-28Rousseaux, Michael Esq NEGOTIATION9Amy Elsner
1007Ivar Z SchemmerArgentina2026-06-27Feltz Printing Service NEGOTIATION36Ioni Bowcher
1008Juan Q FlosiUnited Kingdom2026-06-19Feltz Printing Service PROPOSAL28Xuxue Feng
1009Jeanfrancois B DilliardAustralia2026-06-25Truhlar And Truhlar Attys UNQUALIFIED63Elwin Sharvill
1010Claire D StockhamFrance2026-06-19Feiner Bros NEW99Anna Fali
1011Isabel A PerinCanada2026-07-04Printing Dimensions NEW26Xuxue Feng
1012Misaki M DoeBrazil2026-06-23Truhlar And Truhlar Attys PROPOSAL49Xuxue Feng
1013James G MaletFrance2026-06-28Printing Dimensions RENEWAL54Amy Elsner
1014Darci E CaldareraIndia2026-07-04Feltz Printing Service NEGOTIATION59Asiya Javayant
1015Ivar F RoysterAustralia2026-07-05Chapman, Ross E Esq PROPOSAL1Onyama Limba
1016Antonio U GlickCanada2026-06-07Dorl, James J Esq PROPOSAL61Asiya Javayant
1017Faith S CampainJapan2026-06-11Benton, John B Jr NEW56Amy Elsner
1018Sinclair X GillianJapan2026-06-26Dorl, James J Esq NEGOTIATION22Onyama Limba
1019Aditya N KuskoItaly2026-06-28Truhlar And Truhlar Attys NEGOTIATION20Amy Elsner
1020Salvatore Y MarrierCanada2026-07-01Rousseaux, Michael Esq UNQUALIFIED14Xuxue Feng
1021Greenwood W RulapaughIndia2026-06-29Rousseaux, Michael Esq QUALIFIED35Ivan Magalhaes
1022Adams J KolmetzFrance2026-06-30King, Christopher A Esq NEW45Onyama Limba
1023Darci R ChuiGermany2026-06-27Truhlar And Truhlar Attys NEW36Stephen Shaw
1024Smith F MaletSpain2026-06-10King, Christopher A Esq RENEWAL74Anna Fali
1025Ricardo N IturbideBrazil2026-07-03Benton, John B Jr PROPOSAL58Stephen Shaw
1026Mujtaba B MacleadFrance2026-06-07Buckley Miller Wright NEGOTIATION28Amy Elsner
1027Jefferson J SergiSpain2026-06-14Benton, John B Jr NEW49Ioni Bowcher
1028Jones A PaprockiAustralia2026-07-02Buckley Miller Wright UNQUALIFIED16Ioni Bowcher
1029Maisha V NickaSpain2026-06-17Rangoni Of Florence UNQUALIFIED10Asiya Javayant
1030Maria M VenereFrance2026-07-04Feltz Printing Service NEW53Elwin Sharvill
1031Costa P KuskoFrance2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED3Anna Fali
1032Claire S AmigonItaly2026-06-16Buckley Miller Wright NEW71Stephen Shaw
1033Clifford F CaudyArgentina2026-06-26Feltz Printing Service UNQUALIFIED4Ivan Magalhaes
1034Adams B DoeSpain2026-06-12Morlong Associates UNQUALIFIED86Xuxue Feng
1035Cody N AlbaresCanada2026-06-30Feiner Bros PROPOSAL66Xuxue Feng
1036Faith E WaycottJapan2026-06-22Chanay, Jeffrey A Esq QUALIFIED69Stephen Shaw
1037Izzy A GarufiBrazil2026-06-13Truhlar And Truhlar Attys RENEWAL88Onyama Limba
1038Costa I ButtArgentina2026-06-26Chanay, Jeffrey A Esq RENEWAL82Stephen Shaw
1039Chavez J BowleyJapan2026-07-01Chemel, James L Cpa NEGOTIATION58Anna Fali
1040Isabel D FollerBrazil2026-06-06Dorl, James J Esq QUALIFIED16Xuxue Feng
1041Greenwood G StensethUnited Kingdom2026-06-07Morlong Associates UNQUALIFIED65Bernardo Dominic
1042Tony D ButtAustralia2026-07-05Chemel, James L Cpa NEW22Onyama Limba
1043Kadeem Q RimRussia2026-06-14Commercial Press NEW84Ioni Bowcher
1044Kaitlin X MaletBrazil2026-06-09Truhlar And Truhlar Attys QUALIFIED83Xuxue Feng
1045Nicolas S CaldareraIndia2026-07-05Printing Dimensions RENEWAL1Anna Fali
1046Isabel X AmigonCanada2026-06-19Truhlar And Truhlar Attys RENEWAL90Onyama Limba
1047Nicolas H RutaArgentina2026-07-03Feiner Bros QUALIFIED78Anna Fali
1048Kaitlin V ChuiAustralia2026-06-07Feiner Bros UNQUALIFIED91Xuxue Feng
1049Ricardo N PoquetteBrazil2026-06-22Commercial Press UNQUALIFIED96Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar N ButtItalyBernardo Dominic PROPOSAL
Mayumi D BowleyUnited KingdomIoni Bowcher NEW
Leja V MaletBrazilXuxue Feng QUALIFIED
James M ButtSpainOnyama Limba RENEWAL
Adams Y RoysterGermanyBernardo Dominic NEGOTIATION
Leon O AlbaresBrazilAmy Elsner UNQUALIFIED
James Q MacleadFranceIvan Magalhaes PROPOSAL
James P InouyeSpainStephen Shaw PROPOSAL
Maria H CaldareraRussiaBernardo Dominic NEGOTIATION
Wickens R WieserFranceIoni Bowcher QUALIFIED
Octavia V WhobreyFranceXuxue Feng NEW
Morrow Q TollnerItalyAsiya Javayant NEW
Faith V SaylorsCanadaIoni Bowcher UNQUALIFIED
Rodrigues T BriddickJapanBernardo Dominic QUALIFIED
Morrow N WhobreyJapanBernardo Dominic QUALIFIED
Emily C RoysterUnited KingdomOnyama Limba PROPOSAL
Darci D BriddickJapanStephen Shaw RENEWAL
Jones Z GlickJapanAnna Fali NEW
Jennifer A RutaFranceAnna Fali NEW
Aika C WaycottAustraliaAsiya Javayant NEW
Jennifer A MarrierIndiaBernardo Dominic QUALIFIED
Kadeem U BowleyAustraliaAsiya Javayant PROPOSAL
Faith R GarufiBrazilOnyama Limba QUALIFIED
Salvatore M CaudyFranceElwin Sharvill NEGOTIATION
Mayumi D BowleyArgentinaAmy Elsner NEW
Ivar O FollerRussiaIoni Bowcher NEW
Mayumi W MacleadCanadaAnna Fali QUALIFIED
David G FerenczRussiaAnna Fali RENEWAL
Rodrigues M NestleAustraliaAmy Elsner PROPOSAL
Francesco L WieserAustraliaElwin Sharvill PROPOSAL
Emily W WieserCanadaStephen Shaw UNQUALIFIED
Francesco V SaylorsSpainStephen Shaw RENEWAL
Morrow Z GlickArgentinaElwin Sharvill NEW
Izzy X RutaFranceStephen Shaw NEGOTIATION
Jefferson N WieserFranceElwin Sharvill QUALIFIED
Jones H FollerSpainAnna Fali NEGOTIATION
Aika C NickaItalyXuxue Feng NEW
Leja P DarakjyBrazilAnna Fali NEGOTIATION
Maria H FerenczArgentinaElwin Sharvill NEGOTIATION
Sinclair V PoquetteJapanAmy Elsner NEGOTIATION
Greenwood V InouyeFranceOnyama Limba NEGOTIATION
Arvin N WieserCanadaAnna Fali UNQUALIFIED
Ashley W AlbaresCanadaIoni Bowcher RENEWAL
Chavez L SergiRussiaIoni Bowcher QUALIFIED
Tony N PaprockiItalyAmy Elsner UNQUALIFIED
Jennifer P RutaGermanyIvan Magalhaes QUALIFIED
Juan K ChuiBrazilAnna Fali UNQUALIFIED
Greenwood L BriddickAustraliaIvan Magalhaes RENEWAL
Darci L BriddickBrazilElwin Sharvill NEGOTIATION
Mayumi O GauchoCanadaStephen Shaw RENEWAL
Frozen Columns
Name
Maria S Doe
Jeanfrancois O Stockham
Tony B Kusko
Maria F Paprocki
Nicolas F Ferencz
Jones B Caldarera
Maria O Perin
Stacey J Bowley
Murillo D Doe
Clifford V Iturbide
Wickens C Waycott
Chavez O Whobrey
Cody X Royster
Clifford E Chui
Octavia P Stockham
Maria F Nestle
Octavia K Waycott
Aditya Q Sergi
Salvatore D Poquette
Julie Y Gaucho
Ivar G Royster
Arvin I Tollner
Jennifer D Rulapaugh
Claire G Foller
Cody T Tollner
Isabel T Vocelka
Smith E Gaucho
Ivar U Stockham
Ricardo H Iturbide
Costa M Bolognia
Jefferson F Stockham
Aika Z Paprocki
Salvatore S Amigon
Leon A Kusko
Izzy X Glick
Adams F Butt
Misaki J Inouye
Kaitlin I Perin
Leon Y Inouye
Ivar P Venere
Johnson I Amigon
Ricardo P Darakjy
Jefferson J Caldarera
Faith V Vocelka
Morrow G Sergi
Jeanfrancois C Nicka
Alejandro G Bolognia
Johnson D Albares
Murillo D Tollner
Mayumi G Vocelka
IdCountryDate
1000United Kingdom2026-06-07
1001Germany2026-06-25
1002Argentina2026-06-25
1003Canada2026-06-10
1004Spain2026-06-15
1005Brazil2026-06-25
1006India2026-06-17
1007Argentina2026-06-17
1008France2026-06-16
1009Brazil2026-07-01
1010Russia2026-06-09
1011Brazil2026-06-11
1012Japan2026-06-06
1013India2026-06-28
1014Germany2026-06-25
1015Italy2026-07-01
1016Australia2026-06-15
1017Russia2026-07-02
1018Canada2026-06-08
1019Russia2026-06-06
1020Australia2026-07-04
1021Australia2026-06-20
1022Spain2026-06-20
1023Japan2026-06-30
1024Spain2026-06-11
1025Argentina2026-06-08
1026Italy2026-06-30
1027France2026-06-07
1028Russia2026-06-20
1029Italy2026-06-19
1030Australia2026-06-30
1031Germany2026-07-04
1032Australia2026-07-03
1033Germany2026-06-16
1034Italy2026-06-14
1035United Kingdom2026-06-23
1036Germany2026-06-10
1037Brazil2026-06-22
1038Australia2026-07-03
1039Russia2026-06-10
1040United Kingdom2026-06-17
1041Canada2026-06-16
1042Italy2026-06-28
1043Australia2026-06-29
1044Australia2026-06-25
1045Australia2026-07-05
1046Australia2026-06-10
1047Brazil2026-06-12
1048Brazil2026-06-22
1049Australia2026-06-22

On-Demand Data

NameIdCountryDate
James D Sergi1000France2026-06-25
Sinclair W Inouye1001Australia2026-06-28
Rodrigues U Shinko1002Spain2026-06-23
Nicolas Y Foller1003France2026-06-14
Aika A Dilliard1004Australia2026-06-19
Stacey C Bolognia1005Spain2026-06-06
Morrow O Marrier1006Italy2026-07-04
Morrow C Vocelka1007Russia2026-06-23
Leja S Caldarera1008Australia2026-07-01
Nicolas B Royster1009United Kingdom2026-06-27
Jefferson W Malet1010India2026-06-20
Adams D Albares1011Spain2026-06-13
Claire F Paprocki1012France2026-06-28
Chavez I Kolmetz1013Germany2026-06-11
Smith J Vocelka1014Japan2026-06-12
Claire A Maclead1015Russia2026-06-27
Alejandro M Kolmetz1016Argentina2026-06-23
Darci M Rim1017Germany2026-07-02
Kadeem G Oldroyd1018India2026-06-28
Cody Y Ostrosky1019Australia2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan P ChuiAustraliaStephen Shaw NEGOTIATION
Salvatore N NestleFranceAmy Elsner NEGOTIATION
Silvio U ChuiJapanAnna Fali RENEWAL
Juan E MacleadItalyBernardo Dominic UNQUALIFIED
Emily L DoeAustraliaAsiya Javayant NEGOTIATION
Mayumi G MorascaJapanIvan Magalhaes RENEWAL
Cody K GarufiSpainStephen Shaw NEGOTIATION
Jennifer V BriddickGermanyIvan Magalhaes RENEWAL
Leja X RulapaughIndiaOnyama Limba UNQUALIFIED
Aditya D NestleItalyOnyama Limba NEW
Silvio C SaylorsAustraliaBernardo Dominic RENEWAL
James O WhobreySpainBernardo Dominic UNQUALIFIED
Johnson B SlusarskiSpainIoni Bowcher PROPOSAL
Nicolas E WhobreyAustraliaXuxue Feng NEGOTIATION
Francesco G ButtArgentinaAnna Fali UNQUALIFIED
Kadeem A MaletRussiaOnyama Limba NEGOTIATION
Maisha X TollnerJapanOnyama Limba UNQUALIFIED
Morrow V CampainGermanyIoni Bowcher UNQUALIFIED
Leon P OldroydSpainAnna Fali NEW
Kadeem B ShinkoFranceStephen Shaw NEW
Jones O PoquetteUnited KingdomAmy Elsner RENEWAL
Maisha L MacleadFranceBernardo Dominic NEW
Silvio X VocelkaIndiaAmy Elsner NEW
Emily W InouyeSpainAnna Fali UNQUALIFIED
Jefferson P WieserBrazilXuxue Feng RENEWAL
Izzy F RutaSpainXuxue Feng RENEWAL
Jefferson L CaldareraArgentinaOnyama Limba QUALIFIED
Munro V MacleadGermanyElwin Sharvill PROPOSAL
Juan R SchemmerFranceAnna Fali RENEWAL
Wickens B KuskoArgentinaAnna Fali NEGOTIATION
Chavez E TollnerAustraliaBernardo Dominic NEGOTIATION
Johnson O GauchoGermanyIoni Bowcher NEW
Alejandro I AmigonFranceIoni Bowcher PROPOSAL
Ashley L FollerBrazilOnyama Limba NEW
Wickens B BriddickCanadaAnna Fali NEGOTIATION
Aika K PaprockiBrazilIoni Bowcher QUALIFIED
Isabel E AlbaresSpainAnna Fali NEGOTIATION
Silvio K DoeItalyAnna Fali UNQUALIFIED
James O KolmetzIndiaAnna Fali PROPOSAL
Octavia Y VocelkaFranceIoni Bowcher UNQUALIFIED

<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>