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 M CaldareraAustraliaElwin Sharvill RENEWAL
Chavez S FlosiItalyIoni Bowcher NEGOTIATION
Costa B TollnerItalyAmy Elsner RENEWAL
Francesco A CaudyFranceAmy Elsner NEGOTIATION
David O PoquetteBrazilElwin Sharvill PROPOSAL
Arvin J SaylorsUnited KingdomXuxue Feng QUALIFIED
Salvatore C WaycottBrazilIoni Bowcher PROPOSAL
Juan X WieserItalyOnyama Limba PROPOSAL
Chavez Y BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Ivar E GillianArgentinaAsiya Javayant PROPOSAL
Arvin E GarufiCanadaXuxue Feng RENEWAL
Izzy D FerenczSpainBernardo Dominic PROPOSAL
Cody D SchemmerJapanIvan Magalhaes QUALIFIED
James Q CaudyFranceOnyama Limba QUALIFIED
Jefferson Y IturbideCanadaElwin Sharvill QUALIFIED
Leon C CaudyIndiaIoni Bowcher NEW
Wickens V PoquetteIndiaIoni Bowcher RENEWAL
Nicolas V PaprockiSpainXuxue Feng RENEWAL
Clifford I NestleIndiaIvan Magalhaes NEGOTIATION
Cody C SergiItalyBernardo Dominic RENEWAL
Arvin F GauchoBrazilIoni Bowcher QUALIFIED
Kadeem W VenereSpainAmy Elsner NEGOTIATION
Aditya B FigeroaSpainIoni Bowcher RENEWAL
Smith S PaprockiCanadaIvan Magalhaes RENEWAL
Misaki Y GlickIndiaBernardo Dominic NEW
Jeanfrancois R ShinkoCanadaOnyama Limba QUALIFIED
Maria A CaldareraFranceOnyama Limba NEW
Chavez G FlosiGermanyIvan Magalhaes PROPOSAL
Chavez A PaprockiCanadaXuxue Feng PROPOSAL
Wickens A PaprockiFranceOnyama Limba NEGOTIATION
Salvatore P CaldareraGermanyStephen Shaw QUALIFIED
Claire K StockhamBrazilBernardo Dominic NEGOTIATION
Francesco D GarufiIndiaIoni Bowcher NEW
Morrow O GillianUnited KingdomIoni Bowcher NEW
Stacey V FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Claire Q RulapaughBrazilElwin Sharvill UNQUALIFIED
Morrow I AlbaresUnited KingdomElwin Sharvill RENEWAL
Francesco G PerinGermanyAsiya Javayant UNQUALIFIED
Tony J MorascaIndiaIvan Magalhaes UNQUALIFIED
Rodrigues L RoysterUnited KingdomAnna Fali UNQUALIFIED
Stacey U AlbaresGermanyOnyama Limba NEW
Silvio F ChuiItalyIoni Bowcher RENEWAL
Rodrigues U GarufiAustraliaBernardo Dominic QUALIFIED
Francesco L MarrierFranceAsiya Javayant NEW
Costa Y KolmetzIndiaIoni Bowcher PROPOSAL
Leon T SergiFranceElwin Sharvill RENEWAL
Arvin A InouyeArgentinaAsiya Javayant QUALIFIED
Clifford Y VenereGermanyXuxue Feng UNQUALIFIED
Jefferson T SaylorsCanadaXuxue Feng NEW
Mujtaba F BologniaAustraliaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba S WaycottCanadaStephen Shaw PROPOSAL
Cody J GauchoItalyOnyama Limba UNQUALIFIED
Salvatore J NestleBrazilAmy Elsner RENEWAL
Emily G GarufiUnited KingdomOnyama Limba QUALIFIED
Nicolas J BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Johnson H SlusarskiItalyIoni Bowcher UNQUALIFIED
Ivar C GillianBrazilOnyama Limba QUALIFIED
Wickens W SaylorsJapanXuxue Feng NEW
Arvin F FlosiIndiaElwin Sharvill NEW
Costa T DoeFranceAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna W AmigonAustralia2024-05-15Buckley Miller Wright NEW98Elwin Sharvill
1001Ivar O RoysterUnited Kingdom2024-05-15Feltz Printing Service UNQUALIFIED8Ioni Bowcher
1002Salvatore U WieserCanada2024-05-06Buckley Miller Wright NEW87Asiya Javayant
1003Chavez S MarrierBrazil2024-05-13Commercial Press QUALIFIED14Stephen Shaw
1004Sinclair U GlickSpain2024-05-12Feltz Printing Service UNQUALIFIED1Onyama Limba
1005Faith B SchemmerIndia2024-05-15Dorl, James J Esq RENEWAL24Anna Fali
1006Izzy J IturbideBrazil2024-05-03Feiner Bros PROPOSAL54Amy Elsner
1007Claire M DilliardGermany2024-05-12Rangoni Of Florence RENEWAL94Anna Fali
1008Clifford G IturbideArgentina2024-05-10Printing Dimensions NEGOTIATION21Amy Elsner
1009Salvatore F WhobreyFrance2024-05-14Buckley Miller Wright NEW71Ioni Bowcher
1010Francesco J OstroskyGermany2024-04-29Rangoni Of Florence NEW44Onyama Limba
1011Maria U BologniaSpain2024-05-17King, Christopher A Esq UNQUALIFIED92Onyama Limba
1012Smith A DarakjyFrance2024-05-01Truhlar And Truhlar Attys UNQUALIFIED17Amy Elsner
1013Darci O CaldareraRussia2024-05-14Commercial Press NEGOTIATION51Bernardo Dominic
1014Salvatore Q KuskoGermany2024-04-26Morlong Associates PROPOSAL11Ivan Magalhaes
1015Arvin V GlickBrazil2024-05-20Morlong Associates RENEWAL74Onyama Limba
1016Mujtaba W AmigonRussia2024-05-01Printing Dimensions NEGOTIATION5Asiya Javayant
1017Tony Q MarrierJapan2024-05-17Rangoni Of Florence NEGOTIATION16Bernardo Dominic
1018Alejandro O AmigonGermany2024-05-20Morlong Associates NEW99Bernardo Dominic
1019Octavia I VenereJapan2024-04-29Dorl, James J Esq PROPOSAL55Bernardo Dominic
1020Cody E RulapaughIndia2024-04-27Chapman, Ross E Esq NEW64Bernardo Dominic
1021Adams I StockhamFrance2024-05-07Dorl, James J Esq QUALIFIED90Elwin Sharvill
1022Jefferson U NickaUnited Kingdom2024-05-07Chemel, James L Cpa RENEWAL20Amy Elsner
1023Leon Y CampainItaly2024-05-10Chanay, Jeffrey A Esq NEGOTIATION94Amy Elsner
1024Rodrigues C RimUnited Kingdom2024-05-17Chanay, Jeffrey A Esq UNQUALIFIED6Bernardo Dominic
1025Costa L BologniaItaly2024-05-15Commercial Press UNQUALIFIED36Asiya Javayant
1026Deepesh L TollnerCanada2024-05-05Chapman, Ross E Esq QUALIFIED20Amy Elsner
1027Mayumi G SaylorsRussia2024-05-01Feiner Bros PROPOSAL17Amy Elsner
1028Nicolas U VocelkaFrance2024-05-12Benton, John B Jr NEGOTIATION81Amy Elsner
1029Morrow P MaletItaly2024-04-25Dorl, James J Esq NEGOTIATION40Ivan Magalhaes
1030Aruna V ButtCanada2024-05-11Truhlar And Truhlar Attys NEW61Ivan Magalhaes
1031Faith C StockhamUnited Kingdom2024-05-11Rangoni Of Florence PROPOSAL85Anna Fali
1032Maria B CaudyArgentina2024-04-28Morlong Associates UNQUALIFIED30Elwin Sharvill
1033James I AmigonGermany2024-05-06Buckley Miller Wright NEGOTIATION22Ioni Bowcher
1034Ashley T DarakjyArgentina2024-05-04Rangoni Of Florence QUALIFIED30Ivan Magalhaes
1035Chavez G FerenczJapan2024-04-25Commercial Press PROPOSAL28Xuxue Feng
1036Julie F VenereJapan2024-05-03Buckley Miller Wright NEW1Ivan Magalhaes
1037Munro X DoeIndia2024-05-13Commercial Press RENEWAL76Ivan Magalhaes
1038Deepesh D WieserArgentina2024-04-24Rangoni Of Florence RENEWAL69Xuxue Feng
1039Stacey F VocelkaJapan2024-04-28Commercial Press UNQUALIFIED9Onyama Limba
1040Chavez F VocelkaArgentina2024-05-03Chemel, James L Cpa NEGOTIATION22Xuxue Feng
1041Octavia T SlusarskiArgentina2024-05-06Feiner Bros PROPOSAL72Elwin Sharvill
1042Faith E DilliardIndia2024-05-16Chemel, James L Cpa PROPOSAL3Bernardo Dominic
1043Julie L StockhamArgentina2024-05-14Benton, John B Jr RENEWAL68Xuxue Feng
1044Rodrigues A BowleyCanada2024-04-21Rousseaux, Michael Esq RENEWAL12Ioni Bowcher
1045Kadeem O MorascaUnited Kingdom2024-04-24Printing Dimensions NEW29Onyama Limba
1046Wickens J SchemmerRussia2024-05-02Printing Dimensions NEGOTIATION17Amy Elsner
1047Stacey C GauchoCanada2024-04-22King, Christopher A Esq UNQUALIFIED24Asiya Javayant
1048Murillo L WaycottItaly2024-04-22King, Christopher A Esq QUALIFIED35Amy Elsner
1049Jones T OldroydUnited Kingdom2024-05-11Morlong Associates NEW0Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa W FerenczCanadaIoni Bowcher UNQUALIFIED
Juan Q NickaUnited KingdomIoni Bowcher QUALIFIED
Darci J RoysterRussiaIoni Bowcher NEW
Nicolas J SergiUnited KingdomStephen Shaw UNQUALIFIED
Aruna K FollerUnited KingdomAsiya Javayant NEGOTIATION
Silvio N StockhamSpainXuxue Feng PROPOSAL
Misaki P DoeUnited KingdomIoni Bowcher NEW
Adams X NickaRussiaXuxue Feng UNQUALIFIED
Juan A RoysterSpainIvan Magalhaes UNQUALIFIED
Nicolas P CaudyAustraliaXuxue Feng RENEWAL
Greenwood Y WhobreyUnited KingdomAnna Fali RENEWAL
Ivar I VocelkaFranceAsiya Javayant PROPOSAL
Costa G BologniaJapanAmy Elsner NEGOTIATION
Ivar U NickaCanadaIoni Bowcher PROPOSAL
Costa A SlusarskiItalyElwin Sharvill QUALIFIED
Morrow C VenereSpainBernardo Dominic RENEWAL
Emily Y ButtUnited KingdomIoni Bowcher NEW
Greenwood M SchemmerArgentinaStephen Shaw QUALIFIED
Deepesh M MaletGermanyOnyama Limba QUALIFIED
Adams Z BriddickSpainElwin Sharvill NEGOTIATION
Silvio R KolmetzRussiaXuxue Feng NEW
Tony W GillianAustraliaAsiya Javayant PROPOSAL
Aruna U OldroydIndiaBernardo Dominic NEGOTIATION
Jeanfrancois E WaycottBrazilAmy Elsner NEW
Ashley F FerenczItalyOnyama Limba QUALIFIED
Deepesh C AlbaresAustraliaAmy Elsner UNQUALIFIED
Wickens F GlickCanadaStephen Shaw UNQUALIFIED
Maria B NestleGermanyIoni Bowcher RENEWAL
Munro B FerenczGermanyXuxue Feng NEGOTIATION
Kaitlin X StockhamJapanIoni Bowcher UNQUALIFIED
Salvatore J CampainRussiaXuxue Feng QUALIFIED
Octavia Q PoquetteCanadaAnna Fali NEGOTIATION
Munro K FerenczCanadaAsiya Javayant QUALIFIED
Clifford P CampainCanadaElwin Sharvill RENEWAL
Ricardo O MaletItalyElwin Sharvill NEW
Juan X CampainAustraliaAsiya Javayant UNQUALIFIED
Izzy L MacleadRussiaXuxue Feng UNQUALIFIED
Juan T MaletJapanXuxue Feng PROPOSAL
Clifford D DarakjySpainElwin Sharvill UNQUALIFIED
Emily G DilliardJapanOnyama Limba PROPOSAL
Aditya O BowleyArgentinaAmy Elsner QUALIFIED
Antonio S FerenczItalyOnyama Limba NEGOTIATION
Rodrigues C MaletJapanIoni Bowcher NEGOTIATION
Aika R SchemmerFranceAsiya Javayant RENEWAL
Jefferson D ChuiSpainBernardo Dominic PROPOSAL
Smith V MacleadItalyIoni Bowcher UNQUALIFIED
Julie D ButtCanadaBernardo Dominic QUALIFIED
Munro P InouyeCanadaIoni Bowcher RENEWAL
Munro X RimUnited KingdomBernardo Dominic NEGOTIATION
Francesco H CampainRussiaBernardo Dominic RENEWAL
Frozen Columns
Name
Claire Y Morasca
Emily A Poquette
Mayumi T Darakjy
Chavez C Briddick
Rodrigues E Paprocki
Misaki R Vocelka
Antonio K Caudy
Aruna F Bolognia
Emily F Briddick
Wickens P Schemmer
Francesco I Malet
Ricardo S Bolognia
Johnson N Foller
Johnson D Ostrosky
Nicolas G Bolognia
Chavez J Saylors
Jennifer V Nicka
Kaitlin Z Waycott
Salvatore B Perin
Maisha D Wieser
Silvio P Briddick
Sinclair Z Maclead
Nicolas C Shinko
Cody S Dilliard
Ricardo F Whobrey
Silvio O Ferencz
Tony F Tollner
Francesco H Doe
David J Figeroa
Maisha W Bolognia
Octavia F Poquette
Antonio Z Stenseth
Salvatore S Morasca
Morrow G Morasca
Antonio O Venere
Mujtaba L Kusko
Tony F Kusko
Stacey C Morasca
Wickens F Figeroa
Antonio J Foller
Murillo Q Campain
Costa Q Tollner
Tony L Vocelka
Mayumi W Doe
Chavez G Poquette
Tony T Ferencz
Stacey K Marrier
Leon O Foller
Julie A Gillian
Silvio N Garufi
IdCountryDate
1000United Kingdom2024-05-04
1001Spain2024-05-17
1002Japan2024-05-19
1003Russia2024-05-07
1004Japan2024-05-15
1005United Kingdom2024-05-01
1006Spain2024-05-18
1007Germany2024-05-07
1008Italy2024-05-14
1009Brazil2024-05-10
1010India2024-05-10
1011Australia2024-04-28
1012Brazil2024-04-24
1013United Kingdom2024-05-07
1014United Kingdom2024-05-15
1015Italy2024-05-20
1016Brazil2024-05-09
1017Argentina2024-04-27
1018Germany2024-05-11
1019Canada2024-04-27
1020United Kingdom2024-04-30
1021Australia2024-05-07
1022United Kingdom2024-04-21
1023India2024-04-26
1024France2024-04-30
1025Germany2024-05-09
1026Australia2024-05-19
1027India2024-05-16
1028France2024-05-19
1029Japan2024-04-28
1030India2024-04-22
1031Italy2024-05-06
1032Russia2024-04-23
1033Russia2024-05-13
1034Japan2024-05-05
1035Argentina2024-05-19
1036Spain2024-05-14
1037Spain2024-05-01
1038Germany2024-05-17
1039Australia2024-05-01
1040Australia2024-05-13
1041Brazil2024-04-23
1042Canada2024-05-03
1043Russia2024-05-10
1044Italy2024-05-20
1045France2024-05-08
1046France2024-05-10
1047United Kingdom2024-04-21
1048Germany2024-04-21
1049Brazil2024-05-14

On-Demand Data

NameIdCountryDate
Salvatore K Whobrey1000Australia2024-04-25
Jeanfrancois G Campain1001United Kingdom2024-05-08
Kaitlin Y Bowley1002Canada2024-05-07
Kaitlin K Bowley1003Germany2024-04-28
Darci R Malet1004Canada2024-05-12
Ricardo Z Rim1005India2024-04-29
Jeanfrancois E Bolognia1006Australia2024-04-22
Maria T Figeroa1007Australia2024-05-06
Adams H Campain1008Canada2024-04-24
Salvatore Q Marrier1009Argentina2024-04-21
Tony V Gillian1010Russia2024-05-09
Aika A Iturbide1011United Kingdom2024-04-21
Mayumi D Bolognia1012Italy2024-04-22
Kaitlin G Ruta1013Italy2024-05-12
Murillo F Caldarera1014Russia2024-05-19
Darci F Gaucho1015Germany2024-04-22
Jennifer K Schemmer1016Brazil2024-05-04
Octavia Y Caudy1017Russia2024-05-13
Smith S Garufi1018Spain2024-05-13
Salvatore Y Malet1019France2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood Z DilliardJapanAmy Elsner NEW
Tony T RutaRussiaElwin Sharvill NEGOTIATION
Alejandro D VocelkaGermanyAsiya Javayant NEW
Faith J FlosiAustraliaOnyama Limba UNQUALIFIED
Jones J ShinkoItalyAmy Elsner NEW
Arvin N RimGermanyStephen Shaw PROPOSAL
Ashley Z AlbaresItalyAmy Elsner UNQUALIFIED
Izzy S OldroydArgentinaAmy Elsner QUALIFIED
Jennifer L KuskoJapanAsiya Javayant UNQUALIFIED
Salvatore F MacleadArgentinaAsiya Javayant PROPOSAL
Maria L CaudyItalyXuxue Feng NEW
Sinclair O MaletItalyXuxue Feng NEW
Costa U TollnerArgentinaStephen Shaw PROPOSAL
Cody H VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Costa T PoquetteBrazilAnna Fali PROPOSAL
Rodrigues I RoysterBrazilAsiya Javayant RENEWAL
Leja P BowleyGermanyIoni Bowcher NEGOTIATION
Isabel G PoquetteCanadaOnyama Limba UNQUALIFIED
Aika U MorascaGermanyAnna Fali UNQUALIFIED
Faith Y IturbideItalyAsiya Javayant PROPOSAL
Wickens Y OstroskyBrazilIvan Magalhaes NEW
Cody J TollnerBrazilIvan Magalhaes NEW
Juan R AmigonRussiaOnyama Limba RENEWAL
Cody E SergiJapanAmy Elsner QUALIFIED
Emily Z SergiCanadaStephen Shaw NEW
Faith Q DarakjyBrazilBernardo Dominic QUALIFIED
Faith Z DarakjyJapanOnyama Limba PROPOSAL
Johnson N SaylorsArgentinaBernardo Dominic UNQUALIFIED
Aditya P GlickFranceAsiya Javayant UNQUALIFIED
Misaki T OldroydIndiaBernardo Dominic UNQUALIFIED
Aruna K DoeBrazilOnyama Limba NEGOTIATION
James N SergiRussiaAsiya Javayant PROPOSAL
Adams Y OldroydAustraliaStephen Shaw UNQUALIFIED
Ricardo J WaycottUnited KingdomBernardo Dominic QUALIFIED
David B DilliardBrazilIvan Magalhaes PROPOSAL
Emily F ShinkoIndiaBernardo Dominic QUALIFIED
Faith L RulapaughAustraliaBernardo Dominic RENEWAL
Isabel K DilliardSpainStephen Shaw QUALIFIED
Murillo X PoquetteJapanXuxue Feng NEW
Leja Q RimAustraliaOnyama 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>