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
Chavez T RutaGermanyAmy Elsner UNQUALIFIED
Cody H VenereCanadaBernardo Dominic NEGOTIATION
Rodrigues U CampainArgentinaOnyama Limba UNQUALIFIED
Octavia V FlosiFranceAnna Fali NEW
Ivar P RoysterCanadaXuxue Feng RENEWAL
Emily J CaudyJapanBernardo Dominic RENEWAL
Claire I TollnerItalyAmy Elsner NEGOTIATION
Jones F FlosiFranceIvan Magalhaes RENEWAL
Smith Z CaudyAustraliaIvan Magalhaes PROPOSAL
Chavez H PerinGermanyElwin Sharvill UNQUALIFIED
Murillo V GlickJapanOnyama Limba QUALIFIED
Darci C OldroydAustraliaAnna Fali UNQUALIFIED
Aruna V WhobreyUnited KingdomIvan Magalhaes RENEWAL
Misaki F RimRussiaBernardo Dominic QUALIFIED
Rodrigues X KolmetzSpainElwin Sharvill RENEWAL
Tony W WhobreySpainIvan Magalhaes UNQUALIFIED
James I MorascaItalyElwin Sharvill UNQUALIFIED
Mujtaba M PaprockiSpainOnyama Limba PROPOSAL
Cody T ChuiBrazilOnyama Limba NEGOTIATION
Kadeem V AmigonJapanStephen Shaw UNQUALIFIED
Salvatore T SlusarskiCanadaAsiya Javayant UNQUALIFIED
Nicolas D IturbideRussiaAnna Fali QUALIFIED
Aika A FlosiUnited KingdomIoni Bowcher NEGOTIATION
Tony L DarakjyGermanyXuxue Feng RENEWAL
Antonio O PerinSpainIvan Magalhaes QUALIFIED
Mujtaba J PoquetteArgentinaAmy Elsner RENEWAL
Leja L GillianArgentinaAmy Elsner NEGOTIATION
Murillo Q PerinBrazilOnyama Limba PROPOSAL
Munro U DoeRussiaElwin Sharvill UNQUALIFIED
Smith F AmigonRussiaXuxue Feng RENEWAL
Aruna Q PoquetteArgentinaAsiya Javayant UNQUALIFIED
Greenwood V DoeUnited KingdomStephen Shaw QUALIFIED
Maria K RutaSpainElwin Sharvill NEW
David O RutaFranceIvan Magalhaes QUALIFIED
Chavez E FollerIndiaXuxue Feng PROPOSAL
Deepesh P PoquetteAustraliaAsiya Javayant PROPOSAL
Julie N KuskoAustraliaElwin Sharvill QUALIFIED
Maisha I WaycottRussiaXuxue Feng NEW
Julie B KolmetzRussiaElwin Sharvill QUALIFIED
Salvatore H FlosiAustraliaAsiya Javayant NEGOTIATION
Isabel B GlickIndiaBernardo Dominic NEGOTIATION
Francesco V BologniaArgentinaXuxue Feng UNQUALIFIED
Jeanfrancois O OldroydCanadaStephen Shaw QUALIFIED
Sinclair D RutaRussiaIvan Magalhaes QUALIFIED
Smith K KuskoBrazilAsiya Javayant RENEWAL
Silvio K IturbideGermanyXuxue Feng NEW
Ricardo X IturbideIndiaAsiya Javayant PROPOSAL
Juan E MacleadBrazilBernardo Dominic QUALIFIED
Wickens J CaudyFranceOnyama Limba RENEWAL
Misaki L KolmetzItalyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues N MaletJapanElwin Sharvill UNQUALIFIED
Darci N OstroskyItalyAnna Fali QUALIFIED
Tony M DarakjyCanadaElwin Sharvill QUALIFIED
Darci J MorascaItalyOnyama Limba NEW
Kadeem X RimIndiaXuxue Feng QUALIFIED
Rodrigues R FigeroaUnited KingdomElwin Sharvill RENEWAL
Ashley L MarrierGermanyXuxue Feng RENEWAL
Antonio Z BowleyBrazilOnyama Limba NEW
Ashley W WhobreyRussiaBernardo Dominic RENEWAL
Faith N NickaSpainIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens A CampainUnited Kingdom2024-03-30Dorl, James J Esq NEGOTIATION77Elwin Sharvill
1001Ricardo S GillianGermany2024-04-13Benton, John B Jr RENEWAL94Stephen Shaw
1002Smith G ButtBrazil2024-04-09Truhlar And Truhlar Attys PROPOSAL55Elwin Sharvill
1003Kaitlin M GlickAustralia2024-03-21Chapman, Ross E Esq PROPOSAL82Bernardo Dominic
1004Ashley I GillianRussia2024-04-13Chapman, Ross E Esq UNQUALIFIED45Amy Elsner
1005Smith O ShinkoRussia2024-04-04Chemel, James L Cpa UNQUALIFIED35Amy Elsner
1006Ricardo E SaylorsJapan2024-04-13Printing Dimensions PROPOSAL23Stephen Shaw
1007Munro L PaprockiBrazil2024-04-11Benton, John B Jr NEW76Ivan Magalhaes
1008Ashley P DoeArgentina2024-04-06Feiner Bros PROPOSAL58Xuxue Feng
1009Jennifer X FerenczIndia2024-03-30Morlong Associates NEGOTIATION42Elwin Sharvill
1010Arvin U GillianItaly2024-03-20Chanay, Jeffrey A Esq NEW7Ivan Magalhaes
1011James I CaldareraSpain2024-04-03Truhlar And Truhlar Attys QUALIFIED47Stephen Shaw
1012Ashley X RoysterSpain2024-03-21Feiner Bros NEGOTIATION79Ioni Bowcher
1013Salvatore U BowleyAustralia2024-04-06Benton, John B Jr NEGOTIATION81Ioni Bowcher
1014Misaki F GarufiRussia2024-04-14Truhlar And Truhlar Attys NEGOTIATION90Onyama Limba
1015Aruna C TollnerItaly2024-03-20Printing Dimensions NEW18Stephen Shaw
1016Aika M FollerUnited Kingdom2024-03-20Printing Dimensions NEGOTIATION43Amy Elsner
1017Octavia H RimBrazil2024-03-28Feiner Bros NEW83Elwin Sharvill
1018Jefferson Q ButtJapan2024-04-02Chanay, Jeffrey A Esq NEGOTIATION31Anna Fali
1019Kaitlin X AlbaresAustralia2024-03-31Chanay, Jeffrey A Esq PROPOSAL19Onyama Limba
1020Murillo M WaycottCanada2024-03-28King, Christopher A Esq RENEWAL52Asiya Javayant
1021Salvatore P MaletBrazil2024-03-25Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1022Mayumi Z OstroskyIndia2024-03-30Buckley Miller Wright PROPOSAL24Onyama Limba
1023Kaitlin H SlusarskiSpain2024-04-17Morlong Associates UNQUALIFIED93Bernardo Dominic
1024Jeanfrancois G SchemmerItaly2024-04-01Dorl, James J Esq NEW1Amy Elsner
1025Mujtaba S CampainAustralia2024-04-13Dorl, James J Esq NEW20Stephen Shaw
1026Ivar O AlbaresRussia2024-03-28Morlong Associates NEGOTIATION59Ioni Bowcher
1027Julie A PaprockiSpain2024-04-18King, Christopher A Esq UNQUALIFIED25Elwin Sharvill
1028Maisha Z TollnerIndia2024-04-09Printing Dimensions NEGOTIATION29Asiya Javayant
1029Claire I GlickGermany2024-04-17Feltz Printing Service NEW42Xuxue Feng
1030Maria Z MaletItaly2024-04-11Dorl, James J Esq QUALIFIED84Asiya Javayant
1031David N ShinkoJapan2024-03-29Commercial Press PROPOSAL19Ivan Magalhaes
1032Chavez D RimUnited Kingdom2024-03-21Commercial Press RENEWAL43Onyama Limba
1033Maisha E MaletBrazil2024-03-24Benton, John B Jr NEGOTIATION87Stephen Shaw
1034Aruna P SlusarskiJapan2024-03-23Chemel, James L Cpa UNQUALIFIED49Ioni Bowcher
1035Mayumi N SergiUnited Kingdom2024-04-05Feiner Bros QUALIFIED14Bernardo Dominic
1036Antonio N FlosiCanada2024-04-01Printing Dimensions PROPOSAL0Ioni Bowcher
1037Maria X FerenczArgentina2024-03-30Benton, John B Jr PROPOSAL95Asiya Javayant
1038Jefferson K DarakjyBrazil2024-04-13Feiner Bros RENEWAL19Xuxue Feng
1039Munro K NestleItaly2024-04-17Morlong Associates RENEWAL92Elwin Sharvill
1040Jennifer E DilliardAustralia2024-03-31Feltz Printing Service NEW70Asiya Javayant
1041Munro K ButtItaly2024-04-08Rousseaux, Michael Esq QUALIFIED56Ivan Magalhaes
1042Jeanfrancois N FollerJapan2024-03-23Benton, John B Jr NEGOTIATION33Xuxue Feng
1043Mujtaba N DarakjyFrance2024-03-22Benton, John B Jr UNQUALIFIED21Ioni Bowcher
1044Ricardo N RoysterArgentina2024-04-05Rousseaux, Michael Esq NEW21Ioni Bowcher
1045Claire I ShinkoAustralia2024-04-08Chemel, James L Cpa NEGOTIATION84Amy Elsner
1046Aditya Z NestleJapan2024-04-03Dorl, James J Esq NEW43Ioni Bowcher
1047Johnson H FlosiArgentina2024-04-16Benton, John B Jr UNQUALIFIED1Bernardo Dominic
1048Costa S WieserAustralia2024-03-25Rousseaux, Michael Esq RENEWAL40Onyama Limba
1049Sinclair I PaprockiJapan2024-04-16Benton, John B Jr UNQUALIFIED53Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kadeem H BriddickRussiaIoni Bowcher NEW
Aika D MaletCanadaElwin Sharvill NEGOTIATION
Tony N BologniaSpainOnyama Limba RENEWAL
Maisha J IturbideIndiaIvan Magalhaes RENEWAL
Salvatore D RimRussiaElwin Sharvill PROPOSAL
David M WaycottRussiaXuxue Feng NEW
Izzy N BologniaArgentinaAnna Fali RENEWAL
Maria L GlickArgentinaXuxue Feng QUALIFIED
Alejandro V StockhamSpainAnna Fali UNQUALIFIED
Mayumi A SergiArgentinaBernardo Dominic RENEWAL
Wickens L BologniaRussiaXuxue Feng QUALIFIED
Kaitlin G MarrierCanadaIvan Magalhaes RENEWAL
Chavez N ButtRussiaIvan Magalhaes PROPOSAL
Silvio A KuskoFranceStephen Shaw PROPOSAL
Ricardo T ButtGermanyOnyama Limba UNQUALIFIED
Clifford X MacleadRussiaBernardo Dominic NEGOTIATION
Antonio S IturbideFranceBernardo Dominic NEGOTIATION
David N StensethUnited KingdomOnyama Limba PROPOSAL
Darci S PoquetteRussiaStephen Shaw PROPOSAL
Aruna R DarakjyArgentinaElwin Sharvill PROPOSAL
Leja U BologniaIndiaIvan Magalhaes NEW
Greenwood W NestleBrazilElwin Sharvill NEGOTIATION
Leon X InouyeAustraliaElwin Sharvill RENEWAL
Chavez B FerenczBrazilIvan Magalhaes NEGOTIATION
Morrow U DarakjyRussiaOnyama Limba NEW
Kaitlin H WhobreyGermanyXuxue Feng PROPOSAL
Cody T VocelkaIndiaAnna Fali RENEWAL
Ashley W NestleFranceAmy Elsner UNQUALIFIED
Aruna R VenereSpainElwin Sharvill NEGOTIATION
Arvin N BowleyAustraliaBernardo Dominic UNQUALIFIED
Kaitlin J SlusarskiBrazilElwin Sharvill QUALIFIED
Chavez K RulapaughRussiaXuxue Feng PROPOSAL
Ashley Y StockhamCanadaAmy Elsner QUALIFIED
Maria G ButtSpainBernardo Dominic NEGOTIATION
Clifford U BriddickIndiaAmy Elsner RENEWAL
Silvio V RoysterAustraliaElwin Sharvill PROPOSAL
Misaki M GarufiFranceOnyama Limba PROPOSAL
Adams P SchemmerAustraliaAnna Fali NEGOTIATION
Faith R DilliardSpainAmy Elsner QUALIFIED
Salvatore L NickaJapanAmy Elsner PROPOSAL
Munro B GlickSpainAnna Fali QUALIFIED
Munro D RulapaughIndiaElwin Sharvill RENEWAL
Kadeem H SlusarskiRussiaIvan Magalhaes RENEWAL
Kaitlin F StockhamSpainXuxue Feng UNQUALIFIED
Francesco Y FigeroaSpainAsiya Javayant QUALIFIED
Rodrigues M CampainSpainAsiya Javayant UNQUALIFIED
Maisha P FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy S MarrierArgentinaIoni Bowcher NEGOTIATION
Murillo J StockhamAustraliaAmy Elsner NEW
Kadeem C FollerUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Costa C Saylors
Ivar E Glick
Deepesh G Whobrey
Johnson X Flosi
Maria C Gillian
Chavez A Schemmer
Greenwood I Albares
Stacey T Caldarera
Munro U Venere
Emily G Nicka
Jefferson O Venere
Murillo N Oldroyd
Emily L Tollner
Ricardo L Rulapaugh
Kadeem I Iturbide
Jefferson S Nicka
Mujtaba F Ferencz
Stacey P Butt
Darci T Kolmetz
Arvin U Chui
Aika H Schemmer
Smith E Gaucho
Maria V Oldroyd
Munro J Caudy
Johnson Q Nicka
Darci P Amigon
Mayumi X Malet
Smith J Saylors
David X Iturbide
Deepesh A Waycott
Jones N Bolognia
Emily V Inouye
Jeanfrancois R Malet
Ashley W Whobrey
Murillo W Chui
Ashley W Maclead
Antonio U Albares
Leja H Foller
Kaitlin B Marrier
Alejandro B Darakjy
Francesco Z Amigon
Murillo H Shinko
Morrow W Butt
Isabel S Waycott
Faith Q Garufi
Ashley B Nicka
Izzy J Ostrosky
Silvio S Perin
David R Briddick
Izzy B Doe
IdCountryDate
1000France2024-04-11
1001Japan2024-04-02
1002France2024-04-16
1003Italy2024-04-05
1004Italy2024-03-20
1005Italy2024-04-13
1006Italy2024-04-03
1007France2024-03-20
1008Italy2024-03-30
1009Russia2024-03-25
1010Argentina2024-04-11
1011Canada2024-03-29
1012Australia2024-03-24
1013India2024-04-06
1014France2024-03-23
1015India2024-04-14
1016Australia2024-03-24
1017Spain2024-04-11
1018Russia2024-04-08
1019Australia2024-04-18
1020India2024-04-06
1021Germany2024-03-27
1022United Kingdom2024-03-25
1023Australia2024-03-29
1024Canada2024-04-05
1025United Kingdom2024-04-02
1026Canada2024-03-22
1027India2024-04-06
1028Australia2024-03-27
1029Brazil2024-03-30
1030France2024-03-30
1031Australia2024-04-11
1032Canada2024-03-31
1033Russia2024-03-24
1034Italy2024-04-10
1035France2024-03-24
1036India2024-04-14
1037India2024-04-01
1038United Kingdom2024-04-06
1039India2024-04-16
1040United Kingdom2024-04-06
1041Russia2024-04-06
1042Spain2024-04-06
1043Germany2024-04-06
1044Spain2024-03-21
1045Italy2024-03-20
1046France2024-04-03
1047Italy2024-04-09
1048Canada2024-04-14
1049Canada2024-03-28

On-Demand Data

NameIdCountryDate
Arvin D Dilliard1000Italy2024-04-18
Aika U Poquette1001Australia2024-03-31
Nicolas A Ostrosky1002Australia2024-04-09
Morrow Q Amigon1003Canada2024-04-11
Greenwood J Glick1004Spain2024-04-15
Jennifer O Darakjy1005Italy2024-04-01
Maisha V Ruta1006Australia2024-04-05
Rodrigues D Poquette1007Spain2024-03-28
Emily Z Kolmetz1008Japan2024-04-17
Isabel N Kolmetz1009Spain2024-04-18
Salvatore U Marrier1010Russia2024-03-24
Ashley C Stenseth1011Australia2024-04-13
Jefferson T Rulapaugh1012Russia2024-04-07
Julie A Flosi1013Japan2024-03-28
Tony A Briddick1014United Kingdom2024-03-20
Isabel Z Darakjy1015Russia2024-03-29
Ivar O Whobrey1016Australia2024-04-07
Adams Z Poquette1017Australia2024-04-07
Morrow G Flosi1018Italy2024-03-24
Jeanfrancois D Malet1019Brazil2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco B GauchoBrazilOnyama Limba NEW
Antonio P GarufiAustraliaIoni Bowcher NEGOTIATION
Munro W InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Aika U NickaUnited KingdomOnyama Limba RENEWAL
Alejandro D VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Juan C BriddickArgentinaElwin Sharvill PROPOSAL
Clifford Q OstroskyBrazilElwin Sharvill RENEWAL
David K GillianAustraliaXuxue Feng UNQUALIFIED
Ashley D FollerCanadaElwin Sharvill PROPOSAL
Leja J MaletGermanyXuxue Feng UNQUALIFIED
Jefferson V StensethSpainElwin Sharvill PROPOSAL
Costa E ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Leon S WhobreyGermanyBernardo Dominic NEGOTIATION
Smith H FollerJapanIoni Bowcher PROPOSAL
Clifford S SaylorsAustraliaElwin Sharvill PROPOSAL
Chavez Q FigeroaGermanyIvan Magalhaes PROPOSAL
Silvio T PoquetteSpainOnyama Limba NEW
Smith R RulapaughIndiaBernardo Dominic NEW
Mayumi O FerenczUnited KingdomIoni Bowcher RENEWAL
Clifford V AmigonArgentinaAmy Elsner PROPOSAL
Kaitlin T SergiRussiaStephen Shaw UNQUALIFIED
Murillo Y FollerSpainAmy Elsner NEW
Aika G RulapaughCanadaAmy Elsner PROPOSAL
Jeanfrancois B BowleyAustraliaAnna Fali QUALIFIED
Mayumi N WieserCanadaBernardo Dominic RENEWAL
Francesco Z SchemmerAustraliaIoni Bowcher PROPOSAL
Greenwood R VocelkaGermanyOnyama Limba RENEWAL
Kaitlin Y FollerSpainBernardo Dominic NEW
Morrow E CaldareraArgentinaBernardo Dominic PROPOSAL
Alejandro E OstroskyFranceStephen Shaw NEGOTIATION
Claire M MarrierAustraliaXuxue Feng QUALIFIED
Munro F NestleItalyOnyama Limba QUALIFIED
Murillo M RutaFranceAsiya Javayant NEGOTIATION
Morrow P RutaFranceIvan Magalhaes RENEWAL
Ricardo Z PoquetteJapanIvan Magalhaes NEGOTIATION
Jones N VocelkaRussiaAnna Fali NEW
Stacey I GarufiRussiaAsiya Javayant RENEWAL
Stacey O NestleUnited KingdomXuxue Feng QUALIFIED
Smith H CaldareraJapanElwin Sharvill RENEWAL
Juan O StockhamArgentinaElwin Sharvill 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>