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
Jeanfrancois L KuskoUnited KingdomAmy Elsner UNQUALIFIED
Juan Q BowleyFranceOnyama Limba QUALIFIED
Salvatore T GauchoItalyIvan Magalhaes NEW
Alejandro S DoeGermanyStephen Shaw NEGOTIATION
Arvin E BriddickItalyAmy Elsner PROPOSAL
Munro S CaldareraSpainOnyama Limba PROPOSAL
Johnson B CaudyGermanyAsiya Javayant NEW
Maisha Q FlosiGermanyAnna Fali NEW
Kaitlin I CaldareraJapanAnna Fali UNQUALIFIED
Misaki V FollerArgentinaOnyama Limba PROPOSAL
Octavia C PoquetteArgentinaIoni Bowcher NEGOTIATION
Cody T MaletRussiaAnna Fali NEW
Maisha N VenereUnited KingdomAmy Elsner PROPOSAL
Salvatore R GarufiUnited KingdomStephen Shaw PROPOSAL
Stacey S WhobreyIndiaIvan Magalhaes PROPOSAL
Isabel Z PaprockiAustraliaAnna Fali NEW
Darci T MarrierBrazilAmy Elsner NEW
Maisha L GlickAustraliaStephen Shaw NEGOTIATION
Deepesh S RutaJapanElwin Sharvill PROPOSAL
Adams Y ShinkoJapanStephen Shaw UNQUALIFIED
Arvin J NickaRussiaIvan Magalhaes PROPOSAL
Deepesh Z FigeroaJapanAmy Elsner PROPOSAL
Adams P ChuiRussiaOnyama Limba NEGOTIATION
Arvin H OstroskyAustraliaElwin Sharvill UNQUALIFIED
Wickens Z OldroydItalyIoni Bowcher RENEWAL
Nicolas N ButtFranceOnyama Limba RENEWAL
Julie Y FerenczJapanAmy Elsner NEW
Octavia D OldroydJapanAsiya Javayant PROPOSAL
Aika C NestleArgentinaIvan Magalhaes QUALIFIED
Antonio X BologniaGermanyIvan Magalhaes QUALIFIED
James E FigeroaItalyElwin Sharvill RENEWAL
Aika R BowleyRussiaBernardo Dominic NEW
Adams H DilliardJapanAmy Elsner RENEWAL
Antonio U DilliardArgentinaOnyama Limba NEW
Leja M RimSpainIvan Magalhaes RENEWAL
Smith W DoeFranceElwin Sharvill QUALIFIED
Salvatore V GarufiCanadaBernardo Dominic NEW
Johnson F DarakjyIndiaXuxue Feng UNQUALIFIED
Arvin N VenereSpainAmy Elsner UNQUALIFIED
Adams I RoysterSpainXuxue Feng PROPOSAL
Jefferson I PaprockiArgentinaBernardo Dominic QUALIFIED
Alejandro Q CaudyBrazilAsiya Javayant UNQUALIFIED
Arvin X SlusarskiFranceAmy Elsner RENEWAL
Octavia F KolmetzUnited KingdomBernardo Dominic RENEWAL
Maria B MaletItalyAnna Fali NEW
Kaitlin N FigeroaJapanStephen Shaw PROPOSAL
Leja B ButtArgentinaXuxue Feng NEW
Leon R KolmetzArgentinaXuxue Feng RENEWAL
Cody B GlickArgentinaAnna Fali RENEWAL
Deepesh R BologniaFranceIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leon B CaudyFranceIvan Magalhaes PROPOSAL
Claire I KolmetzCanadaIoni Bowcher NEGOTIATION
Nicolas U BriddickBrazilOnyama Limba UNQUALIFIED
Munro E SchemmerIndiaAsiya Javayant QUALIFIED
Kaitlin D GarufiRussiaBernardo Dominic RENEWAL
Aruna U DoeUnited KingdomStephen Shaw NEGOTIATION
Kaitlin J MaletBrazilStephen Shaw RENEWAL
Aruna C VocelkaUnited KingdomIoni Bowcher PROPOSAL
Isabel X ButtBrazilAnna Fali NEGOTIATION
Mayumi R RimBrazilBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood K GlickItaly2024-05-15Rangoni Of Florence PROPOSAL72Xuxue Feng
1001Aruna D FlosiBrazil2024-05-07King, Christopher A Esq UNQUALIFIED52Ivan Magalhaes
1002Munro Z DarakjyUnited Kingdom2024-05-02Dorl, James J Esq RENEWAL93Asiya Javayant
1003Stacey Z AlbaresRussia2024-05-17Commercial Press RENEWAL20Xuxue Feng
1004Wickens V SchemmerArgentina2024-05-06Chanay, Jeffrey A Esq NEW85Elwin Sharvill
1005Aruna U BowleyUnited Kingdom2024-05-14Chemel, James L Cpa QUALIFIED23Elwin Sharvill
1006Silvio Z SergiJapan2024-05-08Feiner Bros UNQUALIFIED95Bernardo Dominic
1007Smith T FigeroaJapan2024-05-01Printing Dimensions PROPOSAL65Elwin Sharvill
1008Chavez N RoysterArgentina2024-05-14Morlong Associates NEGOTIATION15Anna Fali
1009Deepesh S NestleAustralia2024-05-04King, Christopher A Esq PROPOSAL79Anna Fali
1010Nicolas C KolmetzRussia2024-05-09Feiner Bros UNQUALIFIED72Ioni Bowcher
1011Jeanfrancois T OstroskySpain2024-05-17Buckley Miller Wright PROPOSAL29Ioni Bowcher
1012Johnson Z RimBrazil2024-05-19Feltz Printing Service NEW98Anna Fali
1013Jefferson K MorascaFrance2024-05-06Rousseaux, Michael Esq NEW99Onyama Limba
1014Chavez M OstroskyIndia2024-05-14Feiner Bros RENEWAL2Elwin Sharvill
1015Antonio B RulapaughIndia2024-05-14Chemel, James L Cpa PROPOSAL29Xuxue Feng
1016James C FollerJapan2024-05-15Printing Dimensions QUALIFIED70Xuxue Feng
1017Darci O KolmetzIndia2024-04-30Rangoni Of Florence QUALIFIED64Amy Elsner
1018Alejandro P FlosiIndia2024-04-28Feltz Printing Service PROPOSAL17Xuxue Feng
1019Jefferson V GauchoJapan2024-05-15Chemel, James L Cpa PROPOSAL90Asiya Javayant
1020Isabel A WaycottBrazil2024-05-07Rousseaux, Michael Esq QUALIFIED11Ioni Bowcher
1021Juan F FlosiArgentina2024-05-07Feiner Bros QUALIFIED31Anna Fali
1022Juan Z DilliardCanada2024-05-02Feltz Printing Service NEGOTIATION96Anna Fali
1023Maria I CampainGermany2024-05-02Feiner Bros NEGOTIATION54Onyama Limba
1024Octavia G FigeroaJapan2024-05-04Feiner Bros UNQUALIFIED43Stephen Shaw
1025Arvin Z GlickFrance2024-05-09King, Christopher A Esq PROPOSAL42Stephen Shaw
1026Octavia P FigeroaAustralia2024-04-25Feiner Bros RENEWAL28Onyama Limba
1027Leja O PerinIndia2024-05-11Dorl, James J Esq RENEWAL81Onyama Limba
1028Smith L SchemmerAustralia2024-05-07Dorl, James J Esq PROPOSAL24Onyama Limba
1029Emily C VocelkaBrazil2024-05-16Printing Dimensions NEGOTIATION60Anna Fali
1030David B SlusarskiRussia2024-05-09Commercial Press UNQUALIFIED67Amy Elsner
1031Maria O StensethAustralia2024-05-08Benton, John B Jr NEGOTIATION82Elwin Sharvill
1032Arvin G KolmetzGermany2024-04-25Rangoni Of Florence UNQUALIFIED52Stephen Shaw
1033Jefferson K NestleArgentina2024-05-13Printing Dimensions NEW3Onyama Limba
1034Francesco Z GauchoItaly2024-05-19Morlong Associates UNQUALIFIED90Ioni Bowcher
1035Adams G MarrierCanada2024-04-24Feltz Printing Service NEW16Anna Fali
1036Aruna W ShinkoRussia2024-05-12Printing Dimensions UNQUALIFIED41Asiya Javayant
1037Antonio Q TollnerArgentina2024-05-12Chanay, Jeffrey A Esq NEW81Stephen Shaw
1038Johnson N DarakjyJapan2024-05-01Commercial Press RENEWAL22Onyama Limba
1039Cody X FollerSpain2024-05-17Truhlar And Truhlar Attys QUALIFIED39Bernardo Dominic
1040Salvatore C GauchoCanada2024-04-28Feiner Bros UNQUALIFIED36Ioni Bowcher
1041Munro A StockhamGermany2024-05-04Buckley Miller Wright NEW26Elwin Sharvill
1042Rodrigues K VenereUnited Kingdom2024-04-26Buckley Miller Wright NEW80Ivan Magalhaes
1043Misaki U KuskoCanada2024-05-15Feltz Printing Service QUALIFIED15Ivan Magalhaes
1044Stacey R BriddickRussia2024-05-12Commercial Press NEGOTIATION74Asiya Javayant
1045Alejandro M BowleySpain2024-04-28Chemel, James L Cpa UNQUALIFIED65Stephen Shaw
1046Morrow A BriddickItaly2024-05-02Commercial Press NEW97Amy Elsner
1047David D SergiSpain2024-05-03Feltz Printing Service UNQUALIFIED31Xuxue Feng
1048Ivar W SchemmerCanada2024-05-03Feltz Printing Service UNQUALIFIED34Ioni Bowcher
1049Wickens Y ShinkoRussia2024-05-12Truhlar And Truhlar Attys UNQUALIFIED12Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair C RulapaughBrazilOnyama Limba PROPOSAL
Maisha P RulapaughArgentinaOnyama Limba NEW
Julie T RimUnited KingdomIoni Bowcher PROPOSAL
Sinclair Y VocelkaUnited KingdomAnna Fali NEGOTIATION
Mujtaba E RulapaughIndiaXuxue Feng QUALIFIED
Ashley P SlusarskiJapanIoni Bowcher QUALIFIED
Jefferson R SergiAustraliaXuxue Feng QUALIFIED
Wickens R AlbaresCanadaBernardo Dominic PROPOSAL
Cody K StensethGermanyIvan Magalhaes UNQUALIFIED
Izzy A IturbideJapanIoni Bowcher UNQUALIFIED
Aruna D RimArgentinaIoni Bowcher PROPOSAL
Deepesh H ButtGermanyAnna Fali PROPOSAL
Maisha J VocelkaSpainAsiya Javayant PROPOSAL
Ashley N AlbaresFranceIoni Bowcher RENEWAL
Leon I WaycottGermanyIoni Bowcher RENEWAL
Murillo R WieserIndiaXuxue Feng UNQUALIFIED
Jennifer E GauchoFranceOnyama Limba NEGOTIATION
Tony G CaudyRussiaBernardo Dominic NEW
Adams K DarakjyJapanAnna Fali NEGOTIATION
Morrow B NickaFranceOnyama Limba NEGOTIATION
Octavia X InouyeUnited KingdomAsiya Javayant NEGOTIATION
Aruna T PaprockiRussiaStephen Shaw PROPOSAL
Deepesh C SergiJapanAnna Fali NEW
Smith A KolmetzCanadaAnna Fali RENEWAL
David X DarakjyAustraliaIoni Bowcher NEGOTIATION
Cody W PerinIndiaBernardo Dominic UNQUALIFIED
Alejandro O FlosiBrazilElwin Sharvill NEGOTIATION
Aruna C MaletIndiaAnna Fali RENEWAL
Ricardo T GauchoArgentinaElwin Sharvill RENEWAL
Misaki S PaprockiGermanyAsiya Javayant PROPOSAL
Adams I BriddickGermanyAmy Elsner RENEWAL
Chavez B GarufiIndiaAsiya Javayant UNQUALIFIED
Mujtaba K BologniaItalyElwin Sharvill NEGOTIATION
Kaitlin Q WieserSpainAnna Fali RENEWAL
Arvin Z ButtItalyXuxue Feng RENEWAL
Maisha T VenereBrazilAmy Elsner RENEWAL
Izzy L SchemmerArgentinaElwin Sharvill NEW
Maria N ChuiCanadaStephen Shaw NEGOTIATION
Mayumi L FlosiSpainXuxue Feng RENEWAL
Mayumi X RulapaughJapanIoni Bowcher PROPOSAL
Aditya P CampainArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois E CampainUnited KingdomXuxue Feng QUALIFIED
Darci E VenereRussiaAsiya Javayant RENEWAL
Izzy I KolmetzGermanyIvan Magalhaes NEGOTIATION
Mujtaba B SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Emily K GauchoRussiaBernardo Dominic RENEWAL
Emily J SaylorsUnited KingdomStephen Shaw NEGOTIATION
David L IturbideCanadaElwin Sharvill NEW
Murillo Q MorascaArgentinaOnyama Limba PROPOSAL
Mayumi T PoquetteBrazilAnna Fali RENEWAL
Frozen Columns
Name
Johnson O Schemmer
Morrow A Tollner
Munro Y Ruta
Jeanfrancois W Doe
Costa A Figeroa
Alejandro A Campain
Francesco A Waycott
Greenwood J Bowley
Octavia I Ruta
Chavez D Vocelka
Stacey N Oldroyd
Maria M Figeroa
Salvatore T Bolognia
David P Rulapaugh
James J Inouye
Munro E Flosi
Francesco Y Tollner
Mayumi M Morasca
Emily M Marrier
Leon I Saylors
Leon L Iturbide
Silvio C Oldroyd
Kaitlin J Oldroyd
Clifford C Iturbide
Chavez B Morasca
Wickens J Ostrosky
Jeanfrancois Y Chui
Morrow N Dilliard
Maisha O Slusarski
Deepesh U Butt
Costa L Whobrey
Leon R Nestle
Sinclair G Butt
Adams I Poquette
Juan Y Nestle
Aditya R Bolognia
Adams M Ruta
Clifford I Perin
Aditya Z Ostrosky
Tony F Ostrosky
Jefferson Z Tollner
Mujtaba G Nestle
Nicolas E Dilliard
Adams I Butt
Antonio Z Dilliard
Maisha U Kolmetz
James A Chui
Ivar P Nicka
Mujtaba Q Malet
Jefferson K Foller
IdCountryDate
1000Germany2024-05-15
1001United Kingdom2024-05-04
1002India2024-04-29
1003Canada2024-05-13
1004Italy2024-04-26
1005Argentina2024-05-05
1006Australia2024-05-09
1007India2024-04-30
1008Germany2024-05-03
1009Spain2024-05-13
1010Germany2024-05-06
1011Japan2024-04-28
1012Japan2024-05-08
1013Japan2024-04-21
1014Brazil2024-04-27
1015United Kingdom2024-05-11
1016Canada2024-05-12
1017India2024-05-12
1018France2024-05-07
1019Japan2024-04-25
1020Argentina2024-05-04
1021India2024-05-09
1022United Kingdom2024-04-25
1023Canada2024-04-23
1024Japan2024-04-20
1025United Kingdom2024-05-08
1026Japan2024-05-10
1027Argentina2024-05-12
1028Canada2024-04-30
1029Australia2024-05-17
1030Japan2024-04-22
1031United Kingdom2024-04-27
1032Japan2024-05-09
1033Brazil2024-04-26
1034Australia2024-05-03
1035Germany2024-05-08
1036Spain2024-05-13
1037Italy2024-05-15
1038United Kingdom2024-05-05
1039Australia2024-05-18
1040Australia2024-05-05
1041United Kingdom2024-05-14
1042Argentina2024-05-01
1043Spain2024-05-16
1044France2024-05-14
1045Italy2024-04-30
1046India2024-05-12
1047Australia2024-05-06
1048Spain2024-05-02
1049United Kingdom2024-05-11

On-Demand Data

NameIdCountryDate
Jeanfrancois B Tollner1000Italy2024-04-27
Misaki G Iturbide1001Spain2024-05-09
Silvio H Gaucho1002Argentina2024-04-28
Darci E Sergi1003United Kingdom2024-05-14
Aika S Caldarera1004Canada2024-04-30
Julie O Doe1005Germany2024-04-23
Darci G Ferencz1006Brazil2024-05-01
Aruna Z Rulapaugh1007Canada2024-04-26
Faith K Rim1008United Kingdom2024-05-19
Izzy K Kusko1009United Kingdom2024-05-02
Stacey C Ferencz1010Australia2024-05-04
Chavez F Kolmetz1011Canada2024-04-27
Costa F Schemmer1012Australia2024-05-14
Jefferson Q Dilliard1013India2024-05-05
Tony C Nestle1014Argentina2024-05-08
Julie E Kolmetz1015Argentina2024-05-15
Chavez G Shinko1016Australia2024-05-03
Arvin O Foller1017Argentina2024-05-09
Misaki B Doe1018Brazil2024-05-12
Stacey U Gillian1019Australia2024-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey X SchemmerRussiaStephen Shaw UNQUALIFIED
Rodrigues O DarakjySpainXuxue Feng QUALIFIED
Jeanfrancois O WhobreyIndiaBernardo Dominic NEGOTIATION
Aruna H ShinkoFranceOnyama Limba NEGOTIATION
Francesco P MacleadJapanElwin Sharvill QUALIFIED
Stacey J FigeroaFranceBernardo Dominic QUALIFIED
Octavia D WhobreyJapanAnna Fali UNQUALIFIED
David D WaycottUnited KingdomOnyama Limba RENEWAL
Jefferson T WaycottCanadaBernardo Dominic RENEWAL
Claire B CampainAustraliaElwin Sharvill QUALIFIED
Isabel W GlickUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba F ShinkoRussiaAmy Elsner NEW
Sinclair A NickaArgentinaElwin Sharvill QUALIFIED
Jones S OldroydAustraliaIvan Magalhaes NEW
Arvin I NickaArgentinaIvan Magalhaes QUALIFIED
Aika C RimJapanElwin Sharvill RENEWAL
Faith I KuskoBrazilOnyama Limba UNQUALIFIED
Adams M BologniaAustraliaAsiya Javayant PROPOSAL
Octavia J GlickItalyBernardo Dominic NEW
Wickens W SchemmerFranceOnyama Limba RENEWAL
Jefferson S RutaJapanElwin Sharvill RENEWAL
James O GauchoRussiaXuxue Feng NEGOTIATION
Clifford C SergiItalyXuxue Feng NEGOTIATION
Mayumi P SchemmerItalyIvan Magalhaes NEW
Maisha V DarakjyIndiaElwin Sharvill RENEWAL
Munro D MacleadJapanAsiya Javayant RENEWAL
Antonio N FollerJapanAnna Fali RENEWAL
Morrow V GauchoArgentinaElwin Sharvill NEGOTIATION
Murillo D BowleyAustraliaIoni Bowcher QUALIFIED
Jefferson I NestleAustraliaIoni Bowcher NEGOTIATION
Maisha I CampainFranceElwin Sharvill NEW
Rodrigues F GlickCanadaStephen Shaw PROPOSAL
Chavez X ShinkoBrazilXuxue Feng UNQUALIFIED
Greenwood B DarakjyIndiaStephen Shaw QUALIFIED
Munro Z GillianRussiaIoni Bowcher UNQUALIFIED
Julie D NickaFranceStephen Shaw UNQUALIFIED
Darci W CaldareraItalyBernardo Dominic NEGOTIATION
Juan C VenereItalyAnna Fali NEW
Jones M VenereBrazilXuxue Feng RENEWAL
Tony Z PoquetteUnited KingdomAnna Fali 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>