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
Aruna Y StensethAustraliaIvan Magalhaes NEGOTIATION
Faith J SaylorsAustraliaElwin Sharvill NEW
Clifford V BowleyIndiaOnyama Limba PROPOSAL
Jefferson N KuskoIndiaBernardo Dominic QUALIFIED
James M OldroydCanadaAnna Fali RENEWAL
Tony K DilliardRussiaXuxue Feng UNQUALIFIED
Kaitlin Z FollerCanadaXuxue Feng RENEWAL
Aruna M BriddickCanadaOnyama Limba QUALIFIED
Juan P NickaCanadaXuxue Feng NEGOTIATION
Adams H WaycottRussiaElwin Sharvill UNQUALIFIED
Ricardo Q PoquetteIndiaStephen Shaw NEGOTIATION
Clifford P PerinSpainElwin Sharvill RENEWAL
Aditya M IturbideSpainIvan Magalhaes PROPOSAL
Mujtaba K NickaBrazilAmy Elsner NEW
Jennifer X GlickArgentinaAnna Fali RENEWAL
Clifford P MaletJapanElwin Sharvill RENEWAL
Cody X BologniaAustraliaOnyama Limba RENEWAL
Julie U SaylorsSpainXuxue Feng NEW
Aruna C FerenczFranceElwin Sharvill QUALIFIED
Leon J FollerItalyAmy Elsner UNQUALIFIED
Jeanfrancois X GauchoRussiaXuxue Feng PROPOSAL
Leon U PoquetteRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois A IturbideGermanyAsiya Javayant UNQUALIFIED
Wickens V MarrierCanadaStephen Shaw NEW
Jennifer Y CaldareraCanadaXuxue Feng RENEWAL
Chavez C FigeroaAustraliaAsiya Javayant NEGOTIATION
Maisha B CaudyUnited KingdomXuxue Feng RENEWAL
Leon X CaldareraArgentinaIvan Magalhaes NEGOTIATION
Aruna L MorascaFranceAnna Fali PROPOSAL
Claire L WieserUnited KingdomBernardo Dominic NEGOTIATION
Munro D FerenczAustraliaAsiya Javayant RENEWAL
Leon O MaletAustraliaAsiya Javayant QUALIFIED
Jones Q DarakjyCanadaStephen Shaw NEW
Adams N AlbaresCanadaAmy Elsner NEGOTIATION
Munro U MaletSpainXuxue Feng UNQUALIFIED
Costa I MaletUnited KingdomIvan Magalhaes NEGOTIATION
Isabel I RimRussiaIoni Bowcher QUALIFIED
Sinclair Y PaprockiCanadaAmy Elsner PROPOSAL
Stacey O ButtUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair X PoquetteIndiaStephen Shaw UNQUALIFIED
Morrow Y FollerGermanyIvan Magalhaes QUALIFIED
Darci K BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Murillo K RulapaughGermanyOnyama Limba NEW
Clifford N GarufiRussiaStephen Shaw PROPOSAL
Juan B PerinSpainOnyama Limba UNQUALIFIED
Maria Q DarakjyItalyOnyama Limba RENEWAL
Claire S TollnerItalyXuxue Feng NEGOTIATION
Greenwood Z WieserIndiaAmy Elsner RENEWAL
Morrow H CaldareraItalyOnyama Limba UNQUALIFIED
Izzy T PerinAustraliaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi Q PerinCanadaElwin Sharvill NEW
Deepesh R VenereArgentinaBernardo Dominic QUALIFIED
Antonio F FigeroaGermanyAsiya Javayant RENEWAL
Claire G NickaBrazilBernardo Dominic UNQUALIFIED
Francesco Q OldroydFranceAnna Fali PROPOSAL
Aika Y OstroskyUnited KingdomElwin Sharvill PROPOSAL
Ricardo M MaletFranceAsiya Javayant QUALIFIED
Wickens E InouyeGermanyElwin Sharvill PROPOSAL
Wickens H ChuiItalyStephen Shaw QUALIFIED
Juan H GlickAustraliaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood C VocelkaArgentina2026-07-21Dorl, James J Esq QUALIFIED56Asiya Javayant
1001Jeanfrancois N GarufiRussia2026-07-30Chemel, James L Cpa RENEWAL61Anna Fali
1002Kadeem M AlbaresUnited Kingdom2026-07-28Feltz Printing Service UNQUALIFIED88Ivan Magalhaes
1003James F FollerJapan2026-07-10Chapman, Ross E Esq RENEWAL30Bernardo Dominic
1004Leon T MarrierUnited Kingdom2026-07-18Truhlar And Truhlar Attys QUALIFIED6Anna Fali
1005Emily T BologniaUnited Kingdom2026-07-29Chanay, Jeffrey A Esq QUALIFIED67Ioni Bowcher
1006Francesco G RoysterJapan2026-07-14Rousseaux, Michael Esq NEW61Bernardo Dominic
1007Alejandro L GauchoJapan2026-07-08Rangoni Of Florence RENEWAL48Ivan Magalhaes
1008Emily H CaldareraJapan2026-07-23Rangoni Of Florence RENEWAL30Xuxue Feng
1009Clifford T CaldareraGermany2026-08-06Chapman, Ross E Esq QUALIFIED77Stephen Shaw
1010Tony L ShinkoItaly2026-07-20Chanay, Jeffrey A Esq NEGOTIATION44Asiya Javayant
1011Julie U FigeroaBrazil2026-07-12Chanay, Jeffrey A Esq NEGOTIATION8Xuxue Feng
1012Deepesh D IturbideCanada2026-07-26Rangoni Of Florence UNQUALIFIED49Asiya Javayant
1013Johnson V MaletIndia2026-07-13Feltz Printing Service PROPOSAL97Bernardo Dominic
1014Faith N ShinkoCanada2026-07-30Chanay, Jeffrey A Esq NEW8Elwin Sharvill
1015Deepesh Y RimGermany2026-08-04Printing Dimensions NEW51Elwin Sharvill
1016Munro Z WhobreyUnited Kingdom2026-07-19Commercial Press QUALIFIED42Asiya Javayant
1017Clifford U PaprockiItaly2026-08-04King, Christopher A Esq UNQUALIFIED30Amy Elsner
1018Izzy W FerenczCanada2026-07-24Buckley Miller Wright QUALIFIED23Anna Fali
1019Johnson S CaldareraBrazil2026-07-17Chanay, Jeffrey A Esq RENEWAL21Amy Elsner
1020Julie D FollerItaly2026-08-03Printing Dimensions UNQUALIFIED3Ioni Bowcher
1021Chavez W RutaCanada2026-07-20Dorl, James J Esq PROPOSAL69Elwin Sharvill
1022Deepesh E WhobreyUnited Kingdom2026-08-04Dorl, James J Esq NEW25Ioni Bowcher
1023Emily O WieserBrazil2026-08-04King, Christopher A Esq NEGOTIATION49Onyama Limba
1024James P StensethBrazil2026-07-28Chemel, James L Cpa RENEWAL53Bernardo Dominic
1025Aditya X FlosiJapan2026-07-25Commercial Press PROPOSAL12Amy Elsner
1026Wickens W FigeroaAustralia2026-07-31Morlong Associates UNQUALIFIED51Bernardo Dominic
1027Ricardo Z DarakjyBrazil2026-07-20Rousseaux, Michael Esq UNQUALIFIED83Asiya Javayant
1028Darci P BowleyBrazil2026-07-14Morlong Associates NEW16Ioni Bowcher
1029Nicolas U OldroydSpain2026-07-18Rangoni Of Florence RENEWAL13Ioni Bowcher
1030Jefferson D NestleCanada2026-07-31Commercial Press UNQUALIFIED93Xuxue Feng
1031Aditya F MaletUnited Kingdom2026-07-15Printing Dimensions RENEWAL4Ivan Magalhaes
1032Arvin W MaletAustralia2026-07-11Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1033Mayumi X MorascaRussia2026-07-09Printing Dimensions UNQUALIFIED81Onyama Limba
1034Rodrigues V MaletAustralia2026-07-28Chapman, Ross E Esq PROPOSAL81Stephen Shaw
1035Jones Q RimArgentina2026-07-08King, Christopher A Esq NEGOTIATION37Ivan Magalhaes
1036Rodrigues D AlbaresBrazil2026-07-17Rousseaux, Michael Esq NEW97Elwin Sharvill
1037Kaitlin F BowleyRussia2026-08-02Chemel, James L Cpa NEW55Stephen Shaw
1038David W InouyeBrazil2026-08-03King, Christopher A Esq UNQUALIFIED62Ioni Bowcher
1039Smith T SchemmerAustralia2026-07-09Morlong Associates UNQUALIFIED93Ioni Bowcher
1040Izzy A DoeArgentina2026-08-05Truhlar And Truhlar Attys NEW1Amy Elsner
1041Maria N SlusarskiJapan2026-07-12Commercial Press NEGOTIATION90Onyama Limba
1042Jennifer W BowleyRussia2026-07-09Buckley Miller Wright NEGOTIATION25Amy Elsner
1043Morrow K RulapaughCanada2026-08-06Dorl, James J Esq NEW50Bernardo Dominic
1044Claire I SchemmerAustralia2026-07-26Commercial Press NEGOTIATION93Onyama Limba
1045Aika J WaycottCanada2026-07-24Truhlar And Truhlar Attys QUALIFIED28Onyama Limba
1046Arvin J NestleJapan2026-07-22Rousseaux, Michael Esq QUALIFIED65Amy Elsner
1047Izzy L DarakjyJapan2026-08-03Rangoni Of Florence PROPOSAL31Ioni Bowcher
1048Julie W InouyeBrazil2026-07-19Commercial Press UNQUALIFIED20Anna Fali
1049Johnson C StockhamSpain2026-07-12Dorl, James J Esq PROPOSAL25Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Isabel F CampainUnited KingdomIvan Magalhaes PROPOSAL
Julie R GarufiFranceAnna Fali QUALIFIED
Octavia Z ButtCanadaAsiya Javayant UNQUALIFIED
Salvatore Z WaycottUnited KingdomAmy Elsner QUALIFIED
Rodrigues G GarufiCanadaXuxue Feng UNQUALIFIED
Mayumi D DilliardGermanyAnna Fali NEGOTIATION
Morrow Z PoquetteFranceOnyama Limba RENEWAL
Murillo Q CaudyItalyAsiya Javayant NEGOTIATION
Maisha W BowleyCanadaOnyama Limba NEGOTIATION
Munro K BriddickRussiaElwin Sharvill QUALIFIED
Chavez P GauchoItalyElwin Sharvill QUALIFIED
Maria B MacleadUnited KingdomIoni Bowcher NEGOTIATION
Alejandro M BriddickItalyAnna Fali PROPOSAL
Salvatore A DarakjyRussiaStephen Shaw NEW
James I DoeFranceBernardo Dominic PROPOSAL
Julie D ButtAustraliaElwin Sharvill NEW
Cody K StensethItalyIvan Magalhaes QUALIFIED
Jones B RimItalyBernardo Dominic UNQUALIFIED
Emily B RutaCanadaElwin Sharvill RENEWAL
Johnson N WhobreyGermanyIvan Magalhaes NEGOTIATION
Deepesh X OldroydItalyStephen Shaw PROPOSAL
Alejandro V RimIndiaBernardo Dominic PROPOSAL
Ashley W CaldareraCanadaIoni Bowcher PROPOSAL
Stacey W AmigonIndiaOnyama Limba UNQUALIFIED
Jennifer S CampainBrazilIoni Bowcher PROPOSAL
Greenwood F ShinkoBrazilAmy Elsner NEW
Smith I OstroskyIndiaAsiya Javayant UNQUALIFIED
Clifford I VocelkaBrazilAsiya Javayant RENEWAL
Antonio H SlusarskiJapanAmy Elsner QUALIFIED
Jones X StockhamItalyXuxue Feng UNQUALIFIED
Claire L NickaFranceOnyama Limba UNQUALIFIED
Jones V KuskoArgentinaAnna Fali PROPOSAL
Johnson A GlickSpainAnna Fali QUALIFIED
Deepesh L ChuiGermanyIvan Magalhaes NEW
Izzy H BowleyAustraliaElwin Sharvill RENEWAL
Smith T StensethRussiaStephen Shaw QUALIFIED
Maria W RimSpainAnna Fali NEGOTIATION
Darci E RimFranceOnyama Limba NEW
Munro S BriddickCanadaAmy Elsner QUALIFIED
Jefferson Q SchemmerUnited KingdomIoni Bowcher PROPOSAL
Cody D PaprockiAustraliaAnna Fali PROPOSAL
Alejandro U CampainCanadaAnna Fali NEGOTIATION
Mujtaba Z KuskoJapanAnna Fali UNQUALIFIED
Wickens J SchemmerUnited KingdomBernardo Dominic RENEWAL
Salvatore G DoeCanadaOnyama Limba NEW
Misaki D PoquetteRussiaAsiya Javayant NEW
Leon B MacleadBrazilXuxue Feng QUALIFIED
Julie X BriddickSpainAnna Fali UNQUALIFIED
Deepesh V OstroskyArgentinaAsiya Javayant UNQUALIFIED
Emily X OldroydJapanBernardo Dominic NEW
Frozen Columns
Name
Alejandro O Gaucho
Alejandro E Bowley
Aruna V Maclead
Tony W Doe
Clifford I Kusko
Kadeem Y Whobrey
Julie C Glick
Aruna X Venere
Jennifer W Gillian
Cody V Albares
James Z Inouye
Claire K Paprocki
Aika I Rim
Julie F Venere
Juan F Bowley
Costa F Nestle
Maria X Nestle
Leja D Schemmer
Wickens Y Schemmer
Isabel R Kolmetz
Emily L Oldroyd
Jeanfrancois V Saylors
Izzy M Stockham
Aditya X Nicka
Julie B Malet
Jones W Figeroa
Morrow G Bolognia
Julie V Kusko
David Z Briddick
Francesco Z Shinko
Jennifer F Marrier
Mujtaba Y Campain
Kadeem W Schemmer
Sinclair R Albares
Sinclair O Ruta
Aika R Tollner
Silvio O Amigon
Rodrigues D Stenseth
Morrow Z Malet
Juan M Butt
Kaitlin Z Waycott
Faith W Flosi
Kaitlin P Foller
Munro F Bolognia
Alejandro M Rulapaugh
Francesco C Albares
Kadeem N Gaucho
Adams V Poquette
Munro C Schemmer
Mujtaba N Nestle
IdCountryDate
1000Australia2026-07-19
1001India2026-07-29
1002Germany2026-08-04
1003Germany2026-07-25
1004Argentina2026-07-25
1005France2026-07-18
1006Italy2026-07-22
1007Brazil2026-08-01
1008Italy2026-07-10
1009Canada2026-07-17
1010Canada2026-07-15
1011Japan2026-07-29
1012France2026-07-27
1013Italy2026-07-26
1014Japan2026-07-22
1015Japan2026-08-03
1016Canada2026-07-10
1017Spain2026-07-10
1018Argentina2026-08-04
1019Japan2026-07-22
1020Brazil2026-08-01
1021Australia2026-08-06
1022India2026-07-19
1023United Kingdom2026-07-28
1024Australia2026-07-29
1025Russia2026-07-09
1026Argentina2026-07-08
1027Russia2026-07-28
1028Germany2026-07-10
1029United Kingdom2026-07-10
1030Spain2026-07-29
1031Germany2026-07-22
1032Russia2026-07-08
1033United Kingdom2026-07-09
1034France2026-07-18
1035Brazil2026-07-16
1036Spain2026-07-12
1037Brazil2026-08-04
1038Argentina2026-07-08
1039Canada2026-07-28
1040Spain2026-07-25
1041Japan2026-08-06
1042Brazil2026-07-22
1043Brazil2026-08-01
1044Japan2026-07-08
1045Japan2026-07-23
1046France2026-07-10
1047Spain2026-07-19
1048India2026-07-15
1049Germany2026-08-04

On-Demand Data

NameIdCountryDate
Rodrigues I Campain1000France2026-07-28
Nicolas J Nicka1001Italy2026-08-03
Antonio F Waycott1002Italy2026-07-11
Octavia D Rim1003Germany2026-08-03
Claire K Briddick1004Brazil2026-07-13
Emily G Maclead1005France2026-07-23
Aditya T Shinko1006Russia2026-07-28
Jennifer E Stockham1007Russia2026-07-11
Costa J Whobrey1008Russia2026-07-25
Rodrigues C Gaucho1009Canada2026-07-26
Chavez S Oldroyd1010Canada2026-08-01
Leja V Perin1011Brazil2026-08-02
Rodrigues T Albares1012United Kingdom2026-08-03
Rodrigues I Darakjy1013India2026-07-18
Leon K Vocelka1014France2026-07-29
Juan D Tollner1015United Kingdom2026-07-27
Jefferson A Briddick1016Canada2026-08-05
Salvatore I Doe1017Spain2026-07-09
Sinclair O Darakjy1018Canada2026-08-01
Isabel E Darakjy1019India2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem F SergiArgentinaAmy Elsner RENEWAL
Jeanfrancois U MaletCanadaAnna Fali NEW
Murillo V KolmetzFranceIvan Magalhaes PROPOSAL
Maria C PerinRussiaAmy Elsner RENEWAL
David S DilliardIndiaOnyama Limba UNQUALIFIED
Leja G SergiCanadaBernardo Dominic RENEWAL
Wickens G TollnerRussiaIoni Bowcher RENEWAL
Antonio H VocelkaItalyOnyama Limba UNQUALIFIED
Juan R DarakjyJapanIoni Bowcher UNQUALIFIED
Aruna X SlusarskiGermanyAmy Elsner QUALIFIED
Alejandro I FollerSpainOnyama Limba NEGOTIATION
Arvin S GarufiGermanyAnna Fali NEW
Darci X ShinkoSpainIoni Bowcher QUALIFIED
Jennifer Z RutaCanadaBernardo Dominic NEW
Cody J VocelkaRussiaXuxue Feng NEW
Rodrigues X ButtItalyIoni Bowcher RENEWAL
Mujtaba Z PerinItalyOnyama Limba RENEWAL
Arvin P MarrierIndiaBernardo Dominic QUALIFIED
Maria N MacleadBrazilElwin Sharvill RENEWAL
Octavia S RulapaughItalyAmy Elsner NEGOTIATION
Aruna F DilliardFranceXuxue Feng UNQUALIFIED
Kaitlin X RutaRussiaXuxue Feng PROPOSAL
Kaitlin P OstroskyUnited KingdomIoni Bowcher RENEWAL
Maria P DilliardBrazilIoni Bowcher NEW
Ivar M ChuiUnited KingdomIoni Bowcher QUALIFIED
Aika L FollerAustraliaXuxue Feng UNQUALIFIED
Ashley L CampainJapanXuxue Feng PROPOSAL
Murillo C ButtGermanyAsiya Javayant PROPOSAL
Kaitlin J IturbideIndiaIvan Magalhaes QUALIFIED
Claire F ButtItalyOnyama Limba NEW
Maisha V DilliardSpainElwin Sharvill UNQUALIFIED
Emily U BriddickGermanyStephen Shaw NEW
Wickens E RutaSpainBernardo Dominic NEW
Adams N WaycottJapanStephen Shaw PROPOSAL
Nicolas V FlosiIndiaAsiya Javayant RENEWAL
Alejandro V WhobreyRussiaIvan Magalhaes NEGOTIATION
Nicolas U GarufiFranceStephen Shaw RENEWAL
Claire G BologniaBrazilIvan Magalhaes RENEWAL
Leon R CaldareraJapanStephen Shaw RENEWAL
Costa K CaudyAustraliaElwin Sharvill PROPOSAL

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