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
Nicolas K SaylorsRussiaAsiya Javayant QUALIFIED
Jennifer D ShinkoRussiaElwin Sharvill RENEWAL
Arvin I PerinCanadaIoni Bowcher RENEWAL
Kadeem T MaletSpainXuxue Feng NEW
Isabel H RoysterItalyElwin Sharvill NEGOTIATION
Emily E FlosiUnited KingdomAsiya Javayant QUALIFIED
Chavez M GlickUnited KingdomElwin Sharvill UNQUALIFIED
Ivar S DilliardGermanyIvan Magalhaes NEW
Claire X VocelkaJapanBernardo Dominic NEW
Darci H BowleyArgentinaIvan Magalhaes NEW
James Z AmigonItalyStephen Shaw UNQUALIFIED
Izzy W OstroskyIndiaXuxue Feng PROPOSAL
Juan H GlickFranceAnna Fali UNQUALIFIED
Cody H BologniaUnited KingdomOnyama Limba RENEWAL
Faith X PerinJapanXuxue Feng NEGOTIATION
Johnson M RulapaughItalyElwin Sharvill UNQUALIFIED
Kaitlin C FollerFranceAnna Fali RENEWAL
Morrow V OstroskyIndiaAnna Fali NEW
Julie A AlbaresIndiaBernardo Dominic QUALIFIED
Tony H SaylorsFranceStephen Shaw NEW
Julie T GauchoIndiaXuxue Feng NEGOTIATION
Smith G FollerGermanyElwin Sharvill UNQUALIFIED
Leja L NickaAustraliaBernardo Dominic RENEWAL
Johnson E StensethRussiaAnna Fali UNQUALIFIED
Leon C WhobreyBrazilBernardo Dominic UNQUALIFIED
Aditya N FerenczFranceAnna Fali RENEWAL
Jefferson N StockhamSpainBernardo Dominic NEGOTIATION
Greenwood W TollnerCanadaElwin Sharvill NEW
Morrow Z CaudyAustraliaElwin Sharvill NEGOTIATION
Greenwood Z ButtGermanyIvan Magalhaes NEGOTIATION
Greenwood T NickaItalyIvan Magalhaes NEW
Izzy F GlickItalyBernardo Dominic UNQUALIFIED
Nicolas K CaudyGermanyElwin Sharvill NEW
Ashley E TollnerRussiaStephen Shaw QUALIFIED
Wickens Y GlickIndiaIoni Bowcher PROPOSAL
Chavez M WieserItalyBernardo Dominic PROPOSAL
Silvio R OstroskyArgentinaAsiya Javayant NEGOTIATION
Maisha P WieserCanadaXuxue Feng QUALIFIED
Johnson E GauchoBrazilIoni Bowcher NEW
Johnson L AmigonFranceAsiya Javayant UNQUALIFIED
Ivar O BowleyIndiaStephen Shaw UNQUALIFIED
Jones G CaudyAustraliaBernardo Dominic NEW
Aruna Q GlickUnited KingdomAmy Elsner PROPOSAL
Smith G GillianSpainElwin Sharvill NEGOTIATION
Alejandro X GarufiItalyElwin Sharvill UNQUALIFIED
Ashley H OstroskyFranceIoni Bowcher RENEWAL
Chavez Y MacleadArgentinaAnna Fali UNQUALIFIED
Morrow B PoquetteUnited KingdomAmy Elsner QUALIFIED
Adams R KuskoCanadaAnna Fali UNQUALIFIED
Kadeem U IturbideSpainAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha V BologniaFranceElwin Sharvill NEW
Juan P MaletUnited KingdomXuxue Feng QUALIFIED
Alejandro Q MorascaJapanOnyama Limba PROPOSAL
Juan X FerenczCanadaIoni Bowcher UNQUALIFIED
Claire B MarrierSpainAnna Fali NEGOTIATION
Tony Z SergiSpainXuxue Feng QUALIFIED
David C RulapaughItalyIoni Bowcher RENEWAL
Murillo G SchemmerFranceIoni Bowcher QUALIFIED
Leon Z SergiIndiaIoni Bowcher NEW
Adams O WieserUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams O WaycottSpain2025-06-13King, Christopher A Esq QUALIFIED11Xuxue Feng
1001Maisha J RimArgentina2025-06-16Feltz Printing Service NEW54Amy Elsner
1002Jeanfrancois O MaletSpain2025-05-29Rousseaux, Michael Esq UNQUALIFIED61Ioni Bowcher
1003Octavia T BowleyCanada2025-06-10Chapman, Ross E Esq NEW41Onyama Limba
1004Claire J OstroskyFrance2025-06-04Truhlar And Truhlar Attys NEGOTIATION39Elwin Sharvill
1005Maria L BologniaJapan2025-05-23Printing Dimensions QUALIFIED24Bernardo Dominic
1006Jennifer W FollerUnited Kingdom2025-05-22Buckley Miller Wright NEGOTIATION20Asiya Javayant
1007Tony V WieserRussia2025-05-21Rangoni Of Florence UNQUALIFIED61Ivan Magalhaes
1008Stacey S InouyeAustralia2025-05-19Chapman, Ross E Esq NEGOTIATION25Amy Elsner
1009David D DilliardIndia2025-05-30Chapman, Ross E Esq PROPOSAL62Ioni Bowcher
1010Tony F VocelkaBrazil2025-05-18Chanay, Jeffrey A Esq RENEWAL50Anna Fali
1011Nicolas D CaldareraJapan2025-05-26Commercial Press QUALIFIED0Anna Fali
1012Julie G NickaGermany2025-06-15Morlong Associates QUALIFIED72Elwin Sharvill
1013Ashley E RutaJapan2025-06-05Truhlar And Truhlar Attys PROPOSAL67Anna Fali
1014Salvatore W BowleyFrance2025-05-21Chemel, James L Cpa UNQUALIFIED95Amy Elsner
1015Izzy Z GlickJapan2025-05-27Printing Dimensions NEW4Anna Fali
1016Arvin X SaylorsGermany2025-06-06Dorl, James J Esq PROPOSAL47Stephen Shaw
1017Emily C CampainFrance2025-06-06Rangoni Of Florence PROPOSAL5Bernardo Dominic
1018Johnson V SchemmerSpain2025-05-19Benton, John B Jr QUALIFIED1Amy Elsner
1019Maisha X BowleyRussia2025-05-19Feltz Printing Service NEGOTIATION82Onyama Limba
1020Francesco N PoquetteIndia2025-06-07Feiner Bros QUALIFIED32Bernardo Dominic
1021Antonio X OldroydRussia2025-06-08Buckley Miller Wright RENEWAL42Elwin Sharvill
1022Jennifer L ChuiIndia2025-06-10Buckley Miller Wright NEGOTIATION3Anna Fali
1023Octavia I RoysterIndia2025-05-18Buckley Miller Wright NEW65Xuxue Feng
1024Maria Z DilliardBrazil2025-05-23Commercial Press QUALIFIED24Bernardo Dominic
1025Leja W StensethGermany2025-06-09Buckley Miller Wright NEGOTIATION22Xuxue Feng
1026Kaitlin P BriddickUnited Kingdom2025-05-19Chemel, James L Cpa UNQUALIFIED79Elwin Sharvill
1027Ivar B FlosiRussia2025-06-09Chemel, James L Cpa QUALIFIED39Ioni Bowcher
1028Jeanfrancois L PaprockiSpain2025-05-31Buckley Miller Wright UNQUALIFIED10Ioni Bowcher
1029Salvatore B OstroskyItaly2025-06-14Buckley Miller Wright RENEWAL60Stephen Shaw
1030Ashley F VocelkaSpain2025-06-12Printing Dimensions UNQUALIFIED23Asiya Javayant
1031Alejandro Q CampainArgentina2025-06-15Feiner Bros QUALIFIED37Elwin Sharvill
1032Johnson A FollerIndia2025-06-16Chemel, James L Cpa QUALIFIED42Ioni Bowcher
1033Kadeem M FerenczSpain2025-06-02Dorl, James J Esq NEW61Ioni Bowcher
1034Kaitlin L RulapaughItaly2025-06-09Commercial Press NEW33Xuxue Feng
1035Munro R DarakjyJapan2025-05-19Printing Dimensions RENEWAL76Ioni Bowcher
1036Mayumi R FerenczCanada2025-05-28Chanay, Jeffrey A Esq UNQUALIFIED72Bernardo Dominic
1037Mayumi M SergiJapan2025-06-15Buckley Miller Wright QUALIFIED11Anna Fali
1038Munro P SergiFrance2025-05-25Morlong Associates RENEWAL34Xuxue Feng
1039Murillo Y BologniaUnited Kingdom2025-05-23Rousseaux, Michael Esq NEW5Ioni Bowcher
1040Maisha F ButtFrance2025-06-03Feiner Bros NEW74Ivan Magalhaes
1041Aika V MaletIndia2025-06-10Rangoni Of Florence NEGOTIATION63Ioni Bowcher
1042Cody X RimSpain2025-06-02Buckley Miller Wright PROPOSAL16Onyama Limba
1043Octavia Z MorascaJapan2025-05-23Rangoni Of Florence RENEWAL75Bernardo Dominic
1044David K SaylorsJapan2025-05-19King, Christopher A Esq NEW6Ioni Bowcher
1045Aika M DoeSpain2025-06-07Benton, John B Jr NEW83Amy Elsner
1046Cody V OstroskyUnited Kingdom2025-05-21Benton, John B Jr RENEWAL75Ioni Bowcher
1047Costa H CaudyItaly2025-05-21Buckley Miller Wright PROPOSAL42Stephen Shaw
1048Mayumi F WieserJapan2025-06-10King, Christopher A Esq QUALIFIED37Amy Elsner
1049Munro S TollnerCanada2025-05-25King, Christopher A Esq RENEWAL80Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams U RulapaughUnited KingdomOnyama Limba QUALIFIED
Jones H MacleadItalyIvan Magalhaes NEW
Costa X SergiJapanXuxue Feng NEGOTIATION
Arvin R NestleFranceStephen Shaw RENEWAL
Smith T PerinItalyAmy Elsner NEW
Johnson C MaletArgentinaBernardo Dominic NEW
Ashley U MarrierCanadaXuxue Feng UNQUALIFIED
Johnson P SchemmerIndiaAmy Elsner QUALIFIED
Salvatore T SaylorsFranceBernardo Dominic UNQUALIFIED
Adams Z GarufiAustraliaAsiya Javayant PROPOSAL
James G NestleUnited KingdomAmy Elsner PROPOSAL
Emily I GauchoAustraliaIvan Magalhaes NEW
Silvio E GauchoItalyXuxue Feng NEGOTIATION
Costa W PaprockiBrazilIvan Magalhaes PROPOSAL
Munro Z MorascaJapanOnyama Limba RENEWAL
Chavez S OstroskyItalyXuxue Feng UNQUALIFIED
Silvio A OstroskySpainElwin Sharvill PROPOSAL
Nicolas M ShinkoJapanAsiya Javayant UNQUALIFIED
Darci R StockhamSpainIvan Magalhaes PROPOSAL
Faith N GarufiFranceAmy Elsner NEW
Munro U RimUnited KingdomAnna Fali NEW
Wickens N WieserRussiaAmy Elsner RENEWAL
Greenwood S RimBrazilElwin Sharvill NEW
James B RutaArgentinaAsiya Javayant QUALIFIED
Leja T InouyeUnited KingdomIoni Bowcher NEGOTIATION
Claire Q KolmetzGermanyElwin Sharvill PROPOSAL
Mayumi O StockhamGermanyAmy Elsner NEGOTIATION
Leja U KuskoItalyElwin Sharvill RENEWAL
James Q CaudyFranceOnyama Limba PROPOSAL
Aditya X RimArgentinaXuxue Feng NEW
Munro S GillianArgentinaElwin Sharvill NEW
Jones V KuskoCanadaIvan Magalhaes NEGOTIATION
Wickens O GlickFranceXuxue Feng UNQUALIFIED
David Q ChuiAustraliaAnna Fali QUALIFIED
Kadeem R FlosiGermanyXuxue Feng PROPOSAL
Alejandro L WhobreyIndiaIvan Magalhaes NEGOTIATION
Smith B KuskoSpainStephen Shaw NEW
Mayumi T CaudyJapanStephen Shaw PROPOSAL
Ivar G RimUnited KingdomAnna Fali QUALIFIED
Silvio Z ButtCanadaAsiya Javayant PROPOSAL
Ashley G RimBrazilOnyama Limba PROPOSAL
Tony S NestleJapanAmy Elsner NEGOTIATION
Ricardo Z PoquetteRussiaElwin Sharvill NEW
Costa U VocelkaJapanAnna Fali QUALIFIED
Claire N GlickAustraliaBernardo Dominic PROPOSAL
Silvio D WhobreyBrazilAmy Elsner NEW
Arvin T FollerBrazilXuxue Feng NEGOTIATION
Maria U PaprockiBrazilAnna Fali NEGOTIATION
Maria N KuskoItalyIvan Magalhaes UNQUALIFIED
Johnson L MarrierJapanIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Isabel W Ostrosky
Greenwood X Rulapaugh
Murillo U Royster
Jones H Ruta
Ricardo V Flosi
Aditya X Glick
Rodrigues O Darakjy
Aika V Waycott
Isabel M Vocelka
Sinclair N Marrier
Kaitlin A Royster
Mujtaba I Malet
Jones Q Chui
Adams X Nestle
Morrow A Amigon
Rodrigues J Rulapaugh
Isabel B Morasca
Munro P Iturbide
Aika Q Kolmetz
Jennifer U Amigon
Munro B Nestle
Deepesh C Maclead
Nicolas Y Doe
Cody K Ostrosky
Adams K Whobrey
Octavia Z Stenseth
Kaitlin O Albares
Johnson R Caldarera
Rodrigues M Iturbide
Ivar G Ostrosky
Greenwood W Foller
Aruna H Ferencz
Maria U Nestle
Munro U Perin
Greenwood M Bowley
James Q Butt
Isabel V Caudy
David F Nestle
David O Stenseth
Claire B Malet
Claire A Bowley
Julie F Stenseth
Smith K Briddick
Mayumi A Venere
Sinclair U Caudy
Leon X Rulapaugh
Smith J Paprocki
Emily D Waycott
Kaitlin Z Sergi
Kadeem F Venere
IdCountryDate
1000Italy2025-05-21
1001Canada2025-06-01
1002Italy2025-06-16
1003Russia2025-06-10
1004France2025-05-31
1005Australia2025-05-25
1006Spain2025-06-08
1007Italy2025-05-18
1008Canada2025-05-24
1009Brazil2025-06-08
1010Brazil2025-05-25
1011Italy2025-06-05
1012France2025-06-09
1013Japan2025-05-31
1014Canada2025-06-10
1015India2025-05-24
1016Russia2025-05-25
1017Germany2025-06-07
1018United Kingdom2025-06-04
1019Russia2025-05-28
1020Italy2025-06-16
1021Canada2025-05-23
1022Russia2025-06-02
1023India2025-05-25
1024Italy2025-06-14
1025Japan2025-06-11
1026Argentina2025-06-08
1027Japan2025-05-29
1028France2025-06-02
1029Australia2025-05-18
1030Brazil2025-06-07
1031Russia2025-06-02
1032Germany2025-05-31
1033United Kingdom2025-05-22
1034Russia2025-06-09
1035Australia2025-05-21
1036Brazil2025-06-02
1037Brazil2025-06-11
1038Canada2025-05-27
1039Brazil2025-05-30
1040Brazil2025-06-16
1041Australia2025-05-31
1042Brazil2025-06-12
1043Brazil2025-06-15
1044Brazil2025-05-20
1045Spain2025-06-08
1046India2025-06-09
1047Canada2025-06-16
1048Italy2025-06-11
1049Argentina2025-06-03

On-Demand Data

NameIdCountryDate
Darci Y Kusko1000Germany2025-06-06
Kaitlin M Ruta1001Germany2025-05-20
Deepesh U Oldroyd1002Japan2025-06-09
Morrow R Oldroyd1003Canada2025-06-06
Juan F Flosi1004Canada2025-06-01
Claire M Flosi1005Australia2025-06-11
Morrow Z Schemmer1006Australia2025-05-19
Claire C Sergi1007Australia2025-05-24
Tony A Kolmetz1008Spain2025-06-06
Rodrigues L Maclead1009Italy2025-05-22
Wickens O Slusarski1010Italy2025-05-21
Ashley H Doe1011United Kingdom2025-06-14
Ashley B Briddick1012Australia2025-05-20
Arvin R Kusko1013Argentina2025-06-03
Misaki F Saylors1014India2025-06-08
Maria T Bowley1015Japan2025-06-07
Johnson B Waycott1016Russia2025-05-24
Chavez R Figeroa1017Italy2025-05-19
Smith V Malet1018Spain2025-05-26
Cody S Oldroyd1019Spain2025-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi O SchemmerIndiaElwin Sharvill NEW
Morrow T DoeAustraliaOnyama Limba NEW
Darci E AmigonGermanyElwin Sharvill PROPOSAL
Aditya O FigeroaGermanyAnna Fali UNQUALIFIED
Leon P CaudyIndiaStephen Shaw RENEWAL
Rodrigues N TollnerJapanIoni Bowcher RENEWAL
Antonio K KuskoJapanAmy Elsner QUALIFIED
Johnson M FigeroaGermanyAsiya Javayant RENEWAL
Darci F SchemmerItalyStephen Shaw QUALIFIED
Octavia D RutaBrazilStephen Shaw RENEWAL
Clifford O FerenczFranceStephen Shaw NEW
Izzy H CampainSpainOnyama Limba QUALIFIED
Aditya P FerenczIndiaAsiya Javayant NEGOTIATION
Leja U StensethRussiaStephen Shaw UNQUALIFIED
Julie S GillianSpainStephen Shaw NEGOTIATION
Francesco O FigeroaJapanOnyama Limba UNQUALIFIED
Ashley F MaletAustraliaOnyama Limba PROPOSAL
Murillo D RimUnited KingdomBernardo Dominic UNQUALIFIED
Tony Y RutaUnited KingdomAsiya Javayant QUALIFIED
Aruna Y CampainAustraliaIvan Magalhaes NEW
Costa Z FollerFranceAnna Fali NEW
Munro W RimFranceStephen Shaw NEW
Munro V CaldareraCanadaStephen Shaw RENEWAL
Alejandro C RulapaughCanadaOnyama Limba QUALIFIED
Leon I CampainGermanyAsiya Javayant NEW
Jeanfrancois V CampainItalyOnyama Limba RENEWAL
David P DoeIndiaAnna Fali PROPOSAL
James E SergiCanadaIoni Bowcher RENEWAL
Jones Y SergiRussiaAnna Fali UNQUALIFIED
Ricardo A OstroskyFranceOnyama Limba UNQUALIFIED
Maisha N RulapaughRussiaAsiya Javayant RENEWAL
Aika I RulapaughItalyIvan Magalhaes QUALIFIED
Jefferson A PoquetteItalyBernardo Dominic QUALIFIED
Rodrigues D RutaRussiaBernardo Dominic NEGOTIATION
Misaki V GarufiFranceElwin Sharvill NEGOTIATION
Ashley R AmigonCanadaIoni Bowcher NEW
Kadeem B OldroydRussiaAsiya Javayant PROPOSAL
Jeanfrancois H NickaCanadaBernardo Dominic PROPOSAL
Jennifer P FigeroaCanadaAsiya Javayant NEGOTIATION
Sinclair V PoquetteArgentinaAnna Fali PROPOSAL

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