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
Johnson T NickaAustraliaOnyama Limba RENEWAL
Salvatore U RutaArgentinaAmy Elsner NEGOTIATION
Costa N RimUnited KingdomOnyama Limba NEGOTIATION
Adams C WaycottBrazilOnyama Limba PROPOSAL
Izzy D BriddickAustraliaXuxue Feng QUALIFIED
Aruna Y PoquetteJapanElwin Sharvill PROPOSAL
Aditya L OstroskyIndiaStephen Shaw NEGOTIATION
Darci F GarufiGermanyIvan Magalhaes PROPOSAL
Juan H ButtJapanAsiya Javayant NEGOTIATION
Salvatore D BologniaUnited KingdomAmy Elsner NEW
Adams V ButtUnited KingdomBernardo Dominic NEW
Clifford S BowleyCanadaIvan Magalhaes UNQUALIFIED
Chavez P MarrierFranceIoni Bowcher NEW
Mujtaba P FerenczCanadaOnyama Limba QUALIFIED
Chavez R WaycottItalyAmy Elsner QUALIFIED
Emily W KuskoGermanyXuxue Feng PROPOSAL
Octavia F ButtItalyElwin Sharvill NEW
Jennifer J ChuiItalyStephen Shaw NEGOTIATION
Costa Z VenereRussiaIvan Magalhaes UNQUALIFIED
James C MacleadAustraliaStephen Shaw NEW
Claire C StensethIndiaOnyama Limba NEW
Kadeem O BologniaJapanOnyama Limba RENEWAL
Antonio A CaudyCanadaAmy Elsner NEW
Nicolas G SlusarskiSpainOnyama Limba NEGOTIATION
Nicolas O OldroydAustraliaBernardo Dominic PROPOSAL
Leja Q SergiSpainAnna Fali NEW
Murillo B WaycottBrazilAmy Elsner NEGOTIATION
David F GauchoUnited KingdomAnna Fali RENEWAL
Claire X AlbaresUnited KingdomAnna Fali RENEWAL
Greenwood N DilliardUnited KingdomXuxue Feng NEGOTIATION
Smith V ChuiAustraliaOnyama Limba QUALIFIED
Juan V RulapaughArgentinaStephen Shaw RENEWAL
Izzy K FollerAustraliaOnyama Limba RENEWAL
Munro S SaylorsRussiaElwin Sharvill UNQUALIFIED
Leja D GillianUnited KingdomAmy Elsner NEW
Jones P BologniaGermanyStephen Shaw PROPOSAL
Chavez E BriddickFranceElwin Sharvill UNQUALIFIED
Darci F ChuiGermanyAmy Elsner RENEWAL
Greenwood F MacleadRussiaBernardo Dominic UNQUALIFIED
Murillo I StensethSpainAsiya Javayant QUALIFIED
Rodrigues D DoeRussiaAsiya Javayant UNQUALIFIED
Maria D KuskoUnited KingdomIoni Bowcher RENEWAL
James N RoysterIndiaAnna Fali RENEWAL
Jeanfrancois X FlosiGermanyBernardo Dominic PROPOSAL
Nicolas Q CaudyCanadaIvan Magalhaes RENEWAL
Darci F IturbideUnited KingdomElwin Sharvill QUALIFIED
Costa F ShinkoSpainIvan Magalhaes PROPOSAL
Kadeem Y ButtFranceOnyama Limba RENEWAL
Jones C RutaGermanyXuxue Feng NEW
Cody M SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha U PoquetteGermanyStephen Shaw NEW
Sinclair C GillianCanadaAmy Elsner UNQUALIFIED
Jefferson K PaprockiJapanAmy Elsner PROPOSAL
Johnson Q CampainJapanIoni Bowcher QUALIFIED
Ashley V PaprockiGermanyXuxue Feng NEW
Izzy J VocelkaCanadaAmy Elsner NEW
James P MaletIndiaElwin Sharvill RENEWAL
Jones R MaletJapanIvan Magalhaes RENEWAL
Wickens Q CaudySpainBernardo Dominic UNQUALIFIED
Aika E CaldareraSpainIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas W VocelkaArgentina2024-04-23Feiner Bros UNQUALIFIED3Stephen Shaw
1001Greenwood D NickaSpain2024-04-13Printing Dimensions QUALIFIED34Asiya Javayant
1002Ashley U RoysterRussia2024-04-24Rousseaux, Michael Esq NEW67Xuxue Feng
1003Francesco Y FollerAustralia2024-04-08King, Christopher A Esq QUALIFIED44Asiya Javayant
1004Mayumi Y AlbaresFrance2024-04-12Commercial Press PROPOSAL68Ioni Bowcher
1005Claire T KuskoIndia2024-04-20Chapman, Ross E Esq QUALIFIED4Xuxue Feng
1006Clifford P PoquetteUnited Kingdom2024-04-19Feltz Printing Service NEGOTIATION69Ioni Bowcher
1007Octavia R NickaIndia2024-04-04King, Christopher A Esq NEGOTIATION41Elwin Sharvill
1008David D GillianSpain2024-04-25Benton, John B Jr RENEWAL25Onyama Limba
1009Costa E WaycottUnited Kingdom2024-04-20King, Christopher A Esq NEW21Asiya Javayant
1010Isabel Z PoquetteItaly2024-04-08Commercial Press NEW86Onyama Limba
1011Ivar U RoysterIndia2024-04-28King, Christopher A Esq QUALIFIED78Amy Elsner
1012Jennifer W CampainFrance2024-04-10Dorl, James J Esq QUALIFIED67Ivan Magalhaes
1013Stacey O DarakjyGermany2024-04-19Chapman, Ross E Esq NEW53Ivan Magalhaes
1014Juan D GauchoArgentina2024-04-08Rangoni Of Florence NEGOTIATION1Amy Elsner
1015Morrow M SlusarskiArgentina2024-04-06Chemel, James L Cpa NEGOTIATION10Stephen Shaw
1016Misaki N CampainUnited Kingdom2024-04-05Buckley Miller Wright UNQUALIFIED33Onyama Limba
1017Maisha F RimRussia2024-04-01Benton, John B Jr QUALIFIED44Ioni Bowcher
1018Francesco P MarrierFrance2024-04-23Buckley Miller Wright QUALIFIED36Amy Elsner
1019Mujtaba T VenereItaly2024-04-23Feltz Printing Service NEGOTIATION18Ivan Magalhaes
1020Leja T CampainFrance2024-04-29King, Christopher A Esq RENEWAL78Ioni Bowcher
1021Kadeem I KuskoIndia2024-04-17Commercial Press QUALIFIED18Asiya Javayant
1022Costa X InouyeSpain2024-04-04Commercial Press RENEWAL17Bernardo Dominic
1023Darci E PerinRussia2024-04-09Truhlar And Truhlar Attys NEGOTIATION36Anna Fali
1024Misaki Z RoysterAustralia2024-04-19Rangoni Of Florence PROPOSAL52Ioni Bowcher
1025Silvio P OldroydCanada2024-04-22Rangoni Of Florence PROPOSAL43Ioni Bowcher
1026Julie C FlosiArgentina2024-04-30Printing Dimensions QUALIFIED7Stephen Shaw
1027Aruna H GarufiRussia2024-04-07Rousseaux, Michael Esq UNQUALIFIED39Amy Elsner
1028Jones X ChuiIndia2024-04-29Commercial Press UNQUALIFIED4Elwin Sharvill
1029Wickens K OstroskyGermany2024-04-30Rousseaux, Michael Esq QUALIFIED77Ioni Bowcher
1030Leon M MorascaUnited Kingdom2024-04-07Chanay, Jeffrey A Esq RENEWAL83Ioni Bowcher
1031Maisha K MarrierAustralia2024-04-02Chemel, James L Cpa NEGOTIATION17Asiya Javayant
1032Stacey X WhobreyFrance2024-04-13Buckley Miller Wright RENEWAL68Amy Elsner
1033Deepesh M BowleyGermany2024-04-24Rousseaux, Michael Esq RENEWAL2Xuxue Feng
1034Wickens A WhobreyIndia2024-04-22Benton, John B Jr UNQUALIFIED3Ioni Bowcher
1035Antonio P PerinIndia2024-04-22Truhlar And Truhlar Attys UNQUALIFIED64Bernardo Dominic
1036Alejandro O ChuiCanada2024-04-22Rousseaux, Michael Esq NEW63Anna Fali
1037Smith Z GlickGermany2024-04-09Chemel, James L Cpa PROPOSAL83Xuxue Feng
1038Wickens W CaldareraBrazil2024-04-23Benton, John B Jr RENEWAL74Onyama Limba
1039Kadeem X ChuiBrazil2024-04-04Chanay, Jeffrey A Esq QUALIFIED81Anna Fali
1040Jeanfrancois S PerinItaly2024-04-01Dorl, James J Esq QUALIFIED97Onyama Limba
1041Ricardo C KuskoItaly2024-04-14Chemel, James L Cpa PROPOSAL60Stephen Shaw
1042Tony T TollnerBrazil2024-04-15Feltz Printing Service RENEWAL18Asiya Javayant
1043Murillo T FollerSpain2024-04-17Feltz Printing Service NEW41Bernardo Dominic
1044Leja I MarrierSpain2024-04-03Rangoni Of Florence NEGOTIATION88Bernardo Dominic
1045Izzy M FollerIndia2024-04-27Chapman, Ross E Esq NEGOTIATION64Ivan Magalhaes
1046Munro Z DoeRussia2024-04-22Chapman, Ross E Esq PROPOSAL75Ioni Bowcher
1047Tony C GarufiIndia2024-04-09King, Christopher A Esq UNQUALIFIED69Xuxue Feng
1048Salvatore M CampainFrance2024-04-02Commercial Press RENEWAL30Ivan Magalhaes
1049Jones T MarrierFrance2024-04-03Chapman, Ross E Esq NEGOTIATION36Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues X SlusarskiJapanIoni Bowcher RENEWAL
Mayumi P GarufiAustraliaAnna Fali UNQUALIFIED
Octavia J KolmetzCanadaXuxue Feng RENEWAL
Greenwood X FerenczItalyXuxue Feng UNQUALIFIED
Izzy U CaudyGermanyXuxue Feng PROPOSAL
Octavia K MorascaIndiaAnna Fali NEGOTIATION
Salvatore H FlosiAustraliaAnna Fali RENEWAL
Maria X WhobreyCanadaBernardo Dominic RENEWAL
Costa Q PaprockiGermanyIoni Bowcher NEGOTIATION
Deepesh T MacleadItalyBernardo Dominic RENEWAL
Claire B PoquetteCanadaXuxue Feng QUALIFIED
David N NickaSpainIoni Bowcher UNQUALIFIED
Jefferson O CaudyCanadaBernardo Dominic NEGOTIATION
Misaki A MarrierItalyAnna Fali UNQUALIFIED
Claire G RoysterAustraliaAmy Elsner NEGOTIATION
Ivar M MacleadFranceAsiya Javayant PROPOSAL
Maisha W KolmetzJapanOnyama Limba NEGOTIATION
Alejandro H StockhamItalyAmy Elsner UNQUALIFIED
Ashley S GauchoRussiaElwin Sharvill UNQUALIFIED
Smith I MacleadArgentinaBernardo Dominic RENEWAL
Wickens D InouyeCanadaXuxue Feng UNQUALIFIED
Jefferson O ChuiSpainAsiya Javayant NEGOTIATION
Silvio E MaletBrazilXuxue Feng NEW
Julie Y DarakjyArgentinaElwin Sharvill QUALIFIED
Mayumi P InouyeIndiaXuxue Feng RENEWAL
Izzy W BologniaIndiaAnna Fali PROPOSAL
Costa I SaylorsUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois F IturbideIndiaIoni Bowcher NEGOTIATION
Ashley P PaprockiAustraliaBernardo Dominic RENEWAL
Jones B SaylorsAustraliaAnna Fali QUALIFIED
Jennifer E ButtBrazilStephen Shaw UNQUALIFIED
Stacey R GlickFranceStephen Shaw RENEWAL
Leon V FigeroaCanadaBernardo Dominic QUALIFIED
Smith T MaletUnited KingdomAnna Fali RENEWAL
Arvin V OstroskyAustraliaBernardo Dominic QUALIFIED
Smith P RulapaughAustraliaAmy Elsner RENEWAL
Aika V FerenczJapanBernardo Dominic NEW
Mujtaba B TollnerCanadaOnyama Limba NEW
Stacey P WhobreySpainIoni Bowcher UNQUALIFIED
Nicolas L MaletFranceOnyama Limba RENEWAL
Rodrigues L KolmetzItalyIvan Magalhaes UNQUALIFIED
Izzy Y StockhamBrazilElwin Sharvill NEGOTIATION
Munro U PaprockiSpainXuxue Feng PROPOSAL
Maisha N SchemmerAustraliaIoni Bowcher NEGOTIATION
Claire F PoquetteJapanStephen Shaw RENEWAL
Murillo I DilliardUnited KingdomAmy Elsner UNQUALIFIED
Alejandro R FigeroaSpainIoni Bowcher QUALIFIED
Kadeem G VenereItalyAmy Elsner UNQUALIFIED
Octavia D VenereJapanElwin Sharvill PROPOSAL
Maisha L DarakjyRussiaAnna Fali UNQUALIFIED
Frozen Columns
Name
Maria V Wieser
Francesco I Darakjy
Munro T Ruta
Johnson I Iturbide
David G Foller
Octavia K Whobrey
Jefferson E Inouye
Salvatore U Darakjy
Nicolas G Gaucho
Maisha C Sergi
Isabel M Vocelka
Stacey G Venere
Alejandro J Bolognia
Francesco A Perin
Munro U Stenseth
Izzy J Stockham
Juan V Kolmetz
Misaki X Wieser
Aika D Slusarski
Clifford V Albares
Julie E Malet
Kaitlin F Foller
Jeanfrancois J Caudy
Emily T Schemmer
Emily L Campain
Alejandro X Foller
Jones W Nestle
Emily E Saylors
Greenwood C Iturbide
Adams U Rim
Kadeem H Gaucho
Smith T Whobrey
Maria B Butt
Ivar B Bowley
Sinclair A Bowley
Maisha R Albares
Darci R Campain
Clifford U Nestle
Jefferson G Nestle
Maisha P Vocelka
Mujtaba S Gaucho
Leja N Albares
Misaki J Shinko
Maisha E Darakjy
Leja Z Malet
Mujtaba F Waycott
Jeanfrancois R Rim
Morrow L Wieser
Julie C Shinko
Maria W Doe
IdCountryDate
1000Canada2024-04-28
1001Argentina2024-04-04
1002Italy2024-04-19
1003Australia2024-04-05
1004France2024-04-17
1005Russia2024-04-16
1006Russia2024-04-14
1007Germany2024-04-25
1008Japan2024-04-28
1009Italy2024-04-12
1010Argentina2024-04-24
1011Brazil2024-04-13
1012United Kingdom2024-04-08
1013Russia2024-04-19
1014Russia2024-04-17
1015Italy2024-04-18
1016Germany2024-04-16
1017Germany2024-04-20
1018India2024-04-06
1019Japan2024-04-05
1020Australia2024-04-29
1021Brazil2024-04-12
1022Australia2024-04-24
1023Germany2024-04-08
1024Canada2024-04-03
1025Spain2024-04-23
1026India2024-04-05
1027France2024-04-15
1028Japan2024-04-06
1029Canada2024-04-02
1030United Kingdom2024-04-06
1031Argentina2024-04-15
1032United Kingdom2024-04-15
1033Germany2024-04-03
1034India2024-04-29
1035Germany2024-04-19
1036United Kingdom2024-04-28
1037Argentina2024-04-23
1038Argentina2024-04-28
1039Brazil2024-04-20
1040Japan2024-04-22
1041France2024-04-24
1042Australia2024-04-10
1043Canada2024-04-23
1044Japan2024-04-09
1045Argentina2024-04-11
1046United Kingdom2024-04-05
1047Argentina2024-04-14
1048India2024-04-21
1049France2024-04-11

On-Demand Data

NameIdCountryDate
Ivar U Bowley1000Italy2024-04-07
Kaitlin J Iturbide1001Italy2024-04-18
Maisha O Rulapaugh1002Germany2024-04-12
Murillo R Whobrey1003France2024-04-26
Julie X Figeroa1004Brazil2024-04-04
David W Gillian1005Australia2024-04-04
Maisha L Chui1006Argentina2024-04-25
Jeanfrancois H Darakjy1007Italy2024-04-27
Jefferson R Maclead1008Brazil2024-04-19
Maisha Y Schemmer1009Australia2024-04-25
Mujtaba N Ferencz1010India2024-04-29
Aruna X Malet1011India2024-04-13
Ashley J Caldarera1012Brazil2024-04-22
James P Malet1013Argentina2024-04-01
Jennifer U Figeroa1014Italy2024-04-11
Ivar D Figeroa1015Argentina2024-04-24
Leon L Nicka1016India2024-04-22
Kaitlin P Figeroa1017United Kingdom2024-04-09
Aruna Q Maclead1018Japan2024-04-28
Sinclair K Bolognia1019Argentina2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon L SergiBrazilAmy Elsner QUALIFIED
Deepesh M NestleIndiaAmy Elsner NEW
Clifford I ShinkoBrazilOnyama Limba QUALIFIED
Morrow O RulapaughBrazilXuxue Feng NEGOTIATION
Mayumi F ButtItalyStephen Shaw UNQUALIFIED
Maria T StockhamBrazilBernardo Dominic QUALIFIED
Emily T GlickArgentinaElwin Sharvill NEGOTIATION
Johnson I BowleyItalyStephen Shaw UNQUALIFIED
Isabel J AlbaresCanadaElwin Sharvill NEW
Deepesh Q InouyeArgentinaBernardo Dominic UNQUALIFIED
Cody B WhobreyGermanyStephen Shaw PROPOSAL
Faith V PoquetteUnited KingdomStephen Shaw UNQUALIFIED
Misaki G PoquetteJapanAsiya Javayant QUALIFIED
Alejandro L PerinJapanElwin Sharvill PROPOSAL
Arvin G SergiBrazilOnyama Limba PROPOSAL
Smith O MorascaFranceOnyama Limba NEW
Izzy U VocelkaAustraliaIoni Bowcher NEW
Claire Y DarakjyBrazilBernardo Dominic NEW
Faith E CaldareraFranceAsiya Javayant UNQUALIFIED
Maisha R DoeUnited KingdomIvan Magalhaes RENEWAL
Stacey U IturbideFranceStephen Shaw NEW
Mayumi V KuskoCanadaIoni Bowcher UNQUALIFIED
Rodrigues T StockhamJapanElwin Sharvill NEGOTIATION
Wickens E SchemmerBrazilStephen Shaw UNQUALIFIED
Faith O CaudyIndiaAnna Fali UNQUALIFIED
Arvin X ButtGermanyStephen Shaw NEW
Jeanfrancois J VenereCanadaAmy Elsner NEGOTIATION
Leon H GauchoItalyAnna Fali PROPOSAL
Faith T BriddickBrazilAsiya Javayant PROPOSAL
Sinclair V BowleyFranceIoni Bowcher NEGOTIATION
Wickens P AmigonFranceStephen Shaw RENEWAL
Nicolas C OstroskyFranceIoni Bowcher PROPOSAL
Greenwood Q PaprockiItalyXuxue Feng PROPOSAL
Johnson J RoysterCanadaIoni Bowcher PROPOSAL
Cody U CaldareraGermanyBernardo Dominic NEGOTIATION
Silvio Y SaylorsIndiaIoni Bowcher QUALIFIED
Maria G PerinBrazilIvan Magalhaes RENEWAL
Cody W KuskoJapanIoni Bowcher UNQUALIFIED
Francesco Y MaletGermanyBernardo Dominic NEW
Stacey R PaprockiItalyElwin Sharvill 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>