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
Mujtaba I RoysterJapanStephen Shaw NEGOTIATION
Ivar Z GauchoRussiaIvan Magalhaes NEW
Stacey P PerinGermanyAsiya Javayant QUALIFIED
Julie C SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Cody E DilliardUnited KingdomBernardo Dominic RENEWAL
Antonio V CampainBrazilAnna Fali QUALIFIED
Mayumi X KolmetzJapanIoni Bowcher QUALIFIED
Isabel G IturbideItalyElwin Sharvill NEW
Jefferson U IturbideItalyXuxue Feng NEGOTIATION
Emily H NickaSpainXuxue Feng QUALIFIED
Aruna B CaudyBrazilIvan Magalhaes PROPOSAL
Mujtaba E DoeBrazilBernardo Dominic UNQUALIFIED
Mujtaba J OldroydSpainBernardo Dominic RENEWAL
Smith R GarufiSpainElwin Sharvill NEGOTIATION
Faith W CaudySpainOnyama Limba PROPOSAL
Antonio P StensethArgentinaIvan Magalhaes RENEWAL
Sinclair M WaycottFranceElwin Sharvill NEW
Arvin T StensethJapanAnna Fali PROPOSAL
Darci W FlosiAustraliaIoni Bowcher NEGOTIATION
Antonio S GlickJapanBernardo Dominic QUALIFIED
Leja L CaldareraCanadaAsiya Javayant QUALIFIED
Maisha Y GarufiUnited KingdomXuxue Feng UNQUALIFIED
Cody B VocelkaFranceOnyama Limba QUALIFIED
Johnson B WhobreyAustraliaStephen Shaw QUALIFIED
Jefferson J ButtSpainElwin Sharvill QUALIFIED
Leon R StockhamFranceIvan Magalhaes RENEWAL
Smith K GlickGermanyElwin Sharvill QUALIFIED
David N WieserArgentinaOnyama Limba NEGOTIATION
Alejandro H BriddickGermanyAsiya Javayant PROPOSAL
Faith P FerenczBrazilElwin Sharvill QUALIFIED
David F BowleyRussiaXuxue Feng NEW
Sinclair H GlickSpainXuxue Feng PROPOSAL
Ivar S AmigonRussiaAnna Fali PROPOSAL
Stacey C MaletRussiaAnna Fali NEGOTIATION
Aika P StockhamUnited KingdomElwin Sharvill PROPOSAL
David O VocelkaRussiaIvan Magalhaes PROPOSAL
Ivar P GauchoUnited KingdomBernardo Dominic NEGOTIATION
Mayumi E CampainRussiaXuxue Feng QUALIFIED
Izzy L StensethItalyIvan Magalhaes PROPOSAL
Costa Z NestleRussiaAnna Fali NEGOTIATION
Misaki X RoysterFranceStephen Shaw RENEWAL
Jennifer L WaycottAustraliaIvan Magalhaes PROPOSAL
Rodrigues U GillianJapanOnyama Limba UNQUALIFIED
Mayumi L MorascaArgentinaElwin Sharvill NEW
Jennifer B RulapaughRussiaElwin Sharvill NEGOTIATION
Misaki J CaldareraRussiaIoni Bowcher RENEWAL
Emily J StensethCanadaElwin Sharvill NEW
Stacey L FlosiGermanyAnna Fali NEGOTIATION
Francesco V SergiJapanElwin Sharvill PROPOSAL
Alejandro X StockhamItalyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio R AlbaresArgentinaElwin Sharvill UNQUALIFIED
Jones J ChuiSpainIvan Magalhaes NEW
Rodrigues S BologniaCanadaXuxue Feng PROPOSAL
David A AlbaresGermanyElwin Sharvill NEGOTIATION
Mayumi M AmigonAustraliaBernardo Dominic UNQUALIFIED
Mujtaba D BologniaFranceStephen Shaw NEW
Clifford A SlusarskiGermanyAsiya Javayant UNQUALIFIED
Kaitlin R MaletGermanyElwin Sharvill QUALIFIED
Tony W ChuiSpainOnyama Limba NEGOTIATION
Darci G MorascaItalyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily G CaudyAustralia2024-04-07Chemel, James L Cpa UNQUALIFIED7Xuxue Feng
1001James E PaprockiSpain2024-04-02Feiner Bros RENEWAL44Ivan Magalhaes
1002Izzy I MaletGermany2024-04-11Buckley Miller Wright NEW12Bernardo Dominic
1003Clifford E KuskoUnited Kingdom2024-03-30Feiner Bros NEW85Bernardo Dominic
1004Nicolas Q DoeJapan2024-04-16Rousseaux, Michael Esq QUALIFIED6Elwin Sharvill
1005Silvio O DoeArgentina2024-04-10Printing Dimensions UNQUALIFIED41Ivan Magalhaes
1006Jeanfrancois U RoysterJapan2024-04-08Truhlar And Truhlar Attys UNQUALIFIED44Anna Fali
1007Antonio R SchemmerItaly2024-03-28Benton, John B Jr PROPOSAL13Onyama Limba
1008Murillo H VenereSpain2024-04-17Truhlar And Truhlar Attys PROPOSAL98Xuxue Feng
1009Jennifer G TollnerArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION97Bernardo Dominic
1010Stacey D MaletCanada2024-04-12Truhlar And Truhlar Attys NEGOTIATION50Anna Fali
1011Costa L FerenczAustralia2024-04-06Chapman, Ross E Esq PROPOSAL31Anna Fali
1012Isabel Q StockhamJapan2024-04-17Feltz Printing Service NEW54Stephen Shaw
1013Jefferson V BriddickItaly2024-04-05Chanay, Jeffrey A Esq NEW93Anna Fali
1014Johnson I DarakjyIndia2024-03-31Benton, John B Jr NEGOTIATION66Anna Fali
1015James T DarakjyRussia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED93Amy Elsner
1016Smith U InouyeGermany2024-04-10Feltz Printing Service RENEWAL60Asiya Javayant
1017Julie R RimFrance2024-04-04Morlong Associates NEGOTIATION16Elwin Sharvill
1018Jefferson C MaletFrance2024-04-08Buckley Miller Wright NEW37Ivan Magalhaes
1019Julie V MacleadJapan2024-04-19Rangoni Of Florence UNQUALIFIED58Amy Elsner
1020Rodrigues F ChuiGermany2024-04-18Printing Dimensions QUALIFIED64Amy Elsner
1021Cody A ButtItaly2024-04-15Benton, John B Jr NEW90Bernardo Dominic
1022Francesco X RimGermany2024-04-08Chanay, Jeffrey A Esq NEW36Amy Elsner
1023Costa A VenereUnited Kingdom2024-04-07Buckley Miller Wright QUALIFIED31Ioni Bowcher
1024Maisha D DoeCanada2024-04-12Benton, John B Jr NEW68Ivan Magalhaes
1025Aika J PaprockiAustralia2024-03-27Feltz Printing Service QUALIFIED25Anna Fali
1026Ashley H StensethArgentina2024-04-16Benton, John B Jr QUALIFIED87Anna Fali
1027Cody H VocelkaRussia2024-04-15Truhlar And Truhlar Attys UNQUALIFIED41Anna Fali
1028James D ChuiItaly2024-04-21Rousseaux, Michael Esq UNQUALIFIED54Anna Fali
1029Silvio U RoysterJapan2024-04-11Feltz Printing Service PROPOSAL70Ivan Magalhaes
1030Emily R GillianArgentina2024-04-15Chapman, Ross E Esq RENEWAL20Elwin Sharvill
1031Maria G PaprockiGermany2024-04-22Truhlar And Truhlar Attys NEGOTIATION85Onyama Limba
1032Maisha X FerenczUnited Kingdom2024-04-07King, Christopher A Esq QUALIFIED67Stephen Shaw
1033Nicolas S FlosiItaly2024-04-21Truhlar And Truhlar Attys PROPOSAL60Asiya Javayant
1034Adams X SaylorsGermany2024-04-21Buckley Miller Wright PROPOSAL58Xuxue Feng
1035Ivar A MacleadItaly2024-03-29Rangoni Of Florence RENEWAL69Ivan Magalhaes
1036Chavez U StockhamJapan2024-04-24Benton, John B Jr QUALIFIED59Bernardo Dominic
1037Kadeem M MaletArgentina2024-04-14Chemel, James L Cpa NEW52Onyama Limba
1038Misaki X FigeroaCanada2024-04-25Rangoni Of Florence RENEWAL3Ivan Magalhaes
1039Ricardo U MacleadFrance2024-04-09Chemel, James L Cpa QUALIFIED74Bernardo Dominic
1040Adams U DoeIndia2024-04-15Chemel, James L Cpa RENEWAL70Onyama Limba
1041Kaitlin M NickaFrance2024-04-13Chemel, James L Cpa NEGOTIATION34Ivan Magalhaes
1042Morrow W PaprockiAustralia2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED73Bernardo Dominic
1043Aika H InouyeSpain2024-04-17Dorl, James J Esq NEW55Ioni Bowcher
1044Mayumi X PaprockiAustralia2024-04-07Chapman, Ross E Esq RENEWAL97Onyama Limba
1045Leja J WieserIndia2024-03-28Chapman, Ross E Esq NEW21Elwin Sharvill
1046Jefferson G KuskoFrance2024-04-15Chemel, James L Cpa NEGOTIATION34Ioni Bowcher
1047Salvatore K StensethArgentina2024-04-01Benton, John B Jr NEW1Amy Elsner
1048Tony Y StensethGermany2024-03-29Benton, John B Jr PROPOSAL80Bernardo Dominic
1049Misaki L GillianBrazil2024-04-05Benton, John B Jr NEW61Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aika F RimRussiaAsiya Javayant NEW
Octavia N WhobreyUnited KingdomXuxue Feng UNQUALIFIED
Octavia K ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Aditya I InouyeRussiaAmy Elsner NEW
Misaki Z BologniaGermanyStephen Shaw QUALIFIED
David E GarufiIndiaElwin Sharvill QUALIFIED
Clifford F SaylorsFranceAmy Elsner PROPOSAL
Leja D NestleBrazilAnna Fali UNQUALIFIED
Ivar M BowleyGermanyBernardo Dominic QUALIFIED
Ricardo M StockhamJapanIvan Magalhaes RENEWAL
Greenwood Z MarrierBrazilBernardo Dominic QUALIFIED
Aika W SchemmerGermanyIoni Bowcher NEGOTIATION
Nicolas A CaudyIndiaAnna Fali NEGOTIATION
Deepesh T CampainBrazilIvan Magalhaes NEGOTIATION
Alejandro A ShinkoRussiaXuxue Feng PROPOSAL
Johnson W TollnerArgentinaStephen Shaw UNQUALIFIED
Johnson I RimFranceOnyama Limba QUALIFIED
Stacey N SaylorsBrazilElwin Sharvill QUALIFIED
Ricardo U WhobreyJapanXuxue Feng NEW
Jeanfrancois B PaprockiBrazilIvan Magalhaes NEW
Murillo Y StockhamSpainXuxue Feng PROPOSAL
Mujtaba C GarufiSpainStephen Shaw UNQUALIFIED
Salvatore P WieserItalyXuxue Feng RENEWAL
Wickens W AmigonIndiaIoni Bowcher NEW
Aruna U FerenczItalyXuxue Feng PROPOSAL
Sinclair M SchemmerCanadaXuxue Feng QUALIFIED
Mayumi J RoysterIndiaOnyama Limba NEW
Leon W InouyeSpainAsiya Javayant QUALIFIED
Misaki H SaylorsBrazilElwin Sharvill NEW
Faith V SaylorsAustraliaAsiya Javayant NEGOTIATION
Jones I NickaIndiaElwin Sharvill PROPOSAL
Octavia R ShinkoRussiaStephen Shaw QUALIFIED
Faith H SergiIndiaIoni Bowcher NEW
Aika N StockhamJapanBernardo Dominic UNQUALIFIED
Chavez V RimArgentinaXuxue Feng UNQUALIFIED
Greenwood W DarakjyAustraliaOnyama Limba NEGOTIATION
Francesco D RulapaughFranceOnyama Limba NEGOTIATION
Emily A KolmetzItalyAmy Elsner QUALIFIED
James A SchemmerUnited KingdomIoni Bowcher RENEWAL
Ivar O FlosiCanadaStephen Shaw NEGOTIATION
David G OldroydItalyIvan Magalhaes QUALIFIED
Mayumi C SergiIndiaAnna Fali QUALIFIED
Maria C DoeGermanyAnna Fali NEGOTIATION
Silvio Z RoysterIndiaXuxue Feng NEGOTIATION
Rodrigues U MacleadRussiaOnyama Limba NEW
Leja P BriddickAustraliaIoni Bowcher PROPOSAL
Clifford D TollnerAustraliaAnna Fali NEGOTIATION
Aika J PerinRussiaIvan Magalhaes NEW
Mayumi P SergiCanadaAnna Fali NEW
Rodrigues F ShinkoCanadaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Johnson P Foller
Tony P Garufi
Aika Q Ostrosky
Ricardo B Malet
Silvio L Malet
Tony Z Ostrosky
Ivar K Maclead
Costa T Stenseth
Mayumi D Garufi
Kaitlin R Kusko
Ivar H Tollner
Silvio I Maclead
Misaki D Bowley
Claire Q Oldroyd
Johnson A Slusarski
Johnson E Marrier
Ricardo J Morasca
Chavez T Dilliard
Juan T Kolmetz
James N Garufi
Isabel P Schemmer
Wickens F Kusko
Chavez Q Figeroa
Munro Y Maclead
Jennifer Z Poquette
Deepesh C Nestle
Aruna O Slusarski
Kaitlin E Saylors
Maria E Doe
Leon B Shinko
Alejandro Y Butt
Aditya S Maclead
Ivar Z Stockham
Ricardo G Nicka
Julie X Wieser
Kaitlin G Vocelka
Aruna Z Bolognia
Cody E Sergi
Antonio Q Wieser
David W Garufi
Greenwood X Marrier
Stacey K Bolognia
Faith G Rulapaugh
Tony R Schemmer
Leon M Schemmer
Arvin D Rulapaugh
David W Garufi
Tony W Rulapaugh
Sinclair I Malet
Silvio Z Chui
IdCountryDate
1000Canada2024-04-12
1001United Kingdom2024-04-17
1002Canada2024-04-06
1003Japan2024-04-12
1004India2024-04-09
1005Spain2024-04-14
1006Japan2024-04-05
1007France2024-03-31
1008United Kingdom2024-03-29
1009Argentina2024-04-03
1010India2024-04-10
1011United Kingdom2024-03-27
1012Italy2024-04-20
1013India2024-04-22
1014Germany2024-04-07
1015Spain2024-04-08
1016Canada2024-04-15
1017Germany2024-04-05
1018France2024-04-19
1019Australia2024-04-04
1020Argentina2024-04-17
1021Canada2024-04-19
1022Spain2024-03-28
1023Japan2024-04-22
1024Argentina2024-04-22
1025Russia2024-04-18
1026India2024-04-22
1027Russia2024-03-30
1028Canada2024-03-30
1029France2024-04-05
1030France2024-04-17
1031Japan2024-04-04
1032India2024-03-28
1033Brazil2024-04-09
1034United Kingdom2024-04-10
1035Italy2024-03-31
1036Japan2024-04-06
1037Spain2024-03-31
1038Italy2024-04-17
1039United Kingdom2024-04-09
1040Japan2024-03-28
1041Australia2024-04-10
1042Canada2024-03-28
1043United Kingdom2024-04-22
1044France2024-04-20
1045Spain2024-03-27
1046Argentina2024-04-07
1047Canada2024-04-21
1048India2024-03-30
1049Australia2024-04-01

On-Demand Data

NameIdCountryDate
Deepesh W Caldarera1000Russia2024-04-14
Munro D Caudy1001Japan2024-04-07
Darci K Caldarera1002Spain2024-04-25
Julie F Royster1003Spain2024-04-24
Stacey S Butt1004United Kingdom2024-04-07
Ivar O Slusarski1005United Kingdom2024-04-23
Johnson A Slusarski1006Japan2024-04-25
Alejandro M Amigon1007Argentina2024-03-29
James V Maclead1008Italy2024-04-12
Faith U Ostrosky1009Russia2024-04-18
Smith A Poquette1010United Kingdom2024-04-02
James Z Campain1011Argentina2024-03-29
Salvatore N Albares1012Canada2024-04-19
Mujtaba U Schemmer1013Germany2024-04-17
Antonio K Briddick1014India2024-04-19
Leja C Royster1015Italy2024-04-16
Antonio B Malet1016India2024-04-21
Wickens F Garufi1017France2024-04-07
Darci O Darakjy1018Germany2024-03-28
Darci V Ferencz1019Australia2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar W RimArgentinaStephen Shaw RENEWAL
Mayumi L FollerFranceAmy Elsner PROPOSAL
Smith M RoysterItalyIvan Magalhaes RENEWAL
Jones H DoeItalyIoni Bowcher PROPOSAL
Claire K DilliardAustraliaIoni Bowcher RENEWAL
Mayumi P InouyeArgentinaIoni Bowcher RENEWAL
Faith I AlbaresIndiaOnyama Limba RENEWAL
Antonio L SaylorsCanadaAmy Elsner RENEWAL
Mayumi I WaycottGermanyIvan Magalhaes UNQUALIFIED
Darci K WhobreyAustraliaOnyama Limba RENEWAL
Morrow L ChuiBrazilIvan Magalhaes UNQUALIFIED
Salvatore U NestleArgentinaAsiya Javayant RENEWAL
Jefferson Z FlosiGermanyXuxue Feng QUALIFIED
Juan M RoysterArgentinaIvan Magalhaes UNQUALIFIED
Wickens Z MarrierFranceIoni Bowcher NEGOTIATION
Misaki D GauchoJapanIvan Magalhaes UNQUALIFIED
Morrow M AlbaresRussiaIoni Bowcher UNQUALIFIED
Francesco N FollerUnited KingdomOnyama Limba RENEWAL
Izzy M SchemmerRussiaXuxue Feng NEW
Wickens O FlosiSpainIvan Magalhaes PROPOSAL
Leja D MarrierUnited KingdomAnna Fali QUALIFIED
Rodrigues E FollerItalyIvan Magalhaes NEW
Kadeem G SchemmerUnited KingdomIoni Bowcher PROPOSAL
Claire G KolmetzGermanyIoni Bowcher NEW
Juan X DoeGermanyElwin Sharvill RENEWAL
Kadeem J VocelkaArgentinaAnna Fali PROPOSAL
Nicolas Z NickaSpainAnna Fali PROPOSAL
Francesco Q DoeRussiaBernardo Dominic QUALIFIED
Deepesh R AlbaresJapanAmy Elsner NEW
Jennifer N RoysterUnited KingdomOnyama Limba QUALIFIED
Mayumi J DarakjyArgentinaElwin Sharvill NEW
Emily V FerenczItalyOnyama Limba NEGOTIATION
Leon L StockhamUnited KingdomXuxue Feng NEW
Leja F KolmetzGermanyIoni Bowcher PROPOSAL
Claire E MorascaGermanyBernardo Dominic QUALIFIED
Alejandro X KuskoJapanIvan Magalhaes RENEWAL
Aika W TollnerCanadaAsiya Javayant RENEWAL
Jones J MarrierJapanIvan Magalhaes NEW
Silvio G ShinkoFranceAmy Elsner QUALIFIED
Rodrigues Y MorascaUnited KingdomElwin Sharvill 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>