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
Isabel N CaldareraRussiaXuxue Feng UNQUALIFIED
Octavia R RutaRussiaOnyama Limba QUALIFIED
Munro C InouyeBrazilElwin Sharvill PROPOSAL
Costa V RimAustraliaStephen Shaw NEW
Morrow X SlusarskiArgentinaAnna Fali NEGOTIATION
Wickens X RimBrazilAnna Fali NEW
Alejandro B GarufiGermanyIvan Magalhaes RENEWAL
Claire K StensethIndiaXuxue Feng NEGOTIATION
Smith R MacleadRussiaOnyama Limba RENEWAL
Leja D GlickAustraliaStephen Shaw UNQUALIFIED
Kaitlin I SergiRussiaIoni Bowcher RENEWAL
Octavia M ChuiIndiaStephen Shaw NEW
Izzy V FlosiIndiaXuxue Feng NEW
Silvio X RimRussiaAmy Elsner UNQUALIFIED
Ivar I SchemmerCanadaAmy Elsner NEW
Murillo H RulapaughBrazilBernardo Dominic QUALIFIED
Alejandro N BriddickArgentinaStephen Shaw NEW
Jeanfrancois U MaletIndiaAsiya Javayant UNQUALIFIED
Jones T DarakjyAustraliaAsiya Javayant QUALIFIED
Leon G TollnerAustraliaOnyama Limba PROPOSAL
Greenwood I PerinJapanIoni Bowcher NEW
Costa Y RimUnited KingdomStephen Shaw UNQUALIFIED
Johnson Z RoysterJapanAmy Elsner QUALIFIED
Jefferson J RoysterSpainAmy Elsner NEW
James F RutaGermanyIoni Bowcher UNQUALIFIED
Aditya K WaycottRussiaIvan Magalhaes PROPOSAL
Isabel E GillianJapanElwin Sharvill UNQUALIFIED
Deepesh S MarrierItalyIoni Bowcher PROPOSAL
Rodrigues W RutaItalyIvan Magalhaes NEW
Murillo B AmigonFranceBernardo Dominic NEGOTIATION
Octavia H TollnerSpainIvan Magalhaes RENEWAL
Mayumi A NestleItalyXuxue Feng RENEWAL
Greenwood N GlickAustraliaIvan Magalhaes UNQUALIFIED
Tony I BowleyCanadaOnyama Limba PROPOSAL
Mujtaba N BologniaItalyAnna Fali QUALIFIED
Leon J CaudyGermanyStephen Shaw PROPOSAL
Rodrigues W DilliardSpainXuxue Feng PROPOSAL
Tony A AmigonCanadaBernardo Dominic NEGOTIATION
Juan F DoeAustraliaIoni Bowcher PROPOSAL
Francesco Z GarufiUnited KingdomStephen Shaw UNQUALIFIED
Jefferson O StockhamBrazilAmy Elsner QUALIFIED
Isabel N KuskoCanadaIvan Magalhaes PROPOSAL
Rodrigues E MaletFranceIoni Bowcher QUALIFIED
Aruna N GillianAustraliaIvan Magalhaes PROPOSAL
Maria U StockhamAustraliaBernardo Dominic QUALIFIED
Jennifer X ChuiItalyOnyama Limba NEW
Adams R CaldareraRussiaXuxue Feng PROPOSAL
Claire P MarrierRussiaElwin Sharvill NEGOTIATION
Jennifer W AmigonFranceOnyama Limba RENEWAL
Misaki U RutaArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey L SergiArgentinaAnna Fali QUALIFIED
Leon V DilliardJapanElwin Sharvill RENEWAL
Smith A GlickJapanAsiya Javayant QUALIFIED
Morrow Z VocelkaFranceElwin Sharvill UNQUALIFIED
Greenwood Q CampainArgentinaAnna Fali UNQUALIFIED
Claire S GarufiIndiaStephen Shaw RENEWAL
Aditya V VenereSpainIoni Bowcher RENEWAL
Morrow N DarakjyJapanElwin Sharvill RENEWAL
Juan G CaldareraRussiaElwin Sharvill NEW
Cody C DoeIndiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair O BologniaBrazil2024-04-10Benton, John B Jr PROPOSAL17Asiya Javayant
1001Leon T BologniaGermany2024-04-12Chemel, James L Cpa NEGOTIATION34Elwin Sharvill
1002Ashley V NickaRussia2024-04-04Feltz Printing Service RENEWAL85Amy Elsner
1003Kaitlin T StensethArgentina2024-03-27Chemel, James L Cpa NEW82Stephen Shaw
1004Faith B MaletJapan2024-03-29Commercial Press NEW97Ivan Magalhaes
1005Isabel Z MaletJapan2024-03-27Feiner Bros UNQUALIFIED95Stephen Shaw
1006Aruna E FerenczArgentina2024-04-10Buckley Miller Wright RENEWAL12Xuxue Feng
1007Jeanfrancois A KuskoRussia2024-03-27Printing Dimensions QUALIFIED17Ivan Magalhaes
1008Tony S MorascaJapan2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED74Asiya Javayant
1009Greenwood R AlbaresRussia2024-04-14Truhlar And Truhlar Attys QUALIFIED56Ivan Magalhaes
1010Francesco A AmigonJapan2024-04-17Chemel, James L Cpa UNQUALIFIED52Xuxue Feng
1011Clifford L WaycottJapan2024-04-06Commercial Press QUALIFIED8Stephen Shaw
1012Octavia P PoquetteArgentina2024-03-28Truhlar And Truhlar Attys NEGOTIATION53Stephen Shaw
1013Emily Y GlickArgentina2024-04-03Buckley Miller Wright NEGOTIATION1Amy Elsner
1014Izzy H VocelkaArgentina2024-03-28Dorl, James J Esq RENEWAL69Stephen Shaw
1015Wickens W FollerFrance2024-04-09Rousseaux, Michael Esq PROPOSAL11Bernardo Dominic
1016Octavia S MarrierFrance2024-04-11Chemel, James L Cpa UNQUALIFIED2Anna Fali
1017Jennifer M RulapaughItaly2024-03-31Feltz Printing Service UNQUALIFIED38Anna Fali
1018Kadeem L OstroskySpain2024-04-20Feiner Bros NEW13Elwin Sharvill
1019Isabel F KolmetzIndia2024-04-04Dorl, James J Esq PROPOSAL82Asiya Javayant
1020Tony I FollerCanada2024-04-04Feiner Bros NEGOTIATION44Onyama Limba
1021Maisha O RulapaughSpain2024-04-12Chemel, James L Cpa NEGOTIATION17Bernardo Dominic
1022Munro Z WieserFrance2024-04-06Morlong Associates UNQUALIFIED91Anna Fali
1023Aika V OldroydUnited Kingdom2024-04-02Dorl, James J Esq PROPOSAL27Amy Elsner
1024Kaitlin O OstroskyItaly2024-04-09Dorl, James J Esq PROPOSAL27Stephen Shaw
1025Clifford B MaletItaly2024-04-25Dorl, James J Esq QUALIFIED72Ioni Bowcher
1026Darci G OstroskyUnited Kingdom2024-04-15Benton, John B Jr NEGOTIATION67Asiya Javayant
1027Rodrigues B WhobreyIndia2024-04-07Rangoni Of Florence PROPOSAL52Stephen Shaw
1028Tony B FigeroaFrance2024-04-25Feiner Bros RENEWAL31Elwin Sharvill
1029Leja F StockhamItaly2024-04-07King, Christopher A Esq NEW63Asiya Javayant
1030Tony Y NestleCanada2024-04-06Dorl, James J Esq UNQUALIFIED66Bernardo Dominic
1031David V SchemmerArgentina2024-04-24Buckley Miller Wright RENEWAL74Ioni Bowcher
1032Kaitlin Q MaletAustralia2024-04-22King, Christopher A Esq UNQUALIFIED1Amy Elsner
1033Arvin E RoysterFrance2024-03-31Chapman, Ross E Esq UNQUALIFIED59Ioni Bowcher
1034Deepesh N DarakjyAustralia2024-04-12Commercial Press UNQUALIFIED35Ioni Bowcher
1035Leja R WieserCanada2024-04-20Feiner Bros QUALIFIED61Ioni Bowcher
1036Maisha A GarufiIndia2024-04-09Chanay, Jeffrey A Esq PROPOSAL65Elwin Sharvill
1037Kaitlin Y WaycottGermany2024-04-04Buckley Miller Wright NEGOTIATION97Xuxue Feng
1038Clifford G KuskoAustralia2024-04-05Truhlar And Truhlar Attys PROPOSAL62Asiya Javayant
1039Chavez J FollerCanada2024-04-05Rousseaux, Michael Esq NEW61Xuxue Feng
1040Kadeem T GarufiCanada2024-04-01Feltz Printing Service NEW14Asiya Javayant
1041Aika X WieserIndia2024-04-09Feltz Printing Service NEW97Onyama Limba
1042Juan N FerenczItaly2024-04-09King, Christopher A Esq PROPOSAL52Xuxue Feng
1043Jones M CaudyUnited Kingdom2024-04-17Benton, John B Jr NEGOTIATION49Anna Fali
1044Maria Y MorascaGermany2024-04-22Benton, John B Jr RENEWAL99Onyama Limba
1045Leon U AlbaresItaly2024-04-09Morlong Associates NEW18Onyama Limba
1046Rodrigues F GillianRussia2024-04-23Rangoni Of Florence NEGOTIATION18Elwin Sharvill
1047Morrow J PoquetteFrance2024-04-06Rousseaux, Michael Esq RENEWAL73Bernardo Dominic
1048Leon X KolmetzArgentina2024-04-23Printing Dimensions PROPOSAL57Asiya Javayant
1049Clifford P DilliardJapan2024-04-05Rangoni Of Florence PROPOSAL21Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
James I RoysterUnited KingdomStephen Shaw QUALIFIED
Nicolas B WaycottRussiaIvan Magalhaes NEW
Greenwood B WaycottItalyBernardo Dominic NEW
Kaitlin D SchemmerIndiaAmy Elsner QUALIFIED
Alejandro B AmigonArgentinaAsiya Javayant UNQUALIFIED
Izzy Z InouyeAustraliaIoni Bowcher NEW
Silvio U StensethAustraliaAsiya Javayant UNQUALIFIED
Nicolas J GillianAustraliaAsiya Javayant PROPOSAL
Mayumi O PoquetteJapanBernardo Dominic UNQUALIFIED
Salvatore L StensethUnited KingdomXuxue Feng NEGOTIATION
Stacey O MaletGermanyIoni Bowcher PROPOSAL
James J KuskoFranceElwin Sharvill NEW
Jefferson M RulapaughIndiaIvan Magalhaes NEW
Ashley K PoquetteGermanyAsiya Javayant RENEWAL
Adams V SergiFranceAnna Fali NEW
Murillo E NestleFranceBernardo Dominic NEGOTIATION
Kaitlin A PaprockiItalyStephen Shaw UNQUALIFIED
Faith D FlosiGermanyAnna Fali NEW
Mujtaba U SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Aika Y MarrierAustraliaAnna Fali RENEWAL
Arvin D ChuiJapanAnna Fali NEGOTIATION
Leon N CaldareraSpainAnna Fali PROPOSAL
Aditya U CampainJapanXuxue Feng QUALIFIED
Octavia W RimBrazilElwin Sharvill NEGOTIATION
Deepesh E WieserArgentinaOnyama Limba PROPOSAL
Aika R CaldareraArgentinaXuxue Feng RENEWAL
Aika Z GlickItalyXuxue Feng PROPOSAL
Darci B WhobreyGermanyAmy Elsner QUALIFIED
Nicolas T PerinRussiaElwin Sharvill PROPOSAL
Isabel U SlusarskiBrazilAnna Fali PROPOSAL
Chavez B SchemmerCanadaElwin Sharvill NEW
Stacey M BowleyBrazilOnyama Limba UNQUALIFIED
Izzy H StockhamArgentinaIvan Magalhaes PROPOSAL
Morrow R MorascaGermanyAsiya Javayant RENEWAL
David J TollnerCanadaBernardo Dominic NEGOTIATION
Rodrigues T ShinkoRussiaXuxue Feng PROPOSAL
Antonio V InouyeUnited KingdomAsiya Javayant NEGOTIATION
Nicolas I MorascaCanadaXuxue Feng RENEWAL
Chavez P FollerIndiaIvan Magalhaes NEW
Kadeem R DilliardItalyOnyama Limba NEW
Costa P WaycottFranceAsiya Javayant PROPOSAL
Adams Z PerinItalyXuxue Feng QUALIFIED
Emily G RulapaughArgentinaStephen Shaw NEGOTIATION
Sinclair K PerinJapanBernardo Dominic QUALIFIED
Aditya Z BowleySpainElwin Sharvill PROPOSAL
Ashley Z CampainSpainAnna Fali RENEWAL
Antonio P GarufiIndiaElwin Sharvill RENEWAL
Johnson Y VenereFranceAmy Elsner NEGOTIATION
Emily Q RoysterCanadaIoni Bowcher NEW
Salvatore G WhobreyItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Cody D Garufi
Kadeem Z Morasca
Maria O Sergi
Julie H Nicka
Darci Y Iturbide
Maria G Caudy
Mujtaba A Shinko
Arvin B Rulapaugh
Misaki U Foller
Misaki X Amigon
Ivar O Foller
Cody Y Iturbide
Costa C Rim
David G Poquette
David E Perin
Adams T Whobrey
Mayumi K Butt
Mujtaba Z Tollner
Aditya G Venere
Murillo T Rim
Deepesh Q Campain
Emily T Royster
Maria Z Malet
Faith R Ruta
Ivar C Shinko
Maisha K Oldroyd
Mujtaba X Paprocki
Kadeem M Sergi
Jennifer J Figeroa
Jefferson C Stockham
Octavia P Tollner
Aditya V Venere
Faith Z Malet
Antonio S Malet
Sinclair Z Poquette
Ivar Y Kolmetz
Antonio K Waycott
Aditya V Foller
Morrow F Darakjy
Juan C Albares
Antonio D Chui
Johnson L Waycott
Octavia D Malet
Silvio T Kusko
Aika G Oldroyd
Aditya N Albares
Johnson U Poquette
Greenwood X Caudy
Jennifer O Poquette
Morrow T Chui
IdCountryDate
1000Italy2024-04-24
1001Germany2024-04-24
1002Spain2024-04-21
1003Italy2024-04-22
1004India2024-04-12
1005Germany2024-04-21
1006Argentina2024-04-08
1007Italy2024-04-19
1008Spain2024-04-12
1009Brazil2024-04-11
1010Italy2024-04-21
1011Brazil2024-04-16
1012Germany2024-03-27
1013Spain2024-04-06
1014Argentina2024-04-01
1015India2024-04-23
1016Argentina2024-04-01
1017Canada2024-04-12
1018India2024-04-06
1019Spain2024-04-25
1020Italy2024-04-09
1021France2024-04-01
1022Canada2024-04-24
1023India2024-04-17
1024Japan2024-04-21
1025Canada2024-03-31
1026Italy2024-04-03
1027Argentina2024-04-25
1028India2024-03-28
1029Spain2024-04-09
1030Brazil2024-04-10
1031India2024-04-19
1032France2024-04-03
1033Spain2024-04-04
1034Canada2024-04-17
1035Spain2024-04-09
1036France2024-04-18
1037India2024-04-08
1038Russia2024-04-07
1039Spain2024-04-19
1040Australia2024-03-29
1041Russia2024-04-07
1042Italy2024-04-25
1043Australia2024-04-04
1044Russia2024-04-04
1045Japan2024-04-09
1046Argentina2024-04-23
1047Canada2024-03-27
1048India2024-04-02
1049Spain2024-04-07

On-Demand Data

NameIdCountryDate
Aruna L Ostrosky1000France2024-04-10
Darci Z Gillian1001France2024-04-01
Faith W Chui1002Canada2024-04-12
Murillo S Briddick1003India2024-04-02
Mayumi D Stenseth1004Germany2024-04-08
Deepesh O Wieser1005Argentina2024-04-14
Leon A Whobrey1006Italy2024-04-21
Leon G Glick1007United Kingdom2024-04-05
Maria H Morasca1008Spain2024-04-07
Mujtaba T Amigon1009United Kingdom2024-04-08
Wickens E Inouye1010India2024-04-20
Maria O Whobrey1011India2024-04-13
Aruna M Waycott1012India2024-03-27
Aditya V Doe1013Italy2024-04-21
Francesco K Schemmer1014Australia2024-04-25
Jennifer N Figeroa1015France2024-04-21
Kadeem X Poquette1016Japan2024-03-27
Aruna N Iturbide1017United Kingdom2024-03-31
Maisha G Caldarera1018India2024-04-08
Francesco X Ruta1019Argentina2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci V MaletSpainStephen Shaw UNQUALIFIED
Munro I PaprockiGermanyElwin Sharvill NEW
Juan J KuskoBrazilAnna Fali PROPOSAL
Tony W BowleyBrazilAmy Elsner RENEWAL
Misaki K RulapaughFranceElwin Sharvill NEGOTIATION
Aditya K VocelkaRussiaAsiya Javayant QUALIFIED
Aruna O MaletGermanyOnyama Limba QUALIFIED
Wickens K SchemmerFranceXuxue Feng NEW
Stacey W MarrierArgentinaAnna Fali NEW
Deepesh W StensethIndiaBernardo Dominic RENEWAL
Chavez J MaletGermanyXuxue Feng QUALIFIED
Jennifer O BologniaFranceXuxue Feng NEW
Murillo A SaylorsAustraliaXuxue Feng NEGOTIATION
Alejandro W GillianBrazilAnna Fali NEGOTIATION
Ivar T GarufiArgentinaElwin Sharvill QUALIFIED
Cody N ShinkoJapanXuxue Feng PROPOSAL
Leja T WieserGermanyOnyama Limba RENEWAL
Tony S GauchoArgentinaIvan Magalhaes NEGOTIATION
Isabel Q MorascaBrazilIoni Bowcher QUALIFIED
Aditya D KuskoSpainOnyama Limba NEGOTIATION
Deepesh B BriddickRussiaOnyama Limba PROPOSAL
Darci M FerenczGermanyElwin Sharvill QUALIFIED
Costa M NickaCanadaAmy Elsner QUALIFIED
Nicolas T NickaAustraliaAnna Fali PROPOSAL
Silvio T CaldareraItalyStephen Shaw UNQUALIFIED
Claire X AmigonSpainIvan Magalhaes NEW
Smith U PaprockiAustraliaOnyama Limba RENEWAL
Jefferson R ChuiSpainOnyama Limba NEGOTIATION
Arvin H GlickJapanBernardo Dominic NEW
Ashley F OstroskyFranceStephen Shaw RENEWAL
Chavez Q NickaCanadaBernardo Dominic RENEWAL
Antonio G KolmetzItalyOnyama Limba QUALIFIED
Stacey Q MorascaBrazilStephen Shaw PROPOSAL
Aruna J RutaArgentinaBernardo Dominic QUALIFIED
Misaki X GarufiBrazilXuxue Feng NEGOTIATION
Francesco Y PaprockiUnited KingdomAnna Fali RENEWAL
Munro O OldroydUnited KingdomAmy Elsner QUALIFIED
Rodrigues U KuskoUnited KingdomIvan Magalhaes NEW
Jefferson H SaylorsSpainAnna Fali QUALIFIED
Mujtaba E FlosiItalyAsiya Javayant UNQUALIFIED

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