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
Leon L VocelkaRussiaAmy Elsner NEGOTIATION
Costa J BriddickRussiaOnyama Limba RENEWAL
Johnson I CaudyArgentinaAnna Fali NEW
Jones D StockhamJapanElwin Sharvill RENEWAL
Sinclair Y SchemmerRussiaElwin Sharvill UNQUALIFIED
Ashley G ButtJapanIvan Magalhaes PROPOSAL
Clifford K WhobreyBrazilXuxue Feng QUALIFIED
Mujtaba B BologniaRussiaIvan Magalhaes NEGOTIATION
Mayumi A ChuiRussiaIoni Bowcher RENEWAL
Silvio J StensethJapanAsiya Javayant NEW
Leon V RutaUnited KingdomIoni Bowcher NEGOTIATION
Claire O MaletAustraliaAnna Fali RENEWAL
James G RoysterGermanyAnna Fali UNQUALIFIED
Kadeem T GauchoArgentinaAmy Elsner UNQUALIFIED
Nicolas V PerinSpainOnyama Limba NEW
Leon T SaylorsFranceIvan Magalhaes PROPOSAL
Nicolas X WieserItalyBernardo Dominic QUALIFIED
Morrow U IturbideSpainIvan Magalhaes PROPOSAL
Kaitlin Y WhobreyFranceXuxue Feng RENEWAL
Octavia G RimAustraliaBernardo Dominic NEGOTIATION
Salvatore Y RutaGermanyOnyama Limba NEW
Antonio E PerinIndiaStephen Shaw QUALIFIED
Francesco C ButtCanadaXuxue Feng PROPOSAL
Isabel P MorascaJapanXuxue Feng PROPOSAL
Aditya R AmigonCanadaAnna Fali QUALIFIED
Leon I PaprockiAustraliaXuxue Feng NEW
Morrow V SlusarskiGermanyIoni Bowcher UNQUALIFIED
Julie J ShinkoFranceBernardo Dominic RENEWAL
Mujtaba F ButtIndiaStephen Shaw QUALIFIED
Octavia Q VenereUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas P FerenczGermanyStephen Shaw NEW
Jennifer Z OldroydGermanyAnna Fali NEGOTIATION
Misaki H TollnerIndiaIoni Bowcher NEW
Octavia D RutaArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois N FigeroaRussiaOnyama Limba NEW
Stacey Z BriddickJapanStephen Shaw NEW
Murillo G RoysterSpainXuxue Feng UNQUALIFIED
Maria H InouyeItalyIvan Magalhaes NEW
Murillo X RulapaughIndiaAmy Elsner QUALIFIED
Ashley C StockhamIndiaOnyama Limba RENEWAL
Johnson K GillianSpainAsiya Javayant RENEWAL
Greenwood D SergiItalyAnna Fali RENEWAL
Ivar C WaycottItalyIvan Magalhaes PROPOSAL
Sinclair M IturbideArgentinaIvan Magalhaes PROPOSAL
Aditya J VenereArgentinaAsiya Javayant QUALIFIED
Adams K RutaSpainIoni Bowcher UNQUALIFIED
Octavia Z DilliardUnited KingdomXuxue Feng RENEWAL
Jefferson I SlusarskiRussiaAsiya Javayant NEW
Deepesh P VenereRussiaAnna Fali UNQUALIFIED
Sinclair Y GlickCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie R BowleyJapanAsiya Javayant PROPOSAL
Antonio R WhobreySpainXuxue Feng UNQUALIFIED
Adams H VocelkaFranceAmy Elsner QUALIFIED
Murillo W MorascaRussiaIvan Magalhaes RENEWAL
Deepesh S RimBrazilAmy Elsner UNQUALIFIED
Aruna C FlosiItalyAsiya Javayant UNQUALIFIED
Emily O MaletBrazilAmy Elsner QUALIFIED
Aruna K IturbideAustraliaOnyama Limba NEGOTIATION
Kadeem Y FlosiArgentinaAnna Fali UNQUALIFIED
Johnson Z BowleyFranceAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh Q RoysterBrazil2024-04-19Printing Dimensions PROPOSAL73Xuxue Feng
1001Jefferson D DarakjyIndia2024-04-23Chapman, Ross E Esq NEW15Ivan Magalhaes
1002Faith S SaylorsRussia2024-04-15Morlong Associates PROPOSAL22Asiya Javayant
1003Aditya C TollnerGermany2024-03-30Truhlar And Truhlar Attys UNQUALIFIED88Bernardo Dominic
1004Salvatore F GillianAustralia2024-04-07Buckley Miller Wright RENEWAL48Asiya Javayant
1005Alejandro H ShinkoAustralia2024-03-31Chemel, James L Cpa RENEWAL63Onyama Limba
1006Smith W NestleArgentina2024-04-07Rangoni Of Florence NEGOTIATION50Xuxue Feng
1007Rodrigues T RulapaughArgentina2024-04-10Commercial Press NEGOTIATION92Elwin Sharvill
1008Juan A PerinCanada2024-04-01Chanay, Jeffrey A Esq NEGOTIATION74Ioni Bowcher
1009Clifford Q InouyeRussia2024-04-24King, Christopher A Esq UNQUALIFIED95Stephen Shaw
1010Julie O FerenczItaly2024-04-10Morlong Associates PROPOSAL96Asiya Javayant
1011Morrow Y TollnerSpain2024-04-21Feiner Bros NEW13Stephen Shaw
1012Claire T MarrierJapan2024-03-29Benton, John B Jr QUALIFIED78Elwin Sharvill
1013Leon A TollnerArgentina2024-04-10Buckley Miller Wright QUALIFIED63Stephen Shaw
1014Alejandro X CaudySpain2024-03-29Feiner Bros PROPOSAL85Bernardo Dominic
1015Costa J OstroskyUnited Kingdom2024-04-07Feiner Bros RENEWAL59Bernardo Dominic
1016Costa V BologniaCanada2024-04-02Feiner Bros PROPOSAL75Xuxue Feng
1017Kadeem B ShinkoJapan2024-04-06Feltz Printing Service NEGOTIATION95Anna Fali
1018Kaitlin L PerinFrance2024-04-04Dorl, James J Esq NEW74Ivan Magalhaes
1019Arvin Y DarakjyFrance2024-04-20Dorl, James J Esq QUALIFIED83Bernardo Dominic
1020Antonio Y WieserItaly2024-04-10Printing Dimensions QUALIFIED95Ioni Bowcher
1021Chavez H BowleyItaly2024-04-21Benton, John B Jr QUALIFIED87Onyama Limba
1022Octavia S KuskoUnited Kingdom2024-04-13Truhlar And Truhlar Attys NEGOTIATION16Bernardo Dominic
1023Darci F BriddickGermany2024-04-22Printing Dimensions NEGOTIATION39Amy Elsner
1024Julie Y CaudyItaly2024-04-08Chapman, Ross E Esq NEW16Asiya Javayant
1025Jennifer M RoysterRussia2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED26Ivan Magalhaes
1026James Y ShinkoBrazil2024-04-11Chemel, James L Cpa PROPOSAL83Ivan Magalhaes
1027David I SchemmerJapan2024-04-17Feltz Printing Service NEW62Amy Elsner
1028Kadeem Y TollnerRussia2024-04-23Dorl, James J Esq RENEWAL83Amy Elsner
1029Clifford I OldroydGermany2024-04-15Feltz Printing Service QUALIFIED22Anna Fali
1030Rodrigues T SergiItaly2024-04-07Dorl, James J Esq QUALIFIED69Stephen Shaw
1031Arvin B StensethItaly2024-04-03Feltz Printing Service RENEWAL92Asiya Javayant
1032Mayumi J WaycottArgentina2024-04-21Feltz Printing Service RENEWAL88Ivan Magalhaes
1033Aika X FollerCanada2024-04-19Printing Dimensions UNQUALIFIED4Elwin Sharvill
1034Jennifer L CampainUnited Kingdom2024-04-04Chapman, Ross E Esq QUALIFIED95Anna Fali
1035James E NestleSpain2024-04-17Feiner Bros NEGOTIATION78Amy Elsner
1036Jefferson I IturbideBrazil2024-04-07Feiner Bros NEW90Xuxue Feng
1037Wickens C DoeIndia2024-04-06Truhlar And Truhlar Attys NEW77Onyama Limba
1038Kadeem P OldroydCanada2024-04-21Chemel, James L Cpa RENEWAL64Onyama Limba
1039Morrow Q ShinkoJapan2024-04-02King, Christopher A Esq NEGOTIATION12Ivan Magalhaes
1040David Q PerinUnited Kingdom2024-04-25Chemel, James L Cpa PROPOSAL79Anna Fali
1041Kaitlin H DarakjyBrazil2024-04-08King, Christopher A Esq NEW6Xuxue Feng
1042Rodrigues G SaylorsRussia2024-04-17Dorl, James J Esq NEW2Bernardo Dominic
1043Claire O SlusarskiAustralia2024-04-19Chanay, Jeffrey A Esq NEW96Onyama Limba
1044Maisha M GarufiJapan2024-04-11King, Christopher A Esq UNQUALIFIED27Xuxue Feng
1045Kadeem F SergiArgentina2024-04-17Rangoni Of Florence NEW83Elwin Sharvill
1046Aruna O RutaBrazil2024-04-07Chemel, James L Cpa UNQUALIFIED16Bernardo Dominic
1047Aruna I MaletRussia2024-04-18Chemel, James L Cpa RENEWAL34Anna Fali
1048Deepesh Z FerenczBrazil2024-03-31Chapman, Ross E Esq UNQUALIFIED72Elwin Sharvill
1049Jones Z FollerIndia2024-04-18Dorl, James J Esq RENEWAL24Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Nicolas Q FigeroaAustraliaAnna Fali NEGOTIATION
Mayumi O FollerRussiaStephen Shaw QUALIFIED
Munro Q FigeroaUnited KingdomIoni Bowcher RENEWAL
Ashley H MarrierSpainAmy Elsner NEGOTIATION
Jennifer A AlbaresIndiaXuxue Feng NEW
Murillo L RimGermanyAsiya Javayant QUALIFIED
Aruna K PerinArgentinaStephen Shaw QUALIFIED
Arvin U ChuiGermanyAsiya Javayant RENEWAL
Jones G NickaSpainOnyama Limba PROPOSAL
Tony H VocelkaCanadaBernardo Dominic NEGOTIATION
Leon R SlusarskiItalyIoni Bowcher NEW
Misaki Y AlbaresJapanIvan Magalhaes RENEWAL
Jefferson S SchemmerJapanStephen Shaw NEW
Juan S WieserUnited KingdomIoni Bowcher UNQUALIFIED
Tony V GarufiItalyBernardo Dominic RENEWAL
Deepesh X GarufiBrazilAmy Elsner RENEWAL
Wickens M PaprockiItalyBernardo Dominic NEGOTIATION
Misaki E RutaCanadaAsiya Javayant RENEWAL
Rodrigues F GauchoCanadaAsiya Javayant PROPOSAL
Ricardo H MorascaBrazilIvan Magalhaes RENEWAL
Salvatore Q FigeroaItalyAmy Elsner NEGOTIATION
Johnson J FerenczSpainOnyama Limba NEW
Claire L KolmetzArgentinaAsiya Javayant NEW
Juan Z WhobreyItalyStephen Shaw NEW
Nicolas B NickaItalyElwin Sharvill RENEWAL
Izzy T OldroydGermanyXuxue Feng PROPOSAL
Silvio T WieserJapanElwin Sharvill RENEWAL
Costa L RulapaughBrazilAnna Fali NEGOTIATION
Tony X SergiSpainAnna Fali UNQUALIFIED
David W FigeroaJapanIoni Bowcher PROPOSAL
Deepesh H RulapaughIndiaIvan Magalhaes QUALIFIED
Stacey Y FlosiCanadaIoni Bowcher PROPOSAL
Darci F BriddickAustraliaXuxue Feng PROPOSAL
Jeanfrancois T GauchoSpainIoni Bowcher NEGOTIATION
Juan Z SergiIndiaXuxue Feng PROPOSAL
Johnson X SergiAustraliaElwin Sharvill QUALIFIED
Ricardo F CampainItalyOnyama Limba QUALIFIED
Silvio I BologniaAustraliaAsiya Javayant NEGOTIATION
Claire M WhobreyBrazilXuxue Feng NEGOTIATION
Aruna E WaycottJapanAmy Elsner RENEWAL
Salvatore V SaylorsAustraliaStephen Shaw NEGOTIATION
Alejandro U NickaArgentinaXuxue Feng PROPOSAL
Clifford F NickaCanadaAsiya Javayant RENEWAL
Jones U MaletGermanyBernardo Dominic QUALIFIED
Salvatore T StockhamGermanyAmy Elsner NEW
Jeanfrancois I RutaSpainIoni Bowcher RENEWAL
Stacey D RoysterCanadaAmy Elsner RENEWAL
Chavez V CampainBrazilStephen Shaw RENEWAL
Rodrigues Z StensethFranceStephen Shaw UNQUALIFIED
Kadeem A WhobreySpainAnna Fali PROPOSAL
Frozen Columns
Name
Aruna D Garufi
Ricardo L Dilliard
Claire E Iturbide
James D Vocelka
Adams X Malet
Adams D Foller
Leon R Stockham
Izzy B Chui
Leon K Paprocki
Johnson P Maclead
Aika T Royster
Smith B Slusarski
Deepesh W Sergi
Sinclair U Caldarera
Octavia B Marrier
Aruna T Perin
Costa C Amigon
Greenwood X Stenseth
Cody U Nicka
Francesco C Gillian
Chavez J Campain
Leon G Iturbide
Jones G Wieser
Cody U Schemmer
Juan W Vocelka
Wickens B Briddick
Munro H Doe
Clifford T Waycott
Cody B Oldroyd
Leja K Gaucho
Leja G Doe
Antonio I Tollner
Clifford R Poquette
Chavez L Sergi
Octavia P Paprocki
Leja T Caldarera
Isabel H Malet
Wickens K Malet
Nicolas P Gaucho
Aika T Dilliard
Isabel X Malet
Cody T Foller
Aika M Darakjy
David Q Paprocki
Darci Y Oldroyd
Izzy P Rim
Silvio U Ruta
James B Amigon
Deepesh M Doe
Julie S Flosi
IdCountryDate
1000Australia2024-04-13
1001Brazil2024-04-17
1002Spain2024-04-03
1003France2024-04-08
1004Russia2024-03-30
1005Japan2024-04-09
1006Spain2024-04-01
1007Australia2024-04-17
1008Germany2024-03-30
1009Brazil2024-04-12
1010Russia2024-04-08
1011United Kingdom2024-03-30
1012Argentina2024-03-28
1013United Kingdom2024-04-20
1014France2024-04-26
1015Japan2024-04-21
1016Brazil2024-04-02
1017Japan2024-04-10
1018Italy2024-04-17
1019Japan2024-04-06
1020Italy2024-04-23
1021Italy2024-04-03
1022Canada2024-04-09
1023Australia2024-04-09
1024Australia2024-04-11
1025Japan2024-04-10
1026Italy2024-04-25
1027India2024-04-25
1028Spain2024-04-23
1029United Kingdom2024-04-03
1030Spain2024-04-07
1031France2024-04-25
1032Germany2024-04-21
1033Australia2024-03-30
1034Russia2024-04-02
1035Russia2024-04-16
1036India2024-04-10
1037United Kingdom2024-04-22
1038France2024-04-12
1039United Kingdom2024-04-16
1040Russia2024-03-30
1041Australia2024-04-07
1042Japan2024-04-12
1043Russia2024-04-15
1044Russia2024-04-25
1045Japan2024-04-26
1046Japan2024-04-05
1047Italy2024-04-17
1048Canada2024-04-15
1049Canada2024-04-26

On-Demand Data

NameIdCountryDate
Silvio T Stockham1000Russia2024-04-15
Emily H Albares1001India2024-04-16
Stacey P Flosi1002Japan2024-04-19
Misaki S Bolognia1003Brazil2024-04-04
Smith W Inouye1004Japan2024-04-08
Ricardo W Malet1005India2024-03-29
Stacey U Figeroa1006Russia2024-04-23
Cody Z Rulapaugh1007France2024-04-17
Rodrigues G Briddick1008Argentina2024-04-12
Kadeem F Campain1009Germany2024-04-08
Ashley F Amigon1010Japan2024-04-16
Isabel G Venere1011Spain2024-03-30
Octavia T Kusko1012Japan2024-04-05
Murillo H Foller1013United Kingdom2024-03-30
Morrow U Whobrey1014Australia2024-04-04
Arvin R Briddick1015India2024-04-08
Isabel A Marrier1016Argentina2024-04-06
Adams U Iturbide1017Spain2024-04-14
Aditya P Maclead1018Russia2024-04-09
Munro X Ferencz1019Argentina2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki V MaletArgentinaIoni Bowcher QUALIFIED
Julie G BologniaRussiaAnna Fali NEW
Darci N GarufiUnited KingdomAnna Fali NEW
Alejandro P BriddickUnited KingdomAnna Fali NEW
Aruna I FlosiSpainIvan Magalhaes NEGOTIATION
Aika J NickaUnited KingdomAsiya Javayant RENEWAL
Adams I PerinCanadaStephen Shaw UNQUALIFIED
Isabel M VenereSpainOnyama Limba UNQUALIFIED
Jennifer A MaletAustraliaAsiya Javayant NEW
Adams T CaudyBrazilAnna Fali QUALIFIED
Wickens T ChuiUnited KingdomIoni Bowcher PROPOSAL
Silvio P RulapaughGermanyAsiya Javayant PROPOSAL
Antonio P TollnerGermanyXuxue Feng PROPOSAL
Maisha C AlbaresGermanyOnyama Limba UNQUALIFIED
Julie R DilliardItalyIvan Magalhaes PROPOSAL
Chavez M FigeroaGermanyIvan Magalhaes PROPOSAL
Izzy F BologniaCanadaAnna Fali UNQUALIFIED
Alejandro M KolmetzBrazilIvan Magalhaes PROPOSAL
Smith A DoeRussiaXuxue Feng NEW
Antonio X FigeroaBrazilBernardo Dominic RENEWAL
Murillo F KuskoItalyAsiya Javayant NEGOTIATION
Munro M GlickRussiaOnyama Limba PROPOSAL
James L SlusarskiCanadaBernardo Dominic NEW
Smith D IturbideBrazilStephen Shaw UNQUALIFIED
Sinclair O BologniaItalyOnyama Limba NEW
Mujtaba Y CaudyCanadaAmy Elsner PROPOSAL
Johnson E WhobreyBrazilStephen Shaw PROPOSAL
Juan D KolmetzJapanAsiya Javayant NEW
Sinclair G FigeroaSpainAmy Elsner NEW
James K GlickBrazilAsiya Javayant NEW
Leon L CampainIndiaElwin Sharvill RENEWAL
Morrow L StensethArgentinaOnyama Limba RENEWAL
Darci S SlusarskiIndiaStephen Shaw PROPOSAL
David G FlosiCanadaBernardo Dominic UNQUALIFIED
Silvio L ButtFranceIoni Bowcher PROPOSAL
Izzy D GlickGermanyStephen Shaw NEW
Wickens G AlbaresRussiaXuxue Feng UNQUALIFIED
Aruna D AmigonBrazilAsiya Javayant UNQUALIFIED
Wickens O DoeArgentinaIvan Magalhaes PROPOSAL
Mujtaba Q CampainRussiaIoni Bowcher 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>