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
Aika K BowleyRussiaXuxue Feng NEGOTIATION
Claire W RutaJapanAnna Fali UNQUALIFIED
Clifford D SaylorsGermanyIvan Magalhaes PROPOSAL
Johnson G GauchoIndiaBernardo Dominic QUALIFIED
Octavia U OstroskyAustraliaBernardo Dominic RENEWAL
Munro D StockhamCanadaElwin Sharvill QUALIFIED
Wickens R NestleRussiaElwin Sharvill UNQUALIFIED
Clifford G OstroskyItalyBernardo Dominic QUALIFIED
Adams U VocelkaArgentinaBernardo Dominic UNQUALIFIED
Mujtaba I GillianJapanElwin Sharvill PROPOSAL
Tony B DarakjyUnited KingdomOnyama Limba NEGOTIATION
Sinclair F OstroskyArgentinaOnyama Limba UNQUALIFIED
Mayumi G NestleRussiaAmy Elsner QUALIFIED
Isabel Z ChuiUnited KingdomIoni Bowcher NEW
Emily T ChuiCanadaAsiya Javayant NEGOTIATION
Ricardo V GauchoGermanyIvan Magalhaes QUALIFIED
Isabel D ShinkoJapanBernardo Dominic NEGOTIATION
Salvatore R DarakjyCanadaStephen Shaw UNQUALIFIED
Sinclair V MacleadIndiaBernardo Dominic NEGOTIATION
Maisha O StockhamBrazilBernardo Dominic RENEWAL
Aditya A InouyeCanadaElwin Sharvill NEW
Greenwood A SaylorsAustraliaIoni Bowcher PROPOSAL
Leja T SchemmerUnited KingdomAmy Elsner PROPOSAL
Ricardo U FigeroaSpainAmy Elsner NEGOTIATION
James X OstroskyIndiaBernardo Dominic RENEWAL
Jones V WaycottJapanOnyama Limba QUALIFIED
Ricardo Y FigeroaSpainBernardo Dominic PROPOSAL
Ricardo W SaylorsItalyBernardo Dominic NEGOTIATION
Smith O DarakjyFranceAsiya Javayant UNQUALIFIED
Morrow U RoysterSpainXuxue Feng NEW
Alejandro K AlbaresAustraliaBernardo Dominic RENEWAL
Cody T GillianArgentinaAmy Elsner RENEWAL
Aika R RulapaughGermanyIvan Magalhaes UNQUALIFIED
Silvio M MacleadCanadaIoni Bowcher RENEWAL
Cody Z GauchoUnited KingdomStephen Shaw PROPOSAL
Aika A WaycottArgentinaBernardo Dominic NEW
Deepesh O VenereGermanyAmy Elsner RENEWAL
Antonio M MarrierSpainOnyama Limba UNQUALIFIED
Arvin A GarufiRussiaIoni Bowcher UNQUALIFIED
James L VenereItalyXuxue Feng QUALIFIED
Sinclair N PoquetteJapanAnna Fali QUALIFIED
Jefferson J RimBrazilXuxue Feng QUALIFIED
Alejandro P IturbideItalyStephen Shaw UNQUALIFIED
Murillo N GauchoItalyXuxue Feng PROPOSAL
Jennifer N OldroydCanadaBernardo Dominic NEW
Maria F MacleadUnited KingdomXuxue Feng NEW
Isabel U RutaBrazilXuxue Feng UNQUALIFIED
Morrow Z FollerGermanyAsiya Javayant UNQUALIFIED
Sinclair F AmigonGermanyAsiya Javayant RENEWAL
Octavia W MaletRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones C TollnerItalyAsiya Javayant QUALIFIED
Morrow E AlbaresCanadaOnyama Limba QUALIFIED
Francesco S CaudyUnited KingdomStephen Shaw NEGOTIATION
Cody F MorascaIndiaXuxue Feng RENEWAL
Deepesh W GillianCanadaAmy Elsner NEGOTIATION
Izzy C DilliardCanadaIoni Bowcher PROPOSAL
Jefferson E FerenczBrazilIvan Magalhaes NEGOTIATION
Julie S AlbaresUnited KingdomElwin Sharvill QUALIFIED
Clifford S PerinCanadaElwin Sharvill NEW
Antonio Q ChuiAustraliaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro I MorascaArgentina2024-04-07Commercial Press QUALIFIED52Amy Elsner
1001Mujtaba M BologniaIndia2024-04-18Benton, John B Jr NEGOTIATION6Asiya Javayant
1002Nicolas F BowleyFrance2024-04-29Truhlar And Truhlar Attys UNQUALIFIED80Onyama Limba
1003Salvatore J FigeroaArgentina2024-04-10Feltz Printing Service QUALIFIED71Ioni Bowcher
1004James E PaprockiJapan2024-04-20Benton, John B Jr QUALIFIED2Amy Elsner
1005Misaki G MacleadAustralia2024-04-26Printing Dimensions QUALIFIED40Ioni Bowcher
1006Francesco Y StockhamUnited Kingdom2024-04-16Chemel, James L Cpa NEW79Asiya Javayant
1007Izzy G IturbideFrance2024-04-24Printing Dimensions RENEWAL77Stephen Shaw
1008Darci B RoysterIndia2024-03-31King, Christopher A Esq NEW58Anna Fali
1009James Q AlbaresArgentina2024-04-08Rousseaux, Michael Esq PROPOSAL90Stephen Shaw
1010Rodrigues S FigeroaUnited Kingdom2024-04-18Benton, John B Jr NEW16Asiya Javayant
1011Mayumi U KolmetzFrance2024-04-14Feiner Bros QUALIFIED51Bernardo Dominic
1012Ivar D StensethArgentina2024-04-01Rangoni Of Florence PROPOSAL46Ivan Magalhaes
1013Chavez E KuskoFrance2024-04-12Truhlar And Truhlar Attys PROPOSAL58Anna Fali
1014Mayumi W AlbaresArgentina2024-04-05Rangoni Of Florence RENEWAL65Amy Elsner
1015Kadeem N DarakjyUnited Kingdom2024-04-05Rangoni Of Florence NEW70Amy Elsner
1016Leja N StensethArgentina2024-04-26Dorl, James J Esq RENEWAL27Anna Fali
1017Aditya T CampainGermany2024-04-18King, Christopher A Esq PROPOSAL26Ivan Magalhaes
1018Ricardo J FigeroaArgentina2024-04-15King, Christopher A Esq QUALIFIED56Amy Elsner
1019Johnson Y RoysterCanada2024-04-22Commercial Press RENEWAL63Elwin Sharvill
1020Sinclair I KuskoJapan2024-04-02Chapman, Ross E Esq NEGOTIATION89Elwin Sharvill
1021Maria W PaprockiArgentina2024-04-12Rousseaux, Michael Esq NEW80Elwin Sharvill
1022David T ButtBrazil2024-04-21Printing Dimensions NEW99Onyama Limba
1023Morrow L MorascaFrance2024-04-09Rangoni Of Florence NEGOTIATION63Xuxue Feng
1024Aika T ShinkoIndia2024-04-15Printing Dimensions NEGOTIATION40Stephen Shaw
1025Arvin M AlbaresSpain2024-04-27Chapman, Ross E Esq NEW46Anna Fali
1026Julie J CampainIndia2024-04-13Truhlar And Truhlar Attys RENEWAL53Asiya Javayant
1027Mayumi Z GlickRussia2024-04-10King, Christopher A Esq NEW26Bernardo Dominic
1028Mujtaba O WieserFrance2024-04-01Chemel, James L Cpa RENEWAL63Elwin Sharvill
1029Claire Q OstroskyArgentina2024-04-12Morlong Associates NEW70Elwin Sharvill
1030Silvio V VocelkaBrazil2024-04-29Dorl, James J Esq QUALIFIED74Ioni Bowcher
1031Ivar X MorascaJapan2024-04-25Chapman, Ross E Esq UNQUALIFIED37Bernardo Dominic
1032Aruna T DoeIndia2024-04-26Buckley Miller Wright RENEWAL35Ivan Magalhaes
1033Mayumi H ButtSpain2024-04-11Benton, John B Jr PROPOSAL63Ivan Magalhaes
1034Jeanfrancois R CaldareraArgentina2024-04-23Truhlar And Truhlar Attys NEW26Xuxue Feng
1035Claire C FlosiArgentina2024-04-01Commercial Press QUALIFIED3Anna Fali
1036Jefferson Z InouyeBrazil2024-04-18Truhlar And Truhlar Attys RENEWAL94Anna Fali
1037Darci E CaldareraUnited Kingdom2024-04-28Truhlar And Truhlar Attys RENEWAL72Amy Elsner
1038Stacey X BologniaRussia2024-04-20Benton, John B Jr QUALIFIED68Ioni Bowcher
1039Kadeem G RutaItaly2024-04-27Rousseaux, Michael Esq PROPOSAL48Elwin Sharvill
1040Jennifer R CaudyJapan2024-04-23Commercial Press UNQUALIFIED62Anna Fali
1041Adams F BriddickJapan2024-04-08Morlong Associates PROPOSAL43Xuxue Feng
1042Nicolas Q RutaGermany2024-04-16Feltz Printing Service PROPOSAL64Elwin Sharvill
1043Kaitlin B GillianUnited Kingdom2024-04-15Morlong Associates PROPOSAL96Ioni Bowcher
1044Deepesh Y AlbaresArgentina2024-04-03Printing Dimensions PROPOSAL40Stephen Shaw
1045Leon F ShinkoGermany2024-04-28Buckley Miller Wright QUALIFIED78Onyama Limba
1046Morrow H OstroskyCanada2024-04-18Feiner Bros PROPOSAL23Bernardo Dominic
1047Ivar W OstroskyItaly2024-04-08Commercial Press UNQUALIFIED88Xuxue Feng
1048Ivar J DarakjyIndia2024-04-10Benton, John B Jr NEW82Onyama Limba
1049Silvio M OstroskyUnited Kingdom2024-04-02Buckley Miller Wright RENEWAL79Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Johnson G PerinJapanXuxue Feng UNQUALIFIED
Clifford K ShinkoBrazilAnna Fali UNQUALIFIED
Leon U GarufiRussiaBernardo Dominic UNQUALIFIED
Johnson K BriddickUnited KingdomIoni Bowcher RENEWAL
Adams M DilliardSpainAnna Fali RENEWAL
Leon K MorascaJapanAmy Elsner UNQUALIFIED
Mujtaba W KolmetzAustraliaIoni Bowcher NEW
Jeanfrancois T StockhamAustraliaOnyama Limba QUALIFIED
Murillo R WieserCanadaBernardo Dominic RENEWAL
Smith B OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Morrow O FlosiFranceIvan Magalhaes NEGOTIATION
Silvio U AmigonSpainAsiya Javayant QUALIFIED
Tony M ShinkoAustraliaIvan Magalhaes PROPOSAL
Morrow K OldroydSpainBernardo Dominic QUALIFIED
Jefferson X ChuiRussiaStephen Shaw NEGOTIATION
Smith B NickaUnited KingdomOnyama Limba RENEWAL
Costa Q OstroskyGermanyStephen Shaw RENEWAL
Kadeem I DilliardIndiaAsiya Javayant NEGOTIATION
Ricardo V FollerArgentinaBernardo Dominic PROPOSAL
Octavia I MaletRussiaAsiya Javayant QUALIFIED
Costa U ShinkoIndiaIvan Magalhaes NEW
Emily A DilliardUnited KingdomAnna Fali RENEWAL
Munro B WaycottCanadaAsiya Javayant UNQUALIFIED
Tony J FigeroaUnited KingdomAmy Elsner NEGOTIATION
David H DoeItalyAsiya Javayant PROPOSAL
David Q PaprockiArgentinaAnna Fali NEGOTIATION
Faith W BowleyUnited KingdomXuxue Feng QUALIFIED
Francesco S CaudyFranceIvan Magalhaes PROPOSAL
Julie D WaycottCanadaOnyama Limba RENEWAL
Faith G RutaArgentinaIoni Bowcher QUALIFIED
Tony K RimIndiaAsiya Javayant RENEWAL
Misaki B BowleyAustraliaAsiya Javayant PROPOSAL
Ivar X VenereFranceOnyama Limba RENEWAL
Julie S WhobreyArgentinaAnna Fali QUALIFIED
Claire Z CaudyArgentinaElwin Sharvill UNQUALIFIED
Ricardo C SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Chavez M StockhamArgentinaAsiya Javayant PROPOSAL
Smith Q MacleadUnited KingdomElwin Sharvill NEW
Tony K PerinRussiaBernardo Dominic NEGOTIATION
Sinclair E VenereIndiaAnna Fali PROPOSAL
Murillo Y PerinRussiaIoni Bowcher RENEWAL
Johnson G CampainSpainStephen Shaw RENEWAL
Arvin D MorascaItalyAsiya Javayant NEGOTIATION
Alejandro B TollnerItalyIvan Magalhaes UNQUALIFIED
Aika P InouyeBrazilElwin Sharvill NEGOTIATION
Costa D KuskoUnited KingdomElwin Sharvill NEW
Izzy F GauchoBrazilIvan Magalhaes QUALIFIED
Johnson P VocelkaUnited KingdomBernardo Dominic QUALIFIED
Julie W OstroskyArgentinaAnna Fali UNQUALIFIED
Chavez D OldroydArgentinaElwin Sharvill QUALIFIED
Frozen Columns
Name
Rodrigues S Sergi
David E Venere
Johnson F Rulapaugh
Sinclair A Vocelka
Ivar D Kolmetz
Adams T Iturbide
Leon U Gillian
Sinclair U Gaucho
Aditya B Kusko
Wickens C Briddick
Faith Q Malet
Claire W Ruta
Claire M Nestle
Jones N Maclead
Isabel H Saylors
Cody U Amigon
Cody W Nestle
Aruna X Dilliard
Alejandro O Caldarera
James J Oldroyd
Leja P Stockham
Murillo R Waycott
Sinclair O Malet
Jennifer A Paprocki
Jennifer Z Waycott
Adams D Dilliard
Morrow Z Iturbide
Antonio W Ruta
Jefferson U Marrier
Chavez V Ruta
Chavez L Saylors
Emily W Doe
Deepesh O Caldarera
Julie V Chui
Maria E Bowley
Jeanfrancois J Briddick
Chavez T Bowley
Antonio X Tollner
Adams U Morasca
Salvatore A Vocelka
Greenwood A Caudy
Smith N Royster
Antonio C Inouye
Maria R Nicka
Deepesh F Figeroa
Morrow F Chui
Chavez Q Venere
Francesco B Stenseth
Arvin Y Wieser
Darci H Oldroyd
IdCountryDate
1000Spain2024-04-19
1001India2024-04-03
1002Brazil2024-04-20
1003United Kingdom2024-04-11
1004Japan2024-04-26
1005Italy2024-04-24
1006France2024-04-04
1007Australia2024-04-05
1008Argentina2024-04-28
1009Argentina2024-04-21
1010France2024-04-12
1011Japan2024-04-11
1012Italy2024-04-28
1013Germany2024-04-04
1014Japan2024-04-27
1015Italy2024-04-20
1016Japan2024-04-05
1017United Kingdom2024-04-17
1018Germany2024-04-13
1019Russia2024-04-02
1020Argentina2024-04-07
1021Italy2024-04-24
1022Japan2024-03-31
1023Italy2024-04-03
1024France2024-04-01
1025Argentina2024-04-03
1026Spain2024-03-31
1027United Kingdom2024-04-11
1028India2024-03-31
1029United Kingdom2024-04-02
1030Argentina2024-04-12
1031Japan2024-04-26
1032Italy2024-04-09
1033Argentina2024-04-18
1034Brazil2024-04-06
1035Germany2024-04-13
1036Australia2024-04-25
1037Spain2024-04-13
1038Brazil2024-04-01
1039Canada2024-04-18
1040Japan2024-04-15
1041Brazil2024-04-22
1042Brazil2024-04-28
1043Germany2024-04-09
1044India2024-04-01
1045Japan2024-04-04
1046Australia2024-04-09
1047Italy2024-04-29
1048Russia2024-04-04
1049Argentina2024-04-17

On-Demand Data

NameIdCountryDate
Ricardo I Doe1000Brazil2024-04-14
Faith D Whobrey1001Japan2024-04-23
Aika X Royster1002France2024-04-03
Juan Q Perin1003United Kingdom2024-04-23
Alejandro O Maclead1004Italy2024-04-03
Deepesh I Vocelka1005Canada2024-04-23
Nicolas E Saylors1006Germany2024-04-10
Greenwood R Albares1007India2024-04-16
Chavez A Caudy1008France2024-04-09
Francesco C Ferencz1009India2024-04-08
Deepesh P Inouye1010Argentina2024-04-03
Misaki Q Waycott1011France2024-04-12
Kadeem S Butt1012India2024-04-25
Costa C Poquette1013Argentina2024-04-11
Claire J Figeroa1014United Kingdom2024-04-27
Juan X Flosi1015Japan2024-04-13
Salvatore H Gaucho1016Italy2024-04-19
Johnson X Amigon1017Brazil2024-04-07
Ivar W Nestle1018Japan2024-04-03
Jones S Amigon1019Russia2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson Y FerenczGermanyIoni Bowcher RENEWAL
Leja T WieserBrazilAnna Fali PROPOSAL
Jefferson Q BowleyArgentinaIoni Bowcher PROPOSAL
Aruna U CampainCanadaAmy Elsner NEGOTIATION
Francesco X WhobreyIndiaStephen Shaw NEGOTIATION
Octavia Y OstroskyRussiaAmy Elsner QUALIFIED
Izzy T WhobreyFranceIoni Bowcher NEGOTIATION
Salvatore S NestleBrazilIoni Bowcher PROPOSAL
Cody N BologniaJapanIoni Bowcher RENEWAL
Nicolas J AlbaresIndiaStephen Shaw RENEWAL
Jeanfrancois T NickaGermanyIoni Bowcher NEW
Kaitlin F InouyeUnited KingdomXuxue Feng NEGOTIATION
Ricardo P ChuiJapanOnyama Limba NEW
Maria N MarrierRussiaBernardo Dominic RENEWAL
Isabel R RutaJapanAmy Elsner QUALIFIED
Claire Z CampainFranceAmy Elsner NEGOTIATION
Stacey I GlickArgentinaXuxue Feng NEW
Ricardo D WieserJapanElwin Sharvill NEW
Aruna O NickaSpainIvan Magalhaes NEGOTIATION
Julie J FlosiGermanyAsiya Javayant PROPOSAL
Wickens G BriddickItalyAsiya Javayant RENEWAL
Maisha M AmigonCanadaBernardo Dominic NEGOTIATION
Antonio M AmigonJapanIvan Magalhaes UNQUALIFIED
Alejandro M VocelkaFranceAnna Fali RENEWAL
Aika H PerinArgentinaIoni Bowcher PROPOSAL
Salvatore A KuskoFranceAmy Elsner NEW
Nicolas W ShinkoArgentinaAmy Elsner NEGOTIATION
Julie P MacleadGermanyElwin Sharvill NEW
Aruna K PoquetteRussiaElwin Sharvill RENEWAL
Costa S SergiUnited KingdomElwin Sharvill RENEWAL
Cody C StensethItalyAmy Elsner UNQUALIFIED
Johnson K FlosiSpainElwin Sharvill RENEWAL
Claire Q NickaGermanyIoni Bowcher RENEWAL
Maria S FlosiCanadaIvan Magalhaes NEW
Leon R NestleArgentinaBernardo Dominic PROPOSAL
Julie H MaletAustraliaAmy Elsner RENEWAL
Rodrigues T ChuiUnited KingdomStephen Shaw PROPOSAL
Leon O SergiBrazilIvan Magalhaes NEGOTIATION
Clifford X SchemmerBrazilOnyama Limba NEW
Leon R GarufiCanadaAmy Elsner 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>