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 Q OstroskyArgentinaOnyama Limba NEGOTIATION
Wickens M KolmetzItalyAsiya Javayant PROPOSAL
Julie R DilliardIndiaIoni Bowcher QUALIFIED
Rodrigues W OstroskyCanadaOnyama Limba QUALIFIED
Munro B KuskoAustraliaAmy Elsner NEGOTIATION
Silvio Q AlbaresGermanyAnna Fali QUALIFIED
Octavia Z WieserJapanIoni Bowcher NEGOTIATION
Francesco Y WaycottCanadaBernardo Dominic QUALIFIED
Sinclair R VocelkaGermanyElwin Sharvill RENEWAL
Antonio I RimUnited KingdomXuxue Feng UNQUALIFIED
Salvatore B ShinkoUnited KingdomElwin Sharvill NEW
Ivar G OldroydArgentinaElwin Sharvill QUALIFIED
Leon N WhobreyCanadaIoni Bowcher RENEWAL
Ricardo Y WaycottUnited KingdomAmy Elsner PROPOSAL
Wickens B PoquetteGermanyXuxue Feng NEW
Ashley G BologniaSpainAmy Elsner UNQUALIFIED
Greenwood Z BowleyIndiaOnyama Limba PROPOSAL
Aika U BriddickBrazilIvan Magalhaes UNQUALIFIED
Francesco C PoquetteGermanyIoni Bowcher NEGOTIATION
Julie Z BowleyJapanAmy Elsner NEW
Francesco A NickaJapanXuxue Feng PROPOSAL
Johnson E OstroskyCanadaIvan Magalhaes RENEWAL
Francesco N OstroskyAustraliaAsiya Javayant PROPOSAL
Maria E CaudyCanadaIoni Bowcher PROPOSAL
Izzy V FlosiIndiaBernardo Dominic NEGOTIATION
Jones D RutaAustraliaXuxue Feng RENEWAL
Adams Y PaprockiCanadaBernardo Dominic NEGOTIATION
Leon V CaudyRussiaElwin Sharvill NEW
Leon L SaylorsSpainAsiya Javayant NEW
Chavez Y StensethFranceStephen Shaw UNQUALIFIED
Isabel U IturbideRussiaXuxue Feng NEW
Wickens X KolmetzBrazilBernardo Dominic PROPOSAL
Mujtaba C KolmetzSpainStephen Shaw NEGOTIATION
Munro G MarrierItalyOnyama Limba NEW
Costa S WhobreyItalyAmy Elsner QUALIFIED
Aditya N GauchoIndiaOnyama Limba UNQUALIFIED
Ashley N PerinJapanElwin Sharvill NEW
Salvatore Q BriddickGermanyIvan Magalhaes UNQUALIFIED
Murillo Q BriddickCanadaStephen Shaw NEW
Mayumi R StensethSpainXuxue Feng RENEWAL
Wickens A KuskoFranceElwin Sharvill NEW
Clifford C ButtFranceIoni Bowcher PROPOSAL
Aruna Y CaldareraSpainAnna Fali QUALIFIED
Maisha O BowleyItalyXuxue Feng NEW
Francesco V IturbideGermanyStephen Shaw UNQUALIFIED
Rodrigues V InouyeRussiaIvan Magalhaes RENEWAL
Munro V DarakjyBrazilOnyama Limba RENEWAL
Kadeem N KolmetzIndiaXuxue Feng QUALIFIED
Julie N ButtSpainStephen Shaw UNQUALIFIED
Salvatore T SergiArgentinaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Octavia U FigeroaJapanElwin Sharvill NEGOTIATION
Kaitlin I PerinArgentinaAsiya Javayant NEW
Salvatore B FigeroaJapanStephen Shaw NEW
Johnson K GillianArgentinaIoni Bowcher UNQUALIFIED
Kadeem L PerinIndiaXuxue Feng PROPOSAL
Greenwood J WhobreyItalyXuxue Feng UNQUALIFIED
Kaitlin P PaprockiBrazilOnyama Limba NEW
Francesco N StockhamItalyBernardo Dominic QUALIFIED
Jones F PoquetteGermanyIoni Bowcher PROPOSAL
Nicolas O OldroydRussiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson R VocelkaBrazil2024-04-16Chanay, Jeffrey A Esq UNQUALIFIED69Ivan Magalhaes
1001Faith M BriddickUnited Kingdom2024-04-08Commercial Press NEW1Stephen Shaw
1002Deepesh Z BriddickSpain2024-03-23Truhlar And Truhlar Attys QUALIFIED64Anna Fali
1003Greenwood R NickaFrance2024-04-10Feiner Bros NEGOTIATION92Bernardo Dominic
1004Jefferson D MacleadIndia2024-04-09Chanay, Jeffrey A Esq QUALIFIED10Anna Fali
1005Aika V PerinJapan2024-04-06Printing Dimensions NEW20Xuxue Feng
1006Julie G DilliardIndia2024-04-07Chanay, Jeffrey A Esq NEGOTIATION71Anna Fali
1007Darci U WaycottUnited Kingdom2024-04-03Rangoni Of Florence NEW57Bernardo Dominic
1008Mayumi F SergiRussia2024-04-16Printing Dimensions NEW29Xuxue Feng
1009Juan K MarrierArgentina2024-04-12Dorl, James J Esq NEW13Anna Fali
1010Alejandro H SlusarskiFrance2024-03-29Chanay, Jeffrey A Esq NEW39Amy Elsner
1011Costa L RoysterSpain2024-04-07Printing Dimensions RENEWAL15Asiya Javayant
1012Izzy Z FerenczGermany2024-04-15Feiner Bros UNQUALIFIED47Ioni Bowcher
1013Mayumi U PerinSpain2024-03-24Commercial Press PROPOSAL7Xuxue Feng
1014James J WaycottItaly2024-04-01Chanay, Jeffrey A Esq NEGOTIATION51Xuxue Feng
1015Aika L KolmetzFrance2024-03-24Feltz Printing Service PROPOSAL17Elwin Sharvill
1016Leja W SchemmerSpain2024-04-08Feltz Printing Service QUALIFIED29Xuxue Feng
1017Costa J MorascaIndia2024-04-18Buckley Miller Wright RENEWAL39Ivan Magalhaes
1018Leon Q MacleadSpain2024-04-13Chemel, James L Cpa NEGOTIATION40Elwin Sharvill
1019Faith N VenereItaly2024-03-27Buckley Miller Wright RENEWAL83Elwin Sharvill
1020Leja S GauchoFrance2024-04-03Benton, John B Jr RENEWAL6Amy Elsner
1021Faith L DarakjyIndia2024-03-28Feltz Printing Service RENEWAL42Asiya Javayant
1022Alejandro E FerenczIndia2024-04-09Printing Dimensions UNQUALIFIED16Asiya Javayant
1023Ricardo U MaletCanada2024-04-03Feiner Bros PROPOSAL57Ivan Magalhaes
1024Munro W AlbaresIndia2024-04-01Commercial Press PROPOSAL76Asiya Javayant
1025Octavia T GauchoFrance2024-04-09Commercial Press QUALIFIED49Ivan Magalhaes
1026Aruna K GarufiBrazil2024-04-08King, Christopher A Esq NEW85Anna Fali
1027Rodrigues K ButtArgentina2024-03-30Chapman, Ross E Esq UNQUALIFIED0Ioni Bowcher
1028Murillo U GlickBrazil2024-04-04Feiner Bros UNQUALIFIED1Anna Fali
1029Kaitlin I MacleadIndia2024-03-21Truhlar And Truhlar Attys UNQUALIFIED12Xuxue Feng
1030David X OstroskyGermany2024-03-28Rangoni Of Florence NEGOTIATION14Elwin Sharvill
1031Murillo Z SergiBrazil2024-04-04Chanay, Jeffrey A Esq QUALIFIED74Bernardo Dominic
1032Leja B FigeroaSpain2024-03-29Printing Dimensions NEW19Ivan Magalhaes
1033Antonio Z SchemmerArgentina2024-04-08Chapman, Ross E Esq NEW26Ioni Bowcher
1034Deepesh P RoysterUnited Kingdom2024-03-22Commercial Press PROPOSAL40Ioni Bowcher
1035James Y SchemmerFrance2024-03-31Morlong Associates NEGOTIATION46Ioni Bowcher
1036Claire N MacleadAustralia2024-03-21Feiner Bros PROPOSAL62Anna Fali
1037Munro U WaycottAustralia2024-03-22Chanay, Jeffrey A Esq RENEWAL82Anna Fali
1038Aditya P GlickFrance2024-03-24Chapman, Ross E Esq PROPOSAL96Asiya Javayant
1039Johnson P ShinkoJapan2024-03-30Feiner Bros NEW2Elwin Sharvill
1040Aditya Y MaletSpain2024-04-18Benton, John B Jr PROPOSAL12Bernardo Dominic
1041Munro W OstroskyCanada2024-03-25Buckley Miller Wright UNQUALIFIED26Stephen Shaw
1042Silvio S FigeroaIndia2024-04-01Rangoni Of Florence RENEWAL49Xuxue Feng
1043Claire Q RimBrazil2024-03-24Morlong Associates UNQUALIFIED90Anna Fali
1044Greenwood H MarrierFrance2024-04-19Morlong Associates NEGOTIATION19Onyama Limba
1045Aruna K BowleyRussia2024-04-19Buckley Miller Wright NEGOTIATION36Stephen Shaw
1046Tony V GlickFrance2024-03-26King, Christopher A Esq NEGOTIATION68Amy Elsner
1047Mayumi P PaprockiJapan2024-04-15Chanay, Jeffrey A Esq RENEWAL34Ioni Bowcher
1048James H InouyeFrance2024-04-03Buckley Miller Wright QUALIFIED56Anna Fali
1049Octavia K InouyeIndia2024-04-02Dorl, James J Esq QUALIFIED31Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Murillo R PerinItalyElwin Sharvill PROPOSAL
Jeanfrancois N ButtGermanyBernardo Dominic PROPOSAL
Jeanfrancois B DilliardRussiaIoni Bowcher RENEWAL
Leon U MacleadArgentinaXuxue Feng UNQUALIFIED
Stacey U FollerItalyIvan Magalhaes UNQUALIFIED
Arvin P SaylorsAustraliaAsiya Javayant UNQUALIFIED
David K PerinRussiaIvan Magalhaes PROPOSAL
Jefferson I FerenczAustraliaOnyama Limba PROPOSAL
Juan K WhobreySpainOnyama Limba RENEWAL
Emily Z FigeroaSpainBernardo Dominic NEGOTIATION
Wickens L WieserItalyIvan Magalhaes UNQUALIFIED
Wickens F SchemmerBrazilIoni Bowcher UNQUALIFIED
Wickens I GarufiIndiaElwin Sharvill UNQUALIFIED
Munro I CaudyItalyStephen Shaw QUALIFIED
Rodrigues O SaylorsGermanyAmy Elsner UNQUALIFIED
David U ButtRussiaIvan Magalhaes RENEWAL
Stacey S FigeroaFranceStephen Shaw QUALIFIED
Morrow M PaprockiSpainAnna Fali QUALIFIED
Jennifer X RimBrazilElwin Sharvill UNQUALIFIED
Octavia P RutaItalyAmy Elsner QUALIFIED
Ivar O WaycottArgentinaIoni Bowcher NEW
Arvin O SaylorsAustraliaIvan Magalhaes PROPOSAL
Mujtaba F MacleadAustraliaOnyama Limba PROPOSAL
Adams F WieserAustraliaAnna Fali PROPOSAL
Stacey Y DilliardArgentinaElwin Sharvill UNQUALIFIED
Ricardo X BologniaArgentinaXuxue Feng PROPOSAL
Ricardo G KolmetzItalyOnyama Limba QUALIFIED
Octavia E CampainSpainStephen Shaw PROPOSAL
Mujtaba B ButtGermanyXuxue Feng NEW
Murillo Q OstroskyRussiaAsiya Javayant QUALIFIED
Aika H VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Chavez T WhobreyUnited KingdomXuxue Feng PROPOSAL
Francesco M GauchoJapanAnna Fali QUALIFIED
Faith H KolmetzSpainOnyama Limba PROPOSAL
Jennifer S ChuiAustraliaStephen Shaw NEGOTIATION
Morrow Y FerenczItalyAsiya Javayant QUALIFIED
Ricardo K IturbideItalyAmy Elsner PROPOSAL
Adams N SlusarskiGermanyAsiya Javayant RENEWAL
Costa M SergiUnited KingdomAsiya Javayant PROPOSAL
Kaitlin F DoeGermanyXuxue Feng UNQUALIFIED
Chavez T CaudyArgentinaAsiya Javayant NEGOTIATION
Isabel J AlbaresJapanIvan Magalhaes RENEWAL
Jeanfrancois Y PerinJapanAsiya Javayant PROPOSAL
Aditya R SchemmerRussiaAnna Fali UNQUALIFIED
Jeanfrancois X SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Stacey Q PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Aika T BriddickAustraliaAnna Fali NEGOTIATION
Ivar O DoeAustraliaAsiya Javayant RENEWAL
Clifford K WhobreyArgentinaElwin Sharvill NEW
Sinclair K MacleadRussiaIoni Bowcher NEW
Frozen Columns
Name
Chavez S Gaucho
Izzy P Campain
Darci G Glick
Leon O Rulapaugh
Octavia M Oldroyd
Sinclair R Gillian
Johnson N Nestle
Faith I Kolmetz
Emily S Gaucho
Aruna O Malet
Stacey X Garufi
Arvin R Nestle
Munro E Kusko
Greenwood J Caudy
Jefferson N Doe
Faith P Kusko
Jennifer G Kusko
Antonio S Maclead
Jennifer W Oldroyd
Munro U Amigon
Deepesh K Stenseth
Arvin B Tollner
Isabel Y Iturbide
Aditya X Morasca
Costa D Iturbide
Claire H Caldarera
Johnson P Darakjy
Deepesh O Foller
Cody O Ferencz
Leja J Tollner
Jones L Saylors
Sinclair V Garufi
Juan H Gaucho
Darci E Rulapaugh
Jones N Briddick
Octavia M Darakjy
Sinclair G Ostrosky
Mujtaba M Kolmetz
Sinclair U Ostrosky
Jennifer V Shinko
David O Shinko
Adams L Waycott
Chavez U Stockham
Aditya N Dilliard
Ashley B Briddick
Juan I Malet
Francesco L Poquette
Juan R Campain
Clifford F Royster
Aditya B Vocelka
IdCountryDate
1000Russia2024-04-13
1001Spain2024-04-14
1002Germany2024-04-14
1003Italy2024-04-09
1004Brazil2024-03-21
1005Australia2024-04-14
1006Brazil2024-04-11
1007Russia2024-04-10
1008Australia2024-04-05
1009Spain2024-04-13
1010Japan2024-04-17
1011United Kingdom2024-04-10
1012Brazil2024-03-22
1013United Kingdom2024-03-29
1014United Kingdom2024-04-10
1015Spain2024-04-18
1016Italy2024-04-16
1017Australia2024-03-22
1018Argentina2024-04-19
1019Russia2024-04-05
1020Canada2024-03-30
1021Germany2024-04-19
1022Australia2024-04-16
1023Spain2024-04-11
1024India2024-03-22
1025Germany2024-03-30
1026Argentina2024-04-13
1027Canada2024-04-08
1028Canada2024-03-26
1029Japan2024-03-25
1030Japan2024-04-19
1031Brazil2024-04-17
1032India2024-04-16
1033United Kingdom2024-04-03
1034Spain2024-04-18
1035Japan2024-04-05
1036Brazil2024-03-30
1037United Kingdom2024-04-16
1038Brazil2024-04-18
1039France2024-03-29
1040India2024-03-31
1041Italy2024-04-12
1042India2024-04-12
1043United Kingdom2024-03-26
1044Germany2024-03-23
1045Canada2024-04-14
1046Russia2024-04-18
1047Germany2024-04-14
1048Spain2024-04-06
1049Spain2024-03-28

On-Demand Data

NameIdCountryDate
Leja S Waycott1000Canada2024-04-01
Arvin N Flosi1001Brazil2024-03-23
Aruna N Doe1002Germany2024-03-27
Smith S Poquette1003Brazil2024-04-12
Munro K Stenseth1004Germany2024-04-09
David G Butt1005Japan2024-04-15
Aditya I Gillian1006Australia2024-03-29
Misaki C Stenseth1007Italy2024-03-29
Rodrigues R Morasca1008Italy2024-04-05
Salvatore G Perin1009India2024-03-27
Julie C Flosi1010Germany2024-04-15
Ivar E Rulapaugh1011Germany2024-03-26
Aruna Z Rim1012France2024-04-10
Alejandro Z Dilliard1013Russia2024-03-24
Salvatore A Iturbide1014Spain2024-04-03
Isabel J Schemmer1015United Kingdom2024-03-22
Leon B Rim1016Germany2024-03-28
Aditya U Malet1017Argentina2024-04-06
James N Amigon1018Canada2024-03-25
Murillo G Doe1019Japan2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey U MacleadUnited KingdomAsiya Javayant QUALIFIED
Kadeem A CaudyItalyAnna Fali RENEWAL
Wickens H SaylorsRussiaElwin Sharvill NEW
Darci Y SergiBrazilOnyama Limba RENEWAL
Aditya R GauchoGermanyOnyama Limba NEW
Alejandro Q MarrierRussiaBernardo Dominic UNQUALIFIED
Misaki X WaycottArgentinaStephen Shaw UNQUALIFIED
Johnson V RimRussiaIvan Magalhaes PROPOSAL
Aika F MaletAustraliaXuxue Feng NEGOTIATION
Kaitlin V RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Claire W PoquetteItalyAnna Fali NEW
Morrow X VocelkaCanadaBernardo Dominic UNQUALIFIED
Munro L MacleadAustraliaAmy Elsner RENEWAL
Ricardo T DilliardFranceOnyama Limba UNQUALIFIED
Deepesh P StockhamBrazilXuxue Feng RENEWAL
Jennifer W MaletSpainIvan Magalhaes UNQUALIFIED
Leon T PerinAustraliaStephen Shaw RENEWAL
Antonio M FigeroaUnited KingdomAnna Fali PROPOSAL
Leja F WieserSpainAnna Fali UNQUALIFIED
Adams Q GlickUnited KingdomElwin Sharvill NEGOTIATION
Ashley Y DilliardUnited KingdomXuxue Feng PROPOSAL
Kaitlin C NickaFranceElwin Sharvill QUALIFIED
Nicolas E RulapaughIndiaAnna Fali QUALIFIED
Tony O BologniaCanadaAnna Fali QUALIFIED
Wickens J DilliardBrazilAnna Fali UNQUALIFIED
Rodrigues L RoysterIndiaBernardo Dominic RENEWAL
Sinclair D RoysterAustraliaOnyama Limba QUALIFIED
Octavia S MacleadJapanAmy Elsner QUALIFIED
David B InouyeCanadaIoni Bowcher RENEWAL
Francesco Y RimSpainBernardo Dominic NEGOTIATION
Faith A IturbideArgentinaElwin Sharvill QUALIFIED
Alejandro M AlbaresJapanXuxue Feng QUALIFIED
Wickens S RutaFranceStephen Shaw UNQUALIFIED
James Z PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Munro C RulapaughArgentinaIoni Bowcher NEW
Jennifer Q FigeroaCanadaElwin Sharvill NEGOTIATION
Greenwood D DarakjyBrazilOnyama Limba PROPOSAL
Aditya G RoysterCanadaIoni Bowcher NEGOTIATION
James J SaylorsArgentinaAsiya Javayant RENEWAL
Adams M CaldareraUnited KingdomAmy Elsner UNQUALIFIED

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