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
Smith Y FerenczRussiaAsiya Javayant RENEWAL
Leon X ChuiSpainAnna Fali NEW
Nicolas W VenereGermanyIvan Magalhaes UNQUALIFIED
Francesco I RimBrazilIvan Magalhaes RENEWAL
Jeanfrancois O RimBrazilAmy Elsner RENEWAL
Jeanfrancois W TollnerFranceStephen Shaw NEW
Rodrigues U KolmetzBrazilBernardo Dominic NEW
Greenwood Q PerinIndiaXuxue Feng NEW
Mayumi O FerenczJapanIvan Magalhaes UNQUALIFIED
David Y GarufiRussiaBernardo Dominic PROPOSAL
Misaki X NickaAustraliaStephen Shaw UNQUALIFIED
Adams O AmigonRussiaIoni Bowcher RENEWAL
Aruna T SlusarskiItalyXuxue Feng NEGOTIATION
Juan L RulapaughJapanIoni Bowcher QUALIFIED
Juan Q BologniaGermanyXuxue Feng NEW
Julie V GauchoJapanStephen Shaw NEW
Clifford C SaylorsArgentinaIvan Magalhaes NEGOTIATION
Faith X ButtFranceAmy Elsner UNQUALIFIED
Maria R StensethIndiaStephen Shaw NEW
Izzy H OldroydGermanyElwin Sharvill UNQUALIFIED
Maisha K WieserItalyIoni Bowcher NEGOTIATION
Silvio Z DoeItalyAsiya Javayant RENEWAL
Juan W KuskoRussiaStephen Shaw PROPOSAL
Salvatore B GauchoJapanBernardo Dominic QUALIFIED
Emily D MacleadFranceElwin Sharvill QUALIFIED
Morrow U NestleJapanAmy Elsner NEW
Isabel X PoquetteAustraliaBernardo Dominic RENEWAL
Kaitlin S NickaJapanOnyama Limba NEGOTIATION
Ivar Z CampainFranceXuxue Feng NEW
Juan C FigeroaRussiaIoni Bowcher RENEWAL
Leon V CaldareraCanadaAsiya Javayant NEGOTIATION
Faith V MorascaGermanyAsiya Javayant UNQUALIFIED
Ricardo E WieserArgentinaOnyama Limba UNQUALIFIED
Antonio P SlusarskiAustraliaElwin Sharvill NEGOTIATION
Greenwood R MorascaArgentinaAnna Fali NEGOTIATION
Darci H InouyeFranceXuxue Feng NEW
Maria G AmigonCanadaIoni Bowcher NEGOTIATION
Cody U KolmetzGermanyAmy Elsner NEGOTIATION
Faith P GarufiBrazilIoni Bowcher NEW
Ashley U FigeroaItalyAsiya Javayant RENEWAL
David L MaletItalyOnyama Limba QUALIFIED
Emily D CampainRussiaBernardo Dominic NEGOTIATION
Kaitlin V GauchoBrazilAnna Fali PROPOSAL
Jennifer X TollnerArgentinaIvan Magalhaes UNQUALIFIED
Julie T DarakjyCanadaXuxue Feng RENEWAL
Morrow W OldroydGermanyElwin Sharvill PROPOSAL
Mayumi J BologniaItalyIoni Bowcher NEW
Alejandro K BologniaUnited KingdomElwin Sharvill RENEWAL
Darci V BowleyJapanElwin Sharvill QUALIFIED
Stacey Z MacleadCanadaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan O GauchoCanadaXuxue Feng QUALIFIED
Silvio T RulapaughArgentinaBernardo Dominic PROPOSAL
Maisha B CampainSpainAnna Fali NEW
Clifford U VocelkaArgentinaAnna Fali NEW
Costa K FigeroaGermanyStephen Shaw NEGOTIATION
Claire I GlickCanadaOnyama Limba NEGOTIATION
Kadeem Y FerenczCanadaAmy Elsner UNQUALIFIED
Aika S StensethFranceAnna Fali NEW
Izzy T OldroydIndiaElwin Sharvill PROPOSAL
Faith U RoysterIndiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio X MacleadIndia2026-06-22Printing Dimensions RENEWAL38Bernardo Dominic
1001Antonio V VenereFrance2026-06-11Feiner Bros PROPOSAL61Asiya Javayant
1002Maisha T RulapaughFrance2026-06-16Feltz Printing Service NEGOTIATION54Xuxue Feng
1003Salvatore C RimUnited Kingdom2026-06-14King, Christopher A Esq NEGOTIATION99Anna Fali
1004Tony F BowleyIndia2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED52Amy Elsner
1005Chavez C OldroydSpain2026-07-03Dorl, James J Esq RENEWAL32Stephen Shaw
1006Costa H OstroskyAustralia2026-06-28Benton, John B Jr PROPOSAL61Xuxue Feng
1007Maisha J DarakjyGermany2026-07-08Buckley Miller Wright QUALIFIED57Stephen Shaw
1008Jeanfrancois Z RulapaughArgentina2026-06-26King, Christopher A Esq NEW59Amy Elsner
1009Rodrigues T ChuiGermany2026-06-14Commercial Press RENEWAL44Ioni Bowcher
1010Sinclair B BologniaRussia2026-07-05Morlong Associates QUALIFIED62Ioni Bowcher
1011Leja S ShinkoCanada2026-07-06Rangoni Of Florence NEW26Ivan Magalhaes
1012Jones I IturbideCanada2026-06-23Commercial Press UNQUALIFIED58Onyama Limba
1013Octavia X FigeroaItaly2026-07-08King, Christopher A Esq RENEWAL29Anna Fali
1014Maria V CaldareraUnited Kingdom2026-07-02Morlong Associates RENEWAL68Amy Elsner
1015Wickens N IturbideItaly2026-06-11Commercial Press RENEWAL37Elwin Sharvill
1016David J KolmetzUnited Kingdom2026-07-07Feltz Printing Service NEGOTIATION18Elwin Sharvill
1017Claire T RulapaughSpain2026-07-03Chanay, Jeffrey A Esq NEW5Ivan Magalhaes
1018Mayumi Y AlbaresUnited Kingdom2026-06-23Printing Dimensions PROPOSAL11Xuxue Feng
1019Nicolas J DoeUnited Kingdom2026-06-25Dorl, James J Esq RENEWAL62Ioni Bowcher
1020Juan H RoysterRussia2026-06-21Chanay, Jeffrey A Esq NEW37Ioni Bowcher
1021Izzy G RutaSpain2026-06-13King, Christopher A Esq UNQUALIFIED29Stephen Shaw
1022Arvin C NestleIndia2026-06-18Rangoni Of Florence PROPOSAL1Asiya Javayant
1023Mujtaba M DilliardGermany2026-07-08King, Christopher A Esq RENEWAL1Ioni Bowcher
1024Mayumi C RimRussia2026-06-14Chanay, Jeffrey A Esq PROPOSAL26Ivan Magalhaes
1025Leon Z StockhamJapan2026-06-29Rangoni Of Florence RENEWAL49Stephen Shaw
1026Ashley H InouyeFrance2026-07-04Buckley Miller Wright NEW7Elwin Sharvill
1027Greenwood O ChuiAustralia2026-06-24Chanay, Jeffrey A Esq QUALIFIED62Ivan Magalhaes
1028Emily C DilliardAustralia2026-07-09Chanay, Jeffrey A Esq QUALIFIED91Asiya Javayant
1029Jefferson B CaudyGermany2026-06-15Rangoni Of Florence NEGOTIATION73Xuxue Feng
1030Murillo Z NickaJapan2026-06-30Benton, John B Jr NEW53Onyama Limba
1031David O RutaArgentina2026-06-15Chapman, Ross E Esq UNQUALIFIED26Asiya Javayant
1032Emily F PoquetteItaly2026-06-21Benton, John B Jr NEGOTIATION64Elwin Sharvill
1033Emily T RutaBrazil2026-07-06Benton, John B Jr NEGOTIATION68Xuxue Feng
1034Ivar K TollnerSpain2026-07-05Rangoni Of Florence NEW69Ivan Magalhaes
1035Tony R CaldareraUnited Kingdom2026-06-16Feiner Bros NEW87Anna Fali
1036Leon Y ShinkoUnited Kingdom2026-07-01Feltz Printing Service QUALIFIED39Ioni Bowcher
1037Morrow Q SergiAustralia2026-07-07Buckley Miller Wright NEW28Bernardo Dominic
1038Ivar D ChuiBrazil2026-06-23Chanay, Jeffrey A Esq QUALIFIED80Amy Elsner
1039Tony Y StockhamGermany2026-07-06Rousseaux, Michael Esq RENEWAL66Asiya Javayant
1040Kadeem I FollerJapan2026-06-10Commercial Press UNQUALIFIED72Elwin Sharvill
1041Mujtaba G FlosiBrazil2026-06-18Morlong Associates UNQUALIFIED10Stephen Shaw
1042Leon S OldroydItaly2026-06-29King, Christopher A Esq NEGOTIATION91Elwin Sharvill
1043Maisha I WaycottJapan2026-07-03Morlong Associates PROPOSAL34Elwin Sharvill
1044Greenwood N StockhamCanada2026-06-17Feiner Bros QUALIFIED68Bernardo Dominic
1045Clifford C RimJapan2026-07-08Chapman, Ross E Esq RENEWAL48Anna Fali
1046Antonio I GarufiArgentina2026-07-02Chemel, James L Cpa UNQUALIFIED54Stephen Shaw
1047Aika E FigeroaIndia2026-07-05Feltz Printing Service PROPOSAL31Ioni Bowcher
1048Julie V KuskoFrance2026-06-14Rousseaux, Michael Esq UNQUALIFIED40Ivan Magalhaes
1049Juan I GlickGermany2026-06-29Feiner Bros NEGOTIATION69Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Greenwood C NestleIndiaElwin Sharvill RENEWAL
Chavez X BriddickBrazilIoni Bowcher PROPOSAL
Smith V PerinFranceAsiya Javayant UNQUALIFIED
Jefferson S GarufiItalyElwin Sharvill NEGOTIATION
Greenwood V VenereBrazilAsiya Javayant PROPOSAL
Alejandro B BriddickJapanAnna Fali UNQUALIFIED
Aika K KolmetzAustraliaBernardo Dominic RENEWAL
Deepesh J StockhamRussiaBernardo Dominic NEW
Juan S BologniaSpainIoni Bowcher RENEWAL
Ricardo Q ButtBrazilElwin Sharvill UNQUALIFIED
Isabel H DilliardRussiaBernardo Dominic PROPOSAL
Silvio T NestleItalyAnna Fali QUALIFIED
Salvatore F RulapaughRussiaAnna Fali UNQUALIFIED
Juan E KolmetzRussiaAmy Elsner PROPOSAL
Juan J DarakjyCanadaXuxue Feng UNQUALIFIED
Cody J FlosiBrazilAsiya Javayant QUALIFIED
Aika Q AlbaresRussiaBernardo Dominic UNQUALIFIED
Ricardo S FerenczIndiaXuxue Feng RENEWAL
Ricardo H MaletAustraliaStephen Shaw UNQUALIFIED
Leja P InouyeGermanyIoni Bowcher RENEWAL
Leon Q BriddickSpainIoni Bowcher UNQUALIFIED
Claire D KolmetzGermanyBernardo Dominic PROPOSAL
Wickens E CaldareraGermanyAnna Fali PROPOSAL
Clifford K StockhamAustraliaAmy Elsner UNQUALIFIED
Silvio L ChuiArgentinaAmy Elsner QUALIFIED
Ashley X GillianGermanyElwin Sharvill UNQUALIFIED
Johnson T PerinSpainAnna Fali NEW
Kaitlin O KolmetzCanadaElwin Sharvill NEGOTIATION
Wickens K GarufiFranceIvan Magalhaes NEW
Smith W BowleyRussiaElwin Sharvill UNQUALIFIED
Juan B WhobreyCanadaAnna Fali NEW
Leja V RoysterRussiaAnna Fali PROPOSAL
Arvin L MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Aika V WieserJapanElwin Sharvill RENEWAL
Juan N SergiAustraliaElwin Sharvill NEW
James D DilliardSpainOnyama Limba RENEWAL
Mayumi M MarrierFranceAsiya Javayant RENEWAL
Leon X WaycottSpainStephen Shaw NEGOTIATION
Julie N MacleadBrazilIoni Bowcher NEGOTIATION
Jones E StensethFranceOnyama Limba RENEWAL
Claire U NickaIndiaBernardo Dominic NEGOTIATION
Alejandro N AmigonIndiaIoni Bowcher RENEWAL
Clifford B AlbaresAustraliaBernardo Dominic RENEWAL
Faith E PaprockiArgentinaStephen Shaw RENEWAL
David G FollerIndiaAmy Elsner UNQUALIFIED
Ricardo C VenereAustraliaIvan Magalhaes PROPOSAL
Murillo P SaylorsItalyOnyama Limba UNQUALIFIED
Rodrigues J PerinRussiaIvan Magalhaes UNQUALIFIED
Kadeem R OstroskyAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois M FollerUnited KingdomBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Maria H Ferencz
Antonio R Kolmetz
Misaki N Sergi
James N Figeroa
Chavez H Inouye
Ricardo W Doe
Johnson S Albares
Claire C Kolmetz
Claire F Whobrey
Octavia S Marrier
Ivar C Darakjy
Tony X Chui
Ashley B Bolognia
Silvio B Saylors
Deepesh Z Figeroa
Isabel V Kolmetz
Misaki H Marrier
Johnson B Rim
Clifford G Rim
Aruna X Marrier
Nicolas O Flosi
Ricardo B Darakjy
Mayumi W Shinko
Ricardo X Darakjy
Stacey V Bowley
Aika K Tollner
Alejandro A Campain
Costa P Morasca
Rodrigues O Albares
Rodrigues T Iturbide
Leon S Poquette
Wickens Z Saylors
Mujtaba K Gillian
Isabel P Ostrosky
Ashley S Malet
Faith I Foller
Stacey E Sergi
Jefferson R Amigon
Stacey V Butt
Aruna V Stenseth
Octavia K Maclead
Kadeem E Vocelka
Claire Y Campain
Mujtaba F Amigon
Smith Y Royster
Misaki L Marrier
Claire P Malet
Maria O Nestle
Jefferson X Gaucho
Rodrigues A Sergi
IdCountryDate
1000India2026-06-18
1001India2026-06-27
1002Brazil2026-07-01
1003Canada2026-07-05
1004India2026-06-19
1005Argentina2026-07-01
1006Italy2026-06-11
1007Japan2026-07-07
1008Italy2026-07-06
1009Spain2026-06-19
1010Brazil2026-06-22
1011Germany2026-07-07
1012Italy2026-06-11
1013United Kingdom2026-06-17
1014Argentina2026-07-01
1015Japan2026-07-08
1016India2026-06-20
1017Italy2026-06-21
1018France2026-06-29
1019Australia2026-07-09
1020France2026-07-04
1021Canada2026-06-22
1022Brazil2026-06-30
1023Canada2026-06-28
1024Canada2026-06-29
1025Canada2026-06-18
1026United Kingdom2026-07-09
1027United Kingdom2026-06-13
1028Canada2026-06-24
1029India2026-07-03
1030Italy2026-07-09
1031India2026-07-01
1032France2026-07-09
1033Canada2026-06-23
1034Spain2026-07-07
1035Australia2026-06-27
1036India2026-06-25
1037Spain2026-07-06
1038Australia2026-06-22
1039Australia2026-06-29
1040Italy2026-07-03
1041Italy2026-06-30
1042Russia2026-06-20
1043Brazil2026-06-30
1044United Kingdom2026-06-22
1045Spain2026-06-19
1046France2026-06-18
1047United Kingdom2026-07-09
1048Australia2026-07-05
1049Japan2026-06-24

On-Demand Data

NameIdCountryDate
Aditya W Rulapaugh1000Brazil2026-06-12
Claire G Albares1001France2026-06-17
Darci Q Wieser1002Japan2026-06-29
Jennifer W Stenseth1003France2026-07-03
Adams T Royster1004United Kingdom2026-06-20
Juan D Perin1005Russia2026-06-22
David H Gillian1006Canada2026-06-17
Antonio N Bowley1007Germany2026-06-16
Murillo L Ostrosky1008Russia2026-06-10
Johnson O Foller1009Germany2026-06-12
Costa B Vocelka1010Japan2026-06-12
Deepesh E Malet1011United Kingdom2026-06-13
Jeanfrancois S Vocelka1012Japan2026-06-16
James V Royster1013Argentina2026-07-09
Kaitlin R Rulapaugh1014United Kingdom2026-07-09
Silvio F Gillian1015Spain2026-06-11
Munro I Whobrey1016Brazil2026-06-20
Francesco F Inouye1017France2026-06-21
Chavez U Caldarera1018Germany2026-06-11
Mujtaba D Schemmer1019Japan2026-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco P FlosiIndiaBernardo Dominic UNQUALIFIED
Costa B GarufiFranceElwin Sharvill QUALIFIED
Morrow J CampainBrazilElwin Sharvill NEW
Aika D ButtRussiaIvan Magalhaes PROPOSAL
Antonio I BowleyBrazilStephen Shaw QUALIFIED
Alejandro V WieserCanadaElwin Sharvill RENEWAL
James N DilliardFranceIvan Magalhaes UNQUALIFIED
Salvatore E OstroskyUnited KingdomXuxue Feng PROPOSAL
Morrow D CaudyUnited KingdomBernardo Dominic QUALIFIED
Darci V AmigonBrazilIoni Bowcher QUALIFIED
Emily K GillianIndiaAsiya Javayant RENEWAL
James K DarakjyRussiaElwin Sharvill UNQUALIFIED
Chavez R StensethBrazilAnna Fali RENEWAL
Juan O PerinSpainAmy Elsner NEW
Aika Q PaprockiIndiaIoni Bowcher QUALIFIED
Faith O InouyeAustraliaStephen Shaw NEW
Alejandro N ButtArgentinaBernardo Dominic NEW
Silvio V GillianRussiaIvan Magalhaes RENEWAL
Octavia S SchemmerArgentinaIoni Bowcher RENEWAL
Mujtaba H IturbideItalyXuxue Feng NEGOTIATION
Mayumi B MacleadCanadaAmy Elsner PROPOSAL
Jones Z MaletArgentinaIoni Bowcher RENEWAL
Jeanfrancois B MaletItalyAsiya Javayant QUALIFIED
Darci B SlusarskiSpainBernardo Dominic UNQUALIFIED
Ivar J WaycottAustraliaIoni Bowcher NEGOTIATION
Francesco Y PoquetteArgentinaXuxue Feng PROPOSAL
Wickens K CaldareraIndiaAmy Elsner NEW
Leja Z RoysterCanadaIvan Magalhaes NEGOTIATION
Maisha T MacleadSpainAmy Elsner RENEWAL
Smith U PaprockiUnited KingdomAnna Fali UNQUALIFIED
Kadeem A MarrierSpainIoni Bowcher PROPOSAL
Johnson T SchemmerIndiaOnyama Limba NEGOTIATION
Tony X VocelkaGermanyBernardo Dominic RENEWAL
James S MaletAustraliaIoni Bowcher NEGOTIATION
Chavez Z WhobreyJapanAmy Elsner PROPOSAL
Aika A GauchoBrazilOnyama Limba QUALIFIED
Adams J BowleyIndiaStephen Shaw UNQUALIFIED
Jones A SergiBrazilIvan Magalhaes RENEWAL
Izzy E RutaRussiaElwin Sharvill NEGOTIATION
Aruna B RutaGermanyXuxue Feng 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>