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
Aditya Y OstroskyJapanOnyama Limba NEGOTIATION
Arvin F MarrierFranceAsiya Javayant RENEWAL
Isabel J RulapaughGermanyElwin Sharvill QUALIFIED
Maria L RulapaughItalyXuxue Feng PROPOSAL
Sinclair O KuskoUnited KingdomAmy Elsner RENEWAL
Aruna Q BriddickFranceAmy Elsner UNQUALIFIED
Silvio O ShinkoBrazilBernardo Dominic UNQUALIFIED
Leon G FollerIndiaAmy Elsner RENEWAL
Jennifer K PerinCanadaXuxue Feng NEGOTIATION
Antonio T RulapaughIndiaAsiya Javayant NEW
Ashley N WaycottGermanyAsiya Javayant NEGOTIATION
Aruna W PerinAustraliaAnna Fali UNQUALIFIED
Isabel Y GillianBrazilAmy Elsner PROPOSAL
James L CaldareraRussiaXuxue Feng NEW
Cody D DarakjySpainBernardo Dominic RENEWAL
Aruna F FlosiFranceAmy Elsner RENEWAL
Sinclair V OstroskyIndiaBernardo Dominic UNQUALIFIED
Tony W BowleyGermanyStephen Shaw NEW
Kaitlin E FollerBrazilAsiya Javayant NEW
Mujtaba M DoeFranceStephen Shaw NEGOTIATION
Darci Z KolmetzUnited KingdomAsiya Javayant NEW
Jefferson Y VenereFranceAmy Elsner UNQUALIFIED
Faith G FigeroaFranceBernardo Dominic PROPOSAL
Maisha L TollnerJapanXuxue Feng PROPOSAL
Murillo K StockhamJapanOnyama Limba QUALIFIED
Adams L FlosiRussiaIoni Bowcher QUALIFIED
Kadeem I NickaGermanyStephen Shaw PROPOSAL
Leja Z RulapaughRussiaAnna Fali QUALIFIED
Mujtaba C StensethUnited KingdomBernardo Dominic PROPOSAL
Kadeem T BriddickFranceOnyama Limba UNQUALIFIED
Ivar X MorascaAustraliaXuxue Feng QUALIFIED
Izzy G GillianFranceIoni Bowcher NEGOTIATION
Isabel N BologniaUnited KingdomAnna Fali UNQUALIFIED
Juan A MaletAustraliaAnna Fali RENEWAL
Stacey P CaldareraJapanElwin Sharvill QUALIFIED
Jefferson E FollerSpainIvan Magalhaes NEW
Cody C FlosiAustraliaStephen Shaw RENEWAL
Jennifer E GlickCanadaAsiya Javayant RENEWAL
Clifford F StockhamIndiaAnna Fali RENEWAL
Octavia O GillianRussiaIoni Bowcher RENEWAL
Izzy C DarakjyArgentinaOnyama Limba NEGOTIATION
Antonio N OldroydRussiaStephen Shaw QUALIFIED
Leja P VocelkaGermanyElwin Sharvill NEW
Leja P CaudyJapanStephen Shaw QUALIFIED
Adams L NickaFranceIvan Magalhaes NEW
Greenwood C FigeroaUnited KingdomIvan Magalhaes NEW
Greenwood E FerenczBrazilElwin Sharvill QUALIFIED
Arvin W PerinFranceAmy Elsner UNQUALIFIED
Stacey E InouyeSpainIvan Magalhaes QUALIFIED
Aruna L FollerJapanIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Alejandro L KuskoArgentinaAmy Elsner QUALIFIED
Cody R TollnerSpainStephen Shaw PROPOSAL
Salvatore G MorascaIndiaElwin Sharvill NEW
Darci E WaycottIndiaElwin Sharvill RENEWAL
Sinclair N BowleyIndiaIoni Bowcher PROPOSAL
Nicolas F SchemmerAustraliaAsiya Javayant RENEWAL
Emily Y GillianCanadaStephen Shaw RENEWAL
David W MorascaGermanyAnna Fali NEGOTIATION
Johnson H MaletCanadaElwin Sharvill UNQUALIFIED
James R VenereJapanStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore X PaprockiFrance2024-04-27Commercial Press NEW42Anna Fali
1001Smith V WieserRussia2024-04-28Buckley Miller Wright NEGOTIATION19Ivan Magalhaes
1002Octavia K WaycottRussia2024-04-12Truhlar And Truhlar Attys RENEWAL97Ioni Bowcher
1003Jefferson L CampainUnited Kingdom2024-04-12Morlong Associates NEW86Asiya Javayant
1004Morrow I MaletSpain2024-04-15Feltz Printing Service QUALIFIED0Bernardo Dominic
1005Darci I GarufiIndia2024-04-17Buckley Miller Wright NEGOTIATION63Asiya Javayant
1006James T SaylorsGermany2024-04-19Dorl, James J Esq QUALIFIED30Stephen Shaw
1007Juan W NestleRussia2024-04-16Buckley Miller Wright PROPOSAL93Amy Elsner
1008Jeanfrancois Q MorascaArgentina2024-05-03Feiner Bros PROPOSAL95Xuxue Feng
1009Morrow R SergiArgentina2024-04-27Rousseaux, Michael Esq NEGOTIATION89Bernardo Dominic
1010Arvin J GlickIndia2024-04-15King, Christopher A Esq NEW22Elwin Sharvill
1011Smith D VocelkaUnited Kingdom2024-04-19King, Christopher A Esq PROPOSAL59Bernardo Dominic
1012Arvin N VenereCanada2024-04-21Rangoni Of Florence NEGOTIATION55Asiya Javayant
1013Salvatore M FigeroaSpain2024-04-13Rangoni Of Florence NEW0Bernardo Dominic
1014Maisha C TollnerArgentina2024-05-01Chemel, James L Cpa PROPOSAL12Stephen Shaw
1015Darci J BowleyCanada2024-04-19Rousseaux, Michael Esq RENEWAL53Ivan Magalhaes
1016Deepesh Z SchemmerCanada2024-04-16Feiner Bros UNQUALIFIED95Elwin Sharvill
1017Claire M RutaAustralia2024-05-02Feiner Bros QUALIFIED61Bernardo Dominic
1018Costa Z SergiRussia2024-04-24Chemel, James L Cpa RENEWAL81Bernardo Dominic
1019Greenwood Q OldroydBrazil2024-04-29Benton, John B Jr RENEWAL84Ioni Bowcher
1020Murillo T FollerJapan2024-04-20Buckley Miller Wright UNQUALIFIED11Asiya Javayant
1021Deepesh Z TollnerGermany2024-04-08Chapman, Ross E Esq UNQUALIFIED45Anna Fali
1022Kaitlin G StockhamJapan2024-04-29Feiner Bros UNQUALIFIED94Amy Elsner
1023Stacey Y GauchoGermany2024-04-16Chanay, Jeffrey A Esq QUALIFIED17Stephen Shaw
1024Octavia O AmigonUnited Kingdom2024-05-02Chemel, James L Cpa UNQUALIFIED56Elwin Sharvill
1025Johnson V DarakjyIndia2024-04-25Chanay, Jeffrey A Esq NEW80Onyama Limba
1026Cody Y WhobreyArgentina2024-04-07Commercial Press NEGOTIATION43Amy Elsner
1027Greenwood K CampainBrazil2024-04-24King, Christopher A Esq NEGOTIATION39Amy Elsner
1028Darci S MarrierArgentina2024-04-15Feiner Bros NEW24Ivan Magalhaes
1029Munro U AlbaresJapan2024-04-23Morlong Associates PROPOSAL66Stephen Shaw
1030Julie R MaletFrance2024-04-24Benton, John B Jr PROPOSAL26Asiya Javayant
1031Ivar M OldroydSpain2024-05-03Buckley Miller Wright RENEWAL18Anna Fali
1032Aika X SlusarskiRussia2024-04-16Chapman, Ross E Esq PROPOSAL84Stephen Shaw
1033Salvatore D GillianBrazil2024-04-12Chapman, Ross E Esq NEGOTIATION46Stephen Shaw
1034James P GlickSpain2024-04-17Commercial Press PROPOSAL17Onyama Limba
1035Kadeem H GlickSpain2024-04-28Dorl, James J Esq PROPOSAL10Ivan Magalhaes
1036Smith U PaprockiBrazil2024-04-27Dorl, James J Esq RENEWAL13Ioni Bowcher
1037Emily X MaletItaly2024-04-25Chemel, James L Cpa PROPOSAL55Anna Fali
1038Stacey Y MarrierCanada2024-04-20Printing Dimensions PROPOSAL65Ioni Bowcher
1039Maisha Y SaylorsIndia2024-04-13Buckley Miller Wright NEW67Stephen Shaw
1040Maria P PerinRussia2024-04-22Rangoni Of Florence PROPOSAL84Ioni Bowcher
1041Wickens I RulapaughUnited Kingdom2024-04-05Benton, John B Jr QUALIFIED20Amy Elsner
1042Jennifer Z FollerItaly2024-04-28Chemel, James L Cpa UNQUALIFIED4Ioni Bowcher
1043Mayumi E PerinJapan2024-04-07Morlong Associates PROPOSAL30Anna Fali
1044Rodrigues T RimCanada2024-04-28Rangoni Of Florence NEW75Bernardo Dominic
1045Aika R GauchoBrazil2024-04-18Morlong Associates NEGOTIATION81Xuxue Feng
1046Antonio Q BowleyUnited Kingdom2024-04-12Rangoni Of Florence RENEWAL36Elwin Sharvill
1047Kadeem X FollerIndia2024-04-09Buckley Miller Wright PROPOSAL17Bernardo Dominic
1048Jones X FlosiCanada2024-04-29Chemel, James L Cpa PROPOSAL32Elwin Sharvill
1049Claire I StensethGermany2024-04-18Chapman, Ross E Esq UNQUALIFIED92Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin X WieserGermanyStephen Shaw PROPOSAL
Greenwood K StockhamUnited KingdomAmy Elsner RENEWAL
Jennifer L AlbaresJapanAmy Elsner QUALIFIED
Greenwood N MorascaJapanIoni Bowcher PROPOSAL
Murillo U BriddickGermanyIoni Bowcher UNQUALIFIED
Francesco N CaudyJapanIoni Bowcher PROPOSAL
Sinclair Q AlbaresRussiaIoni Bowcher QUALIFIED
Maria V BowleyUnited KingdomXuxue Feng NEGOTIATION
Kaitlin C BowleySpainOnyama Limba UNQUALIFIED
Stacey O TollnerIndiaElwin Sharvill NEGOTIATION
Antonio K MarrierJapanElwin Sharvill RENEWAL
Cody H RutaRussiaAmy Elsner RENEWAL
Kadeem X InouyeFranceElwin Sharvill PROPOSAL
Jennifer K SchemmerFranceElwin Sharvill PROPOSAL
Isabel T StensethRussiaAmy Elsner QUALIFIED
Leja A BowleyAustraliaOnyama Limba PROPOSAL
Costa D OldroydSpainAnna Fali RENEWAL
Jeanfrancois H DarakjyItalyStephen Shaw NEGOTIATION
Clifford Z GauchoUnited KingdomAnna Fali NEGOTIATION
Chavez B MacleadGermanyStephen Shaw NEGOTIATION
Aruna T KolmetzBrazilStephen Shaw RENEWAL
Mayumi Y ChuiFranceAnna Fali UNQUALIFIED
Jones J RoysterAustraliaOnyama Limba NEGOTIATION
Francesco C TollnerFranceStephen Shaw PROPOSAL
Smith A WhobreyItalyIvan Magalhaes PROPOSAL
Sinclair L RutaCanadaElwin Sharvill PROPOSAL
Greenwood W RoysterAustraliaAsiya Javayant PROPOSAL
Leon Z SergiAustraliaOnyama Limba NEW
Alejandro U SergiArgentinaAsiya Javayant RENEWAL
Jones Y VenereGermanyIvan Magalhaes RENEWAL
Isabel B RulapaughRussiaXuxue Feng NEW
Julie C PaprockiRussiaOnyama Limba UNQUALIFIED
David K GillianAustraliaOnyama Limba NEGOTIATION
Jones E SlusarskiFranceOnyama Limba QUALIFIED
Aruna Y DarakjyAustraliaStephen Shaw NEW
Morrow D StockhamGermanyAsiya Javayant PROPOSAL
Leon Y PoquetteItalyAnna Fali NEGOTIATION
Jones H FigeroaRussiaBernardo Dominic PROPOSAL
Jeanfrancois C AlbaresUnited KingdomAmy Elsner PROPOSAL
Misaki Z DoeUnited KingdomAmy Elsner QUALIFIED
Stacey I ButtCanadaAmy Elsner RENEWAL
Stacey J RoysterJapanStephen Shaw RENEWAL
Claire Q ButtIndiaIvan Magalhaes NEW
Morrow N AmigonRussiaXuxue Feng QUALIFIED
Maisha H GlickUnited KingdomIoni Bowcher UNQUALIFIED
Julie Y KuskoJapanAnna Fali NEW
Kaitlin M StockhamArgentinaAmy Elsner NEGOTIATION
Aika M CaudyFranceAnna Fali UNQUALIFIED
Francesco S BowleyRussiaElwin Sharvill QUALIFIED
Morrow U TollnerSpainElwin Sharvill QUALIFIED
Frozen Columns
Name
Arvin T Nicka
Costa K Sergi
Maria V Royster
Munro L Ostrosky
Smith Y Schemmer
Misaki V Shinko
Francesco F Malet
Rodrigues E Nestle
Francesco L Ruta
Alejandro Y Ruta
Ricardo J Kolmetz
Izzy T Sergi
Deepesh G Bowley
Salvatore U Maclead
Sinclair Q Slusarski
James Z Glick
Costa N Bowley
Jeanfrancois A Rim
Tony R Stenseth
Leja Q Slusarski
Cody N Shinko
Silvio I Stockham
Misaki A Paprocki
Arvin S Caldarera
Maria H Bolognia
Rodrigues C Marrier
Claire X Saylors
David I Amigon
Izzy K Ostrosky
Jeanfrancois F Nicka
Alejandro A Kolmetz
Johnson W Albares
Tony U Ferencz
Mayumi Y Iturbide
Juan F Sergi
Adams V Nestle
Johnson B Caudy
Isabel B Marrier
Mujtaba O Butt
Munro S Stockham
Silvio X Slusarski
Faith F Morasca
Leja V Butt
Ivar P Schemmer
Arvin N Tollner
Mujtaba D Doe
Francesco U Glick
Wickens L Caldarera
Chavez Q Shinko
Aika W Doe
IdCountryDate
1000United Kingdom2024-04-06
1001Brazil2024-05-02
1002Japan2024-05-03
1003India2024-04-30
1004Germany2024-04-18
1005Spain2024-05-01
1006Australia2024-04-28
1007Spain2024-04-05
1008Russia2024-04-23
1009Japan2024-05-03
1010Japan2024-04-06
1011France2024-04-15
1012Spain2024-04-28
1013Italy2024-04-28
1014Argentina2024-04-30
1015Canada2024-04-27
1016United Kingdom2024-04-24
1017Argentina2024-04-17
1018Italy2024-04-21
1019Italy2024-04-15
1020Russia2024-04-05
1021Canada2024-04-29
1022Russia2024-04-28
1023Australia2024-04-08
1024Russia2024-04-16
1025Argentina2024-04-06
1026Germany2024-04-28
1027France2024-04-22
1028India2024-04-22
1029Spain2024-04-28
1030Brazil2024-04-07
1031Russia2024-04-08
1032Germany2024-04-19
1033Australia2024-04-18
1034United Kingdom2024-04-17
1035France2024-04-13
1036Spain2024-04-30
1037India2024-04-27
1038Japan2024-04-05
1039Canada2024-04-28
1040France2024-05-04
1041Canada2024-04-06
1042India2024-04-23
1043United Kingdom2024-04-25
1044Argentina2024-04-12
1045Italy2024-04-30
1046Japan2024-04-23
1047France2024-04-16
1048Argentina2024-04-29
1049Spain2024-04-30

On-Demand Data

NameIdCountryDate
Kaitlin Y Briddick1000Brazil2024-04-24
Salvatore O Perin1001France2024-04-13
Costa O Caldarera1002Spain2024-04-24
Jones H Albares1003Germany2024-05-01
Misaki Y Morasca1004Argentina2024-04-11
Munro Z Shinko1005Spain2024-04-16
Emily A Wieser1006Germany2024-04-25
Clifford G Nestle1007France2024-04-06
Isabel D Perin1008Australia2024-04-30
Ivar B Rulapaugh1009Germany2024-04-17
Leon C Doe1010Germany2024-04-05
Leon A Vocelka1011Japan2024-04-13
Nicolas Q Iturbide1012Japan2024-04-08
Emily D Maclead1013Canada2024-04-24
Silvio R Poquette1014Argentina2024-04-06
Adams F Gillian1015Germany2024-05-03
Jeanfrancois G Figeroa1016Australia2024-04-10
Wickens U Caudy1017Spain2024-05-01
Clifford B Bowley1018United Kingdom2024-04-27
Chavez G Shinko1019Russia2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya T StockhamBrazilStephen Shaw UNQUALIFIED
Leja F FigeroaRussiaXuxue Feng NEW
Mujtaba Z ChuiItalyElwin Sharvill RENEWAL
Tony Q SergiAustraliaAsiya Javayant UNQUALIFIED
Ashley B SaylorsRussiaAsiya Javayant RENEWAL
Izzy Y AlbaresJapanStephen Shaw RENEWAL
Johnson E MacleadArgentinaIvan Magalhaes NEW
Ricardo X ShinkoJapanStephen Shaw NEGOTIATION
Aika P SlusarskiAustraliaStephen Shaw NEW
Claire A OldroydCanadaAsiya Javayant UNQUALIFIED
Mayumi D GillianGermanyElwin Sharvill PROPOSAL
Aika U MacleadAustraliaAsiya Javayant NEGOTIATION
Wickens S MaletSpainIvan Magalhaes NEW
Julie Q FerenczBrazilAmy Elsner NEGOTIATION
Emily Q MacleadBrazilXuxue Feng PROPOSAL
Izzy F AlbaresCanadaStephen Shaw QUALIFIED
Rodrigues B WhobreyRussiaIvan Magalhaes PROPOSAL
Aditya A PerinAustraliaOnyama Limba NEGOTIATION
Emily I VocelkaJapanXuxue Feng NEW
Leja U ShinkoItalyElwin Sharvill RENEWAL
Darci P TollnerRussiaBernardo Dominic QUALIFIED
Morrow W SergiRussiaIoni Bowcher QUALIFIED
Ricardo V FigeroaIndiaOnyama Limba QUALIFIED
Misaki C CampainRussiaOnyama Limba PROPOSAL
Ricardo D StockhamRussiaIoni Bowcher PROPOSAL
Jeanfrancois U DarakjyBrazilIoni Bowcher NEGOTIATION
Costa Z MaletSpainIoni Bowcher NEW
Alejandro A NickaArgentinaElwin Sharvill QUALIFIED
Chavez F CaldareraItalyIvan Magalhaes QUALIFIED
Murillo A DoeArgentinaElwin Sharvill QUALIFIED
Misaki I WaycottItalyBernardo Dominic QUALIFIED
Munro W MacleadJapanOnyama Limba UNQUALIFIED
Wickens Q FigeroaAustraliaAnna Fali NEW
Claire T SchemmerArgentinaBernardo Dominic NEGOTIATION
Emily H NickaCanadaAnna Fali NEW
Isabel Z SlusarskiBrazilStephen Shaw UNQUALIFIED
Kaitlin S RutaUnited KingdomAmy Elsner NEGOTIATION
Adams F PerinBrazilAsiya Javayant NEW
Aruna G SlusarskiGermanyOnyama Limba PROPOSAL
Arvin C MacleadUnited KingdomOnyama Limba QUALIFIED

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