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
Claire Q RulapaughGermanyAnna Fali RENEWAL
Costa O PerinFranceAmy Elsner QUALIFIED
David C PaprockiUnited KingdomAmy Elsner RENEWAL
Antonio P PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Wickens F DarakjyFranceAmy Elsner QUALIFIED
Alejandro Q CaudyJapanIvan Magalhaes NEGOTIATION
Kadeem L FlosiFranceIoni Bowcher NEW
Alejandro P FollerJapanIvan Magalhaes QUALIFIED
Leja B TollnerAustraliaBernardo Dominic PROPOSAL
Claire D AlbaresArgentinaIvan Magalhaes NEW
Johnson N FollerFranceAsiya Javayant UNQUALIFIED
Leja T BowleyItalyOnyama Limba QUALIFIED
Ashley K SergiGermanyIoni Bowcher UNQUALIFIED
Jefferson G WaycottFranceAsiya Javayant UNQUALIFIED
Chavez H VenereGermanyAnna Fali UNQUALIFIED
Tony N RutaItalyElwin Sharvill UNQUALIFIED
Ivar R ChuiCanadaIvan Magalhaes PROPOSAL
Aditya N DoeIndiaAnna Fali UNQUALIFIED
Alejandro S PerinUnited KingdomAsiya Javayant RENEWAL
James M RulapaughItalyBernardo Dominic NEW
Jeanfrancois Q WaycottRussiaIvan Magalhaes QUALIFIED
Maisha C MorascaCanadaOnyama Limba QUALIFIED
Rodrigues T WaycottBrazilStephen Shaw RENEWAL
Silvio W AmigonFranceXuxue Feng UNQUALIFIED
Ivar Q CaudyFranceAnna Fali RENEWAL
Murillo S CaudyRussiaAsiya Javayant RENEWAL
Johnson U SergiBrazilAnna Fali PROPOSAL
Antonio V DarakjyAustraliaStephen Shaw QUALIFIED
Silvio U StockhamRussiaXuxue Feng RENEWAL
Arvin I StockhamFranceElwin Sharvill NEGOTIATION
Ashley O PoquetteAustraliaBernardo Dominic UNQUALIFIED
Julie R RoysterCanadaIoni Bowcher QUALIFIED
Antonio N WaycottArgentinaAnna Fali NEGOTIATION
Aika W AmigonArgentinaAsiya Javayant NEGOTIATION
Arvin L DoeArgentinaBernardo Dominic QUALIFIED
Alejandro G WaycottRussiaIvan Magalhaes NEW
Munro E ShinkoCanadaOnyama Limba PROPOSAL
Octavia D VenereItalyOnyama Limba RENEWAL
Leon J NickaRussiaIvan Magalhaes PROPOSAL
Clifford U CampainSpainIvan Magalhaes NEGOTIATION
Misaki S RimArgentinaIvan Magalhaes PROPOSAL
Cody X DarakjyGermanyAmy Elsner NEGOTIATION
Rodrigues Q WhobreyCanadaAmy Elsner QUALIFIED
Aika Z ChuiGermanyAsiya Javayant PROPOSAL
Rodrigues M MaletRussiaAmy Elsner RENEWAL
Julie S MaletSpainAnna Fali PROPOSAL
Munro G WhobreyAustraliaOnyama Limba NEGOTIATION
Jefferson Q BologniaItalyAnna Fali UNQUALIFIED
Leja H CaudyItalyElwin Sharvill NEW
Julie U SergiSpainStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens A ButtSpainElwin Sharvill QUALIFIED
Emily M DarakjyCanadaIoni Bowcher NEGOTIATION
Aika G MacleadAustraliaOnyama Limba PROPOSAL
Leja I GarufiAustraliaElwin Sharvill PROPOSAL
Munro E AlbaresJapanIvan Magalhaes QUALIFIED
Deepesh G SaylorsSpainBernardo Dominic NEGOTIATION
Faith C FerenczGermanyXuxue Feng NEGOTIATION
Mujtaba O GillianFranceIoni Bowcher UNQUALIFIED
Murillo Z VenereArgentinaStephen Shaw QUALIFIED
Kadeem J DoeIndiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones E NickaArgentina2024-04-19Rousseaux, Michael Esq QUALIFIED9Stephen Shaw
1001Ricardo R CaudyUnited Kingdom2024-04-25Buckley Miller Wright NEW99Bernardo Dominic
1002Francesco M IturbideAustralia2024-05-10Chemel, James L Cpa QUALIFIED39Elwin Sharvill
1003Clifford G WhobreyArgentina2024-04-25Commercial Press NEW66Onyama Limba
1004Octavia E NickaGermany2024-04-19Feiner Bros RENEWAL8Anna Fali
1005Octavia F StensethJapan2024-05-01Feltz Printing Service PROPOSAL2Asiya Javayant
1006Claire S RutaGermany2024-05-09Feltz Printing Service PROPOSAL51Onyama Limba
1007Julie J KolmetzUnited Kingdom2024-04-28Commercial Press NEGOTIATION57Elwin Sharvill
1008Julie T SlusarskiFrance2024-04-30Feiner Bros QUALIFIED71Ivan Magalhaes
1009Mayumi E CaldareraGermany2024-05-08Feiner Bros NEGOTIATION59Elwin Sharvill
1010Antonio B DarakjyIndia2024-05-01Rousseaux, Michael Esq NEW96Stephen Shaw
1011Julie G OldroydCanada2024-05-04Benton, John B Jr UNQUALIFIED96Xuxue Feng
1012Morrow N InouyeUnited Kingdom2024-04-24Chanay, Jeffrey A Esq QUALIFIED4Stephen Shaw
1013Izzy X PoquetteItaly2024-05-03Buckley Miller Wright NEW57Ivan Magalhaes
1014Chavez Z VenereRussia2024-04-29Rousseaux, Michael Esq NEGOTIATION63Onyama Limba
1015Misaki E IturbideSpain2024-05-10Printing Dimensions PROPOSAL43Stephen Shaw
1016Morrow N VenereAustralia2024-04-16Rangoni Of Florence QUALIFIED8Anna Fali
1017Juan B WhobreyArgentina2024-05-05Feiner Bros RENEWAL62Onyama Limba
1018Emily Z RoysterArgentina2024-05-07Rangoni Of Florence NEGOTIATION29Elwin Sharvill
1019Ashley F VocelkaArgentina2024-04-25Feltz Printing Service UNQUALIFIED49Elwin Sharvill
1020Arvin P DarakjyItaly2024-04-13Morlong Associates NEW22Asiya Javayant
1021Antonio B AmigonIndia2024-04-15Commercial Press PROPOSAL72Elwin Sharvill
1022Salvatore N RulapaughUnited Kingdom2024-05-10Rousseaux, Michael Esq NEGOTIATION34Amy Elsner
1023Isabel K RoysterArgentina2024-05-04Chemel, James L Cpa QUALIFIED11Ioni Bowcher
1024Salvatore Y PaprockiUnited Kingdom2024-04-23Dorl, James J Esq RENEWAL58Anna Fali
1025Kadeem O FollerFrance2024-04-27Morlong Associates RENEWAL19Ioni Bowcher
1026Alejandro R WhobreyBrazil2024-05-05Printing Dimensions UNQUALIFIED32Anna Fali
1027Faith B CampainCanada2024-05-03Rangoni Of Florence PROPOSAL61Amy Elsner
1028Ashley E ShinkoFrance2024-04-29Rangoni Of Florence UNQUALIFIED14Elwin Sharvill
1029Morrow W OstroskyIndia2024-05-05Buckley Miller Wright RENEWAL34Asiya Javayant
1030Jones H WaycottAustralia2024-04-23Chanay, Jeffrey A Esq RENEWAL69Ioni Bowcher
1031Darci J VenereArgentina2024-05-05Commercial Press UNQUALIFIED48Ioni Bowcher
1032Munro R MarrierBrazil2024-05-12Rangoni Of Florence PROPOSAL32Ivan Magalhaes
1033Darci E PerinIndia2024-04-22Chapman, Ross E Esq UNQUALIFIED56Bernardo Dominic
1034Deepesh V BowleyUnited Kingdom2024-04-29King, Christopher A Esq PROPOSAL42Xuxue Feng
1035Deepesh P GarufiArgentina2024-04-14Buckley Miller Wright QUALIFIED29Asiya Javayant
1036Clifford F MaletBrazil2024-04-21Benton, John B Jr UNQUALIFIED43Anna Fali
1037Jefferson H IturbideRussia2024-04-27Truhlar And Truhlar Attys NEGOTIATION75Amy Elsner
1038Claire H FigeroaArgentina2024-04-23King, Christopher A Esq PROPOSAL89Xuxue Feng
1039Kaitlin S SchemmerFrance2024-04-19Printing Dimensions RENEWAL58Onyama Limba
1040Deepesh T FigeroaArgentina2024-05-12Chapman, Ross E Esq UNQUALIFIED85Onyama Limba
1041Ivar Y BriddickCanada2024-05-12Benton, John B Jr RENEWAL94Ioni Bowcher
1042Tony L RulapaughFrance2024-04-28Commercial Press QUALIFIED20Ioni Bowcher
1043Isabel V GarufiRussia2024-04-24Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1044Ricardo C AmigonBrazil2024-05-09Benton, John B Jr UNQUALIFIED2Ioni Bowcher
1045Johnson Q IturbideRussia2024-04-19Chapman, Ross E Esq NEW39Elwin Sharvill
1046Julie Q ShinkoSpain2024-04-26Dorl, James J Esq PROPOSAL69Amy Elsner
1047Stacey J AlbaresSpain2024-04-24Feiner Bros PROPOSAL45Asiya Javayant
1048Salvatore I VenereItaly2024-04-16Chemel, James L Cpa RENEWAL6Ivan Magalhaes
1049Stacey R ButtGermany2024-04-19Chanay, Jeffrey A Esq NEGOTIATION16Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan M PaprockiIndiaAnna Fali UNQUALIFIED
Jones T FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Tony Y ChuiJapanStephen Shaw RENEWAL
Munro I VenereGermanyAnna Fali NEGOTIATION
Ricardo M IturbideIndiaAnna Fali QUALIFIED
Arvin W WaycottAustraliaStephen Shaw PROPOSAL
Juan K WieserGermanyStephen Shaw NEGOTIATION
Greenwood N MaletCanadaStephen Shaw NEGOTIATION
Greenwood O FigeroaRussiaIvan Magalhaes RENEWAL
Salvatore S WieserGermanyAnna Fali PROPOSAL
Isabel G StockhamFranceBernardo Dominic RENEWAL
Rodrigues S MarrierBrazilAsiya Javayant PROPOSAL
Ricardo X PerinRussiaStephen Shaw UNQUALIFIED
Mayumi X SaylorsCanadaIvan Magalhaes PROPOSAL
Smith W PoquetteCanadaXuxue Feng NEW
Smith A DarakjyJapanBernardo Dominic NEW
Sinclair V SergiArgentinaIoni Bowcher RENEWAL
Salvatore C MaletCanadaAnna Fali NEW
Greenwood W GillianAustraliaIoni Bowcher PROPOSAL
Darci O CaldareraFranceIoni Bowcher RENEWAL
Leja F IturbideJapanIvan Magalhaes NEGOTIATION
Kadeem A RutaCanadaIoni Bowcher PROPOSAL
Claire R DilliardBrazilXuxue Feng NEW
Juan H DoeAustraliaXuxue Feng NEGOTIATION
Mujtaba V WaycottFranceXuxue Feng RENEWAL
Misaki U BologniaCanadaOnyama Limba QUALIFIED
Jefferson Y PoquetteArgentinaOnyama Limba RENEWAL
James G RulapaughBrazilAsiya Javayant RENEWAL
Arvin J BowleySpainXuxue Feng RENEWAL
Leon Z RutaAustraliaElwin Sharvill RENEWAL
Claire Y AmigonAustraliaIoni Bowcher QUALIFIED
Isabel K MaletGermanyStephen Shaw RENEWAL
Deepesh E RimAustraliaAmy Elsner RENEWAL
Salvatore B SchemmerIndiaXuxue Feng QUALIFIED
Costa S WaycottIndiaStephen Shaw NEW
Cody B RoysterRussiaXuxue Feng QUALIFIED
Alejandro E BowleySpainStephen Shaw NEGOTIATION
Sinclair S KuskoSpainAnna Fali NEW
Nicolas B ButtJapanIoni Bowcher RENEWAL
David I KolmetzAustraliaXuxue Feng NEW
Claire V DilliardRussiaIoni Bowcher UNQUALIFIED
Murillo K FigeroaBrazilAmy Elsner RENEWAL
Ivar H ButtIndiaIvan Magalhaes RENEWAL
Jones D MacleadGermanyOnyama Limba NEGOTIATION
Jefferson C GlickBrazilOnyama Limba NEW
Octavia N NickaCanadaBernardo Dominic UNQUALIFIED
Adams O OldroydGermanyBernardo Dominic QUALIFIED
Munro U MaletBrazilXuxue Feng PROPOSAL
Maria R KuskoUnited KingdomAsiya Javayant NEGOTIATION
Chavez G RoysterUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Maria A Waycott
Ashley I Figeroa
Aditya W Bolognia
Jennifer Z Dilliard
Aditya U Rulapaugh
Wickens C Kusko
Deepesh H Albares
Maisha N Ostrosky
Costa K Venere
Isabel R Poquette
Jones S Royster
Emily K Perin
Leja B Caudy
Costa Z Tollner
Chavez N Butt
Deepesh B Waycott
Stacey J Nicka
James H Bolognia
Maisha R Malet
Leon N Albares
David N Malet
Leon Y Rim
Leon Y Malet
Munro A Vocelka
Aruna L Iturbide
Aditya P Flosi
Jeanfrancois D Amigon
Maisha H Briddick
Costa C Caudy
David F Nestle
Emily D Ferencz
Leja M Dilliard
Claire Y Royster
Jennifer Y Doe
Emily F Maclead
Jones Z Saylors
Maisha V Ferencz
Mayumi P Venere
Jefferson O Caldarera
Munro T Rulapaugh
Adams W Venere
Emily M Venere
Clifford J Royster
Misaki I Oldroyd
Johnson B Tollner
Costa N Amigon
Darci F Bolognia
Murillo L Ostrosky
Izzy B Maclead
Cody T Saylors
IdCountryDate
1000Japan2024-04-22
1001Argentina2024-04-26
1002Canada2024-04-24
1003India2024-04-29
1004Argentina2024-04-13
1005India2024-04-24
1006Russia2024-04-20
1007Brazil2024-04-13
1008India2024-05-10
1009Spain2024-04-22
1010Russia2024-05-12
1011Argentina2024-05-04
1012Japan2024-04-26
1013Spain2024-05-09
1014Spain2024-04-26
1015India2024-04-26
1016Australia2024-05-10
1017Japan2024-04-20
1018Japan2024-05-06
1019Japan2024-04-20
1020Japan2024-05-02
1021Australia2024-04-15
1022Australia2024-05-01
1023United Kingdom2024-05-11
1024Australia2024-05-02
1025India2024-04-24
1026Brazil2024-04-24
1027Canada2024-05-01
1028Spain2024-04-23
1029United Kingdom2024-04-23
1030Argentina2024-04-15
1031Canada2024-04-24
1032Japan2024-04-20
1033Canada2024-05-10
1034United Kingdom2024-04-24
1035Canada2024-04-19
1036Canada2024-05-07
1037Germany2024-04-27
1038Russia2024-04-18
1039Australia2024-04-16
1040Argentina2024-04-18
1041Japan2024-04-30
1042Italy2024-04-27
1043Argentina2024-05-08
1044France2024-04-13
1045France2024-04-25
1046Argentina2024-04-17
1047Spain2024-05-05
1048Canada2024-05-07
1049Italy2024-04-18

On-Demand Data

NameIdCountryDate
Chavez S Butt1000Australia2024-04-17
Octavia J Butt1001Italy2024-04-22
Jefferson T Kolmetz1002Brazil2024-05-01
Julie R Gillian1003Italy2024-04-24
Tony W Venere1004France2024-04-16
James K Kolmetz1005Canada2024-04-22
Smith V Amigon1006Spain2024-05-05
Adams E Sergi1007France2024-04-17
Jones W Sergi1008Italy2024-04-14
Aditya R Flosi1009Germany2024-04-19
Aika U Venere1010Canada2024-05-03
Juan D Caudy1011United Kingdom2024-04-25
Maisha J Stockham1012Spain2024-04-23
Arvin A Ferencz1013France2024-04-23
Isabel A Briddick1014Italy2024-05-06
Clifford H Bowley1015Japan2024-05-02
Ricardo Q Venere1016Spain2024-04-16
Leon H Waycott1017Russia2024-05-10
Nicolas W Campain1018Russia2024-04-25
Leja C Ostrosky1019United Kingdom2024-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo L RoysterItalyBernardo Dominic PROPOSAL
Juan R IturbideJapanStephen Shaw RENEWAL
Francesco S MaletBrazilAnna Fali NEW
Tony W VocelkaArgentinaBernardo Dominic RENEWAL
Leon A StockhamFranceIvan Magalhaes QUALIFIED
Darci T WaycottBrazilIvan Magalhaes NEGOTIATION
Nicolas D ButtCanadaXuxue Feng NEGOTIATION
Smith Z OldroydArgentinaElwin Sharvill PROPOSAL
Francesco V FlosiSpainIoni Bowcher PROPOSAL
Clifford T WieserCanadaAnna Fali PROPOSAL
Jones C ShinkoRussiaElwin Sharvill RENEWAL
Maisha G FigeroaJapanStephen Shaw NEGOTIATION
Maria I MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Aika Y GlickBrazilElwin Sharvill UNQUALIFIED
Murillo Y GarufiSpainBernardo Dominic RENEWAL
Izzy Y FerenczAustraliaOnyama Limba NEGOTIATION
Francesco X FerenczSpainAnna Fali RENEWAL
Mujtaba S GillianCanadaXuxue Feng PROPOSAL
Jennifer C ShinkoItalyXuxue Feng UNQUALIFIED
Kadeem K GauchoIndiaIvan Magalhaes PROPOSAL
Cody X OldroydAustraliaElwin Sharvill NEW
Claire I CaldareraBrazilAmy Elsner NEGOTIATION
Aditya R DarakjyBrazilIvan Magalhaes QUALIFIED
Maria X WieserItalyAsiya Javayant UNQUALIFIED
Aruna Q RulapaughFranceOnyama Limba UNQUALIFIED
James Z NestleFranceAsiya Javayant NEGOTIATION
Juan C TollnerBrazilOnyama Limba UNQUALIFIED
Mujtaba P PerinGermanyStephen Shaw PROPOSAL
Costa Z PerinCanadaIoni Bowcher PROPOSAL
Adams J BowleyArgentinaIvan Magalhaes NEW
Murillo Q RulapaughItalyIvan Magalhaes NEW
Octavia S BowleyUnited KingdomAnna Fali QUALIFIED
Stacey U WieserBrazilAmy Elsner NEGOTIATION
Maria O NestleRussiaStephen Shaw QUALIFIED
Nicolas T RimUnited KingdomOnyama Limba RENEWAL
Jennifer Q SchemmerCanadaBernardo Dominic RENEWAL
Jeanfrancois I CaudyBrazilAnna Fali RENEWAL
Ashley U MacleadUnited KingdomElwin Sharvill PROPOSAL
Faith E BologniaIndiaIoni Bowcher NEW
James Y WaycottArgentinaXuxue Feng 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>