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
Ricardo B FollerBrazilIoni Bowcher UNQUALIFIED
Jennifer K CampainSpainAnna Fali UNQUALIFIED
Ashley C NickaUnited KingdomIoni Bowcher PROPOSAL
Morrow Q TollnerCanadaElwin Sharvill QUALIFIED
David X CaldareraCanadaIvan Magalhaes RENEWAL
Mujtaba Z FlosiAustraliaBernardo Dominic PROPOSAL
Aika Q TollnerRussiaIvan Magalhaes NEGOTIATION
Munro M TollnerAustraliaElwin Sharvill RENEWAL
Mayumi E FigeroaArgentinaXuxue Feng UNQUALIFIED
Claire U SaylorsIndiaIoni Bowcher RENEWAL
Aika A StockhamJapanIvan Magalhaes NEGOTIATION
Kadeem H MorascaSpainXuxue Feng QUALIFIED
Tony S SergiIndiaElwin Sharvill UNQUALIFIED
Juan F IturbideFranceXuxue Feng QUALIFIED
Morrow W RimAustraliaOnyama Limba UNQUALIFIED
Emily N InouyeSpainIvan Magalhaes QUALIFIED
Aruna O VocelkaCanadaAnna Fali NEW
Jones L BriddickSpainAsiya Javayant RENEWAL
James X NestleAustraliaIvan Magalhaes PROPOSAL
Francesco Y GarufiJapanIvan Magalhaes NEW
Clifford S DilliardJapanOnyama Limba PROPOSAL
Faith Y VenereAustraliaAsiya Javayant QUALIFIED
Mujtaba I PoquetteItalyBernardo Dominic PROPOSAL
Aruna N FigeroaCanadaElwin Sharvill NEGOTIATION
Antonio H RoysterJapanBernardo Dominic UNQUALIFIED
Murillo O SaylorsBrazilXuxue Feng NEGOTIATION
Mujtaba O RulapaughArgentinaIoni Bowcher RENEWAL
Maria G MarrierSpainIoni Bowcher NEW
Aika A MaletArgentinaIoni Bowcher NEGOTIATION
Octavia V SaylorsArgentinaElwin Sharvill UNQUALIFIED
Greenwood P NickaArgentinaAsiya Javayant QUALIFIED
Clifford C IturbideSpainXuxue Feng PROPOSAL
Sinclair A GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Leon J FlosiAustraliaIvan Magalhaes NEGOTIATION
Salvatore F BowleyCanadaAmy Elsner PROPOSAL
Adams I PaprockiUnited KingdomStephen Shaw QUALIFIED
Kadeem H FlosiRussiaAnna Fali QUALIFIED
Murillo P GauchoCanadaOnyama Limba QUALIFIED
Claire R VenereArgentinaXuxue Feng RENEWAL
Misaki C ButtFranceXuxue Feng PROPOSAL
Stacey K MacleadSpainOnyama Limba NEW
Silvio I InouyeSpainBernardo Dominic PROPOSAL
Clifford K FlosiItalyIvan Magalhaes NEGOTIATION
Izzy S MacleadAustraliaElwin Sharvill NEW
Faith Z DoeSpainBernardo Dominic RENEWAL
Stacey Y StensethSpainBernardo Dominic PROPOSAL
Nicolas N StensethIndiaOnyama Limba RENEWAL
Silvio D SergiCanadaAsiya Javayant NEW
Smith Z FigeroaArgentinaBernardo Dominic UNQUALIFIED
Jones Z RutaIndiaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon Y InouyeIndiaBernardo Dominic PROPOSAL
Jefferson Q PoquetteRussiaOnyama Limba PROPOSAL
Maria M MacleadAustraliaOnyama Limba NEW
Izzy W ChuiGermanyBernardo Dominic NEGOTIATION
Kaitlin N WhobreyItalyIoni Bowcher PROPOSAL
Ashley U ShinkoBrazilElwin Sharvill PROPOSAL
Jennifer C ChuiCanadaElwin Sharvill QUALIFIED
James M OstroskyBrazilOnyama Limba UNQUALIFIED
David Z OstroskySpainXuxue Feng UNQUALIFIED
Isabel F BologniaCanadaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo F AlbaresRussia2024-04-12Chanay, Jeffrey A Esq RENEWAL30Onyama Limba
1001Clifford Y DarakjySpain2024-04-07Commercial Press NEW4Elwin Sharvill
1002Salvatore S SergiGermany2024-04-08Chanay, Jeffrey A Esq QUALIFIED29Asiya Javayant
1003Aika X MaletBrazil2024-04-13Chemel, James L Cpa NEGOTIATION83Onyama Limba
1004Maisha K MacleadGermany2024-04-25Printing Dimensions NEW85Xuxue Feng
1005Claire A BowleyAustralia2024-04-08Feiner Bros PROPOSAL10Anna Fali
1006Izzy U OldroydItaly2024-04-13Dorl, James J Esq PROPOSAL16Ioni Bowcher
1007Chavez A DilliardFrance2024-04-04Chapman, Ross E Esq PROPOSAL39Asiya Javayant
1008Claire O PoquetteArgentina2024-03-29King, Christopher A Esq PROPOSAL66Ivan Magalhaes
1009Jones E CaldareraIndia2024-04-12Printing Dimensions PROPOSAL31Bernardo Dominic
1010Rodrigues L BriddickGermany2024-04-01Morlong Associates QUALIFIED72Xuxue Feng
1011Kaitlin U RutaFrance2024-04-14Truhlar And Truhlar Attys NEGOTIATION28Amy Elsner
1012Aditya O SchemmerSpain2024-04-02Rangoni Of Florence QUALIFIED33Anna Fali
1013Clifford N RimAustralia2024-04-25Rousseaux, Michael Esq QUALIFIED87Anna Fali
1014Chavez W OstroskySpain2024-04-22Chapman, Ross E Esq NEW13Asiya Javayant
1015Jones Y GillianCanada2024-04-22Rousseaux, Michael Esq NEW71Anna Fali
1016Jefferson L PoquetteCanada2024-04-23Rangoni Of Florence NEGOTIATION4Asiya Javayant
1017Kadeem Z FerenczArgentina2024-04-02Commercial Press UNQUALIFIED51Ioni Bowcher
1018Smith M MorascaCanada2024-04-22Buckley Miller Wright UNQUALIFIED80Asiya Javayant
1019Alejandro R WieserFrance2024-04-25Benton, John B Jr NEGOTIATION27Ioni Bowcher
1020Mayumi G MorascaItaly2024-04-02Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1021Stacey C RimBrazil2024-04-14Benton, John B Jr NEGOTIATION71Elwin Sharvill
1022Aruna C KuskoArgentina2024-04-25Chemel, James L Cpa UNQUALIFIED3Xuxue Feng
1023Leon Z FigeroaJapan2024-04-01Buckley Miller Wright UNQUALIFIED8Ivan Magalhaes
1024Tony X VenereGermany2024-04-24King, Christopher A Esq NEGOTIATION93Amy Elsner
1025Leon K AmigonIndia2024-04-12Feltz Printing Service UNQUALIFIED27Xuxue Feng
1026Ashley Z PaprockiAustralia2024-04-13Buckley Miller Wright NEW22Stephen Shaw
1027Emily A MarrierIndia2024-04-12King, Christopher A Esq RENEWAL79Ivan Magalhaes
1028Jeanfrancois Z PaprockiUnited Kingdom2024-04-24Rousseaux, Michael Esq PROPOSAL59Ivan Magalhaes
1029Adams A KolmetzBrazil2024-04-04King, Christopher A Esq NEGOTIATION3Ioni Bowcher
1030Rodrigues I InouyeUnited Kingdom2024-04-03Rousseaux, Michael Esq UNQUALIFIED15Elwin Sharvill
1031Maria Z WaycottCanada2024-04-19Morlong Associates QUALIFIED70Anna Fali
1032Johnson V SlusarskiBrazil2024-04-17Printing Dimensions NEW63Bernardo Dominic
1033Mujtaba Q PaprockiArgentina2024-04-26Truhlar And Truhlar Attys RENEWAL92Elwin Sharvill
1034Chavez Q DoeCanada2024-04-15Rangoni Of Florence QUALIFIED20Amy Elsner
1035Smith O DoeUnited Kingdom2024-03-30Rangoni Of Florence NEW21Asiya Javayant
1036Tony O MaletArgentina2024-04-09Benton, John B Jr UNQUALIFIED52Anna Fali
1037Kaitlin R NickaGermany2024-04-09King, Christopher A Esq NEGOTIATION45Xuxue Feng
1038Misaki K FerenczCanada2024-04-09Morlong Associates NEGOTIATION16Bernardo Dominic
1039Octavia E StockhamArgentina2024-04-11Printing Dimensions UNQUALIFIED97Xuxue Feng
1040Rodrigues F DarakjyGermany2024-04-12Buckley Miller Wright RENEWAL34Stephen Shaw
1041Julie M DoeSpain2024-04-04Feiner Bros UNQUALIFIED80Ivan Magalhaes
1042Murillo Q RulapaughIndia2024-04-03Chapman, Ross E Esq NEW75Asiya Javayant
1043Morrow F MarrierCanada2024-04-19Feiner Bros QUALIFIED46Anna Fali
1044Octavia T WaycottCanada2024-04-21Truhlar And Truhlar Attys RENEWAL47Amy Elsner
1045Maria Z DilliardArgentina2024-04-19Rangoni Of Florence PROPOSAL91Onyama Limba
1046David Z CaldareraGermany2024-03-28Dorl, James J Esq RENEWAL41Ivan Magalhaes
1047Octavia R OstroskyUnited Kingdom2024-03-31Rangoni Of Florence RENEWAL71Onyama Limba
1048Munro D GillianBrazil2024-03-29Commercial Press QUALIFIED67Stephen Shaw
1049Rodrigues M WhobreyBrazil2024-04-22Printing Dimensions NEW18Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens M WieserRussiaXuxue Feng QUALIFIED
Arvin Y MaletAustraliaAmy Elsner QUALIFIED
James V KolmetzSpainIoni Bowcher RENEWAL
Wickens F RutaFranceOnyama Limba PROPOSAL
Jeanfrancois Z DilliardItalyElwin Sharvill UNQUALIFIED
Ricardo U FlosiFranceAmy Elsner NEGOTIATION
Johnson U FerenczJapanStephen Shaw RENEWAL
Nicolas J FlosiBrazilStephen Shaw QUALIFIED
Ricardo U PerinCanadaXuxue Feng PROPOSAL
Kaitlin B GillianSpainXuxue Feng NEW
Claire B GlickGermanyStephen Shaw PROPOSAL
Ricardo T TollnerCanadaXuxue Feng QUALIFIED
Jeanfrancois B WaycottAustraliaBernardo Dominic RENEWAL
Darci U PaprockiJapanXuxue Feng RENEWAL
Kadeem N MaletItalyIvan Magalhaes NEW
Wickens O ChuiRussiaStephen Shaw NEGOTIATION
Johnson S AmigonBrazilAnna Fali RENEWAL
Isabel W GillianUnited KingdomAnna Fali RENEWAL
Alejandro D PoquetteAustraliaAnna Fali UNQUALIFIED
Ashley H ButtBrazilAnna Fali NEGOTIATION
David V ChuiArgentinaElwin Sharvill PROPOSAL
Salvatore B CaudyRussiaXuxue Feng UNQUALIFIED
James G CampainUnited KingdomAsiya Javayant RENEWAL
Munro D BologniaRussiaElwin Sharvill UNQUALIFIED
Nicolas M OstroskyArgentinaIoni Bowcher NEW
Deepesh Q NestleBrazilXuxue Feng RENEWAL
Kadeem T FollerGermanyElwin Sharvill UNQUALIFIED
Clifford C RimRussiaAmy Elsner NEW
Leja D FigeroaIndiaXuxue Feng RENEWAL
Costa D GauchoItalyXuxue Feng NEGOTIATION
David U BologniaUnited KingdomAnna Fali QUALIFIED
Isabel O DarakjyIndiaElwin Sharvill RENEWAL
Izzy W InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Faith X SergiCanadaAmy Elsner QUALIFIED
Rodrigues V AlbaresArgentinaAsiya Javayant NEGOTIATION
Antonio T FigeroaArgentinaAnna Fali UNQUALIFIED
Adams E SergiIndiaAmy Elsner RENEWAL
Smith M BologniaAustraliaOnyama Limba QUALIFIED
Ricardo N FlosiRussiaElwin Sharvill RENEWAL
Maisha H RutaAustraliaOnyama Limba PROPOSAL
Murillo G StensethIndiaXuxue Feng NEW
Smith P DilliardUnited KingdomOnyama Limba UNQUALIFIED
Izzy X BologniaJapanBernardo Dominic NEGOTIATION
Claire V FlosiBrazilIvan Magalhaes RENEWAL
Sinclair J StockhamAustraliaAmy Elsner PROPOSAL
Johnson V MaletGermanyOnyama Limba NEGOTIATION
Tony K SergiRussiaAsiya Javayant RENEWAL
Alejandro F RimRussiaIoni Bowcher NEGOTIATION
Ricardo Y MarrierUnited KingdomStephen Shaw NEW
Leon R DoeItalyOnyama Limba PROPOSAL
Frozen Columns
Name
Aruna Z Albares
Morrow F Nestle
Wickens N Shinko
Chavez S Malet
Darci T Darakjy
David Q Amigon
Greenwood H Ferencz
Nicolas Y Waycott
Adams T Bolognia
Maria A Sergi
Mujtaba D Flosi
Faith U Caudy
Munro J Rulapaugh
Ivar Y Flosi
Johnson A Bowley
Juan E Waycott
Leon I Darakjy
Ashley O Wieser
Jones Y Whobrey
Octavia C Ferencz
Cody E Nestle
Clifford N Maclead
Claire Z Marrier
Octavia H Sergi
Morrow E Vocelka
Adams J Chui
Jennifer O Nicka
Maisha P Malet
Munro M Perin
Tony R Malet
Francesco B Bowley
Greenwood O Rim
Jefferson C Bolognia
Chavez W Rim
Aika W Tollner
Deepesh V Chui
Octavia H Paprocki
Aditya T Iturbide
Ricardo O Malet
Izzy C Nicka
Chavez U Caldarera
Jeanfrancois B Garufi
Smith Z Slusarski
Stacey Q Saylors
Ivar H Maclead
Faith K Foller
Wickens T Tollner
Arvin B Figeroa
Greenwood P Schemmer
James J Garufi
IdCountryDate
1000Australia2024-03-29
1001France2024-04-05
1002Canada2024-03-28
1003Russia2024-04-06
1004Argentina2024-04-14
1005Germany2024-04-02
1006Australia2024-04-23
1007India2024-04-25
1008Australia2024-04-07
1009Australia2024-04-17
1010Brazil2024-04-16
1011France2024-04-09
1012Argentina2024-04-09
1013Japan2024-04-21
1014India2024-04-02
1015Canada2024-04-22
1016Russia2024-04-02
1017Argentina2024-04-22
1018Japan2024-04-02
1019Russia2024-04-15
1020India2024-04-24
1021Spain2024-04-21
1022India2024-04-10
1023United Kingdom2024-04-14
1024Spain2024-03-30
1025Argentina2024-03-31
1026France2024-04-08
1027France2024-04-03
1028Russia2024-04-07
1029Japan2024-04-14
1030Italy2024-04-18
1031United Kingdom2024-03-30
1032Canada2024-03-29
1033Canada2024-04-18
1034Italy2024-04-25
1035Russia2024-03-30
1036Russia2024-04-11
1037France2024-04-19
1038Spain2024-04-20
1039United Kingdom2024-04-26
1040Brazil2024-04-15
1041Argentina2024-04-14
1042Australia2024-04-05
1043Brazil2024-04-16
1044France2024-04-03
1045Spain2024-04-06
1046Brazil2024-04-09
1047Japan2024-04-17
1048Australia2024-03-31
1049Argentina2024-04-12

On-Demand Data

NameIdCountryDate
Murillo H Slusarski1000Australia2024-04-15
Leon F Doe1001Australia2024-04-10
Maria A Figeroa1002Spain2024-04-22
Wickens R Saylors1003India2024-04-19
Tony F Garufi1004Argentina2024-04-23
Emily A Saylors1005Italy2024-04-26
Emily B Malet1006Japan2024-04-05
Juan T Malet1007Italy2024-04-12
Deepesh K Flosi1008Brazil2024-03-31
Greenwood M Royster1009Japan2024-04-06
Mayumi O Bolognia1010Japan2024-04-09
Darci Z Gaucho1011France2024-04-18
Stacey B Perin1012Australia2024-03-31
Izzy U Bolognia1013France2024-04-17
Murillo H Oldroyd1014France2024-03-29
Aika O Foller1015Brazil2024-04-23
Mayumi K Nicka1016United Kingdom2024-04-16
Leon P Venere1017France2024-04-26
Mayumi Y Shinko1018Brazil2024-04-26
Mayumi O Darakjy1019Japan2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar R InouyeAustraliaAmy Elsner PROPOSAL
Salvatore U GillianAustraliaIvan Magalhaes UNQUALIFIED
Misaki I PoquetteIndiaXuxue Feng QUALIFIED
James T BologniaBrazilAmy Elsner QUALIFIED
Mujtaba Y OstroskyRussiaBernardo Dominic QUALIFIED
Smith E AlbaresJapanIvan Magalhaes NEW
Aika J DarakjyIndiaElwin Sharvill UNQUALIFIED
Isabel W PoquetteRussiaStephen Shaw NEW
Mayumi W KolmetzIndiaBernardo Dominic PROPOSAL
Cody I OldroydIndiaAnna Fali UNQUALIFIED
David B SchemmerUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois Y RimFranceBernardo Dominic QUALIFIED
Izzy S NickaCanadaElwin Sharvill PROPOSAL
Stacey V FerenczGermanyStephen Shaw RENEWAL
Ivar C MacleadJapanIoni Bowcher NEGOTIATION
Rodrigues F BowleyJapanXuxue Feng QUALIFIED
Adams R CaldareraIndiaStephen Shaw NEW
Mayumi V OstroskyIndiaAsiya Javayant NEW
James P GarufiItalyElwin Sharvill PROPOSAL
David V PaprockiArgentinaBernardo Dominic QUALIFIED
Jones V BologniaUnited KingdomStephen Shaw NEW
Maria T MaletUnited KingdomStephen Shaw UNQUALIFIED
Juan X FigeroaGermanyStephen Shaw NEGOTIATION
Arvin X StockhamItalyAmy Elsner RENEWAL
Murillo K NickaItalyAmy Elsner NEGOTIATION
Ricardo E WieserFranceElwin Sharvill NEGOTIATION
Leja G ShinkoIndiaXuxue Feng NEW
Jones H PaprockiCanadaXuxue Feng RENEWAL
Kadeem K GlickArgentinaIoni Bowcher PROPOSAL
Adams V MaletUnited KingdomElwin Sharvill NEW
Kaitlin M PaprockiIndiaIoni Bowcher UNQUALIFIED
Juan R OldroydItalyXuxue Feng UNQUALIFIED
Stacey T RulapaughAustraliaStephen Shaw UNQUALIFIED
Wickens U StockhamSpainStephen Shaw NEGOTIATION
Nicolas I AlbaresItalyXuxue Feng NEGOTIATION
Misaki L MaletFranceBernardo Dominic RENEWAL
Alejandro L SergiJapanStephen Shaw RENEWAL
Nicolas V DoeIndiaIoni Bowcher RENEWAL
Jennifer C ShinkoArgentinaElwin Sharvill NEGOTIATION
Tony T PerinIndiaXuxue Feng 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>