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
Clifford X StockhamSpainXuxue Feng NEGOTIATION
Ashley X SlusarskiAustraliaStephen Shaw NEW
Clifford T GauchoFranceIvan Magalhaes UNQUALIFIED
Munro H BowleyJapanElwin Sharvill RENEWAL
Ivar W GlickJapanOnyama Limba RENEWAL
Cody H OstroskyFranceAsiya Javayant NEW
Maria V RulapaughCanadaIoni Bowcher PROPOSAL
Jeanfrancois Z ButtRussiaAmy Elsner UNQUALIFIED
Kadeem A SaylorsRussiaIoni Bowcher PROPOSAL
Clifford W CaldareraIndiaXuxue Feng NEW
Francesco I CampainBrazilAsiya Javayant PROPOSAL
Izzy H OstroskyUnited KingdomAmy Elsner PROPOSAL
Mujtaba A BologniaFranceIoni Bowcher RENEWAL
Claire S ChuiJapanBernardo Dominic UNQUALIFIED
Leon Q MorascaBrazilStephen Shaw RENEWAL
Emily E GauchoSpainOnyama Limba QUALIFIED
Alejandro F ButtGermanyXuxue Feng RENEWAL
Antonio O MaletJapanIvan Magalhaes QUALIFIED
Aruna S RutaUnited KingdomElwin Sharvill NEGOTIATION
James Q TollnerArgentinaAnna Fali PROPOSAL
Jennifer R MorascaJapanAnna Fali PROPOSAL
Stacey F DoeAustraliaAsiya Javayant PROPOSAL
James P CampainGermanyXuxue Feng UNQUALIFIED
Jefferson F AlbaresJapanAmy Elsner NEGOTIATION
Mujtaba I MorascaSpainAmy Elsner NEGOTIATION
Nicolas U TollnerItalyAsiya Javayant UNQUALIFIED
Salvatore Y RoysterBrazilIoni Bowcher PROPOSAL
Julie T BologniaBrazilXuxue Feng RENEWAL
Rodrigues D BowleyArgentinaAnna Fali UNQUALIFIED
Misaki R RulapaughFranceAnna Fali PROPOSAL
Smith I KuskoSpainStephen Shaw NEW
Mujtaba F AmigonSpainAmy Elsner NEW
Nicolas L DoeSpainStephen Shaw QUALIFIED
Salvatore L FlosiArgentinaElwin Sharvill QUALIFIED
Jeanfrancois Q SergiJapanAnna Fali RENEWAL
Misaki R GarufiItalyBernardo Dominic PROPOSAL
Jennifer F PerinAustraliaXuxue Feng NEGOTIATION
Wickens A FigeroaAustraliaElwin Sharvill NEGOTIATION
Sinclair V FlosiArgentinaAnna Fali PROPOSAL
Wickens A StockhamRussiaIvan Magalhaes PROPOSAL
Wickens Z BologniaCanadaAnna Fali QUALIFIED
Leon T KolmetzArgentinaAmy Elsner PROPOSAL
Jones D ButtUnited KingdomAmy Elsner RENEWAL
Morrow T WieserRussiaXuxue Feng UNQUALIFIED
Chavez A AlbaresCanadaAnna Fali RENEWAL
Nicolas G RoysterUnited KingdomElwin Sharvill NEW
Leon T ShinkoCanadaAmy Elsner QUALIFIED
Claire B WaycottAustraliaStephen Shaw RENEWAL
Deepesh R FerenczJapanStephen Shaw RENEWAL
Alejandro I BowleyRussiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley T GauchoJapanStephen Shaw RENEWAL
Stacey E SergiItalyOnyama Limba RENEWAL
Mayumi Z NickaArgentinaOnyama Limba PROPOSAL
Tony U NickaBrazilAsiya Javayant PROPOSAL
Jennifer Q DoeCanadaIvan Magalhaes RENEWAL
Murillo V RoysterArgentinaBernardo Dominic RENEWAL
Antonio L MacleadUnited KingdomStephen Shaw NEW
Claire E FlosiArgentinaAnna Fali NEW
Silvio W WaycottCanadaIoni Bowcher UNQUALIFIED
Claire H NestleUnited KingdomElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford U KuskoCanada2024-04-21Chanay, Jeffrey A Esq NEGOTIATION5Anna Fali
1001Octavia Z InouyeAustralia2024-04-01Chapman, Ross E Esq UNQUALIFIED16Ioni Bowcher
1002Morrow Q RulapaughIndia2024-04-16Morlong Associates UNQUALIFIED81Bernardo Dominic
1003Wickens Y ChuiIndia2024-04-03Benton, John B Jr PROPOSAL97Amy Elsner
1004Ricardo Q NestleFrance2024-04-11Chapman, Ross E Esq NEGOTIATION1Xuxue Feng
1005Antonio K TollnerFrance2024-04-16Morlong Associates PROPOSAL88Ivan Magalhaes
1006Johnson G OldroydGermany2024-04-06Commercial Press QUALIFIED52Amy Elsner
1007Jennifer W RimArgentina2024-04-07Rangoni Of Florence QUALIFIED0Ioni Bowcher
1008Octavia Y ShinkoRussia2024-04-06Commercial Press PROPOSAL55Xuxue Feng
1009Aika H InouyeAustralia2024-04-17King, Christopher A Esq RENEWAL7Onyama Limba
1010Leja L InouyeSpain2024-04-01Morlong Associates PROPOSAL3Anna Fali
1011Izzy K CaldareraJapan2024-04-15Buckley Miller Wright PROPOSAL40Onyama Limba
1012Costa H BriddickBrazil2024-04-20Feltz Printing Service QUALIFIED25Ivan Magalhaes
1013Rodrigues R DilliardUnited Kingdom2024-04-05Buckley Miller Wright NEGOTIATION66Ioni Bowcher
1014Juan N PerinBrazil2024-04-12Feiner Bros UNQUALIFIED30Amy Elsner
1015Clifford S StockhamJapan2024-04-26Chapman, Ross E Esq UNQUALIFIED36Stephen Shaw
1016Smith B FigeroaGermany2024-04-08King, Christopher A Esq PROPOSAL11Asiya Javayant
1017Sinclair Q CaudyArgentina2024-04-13King, Christopher A Esq QUALIFIED32Asiya Javayant
1018Aika P CampainCanada2024-04-05Chanay, Jeffrey A Esq NEW51Amy Elsner
1019Murillo T StockhamUnited Kingdom2024-04-04Chemel, James L Cpa RENEWAL78Ioni Bowcher
1020Munro N GarufiGermany2024-04-20Printing Dimensions NEGOTIATION66Amy Elsner
1021Aika I SlusarskiItaly2024-04-21Commercial Press PROPOSAL38Bernardo Dominic
1022Greenwood D GlickRussia2024-04-24Rousseaux, Michael Esq UNQUALIFIED10Ioni Bowcher
1023Kadeem Z WhobreySpain2024-04-20Truhlar And Truhlar Attys QUALIFIED60Amy Elsner
1024Leon A GarufiItaly2024-04-19Feiner Bros UNQUALIFIED44Ioni Bowcher
1025Ricardo W RulapaughFrance2024-03-28Morlong Associates NEGOTIATION88Ioni Bowcher
1026Octavia O CampainItaly2024-04-16Buckley Miller Wright UNQUALIFIED81Ioni Bowcher
1027Mujtaba D CaudyJapan2024-04-16Buckley Miller Wright RENEWAL78Elwin Sharvill
1028Chavez K ChuiSpain2024-04-04Feiner Bros NEW1Asiya Javayant
1029Sinclair Q RoysterSpain2024-04-19Feiner Bros QUALIFIED75Ioni Bowcher
1030Deepesh V RimBrazil2024-04-17Buckley Miller Wright RENEWAL99Asiya Javayant
1031Aika B MaletArgentina2024-03-28Printing Dimensions NEW5Stephen Shaw
1032Silvio E VocelkaCanada2024-04-22Rousseaux, Michael Esq NEGOTIATION38Anna Fali
1033Leon F SaylorsBrazil2024-04-22Chanay, Jeffrey A Esq NEW49Xuxue Feng
1034Munro M SlusarskiAustralia2024-04-02King, Christopher A Esq RENEWAL47Amy Elsner
1035Ivar G PoquetteCanada2024-04-22Rangoni Of Florence QUALIFIED92Xuxue Feng
1036Jennifer C CampainFrance2024-04-15Chanay, Jeffrey A Esq NEW18Ioni Bowcher
1037Faith Y BologniaCanada2024-04-17Rousseaux, Michael Esq RENEWAL39Ivan Magalhaes
1038Juan K KolmetzUnited Kingdom2024-04-24King, Christopher A Esq NEGOTIATION34Onyama Limba
1039Izzy P FerenczCanada2024-04-05Benton, John B Jr NEW95Ivan Magalhaes
1040Jones Q StockhamArgentina2024-04-16Rousseaux, Michael Esq UNQUALIFIED2Elwin Sharvill
1041Kaitlin K BriddickAustralia2024-04-08Benton, John B Jr NEGOTIATION87Xuxue Feng
1042Salvatore I ButtCanada2024-04-14Chemel, James L Cpa PROPOSAL29Amy Elsner
1043Rodrigues D AmigonItaly2024-04-05Chanay, Jeffrey A Esq NEW23Ioni Bowcher
1044Morrow Z BriddickItaly2024-04-12Buckley Miller Wright UNQUALIFIED78Stephen Shaw
1045Smith Y FerenczGermany2024-04-25Rousseaux, Michael Esq NEW70Ivan Magalhaes
1046Chavez J TollnerArgentina2024-04-18Buckley Miller Wright QUALIFIED40Ioni Bowcher
1047Tony J KuskoBrazil2024-04-24Chapman, Ross E Esq RENEWAL68Onyama Limba
1048Cody H VocelkaJapan2024-04-07Rangoni Of Florence QUALIFIED97Asiya Javayant
1049Maisha W AlbaresJapan2024-04-21Feiner Bros NEW39Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Faith Z RulapaughJapanIoni Bowcher QUALIFIED
Misaki M StensethUnited KingdomAnna Fali NEW
Ricardo W BologniaUnited KingdomStephen Shaw QUALIFIED
Faith H NestleAustraliaElwin Sharvill RENEWAL
Stacey S IturbideAustraliaElwin Sharvill QUALIFIED
Deepesh G GlickSpainStephen Shaw NEW
Deepesh K CaldareraAustraliaStephen Shaw NEGOTIATION
Mayumi N SergiSpainAnna Fali RENEWAL
Leja M VenereGermanyIvan Magalhaes QUALIFIED
Sinclair Q KuskoUnited KingdomStephen Shaw NEGOTIATION
Morrow U RimIndiaXuxue Feng NEGOTIATION
Murillo N PaprockiArgentinaAnna Fali NEW
Maria U ButtIndiaAnna Fali PROPOSAL
Cody R MaletJapanAmy Elsner NEGOTIATION
Aditya A WaycottFranceXuxue Feng NEW
Kadeem Y MarrierGermanyBernardo Dominic UNQUALIFIED
Arvin J NestleCanadaAmy Elsner PROPOSAL
Maisha S RoysterCanadaBernardo Dominic NEW
Juan D ShinkoIndiaIvan Magalhaes QUALIFIED
Salvatore M FerenczIndiaXuxue Feng NEGOTIATION
Kadeem L FlosiRussiaElwin Sharvill PROPOSAL
Julie H KolmetzBrazilStephen Shaw NEW
Leon L AlbaresCanadaElwin Sharvill NEW
Munro C GarufiArgentinaAnna Fali RENEWAL
Darci M PaprockiSpainOnyama Limba PROPOSAL
Aika A DoeItalyXuxue Feng UNQUALIFIED
Smith R VocelkaJapanOnyama Limba RENEWAL
Mujtaba I WieserAustraliaBernardo Dominic PROPOSAL
Julie K OstroskyBrazilIoni Bowcher NEGOTIATION
Jones L StensethBrazilIoni Bowcher UNQUALIFIED
Rodrigues F NickaUnited KingdomXuxue Feng RENEWAL
Clifford B BriddickJapanOnyama Limba QUALIFIED
Emily H NickaItalyAsiya Javayant UNQUALIFIED
Morrow B GlickJapanOnyama Limba UNQUALIFIED
Francesco I CampainArgentinaOnyama Limba NEGOTIATION
Jennifer E NestleItalyBernardo Dominic PROPOSAL
Octavia K FerenczRussiaStephen Shaw PROPOSAL
Greenwood G AmigonUnited KingdomXuxue Feng NEGOTIATION
Isabel J CaudySpainIvan Magalhaes PROPOSAL
Ivar Q RutaAustraliaAsiya Javayant NEGOTIATION
Greenwood G DarakjyAustraliaElwin Sharvill UNQUALIFIED
Misaki N InouyeRussiaAnna Fali QUALIFIED
Kaitlin T GarufiUnited KingdomAsiya Javayant NEGOTIATION
Clifford S OstroskyArgentinaBernardo Dominic QUALIFIED
Mujtaba W VocelkaSpainBernardo Dominic NEW
Costa G MarrierSpainAnna Fali UNQUALIFIED
Jeanfrancois Y CaudyAustraliaIoni Bowcher UNQUALIFIED
Mayumi H MorascaJapanElwin Sharvill NEGOTIATION
Ashley E OstroskyBrazilAnna Fali PROPOSAL
Smith M WaycottGermanyAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Costa Y Schemmer
Silvio W Malet
Maria K Rim
Darci Q Shinko
Stacey W Gaucho
Mujtaba X Stenseth
Murillo I Oldroyd
Adams Z Foller
Octavia O Poquette
Murillo Y Amigon
Claire U Whobrey
Maria U Malet
Wickens O Marrier
Mayumi G Whobrey
Misaki B Rulapaugh
Nicolas U Ostrosky
Julie Z Ruta
Munro I Venere
Maria S Butt
Aruna O Shinko
Johnson S Malet
Cody J Saylors
Johnson C Schemmer
Costa D Iturbide
Aika A Maclead
Aruna T Malet
Jones U Butt
Cody Q Perin
Adams L Dilliard
Salvatore X Campain
Misaki Q Sergi
Stacey S Caudy
Salvatore P Tollner
Costa Y Sergi
Maisha D Amigon
Nicolas Z Wieser
Morrow K Paprocki
Silvio D Doe
Misaki U Briddick
Johnson O Schemmer
Mujtaba C Gillian
Kadeem H Stenseth
James W Stenseth
Nicolas N Foller
Mujtaba Z Paprocki
David H Caldarera
Mujtaba T Chui
Jeanfrancois T Dilliard
Mujtaba L Bowley
Emily O Sergi
IdCountryDate
1000India2024-03-28
1001Australia2024-04-02
1002Russia2024-04-26
1003Italy2024-03-31
1004Canada2024-04-13
1005United Kingdom2024-04-17
1006Japan2024-04-14
1007Germany2024-04-03
1008Spain2024-04-01
1009India2024-04-15
1010India2024-04-24
1011Argentina2024-03-29
1012India2024-04-03
1013Germany2024-04-21
1014Brazil2024-04-13
1015India2024-04-14
1016Canada2024-03-31
1017Canada2024-04-06
1018Spain2024-03-28
1019United Kingdom2024-04-16
1020Canada2024-04-01
1021Spain2024-04-02
1022Germany2024-04-12
1023Germany2024-04-06
1024Spain2024-04-15
1025United Kingdom2024-04-11
1026Italy2024-04-04
1027Australia2024-04-12
1028Brazil2024-03-30
1029Canada2024-03-30
1030Russia2024-04-12
1031Argentina2024-04-01
1032United Kingdom2024-04-01
1033India2024-04-24
1034Spain2024-04-05
1035France2024-04-03
1036Australia2024-04-07
1037Canada2024-04-08
1038Russia2024-04-01
1039Canada2024-04-10
1040United Kingdom2024-04-04
1041Australia2024-04-25
1042Russia2024-04-03
1043United Kingdom2024-04-23
1044United Kingdom2024-04-22
1045Japan2024-04-05
1046United Kingdom2024-04-08
1047Spain2024-04-19
1048Australia2024-04-25
1049Canada2024-03-31

On-Demand Data

NameIdCountryDate
Emily H Saylors1000Argentina2024-04-23
Johnson X Darakjy1001India2024-04-21
Stacey J Albares1002France2024-04-13
Wickens A Sergi1003Argentina2024-04-05
Costa Q Darakjy1004Russia2024-04-10
Claire H Schemmer1005Italy2024-04-17
Kadeem I Oldroyd1006Japan2024-04-20
Greenwood G Shinko1007India2024-04-21
Maisha T Stockham1008Australia2024-04-24
Maisha Z Ruta1009Spain2024-04-08
Leon J Waycott1010France2024-04-18
Leja C Tollner1011Argentina2024-04-13
David Q Stenseth1012Brazil2024-04-11
Wickens X Poquette1013Australia2024-04-26
Mujtaba T Iturbide1014Germany2024-04-03
Chavez U Gaucho1015Russia2024-04-12
Salvatore H Glick1016Argentina2024-04-25
Maria F Vocelka1017Italy2024-04-26
Deepesh P Kolmetz1018United Kingdom2024-03-29
Salvatore H Paprocki1019Spain2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan R WhobreyAustraliaOnyama Limba RENEWAL
Salvatore A SergiAustraliaAmy Elsner QUALIFIED
Ricardo O GillianCanadaAmy Elsner RENEWAL
Salvatore V RulapaughIndiaIvan Magalhaes UNQUALIFIED
Costa I InouyeAustraliaAnna Fali UNQUALIFIED
David G PaprockiBrazilIoni Bowcher QUALIFIED
Mujtaba R PaprockiItalyAsiya Javayant NEGOTIATION
David G RimRussiaIvan Magalhaes PROPOSAL
Julie X NickaBrazilStephen Shaw PROPOSAL
Jefferson R KuskoBrazilStephen Shaw PROPOSAL
Emily L SchemmerCanadaStephen Shaw NEW
Murillo A FerenczIndiaAmy Elsner NEW
Jennifer B FlosiJapanAnna Fali UNQUALIFIED
Jefferson B BriddickArgentinaIvan Magalhaes RENEWAL
Rodrigues Q BriddickGermanyAsiya Javayant UNQUALIFIED
Claire J ButtArgentinaXuxue Feng NEGOTIATION
Wickens H OstroskyCanadaStephen Shaw NEW
Alejandro R OstroskyUnited KingdomBernardo Dominic QUALIFIED
Chavez W WhobreyArgentinaBernardo Dominic PROPOSAL
Smith Y MaletFranceXuxue Feng UNQUALIFIED
Cody A BriddickAustraliaElwin Sharvill NEW
Arvin X VocelkaArgentinaElwin Sharvill NEGOTIATION
Adams Z AmigonIndiaStephen Shaw NEW
James I CaldareraArgentinaElwin Sharvill PROPOSAL
Nicolas I FlosiBrazilBernardo Dominic RENEWAL
Alejandro Q FlosiJapanAmy Elsner NEW
Chavez X CampainArgentinaIvan Magalhaes UNQUALIFIED
David G CampainAustraliaStephen Shaw QUALIFIED
Kaitlin M AmigonJapanStephen Shaw NEGOTIATION
Costa R CaudyRussiaOnyama Limba QUALIFIED
Deepesh J RulapaughSpainElwin Sharvill NEGOTIATION
Arvin W NestleItalyAnna Fali NEGOTIATION
Alejandro O WhobreyGermanyBernardo Dominic UNQUALIFIED
Rodrigues Q GlickArgentinaBernardo Dominic NEGOTIATION
Jones U DoeIndiaOnyama Limba NEGOTIATION
Jefferson T RulapaughSpainElwin Sharvill RENEWAL
Smith L MorascaArgentinaIoni Bowcher UNQUALIFIED
Emily R MacleadArgentinaBernardo Dominic QUALIFIED
Clifford I BowleyRussiaAsiya Javayant RENEWAL
Aditya G FlosiBrazilXuxue Feng 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>