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
Jones G FlosiFranceIoni Bowcher UNQUALIFIED
Faith A NickaRussiaXuxue Feng PROPOSAL
Clifford C RoysterRussiaAnna Fali UNQUALIFIED
Morrow B RoysterIndiaAsiya Javayant RENEWAL
Jennifer Z RulapaughItalyXuxue Feng NEGOTIATION
Mujtaba P SchemmerIndiaXuxue Feng NEGOTIATION
Wickens F NickaItalyBernardo Dominic NEW
Kadeem N WaycottUnited KingdomAsiya Javayant RENEWAL
Aditya P WieserSpainOnyama Limba NEW
Francesco D SergiItalyBernardo Dominic RENEWAL
Greenwood E PoquetteGermanyOnyama Limba RENEWAL
Greenwood Y KuskoAustraliaElwin Sharvill NEGOTIATION
Faith N SlusarskiAustraliaBernardo Dominic RENEWAL
Antonio W MarrierIndiaIoni Bowcher UNQUALIFIED
Greenwood R OstroskyItalyAnna Fali PROPOSAL
Cody U MacleadRussiaAsiya Javayant RENEWAL
Nicolas W FlosiSpainAsiya Javayant PROPOSAL
Misaki Q ChuiArgentinaOnyama Limba RENEWAL
Kaitlin X AlbaresCanadaAsiya Javayant UNQUALIFIED
Faith Z NestleBrazilElwin Sharvill PROPOSAL
Greenwood J BriddickGermanyAmy Elsner NEW
Jefferson W GillianItalyBernardo Dominic NEGOTIATION
Jones A SaylorsItalyAnna Fali QUALIFIED
Faith U GlickJapanBernardo Dominic QUALIFIED
Ashley O RutaBrazilBernardo Dominic QUALIFIED
Ashley P PaprockiArgentinaAmy Elsner PROPOSAL
David I MaletCanadaStephen Shaw PROPOSAL
Kaitlin D MaletUnited KingdomElwin Sharvill UNQUALIFIED
Arvin P AmigonRussiaAmy Elsner PROPOSAL
Stacey H GauchoFranceBernardo Dominic QUALIFIED
Sinclair M KolmetzSpainIoni Bowcher UNQUALIFIED
Ivar I GarufiGermanyBernardo Dominic NEW
Arvin M StensethIndiaBernardo Dominic QUALIFIED
Claire F GillianFranceAnna Fali NEW
Wickens C RoysterArgentinaElwin Sharvill QUALIFIED
Izzy C OldroydItalyAnna Fali NEW
Leja A CaudyJapanAnna Fali PROPOSAL
Morrow P BologniaGermanyOnyama Limba NEGOTIATION
David H TollnerArgentinaAnna Fali PROPOSAL
Jennifer H DoeIndiaAmy Elsner RENEWAL
Johnson K CaldareraBrazilIoni Bowcher RENEWAL
Leja R DarakjyIndiaAsiya Javayant PROPOSAL
Greenwood M PaprockiFranceXuxue Feng PROPOSAL
Aika V IturbideJapanOnyama Limba QUALIFIED
Sinclair E NestleUnited KingdomStephen Shaw NEGOTIATION
Octavia E OldroydRussiaIvan Magalhaes NEGOTIATION
Izzy U FollerSpainIvan Magalhaes RENEWAL
Julie X BowleyItalyAnna Fali PROPOSAL
Juan F RimRussiaStephen Shaw UNQUALIFIED
Sinclair U ShinkoArgentinaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh J NickaRussiaIvan Magalhaes PROPOSAL
Ashley D CaudyIndiaBernardo Dominic QUALIFIED
Mujtaba C NestleBrazilXuxue Feng QUALIFIED
Smith C FlosiSpainBernardo Dominic RENEWAL
Johnson Y RimUnited KingdomXuxue Feng NEW
Isabel A MarrierRussiaStephen Shaw UNQUALIFIED
Munro L GauchoAustraliaOnyama Limba QUALIFIED
Kaitlin I GarufiFranceBernardo Dominic NEW
Francesco K ShinkoBrazilXuxue Feng QUALIFIED
Nicolas B GarufiItalyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar N NickaBrazil2024-04-10Feiner Bros QUALIFIED53Onyama Limba
1001Morrow C GarufiUnited Kingdom2024-03-30Chapman, Ross E Esq NEW47Xuxue Feng
1002Ricardo Y KuskoFrance2024-04-15Morlong Associates PROPOSAL35Xuxue Feng
1003Clifford S WhobreyFrance2024-04-14Commercial Press QUALIFIED43Bernardo Dominic
1004Maisha E OldroydGermany2024-04-08Truhlar And Truhlar Attys RENEWAL74Elwin Sharvill
1005Jones J TollnerFrance2024-04-04Feltz Printing Service QUALIFIED52Ivan Magalhaes
1006Jefferson O FollerArgentina2024-04-03Truhlar And Truhlar Attys QUALIFIED21Xuxue Feng
1007Octavia O FollerFrance2024-04-06Rousseaux, Michael Esq RENEWAL9Onyama Limba
1008Chavez S PerinBrazil2024-04-17Morlong Associates UNQUALIFIED44Ioni Bowcher
1009Octavia G GillianIndia2024-04-17Printing Dimensions RENEWAL42Amy Elsner
1010Ivar C OldroydGermany2024-04-05Chemel, James L Cpa RENEWAL7Onyama Limba
1011Murillo L NickaIndia2024-03-31Commercial Press NEGOTIATION87Amy Elsner
1012Antonio D CaldareraCanada2024-04-06Commercial Press RENEWAL85Elwin Sharvill
1013Maisha G RulapaughAustralia2024-04-07Benton, John B Jr NEGOTIATION42Xuxue Feng
1014Leja M PerinSpain2024-04-08Printing Dimensions PROPOSAL5Elwin Sharvill
1015Murillo L SchemmerAustralia2024-04-10Benton, John B Jr PROPOSAL21Ivan Magalhaes
1016Misaki F GauchoSpain2024-03-29Feiner Bros PROPOSAL63Asiya Javayant
1017Clifford L MaletRussia2024-04-04Truhlar And Truhlar Attys NEGOTIATION24Bernardo Dominic
1018Jennifer N StockhamJapan2024-04-03Rangoni Of Florence UNQUALIFIED61Anna Fali
1019Salvatore J FigeroaCanada2024-04-07Printing Dimensions RENEWAL66Anna Fali
1020David G PaprockiUnited Kingdom2024-04-07Dorl, James J Esq PROPOSAL76Ioni Bowcher
1021Leja T SchemmerSpain2024-04-10Rousseaux, Michael Esq PROPOSAL22Elwin Sharvill
1022Johnson W OstroskyRussia2024-03-22Chapman, Ross E Esq NEW56Elwin Sharvill
1023Clifford X CaudyIndia2024-04-10Feiner Bros RENEWAL39Ioni Bowcher
1024Johnson V AlbaresArgentina2024-04-05Feiner Bros PROPOSAL59Bernardo Dominic
1025Cody O SchemmerArgentina2024-03-23Chemel, James L Cpa NEW59Ioni Bowcher
1026Johnson H BriddickSpain2024-04-05Chapman, Ross E Esq QUALIFIED11Xuxue Feng
1027Nicolas S AlbaresCanada2024-04-10Commercial Press UNQUALIFIED0Ivan Magalhaes
1028Deepesh A SaylorsFrance2024-04-13Chapman, Ross E Esq QUALIFIED91Xuxue Feng
1029Deepesh J WieserArgentina2024-04-03King, Christopher A Esq NEW16Xuxue Feng
1030Antonio Z RimAustralia2024-03-31Truhlar And Truhlar Attys PROPOSAL53Xuxue Feng
1031Costa H PaprockiItaly2024-03-27Truhlar And Truhlar Attys UNQUALIFIED7Amy Elsner
1032Faith Z NickaJapan2024-03-22Chapman, Ross E Esq RENEWAL33Elwin Sharvill
1033Nicolas Y RoysterItaly2024-04-12Benton, John B Jr NEGOTIATION19Onyama Limba
1034Adams M IturbideGermany2024-04-08Chapman, Ross E Esq QUALIFIED81Anna Fali
1035Misaki X BologniaIndia2024-03-22Morlong Associates QUALIFIED75Anna Fali
1036Izzy H PoquetteArgentina2024-04-08Chapman, Ross E Esq UNQUALIFIED57Xuxue Feng
1037Leon D CaldareraItaly2024-04-10Buckley Miller Wright NEW56Elwin Sharvill
1038Kadeem N KuskoBrazil2024-04-14Feiner Bros QUALIFIED51Bernardo Dominic
1039Smith N RutaBrazil2024-04-02Commercial Press PROPOSAL87Elwin Sharvill
1040Kadeem O SergiRussia2024-03-31Benton, John B Jr RENEWAL31Anna Fali
1041Murillo Q IturbideAustralia2024-03-27Feltz Printing Service NEW55Elwin Sharvill
1042Silvio W BowleyItaly2024-04-01Dorl, James J Esq UNQUALIFIED56Amy Elsner
1043Aditya K RulapaughCanada2024-04-18Morlong Associates NEGOTIATION4Elwin Sharvill
1044Maria S SaylorsUnited Kingdom2024-04-15Printing Dimensions QUALIFIED34Anna Fali
1045Octavia W GauchoSpain2024-03-24Morlong Associates UNQUALIFIED2Amy Elsner
1046Munro G StockhamFrance2024-03-21Chemel, James L Cpa RENEWAL94Bernardo Dominic
1047James R AlbaresJapan2024-03-20Chapman, Ross E Esq NEW67Asiya Javayant
1048Mujtaba I VocelkaAustralia2024-03-20Rousseaux, Michael Esq PROPOSAL26Onyama Limba
1049Maria Z FigeroaCanada2024-04-01Printing Dimensions PROPOSAL61Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Clifford Q VocelkaIndiaIoni Bowcher QUALIFIED
Wickens E KolmetzGermanyIoni Bowcher RENEWAL
Tony A DilliardUnited KingdomElwin Sharvill RENEWAL
Salvatore M WieserBrazilIoni Bowcher RENEWAL
Costa U KuskoFranceXuxue Feng PROPOSAL
Clifford B CaudyAustraliaAmy Elsner NEW
Juan A MaletAustraliaXuxue Feng UNQUALIFIED
Ashley S KuskoSpainOnyama Limba PROPOSAL
Faith Z GarufiBrazilXuxue Feng NEW
Jefferson V ButtJapanIvan Magalhaes NEW
Arvin E SchemmerBrazilAsiya Javayant NEW
Julie I FerenczUnited KingdomAsiya Javayant RENEWAL
Costa K MaletRussiaAmy Elsner NEW
Octavia O BowleyAustraliaAmy Elsner QUALIFIED
Cody M StockhamJapanStephen Shaw QUALIFIED
Sinclair M FollerJapanOnyama Limba RENEWAL
Jeanfrancois Y GarufiRussiaAmy Elsner NEW
Maria B SchemmerJapanIoni Bowcher RENEWAL
Rodrigues E CampainFranceAsiya Javayant RENEWAL
Sinclair Y MorascaGermanyAnna Fali NEGOTIATION
Murillo K FigeroaRussiaIvan Magalhaes QUALIFIED
Emily O CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Claire I StockhamGermanyStephen Shaw RENEWAL
Silvio J GauchoItalyStephen Shaw NEW
Munro E WaycottArgentinaXuxue Feng NEW
Costa O VocelkaItalyElwin Sharvill NEGOTIATION
Salvatore P FlosiItalyAsiya Javayant QUALIFIED
David C SchemmerAustraliaXuxue Feng RENEWAL
Jones P BologniaFranceAmy Elsner QUALIFIED
Mayumi X WhobreyGermanyAmy Elsner NEW
Arvin S OldroydSpainAnna Fali QUALIFIED
Smith L BowleyBrazilIoni Bowcher NEGOTIATION
Adams S BowleyRussiaAmy Elsner NEGOTIATION
Ivar C PaprockiAustraliaOnyama Limba NEGOTIATION
Kaitlin J FlosiGermanyStephen Shaw PROPOSAL
Maria Z NickaGermanyOnyama Limba UNQUALIFIED
Murillo R OldroydGermanyIvan Magalhaes RENEWAL
Chavez L MaletRussiaIoni Bowcher QUALIFIED
Cody T MaletUnited KingdomAsiya Javayant QUALIFIED
Sinclair M SaylorsIndiaIoni Bowcher QUALIFIED
Aditya T DoeArgentinaElwin Sharvill QUALIFIED
Francesco Y GarufiItalyIoni Bowcher NEW
Adams Z OstroskyRussiaStephen Shaw RENEWAL
Aditya E KuskoItalyAnna Fali NEW
David L ButtRussiaAmy Elsner NEW
Silvio G DoeSpainOnyama Limba NEW
Maisha W FlosiFranceAsiya Javayant NEGOTIATION
Tony W StockhamArgentinaAsiya Javayant NEGOTIATION
Silvio M GlickArgentinaOnyama Limba NEGOTIATION
Mayumi C MaletRussiaXuxue Feng RENEWAL
Frozen Columns
Name
Mayumi H Iturbide
Faith T Albares
Nicolas J Glick
Octavia D Gillian
Francesco Y Foller
Chavez X Briddick
Costa Y Shinko
Maria I Bolognia
Costa F Dilliard
Darci Q Gillian
Ashley N Foller
Wickens Y Dilliard
Sinclair Q Ostrosky
Jones N Stenseth
Ashley B Glick
Julie N Waycott
Sinclair U Oldroyd
Aruna W Gaucho
Maria R Amigon
Clifford E Stockham
Aruna P Paprocki
Aika Q Figeroa
Aditya U Doe
Antonio X Nestle
Octavia Z Bowley
Kaitlin S Ferencz
Chavez T Ruta
Jones Q Poquette
Jefferson Y Sergi
Juan V Malet
Murillo R Rim
Greenwood T Nicka
Smith M Paprocki
Jennifer P Sergi
Munro X Campain
Clifford B Flosi
Deepesh T Garufi
Aika D Ruta
Maria Q Ruta
James R Darakjy
Murillo S Bowley
Greenwood F Oldroyd
Jones A Morasca
Francesco X Iturbide
Munro C Ferencz
Deepesh G Figeroa
Rodrigues K Whobrey
Kaitlin W Stockham
Aika T Iturbide
Leja V Perin
IdCountryDate
1000Canada2024-03-20
1001Italy2024-03-30
1002Canada2024-04-12
1003United Kingdom2024-03-23
1004Japan2024-03-30
1005Canada2024-03-22
1006Brazil2024-04-06
1007Canada2024-03-27
1008India2024-04-02
1009United Kingdom2024-04-01
1010Spain2024-03-27
1011Japan2024-03-21
1012Germany2024-04-05
1013Japan2024-04-08
1014Argentina2024-03-23
1015Germany2024-03-24
1016France2024-03-22
1017Germany2024-04-11
1018Russia2024-04-09
1019India2024-04-10
1020Italy2024-04-02
1021Spain2024-03-31
1022Germany2024-03-26
1023Argentina2024-04-18
1024Japan2024-03-30
1025Canada2024-03-22
1026Italy2024-04-12
1027Brazil2024-04-01
1028Spain2024-04-03
1029France2024-03-23
1030Brazil2024-03-26
1031Spain2024-04-08
1032India2024-03-29
1033Japan2024-04-13
1034Russia2024-03-27
1035India2024-03-25
1036Spain2024-03-21
1037Japan2024-04-18
1038Russia2024-03-31
1039Brazil2024-04-14
1040Brazil2024-04-05
1041France2024-03-25
1042Argentina2024-04-07
1043Australia2024-03-24
1044Japan2024-04-18
1045Australia2024-04-08
1046Russia2024-04-15
1047United Kingdom2024-04-11
1048Canada2024-04-12
1049Spain2024-03-31

On-Demand Data

NameIdCountryDate
Isabel S Kusko1000Germany2024-03-28
Emily T Slusarski1001Russia2024-04-13
Kaitlin Q Rim1002Russia2024-04-12
Francesco B Kolmetz1003France2024-03-23
Arvin H Shinko1004Russia2024-04-11
Juan K Whobrey1005Russia2024-03-26
Misaki L Malet1006Italy2024-03-30
Smith H Dilliard1007Australia2024-03-22
Maisha A Bowley1008Germany2024-03-23
Leon E Gillian1009Australia2024-04-15
Mayumi K Gaucho1010Italy2024-04-16
Darci X Kusko1011France2024-04-02
Ivar S Butt1012Canada2024-03-29
Maria Z Nicka1013United Kingdom2024-03-29
Isabel F Bolognia1014Italy2024-03-22
Tony D Whobrey1015Italy2024-03-30
Ricardo E Malet1016Australia2024-04-02
Ashley M Malet1017France2024-04-06
Leja U Butt1018Spain2024-03-21
Munro B Ruta1019Australia2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro T RoysterSpainAnna Fali RENEWAL
Alejandro H CampainFranceElwin Sharvill PROPOSAL
Maisha L AlbaresRussiaAsiya Javayant NEGOTIATION
Ivar I RutaIndiaElwin Sharvill NEW
Adams M MarrierArgentinaStephen Shaw PROPOSAL
Kadeem Z RimAustraliaElwin Sharvill NEGOTIATION
Emily I PaprockiAustraliaAsiya Javayant UNQUALIFIED
Alejandro D PoquetteUnited KingdomXuxue Feng NEGOTIATION
Juan V InouyeJapanAmy Elsner NEGOTIATION
Isabel B SlusarskiCanadaOnyama Limba UNQUALIFIED
Morrow P ChuiRussiaIvan Magalhaes PROPOSAL
Aruna T PoquetteGermanyAsiya Javayant PROPOSAL
Juan E WaycottSpainOnyama Limba RENEWAL
Claire A GarufiGermanyIvan Magalhaes NEGOTIATION
Stacey M CaudyIndiaAmy Elsner PROPOSAL
Ashley F StensethCanadaElwin Sharvill UNQUALIFIED
Isabel J GlickBrazilIoni Bowcher NEW
Ashley U InouyeFranceIoni Bowcher PROPOSAL
Tony U RimIndiaStephen Shaw QUALIFIED
Faith K PoquetteJapanAsiya Javayant NEW
David U VenereCanadaAnna Fali PROPOSAL
Ricardo P WhobreyJapanBernardo Dominic UNQUALIFIED
Kaitlin X GlickFranceXuxue Feng UNQUALIFIED
Faith E RutaSpainXuxue Feng NEW
Smith A PoquetteSpainAmy Elsner NEGOTIATION
Silvio R OstroskyGermanyBernardo Dominic NEW
Leon B GillianBrazilBernardo Dominic RENEWAL
Misaki O ChuiArgentinaAmy Elsner PROPOSAL
Julie V ButtIndiaIvan Magalhaes QUALIFIED
Kaitlin O NickaBrazilXuxue Feng UNQUALIFIED
Adams X SchemmerFranceIoni Bowcher NEW
Izzy V PaprockiItalyXuxue Feng PROPOSAL
Nicolas G StensethJapanAsiya Javayant PROPOSAL
Ricardo B InouyeSpainStephen Shaw RENEWAL
Silvio I MorascaJapanElwin Sharvill NEW
Antonio Y DarakjyUnited KingdomXuxue Feng PROPOSAL
Juan O AmigonSpainOnyama Limba RENEWAL
Kadeem V GlickUnited KingdomAmy Elsner NEGOTIATION
Antonio U PerinArgentinaAsiya Javayant NEGOTIATION
Mayumi A FigeroaBrazilElwin Sharvill RENEWAL

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