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
Aruna O TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Claire C BologniaJapanOnyama Limba QUALIFIED
Silvio A NickaArgentinaAnna Fali PROPOSAL
Jennifer W CampainGermanyAsiya Javayant RENEWAL
Murillo Z OldroydCanadaOnyama Limba RENEWAL
Misaki V InouyeFranceStephen Shaw QUALIFIED
Kadeem S OstroskyJapanStephen Shaw UNQUALIFIED
Isabel G DoeUnited KingdomBernardo Dominic NEGOTIATION
Misaki O DarakjySpainBernardo Dominic RENEWAL
Arvin Z RimCanadaIvan Magalhaes UNQUALIFIED
Nicolas I MaletIndiaBernardo Dominic NEW
Claire G BologniaItalyOnyama Limba NEW
Ashley Y RoysterArgentinaIvan Magalhaes QUALIFIED
Claire M DarakjyUnited KingdomIvan Magalhaes RENEWAL
Adams C GlickRussiaAsiya Javayant RENEWAL
Johnson D OldroydSpainBernardo Dominic QUALIFIED
David T StensethArgentinaElwin Sharvill RENEWAL
David A SchemmerBrazilStephen Shaw PROPOSAL
Antonio L WhobreyCanadaOnyama Limba PROPOSAL
Ivar A KolmetzAustraliaAsiya Javayant RENEWAL
James Q SchemmerIndiaXuxue Feng UNQUALIFIED
Emily P MaletCanadaAsiya Javayant PROPOSAL
Claire A GlickSpainBernardo Dominic NEW
Alejandro V RutaItalyAnna Fali QUALIFIED
Octavia Y SlusarskiRussiaAnna Fali PROPOSAL
Murillo B PerinArgentinaAsiya Javayant PROPOSAL
Aditya G SlusarskiBrazilAmy Elsner RENEWAL
Cody K DoeArgentinaIvan Magalhaes UNQUALIFIED
Jennifer G AmigonJapanIvan Magalhaes UNQUALIFIED
Julie K RoysterAustraliaElwin Sharvill RENEWAL
Morrow R WhobreyItalyBernardo Dominic PROPOSAL
Nicolas O BologniaCanadaXuxue Feng RENEWAL
Kaitlin D StockhamUnited KingdomAsiya Javayant NEW
Misaki W RulapaughIndiaIvan Magalhaes QUALIFIED
Faith H GarufiSpainIoni Bowcher NEW
Emily Z MaletItalyOnyama Limba QUALIFIED
Johnson K MaletJapanElwin Sharvill RENEWAL
Murillo R DarakjySpainBernardo Dominic UNQUALIFIED
Jefferson I MorascaAustraliaIoni Bowcher QUALIFIED
Kadeem D CaldareraIndiaStephen Shaw RENEWAL
Maisha C GarufiSpainXuxue Feng PROPOSAL
Antonio Y OstroskyFranceOnyama Limba QUALIFIED
Ivar W IturbideUnited KingdomOnyama Limba PROPOSAL
Aika R GillianGermanyXuxue Feng PROPOSAL
Silvio M SaylorsArgentinaOnyama Limba PROPOSAL
Julie E CaudyBrazilIoni Bowcher NEW
Jennifer G PoquetteAustraliaAsiya Javayant NEGOTIATION
Morrow M SchemmerAustraliaStephen Shaw PROPOSAL
Jennifer K WieserBrazilElwin Sharvill UNQUALIFIED
Ivar V MorascaGermanyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi R SergiAustraliaIvan Magalhaes QUALIFIED
Johnson G AlbaresRussiaAsiya Javayant RENEWAL
Salvatore I MaletRussiaAsiya Javayant UNQUALIFIED
Leja V PerinFranceXuxue Feng NEGOTIATION
Kaitlin G WhobreyItalyOnyama Limba RENEWAL
Mujtaba L ShinkoFranceElwin Sharvill NEGOTIATION
Cody D CampainGermanyIoni Bowcher UNQUALIFIED
Cody E MarrierArgentinaOnyama Limba RENEWAL
Alejandro P MorascaRussiaAnna Fali QUALIFIED
Juan X SchemmerArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens K FigeroaAustralia2024-03-23Commercial Press RENEWAL63Ivan Magalhaes
1001Greenwood S WieserRussia2024-03-29Chemel, James L Cpa UNQUALIFIED3Ioni Bowcher
1002Ricardo B StockhamItaly2024-04-05Chanay, Jeffrey A Esq NEGOTIATION58Anna Fali
1003Munro Q RimGermany2024-03-29Printing Dimensions NEGOTIATION34Anna Fali
1004Leon Z RulapaughIndia2024-03-23Chanay, Jeffrey A Esq RENEWAL85Asiya Javayant
1005Ivar Y AmigonAustralia2024-04-02Chemel, James L Cpa NEGOTIATION17Onyama Limba
1006Julie G SlusarskiUnited Kingdom2024-04-10Printing Dimensions NEGOTIATION46Elwin Sharvill
1007Munro U CaldareraUnited Kingdom2024-03-21Feiner Bros NEW62Elwin Sharvill
1008Kaitlin X BologniaAustralia2024-04-18Rangoni Of Florence QUALIFIED7Asiya Javayant
1009Salvatore P PaprockiAustralia2024-04-01Commercial Press PROPOSAL36Xuxue Feng
1010Jeanfrancois I MorascaRussia2024-04-10Rangoni Of Florence NEGOTIATION54Anna Fali
1011Greenwood Y MaletRussia2024-03-22Feiner Bros NEW35Amy Elsner
1012Kaitlin M DilliardGermany2024-04-04Rangoni Of Florence PROPOSAL84Ivan Magalhaes
1013Claire W FigeroaIndia2024-04-15Truhlar And Truhlar Attys UNQUALIFIED9Onyama Limba
1014Maisha V ChuiRussia2024-03-24Truhlar And Truhlar Attys RENEWAL95Asiya Javayant
1015Leon B MarrierArgentina2024-03-27Dorl, James J Esq UNQUALIFIED35Asiya Javayant
1016Francesco O WhobreyFrance2024-03-20Feiner Bros QUALIFIED39Bernardo Dominic
1017Wickens Q CaldareraGermany2024-04-10Benton, John B Jr NEW65Amy Elsner
1018Izzy U RoysterGermany2024-04-17Chapman, Ross E Esq QUALIFIED43Asiya Javayant
1019David B ShinkoJapan2024-04-13Truhlar And Truhlar Attys RENEWAL54Bernardo Dominic
1020Morrow H BriddickRussia2024-03-30King, Christopher A Esq PROPOSAL89Xuxue Feng
1021Rodrigues N CampainFrance2024-04-04Rangoni Of Florence PROPOSAL62Asiya Javayant
1022Arvin X OldroydRussia2024-04-03Rousseaux, Michael Esq PROPOSAL81Ivan Magalhaes
1023Costa Q PaprockiCanada2024-04-12Feiner Bros NEGOTIATION12Anna Fali
1024Aditya A ButtAustralia2024-03-20Chapman, Ross E Esq NEW99Elwin Sharvill
1025Jeanfrancois H KolmetzRussia2024-04-15Commercial Press PROPOSAL25Ivan Magalhaes
1026David M NestleCanada2024-04-07Chemel, James L Cpa RENEWAL59Ivan Magalhaes
1027Izzy B MaletIndia2024-04-13Chapman, Ross E Esq RENEWAL86Elwin Sharvill
1028Jefferson A CampainSpain2024-03-25Printing Dimensions NEW60Ivan Magalhaes
1029Johnson R OldroydBrazil2024-04-15Rousseaux, Michael Esq NEW87Bernardo Dominic
1030Deepesh N PoquetteSpain2024-04-04Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1031Julie M BowleyRussia2024-03-30Printing Dimensions UNQUALIFIED44Stephen Shaw
1032Ricardo T WhobreyRussia2024-03-29Dorl, James J Esq NEW62Anna Fali
1033Rodrigues H MaletBrazil2024-04-01Buckley Miller Wright UNQUALIFIED46Ioni Bowcher
1034Ivar V SergiRussia2024-03-28Dorl, James J Esq NEGOTIATION96Bernardo Dominic
1035Izzy A GauchoIndia2024-03-21Feiner Bros PROPOSAL21Ivan Magalhaes
1036Maria N CampainUnited Kingdom2024-04-09King, Christopher A Esq UNQUALIFIED83Amy Elsner
1037Sinclair J WhobreyFrance2024-04-14Feiner Bros NEW48Onyama Limba
1038Munro T WhobreyArgentina2024-03-27Rousseaux, Michael Esq PROPOSAL21Anna Fali
1039Jeanfrancois D TollnerFrance2024-04-05Printing Dimensions NEGOTIATION69Stephen Shaw
1040Murillo J BologniaUnited Kingdom2024-03-31Rangoni Of Florence UNQUALIFIED98Ioni Bowcher
1041Mujtaba U InouyeAustralia2024-03-21Printing Dimensions NEW91Anna Fali
1042Emily M BriddickSpain2024-04-16Chemel, James L Cpa NEGOTIATION99Anna Fali
1043Octavia P OstroskyJapan2024-04-02Commercial Press QUALIFIED65Stephen Shaw
1044Octavia A DilliardIndia2024-04-02Benton, John B Jr QUALIFIED91Ioni Bowcher
1045Misaki L SaylorsFrance2024-03-20Morlong Associates UNQUALIFIED47Bernardo Dominic
1046Munro Y BowleyUnited Kingdom2024-03-29Chemel, James L Cpa UNQUALIFIED92Elwin Sharvill
1047Misaki R MaletItaly2024-04-14Printing Dimensions QUALIFIED72Asiya Javayant
1048Aika F FerenczArgentina2024-04-16Feltz Printing Service NEGOTIATION90Anna Fali
1049Smith M OstroskyIndia2024-04-03Benton, John B Jr RENEWAL84Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan Q RoysterSpainAsiya Javayant UNQUALIFIED
Cody G GlickCanadaIoni Bowcher UNQUALIFIED
David W PerinAustraliaXuxue Feng QUALIFIED
Claire X KuskoCanadaAsiya Javayant PROPOSAL
Mujtaba I CaudyGermanyIvan Magalhaes PROPOSAL
Ricardo C WieserJapanXuxue Feng NEGOTIATION
Maisha V RoysterCanadaAsiya Javayant NEGOTIATION
Izzy Q ShinkoIndiaOnyama Limba NEGOTIATION
Arvin Z RutaSpainAmy Elsner RENEWAL
James R DarakjyCanadaIvan Magalhaes NEGOTIATION
Mujtaba B RoysterItalyAnna Fali QUALIFIED
Jennifer F InouyeBrazilIoni Bowcher QUALIFIED
Faith S AmigonBrazilAmy Elsner PROPOSAL
Stacey A ButtFranceIoni Bowcher NEGOTIATION
Claire Y FollerAustraliaAsiya Javayant QUALIFIED
Smith B DoeAustraliaAnna Fali NEGOTIATION
David P NickaArgentinaIvan Magalhaes PROPOSAL
Ashley K ButtItalyXuxue Feng NEW
Isabel S GillianJapanOnyama Limba UNQUALIFIED
Smith B FerenczBrazilAsiya Javayant PROPOSAL
Mujtaba A MaletFranceElwin Sharvill RENEWAL
Silvio W InouyeSpainAmy Elsner NEGOTIATION
Isabel H SlusarskiIndiaElwin Sharvill PROPOSAL
Adams V VocelkaAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois K MorascaArgentinaStephen Shaw QUALIFIED
Ricardo N ChuiSpainAmy Elsner PROPOSAL
David E BologniaIndiaBernardo Dominic QUALIFIED
Faith T OstroskyFranceIvan Magalhaes NEW
Adams L InouyeIndiaIoni Bowcher QUALIFIED
Jeanfrancois T ShinkoGermanyElwin Sharvill NEW
Murillo K VocelkaBrazilStephen Shaw RENEWAL
Sinclair C BowleyRussiaElwin Sharvill NEW
Jennifer I KuskoCanadaOnyama Limba NEW
Juan G MorascaAustraliaBernardo Dominic QUALIFIED
Jones C AmigonItalyElwin Sharvill NEW
James F WieserBrazilStephen Shaw RENEWAL
Salvatore Q ButtItalyAsiya Javayant NEW
Tony Q DarakjySpainElwin Sharvill NEGOTIATION
Leja F FlosiArgentinaAnna Fali QUALIFIED
Misaki Y SaylorsBrazilAsiya Javayant UNQUALIFIED
Jones S SaylorsSpainStephen Shaw RENEWAL
Alejandro K MaletCanadaAsiya Javayant PROPOSAL
Johnson Z FollerFranceStephen Shaw UNQUALIFIED
Claire C FollerBrazilIvan Magalhaes RENEWAL
Jennifer Y MorascaUnited KingdomElwin Sharvill NEGOTIATION
Jefferson L IturbideSpainAmy Elsner QUALIFIED
Deepesh F InouyeSpainAnna Fali RENEWAL
Smith L GarufiBrazilAmy Elsner PROPOSAL
Izzy E PaprockiAustraliaElwin Sharvill RENEWAL
Emily Q FigeroaBrazilIoni Bowcher RENEWAL
Frozen Columns
Name
Rodrigues Q Malet
Smith J Darakjy
Johnson N Rim
James M Shinko
Claire Z Malet
Julie X Saylors
Stacey X Venere
Emily V Inouye
Greenwood Y Maclead
Wickens X Gaucho
Claire T Royster
Smith J Waycott
Cody D Rulapaugh
Izzy T Bowley
Johnson H Amigon
Chavez Y Malet
Darci M Tollner
Ashley J Sergi
Aika R Briddick
Costa R Shinko
Deepesh H Garufi
Claire N Bolognia
Jennifer Z Whobrey
Ricardo M Chui
Aditya T Sergi
Arvin Z Tollner
Clifford Y Nicka
Adams O Wieser
Julie C Schemmer
Rodrigues C Briddick
Salvatore F Shinko
Arvin F Briddick
Salvatore W Darakjy
James Z Flosi
Maisha B Inouye
Smith X Morasca
Tony X Albares
Chavez N Caldarera
Izzy F Paprocki
Ashley I Chui
Isabel O Gillian
Antonio N Wieser
Stacey Z Wieser
Munro V Oldroyd
Arvin C Tollner
Cody H Garufi
Stacey R Bolognia
Johnson T Flosi
Munro X Ruta
Clifford N Venere
IdCountryDate
1000Japan2024-03-20
1001Japan2024-03-23
1002Canada2024-03-23
1003Russia2024-04-03
1004Germany2024-04-15
1005Brazil2024-03-27
1006Brazil2024-03-25
1007United Kingdom2024-04-12
1008Germany2024-04-08
1009India2024-04-02
1010Canada2024-03-28
1011Australia2024-03-22
1012Germany2024-03-25
1013Japan2024-04-02
1014Brazil2024-04-09
1015Brazil2024-03-29
1016France2024-04-06
1017Canada2024-03-20
1018Italy2024-04-10
1019Germany2024-04-14
1020Canada2024-03-22
1021Russia2024-04-06
1022United Kingdom2024-03-26
1023Japan2024-04-14
1024Germany2024-04-06
1025Germany2024-03-24
1026Canada2024-04-18
1027India2024-04-03
1028Australia2024-04-18
1029Japan2024-03-26
1030Germany2024-03-30
1031France2024-04-18
1032Argentina2024-03-21
1033Japan2024-03-25
1034France2024-03-25
1035Japan2024-04-04
1036Brazil2024-03-31
1037Brazil2024-04-18
1038Russia2024-03-30
1039Canada2024-04-01
1040Japan2024-04-05
1041India2024-04-01
1042India2024-03-20
1043Japan2024-04-06
1044Brazil2024-04-18
1045Germany2024-04-02
1046Japan2024-04-15
1047Spain2024-04-07
1048Canada2024-04-13
1049India2024-04-05

On-Demand Data

NameIdCountryDate
Jones Y Whobrey1000United Kingdom2024-04-10
Darci I Waycott1001Brazil2024-03-27
Kaitlin T Stockham1002Argentina2024-03-28
Leon K Albares1003Italy2024-03-31
Jeanfrancois R Schemmer1004Australia2024-03-23
Leja X Gaucho1005India2024-03-29
Chavez D Perin1006Argentina2024-03-28
Izzy H Tollner1007Brazil2024-03-28
Mayumi A Briddick1008United Kingdom2024-04-15
Maisha D Poquette1009Brazil2024-04-06
Misaki E Ruta1010Russia2024-03-25
Ashley F Whobrey1011France2024-04-17
Sinclair Q Malet1012Russia2024-03-31
Johnson L Glick1013India2024-03-20
Adams C Marrier1014Spain2024-03-20
Leja E Morasca1015India2024-04-07
Jennifer Y Royster1016Brazil2024-04-07
Isabel I Sergi1017India2024-03-29
Kaitlin N Stenseth1018Argentina2024-04-04
Jefferson F Bowley1019Canada2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem W NestleBrazilAnna Fali QUALIFIED
Aruna D BriddickFranceAmy Elsner PROPOSAL
Adams V StensethCanadaBernardo Dominic NEGOTIATION
Maisha R NickaAustraliaAnna Fali NEW
Maisha F MarrierSpainIvan Magalhaes NEW
Isabel Q DoeUnited KingdomBernardo Dominic UNQUALIFIED
Smith V CampainIndiaIvan Magalhaes NEW
Deepesh B SergiRussiaOnyama Limba PROPOSAL
Ricardo N SergiRussiaIoni Bowcher NEGOTIATION
Johnson S ShinkoUnited KingdomBernardo Dominic PROPOSAL
Juan N VocelkaSpainStephen Shaw PROPOSAL
Nicolas R MorascaCanadaIvan Magalhaes RENEWAL
Kadeem P MacleadUnited KingdomAnna Fali QUALIFIED
Ricardo X WhobreyArgentinaIoni Bowcher NEW
Arvin Y RoysterSpainAnna Fali NEW
Alejandro K WieserBrazilStephen Shaw NEW
Antonio H FlosiIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois U PerinGermanyXuxue Feng QUALIFIED
Tony X CaudyGermanyOnyama Limba NEGOTIATION
Kadeem H StockhamItalyIvan Magalhaes RENEWAL
Francesco Q ButtItalyOnyama Limba PROPOSAL
Tony N PaprockiUnited KingdomAsiya Javayant RENEWAL
Octavia D SergiSpainStephen Shaw PROPOSAL
Kadeem G CaldareraItalyElwin Sharvill NEGOTIATION
Ivar V GauchoRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois Y ShinkoGermanyAmy Elsner NEW
Misaki T GillianCanadaIoni Bowcher NEGOTIATION
Kadeem Q CaudySpainAmy Elsner PROPOSAL
Kadeem N DilliardSpainAsiya Javayant UNQUALIFIED
Arvin J MorascaRussiaAmy Elsner NEGOTIATION
Munro J CaldareraAustraliaAnna Fali NEGOTIATION
Octavia B RulapaughGermanyOnyama Limba RENEWAL
Salvatore H SchemmerFranceElwin Sharvill RENEWAL
Sinclair B StensethIndiaIoni Bowcher PROPOSAL
Emily Z WieserCanadaBernardo Dominic QUALIFIED
Octavia S BowleyCanadaIvan Magalhaes UNQUALIFIED
Clifford F MaletBrazilIvan Magalhaes UNQUALIFIED
Greenwood U TollnerIndiaAsiya Javayant RENEWAL
Leon Y BologniaUnited KingdomElwin Sharvill PROPOSAL
Darci T OldroydUnited KingdomOnyama Limba NEGOTIATION

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