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
Clifford U RulapaughFranceElwin Sharvill PROPOSAL
Faith X TollnerBrazilAsiya Javayant NEW
Leon S DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Cody F OstroskyJapanXuxue Feng RENEWAL
Silvio I BriddickCanadaAsiya Javayant NEW
Ashley M TollnerArgentinaIvan Magalhaes RENEWAL
Rodrigues R IturbideAustraliaAsiya Javayant RENEWAL
Johnson A StensethBrazilOnyama Limba PROPOSAL
Kadeem E BriddickGermanyXuxue Feng NEW
Octavia I StensethGermanyBernardo Dominic PROPOSAL
Greenwood M GillianCanadaXuxue Feng NEW
Smith D NestleSpainOnyama Limba UNQUALIFIED
Kadeem D InouyeFranceOnyama Limba NEW
Stacey B PaprockiBrazilXuxue Feng PROPOSAL
Aruna F VocelkaIndiaIoni Bowcher PROPOSAL
Mayumi C BologniaBrazilIvan Magalhaes NEW
Arvin I WhobreyFranceElwin Sharvill QUALIFIED
Mujtaba J PerinSpainAmy Elsner NEW
Smith M NestleFranceAsiya Javayant UNQUALIFIED
Rodrigues W SlusarskiCanadaAnna Fali QUALIFIED
Arvin M ButtRussiaElwin Sharvill UNQUALIFIED
Darci V CaudyGermanyXuxue Feng QUALIFIED
Ivar C RulapaughSpainElwin Sharvill NEW
Chavez I WaycottItalyAmy Elsner RENEWAL
Tony B MaletJapanBernardo Dominic PROPOSAL
Juan O DoeAustraliaAnna Fali UNQUALIFIED
Jennifer P TollnerRussiaAsiya Javayant RENEWAL
Izzy B MaletUnited KingdomXuxue Feng PROPOSAL
Julie C OstroskyRussiaStephen Shaw QUALIFIED
Faith G PoquetteIndiaIvan Magalhaes PROPOSAL
Jennifer J BowleyUnited KingdomOnyama Limba RENEWAL
Emily P StensethSpainAsiya Javayant QUALIFIED
Leja A StockhamIndiaIoni Bowcher QUALIFIED
Aika V OldroydIndiaAmy Elsner UNQUALIFIED
Francesco C PaprockiBrazilAnna Fali PROPOSAL
Darci P StensethRussiaIvan Magalhaes UNQUALIFIED
Leja N DarakjySpainAsiya Javayant QUALIFIED
Juan Y DarakjyAustraliaAmy Elsner RENEWAL
Munro I FigeroaSpainIvan Magalhaes NEGOTIATION
Isabel K GlickSpainElwin Sharvill NEW
Kadeem H RutaGermanyAmy Elsner UNQUALIFIED
Ashley C KolmetzSpainBernardo Dominic NEW
Aditya F BriddickCanadaXuxue Feng RENEWAL
Munro L FollerAustraliaAsiya Javayant NEGOTIATION
Octavia D OstroskyRussiaAmy Elsner NEGOTIATION
Leja K KuskoJapanAnna Fali RENEWAL
Emily K CampainSpainAsiya Javayant RENEWAL
Wickens W ShinkoBrazilAmy Elsner UNQUALIFIED
Leon G OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer R StensethUnited KingdomAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Silvio J ButtAustraliaAnna Fali UNQUALIFIED
Smith E MaletUnited KingdomBernardo Dominic NEGOTIATION
Leon W SaylorsFranceIoni Bowcher QUALIFIED
Aruna I PerinFranceElwin Sharvill UNQUALIFIED
Jeanfrancois A GlickIndiaBernardo Dominic UNQUALIFIED
Claire R CaldareraArgentinaXuxue Feng RENEWAL
Leja N BowleyFranceStephen Shaw NEW
Jones I AmigonCanadaAmy Elsner QUALIFIED
Wickens C FollerIndiaIvan Magalhaes UNQUALIFIED
Jones O StensethArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi M TollnerRussia2024-03-28Printing Dimensions RENEWAL59Ivan Magalhaes
1001Kaitlin X StensethCanada2024-04-03Feiner Bros PROPOSAL41Asiya Javayant
1002Chavez W CaldareraIndia2024-04-11Rousseaux, Michael Esq QUALIFIED34Ioni Bowcher
1003Wickens T SlusarskiSpain2024-04-08Truhlar And Truhlar Attys NEGOTIATION12Ivan Magalhaes
1004Jennifer V TollnerCanada2024-04-13Feltz Printing Service NEW60Xuxue Feng
1005Sinclair J WhobreyFrance2024-04-14Feltz Printing Service RENEWAL86Bernardo Dominic
1006Izzy R PoquetteCanada2024-04-13Morlong Associates RENEWAL36Anna Fali
1007Rodrigues U WhobreyIndia2024-04-22Benton, John B Jr NEW90Elwin Sharvill
1008Jeanfrancois W RulapaughCanada2024-04-04Feiner Bros NEGOTIATION72Asiya Javayant
1009Kaitlin V GlickCanada2024-04-14Commercial Press NEW67Elwin Sharvill
1010Claire Q VenereJapan2024-04-03Rousseaux, Michael Esq NEW63Ioni Bowcher
1011Jefferson L RulapaughItaly2024-04-20Chanay, Jeffrey A Esq PROPOSAL17Bernardo Dominic
1012Emily V BriddickSpain2024-04-20Printing Dimensions NEW27Bernardo Dominic
1013Mujtaba B AlbaresGermany2024-04-19Chapman, Ross E Esq UNQUALIFIED75Amy Elsner
1014Stacey M GlickItaly2024-03-29Benton, John B Jr UNQUALIFIED66Xuxue Feng
1015Deepesh A DarakjyItaly2024-04-22Buckley Miller Wright NEGOTIATION39Asiya Javayant
1016Claire H BowleyIndia2024-04-10Rangoni Of Florence QUALIFIED96Asiya Javayant
1017Wickens P NestleGermany2024-04-24Commercial Press QUALIFIED31Elwin Sharvill
1018James L GillianBrazil2024-04-19Morlong Associates NEGOTIATION20Asiya Javayant
1019Faith T StensethAustralia2024-04-21Commercial Press PROPOSAL41Bernardo Dominic
1020Nicolas T BologniaBrazil2024-04-02King, Christopher A Esq NEW58Ivan Magalhaes
1021James A ShinkoGermany2024-04-25Dorl, James J Esq RENEWAL92Anna Fali
1022Kadeem F MaletGermany2024-03-31Feiner Bros NEW8Asiya Javayant
1023Jefferson Z PerinGermany2024-04-24Benton, John B Jr UNQUALIFIED95Bernardo Dominic
1024Smith B CaldareraGermany2024-03-30Buckley Miller Wright PROPOSAL40Elwin Sharvill
1025Arvin C NestleItaly2024-04-03Chanay, Jeffrey A Esq NEW30Xuxue Feng
1026Aruna F GillianArgentina2024-04-23Buckley Miller Wright QUALIFIED31Amy Elsner
1027Aika A ShinkoArgentina2024-03-30Chapman, Ross E Esq QUALIFIED42Bernardo Dominic
1028Clifford F AlbaresUnited Kingdom2024-04-17Printing Dimensions NEGOTIATION29Asiya Javayant
1029Emily T IturbideRussia2024-03-31Feiner Bros QUALIFIED91Amy Elsner
1030Leon J DoeIndia2024-04-10Benton, John B Jr RENEWAL0Elwin Sharvill
1031Kaitlin A GlickSpain2024-04-04Dorl, James J Esq PROPOSAL45Xuxue Feng
1032Faith P IturbideCanada2024-04-25Morlong Associates NEW42Bernardo Dominic
1033Jones N MaletBrazil2024-04-05Chanay, Jeffrey A Esq NEW76Asiya Javayant
1034Munro X DoeCanada2024-03-29King, Christopher A Esq NEW41Bernardo Dominic
1035Costa L BowleyBrazil2024-04-16Rangoni Of Florence NEW83Bernardo Dominic
1036Rodrigues V FlosiGermany2024-04-16Chanay, Jeffrey A Esq RENEWAL6Amy Elsner
1037Aditya Z DoeGermany2024-03-31Printing Dimensions NEW74Elwin Sharvill
1038Wickens I DoeItaly2024-04-18Buckley Miller Wright PROPOSAL64Elwin Sharvill
1039Arvin N RoysterFrance2024-03-28Benton, John B Jr QUALIFIED41Ioni Bowcher
1040Jefferson A WhobreyGermany2024-04-24Printing Dimensions UNQUALIFIED68Ioni Bowcher
1041Mayumi R GillianGermany2024-04-25Dorl, James J Esq QUALIFIED24Amy Elsner
1042Greenwood Y ShinkoRussia2024-04-26Chemel, James L Cpa UNQUALIFIED87Asiya Javayant
1043Aika M FlosiSpain2024-04-01Rangoni Of Florence QUALIFIED82Onyama Limba
1044Ivar A CampainSpain2024-04-17Truhlar And Truhlar Attys NEW4Xuxue Feng
1045Antonio T MaletSpain2024-04-18Chemel, James L Cpa NEGOTIATION98Elwin Sharvill
1046Juan H WaycottGermany2024-04-25Feiner Bros UNQUALIFIED17Ivan Magalhaes
1047Deepesh K MorascaIndia2024-04-22Feltz Printing Service PROPOSAL59Onyama Limba
1048Tony Q ButtRussia2024-04-14Chapman, Ross E Esq NEGOTIATION24Stephen Shaw
1049Jeanfrancois B OldroydFrance2024-03-28Chemel, James L Cpa UNQUALIFIED27Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Izzy U RimFranceIoni Bowcher NEGOTIATION
Morrow B RimGermanyOnyama Limba RENEWAL
Isabel K BriddickCanadaAnna Fali QUALIFIED
Morrow V NickaBrazilIoni Bowcher QUALIFIED
Greenwood K RutaIndiaAsiya Javayant NEW
Antonio D ButtItalyXuxue Feng NEGOTIATION
Cody V DilliardFranceStephen Shaw RENEWAL
Munro L SaylorsArgentinaBernardo Dominic PROPOSAL
Murillo D KuskoSpainAnna Fali RENEWAL
Wickens S OstroskyRussiaAmy Elsner UNQUALIFIED
Aruna K MacleadJapanIvan Magalhaes RENEWAL
Maisha Y SaylorsBrazilIoni Bowcher RENEWAL
James L NestleGermanyBernardo Dominic NEW
Costa Y ShinkoCanadaBernardo Dominic QUALIFIED
Kadeem B KolmetzGermanyElwin Sharvill RENEWAL
Aruna N SchemmerCanadaAmy Elsner NEW
Claire Q SchemmerGermanyElwin Sharvill RENEWAL
Emily B PaprockiGermanyAnna Fali RENEWAL
Mujtaba L NestleIndiaXuxue Feng NEGOTIATION
Isabel D PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Emily F PoquetteIndiaOnyama Limba NEW
David Y MorascaUnited KingdomXuxue Feng NEW
Maria W PoquetteAustraliaOnyama Limba NEGOTIATION
Maisha K MorascaIndiaOnyama Limba NEGOTIATION
David C DilliardCanadaAsiya Javayant UNQUALIFIED
Smith D GauchoBrazilAmy Elsner NEW
Ashley R MaletArgentinaXuxue Feng QUALIFIED
Rodrigues H OstroskyRussiaIoni Bowcher UNQUALIFIED
Morrow O AlbaresCanadaStephen Shaw QUALIFIED
Wickens F GauchoIndiaAnna Fali PROPOSAL
Mayumi Y IturbideIndiaOnyama Limba QUALIFIED
Johnson C MorascaArgentinaXuxue Feng NEW
Smith G KolmetzUnited KingdomAsiya Javayant PROPOSAL
Johnson H VocelkaCanadaElwin Sharvill NEW
Johnson E BologniaJapanElwin Sharvill QUALIFIED
Wickens T VenereIndiaStephen Shaw PROPOSAL
Aditya D StensethAustraliaXuxue Feng RENEWAL
Jeanfrancois P WaycottAustraliaOnyama Limba RENEWAL
Clifford K PaprockiIndiaBernardo Dominic PROPOSAL
Ivar D VenereGermanyIvan Magalhaes NEGOTIATION
Jones S OstroskyCanadaStephen Shaw RENEWAL
Mayumi G GlickSpainAsiya Javayant PROPOSAL
Isabel D DoeCanadaElwin Sharvill QUALIFIED
Adams I PoquetteRussiaAsiya Javayant QUALIFIED
Leon W DoeItalyXuxue Feng UNQUALIFIED
Alejandro K ChuiCanadaBernardo Dominic NEW
Sinclair O IturbideBrazilOnyama Limba PROPOSAL
Francesco B TollnerSpainIvan Magalhaes NEW
Rodrigues Z PoquetteBrazilStephen Shaw UNQUALIFIED
James A MacleadFranceStephen Shaw NEW
Frozen Columns
Name
Juan D Chui
Wickens T Maclead
Clifford W Iturbide
Mujtaba C Nestle
Adams U Garufi
Aika C Campain
Mayumi T Flosi
Morrow Y Ferencz
Juan R Darakjy
Antonio S Bolognia
Costa V Dilliard
Leja Z Saylors
Misaki V Paprocki
Munro Y Kolmetz
Adams V Maclead
Francesco W Tollner
Mujtaba F Schemmer
Ivar U Nestle
Maisha H Rim
Cody I Garufi
Francesco D Rim
Aditya H Darakjy
Greenwood P Kusko
Chavez B Stenseth
Ivar R Stockham
Darci Q Schemmer
Johnson E Maclead
Greenwood B Flosi
Clifford I Schemmer
Francesco L Albares
Maria W Amigon
Faith O Bowley
Kaitlin E Stockham
Mayumi F Stenseth
Nicolas O Campain
Francesco H Doe
Tony K Saylors
Misaki Q Malet
Darci J Wieser
Emily R Oldroyd
Murillo A Malet
Isabel Q Garufi
Isabel Y Stockham
Claire B Maclead
Misaki V Figeroa
Tony N Glick
Cody P Kusko
Maisha U Malet
Aika W Bolognia
Mayumi O Darakjy
IdCountryDate
1000Japan2024-04-05
1001France2024-03-31
1002Canada2024-04-12
1003United Kingdom2024-03-29
1004Germany2024-04-05
1005Australia2024-04-03
1006Russia2024-04-23
1007Australia2024-04-02
1008Argentina2024-04-07
1009Russia2024-03-28
1010Italy2024-04-22
1011United Kingdom2024-04-05
1012United Kingdom2024-04-23
1013Canada2024-04-25
1014Australia2024-04-13
1015Brazil2024-04-04
1016Japan2024-04-18
1017Russia2024-04-22
1018India2024-04-07
1019Spain2024-04-05
1020Canada2024-04-02
1021Canada2024-04-14
1022Germany2024-04-22
1023France2024-04-11
1024United Kingdom2024-04-20
1025Japan2024-04-18
1026Argentina2024-04-23
1027Russia2024-03-30
1028Australia2024-04-13
1029Australia2024-04-08
1030France2024-04-06
1031Argentina2024-04-14
1032Australia2024-04-10
1033Australia2024-04-14
1034Canada2024-03-30
1035India2024-04-11
1036India2024-04-21
1037Australia2024-04-19
1038Canada2024-04-21
1039Argentina2024-04-05
1040Japan2024-04-09
1041India2024-04-11
1042Spain2024-04-23
1043United Kingdom2024-04-17
1044India2024-04-18
1045Canada2024-04-26
1046Australia2024-04-05
1047United Kingdom2024-04-19
1048Japan2024-03-28
1049Italy2024-04-01

On-Demand Data

NameIdCountryDate
Misaki Q Darakjy1000France2024-04-18
Nicolas Z Whobrey1001France2024-04-20
Claire T Inouye1002Spain2024-04-17
Sinclair F Oldroyd1003France2024-04-21
Ricardo R Figeroa1004Canada2024-04-08
Leon F Albares1005United Kingdom2024-03-28
Kaitlin K Ferencz1006Japan2024-04-09
Jefferson T Marrier1007Japan2024-04-02
Salvatore A Perin1008Canada2024-04-02
Izzy W Garufi1009Argentina2024-04-17
Arvin P Sergi1010France2024-04-01
Claire C Campain1011India2024-04-06
Faith R Butt1012Italy2024-04-22
Aruna B Gillian1013Canada2024-03-28
Jefferson P Figeroa1014Spain2024-03-30
Wickens L Morasca1015United Kingdom2024-04-17
Nicolas M Flosi1016India2024-03-31
Ricardo M Doe1017Spain2024-03-30
Izzy N Slusarski1018Spain2024-04-25
Jeanfrancois Y Malet1019Argentina2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa A DoeIndiaStephen Shaw QUALIFIED
Kaitlin L NickaCanadaIvan Magalhaes QUALIFIED
Sinclair T DilliardBrazilAsiya Javayant UNQUALIFIED
Darci F StockhamBrazilStephen Shaw UNQUALIFIED
Antonio L CaldareraRussiaAmy Elsner QUALIFIED
Nicolas P SergiBrazilStephen Shaw PROPOSAL
Jones B DilliardArgentinaOnyama Limba RENEWAL
Maisha W KuskoFranceIvan Magalhaes NEW
Ricardo U PoquetteArgentinaAsiya Javayant NEW
Jennifer R ButtUnited KingdomAmy Elsner QUALIFIED
Mujtaba X TollnerItalyElwin Sharvill QUALIFIED
Misaki G StensethFranceIvan Magalhaes PROPOSAL
Jones X NestleAustraliaStephen Shaw NEW
Adams W MaletIndiaAmy Elsner NEGOTIATION
Tony E PaprockiRussiaAmy Elsner QUALIFIED
Emily T CampainBrazilBernardo Dominic QUALIFIED
Emily D VenereArgentinaOnyama Limba RENEWAL
Salvatore S WieserBrazilIoni Bowcher NEGOTIATION
Ricardo M OstroskyUnited KingdomBernardo Dominic PROPOSAL
Silvio U AmigonBrazilBernardo Dominic RENEWAL
Stacey V GlickItalyElwin Sharvill UNQUALIFIED
Murillo Z FigeroaRussiaIoni Bowcher NEGOTIATION
Mayumi K StockhamJapanIoni Bowcher NEW
Jones N FigeroaJapanAnna Fali NEGOTIATION
Tony B KolmetzIndiaBernardo Dominic UNQUALIFIED
Misaki S GauchoUnited KingdomXuxue Feng QUALIFIED
Ricardo N ChuiArgentinaXuxue Feng UNQUALIFIED
Silvio M RulapaughRussiaElwin Sharvill QUALIFIED
Izzy A RutaArgentinaStephen Shaw PROPOSAL
Aika N NestleBrazilXuxue Feng UNQUALIFIED
Francesco T SchemmerFranceAmy Elsner QUALIFIED
Mujtaba B AmigonBrazilElwin Sharvill NEW
Mujtaba Z FerenczGermanyIvan Magalhaes UNQUALIFIED
Leon B NickaBrazilStephen Shaw NEW
Arvin P RutaArgentinaStephen Shaw PROPOSAL
Deepesh E FerenczBrazilAsiya Javayant QUALIFIED
Kaitlin G WieserRussiaStephen Shaw RENEWAL
Munro Q GillianCanadaXuxue Feng NEW
Greenwood S BriddickJapanOnyama Limba NEW
Deepesh T DilliardJapanStephen Shaw 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>