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 D CampainSpainAmy Elsner QUALIFIED
Antonio N IturbideBrazilAmy Elsner NEW
Claire L FollerAustraliaAmy Elsner RENEWAL
Alejandro R AlbaresCanadaAnna Fali RENEWAL
James X FollerArgentinaAsiya Javayant PROPOSAL
Wickens L RutaSpainIvan Magalhaes QUALIFIED
Isabel U VenereBrazilElwin Sharvill PROPOSAL
Aruna B AmigonSpainIoni Bowcher PROPOSAL
Clifford T BriddickFranceAnna Fali UNQUALIFIED
Adams W MaletArgentinaAmy Elsner UNQUALIFIED
Maisha Z NickaGermanyIoni Bowcher NEGOTIATION
Johnson Y AmigonIndiaIoni Bowcher NEW
Jeanfrancois S AmigonJapanXuxue Feng NEGOTIATION
Stacey D PoquetteFranceXuxue Feng NEW
Kaitlin K IturbideUnited KingdomOnyama Limba NEGOTIATION
James C MaletGermanyXuxue Feng RENEWAL
Jones X FigeroaCanadaAsiya Javayant QUALIFIED
Smith H FlosiArgentinaElwin Sharvill QUALIFIED
Mayumi D StockhamRussiaIvan Magalhaes UNQUALIFIED
Cody N DoeUnited KingdomXuxue Feng RENEWAL
Isabel G TollnerBrazilStephen Shaw QUALIFIED
Juan R PoquetteUnited KingdomXuxue Feng NEW
Alejandro S FollerJapanAsiya Javayant QUALIFIED
Misaki P OstroskyArgentinaIvan Magalhaes NEW
Francesco F MorascaGermanyStephen Shaw RENEWAL
Darci Q StensethAustraliaOnyama Limba NEGOTIATION
Smith R MaletArgentinaAnna Fali QUALIFIED
Antonio L PerinFranceBernardo Dominic NEW
Johnson E RimIndiaElwin Sharvill PROPOSAL
Adams Y GarufiUnited KingdomAnna Fali QUALIFIED
Leon B PoquetteIndiaStephen Shaw RENEWAL
Ricardo U DilliardArgentinaBernardo Dominic NEGOTIATION
Salvatore A GarufiIndiaOnyama Limba RENEWAL
Jefferson M BowleySpainAsiya Javayant UNQUALIFIED
Sinclair I GauchoBrazilAsiya Javayant RENEWAL
Antonio C ChuiJapanAnna Fali PROPOSAL
Murillo P GauchoRussiaAsiya Javayant NEW
Murillo D GillianSpainElwin Sharvill QUALIFIED
Juan U OstroskyAustraliaAsiya Javayant UNQUALIFIED
Darci D TollnerGermanyElwin Sharvill UNQUALIFIED
Kaitlin W FigeroaJapanBernardo Dominic NEW
Misaki Z SchemmerItalyStephen Shaw QUALIFIED
Aika J AlbaresGermanyAnna Fali PROPOSAL
Salvatore E FlosiArgentinaStephen Shaw QUALIFIED
Claire X RutaRussiaIvan Magalhaes RENEWAL
Leja B WieserSpainAmy Elsner NEGOTIATION
Izzy Q CaudyBrazilOnyama Limba PROPOSAL
Kadeem Q IturbideFranceStephen Shaw RENEWAL
Isabel M MaletJapanBernardo Dominic PROPOSAL
Jennifer Z InouyeIndiaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore Y SergiItalyAnna Fali PROPOSAL
Maria F StockhamAustraliaAsiya Javayant QUALIFIED
Ivar S DoeBrazilElwin Sharvill NEW
Johnson D RutaJapanElwin Sharvill PROPOSAL
Nicolas S OldroydSpainStephen Shaw RENEWAL
Adams D DoeBrazilAmy Elsner RENEWAL
Stacey Z ButtUnited KingdomStephen Shaw QUALIFIED
Deepesh J KuskoFranceBernardo Dominic UNQUALIFIED
Emily R StockhamFranceXuxue Feng QUALIFIED
Jeanfrancois Z DarakjyAustraliaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore E BologniaFrance2024-04-24Rousseaux, Michael Esq NEGOTIATION12Elwin Sharvill
1001Alejandro K OldroydCanada2024-04-26Chemel, James L Cpa PROPOSAL94Stephen Shaw
1002Munro L GillianUnited Kingdom2024-04-21Morlong Associates RENEWAL72Ioni Bowcher
1003Leon V RoysterGermany2024-04-18Truhlar And Truhlar Attys RENEWAL42Amy Elsner
1004Adams P OldroydItaly2024-04-17Buckley Miller Wright PROPOSAL77Onyama Limba
1005Adams D DarakjySpain2024-04-14Chemel, James L Cpa NEGOTIATION78Anna Fali
1006Jefferson P PoquetteIndia2024-04-18Buckley Miller Wright PROPOSAL4Amy Elsner
1007Nicolas W BowleyItaly2024-04-07Chanay, Jeffrey A Esq QUALIFIED25Ivan Magalhaes
1008Chavez J FerenczBrazil2024-04-20Dorl, James J Esq NEW44Elwin Sharvill
1009Emily C DilliardIndia2024-04-16Rangoni Of Florence QUALIFIED76Elwin Sharvill
1010Emily G WieserJapan2024-04-17Buckley Miller Wright QUALIFIED54Bernardo Dominic
1011Munro Q PoquetteJapan2024-04-17Buckley Miller Wright UNQUALIFIED86Amy Elsner
1012Aruna V PaprockiItaly2024-04-22Rousseaux, Michael Esq NEGOTIATION42Onyama Limba
1013Wickens G AmigonGermany2024-04-05Rangoni Of Florence PROPOSAL75Asiya Javayant
1014Ricardo O BriddickUnited Kingdom2024-04-13King, Christopher A Esq NEGOTIATION90Xuxue Feng
1015Johnson O GauchoBrazil2024-04-20Chanay, Jeffrey A Esq RENEWAL13Xuxue Feng
1016Ricardo M FerenczIndia2024-04-07Rousseaux, Michael Esq NEW62Onyama Limba
1017Francesco W InouyeCanada2024-04-06Chanay, Jeffrey A Esq NEW39Bernardo Dominic
1018Aika R AmigonItaly2024-04-11Morlong Associates RENEWAL57Onyama Limba
1019Alejandro F NestleAustralia2024-04-25Morlong Associates PROPOSAL14Anna Fali
1020Wickens G MacleadArgentina2024-04-03Buckley Miller Wright NEW54Onyama Limba
1021Maria Z FigeroaAustralia2024-04-22Chapman, Ross E Esq QUALIFIED42Elwin Sharvill
1022Claire H StockhamFrance2024-04-03Truhlar And Truhlar Attys PROPOSAL65Asiya Javayant
1023Salvatore P CaldareraRussia2024-04-04Dorl, James J Esq PROPOSAL38Elwin Sharvill
1024Ricardo E RutaFrance2024-04-24Commercial Press RENEWAL59Amy Elsner
1025Maria P OldroydItaly2024-04-11Morlong Associates RENEWAL84Bernardo Dominic
1026Claire N MaletCanada2024-04-22Buckley Miller Wright NEGOTIATION98Amy Elsner
1027James L GlickSpain2024-04-24King, Christopher A Esq PROPOSAL52Onyama Limba
1028Maisha Y OldroydIndia2024-04-23Rangoni Of Florence RENEWAL63Elwin Sharvill
1029Salvatore C DoeRussia2024-04-23King, Christopher A Esq UNQUALIFIED80Elwin Sharvill
1030Chavez W PerinUnited Kingdom2024-04-26Chapman, Ross E Esq NEW13Onyama Limba
1031Leja V NickaBrazil2024-04-13Buckley Miller Wright RENEWAL97Stephen Shaw
1032Izzy G SergiSpain2024-04-12Printing Dimensions QUALIFIED81Xuxue Feng
1033Sinclair G ButtJapan2024-04-11Feiner Bros RENEWAL39Ivan Magalhaes
1034Faith W WaycottBrazil2024-04-11Commercial Press RENEWAL23Anna Fali
1035Rodrigues G RulapaughIndia2024-04-07Printing Dimensions RENEWAL5Amy Elsner
1036Tony G MacleadJapan2024-04-12Chapman, Ross E Esq PROPOSAL73Anna Fali
1037Aika F RulapaughJapan2024-04-02Rangoni Of Florence QUALIFIED53Anna Fali
1038Maisha Y WaycottArgentina2024-04-05Printing Dimensions NEGOTIATION38Stephen Shaw
1039Tony Y GauchoSpain2024-04-18Buckley Miller Wright RENEWAL3Bernardo Dominic
1040Claire W ShinkoFrance2024-04-10Benton, John B Jr NEW90Elwin Sharvill
1041Izzy L GarufiAustralia2024-03-29Chapman, Ross E Esq NEW56Onyama Limba
1042Darci P IturbideAustralia2024-04-12Chemel, James L Cpa QUALIFIED27Elwin Sharvill
1043David I SergiCanada2024-04-03Morlong Associates UNQUALIFIED8Ivan Magalhaes
1044Jennifer C MaletRussia2024-04-26Rangoni Of Florence NEGOTIATION70Asiya Javayant
1045David F BowleyUnited Kingdom2024-04-03Feiner Bros NEW77Onyama Limba
1046Jefferson J NestleFrance2024-04-07Chemel, James L Cpa RENEWAL10Xuxue Feng
1047Alejandro T FlosiSpain2024-04-18Rousseaux, Michael Esq RENEWAL46Elwin Sharvill
1048Juan N DoeSpain2024-04-18Chapman, Ross E Esq PROPOSAL8Elwin Sharvill
1049Kadeem B RoysterGermany2024-04-26Commercial Press NEGOTIATION18Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Misaki R MarrierSpainIoni Bowcher QUALIFIED
Mayumi P RulapaughFranceIoni Bowcher QUALIFIED
Ivar O GlickItalyIoni Bowcher UNQUALIFIED
Francesco U CaldareraArgentinaAnna Fali UNQUALIFIED
Aika C OldroydAustraliaIoni Bowcher UNQUALIFIED
Antonio Q CampainRussiaStephen Shaw PROPOSAL
Wickens H TollnerSpainAmy Elsner QUALIFIED
Clifford V SlusarskiRussiaAmy Elsner PROPOSAL
Jennifer C SergiFranceElwin Sharvill QUALIFIED
Mujtaba O OldroydRussiaBernardo Dominic RENEWAL
Antonio L MorascaUnited KingdomIoni Bowcher NEW
James T MorascaArgentinaIoni Bowcher NEGOTIATION
Julie W CaldareraIndiaAmy Elsner NEW
Ashley T RoysterBrazilOnyama Limba RENEWAL
Aditya I MarrierBrazilAmy Elsner QUALIFIED
Alejandro B RoysterItalyIvan Magalhaes NEW
Smith Y CaudyJapanAmy Elsner NEW
Jeanfrancois S ShinkoItalyOnyama Limba PROPOSAL
Wickens V OldroydSpainAnna Fali UNQUALIFIED
Salvatore U PaprockiItalyIvan Magalhaes QUALIFIED
Aruna C BowleySpainAsiya Javayant UNQUALIFIED
Izzy Z GauchoIndiaAnna Fali NEW
Greenwood Q RoysterFranceStephen Shaw RENEWAL
Kadeem F CaldareraGermanyXuxue Feng NEW
Smith B FerenczIndiaAnna Fali UNQUALIFIED
Jennifer X GarufiUnited KingdomAmy Elsner PROPOSAL
Octavia R NickaFranceAmy Elsner NEGOTIATION
Maisha N FollerGermanyElwin Sharvill NEW
Mujtaba T MaletArgentinaBernardo Dominic UNQUALIFIED
Arvin B OstroskyIndiaAmy Elsner QUALIFIED
Darci A TollnerArgentinaStephen Shaw NEGOTIATION
Smith M KolmetzItalyElwin Sharvill NEW
Mayumi U GauchoUnited KingdomXuxue Feng NEW
Jefferson H RimGermanyIoni Bowcher RENEWAL
Leja Z SaylorsIndiaAnna Fali PROPOSAL
Francesco A NestleCanadaAsiya Javayant UNQUALIFIED
Faith H MaletBrazilIoni Bowcher NEGOTIATION
James R FerenczSpainStephen Shaw QUALIFIED
Aruna X GarufiJapanIvan Magalhaes UNQUALIFIED
Faith X WhobreyFranceIvan Magalhaes UNQUALIFIED
Maria H WieserRussiaElwin Sharvill QUALIFIED
Kadeem S MarrierFranceIvan Magalhaes RENEWAL
Maria Q TollnerArgentinaAmy Elsner RENEWAL
Murillo Y WieserJapanBernardo Dominic UNQUALIFIED
Maria S GauchoRussiaXuxue Feng QUALIFIED
Costa G DarakjyJapanAmy Elsner NEGOTIATION
Deepesh O OstroskyAustraliaIoni Bowcher RENEWAL
Munro G TollnerBrazilXuxue Feng QUALIFIED
Izzy B GillianRussiaXuxue Feng NEGOTIATION
Alejandro F CampainJapanOnyama Limba QUALIFIED
Frozen Columns
Name
Ricardo H Nestle
Jones L Darakjy
Juan O Ruta
Mujtaba N Briddick
Jones Q Bolognia
Juan I Kolmetz
Tony O Iturbide
Silvio D Albares
Tony X Briddick
Claire O Malet
Ashley E Gillian
Darci V Rulapaugh
Maria O Inouye
Jones W Rulapaugh
Stacey V Maclead
Deepesh M Doe
Maria K Kolmetz
Greenwood O Nestle
Alejandro G Doe
Jones K Gaucho
Faith G Paprocki
Alejandro J Kusko
Smith V Royster
Aika U Tollner
Ricardo X Venere
Wickens S Caldarera
Tony V Venere
Emily K Inouye
Izzy O Albares
Stacey T Bolognia
Smith T Saylors
Kaitlin L Butt
Jefferson H Nicka
Faith X Glick
Jennifer N Whobrey
Leon X Kusko
Francesco U Figeroa
Aditya W Stockham
Maisha T Ruta
Claire G Waycott
Chavez Z Marrier
Faith I Garufi
Isabel S Caudy
Chavez H Rulapaugh
Adams N Foller
Deepesh X Morasca
Adams F Oldroyd
Ashley J Darakjy
Mujtaba R Iturbide
Nicolas Z Paprocki
IdCountryDate
1000Russia2024-03-31
1001Canada2024-04-15
1002Italy2024-04-15
1003Germany2024-04-21
1004India2024-03-30
1005France2024-04-24
1006Germany2024-04-07
1007Russia2024-03-30
1008Australia2024-04-07
1009Canada2024-04-16
1010United Kingdom2024-04-25
1011Brazil2024-04-05
1012Japan2024-03-28
1013Italy2024-03-29
1014Germany2024-04-16
1015Spain2024-04-16
1016Canada2024-04-18
1017Brazil2024-04-22
1018Germany2024-04-06
1019Australia2024-04-18
1020Japan2024-04-17
1021Japan2024-04-17
1022India2024-03-29
1023Russia2024-04-09
1024Argentina2024-04-02
1025Italy2024-04-23
1026India2024-04-24
1027France2024-04-17
1028Spain2024-04-25
1029Italy2024-04-11
1030Spain2024-04-21
1031Brazil2024-04-25
1032Japan2024-04-19
1033Canada2024-03-28
1034Australia2024-03-31
1035Canada2024-04-07
1036Japan2024-04-04
1037Germany2024-04-13
1038Italy2024-04-05
1039Australia2024-04-06
1040Brazil2024-03-28
1041United Kingdom2024-04-10
1042Australia2024-04-22
1043Argentina2024-04-07
1044Germany2024-04-04
1045Argentina2024-04-24
1046Russia2024-04-22
1047Brazil2024-04-04
1048United Kingdom2024-03-31
1049France2024-04-01

On-Demand Data

NameIdCountryDate
Adams L Vocelka1000Spain2024-04-24
Alejandro P Bolognia1001Japan2024-04-01
Emily O Shinko1002Australia2024-04-10
Smith Y Flosi1003Australia2024-04-15
Ashley K Ferencz1004India2024-04-16
James Y Stenseth1005Russia2024-04-24
Kadeem D Shinko1006Russia2024-03-29
Sinclair F Albares1007Russia2024-04-26
Silvio X Gaucho1008Canada2024-04-17
Johnson B Slusarski1009Germany2024-03-29
Salvatore O Glick1010Argentina2024-04-07
Octavia B Malet1011Canada2024-04-17
Mujtaba M Shinko1012Argentina2024-04-07
Mujtaba Q Dilliard1013Germany2024-04-06
Jeanfrancois T Maclead1014Germany2024-04-18
Salvatore N Poquette1015Spain2024-04-24
Cody A Chui1016Japan2024-04-24
Tony H Malet1017India2024-03-31
Deepesh D Morasca1018Japan2024-04-15
Alejandro G Paprocki1019Canada2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria M NestleItalyIoni Bowcher PROPOSAL
Leon F MorascaArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois F NestleSpainStephen Shaw UNQUALIFIED
Izzy G AlbaresFranceStephen Shaw UNQUALIFIED
Maria K RimFranceOnyama Limba NEGOTIATION
Chavez W RimSpainOnyama Limba PROPOSAL
Ashley I StensethUnited KingdomIvan Magalhaes RENEWAL
Stacey P MorascaBrazilAmy Elsner UNQUALIFIED
Smith K FlosiArgentinaOnyama Limba NEGOTIATION
Adams G MacleadJapanStephen Shaw PROPOSAL
Silvio C FollerCanadaElwin Sharvill UNQUALIFIED
Deepesh U WieserAustraliaXuxue Feng QUALIFIED
Octavia O ShinkoCanadaBernardo Dominic NEW
Ricardo D CaudyUnited KingdomAsiya Javayant RENEWAL
Greenwood C GauchoJapanBernardo Dominic PROPOSAL
Mujtaba Z FerenczItalyBernardo Dominic QUALIFIED
David J SlusarskiGermanyAnna Fali PROPOSAL
Munro U BowleyIndiaStephen Shaw QUALIFIED
Antonio O MarrierUnited KingdomAnna Fali NEW
Kadeem X GauchoCanadaIoni Bowcher QUALIFIED
Antonio L DilliardBrazilIoni Bowcher RENEWAL
Tony H NestleAustraliaOnyama Limba NEGOTIATION
Morrow J KuskoSpainElwin Sharvill UNQUALIFIED
Misaki Z NestleCanadaAnna Fali UNQUALIFIED
Deepesh X SchemmerSpainIvan Magalhaes UNQUALIFIED
Jennifer M StensethArgentinaAsiya Javayant UNQUALIFIED
Arvin B BologniaJapanOnyama Limba UNQUALIFIED
Julie H FollerCanadaStephen Shaw QUALIFIED
Salvatore M RulapaughGermanyXuxue Feng UNQUALIFIED
Francesco T PaprockiSpainAnna Fali QUALIFIED
Ivar K ShinkoBrazilAsiya Javayant NEW
Juan L BriddickCanadaIvan Magalhaes RENEWAL
Wickens P FollerRussiaIvan Magalhaes NEGOTIATION
Rodrigues S InouyeIndiaAnna Fali NEGOTIATION
Jennifer W SlusarskiSpainElwin Sharvill PROPOSAL
Costa W GarufiRussiaElwin Sharvill NEW
Greenwood B SergiAustraliaBernardo Dominic PROPOSAL
Jeanfrancois E SchemmerArgentinaAmy Elsner NEGOTIATION
Smith F RulapaughCanadaElwin Sharvill NEGOTIATION
Jefferson W BriddickIndiaAmy Elsner 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>