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
Mayumi H NestleIndiaElwin Sharvill RENEWAL
Darci M FerenczAustraliaBernardo Dominic UNQUALIFIED
Arvin O MaletArgentinaElwin Sharvill NEW
Nicolas F MaletItalyAnna Fali RENEWAL
Alejandro A MaletBrazilIvan Magalhaes QUALIFIED
Stacey V GlickSpainOnyama Limba NEW
Ashley O OldroydBrazilAmy Elsner RENEWAL
Nicolas L DilliardAustraliaOnyama Limba NEW
Costa O MaletAustraliaBernardo Dominic NEGOTIATION
Rodrigues F DilliardCanadaIvan Magalhaes UNQUALIFIED
Misaki C RutaIndiaAnna Fali PROPOSAL
Mujtaba Z MacleadIndiaBernardo Dominic PROPOSAL
Aika Z MaletArgentinaAsiya Javayant NEW
Deepesh E NickaRussiaElwin Sharvill RENEWAL
Kaitlin Q ChuiJapanOnyama Limba UNQUALIFIED
Darci W PoquetteAustraliaBernardo Dominic QUALIFIED
Aditya M SchemmerItalyIvan Magalhaes UNQUALIFIED
Ashley C CaldareraArgentinaAmy Elsner RENEWAL
Greenwood B OstroskyFranceAnna Fali QUALIFIED
Rodrigues S WhobreyItalyXuxue Feng RENEWAL
Stacey T SaylorsAustraliaAmy Elsner NEW
Izzy Q PoquetteRussiaAmy Elsner NEGOTIATION
Mujtaba Q OstroskyIndiaElwin Sharvill PROPOSAL
Stacey F KolmetzGermanyOnyama Limba PROPOSAL
David U WieserBrazilAsiya Javayant UNQUALIFIED
Mayumi K AlbaresItalyBernardo Dominic NEGOTIATION
David Z InouyeUnited KingdomAnna Fali PROPOSAL
Munro W DoeSpainIvan Magalhaes QUALIFIED
Ivar W DoeJapanAmy Elsner UNQUALIFIED
Claire D BologniaFranceIoni Bowcher QUALIFIED
Jeanfrancois R KuskoRussiaAnna Fali PROPOSAL
Kadeem H BriddickItalyElwin Sharvill NEW
Claire S DilliardIndiaXuxue Feng UNQUALIFIED
Munro B RimBrazilOnyama Limba PROPOSAL
Jefferson Q IturbideIndiaIoni Bowcher QUALIFIED
Leon L AmigonArgentinaElwin Sharvill QUALIFIED
Antonio A MorascaBrazilXuxue Feng PROPOSAL
Ivar I CaudyFranceAsiya Javayant NEW
Jones S FigeroaCanadaIvan Magalhaes QUALIFIED
Jeanfrancois M OldroydRussiaXuxue Feng RENEWAL
Clifford E VenereUnited KingdomXuxue Feng RENEWAL
Julie N GarufiFranceElwin Sharvill QUALIFIED
Maria S NestleJapanAsiya Javayant NEW
Wickens P OstroskyBrazilXuxue Feng NEGOTIATION
Maria O DarakjyIndiaOnyama Limba UNQUALIFIED
Deepesh A VocelkaFranceIvan Magalhaes QUALIFIED
Misaki L MaletGermanyAnna Fali RENEWAL
David G BriddickRussiaStephen Shaw UNQUALIFIED
Cody I AmigonIndiaAmy Elsner QUALIFIED
Arvin W IturbideFranceOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha W InouyeBrazilXuxue Feng PROPOSAL
Clifford H GauchoBrazilBernardo Dominic NEW
Chavez W IturbideItalyAmy Elsner UNQUALIFIED
Rodrigues S TollnerFranceIoni Bowcher NEW
Costa J AmigonSpainIvan Magalhaes PROPOSAL
Rodrigues G StockhamCanadaElwin Sharvill PROPOSAL
Mayumi O MarrierArgentinaAmy Elsner QUALIFIED
Faith V StockhamItalyAsiya Javayant UNQUALIFIED
James I AlbaresIndiaStephen Shaw NEGOTIATION
Leon G AmigonUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David S MaletItaly2024-04-30Benton, John B Jr QUALIFIED58Xuxue Feng
1001Francesco J PaprockiCanada2024-04-20Printing Dimensions PROPOSAL68Bernardo Dominic
1002Izzy W ButtGermany2024-04-11King, Christopher A Esq QUALIFIED67Stephen Shaw
1003Jones B ChuiFrance2024-04-24Feltz Printing Service NEW82Onyama Limba
1004Ashley H DarakjyItaly2024-04-27Chemel, James L Cpa PROPOSAL35Ioni Bowcher
1005James S BowleyBrazil2024-05-05Dorl, James J Esq PROPOSAL47Ioni Bowcher
1006Antonio A CaudyJapan2024-04-20Rangoni Of Florence QUALIFIED17Ivan Magalhaes
1007Aruna O KuskoBrazil2024-04-26Feiner Bros NEGOTIATION30Ioni Bowcher
1008Deepesh Z CaudyIndia2024-04-19King, Christopher A Esq QUALIFIED60Amy Elsner
1009Kadeem K WhobreyJapan2024-04-08Chapman, Ross E Esq UNQUALIFIED53Stephen Shaw
1010Aika O VocelkaFrance2024-04-27Chanay, Jeffrey A Esq NEGOTIATION58Elwin Sharvill
1011Greenwood E GillianFrance2024-04-26Chemel, James L Cpa QUALIFIED26Onyama Limba
1012Isabel U FigeroaGermany2024-04-22King, Christopher A Esq PROPOSAL37Xuxue Feng
1013Ricardo E FigeroaBrazil2024-04-17Morlong Associates NEW40Amy Elsner
1014Maria Y OldroydBrazil2024-04-08Buckley Miller Wright PROPOSAL26Xuxue Feng
1015Maria T AlbaresItaly2024-04-08Dorl, James J Esq UNQUALIFIED79Asiya Javayant
1016Claire I ButtItaly2024-05-02Buckley Miller Wright UNQUALIFIED89Amy Elsner
1017Leja I DilliardJapan2024-05-05Dorl, James J Esq UNQUALIFIED10Ioni Bowcher
1018James T NestleJapan2024-04-12King, Christopher A Esq PROPOSAL2Bernardo Dominic
1019Clifford M BriddickIndia2024-05-02Morlong Associates NEGOTIATION75Elwin Sharvill
1020Claire J DilliardJapan2024-04-30Feltz Printing Service UNQUALIFIED78Stephen Shaw
1021Clifford L StensethUnited Kingdom2024-05-03Truhlar And Truhlar Attys PROPOSAL17Ivan Magalhaes
1022Francesco G RoysterBrazil2024-04-09Chapman, Ross E Esq RENEWAL89Asiya Javayant
1023Nicolas S WaycottUnited Kingdom2024-05-06Morlong Associates UNQUALIFIED53Xuxue Feng
1024Chavez P BriddickRussia2024-04-26Morlong Associates QUALIFIED93Bernardo Dominic
1025Nicolas C MacleadGermany2024-04-12Feltz Printing Service RENEWAL80Asiya Javayant
1026Murillo P CaldareraUnited Kingdom2024-04-19Chanay, Jeffrey A Esq QUALIFIED68Bernardo Dominic
1027Ricardo S MaletItaly2024-04-08Dorl, James J Esq UNQUALIFIED75Asiya Javayant
1028Chavez U MaletItaly2024-04-28Feiner Bros QUALIFIED33Bernardo Dominic
1029Isabel Z NickaJapan2024-04-17King, Christopher A Esq QUALIFIED3Asiya Javayant
1030Arvin R RimSpain2024-04-22Morlong Associates UNQUALIFIED54Asiya Javayant
1031Aruna M GarufiArgentina2024-04-17Truhlar And Truhlar Attys PROPOSAL13Anna Fali
1032Juan Z BologniaIndia2024-04-15Feltz Printing Service NEGOTIATION34Onyama Limba
1033Murillo G GillianFrance2024-04-22Rousseaux, Michael Esq RENEWAL85Ivan Magalhaes
1034Alejandro E RimFrance2024-04-27Chapman, Ross E Esq PROPOSAL16Asiya Javayant
1035Clifford I PaprockiSpain2024-04-15Chapman, Ross E Esq RENEWAL87Onyama Limba
1036Aruna T RulapaughJapan2024-04-20Buckley Miller Wright PROPOSAL9Asiya Javayant
1037Tony N MacleadIndia2024-04-30Chanay, Jeffrey A Esq PROPOSAL24Onyama Limba
1038Arvin W IturbideUnited Kingdom2024-04-12Chapman, Ross E Esq UNQUALIFIED3Anna Fali
1039Jennifer E DarakjyCanada2024-04-23Dorl, James J Esq NEGOTIATION61Stephen Shaw
1040Maisha F BriddickJapan2024-04-10Truhlar And Truhlar Attys NEGOTIATION79Amy Elsner
1041Juan G StensethSpain2024-05-03Buckley Miller Wright UNQUALIFIED40Xuxue Feng
1042Rodrigues H BriddickGermany2024-04-25Benton, John B Jr PROPOSAL75Ivan Magalhaes
1043Stacey F KuskoBrazil2024-04-23Dorl, James J Esq NEW88Ivan Magalhaes
1044Munro Y RoysterIndia2024-05-02Dorl, James J Esq QUALIFIED17Onyama Limba
1045Salvatore G FerenczJapan2024-04-24Chapman, Ross E Esq UNQUALIFIED99Asiya Javayant
1046Wickens I GillianCanada2024-04-15Truhlar And Truhlar Attys RENEWAL89Ioni Bowcher
1047Nicolas F ChuiSpain2024-04-07King, Christopher A Esq NEW15Stephen Shaw
1048Johnson L PoquetteIndia2024-04-12Commercial Press NEGOTIATION8Xuxue Feng
1049Cody A PoquetteFrance2024-05-03Feiner Bros PROPOSAL46Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Silvio Y RoysterIndiaIvan Magalhaes PROPOSAL
David O DarakjyCanadaIvan Magalhaes UNQUALIFIED
Salvatore W MaletCanadaIoni Bowcher NEGOTIATION
Maisha M FerenczFranceOnyama Limba NEGOTIATION
Costa J SaylorsItalyStephen Shaw PROPOSAL
Salvatore E NickaRussiaIoni Bowcher QUALIFIED
Aditya J PoquetteGermanyAnna Fali RENEWAL
Rodrigues U WieserJapanAmy Elsner QUALIFIED
Johnson G PoquetteSpainBernardo Dominic NEW
Clifford C ShinkoGermanyIvan Magalhaes NEGOTIATION
Juan Z CaudyItalyIoni Bowcher NEGOTIATION
Johnson L RulapaughIndiaElwin Sharvill QUALIFIED
Misaki G CaudyUnited KingdomAmy Elsner QUALIFIED
Ricardo T SlusarskiRussiaAsiya Javayant NEGOTIATION
Leon W BowleyItalyAnna Fali QUALIFIED
Kadeem K OldroydArgentinaXuxue Feng QUALIFIED
Antonio L SergiIndiaAnna Fali NEW
Wickens E FlosiJapanXuxue Feng QUALIFIED
Ricardo G BriddickGermanyElwin Sharvill NEGOTIATION
Greenwood A StensethJapanIoni Bowcher NEW
Ashley U OldroydCanadaXuxue Feng QUALIFIED
Alejandro E GlickSpainXuxue Feng UNQUALIFIED
Smith X OstroskyItalyXuxue Feng NEGOTIATION
Octavia R ChuiJapanXuxue Feng PROPOSAL
Stacey M SchemmerFranceBernardo Dominic UNQUALIFIED
Smith O OldroydItalyIoni Bowcher UNQUALIFIED
Costa D VenereCanadaXuxue Feng RENEWAL
Isabel G PerinSpainAmy Elsner QUALIFIED
Adams P DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Isabel K FlosiCanadaBernardo Dominic RENEWAL
Munro T GarufiJapanBernardo Dominic NEGOTIATION
Juan Y MorascaItalyIvan Magalhaes PROPOSAL
Aruna T WieserGermanyStephen Shaw PROPOSAL
Francesco H PaprockiJapanIvan Magalhaes PROPOSAL
Munro W ButtIndiaStephen Shaw NEW
Chavez A ButtBrazilXuxue Feng NEW
Sinclair A RutaFranceAmy Elsner PROPOSAL
Kaitlin I KuskoIndiaAsiya Javayant NEGOTIATION
Chavez T StockhamGermanyIoni Bowcher NEW
Darci I GlickGermanyIvan Magalhaes UNQUALIFIED
Silvio X IturbideUnited KingdomAsiya Javayant RENEWAL
Tony L AlbaresIndiaBernardo Dominic NEGOTIATION
Jones N OldroydIndiaIvan Magalhaes QUALIFIED
Johnson Y MarrierFranceXuxue Feng RENEWAL
Octavia T CampainItalyAmy Elsner RENEWAL
Maria S PaprockiUnited KingdomAnna Fali NEGOTIATION
Antonio B SchemmerRussiaElwin Sharvill QUALIFIED
Wickens B TollnerGermanyStephen Shaw NEW
Deepesh A FerenczRussiaAnna Fali UNQUALIFIED
Mujtaba C PoquetteGermanyIvan Magalhaes RENEWAL
Frozen Columns
Name
Cody C Venere
Johnson H Figeroa
Cody O Vocelka
Greenwood P Wieser
Octavia J Foller
Chavez K Nestle
Nicolas L Tollner
Morrow H Glick
Chavez K Ferencz
Greenwood S Ferencz
Isabel X Dilliard
James Q Chui
David D Garufi
Mujtaba M Stockham
James H Nestle
Costa F Stenseth
Nicolas S Inouye
Julie Q Albares
Sinclair L Inouye
Jones W Kusko
Aika N Stenseth
Isabel J Caldarera
Rodrigues U Chui
Nicolas K Kolmetz
Jones Y Bowley
Chavez Z Sergi
Jefferson P Ostrosky
Aditya V Morasca
Murillo D Bowley
Murillo N Wieser
Morrow K Rulapaugh
Aditya K Flosi
Murillo Z Flosi
Leon E Flosi
Kaitlin J Bowley
Julie Y Butt
Costa D Vocelka
Maria P Tollner
Ivar W Ostrosky
Maria I Ferencz
Arvin U Saylors
Isabel S Foller
Jones W Malet
Costa Y Caudy
Greenwood D Flosi
Stacey N Marrier
Alejandro W Slusarski
Salvatore A Ostrosky
Salvatore X Campain
Izzy I Ostrosky
IdCountryDate
1000India2024-04-25
1001Spain2024-04-22
1002Australia2024-04-13
1003Australia2024-04-15
1004Canada2024-04-30
1005France2024-04-16
1006Canada2024-04-27
1007Argentina2024-04-13
1008Russia2024-04-13
1009France2024-04-24
1010Canada2024-04-18
1011Brazil2024-05-01
1012France2024-05-06
1013Brazil2024-04-30
1014Italy2024-04-26
1015Argentina2024-04-18
1016Italy2024-05-04
1017Italy2024-04-21
1018Russia2024-04-15
1019Russia2024-04-16
1020Argentina2024-05-03
1021Italy2024-04-10
1022France2024-04-25
1023Brazil2024-04-22
1024France2024-04-21
1025Argentina2024-04-24
1026Japan2024-05-06
1027Spain2024-04-17
1028France2024-04-27
1029Brazil2024-04-07
1030Australia2024-04-08
1031India2024-04-24
1032France2024-04-17
1033Canada2024-04-17
1034Spain2024-04-15
1035Canada2024-04-08
1036France2024-04-07
1037Japan2024-05-04
1038Spain2024-04-27
1039Brazil2024-04-25
1040Italy2024-04-26
1041Russia2024-04-24
1042Japan2024-04-13
1043Canada2024-04-14
1044India2024-04-17
1045Australia2024-04-16
1046Argentina2024-04-07
1047France2024-05-06
1048Argentina2024-04-21
1049Brazil2024-04-23

On-Demand Data

NameIdCountryDate
Greenwood Q Caudy1000India2024-04-19
Izzy N Royster1001France2024-04-24
Claire A Marrier1002Japan2024-04-17
Deepesh R Wieser1003Russia2024-04-24
Francesco S Kusko1004Argentina2024-05-05
Mayumi F Briddick1005United Kingdom2024-04-30
Maisha S Foller1006Brazil2024-04-08
Nicolas L Stockham1007Australia2024-04-15
Ricardo M Vocelka1008Russia2024-05-06
Clifford P Wieser1009Russia2024-04-26
Adams B Kusko1010Brazil2024-04-10
Jeanfrancois U Rim1011Canada2024-04-11
Leon O Maclead1012France2024-05-05
Julie J Shinko1013Italy2024-04-15
Greenwood K Paprocki1014Brazil2024-05-03
Ashley T Paprocki1015Brazil2024-04-23
Aruna B Oldroyd1016Italy2024-04-26
Ivar V Oldroyd1017Russia2024-05-02
Kaitlin R Figeroa1018Brazil2024-04-17
Morrow C Sergi1019Australia2024-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio I SaylorsAustraliaStephen Shaw PROPOSAL
Antonio Q WaycottFranceAsiya Javayant QUALIFIED
Greenwood K PoquetteUnited KingdomOnyama Limba QUALIFIED
Costa G VenereJapanAnna Fali QUALIFIED
Misaki L SlusarskiArgentinaElwin Sharvill QUALIFIED
Jefferson V CaudyFranceIoni Bowcher RENEWAL
Francesco F GauchoFranceAmy Elsner PROPOSAL
Tony U KuskoUnited KingdomIoni Bowcher RENEWAL
Octavia V VenereBrazilAmy Elsner NEW
Salvatore N NestleCanadaAmy Elsner NEW
Nicolas O FigeroaIndiaXuxue Feng QUALIFIED
Rodrigues W CaudyBrazilIvan Magalhaes QUALIFIED
Kadeem I VenereIndiaIvan Magalhaes PROPOSAL
Murillo Z NestleItalyAnna Fali NEW
Chavez E RutaArgentinaAmy Elsner PROPOSAL
Alejandro X SchemmerAustraliaStephen Shaw NEW
Aika P NestleIndiaElwin Sharvill QUALIFIED
Kaitlin S RulapaughSpainXuxue Feng PROPOSAL
Darci B RoysterUnited KingdomXuxue Feng NEGOTIATION
Aditya S FollerArgentinaAnna Fali NEW
Leon J FollerRussiaElwin Sharvill RENEWAL
Julie M TollnerUnited KingdomAmy Elsner PROPOSAL
Smith J StensethCanadaIvan Magalhaes NEGOTIATION
Francesco C StensethItalyBernardo Dominic UNQUALIFIED
Ashley B FollerItalyAnna Fali QUALIFIED
Salvatore P CaldareraFranceIvan Magalhaes PROPOSAL
Kaitlin D PerinIndiaXuxue Feng RENEWAL
Jennifer X GillianSpainOnyama Limba QUALIFIED
Izzy R WaycottCanadaAmy Elsner UNQUALIFIED
Kaitlin T RimIndiaAnna Fali QUALIFIED
Arvin O PoquetteItalyXuxue Feng NEW
Jeanfrancois B WhobreyUnited KingdomBernardo Dominic PROPOSAL
Maria D IturbideIndiaAnna Fali NEGOTIATION
Sinclair E RoysterItalyAnna Fali UNQUALIFIED
Jennifer M ShinkoIndiaXuxue Feng QUALIFIED
Misaki K WhobreyRussiaBernardo Dominic QUALIFIED
Mujtaba R GillianFranceIoni Bowcher NEW
Darci D GarufiAustraliaBernardo Dominic NEGOTIATION
Tony E OldroydAustraliaXuxue Feng PROPOSAL
Leon P SergiCanadaStephen Shaw NEGOTIATION

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