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
Octavia H DilliardItalyAnna Fali PROPOSAL
Tony M FlosiBrazilOnyama Limba RENEWAL
Alejandro J TollnerUnited KingdomBernardo Dominic RENEWAL
Mujtaba H SergiUnited KingdomElwin Sharvill UNQUALIFIED
Emily Y PaprockiArgentinaElwin Sharvill RENEWAL
Francesco W StensethJapanXuxue Feng RENEWAL
Misaki C DoeBrazilXuxue Feng NEGOTIATION
Aruna Z ButtCanadaAmy Elsner NEGOTIATION
David A RulapaughUnited KingdomAnna Fali PROPOSAL
Antonio P RutaFranceIvan Magalhaes NEW
Ivar R DarakjyFranceBernardo Dominic NEW
Octavia Z ChuiIndiaOnyama Limba RENEWAL
Mujtaba Q RimJapanIoni Bowcher NEGOTIATION
Maisha V ShinkoBrazilAmy Elsner NEGOTIATION
Darci K MaletFranceElwin Sharvill PROPOSAL
Murillo D FigeroaCanadaBernardo Dominic UNQUALIFIED
Johnson N CaldareraFranceIvan Magalhaes NEW
Arvin G OstroskyUnited KingdomBernardo Dominic QUALIFIED
Aika P InouyeArgentinaAnna Fali PROPOSAL
Darci G KolmetzFranceAnna Fali UNQUALIFIED
Aruna V InouyeItalyAsiya Javayant RENEWAL
Leon M FlosiRussiaIvan Magalhaes PROPOSAL
Ivar Z VocelkaFranceAmy Elsner RENEWAL
Cody X MacleadArgentinaIoni Bowcher PROPOSAL
Ricardo G RoysterRussiaOnyama Limba QUALIFIED
Clifford S MaletBrazilBernardo Dominic NEGOTIATION
Chavez D ButtJapanOnyama Limba RENEWAL
Kaitlin E AlbaresSpainBernardo Dominic PROPOSAL
Arvin D WhobreyIndiaIoni Bowcher NEGOTIATION
Ivar Z ChuiSpainOnyama Limba RENEWAL
Izzy W VocelkaAustraliaStephen Shaw NEW
Antonio Q FlosiRussiaIoni Bowcher QUALIFIED
Jefferson D PaprockiArgentinaAmy Elsner QUALIFIED
Chavez E NestleJapanAmy Elsner NEW
Salvatore G WaycottArgentinaBernardo Dominic NEW
Johnson Q ShinkoFranceIvan Magalhaes NEW
Costa H SergiUnited KingdomAsiya Javayant UNQUALIFIED
Ricardo L StensethUnited KingdomAnna Fali QUALIFIED
Silvio D KolmetzFranceAmy Elsner NEGOTIATION
Isabel Y StensethSpainIoni Bowcher NEGOTIATION
Francesco L BologniaIndiaElwin Sharvill PROPOSAL
Alejandro I RutaAustraliaStephen Shaw QUALIFIED
Leja K AmigonItalyIvan Magalhaes QUALIFIED
Tony C NestleUnited KingdomXuxue Feng QUALIFIED
Nicolas L InouyeItalyAnna Fali QUALIFIED
Greenwood X KuskoRussiaAmy Elsner NEGOTIATION
Murillo Y MaletGermanyAmy Elsner QUALIFIED
Nicolas W MarrierJapanElwin Sharvill PROPOSAL
Julie Q MarrierSpainIoni Bowcher QUALIFIED
Maisha H InouyeBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Julie G MarrierJapanOnyama Limba NEGOTIATION
Misaki Q SergiJapanOnyama Limba RENEWAL
Claire O StensethAustraliaAmy Elsner RENEWAL
Francesco F BriddickItalyIvan Magalhaes QUALIFIED
Stacey Q FlosiRussiaAnna Fali NEGOTIATION
Ricardo D OldroydAustraliaIoni Bowcher NEGOTIATION
Munro F BowleyFranceAmy Elsner QUALIFIED
Clifford X InouyeRussiaAsiya Javayant NEGOTIATION
Chavez R RoysterBrazilElwin Sharvill NEW
Salvatore Z RoysterRussiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily E GauchoCanada2024-04-19Rangoni Of Florence UNQUALIFIED6Ioni Bowcher
1001Kaitlin A FerenczArgentina2024-04-21Chemel, James L Cpa NEGOTIATION11Xuxue Feng
1002Claire M VocelkaSpain2024-04-14Morlong Associates NEGOTIATION68Amy Elsner
1003Deepesh A BriddickJapan2024-04-22King, Christopher A Esq NEGOTIATION20Elwin Sharvill
1004Misaki K PoquetteGermany2024-03-31Dorl, James J Esq RENEWAL54Anna Fali
1005Nicolas L RoysterBrazil2024-04-06Printing Dimensions NEGOTIATION74Elwin Sharvill
1006Leja A WieserFrance2024-04-19Morlong Associates RENEWAL65Xuxue Feng
1007Sinclair X BowleyGermany2024-04-19Printing Dimensions RENEWAL67Amy Elsner
1008Ricardo N AlbaresJapan2024-04-02Rangoni Of Florence RENEWAL25Amy Elsner
1009Deepesh Z CampainFrance2024-04-18Truhlar And Truhlar Attys UNQUALIFIED35Anna Fali
1010Stacey H InouyeArgentina2024-04-13Printing Dimensions UNQUALIFIED68Anna Fali
1011Tony E OstroskySpain2024-04-16Rangoni Of Florence QUALIFIED3Amy Elsner
1012Deepesh F BriddickBrazil2024-04-22Rousseaux, Michael Esq NEGOTIATION34Stephen Shaw
1013Salvatore S OldroydUnited Kingdom2024-04-08Truhlar And Truhlar Attys UNQUALIFIED98Asiya Javayant
1014Morrow V WaycottCanada2024-04-20Printing Dimensions NEW28Anna Fali
1015Alejandro C MorascaBrazil2024-04-23Rangoni Of Florence PROPOSAL98Asiya Javayant
1016Octavia T BologniaArgentina2024-03-31Commercial Press RENEWAL4Ioni Bowcher
1017David K KolmetzAustralia2024-04-19Dorl, James J Esq NEGOTIATION27Ivan Magalhaes
1018Alejandro W KuskoIndia2024-04-04Feltz Printing Service QUALIFIED51Xuxue Feng
1019Faith T OldroydUnited Kingdom2024-04-21Chemel, James L Cpa QUALIFIED41Elwin Sharvill
1020Johnson P NickaUnited Kingdom2024-03-31Chemel, James L Cpa QUALIFIED96Stephen Shaw
1021Chavez M MaletFrance2024-04-20Commercial Press NEW66Elwin Sharvill
1022Jennifer L SaylorsAustralia2024-04-14Feltz Printing Service RENEWAL84Ioni Bowcher
1023Leja V CaldareraIndia2024-04-26Feiner Bros NEGOTIATION72Ioni Bowcher
1024Rodrigues O MaletCanada2024-04-04Morlong Associates PROPOSAL13Bernardo Dominic
1025Deepesh V StensethJapan2024-04-14Chemel, James L Cpa UNQUALIFIED90Onyama Limba
1026Darci M ButtAustralia2024-04-26Feltz Printing Service PROPOSAL80Ioni Bowcher
1027Isabel D PoquetteUnited Kingdom2024-04-12Feltz Printing Service UNQUALIFIED3Stephen Shaw
1028Aditya F RulapaughFrance2024-04-01Buckley Miller Wright QUALIFIED88Amy Elsner
1029Sinclair A ShinkoArgentina2024-04-01Printing Dimensions NEGOTIATION54Xuxue Feng
1030Darci S WhobreyCanada2024-04-06King, Christopher A Esq NEGOTIATION79Anna Fali
1031Leja Y SergiJapan2024-04-11Buckley Miller Wright PROPOSAL59Ivan Magalhaes
1032Alejandro C BriddickBrazil2024-04-01Printing Dimensions RENEWAL88Elwin Sharvill
1033Rodrigues S AmigonIndia2024-04-13Feiner Bros PROPOSAL54Bernardo Dominic
1034Faith S ChuiSpain2024-04-02Chapman, Ross E Esq NEW47Anna Fali
1035Deepesh O GillianUnited Kingdom2024-04-05King, Christopher A Esq UNQUALIFIED65Amy Elsner
1036Sinclair R FigeroaIndia2024-04-13Dorl, James J Esq NEGOTIATION43Ivan Magalhaes
1037Julie I WhobreyIndia2024-04-20Rousseaux, Michael Esq QUALIFIED31Amy Elsner
1038Francesco A StensethUnited Kingdom2024-04-17Rousseaux, Michael Esq PROPOSAL71Bernardo Dominic
1039Kaitlin E GarufiItaly2024-04-20Chanay, Jeffrey A Esq QUALIFIED52Asiya Javayant
1040Julie V ChuiItaly2024-04-10Chanay, Jeffrey A Esq QUALIFIED99Onyama Limba
1041Julie Z AlbaresAustralia2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED90Elwin Sharvill
1042Smith L NickaGermany2024-03-31Dorl, James J Esq NEGOTIATION77Bernardo Dominic
1043Jones T RoysterIndia2024-03-29Chanay, Jeffrey A Esq UNQUALIFIED8Amy Elsner
1044Jefferson N TollnerArgentina2024-04-03King, Christopher A Esq NEGOTIATION37Bernardo Dominic
1045Costa B FerenczRussia2024-04-16Chemel, James L Cpa NEW26Elwin Sharvill
1046Clifford R NickaJapan2024-04-22Feltz Printing Service UNQUALIFIED24Stephen Shaw
1047Emily X WieserFrance2024-04-19Chemel, James L Cpa NEGOTIATION90Xuxue Feng
1048Maria D FigeroaSpain2024-04-16Rousseaux, Michael Esq RENEWAL30Ioni Bowcher
1049Johnson N AmigonAustralia2024-04-07Buckley Miller Wright NEGOTIATION43Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Darci O PoquetteBrazilStephen Shaw UNQUALIFIED
Deepesh P NickaCanadaAmy Elsner PROPOSAL
Arvin R SaylorsAustraliaAmy Elsner NEW
Nicolas N DarakjyCanadaXuxue Feng UNQUALIFIED
Kaitlin Q PoquetteRussiaElwin Sharvill UNQUALIFIED
Clifford L MorascaIndiaAmy Elsner UNQUALIFIED
Kaitlin V RoysterCanadaXuxue Feng PROPOSAL
Antonio A ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Maria E GlickFranceAnna Fali NEGOTIATION
Kadeem O KolmetzArgentinaElwin Sharvill UNQUALIFIED
Isabel R IturbideArgentinaAsiya Javayant QUALIFIED
Aditya A GillianRussiaAnna Fali NEGOTIATION
David K BologniaAustraliaAmy Elsner QUALIFIED
Izzy T FigeroaGermanyAmy Elsner UNQUALIFIED
Stacey Y KuskoBrazilIoni Bowcher QUALIFIED
Juan L CampainAustraliaOnyama Limba NEGOTIATION
Chavez Y NestleAustraliaIoni Bowcher QUALIFIED
Maisha F WaycottBrazilStephen Shaw QUALIFIED
Izzy F PoquetteAustraliaBernardo Dominic QUALIFIED
Jefferson Y SlusarskiAustraliaOnyama Limba PROPOSAL
Sinclair P DilliardArgentinaXuxue Feng QUALIFIED
Murillo N VocelkaCanadaIvan Magalhaes UNQUALIFIED
Faith F KolmetzUnited KingdomElwin Sharvill NEW
Kadeem K GillianFranceIoni Bowcher UNQUALIFIED
James M GauchoAustraliaAsiya Javayant NEGOTIATION
Clifford Y SlusarskiJapanOnyama Limba UNQUALIFIED
Maisha W FigeroaFranceIoni Bowcher NEW
Kaitlin F GauchoGermanyIvan Magalhaes UNQUALIFIED
Isabel B DarakjyRussiaElwin Sharvill PROPOSAL
Wickens T AmigonItalyAnna Fali UNQUALIFIED
Ashley T MaletItalyIoni Bowcher UNQUALIFIED
Clifford M ChuiItalyAnna Fali NEGOTIATION
Octavia P ShinkoAustraliaXuxue Feng RENEWAL
Leon D SergiItalyXuxue Feng RENEWAL
Salvatore A ShinkoUnited KingdomStephen Shaw NEGOTIATION
Morrow V GarufiGermanyXuxue Feng RENEWAL
Emily N MacleadSpainAsiya Javayant UNQUALIFIED
Chavez Y DoeAustraliaOnyama Limba NEGOTIATION
Misaki B BowleyAustraliaXuxue Feng NEGOTIATION
Munro X PerinRussiaBernardo Dominic RENEWAL
Juan Y GarufiItalyAmy Elsner NEW
Ashley O PaprockiJapanBernardo Dominic QUALIFIED
Faith V CampainIndiaXuxue Feng UNQUALIFIED
Alejandro I FollerFranceBernardo Dominic UNQUALIFIED
Mujtaba B ChuiArgentinaAsiya Javayant UNQUALIFIED
Izzy Y PoquetteAustraliaAmy Elsner NEGOTIATION
Claire P PaprockiFranceXuxue Feng NEGOTIATION
Nicolas D GauchoItalyIoni Bowcher PROPOSAL
Aruna E ChuiSpainXuxue Feng NEW
Leon T GarufiFranceAmy Elsner NEGOTIATION
Frozen Columns
Name
Octavia N Ostrosky
Faith Z Gaucho
Antonio H Chui
Mayumi F Figeroa
Kaitlin I Campain
Munro A Ferencz
Darci K Figeroa
Maisha D Rulapaugh
Nicolas E Oldroyd
Mujtaba Y Kusko
Jones T Darakjy
Mujtaba O Caldarera
Smith J Foller
Greenwood I Campain
Jefferson Q Rim
Izzy W Stenseth
Cody I Ruta
Maria W Whobrey
Arvin D Morasca
Misaki P Poquette
Munro V Gaucho
Adams K Albares
Jones Z Waycott
Isabel H Chui
Juan C Doe
Maria A Waycott
Antonio R Darakjy
Leon G Campain
Cody W Wieser
Chavez E Sergi
Jefferson O Albares
Silvio F Glick
Misaki Z Waycott
Ricardo A Malet
Costa L Malet
Jeanfrancois X Slusarski
Jennifer U Kolmetz
Isabel O Royster
Morrow C Schemmer
Munro S Flosi
Julie W Vocelka
Claire Q Perin
Maria B Ferencz
Kaitlin W Tollner
Murillo E Tollner
Arvin F Perin
Murillo I Tollner
Izzy N Slusarski
Clifford Y Rulapaugh
Faith V Foller
IdCountryDate
1000United Kingdom2024-04-01
1001India2024-04-12
1002Germany2024-04-20
1003Germany2024-04-07
1004Argentina2024-04-16
1005France2024-04-22
1006United Kingdom2024-04-13
1007Russia2024-04-17
1008Brazil2024-04-01
1009Brazil2024-03-30
1010Brazil2024-04-24
1011United Kingdom2024-04-15
1012Spain2024-04-11
1013United Kingdom2024-04-07
1014Spain2024-04-18
1015Argentina2024-04-14
1016Spain2024-04-21
1017Brazil2024-04-17
1018Argentina2024-04-17
1019Italy2024-04-26
1020Japan2024-04-06
1021France2024-04-08
1022Russia2024-04-08
1023Brazil2024-04-26
1024Canada2024-04-10
1025India2024-04-21
1026India2024-03-29
1027Spain2024-04-04
1028Germany2024-04-12
1029Brazil2024-04-26
1030Argentina2024-04-08
1031Australia2024-04-21
1032Canada2024-04-08
1033Canada2024-04-10
1034Russia2024-04-06
1035Spain2024-04-22
1036Brazil2024-04-06
1037Russia2024-04-26
1038United Kingdom2024-03-28
1039India2024-04-10
1040Russia2024-04-10
1041Canada2024-04-23
1042Brazil2024-04-13
1043Japan2024-04-02
1044United Kingdom2024-04-09
1045Italy2024-04-21
1046Spain2024-04-09
1047Canada2024-04-26
1048France2024-04-23
1049Japan2024-04-20

On-Demand Data

NameIdCountryDate
Mujtaba P Marrier1000Japan2024-04-20
Juan K Iturbide1001Italy2024-04-15
Claire S Gillian1002Japan2024-04-23
Chavez Z Slusarski1003United Kingdom2024-04-09
Antonio N Poquette1004Italy2024-04-20
Ricardo Z Inouye1005United Kingdom2024-04-20
Johnson J Shinko1006Japan2024-04-25
Jennifer V Waycott1007Australia2024-04-21
Aruna K Venere1008Italy2024-04-21
Jones F Chui1009India2024-03-29
Adams C Flosi1010Spain2024-04-20
Chavez K Darakjy1011Italy2024-03-29
Morrow S Bowley1012Argentina2024-04-25
Johnson W Waycott1013India2024-04-25
Leja T Amigon1014India2024-04-21
Tony M Amigon1015Russia2024-03-28
James W Garufi1016Argentina2024-04-12
Leon U Figeroa1017Japan2024-04-19
Tony A Garufi1018Spain2024-03-30
Sinclair S Briddick1019Brazil2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David P RoysterIndiaStephen Shaw UNQUALIFIED
Antonio Z FlosiAustraliaIoni Bowcher QUALIFIED
Juan P ButtSpainElwin Sharvill QUALIFIED
Aika Z SlusarskiCanadaIvan Magalhaes NEGOTIATION
James S TollnerUnited KingdomXuxue Feng PROPOSAL
Izzy D MaletJapanStephen Shaw RENEWAL
Stacey M ButtGermanyAsiya Javayant NEGOTIATION
Alejandro Y KolmetzIndiaBernardo Dominic PROPOSAL
Ivar H WaycottGermanyIoni Bowcher NEGOTIATION
Johnson S FollerItalyIoni Bowcher QUALIFIED
Morrow E KolmetzArgentinaIoni Bowcher NEW
James N MacleadIndiaAnna Fali RENEWAL
Mujtaba K FerenczRussiaBernardo Dominic NEGOTIATION
Costa T BologniaRussiaAsiya Javayant NEW
Francesco Q NestleArgentinaAsiya Javayant RENEWAL
Julie L FerenczRussiaStephen Shaw NEGOTIATION
Jennifer B NickaFranceAmy Elsner PROPOSAL
Alejandro P FlosiRussiaBernardo Dominic NEGOTIATION
Costa E GlickItalyIoni Bowcher RENEWAL
Sinclair R BologniaItalyBernardo Dominic PROPOSAL
Izzy O SaylorsSpainIoni Bowcher PROPOSAL
Sinclair X WieserBrazilIvan Magalhaes UNQUALIFIED
Aruna P DoeGermanyStephen Shaw PROPOSAL
Chavez T VocelkaGermanyIoni Bowcher QUALIFIED
Sinclair H KuskoGermanyOnyama Limba RENEWAL
Clifford D OldroydBrazilIvan Magalhaes PROPOSAL
Mujtaba L RulapaughSpainStephen Shaw RENEWAL
Juan E FlosiGermanyStephen Shaw NEW
Claire E GlickCanadaIvan Magalhaes QUALIFIED
Costa E RulapaughItalyElwin Sharvill NEW
Aditya E ShinkoArgentinaElwin Sharvill NEGOTIATION
Octavia W KolmetzFranceIvan Magalhaes RENEWAL
Kadeem M KuskoJapanBernardo Dominic NEGOTIATION
David V ShinkoArgentinaXuxue Feng QUALIFIED
Mayumi L SlusarskiCanadaStephen Shaw UNQUALIFIED
Chavez T CaudyJapanStephen Shaw UNQUALIFIED
Stacey X CaudyRussiaOnyama Limba RENEWAL
Isabel T SchemmerIndiaAnna Fali NEGOTIATION
Johnson I NickaGermanyAmy Elsner QUALIFIED
Misaki G MacleadBrazilBernardo Dominic 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>