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
Ivar S SaylorsArgentinaBernardo Dominic NEGOTIATION
Jones G SchemmerIndiaIvan Magalhaes QUALIFIED
Adams J KolmetzRussiaStephen Shaw RENEWAL
Jones V NickaAustraliaStephen Shaw NEW
Antonio I BriddickItalyAmy Elsner QUALIFIED
Arvin Q FollerBrazilElwin Sharvill NEW
Faith C MaletAustraliaXuxue Feng QUALIFIED
Jeanfrancois C RimSpainElwin Sharvill NEGOTIATION
Maisha Y VenereBrazilAmy Elsner PROPOSAL
Kadeem V AlbaresIndiaAsiya Javayant QUALIFIED
Jones V GauchoRussiaAmy Elsner NEGOTIATION
Johnson V OldroydFranceElwin Sharvill NEW
Maisha E WieserBrazilAsiya Javayant RENEWAL
Jefferson W MacleadItalyBernardo Dominic QUALIFIED
Cody N BologniaGermanyAnna Fali RENEWAL
Nicolas I GlickItalyAmy Elsner NEW
Faith F FerenczGermanyIoni Bowcher QUALIFIED
Aika X WieserSpainAnna Fali UNQUALIFIED
Tony K MaletJapanElwin Sharvill UNQUALIFIED
Izzy Z CaldareraBrazilStephen Shaw UNQUALIFIED
Jeanfrancois Q MarrierGermanyXuxue Feng QUALIFIED
Mujtaba O NestleSpainAsiya Javayant NEW
Aruna C BologniaIndiaStephen Shaw RENEWAL
Ivar I RulapaughUnited KingdomElwin Sharvill NEW
Wickens P BologniaItalyStephen Shaw QUALIFIED
Arvin H IturbideIndiaAmy Elsner UNQUALIFIED
Sinclair G PoquetteJapanStephen Shaw NEGOTIATION
Aruna M RulapaughGermanyBernardo Dominic PROPOSAL
Antonio V GlickAustraliaStephen Shaw RENEWAL
Ashley D StensethAustraliaAmy Elsner UNQUALIFIED
Wickens R CampainGermanyXuxue Feng NEGOTIATION
Deepesh M RulapaughCanadaStephen Shaw PROPOSAL
Leja A WieserJapanAsiya Javayant PROPOSAL
Kadeem F DoeAustraliaElwin Sharvill NEW
Maria M BriddickRussiaStephen Shaw UNQUALIFIED
Aruna S AmigonGermanyAnna Fali QUALIFIED
Sinclair Z SaylorsItalyBernardo Dominic NEGOTIATION
Maisha R KolmetzSpainXuxue Feng RENEWAL
Tony T PerinGermanyOnyama Limba UNQUALIFIED
Chavez U ButtCanadaStephen Shaw QUALIFIED
Aruna N InouyeRussiaAmy Elsner RENEWAL
Chavez K RulapaughSpainOnyama Limba QUALIFIED
Clifford S InouyeRussiaIoni Bowcher NEGOTIATION
Leon H SchemmerSpainAsiya Javayant NEGOTIATION
Stacey P BowleySpainIoni Bowcher NEW
Kadeem V RutaCanadaIoni Bowcher UNQUALIFIED
Leon E InouyeArgentinaStephen Shaw PROPOSAL
Greenwood M BowleyUnited KingdomIvan Magalhaes RENEWAL
Tony Z RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer S PaprockiSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood K WieserGermanyAsiya Javayant NEGOTIATION
Aditya C DoeBrazilAmy Elsner NEW
Antonio K StensethCanadaIoni Bowcher PROPOSAL
Alejandro W SergiFranceIoni Bowcher NEGOTIATION
Morrow G DilliardItalyXuxue Feng PROPOSAL
Octavia G NestleFranceAsiya Javayant NEW
Mujtaba I WaycottIndiaXuxue Feng RENEWAL
Ricardo E ButtJapanBernardo Dominic UNQUALIFIED
Rodrigues X GillianRussiaXuxue Feng NEW
James I SlusarskiSpainIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria V SergiItaly2024-04-22Feltz Printing Service QUALIFIED49Ioni Bowcher
1001Francesco L BriddickBrazil2024-03-31Chemel, James L Cpa RENEWAL55Ivan Magalhaes
1002Emily Y WieserGermany2024-03-24Feltz Printing Service PROPOSAL35Xuxue Feng
1003Greenwood U SchemmerBrazil2024-04-11Benton, John B Jr NEW49Asiya Javayant
1004Stacey R StockhamItaly2024-04-22Dorl, James J Esq QUALIFIED76Ioni Bowcher
1005Alejandro K CaldareraGermany2024-04-10Morlong Associates PROPOSAL59Asiya Javayant
1006Leon P BologniaRussia2024-04-17Dorl, James J Esq RENEWAL8Anna Fali
1007Smith P StensethUnited Kingdom2024-04-12Chapman, Ross E Esq QUALIFIED2Bernardo Dominic
1008Leja D AlbaresBrazil2024-04-20Buckley Miller Wright RENEWAL57Bernardo Dominic
1009Francesco R RoysterRussia2024-04-22Printing Dimensions QUALIFIED68Ioni Bowcher
1010Rodrigues F RimUnited Kingdom2024-03-24Commercial Press UNQUALIFIED53Xuxue Feng
1011Julie B KolmetzGermany2024-04-09Benton, John B Jr NEW65Amy Elsner
1012Emily Q MacleadArgentina2024-04-18Dorl, James J Esq NEGOTIATION36Bernardo Dominic
1013Stacey C IturbideCanada2024-03-28Truhlar And Truhlar Attys PROPOSAL8Amy Elsner
1014David Q FigeroaBrazil2024-04-20Chemel, James L Cpa QUALIFIED96Onyama Limba
1015Tony I RoysterUnited Kingdom2024-03-31Rangoni Of Florence UNQUALIFIED80Asiya Javayant
1016Faith L TollnerArgentina2024-04-20Buckley Miller Wright PROPOSAL5Anna Fali
1017Jones L AlbaresAustralia2024-04-13Commercial Press NEGOTIATION54Anna Fali
1018Rodrigues D ShinkoIndia2024-04-07Rangoni Of Florence UNQUALIFIED8Ioni Bowcher
1019Munro I ButtFrance2024-03-30Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1020Smith V PerinIndia2024-04-15Morlong Associates NEGOTIATION20Onyama Limba
1021Nicolas K DarakjyCanada2024-04-17Feltz Printing Service QUALIFIED29Amy Elsner
1022James P BriddickArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION13Amy Elsner
1023Kadeem A VocelkaJapan2024-04-12Commercial Press RENEWAL29Ivan Magalhaes
1024Smith A OstroskyJapan2024-04-19Buckley Miller Wright PROPOSAL50Ioni Bowcher
1025Jennifer N AmigonGermany2024-03-24Printing Dimensions RENEWAL96Amy Elsner
1026Silvio A RulapaughGermany2024-04-07Benton, John B Jr RENEWAL83Ivan Magalhaes
1027Stacey D StockhamJapan2024-04-03Rangoni Of Florence NEW67Asiya Javayant
1028Isabel M SchemmerItaly2024-04-02Chapman, Ross E Esq RENEWAL90Elwin Sharvill
1029Izzy U PaprockiUnited Kingdom2024-04-13King, Christopher A Esq PROPOSAL27Ioni Bowcher
1030Juan T MorascaItaly2024-04-14Buckley Miller Wright QUALIFIED18Anna Fali
1031Antonio S VenereRussia2024-03-27Feiner Bros RENEWAL96Bernardo Dominic
1032Morrow N SlusarskiAustralia2024-04-14Morlong Associates PROPOSAL13Stephen Shaw
1033Salvatore L SergiItaly2024-03-26Rousseaux, Michael Esq NEW25Onyama Limba
1034Ashley M GillianJapan2024-04-10Chemel, James L Cpa RENEWAL72Ioni Bowcher
1035Stacey S BologniaCanada2024-04-13Commercial Press RENEWAL66Elwin Sharvill
1036Rodrigues W SaylorsBrazil2024-04-16King, Christopher A Esq NEGOTIATION86Asiya Javayant
1037Leja C DoeRussia2024-04-05King, Christopher A Esq PROPOSAL90Xuxue Feng
1038Jefferson P IturbideAustralia2024-04-12Feltz Printing Service RENEWAL26Ioni Bowcher
1039Ashley W NestleSpain2024-04-13Commercial Press PROPOSAL93Amy Elsner
1040Julie H RulapaughFrance2024-04-22Feiner Bros QUALIFIED97Bernardo Dominic
1041Faith V RutaGermany2024-04-13Feiner Bros PROPOSAL67Ivan Magalhaes
1042Cody G KuskoSpain2024-04-18Benton, John B Jr UNQUALIFIED45Anna Fali
1043Mayumi V RutaArgentina2024-04-01Feltz Printing Service NEW37Asiya Javayant
1044Costa W ButtRussia2024-03-31Feltz Printing Service UNQUALIFIED11Ioni Bowcher
1045Leon Y StockhamUnited Kingdom2024-04-02Chanay, Jeffrey A Esq NEGOTIATION2Asiya Javayant
1046Ricardo A CaudyCanada2024-04-16Dorl, James J Esq NEW92Ivan Magalhaes
1047Francesco Y ButtAustralia2024-04-20Feltz Printing Service UNQUALIFIED89Asiya Javayant
1048Silvio F NickaGermany2024-03-27Chapman, Ross E Esq UNQUALIFIED74Bernardo Dominic
1049Kaitlin M FlosiAustralia2024-04-22Printing Dimensions RENEWAL38Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa T VenereFranceBernardo Dominic RENEWAL
Stacey X KuskoAustraliaAnna Fali NEGOTIATION
Maria R CampainArgentinaBernardo Dominic PROPOSAL
Ricardo L ShinkoCanadaAmy Elsner NEW
Arvin D BowleyGermanyXuxue Feng RENEWAL
Octavia X FigeroaRussiaIvan Magalhaes RENEWAL
Aika C AlbaresFranceAnna Fali NEW
Johnson P StockhamJapanBernardo Dominic UNQUALIFIED
Faith E GarufiCanadaAmy Elsner NEW
Chavez O StensethUnited KingdomAnna Fali NEGOTIATION
Clifford P TollnerItalyElwin Sharvill RENEWAL
Jeanfrancois D PaprockiCanadaXuxue Feng QUALIFIED
Johnson L VocelkaArgentinaOnyama Limba NEGOTIATION
Sinclair T KolmetzCanadaIvan Magalhaes RENEWAL
Ricardo Q BowleyIndiaAnna Fali RENEWAL
Jefferson M ShinkoSpainElwin Sharvill QUALIFIED
Alejandro J SchemmerFranceStephen Shaw RENEWAL
Ricardo W GillianAustraliaAnna Fali PROPOSAL
Smith A KuskoCanadaXuxue Feng NEGOTIATION
Sinclair X PaprockiIndiaIvan Magalhaes NEGOTIATION
Silvio K GauchoAustraliaIvan Magalhaes RENEWAL
Greenwood H RulapaughSpainAsiya Javayant PROPOSAL
Emily R DarakjyAustraliaAsiya Javayant NEGOTIATION
Juan T PerinJapanStephen Shaw NEW
Johnson T MaletSpainAsiya Javayant UNQUALIFIED
Aditya P VocelkaJapanIvan Magalhaes UNQUALIFIED
Clifford C CaudyAustraliaIvan Magalhaes UNQUALIFIED
Costa X WieserIndiaIoni Bowcher RENEWAL
Jones D DoeIndiaAmy Elsner NEGOTIATION
Maria L DarakjyFranceIvan Magalhaes UNQUALIFIED
Greenwood T CampainIndiaAnna Fali RENEWAL
Sinclair J CaldareraArgentinaIoni Bowcher PROPOSAL
Costa R RulapaughIndiaStephen Shaw QUALIFIED
Smith T WieserIndiaStephen Shaw QUALIFIED
Kadeem W CaudyGermanyAmy Elsner UNQUALIFIED
Ashley O RulapaughBrazilAnna Fali QUALIFIED
Darci R SlusarskiBrazilAsiya Javayant RENEWAL
Adams V FerenczBrazilElwin Sharvill NEGOTIATION
Izzy J SaylorsRussiaBernardo Dominic NEGOTIATION
Deepesh K FigeroaBrazilIvan Magalhaes QUALIFIED
Morrow X AlbaresAustraliaOnyama Limba PROPOSAL
Maria O CaldareraBrazilXuxue Feng NEW
Nicolas L DoeJapanBernardo Dominic PROPOSAL
Mujtaba I MaletArgentinaIoni Bowcher RENEWAL
Adams Z DilliardRussiaBernardo Dominic QUALIFIED
Leja R AlbaresFranceAmy Elsner NEGOTIATION
Chavez K MarrierUnited KingdomElwin Sharvill PROPOSAL
Leja M ChuiGermanyAsiya Javayant NEGOTIATION
Izzy W GauchoBrazilXuxue Feng QUALIFIED
Izzy Q PerinJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Aruna Z Whobrey
Francesco Y Bowley
Costa F Oldroyd
Leon I Garufi
Salvatore V Doe
Ricardo T Figeroa
Deepesh T Doe
Aruna E Ruta
Salvatore A Flosi
Greenwood J Caudy
Kadeem T Inouye
Maria W Kolmetz
Munro X Oldroyd
Claire B Paprocki
Clifford Z Caldarera
Greenwood H Wieser
Munro I Flosi
Salvatore C Oldroyd
Izzy O Tollner
Faith I Malet
Ricardo T Whobrey
Morrow V Whobrey
Julie I Rim
Sinclair F Gillian
Greenwood O Wieser
Murillo O Rim
Antonio H Poquette
Mujtaba I Stockham
Jennifer E Poquette
Sinclair C Flosi
Kaitlin V Stockham
Mayumi P Bolognia
Smith Z Perin
Darci P Whobrey
David I Flosi
Costa Q Marrier
Chavez Q Darakjy
Aika B Kolmetz
Emily E Chui
Jennifer Q Kusko
Octavia J Foller
Costa I Nestle
Alejandro D Garufi
Stacey H Garufi
Claire P Waycott
Jones N Nicka
Stacey Z Wieser
Maisha S Briddick
Deepesh J Whobrey
Jennifer R Figeroa
IdCountryDate
1000France2024-04-03
1001Italy2024-03-27
1002Australia2024-04-08
1003Argentina2024-04-16
1004Italy2024-03-24
1005Japan2024-04-21
1006Spain2024-03-24
1007Australia2024-03-30
1008Brazil2024-03-28
1009United Kingdom2024-04-04
1010Japan2024-04-17
1011Canada2024-04-21
1012United Kingdom2024-04-11
1013Japan2024-04-11
1014Italy2024-04-01
1015India2024-04-17
1016Russia2024-03-25
1017Brazil2024-04-22
1018Argentina2024-04-09
1019Japan2024-03-26
1020Russia2024-03-28
1021Australia2024-04-04
1022Spain2024-04-07
1023Argentina2024-04-08
1024Japan2024-03-25
1025Russia2024-03-27
1026Australia2024-04-01
1027Germany2024-03-27
1028Canada2024-03-28
1029Spain2024-03-24
1030United Kingdom2024-04-07
1031Italy2024-04-08
1032Germany2024-03-24
1033Russia2024-04-08
1034Brazil2024-04-05
1035United Kingdom2024-03-31
1036United Kingdom2024-03-25
1037Russia2024-04-08
1038Australia2024-04-08
1039Argentina2024-03-26
1040Argentina2024-04-22
1041Germany2024-04-01
1042Japan2024-04-20
1043Brazil2024-04-05
1044Australia2024-04-21
1045Germany2024-04-20
1046Canada2024-04-13
1047Italy2024-04-19
1048Japan2024-04-13
1049Canada2024-03-29

On-Demand Data

NameIdCountryDate
Adams J Iturbide1000United Kingdom2024-04-03
Misaki B Kusko1001India2024-04-05
Morrow U Marrier1002Italy2024-03-29
Maria D Stockham1003Germany2024-04-21
Maria X Doe1004Russia2024-04-21
Leja J Rulapaugh1005France2024-04-15
Julie N Inouye1006Spain2024-04-09
Julie T Nicka1007Canada2024-04-14
Murillo R Malet1008Brazil2024-04-13
Claire B Campain1009Canada2024-04-02
Leja Z Whobrey1010India2024-04-10
Izzy Y Bowley1011Germany2024-04-03
Alejandro T Inouye1012United Kingdom2024-04-16
Mayumi M Kolmetz1013India2024-04-04
Octavia M Flosi1014Canada2024-04-22
Ashley F Chui1015Argentina2024-04-19
Isabel G Marrier1016Italy2024-04-17
Sinclair G Iturbide1017Brazil2024-04-16
Kaitlin Q Stenseth1018Japan2024-04-19
Silvio E Ferencz1019Italy2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo M CaudyAustraliaAmy Elsner NEGOTIATION
Leon E FerenczGermanyXuxue Feng PROPOSAL
Munro Z MaletJapanBernardo Dominic QUALIFIED
Chavez R WaycottRussiaElwin Sharvill UNQUALIFIED
Nicolas G RimUnited KingdomIvan Magalhaes QUALIFIED
Murillo J FerenczUnited KingdomIoni Bowcher RENEWAL
Morrow N BriddickCanadaIvan Magalhaes QUALIFIED
Kadeem F CampainItalyIvan Magalhaes RENEWAL
Ricardo B StensethGermanyBernardo Dominic NEGOTIATION
Tony W PoquetteAustraliaAsiya Javayant UNQUALIFIED
Rodrigues I GauchoBrazilAnna Fali QUALIFIED
Morrow D PoquetteSpainAsiya Javayant PROPOSAL
Clifford A OstroskyBrazilAnna Fali NEW
Jennifer J OstroskyRussiaBernardo Dominic UNQUALIFIED
Ivar P MorascaCanadaAmy Elsner PROPOSAL
Salvatore D RimArgentinaOnyama Limba PROPOSAL
David B AmigonItalyAnna Fali PROPOSAL
Misaki N OldroydBrazilElwin Sharvill QUALIFIED
Adams O PerinIndiaStephen Shaw UNQUALIFIED
David M CaudyAustraliaOnyama Limba RENEWAL
Nicolas R StockhamSpainStephen Shaw UNQUALIFIED
Tony W VocelkaJapanIoni Bowcher UNQUALIFIED
Jefferson J ButtFranceAnna Fali UNQUALIFIED
Johnson S FlosiIndiaElwin Sharvill QUALIFIED
Mujtaba V DarakjyFranceIoni Bowcher UNQUALIFIED
Aika Z BowleyIndiaElwin Sharvill QUALIFIED
Greenwood V BologniaJapanXuxue Feng RENEWAL
Ricardo U FollerCanadaBernardo Dominic PROPOSAL
Aditya T BologniaFranceIvan Magalhaes NEGOTIATION
Mayumi J GlickIndiaAnna Fali QUALIFIED
Aruna E NickaUnited KingdomIoni Bowcher UNQUALIFIED
Francesco N VocelkaGermanyElwin Sharvill UNQUALIFIED
Adams R FigeroaFranceAsiya Javayant NEW
Kaitlin V SergiFranceOnyama Limba NEW
Murillo Q ChuiAustraliaAsiya Javayant RENEWAL
Deepesh P OstroskyBrazilBernardo Dominic NEW
Francesco X VenereArgentinaIoni Bowcher PROPOSAL
Ivar B InouyeItalyIoni Bowcher NEW
Costa E InouyeRussiaXuxue Feng UNQUALIFIED
Darci K BowleyUnited KingdomElwin 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>