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
James P CampainJapanXuxue Feng NEW
Aditya Y ChuiAustraliaIvan Magalhaes RENEWAL
Isabel B WieserIndiaStephen Shaw UNQUALIFIED
Mayumi Q NestleAustraliaIvan Magalhaes NEGOTIATION
Costa D DilliardRussiaBernardo Dominic NEW
Juan R RulapaughItalyIoni Bowcher UNQUALIFIED
Ashley V WhobreySpainElwin Sharvill NEGOTIATION
Aditya X StensethItalyBernardo Dominic NEGOTIATION
Ashley E GillianSpainAsiya Javayant RENEWAL
James R GauchoGermanyElwin Sharvill RENEWAL
Isabel B AlbaresSpainAsiya Javayant RENEWAL
Antonio H GlickGermanyIvan Magalhaes UNQUALIFIED
Jones U CampainSpainStephen Shaw NEGOTIATION
Johnson D StensethBrazilStephen Shaw PROPOSAL
Octavia H RutaAustraliaIoni Bowcher NEW
Aika I RulapaughBrazilElwin Sharvill QUALIFIED
Leja D StockhamItalyXuxue Feng PROPOSAL
Aika D KuskoArgentinaIoni Bowcher NEGOTIATION
Murillo Y CampainGermanyAsiya Javayant NEW
Leon U PaprockiJapanStephen Shaw NEW
Kadeem J MacleadItalyOnyama Limba PROPOSAL
Sinclair R RoysterUnited KingdomOnyama Limba NEGOTIATION
Clifford T StensethSpainAsiya Javayant QUALIFIED
Aditya E BriddickJapanIoni Bowcher RENEWAL
Kaitlin L KolmetzGermanyIoni Bowcher RENEWAL
Adams P RulapaughArgentinaAnna Fali UNQUALIFIED
Jeanfrancois Q FigeroaFranceAnna Fali NEGOTIATION
Arvin K RimItalyOnyama Limba NEGOTIATION
Morrow M GauchoSpainElwin Sharvill QUALIFIED
Alejandro W FerenczAustraliaIvan Magalhaes RENEWAL
Kaitlin W MaletGermanyStephen Shaw RENEWAL
Jefferson D IturbideArgentinaAsiya Javayant NEW
Aditya C CaldareraUnited KingdomBernardo Dominic QUALIFIED
Aditya S PerinSpainElwin Sharvill UNQUALIFIED
Octavia Y BologniaItalyAnna Fali NEGOTIATION
Deepesh B GlickJapanStephen Shaw UNQUALIFIED
Juan C RimRussiaAnna Fali QUALIFIED
Greenwood G StensethAustraliaBernardo Dominic PROPOSAL
Jennifer F RulapaughGermanyBernardo Dominic NEGOTIATION
Emily S StensethItalyAsiya Javayant NEGOTIATION
Leon B FlosiBrazilBernardo Dominic UNQUALIFIED
Antonio A FigeroaCanadaAmy Elsner QUALIFIED
Johnson P AmigonCanadaIvan Magalhaes RENEWAL
David Y FollerGermanyOnyama Limba RENEWAL
Rodrigues D GillianIndiaIoni Bowcher NEGOTIATION
Ashley F SlusarskiRussiaAsiya Javayant QUALIFIED
Rodrigues C GarufiBrazilIvan Magalhaes RENEWAL
Maria U RulapaughItalyBernardo Dominic NEW
Clifford B MaletFranceAmy Elsner RENEWAL
Juan I ButtGermanyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire P KolmetzIndiaIoni Bowcher NEW
Aika K GarufiSpainAsiya Javayant UNQUALIFIED
Misaki Q CampainUnited KingdomAmy Elsner QUALIFIED
Ivar S MacleadSpainXuxue Feng PROPOSAL
Mayumi E ShinkoAustraliaOnyama Limba UNQUALIFIED
Cody Z BowleyFranceOnyama Limba NEGOTIATION
Smith N RutaArgentinaIoni Bowcher QUALIFIED
Aika D IturbideArgentinaStephen Shaw NEW
Salvatore C ChuiSpainIvan Magalhaes NEGOTIATION
Salvatore K RimRussiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily I OldroydBrazil2024-05-09Truhlar And Truhlar Attys NEW68Ivan Magalhaes
1001Costa X FollerArgentina2024-04-29Chapman, Ross E Esq PROPOSAL79Anna Fali
1002Arvin K GillianUnited Kingdom2024-04-25Buckley Miller Wright RENEWAL25Xuxue Feng
1003Cody L GillianGermany2024-05-10Feiner Bros PROPOSAL80Onyama Limba
1004James Y RimJapan2024-05-15Feltz Printing Service NEGOTIATION38Bernardo Dominic
1005Julie O RutaItaly2024-05-08Printing Dimensions NEGOTIATION85Stephen Shaw
1006Ricardo M FlosiJapan2024-05-13Feiner Bros NEW46Asiya Javayant
1007Cody H FollerFrance2024-05-16Buckley Miller Wright NEW40Onyama Limba
1008Maisha C GauchoArgentina2024-05-05Buckley Miller Wright NEW40Bernardo Dominic
1009Kaitlin P NestleSpain2024-05-20Chanay, Jeffrey A Esq UNQUALIFIED24Stephen Shaw
1010Francesco K DarakjyBrazil2024-05-16Printing Dimensions RENEWAL65Ioni Bowcher
1011Jefferson M MaletIndia2024-05-02Chemel, James L Cpa UNQUALIFIED81Stephen Shaw
1012Isabel W NestleJapan2024-05-04Dorl, James J Esq PROPOSAL10Ivan Magalhaes
1013Nicolas L MarrierGermany2024-04-24Dorl, James J Esq RENEWAL88Xuxue Feng
1014Sinclair M TollnerSpain2024-05-16Truhlar And Truhlar Attys UNQUALIFIED66Xuxue Feng
1015Cody D NestleIndia2024-04-22Printing Dimensions PROPOSAL71Elwin Sharvill
1016Julie A PoquetteCanada2024-04-26King, Christopher A Esq QUALIFIED53Onyama Limba
1017Mayumi K WieserJapan2024-05-03King, Christopher A Esq RENEWAL51Bernardo Dominic
1018Smith D SlusarskiBrazil2024-05-13Printing Dimensions PROPOSAL64Elwin Sharvill
1019Jones P NickaAustralia2024-05-01Dorl, James J Esq NEW45Stephen Shaw
1020Johnson O NestleAustralia2024-04-27Buckley Miller Wright RENEWAL55Ioni Bowcher
1021Faith J WieserGermany2024-05-11Dorl, James J Esq UNQUALIFIED72Xuxue Feng
1022Johnson K DarakjyBrazil2024-04-28Morlong Associates PROPOSAL76Amy Elsner
1023Costa E BowleySpain2024-05-04Commercial Press RENEWAL67Ioni Bowcher
1024Tony Z IturbideGermany2024-04-29Rousseaux, Michael Esq QUALIFIED82Amy Elsner
1025Misaki R GillianBrazil2024-05-14King, Christopher A Esq NEGOTIATION51Bernardo Dominic
1026James S NickaFrance2024-05-04Chanay, Jeffrey A Esq PROPOSAL87Onyama Limba
1027Faith Z RimSpain2024-05-05Benton, John B Jr NEGOTIATION48Onyama Limba
1028Alejandro O CaudyBrazil2024-05-03Feiner Bros PROPOSAL68Anna Fali
1029Cody G RulapaughArgentina2024-05-05Chemel, James L Cpa PROPOSAL21Onyama Limba
1030Jeanfrancois A MaletSpain2024-04-25Chanay, Jeffrey A Esq NEGOTIATION15Ioni Bowcher
1031Salvatore X KolmetzJapan2024-05-02Chapman, Ross E Esq RENEWAL67Elwin Sharvill
1032Sinclair T PerinCanada2024-05-03Dorl, James J Esq RENEWAL52Onyama Limba
1033Johnson M PaprockiUnited Kingdom2024-05-11Commercial Press PROPOSAL56Onyama Limba
1034Jones F SlusarskiCanada2024-05-17Benton, John B Jr NEGOTIATION39Onyama Limba
1035Tony I WhobreyJapan2024-05-04Rangoni Of Florence PROPOSAL8Stephen Shaw
1036Aika H FollerArgentina2024-05-04Dorl, James J Esq UNQUALIFIED51Elwin Sharvill
1037Antonio K MorascaBrazil2024-05-09Morlong Associates PROPOSAL36Bernardo Dominic
1038Misaki W GauchoArgentina2024-05-20Rousseaux, Michael Esq NEGOTIATION40Stephen Shaw
1039Aruna Z AmigonBrazil2024-04-22Chemel, James L Cpa UNQUALIFIED93Xuxue Feng
1040Darci Q ButtSpain2024-04-23Printing Dimensions RENEWAL92Bernardo Dominic
1041Johnson U ShinkoGermany2024-05-01King, Christopher A Esq UNQUALIFIED77Elwin Sharvill
1042Rodrigues R WieserIndia2024-05-11King, Christopher A Esq NEGOTIATION95Bernardo Dominic
1043Morrow C WhobreyCanada2024-05-02Chapman, Ross E Esq NEW74Bernardo Dominic
1044Mayumi P ButtJapan2024-05-12Dorl, James J Esq QUALIFIED97Ioni Bowcher
1045Adams D SlusarskiBrazil2024-05-02Rousseaux, Michael Esq UNQUALIFIED13Bernardo Dominic
1046Leon X DoeRussia2024-05-04Morlong Associates UNQUALIFIED88Elwin Sharvill
1047Chavez Y StockhamSpain2024-04-25Feltz Printing Service QUALIFIED72Xuxue Feng
1048Octavia K MorascaRussia2024-04-23Morlong Associates NEGOTIATION27Elwin Sharvill
1049Emily J DilliardRussia2024-04-29Commercial Press PROPOSAL98Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ricardo O MaletAustraliaXuxue Feng NEGOTIATION
Octavia X PaprockiGermanyElwin Sharvill RENEWAL
Tony X IturbideRussiaIoni Bowcher QUALIFIED
Arvin R NickaRussiaStephen Shaw UNQUALIFIED
Rodrigues Y RulapaughGermanyStephen Shaw QUALIFIED
Alejandro K MacleadIndiaOnyama Limba PROPOSAL
Izzy Z ShinkoItalyOnyama Limba NEGOTIATION
Arvin S ChuiAustraliaAsiya Javayant UNQUALIFIED
Jennifer X GauchoIndiaIoni Bowcher RENEWAL
Munro O GauchoFranceIvan Magalhaes QUALIFIED
Antonio K VocelkaItalyStephen Shaw QUALIFIED
Munro V TollnerGermanyXuxue Feng NEGOTIATION
Antonio O PerinIndiaAmy Elsner PROPOSAL
Leon W FerenczUnited KingdomAmy Elsner NEGOTIATION
Wickens N ShinkoAustraliaOnyama Limba UNQUALIFIED
Jefferson H KolmetzSpainBernardo Dominic RENEWAL
Maria T PerinAustraliaIvan Magalhaes QUALIFIED
Jones Q MorascaFranceElwin Sharvill NEGOTIATION
Jones C NickaJapanOnyama Limba RENEWAL
Munro Q MarrierFranceIvan Magalhaes QUALIFIED
Silvio R StensethArgentinaBernardo Dominic UNQUALIFIED
Juan R VenereArgentinaStephen Shaw PROPOSAL
Rodrigues U WaycottBrazilAnna Fali NEGOTIATION
Alejandro V FerenczRussiaIoni Bowcher NEW
Ricardo O RutaRussiaIoni Bowcher NEW
Costa A StockhamIndiaBernardo Dominic UNQUALIFIED
Murillo Z CaldareraJapanIoni Bowcher QUALIFIED
Silvio L GauchoSpainAsiya Javayant PROPOSAL
Isabel O CampainGermanyAmy Elsner RENEWAL
Antonio O PaprockiCanadaElwin Sharvill QUALIFIED
Aika C OstroskyFranceAsiya Javayant PROPOSAL
Stacey L ShinkoGermanyBernardo Dominic PROPOSAL
Darci K BologniaJapanAsiya Javayant UNQUALIFIED
Kadeem A ShinkoGermanyAmy Elsner NEW
Mayumi R StensethBrazilAsiya Javayant NEGOTIATION
Sinclair L PaprockiItalyIoni Bowcher RENEWAL
Ashley P NickaRussiaBernardo Dominic QUALIFIED
Aruna T FigeroaArgentinaAsiya Javayant UNQUALIFIED
Isabel O CaudyGermanyAmy Elsner PROPOSAL
Sinclair Q RoysterJapanAnna Fali NEW
Leja Y ShinkoUnited KingdomBernardo Dominic NEGOTIATION
Johnson R RulapaughJapanXuxue Feng QUALIFIED
Juan D StensethGermanyStephen Shaw QUALIFIED
Antonio J MorascaIndiaIoni Bowcher NEW
Darci R OstroskyAustraliaStephen Shaw PROPOSAL
Costa G SergiGermanyAsiya Javayant UNQUALIFIED
Costa O ChuiBrazilBernardo Dominic NEGOTIATION
Ivar U BologniaRussiaAnna Fali NEW
Alejandro Z DilliardFranceAmy Elsner PROPOSAL
Jennifer U KuskoSpainStephen Shaw NEGOTIATION
Frozen Columns
Name
Silvio T Marrier
Isabel X Figeroa
Murillo L Foller
Morrow W Dilliard
Silvio U Slusarski
Costa N Caudy
Ivar V Dilliard
Maisha U Tollner
Greenwood Q Maclead
Leon Z Waycott
Leon R Stockham
Darci E Rim
Alejandro H Caudy
Leja J Oldroyd
Jeanfrancois L Kusko
Ricardo B Caldarera
Nicolas G Caudy
Antonio Z Sergi
Jones Y Amigon
Juan Q Inouye
Maisha G Malet
Faith B Butt
Emily L Slusarski
Jefferson C Bolognia
Sinclair R Marrier
Greenwood C Paprocki
Clifford U Waycott
Mujtaba I Ruta
Faith E Venere
Leja W Nicka
Mayumi O Caudy
Stacey Q Inouye
Jeanfrancois R Oldroyd
Jeanfrancois S Kusko
Aika R Vocelka
Adams Y Glick
Greenwood E Paprocki
Jennifer U Slusarski
Silvio Z Saylors
Jeanfrancois D Albares
Greenwood Q Whobrey
Deepesh R Ferencz
Ashley O Morasca
Leon I Albares
Chavez V Garufi
Costa Y Sergi
Faith S Royster
Claire K Venere
Chavez K Caldarera
Leon G Caldarera
IdCountryDate
1000Canada2024-05-04
1001Argentina2024-05-14
1002Germany2024-04-23
1003Australia2024-04-24
1004Australia2024-04-23
1005France2024-05-07
1006Brazil2024-05-16
1007Argentina2024-04-21
1008Argentina2024-05-03
1009Australia2024-04-27
1010Brazil2024-05-04
1011United Kingdom2024-04-28
1012Japan2024-04-22
1013Brazil2024-05-12
1014France2024-05-17
1015France2024-05-02
1016Argentina2024-05-06
1017Japan2024-05-14
1018France2024-05-08
1019Germany2024-05-16
1020Spain2024-05-17
1021India2024-04-24
1022India2024-05-14
1023Spain2024-05-04
1024United Kingdom2024-05-09
1025France2024-05-02
1026France2024-05-02
1027Italy2024-05-06
1028Canada2024-05-08
1029India2024-04-22
1030Brazil2024-05-07
1031Spain2024-04-21
1032Germany2024-04-28
1033France2024-05-20
1034Spain2024-04-28
1035Canada2024-05-19
1036Argentina2024-05-03
1037United Kingdom2024-05-01
1038India2024-05-08
1039Germany2024-05-08
1040Germany2024-05-15
1041Italy2024-05-08
1042India2024-05-13
1043Argentina2024-04-23
1044Italy2024-05-03
1045Italy2024-04-21
1046United Kingdom2024-04-21
1047Brazil2024-05-15
1048Argentina2024-04-29
1049Canada2024-05-09

On-Demand Data

NameIdCountryDate
Antonio K Caudy1000Brazil2024-04-25
Emily N Nestle1001Russia2024-04-30
Jeanfrancois I Malet1002Russia2024-04-23
Costa U Paprocki1003Japan2024-04-29
Salvatore U Morasca1004Russia2024-04-22
Francesco G Stockham1005Australia2024-05-13
Kadeem F Amigon1006France2024-04-26
Jefferson S Ostrosky1007Italy2024-05-01
Nicolas Q Stockham1008Russia2024-05-04
Misaki M Glick1009Italy2024-05-09
Kadeem B Stockham1010Spain2024-05-02
Maria C Schemmer1011Brazil2024-04-24
Sinclair Z Poquette1012Italy2024-05-14
Kadeem Q Caldarera1013Italy2024-05-14
Jones M Saylors1014Italy2024-04-27
Jones N Campain1015Brazil2024-04-23
Aika S Butt1016Russia2024-05-05
Kaitlin Y Foller1017Australia2024-05-12
Faith T Ferencz1018Germany2024-05-13
Claire H Dilliard1019Japan2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire V GarufiIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois Z SlusarskiCanadaIvan Magalhaes PROPOSAL
David Y KolmetzAustraliaOnyama Limba NEGOTIATION
Sinclair O GauchoJapanAsiya Javayant RENEWAL
Kadeem Y TollnerFranceOnyama Limba NEW
Rodrigues K KolmetzAustraliaAnna Fali RENEWAL
Greenwood Z CampainAustraliaStephen Shaw NEW
Rodrigues A InouyeGermanyAmy Elsner RENEWAL
Morrow E RoysterItalyOnyama Limba PROPOSAL
Tony L TollnerCanadaBernardo Dominic QUALIFIED
Deepesh Y FerenczArgentinaAsiya Javayant QUALIFIED
Maria P DarakjyCanadaXuxue Feng NEW
Costa V FigeroaCanadaBernardo Dominic RENEWAL
James E ButtGermanyIvan Magalhaes RENEWAL
Ricardo M RoysterAustraliaStephen Shaw RENEWAL
Rodrigues N NestleBrazilIvan Magalhaes NEGOTIATION
Aditya G NestleIndiaElwin Sharvill RENEWAL
Greenwood K BriddickAustraliaAsiya Javayant NEW
Jefferson R DarakjyArgentinaStephen Shaw NEGOTIATION
Leon L MarrierCanadaAsiya Javayant QUALIFIED
Juan J MorascaIndiaIoni Bowcher RENEWAL
Cody Z MaletArgentinaBernardo Dominic NEW
Jennifer R MaletUnited KingdomAmy Elsner PROPOSAL
Tony K SaylorsGermanyBernardo Dominic PROPOSAL
Costa W MarrierArgentinaAsiya Javayant UNQUALIFIED
Adams W GlickGermanyAmy Elsner QUALIFIED
Kadeem M MaletItalyAmy Elsner QUALIFIED
Rodrigues V FerenczFranceElwin Sharvill PROPOSAL
Aika P ChuiSpainAsiya Javayant UNQUALIFIED
Kadeem D GarufiAustraliaAnna Fali PROPOSAL
Costa W FerenczCanadaXuxue Feng QUALIFIED
Ivar U OstroskyIndiaIoni Bowcher RENEWAL
Wickens K RimRussiaIvan Magalhaes UNQUALIFIED
Ashley J AmigonBrazilElwin Sharvill UNQUALIFIED
Clifford C SergiJapanAmy Elsner NEGOTIATION
Tony O BriddickGermanyOnyama Limba NEGOTIATION
Clifford J BologniaArgentinaStephen Shaw RENEWAL
Salvatore U StockhamJapanAsiya Javayant UNQUALIFIED
Leja L GauchoIndiaOnyama Limba PROPOSAL
Silvio Z RimJapanBernardo Dominic UNQUALIFIED

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