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
David X AlbaresGermanyXuxue Feng RENEWAL
Smith M RoysterGermanyStephen Shaw QUALIFIED
Wickens C FerenczBrazilStephen Shaw NEW
Francesco W NestleUnited KingdomAnna Fali NEW
Kadeem G RulapaughJapanAnna Fali QUALIFIED
Maisha R CaldareraFranceBernardo Dominic RENEWAL
Mayumi Y SchemmerSpainStephen Shaw NEW
Deepesh N SaylorsCanadaAmy Elsner RENEWAL
Leja P WhobreyAustraliaElwin Sharvill RENEWAL
Ashley L WhobreyItalyAsiya Javayant RENEWAL
Ivar O DilliardJapanIoni Bowcher UNQUALIFIED
Aika O DoeArgentinaXuxue Feng PROPOSAL
Ivar V VocelkaUnited KingdomOnyama Limba NEW
Jefferson D BowleyCanadaElwin Sharvill QUALIFIED
Smith Y KuskoArgentinaAnna Fali PROPOSAL
Ricardo P RulapaughItalyXuxue Feng RENEWAL
Deepesh N NickaCanadaXuxue Feng UNQUALIFIED
Emily I TollnerIndiaBernardo Dominic PROPOSAL
Kadeem F FollerCanadaAmy Elsner QUALIFIED
Stacey N BowleyArgentinaBernardo Dominic RENEWAL
Ricardo L GlickGermanyIoni Bowcher NEW
Tony X WaycottSpainAsiya Javayant UNQUALIFIED
Chavez E VocelkaJapanBernardo Dominic PROPOSAL
Misaki W BologniaUnited KingdomOnyama Limba RENEWAL
Nicolas J MorascaAustraliaIvan Magalhaes RENEWAL
Aditya A StockhamUnited KingdomBernardo Dominic NEW
Johnson H PoquetteGermanyIvan Magalhaes PROPOSAL
Greenwood K NestleRussiaAmy Elsner QUALIFIED
Johnson X CaldareraBrazilAnna Fali NEW
Misaki C NestleIndiaBernardo Dominic UNQUALIFIED
Salvatore S SchemmerIndiaStephen Shaw PROPOSAL
Misaki I WhobreyUnited KingdomAsiya Javayant NEGOTIATION
Mayumi X TollnerRussiaOnyama Limba NEW
Kaitlin U DoeIndiaAmy Elsner QUALIFIED
Izzy B WhobreyGermanyBernardo Dominic RENEWAL
Deepesh K SergiRussiaIoni Bowcher RENEWAL
Mayumi T RutaIndiaElwin Sharvill RENEWAL
Isabel B DilliardSpainAmy Elsner RENEWAL
Munro A SergiJapanBernardo Dominic RENEWAL
Chavez K SergiJapanBernardo Dominic NEW
Juan Z TollnerArgentinaIoni Bowcher UNQUALIFIED
Cody Z StockhamIndiaBernardo Dominic QUALIFIED
Juan J MaletUnited KingdomIvan Magalhaes PROPOSAL
Cody L PerinAustraliaAmy Elsner PROPOSAL
Silvio G SaylorsBrazilAsiya Javayant UNQUALIFIED
Sinclair A StockhamIndiaIoni Bowcher RENEWAL
Silvio F MaletItalyIvan Magalhaes NEW
Leja K MaletFranceAnna Fali UNQUALIFIED
Mujtaba K SergiGermanyAsiya Javayant RENEWAL
Octavia Z RulapaughCanadaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody S ShinkoGermanyXuxue Feng RENEWAL
Claire X RoysterCanadaAmy Elsner QUALIFIED
Kaitlin Z WaycottBrazilStephen Shaw NEGOTIATION
Jones E SergiFranceIoni Bowcher NEGOTIATION
Wickens I NickaItalyAmy Elsner RENEWAL
Tony V DilliardJapanStephen Shaw NEGOTIATION
Octavia O FigeroaAustraliaStephen Shaw NEGOTIATION
Chavez Q CaudyGermanyOnyama Limba NEW
Aditya X GlickUnited KingdomIoni Bowcher PROPOSAL
Antonio P AmigonCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh V RimGermany2026-08-02Printing Dimensions QUALIFIED65Elwin Sharvill
1001Rodrigues V StockhamIndia2026-08-26Rangoni Of Florence QUALIFIED15Bernardo Dominic
1002Julie J GillianUnited Kingdom2026-08-08Rangoni Of Florence NEW2Asiya Javayant
1003Murillo D RutaGermany2026-08-19Commercial Press NEGOTIATION28Ivan Magalhaes
1004Arvin W SergiFrance2026-08-26Feiner Bros RENEWAL33Asiya Javayant
1005Salvatore B GillianItaly2026-08-05Feiner Bros PROPOSAL38Asiya Javayant
1006Faith K IturbideBrazil2026-08-04Chapman, Ross E Esq NEGOTIATION61Asiya Javayant
1007Jefferson L FigeroaCanada2026-08-22Rangoni Of Florence NEGOTIATION71Bernardo Dominic
1008Aruna J NickaArgentina2026-08-04Benton, John B Jr NEW29Asiya Javayant
1009Octavia P AlbaresItaly2026-08-15Buckley Miller Wright PROPOSAL86Asiya Javayant
1010Sinclair E ButtItaly2026-08-30Feiner Bros NEGOTIATION16Xuxue Feng
1011Leon K BriddickGermany2026-08-30Printing Dimensions NEGOTIATION0Onyama Limba
1012Mujtaba B FlosiArgentina2026-08-17Feltz Printing Service NEW93Anna Fali
1013Chavez T InouyeAustralia2026-08-19King, Christopher A Esq PROPOSAL82Amy Elsner
1014David U BriddickItaly2026-08-03Chanay, Jeffrey A Esq NEW68Ivan Magalhaes
1015Aruna D GauchoFrance2026-08-22Dorl, James J Esq UNQUALIFIED87Stephen Shaw
1016Antonio J KolmetzRussia2026-08-02Chapman, Ross E Esq PROPOSAL2Asiya Javayant
1017Antonio G MaletJapan2026-08-30Morlong Associates RENEWAL20Amy Elsner
1018Maria X BowleyAustralia2026-08-01Chanay, Jeffrey A Esq NEW62Amy Elsner
1019Wickens L StockhamRussia2026-08-15Feltz Printing Service RENEWAL8Ivan Magalhaes
1020Jones K SchemmerBrazil2026-08-03Chapman, Ross E Esq PROPOSAL38Anna Fali
1021Deepesh W PoquetteUnited Kingdom2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED56Ivan Magalhaes
1022James P MaletUnited Kingdom2026-08-01Chapman, Ross E Esq PROPOSAL34Stephen Shaw
1023Johnson P KuskoUnited Kingdom2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED13Onyama Limba
1024Isabel J GauchoRussia2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED93Amy Elsner
1025Rodrigues I SlusarskiRussia2026-08-25Chapman, Ross E Esq UNQUALIFIED74Anna Fali
1026Arvin S BologniaJapan2026-08-12Buckley Miller Wright NEW10Ioni Bowcher
1027James R PoquetteCanada2026-08-03Rousseaux, Michael Esq QUALIFIED96Stephen Shaw
1028James L BowleyItaly2026-08-19Feiner Bros QUALIFIED13Bernardo Dominic
1029Izzy S GauchoItaly2026-08-07Chanay, Jeffrey A Esq NEW16Ioni Bowcher
1030Jennifer P NestleAustralia2026-08-28Chapman, Ross E Esq QUALIFIED98Onyama Limba
1031Mujtaba R GillianGermany2026-08-21Buckley Miller Wright UNQUALIFIED21Anna Fali
1032Rodrigues B GillianItaly2026-08-22Chemel, James L Cpa UNQUALIFIED69Amy Elsner
1033Munro L NickaJapan2026-08-21Dorl, James J Esq RENEWAL47Stephen Shaw
1034Clifford J FlosiAustralia2026-08-24Chanay, Jeffrey A Esq NEW52Bernardo Dominic
1035Ricardo U IturbideIndia2026-08-13Chemel, James L Cpa NEGOTIATION29Bernardo Dominic
1036Chavez T GlickGermany2026-08-06Commercial Press UNQUALIFIED57Xuxue Feng
1037Mayumi T OldroydSpain2026-08-18Benton, John B Jr QUALIFIED25Ivan Magalhaes
1038Rodrigues T PaprockiUnited Kingdom2026-08-11Chapman, Ross E Esq RENEWAL64Elwin Sharvill
1039Izzy V SaylorsBrazil2026-08-01Printing Dimensions QUALIFIED65Bernardo Dominic
1040Clifford M FigeroaArgentina2026-08-21Rousseaux, Michael Esq RENEWAL10Onyama Limba
1041Sinclair R KuskoFrance2026-08-16Benton, John B Jr NEW18Amy Elsner
1042Aruna F BowleyItaly2026-08-11Printing Dimensions NEW21Xuxue Feng
1043Leja X MorascaAustralia2026-08-27Chapman, Ross E Esq PROPOSAL69Ivan Magalhaes
1044Misaki Q DilliardFrance2026-08-20Commercial Press PROPOSAL34Onyama Limba
1045Johnson G RoysterRussia2026-08-06Rangoni Of Florence QUALIFIED53Ioni Bowcher
1046Salvatore X VocelkaItaly2026-08-01Feiner Bros NEW7Onyama Limba
1047Kadeem O ButtFrance2026-08-30Buckley Miller Wright NEW74Onyama Limba
1048Jennifer L BologniaIndia2026-08-11Printing Dimensions NEGOTIATION90Onyama Limba
1049Wickens D OldroydGermany2026-08-10Dorl, James J Esq NEGOTIATION50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Murillo V SchemmerItalyIvan Magalhaes UNQUALIFIED
Jefferson X KuskoCanadaAnna Fali QUALIFIED
Juan P CaudyIndiaElwin Sharvill NEGOTIATION
Deepesh N ButtFranceStephen Shaw NEW
Cody M GlickAustraliaElwin Sharvill PROPOSAL
Leja A RoysterIndiaOnyama Limba UNQUALIFIED
Aruna O MaletJapanXuxue Feng NEGOTIATION
Maisha W GauchoFranceAmy Elsner UNQUALIFIED
Ricardo T MacleadAustraliaXuxue Feng RENEWAL
Tony J AlbaresItalyIvan Magalhaes UNQUALIFIED
Claire D OldroydSpainIvan Magalhaes PROPOSAL
Sinclair R PerinJapanOnyama Limba PROPOSAL
Jefferson B MaletRussiaAnna Fali NEW
Aika B CaudyGermanyIoni Bowcher PROPOSAL
Johnson O PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba G OstroskyCanadaAsiya Javayant NEGOTIATION
Rodrigues D FlosiArgentinaXuxue Feng NEGOTIATION
Maria Z NestleFranceAnna Fali QUALIFIED
Johnson C WieserGermanyOnyama Limba RENEWAL
Murillo B NickaBrazilIvan Magalhaes UNQUALIFIED
Munro I GauchoItalyStephen Shaw UNQUALIFIED
Kaitlin I PoquetteUnited KingdomAmy Elsner NEGOTIATION
Antonio G SaylorsIndiaAmy Elsner UNQUALIFIED
Silvio X VocelkaSpainElwin Sharvill NEW
Sinclair Q MorascaFranceElwin Sharvill QUALIFIED
Adams G VenereIndiaXuxue Feng RENEWAL
Silvio F RoysterGermanyAnna Fali NEGOTIATION
Leja K FlosiAustraliaAsiya Javayant UNQUALIFIED
Silvio H GlickCanadaXuxue Feng PROPOSAL
Maisha O FollerBrazilXuxue Feng PROPOSAL
Clifford B OldroydItalyIoni Bowcher NEGOTIATION
Smith C RutaArgentinaAnna Fali PROPOSAL
Octavia S KolmetzCanadaAsiya Javayant RENEWAL
Darci Z AmigonArgentinaBernardo Dominic PROPOSAL
Claire F ChuiBrazilAsiya Javayant NEW
David O ButtBrazilIvan Magalhaes NEW
Silvio H FerenczIndiaElwin Sharvill QUALIFIED
Kaitlin U ChuiCanadaIvan Magalhaes NEW
Mayumi B ShinkoArgentinaAmy Elsner QUALIFIED
Izzy I VenereJapanIvan Magalhaes PROPOSAL
Jones N FollerUnited KingdomAmy Elsner RENEWAL
Mayumi L RoysterSpainAsiya Javayant UNQUALIFIED
Faith W IturbideIndiaOnyama Limba QUALIFIED
Maisha N CaldareraFranceElwin Sharvill UNQUALIFIED
Maisha V ButtAustraliaBernardo Dominic QUALIFIED
Ricardo P CaldareraIndiaBernardo Dominic QUALIFIED
Jefferson W CaudyCanadaElwin Sharvill RENEWAL
Francesco C GlickCanadaIoni Bowcher UNQUALIFIED
Octavia T MacleadJapanAsiya Javayant RENEWAL
Octavia R WieserAustraliaBernardo Dominic QUALIFIED
Frozen Columns
Name
Aruna R Marrier
Salvatore G Ostrosky
Tony V Garufi
Cody Q Dilliard
Izzy I Ruta
Greenwood S Gaucho
Isabel D Butt
Kadeem E Sergi
Misaki A Campain
Ivar X Venere
Octavia Q Kusko
Maisha I Sergi
Murillo G Tollner
Wickens N Vocelka
Jones G Tollner
David G Saylors
Smith L Marrier
Clifford H Foller
Kadeem J Glick
Mujtaba Y Maclead
Arvin F Perin
Stacey V Oldroyd
Leja C Ruta
Aruna D Amigon
David C Waycott
Chavez V Tollner
Juan P Malet
Mujtaba D Paprocki
Deepesh U Malet
Aika R Slusarski
Ricardo R Nicka
Adams B Figeroa
Julie B Iturbide
Maisha S Glick
Arvin S Whobrey
Wickens K Campain
Costa S Dilliard
Tony V Ostrosky
Ashley E Butt
Murillo H Amigon
Antonio P Darakjy
Morrow E Albares
Cody V Morasca
Faith T Inouye
Johnson G Albares
Salvatore J Ruta
Cody K Nestle
James X Inouye
Sinclair G Poquette
Leja T Tollner
IdCountryDate
1000Italy2026-08-03
1001France2026-08-08
1002Japan2026-08-17
1003United Kingdom2026-08-18
1004Germany2026-08-26
1005Germany2026-08-30
1006Germany2026-08-22
1007Brazil2026-08-09
1008Brazil2026-08-12
1009Germany2026-08-03
1010Japan2026-08-04
1011France2026-08-29
1012Spain2026-08-10
1013Italy2026-08-08
1014Argentina2026-08-30
1015Argentina2026-08-11
1016Australia2026-08-12
1017France2026-08-02
1018France2026-08-20
1019Germany2026-08-02
1020Brazil2026-08-05
1021Brazil2026-08-19
1022Russia2026-08-03
1023Russia2026-08-23
1024Russia2026-08-21
1025Japan2026-08-14
1026Canada2026-08-25
1027Japan2026-08-16
1028Japan2026-08-26
1029Australia2026-08-08
1030Canada2026-08-27
1031India2026-08-30
1032Russia2026-08-30
1033Italy2026-08-21
1034United Kingdom2026-08-07
1035Italy2026-08-22
1036Canada2026-08-17
1037Germany2026-08-15
1038Italy2026-08-12
1039Canada2026-08-24
1040Germany2026-08-23
1041Brazil2026-08-08
1042India2026-08-26
1043Australia2026-08-04
1044Spain2026-08-08
1045Canada2026-08-25
1046Spain2026-08-14
1047Canada2026-08-30
1048India2026-08-02
1049Brazil2026-08-26

On-Demand Data

NameIdCountryDate
Alejandro R Doe1000Argentina2026-08-08
Mayumi C Darakjy1001Canada2026-08-13
Octavia W Gaucho1002Italy2026-08-21
Stacey F Marrier1003Canada2026-08-08
Mayumi D Whobrey1004United Kingdom2026-08-15
Smith O Morasca1005Russia2026-08-07
Octavia A Oldroyd1006Australia2026-08-03
Tony Z Ostrosky1007United Kingdom2026-08-27
Jeanfrancois Z Whobrey1008Russia2026-08-02
Murillo G Paprocki1009Argentina2026-08-15
Munro W Ostrosky1010Russia2026-08-01
Francesco O Malet1011France2026-08-03
Julie R Nestle1012United Kingdom2026-08-19
Julie I Gillian1013Australia2026-08-28
James B Figeroa1014India2026-08-08
Kaitlin U Malet1015Brazil2026-08-12
Alejandro J Glick1016Germany2026-08-26
Wickens N Waycott1017Germany2026-08-11
James P Dilliard1018Russia2026-08-08
Emily T Saylors1019United Kingdom2026-08-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Q MaletRussiaIoni Bowcher PROPOSAL
Arvin F MacleadFranceAmy Elsner PROPOSAL
Francesco L StockhamItalyXuxue Feng PROPOSAL
Ricardo L StockhamGermanyBernardo Dominic NEGOTIATION
Ashley D DarakjyArgentinaBernardo Dominic PROPOSAL
Morrow F MaletRussiaIvan Magalhaes UNQUALIFIED
Jones S ChuiAustraliaElwin Sharvill RENEWAL
Stacey J CaudyJapanStephen Shaw RENEWAL
Leja M AmigonUnited KingdomOnyama Limba NEW
Murillo L MaletBrazilAmy Elsner QUALIFIED
Kaitlin N AlbaresCanadaStephen Shaw UNQUALIFIED
Jefferson P RulapaughFranceIvan Magalhaes UNQUALIFIED
Chavez B KuskoCanadaElwin Sharvill NEGOTIATION
Faith I FollerIndiaElwin Sharvill UNQUALIFIED
Octavia I RulapaughJapanIvan Magalhaes UNQUALIFIED
Clifford F SergiIndiaBernardo Dominic PROPOSAL
Mayumi R AmigonJapanXuxue Feng UNQUALIFIED
Darci R SlusarskiCanadaIoni Bowcher RENEWAL
Deepesh Y VenereFranceXuxue Feng QUALIFIED
Clifford L PerinUnited KingdomOnyama Limba QUALIFIED
Tony N VocelkaUnited KingdomIvan Magalhaes NEW
Rodrigues X RimSpainAsiya Javayant PROPOSAL
Smith P WieserAustraliaOnyama Limba QUALIFIED
Chavez T StockhamUnited KingdomAsiya Javayant RENEWAL
Julie Y MaletFranceOnyama Limba UNQUALIFIED
Kaitlin U SchemmerBrazilIoni Bowcher UNQUALIFIED
David J WaycottJapanOnyama Limba RENEWAL
Tony C NestleSpainElwin Sharvill PROPOSAL
Maisha B SergiGermanyAnna Fali PROPOSAL
Murillo R CaudyItalyXuxue Feng QUALIFIED
Stacey K RimCanadaBernardo Dominic NEW
Cody Y ChuiItalyBernardo Dominic RENEWAL
Adams G FollerUnited KingdomAnna Fali QUALIFIED
Claire E GillianCanadaIoni Bowcher QUALIFIED
Ricardo R ShinkoArgentinaIoni Bowcher NEW
Mujtaba Q ShinkoItalyOnyama Limba PROPOSAL
Aruna N GauchoRussiaAnna Fali NEW
Faith B BologniaJapanStephen Shaw NEGOTIATION
Jones E GarufiIndiaAnna Fali QUALIFIED
Johnson N MorascaUnited KingdomOnyama Limba UNQUALIFIED

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