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
Isabel R ShinkoFranceOnyama Limba PROPOSAL
Antonio N RulapaughFranceAnna Fali RENEWAL
Ashley C GillianGermanyXuxue Feng UNQUALIFIED
James D ChuiAustraliaAmy Elsner PROPOSAL
Maria Z GillianSpainAmy Elsner PROPOSAL
David Z GauchoItalyIoni Bowcher UNQUALIFIED
Maisha M CaldareraGermanyIvan Magalhaes QUALIFIED
Mujtaba X FlosiUnited KingdomOnyama Limba RENEWAL
Misaki B DilliardJapanStephen Shaw UNQUALIFIED
Juan A PerinBrazilAmy Elsner PROPOSAL
Salvatore B SlusarskiUnited KingdomAsiya Javayant PROPOSAL
Leon T GarufiUnited KingdomIvan Magalhaes QUALIFIED
Clifford Y StensethRussiaElwin Sharvill NEGOTIATION
Ricardo F MorascaAustraliaIvan Magalhaes NEGOTIATION
Stacey Q VenereUnited KingdomElwin Sharvill PROPOSAL
Morrow C BriddickCanadaAsiya Javayant NEW
Tony T WieserItalyIvan Magalhaes NEGOTIATION
Johnson G IturbideItalyAnna Fali RENEWAL
Deepesh G MaletBrazilAnna Fali UNQUALIFIED
Johnson U SaylorsBrazilAmy Elsner PROPOSAL
Kadeem O SaylorsBrazilIvan Magalhaes NEGOTIATION
Mujtaba A BologniaRussiaElwin Sharvill NEGOTIATION
Francesco O DarakjyItalyXuxue Feng PROPOSAL
Johnson T VocelkaIndiaBernardo Dominic UNQUALIFIED
Alejandro L FigeroaBrazilAmy Elsner NEW
Greenwood J FerenczUnited KingdomStephen Shaw NEGOTIATION
Aditya W PaprockiGermanyIoni Bowcher NEW
Jeanfrancois L PaprockiItalyAsiya Javayant NEW
Isabel H TollnerRussiaElwin Sharvill PROPOSAL
Leja K RutaBrazilXuxue Feng UNQUALIFIED
Jeanfrancois Z VenereAustraliaOnyama Limba PROPOSAL
Francesco I MacleadJapanElwin Sharvill PROPOSAL
Maria W FollerAustraliaIvan Magalhaes NEW
Rodrigues M TollnerIndiaElwin Sharvill UNQUALIFIED
Antonio J PaprockiCanadaIoni Bowcher RENEWAL
Antonio O GlickFranceElwin Sharvill NEGOTIATION
Isabel Z IturbideItalyElwin Sharvill UNQUALIFIED
James S BowleyIndiaAmy Elsner PROPOSAL
Maisha P ChuiAustraliaXuxue Feng UNQUALIFIED
Smith D WieserCanadaElwin Sharvill QUALIFIED
Maria Y ShinkoBrazilStephen Shaw QUALIFIED
Deepesh R DarakjySpainElwin Sharvill QUALIFIED
Emily H VenereRussiaAmy Elsner QUALIFIED
Aika G SchemmerFranceStephen Shaw QUALIFIED
Tony G FerenczCanadaOnyama Limba NEW
Clifford Y KuskoFranceXuxue Feng NEW
James C FerenczItalyIoni Bowcher QUALIFIED
Ivar U ShinkoFranceStephen Shaw RENEWAL
Adams Q BologniaBrazilAmy Elsner NEGOTIATION
Jeanfrancois L DoeAustraliaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jennifer V TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Adams X FollerFranceAsiya Javayant UNQUALIFIED
Costa H MaletRussiaOnyama Limba PROPOSAL
Arvin Z FerenczAustraliaAmy Elsner NEGOTIATION
Leon B CaudyFranceAmy Elsner UNQUALIFIED
Alejandro B TollnerArgentinaAnna Fali RENEWAL
Tony S GlickUnited KingdomElwin Sharvill QUALIFIED
Adams K TollnerCanadaIvan Magalhaes NEW
Darci G MorascaAustraliaAnna Fali NEGOTIATION
Izzy F MaletAustraliaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez S FerenczCanada2026-07-01Printing Dimensions PROPOSAL10Onyama Limba
1001Jennifer H SergiArgentina2026-06-28Chemel, James L Cpa NEW5Ioni Bowcher
1002Nicolas Z GarufiArgentina2026-06-17Chanay, Jeffrey A Esq NEW38Ioni Bowcher
1003Clifford Z MarrierArgentina2026-07-12Morlong Associates NEGOTIATION67Xuxue Feng
1004Leja J SergiJapan2026-06-21King, Christopher A Esq RENEWAL59Xuxue Feng
1005Jones Z StensethGermany2026-06-26Truhlar And Truhlar Attys NEW17Asiya Javayant
1006Ashley G RoysterRussia2026-06-30Feiner Bros NEW76Elwin Sharvill
1007Juan X MaletItaly2026-07-04Chemel, James L Cpa NEGOTIATION7Ioni Bowcher
1008Faith R MarrierRussia2026-07-03Chemel, James L Cpa QUALIFIED26Ivan Magalhaes
1009Juan A WaycottBrazil2026-07-15Chapman, Ross E Esq QUALIFIED50Stephen Shaw
1010Costa V ButtBrazil2026-07-15Chemel, James L Cpa UNQUALIFIED88Onyama Limba
1011Kaitlin L SlusarskiItaly2026-07-10Printing Dimensions RENEWAL54Onyama Limba
1012Darci W CaudyCanada2026-06-23Benton, John B Jr PROPOSAL80Ioni Bowcher
1013Wickens R RulapaughRussia2026-07-10Commercial Press PROPOSAL88Xuxue Feng
1014Tony V TollnerArgentina2026-06-23Truhlar And Truhlar Attys NEW9Asiya Javayant
1015Aruna E SergiFrance2026-07-11Rangoni Of Florence NEW44Amy Elsner
1016Jeanfrancois W GlickArgentina2026-06-21Feiner Bros PROPOSAL61Elwin Sharvill
1017Silvio Q KolmetzArgentina2026-07-12Buckley Miller Wright UNQUALIFIED38Xuxue Feng
1018Salvatore M CaudyItaly2026-07-14Commercial Press PROPOSAL82Stephen Shaw
1019Arvin O StensethIndia2026-07-10Feiner Bros PROPOSAL82Onyama Limba
1020Stacey B FlosiFrance2026-06-16Printing Dimensions NEGOTIATION4Asiya Javayant
1021Jennifer N WieserCanada2026-07-01Rousseaux, Michael Esq RENEWAL56Ivan Magalhaes
1022Alejandro U FollerArgentina2026-07-05Chapman, Ross E Esq NEGOTIATION33Amy Elsner
1023Maria F IturbideArgentina2026-07-02Truhlar And Truhlar Attys PROPOSAL26Onyama Limba
1024Tony F AlbaresRussia2026-07-15Chemel, James L Cpa UNQUALIFIED85Onyama Limba
1025Stacey G IturbideJapan2026-07-02Morlong Associates NEGOTIATION35Onyama Limba
1026Aruna E BriddickRussia2026-07-07Buckley Miller Wright NEW95Anna Fali
1027Rodrigues A GarufiUnited Kingdom2026-06-29Feiner Bros RENEWAL61Onyama Limba
1028Alejandro L ShinkoBrazil2026-07-10Feltz Printing Service UNQUALIFIED47Ioni Bowcher
1029Clifford N BologniaJapan2026-06-30Buckley Miller Wright QUALIFIED72Ivan Magalhaes
1030Leon Q DoeIndia2026-06-20Chemel, James L Cpa NEGOTIATION81Xuxue Feng
1031Aditya Q SlusarskiFrance2026-07-11Chapman, Ross E Esq RENEWAL11Ioni Bowcher
1032Leon R CaudyUnited Kingdom2026-07-14Feiner Bros PROPOSAL12Anna Fali
1033Cody W BowleyAustralia2026-06-30Morlong Associates PROPOSAL78Stephen Shaw
1034Stacey F FigeroaIndia2026-07-10Morlong Associates NEW14Asiya Javayant
1035Adams I DarakjyUnited Kingdom2026-06-21Dorl, James J Esq NEGOTIATION30Xuxue Feng
1036Adams W GarufiFrance2026-07-07Printing Dimensions NEW35Ivan Magalhaes
1037Mayumi Z RoysterUnited Kingdom2026-07-10Truhlar And Truhlar Attys NEGOTIATION53Bernardo Dominic
1038Chavez M BriddickAustralia2026-07-13Truhlar And Truhlar Attys UNQUALIFIED66Ioni Bowcher
1039Maisha T FerenczIndia2026-07-08Truhlar And Truhlar Attys UNQUALIFIED64Bernardo Dominic
1040Murillo E FigeroaBrazil2026-06-26Chemel, James L Cpa NEGOTIATION68Ivan Magalhaes
1041Clifford F MaletCanada2026-06-17Commercial Press PROPOSAL17Ioni Bowcher
1042Adams U WaycottItaly2026-07-06Chanay, Jeffrey A Esq QUALIFIED89Ivan Magalhaes
1043Cody A ChuiJapan2026-07-06Morlong Associates PROPOSAL73Bernardo Dominic
1044Greenwood S SchemmerArgentina2026-07-03Chemel, James L Cpa NEGOTIATION5Elwin Sharvill
1045Darci W InouyeUnited Kingdom2026-06-16Morlong Associates NEGOTIATION22Anna Fali
1046Deepesh V SchemmerUnited Kingdom2026-07-12Commercial Press UNQUALIFIED0Bernardo Dominic
1047Francesco F BologniaUnited Kingdom2026-06-30Chemel, James L Cpa UNQUALIFIED62Ivan Magalhaes
1048Cody A DoeUnited Kingdom2026-07-10Chemel, James L Cpa UNQUALIFIED9Ivan Magalhaes
1049Francesco F SchemmerFrance2026-07-14King, Christopher A Esq NEGOTIATION98Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Deepesh M PoquetteAustraliaIvan Magalhaes NEGOTIATION
Murillo H MaletSpainXuxue Feng NEGOTIATION
Ashley X WieserRussiaAnna Fali QUALIFIED
Nicolas K MaletIndiaAmy Elsner PROPOSAL
Maria H FigeroaGermanyIoni Bowcher QUALIFIED
Izzy Q BologniaAustraliaXuxue Feng PROPOSAL
Juan K DilliardItalyIvan Magalhaes RENEWAL
Octavia R FlosiFranceXuxue Feng NEGOTIATION
Murillo I NestleGermanyOnyama Limba QUALIFIED
James Y SergiFranceAmy Elsner NEW
Tony D FerenczFranceAsiya Javayant NEW
Aruna B GarufiBrazilStephen Shaw RENEWAL
Juan G GarufiArgentinaOnyama Limba PROPOSAL
Faith B SergiFranceStephen Shaw QUALIFIED
Claire Q TollnerFranceOnyama Limba NEGOTIATION
Kadeem T OldroydUnited KingdomAsiya Javayant RENEWAL
Stacey K GauchoUnited KingdomBernardo Dominic NEGOTIATION
Ashley A StensethItalyStephen Shaw NEW
Sinclair V ButtItalyXuxue Feng RENEWAL
Kaitlin E NestleFranceBernardo Dominic NEW
Kadeem X MaletItalyIoni Bowcher UNQUALIFIED
Antonio W KuskoSpainAnna Fali NEW
Deepesh Y IturbideBrazilAmy Elsner PROPOSAL
Aditya N NickaUnited KingdomBernardo Dominic PROPOSAL
Stacey D AlbaresFranceIvan Magalhaes PROPOSAL
Leja T RulapaughAustraliaOnyama Limba NEGOTIATION
Jennifer N FlosiCanadaIoni Bowcher RENEWAL
Kaitlin V OldroydFranceStephen Shaw NEW
Costa J MorascaItalyXuxue Feng UNQUALIFIED
Tony Y VenereJapanAmy Elsner UNQUALIFIED
Aruna Q SergiItalyIoni Bowcher NEW
Izzy E CaudySpainIoni Bowcher NEGOTIATION
Aika W GlickItalyAnna Fali RENEWAL
Costa L AlbaresBrazilOnyama Limba NEGOTIATION
Kaitlin A CaudySpainAsiya Javayant PROPOSAL
Antonio F MorascaRussiaOnyama Limba NEGOTIATION
Johnson U TollnerRussiaAnna Fali NEGOTIATION
Mayumi G GarufiFranceStephen Shaw QUALIFIED
David B DoeFranceBernardo Dominic NEGOTIATION
Misaki F GlickJapanAsiya Javayant PROPOSAL
Alejandro N RimArgentinaXuxue Feng PROPOSAL
Ricardo U MarrierBrazilXuxue Feng NEGOTIATION
Mujtaba F GillianCanadaIoni Bowcher NEW
Wickens U WhobreySpainAsiya Javayant PROPOSAL
Francesco R MorascaItalyBernardo Dominic NEW
Izzy C VocelkaGermanyElwin Sharvill NEGOTIATION
Leja B CampainSpainOnyama Limba UNQUALIFIED
Smith S GillianIndiaXuxue Feng NEGOTIATION
Kaitlin C ButtJapanElwin Sharvill RENEWAL
Ashley Z SchemmerFranceAmy Elsner QUALIFIED
Frozen Columns
Name
Cody Y Kolmetz
Sinclair T Kolmetz
Morrow Y Foller
Wickens U Campain
Kadeem S Rim
Smith W Royster
Maria P Morasca
Adams M Wieser
Ricardo H Venere
Stacey T Iturbide
Wickens E Malet
Stacey U Tollner
Francesco Y Chui
Emily R Schemmer
Wickens Y Briddick
Ivar M Poquette
Maisha T Sergi
Isabel P Nestle
Juan F Sergi
Jeanfrancois G Figeroa
Kadeem A Briddick
Juan C Waycott
Jefferson A Dilliard
Deepesh O Malet
Isabel A Iturbide
Tony Z Kusko
Jennifer S Maclead
Octavia C Campain
Maria X Doe
Isabel A Amigon
Smith E Malet
Antonio V Chui
Wickens F Albares
Salvatore F Flosi
Silvio L Figeroa
Isabel T Bolognia
Jeanfrancois S Glick
Claire T Doe
Leja S Stockham
Maria J Rim
Jeanfrancois M Flosi
David V Nestle
Tony B Figeroa
Antonio E Rim
Leon K Dilliard
Antonio S Caudy
Juan E Vocelka
Ashley V Stockham
Kaitlin D Butt
Leja A Wieser
IdCountryDate
1000United Kingdom2026-06-26
1001Australia2026-07-15
1002Australia2026-07-07
1003United Kingdom2026-07-13
1004Germany2026-06-23
1005United Kingdom2026-07-02
1006Russia2026-07-07
1007Japan2026-07-04
1008India2026-06-24
1009Argentina2026-06-28
1010United Kingdom2026-07-15
1011Germany2026-07-02
1012India2026-06-20
1013Italy2026-06-24
1014India2026-06-17
1015Italy2026-06-25
1016Germany2026-07-15
1017Argentina2026-07-15
1018Spain2026-07-14
1019Japan2026-07-14
1020Argentina2026-06-19
1021Argentina2026-06-26
1022Spain2026-07-05
1023Spain2026-07-13
1024India2026-07-07
1025Germany2026-06-21
1026United Kingdom2026-06-18
1027Australia2026-07-10
1028Argentina2026-06-19
1029Canada2026-06-26
1030Russia2026-06-23
1031France2026-07-05
1032France2026-07-08
1033Germany2026-07-01
1034Brazil2026-07-13
1035United Kingdom2026-07-08
1036Canada2026-07-11
1037Russia2026-07-15
1038France2026-07-02
1039Argentina2026-07-13
1040Australia2026-06-27
1041India2026-06-25
1042Brazil2026-06-26
1043Australia2026-07-10
1044Australia2026-07-05
1045Canada2026-06-18
1046United Kingdom2026-06-16
1047Spain2026-07-06
1048Argentina2026-06-19
1049Russia2026-06-30

On-Demand Data

NameIdCountryDate
Julie E Briddick1000India2026-07-02
Aruna I Flosi1001Canada2026-06-28
Johnson C Saylors1002Japan2026-07-13
Arvin F Figeroa1003Russia2026-06-24
Munro V Gaucho1004Brazil2026-07-15
Munro K Wieser1005United Kingdom2026-06-30
Munro J Slusarski1006Argentina2026-06-30
Darci E Sergi1007Argentina2026-06-21
Silvio H Venere1008Argentina2026-06-16
Clifford B Shinko1009Canada2026-06-21
Leja F Maclead1010France2026-06-22
Wickens G Iturbide1011Argentina2026-07-09
Antonio T Saylors1012Argentina2026-06-22
Leja D Perin1013Brazil2026-06-27
Misaki A Venere1014Japan2026-07-10
Jennifer W Briddick1015Argentina2026-06-22
Maria C Flosi1016Italy2026-07-15
Salvatore V Briddick1017Canada2026-06-19
Smith Y Royster1018Italy2026-06-23
Costa H Gaucho1019Brazil2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba U NickaAustraliaElwin Sharvill RENEWAL
Arvin M FollerJapanAsiya Javayant PROPOSAL
Stacey Y MarrierAustraliaElwin Sharvill NEW
Kadeem O ChuiFranceBernardo Dominic UNQUALIFIED
Wickens P DoeRussiaAmy Elsner NEW
Ashley V ButtArgentinaAnna Fali NEW
Juan V VenereItalyIvan Magalhaes NEW
Jones O VenereCanadaAsiya Javayant PROPOSAL
Murillo U VenereFranceBernardo Dominic PROPOSAL
Leja J MacleadIndiaStephen Shaw NEW
David E GauchoSpainAnna Fali PROPOSAL
Claire Y GarufiFranceAsiya Javayant NEGOTIATION
Aditya M DilliardSpainXuxue Feng PROPOSAL
Antonio Q AmigonJapanAnna Fali PROPOSAL
Jeanfrancois V MarrierBrazilOnyama Limba RENEWAL
Salvatore I WieserJapanBernardo Dominic UNQUALIFIED
Jefferson Z CaldareraItalyIvan Magalhaes PROPOSAL
Rodrigues X FollerJapanElwin Sharvill PROPOSAL
Ashley V TollnerAustraliaBernardo Dominic PROPOSAL
Maisha N KolmetzGermanyElwin Sharvill RENEWAL
Octavia B RutaIndiaAsiya Javayant UNQUALIFIED
Aika Z AmigonItalyIoni Bowcher UNQUALIFIED
Darci S ChuiSpainStephen Shaw NEGOTIATION
Juan X StensethGermanyIvan Magalhaes NEW
Costa T VenereAustraliaElwin Sharvill RENEWAL
Maisha K VocelkaIndiaBernardo Dominic UNQUALIFIED
Greenwood G MorascaRussiaXuxue Feng UNQUALIFIED
Stacey V InouyeJapanAmy Elsner PROPOSAL
Aruna R MorascaGermanyStephen Shaw RENEWAL
Aditya R MacleadItalyOnyama Limba QUALIFIED
Aditya J FerenczItalyIoni Bowcher UNQUALIFIED
Rodrigues V AmigonBrazilAsiya Javayant RENEWAL
Leon F ChuiIndiaAnna Fali NEGOTIATION
Francesco W GillianCanadaElwin Sharvill PROPOSAL
Rodrigues A FlosiCanadaXuxue Feng NEW
Ashley G AlbaresAustraliaStephen Shaw NEGOTIATION
Murillo X FlosiItalyElwin Sharvill PROPOSAL
Isabel X GauchoRussiaIvan Magalhaes QUALIFIED
Maria U SergiItalyIoni Bowcher UNQUALIFIED
Jones T PoquetteJapanXuxue Feng 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>