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
James A SergiRussiaOnyama Limba NEW
Mujtaba W PerinArgentinaAnna Fali NEW
Cody R StensethBrazilIvan Magalhaes QUALIFIED
Faith F PaprockiArgentinaAsiya Javayant QUALIFIED
Jones L GlickItalyElwin Sharvill RENEWAL
Clifford L GlickGermanyXuxue Feng NEW
Mayumi M ChuiAustraliaIoni Bowcher NEW
Octavia E DoeCanadaAmy Elsner PROPOSAL
Claire X CaldareraGermanyAsiya Javayant NEGOTIATION
Mayumi C WieserGermanyIvan Magalhaes NEGOTIATION
David H VenereBrazilAmy Elsner UNQUALIFIED
Nicolas D StockhamCanadaAnna Fali UNQUALIFIED
Antonio S VenereBrazilBernardo Dominic NEW
Francesco L CampainUnited KingdomElwin Sharvill UNQUALIFIED
Tony C RoysterItalyOnyama Limba PROPOSAL
Jeanfrancois G WhobreyArgentinaXuxue Feng RENEWAL
Adams D VocelkaIndiaIoni Bowcher NEW
Morrow M RulapaughFranceStephen Shaw NEW
Claire F VenereSpainXuxue Feng QUALIFIED
Greenwood O CaudyGermanyAmy Elsner QUALIFIED
Leon V GauchoFranceAsiya Javayant NEW
Antonio B SaylorsFranceOnyama Limba RENEWAL
Julie L PaprockiItalyAnna Fali NEW
Tony Z RoysterAustraliaStephen Shaw QUALIFIED
David B DoeCanadaAmy Elsner RENEWAL
Cody X NestleIndiaElwin Sharvill NEW
Ricardo K PaprockiGermanyOnyama Limba PROPOSAL
Antonio T VocelkaSpainIoni Bowcher UNQUALIFIED
Ivar D OldroydRussiaIoni Bowcher NEGOTIATION
Isabel N VenereJapanElwin Sharvill QUALIFIED
Arvin P CaldareraBrazilStephen Shaw NEGOTIATION
Kaitlin T KolmetzUnited KingdomAsiya Javayant QUALIFIED
Arvin G WieserRussiaElwin Sharvill PROPOSAL
Claire P MorascaGermanyAsiya Javayant QUALIFIED
Izzy V StensethRussiaIoni Bowcher UNQUALIFIED
Arvin M CampainCanadaAnna Fali NEGOTIATION
James Q GarufiItalyBernardo Dominic NEGOTIATION
Deepesh N StockhamIndiaAnna Fali QUALIFIED
Antonio W WaycottUnited KingdomStephen Shaw QUALIFIED
Morrow L SchemmerUnited KingdomAsiya Javayant NEW
Aruna N SergiRussiaBernardo Dominic NEW
Mujtaba W GillianJapanAnna Fali NEGOTIATION
Mujtaba B SaylorsRussiaStephen Shaw RENEWAL
Emily L WieserCanadaAnna Fali QUALIFIED
Clifford R CaudyItalyBernardo Dominic QUALIFIED
Aruna H FlosiBrazilXuxue Feng NEW
Julie Q RoysterCanadaOnyama Limba PROPOSAL
Ricardo O MaletIndiaStephen Shaw PROPOSAL
Cody S GauchoFranceXuxue Feng NEGOTIATION
Munro I KuskoAustraliaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ivar L CaudyAustraliaAmy Elsner PROPOSAL
Jeanfrancois M TollnerArgentinaBernardo Dominic NEGOTIATION
Octavia H FlosiJapanIoni Bowcher QUALIFIED
Isabel M ShinkoBrazilElwin Sharvill QUALIFIED
Chavez O FigeroaBrazilStephen Shaw QUALIFIED
Murillo Y CaldareraFranceAsiya Javayant RENEWAL
Jennifer D DarakjyRussiaIoni Bowcher NEW
Ashley P PaprockiIndiaXuxue Feng UNQUALIFIED
Aruna G NickaBrazilAsiya Javayant PROPOSAL
Morrow A GlickIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo K BriddickItaly2024-04-12Feltz Printing Service PROPOSAL90Amy Elsner
1001Costa V BowleyRussia2024-04-14Commercial Press NEW97Onyama Limba
1002Jefferson J IturbideJapan2024-04-12Chanay, Jeffrey A Esq NEGOTIATION92Onyama Limba
1003Costa B FollerSpain2024-03-28Morlong Associates PROPOSAL57Elwin Sharvill
1004Sinclair Y StensethCanada2024-04-11Rousseaux, Michael Esq RENEWAL60Stephen Shaw
1005Ashley B RimGermany2024-04-13Morlong Associates NEW48Xuxue Feng
1006Greenwood W TollnerUnited Kingdom2024-04-06Chanay, Jeffrey A Esq NEW99Xuxue Feng
1007Nicolas Y InouyeBrazil2024-04-08Rangoni Of Florence PROPOSAL98Anna Fali
1008Murillo P CaudyArgentina2024-03-24Chanay, Jeffrey A Esq UNQUALIFIED76Bernardo Dominic
1009Leon W KuskoGermany2024-04-08Buckley Miller Wright QUALIFIED53Xuxue Feng
1010Cody J PerinCanada2024-04-05Morlong Associates NEGOTIATION89Asiya Javayant
1011Maria W BologniaItaly2024-03-30Buckley Miller Wright NEW14Elwin Sharvill
1012Mujtaba O MaletGermany2024-03-28Chemel, James L Cpa RENEWAL67Elwin Sharvill
1013Morrow Y OldroydJapan2024-04-08Feltz Printing Service RENEWAL66Xuxue Feng
1014Aruna N IturbideRussia2024-04-16King, Christopher A Esq PROPOSAL9Stephen Shaw
1015Rodrigues M StockhamUnited Kingdom2024-04-14Benton, John B Jr RENEWAL73Ivan Magalhaes
1016Wickens H NestleFrance2024-04-20Chanay, Jeffrey A Esq RENEWAL80Xuxue Feng
1017Juan T BowleyItaly2024-03-29Commercial Press PROPOSAL49Ivan Magalhaes
1018Rodrigues Q FollerIndia2024-04-01Rangoni Of Florence QUALIFIED83Onyama Limba
1019James X RoysterArgentina2024-04-02Chapman, Ross E Esq RENEWAL42Anna Fali
1020Johnson O SaylorsBrazil2024-04-21Buckley Miller Wright NEGOTIATION47Ioni Bowcher
1021Deepesh G PerinFrance2024-04-21Rousseaux, Michael Esq PROPOSAL2Amy Elsner
1022Adams M FlosiArgentina2024-04-01Dorl, James J Esq NEW62Elwin Sharvill
1023Cody M BriddickCanada2024-04-04Truhlar And Truhlar Attys PROPOSAL59Ioni Bowcher
1024Silvio N BologniaFrance2024-04-16Dorl, James J Esq RENEWAL20Ivan Magalhaes
1025Faith Q TollnerCanada2024-04-07Feltz Printing Service QUALIFIED18Anna Fali
1026Clifford E SchemmerItaly2024-04-19King, Christopher A Esq NEW57Xuxue Feng
1027Stacey H RoysterSpain2024-04-04Commercial Press UNQUALIFIED48Xuxue Feng
1028Munro H SaylorsBrazil2024-03-29Rousseaux, Michael Esq RENEWAL31Onyama Limba
1029Greenwood L SergiArgentina2024-04-08Chapman, Ross E Esq RENEWAL44Anna Fali
1030Sinclair R DarakjyIndia2024-03-29Feiner Bros NEW93Bernardo Dominic
1031Murillo B GarufiFrance2024-04-12Rousseaux, Michael Esq NEW68Xuxue Feng
1032Arvin C VenereArgentina2024-04-16Commercial Press NEGOTIATION50Xuxue Feng
1033Jeanfrancois J RoysterSpain2024-04-03Commercial Press RENEWAL77Ioni Bowcher
1034Faith O ButtFrance2024-04-11Chemel, James L Cpa NEGOTIATION40Xuxue Feng
1035Silvio P PoquetteFrance2024-04-15Printing Dimensions RENEWAL31Onyama Limba
1036Clifford Q ButtUnited Kingdom2024-03-28Morlong Associates NEGOTIATION14Elwin Sharvill
1037Faith E NickaSpain2024-04-14Rousseaux, Michael Esq NEGOTIATION79Elwin Sharvill
1038Misaki B DilliardCanada2024-04-06Chanay, Jeffrey A Esq NEGOTIATION50Asiya Javayant
1039Mujtaba C PerinGermany2024-04-22Morlong Associates NEGOTIATION45Asiya Javayant
1040Francesco X WieserItaly2024-04-04Morlong Associates NEGOTIATION56Elwin Sharvill
1041Faith S KuskoArgentina2024-03-26Chapman, Ross E Esq UNQUALIFIED99Elwin Sharvill
1042Julie Y InouyeRussia2024-04-16Benton, John B Jr PROPOSAL85Elwin Sharvill
1043Kaitlin D RimSpain2024-04-17Chemel, James L Cpa UNQUALIFIED63Elwin Sharvill
1044Kaitlin H GillianIndia2024-04-01Chanay, Jeffrey A Esq PROPOSAL58Ioni Bowcher
1045Greenwood V InouyeCanada2024-04-06Morlong Associates NEW96Anna Fali
1046Costa B DarakjyCanada2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED77Xuxue Feng
1047Munro L PaprockiItaly2024-04-12Dorl, James J Esq UNQUALIFIED13Amy Elsner
1048Mayumi P RimBrazil2024-04-11Rangoni Of Florence UNQUALIFIED10Asiya Javayant
1049Izzy H OstroskyBrazil2024-04-06Morlong Associates RENEWAL89Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair E SergiAustraliaElwin Sharvill NEGOTIATION
Leon L WieserIndiaElwin Sharvill UNQUALIFIED
Salvatore Z RoysterArgentinaAmy Elsner UNQUALIFIED
Jones Y BriddickIndiaIoni Bowcher NEW
Munro M VocelkaUnited KingdomIoni Bowcher PROPOSAL
Claire T RoysterItalyIoni Bowcher NEGOTIATION
Cody J MaletGermanyAmy Elsner UNQUALIFIED
Aditya E StensethFranceBernardo Dominic RENEWAL
Cody N OldroydIndiaAnna Fali NEW
Smith V MaletSpainBernardo Dominic NEGOTIATION
Maria C BologniaUnited KingdomBernardo Dominic PROPOSAL
Clifford K RulapaughItalyXuxue Feng UNQUALIFIED
Ricardo P VenereCanadaStephen Shaw UNQUALIFIED
Chavez K KolmetzIndiaStephen Shaw PROPOSAL
Maisha A MacleadItalyOnyama Limba RENEWAL
Stacey J ButtCanadaStephen Shaw NEW
Jones F ChuiRussiaAnna Fali UNQUALIFIED
Adams C MacleadGermanyBernardo Dominic UNQUALIFIED
Jones M MaletBrazilOnyama Limba NEW
Antonio O VocelkaJapanBernardo Dominic RENEWAL
Jefferson X MaletItalyStephen Shaw NEW
Antonio U PoquetteRussiaOnyama Limba NEW
Maria Q RulapaughUnited KingdomAmy Elsner UNQUALIFIED
Stacey P KolmetzAustraliaAmy Elsner UNQUALIFIED
Deepesh C KuskoUnited KingdomAsiya Javayant QUALIFIED
Deepesh B RimArgentinaIvan Magalhaes RENEWAL
Deepesh T GlickCanadaXuxue Feng NEW
Wickens L DilliardSpainXuxue Feng NEW
Munro D GlickArgentinaElwin Sharvill QUALIFIED
Izzy F GlickCanadaXuxue Feng NEW
Maria D DoeSpainXuxue Feng RENEWAL
Tony E NestleRussiaIoni Bowcher RENEWAL
Chavez K CaudyGermanyXuxue Feng NEGOTIATION
Jefferson S PaprockiBrazilAnna Fali UNQUALIFIED
Chavez F AmigonBrazilAsiya Javayant UNQUALIFIED
Antonio D BologniaCanadaXuxue Feng NEW
Salvatore R StockhamIndiaIoni Bowcher UNQUALIFIED
Tony U ShinkoGermanyAsiya Javayant UNQUALIFIED
Costa E ButtArgentinaIoni Bowcher NEW
Leja Y KuskoAustraliaStephen Shaw QUALIFIED
Antonio F PerinGermanyXuxue Feng NEW
Chavez I IturbideRussiaAmy Elsner RENEWAL
Chavez A RimGermanyOnyama Limba PROPOSAL
Deepesh T MarrierArgentinaBernardo Dominic NEW
Maria C IturbideFranceElwin Sharvill NEGOTIATION
James J CaldareraItalyBernardo Dominic RENEWAL
Arvin O SaylorsSpainXuxue Feng PROPOSAL
Arvin C RutaFranceOnyama Limba QUALIFIED
Aditya V AlbaresCanadaAmy Elsner UNQUALIFIED
James E FerenczUnited KingdomBernardo Dominic QUALIFIED
Frozen Columns
Name
Emily W Paprocki
Munro H Nestle
Salvatore U Foller
Aika Z Morasca
Smith A Rulapaugh
Silvio K Inouye
Jeanfrancois H Nicka
Emily N Doe
Johnson K Amigon
Wickens P Rim
Salvatore W Venere
Ivar N Malet
Maisha G Glick
Deepesh R Schemmer
Julie O Caudy
Misaki S Marrier
Emily H Maclead
Julie T Chui
Misaki U Whobrey
Murillo P Ferencz
Maisha H Garufi
Jennifer Y Figeroa
Francesco C Ferencz
Cody O Malet
Emily C Nestle
Salvatore O Venere
David W Inouye
Deepesh I Briddick
Ricardo C Nicka
Murillo M Saylors
Ivar S Garufi
Alejandro P Perin
Isabel L Ostrosky
Costa C Figeroa
Smith U Stockham
Octavia N Briddick
James O Garufi
Sinclair J Caldarera
Silvio E Slusarski
Octavia B Maclead
Jennifer P Rim
Juan C Foller
Mujtaba Q Nicka
Adams Z Rulapaugh
Leon Y Caudy
Morrow R Waycott
Jennifer S Sergi
Maria C Flosi
Faith Z Doe
Antonio H Darakjy
IdCountryDate
1000Canada2024-04-06
1001Brazil2024-04-08
1002France2024-04-04
1003Canada2024-03-25
1004United Kingdom2024-04-17
1005France2024-04-11
1006Australia2024-04-01
1007United Kingdom2024-03-24
1008Argentina2024-04-09
1009France2024-04-08
1010Brazil2024-04-05
1011Japan2024-04-13
1012Brazil2024-04-11
1013Brazil2024-04-09
1014United Kingdom2024-03-29
1015Japan2024-03-27
1016France2024-04-04
1017Russia2024-04-08
1018Spain2024-03-28
1019Japan2024-04-17
1020Germany2024-03-24
1021France2024-04-09
1022Australia2024-04-13
1023Russia2024-03-27
1024Japan2024-03-24
1025India2024-04-19
1026Argentina2024-04-12
1027Italy2024-04-22
1028Argentina2024-04-08
1029Argentina2024-04-10
1030India2024-04-16
1031Spain2024-04-17
1032Spain2024-04-05
1033Canada2024-03-25
1034France2024-04-21
1035Japan2024-04-01
1036India2024-04-07
1037Brazil2024-04-16
1038Brazil2024-04-05
1039Spain2024-03-25
1040India2024-03-27
1041Brazil2024-03-27
1042Germany2024-04-06
1043Spain2024-04-14
1044Japan2024-03-29
1045Japan2024-03-29
1046Canada2024-04-01
1047Italy2024-04-02
1048Argentina2024-04-11
1049Brazil2024-04-11

On-Demand Data

NameIdCountryDate
Costa R Sergi1000France2024-04-18
Stacey T Nestle1001Argentina2024-04-12
Arvin F Malet1002France2024-04-09
Octavia U Briddick1003Italy2024-04-19
Ashley G Shinko1004Spain2024-04-12
Maria F Vocelka1005Italy2024-04-16
Emily B Stenseth1006France2024-04-14
Arvin C Butt1007United Kingdom2024-04-13
Juan Z Kusko1008Germany2024-04-07
Mayumi L Stenseth1009Italy2024-04-12
Cody C Paprocki1010Italy2024-04-19
Faith U Bolognia1011Russia2024-03-27
Smith H Garufi1012Australia2024-03-25
Jeanfrancois C Foller1013Brazil2024-03-28
Aditya Z Gillian1014Canada2024-04-02
Arvin W Ruta1015Brazil2024-04-12
Rodrigues P Iturbide1016Italy2024-03-30
Octavia C Caldarera1017Japan2024-04-16
Costa L Darakjy1018United Kingdom2024-04-16
Wickens T Rim1019United Kingdom2024-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba D MarrierItalyIvan Magalhaes NEGOTIATION
Jones H StensethAustraliaOnyama Limba QUALIFIED
Munro D RimArgentinaStephen Shaw PROPOSAL
Juan D FigeroaUnited KingdomIoni Bowcher RENEWAL
James X FigeroaGermanyXuxue Feng NEW
Aika A ShinkoRussiaAnna Fali RENEWAL
Jennifer W InouyeGermanyIoni Bowcher PROPOSAL
Maisha E SchemmerCanadaBernardo Dominic NEW
Chavez J ChuiBrazilOnyama Limba RENEWAL
Greenwood Q OstroskyRussiaIoni Bowcher QUALIFIED
David T NickaItalyXuxue Feng QUALIFIED
Jennifer R NestleGermanyAsiya Javayant QUALIFIED
Rodrigues C IturbideCanadaStephen Shaw NEW
Wickens N RutaFranceIvan Magalhaes QUALIFIED
Sinclair B WaycottFranceIvan Magalhaes NEW
Isabel P CampainArgentinaAnna Fali RENEWAL
Mujtaba F SaylorsJapanOnyama Limba NEW
Julie P ChuiFranceElwin Sharvill NEGOTIATION
Munro S CaudyItalyStephen Shaw QUALIFIED
Arvin M KolmetzRussiaXuxue Feng RENEWAL
Rodrigues O StensethItalyBernardo Dominic RENEWAL
Darci Z PerinJapanBernardo Dominic RENEWAL
Maisha E CaldareraCanadaAmy Elsner PROPOSAL
Leon A ChuiJapanXuxue Feng RENEWAL
Chavez O RulapaughIndiaXuxue Feng PROPOSAL
Chavez Z AlbaresGermanyAsiya Javayant NEW
Juan V MaletFranceAmy Elsner PROPOSAL
Alejandro J PoquetteGermanyElwin Sharvill QUALIFIED
Mujtaba V WaycottFranceAnna Fali PROPOSAL
Maria S PerinItalyIoni Bowcher NEGOTIATION
Murillo T FlosiAustraliaStephen Shaw PROPOSAL
Johnson J CaldareraItalyOnyama Limba PROPOSAL
Izzy A OldroydItalyStephen Shaw UNQUALIFIED
Salvatore O FollerCanadaOnyama Limba QUALIFIED
Jeanfrancois T GarufiJapanBernardo Dominic UNQUALIFIED
Nicolas G FlosiArgentinaXuxue Feng RENEWAL
Nicolas K RoysterUnited KingdomAnna Fali QUALIFIED
Claire F MaletUnited KingdomElwin Sharvill RENEWAL
Deepesh S AlbaresGermanyAsiya Javayant QUALIFIED
Aika C GillianIndiaIvan Magalhaes QUALIFIED

<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>