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
Munro J ChuiAustraliaAmy Elsner NEW
Alejandro L MorascaCanadaAmy Elsner NEW
Leja I BriddickUnited KingdomIoni Bowcher QUALIFIED
David A StensethFranceAmy Elsner RENEWAL
Jones D ButtUnited KingdomStephen Shaw PROPOSAL
Aika H VocelkaIndiaOnyama Limba PROPOSAL
Kaitlin X VenereBrazilAsiya Javayant NEW
Clifford Q GlickUnited KingdomElwin Sharvill NEGOTIATION
Johnson N SchemmerGermanyIoni Bowcher PROPOSAL
Alejandro T RimCanadaElwin Sharvill NEW
Salvatore X StockhamIndiaIvan Magalhaes NEGOTIATION
Julie G MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas U SlusarskiJapanStephen Shaw QUALIFIED
Clifford Z MorascaUnited KingdomIvan Magalhaes RENEWAL
Juan M MacleadCanadaAmy Elsner NEGOTIATION
Julie Y SchemmerRussiaBernardo Dominic RENEWAL
David R NickaFranceIoni Bowcher UNQUALIFIED
James U DarakjyAustraliaIoni Bowcher UNQUALIFIED
Costa N OstroskySpainIoni Bowcher QUALIFIED
Johnson B RulapaughGermanyAmy Elsner NEGOTIATION
Leja P DilliardGermanyIvan Magalhaes NEGOTIATION
Leja M DarakjyArgentinaAmy Elsner PROPOSAL
Arvin W BologniaAustraliaAmy Elsner UNQUALIFIED
Jones T MacleadGermanyAmy Elsner PROPOSAL
Murillo F SlusarskiItalyBernardo Dominic RENEWAL
Leon L NickaIndiaIoni Bowcher UNQUALIFIED
Alejandro K KolmetzBrazilElwin Sharvill PROPOSAL
Isabel I DoeUnited KingdomIvan Magalhaes NEGOTIATION
Emily E PoquetteJapanIvan Magalhaes UNQUALIFIED
Emily H WhobreyUnited KingdomBernardo Dominic NEW
Maisha C RulapaughAustraliaStephen Shaw PROPOSAL
Murillo Z PerinAustraliaIoni Bowcher PROPOSAL
Chavez P NickaAustraliaAnna Fali PROPOSAL
Alejandro H RimArgentinaStephen Shaw UNQUALIFIED
Silvio G DoeGermanyBernardo Dominic PROPOSAL
Adams M NestleRussiaStephen Shaw PROPOSAL
Johnson B NestleArgentinaIoni Bowcher PROPOSAL
Maisha V KuskoBrazilAnna Fali NEGOTIATION
Emily L StockhamArgentinaBernardo Dominic NEW
Tony B OstroskyAustraliaBernardo Dominic NEGOTIATION
Emily U TollnerBrazilAnna Fali UNQUALIFIED
James F BowleyItalyBernardo Dominic RENEWAL
David Q GauchoArgentinaAnna Fali NEW
Aditya V FlosiCanadaBernardo Dominic QUALIFIED
Ivar S OldroydGermanyElwin Sharvill QUALIFIED
Nicolas F StensethItalyXuxue Feng QUALIFIED
Kadeem R PaprockiCanadaAsiya Javayant QUALIFIED
Maria F PaprockiSpainIvan Magalhaes NEW
Mayumi U TollnerGermanyAmy Elsner QUALIFIED
Jennifer J MorascaGermanyIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
James F NestleCanadaXuxue Feng QUALIFIED
Aruna Z PaprockiCanadaBernardo Dominic RENEWAL
Mujtaba P KolmetzArgentinaStephen Shaw NEGOTIATION
Emily Y BowleyCanadaAmy Elsner QUALIFIED
Leja V RutaRussiaElwin Sharvill QUALIFIED
Leja A MacleadGermanyElwin Sharvill NEW
Arvin O GlickFranceOnyama Limba PROPOSAL
Sinclair T BologniaBrazilXuxue Feng NEW
Leon U RimJapanOnyama Limba PROPOSAL
Kaitlin A GarufiAustraliaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois Z StensethAustralia2024-04-09Feltz Printing Service PROPOSAL93Ivan Magalhaes
1001Salvatore N DoeUnited Kingdom2024-04-26Buckley Miller Wright NEW71Xuxue Feng
1002Chavez N KuskoIndia2024-04-23Dorl, James J Esq UNQUALIFIED78Asiya Javayant
1003Aruna Z SergiIndia2024-04-19Morlong Associates NEW49Ivan Magalhaes
1004Wickens U ShinkoBrazil2024-04-02Rousseaux, Michael Esq PROPOSAL65Stephen Shaw
1005Antonio Q ShinkoArgentina2024-04-26Buckley Miller Wright RENEWAL65Stephen Shaw
1006Octavia U ChuiBrazil2024-03-30Rousseaux, Michael Esq NEGOTIATION52Bernardo Dominic
1007Silvio G KuskoItaly2024-03-29Truhlar And Truhlar Attys PROPOSAL7Stephen Shaw
1008Mujtaba I DarakjyRussia2024-04-23Commercial Press PROPOSAL48Amy Elsner
1009Aika M PaprockiFrance2024-04-19Chemel, James L Cpa RENEWAL41Bernardo Dominic
1010Morrow O FollerBrazil2024-04-21Rangoni Of Florence RENEWAL48Amy Elsner
1011David T DoeAustralia2024-04-02Benton, John B Jr RENEWAL24Asiya Javayant
1012Ivar K CaudyFrance2024-04-10Morlong Associates PROPOSAL6Bernardo Dominic
1013Aditya V PerinBrazil2024-03-30Printing Dimensions RENEWAL10Asiya Javayant
1014Darci Z GillianJapan2024-04-14Chanay, Jeffrey A Esq PROPOSAL95Bernardo Dominic
1015Emily I ShinkoArgentina2024-04-23Rangoni Of Florence NEW37Xuxue Feng
1016Silvio S MacleadSpain2024-04-05Chemel, James L Cpa QUALIFIED32Onyama Limba
1017Leja Y WhobreyJapan2024-04-10Printing Dimensions RENEWAL29Ivan Magalhaes
1018Kaitlin S GauchoSpain2024-04-08Benton, John B Jr QUALIFIED71Amy Elsner
1019Francesco M MaletSpain2024-04-09King, Christopher A Esq NEGOTIATION40Stephen Shaw
1020Francesco O SergiGermany2024-04-17Rousseaux, Michael Esq RENEWAL71Anna Fali
1021Johnson W MaletIndia2024-04-15King, Christopher A Esq NEW92Onyama Limba
1022Ashley P MacleadArgentina2024-04-15Morlong Associates UNQUALIFIED87Elwin Sharvill
1023Kaitlin E PoquetteAustralia2024-04-20Dorl, James J Esq UNQUALIFIED48Anna Fali
1024Misaki W RutaBrazil2024-04-21Rousseaux, Michael Esq NEGOTIATION94Ivan Magalhaes
1025Kadeem Z KolmetzIndia2024-04-19King, Christopher A Esq PROPOSAL31Onyama Limba
1026Antonio S MaletFrance2024-04-27Chemel, James L Cpa NEW4Ivan Magalhaes
1027Silvio N RutaArgentina2024-04-17Commercial Press PROPOSAL34Ivan Magalhaes
1028Salvatore T OstroskyAustralia2024-03-31Benton, John B Jr PROPOSAL69Amy Elsner
1029Emily Q VenereBrazil2024-04-16Dorl, James J Esq NEW58Asiya Javayant
1030Greenwood I PoquetteBrazil2024-04-08Truhlar And Truhlar Attys RENEWAL22Onyama Limba
1031Adams I GarufiIndia2024-04-07Feiner Bros NEW58Xuxue Feng
1032Johnson K WhobreyGermany2024-04-19Dorl, James J Esq UNQUALIFIED56Anna Fali
1033Aditya E FerenczJapan2024-04-05Benton, John B Jr NEW20Stephen Shaw
1034Sinclair Z VenereGermany2024-03-31Buckley Miller Wright QUALIFIED16Ioni Bowcher
1035Salvatore D RimRussia2024-04-03Truhlar And Truhlar Attys NEGOTIATION83Onyama Limba
1036Adams A PoquetteCanada2024-04-12King, Christopher A Esq NEGOTIATION67Amy Elsner
1037Munro C DarakjyIndia2024-04-17Buckley Miller Wright NEW77Amy Elsner
1038Mujtaba K NickaArgentina2024-04-19Truhlar And Truhlar Attys NEW77Elwin Sharvill
1039Jeanfrancois G StockhamItaly2024-03-31Feiner Bros NEGOTIATION92Onyama Limba
1040Mujtaba M DilliardArgentina2024-04-14Printing Dimensions UNQUALIFIED86Stephen Shaw
1041Rodrigues Z SergiUnited Kingdom2024-04-08Chemel, James L Cpa NEGOTIATION17Xuxue Feng
1042Salvatore T KolmetzFrance2024-04-07Benton, John B Jr NEW9Anna Fali
1043Greenwood E OldroydJapan2024-04-18Morlong Associates RENEWAL44Xuxue Feng
1044Ricardo K RimIndia2024-03-29Dorl, James J Esq PROPOSAL68Onyama Limba
1045Claire D SaylorsGermany2024-04-22Truhlar And Truhlar Attys PROPOSAL15Ivan Magalhaes
1046Nicolas T ShinkoUnited Kingdom2024-04-10Printing Dimensions NEGOTIATION99Bernardo Dominic
1047Morrow N FigeroaGermany2024-03-30Truhlar And Truhlar Attys PROPOSAL57Ivan Magalhaes
1048Mujtaba H IturbideJapan2024-04-02Printing Dimensions NEW59Bernardo Dominic
1049Juan D SlusarskiUnited Kingdom2024-04-04Rangoni Of Florence NEGOTIATION53Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy M SlusarskiBrazilAsiya Javayant RENEWAL
James T WhobreyRussiaAsiya Javayant QUALIFIED
Aditya G BriddickAustraliaXuxue Feng RENEWAL
Munro V SlusarskiRussiaElwin Sharvill UNQUALIFIED
Alejandro K RimAustraliaIvan Magalhaes PROPOSAL
Alejandro W PoquetteAustraliaBernardo Dominic UNQUALIFIED
Antonio V MaletCanadaStephen Shaw NEW
Chavez C DoeSpainIoni Bowcher QUALIFIED
Emily P PerinIndiaXuxue Feng NEW
Sinclair X FerenczSpainAnna Fali NEW
Antonio W FlosiGermanyElwin Sharvill QUALIFIED
Costa B PerinItalyXuxue Feng UNQUALIFIED
Faith Q RulapaughFranceBernardo Dominic NEGOTIATION
Tony O OldroydRussiaOnyama Limba NEGOTIATION
Julie V RoysterAustraliaBernardo Dominic UNQUALIFIED
Ashley O FlosiCanadaIoni Bowcher PROPOSAL
Izzy O FerenczRussiaElwin Sharvill PROPOSAL
Jones R InouyeArgentinaAmy Elsner QUALIFIED
Mayumi S NickaBrazilBernardo Dominic NEGOTIATION
Francesco M PoquetteAustraliaElwin Sharvill QUALIFIED
Claire B WieserUnited KingdomIoni Bowcher NEGOTIATION
Johnson E DarakjyItalyElwin Sharvill UNQUALIFIED
Tony B MaletArgentinaStephen Shaw NEGOTIATION
Smith G WhobreyItalyElwin Sharvill UNQUALIFIED
Cody T DarakjyBrazilElwin Sharvill RENEWAL
Juan M RimItalyXuxue Feng NEGOTIATION
Silvio M AlbaresUnited KingdomBernardo Dominic PROPOSAL
Aditya R GillianJapanElwin Sharvill NEGOTIATION
Greenwood E MaletJapanAsiya Javayant RENEWAL
Arvin F RimFranceAsiya Javayant RENEWAL
Kaitlin G FigeroaIndiaElwin Sharvill NEW
Morrow L WaycottSpainAmy Elsner PROPOSAL
Rodrigues K BowleyUnited KingdomAmy Elsner QUALIFIED
Silvio V GauchoBrazilOnyama Limba PROPOSAL
Antonio D NestleIndiaAmy Elsner QUALIFIED
David G FerenczFranceAmy Elsner RENEWAL
Darci C KolmetzFranceOnyama Limba NEW
Sinclair S AmigonBrazilXuxue Feng NEW
Izzy J StensethJapanAnna Fali UNQUALIFIED
Ivar S ShinkoGermanyIoni Bowcher PROPOSAL
Ricardo F GarufiGermanyElwin Sharvill RENEWAL
Isabel M OldroydIndiaElwin Sharvill NEW
Francesco M RimGermanyBernardo Dominic NEW
Aruna U OldroydAustraliaElwin Sharvill QUALIFIED
Julie X NestleArgentinaAsiya Javayant QUALIFIED
Wickens D FlosiSpainXuxue Feng QUALIFIED
Juan A MacleadIndiaStephen Shaw RENEWAL
Silvio K FigeroaItalyBernardo Dominic NEW
James H OldroydBrazilOnyama Limba PROPOSAL
Munro S KuskoRussiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Munro X Slusarski
Alejandro M Ruta
Ashley J Gillian
Sinclair F Chui
Francesco H Malet
Mujtaba R Tollner
Cody Z Marrier
Clifford I Vocelka
Smith L Garufi
Alejandro Q Tollner
Jennifer U Malet
Sinclair U Perin
Arvin M Chui
Kadeem X Inouye
Rodrigues C Iturbide
Francesco Q Oldroyd
Arvin T Malet
Morrow A Whobrey
Silvio C Schemmer
Faith C Stenseth
Silvio Q Kusko
Izzy T Ruta
Kadeem L Rulapaugh
Antonio R Vocelka
Faith K Bolognia
Sinclair P Nicka
Deepesh Y Garufi
Murillo F Ruta
Izzy E Slusarski
Johnson N Foller
Sinclair C Ostrosky
Ashley Q Tollner
Izzy Y Sergi
Stacey N Tollner
Jeanfrancois Q Amigon
Antonio H Poquette
Juan W Tollner
Salvatore H Waycott
Ricardo Q Perin
Mayumi K Poquette
Arvin P Doe
Julie P Ruta
Adams T Stockham
Maria B Malet
Arvin X Malet
Leon Q Flosi
Deepesh O Bowley
Ivar N Sergi
Darci Y Chui
Nicolas Q Glick
IdCountryDate
1000United Kingdom2024-04-11
1001Australia2024-04-05
1002Russia2024-04-27
1003Spain2024-04-01
1004Australia2024-04-01
1005Canada2024-04-09
1006Spain2024-04-23
1007Italy2024-04-08
1008Argentina2024-04-23
1009France2024-04-09
1010Russia2024-04-02
1011Germany2024-04-17
1012Germany2024-04-02
1013Spain2024-04-22
1014United Kingdom2024-04-05
1015Germany2024-04-09
1016France2024-04-17
1017Argentina2024-04-01
1018Canada2024-04-09
1019India2024-04-10
1020India2024-04-08
1021Brazil2024-04-08
1022India2024-04-25
1023United Kingdom2024-04-15
1024Germany2024-04-21
1025France2024-03-29
1026Australia2024-04-10
1027Germany2024-04-05
1028Russia2024-04-24
1029India2024-04-03
1030France2024-04-21
1031Argentina2024-04-07
1032France2024-04-04
1033United Kingdom2024-04-14
1034United Kingdom2024-04-09
1035Germany2024-04-21
1036Canada2024-04-27
1037Japan2024-03-29
1038Australia2024-04-16
1039Germany2024-04-16
1040Japan2024-04-16
1041India2024-04-08
1042Spain2024-04-18
1043Japan2024-04-25
1044Germany2024-04-21
1045Italy2024-04-08
1046Brazil2024-04-07
1047France2024-04-08
1048Japan2024-04-16
1049Italy2024-03-30

On-Demand Data

NameIdCountryDate
Salvatore O Kolmetz1000Brazil2024-04-11
Octavia J Royster1001Argentina2024-04-04
Aditya H Rim1002Argentina2024-04-20
Francesco S Malet1003Germany2024-04-17
Aruna O Caudy1004India2024-04-03
Leja G Chui1005France2024-04-12
Wickens U Maclead1006France2024-04-25
Ashley J Bolognia1007Australia2024-04-18
Ivar X Wieser1008Canada2024-04-20
Kaitlin B Campain1009France2024-04-06
Salvatore R Malet1010Japan2024-04-06
Mujtaba Z Venere1011France2024-04-18
Chavez V Royster1012Australia2024-04-25
Ivar W Iturbide1013India2024-04-23
Silvio P Caudy1014Australia2024-04-25
Wickens V Inouye1015India2024-04-16
Ashley R Chui1016Brazil2024-04-07
Ivar T Malet1017Argentina2024-04-20
Leon K Ferencz1018Germany2024-04-21
Chavez S Darakjy1019Germany2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens Z MarrierFranceBernardo Dominic QUALIFIED
Leja T RimBrazilElwin Sharvill PROPOSAL
Sinclair X GillianCanadaStephen Shaw RENEWAL
Mayumi C CaudyItalyBernardo Dominic RENEWAL
Greenwood K SchemmerItalyAsiya Javayant NEGOTIATION
Octavia K CampainAustraliaBernardo Dominic RENEWAL
Jeanfrancois C KolmetzGermanyXuxue Feng NEGOTIATION
Stacey Q StensethIndiaBernardo Dominic RENEWAL
Darci W PaprockiFranceIvan Magalhaes QUALIFIED
Clifford M BriddickItalyXuxue Feng NEW
Cody N RoysterArgentinaIoni Bowcher PROPOSAL
Aruna Y RulapaughRussiaOnyama Limba RENEWAL
Mujtaba K KolmetzGermanyAmy Elsner PROPOSAL
Jeanfrancois F MorascaGermanyStephen Shaw NEGOTIATION
Mayumi B DarakjyAustraliaStephen Shaw QUALIFIED
Tony A CampainGermanyOnyama Limba NEW
Misaki V MarrierCanadaIvan Magalhaes PROPOSAL
Jeanfrancois N KuskoSpainBernardo Dominic RENEWAL
Antonio J BologniaAustraliaAnna Fali NEGOTIATION
Kadeem Z AlbaresSpainElwin Sharvill NEW
Silvio K SchemmerUnited KingdomIoni Bowcher QUALIFIED
Alejandro Q TollnerAustraliaIoni Bowcher RENEWAL
Arvin H GauchoJapanAnna Fali NEGOTIATION
Ivar S MacleadFranceElwin Sharvill PROPOSAL
Ivar D RutaRussiaBernardo Dominic NEW
Faith U StensethAustraliaIoni Bowcher NEW
Tony U NestleIndiaAmy Elsner NEGOTIATION
Jefferson V ShinkoIndiaAmy Elsner RENEWAL
Faith D WaycottArgentinaAsiya Javayant PROPOSAL
Antonio S MaletUnited KingdomAnna Fali NEW
Francesco Z FerenczSpainElwin Sharvill UNQUALIFIED
Mayumi L CampainArgentinaIoni Bowcher QUALIFIED
Arvin G FollerJapanOnyama Limba NEW
Mayumi X DilliardFranceIoni Bowcher QUALIFIED
Deepesh B GarufiItalyOnyama Limba QUALIFIED
Kaitlin M CampainFranceAnna Fali RENEWAL
Greenwood Z NickaCanadaIoni Bowcher PROPOSAL
Stacey M MacleadUnited KingdomAnna Fali UNQUALIFIED
Ivar Z VocelkaArgentinaElwin Sharvill NEGOTIATION
Kadeem Q FlosiJapanAnna Fali 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>