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
Izzy T MaletRussiaAnna Fali PROPOSAL
Kaitlin F BriddickUnited KingdomAsiya Javayant QUALIFIED
Francesco D RoysterBrazilStephen Shaw NEGOTIATION
Juan W MarrierRussiaBernardo Dominic PROPOSAL
Ricardo J DilliardUnited KingdomAsiya Javayant PROPOSAL
Greenwood U BologniaAustraliaElwin Sharvill UNQUALIFIED
Ivar G VenereUnited KingdomBernardo Dominic NEGOTIATION
Juan C RimRussiaAmy Elsner PROPOSAL
Octavia Q KuskoAustraliaIoni Bowcher RENEWAL
Jennifer W VenereJapanXuxue Feng PROPOSAL
Costa H SergiAustraliaIvan Magalhaes NEGOTIATION
Jefferson H RulapaughIndiaOnyama Limba NEGOTIATION
Ivar M ShinkoItalyAsiya Javayant NEGOTIATION
Rodrigues D OstroskyIndiaXuxue Feng NEGOTIATION
Isabel D StensethBrazilStephen Shaw RENEWAL
Jeanfrancois C RoysterBrazilAnna Fali UNQUALIFIED
Tony W DoeJapanElwin Sharvill NEGOTIATION
Octavia G CaldareraJapanIoni Bowcher PROPOSAL
Munro Q WieserRussiaAmy Elsner UNQUALIFIED
Arvin O MarrierUnited KingdomStephen Shaw RENEWAL
Tony H PoquetteFranceAsiya Javayant RENEWAL
Jennifer X MaletRussiaAmy Elsner NEGOTIATION
Claire K WhobreySpainAmy Elsner UNQUALIFIED
Claire L VenereIndiaAmy Elsner RENEWAL
Adams A RulapaughArgentinaXuxue Feng PROPOSAL
Nicolas I FlosiGermanyElwin Sharvill QUALIFIED
Maisha X NickaBrazilAsiya Javayant RENEWAL
Isabel U WaycottItalyAsiya Javayant NEW
Greenwood F AlbaresUnited KingdomStephen Shaw NEGOTIATION
Leon V RulapaughFranceStephen Shaw RENEWAL
Clifford A PaprockiJapanIoni Bowcher QUALIFIED
Wickens B StockhamCanadaStephen Shaw NEW
Jones X CaudyUnited KingdomOnyama Limba QUALIFIED
Sinclair Z GarufiRussiaAsiya Javayant NEGOTIATION
Ashley S StensethItalyElwin Sharvill RENEWAL
Maisha A AmigonIndiaXuxue Feng RENEWAL
Ricardo C MacleadBrazilIoni Bowcher UNQUALIFIED
Izzy L FollerCanadaBernardo Dominic NEGOTIATION
Johnson U WhobreyCanadaAnna Fali RENEWAL
Jeanfrancois K RulapaughCanadaStephen Shaw UNQUALIFIED
Sinclair B PerinArgentinaXuxue Feng NEGOTIATION
Maria E DoeItalyStephen Shaw UNQUALIFIED
Morrow X NestleSpainBernardo Dominic PROPOSAL
Nicolas Z IturbideAustraliaXuxue Feng NEGOTIATION
David Y GarufiItalyIvan Magalhaes NEW
Julie P ShinkoItalyElwin Sharvill RENEWAL
Francesco N OstroskyBrazilOnyama Limba UNQUALIFIED
Deepesh I OldroydUnited KingdomBernardo Dominic NEW
Aruna N NestleUnited KingdomAnna Fali QUALIFIED
Leja F FollerIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Izzy Y FlosiAustraliaStephen Shaw NEGOTIATION
Smith C OldroydBrazilAmy Elsner PROPOSAL
Kadeem I PaprockiSpainElwin Sharvill UNQUALIFIED
Claire U StockhamJapanStephen Shaw NEGOTIATION
Kaitlin N StockhamSpainAmy Elsner QUALIFIED
Jones V PerinFranceAsiya Javayant NEW
Antonio O OldroydGermanyAmy Elsner RENEWAL
Kaitlin M CaldareraUnited KingdomOnyama Limba PROPOSAL
Ricardo L IturbideRussiaOnyama Limba NEW
Wickens B GarufiGermanyAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore H PerinRussia2024-04-18King, Christopher A Esq PROPOSAL36Anna Fali
1001Jones T CampainIndia2024-04-26Commercial Press PROPOSAL24Ivan Magalhaes
1002Aditya J FerenczSpain2024-04-05Feiner Bros NEGOTIATION98Stephen Shaw
1003Arvin X PaprockiIndia2024-04-03Feltz Printing Service PROPOSAL51Ivan Magalhaes
1004Costa I IturbideRussia2024-04-10Dorl, James J Esq RENEWAL6Ivan Magalhaes
1005Ashley T FlosiRussia2024-04-13Chapman, Ross E Esq UNQUALIFIED37Amy Elsner
1006Leja B SlusarskiCanada2024-04-16Rousseaux, Michael Esq NEW74Xuxue Feng
1007Izzy L FlosiItaly2024-04-16Printing Dimensions NEGOTIATION70Ioni Bowcher
1008Francesco F ShinkoArgentina2024-04-22Buckley Miller Wright RENEWAL24Bernardo Dominic
1009Greenwood H SergiGermany2024-04-24Chemel, James L Cpa NEW60Onyama Limba
1010Ivar C GillianRussia2024-04-05Chapman, Ross E Esq NEW38Anna Fali
1011Ashley V FigeroaBrazil2024-04-11Buckley Miller Wright QUALIFIED43Ioni Bowcher
1012Leon X CaudyJapan2024-04-20Rousseaux, Michael Esq PROPOSAL48Onyama Limba
1013Aruna R FollerCanada2024-04-11Printing Dimensions PROPOSAL69Stephen Shaw
1014Jones Z FlosiFrance2024-04-14Chanay, Jeffrey A Esq QUALIFIED86Anna Fali
1015Emily P InouyeGermany2024-04-09Printing Dimensions PROPOSAL86Onyama Limba
1016Smith S SchemmerRussia2024-04-22Chemel, James L Cpa NEW88Anna Fali
1017Ivar N AmigonJapan2024-04-16Chanay, Jeffrey A Esq NEW55Stephen Shaw
1018Mayumi Q MarrierGermany2024-04-18Truhlar And Truhlar Attys NEGOTIATION74Xuxue Feng
1019Juan J StockhamBrazil2024-04-30Feiner Bros QUALIFIED37Onyama Limba
1020Stacey A MaletCanada2024-04-18Rangoni Of Florence PROPOSAL87Anna Fali
1021Smith N FollerFrance2024-04-22Chemel, James L Cpa QUALIFIED35Xuxue Feng
1022Munro V VenereJapan2024-04-02Rangoni Of Florence UNQUALIFIED83Anna Fali
1023Salvatore N BologniaJapan2024-04-03Rousseaux, Michael Esq PROPOSAL18Anna Fali
1024Jefferson C DarakjySpain2024-04-30King, Christopher A Esq NEW0Amy Elsner
1025Salvatore D SergiUnited Kingdom2024-05-01Chanay, Jeffrey A Esq UNQUALIFIED64Elwin Sharvill
1026Antonio R CaldareraSpain2024-04-22Chemel, James L Cpa RENEWAL89Ivan Magalhaes
1027Leon D DarakjyFrance2024-04-18Benton, John B Jr RENEWAL74Anna Fali
1028Isabel G AlbaresJapan2024-04-15Printing Dimensions RENEWAL50Bernardo Dominic
1029Francesco A GauchoJapan2024-05-01King, Christopher A Esq RENEWAL54Amy Elsner
1030Johnson I BriddickItaly2024-04-16King, Christopher A Esq NEW87Bernardo Dominic
1031Faith W ShinkoIndia2024-04-26Buckley Miller Wright RENEWAL78Ivan Magalhaes
1032Kaitlin N WieserSpain2024-04-13Buckley Miller Wright UNQUALIFIED0Amy Elsner
1033Adams Q BowleyBrazil2024-04-08Chapman, Ross E Esq QUALIFIED75Xuxue Feng
1034Maisha J GarufiSpain2024-04-09King, Christopher A Esq QUALIFIED13Onyama Limba
1035Morrow H DilliardUnited Kingdom2024-04-02Feltz Printing Service NEW4Onyama Limba
1036Arvin G MarrierBrazil2024-04-22Feltz Printing Service NEGOTIATION9Anna Fali
1037Morrow R MarrierFrance2024-04-13Feiner Bros QUALIFIED72Xuxue Feng
1038Salvatore O CampainUnited Kingdom2024-04-30Chemel, James L Cpa NEW12Bernardo Dominic
1039Emily Q BologniaJapan2024-04-13Chanay, Jeffrey A Esq PROPOSAL58Anna Fali
1040Kaitlin N RulapaughGermany2024-04-05Chemel, James L Cpa UNQUALIFIED42Ioni Bowcher
1041Mayumi I CaldareraUnited Kingdom2024-04-20Morlong Associates NEW26Bernardo Dominic
1042Leja A NickaSpain2024-04-24King, Christopher A Esq NEGOTIATION49Amy Elsner
1043Smith E PerinCanada2024-04-25King, Christopher A Esq NEGOTIATION64Elwin Sharvill
1044Jefferson E DarakjySpain2024-05-01Truhlar And Truhlar Attys NEGOTIATION97Anna Fali
1045Isabel P AlbaresUnited Kingdom2024-04-17Chemel, James L Cpa RENEWAL41Xuxue Feng
1046Octavia W IturbideSpain2024-04-03Dorl, James J Esq NEGOTIATION41Asiya Javayant
1047Misaki P RimAustralia2024-04-22Dorl, James J Esq UNQUALIFIED14Ioni Bowcher
1048Kadeem W CaudyArgentina2024-04-24Commercial Press RENEWAL53Asiya Javayant
1049Smith Y BowleyUnited Kingdom2024-04-02Feltz Printing Service UNQUALIFIED13Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Octavia F MarrierGermanyAsiya Javayant QUALIFIED
Ricardo E KuskoBrazilBernardo Dominic QUALIFIED
Misaki D WaycottSpainIoni Bowcher RENEWAL
Morrow I InouyeGermanyBernardo Dominic QUALIFIED
Maria E RimArgentinaIoni Bowcher UNQUALIFIED
Leja Q AmigonCanadaElwin Sharvill RENEWAL
Maria Y OldroydGermanyIvan Magalhaes QUALIFIED
Stacey F FerenczUnited KingdomOnyama Limba UNQUALIFIED
Sinclair S AmigonRussiaAsiya Javayant RENEWAL
Johnson M VocelkaUnited KingdomAnna Fali UNQUALIFIED
Wickens F MaletBrazilElwin Sharvill PROPOSAL
Murillo U RimAustraliaXuxue Feng NEW
Greenwood T RulapaughRussiaIvan Magalhaes UNQUALIFIED
Misaki C StockhamSpainAmy Elsner UNQUALIFIED
David K PoquetteRussiaStephen Shaw RENEWAL
Munro J KolmetzItalyXuxue Feng NEW
Rodrigues U GarufiJapanElwin Sharvill PROPOSAL
Murillo U PerinSpainAsiya Javayant QUALIFIED
Aruna H RutaJapanIoni Bowcher NEGOTIATION
Cody C AlbaresRussiaElwin Sharvill UNQUALIFIED
Jefferson H AmigonItalyIoni Bowcher NEW
Ivar F FigeroaCanadaAmy Elsner QUALIFIED
Leon X CaldareraJapanAmy Elsner NEGOTIATION
Adams P FollerBrazilStephen Shaw UNQUALIFIED
Antonio E CaldareraUnited KingdomAnna Fali QUALIFIED
Silvio Y CaudyCanadaBernardo Dominic UNQUALIFIED
Mujtaba O SchemmerItalyIoni Bowcher PROPOSAL
Maisha F BowleyGermanyAnna Fali QUALIFIED
Leon L KolmetzJapanStephen Shaw QUALIFIED
Jeanfrancois Z DoeSpainBernardo Dominic QUALIFIED
Leja S AmigonCanadaAsiya Javayant QUALIFIED
Maisha O BriddickItalyXuxue Feng UNQUALIFIED
Kadeem P PaprockiRussiaAnna Fali RENEWAL
Isabel T FigeroaRussiaXuxue Feng QUALIFIED
Leon B NestleCanadaIvan Magalhaes RENEWAL
David L RoysterSpainBernardo Dominic RENEWAL
Darci U FerenczGermanyElwin Sharvill PROPOSAL
Mayumi W WhobreyArgentinaStephen Shaw UNQUALIFIED
David J DarakjySpainOnyama Limba UNQUALIFIED
Leon W SlusarskiAustraliaOnyama Limba PROPOSAL
Ivar M KolmetzIndiaOnyama Limba NEGOTIATION
Leja T FerenczSpainOnyama Limba NEGOTIATION
Izzy P StensethFranceAmy Elsner PROPOSAL
David I StockhamJapanIvan Magalhaes UNQUALIFIED
Isabel Y WieserGermanyStephen Shaw QUALIFIED
Cody Y SergiJapanOnyama Limba UNQUALIFIED
Adams Q PaprockiCanadaIoni Bowcher PROPOSAL
Cody I VocelkaAustraliaElwin Sharvill RENEWAL
Nicolas X GarufiArgentinaBernardo Dominic NEW
Jefferson E NickaItalyAsiya Javayant RENEWAL
Frozen Columns
Name
Darci X Butt
Tony H Amigon
Adams S Gaucho
Juan P Amigon
Jennifer P Bowley
Aruna C Darakjy
Costa T Perin
Wickens N Stockham
Aditya R Caudy
Alejandro W Sergi
Johnson R Ruta
David I Foller
Murillo D Caudy
Emily C Butt
Morrow R Kusko
Jefferson Q Marrier
David F Figeroa
Aika M Poquette
Francesco A Maclead
Aruna F Rulapaugh
Emily L Vocelka
Juan H Rulapaugh
Cody O Chui
Ricardo O Stenseth
Chavez W Foller
Julie E Nestle
Greenwood E Kolmetz
Jeanfrancois X Amigon
Johnson L Butt
David E Doe
Deepesh L Waycott
Smith J Ferencz
Clifford L Inouye
Stacey H Waycott
David M Figeroa
Deepesh E Darakjy
Maria B Malet
Clifford B Tollner
Johnson X Shinko
Stacey Q Schemmer
Deepesh G Bowley
Claire H Nestle
Julie F Morasca
Jennifer N Sergi
Deepesh M Tollner
Jennifer L Marrier
Darci K Albares
Sinclair Q Ostrosky
Antonio K Caudy
Mayumi R Caudy
IdCountryDate
1000United Kingdom2024-04-25
1001Spain2024-04-26
1002Brazil2024-04-21
1003France2024-04-20
1004Australia2024-04-11
1005Italy2024-04-18
1006Australia2024-04-17
1007Italy2024-04-24
1008India2024-04-21
1009United Kingdom2024-04-25
1010France2024-04-11
1011Brazil2024-05-01
1012Russia2024-04-02
1013Canada2024-04-05
1014France2024-05-01
1015Australia2024-04-29
1016India2024-04-19
1017Italy2024-04-06
1018Spain2024-04-02
1019Russia2024-04-14
1020Germany2024-04-06
1021Spain2024-04-07
1022Argentina2024-04-09
1023Spain2024-04-14
1024India2024-04-25
1025Canada2024-04-08
1026Canada2024-04-05
1027United Kingdom2024-04-26
1028Russia2024-04-13
1029India2024-04-16
1030Russia2024-04-25
1031Canada2024-04-22
1032Germany2024-04-29
1033Germany2024-04-21
1034India2024-04-29
1035Russia2024-04-21
1036France2024-04-05
1037Germany2024-04-15
1038Australia2024-04-30
1039Japan2024-04-16
1040Argentina2024-04-22
1041India2024-04-12
1042Brazil2024-04-04
1043United Kingdom2024-04-03
1044Germany2024-04-23
1045Brazil2024-04-28
1046Russia2024-04-12
1047Brazil2024-04-12
1048Argentina2024-04-09
1049Italy2024-04-17

On-Demand Data

NameIdCountryDate
Tony U Glick1000United Kingdom2024-04-10
Kaitlin T Malet1001United Kingdom2024-04-08
Aruna J Albares1002Japan2024-04-15
David K Darakjy1003Italy2024-04-22
Smith N Bowley1004India2024-04-27
Darci E Malet1005Canada2024-04-02
Munro H Bolognia1006India2024-04-12
Deepesh N Ferencz1007United Kingdom2024-04-19
Isabel C Malet1008Brazil2024-04-09
Deepesh T Campain1009Italy2024-04-20
Stacey U Albares1010France2024-04-06
Clifford S Gillian1011Spain2024-04-12
Greenwood D Malet1012Spain2024-04-18
Clifford A Nestle1013Germany2024-04-11
Jennifer M Gaucho1014Brazil2024-04-13
Wickens J Morasca1015Japan2024-04-17
Claire F Inouye1016Australia2024-04-04
Aditya C Glick1017Japan2024-04-27
Alejandro P Foller1018India2024-04-20
Morrow F Slusarski1019United Kingdom2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan F SergiAustraliaIoni Bowcher RENEWAL
Nicolas C NickaCanadaElwin Sharvill NEGOTIATION
Aika F CampainArgentinaOnyama Limba NEGOTIATION
David Y NestleUnited KingdomIvan Magalhaes NEGOTIATION
Izzy J WaycottIndiaOnyama Limba NEW
Darci I CampainRussiaIoni Bowcher PROPOSAL
Mayumi S FerenczRussiaIoni Bowcher UNQUALIFIED
Jennifer F GarufiRussiaBernardo Dominic NEW
Silvio L AlbaresBrazilAmy Elsner RENEWAL
Kadeem S WhobreyJapanElwin Sharvill PROPOSAL
Cody T ButtIndiaOnyama Limba UNQUALIFIED
Claire S RoysterUnited KingdomXuxue Feng PROPOSAL
Ashley J WieserFranceIvan Magalhaes RENEWAL
Adams A MacleadUnited KingdomIvan Magalhaes QUALIFIED
Jones E RutaBrazilIoni Bowcher NEW
Rodrigues Z CaudySpainOnyama Limba NEW
Aditya R SaylorsUnited KingdomOnyama Limba NEGOTIATION
Leja N RimBrazilAmy Elsner UNQUALIFIED
Julie Z CaldareraRussiaOnyama Limba PROPOSAL
Ricardo B FollerRussiaAmy Elsner UNQUALIFIED
Nicolas B FollerSpainAmy Elsner PROPOSAL
Mujtaba I StockhamIndiaAsiya Javayant QUALIFIED
Stacey E FerenczFranceAsiya Javayant PROPOSAL
Jennifer W FerenczBrazilElwin Sharvill UNQUALIFIED
Emily F CampainFranceStephen Shaw NEW
Octavia E KuskoJapanAnna Fali NEGOTIATION
Jones Y ShinkoRussiaIoni Bowcher NEW
Ricardo O AlbaresGermanyBernardo Dominic QUALIFIED
Jennifer Z RutaAustraliaOnyama Limba QUALIFIED
Johnson L RulapaughArgentinaElwin Sharvill QUALIFIED
Cody D MaletRussiaOnyama Limba PROPOSAL
Darci D MarrierAustraliaXuxue Feng RENEWAL
Jeanfrancois I MaletAustraliaOnyama Limba RENEWAL
Claire N PerinFranceBernardo Dominic NEGOTIATION
Juan N KolmetzFranceAmy Elsner QUALIFIED
Sinclair H CampainJapanAsiya Javayant PROPOSAL
Kaitlin D NestleGermanyBernardo Dominic QUALIFIED
Chavez F CampainAustraliaStephen Shaw PROPOSAL
Cody B PoquetteJapanAmy Elsner NEW
Silvio H BologniaUnited KingdomOnyama Limba NEGOTIATION

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