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 C AmigonCanadaXuxue Feng NEW
Faith I StensethRussiaAnna Fali NEW
Aruna T SchemmerBrazilAnna Fali RENEWAL
Deepesh G ShinkoFranceIvan Magalhaes QUALIFIED
Greenwood N WhobreyFranceBernardo Dominic RENEWAL
Claire O MacleadGermanyStephen Shaw NEW
Costa W KuskoArgentinaStephen Shaw QUALIFIED
Stacey S GlickIndiaAnna Fali PROPOSAL
Ricardo E KolmetzItalyOnyama Limba QUALIFIED
Julie I RutaCanadaAmy Elsner NEGOTIATION
Maria J RoysterBrazilIvan Magalhaes UNQUALIFIED
Arvin J DarakjyGermanyAsiya Javayant NEW
Rodrigues S FigeroaCanadaIvan Magalhaes NEGOTIATION
Greenwood H BriddickSpainBernardo Dominic QUALIFIED
Aika C RutaArgentinaOnyama Limba QUALIFIED
Julie J WaycottRussiaAsiya Javayant PROPOSAL
Ashley L DoeRussiaIoni Bowcher RENEWAL
Mayumi M KuskoGermanyXuxue Feng NEW
Stacey H SaylorsBrazilAnna Fali NEGOTIATION
Clifford A StockhamItalyAnna Fali RENEWAL
Darci G SaylorsBrazilAsiya Javayant UNQUALIFIED
Morrow K GarufiArgentinaIvan Magalhaes NEGOTIATION
Francesco N NestleIndiaAsiya Javayant RENEWAL
Emily U OstroskyItalyBernardo Dominic PROPOSAL
Kadeem F KuskoItalyIvan Magalhaes PROPOSAL
Ashley U DilliardRussiaXuxue Feng PROPOSAL
Ashley Q BologniaIndiaIvan Magalhaes NEW
Salvatore N StensethIndiaAnna Fali UNQUALIFIED
Jones G ButtItalyIoni Bowcher UNQUALIFIED
Mujtaba R SaylorsFranceElwin Sharvill QUALIFIED
Stacey E KuskoBrazilIvan Magalhaes UNQUALIFIED
Salvatore K GauchoGermanyBernardo Dominic RENEWAL
Juan T StensethJapanXuxue Feng NEW
Darci I SchemmerArgentinaBernardo Dominic UNQUALIFIED
Antonio O InouyeJapanAsiya Javayant PROPOSAL
Ivar I TollnerIndiaIoni Bowcher PROPOSAL
Silvio V PoquetteGermanyElwin Sharvill PROPOSAL
Cody T MarrierIndiaOnyama Limba QUALIFIED
Claire P SergiCanadaIoni Bowcher UNQUALIFIED
Kaitlin X CaudyItalyStephen Shaw UNQUALIFIED
Silvio V BriddickBrazilAnna Fali RENEWAL
Aditya B SlusarskiJapanXuxue Feng NEGOTIATION
Ricardo C SergiRussiaOnyama Limba PROPOSAL
Claire V MaletJapanOnyama Limba QUALIFIED
Mayumi H CampainAustraliaOnyama Limba NEW
Jennifer G MarrierRussiaAnna Fali RENEWAL
Tony K DoeFranceAnna Fali PROPOSAL
Octavia P MacleadUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois W PoquetteJapanOnyama Limba UNQUALIFIED
Octavia H StockhamGermanyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh U SergiJapanXuxue Feng QUALIFIED
Jennifer D NickaUnited KingdomIvan Magalhaes PROPOSAL
Maria K RoysterArgentinaStephen Shaw QUALIFIED
Jones U WhobreyBrazilXuxue Feng PROPOSAL
Jennifer H SaylorsRussiaAsiya Javayant QUALIFIED
Julie F VenereBrazilElwin Sharvill PROPOSAL
Johnson Q OldroydGermanyAnna Fali UNQUALIFIED
Leon P SlusarskiJapanElwin Sharvill NEGOTIATION
Octavia Q StensethJapanElwin Sharvill RENEWAL
Tony H DilliardItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones H WieserJapan2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED18Stephen Shaw
1001Arvin H OstroskyAustralia2024-04-02Truhlar And Truhlar Attys NEW82Asiya Javayant
1002Emily J StockhamUnited Kingdom2024-04-29Truhlar And Truhlar Attys UNQUALIFIED97Bernardo Dominic
1003Mayumi N DilliardCanada2024-04-11Feiner Bros UNQUALIFIED9Asiya Javayant
1004Izzy G GlickCanada2024-04-08Chapman, Ross E Esq UNQUALIFIED47Bernardo Dominic
1005Maria O FlosiIndia2024-04-11King, Christopher A Esq UNQUALIFIED21Ivan Magalhaes
1006Smith T StensethArgentina2024-04-28Truhlar And Truhlar Attys NEGOTIATION81Anna Fali
1007Sinclair U FerenczIndia2024-04-20Commercial Press NEGOTIATION67Ioni Bowcher
1008Jennifer R IturbideUnited Kingdom2024-04-25Chemel, James L Cpa QUALIFIED9Anna Fali
1009Deepesh V WaycottIndia2024-04-16Chanay, Jeffrey A Esq QUALIFIED32Xuxue Feng
1010Julie P PaprockiItaly2024-04-04Benton, John B Jr RENEWAL20Stephen Shaw
1011Aika C SlusarskiBrazil2024-04-24Chanay, Jeffrey A Esq RENEWAL48Bernardo Dominic
1012Ashley E AmigonSpain2024-04-04Benton, John B Jr QUALIFIED74Asiya Javayant
1013Ricardo P RimUnited Kingdom2024-04-14Dorl, James J Esq QUALIFIED59Anna Fali
1014Izzy X MarrierUnited Kingdom2024-05-01Feiner Bros PROPOSAL8Anna Fali
1015Juan N NickaItaly2024-04-24Rangoni Of Florence NEGOTIATION63Amy Elsner
1016Mujtaba C SaylorsUnited Kingdom2024-04-15Rangoni Of Florence UNQUALIFIED16Stephen Shaw
1017James U MaletGermany2024-04-19Rousseaux, Michael Esq UNQUALIFIED45Onyama Limba
1018Mujtaba A CaldareraUnited Kingdom2024-04-05King, Christopher A Esq NEW4Ivan Magalhaes
1019Salvatore F MacleadUnited Kingdom2024-04-27Feiner Bros RENEWAL39Anna Fali
1020Deepesh G OldroydAustralia2024-04-09Feiner Bros UNQUALIFIED12Stephen Shaw
1021Munro F DarakjyArgentina2024-04-10Feiner Bros RENEWAL57Onyama Limba
1022Ricardo S SergiBrazil2024-04-22Rangoni Of Florence UNQUALIFIED27Stephen Shaw
1023Darci T AmigonItaly2024-04-02Dorl, James J Esq NEW35Anna Fali
1024Jeanfrancois I OldroydIndia2024-04-26Rangoni Of Florence RENEWAL20Ioni Bowcher
1025Francesco M BowleyGermany2024-04-30Feiner Bros RENEWAL93Amy Elsner
1026Murillo W CaudyFrance2024-04-25Feltz Printing Service PROPOSAL23Xuxue Feng
1027Greenwood P TollnerFrance2024-04-16Chapman, Ross E Esq NEW65Bernardo Dominic
1028Arvin E MorascaCanada2024-04-05Printing Dimensions QUALIFIED24Ivan Magalhaes
1029Johnson B DoeItaly2024-04-20Rangoni Of Florence RENEWAL4Bernardo Dominic
1030Claire O StockhamFrance2024-04-09King, Christopher A Esq UNQUALIFIED61Ivan Magalhaes
1031Claire R RimUnited Kingdom2024-04-14Truhlar And Truhlar Attys UNQUALIFIED42Elwin Sharvill
1032Smith Y GlickBrazil2024-04-04Chanay, Jeffrey A Esq RENEWAL99Ioni Bowcher
1033Antonio Z TollnerBrazil2024-04-11Rangoni Of Florence NEW97Amy Elsner
1034Costa J DoeItaly2024-04-21King, Christopher A Esq NEW99Xuxue Feng
1035Jennifer I NickaJapan2024-04-29King, Christopher A Esq PROPOSAL52Ivan Magalhaes
1036Wickens G BriddickCanada2024-04-09Printing Dimensions NEW56Amy Elsner
1037Cody E ChuiUnited Kingdom2024-04-14Feltz Printing Service RENEWAL78Bernardo Dominic
1038Jennifer Y CaudySpain2024-04-05Feltz Printing Service QUALIFIED11Xuxue Feng
1039Leja I ChuiCanada2024-04-11Chemel, James L Cpa NEGOTIATION95Stephen Shaw
1040Juan X DilliardItaly2024-04-10Feltz Printing Service UNQUALIFIED74Amy Elsner
1041Jennifer F RulapaughAustralia2024-05-01Chanay, Jeffrey A Esq NEGOTIATION57Bernardo Dominic
1042Misaki K IturbideFrance2024-04-02Printing Dimensions RENEWAL51Xuxue Feng
1043Deepesh R MaletBrazil2024-04-02Chapman, Ross E Esq RENEWAL82Onyama Limba
1044Francesco L FerenczItaly2024-04-04Printing Dimensions NEW77Amy Elsner
1045Kadeem L MacleadSpain2024-04-17Printing Dimensions RENEWAL60Stephen Shaw
1046Cody V InouyeArgentina2024-04-10Benton, John B Jr NEGOTIATION19Stephen Shaw
1047Aruna D ShinkoBrazil2024-04-23Feltz Printing Service QUALIFIED38Ioni Bowcher
1048Faith E BriddickUnited Kingdom2024-04-28Chanay, Jeffrey A Esq NEW15Xuxue Feng
1049Emily A VocelkaCanada2024-05-01Benton, John B Jr PROPOSAL95Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Mayumi J PaprockiCanadaXuxue Feng QUALIFIED
Leja I WhobreyBrazilAmy Elsner QUALIFIED
Mujtaba Z SergiItalyXuxue Feng PROPOSAL
Jeanfrancois Q WieserBrazilOnyama Limba NEW
Arvin U IturbideItalyAnna Fali PROPOSAL
Izzy U FerenczIndiaStephen Shaw PROPOSAL
Adams P PaprockiRussiaIoni Bowcher RENEWAL
Izzy O RulapaughJapanAsiya Javayant QUALIFIED
Deepesh N MorascaAustraliaIoni Bowcher NEW
Ricardo V SergiItalyOnyama Limba NEW
Francesco A InouyeSpainOnyama Limba RENEWAL
Ivar E BriddickUnited KingdomAmy Elsner PROPOSAL
Deepesh B WaycottCanadaBernardo Dominic PROPOSAL
Arvin H GauchoGermanyBernardo Dominic RENEWAL
Ricardo D KuskoBrazilIoni Bowcher NEGOTIATION
Rodrigues O SergiAustraliaOnyama Limba NEW
Ricardo O MarrierAustraliaAmy Elsner UNQUALIFIED
Tony Q MorascaArgentinaIoni Bowcher NEGOTIATION
Clifford I MarrierArgentinaAnna Fali QUALIFIED
Jennifer R AlbaresFranceAmy Elsner PROPOSAL
Aika O FerenczAustraliaBernardo Dominic QUALIFIED
Alejandro C SlusarskiBrazilXuxue Feng QUALIFIED
Emily X MacleadCanadaAsiya Javayant RENEWAL
Misaki V VenereRussiaAsiya Javayant QUALIFIED
Costa B PoquetteItalyIvan Magalhaes RENEWAL
Maisha K GarufiSpainAmy Elsner NEW
Claire V AmigonSpainBernardo Dominic NEGOTIATION
Claire X IturbideCanadaOnyama Limba PROPOSAL
Arvin V FlosiFranceXuxue Feng UNQUALIFIED
Jeanfrancois E SlusarskiFranceAnna Fali RENEWAL
Arvin W WaycottGermanyAnna Fali NEW
Ricardo W FigeroaRussiaAnna Fali NEGOTIATION
Kadeem N InouyeSpainIoni Bowcher NEW
Arvin J NestleJapanAsiya Javayant QUALIFIED
Isabel N IturbideFranceAmy Elsner NEGOTIATION
Mujtaba T OstroskyUnited KingdomIoni Bowcher NEW
Johnson Q StockhamArgentinaIoni Bowcher PROPOSAL
Ricardo I FerenczIndiaIoni Bowcher UNQUALIFIED
Morrow B StensethIndiaAnna Fali NEW
Aruna S StensethGermanyStephen Shaw NEGOTIATION
Costa O CaudyRussiaElwin Sharvill RENEWAL
Claire T FigeroaCanadaElwin Sharvill PROPOSAL
Deepesh D PaprockiAustraliaOnyama Limba QUALIFIED
Cody D MorascaAustraliaElwin Sharvill NEGOTIATION
Maisha P SlusarskiRussiaElwin Sharvill QUALIFIED
Nicolas H TollnerIndiaElwin Sharvill UNQUALIFIED
Jones I RoysterCanadaOnyama Limba NEGOTIATION
Wickens G MorascaCanadaStephen Shaw NEGOTIATION
Cody U FigeroaBrazilAnna Fali PROPOSAL
Jennifer G WhobreyGermanyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Clifford U Royster
Emily A Flosi
Jeanfrancois Y Kusko
Murillo Q Foller
Johnson C Rim
Johnson F Iturbide
Jennifer F Kolmetz
Mayumi O Waycott
Claire U Darakjy
Jefferson J Garufi
Ricardo J Malet
Jefferson F Inouye
Jones T Whobrey
David M Ferencz
Smith L Iturbide
David M Morasca
Johnson K Malet
Maisha O Rulapaugh
Isabel C Shinko
Costa U Campain
Alejandro F Nicka
Leon F Whobrey
Sinclair U Sergi
Isabel P Inouye
Aditya Y Malet
Clifford V Kusko
Clifford L Malet
Deepesh S Stenseth
Kadeem G Venere
Maisha X Oldroyd
Munro N Malet
Munro E Stockham
Wickens I Maclead
Jeanfrancois N Chui
David U Schemmer
Izzy L Saylors
Mayumi K Briddick
Jennifer I Albares
Rodrigues O Whobrey
Munro U Chui
Alejandro E Saylors
Johnson Z Oldroyd
Maisha O Ferencz
Sinclair B Slusarski
Tony K Oldroyd
Alejandro P Stenseth
Greenwood A Albares
Silvio L Malet
Misaki A Foller
Murillo R Dilliard
IdCountryDate
1000Argentina2024-04-23
1001Brazil2024-04-15
1002Canada2024-04-07
1003Australia2024-04-30
1004United Kingdom2024-04-21
1005Italy2024-04-09
1006Italy2024-04-21
1007Germany2024-04-26
1008Australia2024-04-29
1009Australia2024-04-19
1010France2024-04-23
1011Russia2024-04-17
1012India2024-04-20
1013Spain2024-04-09
1014France2024-04-20
1015Argentina2024-04-15
1016Australia2024-04-17
1017Australia2024-04-15
1018Argentina2024-04-24
1019France2024-04-27
1020France2024-04-26
1021India2024-04-27
1022Germany2024-04-21
1023Brazil2024-04-14
1024Japan2024-04-22
1025France2024-04-13
1026France2024-04-04
1027Canada2024-04-23
1028Canada2024-04-18
1029Italy2024-04-30
1030Argentina2024-04-30
1031Russia2024-04-25
1032Australia2024-04-06
1033Argentina2024-04-26
1034India2024-04-05
1035India2024-04-08
1036Brazil2024-04-07
1037France2024-04-05
1038United Kingdom2024-04-16
1039Argentina2024-04-25
1040Argentina2024-04-04
1041Argentina2024-05-01
1042United Kingdom2024-04-08
1043Australia2024-04-05
1044France2024-04-27
1045Australia2024-04-27
1046United Kingdom2024-04-07
1047Argentina2024-04-03
1048United Kingdom2024-04-26
1049Canada2024-04-18

On-Demand Data

NameIdCountryDate
Aika L Schemmer1000Spain2024-04-27
Leon U Waycott1001Brazil2024-04-21
Costa X Caldarera1002Japan2024-04-17
David B Malet1003Argentina2024-04-05
Sinclair O Perin1004Canada2024-04-09
Maria C Rim1005Germany2024-04-29
David Q Whobrey1006Russia2024-04-20
Adams C Doe1007Germany2024-04-03
Kadeem P Garufi1008Brazil2024-04-12
Juan N Foller1009Russia2024-04-27
Wickens Y Flosi1010France2024-04-25
Faith F Sergi1011Canada2024-04-23
Julie U Amigon1012Italy2024-04-12
Emily U Ostrosky1013Canada2024-04-20
Munro T Waycott1014United Kingdom2024-05-01
Maisha L Nestle1015Brazil2024-04-07
Ashley O Sergi1016Italy2024-04-21
Emily A Butt1017Japan2024-04-29
Jeanfrancois B Vocelka1018Spain2024-04-16
Julie L Nicka1019Canada2024-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford B MacleadSpainAnna Fali RENEWAL
Antonio C IturbideAustraliaAmy Elsner PROPOSAL
Francesco V WhobreyBrazilXuxue Feng UNQUALIFIED
Ricardo C SlusarskiCanadaAmy Elsner PROPOSAL
Jennifer H KuskoAustraliaXuxue Feng NEGOTIATION
Leon M PaprockiArgentinaStephen Shaw NEGOTIATION
Salvatore I WieserFranceStephen Shaw QUALIFIED
Clifford U DoeArgentinaBernardo Dominic NEW
David T MaletItalyAnna Fali NEGOTIATION
Deepesh R RutaIndiaAsiya Javayant PROPOSAL
David W GillianBrazilXuxue Feng NEGOTIATION
Octavia M PaprockiAustraliaIoni Bowcher QUALIFIED
Cody U RimItalyOnyama Limba NEW
Mayumi D PerinJapanIoni Bowcher NEGOTIATION
Claire P TollnerItalyXuxue Feng NEGOTIATION
Aditya G FollerIndiaAmy Elsner QUALIFIED
Smith B IturbideItalyIoni Bowcher PROPOSAL
Maria K RulapaughGermanyElwin Sharvill NEGOTIATION
Jennifer N ShinkoItalyIoni Bowcher UNQUALIFIED
Nicolas A CaldareraFranceAnna Fali QUALIFIED
Wickens R StockhamArgentinaXuxue Feng QUALIFIED
Faith P MaletIndiaBernardo Dominic RENEWAL
Juan A SergiUnited KingdomBernardo Dominic UNQUALIFIED
Johnson T SaylorsRussiaXuxue Feng PROPOSAL
Sinclair N ShinkoFranceIvan Magalhaes RENEWAL
Octavia G CampainArgentinaAmy Elsner PROPOSAL
Chavez H FigeroaJapanXuxue Feng UNQUALIFIED
Isabel M GauchoCanadaAmy Elsner NEGOTIATION
Ivar P InouyeGermanyElwin Sharvill RENEWAL
Stacey O FollerGermanyXuxue Feng NEGOTIATION
Darci W BologniaBrazilAsiya Javayant RENEWAL
Mujtaba Y MarrierBrazilAsiya Javayant RENEWAL
Sinclair H BriddickCanadaBernardo Dominic NEW
Emily R KuskoCanadaAmy Elsner NEW
Alejandro U GlickGermanyAnna Fali QUALIFIED
Sinclair E FollerIndiaBernardo Dominic PROPOSAL
Ivar M SergiJapanAnna Fali QUALIFIED
Jennifer U RutaCanadaAsiya Javayant NEW
Aika X ButtAustraliaIoni Bowcher PROPOSAL
Chavez D StockhamUnited KingdomIvan Magalhaes NEW

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