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
Izzy W WaycottGermanyElwin Sharvill PROPOSAL
Silvio H IturbideSpainElwin Sharvill UNQUALIFIED
Darci S RimUnited KingdomBernardo Dominic UNQUALIFIED
Aditya Q CampainIndiaIvan Magalhaes QUALIFIED
Nicolas O GlickRussiaOnyama Limba NEW
Ashley L GauchoFranceIvan Magalhaes QUALIFIED
Deepesh T ButtAustraliaBernardo Dominic NEW
Aruna A DilliardRussiaXuxue Feng PROPOSAL
Leon J DilliardUnited KingdomElwin Sharvill RENEWAL
Nicolas U GauchoUnited KingdomAsiya Javayant NEW
Kadeem W FollerArgentinaIvan Magalhaes NEW
Darci Y AlbaresIndiaAmy Elsner UNQUALIFIED
Ashley K PerinJapanAnna Fali RENEWAL
Aika V RimBrazilXuxue Feng NEW
Julie B CampainItalyStephen Shaw QUALIFIED
Adams U BowleyUnited KingdomOnyama Limba UNQUALIFIED
Sinclair T CampainIndiaXuxue Feng NEW
Jefferson V DilliardItalyAnna Fali QUALIFIED
Arvin Z GillianUnited KingdomBernardo Dominic PROPOSAL
Rodrigues L FlosiBrazilElwin Sharvill RENEWAL
Murillo J MaletJapanIoni Bowcher PROPOSAL
James F PoquetteCanadaAnna Fali NEGOTIATION
Claire S FollerCanadaAnna Fali NEGOTIATION
Claire C RimArgentinaElwin Sharvill UNQUALIFIED
Faith U CampainUnited KingdomStephen Shaw RENEWAL
Emily K RulapaughFranceAsiya Javayant PROPOSAL
Mujtaba V NestleIndiaIoni Bowcher PROPOSAL
Antonio U MaletArgentinaBernardo Dominic NEW
Leon A MorascaCanadaAnna Fali RENEWAL
Cody B IturbideJapanOnyama Limba QUALIFIED
Ivar S CaldareraIndiaAsiya Javayant NEW
Izzy J MarrierJapanElwin Sharvill NEW
Greenwood L NestleRussiaElwin Sharvill PROPOSAL
Nicolas S IturbideAustraliaAsiya Javayant QUALIFIED
Tony X ButtJapanAmy Elsner NEW
Wickens U FollerGermanyAsiya Javayant NEGOTIATION
Wickens K RulapaughJapanAmy Elsner NEW
James A GauchoGermanyIoni Bowcher QUALIFIED
Juan P InouyeAustraliaAmy Elsner PROPOSAL
Deepesh S OstroskyJapanXuxue Feng RENEWAL
Silvio Q DoeUnited KingdomIoni Bowcher RENEWAL
Nicolas R RimIndiaAnna Fali NEW
Munro J DilliardJapanAsiya Javayant UNQUALIFIED
Morrow W BologniaAustraliaAmy Elsner QUALIFIED
Morrow O ButtUnited KingdomAsiya Javayant QUALIFIED
Francesco X RoysterIndiaXuxue Feng NEGOTIATION
Aditya F ButtBrazilAsiya Javayant NEW
Aditya D CampainItalyAsiya Javayant UNQUALIFIED
Tony K StensethAustraliaStephen Shaw NEW
Darci J OldroydSpainAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi Y WieserFranceAsiya Javayant PROPOSAL
Mayumi W StensethGermanyIvan Magalhaes RENEWAL
Aika Z KuskoSpainStephen Shaw UNQUALIFIED
Aditya A FerenczAustraliaElwin Sharvill PROPOSAL
Johnson C GauchoAustraliaStephen Shaw NEW
Jennifer U ButtBrazilElwin Sharvill UNQUALIFIED
Emily E DilliardFranceStephen Shaw RENEWAL
Faith D GillianAustraliaAmy Elsner NEGOTIATION
Ivar H FollerArgentinaOnyama Limba RENEWAL
Murillo B AmigonSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika G GarufiSpain2024-04-23Feltz Printing Service NEW78Xuxue Feng
1001Sinclair U WaycottItaly2024-04-23Truhlar And Truhlar Attys RENEWAL32Onyama Limba
1002Aruna X WieserBrazil2024-04-14Commercial Press QUALIFIED32Asiya Javayant
1003Ashley O GlickFrance2024-04-13Commercial Press UNQUALIFIED54Amy Elsner
1004Misaki C OldroydIndia2024-04-04Buckley Miller Wright NEGOTIATION67Xuxue Feng
1005Faith H FollerCanada2024-04-27Printing Dimensions PROPOSAL83Elwin Sharvill
1006Murillo X MacleadFrance2024-04-12King, Christopher A Esq QUALIFIED72Ioni Bowcher
1007Morrow K VocelkaSpain2024-04-13Truhlar And Truhlar Attys PROPOSAL52Onyama Limba
1008Jones O RulapaughBrazil2024-04-07Feltz Printing Service RENEWAL57Bernardo Dominic
1009Adams Y WieserIndia2024-04-17Buckley Miller Wright PROPOSAL55Bernardo Dominic
1010Octavia U AlbaresItaly2024-04-05Feiner Bros RENEWAL66Stephen Shaw
1011Stacey I CaudyUnited Kingdom2024-04-21Rangoni Of Florence QUALIFIED17Amy Elsner
1012Rodrigues B GillianIndia2024-04-15Chemel, James L Cpa RENEWAL43Anna Fali
1013Maria U AlbaresCanada2024-04-16Feiner Bros UNQUALIFIED80Xuxue Feng
1014Rodrigues G RimBrazil2024-04-09Buckley Miller Wright UNQUALIFIED18Anna Fali
1015Stacey Z PerinFrance2024-04-05Chemel, James L Cpa QUALIFIED73Bernardo Dominic
1016Kaitlin M WaycottUnited Kingdom2024-04-09Morlong Associates PROPOSAL96Amy Elsner
1017Greenwood R OstroskyBrazil2024-04-04Chapman, Ross E Esq RENEWAL77Elwin Sharvill
1018Murillo W DarakjyAustralia2024-04-13Buckley Miller Wright NEGOTIATION15Stephen Shaw
1019Kadeem K RulapaughSpain2024-04-06Feltz Printing Service RENEWAL5Bernardo Dominic
1020David S FerenczBrazil2024-04-28Morlong Associates UNQUALIFIED32Stephen Shaw
1021Deepesh Y NestleCanada2024-04-21Morlong Associates NEGOTIATION17Onyama Limba
1022Smith F IturbideCanada2024-04-29Commercial Press UNQUALIFIED63Elwin Sharvill
1023Darci M CaudyFrance2024-04-17Dorl, James J Esq QUALIFIED25Bernardo Dominic
1024Emily V SchemmerFrance2024-04-03Chapman, Ross E Esq QUALIFIED68Onyama Limba
1025Clifford M DoeJapan2024-04-21Feltz Printing Service NEW92Ioni Bowcher
1026Arvin I CaudyRussia2024-04-22Commercial Press PROPOSAL34Ioni Bowcher
1027Wickens A WaycottIndia2024-04-28Chanay, Jeffrey A Esq QUALIFIED21Stephen Shaw
1028Kaitlin H PerinUnited Kingdom2024-04-29Printing Dimensions UNQUALIFIED5Anna Fali
1029Clifford K WieserIndia2024-04-06Rangoni Of Florence RENEWAL35Amy Elsner
1030Stacey P GillianArgentina2024-04-03Feiner Bros RENEWAL44Ioni Bowcher
1031Murillo S PaprockiRussia2024-04-24Chanay, Jeffrey A Esq PROPOSAL67Asiya Javayant
1032Salvatore A SchemmerCanada2024-04-23Feiner Bros QUALIFIED69Anna Fali
1033Misaki D RoysterUnited Kingdom2024-04-06Printing Dimensions QUALIFIED4Anna Fali
1034Maria R StockhamArgentina2024-04-09Morlong Associates PROPOSAL91Elwin Sharvill
1035Ivar O GlickJapan2024-04-05Printing Dimensions NEGOTIATION4Xuxue Feng
1036Claire Q MarrierAustralia2024-04-02Truhlar And Truhlar Attys PROPOSAL40Xuxue Feng
1037Aditya R PoquetteRussia2024-04-16Chemel, James L Cpa NEGOTIATION85Amy Elsner
1038Sinclair Q OstroskyItaly2024-04-23Rangoni Of Florence PROPOSAL87Stephen Shaw
1039Ivar K GauchoFrance2024-04-17Rousseaux, Michael Esq PROPOSAL10Asiya Javayant
1040Ivar J MarrierSpain2024-04-09Benton, John B Jr RENEWAL62Bernardo Dominic
1041James O NickaUnited Kingdom2024-04-29Chapman, Ross E Esq NEW50Asiya Javayant
1042Jefferson W FollerAustralia2024-04-23Chapman, Ross E Esq QUALIFIED95Xuxue Feng
1043Octavia W CampainRussia2024-04-23Chanay, Jeffrey A Esq NEW60Anna Fali
1044Antonio L MaletArgentina2024-04-13Chanay, Jeffrey A Esq QUALIFIED62Bernardo Dominic
1045Jones L VenereIndia2024-04-18Morlong Associates RENEWAL27Bernardo Dominic
1046Alejandro K StensethCanada2024-04-09Benton, John B Jr NEW62Elwin Sharvill
1047Murillo R RulapaughAustralia2024-04-16Feltz Printing Service RENEWAL92Anna Fali
1048Alejandro M SaylorsItaly2024-04-23Rousseaux, Michael Esq NEGOTIATION12Xuxue Feng
1049Greenwood M CaudyGermany2024-04-23Buckley Miller Wright NEGOTIATION20Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna Y KuskoItalyAsiya Javayant PROPOSAL
Maria X KolmetzRussiaAsiya Javayant NEW
Cody B FigeroaJapanOnyama Limba QUALIFIED
Jeanfrancois K VenereAustraliaIvan Magalhaes QUALIFIED
Cody U InouyeItalyIoni Bowcher UNQUALIFIED
Cody R MaletFranceElwin Sharvill PROPOSAL
Clifford N BologniaBrazilOnyama Limba UNQUALIFIED
Leja J MarrierGermanyIvan Magalhaes QUALIFIED
Juan D RutaGermanyBernardo Dominic NEGOTIATION
David E GlickBrazilAsiya Javayant QUALIFIED
Izzy Q InouyeGermanyXuxue Feng NEGOTIATION
Francesco D RulapaughAustraliaIvan Magalhaes NEGOTIATION
Maria R PoquetteArgentinaStephen Shaw NEGOTIATION
Kaitlin F PerinSpainAmy Elsner UNQUALIFIED
Tony M AlbaresIndiaIoni Bowcher NEGOTIATION
Rodrigues S RutaRussiaAmy Elsner NEGOTIATION
Faith M MacleadItalyIoni Bowcher UNQUALIFIED
Maria S BriddickJapanAmy Elsner QUALIFIED
Greenwood L RoysterCanadaIvan Magalhaes NEW
Morrow H StensethBrazilElwin Sharvill NEGOTIATION
Murillo I MorascaAustraliaIoni Bowcher QUALIFIED
Morrow S OldroydAustraliaXuxue Feng UNQUALIFIED
Rodrigues D SaylorsIndiaIvan Magalhaes NEW
Tony L MacleadJapanIoni Bowcher PROPOSAL
Octavia O RulapaughCanadaXuxue Feng NEGOTIATION
Greenwood K InouyeBrazilAsiya Javayant NEW
James Q MacleadAustraliaXuxue Feng UNQUALIFIED
Munro S FlosiArgentinaXuxue Feng UNQUALIFIED
Alejandro I FollerIndiaAnna Fali QUALIFIED
Maisha M PerinSpainElwin Sharvill RENEWAL
Maria J GarufiSpainElwin Sharvill PROPOSAL
Ivar P RimItalyAmy Elsner NEGOTIATION
Ashley D NestleJapanIoni Bowcher NEGOTIATION
Isabel H GillianJapanIvan Magalhaes UNQUALIFIED
Aruna Y NickaRussiaStephen Shaw NEGOTIATION
Deepesh F ChuiCanadaElwin Sharvill RENEWAL
Misaki Y GarufiGermanyAsiya Javayant PROPOSAL
Aika K VocelkaIndiaAnna Fali NEGOTIATION
Francesco W RulapaughSpainIvan Magalhaes PROPOSAL
Jefferson F MacleadItalyStephen Shaw RENEWAL
Johnson H FigeroaUnited KingdomOnyama Limba QUALIFIED
Emily K MarrierSpainAmy Elsner QUALIFIED
Kaitlin S CaudyArgentinaIvan Magalhaes UNQUALIFIED
Salvatore R SaylorsSpainIoni Bowcher NEGOTIATION
Mayumi C RutaUnited KingdomBernardo Dominic QUALIFIED
Maria G GarufiFranceAsiya Javayant NEW
Murillo Q DarakjyCanadaAmy Elsner UNQUALIFIED
Silvio J PoquetteCanadaStephen Shaw NEW
Morrow I WaycottItalyAsiya Javayant UNQUALIFIED
Salvatore E ButtArgentinaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Adams I Albares
Misaki H Glick
Misaki M Schemmer
Maisha G Ostrosky
Claire R Stenseth
Emily J Poquette
Adams H Kolmetz
Mayumi O Bowley
Rodrigues J Slusarski
Aruna K Foller
Claire T Royster
Claire L Briddick
Francesco L Garufi
Cody I Caldarera
Arvin U Paprocki
Costa K Stockham
Chavez Z Schemmer
Leja H Albares
Julie B Garufi
Tony Q Briddick
Deepesh J Whobrey
Aditya J Campain
Adams H Foller
Misaki M Kusko
Arvin R Morasca
Cody L Dilliard
Murillo J Glick
David Q Albares
Munro Y Rim
Darci P Caldarera
Smith K Ruta
Octavia V Wieser
Leja G Caudy
Munro H Marrier
Maria M Slusarski
Stacey L Whobrey
Leja J Caudy
Salvatore Q Maclead
Leon S Nestle
Johnson Q Caldarera
Antonio K Dilliard
Leon Q Wieser
Leja P Malet
Ivar D Maclead
Costa W Nicka
Jones J Saylors
Sinclair J Paprocki
Francesco S Sergi
Murillo W Venere
Ricardo B Campain
IdCountryDate
1000Russia2024-04-17
1001India2024-04-02
1002Italy2024-04-20
1003Brazil2024-04-07
1004France2024-04-22
1005Germany2024-04-05
1006Brazil2024-04-14
1007Argentina2024-04-01
1008Brazil2024-04-08
1009United Kingdom2024-04-01
1010India2024-04-13
1011Argentina2024-04-11
1012Russia2024-04-13
1013Russia2024-04-25
1014Italy2024-04-03
1015Australia2024-04-18
1016Argentina2024-04-22
1017Japan2024-04-04
1018France2024-04-16
1019Australia2024-04-26
1020Italy2024-04-19
1021Japan2024-04-10
1022India2024-04-15
1023India2024-04-24
1024United Kingdom2024-04-14
1025Argentina2024-04-02
1026France2024-04-14
1027France2024-04-09
1028Spain2024-04-05
1029France2024-04-19
1030France2024-04-25
1031Argentina2024-04-27
1032India2024-04-02
1033France2024-04-02
1034Canada2024-04-03
1035Argentina2024-04-17
1036Japan2024-04-30
1037Russia2024-04-14
1038United Kingdom2024-04-26
1039Italy2024-04-28
1040India2024-04-21
1041Russia2024-04-14
1042Spain2024-04-01
1043France2024-04-15
1044Brazil2024-04-20
1045Japan2024-04-09
1046Argentina2024-04-21
1047Japan2024-04-13
1048United Kingdom2024-04-30
1049Argentina2024-04-18

On-Demand Data

NameIdCountryDate
Greenwood R Nicka1000United Kingdom2024-04-09
Kaitlin E Gaucho1001Brazil2024-04-16
Maria U Briddick1002Germany2024-04-02
Costa V Darakjy1003Argentina2024-04-03
Deepesh E Nicka1004Argentina2024-04-28
Rodrigues P Slusarski1005Spain2024-04-08
Jefferson S Malet1006India2024-04-27
Morrow H Campain1007Spain2024-04-05
Jennifer K Rim1008Argentina2024-04-07
Sinclair Q Shinko1009Argentina2024-04-12
Cody A Briddick1010Italy2024-04-01
Alejandro Y Bolognia1011Canada2024-04-26
Claire Z Chui1012Brazil2024-04-07
Tony G Dilliard1013France2024-04-18
Alejandro R Ruta1014Argentina2024-04-29
Francesco P Ostrosky1015France2024-04-14
Emily X Caudy1016Italy2024-04-23
Julie A Marrier1017India2024-04-20
Adams A Gillian1018United Kingdom2024-04-22
Darci R Oldroyd1019France2024-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel C WaycottGermanyAnna Fali UNQUALIFIED
Antonio W SergiRussiaIoni Bowcher RENEWAL
Misaki G ChuiSpainElwin Sharvill PROPOSAL
Octavia N CaldareraAustraliaOnyama Limba QUALIFIED
Aruna U MaletJapanStephen Shaw NEGOTIATION
Clifford I MaletArgentinaIoni Bowcher RENEWAL
Julie F RoysterCanadaAsiya Javayant RENEWAL
Aruna F MarrierIndiaAsiya Javayant NEGOTIATION
Smith W KolmetzAustraliaBernardo Dominic UNQUALIFIED
Clifford O MaletIndiaAnna Fali QUALIFIED
Cody P ButtGermanyBernardo Dominic RENEWAL
Sinclair L TollnerAustraliaIvan Magalhaes QUALIFIED
Faith P StensethGermanyBernardo Dominic PROPOSAL
Juan K RulapaughCanadaOnyama Limba RENEWAL
Salvatore G SaylorsGermanyIoni Bowcher PROPOSAL
Antonio H FlosiGermanyAnna Fali NEGOTIATION
Tony Z TollnerRussiaStephen Shaw NEW
Leon G FollerUnited KingdomOnyama Limba PROPOSAL
Claire L AmigonUnited KingdomAsiya Javayant NEW
Aditya N NickaSpainAsiya Javayant QUALIFIED
Claire Y MarrierJapanAsiya Javayant NEGOTIATION
Leja K GlickItalyBernardo Dominic PROPOSAL
Alejandro G RutaFranceStephen Shaw NEGOTIATION
Francesco M DoeJapanElwin Sharvill RENEWAL
Aika J FigeroaSpainStephen Shaw NEW
Isabel V CaudySpainAmy Elsner UNQUALIFIED
Kaitlin E NickaRussiaXuxue Feng QUALIFIED
Chavez M ButtSpainBernardo Dominic RENEWAL
Octavia K StockhamArgentinaStephen Shaw UNQUALIFIED
Leja J RutaRussiaAsiya Javayant RENEWAL
Cody K TollnerBrazilStephen Shaw NEW
Alejandro S AmigonJapanIoni Bowcher PROPOSAL
Stacey I NestleIndiaBernardo Dominic RENEWAL
Ivar V CaldareraGermanyIoni Bowcher NEGOTIATION
Mayumi X WaycottArgentinaAnna Fali PROPOSAL
Clifford B KuskoBrazilAsiya Javayant NEW
James N FollerFranceOnyama Limba RENEWAL
Emily K OstroskyRussiaStephen Shaw NEW
Silvio T MorascaCanadaAmy Elsner NEW
Rodrigues D KuskoFranceOnyama Limba 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>