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
Maria E MarrierJapanElwin Sharvill QUALIFIED
Chavez Q SergiItalyXuxue Feng NEGOTIATION
Chavez S NestleIndiaElwin Sharvill NEGOTIATION
Adams R MarrierRussiaBernardo Dominic RENEWAL
Darci M CaldareraGermanyElwin Sharvill NEGOTIATION
Aika Y PerinJapanStephen Shaw NEGOTIATION
Tony F GlickRussiaXuxue Feng NEW
Stacey A RimRussiaIoni Bowcher NEGOTIATION
Clifford X StensethItalyAnna Fali NEW
Aruna Q AlbaresJapanAmy Elsner NEW
Mujtaba D MaletGermanyAnna Fali PROPOSAL
Chavez H RoysterArgentinaAsiya Javayant PROPOSAL
Clifford W FigeroaGermanyAmy Elsner RENEWAL
Darci C PoquetteJapanAnna Fali RENEWAL
James T TollnerGermanyAsiya Javayant QUALIFIED
Nicolas V WieserUnited KingdomXuxue Feng QUALIFIED
Sinclair D GlickBrazilElwin Sharvill NEW
Leja F RoysterJapanXuxue Feng QUALIFIED
Cody W StensethRussiaAmy Elsner UNQUALIFIED
Salvatore X CaudyFranceIoni Bowcher UNQUALIFIED
Ashley C OstroskyRussiaBernardo Dominic RENEWAL
Kadeem H SaylorsRussiaOnyama Limba NEW
Cody A OldroydArgentinaBernardo Dominic PROPOSAL
Clifford F MarrierBrazilAnna Fali NEW
Alejandro A IturbideItalyIvan Magalhaes PROPOSAL
James O DoeBrazilIoni Bowcher NEW
Sinclair H GlickBrazilAsiya Javayant RENEWAL
Kaitlin R MarrierItalyIvan Magalhaes NEGOTIATION
Sinclair E TollnerUnited KingdomElwin Sharvill NEGOTIATION
Nicolas C SchemmerCanadaAnna Fali NEGOTIATION
Kaitlin V CaudyCanadaAmy Elsner NEGOTIATION
Izzy S BologniaRussiaStephen Shaw NEGOTIATION
Munro W KuskoIndiaIoni Bowcher NEGOTIATION
Aika Y DoeUnited KingdomStephen Shaw NEGOTIATION
Clifford I StockhamFranceOnyama Limba NEGOTIATION
Salvatore V GauchoSpainStephen Shaw PROPOSAL
Leon A RutaJapanAnna Fali NEGOTIATION
Clifford W OldroydSpainStephen Shaw UNQUALIFIED
Mayumi D WaycottGermanyBernardo Dominic PROPOSAL
Munro F RimUnited KingdomIoni Bowcher QUALIFIED
Greenwood U SaylorsAustraliaAnna Fali PROPOSAL
Leon D NestleBrazilXuxue Feng NEGOTIATION
Salvatore H MacleadSpainOnyama Limba RENEWAL
Silvio J FigeroaRussiaBernardo Dominic RENEWAL
Chavez J AlbaresUnited KingdomOnyama Limba NEGOTIATION
Kadeem J IturbideAustraliaAmy Elsner UNQUALIFIED
Jones W StensethFranceXuxue Feng QUALIFIED
Aika Q WieserSpainBernardo Dominic NEGOTIATION
Silvio J GarufiItalyOnyama Limba UNQUALIFIED
Francesco K SchemmerJapanOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Munro K IturbideRussiaAmy Elsner RENEWAL
Kaitlin V VenereAustraliaAnna Fali PROPOSAL
Kadeem Q CampainUnited KingdomAmy Elsner NEW
Mayumi R SergiAustraliaXuxue Feng QUALIFIED
Stacey L WhobreyGermanyXuxue Feng UNQUALIFIED
Juan D FerenczSpainOnyama Limba NEGOTIATION
Rodrigues G WaycottAustraliaBernardo Dominic UNQUALIFIED
Chavez N ChuiCanadaOnyama Limba PROPOSAL
Misaki N GillianIndiaAsiya Javayant QUALIFIED
Leon B BologniaJapanOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford F OldroydJapan2024-03-01King, Christopher A Esq UNQUALIFIED53Elwin Sharvill
1001Deepesh R NickaJapan2024-03-15Feiner Bros QUALIFIED88Elwin Sharvill
1002Tony U FigeroaUnited Kingdom2024-02-20Printing Dimensions NEW51Asiya Javayant
1003Mujtaba E OldroydBrazil2024-03-02Printing Dimensions PROPOSAL9Onyama Limba
1004Salvatore P PoquetteItaly2024-02-24Rousseaux, Michael Esq RENEWAL73Bernardo Dominic
1005Jennifer X BriddickJapan2024-02-23Feiner Bros QUALIFIED16Xuxue Feng
1006Silvio V VocelkaBrazil2024-02-18Buckley Miller Wright NEW62Asiya Javayant
1007Adams O AlbaresRussia2024-03-08Dorl, James J Esq PROPOSAL45Xuxue Feng
1008Smith X VocelkaIndia2024-03-11Rangoni Of Florence UNQUALIFIED62Ivan Magalhaes
1009Misaki U WaycottAustralia2024-03-10King, Christopher A Esq PROPOSAL55Xuxue Feng
1010Emily R NestleFrance2024-03-16Chanay, Jeffrey A Esq UNQUALIFIED59Onyama Limba
1011Greenwood E RoysterBrazil2024-03-02Chemel, James L Cpa PROPOSAL45Anna Fali
1012Francesco E ChuiItaly2024-03-17King, Christopher A Esq UNQUALIFIED23Elwin Sharvill
1013Jeanfrancois Y GillianSpain2024-03-04Buckley Miller Wright PROPOSAL28Asiya Javayant
1014Kadeem T MaletArgentina2024-03-05Commercial Press NEGOTIATION47Xuxue Feng
1015Leja R RoysterRussia2024-03-06Buckley Miller Wright PROPOSAL98Ioni Bowcher
1016Morrow Y SergiGermany2024-03-01Rangoni Of Florence UNQUALIFIED49Bernardo Dominic
1017Octavia P PerinArgentina2024-03-13Feiner Bros RENEWAL47Anna Fali
1018Munro B GarufiArgentina2024-03-07Rousseaux, Michael Esq QUALIFIED94Onyama Limba
1019Jennifer Y MorascaFrance2024-03-08Buckley Miller Wright QUALIFIED76Ivan Magalhaes
1020Isabel I VocelkaBrazil2024-03-17Feltz Printing Service NEGOTIATION58Bernardo Dominic
1021Adams B DarakjyGermany2024-03-02Truhlar And Truhlar Attys PROPOSAL17Xuxue Feng
1022Leja L DoeSpain2024-03-08Dorl, James J Esq UNQUALIFIED39Xuxue Feng
1023Maria P InouyeAustralia2024-02-21Chapman, Ross E Esq PROPOSAL12Bernardo Dominic
1024Deepesh G GillianIndia2024-03-10Dorl, James J Esq PROPOSAL71Asiya Javayant
1025Emily W MacleadJapan2024-03-02King, Christopher A Esq PROPOSAL47Ivan Magalhaes
1026Clifford N WieserBrazil2024-03-06Benton, John B Jr RENEWAL40Asiya Javayant
1027David B SaylorsJapan2024-02-27Chanay, Jeffrey A Esq QUALIFIED33Ioni Bowcher
1028Sinclair H FigeroaArgentina2024-02-19Commercial Press PROPOSAL68Elwin Sharvill
1029Morrow A GarufiUnited Kingdom2024-03-08Feiner Bros UNQUALIFIED66Bernardo Dominic
1030Johnson M OldroydGermany2024-02-26King, Christopher A Esq NEW45Asiya Javayant
1031Sinclair B IturbideRussia2024-03-17Feiner Bros QUALIFIED11Onyama Limba
1032Salvatore W NestleRussia2024-03-14Chapman, Ross E Esq UNQUALIFIED84Xuxue Feng
1033Rodrigues Q InouyeArgentina2024-03-15Rousseaux, Michael Esq NEW1Elwin Sharvill
1034Johnson Z GillianFrance2024-03-02Benton, John B Jr RENEWAL5Amy Elsner
1035Ivar F DilliardArgentina2024-02-20Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1036Tony B CaudyUnited Kingdom2024-03-12Commercial Press RENEWAL65Elwin Sharvill
1037Jeanfrancois U ButtAustralia2024-02-25Buckley Miller Wright UNQUALIFIED81Stephen Shaw
1038Salvatore R ShinkoIndia2024-02-23Rangoni Of Florence QUALIFIED26Ioni Bowcher
1039Darci B ShinkoSpain2024-02-28Chapman, Ross E Esq NEGOTIATION78Amy Elsner
1040Mujtaba T DarakjyArgentina2024-03-07Rangoni Of Florence QUALIFIED35Amy Elsner
1041Francesco P FigeroaBrazil2024-03-12Feiner Bros UNQUALIFIED66Amy Elsner
1042Smith O WaycottGermany2024-03-13Feltz Printing Service QUALIFIED52Onyama Limba
1043James U FollerRussia2024-02-26Chapman, Ross E Esq NEGOTIATION58Asiya Javayant
1044Isabel V WhobreyAustralia2024-02-23Feltz Printing Service QUALIFIED43Amy Elsner
1045Silvio Q WieserItaly2024-03-07Truhlar And Truhlar Attys NEGOTIATION5Ivan Magalhaes
1046Tony E RulapaughArgentina2024-03-02Benton, John B Jr RENEWAL8Stephen Shaw
1047Wickens Y FollerSpain2024-02-28Buckley Miller Wright UNQUALIFIED64Asiya Javayant
1048Francesco J PoquetteRussia2024-03-05Buckley Miller Wright UNQUALIFIED76Bernardo Dominic
1049Octavia B GlickIndia2024-03-18Benton, John B Jr NEW43Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jones B MacleadBrazilIoni Bowcher NEW
Costa U PerinRussiaElwin Sharvill QUALIFIED
Ivar T FollerSpainBernardo Dominic RENEWAL
Jeanfrancois P StensethBrazilBernardo Dominic NEGOTIATION
Julie U DoeFranceIoni Bowcher QUALIFIED
Chavez O InouyeBrazilStephen Shaw NEW
Wickens Q GillianIndiaElwin Sharvill PROPOSAL
Rodrigues U ButtFranceElwin Sharvill QUALIFIED
Arvin T WhobreyIndiaStephen Shaw NEW
Claire L WhobreySpainAsiya Javayant NEGOTIATION
Francesco N NickaArgentinaAsiya Javayant UNQUALIFIED
Morrow R WieserIndiaAnna Fali QUALIFIED
Francesco B BologniaGermanyIvan Magalhaes RENEWAL
Chavez R StockhamArgentinaIoni Bowcher RENEWAL
Deepesh B MaletIndiaAmy Elsner NEW
Murillo V SchemmerAustraliaIvan Magalhaes NEGOTIATION
Munro R RoysterBrazilStephen Shaw PROPOSAL
Francesco U NestleBrazilOnyama Limba NEW
Ricardo G AmigonBrazilAsiya Javayant PROPOSAL
Chavez W WaycottAustraliaIvan Magalhaes RENEWAL
Ashley G ChuiItalyAsiya Javayant NEW
Leja A PaprockiAustraliaElwin Sharvill PROPOSAL
Deepesh U ShinkoArgentinaXuxue Feng PROPOSAL
Leja X WieserFranceAnna Fali QUALIFIED
Morrow J OstroskyJapanElwin Sharvill NEW
Faith A CampainGermanyAnna Fali UNQUALIFIED
Jennifer U WaycottBrazilOnyama Limba NEW
Maria Y BriddickGermanyElwin Sharvill RENEWAL
David E BologniaGermanyAmy Elsner UNQUALIFIED
Octavia Z OstroskyBrazilIvan Magalhaes RENEWAL
Sinclair C RulapaughCanadaIvan Magalhaes QUALIFIED
Greenwood M AlbaresItalyElwin Sharvill QUALIFIED
Arvin V KolmetzBrazilOnyama Limba PROPOSAL
Sinclair B MaletSpainXuxue Feng PROPOSAL
Nicolas B VenereGermanyAnna Fali PROPOSAL
Jeanfrancois G KolmetzArgentinaXuxue Feng NEW
Silvio P RutaIndiaXuxue Feng RENEWAL
Izzy M NickaItalyAmy Elsner PROPOSAL
Mayumi C FigeroaGermanyAnna Fali PROPOSAL
Francesco A AlbaresRussiaElwin Sharvill PROPOSAL
Isabel U InouyeUnited KingdomAmy Elsner NEGOTIATION
Maisha A StockhamItalyElwin Sharvill NEW
Francesco T CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Kadeem K WhobreyArgentinaBernardo Dominic NEGOTIATION
Jennifer D PaprockiBrazilOnyama Limba PROPOSAL
Ricardo X WieserItalyXuxue Feng RENEWAL
Kaitlin P OstroskyIndiaAnna Fali NEW
Wickens J SchemmerJapanIvan Magalhaes NEW
Smith V MacleadSpainAsiya Javayant PROPOSAL
David B WaycottCanadaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Leja D Marrier
Juan L Slusarski
Tony N Perin
Murillo P Ferencz
Ricardo H Waycott
Jennifer O Marrier
Jeanfrancois P Gillian
Silvio Z Rulapaugh
Adams J Ferencz
Juan G Nicka
Chavez M Foller
Sinclair O Kusko
Jones Z Saylors
Kaitlin W Maclead
Antonio H Shinko
Jeanfrancois U Sergi
Morrow K Perin
Johnson T Paprocki
Jeanfrancois A Wieser
Aika R Wieser
Claire A Malet
Alejandro W Schemmer
Jones D Paprocki
Salvatore G Dilliard
Juan R Caldarera
Aditya V Kolmetz
Adams L Darakjy
Jefferson T Stenseth
Jeanfrancois R Chui
Emily W Slusarski
Smith L Campain
Juan P Vocelka
Johnson A Dilliard
Claire S Royster
Jennifer V Perin
Jefferson J Royster
David X Rulapaugh
Mayumi E Figeroa
Aika B Kolmetz
Claire Y Nicka
Ashley S Stenseth
Leon P Poquette
Darci D Ostrosky
Maisha Z Chui
Chavez L Waycott
Emily E Malet
Silvio H Nestle
Deepesh W Morasca
Aika N Albares
Maisha G Poquette
IdCountryDate
1000Argentina2024-02-26
1001Australia2024-03-11
1002France2024-02-18
1003India2024-03-04
1004Australia2024-03-15
1005Brazil2024-03-04
1006Germany2024-03-05
1007Japan2024-02-21
1008Japan2024-02-24
1009India2024-03-10
1010Germany2024-03-04
1011Argentina2024-03-05
1012Spain2024-02-24
1013Brazil2024-03-03
1014Italy2024-03-10
1015Japan2024-02-29
1016France2024-02-26
1017Argentina2024-02-29
1018France2024-03-04
1019Japan2024-02-24
1020United Kingdom2024-02-24
1021Spain2024-02-22
1022Spain2024-03-11
1023Italy2024-03-13
1024Italy2024-03-14
1025Australia2024-03-12
1026Canada2024-03-18
1027Brazil2024-03-06
1028Russia2024-02-21
1029Italy2024-02-26
1030Australia2024-03-07
1031Italy2024-03-09
1032Spain2024-02-19
1033France2024-03-10
1034United Kingdom2024-02-24
1035Spain2024-03-01
1036India2024-03-16
1037Italy2024-02-29
1038Brazil2024-03-13
1039Germany2024-03-12
1040Argentina2024-03-06
1041Canada2024-02-26
1042India2024-03-14
1043Brazil2024-03-03
1044Canada2024-03-01
1045Japan2024-03-03
1046Argentina2024-03-18
1047Russia2024-03-08
1048India2024-02-20
1049Argentina2024-02-25

On-Demand Data

NameIdCountryDate
Faith Q Whobrey1000Brazil2024-03-07
Claire U Nestle1001Spain2024-03-13
Mayumi H Vocelka1002Germany2024-02-22
Darci I Ruta1003Japan2024-03-09
Munro T Shinko1004India2024-03-03
Ivar T Tollner1005Australia2024-03-18
Julie M Bowley1006Spain2024-02-20
Juan I Ostrosky1007Russia2024-02-18
Darci L Gillian1008Germany2024-03-15
Jones V Sergi1009Australia2024-03-05
Darci B Chui1010Australia2024-02-23
Wickens K Gillian1011Germany2024-03-06
Costa J Royster1012Spain2024-03-03
Jeanfrancois Y Royster1013Japan2024-02-28
Stacey O Inouye1014Italy2024-02-23
Cody Q Waycott1015France2024-03-05
Mayumi N Kusko1016Japan2024-03-14
Maisha H Garufi1017India2024-03-13
Rodrigues J Rim1018India2024-03-18
Jefferson J Venere1019Canada2024-03-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy C GlickJapanBernardo Dominic NEGOTIATION
Juan G IturbideCanadaBernardo Dominic UNQUALIFIED
Maisha Z VenereBrazilIoni Bowcher RENEWAL
Leon B BologniaUnited KingdomIoni Bowcher RENEWAL
Leon B MarrierGermanyIvan Magalhaes PROPOSAL
Sinclair K CaudyRussiaElwin Sharvill NEGOTIATION
Emily O OstroskyCanadaStephen Shaw NEW
Leon Z AmigonAustraliaAsiya Javayant QUALIFIED
Misaki F VenereRussiaElwin Sharvill NEW
Jeanfrancois M InouyeItalyBernardo Dominic PROPOSAL
James U FigeroaSpainBernardo Dominic PROPOSAL
David K ButtFranceElwin Sharvill RENEWAL
Adams G NestleUnited KingdomElwin Sharvill NEGOTIATION
Cody V ShinkoBrazilAnna Fali PROPOSAL
Maisha C RulapaughArgentinaOnyama Limba UNQUALIFIED
Clifford A WieserRussiaAnna Fali PROPOSAL
Alejandro B KuskoGermanyBernardo Dominic NEGOTIATION
Nicolas B CaldareraSpainAnna Fali QUALIFIED
Morrow T SaylorsRussiaBernardo Dominic NEW
James E CaudyArgentinaElwin Sharvill QUALIFIED
Octavia F DoeFranceIoni Bowcher NEGOTIATION
Clifford U OldroydSpainAmy Elsner PROPOSAL
Silvio W CaldareraItalyIvan Magalhaes PROPOSAL
Wickens T BologniaUnited KingdomAnna Fali NEGOTIATION
Maisha T DilliardItalyAmy Elsner UNQUALIFIED
Emily U RutaIndiaIoni Bowcher UNQUALIFIED
Smith V DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Maria X BriddickCanadaOnyama Limba UNQUALIFIED
Munro D CaudySpainElwin Sharvill NEGOTIATION
Darci A FlosiSpainXuxue Feng UNQUALIFIED
David G SaylorsItalyIoni Bowcher PROPOSAL
James T BologniaBrazilIvan Magalhaes PROPOSAL
Johnson E MaletRussiaOnyama Limba RENEWAL
Smith E MorascaRussiaXuxue Feng UNQUALIFIED
Leja Y VenereFranceStephen Shaw RENEWAL
Maisha G ButtJapanBernardo Dominic UNQUALIFIED
Salvatore O SaylorsGermanyAmy Elsner QUALIFIED
David B StensethIndiaStephen Shaw PROPOSAL
Ivar E NestleBrazilIoni Bowcher QUALIFIED
Aditya P InouyeAustraliaAsiya Javayant 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>