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
Misaki D AlbaresGermanyOnyama Limba PROPOSAL
Faith A InouyeItalyAmy Elsner PROPOSAL
Darci C DarakjyFranceStephen Shaw PROPOSAL
Mayumi D DilliardGermanyAnna Fali UNQUALIFIED
Jones E NickaIndiaIoni Bowcher RENEWAL
Octavia A DoeArgentinaIvan Magalhaes QUALIFIED
Julie P GlickSpainStephen Shaw PROPOSAL
James F TollnerFranceXuxue Feng PROPOSAL
Francesco S FigeroaItalyBernardo Dominic NEW
Silvio S SaylorsAustraliaAmy Elsner QUALIFIED
Antonio O CaudyCanadaBernardo Dominic QUALIFIED
Mujtaba Y WieserAustraliaBernardo Dominic PROPOSAL
Cody J CampainFranceAmy Elsner UNQUALIFIED
Wickens Z SergiSpainXuxue Feng PROPOSAL
Faith T PoquetteRussiaOnyama Limba QUALIFIED
Ricardo S GillianFranceStephen Shaw UNQUALIFIED
Leon W SaylorsAustraliaAsiya Javayant RENEWAL
Adams S SaylorsBrazilElwin Sharvill RENEWAL
David W VenereAustraliaOnyama Limba RENEWAL
Leon P MaletUnited KingdomAnna Fali RENEWAL
Sinclair E BriddickAustraliaIoni Bowcher UNQUALIFIED
Ricardo W FerenczFranceBernardo Dominic RENEWAL
Izzy M SchemmerRussiaBernardo Dominic QUALIFIED
Isabel Q MaletIndiaElwin Sharvill NEGOTIATION
Maisha G VenereJapanAmy Elsner RENEWAL
Jefferson R RoysterGermanyXuxue Feng UNQUALIFIED
Costa G AlbaresGermanyAnna Fali NEW
Aditya Y DarakjyAustraliaAsiya Javayant NEGOTIATION
Murillo X CaudyFranceXuxue Feng QUALIFIED
Mujtaba C NickaGermanyAsiya Javayant NEW
Maria T TollnerSpainElwin Sharvill PROPOSAL
Jones C SlusarskiBrazilBernardo Dominic NEW
Aruna M SchemmerJapanIvan Magalhaes RENEWAL
Antonio Z ChuiFranceOnyama Limba RENEWAL
Leja B RutaGermanyBernardo Dominic PROPOSAL
Isabel D GlickAustraliaIvan Magalhaes NEW
Leon Y DoeBrazilBernardo Dominic QUALIFIED
Juan M PerinBrazilAmy Elsner UNQUALIFIED
Aika S SaylorsCanadaOnyama Limba UNQUALIFIED
Smith J GillianSpainAnna Fali NEGOTIATION
Johnson I FlosiGermanyAnna Fali NEW
Morrow V AlbaresBrazilAsiya Javayant PROPOSAL
Nicolas D RoysterJapanXuxue Feng NEW
Kaitlin M BowleySpainXuxue Feng NEGOTIATION
Sinclair P RutaGermanyElwin Sharvill NEW
Izzy E IturbideArgentinaBernardo Dominic QUALIFIED
David P CaudyBrazilIvan Magalhaes UNQUALIFIED
Mujtaba X FollerJapanElwin Sharvill PROPOSAL
Julie K IturbideJapanAsiya Javayant QUALIFIED
David K NestleJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas G GlickRussiaElwin Sharvill NEW
Salvatore H RutaAustraliaXuxue Feng UNQUALIFIED
Ivar W PoquetteGermanyXuxue Feng NEGOTIATION
Mayumi M DarakjyJapanAnna Fali NEGOTIATION
James Z PaprockiGermanyXuxue Feng UNQUALIFIED
David Y PaprockiGermanyStephen Shaw QUALIFIED
Cody D FerenczGermanyXuxue Feng UNQUALIFIED
Darci Q FollerIndiaAnna Fali UNQUALIFIED
Ashley Q VenereItalyIoni Bowcher NEGOTIATION
Emily L FollerJapanOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria G PaprockiCanada2024-04-14Chanay, Jeffrey A Esq RENEWAL94Stephen Shaw
1001Kaitlin J WieserItaly2024-04-26Feltz Printing Service RENEWAL43Elwin Sharvill
1002Maria T GauchoJapan2024-04-22Printing Dimensions RENEWAL89Asiya Javayant
1003Murillo X PerinAustralia2024-04-08Feiner Bros QUALIFIED68Amy Elsner
1004Kaitlin D InouyeRussia2024-04-22Truhlar And Truhlar Attys QUALIFIED50Stephen Shaw
1005Chavez S StensethFrance2024-04-19Commercial Press RENEWAL12Ivan Magalhaes
1006Maria S AmigonUnited Kingdom2024-04-14Feltz Printing Service QUALIFIED24Anna Fali
1007Claire Q InouyeItaly2024-04-11Chemel, James L Cpa RENEWAL70Bernardo Dominic
1008Cody S ShinkoGermany2024-04-27Feltz Printing Service RENEWAL4Amy Elsner
1009Johnson J SlusarskiCanada2024-03-30Chanay, Jeffrey A Esq NEW72Bernardo Dominic
1010Jones G FlosiArgentina2024-03-29Dorl, James J Esq UNQUALIFIED10Ioni Bowcher
1011Morrow M IturbideAustralia2024-04-08Rangoni Of Florence UNQUALIFIED3Bernardo Dominic
1012Aditya K AmigonJapan2024-03-29Dorl, James J Esq PROPOSAL62Bernardo Dominic
1013Misaki Z DilliardGermany2024-04-11Printing Dimensions RENEWAL90Elwin Sharvill
1014Costa M CaldareraAustralia2024-04-05Rangoni Of Florence NEW9Stephen Shaw
1015Tony Z RoysterFrance2024-04-01Rousseaux, Michael Esq UNQUALIFIED68Amy Elsner
1016Antonio T MaletItaly2024-04-10Rousseaux, Michael Esq RENEWAL98Asiya Javayant
1017Rodrigues X NestleIndia2024-04-05Chanay, Jeffrey A Esq RENEWAL45Amy Elsner
1018Leon W DoeBrazil2024-04-11Rousseaux, Michael Esq NEW8Ioni Bowcher
1019Morrow A DoeBrazil2024-04-19Rangoni Of Florence UNQUALIFIED86Elwin Sharvill
1020Cody I GauchoCanada2024-04-21Dorl, James J Esq QUALIFIED67Ioni Bowcher
1021Jefferson P CampainCanada2024-04-19Commercial Press RENEWAL76Ivan Magalhaes
1022Julie C GarufiFrance2024-04-23Morlong Associates QUALIFIED31Stephen Shaw
1023Aika J CampainGermany2024-04-12Morlong Associates NEW32Elwin Sharvill
1024James C GarufiArgentina2024-03-29Feltz Printing Service RENEWAL56Onyama Limba
1025Murillo A WaycottJapan2024-04-03Benton, John B Jr UNQUALIFIED16Onyama Limba
1026Alejandro N KuskoCanada2024-04-16Benton, John B Jr RENEWAL17Bernardo Dominic
1027Juan M NickaJapan2024-04-04Rangoni Of Florence NEGOTIATION13Elwin Sharvill
1028Greenwood Q InouyeSpain2024-04-02Chanay, Jeffrey A Esq NEW0Stephen Shaw
1029Ricardo A FerenczCanada2024-04-23Chapman, Ross E Esq UNQUALIFIED40Stephen Shaw
1030James B GillianCanada2024-04-19Dorl, James J Esq NEW96Stephen Shaw
1031Munro C WhobreyGermany2024-04-16Truhlar And Truhlar Attys QUALIFIED80Xuxue Feng
1032Salvatore O CampainUnited Kingdom2024-04-15Printing Dimensions NEW3Stephen Shaw
1033Alejandro D GillianBrazil2024-04-08Chemel, James L Cpa UNQUALIFIED32Bernardo Dominic
1034Aika W VenereItaly2024-04-04Rangoni Of Florence NEGOTIATION49Amy Elsner
1035Ivar U NickaItaly2024-04-18Dorl, James J Esq PROPOSAL68Ivan Magalhaes
1036James R StensethRussia2024-04-26King, Christopher A Esq NEW27Bernardo Dominic
1037Deepesh V BowleySpain2024-04-10Chemel, James L Cpa PROPOSAL25Asiya Javayant
1038Misaki M MacleadFrance2024-04-20King, Christopher A Esq PROPOSAL76Elwin Sharvill
1039Mayumi V MorascaUnited Kingdom2024-04-24Rangoni Of Florence QUALIFIED17Stephen Shaw
1040Salvatore C PoquetteArgentina2024-04-03Rangoni Of Florence RENEWAL72Ioni Bowcher
1041Isabel Q GlickArgentina2024-04-15Chanay, Jeffrey A Esq NEW91Bernardo Dominic
1042Jeanfrancois R PaprockiIndia2024-04-08Benton, John B Jr RENEWAL22Asiya Javayant
1043Misaki K MarrierArgentina2024-04-07Benton, John B Jr RENEWAL10Elwin Sharvill
1044Murillo M WhobreyFrance2024-04-22Truhlar And Truhlar Attys RENEWAL31Ioni Bowcher
1045Murillo T CaldareraJapan2024-04-15Morlong Associates PROPOSAL7Bernardo Dominic
1046David A FigeroaCanada2024-04-07Benton, John B Jr PROPOSAL85Xuxue Feng
1047Faith D RutaCanada2024-04-16King, Christopher A Esq RENEWAL70Bernardo Dominic
1048Smith D WaycottAustralia2024-04-05Chanay, Jeffrey A Esq RENEWAL46Ivan Magalhaes
1049Misaki T FigeroaAustralia2024-04-23Rousseaux, Michael Esq PROPOSAL16Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer G VocelkaGermanyElwin Sharvill NEW
Misaki H GarufiItalyStephen Shaw PROPOSAL
Jones F WaycottFranceXuxue Feng NEGOTIATION
Wickens D GlickItalyIvan Magalhaes NEGOTIATION
Deepesh V SaylorsGermanyStephen Shaw UNQUALIFIED
Jones O MaletSpainStephen Shaw RENEWAL
Izzy D RutaRussiaAmy Elsner RENEWAL
Leon Q VenereIndiaStephen Shaw PROPOSAL
Stacey J FigeroaJapanStephen Shaw PROPOSAL
Greenwood K VocelkaSpainBernardo Dominic NEW
Tony D MaletJapanIvan Magalhaes NEGOTIATION
Aika M SaylorsSpainAmy Elsner NEGOTIATION
Leja U CaldareraCanadaAsiya Javayant PROPOSAL
Smith Q StockhamBrazilAmy Elsner PROPOSAL
Leon E OldroydCanadaAmy Elsner RENEWAL
Johnson L CaldareraSpainIoni Bowcher NEW
Rodrigues V VocelkaCanadaStephen Shaw PROPOSAL
Kaitlin V FigeroaAustraliaOnyama Limba NEGOTIATION
Rodrigues Q FlosiCanadaElwin Sharvill NEGOTIATION
Leja A SlusarskiAustraliaAmy Elsner UNQUALIFIED
Salvatore N PerinItalyAnna Fali RENEWAL
Morrow M ButtFranceOnyama Limba PROPOSAL
Kadeem T PaprockiAustraliaAmy Elsner QUALIFIED
Emily O RulapaughBrazilXuxue Feng NEGOTIATION
Antonio E MacleadGermanyIoni Bowcher UNQUALIFIED
Leon A OldroydGermanyXuxue Feng NEW
Silvio C MarrierJapanIvan Magalhaes QUALIFIED
Johnson M ChuiCanadaIoni Bowcher RENEWAL
Rodrigues Q BriddickIndiaIvan Magalhaes RENEWAL
Juan C WieserIndiaBernardo Dominic RENEWAL
Maisha B AlbaresJapanIvan Magalhaes NEGOTIATION
Leja U PaprockiSpainAmy Elsner UNQUALIFIED
Arvin C MorascaItalyXuxue Feng PROPOSAL
Silvio V KuskoSpainAsiya Javayant RENEWAL
Octavia Q WaycottFranceElwin Sharvill NEGOTIATION
Morrow K WhobreyFranceElwin Sharvill NEW
Faith W CaldareraBrazilAsiya Javayant RENEWAL
Isabel U ButtItalyStephen Shaw NEW
Chavez P StockhamJapanIoni Bowcher UNQUALIFIED
Johnson K CaldareraGermanyAsiya Javayant QUALIFIED
Aruna F OstroskyFranceAnna Fali PROPOSAL
Ivar C BologniaArgentinaAmy Elsner RENEWAL
Jones S VocelkaCanadaAsiya Javayant UNQUALIFIED
Juan X WieserSpainAnna Fali NEGOTIATION
Darci Y MacleadIndiaElwin Sharvill NEW
Maisha U DarakjyFranceOnyama Limba RENEWAL
Chavez E ChuiSpainIoni Bowcher PROPOSAL
Smith F PerinCanadaElwin Sharvill UNQUALIFIED
Jones T WaycottBrazilAnna Fali PROPOSAL
Sinclair G CampainAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Sinclair V Gaucho
Smith Y Bolognia
Ashley N Nestle
Aika E Briddick
Mayumi Z Gillian
Claire O Doe
Kaitlin P Chui
Cody U Poquette
Morrow Z Schemmer
Cody K Campain
Darci L Gaucho
Greenwood M Inouye
Aruna H Campain
Silvio Y Inouye
Deepesh D Campain
Darci T Venere
Johnson W Rulapaugh
Jefferson N Waycott
Chavez I Sergi
Maisha G Slusarski
Cody D Gaucho
Maria G Malet
Izzy U Nestle
Sinclair H Bowley
Ashley I Perin
Aditya V Paprocki
Deepesh W Gaucho
Nicolas N Foller
Clifford Y Maclead
Claire T Bolognia
Darci R Rim
James F Sergi
Octavia W Venere
Clifford D Shinko
Misaki F Nicka
James P Gaucho
Kaitlin B Sergi
Jones K Figeroa
Greenwood L Briddick
Mayumi J Slusarski
Ivar R Tollner
Nicolas A Campain
Misaki K Chui
Mayumi B Paprocki
Jefferson Z Tollner
Rodrigues C Kusko
Izzy B Kolmetz
Faith P Chui
Izzy S Garufi
Greenwood U Wieser
IdCountryDate
1000Brazil2024-04-05
1001Italy2024-04-13
1002Japan2024-04-05
1003Australia2024-04-04
1004Australia2024-04-23
1005France2024-04-06
1006Russia2024-04-19
1007Germany2024-04-24
1008United Kingdom2024-03-31
1009Italy2024-04-26
1010Japan2024-03-31
1011France2024-03-29
1012Spain2024-04-09
1013Japan2024-03-31
1014Spain2024-04-17
1015Germany2024-04-19
1016Spain2024-04-05
1017France2024-04-25
1018Canada2024-04-13
1019Germany2024-04-24
1020Japan2024-03-29
1021Canada2024-03-30
1022Germany2024-04-02
1023India2024-03-30
1024Australia2024-03-30
1025Brazil2024-03-30
1026France2024-04-19
1027Australia2024-04-03
1028France2024-04-19
1029Spain2024-04-17
1030Australia2024-04-27
1031Japan2024-04-07
1032Japan2024-04-25
1033United Kingdom2024-04-03
1034France2024-04-01
1035Brazil2024-04-21
1036Argentina2024-04-03
1037Australia2024-04-03
1038France2024-04-08
1039Brazil2024-04-08
1040Italy2024-04-15
1041Brazil2024-04-03
1042Italy2024-04-21
1043Italy2024-04-17
1044Russia2024-04-09
1045Japan2024-03-30
1046Italy2024-04-11
1047Spain2024-04-13
1048Italy2024-04-07
1049Brazil2024-04-07

On-Demand Data

NameIdCountryDate
Salvatore U Briddick1000Spain2024-04-16
Alejandro F Marrier1001Japan2024-04-03
Murillo R Sergi1002Russia2024-04-23
Smith H Gillian1003Australia2024-04-20
Juan P Vocelka1004Japan2024-04-04
Darci V Kolmetz1005France2024-04-24
Francesco S Whobrey1006France2024-04-02
Aditya F Maclead1007Japan2024-04-18
Jeanfrancois A Foller1008India2024-04-12
Morrow V Marrier1009Brazil2024-03-31
Deepesh I Rim1010United Kingdom2024-04-15
Smith X Gaucho1011France2024-04-25
Adams L Vocelka1012France2024-04-17
Leon G Rulapaugh1013Italy2024-04-21
Costa Y Figeroa1014Argentina2024-04-05
Costa K Caudy1015Russia2024-04-03
Julie Y Kolmetz1016Germany2024-03-29
Wickens N Ferencz1017Australia2024-04-01
Aruna J Saylors1018France2024-04-27
Faith T Schemmer1019Argentina2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja G CaldareraRussiaIoni Bowcher UNQUALIFIED
Alejandro O KuskoBrazilAnna Fali NEGOTIATION
Ashley J ShinkoBrazilBernardo Dominic NEW
Izzy Y MarrierUnited KingdomXuxue Feng PROPOSAL
Faith I RulapaughAustraliaAsiya Javayant UNQUALIFIED
James Y ButtAustraliaElwin Sharvill PROPOSAL
Adams K WieserFranceOnyama Limba QUALIFIED
Chavez K ChuiGermanyElwin Sharvill UNQUALIFIED
Costa X CampainGermanyXuxue Feng RENEWAL
Deepesh U PerinCanadaOnyama Limba NEW
Misaki C FollerSpainAmy Elsner NEW
Isabel Y RulapaughJapanIoni Bowcher NEW
Jefferson S WieserIndiaAnna Fali QUALIFIED
James J CampainItalyElwin Sharvill PROPOSAL
Jefferson U FollerGermanyAsiya Javayant NEW
Jeanfrancois O PoquetteSpainIvan Magalhaes PROPOSAL
Aditya D WaycottBrazilIoni Bowcher NEW
Deepesh R ChuiArgentinaIoni Bowcher UNQUALIFIED
Mayumi Y WhobreyRussiaOnyama Limba QUALIFIED
Deepesh U BriddickAustraliaXuxue Feng UNQUALIFIED
Octavia Q KolmetzGermanyIoni Bowcher PROPOSAL
Leon K PoquetteRussiaAmy Elsner PROPOSAL
Isabel G CampainFranceOnyama Limba NEGOTIATION
Wickens N ShinkoItalyOnyama Limba RENEWAL
Darci F GarufiJapanXuxue Feng NEW
Mujtaba G SchemmerArgentinaElwin Sharvill NEGOTIATION
Julie W NestleFranceStephen Shaw RENEWAL
Ricardo M WieserIndiaBernardo Dominic NEW
Ashley H NestleUnited KingdomAsiya Javayant PROPOSAL
Silvio W DoeCanadaStephen Shaw NEGOTIATION
Stacey O PerinUnited KingdomStephen Shaw NEGOTIATION
Sinclair X MaletIndiaIoni Bowcher NEGOTIATION
Ricardo E DilliardGermanyBernardo Dominic UNQUALIFIED
Tony G FollerGermanyXuxue Feng NEGOTIATION
Misaki R StockhamCanadaAmy Elsner QUALIFIED
Aika V NestleGermanyIvan Magalhaes PROPOSAL
Murillo P PerinGermanyXuxue Feng QUALIFIED
Aruna Z SlusarskiAustraliaAnna Fali QUALIFIED
Silvio D StockhamItalyAnna Fali UNQUALIFIED
Aruna E AmigonBrazilAmy Elsner 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>