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
Stacey V RoysterIndiaAmy Elsner QUALIFIED
Tony F KolmetzBrazilOnyama Limba UNQUALIFIED
Emily P PoquetteGermanyXuxue Feng NEGOTIATION
Francesco L AlbaresJapanOnyama Limba PROPOSAL
Jones G MaletIndiaIvan Magalhaes UNQUALIFIED
Julie X OldroydFranceOnyama Limba NEW
Leja D FollerIndiaIvan Magalhaes RENEWAL
Jennifer N BologniaSpainBernardo Dominic UNQUALIFIED
Tony G SlusarskiAustraliaAmy Elsner NEGOTIATION
Jones S GlickGermanyXuxue Feng PROPOSAL
Antonio E VocelkaItalyOnyama Limba RENEWAL
Munro N InouyeItalyOnyama Limba NEGOTIATION
Morrow O VenereUnited KingdomIvan Magalhaes RENEWAL
Izzy X KolmetzRussiaAnna Fali NEW
Morrow A GlickCanadaBernardo Dominic UNQUALIFIED
Wickens A ChuiGermanyAsiya Javayant NEW
Aditya Q IturbideSpainIvan Magalhaes NEW
Aditya C WhobreyJapanIoni Bowcher PROPOSAL
Leon R VocelkaUnited KingdomAnna Fali UNQUALIFIED
Murillo H SchemmerBrazilStephen Shaw PROPOSAL
Alejandro X GauchoRussiaOnyama Limba NEW
Jefferson K AmigonRussiaAsiya Javayant NEW
James T MaletUnited KingdomAmy Elsner QUALIFIED
Francesco Q NickaJapanAnna Fali PROPOSAL
Cody O GillianGermanyOnyama Limba PROPOSAL
Darci E ChuiArgentinaBernardo Dominic PROPOSAL
Murillo F NestleUnited KingdomOnyama Limba NEGOTIATION
Deepesh F BriddickFranceStephen Shaw QUALIFIED
Kaitlin R MorascaCanadaOnyama Limba NEGOTIATION
Aditya C DilliardGermanyStephen Shaw NEW
Mayumi U GillianUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois Q InouyeIndiaElwin Sharvill UNQUALIFIED
Leon S VenereFranceOnyama Limba RENEWAL
Maria W DilliardArgentinaXuxue Feng NEW
Ashley Z SergiIndiaBernardo Dominic UNQUALIFIED
Sinclair Y GauchoJapanOnyama Limba NEW
Emily Y InouyeGermanyAmy Elsner PROPOSAL
Smith O RulapaughBrazilStephen Shaw PROPOSAL
Jeanfrancois I GlickItalyElwin Sharvill RENEWAL
Izzy U StockhamFranceStephen Shaw NEW
Wickens P NestleUnited KingdomIoni Bowcher PROPOSAL
Kadeem F SergiCanadaIvan Magalhaes UNQUALIFIED
Aika T VocelkaItalyStephen Shaw NEW
David W FerenczCanadaAmy Elsner NEW
Ricardo H KuskoArgentinaXuxue Feng QUALIFIED
Ashley Y MarrierAustraliaIoni Bowcher RENEWAL
Jones Y MacleadAustraliaIvan Magalhaes NEGOTIATION
Leon L DoeCanadaStephen Shaw UNQUALIFIED
Izzy T SlusarskiItalyOnyama Limba RENEWAL
Rodrigues J RoysterSpainAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya Y SchemmerIndiaAmy Elsner NEW
Darci R SlusarskiUnited KingdomIvan Magalhaes NEW
Morrow D VenereCanadaBernardo Dominic UNQUALIFIED
Rodrigues Z SchemmerAustraliaAmy Elsner NEW
Alejandro K DoeAustraliaAsiya Javayant UNQUALIFIED
Kaitlin S WaycottItalyStephen Shaw PROPOSAL
Arvin E GarufiRussiaIvan Magalhaes QUALIFIED
Jennifer V WieserAustraliaOnyama Limba QUALIFIED
Maria E StockhamRussiaIvan Magalhaes UNQUALIFIED
Aditya L ButtIndiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Y GlickRussia2024-04-15Feltz Printing Service QUALIFIED17Elwin Sharvill
1001Johnson Q GauchoIndia2024-03-30Feltz Printing Service PROPOSAL2Amy Elsner
1002Arvin S KuskoSpain2024-03-30Rangoni Of Florence NEW71Anna Fali
1003Rodrigues E IturbideSpain2024-04-14Rousseaux, Michael Esq PROPOSAL4Elwin Sharvill
1004Wickens S CaudyGermany2024-03-28Morlong Associates QUALIFIED72Ioni Bowcher
1005Cody W WhobreyBrazil2024-03-28Feltz Printing Service PROPOSAL5Ivan Magalhaes
1006Tony B CaudyUnited Kingdom2024-03-31Chapman, Ross E Esq PROPOSAL55Bernardo Dominic
1007Aika K RulapaughRussia2024-04-06Buckley Miller Wright UNQUALIFIED99Bernardo Dominic
1008David R CaudyFrance2024-03-28King, Christopher A Esq PROPOSAL35Anna Fali
1009Maisha C StensethJapan2024-04-16Feiner Bros PROPOSAL83Xuxue Feng
1010Mayumi T SaylorsItaly2024-04-20Benton, John B Jr UNQUALIFIED90Bernardo Dominic
1011Kadeem H GauchoItaly2024-04-08Benton, John B Jr NEW43Bernardo Dominic
1012Emily D VocelkaItaly2024-04-05Chemel, James L Cpa RENEWAL54Ioni Bowcher
1013James M WieserJapan2024-04-22Truhlar And Truhlar Attys QUALIFIED54Xuxue Feng
1014Julie I CaudyIndia2024-03-26Chapman, Ross E Esq QUALIFIED4Stephen Shaw
1015Mayumi G CaudyJapan2024-04-16Chanay, Jeffrey A Esq PROPOSAL39Stephen Shaw
1016Sinclair V WieserGermany2024-04-02Benton, John B Jr UNQUALIFIED22Amy Elsner
1017Darci L AmigonBrazil2024-03-27Commercial Press PROPOSAL42Asiya Javayant
1018Julie K KuskoCanada2024-04-20Buckley Miller Wright QUALIFIED69Elwin Sharvill
1019Ricardo O GlickBrazil2024-04-21Benton, John B Jr RENEWAL13Onyama Limba
1020Misaki L BriddickAustralia2024-04-13Commercial Press NEW77Asiya Javayant
1021Darci Z InouyeItaly2024-04-02Morlong Associates NEW40Xuxue Feng
1022Maria T WhobreyArgentina2024-04-03Buckley Miller Wright NEGOTIATION50Anna Fali
1023Mayumi S GlickCanada2024-04-18Rousseaux, Michael Esq PROPOSAL66Onyama Limba
1024Stacey W RutaFrance2024-04-04King, Christopher A Esq QUALIFIED94Onyama Limba
1025Ivar T PerinJapan2024-03-31Chemel, James L Cpa NEGOTIATION72Ioni Bowcher
1026Misaki D BowleyUnited Kingdom2024-04-11Printing Dimensions UNQUALIFIED83Onyama Limba
1027Ashley V RimFrance2024-04-22Feiner Bros RENEWAL69Ioni Bowcher
1028Wickens O OldroydJapan2024-04-20Chapman, Ross E Esq QUALIFIED89Asiya Javayant
1029Claire B OstroskyFrance2024-04-06Buckley Miller Wright UNQUALIFIED53Ivan Magalhaes
1030Aditya R InouyeItaly2024-04-20Benton, John B Jr NEGOTIATION55Bernardo Dominic
1031Leja Q WaycottItaly2024-04-07Truhlar And Truhlar Attys UNQUALIFIED36Onyama Limba
1032Salvatore F KuskoRussia2024-04-01Benton, John B Jr PROPOSAL25Ivan Magalhaes
1033Faith K GarufiArgentina2024-04-03Morlong Associates QUALIFIED33Bernardo Dominic
1034Silvio K SaylorsJapan2024-03-26King, Christopher A Esq UNQUALIFIED4Ivan Magalhaes
1035Kadeem P NickaArgentina2024-04-08Rousseaux, Michael Esq NEW1Onyama Limba
1036Mayumi T FlosiArgentina2024-03-24Dorl, James J Esq UNQUALIFIED66Bernardo Dominic
1037Stacey G NickaUnited Kingdom2024-03-29Morlong Associates QUALIFIED98Ioni Bowcher
1038Sinclair Y CampainRussia2024-04-22Chemel, James L Cpa NEGOTIATION90Elwin Sharvill
1039Darci E SaylorsIndia2024-04-14Rousseaux, Michael Esq RENEWAL3Amy Elsner
1040Adams N DarakjyBrazil2024-03-28Buckley Miller Wright QUALIFIED98Ivan Magalhaes
1041Cody T NickaSpain2024-04-12Buckley Miller Wright QUALIFIED95Amy Elsner
1042James N OldroydRussia2024-04-14Morlong Associates QUALIFIED51Amy Elsner
1043Aditya X PaprockiIndia2024-03-28Chemel, James L Cpa UNQUALIFIED81Ivan Magalhaes
1044Leja C WieserAustralia2024-04-19Feltz Printing Service NEW51Bernardo Dominic
1045Munro R MarrierBrazil2024-04-18Buckley Miller Wright NEW90Ioni Bowcher
1046Chavez U ButtAustralia2024-04-11Truhlar And Truhlar Attys NEGOTIATION59Ivan Magalhaes
1047David N SchemmerRussia2024-04-15Commercial Press NEGOTIATION20Onyama Limba
1048Alejandro Q BologniaArgentina2024-04-16Dorl, James J Esq UNQUALIFIED16Ioni Bowcher
1049Leon B PaprockiCanada2024-04-21Feltz Printing Service QUALIFIED62Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Isabel D MorascaUnited KingdomXuxue Feng UNQUALIFIED
Leja W WieserJapanIoni Bowcher NEGOTIATION
Aika S DilliardArgentinaBernardo Dominic UNQUALIFIED
Leon A MaletRussiaAsiya Javayant NEW
Greenwood E BowleyCanadaAnna Fali UNQUALIFIED
Jones Q FollerRussiaAnna Fali QUALIFIED
James N KolmetzUnited KingdomOnyama Limba PROPOSAL
Tony D AmigonGermanyBernardo Dominic QUALIFIED
Morrow X FerenczAustraliaIoni Bowcher NEGOTIATION
Jefferson B VocelkaFranceBernardo Dominic PROPOSAL
Wickens O GarufiItalyBernardo Dominic NEGOTIATION
Francesco G SchemmerCanadaAsiya Javayant PROPOSAL
Francesco Q ButtJapanElwin Sharvill QUALIFIED
Sinclair H NickaGermanyAmy Elsner NEGOTIATION
Cody T FlosiAustraliaIoni Bowcher RENEWAL
Octavia P GlickRussiaOnyama Limba QUALIFIED
Wickens U CampainFranceOnyama Limba NEGOTIATION
Ashley D BriddickIndiaAnna Fali PROPOSAL
David C FigeroaFranceIoni Bowcher NEW
Sinclair I CaldareraSpainStephen Shaw NEGOTIATION
Leon O DoeSpainBernardo Dominic QUALIFIED
Julie S AmigonRussiaBernardo Dominic RENEWAL
Darci W StockhamAustraliaIvan Magalhaes UNQUALIFIED
Adams Y OstroskyFranceAnna Fali PROPOSAL
Ashley K SergiRussiaBernardo Dominic PROPOSAL
Smith R WieserSpainIvan Magalhaes QUALIFIED
Ivar E FollerCanadaAnna Fali NEW
Deepesh Q MorascaAustraliaElwin Sharvill NEGOTIATION
Nicolas R DilliardCanadaIoni Bowcher NEGOTIATION
Murillo N GlickIndiaAsiya Javayant NEW
Greenwood X FollerAustraliaBernardo Dominic PROPOSAL
Jefferson K StockhamJapanElwin Sharvill QUALIFIED
Nicolas V VocelkaGermanyIvan Magalhaes UNQUALIFIED
Kaitlin F FollerAustraliaXuxue Feng PROPOSAL
Adams W RutaIndiaElwin Sharvill NEW
Maisha C OstroskySpainIoni Bowcher RENEWAL
Kadeem Z BriddickJapanElwin Sharvill NEGOTIATION
Wickens R FlosiRussiaAnna Fali PROPOSAL
Stacey R SaylorsRussiaIoni Bowcher NEW
Maisha T PoquetteArgentinaOnyama Limba NEGOTIATION
Juan K SlusarskiFranceAnna Fali RENEWAL
Cody J FigeroaFranceOnyama Limba QUALIFIED
Chavez A OldroydGermanyIvan Magalhaes NEGOTIATION
Leon B MorascaGermanyXuxue Feng QUALIFIED
Munro A RutaUnited KingdomAsiya Javayant RENEWAL
Francesco O WhobreyJapanXuxue Feng QUALIFIED
Chavez U InouyeJapanXuxue Feng UNQUALIFIED
Kadeem Z StensethSpainAnna Fali PROPOSAL
Clifford Q FerenczJapanIvan Magalhaes UNQUALIFIED
Misaki I VocelkaArgentinaElwin Sharvill PROPOSAL
Frozen Columns
Name
Morrow Z Royster
Morrow V Figeroa
Stacey V Tollner
Jones K Marrier
Salvatore G Sergi
Jefferson Z Wieser
Arvin K Malet
Arvin C Stenseth
Leja W Slusarski
Ivar D Gaucho
Jennifer Y Rulapaugh
Jeanfrancois Z Poquette
Aruna O Poquette
Kaitlin D Ferencz
Stacey G Malet
Stacey C Darakjy
Julie M Briddick
Ivar V Marrier
Salvatore K Doe
Francesco J Maclead
Izzy B Saylors
Adams R Ferencz
Chavez D Tollner
Kadeem U Dilliard
Mujtaba U Vocelka
Francesco H Saylors
Antonio Z Poquette
Jeanfrancois A Darakjy
Juan Z Kusko
Cody C Butt
Kaitlin L Gaucho
Adams V Ruta
Salvatore K Malet
Francesco O Chui
Munro Y Caldarera
Cody F Whobrey
Mayumi G Rim
Munro Z Amigon
Jeanfrancois J Campain
Nicolas Z Morasca
Misaki E Amigon
Aruna W Shinko
Jefferson V Venere
Cody Y Gillian
Stacey P Albares
Clifford M Schemmer
Jennifer G Glick
Maria F Albares
Smith O Schemmer
Jefferson J Bolognia
IdCountryDate
1000Australia2024-04-19
1001Australia2024-03-24
1002Italy2024-04-05
1003Germany2024-04-12
1004Argentina2024-04-19
1005Germany2024-03-30
1006Spain2024-04-21
1007Italy2024-04-02
1008Japan2024-04-18
1009France2024-04-04
1010Argentina2024-04-05
1011Japan2024-04-01
1012Spain2024-04-01
1013Australia2024-04-08
1014Japan2024-04-05
1015United Kingdom2024-04-17
1016Germany2024-04-19
1017Italy2024-04-06
1018Russia2024-04-02
1019Italy2024-04-06
1020Russia2024-03-26
1021Brazil2024-04-09
1022Canada2024-03-24
1023Argentina2024-04-13
1024Brazil2024-04-03
1025Brazil2024-04-13
1026Brazil2024-04-02
1027Spain2024-04-19
1028Brazil2024-04-13
1029India2024-04-15
1030United Kingdom2024-04-16
1031United Kingdom2024-04-22
1032Spain2024-04-13
1033Spain2024-04-20
1034Argentina2024-04-10
1035Brazil2024-04-10
1036Japan2024-04-09
1037Italy2024-03-28
1038Australia2024-04-07
1039Australia2024-03-31
1040Brazil2024-04-08
1041France2024-04-21
1042Japan2024-04-15
1043France2024-04-21
1044Japan2024-03-31
1045Germany2024-03-28
1046Argentina2024-04-02
1047Brazil2024-04-20
1048Australia2024-03-28
1049India2024-04-15

On-Demand Data

NameIdCountryDate
Izzy F Iturbide1000Japan2024-03-27
Tony W Stockham1001Australia2024-04-01
Izzy N Royster1002Italy2024-03-24
James X Inouye1003Spain2024-04-01
Kadeem M Briddick1004Argentina2024-04-07
Maria T Malet1005Australia2024-04-02
Jefferson T Figeroa1006Japan2024-03-28
Deepesh E Vocelka1007United Kingdom2024-03-28
Stacey A Tollner1008Australia2024-03-29
Morrow U Waycott1009France2024-04-21
Kaitlin C Amigon1010Australia2024-04-10
Isabel B Foller1011France2024-03-27
Silvio S Perin1012Spain2024-04-09
Greenwood W Inouye1013Russia2024-04-17
Ricardo W Chui1014Japan2024-04-16
Julie N Maclead1015Italy2024-03-28
James B Caldarera1016Japan2024-04-21
Chavez F Bolognia1017France2024-03-27
David H Paprocki1018Australia2024-04-05
Izzy E Schemmer1019Italy2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams Y RoysterItalyBernardo Dominic PROPOSAL
Cody A TollnerBrazilStephen Shaw RENEWAL
Silvio P MaletJapanIvan Magalhaes PROPOSAL
Salvatore X CaldareraItalyOnyama Limba RENEWAL
Leja B WhobreyAustraliaAsiya Javayant PROPOSAL
Tony V GauchoUnited KingdomElwin Sharvill PROPOSAL
Arvin F StockhamIndiaIvan Magalhaes PROPOSAL
Smith M GillianUnited KingdomBernardo Dominic RENEWAL
Darci O RoysterIndiaElwin Sharvill RENEWAL
Kadeem E VocelkaCanadaXuxue Feng NEW
Kadeem L ChuiSpainIvan Magalhaes UNQUALIFIED
Francesco T WaycottCanadaIoni Bowcher QUALIFIED
Salvatore L GlickIndiaAsiya Javayant NEGOTIATION
Ashley D MorascaItalyStephen Shaw NEW
Kaitlin I SergiAustraliaElwin Sharvill QUALIFIED
Ivar N AmigonGermanyOnyama Limba UNQUALIFIED
Deepesh C ChuiRussiaAmy Elsner NEW
Darci F RutaFranceIvan Magalhaes PROPOSAL
Emily H BowleyIndiaOnyama Limba PROPOSAL
Salvatore N CaudyJapanBernardo Dominic RENEWAL
Jones S NickaFranceIvan Magalhaes RENEWAL
Murillo S NickaFranceIoni Bowcher RENEWAL
Maria D RutaCanadaIoni Bowcher QUALIFIED
Adams Y PaprockiItalyOnyama Limba UNQUALIFIED
Izzy H ChuiIndiaAnna Fali UNQUALIFIED
Kadeem V DoeJapanAsiya Javayant RENEWAL
Ricardo C DilliardGermanyBernardo Dominic QUALIFIED
Misaki T WaycottAustraliaAnna Fali NEGOTIATION
Stacey J InouyeAustraliaAnna Fali NEW
Leon F StensethRussiaBernardo Dominic QUALIFIED
Octavia V WhobreyGermanyAsiya Javayant NEGOTIATION
Jennifer T BologniaSpainAmy Elsner NEW
Leja B MorascaAustraliaElwin Sharvill UNQUALIFIED
Deepesh Q ChuiAustraliaAmy Elsner UNQUALIFIED
Ashley P GlickFranceElwin Sharvill NEGOTIATION
Julie O DilliardRussiaElwin Sharvill NEW
Octavia J OstroskyCanadaIvan Magalhaes NEW
Aruna R BologniaGermanyIoni Bowcher NEW
Julie P MorascaGermanyXuxue Feng UNQUALIFIED
Wickens W FlosiRussiaStephen Shaw 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>