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
Darci L VenereCanadaBernardo Dominic PROPOSAL
Claire R CaudyItalyElwin Sharvill UNQUALIFIED
Clifford P StensethJapanOnyama Limba UNQUALIFIED
Misaki S VenereCanadaXuxue Feng RENEWAL
Munro W VocelkaJapanBernardo Dominic RENEWAL
Murillo F PaprockiBrazilOnyama Limba RENEWAL
Johnson I TollnerGermanyIoni Bowcher QUALIFIED
Ivar U BriddickJapanIoni Bowcher NEGOTIATION
Tony D WaycottUnited KingdomOnyama Limba PROPOSAL
Murillo S GillianItalyElwin Sharvill PROPOSAL
Aruna F BriddickFranceStephen Shaw NEW
Smith W NickaGermanyElwin Sharvill QUALIFIED
Johnson I WieserAustraliaStephen Shaw UNQUALIFIED
Arvin Y RoysterItalyIoni Bowcher RENEWAL
Misaki Z RimItalyBernardo Dominic NEGOTIATION
Cody C FigeroaGermanyXuxue Feng PROPOSAL
Smith C SaylorsUnited KingdomIoni Bowcher RENEWAL
Kaitlin A StensethUnited KingdomOnyama Limba RENEWAL
Kadeem L BowleyGermanyIvan Magalhaes QUALIFIED
Aika V AmigonCanadaXuxue Feng UNQUALIFIED
Mujtaba H FollerIndiaAnna Fali PROPOSAL
David C AlbaresAustraliaAmy Elsner UNQUALIFIED
Juan R MarrierJapanXuxue Feng QUALIFIED
Greenwood Z MacleadArgentinaStephen Shaw UNQUALIFIED
David H InouyeSpainBernardo Dominic PROPOSAL
Wickens I BowleyGermanyStephen Shaw PROPOSAL
Francesco X GauchoSpainOnyama Limba UNQUALIFIED
Murillo V BowleyIndiaIoni Bowcher RENEWAL
Aika P ChuiRussiaIvan Magalhaes RENEWAL
Isabel W ChuiGermanyOnyama Limba QUALIFIED
Salvatore V InouyeCanadaAnna Fali UNQUALIFIED
Darci X OstroskyRussiaXuxue Feng UNQUALIFIED
Nicolas G MarrierJapanAsiya Javayant PROPOSAL
James V RoysterBrazilAsiya Javayant PROPOSAL
Mujtaba Q GauchoUnited KingdomAmy Elsner PROPOSAL
Misaki D FerenczJapanBernardo Dominic PROPOSAL
Ashley D GillianUnited KingdomOnyama Limba NEW
Kaitlin Q PaprockiItalyStephen Shaw UNQUALIFIED
Alejandro U RoysterAustraliaAnna Fali PROPOSAL
Julie Q SergiBrazilAmy Elsner RENEWAL
Claire G GlickUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi M SergiJapanOnyama Limba PROPOSAL
Nicolas R KolmetzArgentinaOnyama Limba NEW
Mayumi G TollnerJapanBernardo Dominic NEGOTIATION
Stacey V CaldareraFranceOnyama Limba QUALIFIED
Rodrigues P DarakjyCanadaAsiya Javayant QUALIFIED
Darci P CampainCanadaElwin Sharvill UNQUALIFIED
Rodrigues E CaudyGermanyIoni Bowcher QUALIFIED
Misaki I PerinRussiaIvan Magalhaes PROPOSAL
Costa I FollerRussiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maria E GarufiArgentinaStephen Shaw UNQUALIFIED
Nicolas T FerenczRussiaIoni Bowcher QUALIFIED
Isabel E OstroskyBrazilBernardo Dominic NEGOTIATION
Salvatore J TollnerSpainIoni Bowcher UNQUALIFIED
Isabel A BologniaItalyIoni Bowcher NEW
Ricardo U DilliardArgentinaElwin Sharvill RENEWAL
Johnson O PaprockiSpainIvan Magalhaes RENEWAL
Silvio T InouyeJapanIoni Bowcher UNQUALIFIED
Clifford X DarakjyIndiaAnna Fali UNQUALIFIED
Salvatore F WaycottFranceIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Z SaylorsAustralia2025-04-15Morlong Associates UNQUALIFIED41Elwin Sharvill
1001Izzy A MaletRussia2025-04-28Commercial Press QUALIFIED1Amy Elsner
1002Jennifer Y MacleadIndia2025-04-29Chanay, Jeffrey A Esq NEW9Xuxue Feng
1003Faith K WaycottGermany2025-04-19Dorl, James J Esq UNQUALIFIED46Asiya Javayant
1004Francesco H MaletFrance2025-04-20Benton, John B Jr PROPOSAL47Stephen Shaw
1005Leon R NestleJapan2025-04-24Printing Dimensions NEW75Bernardo Dominic
1006Alejandro T SchemmerArgentina2025-04-26Rangoni Of Florence NEGOTIATION68Elwin Sharvill
1007Ricardo K CampainBrazil2025-04-20Chapman, Ross E Esq NEGOTIATION64Onyama Limba
1008Julie Q MacleadFrance2025-04-24Rousseaux, Michael Esq PROPOSAL40Bernardo Dominic
1009Faith V MacleadCanada2025-04-30Feiner Bros UNQUALIFIED51Elwin Sharvill
1010Misaki G GlickGermany2025-04-04Morlong Associates UNQUALIFIED5Onyama Limba
1011Murillo X WhobreyFrance2025-04-10Chemel, James L Cpa QUALIFIED98Xuxue Feng
1012David U MorascaAustralia2025-04-02Morlong Associates NEGOTIATION70Stephen Shaw
1013Smith V GauchoArgentina2025-04-09Chanay, Jeffrey A Esq QUALIFIED98Onyama Limba
1014Munro Y GillianArgentina2025-04-08Commercial Press PROPOSAL74Onyama Limba
1015Smith P KolmetzItaly2025-04-06Buckley Miller Wright NEW5Bernardo Dominic
1016Ashley W KolmetzAustralia2025-04-22Benton, John B Jr NEGOTIATION40Anna Fali
1017Murillo J CaldareraCanada2025-04-21Commercial Press QUALIFIED20Xuxue Feng
1018Adams K DarakjyRussia2025-04-27Benton, John B Jr QUALIFIED73Xuxue Feng
1019Ricardo X FigeroaArgentina2025-04-25Morlong Associates NEW17Ioni Bowcher
1020Julie P NickaJapan2025-04-03Chemel, James L Cpa NEW29Ioni Bowcher
1021Jennifer B BriddickArgentina2025-04-24Chemel, James L Cpa PROPOSAL95Xuxue Feng
1022Aruna K PaprockiAustralia2025-04-05Chapman, Ross E Esq QUALIFIED17Anna Fali
1023Murillo O RoysterArgentina2025-04-01Commercial Press QUALIFIED93Onyama Limba
1024Murillo N AlbaresJapan2025-04-28Printing Dimensions NEW69Elwin Sharvill
1025Francesco X TollnerItaly2025-04-02Rangoni Of Florence PROPOSAL99Asiya Javayant
1026Aruna Z SlusarskiCanada2025-04-20Printing Dimensions RENEWAL32Asiya Javayant
1027Claire R WaycottUnited Kingdom2025-04-04Rousseaux, Michael Esq NEW29Elwin Sharvill
1028Silvio R FigeroaGermany2025-04-28Feltz Printing Service QUALIFIED83Asiya Javayant
1029Chavez Z CaudyBrazil2025-04-19Buckley Miller Wright QUALIFIED18Ioni Bowcher
1030Aruna T IturbideBrazil2025-04-01Chemel, James L Cpa NEGOTIATION72Bernardo Dominic
1031Jeanfrancois B SlusarskiArgentina2025-04-09Morlong Associates NEW38Xuxue Feng
1032Maisha E CaldareraJapan2025-04-26Rousseaux, Michael Esq QUALIFIED85Elwin Sharvill
1033Sinclair M BowleyFrance2025-04-27Chemel, James L Cpa RENEWAL91Amy Elsner
1034Mujtaba K SlusarskiBrazil2025-04-08Feiner Bros UNQUALIFIED69Ivan Magalhaes
1035Faith O WhobreyUnited Kingdom2025-04-18Rangoni Of Florence QUALIFIED36Xuxue Feng
1036Sinclair Q CaudyFrance2025-04-16King, Christopher A Esq UNQUALIFIED59Ioni Bowcher
1037Aditya O TollnerArgentina2025-04-06Chemel, James L Cpa UNQUALIFIED87Onyama Limba
1038Izzy N CampainAustralia2025-04-28Printing Dimensions UNQUALIFIED17Xuxue Feng
1039Jones J InouyeCanada2025-04-26Rangoni Of Florence NEW40Ioni Bowcher
1040Sinclair V VenereArgentina2025-04-15Printing Dimensions QUALIFIED41Amy Elsner
1041David E DarakjyGermany2025-04-09Feltz Printing Service PROPOSAL65Onyama Limba
1042Silvio K FollerAustralia2025-04-05Chemel, James L Cpa PROPOSAL15Amy Elsner
1043Wickens T SergiUnited Kingdom2025-04-15Feiner Bros RENEWAL88Anna Fali
1044Juan G OldroydArgentina2025-04-18King, Christopher A Esq NEW62Xuxue Feng
1045Darci P ShinkoAustralia2025-04-30Buckley Miller Wright QUALIFIED57Ivan Magalhaes
1046Jones H IturbideArgentina2025-04-15Chemel, James L Cpa UNQUALIFIED95Anna Fali
1047Juan G NickaUnited Kingdom2025-04-22King, Christopher A Esq RENEWAL86Xuxue Feng
1048Octavia U DarakjyCanada2025-04-13Truhlar And Truhlar Attys NEW9Xuxue Feng
1049Juan Y FlosiGermany2025-04-04Benton, John B Jr UNQUALIFIED65Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria T PaprockiArgentinaAnna Fali PROPOSAL
James J BowleySpainIoni Bowcher NEGOTIATION
Morrow A CaudyFranceIvan Magalhaes NEW
Greenwood N SchemmerIndiaIoni Bowcher RENEWAL
Claire K WieserRussiaBernardo Dominic PROPOSAL
Mayumi S ChuiBrazilAnna Fali QUALIFIED
Tony N DilliardArgentinaElwin Sharvill QUALIFIED
Nicolas U PerinRussiaStephen Shaw QUALIFIED
Salvatore Y FlosiAustraliaXuxue Feng QUALIFIED
Nicolas S WaycottItalyElwin Sharvill NEGOTIATION
Misaki Y VenereItalyOnyama Limba NEGOTIATION
Clifford S BologniaAustraliaAnna Fali QUALIFIED
Clifford C ButtFranceBernardo Dominic RENEWAL
Izzy J NickaSpainBernardo Dominic UNQUALIFIED
Nicolas Z IturbideBrazilIvan Magalhaes QUALIFIED
Arvin O InouyeGermanyElwin Sharvill RENEWAL
Silvio N MaletIndiaBernardo Dominic UNQUALIFIED
Morrow R MaletRussiaAsiya Javayant QUALIFIED
Jones I IturbideFranceAsiya Javayant UNQUALIFIED
Jones B TollnerFranceAnna Fali UNQUALIFIED
Maria H RimRussiaXuxue Feng NEGOTIATION
Clifford V WaycottFranceAnna Fali QUALIFIED
Jennifer Z CampainSpainOnyama Limba NEW
Salvatore A BowleyItalyStephen Shaw NEGOTIATION
Ricardo F FigeroaSpainOnyama Limba UNQUALIFIED
Faith C AmigonItalyElwin Sharvill PROPOSAL
Ashley P FerenczCanadaBernardo Dominic RENEWAL
David U MaletCanadaIvan Magalhaes NEW
Mayumi H KuskoJapanStephen Shaw PROPOSAL
Misaki J OstroskyUnited KingdomAmy Elsner RENEWAL
Claire Y WhobreyArgentinaElwin Sharvill NEGOTIATION
David P VocelkaBrazilOnyama Limba UNQUALIFIED
Mayumi W DarakjyIndiaAnna Fali NEGOTIATION
Morrow K RoysterBrazilAnna Fali NEW
Faith H PerinAustraliaStephen Shaw NEGOTIATION
Maisha D AmigonIndiaStephen Shaw NEGOTIATION
Munro U NestleGermanyXuxue Feng PROPOSAL
Morrow U IturbideIndiaIvan Magalhaes NEGOTIATION
Greenwood H OstroskyItalyOnyama Limba RENEWAL
Salvatore P DoeBrazilXuxue Feng RENEWAL
Maisha M GlickItalyBernardo Dominic UNQUALIFIED
Ricardo Q MacleadUnited KingdomElwin Sharvill NEW
Rodrigues D AlbaresUnited KingdomAmy Elsner QUALIFIED
Wickens Z ShinkoCanadaBernardo Dominic PROPOSAL
Emily N StockhamGermanyXuxue Feng RENEWAL
Jennifer T DilliardBrazilBernardo Dominic NEGOTIATION
David I SergiArgentinaStephen Shaw NEGOTIATION
Sinclair T WaycottGermanyAnna Fali QUALIFIED
Maria M StensethIndiaStephen Shaw QUALIFIED
Adams V SergiArgentinaIoni Bowcher RENEWAL
Frozen Columns
Name
Octavia J Dilliard
Faith M Kusko
Cody O Ruta
Aika X Tollner
Emily U Amigon
Ashley H Royster
Arvin W Venere
Murillo C Nicka
Juan Z Ferencz
Juan O Iturbide
David I Sergi
Deepesh T Garufi
Maisha K Venere
Silvio H Figeroa
Johnson D Darakjy
Johnson X Whobrey
Aruna I Garufi
Mujtaba V Waycott
Smith E Tollner
Francesco W Flosi
Aika O Morasca
Ivar N Poquette
Jefferson D Wieser
Maisha O Vocelka
Deepesh T Caudy
Arvin R Chui
Johnson B Maclead
Mujtaba J Bowley
Clifford J Albares
Murillo P Wieser
Emily G Tollner
Clifford N Royster
Rodrigues Q Stenseth
Stacey H Ostrosky
Leja B Malet
Maisha L Darakjy
Maria M Wieser
Aruna P Butt
Octavia A Briddick
Maria Q Morasca
Adams U Ruta
Darci O Chui
Mujtaba J Malet
Smith B Maclead
Misaki G Wieser
Kadeem W Caudy
Isabel T Briddick
Tony R Morasca
Morrow S Schemmer
Francesco S Dilliard
IdCountryDate
1000Italy2025-04-01
1001Canada2025-04-21
1002United Kingdom2025-04-17
1003Canada2025-04-20
1004Italy2025-04-18
1005Spain2025-04-16
1006India2025-04-06
1007India2025-04-05
1008Canada2025-04-16
1009India2025-04-29
1010Italy2025-04-30
1011France2025-04-24
1012Brazil2025-04-29
1013Germany2025-04-11
1014Japan2025-04-21
1015Argentina2025-04-13
1016Italy2025-04-02
1017Brazil2025-04-12
1018United Kingdom2025-04-26
1019Italy2025-04-08
1020Argentina2025-04-04
1021India2025-04-28
1022United Kingdom2025-04-24
1023India2025-04-07
1024Japan2025-04-11
1025Canada2025-04-13
1026Italy2025-04-08
1027Russia2025-04-19
1028France2025-04-01
1029Germany2025-04-10
1030France2025-04-05
1031Canada2025-04-09
1032Spain2025-04-09
1033Australia2025-04-29
1034Argentina2025-04-18
1035United Kingdom2025-04-15
1036Japan2025-04-22
1037Canada2025-04-08
1038Argentina2025-04-17
1039Spain2025-04-12
1040Australia2025-04-24
1041Japan2025-04-20
1042Italy2025-04-28
1043Canada2025-04-23
1044Canada2025-04-15
1045France2025-04-25
1046India2025-04-14
1047Russia2025-04-28
1048United Kingdom2025-04-23
1049Germany2025-04-29

On-Demand Data

NameIdCountryDate
Jefferson C Rim1000France2025-04-22
Smith S Bolognia1001France2025-04-16
Mayumi H Campain1002Germany2025-04-27
Izzy O Kusko1003Germany2025-04-04
Kadeem A Malet1004India2025-04-16
Clifford N Poquette1005Argentina2025-04-17
Sinclair U Darakjy1006Australia2025-04-06
Maria Y Darakjy1007Japan2025-04-10
Izzy R Inouye1008Canada2025-04-03
Sinclair V Campain1009Brazil2025-04-09
Stacey T Gaucho1010Spain2025-04-21
Mujtaba E Whobrey1011Japan2025-04-12
Rodrigues B Rim1012India2025-04-12
Claire B Royster1013Brazil2025-04-29
Juan S Vocelka1014Russia2025-04-09
Leon U Ostrosky1015Australia2025-04-27
Sinclair Y Ostrosky1016Italy2025-04-22
Chavez V Perin1017Spain2025-04-06
Jeanfrancois E Ostrosky1018Germany2025-04-04
Misaki H Caudy1019Germany2025-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh D ShinkoCanadaAmy Elsner QUALIFIED
Kadeem M CaudyFranceOnyama Limba UNQUALIFIED
Ricardo O RulapaughFranceIvan Magalhaes UNQUALIFIED
Rodrigues L ShinkoItalyXuxue Feng RENEWAL
Alejandro S VenereUnited KingdomStephen Shaw PROPOSAL
Faith V SchemmerItalyElwin Sharvill NEW
Claire V SergiFranceAnna Fali QUALIFIED
Cody S IturbideJapanElwin Sharvill PROPOSAL
Adams H GillianBrazilElwin Sharvill NEW
Kaitlin B FigeroaArgentinaIoni Bowcher NEW
Morrow Z IturbideIndiaStephen Shaw QUALIFIED
Mayumi V OldroydGermanyBernardo Dominic RENEWAL
Leja P FerenczArgentinaOnyama Limba NEW
Julie M RimIndiaIvan Magalhaes PROPOSAL
Kaitlin I NickaGermanyIoni Bowcher RENEWAL
Greenwood M GauchoAustraliaIvan Magalhaes NEGOTIATION
Greenwood I MaletFranceStephen Shaw QUALIFIED
Kadeem Y SchemmerJapanOnyama Limba NEGOTIATION
Jones C WieserBrazilAnna Fali QUALIFIED
Clifford B GauchoCanadaAnna Fali QUALIFIED
Chavez X VenereUnited KingdomAnna Fali PROPOSAL
Izzy W PoquetteAustraliaAmy Elsner UNQUALIFIED
Rodrigues W WhobreyGermanyAsiya Javayant UNQUALIFIED
Aruna M OstroskyIndiaAmy Elsner PROPOSAL
Ivar T CampainRussiaAmy Elsner NEW
James J RimBrazilIvan Magalhaes NEGOTIATION
Chavez T NickaSpainIoni Bowcher UNQUALIFIED
Faith C WieserUnited KingdomAnna Fali NEW
Ashley W SlusarskiSpainAnna Fali QUALIFIED
Emily Q SchemmerAustraliaAmy Elsner PROPOSAL
Mayumi J FerenczAustraliaAsiya Javayant PROPOSAL
Adams L ChuiCanadaIvan Magalhaes NEW
Alejandro O VocelkaSpainAnna Fali PROPOSAL
Maria P PoquetteGermanyAmy Elsner RENEWAL
Tony E MarrierAustraliaAnna Fali NEGOTIATION
Nicolas G MarrierJapanXuxue Feng UNQUALIFIED
Ricardo L MarrierBrazilElwin Sharvill UNQUALIFIED
Izzy W MaletBrazilXuxue Feng RENEWAL
David B NickaAustraliaElwin Sharvill NEGOTIATION
Ricardo Y RutaFranceIvan Magalhaes 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>