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
Salvatore Q StensethUnited KingdomIoni Bowcher RENEWAL
Julie S CaudyIndiaOnyama Limba UNQUALIFIED
Clifford N OstroskyAustraliaBernardo Dominic QUALIFIED
Isabel U MarrierCanadaAmy Elsner UNQUALIFIED
Jennifer Z GauchoItalyAmy Elsner UNQUALIFIED
Kaitlin O WaycottAustraliaAmy Elsner NEW
Julie Q OldroydFranceOnyama Limba NEW
Jeanfrancois Q SergiArgentinaIoni Bowcher UNQUALIFIED
Rodrigues C VocelkaCanadaAsiya Javayant NEW
Alejandro H RoysterAustraliaIvan Magalhaes NEW
Ashley T MarrierIndiaIoni Bowcher NEGOTIATION
Morrow S AlbaresGermanyAmy Elsner UNQUALIFIED
Smith Y SaylorsUnited KingdomOnyama Limba NEW
Greenwood F MaletFranceAnna Fali NEW
Alejandro Q CaudyRussiaStephen Shaw QUALIFIED
Murillo C GlickJapanAsiya Javayant NEW
Maria V MaletIndiaAmy Elsner RENEWAL
Kaitlin Y WhobreyArgentinaBernardo Dominic NEGOTIATION
Rodrigues O FigeroaJapanStephen Shaw UNQUALIFIED
Rodrigues U BowleyItalyIoni Bowcher UNQUALIFIED
Leon W ButtFranceXuxue Feng RENEWAL
Claire K ButtUnited KingdomAnna Fali NEGOTIATION
Izzy Y WieserArgentinaAsiya Javayant UNQUALIFIED
Nicolas J StensethItalyElwin Sharvill NEW
Stacey S CaudyArgentinaAmy Elsner UNQUALIFIED
Leja X BowleyGermanyAsiya Javayant QUALIFIED
Octavia J BriddickArgentinaAmy Elsner NEGOTIATION
Nicolas U GarufiRussiaAnna Fali PROPOSAL
Jeanfrancois U DilliardJapanIoni Bowcher UNQUALIFIED
Antonio M BowleyRussiaElwin Sharvill QUALIFIED
Sinclair L PerinCanadaOnyama Limba NEGOTIATION
Jefferson J FlosiRussiaAmy Elsner PROPOSAL
Johnson T GarufiIndiaAsiya Javayant UNQUALIFIED
Johnson N CaldareraCanadaAmy Elsner QUALIFIED
Jefferson S SergiUnited KingdomIoni Bowcher NEGOTIATION
Aditya G NestleArgentinaAsiya Javayant NEGOTIATION
Ashley Z RulapaughGermanyAnna Fali PROPOSAL
Maria G GarufiRussiaIoni Bowcher NEW
Maisha B CaldareraIndiaAmy Elsner UNQUALIFIED
Cody X ButtSpainIoni Bowcher UNQUALIFIED
Murillo P FerenczSpainBernardo Dominic NEW
Francesco T TollnerArgentinaStephen Shaw RENEWAL
Isabel B FollerBrazilXuxue Feng QUALIFIED
Aditya M RoysterBrazilBernardo Dominic PROPOSAL
Faith V NickaCanadaIoni Bowcher QUALIFIED
Jones I CaudyCanadaIvan Magalhaes QUALIFIED
Murillo F MarrierBrazilAmy Elsner RENEWAL
Cody Q DarakjyArgentinaIvan Magalhaes NEW
Salvatore S SchemmerRussiaOnyama Limba NEW
Salvatore N ChuiJapanAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie G SlusarskiArgentinaStephen Shaw PROPOSAL
Aditya P NickaJapanIoni Bowcher PROPOSAL
Isabel B DilliardUnited KingdomIoni Bowcher NEW
Aditya J BriddickCanadaStephen Shaw PROPOSAL
Greenwood N GillianUnited KingdomXuxue Feng PROPOSAL
Kadeem N MorascaCanadaIvan Magalhaes NEW
Antonio A RulapaughFranceXuxue Feng RENEWAL
Clifford B TollnerAustraliaAnna Fali PROPOSAL
James F GauchoItalyAmy Elsner UNQUALIFIED
Leja A CaldareraCanadaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba E FlosiSpain2024-04-01Chapman, Ross E Esq NEW9Ivan Magalhaes
1001Claire W AmigonUnited Kingdom2024-04-19Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1002Ivar P SchemmerUnited Kingdom2024-04-18Rousseaux, Michael Esq NEGOTIATION89Anna Fali
1003Wickens I MaletCanada2024-03-28Feiner Bros QUALIFIED90Xuxue Feng
1004Emily W GillianArgentina2024-04-21King, Christopher A Esq UNQUALIFIED35Anna Fali
1005Octavia G FigeroaGermany2024-04-09Chapman, Ross E Esq NEGOTIATION74Anna Fali
1006Aika I OstroskyGermany2024-04-17Buckley Miller Wright QUALIFIED41Xuxue Feng
1007Kaitlin S GlickArgentina2024-04-13Commercial Press PROPOSAL66Amy Elsner
1008Nicolas K DarakjySpain2024-03-31Rousseaux, Michael Esq NEGOTIATION58Xuxue Feng
1009Jennifer J RoysterRussia2024-03-30Chapman, Ross E Esq UNQUALIFIED23Onyama Limba
1010Costa Z ButtItaly2024-04-18Buckley Miller Wright QUALIFIED5Xuxue Feng
1011Deepesh X ChuiSpain2024-04-01Rangoni Of Florence QUALIFIED29Amy Elsner
1012Antonio R SaylorsUnited Kingdom2024-04-14Commercial Press NEW43Bernardo Dominic
1013James T BowleyItaly2024-03-31Chemel, James L Cpa UNQUALIFIED65Bernardo Dominic
1014Claire K InouyeBrazil2024-04-01Truhlar And Truhlar Attys NEW66Xuxue Feng
1015David N ButtArgentina2024-04-11Feltz Printing Service QUALIFIED84Bernardo Dominic
1016Johnson V PaprockiSpain2024-03-26Chapman, Ross E Esq PROPOSAL67Xuxue Feng
1017Costa T BologniaJapan2024-04-17King, Christopher A Esq NEW0Stephen Shaw
1018Nicolas W ChuiCanada2024-04-05Rousseaux, Michael Esq RENEWAL37Bernardo Dominic
1019Ashley V PoquetteRussia2024-04-13Buckley Miller Wright QUALIFIED11Ivan Magalhaes
1020Juan J VocelkaBrazil2024-04-06Chapman, Ross E Esq PROPOSAL61Amy Elsner
1021Maria O FigeroaGermany2024-04-19Morlong Associates NEW54Stephen Shaw
1022Rodrigues Z MarrierAustralia2024-03-28Truhlar And Truhlar Attys NEW3Amy Elsner
1023Julie E FigeroaSpain2024-04-09King, Christopher A Esq NEGOTIATION29Onyama Limba
1024Emily O ButtRussia2024-03-27Printing Dimensions NEGOTIATION73Ivan Magalhaes
1025Stacey D MaletSpain2024-04-20Chemel, James L Cpa NEGOTIATION56Xuxue Feng
1026Maisha V WieserUnited Kingdom2024-04-15Feltz Printing Service QUALIFIED90Amy Elsner
1027Leja E PaprockiGermany2024-04-18Morlong Associates PROPOSAL91Bernardo Dominic
1028Emily F BowleyItaly2024-04-15Rousseaux, Michael Esq PROPOSAL78Bernardo Dominic
1029Juan G NestleGermany2024-03-31King, Christopher A Esq RENEWAL9Ivan Magalhaes
1030Jennifer E MacleadBrazil2024-04-07Rousseaux, Michael Esq NEGOTIATION93Amy Elsner
1031Izzy R MacleadUnited Kingdom2024-03-30Rangoni Of Florence UNQUALIFIED78Bernardo Dominic
1032Claire Z TollnerItaly2024-04-06Benton, John B Jr NEGOTIATION86Xuxue Feng
1033Faith O AmigonCanada2024-04-01Morlong Associates PROPOSAL55Xuxue Feng
1034James I ShinkoUnited Kingdom2024-04-01Morlong Associates UNQUALIFIED95Ivan Magalhaes
1035Jones V BologniaArgentina2024-03-27Morlong Associates QUALIFIED54Ivan Magalhaes
1036Arvin E PaprockiCanada2024-04-16Feiner Bros NEGOTIATION34Elwin Sharvill
1037Aditya O MorascaRussia2024-04-17Commercial Press UNQUALIFIED14Stephen Shaw
1038Izzy X WieserRussia2024-04-16Chemel, James L Cpa PROPOSAL6Anna Fali
1039Rodrigues H ChuiArgentina2024-04-13Commercial Press UNQUALIFIED40Xuxue Feng
1040Jeanfrancois A VocelkaItaly2024-04-04Rousseaux, Michael Esq UNQUALIFIED77Anna Fali
1041Antonio G VenereCanada2024-04-10Feiner Bros RENEWAL35Anna Fali
1042Alejandro E NickaAustralia2024-04-18King, Christopher A Esq PROPOSAL78Anna Fali
1043Maria D FigeroaItaly2024-04-18Printing Dimensions PROPOSAL38Elwin Sharvill
1044David R BriddickGermany2024-04-19King, Christopher A Esq NEGOTIATION12Onyama Limba
1045Octavia I GlickSpain2024-04-14Benton, John B Jr NEW71Elwin Sharvill
1046Kaitlin M WhobreyGermany2024-04-02King, Christopher A Esq RENEWAL93Amy Elsner
1047Izzy I InouyeFrance2024-04-01King, Christopher A Esq RENEWAL88Xuxue Feng
1048Wickens F RimIndia2024-04-14Rousseaux, Michael Esq RENEWAL97Elwin Sharvill
1049Nicolas A VocelkaItaly2024-03-31Benton, John B Jr RENEWAL33Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois V AmigonArgentinaAsiya Javayant UNQUALIFIED
Leja A OldroydUnited KingdomIoni Bowcher PROPOSAL
Maisha A CampainCanadaIoni Bowcher NEGOTIATION
Misaki I SlusarskiGermanyOnyama Limba RENEWAL
Smith C DoeAustraliaAnna Fali NEW
Leja C PoquetteItalyBernardo Dominic NEGOTIATION
Misaki F MaletFranceBernardo Dominic NEGOTIATION
Darci O SlusarskiAustraliaBernardo Dominic QUALIFIED
Cody H BowleyArgentinaXuxue Feng NEGOTIATION
Chavez V ButtArgentinaAmy Elsner QUALIFIED
Maisha V WhobreyCanadaOnyama Limba NEGOTIATION
Nicolas O MarrierFranceIoni Bowcher UNQUALIFIED
Leja C InouyeArgentinaIvan Magalhaes RENEWAL
Aika F ButtJapanStephen Shaw NEGOTIATION
Jeanfrancois U PaprockiCanadaBernardo Dominic PROPOSAL
Cody V FollerGermanyIoni Bowcher PROPOSAL
Adams Y BologniaJapanBernardo Dominic QUALIFIED
Izzy D AmigonArgentinaElwin Sharvill QUALIFIED
Jefferson H BriddickIndiaAsiya Javayant RENEWAL
Emily E MaletCanadaAnna Fali UNQUALIFIED
James X DilliardArgentinaOnyama Limba RENEWAL
Jeanfrancois D GillianAustraliaAmy Elsner NEW
Aika X GlickJapanAsiya Javayant RENEWAL
Antonio T ChuiAustraliaAnna Fali NEW
Maisha D OstroskySpainIoni Bowcher NEW
Morrow A NickaSpainAnna Fali PROPOSAL
Sinclair Q BowleyRussiaBernardo Dominic RENEWAL
Costa Q StensethArgentinaXuxue Feng RENEWAL
Ivar Z PerinFranceOnyama Limba UNQUALIFIED
Jeanfrancois L NickaBrazilAmy Elsner NEW
Octavia I GillianArgentinaBernardo Dominic QUALIFIED
Morrow N SchemmerBrazilXuxue Feng PROPOSAL
Aditya Y BologniaCanadaBernardo Dominic UNQUALIFIED
Maisha Q SergiCanadaStephen Shaw UNQUALIFIED
Darci N BologniaIndiaElwin Sharvill QUALIFIED
Nicolas Z PoquetteJapanAmy Elsner NEGOTIATION
Maria X RulapaughItalyIoni Bowcher PROPOSAL
Mayumi Z MorascaGermanyAnna Fali PROPOSAL
Chavez H FigeroaRussiaIoni Bowcher UNQUALIFIED
Isabel Q CaldareraJapanElwin Sharvill PROPOSAL
Octavia L ButtSpainAmy Elsner PROPOSAL
Jefferson W PaprockiArgentinaAmy Elsner NEW
Faith K WaycottIndiaIoni Bowcher PROPOSAL
Alejandro V MaletAustraliaIvan Magalhaes NEW
Ivar Z MacleadArgentinaIoni Bowcher RENEWAL
Morrow S SlusarskiJapanAnna Fali UNQUALIFIED
Ivar L NestleRussiaBernardo Dominic UNQUALIFIED
Costa F FlosiRussiaElwin Sharvill QUALIFIED
Adams E DoeArgentinaOnyama Limba UNQUALIFIED
Mujtaba C RulapaughUnited KingdomStephen Shaw NEW
Frozen Columns
Name
David N Sergi
Ashley C Kusko
Mayumi D Darakjy
Clifford A Venere
Ashley C Foller
Isabel N Perin
Octavia S Inouye
Tony A Amigon
Maisha M Bowley
Kaitlin E Tollner
Leon K Nicka
Maria Z Oldroyd
Munro O Bolognia
Ricardo I Bolognia
Ashley K Albares
Leja F Figeroa
Isabel K Ferencz
Antonio Y Nestle
Juan Q Kolmetz
Octavia B Dilliard
David C Caudy
Kadeem G Oldroyd
Greenwood L Malet
Antonio N Foller
Maria C Gaucho
Claire Z Bowley
Ashley P Nicka
Aditya T Figeroa
David D Garufi
Cody I Inouye
Cody M Rulapaugh
Sinclair U Butt
Johnson L Malet
Kaitlin M Maclead
Arvin N Venere
Kadeem Y Nestle
Mayumi S Doe
Antonio U Ostrosky
Maria F Stockham
Sinclair Z Saylors
Ashley Z Malet
Jones P Campain
Claire P Perin
Adams A Iturbide
Kaitlin E Campain
Maisha W Schemmer
Nicolas M Caldarera
Salvatore P Amigon
Leja P Saylors
Emily W Darakjy
IdCountryDate
1000Brazil2024-04-05
1001United Kingdom2024-04-02
1002Canada2024-03-29
1003Russia2024-04-22
1004Russia2024-04-17
1005Australia2024-04-14
1006Argentina2024-03-27
1007Spain2024-04-06
1008Germany2024-04-23
1009Canada2024-04-08
1010Russia2024-04-03
1011Canada2024-04-01
1012Germany2024-03-30
1013Italy2024-04-08
1014Italy2024-03-29
1015Japan2024-04-09
1016France2024-04-23
1017Argentina2024-04-14
1018Argentina2024-04-20
1019France2024-04-02
1020Argentina2024-04-03
1021Japan2024-04-04
1022Argentina2024-04-21
1023Germany2024-04-08
1024India2024-04-14
1025France2024-04-15
1026France2024-04-15
1027India2024-03-29
1028Russia2024-04-19
1029France2024-04-01
1030India2024-04-16
1031Brazil2024-04-05
1032Italy2024-04-15
1033Russia2024-04-04
1034Australia2024-04-11
1035Spain2024-04-19
1036United Kingdom2024-04-01
1037Germany2024-04-21
1038Australia2024-04-01
1039Canada2024-04-21
1040Germany2024-04-06
1041Germany2024-04-19
1042Canada2024-04-09
1043Argentina2024-03-28
1044Russia2024-04-15
1045France2024-04-07
1046Italy2024-04-12
1047Argentina2024-04-21
1048India2024-04-02
1049India2024-04-01

On-Demand Data

NameIdCountryDate
James P Marrier1000United Kingdom2024-04-08
Aditya E Oldroyd1001United Kingdom2024-04-22
Misaki M Rulapaugh1002Brazil2024-03-29
Johnson U Morasca1003Brazil2024-04-09
Wickens I Figeroa1004Japan2024-04-03
Nicolas B Oldroyd1005Brazil2024-04-24
Jeanfrancois J Rulapaugh1006France2024-04-24
Munro G Tollner1007India2024-03-30
Isabel F Bolognia1008Russia2024-04-08
Ivar J Paprocki1009France2024-03-30
Smith L Stenseth1010Argentina2024-04-17
Leja Z Darakjy1011Argentina2024-04-05
Alejandro V Ostrosky1012Japan2024-04-16
Cody C Inouye1013United Kingdom2024-04-13
Tony O Royster1014Australia2024-04-17
Silvio N Rulapaugh1015Spain2024-04-04
Leon B Inouye1016Canada2024-03-28
Octavia A Shinko1017Australia2024-04-10
Smith H Rulapaugh1018Spain2024-04-16
Rodrigues H Chui1019Canada2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin D NickaArgentinaOnyama Limba NEGOTIATION
Nicolas O SergiUnited KingdomOnyama Limba RENEWAL
Jefferson M PoquetteRussiaAsiya Javayant QUALIFIED
Claire H KuskoSpainElwin Sharvill NEW
Clifford B DilliardAustraliaAmy Elsner PROPOSAL
Jefferson A VenereAustraliaStephen Shaw PROPOSAL
Jefferson W KuskoCanadaAsiya Javayant UNQUALIFIED
Rodrigues U MacleadGermanyXuxue Feng UNQUALIFIED
Octavia S ChuiAustraliaElwin Sharvill UNQUALIFIED
Ricardo P BowleyUnited KingdomStephen Shaw NEW
Aditya K IturbideIndiaBernardo Dominic UNQUALIFIED
Ivar A RutaFranceAnna Fali NEW
Maria P StensethSpainIoni Bowcher UNQUALIFIED
Tony A PaprockiAustraliaAnna Fali QUALIFIED
Adams D RoysterJapanStephen Shaw UNQUALIFIED
Darci Q NestleCanadaElwin Sharvill RENEWAL
David M CaudyBrazilElwin Sharvill RENEWAL
Tony Y OldroydGermanyBernardo Dominic QUALIFIED
Aruna Z GarufiAustraliaIoni Bowcher RENEWAL
Munro K VocelkaGermanyElwin Sharvill RENEWAL
Ricardo K FollerArgentinaElwin Sharvill RENEWAL
James O DarakjyJapanAnna Fali NEGOTIATION
Aruna A MorascaBrazilAmy Elsner RENEWAL
Claire J ShinkoGermanyBernardo Dominic NEGOTIATION
Jefferson U NestleSpainAmy Elsner NEGOTIATION
Ivar X DarakjyFranceElwin Sharvill PROPOSAL
Mayumi J RimSpainXuxue Feng NEGOTIATION
Juan V ShinkoJapanElwin Sharvill NEGOTIATION
Costa V DilliardCanadaAnna Fali NEW
Chavez X WaycottFranceIvan Magalhaes PROPOSAL
Clifford S ShinkoFranceStephen Shaw RENEWAL
Julie L CaudyCanadaAnna Fali NEGOTIATION
Julie X StockhamItalyXuxue Feng QUALIFIED
Stacey P NickaIndiaIvan Magalhaes NEW
Izzy Y PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Claire V CaudyCanadaAsiya Javayant PROPOSAL
Nicolas Z WhobreyArgentinaElwin Sharvill NEW
Antonio M CaudyFranceAmy Elsner NEW
Mayumi R BologniaJapanOnyama Limba QUALIFIED
Leon V PaprockiAustraliaAnna Fali NEGOTIATION

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