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
Wickens P StensethAustraliaXuxue Feng RENEWAL
Jones S FollerFranceAnna Fali NEGOTIATION
Johnson E ButtRussiaStephen Shaw NEGOTIATION
Aditya Z MaletArgentinaIoni Bowcher PROPOSAL
Tony Z SaylorsAustraliaAmy Elsner QUALIFIED
Kadeem E NestleIndiaBernardo Dominic NEGOTIATION
Smith I DarakjyBrazilAnna Fali NEGOTIATION
Jefferson F RoysterFranceOnyama Limba PROPOSAL
Alejandro Y SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Emily R RoysterBrazilOnyama Limba UNQUALIFIED
Emily V StockhamJapanStephen Shaw NEGOTIATION
Deepesh C KolmetzCanadaIoni Bowcher NEGOTIATION
Jefferson I CampainCanadaIoni Bowcher RENEWAL
Chavez R StensethUnited KingdomAmy Elsner QUALIFIED
Jennifer E GlickCanadaOnyama Limba QUALIFIED
Francesco C FollerIndiaStephen Shaw NEW
Jennifer Z DilliardArgentinaBernardo Dominic NEW
Jeanfrancois Q OldroydItalyElwin Sharvill RENEWAL
Jennifer Z BologniaFranceElwin Sharvill UNQUALIFIED
Deepesh Z SaylorsFranceBernardo Dominic QUALIFIED
Morrow Q PerinGermanyXuxue Feng QUALIFIED
Darci N GarufiItalyOnyama Limba QUALIFIED
Mayumi U GillianCanadaOnyama Limba NEW
David K MacleadItalyBernardo Dominic RENEWAL
Stacey W GillianFranceAmy Elsner NEW
Kaitlin H RulapaughRussiaStephen Shaw NEGOTIATION
Rodrigues H VocelkaUnited KingdomXuxue Feng QUALIFIED
Jefferson B FollerUnited KingdomAmy Elsner NEW
Morrow I MaletSpainIvan Magalhaes QUALIFIED
Arvin U IturbideJapanAnna Fali NEW
Claire G MacleadCanadaStephen Shaw UNQUALIFIED
Ricardo W GarufiArgentinaAmy Elsner RENEWAL
Sinclair J WaycottJapanXuxue Feng NEGOTIATION
Rodrigues E RulapaughJapanIoni Bowcher RENEWAL
Misaki X StensethUnited KingdomAsiya Javayant UNQUALIFIED
Johnson B NickaSpainBernardo Dominic NEW
Nicolas O VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Faith R NickaGermanyAsiya Javayant QUALIFIED
Leja R MarrierIndiaXuxue Feng NEGOTIATION
Salvatore B DarakjyAustraliaBernardo Dominic NEW
Smith V FerenczAustraliaStephen Shaw RENEWAL
Kaitlin I ChuiGermanyElwin Sharvill QUALIFIED
Chavez X MarrierFranceAnna Fali NEGOTIATION
Mujtaba U GillianArgentinaBernardo Dominic NEW
Aika Y NickaIndiaElwin Sharvill PROPOSAL
Maria Z DoeUnited KingdomIvan Magalhaes NEW
Silvio U AlbaresItalyAsiya Javayant NEGOTIATION
Emily I CaldareraGermanyIvan Magalhaes QUALIFIED
Morrow I OldroydRussiaElwin Sharvill PROPOSAL
Antonio V SergiFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody F FerenczAustraliaAnna Fali NEW
Adams X SlusarskiRussiaXuxue Feng QUALIFIED
Juan Q FlosiIndiaAnna Fali PROPOSAL
Leon V DoeGermanyElwin Sharvill NEW
Adams A KolmetzBrazilOnyama Limba PROPOSAL
Aruna R KolmetzAustraliaAmy Elsner RENEWAL
Emily E CaudyAustraliaElwin Sharvill NEW
Cody G FlosiArgentinaBernardo Dominic RENEWAL
Cody H StockhamUnited KingdomIvan Magalhaes QUALIFIED
Morrow O StensethRussiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba F BowleyUnited Kingdom2024-04-06Printing Dimensions PROPOSAL61Amy Elsner
1001Francesco Q RutaRussia2024-04-06Chemel, James L Cpa QUALIFIED28Anna Fali
1002Alejandro H NestleFrance2024-04-18Truhlar And Truhlar Attys NEGOTIATION88Onyama Limba
1003Faith M CaldareraBrazil2024-04-13Chemel, James L Cpa UNQUALIFIED17Onyama Limba
1004Nicolas G KuskoBrazil2024-04-07Feiner Bros NEW19Stephen Shaw
1005Misaki Q RoysterFrance2024-04-26Dorl, James J Esq RENEWAL9Amy Elsner
1006Costa C PoquetteIndia2024-04-05Chemel, James L Cpa UNQUALIFIED94Xuxue Feng
1007Munro B SchemmerCanada2024-04-27Dorl, James J Esq NEGOTIATION15Elwin Sharvill
1008Salvatore G GillianItaly2024-04-18Morlong Associates PROPOSAL40Onyama Limba
1009David I RulapaughArgentina2024-04-06Morlong Associates NEW11Amy Elsner
1010Sinclair J GauchoSpain2024-04-04King, Christopher A Esq UNQUALIFIED91Asiya Javayant
1011Mayumi M SlusarskiIndia2024-04-18Morlong Associates UNQUALIFIED11Xuxue Feng
1012Maisha T MacleadArgentina2024-04-27Buckley Miller Wright RENEWAL1Asiya Javayant
1013David Z GlickIndia2024-04-09Chapman, Ross E Esq RENEWAL98Ivan Magalhaes
1014Clifford T ShinkoRussia2024-04-23Dorl, James J Esq QUALIFIED69Asiya Javayant
1015Greenwood O ButtRussia2024-04-06King, Christopher A Esq QUALIFIED87Ioni Bowcher
1016Francesco W DarakjyFrance2024-04-08Rangoni Of Florence QUALIFIED95Ioni Bowcher
1017Cody V GauchoUnited Kingdom2024-04-22Benton, John B Jr NEW60Anna Fali
1018Ashley P SaylorsAustralia2024-04-18Feiner Bros QUALIFIED5Bernardo Dominic
1019Sinclair U MarrierArgentina2024-04-06Buckley Miller Wright QUALIFIED97Xuxue Feng
1020Jennifer N OldroydCanada2024-04-10Feiner Bros NEW92Asiya Javayant
1021Mayumi K SlusarskiIndia2024-03-31King, Christopher A Esq QUALIFIED98Asiya Javayant
1022Ashley C RimAustralia2024-04-21Commercial Press PROPOSAL79Bernardo Dominic
1023Salvatore T CampainJapan2024-04-13Rousseaux, Michael Esq UNQUALIFIED49Ivan Magalhaes
1024Wickens T CaldareraSpain2024-04-25Commercial Press RENEWAL99Stephen Shaw
1025Aditya K NickaAustralia2024-04-24Printing Dimensions QUALIFIED53Onyama Limba
1026Arvin P KuskoAustralia2024-04-06Buckley Miller Wright NEW97Xuxue Feng
1027Adams G CaudyGermany2024-04-21Rousseaux, Michael Esq NEW6Ivan Magalhaes
1028Tony H InouyeSpain2024-04-01Feiner Bros UNQUALIFIED11Anna Fali
1029Deepesh I SaylorsArgentina2024-04-20Feltz Printing Service UNQUALIFIED21Stephen Shaw
1030David T DarakjyFrance2024-04-24Commercial Press NEGOTIATION3Asiya Javayant
1031Stacey Z RutaSpain2024-04-08King, Christopher A Esq NEW99Ivan Magalhaes
1032Izzy N DarakjyIndia2024-04-01Truhlar And Truhlar Attys RENEWAL94Ioni Bowcher
1033Jennifer F CaldareraUnited Kingdom2024-04-08Chemel, James L Cpa UNQUALIFIED70Asiya Javayant
1034Aditya S StockhamBrazil2024-04-18Commercial Press PROPOSAL74Stephen Shaw
1035Aika C RulapaughFrance2024-04-19Feiner Bros NEW13Ivan Magalhaes
1036Johnson K MarrierCanada2024-04-02Chapman, Ross E Esq NEGOTIATION58Ioni Bowcher
1037Faith L WieserAustralia2024-03-30Benton, John B Jr NEGOTIATION11Xuxue Feng
1038Kadeem I SergiArgentina2024-04-20Chapman, Ross E Esq NEGOTIATION26Amy Elsner
1039Nicolas D CaldareraIndia2024-03-30Morlong Associates QUALIFIED81Anna Fali
1040Tony D WhobreyIndia2024-04-24Printing Dimensions RENEWAL25Anna Fali
1041Faith W MacleadBrazil2024-04-23Benton, John B Jr PROPOSAL29Anna Fali
1042Sinclair K DoeIndia2024-04-01Chapman, Ross E Esq UNQUALIFIED59Ivan Magalhaes
1043Chavez T PerinCanada2024-03-31Buckley Miller Wright RENEWAL84Xuxue Feng
1044Chavez E MaletIndia2024-04-24Chanay, Jeffrey A Esq RENEWAL16Stephen Shaw
1045David Y OstroskyJapan2024-04-13Printing Dimensions NEGOTIATION82Amy Elsner
1046Murillo W GarufiBrazil2024-04-16Truhlar And Truhlar Attys NEGOTIATION65Stephen Shaw
1047Leja Q BriddickUnited Kingdom2024-04-06Benton, John B Jr QUALIFIED91Asiya Javayant
1048Misaki Z WieserUnited Kingdom2024-04-08Buckley Miller Wright UNQUALIFIED41Anna Fali
1049Maria S NickaAustralia2024-04-05King, Christopher A Esq PROPOSAL26Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
David I SlusarskiRussiaStephen Shaw NEGOTIATION
Leon U WaycottArgentinaStephen Shaw NEW
Darci T GarufiBrazilOnyama Limba UNQUALIFIED
James W GlickJapanAmy Elsner NEW
David K NickaAustraliaOnyama Limba QUALIFIED
Jones E MaletUnited KingdomBernardo Dominic UNQUALIFIED
Wickens E KolmetzArgentinaAmy Elsner PROPOSAL
Aruna R RutaSpainXuxue Feng PROPOSAL
Kadeem H FollerItalyIoni Bowcher QUALIFIED
Jennifer X InouyeRussiaAnna Fali QUALIFIED
Francesco B RulapaughItalyAmy Elsner PROPOSAL
Izzy I KuskoItalyStephen Shaw NEGOTIATION
Darci Q CaldareraRussiaBernardo Dominic QUALIFIED
Morrow J VocelkaGermanyAsiya Javayant UNQUALIFIED
Maria G ButtCanadaStephen Shaw NEGOTIATION
Emily V MarrierAustraliaIvan Magalhaes NEW
Johnson J GarufiFranceXuxue Feng PROPOSAL
Costa H MaletFranceAnna Fali RENEWAL
Jeanfrancois J MacleadItalyAmy Elsner NEGOTIATION
Munro O OldroydBrazilIoni Bowcher NEGOTIATION
David Y GarufiBrazilXuxue Feng RENEWAL
Leon X SchemmerFranceAsiya Javayant NEW
Mujtaba U ShinkoCanadaIvan Magalhaes QUALIFIED
Julie D GillianUnited KingdomAnna Fali PROPOSAL
Sinclair U ButtJapanElwin Sharvill UNQUALIFIED
Claire X KolmetzBrazilElwin Sharvill PROPOSAL
Jefferson S CaldareraBrazilIvan Magalhaes RENEWAL
Arvin N ButtItalyXuxue Feng NEW
Faith O GillianBrazilAmy Elsner UNQUALIFIED
Deepesh K OldroydSpainStephen Shaw QUALIFIED
Maria O SaylorsCanadaBernardo Dominic NEW
Morrow D NickaRussiaElwin Sharvill UNQUALIFIED
Faith F InouyeUnited KingdomBernardo Dominic NEW
Misaki G DoeSpainXuxue Feng RENEWAL
Cody M GarufiUnited KingdomIoni Bowcher NEW
Kaitlin D PaprockiArgentinaAnna Fali NEGOTIATION
Jefferson V RoysterJapanBernardo Dominic PROPOSAL
Wickens E ChuiIndiaAmy Elsner PROPOSAL
Darci L GillianRussiaStephen Shaw UNQUALIFIED
Chavez V FigeroaSpainElwin Sharvill UNQUALIFIED
Alejandro R GillianArgentinaAnna Fali NEGOTIATION
Sinclair U BologniaItalyIoni Bowcher QUALIFIED
Nicolas O IturbideItalyXuxue Feng NEGOTIATION
Francesco H AmigonRussiaIoni Bowcher UNQUALIFIED
Ivar T ButtUnited KingdomIoni Bowcher NEGOTIATION
Jennifer O CaudyUnited KingdomXuxue Feng PROPOSAL
Greenwood X GlickItalyAsiya Javayant RENEWAL
Morrow N CaldareraIndiaAmy Elsner PROPOSAL
Jeanfrancois A InouyeUnited KingdomIoni Bowcher UNQUALIFIED
Cody L VocelkaArgentinaElwin Sharvill NEW
Frozen Columns
Name
Jefferson Z Bowley
Tony X Malet
Tony W Flosi
Greenwood N Iturbide
Tony V Inouye
Murillo Y Malet
Aditya W Morasca
Smith X Nestle
Misaki Z Kolmetz
Stacey E Gillian
Costa E Morasca
Ricardo N Rulapaugh
Ashley Q Schemmer
Stacey I Inouye
Smith H Butt
Faith A Briddick
James D Perin
Smith L Darakjy
Stacey Z Dilliard
Francesco X Kusko
Ashley A Gaucho
Maria N Slusarski
Rodrigues R Briddick
Jeanfrancois Q Campain
Mujtaba M Ostrosky
Murillo O Whobrey
Costa N Iturbide
Jennifer M Briddick
Jeanfrancois C Marrier
Mayumi R Kusko
Rodrigues M Poquette
Munro J Caudy
Jones H Caldarera
Claire Z Gillian
Jeanfrancois E Stenseth
Wickens P Kolmetz
Faith D Gillian
James L Doe
David R Royster
Murillo E Bolognia
Ricardo X Butt
Ivar Y Foller
Aditya Y Maclead
Clifford H Malet
Sinclair L Darakjy
Julie O Butt
Nicolas I Waycott
Greenwood X Venere
Izzy P Royster
Jennifer Q Slusarski
IdCountryDate
1000Germany2024-04-21
1001Canada2024-04-23
1002Italy2024-04-03
1003Brazil2024-04-25
1004Brazil2024-04-18
1005France2024-04-22
1006United Kingdom2024-04-20
1007Argentina2024-04-24
1008India2024-04-07
1009India2024-04-21
1010India2024-04-12
1011Spain2024-04-12
1012Canada2024-04-14
1013Canada2024-04-06
1014Argentina2024-04-11
1015Japan2024-04-05
1016India2024-04-22
1017United Kingdom2024-03-30
1018Germany2024-04-13
1019France2024-04-07
1020Germany2024-04-03
1021France2024-04-14
1022Germany2024-04-23
1023Spain2024-04-12
1024India2024-03-31
1025United Kingdom2024-04-21
1026Germany2024-04-26
1027Canada2024-04-13
1028Spain2024-04-17
1029Brazil2024-04-11
1030Japan2024-04-22
1031United Kingdom2024-04-05
1032Brazil2024-04-18
1033Brazil2024-04-24
1034Canada2024-04-19
1035India2024-04-12
1036United Kingdom2024-04-14
1037Canada2024-04-18
1038United Kingdom2024-04-11
1039United Kingdom2024-04-03
1040Japan2024-04-17
1041United Kingdom2024-04-18
1042Brazil2024-04-24
1043Italy2024-04-26
1044Australia2024-04-19
1045Germany2024-04-14
1046Germany2024-04-17
1047France2024-04-24
1048Russia2024-04-05
1049Argentina2024-04-08

On-Demand Data

NameIdCountryDate
Antonio A Albares1000United Kingdom2024-04-18
Leon D Paprocki1001Spain2024-04-20
Silvio N Perin1002France2024-04-13
Wickens J Kusko1003Spain2024-03-31
Nicolas F Iturbide1004Italy2024-04-13
Darci N Doe1005Germany2024-04-23
Cody D Inouye1006Canada2024-04-13
Misaki D Kolmetz1007Italy2024-04-19
Maria I Caudy1008Brazil2024-04-03
Chavez C Royster1009Brazil2024-04-18
Maisha X Ferencz1010Argentina2024-04-04
Mayumi B Caudy1011Russia2024-04-18
Leja C Malet1012India2024-04-17
Adams A Gaucho1013Spain2024-04-26
Greenwood X Morasca1014Germany2024-04-07
Kaitlin F Ferencz1015Japan2024-04-16
Mayumi Z Wieser1016Italy2024-04-14
Clifford M Malet1017France2024-04-03
Arvin A Albares1018India2024-04-07
Claire P Inouye1019Canada2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer B StensethIndiaBernardo Dominic UNQUALIFIED
Ricardo I VenereItalyIvan Magalhaes PROPOSAL
Munro M CampainArgentinaIoni Bowcher NEW
Kadeem S BowleyIndiaAmy Elsner RENEWAL
Nicolas H DarakjySpainAmy Elsner NEW
Juan W DoeGermanyAsiya Javayant PROPOSAL
Ricardo U TollnerArgentinaBernardo Dominic PROPOSAL
Adams X OldroydUnited KingdomAnna Fali QUALIFIED
Emily H BologniaItalyAmy Elsner UNQUALIFIED
Aruna S FerenczIndiaBernardo Dominic UNQUALIFIED
Wickens Q FigeroaCanadaAsiya Javayant PROPOSAL
Aruna C WaycottRussiaXuxue Feng NEW
Jefferson B GillianUnited KingdomIoni Bowcher NEW
Greenwood A TollnerUnited KingdomAnna Fali QUALIFIED
Jeanfrancois G StensethGermanyAnna Fali UNQUALIFIED
Antonio C KolmetzUnited KingdomAnna Fali NEGOTIATION
Izzy Q PoquetteRussiaStephen Shaw NEW
Aditya Q RutaArgentinaElwin Sharvill NEW
Johnson D RimBrazilElwin Sharvill QUALIFIED
Ivar W RoysterBrazilBernardo Dominic RENEWAL
Nicolas A MacleadCanadaAsiya Javayant PROPOSAL
Antonio V KolmetzJapanXuxue Feng UNQUALIFIED
Deepesh T CaldareraJapanAsiya Javayant NEGOTIATION
Ashley G AmigonGermanyAmy Elsner UNQUALIFIED
David L SlusarskiFranceOnyama Limba NEW
Aruna D FollerAustraliaAnna Fali UNQUALIFIED
Aruna O IturbideFranceIoni Bowcher NEW
James J MaletCanadaStephen Shaw QUALIFIED
Jones S CaldareraCanadaIoni Bowcher NEW
David L NestleBrazilAnna Fali RENEWAL
Leja A ShinkoFranceBernardo Dominic NEW
Darci W MaletItalyAmy Elsner RENEWAL
Wickens N StockhamItalyBernardo Dominic UNQUALIFIED
Adams Y MaletJapanAnna Fali NEGOTIATION
Isabel S OstroskyGermanyAsiya Javayant UNQUALIFIED
Greenwood N SergiUnited KingdomIvan Magalhaes NEW
Clifford A DilliardJapanOnyama Limba NEW
Emily E GarufiBrazilIvan Magalhaes NEW
Faith N WieserJapanStephen Shaw NEGOTIATION
Aruna F RoysterUnited KingdomAmy Elsner PROPOSAL

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