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
Cody L AmigonIndiaOnyama Limba NEW
Isabel G MaletGermanyOnyama Limba NEW
Kadeem W SlusarskiAustraliaIvan Magalhaes PROPOSAL
Jennifer D DarakjyCanadaAnna Fali PROPOSAL
Octavia L IturbideSpainBernardo Dominic NEGOTIATION
Rodrigues Y OstroskyGermanyAnna Fali PROPOSAL
Ricardo P VenereRussiaXuxue Feng RENEWAL
Arvin X SchemmerGermanyIvan Magalhaes QUALIFIED
David I SergiRussiaOnyama Limba UNQUALIFIED
Maria E SergiFranceAsiya Javayant NEGOTIATION
Francesco H SaylorsArgentinaIoni Bowcher NEGOTIATION
Leon L GlickGermanyAsiya Javayant NEW
Alejandro K DilliardFranceStephen Shaw PROPOSAL
Jennifer S CampainRussiaAnna Fali UNQUALIFIED
Stacey C FlosiSpainIoni Bowcher NEW
Izzy V FigeroaGermanyBernardo Dominic UNQUALIFIED
Johnson K BowleyArgentinaOnyama Limba NEGOTIATION
Wickens R StensethCanadaBernardo Dominic UNQUALIFIED
Cody S FerenczGermanyAmy Elsner NEW
Octavia J PaprockiSpainAnna Fali UNQUALIFIED
Francesco J RimBrazilOnyama Limba NEW
Francesco S GarufiArgentinaElwin Sharvill QUALIFIED
Ivar K VenereSpainAmy Elsner UNQUALIFIED
Nicolas H WieserItalyOnyama Limba QUALIFIED
Sinclair C RimGermanyElwin Sharvill RENEWAL
Jeanfrancois X RulapaughGermanyAsiya Javayant NEGOTIATION
Costa L MaletJapanBernardo Dominic NEGOTIATION
Murillo W KolmetzFranceAmy Elsner NEW
Tony U ButtIndiaIoni Bowcher QUALIFIED
Greenwood G OstroskyGermanyXuxue Feng NEW
Sinclair I NickaArgentinaAnna Fali PROPOSAL
Adams E PaprockiSpainXuxue Feng PROPOSAL
Morrow G BowleySpainAmy Elsner NEGOTIATION
Sinclair F KolmetzSpainElwin Sharvill NEW
Alejandro P RoysterItalyElwin Sharvill NEW
Clifford L RulapaughIndiaStephen Shaw UNQUALIFIED
Emily X BologniaFranceIoni Bowcher UNQUALIFIED
Murillo Z SaylorsArgentinaAnna Fali NEGOTIATION
Silvio D PaprockiFranceBernardo Dominic NEW
Cody K WhobreyFranceBernardo Dominic UNQUALIFIED
Juan I KuskoCanadaStephen Shaw NEGOTIATION
Cody B RimItalyBernardo Dominic UNQUALIFIED
Munro R OldroydAustraliaXuxue Feng NEW
Clifford M FollerUnited KingdomIoni Bowcher RENEWAL
Cody W CaudySpainIoni Bowcher UNQUALIFIED
Morrow D InouyeGermanyOnyama Limba UNQUALIFIED
Jeanfrancois G MaletIndiaBernardo Dominic NEGOTIATION
Emily J StensethRussiaAsiya Javayant NEGOTIATION
Julie I SergiIndiaOnyama Limba RENEWAL
Kaitlin K GillianSpainXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo Z BologniaCanadaBernardo Dominic UNQUALIFIED
Leon I TollnerJapanXuxue Feng RENEWAL
Arvin V RulapaughAustraliaBernardo Dominic UNQUALIFIED
Wickens G DoeIndiaOnyama Limba QUALIFIED
Jones E ChuiAustraliaBernardo Dominic PROPOSAL
Antonio Q ShinkoAustraliaXuxue Feng NEGOTIATION
Mujtaba C KolmetzFranceAsiya Javayant PROPOSAL
Kaitlin U ChuiFranceAsiya Javayant NEW
Darci S KuskoCanadaBernardo Dominic QUALIFIED
Cody I RoysterSpainAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens Y PerinAustralia2024-04-26Rousseaux, Michael Esq NEGOTIATION75Ioni Bowcher
1001Francesco D PaprockiSpain2024-04-01Feltz Printing Service UNQUALIFIED71Anna Fali
1002Silvio H ShinkoCanada2024-04-06Morlong Associates NEGOTIATION98Onyama Limba
1003Costa U FollerRussia2024-03-30Commercial Press PROPOSAL48Xuxue Feng
1004Francesco E SergiArgentina2024-04-19Feltz Printing Service QUALIFIED82Ivan Magalhaes
1005Misaki L ButtUnited Kingdom2024-04-12Rousseaux, Michael Esq NEGOTIATION52Elwin Sharvill
1006David P MaletSpain2024-04-04Commercial Press UNQUALIFIED48Anna Fali
1007David B FollerBrazil2024-04-23Chemel, James L Cpa PROPOSAL75Xuxue Feng
1008Munro O OldroydArgentina2024-04-04Feltz Printing Service UNQUALIFIED68Stephen Shaw
1009Jefferson N MorascaArgentina2024-04-17Printing Dimensions PROPOSAL7Asiya Javayant
1010Silvio U StockhamArgentina2024-04-09Dorl, James J Esq RENEWAL23Ioni Bowcher
1011Juan B SchemmerIndia2024-04-26Commercial Press NEW16Bernardo Dominic
1012Salvatore K WieserCanada2024-04-13Dorl, James J Esq QUALIFIED63Stephen Shaw
1013Wickens Q MarrierSpain2024-04-24Dorl, James J Esq QUALIFIED39Stephen Shaw
1014Claire M BriddickGermany2024-04-09Rousseaux, Michael Esq RENEWAL50Bernardo Dominic
1015Clifford Y TollnerFrance2024-03-29Feltz Printing Service QUALIFIED67Elwin Sharvill
1016Maria W SchemmerSpain2024-04-27Printing Dimensions NEGOTIATION51Ioni Bowcher
1017Chavez I FigeroaGermany2024-04-16Chanay, Jeffrey A Esq RENEWAL20Ivan Magalhaes
1018Ivar T OstroskyArgentina2024-04-26Benton, John B Jr UNQUALIFIED93Onyama Limba
1019James J WaycottBrazil2024-04-09Chanay, Jeffrey A Esq NEGOTIATION56Stephen Shaw
1020Smith N RulapaughIndia2024-04-17Feiner Bros RENEWAL0Ioni Bowcher
1021Chavez G MaletRussia2024-04-20Rangoni Of Florence UNQUALIFIED34Ivan Magalhaes
1022Mujtaba M AlbaresJapan2024-04-11Chanay, Jeffrey A Esq NEW68Xuxue Feng
1023Kadeem M GarufiJapan2024-04-21Chapman, Ross E Esq NEGOTIATION15Stephen Shaw
1024Adams N DilliardBrazil2024-04-06Printing Dimensions UNQUALIFIED1Ioni Bowcher
1025Isabel K IturbideCanada2024-04-26Feltz Printing Service NEW89Anna Fali
1026Salvatore K SchemmerArgentina2024-04-20Rangoni Of Florence UNQUALIFIED6Ioni Bowcher
1027Alejandro K CampainBrazil2024-04-11Feltz Printing Service PROPOSAL6Bernardo Dominic
1028Izzy Z PerinAustralia2024-04-17Morlong Associates PROPOSAL69Elwin Sharvill
1029Sinclair U StockhamIndia2024-04-06King, Christopher A Esq UNQUALIFIED11Ioni Bowcher
1030Darci T DilliardSpain2024-04-10Feiner Bros NEGOTIATION22Onyama Limba
1031Antonio T TollnerRussia2024-04-05King, Christopher A Esq RENEWAL59Stephen Shaw
1032Aika A GarufiGermany2024-04-01King, Christopher A Esq PROPOSAL40Ivan Magalhaes
1033Costa I VenereFrance2024-04-20Printing Dimensions NEW29Elwin Sharvill
1034Julie R OldroydAustralia2024-04-24Truhlar And Truhlar Attys RENEWAL56Elwin Sharvill
1035Wickens I PaprockiSpain2024-04-03Commercial Press NEGOTIATION9Anna Fali
1036Wickens B FerenczRussia2024-03-30Truhlar And Truhlar Attys NEW37Stephen Shaw
1037Juan R RutaIndia2024-04-04Truhlar And Truhlar Attys QUALIFIED66Anna Fali
1038Jennifer I PerinCanada2024-04-17Chapman, Ross E Esq NEGOTIATION3Ivan Magalhaes
1039Greenwood J BriddickFrance2024-04-05Feiner Bros QUALIFIED15Xuxue Feng
1040Chavez U ChuiBrazil2024-04-18Morlong Associates QUALIFIED28Xuxue Feng
1041Mayumi Q GarufiRussia2024-03-30Buckley Miller Wright NEW78Onyama Limba
1042Ivar R GlickSpain2024-04-09Feltz Printing Service QUALIFIED9Asiya Javayant
1043David I OldroydArgentina2024-04-15Commercial Press NEW10Ioni Bowcher
1044Leon E StockhamIndia2024-04-16Truhlar And Truhlar Attys QUALIFIED8Ioni Bowcher
1045Maisha H IturbideIndia2024-04-01Printing Dimensions UNQUALIFIED95Asiya Javayant
1046Arvin E MarrierAustralia2024-04-27Morlong Associates RENEWAL27Asiya Javayant
1047Chavez K MarrierItaly2024-04-09Feltz Printing Service QUALIFIED34Ioni Bowcher
1048Antonio B VocelkaAustralia2024-04-27Dorl, James J Esq UNQUALIFIED60Stephen Shaw
1049Silvio X NestleJapan2024-04-16Commercial Press NEW8Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire A ShinkoCanadaStephen Shaw PROPOSAL
Smith N PaprockiSpainElwin Sharvill RENEWAL
Ashley X MaletFranceAsiya Javayant NEW
David G InouyeBrazilElwin Sharvill UNQUALIFIED
Alejandro Q StensethUnited KingdomAmy Elsner NEGOTIATION
Alejandro S NickaRussiaAmy Elsner QUALIFIED
Leja R SchemmerGermanyBernardo Dominic NEW
Tony E WhobreyArgentinaAsiya Javayant NEGOTIATION
Kaitlin X SchemmerRussiaAsiya Javayant PROPOSAL
Claire E FerenczJapanAmy Elsner PROPOSAL
Misaki O SlusarskiSpainBernardo Dominic QUALIFIED
Izzy F NestleFranceXuxue Feng QUALIFIED
Leon L WhobreyItalyBernardo Dominic NEW
Wickens S MorascaBrazilElwin Sharvill NEGOTIATION
Cody O CampainJapanAnna Fali QUALIFIED
Stacey U GauchoCanadaIvan Magalhaes PROPOSAL
Jeanfrancois P ShinkoFranceIoni Bowcher NEW
James E OstroskyGermanyAsiya Javayant NEW
Ashley A CampainIndiaOnyama Limba PROPOSAL
Antonio Z TollnerJapanElwin Sharvill RENEWAL
Arvin L RimSpainBernardo Dominic QUALIFIED
Aruna C KuskoAustraliaOnyama Limba RENEWAL
Chavez F GauchoSpainIoni Bowcher RENEWAL
Rodrigues C RutaIndiaBernardo Dominic NEGOTIATION
Rodrigues L SlusarskiRussiaIvan Magalhaes QUALIFIED
Aditya Y BowleyFranceBernardo Dominic NEW
David X RulapaughAustraliaBernardo Dominic QUALIFIED
Deepesh F StockhamAustraliaElwin Sharvill QUALIFIED
Silvio J RutaAustraliaAmy Elsner PROPOSAL
Julie T ShinkoRussiaOnyama Limba NEGOTIATION
Aika W ChuiBrazilIoni Bowcher UNQUALIFIED
Deepesh G BriddickSpainAsiya Javayant UNQUALIFIED
Cody J FlosiBrazilAmy Elsner NEW
James Q PoquetteUnited KingdomBernardo Dominic PROPOSAL
Faith G DoeFranceElwin Sharvill QUALIFIED
Salvatore V StockhamArgentinaAsiya Javayant UNQUALIFIED
Emily N KuskoJapanAnna Fali NEGOTIATION
Costa N FerenczGermanyAnna Fali RENEWAL
Kadeem Z MacleadCanadaAnna Fali QUALIFIED
Jefferson F KuskoFranceIoni Bowcher UNQUALIFIED
Aika Q MaletGermanyStephen Shaw NEW
Silvio V GarufiAustraliaAmy Elsner PROPOSAL
Izzy E StensethBrazilStephen Shaw NEW
Octavia N KolmetzArgentinaXuxue Feng RENEWAL
Izzy F RimGermanyElwin Sharvill PROPOSAL
Francesco X BowleyRussiaAnna Fali NEGOTIATION
Deepesh A DilliardJapanIvan Magalhaes QUALIFIED
Izzy Y KuskoItalyAnna Fali NEW
Emily C KuskoBrazilStephen Shaw RENEWAL
Morrow N BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Kaitlin R Shinko
Arvin I Flosi
Leja O Malet
Claire K Kusko
Morrow J Sergi
Cody D Venere
Morrow A Nicka
Cody I Whobrey
Aditya J Stockham
Ivar R Inouye
Aika P Garufi
Johnson T Nicka
Wickens Y Marrier
Juan K Nestle
Ivar J Rulapaugh
Murillo D Venere
Antonio C Schemmer
Adams C Maclead
Chavez M Ferencz
Jeanfrancois H Shinko
Mujtaba T Perin
Emily Z Malet
Silvio D Chui
Jennifer N Kusko
Julie Z Flosi
Kadeem B Schemmer
Stacey C Garufi
Nicolas V Darakjy
Kaitlin O Oldroyd
David G Dilliard
Adams U Albares
Darci N Gaucho
Costa E Wieser
Emily Y Iturbide
Johnson F Kolmetz
Ivar X Kusko
Julie M Bowley
Jennifer N Kolmetz
Tony G Waycott
Leon S Venere
Faith T Butt
Izzy X Venere
Jefferson C Schemmer
Munro K Caldarera
Ricardo Y Saylors
Kadeem K Albares
Juan R Caldarera
Emily A Campain
Jennifer D Doe
Ricardo D Schemmer
IdCountryDate
1000Spain2024-04-18
1001Russia2024-04-24
1002Australia2024-04-19
1003India2024-04-19
1004France2024-04-27
1005Canada2024-04-09
1006Russia2024-04-06
1007United Kingdom2024-04-09
1008Italy2024-03-30
1009Japan2024-04-01
1010India2024-04-08
1011Germany2024-04-12
1012Japan2024-04-11
1013India2024-04-09
1014France2024-04-12
1015Russia2024-04-08
1016Brazil2024-04-24
1017Germany2024-04-10
1018Italy2024-04-19
1019Brazil2024-04-05
1020India2024-04-17
1021Spain2024-04-23
1022France2024-04-08
1023France2024-04-02
1024Argentina2024-04-19
1025Italy2024-04-03
1026Germany2024-04-05
1027Brazil2024-04-14
1028Germany2024-04-15
1029Germany2024-04-05
1030Brazil2024-04-16
1031India2024-03-30
1032Italy2024-04-02
1033Italy2024-04-03
1034Russia2024-04-01
1035Argentina2024-04-24
1036France2024-04-22
1037India2024-04-12
1038Germany2024-04-07
1039Canada2024-04-12
1040India2024-04-04
1041Brazil2024-04-02
1042India2024-04-05
1043Spain2024-04-11
1044Canada2024-04-22
1045Brazil2024-04-08
1046France2024-04-20
1047Italy2024-04-16
1048Spain2024-04-03
1049Japan2024-04-06

On-Demand Data

NameIdCountryDate
Cody X Malet1000Spain2024-04-01
Octavia K Nicka1001Germany2024-04-21
Jefferson S Royster1002Spain2024-04-04
Kaitlin G Ostrosky1003Russia2024-04-08
Aditya G Morasca1004Canada2024-04-01
Claire C Doe1005Canada2024-04-09
Aditya O Albares1006United Kingdom2024-04-13
Emily H Chui1007Spain2024-04-23
Octavia W Amigon1008Russia2024-04-01
Octavia N Stenseth1009Italy2024-04-05
Aditya W Paprocki1010Japan2024-04-03
Nicolas G Chui1011Brazil2024-04-03
Aruna M Kusko1012Germany2024-03-30
Murillo W Foller1013Germany2024-04-23
Octavia Y Maclead1014Canada2024-04-03
Francesco I Royster1015India2024-04-08
Julie E Foller1016Australia2024-04-12
Aika H Perin1017Canada2024-03-31
Leja D Dilliard1018Japan2024-04-16
Izzy N Ruta1019Argentina2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony P VenereFranceOnyama Limba PROPOSAL
Jeanfrancois H StensethBrazilBernardo Dominic QUALIFIED
Silvio C ChuiUnited KingdomIvan Magalhaes QUALIFIED
Leja A SergiBrazilAnna Fali RENEWAL
Kaitlin T MaletRussiaIvan Magalhaes UNQUALIFIED
Leon E MacleadGermanyElwin Sharvill NEW
Aruna T KolmetzRussiaAmy Elsner PROPOSAL
Kadeem X RoysterIndiaAmy Elsner UNQUALIFIED
Darci I GarufiJapanIoni Bowcher NEGOTIATION
Francesco N AlbaresGermanyIoni Bowcher NEGOTIATION
Aditya H PerinAustraliaOnyama Limba QUALIFIED
Jennifer S SchemmerFranceAmy Elsner RENEWAL
Francesco E GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Leon G VenereAustraliaOnyama Limba PROPOSAL
Clifford N SaylorsItalyIvan Magalhaes PROPOSAL
Darci Z FollerUnited KingdomBernardo Dominic PROPOSAL
Darci Y CaudyItalyIvan Magalhaes NEGOTIATION
Julie Q NestleCanadaStephen Shaw UNQUALIFIED
Faith C BologniaItalyElwin Sharvill QUALIFIED
Aruna E KuskoCanadaAmy Elsner NEGOTIATION
Kaitlin C RulapaughJapanIvan Magalhaes NEW
Aika S TollnerGermanyStephen Shaw PROPOSAL
Tony L FigeroaArgentinaIvan Magalhaes RENEWAL
Jones Z VocelkaRussiaBernardo Dominic PROPOSAL
Leon C BriddickArgentinaElwin Sharvill QUALIFIED
Faith U MacleadIndiaAmy Elsner QUALIFIED
Ricardo H MacleadRussiaIvan Magalhaes UNQUALIFIED
Jones Z MacleadBrazilXuxue Feng UNQUALIFIED
Deepesh A BriddickGermanyAnna Fali NEW
Adams B RutaCanadaIvan Magalhaes PROPOSAL
Leja Z BologniaArgentinaIvan Magalhaes PROPOSAL
Stacey M BologniaJapanAnna Fali NEGOTIATION
Smith Z NestleUnited KingdomAsiya Javayant QUALIFIED
Adams I CaudyItalyAmy Elsner NEGOTIATION
Aditya O WaycottGermanyElwin Sharvill NEGOTIATION
Faith H SaylorsCanadaAsiya Javayant PROPOSAL
Ivar J MarrierAustraliaElwin Sharvill NEW
Juan Y StockhamRussiaIoni Bowcher QUALIFIED
Nicolas B MaletSpainAnna Fali UNQUALIFIED
Nicolas S MaletRussiaOnyama Limba NEGOTIATION

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