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
Costa H SergiArgentinaStephen Shaw PROPOSAL
Francesco B RutaJapanAmy Elsner NEW
Tony C GauchoRussiaAnna Fali PROPOSAL
Octavia P IturbideAustraliaIvan Magalhaes NEGOTIATION
Silvio A InouyeBrazilIoni Bowcher RENEWAL
Nicolas Z VenereBrazilElwin Sharvill NEGOTIATION
Tony I SchemmerItalyStephen Shaw NEW
Julie Y BologniaBrazilAsiya Javayant UNQUALIFIED
Greenwood K FollerUnited KingdomOnyama Limba QUALIFIED
Adams E StockhamBrazilXuxue Feng RENEWAL
Leja C SergiFranceIvan Magalhaes RENEWAL
Misaki T KuskoBrazilAnna Fali NEW
Wickens L RimJapanElwin Sharvill QUALIFIED
Faith A DilliardGermanyElwin Sharvill QUALIFIED
Jennifer G BriddickRussiaIoni Bowcher NEW
Jeanfrancois E GillianSpainBernardo Dominic QUALIFIED
Juan D GauchoSpainStephen Shaw RENEWAL
Antonio L SchemmerRussiaStephen Shaw UNQUALIFIED
Ivar P BowleyItalyOnyama Limba NEW
Antonio Y CaudyBrazilAsiya Javayant RENEWAL
James T WaycottUnited KingdomIoni Bowcher QUALIFIED
Leon Z KuskoItalyOnyama Limba NEGOTIATION
Murillo H KolmetzSpainAsiya Javayant NEGOTIATION
Silvio C NestleGermanyXuxue Feng PROPOSAL
Leon Y StensethFranceAsiya Javayant UNQUALIFIED
Stacey C PoquetteUnited KingdomAnna Fali UNQUALIFIED
Kaitlin L VocelkaSpainXuxue Feng RENEWAL
Clifford U BologniaAustraliaAsiya Javayant QUALIFIED
Clifford N SlusarskiJapanIvan Magalhaes RENEWAL
Leja O GlickArgentinaAmy Elsner NEGOTIATION
Claire Q DilliardFranceAmy Elsner QUALIFIED
Jones X BowleyAustraliaOnyama Limba NEGOTIATION
Misaki H KolmetzJapanIvan Magalhaes QUALIFIED
Darci O StensethUnited KingdomXuxue Feng PROPOSAL
Isabel N ShinkoIndiaXuxue Feng NEW
Jones T PaprockiItalyXuxue Feng RENEWAL
Jennifer S SergiGermanyIvan Magalhaes RENEWAL
Maisha O DarakjyUnited KingdomElwin Sharvill QUALIFIED
James R VocelkaSpainXuxue Feng PROPOSAL
Chavez H StockhamRussiaAsiya Javayant QUALIFIED
Ivar Q PerinJapanOnyama Limba NEGOTIATION
Faith W FerenczIndiaAsiya Javayant QUALIFIED
Ricardo Y RoysterFranceElwin Sharvill NEGOTIATION
Francesco K MorascaBrazilElwin Sharvill NEW
Jennifer W FollerBrazilElwin Sharvill NEGOTIATION
David Z GauchoBrazilAnna Fali RENEWAL
Aditya O RulapaughAustraliaStephen Shaw PROPOSAL
Chavez W VenereJapanIvan Magalhaes NEW
Deepesh S MarrierArgentinaBernardo Dominic RENEWAL
Cody I DarakjyItalyXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas C MorascaFranceIvan Magalhaes PROPOSAL
Mayumi G SergiJapanBernardo Dominic NEGOTIATION
Adams M FollerSpainOnyama Limba RENEWAL
Isabel J AmigonGermanyAsiya Javayant QUALIFIED
Salvatore L GarufiRussiaElwin Sharvill NEGOTIATION
Leon S VenereRussiaStephen Shaw QUALIFIED
Jones D OstroskyAustraliaXuxue Feng QUALIFIED
Arvin E OstroskyCanadaIvan Magalhaes QUALIFIED
Aditya U GauchoArgentinaAnna Fali RENEWAL
Rodrigues M DoeUnited KingdomIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood R RoysterUnited Kingdom2024-05-04Printing Dimensions RENEWAL42Bernardo Dominic
1001Salvatore P RutaArgentina2024-05-08Benton, John B Jr RENEWAL93Elwin Sharvill
1002Jefferson X BologniaIndia2024-05-12Dorl, James J Esq RENEWAL47Onyama Limba
1003Leon V CaudyAustralia2024-04-27King, Christopher A Esq PROPOSAL43Bernardo Dominic
1004Wickens O WhobreyIndia2024-04-24Morlong Associates NEW5Bernardo Dominic
1005Tony H DilliardCanada2024-05-07Morlong Associates RENEWAL79Asiya Javayant
1006Jones R KolmetzGermany2024-05-02Feiner Bros QUALIFIED59Elwin Sharvill
1007Francesco J VocelkaUnited Kingdom2024-05-07Rangoni Of Florence NEGOTIATION0Ioni Bowcher
1008Aruna M KolmetzCanada2024-05-02Chemel, James L Cpa UNQUALIFIED56Elwin Sharvill
1009Jeanfrancois N DilliardIndia2024-05-08Chanay, Jeffrey A Esq NEGOTIATION93Onyama Limba
1010Clifford I IturbideRussia2024-05-05Buckley Miller Wright NEGOTIATION1Stephen Shaw
1011Leon V SergiUnited Kingdom2024-04-19Feltz Printing Service NEW46Onyama Limba
1012Antonio M SergiRussia2024-05-12Chemel, James L Cpa NEW93Bernardo Dominic
1013Wickens Z KolmetzAustralia2024-04-18Printing Dimensions UNQUALIFIED76Stephen Shaw
1014Ashley J RimBrazil2024-05-03Printing Dimensions RENEWAL54Stephen Shaw
1015Nicolas Q KolmetzArgentina2024-05-06Chapman, Ross E Esq RENEWAL11Xuxue Feng
1016Aika Y PerinIndia2024-04-28Commercial Press NEW56Elwin Sharvill
1017Jeanfrancois Q SchemmerArgentina2024-04-29King, Christopher A Esq NEGOTIATION30Anna Fali
1018Aditya W VocelkaBrazil2024-05-11Dorl, James J Esq PROPOSAL64Onyama Limba
1019Tony D InouyeIndia2024-04-29Benton, John B Jr UNQUALIFIED44Asiya Javayant
1020Clifford U WieserFrance2024-04-24Rangoni Of Florence PROPOSAL87Elwin Sharvill
1021Stacey M OstroskyUnited Kingdom2024-05-08Buckley Miller Wright QUALIFIED43Anna Fali
1022David W ButtAustralia2024-04-25Buckley Miller Wright NEW26Amy Elsner
1023Francesco Y MacleadArgentina2024-05-03Feltz Printing Service QUALIFIED56Xuxue Feng
1024Sinclair F WieserRussia2024-04-16Buckley Miller Wright NEW59Asiya Javayant
1025Aruna V SchemmerSpain2024-05-09Printing Dimensions PROPOSAL42Amy Elsner
1026Ashley Q FlosiArgentina2024-04-16Truhlar And Truhlar Attys NEGOTIATION54Stephen Shaw
1027Rodrigues X DilliardSpain2024-05-11Commercial Press QUALIFIED54Stephen Shaw
1028Antonio D BriddickGermany2024-04-18Dorl, James J Esq RENEWAL88Ivan Magalhaes
1029Nicolas Q RoysterArgentina2024-04-24Buckley Miller Wright UNQUALIFIED10Bernardo Dominic
1030Munro I FlosiSpain2024-05-02Feiner Bros QUALIFIED40Amy Elsner
1031Costa K MaletAustralia2024-04-22King, Christopher A Esq PROPOSAL84Ioni Bowcher
1032Adams A InouyeRussia2024-05-01Chemel, James L Cpa NEW24Asiya Javayant
1033Juan G RoysterGermany2024-05-02King, Christopher A Esq NEGOTIATION60Elwin Sharvill
1034Leon U AmigonAustralia2024-05-02Dorl, James J Esq RENEWAL5Bernardo Dominic
1035Jefferson E GauchoFrance2024-05-08Rangoni Of Florence QUALIFIED1Elwin Sharvill
1036Nicolas Z SlusarskiItaly2024-04-28King, Christopher A Esq NEW30Ioni Bowcher
1037Leon K InouyeUnited Kingdom2024-05-06Dorl, James J Esq QUALIFIED43Bernardo Dominic
1038Costa R MarrierBrazil2024-05-11Chanay, Jeffrey A Esq NEW48Ioni Bowcher
1039David R DarakjyAustralia2024-04-22Chapman, Ross E Esq NEGOTIATION79Ivan Magalhaes
1040Ivar F WhobreySpain2024-05-02Chemel, James L Cpa UNQUALIFIED16Ivan Magalhaes
1041Munro D MaletUnited Kingdom2024-05-03Truhlar And Truhlar Attys NEGOTIATION14Bernardo Dominic
1042Misaki L GillianGermany2024-04-14Morlong Associates NEW70Elwin Sharvill
1043Mujtaba F GlickGermany2024-05-06Dorl, James J Esq QUALIFIED86Anna Fali
1044Jennifer I WaycottRussia2024-04-26Truhlar And Truhlar Attys PROPOSAL86Ivan Magalhaes
1045Sinclair E CaudyFrance2024-04-28Dorl, James J Esq NEW26Anna Fali
1046Mayumi X OldroydBrazil2024-04-16Buckley Miller Wright NEGOTIATION2Elwin Sharvill
1047Costa Q InouyeBrazil2024-04-27Feiner Bros PROPOSAL98Xuxue Feng
1048Misaki S DilliardJapan2024-04-14Dorl, James J Esq QUALIFIED77Amy Elsner
1049Kadeem P RimIndia2024-04-17King, Christopher A Esq PROPOSAL91Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ivar S PerinFranceBernardo Dominic RENEWAL
James J InouyeBrazilIvan Magalhaes NEGOTIATION
Cody J BriddickIndiaAsiya Javayant RENEWAL
Aruna O GlickAustraliaAmy Elsner RENEWAL
Leja O ShinkoBrazilElwin Sharvill UNQUALIFIED
Leja I CampainArgentinaAsiya Javayant RENEWAL
Greenwood B MarrierIndiaStephen Shaw RENEWAL
Chavez R CampainGermanyAsiya Javayant UNQUALIFIED
Mayumi G DarakjyAustraliaBernardo Dominic QUALIFIED
Cody W BriddickArgentinaOnyama Limba PROPOSAL
Munro Y RoysterBrazilOnyama Limba UNQUALIFIED
Mayumi D PerinFranceAnna Fali NEW
Clifford N GauchoArgentinaAmy Elsner QUALIFIED
Francesco N MaletCanadaAsiya Javayant NEW
Mujtaba L RutaBrazilAnna Fali NEW
Izzy U SergiCanadaIvan Magalhaes PROPOSAL
Murillo G VenereJapanElwin Sharvill PROPOSAL
Ivar Q FlosiItalyAsiya Javayant RENEWAL
Deepesh O ShinkoSpainAsiya Javayant NEW
Mayumi D AlbaresGermanyBernardo Dominic NEW
Silvio F RutaGermanyAsiya Javayant UNQUALIFIED
Clifford Z GlickBrazilIvan Magalhaes RENEWAL
Wickens Y BriddickRussiaOnyama Limba NEW
Kaitlin X BriddickJapanIvan Magalhaes QUALIFIED
Isabel F TollnerIndiaOnyama Limba NEW
Juan X GauchoFranceAnna Fali PROPOSAL
Morrow P SchemmerJapanXuxue Feng NEW
Isabel E GauchoIndiaAmy Elsner PROPOSAL
Maisha W KolmetzAustraliaIvan Magalhaes QUALIFIED
Johnson Q SaylorsUnited KingdomStephen Shaw RENEWAL
Costa Y SergiAustraliaIvan Magalhaes UNQUALIFIED
Julie B BowleyFranceBernardo Dominic NEGOTIATION
Deepesh P PaprockiItalyOnyama Limba UNQUALIFIED
Wickens L RulapaughGermanyStephen Shaw NEW
Ashley F BowleyBrazilIoni Bowcher UNQUALIFIED
Leon L MorascaRussiaAmy Elsner QUALIFIED
James Y KuskoUnited KingdomElwin Sharvill RENEWAL
James O ShinkoAustraliaElwin Sharvill NEW
Alejandro C RoysterFranceBernardo Dominic NEW
Clifford J SergiAustraliaBernardo Dominic PROPOSAL
Ricardo D SchemmerItalyStephen Shaw UNQUALIFIED
Chavez W VocelkaGermanyAsiya Javayant RENEWAL
Smith Q FlosiUnited KingdomElwin Sharvill PROPOSAL
Juan T NickaBrazilXuxue Feng QUALIFIED
Antonio F KuskoSpainIvan Magalhaes NEW
Rodrigues W StensethUnited KingdomIoni Bowcher NEGOTIATION
Antonio B PaprockiFranceXuxue Feng NEGOTIATION
Mayumi B VocelkaCanadaAnna Fali NEW
Alejandro P OstroskyJapanStephen Shaw PROPOSAL
Mujtaba R BriddickRussiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Mayumi U Rim
Ashley N Kusko
Sinclair Q Gillian
Ricardo Y Rim
Ashley Y Perin
Greenwood S Gillian
Maisha I Doe
Kaitlin D Darakjy
Alejandro U Perin
Chavez J Maclead
Johnson Y Whobrey
Maisha M Nicka
Kaitlin G Ferencz
Morrow G Ruta
Antonio M Paprocki
Claire M Bolognia
Costa U Paprocki
Salvatore F Venere
Jefferson W Ostrosky
David X Morasca
Arvin R Nestle
Juan M Glick
Tony Y Ostrosky
Deepesh D Nicka
Leon T Dilliard
Mayumi K Butt
Isabel U Poquette
Julie G Marrier
Kaitlin Z Stockham
Claire O Chui
Alejandro H Inouye
Isabel M Nicka
Stacey O Butt
Maria D Doe
Leja D Nestle
Ashley Y Morasca
Antonio X Sergi
Maisha W Tollner
Stacey V Foller
Jeanfrancois O Chui
Aditya W Paprocki
Smith D Rulapaugh
Sinclair T Nestle
Nicolas B Inouye
Octavia V Perin
Clifford A Gaucho
Antonio Z Oldroyd
Kadeem K Vocelka
Adams M Malet
Kadeem X Bolognia
IdCountryDate
1000Brazil2024-04-13
1001France2024-05-11
1002Argentina2024-05-01
1003Spain2024-04-28
1004France2024-04-25
1005Russia2024-04-28
1006United Kingdom2024-05-10
1007Russia2024-05-09
1008Russia2024-05-05
1009France2024-04-17
1010France2024-04-19
1011Canada2024-04-16
1012France2024-05-04
1013Germany2024-05-05
1014Argentina2024-05-02
1015Argentina2024-04-14
1016France2024-04-21
1017Spain2024-04-28
1018Russia2024-04-17
1019United Kingdom2024-05-02
1020Spain2024-05-08
1021India2024-05-12
1022Germany2024-04-22
1023Italy2024-05-04
1024Brazil2024-05-05
1025France2024-05-10
1026Australia2024-04-24
1027Brazil2024-04-28
1028Italy2024-05-11
1029Argentina2024-04-21
1030Germany2024-04-16
1031Brazil2024-05-07
1032Australia2024-04-23
1033Italy2024-04-15
1034Australia2024-04-25
1035Brazil2024-04-13
1036Canada2024-05-07
1037Argentina2024-05-09
1038Argentina2024-04-13
1039Germany2024-04-29
1040Italy2024-05-07
1041Italy2024-05-09
1042Japan2024-04-23
1043France2024-05-06
1044Canada2024-05-08
1045Australia2024-05-06
1046Spain2024-04-22
1047India2024-04-27
1048Australia2024-04-15
1049Spain2024-05-01

On-Demand Data

NameIdCountryDate
Nicolas D Caldarera1000Russia2024-04-21
Maria L Royster1001Germany2024-04-26
Izzy Q Oldroyd1002Italy2024-04-29
Kaitlin R Iturbide1003Australia2024-04-24
Isabel X Perin1004Spain2024-04-28
Maisha B Dilliard1005Australia2024-05-05
David N Maclead1006Japan2024-04-13
Octavia F Gillian1007Brazil2024-04-21
Aditya W Rim1008Australia2024-04-24
Sinclair W Gillian1009India2024-04-13
Emily W Chui1010India2024-04-27
Faith N Bolognia1011Japan2024-04-26
Antonio Y Kolmetz1012France2024-05-04
Cody A Kolmetz1013United Kingdom2024-04-21
Clifford F Bowley1014France2024-05-02
Salvatore C Ostrosky1015Italy2024-04-13
Chavez W Bolognia1016France2024-04-30
Misaki H Campain1017Japan2024-05-06
Darci H Gillian1018Australia2024-04-15
James V Sergi1019Italy2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi U AlbaresArgentinaAnna Fali PROPOSAL
Claire O GarufiArgentinaAmy Elsner NEW
Mujtaba B DilliardFranceElwin Sharvill PROPOSAL
Faith T PoquetteAustraliaAmy Elsner QUALIFIED
Smith V KuskoIndiaAnna Fali NEW
Arvin C CaudyUnited KingdomXuxue Feng PROPOSAL
Wickens L KolmetzSpainBernardo Dominic QUALIFIED
Silvio J BriddickFranceIvan Magalhaes RENEWAL
Juan O RulapaughSpainXuxue Feng QUALIFIED
Adams C RulapaughArgentinaElwin Sharvill PROPOSAL
Costa K SaylorsJapanBernardo Dominic PROPOSAL
Sinclair G StockhamIndiaOnyama Limba NEGOTIATION
Wickens Z RutaAustraliaAnna Fali NEGOTIATION
Aditya W FlosiJapanBernardo Dominic NEGOTIATION
Mayumi D MacleadUnited KingdomXuxue Feng RENEWAL
James E SlusarskiItalyAmy Elsner UNQUALIFIED
Adams O DilliardItalyXuxue Feng NEW
Aditya S ShinkoFranceAsiya Javayant NEW
Claire A DilliardJapanOnyama Limba NEGOTIATION
Deepesh Y CaudySpainAsiya Javayant UNQUALIFIED
Chavez U PaprockiAustraliaAnna Fali NEGOTIATION
Munro O RulapaughBrazilIoni Bowcher NEW
Costa P DilliardRussiaElwin Sharvill UNQUALIFIED
Sinclair Z SaylorsAustraliaIoni Bowcher PROPOSAL
Leon M GillianArgentinaAmy Elsner PROPOSAL
Ashley J IturbideSpainOnyama Limba NEW
Deepesh Q DarakjyUnited KingdomXuxue Feng PROPOSAL
Chavez W WaycottGermanyAnna Fali UNQUALIFIED
Murillo Q BologniaJapanBernardo Dominic RENEWAL
Jefferson W SchemmerArgentinaIvan Magalhaes NEW
Emily Q MaletRussiaIoni Bowcher PROPOSAL
Munro W CampainGermanyIoni Bowcher QUALIFIED
Ivar O GlickAustraliaIoni Bowcher RENEWAL
Leja U GillianFranceStephen Shaw QUALIFIED
Deepesh P VenereCanadaIvan Magalhaes UNQUALIFIED
Smith W ShinkoIndiaElwin Sharvill QUALIFIED
Jones E VenereIndiaStephen Shaw UNQUALIFIED
Leon A CaudyRussiaOnyama Limba PROPOSAL
Juan U ShinkoBrazilXuxue Feng RENEWAL
Cody S RimJapanXuxue Feng 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>