Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Juan P ShinkoRussiaAmy Elsner NEGOTIATION
Nicolas P AlbaresItalyIvan Magalhaes NEGOTIATION
Francesco U DoeFranceStephen Shaw PROPOSAL
Antonio M SergiIndiaAsiya Javayant UNQUALIFIED
Julie H CaldareraUnited KingdomAnna Fali QUALIFIED
Ashley R SergiBrazilXuxue Feng NEGOTIATION
Deepesh A CaldareraJapanStephen Shaw NEGOTIATION
Deepesh U CaldareraJapanAmy Elsner NEW
Nicolas V RutaArgentinaAnna Fali QUALIFIED
James Q MaletBrazilIoni Bowcher NEGOTIATION
David M VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Ricardo Z WhobreySpainStephen Shaw UNQUALIFIED
Aruna J MacleadRussiaStephen Shaw UNQUALIFIED
Costa I OstroskyUnited KingdomAsiya Javayant QUALIFIED
Kadeem F FlosiArgentinaElwin Sharvill NEW
Stacey C StensethSpainOnyama Limba NEW
Jefferson G ShinkoAustraliaBernardo Dominic NEW
Mujtaba E GillianCanadaAmy Elsner QUALIFIED
Faith I AmigonGermanyAsiya Javayant NEGOTIATION
Tony H BologniaRussiaIoni Bowcher PROPOSAL
Kadeem B NickaFranceBernardo Dominic NEW
Murillo G TollnerAustraliaAsiya Javayant RENEWAL
Juan X CaudyCanadaAmy Elsner NEW
Kadeem S IturbideSpainElwin Sharvill PROPOSAL
Nicolas H NickaJapanBernardo Dominic RENEWAL
Antonio T MaletFranceAnna Fali NEW
Aditya N DilliardBrazilIoni Bowcher PROPOSAL
Julie B GillianBrazilOnyama Limba PROPOSAL
Isabel E FollerCanadaStephen Shaw RENEWAL
Claire C AmigonJapanBernardo Dominic PROPOSAL
Mayumi M PaprockiUnited KingdomBernardo Dominic QUALIFIED
Maisha O PaprockiGermanyStephen Shaw NEW
Arvin F ButtItalyXuxue Feng NEW
Maria A GlickSpainAmy Elsner QUALIFIED
Leja V ButtFranceElwin Sharvill NEGOTIATION
Deepesh C BowleyIndiaAmy Elsner NEW
Aika G DoeJapanStephen Shaw NEGOTIATION
Maria F GarufiBrazilStephen Shaw NEW
Jennifer N OstroskyBrazilAsiya Javayant QUALIFIED
Francesco Z WieserCanadaAmy Elsner RENEWAL
Emily O StensethRussiaAnna Fali UNQUALIFIED
Johnson N CaldareraGermanyElwin Sharvill QUALIFIED
Octavia M DilliardFranceIoni Bowcher NEGOTIATION
Jeanfrancois G CampainJapanOnyama Limba NEW
Ashley X OstroskyBrazilAmy Elsner UNQUALIFIED
Adams D GarufiSpainAnna Fali NEGOTIATION
Smith O GillianGermanyElwin Sharvill UNQUALIFIED
Stacey W NestleCanadaStephen Shaw RENEWAL
Clifford S VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Adams Q BologniaUnited KingdomAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood I BologniaGermanyXuxue Feng RENEWAL
Leon B ButtIndiaAmy Elsner RENEWAL
Arvin N FerenczRussiaElwin Sharvill QUALIFIED
Mujtaba F SergiJapanElwin Sharvill NEGOTIATION
Francesco C TollnerGermanyOnyama Limba RENEWAL
Chavez Y RutaGermanyBernardo Dominic RENEWAL
Morrow R GarufiUnited KingdomOnyama Limba PROPOSAL
Aruna Z InouyeFranceAnna Fali QUALIFIED
Isabel V GillianCanadaIvan Magalhaes QUALIFIED
Claire Y DoeArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin X ShinkoItaly2024-03-30Benton, John B Jr UNQUALIFIED29Onyama Limba
1001Julie T BowleyGermany2024-04-06King, Christopher A Esq QUALIFIED83Elwin Sharvill
1002Cody O NickaItaly2024-04-07Feiner Bros QUALIFIED1Xuxue Feng
1003Deepesh C AmigonItaly2024-03-30Truhlar And Truhlar Attys NEGOTIATION63Xuxue Feng
1004Izzy D GauchoJapan2024-04-04Chemel, James L Cpa RENEWAL0Ivan Magalhaes
1005Jeanfrancois U GlickItaly2024-04-10Truhlar And Truhlar Attys NEW3Xuxue Feng
1006Wickens C OstroskyArgentina2024-04-19Feltz Printing Service RENEWAL65Xuxue Feng
1007Clifford N PerinJapan2024-03-30King, Christopher A Esq NEGOTIATION2Anna Fali
1008Jefferson B GarufiCanada2024-04-03Commercial Press UNQUALIFIED35Stephen Shaw
1009Juan H IturbideAustralia2024-04-16Buckley Miller Wright UNQUALIFIED63Ivan Magalhaes
1010Morrow A ChuiUnited Kingdom2024-04-06Rangoni Of Florence NEW23Anna Fali
1011Arvin D KuskoAustralia2024-04-01Buckley Miller Wright UNQUALIFIED49Anna Fali
1012Nicolas U VenereFrance2024-04-17Commercial Press NEW81Stephen Shaw
1013Greenwood S IturbideSpain2024-04-09Chanay, Jeffrey A Esq RENEWAL96Ivan Magalhaes
1014Wickens N WaycottArgentina2024-03-31King, Christopher A Esq NEW0Asiya Javayant
1015Adams N MacleadUnited Kingdom2024-04-25Feiner Bros NEGOTIATION46Stephen Shaw
1016Misaki O WaycottJapan2024-04-05Chanay, Jeffrey A Esq RENEWAL18Xuxue Feng
1017Chavez F SchemmerBrazil2024-03-30Chemel, James L Cpa UNQUALIFIED92Anna Fali
1018Johnson Q DoeGermany2024-03-27Chanay, Jeffrey A Esq NEW71Xuxue Feng
1019Maria D SergiBrazil2024-04-20Truhlar And Truhlar Attys UNQUALIFIED73Stephen Shaw
1020Greenwood M SaylorsIndia2024-04-13Morlong Associates UNQUALIFIED81Elwin Sharvill
1021Munro H FlosiGermany2024-03-30Chanay, Jeffrey A Esq PROPOSAL4Onyama Limba
1022Kaitlin Q FlosiRussia2024-04-25Morlong Associates NEW35Anna Fali
1023Silvio M GillianArgentina2024-04-23Morlong Associates RENEWAL26Stephen Shaw
1024Smith P AlbaresRussia2024-04-10Feiner Bros QUALIFIED0Ivan Magalhaes
1025Jones R FerenczFrance2024-04-05Commercial Press NEW84Elwin Sharvill
1026Smith S RoysterUnited Kingdom2024-03-28Commercial Press UNQUALIFIED33Bernardo Dominic
1027Julie O ChuiFrance2024-04-17Feiner Bros NEGOTIATION16Anna Fali
1028Nicolas I DilliardJapan2024-04-04Printing Dimensions RENEWAL38Ioni Bowcher
1029Smith P RoysterSpain2024-04-10Chapman, Ross E Esq PROPOSAL24Ioni Bowcher
1030Smith I GillianArgentina2024-03-29Rousseaux, Michael Esq PROPOSAL57Stephen Shaw
1031Ivar A VenereCanada2024-04-24Dorl, James J Esq PROPOSAL9Amy Elsner
1032Maria N KuskoCanada2024-04-16Chapman, Ross E Esq PROPOSAL21Ioni Bowcher
1033Jeanfrancois R OldroydFrance2024-03-29Chemel, James L Cpa QUALIFIED97Xuxue Feng
1034Arvin A WieserRussia2024-04-10Commercial Press UNQUALIFIED45Asiya Javayant
1035Clifford B MaletFrance2024-03-31Truhlar And Truhlar Attys RENEWAL97Stephen Shaw
1036Emily A SchemmerArgentina2024-04-10Feiner Bros UNQUALIFIED23Asiya Javayant
1037Jennifer A RulapaughItaly2024-04-21Morlong Associates PROPOSAL41Asiya Javayant
1038Stacey B AmigonBrazil2024-04-03Morlong Associates QUALIFIED55Onyama Limba
1039Costa S FlosiGermany2024-04-23Rousseaux, Michael Esq UNQUALIFIED89Ivan Magalhaes
1040Tony C CaldareraSpain2024-04-11Rangoni Of Florence NEW98Bernardo Dominic
1041James O StockhamRussia2024-04-08Printing Dimensions NEGOTIATION17Stephen Shaw
1042Jennifer B MarrierUnited Kingdom2024-03-31Benton, John B Jr NEGOTIATION0Stephen Shaw
1043Stacey D NickaRussia2024-04-04Rangoni Of Florence QUALIFIED8Ivan Magalhaes
1044Antonio P BowleyJapan2024-04-17Chanay, Jeffrey A Esq QUALIFIED14Asiya Javayant
1045Maisha H SaylorsCanada2024-04-14Chapman, Ross E Esq UNQUALIFIED72Bernardo Dominic
1046Kaitlin O KolmetzIndia2024-04-05Chapman, Ross E Esq PROPOSAL53Bernardo Dominic
1047Arvin P WaycottUnited Kingdom2024-04-21Rousseaux, Michael Esq RENEWAL5Onyama Limba
1048Kaitlin E SchemmerAustralia2024-04-19Morlong Associates NEW66Stephen Shaw
1049Mujtaba B OstroskyJapan2024-04-19Rousseaux, Michael Esq QUALIFIED76Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Cody O ButtGermanyElwin Sharvill RENEWAL
Nicolas J TollnerIndiaElwin Sharvill NEW
Murillo N VocelkaBrazilElwin Sharvill PROPOSAL
Chavez R PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Clifford E StensethRussiaStephen Shaw QUALIFIED
Kaitlin N StensethRussiaOnyama Limba PROPOSAL
Mujtaba B CaudyCanadaOnyama Limba NEGOTIATION
Costa H KuskoIndiaIoni Bowcher UNQUALIFIED
Adams Y PerinArgentinaBernardo Dominic RENEWAL
Isabel K BologniaRussiaElwin Sharvill RENEWAL
Francesco A IturbideCanadaOnyama Limba NEW
Sinclair O OldroydIndiaAnna Fali NEGOTIATION
Misaki K InouyeUnited KingdomAnna Fali NEGOTIATION
Aruna A WieserSpainElwin Sharvill PROPOSAL
Julie E RoysterGermanyBernardo Dominic UNQUALIFIED
Sinclair O ChuiSpainElwin Sharvill NEW
Leja Y RulapaughItalyElwin Sharvill PROPOSAL
Maisha P NickaGermanyAmy Elsner NEGOTIATION
Francesco Z KuskoArgentinaElwin Sharvill QUALIFIED
Arvin K ShinkoGermanyAsiya Javayant NEGOTIATION
Mayumi E PaprockiFranceIvan Magalhaes QUALIFIED
Ricardo F NickaRussiaIoni Bowcher NEGOTIATION
Murillo C PoquetteIndiaStephen Shaw RENEWAL
Darci N BologniaGermanyAnna Fali RENEWAL
David S StockhamArgentinaAmy Elsner PROPOSAL
Izzy P MacleadCanadaAnna Fali NEW
Nicolas E WieserSpainStephen Shaw PROPOSAL
Sinclair R OldroydItalyXuxue Feng UNQUALIFIED
Rodrigues W KuskoCanadaAsiya Javayant PROPOSAL
Faith Z BowleyGermanyIoni Bowcher UNQUALIFIED
Clifford E DilliardGermanyXuxue Feng PROPOSAL
Ivar L GauchoJapanBernardo Dominic PROPOSAL
Darci V KolmetzArgentinaElwin Sharvill UNQUALIFIED
Ashley L DoeItalyOnyama Limba PROPOSAL
Isabel K FlosiSpainOnyama Limba NEGOTIATION
Julie P MarrierItalyAnna Fali RENEWAL
Ashley I ShinkoUnited KingdomIvan Magalhaes NEW
Johnson U StensethSpainStephen Shaw NEW
Francesco R RoysterAustraliaIvan Magalhaes RENEWAL
Jennifer S GarufiIndiaIoni Bowcher NEW
Claire I NickaAustraliaIoni Bowcher QUALIFIED
Jefferson U RutaGermanyXuxue Feng PROPOSAL
James E PoquetteBrazilAmy Elsner NEGOTIATION
Mujtaba W MaletArgentinaIvan Magalhaes NEGOTIATION
Claire G WhobreyUnited KingdomAmy Elsner RENEWAL
Chavez M PaprockiIndiaIvan Magalhaes UNQUALIFIED
Alejandro O CampainSpainXuxue Feng NEGOTIATION
Maisha M AmigonBrazilOnyama Limba QUALIFIED
Cody Z VocelkaAustraliaXuxue Feng QUALIFIED
Rodrigues C ChuiArgentinaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Maisha C Bolognia
Misaki K Bolognia
Stacey E Waycott
Jones V Vocelka
Deepesh K Waycott
Silvio P Venere
Leja D Campain
Stacey N Albares
Adams E Rulapaugh
Kaitlin G Briddick
Greenwood L Venere
Sinclair T Kusko
Darci O Rim
Deepesh A Malet
Jeanfrancois T Figeroa
Smith B Saylors
Stacey R Maclead
Jefferson E Saylors
Nicolas N Venere
Wickens A Tollner
Cody E Foller
Mujtaba E Caldarera
Darci V Sergi
Aika O Butt
Julie A Gaucho
Murillo M Wieser
Jefferson M Stenseth
Nicolas B Campain
Greenwood Y Bowley
Tony C Caldarera
Mayumi N Sergi
Jefferson G Caldarera
Sinclair D Kusko
Aditya I Doe
Ivar W Gaucho
Silvio D Garufi
Aruna S Wieser
Tony K Campain
Silvio J Campain
Alejandro W Poquette
Sinclair S Rim
Octavia F Darakjy
Stacey E Marrier
Juan N Kolmetz
Antonio Q Campain
Julie M Butt
Aruna X Waycott
Adams J Chui
Stacey O Paprocki
Kaitlin G Albares
IdCountryDate
1000United Kingdom2024-03-31
1001India2024-04-10
1002Japan2024-04-24
1003Argentina2024-04-07
1004Argentina2024-04-15
1005India2024-03-28
1006Canada2024-04-05
1007Australia2024-04-24
1008Spain2024-04-10
1009Spain2024-04-19
1010Italy2024-04-15
1011India2024-03-27
1012Japan2024-04-16
1013France2024-04-18
1014Canada2024-04-06
1015France2024-04-18
1016Italy2024-04-09
1017India2024-04-23
1018Russia2024-04-12
1019Argentina2024-04-16
1020Canada2024-03-29
1021Brazil2024-04-25
1022Canada2024-04-03
1023Germany2024-03-30
1024Russia2024-04-25
1025France2024-04-21
1026Canada2024-04-01
1027Argentina2024-03-28
1028Australia2024-04-07
1029France2024-04-05
1030Russia2024-04-19
1031India2024-03-28
1032Russia2024-04-12
1033Japan2024-04-04
1034Canada2024-04-04
1035Argentina2024-04-10
1036Brazil2024-04-18
1037Brazil2024-03-31
1038United Kingdom2024-04-25
1039Russia2024-04-25
1040Italy2024-04-16
1041Italy2024-04-19
1042India2024-04-04
1043Spain2024-04-04
1044India2024-04-24
1045Canada2024-04-19
1046Italy2024-04-10
1047Spain2024-04-07
1048Japan2024-04-17
1049Italy2024-03-30

On-Demand Data

NameIdCountryDate
Deepesh K Royster1000Germany2024-04-09
David T Nicka1001France2024-04-15
Cody C Kolmetz1002Spain2024-04-24
Salvatore V Kolmetz1003Canada2024-04-13
Chavez T Garufi1004Brazil2024-04-24
Smith Q Bowley1005Spain2024-04-19
Johnson Y Saylors1006Italy2024-04-20
Murillo M Vocelka1007India2024-04-11
Ivar R Oldroyd1008Japan2024-04-06
Misaki K Stockham1009Italy2024-04-18
Kaitlin G Marrier1010Canada2024-04-05
James A Morasca1011France2024-04-07
Faith Z Sergi1012Australia2024-03-29
Adams R Kolmetz1013Argentina2024-04-11
Ivar W Figeroa1014Spain2024-04-02
Clifford L Nestle1015India2024-04-20
Alejandro A Sergi1016Canada2024-04-22
Jennifer O Glick1017Japan2024-03-28
Leja G Darakjy1018Australia2024-03-27
David T Kusko1019Argentina2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco E NestleRussiaElwin Sharvill UNQUALIFIED
Cody T DoeArgentinaAnna Fali QUALIFIED
James F OldroydItalyAsiya Javayant NEW
Claire L MarrierFranceAmy Elsner PROPOSAL
Leon K MacleadFranceBernardo Dominic QUALIFIED
Smith H DarakjyCanadaAsiya Javayant NEW
Izzy R VenereGermanyAnna Fali RENEWAL
Mujtaba H PaprockiIndiaAsiya Javayant NEGOTIATION
Adams M DilliardGermanyIoni Bowcher UNQUALIFIED
Juan H AmigonItalyAmy Elsner PROPOSAL
Claire J GauchoRussiaAnna Fali QUALIFIED
Johnson G FerenczIndiaElwin Sharvill NEW
Faith Z WaycottSpainIvan Magalhaes RENEWAL
Smith H BriddickBrazilOnyama Limba NEGOTIATION
Octavia V GillianCanadaAmy Elsner UNQUALIFIED
Octavia I VenereAustraliaOnyama Limba NEW
Clifford W SchemmerJapanAsiya Javayant PROPOSAL
Ricardo A StockhamCanadaIoni Bowcher RENEWAL
Maisha V CampainAustraliaAnna Fali PROPOSAL
Cody P PaprockiSpainIvan Magalhaes RENEWAL
Jennifer U PoquetteFranceBernardo Dominic NEW
Maria E ButtSpainIoni Bowcher RENEWAL
Adams O MacleadJapanIvan Magalhaes PROPOSAL
James P SchemmerJapanAnna Fali RENEWAL
Mayumi E GauchoSpainBernardo Dominic UNQUALIFIED
Nicolas S PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo K WieserUnited KingdomAsiya Javayant NEW
Tony X PoquetteBrazilAsiya Javayant NEGOTIATION
Arvin H NickaCanadaAmy Elsner NEGOTIATION
Ashley L BowleyArgentinaAmy Elsner NEGOTIATION
Clifford J DarakjyRussiaIvan Magalhaes PROPOSAL
Maisha M GauchoRussiaAnna Fali PROPOSAL
Johnson E PaprockiIndiaXuxue Feng PROPOSAL
Leja G DarakjyUnited KingdomElwin Sharvill NEW
David V GillianSpainXuxue Feng NEGOTIATION
Johnson M PoquetteItalyXuxue Feng RENEWAL
Cody X TollnerAustraliaAmy Elsner NEW
Kadeem Z VocelkaGermanyIvan Magalhaes UNQUALIFIED
Jones L RimSpainAnna Fali PROPOSAL
Ashley A DilliardIndiaAnna 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>