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
Rodrigues S AmigonSpainIvan Magalhaes UNQUALIFIED
Adams E AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Nicolas T RimArgentinaOnyama Limba NEGOTIATION
Silvio W KuskoCanadaElwin Sharvill NEW
Clifford B DarakjyGermanyAsiya Javayant NEW
Cody L DoeAustraliaBernardo Dominic QUALIFIED
Francesco U TollnerJapanAnna Fali NEGOTIATION
Izzy S WaycottSpainAnna Fali UNQUALIFIED
Cody J PaprockiGermanyStephen Shaw NEGOTIATION
Leja J VocelkaGermanyAmy Elsner NEGOTIATION
Octavia J SlusarskiRussiaStephen Shaw QUALIFIED
Deepesh S SlusarskiAustraliaAnna Fali PROPOSAL
Murillo I GarufiAustraliaIvan Magalhaes UNQUALIFIED
Leon J SaylorsIndiaXuxue Feng UNQUALIFIED
Maisha V MacleadFranceOnyama Limba QUALIFIED
Murillo P RulapaughGermanyAmy Elsner QUALIFIED
Ivar R WieserCanadaElwin Sharvill NEW
Jennifer B GarufiUnited KingdomAnna Fali NEGOTIATION
Tony N PoquetteRussiaIvan Magalhaes UNQUALIFIED
Ivar V MaletUnited KingdomAnna Fali RENEWAL
Kaitlin W PoquetteAustraliaAmy Elsner UNQUALIFIED
Tony C RutaIndiaElwin Sharvill QUALIFIED
Maria Z ChuiCanadaBernardo Dominic NEW
Mujtaba H AmigonGermanyIvan Magalhaes QUALIFIED
Juan O ChuiGermanyXuxue Feng PROPOSAL
Francesco F RimFranceIoni Bowcher NEW
Chavez O WieserRussiaAsiya Javayant QUALIFIED
Arvin G GauchoItalyXuxue Feng QUALIFIED
Leon L DilliardGermanyBernardo Dominic QUALIFIED
Aika P StensethSpainElwin Sharvill NEW
Antonio F StockhamFranceBernardo Dominic NEGOTIATION
Munro V VenereRussiaAsiya Javayant NEW
Ashley U KolmetzBrazilBernardo Dominic QUALIFIED
Maisha A WhobreyIndiaXuxue Feng NEW
Antonio N AlbaresCanadaOnyama Limba NEGOTIATION
Aruna E FollerBrazilAnna Fali QUALIFIED
David V BriddickIndiaXuxue Feng NEW
Jennifer M BowleyJapanOnyama Limba PROPOSAL
Jeanfrancois L DarakjySpainBernardo Dominic PROPOSAL
Johnson U KuskoIndiaXuxue Feng RENEWAL
Leja B PoquetteSpainOnyama Limba NEW
Kadeem D BowleyBrazilIvan Magalhaes PROPOSAL
Murillo J OldroydRussiaBernardo Dominic UNQUALIFIED
Wickens Y BriddickUnited KingdomStephen Shaw UNQUALIFIED
Jennifer P StockhamBrazilAnna Fali RENEWAL
Juan Y FlosiArgentinaOnyama Limba NEW
Juan Z ShinkoGermanyOnyama Limba RENEWAL
Johnson F KuskoRussiaAmy Elsner RENEWAL
Ivar Z SergiJapanOnyama Limba RENEWAL
Aditya U OstroskyIndiaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois X BriddickIndiaIoni Bowcher QUALIFIED
Darci L DilliardRussiaXuxue Feng NEW
Johnson S FerenczIndiaElwin Sharvill RENEWAL
Johnson O PoquetteSpainBernardo Dominic UNQUALIFIED
Maria E IturbideUnited KingdomBernardo Dominic NEW
Darci L ChuiRussiaAsiya Javayant RENEWAL
Tony A BologniaIndiaIvan Magalhaes NEGOTIATION
Silvio R PerinArgentinaIvan Magalhaes QUALIFIED
Costa I OstroskyRussiaStephen Shaw RENEWAL
Mujtaba F ButtSpainOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo U BriddickItaly2024-04-25Commercial Press NEGOTIATION84Ioni Bowcher
1001Mujtaba N KolmetzItaly2024-04-24King, Christopher A Esq NEGOTIATION76Anna Fali
1002Stacey O DoeGermany2024-04-17Rangoni Of Florence UNQUALIFIED78Elwin Sharvill
1003Jefferson L OstroskyArgentina2024-04-04Chapman, Ross E Esq RENEWAL98Anna Fali
1004Wickens V DoeRussia2024-04-02Feltz Printing Service QUALIFIED92Bernardo Dominic
1005Costa U PaprockiFrance2024-04-05Feiner Bros PROPOSAL82Elwin Sharvill
1006Cody Q ButtGermany2024-04-22Commercial Press PROPOSAL53Anna Fali
1007Maisha M FollerGermany2024-04-22Truhlar And Truhlar Attys QUALIFIED93Anna Fali
1008Silvio H InouyeUnited Kingdom2024-03-29Rousseaux, Michael Esq NEW21Amy Elsner
1009Smith R NestleRussia2024-04-01Rangoni Of Florence QUALIFIED76Bernardo Dominic
1010Maria E CaudyCanada2024-04-25Buckley Miller Wright UNQUALIFIED59Anna Fali
1011Greenwood Y AlbaresItaly2024-04-21Commercial Press PROPOSAL54Asiya Javayant
1012Sinclair I DilliardSpain2024-04-05Feiner Bros QUALIFIED81Bernardo Dominic
1013Sinclair X NickaJapan2024-03-27Chemel, James L Cpa UNQUALIFIED67Amy Elsner
1014Murillo Y VocelkaRussia2024-03-30Chapman, Ross E Esq UNQUALIFIED5Amy Elsner
1015Jones O AmigonAustralia2024-04-08Rangoni Of Florence UNQUALIFIED38Asiya Javayant
1016Jennifer L AlbaresSpain2024-04-21Morlong Associates PROPOSAL7Ivan Magalhaes
1017Deepesh F PoquetteIndia2024-04-06Buckley Miller Wright RENEWAL74Stephen Shaw
1018James Y SlusarskiUnited Kingdom2024-04-25Chapman, Ross E Esq NEW39Anna Fali
1019Misaki T MarrierFrance2024-04-20Feltz Printing Service UNQUALIFIED98Ioni Bowcher
1020Ashley N GarufiAustralia2024-04-14Commercial Press NEGOTIATION30Stephen Shaw
1021Ashley Y DarakjyCanada2024-04-22Chemel, James L Cpa RENEWAL76Elwin Sharvill
1022Greenwood C IturbideItaly2024-04-13Chapman, Ross E Esq NEGOTIATION36Asiya Javayant
1023Costa T DilliardBrazil2024-04-21Truhlar And Truhlar Attys QUALIFIED50Ivan Magalhaes
1024Greenwood L DilliardAustralia2024-04-11Chemel, James L Cpa QUALIFIED94Stephen Shaw
1025Kadeem Y MaletAustralia2024-04-14Benton, John B Jr QUALIFIED65Asiya Javayant
1026Cody I OstroskyArgentina2024-04-16Benton, John B Jr NEW32Amy Elsner
1027Costa I DoeJapan2024-04-11Chemel, James L Cpa UNQUALIFIED75Xuxue Feng
1028Nicolas K GarufiArgentina2024-04-02Chapman, Ross E Esq NEGOTIATION52Ivan Magalhaes
1029Octavia T CaldareraGermany2024-04-19King, Christopher A Esq RENEWAL31Onyama Limba
1030Maria P MacleadAustralia2024-04-17Feiner Bros QUALIFIED0Stephen Shaw
1031Faith S WhobreyJapan2024-04-10Feiner Bros QUALIFIED46Ivan Magalhaes
1032Jennifer Y SaylorsSpain2024-04-23Chanay, Jeffrey A Esq RENEWAL91Ivan Magalhaes
1033Costa M CampainBrazil2024-04-03Benton, John B Jr RENEWAL68Onyama Limba
1034Wickens X NestleUnited Kingdom2024-04-06Rousseaux, Michael Esq UNQUALIFIED78Ioni Bowcher
1035James H CampainFrance2024-04-02Morlong Associates RENEWAL65Stephen Shaw
1036Jones S SaylorsItaly2024-03-28Morlong Associates RENEWAL71Ioni Bowcher
1037David J RutaItaly2024-04-20Benton, John B Jr NEW34Xuxue Feng
1038Julie T FigeroaJapan2024-04-13Dorl, James J Esq PROPOSAL90Stephen Shaw
1039Maisha R FigeroaRussia2024-04-13Benton, John B Jr NEW81Elwin Sharvill
1040Kadeem E WhobreyAustralia2024-04-12Buckley Miller Wright NEGOTIATION75Xuxue Feng
1041Mayumi R RulapaughSpain2024-04-18Feiner Bros PROPOSAL83Ivan Magalhaes
1042Kadeem N OldroydSpain2024-04-01Commercial Press UNQUALIFIED81Stephen Shaw
1043Johnson N MaletBrazil2024-04-01Chapman, Ross E Esq PROPOSAL3Bernardo Dominic
1044Julie I VocelkaSpain2024-04-22Benton, John B Jr PROPOSAL53Bernardo Dominic
1045Aruna D GarufiBrazil2024-04-09Rousseaux, Michael Esq PROPOSAL60Onyama Limba
1046Leja U FlosiGermany2024-04-04Chemel, James L Cpa RENEWAL13Onyama Limba
1047Salvatore R ChuiCanada2024-03-29Feltz Printing Service QUALIFIED74Onyama Limba
1048Jones I WhobreyItaly2024-03-28Printing Dimensions UNQUALIFIED70Onyama Limba
1049Julie J KolmetzRussia2024-04-08Buckley Miller Wright QUALIFIED76Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford H MorascaGermanyOnyama Limba NEGOTIATION
Aditya X AmigonBrazilOnyama Limba PROPOSAL
Ivar D CaldareraRussiaOnyama Limba RENEWAL
Mujtaba I StensethSpainAsiya Javayant QUALIFIED
Mujtaba D CaudyAustraliaStephen Shaw NEW
Francesco A StensethJapanBernardo Dominic UNQUALIFIED
Jeanfrancois N GillianAustraliaStephen Shaw RENEWAL
Maisha X AmigonAustraliaAmy Elsner QUALIFIED
Aruna U TollnerJapanAmy Elsner UNQUALIFIED
Sinclair A SchemmerUnited KingdomOnyama Limba NEW
Sinclair R PoquetteBrazilOnyama Limba NEGOTIATION
Ricardo M WhobreyCanadaXuxue Feng NEGOTIATION
Mujtaba V SchemmerFranceStephen Shaw UNQUALIFIED
Antonio H DoeFranceStephen Shaw NEW
Jones Q TollnerIndiaIoni Bowcher RENEWAL
Sinclair U PoquetteFranceAnna Fali NEGOTIATION
Emily W WhobreyGermanyAnna Fali PROPOSAL
Mujtaba O FollerRussiaIvan Magalhaes QUALIFIED
Aditya G WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Maisha U RoysterGermanyAnna Fali UNQUALIFIED
Leja R CaldareraItalyAmy Elsner NEW
Johnson I NestleFranceOnyama Limba RENEWAL
Mayumi N RimFranceAsiya Javayant PROPOSAL
Cody X ButtItalyBernardo Dominic RENEWAL
Wickens D NestleSpainAmy Elsner PROPOSAL
Ricardo U MaletItalyAsiya Javayant RENEWAL
Aruna H DilliardFranceElwin Sharvill NEW
Darci A DarakjyJapanBernardo Dominic NEGOTIATION
Jefferson M BriddickFranceOnyama Limba RENEWAL
Smith G KuskoIndiaIvan Magalhaes PROPOSAL
Francesco I RulapaughUnited KingdomXuxue Feng RENEWAL
Emily L ButtArgentinaIoni Bowcher NEGOTIATION
Isabel E FigeroaAustraliaIvan Magalhaes PROPOSAL
Juan F IturbideBrazilAmy Elsner NEW
Jeanfrancois H IturbideJapanAnna Fali UNQUALIFIED
Aruna M RutaBrazilIoni Bowcher QUALIFIED
Cody Z WieserCanadaOnyama Limba PROPOSAL
Tony U MaletJapanAnna Fali QUALIFIED
Kaitlin N OldroydJapanIvan Magalhaes NEGOTIATION
Julie D FerenczFranceXuxue Feng PROPOSAL
Emily D ShinkoAustraliaIoni Bowcher NEGOTIATION
Deepesh Q CaldareraArgentinaXuxue Feng RENEWAL
Maria O PerinSpainBernardo Dominic RENEWAL
Jennifer W PaprockiCanadaStephen Shaw NEW
Silvio V DoeCanadaBernardo Dominic NEGOTIATION
Leja K MaletItalyStephen Shaw PROPOSAL
Silvio Z RimItalyXuxue Feng QUALIFIED
Jeanfrancois R ChuiCanadaIoni Bowcher PROPOSAL
David G FigeroaAustraliaStephen Shaw RENEWAL
Aruna U OstroskySpainIoni Bowcher PROPOSAL
Frozen Columns
Name
Silvio C Caudy
Smith Q Morasca
Aditya E Kolmetz
Kaitlin M Briddick
Costa X Ferencz
Jeanfrancois J Inouye
Chavez O Butt
Johnson X Royster
Jones O Ostrosky
Greenwood D Tollner
Munro M Malet
Deepesh W Inouye
Costa U Saylors
Ricardo X Waycott
Cody N Marrier
Johnson F Albares
Smith T Rim
Murillo L Albares
Mayumi F Caldarera
Jennifer T Rim
Izzy Z Nestle
Izzy W Foller
Ricardo H Nicka
Kadeem B Darakjy
David G Ostrosky
Greenwood N Ostrosky
Kaitlin T Tollner
Adams W Kusko
Sinclair R Figeroa
Stacey D Foller
Wickens W Maclead
Morrow I Ostrosky
Francesco C Caldarera
Jennifer V Glick
Greenwood U Tollner
Aika B Kolmetz
Aika F Dilliard
Misaki Y Chui
Greenwood I Gaucho
Alejandro O Ruta
Murillo I Tollner
Morrow Y Stenseth
Chavez M Caldarera
Emily D Sergi
Sinclair H Kolmetz
Isabel H Kolmetz
Silvio X Paprocki
Wickens Z Kusko
Nicolas Q Chui
Faith A Kolmetz
IdCountryDate
1000Russia2024-04-07
1001Australia2024-03-28
1002Spain2024-04-01
1003Argentina2024-04-06
1004United Kingdom2024-04-19
1005Japan2024-04-19
1006Italy2024-04-04
1007Russia2024-04-11
1008Spain2024-04-03
1009France2024-04-14
1010Argentina2024-04-04
1011United Kingdom2024-03-30
1012Brazil2024-03-29
1013United Kingdom2024-04-19
1014Russia2024-03-28
1015France2024-04-04
1016Italy2024-03-30
1017Argentina2024-04-11
1018Italy2024-04-05
1019Brazil2024-03-29
1020Italy2024-04-21
1021India2024-03-29
1022Brazil2024-04-01
1023Germany2024-03-27
1024Italy2024-04-25
1025Brazil2024-04-22
1026Italy2024-04-13
1027India2024-04-07
1028India2024-04-01
1029Canada2024-04-10
1030United Kingdom2024-03-31
1031Argentina2024-04-17
1032Italy2024-04-19
1033Canada2024-03-27
1034Russia2024-04-25
1035Italy2024-04-16
1036Argentina2024-03-31
1037Spain2024-04-14
1038Spain2024-04-06
1039Italy2024-04-21
1040Japan2024-04-19
1041Spain2024-04-25
1042Argentina2024-04-05
1043Argentina2024-04-18
1044Japan2024-04-01
1045Brazil2024-04-07
1046Italy2024-04-04
1047Australia2024-04-03
1048Australia2024-04-09
1049Italy2024-04-23

On-Demand Data

NameIdCountryDate
Maisha H Caldarera1000United Kingdom2024-04-12
Aruna H Sergi1001Italy2024-04-07
Ivar S Butt1002Argentina2024-04-06
James Y Rulapaugh1003Japan2024-04-05
Emily P Maclead1004France2024-04-08
Izzy M Darakjy1005Japan2024-04-06
Jones L Royster1006United Kingdom2024-04-23
Chavez Y Nicka1007Brazil2024-04-19
Munro H Chui1008Argentina2024-04-06
Izzy N Marrier1009India2024-03-27
Maria X Royster1010Germany2024-03-30
Juan J Maclead1011Canada2024-04-20
Mujtaba P Foller1012Japan2024-04-20
Claire I Foller1013Russia2024-04-06
Isabel P Gillian1014Canada2024-04-16
Murillo B Stockham1015Germany2024-03-27
Salvatore E Stenseth1016United Kingdom2024-04-05
Clifford X Oldroyd1017Australia2024-04-16
Clifford E Kolmetz1018United Kingdom2024-04-04
Misaki O Rulapaugh1019Canada2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci G BologniaRussiaIvan Magalhaes NEW
Jefferson J VocelkaBrazilAmy Elsner NEGOTIATION
Maisha B WaycottRussiaElwin Sharvill PROPOSAL
James B ButtUnited KingdomAsiya Javayant NEW
Tony W InouyeRussiaIoni Bowcher PROPOSAL
Francesco Q PerinBrazilOnyama Limba NEGOTIATION
Silvio D PaprockiItalyOnyama Limba QUALIFIED
Sinclair E VocelkaArgentinaAnna Fali QUALIFIED
Jennifer P FerenczAustraliaElwin Sharvill NEGOTIATION
Chavez G FlosiAustraliaAsiya Javayant RENEWAL
Salvatore Z DarakjyItalyAnna Fali NEGOTIATION
Mayumi F MaletAustraliaBernardo Dominic NEW
Murillo Z StockhamSpainBernardo Dominic QUALIFIED
Leon F RimCanadaElwin Sharvill NEW
Ricardo L MaletAustraliaAsiya Javayant UNQUALIFIED
Clifford E SchemmerArgentinaAmy Elsner NEW
Murillo A FigeroaIndiaXuxue Feng QUALIFIED
Munro Y ChuiIndiaAmy Elsner NEGOTIATION
Maria P VenereCanadaAsiya Javayant NEW
Ricardo N RulapaughIndiaIoni Bowcher QUALIFIED
Costa G RoysterIndiaOnyama Limba UNQUALIFIED
Juan E NestleFranceAsiya Javayant QUALIFIED
Misaki N OstroskyCanadaAsiya Javayant NEW
Jones H MaletArgentinaOnyama Limba QUALIFIED
Johnson X DilliardItalyIoni Bowcher NEGOTIATION
Aika L MaletIndiaAmy Elsner RENEWAL
Wickens X FlosiSpainBernardo Dominic NEGOTIATION
Maisha S MacleadArgentinaAsiya Javayant NEW
Ashley G OldroydFranceBernardo Dominic QUALIFIED
Isabel U NickaIndiaBernardo Dominic NEGOTIATION
Nicolas F DilliardFranceOnyama Limba NEW
Alejandro R MaletAustraliaBernardo Dominic NEGOTIATION
Chavez P OstroskyUnited KingdomIoni Bowcher NEW
Jeanfrancois C SchemmerArgentinaBernardo Dominic QUALIFIED
Jeanfrancois K GarufiRussiaIvan Magalhaes QUALIFIED
Claire D PoquetteFranceAsiya Javayant PROPOSAL
Maria O RulapaughSpainXuxue Feng NEGOTIATION
Wickens O FlosiItalyOnyama Limba RENEWAL
Francesco O StensethAustraliaAmy Elsner PROPOSAL
Nicolas C CaudyGermanyXuxue Feng 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>