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
Deepesh W OldroydIndiaIvan Magalhaes PROPOSAL
Wickens Y ButtAustraliaBernardo Dominic RENEWAL
Leon U SergiJapanAmy Elsner UNQUALIFIED
Juan X OstroskyBrazilBernardo Dominic NEW
Rodrigues S FollerUnited KingdomAsiya Javayant PROPOSAL
Ivar J ButtArgentinaAsiya Javayant RENEWAL
Murillo F AlbaresSpainAnna Fali QUALIFIED
Antonio M StockhamCanadaElwin Sharvill PROPOSAL
Arvin T IturbideBrazilAnna Fali PROPOSAL
Mayumi N SergiUnited KingdomAnna Fali UNQUALIFIED
Isabel F CampainCanadaXuxue Feng UNQUALIFIED
Jennifer N RulapaughAustraliaOnyama Limba UNQUALIFIED
Adams X StockhamArgentinaStephen Shaw PROPOSAL
Faith B BowleyBrazilBernardo Dominic NEW
Darci X BriddickBrazilOnyama Limba RENEWAL
Silvio F GauchoUnited KingdomAnna Fali NEW
Maria X BologniaItalyXuxue Feng PROPOSAL
Aditya X FlosiGermanyElwin Sharvill NEGOTIATION
Mayumi Q BriddickGermanyOnyama Limba RENEWAL
Tony R VocelkaFranceBernardo Dominic QUALIFIED
Smith N DoeArgentinaElwin Sharvill PROPOSAL
Rodrigues N VenereBrazilOnyama Limba NEGOTIATION
Rodrigues M StockhamFranceAmy Elsner UNQUALIFIED
Jennifer E RutaUnited KingdomElwin Sharvill UNQUALIFIED
Costa V WhobreyGermanyOnyama Limba NEW
Aruna R DarakjyItalyIoni Bowcher RENEWAL
Leja E GauchoItalyElwin Sharvill NEGOTIATION
Jeanfrancois H CaudyUnited KingdomIoni Bowcher NEW
Murillo O AmigonFranceStephen Shaw RENEWAL
Claire Q InouyeSpainBernardo Dominic NEW
Maisha C GillianItalyAmy Elsner QUALIFIED
Tony D CampainCanadaXuxue Feng NEGOTIATION
Mujtaba T CaudyFranceXuxue Feng NEGOTIATION
Jennifer V FigeroaItalyAnna Fali NEW
Julie K AlbaresUnited KingdomOnyama Limba NEGOTIATION
Maisha J KolmetzJapanBernardo Dominic RENEWAL
Jefferson O PoquetteUnited KingdomIvan Magalhaes NEW
Mayumi X FerenczIndiaXuxue Feng QUALIFIED
Mayumi P SaylorsIndiaAmy Elsner RENEWAL
Francesco R RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Ashley A CaudyArgentinaOnyama Limba NEGOTIATION
Emily C SaylorsJapanElwin Sharvill NEGOTIATION
Clifford X MaletCanadaXuxue Feng RENEWAL
Nicolas M NickaGermanyIvan Magalhaes UNQUALIFIED
Mayumi R WaycottSpainStephen Shaw QUALIFIED
Jennifer C DilliardFranceAsiya Javayant UNQUALIFIED
Costa N NestleCanadaAmy Elsner PROPOSAL
Claire C RoysterBrazilOnyama Limba QUALIFIED
Darci Y InouyeBrazilStephen Shaw PROPOSAL
Antonio C KolmetzRussiaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson Q VenereGermanyStephen Shaw NEW
Chavez O MaletCanadaElwin Sharvill PROPOSAL
Maisha Q RulapaughArgentinaIvan Magalhaes NEW
Chavez R OstroskyUnited KingdomAnna Fali QUALIFIED
Antonio V CaldareraGermanyAnna Fali RENEWAL
Silvio P InouyeItalyAnna Fali QUALIFIED
Emily B DilliardArgentinaXuxue Feng RENEWAL
Misaki C OstroskyBrazilAsiya Javayant NEGOTIATION
Jeanfrancois Z AlbaresGermanyAsiya Javayant NEGOTIATION
Rodrigues J RoysterIndiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh V VenereFrance2026-07-21Commercial Press RENEWAL0Asiya Javayant
1001Jones I IturbideCanada2026-07-25Chemel, James L Cpa NEW97Bernardo Dominic
1002Cody O MaletJapan2026-08-19Commercial Press PROPOSAL26Anna Fali
1003Alejandro B WieserArgentina2026-07-26Commercial Press NEW82Onyama Limba
1004Leon W TollnerCanada2026-08-07Printing Dimensions NEW0Amy Elsner
1005Greenwood Q BowleyUnited Kingdom2026-08-18Rangoni Of Florence QUALIFIED72Onyama Limba
1006Claire S PaprockiIndia2026-07-31Printing Dimensions NEW5Ivan Magalhaes
1007Juan H SlusarskiGermany2026-08-15Rousseaux, Michael Esq PROPOSAL2Ivan Magalhaes
1008Darci V SchemmerJapan2026-08-05Feltz Printing Service NEW71Onyama Limba
1009Kaitlin J VocelkaRussia2026-08-06Printing Dimensions NEW0Bernardo Dominic
1010Jeanfrancois W ChuiJapan2026-08-09King, Christopher A Esq RENEWAL11Ivan Magalhaes
1011Izzy F DarakjySpain2026-07-27Chanay, Jeffrey A Esq NEGOTIATION79Anna Fali
1012Wickens Q StockhamArgentina2026-08-13Feiner Bros NEGOTIATION30Elwin Sharvill
1013Murillo V AmigonUnited Kingdom2026-07-24Chemel, James L Cpa NEW36Asiya Javayant
1014Costa S SlusarskiJapan2026-08-13Dorl, James J Esq QUALIFIED32Bernardo Dominic
1015Wickens K BologniaUnited Kingdom2026-08-02Feltz Printing Service QUALIFIED75Asiya Javayant
1016Silvio P CaudyRussia2026-07-30Buckley Miller Wright UNQUALIFIED20Ioni Bowcher
1017Murillo P FerenczBrazil2026-08-16Chemel, James L Cpa UNQUALIFIED8Bernardo Dominic
1018Mujtaba G WhobreySpain2026-08-02Rousseaux, Michael Esq QUALIFIED97Elwin Sharvill
1019Mayumi W CampainBrazil2026-08-19Morlong Associates NEW82Stephen Shaw
1020Arvin I DoeBrazil2026-08-12Rangoni Of Florence NEW17Onyama Limba
1021Stacey B SlusarskiFrance2026-07-28Rousseaux, Michael Esq QUALIFIED34Onyama Limba
1022Misaki R FollerArgentina2026-08-05Chanay, Jeffrey A Esq UNQUALIFIED7Amy Elsner
1023Jefferson G FlosiFrance2026-08-06Chemel, James L Cpa UNQUALIFIED23Xuxue Feng
1024Adams I SergiIndia2026-07-21Chemel, James L Cpa NEGOTIATION95Ivan Magalhaes
1025Cody P IturbideIndia2026-08-10Morlong Associates RENEWAL34Ivan Magalhaes
1026Misaki Y VocelkaArgentina2026-07-23Rangoni Of Florence QUALIFIED71Onyama Limba
1027Rodrigues P DoeBrazil2026-07-30Chemel, James L Cpa UNQUALIFIED90Ivan Magalhaes
1028Wickens Z WieserRussia2026-08-06King, Christopher A Esq PROPOSAL92Elwin Sharvill
1029Salvatore T GillianAustralia2026-07-25Commercial Press PROPOSAL36Xuxue Feng
1030Misaki I RoysterCanada2026-08-08Truhlar And Truhlar Attys NEW53Bernardo Dominic
1031Smith Z MaletUnited Kingdom2026-08-07King, Christopher A Esq QUALIFIED0Xuxue Feng
1032Morrow L MorascaSpain2026-07-28Chemel, James L Cpa RENEWAL30Xuxue Feng
1033Kaitlin N OldroydRussia2026-08-17Commercial Press UNQUALIFIED22Ivan Magalhaes
1034Stacey S PaprockiRussia2026-07-26Chemel, James L Cpa NEW14Elwin Sharvill
1035Silvio N OstroskyGermany2026-08-01Chapman, Ross E Esq UNQUALIFIED96Asiya Javayant
1036Julie V StensethGermany2026-08-10Chanay, Jeffrey A Esq NEGOTIATION7Ivan Magalhaes
1037Jennifer C SchemmerRussia2026-08-16Rangoni Of Florence QUALIFIED90Onyama Limba
1038Stacey V StockhamIndia2026-08-15Feltz Printing Service NEGOTIATION42Onyama Limba
1039Mujtaba R GauchoArgentina2026-07-28Chemel, James L Cpa QUALIFIED27Ioni Bowcher
1040Murillo J FigeroaArgentina2026-08-19Chanay, Jeffrey A Esq QUALIFIED13Xuxue Feng
1041Adams A FigeroaJapan2026-07-22Dorl, James J Esq NEW90Ioni Bowcher
1042Silvio I OstroskyUnited Kingdom2026-08-11Chanay, Jeffrey A Esq QUALIFIED2Ioni Bowcher
1043Julie L CaudyGermany2026-07-30Feiner Bros NEGOTIATION16Anna Fali
1044Wickens K NestleArgentina2026-08-08Feiner Bros PROPOSAL25Anna Fali
1045Misaki O CaldareraArgentina2026-08-04Chapman, Ross E Esq QUALIFIED49Onyama Limba
1046Aika Z GlickArgentina2026-08-01Rangoni Of Florence QUALIFIED33Amy Elsner
1047Clifford B MarrierArgentina2026-08-03Commercial Press NEGOTIATION36Bernardo Dominic
1048Faith N GlickAustralia2026-07-26Rousseaux, Michael Esq PROPOSAL33Xuxue Feng
1049Julie Q WaycottAustralia2026-07-26Chemel, James L Cpa NEGOTIATION62Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Murillo N TollnerCanadaAmy Elsner NEGOTIATION
Antonio L OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Ashley Q BologniaItalyAnna Fali NEGOTIATION
Leja T DoeBrazilAmy Elsner NEW
Salvatore U DarakjyBrazilAnna Fali PROPOSAL
Antonio J FollerSpainBernardo Dominic UNQUALIFIED
Mayumi I CaudyCanadaAnna Fali NEW
Misaki M CaldareraItalyXuxue Feng NEGOTIATION
Tony I CaldareraSpainBernardo Dominic RENEWAL
David M BowleyAustraliaIoni Bowcher NEGOTIATION
Clifford C KuskoUnited KingdomStephen Shaw PROPOSAL
Ashley H NickaUnited KingdomAmy Elsner NEGOTIATION
Claire F WaycottSpainAsiya Javayant NEW
James I FlosiAustraliaBernardo Dominic NEW
Julie Y AmigonSpainElwin Sharvill RENEWAL
Adams Z GillianRussiaAnna Fali PROPOSAL
Jeanfrancois O MorascaSpainAsiya Javayant QUALIFIED
Ricardo K GarufiItalyXuxue Feng UNQUALIFIED
Kadeem N RimUnited KingdomAsiya Javayant NEGOTIATION
Murillo Q RimRussiaIvan Magalhaes RENEWAL
Munro P RimAustraliaStephen Shaw PROPOSAL
Munro O WaycottRussiaAnna Fali QUALIFIED
Aruna G RutaRussiaXuxue Feng RENEWAL
Arvin A RutaBrazilStephen Shaw UNQUALIFIED
Morrow S DarakjyCanadaAmy Elsner UNQUALIFIED
Misaki T SlusarskiArgentinaOnyama Limba RENEWAL
Wickens W SaylorsUnited KingdomElwin Sharvill RENEWAL
Jeanfrancois H OstroskyJapanElwin Sharvill QUALIFIED
Izzy P MorascaItalyXuxue Feng NEW
Kadeem T DilliardAustraliaXuxue Feng NEGOTIATION
Ivar U StockhamJapanAsiya Javayant PROPOSAL
David R WaycottArgentinaAmy Elsner PROPOSAL
Cody X RulapaughArgentinaIoni Bowcher QUALIFIED
Murillo V FigeroaUnited KingdomOnyama Limba QUALIFIED
Aruna T VenereItalyAmy Elsner RENEWAL
Mujtaba R NestleArgentinaAnna Fali QUALIFIED
Izzy V KolmetzAustraliaIoni Bowcher NEGOTIATION
Munro N BriddickArgentinaXuxue Feng NEGOTIATION
Leja P VocelkaCanadaElwin Sharvill QUALIFIED
Munro F SlusarskiBrazilBernardo Dominic QUALIFIED
Jennifer B FerenczFranceOnyama Limba NEGOTIATION
Chavez I MaletGermanyAnna Fali PROPOSAL
Juan D FollerGermanyOnyama Limba NEGOTIATION
Morrow L MacleadGermanyXuxue Feng QUALIFIED
Juan D SaylorsFranceAnna Fali NEGOTIATION
Leon C BriddickRussiaAnna Fali RENEWAL
Octavia O CaldareraAustraliaBernardo Dominic NEGOTIATION
Aditya T SaylorsGermanyAmy Elsner PROPOSAL
Jeanfrancois L PaprockiBrazilIoni Bowcher QUALIFIED
Izzy C WhobreyBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Francesco J Foller
Morrow E Ferencz
Mayumi U Maclead
James I Sergi
Alejandro Y Stockham
Jones Y Shinko
Misaki U Wieser
Aruna M Inouye
Aditya Y Chui
Darci Z Stockham
Ricardo Z Gillian
Murillo S Nestle
Nicolas I Vocelka
Mujtaba U Rulapaugh
Ivar T Oldroyd
Arvin B Morasca
Francesco H Tollner
Antonio G Saylors
Octavia X Morasca
Munro U Stockham
Morrow C Ostrosky
Chavez O Butt
Chavez C Caudy
Leja R Royster
Cody Q Perin
Ivar V Nicka
Ashley N Paprocki
Mayumi V Butt
Izzy D Perin
Mayumi O Briddick
Arvin T Inouye
Leon Q Ruta
Maria M Gillian
Jones T Poquette
Nicolas F Royster
Wickens G Venere
Greenwood K Paprocki
Costa B Malet
Greenwood Y Nestle
Emily K Briddick
Francesco E Poquette
Izzy A Figeroa
Munro L Chui
Jones V Gaucho
Johnson G Perin
Francesco Z Inouye
Claire L Glick
Silvio Z Briddick
Greenwood Z Oldroyd
Stacey B Butt
IdCountryDate
1000France2026-08-09
1001Japan2026-08-03
1002Argentina2026-08-05
1003Russia2026-08-18
1004France2026-08-04
1005Australia2026-08-12
1006Germany2026-08-18
1007Australia2026-08-01
1008Russia2026-08-03
1009Canada2026-08-14
1010Germany2026-08-02
1011Argentina2026-08-09
1012Germany2026-07-24
1013India2026-08-18
1014India2026-07-25
1015Brazil2026-08-05
1016Russia2026-07-23
1017India2026-08-13
1018Australia2026-07-21
1019United Kingdom2026-08-05
1020Canada2026-08-05
1021Germany2026-07-22
1022Italy2026-08-04
1023France2026-08-01
1024Japan2026-08-06
1025France2026-07-22
1026Italy2026-07-22
1027Australia2026-07-25
1028United Kingdom2026-08-17
1029India2026-07-28
1030Italy2026-07-28
1031Italy2026-08-10
1032Italy2026-07-28
1033Brazil2026-08-13
1034United Kingdom2026-08-03
1035Germany2026-08-09
1036Australia2026-08-19
1037Australia2026-08-06
1038Spain2026-07-31
1039India2026-07-22
1040Argentina2026-07-26
1041Spain2026-07-30
1042India2026-08-12
1043France2026-08-17
1044Spain2026-08-08
1045India2026-08-02
1046Australia2026-08-16
1047India2026-07-30
1048Japan2026-08-10
1049Argentina2026-08-04

On-Demand Data

NameIdCountryDate
Clifford V Whobrey1000Australia2026-08-04
Juan R Slusarski1001Italy2026-07-29
Arvin O Nestle1002Canada2026-07-24
Deepesh C Albares1003Spain2026-07-26
Munro P Tollner1004Argentina2026-08-04
Stacey E Glick1005Russia2026-07-29
Wickens P Wieser1006India2026-07-30
Stacey N Paprocki1007Italy2026-08-01
Rodrigues M Bolognia1008Spain2026-07-21
Misaki J Venere1009India2026-07-29
Salvatore I Darakjy1010Argentina2026-08-19
David Y Wieser1011Canada2026-08-17
David E Gaucho1012United Kingdom2026-08-07
Kaitlin C Whobrey1013Australia2026-08-06
Leja Z Ostrosky1014Australia2026-08-03
Isabel E Poquette1015Argentina2026-07-31
James M Garufi1016India2026-08-05
Nicolas O Kusko1017Russia2026-07-21
Cody C Flosi1018Australia2026-08-11
Aruna Q Doe1019United Kingdom2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar T StockhamRussiaAsiya Javayant UNQUALIFIED
James Q MaletRussiaBernardo Dominic PROPOSAL
Francesco Q IturbideBrazilAnna Fali RENEWAL
Aruna N MacleadJapanOnyama Limba PROPOSAL
Julie U FerenczCanadaStephen Shaw UNQUALIFIED
Clifford G InouyeCanadaBernardo Dominic NEW
Wickens A VenereJapanXuxue Feng RENEWAL
Misaki O InouyeFranceOnyama Limba RENEWAL
Ricardo N RimAustraliaAsiya Javayant NEW
Jefferson T SchemmerJapanAsiya Javayant QUALIFIED
Aika T WhobreyRussiaBernardo Dominic RENEWAL
Adams O SergiAustraliaOnyama Limba NEGOTIATION
Aditya L DarakjyGermanyIvan Magalhaes NEW
Rodrigues O ChuiGermanyElwin Sharvill UNQUALIFIED
Morrow L MaletItalyAnna Fali UNQUALIFIED
Johnson S IturbideSpainAnna Fali NEGOTIATION
Alejandro F SergiJapanIvan Magalhaes NEW
Ashley N GarufiFranceIvan Magalhaes QUALIFIED
Arvin T GarufiArgentinaBernardo Dominic NEW
Silvio P SlusarskiJapanAsiya Javayant NEW
Jennifer O FerenczFranceXuxue Feng QUALIFIED
Leja G ChuiCanadaXuxue Feng QUALIFIED
Antonio U ButtItalyXuxue Feng NEGOTIATION
Greenwood D CampainBrazilAnna Fali NEW
Jones Q GlickRussiaBernardo Dominic UNQUALIFIED
Darci E PaprockiIndiaAsiya Javayant RENEWAL
Adams M GarufiItalyAnna Fali QUALIFIED
Jeanfrancois I StensethBrazilAsiya Javayant PROPOSAL
Aika L DoeJapanAmy Elsner QUALIFIED
Greenwood U CaldareraAustraliaIoni Bowcher UNQUALIFIED
Chavez M KolmetzUnited KingdomElwin Sharvill NEW
Aika P WhobreyAustraliaStephen Shaw NEW
Rodrigues V CampainUnited KingdomOnyama Limba NEW
Sinclair M GauchoIndiaIoni Bowcher PROPOSAL
Leon K KolmetzJapanOnyama Limba PROPOSAL
Kaitlin H StockhamGermanyAnna Fali UNQUALIFIED
Leon R CaldareraUnited KingdomAmy Elsner NEW
Murillo V MacleadGermanyIoni Bowcher UNQUALIFIED
Jones K CaldareraJapanAnna Fali RENEWAL
Jones P KolmetzIndiaElwin Sharvill NEGOTIATION

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