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
Ivar X WieserJapanBernardo Dominic RENEWAL
Chavez F StockhamGermanyXuxue Feng NEW
Maria H RutaBrazilOnyama Limba QUALIFIED
David L BriddickAustraliaAnna Fali RENEWAL
Emily M RutaItalyBernardo Dominic NEGOTIATION
Mujtaba B GarufiCanadaElwin Sharvill QUALIFIED
Chavez P GlickJapanIvan Magalhaes NEW
Costa F GarufiIndiaOnyama Limba RENEWAL
Isabel F PoquetteCanadaAnna Fali RENEWAL
Smith D ChuiSpainOnyama Limba UNQUALIFIED
Aruna H OstroskyItalyIvan Magalhaes UNQUALIFIED
Murillo S MorascaCanadaAnna Fali NEGOTIATION
Murillo X IturbideGermanyAmy Elsner QUALIFIED
Arvin Y OstroskyItalyAmy Elsner RENEWAL
Kadeem C AmigonItalyAsiya Javayant QUALIFIED
Ivar E DoeFranceAmy Elsner NEW
Arvin E OldroydFranceAnna Fali UNQUALIFIED
Ricardo T IturbideSpainBernardo Dominic QUALIFIED
Juan J IturbideFranceAnna Fali PROPOSAL
Cody B SergiUnited KingdomStephen Shaw RENEWAL
Leon F FerenczItalyOnyama Limba NEW
Morrow E RimAustraliaXuxue Feng UNQUALIFIED
David I MorascaSpainOnyama Limba NEGOTIATION
Sinclair O WhobreyCanadaAmy Elsner PROPOSAL
Darci E RimItalyAsiya Javayant PROPOSAL
Cody X InouyeFranceIvan Magalhaes UNQUALIFIED
Greenwood Y GarufiItalyElwin Sharvill NEW
Alejandro P GillianRussiaOnyama Limba QUALIFIED
Ricardo B FigeroaGermanyAsiya Javayant NEW
Salvatore O MaletUnited KingdomXuxue Feng RENEWAL
Jeanfrancois X SaylorsJapanAnna Fali NEGOTIATION
Francesco M MaletIndiaXuxue Feng QUALIFIED
Clifford W BowleyIndiaXuxue Feng UNQUALIFIED
Darci Z NestleCanadaAnna Fali NEGOTIATION
Johnson J MarrierArgentinaAnna Fali RENEWAL
Deepesh L GarufiIndiaAsiya Javayant RENEWAL
Silvio S VenereGermanyBernardo Dominic QUALIFIED
Aruna U WhobreyGermanyAmy Elsner QUALIFIED
Ashley G OstroskyCanadaAsiya Javayant NEGOTIATION
Rodrigues J MacleadFranceIvan Magalhaes UNQUALIFIED
Darci L MaletUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba C WieserArgentinaAmy Elsner UNQUALIFIED
Leja L WaycottAustraliaAnna Fali QUALIFIED
Octavia W BriddickUnited KingdomAnna Fali QUALIFIED
Juan P OldroydCanadaBernardo Dominic PROPOSAL
Jeanfrancois Z SaylorsJapanBernardo Dominic QUALIFIED
Jennifer G SergiBrazilElwin Sharvill NEW
Adams P OldroydSpainAsiya Javayant QUALIFIED
Darci R MaletGermanyElwin Sharvill PROPOSAL
David K PaprockiIndiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki U DilliardJapanAnna Fali NEGOTIATION
Johnson J GarufiFranceOnyama Limba NEW
Ashley B GillianBrazilAnna Fali RENEWAL
Mayumi B FlosiBrazilBernardo Dominic UNQUALIFIED
Kaitlin Y GlickJapanXuxue Feng RENEWAL
Rodrigues Y ShinkoSpainStephen Shaw UNQUALIFIED
Costa Z NestleUnited KingdomElwin Sharvill QUALIFIED
Murillo N CaudyFranceBernardo Dominic NEGOTIATION
James D VenereItalyElwin Sharvill NEW
Jennifer K TollnerJapanStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio K BowleyArgentina2024-04-08Feltz Printing Service NEGOTIATION34Xuxue Feng
1001Alejandro C MaletSpain2024-04-29Feiner Bros RENEWAL32Xuxue Feng
1002Julie X SaylorsBrazil2024-05-05Chemel, James L Cpa PROPOSAL1Stephen Shaw
1003Wickens P WieserIndia2024-04-07Rousseaux, Michael Esq RENEWAL87Stephen Shaw
1004Faith V NickaBrazil2024-04-21King, Christopher A Esq UNQUALIFIED64Stephen Shaw
1005Arvin S CampainGermany2024-04-26Feltz Printing Service RENEWAL70Anna Fali
1006Emily P AmigonRussia2024-04-22Morlong Associates NEW73Ivan Magalhaes
1007Misaki P StockhamItaly2024-04-10Rangoni Of Florence NEW52Bernardo Dominic
1008Misaki D CaldareraArgentina2024-05-02King, Christopher A Esq QUALIFIED76Bernardo Dominic
1009Ricardo E VenereIndia2024-04-30Rangoni Of Florence NEGOTIATION82Anna Fali
1010Cody V PerinFrance2024-04-12Dorl, James J Esq RENEWAL2Amy Elsner
1011Salvatore U DilliardGermany2024-04-19Chanay, Jeffrey A Esq RENEWAL52Ivan Magalhaes
1012Maisha A FigeroaItaly2024-04-22Feltz Printing Service RENEWAL33Ivan Magalhaes
1013Kaitlin Q SchemmerAustralia2024-04-08Chemel, James L Cpa PROPOSAL96Elwin Sharvill
1014Salvatore B MacleadSpain2024-04-26King, Christopher A Esq RENEWAL56Ivan Magalhaes
1015Jennifer Z ShinkoIndia2024-04-09Rousseaux, Michael Esq NEW9Xuxue Feng
1016Isabel C ButtJapan2024-04-15Chapman, Ross E Esq NEW98Ivan Magalhaes
1017Sinclair P SlusarskiBrazil2024-04-30Chanay, Jeffrey A Esq PROPOSAL4Amy Elsner
1018James Q MaletJapan2024-04-15Morlong Associates NEW58Asiya Javayant
1019Faith N NickaSpain2024-04-12Truhlar And Truhlar Attys PROPOSAL1Stephen Shaw
1020Silvio U ChuiSpain2024-04-29Chemel, James L Cpa QUALIFIED21Stephen Shaw
1021Francesco Y NickaAustralia2024-04-27Dorl, James J Esq RENEWAL9Ioni Bowcher
1022Morrow G ShinkoSpain2024-05-04Rousseaux, Michael Esq QUALIFIED8Onyama Limba
1023Izzy R CaudyJapan2024-05-05Dorl, James J Esq NEW30Elwin Sharvill
1024Ricardo V RimAustralia2024-04-09Commercial Press PROPOSAL97Onyama Limba
1025Smith G GillianGermany2024-04-06Commercial Press RENEWAL52Onyama Limba
1026David K FollerUnited Kingdom2024-04-14Buckley Miller Wright NEGOTIATION21Bernardo Dominic
1027Maria C KolmetzBrazil2024-04-10King, Christopher A Esq RENEWAL74Ivan Magalhaes
1028Alejandro Z NickaArgentina2024-04-28Chanay, Jeffrey A Esq NEGOTIATION6Amy Elsner
1029Darci V CampainAustralia2024-05-02Chapman, Ross E Esq UNQUALIFIED99Stephen Shaw
1030Nicolas R CampainRussia2024-04-29Rousseaux, Michael Esq PROPOSAL19Elwin Sharvill
1031Kaitlin K IturbideRussia2024-04-19Truhlar And Truhlar Attys NEGOTIATION98Anna Fali
1032Chavez L MorascaUnited Kingdom2024-04-06Commercial Press NEGOTIATION79Ivan Magalhaes
1033Claire W WhobreyAustralia2024-05-03Printing Dimensions UNQUALIFIED67Stephen Shaw
1034Mayumi I MacleadGermany2024-04-16Dorl, James J Esq NEW4Xuxue Feng
1035Antonio C DoeBrazil2024-04-06Commercial Press UNQUALIFIED99Bernardo Dominic
1036Alejandro T AmigonArgentina2024-05-04Buckley Miller Wright RENEWAL57Elwin Sharvill
1037Darci N PoquetteBrazil2024-04-28Morlong Associates PROPOSAL79Ivan Magalhaes
1038Smith M CampainIndia2024-04-09Feltz Printing Service NEW63Ioni Bowcher
1039Costa P RoysterSpain2024-04-23Feiner Bros RENEWAL99Amy Elsner
1040Sinclair E FigeroaUnited Kingdom2024-04-29Feiner Bros UNQUALIFIED11Xuxue Feng
1041Jennifer Y DilliardGermany2024-04-11Feiner Bros PROPOSAL23Asiya Javayant
1042Sinclair K PaprockiArgentina2024-04-11Truhlar And Truhlar Attys UNQUALIFIED0Xuxue Feng
1043Aika B MacleadFrance2024-05-05King, Christopher A Esq NEW6Amy Elsner
1044Nicolas M ButtGermany2024-05-01Dorl, James J Esq RENEWAL11Elwin Sharvill
1045Clifford J StockhamUnited Kingdom2024-04-11King, Christopher A Esq RENEWAL88Ivan Magalhaes
1046Aruna F MacleadUnited Kingdom2024-04-23Benton, John B Jr NEGOTIATION86Xuxue Feng
1047Arvin B DarakjyJapan2024-04-12Benton, John B Jr PROPOSAL43Stephen Shaw
1048Mujtaba E BowleyIndia2024-05-02Chanay, Jeffrey A Esq NEW23Ivan Magalhaes
1049Isabel V MorascaUnited Kingdom2024-04-18Morlong Associates UNQUALIFIED96Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maisha J KolmetzRussiaStephen Shaw NEGOTIATION
Arvin P KolmetzSpainAmy Elsner NEW
Misaki M FigeroaAustraliaElwin Sharvill NEGOTIATION
Maisha I MaletBrazilAmy Elsner NEGOTIATION
Sinclair C DarakjyGermanyAsiya Javayant NEGOTIATION
Izzy K NickaArgentinaIoni Bowcher QUALIFIED
Jeanfrancois F PaprockiFranceAsiya Javayant UNQUALIFIED
Jefferson R DoeBrazilIoni Bowcher QUALIFIED
Faith W ChuiIndiaElwin Sharvill QUALIFIED
Stacey O OldroydAustraliaIoni Bowcher QUALIFIED
Aika V PaprockiItalyIvan Magalhaes PROPOSAL
Clifford P ChuiAustraliaElwin Sharvill NEGOTIATION
Aika P FollerUnited KingdomAmy Elsner NEW
Julie H StockhamUnited KingdomStephen Shaw UNQUALIFIED
Emily F DoeCanadaXuxue Feng NEW
Juan E CaudyAustraliaIvan Magalhaes PROPOSAL
Francesco D GillianFranceStephen Shaw QUALIFIED
Aditya U KuskoUnited KingdomStephen Shaw UNQUALIFIED
James E ChuiJapanAsiya Javayant QUALIFIED
Mayumi T MaletFranceAmy Elsner RENEWAL
Ricardo U AmigonGermanyStephen Shaw QUALIFIED
Aika F NickaFranceElwin Sharvill RENEWAL
Maria J MaletFranceAsiya Javayant RENEWAL
Ivar D RulapaughArgentinaIoni Bowcher PROPOSAL
Julie T NestleArgentinaStephen Shaw RENEWAL
Emily E NickaSpainAmy Elsner RENEWAL
Alejandro X StensethArgentinaIvan Magalhaes RENEWAL
Darci V MarrierArgentinaAsiya Javayant UNQUALIFIED
Aditya S ShinkoUnited KingdomElwin Sharvill QUALIFIED
Jefferson C CaudyArgentinaStephen Shaw QUALIFIED
Octavia L RimItalyOnyama Limba RENEWAL
Nicolas I SaylorsRussiaStephen Shaw NEGOTIATION
Ricardo M CaldareraFranceAsiya Javayant RENEWAL
Jones E RulapaughRussiaXuxue Feng QUALIFIED
Mayumi R AlbaresRussiaAmy Elsner QUALIFIED
Aruna X KolmetzArgentinaElwin Sharvill NEW
Tony L DoeBrazilAnna Fali UNQUALIFIED
Jeanfrancois U RutaJapanAnna Fali QUALIFIED
Julie P ShinkoUnited KingdomAsiya Javayant PROPOSAL
Johnson I FollerJapanAsiya Javayant UNQUALIFIED
Morrow W GillianGermanyBernardo Dominic NEW
Arvin N AmigonJapanAmy Elsner UNQUALIFIED
Octavia C WieserArgentinaAmy Elsner QUALIFIED
Silvio R WieserFranceStephen Shaw NEGOTIATION
Rodrigues E PoquetteAustraliaIoni Bowcher NEGOTIATION
Izzy F DilliardBrazilIoni Bowcher QUALIFIED
Izzy R PoquetteUnited KingdomAnna Fali RENEWAL
Misaki S OstroskyBrazilElwin Sharvill NEGOTIATION
Kadeem Q ButtUnited KingdomAnna Fali PROPOSAL
Mujtaba V InouyeCanadaStephen Shaw NEGOTIATION
Frozen Columns
Name
Jefferson W Caldarera
Misaki F Rulapaugh
Munro V Briddick
Nicolas G Caldarera
Chavez C Rulapaugh
Arvin B Sergi
Morrow R Royster
Aruna O Rim
Mujtaba A Figeroa
Rodrigues X Shinko
Aika L Gillian
Kadeem U Waycott
Claire P Poquette
Smith A Figeroa
Misaki R Gaucho
Faith X Waycott
Claire U Bowley
Aruna V Butt
Greenwood G Malet
Ricardo D Whobrey
Izzy N Schemmer
Aika K Caldarera
Jeanfrancois D Gillian
Morrow F Inouye
Leon Z Albares
Adams R Glick
Adams J Caudy
Maisha Q Flosi
Jones B Figeroa
Octavia Y Marrier
Adams U Stenseth
Wickens G Sergi
Clifford H Morasca
Francesco A Stockham
Morrow Z Rulapaugh
Sinclair T Ferencz
Leja K Flosi
Misaki V Shinko
Alejandro M Chui
Rodrigues H Flosi
Sinclair M Royster
Wickens D Wieser
Clifford U Campain
Izzy W Stockham
Jeanfrancois T Ferencz
Ashley P Dilliard
Munro K Caldarera
Adams U Briddick
Leja S Doe
Maria Z Oldroyd
IdCountryDate
1000Italy2024-05-05
1001Argentina2024-04-18
1002Australia2024-04-22
1003Italy2024-04-16
1004Japan2024-04-11
1005Russia2024-04-24
1006Canada2024-04-28
1007France2024-04-14
1008Germany2024-05-01
1009Brazil2024-04-29
1010Spain2024-04-08
1011France2024-04-25
1012Germany2024-04-18
1013Russia2024-04-08
1014Russia2024-04-12
1015Spain2024-05-02
1016Germany2024-04-20
1017Spain2024-04-07
1018France2024-04-13
1019India2024-04-14
1020Brazil2024-04-23
1021Canada2024-04-24
1022Italy2024-04-28
1023Italy2024-05-02
1024Italy2024-04-07
1025Italy2024-04-18
1026Russia2024-04-18
1027India2024-04-10
1028Brazil2024-04-30
1029Argentina2024-04-24
1030Russia2024-05-04
1031Argentina2024-04-22
1032Germany2024-04-23
1033Italy2024-05-01
1034Australia2024-04-06
1035India2024-04-10
1036India2024-04-24
1037Argentina2024-04-07
1038Italy2024-04-12
1039Spain2024-04-18
1040Australia2024-04-19
1041Japan2024-04-28
1042Spain2024-05-01
1043Brazil2024-04-23
1044United Kingdom2024-04-18
1045Russia2024-04-20
1046Japan2024-04-12
1047Canada2024-04-06
1048Australia2024-04-16
1049France2024-04-22

On-Demand Data

NameIdCountryDate
Mujtaba Z Ruta1000Japan2024-05-02
Maria N Venere1001Spain2024-04-07
Ivar C Waycott1002France2024-04-16
Maisha X Ferencz1003Italy2024-04-09
Alejandro J Doe1004France2024-04-29
Maria M Malet1005Australia2024-04-28
Deepesh T Shinko1006France2024-04-20
Maria L Flosi1007Italy2024-04-15
Emily V Morasca1008Germany2024-04-07
Aruna Q Paprocki1009Argentina2024-05-03
Isabel U Nicka1010Argentina2024-04-08
Arvin J Kusko1011Spain2024-04-28
Maisha T Chui1012Japan2024-04-30
Antonio Q Bowley1013Italy2024-05-01
Munro R Maclead1014Italy2024-04-23
Misaki U Inouye1015Brazil2024-04-19
Tony D Marrier1016Australia2024-05-01
Stacey B Vocelka1017Russia2024-04-27
Sinclair M Kusko1018Japan2024-04-15
Maria H Chui1019Argentina2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan E FollerGermanyOnyama Limba QUALIFIED
Mujtaba Z GarufiUnited KingdomAnna Fali NEGOTIATION
Aruna U FlosiJapanElwin Sharvill PROPOSAL
Faith K FollerSpainAmy Elsner NEW
James O ChuiGermanyStephen Shaw NEGOTIATION
James D MaletRussiaXuxue Feng NEW
Juan Q CampainFranceAnna Fali QUALIFIED
Juan R SergiItalyAsiya Javayant QUALIFIED
Jefferson Y NestleItalyXuxue Feng RENEWAL
Francesco M MaletGermanyBernardo Dominic PROPOSAL
Isabel K KolmetzCanadaAnna Fali PROPOSAL
Smith Q WhobreyJapanOnyama Limba NEW
Octavia W MorascaIndiaOnyama Limba NEGOTIATION
Jefferson S VocelkaAustraliaStephen Shaw UNQUALIFIED
David Z InouyeSpainIvan Magalhaes NEW
Ricardo S KolmetzAustraliaIvan Magalhaes QUALIFIED
Ivar W RoysterRussiaAsiya Javayant PROPOSAL
Murillo J RulapaughJapanAmy Elsner UNQUALIFIED
Arvin W GauchoRussiaIvan Magalhaes NEGOTIATION
Wickens K StensethUnited KingdomAnna Fali NEW
James I RimAustraliaXuxue Feng QUALIFIED
Antonio U BologniaAustraliaAmy Elsner UNQUALIFIED
Emily Z PoquetteArgentinaIoni Bowcher RENEWAL
Ashley G DoeGermanyOnyama Limba PROPOSAL
David Y CampainJapanIoni Bowcher UNQUALIFIED
Leon W WieserGermanyIvan Magalhaes RENEWAL
Octavia V MarrierJapanOnyama Limba UNQUALIFIED
Sinclair Y VocelkaRussiaAsiya Javayant UNQUALIFIED
Ivar F GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi W FigeroaFranceAnna Fali PROPOSAL
Aika S FlosiGermanyIoni Bowcher NEGOTIATION
Munro W WhobreySpainAmy Elsner NEW
Murillo L CaudyJapanStephen Shaw NEW
Chavez H AmigonSpainAmy Elsner RENEWAL
Tony K NickaGermanyStephen Shaw NEW
Adams W WhobreyJapanIoni Bowcher QUALIFIED
Ivar A MaletJapanOnyama Limba UNQUALIFIED
Aika M KolmetzIndiaOnyama Limba UNQUALIFIED
James O RutaJapanAsiya Javayant NEGOTIATION
Johnson H ButtCanadaAsiya Javayant NEW

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