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
Ashley J NickaBrazilBernardo Dominic NEGOTIATION
Izzy G WhobreyFranceBernardo Dominic NEW
Ricardo U ChuiGermanyIvan Magalhaes RENEWAL
Ivar U RulapaughArgentinaXuxue Feng NEGOTIATION
James Q BriddickUnited KingdomAmy Elsner PROPOSAL
Mayumi S ButtArgentinaAmy Elsner NEW
Ricardo S OstroskyGermanyElwin Sharvill QUALIFIED
Nicolas B KuskoAustraliaAmy Elsner RENEWAL
Ricardo T FigeroaSpainXuxue Feng PROPOSAL
Julie L VocelkaItalyIvan Magalhaes PROPOSAL
Aika N RoysterJapanOnyama Limba RENEWAL
Smith O AlbaresIndiaAnna Fali UNQUALIFIED
Francesco C FollerIndiaAsiya Javayant NEGOTIATION
Mayumi Z OldroydSpainElwin Sharvill QUALIFIED
Darci L FlosiArgentinaIvan Magalhaes QUALIFIED
Mayumi T BologniaUnited KingdomBernardo Dominic PROPOSAL
Kaitlin V MarrierGermanyXuxue Feng NEW
Ivar A CaudySpainStephen Shaw UNQUALIFIED
Kadeem U BologniaRussiaAnna Fali NEW
Clifford D MorascaFranceIoni Bowcher PROPOSAL
Maisha C DarakjyFranceXuxue Feng UNQUALIFIED
Jeanfrancois D FigeroaArgentinaIoni Bowcher QUALIFIED
Arvin G GlickGermanyAsiya Javayant RENEWAL
Tony P KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Faith D FlosiArgentinaXuxue Feng NEGOTIATION
Emily Q PaprockiGermanyStephen Shaw NEW
Mujtaba V StensethCanadaIoni Bowcher QUALIFIED
Octavia F FollerCanadaIvan Magalhaes QUALIFIED
Ricardo J GarufiIndiaBernardo Dominic PROPOSAL
Jeanfrancois P PoquetteItalyAmy Elsner RENEWAL
Octavia C GarufiBrazilIoni Bowcher UNQUALIFIED
Maisha H FollerGermanyAnna Fali NEW
Francesco I FerenczItalyBernardo Dominic NEGOTIATION
Mayumi X SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Alejandro X ChuiItalyAmy Elsner UNQUALIFIED
Nicolas U SchemmerRussiaAmy Elsner QUALIFIED
Arvin I MarrierSpainAnna Fali NEGOTIATION
Darci N RimGermanyIvan Magalhaes NEW
Maisha E InouyeAustraliaAnna Fali PROPOSAL
Murillo Z StensethArgentinaAmy Elsner UNQUALIFIED
Deepesh H OldroydRussiaIvan Magalhaes UNQUALIFIED
Faith Y GillianFranceIvan Magalhaes UNQUALIFIED
Emily F RoysterGermanyAmy Elsner NEGOTIATION
Alejandro B MaletBrazilBernardo Dominic PROPOSAL
Leon X PaprockiBrazilElwin Sharvill UNQUALIFIED
Jennifer B InouyeFranceAmy Elsner NEGOTIATION
Emily Q WaycottFranceElwin Sharvill PROPOSAL
Kadeem X NickaBrazilElwin Sharvill RENEWAL
Chavez N InouyeUnited KingdomIvan Magalhaes NEW
Tony F IturbideGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Darci O WhobreyCanadaAmy Elsner PROPOSAL
Munro F GillianJapanIoni Bowcher NEGOTIATION
Jennifer Q BriddickUnited KingdomAnna Fali PROPOSAL
Clifford V ButtUnited KingdomAsiya Javayant NEGOTIATION
Morrow G NestleCanadaAnna Fali QUALIFIED
Sinclair O MaletRussiaAnna Fali RENEWAL
David F RimFranceStephen Shaw QUALIFIED
Ricardo U StensethSpainBernardo Dominic NEW
Jeanfrancois S WhobreyIndiaStephen Shaw PROPOSAL
Silvio P GlickFranceBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan E PerinArgentina2024-04-19Chanay, Jeffrey A Esq NEGOTIATION2Anna Fali
1001Antonio O CaudyFrance2024-04-14Benton, John B Jr NEGOTIATION36Elwin Sharvill
1002Murillo D RimFrance2024-04-18Dorl, James J Esq NEW57Amy Elsner
1003Claire B BologniaItaly2024-04-22Benton, John B Jr UNQUALIFIED37Bernardo Dominic
1004Izzy V OldroydFrance2024-04-20King, Christopher A Esq PROPOSAL99Onyama Limba
1005Ashley P StensethGermany2024-04-16Feltz Printing Service NEW65Elwin Sharvill
1006Octavia O VenereAustralia2024-04-17Buckley Miller Wright RENEWAL2Stephen Shaw
1007Stacey U NickaCanada2024-04-10Dorl, James J Esq QUALIFIED2Ivan Magalhaes
1008Clifford I ButtArgentina2024-05-03Feiner Bros NEGOTIATION49Anna Fali
1009Johnson X RulapaughRussia2024-04-25Rangoni Of Florence NEW89Xuxue Feng
1010Julie U OldroydArgentina2024-04-20Truhlar And Truhlar Attys PROPOSAL39Elwin Sharvill
1011Kaitlin J PaprockiGermany2024-04-21Feiner Bros QUALIFIED4Xuxue Feng
1012Chavez K OstroskyUnited Kingdom2024-05-07King, Christopher A Esq UNQUALIFIED57Stephen Shaw
1013Salvatore C GauchoIndia2024-05-03Commercial Press UNQUALIFIED14Xuxue Feng
1014Aika T SaylorsJapan2024-04-18Chanay, Jeffrey A Esq NEW45Stephen Shaw
1015Emily C KuskoRussia2024-04-20King, Christopher A Esq PROPOSAL42Anna Fali
1016Stacey I MorascaAustralia2024-04-30Chapman, Ross E Esq UNQUALIFIED13Elwin Sharvill
1017Costa E PaprockiCanada2024-05-05Feiner Bros RENEWAL48Amy Elsner
1018Rodrigues H BologniaItaly2024-04-23Benton, John B Jr NEGOTIATION43Bernardo Dominic
1019Aditya J GarufiRussia2024-04-16Printing Dimensions UNQUALIFIED25Bernardo Dominic
1020James H RimGermany2024-04-20Truhlar And Truhlar Attys QUALIFIED76Stephen Shaw
1021Aruna D BowleyUnited Kingdom2024-05-03King, Christopher A Esq PROPOSAL32Xuxue Feng
1022Jeanfrancois K VocelkaCanada2024-04-13Rousseaux, Michael Esq QUALIFIED56Onyama Limba
1023Costa W PerinFrance2024-04-13Printing Dimensions RENEWAL8Ioni Bowcher
1024Jones Y ChuiIndia2024-04-23Dorl, James J Esq RENEWAL53Bernardo Dominic
1025Antonio V KolmetzItaly2024-05-01Feiner Bros RENEWAL9Amy Elsner
1026Chavez E MacleadIndia2024-04-15Chapman, Ross E Esq RENEWAL49Amy Elsner
1027Clifford P GarufiSpain2024-05-04Chanay, Jeffrey A Esq NEW22Asiya Javayant
1028Nicolas X CampainGermany2024-04-15Morlong Associates QUALIFIED4Ioni Bowcher
1029Salvatore S PerinSpain2024-04-28Morlong Associates NEGOTIATION71Elwin Sharvill
1030Sinclair E GillianArgentina2024-05-01Chanay, Jeffrey A Esq UNQUALIFIED53Onyama Limba
1031Leon A ButtCanada2024-04-18Dorl, James J Esq RENEWAL6Xuxue Feng
1032Stacey I FollerCanada2024-05-07Chanay, Jeffrey A Esq PROPOSAL66Amy Elsner
1033Alejandro A VocelkaSpain2024-04-16Morlong Associates NEW14Ivan Magalhaes
1034Juan J MaletUnited Kingdom2024-05-01Buckley Miller Wright PROPOSAL45Asiya Javayant
1035Julie E FerenczFrance2024-05-04Chemel, James L Cpa RENEWAL7Stephen Shaw
1036Claire K FerenczCanada2024-04-17Rangoni Of Florence NEGOTIATION34Ivan Magalhaes
1037Silvio U MorascaCanada2024-04-29Buckley Miller Wright RENEWAL19Ivan Magalhaes
1038Jennifer D PaprockiArgentina2024-04-26Morlong Associates RENEWAL91Xuxue Feng
1039Tony J DarakjyIndia2024-05-02Truhlar And Truhlar Attys PROPOSAL84Anna Fali
1040Tony Y TollnerUnited Kingdom2024-04-14Chanay, Jeffrey A Esq NEW41Anna Fali
1041Leja P StensethAustralia2024-04-09Chanay, Jeffrey A Esq NEGOTIATION30Anna Fali
1042Cody I ButtItaly2024-05-02Feiner Bros NEGOTIATION69Asiya Javayant
1043Claire C RutaGermany2024-04-08Printing Dimensions UNQUALIFIED53Stephen Shaw
1044Smith F VenereArgentina2024-04-23Buckley Miller Wright PROPOSAL8Ivan Magalhaes
1045Costa K PoquetteArgentina2024-04-21Chanay, Jeffrey A Esq PROPOSAL79Asiya Javayant
1046Francesco S RimAustralia2024-04-27Truhlar And Truhlar Attys UNQUALIFIED51Stephen Shaw
1047Leja T WhobreyCanada2024-04-12Chemel, James L Cpa PROPOSAL11Ioni Bowcher
1048Jones Q DilliardFrance2024-04-21Dorl, James J Esq QUALIFIED3Onyama Limba
1049Adams T SaylorsAustralia2024-05-03Truhlar And Truhlar Attys NEW44Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues O RutaCanadaBernardo Dominic NEGOTIATION
Maria P PoquetteFranceAmy Elsner RENEWAL
David V VenereBrazilIvan Magalhaes NEGOTIATION
Maisha C GlickUnited KingdomAmy Elsner UNQUALIFIED
Jones Y KuskoSpainXuxue Feng NEW
Chavez E NestleRussiaElwin Sharvill NEW
Greenwood Q MaletFranceAnna Fali UNQUALIFIED
Jefferson R PerinFranceBernardo Dominic RENEWAL
James J AmigonUnited KingdomIvan Magalhaes PROPOSAL
Julie K IturbideAustraliaAsiya Javayant RENEWAL
Adams K RimJapanOnyama Limba QUALIFIED
Morrow J NickaFranceAsiya Javayant PROPOSAL
Morrow Y GlickIndiaElwin Sharvill RENEWAL
Mayumi J MarrierItalyElwin Sharvill QUALIFIED
Darci U ButtItalyStephen Shaw NEW
Emily F SchemmerUnited KingdomElwin Sharvill NEGOTIATION
David P OldroydIndiaAnna Fali RENEWAL
Octavia X NestleArgentinaOnyama Limba QUALIFIED
Costa T ShinkoGermanyAnna Fali UNQUALIFIED
Leon V CaudyUnited KingdomXuxue Feng RENEWAL
Mujtaba S RulapaughBrazilBernardo Dominic QUALIFIED
Ashley F VocelkaRussiaAsiya Javayant PROPOSAL
Silvio X AlbaresCanadaElwin Sharvill NEW
Misaki F GlickBrazilAmy Elsner QUALIFIED
Tony O KolmetzAustraliaIvan Magalhaes RENEWAL
Jeanfrancois L MaletIndiaOnyama Limba NEW
Francesco I VenereUnited KingdomIvan Magalhaes QUALIFIED
Ashley Q VenereCanadaAmy Elsner NEGOTIATION
Stacey H PerinJapanStephen Shaw NEW
Stacey A RoysterAustraliaAnna Fali QUALIFIED
Deepesh O SergiGermanyStephen Shaw UNQUALIFIED
Octavia D InouyeIndiaIvan Magalhaes NEGOTIATION
Isabel V PerinFranceIoni Bowcher RENEWAL
Salvatore F TollnerAustraliaElwin Sharvill PROPOSAL
Rodrigues C SlusarskiBrazilXuxue Feng PROPOSAL
Claire D KuskoSpainIoni Bowcher NEGOTIATION
Antonio W RoysterSpainAnna Fali NEGOTIATION
Darci I FollerIndiaIoni Bowcher NEW
Julie C NestleBrazilOnyama Limba QUALIFIED
Ivar M StensethGermanyStephen Shaw RENEWAL
Leja X BowleySpainXuxue Feng UNQUALIFIED
Octavia N KolmetzArgentinaAmy Elsner NEW
Stacey M MaletIndiaAnna Fali NEGOTIATION
Octavia S OstroskyFranceXuxue Feng NEW
Octavia V KolmetzCanadaIoni Bowcher QUALIFIED
Jeanfrancois Z DoeUnited KingdomAmy Elsner NEW
Ashley Z SchemmerFranceIoni Bowcher QUALIFIED
Isabel I BowleyRussiaStephen Shaw NEW
James R FollerGermanyAmy Elsner PROPOSAL
Mujtaba P CaldareraSpainXuxue Feng RENEWAL
Frozen Columns
Name
Julie R Vocelka
Izzy Q Oldroyd
Ricardo N Nestle
Leon O Morasca
Aruna U Butt
Stacey S Ostrosky
Kadeem J Shinko
Cody N Royster
Murillo D Slusarski
Mujtaba E Rulapaugh
Nicolas V Tollner
Ricardo I Briddick
Costa Z Ferencz
Maisha K Iturbide
Jefferson P Campain
Jefferson Z Stenseth
Nicolas N Kusko
Maria I Campain
Emily A Paprocki
Cody G Ostrosky
James T Shinko
Ashley F Darakjy
Deepesh D Briddick
Clifford L Paprocki
Francesco L Saylors
Murillo V Briddick
Costa W Ferencz
Isabel S Oldroyd
Greenwood S Foller
Juan E Chui
Silvio W Bolognia
Leja H Slusarski
James M Caldarera
Aruna T Bolognia
Leon S Ostrosky
Aika J Chui
Leon W Campain
Sinclair C Caldarera
Leon G Nestle
Smith F Bowley
Munro P Shinko
Aditya F Albares
Aruna Y Perin
Tony U Nicka
Maria O Morasca
Johnson F Kusko
Darci K Wieser
Jeanfrancois M Kolmetz
Misaki A Ostrosky
Kaitlin K Bolognia
IdCountryDate
1000Spain2024-05-03
1001India2024-05-01
1002Australia2024-04-25
1003Canada2024-04-08
1004India2024-04-17
1005Germany2024-05-05
1006Canada2024-04-20
1007United Kingdom2024-04-27
1008Spain2024-04-26
1009Italy2024-05-05
1010Argentina2024-04-20
1011Brazil2024-04-17
1012Spain2024-04-20
1013Italy2024-04-26
1014Brazil2024-04-25
1015Canada2024-05-05
1016Argentina2024-05-01
1017Brazil2024-04-25
1018Japan2024-04-17
1019Canada2024-04-26
1020Germany2024-04-22
1021France2024-04-08
1022United Kingdom2024-04-19
1023Spain2024-04-09
1024France2024-04-19
1025Russia2024-04-22
1026Canada2024-05-05
1027Argentina2024-04-12
1028Canada2024-04-08
1029Russia2024-05-06
1030Brazil2024-04-13
1031France2024-04-14
1032Italy2024-05-06
1033India2024-05-01
1034Spain2024-04-18
1035Argentina2024-04-13
1036Spain2024-04-26
1037Argentina2024-04-08
1038United Kingdom2024-04-23
1039Germany2024-05-05
1040India2024-04-10
1041India2024-05-01
1042Italy2024-04-21
1043France2024-05-06
1044Japan2024-04-16
1045India2024-04-26
1046Japan2024-04-30
1047Argentina2024-04-11
1048Brazil2024-04-17
1049India2024-04-13

On-Demand Data

NameIdCountryDate
Kaitlin Q Gaucho1000France2024-04-27
Aika F Butt1001India2024-04-25
Nicolas J Figeroa1002Spain2024-04-26
Rodrigues E Whobrey1003France2024-04-08
Clifford V Kusko1004India2024-04-23
Silvio H Slusarski1005United Kingdom2024-04-08
Sinclair V Wieser1006Brazil2024-04-08
Mujtaba N Figeroa1007Australia2024-04-23
Ivar J Marrier1008Japan2024-04-23
Izzy Y Flosi1009Canada2024-05-07
Costa J Chui1010India2024-04-24
Jones G Whobrey1011Spain2024-04-13
Smith A Ostrosky1012Russia2024-04-26
Leja F Iturbide1013Argentina2024-04-19
Maisha I Nestle1014India2024-05-03
Ivar Q Stenseth1015United Kingdom2024-04-16
Ivar T Ferencz1016Brazil2024-04-19
Jeanfrancois M Venere1017France2024-04-20
David Z Figeroa1018Canada2024-04-29
Wickens K Malet1019Japan2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore I BriddickBrazilAmy Elsner QUALIFIED
Darci L RoysterAustraliaOnyama Limba RENEWAL
Aika J PerinAustraliaIvan Magalhaes PROPOSAL
Jefferson L WaycottRussiaBernardo Dominic RENEWAL
Leon Y NestleArgentinaIoni Bowcher UNQUALIFIED
Mujtaba A BologniaItalyIvan Magalhaes RENEWAL
Antonio T GlickBrazilStephen Shaw NEGOTIATION
Mayumi F GarufiIndiaXuxue Feng RENEWAL
Jefferson O DilliardIndiaXuxue Feng NEGOTIATION
Emily S MacleadAustraliaStephen Shaw QUALIFIED
Aditya K GlickSpainAnna Fali NEW
Jones O SergiFranceStephen Shaw NEW
Munro K KuskoAustraliaElwin Sharvill UNQUALIFIED
Stacey R RoysterAustraliaStephen Shaw NEGOTIATION
Costa E SlusarskiSpainXuxue Feng PROPOSAL
Antonio W KuskoAustraliaElwin Sharvill NEW
Alejandro J ShinkoIndiaXuxue Feng UNQUALIFIED
Salvatore C BologniaUnited KingdomStephen Shaw QUALIFIED
James B StockhamArgentinaOnyama Limba NEGOTIATION
Morrow B GarufiAustraliaAnna Fali QUALIFIED
Cody O AlbaresJapanIvan Magalhaes RENEWAL
Jeanfrancois T StockhamItalyStephen Shaw NEGOTIATION
Darci E DilliardAustraliaIoni Bowcher NEGOTIATION
Darci L GlickGermanyElwin Sharvill PROPOSAL
Julie B BriddickJapanStephen Shaw PROPOSAL
Sinclair Q MacleadUnited KingdomStephen Shaw UNQUALIFIED
Misaki V PoquetteItalyIoni Bowcher NEW
Mujtaba L DoeGermanyElwin Sharvill RENEWAL
Adams A ButtSpainAmy Elsner NEGOTIATION
Greenwood C IturbideJapanElwin Sharvill RENEWAL
Wickens U StockhamJapanXuxue Feng UNQUALIFIED
Mujtaba M TollnerItalyIoni Bowcher PROPOSAL
Ricardo H ShinkoCanadaStephen Shaw NEW
James G DoeSpainAnna Fali RENEWAL
Isabel Q MorascaCanadaBernardo Dominic QUALIFIED
Clifford D MacleadGermanyAnna Fali QUALIFIED
Emily N DilliardCanadaStephen Shaw NEGOTIATION
Alejandro S GlickCanadaIoni Bowcher PROPOSAL
Mujtaba F WhobreyArgentinaIvan Magalhaes QUALIFIED
Isabel T MarrierBrazilAmy Elsner 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>