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
Jennifer U AlbaresJapanBernardo Dominic RENEWAL
Isabel E PaprockiCanadaStephen Shaw PROPOSAL
Deepesh H OstroskyUnited KingdomStephen Shaw RENEWAL
Antonio G MarrierItalyAsiya Javayant NEGOTIATION
Sinclair J WieserFranceXuxue Feng PROPOSAL
Munro S GauchoRussiaStephen Shaw NEGOTIATION
Faith Q SlusarskiArgentinaXuxue Feng PROPOSAL
Sinclair A RoysterCanadaAmy Elsner RENEWAL
Juan H GillianAustraliaElwin Sharvill UNQUALIFIED
Aditya P SlusarskiUnited KingdomStephen Shaw QUALIFIED
Darci H MacleadFranceIoni Bowcher PROPOSAL
Rodrigues T OldroydItalyIvan Magalhaes UNQUALIFIED
Jefferson P MacleadFranceBernardo Dominic NEW
Ivar Q StensethUnited KingdomIvan Magalhaes QUALIFIED
David Y AmigonSpainAmy Elsner PROPOSAL
Octavia S IturbideBrazilAnna Fali UNQUALIFIED
Costa T RoysterIndiaXuxue Feng PROPOSAL
Deepesh X FerenczIndiaElwin Sharvill RENEWAL
Julie X GlickItalyIvan Magalhaes QUALIFIED
Nicolas P TollnerJapanAnna Fali RENEWAL
Aditya Z KuskoUnited KingdomIvan Magalhaes NEW
Ricardo I BriddickCanadaIvan Magalhaes UNQUALIFIED
Costa U FerenczCanadaStephen Shaw QUALIFIED
Arvin W RutaIndiaAmy Elsner PROPOSAL
Nicolas L FollerAustraliaAnna Fali RENEWAL
Kadeem A OldroydArgentinaAsiya Javayant NEW
Jones V DarakjySpainAsiya Javayant QUALIFIED
Tony N DoeItalyAmy Elsner PROPOSAL
Octavia J SchemmerIndiaAmy Elsner UNQUALIFIED
Jones B DoeItalyOnyama Limba RENEWAL
Julie Z OldroydJapanAsiya Javayant PROPOSAL
Morrow W CaudyUnited KingdomIvan Magalhaes QUALIFIED
Nicolas H AmigonItalyIoni Bowcher NEGOTIATION
James L PerinSpainStephen Shaw NEW
Leja G SlusarskiItalyXuxue Feng UNQUALIFIED
Emily J KuskoGermanyBernardo Dominic NEW
Stacey X BologniaArgentinaOnyama Limba NEW
Tony W GlickCanadaAnna Fali UNQUALIFIED
Sinclair H RulapaughUnited KingdomElwin Sharvill PROPOSAL
Cody C RutaIndiaAmy Elsner NEW
Kadeem E FollerRussiaAmy Elsner NEW
Izzy S WhobreyJapanBernardo Dominic UNQUALIFIED
Juan H RutaRussiaAnna Fali NEW
Munro C DoeSpainIoni Bowcher NEGOTIATION
Jeanfrancois D NickaBrazilIvan Magalhaes QUALIFIED
Faith Y MarrierGermanyIoni Bowcher PROPOSAL
Morrow P FigeroaCanadaStephen Shaw UNQUALIFIED
Maisha I FigeroaGermanyStephen Shaw RENEWAL
Mujtaba Q WaycottBrazilIvan Magalhaes UNQUALIFIED
Arvin A RimRussiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Maisha I CaudyIndiaXuxue Feng NEW
Sinclair H StensethFranceOnyama Limba PROPOSAL
Ivar M OstroskyAustraliaAmy Elsner NEW
Jeanfrancois E IturbideIndiaBernardo Dominic NEGOTIATION
Sinclair V MarrierAustraliaOnyama Limba PROPOSAL
Arvin G PoquetteBrazilIvan Magalhaes NEGOTIATION
Emily R GauchoAustraliaStephen Shaw NEW
Francesco F SaylorsAustraliaBernardo Dominic PROPOSAL
Alejandro M DarakjyUnited KingdomElwin Sharvill NEW
Nicolas K AmigonRussiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley L SaylorsSpain2024-04-22Feltz Printing Service NEW33Amy Elsner
1001Faith N WhobreyItaly2024-03-29Dorl, James J Esq NEGOTIATION22Elwin Sharvill
1002Aruna A MacleadSpain2024-04-13King, Christopher A Esq QUALIFIED42Bernardo Dominic
1003Ashley R OldroydArgentina2024-04-03Printing Dimensions PROPOSAL97Xuxue Feng
1004Ashley R TollnerIndia2024-04-18Chapman, Ross E Esq PROPOSAL94Onyama Limba
1005Izzy T RoysterIndia2024-04-18Chanay, Jeffrey A Esq NEW25Amy Elsner
1006Arvin O GauchoUnited Kingdom2024-04-12Rangoni Of Florence QUALIFIED99Anna Fali
1007Antonio Y VocelkaFrance2024-04-14King, Christopher A Esq RENEWAL28Asiya Javayant
1008Kadeem X OldroydIndia2024-04-14Buckley Miller Wright NEGOTIATION47Amy Elsner
1009Clifford L FlosiGermany2024-04-14Truhlar And Truhlar Attys UNQUALIFIED22Ivan Magalhaes
1010Claire H MarrierRussia2024-04-23Rousseaux, Michael Esq QUALIFIED68Amy Elsner
1011Maria Y GauchoItaly2024-04-21Benton, John B Jr PROPOSAL40Elwin Sharvill
1012Jennifer S OldroydBrazil2024-04-10King, Christopher A Esq QUALIFIED79Stephen Shaw
1013Jefferson J CaudyGermany2024-03-27Feiner Bros PROPOSAL34Xuxue Feng
1014Nicolas E FlosiUnited Kingdom2024-04-15Commercial Press NEGOTIATION16Elwin Sharvill
1015Aika B SlusarskiJapan2024-04-13Truhlar And Truhlar Attys NEGOTIATION5Amy Elsner
1016Izzy V SlusarskiCanada2024-04-15Truhlar And Truhlar Attys NEW7Onyama Limba
1017Salvatore I MaletSpain2024-04-05Commercial Press UNQUALIFIED87Ivan Magalhaes
1018Ashley D DoeUnited Kingdom2024-04-01Printing Dimensions NEGOTIATION34Ioni Bowcher
1019Antonio G FollerFrance2024-03-28Morlong Associates PROPOSAL0Xuxue Feng
1020Aruna C DoeRussia2024-04-20Printing Dimensions PROPOSAL97Xuxue Feng
1021Emily P ShinkoCanada2024-04-22Morlong Associates UNQUALIFIED90Anna Fali
1022Kaitlin S SergiJapan2024-04-21Benton, John B Jr UNQUALIFIED80Ioni Bowcher
1023Isabel F PoquetteFrance2024-04-03Buckley Miller Wright PROPOSAL25Bernardo Dominic
1024Claire M OldroydRussia2024-04-10Truhlar And Truhlar Attys RENEWAL60Amy Elsner
1025Cody M KolmetzArgentina2024-04-04Chemel, James L Cpa NEGOTIATION5Amy Elsner
1026Ricardo P FollerRussia2024-04-23Rangoni Of Florence QUALIFIED79Ioni Bowcher
1027Murillo H AmigonBrazil2024-04-01Printing Dimensions NEW60Asiya Javayant
1028Kaitlin E CaudyItaly2024-04-06Chanay, Jeffrey A Esq RENEWAL91Bernardo Dominic
1029Alejandro M BowleyCanada2024-04-17Buckley Miller Wright NEW25Ivan Magalhaes
1030Munro V GarufiFrance2024-03-29Truhlar And Truhlar Attys PROPOSAL18Bernardo Dominic
1031Maria O DarakjyArgentina2024-03-29King, Christopher A Esq RENEWAL48Stephen Shaw
1032Isabel F CampainBrazil2024-04-01Chapman, Ross E Esq UNQUALIFIED40Onyama Limba
1033Cody E WieserItaly2024-04-05Truhlar And Truhlar Attys UNQUALIFIED9Amy Elsner
1034Ricardo K GauchoIndia2024-04-12Rousseaux, Michael Esq NEGOTIATION61Asiya Javayant
1035Juan L MaletGermany2024-03-30Chapman, Ross E Esq NEW51Ioni Bowcher
1036Isabel K SergiIndia2024-04-10King, Christopher A Esq PROPOSAL90Ivan Magalhaes
1037Arvin N PaprockiCanada2024-04-22Rangoni Of Florence PROPOSAL49Asiya Javayant
1038Maria N GillianIndia2024-04-03Buckley Miller Wright NEW44Xuxue Feng
1039Clifford S MarrierRussia2024-04-17Dorl, James J Esq UNQUALIFIED29Ivan Magalhaes
1040Wickens O RoysterUnited Kingdom2024-04-05Dorl, James J Esq PROPOSAL54Ioni Bowcher
1041Aika Y OldroydFrance2024-04-12Chemel, James L Cpa UNQUALIFIED8Ivan Magalhaes
1042Aika K WhobreyUnited Kingdom2024-04-02Benton, John B Jr RENEWAL82Bernardo Dominic
1043Sinclair K SergiRussia2024-04-14Dorl, James J Esq RENEWAL3Amy Elsner
1044Deepesh I DilliardJapan2024-04-01Buckley Miller Wright QUALIFIED85Asiya Javayant
1045Francesco D NickaArgentina2024-03-26Printing Dimensions NEGOTIATION93Elwin Sharvill
1046Stacey C RoysterUnited Kingdom2024-03-28Rousseaux, Michael Esq UNQUALIFIED22Amy Elsner
1047Tony M DilliardRussia2024-04-06Benton, John B Jr PROPOSAL97Amy Elsner
1048Antonio P VenereGermany2024-04-23Commercial Press NEGOTIATION74Ioni Bowcher
1049Darci A RulapaughBrazil2024-04-16Rousseaux, Michael Esq NEGOTIATION20Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Arvin L GauchoIndiaAmy Elsner NEW
Aditya C BriddickCanadaOnyama Limba NEW
Silvio F BriddickJapanAmy Elsner NEW
Aika W MaletCanadaIvan Magalhaes NEW
Claire J OstroskyBrazilBernardo Dominic NEGOTIATION
Adams Q OldroydAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois M FlosiIndiaAmy Elsner NEGOTIATION
Maisha N SchemmerArgentinaStephen Shaw PROPOSAL
Maria M DilliardFranceOnyama Limba NEW
Misaki U GauchoBrazilBernardo Dominic RENEWAL
David Y NestleItalyAnna Fali NEW
David C RimItalyOnyama Limba PROPOSAL
Nicolas G AmigonRussiaBernardo Dominic RENEWAL
David D BologniaJapanAsiya Javayant NEGOTIATION
Adams C GarufiGermanyElwin Sharvill UNQUALIFIED
Ivar L RutaArgentinaOnyama Limba NEGOTIATION
Claire J OstroskyRussiaElwin Sharvill UNQUALIFIED
Francesco G BriddickFranceAnna Fali NEW
Jones R SchemmerBrazilIoni Bowcher QUALIFIED
Clifford Q DoeItalyStephen Shaw RENEWAL
Munro M MarrierGermanyStephen Shaw RENEWAL
James Z SergiJapanElwin Sharvill RENEWAL
Claire G GarufiFranceAnna Fali UNQUALIFIED
Clifford K WhobreyCanadaAnna Fali RENEWAL
Mujtaba V WaycottAustraliaElwin Sharvill NEW
Jones Y KuskoBrazilBernardo Dominic QUALIFIED
Nicolas O DoeFranceBernardo Dominic PROPOSAL
Costa G InouyeJapanAmy Elsner NEW
Morrow U CampainArgentinaAmy Elsner PROPOSAL
Munro D NickaCanadaXuxue Feng QUALIFIED
Rodrigues K DilliardCanadaAmy Elsner PROPOSAL
Ivar I WaycottBrazilElwin Sharvill QUALIFIED
Wickens A PoquetteArgentinaAnna Fali NEGOTIATION
David E ButtJapanIvan Magalhaes PROPOSAL
Sinclair U TollnerGermanyOnyama Limba NEW
Ricardo V RutaUnited KingdomAnna Fali NEGOTIATION
Leja F WhobreyUnited KingdomIvan Magalhaes RENEWAL
Jones L PaprockiAustraliaAnna Fali NEGOTIATION
James R RimItalyXuxue Feng NEGOTIATION
Tony E SaylorsRussiaOnyama Limba RENEWAL
Clifford O GarufiFranceOnyama Limba NEGOTIATION
Rodrigues E GarufiAustraliaElwin Sharvill NEW
Aruna U CaudyAustraliaElwin Sharvill UNQUALIFIED
Kaitlin G RutaSpainIoni Bowcher QUALIFIED
Nicolas T RimArgentinaXuxue Feng NEW
Cody M WieserIndiaStephen Shaw NEW
Salvatore N GlickSpainAsiya Javayant QUALIFIED
Costa L CaldareraAustraliaIoni Bowcher PROPOSAL
Chavez E NestleRussiaAmy Elsner RENEWAL
Jeanfrancois D MaletIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Johnson Z Glick
Arvin N Ferencz
Claire S Rulapaugh
Francesco L Vocelka
Antonio R Malet
Aika D Royster
Jefferson B Gillian
Stacey W Gillian
Juan J Briddick
Deepesh X Butt
Jennifer C Bowley
Antonio T Venere
Misaki U Darakjy
Aika H Dilliard
Jefferson W Inouye
Silvio Y Wieser
Greenwood F Kusko
Mujtaba L Venere
Juan R Shinko
Arvin J Glick
Kadeem Q Amigon
Isabel V Malet
Aruna X Darakjy
Isabel U Amigon
Maria V Flosi
Adams F Dilliard
Jennifer V Dilliard
Smith S Caldarera
Izzy M Malet
Darci Z Perin
Aika D Briddick
Nicolas B Ostrosky
Misaki A Glick
Kadeem C Darakjy
Cody R Gaucho
Chavez L Waycott
Julie U Wieser
Juan K Sergi
Leon P Perin
Jeanfrancois I Poquette
David D Waycott
Munro L Vocelka
Costa W Dilliard
Greenwood T Ferencz
Jennifer E Rim
Aditya R Nestle
Silvio Y Ostrosky
Leja B Foller
Francesco A Maclead
Leon M Iturbide
IdCountryDate
1000Argentina2024-04-14
1001India2024-03-29
1002Russia2024-04-17
1003India2024-04-24
1004Australia2024-04-19
1005Australia2024-04-17
1006Italy2024-03-31
1007Japan2024-03-31
1008India2024-04-02
1009Brazil2024-04-20
1010France2024-03-27
1011Spain2024-04-14
1012Argentina2024-04-01
1013Russia2024-03-28
1014United Kingdom2024-04-16
1015Germany2024-04-12
1016Italy2024-04-12
1017France2024-04-11
1018Japan2024-04-22
1019Italy2024-04-23
1020Japan2024-04-22
1021India2024-04-03
1022Argentina2024-04-09
1023France2024-04-04
1024Canada2024-04-17
1025United Kingdom2024-04-01
1026Japan2024-03-30
1027Canada2024-04-20
1028United Kingdom2024-04-22
1029Argentina2024-04-08
1030United Kingdom2024-04-08
1031Canada2024-04-14
1032Argentina2024-04-07
1033Canada2024-04-21
1034United Kingdom2024-03-28
1035India2024-03-28
1036United Kingdom2024-04-10
1037Canada2024-04-24
1038Italy2024-04-11
1039United Kingdom2024-04-09
1040Canada2024-04-17
1041Italy2024-04-11
1042Australia2024-04-02
1043Germany2024-04-03
1044Brazil2024-04-21
1045Russia2024-03-30
1046Russia2024-04-20
1047Brazil2024-04-17
1048United Kingdom2024-04-10
1049Spain2024-04-08

On-Demand Data

NameIdCountryDate
Aika S Gillian1000India2024-03-28
Mujtaba B Rim1001Brazil2024-04-02
Maisha M Tollner1002India2024-04-19
James L Kolmetz1003United Kingdom2024-04-17
Isabel A Chui1004Australia2024-04-02
Clifford X Whobrey1005France2024-04-04
Tony B Stenseth1006Japan2024-04-18
Jeanfrancois A Butt1007Japan2024-04-10
Sinclair I Ruta1008United Kingdom2024-04-24
Nicolas M Iturbide1009Germany2024-03-26
Claire N Bolognia1010Japan2024-03-29
Clifford F Poquette1011Japan2024-04-21
Mujtaba X Perin1012Italy2024-04-20
Kaitlin U Rulapaugh1013France2024-04-14
Jefferson J Shinko1014Russia2024-04-03
Jones Z Vocelka1015Germany2024-04-04
David I Perin1016Germany2024-04-23
Costa K Chui1017Spain2024-04-22
James W Butt1018Japan2024-04-24
Arvin U Amigon1019France2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson O BologniaAustraliaStephen Shaw RENEWAL
Mujtaba J StensethAustraliaAmy Elsner PROPOSAL
Munro L FlosiJapanElwin Sharvill QUALIFIED
Aditya G DoeItalyOnyama Limba QUALIFIED
Deepesh D KolmetzUnited KingdomOnyama Limba RENEWAL
Izzy L MaletRussiaIoni Bowcher RENEWAL
Jennifer Y SaylorsArgentinaAnna Fali RENEWAL
Jeanfrancois R NickaAustraliaBernardo Dominic RENEWAL
Antonio U BowleyCanadaAmy Elsner NEGOTIATION
Jennifer P WhobreyRussiaIvan Magalhaes RENEWAL
Jefferson Y GlickBrazilXuxue Feng NEGOTIATION
Francesco L CaldareraAustraliaElwin Sharvill PROPOSAL
Leja P GillianSpainIoni Bowcher UNQUALIFIED
Adams K ChuiItalyOnyama Limba RENEWAL
Chavez Y ChuiBrazilXuxue Feng RENEWAL
Octavia A PaprockiIndiaIoni Bowcher NEGOTIATION
Deepesh I RulapaughItalyAmy Elsner PROPOSAL
Julie Q VenereCanadaAsiya Javayant RENEWAL
Clifford L KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Aika C GarufiUnited KingdomIoni Bowcher NEGOTIATION
Greenwood T StensethAustraliaAmy Elsner QUALIFIED
Costa A MaletRussiaAmy Elsner NEGOTIATION
Sinclair V IturbideRussiaXuxue Feng NEGOTIATION
Stacey A SchemmerJapanBernardo Dominic QUALIFIED
Jefferson R BowleyArgentinaIoni Bowcher QUALIFIED
Wickens Z VocelkaRussiaIoni Bowcher QUALIFIED
Morrow Z MarrierFranceAsiya Javayant PROPOSAL
Rodrigues L MaletGermanyElwin Sharvill PROPOSAL
Octavia N FerenczRussiaBernardo Dominic UNQUALIFIED
Francesco O FerenczSpainXuxue Feng NEW
Deepesh P TollnerArgentinaAnna Fali UNQUALIFIED
Clifford Q RulapaughAustraliaStephen Shaw RENEWAL
Izzy K SlusarskiGermanyAmy Elsner UNQUALIFIED
Juan L AlbaresSpainOnyama Limba RENEWAL
Silvio Q FerenczSpainOnyama Limba UNQUALIFIED
Aditya D ButtGermanyIoni Bowcher PROPOSAL
Misaki S PoquetteRussiaOnyama Limba NEGOTIATION
Aruna X WieserJapanOnyama Limba NEGOTIATION
Kadeem J RulapaughFranceXuxue Feng RENEWAL
Jones Y StensethFranceBernardo Dominic NEW

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