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
Murillo U ChuiRussiaAmy Elsner UNQUALIFIED
Maria C MarrierJapanOnyama Limba RENEWAL
Mayumi D WaycottGermanyAnna Fali UNQUALIFIED
Clifford F FigeroaCanadaAnna Fali NEW
Deepesh L SlusarskiJapanBernardo Dominic NEGOTIATION
Silvio H MaletSpainElwin Sharvill PROPOSAL
Deepesh X AmigonItalyAsiya Javayant PROPOSAL
Antonio H CaudyArgentinaAsiya Javayant PROPOSAL
Jennifer V CaldareraJapanIvan Magalhaes QUALIFIED
Deepesh W MarrierUnited KingdomXuxue Feng UNQUALIFIED
Jones G BologniaFranceAsiya Javayant NEGOTIATION
Tony T PerinSpainAnna Fali QUALIFIED
Nicolas X CaldareraUnited KingdomStephen Shaw UNQUALIFIED
James T DarakjyFranceAmy Elsner RENEWAL
Jeanfrancois D RulapaughUnited KingdomStephen Shaw QUALIFIED
Jefferson X AlbaresAustraliaStephen Shaw PROPOSAL
Morrow V FigeroaRussiaAnna Fali QUALIFIED
Emily V CaudyAustraliaElwin Sharvill NEW
Aditya B CampainRussiaAnna Fali RENEWAL
Greenwood H SlusarskiCanadaStephen Shaw RENEWAL
Aruna V ShinkoIndiaIoni Bowcher NEGOTIATION
Francesco Z FlosiItalyStephen Shaw NEW
Ivar I OstroskyBrazilAnna Fali PROPOSAL
Mujtaba H TollnerGermanyStephen Shaw NEW
James T DilliardCanadaIvan Magalhaes RENEWAL
Nicolas K CampainRussiaOnyama Limba RENEWAL
Stacey Z IturbideGermanyIvan Magalhaes NEW
Kadeem Y TollnerRussiaAmy Elsner RENEWAL
Julie U MacleadSpainIoni Bowcher NEGOTIATION
Antonio E NestleSpainStephen Shaw NEGOTIATION
Kaitlin B MaletArgentinaAnna Fali UNQUALIFIED
Juan P StockhamArgentinaIoni Bowcher UNQUALIFIED
Emily P DoeSpainAsiya Javayant RENEWAL
Sinclair I RimSpainOnyama Limba NEW
Jones A GlickCanadaIvan Magalhaes NEGOTIATION
Sinclair M WieserJapanXuxue Feng PROPOSAL
Ivar S KolmetzSpainIvan Magalhaes RENEWAL
Arvin C SaylorsIndiaElwin Sharvill UNQUALIFIED
Emily S StockhamRussiaAsiya Javayant PROPOSAL
Faith G OldroydGermanyElwin Sharvill PROPOSAL
Faith X BriddickArgentinaIoni Bowcher NEW
Silvio N VocelkaIndiaAmy Elsner NEGOTIATION
Antonio E SergiIndiaAnna Fali QUALIFIED
Jefferson T DilliardCanadaOnyama Limba PROPOSAL
Aika B MaletJapanIoni Bowcher PROPOSAL
Izzy J BowleyUnited KingdomStephen Shaw PROPOSAL
Kaitlin I CaldareraSpainAsiya Javayant NEGOTIATION
Ivar B MacleadUnited KingdomElwin Sharvill QUALIFIED
Morrow B VocelkaUnited KingdomXuxue Feng RENEWAL
Octavia C ShinkoItalyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Chavez P InouyeRussiaOnyama Limba RENEWAL
Kadeem M GillianIndiaIoni Bowcher NEW
Aditya O MacleadRussiaIoni Bowcher PROPOSAL
Ashley U RimArgentinaIoni Bowcher NEGOTIATION
Jefferson N StensethAustraliaIvan Magalhaes NEW
Kaitlin V InouyeAustraliaAsiya Javayant RENEWAL
Misaki Y FigeroaRussiaIoni Bowcher RENEWAL
Izzy Q CaldareraFranceAnna Fali QUALIFIED
Smith Q FollerArgentinaOnyama Limba RENEWAL
Jennifer N RulapaughIndiaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar L OstroskyArgentina2024-02-26Feiner Bros PROPOSAL82Stephen Shaw
1001Chavez T RimFrance2024-03-14Feiner Bros NEW81Ivan Magalhaes
1002Octavia X MarrierItaly2024-02-22Feiner Bros UNQUALIFIED24Anna Fali
1003Mujtaba M RimUnited Kingdom2024-02-24Chapman, Ross E Esq RENEWAL12Ivan Magalhaes
1004Antonio J CampainIndia2024-03-13Feltz Printing Service PROPOSAL8Ivan Magalhaes
1005Faith Z FlosiFrance2024-02-22Morlong Associates NEW97Ivan Magalhaes
1006Darci Q ButtGermany2024-03-10King, Christopher A Esq NEW17Elwin Sharvill
1007James R StockhamIndia2024-03-08Truhlar And Truhlar Attys QUALIFIED12Elwin Sharvill
1008Jennifer T ButtSpain2024-03-09Feltz Printing Service NEW60Onyama Limba
1009Darci B SlusarskiJapan2024-03-15Chapman, Ross E Esq UNQUALIFIED13Xuxue Feng
1010Leja D DarakjyItaly2024-03-10Commercial Press QUALIFIED38Xuxue Feng
1011Chavez I WhobreyBrazil2024-03-15Printing Dimensions UNQUALIFIED65Onyama Limba
1012Aika I RimArgentina2024-03-07Truhlar And Truhlar Attys NEGOTIATION58Bernardo Dominic
1013Mujtaba N RoysterUnited Kingdom2024-02-27Commercial Press PROPOSAL86Onyama Limba
1014David P PerinItaly2024-03-04Benton, John B Jr NEW68Anna Fali
1015Leon Y RutaBrazil2024-03-01Benton, John B Jr RENEWAL54Onyama Limba
1016Julie I ChuiIndia2024-02-18Buckley Miller Wright QUALIFIED89Asiya Javayant
1017Juan W SaylorsBrazil2024-02-19Feltz Printing Service PROPOSAL4Ivan Magalhaes
1018Jones H AmigonGermany2024-03-14Feltz Printing Service PROPOSAL81Asiya Javayant
1019Johnson Z OldroydCanada2024-02-20Chanay, Jeffrey A Esq NEW72Xuxue Feng
1020Leja T DilliardJapan2024-03-05Dorl, James J Esq RENEWAL36Asiya Javayant
1021Wickens V BologniaFrance2024-02-25Printing Dimensions NEW23Anna Fali
1022Deepesh B KuskoUnited Kingdom2024-03-14Truhlar And Truhlar Attys NEGOTIATION66Xuxue Feng
1023James T WaycottIndia2024-02-26Rousseaux, Michael Esq UNQUALIFIED67Ioni Bowcher
1024Chavez D PerinRussia2024-03-15Chemel, James L Cpa NEGOTIATION56Elwin Sharvill
1025Jeanfrancois J FigeroaJapan2024-02-25Chapman, Ross E Esq UNQUALIFIED4Ioni Bowcher
1026Kadeem F SlusarskiJapan2024-02-29Dorl, James J Esq NEGOTIATION63Asiya Javayant
1027Salvatore B GauchoJapan2024-02-22Feiner Bros QUALIFIED11Anna Fali
1028Octavia Q AlbaresFrance2024-03-16Rousseaux, Michael Esq QUALIFIED3Bernardo Dominic
1029Silvio O SchemmerUnited Kingdom2024-03-12Dorl, James J Esq NEW23Anna Fali
1030Salvatore V StockhamArgentina2024-03-08Feiner Bros QUALIFIED17Asiya Javayant
1031Ricardo M GarufiIndia2024-03-18Chemel, James L Cpa NEGOTIATION24Ivan Magalhaes
1032Costa A NickaItaly2024-03-11Printing Dimensions UNQUALIFIED39Ioni Bowcher
1033Rodrigues D MaletRussia2024-03-07Feiner Bros NEW22Stephen Shaw
1034James D SaylorsCanada2024-02-21Truhlar And Truhlar Attys QUALIFIED79Ioni Bowcher
1035Juan U KuskoSpain2024-03-12Rousseaux, Michael Esq NEW83Onyama Limba
1036Tony W BowleyCanada2024-02-23Printing Dimensions RENEWAL15Bernardo Dominic
1037Aditya H SchemmerItaly2024-03-01Buckley Miller Wright PROPOSAL13Bernardo Dominic
1038Maisha F RoysterJapan2024-02-28Dorl, James J Esq PROPOSAL51Bernardo Dominic
1039Sinclair M PoquetteUnited Kingdom2024-02-21Benton, John B Jr NEGOTIATION5Xuxue Feng
1040Maria H IturbideItaly2024-02-21Morlong Associates NEGOTIATION25Ivan Magalhaes
1041Greenwood O WieserArgentina2024-03-16Printing Dimensions PROPOSAL4Onyama Limba
1042Aika G DilliardSpain2024-02-21Benton, John B Jr UNQUALIFIED43Asiya Javayant
1043Claire N DilliardSpain2024-03-01Feiner Bros UNQUALIFIED56Amy Elsner
1044Darci H OldroydJapan2024-03-09Commercial Press UNQUALIFIED61Ivan Magalhaes
1045Arvin P SergiAustralia2024-03-01Rousseaux, Michael Esq QUALIFIED0Elwin Sharvill
1046James J MarrierSpain2024-02-19King, Christopher A Esq QUALIFIED0Amy Elsner
1047Claire N SergiSpain2024-03-09Feltz Printing Service UNQUALIFIED42Xuxue Feng
1048Salvatore K InouyeSpain2024-03-07Rangoni Of Florence RENEWAL49Xuxue Feng
1049Murillo D PerinJapan2024-03-12Buckley Miller Wright PROPOSAL11Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Francesco J InouyeCanadaOnyama Limba RENEWAL
Juan V OstroskyFranceIvan Magalhaes QUALIFIED
Tony E BologniaRussiaIoni Bowcher NEW
Silvio Z DoeFranceStephen Shaw NEGOTIATION
Salvatore M BriddickItalyAnna Fali PROPOSAL
Maisha M NestleJapanAsiya Javayant RENEWAL
Cody W BologniaGermanyIvan Magalhaes NEW
Greenwood U NestleUnited KingdomOnyama Limba PROPOSAL
Francesco L MorascaArgentinaXuxue Feng RENEWAL
Arvin N AmigonItalyAsiya Javayant RENEWAL
Deepesh X AlbaresBrazilXuxue Feng NEW
Mujtaba I SlusarskiJapanXuxue Feng RENEWAL
Sinclair D RulapaughItalyElwin Sharvill UNQUALIFIED
Alejandro E RimItalyAmy Elsner UNQUALIFIED
Wickens S RimGermanyBernardo Dominic RENEWAL
Sinclair D WhobreyRussiaXuxue Feng RENEWAL
Deepesh U OstroskyFranceOnyama Limba NEGOTIATION
Jones K GlickRussiaAsiya Javayant NEW
Smith K StockhamSpainElwin Sharvill NEW
Deepesh C SlusarskiCanadaBernardo Dominic QUALIFIED
Johnson L GarufiIndiaAmy Elsner UNQUALIFIED
Salvatore L TollnerBrazilIvan Magalhaes QUALIFIED
Darci P WaycottFranceAsiya Javayant NEGOTIATION
Aruna R GillianItalyOnyama Limba NEW
Jones C MacleadCanadaBernardo Dominic UNQUALIFIED
Morrow C RoysterRussiaAmy Elsner RENEWAL
Tony P FollerUnited KingdomElwin Sharvill RENEWAL
Smith Q DilliardIndiaBernardo Dominic UNQUALIFIED
Aditya E PerinIndiaAmy Elsner NEW
Francesco P SchemmerFranceAnna Fali UNQUALIFIED
Costa Y StensethUnited KingdomElwin Sharvill PROPOSAL
Ashley S FlosiCanadaXuxue Feng RENEWAL
Aika S PaprockiBrazilAnna Fali NEGOTIATION
Clifford C BowleyItalyIvan Magalhaes PROPOSAL
Clifford W FlosiIndiaAmy Elsner UNQUALIFIED
Cody W RoysterUnited KingdomAsiya Javayant RENEWAL
Leon X WhobreyBrazilIvan Magalhaes NEGOTIATION
Ricardo K PoquetteJapanXuxue Feng UNQUALIFIED
Silvio L SergiBrazilIoni Bowcher UNQUALIFIED
Kaitlin A SlusarskiBrazilAmy Elsner NEGOTIATION
Emily X FollerBrazilIoni Bowcher UNQUALIFIED
Emily Z GauchoAustraliaOnyama Limba UNQUALIFIED
Adams S PerinGermanyBernardo Dominic QUALIFIED
Smith O WaycottIndiaAmy Elsner PROPOSAL
Francesco U CaudyAustraliaXuxue Feng RENEWAL
Faith T CaldareraGermanyAmy Elsner QUALIFIED
Misaki R GarufiIndiaStephen Shaw NEW
Rodrigues D MorascaIndiaOnyama Limba PROPOSAL
Silvio G AlbaresJapanAsiya Javayant NEGOTIATION
Rodrigues N DoeIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Salvatore I Amigon
Adams D Figeroa
Tony T Malet
Octavia M Caldarera
Jefferson W Rulapaugh
Kadeem O Ostrosky
Maisha F Stockham
Jefferson P Saylors
Salvatore W Gaucho
Kadeem C Chui
Izzy P Waycott
Faith W Venere
James E Perin
Ricardo M Morasca
Ivar H Royster
Ashley Z Gaucho
Jeanfrancois G Tollner
Wickens H Foller
David W Morasca
Munro H Ostrosky
Clifford T Bowley
Clifford B Saylors
Darci T Kolmetz
Octavia J Amigon
Costa P Ruta
Leja R Iturbide
Maisha M Inouye
Darci F Oldroyd
Clifford O Kolmetz
Jones N Butt
Nicolas O Tollner
Maria U Slusarski
Aditya O Vocelka
Mujtaba J Tollner
Julie D Figeroa
Chavez C Malet
Ricardo I Ostrosky
Juan T Rim
Julie M Figeroa
Leja E Malet
Mayumi N Briddick
Jones H Paprocki
James O Nicka
Jennifer N Figeroa
Rodrigues H Albares
Stacey Q Stockham
Aditya T Darakjy
Sinclair P Glick
Aruna B Saylors
Cody N Ruta
IdCountryDate
1000France2024-03-12
1001Australia2024-02-25
1002Australia2024-02-21
1003Canada2024-02-26
1004United Kingdom2024-03-01
1005France2024-03-02
1006France2024-02-29
1007Spain2024-03-16
1008Canada2024-03-01
1009Italy2024-03-17
1010India2024-02-24
1011United Kingdom2024-03-05
1012Brazil2024-02-28
1013Japan2024-02-26
1014Canada2024-03-13
1015Australia2024-03-08
1016Germany2024-03-13
1017Argentina2024-02-21
1018Argentina2024-02-19
1019Germany2024-02-21
1020Italy2024-03-03
1021Australia2024-03-12
1022United Kingdom2024-03-03
1023Spain2024-03-10
1024Germany2024-03-04
1025Japan2024-03-15
1026Italy2024-03-01
1027Argentina2024-02-25
1028United Kingdom2024-02-21
1029Japan2024-02-22
1030Australia2024-03-07
1031Brazil2024-02-25
1032Australia2024-02-25
1033Spain2024-03-10
1034Russia2024-02-19
1035United Kingdom2024-03-08
1036Japan2024-02-26
1037Australia2024-03-12
1038Russia2024-02-26
1039Australia2024-03-03
1040Brazil2024-03-12
1041Germany2024-03-10
1042Italy2024-03-13
1043Spain2024-03-18
1044United Kingdom2024-02-21
1045Germany2024-02-22
1046Brazil2024-03-17
1047Japan2024-03-16
1048United Kingdom2024-02-19
1049India2024-03-07

On-Demand Data

NameIdCountryDate
Aditya R Gillian1000Russia2024-03-10
Faith C Sergi1001Argentina2024-03-18
Stacey F Paprocki1002Argentina2024-02-21
Mujtaba P Dilliard1003Japan2024-03-12
Leon C Stockham1004Russia2024-03-04
Octavia J Butt1005Australia2024-03-12
Antonio N Briddick1006United Kingdom2024-02-22
Chavez B Albares1007Canada2024-03-01
Kaitlin N Stenseth1008Australia2024-02-27
Maisha H Inouye1009France2024-03-03
Francesco E Garufi1010Japan2024-02-20
Salvatore F Albares1011Canada2024-03-01
Rodrigues K Waycott1012United Kingdom2024-02-23
Salvatore J Campain1013Japan2024-02-26
Arvin Z Bowley1014Italy2024-02-28
Deepesh P Caudy1015Spain2024-02-21
Deepesh M Nestle1016Russia2024-03-11
Morrow A Ruta1017Germany2024-03-04
Deepesh X Bowley1018Australia2024-03-09
Aruna W Flosi1019Germany2024-03-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo Y NestleUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois J BologniaArgentinaIvan Magalhaes RENEWAL
Arvin R GarufiGermanyAnna Fali NEGOTIATION
James K CampainUnited KingdomAnna Fali QUALIFIED
Juan N OldroydAustraliaIvan Magalhaes RENEWAL
David C MarrierFranceAsiya Javayant UNQUALIFIED
Costa W MacleadCanadaXuxue Feng NEGOTIATION
Emily S DarakjyCanadaAsiya Javayant RENEWAL
Darci R MaletBrazilAnna Fali NEGOTIATION
Ricardo F StensethArgentinaOnyama Limba UNQUALIFIED
Francesco T StensethSpainOnyama Limba PROPOSAL
Aditya S GauchoUnited KingdomAnna Fali QUALIFIED
Kadeem R OstroskyJapanXuxue Feng NEGOTIATION
Salvatore U WieserRussiaAsiya Javayant PROPOSAL
Johnson H StockhamBrazilIvan Magalhaes PROPOSAL
Antonio N WhobreyArgentinaIoni Bowcher NEW
Claire N ShinkoCanadaXuxue Feng NEW
Claire A RimBrazilXuxue Feng QUALIFIED
Izzy V NestleFranceAnna Fali NEW
Rodrigues P DarakjyBrazilStephen Shaw PROPOSAL
Silvio Y FerenczItalyOnyama Limba QUALIFIED
Chavez N TollnerArgentinaOnyama Limba UNQUALIFIED
Adams S MaletCanadaAmy Elsner RENEWAL
Aruna D MacleadGermanyXuxue Feng NEGOTIATION
Darci N WaycottItalyStephen Shaw QUALIFIED
Johnson S MorascaIndiaBernardo Dominic RENEWAL
Ricardo U RimJapanIoni Bowcher QUALIFIED
Stacey S SchemmerAustraliaElwin Sharvill PROPOSAL
Silvio M PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Aditya D VenereRussiaIoni Bowcher QUALIFIED
Arvin K GlickUnited KingdomIoni Bowcher NEGOTIATION
Murillo K GarufiRussiaAnna Fali QUALIFIED
James Y RimIndiaElwin Sharvill UNQUALIFIED
Jennifer Y DarakjyGermanyXuxue Feng NEGOTIATION
Isabel K RulapaughAustraliaIoni Bowcher NEGOTIATION
Jeanfrancois P FollerIndiaAnna Fali RENEWAL
Deepesh J MaletItalyAnna Fali NEW
Maria D RoysterIndiaElwin Sharvill PROPOSAL
Jeanfrancois O RimArgentinaAmy Elsner UNQUALIFIED
Antonio J StensethCanadaAnna Fali 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>