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
Adams M DilliardUnited KingdomStephen Shaw UNQUALIFIED
Sinclair C CaldareraItalyStephen Shaw PROPOSAL
Maisha T FigeroaArgentinaAmy Elsner RENEWAL
Jeanfrancois Q ChuiAustraliaAmy Elsner NEW
Mujtaba A WieserItalyIoni Bowcher NEW
Murillo H InouyeFranceAmy Elsner UNQUALIFIED
Antonio D FerenczFranceBernardo Dominic NEGOTIATION
Adams N AlbaresBrazilElwin Sharvill QUALIFIED
Costa P DilliardCanadaOnyama Limba QUALIFIED
Sinclair X BologniaAustraliaAnna Fali UNQUALIFIED
James R SaylorsIndiaAsiya Javayant UNQUALIFIED
Nicolas Q GillianGermanyStephen Shaw NEGOTIATION
Arvin U FigeroaFranceAnna Fali NEGOTIATION
Silvio T MacleadSpainIvan Magalhaes UNQUALIFIED
Isabel Y PoquetteJapanOnyama Limba NEW
Faith C WhobreyFranceBernardo Dominic RENEWAL
Aruna T AlbaresSpainElwin Sharvill QUALIFIED
Jennifer X FerenczJapanAmy Elsner PROPOSAL
Jones K OldroydBrazilAsiya Javayant PROPOSAL
Costa G MaletArgentinaStephen Shaw UNQUALIFIED
Jeanfrancois K WieserGermanyBernardo Dominic QUALIFIED
Jennifer T WhobreyArgentinaAnna Fali PROPOSAL
Smith C CaudyUnited KingdomIoni Bowcher PROPOSAL
Adams K WieserItalyXuxue Feng PROPOSAL
Faith I MorascaJapanAnna Fali PROPOSAL
Salvatore J OstroskyUnited KingdomElwin Sharvill NEW
Silvio A AlbaresUnited KingdomStephen Shaw RENEWAL
Maria E CaudyGermanyIvan Magalhaes NEW
Mujtaba D AmigonFranceXuxue Feng PROPOSAL
Jeanfrancois K FigeroaCanadaIvan Magalhaes NEGOTIATION
Aika U GauchoGermanyAsiya Javayant QUALIFIED
Stacey S ShinkoItalyIvan Magalhaes NEGOTIATION
Greenwood Y PoquetteItalyBernardo Dominic NEW
Adams H IturbideGermanyElwin Sharvill NEGOTIATION
Johnson E WieserJapanAsiya Javayant NEW
Murillo A GlickFranceAsiya Javayant RENEWAL
Misaki Q KolmetzSpainOnyama Limba NEGOTIATION
Leja L ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Munro F ButtJapanBernardo Dominic RENEWAL
Tony G StockhamSpainAsiya Javayant RENEWAL
Munro D NestleFranceXuxue Feng PROPOSAL
Francesco F DoeSpainElwin Sharvill UNQUALIFIED
Jefferson H InouyeSpainXuxue Feng RENEWAL
Nicolas X NickaSpainAmy Elsner RENEWAL
Jennifer R MarrierCanadaElwin Sharvill UNQUALIFIED
Alejandro S CaudyIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois V RutaItalyXuxue Feng RENEWAL
Arvin E FollerUnited KingdomAmy Elsner QUALIFIED
Johnson Q InouyeUnited KingdomXuxue Feng PROPOSAL
Izzy T TollnerJapanAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley T KuskoIndiaElwin Sharvill RENEWAL
Jeanfrancois H MaletBrazilElwin Sharvill NEW
Arvin J OstroskyItalyOnyama Limba UNQUALIFIED
David F RutaUnited KingdomElwin Sharvill QUALIFIED
Jones T MacleadUnited KingdomElwin Sharvill QUALIFIED
Chavez I VocelkaJapanElwin Sharvill PROPOSAL
Octavia W MaletJapanXuxue Feng NEGOTIATION
Ivar D PaprockiCanadaAsiya Javayant NEW
Aditya Y CampainCanadaIoni Bowcher NEW
Jefferson O IturbideItalyIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo M TollnerCanada2024-04-15Buckley Miller Wright UNQUALIFIED65Bernardo Dominic
1001Deepesh A CaldareraUnited Kingdom2024-04-20Buckley Miller Wright NEGOTIATION71Anna Fali
1002Cody E WaycottSpain2024-04-13Commercial Press PROPOSAL16Elwin Sharvill
1003Costa F CaudyArgentina2024-04-28Chemel, James L Cpa PROPOSAL49Anna Fali
1004Arvin C MaletSpain2024-04-26Dorl, James J Esq NEW59Elwin Sharvill
1005Salvatore Q DoeArgentina2024-04-07King, Christopher A Esq QUALIFIED75Ivan Magalhaes
1006Morrow N FigeroaUnited Kingdom2024-04-16Commercial Press NEW98Stephen Shaw
1007Emily H KuskoArgentina2024-05-02Feltz Printing Service PROPOSAL38Amy Elsner
1008Arvin N RutaBrazil2024-04-08Benton, John B Jr UNQUALIFIED52Stephen Shaw
1009Mayumi T DarakjyItaly2024-04-22Buckley Miller Wright NEGOTIATION59Ioni Bowcher
1010Kadeem X WaycottBrazil2024-04-07King, Christopher A Esq NEGOTIATION80Ioni Bowcher
1011Greenwood U ShinkoJapan2024-05-06Feltz Printing Service NEW55Xuxue Feng
1012Jones Z OstroskyJapan2024-04-27Printing Dimensions NEGOTIATION35Bernardo Dominic
1013Aruna N MorascaCanada2024-04-13Buckley Miller Wright QUALIFIED8Ioni Bowcher
1014Emily L SchemmerFrance2024-04-30Rangoni Of Florence NEGOTIATION17Onyama Limba
1015Misaki L RutaBrazil2024-04-17Rangoni Of Florence UNQUALIFIED26Ioni Bowcher
1016Clifford R GillianIndia2024-04-18Feiner Bros RENEWAL76Xuxue Feng
1017Darci D WhobreyAustralia2024-05-02Benton, John B Jr PROPOSAL67Anna Fali
1018Jennifer Z GlickUnited Kingdom2024-04-24Chapman, Ross E Esq NEW5Elwin Sharvill
1019Darci H StockhamRussia2024-04-30Chemel, James L Cpa UNQUALIFIED91Bernardo Dominic
1020Emily M StensethRussia2024-04-28Chapman, Ross E Esq NEW53Anna Fali
1021Jones E ShinkoJapan2024-04-15Feiner Bros RENEWAL83Ivan Magalhaes
1022Sinclair E RutaFrance2024-04-22Feiner Bros NEW98Onyama Limba
1023Adams I MorascaBrazil2024-05-06Rousseaux, Michael Esq UNQUALIFIED3Anna Fali
1024Adams O StensethUnited Kingdom2024-05-06Rangoni Of Florence NEW35Ioni Bowcher
1025Leon E VocelkaItaly2024-04-25Rousseaux, Michael Esq NEW26Stephen Shaw
1026Johnson T CampainArgentina2024-05-01Feltz Printing Service NEW31Onyama Limba
1027Antonio F FollerGermany2024-04-25Commercial Press NEW82Asiya Javayant
1028Munro X CaudyBrazil2024-05-04Chanay, Jeffrey A Esq NEGOTIATION26Elwin Sharvill
1029Morrow O SchemmerCanada2024-05-01Chemel, James L Cpa QUALIFIED65Asiya Javayant
1030Ricardo B IturbideJapan2024-05-03Feltz Printing Service RENEWAL7Xuxue Feng
1031Aika L KolmetzIndia2024-04-20Rousseaux, Michael Esq NEW25Stephen Shaw
1032Jefferson I OldroydArgentina2024-04-16Feiner Bros RENEWAL26Ioni Bowcher
1033Alejandro N FerenczJapan2024-05-05Rangoni Of Florence UNQUALIFIED93Ivan Magalhaes
1034Emily Y NickaAustralia2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED13Ivan Magalhaes
1035Alejandro G TollnerRussia2024-04-16Buckley Miller Wright UNQUALIFIED30Amy Elsner
1036Jefferson U InouyeSpain2024-04-13Feiner Bros RENEWAL9Bernardo Dominic
1037Jones C WieserIndia2024-04-13Rousseaux, Michael Esq PROPOSAL8Amy Elsner
1038Stacey Q KuskoSpain2024-04-12Benton, John B Jr QUALIFIED92Onyama Limba
1039Octavia Q StockhamBrazil2024-05-04Printing Dimensions RENEWAL52Amy Elsner
1040Tony N GlickJapan2024-04-17Dorl, James J Esq RENEWAL59Anna Fali
1041Mujtaba D ShinkoAustralia2024-04-17Dorl, James J Esq NEW16Anna Fali
1042Jennifer P RulapaughArgentina2024-04-28Chanay, Jeffrey A Esq NEGOTIATION14Ivan Magalhaes
1043Ricardo J ChuiGermany2024-04-25Rangoni Of Florence NEGOTIATION37Amy Elsner
1044Alejandro J ChuiAustralia2024-04-20Commercial Press RENEWAL63Asiya Javayant
1045Jeanfrancois P SaylorsItaly2024-05-06Truhlar And Truhlar Attys NEW7Onyama Limba
1046David W GlickCanada2024-05-05King, Christopher A Esq UNQUALIFIED76Elwin Sharvill
1047Ashley K BologniaItaly2024-04-10King, Christopher A Esq QUALIFIED20Asiya Javayant
1048Isabel I WieserGermany2024-04-14Buckley Miller Wright QUALIFIED37Amy Elsner
1049Salvatore V SlusarskiRussia2024-04-20King, Christopher A Esq QUALIFIED81Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Clifford E NestleSpainStephen Shaw NEGOTIATION
Chavez U SaylorsIndiaIoni Bowcher PROPOSAL
Smith F StockhamItalyIoni Bowcher UNQUALIFIED
Deepesh L CampainSpainIoni Bowcher PROPOSAL
Jeanfrancois K SergiFranceAsiya Javayant UNQUALIFIED
Alejandro J DilliardFranceAsiya Javayant NEW
Juan Q NickaRussiaStephen Shaw NEGOTIATION
Izzy F DoeIndiaBernardo Dominic RENEWAL
Jefferson I WhobreyAustraliaXuxue Feng QUALIFIED
Antonio Q DilliardFranceOnyama Limba PROPOSAL
Rodrigues N BowleyArgentinaXuxue Feng UNQUALIFIED
James J ButtItalyStephen Shaw RENEWAL
Leja T SchemmerSpainIoni Bowcher UNQUALIFIED
Deepesh Y MorascaSpainOnyama Limba NEW
Jones F GarufiFranceAmy Elsner UNQUALIFIED
Emily W DarakjyJapanXuxue Feng QUALIFIED
Francesco X AlbaresAustraliaBernardo Dominic QUALIFIED
Aditya L StensethFranceIvan Magalhaes NEGOTIATION
Chavez N DoeArgentinaOnyama Limba NEGOTIATION
Mayumi V AmigonArgentinaXuxue Feng NEGOTIATION
Silvio T CaudyGermanyXuxue Feng NEGOTIATION
Darci D RimSpainStephen Shaw UNQUALIFIED
Maisha N RulapaughBrazilIoni Bowcher NEGOTIATION
Chavez D NestleFranceAsiya Javayant QUALIFIED
Ashley D GlickFranceBernardo Dominic QUALIFIED
Claire D ChuiGermanyOnyama Limba QUALIFIED
Juan J StockhamItalyElwin Sharvill RENEWAL
Izzy M VenereAustraliaIoni Bowcher QUALIFIED
Kaitlin K SergiGermanyIoni Bowcher UNQUALIFIED
Kaitlin M AmigonItalyAsiya Javayant RENEWAL
Aruna M AmigonFranceOnyama Limba PROPOSAL
Alejandro G WhobreyRussiaAsiya Javayant NEGOTIATION
Jefferson Q InouyeArgentinaOnyama Limba NEGOTIATION
Juan C VenereRussiaOnyama Limba NEW
Arvin X CaldareraBrazilStephen Shaw UNQUALIFIED
Stacey K ShinkoBrazilAsiya Javayant QUALIFIED
Aika R RimAustraliaIoni Bowcher PROPOSAL
Tony T WaycottCanadaIoni Bowcher UNQUALIFIED
Antonio Q RimGermanyAmy Elsner NEW
Stacey N MacleadBrazilIvan Magalhaes NEGOTIATION
Leja W BologniaFranceStephen Shaw NEGOTIATION
Adams L RutaAustraliaXuxue Feng QUALIFIED
David P StensethIndiaElwin Sharvill NEW
Leja W BologniaSpainStephen Shaw QUALIFIED
Stacey H InouyeFranceAsiya Javayant NEGOTIATION
Jefferson W IturbideIndiaStephen Shaw RENEWAL
Maria H StensethBrazilIvan Magalhaes QUALIFIED
Kaitlin U MacleadSpainAnna Fali RENEWAL
Aditya B InouyeIndiaAnna Fali NEW
Maria J FollerJapanElwin Sharvill RENEWAL
Frozen Columns
Name
Ashley D Vocelka
Kaitlin P Perin
Kadeem W Ferencz
Leon R Campain
Emily H Ostrosky
Chavez Q Campain
Jennifer A Figeroa
Aika P Amigon
Jeanfrancois F Rim
Octavia V Ferencz
Munro R Gaucho
Cody L Amigon
Mujtaba A Whobrey
Maria O Vocelka
Maisha F Foller
James V Garufi
Smith A Waycott
Leon X Saylors
Leon E Inouye
Aruna W Perin
Leja M Amigon
Ivar U Vocelka
Izzy X Ostrosky
Aika Y Slusarski
Maria H Morasca
Smith I Shinko
Clifford K Albares
Mujtaba H Stenseth
Wickens G Bowley
Faith C Iturbide
Arvin W Poquette
Alejandro H Nestle
Tony N Kusko
Arvin W Vocelka
Ashley G Dilliard
Costa N Waycott
Silvio R Malet
Isabel W Flosi
Silvio I Stenseth
Julie U Gaucho
James N Sergi
Rodrigues R Malet
Antonio M Butt
Alejandro B Bolognia
Morrow F Ostrosky
Tony N Foller
Isabel P Albares
Izzy R Garufi
Chavez K Stockham
Mayumi X Darakjy
IdCountryDate
1000France2024-04-26
1001Australia2024-05-01
1002Italy2024-05-04
1003Russia2024-04-16
1004France2024-04-21
1005Argentina2024-04-26
1006United Kingdom2024-04-30
1007India2024-04-23
1008Russia2024-04-10
1009Australia2024-04-16
1010Australia2024-04-12
1011Germany2024-04-17
1012Italy2024-04-20
1013France2024-04-13
1014Argentina2024-04-10
1015Argentina2024-04-20
1016Germany2024-04-20
1017Japan2024-04-25
1018United Kingdom2024-04-22
1019Brazil2024-04-19
1020Russia2024-04-28
1021Canada2024-04-07
1022Canada2024-04-12
1023India2024-04-13
1024France2024-04-22
1025Russia2024-04-14
1026Germany2024-05-05
1027Germany2024-04-30
1028Brazil2024-05-01
1029Germany2024-04-24
1030Argentina2024-04-30
1031Australia2024-04-17
1032Australia2024-04-29
1033Spain2024-04-23
1034Spain2024-04-29
1035Russia2024-05-05
1036United Kingdom2024-05-04
1037Spain2024-04-30
1038Russia2024-04-15
1039United Kingdom2024-04-23
1040Australia2024-04-13
1041Spain2024-04-18
1042Brazil2024-04-10
1043Italy2024-04-24
1044Canada2024-04-29
1045India2024-04-12
1046Italy2024-05-02
1047Japan2024-04-21
1048Brazil2024-04-13
1049France2024-04-13

On-Demand Data

NameIdCountryDate
Rodrigues N Rim1000India2024-04-24
Alejandro V Darakjy1001Argentina2024-04-08
Deepesh E Flosi1002United Kingdom2024-04-16
Greenwood A Kolmetz1003Spain2024-04-26
Clifford V Poquette1004Japan2024-04-08
Tony T Schemmer1005India2024-04-14
Munro O Stockham1006Germany2024-04-24
Julie X Schemmer1007France2024-04-07
Morrow M Kusko1008Canada2024-05-02
Munro Q Tollner1009United Kingdom2024-04-18
Mujtaba U Malet1010United Kingdom2024-04-09
Greenwood V Slusarski1011Russia2024-04-11
Ricardo B Paprocki1012Italy2024-05-02
Aditya K Malet1013Australia2024-04-21
Faith B Ferencz1014France2024-04-22
Leja Q Royster1015Canada2024-04-23
Octavia W Malet1016United Kingdom2024-04-30
Claire G Vocelka1017Canada2024-05-03
Izzy H Flosi1018Spain2024-05-06
Faith F Oldroyd1019United Kingdom2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez Z VocelkaArgentinaElwin Sharvill UNQUALIFIED
Ashley E OstroskyJapanAsiya Javayant QUALIFIED
Tony F StockhamSpainAsiya Javayant NEGOTIATION
Mayumi W DoeAustraliaOnyama Limba NEGOTIATION
Claire W RutaIndiaOnyama Limba UNQUALIFIED
Ricardo A NickaCanadaStephen Shaw PROPOSAL
Leja Z KuskoUnited KingdomXuxue Feng NEGOTIATION
Francesco X DoeSpainAsiya Javayant NEGOTIATION
David J ChuiCanadaAmy Elsner PROPOSAL
Deepesh S GillianItalyXuxue Feng PROPOSAL
Maria T PaprockiCanadaAsiya Javayant QUALIFIED
Claire L AmigonItalyAmy Elsner QUALIFIED
Emily T IturbideRussiaIvan Magalhaes QUALIFIED
Stacey B ShinkoRussiaIoni Bowcher PROPOSAL
Isabel S KolmetzArgentinaIvan Magalhaes PROPOSAL
Deepesh U NestleRussiaIoni Bowcher UNQUALIFIED
Jones Z CaudyJapanOnyama Limba UNQUALIFIED
Adams F NickaGermanyAmy Elsner NEGOTIATION
David E VocelkaBrazilElwin Sharvill UNQUALIFIED
Maisha F BowleyArgentinaAsiya Javayant PROPOSAL
Jeanfrancois P BriddickArgentinaOnyama Limba PROPOSAL
Deepesh U WhobreyFranceAsiya Javayant RENEWAL
Mujtaba T RulapaughItalyAsiya Javayant PROPOSAL
Faith Z MaletSpainXuxue Feng NEGOTIATION
Darci U BriddickIndiaXuxue Feng RENEWAL
Ricardo B GlickItalyAnna Fali PROPOSAL
Adams T MarrierItalyElwin Sharvill QUALIFIED
Munro N GarufiAustraliaAnna Fali RENEWAL
Stacey M NestleFranceAsiya Javayant NEGOTIATION
Isabel J CaldareraGermanyAsiya Javayant PROPOSAL
Jones Z InouyeCanadaAmy Elsner QUALIFIED
Ivar H RulapaughArgentinaOnyama Limba RENEWAL
Juan F MaletBrazilXuxue Feng PROPOSAL
Greenwood U WaycottUnited KingdomBernardo Dominic QUALIFIED
Leon A AlbaresSpainAnna Fali NEGOTIATION
Greenwood V RoysterItalyIoni Bowcher RENEWAL
Antonio N ChuiSpainAsiya Javayant NEGOTIATION
Jefferson F OstroskyFranceXuxue Feng NEGOTIATION
Silvio V MaletRussiaIoni Bowcher NEGOTIATION
Leon E InouyeArgentinaXuxue Feng 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>