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
Aruna W PoquetteAustraliaOnyama Limba UNQUALIFIED
Isabel Z SaylorsIndiaStephen Shaw PROPOSAL
Chavez M ShinkoCanadaStephen Shaw PROPOSAL
Johnson S CaldareraIndiaElwin Sharvill NEGOTIATION
Jefferson R RoysterItalyAnna Fali NEGOTIATION
David F FerenczBrazilXuxue Feng UNQUALIFIED
Rodrigues Y GarufiBrazilIoni Bowcher PROPOSAL
Isabel Y GauchoIndiaIvan Magalhaes RENEWAL
Darci D MarrierBrazilOnyama Limba RENEWAL
Greenwood H MacleadSpainIoni Bowcher RENEWAL
Salvatore H RulapaughJapanAmy Elsner RENEWAL
Izzy C FigeroaRussiaXuxue Feng NEW
Mayumi X FlosiArgentinaOnyama Limba QUALIFIED
Mujtaba Y PoquetteJapanBernardo Dominic QUALIFIED
Smith C RimCanadaStephen Shaw UNQUALIFIED
Misaki S VenereUnited KingdomXuxue Feng QUALIFIED
Stacey O ButtAustraliaStephen Shaw NEW
Greenwood D RutaUnited KingdomAnna Fali RENEWAL
Morrow U FerenczBrazilIvan Magalhaes UNQUALIFIED
Aditya U CampainSpainAnna Fali RENEWAL
Johnson G FlosiIndiaElwin Sharvill QUALIFIED
Ivar M FollerIndiaAnna Fali UNQUALIFIED
Alejandro O AmigonBrazilAsiya Javayant RENEWAL
Rodrigues Y RoysterItalyOnyama Limba NEGOTIATION
Juan S ButtCanadaIvan Magalhaes RENEWAL
Sinclair R GillianCanadaOnyama Limba RENEWAL
Alejandro E ShinkoAustraliaElwin Sharvill NEGOTIATION
Leon Q PerinGermanyStephen Shaw NEGOTIATION
Cody O SchemmerSpainAnna Fali NEW
Octavia C SlusarskiAustraliaAnna Fali RENEWAL
Clifford Q ButtArgentinaOnyama Limba PROPOSAL
Cody Z OstroskyIndiaXuxue Feng QUALIFIED
Octavia I BowleyAustraliaStephen Shaw QUALIFIED
Smith H MacleadBrazilIoni Bowcher NEGOTIATION
Wickens Y MaletSpainIvan Magalhaes NEW
Johnson Z NickaAustraliaAnna Fali NEW
David G DilliardBrazilStephen Shaw NEGOTIATION
David A RimArgentinaElwin Sharvill UNQUALIFIED
Morrow U SchemmerArgentinaAmy Elsner PROPOSAL
Cody F BowleyJapanAsiya Javayant NEGOTIATION
Nicolas W DilliardFranceBernardo Dominic PROPOSAL
Jeanfrancois W CaldareraSpainAnna Fali NEW
Jeanfrancois X AlbaresIndiaIoni Bowcher PROPOSAL
James H BologniaItalyBernardo Dominic UNQUALIFIED
Nicolas A FerenczCanadaAmy Elsner NEGOTIATION
Ivar L StensethCanadaStephen Shaw NEGOTIATION
Silvio I StensethRussiaBernardo Dominic QUALIFIED
Sinclair O GillianJapanXuxue Feng RENEWAL
Ricardo V NickaIndiaAmy Elsner NEW
Maisha K DarakjyFranceXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley V FerenczIndiaBernardo Dominic PROPOSAL
Sinclair C OldroydFranceIoni Bowcher NEGOTIATION
Salvatore Y GarufiCanadaAnna Fali NEW
Smith W CampainJapanAsiya Javayant QUALIFIED
Wickens E PaprockiSpainIoni Bowcher NEGOTIATION
Rodrigues Q StockhamJapanXuxue Feng PROPOSAL
Juan N BowleyIndiaStephen Shaw PROPOSAL
Mayumi A CaldareraGermanyIoni Bowcher UNQUALIFIED
Mayumi D CaldareraArgentinaOnyama Limba RENEWAL
Octavia A FlosiBrazilIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Z DoeBrazil2024-03-28Dorl, James J Esq NEGOTIATION87Asiya Javayant
1001Mujtaba E ButtSpain2024-04-19Morlong Associates NEW80Amy Elsner
1002Nicolas H PaprockiUnited Kingdom2024-04-01Feiner Bros PROPOSAL37Onyama Limba
1003Jeanfrancois Y FollerAustralia2024-04-13Rousseaux, Michael Esq QUALIFIED88Elwin Sharvill
1004Emily C MaletCanada2024-04-10Printing Dimensions RENEWAL43Ivan Magalhaes
1005Rodrigues N AmigonAustralia2024-04-23Dorl, James J Esq UNQUALIFIED72Bernardo Dominic
1006Kadeem M TollnerFrance2024-04-15Dorl, James J Esq RENEWAL9Ivan Magalhaes
1007Julie A KolmetzArgentina2024-04-09Rangoni Of Florence PROPOSAL17Elwin Sharvill
1008Alejandro Q MacleadAustralia2024-04-08Benton, John B Jr QUALIFIED79Stephen Shaw
1009Jeanfrancois K RutaUnited Kingdom2024-04-02Dorl, James J Esq NEW27Onyama Limba
1010Izzy S RutaCanada2024-04-14Chanay, Jeffrey A Esq NEW22Anna Fali
1011Deepesh P StockhamAustralia2024-03-27Dorl, James J Esq QUALIFIED15Asiya Javayant
1012Leon J NestleUnited Kingdom2024-04-19Buckley Miller Wright QUALIFIED26Bernardo Dominic
1013Antonio C WhobreyFrance2024-04-15Feltz Printing Service PROPOSAL41Stephen Shaw
1014Claire C BologniaArgentina2024-04-22Printing Dimensions PROPOSAL18Ivan Magalhaes
1015Maisha W GarufiIndia2024-04-21Chapman, Ross E Esq UNQUALIFIED95Ioni Bowcher
1016Kadeem H NickaBrazil2024-04-14Truhlar And Truhlar Attys PROPOSAL43Amy Elsner
1017Darci I MaletAustralia2024-04-12Dorl, James J Esq QUALIFIED22Amy Elsner
1018Izzy V DilliardUnited Kingdom2024-04-16Rousseaux, Michael Esq NEW73Ivan Magalhaes
1019Stacey T OstroskyArgentina2024-04-17Feiner Bros QUALIFIED79Asiya Javayant
1020Maisha D FigeroaArgentina2024-04-07Feiner Bros RENEWAL34Elwin Sharvill
1021Salvatore E SergiJapan2024-04-07Chanay, Jeffrey A Esq RENEWAL13Stephen Shaw
1022Chavez Z SlusarskiArgentina2024-04-15Buckley Miller Wright NEGOTIATION78Ioni Bowcher
1023Mayumi S OldroydSpain2024-03-31Feiner Bros RENEWAL44Elwin Sharvill
1024Isabel J RoysterIndia2024-04-20Printing Dimensions UNQUALIFIED44Ioni Bowcher
1025James M GillianJapan2024-04-08King, Christopher A Esq QUALIFIED21Bernardo Dominic
1026Aditya T RoysterBrazil2024-04-21King, Christopher A Esq UNQUALIFIED77Onyama Limba
1027Greenwood Q VenereBrazil2024-04-16Feiner Bros UNQUALIFIED37Bernardo Dominic
1028Johnson T CaldareraGermany2024-03-30Commercial Press NEGOTIATION75Ivan Magalhaes
1029Emily Y NestleArgentina2024-04-25Morlong Associates QUALIFIED40Stephen Shaw
1030Adams U KuskoJapan2024-04-08Printing Dimensions PROPOSAL20Onyama Limba
1031Sinclair P KolmetzIndia2024-04-24King, Christopher A Esq NEW87Xuxue Feng
1032Leja E RulapaughGermany2024-04-19Commercial Press NEGOTIATION67Ivan Magalhaes
1033Aruna L WhobreyBrazil2024-04-17Benton, John B Jr PROPOSAL54Elwin Sharvill
1034Chavez T SergiBrazil2024-03-29King, Christopher A Esq UNQUALIFIED63Onyama Limba
1035Clifford A SergiUnited Kingdom2024-04-21Chanay, Jeffrey A Esq PROPOSAL81Bernardo Dominic
1036Jennifer K MaletArgentina2024-04-22Feiner Bros PROPOSAL33Anna Fali
1037Morrow V StensethBrazil2024-04-12Feltz Printing Service NEW37Ioni Bowcher
1038Tony F VenereCanada2024-04-18Rousseaux, Michael Esq QUALIFIED35Ioni Bowcher
1039Deepesh V MarrierBrazil2024-04-11Morlong Associates NEW92Bernardo Dominic
1040Cody L TollnerJapan2024-04-03Commercial Press NEGOTIATION5Stephen Shaw
1041Murillo R FlosiCanada2024-04-02Rangoni Of Florence PROPOSAL15Onyama Limba
1042Cody W BriddickGermany2024-03-30Chemel, James L Cpa UNQUALIFIED20Anna Fali
1043Clifford E PerinItaly2024-04-17Feiner Bros PROPOSAL99Xuxue Feng
1044Jeanfrancois F RulapaughCanada2024-04-10Dorl, James J Esq NEW11Ioni Bowcher
1045Alejandro H DoeAustralia2024-03-30Morlong Associates NEW64Amy Elsner
1046Mujtaba G InouyeRussia2024-04-02Rangoni Of Florence UNQUALIFIED3Elwin Sharvill
1047Francesco X ShinkoItaly2024-04-16Feltz Printing Service NEGOTIATION83Xuxue Feng
1048Nicolas P BologniaJapan2024-04-18Benton, John B Jr PROPOSAL32Amy Elsner
1049Claire T VocelkaJapan2024-04-11Commercial Press PROPOSAL5Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
David H KolmetzArgentinaStephen Shaw QUALIFIED
Claire A RutaFranceIoni Bowcher QUALIFIED
Smith O RulapaughSpainElwin Sharvill QUALIFIED
Jones T GauchoBrazilStephen Shaw UNQUALIFIED
Claire Y StensethArgentinaAsiya Javayant UNQUALIFIED
Antonio V GlickGermanyElwin Sharvill PROPOSAL
Sinclair A RutaSpainStephen Shaw NEGOTIATION
Munro B MaletAustraliaAsiya Javayant NEGOTIATION
Aditya O NestleItalyStephen Shaw PROPOSAL
Deepesh A MarrierArgentinaIvan Magalhaes QUALIFIED
Stacey A NickaUnited KingdomAmy Elsner RENEWAL
Aditya E OldroydJapanAnna Fali RENEWAL
Wickens P AmigonJapanIvan Magalhaes NEGOTIATION
Isabel V FollerJapanAnna Fali NEGOTIATION
Ivar D WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Jones R MorascaAustraliaIvan Magalhaes NEGOTIATION
Sinclair P NestleBrazilAsiya Javayant UNQUALIFIED
Murillo A SaylorsBrazilIoni Bowcher QUALIFIED
Francesco P WieserSpainIoni Bowcher NEGOTIATION
Costa W BriddickItalyAnna Fali PROPOSAL
Faith Q SaylorsSpainIvan Magalhaes QUALIFIED
Ricardo R TollnerUnited KingdomAmy Elsner NEW
Faith V FollerFranceBernardo Dominic RENEWAL
Chavez P IturbideItalyIvan Magalhaes QUALIFIED
Kadeem C PoquetteIndiaOnyama Limba NEGOTIATION
Costa H KolmetzJapanOnyama Limba PROPOSAL
Antonio U PerinBrazilAnna Fali PROPOSAL
Maria D VocelkaBrazilXuxue Feng PROPOSAL
Salvatore V SlusarskiCanadaOnyama Limba QUALIFIED
Salvatore H NickaRussiaStephen Shaw RENEWAL
Faith A GarufiAustraliaBernardo Dominic PROPOSAL
Mayumi K FigeroaJapanIvan Magalhaes NEW
Salvatore M ChuiIndiaElwin Sharvill NEW
Adams S InouyeArgentinaAsiya Javayant NEW
Mujtaba S BriddickBrazilAnna Fali PROPOSAL
Costa B FollerGermanyIoni Bowcher UNQUALIFIED
Mujtaba Q StensethSpainAnna Fali NEW
Johnson F DilliardAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois Y NestleJapanAmy Elsner PROPOSAL
Jefferson W VenereCanadaAnna Fali NEGOTIATION
Faith G GillianItalyBernardo Dominic RENEWAL
Juan L FlosiBrazilAnna Fali NEGOTIATION
Alejandro C SergiJapanElwin Sharvill NEW
Maria U ChuiBrazilIvan Magalhaes QUALIFIED
Aika P ButtFranceIoni Bowcher RENEWAL
Chavez C GillianItalyIvan Magalhaes UNQUALIFIED
David J NestleFranceOnyama Limba QUALIFIED
Jeanfrancois K ShinkoCanadaIoni Bowcher NEGOTIATION
Smith O FollerRussiaOnyama Limba PROPOSAL
Smith T BowleyJapanElwin Sharvill QUALIFIED
Frozen Columns
Name
Sinclair C Dilliard
Maisha D Perin
Jefferson N Dilliard
Jefferson T Kusko
Juan T Garufi
Cody X Shinko
Maisha F Stockham
Jennifer J Bowley
Maisha E Doe
Ricardo M Amigon
Aika I Flosi
Deepesh G Iturbide
James E Doe
Maisha A Garufi
Aika H Royster
Sinclair A Poquette
Leja K Malet
Aditya Y Wieser
Wickens T Vocelka
Ashley T Briddick
Misaki K Nicka
Tony S Oldroyd
Maria A Gaucho
Wickens Q Ferencz
Octavia D Ferencz
Emily L Ruta
Clifford T Stenseth
Costa B Ruta
Juan H Darakjy
Greenwood A Nicka
Silvio Y Butt
Faith F Darakjy
Tony A Campain
Ricardo A Ostrosky
Costa V Waycott
Nicolas N Kusko
Adams E Iturbide
Kaitlin Q Wieser
Tony F Kusko
Darci D Wieser
Adams Q Schemmer
Aditya F Perin
Deepesh K Oldroyd
Jeanfrancois H Nicka
Darci E Gillian
Tony X Garufi
Aditya R Glick
Maisha S Saylors
Maisha P Rim
Maisha S Kusko
IdCountryDate
1000Canada2024-04-06
1001Germany2024-03-29
1002United Kingdom2024-04-02
1003Argentina2024-04-20
1004India2024-04-20
1005Spain2024-04-10
1006Spain2024-04-06
1007Spain2024-03-31
1008United Kingdom2024-04-21
1009India2024-04-13
1010United Kingdom2024-03-31
1011Spain2024-04-08
1012United Kingdom2024-04-25
1013Russia2024-04-11
1014United Kingdom2024-04-19
1015Spain2024-04-03
1016Germany2024-03-29
1017Spain2024-04-08
1018France2024-04-25
1019Russia2024-04-09
1020Italy2024-04-21
1021Italy2024-04-08
1022Germany2024-04-20
1023Japan2024-04-12
1024Italy2024-04-17
1025India2024-04-20
1026France2024-03-31
1027Australia2024-04-11
1028Spain2024-04-10
1029India2024-04-23
1030Australia2024-04-22
1031Argentina2024-04-13
1032Germany2024-04-18
1033India2024-04-02
1034United Kingdom2024-04-02
1035Germany2024-04-01
1036United Kingdom2024-04-17
1037Brazil2024-03-31
1038Argentina2024-04-06
1039Germany2024-04-08
1040Germany2024-03-27
1041Italy2024-04-05
1042United Kingdom2024-04-03
1043Australia2024-04-15
1044Brazil2024-04-05
1045Russia2024-04-16
1046Russia2024-04-01
1047Argentina2024-04-20
1048United Kingdom2024-04-25
1049Brazil2024-04-23

On-Demand Data

NameIdCountryDate
Jeanfrancois V Malet1000Argentina2024-04-17
Jennifer Z Malet1001Spain2024-04-17
Darci E Inouye1002Germany2024-04-02
Munro S Briddick1003Italy2024-04-16
Arvin T Bolognia1004Spain2024-04-23
Mayumi W Wieser1005Australia2024-04-08
Murillo P Flosi1006Germany2024-04-23
Ricardo V Foller1007Brazil2024-04-09
Kaitlin H Saylors1008Australia2024-04-11
Jefferson I Rulapaugh1009Australia2024-04-25
Arvin Y Gaucho1010Italy2024-04-06
Aditya M Inouye1011United Kingdom2024-04-14
Jefferson U Glick1012Spain2024-04-04
Morrow L Royster1013India2024-04-19
Ivar U Inouye1014Argentina2024-04-19
Claire T Albares1015Australia2024-04-03
Emily L Kolmetz1016Spain2024-03-29
Rodrigues G Bowley1017Spain2024-04-17
Ricardo I Garufi1018Russia2024-03-27
Clifford Q Whobrey1019Germany2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio Q VocelkaJapanAnna Fali QUALIFIED
Costa O VocelkaItalyStephen Shaw RENEWAL
Morrow O BowleyRussiaIoni Bowcher UNQUALIFIED
Mujtaba F AmigonFranceOnyama Limba PROPOSAL
Stacey K ButtAustraliaStephen Shaw NEW
Aika V OldroydArgentinaAmy Elsner UNQUALIFIED
Chavez X SergiAustraliaStephen Shaw UNQUALIFIED
David N PerinCanadaXuxue Feng PROPOSAL
Silvio J SchemmerAustraliaAmy Elsner UNQUALIFIED
Darci I TollnerRussiaAmy Elsner PROPOSAL
Ashley C NestleItalyAsiya Javayant NEGOTIATION
Maria G GlickUnited KingdomElwin Sharvill UNQUALIFIED
Izzy T MaletUnited KingdomStephen Shaw NEGOTIATION
Aditya X WieserArgentinaIvan Magalhaes NEW
Aditya G VenereRussiaIoni Bowcher NEGOTIATION
Octavia B AmigonItalyBernardo Dominic PROPOSAL
Francesco V WieserSpainIoni Bowcher NEGOTIATION
Francesco E VocelkaCanadaAsiya Javayant NEW
Johnson V CaudyGermanyIvan Magalhaes PROPOSAL
Stacey C BriddickAustraliaIoni Bowcher RENEWAL
Munro V NestleAustraliaAsiya Javayant PROPOSAL
Deepesh U KuskoGermanyIvan Magalhaes NEW
Ricardo Y CaldareraUnited KingdomIoni Bowcher NEW
Sinclair A WaycottJapanXuxue Feng NEGOTIATION
Ivar K VocelkaUnited KingdomElwin Sharvill QUALIFIED
Darci D SlusarskiAustraliaAsiya Javayant NEGOTIATION
Nicolas V RimBrazilIvan Magalhaes NEGOTIATION
Silvio Y FollerSpainIvan Magalhaes NEGOTIATION
Greenwood D VocelkaBrazilElwin Sharvill QUALIFIED
Stacey L MacleadGermanyBernardo Dominic UNQUALIFIED
Leon Q PoquetteFranceOnyama Limba QUALIFIED
Isabel Z MacleadUnited KingdomAsiya Javayant PROPOSAL
Wickens Y VocelkaCanadaIoni Bowcher RENEWAL
Maisha F SchemmerArgentinaAsiya Javayant PROPOSAL
Smith A PerinGermanyIoni Bowcher NEGOTIATION
Sinclair Q BriddickUnited KingdomXuxue Feng UNQUALIFIED
Arvin S IturbideBrazilXuxue Feng NEGOTIATION
Mayumi N ChuiUnited KingdomAsiya Javayant NEW
Mujtaba P MaletAustraliaElwin Sharvill NEGOTIATION
Maria E BowleyRussiaIoni Bowcher RENEWAL

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