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
Johnson E NestleIndiaIoni Bowcher PROPOSAL
Jones I PerinArgentinaAmy Elsner RENEWAL
Tony G SergiCanadaStephen Shaw QUALIFIED
Silvio B FerenczArgentinaAsiya Javayant RENEWAL
James G PaprockiJapanBernardo Dominic QUALIFIED
Faith Z NestleIndiaStephen Shaw UNQUALIFIED
Jones B StockhamRussiaBernardo Dominic NEGOTIATION
Claire U CaldareraAustraliaStephen Shaw RENEWAL
Johnson S WhobreyUnited KingdomStephen Shaw NEGOTIATION
Jeanfrancois H SaylorsGermanyOnyama Limba NEW
Alejandro N FigeroaBrazilOnyama Limba RENEWAL
Maisha W PaprockiUnited KingdomAsiya Javayant RENEWAL
Juan B SchemmerGermanyAmy Elsner QUALIFIED
Deepesh W CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Izzy E FigeroaGermanyBernardo Dominic PROPOSAL
Mujtaba Y WaycottFranceAmy Elsner QUALIFIED
Cody I MaletFranceBernardo Dominic RENEWAL
Darci C FlosiArgentinaIvan Magalhaes PROPOSAL
Rodrigues B BowleyArgentinaAmy Elsner NEW
Alejandro X OldroydIndiaIoni Bowcher NEW
Aika Q SergiArgentinaElwin Sharvill UNQUALIFIED
Smith W AlbaresIndiaXuxue Feng NEW
Jefferson R MaletItalyIoni Bowcher NEW
David Q FlosiFranceXuxue Feng QUALIFIED
Faith L CampainGermanyXuxue Feng RENEWAL
Rodrigues D FollerJapanAsiya Javayant UNQUALIFIED
James J MacleadRussiaAnna Fali UNQUALIFIED
Francesco S StockhamSpainIoni Bowcher NEW
Aditya U PoquetteJapanOnyama Limba RENEWAL
Silvio U RulapaughRussiaIoni Bowcher NEGOTIATION
Jennifer P AlbaresIndiaIoni Bowcher RENEWAL
Sinclair R SchemmerAustraliaIoni Bowcher UNQUALIFIED
Maria E FlosiGermanyAmy Elsner UNQUALIFIED
Jennifer L PerinGermanyIoni Bowcher QUALIFIED
Jefferson I RoysterRussiaStephen Shaw PROPOSAL
Morrow E AlbaresRussiaAmy Elsner RENEWAL
Wickens W SchemmerGermanyAsiya Javayant NEW
Aditya P VenereAustraliaOnyama Limba UNQUALIFIED
Chavez C StockhamAustraliaStephen Shaw NEW
Chavez W DilliardBrazilStephen Shaw NEGOTIATION
Jennifer Z TollnerUnited KingdomStephen Shaw UNQUALIFIED
Izzy I ChuiArgentinaBernardo Dominic QUALIFIED
James H WaycottCanadaOnyama Limba QUALIFIED
Octavia V MacleadCanadaOnyama Limba RENEWAL
Darci Q SlusarskiItalyElwin Sharvill RENEWAL
Aika A MarrierRussiaAmy Elsner UNQUALIFIED
Smith G DoeItalyAnna Fali NEW
Darci L BologniaJapanIoni Bowcher PROPOSAL
Rodrigues B FigeroaBrazilIoni Bowcher RENEWAL
Leon H FigeroaBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha Y PaprockiAustraliaIoni Bowcher UNQUALIFIED
Murillo Y RulapaughIndiaBernardo Dominic PROPOSAL
Ivar S FlosiRussiaAmy Elsner NEW
Izzy U VenereGermanyAnna Fali QUALIFIED
Francesco I VenereGermanyStephen Shaw RENEWAL
Claire X SlusarskiRussiaBernardo Dominic QUALIFIED
Costa R MorascaSpainIoni Bowcher NEW
Faith J GillianIndiaAsiya Javayant QUALIFIED
Octavia X CaudyCanadaElwin Sharvill NEGOTIATION
Sinclair A NickaIndiaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel W RimAustralia2026-08-06Chemel, James L Cpa PROPOSAL43Asiya Javayant
1001Nicolas N StensethUnited Kingdom2026-07-23Rangoni Of Florence UNQUALIFIED52Bernardo Dominic
1002Jefferson V GillianItaly2026-08-03Buckley Miller Wright PROPOSAL19Anna Fali
1003Mayumi J RutaAustralia2026-08-12Chapman, Ross E Esq UNQUALIFIED89Bernardo Dominic
1004Clifford W StensethFrance2026-08-05Feltz Printing Service PROPOSAL85Elwin Sharvill
1005Smith O StensethJapan2026-08-08Truhlar And Truhlar Attys NEW67Elwin Sharvill
1006Kaitlin U TollnerAustralia2026-08-16Chanay, Jeffrey A Esq PROPOSAL75Bernardo Dominic
1007Chavez Z RutaGermany2026-08-10Printing Dimensions QUALIFIED23Bernardo Dominic
1008Mayumi U GlickFrance2026-08-07Chemel, James L Cpa NEGOTIATION12Xuxue Feng
1009Arvin E PaprockiJapan2026-07-26Morlong Associates RENEWAL69Amy Elsner
1010David N StockhamArgentina2026-08-11Truhlar And Truhlar Attys RENEWAL20Stephen Shaw
1011Juan A GarufiItaly2026-08-10King, Christopher A Esq RENEWAL92Asiya Javayant
1012Izzy H WhobreySpain2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED45Elwin Sharvill
1013Jeanfrancois Q InouyeFrance2026-08-15Commercial Press NEW33Asiya Javayant
1014Chavez D FollerCanada2026-07-18Chanay, Jeffrey A Esq RENEWAL49Asiya Javayant
1015Leon C OstroskyFrance2026-07-31Feiner Bros QUALIFIED7Xuxue Feng
1016Francesco A FlosiRussia2026-07-19Buckley Miller Wright RENEWAL83Amy Elsner
1017Silvio Q PerinFrance2026-08-05Rousseaux, Michael Esq NEGOTIATION70Ioni Bowcher
1018Julie S PoquetteItaly2026-07-19Rangoni Of Florence RENEWAL53Bernardo Dominic
1019Chavez M RulapaughIndia2026-08-06Commercial Press UNQUALIFIED38Ioni Bowcher
1020Aditya X GarufiCanada2026-07-25Rangoni Of Florence PROPOSAL50Onyama Limba
1021Deepesh Q MarrierItaly2026-07-29Rousseaux, Michael Esq NEGOTIATION15Ioni Bowcher
1022Kadeem M GlickSpain2026-07-27Chemel, James L Cpa QUALIFIED89Anna Fali
1023Jeanfrancois O SaylorsItaly2026-07-20Truhlar And Truhlar Attys PROPOSAL69Ioni Bowcher
1024Munro A GlickAustralia2026-08-11Feltz Printing Service UNQUALIFIED65Ioni Bowcher
1025Juan C OldroydBrazil2026-08-03Rousseaux, Michael Esq PROPOSAL56Stephen Shaw
1026Juan C ButtUnited Kingdom2026-08-13Printing Dimensions PROPOSAL20Amy Elsner
1027Arvin W SaylorsIndia2026-08-01Rangoni Of Florence RENEWAL59Ioni Bowcher
1028Maisha E FlosiRussia2026-07-23Morlong Associates PROPOSAL42Asiya Javayant
1029Mujtaba H PoquetteGermany2026-07-31Chanay, Jeffrey A Esq QUALIFIED21Amy Elsner
1030Greenwood X NickaArgentina2026-07-28Feltz Printing Service PROPOSAL88Elwin Sharvill
1031Sinclair S PoquetteBrazil2026-08-01Benton, John B Jr RENEWAL13Stephen Shaw
1032Tony Z InouyeCanada2026-08-08Chemel, James L Cpa QUALIFIED80Amy Elsner
1033Smith C GarufiIndia2026-07-21Feltz Printing Service PROPOSAL68Stephen Shaw
1034Octavia G DilliardIndia2026-08-11Feiner Bros NEW78Elwin Sharvill
1035Leja F FlosiAustralia2026-08-11Buckley Miller Wright UNQUALIFIED39Elwin Sharvill
1036Adams C GlickAustralia2026-07-25Feltz Printing Service UNQUALIFIED31Xuxue Feng
1037Aika W BowleyArgentina2026-08-04Feltz Printing Service PROPOSAL47Amy Elsner
1038Antonio Z NickaBrazil2026-08-07King, Christopher A Esq UNQUALIFIED19Stephen Shaw
1039Darci B WieserAustralia2026-07-20Dorl, James J Esq PROPOSAL34Ivan Magalhaes
1040Antonio E BriddickGermany2026-08-02Chapman, Ross E Esq RENEWAL25Ivan Magalhaes
1041James A PaprockiSpain2026-07-24Chapman, Ross E Esq NEW60Ivan Magalhaes
1042Rodrigues I OldroydJapan2026-07-20Rousseaux, Michael Esq QUALIFIED98Ioni Bowcher
1043Salvatore R InouyeCanada2026-08-10Morlong Associates NEW66Ivan Magalhaes
1044Johnson R BologniaItaly2026-07-18King, Christopher A Esq NEW7Ioni Bowcher
1045Jeanfrancois Y IturbideFrance2026-07-18Feiner Bros QUALIFIED17Anna Fali
1046Murillo L ChuiIndia2026-08-09Printing Dimensions QUALIFIED31Amy Elsner
1047Salvatore N RimUnited Kingdom2026-08-10Chemel, James L Cpa NEGOTIATION64Onyama Limba
1048Clifford L PoquetteAustralia2026-07-30Rangoni Of Florence QUALIFIED42Ioni Bowcher
1049Smith O MacleadAustralia2026-08-03King, Christopher A Esq NEGOTIATION39Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio O ShinkoIndiaAmy Elsner RENEWAL
Morrow I VenereBrazilIvan Magalhaes QUALIFIED
Arvin M VenereArgentinaStephen Shaw PROPOSAL
Jefferson K DilliardBrazilAmy Elsner QUALIFIED
Claire A StensethUnited KingdomElwin Sharvill UNQUALIFIED
Jones X NestleArgentinaIoni Bowcher QUALIFIED
Salvatore H WhobreySpainIoni Bowcher PROPOSAL
Mujtaba G ChuiFranceAsiya Javayant NEW
James D BriddickUnited KingdomElwin Sharvill NEGOTIATION
Emily K PaprockiBrazilAmy Elsner RENEWAL
Nicolas E SlusarskiSpainStephen Shaw QUALIFIED
Ivar K NickaJapanIvan Magalhaes RENEWAL
Aika B RimIndiaOnyama Limba RENEWAL
Juan O SaylorsItalyElwin Sharvill NEGOTIATION
Nicolas E GarufiCanadaAmy Elsner NEW
Ricardo J PaprockiUnited KingdomAnna Fali QUALIFIED
Emily U CaldareraIndiaStephen Shaw QUALIFIED
Leja A WhobreyCanadaAnna Fali PROPOSAL
Mayumi X FollerBrazilIvan Magalhaes NEGOTIATION
Morrow H BologniaBrazilIoni Bowcher UNQUALIFIED
Johnson R RimSpainAnna Fali RENEWAL
Mujtaba S VenereIndiaElwin Sharvill QUALIFIED
Cody T SchemmerSpainAmy Elsner UNQUALIFIED
Smith X KolmetzArgentinaAnna Fali PROPOSAL
Jefferson J MorascaGermanyAnna Fali UNQUALIFIED
Nicolas F FlosiIndiaXuxue Feng PROPOSAL
Kaitlin X VenereAustraliaAsiya Javayant NEW
Jennifer H StockhamCanadaIoni Bowcher PROPOSAL
Aika Q PerinIndiaXuxue Feng RENEWAL
Leja T RutaBrazilOnyama Limba NEGOTIATION
Isabel O RoysterGermanyXuxue Feng QUALIFIED
Tony P ShinkoIndiaStephen Shaw UNQUALIFIED
Jennifer M MaletAustraliaOnyama Limba NEGOTIATION
Juan Z RoysterCanadaOnyama Limba NEGOTIATION
Johnson W SchemmerAustraliaXuxue Feng RENEWAL
Mujtaba I KolmetzGermanyOnyama Limba QUALIFIED
Maisha G GillianFranceBernardo Dominic UNQUALIFIED
Antonio V VocelkaSpainAsiya Javayant PROPOSAL
Jones N KuskoCanadaIvan Magalhaes NEW
Greenwood Q TollnerBrazilXuxue Feng UNQUALIFIED
Costa W WhobreyGermanyOnyama Limba NEW
Mayumi M VenereGermanyOnyama Limba RENEWAL
Izzy Q InouyeBrazilElwin Sharvill QUALIFIED
Leja D NestleFranceIoni Bowcher UNQUALIFIED
Juan Z PaprockiBrazilXuxue Feng QUALIFIED
Adams D TollnerFranceBernardo Dominic RENEWAL
Maisha C WieserSpainStephen Shaw PROPOSAL
Wickens W VocelkaRussiaElwin Sharvill NEW
Smith F FigeroaRussiaElwin Sharvill QUALIFIED
Francesco E StockhamSpainOnyama Limba QUALIFIED
Frozen Columns
Name
Alejandro X Stenseth
Ivar V Flosi
Salvatore C Doe
Stacey Y Ostrosky
Izzy D Glick
Emily N Bolognia
Ricardo K Amigon
Salvatore F Figeroa
James U Shinko
Leja S Slusarski
Aruna S Oldroyd
Antonio F Foller
Kaitlin E Albares
Chavez Z Rim
Salvatore X Briddick
Murillo T Whobrey
Julie F Schemmer
Maria X Gaucho
Deepesh O Doe
Faith V Flosi
Izzy A Gillian
Leon N Rulapaugh
Tony Z Flosi
Wickens U Garufi
Morrow M Ruta
Ivar T Foller
Jefferson X Kusko
Maria Y Poquette
Leja T Sergi
Juan N Wieser
Stacey A Garufi
Ivar N Caudy
Claire C Oldroyd
Darci H Perin
Leja Y Wieser
Ricardo J Stockham
Isabel S Saylors
Jeanfrancois A Nestle
Wickens D Waycott
Misaki I Waycott
Maria Y Kolmetz
Smith S Wieser
Aditya X Stockham
Kadeem R Venere
Mayumi G Caudy
Costa N Nestle
Antonio D Perin
Jones I Campain
Leja U Iturbide
Maisha X Rulapaugh
IdCountryDate
1000Japan2026-07-28
1001Japan2026-08-01
1002India2026-07-28
1003Argentina2026-07-23
1004Argentina2026-07-28
1005Germany2026-07-23
1006Japan2026-08-02
1007India2026-07-26
1008Spain2026-08-04
1009Canada2026-08-05
1010Japan2026-08-05
1011Russia2026-07-29
1012United Kingdom2026-08-13
1013France2026-07-28
1014Canada2026-07-27
1015Germany2026-08-02
1016India2026-07-23
1017Brazil2026-08-02
1018Spain2026-07-31
1019Brazil2026-07-23
1020Brazil2026-07-20
1021Italy2026-08-10
1022Argentina2026-08-14
1023Russia2026-07-24
1024Italy2026-08-08
1025Canada2026-08-11
1026Argentina2026-07-30
1027Brazil2026-08-11
1028India2026-08-02
1029Argentina2026-08-12
1030France2026-07-21
1031Japan2026-07-30
1032Italy2026-08-08
1033United Kingdom2026-08-07
1034Japan2026-08-03
1035Spain2026-08-13
1036Germany2026-08-15
1037Australia2026-07-22
1038Argentina2026-07-30
1039Germany2026-07-26
1040United Kingdom2026-07-29
1041Canada2026-07-31
1042Germany2026-07-22
1043France2026-07-27
1044Russia2026-07-27
1045United Kingdom2026-07-30
1046United Kingdom2026-08-16
1047Spain2026-08-05
1048Spain2026-08-13
1049Spain2026-08-08

On-Demand Data

NameIdCountryDate
Chavez L Gillian1000France2026-08-03
Morrow K Wieser1001Japan2026-08-12
Ricardo J Shinko1002India2026-07-24
Faith A Nicka1003Russia2026-08-11
Claire M Doe1004Canada2026-08-07
Misaki J Schemmer1005Germany2026-07-22
Ivar Q Morasca1006Russia2026-08-13
Jeanfrancois B Caudy1007Germany2026-07-29
Ricardo V Nestle1008Argentina2026-08-12
Leon I Whobrey1009United Kingdom2026-08-05
Smith W Campain1010Argentina2026-08-06
Deepesh P Iturbide1011Spain2026-07-23
Ivar M Waycott1012Italy2026-08-10
Octavia Q Bowley1013Germany2026-07-27
Jones N Rim1014Canada2026-08-14
Octavia A Waycott1015Argentina2026-07-19
Tony H Malet1016United Kingdom2026-08-07
Jefferson Q Oldroyd1017Japan2026-08-02
Rodrigues B Darakjy1018France2026-07-26
Greenwood Z Gaucho1019Russia2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer J RimSpainAsiya Javayant PROPOSAL
James X WieserGermanyOnyama Limba QUALIFIED
Ivar V WaycottGermanyOnyama Limba PROPOSAL
Francesco D ButtFranceOnyama Limba NEGOTIATION
Deepesh L KolmetzArgentinaAnna Fali RENEWAL
Ashley R InouyeJapanElwin Sharvill NEGOTIATION
Antonio B FigeroaItalyAmy Elsner PROPOSAL
Aika Z MorascaBrazilAnna Fali PROPOSAL
Leja D StensethUnited KingdomElwin Sharvill NEGOTIATION
David H OldroydArgentinaAnna Fali RENEWAL
Isabel C PoquetteCanadaAsiya Javayant NEGOTIATION
Maria Q WaycottGermanyBernardo Dominic NEGOTIATION
Octavia H MacleadJapanAmy Elsner RENEWAL
Misaki O GarufiJapanXuxue Feng NEW
Johnson W RoysterUnited KingdomIvan Magalhaes NEGOTIATION
Morrow R SaylorsArgentinaXuxue Feng NEW
Salvatore F WhobreyFranceElwin Sharvill QUALIFIED
Kadeem R BriddickCanadaBernardo Dominic PROPOSAL
Tony H IturbideArgentinaBernardo Dominic UNQUALIFIED
Maisha O FerenczJapanAnna Fali UNQUALIFIED
Aruna J SchemmerGermanyStephen Shaw RENEWAL
Alejandro D BologniaRussiaAmy Elsner RENEWAL
Deepesh Z GillianIndiaIvan Magalhaes NEGOTIATION
Alejandro O BologniaItalyAmy Elsner PROPOSAL
Wickens X VenereJapanXuxue Feng NEGOTIATION
Johnson D RoysterFranceAmy Elsner QUALIFIED
Kadeem K CaldareraBrazilIvan Magalhaes NEGOTIATION
Ivar I StensethBrazilAmy Elsner UNQUALIFIED
James A RoysterBrazilAmy Elsner NEW
Aika Y PaprockiAustraliaAnna Fali UNQUALIFIED
Deepesh C BologniaIndiaBernardo Dominic UNQUALIFIED
Isabel F MaletBrazilAsiya Javayant UNQUALIFIED
Clifford O StensethUnited KingdomElwin Sharvill PROPOSAL
Clifford P GarufiItalyXuxue Feng NEGOTIATION
Munro F KolmetzCanadaOnyama Limba NEW
Morrow Q RimArgentinaBernardo Dominic UNQUALIFIED
Wickens S GarufiCanadaElwin Sharvill PROPOSAL
Maria P MarrierIndiaAmy Elsner QUALIFIED
Johnson D MarrierCanadaIvan Magalhaes NEW
Ashley L KolmetzUnited KingdomStephen Shaw RENEWAL

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