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
Juan N SlusarskiIndiaAnna Fali PROPOSAL
Alejandro L RulapaughIndiaXuxue Feng NEW
Leon R BologniaSpainOnyama Limba RENEWAL
Adams N AmigonAustraliaAnna Fali QUALIFIED
Salvatore N WhobreyArgentinaBernardo Dominic PROPOSAL
Morrow Z InouyeJapanOnyama Limba RENEWAL
Jefferson S CaldareraRussiaStephen Shaw NEW
Greenwood I PoquetteRussiaElwin Sharvill NEGOTIATION
Jefferson T RutaItalyStephen Shaw QUALIFIED
Sinclair G SchemmerArgentinaXuxue Feng RENEWAL
David Y KuskoSpainOnyama Limba RENEWAL
Arvin E CampainBrazilXuxue Feng NEGOTIATION
Jones D MaletArgentinaAnna Fali NEGOTIATION
Jennifer T SaylorsGermanyIvan Magalhaes RENEWAL
Ashley U FollerGermanyStephen Shaw NEGOTIATION
Ricardo A SchemmerIndiaElwin Sharvill NEW
Cody D MarrierGermanyStephen Shaw NEGOTIATION
Claire I RulapaughItalyAnna Fali UNQUALIFIED
Ashley A CaldareraAustraliaAmy Elsner UNQUALIFIED
Kadeem I RoysterFranceXuxue Feng RENEWAL
Chavez Y WieserAustraliaElwin Sharvill NEW
Ivar M SlusarskiArgentinaIoni Bowcher NEW
David F ChuiItalyStephen Shaw QUALIFIED
Arvin X OstroskySpainAsiya Javayant PROPOSAL
James Z RoysterAustraliaStephen Shaw PROPOSAL
Kaitlin B KuskoCanadaBernardo Dominic RENEWAL
Ashley F SchemmerGermanyBernardo Dominic PROPOSAL
Mayumi B BologniaIndiaAsiya Javayant PROPOSAL
Aruna F OldroydJapanStephen Shaw NEGOTIATION
Murillo S GarufiSpainIvan Magalhaes QUALIFIED
Leja O BowleyIndiaOnyama Limba UNQUALIFIED
Misaki Q ShinkoUnited KingdomStephen Shaw QUALIFIED
Sinclair I GlickItalyAnna Fali RENEWAL
Arvin D MaletGermanyXuxue Feng RENEWAL
Jennifer L InouyeArgentinaAmy Elsner PROPOSAL
Aruna A MorascaRussiaIvan Magalhaes QUALIFIED
Aditya J StensethSpainElwin Sharvill NEGOTIATION
Darci K SergiItalyAsiya Javayant QUALIFIED
Maria I RimBrazilIvan Magalhaes UNQUALIFIED
Antonio J SergiArgentinaAmy Elsner UNQUALIFIED
Leon H VenereCanadaIvan Magalhaes PROPOSAL
Nicolas R VocelkaBrazilAnna Fali NEW
Maisha Q WieserUnited KingdomIoni Bowcher QUALIFIED
Claire L FollerAustraliaAsiya Javayant NEW
Maisha I KolmetzGermanyAnna Fali QUALIFIED
Francesco A SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Morrow H VenereArgentinaAnna Fali NEGOTIATION
Costa T VenereArgentinaIvan Magalhaes QUALIFIED
Stacey Q GlickBrazilIvan Magalhaes RENEWAL
Maisha D RulapaughJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas G InouyeItalyAmy Elsner UNQUALIFIED
Clifford O MorascaCanadaIoni Bowcher QUALIFIED
Chavez G WieserCanadaAmy Elsner UNQUALIFIED
Maisha I FigeroaIndiaXuxue Feng RENEWAL
Kadeem F PoquetteArgentinaAsiya Javayant UNQUALIFIED
Leon B IturbideBrazilOnyama Limba QUALIFIED
Kadeem I SlusarskiBrazilOnyama Limba QUALIFIED
Sinclair Q RutaFranceOnyama Limba RENEWAL
Leja R RoysterCanadaAnna Fali NEW
Claire B BowleyRussiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens R BowleyIndia2026-08-07Dorl, James J Esq NEGOTIATION26Asiya Javayant
1001Ricardo B MacleadIndia2026-08-04Benton, John B Jr RENEWAL14Ivan Magalhaes
1002Munro N InouyeArgentina2026-07-17Commercial Press UNQUALIFIED15Ivan Magalhaes
1003Murillo Q BologniaRussia2026-07-18Benton, John B Jr RENEWAL41Ioni Bowcher
1004Julie V DoeGermany2026-07-30Chapman, Ross E Esq UNQUALIFIED42Ioni Bowcher
1005Jennifer C NestleArgentina2026-08-07Buckley Miller Wright RENEWAL59Amy Elsner
1006Leja X PoquetteIndia2026-07-28Rousseaux, Michael Esq RENEWAL77Xuxue Feng
1007Murillo B TollnerBrazil2026-08-02Commercial Press UNQUALIFIED35Stephen Shaw
1008James O RimSpain2026-08-12Chanay, Jeffrey A Esq NEGOTIATION32Elwin Sharvill
1009Emily I OldroydUnited Kingdom2026-08-05Benton, John B Jr QUALIFIED28Ioni Bowcher
1010Francesco L MaletCanada2026-07-20Buckley Miller Wright RENEWAL3Elwin Sharvill
1011Leja P MaletRussia2026-07-27Chemel, James L Cpa PROPOSAL74Onyama Limba
1012Octavia N ChuiUnited Kingdom2026-08-12Chemel, James L Cpa QUALIFIED63Elwin Sharvill
1013Antonio T PoquetteSpain2026-08-07Truhlar And Truhlar Attys PROPOSAL69Stephen Shaw
1014Kadeem N DilliardItaly2026-07-29Morlong Associates RENEWAL69Ivan Magalhaes
1015Jeanfrancois L AmigonAustralia2026-08-07Chanay, Jeffrey A Esq QUALIFIED28Stephen Shaw
1016Aditya S MarrierItaly2026-07-30King, Christopher A Esq RENEWAL65Xuxue Feng
1017Julie M BowleyAustralia2026-08-14Feltz Printing Service QUALIFIED93Ivan Magalhaes
1018Smith X StockhamArgentina2026-07-20Benton, John B Jr PROPOSAL20Ivan Magalhaes
1019Mayumi Z VocelkaJapan2026-07-24Benton, John B Jr PROPOSAL53Onyama Limba
1020Ivar S WhobreyIndia2026-07-20King, Christopher A Esq UNQUALIFIED14Xuxue Feng
1021Wickens C IturbideIndia2026-08-13King, Christopher A Esq UNQUALIFIED99Elwin Sharvill
1022Ricardo Z GarufiAustralia2026-08-10Morlong Associates UNQUALIFIED60Elwin Sharvill
1023Mujtaba S SaylorsArgentina2026-07-16Morlong Associates QUALIFIED50Bernardo Dominic
1024Arvin O GillianArgentina2026-08-06Commercial Press UNQUALIFIED61Ioni Bowcher
1025Antonio X RoysterJapan2026-07-25Benton, John B Jr NEGOTIATION20Elwin Sharvill
1026Cody P PaprockiArgentina2026-07-29Benton, John B Jr NEW49Ioni Bowcher
1027Aruna C InouyeCanada2026-08-09King, Christopher A Esq NEW64Stephen Shaw
1028Julie B MaletBrazil2026-07-22Commercial Press UNQUALIFIED58Bernardo Dominic
1029Leja Q PerinRussia2026-07-16Feiner Bros QUALIFIED23Bernardo Dominic
1030Ivar Z BriddickRussia2026-07-16Benton, John B Jr QUALIFIED27Asiya Javayant
1031Tony B SergiCanada2026-08-14Morlong Associates PROPOSAL14Ioni Bowcher
1032Salvatore E NestleUnited Kingdom2026-07-23Rousseaux, Michael Esq UNQUALIFIED82Ivan Magalhaes
1033Kadeem X WieserItaly2026-07-17Rousseaux, Michael Esq PROPOSAL38Asiya Javayant
1034Alejandro X DilliardAustralia2026-08-08Buckley Miller Wright UNQUALIFIED80Amy Elsner
1035Tony N RutaFrance2026-08-01Chapman, Ross E Esq NEGOTIATION10Bernardo Dominic
1036Greenwood E VenereUnited Kingdom2026-07-21Feltz Printing Service NEW48Anna Fali
1037Sinclair N SergiSpain2026-07-27Commercial Press NEW99Elwin Sharvill
1038Cody U ChuiAustralia2026-08-09Buckley Miller Wright UNQUALIFIED31Amy Elsner
1039Rodrigues D AmigonBrazil2026-08-09Truhlar And Truhlar Attys QUALIFIED34Ioni Bowcher
1040James Y MacleadGermany2026-08-08Dorl, James J Esq QUALIFIED4Bernardo Dominic
1041Nicolas H PaprockiUnited Kingdom2026-08-05Buckley Miller Wright NEW55Xuxue Feng
1042Clifford H AlbaresUnited Kingdom2026-07-29Feiner Bros NEW34Stephen Shaw
1043James L InouyeCanada2026-07-19Buckley Miller Wright PROPOSAL30Anna Fali
1044Jeanfrancois V CaudyItaly2026-08-08Dorl, James J Esq QUALIFIED85Stephen Shaw
1045Costa L BriddickCanada2026-08-03Chanay, Jeffrey A Esq PROPOSAL17Ivan Magalhaes
1046Jones P KolmetzJapan2026-07-21Buckley Miller Wright QUALIFIED96Asiya Javayant
1047Darci T WhobreyArgentina2026-07-18Truhlar And Truhlar Attys NEW41Ioni Bowcher
1048Jefferson Q DoeSpain2026-08-05Chanay, Jeffrey A Esq PROPOSAL19Onyama Limba
1049Jeanfrancois J DarakjyBrazil2026-08-07Morlong Associates RENEWAL89Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan J OldroydUnited KingdomAmy Elsner UNQUALIFIED
Clifford J DarakjyArgentinaOnyama Limba QUALIFIED
Kadeem I DarakjyBrazilOnyama Limba UNQUALIFIED
Ivar T GauchoItalyIvan Magalhaes QUALIFIED
Leon X PaprockiSpainBernardo Dominic QUALIFIED
Rodrigues S WaycottAustraliaOnyama Limba NEGOTIATION
Ricardo D WhobreyArgentinaStephen Shaw NEGOTIATION
Alejandro F OstroskyBrazilElwin Sharvill QUALIFIED
Alejandro X ButtSpainAsiya Javayant QUALIFIED
Mayumi F WaycottAustraliaIoni Bowcher NEW
Stacey Q NickaCanadaAmy Elsner NEW
Leja G TollnerJapanIvan Magalhaes PROPOSAL
Morrow Y GauchoGermanyIoni Bowcher PROPOSAL
Silvio Z SchemmerSpainOnyama Limba PROPOSAL
Aika Y IturbideIndiaOnyama Limba RENEWAL
Ivar D GlickItalyAnna Fali UNQUALIFIED
Rodrigues B CaldareraArgentinaAsiya Javayant QUALIFIED
Aika Z MaletFranceAmy Elsner UNQUALIFIED
Juan T OldroydJapanXuxue Feng QUALIFIED
Juan U DilliardIndiaAsiya Javayant QUALIFIED
Jeanfrancois H FlosiRussiaBernardo Dominic UNQUALIFIED
Octavia C MaletCanadaAmy Elsner PROPOSAL
Sinclair P KuskoCanadaXuxue Feng UNQUALIFIED
Costa V WhobreyUnited KingdomAsiya Javayant NEGOTIATION
Antonio E VocelkaSpainStephen Shaw UNQUALIFIED
Sinclair W FerenczGermanyElwin Sharvill QUALIFIED
Aika Q DilliardBrazilElwin Sharvill QUALIFIED
Aruna K OstroskyJapanIvan Magalhaes NEGOTIATION
Leon L GauchoIndiaAnna Fali PROPOSAL
Leon G SaylorsRussiaAmy Elsner NEW
Stacey N GauchoJapanAmy Elsner NEW
Jennifer D RimFranceOnyama Limba NEW
Leja L MacleadFranceAsiya Javayant RENEWAL
Salvatore U IturbideRussiaAsiya Javayant NEW
Deepesh J StockhamArgentinaAnna Fali RENEWAL
Jones G KuskoCanadaXuxue Feng UNQUALIFIED
Morrow K NickaJapanAsiya Javayant RENEWAL
Aruna D MorascaJapanXuxue Feng PROPOSAL
Octavia X MarrierSpainStephen Shaw RENEWAL
Faith A GillianSpainAsiya Javayant NEGOTIATION
Aika H TollnerBrazilAmy Elsner PROPOSAL
Jeanfrancois B SlusarskiAustraliaElwin Sharvill NEGOTIATION
Aditya B RutaSpainAnna Fali PROPOSAL
Maisha X FlosiIndiaAmy Elsner NEGOTIATION
Kaitlin W PerinRussiaXuxue Feng RENEWAL
Leja N BowleyGermanyXuxue Feng RENEWAL
Sinclair A GauchoJapanIvan Magalhaes QUALIFIED
Darci T MaletArgentinaXuxue Feng PROPOSAL
Octavia F SchemmerRussiaIvan Magalhaes PROPOSAL
Chavez D RulapaughJapanAnna Fali NEW
Frozen Columns
Name
Ivar W Briddick
Nicolas W Gaucho
Claire E Slusarski
Octavia I Rulapaugh
Tony K Caldarera
Francesco G Malet
Antonio P Maclead
Arvin Y Schemmer
Morrow V Rulapaugh
Kaitlin L Rim
Deepesh H Caudy
Salvatore L Figeroa
Rodrigues N Vocelka
Mujtaba F Glick
Costa N Slusarski
Faith C Nestle
Aditya B Iturbide
Juan C Rulapaugh
Misaki H Foller
Greenwood L Royster
Leon A Slusarski
Isabel T Dilliard
Ricardo M Nicka
Darci V Garufi
Mayumi R Iturbide
Ricardo L Schemmer
David H Briddick
David I Oldroyd
Kadeem H Rulapaugh
Murillo G Caudy
Tony X Perin
Sinclair T Schemmer
Jefferson W Darakjy
Mayumi W Tollner
Jeanfrancois S Oldroyd
Francesco G Dilliard
Misaki P Oldroyd
Johnson R Caudy
James Z Albares
Sinclair F Shinko
Mujtaba H Campain
Cody B Poquette
Greenwood A Doe
Costa C Royster
Costa K Rim
Kadeem B Schemmer
Jennifer B Albares
Jeanfrancois K Ostrosky
Izzy V Nestle
Deepesh N Ferencz
IdCountryDate
1000Australia2026-07-27
1001Canada2026-07-22
1002Japan2026-07-24
1003United Kingdom2026-07-23
1004Russia2026-07-22
1005Canada2026-07-29
1006India2026-07-19
1007Australia2026-08-14
1008Argentina2026-07-26
1009Germany2026-07-27
1010Russia2026-07-19
1011Russia2026-08-10
1012Australia2026-07-23
1013Spain2026-08-10
1014Russia2026-07-29
1015Argentina2026-08-10
1016India2026-08-06
1017France2026-07-16
1018Russia2026-08-01
1019Japan2026-07-25
1020Germany2026-08-08
1021Spain2026-07-22
1022United Kingdom2026-08-08
1023Canada2026-08-04
1024Canada2026-08-09
1025France2026-07-30
1026Spain2026-07-20
1027Argentina2026-08-14
1028Japan2026-08-02
1029Canada2026-07-21
1030Russia2026-08-10
1031Japan2026-07-23
1032Russia2026-07-19
1033Germany2026-08-07
1034Japan2026-07-17
1035Brazil2026-07-21
1036United Kingdom2026-08-10
1037Russia2026-07-16
1038Japan2026-08-04
1039Canada2026-07-27
1040Australia2026-07-25
1041Russia2026-08-01
1042Canada2026-07-28
1043Russia2026-08-12
1044India2026-08-10
1045Germany2026-08-12
1046Japan2026-08-04
1047Japan2026-07-25
1048Brazil2026-07-20
1049India2026-08-14

On-Demand Data

NameIdCountryDate
Jefferson J Oldroyd1000Canada2026-08-02
Antonio E Nestle1001Brazil2026-07-21
Jennifer D Nestle1002Russia2026-08-04
David T Darakjy1003India2026-07-25
Clifford H Malet1004Russia2026-08-02
Maisha K Nicka1005Italy2026-08-03
James W Chui1006Germany2026-07-21
Juan O Malet1007Argentina2026-07-21
Silvio X Schemmer1008Brazil2026-08-05
Nicolas T Oldroyd1009India2026-07-22
Aditya F Schemmer1010France2026-07-26
Nicolas M Caudy1011Canada2026-07-31
Darci U Slusarski1012Japan2026-08-13
Claire L Bowley1013Brazil2026-07-20
Salvatore F Malet1014Italy2026-08-07
Clifford G Albares1015Brazil2026-07-25
Leon G Malet1016Japan2026-08-06
Greenwood P Garufi1017Germany2026-07-18
Salvatore A Oldroyd1018India2026-08-10
Rodrigues N Garufi1019Spain2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio U PoquetteIndiaXuxue Feng NEW
Faith V StockhamSpainIvan Magalhaes NEGOTIATION
Munro B MaletRussiaAnna Fali PROPOSAL
Alejandro U GillianArgentinaOnyama Limba QUALIFIED
Rodrigues I RutaJapanXuxue Feng QUALIFIED
Nicolas Q GauchoAustraliaBernardo Dominic QUALIFIED
Aruna K SergiCanadaIvan Magalhaes RENEWAL
Kaitlin Z OldroydCanadaStephen Shaw NEW
James Z VenereFranceIvan Magalhaes QUALIFIED
Clifford T GlickUnited KingdomStephen Shaw QUALIFIED
Leon E ButtUnited KingdomAnna Fali UNQUALIFIED
Aruna C CampainAustraliaIoni Bowcher RENEWAL
Aditya A GlickFranceAsiya Javayant NEGOTIATION
Salvatore P KuskoCanadaOnyama Limba NEGOTIATION
Emily Y ShinkoBrazilAmy Elsner PROPOSAL
Misaki N WhobreyJapanElwin Sharvill UNQUALIFIED
Leon T GauchoItalyAnna Fali UNQUALIFIED
Mayumi A AlbaresCanadaIoni Bowcher RENEWAL
Jennifer B MarrierGermanyOnyama Limba PROPOSAL
Silvio X WaycottUnited KingdomIvan Magalhaes NEW
Isabel T PaprockiItalyAmy Elsner PROPOSAL
Juan X CaudyRussiaStephen Shaw PROPOSAL
Misaki B PoquetteCanadaIvan Magalhaes UNQUALIFIED
James W VocelkaGermanyAmy Elsner NEW
Misaki O MacleadUnited KingdomBernardo Dominic NEW
Smith A SchemmerBrazilAmy Elsner QUALIFIED
Adams F StockhamJapanAmy Elsner QUALIFIED
Clifford Y CaldareraCanadaStephen Shaw PROPOSAL
Salvatore E MaletCanadaStephen Shaw NEGOTIATION
Ivar R WhobreyArgentinaBernardo Dominic UNQUALIFIED
Ivar T FerenczItalyBernardo Dominic RENEWAL
Julie C InouyeItalyElwin Sharvill NEW
Ivar N AlbaresUnited KingdomIvan Magalhaes NEW
Deepesh Z AmigonArgentinaBernardo Dominic RENEWAL
Leja H PaprockiRussiaAnna Fali NEW
Jones Q KuskoJapanElwin Sharvill UNQUALIFIED
Mujtaba J AmigonCanadaBernardo Dominic NEGOTIATION
Rodrigues R ButtRussiaAnna Fali NEGOTIATION
Jeanfrancois Q MarrierJapanElwin Sharvill NEW
Jones U OstroskyAustraliaBernardo 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>