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
Kadeem R PaprockiSpainElwin Sharvill NEW
Sinclair Y NestleSpainXuxue Feng PROPOSAL
Claire Q FollerArgentinaElwin Sharvill NEGOTIATION
Maria P CaudyItalyAnna Fali QUALIFIED
Rodrigues C MarrierAustraliaElwin Sharvill PROPOSAL
Mayumi H PoquetteJapanXuxue Feng NEW
Mujtaba D MorascaJapanIoni Bowcher QUALIFIED
Murillo Z OstroskySpainAmy Elsner QUALIFIED
Octavia C CaldareraCanadaAnna Fali PROPOSAL
Izzy H FlosiIndiaElwin Sharvill NEW
Misaki O SchemmerGermanyIvan Magalhaes RENEWAL
Jennifer D RutaCanadaBernardo Dominic PROPOSAL
Maisha S MarrierFranceOnyama Limba UNQUALIFIED
Deepesh L StockhamSpainBernardo Dominic QUALIFIED
Jeanfrancois Y ShinkoIndiaAsiya Javayant NEGOTIATION
Misaki W CaudyGermanyXuxue Feng NEW
Smith O ButtArgentinaIvan Magalhaes NEGOTIATION
Adams T FerenczRussiaAnna Fali UNQUALIFIED
Tony T NestleBrazilIoni Bowcher NEW
Salvatore W SergiArgentinaAmy Elsner RENEWAL
Francesco D InouyeFranceBernardo Dominic NEGOTIATION
Smith E RutaCanadaAnna Fali UNQUALIFIED
Maisha S AmigonItalyOnyama Limba RENEWAL
Kaitlin B DarakjyBrazilAmy Elsner QUALIFIED
Aditya P KolmetzFranceIvan Magalhaes NEGOTIATION
Mujtaba N FollerBrazilBernardo Dominic PROPOSAL
Darci U DoeAustraliaIoni Bowcher PROPOSAL
Juan P BowleyItalyBernardo Dominic QUALIFIED
Francesco Z OstroskyCanadaOnyama Limba NEGOTIATION
Jeanfrancois K BowleyCanadaAnna Fali PROPOSAL
Tony E DilliardItalyIvan Magalhaes RENEWAL
Munro F OstroskyAustraliaAmy Elsner RENEWAL
Jefferson M BologniaIndiaAnna Fali PROPOSAL
David K GlickJapanOnyama Limba NEW
Clifford K DarakjyGermanyOnyama Limba PROPOSAL
Wickens W StockhamFranceAsiya Javayant QUALIFIED
Aruna S ButtArgentinaAsiya Javayant RENEWAL
Jefferson W WieserFranceAnna Fali PROPOSAL
Emily P SergiRussiaAnna Fali QUALIFIED
Faith K OstroskyAustraliaXuxue Feng UNQUALIFIED
Murillo Z MaletUnited KingdomIoni Bowcher NEGOTIATION
Tony S CampainGermanyXuxue Feng UNQUALIFIED
Johnson K KolmetzGermanyAnna Fali PROPOSAL
Deepesh E KuskoIndiaIvan Magalhaes PROPOSAL
Isabel P RulapaughSpainAnna Fali UNQUALIFIED
Murillo H FlosiItalyIvan Magalhaes NEGOTIATION
Aditya I InouyeJapanIoni Bowcher RENEWAL
Murillo S FigeroaRussiaAmy Elsner NEW
Smith K KuskoBrazilXuxue Feng QUALIFIED
Maisha W AmigonGermanyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin D BowleyArgentinaAsiya Javayant NEW
Stacey C AlbaresFranceXuxue Feng NEW
Arvin V FollerAustraliaIoni Bowcher PROPOSAL
Salvatore X FerenczAustraliaStephen Shaw UNQUALIFIED
Arvin N RutaUnited KingdomElwin Sharvill RENEWAL
Stacey W PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Murillo A FigeroaBrazilIvan Magalhaes QUALIFIED
Jennifer J OldroydJapanAsiya Javayant NEGOTIATION
Ashley I SchemmerFranceStephen Shaw NEGOTIATION
Cody N DilliardRussiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba I ButtIndia2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED27Xuxue Feng
1001Kadeem H CampainFrance2026-07-22King, Christopher A Esq NEW2Amy Elsner
1002Aika J PerinJapan2026-07-21Truhlar And Truhlar Attys PROPOSAL88Stephen Shaw
1003Morrow F ShinkoBrazil2026-07-11Rousseaux, Michael Esq RENEWAL41Ivan Magalhaes
1004Leon N DoeSpain2026-07-24Truhlar And Truhlar Attys RENEWAL67Elwin Sharvill
1005Faith H FollerBrazil2026-07-25Chapman, Ross E Esq RENEWAL90Ioni Bowcher
1006Faith K CaudyCanada2026-07-06Commercial Press UNQUALIFIED28Stephen Shaw
1007Juan R AlbaresSpain2026-07-04Commercial Press NEGOTIATION3Asiya Javayant
1008Deepesh U PaprockiArgentina2026-07-30Morlong Associates NEGOTIATION19Anna Fali
1009Octavia B MaletUnited Kingdom2026-07-12Chapman, Ross E Esq PROPOSAL64Anna Fali
1010Ricardo I StensethCanada2026-07-10Chapman, Ross E Esq NEGOTIATION54Onyama Limba
1011Jones M RutaIndia2026-07-27Feiner Bros RENEWAL15Asiya Javayant
1012Smith F MarrierGermany2026-07-01Chemel, James L Cpa QUALIFIED4Xuxue Feng
1013Morrow G RulapaughGermany2026-07-16Chanay, Jeffrey A Esq NEW77Anna Fali
1014Kaitlin D MaletSpain2026-07-19Morlong Associates PROPOSAL9Elwin Sharvill
1015Ashley E PerinCanada2026-07-14Commercial Press UNQUALIFIED4Asiya Javayant
1016Isabel L ChuiAustralia2026-07-09Benton, John B Jr UNQUALIFIED10Amy Elsner
1017Ricardo C DilliardCanada2026-07-22King, Christopher A Esq UNQUALIFIED1Xuxue Feng
1018Isabel O PoquetteArgentina2026-07-25King, Christopher A Esq UNQUALIFIED30Asiya Javayant
1019Wickens Y PoquetteUnited Kingdom2026-07-12Rousseaux, Michael Esq NEW41Amy Elsner
1020Rodrigues P FerenczSpain2026-07-26King, Christopher A Esq UNQUALIFIED38Amy Elsner
1021Alejandro N NickaGermany2026-07-12Chanay, Jeffrey A Esq PROPOSAL67Anna Fali
1022Cody T PaprockiGermany2026-07-10Buckley Miller Wright RENEWAL26Elwin Sharvill
1023Cody E DarakjyItaly2026-07-22Rousseaux, Michael Esq RENEWAL29Xuxue Feng
1024Alejandro W BriddickFrance2026-07-05Chanay, Jeffrey A Esq RENEWAL11Ioni Bowcher
1025Francesco C MarrierArgentina2026-07-04Chemel, James L Cpa QUALIFIED26Xuxue Feng
1026Octavia J WaycottJapan2026-07-07Printing Dimensions NEW44Stephen Shaw
1027Misaki Q MaletCanada2026-07-29Rousseaux, Michael Esq PROPOSAL71Xuxue Feng
1028Jeanfrancois I WieserArgentina2026-07-30Chemel, James L Cpa RENEWAL31Ivan Magalhaes
1029Cody G SaylorsItaly2026-07-24Rousseaux, Michael Esq QUALIFIED76Asiya Javayant
1030Wickens R MarrierBrazil2026-07-24Dorl, James J Esq NEW25Stephen Shaw
1031James F NestleItaly2026-07-01Dorl, James J Esq UNQUALIFIED51Stephen Shaw
1032Leon L GlickRussia2026-07-16Feltz Printing Service NEW87Asiya Javayant
1033Stacey K AmigonRussia2026-07-23Feiner Bros RENEWAL40Amy Elsner
1034Emily K BriddickIndia2026-07-13Rousseaux, Michael Esq NEGOTIATION57Anna Fali
1035Adams Y ButtItaly2026-07-02King, Christopher A Esq NEGOTIATION59Xuxue Feng
1036Misaki X FlosiGermany2026-07-24Feiner Bros RENEWAL99Ivan Magalhaes
1037Misaki H TollnerFrance2026-07-13Buckley Miller Wright PROPOSAL92Elwin Sharvill
1038Antonio N WaycottFrance2026-07-13Morlong Associates UNQUALIFIED27Elwin Sharvill
1039Kaitlin P WaycottItaly2026-07-16Feltz Printing Service PROPOSAL41Xuxue Feng
1040Deepesh Y VocelkaCanada2026-07-25Printing Dimensions NEW8Amy Elsner
1041Murillo J IturbideSpain2026-07-15Rousseaux, Michael Esq QUALIFIED54Ivan Magalhaes
1042Murillo A NickaGermany2026-07-06Chemel, James L Cpa NEW67Onyama Limba
1043Nicolas C OstroskyUnited Kingdom2026-07-29Printing Dimensions UNQUALIFIED91Stephen Shaw
1044Emily P MorascaCanada2026-07-26Commercial Press NEGOTIATION36Anna Fali
1045Kadeem O BowleySpain2026-07-24Commercial Press NEW73Onyama Limba
1046Kaitlin U KuskoUnited Kingdom2026-07-30Rangoni Of Florence NEW72Amy Elsner
1047Aika D NickaSpain2026-07-18Chemel, James L Cpa RENEWAL81Amy Elsner
1048Ivar V BowleyJapan2026-07-15Chemel, James L Cpa UNQUALIFIED73Elwin Sharvill
1049Darci X GillianJapan2026-07-20Commercial Press UNQUALIFIED32Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Greenwood O InouyeBrazilXuxue Feng UNQUALIFIED
Rodrigues R StensethRussiaStephen Shaw UNQUALIFIED
Smith J RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Antonio Q WieserAustraliaBernardo Dominic RENEWAL
Kaitlin E NickaCanadaIoni Bowcher UNQUALIFIED
Faith T AmigonAustraliaXuxue Feng QUALIFIED
Aika E WhobreyIndiaBernardo Dominic QUALIFIED
Antonio X OstroskyArgentinaAmy Elsner RENEWAL
Mayumi K KuskoCanadaAmy Elsner NEW
Antonio K GauchoSpainOnyama Limba NEGOTIATION
Cody X MacleadBrazilXuxue Feng RENEWAL
Aruna A AmigonGermanyStephen Shaw RENEWAL
Stacey E WhobreyItalyAsiya Javayant PROPOSAL
Salvatore T NestleGermanyAsiya Javayant QUALIFIED
Wickens L BriddickGermanyStephen Shaw NEW
Tony E GauchoFranceElwin Sharvill UNQUALIFIED
Deepesh C WaycottRussiaAsiya Javayant RENEWAL
Greenwood I StensethJapanElwin Sharvill PROPOSAL
Emily R SchemmerIndiaXuxue Feng NEW
Tony R InouyeUnited KingdomAsiya Javayant PROPOSAL
Ricardo E KuskoJapanIvan Magalhaes NEW
Kaitlin D MaletIndiaAmy Elsner QUALIFIED
Mayumi Z RimRussiaAmy Elsner QUALIFIED
Ricardo J FerenczAustraliaIvan Magalhaes QUALIFIED
Murillo C OldroydJapanAsiya Javayant NEGOTIATION
Alejandro Q IturbideBrazilIoni Bowcher NEW
Stacey H DoeItalyOnyama Limba NEGOTIATION
Wickens U BowleyBrazilBernardo Dominic NEGOTIATION
Isabel T CampainJapanAsiya Javayant PROPOSAL
Jeanfrancois D BologniaCanadaBernardo Dominic RENEWAL
Aruna J WaycottBrazilIvan Magalhaes NEGOTIATION
Rodrigues E AmigonGermanyElwin Sharvill UNQUALIFIED
Jennifer Z StockhamJapanElwin Sharvill NEGOTIATION
Darci R FerenczUnited KingdomIoni Bowcher PROPOSAL
Rodrigues X WieserRussiaOnyama Limba UNQUALIFIED
Rodrigues L WaycottArgentinaIvan Magalhaes PROPOSAL
Arvin U DilliardAustraliaBernardo Dominic QUALIFIED
James O GarufiFranceAmy Elsner NEW
Leja M VocelkaGermanyElwin Sharvill RENEWAL
Rodrigues O WaycottItalyAmy Elsner UNQUALIFIED
Emily K DilliardCanadaXuxue Feng UNQUALIFIED
Faith L FerenczRussiaStephen Shaw QUALIFIED
James D SlusarskiGermanyBernardo Dominic PROPOSAL
Chavez H FigeroaAustraliaBernardo Dominic QUALIFIED
Jeanfrancois M SergiArgentinaAsiya Javayant UNQUALIFIED
Greenwood B MarrierUnited KingdomIoni Bowcher RENEWAL
Izzy U RoysterArgentinaOnyama Limba QUALIFIED
Ivar Q AmigonCanadaAmy Elsner RENEWAL
Morrow D BriddickIndiaXuxue Feng QUALIFIED
Izzy K BologniaJapanStephen Shaw PROPOSAL
Frozen Columns
Name
Johnson V Ferencz
Misaki Y Nestle
Jones O Ferencz
Sinclair T Stenseth
Darci L Waycott
Leon R Paprocki
Johnson R Amigon
Ricardo T Perin
Aditya W Kusko
Octavia F Rulapaugh
Rodrigues O Saylors
Silvio T Kolmetz
Jeanfrancois E Venere
Jeanfrancois X Gaucho
Salvatore V Darakjy
Greenwood Q Rim
Leja V Nicka
Deepesh B Sergi
Adams V Bolognia
Emily H Foller
Rodrigues C Caldarera
Octavia K Inouye
Morrow D Marrier
Claire R Nicka
Smith W Shinko
Kadeem H Ferencz
Greenwood L Ferencz
Johnson H Nicka
Octavia K Malet
Darci T Rim
Francesco C Glick
Johnson J Saylors
Tony B Stockham
Rodrigues Y Stockham
Ashley K Stockham
Greenwood H Schemmer
Mujtaba N Morasca
Claire K Perin
Kaitlin L Rulapaugh
Maisha J Bowley
Tony Y Stockham
James T Butt
Aruna H Wieser
Isabel Q Bolognia
Ivar F Ruta
Costa N Tollner
Wickens Q Royster
Aruna H Darakjy
Arvin U Saylors
Leja G Ostrosky
IdCountryDate
1000France2026-07-20
1001France2026-07-05
1002Brazil2026-07-07
1003United Kingdom2026-07-01
1004Germany2026-07-07
1005Spain2026-07-16
1006Russia2026-07-04
1007Australia2026-07-13
1008Spain2026-07-18
1009Brazil2026-07-30
1010Argentina2026-07-24
1011Brazil2026-07-02
1012Brazil2026-07-14
1013Argentina2026-07-05
1014United Kingdom2026-07-25
1015Italy2026-07-16
1016Spain2026-07-13
1017France2026-07-08
1018Russia2026-07-27
1019Japan2026-07-15
1020India2026-07-16
1021Argentina2026-07-11
1022Germany2026-07-12
1023United Kingdom2026-07-01
1024Brazil2026-07-28
1025Germany2026-07-29
1026Russia2026-07-11
1027Australia2026-07-05
1028Italy2026-07-15
1029Argentina2026-07-24
1030Russia2026-07-28
1031Italy2026-07-02
1032Germany2026-07-02
1033United Kingdom2026-07-02
1034Germany2026-07-19
1035Germany2026-07-13
1036Brazil2026-07-25
1037Australia2026-07-22
1038United Kingdom2026-07-19
1039United Kingdom2026-07-04
1040Russia2026-07-07
1041Italy2026-07-19
1042France2026-07-08
1043Brazil2026-07-22
1044Russia2026-07-03
1045Italy2026-07-18
1046Brazil2026-07-08
1047India2026-07-30
1048Canada2026-07-07
1049Brazil2026-07-26

On-Demand Data

NameIdCountryDate
Julie F Amigon1000Germany2026-07-28
Mayumi K Wieser1001India2026-07-28
Maisha M Poquette1002Spain2026-07-29
Greenwood T Oldroyd1003Spain2026-07-11
Julie J Amigon1004Italy2026-07-01
Julie H Wieser1005India2026-07-04
Alejandro Y Maclead1006Japan2026-07-25
Chavez C Nestle1007Argentina2026-07-03
Alejandro M Waycott1008Japan2026-07-27
Johnson L Caudy1009Canada2026-07-11
Maria P Malet1010Germany2026-07-14
Kadeem Z Caldarera1011France2026-07-23
Mujtaba B Bowley1012Italy2026-07-03
Stacey Z Ostrosky1013Australia2026-07-18
Wickens B Caldarera1014Japan2026-07-19
Rodrigues F Glick1015France2026-07-09
Greenwood P Wieser1016Germany2026-07-06
Smith I Stenseth1017France2026-07-12
Maisha R Schemmer1018United Kingdom2026-07-25
Rodrigues T Butt1019Russia2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore H NickaItalyAsiya Javayant QUALIFIED
Aditya Q TollnerIndiaStephen Shaw NEW
Deepesh A MarrierJapanAsiya Javayant RENEWAL
Julie H MaletUnited KingdomXuxue Feng RENEWAL
Leon N GauchoJapanAmy Elsner NEW
Sinclair J PaprockiArgentinaAsiya Javayant NEW
Wickens Z FerenczUnited KingdomIoni Bowcher QUALIFIED
Smith P MaletSpainBernardo Dominic RENEWAL
Jeanfrancois C PaprockiUnited KingdomXuxue Feng NEGOTIATION
Murillo H OstroskyRussiaAnna Fali NEW
Salvatore C MaletArgentinaStephen Shaw RENEWAL
Costa W MaletArgentinaElwin Sharvill UNQUALIFIED
Jones N MaletIndiaBernardo Dominic RENEWAL
Cody J FollerAustraliaElwin Sharvill NEW
Ricardo R PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Cody A FlosiBrazilIoni Bowcher QUALIFIED
Greenwood B WaycottGermanyStephen Shaw PROPOSAL
Rodrigues X BowleyArgentinaOnyama Limba NEW
Aditya T NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Claire Z ButtAustraliaAsiya Javayant UNQUALIFIED
Mujtaba H ShinkoIndiaBernardo Dominic RENEWAL
Leon G TollnerAustraliaStephen Shaw UNQUALIFIED
Tony Y RimGermanyAmy Elsner UNQUALIFIED
Salvatore J ButtBrazilAmy Elsner NEW
Deepesh H RimArgentinaOnyama Limba NEW
Leon M RutaIndiaElwin Sharvill RENEWAL
Jefferson P OstroskyBrazilBernardo Dominic QUALIFIED
Leon Y OldroydCanadaAmy Elsner RENEWAL
Tony U MaletItalyOnyama Limba NEW
David V SergiRussiaElwin Sharvill NEGOTIATION
David M GarufiAustraliaIvan Magalhaes NEW
Johnson D VenereBrazilAnna Fali NEW
Aika Y VenereArgentinaXuxue Feng PROPOSAL
Smith B BowleyCanadaBernardo Dominic RENEWAL
Francesco R RulapaughGermanyStephen Shaw PROPOSAL
Misaki F WaycottCanadaIoni Bowcher NEGOTIATION
Jennifer P PaprockiBrazilElwin Sharvill PROPOSAL
Emily S DilliardJapanStephen Shaw NEW
Maria O OstroskyJapanElwin Sharvill QUALIFIED
Kadeem Z AmigonSpainOnyama Limba NEW

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