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
Isabel R DilliardFranceStephen Shaw UNQUALIFIED
Morrow C RimBrazilIvan Magalhaes PROPOSAL
Octavia W PerinGermanyAmy Elsner UNQUALIFIED
Maisha I NickaBrazilAmy Elsner PROPOSAL
Maisha R SchemmerSpainOnyama Limba QUALIFIED
Maria I DarakjyArgentinaAmy Elsner PROPOSAL
Clifford I ShinkoUnited KingdomStephen Shaw RENEWAL
Adams W TollnerIndiaElwin Sharvill NEW
Nicolas W SchemmerAustraliaElwin Sharvill NEW
Stacey N BriddickJapanAsiya Javayant QUALIFIED
Morrow P MaletJapanStephen Shaw PROPOSAL
Maria Z BowleyBrazilAsiya Javayant PROPOSAL
Kaitlin U NickaGermanyAsiya Javayant PROPOSAL
Nicolas E GarufiFranceAsiya Javayant PROPOSAL
Salvatore M RimFranceIoni Bowcher QUALIFIED
Johnson F MaletJapanIvan Magalhaes UNQUALIFIED
Costa L BologniaSpainXuxue Feng PROPOSAL
Ivar M StockhamJapanElwin Sharvill PROPOSAL
Aika X SaylorsAustraliaAsiya Javayant NEGOTIATION
Faith P FollerBrazilIoni Bowcher NEW
Maria U InouyeBrazilAsiya Javayant PROPOSAL
Clifford M SchemmerFranceIvan Magalhaes RENEWAL
Clifford B FlosiSpainXuxue Feng NEGOTIATION
Smith Z MaletArgentinaXuxue Feng QUALIFIED
Isabel N SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Darci V DilliardSpainStephen Shaw NEGOTIATION
Darci B PoquetteRussiaAmy Elsner UNQUALIFIED
Nicolas Q CaldareraJapanAsiya Javayant NEW
Mujtaba Y MorascaUnited KingdomXuxue Feng UNQUALIFIED
Smith I WhobreySpainBernardo Dominic RENEWAL
James Z NestleGermanyAsiya Javayant UNQUALIFIED
Clifford Y GarufiSpainAmy Elsner PROPOSAL
Claire C MarrierArgentinaOnyama Limba RENEWAL
Tony Z RimBrazilOnyama Limba PROPOSAL
Julie B SlusarskiItalyStephen Shaw UNQUALIFIED
Cody P MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba B PerinCanadaAnna Fali NEW
Ashley N BriddickCanadaStephen Shaw QUALIFIED
Morrow X CaldareraGermanyAnna Fali NEW
Cody K GauchoCanadaElwin Sharvill RENEWAL
Salvatore J FollerFranceIvan Magalhaes NEW
Misaki I CaldareraJapanAsiya Javayant PROPOSAL
Ashley A InouyeArgentinaAnna Fali UNQUALIFIED
Claire D FigeroaUnited KingdomStephen Shaw NEW
Jefferson L NickaUnited KingdomBernardo Dominic UNQUALIFIED
Ivar P GarufiIndiaBernardo Dominic PROPOSAL
Juan V SchemmerJapanOnyama Limba NEW
Ivar Q SaylorsFranceIoni Bowcher QUALIFIED
Kadeem D IturbideItalyOnyama Limba RENEWAL
Mujtaba B WhobreyArgentinaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams U IturbideSpainStephen Shaw NEW
Aditya Y WaycottIndiaBernardo Dominic UNQUALIFIED
Izzy A NestleFranceAsiya Javayant RENEWAL
Ashley D RoysterCanadaIoni Bowcher NEGOTIATION
Claire G GillianFranceBernardo Dominic QUALIFIED
Morrow U RutaRussiaAnna Fali QUALIFIED
Munro W BriddickFranceStephen Shaw UNQUALIFIED
Juan X MacleadIndiaIoni Bowcher NEW
Sinclair E ButtRussiaAnna Fali PROPOSAL
Jennifer K BriddickCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James X AlbaresBrazil2024-04-13Chapman, Ross E Esq UNQUALIFIED75Onyama Limba
1001Claire Q StensethArgentina2024-04-21Chemel, James L Cpa NEW58Elwin Sharvill
1002Maisha P StensethIndia2024-04-23Buckley Miller Wright QUALIFIED99Anna Fali
1003Isabel A SchemmerSpain2024-04-24Chapman, Ross E Esq NEGOTIATION70Elwin Sharvill
1004Costa S ButtGermany2024-04-21Chemel, James L Cpa RENEWAL71Ioni Bowcher
1005Jeanfrancois E DoeGermany2024-04-10Chapman, Ross E Esq NEW25Ivan Magalhaes
1006Jefferson K MacleadSpain2024-04-13Buckley Miller Wright PROPOSAL73Stephen Shaw
1007Jennifer U CaudySpain2024-04-16Buckley Miller Wright NEW72Ioni Bowcher
1008Chavez E CampainCanada2024-04-03Rangoni Of Florence NEW81Stephen Shaw
1009Mayumi F NestleUnited Kingdom2024-04-23Printing Dimensions PROPOSAL87Amy Elsner
1010Murillo X SchemmerIndia2024-04-18Rangoni Of Florence NEGOTIATION34Asiya Javayant
1011Claire Z MaletUnited Kingdom2024-04-17Rousseaux, Michael Esq NEGOTIATION55Bernardo Dominic
1012Misaki B OstroskyArgentina2024-04-17Truhlar And Truhlar Attys PROPOSAL9Bernardo Dominic
1013Leja V VenereIndia2024-04-14Rousseaux, Michael Esq NEGOTIATION80Xuxue Feng
1014Wickens I BriddickUnited Kingdom2024-04-09Commercial Press NEW4Amy Elsner
1015Antonio K MorascaUnited Kingdom2024-04-13Buckley Miller Wright UNQUALIFIED93Elwin Sharvill
1016Deepesh K RoysterArgentina2024-04-08Buckley Miller Wright RENEWAL68Ivan Magalhaes
1017Stacey C RutaRussia2024-03-28Chanay, Jeffrey A Esq NEGOTIATION65Ioni Bowcher
1018Maisha X WhobreyGermany2024-04-18Feiner Bros NEGOTIATION59Bernardo Dominic
1019Johnson F RulapaughAustralia2024-04-19Commercial Press NEGOTIATION86Stephen Shaw
1020Mujtaba D BologniaGermany2024-04-17Truhlar And Truhlar Attys QUALIFIED52Ioni Bowcher
1021Kaitlin V GauchoUnited Kingdom2024-04-16Feltz Printing Service NEW46Asiya Javayant
1022Mayumi B DilliardRussia2024-04-15Feiner Bros PROPOSAL7Asiya Javayant
1023Claire P SaylorsCanada2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED11Stephen Shaw
1024Mayumi K VocelkaJapan2024-04-14Rousseaux, Michael Esq NEGOTIATION81Bernardo Dominic
1025Izzy F IturbideBrazil2024-04-19Dorl, James J Esq UNQUALIFIED11Stephen Shaw
1026Darci G OldroydSpain2024-04-04Chanay, Jeffrey A Esq RENEWAL57Onyama Limba
1027Ashley K ChuiJapan2024-03-30Printing Dimensions NEW56Asiya Javayant
1028Tony N IturbideSpain2024-04-04Dorl, James J Esq QUALIFIED33Bernardo Dominic
1029Clifford X GillianIndia2024-03-29Feltz Printing Service RENEWAL46Elwin Sharvill
1030Julie B SergiCanada2024-03-30Buckley Miller Wright PROPOSAL18Stephen Shaw
1031Clifford X BologniaArgentina2024-04-16Chemel, James L Cpa PROPOSAL16Amy Elsner
1032Aika D NickaIndia2024-04-09Morlong Associates UNQUALIFIED24Ivan Magalhaes
1033Alejandro T GlickJapan2024-04-11Commercial Press RENEWAL56Stephen Shaw
1034Silvio E MaletSpain2024-04-07Buckley Miller Wright NEW89Stephen Shaw
1035Aika Q PoquetteBrazil2024-04-26Feltz Printing Service NEGOTIATION69Ivan Magalhaes
1036Antonio D StensethJapan2024-04-24Chanay, Jeffrey A Esq RENEWAL35Amy Elsner
1037Nicolas A BriddickCanada2024-04-25Feltz Printing Service NEW81Onyama Limba
1038Maisha J GauchoJapan2024-04-24Buckley Miller Wright QUALIFIED61Amy Elsner
1039Jones A OstroskyGermany2024-03-31Buckley Miller Wright QUALIFIED85Bernardo Dominic
1040Greenwood O FlosiSpain2024-04-25Benton, John B Jr PROPOSAL22Elwin Sharvill
1041Wickens I GarufiBrazil2024-04-25Chapman, Ross E Esq QUALIFIED40Anna Fali
1042James L KuskoBrazil2024-03-29Feltz Printing Service NEW73Ioni Bowcher
1043David X VocelkaAustralia2024-04-18Feiner Bros UNQUALIFIED81Asiya Javayant
1044Nicolas D WhobreyBrazil2024-04-06Feltz Printing Service NEW76Bernardo Dominic
1045Sinclair B IturbideSpain2024-04-18Chapman, Ross E Esq RENEWAL43Stephen Shaw
1046Rodrigues K FollerSpain2024-04-25Dorl, James J Esq RENEWAL80Ioni Bowcher
1047Francesco K SergiRussia2024-04-10Benton, John B Jr RENEWAL10Anna Fali
1048Chavez V WaycottItaly2024-04-07Chemel, James L Cpa UNQUALIFIED77Anna Fali
1049Rodrigues V SergiFrance2024-04-24Chapman, Ross E Esq UNQUALIFIED54Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Juan H FollerBrazilAmy Elsner UNQUALIFIED
Aruna W MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Francesco G FollerIndiaBernardo Dominic NEGOTIATION
Maria G VenereFranceAmy Elsner UNQUALIFIED
Tony B SergiAustraliaBernardo Dominic NEW
Wickens T WaycottJapanIoni Bowcher NEW
Cody A OstroskyUnited KingdomAsiya Javayant PROPOSAL
Kadeem H FigeroaItalyBernardo Dominic UNQUALIFIED
Leja J DarakjyFranceAsiya Javayant UNQUALIFIED
Leon X ShinkoSpainAsiya Javayant QUALIFIED
Cody T ChuiJapanIvan Magalhaes NEGOTIATION
Rodrigues H KolmetzArgentinaAsiya Javayant RENEWAL
Faith K SchemmerRussiaXuxue Feng QUALIFIED
Johnson Y IturbideSpainAmy Elsner UNQUALIFIED
Darci E AmigonFranceStephen Shaw NEGOTIATION
Octavia J WieserCanadaOnyama Limba PROPOSAL
Jones S CaldareraRussiaElwin Sharvill UNQUALIFIED
Deepesh U MarrierItalyBernardo Dominic RENEWAL
Jeanfrancois B FigeroaIndiaOnyama Limba NEGOTIATION
Emily H DarakjyGermanyIvan Magalhaes QUALIFIED
Ricardo W RulapaughGermanyAmy Elsner RENEWAL
Murillo Q MorascaSpainStephen Shaw PROPOSAL
Silvio W WaycottItalyAmy Elsner NEW
Ivar Q MaletCanadaAnna Fali RENEWAL
Adams Y RutaGermanyAnna Fali NEGOTIATION
Jones K WieserBrazilAnna Fali NEW
David D PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez G KuskoJapanAnna Fali RENEWAL
Arvin P BowleyBrazilIoni Bowcher UNQUALIFIED
Izzy P WhobreyFranceXuxue Feng NEW
David C GillianRussiaElwin Sharvill QUALIFIED
Juan I KuskoBrazilStephen Shaw QUALIFIED
Octavia M RulapaughIndiaAsiya Javayant NEGOTIATION
Octavia C DarakjyCanadaBernardo Dominic QUALIFIED
Jeanfrancois Q CaudySpainElwin Sharvill QUALIFIED
James P AmigonArgentinaAmy Elsner RENEWAL
Julie H FollerJapanXuxue Feng UNQUALIFIED
Adams N RutaItalyStephen Shaw NEGOTIATION
Ashley U WieserJapanElwin Sharvill UNQUALIFIED
Mujtaba M AlbaresJapanIoni Bowcher QUALIFIED
Kaitlin R DoeSpainBernardo Dominic NEW
Aditya B MacleadCanadaAnna Fali PROPOSAL
James Y RulapaughJapanElwin Sharvill PROPOSAL
Julie Z FerenczGermanyAnna Fali PROPOSAL
Kadeem I FollerBrazilIvan Magalhaes NEGOTIATION
Maisha Q StockhamUnited KingdomIvan Magalhaes QUALIFIED
Octavia U FollerItalyIvan Magalhaes PROPOSAL
Isabel G KolmetzArgentinaStephen Shaw NEGOTIATION
Jeanfrancois K RutaCanadaXuxue Feng NEW
Izzy J ButtBrazilElwin Sharvill NEGOTIATION
Frozen Columns
Name
Morrow Q Garufi
Julie V Sergi
Ivar N Caldarera
Ivar X Doe
Maisha X Rulapaugh
Clifford D Ferencz
Aditya Q Kusko
Stacey W Bolognia
Clifford U Butt
Mayumi W Schemmer
Adams O Venere
Jefferson S Iturbide
Munro I Glick
Mujtaba M Campain
Leon U Inouye
Mujtaba Z Nestle
Faith W Sergi
Jennifer L Shinko
Stacey P Poquette
Alejandro E Whobrey
Greenwood N Foller
Costa Q Figeroa
Leon D Morasca
Izzy Z Caudy
Claire G Dilliard
Antonio P Malet
Aika R Perin
Ricardo W Bolognia
Cody T Nestle
Aditya A Slusarski
Isabel H Chui
Isabel R Briddick
Munro N Morasca
David M Caldarera
Ivar K Campain
Maisha W Inouye
Aditya A Briddick
Ashley Y Paprocki
Nicolas O Morasca
Ivar F Nestle
Jeanfrancois N Bowley
Ashley D Amigon
Tony W Tollner
Francesco K Gillian
Deepesh R Royster
Ivar I Bowley
Kadeem C Gaucho
Nicolas W Sergi
Maria N Slusarski
Wickens S Paprocki
IdCountryDate
1000Canada2024-04-11
1001Germany2024-04-01
1002Argentina2024-04-05
1003France2024-04-16
1004Spain2024-04-16
1005United Kingdom2024-04-07
1006Japan2024-04-08
1007France2024-04-26
1008Brazil2024-03-31
1009Russia2024-04-14
1010Japan2024-04-04
1011United Kingdom2024-03-30
1012Canada2024-04-08
1013Italy2024-04-06
1014Germany2024-04-12
1015Japan2024-04-18
1016Australia2024-04-21
1017Spain2024-04-26
1018Brazil2024-04-16
1019France2024-03-29
1020Spain2024-03-30
1021India2024-04-23
1022Australia2024-04-24
1023Japan2024-03-31
1024Australia2024-04-12
1025Russia2024-04-03
1026Italy2024-04-08
1027Germany2024-04-20
1028Argentina2024-04-03
1029United Kingdom2024-04-14
1030Brazil2024-04-15
1031Australia2024-04-06
1032France2024-04-08
1033France2024-04-04
1034Italy2024-04-04
1035Canada2024-04-26
1036Germany2024-04-24
1037India2024-04-24
1038Argentina2024-04-11
1039Australia2024-04-03
1040India2024-03-29
1041France2024-04-09
1042Argentina2024-04-20
1043Canada2024-04-25
1044Australia2024-04-01
1045Japan2024-04-26
1046India2024-04-14
1047Spain2024-04-03
1048United Kingdom2024-04-19
1049Spain2024-04-04

On-Demand Data

NameIdCountryDate
Aditya L Briddick1000Canada2024-03-30
Aruna X Saylors1001Japan2024-04-01
Darci Z Glick1002Brazil2024-04-07
Arvin B Poquette1003India2024-03-31
Munro F Wieser1004France2024-04-10
Francesco B Morasca1005India2024-04-18
Isabel M Gillian1006Russia2024-04-10
Leja D Nestle1007Argentina2024-03-30
Smith K Waycott1008Canada2024-04-01
Murillo S Poquette1009Italy2024-04-24
Cody W Stockham1010Brazil2024-04-07
Faith K Glick1011India2024-04-05
Salvatore F Nicka1012Argentina2024-04-04
Leon C Perin1013Russia2024-04-12
Kaitlin R Dilliard1014Argentina2024-04-15
Deepesh Q Doe1015Germany2024-04-20
Stacey M Perin1016Spain2024-04-16
Arvin Y Sergi1017Argentina2024-04-25
Mujtaba U Malet1018Argentina2024-04-12
Chavez R Ostrosky1019Spain2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar P WaycottSpainStephen Shaw NEGOTIATION
Ivar A BologniaItalyIoni Bowcher UNQUALIFIED
Aditya W GillianSpainAmy Elsner UNQUALIFIED
Misaki I NickaAustraliaElwin Sharvill RENEWAL
Arvin Z NickaIndiaIoni Bowcher RENEWAL
Maria D VocelkaGermanyBernardo Dominic UNQUALIFIED
Cody Z SergiUnited KingdomBernardo Dominic QUALIFIED
Mujtaba W MarrierSpainXuxue Feng UNQUALIFIED
Murillo X AmigonFranceStephen Shaw UNQUALIFIED
Chavez P DilliardIndiaOnyama Limba RENEWAL
Aruna G MacleadFranceAmy Elsner NEGOTIATION
Izzy E MaletIndiaOnyama Limba PROPOSAL
Aruna R FlosiArgentinaIvan Magalhaes PROPOSAL
Costa O TollnerRussiaIvan Magalhaes NEGOTIATION
Aditya V SlusarskiIndiaBernardo Dominic RENEWAL
Jones A InouyeCanadaStephen Shaw NEW
Leon A InouyeJapanAsiya Javayant NEGOTIATION
Cody G PaprockiUnited KingdomAnna Fali PROPOSAL
Salvatore C DilliardFranceXuxue Feng UNQUALIFIED
Octavia P NestleFranceIoni Bowcher NEGOTIATION
Sinclair G WhobreyBrazilAnna Fali NEGOTIATION
Octavia B WhobreySpainXuxue Feng NEW
Greenwood Z CampainFranceIvan Magalhaes NEGOTIATION
Juan D DarakjyBrazilIvan Magalhaes UNQUALIFIED
Nicolas R FigeroaBrazilAmy Elsner NEW
Arvin X WaycottAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois K DarakjyJapanStephen Shaw PROPOSAL
Maisha F RutaGermanyIvan Magalhaes QUALIFIED
Johnson G BriddickRussiaElwin Sharvill NEW
Adams G MaletBrazilBernardo Dominic NEGOTIATION
Claire M PaprockiItalyStephen Shaw PROPOSAL
Costa X BowleyBrazilBernardo Dominic QUALIFIED
Jennifer Z RutaAustraliaStephen Shaw QUALIFIED
Chavez G BowleyRussiaIvan Magalhaes QUALIFIED
Murillo N PaprockiSpainOnyama Limba RENEWAL
Nicolas N KuskoCanadaIvan Magalhaes NEW
Johnson F FigeroaJapanIvan Magalhaes NEGOTIATION
Aditya U AlbaresBrazilAsiya Javayant PROPOSAL
Aika A OldroydGermanyAmy Elsner PROPOSAL
Silvio D VenereAustraliaAnna Fali 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>