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
Silvio D FollerSpainStephen Shaw PROPOSAL
Misaki V SaylorsCanadaIvan Magalhaes UNQUALIFIED
Ashley D FlosiArgentinaIoni Bowcher UNQUALIFIED
Clifford F ChuiItalyXuxue Feng NEGOTIATION
Leja X BowleyCanadaAmy Elsner NEW
Mayumi E MacleadBrazilAmy Elsner RENEWAL
Salvatore R KuskoRussiaStephen Shaw QUALIFIED
Morrow C WaycottSpainElwin Sharvill RENEWAL
Jones S RulapaughItalyBernardo Dominic NEW
Silvio Q StockhamItalyBernardo Dominic UNQUALIFIED
Munro J BriddickArgentinaElwin Sharvill QUALIFIED
Isabel S InouyeBrazilStephen Shaw PROPOSAL
Wickens W TollnerItalyElwin Sharvill QUALIFIED
Leon D SaylorsGermanyAmy Elsner NEW
Aditya S MorascaJapanAsiya Javayant UNQUALIFIED
Ashley U CampainCanadaStephen Shaw UNQUALIFIED
Johnson N VocelkaArgentinaBernardo Dominic QUALIFIED
Deepesh Z FigeroaUnited KingdomBernardo Dominic QUALIFIED
Emily W NickaItalyIvan Magalhaes NEGOTIATION
Claire Z PerinGermanyOnyama Limba RENEWAL
Clifford O VocelkaRussiaXuxue Feng NEW
Wickens T OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Silvio F RutaItalyIoni Bowcher NEW
Murillo V GauchoUnited KingdomAsiya Javayant NEGOTIATION
Aika L PaprockiSpainXuxue Feng RENEWAL
Maria V CampainCanadaElwin Sharvill QUALIFIED
Munro H SlusarskiCanadaAnna Fali QUALIFIED
Deepesh C RimAustraliaIvan Magalhaes NEGOTIATION
Ivar E DilliardGermanyIoni Bowcher QUALIFIED
Salvatore Y ChuiSpainBernardo Dominic RENEWAL
Costa H PoquetteUnited KingdomBernardo Dominic RENEWAL
Silvio D CampainGermanyIvan Magalhaes RENEWAL
Mayumi M MorascaUnited KingdomElwin Sharvill UNQUALIFIED
James E MorascaItalyIoni Bowcher QUALIFIED
Julie B SlusarskiCanadaXuxue Feng PROPOSAL
Rodrigues H SchemmerSpainStephen Shaw NEW
Darci W MaletGermanyIoni Bowcher QUALIFIED
Isabel P KuskoItalyIvan Magalhaes QUALIFIED
Morrow P RoysterFranceBernardo Dominic UNQUALIFIED
Greenwood T RulapaughFranceStephen Shaw NEW
Nicolas I CaudyCanadaXuxue Feng UNQUALIFIED
Stacey X PerinSpainAsiya Javayant QUALIFIED
Deepesh Q FlosiCanadaAmy Elsner NEGOTIATION
Adams W SaylorsJapanAsiya Javayant NEGOTIATION
Ricardo T MaletArgentinaIvan Magalhaes UNQUALIFIED
David H NickaGermanyXuxue Feng UNQUALIFIED
Aika E KuskoGermanyXuxue Feng PROPOSAL
Misaki G StensethSpainAmy Elsner QUALIFIED
Kaitlin H KuskoArgentinaAsiya Javayant PROPOSAL
Mujtaba T FigeroaBrazilXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith G KolmetzArgentinaXuxue Feng PROPOSAL
Ashley A TollnerFranceXuxue Feng RENEWAL
Francesco H CaldareraJapanOnyama Limba NEW
Octavia D DilliardJapanStephen Shaw UNQUALIFIED
David M MaletBrazilIvan Magalhaes UNQUALIFIED
Jefferson H IturbideGermanyBernardo Dominic RENEWAL
Murillo H KuskoSpainAmy Elsner NEW
Mujtaba F ShinkoUnited KingdomAsiya Javayant RENEWAL
Misaki J CaudyArgentinaIoni Bowcher UNQUALIFIED
Chavez K InouyeBrazilIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer J PoquetteFrance2024-03-30Benton, John B Jr RENEWAL60Bernardo Dominic
1001Jeanfrancois K VenereRussia2024-04-03Chemel, James L Cpa PROPOSAL84Elwin Sharvill
1002Leja B OldroydCanada2024-04-08Chapman, Ross E Esq RENEWAL39Ioni Bowcher
1003Arvin Y NestleCanada2024-04-09Dorl, James J Esq PROPOSAL49Amy Elsner
1004Ashley U WaycottArgentina2024-04-23Feiner Bros QUALIFIED75Ioni Bowcher
1005Claire O StockhamRussia2024-04-04Printing Dimensions NEW21Xuxue Feng
1006Adams Q PoquetteSpain2024-04-05Chanay, Jeffrey A Esq PROPOSAL70Elwin Sharvill
1007Ricardo B PerinRussia2024-03-27King, Christopher A Esq UNQUALIFIED35Amy Elsner
1008Mujtaba S RulapaughSpain2024-04-17Dorl, James J Esq RENEWAL28Elwin Sharvill
1009Johnson E NickaCanada2024-04-24Benton, John B Jr RENEWAL94Xuxue Feng
1010Salvatore S CaudyFrance2024-04-10Chapman, Ross E Esq PROPOSAL71Elwin Sharvill
1011Munro X PerinFrance2024-03-29Rangoni Of Florence UNQUALIFIED14Elwin Sharvill
1012Mujtaba V GauchoArgentina2024-04-22Commercial Press QUALIFIED49Anna Fali
1013Wickens W RoysterGermany2024-04-24Feltz Printing Service RENEWAL24Onyama Limba
1014Jennifer A FollerCanada2024-04-21Feiner Bros PROPOSAL44Elwin Sharvill
1015David M GillianIndia2024-04-09Buckley Miller Wright PROPOSAL7Asiya Javayant
1016Costa G CaldareraFrance2024-03-27Truhlar And Truhlar Attys UNQUALIFIED93Stephen Shaw
1017Silvio R DarakjyItaly2024-04-24Chemel, James L Cpa NEW59Elwin Sharvill
1018Octavia A NickaRussia2024-03-28Rangoni Of Florence QUALIFIED26Ioni Bowcher
1019Juan F VocelkaFrance2024-04-07Dorl, James J Esq PROPOSAL31Elwin Sharvill
1020Arvin W InouyeSpain2024-03-29Chanay, Jeffrey A Esq RENEWAL85Ivan Magalhaes
1021Julie K SlusarskiArgentina2024-04-06Feiner Bros NEW28Anna Fali
1022Antonio A SchemmerIndia2024-04-02Feltz Printing Service NEGOTIATION14Anna Fali
1023Sinclair G ButtFrance2024-04-01Feltz Printing Service PROPOSAL65Stephen Shaw
1024Tony A GillianBrazil2024-03-28Benton, John B Jr RENEWAL8Ioni Bowcher
1025Munro M BriddickBrazil2024-04-04Feiner Bros QUALIFIED40Ioni Bowcher
1026Claire T BowleyAustralia2024-04-12Feltz Printing Service QUALIFIED33Elwin Sharvill
1027Smith Y BowleyBrazil2024-03-31Commercial Press UNQUALIFIED60Bernardo Dominic
1028Emily K RimIndia2024-04-22King, Christopher A Esq PROPOSAL94Asiya Javayant
1029Jones I DoeJapan2024-04-01Chemel, James L Cpa UNQUALIFIED52Elwin Sharvill
1030Nicolas D GlickJapan2024-04-02Dorl, James J Esq RENEWAL31Ioni Bowcher
1031Silvio X FigeroaRussia2024-04-20Benton, John B Jr NEW12Xuxue Feng
1032Murillo P SergiItaly2024-04-20Truhlar And Truhlar Attys NEW28Asiya Javayant
1033Silvio Q SlusarskiGermany2024-04-23Buckley Miller Wright QUALIFIED64Anna Fali
1034Morrow E DoeJapan2024-04-13Morlong Associates QUALIFIED15Ivan Magalhaes
1035Antonio F GillianJapan2024-03-27Rousseaux, Michael Esq UNQUALIFIED43Elwin Sharvill
1036Tony O OstroskySpain2024-04-20Rangoni Of Florence UNQUALIFIED29Onyama Limba
1037Stacey J StockhamIndia2024-04-01Rangoni Of Florence PROPOSAL32Elwin Sharvill
1038Ashley A RutaIndia2024-04-17Chemel, James L Cpa NEGOTIATION68Xuxue Feng
1039Emily I DilliardItaly2024-04-13Printing Dimensions UNQUALIFIED30Bernardo Dominic
1040Leon Y DarakjySpain2024-03-26Dorl, James J Esq UNQUALIFIED39Elwin Sharvill
1041Aika Y SergiUnited Kingdom2024-04-16Truhlar And Truhlar Attys NEW97Ioni Bowcher
1042Francesco V GarufiCanada2024-04-17Rousseaux, Michael Esq NEGOTIATION48Asiya Javayant
1043Izzy C GarufiItaly2024-04-14Feltz Printing Service NEGOTIATION9Bernardo Dominic
1044Rodrigues A CampainBrazil2024-04-09Buckley Miller Wright QUALIFIED80Bernardo Dominic
1045Francesco W VenereUnited Kingdom2024-04-20Feltz Printing Service NEW11Ivan Magalhaes
1046Sinclair L VocelkaBrazil2024-04-24Commercial Press PROPOSAL78Bernardo Dominic
1047Claire U MorascaItaly2024-04-13King, Christopher A Esq UNQUALIFIED47Bernardo Dominic
1048Sinclair Q SlusarskiAustralia2024-04-07Commercial Press QUALIFIED42Xuxue Feng
1049David K StockhamAustralia2024-04-11Feiner Bros UNQUALIFIED48Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Antonio V MorascaUnited KingdomOnyama Limba QUALIFIED
Smith U PaprockiAustraliaAnna Fali PROPOSAL
Claire M FerenczGermanyAmy Elsner RENEWAL
Wickens X BowleyArgentinaAnna Fali NEGOTIATION
Leon D DarakjyFranceOnyama Limba UNQUALIFIED
Leja C ShinkoCanadaAnna Fali UNQUALIFIED
Deepesh K KuskoUnited KingdomIvan Magalhaes QUALIFIED
James S CaldareraArgentinaAnna Fali NEW
Kaitlin H DilliardJapanIvan Magalhaes RENEWAL
Aditya N OldroydFranceOnyama Limba QUALIFIED
Wickens M MorascaArgentinaAnna Fali NEGOTIATION
Clifford P WieserIndiaStephen Shaw RENEWAL
Arvin F IturbideBrazilBernardo Dominic NEW
Claire H DarakjyFranceStephen Shaw PROPOSAL
Stacey M BologniaIndiaIvan Magalhaes NEW
Leja P OldroydBrazilIvan Magalhaes PROPOSAL
Claire B AmigonUnited KingdomElwin Sharvill NEGOTIATION
Sinclair U FerenczCanadaIoni Bowcher NEGOTIATION
Ivar Q KolmetzJapanOnyama Limba PROPOSAL
Darci A GauchoIndiaIvan Magalhaes RENEWAL
Arvin I KolmetzGermanyOnyama Limba RENEWAL
Francesco C NestleFranceElwin Sharvill RENEWAL
Munro H SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Kadeem H GarufiCanadaIvan Magalhaes UNQUALIFIED
Maria I PoquetteArgentinaAmy Elsner QUALIFIED
Morrow I PerinRussiaIvan Magalhaes PROPOSAL
Aika R FerenczFranceXuxue Feng UNQUALIFIED
Misaki N WhobreyAustraliaAmy Elsner NEGOTIATION
Clifford Y KolmetzAustraliaElwin Sharvill NEGOTIATION
Faith P AmigonBrazilAnna Fali QUALIFIED
Stacey R GlickFranceIvan Magalhaes RENEWAL
Deepesh K MarrierRussiaIvan Magalhaes RENEWAL
Julie Y CaudyGermanyIoni Bowcher QUALIFIED
Isabel A InouyeCanadaXuxue Feng NEW
Silvio U OldroydFranceAsiya Javayant NEGOTIATION
Isabel B RulapaughIndiaAnna Fali NEW
Greenwood P FollerSpainIvan Magalhaes NEGOTIATION
Murillo E CaudyRussiaAnna Fali NEGOTIATION
Maria S NestleFranceElwin Sharvill UNQUALIFIED
Leja C GillianFranceOnyama Limba NEGOTIATION
Kadeem J OldroydFranceOnyama Limba UNQUALIFIED
Cody P GillianArgentinaStephen Shaw RENEWAL
Jefferson T DilliardIndiaAmy Elsner NEW
Leja W BriddickRussiaBernardo Dominic UNQUALIFIED
Aruna T SlusarskiGermanyXuxue Feng UNQUALIFIED
Francesco K FigeroaItalyElwin Sharvill NEGOTIATION
Faith K FerenczUnited KingdomOnyama Limba NEGOTIATION
Mayumi P RimAustraliaOnyama Limba RENEWAL
Kadeem E NestleGermanyBernardo Dominic RENEWAL
Chavez R DarakjyGermanyOnyama Limba UNQUALIFIED
Frozen Columns
Name
Silvio V Malet
Arvin M Perin
Jeanfrancois T Nestle
James B Oldroyd
James W Flosi
Aditya T Marrier
Darci M Flosi
Emily O Kusko
Misaki J Morasca
Jones V Shinko
Emily S Nicka
Jones W Campain
Cody E Glick
Sinclair K Gaucho
Kaitlin M Paprocki
Morrow V Royster
Jefferson I Marrier
Alejandro Z Maclead
Salvatore Y Figeroa
Isabel K Gillian
Alejandro M Garufi
Antonio T Campain
Faith W Perin
Misaki N Morasca
Morrow M Kusko
Munro O Waycott
Arvin K Caudy
Tony P Glick
Cody Q Stockham
Mayumi P Paprocki
Jones Z Tollner
James N Stenseth
Alejandro X Caudy
Maria J Butt
Ashley I Ostrosky
Salvatore Z Marrier
Leon Y Foller
Kaitlin I Paprocki
Rodrigues E Nestle
Stacey W Maclead
Leon T Stenseth
James K Sergi
Ivar Y Glick
Claire N Figeroa
Nicolas B Figeroa
Wickens Z Tollner
Nicolas B Garufi
Maisha D Bowley
Costa C Royster
Jennifer D Bolognia
IdCountryDate
1000Russia2024-04-06
1001France2024-04-23
1002Brazil2024-04-13
1003India2024-04-11
1004Spain2024-04-02
1005Spain2024-04-23
1006France2024-04-01
1007Russia2024-04-16
1008Australia2024-04-22
1009Argentina2024-04-24
1010Italy2024-04-07
1011Germany2024-04-20
1012Canada2024-04-16
1013Japan2024-04-21
1014Germany2024-03-30
1015Canada2024-04-13
1016France2024-03-31
1017Argentina2024-04-18
1018Spain2024-04-22
1019India2024-03-27
1020Argentina2024-04-18
1021Australia2024-04-24
1022France2024-04-01
1023Italy2024-04-20
1024France2024-04-05
1025Germany2024-03-31
1026France2024-03-29
1027Argentina2024-03-26
1028Brazil2024-04-02
1029Germany2024-04-18
1030Australia2024-03-31
1031Spain2024-03-28
1032Australia2024-03-29
1033Brazil2024-04-16
1034United Kingdom2024-04-05
1035Spain2024-04-10
1036Argentina2024-04-20
1037France2024-03-28
1038Japan2024-04-17
1039Brazil2024-04-04
1040Russia2024-04-17
1041Russia2024-03-30
1042United Kingdom2024-03-31
1043Germany2024-04-23
1044India2024-04-13
1045Japan2024-04-19
1046Australia2024-04-23
1047India2024-03-27
1048Brazil2024-04-22
1049Germany2024-04-24

On-Demand Data

NameIdCountryDate
Sinclair D Sergi1000United Kingdom2024-03-30
Clifford W Briddick1001Argentina2024-04-10
Alejandro X Poquette1002Japan2024-03-28
Emily M Ferencz1003Japan2024-04-22
Aditya J Poquette1004Argentina2024-04-17
Wickens W Flosi1005Argentina2024-04-13
Maria R Dilliard1006Germany2024-04-07
Juan C Garufi1007Russia2024-03-27
Francesco C Inouye1008Germany2024-03-30
Murillo U Wieser1009Brazil2024-04-19
Salvatore M Venere1010India2024-04-05
Sinclair R Amigon1011France2024-04-10
Clifford C Bowley1012France2024-04-16
Jeanfrancois C Figeroa1013Russia2024-04-12
Costa I Kusko1014Italy2024-04-15
Munro V Saylors1015Australia2024-04-18
Murillo Q Iturbide1016Spain2024-04-01
Murillo L Rulapaugh1017Canada2024-03-30
Greenwood E Rim1018Spain2024-04-10
Johnson U Ostrosky1019Russia2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues M ChuiIndiaStephen Shaw NEGOTIATION
Ivar I MacleadBrazilStephen Shaw QUALIFIED
Claire H AmigonSpainIvan Magalhaes NEGOTIATION
Aditya K MaletUnited KingdomOnyama Limba UNQUALIFIED
Jones V RutaFranceXuxue Feng PROPOSAL
Emily H FlosiFranceXuxue Feng PROPOSAL
Faith T RulapaughArgentinaAmy Elsner QUALIFIED
Maisha I VenereCanadaXuxue Feng QUALIFIED
Adams G BologniaItalyAnna Fali NEW
Leja A SchemmerFranceIoni Bowcher NEGOTIATION
Jefferson U NickaRussiaAsiya Javayant RENEWAL
Kadeem F RimSpainIvan Magalhaes PROPOSAL
Cody H FlosiAustraliaIvan Magalhaes NEGOTIATION
Juan L GarufiCanadaIvan Magalhaes UNQUALIFIED
Murillo L WhobreyBrazilAsiya Javayant NEW
Nicolas O GillianIndiaBernardo Dominic PROPOSAL
Aditya Q BowleyItalyAmy Elsner UNQUALIFIED
Francesco E GarufiRussiaOnyama Limba UNQUALIFIED
Wickens X ShinkoArgentinaAsiya Javayant QUALIFIED
Jefferson Q RoysterArgentinaAsiya Javayant PROPOSAL
Leja E RulapaughUnited KingdomXuxue Feng PROPOSAL
Alejandro B BowleyArgentinaXuxue Feng NEGOTIATION
Cody V BriddickGermanyStephen Shaw NEW
Alejandro S FigeroaBrazilAnna Fali QUALIFIED
Salvatore R SergiAustraliaAsiya Javayant RENEWAL
Stacey A InouyeIndiaAmy Elsner NEW
Isabel H MaletIndiaXuxue Feng NEW
Cody I GillianJapanAmy Elsner RENEWAL
Leon D SchemmerRussiaStephen Shaw PROPOSAL
Rodrigues N DoeGermanyXuxue Feng QUALIFIED
Cody W BowleyRussiaOnyama Limba RENEWAL
Maisha F RoysterFranceIoni Bowcher NEW
Chavez K MaletBrazilIvan Magalhaes UNQUALIFIED
Antonio B ChuiArgentinaAnna Fali NEW
Murillo N StensethSpainIvan Magalhaes RENEWAL
Aditya U SlusarskiIndiaIvan Magalhaes NEW
Stacey Z RutaIndiaAsiya Javayant PROPOSAL
Isabel Y PerinIndiaAnna Fali UNQUALIFIED
Emily N TollnerArgentinaAsiya Javayant NEGOTIATION
Greenwood F MacleadGermanyIoni Bowcher 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>