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
Claire Q VocelkaAustraliaElwin Sharvill PROPOSAL
Maria U GarufiFranceAnna Fali NEGOTIATION
Greenwood X ButtSpainIvan Magalhaes RENEWAL
Antonio W AlbaresUnited KingdomXuxue Feng RENEWAL
Jeanfrancois F VocelkaFranceAnna Fali NEGOTIATION
Mayumi D MarrierItalyAnna Fali UNQUALIFIED
Kadeem E InouyeFranceAmy Elsner NEW
Mujtaba I FollerAustraliaBernardo Dominic PROPOSAL
Isabel P FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Smith Z NestleAustraliaElwin Sharvill QUALIFIED
Maria F CampainJapanXuxue Feng PROPOSAL
Kaitlin T KuskoArgentinaAmy Elsner NEGOTIATION
Francesco M OstroskyFranceIvan Magalhaes RENEWAL
Juan B NestleJapanOnyama Limba UNQUALIFIED
David N SchemmerSpainBernardo Dominic RENEWAL
Chavez V StockhamFranceOnyama Limba UNQUALIFIED
Aika R RulapaughFranceAsiya Javayant QUALIFIED
Adams K CaldareraArgentinaAmy Elsner PROPOSAL
Aditya W AlbaresAustraliaAnna Fali NEGOTIATION
Juan C FollerArgentinaStephen Shaw NEW
Octavia W BologniaAustraliaXuxue Feng QUALIFIED
Claire W InouyeBrazilIvan Magalhaes UNQUALIFIED
Ashley B FerenczIndiaOnyama Limba NEGOTIATION
Aruna G FerenczArgentinaXuxue Feng UNQUALIFIED
Jefferson J MaletRussiaXuxue Feng RENEWAL
Rodrigues C PoquetteSpainIoni Bowcher RENEWAL
Cody G BowleyGermanyAmy Elsner QUALIFIED
Morrow A WaycottFranceIvan Magalhaes RENEWAL
Jennifer E CaldareraSpainIvan Magalhaes QUALIFIED
Adams L RoysterFranceElwin Sharvill NEGOTIATION
Arvin D PaprockiFranceOnyama Limba NEW
Darci G GlickArgentinaIvan Magalhaes RENEWAL
Mujtaba X PaprockiRussiaOnyama Limba QUALIFIED
Ashley B RimJapanXuxue Feng PROPOSAL
Greenwood V FigeroaGermanyIvan Magalhaes NEW
Ivar Y SchemmerRussiaAmy Elsner NEGOTIATION
Ashley T NickaFranceAsiya Javayant NEGOTIATION
Jones C GillianIndiaIoni Bowcher UNQUALIFIED
Smith R BologniaIndiaOnyama Limba RENEWAL
Leon J DoeItalyAnna Fali NEGOTIATION
Murillo R BriddickCanadaAsiya Javayant NEGOTIATION
Clifford Q RoysterCanadaAsiya Javayant PROPOSAL
Misaki I SergiCanadaXuxue Feng QUALIFIED
Juan V MaletItalyXuxue Feng NEW
Adams X AmigonGermanyIvan Magalhaes RENEWAL
Aditya Q InouyeCanadaOnyama Limba RENEWAL
Arvin L RutaFranceAnna Fali NEW
Deepesh T OldroydUnited KingdomElwin Sharvill NEW
Wickens N KuskoBrazilIoni Bowcher NEGOTIATION
Adams I IturbideUnited KingdomStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens Q AmigonUnited KingdomAmy Elsner PROPOSAL
Maria S ButtGermanyAnna Fali NEGOTIATION
Johnson R AlbaresSpainXuxue Feng NEW
Clifford H WaycottFranceIoni Bowcher PROPOSAL
Chavez M VenereFranceElwin Sharvill PROPOSAL
Greenwood X CaldareraAustraliaBernardo Dominic QUALIFIED
Costa I ShinkoBrazilAnna Fali NEGOTIATION
Clifford Z DarakjyArgentinaAsiya Javayant NEW
Adams J CaldareraBrazilAnna Fali NEGOTIATION
Adams W MarrierBrazilAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna S MaletSpain2025-06-05Chemel, James L Cpa UNQUALIFIED98Asiya Javayant
1001Cody L VenereAustralia2025-06-13Chapman, Ross E Esq NEW64Amy Elsner
1002Murillo U ChuiGermany2025-05-25Benton, John B Jr UNQUALIFIED44Onyama Limba
1003Faith M FigeroaCanada2025-06-07Chemel, James L Cpa NEW55Asiya Javayant
1004Ricardo Z RoysterIndia2025-05-17Feltz Printing Service UNQUALIFIED74Elwin Sharvill
1005Maria V StensethArgentina2025-05-23Chanay, Jeffrey A Esq NEGOTIATION73Bernardo Dominic
1006Deepesh R RimItaly2025-06-09Printing Dimensions PROPOSAL51Onyama Limba
1007Cody V FigeroaIndia2025-05-19Benton, John B Jr QUALIFIED96Anna Fali
1008Tony M GauchoCanada2025-05-29Commercial Press RENEWAL98Onyama Limba
1009Aika P ShinkoUnited Kingdom2025-05-28Feiner Bros UNQUALIFIED33Bernardo Dominic
1010Chavez F GillianFrance2025-06-12Dorl, James J Esq PROPOSAL68Asiya Javayant
1011Octavia B IturbideJapan2025-05-29Printing Dimensions PROPOSAL66Ioni Bowcher
1012Antonio C ChuiFrance2025-06-11Dorl, James J Esq QUALIFIED65Ioni Bowcher
1013Juan T CaudyIndia2025-06-11Commercial Press RENEWAL95Bernardo Dominic
1014Munro S DarakjyRussia2025-06-04Feltz Printing Service NEGOTIATION51Ivan Magalhaes
1015Ricardo K KolmetzArgentina2025-06-06Dorl, James J Esq NEW9Xuxue Feng
1016Jennifer Y FlosiUnited Kingdom2025-05-24Chapman, Ross E Esq NEGOTIATION60Stephen Shaw
1017Costa L PoquetteBrazil2025-06-12Printing Dimensions NEGOTIATION37Bernardo Dominic
1018Silvio X NickaAustralia2025-05-17Buckley Miller Wright QUALIFIED79Elwin Sharvill
1019Rodrigues K DarakjyIndia2025-05-30Rangoni Of Florence RENEWAL27Anna Fali
1020Ivar C StockhamFrance2025-06-05Morlong Associates RENEWAL60Elwin Sharvill
1021Leja F OstroskyIndia2025-05-16Truhlar And Truhlar Attys UNQUALIFIED35Amy Elsner
1022Emily G IturbideItaly2025-05-27Rousseaux, Michael Esq RENEWAL6Stephen Shaw
1023Kaitlin F RoysterIndia2025-06-11Benton, John B Jr PROPOSAL29Anna Fali
1024Misaki X NestleBrazil2025-06-03King, Christopher A Esq PROPOSAL72Bernardo Dominic
1025Octavia Y ButtUnited Kingdom2025-06-03Buckley Miller Wright NEW65Asiya Javayant
1026Mujtaba Q ButtGermany2025-05-31Chemel, James L Cpa UNQUALIFIED59Anna Fali
1027Aditya B MarrierRussia2025-05-20Buckley Miller Wright NEGOTIATION69Stephen Shaw
1028Johnson G SaylorsSpain2025-06-04King, Christopher A Esq QUALIFIED60Elwin Sharvill
1029Salvatore J IturbideCanada2025-05-20Buckley Miller Wright NEW38Bernardo Dominic
1030Kaitlin O SaylorsAustralia2025-05-25Morlong Associates QUALIFIED60Ivan Magalhaes
1031Deepesh Z VocelkaCanada2025-06-11Chemel, James L Cpa RENEWAL48Onyama Limba
1032Murillo P CaldareraBrazil2025-05-22Feiner Bros PROPOSAL65Stephen Shaw
1033Aruna I AmigonUnited Kingdom2025-06-01Dorl, James J Esq RENEWAL51Bernardo Dominic
1034Stacey D GauchoJapan2025-06-06Dorl, James J Esq NEGOTIATION38Anna Fali
1035Adams O WieserBrazil2025-05-21Chapman, Ross E Esq QUALIFIED92Asiya Javayant
1036Maisha B NestleBrazil2025-05-22Chemel, James L Cpa RENEWAL18Elwin Sharvill
1037James P WaycottJapan2025-05-24Rangoni Of Florence RENEWAL52Ivan Magalhaes
1038Adams R PerinArgentina2025-06-12Chanay, Jeffrey A Esq UNQUALIFIED6Anna Fali
1039David J MaletFrance2025-05-26Benton, John B Jr QUALIFIED67Ivan Magalhaes
1040Maria U GillianGermany2025-06-14Truhlar And Truhlar Attys QUALIFIED47Amy Elsner
1041Silvio D MaletJapan2025-06-08Commercial Press NEW9Ioni Bowcher
1042Aika V DilliardIndia2025-06-09Chemel, James L Cpa NEW24Xuxue Feng
1043Clifford Y WaycottSpain2025-05-18Commercial Press PROPOSAL99Ioni Bowcher
1044Sinclair Q SergiBrazil2025-05-30Buckley Miller Wright NEW26Bernardo Dominic
1045Kadeem J SergiFrance2025-06-08Benton, John B Jr UNQUALIFIED41Xuxue Feng
1046Deepesh P ShinkoJapan2025-05-20Benton, John B Jr NEW82Asiya Javayant
1047Kadeem N ChuiSpain2025-05-30Rousseaux, Michael Esq NEGOTIATION81Elwin Sharvill
1048Costa X FigeroaGermany2025-06-11Chanay, Jeffrey A Esq QUALIFIED26Anna Fali
1049Mujtaba S ButtJapan2025-05-19Buckley Miller Wright QUALIFIED71Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Alejandro O RimItalyAmy Elsner NEW
Leon P CampainGermanyBernardo Dominic PROPOSAL
Misaki B MarrierJapanAsiya Javayant UNQUALIFIED
Kaitlin E RimIndiaIoni Bowcher NEW
Sinclair F RoysterSpainXuxue Feng NEGOTIATION
Aditya K PerinArgentinaAmy Elsner UNQUALIFIED
Francesco X DoeFranceAmy Elsner QUALIFIED
Tony H FigeroaGermanyAsiya Javayant UNQUALIFIED
Juan J ButtArgentinaIoni Bowcher NEW
Rodrigues D InouyeAustraliaAmy Elsner PROPOSAL
Aika I OstroskyRussiaOnyama Limba PROPOSAL
Kaitlin Q CaudySpainXuxue Feng RENEWAL
Ashley Q GauchoArgentinaXuxue Feng PROPOSAL
Johnson B DarakjySpainOnyama Limba PROPOSAL
Johnson C GlickRussiaAnna Fali NEW
James C DarakjyGermanyIoni Bowcher PROPOSAL
Morrow Z RimSpainIoni Bowcher RENEWAL
Johnson K CampainRussiaAmy Elsner UNQUALIFIED
Greenwood T FollerUnited KingdomXuxue Feng NEGOTIATION
Maria Y MaletBrazilStephen Shaw PROPOSAL
Jeanfrancois B WaycottRussiaIoni Bowcher RENEWAL
Jefferson V PerinIndiaStephen Shaw NEW
Arvin N RulapaughBrazilOnyama Limba QUALIFIED
Misaki P AlbaresAustraliaAsiya Javayant UNQUALIFIED
Julie C StensethSpainAsiya Javayant RENEWAL
James T StockhamBrazilIvan Magalhaes QUALIFIED
Clifford B FlosiRussiaAnna Fali UNQUALIFIED
Deepesh L DarakjyGermanyAmy Elsner RENEWAL
Jennifer X OldroydUnited KingdomAmy Elsner NEW
Leja X VenereJapanBernardo Dominic UNQUALIFIED
Misaki C VocelkaItalyAsiya Javayant NEGOTIATION
Rodrigues C FlosiBrazilIvan Magalhaes QUALIFIED
Smith T FerenczSpainAmy Elsner RENEWAL
Maria C StensethSpainIvan Magalhaes PROPOSAL
Kaitlin X BologniaAustraliaXuxue Feng NEW
Jefferson Y DarakjyItalyBernardo Dominic NEW
Arvin V OldroydFranceAmy Elsner NEW
Maria S BriddickSpainIoni Bowcher QUALIFIED
Isabel A BologniaAustraliaBernardo Dominic NEW
Jefferson U VocelkaGermanyBernardo Dominic PROPOSAL
Alejandro F NickaJapanXuxue Feng UNQUALIFIED
Mayumi M StockhamArgentinaOnyama Limba RENEWAL
Darci U VocelkaIndiaStephen Shaw QUALIFIED
Costa P PoquetteBrazilAsiya Javayant PROPOSAL
Tony F MarrierSpainBernardo Dominic QUALIFIED
Morrow X NestleIndiaElwin Sharvill NEW
Costa K KolmetzItalyAmy Elsner UNQUALIFIED
Murillo P WieserIndiaOnyama Limba RENEWAL
Ivar W BologniaIndiaXuxue Feng NEW
Jeanfrancois M TollnerIndiaElwin Sharvill RENEWAL
Frozen Columns
Name
Greenwood A Figeroa
Kaitlin G Slusarski
Salvatore H Perin
Cody R Caudy
Johnson Q Stockham
Aika Y Poquette
Nicolas X Kusko
Chavez W Marrier
Chavez V Dilliard
Jennifer I Figeroa
Leja Q Perin
Kadeem A Waycott
Sinclair T Caldarera
Murillo S Nestle
Aditya S Garufi
Costa E Waycott
Ivar Y Stenseth
Leja E Morasca
Sinclair D Chui
Ricardo Y Vocelka
Wickens J Albares
Salvatore S Albares
Kadeem L Ferencz
Faith W Wieser
Isabel B Schemmer
Leja L Rim
Isabel A Caudy
Clifford G Gaucho
James U Morasca
Kaitlin J Ruta
Clifford C Vocelka
Morrow F Vocelka
Clifford P Campain
James U Gaucho
Smith M Campain
Leja D Perin
Aika A Maclead
Izzy O Nestle
Faith S Whobrey
Mujtaba U Schemmer
David R Whobrey
Julie R Flosi
Mayumi A Tollner
Ivar I Paprocki
Juan B Dilliard
Aruna Z Glick
Greenwood M Chui
Leon B Morasca
Sinclair U Wieser
Octavia P Maclead
IdCountryDate
1000Brazil2025-05-28
1001India2025-06-02
1002Australia2025-06-02
1003Russia2025-05-28
1004Japan2025-05-29
1005Russia2025-05-29
1006Italy2025-06-07
1007Brazil2025-05-24
1008Argentina2025-06-11
1009Australia2025-06-09
1010Germany2025-05-29
1011United Kingdom2025-06-14
1012France2025-06-08
1013Australia2025-05-26
1014Canada2025-05-26
1015India2025-05-27
1016India2025-05-26
1017France2025-05-31
1018Japan2025-06-07
1019Spain2025-06-07
1020Russia2025-06-07
1021United Kingdom2025-05-27
1022Brazil2025-06-02
1023Italy2025-06-05
1024Brazil2025-05-23
1025Russia2025-05-17
1026India2025-06-05
1027Argentina2025-05-17
1028India2025-06-03
1029United Kingdom2025-06-08
1030Brazil2025-06-14
1031Russia2025-05-21
1032Italy2025-05-19
1033France2025-05-23
1034Germany2025-06-14
1035Italy2025-06-13
1036Germany2025-06-14
1037Spain2025-05-22
1038Australia2025-05-27
1039Japan2025-06-13
1040France2025-05-16
1041India2025-05-29
1042France2025-05-16
1043India2025-06-05
1044India2025-06-03
1045France2025-05-26
1046France2025-05-31
1047Russia2025-06-13
1048India2025-06-09
1049Russia2025-06-14

On-Demand Data

NameIdCountryDate
Cody O Albares1000Brazil2025-05-30
Stacey S Stenseth1001France2025-05-22
Francesco P Glick1002France2025-05-29
Rodrigues L Butt1003Brazil2025-05-20
Ashley E Glick1004Argentina2025-06-09
Maisha N Nicka1005Russia2025-06-05
Aditya C Sergi1006India2025-05-20
James M Paprocki1007Italy2025-06-08
Nicolas K Glick1008Japan2025-05-22
Leja U Shinko1009Spain2025-05-30
Maisha M Royster1010Canada2025-06-08
Silvio M Stenseth1011Brazil2025-06-05
Mujtaba D Stockham1012India2025-06-06
Johnson G Briddick1013Italy2025-05-22
Jones C Kolmetz1014Russia2025-05-27
Salvatore Q Chui1015Italy2025-05-20
Alejandro L Ferencz1016Canada2025-05-21
Tony O Briddick1017Brazil2025-05-24
Alejandro R Stenseth1018Argentina2025-05-20
Juan I Gillian1019Italy2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood L RimAustraliaIoni Bowcher RENEWAL
Mujtaba J IturbideArgentinaAmy Elsner PROPOSAL
Kaitlin K FerenczAustraliaIvan Magalhaes RENEWAL
Francesco U StockhamSpainAmy Elsner PROPOSAL
Faith G SlusarskiSpainBernardo Dominic PROPOSAL
Jennifer A VenereBrazilElwin Sharvill UNQUALIFIED
Julie P CaudyRussiaOnyama Limba NEGOTIATION
Stacey R RoysterJapanIoni Bowcher NEGOTIATION
Nicolas E WieserFranceAmy Elsner NEW
Adams P DoeGermanyXuxue Feng QUALIFIED
Chavez M SergiIndiaIoni Bowcher UNQUALIFIED
Munro P FerenczSpainOnyama Limba QUALIFIED
Francesco Y WieserItalyIoni Bowcher UNQUALIFIED
Faith G DoeCanadaBernardo Dominic PROPOSAL
Mujtaba G CaudyUnited KingdomOnyama Limba QUALIFIED
Isabel U StensethFranceIoni Bowcher PROPOSAL
Aruna K WieserBrazilIoni Bowcher RENEWAL
Maria S TollnerJapanElwin Sharvill NEW
Munro A CampainJapanIoni Bowcher UNQUALIFIED
Maisha R BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Wickens D KuskoFranceAnna Fali PROPOSAL
Maisha N ShinkoSpainIvan Magalhaes RENEWAL
Juan Y WhobreyFranceAsiya Javayant UNQUALIFIED
Darci F MarrierGermanyStephen Shaw UNQUALIFIED
Octavia K RulapaughCanadaStephen Shaw RENEWAL
Mayumi M WhobreyItalyAmy Elsner QUALIFIED
Nicolas M DilliardAustraliaOnyama Limba UNQUALIFIED
Ivar A OstroskyCanadaAsiya Javayant NEW
Mayumi G StockhamItalyAmy Elsner RENEWAL
Arvin Q RimUnited KingdomIvan Magalhaes NEW
Aditya O PerinItalyIvan Magalhaes PROPOSAL
Kadeem C VenereItalyAmy Elsner UNQUALIFIED
Kaitlin V OstroskyAustraliaElwin Sharvill PROPOSAL
Greenwood N GillianGermanyBernardo Dominic NEW
Juan H StockhamJapanIoni Bowcher NEW
Claire V SlusarskiAustraliaStephen Shaw NEGOTIATION
Jones L MorascaCanadaOnyama Limba QUALIFIED
Leon Y CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Stacey H GarufiAustraliaElwin Sharvill PROPOSAL
Wickens E WhobreyArgentinaIvan Magalhaes 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>