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 Q DoeCanadaElwin Sharvill QUALIFIED
Ivar J AmigonFranceStephen Shaw RENEWAL
Isabel O MaletGermanyXuxue Feng NEW
Misaki P SchemmerBrazilElwin Sharvill RENEWAL
Octavia P WieserItalyOnyama Limba NEGOTIATION
Ricardo K WaycottSpainIvan Magalhaes NEGOTIATION
Claire H GillianSpainIvan Magalhaes RENEWAL
Stacey X IturbideUnited KingdomBernardo Dominic NEGOTIATION
Kaitlin X GlickArgentinaStephen Shaw PROPOSAL
Smith R RimRussiaAmy Elsner NEW
James O GlickCanadaXuxue Feng QUALIFIED
Misaki L StensethArgentinaXuxue Feng NEGOTIATION
Cody R GarufiArgentinaAmy Elsner UNQUALIFIED
Ashley O StensethItalyOnyama Limba PROPOSAL
Chavez R NickaJapanXuxue Feng PROPOSAL
Aruna G KuskoGermanyStephen Shaw PROPOSAL
Nicolas K KolmetzAustraliaIoni Bowcher PROPOSAL
Aditya A OldroydItalyOnyama Limba NEW
Stacey X PoquetteArgentinaElwin Sharvill NEGOTIATION
Ashley N MacleadBrazilStephen Shaw NEGOTIATION
Maisha Z MarrierGermanyStephen Shaw RENEWAL
Munro H RoysterIndiaIoni Bowcher PROPOSAL
Aditya Y VenereGermanyStephen Shaw PROPOSAL
Arvin G RulapaughCanadaAmy Elsner NEW
Jefferson A KuskoIndiaIoni Bowcher RENEWAL
Kaitlin H DilliardBrazilAmy Elsner UNQUALIFIED
Johnson R GauchoCanadaElwin Sharvill NEGOTIATION
Emily T IturbideJapanIvan Magalhaes UNQUALIFIED
Salvatore Q AmigonRussiaAmy Elsner NEW
Kaitlin V MaletCanadaXuxue Feng QUALIFIED
Octavia G KuskoArgentinaXuxue Feng NEGOTIATION
Darci E DilliardBrazilIvan Magalhaes NEW
Greenwood D KolmetzCanadaBernardo Dominic UNQUALIFIED
Rodrigues R SergiUnited KingdomBernardo Dominic QUALIFIED
Darci J StensethAustraliaStephen Shaw RENEWAL
Mayumi P SaylorsAustraliaIvan Magalhaes PROPOSAL
Silvio K StockhamFranceBernardo Dominic RENEWAL
Silvio K ButtJapanAnna Fali PROPOSAL
Munro B PaprockiBrazilBernardo Dominic NEW
Leja H MaletFranceIoni Bowcher NEGOTIATION
Wickens S MaletSpainAsiya Javayant UNQUALIFIED
Leon D RulapaughArgentinaOnyama Limba RENEWAL
Jeanfrancois B WhobreyRussiaAsiya Javayant UNQUALIFIED
Aika R BowleyIndiaElwin Sharvill UNQUALIFIED
Ricardo N OstroskyUnited KingdomAsiya Javayant QUALIFIED
Jones F OldroydSpainAmy Elsner PROPOSAL
Aika T VocelkaCanadaAnna Fali UNQUALIFIED
Alejandro X ChuiGermanyStephen Shaw NEGOTIATION
David J OldroydJapanXuxue Feng PROPOSAL
Johnson W DarakjyBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem M ShinkoAustraliaAnna Fali UNQUALIFIED
James I TollnerBrazilIvan Magalhaes NEGOTIATION
Ivar W RulapaughCanadaElwin Sharvill QUALIFIED
Ivar W NickaArgentinaBernardo Dominic RENEWAL
Nicolas R NickaArgentinaAmy Elsner RENEWAL
Ricardo L MacleadJapanStephen Shaw PROPOSAL
Rodrigues P ShinkoJapanElwin Sharvill PROPOSAL
Darci Z VocelkaRussiaAnna Fali NEGOTIATION
Wickens V TollnerBrazilElwin Sharvill NEW
Isabel K AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki H BologniaSpain2024-04-01Rousseaux, Michael Esq NEW65Anna Fali
1001Johnson Y CampainArgentina2024-04-01Dorl, James J Esq UNQUALIFIED84Amy Elsner
1002Sinclair B WhobreySpain2024-04-10Morlong Associates RENEWAL52Ivan Magalhaes
1003Juan Y OldroydIndia2024-04-10Chanay, Jeffrey A Esq QUALIFIED98Stephen Shaw
1004Cody L AmigonItaly2024-04-05Chapman, Ross E Esq UNQUALIFIED88Onyama Limba
1005Mujtaba I StockhamArgentina2024-04-07Chanay, Jeffrey A Esq PROPOSAL88Bernardo Dominic
1006James C MacleadArgentina2024-03-27King, Christopher A Esq NEW96Amy Elsner
1007Costa K SaylorsJapan2024-04-05Chapman, Ross E Esq PROPOSAL92Ioni Bowcher
1008Aika R BowleyFrance2024-03-29Rangoni Of Florence NEGOTIATION13Asiya Javayant
1009Sinclair Q OstroskyUnited Kingdom2024-04-16Rousseaux, Michael Esq RENEWAL94Anna Fali
1010Tony H DoeArgentina2024-04-14Benton, John B Jr PROPOSAL55Asiya Javayant
1011Julie C WieserGermany2024-04-10Feiner Bros RENEWAL31Asiya Javayant
1012Leja M ShinkoBrazil2024-04-12Rousseaux, Michael Esq QUALIFIED88Ivan Magalhaes
1013Antonio O DilliardArgentina2024-04-22Benton, John B Jr UNQUALIFIED73Onyama Limba
1014Greenwood X NestleRussia2024-04-08Feltz Printing Service UNQUALIFIED33Bernardo Dominic
1015Costa C MarrierBrazil2024-04-23Buckley Miller Wright NEW55Amy Elsner
1016Murillo K ChuiJapan2024-04-14Rangoni Of Florence NEGOTIATION44Ioni Bowcher
1017Octavia H CampainItaly2024-04-22Printing Dimensions NEGOTIATION18Ivan Magalhaes
1018Clifford D WaycottGermany2024-04-23Buckley Miller Wright NEGOTIATION86Onyama Limba
1019Faith W RimArgentina2024-03-28Rangoni Of Florence QUALIFIED84Anna Fali
1020Juan Z PerinRussia2024-04-01Morlong Associates NEW4Ivan Magalhaes
1021Leja S WieserItaly2024-03-28Commercial Press QUALIFIED96Onyama Limba
1022Aditya I RutaSpain2024-04-02Chemel, James L Cpa QUALIFIED37Onyama Limba
1023Mayumi R GauchoJapan2024-04-08Printing Dimensions NEW75Ioni Bowcher
1024Murillo N PerinFrance2024-04-10Dorl, James J Esq RENEWAL37Elwin Sharvill
1025Ashley L DoeBrazil2024-03-31Printing Dimensions PROPOSAL27Amy Elsner
1026Aruna G RulapaughFrance2024-04-25Chemel, James L Cpa RENEWAL76Elwin Sharvill
1027Julie Z PoquetteAustralia2024-04-09Printing Dimensions QUALIFIED91Ioni Bowcher
1028Leja P TollnerItaly2024-04-13Truhlar And Truhlar Attys NEGOTIATION39Elwin Sharvill
1029Wickens T ChuiRussia2024-04-20Morlong Associates NEGOTIATION32Onyama Limba
1030Isabel V SaylorsFrance2024-04-05Dorl, James J Esq QUALIFIED27Elwin Sharvill
1031Ashley G WhobreyAustralia2024-03-31King, Christopher A Esq NEGOTIATION68Bernardo Dominic
1032Kadeem U AmigonRussia2024-04-04Rangoni Of Florence NEW30Onyama Limba
1033Clifford V CaldareraAustralia2024-04-14Morlong Associates UNQUALIFIED76Amy Elsner
1034Mayumi V ChuiRussia2024-04-21Morlong Associates QUALIFIED43Xuxue Feng
1035Aruna W ShinkoItaly2024-04-11Truhlar And Truhlar Attys PROPOSAL95Elwin Sharvill
1036Adams P NickaGermany2024-04-16Benton, John B Jr NEGOTIATION16Ivan Magalhaes
1037Kadeem H StockhamSpain2024-04-24Commercial Press NEW14Ivan Magalhaes
1038Leon D VocelkaBrazil2024-04-21Commercial Press UNQUALIFIED95Ivan Magalhaes
1039Ashley N SaylorsSpain2024-04-25Rousseaux, Michael Esq UNQUALIFIED59Anna Fali
1040Rodrigues W DilliardBrazil2024-04-16King, Christopher A Esq NEGOTIATION58Ivan Magalhaes
1041Ashley X SaylorsRussia2024-04-04Truhlar And Truhlar Attys QUALIFIED28Ivan Magalhaes
1042Kaitlin J PaprockiAustralia2024-03-31Benton, John B Jr NEW32Amy Elsner
1043Jennifer G RoysterItaly2024-04-10Chapman, Ross E Esq NEGOTIATION18Asiya Javayant
1044Rodrigues F NestleSpain2024-04-19Chapman, Ross E Esq NEGOTIATION91Xuxue Feng
1045Salvatore D SaylorsJapan2024-04-20Morlong Associates QUALIFIED75Ivan Magalhaes
1046Chavez Q BowleyUnited Kingdom2024-03-29Chapman, Ross E Esq NEW21Ioni Bowcher
1047James F ButtItaly2024-03-28Feiner Bros UNQUALIFIED4Anna Fali
1048Aruna E MaletUnited Kingdom2024-04-12Feltz Printing Service UNQUALIFIED91Asiya Javayant
1049Claire Q GauchoJapan2024-03-27Benton, John B Jr QUALIFIED87Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Juan P RimFranceAnna Fali QUALIFIED
Rodrigues B WieserItalyAmy Elsner QUALIFIED
Wickens E FerenczItalyAmy Elsner NEGOTIATION
Ivar G WhobreyItalyAnna Fali UNQUALIFIED
Wickens F DarakjyGermanyAmy Elsner NEW
Greenwood A CaudyUnited KingdomIvan Magalhaes QUALIFIED
Stacey H ChuiArgentinaAmy Elsner PROPOSAL
Claire L MaletGermanyXuxue Feng UNQUALIFIED
Aika C IturbideIndiaStephen Shaw NEGOTIATION
James K WaycottJapanOnyama Limba PROPOSAL
Adams P BologniaCanadaElwin Sharvill NEGOTIATION
Antonio R KuskoSpainStephen Shaw NEGOTIATION
Nicolas G SaylorsAustraliaAmy Elsner QUALIFIED
Greenwood O GillianCanadaStephen Shaw NEW
Kadeem F StensethFranceAmy Elsner UNQUALIFIED
Sinclair F SaylorsIndiaAsiya Javayant NEW
James C ShinkoArgentinaBernardo Dominic NEW
Ashley O DoeAustraliaXuxue Feng NEW
Kaitlin L FerenczAustraliaAnna Fali QUALIFIED
Silvio V ChuiFranceElwin Sharvill NEW
Ivar F FollerItalyIvan Magalhaes PROPOSAL
Faith Q RoysterUnited KingdomXuxue Feng NEGOTIATION
Nicolas D WieserRussiaOnyama Limba NEGOTIATION
Alejandro A SchemmerSpainOnyama Limba QUALIFIED
Emily F DoeIndiaXuxue Feng NEW
Johnson L AmigonAustraliaIvan Magalhaes UNQUALIFIED
Jefferson L RimArgentinaIoni Bowcher NEGOTIATION
Murillo H ButtSpainAnna Fali UNQUALIFIED
Jeanfrancois L IturbideGermanyXuxue Feng PROPOSAL
Juan X SlusarskiBrazilAnna Fali NEGOTIATION
Ashley J VocelkaArgentinaIvan Magalhaes NEGOTIATION
Ivar M FigeroaSpainStephen Shaw NEW
Ivar D GlickSpainElwin Sharvill QUALIFIED
Ricardo Y RoysterJapanElwin Sharvill RENEWAL
Salvatore W FlosiRussiaStephen Shaw PROPOSAL
Smith S NickaAustraliaIvan Magalhaes RENEWAL
Claire M CaldareraItalyBernardo Dominic NEGOTIATION
James A WhobreyBrazilOnyama Limba UNQUALIFIED
Alejandro R SaylorsGermanyIoni Bowcher NEGOTIATION
Rodrigues B DoeAustraliaOnyama Limba NEW
Jennifer H DoeBrazilAmy Elsner PROPOSAL
Cody N SaylorsUnited KingdomIoni Bowcher NEW
Morrow R BriddickBrazilBernardo Dominic NEGOTIATION
Tony V CaldareraSpainBernardo Dominic RENEWAL
David B PoquetteItalyIvan Magalhaes RENEWAL
Salvatore O AmigonUnited KingdomAmy Elsner QUALIFIED
Octavia Q NickaBrazilAnna Fali NEGOTIATION
Johnson F PaprockiCanadaXuxue Feng NEW
Alejandro C BowleyRussiaOnyama Limba UNQUALIFIED
Tony Y CaldareraGermanyIoni Bowcher RENEWAL
Frozen Columns
Name
Antonio D Saylors
Leon N Maclead
Claire Z Butt
Mayumi D Butt
Leon K Bolognia
Munro V Poquette
Greenwood N Vocelka
Maisha U Tollner
Stacey S Flosi
Murillo M Caldarera
Faith Y Caldarera
Rodrigues Y Royster
Faith L Morasca
Aika F Malet
Darci T Waycott
Stacey L Malet
Ashley Y Butt
Aruna F Maclead
Stacey P Dilliard
David T Figeroa
Aika S Maclead
Emily W Venere
Kaitlin E Stenseth
Jones B Ostrosky
Maria E Doe
Jeanfrancois P Wieser
Emily N Malet
Maria Q Royster
Sinclair Y Slusarski
Costa M Maclead
Leja H Garufi
Juan V Malet
Adams I Oldroyd
Mayumi P Inouye
Aruna U Ferencz
Munro E Glick
Munro Y Nestle
Isabel W Foller
Leon S Slusarski
Octavia N Waycott
Salvatore A Royster
Kadeem M Gaucho
Rodrigues M Poquette
Izzy V Figeroa
Maria L Venere
Smith R Waycott
Ashley Q Gaucho
Emily M Kusko
Aika K Doe
Cody Q Ostrosky
IdCountryDate
1000Brazil2024-04-16
1001Spain2024-03-27
1002Japan2024-03-30
1003Argentina2024-04-05
1004United Kingdom2024-04-19
1005Italy2024-04-20
1006India2024-04-12
1007Japan2024-03-28
1008Spain2024-04-07
1009France2024-03-27
1010Germany2024-04-08
1011Canada2024-03-28
1012Russia2024-04-24
1013Brazil2024-04-24
1014France2024-03-29
1015Japan2024-04-19
1016Spain2024-03-27
1017Italy2024-03-27
1018India2024-04-20
1019India2024-04-01
1020Germany2024-04-19
1021Russia2024-04-17
1022India2024-04-05
1023Australia2024-04-08
1024Argentina2024-04-15
1025Spain2024-04-20
1026Spain2024-04-09
1027Russia2024-04-04
1028India2024-04-12
1029Germany2024-03-31
1030United Kingdom2024-04-25
1031India2024-04-10
1032Brazil2024-03-30
1033Australia2024-04-13
1034France2024-04-05
1035France2024-04-01
1036Canada2024-04-17
1037India2024-04-19
1038Germany2024-04-04
1039Spain2024-04-24
1040Canada2024-03-31
1041United Kingdom2024-04-03
1042Canada2024-04-08
1043Canada2024-03-30
1044India2024-04-23
1045Japan2024-04-15
1046India2024-03-28
1047Canada2024-04-22
1048Canada2024-04-10
1049France2024-04-24

On-Demand Data

NameIdCountryDate
Cody S Kusko1000Japan2024-04-03
Clifford Y Stockham1001Canada2024-04-23
David J Figeroa1002Russia2024-04-08
Arvin G Whobrey1003Germany2024-04-17
Salvatore R Amigon1004United Kingdom2024-03-30
Nicolas D Maclead1005Spain2024-04-23
Chavez A Caldarera1006United Kingdom2024-04-08
Stacey A Vocelka1007France2024-03-30
Ricardo O Garufi1008Russia2024-03-31
Cody C Vocelka1009Canada2024-04-02
David O Malet1010France2024-04-07
David P Oldroyd1011India2024-04-11
Aditya J Kusko1012Spain2024-03-28
Silvio N Morasca1013Australia2024-04-10
Jones N Wieser1014Germany2024-03-28
Leon G Paprocki1015Canada2024-03-30
Antonio E Gillian1016Italy2024-04-17
Aika W Iturbide1017Spain2024-04-10
Smith V Shinko1018Australia2024-04-22
Izzy F Rim1019Argentina2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore D StockhamSpainAsiya Javayant QUALIFIED
Francesco W AmigonGermanyAmy Elsner NEW
Julie I FollerArgentinaAnna Fali UNQUALIFIED
Silvio Q FollerAustraliaXuxue Feng RENEWAL
Jones H ButtCanadaAsiya Javayant NEGOTIATION
Juan F FlosiAustraliaStephen Shaw RENEWAL
Mujtaba N SchemmerGermanyBernardo Dominic PROPOSAL
Greenwood L VocelkaItalyAsiya Javayant NEGOTIATION
Clifford P SaylorsGermanyAmy Elsner PROPOSAL
Smith G WieserSpainXuxue Feng PROPOSAL
Nicolas Z BowleyItalyElwin Sharvill RENEWAL
Ivar P TollnerCanadaElwin Sharvill QUALIFIED
Maria P RulapaughFranceStephen Shaw PROPOSAL
Nicolas G WhobreyCanadaElwin Sharvill QUALIFIED
Deepesh Y BriddickFranceIvan Magalhaes PROPOSAL
Ricardo U PoquetteUnited KingdomStephen Shaw PROPOSAL
Julie R RutaGermanyIoni Bowcher UNQUALIFIED
Antonio W AlbaresUnited KingdomAmy Elsner NEGOTIATION
Leon W FlosiIndiaStephen Shaw NEW
David J VenereGermanyBernardo Dominic PROPOSAL
Mayumi T GauchoGermanyXuxue Feng PROPOSAL
Misaki H GarufiItalyAmy Elsner NEW
Jeanfrancois P SchemmerIndiaAmy Elsner PROPOSAL
Ricardo D KuskoRussiaOnyama Limba UNQUALIFIED
Rodrigues P BowleyAustraliaIvan Magalhaes NEW
Jeanfrancois I MorascaAustraliaXuxue Feng RENEWAL
Antonio T AlbaresRussiaIvan Magalhaes NEGOTIATION
Greenwood K DoeBrazilElwin Sharvill RENEWAL
Maisha U VocelkaArgentinaBernardo Dominic NEW
Misaki G TollnerUnited KingdomElwin Sharvill RENEWAL
Izzy C CaudyAustraliaStephen Shaw NEGOTIATION
Chavez L SlusarskiArgentinaElwin Sharvill RENEWAL
Salvatore G KolmetzIndiaBernardo Dominic NEW
Mayumi A DilliardFranceAsiya Javayant PROPOSAL
Misaki S VenereGermanyStephen Shaw NEW
Aika P BowleyArgentinaXuxue Feng PROPOSAL
Antonio K DoeJapanIvan Magalhaes RENEWAL
Adams O VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Francesco E CaldareraUnited KingdomElwin Sharvill NEW
Claire N TollnerArgentinaAsiya Javayant PROPOSAL

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