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
Deepesh C TollnerSpainOnyama Limba PROPOSAL
Aika Q FlosiItalyAnna Fali NEW
Leja O FlosiFranceAsiya Javayant QUALIFIED
Maisha G DoeSpainAmy Elsner NEGOTIATION
Alejandro W ButtUnited KingdomElwin Sharvill NEGOTIATION
Silvio U GillianSpainOnyama Limba NEGOTIATION
Ivar R MacleadUnited KingdomIoni Bowcher NEW
Ashley Q MacleadGermanyAmy Elsner PROPOSAL
Stacey R NestleAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba Q OldroydRussiaXuxue Feng NEGOTIATION
Maisha Q BowleyGermanyBernardo Dominic RENEWAL
Claire N WhobreyAustraliaOnyama Limba RENEWAL
Maria M IturbideItalyAmy Elsner QUALIFIED
Alejandro Q MarrierItalyIoni Bowcher UNQUALIFIED
Cody P OldroydItalyAsiya Javayant QUALIFIED
Claire W SlusarskiCanadaBernardo Dominic UNQUALIFIED
Izzy K RoysterItalyAsiya Javayant UNQUALIFIED
Rodrigues V WieserRussiaStephen Shaw NEW
Ivar W CaldareraSpainAsiya Javayant QUALIFIED
Faith S SaylorsJapanOnyama Limba UNQUALIFIED
Leja Y CaldareraUnited KingdomIoni Bowcher NEW
Mayumi V DoeJapanIoni Bowcher PROPOSAL
Leon M SchemmerUnited KingdomAnna Fali UNQUALIFIED
Ricardo M CampainRussiaOnyama Limba UNQUALIFIED
Misaki M InouyeItalyXuxue Feng PROPOSAL
Julie M DarakjyIndiaXuxue Feng NEGOTIATION
David R DarakjyFranceAmy Elsner QUALIFIED
Arvin D PoquetteBrazilAmy Elsner UNQUALIFIED
Ricardo N ChuiBrazilIoni Bowcher QUALIFIED
Munro J MacleadArgentinaBernardo Dominic UNQUALIFIED
Nicolas V DilliardSpainAsiya Javayant RENEWAL
David G TollnerCanadaAmy Elsner PROPOSAL
Leja F MorascaGermanyStephen Shaw QUALIFIED
Isabel G PaprockiFranceXuxue Feng RENEWAL
Mujtaba A PoquetteRussiaIvan Magalhaes QUALIFIED
Stacey N MaletArgentinaXuxue Feng RENEWAL
Adams Z DoeItalyBernardo Dominic NEGOTIATION
Nicolas I DilliardBrazilAnna Fali NEW
Leon T ChuiGermanyAmy Elsner PROPOSAL
Misaki Q FollerBrazilXuxue Feng RENEWAL
Jeanfrancois I FerenczSpainBernardo Dominic UNQUALIFIED
Leon O InouyeUnited KingdomOnyama Limba NEW
Salvatore E RutaArgentinaOnyama Limba NEW
Rodrigues I MacleadJapanStephen Shaw UNQUALIFIED
Isabel U TollnerRussiaAnna Fali PROPOSAL
Jennifer S ButtJapanBernardo Dominic QUALIFIED
Chavez Q ButtFranceAmy Elsner UNQUALIFIED
Misaki Q VocelkaJapanAsiya Javayant QUALIFIED
Leon F IturbideAustraliaAsiya Javayant RENEWAL
Costa C ShinkoSpainAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey W OldroydArgentinaStephen Shaw RENEWAL
Silvio H ShinkoItalyIoni Bowcher RENEWAL
Salvatore X DarakjyRussiaAmy Elsner RENEWAL
Aditya S OstroskyRussiaOnyama Limba NEW
Izzy V MorascaGermanyAnna Fali QUALIFIED
Aruna R GlickUnited KingdomElwin Sharvill NEW
Ashley J BriddickBrazilIvan Magalhaes QUALIFIED
Jones M WaycottSpainOnyama Limba PROPOSAL
Faith F DoeIndiaElwin Sharvill PROPOSAL
Jennifer M WhobreySpainAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley B GillianItaly2024-04-21Feltz Printing Service NEW42Amy Elsner
1001Kadeem E NestleAustralia2024-04-05Feltz Printing Service UNQUALIFIED74Asiya Javayant
1002Octavia H KuskoFrance2024-04-18Buckley Miller Wright UNQUALIFIED69Elwin Sharvill
1003Deepesh X RulapaughItaly2024-04-03Benton, John B Jr UNQUALIFIED44Bernardo Dominic
1004Maria T BologniaGermany2024-04-20Feiner Bros QUALIFIED66Xuxue Feng
1005Stacey D StensethRussia2024-04-09Chemel, James L Cpa RENEWAL85Ioni Bowcher
1006Silvio N PaprockiIndia2024-04-18Rousseaux, Michael Esq RENEWAL84Asiya Javayant
1007Deepesh J DilliardArgentina2024-04-07Commercial Press NEGOTIATION83Stephen Shaw
1008Maria S RimCanada2024-04-03Printing Dimensions PROPOSAL57Bernardo Dominic
1009Izzy B KolmetzRussia2024-04-03Truhlar And Truhlar Attys UNQUALIFIED39Onyama Limba
1010Ivar J PaprockiFrance2024-04-12Rousseaux, Michael Esq PROPOSAL5Anna Fali
1011Jennifer P AlbaresJapan2024-04-18Feiner Bros NEGOTIATION97Onyama Limba
1012Alejandro H DilliardItaly2024-04-12Rousseaux, Michael Esq UNQUALIFIED14Onyama Limba
1013Misaki M BologniaItaly2024-04-27Chemel, James L Cpa NEGOTIATION16Ioni Bowcher
1014David J SaylorsUnited Kingdom2024-04-18Printing Dimensions RENEWAL67Asiya Javayant
1015Jones P KolmetzUnited Kingdom2024-04-11King, Christopher A Esq RENEWAL85Ivan Magalhaes
1016Smith P RutaCanada2024-04-02Commercial Press NEGOTIATION16Asiya Javayant
1017Jefferson J GillianArgentina2024-04-16Rousseaux, Michael Esq UNQUALIFIED15Stephen Shaw
1018Octavia T RoysterIndia2024-04-23Chapman, Ross E Esq RENEWAL21Ivan Magalhaes
1019Darci Q GlickJapan2024-04-22Chemel, James L Cpa RENEWAL79Xuxue Feng
1020Deepesh H CaldareraArgentina2024-04-01Buckley Miller Wright RENEWAL77Asiya Javayant
1021David Z DilliardRussia2024-04-10Rangoni Of Florence UNQUALIFIED39Amy Elsner
1022Leon L GlickBrazil2024-04-02Chemel, James L Cpa PROPOSAL74Asiya Javayant
1023Faith X VenereFrance2024-04-29Rangoni Of Florence RENEWAL95Asiya Javayant
1024Kaitlin O GlickCanada2024-04-29Feiner Bros NEGOTIATION68Stephen Shaw
1025Jones I WaycottGermany2024-04-17Morlong Associates NEW99Asiya Javayant
1026Jefferson S SaylorsUnited Kingdom2024-04-02Rousseaux, Michael Esq NEGOTIATION15Ivan Magalhaes
1027Cody H MaletUnited Kingdom2024-04-17Chapman, Ross E Esq NEGOTIATION79Onyama Limba
1028Jefferson P MaletAustralia2024-04-08Rousseaux, Michael Esq UNQUALIFIED64Anna Fali
1029Chavez F PaprockiItaly2024-03-31Feiner Bros NEGOTIATION29Amy Elsner
1030Kadeem O DoeRussia2024-04-04Dorl, James J Esq QUALIFIED15Elwin Sharvill
1031Kaitlin G FollerSpain2024-04-07Buckley Miller Wright NEGOTIATION63Stephen Shaw
1032Faith J ButtJapan2024-04-06Chapman, Ross E Esq NEGOTIATION4Asiya Javayant
1033Morrow D FollerIndia2024-04-26Chemel, James L Cpa RENEWAL84Ivan Magalhaes
1034Jones X MaletItaly2024-04-04King, Christopher A Esq UNQUALIFIED81Ioni Bowcher
1035Aditya D FigeroaAustralia2024-04-14Feltz Printing Service QUALIFIED66Anna Fali
1036Aruna R StensethUnited Kingdom2024-04-17Buckley Miller Wright UNQUALIFIED91Ioni Bowcher
1037Ricardo R MaletItaly2024-04-27Dorl, James J Esq RENEWAL69Xuxue Feng
1038Jennifer C NestleAustralia2024-03-31Chemel, James L Cpa QUALIFIED44Onyama Limba
1039Octavia V BriddickUnited Kingdom2024-04-13Rangoni Of Florence NEW22Ioni Bowcher
1040Ivar M WaycottSpain2024-04-16Chapman, Ross E Esq QUALIFIED61Onyama Limba
1041Emily N CaudyJapan2024-04-18Chanay, Jeffrey A Esq NEW75Onyama Limba
1042Misaki Y StockhamFrance2024-03-31Benton, John B Jr NEGOTIATION93Ioni Bowcher
1043Tony D BowleyAustralia2024-04-08Feiner Bros PROPOSAL85Anna Fali
1044Silvio P SaylorsItaly2024-04-25Morlong Associates RENEWAL33Ivan Magalhaes
1045Morrow L RoysterAustralia2024-04-04Morlong Associates NEW59Xuxue Feng
1046James G InouyeBrazil2024-04-11Feiner Bros UNQUALIFIED54Xuxue Feng
1047Sinclair S RulapaughGermany2024-04-12Printing Dimensions PROPOSAL49Anna Fali
1048Murillo E RoysterFrance2024-04-01Dorl, James J Esq PROPOSAL55Ivan Magalhaes
1049Juan F DilliardAustralia2024-04-03Buckley Miller Wright UNQUALIFIED63Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci L VenereIndiaXuxue Feng UNQUALIFIED
Deepesh S SchemmerArgentinaAnna Fali PROPOSAL
Maria G MaletJapanOnyama Limba RENEWAL
Leja M RimSpainAnna Fali NEW
Costa X MorascaGermanyXuxue Feng NEGOTIATION
Antonio P PaprockiCanadaAsiya Javayant UNQUALIFIED
Kaitlin L BologniaCanadaIoni Bowcher PROPOSAL
Mujtaba K SergiSpainOnyama Limba UNQUALIFIED
Jennifer C RutaArgentinaStephen Shaw UNQUALIFIED
Octavia O ShinkoJapanOnyama Limba UNQUALIFIED
Clifford M OstroskyCanadaAsiya Javayant RENEWAL
Greenwood A RutaArgentinaStephen Shaw PROPOSAL
Morrow N GauchoFranceIoni Bowcher NEGOTIATION
Jennifer R ShinkoGermanyIvan Magalhaes QUALIFIED
Adams E WaycottCanadaXuxue Feng RENEWAL
Adams J IturbideSpainElwin Sharvill NEGOTIATION
Greenwood T WhobreyAustraliaBernardo Dominic NEGOTIATION
Aruna R MaletUnited KingdomStephen Shaw UNQUALIFIED
Tony E CaldareraSpainOnyama Limba QUALIFIED
Ricardo K StockhamSpainAnna Fali PROPOSAL
Costa A TollnerJapanAnna Fali NEGOTIATION
Wickens O SlusarskiIndiaAnna Fali QUALIFIED
Wickens T SaylorsCanadaIvan Magalhaes UNQUALIFIED
Kadeem F RimRussiaAnna Fali PROPOSAL
Arvin S MacleadAustraliaAmy Elsner PROPOSAL
Leon Q CaudyFranceOnyama Limba PROPOSAL
Rodrigues V MarrierRussiaAsiya Javayant PROPOSAL
Greenwood B GauchoBrazilStephen Shaw NEW
Francesco N RutaFranceAsiya Javayant QUALIFIED
Leja W SergiArgentinaOnyama Limba PROPOSAL
Octavia P VenereItalyBernardo Dominic UNQUALIFIED
Morrow U GarufiCanadaIoni Bowcher NEW
Salvatore U GauchoFranceXuxue Feng PROPOSAL
Leja O IturbideBrazilAnna Fali PROPOSAL
Murillo S FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Adams X WieserGermanyStephen Shaw NEGOTIATION
Francesco F SergiArgentinaAmy Elsner QUALIFIED
Arvin S RimFranceAnna Fali PROPOSAL
Arvin E MacleadGermanyStephen Shaw UNQUALIFIED
Jefferson W NickaAustraliaIoni Bowcher NEW
Adams F StensethSpainAnna Fali QUALIFIED
Misaki Z CaudyJapanAmy Elsner NEW
Ivar T BriddickCanadaAsiya Javayant NEW
Nicolas F BologniaArgentinaElwin Sharvill QUALIFIED
Faith V FlosiBrazilStephen Shaw PROPOSAL
Johnson D PerinBrazilElwin Sharvill NEGOTIATION
Ashley T DarakjyGermanyIoni Bowcher UNQUALIFIED
Maisha O SaylorsRussiaBernardo Dominic PROPOSAL
James U MacleadCanadaAmy Elsner NEW
Antonio M DarakjyIndiaElwin Sharvill NEW
Frozen Columns
Name
Maria A Schemmer
Arvin S Albares
Izzy S Rim
Stacey C Amigon
Faith V Oldroyd
Johnson L Briddick
Ricardo U Doe
Johnson I Perin
Ricardo B Venere
Kaitlin A Nicka
Stacey U Vocelka
Francesco O Shinko
Jeanfrancois P Chui
Jennifer E Malet
Juan Q Slusarski
Jones U Albares
Emily M Caudy
Greenwood G Glick
Salvatore H Iturbide
Mayumi A Venere
Alejandro P Gillian
Jones O Garufi
Costa A Doe
Deepesh N Stenseth
Morrow Y Kolmetz
David O Royster
Misaki B Slusarski
Mayumi O Oldroyd
Kaitlin U Oldroyd
Maisha M Doe
Alejandro V Caudy
Emily H Ostrosky
Morrow B Perin
Salvatore I Figeroa
Antonio V Butt
Kaitlin N Inouye
Greenwood Z Stockham
Izzy Q Kusko
Tony B Malet
Silvio S Saylors
Jones D Stockham
Leja C Kusko
Francesco J Kusko
Faith U Garufi
Kaitlin S Nestle
Sinclair T Figeroa
Antonio Z Butt
David S Glick
Chavez S Campain
Jones B Chui
IdCountryDate
1000Argentina2024-03-31
1001Australia2024-04-22
1002Brazil2024-04-06
1003Australia2024-04-18
1004France2024-04-08
1005Italy2024-03-31
1006France2024-04-22
1007Japan2024-04-26
1008France2024-04-14
1009Japan2024-04-08
1010Brazil2024-04-20
1011Russia2024-04-20
1012Japan2024-04-09
1013United Kingdom2024-04-27
1014Japan2024-04-08
1015Brazil2024-04-04
1016Canada2024-04-23
1017Germany2024-04-28
1018Japan2024-04-06
1019Spain2024-04-12
1020Argentina2024-04-24
1021Germany2024-04-13
1022France2024-04-12
1023Australia2024-04-26
1024Spain2024-04-11
1025Argentina2024-04-09
1026India2024-04-13
1027Russia2024-04-24
1028Argentina2024-04-03
1029Germany2024-04-26
1030Canada2024-04-19
1031Australia2024-04-16
1032Japan2024-04-23
1033Russia2024-04-17
1034Spain2024-04-17
1035India2024-04-26
1036Italy2024-04-12
1037Australia2024-04-28
1038Brazil2024-04-04
1039Australia2024-04-09
1040France2024-04-22
1041India2024-04-25
1042Germany2024-04-25
1043India2024-04-02
1044India2024-04-04
1045Germany2024-04-23
1046Canada2024-04-13
1047Canada2024-04-16
1048Germany2024-04-24
1049Germany2024-04-02

On-Demand Data

NameIdCountryDate
Johnson K Inouye1000Japan2024-04-05
Wickens D Flosi1001Spain2024-04-24
Silvio G Iturbide1002Russia2024-04-16
Izzy X Waycott1003Argentina2024-04-11
Antonio S Marrier1004Canada2024-04-13
Chavez T Morasca1005Spain2024-04-26
Leja M Saylors1006Australia2024-04-21
Aruna S Figeroa1007Japan2024-04-25
Emily L Maclead1008Russia2024-04-15
Ashley Z Albares1009United Kingdom2024-04-01
Jones R Malet1010France2024-04-11
Ivar I Gaucho1011India2024-04-02
Nicolas H Butt1012United Kingdom2024-04-13
Sinclair R Doe1013Brazil2024-04-21
Darci W Schemmer1014India2024-04-20
Kaitlin P Ferencz1015United Kingdom2024-04-04
Darci F Rulapaugh1016Canada2024-04-08
Murillo N Venere1017Germany2024-04-10
Murillo K Bolognia1018Australia2024-04-27
Claire Q Foller1019Germany2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar H BologniaUnited KingdomAnna Fali NEW
Aditya Y SlusarskiGermanyAmy Elsner PROPOSAL
Munro S VenereSpainAnna Fali NEW
James J BologniaItalyElwin Sharvill NEW
Aditya R StensethGermanyBernardo Dominic RENEWAL
Emily R OldroydIndiaElwin Sharvill PROPOSAL
Maisha Z SaylorsArgentinaXuxue Feng RENEWAL
Rodrigues O DoeUnited KingdomBernardo Dominic RENEWAL
Alejandro T BologniaCanadaOnyama Limba QUALIFIED
Adams O IturbideGermanyStephen Shaw PROPOSAL
Greenwood Q KuskoFranceAsiya Javayant NEGOTIATION
Ashley E RimIndiaIoni Bowcher NEW
Silvio D VenereRussiaAnna Fali UNQUALIFIED
Jones R SaylorsGermanyIvan Magalhaes QUALIFIED
Aika X ShinkoBrazilElwin Sharvill NEW
Stacey D GauchoCanadaBernardo Dominic QUALIFIED
Mayumi H ButtUnited KingdomElwin Sharvill NEW
Mujtaba H OstroskyJapanStephen Shaw NEW
Mujtaba T SergiBrazilBernardo Dominic NEGOTIATION
Wickens Z InouyeSpainAnna Fali QUALIFIED
Misaki W FerenczCanadaBernardo Dominic NEGOTIATION
Francesco V GarufiIndiaAsiya Javayant NEGOTIATION
Nicolas K PoquetteBrazilXuxue Feng NEW
Darci T GlickCanadaAmy Elsner NEW
Adams Z DoeFranceOnyama Limba NEW
Maria S RimAustraliaStephen Shaw NEGOTIATION
Ashley X MacleadIndiaIvan Magalhaes NEGOTIATION
Stacey P MacleadRussiaIoni Bowcher QUALIFIED
Jeanfrancois O StockhamCanadaAsiya Javayant PROPOSAL
Johnson P MaletBrazilAmy Elsner NEW
Jeanfrancois M GauchoAustraliaXuxue Feng NEW
Francesco Y CampainCanadaXuxue Feng QUALIFIED
Octavia T SchemmerCanadaOnyama Limba NEGOTIATION
Nicolas A TollnerItalyBernardo Dominic PROPOSAL
Ricardo X BowleyCanadaAsiya Javayant UNQUALIFIED
Ashley P StockhamSpainIvan Magalhaes UNQUALIFIED
Adams P DilliardFranceIvan Magalhaes NEGOTIATION
Clifford B FollerArgentinaElwin Sharvill NEW
Octavia O OstroskyGermanyIvan Magalhaes QUALIFIED
Emily M DoeJapanIvan Magalhaes PROPOSAL

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