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
Greenwood L ButtSpainAmy Elsner PROPOSAL
Adams Q KuskoGermanyXuxue Feng PROPOSAL
Chavez P DilliardGermanyIoni Bowcher NEW
Jeanfrancois I BologniaIndiaAmy Elsner PROPOSAL
Costa K InouyeItalyStephen Shaw RENEWAL
Arvin B WieserAustraliaIvan Magalhaes PROPOSAL
Cody R OldroydArgentinaAmy Elsner NEGOTIATION
Munro C RutaBrazilIoni Bowcher NEW
Ashley S GauchoBrazilOnyama Limba PROPOSAL
Jeanfrancois V SlusarskiIndiaIoni Bowcher RENEWAL
Ivar E DarakjyBrazilAnna Fali QUALIFIED
Faith U BowleyIndiaIoni Bowcher QUALIFIED
Greenwood K VenereUnited KingdomIoni Bowcher RENEWAL
Jones U TollnerSpainIvan Magalhaes UNQUALIFIED
Octavia E SaylorsFranceStephen Shaw UNQUALIFIED
Nicolas R MaletRussiaAmy Elsner RENEWAL
Mujtaba P BologniaRussiaElwin Sharvill NEGOTIATION
Salvatore Y MaletGermanyOnyama Limba RENEWAL
Greenwood A FlosiAustraliaIoni Bowcher QUALIFIED
Chavez J PerinItalyBernardo Dominic NEW
David H PerinFranceStephen Shaw UNQUALIFIED
Deepesh U NestleUnited KingdomElwin Sharvill NEGOTIATION
Stacey W SaylorsGermanyIoni Bowcher QUALIFIED
Darci B OstroskyJapanIvan Magalhaes UNQUALIFIED
Morrow A PerinAustraliaIoni Bowcher QUALIFIED
Sinclair C NickaCanadaXuxue Feng RENEWAL
Smith E GlickRussiaElwin Sharvill RENEWAL
Ashley G BowleyCanadaXuxue Feng NEGOTIATION
Ashley E BriddickArgentinaIvan Magalhaes NEW
Alejandro O FigeroaFranceElwin Sharvill NEGOTIATION
Mayumi O InouyeSpainElwin Sharvill QUALIFIED
Darci W FerenczUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois S SchemmerCanadaAnna Fali PROPOSAL
Alejandro O FlosiGermanyElwin Sharvill RENEWAL
Alejandro H MarrierJapanAmy Elsner NEW
Cody C GauchoJapanIoni Bowcher QUALIFIED
Sinclair N SchemmerBrazilIoni Bowcher NEGOTIATION
Alejandro B AlbaresFranceAmy Elsner NEGOTIATION
Aditya Z WhobreyBrazilAsiya Javayant QUALIFIED
Rodrigues K TollnerBrazilElwin Sharvill RENEWAL
Stacey X NickaCanadaAmy Elsner NEW
Juan Z ShinkoRussiaStephen Shaw UNQUALIFIED
Aika I CampainUnited KingdomIvan Magalhaes NEGOTIATION
Faith R OldroydUnited KingdomStephen Shaw QUALIFIED
Silvio D FlosiGermanyXuxue Feng RENEWAL
Emily M StockhamRussiaElwin Sharvill NEW
Misaki W MaletItalyOnyama Limba NEGOTIATION
Stacey J StockhamArgentinaAsiya Javayant NEGOTIATION
Juan U FigeroaGermanyStephen Shaw RENEWAL
Isabel L MorascaFranceXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Smith Q FigeroaBrazilStephen Shaw RENEWAL
Leja N DarakjyJapanXuxue Feng RENEWAL
Alejandro Y WhobreyFranceAsiya Javayant NEGOTIATION
Antonio C AmigonAustraliaStephen Shaw PROPOSAL
Isabel T RutaRussiaAsiya Javayant QUALIFIED
Juan F RimUnited KingdomBernardo Dominic NEW
Jefferson X DoeFranceBernardo Dominic UNQUALIFIED
Arvin Z FerenczItalyAnna Fali NEGOTIATION
Arvin I GauchoRussiaXuxue Feng QUALIFIED
Silvio Q RulapaughGermanyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones E PerinBrazil2026-07-11Buckley Miller Wright NEW2Ioni Bowcher
1001Maria O FerenczAustralia2026-07-07Feiner Bros QUALIFIED39Xuxue Feng
1002Costa L SchemmerArgentina2026-07-09Dorl, James J Esq RENEWAL66Xuxue Feng
1003Maria F RoysterAustralia2026-06-26Commercial Press QUALIFIED33Anna Fali
1004Murillo G AlbaresAustralia2026-07-06Commercial Press NEGOTIATION75Asiya Javayant
1005Kaitlin L VenereGermany2026-07-10Truhlar And Truhlar Attys NEGOTIATION58Bernardo Dominic
1006Jeanfrancois R MarrierJapan2026-07-15Chapman, Ross E Esq NEW79Onyama Limba
1007Emily L CaudyArgentina2026-07-19Rangoni Of Florence PROPOSAL70Onyama Limba
1008Wickens O BowleyUnited Kingdom2026-07-05Printing Dimensions RENEWAL44Stephen Shaw
1009Jeanfrancois W MaletGermany2026-07-06Feltz Printing Service PROPOSAL60Onyama Limba
1010Adams H FerenczFrance2026-07-17King, Christopher A Esq RENEWAL44Elwin Sharvill
1011Julie J RulapaughBrazil2026-07-02Feiner Bros QUALIFIED39Bernardo Dominic
1012Jones M VocelkaFrance2026-06-21Commercial Press RENEWAL98Anna Fali
1013Sinclair A BologniaBrazil2026-06-28Buckley Miller Wright NEW90Asiya Javayant
1014Faith Q DarakjyRussia2026-07-13Dorl, James J Esq UNQUALIFIED23Amy Elsner
1015Jones Z DilliardFrance2026-07-14Benton, John B Jr NEW86Xuxue Feng
1016Mujtaba X VenereIndia2026-07-19Rousseaux, Michael Esq UNQUALIFIED63Onyama Limba
1017Aruna R WieserCanada2026-07-09Benton, John B Jr NEGOTIATION29Anna Fali
1018Antonio N VenereUnited Kingdom2026-06-22Chemel, James L Cpa QUALIFIED38Asiya Javayant
1019Ricardo P BologniaJapan2026-07-02Commercial Press PROPOSAL43Stephen Shaw
1020Jeanfrancois E GauchoIndia2026-06-23Commercial Press QUALIFIED36Amy Elsner
1021Claire E StockhamIndia2026-06-21Chapman, Ross E Esq NEGOTIATION46Asiya Javayant
1022Jennifer J CaudyIndia2026-07-15King, Christopher A Esq RENEWAL27Onyama Limba
1023Mayumi T NickaAustralia2026-07-11Buckley Miller Wright PROPOSAL20Elwin Sharvill
1024Costa O OstroskyGermany2026-06-28Chanay, Jeffrey A Esq QUALIFIED63Ivan Magalhaes
1025Arvin F SergiUnited Kingdom2026-07-01Truhlar And Truhlar Attys UNQUALIFIED8Onyama Limba
1026Izzy E MaletGermany2026-07-03Truhlar And Truhlar Attys QUALIFIED57Xuxue Feng
1027Alejandro J RulapaughJapan2026-07-05Chanay, Jeffrey A Esq NEW81Amy Elsner
1028Leon J VocelkaJapan2026-07-14Feiner Bros NEGOTIATION39Onyama Limba
1029Costa P GlickCanada2026-07-15Dorl, James J Esq PROPOSAL84Onyama Limba
1030Julie M WaycottUnited Kingdom2026-07-17Commercial Press NEW52Elwin Sharvill
1031Ivar S OstroskyArgentina2026-06-20Feltz Printing Service PROPOSAL90Stephen Shaw
1032Sinclair P CaudyRussia2026-07-19Truhlar And Truhlar Attys UNQUALIFIED1Bernardo Dominic
1033Ashley U CaldareraGermany2026-07-07Truhlar And Truhlar Attys UNQUALIFIED8Onyama Limba
1034Arvin H FlosiFrance2026-06-27Commercial Press PROPOSAL89Elwin Sharvill
1035Isabel U GarufiJapan2026-06-28Commercial Press NEW95Onyama Limba
1036Emily V CampainCanada2026-07-10Buckley Miller Wright NEGOTIATION21Anna Fali
1037Salvatore O VenereIndia2026-06-24Feiner Bros PROPOSAL2Anna Fali
1038Francesco O FlosiRussia2026-07-16Feiner Bros UNQUALIFIED11Onyama Limba
1039Misaki D SlusarskiUnited Kingdom2026-07-02Rangoni Of Florence UNQUALIFIED84Elwin Sharvill
1040James H CaldareraSpain2026-07-09Rousseaux, Michael Esq NEGOTIATION73Elwin Sharvill
1041Emily H RimRussia2026-07-19Truhlar And Truhlar Attys NEW29Bernardo Dominic
1042Kadeem G BowleyCanada2026-07-19Morlong Associates NEW26Anna Fali
1043Francesco N VenereIndia2026-07-06Rousseaux, Michael Esq PROPOSAL15Onyama Limba
1044Ivar F SaylorsSpain2026-07-02Chanay, Jeffrey A Esq PROPOSAL9Onyama Limba
1045Leon O AmigonBrazil2026-06-29Commercial Press NEW86Onyama Limba
1046Murillo F NickaBrazil2026-07-19Buckley Miller Wright NEGOTIATION66Bernardo Dominic
1047Juan P AlbaresAustralia2026-07-01Dorl, James J Esq PROPOSAL36Ioni Bowcher
1048Kaitlin X SergiFrance2026-06-25King, Christopher A Esq RENEWAL12Anna Fali
1049Ashley I DilliardAustralia2026-06-22Dorl, James J Esq UNQUALIFIED75Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
James J AlbaresArgentinaBernardo Dominic UNQUALIFIED
Wickens O OstroskyCanadaAnna Fali PROPOSAL
David H KolmetzJapanIvan Magalhaes RENEWAL
Emily J MaletCanadaAsiya Javayant UNQUALIFIED
Costa U RulapaughBrazilBernardo Dominic NEW
Rodrigues G WieserJapanIvan Magalhaes RENEWAL
Francesco O RulapaughJapanStephen Shaw RENEWAL
Murillo L FigeroaRussiaAnna Fali NEGOTIATION
Emily Q FlosiUnited KingdomIoni Bowcher PROPOSAL
Kadeem N CaudyCanadaStephen Shaw RENEWAL
Maria D TollnerItalyAmy Elsner QUALIFIED
Stacey B MaletFranceXuxue Feng NEGOTIATION
Jones C RoysterCanadaElwin Sharvill NEGOTIATION
Kaitlin K BowleyIndiaAsiya Javayant NEW
David T BologniaItalyAmy Elsner NEGOTIATION
Johnson K VocelkaArgentinaAsiya Javayant PROPOSAL
David M SlusarskiAustraliaElwin Sharvill PROPOSAL
Isabel O GillianSpainElwin Sharvill QUALIFIED
Jefferson U VenereJapanIoni Bowcher RENEWAL
Chavez F DoeFranceAmy Elsner QUALIFIED
Murillo Z IturbideBrazilAmy Elsner PROPOSAL
Maria R SlusarskiCanadaIvan Magalhaes QUALIFIED
James X AmigonCanadaAsiya Javayant PROPOSAL
Kaitlin G PoquetteItalyXuxue Feng UNQUALIFIED
Mujtaba H InouyeFranceOnyama Limba RENEWAL
Smith Y FerenczUnited KingdomIvan Magalhaes NEW
Nicolas Y GillianUnited KingdomOnyama Limba PROPOSAL
Octavia V OldroydIndiaAsiya Javayant UNQUALIFIED
Ashley N FigeroaUnited KingdomBernardo Dominic PROPOSAL
Darci O StockhamFranceIoni Bowcher QUALIFIED
Maisha B SaylorsItalyOnyama Limba UNQUALIFIED
Munro R RoysterFranceAmy Elsner NEW
Jeanfrancois W IturbideCanadaIoni Bowcher PROPOSAL
Darci L CampainAustraliaOnyama Limba QUALIFIED
Juan E DarakjyUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois I MarrierIndiaAnna Fali QUALIFIED
Kadeem X WieserArgentinaAnna Fali RENEWAL
James R RimCanadaAmy Elsner QUALIFIED
Smith R KolmetzArgentinaStephen Shaw PROPOSAL
Adams I RulapaughArgentinaAnna Fali QUALIFIED
Wickens I SchemmerGermanyXuxue Feng QUALIFIED
Misaki Q PoquetteRussiaIoni Bowcher NEGOTIATION
Ivar J ShinkoItalyElwin Sharvill NEGOTIATION
Antonio Q MorascaUnited KingdomIoni Bowcher NEGOTIATION
Aika J OldroydArgentinaBernardo Dominic QUALIFIED
Morrow U DoeArgentinaIoni Bowcher PROPOSAL
Leja L VenereCanadaStephen Shaw NEGOTIATION
Murillo Y AmigonSpainElwin Sharvill NEW
Julie D RoysterAustraliaElwin Sharvill NEW
Izzy N BowleyJapanAnna Fali RENEWAL
Frozen Columns
Name
Faith V Schemmer
Ivar Y Wieser
Clifford Z Waycott
Darci S Stockham
Maria G Marrier
Mayumi U Stockham
Stacey V Rulapaugh
Costa K Ferencz
Arvin J Inouye
Deepesh R Slusarski
Alejandro U Perin
Izzy N Malet
Clifford K Dilliard
Juan N Amigon
Kadeem K Wieser
Juan G Ostrosky
Francesco A Albares
Octavia F Garufi
Nicolas W Albares
Misaki H Bolognia
Wickens T Nicka
Mujtaba P Rulapaugh
Maisha Z Maclead
Faith I Iturbide
Murillo S Caldarera
Sinclair O Dilliard
Jones N Shinko
Alejandro W Campain
Salvatore R Amigon
Isabel J Briddick
Arvin H Bowley
Morrow Y Stenseth
Aika O Stockham
Tony K Inouye
Adams C Marrier
Maria P Maclead
Maisha Z Stockham
Jeanfrancois X Venere
Aika B Maclead
Salvatore M Whobrey
Costa F Wieser
Isabel L Rulapaugh
Mujtaba X Glick
Leon N Darakjy
Jennifer P Stenseth
Alejandro Q Stenseth
Ashley X Chui
Claire R Stockham
Adams W Maclead
Mujtaba K Flosi
IdCountryDate
1000France2026-06-22
1001Russia2026-06-28
1002Italy2026-06-29
1003Germany2026-07-19
1004France2026-07-11
1005Russia2026-07-10
1006Brazil2026-07-12
1007Germany2026-06-29
1008Italy2026-06-21
1009Australia2026-06-21
1010Japan2026-06-30
1011Spain2026-06-26
1012Russia2026-06-26
1013Canada2026-07-14
1014Spain2026-06-26
1015Canada2026-07-17
1016United Kingdom2026-06-20
1017Russia2026-07-05
1018France2026-07-06
1019Spain2026-07-13
1020Canada2026-07-09
1021India2026-07-10
1022Spain2026-06-22
1023Italy2026-06-24
1024France2026-06-27
1025Argentina2026-07-01
1026Japan2026-06-29
1027Australia2026-06-24
1028Canada2026-07-01
1029Italy2026-07-06
1030Japan2026-06-30
1031Australia2026-07-11
1032Italy2026-07-14
1033Brazil2026-07-14
1034Brazil2026-07-08
1035Japan2026-07-05
1036Argentina2026-07-12
1037India2026-07-10
1038France2026-06-23
1039Japan2026-06-28
1040United Kingdom2026-07-15
1041United Kingdom2026-06-24
1042Brazil2026-07-19
1043Canada2026-07-06
1044Germany2026-06-26
1045Russia2026-07-11
1046Canada2026-07-16
1047Australia2026-07-09
1048France2026-06-29
1049Russia2026-07-01

On-Demand Data

NameIdCountryDate
Aditya Q Vocelka1000Germany2026-07-08
Mayumi S Butt1001United Kingdom2026-07-02
Emily W Saylors1002Spain2026-06-21
Mujtaba F Sergi1003Japan2026-07-18
Jones V Flosi1004Brazil2026-07-17
Smith C Slusarski1005India2026-06-21
Jennifer R Shinko1006Spain2026-07-06
Tony F Iturbide1007Japan2026-07-18
Cody Y Stockham1008Brazil2026-07-13
Mayumi P Doe1009France2026-06-25
Ricardo B Campain1010France2026-07-10
Johnson A Inouye1011Australia2026-07-13
Rodrigues A Chui1012Australia2026-07-17
Silvio H Sergi1013Germany2026-07-07
Izzy O Whobrey1014Russia2026-07-05
Cody Q Ruta1015Brazil2026-07-17
Misaki L Flosi1016Australia2026-07-18
Jones U Malet1017Canada2026-07-12
Sinclair G Wieser1018Japan2026-07-06
Salvatore Z Paprocki1019Argentina2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio R IturbideBrazilElwin Sharvill NEGOTIATION
Ivar P NickaRussiaIvan Magalhaes RENEWAL
Maisha R RulapaughJapanIoni Bowcher NEW
Tony C GarufiCanadaStephen Shaw QUALIFIED
Wickens L ButtFranceIvan Magalhaes NEGOTIATION
Clifford Z CaldareraArgentinaElwin Sharvill PROPOSAL
Claire V PerinIndiaOnyama Limba QUALIFIED
Faith X WieserIndiaIoni Bowcher NEGOTIATION
Arvin K PaprockiAustraliaOnyama Limba RENEWAL
Ricardo L NickaGermanyAmy Elsner NEGOTIATION
Murillo Y OstroskyBrazilIoni Bowcher NEW
Misaki H OstroskyFranceAnna Fali NEW
Chavez J PerinCanadaAnna Fali UNQUALIFIED
Jones P SaylorsAustraliaOnyama Limba NEW
Mayumi C NickaIndiaStephen Shaw RENEWAL
Jeanfrancois O ChuiIndiaAsiya Javayant NEGOTIATION
Antonio U SergiCanadaBernardo Dominic RENEWAL
Juan G RimUnited KingdomIvan Magalhaes UNQUALIFIED
Julie Q FigeroaGermanyOnyama Limba QUALIFIED
Faith H SaylorsGermanyAsiya Javayant NEW
Cody E RulapaughItalyAsiya Javayant PROPOSAL
Adams Y RutaAustraliaIvan Magalhaes RENEWAL
Ashley J VocelkaIndiaElwin Sharvill NEGOTIATION
Rodrigues H ChuiAustraliaAsiya Javayant QUALIFIED
Cody O RimFranceStephen Shaw NEW
Stacey K BologniaRussiaAmy Elsner NEGOTIATION
Ricardo T GillianCanadaElwin Sharvill NEGOTIATION
Stacey X NestleUnited KingdomIvan Magalhaes RENEWAL
Faith S GlickUnited KingdomXuxue Feng NEW
James H OldroydRussiaAmy Elsner NEGOTIATION
Ivar J PaprockiBrazilIvan Magalhaes NEW
Arvin W RulapaughUnited KingdomBernardo Dominic NEW
Juan W KolmetzFranceXuxue Feng QUALIFIED
Costa S MaletSpainIoni Bowcher PROPOSAL
Jefferson Q AmigonCanadaElwin Sharvill NEGOTIATION
Julie U MaletUnited KingdomXuxue Feng NEW
Leja D MacleadCanadaXuxue Feng PROPOSAL
Jones B FlosiFranceStephen Shaw UNQUALIFIED
Aditya F IturbideJapanAsiya Javayant NEGOTIATION
Tony C SchemmerCanadaIoni Bowcher 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>