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
Clifford M IturbideBrazilAsiya Javayant RENEWAL
Faith P GillianSpainOnyama Limba QUALIFIED
Leja D SergiGermanyElwin Sharvill UNQUALIFIED
Smith M OstroskyItalyOnyama Limba UNQUALIFIED
Ricardo Q WieserArgentinaBernardo Dominic RENEWAL
Misaki G NestleRussiaIvan Magalhaes PROPOSAL
Arvin F AlbaresGermanyOnyama Limba QUALIFIED
Morrow X RoysterAustraliaXuxue Feng NEGOTIATION
Isabel R KuskoBrazilXuxue Feng QUALIFIED
Francesco L ShinkoSpainXuxue Feng QUALIFIED
Munro H MaletGermanyAmy Elsner UNQUALIFIED
Octavia N AlbaresSpainBernardo Dominic QUALIFIED
Aditya Y NestleGermanyXuxue Feng UNQUALIFIED
Wickens R MarrierItalyIoni Bowcher PROPOSAL
Salvatore X FerenczSpainOnyama Limba PROPOSAL
Nicolas E FigeroaJapanAmy Elsner UNQUALIFIED
Tony H SchemmerBrazilAsiya Javayant NEW
Jennifer Z FollerGermanyBernardo Dominic NEGOTIATION
Emily Y CampainUnited KingdomIvan Magalhaes NEW
Aika R MacleadArgentinaOnyama Limba UNQUALIFIED
Antonio A WaycottArgentinaIoni Bowcher QUALIFIED
Faith D GillianAustraliaIoni Bowcher UNQUALIFIED
Jeanfrancois O SergiGermanyStephen Shaw NEGOTIATION
Ivar E BowleyArgentinaXuxue Feng UNQUALIFIED
Salvatore V WhobreyAustraliaBernardo Dominic QUALIFIED
Alejandro G ShinkoGermanyAsiya Javayant RENEWAL
Tony S GillianUnited KingdomIvan Magalhaes NEW
Kaitlin C SaylorsAustraliaAnna Fali NEGOTIATION
Morrow F AmigonUnited KingdomAsiya Javayant PROPOSAL
Mayumi Z RimArgentinaBernardo Dominic RENEWAL
Munro T BologniaSpainElwin Sharvill NEGOTIATION
Emily U AmigonSpainIoni Bowcher RENEWAL
Francesco R ButtSpainBernardo Dominic PROPOSAL
Morrow D RoysterBrazilAmy Elsner PROPOSAL
Francesco I NickaFranceAnna Fali RENEWAL
Jones P RutaArgentinaAsiya Javayant QUALIFIED
Aruna S DoeItalyAmy Elsner RENEWAL
Antonio N GlickBrazilStephen Shaw QUALIFIED
Wickens Q RoysterGermanyIvan Magalhaes NEW
Leja L BologniaFranceBernardo Dominic UNQUALIFIED
Kadeem L SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Tony H MaletArgentinaXuxue Feng NEW
Octavia N SlusarskiAustraliaAnna Fali RENEWAL
Aditya M KolmetzGermanyBernardo Dominic PROPOSAL
Leja L MacleadJapanAsiya Javayant NEW
Juan W GauchoJapanAmy Elsner UNQUALIFIED
Antonio K StensethJapanAmy Elsner NEW
Isabel J StensethUnited KingdomIvan Magalhaes NEW
Ashley G ShinkoBrazilBernardo Dominic NEW
Mujtaba F KuskoCanadaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro T StockhamJapanAnna Fali RENEWAL
Adams R BowleyIndiaStephen Shaw UNQUALIFIED
Wickens Q VenereFranceIoni Bowcher PROPOSAL
Juan C FerenczSpainAnna Fali UNQUALIFIED
Leon G InouyeUnited KingdomOnyama Limba UNQUALIFIED
Juan L VocelkaAustraliaAsiya Javayant PROPOSAL
Mayumi D WhobreyCanadaBernardo Dominic UNQUALIFIED
Alejandro O KolmetzBrazilXuxue Feng UNQUALIFIED
Maisha I TollnerUnited KingdomAmy Elsner NEGOTIATION
Alejandro Q ShinkoSpainAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa V PoquetteArgentina2024-04-18Rousseaux, Michael Esq NEGOTIATION78Anna Fali
1001Cody F ShinkoCanada2024-04-15Rangoni Of Florence RENEWAL99Ioni Bowcher
1002Jennifer G WieserCanada2024-04-24Rousseaux, Michael Esq UNQUALIFIED77Asiya Javayant
1003Ricardo S GauchoArgentina2024-04-09Rousseaux, Michael Esq PROPOSAL64Stephen Shaw
1004Faith K MacleadFrance2024-03-27Chanay, Jeffrey A Esq UNQUALIFIED13Onyama Limba
1005Greenwood J ButtJapan2024-04-25Rangoni Of Florence NEGOTIATION30Xuxue Feng
1006Izzy N IturbideRussia2024-04-15King, Christopher A Esq RENEWAL88Anna Fali
1007Wickens Y GarufiBrazil2024-04-07Chanay, Jeffrey A Esq NEW60Onyama Limba
1008Antonio O FlosiRussia2024-04-07Morlong Associates UNQUALIFIED48Bernardo Dominic
1009Adams R RoysterGermany2024-04-12Feiner Bros QUALIFIED54Anna Fali
1010Emily Z MaletIndia2024-03-30Buckley Miller Wright NEGOTIATION17Ivan Magalhaes
1011Jeanfrancois G OstroskyIndia2024-04-02Printing Dimensions NEGOTIATION85Anna Fali
1012Mujtaba M RutaCanada2024-04-04Feltz Printing Service PROPOSAL59Elwin Sharvill
1013Jones E RutaFrance2024-04-01Buckley Miller Wright NEW63Asiya Javayant
1014Faith T RoysterArgentina2024-04-12Chemel, James L Cpa QUALIFIED56Anna Fali
1015Johnson I FlosiJapan2024-04-12Rangoni Of Florence RENEWAL50Stephen Shaw
1016Cody P SergiBrazil2024-04-15Morlong Associates QUALIFIED10Ivan Magalhaes
1017Stacey P RoysterUnited Kingdom2024-04-08Commercial Press RENEWAL85Ioni Bowcher
1018Greenwood K RutaJapan2024-04-03Commercial Press PROPOSAL12Anna Fali
1019Kadeem F AlbaresJapan2024-04-21Rangoni Of Florence NEGOTIATION86Bernardo Dominic
1020Aruna Z OldroydRussia2024-04-15Rousseaux, Michael Esq NEGOTIATION50Xuxue Feng
1021Faith Q FollerCanada2024-04-23Chapman, Ross E Esq UNQUALIFIED95Ivan Magalhaes
1022Tony Q RutaFrance2024-04-12Commercial Press RENEWAL59Xuxue Feng
1023David D MarrierRussia2024-04-06Rousseaux, Michael Esq PROPOSAL31Elwin Sharvill
1024Costa D OstroskyAustralia2024-04-15Chanay, Jeffrey A Esq RENEWAL93Amy Elsner
1025Octavia M FerenczJapan2024-04-06Morlong Associates NEW8Elwin Sharvill
1026Chavez A FerenczRussia2024-04-22Dorl, James J Esq UNQUALIFIED52Anna Fali
1027Salvatore W GarufiJapan2024-04-08Morlong Associates UNQUALIFIED35Ivan Magalhaes
1028Sinclair G StensethIndia2024-04-02Feltz Printing Service NEW90Onyama Limba
1029Silvio C MaletAustralia2024-04-04Chanay, Jeffrey A Esq NEW98Onyama Limba
1030Leja B RulapaughRussia2024-04-25Morlong Associates QUALIFIED69Ioni Bowcher
1031Smith D DoeCanada2024-04-03Benton, John B Jr RENEWAL81Stephen Shaw
1032Misaki F FlosiJapan2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED6Elwin Sharvill
1033Mujtaba Y SaylorsCanada2024-03-27King, Christopher A Esq QUALIFIED46Onyama Limba
1034Rodrigues F KolmetzIndia2024-04-11Feltz Printing Service PROPOSAL39Onyama Limba
1035Costa J SergiItaly2024-04-21Dorl, James J Esq NEGOTIATION74Ivan Magalhaes
1036Mayumi F StockhamJapan2024-04-11Feiner Bros NEGOTIATION95Elwin Sharvill
1037Jefferson J KolmetzUnited Kingdom2024-03-30Chapman, Ross E Esq NEW77Asiya Javayant
1038Jefferson Z StockhamBrazil2024-04-25Feiner Bros PROPOSAL71Onyama Limba
1039Munro P SaylorsIndia2024-04-25Chapman, Ross E Esq UNQUALIFIED25Ivan Magalhaes
1040Izzy S PoquetteSpain2024-04-14Feltz Printing Service UNQUALIFIED52Bernardo Dominic
1041Nicolas W MaletBrazil2024-04-23Morlong Associates RENEWAL25Amy Elsner
1042Silvio G BriddickArgentina2024-03-30Feltz Printing Service UNQUALIFIED10Anna Fali
1043Maria D RimSpain2024-04-03Chemel, James L Cpa UNQUALIFIED69Anna Fali
1044Maria R KolmetzIndia2024-04-23Commercial Press QUALIFIED55Bernardo Dominic
1045Salvatore P ShinkoBrazil2024-04-03Truhlar And Truhlar Attys PROPOSAL4Anna Fali
1046Munro O WaycottIndia2024-04-11Commercial Press QUALIFIED12Ioni Bowcher
1047Clifford C RimArgentina2024-03-27Chemel, James L Cpa NEGOTIATION28Asiya Javayant
1048Maria K DoeArgentina2024-04-04Printing Dimensions PROPOSAL88Ioni Bowcher
1049Munro N PerinFrance2024-04-04Buckley Miller Wright PROPOSAL45Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio P RimAustraliaAmy Elsner RENEWAL
Greenwood T SchemmerItalyBernardo Dominic NEGOTIATION
Salvatore R CampainItalyOnyama Limba NEW
Wickens G GillianGermanyIoni Bowcher QUALIFIED
Maisha X ShinkoIndiaStephen Shaw NEGOTIATION
Jennifer B RimItalyIoni Bowcher RENEWAL
Julie V NestleCanadaIvan Magalhaes UNQUALIFIED
Nicolas W WieserItalyAsiya Javayant RENEWAL
Nicolas K RutaBrazilElwin Sharvill NEGOTIATION
Silvio R GillianItalyIoni Bowcher UNQUALIFIED
Kadeem Q WaycottSpainAsiya Javayant RENEWAL
Mujtaba J RimBrazilAmy Elsner QUALIFIED
Adams C RimBrazilIoni Bowcher RENEWAL
Mujtaba W InouyeJapanIoni Bowcher NEW
Greenwood T BowleyBrazilOnyama Limba NEGOTIATION
Maria E GlickCanadaAsiya Javayant QUALIFIED
Salvatore F DoeCanadaStephen Shaw NEW
Arvin Y CampainGermanyStephen Shaw NEGOTIATION
Nicolas L ChuiGermanyAnna Fali NEGOTIATION
Arvin O AmigonArgentinaOnyama Limba NEGOTIATION
Costa Q OstroskyUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois L GarufiUnited KingdomIvan Magalhaes PROPOSAL
Silvio Q IturbideUnited KingdomAmy Elsner UNQUALIFIED
Morrow B ChuiGermanyIoni Bowcher NEGOTIATION
Maisha X PerinItalyAmy Elsner UNQUALIFIED
Clifford O StensethItalyIoni Bowcher UNQUALIFIED
Arvin S WieserIndiaAsiya Javayant PROPOSAL
Stacey Y AmigonBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois V RoysterIndiaIvan Magalhaes UNQUALIFIED
Stacey I SergiIndiaOnyama Limba UNQUALIFIED
Salvatore T WaycottCanadaStephen Shaw PROPOSAL
Mayumi X KolmetzFranceAsiya Javayant UNQUALIFIED
Octavia J AmigonItalyIvan Magalhaes NEW
Ashley V StensethIndiaElwin Sharvill PROPOSAL
Claire B SergiBrazilBernardo Dominic RENEWAL
Leon P GlickFranceStephen Shaw QUALIFIED
Johnson K NestleBrazilStephen Shaw UNQUALIFIED
David V OstroskyRussiaAmy Elsner NEGOTIATION
Emily C AlbaresCanadaXuxue Feng PROPOSAL
Aika U RutaSpainAnna Fali RENEWAL
Nicolas U NestleUnited KingdomIvan Magalhaes NEGOTIATION
Murillo C GillianArgentinaXuxue Feng QUALIFIED
Antonio J FerenczUnited KingdomAmy Elsner QUALIFIED
Leja A PerinItalyAmy Elsner RENEWAL
Nicolas E FerenczFranceAnna Fali PROPOSAL
Maisha D GauchoRussiaIoni Bowcher NEGOTIATION
Ricardo O FlosiAustraliaIoni Bowcher NEW
Emily Y DoeIndiaIoni Bowcher PROPOSAL
Greenwood N FollerCanadaIvan Magalhaes NEW
Smith K MarrierIndiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Aruna G Shinko
Rodrigues V Paprocki
Mayumi H Perin
Adams S Caldarera
Izzy C Paprocki
Smith E Gillian
Julie D Rim
Faith A Royster
Maisha P Gillian
Ivar L Figeroa
Faith L Stenseth
Izzy M Malet
Emily Z Garufi
Stacey Y Caudy
Munro F Ferencz
Isabel X Figeroa
Tony G Bowley
Aruna L Rulapaugh
Cody Q Rim
Leja P Kusko
Ricardo P Stockham
Mayumi L Morasca
Isabel S Foller
Costa A Caudy
James P Saylors
Ivar Z Caldarera
Misaki N Chui
Clifford M Slusarski
Murillo O Caldarera
Aruna Y Rim
Darci Z Oldroyd
Arvin N Schemmer
Jones M Ostrosky
Emily J Tollner
Arvin U Figeroa
Julie A Butt
Morrow A Venere
Darci V Nicka
Kaitlin G Caudy
Wickens H Briddick
Johnson T Gaucho
Tony T Oldroyd
Morrow I Nestle
Arvin Y Maclead
Adams K Doe
Jones H Doe
Morrow S Morasca
Jones Y Chui
Silvio O Ostrosky
Morrow A Foller
IdCountryDate
1000Russia2024-04-01
1001Brazil2024-03-28
1002Australia2024-04-02
1003Spain2024-04-19
1004United Kingdom2024-03-31
1005Japan2024-04-15
1006Canada2024-04-01
1007Italy2024-04-19
1008Russia2024-04-01
1009India2024-04-13
1010United Kingdom2024-04-12
1011United Kingdom2024-04-13
1012Italy2024-04-25
1013Argentina2024-04-02
1014Spain2024-04-03
1015Brazil2024-04-12
1016Australia2024-04-20
1017Argentina2024-04-19
1018Brazil2024-04-10
1019Italy2024-04-05
1020United Kingdom2024-03-30
1021Germany2024-04-21
1022Australia2024-03-28
1023United Kingdom2024-03-31
1024Russia2024-03-29
1025Japan2024-03-30
1026Australia2024-04-16
1027Australia2024-04-16
1028India2024-04-23
1029Japan2024-04-03
1030Spain2024-03-31
1031Germany2024-04-05
1032Argentina2024-04-20
1033Brazil2024-04-16
1034Italy2024-04-08
1035Germany2024-04-10
1036Japan2024-04-09
1037India2024-04-08
1038Germany2024-04-10
1039India2024-04-02
1040Germany2024-04-14
1041United Kingdom2024-04-23
1042France2024-04-25
1043Australia2024-04-17
1044United Kingdom2024-04-20
1045Germany2024-04-14
1046India2024-04-25
1047Australia2024-03-31
1048Italy2024-04-17
1049Russia2024-03-28

On-Demand Data

NameIdCountryDate
Rodrigues H Saylors1000France2024-04-08
Costa P Figeroa1001Canada2024-04-19
Costa L Darakjy1002Italy2024-03-30
Maisha E Kusko1003Argentina2024-03-28
Maisha P Ostrosky1004Brazil2024-04-07
Jennifer L Darakjy1005Canada2024-03-30
Octavia W Campain1006Spain2024-03-30
Izzy Y Nicka1007France2024-04-17
Sinclair E Malet1008Russia2024-04-13
Salvatore F Flosi1009United Kingdom2024-04-14
Silvio K Whobrey1010Japan2024-04-08
Juan G Wieser1011Japan2024-04-15
Mujtaba T Saylors1012Italy2024-04-22
Darci V Poquette1013France2024-04-25
Izzy D Vocelka1014Japan2024-03-31
Adams M Perin1015United Kingdom2024-04-09
Maisha A Venere1016Germany2024-04-07
Smith Y Tollner1017Italy2024-04-05
Ivar X Malet1018France2024-04-07
Emily Z Malet1019Australia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Q FigeroaCanadaStephen Shaw RENEWAL
Juan F NestleBrazilBernardo Dominic NEW
Adams R ShinkoArgentinaIoni Bowcher PROPOSAL
Francesco X RutaBrazilAnna Fali NEW
Julie N FigeroaUnited KingdomAmy Elsner QUALIFIED
Juan S MacleadUnited KingdomAnna Fali NEGOTIATION
Julie T AlbaresItalyOnyama Limba NEGOTIATION
Johnson Y NickaIndiaAnna Fali QUALIFIED
Greenwood B CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba D OldroydFranceOnyama Limba NEW
Aruna J SchemmerUnited KingdomAnna Fali PROPOSAL
Faith H GillianBrazilStephen Shaw QUALIFIED
Claire X MorascaItalyStephen Shaw UNQUALIFIED
Chavez O FollerArgentinaIoni Bowcher NEGOTIATION
Faith L BriddickCanadaElwin Sharvill RENEWAL
Izzy O WieserJapanIvan Magalhaes UNQUALIFIED
Kaitlin S VocelkaJapanAsiya Javayant NEGOTIATION
Kaitlin I DoeUnited KingdomBernardo Dominic UNQUALIFIED
Maisha I SlusarskiIndiaAnna Fali QUALIFIED
Julie F DarakjySpainAnna Fali UNQUALIFIED
Aruna N PerinArgentinaStephen Shaw RENEWAL
Ashley N TollnerBrazilElwin Sharvill QUALIFIED
Aruna U ShinkoIndiaBernardo Dominic NEW
Aruna I MaletRussiaOnyama Limba QUALIFIED
Emily T WhobreyArgentinaIoni Bowcher NEGOTIATION
Arvin M FerenczItalyAsiya Javayant RENEWAL
Murillo F MarrierFranceStephen Shaw NEW
Leja V MacleadAustraliaAnna Fali RENEWAL
Leon M VenereIndiaElwin Sharvill RENEWAL
Octavia K KuskoSpainIvan Magalhaes QUALIFIED
Costa F DoeRussiaBernardo Dominic RENEWAL
Octavia I NestleIndiaElwin Sharvill QUALIFIED
Silvio B SaylorsAustraliaAsiya Javayant NEGOTIATION
Emily D SaylorsRussiaOnyama Limba UNQUALIFIED
Jones A WaycottFranceAsiya Javayant QUALIFIED
Tony Z SergiSpainAnna Fali PROPOSAL
Nicolas L BowleyUnited KingdomOnyama Limba RENEWAL
Ivar M FlosiJapanAnna Fali PROPOSAL
Nicolas H NestleCanadaElwin Sharvill NEW
David R BologniaItalyXuxue Feng QUALIFIED

<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>