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
Stacey S WaycottUnited KingdomIoni Bowcher NEW
Johnson R MaletBrazilOnyama Limba NEW
Mujtaba U AmigonAustraliaAsiya Javayant RENEWAL
Claire E ButtAustraliaBernardo Dominic QUALIFIED
Izzy Z KuskoSpainBernardo Dominic UNQUALIFIED
Silvio W GauchoGermanyAsiya Javayant NEGOTIATION
Cody P MacleadBrazilOnyama Limba QUALIFIED
Leon B CaudyCanadaStephen Shaw NEGOTIATION
Mujtaba Z KolmetzUnited KingdomAsiya Javayant PROPOSAL
Leja P PaprockiAustraliaOnyama Limba NEGOTIATION
Misaki D MorascaSpainIoni Bowcher RENEWAL
Adams L FlosiUnited KingdomAnna Fali UNQUALIFIED
Isabel U NickaRussiaIvan Magalhaes UNQUALIFIED
Mayumi Y DoeIndiaStephen Shaw QUALIFIED
David O FollerBrazilOnyama Limba QUALIFIED
David M RulapaughJapanStephen Shaw QUALIFIED
Misaki N SchemmerIndiaBernardo Dominic NEGOTIATION
David G RulapaughAustraliaIvan Magalhaes RENEWAL
Silvio Y CaldareraBrazilIvan Magalhaes QUALIFIED
Smith A CampainGermanyXuxue Feng NEGOTIATION
Aditya U MorascaAustraliaAsiya Javayant UNQUALIFIED
Jefferson F IturbideArgentinaAmy Elsner NEW
Cody N FollerUnited KingdomElwin Sharvill RENEWAL
Aditya O AlbaresFranceIoni Bowcher RENEWAL
Ivar O PoquetteJapanXuxue Feng PROPOSAL
Juan V DoeJapanStephen Shaw UNQUALIFIED
Ashley J OldroydAustraliaAnna Fali NEW
Maisha C MacleadGermanyStephen Shaw NEGOTIATION
Sinclair I CaldareraAustraliaXuxue Feng NEGOTIATION
James V InouyeArgentinaIvan Magalhaes QUALIFIED
Jefferson T SchemmerArgentinaAsiya Javayant PROPOSAL
Jeanfrancois J InouyeFranceAnna Fali PROPOSAL
Maria Z MacleadItalyAnna Fali NEGOTIATION
Maria O CampainFranceBernardo Dominic UNQUALIFIED
Kadeem Y BologniaBrazilXuxue Feng QUALIFIED
Mujtaba B RulapaughFranceIoni Bowcher QUALIFIED
Greenwood P RoysterFranceStephen Shaw QUALIFIED
Jefferson E KuskoUnited KingdomStephen Shaw NEW
Adams V GauchoRussiaElwin Sharvill RENEWAL
Claire W KolmetzUnited KingdomStephen Shaw QUALIFIED
Ashley W FigeroaIndiaBernardo Dominic NEGOTIATION
Morrow W MaletIndiaXuxue Feng NEW
Aditya T ChuiCanadaAmy Elsner UNQUALIFIED
Adams M CampainAustraliaOnyama Limba NEGOTIATION
James U WaycottArgentinaXuxue Feng QUALIFIED
Munro U ShinkoGermanyAmy Elsner QUALIFIED
Murillo X FlosiFranceElwin Sharvill NEW
Salvatore G RimSpainAsiya Javayant NEW
Antonio E ChuiJapanAnna Fali NEGOTIATION
Ashley K WhobreyFranceAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams W GauchoBrazilAsiya Javayant PROPOSAL
Adams L FerenczArgentinaAsiya Javayant RENEWAL
Smith I PerinCanadaAmy Elsner UNQUALIFIED
Alejandro J MaletAustraliaIoni Bowcher RENEWAL
Ivar A FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Munro Z KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Aruna S WhobreyItalyXuxue Feng NEGOTIATION
Tony I CampainBrazilIoni Bowcher QUALIFIED
Rodrigues U StensethSpainIvan Magalhaes QUALIFIED
Morrow Y ShinkoUnited KingdomAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi D OstroskyBrazil2024-04-19Buckley Miller Wright RENEWAL33Elwin Sharvill
1001Rodrigues I GarufiRussia2024-04-09Chemel, James L Cpa QUALIFIED30Ioni Bowcher
1002Mayumi Z GillianGermany2024-04-21Rangoni Of Florence NEGOTIATION69Onyama Limba
1003Silvio V FollerItaly2024-04-13Printing Dimensions NEW1Elwin Sharvill
1004Leon H SaylorsFrance2024-04-20Morlong Associates NEW20Xuxue Feng
1005Leja I RulapaughGermany2024-04-21Rousseaux, Michael Esq PROPOSAL15Xuxue Feng
1006Juan W StensethGermany2024-04-21Chanay, Jeffrey A Esq RENEWAL87Onyama Limba
1007Julie G KuskoAustralia2024-04-01Chemel, James L Cpa NEGOTIATION94Xuxue Feng
1008Julie P VocelkaRussia2024-04-08Morlong Associates NEW15Ioni Bowcher
1009Johnson V FlosiRussia2024-04-17Chemel, James L Cpa RENEWAL10Anna Fali
1010Octavia M VocelkaFrance2024-04-10Benton, John B Jr QUALIFIED2Anna Fali
1011Tony W MarrierUnited Kingdom2024-04-04Feltz Printing Service QUALIFIED20Stephen Shaw
1012Misaki R ChuiAustralia2024-04-15Buckley Miller Wright RENEWAL34Ioni Bowcher
1013Stacey P AmigonIndia2024-04-03Truhlar And Truhlar Attys UNQUALIFIED4Elwin Sharvill
1014Alejandro C WaycottRussia2024-04-06Chanay, Jeffrey A Esq PROPOSAL7Stephen Shaw
1015Claire G SchemmerArgentina2024-04-21Printing Dimensions NEGOTIATION92Xuxue Feng
1016Mujtaba S KolmetzUnited Kingdom2024-04-23Morlong Associates PROPOSAL60Anna Fali
1017Sinclair D PerinFrance2024-04-10Truhlar And Truhlar Attys NEGOTIATION68Ioni Bowcher
1018Wickens A GarufiUnited Kingdom2024-04-25Rangoni Of Florence QUALIFIED62Stephen Shaw
1019Aika A GillianCanada2024-04-17Feiner Bros QUALIFIED42Stephen Shaw
1020Smith I WieserGermany2024-04-12Feltz Printing Service NEW31Xuxue Feng
1021James R FerenczArgentina2024-04-05Rangoni Of Florence PROPOSAL76Elwin Sharvill
1022Silvio D OldroydFrance2024-04-26Dorl, James J Esq PROPOSAL18Xuxue Feng
1023Chavez F MorascaBrazil2024-04-27Chapman, Ross E Esq RENEWAL8Onyama Limba
1024Julie V TollnerJapan2024-04-09Chapman, Ross E Esq UNQUALIFIED4Ivan Magalhaes
1025Nicolas E PerinAustralia2024-03-31Morlong Associates UNQUALIFIED18Xuxue Feng
1026Mayumi A PerinJapan2024-03-31Chemel, James L Cpa PROPOSAL68Anna Fali
1027Jeanfrancois M SchemmerRussia2024-04-09Buckley Miller Wright NEGOTIATION40Xuxue Feng
1028Morrow Y PaprockiItaly2024-04-18Buckley Miller Wright PROPOSAL68Bernardo Dominic
1029James K AlbaresRussia2024-04-22Printing Dimensions NEW43Ioni Bowcher
1030Cody R BriddickCanada2024-04-04Chapman, Ross E Esq UNQUALIFIED13Anna Fali
1031Tony F MaletGermany2024-04-28Truhlar And Truhlar Attys UNQUALIFIED4Stephen Shaw
1032Johnson H ShinkoArgentina2024-04-27Morlong Associates QUALIFIED89Ioni Bowcher
1033Sinclair N SlusarskiUnited Kingdom2024-04-27Rousseaux, Michael Esq RENEWAL34Stephen Shaw
1034Leja P RimIndia2024-04-25Rousseaux, Michael Esq NEW4Elwin Sharvill
1035Antonio T GillianJapan2024-04-02Truhlar And Truhlar Attys UNQUALIFIED39Bernardo Dominic
1036Wickens C CaldareraIndia2024-03-30Rousseaux, Michael Esq QUALIFIED43Asiya Javayant
1037Leon O AlbaresSpain2024-04-01Buckley Miller Wright RENEWAL72Asiya Javayant
1038Jeanfrancois V StensethGermany2024-04-01Rousseaux, Michael Esq NEGOTIATION14Ivan Magalhaes
1039Darci E MarrierJapan2024-04-04Morlong Associates NEW68Amy Elsner
1040Darci E StensethItaly2024-04-11Morlong Associates QUALIFIED59Anna Fali
1041Darci J PoquetteSpain2024-04-19Rousseaux, Michael Esq NEGOTIATION58Stephen Shaw
1042Wickens E RutaBrazil2024-04-02Rousseaux, Michael Esq NEGOTIATION6Stephen Shaw
1043Adams I DoeFrance2024-04-28Buckley Miller Wright RENEWAL50Stephen Shaw
1044Jennifer Y BologniaIndia2024-04-06King, Christopher A Esq QUALIFIED46Onyama Limba
1045James F IturbideRussia2024-04-25King, Christopher A Esq UNQUALIFIED38Xuxue Feng
1046Kadeem Z KuskoSpain2024-04-11Rangoni Of Florence RENEWAL60Xuxue Feng
1047Rodrigues H ChuiJapan2024-03-30Buckley Miller Wright PROPOSAL83Asiya Javayant
1048David U SergiUnited Kingdom2024-04-06Benton, John B Jr NEW74Stephen Shaw
1049Izzy F MacleadCanada2024-04-25Commercial Press UNQUALIFIED80Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Izzy T RulapaughFranceAnna Fali PROPOSAL
Kadeem E StensethFranceElwin Sharvill PROPOSAL
Deepesh T VocelkaJapanAnna Fali NEGOTIATION
Isabel I WaycottUnited KingdomBernardo Dominic NEW
Kadeem D VenereUnited KingdomIoni Bowcher NEGOTIATION
Juan A CampainAustraliaElwin Sharvill RENEWAL
Clifford W ChuiJapanOnyama Limba NEW
Jefferson P FigeroaBrazilBernardo Dominic NEGOTIATION
Kadeem C KolmetzUnited KingdomElwin Sharvill PROPOSAL
Jefferson O BowleyUnited KingdomStephen Shaw UNQUALIFIED
Ricardo C FlosiFranceAmy Elsner PROPOSAL
Maisha S CaudyArgentinaIvan Magalhaes RENEWAL
Aditya T SlusarskiItalyBernardo Dominic QUALIFIED
Izzy I RimIndiaBernardo Dominic QUALIFIED
David J NestleIndiaAnna Fali RENEWAL
Morrow S PaprockiJapanElwin Sharvill UNQUALIFIED
Munro W GillianArgentinaAmy Elsner UNQUALIFIED
Claire O ShinkoArgentinaElwin Sharvill PROPOSAL
Maisha U SlusarskiRussiaIoni Bowcher QUALIFIED
Octavia X SaylorsItalyBernardo Dominic RENEWAL
Arvin I AmigonUnited KingdomIoni Bowcher QUALIFIED
Murillo T RulapaughBrazilStephen Shaw NEW
Ricardo T StockhamGermanyElwin Sharvill QUALIFIED
Francesco O WaycottCanadaAmy Elsner UNQUALIFIED
Arvin F FerenczBrazilIoni Bowcher NEW
David L CaldareraItalyAnna Fali QUALIFIED
Antonio T GillianJapanAmy Elsner RENEWAL
Murillo E AmigonFranceIvan Magalhaes RENEWAL
Izzy D AmigonSpainElwin Sharvill PROPOSAL
Claire B SergiFranceIoni Bowcher NEW
Wickens O RoysterUnited KingdomAnna Fali QUALIFIED
Alejandro S BriddickUnited KingdomXuxue Feng NEGOTIATION
Francesco W PerinGermanyAsiya Javayant RENEWAL
Alejandro T GillianFranceAsiya Javayant RENEWAL
Aruna V ChuiGermanyIoni Bowcher NEW
Ivar X ChuiRussiaOnyama Limba NEGOTIATION
Kadeem E SergiIndiaAsiya Javayant QUALIFIED
Silvio U MorascaSpainAmy Elsner QUALIFIED
Deepesh L PaprockiItalyXuxue Feng PROPOSAL
Morrow Z FlosiItalyAsiya Javayant QUALIFIED
Jennifer H MaletJapanIvan Magalhaes RENEWAL
Wickens J MaletIndiaXuxue Feng NEW
Jeanfrancois Q FigeroaArgentinaXuxue Feng QUALIFIED
Aruna W FlosiBrazilBernardo Dominic UNQUALIFIED
Deepesh P NickaJapanAnna Fali PROPOSAL
Jeanfrancois P SchemmerRussiaIvan Magalhaes PROPOSAL
Aika E DarakjyAustraliaAnna Fali PROPOSAL
Murillo I InouyeCanadaIvan Magalhaes RENEWAL
David C CampainItalyAmy Elsner NEW
Maisha U SchemmerIndiaElwin Sharvill RENEWAL
Frozen Columns
Name
Jeanfrancois T Chui
Antonio X Marrier
Salvatore D Royster
Maria R Saylors
Clifford N Slusarski
Costa C Ferencz
Jeanfrancois X Malet
Izzy Z Chui
Deepesh K Waycott
Jennifer M Slusarski
Mujtaba E Tollner
Claire M Tollner
Emily G Stenseth
Darci C Perin
Antonio I Kolmetz
Maisha O Rulapaugh
Alejandro Y Gaucho
Kaitlin K Chui
Darci H Ostrosky
Kadeem S Flosi
Francesco T Marrier
Darci V Darakjy
Claire H Paprocki
Darci D Inouye
Claire Z Albares
Mujtaba P Bowley
Rodrigues T Malet
Ricardo V Kolmetz
Tony G Wieser
Jennifer F Saylors
Isabel T Slusarski
Rodrigues L Kusko
Maria L Wieser
Salvatore D Wieser
Mayumi N Bolognia
Jefferson O Kolmetz
Greenwood Q Foller
Wickens R Amigon
Aditya O Bolognia
Jennifer F Kusko
Stacey R Wieser
Kadeem Y Inouye
Alejandro M Rim
Julie C Nicka
Misaki J Paprocki
Juan N Stockham
Costa A Waycott
Emily H Tollner
Maria H Marrier
Ricardo U Dilliard
IdCountryDate
1000Germany2024-04-27
1001Japan2024-04-23
1002Canada2024-04-03
1003Canada2024-04-17
1004Japan2024-04-20
1005Brazil2024-04-24
1006Italy2024-03-31
1007Germany2024-03-31
1008Japan2024-04-06
1009Australia2024-04-23
1010Germany2024-04-01
1011Argentina2024-04-25
1012Italy2024-04-19
1013Brazil2024-04-02
1014Japan2024-04-12
1015Germany2024-04-27
1016Russia2024-04-27
1017Canada2024-04-09
1018United Kingdom2024-04-10
1019France2024-04-26
1020Canada2024-04-12
1021Italy2024-04-18
1022Russia2024-04-05
1023Argentina2024-04-14
1024Brazil2024-04-02
1025India2024-04-04
1026Brazil2024-04-03
1027Germany2024-03-31
1028Australia2024-04-16
1029Canada2024-04-21
1030Germany2024-04-03
1031Japan2024-04-07
1032Germany2024-04-11
1033Japan2024-04-22
1034Argentina2024-03-31
1035Argentina2024-04-21
1036Russia2024-04-21
1037Germany2024-04-11
1038Russia2024-04-09
1039Argentina2024-04-23
1040Russia2024-04-13
1041Russia2024-04-01
1042Brazil2024-04-24
1043Canada2024-04-02
1044Russia2024-04-26
1045Germany2024-04-14
1046Australia2024-04-28
1047Spain2024-04-25
1048Australia2024-04-19
1049Italy2024-04-17

On-Demand Data

NameIdCountryDate
Cody X Wieser1000Italy2024-04-07
Leon J Wieser1001India2024-04-28
Johnson V Doe1002India2024-04-06
Ricardo Z Whobrey1003Italy2024-04-02
Smith U Schemmer1004India2024-04-06
Claire J Gaucho1005Canada2024-04-12
Tony Y Albares1006Japan2024-04-02
Ricardo M Rim1007United Kingdom2024-04-07
Ricardo P Sergi1008United Kingdom2024-04-22
Ivar Q Sergi1009Japan2024-04-03
Ivar T Butt1010Spain2024-04-18
Munro U Slusarski1011France2024-04-25
Maria H Oldroyd1012United Kingdom2024-04-20
Stacey V Nicka1013Australia2024-04-04
Leon Z Glick1014Spain2024-04-10
Johnson V Bowley1015India2024-04-03
Juan V Flosi1016France2024-04-15
Wickens Z Kolmetz1017Australia2024-04-14
Mayumi T Ostrosky1018Russia2024-04-28
Murillo F Perin1019Spain2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco D DarakjyJapanIoni Bowcher PROPOSAL
Nicolas F CampainFranceStephen Shaw UNQUALIFIED
Rodrigues M GauchoSpainElwin Sharvill PROPOSAL
Jeanfrancois P FerenczJapanXuxue Feng PROPOSAL
Mujtaba D VocelkaUnited KingdomBernardo Dominic RENEWAL
Stacey A KuskoIndiaBernardo Dominic NEW
Jeanfrancois X VocelkaBrazilAsiya Javayant PROPOSAL
Costa Z VenereIndiaOnyama Limba QUALIFIED
Deepesh B CampainArgentinaXuxue Feng QUALIFIED
Kadeem Y BriddickUnited KingdomIvan Magalhaes QUALIFIED
Mayumi D GarufiItalyElwin Sharvill NEW
Cody W RulapaughCanadaAmy Elsner PROPOSAL
Cody Z OstroskyItalyAmy Elsner PROPOSAL
Julie Z SaylorsCanadaIoni Bowcher PROPOSAL
Darci P MaletItalyIvan Magalhaes NEGOTIATION
Mayumi S OldroydSpainAsiya Javayant PROPOSAL
Emily O TollnerAustraliaAsiya Javayant RENEWAL
Julie W BowleyIndiaXuxue Feng NEGOTIATION
Aditya G OldroydUnited KingdomAsiya Javayant QUALIFIED
Adams H BologniaFranceElwin Sharvill PROPOSAL
Wickens K PaprockiSpainBernardo Dominic RENEWAL
Ashley I TollnerItalyAmy Elsner NEGOTIATION
Rodrigues Y NickaArgentinaIvan Magalhaes NEW
Kaitlin Q AmigonUnited KingdomOnyama Limba PROPOSAL
Juan M GarufiGermanyBernardo Dominic UNQUALIFIED
Kaitlin U InouyeGermanyStephen Shaw NEGOTIATION
Jennifer W RimCanadaAsiya Javayant RENEWAL
Darci H KuskoIndiaBernardo Dominic NEGOTIATION
Nicolas X OldroydGermanyElwin Sharvill UNQUALIFIED
Murillo E InouyeCanadaBernardo Dominic PROPOSAL
Kaitlin J BowleyArgentinaAnna Fali UNQUALIFIED
Maria H CaldareraIndiaIvan Magalhaes PROPOSAL
Faith F GarufiArgentinaIoni Bowcher UNQUALIFIED
Munro N MaletFranceOnyama Limba RENEWAL
Aika D InouyeFranceIoni Bowcher NEGOTIATION
Smith V PaprockiUnited KingdomStephen Shaw PROPOSAL
Aika K PerinRussiaAsiya Javayant NEW
Rodrigues A RimAustraliaAnna Fali NEGOTIATION
Juan K CampainItalyXuxue Feng UNQUALIFIED
Costa X CampainCanadaOnyama Limba 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>