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
Leja R PoquetteFranceBernardo Dominic UNQUALIFIED
Misaki G FerenczItalyBernardo Dominic UNQUALIFIED
Kadeem F SergiJapanAsiya Javayant UNQUALIFIED
Kadeem Y GarufiUnited KingdomBernardo Dominic NEGOTIATION
Maisha P MorascaSpainAmy Elsner QUALIFIED
Morrow L RoysterIndiaOnyama Limba QUALIFIED
Faith L TollnerGermanyIvan Magalhaes NEW
Ricardo I PaprockiCanadaXuxue Feng NEW
Claire E NickaArgentinaOnyama Limba RENEWAL
Nicolas V FigeroaFranceBernardo Dominic PROPOSAL
Kadeem U StensethAustraliaAmy Elsner NEW
Stacey T PaprockiUnited KingdomXuxue Feng QUALIFIED
Claire T DoeFranceAsiya Javayant UNQUALIFIED
Costa E GauchoIndiaIvan Magalhaes RENEWAL
Leon F SlusarskiBrazilStephen Shaw RENEWAL
Arvin L TollnerItalyAmy Elsner NEW
Alejandro P BriddickRussiaStephen Shaw PROPOSAL
Leon W AlbaresGermanyAnna Fali QUALIFIED
Octavia T OstroskySpainElwin Sharvill NEW
Aditya B KolmetzUnited KingdomElwin Sharvill RENEWAL
Rodrigues A NickaGermanyXuxue Feng RENEWAL
Jefferson D PaprockiGermanyIoni Bowcher NEGOTIATION
Francesco Y StockhamSpainXuxue Feng QUALIFIED
Jones P PerinArgentinaStephen Shaw QUALIFIED
Claire P SaylorsAustraliaStephen Shaw UNQUALIFIED
Julie A DoeAustraliaOnyama Limba NEW
Silvio N WhobreyAustraliaOnyama Limba QUALIFIED
Stacey I BriddickUnited KingdomOnyama Limba QUALIFIED
Murillo G StockhamFranceAsiya Javayant NEGOTIATION
Ashley I KuskoCanadaIvan Magalhaes PROPOSAL
Maisha L RoysterSpainAnna Fali UNQUALIFIED
Leja G PerinBrazilBernardo Dominic QUALIFIED
Munro U AmigonFranceBernardo Dominic RENEWAL
Clifford Z MaletRussiaAnna Fali NEGOTIATION
Murillo L GlickFranceAsiya Javayant PROPOSAL
Claire I ButtArgentinaAmy Elsner QUALIFIED
Stacey P MaletFranceStephen Shaw NEW
Mujtaba Z MarrierFranceAmy Elsner QUALIFIED
Aruna T KuskoArgentinaAmy Elsner PROPOSAL
Alejandro E WaycottGermanyIvan Magalhaes RENEWAL
Julie N SchemmerRussiaAmy Elsner RENEWAL
Wickens Z AmigonSpainAnna Fali NEW
Juan V MaletCanadaXuxue Feng UNQUALIFIED
Wickens M ButtArgentinaElwin Sharvill NEW
Cody I IturbideAustraliaBernardo Dominic NEGOTIATION
Maisha O MaletRussiaBernardo Dominic PROPOSAL
Aditya L PaprockiBrazilOnyama Limba PROPOSAL
Aruna I OstroskyCanadaIvan Magalhaes NEW
Leon I KolmetzRussiaAsiya Javayant PROPOSAL
Smith O RulapaughArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith Y CaldareraJapanIoni Bowcher QUALIFIED
Murillo N GillianSpainBernardo Dominic NEW
Deepesh A OldroydGermanyIvan Magalhaes RENEWAL
Isabel I VenereArgentinaAmy Elsner RENEWAL
Claire G InouyeItalyAnna Fali NEW
Francesco N ChuiJapanStephen Shaw UNQUALIFIED
Antonio X MaletSpainIoni Bowcher RENEWAL
Jones T SaylorsJapanBernardo Dominic RENEWAL
Ashley R FerenczFranceBernardo Dominic PROPOSAL
Mayumi U WaycottIndiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya Y IturbideSpain2024-04-12King, Christopher A Esq NEGOTIATION65Elwin Sharvill
1001Jennifer C GauchoSpain2024-04-22Rangoni Of Florence UNQUALIFIED69Bernardo Dominic
1002Arvin M VenereBrazil2024-04-07Feiner Bros PROPOSAL72Ivan Magalhaes
1003Isabel P IturbideUnited Kingdom2024-04-27Printing Dimensions RENEWAL58Amy Elsner
1004Silvio U KuskoArgentina2024-04-21King, Christopher A Esq NEW7Ivan Magalhaes
1005Adams I VenereBrazil2024-04-23Commercial Press NEGOTIATION20Elwin Sharvill
1006Alejandro K KuskoSpain2024-04-03Commercial Press NEGOTIATION18Anna Fali
1007Jennifer K CampainCanada2024-03-31Rousseaux, Michael Esq NEGOTIATION96Bernardo Dominic
1008Maisha M TollnerCanada2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED91Stephen Shaw
1009Sinclair K GarufiUnited Kingdom2024-04-06Benton, John B Jr NEGOTIATION98Stephen Shaw
1010Clifford Q GillianGermany2024-04-08Chapman, Ross E Esq NEW24Amy Elsner
1011Silvio G ShinkoFrance2024-03-31Feltz Printing Service RENEWAL90Bernardo Dominic
1012Ivar D BowleyFrance2024-04-21King, Christopher A Esq RENEWAL32Ivan Magalhaes
1013Emily M FollerAustralia2024-04-01Benton, John B Jr UNQUALIFIED53Bernardo Dominic
1014Greenwood N FerenczGermany2024-04-17Rousseaux, Michael Esq QUALIFIED50Stephen Shaw
1015Deepesh Q CaldareraFrance2024-04-21Morlong Associates RENEWAL94Onyama Limba
1016Leja T FlosiUnited Kingdom2024-04-09Printing Dimensions NEW17Anna Fali
1017Emily Z FlosiSpain2024-04-05Feltz Printing Service QUALIFIED75Elwin Sharvill
1018Chavez Z SaylorsGermany2024-03-30Chapman, Ross E Esq QUALIFIED46Bernardo Dominic
1019Darci L GauchoAustralia2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED98Asiya Javayant
1020Antonio C BriddickGermany2024-04-14Chapman, Ross E Esq NEW2Elwin Sharvill
1021Izzy P GarufiGermany2024-04-18Feltz Printing Service NEW46Xuxue Feng
1022Greenwood G RimAustralia2024-04-08Rousseaux, Michael Esq PROPOSAL36Amy Elsner
1023Arvin T ChuiItaly2024-04-12Rangoni Of Florence QUALIFIED84Stephen Shaw
1024Ivar O GlickItaly2024-04-02King, Christopher A Esq UNQUALIFIED93Elwin Sharvill
1025Arvin D PoquetteArgentina2024-04-06Buckley Miller Wright PROPOSAL93Anna Fali
1026Francesco Y PerinGermany2024-04-02Rousseaux, Michael Esq UNQUALIFIED5Stephen Shaw
1027Morrow N FlosiSpain2024-04-26Feltz Printing Service PROPOSAL86Asiya Javayant
1028Deepesh T StensethGermany2024-04-10King, Christopher A Esq NEW93Stephen Shaw
1029Mayumi W FlosiJapan2024-04-21Commercial Press NEW18Anna Fali
1030Rodrigues Y FerenczUnited Kingdom2024-04-02Commercial Press UNQUALIFIED35Onyama Limba
1031Chavez B NickaRussia2024-04-10Chapman, Ross E Esq RENEWAL32Onyama Limba
1032Johnson X StockhamUnited Kingdom2024-04-25Printing Dimensions QUALIFIED51Bernardo Dominic
1033David L AmigonSpain2024-03-31Dorl, James J Esq NEGOTIATION68Onyama Limba
1034Octavia I OldroydCanada2024-04-16Morlong Associates NEW83Elwin Sharvill
1035Murillo E TollnerArgentina2024-04-11Rangoni Of Florence QUALIFIED96Ioni Bowcher
1036Cody T VenereAustralia2024-04-27Benton, John B Jr NEW16Xuxue Feng
1037Jennifer N FerenczBrazil2024-04-17Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1038Julie K DilliardAustralia2024-03-30King, Christopher A Esq QUALIFIED7Anna Fali
1039Ashley A IturbideGermany2024-04-25Rangoni Of Florence NEGOTIATION23Asiya Javayant
1040David H FlosiSpain2024-04-15Chemel, James L Cpa NEW8Stephen Shaw
1041Antonio R KolmetzJapan2024-04-20Buckley Miller Wright QUALIFIED66Onyama Limba
1042Kaitlin Z BologniaJapan2024-04-22Printing Dimensions UNQUALIFIED94Ivan Magalhaes
1043Alejandro G BowleyIndia2024-04-11Commercial Press UNQUALIFIED77Ivan Magalhaes
1044Silvio D SchemmerItaly2024-04-15Feltz Printing Service NEGOTIATION65Stephen Shaw
1045Jeanfrancois A PerinAustralia2024-04-02Morlong Associates NEGOTIATION33Asiya Javayant
1046Silvio M FerenczUnited Kingdom2024-04-19Commercial Press RENEWAL47Ivan Magalhaes
1047Deepesh S CaldareraCanada2024-03-31Feltz Printing Service PROPOSAL70Onyama Limba
1048Aditya S CaldareraItaly2024-04-16Printing Dimensions NEGOTIATION72Onyama Limba
1049Morrow L ShinkoCanada2024-04-28Dorl, James J Esq QUALIFIED43Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Stacey J FerenczIndiaStephen Shaw UNQUALIFIED
Clifford Z SchemmerArgentinaIoni Bowcher NEGOTIATION
Leon L OstroskyRussiaElwin Sharvill RENEWAL
Cody W AmigonItalyElwin Sharvill PROPOSAL
Faith H GlickSpainStephen Shaw UNQUALIFIED
Julie B WaycottUnited KingdomBernardo Dominic NEW
Kaitlin A DoeJapanAnna Fali NEW
Julie I SergiArgentinaAsiya Javayant NEGOTIATION
Leon R MaletIndiaIoni Bowcher PROPOSAL
Adams M FollerRussiaAmy Elsner NEGOTIATION
Juan L IturbideAustraliaIvan Magalhaes QUALIFIED
Wickens J RimFranceElwin Sharvill PROPOSAL
Mujtaba I StensethArgentinaElwin Sharvill PROPOSAL
Mayumi N DilliardArgentinaAnna Fali UNQUALIFIED
Maisha W IturbideCanadaXuxue Feng QUALIFIED
Emily X InouyeJapanStephen Shaw QUALIFIED
Aditya G WaycottUnited KingdomAmy Elsner NEGOTIATION
Julie E StensethIndiaElwin Sharvill QUALIFIED
Jones C InouyeItalyAsiya Javayant RENEWAL
Ashley B MacleadGermanyElwin Sharvill PROPOSAL
Adams Z BowleyBrazilBernardo Dominic NEW
Alejandro I BriddickRussiaIvan Magalhaes RENEWAL
Wickens V CaudyRussiaOnyama Limba NEGOTIATION
Wickens G SchemmerAustraliaStephen Shaw UNQUALIFIED
Murillo O TollnerRussiaAsiya Javayant NEW
Alejandro F RoysterIndiaIvan Magalhaes UNQUALIFIED
Morrow S MaletRussiaOnyama Limba NEW
Morrow J MacleadAustraliaIvan Magalhaes QUALIFIED
David Y RulapaughSpainOnyama Limba RENEWAL
Morrow E RutaCanadaAsiya Javayant RENEWAL
Ashley P BologniaIndiaElwin Sharvill QUALIFIED
Arvin H StockhamJapanAmy Elsner NEGOTIATION
Rodrigues O BologniaJapanBernardo Dominic NEW
Kaitlin U PerinRussiaOnyama Limba NEW
Nicolas M RulapaughSpainElwin Sharvill UNQUALIFIED
Chavez J VocelkaGermanyAnna Fali PROPOSAL
Leon B BologniaSpainOnyama Limba PROPOSAL
Maria W MaletUnited KingdomOnyama Limba NEW
Murillo B PaprockiIndiaAsiya Javayant RENEWAL
Nicolas G MaletItalyIvan Magalhaes PROPOSAL
Silvio P WhobreyIndiaElwin Sharvill QUALIFIED
Greenwood C FerenczRussiaBernardo Dominic NEW
Octavia C FollerRussiaStephen Shaw RENEWAL
Misaki K WhobreyAustraliaAmy Elsner NEGOTIATION
Ivar D BologniaGermanyElwin Sharvill NEGOTIATION
Francesco P PerinFranceStephen Shaw PROPOSAL
Kadeem H BologniaItalyStephen Shaw RENEWAL
Izzy B RutaIndiaIvan Magalhaes PROPOSAL
Jeanfrancois W SaylorsBrazilAnna Fali NEGOTIATION
Ivar F WaycottArgentinaStephen Shaw PROPOSAL
Frozen Columns
Name
Morrow H Doe
Aditya Y Nicka
Jefferson B Slusarski
Costa S Stenseth
Wickens N Bowley
Jennifer J Maclead
Darci T Kusko
Faith U Rulapaugh
Octavia S Glick
Wickens M Waycott
Alejandro J Glick
Aruna V Royster
David L Briddick
Aika T Amigon
Emily I Vocelka
Silvio T Marrier
Nicolas N Kusko
Nicolas J Ruta
Jones F Royster
David X Bolognia
Francesco V Caudy
Octavia S Wieser
Chavez D Amigon
Johnson C Inouye
Salvatore M Shinko
Wickens K Nicka
Johnson D Gillian
Claire W Doe
Leja U Vocelka
Mujtaba U Foller
Francesco I Schemmer
Jefferson D Rim
Mujtaba A Doe
Deepesh Q Ruta
Claire H Sergi
Munro I Slusarski
Arvin X Gaucho
Sinclair T Briddick
Clifford N Morasca
Sinclair R Royster
Aditya X Gaucho
Aruna C Briddick
Deepesh S Marrier
Johnson I Ruta
Adams T Kolmetz
Nicolas R Dilliard
Antonio O Paprocki
Francesco F Paprocki
David P Garufi
Kaitlin R Venere
IdCountryDate
1000Australia2024-04-25
1001France2024-04-07
1002Russia2024-04-17
1003India2024-04-12
1004Canada2024-04-17
1005Russia2024-04-20
1006Argentina2024-04-10
1007Canada2024-04-14
1008Australia2024-04-19
1009France2024-04-13
1010Argentina2024-04-14
1011Germany2024-04-12
1012Canada2024-03-30
1013Germany2024-03-30
1014Australia2024-04-17
1015Argentina2024-04-09
1016United Kingdom2024-04-18
1017Canada2024-04-14
1018India2024-04-24
1019Germany2024-04-01
1020Brazil2024-04-02
1021Russia2024-04-04
1022India2024-04-18
1023Brazil2024-04-07
1024Japan2024-04-09
1025France2024-04-18
1026Italy2024-04-04
1027Argentina2024-04-02
1028Brazil2024-04-25
1029United Kingdom2024-04-21
1030Canada2024-04-13
1031Argentina2024-04-17
1032Spain2024-04-18
1033Russia2024-04-28
1034Canada2024-04-20
1035Spain2024-04-05
1036Brazil2024-04-01
1037Argentina2024-04-15
1038Brazil2024-04-26
1039Argentina2024-04-02
1040Australia2024-04-20
1041United Kingdom2024-04-02
1042Brazil2024-03-30
1043United Kingdom2024-04-12
1044Australia2024-04-22
1045Canada2024-04-28
1046Russia2024-04-11
1047Russia2024-04-01
1048Canada2024-04-03
1049Australia2024-04-01

On-Demand Data

NameIdCountryDate
Arvin C Flosi1000Argentina2024-04-19
Mujtaba A Caudy1001Italy2024-04-03
Misaki Q Caldarera1002Australia2024-04-24
Ivar L Oldroyd1003Australia2024-04-08
Leja A Butt1004Italy2024-04-20
Adams K Kolmetz1005Russia2024-04-18
Nicolas R Nestle1006Australia2024-04-02
Aika I Glick1007Brazil2024-04-05
Nicolas H Waycott1008Brazil2024-04-02
Maisha O Kolmetz1009Argentina2024-04-26
Greenwood U Malet1010Russia2024-04-12
Misaki T Glick1011Australia2024-04-20
Kaitlin R Butt1012France2024-04-08
Maria V Stockham1013Italy2024-04-23
Wickens H Ostrosky1014Italy2024-03-31
Faith J Whobrey1015Spain2024-04-16
Alejandro S Gillian1016Italy2024-04-20
Costa D Figeroa1017France2024-04-25
Sinclair I Gaucho1018Germany2024-04-02
Maisha B Caldarera1019Russia2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa C RimArgentinaStephen Shaw NEW
Silvio W PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Maria Z DarakjyFranceBernardo Dominic NEGOTIATION
Nicolas A RulapaughUnited KingdomXuxue Feng NEW
Julie G KuskoGermanyXuxue Feng PROPOSAL
Francesco T NestleSpainStephen Shaw UNQUALIFIED
Arvin C CampainBrazilAsiya Javayant UNQUALIFIED
Claire H GauchoBrazilIoni Bowcher QUALIFIED
Julie S KuskoSpainAsiya Javayant UNQUALIFIED
Faith V CaudyAustraliaBernardo Dominic NEW
Aruna G OstroskyItalyBernardo Dominic UNQUALIFIED
Aruna L NickaGermanyXuxue Feng NEW
Sinclair S AlbaresIndiaIvan Magalhaes PROPOSAL
Aika O StensethUnited KingdomAsiya Javayant NEW
Arvin K SchemmerSpainStephen Shaw NEGOTIATION
Tony U SlusarskiSpainElwin Sharvill UNQUALIFIED
Izzy F BriddickSpainStephen Shaw NEW
Tony B MorascaUnited KingdomXuxue Feng PROPOSAL
Maisha B SlusarskiFranceAsiya Javayant RENEWAL
Kadeem G MaletCanadaAmy Elsner PROPOSAL
Silvio A ChuiBrazilIoni Bowcher NEW
Smith W BologniaRussiaAsiya Javayant PROPOSAL
Murillo L MarrierCanadaStephen Shaw NEGOTIATION
Mayumi M RulapaughJapanIvan Magalhaes PROPOSAL
Salvatore L FerenczBrazilElwin Sharvill UNQUALIFIED
Kadeem Q StockhamFranceAsiya Javayant NEGOTIATION
Arvin T DoeItalyIoni Bowcher QUALIFIED
Deepesh J FollerUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair W StensethCanadaOnyama Limba QUALIFIED
James S TollnerAustraliaElwin Sharvill RENEWAL
Isabel X DarakjyCanadaIoni Bowcher NEW
Arvin V AlbaresGermanyBernardo Dominic NEGOTIATION
Smith J OldroydArgentinaStephen Shaw UNQUALIFIED
Deepesh G TollnerSpainElwin Sharvill PROPOSAL
Aditya G SaylorsUnited KingdomAnna Fali NEGOTIATION
Greenwood B CaldareraGermanyIoni Bowcher PROPOSAL
Silvio H CaldareraJapanXuxue Feng QUALIFIED
Maisha H VocelkaFranceBernardo Dominic RENEWAL
Jefferson J RoysterFranceXuxue Feng UNQUALIFIED
Smith A NickaBrazilElwin Sharvill RENEWAL

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