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
Mayumi S WieserSpainIvan Magalhaes NEGOTIATION
Francesco H StensethAustraliaIvan Magalhaes NEGOTIATION
Salvatore Q WhobreyBrazilXuxue Feng PROPOSAL
Silvio J AmigonCanadaAnna Fali NEGOTIATION
Antonio O StockhamJapanXuxue Feng RENEWAL
Leja B ShinkoJapanXuxue Feng NEGOTIATION
Deepesh W AmigonGermanyAmy Elsner RENEWAL
Kaitlin I PaprockiJapanAnna Fali PROPOSAL
Ricardo B BologniaArgentinaStephen Shaw NEW
Tony Q MacleadIndiaAsiya Javayant PROPOSAL
Darci Z MacleadRussiaStephen Shaw PROPOSAL
Murillo X SchemmerGermanyAmy Elsner QUALIFIED
Silvio B KolmetzJapanXuxue Feng QUALIFIED
Claire W PerinUnited KingdomIvan Magalhaes NEW
Morrow Z MaletRussiaAsiya Javayant UNQUALIFIED
Kadeem H MarrierArgentinaIoni Bowcher QUALIFIED
Aruna Q BologniaRussiaElwin Sharvill RENEWAL
Kadeem X ChuiIndiaAsiya Javayant NEGOTIATION
Alejandro I FlosiRussiaOnyama Limba UNQUALIFIED
Ashley G WaycottUnited KingdomOnyama Limba NEW
Aika J GillianFranceAnna Fali NEGOTIATION
Mayumi X StockhamUnited KingdomBernardo Dominic QUALIFIED
Chavez S NickaAustraliaAnna Fali RENEWAL
Greenwood E ShinkoItalyAmy Elsner NEGOTIATION
Johnson I DilliardItalyAsiya Javayant NEW
James J MaletAustraliaElwin Sharvill RENEWAL
Greenwood Z BriddickRussiaIoni Bowcher QUALIFIED
Emily F ShinkoSpainAsiya Javayant PROPOSAL
Maria V AlbaresGermanyBernardo Dominic PROPOSAL
Morrow L GlickSpainAsiya Javayant PROPOSAL
Sinclair X FlosiRussiaIoni Bowcher QUALIFIED
Isabel D StockhamRussiaXuxue Feng PROPOSAL
Jefferson F PaprockiGermanyOnyama Limba UNQUALIFIED
Claire X FigeroaSpainAmy Elsner RENEWAL
Aika B RoysterCanadaAmy Elsner QUALIFIED
Juan Y MorascaIndiaIvan Magalhaes NEGOTIATION
Nicolas L FlosiGermanyAmy Elsner RENEWAL
Munro N RutaCanadaAnna Fali NEW
Jefferson F StensethBrazilAnna Fali NEW
Misaki H WaycottCanadaAmy Elsner NEGOTIATION
Kadeem F PerinAustraliaIoni Bowcher PROPOSAL
Julie F FigeroaRussiaAsiya Javayant QUALIFIED
Wickens K ChuiBrazilXuxue Feng PROPOSAL
Chavez I BowleyGermanyAmy Elsner QUALIFIED
Ricardo K TollnerCanadaBernardo Dominic RENEWAL
Maisha A FollerFranceElwin Sharvill RENEWAL
Mayumi P CampainGermanyOnyama Limba NEW
Izzy V WhobreyUnited KingdomXuxue Feng NEW
Darci G GarufiSpainAmy Elsner QUALIFIED
Darci P MaletGermanyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja H WieserItalyAmy Elsner QUALIFIED
Cody V FollerUnited KingdomStephen Shaw QUALIFIED
Izzy T RutaRussiaBernardo Dominic UNQUALIFIED
Aditya O NickaFranceElwin Sharvill RENEWAL
Tony D GlickSpainAmy Elsner NEW
Ashley L MaletArgentinaIoni Bowcher NEGOTIATION
Kaitlin R StensethJapanBernardo Dominic QUALIFIED
Jennifer E BriddickCanadaBernardo Dominic NEW
Kadeem U AmigonAustraliaXuxue Feng NEW
Izzy H FerenczCanadaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya J RutaAustralia2024-03-28Printing Dimensions NEW94Amy Elsner
1001Ivar E FerenczIndia2024-04-19Printing Dimensions NEW51Amy Elsner
1002Deepesh C SaylorsGermany2024-03-29Chemel, James L Cpa NEW88Xuxue Feng
1003Julie P CaldareraCanada2024-04-04Feiner Bros UNQUALIFIED84Xuxue Feng
1004Leon H SlusarskiIndia2024-04-07Benton, John B Jr NEW74Bernardo Dominic
1005Tony G IturbideBrazil2024-04-16Dorl, James J Esq RENEWAL54Amy Elsner
1006Cody L StensethGermany2024-04-09King, Christopher A Esq UNQUALIFIED48Amy Elsner
1007Jennifer Y FerenczItaly2024-04-10Chemel, James L Cpa QUALIFIED92Asiya Javayant
1008Ashley X GarufiIndia2024-04-03Chapman, Ross E Esq QUALIFIED56Ivan Magalhaes
1009Mayumi R DilliardItaly2024-03-26Chapman, Ross E Esq NEGOTIATION56Asiya Javayant
1010Faith R SchemmerArgentina2024-04-15Printing Dimensions NEGOTIATION85Ivan Magalhaes
1011Aruna E GlickAustralia2024-04-13Printing Dimensions NEW17Elwin Sharvill
1012Greenwood O CaldareraCanada2024-03-29Morlong Associates QUALIFIED3Ivan Magalhaes
1013Cody L NestleIndia2024-04-14Chanay, Jeffrey A Esq RENEWAL86Xuxue Feng
1014Smith I VenereGermany2024-04-10Feiner Bros UNQUALIFIED35Ivan Magalhaes
1015Morrow V ShinkoAustralia2024-04-22Commercial Press NEW89Xuxue Feng
1016Kadeem H VocelkaUnited Kingdom2024-04-23Rangoni Of Florence NEW31Asiya Javayant
1017Maria M FollerArgentina2024-04-08Truhlar And Truhlar Attys PROPOSAL21Stephen Shaw
1018Emily M WhobreyBrazil2024-04-18Chanay, Jeffrey A Esq NEW96Amy Elsner
1019Greenwood T MarrierArgentina2024-03-30Chapman, Ross E Esq NEW39Stephen Shaw
1020Leja U ChuiGermany2024-04-12Dorl, James J Esq UNQUALIFIED21Bernardo Dominic
1021Morrow M MaletBrazil2024-03-27Dorl, James J Esq PROPOSAL34Elwin Sharvill
1022Aika Q WhobreyFrance2024-03-31Rousseaux, Michael Esq PROPOSAL89Onyama Limba
1023Juan W WaycottCanada2024-04-06King, Christopher A Esq PROPOSAL22Bernardo Dominic
1024Leon C VocelkaIndia2024-03-31King, Christopher A Esq NEW26Xuxue Feng
1025Ivar Z FlosiAustralia2024-04-15Feltz Printing Service QUALIFIED68Onyama Limba
1026Silvio I InouyeGermany2024-04-08Benton, John B Jr QUALIFIED96Xuxue Feng
1027Ricardo Q StockhamItaly2024-04-20Truhlar And Truhlar Attys NEGOTIATION20Anna Fali
1028Darci V MaletCanada2024-04-19Rangoni Of Florence NEGOTIATION11Bernardo Dominic
1029Murillo H MarrierBrazil2024-04-05Morlong Associates NEW64Bernardo Dominic
1030Misaki D BowleyIndia2024-04-11Feltz Printing Service QUALIFIED93Stephen Shaw
1031Ricardo U RulapaughIndia2024-04-11Chapman, Ross E Esq NEW59Ivan Magalhaes
1032James V KuskoIndia2024-04-14Chanay, Jeffrey A Esq NEW53Amy Elsner
1033Sinclair S MaletBrazil2024-04-10Chemel, James L Cpa NEGOTIATION57Asiya Javayant
1034Murillo T ButtFrance2024-04-23Morlong Associates RENEWAL95Ivan Magalhaes
1035Maisha C MorascaFrance2024-04-22Rangoni Of Florence NEW27Ioni Bowcher
1036Kaitlin H OstroskyJapan2024-03-27Chanay, Jeffrey A Esq RENEWAL7Amy Elsner
1037Costa G WieserGermany2024-03-31Printing Dimensions UNQUALIFIED57Stephen Shaw
1038Salvatore F KuskoArgentina2024-04-09Chapman, Ross E Esq PROPOSAL91Bernardo Dominic
1039Salvatore H SaylorsRussia2024-04-09King, Christopher A Esq RENEWAL96Ivan Magalhaes
1040Maria O RutaIndia2024-04-24Chapman, Ross E Esq RENEWAL41Xuxue Feng
1041Aika R BologniaIndia2024-04-24Chemel, James L Cpa UNQUALIFIED6Stephen Shaw
1042Leja R WhobreyAustralia2024-04-01Chapman, Ross E Esq RENEWAL43Onyama Limba
1043Maria X MaletArgentina2024-03-30Commercial Press UNQUALIFIED73Amy Elsner
1044Deepesh N DilliardIndia2024-04-19Chemel, James L Cpa PROPOSAL45Elwin Sharvill
1045Salvatore L RoysterArgentina2024-04-17King, Christopher A Esq RENEWAL94Anna Fali
1046Misaki I WaycottSpain2024-04-11Feltz Printing Service RENEWAL25Xuxue Feng
1047Adams K WieserIndia2024-04-14Benton, John B Jr PROPOSAL86Elwin Sharvill
1048Emily Q WhobreyGermany2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED81Amy Elsner
1049Sinclair V FlosiAustralia2024-04-11King, Christopher A Esq UNQUALIFIED53Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair U BologniaGermanyStephen Shaw NEGOTIATION
Darci H IturbideGermanyAnna Fali NEW
David A RutaIndiaOnyama Limba NEW
Johnson R AlbaresBrazilOnyama Limba UNQUALIFIED
Jones D SlusarskiRussiaAmy Elsner NEW
Kadeem U SlusarskiGermanyStephen Shaw NEW
Salvatore H StockhamSpainOnyama Limba PROPOSAL
Munro O BologniaJapanElwin Sharvill UNQUALIFIED
Chavez K FigeroaItalyXuxue Feng PROPOSAL
Nicolas S MarrierGermanyAmy Elsner RENEWAL
Jones H CaudyRussiaAsiya Javayant RENEWAL
Arvin S BriddickBrazilOnyama Limba UNQUALIFIED
Maria G SaylorsUnited KingdomIoni Bowcher QUALIFIED
Kadeem R CaudyArgentinaIoni Bowcher NEGOTIATION
Leon X OstroskyGermanyAsiya Javayant RENEWAL
Julie E NickaGermanyIoni Bowcher QUALIFIED
Antonio Q KolmetzIndiaIoni Bowcher UNQUALIFIED
Ivar E WaycottIndiaElwin Sharvill RENEWAL
Ashley S PerinAustraliaIvan Magalhaes NEGOTIATION
Nicolas Y ShinkoCanadaIoni Bowcher RENEWAL
Rodrigues N WhobreySpainXuxue Feng PROPOSAL
Maisha T WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Tony S FerenczUnited KingdomAmy Elsner RENEWAL
Silvio V ChuiCanadaStephen Shaw PROPOSAL
Stacey Z PaprockiArgentinaBernardo Dominic RENEWAL
Aditya J GarufiIndiaElwin Sharvill RENEWAL
Salvatore K PaprockiCanadaAnna Fali NEW
Nicolas J MorascaArgentinaAsiya Javayant QUALIFIED
Tony Q IturbideUnited KingdomIoni Bowcher RENEWAL
Jennifer E OldroydCanadaBernardo Dominic NEGOTIATION
Jefferson H PaprockiUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois B SaylorsUnited KingdomBernardo Dominic PROPOSAL
Aditya I DilliardSpainStephen Shaw UNQUALIFIED
Jeanfrancois V DarakjySpainAmy Elsner NEW
Jeanfrancois B DarakjyRussiaOnyama Limba UNQUALIFIED
Greenwood J VocelkaCanadaAnna Fali RENEWAL
Mayumi E RoysterRussiaBernardo Dominic QUALIFIED
Jennifer W VenereItalyBernardo Dominic QUALIFIED
Darci L GillianRussiaAnna Fali PROPOSAL
Costa D RimItalyStephen Shaw NEW
Munro V NickaFranceElwin Sharvill RENEWAL
Munro O ShinkoItalyXuxue Feng QUALIFIED
Adams K SchemmerBrazilAmy Elsner UNQUALIFIED
Arvin O FlosiIndiaAmy Elsner QUALIFIED
Smith H FigeroaCanadaIvan Magalhaes NEGOTIATION
Smith D OstroskyGermanyOnyama Limba QUALIFIED
Salvatore H SaylorsAustraliaAmy Elsner RENEWAL
Ashley M FollerGermanyElwin Sharvill NEW
Arvin Y SchemmerItalyAsiya Javayant UNQUALIFIED
Maria H OstroskySpainElwin Sharvill QUALIFIED
Frozen Columns
Name
Jones X Ruta
Jefferson G Flosi
Costa D Stenseth
Silvio S Stockham
Misaki L Campain
Darci L Chui
Maisha X Sergi
Tony P Glick
Adams S Bolognia
Aika S Foller
Deepesh U Iturbide
Ricardo E Marrier
Antonio I Doe
Ashley E Paprocki
Ivar F Schemmer
Jefferson B Gaucho
Claire O Stockham
Johnson T Ferencz
Mayumi C Perin
Faith S Dilliard
Clifford J Paprocki
Faith U Tollner
Deepesh G Marrier
Clifford Y Albares
Misaki G Garufi
Faith Y Marrier
Ashley S Foller
Johnson E Darakjy
Aditya C Butt
Maisha G Gaucho
Leon S Iturbide
James V Inouye
Costa D Butt
Emily C Glick
Misaki Q Sergi
Salvatore P Stenseth
Mujtaba A Stockham
Mayumi A Inouye
Costa I Albares
Ashley P Darakjy
Morrow S Flosi
Alejandro C Marrier
Tony E Rulapaugh
Francesco G Foller
Smith N Shinko
Misaki P Chui
Aditya H Shinko
Chavez J Chui
Francesco Z Iturbide
Tony T Inouye
IdCountryDate
1000Spain2024-04-03
1001India2024-03-28
1002Italy2024-04-19
1003Russia2024-04-21
1004Russia2024-04-18
1005Germany2024-04-11
1006Spain2024-04-10
1007Russia2024-04-03
1008Spain2024-04-07
1009United Kingdom2024-04-03
1010Australia2024-04-10
1011Russia2024-04-02
1012Japan2024-03-28
1013France2024-04-23
1014Italy2024-04-03
1015Japan2024-03-28
1016Spain2024-03-31
1017Japan2024-04-01
1018Japan2024-04-18
1019Canada2024-04-23
1020France2024-04-09
1021Germany2024-04-20
1022Spain2024-04-06
1023Japan2024-04-24
1024Italy2024-04-15
1025Japan2024-04-03
1026Canada2024-04-15
1027Canada2024-03-29
1028Australia2024-04-04
1029United Kingdom2024-04-23
1030Germany2024-04-10
1031Australia2024-04-12
1032Germany2024-04-19
1033Spain2024-04-17
1034Russia2024-04-09
1035Spain2024-03-28
1036United Kingdom2024-04-22
1037Italy2024-04-04
1038Germany2024-04-18
1039Australia2024-04-18
1040Brazil2024-04-11
1041Italy2024-04-15
1042Germany2024-03-27
1043Japan2024-04-16
1044Argentina2024-04-14
1045Italy2024-03-31
1046Argentina2024-04-22
1047India2024-04-19
1048Spain2024-04-13
1049Russia2024-04-19

On-Demand Data

NameIdCountryDate
Jefferson R Saylors1000India2024-04-11
Tony V Figeroa1001Japan2024-03-26
Silvio V Gillian1002Australia2024-04-02
Munro N Paprocki1003Argentina2024-04-14
Jones G Caudy1004United Kingdom2024-03-29
Johnson Z Venere1005Italy2024-04-18
Faith S Waycott1006United Kingdom2024-04-11
Jeanfrancois Z Waycott1007Argentina2024-04-02
Costa P Maclead1008Japan2024-04-21
Jeanfrancois W Saylors1009Russia2024-03-29
Jones X Rulapaugh1010Canada2024-04-20
Smith K Ostrosky1011Brazil2024-04-08
Ricardo Z Perin1012Argentina2024-04-24
Juan D Gaucho1013France2024-04-02
Adams Z Campain1014United Kingdom2024-04-20
Faith J Whobrey1015India2024-04-07
Mujtaba Q Darakjy1016Italy2024-03-28
Aditya J Nestle1017Japan2024-04-02
Julie Z Wieser1018India2024-04-24
Deepesh U Kusko1019Argentina2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire W BologniaFranceBernardo Dominic NEW
Mayumi U RoysterGermanyIvan Magalhaes PROPOSAL
Morrow P BologniaGermanyIvan Magalhaes NEW
Murillo Y FigeroaSpainElwin Sharvill UNQUALIFIED
Aditya M MacleadBrazilAnna Fali NEW
Tony N AlbaresIndiaOnyama Limba QUALIFIED
Ashley P InouyeItalyElwin Sharvill UNQUALIFIED
Jones W AlbaresSpainXuxue Feng NEW
Julie C DoeUnited KingdomStephen Shaw UNQUALIFIED
Claire M NestleItalyStephen Shaw NEW
Cody Q BowleyItalyIoni Bowcher NEW
Costa D SergiIndiaIvan Magalhaes NEW
Ivar B SchemmerBrazilOnyama Limba UNQUALIFIED
Francesco I FollerGermanyAnna Fali NEW
Julie J CaldareraJapanOnyama Limba PROPOSAL
Francesco W SergiFranceElwin Sharvill PROPOSAL
Antonio P FerenczItalyIoni Bowcher RENEWAL
Ricardo A AmigonGermanyAnna Fali RENEWAL
Mujtaba F FigeroaAustraliaIoni Bowcher RENEWAL
Darci Y FollerJapanXuxue Feng QUALIFIED
Maisha M FigeroaArgentinaAnna Fali NEGOTIATION
Chavez Q BriddickFranceStephen Shaw RENEWAL
Deepesh U MaletAustraliaXuxue Feng NEW
Costa U BriddickSpainAnna Fali QUALIFIED
Alejandro P PaprockiRussiaOnyama Limba PROPOSAL
Misaki P ButtGermanyXuxue Feng NEW
Cody U RimRussiaOnyama Limba NEW
Faith U TollnerArgentinaAnna Fali NEGOTIATION
Claire S MaletItalyAmy Elsner RENEWAL
Leja E MorascaAustraliaAnna Fali RENEWAL
Nicolas N IturbideItalyIvan Magalhaes PROPOSAL
Izzy B BriddickRussiaXuxue Feng QUALIFIED
Morrow G DoeJapanStephen Shaw UNQUALIFIED
Alejandro M RimSpainAsiya Javayant QUALIFIED
Ivar C AmigonItalyIvan Magalhaes RENEWAL
Cody C OldroydFranceIvan Magalhaes NEW
James G ChuiCanadaAsiya Javayant QUALIFIED
Faith G SlusarskiGermanyBernardo Dominic NEGOTIATION
Isabel T AlbaresIndiaBernardo Dominic UNQUALIFIED
Sinclair G FlosiIndiaAsiya Javayant 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>