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
Deepesh H NestleArgentinaAsiya Javayant NEW
Mujtaba U FerenczRussiaIoni Bowcher NEW
Murillo Y OstroskySpainIoni Bowcher NEW
Kadeem N CaldareraGermanyIvan Magalhaes PROPOSAL
Faith A SlusarskiGermanyAsiya Javayant RENEWAL
Julie E AlbaresSpainStephen Shaw QUALIFIED
Smith X DarakjyAustraliaAnna Fali QUALIFIED
Rodrigues T DilliardAustraliaStephen Shaw NEGOTIATION
Emily O GarufiAustraliaStephen Shaw PROPOSAL
Kaitlin M CampainBrazilElwin Sharvill PROPOSAL
Chavez O AmigonJapanAmy Elsner PROPOSAL
Maisha R StockhamFranceIvan Magalhaes UNQUALIFIED
Deepesh J PoquetteArgentinaStephen Shaw RENEWAL
Antonio L ShinkoBrazilStephen Shaw PROPOSAL
Adams L FlosiArgentinaIoni Bowcher UNQUALIFIED
Jefferson M VocelkaIndiaElwin Sharvill PROPOSAL
Claire D BologniaGermanyAmy Elsner UNQUALIFIED
Ivar L DarakjyBrazilOnyama Limba NEW
Jennifer C MaletJapanStephen Shaw NEW
Claire X IturbideFranceBernardo Dominic NEGOTIATION
Julie O MaletCanadaStephen Shaw QUALIFIED
Izzy Q RulapaughAustraliaXuxue Feng RENEWAL
Aditya F PaprockiCanadaIoni Bowcher NEGOTIATION
Cody O PaprockiAustraliaOnyama Limba QUALIFIED
Maisha P SergiJapanElwin Sharvill UNQUALIFIED
Tony C RoysterUnited KingdomAsiya Javayant PROPOSAL
Cody U StensethUnited KingdomStephen Shaw RENEWAL
Munro K ChuiJapanStephen Shaw PROPOSAL
Izzy Z RimIndiaAmy Elsner RENEWAL
Stacey O GauchoBrazilAsiya Javayant NEW
Costa K WaycottSpainXuxue Feng NEGOTIATION
Francesco U MaletFranceOnyama Limba NEGOTIATION
Stacey N CaldareraFranceElwin Sharvill RENEWAL
Silvio V MaletAustraliaAsiya Javayant RENEWAL
Deepesh C RimRussiaOnyama Limba NEGOTIATION
Stacey M GillianRussiaXuxue Feng QUALIFIED
Jeanfrancois U IturbideIndiaAmy Elsner RENEWAL
Adams K FlosiItalyBernardo Dominic UNQUALIFIED
Salvatore K VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Maria Y MarrierItalyXuxue Feng NEGOTIATION
Misaki V KuskoBrazilAsiya Javayant UNQUALIFIED
Johnson C RimAustraliaBernardo Dominic UNQUALIFIED
Jones M VenereArgentinaAmy Elsner NEGOTIATION
Faith U StockhamGermanyStephen Shaw RENEWAL
Jefferson A CampainCanadaIvan Magalhaes RENEWAL
Faith M VocelkaJapanAnna Fali UNQUALIFIED
Mayumi E MarrierRussiaOnyama Limba PROPOSAL
Chavez J RulapaughCanadaIvan Magalhaes NEGOTIATION
Misaki F KolmetzAustraliaIvan Magalhaes PROPOSAL
Emily P MorascaCanadaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leja D GarufiFranceOnyama Limba RENEWAL
Francesco V VenereGermanyOnyama Limba NEGOTIATION
Silvio Q StockhamJapanAsiya Javayant PROPOSAL
Murillo M WhobreyCanadaOnyama Limba QUALIFIED
Clifford I DilliardIndiaOnyama Limba NEGOTIATION
Ivar A ShinkoFranceIoni Bowcher NEGOTIATION
Costa S DoeFranceIoni Bowcher NEGOTIATION
Ashley F IturbideJapanAsiya Javayant UNQUALIFIED
Claire C RoysterJapanXuxue Feng PROPOSAL
Claire H RoysterAustraliaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem H FollerAustralia2025-04-03Rousseaux, Michael Esq RENEWAL45Onyama Limba
1001Kaitlin V MaletIndia2025-04-29Commercial Press NEW68Xuxue Feng
1002Greenwood T GauchoGermany2025-04-12Feiner Bros NEW58Ivan Magalhaes
1003Salvatore R AmigonJapan2025-04-02Rousseaux, Michael Esq UNQUALIFIED83Onyama Limba
1004Mayumi G MaletFrance2025-04-13Truhlar And Truhlar Attys QUALIFIED31Elwin Sharvill
1005Maisha S DarakjyIndia2025-04-02Benton, John B Jr RENEWAL41Xuxue Feng
1006Kaitlin H RutaCanada2025-04-27Printing Dimensions RENEWAL8Ivan Magalhaes
1007Leon N FollerFrance2025-04-22Rangoni Of Florence QUALIFIED36Onyama Limba
1008Stacey P DilliardItaly2025-04-22Printing Dimensions NEW60Anna Fali
1009Salvatore J ShinkoFrance2025-04-13Buckley Miller Wright NEGOTIATION34Xuxue Feng
1010Darci T BowleyFrance2025-04-24Printing Dimensions QUALIFIED6Onyama Limba
1011Arvin Q NestleGermany2025-04-23Printing Dimensions NEW66Anna Fali
1012Cody U ShinkoArgentina2025-04-01Rousseaux, Michael Esq UNQUALIFIED89Ioni Bowcher
1013Kaitlin D BologniaItaly2025-04-23Feiner Bros NEGOTIATION38Asiya Javayant
1014Kaitlin I WhobreyArgentina2025-04-24Truhlar And Truhlar Attys NEGOTIATION88Anna Fali
1015Darci M RoysterAustralia2025-04-08Commercial Press UNQUALIFIED74Anna Fali
1016Emily K StockhamFrance2025-04-16Feltz Printing Service UNQUALIFIED36Anna Fali
1017Chavez K FollerGermany2025-04-14Rousseaux, Michael Esq PROPOSAL93Anna Fali
1018Leja E NestleBrazil2025-04-19Chapman, Ross E Esq UNQUALIFIED5Amy Elsner
1019Antonio B FigeroaJapan2025-04-01Dorl, James J Esq QUALIFIED50Bernardo Dominic
1020Jones S SchemmerAustralia2025-04-10Feltz Printing Service QUALIFIED73Onyama Limba
1021Darci E CaldareraCanada2025-04-23Rangoni Of Florence QUALIFIED27Ioni Bowcher
1022Rodrigues K ChuiBrazil2025-04-07Benton, John B Jr NEW12Ioni Bowcher
1023Isabel E RulapaughSpain2025-03-31Buckley Miller Wright PROPOSAL28Asiya Javayant
1024Sinclair N VenereArgentina2025-04-28Chapman, Ross E Esq PROPOSAL84Xuxue Feng
1025Leon V OstroskyRussia2025-04-27Buckley Miller Wright PROPOSAL5Xuxue Feng
1026Ashley N NickaJapan2025-04-15Chapman, Ross E Esq RENEWAL80Onyama Limba
1027Greenwood B MaletBrazil2025-04-20Commercial Press QUALIFIED9Bernardo Dominic
1028Sinclair S MarrierRussia2025-04-13Commercial Press UNQUALIFIED61Amy Elsner
1029Jennifer G MaletJapan2025-04-17Benton, John B Jr PROPOSAL98Ivan Magalhaes
1030Antonio A NickaUnited Kingdom2025-04-04Chapman, Ross E Esq RENEWAL65Anna Fali
1031Ricardo I OldroydArgentina2025-04-28Rousseaux, Michael Esq PROPOSAL1Xuxue Feng
1032Murillo I InouyeCanada2025-04-19Printing Dimensions QUALIFIED95Onyama Limba
1033Ashley L MaletCanada2025-04-17Printing Dimensions UNQUALIFIED30Onyama Limba
1034Ivar O PoquetteAustralia2025-04-29Printing Dimensions QUALIFIED2Anna Fali
1035Salvatore Z GauchoCanada2025-04-13Chanay, Jeffrey A Esq NEW67Xuxue Feng
1036Jefferson K RutaIndia2025-04-11Chanay, Jeffrey A Esq NEGOTIATION99Anna Fali
1037Kaitlin Y StockhamCanada2025-04-04Feiner Bros QUALIFIED39Stephen Shaw
1038Julie D KuskoUnited Kingdom2025-04-03Commercial Press NEW96Bernardo Dominic
1039James C BowleyArgentina2025-04-15Printing Dimensions UNQUALIFIED31Ivan Magalhaes
1040Isabel Y WaycottGermany2025-04-25King, Christopher A Esq UNQUALIFIED48Ioni Bowcher
1041Alejandro D GillianGermany2025-04-24Chanay, Jeffrey A Esq QUALIFIED27Xuxue Feng
1042Nicolas A ChuiJapan2025-04-25King, Christopher A Esq QUALIFIED26Elwin Sharvill
1043Alejandro U WaycottIndia2025-04-20Chapman, Ross E Esq QUALIFIED16Elwin Sharvill
1044Morrow W PaprockiBrazil2025-04-21Chemel, James L Cpa RENEWAL18Anna Fali
1045Aditya L CaldareraIndia2025-04-09Chapman, Ross E Esq NEGOTIATION23Anna Fali
1046Smith O OldroydCanada2025-04-27Rousseaux, Michael Esq RENEWAL59Xuxue Feng
1047Jefferson J PerinItaly2025-04-24Morlong Associates RENEWAL42Ioni Bowcher
1048Leon Z TollnerGermany2025-04-04Buckley Miller Wright QUALIFIED99Bernardo Dominic
1049Ricardo L FollerItaly2025-04-23Feiner Bros UNQUALIFIED81Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aditya X BowleyBrazilIoni Bowcher NEW
Jeanfrancois A BowleyArgentinaAnna Fali NEGOTIATION
Aditya C CaudyGermanyAnna Fali PROPOSAL
Leon R BologniaBrazilBernardo Dominic RENEWAL
Munro E PoquetteCanadaAmy Elsner NEW
Tony B DilliardGermanyIvan Magalhaes RENEWAL
Salvatore W StensethGermanyStephen Shaw RENEWAL
Juan O VocelkaCanadaElwin Sharvill RENEWAL
Smith J MorascaBrazilOnyama Limba QUALIFIED
Faith T GillianIndiaOnyama Limba NEW
Rodrigues B OstroskyBrazilOnyama Limba RENEWAL
Isabel D BowleyFranceAmy Elsner NEW
Jennifer B FerenczIndiaIvan Magalhaes NEGOTIATION
Aruna S FerenczIndiaIoni Bowcher QUALIFIED
Ashley N BowleyBrazilBernardo Dominic QUALIFIED
Munro O WaycottJapanElwin Sharvill RENEWAL
Aruna X DarakjyGermanyOnyama Limba RENEWAL
Aruna H RulapaughJapanXuxue Feng RENEWAL
Johnson B CampainBrazilXuxue Feng QUALIFIED
Jeanfrancois N InouyeRussiaBernardo Dominic RENEWAL
Johnson K WaycottIndiaAmy Elsner QUALIFIED
Morrow G WhobreyArgentinaIvan Magalhaes RENEWAL
Costa S AmigonBrazilAsiya Javayant NEW
Darci H GauchoFranceStephen Shaw UNQUALIFIED
Emily U FigeroaJapanOnyama Limba UNQUALIFIED
Deepesh E VenereUnited KingdomElwin Sharvill QUALIFIED
Emily R GlickJapanOnyama Limba NEGOTIATION
Smith V StensethFranceAmy Elsner RENEWAL
James X CampainArgentinaAnna Fali UNQUALIFIED
Arvin G MarrierSpainStephen Shaw NEW
Emily G CaldareraCanadaOnyama Limba NEW
Aika B GauchoGermanyOnyama Limba NEW
Mujtaba C RimJapanStephen Shaw PROPOSAL
Aruna A RutaSpainIoni Bowcher NEW
Tony I OstroskyUnited KingdomStephen Shaw NEGOTIATION
Morrow K PaprockiGermanyOnyama Limba NEGOTIATION
Chavez J SergiUnited KingdomIoni Bowcher QUALIFIED
Octavia W DilliardRussiaAsiya Javayant QUALIFIED
Mujtaba H InouyeAustraliaOnyama Limba NEGOTIATION
David R SlusarskiGermanyAmy Elsner QUALIFIED
Greenwood T CampainItalyIoni Bowcher RENEWAL
Francesco J DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Munro K StockhamArgentinaAsiya Javayant PROPOSAL
Nicolas K GauchoGermanyXuxue Feng RENEWAL
Maria R MorascaJapanAmy Elsner UNQUALIFIED
Silvio A GarufiItalyOnyama Limba UNQUALIFIED
Morrow R RutaFranceAnna Fali QUALIFIED
Leja A FollerBrazilAnna Fali NEW
Morrow M DoeRussiaAsiya Javayant PROPOSAL
Ivar L SchemmerIndiaXuxue Feng RENEWAL
Frozen Columns
Name
Mujtaba O Rim
Ivar L Caudy
Johnson L Maclead
Antonio J Glick
Munro D Bowley
Octavia U Wieser
Sinclair K Inouye
Emily H Ostrosky
Sinclair V Dilliard
Aditya L Garufi
Kadeem F Garufi
Francesco D Ruta
Francesco N Kolmetz
Adams K Vocelka
Ivar N Amigon
Mujtaba B Shinko
Morrow Y Gaucho
Isabel A Glick
Antonio U Campain
Mayumi D Oldroyd
Antonio Q Amigon
Maisha H Kolmetz
Leja E Poquette
Juan G Malet
Jones Q Ostrosky
Kadeem R Kolmetz
Murillo D Foller
Adams U Sergi
Jeanfrancois Z Vocelka
Cody N Iturbide
Ivar Z Maclead
Tony S Paprocki
Leon Y Schemmer
Rodrigues B Waycott
Munro K Marrier
Aika H Stockham
Kaitlin I Waycott
Maisha D Vocelka
Ashley T Maclead
Jefferson I Bolognia
Antonio F Morasca
David R Glick
Misaki B Oldroyd
Emily Q Rim
Octavia U Gillian
Rodrigues S Rulapaugh
Izzy G Schemmer
Jennifer S Butt
Jones Z Foller
Stacey V Shinko
IdCountryDate
1000Russia2025-04-24
1001Russia2025-04-04
1002Canada2025-04-17
1003India2025-04-06
1004India2025-04-05
1005Brazil2025-04-12
1006Argentina2025-04-13
1007Germany2025-04-21
1008Argentina2025-04-08
1009Brazil2025-04-26
1010France2025-04-26
1011Germany2025-04-27
1012India2025-04-05
1013Italy2025-04-20
1014Australia2025-04-27
1015Italy2025-04-29
1016Canada2025-04-29
1017Italy2025-04-12
1018Spain2025-04-15
1019Spain2025-04-26
1020Argentina2025-04-21
1021Spain2025-04-26
1022Canada2025-04-01
1023Brazil2025-04-07
1024Canada2025-04-13
1025India2025-04-21
1026Australia2025-04-21
1027India2025-04-20
1028France2025-04-13
1029Australia2025-04-07
1030India2025-04-19
1031United Kingdom2025-03-31
1032Canada2025-04-26
1033Russia2025-04-08
1034Canada2025-04-17
1035India2025-04-19
1036Spain2025-04-08
1037India2025-04-23
1038Brazil2025-04-21
1039Argentina2025-04-20
1040Russia2025-04-18
1041France2025-04-05
1042India2025-04-06
1043Russia2025-04-20
1044Italy2025-04-28
1045Australia2025-04-12
1046Brazil2025-04-27
1047France2025-03-31
1048Japan2025-04-27
1049United Kingdom2025-04-18

On-Demand Data

NameIdCountryDate
Mayumi T Butt1000Canada2025-04-01
Faith V Stenseth1001Spain2025-04-11
Salvatore Y Oldroyd1002Japan2025-04-14
James K Dilliard1003Australia2025-04-16
Aruna O Morasca1004France2025-04-06
Jeanfrancois F Waycott1005Russia2025-04-29
Julie Z Rulapaugh1006Italy2025-04-07
Leon Z Marrier1007Canada2025-04-12
Julie O Campain1008Italy2025-04-11
Munro P Nicka1009Japan2025-04-20
Leja B Kolmetz1010Japan2025-04-20
Costa C Caudy1011Canada2025-04-19
Juan H Paprocki1012Russia2025-04-23
Maria P Paprocki1013Japan2025-04-06
Izzy A Marrier1014Germany2025-04-12
Salvatore D Caldarera1015Argentina2025-04-23
Deepesh U Perin1016Germany2025-04-16
Julie J Vocelka1017India2025-04-21
Ivar O Vocelka1018United Kingdom2025-04-09
Kadeem T Shinko1019Germany2025-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba G FigeroaCanadaBernardo Dominic UNQUALIFIED
Greenwood R GauchoSpainBernardo Dominic NEW
Mujtaba S SergiFranceBernardo Dominic RENEWAL
Jones E ShinkoCanadaIoni Bowcher PROPOSAL
Kaitlin Q StockhamCanadaBernardo Dominic RENEWAL
Octavia A SchemmerRussiaAsiya Javayant NEW
James R SergiGermanyAnna Fali NEW
Maria M WaycottArgentinaBernardo Dominic UNQUALIFIED
Stacey F AmigonUnited KingdomAnna Fali PROPOSAL
Morrow X RulapaughAustraliaAmy Elsner UNQUALIFIED
Jefferson Q PoquetteUnited KingdomAmy Elsner QUALIFIED
Isabel K RimJapanIoni Bowcher UNQUALIFIED
Ashley T RimJapanIvan Magalhaes NEGOTIATION
Julie F FlosiItalyAsiya Javayant NEGOTIATION
Mujtaba X NestleCanadaStephen Shaw NEGOTIATION
Jefferson D NickaIndiaBernardo Dominic QUALIFIED
Aruna K BowleyCanadaAmy Elsner NEW
Aruna P OldroydItalyStephen Shaw NEW
Aika H DoeSpainOnyama Limba PROPOSAL
Juan R RutaGermanyXuxue Feng NEGOTIATION
Deepesh Z BowleyArgentinaXuxue Feng QUALIFIED
Alejandro A DilliardAustraliaAnna Fali NEGOTIATION
Leja P OstroskyJapanIvan Magalhaes RENEWAL
Octavia B FlosiUnited KingdomAmy Elsner PROPOSAL
Murillo S MorascaIndiaAsiya Javayant PROPOSAL
Leja R RoysterArgentinaStephen Shaw QUALIFIED
Darci X OstroskyUnited KingdomElwin Sharvill NEW
Kaitlin L ButtSpainXuxue Feng RENEWAL
Cody R AlbaresUnited KingdomStephen Shaw PROPOSAL
Deepesh L ButtSpainAmy Elsner PROPOSAL
Isabel P FlosiBrazilAnna Fali QUALIFIED
Faith G FerenczUnited KingdomAmy Elsner RENEWAL
Tony J VocelkaJapanIoni Bowcher PROPOSAL
Stacey I NickaBrazilOnyama Limba NEW
Isabel Q VenereBrazilElwin Sharvill PROPOSAL
Jennifer Z NestleJapanOnyama Limba NEGOTIATION
Claire Y PaprockiRussiaStephen Shaw NEW
James Y MaletIndiaOnyama Limba NEW
Ricardo H MorascaIndiaAnna Fali NEW
Smith W GlickCanadaBernardo Dominic 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>