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
Faith I RutaArgentinaBernardo Dominic QUALIFIED
Maisha T FlosiAustraliaStephen Shaw UNQUALIFIED
Costa N BriddickFranceAmy Elsner RENEWAL
Juan Q FlosiArgentinaBernardo Dominic NEW
Wickens D DoeCanadaIvan Magalhaes PROPOSAL
Rodrigues C PoquetteAustraliaXuxue Feng QUALIFIED
Maria Q ChuiCanadaAmy Elsner NEW
James R WieserRussiaIoni Bowcher PROPOSAL
Aika N StensethUnited KingdomOnyama Limba RENEWAL
Kadeem T SchemmerAustraliaOnyama Limba PROPOSAL
Antonio H KuskoArgentinaOnyama Limba NEW
Salvatore Y SlusarskiAustraliaXuxue Feng NEW
Misaki Z StensethIndiaElwin Sharvill NEGOTIATION
Arvin I RoysterItalyAsiya Javayant QUALIFIED
Greenwood U OldroydGermanyElwin Sharvill PROPOSAL
Morrow T GlickAustraliaStephen Shaw QUALIFIED
Kadeem D MaletItalyIvan Magalhaes QUALIFIED
Juan K GarufiRussiaBernardo Dominic NEW
Kadeem O RulapaughSpainAmy Elsner PROPOSAL
Rodrigues M MaletCanadaAnna Fali PROPOSAL
David J CaudyCanadaIoni Bowcher UNQUALIFIED
Adams W AmigonItalyAnna Fali PROPOSAL
Wickens V MorascaGermanyOnyama Limba NEGOTIATION
Costa M CaldareraItalyOnyama Limba NEW
Francesco O CaudyArgentinaStephen Shaw NEGOTIATION
Greenwood Z MaletFranceAnna Fali PROPOSAL
Darci M KuskoFranceAmy Elsner UNQUALIFIED
Clifford O FollerJapanAnna Fali NEGOTIATION
Clifford J RoysterAustraliaAnna Fali NEW
Kaitlin B SchemmerJapanStephen Shaw RENEWAL
Sinclair Y TollnerBrazilAmy Elsner PROPOSAL
Jennifer F KuskoFranceAsiya Javayant QUALIFIED
Aika T BowleyRussiaOnyama Limba RENEWAL
Darci F SchemmerAustraliaAmy Elsner NEGOTIATION
Kaitlin T RutaIndiaIvan Magalhaes NEGOTIATION
Ivar I InouyeJapanStephen Shaw RENEWAL
Julie T BologniaAustraliaOnyama Limba NEGOTIATION
Jones P PaprockiIndiaIvan Magalhaes RENEWAL
Maisha M KolmetzAustraliaAnna Fali PROPOSAL
Arvin T IturbideArgentinaStephen Shaw PROPOSAL
Mayumi U StensethGermanyAmy Elsner QUALIFIED
James E DarakjyGermanyIoni Bowcher QUALIFIED
Adams O MaletItalyBernardo Dominic RENEWAL
Cody E SaylorsCanadaBernardo Dominic RENEWAL
Johnson G DilliardIndiaAsiya Javayant QUALIFIED
Adams T ButtBrazilAsiya Javayant NEGOTIATION
Arvin K SlusarskiFranceAsiya Javayant NEW
Aditya H RutaFranceAmy Elsner UNQUALIFIED
Salvatore O WaycottCanadaElwin Sharvill NEGOTIATION
Alejandro W CaudyBrazilIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon Q BowleyGermanyAsiya Javayant NEW
Kaitlin V MacleadUnited KingdomOnyama Limba UNQUALIFIED
Jennifer E SergiJapanStephen Shaw PROPOSAL
Mujtaba K BologniaFranceOnyama Limba NEW
Emily S RimGermanyOnyama Limba PROPOSAL
Emily M MaletSpainElwin Sharvill NEGOTIATION
Morrow K ChuiGermanyIoni Bowcher PROPOSAL
Salvatore M RimArgentinaOnyama Limba QUALIFIED
Deepesh J DilliardRussiaAmy Elsner QUALIFIED
Wickens O RimUnited KingdomAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody J TollnerCanada2026-07-08Truhlar And Truhlar Attys RENEWAL68Xuxue Feng
1001Ricardo F SaylorsFrance2026-07-24Benton, John B Jr PROPOSAL26Amy Elsner
1002Arvin K KolmetzUnited Kingdom2026-07-16Feiner Bros NEW86Onyama Limba
1003Antonio D MacleadAustralia2026-07-17Feltz Printing Service UNQUALIFIED45Onyama Limba
1004Jeanfrancois H NickaArgentina2026-07-15Dorl, James J Esq NEW87Stephen Shaw
1005Costa O BowleyRussia2026-08-01Feiner Bros QUALIFIED60Ivan Magalhaes
1006Arvin F RulapaughRussia2026-08-04Feiner Bros UNQUALIFIED54Anna Fali
1007Salvatore F BologniaBrazil2026-07-20Feiner Bros NEW24Bernardo Dominic
1008Clifford C NestleCanada2026-07-09Chemel, James L Cpa UNQUALIFIED3Asiya Javayant
1009Juan R DoeItaly2026-07-29Buckley Miller Wright PROPOSAL4Onyama Limba
1010Jones T DilliardAustralia2026-07-14Rangoni Of Florence NEGOTIATION6Amy Elsner
1011Leja B GarufiIndia2026-07-17Chapman, Ross E Esq PROPOSAL23Ivan Magalhaes
1012Julie X RoysterCanada2026-07-19Feiner Bros QUALIFIED59Ioni Bowcher
1013Leon A FerenczFrance2026-07-06Chanay, Jeffrey A Esq QUALIFIED71Stephen Shaw
1014Jefferson X PaprockiArgentina2026-08-01King, Christopher A Esq NEW12Bernardo Dominic
1015Nicolas N KolmetzIndia2026-07-22Printing Dimensions PROPOSAL0Ivan Magalhaes
1016Jefferson W WaycottIndia2026-07-19Rangoni Of Florence NEW28Ivan Magalhaes
1017Tony Y PaprockiAustralia2026-07-28King, Christopher A Esq QUALIFIED35Anna Fali
1018Smith U FerenczSpain2026-07-11Truhlar And Truhlar Attys NEGOTIATION51Onyama Limba
1019Aditya K VocelkaUnited Kingdom2026-07-28Benton, John B Jr NEGOTIATION74Xuxue Feng
1020Octavia Z OldroydAustralia2026-07-22Chemel, James L Cpa QUALIFIED28Amy Elsner
1021Jennifer B MaletUnited Kingdom2026-07-23Feltz Printing Service PROPOSAL78Asiya Javayant
1022Darci P MaletArgentina2026-07-13Chemel, James L Cpa PROPOSAL34Onyama Limba
1023Leon V DarakjyItaly2026-07-20Commercial Press PROPOSAL49Anna Fali
1024Leon M InouyeUnited Kingdom2026-07-09King, Christopher A Esq UNQUALIFIED87Xuxue Feng
1025Mujtaba U RoysterCanada2026-07-30Dorl, James J Esq UNQUALIFIED18Asiya Javayant
1026Arvin S WaycottAustralia2026-07-16Dorl, James J Esq NEGOTIATION20Anna Fali
1027Wickens F WhobreyArgentina2026-07-26Feiner Bros NEGOTIATION10Onyama Limba
1028Emily Z RutaGermany2026-07-06Chanay, Jeffrey A Esq NEGOTIATION11Bernardo Dominic
1029Costa C GauchoItaly2026-07-11Rousseaux, Michael Esq NEW79Ioni Bowcher
1030Chavez N FerenczAustralia2026-07-07Feiner Bros NEGOTIATION90Asiya Javayant
1031Rodrigues G PoquetteBrazil2026-07-19Truhlar And Truhlar Attys PROPOSAL18Bernardo Dominic
1032Leja S StensethBrazil2026-07-06Dorl, James J Esq NEGOTIATION14Xuxue Feng
1033Arvin P BologniaIndia2026-08-04Morlong Associates NEW88Stephen Shaw
1034Ivar A BriddickArgentina2026-07-29Feiner Bros RENEWAL70Amy Elsner
1035Chavez Z RulapaughJapan2026-07-28Chapman, Ross E Esq UNQUALIFIED17Elwin Sharvill
1036Morrow X BowleyCanada2026-07-16Feiner Bros QUALIFIED95Stephen Shaw
1037Ricardo Q SchemmerBrazil2026-07-26Feiner Bros UNQUALIFIED20Ivan Magalhaes
1038Alejandro Q RulapaughIndia2026-07-22Morlong Associates PROPOSAL95Stephen Shaw
1039Juan J VocelkaSpain2026-07-15Buckley Miller Wright NEW39Ivan Magalhaes
1040Salvatore X MacleadCanada2026-07-06Rangoni Of Florence RENEWAL59Ioni Bowcher
1041Izzy Y PaprockiAustralia2026-07-28Chemel, James L Cpa NEW36Onyama Limba
1042Jefferson T FlosiAustralia2026-07-26Truhlar And Truhlar Attys NEW99Asiya Javayant
1043Jefferson B BologniaUnited Kingdom2026-07-28King, Christopher A Esq NEGOTIATION71Elwin Sharvill
1044Morrow W KolmetzArgentina2026-07-22Morlong Associates PROPOSAL63Bernardo Dominic
1045Maria Z ChuiRussia2026-08-01Feiner Bros NEW78Xuxue Feng
1046Ricardo W AmigonAustralia2026-08-02Feiner Bros NEGOTIATION59Onyama Limba
1047Mayumi S RoysterIndia2026-07-17Feiner Bros NEGOTIATION58Asiya Javayant
1048Rodrigues O DarakjyFrance2026-07-10Truhlar And Truhlar Attys RENEWAL70Xuxue Feng
1049Johnson V StensethIndia2026-08-02Printing Dimensions UNQUALIFIED33Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin E CaldareraSpainBernardo Dominic UNQUALIFIED
Ricardo U MarrierFranceStephen Shaw QUALIFIED
Aditya W DoeIndiaXuxue Feng NEGOTIATION
Cody X NestleIndiaStephen Shaw QUALIFIED
Julie U AmigonRussiaIoni Bowcher NEW
Stacey U ShinkoGermanyAsiya Javayant NEW
Kadeem A FlosiJapanAmy Elsner NEGOTIATION
Stacey X WieserAustraliaOnyama Limba NEW
Mujtaba M SergiRussiaAnna Fali RENEWAL
Munro A OldroydCanadaAsiya Javayant PROPOSAL
Deepesh N DarakjyCanadaAmy Elsner QUALIFIED
Greenwood K SchemmerRussiaBernardo Dominic UNQUALIFIED
Wickens M StensethSpainStephen Shaw QUALIFIED
James R SlusarskiIndiaElwin Sharvill UNQUALIFIED
Wickens I KuskoAustraliaAnna Fali QUALIFIED
Kadeem E OldroydFranceStephen Shaw RENEWAL
Mujtaba O FlosiBrazilXuxue Feng NEW
Juan F KolmetzFranceAnna Fali PROPOSAL
Costa L ShinkoFranceXuxue Feng QUALIFIED
Cody D InouyeFranceAnna Fali QUALIFIED
Misaki H RutaSpainIvan Magalhaes PROPOSAL
Rodrigues B BowleyRussiaElwin Sharvill RENEWAL
Tony B NestleFranceIoni Bowcher UNQUALIFIED
Jeanfrancois Q TollnerBrazilElwin Sharvill QUALIFIED
Munro V BologniaUnited KingdomAmy Elsner QUALIFIED
Sinclair T NickaIndiaElwin Sharvill NEW
Deepesh C FigeroaUnited KingdomXuxue Feng NEGOTIATION
Johnson H KuskoAustraliaAnna Fali UNQUALIFIED
Aditya Z RoysterJapanElwin Sharvill PROPOSAL
Costa O VocelkaBrazilIvan Magalhaes PROPOSAL
Ivar S SlusarskiIndiaXuxue Feng RENEWAL
Cody B WhobreyCanadaStephen Shaw NEGOTIATION
Ivar E SaylorsJapanAmy Elsner QUALIFIED
Cody N MarrierCanadaAnna Fali UNQUALIFIED
Jeanfrancois F SergiBrazilAmy Elsner UNQUALIFIED
Juan H KolmetzIndiaElwin Sharvill NEGOTIATION
Ashley M AmigonArgentinaXuxue Feng QUALIFIED
Nicolas M ButtGermanyAsiya Javayant NEGOTIATION
Munro D BologniaAustraliaAnna Fali NEGOTIATION
Julie B VenereArgentinaStephen Shaw RENEWAL
Isabel N OldroydArgentinaAmy Elsner QUALIFIED
Aika E SergiBrazilIoni Bowcher UNQUALIFIED
Emily I SchemmerAustraliaOnyama Limba NEW
James M SaylorsItalyOnyama Limba RENEWAL
Aditya D FollerRussiaIoni Bowcher PROPOSAL
Arvin P StockhamBrazilOnyama Limba NEGOTIATION
Rodrigues W DarakjyFranceIoni Bowcher RENEWAL
Antonio I RoysterBrazilAnna Fali RENEWAL
Kadeem T BologniaGermanyElwin Sharvill PROPOSAL
Mujtaba B GauchoAustraliaAsiya Javayant RENEWAL
Frozen Columns
Name
Greenwood P Garufi
Smith Q Kusko
Leja H Nicka
Leja Y Iturbide
Nicolas I Waycott
Francesco W Chui
Leja D Oldroyd
Sinclair D Malet
Morrow S Malet
Smith H Figeroa
Rodrigues M Slusarski
Aruna B Wieser
Julie K Stockham
Maria S Ferencz
Wickens C Morasca
Munro G Iturbide
Octavia D Caudy
Antonio N Doe
Ivar O Ferencz
Greenwood S Briddick
Mujtaba O Malet
Adams S Waycott
Ricardo S Rulapaugh
Darci K Vocelka
Wickens B Waycott
Izzy V Tollner
Rodrigues E Schemmer
Jeanfrancois K Slusarski
Izzy W Shinko
Juan J Nestle
Mayumi A Whobrey
Rodrigues H Inouye
Tony Z Wieser
Mujtaba N Ferencz
Aika V Sergi
Kaitlin K Amigon
Rodrigues Y Bolognia
Chavez M Malet
Silvio I Venere
Smith K Iturbide
Kaitlin N Nestle
Sinclair N Gillian
Munro P Stockham
Emily W Perin
Faith B Foller
Sinclair M Whobrey
Mujtaba M Caudy
Alejandro K Venere
Murillo Z Malet
Jennifer J Darakjy
IdCountryDate
1000Canada2026-07-10
1001Russia2026-07-19
1002Argentina2026-07-11
1003Brazil2026-08-02
1004France2026-07-31
1005Russia2026-07-18
1006Argentina2026-07-20
1007Germany2026-07-15
1008India2026-07-25
1009Russia2026-07-14
1010Japan2026-07-28
1011Canada2026-07-21
1012Australia2026-07-17
1013Russia2026-07-23
1014Canada2026-07-11
1015Germany2026-08-03
1016Canada2026-07-27
1017Russia2026-07-09
1018Canada2026-07-23
1019United Kingdom2026-08-03
1020Russia2026-07-13
1021Russia2026-07-30
1022India2026-07-21
1023France2026-07-19
1024Spain2026-07-08
1025Germany2026-07-20
1026Russia2026-07-20
1027France2026-07-28
1028India2026-08-02
1029United Kingdom2026-07-08
1030Italy2026-07-28
1031United Kingdom2026-07-22
1032Argentina2026-08-04
1033Argentina2026-08-03
1034Canada2026-07-28
1035Argentina2026-07-28
1036Italy2026-08-01
1037Canada2026-07-12
1038Japan2026-07-29
1039Brazil2026-07-08
1040Brazil2026-08-04
1041France2026-07-29
1042Brazil2026-07-26
1043Germany2026-07-21
1044Russia2026-07-31
1045Germany2026-07-27
1046United Kingdom2026-07-07
1047India2026-07-29
1048Germany2026-07-14
1049India2026-07-24

On-Demand Data

NameIdCountryDate
Deepesh V Oldroyd1000Japan2026-07-14
Deepesh U Bowley1001Spain2026-07-23
Darci O Sergi1002Spain2026-07-15
Jones L Waycott1003Brazil2026-07-27
David I Stockham1004Japan2026-07-24
Aruna E Waycott1005Australia2026-07-21
David N Ferencz1006Argentina2026-07-26
Arvin A Malet1007Brazil2026-07-19
Faith Z Doe1008Italy2026-07-28
Adams C Gillian1009France2026-08-04
Maria R Schemmer1010France2026-07-22
Ashley V Ruta1011Canada2026-07-29
Chavez N Stenseth1012India2026-07-26
Aruna W Butt1013Australia2026-07-06
Isabel O Doe1014Japan2026-07-22
Smith B Campain1015Italy2026-07-26
Antonio Q Rim1016Italy2026-07-06
Misaki S Poquette1017Italy2026-07-25
Jefferson T Stockham1018Australia2026-08-04
Salvatore H Amigon1019Argentina2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood Q MorascaJapanOnyama Limba QUALIFIED
Chavez F SaylorsJapanElwin Sharvill PROPOSAL
Silvio U RoysterRussiaStephen Shaw NEGOTIATION
Kaitlin E WieserItalyStephen Shaw UNQUALIFIED
Sinclair B SaylorsItalyOnyama Limba QUALIFIED
Jones W RimRussiaElwin Sharvill QUALIFIED
Isabel L PoquetteJapanAsiya Javayant PROPOSAL
Munro H TollnerRussiaAsiya Javayant PROPOSAL
Jones D GarufiRussiaAsiya Javayant NEW
Julie W VenereSpainIvan Magalhaes NEW
Arvin O StockhamItalyIvan Magalhaes NEW
Wickens E RulapaughRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois N GauchoItalyBernardo Dominic UNQUALIFIED
Juan W GauchoRussiaIvan Magalhaes UNQUALIFIED
Ashley V AmigonRussiaIoni Bowcher NEGOTIATION
Claire O BowleyBrazilAnna Fali PROPOSAL
Julie K BriddickUnited KingdomAsiya Javayant QUALIFIED
Antonio S PaprockiIndiaIoni Bowcher RENEWAL
Francesco T RulapaughRussiaAsiya Javayant NEGOTIATION
Mayumi O DilliardSpainXuxue Feng UNQUALIFIED
Jeanfrancois A VenereAustraliaIvan Magalhaes UNQUALIFIED
Ricardo T BowleySpainBernardo Dominic NEW
David B KolmetzJapanElwin Sharvill NEGOTIATION
Arvin P StensethArgentinaOnyama Limba RENEWAL
Mayumi J DarakjyItalyAsiya Javayant NEW
Kadeem Q ShinkoUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois D MaletAustraliaElwin Sharvill QUALIFIED
Clifford W GarufiIndiaAmy Elsner PROPOSAL
Claire E RoysterUnited KingdomAsiya Javayant PROPOSAL
Arvin A StockhamFranceOnyama Limba PROPOSAL
Ashley Y MacleadRussiaOnyama Limba NEW
Alejandro V KolmetzFranceOnyama Limba QUALIFIED
Deepesh W FerenczArgentinaBernardo Dominic QUALIFIED
Aruna F FollerIndiaXuxue Feng RENEWAL
Claire K FigeroaGermanyOnyama Limba UNQUALIFIED
Claire E IturbideSpainAmy Elsner PROPOSAL
Juan W ChuiGermanyStephen Shaw QUALIFIED
Kadeem I SergiCanadaBernardo Dominic NEGOTIATION
Mayumi E InouyeBrazilAsiya Javayant QUALIFIED
Silvio M SchemmerAustraliaElwin Sharvill 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>