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
Julie A WhobreyRussiaAmy Elsner NEW
Costa Y CaldareraCanadaStephen Shaw NEW
Jennifer L GlickCanadaIvan Magalhaes NEGOTIATION
Maria T GillianGermanyBernardo Dominic RENEWAL
Cody U DarakjyItalyIvan Magalhaes QUALIFIED
Deepesh L GlickItalyAmy Elsner NEGOTIATION
Julie Q RimFranceXuxue Feng PROPOSAL
Sinclair P CaudyArgentinaOnyama Limba NEGOTIATION
Leon E DoeJapanXuxue Feng QUALIFIED
Claire B KuskoAustraliaAsiya Javayant NEW
Maisha H BriddickItalyIvan Magalhaes NEW
Mujtaba J MarrierBrazilOnyama Limba RENEWAL
Jones J ChuiRussiaAmy Elsner RENEWAL
Jefferson Z KuskoGermanyBernardo Dominic NEW
Jeanfrancois N RulapaughFranceBernardo Dominic NEGOTIATION
Deepesh G OldroydUnited KingdomXuxue Feng RENEWAL
Octavia N GarufiIndiaIvan Magalhaes RENEWAL
Antonio J BriddickRussiaIvan Magalhaes NEW
Adams F WaycottGermanyXuxue Feng NEW
Arvin A KolmetzIndiaIvan Magalhaes RENEWAL
Aruna A IturbideIndiaIoni Bowcher RENEWAL
Smith N OstroskyFranceIoni Bowcher PROPOSAL
Adams Z KolmetzAustraliaIvan Magalhaes PROPOSAL
Arvin E CaudyBrazilOnyama Limba PROPOSAL
Antonio M PerinGermanyOnyama Limba UNQUALIFIED
Antonio W CaldareraFranceXuxue Feng UNQUALIFIED
James J VocelkaItalyBernardo Dominic PROPOSAL
Cody J MaletUnited KingdomXuxue Feng UNQUALIFIED
Misaki J CampainAustraliaAmy Elsner QUALIFIED
Octavia X DilliardItalyElwin Sharvill QUALIFIED
Jennifer E StensethGermanyAsiya Javayant UNQUALIFIED
Jones W FigeroaBrazilAmy Elsner QUALIFIED
Ashley M TollnerItalyAsiya Javayant QUALIFIED
Smith B AmigonAustraliaBernardo Dominic QUALIFIED
Mujtaba J VenereArgentinaElwin Sharvill QUALIFIED
Jennifer H BowleyRussiaElwin Sharvill PROPOSAL
Maria S ChuiIndiaIvan Magalhaes NEGOTIATION
Murillo P MaletJapanIvan Magalhaes UNQUALIFIED
Morrow E PaprockiJapanXuxue Feng UNQUALIFIED
Ricardo N BriddickItalyAmy Elsner QUALIFIED
Mujtaba R GlickArgentinaOnyama Limba PROPOSAL
Morrow O AmigonJapanXuxue Feng NEW
Adams Y DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya F WhobreyIndiaStephen Shaw NEW
Jeanfrancois U OldroydJapanBernardo Dominic UNQUALIFIED
Octavia R GillianItalyStephen Shaw NEW
Tony P RutaUnited KingdomElwin Sharvill UNQUALIFIED
Leja E StockhamSpainBernardo Dominic NEGOTIATION
Nicolas U PerinRussiaElwin Sharvill RENEWAL
Chavez O GarufiFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Izzy K ChuiRussiaStephen Shaw QUALIFIED
Darci Y NestleBrazilElwin Sharvill NEGOTIATION
Salvatore D DarakjyFranceAmy Elsner RENEWAL
David S MaletUnited KingdomStephen Shaw NEW
Kaitlin Y KolmetzBrazilStephen Shaw PROPOSAL
Ivar S GauchoSpainBernardo Dominic RENEWAL
Misaki B PoquetteIndiaIvan Magalhaes UNQUALIFIED
Clifford S SaylorsGermanyBernardo Dominic NEW
Mujtaba B FerenczSpainAsiya Javayant UNQUALIFIED
Deepesh P GillianArgentinaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia J KolmetzAustralia2024-04-01Benton, John B Jr PROPOSAL28Onyama Limba
1001Rodrigues W InouyeArgentina2024-04-04Feiner Bros QUALIFIED89Amy Elsner
1002Chavez H MarrierCanada2024-03-29Rangoni Of Florence RENEWAL76Bernardo Dominic
1003Jennifer W GlickItaly2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED87Anna Fali
1004Ricardo S DoeIndia2024-04-19Benton, John B Jr NEW50Ivan Magalhaes
1005Aika W TollnerIndia2024-03-31Printing Dimensions PROPOSAL28Ioni Bowcher
1006Emily P RulapaughItaly2024-04-01Chemel, James L Cpa NEGOTIATION97Amy Elsner
1007Kadeem A MorascaSpain2024-04-06King, Christopher A Esq RENEWAL57Xuxue Feng
1008Adams N RoysterSpain2024-04-22Chapman, Ross E Esq RENEWAL40Ivan Magalhaes
1009Costa B SchemmerSpain2024-04-11Feiner Bros RENEWAL13Elwin Sharvill
1010Misaki F FollerRussia2024-03-28King, Christopher A Esq UNQUALIFIED78Bernardo Dominic
1011Isabel N SlusarskiUnited Kingdom2024-04-21Chapman, Ross E Esq UNQUALIFIED29Amy Elsner
1012Greenwood Y DilliardAustralia2024-04-12Benton, John B Jr NEGOTIATION46Stephen Shaw
1013Leon U WhobreyUnited Kingdom2024-04-24Rousseaux, Michael Esq NEGOTIATION55Asiya Javayant
1014Adams W FollerRussia2024-04-15Feiner Bros NEGOTIATION99Elwin Sharvill
1015Tony T NestleUnited Kingdom2024-04-22Dorl, James J Esq QUALIFIED39Amy Elsner
1016Cody J PoquetteCanada2024-04-08Commercial Press NEGOTIATION26Xuxue Feng
1017James L BriddickRussia2024-04-08Feltz Printing Service UNQUALIFIED70Anna Fali
1018Leja H VenereArgentina2024-04-18Buckley Miller Wright QUALIFIED41Bernardo Dominic
1019James C AlbaresJapan2024-04-07Rangoni Of Florence QUALIFIED14Bernardo Dominic
1020Salvatore O BriddickJapan2024-04-01Buckley Miller Wright UNQUALIFIED62Amy Elsner
1021Morrow T KuskoArgentina2024-03-31Dorl, James J Esq RENEWAL33Xuxue Feng
1022James M SaylorsIndia2024-04-12Chemel, James L Cpa NEW5Onyama Limba
1023Salvatore A FlosiIndia2024-04-10Dorl, James J Esq UNQUALIFIED88Amy Elsner
1024Octavia W SergiItaly2024-04-04Chemel, James L Cpa PROPOSAL81Anna Fali
1025Misaki K KolmetzBrazil2024-04-21Chapman, Ross E Esq UNQUALIFIED72Elwin Sharvill
1026Kadeem V DilliardJapan2024-04-01Chapman, Ross E Esq NEGOTIATION83Ivan Magalhaes
1027Claire T ButtArgentina2024-04-23Feiner Bros QUALIFIED90Ioni Bowcher
1028Faith M KolmetzJapan2024-03-31Rangoni Of Florence RENEWAL28Stephen Shaw
1029Emily U OstroskyFrance2024-04-16Chemel, James L Cpa UNQUALIFIED53Stephen Shaw
1030Aditya W KolmetzIndia2024-03-29Feltz Printing Service NEGOTIATION89Asiya Javayant
1031Tony C OldroydCanada2024-04-22Chapman, Ross E Esq UNQUALIFIED91Anna Fali
1032Salvatore B KuskoIndia2024-04-22Benton, John B Jr NEW64Ioni Bowcher
1033Kaitlin B GarufiGermany2024-04-20Feiner Bros NEW72Stephen Shaw
1034Greenwood G CaudyArgentina2024-04-20Feiner Bros UNQUALIFIED46Ivan Magalhaes
1035Jennifer X BowleyArgentina2024-04-05Morlong Associates UNQUALIFIED89Bernardo Dominic
1036Clifford K GauchoArgentina2024-04-04Commercial Press NEGOTIATION11Stephen Shaw
1037Faith T MaletRussia2024-04-22Truhlar And Truhlar Attys PROPOSAL17Xuxue Feng
1038Clifford O GillianItaly2024-04-15Chapman, Ross E Esq PROPOSAL31Elwin Sharvill
1039Silvio N RulapaughGermany2024-04-03Chanay, Jeffrey A Esq QUALIFIED62Bernardo Dominic
1040Kadeem O FlosiItaly2024-03-28Morlong Associates NEGOTIATION78Anna Fali
1041Ashley L StensethAustralia2024-04-02Commercial Press NEGOTIATION96Ivan Magalhaes
1042Maisha G SlusarskiArgentina2024-04-16Benton, John B Jr UNQUALIFIED69Elwin Sharvill
1043Aika C SlusarskiCanada2024-04-18Dorl, James J Esq QUALIFIED54Ioni Bowcher
1044Maria Z WieserBrazil2024-04-05Benton, John B Jr RENEWAL98Ivan Magalhaes
1045Francesco S PoquetteAustralia2024-04-25Rangoni Of Florence PROPOSAL94Stephen Shaw
1046Silvio D CaldareraGermany2024-04-19Morlong Associates QUALIFIED1Xuxue Feng
1047Jones N GarufiArgentina2024-04-02Morlong Associates NEW26Asiya Javayant
1048Johnson D GarufiRussia2024-04-15Dorl, James J Esq QUALIFIED76Amy Elsner
1049Jennifer G RutaCanada2024-04-15Buckley Miller Wright RENEWAL75Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues E MacleadIndiaStephen Shaw RENEWAL
Isabel E MorascaItalyIoni Bowcher QUALIFIED
David L WieserCanadaStephen Shaw PROPOSAL
Kadeem C PoquetteSpainAmy Elsner NEW
Kaitlin X NestleItalyIoni Bowcher UNQUALIFIED
Ashley T MaletItalyStephen Shaw UNQUALIFIED
Johnson J AlbaresIndiaStephen Shaw RENEWAL
Antonio R VenereGermanyAnna Fali UNQUALIFIED
Octavia B PerinRussiaBernardo Dominic NEW
Jefferson P GauchoIndiaStephen Shaw NEW
Antonio M PoquetteItalyBernardo Dominic NEW
Ashley D TollnerIndiaStephen Shaw UNQUALIFIED
Ashley P DarakjyRussiaBernardo Dominic NEGOTIATION
Jennifer X PerinItalyAnna Fali NEW
Morrow K RulapaughGermanyElwin Sharvill NEW
Sinclair W NestleFranceBernardo Dominic UNQUALIFIED
Ashley W VocelkaFranceElwin Sharvill PROPOSAL
Cody A MacleadArgentinaIvan Magalhaes PROPOSAL
Tony J AlbaresJapanIoni Bowcher NEGOTIATION
Misaki B BriddickIndiaOnyama Limba QUALIFIED
Darci Q BowleyFranceIoni Bowcher NEW
Johnson K GillianCanadaAsiya Javayant RENEWAL
Wickens N BowleyAustraliaIoni Bowcher NEGOTIATION
Cody R FlosiAustraliaAnna Fali RENEWAL
Kaitlin I GarufiCanadaAnna Fali RENEWAL
Maria B WieserUnited KingdomElwin Sharvill NEGOTIATION
Misaki U CaudyIndiaIoni Bowcher QUALIFIED
Alejandro E KolmetzBrazilAmy Elsner NEGOTIATION
Arvin J RulapaughBrazilElwin Sharvill NEGOTIATION
Jones P RutaArgentinaIvan Magalhaes QUALIFIED
Misaki A RimBrazilAnna Fali PROPOSAL
Costa D IturbideCanadaAsiya Javayant NEGOTIATION
Claire R ShinkoArgentinaStephen Shaw QUALIFIED
Aika E KolmetzBrazilAmy Elsner UNQUALIFIED
Misaki B SchemmerArgentinaOnyama Limba QUALIFIED
Misaki R MorascaGermanyAmy Elsner PROPOSAL
Clifford V VocelkaCanadaXuxue Feng UNQUALIFIED
Maisha Y GarufiRussiaIvan Magalhaes RENEWAL
Julie G MorascaFranceElwin Sharvill NEGOTIATION
Sinclair B BriddickGermanyBernardo Dominic RENEWAL
Silvio G WieserCanadaIoni Bowcher RENEWAL
Clifford R FigeroaSpainOnyama Limba QUALIFIED
Aditya C ButtAustraliaElwin Sharvill RENEWAL
Smith K FerenczBrazilAmy Elsner NEGOTIATION
Aruna S WieserCanadaElwin Sharvill UNQUALIFIED
Aika N MaletBrazilBernardo Dominic PROPOSAL
Izzy B StensethAustraliaAmy Elsner RENEWAL
Murillo L StensethIndiaAnna Fali NEW
Alejandro R FollerAustraliaXuxue Feng NEW
Aika Z BriddickItalyOnyama Limba PROPOSAL
Frozen Columns
Name
Octavia Q Shinko
Sinclair I Whobrey
Tony N Campain
Antonio N Schemmer
Wickens U Kusko
Smith M Rulapaugh
Jeanfrancois C Stenseth
Clifford O Butt
Octavia N Foller
Smith B Venere
Ricardo Z Glick
Maisha C Slusarski
Izzy N Caudy
Maisha U Rim
Deepesh Y Sergi
Ivar G Venere
Darci T Inouye
Ivar C Darakjy
Isabel R Figeroa
Costa X Briddick
Deepesh F Rim
Maria D Nestle
Jeanfrancois S Ferencz
Jennifer W Bowley
Mujtaba P Caudy
Maria R Figeroa
Rodrigues Z Kusko
Maisha O Doe
Adams N Malet
Jennifer J Caldarera
Isabel J Sergi
Adams W Figeroa
Silvio A Bolognia
Jefferson P Shinko
Jeanfrancois N Schemmer
Murillo X Shinko
Kadeem V Poquette
Faith R Nicka
Salvatore Z Flosi
Nicolas P Garufi
Ashley P Kusko
Munro O Malet
Rodrigues S Ruta
Kadeem I Perin
Claire W Doe
Salvatore U Kusko
Aika W Maclead
Darci U Darakjy
James R Gaucho
Stacey N Iturbide
IdCountryDate
1000India2024-04-14
1001Canada2024-04-16
1002Argentina2024-04-10
1003Argentina2024-03-29
1004United Kingdom2024-04-10
1005Spain2024-04-02
1006Spain2024-03-31
1007Spain2024-04-07
1008India2024-04-03
1009Germany2024-04-07
1010France2024-04-25
1011India2024-04-03
1012Russia2024-04-02
1013Canada2024-04-12
1014United Kingdom2024-04-25
1015Russia2024-04-11
1016Brazil2024-03-29
1017United Kingdom2024-03-27
1018India2024-04-11
1019Russia2024-04-23
1020Brazil2024-04-23
1021Germany2024-04-22
1022Canada2024-04-02
1023United Kingdom2024-04-25
1024India2024-03-31
1025Argentina2024-04-01
1026Australia2024-04-14
1027Brazil2024-04-09
1028France2024-04-12
1029Canada2024-04-24
1030Canada2024-04-11
1031Japan2024-04-19
1032India2024-04-13
1033France2024-03-31
1034Australia2024-04-19
1035Canada2024-03-27
1036France2024-04-09
1037United Kingdom2024-03-29
1038Brazil2024-04-17
1039Germany2024-03-30
1040United Kingdom2024-04-15
1041Russia2024-04-23
1042Argentina2024-04-19
1043Italy2024-04-05
1044Brazil2024-04-22
1045Canada2024-04-24
1046France2024-04-06
1047Japan2024-03-31
1048Russia2024-04-19
1049India2024-04-02

On-Demand Data

NameIdCountryDate
Darci H Briddick1000India2024-04-17
Chavez O Nestle1001Italy2024-04-23
Ricardo V Stenseth1002United Kingdom2024-03-29
Cody I Saylors1003France2024-04-04
Jefferson R Stenseth1004Australia2024-04-07
Greenwood Y Slusarski1005Italy2024-04-17
Aruna F Nicka1006Spain2024-04-25
Tony J Butt1007India2024-04-16
Munro C Darakjy1008Canada2024-04-19
Ashley M Saylors1009Canada2024-04-02
Arvin F Inouye1010Canada2024-04-07
Smith B Rulapaugh1011France2024-04-18
Adams F Garufi1012Russia2024-04-14
Ivar C Albares1013Russia2024-04-22
Tony A Bolognia1014France2024-04-15
Sinclair X Wieser1015India2024-04-12
Kaitlin I Campain1016Russia2024-04-19
Mujtaba A Kolmetz1017Russia2024-04-04
James D Poquette1018Italy2024-04-05
Darci W Tollner1019Russia2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson F MarrierFranceBernardo Dominic UNQUALIFIED
Alejandro I AmigonUnited KingdomOnyama Limba UNQUALIFIED
Jennifer L DilliardBrazilStephen Shaw NEGOTIATION
Aika N MarrierCanadaAsiya Javayant PROPOSAL
Aditya U IturbideIndiaAnna Fali QUALIFIED
Jefferson W TollnerIndiaIoni Bowcher NEGOTIATION
Ivar Z BowleySpainXuxue Feng UNQUALIFIED
Faith I AmigonAustraliaAsiya Javayant QUALIFIED
Wickens T GarufiGermanyBernardo Dominic PROPOSAL
Nicolas S BowleyItalyAsiya Javayant RENEWAL
Mujtaba R PerinCanadaXuxue Feng NEGOTIATION
Nicolas G WaycottJapanElwin Sharvill PROPOSAL
Tony Q BologniaUnited KingdomIoni Bowcher NEW
Munro R AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Julie K ChuiCanadaStephen Shaw RENEWAL
Ivar F CaudyArgentinaAmy Elsner RENEWAL
Jennifer J RimGermanyBernardo Dominic NEW
Rodrigues Q DarakjyItalyXuxue Feng PROPOSAL
Kaitlin V InouyeCanadaXuxue Feng QUALIFIED
Julie Q FerenczIndiaIoni Bowcher NEW
Murillo G PaprockiRussiaAmy Elsner PROPOSAL
Maria G ChuiArgentinaIvan Magalhaes NEW
Kadeem O KuskoGermanyIoni Bowcher PROPOSAL
Morrow I NickaArgentinaAnna Fali NEW
Silvio Z SlusarskiGermanyAnna Fali RENEWAL
Emily R SergiCanadaAsiya Javayant UNQUALIFIED
Kaitlin Q MacleadBrazilBernardo Dominic QUALIFIED
Silvio P RulapaughItalyOnyama Limba QUALIFIED
Johnson V MaletSpainOnyama Limba PROPOSAL
Francesco C MacleadCanadaBernardo Dominic NEW
Isabel R RoysterRussiaIoni Bowcher PROPOSAL
Kadeem E DoeItalyElwin Sharvill PROPOSAL
Ricardo J FerenczSpainAmy Elsner NEGOTIATION
Jennifer W CaudyBrazilIoni Bowcher QUALIFIED
Jefferson H WieserIndiaXuxue Feng NEGOTIATION
Maisha T WhobreyIndiaStephen Shaw NEW
Maisha H FollerUnited KingdomElwin Sharvill NEW
Ivar S BriddickJapanIvan Magalhaes NEW
Cody M KolmetzJapanElwin Sharvill NEGOTIATION
Johnson T PaprockiSpainOnyama 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>