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 S SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Leja J SaylorsGermanyIvan Magalhaes PROPOSAL
David X FollerFranceBernardo Dominic NEW
Aruna C AlbaresUnited KingdomIoni Bowcher QUALIFIED
Kadeem B TollnerUnited KingdomElwin Sharvill NEW
Morrow U WieserSpainElwin Sharvill NEGOTIATION
Morrow E ButtGermanyStephen Shaw PROPOSAL
James L BriddickSpainOnyama Limba RENEWAL
Nicolas K DilliardCanadaOnyama Limba NEGOTIATION
Clifford D CaldareraSpainAnna Fali QUALIFIED
Jefferson F RimCanadaIvan Magalhaes UNQUALIFIED
Mujtaba G KuskoFranceBernardo Dominic UNQUALIFIED
Alejandro Q FlosiSpainElwin Sharvill NEW
Leon M MaletIndiaXuxue Feng NEW
Kadeem W CaudyArgentinaAmy Elsner PROPOSAL
Juan Y ButtItalyIoni Bowcher RENEWAL
Jones C WhobreyGermanyIvan Magalhaes NEGOTIATION
Stacey H TollnerIndiaAmy Elsner PROPOSAL
Maria N SergiRussiaStephen Shaw NEW
Rodrigues J AmigonSpainOnyama Limba NEW
Costa Y CaudyJapanXuxue Feng NEGOTIATION
Izzy V MaletRussiaStephen Shaw RENEWAL
Smith L StockhamJapanAnna Fali QUALIFIED
Tony B RoysterFranceAnna Fali PROPOSAL
Sinclair S WaycottItalyBernardo Dominic NEW
Leon G CampainArgentinaElwin Sharvill PROPOSAL
Maisha N CampainJapanIoni Bowcher RENEWAL
Mayumi R SaylorsArgentinaBernardo Dominic NEW
Wickens K GauchoIndiaElwin Sharvill NEW
Leon O SaylorsIndiaOnyama Limba QUALIFIED
Octavia V WieserUnited KingdomElwin Sharvill PROPOSAL
Morrow U MarrierGermanyElwin Sharvill QUALIFIED
Faith E RimBrazilIvan Magalhaes NEW
Octavia Q CampainIndiaElwin Sharvill NEW
Claire K RutaItalyIvan Magalhaes NEGOTIATION
Sinclair O GarufiArgentinaAnna Fali UNQUALIFIED
Claire K ShinkoCanadaStephen Shaw QUALIFIED
Aditya H BriddickCanadaElwin Sharvill NEW
Jeanfrancois F IturbideAustraliaElwin Sharvill NEW
Silvio L GarufiArgentinaBernardo Dominic RENEWAL
Alejandro C OldroydRussiaIvan Magalhaes UNQUALIFIED
Maisha A MacleadGermanyOnyama Limba QUALIFIED
Greenwood W VocelkaCanadaXuxue Feng NEGOTIATION
Cody M VocelkaBrazilOnyama Limba UNQUALIFIED
Mujtaba T GlickAustraliaAmy Elsner QUALIFIED
Nicolas Y SaylorsUnited KingdomBernardo Dominic NEGOTIATION
Aditya W StensethJapanElwin Sharvill PROPOSAL
Chavez M BologniaSpainXuxue Feng NEW
Emily F AlbaresFranceAnna Fali NEW
Silvio D WieserIndiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Murillo E RutaUnited KingdomAmy Elsner NEW
Ivar R KuskoGermanyBernardo Dominic NEW
Maisha O MacleadAustraliaAnna Fali NEGOTIATION
Maisha F SchemmerJapanXuxue Feng PROPOSAL
Maisha Q WaycottGermanyElwin Sharvill NEW
Isabel W CaudyUnited KingdomBernardo Dominic PROPOSAL
Claire S MarrierRussiaAmy Elsner PROPOSAL
Jeanfrancois S SchemmerFranceStephen Shaw NEGOTIATION
Kaitlin Y OstroskyArgentinaAnna Fali PROPOSAL
Misaki K OstroskyJapanStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro Y NestleJapan2024-04-06Chanay, Jeffrey A Esq QUALIFIED69Asiya Javayant
1001Jennifer N MaletJapan2024-04-04Benton, John B Jr PROPOSAL83Anna Fali
1002Jefferson T SaylorsFrance2024-04-16Morlong Associates RENEWAL2Anna Fali
1003Ivar M WieserUnited Kingdom2024-04-07Benton, John B Jr NEGOTIATION79Anna Fali
1004Costa T SergiFrance2024-04-04Truhlar And Truhlar Attys UNQUALIFIED50Bernardo Dominic
1005Aika Q WieserUnited Kingdom2024-04-22King, Christopher A Esq PROPOSAL39Onyama Limba
1006Salvatore X StockhamGermany2024-04-10King, Christopher A Esq UNQUALIFIED39Ivan Magalhaes
1007Stacey E SchemmerGermany2024-04-23Chemel, James L Cpa RENEWAL59Amy Elsner
1008Juan Y WaycottRussia2024-04-20Chanay, Jeffrey A Esq PROPOSAL55Anna Fali
1009Juan Z WhobreyGermany2024-04-24Feltz Printing Service NEGOTIATION43Xuxue Feng
1010Aditya Q FollerCanada2024-03-30Rangoni Of Florence NEW14Amy Elsner
1011Alejandro C BologniaArgentina2024-04-20Chapman, Ross E Esq NEGOTIATION57Anna Fali
1012Clifford K GarufiBrazil2024-04-20Chanay, Jeffrey A Esq QUALIFIED84Anna Fali
1013Jones Y GarufiBrazil2024-03-28Morlong Associates NEW13Amy Elsner
1014Mayumi H PaprockiItaly2024-04-03Truhlar And Truhlar Attys RENEWAL12Elwin Sharvill
1015Aditya M MorascaIndia2024-04-12Truhlar And Truhlar Attys NEGOTIATION82Stephen Shaw
1016Salvatore N AlbaresGermany2024-03-30Chapman, Ross E Esq NEGOTIATION2Anna Fali
1017Costa J WhobreyArgentina2024-04-04Buckley Miller Wright RENEWAL7Onyama Limba
1018Stacey P AmigonJapan2024-03-30Buckley Miller Wright RENEWAL97Amy Elsner
1019Tony B VenereAustralia2024-04-18Truhlar And Truhlar Attys RENEWAL36Xuxue Feng
1020Deepesh M SchemmerBrazil2024-04-10Truhlar And Truhlar Attys RENEWAL16Elwin Sharvill
1021Maisha V WieserBrazil2024-04-12King, Christopher A Esq UNQUALIFIED79Xuxue Feng
1022Sinclair U MaletBrazil2024-04-12Buckley Miller Wright NEGOTIATION6Onyama Limba
1023Aruna B GlickIndia2024-04-03Truhlar And Truhlar Attys QUALIFIED87Amy Elsner
1024Chavez M MacleadIndia2024-03-27Feiner Bros UNQUALIFIED9Stephen Shaw
1025Julie B DilliardUnited Kingdom2024-04-24Rousseaux, Michael Esq NEW82Onyama Limba
1026Arvin C StockhamGermany2024-04-02Truhlar And Truhlar Attys PROPOSAL97Ioni Bowcher
1027Sinclair R IturbideBrazil2024-04-18Chapman, Ross E Esq NEGOTIATION94Amy Elsner
1028Nicolas R RoysterSpain2024-03-28King, Christopher A Esq RENEWAL53Bernardo Dominic
1029Jefferson H FollerGermany2024-04-09Printing Dimensions NEGOTIATION58Asiya Javayant
1030Ashley T WhobreyCanada2024-03-30Morlong Associates UNQUALIFIED81Anna Fali
1031Ricardo T KolmetzItaly2024-04-10Buckley Miller Wright PROPOSAL65Ivan Magalhaes
1032Stacey E MaletItaly2024-04-13Benton, John B Jr PROPOSAL58Anna Fali
1033Rodrigues G SergiAustralia2024-04-16Rangoni Of Florence UNQUALIFIED98Stephen Shaw
1034Morrow M MacleadJapan2024-04-11Rangoni Of Florence NEGOTIATION4Asiya Javayant
1035Cody E RutaFrance2024-03-30Rangoni Of Florence UNQUALIFIED21Ivan Magalhaes
1036Johnson C SchemmerArgentina2024-04-13King, Christopher A Esq PROPOSAL23Asiya Javayant
1037Leja U DarakjyRussia2024-03-30Feiner Bros NEGOTIATION4Amy Elsner
1038James T SaylorsUnited Kingdom2024-04-14Buckley Miller Wright RENEWAL79Xuxue Feng
1039Chavez U StensethAustralia2024-04-18Chapman, Ross E Esq RENEWAL67Xuxue Feng
1040Costa P GlickIndia2024-04-10Chemel, James L Cpa NEGOTIATION68Elwin Sharvill
1041Octavia O GlickJapan2024-04-16King, Christopher A Esq NEGOTIATION26Onyama Limba
1042Maisha V AmigonRussia2024-03-28Rangoni Of Florence NEW11Onyama Limba
1043Wickens M VocelkaRussia2024-04-16Printing Dimensions NEW48Asiya Javayant
1044Arvin V PoquetteItaly2024-04-19Feltz Printing Service PROPOSAL5Stephen Shaw
1045Wickens B MacleadRussia2024-04-07Rousseaux, Michael Esq PROPOSAL67Anna Fali
1046Salvatore N SergiIndia2024-03-28Printing Dimensions NEGOTIATION58Ivan Magalhaes
1047Maria N WieserUnited Kingdom2024-04-18Chemel, James L Cpa NEGOTIATION20Onyama Limba
1048Rodrigues Z GarufiUnited Kingdom2024-04-07Benton, John B Jr PROPOSAL69Ivan Magalhaes
1049Leon B BowleyBrazil2024-04-22Truhlar And Truhlar Attys PROPOSAL90Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow B WieserArgentinaAsiya Javayant NEGOTIATION
Arvin S MacleadItalyOnyama Limba NEW
Nicolas U SaylorsAustraliaIvan Magalhaes RENEWAL
Morrow I GlickGermanyIoni Bowcher RENEWAL
Misaki S FollerUnited KingdomOnyama Limba NEW
Tony V FollerArgentinaAmy Elsner RENEWAL
Emily A VenereItalyAsiya Javayant NEW
Claire I GillianJapanAsiya Javayant RENEWAL
Arvin M MaletItalyAnna Fali NEW
Nicolas X OldroydSpainBernardo Dominic NEW
Aika E OldroydRussiaStephen Shaw NEW
Aika I MaletRussiaOnyama Limba NEGOTIATION
Silvio F OstroskyFranceAsiya Javayant PROPOSAL
Wickens L SlusarskiGermanyIvan Magalhaes PROPOSAL
Octavia C WieserFranceOnyama Limba NEGOTIATION
Sinclair K DarakjyArgentinaXuxue Feng NEW
Greenwood Q KuskoCanadaAsiya Javayant NEW
Leon Y PoquetteRussiaIoni Bowcher UNQUALIFIED
Faith I CaldareraJapanAsiya Javayant NEGOTIATION
Tony E FollerUnited KingdomIoni Bowcher QUALIFIED
Emily S InouyeCanadaOnyama Limba NEGOTIATION
Izzy L MorascaFranceAmy Elsner QUALIFIED
Jones V KolmetzGermanyIvan Magalhaes PROPOSAL
Jennifer W VenereIndiaAmy Elsner PROPOSAL
Octavia O KuskoGermanyBernardo Dominic RENEWAL
Clifford A KolmetzGermanyOnyama Limba UNQUALIFIED
Salvatore H SlusarskiFranceAmy Elsner NEGOTIATION
Cody F ButtIndiaOnyama Limba NEW
Cody F StockhamItalyBernardo Dominic PROPOSAL
Rodrigues X GlickAustraliaAnna Fali QUALIFIED
Antonio A GarufiJapanIvan Magalhaes RENEWAL
Claire D GauchoIndiaAnna Fali QUALIFIED
Kaitlin H AmigonSpainXuxue Feng NEGOTIATION
Jennifer A RulapaughCanadaOnyama Limba UNQUALIFIED
Antonio I ChuiUnited KingdomStephen Shaw UNQUALIFIED
Adams P WieserIndiaElwin Sharvill UNQUALIFIED
Julie R MaletUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair M CaldareraCanadaIvan Magalhaes PROPOSAL
James W PaprockiItalyAmy Elsner NEW
Johnson M StensethSpainElwin Sharvill QUALIFIED
Aditya L GlickRussiaXuxue Feng NEGOTIATION
Salvatore F WieserIndiaIoni Bowcher RENEWAL
Jefferson P PoquetteItalyIoni Bowcher UNQUALIFIED
Mujtaba M VocelkaRussiaOnyama Limba RENEWAL
Emily Q StensethCanadaStephen Shaw PROPOSAL
Julie L NickaIndiaElwin Sharvill PROPOSAL
Aika L TollnerJapanIoni Bowcher NEGOTIATION
Kadeem M KuskoArgentinaElwin Sharvill QUALIFIED
Costa N RoysterUnited KingdomAmy Elsner RENEWAL
Tony V BowleyItalyAsiya Javayant NEW
Frozen Columns
Name
Leja D Caudy
Claire E Ruta
Francesco I Stockham
Kaitlin N Bowley
James C Amigon
Sinclair N Dilliard
Johnson L Malet
Murillo E Rulapaugh
Greenwood J Briddick
Aruna K Rim
Arvin P Bolognia
Nicolas P Butt
Leon N Nestle
Murillo M Waycott
Juan V Ruta
Isabel N Nicka
Nicolas O Malet
Mayumi L Bowley
Johnson J Vocelka
Costa B Rim
Leon L Stockham
Rodrigues F Dilliard
Kaitlin L Royster
Aika G Kolmetz
Mayumi N Nestle
Leja Z Darakjy
Chavez N Inouye
Maisha J Nestle
Ricardo W Stockham
David B Saylors
Izzy A Kusko
Clifford J Saylors
Nicolas L Amigon
Morrow M Ostrosky
Smith E Briddick
Morrow W Tollner
Jones Z Oldroyd
Francesco O Maclead
Aditya G Shinko
Stacey R Amigon
Ashley R Campain
Aika A Malet
Aruna V Malet
Octavia M Nicka
Ricardo N Caudy
Smith Q Gaucho
Ricardo H Sergi
Stacey V Figeroa
Jefferson J Tollner
Deepesh U Tollner
IdCountryDate
1000Italy2024-04-10
1001Brazil2024-04-10
1002France2024-03-28
1003Russia2024-04-20
1004India2024-04-04
1005Japan2024-04-02
1006India2024-04-23
1007Australia2024-04-22
1008France2024-04-24
1009Germany2024-04-21
1010Canada2024-04-18
1011France2024-04-03
1012Spain2024-04-06
1013Japan2024-03-27
1014Australia2024-04-24
1015Spain2024-04-08
1016France2024-04-08
1017Argentina2024-04-08
1018Spain2024-04-02
1019Germany2024-04-11
1020Italy2024-04-01
1021Argentina2024-03-29
1022Spain2024-04-23
1023France2024-04-07
1024France2024-04-03
1025India2024-04-23
1026Japan2024-04-12
1027Argentina2024-04-15
1028Japan2024-04-09
1029Spain2024-04-12
1030Spain2024-04-10
1031France2024-04-10
1032Argentina2024-04-12
1033Japan2024-04-13
1034Italy2024-04-03
1035Russia2024-03-27
1036Argentina2024-04-15
1037India2024-03-30
1038Italy2024-04-19
1039Spain2024-04-16
1040Australia2024-04-17
1041Germany2024-03-30
1042India2024-04-22
1043India2024-04-21
1044Canada2024-04-12
1045Japan2024-04-07
1046Canada2024-03-30
1047France2024-04-13
1048Canada2024-04-23
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Johnson J Wieser1000Brazil2024-04-24
Morrow P Doe1001France2024-03-27
Ivar P Rim1002United Kingdom2024-04-12
Julie T Poquette1003Italy2024-04-04
Kadeem N Foller1004Japan2024-04-01
Kadeem J Albares1005Argentina2024-03-29
Costa T Butt1006Argentina2024-04-18
Leon Y Tollner1007Canada2024-03-27
Adams G Sergi1008France2024-04-20
Morrow S Paprocki1009Italy2024-03-27
Clifford J Whobrey1010Spain2024-04-11
Alejandro R Dilliard1011Germany2024-03-27
Greenwood G Gaucho1012France2024-03-27
Tony O Morasca1013Brazil2024-04-01
Aika A Inouye1014United Kingdom2024-04-21
Leon W Royster1015Brazil2024-04-24
Julie I Schemmer1016Russia2024-04-03
Aruna Z Gillian1017Russia2024-03-27
Julie H Campain1018Australia2024-04-07
Ricardo J Ruta1019Italy2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria V SaylorsGermanyOnyama Limba QUALIFIED
Morrow G GlickAustraliaStephen Shaw QUALIFIED
David G GarufiGermanyElwin Sharvill UNQUALIFIED
Alejandro J GlickJapanOnyama Limba RENEWAL
Jennifer W PoquetteSpainStephen Shaw PROPOSAL
Sinclair X StensethCanadaIvan Magalhaes NEW
Nicolas A PaprockiSpainOnyama Limba PROPOSAL
Mujtaba A SchemmerCanadaAnna Fali QUALIFIED
Jefferson W FollerCanadaBernardo Dominic NEW
Maria S SaylorsCanadaAmy Elsner UNQUALIFIED
Juan R GlickJapanAmy Elsner QUALIFIED
Silvio E NestleItalyBernardo Dominic NEGOTIATION
Claire P KuskoIndiaAmy Elsner NEW
Kaitlin Z InouyeBrazilAnna Fali NEW
Adams S RulapaughIndiaIoni Bowcher QUALIFIED
Claire E VenereAustraliaStephen Shaw RENEWAL
Julie X FigeroaRussiaBernardo Dominic QUALIFIED
Nicolas Y BriddickUnited KingdomAmy Elsner RENEWAL
Costa Z GarufiFranceStephen Shaw NEGOTIATION
Jennifer S FerenczBrazilAmy Elsner NEGOTIATION
Stacey N FlosiIndiaOnyama Limba UNQUALIFIED
Murillo Z MarrierBrazilIoni Bowcher RENEWAL
Smith N SaylorsFranceIvan Magalhaes RENEWAL
Ashley E DoeJapanXuxue Feng QUALIFIED
Adams O SlusarskiSpainIvan Magalhaes QUALIFIED
Antonio C KolmetzBrazilIoni Bowcher NEW
Wickens G RulapaughIndiaElwin Sharvill NEW
Mayumi P VenereFranceElwin Sharvill QUALIFIED
Chavez B OldroydBrazilXuxue Feng NEW
Aika V DoeItalyXuxue Feng QUALIFIED
Aditya D CaldareraUnited KingdomAnna Fali NEGOTIATION
Francesco G FollerFranceXuxue Feng NEGOTIATION
Murillo N FlosiBrazilOnyama Limba PROPOSAL
Deepesh K PerinArgentinaAmy Elsner QUALIFIED
Stacey G VocelkaGermanyBernardo Dominic RENEWAL
Isabel S IturbideSpainBernardo Dominic RENEWAL
Leon W DarakjyItalyXuxue Feng NEW
Wickens R DoeBrazilOnyama Limba RENEWAL
Francesco Y GauchoIndiaXuxue Feng PROPOSAL
Maria H DarakjySpainIoni Bowcher 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>