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
Juan J StensethUnited KingdomAmy Elsner PROPOSAL
Salvatore V CampainGermanyStephen Shaw QUALIFIED
Adams G MorascaRussiaElwin Sharvill UNQUALIFIED
Isabel H DoeArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois Z SaylorsGermanyStephen Shaw NEW
Darci T FollerSpainStephen Shaw PROPOSAL
Faith U RutaItalyOnyama Limba UNQUALIFIED
Salvatore H MorascaCanadaAnna Fali NEGOTIATION
Nicolas X RoysterItalyXuxue Feng RENEWAL
Faith J NickaAustraliaElwin Sharvill UNQUALIFIED
Deepesh X WhobreyCanadaElwin Sharvill QUALIFIED
Wickens F AmigonAustraliaAnna Fali RENEWAL
Wickens Z WhobreyGermanyElwin Sharvill QUALIFIED
Isabel Z WhobreyBrazilBernardo Dominic NEW
Costa K CaldareraArgentinaElwin Sharvill UNQUALIFIED
Costa U DoeCanadaAmy Elsner NEW
Juan N VenereIndiaIoni Bowcher NEGOTIATION
Leon D ChuiSpainAmy Elsner QUALIFIED
Isabel X GarufiCanadaIvan Magalhaes NEGOTIATION
Aditya A SaylorsJapanIvan Magalhaes RENEWAL
Aika S OstroskyIndiaBernardo Dominic NEW
Emily N NickaGermanyXuxue Feng NEGOTIATION
Kaitlin J GarufiFranceBernardo Dominic PROPOSAL
Maria O VocelkaAustraliaIoni Bowcher UNQUALIFIED
Salvatore I TollnerGermanyIvan Magalhaes RENEWAL
Isabel L OstroskyArgentinaAnna Fali NEW
Murillo E RutaAustraliaElwin Sharvill NEW
Silvio I ChuiItalyElwin Sharvill NEW
David U PoquetteFranceIoni Bowcher RENEWAL
Octavia R GauchoItalyBernardo Dominic NEGOTIATION
Tony F NestleIndiaElwin Sharvill PROPOSAL
Smith A AmigonAustraliaAmy Elsner NEW
Ashley E ButtFranceIoni Bowcher PROPOSAL
Isabel B ButtRussiaOnyama Limba RENEWAL
Leon O WieserCanadaIvan Magalhaes NEW
Silvio X MarrierFranceIvan Magalhaes UNQUALIFIED
Wickens H PoquetteArgentinaElwin Sharvill QUALIFIED
Greenwood B ShinkoJapanOnyama Limba NEGOTIATION
Maisha H BriddickFranceAsiya Javayant QUALIFIED
Leja D MaletJapanAmy Elsner UNQUALIFIED
Mayumi F GillianUnited KingdomElwin Sharvill NEW
Greenwood I VocelkaGermanyIvan Magalhaes NEGOTIATION
Aditya E GillianRussiaAsiya Javayant PROPOSAL
James R AmigonItalyIvan Magalhaes QUALIFIED
David T IturbideIndiaElwin Sharvill QUALIFIED
Mujtaba O KolmetzCanadaXuxue Feng QUALIFIED
Julie R NestleUnited KingdomXuxue Feng RENEWAL
Faith W MaletSpainAmy Elsner PROPOSAL
Aika K VocelkaRussiaOnyama Limba QUALIFIED
Rodrigues I MaletCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey D DarakjyArgentinaXuxue Feng NEGOTIATION
Stacey G RimFranceBernardo Dominic NEGOTIATION
Rodrigues Q SergiJapanIoni Bowcher NEGOTIATION
Rodrigues Z TollnerIndiaAnna Fali QUALIFIED
Izzy D KolmetzAustraliaElwin Sharvill RENEWAL
Juan H ButtAustraliaStephen Shaw NEW
Morrow S InouyeBrazilBernardo Dominic NEW
Emily E InouyeFranceAsiya Javayant RENEWAL
Rodrigues F SaylorsRussiaOnyama Limba NEW
Smith R WaycottCanadaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore C KolmetzJapan2024-03-08Feltz Printing Service PROPOSAL10Ivan Magalhaes
1001Deepesh N NickaArgentina2024-03-15Buckley Miller Wright NEGOTIATION41Ioni Bowcher
1002Nicolas N BologniaUnited Kingdom2024-03-06Chanay, Jeffrey A Esq NEW40Stephen Shaw
1003Leon U NestleItaly2024-03-25Rangoni Of Florence RENEWAL21Bernardo Dominic
1004Aika D PerinItaly2024-03-23King, Christopher A Esq UNQUALIFIED23Ivan Magalhaes
1005Ivar L RoysterUnited Kingdom2024-03-13Benton, John B Jr RENEWAL21Stephen Shaw
1006Morrow A PaprockiItaly2024-03-28Chapman, Ross E Esq NEGOTIATION66Anna Fali
1007Ivar C MorascaAustralia2024-03-04King, Christopher A Esq RENEWAL50Anna Fali
1008Clifford R PoquetteRussia2024-03-20Dorl, James J Esq QUALIFIED18Amy Elsner
1009Misaki E PaprockiJapan2024-03-05Rousseaux, Michael Esq PROPOSAL24Amy Elsner
1010Tony Y MaletJapan2024-03-20Chanay, Jeffrey A Esq RENEWAL2Onyama Limba
1011Mayumi M PoquetteAustralia2024-03-02Feltz Printing Service NEW70Anna Fali
1012David T VenereSpain2024-03-04Printing Dimensions NEGOTIATION98Asiya Javayant
1013Sinclair E CampainIndia2024-03-26Chemel, James L Cpa RENEWAL46Ioni Bowcher
1014Jones B InouyeRussia2024-03-27Feiner Bros RENEWAL31Anna Fali
1015Kaitlin R NestleArgentina2024-03-24Feiner Bros NEGOTIATION9Elwin Sharvill
1016Faith Q RulapaughGermany2024-03-09Feiner Bros NEW52Bernardo Dominic
1017Darci V CaudyIndia2024-03-06Buckley Miller Wright NEGOTIATION56Asiya Javayant
1018Cody A WhobreyGermany2024-03-09Morlong Associates NEGOTIATION49Onyama Limba
1019Ivar P KolmetzJapan2024-03-08Rousseaux, Michael Esq UNQUALIFIED12Amy Elsner
1020Greenwood P KolmetzAustralia2024-03-07Dorl, James J Esq RENEWAL9Anna Fali
1021Arvin X CaudyBrazil2024-02-29Rousseaux, Michael Esq PROPOSAL18Asiya Javayant
1022Mujtaba G CaldareraUnited Kingdom2024-03-12Feltz Printing Service NEGOTIATION96Ioni Bowcher
1023Smith P WieserCanada2024-03-06Rousseaux, Michael Esq QUALIFIED62Asiya Javayant
1024Ashley C CaldareraJapan2024-03-05Printing Dimensions NEGOTIATION28Xuxue Feng
1025Chavez R RimBrazil2024-03-10Rangoni Of Florence PROPOSAL86Ioni Bowcher
1026Ricardo A NickaIndia2024-03-24King, Christopher A Esq NEW29Onyama Limba
1027Ricardo R MaletRussia2024-03-25Feiner Bros UNQUALIFIED68Stephen Shaw
1028Morrow C MaletSpain2024-03-17Benton, John B Jr QUALIFIED65Asiya Javayant
1029Murillo B RutaItaly2024-03-12Printing Dimensions NEGOTIATION56Xuxue Feng
1030Aika I DilliardSpain2024-03-04Rousseaux, Michael Esq QUALIFIED6Asiya Javayant
1031Leon B StensethAustralia2024-03-20Dorl, James J Esq RENEWAL35Onyama Limba
1032Juan Y RimSpain2024-03-26Rousseaux, Michael Esq RENEWAL63Elwin Sharvill
1033Rodrigues E PaprockiUnited Kingdom2024-03-11Printing Dimensions UNQUALIFIED31Amy Elsner
1034Kadeem G MacleadAustralia2024-03-11Dorl, James J Esq PROPOSAL1Ioni Bowcher
1035Arvin Y MaletJapan2024-03-08Chanay, Jeffrey A Esq QUALIFIED44Xuxue Feng
1036Jennifer O PaprockiBrazil2024-03-17Truhlar And Truhlar Attys RENEWAL84Asiya Javayant
1037Chavez V MacleadUnited Kingdom2024-03-24Chanay, Jeffrey A Esq NEGOTIATION65Asiya Javayant
1038Clifford H AmigonFrance2024-03-10Rangoni Of Florence QUALIFIED5Stephen Shaw
1039Costa Q MaletFrance2024-03-25Chapman, Ross E Esq QUALIFIED5Bernardo Dominic
1040Juan V RutaFrance2024-03-09Dorl, James J Esq RENEWAL18Bernardo Dominic
1041Leon C PaprockiArgentina2024-02-28Morlong Associates RENEWAL25Ivan Magalhaes
1042Octavia F StockhamItaly2024-03-21Commercial Press RENEWAL47Xuxue Feng
1043Maisha U FigeroaCanada2024-03-17Benton, John B Jr PROPOSAL88Bernardo Dominic
1044Nicolas T RutaUnited Kingdom2024-03-09Chemel, James L Cpa NEW55Elwin Sharvill
1045Adams A MacleadRussia2024-03-19Chapman, Ross E Esq NEGOTIATION28Onyama Limba
1046Antonio L KuskoIndia2024-03-20King, Christopher A Esq NEGOTIATION93Elwin Sharvill
1047Darci W CampainSpain2024-03-24Rousseaux, Michael Esq NEW37Ivan Magalhaes
1048Sinclair M WhobreyJapan2024-03-01Rangoni Of Florence QUALIFIED18Stephen Shaw
1049Wickens J CampainRussia2024-03-27Rousseaux, Michael Esq NEGOTIATION62Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood V DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Ricardo P KuskoCanadaAsiya Javayant PROPOSAL
Ivar A MaletGermanyXuxue Feng QUALIFIED
Rodrigues K KuskoSpainAsiya Javayant NEGOTIATION
James Q MarrierRussiaStephen Shaw PROPOSAL
Alejandro U CampainSpainXuxue Feng NEW
Sinclair L TollnerSpainIoni Bowcher RENEWAL
Deepesh M NickaJapanIoni Bowcher UNQUALIFIED
Jefferson B FollerSpainElwin Sharvill RENEWAL
Tony D GlickSpainOnyama Limba PROPOSAL
Ricardo T ChuiSpainBernardo Dominic NEW
Cody P RulapaughItalyElwin Sharvill QUALIFIED
Antonio K RoysterAustraliaIvan Magalhaes QUALIFIED
David T OldroydIndiaStephen Shaw QUALIFIED
Alejandro U GillianFranceIoni Bowcher NEW
Ivar H KolmetzGermanyAsiya Javayant PROPOSAL
Jefferson P TollnerCanadaXuxue Feng RENEWAL
Mujtaba M RutaRussiaXuxue Feng NEW
Misaki X TollnerIndiaXuxue Feng NEW
Johnson Z SlusarskiGermanyOnyama Limba UNQUALIFIED
Silvio V MorascaArgentinaElwin Sharvill QUALIFIED
Aika R CampainArgentinaIoni Bowcher QUALIFIED
Antonio H CaudyCanadaIvan Magalhaes UNQUALIFIED
Alejandro Q BriddickItalyXuxue Feng QUALIFIED
Costa Y FlosiAustraliaElwin Sharvill PROPOSAL
Octavia Z ChuiGermanyBernardo Dominic PROPOSAL
Ashley H SaylorsArgentinaXuxue Feng UNQUALIFIED
Clifford D BriddickAustraliaBernardo Dominic RENEWAL
Claire A SlusarskiUnited KingdomAmy Elsner PROPOSAL
Adams Q FollerBrazilOnyama Limba NEGOTIATION
Nicolas B SchemmerJapanElwin Sharvill NEGOTIATION
Costa K MaletItalyAnna Fali NEGOTIATION
Kaitlin U IturbideRussiaBernardo Dominic PROPOSAL
Chavez G GlickIndiaXuxue Feng PROPOSAL
Tony F GillianSpainIvan Magalhaes QUALIFIED
Ivar O FollerRussiaAsiya Javayant UNQUALIFIED
Deepesh D BowleyUnited KingdomIvan Magalhaes QUALIFIED
Francesco L RulapaughFranceElwin Sharvill PROPOSAL
Tony X FlosiCanadaOnyama Limba UNQUALIFIED
Murillo U SchemmerRussiaAsiya Javayant UNQUALIFIED
Aditya Y RimAustraliaOnyama Limba PROPOSAL
Claire A PerinUnited KingdomAnna Fali NEGOTIATION
Mujtaba S GarufiIndiaBernardo Dominic UNQUALIFIED
Salvatore G FigeroaSpainIoni Bowcher NEW
Kaitlin S DarakjyBrazilStephen Shaw PROPOSAL
Claire C PoquetteArgentinaStephen Shaw NEGOTIATION
Greenwood I KuskoSpainBernardo Dominic UNQUALIFIED
Deepesh W GauchoCanadaElwin Sharvill RENEWAL
Leon G CampainIndiaAmy Elsner RENEWAL
Julie J StensethItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Cody D Butt
Faith Y Ferencz
Wickens T Rulapaugh
Sinclair U Waycott
Tony L Maclead
Chavez T Doe
James F Rim
Alejandro Y Figeroa
Izzy D Dilliard
Nicolas Z Slusarski
Stacey M Nestle
James H Morasca
Silvio Y Iturbide
Juan T Flosi
Aditya K Shinko
Emily B Ferencz
Ashley V Ostrosky
Ivar O Slusarski
Wickens B Caudy
Julie D Shinko
Smith R Butt
Alejandro R Gillian
Izzy A Nicka
Johnson M Bolognia
Antonio D Marrier
Emily J Stenseth
Mayumi D Gillian
Salvatore P Briddick
Aditya M Flosi
Adams S Caldarera
Aika E Briddick
Alejandro K Gaucho
Chavez V Stockham
Greenwood R Wieser
Cody X Campain
Maisha C Chui
Kaitlin Q Marrier
Costa A Butt
Jefferson Y Darakjy
Aika E Nicka
Izzy N Venere
Emily K Oldroyd
Antonio P Butt
Murillo I Caudy
Leja F Briddick
Mujtaba P Rulapaugh
Costa A Gaucho
Jennifer W Dilliard
Arvin E Caudy
Francesco W Maclead
IdCountryDate
1000Russia2024-03-11
1001Germany2024-03-05
1002Russia2024-03-22
1003Canada2024-03-16
1004Argentina2024-03-13
1005India2024-03-04
1006Spain2024-03-08
1007Canada2024-03-26
1008Italy2024-03-10
1009Spain2024-02-28
1010Spain2024-03-25
1011Italy2024-03-26
1012Brazil2024-03-22
1013India2024-03-22
1014Japan2024-03-18
1015Australia2024-03-26
1016United Kingdom2024-03-06
1017Japan2024-03-05
1018Italy2024-03-09
1019Japan2024-03-27
1020Italy2024-03-15
1021Spain2024-03-08
1022Italy2024-03-21
1023Canada2024-03-23
1024Germany2024-03-17
1025Japan2024-03-06
1026Italy2024-03-09
1027India2024-03-02
1028Italy2024-03-14
1029Japan2024-03-03
1030Italy2024-03-27
1031France2024-03-08
1032Canada2024-03-17
1033Brazil2024-03-20
1034India2024-03-22
1035Spain2024-03-25
1036Germany2024-02-29
1037India2024-03-12
1038Italy2024-03-22
1039Argentina2024-03-10
1040Italy2024-03-25
1041Italy2024-03-24
1042Brazil2024-03-17
1043Russia2024-03-25
1044Japan2024-03-21
1045Italy2024-03-10
1046Spain2024-03-01
1047Russia2024-03-15
1048Japan2024-03-08
1049Japan2024-03-22

On-Demand Data

NameIdCountryDate
Jennifer O Darakjy1000Australia2024-03-04
Emily N Caudy1001France2024-03-03
Kadeem E Shinko1002Argentina2024-02-28
Darci V Saylors1003France2024-03-10
Salvatore S Malet1004France2024-03-28
Maisha P Gaucho1005Germany2024-03-28
Kaitlin H Inouye1006Australia2024-02-29
Ivar S Kolmetz1007Japan2024-03-17
Mujtaba Y Royster1008Brazil2024-03-12
Faith Q Poquette1009Germany2024-03-26
Maria U Inouye1010Brazil2024-03-26
Maisha X Caudy1011Australia2024-03-23
Costa Q Glick1012Italy2024-03-24
Mayumi C Malet1013Russia2024-02-29
Arvin Z Flosi1014Canada2024-03-09
Stacey X Kolmetz1015Germany2024-03-16
Jennifer K Flosi1016Australia2024-03-22
Darci B Whobrey1017Brazil2024-03-24
Juan Z Caldarera1018Spain2024-03-07
Adams X Amigon1019France2024-03-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna J SlusarskiIndiaIoni Bowcher UNQUALIFIED
Jones P SaylorsArgentinaAmy Elsner NEW
Jefferson N AlbaresUnited KingdomXuxue Feng PROPOSAL
Jefferson X DoeItalyBernardo Dominic PROPOSAL
Kaitlin S WhobreyArgentinaOnyama Limba RENEWAL
Mujtaba V CaudyFranceElwin Sharvill NEGOTIATION
Morrow R KuskoJapanAmy Elsner NEGOTIATION
Emily R BriddickGermanyOnyama Limba UNQUALIFIED
Adams T NestleIndiaAnna Fali NEGOTIATION
Ivar D KuskoCanadaIoni Bowcher NEGOTIATION
Leon B SlusarskiIndiaBernardo Dominic UNQUALIFIED
Maisha P AmigonJapanXuxue Feng NEGOTIATION
Kaitlin W GlickCanadaOnyama Limba NEGOTIATION
Leja G NickaBrazilOnyama Limba UNQUALIFIED
Antonio Q CaldareraIndiaXuxue Feng RENEWAL
Juan X VenereRussiaAsiya Javayant NEGOTIATION
Misaki Y AmigonUnited KingdomOnyama Limba RENEWAL
Chavez H FlosiItalyXuxue Feng NEW
Maisha E IturbideArgentinaAnna Fali RENEWAL
Smith X StockhamRussiaOnyama Limba NEGOTIATION
Jones P PaprockiUnited KingdomAsiya Javayant QUALIFIED
Aruna M SlusarskiSpainIoni Bowcher RENEWAL
Cody P WhobreyAustraliaAmy Elsner RENEWAL
Adams M FigeroaItalyAnna Fali QUALIFIED
Ricardo J MaletArgentinaIoni Bowcher QUALIFIED
Ashley Y GauchoAustraliaElwin Sharvill UNQUALIFIED
Smith F IturbideCanadaStephen Shaw NEGOTIATION
Arvin E FigeroaIndiaAnna Fali NEGOTIATION
Mujtaba F SergiRussiaAsiya Javayant QUALIFIED
Jefferson D NestleRussiaElwin Sharvill NEW
Ashley J ChuiBrazilAsiya Javayant NEGOTIATION
Francesco C StensethFranceStephen Shaw PROPOSAL
Sinclair Q FerenczUnited KingdomBernardo Dominic QUALIFIED
Ashley E MacleadCanadaIoni Bowcher NEGOTIATION
Leon Q SergiUnited KingdomXuxue Feng NEGOTIATION
Maisha C VocelkaGermanyStephen Shaw PROPOSAL
Darci Y RoysterIndiaElwin Sharvill NEW
Morrow P RimGermanyStephen Shaw NEGOTIATION
Izzy J GillianIndiaIoni Bowcher PROPOSAL
Munro V PaprockiBrazilStephen Shaw 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>