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
Arvin A FlosiAustraliaStephen Shaw QUALIFIED
Silvio T WieserRussiaStephen Shaw QUALIFIED
Leja F MorascaRussiaAnna Fali QUALIFIED
Smith H AmigonFranceBernardo Dominic UNQUALIFIED
Clifford N SchemmerItalyElwin Sharvill UNQUALIFIED
Misaki M VenereGermanyElwin Sharvill UNQUALIFIED
Aruna O ButtRussiaStephen Shaw QUALIFIED
Maisha C MacleadItalyIoni Bowcher NEGOTIATION
Maisha O DilliardIndiaIoni Bowcher NEGOTIATION
Aditya W MaletBrazilAnna Fali NEGOTIATION
Chavez H RimUnited KingdomAmy Elsner RENEWAL
Arvin J GarufiCanadaIvan Magalhaes UNQUALIFIED
Leon Y WaycottCanadaIvan Magalhaes QUALIFIED
Stacey W FollerItalyElwin Sharvill PROPOSAL
Aruna Z ButtBrazilXuxue Feng UNQUALIFIED
Misaki N OstroskyCanadaIoni Bowcher PROPOSAL
James L GillianJapanBernardo Dominic NEW
Julie O CaudyItalyXuxue Feng QUALIFIED
Juan K GarufiFranceOnyama Limba PROPOSAL
Johnson N CampainGermanyStephen Shaw NEGOTIATION
Silvio O MorascaGermanyAnna Fali UNQUALIFIED
Izzy S DilliardBrazilXuxue Feng PROPOSAL
Misaki G FlosiIndiaBernardo Dominic QUALIFIED
Julie T FollerAustraliaStephen Shaw PROPOSAL
Deepesh L SaylorsFranceIvan Magalhaes RENEWAL
Greenwood S DilliardItalyAmy Elsner UNQUALIFIED
Silvio N AmigonGermanyIvan Magalhaes UNQUALIFIED
Murillo T PoquetteFranceIvan Magalhaes RENEWAL
Chavez W BologniaSpainIoni Bowcher NEGOTIATION
Aruna T GillianBrazilAsiya Javayant NEGOTIATION
Isabel K SaylorsArgentinaElwin Sharvill PROPOSAL
Mujtaba F OstroskyAustraliaStephen Shaw QUALIFIED
Greenwood I BowleyCanadaIoni Bowcher UNQUALIFIED
Maisha V StockhamArgentinaAsiya Javayant QUALIFIED
Costa D OstroskyGermanyXuxue Feng NEW
Salvatore L WhobreyUnited KingdomAsiya Javayant NEW
Murillo R FerenczGermanyOnyama Limba NEGOTIATION
James H MacleadBrazilAnna Fali QUALIFIED
Stacey E MaletAustraliaStephen Shaw NEW
Francesco C RulapaughSpainAmy Elsner PROPOSAL
Jefferson C RoysterIndiaIvan Magalhaes QUALIFIED
Rodrigues F PaprockiItalyElwin Sharvill UNQUALIFIED
Sinclair E DilliardUnited KingdomIvan Magalhaes NEW
Maisha D SaylorsGermanyStephen Shaw RENEWAL
Leja Z InouyeItalyAmy Elsner UNQUALIFIED
Silvio B DilliardAustraliaIvan Magalhaes PROPOSAL
Adams E ShinkoIndiaIoni Bowcher QUALIFIED
Ashley U CampainJapanStephen Shaw QUALIFIED
Leja P IturbideItalyAnna Fali RENEWAL
Chavez C RoysterItalyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro Z WaycottItalyOnyama Limba NEW
Jefferson V InouyeIndiaAmy Elsner PROPOSAL
Emily D ShinkoRussiaAnna Fali QUALIFIED
Mujtaba C MarrierSpainAsiya Javayant RENEWAL
Julie O FerenczSpainIvan Magalhaes RENEWAL
Wickens K GillianBrazilAsiya Javayant UNQUALIFIED
Adams D ButtCanadaOnyama Limba UNQUALIFIED
Jeanfrancois P CaldareraBrazilElwin Sharvill QUALIFIED
Munro K AmigonUnited KingdomAnna Fali NEGOTIATION
Cody X RimGermanyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams B FollerAustralia2024-04-16Commercial Press PROPOSAL26Amy Elsner
1001Alejandro Z TollnerSpain2024-03-27Rousseaux, Michael Esq UNQUALIFIED33Stephen Shaw
1002Salvatore W PoquetteFrance2024-03-26Benton, John B Jr NEW8Elwin Sharvill
1003Stacey Y GlickItaly2024-04-23Rousseaux, Michael Esq NEGOTIATION76Ivan Magalhaes
1004Munro E TollnerIndia2024-03-28Feiner Bros NEGOTIATION18Stephen Shaw
1005Kadeem J KuskoItaly2024-04-06Chapman, Ross E Esq NEW63Stephen Shaw
1006Munro I DilliardCanada2024-03-29Chapman, Ross E Esq NEW45Stephen Shaw
1007Rodrigues Y BowleyJapan2024-04-16Dorl, James J Esq NEGOTIATION0Anna Fali
1008Ashley E GarufiAustralia2024-03-30Benton, John B Jr PROPOSAL35Amy Elsner
1009Mujtaba Z OstroskyBrazil2024-04-16Printing Dimensions NEGOTIATION28Elwin Sharvill
1010Ivar U StensethArgentina2024-04-15Commercial Press QUALIFIED73Ioni Bowcher
1011Jefferson E AlbaresIndia2024-04-10Morlong Associates RENEWAL80Ivan Magalhaes
1012Maisha I DarakjyJapan2024-03-26Chapman, Ross E Esq NEGOTIATION18Onyama Limba
1013Julie D BologniaArgentina2024-03-31Commercial Press QUALIFIED33Onyama Limba
1014Kaitlin I GauchoGermany2024-04-06Chanay, Jeffrey A Esq NEGOTIATION46Amy Elsner
1015Greenwood V WaycottGermany2024-04-17Chapman, Ross E Esq QUALIFIED78Anna Fali
1016David V RoysterUnited Kingdom2024-04-23Truhlar And Truhlar Attys UNQUALIFIED14Amy Elsner
1017Salvatore Z SergiUnited Kingdom2024-04-15King, Christopher A Esq NEW12Amy Elsner
1018Munro Y StockhamIndia2024-04-22Dorl, James J Esq NEW59Stephen Shaw
1019Jennifer K PerinJapan2024-04-18Rangoni Of Florence PROPOSAL97Asiya Javayant
1020Rodrigues T CaudyJapan2024-03-27Buckley Miller Wright RENEWAL2Xuxue Feng
1021Antonio V GauchoGermany2024-04-18Rangoni Of Florence QUALIFIED98Amy Elsner
1022Darci Y NickaAustralia2024-04-10King, Christopher A Esq NEW80Ioni Bowcher
1023Jones U GlickJapan2024-04-12Chanay, Jeffrey A Esq RENEWAL20Ioni Bowcher
1024Sinclair H TollnerCanada2024-04-09Benton, John B Jr NEGOTIATION44Xuxue Feng
1025Kadeem Y AmigonGermany2024-03-25Chapman, Ross E Esq NEGOTIATION61Xuxue Feng
1026Deepesh P BriddickRussia2024-04-15Dorl, James J Esq UNQUALIFIED99Onyama Limba
1027Nicolas T BowleyArgentina2024-04-12Morlong Associates NEW39Bernardo Dominic
1028Adams S MacleadArgentina2024-04-09Feiner Bros UNQUALIFIED56Stephen Shaw
1029Darci X ButtBrazil2024-04-17Rousseaux, Michael Esq QUALIFIED99Ioni Bowcher
1030Nicolas A FerenczGermany2024-04-14Feltz Printing Service PROPOSAL79Elwin Sharvill
1031Maria A CampainSpain2024-03-26Printing Dimensions PROPOSAL71Anna Fali
1032Jefferson V PerinBrazil2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED70Stephen Shaw
1033Jeanfrancois U PerinJapan2024-04-21Feltz Printing Service UNQUALIFIED82Elwin Sharvill
1034Salvatore S BowleyArgentina2024-03-30Truhlar And Truhlar Attys NEW30Bernardo Dominic
1035Arvin W ChuiGermany2024-04-03Truhlar And Truhlar Attys UNQUALIFIED33Asiya Javayant
1036Rodrigues K BowleySpain2024-03-31Chemel, James L Cpa NEW72Bernardo Dominic
1037Mujtaba T GarufiBrazil2024-04-12Printing Dimensions PROPOSAL51Ivan Magalhaes
1038Aruna O CampainJapan2024-04-05Commercial Press NEW13Stephen Shaw
1039Cody C MorascaRussia2024-03-25Dorl, James J Esq QUALIFIED40Xuxue Feng
1040Ivar D DoeRussia2024-04-09Rangoni Of Florence NEW63Elwin Sharvill
1041Faith R MorascaGermany2024-04-06Buckley Miller Wright RENEWAL54Stephen Shaw
1042Jones P RimAustralia2024-04-17Rangoni Of Florence NEGOTIATION97Onyama Limba
1043Johnson U CaudyBrazil2024-04-23Buckley Miller Wright NEW45Anna Fali
1044Alejandro Q TollnerAustralia2024-04-17Commercial Press UNQUALIFIED96Stephen Shaw
1045James Q OstroskyAustralia2024-04-10Rangoni Of Florence PROPOSAL87Ioni Bowcher
1046Maisha N BologniaUnited Kingdom2024-04-14Benton, John B Jr RENEWAL5Anna Fali
1047Darci P PaprockiUnited Kingdom2024-04-09Buckley Miller Wright UNQUALIFIED58Elwin Sharvill
1048Mujtaba T IturbideIndia2024-04-07Benton, John B Jr QUALIFIED17Stephen Shaw
1049Ivar I BologniaArgentina2024-04-21Feiner Bros UNQUALIFIED57Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria F SlusarskiSpainAmy Elsner UNQUALIFIED
Ashley N VenereJapanAsiya Javayant UNQUALIFIED
Sinclair T PerinSpainOnyama Limba RENEWAL
Clifford U IturbideItalyIoni Bowcher RENEWAL
Ivar F MarrierArgentinaBernardo Dominic RENEWAL
David L DarakjyItalyAsiya Javayant NEW
Munro P TollnerItalyIoni Bowcher QUALIFIED
Aruna E VenereBrazilAmy Elsner QUALIFIED
Kadeem S NickaAustraliaOnyama Limba NEGOTIATION
Jennifer J VocelkaArgentinaAmy Elsner QUALIFIED
Faith H WhobreyJapanIoni Bowcher QUALIFIED
Salvatore M FollerSpainStephen Shaw QUALIFIED
Claire N PerinGermanyIvan Magalhaes QUALIFIED
Smith F ButtUnited KingdomIvan Magalhaes NEW
Jeanfrancois Z NickaRussiaIoni Bowcher RENEWAL
Jones U PoquetteItalyAmy Elsner UNQUALIFIED
Ivar T NestleGermanyAmy Elsner NEW
Adams A OldroydBrazilBernardo Dominic QUALIFIED
Aika T RoysterFranceStephen Shaw NEW
Darci E InouyeIndiaBernardo Dominic PROPOSAL
Kadeem B KuskoBrazilAsiya Javayant PROPOSAL
Jennifer Y WaycottSpainAsiya Javayant RENEWAL
Jefferson K FigeroaCanadaAsiya Javayant QUALIFIED
Maisha W DarakjyRussiaAmy Elsner QUALIFIED
Sinclair A SlusarskiAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois P RoysterCanadaIoni Bowcher RENEWAL
Octavia X FollerJapanIoni Bowcher RENEWAL
Darci S IturbideRussiaAnna Fali NEW
Johnson D CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois J FerenczAustraliaXuxue Feng QUALIFIED
Costa Q VenereCanadaElwin Sharvill RENEWAL
Kaitlin D KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Leon N FerenczAustraliaXuxue Feng NEW
Izzy H MorascaRussiaStephen Shaw NEGOTIATION
Jeanfrancois O WieserBrazilBernardo Dominic UNQUALIFIED
Maria H DarakjyUnited KingdomXuxue Feng RENEWAL
Aruna N FollerUnited KingdomStephen Shaw NEGOTIATION
Morrow S BriddickItalyIvan Magalhaes NEW
Clifford I SergiBrazilIvan Magalhaes RENEWAL
Arvin D MaletUnited KingdomStephen Shaw RENEWAL
Claire I PerinUnited KingdomAnna Fali UNQUALIFIED
Kaitlin D MaletAustraliaXuxue Feng QUALIFIED
Johnson O OldroydGermanyAmy Elsner UNQUALIFIED
Mayumi P ButtRussiaBernardo Dominic UNQUALIFIED
Aika Y ButtRussiaBernardo Dominic QUALIFIED
Clifford V VocelkaFranceXuxue Feng QUALIFIED
Salvatore B SergiUnited KingdomAnna Fali NEW
Aruna S GillianFranceXuxue Feng QUALIFIED
Francesco H VocelkaJapanAnna Fali QUALIFIED
Claire E TollnerIndiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Smith G Bowley
Costa C Iturbide
Jennifer G Whobrey
Mayumi D Poquette
Murillo D Flosi
Ashley D Chui
Aditya L Malet
Emily B Oldroyd
Mujtaba X Briddick
Maisha P Vocelka
Clifford L Vocelka
Tony T Royster
Salvatore Y Ferencz
Mujtaba D Perin
Kadeem J Stenseth
Stacey F Kolmetz
Francesco D Ferencz
Jones Z Whobrey
Jefferson B Figeroa
Adams Q Gaucho
Emily L Royster
Johnson G Royster
Mujtaba H Shinko
Ivar L Ostrosky
Francesco T Nicka
Munro T Caldarera
Wickens U Sergi
Izzy K Amigon
Jefferson R Tollner
David B Morasca
Tony Y Ostrosky
Tony M Rim
Silvio H Whobrey
Murillo X Shinko
Adams I Rim
Stacey T Bowley
Emily T Gaucho
Silvio H Nicka
Emily S Stenseth
Octavia P Darakjy
Darci C Doe
Mujtaba X Nestle
Stacey M Figeroa
Rodrigues K Marrier
Deepesh I Ruta
Faith F Morasca
Cody P Gillian
Silvio V Bolognia
Ivar K Darakjy
Darci J Malet
IdCountryDate
1000Argentina2024-04-22
1001United Kingdom2024-04-16
1002France2024-04-10
1003Brazil2024-03-25
1004Germany2024-04-04
1005India2024-04-14
1006Canada2024-04-12
1007Russia2024-04-11
1008India2024-04-07
1009United Kingdom2024-04-09
1010France2024-04-17
1011France2024-04-08
1012Brazil2024-04-09
1013Argentina2024-04-03
1014Brazil2024-04-19
1015India2024-03-31
1016Italy2024-04-04
1017Brazil2024-04-07
1018Canada2024-04-10
1019Italy2024-04-23
1020Brazil2024-03-26
1021France2024-04-18
1022Brazil2024-04-06
1023Russia2024-04-16
1024India2024-03-28
1025Italy2024-04-10
1026Argentina2024-04-01
1027Spain2024-04-10
1028India2024-03-26
1029France2024-04-13
1030Japan2024-03-26
1031Italy2024-04-08
1032Russia2024-03-29
1033Canada2024-04-06
1034Brazil2024-04-08
1035France2024-04-07
1036Japan2024-04-11
1037Spain2024-04-07
1038Argentina2024-04-15
1039France2024-04-04
1040France2024-04-19
1041Australia2024-04-05
1042United Kingdom2024-04-01
1043Japan2024-04-08
1044France2024-04-06
1045Germany2024-04-08
1046France2024-04-14
1047Russia2024-03-29
1048France2024-04-03
1049Russia2024-04-12

On-Demand Data

NameIdCountryDate
Jones H Foller1000India2024-04-16
Cody M Albares1001Spain2024-04-06
Munro A Nestle1002Japan2024-03-27
Munro N Stenseth1003Russia2024-03-25
Ivar H Poquette1004Russia2024-03-25
Cody D Ferencz1005Argentina2024-03-31
Darci Y Glick1006Australia2024-03-27
Munro W Caudy1007United Kingdom2024-04-22
Ivar C Tollner1008Japan2024-04-12
Izzy O Oldroyd1009Australia2024-04-11
Isabel H Gillian1010Germany2024-04-07
Kadeem Z Nicka1011Brazil2024-03-30
Claire L Tollner1012France2024-04-21
Morrow Q Wieser1013Germany2024-04-22
Murillo Y Chui1014Spain2024-03-29
David B Maclead1015Canada2024-04-14
Aditya R Marrier1016United Kingdom2024-04-06
Ricardo K Wieser1017Italy2024-04-17
Stacey L Wieser1018United Kingdom2024-04-03
Antonio Z Malet1019Russia2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony A StockhamArgentinaIoni Bowcher PROPOSAL
Isabel J DarakjyGermanyAnna Fali QUALIFIED
Emily M RimFranceBernardo Dominic UNQUALIFIED
Wickens Z DilliardFranceOnyama Limba UNQUALIFIED
Jeanfrancois L StensethAustraliaBernardo Dominic RENEWAL
James Z CampainGermanyStephen Shaw PROPOSAL
Cody V InouyeArgentinaIoni Bowcher RENEWAL
David D RimIndiaAnna Fali QUALIFIED
Nicolas B PoquetteItalyAmy Elsner NEGOTIATION
Adams S NickaJapanBernardo Dominic NEGOTIATION
Jennifer S WaycottFranceOnyama Limba PROPOSAL
Maria G SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
David R FollerCanadaElwin Sharvill NEW
Juan K CaldareraSpainIoni Bowcher QUALIFIED
Wickens O FollerAustraliaIvan Magalhaes QUALIFIED
Costa P BriddickBrazilIoni Bowcher PROPOSAL
Kaitlin U SlusarskiCanadaStephen Shaw RENEWAL
Aruna A PaprockiFranceOnyama Limba UNQUALIFIED
Salvatore T DilliardUnited KingdomBernardo Dominic QUALIFIED
Ivar J InouyeIndiaIoni Bowcher NEGOTIATION
Kadeem W FigeroaJapanOnyama Limba PROPOSAL
Morrow R FlosiIndiaIvan Magalhaes NEGOTIATION
Munro R CampainCanadaIoni Bowcher QUALIFIED
David G DoeAustraliaStephen Shaw NEW
Julie P FlosiItalyOnyama Limba NEW
Ivar J FollerCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois Z PoquetteBrazilStephen Shaw NEGOTIATION
Misaki T NickaGermanyIoni Bowcher RENEWAL
Misaki V WhobreyIndiaStephen Shaw NEGOTIATION
Aika V ChuiGermanyIvan Magalhaes NEGOTIATION
Jeanfrancois T SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Jones H WaycottArgentinaIvan Magalhaes NEW
Salvatore J OldroydSpainAnna Fali UNQUALIFIED
Morrow S VocelkaAustraliaIoni Bowcher UNQUALIFIED
Ashley E MarrierRussiaIoni Bowcher NEW
Faith T DilliardUnited KingdomOnyama Limba NEGOTIATION
Aika J VocelkaAustraliaXuxue Feng RENEWAL
Jefferson T RulapaughItalyXuxue Feng RENEWAL
Jones M AlbaresIndiaXuxue Feng QUALIFIED
Wickens G MacleadRussiaStephen Shaw QUALIFIED

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