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
Faith N RulapaughSpainAsiya Javayant NEGOTIATION
Stacey Q KuskoSpainBernardo Dominic NEW
James S SergiJapanIvan Magalhaes NEW
Aditya V GarufiIndiaIoni Bowcher QUALIFIED
Wickens Q IturbideBrazilElwin Sharvill NEGOTIATION
Arvin B CaudyGermanyAmy Elsner PROPOSAL
Jennifer Q MaletRussiaOnyama Limba UNQUALIFIED
Emily P FollerIndiaElwin Sharvill UNQUALIFIED
Darci P WaycottCanadaOnyama Limba RENEWAL
Alejandro U NestleGermanyElwin Sharvill NEGOTIATION
Leon J GauchoIndiaAmy Elsner RENEWAL
Arvin L RoysterJapanIvan Magalhaes NEW
Jeanfrancois V DilliardItalyXuxue Feng RENEWAL
Clifford Y CampainIndiaIoni Bowcher RENEWAL
Adams A BowleyUnited KingdomAnna Fali PROPOSAL
Smith X MaletJapanStephen Shaw RENEWAL
Smith G RutaGermanyElwin Sharvill QUALIFIED
Clifford S ChuiGermanyIvan Magalhaes UNQUALIFIED
Ricardo G AmigonRussiaAsiya Javayant NEGOTIATION
Sinclair M RimIndiaAnna Fali PROPOSAL
Claire P WhobreyBrazilIoni Bowcher NEW
Arvin R FlosiFranceAmy Elsner QUALIFIED
Misaki M DilliardIndiaXuxue Feng PROPOSAL
Sinclair L RulapaughCanadaOnyama Limba QUALIFIED
Aika S PoquetteRussiaAmy Elsner QUALIFIED
Deepesh Z MorascaAustraliaAsiya Javayant NEGOTIATION
Wickens B WhobreyBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois K SaylorsGermanyIvan Magalhaes NEW
Adams J SaylorsAustraliaIvan Magalhaes QUALIFIED
Kaitlin G VenereIndiaElwin Sharvill NEGOTIATION
Nicolas B StockhamUnited KingdomStephen Shaw NEW
Costa Q NickaBrazilAnna Fali NEW
Munro L CampainBrazilXuxue Feng NEW
Ivar L MaletUnited KingdomXuxue Feng NEGOTIATION
Ivar B NickaJapanElwin Sharvill QUALIFIED
David D FigeroaBrazilStephen Shaw NEW
Sinclair L AlbaresCanadaAnna Fali PROPOSAL
Misaki I KuskoAustraliaAsiya Javayant QUALIFIED
Antonio G AlbaresGermanyStephen Shaw PROPOSAL
Aika A SlusarskiBrazilXuxue Feng NEW
Jeanfrancois J PerinItalyAsiya Javayant NEGOTIATION
Adams R StensethArgentinaIvan Magalhaes RENEWAL
Smith D IturbideGermanyStephen Shaw QUALIFIED
Jennifer I SchemmerBrazilAmy Elsner PROPOSAL
James T StensethFranceIoni Bowcher NEW
Antonio S VenereArgentinaXuxue Feng RENEWAL
Maria A MaletBrazilAsiya Javayant NEW
Morrow Z IturbideGermanyAsiya Javayant UNQUALIFIED
Ashley Y GarufiIndiaIvan Magalhaes PROPOSAL
Izzy Y CaldareraItalyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa I OldroydAustraliaIvan Magalhaes NEGOTIATION
Isabel P NickaFranceIvan Magalhaes NEGOTIATION
Claire S SchemmerJapanElwin Sharvill QUALIFIED
Antonio W GauchoBrazilBernardo Dominic RENEWAL
Stacey A CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Antonio C SergiAustraliaAsiya Javayant QUALIFIED
Silvio E DarakjyRussiaAsiya Javayant NEW
Tony B NestleArgentinaIvan Magalhaes UNQUALIFIED
Nicolas E DarakjyBrazilIoni Bowcher NEGOTIATION
Rodrigues O SaylorsRussiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa Z OstroskyItaly2024-04-09Morlong Associates NEW70Asiya Javayant
1001Murillo M WieserJapan2024-04-18Benton, John B Jr QUALIFIED60Ioni Bowcher
1002Nicolas D DilliardBrazil2024-03-21Rangoni Of Florence UNQUALIFIED66Stephen Shaw
1003Clifford N ChuiGermany2024-04-09Buckley Miller Wright NEGOTIATION7Onyama Limba
1004Clifford O GauchoItaly2024-03-30Morlong Associates NEGOTIATION66Asiya Javayant
1005Stacey T CampainAustralia2024-03-22Chanay, Jeffrey A Esq NEW59Bernardo Dominic
1006Stacey W AmigonAustralia2024-04-18King, Christopher A Esq UNQUALIFIED99Anna Fali
1007Silvio B RulapaughAustralia2024-04-17King, Christopher A Esq RENEWAL68Amy Elsner
1008Ashley W MaletItaly2024-03-22Chemel, James L Cpa UNQUALIFIED38Xuxue Feng
1009Kaitlin U DarakjySpain2024-04-14Rousseaux, Michael Esq QUALIFIED52Elwin Sharvill
1010Nicolas J AmigonRussia2024-04-14Buckley Miller Wright QUALIFIED97Onyama Limba
1011Claire I SergiRussia2024-03-28Chapman, Ross E Esq NEW28Ioni Bowcher
1012Murillo T InouyeAustralia2024-03-30Benton, John B Jr UNQUALIFIED40Ivan Magalhaes
1013Stacey X MarrierRussia2024-03-20Chanay, Jeffrey A Esq NEW2Xuxue Feng
1014Wickens F WieserRussia2024-04-14King, Christopher A Esq RENEWAL18Bernardo Dominic
1015Johnson V ChuiArgentina2024-04-09Feltz Printing Service NEGOTIATION79Amy Elsner
1016Kaitlin Z WhobreyRussia2024-03-23Feiner Bros UNQUALIFIED37Onyama Limba
1017Darci B RimFrance2024-04-06Rangoni Of Florence QUALIFIED95Anna Fali
1018Ashley K FigeroaIndia2024-04-11King, Christopher A Esq RENEWAL57Ivan Magalhaes
1019Costa M FerenczFrance2024-04-11Chanay, Jeffrey A Esq QUALIFIED59Ivan Magalhaes
1020Stacey Z AmigonJapan2024-04-10Rousseaux, Michael Esq UNQUALIFIED3Xuxue Feng
1021Rodrigues S GlickFrance2024-03-31Dorl, James J Esq QUALIFIED64Stephen Shaw
1022Antonio K StockhamAustralia2024-04-14Morlong Associates NEW24Ivan Magalhaes
1023Kadeem W WaycottFrance2024-03-20Feiner Bros QUALIFIED89Ivan Magalhaes
1024Jennifer Z FollerArgentina2024-03-28Rangoni Of Florence PROPOSAL27Bernardo Dominic
1025Isabel M VocelkaSpain2024-03-30Rangoni Of Florence UNQUALIFIED29Ioni Bowcher
1026Mayumi J StockhamIndia2024-04-15Benton, John B Jr NEW30Onyama Limba
1027Rodrigues Q RoysterSpain2024-03-31Chemel, James L Cpa QUALIFIED33Ivan Magalhaes
1028James N NickaArgentina2024-04-12Chanay, Jeffrey A Esq PROPOSAL94Xuxue Feng
1029Julie L CampainFrance2024-03-30Feltz Printing Service RENEWAL30Bernardo Dominic
1030Deepesh E PaprockiSpain2024-03-20Rangoni Of Florence QUALIFIED26Ioni Bowcher
1031Nicolas R RutaBrazil2024-04-17Feltz Printing Service NEGOTIATION6Amy Elsner
1032Morrow R AmigonItaly2024-04-09King, Christopher A Esq PROPOSAL98Xuxue Feng
1033Clifford O MacleadSpain2024-04-06King, Christopher A Esq NEW20Asiya Javayant
1034Isabel U ButtBrazil2024-03-24Benton, John B Jr RENEWAL57Xuxue Feng
1035Emily L DilliardSpain2024-03-26Rangoni Of Florence RENEWAL73Xuxue Feng
1036Leon Q VenereJapan2024-03-20Benton, John B Jr NEW66Stephen Shaw
1037Ivar L PerinArgentina2024-04-02Feltz Printing Service PROPOSAL46Stephen Shaw
1038Izzy Y InouyeIndia2024-04-14Rangoni Of Florence QUALIFIED1Amy Elsner
1039Ricardo N SchemmerJapan2024-03-29King, Christopher A Esq RENEWAL57Ioni Bowcher
1040Darci T RimSpain2024-04-09Truhlar And Truhlar Attys UNQUALIFIED80Anna Fali
1041James M WieserFrance2024-03-21Feiner Bros RENEWAL9Ioni Bowcher
1042Aruna U VenereFrance2024-04-12Benton, John B Jr NEGOTIATION8Stephen Shaw
1043Kaitlin P WhobreyArgentina2024-03-28Chapman, Ross E Esq QUALIFIED52Xuxue Feng
1044Adams P ButtCanada2024-03-30Rangoni Of Florence NEW34Stephen Shaw
1045Smith C AmigonCanada2024-03-23Chemel, James L Cpa UNQUALIFIED37Amy Elsner
1046Faith D FollerUnited Kingdom2024-03-20Chapman, Ross E Esq QUALIFIED77Xuxue Feng
1047Jones Y OldroydRussia2024-04-02Feiner Bros PROPOSAL38Xuxue Feng
1048James G DilliardArgentina2024-03-29Chanay, Jeffrey A Esq RENEWAL96Bernardo Dominic
1049James Y GillianAustralia2024-03-21Chapman, Ross E Esq NEW48Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois G PerinIndiaOnyama Limba QUALIFIED
Leja L PaprockiFranceElwin Sharvill NEGOTIATION
Deepesh B BriddickCanadaStephen Shaw NEW
Rodrigues D KolmetzJapanIoni Bowcher NEW
Misaki Y KuskoItalyStephen Shaw PROPOSAL
Jeanfrancois Z AmigonRussiaAsiya Javayant NEGOTIATION
Mayumi U MacleadJapanIoni Bowcher NEW
Ashley F AmigonFranceElwin Sharvill NEGOTIATION
Kadeem C ChuiBrazilAsiya Javayant QUALIFIED
Maisha G SlusarskiFranceAmy Elsner RENEWAL
Alejandro C CaldareraItalyAmy Elsner RENEWAL
Salvatore V FlosiSpainIoni Bowcher RENEWAL
Leja G KuskoJapanElwin Sharvill QUALIFIED
Faith X SaylorsGermanyIoni Bowcher QUALIFIED
Johnson O CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Mayumi Y FollerSpainAmy Elsner QUALIFIED
Ricardo F SlusarskiCanadaAnna Fali QUALIFIED
Izzy X KolmetzRussiaIoni Bowcher UNQUALIFIED
Ricardo S MarrierArgentinaAmy Elsner NEGOTIATION
Deepesh Z FigeroaBrazilElwin Sharvill UNQUALIFIED
Mayumi T WaycottIndiaBernardo Dominic PROPOSAL
Sinclair Y FlosiItalyXuxue Feng UNQUALIFIED
Cody J GlickBrazilElwin Sharvill PROPOSAL
Deepesh X ShinkoSpainAmy Elsner RENEWAL
Costa P SlusarskiIndiaIoni Bowcher RENEWAL
Ivar X KuskoSpainBernardo Dominic PROPOSAL
Francesco J FerenczArgentinaAsiya Javayant NEW
David X WhobreyRussiaElwin Sharvill NEGOTIATION
Rodrigues G SlusarskiJapanIvan Magalhaes QUALIFIED
Alejandro K GarufiJapanXuxue Feng RENEWAL
Morrow T DoeAustraliaAmy Elsner QUALIFIED
Ricardo O InouyeBrazilStephen Shaw PROPOSAL
Alejandro E WaycottJapanIvan Magalhaes RENEWAL
Jones S DoeJapanIvan Magalhaes NEGOTIATION
Ivar L CampainGermanyBernardo Dominic UNQUALIFIED
Johnson I MorascaItalyElwin Sharvill NEGOTIATION
Jefferson N AmigonRussiaAmy Elsner NEGOTIATION
Ashley Y CaldareraItalyAsiya Javayant NEGOTIATION
Deepesh J VocelkaRussiaElwin Sharvill NEGOTIATION
Wickens A MaletGermanyElwin Sharvill QUALIFIED
Chavez A GillianAustraliaStephen Shaw QUALIFIED
Aika I GlickFranceBernardo Dominic NEW
Munro C FollerUnited KingdomStephen Shaw RENEWAL
Claire D SergiSpainAnna Fali PROPOSAL
Juan O RoysterJapanAmy Elsner QUALIFIED
Stacey I InouyeArgentinaOnyama Limba PROPOSAL
Mujtaba K InouyeArgentinaStephen Shaw NEW
Francesco Z SchemmerRussiaAmy Elsner NEGOTIATION
Jefferson D MaletIndiaBernardo Dominic NEW
David K ChuiIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Adams N Stockham
Cody M Morasca
Tony Z Inouye
Antonio Q Venere
Sinclair N Iturbide
Aruna C Campain
Aruna T Saylors
Deepesh D Nicka
Rodrigues H Bowley
Murillo N Rim
Rodrigues B Vocelka
Kaitlin O Poquette
Leon E Amigon
Claire L Stockham
Munro J Foller
Antonio O Waycott
Kadeem E Foller
Chavez Z Amigon
Emily N Venere
Mujtaba P Vocelka
Jones J Nestle
Deepesh J Nestle
Nicolas O Royster
Costa I Iturbide
Tony K Gaucho
Tony A Chui
Jennifer X Kusko
Chavez L Ferencz
Francesco J Saylors
Salvatore S Chui
Chavez D Bolognia
Morrow U Whobrey
Salvatore O Caldarera
Aika G Oldroyd
Adams X Darakjy
Leja S Paprocki
Kadeem S Malet
Maisha A Iturbide
Francesco F Caudy
Silvio Z Ferencz
Ivar L Ostrosky
Ashley D Caudy
Isabel C Caudy
Kaitlin R Kolmetz
Cody A Kusko
Salvatore C Foller
Ashley L Nicka
Maria V Butt
Greenwood U Rulapaugh
Wickens K Flosi
IdCountryDate
1000United Kingdom2024-03-21
1001Russia2024-03-20
1002Argentina2024-04-06
1003Germany2024-03-20
1004Brazil2024-03-23
1005Brazil2024-04-17
1006Canada2024-04-10
1007United Kingdom2024-03-24
1008Spain2024-03-20
1009Italy2024-03-29
1010Canada2024-04-15
1011Spain2024-04-02
1012Canada2024-04-12
1013Japan2024-04-08
1014Australia2024-03-22
1015India2024-04-02
1016United Kingdom2024-04-07
1017Russia2024-04-18
1018India2024-04-10
1019United Kingdom2024-04-09
1020France2024-03-30
1021Germany2024-04-16
1022Japan2024-03-24
1023France2024-04-06
1024Canada2024-04-10
1025Canada2024-04-14
1026Italy2024-04-16
1027Germany2024-03-21
1028Canada2024-04-01
1029Spain2024-03-25
1030Argentina2024-04-16
1031Russia2024-04-11
1032Argentina2024-03-22
1033India2024-03-29
1034Italy2024-03-21
1035Japan2024-04-14
1036Spain2024-04-13
1037India2024-04-14
1038India2024-03-29
1039India2024-03-23
1040Germany2024-04-06
1041Argentina2024-04-15
1042United Kingdom2024-04-09
1043Canada2024-04-04
1044Canada2024-03-20
1045Spain2024-04-17
1046Italy2024-03-21
1047Brazil2024-03-29
1048India2024-04-02
1049France2024-04-09

On-Demand Data

NameIdCountryDate
Jones X Stockham1000Italy2024-04-01
Octavia D Butt1001Germany2024-04-12
Murillo P Kolmetz1002Japan2024-04-01
Smith K Venere1003Australia2024-03-29
Leja B Sergi1004Brazil2024-04-11
James O Vocelka1005Italy2024-04-18
Mayumi E Ferencz1006Japan2024-04-11
Johnson Z Saylors1007Australia2024-04-09
Ashley O Wieser1008Canada2024-03-30
Morrow A Tollner1009Japan2024-03-30
Juan H Ruta1010Argentina2024-03-29
Greenwood L Whobrey1011Spain2024-04-06
Ashley R Glick1012Germany2024-03-27
Izzy K Campain1013India2024-03-27
Nicolas R Saylors1014Spain2024-03-30
Munro G Ruta1015United Kingdom2024-03-27
Murillo W Nestle1016Brazil2024-04-16
Sinclair W Marrier1017France2024-03-26
Leon C Wieser1018Canada2024-04-15
Chavez K Tollner1019Italy2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo J DoeJapanAnna Fali PROPOSAL
Octavia Q StockhamIndiaAsiya Javayant RENEWAL
Clifford H CampainCanadaIoni Bowcher UNQUALIFIED
Jones B SchemmerRussiaElwin Sharvill NEGOTIATION
Ivar H DoeJapanIvan Magalhaes RENEWAL
Rodrigues P FlosiCanadaBernardo Dominic QUALIFIED
Julie Q BowleyRussiaStephen Shaw NEGOTIATION
Ricardo T WhobreyJapanBernardo Dominic NEGOTIATION
Adams P PaprockiBrazilAnna Fali NEGOTIATION
Deepesh S ChuiArgentinaAmy Elsner PROPOSAL
Jefferson O PoquetteGermanyAmy Elsner NEGOTIATION
David H MorascaAustraliaXuxue Feng UNQUALIFIED
Izzy G OldroydArgentinaIoni Bowcher QUALIFIED
Isabel O MorascaBrazilIoni Bowcher NEGOTIATION
Misaki A ChuiArgentinaStephen Shaw NEW
Jefferson I GauchoGermanyAsiya Javayant NEGOTIATION
Ivar H MaletGermanyXuxue Feng NEGOTIATION
Greenwood C DilliardSpainStephen Shaw UNQUALIFIED
Misaki Y SchemmerAustraliaAnna Fali NEGOTIATION
Kadeem U MaletBrazilXuxue Feng QUALIFIED
Mujtaba L GarufiRussiaIoni Bowcher NEGOTIATION
Izzy V KolmetzAustraliaAnna Fali QUALIFIED
Morrow S WieserAustraliaBernardo Dominic PROPOSAL
Jeanfrancois E WaycottItalyBernardo Dominic PROPOSAL
Darci Q ShinkoItalyIvan Magalhaes QUALIFIED
Morrow X FerenczGermanyAmy Elsner NEW
Jefferson I ButtFranceIoni Bowcher UNQUALIFIED
Mujtaba C FerenczRussiaIvan Magalhaes RENEWAL
Aika J StensethBrazilAsiya Javayant RENEWAL
Antonio P MacleadSpainAsiya Javayant NEGOTIATION
Smith I StensethBrazilAmy Elsner NEGOTIATION
Ricardo I GarufiRussiaAmy Elsner QUALIFIED
Claire D NickaSpainAnna Fali QUALIFIED
Cody M SchemmerRussiaAmy Elsner QUALIFIED
Greenwood X MaletUnited KingdomIvan Magalhaes PROPOSAL
David Z OldroydItalyIoni Bowcher PROPOSAL
Mujtaba L KolmetzItalyAsiya Javayant QUALIFIED
James O MorascaJapanIvan Magalhaes NEW
Silvio R MarrierCanadaStephen Shaw UNQUALIFIED
Silvio M OldroydUnited KingdomElwin Sharvill 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>