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
Cody U IturbideSpainAsiya Javayant NEGOTIATION
Kaitlin J FerenczSpainElwin Sharvill QUALIFIED
Arvin N StensethBrazilIvan Magalhaes UNQUALIFIED
Johnson M ShinkoIndiaIoni Bowcher PROPOSAL
Nicolas G PaprockiGermanyIvan Magalhaes RENEWAL
Mujtaba W GlickUnited KingdomBernardo Dominic PROPOSAL
Isabel H RimIndiaIoni Bowcher QUALIFIED
Stacey K BriddickSpainStephen Shaw UNQUALIFIED
Nicolas Z FlosiUnited KingdomOnyama Limba QUALIFIED
Stacey E PerinBrazilAmy Elsner UNQUALIFIED
Murillo I TollnerCanadaAnna Fali RENEWAL
Cody S OldroydGermanyIoni Bowcher NEW
Costa W GillianSpainAmy Elsner PROPOSAL
Wickens D WaycottGermanyAsiya Javayant RENEWAL
Misaki K WaycottBrazilAmy Elsner NEGOTIATION
Octavia G GlickAustraliaIoni Bowcher NEGOTIATION
Aika Q ShinkoUnited KingdomBernardo Dominic PROPOSAL
Deepesh H SergiGermanyAmy Elsner UNQUALIFIED
Cody K SchemmerJapanXuxue Feng QUALIFIED
Juan A CaudyAustraliaXuxue Feng PROPOSAL
Jennifer T DoeGermanyAsiya Javayant NEGOTIATION
Silvio C DarakjyRussiaIoni Bowcher UNQUALIFIED
Ashley A FigeroaItalyAsiya Javayant NEGOTIATION
Mujtaba H WieserJapanXuxue Feng NEGOTIATION
Chavez E WieserSpainAmy Elsner QUALIFIED
Smith Q DilliardItalyStephen Shaw QUALIFIED
Antonio F FerenczCanadaIvan Magalhaes NEGOTIATION
Kadeem P CaudyUnited KingdomXuxue Feng RENEWAL
Costa F VenereCanadaStephen Shaw PROPOSAL
Wickens U PaprockiCanadaAnna Fali RENEWAL
Julie H GauchoGermanyXuxue Feng PROPOSAL
Johnson O SaylorsCanadaIoni Bowcher PROPOSAL
Arvin N MaletBrazilElwin Sharvill UNQUALIFIED
Wickens G RutaJapanXuxue Feng QUALIFIED
Juan Y WaycottIndiaAsiya Javayant UNQUALIFIED
Antonio Q SaylorsItalyAsiya Javayant QUALIFIED
Kaitlin B WaycottIndiaIoni Bowcher QUALIFIED
Claire H AlbaresItalyStephen Shaw RENEWAL
Aditya Y AmigonUnited KingdomBernardo Dominic NEW
Jennifer X GarufiItalyStephen Shaw PROPOSAL
Wickens F GillianIndiaAnna Fali NEW
Aruna Q MarrierRussiaElwin Sharvill NEW
Ivar M CaldareraGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois R DarakjyBrazilElwin Sharvill NEW
Leon W FerenczItalyElwin Sharvill NEGOTIATION
Ricardo M OstroskyIndiaIoni Bowcher UNQUALIFIED
Nicolas X BriddickGermanyElwin Sharvill RENEWAL
Clifford Z GauchoCanadaStephen Shaw NEW
Izzy W PoquetteFranceAmy Elsner NEW
Arvin O SergiUnited KingdomBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow Q PaprockiFranceAsiya Javayant UNQUALIFIED
Wickens D OstroskyIndiaAsiya Javayant QUALIFIED
Jones X GlickItalyAmy Elsner RENEWAL
Claire D AlbaresUnited KingdomAsiya Javayant RENEWAL
Isabel W DilliardRussiaAsiya Javayant UNQUALIFIED
Darci S ShinkoAustraliaStephen Shaw RENEWAL
Morrow X ButtCanadaStephen Shaw QUALIFIED
Ivar N VocelkaItalyStephen Shaw PROPOSAL
Leon S FollerIndiaXuxue Feng QUALIFIED
Rodrigues W PerinUnited KingdomElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow U RutaBrazil2026-07-14Chanay, Jeffrey A Esq NEGOTIATION10Amy Elsner
1001Stacey C RulapaughSpain2026-07-05Chemel, James L Cpa NEW21Elwin Sharvill
1002Clifford F DarakjyAustralia2026-07-06Chemel, James L Cpa UNQUALIFIED96Ivan Magalhaes
1003Claire L BologniaBrazil2026-07-12Buckley Miller Wright RENEWAL95Anna Fali
1004Adams Q WaycottBrazil2026-07-09Rousseaux, Michael Esq PROPOSAL96Ivan Magalhaes
1005Rodrigues A ButtGermany2026-07-13Rangoni Of Florence NEGOTIATION87Xuxue Feng
1006Claire R NestleAustralia2026-07-12Printing Dimensions UNQUALIFIED83Ivan Magalhaes
1007Kadeem Y BriddickBrazil2026-07-01Truhlar And Truhlar Attys QUALIFIED76Ivan Magalhaes
1008Ricardo Q FerenczAustralia2026-07-20Rousseaux, Michael Esq NEW51Asiya Javayant
1009Deepesh M CampainUnited Kingdom2026-07-06Feiner Bros NEW49Elwin Sharvill
1010Nicolas B DarakjyFrance2026-07-05Feiner Bros PROPOSAL44Elwin Sharvill
1011Stacey K ShinkoRussia2026-06-29Commercial Press QUALIFIED9Elwin Sharvill
1012Julie L NestleUnited Kingdom2026-06-29Truhlar And Truhlar Attys QUALIFIED66Bernardo Dominic
1013Jennifer E GarufiUnited Kingdom2026-07-17Feiner Bros RENEWAL29Stephen Shaw
1014Octavia Z PerinSpain2026-07-12Commercial Press UNQUALIFIED58Onyama Limba
1015Smith P RoysterItaly2026-07-14Buckley Miller Wright PROPOSAL0Ioni Bowcher
1016Kadeem J SaylorsBrazil2026-07-16Feiner Bros NEW47Ivan Magalhaes
1017Murillo J DarakjyArgentina2026-07-23Chapman, Ross E Esq QUALIFIED4Ivan Magalhaes
1018Sinclair B WaycottIndia2026-07-16Chanay, Jeffrey A Esq RENEWAL49Xuxue Feng
1019Arvin G GauchoUnited Kingdom2026-07-14Printing Dimensions NEGOTIATION12Bernardo Dominic
1020Sinclair B KuskoBrazil2026-07-21Dorl, James J Esq NEW53Amy Elsner
1021Mayumi Z GarufiSpain2026-07-25Rangoni Of Florence PROPOSAL19Xuxue Feng
1022Antonio T CampainGermany2026-07-13Printing Dimensions NEGOTIATION47Onyama Limba
1023Sinclair B SlusarskiJapan2026-07-19Chemel, James L Cpa QUALIFIED31Stephen Shaw
1024Salvatore O PoquetteArgentina2026-07-23Printing Dimensions RENEWAL3Asiya Javayant
1025Morrow C ButtItaly2026-07-07Rangoni Of Florence PROPOSAL21Asiya Javayant
1026Maria S NestleItaly2026-07-13King, Christopher A Esq NEGOTIATION51Xuxue Feng
1027Costa L KolmetzJapan2026-07-19Printing Dimensions RENEWAL54Amy Elsner
1028James Z FlosiCanada2026-07-09Rangoni Of Florence RENEWAL6Ivan Magalhaes
1029Rodrigues Q SergiBrazil2026-07-25Feiner Bros PROPOSAL15Bernardo Dominic
1030Antonio V InouyeJapan2026-07-09Printing Dimensions RENEWAL52Xuxue Feng
1031Salvatore I CaldareraSpain2026-07-08Buckley Miller Wright NEGOTIATION74Amy Elsner
1032Claire U PoquetteItaly2026-07-01Buckley Miller Wright RENEWAL12Onyama Limba
1033Jennifer H SlusarskiCanada2026-07-06Feiner Bros NEW97Onyama Limba
1034Adams Z StockhamBrazil2026-07-23Benton, John B Jr QUALIFIED21Onyama Limba
1035Juan X FigeroaGermany2026-06-30Truhlar And Truhlar Attys UNQUALIFIED77Ioni Bowcher
1036Adams U WieserFrance2026-07-01Rangoni Of Florence QUALIFIED23Onyama Limba
1037Murillo S BowleySpain2026-07-09Chemel, James L Cpa QUALIFIED51Anna Fali
1038Silvio K SchemmerAustralia2026-07-09Feiner Bros QUALIFIED96Anna Fali
1039Arvin L AmigonUnited Kingdom2026-07-12Dorl, James J Esq QUALIFIED87Xuxue Feng
1040James T ShinkoArgentina2026-07-16King, Christopher A Esq NEGOTIATION34Ioni Bowcher
1041Morrow Z SaylorsAustralia2026-07-21Benton, John B Jr PROPOSAL94Xuxue Feng
1042Octavia Z CaldareraIndia2026-07-24Feltz Printing Service NEW55Xuxue Feng
1043Jennifer L SlusarskiUnited Kingdom2026-06-28Morlong Associates NEW69Anna Fali
1044Greenwood L StensethCanada2026-07-11Benton, John B Jr PROPOSAL90Stephen Shaw
1045Clifford B OldroydRussia2026-07-12Chanay, Jeffrey A Esq NEW22Stephen Shaw
1046Kadeem W KuskoAustralia2026-06-29Truhlar And Truhlar Attys NEW99Ivan Magalhaes
1047Alejandro D RulapaughCanada2026-07-17Rousseaux, Michael Esq QUALIFIED40Bernardo Dominic
1048Jeanfrancois I GauchoFrance2026-07-17Morlong Associates UNQUALIFIED62Bernardo Dominic
1049Kaitlin U MarrierItaly2026-07-24Benton, John B Jr NEW10Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony V OstroskyCanadaIoni Bowcher UNQUALIFIED
Aika R OldroydSpainAmy Elsner NEGOTIATION
Faith B FlosiJapanBernardo Dominic UNQUALIFIED
Johnson Y StockhamUnited KingdomElwin Sharvill RENEWAL
Misaki V WieserArgentinaOnyama Limba QUALIFIED
Kadeem F CaldareraBrazilOnyama Limba NEW
Jones M IturbideBrazilAsiya Javayant NEW
Leon N NestleGermanyAmy Elsner PROPOSAL
Antonio J CaldareraCanadaOnyama Limba NEGOTIATION
Mujtaba H FigeroaGermanyAmy Elsner UNQUALIFIED
Misaki Q BowleyIndiaAnna Fali NEW
Jeanfrancois Z AmigonFranceAmy Elsner RENEWAL
Octavia F MacleadBrazilIoni Bowcher RENEWAL
Ivar W NestleArgentinaAmy Elsner PROPOSAL
Jefferson D FigeroaSpainStephen Shaw NEGOTIATION
Emily Z FlosiFranceElwin Sharvill NEW
Maria O FlosiAustraliaAnna Fali UNQUALIFIED
Sinclair F BologniaSpainBernardo Dominic QUALIFIED
James R VenereFranceAmy Elsner QUALIFIED
Wickens B CaldareraFranceElwin Sharvill NEGOTIATION
Greenwood L ShinkoGermanyStephen Shaw UNQUALIFIED
Juan T MaletRussiaAmy Elsner NEGOTIATION
David M PaprockiRussiaElwin Sharvill QUALIFIED
Sinclair S SergiItalyBernardo Dominic RENEWAL
Deepesh C CampainSpainAmy Elsner NEGOTIATION
Cody U ChuiGermanyOnyama Limba RENEWAL
Maria M ButtCanadaXuxue Feng RENEWAL
Tony Y ChuiItalyIoni Bowcher NEW
Octavia X ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Ivar Q DarakjyArgentinaOnyama Limba QUALIFIED
Nicolas M SaylorsGermanyAnna Fali NEGOTIATION
Francesco B DarakjyGermanyAnna Fali QUALIFIED
David I StensethGermanyAmy Elsner NEGOTIATION
Rodrigues S CampainSpainIoni Bowcher RENEWAL
Kadeem B RimJapanIoni Bowcher QUALIFIED
Alejandro H StockhamArgentinaIvan Magalhaes NEGOTIATION
Mujtaba P StensethJapanOnyama Limba QUALIFIED
Sinclair V MaletSpainElwin Sharvill QUALIFIED
Jones N BologniaJapanAnna Fali UNQUALIFIED
Kaitlin F GauchoAustraliaStephen Shaw PROPOSAL
Silvio Y PerinUnited KingdomStephen Shaw UNQUALIFIED
Francesco C DarakjySpainIoni Bowcher UNQUALIFIED
Misaki C NestleBrazilElwin Sharvill QUALIFIED
Johnson X MarrierFranceBernardo Dominic PROPOSAL
Francesco V WhobreyAustraliaOnyama Limba PROPOSAL
Arvin Q GarufiAustraliaStephen Shaw NEGOTIATION
Leon F IturbideAustraliaOnyama Limba QUALIFIED
Greenwood P SaylorsUnited KingdomIoni Bowcher PROPOSAL
Cody S FollerJapanXuxue Feng NEGOTIATION
Adams M VocelkaCanadaOnyama Limba QUALIFIED
Frozen Columns
Name
Mayumi N Maclead
Darci D Morasca
Salvatore E Tollner
Aruna M Malet
Isabel R Albares
Aika G Dilliard
Ricardo L Figeroa
Salvatore R Chui
Izzy R Malet
Antonio B Slusarski
Johnson E Chui
Izzy V Tollner
Maria K Darakjy
Aruna Y Briddick
Aruna J Doe
Julie S Caudy
Isabel Q Wieser
Jones G Sergi
Costa L Stenseth
Julie S Kolmetz
Costa E Marrier
Octavia Z Rim
Ricardo M Kolmetz
Julie A Caudy
Ashley T Paprocki
Emily Z Oldroyd
Clifford B Chui
Nicolas S Bolognia
Ricardo P Albares
Francesco Z Flosi
Mujtaba E Sergi
Mayumi A Chui
Darci W Doe
David D Caldarera
Tony E Marrier
Francesco Y Shinko
Maria O Dilliard
Leon M Oldroyd
Murillo K Glick
Alejandro A Flosi
Munro V Nicka
Francesco M Vocelka
Jefferson A Campain
Arvin Q Ruta
Mayumi G Shinko
Adams C Royster
Emily Q Inouye
Rodrigues G Inouye
Johnson R Gillian
Isabel N Sergi
IdCountryDate
1000United Kingdom2026-07-26
1001Spain2026-07-10
1002Canada2026-07-12
1003Germany2026-07-08
1004Russia2026-07-12
1005Japan2026-07-19
1006India2026-07-10
1007Germany2026-07-17
1008Germany2026-07-24
1009Italy2026-06-29
1010United Kingdom2026-06-30
1011Canada2026-07-07
1012Brazil2026-07-08
1013Germany2026-07-01
1014Spain2026-07-24
1015Australia2026-07-02
1016Germany2026-07-12
1017Argentina2026-07-10
1018Germany2026-07-25
1019Canada2026-06-29
1020Brazil2026-07-26
1021Italy2026-07-20
1022Spain2026-07-10
1023Brazil2026-06-29
1024Brazil2026-07-18
1025Argentina2026-07-25
1026Germany2026-07-09
1027Canada2026-07-02
1028Canada2026-07-08
1029Italy2026-06-29
1030Australia2026-07-22
1031Canada2026-07-12
1032United Kingdom2026-07-22
1033Germany2026-07-07
1034Russia2026-07-08
1035France2026-07-03
1036Italy2026-07-08
1037Spain2026-07-15
1038Argentina2026-07-09
1039Canada2026-06-28
1040Australia2026-07-05
1041United Kingdom2026-07-18
1042United Kingdom2026-07-21
1043France2026-07-16
1044Italy2026-07-06
1045Argentina2026-07-20
1046Russia2026-07-12
1047Brazil2026-07-27
1048Russia2026-07-17
1049France2026-07-10

On-Demand Data

NameIdCountryDate
Smith C Campain1000United Kingdom2026-06-28
Chavez L Saylors1001Canada2026-07-25
Leon E Gillian1002Argentina2026-06-28
Mujtaba Z Inouye1003Spain2026-06-29
Kaitlin E Poquette1004Italy2026-07-05
Claire C Venere1005Japan2026-06-30
Mayumi W Sergi1006Argentina2026-07-14
Maria M Gillian1007Canada2026-07-22
David O Nicka1008Brazil2026-07-21
Salvatore D Paprocki1009United Kingdom2026-07-21
Jefferson C Briddick1010India2026-07-11
Isabel N Amigon1011Germany2026-07-09
Greenwood P Perin1012Brazil2026-07-15
Aruna Q Paprocki1013Brazil2026-07-24
Sinclair M Inouye1014Argentina2026-07-02
Arvin P Stockham1015United Kingdom2026-07-04
Morrow S Stenseth1016Argentina2026-07-07
Stacey J Dilliard1017Spain2026-07-11
Ashley O Briddick1018Australia2026-06-29
Izzy X Stenseth1019Argentina2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna J WaycottIndiaOnyama Limba UNQUALIFIED
Izzy Q CaldareraGermanyIvan Magalhaes PROPOSAL
Kaitlin M MacleadAustraliaAsiya Javayant NEW
James M KolmetzBrazilAsiya Javayant NEW
Misaki W WhobreyGermanyBernardo Dominic UNQUALIFIED
Maria V BologniaBrazilAnna Fali UNQUALIFIED
Darci M WhobreyIndiaIoni Bowcher PROPOSAL
Adams Q StockhamItalyIvan Magalhaes NEGOTIATION
Leon C CaldareraUnited KingdomStephen Shaw RENEWAL
Chavez N WaycottIndiaStephen Shaw QUALIFIED
Arvin S StensethBrazilAmy Elsner NEW
Misaki Q BowleyArgentinaBernardo Dominic RENEWAL
Arvin G GlickRussiaAnna Fali UNQUALIFIED
Mujtaba Y WaycottBrazilBernardo Dominic NEW
Maria V VocelkaBrazilAnna Fali QUALIFIED
Sinclair N WhobreyGermanyStephen Shaw UNQUALIFIED
Antonio K StensethSpainStephen Shaw NEGOTIATION
Faith M VocelkaFranceElwin Sharvill RENEWAL
Maria P FlosiBrazilAmy Elsner NEGOTIATION
Antonio V SergiRussiaAnna Fali UNQUALIFIED
James A DilliardBrazilElwin Sharvill QUALIFIED
Murillo M SlusarskiIndiaAnna Fali RENEWAL
Octavia R MorascaSpainAsiya Javayant NEW
Jones L DoeBrazilBernardo Dominic RENEWAL
Claire F AmigonRussiaXuxue Feng PROPOSAL
Izzy J RutaSpainAmy Elsner PROPOSAL
Chavez W VenereJapanXuxue Feng NEGOTIATION
Maisha S SlusarskiItalyOnyama Limba QUALIFIED
Antonio P WaycottFranceXuxue Feng RENEWAL
Jefferson J WieserSpainIvan Magalhaes RENEWAL
Aruna O WhobreyItalyBernardo Dominic UNQUALIFIED
Silvio K MaletItalyIvan Magalhaes PROPOSAL
Aditya G MorascaCanadaAnna Fali UNQUALIFIED
James D VenereBrazilAsiya Javayant NEGOTIATION
Cody A ShinkoRussiaIoni Bowcher RENEWAL
Jefferson O DarakjyArgentinaXuxue Feng UNQUALIFIED
Aika G ChuiArgentinaBernardo Dominic QUALIFIED
Aruna R MarrierJapanStephen Shaw NEW
Jones I WieserCanadaBernardo Dominic NEW
Murillo X KuskoSpainAmy Elsner 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>