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
Francesco A NickaIndiaOnyama Limba NEW
Jones S MarrierRussiaStephen Shaw NEW
Adams H RulapaughAustraliaIoni Bowcher NEW
Greenwood Y RimFranceIoni Bowcher PROPOSAL
Faith J SlusarskiJapanStephen Shaw NEW
Jones Z MacleadFranceAsiya Javayant UNQUALIFIED
Jones E AmigonFranceAnna Fali NEW
Smith Q PaprockiArgentinaAmy Elsner NEW
Julie N RulapaughIndiaOnyama Limba RENEWAL
Juan V GillianAustraliaStephen Shaw NEW
Salvatore C MaletFranceIvan Magalhaes UNQUALIFIED
Isabel D MaletRussiaStephen Shaw NEGOTIATION
Clifford S MarrierGermanyXuxue Feng RENEWAL
Kadeem Q OstroskySpainOnyama Limba NEW
Ashley B MaletArgentinaIvan Magalhaes UNQUALIFIED
James F RutaUnited KingdomXuxue Feng NEW
Cody H DarakjyJapanAmy Elsner UNQUALIFIED
Julie R PoquetteIndiaElwin Sharvill QUALIFIED
Alejandro H SergiBrazilBernardo Dominic RENEWAL
Jennifer U VocelkaUnited KingdomAnna Fali QUALIFIED
Leja H GlickArgentinaStephen Shaw RENEWAL
Kaitlin X SlusarskiFranceXuxue Feng QUALIFIED
Misaki A CaudyArgentinaIvan Magalhaes NEGOTIATION
Maria N PerinCanadaBernardo Dominic PROPOSAL
Isabel S NickaFranceElwin Sharvill QUALIFIED
Cody H MacleadItalyBernardo Dominic NEGOTIATION
Maisha L CaudyGermanyOnyama Limba PROPOSAL
Jefferson M SlusarskiRussiaAmy Elsner UNQUALIFIED
Aditya T BowleyGermanyAmy Elsner NEW
Faith F CaldareraBrazilOnyama Limba UNQUALIFIED
Aruna N IturbideArgentinaXuxue Feng NEGOTIATION
Aika A SergiSpainElwin Sharvill PROPOSAL
Ashley F KolmetzAustraliaIoni Bowcher QUALIFIED
Mayumi N InouyeBrazilAnna Fali PROPOSAL
Nicolas G StockhamArgentinaAnna Fali QUALIFIED
Salvatore F DarakjyJapanStephen Shaw NEW
Misaki B MarrierFranceBernardo Dominic NEW
Alejandro N GillianArgentinaXuxue Feng RENEWAL
Faith M FollerJapanXuxue Feng QUALIFIED
Ashley B BriddickFranceIoni Bowcher PROPOSAL
Rodrigues R StensethJapanIoni Bowcher RENEWAL
Misaki D DarakjyGermanyStephen Shaw NEW
Emily F OldroydFranceBernardo Dominic QUALIFIED
Cody T IturbideGermanyIoni Bowcher PROPOSAL
Munro R DarakjyRussiaAsiya Javayant NEW
Johnson S CampainCanadaOnyama Limba PROPOSAL
David Y AlbaresSpainIvan Magalhaes PROPOSAL
Nicolas X FlosiCanadaElwin Sharvill RENEWAL
Isabel J MaletArgentinaStephen Shaw PROPOSAL
Greenwood Q DarakjySpainXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Darci B MacleadIndiaAsiya Javayant NEW
Johnson P SergiIndiaIvan Magalhaes RENEWAL
Kaitlin E VenereAustraliaStephen Shaw RENEWAL
Tony D AmigonItalyElwin Sharvill NEW
Munro E KolmetzCanadaBernardo Dominic NEGOTIATION
Emily Z DoeCanadaOnyama Limba NEW
Murillo B FlosiAustraliaAsiya Javayant RENEWAL
Darci V AlbaresRussiaIoni Bowcher UNQUALIFIED
Clifford Q GillianFranceBernardo Dominic NEW
Mayumi H SergiItalyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci I VocelkaGermany2024-04-11Chemel, James L Cpa PROPOSAL21Amy Elsner
1001Jefferson Q WieserIndia2024-04-26Rangoni Of Florence PROPOSAL7Asiya Javayant
1002Smith W KuskoUnited Kingdom2024-04-28King, Christopher A Esq NEW91Asiya Javayant
1003Jennifer C FerenczRussia2024-04-25Morlong Associates UNQUALIFIED79Ivan Magalhaes
1004Clifford L StensethFrance2024-04-30Chapman, Ross E Esq UNQUALIFIED1Ivan Magalhaes
1005Julie R RimSpain2024-04-20Truhlar And Truhlar Attys UNQUALIFIED55Ioni Bowcher
1006Aruna N OldroydAustralia2024-04-26Chemel, James L Cpa QUALIFIED98Elwin Sharvill
1007Costa F CampainRussia2024-04-16Dorl, James J Esq RENEWAL34Asiya Javayant
1008Adams V StockhamUnited Kingdom2024-04-11Feltz Printing Service PROPOSAL11Xuxue Feng
1009Kadeem W SlusarskiJapan2024-05-06Buckley Miller Wright UNQUALIFIED45Ioni Bowcher
1010Ricardo L ChuiIndia2024-04-25Printing Dimensions NEGOTIATION59Bernardo Dominic
1011Antonio N TollnerRussia2024-05-05Chapman, Ross E Esq NEW20Ivan Magalhaes
1012Maria N MorascaAustralia2024-04-08Rousseaux, Michael Esq UNQUALIFIED77Stephen Shaw
1013Jennifer L RutaIndia2024-05-03King, Christopher A Esq NEW30Amy Elsner
1014Deepesh A StockhamSpain2024-04-12Printing Dimensions RENEWAL24Amy Elsner
1015Misaki Y MaletArgentina2024-05-04Feltz Printing Service QUALIFIED64Elwin Sharvill
1016Stacey H MaletSpain2024-04-30Chanay, Jeffrey A Esq RENEWAL51Anna Fali
1017Emily J DoeBrazil2024-04-30Rousseaux, Michael Esq QUALIFIED44Amy Elsner
1018Ivar P BriddickUnited Kingdom2024-05-05Benton, John B Jr UNQUALIFIED97Asiya Javayant
1019Mujtaba F VenereAustralia2024-05-07Rangoni Of Florence UNQUALIFIED82Elwin Sharvill
1020Izzy U BriddickGermany2024-05-02Dorl, James J Esq PROPOSAL42Xuxue Feng
1021Alejandro Q BologniaRussia2024-04-10King, Christopher A Esq NEW44Onyama Limba
1022Leon B AlbaresFrance2024-04-30Buckley Miller Wright NEGOTIATION59Xuxue Feng
1023Aditya T BologniaSpain2024-04-16Dorl, James J Esq UNQUALIFIED70Xuxue Feng
1024Francesco Q KuskoBrazil2024-04-08King, Christopher A Esq NEGOTIATION86Onyama Limba
1025Faith C MaletJapan2024-04-25Benton, John B Jr RENEWAL78Ivan Magalhaes
1026Ivar H VenereAustralia2024-05-07King, Christopher A Esq UNQUALIFIED9Ioni Bowcher
1027Munro E SchemmerJapan2024-04-12Chapman, Ross E Esq NEGOTIATION17Ioni Bowcher
1028Ashley O ChuiJapan2024-04-28Feltz Printing Service UNQUALIFIED29Onyama Limba
1029Sinclair U PerinArgentina2024-05-02Printing Dimensions UNQUALIFIED56Amy Elsner
1030Aruna U FerenczRussia2024-04-22Chemel, James L Cpa UNQUALIFIED33Bernardo Dominic
1031Francesco R MarrierArgentina2024-04-25Printing Dimensions NEGOTIATION9Elwin Sharvill
1032Salvatore X RoysterFrance2024-05-01Feiner Bros RENEWAL71Bernardo Dominic
1033Adams M SergiFrance2024-05-04Benton, John B Jr NEW11Elwin Sharvill
1034Maria E GillianJapan2024-04-26Rousseaux, Michael Esq PROPOSAL0Onyama Limba
1035Jefferson P InouyeBrazil2024-04-21Chemel, James L Cpa UNQUALIFIED57Bernardo Dominic
1036Morrow S CaldareraIndia2024-04-26Truhlar And Truhlar Attys UNQUALIFIED6Onyama Limba
1037Jones S AlbaresRussia2024-04-14Feltz Printing Service NEW31Onyama Limba
1038Stacey U FollerFrance2024-04-19Benton, John B Jr PROPOSAL91Anna Fali
1039Chavez J NickaAustralia2024-04-18King, Christopher A Esq NEW10Stephen Shaw
1040Emily R DarakjySpain2024-05-06Dorl, James J Esq NEW5Ioni Bowcher
1041Ivar L SchemmerIndia2024-04-20Chapman, Ross E Esq RENEWAL98Asiya Javayant
1042Francesco W BriddickGermany2024-05-06Feiner Bros NEGOTIATION7Ioni Bowcher
1043Emily W KolmetzBrazil2024-04-09Chanay, Jeffrey A Esq NEW70Onyama Limba
1044Silvio A MacleadAustralia2024-05-02Commercial Press NEW72Stephen Shaw
1045Ivar C SchemmerArgentina2024-04-21Feltz Printing Service RENEWAL59Anna Fali
1046Aika Q ShinkoRussia2024-04-17Printing Dimensions NEW92Amy Elsner
1047David D SergiJapan2024-04-16Rangoni Of Florence PROPOSAL74Ioni Bowcher
1048Ivar T WhobreyGermany2024-04-27Printing Dimensions RENEWAL93Bernardo Dominic
1049Maria N DoeUnited Kingdom2024-04-17Morlong Associates NEGOTIATION51Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Stacey A WaycottCanadaElwin Sharvill PROPOSAL
Ivar S SaylorsAustraliaAnna Fali UNQUALIFIED
Mayumi A WieserUnited KingdomAsiya Javayant QUALIFIED
Ivar O KolmetzGermanyIoni Bowcher QUALIFIED
Adams C VenereCanadaOnyama Limba RENEWAL
Darci N VocelkaGermanyBernardo Dominic NEGOTIATION
Darci I TollnerArgentinaAnna Fali NEGOTIATION
Mayumi O DoeBrazilStephen Shaw NEW
Sinclair Y FigeroaFranceXuxue Feng NEGOTIATION
Aika Y RulapaughUnited KingdomStephen Shaw NEGOTIATION
Izzy U BowleyJapanXuxue Feng NEW
Silvio S BriddickGermanyXuxue Feng NEGOTIATION
Alejandro K GauchoCanadaXuxue Feng QUALIFIED
Rodrigues B CaudyArgentinaAnna Fali NEW
Sinclair O PaprockiArgentinaXuxue Feng NEW
Mayumi L PaprockiGermanyBernardo Dominic NEW
Costa A MorascaArgentinaAsiya Javayant NEGOTIATION
Clifford H KuskoCanadaBernardo Dominic RENEWAL
Munro C KolmetzRussiaXuxue Feng NEGOTIATION
Nicolas G RutaJapanAsiya Javayant PROPOSAL
Silvio J CaldareraFranceBernardo Dominic PROPOSAL
Morrow D MarrierRussiaAmy Elsner NEGOTIATION
Ricardo C ChuiUnited KingdomStephen Shaw RENEWAL
Leja L InouyeFranceElwin Sharvill RENEWAL
Ricardo A GillianArgentinaIoni Bowcher RENEWAL
Ivar I MarrierIndiaIoni Bowcher UNQUALIFIED
Clifford Z VocelkaBrazilOnyama Limba NEW
Greenwood K MaletItalyIvan Magalhaes UNQUALIFIED
Silvio U MaletAustraliaBernardo Dominic RENEWAL
Leja X NickaGermanyStephen Shaw NEW
Jones H FlosiJapanStephen Shaw QUALIFIED
Alejandro B AmigonUnited KingdomXuxue Feng NEW
Jeanfrancois Q TollnerFranceAnna Fali NEGOTIATION
Jennifer B WhobreyIndiaElwin Sharvill RENEWAL
Greenwood F ChuiAustraliaAnna Fali RENEWAL
Clifford X FollerCanadaAmy Elsner NEGOTIATION
Kaitlin P GillianBrazilElwin Sharvill QUALIFIED
Jones L MacleadRussiaIvan Magalhaes NEW
Mayumi U StensethBrazilAmy Elsner QUALIFIED
Jefferson O MorascaGermanyIvan Magalhaes NEW
Greenwood V WhobreyAustraliaOnyama Limba NEGOTIATION
Julie T WaycottUnited KingdomStephen Shaw UNQUALIFIED
Leon S FollerArgentinaElwin Sharvill QUALIFIED
Izzy B RoysterRussiaXuxue Feng NEGOTIATION
Munro G MacleadIndiaAmy Elsner QUALIFIED
Adams V KuskoArgentinaAsiya Javayant RENEWAL
Maisha C SlusarskiFranceBernardo Dominic RENEWAL
Nicolas J MaletIndiaElwin Sharvill PROPOSAL
Silvio L FerenczAustraliaAsiya Javayant PROPOSAL
Smith G DilliardGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Cody E Malet
Juan L Shinko
Wickens Z Tollner
Jones N Venere
Smith J Malet
Sinclair K Gillian
Julie I Shinko
Emily W Schemmer
Clifford P Oldroyd
Nicolas U Maclead
Maria I Waycott
Maisha N Stenseth
Nicolas I Malet
Adams N Glick
Clifford L Stockham
Leja O Ruta
Morrow C Royster
Misaki D Iturbide
Rodrigues R Perin
Silvio U Ostrosky
Arvin R Stockham
Alejandro H Foller
Silvio R Schemmer
Rodrigues Q Maclead
Kadeem F Ruta
Aika M Stenseth
David Z Rulapaugh
Octavia P Chui
Silvio Z Darakjy
Silvio D Nestle
Claire H Doe
Johnson S Butt
Cody V Butt
Aditya S Figeroa
Maria P Nicka
Izzy S Glick
Stacey E Rulapaugh
Antonio R Caldarera
Jennifer R Marrier
Nicolas Y Waycott
Johnson D Butt
Ivar O Flosi
Salvatore S Gaucho
Salvatore B Darakjy
Jennifer Y Glick
Darci A Dilliard
Ivar R Sergi
Emily W Dilliard
Ricardo W Ostrosky
Isabel W Marrier
IdCountryDate
1000Brazil2024-04-21
1001Italy2024-04-26
1002India2024-04-11
1003India2024-05-07
1004United Kingdom2024-04-15
1005Germany2024-04-16
1006Germany2024-04-08
1007Argentina2024-04-27
1008United Kingdom2024-04-17
1009Spain2024-05-01
1010United Kingdom2024-04-21
1011Argentina2024-05-05
1012Brazil2024-05-03
1013Germany2024-04-17
1014India2024-04-23
1015France2024-04-24
1016Argentina2024-04-28
1017Australia2024-05-03
1018Spain2024-04-19
1019Argentina2024-04-16
1020Spain2024-04-26
1021Russia2024-05-06
1022Germany2024-04-09
1023Australia2024-05-02
1024Spain2024-05-04
1025Argentina2024-05-05
1026Australia2024-04-19
1027Italy2024-04-21
1028Argentina2024-05-05
1029Canada2024-05-03
1030Argentina2024-04-26
1031Italy2024-04-09
1032Japan2024-04-22
1033France2024-04-23
1034United Kingdom2024-04-12
1035Brazil2024-04-30
1036France2024-04-28
1037Italy2024-04-21
1038Russia2024-04-29
1039India2024-04-23
1040Japan2024-04-12
1041Argentina2024-04-25
1042India2024-04-10
1043Argentina2024-04-17
1044Spain2024-04-28
1045Argentina2024-04-29
1046Argentina2024-04-29
1047Australia2024-04-10
1048Japan2024-04-27
1049Japan2024-05-04

On-Demand Data

NameIdCountryDate
Ivar Y Glick1000India2024-04-18
Kaitlin S Nestle1001France2024-04-25
Adams M Slusarski1002Brazil2024-04-20
Greenwood E Briddick1003Australia2024-04-14
Juan P Kusko1004Russia2024-04-13
Smith H Chui1005France2024-04-20
Leon Z Schemmer1006France2024-04-19
Julie E Gaucho1007Italy2024-05-01
Clifford W Nestle1008India2024-04-21
Stacey P Caldarera1009Australia2024-04-16
Maria X Waycott1010Germany2024-04-29
Rodrigues D Iturbide1011Argentina2024-04-09
Costa B Briddick1012France2024-04-22
Munro N Butt1013France2024-04-21
Maisha F Gillian1014India2024-04-11
Stacey X Perin1015Russia2024-04-29
Sinclair D Nestle1016United Kingdom2024-04-26
Sinclair R Inouye1017Germany2024-04-08
Rodrigues S Caudy1018Canada2024-05-03
Julie R Wieser1019India2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria B SlusarskiUnited KingdomElwin Sharvill UNQUALIFIED
Leon N SergiAustraliaIvan Magalhaes UNQUALIFIED
Izzy D MarrierJapanElwin Sharvill NEGOTIATION
Mujtaba Q FollerSpainXuxue Feng NEW
Jones Z RulapaughRussiaBernardo Dominic NEGOTIATION
Rodrigues K VenereSpainIoni Bowcher UNQUALIFIED
Mayumi D CaudyBrazilStephen Shaw RENEWAL
Cody Z IturbideSpainAmy Elsner UNQUALIFIED
Aruna R TollnerAustraliaStephen Shaw NEGOTIATION
Kaitlin N BriddickAustraliaIoni Bowcher NEGOTIATION
Faith R KuskoArgentinaIoni Bowcher NEW
Ashley V CaudyAustraliaIvan Magalhaes NEW
Misaki D BowleyGermanyStephen Shaw NEW
Izzy W SlusarskiJapanOnyama Limba NEGOTIATION
Stacey T InouyeUnited KingdomXuxue Feng RENEWAL
Johnson Q KolmetzJapanOnyama Limba RENEWAL
Smith X InouyeRussiaBernardo Dominic NEW
Sinclair H VenereCanadaAmy Elsner RENEWAL
Ashley Z ShinkoFranceIvan Magalhaes PROPOSAL
James Y CaudyBrazilOnyama Limba QUALIFIED
Julie R InouyeSpainAnna Fali RENEWAL
Tony S GauchoAustraliaBernardo Dominic RENEWAL
Aruna N NestleSpainAsiya Javayant NEGOTIATION
Izzy Y PerinGermanyAmy Elsner PROPOSAL
Maria E StensethGermanyIvan Magalhaes UNQUALIFIED
Julie B ButtArgentinaStephen Shaw NEGOTIATION
Kaitlin J FlosiFranceAnna Fali QUALIFIED
Rodrigues I WhobreyGermanyElwin Sharvill NEW
Sinclair N SaylorsBrazilBernardo Dominic NEW
Darci B AmigonCanadaXuxue Feng NEGOTIATION
Claire M SchemmerFranceIvan Magalhaes UNQUALIFIED
Sinclair J CaudySpainElwin Sharvill RENEWAL
Aditya R CaldareraArgentinaBernardo Dominic NEGOTIATION
Claire Y GillianFranceOnyama Limba NEW
Kaitlin A FollerBrazilStephen Shaw NEW
Nicolas W MacleadJapanAmy Elsner RENEWAL
Misaki E InouyeCanadaStephen Shaw QUALIFIED
Emily U ChuiAustraliaIoni Bowcher UNQUALIFIED
Aditya A SchemmerUnited KingdomXuxue Feng NEW
David D VenereRussiaIoni Bowcher QUALIFIED

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