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
Jefferson M MaletCanadaAsiya Javayant RENEWAL
Isabel S GauchoUnited KingdomIoni Bowcher QUALIFIED
Jones Z NestleJapanElwin Sharvill UNQUALIFIED
Jones X FerenczGermanyIvan Magalhaes QUALIFIED
Kadeem Y BriddickJapanIoni Bowcher UNQUALIFIED
Greenwood M WaycottItalyAmy Elsner PROPOSAL
Maria N ButtRussiaStephen Shaw NEW
Murillo Z GarufiGermanyXuxue Feng QUALIFIED
Darci X VocelkaSpainAsiya Javayant PROPOSAL
Aika Y GillianFranceStephen Shaw QUALIFIED
Ivar V BowleyCanadaIoni Bowcher NEW
Izzy E OstroskyAustraliaXuxue Feng RENEWAL
Deepesh Y GillianGermanyAmy Elsner NEGOTIATION
Isabel J RoysterArgentinaOnyama Limba PROPOSAL
Tony B IturbideCanadaElwin Sharvill NEW
Adams Q WieserBrazilAmy Elsner NEGOTIATION
Sinclair D MorascaFranceElwin Sharvill PROPOSAL
Stacey L WhobreyArgentinaAsiya Javayant NEW
Ricardo Z MaletUnited KingdomElwin Sharvill RENEWAL
Maisha B KuskoRussiaIoni Bowcher NEGOTIATION
Jeanfrancois C FlosiBrazilStephen Shaw NEGOTIATION
Julie W BowleyRussiaBernardo Dominic UNQUALIFIED
Francesco N FerenczSpainIoni Bowcher RENEWAL
Adams B SaylorsUnited KingdomXuxue Feng NEW
Antonio N KuskoAustraliaXuxue Feng NEW
Morrow M DoeSpainOnyama Limba NEGOTIATION
Kaitlin O FigeroaItalyXuxue Feng NEGOTIATION
Jennifer Z CaudyRussiaAmy Elsner UNQUALIFIED
Kaitlin K SlusarskiCanadaBernardo Dominic NEGOTIATION
Izzy O RulapaughArgentinaAnna Fali UNQUALIFIED
Darci G VocelkaSpainIoni Bowcher QUALIFIED
Jennifer J VocelkaSpainXuxue Feng PROPOSAL
Rodrigues M OldroydGermanyAsiya Javayant UNQUALIFIED
Leja G RulapaughJapanBernardo Dominic RENEWAL
Misaki J SchemmerIndiaAmy Elsner PROPOSAL
Sinclair M PaprockiJapanStephen Shaw NEW
Arvin E DoeItalyOnyama Limba RENEWAL
Murillo Z InouyeSpainStephen Shaw QUALIFIED
Morrow B CaudyCanadaIoni Bowcher NEW
Jefferson B WhobreyJapanOnyama Limba UNQUALIFIED
Adams D SaylorsCanadaElwin Sharvill RENEWAL
Leon A VenereItalyIvan Magalhaes RENEWAL
Aika N RutaFranceIvan Magalhaes NEW
Tony W GauchoJapanAnna Fali QUALIFIED
Adams C BowleyCanadaIoni Bowcher UNQUALIFIED
Kadeem S MacleadUnited KingdomXuxue Feng NEW
Salvatore W KolmetzJapanOnyama Limba UNQUALIFIED
Stacey A KuskoSpainIoni Bowcher UNQUALIFIED
Salvatore A FlosiFranceBernardo Dominic UNQUALIFIED
Smith B CaudyJapanStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki X MorascaGermanyIvan Magalhaes NEW
Juan D PerinGermanyAsiya Javayant PROPOSAL
James S GarufiUnited KingdomAnna Fali QUALIFIED
Jeanfrancois L RulapaughIndiaBernardo Dominic PROPOSAL
Salvatore B KolmetzRussiaOnyama Limba NEGOTIATION
Leja Y FigeroaItalyAnna Fali QUALIFIED
Murillo T RutaArgentinaElwin Sharvill NEW
Nicolas H SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Emily G ShinkoItalyIvan Magalhaes NEW
Greenwood I GillianFranceAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones Q FlosiGermany2024-03-30Chapman, Ross E Esq NEW61Anna Fali
1001David Y PaprockiIndia2024-04-07Feiner Bros UNQUALIFIED37Ioni Bowcher
1002Misaki I StensethItaly2024-04-03King, Christopher A Esq PROPOSAL62Anna Fali
1003Leja D TollnerCanada2024-04-06Morlong Associates UNQUALIFIED41Amy Elsner
1004Emily Q MorascaAustralia2024-04-24Rousseaux, Michael Esq RENEWAL64Amy Elsner
1005David H FigeroaRussia2024-04-08Feltz Printing Service PROPOSAL48Asiya Javayant
1006Francesco Q KolmetzArgentina2024-04-27Buckley Miller Wright NEGOTIATION64Amy Elsner
1007Arvin I OldroydCanada2024-03-31Truhlar And Truhlar Attys UNQUALIFIED40Amy Elsner
1008Greenwood U KuskoRussia2024-04-13Rousseaux, Michael Esq QUALIFIED97Bernardo Dominic
1009Johnson L KuskoJapan2024-04-14Feltz Printing Service NEGOTIATION99Ivan Magalhaes
1010Julie S RutaSpain2024-04-28Printing Dimensions NEGOTIATION38Bernardo Dominic
1011Faith G SchemmerRussia2024-04-28Chanay, Jeffrey A Esq UNQUALIFIED53Stephen Shaw
1012Johnson K FerenczCanada2024-04-23King, Christopher A Esq QUALIFIED71Amy Elsner
1013Nicolas B RoysterUnited Kingdom2024-04-07Morlong Associates UNQUALIFIED92Bernardo Dominic
1014Jones M FollerCanada2024-04-01Morlong Associates QUALIFIED60Onyama Limba
1015Stacey H VocelkaBrazil2024-03-30Rangoni Of Florence QUALIFIED2Bernardo Dominic
1016Julie F MacleadRussia2024-04-26King, Christopher A Esq QUALIFIED58Xuxue Feng
1017Arvin O MaletRussia2024-03-30Dorl, James J Esq QUALIFIED8Bernardo Dominic
1018Francesco G CampainCanada2024-04-14Printing Dimensions PROPOSAL5Ioni Bowcher
1019David N DoeIndia2024-04-13Commercial Press RENEWAL71Bernardo Dominic
1020Murillo H OldroydAustralia2024-04-28Truhlar And Truhlar Attys QUALIFIED21Stephen Shaw
1021Leja O BologniaUnited Kingdom2024-04-11Printing Dimensions QUALIFIED82Bernardo Dominic
1022Aika B AmigonArgentina2024-04-11Truhlar And Truhlar Attys QUALIFIED18Stephen Shaw
1023Clifford D GarufiJapan2024-04-18Truhlar And Truhlar Attys PROPOSAL1Xuxue Feng
1024Arvin G SergiArgentina2024-04-26Buckley Miller Wright RENEWAL52Asiya Javayant
1025Greenwood G ButtCanada2024-04-25Rangoni Of Florence RENEWAL82Elwin Sharvill
1026Aditya E BowleyAustralia2024-04-01Chapman, Ross E Esq UNQUALIFIED53Bernardo Dominic
1027Greenwood O FollerCanada2024-04-16Benton, John B Jr RENEWAL20Ioni Bowcher
1028Nicolas E OldroydSpain2024-04-03Commercial Press NEW55Elwin Sharvill
1029Ashley I KuskoGermany2024-04-07Dorl, James J Esq UNQUALIFIED82Onyama Limba
1030Clifford L StockhamAustralia2024-04-07Feiner Bros PROPOSAL74Onyama Limba
1031Claire V PerinUnited Kingdom2024-04-17Rangoni Of Florence UNQUALIFIED46Xuxue Feng
1032Claire W MarrierRussia2024-04-05Chemel, James L Cpa RENEWAL59Anna Fali
1033Costa P BriddickCanada2024-04-24Benton, John B Jr PROPOSAL37Amy Elsner
1034Costa P SaylorsCanada2024-04-07Chanay, Jeffrey A Esq UNQUALIFIED4Stephen Shaw
1035Ricardo K DoeIndia2024-04-11King, Christopher A Esq QUALIFIED13Ioni Bowcher
1036Adams F VocelkaItaly2024-04-20Buckley Miller Wright UNQUALIFIED49Onyama Limba
1037Jones V RimSpain2024-04-13Commercial Press RENEWAL85Asiya Javayant
1038Octavia B GlickRussia2024-04-26Chemel, James L Cpa NEGOTIATION82Stephen Shaw
1039Deepesh N GlickBrazil2024-03-31Commercial Press PROPOSAL64Ioni Bowcher
1040Maisha A DilliardAustralia2024-04-14Chanay, Jeffrey A Esq PROPOSAL92Ivan Magalhaes
1041Francesco A MacleadFrance2024-04-06King, Christopher A Esq PROPOSAL6Asiya Javayant
1042Faith R NestleFrance2024-04-20Printing Dimensions PROPOSAL22Bernardo Dominic
1043Aika K TollnerFrance2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED68Bernardo Dominic
1044Tony Y TollnerRussia2024-04-19Chapman, Ross E Esq NEW55Anna Fali
1045Murillo G VenereFrance2024-04-04Rangoni Of Florence QUALIFIED47Anna Fali
1046Deepesh D NestleBrazil2024-04-23Feltz Printing Service RENEWAL90Ioni Bowcher
1047Aditya N GarufiItaly2024-04-09Chanay, Jeffrey A Esq NEGOTIATION76Ioni Bowcher
1048Mayumi M MarrierAustralia2024-04-06Dorl, James J Esq PROPOSAL14Ioni Bowcher
1049Mujtaba D DarakjyRussia2024-04-02Chemel, James L Cpa NEGOTIATION13Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo J ChuiUnited KingdomAnna Fali RENEWAL
David U PerinAustraliaAsiya Javayant RENEWAL
Jeanfrancois N BologniaUnited KingdomIvan Magalhaes NEW
Munro J MaletItalyXuxue Feng NEGOTIATION
Stacey E VenereCanadaAmy Elsner QUALIFIED
Kaitlin F InouyeBrazilOnyama Limba NEW
Cody N CaudyGermanyStephen Shaw NEGOTIATION
Murillo K MaletItalyBernardo Dominic PROPOSAL
Juan K PaprockiIndiaAsiya Javayant UNQUALIFIED
Aruna M CaudyJapanOnyama Limba UNQUALIFIED
Octavia M PaprockiRussiaXuxue Feng RENEWAL
Jones J ChuiGermanyIoni Bowcher RENEWAL
James M StensethArgentinaIvan Magalhaes RENEWAL
Mayumi B MaletArgentinaBernardo Dominic RENEWAL
Darci K WhobreyIndiaIoni Bowcher NEW
Mayumi Y SchemmerJapanAmy Elsner NEGOTIATION
Mayumi F StockhamBrazilAmy Elsner UNQUALIFIED
Jones L VenereAustraliaXuxue Feng NEW
Darci S AmigonBrazilElwin Sharvill NEW
Nicolas H FollerJapanXuxue Feng QUALIFIED
Antonio H FigeroaSpainOnyama Limba RENEWAL
Jefferson A KolmetzJapanElwin Sharvill NEW
Isabel F MarrierFranceAnna Fali NEW
Alejandro J AlbaresIndiaAsiya Javayant NEW
Salvatore U GarufiRussiaOnyama Limba NEGOTIATION
Maria N SlusarskiJapanXuxue Feng RENEWAL
Jefferson U BowleyGermanyIoni Bowcher NEW
Silvio X MarrierSpainAsiya Javayant NEW
Johnson L FlosiRussiaXuxue Feng NEGOTIATION
Darci A FigeroaAustraliaXuxue Feng NEW
Octavia R VenereJapanXuxue Feng NEW
Deepesh G OldroydGermanyElwin Sharvill RENEWAL
Mujtaba H BriddickIndiaBernardo Dominic QUALIFIED
Arvin A IturbideBrazilXuxue Feng NEW
Maisha T BowleyGermanyAnna Fali UNQUALIFIED
Ashley N PaprockiSpainStephen Shaw UNQUALIFIED
Aika E KuskoSpainElwin Sharvill NEW
Julie M NickaIndiaXuxue Feng UNQUALIFIED
Silvio A MorascaFranceBernardo Dominic QUALIFIED
Greenwood Y SlusarskiSpainAmy Elsner NEW
Maisha Q WaycottBrazilBernardo Dominic QUALIFIED
Cody G SergiBrazilStephen Shaw QUALIFIED
Mayumi L WaycottBrazilAsiya Javayant RENEWAL
Nicolas X WhobreyItalyXuxue Feng UNQUALIFIED
Kadeem G SergiUnited KingdomStephen Shaw NEW
Tony U FerenczArgentinaAmy Elsner PROPOSAL
Ivar K BriddickCanadaOnyama Limba RENEWAL
Silvio M PerinItalyIvan Magalhaes RENEWAL
Salvatore M MorascaIndiaAnna Fali NEGOTIATION
Costa H CaudyItalyAmy Elsner NEW
Frozen Columns
Name
Antonio U Waycott
David J Darakjy
Jennifer C Chui
Darci Q Chui
Costa F Iturbide
Leon Y Tollner
Silvio F Wieser
Aruna N Nicka
Munro T Whobrey
Kaitlin O Butt
Rodrigues D Flosi
Jennifer X Ostrosky
Nicolas A Tollner
Deepesh K Doe
Kadeem I Ruta
Ivar P Inouye
Jefferson S Doe
Ashley R Ferencz
Izzy X Gaucho
Tony F Venere
Kaitlin Y Kusko
Deepesh Q Butt
Arvin M Poquette
Mayumi Q Glick
Maisha K Briddick
Emily R Garufi
Salvatore N Vocelka
Johnson E Glick
Leja Y Garufi
Jones S Iturbide
Chavez C Saylors
Mujtaba C Stenseth
Aika W Iturbide
Murillo Z Perin
Morrow H Gillian
Wickens O Whobrey
Greenwood Q Paprocki
Jeanfrancois T Perin
Arvin J Kolmetz
Maria M Whobrey
Ashley Z Iturbide
Silvio L Sergi
Claire J Flosi
Jennifer K Whobrey
Darci I Tollner
Costa F Garufi
Octavia B Malet
Stacey Q Dilliard
Stacey V Inouye
Murillo V Schemmer
IdCountryDate
1000Germany2024-04-09
1001Spain2024-03-30
1002Japan2024-04-12
1003United Kingdom2024-04-24
1004Argentina2024-03-31
1005Japan2024-04-06
1006Canada2024-04-03
1007France2024-04-15
1008Germany2024-04-01
1009Russia2024-04-02
1010France2024-04-19
1011Spain2024-04-14
1012Canada2024-04-03
1013France2024-04-06
1014Japan2024-04-16
1015Argentina2024-04-08
1016Germany2024-04-06
1017Germany2024-04-22
1018Italy2024-04-28
1019Argentina2024-04-22
1020Canada2024-04-28
1021Australia2024-04-02
1022Italy2024-04-02
1023Spain2024-04-11
1024Russia2024-04-23
1025Australia2024-04-24
1026Australia2024-04-08
1027Spain2024-04-03
1028Australia2024-04-02
1029Germany2024-04-02
1030France2024-04-05
1031France2024-03-31
1032Australia2024-04-03
1033India2024-04-23
1034Italy2024-04-21
1035Russia2024-04-18
1036France2024-04-11
1037United Kingdom2024-04-01
1038Argentina2024-04-27
1039India2024-04-10
1040Germany2024-04-22
1041India2024-04-02
1042Canada2024-04-27
1043Brazil2024-04-11
1044Argentina2024-04-08
1045United Kingdom2024-04-08
1046France2024-04-14
1047Canada2024-04-05
1048Brazil2024-04-17
1049Argentina2024-04-27

On-Demand Data

NameIdCountryDate
Francesco X Amigon1000Italy2024-04-22
Morrow H Amigon1001Japan2024-04-05
Leja R Ferencz1002Russia2024-04-10
Rodrigues B Kolmetz1003Argentina2024-04-21
Stacey R Nestle1004France2024-04-27
Clifford V Royster1005Russia2024-04-05
Greenwood U Gaucho1006Australia2024-04-08
Francesco M Rulapaugh1007Argentina2024-04-05
Darci C Royster1008United Kingdom2024-04-10
Emily M Gaucho1009Australia2024-04-13
Mujtaba B Bowley1010Russia2024-04-04
Leja G Vocelka1011Spain2024-04-19
Juan F Gaucho1012United Kingdom2024-03-31
Maisha N Maclead1013France2024-04-02
James W Doe1014Brazil2024-04-19
Emily D Foller1015Spain2024-03-30
Julie C Doe1016United Kingdom2024-04-08
Maisha J Chui1017Australia2024-03-30
Adams R Bowley1018Germany2024-04-05
Francesco V Darakjy1019France2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore L MaletCanadaAnna Fali UNQUALIFIED
Adams C GauchoItalyAsiya Javayant NEW
Ivar N ShinkoSpainIvan Magalhaes NEGOTIATION
Wickens B FigeroaRussiaStephen Shaw UNQUALIFIED
Ricardo G MarrierAustraliaOnyama Limba NEW
Leon G NickaCanadaOnyama Limba NEGOTIATION
Claire S StensethJapanOnyama Limba PROPOSAL
Clifford G VocelkaRussiaIoni Bowcher PROPOSAL
Darci Z WieserRussiaElwin Sharvill NEGOTIATION
Octavia O GlickCanadaBernardo Dominic NEGOTIATION
Costa M NickaJapanIoni Bowcher RENEWAL
Murillo S GillianUnited KingdomOnyama Limba PROPOSAL
Kaitlin E FerenczSpainBernardo Dominic PROPOSAL
Jeanfrancois E RoysterUnited KingdomXuxue Feng NEGOTIATION
Kadeem G RoysterFranceStephen Shaw QUALIFIED
Alejandro G WieserGermanyBernardo Dominic QUALIFIED
Aditya Q VenereSpainIvan Magalhaes NEGOTIATION
Nicolas I VocelkaArgentinaAnna Fali QUALIFIED
Maria E RoysterUnited KingdomAnna Fali RENEWAL
Nicolas P RoysterAustraliaAsiya Javayant PROPOSAL
Cody S CampainItalyXuxue Feng PROPOSAL
Leja I SaylorsAustraliaOnyama Limba RENEWAL
Ricardo V VenereRussiaElwin Sharvill QUALIFIED
Francesco F PaprockiItalyBernardo Dominic NEW
Rodrigues O ChuiArgentinaOnyama Limba NEGOTIATION
Leja D OldroydUnited KingdomBernardo Dominic RENEWAL
Arvin D RutaIndiaXuxue Feng QUALIFIED
Smith H InouyeJapanIvan Magalhaes PROPOSAL
Juan S MarrierIndiaIoni Bowcher NEW
Adams T WhobreyJapanXuxue Feng NEGOTIATION
Munro S StensethArgentinaAmy Elsner QUALIFIED
Aruna U ChuiAustraliaIvan Magalhaes RENEWAL
Darci X StockhamCanadaIoni Bowcher PROPOSAL
David H NestleItalyBernardo Dominic RENEWAL
Silvio J VenereRussiaOnyama Limba NEGOTIATION
Chavez C WhobreySpainXuxue Feng RENEWAL
Kaitlin U GauchoRussiaOnyama Limba NEW
Alejandro A StockhamUnited KingdomAnna Fali QUALIFIED
Kaitlin F BowleyBrazilElwin Sharvill QUALIFIED
Ashley J AlbaresUnited KingdomAsiya Javayant NEGOTIATION

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