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
Jones E BowleyCanadaBernardo Dominic PROPOSAL
Costa R BriddickSpainAmy Elsner NEW
Emily E WieserFranceAnna Fali UNQUALIFIED
Kadeem I FigeroaItalyOnyama Limba UNQUALIFIED
Ashley R WieserFranceAmy Elsner RENEWAL
Johnson L BriddickFranceIoni Bowcher NEW
Deepesh H ShinkoFranceElwin Sharvill NEGOTIATION
Aika Z GillianBrazilAnna Fali UNQUALIFIED
David E PaprockiIndiaIvan Magalhaes NEW
Jeanfrancois X BologniaCanadaXuxue Feng QUALIFIED
David J CaldareraBrazilIvan Magalhaes PROPOSAL
Faith X ButtIndiaOnyama Limba NEGOTIATION
Tony X VocelkaSpainStephen Shaw QUALIFIED
Mujtaba E CaldareraBrazilOnyama Limba PROPOSAL
Maria S WieserIndiaIvan Magalhaes NEW
Darci J MaletArgentinaStephen Shaw NEGOTIATION
Stacey W RulapaughCanadaStephen Shaw QUALIFIED
Arvin R SergiArgentinaAmy Elsner NEW
Tony J StockhamSpainXuxue Feng QUALIFIED
Claire J BowleyRussiaAmy Elsner UNQUALIFIED
Johnson S BologniaUnited KingdomAsiya Javayant NEW
Sinclair J IturbideArgentinaStephen Shaw NEGOTIATION
Misaki D VenereAustraliaXuxue Feng QUALIFIED
Nicolas G StensethArgentinaAmy Elsner UNQUALIFIED
Emily U WhobreyGermanyAsiya Javayant RENEWAL
Nicolas V PaprockiJapanIoni Bowcher UNQUALIFIED
Stacey T BologniaItalyBernardo Dominic NEGOTIATION
Aika J PoquetteAustraliaOnyama Limba RENEWAL
Kadeem X RoysterBrazilAnna Fali UNQUALIFIED
Darci J WieserItalyElwin Sharvill QUALIFIED
Clifford B BologniaAustraliaStephen Shaw NEW
Nicolas B VenereJapanAmy Elsner NEW
David P RoysterSpainElwin Sharvill NEW
Claire A MorascaUnited KingdomStephen Shaw NEGOTIATION
Jones Y DoeAustraliaElwin Sharvill RENEWAL
Darci Q GarufiArgentinaStephen Shaw NEGOTIATION
Jennifer E MorascaAustraliaAsiya Javayant NEGOTIATION
Rodrigues C RoysterGermanyStephen Shaw RENEWAL
Francesco T VenereBrazilAnna Fali NEGOTIATION
Aditya E SchemmerCanadaAsiya Javayant NEGOTIATION
Silvio R NickaIndiaStephen Shaw NEW
Aditya N FerenczUnited KingdomAsiya Javayant RENEWAL
Mayumi O RoysterIndiaAnna Fali QUALIFIED
Izzy Q MaletCanadaBernardo Dominic NEGOTIATION
Maria W ShinkoJapanAsiya Javayant RENEWAL
Munro H KuskoBrazilAnna Fali NEGOTIATION
Leon R VenereCanadaIoni Bowcher QUALIFIED
Murillo L RimCanadaAmy Elsner NEGOTIATION
Maisha Q StensethRussiaAnna Fali PROPOSAL
Aditya C OldroydAustraliaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson O MacleadJapanStephen Shaw NEGOTIATION
Jeanfrancois V PaprockiRussiaAsiya Javayant NEW
Leja C MaletUnited KingdomOnyama Limba QUALIFIED
Morrow J BologniaUnited KingdomXuxue Feng PROPOSAL
Izzy K GlickUnited KingdomOnyama Limba UNQUALIFIED
Deepesh D DoeFranceAnna Fali RENEWAL
Arvin O IturbideSpainOnyama Limba UNQUALIFIED
Jennifer Z ChuiItalyIvan Magalhaes PROPOSAL
Stacey M SchemmerRussiaOnyama Limba QUALIFIED
Antonio T RimBrazilAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh I RimUnited Kingdom2024-03-27Rangoni Of Florence NEW6Ivan Magalhaes
1001Jennifer Y DarakjyRussia2024-04-12Buckley Miller Wright RENEWAL73Asiya Javayant
1002Chavez W RulapaughJapan2024-03-31Commercial Press UNQUALIFIED55Bernardo Dominic
1003Aditya G RoysterUnited Kingdom2024-03-28Feiner Bros UNQUALIFIED47Onyama Limba
1004Aika A GarufiGermany2024-03-22Rangoni Of Florence UNQUALIFIED73Ioni Bowcher
1005Emily V SchemmerIndia2024-04-09Printing Dimensions NEW41Onyama Limba
1006Jeanfrancois P CampainGermany2024-04-18Printing Dimensions NEGOTIATION56Onyama Limba
1007Kadeem J AlbaresFrance2024-04-12Chemel, James L Cpa PROPOSAL65Xuxue Feng
1008Kaitlin W ShinkoRussia2024-03-20Commercial Press PROPOSAL45Xuxue Feng
1009Francesco Z SchemmerSpain2024-04-04Rangoni Of Florence PROPOSAL56Ioni Bowcher
1010Johnson H IturbideUnited Kingdom2024-03-26Commercial Press NEW86Onyama Limba
1011Jeanfrancois W PoquetteIndia2024-03-21Chapman, Ross E Esq QUALIFIED1Amy Elsner
1012Misaki P AmigonGermany2024-03-26Rousseaux, Michael Esq PROPOSAL31Onyama Limba
1013Claire H WaycottCanada2024-04-03Commercial Press UNQUALIFIED73Elwin Sharvill
1014Maisha N BowleyItaly2024-04-14Rousseaux, Michael Esq RENEWAL36Onyama Limba
1015Smith M GlickBrazil2024-04-18Rousseaux, Michael Esq RENEWAL71Anna Fali
1016Isabel H RulapaughAustralia2024-04-17Commercial Press NEGOTIATION72Asiya Javayant
1017Isabel B BologniaUnited Kingdom2024-04-08Feltz Printing Service NEGOTIATION16Stephen Shaw
1018Kaitlin K ButtCanada2024-03-28Benton, John B Jr NEGOTIATION92Ivan Magalhaes
1019Chavez P ButtJapan2024-04-03Feltz Printing Service QUALIFIED70Ivan Magalhaes
1020Chavez Y ShinkoFrance2024-03-20Truhlar And Truhlar Attys UNQUALIFIED8Xuxue Feng
1021Aika H SergiBrazil2024-04-04Morlong Associates NEGOTIATION19Asiya Javayant
1022Faith N KolmetzAustralia2024-04-12Dorl, James J Esq NEGOTIATION5Ivan Magalhaes
1023Munro X OldroydItaly2024-04-14Buckley Miller Wright RENEWAL33Elwin Sharvill
1024Maisha L VocelkaArgentina2024-04-18Printing Dimensions RENEWAL5Amy Elsner
1025Wickens M KolmetzSpain2024-03-25Printing Dimensions RENEWAL58Xuxue Feng
1026Greenwood J NickaJapan2024-04-07Benton, John B Jr QUALIFIED65Asiya Javayant
1027Julie R CaudyUnited Kingdom2024-04-17Chanay, Jeffrey A Esq RENEWAL22Ioni Bowcher
1028Jeanfrancois Z StensethJapan2024-03-25Commercial Press RENEWAL99Bernardo Dominic
1029Maria E SlusarskiUnited Kingdom2024-04-08Chanay, Jeffrey A Esq RENEWAL38Xuxue Feng
1030Johnson S DilliardJapan2024-04-09Feiner Bros NEW46Stephen Shaw
1031Kaitlin W MacleadSpain2024-03-23Chemel, James L Cpa NEGOTIATION83Stephen Shaw
1032Arvin O MarrierAustralia2024-04-05Rangoni Of Florence UNQUALIFIED26Stephen Shaw
1033Sinclair M ButtIndia2024-03-31Benton, John B Jr NEW95Ivan Magalhaes
1034Deepesh P SaylorsCanada2024-04-02Printing Dimensions PROPOSAL82Xuxue Feng
1035Arvin H KolmetzBrazil2024-04-05Rangoni Of Florence NEW92Onyama Limba
1036Juan Q SlusarskiUnited Kingdom2024-03-30Chemel, James L Cpa NEW64Amy Elsner
1037Jefferson Q SergiIndia2024-04-02Rousseaux, Michael Esq RENEWAL77Ioni Bowcher
1038Juan I GlickSpain2024-03-23Rousseaux, Michael Esq RENEWAL38Amy Elsner
1039Chavez O TollnerUnited Kingdom2024-03-24Feiner Bros NEW36Onyama Limba
1040Leon U AmigonRussia2024-03-24Benton, John B Jr QUALIFIED33Stephen Shaw
1041Julie U CaudyBrazil2024-04-04King, Christopher A Esq NEGOTIATION99Amy Elsner
1042Adams R MaletRussia2024-03-21Chanay, Jeffrey A Esq RENEWAL57Ivan Magalhaes
1043Johnson L AmigonBrazil2024-04-03King, Christopher A Esq NEW17Amy Elsner
1044Adams N CaldareraArgentina2024-03-22Truhlar And Truhlar Attys NEGOTIATION85Ioni Bowcher
1045Arvin E WieserRussia2024-03-23Buckley Miller Wright NEW29Bernardo Dominic
1046Alejandro F FerenczArgentina2024-04-11King, Christopher A Esq NEGOTIATION9Ioni Bowcher
1047Aika L RoysterCanada2024-03-26Rousseaux, Michael Esq NEW75Ivan Magalhaes
1048Deepesh Z FollerAustralia2024-03-31Truhlar And Truhlar Attys UNQUALIFIED4Anna Fali
1049Faith G FerenczAustralia2024-03-28Chapman, Ross E Esq PROPOSAL30Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Octavia T WhobreyGermanyBernardo Dominic UNQUALIFIED
Arvin L RutaUnited KingdomAsiya Javayant QUALIFIED
Antonio Y GlickAustraliaElwin Sharvill UNQUALIFIED
Izzy D DilliardFranceOnyama Limba QUALIFIED
Antonio O GillianBrazilIoni Bowcher PROPOSAL
Faith B WaycottFranceAmy Elsner NEGOTIATION
Munro X CampainGermanyOnyama Limba UNQUALIFIED
Aruna Y FollerArgentinaIvan Magalhaes QUALIFIED
Maria W GillianIndiaElwin Sharvill NEW
Wickens B ChuiSpainIoni Bowcher UNQUALIFIED
Aika F SchemmerArgentinaXuxue Feng NEW
James Z BowleyAustraliaAnna Fali UNQUALIFIED
Greenwood L WhobreyAustraliaAnna Fali PROPOSAL
Octavia L PoquetteBrazilIoni Bowcher PROPOSAL
Adams F BriddickGermanyIoni Bowcher QUALIFIED
Darci K PoquetteRussiaOnyama Limba QUALIFIED
Murillo F IturbideSpainStephen Shaw NEGOTIATION
Mujtaba C BowleyCanadaAnna Fali NEGOTIATION
Darci M SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Tony V MacleadCanadaIvan Magalhaes PROPOSAL
Izzy X DarakjyCanadaOnyama Limba NEW
Mujtaba W DoeItalyAsiya Javayant UNQUALIFIED
Maria T RoysterAustraliaBernardo Dominic NEW
Antonio L MarrierGermanyIoni Bowcher NEW
Murillo W MaletAustraliaOnyama Limba RENEWAL
Kaitlin B VenereAustraliaAmy Elsner NEGOTIATION
Leja X OstroskyBrazilBernardo Dominic QUALIFIED
Izzy T NestleFranceAnna Fali RENEWAL
Johnson E RulapaughJapanXuxue Feng QUALIFIED
Alejandro Z AmigonIndiaOnyama Limba PROPOSAL
Juan P NickaAustraliaElwin Sharvill RENEWAL
Johnson N SchemmerCanadaStephen Shaw QUALIFIED
Alejandro N MarrierGermanyElwin Sharvill NEW
Wickens X BriddickGermanyIvan Magalhaes PROPOSAL
Silvio M MaletItalyAnna Fali NEW
Darci W DarakjyIndiaAsiya Javayant UNQUALIFIED
Leja K MaletJapanOnyama Limba NEW
Faith E RutaAustraliaAsiya Javayant RENEWAL
Julie U GauchoIndiaIoni Bowcher NEW
Claire F CampainFranceXuxue Feng RENEWAL
Costa J DilliardJapanIoni Bowcher UNQUALIFIED
Murillo Q SergiJapanElwin Sharvill NEW
Kadeem H DilliardRussiaAmy Elsner QUALIFIED
Rodrigues O GillianAustraliaBernardo Dominic PROPOSAL
Ivar Y KuskoIndiaStephen Shaw NEW
Adams U OstroskyAustraliaAmy Elsner NEW
Francesco A GillianSpainIoni Bowcher NEGOTIATION
Murillo Q CaudyCanadaElwin Sharvill QUALIFIED
Clifford O SlusarskiGermanyAsiya Javayant PROPOSAL
Smith Q DarakjyAustraliaOnyama Limba NEW
Frozen Columns
Name
Isabel X Slusarski
Salvatore X Rim
Tony B Schemmer
Aditya T Whobrey
Julie U Glick
Ashley K Caudy
James Y Shinko
Isabel N Kusko
Chavez C Tollner
Morrow R Morasca
Antonio S Shinko
Ashley H Dilliard
Aika F Briddick
Darci O Slusarski
Alejandro E Amigon
Tony S Sergi
Misaki T Bowley
Maisha T Rim
Mayumi C Malet
Stacey O Schemmer
Sinclair A Wieser
Arvin T Foller
Jefferson D Flosi
Munro D Marrier
Mujtaba X Rulapaugh
Deepesh W Sergi
Aika C Flosi
Mujtaba B Butt
Kadeem A Foller
Maisha D Waycott
Antonio C Caldarera
Kaitlin G Gaucho
Adams C Dilliard
Misaki S Amigon
Alejandro R Vocelka
Costa K Venere
Sinclair K Darakjy
Kaitlin H Dilliard
Izzy D Nicka
Sinclair R Whobrey
Jones E Doe
Deepesh U Dilliard
Adams H Wieser
Murillo W Rulapaugh
Leon V Rim
Greenwood P Venere
Smith M Ruta
Smith H Bolognia
Emily N Waycott
Leon S Poquette
IdCountryDate
1000United Kingdom2024-03-27
1001Argentina2024-04-12
1002Australia2024-03-27
1003United Kingdom2024-04-02
1004Canada2024-04-08
1005India2024-04-13
1006India2024-04-16
1007Japan2024-03-31
1008United Kingdom2024-03-21
1009Germany2024-03-25
1010United Kingdom2024-04-08
1011India2024-04-01
1012France2024-03-28
1013Japan2024-03-20
1014Japan2024-04-01
1015Australia2024-03-20
1016Spain2024-04-06
1017France2024-03-28
1018India2024-04-11
1019Italy2024-04-09
1020Canada2024-04-10
1021Australia2024-04-18
1022Australia2024-03-23
1023Italy2024-04-04
1024Japan2024-03-31
1025France2024-03-28
1026Italy2024-04-05
1027Brazil2024-04-14
1028Japan2024-04-14
1029United Kingdom2024-03-31
1030Spain2024-04-06
1031Argentina2024-04-12
1032France2024-04-07
1033France2024-04-01
1034France2024-03-25
1035France2024-03-30
1036India2024-04-01
1037Spain2024-04-02
1038Australia2024-04-08
1039Spain2024-03-29
1040India2024-04-08
1041India2024-04-13
1042India2024-04-12
1043France2024-04-02
1044Japan2024-04-15
1045Argentina2024-04-18
1046Spain2024-03-25
1047Brazil2024-03-26
1048Germany2024-04-08
1049United Kingdom2024-04-02

On-Demand Data

NameIdCountryDate
Arvin P Oldroyd1000Italy2024-03-27
Johnson L Poquette1001Argentina2024-04-07
Munro E Gaucho1002France2024-03-30
Ricardo U Doe1003Brazil2024-04-01
Ivar K Iturbide1004Japan2024-03-28
Chavez W Caudy1005Italy2024-04-03
Claire O Darakjy1006India2024-04-12
Maria G Malet1007Spain2024-04-04
Tony G Paprocki1008Canada2024-04-15
Aruna D Tollner1009Russia2024-04-17
Isabel E Ostrosky1010Italy2024-04-05
Cody D Rim1011Russia2024-04-11
Emily X Nicka1012Australia2024-04-17
Ashley X Marrier1013Italy2024-03-25
Morrow R Glick1014Italy2024-04-11
Faith L Gillian1015Japan2024-03-24
Greenwood P Ostrosky1016India2024-03-25
Johnson E Schemmer1017United Kingdom2024-04-15
Isabel B Vocelka1018Japan2024-03-30
Octavia E Kolmetz1019United Kingdom2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha Y PoquetteFranceIvan Magalhaes RENEWAL
Misaki K MorascaItalyAsiya Javayant PROPOSAL
Leja G GarufiSpainElwin Sharvill PROPOSAL
Ashley N FlosiFranceElwin Sharvill RENEWAL
Mujtaba V OstroskyBrazilIvan Magalhaes PROPOSAL
Aditya M WaycottSpainStephen Shaw PROPOSAL
Juan R AmigonRussiaIoni Bowcher NEW
Aruna D ChuiRussiaAsiya Javayant PROPOSAL
Arvin U WhobreyCanadaAsiya Javayant RENEWAL
Izzy W MorascaItalyIoni Bowcher QUALIFIED
Misaki C StockhamCanadaOnyama Limba QUALIFIED
Maisha Y FlosiJapanOnyama Limba NEGOTIATION
Ivar U AmigonGermanyIoni Bowcher PROPOSAL
Ricardo H SaylorsJapanAmy Elsner NEGOTIATION
Ivar P SergiSpainIoni Bowcher PROPOSAL
Wickens L PerinArgentinaStephen Shaw UNQUALIFIED
Rodrigues Z RimGermanyIoni Bowcher PROPOSAL
Nicolas O SergiAustraliaAmy Elsner UNQUALIFIED
Alejandro D SaylorsAustraliaOnyama Limba NEGOTIATION
Clifford P MaletArgentinaAnna Fali RENEWAL
Aika B GlickBrazilAnna Fali PROPOSAL
Clifford W DarakjyGermanyXuxue Feng UNQUALIFIED
Wickens S VenereArgentinaAmy Elsner UNQUALIFIED
Tony N PerinUnited KingdomIoni Bowcher PROPOSAL
Maisha D WaycottUnited KingdomXuxue Feng UNQUALIFIED
Morrow A OstroskyCanadaXuxue Feng UNQUALIFIED
Jefferson V ButtSpainAsiya Javayant QUALIFIED
David K MorascaIndiaAnna Fali QUALIFIED
Rodrigues N ShinkoArgentinaStephen Shaw NEGOTIATION
Johnson M NickaFranceAmy Elsner NEGOTIATION
Maisha L PoquetteJapanBernardo Dominic NEW
Emily C DarakjyAustraliaOnyama Limba QUALIFIED
Misaki X IturbideSpainOnyama Limba QUALIFIED
Stacey T GauchoArgentinaStephen Shaw UNQUALIFIED
Murillo S VenereSpainStephen Shaw NEGOTIATION
Francesco C AlbaresIndiaIoni Bowcher PROPOSAL
David G MaletCanadaStephen Shaw QUALIFIED
Alejandro X PaprockiBrazilIvan Magalhaes NEGOTIATION
Ashley T CaudyRussiaStephen Shaw QUALIFIED
Arvin Y ChuiArgentinaAnna Fali 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>