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
Silvio J BologniaSpainOnyama Limba NEGOTIATION
Aditya U GarufiCanadaAsiya Javayant RENEWAL
Tony K ButtFranceBernardo Dominic NEW
Sinclair Y BologniaFranceOnyama Limba PROPOSAL
Francesco S FollerRussiaStephen Shaw NEGOTIATION
Claire P BriddickJapanElwin Sharvill QUALIFIED
Izzy S NickaIndiaAnna Fali PROPOSAL
Costa M PoquetteCanadaBernardo Dominic QUALIFIED
Ivar S BowleyGermanyOnyama Limba PROPOSAL
Morrow W KuskoBrazilStephen Shaw QUALIFIED
Jeanfrancois F DarakjyAustraliaXuxue Feng PROPOSAL
Arvin W GauchoBrazilOnyama Limba RENEWAL
Kadeem J CaudyBrazilIoni Bowcher PROPOSAL
Jones W DarakjyAustraliaAnna Fali NEW
Kaitlin Z FigeroaAustraliaAsiya Javayant PROPOSAL
Misaki Z InouyeFranceIoni Bowcher NEW
Jennifer J FigeroaUnited KingdomIvan Magalhaes PROPOSAL
Smith U ButtGermanyAsiya Javayant NEW
Rodrigues A FigeroaRussiaIvan Magalhaes UNQUALIFIED
Johnson H DilliardItalyIoni Bowcher RENEWAL
Emily F TollnerBrazilOnyama Limba RENEWAL
Clifford V DoeArgentinaAsiya Javayant UNQUALIFIED
Chavez I DilliardAustraliaIvan Magalhaes PROPOSAL
Aditya D NickaJapanIoni Bowcher QUALIFIED
Greenwood Y KolmetzSpainElwin Sharvill QUALIFIED
Johnson F NestleSpainIvan Magalhaes NEW
Aruna Z GauchoArgentinaIoni Bowcher RENEWAL
Smith T PoquetteAustraliaStephen Shaw NEGOTIATION
David U FerenczSpainIvan Magalhaes RENEWAL
Izzy U FigeroaAustraliaAsiya Javayant QUALIFIED
Kaitlin J PoquetteItalyIvan Magalhaes NEGOTIATION
Clifford D ButtIndiaXuxue Feng NEGOTIATION
Jeanfrancois M CaudyCanadaBernardo Dominic PROPOSAL
Johnson N FigeroaJapanBernardo Dominic RENEWAL
Misaki O ChuiItalyBernardo Dominic NEGOTIATION
Mujtaba H MarrierCanadaBernardo Dominic QUALIFIED
Ashley H FerenczCanadaElwin Sharvill NEW
Ivar P ButtAustraliaStephen Shaw QUALIFIED
Johnson V FollerJapanElwin Sharvill UNQUALIFIED
Faith P TollnerIndiaBernardo Dominic PROPOSAL
Antonio S PaprockiGermanyStephen Shaw UNQUALIFIED
Morrow G GillianAustraliaBernardo Dominic NEGOTIATION
Morrow C FollerSpainIvan Magalhaes RENEWAL
Silvio E RimArgentinaOnyama Limba NEGOTIATION
Juan W KuskoIndiaAnna Fali PROPOSAL
Darci G FerenczAustraliaElwin Sharvill NEGOTIATION
Morrow O NickaAustraliaXuxue Feng UNQUALIFIED
Chavez W IturbideUnited KingdomBernardo Dominic QUALIFIED
Nicolas B OldroydCanadaBernardo Dominic NEW
Izzy V RimUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens T OldroydItalyAnna Fali NEGOTIATION
Ashley Q SchemmerAustraliaXuxue Feng QUALIFIED
Cody H NestleAustraliaIoni Bowcher RENEWAL
Antonio X VocelkaBrazilXuxue Feng NEW
Clifford R MaletUnited KingdomXuxue Feng NEGOTIATION
Aruna H KuskoCanadaAmy Elsner RENEWAL
Smith K WieserCanadaElwin Sharvill PROPOSAL
Johnson W WieserItalyIoni Bowcher RENEWAL
Sinclair I TollnerSpainIoni Bowcher NEW
Leja G DoeItalyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo T WhobreyArgentina2024-03-31Buckley Miller Wright NEW69Ioni Bowcher
1001Kadeem V BowleyBrazil2024-04-08Truhlar And Truhlar Attys NEW62Onyama Limba
1002Arvin F MorascaItaly2024-04-16Feltz Printing Service PROPOSAL9Bernardo Dominic
1003Aditya V KolmetzSpain2024-04-08Commercial Press UNQUALIFIED86Onyama Limba
1004Aika M KolmetzIndia2024-03-28Truhlar And Truhlar Attys PROPOSAL97Onyama Limba
1005Rodrigues R ShinkoRussia2024-04-14Feltz Printing Service PROPOSAL36Ioni Bowcher
1006Jennifer F IturbideGermany2024-04-18Chapman, Ross E Esq RENEWAL41Xuxue Feng
1007Chavez Y KolmetzJapan2024-04-03Printing Dimensions NEW84Amy Elsner
1008Francesco R FlosiCanada2024-03-23Feltz Printing Service RENEWAL27Anna Fali
1009Tony U CaudyItaly2024-03-24Truhlar And Truhlar Attys NEW58Ivan Magalhaes
1010Juan E MaletArgentina2024-03-20Buckley Miller Wright QUALIFIED2Bernardo Dominic
1011Jefferson A PerinFrance2024-04-12King, Christopher A Esq UNQUALIFIED46Anna Fali
1012Rodrigues E BriddickSpain2024-04-14Rousseaux, Michael Esq RENEWAL26Stephen Shaw
1013Mayumi A MaletJapan2024-03-23Morlong Associates UNQUALIFIED25Ivan Magalhaes
1014Cody Z SaylorsItaly2024-04-07Buckley Miller Wright RENEWAL50Bernardo Dominic
1015Claire M FlosiGermany2024-04-18Chemel, James L Cpa RENEWAL93Stephen Shaw
1016Munro K GauchoFrance2024-03-28Benton, John B Jr PROPOSAL63Elwin Sharvill
1017Johnson A BowleyFrance2024-04-11Truhlar And Truhlar Attys NEGOTIATION15Xuxue Feng
1018Arvin I OstroskyIndia2024-04-17Feiner Bros NEGOTIATION44Stephen Shaw
1019David Z DoeAustralia2024-04-14Buckley Miller Wright PROPOSAL9Stephen Shaw
1020Nicolas J GauchoCanada2024-04-02Truhlar And Truhlar Attys UNQUALIFIED40Anna Fali
1021Nicolas N FerenczAustralia2024-04-16Morlong Associates UNQUALIFIED4Xuxue Feng
1022Ivar B FlosiArgentina2024-04-16Commercial Press NEW6Ioni Bowcher
1023Silvio V PaprockiItaly2024-03-31Chapman, Ross E Esq NEGOTIATION67Anna Fali
1024Clifford B ChuiAustralia2024-04-09Feiner Bros NEW29Bernardo Dominic
1025Julie M WieserUnited Kingdom2024-03-24Rangoni Of Florence PROPOSAL6Stephen Shaw
1026Wickens E BowleyUnited Kingdom2024-04-05Rangoni Of Florence UNQUALIFIED4Stephen Shaw
1027Darci C CaudyGermany2024-03-29Rangoni Of Florence NEGOTIATION22Ioni Bowcher
1028Johnson U AlbaresSpain2024-04-13King, Christopher A Esq RENEWAL29Ivan Magalhaes
1029Adams H WaycottUnited Kingdom2024-04-12Truhlar And Truhlar Attys NEGOTIATION89Ivan Magalhaes
1030Silvio Z AmigonRussia2024-04-04King, Christopher A Esq RENEWAL11Anna Fali
1031Chavez C GauchoItaly2024-04-08Chemel, James L Cpa RENEWAL40Onyama Limba
1032Julie P AmigonSpain2024-04-07Feltz Printing Service NEW70Ioni Bowcher
1033Chavez N WaycottRussia2024-04-09Rousseaux, Michael Esq UNQUALIFIED88Anna Fali
1034Jeanfrancois Y MaletCanada2024-03-24Feiner Bros RENEWAL39Onyama Limba
1035Juan I OldroydSpain2024-04-13Feltz Printing Service QUALIFIED46Bernardo Dominic
1036Salvatore G FlosiGermany2024-04-07Chanay, Jeffrey A Esq PROPOSAL69Xuxue Feng
1037Leja J VenereArgentina2024-04-18King, Christopher A Esq RENEWAL72Amy Elsner
1038Johnson I AmigonAustralia2024-04-03Feiner Bros RENEWAL5Elwin Sharvill
1039Maria K ButtSpain2024-04-14Morlong Associates NEGOTIATION65Onyama Limba
1040Faith P WaycottCanada2024-04-18Truhlar And Truhlar Attys QUALIFIED38Xuxue Feng
1041Tony N GillianAustralia2024-04-07Dorl, James J Esq PROPOSAL85Anna Fali
1042Greenwood N KuskoJapan2024-04-02Rangoni Of Florence PROPOSAL85Ivan Magalhaes
1043Silvio H StensethSpain2024-04-14Truhlar And Truhlar Attys NEGOTIATION54Elwin Sharvill
1044Chavez P RoysterUnited Kingdom2024-04-01Printing Dimensions NEW64Amy Elsner
1045Jennifer A WieserRussia2024-04-17Rousseaux, Michael Esq QUALIFIED25Anna Fali
1046Jefferson J RoysterIndia2024-04-17Feltz Printing Service NEGOTIATION65Stephen Shaw
1047Izzy B DilliardUnited Kingdom2024-04-15Chemel, James L Cpa NEW43Asiya Javayant
1048Leja I GlickRussia2024-04-02Chemel, James L Cpa UNQUALIFIED84Asiya Javayant
1049Greenwood H RutaBrazil2024-04-04Rangoni Of Florence UNQUALIFIED1Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Costa G BowleyJapanIvan Magalhaes RENEWAL
Munro C ButtAustraliaIvan Magalhaes UNQUALIFIED
Adams X SergiBrazilIvan Magalhaes NEW
Nicolas A WieserArgentinaBernardo Dominic RENEWAL
Deepesh H CaudySpainAsiya Javayant QUALIFIED
Murillo O WhobreyItalyAmy Elsner RENEWAL
Johnson O MaletItalyAsiya Javayant PROPOSAL
Maria T DoeAustraliaOnyama Limba QUALIFIED
Claire B DoeCanadaOnyama Limba NEW
Murillo V InouyeUnited KingdomAnna Fali QUALIFIED
Morrow Z BowleyUnited KingdomXuxue Feng NEGOTIATION
Kaitlin D SergiItalyIvan Magalhaes RENEWAL
Salvatore D BriddickJapanOnyama Limba RENEWAL
Greenwood Q SchemmerIndiaStephen Shaw NEW
Aika J RutaSpainXuxue Feng NEW
Rodrigues V MaletGermanyStephen Shaw PROPOSAL
Juan Z BriddickSpainAsiya Javayant NEGOTIATION
Deepesh U MarrierItalyElwin Sharvill RENEWAL
Maria M DoeRussiaAsiya Javayant RENEWAL
Aruna Z GlickItalyBernardo Dominic PROPOSAL
Jeanfrancois I StensethGermanyXuxue Feng QUALIFIED
Mujtaba M AlbaresAustraliaIoni Bowcher QUALIFIED
Smith K CaudyBrazilAnna Fali UNQUALIFIED
Leja U AmigonAustraliaStephen Shaw RENEWAL
Maria S FlosiBrazilAmy Elsner NEGOTIATION
Johnson N SchemmerAustraliaXuxue Feng QUALIFIED
Antonio S VocelkaJapanOnyama Limba NEGOTIATION
Antonio L NestleBrazilOnyama Limba QUALIFIED
Faith Y WaycottBrazilStephen Shaw PROPOSAL
Stacey S StensethJapanAmy Elsner QUALIFIED
Octavia M FigeroaAustraliaBernardo Dominic NEW
Sinclair W VenereItalyAsiya Javayant PROPOSAL
Emily Q PerinRussiaOnyama Limba UNQUALIFIED
Alejandro H CampainGermanyIvan Magalhaes UNQUALIFIED
Kadeem I FlosiUnited KingdomElwin Sharvill NEGOTIATION
Morrow A WhobreyJapanIoni Bowcher NEGOTIATION
Faith W CaudyAustraliaIoni Bowcher QUALIFIED
Johnson R NestleFranceOnyama Limba PROPOSAL
Juan I VocelkaAustraliaAsiya Javayant RENEWAL
Aditya X OldroydBrazilIvan Magalhaes UNQUALIFIED
Ivar V ChuiArgentinaIoni Bowcher NEW
Mayumi I SchemmerGermanyAnna Fali NEGOTIATION
Leon U DarakjyAustraliaAsiya Javayant PROPOSAL
Aika C MaletSpainAsiya Javayant UNQUALIFIED
Mujtaba J CaudySpainElwin Sharvill QUALIFIED
Nicolas O KuskoItalyAmy Elsner UNQUALIFIED
Morrow S CampainRussiaIvan Magalhaes RENEWAL
James D PaprockiRussiaBernardo Dominic UNQUALIFIED
Arvin X DoeIndiaIvan Magalhaes UNQUALIFIED
Leja Q TollnerUnited KingdomAnna Fali NEW
Frozen Columns
Name
Clifford R Royster
Morrow D Briddick
Kadeem Y Rim
Tony X Nestle
Leon U Kusko
Adams X Briddick
Ricardo T Ruta
Johnson S Caudy
Ricardo M Glick
Darci C Dilliard
Julie P Tollner
Aika H Nestle
Jones W Shinko
Tony H Butt
Chavez P Vocelka
Mayumi D Kusko
Antonio H Doe
Jefferson L Doe
Stacey F Oldroyd
Darci F Flosi
Rodrigues P Bolognia
Ivar X Waycott
Emily B Ruta
Ricardo L Garufi
Jones W Waycott
Tony B Malet
Maria A Butt
Maisha U Shinko
Sinclair O Kusko
Munro M Poquette
Costa R Slusarski
Cody I Albares
Jeanfrancois B Bolognia
Leja X Briddick
Juan Q Chui
Johnson L Sergi
Leon K Stockham
Darci O Butt
Ivar P Poquette
Aruna M Ruta
Maisha C Kolmetz
Aditya W Flosi
Deepesh F Maclead
Faith V Poquette
Tony Q Ruta
Antonio V Marrier
Adams O Waycott
Izzy T Dilliard
Smith Y Garufi
Chavez Q Dilliard
IdCountryDate
1000India2024-03-23
1001Germany2024-03-26
1002India2024-03-30
1003France2024-04-13
1004France2024-04-02
1005Canada2024-04-05
1006Japan2024-04-06
1007Germany2024-04-13
1008Argentina2024-03-23
1009France2024-04-08
1010Russia2024-04-16
1011Japan2024-04-01
1012Australia2024-04-17
1013Italy2024-04-18
1014Australia2024-03-21
1015Italy2024-03-21
1016Australia2024-04-14
1017India2024-04-18
1018India2024-04-08
1019United Kingdom2024-03-26
1020Russia2024-04-13
1021Italy2024-03-25
1022United Kingdom2024-04-04
1023Russia2024-03-26
1024Canada2024-04-14
1025France2024-04-02
1026United Kingdom2024-04-11
1027Canada2024-03-27
1028India2024-04-11
1029Brazil2024-03-28
1030Australia2024-04-12
1031United Kingdom2024-03-24
1032Spain2024-03-24
1033Argentina2024-04-09
1034Brazil2024-03-21
1035France2024-04-02
1036Argentina2024-04-16
1037Australia2024-04-13
1038France2024-04-14
1039United Kingdom2024-03-31
1040Germany2024-04-15
1041Japan2024-03-24
1042Russia2024-04-03
1043Australia2024-04-15
1044India2024-04-04
1045France2024-04-11
1046Canada2024-04-09
1047France2024-03-22
1048Argentina2024-03-21
1049Italy2024-04-04

On-Demand Data

NameIdCountryDate
Aditya V Gaucho1000Italy2024-03-30
Isabel Q Oldroyd1001Spain2024-04-16
Kaitlin X Oldroyd1002Brazil2024-04-09
Costa T Stenseth1003India2024-04-18
Ivar A Stenseth1004Russia2024-03-24
Izzy W Kolmetz1005India2024-04-15
Leon F Tollner1006Italy2024-03-29
Claire J Briddick1007Italy2024-03-22
Munro I Whobrey1008Italy2024-04-01
Emily B Shinko1009United Kingdom2024-04-02
Kaitlin U Doe1010United Kingdom2024-04-15
Greenwood W Darakjy1011Spain2024-04-12
Ricardo L Venere1012Brazil2024-04-14
Jones F Paprocki1013Russia2024-04-14
Julie I Butt1014Brazil2024-03-20
Tony X Morasca1015United Kingdom2024-04-10
Kaitlin S Nestle1016United Kingdom2024-04-03
Leon Y Amigon1017Russia2024-03-21
Tony G Stockham1018France2024-03-22
Faith V Kolmetz1019Japan2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues A MorascaJapanIvan Magalhaes NEGOTIATION
Ricardo R NestleFranceOnyama Limba UNQUALIFIED
Octavia I SchemmerGermanyXuxue Feng QUALIFIED
Clifford F GauchoSpainAsiya Javayant PROPOSAL
Darci V MacleadItalyBernardo Dominic PROPOSAL
Silvio A WieserFranceAmy Elsner NEGOTIATION
Ivar H VocelkaArgentinaAsiya Javayant UNQUALIFIED
Jones S PoquetteCanadaIoni Bowcher QUALIFIED
Mayumi J SlusarskiFranceOnyama Limba NEGOTIATION
Leon L PerinFranceOnyama Limba QUALIFIED
Francesco R KolmetzBrazilAmy Elsner PROPOSAL
Aika F MaletUnited KingdomStephen Shaw UNQUALIFIED
Maria P FollerJapanStephen Shaw RENEWAL
Leon W GauchoGermanyElwin Sharvill NEGOTIATION
Costa M VenereGermanyAnna Fali UNQUALIFIED
Aditya L OstroskySpainBernardo Dominic QUALIFIED
Aika L RimUnited KingdomIoni Bowcher UNQUALIFIED
Tony Z BologniaRussiaElwin Sharvill NEW
Johnson M TollnerFranceAsiya Javayant QUALIFIED
Alejandro U GillianUnited KingdomAsiya Javayant QUALIFIED
Leon O CampainBrazilElwin Sharvill NEGOTIATION
David B ButtArgentinaElwin Sharvill QUALIFIED
Misaki X AmigonIndiaIvan Magalhaes RENEWAL
Mayumi T PaprockiUnited KingdomStephen Shaw NEGOTIATION
Sinclair H FollerJapanBernardo Dominic PROPOSAL
Ashley F KolmetzJapanXuxue Feng NEW
Claire B VenereItalyAmy Elsner NEGOTIATION
Darci D InouyeArgentinaAsiya Javayant PROPOSAL
Mayumi V GillianUnited KingdomXuxue Feng PROPOSAL
Sinclair U InouyeIndiaIoni Bowcher PROPOSAL
Izzy X BriddickUnited KingdomStephen Shaw NEGOTIATION
Murillo M OstroskyGermanyIoni Bowcher NEW
Sinclair U ChuiFranceAnna Fali NEW
Munro Q FerenczGermanyAnna Fali PROPOSAL
Chavez M WaycottCanadaElwin Sharvill NEGOTIATION
Ashley U WhobreyGermanyXuxue Feng NEW
Greenwood B AmigonItalyIvan Magalhaes QUALIFIED
Ricardo W WieserGermanyXuxue Feng RENEWAL
Aika Z NickaArgentinaAsiya Javayant PROPOSAL
Morrow R CampainRussiaAsiya Javayant 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>