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
Nicolas E SaylorsAustraliaElwin Sharvill NEW
Alejandro S GarufiRussiaIoni Bowcher PROPOSAL
Ricardo U WieserBrazilElwin Sharvill NEW
Alejandro S PerinCanadaAnna Fali UNQUALIFIED
Ashley Z DoeItalyAmy Elsner QUALIFIED
Salvatore G FerenczIndiaOnyama Limba NEGOTIATION
Antonio W WieserFranceBernardo Dominic UNQUALIFIED
Claire G GlickIndiaOnyama Limba PROPOSAL
Morrow W GlickSpainOnyama Limba NEW
Francesco I PoquetteCanadaElwin Sharvill QUALIFIED
Rodrigues T ChuiSpainElwin Sharvill RENEWAL
Leja C SchemmerFranceAsiya Javayant PROPOSAL
Greenwood G VocelkaBrazilStephen Shaw UNQUALIFIED
Alejandro X RutaCanadaIoni Bowcher QUALIFIED
Rodrigues H BowleyUnited KingdomElwin Sharvill NEW
Julie N StensethRussiaStephen Shaw NEGOTIATION
Jones O SlusarskiIndiaAmy Elsner NEGOTIATION
Arvin C GauchoJapanAmy Elsner QUALIFIED
Misaki I GauchoRussiaBernardo Dominic RENEWAL
Izzy B DarakjySpainXuxue Feng RENEWAL
James B FollerAustraliaXuxue Feng NEGOTIATION
Alejandro Z FollerSpainXuxue Feng NEW
Emily K DilliardFranceAnna Fali NEW
Leon U CaldareraIndiaAmy Elsner RENEWAL
Smith S FlosiIndiaIvan Magalhaes QUALIFIED
Munro J StensethJapanXuxue Feng QUALIFIED
Octavia D SlusarskiAustraliaStephen Shaw RENEWAL
Rodrigues Q PaprockiFranceAmy Elsner UNQUALIFIED
James U ShinkoGermanyStephen Shaw UNQUALIFIED
Wickens E PoquetteRussiaStephen Shaw PROPOSAL
Faith D FerenczUnited KingdomAmy Elsner UNQUALIFIED
Aika L PaprockiBrazilAmy Elsner NEGOTIATION
James N BriddickCanadaStephen Shaw NEGOTIATION
Salvatore S CaudyUnited KingdomAmy Elsner UNQUALIFIED
Tony E GillianItalyIvan Magalhaes NEW
Sinclair S FlosiGermanyElwin Sharvill PROPOSAL
Kaitlin G OldroydSpainIoni Bowcher PROPOSAL
Stacey J MorascaJapanStephen Shaw NEGOTIATION
Aruna F DarakjyCanadaAsiya Javayant NEGOTIATION
Octavia X SchemmerRussiaAsiya Javayant RENEWAL
Julie D DarakjyCanadaAmy Elsner UNQUALIFIED
Aditya W GillianBrazilAnna Fali NEW
Greenwood T StockhamBrazilAmy Elsner PROPOSAL
Greenwood L FigeroaSpainOnyama Limba NEW
Tony Y FlosiRussiaAmy Elsner UNQUALIFIED
Francesco Q FlosiIndiaXuxue Feng UNQUALIFIED
Stacey G FerenczSpainStephen Shaw PROPOSAL
Mayumi Z GauchoArgentinaIoni Bowcher UNQUALIFIED
Clifford C FollerSpainXuxue Feng RENEWAL
Claire X IturbideGermanyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo P PerinItalyXuxue Feng RENEWAL
Francesco O SlusarskiRussiaStephen Shaw PROPOSAL
Chavez H PerinAustraliaAmy Elsner QUALIFIED
Maisha I GillianItalyAnna Fali UNQUALIFIED
Mayumi S ButtGermanyElwin Sharvill NEW
Morrow K SergiCanadaElwin Sharvill QUALIFIED
Alejandro V SaylorsItalyBernardo Dominic RENEWAL
Claire A NickaItalyOnyama Limba PROPOSAL
Jones H CaudyUnited KingdomAnna Fali NEW
Smith V SaylorsSpainAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo M AmigonRussia2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED72Ivan Magalhaes
1001Sinclair M AmigonJapan2024-04-18Truhlar And Truhlar Attys NEGOTIATION31Amy Elsner
1002Alejandro H FerenczGermany2024-04-25Chapman, Ross E Esq NEW9Ioni Bowcher
1003Costa H BriddickAustralia2024-03-31Rousseaux, Michael Esq QUALIFIED17Elwin Sharvill
1004Aruna C IturbideUnited Kingdom2024-04-26Feltz Printing Service NEW82Anna Fali
1005James S NickaBrazil2024-04-11Commercial Press RENEWAL58Anna Fali
1006Salvatore S KolmetzArgentina2024-04-24King, Christopher A Esq NEGOTIATION19Amy Elsner
1007Murillo P CaudyIndia2024-04-12Buckley Miller Wright QUALIFIED28Elwin Sharvill
1008Alejandro Z MorascaArgentina2024-04-08Truhlar And Truhlar Attys UNQUALIFIED12Anna Fali
1009Deepesh B KuskoCanada2024-04-06Rousseaux, Michael Esq UNQUALIFIED63Asiya Javayant
1010Sinclair I SlusarskiAustralia2024-04-18King, Christopher A Esq NEGOTIATION46Anna Fali
1011Faith D SergiUnited Kingdom2024-04-19Rousseaux, Michael Esq PROPOSAL55Asiya Javayant
1012Munro M MaletSpain2024-04-09Morlong Associates QUALIFIED46Bernardo Dominic
1013Costa V MaletSpain2024-04-09Printing Dimensions UNQUALIFIED42Amy Elsner
1014Silvio C PaprockiRussia2024-04-08Printing Dimensions PROPOSAL85Ioni Bowcher
1015Munro P AmigonUnited Kingdom2024-04-14Morlong Associates UNQUALIFIED14Bernardo Dominic
1016Claire N MacleadBrazil2024-03-28Dorl, James J Esq RENEWAL60Bernardo Dominic
1017David G KolmetzUnited Kingdom2024-04-05Buckley Miller Wright NEGOTIATION45Onyama Limba
1018Aika M StockhamBrazil2024-04-05Buckley Miller Wright NEW74Xuxue Feng
1019Julie J FlosiSpain2024-04-03Rousseaux, Michael Esq UNQUALIFIED66Xuxue Feng
1020Maria K TollnerBrazil2024-04-08Dorl, James J Esq QUALIFIED26Amy Elsner
1021Juan P RutaBrazil2024-04-03Benton, John B Jr NEW45Anna Fali
1022Jeanfrancois H OstroskyArgentina2024-04-26Feiner Bros NEGOTIATION60Anna Fali
1023Francesco G RoysterFrance2024-04-19Feltz Printing Service RENEWAL4Ivan Magalhaes
1024Jeanfrancois F DoeArgentina2024-03-29Chemel, James L Cpa NEW64Ivan Magalhaes
1025Juan G GauchoSpain2024-03-31Benton, John B Jr NEW60Onyama Limba
1026Jennifer M MaletGermany2024-04-12Morlong Associates RENEWAL14Ioni Bowcher
1027Ivar I DarakjyRussia2024-04-05Feltz Printing Service NEGOTIATION60Ioni Bowcher
1028Sinclair G ShinkoUnited Kingdom2024-04-16Printing Dimensions UNQUALIFIED11Elwin Sharvill
1029Jennifer T DoeFrance2024-04-18Chemel, James L Cpa QUALIFIED75Onyama Limba
1030Juan Q ButtAustralia2024-04-23Buckley Miller Wright UNQUALIFIED51Stephen Shaw
1031Aika L WhobreyIndia2024-04-15Buckley Miller Wright NEGOTIATION81Elwin Sharvill
1032Darci X MacleadBrazil2024-04-24Rangoni Of Florence QUALIFIED19Xuxue Feng
1033Chavez W AlbaresAustralia2024-03-29Chapman, Ross E Esq RENEWAL0Elwin Sharvill
1034Aruna Z IturbideIndia2024-04-15Feltz Printing Service UNQUALIFIED84Xuxue Feng
1035Ashley I StensethAustralia2024-04-06Benton, John B Jr UNQUALIFIED23Asiya Javayant
1036Kadeem D BologniaSpain2024-04-01Rangoni Of Florence NEGOTIATION51Onyama Limba
1037Emily J GillianRussia2024-04-12King, Christopher A Esq QUALIFIED19Anna Fali
1038Salvatore C FigeroaCanada2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED53Onyama Limba
1039Aruna W WaycottCanada2024-04-05Feltz Printing Service UNQUALIFIED70Asiya Javayant
1040Silvio O GauchoUnited Kingdom2024-04-25Chapman, Ross E Esq PROPOSAL89Elwin Sharvill
1041Mayumi M SergiIndia2024-04-16Feltz Printing Service RENEWAL22Elwin Sharvill
1042David Z ShinkoAustralia2024-04-24Chapman, Ross E Esq QUALIFIED86Ivan Magalhaes
1043Stacey M AlbaresSpain2024-04-12Rousseaux, Michael Esq NEGOTIATION24Anna Fali
1044Tony U MaletArgentina2024-03-29Dorl, James J Esq NEW9Stephen Shaw
1045Emily B ChuiUnited Kingdom2024-04-17Feiner Bros NEW58Elwin Sharvill
1046Alejandro Y NestleIndia2024-04-20Morlong Associates UNQUALIFIED22Onyama Limba
1047Jeanfrancois I FlosiBrazil2024-04-12King, Christopher A Esq UNQUALIFIED78Elwin Sharvill
1048Maisha M BologniaSpain2024-04-05Truhlar And Truhlar Attys QUALIFIED6Xuxue Feng
1049Maria S ChuiIndia2024-04-26Printing Dimensions UNQUALIFIED62Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith P GarufiItalyIvan Magalhaes RENEWAL
Isabel I FlosiJapanOnyama Limba PROPOSAL
Jennifer N SaylorsFranceAmy Elsner UNQUALIFIED
Mujtaba Q MorascaGermanyOnyama Limba QUALIFIED
Murillo L MaletRussiaBernardo Dominic PROPOSAL
Greenwood T AlbaresCanadaIoni Bowcher PROPOSAL
Izzy O WhobreyIndiaElwin Sharvill PROPOSAL
Rodrigues I SchemmerBrazilIoni Bowcher QUALIFIED
Morrow G CaldareraAustraliaOnyama Limba RENEWAL
Wickens I StockhamCanadaAnna Fali NEGOTIATION
Mayumi S RutaCanadaOnyama Limba UNQUALIFIED
Costa N SlusarskiJapanAsiya Javayant NEGOTIATION
Isabel R IturbideFranceStephen Shaw NEW
Jones X SchemmerCanadaAsiya Javayant QUALIFIED
Mayumi T FollerRussiaAnna Fali NEGOTIATION
Munro C WhobreyItalyOnyama Limba QUALIFIED
Silvio O AlbaresSpainAnna Fali NEGOTIATION
Maria Q TollnerAustraliaElwin Sharvill RENEWAL
Tony L BologniaUnited KingdomElwin Sharvill NEGOTIATION
Leja A PaprockiCanadaAmy Elsner NEGOTIATION
Smith D SergiAustraliaIvan Magalhaes NEW
Claire V OldroydBrazilAmy Elsner NEW
Francesco W ChuiCanadaIvan Magalhaes NEGOTIATION
Wickens U DarakjyBrazilBernardo Dominic PROPOSAL
Salvatore L PerinJapanXuxue Feng NEW
Nicolas I StensethArgentinaIvan Magalhaes RENEWAL
Costa H TollnerRussiaAmy Elsner PROPOSAL
Deepesh E FollerRussiaElwin Sharvill QUALIFIED
Francesco A WaycottUnited KingdomStephen Shaw QUALIFIED
David P TollnerIndiaOnyama Limba NEGOTIATION
Jones G ButtJapanAsiya Javayant UNQUALIFIED
Isabel A ChuiFranceIoni Bowcher NEW
James X IturbideAustraliaOnyama Limba NEW
Clifford T WaycottCanadaBernardo Dominic NEW
Claire H CaudyCanadaIvan Magalhaes QUALIFIED
Julie U NickaCanadaIoni Bowcher UNQUALIFIED
Leon C FlosiFranceXuxue Feng UNQUALIFIED
Nicolas P BriddickAustraliaBernardo Dominic PROPOSAL
Isabel B BowleyGermanyBernardo Dominic RENEWAL
Stacey G BowleyFranceAsiya Javayant PROPOSAL
Ivar I DarakjyRussiaStephen Shaw NEW
Francesco A MaletItalyIoni Bowcher PROPOSAL
Emily T BriddickBrazilAmy Elsner PROPOSAL
Claire H DilliardUnited KingdomElwin Sharvill NEGOTIATION
Munro K TollnerArgentinaIvan Magalhaes NEW
Aika E AlbaresCanadaOnyama Limba PROPOSAL
Sinclair I GlickBrazilAsiya Javayant RENEWAL
Jefferson S NestleCanadaAmy Elsner RENEWAL
Maria T BriddickSpainBernardo Dominic RENEWAL
Nicolas Z GillianUnited KingdomAsiya Javayant NEGOTIATION
Frozen Columns
Name
Aika S Vocelka
Darci E Doe
Tony G Waycott
Julie O Morasca
Emily D Foller
Smith T Stenseth
Kadeem G Doe
Leon V Wieser
Smith M Dilliard
Maria G Nestle
Silvio O Venere
Ivar G Saylors
Izzy K Tollner
Misaki Y Kolmetz
Maria I Doe
Munro C Dilliard
Smith Y Shinko
Francesco B Garufi
Wickens M Oldroyd
Murillo H Royster
Tony Q Slusarski
Misaki L Bolognia
Claire S Venere
Ricardo Z Stockham
Jennifer G Foller
Claire Y Doe
Antonio Q Malet
Ivar N Shinko
Adams T Schemmer
Ivar Q Butt
Tony C Bowley
Maria E Garufi
Jefferson V Kolmetz
Clifford L Whobrey
Antonio T Gillian
Deepesh B Kusko
Clifford V Gillian
James E Malet
Isabel Y Briddick
Morrow E Darakjy
Greenwood J Waycott
Maria M Shinko
Mujtaba L Doe
Mayumi N Iturbide
Leja H Bowley
Aditya E Waycott
Alejandro P Bolognia
Deepesh X Ostrosky
Mujtaba Z Nicka
Nicolas N Caldarera
IdCountryDate
1000France2024-04-09
1001Australia2024-04-15
1002India2024-04-15
1003Germany2024-04-06
1004Brazil2024-04-26
1005Japan2024-04-16
1006India2024-04-05
1007Germany2024-04-16
1008Australia2024-04-23
1009Spain2024-04-04
1010Russia2024-04-13
1011Russia2024-04-02
1012Australia2024-04-03
1013France2024-04-24
1014United Kingdom2024-04-25
1015Germany2024-04-05
1016Russia2024-04-14
1017Russia2024-04-15
1018Russia2024-04-04
1019Russia2024-04-17
1020Japan2024-04-01
1021Argentina2024-03-28
1022Japan2024-04-04
1023Russia2024-03-28
1024Japan2024-04-20
1025Brazil2024-04-26
1026Australia2024-04-25
1027Australia2024-04-26
1028Russia2024-03-28
1029Australia2024-04-18
1030Canada2024-04-23
1031Australia2024-04-05
1032Australia2024-04-04
1033Italy2024-04-04
1034Germany2024-03-28
1035Brazil2024-04-04
1036Japan2024-04-06
1037Brazil2024-04-14
1038United Kingdom2024-04-08
1039Russia2024-04-21
1040Spain2024-04-25
1041Argentina2024-04-25
1042Canada2024-04-16
1043India2024-04-23
1044Argentina2024-04-24
1045Argentina2024-04-20
1046Brazil2024-04-13
1047India2024-04-23
1048France2024-03-30
1049Brazil2024-04-20

On-Demand Data

NameIdCountryDate
Arvin V Ferencz1000Argentina2024-04-23
Greenwood B Malet1001Argentina2024-04-02
Izzy W Whobrey1002Germany2024-04-25
Maria P Chui1003Australia2024-03-30
Ivar S Doe1004United Kingdom2024-04-13
Leja Z Poquette1005Australia2024-04-21
Aika J Paprocki1006Spain2024-04-22
Costa U Gaucho1007India2024-04-19
Aruna K Ferencz1008Brazil2024-04-21
Juan H Flosi1009United Kingdom2024-04-16
Aditya T Vocelka1010Brazil2024-04-18
Arvin X Sergi1011United Kingdom2024-04-20
Maria F Tollner1012Japan2024-04-01
Leja E Poquette1013India2024-04-24
Aditya N Chui1014Spain2024-04-23
Kaitlin F Butt1015Japan2024-03-29
Misaki D Shinko1016Russia2024-04-26
Mayumi A Iturbide1017Brazil2024-04-20
David J Maclead1018Italy2024-04-18
Maria T Shinko1019Spain2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan M BologniaRussiaIvan Magalhaes NEGOTIATION
David P DarakjySpainAmy Elsner UNQUALIFIED
Julie U DoeJapanIvan Magalhaes RENEWAL
Mujtaba H GarufiBrazilBernardo Dominic PROPOSAL
Juan Z IturbideSpainBernardo Dominic NEW
Jennifer E DoeArgentinaStephen Shaw UNQUALIFIED
Ricardo R NestleRussiaAnna Fali NEGOTIATION
Murillo V NestleSpainOnyama Limba NEW
Alejandro C OstroskyCanadaBernardo Dominic PROPOSAL
Emily I StensethIndiaAmy Elsner UNQUALIFIED
Chavez C CampainSpainXuxue Feng NEGOTIATION
Rodrigues B GlickRussiaXuxue Feng RENEWAL
Chavez F WieserBrazilStephen Shaw UNQUALIFIED
Costa Z OstroskyArgentinaBernardo Dominic PROPOSAL
Aruna H DilliardCanadaBernardo Dominic NEGOTIATION
Izzy A BriddickJapanIoni Bowcher UNQUALIFIED
Isabel E KolmetzIndiaIoni Bowcher NEGOTIATION
Misaki W BriddickUnited KingdomStephen Shaw RENEWAL
Jefferson E MacleadAustraliaBernardo Dominic NEW
Aika K VocelkaArgentinaElwin Sharvill PROPOSAL
Mayumi D TollnerFranceXuxue Feng PROPOSAL
Leon Y VenereSpainIvan Magalhaes NEW
Silvio Z IturbideArgentinaAsiya Javayant NEGOTIATION
Emily T NestleArgentinaIoni Bowcher NEW
Kadeem H NestleArgentinaElwin Sharvill UNQUALIFIED
Arvin V VocelkaCanadaIoni Bowcher PROPOSAL
Maisha S GlickGermanyIoni Bowcher UNQUALIFIED
Aika U CaldareraSpainOnyama Limba PROPOSAL
Darci E InouyeJapanBernardo Dominic QUALIFIED
Emily B SergiCanadaAnna Fali QUALIFIED
Kadeem D SaylorsIndiaStephen Shaw PROPOSAL
Juan K InouyeItalyAsiya Javayant RENEWAL
Maisha A VenereIndiaIvan Magalhaes RENEWAL
Aruna F ButtFranceIvan Magalhaes QUALIFIED
Ricardo G GlickRussiaIoni Bowcher RENEWAL
Francesco J SergiAustraliaAsiya Javayant NEGOTIATION
Murillo F GarufiIndiaAnna Fali NEGOTIATION
Smith Y TollnerFranceOnyama Limba PROPOSAL
Clifford I BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Stacey C AlbaresGermanyAsiya Javayant UNQUALIFIED

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