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
Wickens E DarakjyGermanyIvan Magalhaes NEW
Leja S ChuiJapanStephen Shaw QUALIFIED
Chavez Y WaycottIndiaElwin Sharvill PROPOSAL
Francesco G MarrierItalyIoni Bowcher QUALIFIED
Deepesh D GlickBrazilAsiya Javayant PROPOSAL
Munro I CaldareraBrazilAsiya Javayant UNQUALIFIED
Jones H SchemmerJapanBernardo Dominic UNQUALIFIED
Maria R DarakjyAustraliaIoni Bowcher QUALIFIED
Maria Z GillianArgentinaIvan Magalhaes QUALIFIED
Greenwood B KolmetzFranceStephen Shaw NEGOTIATION
Rodrigues J MorascaAustraliaElwin Sharvill NEW
Faith I MaletBrazilAmy Elsner UNQUALIFIED
Kaitlin I VocelkaUnited KingdomAnna Fali RENEWAL
Emily F ButtSpainOnyama Limba QUALIFIED
Clifford S WieserGermanyIoni Bowcher UNQUALIFIED
Silvio D InouyeSpainAmy Elsner NEGOTIATION
Jeanfrancois L DarakjyUnited KingdomAsiya Javayant PROPOSAL
Stacey C RimArgentinaStephen Shaw UNQUALIFIED
Smith V MacleadBrazilAmy Elsner NEW
Adams R ShinkoIndiaXuxue Feng UNQUALIFIED
Wickens P NestleBrazilIoni Bowcher PROPOSAL
Adams G WaycottAustraliaStephen Shaw PROPOSAL
Antonio N WaycottGermanyStephen Shaw QUALIFIED
Izzy S NestleJapanAnna Fali NEGOTIATION
Claire A PoquetteIndiaAsiya Javayant NEW
Aruna S DarakjyGermanyIoni Bowcher QUALIFIED
Stacey G DoeGermanyAsiya Javayant NEW
Juan A NestleRussiaXuxue Feng UNQUALIFIED
James Q CaldareraGermanyOnyama Limba PROPOSAL
Misaki Q GillianArgentinaElwin Sharvill NEGOTIATION
Francesco U OstroskyFranceIoni Bowcher NEGOTIATION
Murillo A PaprockiAustraliaXuxue Feng PROPOSAL
Faith R GarufiCanadaAmy Elsner NEGOTIATION
Chavez Y WieserArgentinaXuxue Feng NEGOTIATION
David C StensethArgentinaIvan Magalhaes RENEWAL
Johnson Q InouyeRussiaIvan Magalhaes NEGOTIATION
Maisha F GarufiAustraliaBernardo Dominic QUALIFIED
Costa S VenereBrazilStephen Shaw PROPOSAL
Morrow D ChuiFranceAmy Elsner QUALIFIED
Octavia Y KolmetzRussiaAsiya Javayant NEGOTIATION
Jennifer U FigeroaSpainAnna Fali PROPOSAL
Rodrigues L NestleJapanStephen Shaw UNQUALIFIED
Ivar K ButtFranceIvan Magalhaes RENEWAL
Ashley N SergiIndiaStephen Shaw QUALIFIED
Octavia W WieserFranceAmy Elsner NEGOTIATION
Rodrigues Z FigeroaJapanAsiya Javayant QUALIFIED
Emily W WaycottBrazilAmy Elsner NEGOTIATION
Tony D SergiUnited KingdomBernardo Dominic NEGOTIATION
Darci H SergiGermanyAsiya Javayant NEW
Munro Z SlusarskiJapanAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia C InouyeFranceAnna Fali UNQUALIFIED
Emily C MaletAustraliaAsiya Javayant PROPOSAL
Smith L RutaAustraliaIvan Magalhaes QUALIFIED
Mayumi Y DilliardBrazilOnyama Limba PROPOSAL
Leja Z RutaJapanIoni Bowcher QUALIFIED
Ricardo O TollnerCanadaAsiya Javayant PROPOSAL
Murillo I IturbideItalyIoni Bowcher NEW
Morrow X DilliardItalyXuxue Feng QUALIFIED
Jones G WhobreyRussiaBernardo Dominic RENEWAL
Jones S GauchoAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki T FigeroaUnited Kingdom2024-03-27King, Christopher A Esq NEGOTIATION63Amy Elsner
1001Jones N OstroskyJapan2024-03-21Dorl, James J Esq NEGOTIATION88Amy Elsner
1002Rodrigues X NickaItaly2024-04-10Truhlar And Truhlar Attys NEW81Amy Elsner
1003Johnson L RulapaughAustralia2024-04-05Feiner Bros NEW44Stephen Shaw
1004Costa N TollnerFrance2024-04-12Truhlar And Truhlar Attys QUALIFIED63Onyama Limba
1005Mujtaba H MaletFrance2024-04-02King, Christopher A Esq PROPOSAL31Ivan Magalhaes
1006Faith J CaudyAustralia2024-04-18Rangoni Of Florence PROPOSAL14Amy Elsner
1007Deepesh K WhobreyJapan2024-03-31Dorl, James J Esq RENEWAL71Ivan Magalhaes
1008Nicolas E AmigonBrazil2024-04-13Benton, John B Jr UNQUALIFIED18Ioni Bowcher
1009Johnson Z SlusarskiCanada2024-04-03Benton, John B Jr QUALIFIED99Ivan Magalhaes
1010Tony E CaldareraSpain2024-03-22Buckley Miller Wright NEGOTIATION62Anna Fali
1011Aika G CaudyRussia2024-04-04Morlong Associates NEGOTIATION90Ivan Magalhaes
1012David G MaletAustralia2024-03-29Chanay, Jeffrey A Esq UNQUALIFIED24Xuxue Feng
1013Misaki W SergiGermany2024-03-24Chapman, Ross E Esq NEGOTIATION40Amy Elsner
1014Faith T WhobreyGermany2024-03-24Dorl, James J Esq PROPOSAL72Ioni Bowcher
1015Aruna Q RutaSpain2024-03-31Feiner Bros RENEWAL78Amy Elsner
1016Murillo U GauchoRussia2024-03-22Feltz Printing Service NEW9Ioni Bowcher
1017Adams O MorascaBrazil2024-04-08Printing Dimensions NEW98Anna Fali
1018Julie J DoeUnited Kingdom2024-04-11Feiner Bros NEGOTIATION80Asiya Javayant
1019Kaitlin K MaletGermany2024-04-04Feltz Printing Service NEGOTIATION77Stephen Shaw
1020Rodrigues D BriddickSpain2024-03-26Benton, John B Jr UNQUALIFIED53Elwin Sharvill
1021Leon V MorascaJapan2024-04-10Printing Dimensions RENEWAL58Anna Fali
1022Aruna D SaylorsBrazil2024-04-11Commercial Press NEW6Xuxue Feng
1023Costa Z MorascaSpain2024-04-18Truhlar And Truhlar Attys NEW81Ioni Bowcher
1024Greenwood R BologniaCanada2024-04-09Buckley Miller Wright QUALIFIED62Xuxue Feng
1025Rodrigues W OstroskyCanada2024-03-24Buckley Miller Wright NEW13Amy Elsner
1026Izzy E WaycottGermany2024-04-15Chemel, James L Cpa RENEWAL37Elwin Sharvill
1027Ricardo B RutaBrazil2024-04-17Dorl, James J Esq UNQUALIFIED74Anna Fali
1028Mujtaba V StockhamCanada2024-04-18Chemel, James L Cpa PROPOSAL42Xuxue Feng
1029Salvatore T AlbaresIndia2024-03-22King, Christopher A Esq RENEWAL75Onyama Limba
1030Maria A KuskoItaly2024-04-16Rousseaux, Michael Esq RENEWAL14Anna Fali
1031Faith M AlbaresJapan2024-04-07Buckley Miller Wright QUALIFIED60Elwin Sharvill
1032Leon R OldroydJapan2024-04-06Buckley Miller Wright RENEWAL31Anna Fali
1033Isabel B StockhamSpain2024-04-03Benton, John B Jr RENEWAL45Onyama Limba
1034David I RimRussia2024-04-01Dorl, James J Esq NEW28Bernardo Dominic
1035Julie X WieserGermany2024-04-06Rangoni Of Florence UNQUALIFIED17Amy Elsner
1036Tony T AmigonItaly2024-03-27Buckley Miller Wright QUALIFIED84Onyama Limba
1037Isabel C TollnerCanada2024-04-03Buckley Miller Wright QUALIFIED35Elwin Sharvill
1038Aruna Q SergiGermany2024-04-03Truhlar And Truhlar Attys PROPOSAL31Amy Elsner
1039Cody Y OstroskyUnited Kingdom2024-03-23Buckley Miller Wright PROPOSAL75Ioni Bowcher
1040Isabel L GillianJapan2024-04-18Feiner Bros RENEWAL6Anna Fali
1041Salvatore V StensethSpain2024-04-14Buckley Miller Wright PROPOSAL25Stephen Shaw
1042Costa H VenereAustralia2024-04-11Chemel, James L Cpa NEW19Onyama Limba
1043Salvatore E MaletAustralia2024-04-08Benton, John B Jr QUALIFIED56Stephen Shaw
1044Greenwood R DilliardSpain2024-04-17Printing Dimensions NEGOTIATION31Onyama Limba
1045Octavia J SlusarskiUnited Kingdom2024-04-15Feltz Printing Service RENEWAL8Asiya Javayant
1046Emily I GarufiSpain2024-03-28Chapman, Ross E Esq QUALIFIED26Elwin Sharvill
1047Ivar Y NestleJapan2024-04-14Commercial Press QUALIFIED80Anna Fali
1048Juan M KolmetzSpain2024-04-18Commercial Press NEW28Stephen Shaw
1049Tony J FollerUnited Kingdom2024-04-11Rousseaux, Michael Esq RENEWAL87Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja U SergiJapanAnna Fali NEW
Mayumi Y FerenczCanadaOnyama Limba RENEWAL
Mayumi J PaprockiArgentinaAnna Fali RENEWAL
Maria H StockhamIndiaXuxue Feng PROPOSAL
Rodrigues Y ButtBrazilAnna Fali PROPOSAL
Costa M DarakjyArgentinaIoni Bowcher QUALIFIED
Rodrigues R GillianUnited KingdomStephen Shaw UNQUALIFIED
Cody Y MacleadGermanyBernardo Dominic NEW
Juan V MarrierIndiaElwin Sharvill UNQUALIFIED
Greenwood G SlusarskiSpainIoni Bowcher RENEWAL
Jeanfrancois X StockhamJapanIvan Magalhaes PROPOSAL
Faith J WieserBrazilIvan Magalhaes RENEWAL
Alejandro U MorascaIndiaIvan Magalhaes RENEWAL
Aditya D DilliardCanadaAmy Elsner QUALIFIED
Smith P MarrierJapanIoni Bowcher UNQUALIFIED
Jeanfrancois O MaletIndiaIoni Bowcher QUALIFIED
Greenwood P GauchoCanadaXuxue Feng UNQUALIFIED
Silvio U DarakjyGermanyBernardo Dominic NEW
Isabel Q RoysterIndiaOnyama Limba NEW
Munro J SaylorsArgentinaElwin Sharvill PROPOSAL
Aditya L AlbaresArgentinaElwin Sharvill QUALIFIED
Ashley I CampainIndiaElwin Sharvill NEW
Ashley Y FollerRussiaIoni Bowcher NEW
Maisha W FerenczUnited KingdomOnyama Limba RENEWAL
Aditya J StensethIndiaBernardo Dominic RENEWAL
Silvio G CaldareraJapanXuxue Feng NEGOTIATION
Isabel R CampainGermanyAsiya Javayant NEW
Deepesh J SaylorsGermanyStephen Shaw RENEWAL
Julie D BologniaSpainBernardo Dominic UNQUALIFIED
Clifford G BriddickFranceAsiya Javayant NEGOTIATION
Aditya U GillianUnited KingdomIvan Magalhaes PROPOSAL
Antonio H BologniaJapanOnyama Limba NEW
Silvio V VenereItalyOnyama Limba PROPOSAL
David F VocelkaRussiaIvan Magalhaes NEGOTIATION
Salvatore G MaletAustraliaAnna Fali RENEWAL
Aditya O BriddickUnited KingdomElwin Sharvill RENEWAL
James F FigeroaUnited KingdomAnna Fali QUALIFIED
Faith K ChuiJapanElwin Sharvill PROPOSAL
Munro V MaletSpainXuxue Feng NEGOTIATION
Stacey X FigeroaRussiaBernardo Dominic UNQUALIFIED
Tony C PerinGermanyAsiya Javayant NEW
Salvatore G KuskoCanadaBernardo Dominic UNQUALIFIED
Johnson H SchemmerGermanyAnna Fali NEW
Murillo T FlosiRussiaAsiya Javayant NEW
Adams N GauchoIndiaAmy Elsner RENEWAL
Smith R SchemmerAustraliaOnyama Limba NEGOTIATION
Antonio X PerinIndiaElwin Sharvill NEGOTIATION
Silvio F RulapaughItalyXuxue Feng PROPOSAL
Francesco B BowleyAustraliaBernardo Dominic QUALIFIED
Adams P GauchoSpainAmy Elsner QUALIFIED
Frozen Columns
Name
Tony G Doe
Jefferson Q Oldroyd
David P Slusarski
Ricardo C Briddick
Wickens S Oldroyd
Murillo I Paprocki
Claire Q Sergi
Claire K Bolognia
Johnson F Caudy
Misaki M Saylors
Misaki C Rim
Octavia W Dilliard
Kadeem M Briddick
Morrow V Rulapaugh
Arvin A Campain
Costa C Doe
Stacey F Bolognia
Morrow Y Saylors
Emily Q Ostrosky
Leja X Dilliard
Antonio L Gaucho
Antonio L Bolognia
David U Schemmer
Maisha A Malet
Ashley K Paprocki
Alejandro T Malet
Tony U Albares
Wickens X Briddick
Smith T Slusarski
Johnson I Nestle
Isabel I Darakjy
Deepesh P Bowley
Antonio B Maclead
Maria W Morasca
Smith D Gillian
Francesco E Caudy
Silvio Y Shinko
Leja B Venere
Johnson L Glick
Mayumi B Caudy
Greenwood S Ostrosky
Cody L Malet
Nicolas L Malet
Salvatore U Schemmer
Greenwood K Rulapaugh
Arvin K Chui
Chavez J Nicka
Claire V Caldarera
Nicolas A Slusarski
Faith H Campain
IdCountryDate
1000Italy2024-04-10
1001Russia2024-03-23
1002Russia2024-04-13
1003Italy2024-04-07
1004Argentina2024-04-15
1005Brazil2024-04-10
1006Canada2024-04-03
1007Japan2024-04-13
1008Canada2024-03-30
1009Germany2024-03-30
1010Germany2024-04-08
1011Japan2024-04-05
1012Australia2024-04-08
1013Australia2024-03-30
1014France2024-04-03
1015Brazil2024-03-27
1016Italy2024-04-02
1017Spain2024-04-12
1018Argentina2024-04-05
1019Japan2024-03-22
1020Russia2024-04-09
1021Italy2024-04-18
1022Germany2024-03-23
1023Australia2024-04-17
1024India2024-03-30
1025United Kingdom2024-04-05
1026Germany2024-03-20
1027Italy2024-04-05
1028Canada2024-03-23
1029France2024-04-14
1030India2024-04-08
1031Germany2024-03-22
1032Italy2024-04-12
1033France2024-04-09
1034Japan2024-03-21
1035United Kingdom2024-04-12
1036France2024-03-29
1037France2024-04-12
1038Argentina2024-03-24
1039Italy2024-03-28
1040Spain2024-03-25
1041United Kingdom2024-04-13
1042Australia2024-04-02
1043Russia2024-04-02
1044Brazil2024-03-27
1045United Kingdom2024-03-29
1046Spain2024-04-08
1047Canada2024-04-04
1048United Kingdom2024-04-10
1049United Kingdom2024-04-12

On-Demand Data

NameIdCountryDate
Rodrigues R Sergi1000Italy2024-04-06
Kaitlin P Briddick1001Brazil2024-04-18
Morrow D Caldarera1002Germany2024-04-14
Deepesh E Malet1003Italy2024-03-26
Misaki Q Rulapaugh1004Italy2024-04-16
Darci R Poquette1005India2024-03-30
Juan S Tollner1006Germany2024-04-01
Silvio J Ruta1007Australia2024-03-25
Smith L Garufi1008Japan2024-03-30
Cody H Nestle1009Japan2024-04-01
Murillo T Stockham1010Argentina2024-04-18
Silvio E Gaucho1011France2024-04-11
Jeanfrancois Q Kusko1012Argentina2024-03-31
Francesco C Ruta1013Russia2024-04-18
Alejandro C Gillian1014Spain2024-03-20
Rodrigues O Royster1015Italy2024-03-26
Kaitlin H Waycott1016Canada2024-03-28
Jones O Butt1017Argentina2024-03-24
Claire F Foller1018Spain2024-04-17
Darci X Kolmetz1019Brazil2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem X RutaArgentinaStephen Shaw NEGOTIATION
Emily J RoysterBrazilXuxue Feng UNQUALIFIED
Francesco B WieserJapanIvan Magalhaes RENEWAL
Emily E DoeRussiaOnyama Limba NEGOTIATION
Smith A SaylorsAustraliaStephen Shaw QUALIFIED
Silvio J VocelkaAustraliaIoni Bowcher UNQUALIFIED
Juan B MaletSpainAmy Elsner QUALIFIED
Kaitlin S SergiIndiaAsiya Javayant RENEWAL
Julie H RoysterSpainElwin Sharvill UNQUALIFIED
Julie S ButtItalyElwin Sharvill PROPOSAL
Ashley C WieserGermanyIoni Bowcher NEW
Francesco P KolmetzArgentinaBernardo Dominic NEGOTIATION
Costa Q TollnerUnited KingdomStephen Shaw RENEWAL
Morrow L WieserArgentinaOnyama Limba NEGOTIATION
Emily F SergiUnited KingdomBernardo Dominic PROPOSAL
Octavia O CaldareraItalyIvan Magalhaes PROPOSAL
Maria P NestleJapanOnyama Limba QUALIFIED
Maria Z IturbideArgentinaElwin Sharvill QUALIFIED
Ashley M CaldareraCanadaStephen Shaw QUALIFIED
Wickens M StensethJapanElwin Sharvill UNQUALIFIED
Jeanfrancois V StockhamArgentinaElwin Sharvill RENEWAL
Octavia N SlusarskiArgentinaAsiya Javayant PROPOSAL
Wickens W SlusarskiUnited KingdomElwin Sharvill RENEWAL
Antonio S NickaFranceIvan Magalhaes UNQUALIFIED
Claire Q DilliardItalyElwin Sharvill NEGOTIATION
Kaitlin M IturbideBrazilAmy Elsner QUALIFIED
Maria Q BriddickIndiaOnyama Limba PROPOSAL
Alejandro C CaldareraCanadaXuxue Feng RENEWAL
Julie D IturbideIndiaOnyama Limba UNQUALIFIED
Darci Y WaycottUnited KingdomIoni Bowcher RENEWAL
Munro A WaycottFranceElwin Sharvill QUALIFIED
Aruna L WieserJapanElwin Sharvill NEW
Mujtaba C InouyeItalyElwin Sharvill QUALIFIED
Nicolas M VenereJapanAnna Fali NEW
Rodrigues A CaudyRussiaAnna Fali NEW
Izzy P DoeIndiaAnna Fali RENEWAL
Isabel G RoysterArgentinaAnna Fali PROPOSAL
Kadeem F FlosiItalyOnyama Limba QUALIFIED
David I MaletCanadaStephen Shaw RENEWAL
Rodrigues Y RulapaughRussiaBernardo Dominic 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>