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
Leja C RulapaughFranceOnyama Limba NEW
Julie Q WieserIndiaOnyama Limba UNQUALIFIED
Silvio C ShinkoSpainAmy Elsner PROPOSAL
Misaki Y BologniaGermanyAnna Fali NEW
Smith V DilliardItalyIoni Bowcher UNQUALIFIED
James V WieserUnited KingdomOnyama Limba UNQUALIFIED
Ashley Z BologniaSpainBernardo Dominic PROPOSAL
Deepesh O ChuiIndiaAnna Fali QUALIFIED
Claire J DilliardAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois F InouyeGermanyStephen Shaw UNQUALIFIED
Sinclair X FlosiGermanyBernardo Dominic NEW
Jefferson V WhobreyArgentinaBernardo Dominic NEGOTIATION
Wickens O MacleadCanadaStephen Shaw NEGOTIATION
Sinclair M WieserRussiaAmy Elsner UNQUALIFIED
Deepesh D CaldareraSpainAsiya Javayant PROPOSAL
Deepesh U OldroydFranceAsiya Javayant UNQUALIFIED
Silvio S WieserSpainStephen Shaw UNQUALIFIED
Francesco N GlickBrazilElwin Sharvill RENEWAL
Isabel H BowleyGermanyStephen Shaw QUALIFIED
Rodrigues I MaletSpainOnyama Limba QUALIFIED
Munro B PerinRussiaStephen Shaw UNQUALIFIED
Silvio V NickaJapanElwin Sharvill RENEWAL
Murillo K OldroydRussiaBernardo Dominic UNQUALIFIED
Octavia W IturbideRussiaStephen Shaw RENEWAL
Murillo I BowleyIndiaAsiya Javayant NEW
Leon S MaletCanadaBernardo Dominic UNQUALIFIED
Adams B IturbideRussiaElwin Sharvill RENEWAL
Kadeem F ShinkoArgentinaBernardo Dominic PROPOSAL
Greenwood G BriddickUnited KingdomXuxue Feng NEW
Kaitlin E FollerGermanyXuxue Feng PROPOSAL
Jennifer J KuskoItalyOnyama Limba NEGOTIATION
Kadeem C NestleBrazilXuxue Feng UNQUALIFIED
Tony O FlosiItalyAnna Fali QUALIFIED
Stacey P FollerArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois J RoysterBrazilElwin Sharvill PROPOSAL
Chavez S ButtJapanOnyama Limba NEW
Mujtaba Z PaprockiFranceElwin Sharvill NEGOTIATION
Leja Y VenereJapanIvan Magalhaes UNQUALIFIED
Francesco Q CampainGermanyStephen Shaw QUALIFIED
Isabel R CampainUnited KingdomIvan Magalhaes NEW
Jones H KuskoItalyAnna Fali NEGOTIATION
Emily Q WieserFranceOnyama Limba RENEWAL
Francesco H WhobreyAustraliaAmy Elsner PROPOSAL
Mayumi Y KuskoAustraliaAsiya Javayant NEGOTIATION
Antonio G MaletArgentinaIvan Magalhaes QUALIFIED
James V MacleadGermanyOnyama Limba QUALIFIED
Morrow G GauchoCanadaAsiya Javayant QUALIFIED
Cody A SchemmerBrazilAsiya Javayant RENEWAL
David E GarufiRussiaElwin Sharvill NEW
Tony R KolmetzIndiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens R FigeroaJapanXuxue Feng NEGOTIATION
Isabel K ChuiSpainOnyama Limba UNQUALIFIED
Smith M CaldareraGermanyIvan Magalhaes UNQUALIFIED
Jefferson N MarrierFranceAsiya Javayant PROPOSAL
Murillo B AlbaresRussiaAsiya Javayant UNQUALIFIED
Salvatore U AlbaresIndiaStephen Shaw NEGOTIATION
Juan A SlusarskiIndiaIoni Bowcher UNQUALIFIED
Kadeem A WaycottCanadaIoni Bowcher NEW
Octavia D RoysterArgentinaOnyama Limba PROPOSAL
Kaitlin P SaylorsItalyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba B PerinRussia2024-03-29Morlong Associates NEW63Ioni Bowcher
1001Tony R KuskoGermany2024-04-17Rousseaux, Michael Esq UNQUALIFIED71Amy Elsner
1002Smith G CaudyJapan2024-04-03King, Christopher A Esq NEW71Bernardo Dominic
1003Antonio F IturbideSpain2024-04-08Chapman, Ross E Esq RENEWAL59Anna Fali
1004Aika K ShinkoUnited Kingdom2024-04-03Chanay, Jeffrey A Esq PROPOSAL71Stephen Shaw
1005Smith R SergiGermany2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED67Elwin Sharvill
1006Chavez C PoquetteUnited Kingdom2024-04-22Chanay, Jeffrey A Esq NEGOTIATION69Xuxue Feng
1007Chavez W VenereArgentina2024-04-01Feltz Printing Service PROPOSAL29Onyama Limba
1008Antonio P OldroydSpain2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED36Asiya Javayant
1009Antonio A MacleadRussia2024-04-08Benton, John B Jr NEW60Amy Elsner
1010Izzy Q RutaGermany2024-04-17Dorl, James J Esq QUALIFIED39Onyama Limba
1011Ricardo E GauchoFrance2024-04-24Benton, John B Jr RENEWAL29Bernardo Dominic
1012Maria Y RoysterUnited Kingdom2024-04-07Chemel, James L Cpa NEW37Ioni Bowcher
1013Alejandro I PoquetteAustralia2024-04-20Buckley Miller Wright NEW38Xuxue Feng
1014Murillo P CaudyUnited Kingdom2024-04-22King, Christopher A Esq RENEWAL79Xuxue Feng
1015Aditya C CampainFrance2024-04-12Rangoni Of Florence NEW57Elwin Sharvill
1016Alejandro W TollnerJapan2024-04-16Commercial Press RENEWAL40Elwin Sharvill
1017Chavez H ChuiRussia2024-04-26Truhlar And Truhlar Attys PROPOSAL13Xuxue Feng
1018Kadeem U PaprockiUnited Kingdom2024-04-02Dorl, James J Esq NEGOTIATION2Ivan Magalhaes
1019Leon Y MarrierCanada2024-04-23Feiner Bros UNQUALIFIED69Bernardo Dominic
1020Aditya T PerinFrance2024-04-21Dorl, James J Esq QUALIFIED31Elwin Sharvill
1021Leon W IturbideItaly2024-04-25Dorl, James J Esq QUALIFIED16Ivan Magalhaes
1022Johnson T TollnerItaly2024-04-05Chemel, James L Cpa PROPOSAL12Xuxue Feng
1023Aika G AlbaresIndia2024-03-29King, Christopher A Esq PROPOSAL31Bernardo Dominic
1024Smith S CaldareraBrazil2024-04-19Buckley Miller Wright PROPOSAL22Ioni Bowcher
1025Tony Z AmigonJapan2024-04-10King, Christopher A Esq NEGOTIATION4Elwin Sharvill
1026Tony R BriddickUnited Kingdom2024-03-30Feiner Bros UNQUALIFIED53Onyama Limba
1027Murillo H GillianIndia2024-04-24Chapman, Ross E Esq NEGOTIATION1Bernardo Dominic
1028Clifford L InouyeGermany2024-04-15Dorl, James J Esq QUALIFIED19Bernardo Dominic
1029David E OldroydItaly2024-04-16Feltz Printing Service PROPOSAL93Asiya Javayant
1030Maria H RutaItaly2024-04-23Chemel, James L Cpa NEW72Ivan Magalhaes
1031Wickens G MacleadAustralia2024-04-12Buckley Miller Wright QUALIFIED23Onyama Limba
1032Adams X FerenczJapan2024-04-18King, Christopher A Esq NEW53Amy Elsner
1033Chavez G ShinkoGermany2024-03-31Printing Dimensions RENEWAL56Onyama Limba
1034Stacey I GauchoItaly2024-04-16Rousseaux, Michael Esq QUALIFIED0Onyama Limba
1035Darci N CaldareraSpain2024-04-15Buckley Miller Wright UNQUALIFIED41Stephen Shaw
1036Adams L OstroskyFrance2024-04-14Truhlar And Truhlar Attys NEW69Ioni Bowcher
1037Jefferson U IturbideGermany2024-04-19Morlong Associates PROPOSAL99Xuxue Feng
1038Rodrigues L FollerCanada2024-04-21Benton, John B Jr PROPOSAL28Bernardo Dominic
1039Adams V ButtAustralia2024-04-07Feltz Printing Service RENEWAL6Ivan Magalhaes
1040Munro R WieserJapan2024-04-27Benton, John B Jr UNQUALIFIED57Anna Fali
1041Adams T OstroskyIndia2024-03-29Feiner Bros PROPOSAL93Anna Fali
1042Murillo N StensethCanada2024-04-10Chanay, Jeffrey A Esq QUALIFIED93Anna Fali
1043Morrow T MarrierFrance2024-04-05Chapman, Ross E Esq QUALIFIED48Amy Elsner
1044Faith H PoquetteIndia2024-04-09Feiner Bros RENEWAL86Anna Fali
1045Francesco C TollnerSpain2024-04-09Feiner Bros NEGOTIATION12Asiya Javayant
1046Sinclair O MarrierGermany2024-04-06Morlong Associates RENEWAL94Amy Elsner
1047Ricardo F DilliardCanada2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED75Xuxue Feng
1048Mayumi K VenereAustralia2024-04-06King, Christopher A Esq NEGOTIATION5Elwin Sharvill
1049Jeanfrancois X StockhamJapan2024-04-02Morlong Associates NEGOTIATION86Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Wickens S StockhamItalyAnna Fali NEW
Mujtaba G CaldareraArgentinaStephen Shaw NEW
Francesco N RulapaughFranceIoni Bowcher RENEWAL
Izzy C AmigonUnited KingdomAmy Elsner NEGOTIATION
Kadeem Z ShinkoRussiaXuxue Feng QUALIFIED
Maria J PerinFranceIvan Magalhaes UNQUALIFIED
Alejandro B KolmetzIndiaStephen Shaw NEW
Johnson S SchemmerRussiaIvan Magalhaes RENEWAL
Tony K GillianSpainAnna Fali UNQUALIFIED
Octavia G DarakjyArgentinaElwin Sharvill UNQUALIFIED
Arvin Q RoysterArgentinaXuxue Feng QUALIFIED
Morrow B FerenczArgentinaAnna Fali PROPOSAL
Aditya A VenereGermanyAnna Fali UNQUALIFIED
Aika E KolmetzSpainAsiya Javayant RENEWAL
Darci C MaletSpainAsiya Javayant NEGOTIATION
Wickens E TollnerUnited KingdomAnna Fali PROPOSAL
Kadeem L FigeroaItalyIvan Magalhaes NEW
Jones W RimUnited KingdomIvan Magalhaes NEGOTIATION
Johnson S GlickItalyOnyama Limba NEW
Leon E WhobreyRussiaOnyama Limba RENEWAL
Tony M RutaIndiaStephen Shaw QUALIFIED
Cody V CaudyRussiaAnna Fali QUALIFIED
Stacey K GarufiGermanyIoni Bowcher PROPOSAL
Izzy G WaycottCanadaAnna Fali UNQUALIFIED
Munro J WhobreyBrazilIvan Magalhaes UNQUALIFIED
Julie E CaudySpainIoni Bowcher RENEWAL
David X StockhamCanadaAnna Fali NEW
Maria V GlickItalyAmy Elsner NEGOTIATION
Sinclair H SlusarskiSpainAmy Elsner NEW
Julie J InouyeFranceBernardo Dominic RENEWAL
Morrow H CampainFranceIvan Magalhaes RENEWAL
Salvatore D InouyeCanadaIoni Bowcher RENEWAL
Leon U DarakjySpainIvan Magalhaes UNQUALIFIED
Octavia C GarufiFranceElwin Sharvill QUALIFIED
Kadeem X IturbideCanadaXuxue Feng NEGOTIATION
James V FerenczItalyIvan Magalhaes NEGOTIATION
Munro J IturbideArgentinaIvan Magalhaes RENEWAL
Morrow F MaletArgentinaOnyama Limba NEW
Johnson D GauchoBrazilStephen Shaw QUALIFIED
Isabel Q MaletRussiaStephen Shaw NEW
Rodrigues Z ButtJapanAmy Elsner QUALIFIED
Misaki U AmigonSpainIvan Magalhaes UNQUALIFIED
Francesco S PerinGermanyIoni Bowcher RENEWAL
Jennifer Z ChuiItalyIvan Magalhaes QUALIFIED
Rodrigues M OldroydSpainStephen Shaw NEW
Smith E FlosiCanadaAnna Fali QUALIFIED
Aditya W PaprockiBrazilXuxue Feng PROPOSAL
Murillo R RoysterBrazilAnna Fali UNQUALIFIED
Darci L MarrierSpainAsiya Javayant NEW
Leja T VenereItalyXuxue Feng NEGOTIATION
Frozen Columns
Name
Juan O Glick
Sinclair R Kusko
Ivar V Flosi
Silvio I Gaucho
Costa B Whobrey
Alejandro D Waycott
Ricardo C Oldroyd
Izzy Q Maclead
Antonio W Gillian
Munro H Oldroyd
Octavia C Dilliard
Greenwood G Rulapaugh
Jefferson P Garufi
Nicolas D Saylors
Darci D Garufi
Cody Z Bolognia
Smith V Tollner
Deepesh L Stockham
Aditya S Ruta
Kaitlin V Shinko
Ricardo Y Chui
Jefferson Y Vocelka
Kadeem V Ferencz
Adams H Ostrosky
Izzy N Rulapaugh
Sinclair J Foller
Rodrigues U Flosi
Munro P Waycott
Juan S Marrier
Tony N Shinko
Claire M Ostrosky
Wickens Y Perin
Leon N Iturbide
Alejandro P Oldroyd
Ricardo I Rulapaugh
Deepesh D Nestle
Cody Z Garufi
Wickens Z Saylors
Deepesh L Saylors
James L Foller
Arvin E Nestle
Ashley I Flosi
Maisha D Perin
Jones P Bolognia
Aika G Marrier
Tony G Marrier
Alejandro G Malet
Antonio T Wieser
Kaitlin D Vocelka
Murillo J Slusarski
IdCountryDate
1000Canada2024-04-16
1001Canada2024-04-17
1002Argentina2024-03-30
1003Canada2024-04-12
1004Italy2024-04-03
1005Russia2024-03-31
1006Japan2024-04-18
1007Canada2024-04-11
1008Germany2024-04-04
1009Germany2024-04-25
1010India2024-04-15
1011France2024-04-27
1012Russia2024-04-05
1013Argentina2024-04-15
1014Germany2024-04-07
1015Spain2024-04-26
1016Spain2024-04-14
1017Germany2024-04-01
1018Spain2024-04-01
1019Spain2024-04-12
1020India2024-04-13
1021Canada2024-04-27
1022Germany2024-04-20
1023Spain2024-04-18
1024Italy2024-04-22
1025Japan2024-04-24
1026Argentina2024-04-23
1027Australia2024-04-09
1028Russia2024-03-30
1029United Kingdom2024-04-25
1030United Kingdom2024-04-22
1031Australia2024-04-06
1032Argentina2024-04-01
1033Spain2024-04-20
1034Spain2024-04-17
1035Italy2024-04-11
1036Spain2024-04-18
1037Italy2024-04-09
1038Germany2024-04-09
1039Spain2024-04-09
1040Japan2024-04-07
1041Russia2024-04-21
1042Spain2024-04-04
1043Italy2024-04-16
1044Brazil2024-04-25
1045Brazil2024-04-18
1046Australia2024-04-27
1047Australia2024-04-25
1048Brazil2024-04-01
1049Italy2024-04-20

On-Demand Data

NameIdCountryDate
Aruna L Darakjy1000Japan2024-04-17
Francesco L Ruta1001Argentina2024-04-17
Ivar S Albares1002France2024-04-17
Nicolas M Marrier1003Germany2024-03-31
Adams L Gillian1004Argentina2024-04-11
Arvin L Glick1005Brazil2024-04-09
James T Marrier1006India2024-03-30
Leon D Paprocki1007Brazil2024-04-24
Mayumi N Inouye1008France2024-04-24
Salvatore N Campain1009Brazil2024-04-12
Adams U Bolognia1010Australia2024-04-09
Greenwood T Chui1011Brazil2024-04-23
Julie W Paprocki1012Italy2024-04-07
Silvio W Flosi1013France2024-04-20
Nicolas I Rim1014Japan2024-04-26
Tony G Stenseth1015Australia2024-04-10
Clifford B Paprocki1016Russia2024-04-25
Cody K Oldroyd1017Russia2024-04-19
Izzy V Waycott1018Russia2024-04-07
Ivar D Venere1019Germany2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley M MaletArgentinaStephen Shaw QUALIFIED
Jennifer Z GlickAustraliaXuxue Feng RENEWAL
Smith W MarrierArgentinaStephen Shaw NEW
Ricardo W AmigonArgentinaXuxue Feng NEGOTIATION
Maisha H DilliardIndiaIoni Bowcher RENEWAL
Kaitlin X NestleItalyIvan Magalhaes NEGOTIATION
Johnson G AlbaresJapanElwin Sharvill UNQUALIFIED
Deepesh H WhobreyAustraliaStephen Shaw RENEWAL
Emily X MorascaJapanAnna Fali RENEWAL
Morrow M VenereArgentinaAmy Elsner UNQUALIFIED
Wickens T SaylorsBrazilAsiya Javayant RENEWAL
Mayumi L MaletArgentinaElwin Sharvill QUALIFIED
Darci L SlusarskiIndiaXuxue Feng RENEWAL
Ricardo C VocelkaUnited KingdomAmy Elsner NEW
Jefferson B MaletItalyIvan Magalhaes RENEWAL
James N PoquetteBrazilOnyama Limba NEGOTIATION
Mayumi A CaldareraArgentinaAsiya Javayant UNQUALIFIED
Tony N DarakjyItalyStephen Shaw QUALIFIED
Jefferson W GauchoUnited KingdomAnna Fali NEGOTIATION
Munro Y CaldareraAustraliaAsiya Javayant PROPOSAL
Murillo K RulapaughSpainXuxue Feng NEGOTIATION
Jennifer F GillianRussiaIoni Bowcher PROPOSAL
Claire U SlusarskiCanadaIoni Bowcher RENEWAL
Ivar R CampainGermanyStephen Shaw UNQUALIFIED
Emily P DarakjySpainElwin Sharvill QUALIFIED
Octavia T MarrierGermanyOnyama Limba RENEWAL
Leja S ButtItalyElwin Sharvill PROPOSAL
Jefferson X MaletArgentinaXuxue Feng NEGOTIATION
Leon M GlickItalyXuxue Feng NEGOTIATION
Jefferson K StensethIndiaElwin Sharvill NEGOTIATION
Munro K WieserJapanOnyama Limba PROPOSAL
Nicolas P CaldareraFranceBernardo Dominic RENEWAL
Faith R DoeJapanXuxue Feng PROPOSAL
Maisha Y GlickUnited KingdomAnna Fali PROPOSAL
Octavia Q MacleadRussiaIoni Bowcher RENEWAL
Jefferson D MorascaItalyIoni Bowcher QUALIFIED
Chavez K BologniaAustraliaBernardo Dominic QUALIFIED
Silvio A OstroskyArgentinaOnyama Limba NEGOTIATION
Julie E CampainGermanyXuxue Feng PROPOSAL
Adams Z GillianGermanyOnyama Limba UNQUALIFIED

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