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
Tony L MarrierIndiaOnyama Limba NEW
Salvatore S PerinIndiaIvan Magalhaes PROPOSAL
Darci Z TollnerUnited KingdomBernardo Dominic NEW
Sinclair Z MaletAustraliaAsiya Javayant NEW
Jefferson B RimIndiaStephen Shaw PROPOSAL
Leon S BriddickItalyElwin Sharvill RENEWAL
Mujtaba C GlickItalyAmy Elsner RENEWAL
Aika B GlickItalyAmy Elsner QUALIFIED
Munro W SaylorsArgentinaStephen Shaw PROPOSAL
Kaitlin B FerenczCanadaOnyama Limba RENEWAL
Chavez J VenereUnited KingdomElwin Sharvill UNQUALIFIED
Aditya S MaletCanadaXuxue Feng NEW
Aditya I AlbaresFranceIvan Magalhaes UNQUALIFIED
Leja R StockhamFranceIoni Bowcher PROPOSAL
Aika F FigeroaCanadaOnyama Limba RENEWAL
Jefferson F NickaFranceXuxue Feng NEW
Greenwood M SchemmerBrazilIvan Magalhaes QUALIFIED
Jennifer O MaletSpainIvan Magalhaes UNQUALIFIED
Arvin W DilliardSpainAmy Elsner RENEWAL
Juan G WaycottArgentinaIoni Bowcher NEGOTIATION
Nicolas P RulapaughCanadaBernardo Dominic UNQUALIFIED
Ricardo M WieserIndiaElwin Sharvill NEW
Emily X MaletIndiaOnyama Limba UNQUALIFIED
Emily O SchemmerBrazilBernardo Dominic NEW
Ivar N ShinkoUnited KingdomAnna Fali PROPOSAL
Chavez L KolmetzAustraliaIvan Magalhaes NEGOTIATION
Wickens L GarufiRussiaIoni Bowcher QUALIFIED
Francesco I FerenczSpainAsiya Javayant RENEWAL
Izzy R MarrierCanadaOnyama Limba RENEWAL
Misaki O DoeItalyAsiya Javayant NEW
Clifford O WieserJapanXuxue Feng QUALIFIED
Aditya C StensethBrazilBernardo Dominic PROPOSAL
Jeanfrancois H WaycottGermanyIoni Bowcher NEW
Aika Q TollnerAustraliaBernardo Dominic PROPOSAL
Johnson F BowleyUnited KingdomAnna Fali RENEWAL
Leon F GlickUnited KingdomStephen Shaw RENEWAL
Cody V NickaSpainAnna Fali RENEWAL
Cody U SlusarskiFranceAmy Elsner NEW
Alejandro S GauchoGermanyElwin Sharvill PROPOSAL
Tony Q CaldareraCanadaStephen Shaw PROPOSAL
Faith X SchemmerItalyElwin Sharvill QUALIFIED
Kaitlin R GillianFranceAmy Elsner PROPOSAL
Antonio K PaprockiSpainElwin Sharvill RENEWAL
Octavia O MacleadItalyIoni Bowcher UNQUALIFIED
Jeanfrancois F CaudyArgentinaBernardo Dominic NEW
Misaki Y StockhamGermanyAmy Elsner NEW
Jennifer M PerinAustraliaIvan Magalhaes RENEWAL
Izzy N ButtAustraliaIoni Bowcher PROPOSAL
Francesco T OldroydJapanBernardo Dominic NEGOTIATION
Izzy P InouyeItalyStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika Q RimBrazilAnna Fali PROPOSAL
Arvin M FerenczFranceBernardo Dominic NEW
Juan Z ShinkoGermanyElwin Sharvill RENEWAL
Claire M RimUnited KingdomXuxue Feng RENEWAL
Morrow M SergiRussiaAmy Elsner NEW
Jennifer J RimUnited KingdomElwin Sharvill NEW
Kadeem W WhobreyFranceOnyama Limba RENEWAL
Wickens H CampainSpainXuxue Feng QUALIFIED
Ivar A OstroskyIndiaOnyama Limba UNQUALIFIED
Ricardo J PerinJapanIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James R NickaAustralia2024-05-02King, Christopher A Esq PROPOSAL95Stephen Shaw
1001Arvin S SlusarskiSpain2024-05-06Commercial Press QUALIFIED8Anna Fali
1002Jefferson T DarakjyAustralia2024-05-03Printing Dimensions PROPOSAL17Asiya Javayant
1003Claire V StensethRussia2024-05-14Commercial Press UNQUALIFIED29Bernardo Dominic
1004Morrow F MorascaAustralia2024-05-02Dorl, James J Esq PROPOSAL48Ivan Magalhaes
1005Clifford F DoeSpain2024-05-20Benton, John B Jr QUALIFIED92Anna Fali
1006Isabel Y GillianBrazil2024-04-30Rousseaux, Michael Esq PROPOSAL89Amy Elsner
1007Maisha S WhobreyItaly2024-05-09Benton, John B Jr QUALIFIED26Xuxue Feng
1008Misaki B FerenczIndia2024-05-02Chemel, James L Cpa UNQUALIFIED15Xuxue Feng
1009Leon Y BowleyUnited Kingdom2024-05-16Chemel, James L Cpa PROPOSAL30Xuxue Feng
1010Arvin P TollnerJapan2024-04-25Dorl, James J Esq RENEWAL7Bernardo Dominic
1011Leon G MorascaArgentina2024-04-30Truhlar And Truhlar Attys UNQUALIFIED14Onyama Limba
1012Antonio N MarrierGermany2024-04-25Truhlar And Truhlar Attys NEGOTIATION3Bernardo Dominic
1013Mayumi F NestleSpain2024-05-19Benton, John B Jr QUALIFIED41Ioni Bowcher
1014Tony D OstroskyFrance2024-05-01Rousseaux, Michael Esq PROPOSAL89Bernardo Dominic
1015Ricardo P BriddickSpain2024-04-24Printing Dimensions NEGOTIATION16Onyama Limba
1016Maria I TollnerCanada2024-05-18Chapman, Ross E Esq NEGOTIATION71Xuxue Feng
1017Jeanfrancois M KolmetzBrazil2024-04-30Morlong Associates NEGOTIATION96Asiya Javayant
1018Antonio B TollnerAustralia2024-04-29Chanay, Jeffrey A Esq UNQUALIFIED62Onyama Limba
1019Octavia W GlickJapan2024-05-05Buckley Miller Wright PROPOSAL95Elwin Sharvill
1020Smith R NestleFrance2024-04-21Chapman, Ross E Esq PROPOSAL45Anna Fali
1021Mayumi J GillianAustralia2024-05-20Buckley Miller Wright QUALIFIED20Asiya Javayant
1022Kaitlin L KolmetzItaly2024-05-05Chanay, Jeffrey A Esq NEGOTIATION34Xuxue Feng
1023Tony Q DoeArgentina2024-04-27Feltz Printing Service NEGOTIATION4Elwin Sharvill
1024Tony B WaycottCanada2024-05-18Morlong Associates PROPOSAL23Ivan Magalhaes
1025Mayumi X RoysterArgentina2024-05-14Morlong Associates PROPOSAL3Ivan Magalhaes
1026Kadeem C MarrierJapan2024-05-09Truhlar And Truhlar Attys NEW70Ivan Magalhaes
1027Nicolas C GillianSpain2024-05-08Truhlar And Truhlar Attys NEGOTIATION91Onyama Limba
1028Clifford Q FlosiItaly2024-05-08Printing Dimensions UNQUALIFIED13Xuxue Feng
1029Munro H GillianRussia2024-04-27Chanay, Jeffrey A Esq NEW95Asiya Javayant
1030Alejandro F ShinkoSpain2024-05-17King, Christopher A Esq PROPOSAL47Asiya Javayant
1031Mujtaba C GauchoRussia2024-05-09Dorl, James J Esq NEW32Elwin Sharvill
1032Munro L WhobreyItaly2024-05-12King, Christopher A Esq NEGOTIATION45Anna Fali
1033Aditya R CaudyUnited Kingdom2024-04-28Rousseaux, Michael Esq NEGOTIATION72Bernardo Dominic
1034Silvio P PaprockiCanada2024-05-15Chanay, Jeffrey A Esq QUALIFIED24Asiya Javayant
1035Leon F MarrierItaly2024-04-21Chemel, James L Cpa PROPOSAL70Asiya Javayant
1036Leon V WhobreyFrance2024-05-02Benton, John B Jr RENEWAL23Onyama Limba
1037Clifford T MaletUnited Kingdom2024-04-30Commercial Press NEGOTIATION35Ioni Bowcher
1038Smith E CampainFrance2024-05-17Feltz Printing Service QUALIFIED86Ivan Magalhaes
1039Rodrigues J FigeroaUnited Kingdom2024-05-09King, Christopher A Esq PROPOSAL32Bernardo Dominic
1040Ashley L PerinJapan2024-05-03Rangoni Of Florence NEW93Onyama Limba
1041Antonio F SergiBrazil2024-05-19Rangoni Of Florence UNQUALIFIED19Xuxue Feng
1042Faith K ButtFrance2024-04-26Printing Dimensions NEGOTIATION32Onyama Limba
1043Morrow H ChuiCanada2024-04-29Rangoni Of Florence UNQUALIFIED37Onyama Limba
1044Juan C SaylorsFrance2024-05-06Chapman, Ross E Esq NEW62Amy Elsner
1045Sinclair S SergiSpain2024-05-19Dorl, James J Esq RENEWAL67Elwin Sharvill
1046Leja X MorascaGermany2024-04-28Chapman, Ross E Esq RENEWAL21Anna Fali
1047Sinclair R GillianCanada2024-05-11Chanay, Jeffrey A Esq RENEWAL42Anna Fali
1048Juan G PerinItaly2024-05-15Chapman, Ross E Esq UNQUALIFIED19Ivan Magalhaes
1049Alejandro H GlickAustralia2024-05-04Rangoni Of Florence PROPOSAL60Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
James M RutaFranceElwin Sharvill UNQUALIFIED
Emily A BriddickJapanAnna Fali PROPOSAL
Aditya E StockhamIndiaIvan Magalhaes NEW
Rodrigues X VocelkaGermanyStephen Shaw NEGOTIATION
Maisha D CampainSpainAmy Elsner NEW
Jennifer X GauchoBrazilOnyama Limba PROPOSAL
Misaki Y StensethIndiaIoni Bowcher QUALIFIED
Maria E TollnerUnited KingdomIoni Bowcher RENEWAL
Mayumi L SlusarskiRussiaIvan Magalhaes NEW
Jennifer W NickaArgentinaBernardo Dominic QUALIFIED
Aditya C GauchoFranceXuxue Feng RENEWAL
Maria I WieserFranceXuxue Feng UNQUALIFIED
Stacey Z WaycottRussiaStephen Shaw NEGOTIATION
Octavia M KolmetzBrazilIvan Magalhaes RENEWAL
Francesco J IturbideJapanIoni Bowcher QUALIFIED
Arvin K InouyeUnited KingdomBernardo Dominic NEGOTIATION
Smith M ButtArgentinaElwin Sharvill QUALIFIED
Ivar O KolmetzUnited KingdomAmy Elsner RENEWAL
Nicolas T CampainUnited KingdomElwin Sharvill RENEWAL
Adams X ButtItalyXuxue Feng NEW
Munro N FollerBrazilStephen Shaw QUALIFIED
Wickens X CaudyJapanStephen Shaw UNQUALIFIED
Stacey N GillianAustraliaAsiya Javayant QUALIFIED
Kadeem O RimSpainAsiya Javayant PROPOSAL
Aditya K DoeGermanyXuxue Feng PROPOSAL
Chavez A IturbideItalyXuxue Feng NEW
Tony Y IturbideItalyAmy Elsner NEGOTIATION
Misaki Q PoquetteUnited KingdomElwin Sharvill QUALIFIED
Izzy K WaycottUnited KingdomOnyama Limba NEW
Juan N TollnerItalyAnna Fali NEW
Maria H WaycottUnited KingdomStephen Shaw PROPOSAL
Johnson P ShinkoRussiaXuxue Feng RENEWAL
Cody X PoquetteFranceAmy Elsner PROPOSAL
Juan A IturbideJapanAnna Fali PROPOSAL
Ashley I PoquetteRussiaAnna Fali UNQUALIFIED
Silvio T GillianSpainAnna Fali QUALIFIED
Ivar V FollerSpainAnna Fali NEGOTIATION
Kaitlin K ChuiJapanOnyama Limba NEW
Jennifer U PoquetteBrazilStephen Shaw NEGOTIATION
Kadeem B PaprockiGermanyElwin Sharvill NEW
Aruna T AlbaresGermanyAmy Elsner QUALIFIED
Silvio H KolmetzArgentinaBernardo Dominic UNQUALIFIED
Leon T BowleyCanadaIvan Magalhaes RENEWAL
Johnson B GauchoUnited KingdomElwin Sharvill PROPOSAL
Leja Q IturbideAustraliaXuxue Feng QUALIFIED
Clifford K ChuiRussiaIvan Magalhaes NEGOTIATION
Jennifer Y CampainCanadaIoni Bowcher QUALIFIED
Claire C SchemmerUnited KingdomStephen Shaw QUALIFIED
Rodrigues Y CampainSpainElwin Sharvill NEGOTIATION
Morrow P SergiArgentinaOnyama Limba RENEWAL
Frozen Columns
Name
Francesco V Nestle
Aruna E Nicka
Izzy S Briddick
Izzy X Caudy
Francesco B Saylors
Misaki X Paprocki
James E Flosi
Jones O Ostrosky
Stacey C Stockham
Cody E Paprocki
Sinclair I Sergi
Isabel N Oldroyd
Silvio J Butt
Jefferson N Royster
Tony U Rim
Faith A Kusko
Aika L Ferencz
Ricardo D Figeroa
Juan J Waycott
Adams K Rulapaugh
Cody C Nestle
Jones M Maclead
Nicolas B Malet
Greenwood Q Campain
Stacey Z Darakjy
Darci R Poquette
Wickens M Sergi
Misaki M Nicka
Ashley P Poquette
Morrow G Amigon
Clifford T Kusko
Antonio B Inouye
Isabel D Slusarski
Cody F Albares
Nicolas Y Kolmetz
Jeanfrancois C Campain
Nicolas W Iturbide
Misaki I Perin
Julie H Slusarski
Alejandro Q Butt
James N Rulapaugh
Chavez T Caudy
Juan D Saylors
Aditya I Slusarski
Rodrigues G Sergi
Jones R Venere
Izzy H Caudy
Deepesh M Bolognia
Munro Y Inouye
David I Chui
IdCountryDate
1000Australia2024-04-26
1001Canada2024-04-29
1002France2024-04-21
1003Germany2024-04-27
1004Germany2024-04-21
1005Spain2024-05-15
1006Brazil2024-04-22
1007France2024-04-23
1008Japan2024-05-20
1009Brazil2024-05-19
1010Canada2024-05-14
1011Russia2024-04-26
1012Canada2024-05-07
1013Spain2024-05-12
1014Brazil2024-04-30
1015Italy2024-05-06
1016France2024-05-18
1017Italy2024-04-27
1018Spain2024-04-22
1019Germany2024-05-06
1020Canada2024-05-15
1021Canada2024-05-10
1022Russia2024-04-25
1023Australia2024-05-20
1024Argentina2024-04-22
1025Argentina2024-04-23
1026Spain2024-04-24
1027Russia2024-04-24
1028Japan2024-05-01
1029Canada2024-04-23
1030Spain2024-04-21
1031India2024-05-09
1032Germany2024-04-22
1033Germany2024-04-23
1034Argentina2024-04-25
1035Spain2024-05-09
1036United Kingdom2024-05-17
1037Canada2024-05-18
1038Germany2024-05-09
1039Canada2024-05-16
1040Brazil2024-05-07
1041Germany2024-04-22
1042Spain2024-05-05
1043Germany2024-04-22
1044Spain2024-05-19
1045United Kingdom2024-04-27
1046United Kingdom2024-05-09
1047Spain2024-05-12
1048Italy2024-05-08
1049Russia2024-04-26

On-Demand Data

NameIdCountryDate
Darci Y Iturbide1000Argentina2024-05-19
Leon G Flosi1001Italy2024-04-30
Arvin B Chui1002United Kingdom2024-05-01
Rodrigues B Vocelka1003Argentina2024-05-15
Isabel A Bolognia1004France2024-05-13
Julie B Stockham1005Argentina2024-05-16
Alejandro I Dilliard1006Brazil2024-05-07
Greenwood R Wieser1007Brazil2024-04-28
Leon H Schemmer1008Germany2024-05-11
Isabel L Rim1009France2024-05-04
Alejandro J Nestle1010Italy2024-05-11
Octavia B Kolmetz1011India2024-04-28
Silvio Y Figeroa1012Australia2024-04-26
Maria J Bowley1013Canada2024-05-09
Smith T Slusarski1014Russia2024-04-30
Morrow M Ostrosky1015Brazil2024-05-07
Adams D Sergi1016Australia2024-04-25
Jefferson T Shinko1017Australia2024-05-08
Aditya B Kusko1018Germany2024-04-25
Rodrigues S Wieser1019Brazil2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues O GlickAustraliaIoni Bowcher NEGOTIATION
Kadeem Y DilliardFranceIoni Bowcher RENEWAL
Aditya S AlbaresRussiaAnna Fali QUALIFIED
Silvio O RimJapanAsiya Javayant PROPOSAL
Misaki I FollerUnited KingdomAmy Elsner QUALIFIED
Jones C StensethUnited KingdomBernardo Dominic RENEWAL
Octavia V MarrierFranceBernardo Dominic QUALIFIED
Kadeem I BowleySpainBernardo Dominic NEGOTIATION
Cody A RutaJapanAmy Elsner PROPOSAL
Smith V PerinBrazilStephen Shaw NEGOTIATION
Mayumi Z NestleIndiaStephen Shaw NEGOTIATION
Juan U SlusarskiGermanyIvan Magalhaes NEGOTIATION
Chavez I StensethSpainOnyama Limba QUALIFIED
Kaitlin B RimItalyAmy Elsner UNQUALIFIED
Jones U StensethUnited KingdomXuxue Feng NEGOTIATION
Aika Y CaudyItalyAsiya Javayant QUALIFIED
Maria K OstroskyRussiaXuxue Feng NEGOTIATION
Julie F GauchoRussiaAmy Elsner PROPOSAL
Ivar F MorascaJapanAsiya Javayant QUALIFIED
Francesco F CampainUnited KingdomBernardo Dominic PROPOSAL
Juan O KuskoRussiaIvan Magalhaes PROPOSAL
Faith A CaldareraFranceElwin Sharvill UNQUALIFIED
Rodrigues F SlusarskiAustraliaElwin Sharvill QUALIFIED
Jefferson J RulapaughCanadaIoni Bowcher PROPOSAL
Maisha L MorascaCanadaBernardo Dominic QUALIFIED
Isabel M PaprockiFranceIoni Bowcher NEW
Darci L FigeroaJapanAmy Elsner UNQUALIFIED
Maisha V RimUnited KingdomXuxue Feng PROPOSAL
Munro G MacleadSpainAsiya Javayant RENEWAL
Aika D AlbaresFranceElwin Sharvill PROPOSAL
Emily V InouyeCanadaAnna Fali QUALIFIED
Aruna J AmigonItalyBernardo Dominic NEGOTIATION
Murillo G FollerAustraliaIvan Magalhaes RENEWAL
Octavia T DarakjyCanadaStephen Shaw UNQUALIFIED
Ashley P BowleyFranceIvan Magalhaes QUALIFIED
Alejandro W AlbaresIndiaAsiya Javayant NEGOTIATION
Mayumi Y KuskoCanadaIoni Bowcher NEGOTIATION
Faith D StensethJapanAmy Elsner QUALIFIED
Arvin J PoquetteSpainOnyama Limba QUALIFIED
Munro V WhobreyArgentinaBernardo Dominic 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>