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
Cody J GillianSpainXuxue Feng PROPOSAL
Cody W GlickIndiaAmy Elsner RENEWAL
Emily R FlosiItalyOnyama Limba UNQUALIFIED
Salvatore E InouyeAustraliaXuxue Feng PROPOSAL
Salvatore X WieserArgentinaAmy Elsner UNQUALIFIED
Jefferson W SchemmerItalyAsiya Javayant RENEWAL
Morrow E CaldareraGermanyAnna Fali RENEWAL
Morrow Q GlickItalyAsiya Javayant QUALIFIED
Alejandro B WaycottSpainOnyama Limba UNQUALIFIED
Kaitlin J MarrierFranceAmy Elsner PROPOSAL
Murillo I FollerBrazilAsiya Javayant UNQUALIFIED
Murillo L MorascaArgentinaIvan Magalhaes NEW
Izzy Y OstroskyRussiaAsiya Javayant PROPOSAL
Morrow V PaprockiBrazilXuxue Feng RENEWAL
Maisha Y IturbideJapanStephen Shaw NEGOTIATION
Mayumi D IturbideGermanyIvan Magalhaes NEGOTIATION
Leja U CaldareraGermanyAsiya Javayant NEGOTIATION
Salvatore P SlusarskiJapanIoni Bowcher NEGOTIATION
James Z NestleAustraliaAsiya Javayant RENEWAL
Cody K PerinRussiaBernardo Dominic NEGOTIATION
Ivar A VocelkaRussiaXuxue Feng NEGOTIATION
Maisha N CaudyArgentinaAnna Fali NEGOTIATION
Ashley W FigeroaArgentinaStephen Shaw NEGOTIATION
Kadeem E StensethIndiaAmy Elsner PROPOSAL
Mujtaba M AmigonFranceStephen Shaw NEGOTIATION
Clifford M InouyeIndiaAmy Elsner RENEWAL
Emily M ButtArgentinaOnyama Limba RENEWAL
Salvatore X CaldareraRussiaStephen Shaw NEW
Cody C FlosiFranceBernardo Dominic NEW
Faith C AmigonUnited KingdomStephen Shaw PROPOSAL
Nicolas I FerenczIndiaIvan Magalhaes NEGOTIATION
Clifford A KolmetzArgentinaAmy Elsner NEGOTIATION
Rodrigues R AlbaresUnited KingdomAnna Fali QUALIFIED
Mujtaba Z PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Tony P CaldareraIndiaStephen Shaw QUALIFIED
Deepesh D MacleadArgentinaBernardo Dominic QUALIFIED
Sinclair Z InouyeRussiaIoni Bowcher QUALIFIED
Aika B BriddickArgentinaIvan Magalhaes PROPOSAL
Smith S BriddickUnited KingdomAnna Fali NEW
Juan Y SlusarskiBrazilElwin Sharvill NEW
Misaki N SergiJapanElwin Sharvill NEW
Mujtaba B RimItalyElwin Sharvill PROPOSAL
Antonio P BriddickIndiaAsiya Javayant RENEWAL
Ashley U TollnerAustraliaBernardo Dominic NEGOTIATION
Faith C WieserAustraliaIoni Bowcher UNQUALIFIED
Mayumi H BowleyIndiaOnyama Limba PROPOSAL
Salvatore J DarakjyRussiaAnna Fali NEGOTIATION
Jones E FollerJapanAmy Elsner UNQUALIFIED
Aditya G NestleItalyOnyama Limba NEGOTIATION
Clifford M ChuiGermanyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Claire V MorascaCanadaIoni Bowcher NEW
Izzy H VenereItalyXuxue Feng RENEWAL
Tony I DilliardItalyStephen Shaw UNQUALIFIED
Adams D BowleyCanadaStephen Shaw NEGOTIATION
Costa D SchemmerRussiaIvan Magalhaes UNQUALIFIED
Julie W RoysterGermanyOnyama Limba NEGOTIATION
Kaitlin Z ChuiBrazilAnna Fali UNQUALIFIED
James D FigeroaArgentinaIoni Bowcher PROPOSAL
Ricardo T DilliardJapanIoni Bowcher NEGOTIATION
Johnson Y GarufiFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens G MaletSpain2024-03-06Morlong Associates UNQUALIFIED15Asiya Javayant
1001Maisha O NickaSpain2024-02-28Dorl, James J Esq NEGOTIATION82Ioni Bowcher
1002Mujtaba I CampainSpain2024-03-23King, Christopher A Esq PROPOSAL83Stephen Shaw
1003Emily T SlusarskiSpain2024-03-23King, Christopher A Esq PROPOSAL26Anna Fali
1004Leja M SchemmerGermany2024-03-09Rangoni Of Florence RENEWAL42Asiya Javayant
1005Julie E WieserArgentina2024-03-07Benton, John B Jr UNQUALIFIED13Elwin Sharvill
1006Deepesh M NestleBrazil2024-03-21Chanay, Jeffrey A Esq RENEWAL37Elwin Sharvill
1007Ashley I ButtFrance2024-03-26Morlong Associates UNQUALIFIED80Stephen Shaw
1008Wickens I VocelkaAustralia2024-03-10Morlong Associates PROPOSAL53Bernardo Dominic
1009Aruna E CaudySpain2024-03-04Chapman, Ross E Esq QUALIFIED78Stephen Shaw
1010Kadeem F WaycottGermany2024-03-18Chemel, James L Cpa NEW10Asiya Javayant
1011Arvin V BologniaItaly2024-03-14Feiner Bros UNQUALIFIED80Ivan Magalhaes
1012Alejandro U SchemmerArgentina2024-03-05Chanay, Jeffrey A Esq QUALIFIED62Stephen Shaw
1013Ricardo P AmigonArgentina2024-03-22Truhlar And Truhlar Attys NEW0Elwin Sharvill
1014Ivar J SaylorsJapan2024-03-08Rangoni Of Florence QUALIFIED43Xuxue Feng
1015Tony O RoysterRussia2024-03-22Rousseaux, Michael Esq PROPOSAL69Anna Fali
1016Isabel C GillianJapan2024-02-28Feltz Printing Service UNQUALIFIED96Onyama Limba
1017Cody X GauchoRussia2024-03-08Printing Dimensions RENEWAL27Ivan Magalhaes
1018David O KolmetzBrazil2024-03-20Feltz Printing Service NEW78Amy Elsner
1019Nicolas L CaudyAustralia2024-03-10Morlong Associates RENEWAL62Ivan Magalhaes
1020Kadeem H GlickArgentina2024-03-03Rousseaux, Michael Esq PROPOSAL55Xuxue Feng
1021Ivar A DarakjyRussia2024-03-19Commercial Press UNQUALIFIED28Anna Fali
1022Ivar Y CaldareraArgentina2024-03-12Chemel, James L Cpa RENEWAL98Elwin Sharvill
1023Aika U TollnerJapan2024-03-10Buckley Miller Wright UNQUALIFIED58Onyama Limba
1024Jones E FlosiUnited Kingdom2024-03-24Buckley Miller Wright QUALIFIED2Stephen Shaw
1025David X VenereUnited Kingdom2024-03-21Chemel, James L Cpa RENEWAL69Bernardo Dominic
1026Claire W OstroskyRussia2024-03-28King, Christopher A Esq NEGOTIATION17Ioni Bowcher
1027Costa A InouyeGermany2024-02-28Truhlar And Truhlar Attys PROPOSAL49Elwin Sharvill
1028Francesco J OstroskySpain2024-03-23Chapman, Ross E Esq UNQUALIFIED50Ivan Magalhaes
1029Faith N PerinAustralia2024-03-01Truhlar And Truhlar Attys RENEWAL29Asiya Javayant
1030Julie E CaldareraItaly2024-03-28Truhlar And Truhlar Attys RENEWAL35Ivan Magalhaes
1031Greenwood T CampainUnited Kingdom2024-03-19Benton, John B Jr NEGOTIATION61Elwin Sharvill
1032Arvin J MacleadJapan2024-03-21King, Christopher A Esq PROPOSAL78Amy Elsner
1033Rodrigues G NickaRussia2024-03-07Morlong Associates RENEWAL50Ioni Bowcher
1034Greenwood D FigeroaGermany2024-03-01Benton, John B Jr QUALIFIED30Onyama Limba
1035Smith J KolmetzCanada2024-03-18King, Christopher A Esq QUALIFIED23Amy Elsner
1036David F WieserBrazil2024-03-03Benton, John B Jr NEW50Ioni Bowcher
1037Leja R CaldareraFrance2024-03-03Feltz Printing Service PROPOSAL9Ivan Magalhaes
1038Salvatore X WhobreyRussia2024-03-02Morlong Associates NEGOTIATION36Xuxue Feng
1039Rodrigues D KolmetzUnited Kingdom2024-03-22Printing Dimensions NEGOTIATION7Xuxue Feng
1040Salvatore T TollnerArgentina2024-03-19Chapman, Ross E Esq NEW15Amy Elsner
1041Clifford S PoquetteItaly2024-03-06King, Christopher A Esq PROPOSAL74Bernardo Dominic
1042Greenwood W KuskoCanada2024-03-13Rousseaux, Michael Esq QUALIFIED96Ivan Magalhaes
1043Julie S CaldareraFrance2024-03-27Morlong Associates NEW72Ioni Bowcher
1044Chavez K PerinCanada2024-03-22Rangoni Of Florence NEW76Ivan Magalhaes
1045Isabel T FerenczArgentina2024-03-03Benton, John B Jr NEW93Ioni Bowcher
1046David F RimGermany2024-03-27Truhlar And Truhlar Attys PROPOSAL75Anna Fali
1047Cody K IturbideArgentina2024-03-09Dorl, James J Esq NEGOTIATION70Onyama Limba
1048Johnson R MacleadRussia2024-03-19Truhlar And Truhlar Attys NEGOTIATION25Asiya Javayant
1049Jeanfrancois R WaycottGermany2024-03-19Chanay, Jeffrey A Esq RENEWAL19Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Chavez X MaletFranceIoni Bowcher NEGOTIATION
Chavez R StensethArgentinaAmy Elsner UNQUALIFIED
Leja B AmigonBrazilXuxue Feng PROPOSAL
Jennifer R WaycottFranceAsiya Javayant NEW
Clifford E PaprockiSpainAsiya Javayant PROPOSAL
David Z RoysterCanadaBernardo Dominic NEW
Julie E KolmetzSpainOnyama Limba UNQUALIFIED
Costa L GarufiUnited KingdomAnna Fali QUALIFIED
Nicolas O BriddickGermanyElwin Sharvill PROPOSAL
Jennifer U VenereRussiaElwin Sharvill NEGOTIATION
Octavia O DoeJapanBernardo Dominic PROPOSAL
Silvio A FlosiIndiaElwin Sharvill NEW
Nicolas N SchemmerItalyAnna Fali NEGOTIATION
Leja X SlusarskiRussiaElwin Sharvill NEW
Cody J KolmetzAustraliaIoni Bowcher RENEWAL
James W ChuiIndiaBernardo Dominic NEW
Chavez E MorascaJapanElwin Sharvill RENEWAL
Smith X BowleyGermanyXuxue Feng NEGOTIATION
Darci N WieserIndiaBernardo Dominic RENEWAL
Johnson C GarufiJapanXuxue Feng RENEWAL
Wickens F PoquetteSpainIvan Magalhaes NEW
Jones C KuskoSpainAsiya Javayant NEW
Faith P BriddickFranceAmy Elsner NEGOTIATION
Silvio Z AlbaresBrazilStephen Shaw NEGOTIATION
Arvin R FerenczItalyIoni Bowcher QUALIFIED
Silvio H GarufiIndiaElwin Sharvill RENEWAL
Costa C MarrierFranceElwin Sharvill PROPOSAL
Morrow U ChuiBrazilAmy Elsner NEW
David U MaletRussiaIvan Magalhaes PROPOSAL
Mayumi I RimBrazilBernardo Dominic UNQUALIFIED
Francesco T MaletUnited KingdomIvan Magalhaes NEGOTIATION
Juan B VocelkaBrazilAsiya Javayant PROPOSAL
Maisha L OldroydArgentinaOnyama Limba PROPOSAL
Leon K SchemmerItalyOnyama Limba PROPOSAL
Chavez X OstroskyCanadaOnyama Limba PROPOSAL
Faith T MacleadSpainStephen Shaw QUALIFIED
Ricardo G OstroskyIndiaElwin Sharvill NEGOTIATION
Ashley K MaletBrazilAnna Fali RENEWAL
Arvin A MaletFranceStephen Shaw PROPOSAL
Aruna G KuskoGermanyStephen Shaw RENEWAL
Antonio J RimFranceStephen Shaw PROPOSAL
Ashley I ChuiSpainAsiya Javayant PROPOSAL
Costa Z SaylorsAustraliaAnna Fali RENEWAL
Jennifer H IturbideUnited KingdomStephen Shaw QUALIFIED
Silvio Q WaycottItalyAnna Fali QUALIFIED
Maria V CaldareraArgentinaOnyama Limba UNQUALIFIED
Morrow N PaprockiArgentinaAsiya Javayant UNQUALIFIED
Francesco X GauchoRussiaStephen Shaw UNQUALIFIED
Deepesh Z VocelkaIndiaXuxue Feng QUALIFIED
Jeanfrancois K NickaCanadaBernardo Dominic QUALIFIED
Frozen Columns
Name
Wickens O Albares
Chavez F Saylors
Maria R Stenseth
Wickens Q Garufi
Jefferson X Foller
Deepesh E Morasca
Maria T Glick
Murillo Z Garufi
Ivar I Amigon
Ricardo T Butt
Kaitlin R Caldarera
Aditya K Kolmetz
Ivar O Tollner
Silvio S Shinko
Faith I Nicka
Mayumi Y Whobrey
Arvin W Oldroyd
Aika A Nicka
Leja P Royster
Aditya O Poquette
Maria C Foller
Leja E Flosi
Francesco B Doe
Izzy C Chui
Jeanfrancois B Venere
Jones M Kolmetz
Ivar W Nicka
Emily O Bowley
Greenwood Q Rulapaugh
Arvin N Doe
Rodrigues A Tollner
Leja Q Caldarera
Costa Q Bolognia
Sinclair A Malet
Sinclair H Butt
Arvin L Waycott
David X Waycott
Aruna G Paprocki
Mayumi J Paprocki
David V Saylors
Nicolas M Sergi
Deepesh K Slusarski
Maria U Wieser
Julie G Oldroyd
Izzy L Malet
Deepesh K Ferencz
Smith F Albares
Claire O Ostrosky
Sinclair B Foller
Leja P Doe
IdCountryDate
1000Russia2024-03-14
1001Brazil2024-03-03
1002Germany2024-02-29
1003Spain2024-03-24
1004Brazil2024-03-03
1005Brazil2024-03-11
1006Argentina2024-03-06
1007Canada2024-03-20
1008Spain2024-03-08
1009Germany2024-03-28
1010Spain2024-03-26
1011India2024-03-05
1012Spain2024-03-03
1013India2024-03-19
1014Canada2024-03-02
1015Argentina2024-03-10
1016Russia2024-03-05
1017Germany2024-03-16
1018Australia2024-03-23
1019United Kingdom2024-03-20
1020Spain2024-03-18
1021Russia2024-03-27
1022Canada2024-03-24
1023Japan2024-03-06
1024Germany2024-03-06
1025India2024-03-24
1026Germany2024-03-23
1027Spain2024-03-07
1028Argentina2024-03-11
1029Australia2024-03-19
1030Russia2024-03-09
1031France2024-03-26
1032France2024-03-27
1033Japan2024-03-19
1034Canada2024-02-29
1035Italy2024-03-08
1036United Kingdom2024-03-17
1037Canada2024-03-12
1038Australia2024-03-03
1039Spain2024-03-09
1040Argentina2024-03-27
1041Australia2024-03-03
1042Argentina2024-03-16
1043United Kingdom2024-03-27
1044Australia2024-03-06
1045Australia2024-03-22
1046France2024-03-15
1047Japan2024-03-23
1048France2024-03-01
1049Brazil2024-03-24

On-Demand Data

NameIdCountryDate
Isabel R Stenseth1000Brazil2024-03-25
Clifford D Ruta1001United Kingdom2024-03-16
Claire M Inouye1002Australia2024-03-10
Morrow P Ferencz1003Italy2024-03-14
Jones D Dilliard1004Japan2024-03-06
Cody F Garufi1005Brazil2024-02-28
Kaitlin S Garufi1006France2024-03-10
Ivar G Bowley1007India2024-02-29
Maisha F Figeroa1008France2024-03-02
Smith E Gillian1009Japan2024-03-11
Stacey B Venere1010Canada2024-03-15
Aruna V Morasca1011Canada2024-03-06
Juan J Figeroa1012Argentina2024-03-28
Francesco N Kolmetz1013Australia2024-02-29
Nicolas B Dilliard1014India2024-03-25
Aika C Sergi1015Spain2024-03-01
Leon I Marrier1016Germany2024-03-16
Francesco S Darakjy1017Argentina2024-03-02
Aika A Garufi1018India2024-02-29
Alejandro B Doe1019Russia2024-03-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily X VenereJapanIoni Bowcher QUALIFIED
Ricardo W CaudyGermanyAmy Elsner QUALIFIED
Nicolas L GauchoItalyElwin Sharvill PROPOSAL
Isabel K FigeroaItalyAnna Fali UNQUALIFIED
Antonio N RimSpainXuxue Feng QUALIFIED
Morrow I TollnerArgentinaXuxue Feng QUALIFIED
Ivar V ShinkoUnited KingdomOnyama Limba PROPOSAL
Jefferson I WaycottGermanyAsiya Javayant UNQUALIFIED
Silvio P RoysterCanadaElwin Sharvill UNQUALIFIED
Maria X FollerGermanyElwin Sharvill QUALIFIED
Francesco V GarufiItalyAmy Elsner QUALIFIED
Faith S GillianArgentinaStephen Shaw RENEWAL
Misaki R RimAustraliaAmy Elsner PROPOSAL
Aditya S SaylorsJapanIvan Magalhaes UNQUALIFIED
Aika T DilliardItalyStephen Shaw NEGOTIATION
Costa K MacleadSpainAmy Elsner NEGOTIATION
Emily Z OldroydItalyXuxue Feng QUALIFIED
Jeanfrancois V SergiRussiaIoni Bowcher UNQUALIFIED
Smith G MacleadJapanIvan Magalhaes QUALIFIED
James L FollerCanadaStephen Shaw RENEWAL
Octavia Y GarufiSpainAsiya Javayant PROPOSAL
Deepesh R PerinItalyAsiya Javayant NEGOTIATION
Salvatore S StensethBrazilAnna Fali NEGOTIATION
Jeanfrancois B CaudyUnited KingdomXuxue Feng RENEWAL
Murillo W TollnerRussiaXuxue Feng NEW
Ivar F RutaUnited KingdomXuxue Feng NEW
Kaitlin N NestleUnited KingdomElwin Sharvill RENEWAL
Tony P SaylorsFranceStephen Shaw UNQUALIFIED
Tony V DoeSpainIvan Magalhaes NEGOTIATION
Johnson O RoysterSpainBernardo Dominic UNQUALIFIED
Chavez W BowleyJapanStephen Shaw RENEWAL
Aika B IturbideArgentinaIvan Magalhaes RENEWAL
Faith Y GarufiCanadaAsiya Javayant PROPOSAL
Wickens H CaudyBrazilStephen Shaw UNQUALIFIED
Rodrigues Q BowleyArgentinaAsiya Javayant QUALIFIED
Kadeem V StensethCanadaIvan Magalhaes PROPOSAL
Stacey F NickaJapanStephen Shaw UNQUALIFIED
Maisha J BologniaIndiaElwin Sharvill QUALIFIED
Costa Z GarufiSpainStephen Shaw RENEWAL
Alejandro D FlosiJapanStephen Shaw PROPOSAL

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