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
Jefferson F SaylorsJapanStephen Shaw RENEWAL
Alejandro K DoeGermanyAmy Elsner NEW
Greenwood B OstroskyAustraliaIoni Bowcher PROPOSAL
Jefferson W MarrierIndiaAmy Elsner PROPOSAL
Isabel D GlickCanadaAnna Fali RENEWAL
Sinclair V SchemmerBrazilStephen Shaw UNQUALIFIED
Aika J RutaBrazilAmy Elsner RENEWAL
Murillo K PoquetteItalyOnyama Limba RENEWAL
Stacey T SergiBrazilOnyama Limba RENEWAL
Morrow P RutaRussiaBernardo Dominic RENEWAL
Maria E RoysterRussiaXuxue Feng NEGOTIATION
Greenwood N MarrierIndiaBernardo Dominic NEGOTIATION
Sinclair L ButtGermanyElwin Sharvill RENEWAL
Isabel M SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Jennifer I GillianBrazilIvan Magalhaes NEGOTIATION
Chavez I PaprockiGermanyElwin Sharvill PROPOSAL
Adams F SlusarskiJapanOnyama Limba RENEWAL
Jennifer M OstroskyIndiaStephen Shaw NEW
Aditya X WaycottGermanyIvan Magalhaes UNQUALIFIED
Tony S ChuiBrazilElwin Sharvill RENEWAL
Chavez C PerinGermanyStephen Shaw NEGOTIATION
Leja S CampainJapanAmy Elsner UNQUALIFIED
Deepesh Q GillianAustraliaAnna Fali NEW
Stacey W AlbaresAustraliaXuxue Feng RENEWAL
Arvin I RutaItalyElwin Sharvill UNQUALIFIED
Johnson O BowleyArgentinaElwin Sharvill QUALIFIED
Ashley P SaylorsCanadaElwin Sharvill UNQUALIFIED
Leja J MorascaArgentinaIoni Bowcher NEGOTIATION
Aditya H GillianRussiaAnna Fali NEW
Stacey G PoquetteBrazilIoni Bowcher PROPOSAL
Adams N CampainIndiaBernardo Dominic RENEWAL
Greenwood P GillianArgentinaOnyama Limba QUALIFIED
Wickens P AlbaresSpainXuxue Feng PROPOSAL
Sinclair V VenereSpainBernardo Dominic PROPOSAL
Leja M AmigonAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba M MaletIndiaStephen Shaw NEGOTIATION
Mayumi O NickaAustraliaElwin Sharvill NEW
Aika R PaprockiGermanyIoni Bowcher NEW
Julie K RutaFranceAmy Elsner QUALIFIED
Ricardo N NestleAustraliaIvan Magalhaes NEW
Aika I VocelkaUnited KingdomElwin Sharvill QUALIFIED
Ivar O WieserJapanOnyama Limba RENEWAL
Tony U FlosiCanadaAmy Elsner NEW
Clifford H MacleadArgentinaAsiya Javayant NEGOTIATION
Morrow R KolmetzUnited KingdomIoni Bowcher NEW
Jefferson K WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi L AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Maria M SchemmerGermanyAmy Elsner NEW
Arvin R DarakjyCanadaXuxue Feng UNQUALIFIED
Jennifer T FigeroaCanadaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair B CaldareraJapanAmy Elsner NEGOTIATION
Ricardo S FollerFranceIoni Bowcher QUALIFIED
Jennifer U StockhamAustraliaAmy Elsner NEGOTIATION
Munro A NestleItalyAsiya Javayant UNQUALIFIED
Kadeem J WhobreyItalyXuxue Feng QUALIFIED
Kaitlin B FerenczUnited KingdomStephen Shaw NEGOTIATION
Clifford P InouyeItalyXuxue Feng NEW
Juan A GlickRussiaIvan Magalhaes RENEWAL
Faith L MacleadJapanStephen Shaw RENEWAL
Ivar Z ButtRussiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar V SaylorsJapan2024-03-27Chanay, Jeffrey A Esq QUALIFIED24Onyama Limba
1001Wickens M VenereArgentina2024-04-01King, Christopher A Esq PROPOSAL15Ivan Magalhaes
1002Julie X PoquetteGermany2024-04-22Commercial Press PROPOSAL25Amy Elsner
1003Leon W MorascaUnited Kingdom2024-04-19Chanay, Jeffrey A Esq NEGOTIATION69Xuxue Feng
1004Jeanfrancois C ShinkoRussia2024-03-31Benton, John B Jr QUALIFIED31Ioni Bowcher
1005Jones C MarrierBrazil2024-04-08Truhlar And Truhlar Attys QUALIFIED16Ivan Magalhaes
1006Morrow L DarakjyGermany2024-04-23Morlong Associates PROPOSAL40Asiya Javayant
1007Leja E FollerJapan2024-04-02Printing Dimensions PROPOSAL36Anna Fali
1008Claire L MorascaArgentina2024-03-28Benton, John B Jr PROPOSAL48Anna Fali
1009James X PoquetteUnited Kingdom2024-04-07Rangoni Of Florence UNQUALIFIED92Amy Elsner
1010Ivar T StensethBrazil2024-04-20Feiner Bros NEGOTIATION87Onyama Limba
1011Maria A SlusarskiJapan2024-04-05Truhlar And Truhlar Attys QUALIFIED24Bernardo Dominic
1012Arvin K WhobreyIndia2024-04-08Benton, John B Jr PROPOSAL81Elwin Sharvill
1013Aditya R BriddickCanada2024-03-26Dorl, James J Esq QUALIFIED64Xuxue Feng
1014Deepesh T AlbaresGermany2024-03-27Chapman, Ross E Esq QUALIFIED99Bernardo Dominic
1015Emily I CampainJapan2024-03-27Feltz Printing Service QUALIFIED61Xuxue Feng
1016Darci I IturbideRussia2024-04-20Feltz Printing Service NEW46Ioni Bowcher
1017Salvatore M GauchoBrazil2024-04-17Printing Dimensions NEW12Asiya Javayant
1018Isabel F NickaAustralia2024-04-14Truhlar And Truhlar Attys QUALIFIED40Onyama Limba
1019David C RimGermany2024-03-25Dorl, James J Esq PROPOSAL28Bernardo Dominic
1020Leon G SaylorsArgentina2024-04-11Morlong Associates QUALIFIED37Amy Elsner
1021Julie S KuskoSpain2024-04-21Chapman, Ross E Esq PROPOSAL31Ioni Bowcher
1022Adams X SaylorsFrance2024-04-11Feltz Printing Service PROPOSAL99Stephen Shaw
1023Julie T PerinIndia2024-04-09Chemel, James L Cpa NEW85Onyama Limba
1024Isabel P WieserJapan2024-04-18Chemel, James L Cpa QUALIFIED80Onyama Limba
1025Johnson B NestleAustralia2024-04-10Commercial Press NEW96Xuxue Feng
1026Greenwood V ChuiGermany2024-03-29Rousseaux, Michael Esq RENEWAL46Anna Fali
1027Leon J VenereUnited Kingdom2024-04-18Rousseaux, Michael Esq NEGOTIATION50Amy Elsner
1028Stacey J FlosiBrazil2024-04-22Rangoni Of Florence RENEWAL23Ioni Bowcher
1029Ricardo K StockhamBrazil2024-04-13Chanay, Jeffrey A Esq UNQUALIFIED84Xuxue Feng
1030Costa V RulapaughRussia2024-04-03Buckley Miller Wright NEGOTIATION35Amy Elsner
1031Mujtaba D FigeroaAustralia2024-04-03Buckley Miller Wright PROPOSAL85Elwin Sharvill
1032Izzy R BologniaSpain2024-03-29Commercial Press PROPOSAL55Ivan Magalhaes
1033Rodrigues S SergiFrance2024-03-27Morlong Associates NEW28Xuxue Feng
1034Claire K TollnerItaly2024-03-27Dorl, James J Esq UNQUALIFIED70Amy Elsner
1035Rodrigues B GillianFrance2024-04-23Rangoni Of Florence PROPOSAL75Ivan Magalhaes
1036Aika G CaldareraAustralia2024-04-04Rangoni Of Florence NEGOTIATION35Amy Elsner
1037Aditya G PoquetteFrance2024-04-01Truhlar And Truhlar Attys RENEWAL13Stephen Shaw
1038Jefferson K GauchoJapan2024-04-21King, Christopher A Esq PROPOSAL76Xuxue Feng
1039Aika R StockhamGermany2024-04-02Morlong Associates UNQUALIFIED59Stephen Shaw
1040Jennifer E DilliardRussia2024-03-29Feiner Bros NEW14Stephen Shaw
1041Greenwood K ChuiSpain2024-03-31Chemel, James L Cpa PROPOSAL77Xuxue Feng
1042Aruna K PaprockiItaly2024-03-26Rangoni Of Florence NEW22Amy Elsner
1043Juan J PoquetteFrance2024-04-11Feltz Printing Service PROPOSAL35Ivan Magalhaes
1044Leon N SlusarskiGermany2024-04-06Morlong Associates QUALIFIED11Asiya Javayant
1045Arvin G GauchoIndia2024-04-07Dorl, James J Esq NEGOTIATION66Anna Fali
1046Stacey W GauchoJapan2024-04-12Printing Dimensions PROPOSAL2Stephen Shaw
1047Darci T RulapaughJapan2024-03-25Morlong Associates UNQUALIFIED69Xuxue Feng
1048Aruna T MarrierJapan2024-04-10Printing Dimensions NEGOTIATION28Amy Elsner
1049Leja P GarufiCanada2024-04-12Feltz Printing Service RENEWAL21Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aditya H IturbideFranceElwin Sharvill NEGOTIATION
Aditya K CampainJapanOnyama Limba PROPOSAL
Munro U CaudyIndiaXuxue Feng UNQUALIFIED
Jennifer G CaldareraUnited KingdomAmy Elsner NEGOTIATION
Clifford B AmigonAustraliaIvan Magalhaes NEW
Darci U RoysterFranceOnyama Limba NEW
Emily M SlusarskiArgentinaAnna Fali UNQUALIFIED
Mayumi Q MacleadUnited KingdomStephen Shaw NEW
Stacey L AmigonUnited KingdomOnyama Limba QUALIFIED
Claire H CaldareraAustraliaIoni Bowcher UNQUALIFIED
Cody F BowleyBrazilOnyama Limba QUALIFIED
Isabel B CaldareraUnited KingdomBernardo Dominic PROPOSAL
Jefferson D PaprockiFranceBernardo Dominic UNQUALIFIED
Jones K AlbaresRussiaStephen Shaw QUALIFIED
Emily W MaletCanadaIoni Bowcher QUALIFIED
Julie K SaylorsArgentinaElwin Sharvill NEW
Mayumi F OstroskyAustraliaAnna Fali UNQUALIFIED
Clifford H MaletAustraliaAsiya Javayant NEGOTIATION
Ricardo Z CaudyRussiaOnyama Limba NEGOTIATION
Murillo Z SergiAustraliaIoni Bowcher PROPOSAL
Tony P StockhamArgentinaAnna Fali NEW
Misaki Z MarrierCanadaBernardo Dominic NEW
David H DarakjyCanadaAnna Fali NEW
Emily W WaycottAustraliaAsiya Javayant RENEWAL
Nicolas D MorascaUnited KingdomStephen Shaw PROPOSAL
Julie B ShinkoJapanBernardo Dominic UNQUALIFIED
Costa W MaletBrazilIvan Magalhaes UNQUALIFIED
Maisha Z ShinkoCanadaIvan Magalhaes UNQUALIFIED
Aika P MaletSpainOnyama Limba UNQUALIFIED
Emily W KuskoGermanyStephen Shaw NEW
Adams D VocelkaCanadaElwin Sharvill UNQUALIFIED
Nicolas E GauchoRussiaOnyama Limba NEGOTIATION
Aditya N SlusarskiArgentinaAmy Elsner UNQUALIFIED
Arvin U RulapaughGermanyOnyama Limba PROPOSAL
Antonio I OstroskySpainIoni Bowcher PROPOSAL
Chavez U KolmetzAustraliaStephen Shaw RENEWAL
Emily C DilliardGermanyOnyama Limba PROPOSAL
Jennifer D PerinBrazilElwin Sharvill UNQUALIFIED
Maria G FerenczItalyOnyama Limba PROPOSAL
Antonio X ChuiJapanBernardo Dominic NEW
Jones N GillianBrazilBernardo Dominic NEW
Nicolas T OldroydUnited KingdomAnna Fali NEGOTIATION
Aika K IturbideSpainIoni Bowcher QUALIFIED
Izzy O GlickAustraliaStephen Shaw RENEWAL
Ricardo P OstroskyItalyIoni Bowcher NEW
Murillo D RimGermanyBernardo Dominic NEGOTIATION
Wickens I OldroydFranceXuxue Feng UNQUALIFIED
Deepesh L MaletGermanyStephen Shaw UNQUALIFIED
Maisha M MorascaGermanyStephen Shaw QUALIFIED
Munro Y FlosiIndiaAsiya Javayant RENEWAL
Frozen Columns
Name
Leja N Ferencz
Antonio M Paprocki
Murillo P Campain
Maria I Perin
Misaki A Perin
Jennifer F Shinko
Rodrigues Y Marrier
Johnson F Royster
Emily H Dilliard
Isabel B Marrier
Sinclair K Inouye
James Q Venere
Rodrigues Y Foller
Alejandro H Bolognia
Munro O Vocelka
Ivar L Darakjy
Jeanfrancois X Saylors
Maisha I Inouye
Isabel O Poquette
Leon T Iturbide
Stacey E Gillian
Deepesh S Slusarski
Darci N Gillian
Antonio X Amigon
Juan I Venere
Juan G Paprocki
Aruna M Bolognia
Izzy Q Rulapaugh
Leon M Amigon
David E Figeroa
Murillo P Foller
Maria U Perin
Ivar B Saylors
Maria K Briddick
Antonio G Sergi
Murillo M Stockham
Mayumi R Bowley
Aika D Sergi
James I Amigon
Costa G Marrier
Munro B Morasca
Mujtaba A Marrier
Isabel D Kusko
Jennifer R Bolognia
Sinclair Y Caldarera
Smith A Briddick
Stacey Z Shinko
Arvin S Butt
Maisha K Stockham
Morrow J Kolmetz
IdCountryDate
1000Brazil2024-03-27
1001Australia2024-03-25
1002Argentina2024-04-03
1003Germany2024-03-30
1004Russia2024-04-15
1005Italy2024-04-08
1006Canada2024-04-21
1007Brazil2024-04-11
1008Japan2024-04-05
1009Spain2024-03-29
1010Brazil2024-04-22
1011Spain2024-04-14
1012Canada2024-03-28
1013France2024-04-21
1014Germany2024-04-01
1015Australia2024-04-13
1016Spain2024-04-09
1017Italy2024-04-01
1018Argentina2024-04-20
1019Japan2024-03-28
1020United Kingdom2024-04-18
1021India2024-03-26
1022India2024-04-23
1023Germany2024-04-21
1024India2024-04-23
1025India2024-04-05
1026United Kingdom2024-03-30
1027Argentina2024-03-27
1028Russia2024-04-19
1029Russia2024-04-05
1030France2024-04-22
1031France2024-03-25
1032Russia2024-04-20
1033Brazil2024-04-14
1034Russia2024-04-19
1035Canada2024-03-29
1036Canada2024-04-11
1037India2024-03-26
1038Spain2024-04-18
1039Australia2024-03-30
1040Germany2024-04-11
1041Spain2024-04-13
1042Brazil2024-03-27
1043India2024-04-03
1044Japan2024-04-15
1045United Kingdom2024-04-20
1046Australia2024-03-26
1047Russia2024-03-30
1048Argentina2024-04-10
1049Japan2024-03-29

On-Demand Data

NameIdCountryDate
Ashley C Waycott1000Russia2024-04-11
Julie L Gaucho1001Japan2024-03-26
Stacey Y Chui1002India2024-04-14
Johnson Q Kusko1003Australia2024-04-13
Greenwood G Figeroa1004Canada2024-04-09
Isabel Q Inouye1005Germany2024-04-08
Leon I Perin1006Japan2024-04-16
Costa S Sergi1007Brazil2024-04-13
Claire U Whobrey1008Argentina2024-04-17
Tony S Kusko1009United Kingdom2024-03-28
Adams H Ostrosky1010France2024-04-21
Deepesh Y Slusarski1011Brazil2024-04-08
Jeanfrancois K Ruta1012India2024-04-01
Clifford E Morasca1013Spain2024-04-07
Octavia W Nicka1014Italy2024-04-23
Ivar J Royster1015Japan2024-03-29
Jennifer N Stenseth1016Spain2024-04-05
Octavia D Glick1017Japan2024-04-14
Nicolas F Poquette1018Russia2024-04-02
Chavez J Caudy1019Russia2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Z WieserGermanyAsiya Javayant UNQUALIFIED
James B SchemmerCanadaAsiya Javayant RENEWAL
Salvatore W KuskoIndiaBernardo Dominic NEGOTIATION
Maisha I ButtSpainIvan Magalhaes QUALIFIED
Antonio G KuskoGermanyStephen Shaw PROPOSAL
Francesco O CaldareraArgentinaIoni Bowcher UNQUALIFIED
Ashley I RulapaughArgentinaOnyama Limba PROPOSAL
Maria X CaldareraUnited KingdomBernardo Dominic NEGOTIATION
Nicolas L ButtGermanyXuxue Feng QUALIFIED
Ivar P IturbideSpainElwin Sharvill PROPOSAL
Clifford W SlusarskiCanadaIoni Bowcher RENEWAL
Jennifer R FerenczSpainXuxue Feng UNQUALIFIED
Faith A RutaIndiaBernardo Dominic QUALIFIED
Aika Y CampainAustraliaAsiya Javayant QUALIFIED
Nicolas Q MaletGermanyElwin Sharvill RENEWAL
Darci Q PoquetteUnited KingdomXuxue Feng PROPOSAL
Aruna K FollerItalyXuxue Feng QUALIFIED
Tony A BowleyAustraliaStephen Shaw QUALIFIED
Claire U GarufiItalyOnyama Limba QUALIFIED
Deepesh N IturbideAustraliaBernardo Dominic QUALIFIED
Kadeem O StockhamItalyAnna Fali QUALIFIED
Misaki Z PerinJapanIvan Magalhaes UNQUALIFIED
Jefferson N GlickItalyOnyama Limba RENEWAL
Clifford B RulapaughUnited KingdomOnyama Limba QUALIFIED
Kaitlin T GlickRussiaElwin Sharvill PROPOSAL
James I RulapaughFranceAsiya Javayant NEW
Aika Q ChuiSpainAmy Elsner NEW
Maisha I DilliardRussiaElwin Sharvill UNQUALIFIED
Aruna C FlosiGermanyXuxue Feng PROPOSAL
Aditya O GarufiBrazilAnna Fali PROPOSAL
Nicolas L CaudyRussiaAmy Elsner UNQUALIFIED
Nicolas Z BologniaFranceIvan Magalhaes QUALIFIED
Adams X StockhamSpainOnyama Limba QUALIFIED
Ricardo R DoeUnited KingdomStephen Shaw QUALIFIED
Maria G SaylorsJapanIvan Magalhaes NEGOTIATION
Aika M CaudyArgentinaAmy Elsner UNQUALIFIED
Costa M WhobreyFranceBernardo Dominic QUALIFIED
Leja X PaprockiFranceIoni Bowcher NEGOTIATION
Mujtaba E SaylorsFranceAmy Elsner NEW
Jefferson P CaldareraGermanyIoni Bowcher 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>