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
Clifford C NestleBrazilBernardo Dominic NEGOTIATION
Kadeem Y GlickAustraliaAsiya Javayant UNQUALIFIED
Julie X WieserItalyAsiya Javayant QUALIFIED
Mayumi X MarrierArgentinaOnyama Limba NEGOTIATION
Kadeem C RimJapanAsiya Javayant PROPOSAL
Aruna Z OstroskyRussiaAmy Elsner NEW
Johnson F StensethFranceXuxue Feng RENEWAL
Misaki F ChuiJapanAsiya Javayant RENEWAL
Kadeem S NestleJapanIvan Magalhaes RENEWAL
Salvatore C AlbaresGermanyAnna Fali NEW
Octavia Y VocelkaAustraliaIvan Magalhaes RENEWAL
Wickens I GauchoFranceAmy Elsner NEW
Morrow Z WhobreyAustraliaAsiya Javayant RENEWAL
Jones W AmigonJapanIvan Magalhaes NEW
Ivar J WhobreyItalyAmy Elsner NEGOTIATION
Johnson O SergiArgentinaOnyama Limba PROPOSAL
Arvin O BowleyCanadaAnna Fali RENEWAL
Jeanfrancois Y BowleyUnited KingdomOnyama Limba NEGOTIATION
Ivar Q IturbideIndiaAsiya Javayant NEW
Maisha L OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Johnson B NestleGermanyXuxue Feng QUALIFIED
Silvio L RutaJapanIvan Magalhaes QUALIFIED
Smith Y InouyeIndiaAsiya Javayant RENEWAL
Aika O SchemmerAustraliaBernardo Dominic RENEWAL
Silvio I VenereUnited KingdomXuxue Feng NEW
David H StensethAustraliaOnyama Limba NEW
Darci R FerenczUnited KingdomXuxue Feng PROPOSAL
Nicolas I StockhamArgentinaOnyama Limba NEW
Rodrigues V NickaIndiaAmy Elsner PROPOSAL
Costa X CampainSpainAsiya Javayant QUALIFIED
Arvin X GauchoCanadaXuxue Feng QUALIFIED
Maria Q DilliardItalyAsiya Javayant NEGOTIATION
Antonio G SchemmerBrazilBernardo Dominic NEGOTIATION
Emily G KolmetzArgentinaAmy Elsner QUALIFIED
Aika D NickaIndiaStephen Shaw UNQUALIFIED
Antonio W SchemmerJapanAmy Elsner UNQUALIFIED
Antonio M ChuiSpainStephen Shaw PROPOSAL
James L WhobreyGermanyElwin Sharvill NEGOTIATION
Ashley Z FigeroaAustraliaElwin Sharvill UNQUALIFIED
Aika Q CaudyAustraliaIoni Bowcher RENEWAL
Mayumi M GauchoAustraliaAsiya Javayant QUALIFIED
Tony S RimAustraliaStephen Shaw QUALIFIED
Ricardo G AmigonAustraliaAnna Fali RENEWAL
Kadeem F FollerArgentinaIvan Magalhaes RENEWAL
Arvin Y MacleadArgentinaAnna Fali PROPOSAL
Leon X BowleySpainIoni Bowcher RENEWAL
Stacey L WieserBrazilOnyama Limba RENEWAL
Aditya P SaylorsSpainBernardo Dominic NEGOTIATION
Ivar A OldroydFranceIvan Magalhaes RENEWAL
Wickens P SaylorsJapanStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Silvio N KuskoIndiaOnyama Limba PROPOSAL
Emily N SchemmerFranceXuxue Feng NEW
Faith P DoeItalyAmy Elsner UNQUALIFIED
Mayumi F PoquetteSpainAmy Elsner NEGOTIATION
Silvio S DarakjyIndiaElwin Sharvill QUALIFIED
Ashley B WieserGermanyOnyama Limba PROPOSAL
Kaitlin V VocelkaArgentinaElwin Sharvill UNQUALIFIED
Maisha R KuskoGermanyAsiya Javayant QUALIFIED
Johnson Y CaldareraGermanyXuxue Feng PROPOSAL
Jeanfrancois Q TollnerAustraliaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony W RimIndia2026-08-11King, Christopher A Esq UNQUALIFIED75Onyama Limba
1001Kadeem X AmigonJapan2026-07-19King, Christopher A Esq PROPOSAL66Onyama Limba
1002Munro H DarakjySpain2026-08-13Feiner Bros QUALIFIED61Bernardo Dominic
1003Ashley O KolmetzJapan2026-08-13Commercial Press QUALIFIED68Asiya Javayant
1004Antonio Q KolmetzRussia2026-08-13Morlong Associates NEW43Stephen Shaw
1005Jones W FigeroaBrazil2026-08-04Dorl, James J Esq NEW88Stephen Shaw
1006David N OldroydArgentina2026-07-30Feiner Bros PROPOSAL52Xuxue Feng
1007Ricardo E RulapaughAustralia2026-08-06Rousseaux, Michael Esq RENEWAL35Asiya Javayant
1008David J FerenczIndia2026-07-18Feiner Bros UNQUALIFIED80Ioni Bowcher
1009Greenwood J NestleJapan2026-08-04Chanay, Jeffrey A Esq PROPOSAL88Asiya Javayant
1010Octavia F ShinkoCanada2026-07-30Feltz Printing Service NEGOTIATION50Ivan Magalhaes
1011David X BowleyAustralia2026-07-26Chemel, James L Cpa PROPOSAL27Elwin Sharvill
1012Clifford P GlickSpain2026-08-02Feiner Bros PROPOSAL75Onyama Limba
1013Jeanfrancois J KolmetzSpain2026-08-02Rangoni Of Florence NEW86Bernardo Dominic
1014Deepesh Y RoysterItaly2026-07-28Rangoni Of Florence NEGOTIATION1Elwin Sharvill
1015Octavia I ButtSpain2026-07-27Feltz Printing Service PROPOSAL87Bernardo Dominic
1016Antonio S SchemmerArgentina2026-07-29Chapman, Ross E Esq RENEWAL42Stephen Shaw
1017Maisha X MarrierFrance2026-08-15King, Christopher A Esq NEGOTIATION9Asiya Javayant
1018Jefferson E IturbideItaly2026-07-19Commercial Press PROPOSAL40Bernardo Dominic
1019Jennifer L BowleyJapan2026-07-31Benton, John B Jr RENEWAL61Ivan Magalhaes
1020Emily I MarrierFrance2026-07-20Truhlar And Truhlar Attys NEW27Xuxue Feng
1021Deepesh B MacleadSpain2026-07-17Rousseaux, Michael Esq UNQUALIFIED39Anna Fali
1022Leja A StensethBrazil2026-07-28Rousseaux, Michael Esq QUALIFIED32Xuxue Feng
1023Deepesh X WieserAustralia2026-07-18Feltz Printing Service NEGOTIATION78Stephen Shaw
1024Sinclair F BriddickFrance2026-07-29Truhlar And Truhlar Attys PROPOSAL93Ivan Magalhaes
1025Maria A SergiFrance2026-07-19Chanay, Jeffrey A Esq PROPOSAL28Ioni Bowcher
1026Kaitlin D PerinJapan2026-07-22Feiner Bros UNQUALIFIED48Elwin Sharvill
1027Rodrigues F BologniaAustralia2026-07-23King, Christopher A Esq PROPOSAL61Bernardo Dominic
1028Leon Q AlbaresCanada2026-07-26Feltz Printing Service NEW11Bernardo Dominic
1029Nicolas Q BologniaArgentina2026-08-12Chemel, James L Cpa RENEWAL82Xuxue Feng
1030Aruna A ButtIndia2026-08-14Chapman, Ross E Esq RENEWAL94Elwin Sharvill
1031Ricardo V CaldareraJapan2026-08-11Truhlar And Truhlar Attys QUALIFIED15Bernardo Dominic
1032Salvatore P NickaAustralia2026-07-21Commercial Press NEW38Xuxue Feng
1033Cody Q GarufiGermany2026-07-23Feiner Bros UNQUALIFIED66Stephen Shaw
1034Adams M DilliardAustralia2026-08-07Feltz Printing Service NEGOTIATION75Xuxue Feng
1035Murillo U NickaGermany2026-08-13Truhlar And Truhlar Attys NEW89Asiya Javayant
1036Ivar A SaylorsIndia2026-07-22Rangoni Of Florence RENEWAL31Amy Elsner
1037Greenwood M MaletIndia2026-08-04Feltz Printing Service QUALIFIED7Xuxue Feng
1038Morrow N CampainArgentina2026-07-29Rousseaux, Michael Esq UNQUALIFIED41Ivan Magalhaes
1039Faith C VocelkaAustralia2026-08-03Rousseaux, Michael Esq UNQUALIFIED46Ioni Bowcher
1040Aditya Y OldroydGermany2026-07-29Chanay, Jeffrey A Esq RENEWAL78Amy Elsner
1041Tony Y SergiUnited Kingdom2026-07-22Dorl, James J Esq QUALIFIED98Xuxue Feng
1042James Q FollerUnited Kingdom2026-07-24Morlong Associates NEGOTIATION80Elwin Sharvill
1043Munro F OldroydCanada2026-07-22Morlong Associates QUALIFIED91Ivan Magalhaes
1044Claire C GillianIndia2026-07-31Rangoni Of Florence NEGOTIATION6Elwin Sharvill
1045Claire K RimSpain2026-08-05Printing Dimensions RENEWAL33Xuxue Feng
1046Ivar G RulapaughIndia2026-08-11Chapman, Ross E Esq RENEWAL35Ivan Magalhaes
1047Ashley X PoquetteCanada2026-08-10King, Christopher A Esq NEGOTIATION32Asiya Javayant
1048Silvio K BowleySpain2026-07-17Truhlar And Truhlar Attys QUALIFIED10Stephen Shaw
1049Maria N ButtIndia2026-07-23Chapman, Ross E Esq NEW80Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Francesco O WaycottCanadaIvan Magalhaes UNQUALIFIED
Francesco T RulapaughItalyElwin Sharvill NEW
Maria D AmigonSpainIoni Bowcher PROPOSAL
Clifford X DoeRussiaStephen Shaw NEW
Stacey X TollnerJapanOnyama Limba NEGOTIATION
Leon J SaylorsSpainXuxue Feng RENEWAL
Sinclair I AlbaresIndiaAnna Fali RENEWAL
Jefferson J AlbaresJapanIoni Bowcher PROPOSAL
Tony Y WhobreyArgentinaBernardo Dominic QUALIFIED
Emily O CaudyCanadaAnna Fali QUALIFIED
Ivar D TollnerArgentinaAsiya Javayant NEW
Greenwood H RimSpainAsiya Javayant RENEWAL
David I BologniaUnited KingdomXuxue Feng PROPOSAL
Aika C PerinSpainAnna Fali NEGOTIATION
Aruna U OldroydUnited KingdomXuxue Feng NEGOTIATION
Salvatore S CaudyJapanIvan Magalhaes QUALIFIED
Adams J BriddickFranceAnna Fali NEGOTIATION
Darci A FigeroaJapanXuxue Feng PROPOSAL
Jones J ShinkoItalyOnyama Limba NEGOTIATION
Izzy W WieserJapanOnyama Limba NEGOTIATION
Arvin V PaprockiGermanyAmy Elsner QUALIFIED
Faith B InouyeArgentinaAsiya Javayant PROPOSAL
Clifford Q StensethItalyAsiya Javayant RENEWAL
James E NickaAustraliaElwin Sharvill UNQUALIFIED
Greenwood F PoquetteJapanIvan Magalhaes PROPOSAL
Morrow O IturbideUnited KingdomAnna Fali UNQUALIFIED
Julie H RulapaughItalyAmy Elsner PROPOSAL
Maisha L TollnerArgentinaAmy Elsner PROPOSAL
Izzy O StensethJapanXuxue Feng NEGOTIATION
Isabel H DarakjyFranceXuxue Feng QUALIFIED
Greenwood P GillianItalyIoni Bowcher QUALIFIED
Maria N NickaArgentinaXuxue Feng UNQUALIFIED
Misaki I RimRussiaElwin Sharvill RENEWAL
Stacey R GarufiBrazilBernardo Dominic NEW
Izzy D IturbideSpainIoni Bowcher UNQUALIFIED
Munro W FlosiGermanyElwin Sharvill PROPOSAL
Juan W DilliardArgentinaXuxue Feng NEW
Juan B GlickIndiaAnna Fali QUALIFIED
Claire A CaudyArgentinaAnna Fali NEW
Francesco M PerinGermanyXuxue Feng QUALIFIED
Alejandro D MarrierJapanAsiya Javayant NEW
Aruna M MorascaSpainElwin Sharvill PROPOSAL
Isabel Y GarufiAustraliaAsiya Javayant PROPOSAL
Maria N VenereArgentinaAmy Elsner NEGOTIATION
Misaki Q RimBrazilAnna Fali NEW
James J CampainGermanyElwin Sharvill NEW
Jeanfrancois H CampainCanadaIvan Magalhaes NEW
Antonio E CaudyFranceAnna Fali UNQUALIFIED
Aruna R WieserUnited KingdomIoni Bowcher NEW
Nicolas S NestleFranceXuxue Feng UNQUALIFIED
Frozen Columns
Name
Kadeem Y Malet
Greenwood Y Slusarski
Silvio A Ruta
Emily M Gillian
Juan I Waycott
Aditya B Doe
Aika Q Doe
Claire V Ferencz
Ivar S Ferencz
Stacey G Marrier
Rodrigues P Campain
Juan S Gaucho
Julie V Chui
Maria T Poquette
Arvin F Schemmer
James V Poquette
Deepesh L Bowley
David K Perin
Leon N Stockham
Emily T Garufi
Julie D Waycott
Jeanfrancois R Inouye
Wickens D Caudy
Maisha P Garufi
Misaki I Figeroa
Ashley E Whobrey
Francesco P Nestle
Johnson Z Maclead
Salvatore J Stockham
Adams Y Sergi
Jefferson T Nicka
Wickens W Garufi
Ashley I Figeroa
Smith S Maclead
Cody X Campain
Leon C Nicka
Ricardo V Morasca
Leja G Stenseth
Silvio Q Rulapaugh
Munro P Paprocki
Adams H Nestle
Costa K Dilliard
Ivar Y Rulapaugh
Maria V Kusko
Octavia S Oldroyd
Kaitlin D Nicka
Antonio X Rulapaugh
Deepesh N Figeroa
Mujtaba T Caudy
Deepesh D Briddick
IdCountryDate
1000France2026-08-12
1001United Kingdom2026-07-26
1002Germany2026-07-27
1003Italy2026-08-07
1004Argentina2026-08-02
1005Canada2026-07-28
1006Argentina2026-08-06
1007Argentina2026-08-03
1008Canada2026-07-27
1009Russia2026-07-28
1010Brazil2026-07-19
1011Brazil2026-07-20
1012Australia2026-07-18
1013France2026-07-30
1014Japan2026-07-24
1015Japan2026-08-10
1016United Kingdom2026-08-15
1017India2026-08-11
1018Italy2026-08-03
1019Argentina2026-07-23
1020India2026-08-10
1021Italy2026-07-20
1022Argentina2026-08-04
1023Brazil2026-07-26
1024India2026-07-17
1025India2026-08-12
1026Russia2026-08-15
1027Germany2026-08-07
1028Brazil2026-07-24
1029Germany2026-07-29
1030France2026-07-24
1031Russia2026-08-01
1032Germany2026-07-30
1033Brazil2026-08-14
1034Spain2026-08-02
1035Canada2026-08-04
1036Italy2026-08-09
1037United Kingdom2026-07-31
1038Japan2026-07-28
1039Russia2026-08-02
1040Australia2026-08-09
1041Canada2026-07-25
1042Germany2026-07-24
1043Brazil2026-07-26
1044Brazil2026-08-01
1045Australia2026-07-22
1046Italy2026-08-06
1047India2026-07-21
1048Spain2026-07-25
1049Japan2026-08-09

On-Demand Data

NameIdCountryDate
Sinclair V Waycott1000Canada2026-08-01
Aditya F Caldarera1001Germany2026-08-04
Salvatore J Ostrosky1002Canada2026-07-31
Ricardo H Gillian1003India2026-07-21
Stacey N Foller1004Italy2026-08-12
Claire L Kolmetz1005Spain2026-07-22
Misaki A Caudy1006Australia2026-07-31
Jeanfrancois V Garufi1007United Kingdom2026-08-09
James A Royster1008Spain2026-07-18
Sinclair A Rulapaugh1009Germany2026-08-14
Murillo V Morasca1010Canada2026-08-09
Mujtaba H Schemmer1011Russia2026-07-20
Leon I Perin1012United Kingdom2026-07-27
Aika Y Saylors1013Japan2026-07-30
Misaki Y Gaucho1014France2026-07-28
Clifford W Garufi1015Japan2026-08-01
Arvin L Flosi1016United Kingdom2026-07-22
Kaitlin N Stockham1017Japan2026-08-12
Arvin C Garufi1018France2026-07-17
Sinclair X Wieser1019Brazil2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo Y BologniaIndiaXuxue Feng UNQUALIFIED
Murillo K MaletJapanElwin Sharvill PROPOSAL
Alejandro D StockhamSpainAmy Elsner UNQUALIFIED
Greenwood J DoeRussiaXuxue Feng UNQUALIFIED
Silvio S RutaUnited KingdomXuxue Feng UNQUALIFIED
Johnson H IturbideFranceAnna Fali NEGOTIATION
Emily L WhobreyCanadaOnyama Limba PROPOSAL
Arvin H FigeroaUnited KingdomElwin Sharvill QUALIFIED
David K StensethJapanBernardo Dominic UNQUALIFIED
Wickens Z MaletCanadaBernardo Dominic NEGOTIATION
Aika D VenereRussiaXuxue Feng RENEWAL
Claire U RutaAustraliaAsiya Javayant PROPOSAL
Sinclair V OldroydAustraliaIvan Magalhaes QUALIFIED
Clifford Z MorascaBrazilIvan Magalhaes NEW
Nicolas S MarrierAustraliaStephen Shaw UNQUALIFIED
Faith C AmigonArgentinaAnna Fali PROPOSAL
Octavia F WaycottCanadaXuxue Feng NEW
Aruna A MaletJapanIvan Magalhaes NEGOTIATION
Aditya N WaycottAustraliaXuxue Feng NEGOTIATION
Wickens Q SaylorsIndiaAmy Elsner NEW
Alejandro S MacleadJapanStephen Shaw UNQUALIFIED
Silvio G SergiUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba Q MorascaRussiaIoni Bowcher QUALIFIED
Juan J GlickItalyIvan Magalhaes UNQUALIFIED
Smith A VocelkaGermanyOnyama Limba QUALIFIED
Jones L BriddickAustraliaStephen Shaw RENEWAL
Costa L AlbaresGermanyStephen Shaw NEW
Wickens V CaudyBrazilStephen Shaw QUALIFIED
James D AmigonBrazilAmy Elsner NEGOTIATION
Stacey S FigeroaAustraliaXuxue Feng NEW
Nicolas L FollerGermanyOnyama Limba NEGOTIATION
Jennifer S MaletAustraliaAmy Elsner RENEWAL
Claire Q FollerRussiaIoni Bowcher QUALIFIED
Aika O StensethSpainAsiya Javayant RENEWAL
Wickens Q BowleyRussiaXuxue Feng QUALIFIED
Julie E FigeroaItalyBernardo Dominic QUALIFIED
Salvatore W DilliardAustraliaBernardo Dominic PROPOSAL
Sinclair P FollerGermanyBernardo Dominic NEW
Julie C OstroskyAustraliaBernardo Dominic PROPOSAL
Smith V AlbaresItalyOnyama Limba QUALIFIED

<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>