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
Clifford B StensethSpainIvan Magalhaes NEGOTIATION
Alejandro S DoeFranceXuxue Feng UNQUALIFIED
Claire F DarakjyAustraliaIvan Magalhaes NEGOTIATION
Costa V CampainArgentinaElwin Sharvill PROPOSAL
Murillo F ShinkoItalyAsiya Javayant NEGOTIATION
Mujtaba W SaylorsAustraliaIvan Magalhaes PROPOSAL
Clifford L PoquetteFranceAmy Elsner NEGOTIATION
Juan S FlosiSpainIvan Magalhaes PROPOSAL
Antonio W WieserArgentinaAnna Fali NEW
Murillo N OldroydRussiaElwin Sharvill QUALIFIED
Leja V KuskoAustraliaAnna Fali RENEWAL
Antonio Q PerinRussiaAmy Elsner QUALIFIED
Chavez R MaletArgentinaAnna Fali NEGOTIATION
Antonio Z RoysterCanadaAmy Elsner UNQUALIFIED
David J PerinAustraliaStephen Shaw NEGOTIATION
Leja C SchemmerGermanyIoni Bowcher RENEWAL
Mayumi M AmigonArgentinaXuxue Feng NEGOTIATION
Aruna Q ShinkoIndiaAsiya Javayant PROPOSAL
Antonio L ShinkoItalyStephen Shaw NEGOTIATION
Wickens X TollnerUnited KingdomAmy Elsner QUALIFIED
Leja M ShinkoItalyAmy Elsner RENEWAL
Francesco M MacleadAustraliaIvan Magalhaes RENEWAL
Aditya T PoquetteFranceAnna Fali UNQUALIFIED
Francesco T ShinkoAustraliaStephen Shaw UNQUALIFIED
Aruna N GillianFranceBernardo Dominic PROPOSAL
Leja L BowleyArgentinaStephen Shaw NEW
Claire M ChuiRussiaIvan Magalhaes QUALIFIED
Sinclair B SchemmerFranceBernardo Dominic RENEWAL
Mujtaba H CaldareraFranceStephen Shaw RENEWAL
Ivar M BriddickArgentinaAnna Fali UNQUALIFIED
Octavia D FigeroaArgentinaIoni Bowcher QUALIFIED
Tony L BriddickSpainAsiya Javayant UNQUALIFIED
Maria Y ChuiUnited KingdomAsiya Javayant QUALIFIED
Mujtaba V NickaJapanIvan Magalhaes RENEWAL
Jefferson S GillianUnited KingdomXuxue Feng PROPOSAL
Kaitlin I RulapaughGermanyStephen Shaw NEW
Leon W IturbideIndiaIoni Bowcher NEW
Alejandro J GillianJapanAsiya Javayant UNQUALIFIED
Jeanfrancois B ButtFranceIoni Bowcher NEGOTIATION
Wickens M IturbideJapanAmy Elsner UNQUALIFIED
Isabel J WieserJapanBernardo Dominic UNQUALIFIED
Leon K BologniaRussiaXuxue Feng NEGOTIATION
Aditya M SergiIndiaXuxue Feng UNQUALIFIED
Alejandro M PerinGermanyAnna Fali RENEWAL
Nicolas C ButtFranceOnyama Limba NEW
Silvio V RimGermanyStephen Shaw NEGOTIATION
Aditya E RimIndiaIvan Magalhaes NEW
Arvin G KuskoSpainXuxue Feng PROPOSAL
Maria N RutaItalyStephen Shaw QUALIFIED
Rodrigues C SchemmerArgentinaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow I MaletGermanyStephen Shaw RENEWAL
Jones P WaycottArgentinaStephen Shaw NEGOTIATION
Aruna U OldroydRussiaXuxue Feng UNQUALIFIED
Francesco Y NickaArgentinaXuxue Feng NEW
Aditya D OldroydArgentinaOnyama Limba PROPOSAL
Juan B AmigonArgentinaAmy Elsner NEW
Jennifer N AlbaresRussiaOnyama Limba RENEWAL
Misaki Y IturbideJapanAsiya Javayant RENEWAL
Chavez T CaldareraFranceIvan Magalhaes PROPOSAL
Darci B MaletGermanyStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois D CampainGermany2024-04-22Rangoni Of Florence UNQUALIFIED39Ivan Magalhaes
1001Greenwood S ButtItaly2024-04-04Buckley Miller Wright UNQUALIFIED71Onyama Limba
1002Alejandro E GillianRussia2024-04-07Truhlar And Truhlar Attys RENEWAL96Ivan Magalhaes
1003Chavez X StensethFrance2024-03-29Printing Dimensions RENEWAL94Ivan Magalhaes
1004Smith Q WieserSpain2024-04-24Chanay, Jeffrey A Esq NEW7Stephen Shaw
1005Salvatore O PaprockiCanada2024-04-25Chanay, Jeffrey A Esq NEW33Xuxue Feng
1006Johnson C GarufiJapan2024-04-02Chemel, James L Cpa RENEWAL16Elwin Sharvill
1007Francesco L SergiItaly2024-04-02Feltz Printing Service QUALIFIED69Amy Elsner
1008Greenwood D VenereAustralia2024-04-01Benton, John B Jr RENEWAL59Xuxue Feng
1009Clifford I FerenczAustralia2024-04-24Printing Dimensions NEW56Xuxue Feng
1010Claire B AmigonSpain2024-04-23Feltz Printing Service QUALIFIED80Stephen Shaw
1011Julie M AmigonIndia2024-03-31Rangoni Of Florence RENEWAL80Bernardo Dominic
1012Juan L NestleSpain2024-04-26Feiner Bros RENEWAL62Stephen Shaw
1013Ashley T SergiCanada2024-04-18Commercial Press PROPOSAL23Elwin Sharvill
1014Darci N ButtArgentina2024-04-27King, Christopher A Esq NEGOTIATION73Ivan Magalhaes
1015Mujtaba T DarakjyUnited Kingdom2024-04-12King, Christopher A Esq PROPOSAL95Amy Elsner
1016Mujtaba T FlosiCanada2024-04-11Benton, John B Jr RENEWAL65Ioni Bowcher
1017Adams Q WaycottIndia2024-04-23Feiner Bros UNQUALIFIED61Asiya Javayant
1018Salvatore M CaudyRussia2024-04-21Feiner Bros PROPOSAL64Amy Elsner
1019Darci N KolmetzCanada2024-04-22Commercial Press NEGOTIATION44Ioni Bowcher
1020Johnson W ButtArgentina2024-04-13Morlong Associates QUALIFIED89Elwin Sharvill
1021Salvatore X SergiArgentina2024-04-19Rangoni Of Florence QUALIFIED16Ioni Bowcher
1022Greenwood A StockhamUnited Kingdom2024-04-23Chanay, Jeffrey A Esq QUALIFIED23Ivan Magalhaes
1023Johnson Y NestleJapan2024-04-26Truhlar And Truhlar Attys NEW40Bernardo Dominic
1024Jefferson K AmigonUnited Kingdom2024-04-06Chapman, Ross E Esq NEGOTIATION41Amy Elsner
1025Costa L CampainIndia2024-03-30Commercial Press QUALIFIED91Bernardo Dominic
1026Aditya I WieserBrazil2024-04-21Chapman, Ross E Esq RENEWAL20Stephen Shaw
1027Silvio G AmigonRussia2024-04-11Commercial Press RENEWAL8Elwin Sharvill
1028Jefferson D MaletBrazil2024-04-01King, Christopher A Esq RENEWAL92Xuxue Feng
1029Salvatore Q PaprockiCanada2024-04-22Morlong Associates UNQUALIFIED85Anna Fali
1030Tony V OldroydBrazil2024-04-13Rangoni Of Florence PROPOSAL93Stephen Shaw
1031Tony K AlbaresUnited Kingdom2024-04-13Rousseaux, Michael Esq NEGOTIATION95Stephen Shaw
1032Deepesh I RoysterArgentina2024-04-18Rousseaux, Michael Esq NEGOTIATION5Ivan Magalhaes
1033Salvatore Z KuskoRussia2024-04-13Chanay, Jeffrey A Esq RENEWAL55Anna Fali
1034Tony J VocelkaArgentina2024-04-06Printing Dimensions QUALIFIED74Onyama Limba
1035Rodrigues M SergiAustralia2024-04-13Commercial Press NEW55Bernardo Dominic
1036Leon W BologniaUnited Kingdom2024-04-04Rangoni Of Florence NEGOTIATION31Ivan Magalhaes
1037Alejandro A FigeroaFrance2024-04-18King, Christopher A Esq NEW42Ioni Bowcher
1038Misaki C MaletCanada2024-04-04Truhlar And Truhlar Attys PROPOSAL20Xuxue Feng
1039Emily S KolmetzSpain2024-04-10Chapman, Ross E Esq QUALIFIED71Anna Fali
1040Tony T OldroydAustralia2024-04-06Chapman, Ross E Esq RENEWAL95Stephen Shaw
1041James F WaycottRussia2024-03-30Chanay, Jeffrey A Esq PROPOSAL84Xuxue Feng
1042Juan L WaycottUnited Kingdom2024-04-27Printing Dimensions NEGOTIATION93Onyama Limba
1043Julie W SchemmerGermany2024-04-24Chapman, Ross E Esq QUALIFIED14Elwin Sharvill
1044Octavia J DilliardBrazil2024-04-01Truhlar And Truhlar Attys NEW95Bernardo Dominic
1045Julie V PoquetteSpain2024-04-08Truhlar And Truhlar Attys RENEWAL24Asiya Javayant
1046Murillo R IturbideIndia2024-04-20Benton, John B Jr PROPOSAL74Ioni Bowcher
1047Mayumi Z WieserGermany2024-04-14Chemel, James L Cpa QUALIFIED61Xuxue Feng
1048Jennifer H StensethAustralia2024-04-07Chapman, Ross E Esq QUALIFIED48Ioni Bowcher
1049Tony W GlickAustralia2024-04-11Dorl, James J Esq PROPOSAL40Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maria V WieserItalyOnyama Limba NEGOTIATION
Jennifer G PerinJapanIvan Magalhaes NEGOTIATION
Julie L CaudyBrazilIvan Magalhaes PROPOSAL
Claire V VocelkaBrazilXuxue Feng PROPOSAL
Emily X MarrierSpainIoni Bowcher NEGOTIATION
Morrow H MorascaFranceElwin Sharvill QUALIFIED
Jeanfrancois L OldroydGermanyXuxue Feng QUALIFIED
Jeanfrancois Q GlickItalyIoni Bowcher PROPOSAL
Nicolas C ButtRussiaAnna Fali NEGOTIATION
Greenwood Q VocelkaAustraliaXuxue Feng RENEWAL
Aika N FerenczCanadaStephen Shaw RENEWAL
Aruna E DarakjyArgentinaAsiya Javayant QUALIFIED
Emily W AmigonIndiaStephen Shaw NEW
Murillo A RoysterGermanyIoni Bowcher NEGOTIATION
Adams E WaycottItalyAnna Fali QUALIFIED
Munro D FerenczGermanyStephen Shaw NEGOTIATION
David S FlosiJapanAmy Elsner NEW
Ashley Z NickaFranceAsiya Javayant NEW
Octavia Y ButtIndiaAsiya Javayant NEW
Rodrigues C BologniaArgentinaAnna Fali RENEWAL
Kadeem H GlickBrazilBernardo Dominic QUALIFIED
Smith O DoeSpainBernardo Dominic RENEWAL
Leja A RimBrazilXuxue Feng NEGOTIATION
Izzy F WieserIndiaIvan Magalhaes NEGOTIATION
Rodrigues V RoysterJapanAsiya Javayant UNQUALIFIED
Clifford A RimAustraliaIvan Magalhaes PROPOSAL
Emily E ButtFranceAnna Fali RENEWAL
Aika B CaldareraFranceAsiya Javayant NEGOTIATION
Greenwood O ShinkoAustraliaAsiya Javayant RENEWAL
Julie P BriddickCanadaStephen Shaw QUALIFIED
Leja B RutaRussiaAmy Elsner NEGOTIATION
Mujtaba S KolmetzFranceIvan Magalhaes QUALIFIED
Murillo W MaletFranceStephen Shaw NEGOTIATION
Kadeem R DilliardRussiaXuxue Feng QUALIFIED
Faith P SlusarskiArgentinaStephen Shaw NEW
Kadeem L PaprockiCanadaOnyama Limba UNQUALIFIED
Munro K KolmetzAustraliaAmy Elsner PROPOSAL
Leon B ShinkoItalyAsiya Javayant UNQUALIFIED
Aika L MacleadBrazilOnyama Limba NEGOTIATION
Tony Y PerinIndiaAmy Elsner NEW
Faith W FigeroaAustraliaOnyama Limba NEW
Antonio D BriddickItalyAnna Fali NEGOTIATION
Ivar K NestleCanadaAsiya Javayant UNQUALIFIED
Arvin Y StensethBrazilAnna Fali PROPOSAL
Jeanfrancois A WaycottJapanIoni Bowcher QUALIFIED
Julie J NickaItalyStephen Shaw QUALIFIED
Costa C ShinkoUnited KingdomIoni Bowcher NEW
Murillo T SchemmerFranceElwin Sharvill UNQUALIFIED
James J VenereCanadaAsiya Javayant QUALIFIED
Ricardo B FollerRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Morrow V Wieser
Greenwood M Briddick
Misaki K Stockham
Morrow F Slusarski
Ricardo G Doe
Silvio H Vocelka
Kaitlin K Whobrey
Jeanfrancois G Nestle
Ashley X Albares
Morrow D Oldroyd
Clifford Y Bowley
Francesco I Oldroyd
Alejandro Z Caudy
Alejandro Y Poquette
Claire M Poquette
Clifford G Perin
Julie U Shinko
Arvin E Doe
Rodrigues D Vocelka
Tony X Ferencz
Murillo O Poquette
Julie U Morasca
Aditya J Doe
Isabel I Poquette
Aruna U Vocelka
Costa I Darakjy
Mujtaba E Slusarski
Ricardo T Garufi
Nicolas H Briddick
Jeanfrancois Q Stenseth
Misaki O Figeroa
Aruna U Stenseth
Rodrigues M Campain
Stacey I Figeroa
Emily R Dilliard
Costa H Morasca
Maisha D Slusarski
Aika W Stenseth
Costa R Flosi
Misaki I Slusarski
Nicolas F Nicka
Jones W Royster
Aika G Amigon
Jennifer T Doe
Misaki K Vocelka
Jones X Malet
Nicolas S Wieser
Antonio Y Saylors
Ashley G Morasca
Mujtaba Y Glick
IdCountryDate
1000Spain2024-03-31
1001India2024-04-26
1002United Kingdom2024-04-22
1003France2024-04-19
1004Japan2024-04-22
1005Canada2024-04-06
1006France2024-04-06
1007Canada2024-04-25
1008France2024-04-26
1009Australia2024-04-18
1010Brazil2024-04-11
1011Japan2024-04-13
1012Australia2024-04-24
1013Germany2024-04-25
1014Argentina2024-03-30
1015Argentina2024-04-08
1016Italy2024-03-31
1017Argentina2024-04-21
1018Russia2024-04-11
1019Japan2024-04-13
1020Brazil2024-04-16
1021Germany2024-04-15
1022Germany2024-04-02
1023United Kingdom2024-04-19
1024Argentina2024-04-08
1025Argentina2024-04-11
1026Japan2024-04-18
1027India2024-04-11
1028Spain2024-04-10
1029India2024-03-30
1030Russia2024-04-23
1031India2024-04-23
1032Argentina2024-04-18
1033Italy2024-04-20
1034Spain2024-04-13
1035Spain2024-04-09
1036United Kingdom2024-04-07
1037Canada2024-04-22
1038Japan2024-04-08
1039France2024-04-27
1040Australia2024-04-11
1041India2024-04-16
1042United Kingdom2024-04-03
1043Russia2024-04-07
1044Canada2024-04-22
1045Argentina2024-04-04
1046Italy2024-04-15
1047Brazil2024-04-21
1048Spain2024-04-10
1049Russia2024-04-04

On-Demand Data

NameIdCountryDate
Ivar F Stenseth1000Italy2024-04-06
Mujtaba W Darakjy1001France2024-03-30
Ashley F Oldroyd1002Spain2024-04-20
Ivar C Foller1003Germany2024-04-11
Faith K Shinko1004Japan2024-04-14
Stacey Q Bowley1005Germany2024-04-27
Kadeem S Morasca1006France2024-04-03
Kaitlin Q Caudy1007Argentina2024-04-08
Ricardo C Dilliard1008Russia2024-04-04
Sinclair C Inouye1009Spain2024-03-29
Mujtaba O Wieser1010Canada2024-04-13
Munro C Stenseth1011Brazil2024-04-14
Clifford A Marrier1012Germany2024-04-09
Kadeem F Sergi1013United Kingdom2024-04-22
Jefferson Q Sergi1014Argentina2024-04-09
Jones U Poquette1015Canada2024-04-02
Mujtaba H Ruta1016Australia2024-04-12
Francesco W Nicka1017Canada2024-04-24
Octavia I Malet1018France2024-04-03
David Q Caldarera1019Japan2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow S GlickAustraliaOnyama Limba NEGOTIATION
Maria Z DilliardAustraliaXuxue Feng NEGOTIATION
Mujtaba K ButtRussiaOnyama Limba NEW
Deepesh M PaprockiCanadaElwin Sharvill UNQUALIFIED
Arvin O ShinkoSpainElwin Sharvill PROPOSAL
Munro A RimItalyStephen Shaw PROPOSAL
Murillo F InouyeRussiaAmy Elsner NEGOTIATION
Greenwood Q VenereGermanyXuxue Feng RENEWAL
Darci A BriddickCanadaXuxue Feng NEGOTIATION
Smith O MarrierUnited KingdomBernardo Dominic NEW
Aditya C DoeRussiaIoni Bowcher QUALIFIED
Francesco S StensethArgentinaAmy Elsner NEW
Ashley L RimRussiaIvan Magalhaes UNQUALIFIED
Faith H BowleyBrazilIoni Bowcher PROPOSAL
James V WhobreyAustraliaOnyama Limba RENEWAL
Izzy R DarakjyItalyElwin Sharvill QUALIFIED
Mayumi U CaudyAustraliaAnna Fali UNQUALIFIED
Juan H MacleadIndiaStephen Shaw NEW
Tony Z RulapaughUnited KingdomElwin Sharvill PROPOSAL
Jones T RimRussiaAmy Elsner UNQUALIFIED
Kaitlin L BowleyRussiaXuxue Feng NEW
Clifford R NickaRussiaStephen Shaw PROPOSAL
Ivar R WieserBrazilIoni Bowcher QUALIFIED
Kadeem O SergiIndiaStephen Shaw QUALIFIED
Octavia P IturbideGermanyAmy Elsner PROPOSAL
David Q ButtAustraliaAnna Fali RENEWAL
David V MaletAustraliaXuxue Feng NEW
Maisha T StockhamIndiaIoni Bowcher NEW
Maria G KolmetzIndiaAnna Fali NEGOTIATION
Morrow C OldroydFranceXuxue Feng RENEWAL
Ivar P TollnerJapanAsiya Javayant QUALIFIED
Sinclair O RimJapanAnna Fali NEGOTIATION
Octavia D SlusarskiJapanAnna Fali RENEWAL
Murillo R AlbaresIndiaAnna Fali NEGOTIATION
Emily V InouyeGermanyIoni Bowcher NEW
Alejandro V WaycottAustraliaOnyama Limba UNQUALIFIED
Darci E BriddickBrazilXuxue Feng NEW
Claire I OldroydUnited KingdomAnna Fali NEW
Alejandro N SaylorsArgentinaElwin Sharvill PROPOSAL
Alejandro Z CampainCanadaAsiya Javayant 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>