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
Wickens I AmigonItalyAnna Fali QUALIFIED
Leja C KuskoArgentinaBernardo Dominic QUALIFIED
Darci M OstroskyBrazilOnyama Limba UNQUALIFIED
Leon R StockhamCanadaAnna Fali NEGOTIATION
Johnson U WieserFranceAsiya Javayant PROPOSAL
Octavia P ChuiCanadaAmy Elsner UNQUALIFIED
Ivar I MaletIndiaAmy Elsner PROPOSAL
Silvio V RimIndiaAsiya Javayant PROPOSAL
Aika V DilliardGermanyIoni Bowcher PROPOSAL
Cody E FigeroaBrazilOnyama Limba UNQUALIFIED
Costa Y MaletIndiaBernardo Dominic NEGOTIATION
Deepesh T FerenczJapanBernardo Dominic QUALIFIED
Jones O GillianGermanyIvan Magalhaes PROPOSAL
Deepesh R GlickGermanyOnyama Limba NEW
Johnson I SaylorsJapanAnna Fali RENEWAL
Murillo C BologniaIndiaStephen Shaw UNQUALIFIED
Emily D BowleyIndiaIvan Magalhaes UNQUALIFIED
David Y PoquetteAustraliaStephen Shaw UNQUALIFIED
Wickens X AmigonGermanyIvan Magalhaes UNQUALIFIED
Ricardo B KolmetzCanadaIvan Magalhaes PROPOSAL
Johnson Y ButtArgentinaStephen Shaw NEGOTIATION
Wickens Y SergiAustraliaStephen Shaw PROPOSAL
Morrow A RimArgentinaAnna Fali QUALIFIED
Ricardo N MaletBrazilAnna Fali UNQUALIFIED
Kadeem J GlickJapanStephen Shaw PROPOSAL
Faith Y TollnerFranceOnyama Limba QUALIFIED
Nicolas Q AmigonArgentinaElwin Sharvill NEW
Octavia Y SaylorsIndiaAmy Elsner PROPOSAL
Faith S FollerRussiaAnna Fali QUALIFIED
Stacey L MacleadJapanBernardo Dominic RENEWAL
Maria F GlickRussiaBernardo Dominic UNQUALIFIED
Mujtaba J GlickAustraliaXuxue Feng NEW
Sinclair D FlosiUnited KingdomXuxue Feng RENEWAL
Chavez W ButtItalyElwin Sharvill NEGOTIATION
Maisha K GlickItalyXuxue Feng QUALIFIED
Faith Q MaletUnited KingdomBernardo Dominic UNQUALIFIED
Leja L DoeGermanyBernardo Dominic UNQUALIFIED
Clifford Z OldroydUnited KingdomIoni Bowcher NEGOTIATION
Clifford O SaylorsJapanIoni Bowcher NEW
James D DilliardGermanyBernardo Dominic PROPOSAL
Aditya M GlickAustraliaXuxue Feng RENEWAL
Alejandro C RulapaughArgentinaBernardo Dominic QUALIFIED
Morrow J StensethJapanBernardo Dominic UNQUALIFIED
Alejandro F StockhamItalyAsiya Javayant RENEWAL
Maisha H SaylorsRussiaAmy Elsner NEGOTIATION
Ivar Y GauchoRussiaAsiya Javayant PROPOSAL
Ivar M StensethFranceAnna Fali NEGOTIATION
Kaitlin E ChuiCanadaIoni Bowcher NEGOTIATION
Adams Y WaycottRussiaAsiya Javayant UNQUALIFIED
Juan A GillianSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois L MorascaItalyAnna Fali PROPOSAL
Kadeem Z StensethFranceOnyama Limba NEGOTIATION
Ashley O MacleadRussiaXuxue Feng UNQUALIFIED
Octavia W WhobreyItalyIoni Bowcher QUALIFIED
Adams S SchemmerArgentinaAnna Fali QUALIFIED
Munro R DarakjyAustraliaOnyama Limba NEGOTIATION
Izzy S FollerJapanAsiya Javayant NEW
Aika E NickaGermanyElwin Sharvill QUALIFIED
Isabel U CaudyItalyIoni Bowcher NEW
Jeanfrancois T ChuiIndiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Y StockhamUnited Kingdom2024-04-17Buckley Miller Wright NEGOTIATION1Asiya Javayant
1001Alejandro C DoeJapan2024-04-23Chanay, Jeffrey A Esq RENEWAL5Bernardo Dominic
1002Alejandro H VocelkaFrance2024-04-06Feiner Bros UNQUALIFIED87Anna Fali
1003Maisha F ShinkoCanada2024-04-13Rangoni Of Florence NEW81Xuxue Feng
1004Alejandro L GauchoJapan2024-04-20Feiner Bros PROPOSAL68Onyama Limba
1005Johnson A SchemmerBrazil2024-04-08Buckley Miller Wright NEW55Ivan Magalhaes
1006Adams P GauchoFrance2024-04-28Chapman, Ross E Esq RENEWAL26Xuxue Feng
1007Mujtaba W RutaRussia2024-05-01Truhlar And Truhlar Attys UNQUALIFIED2Anna Fali
1008Jones Y DarakjyItaly2024-04-22Rangoni Of Florence RENEWAL82Ivan Magalhaes
1009Ricardo Q GillianFrance2024-04-24Chemel, James L Cpa RENEWAL25Xuxue Feng
1010Johnson B WhobreyBrazil2024-04-08Feltz Printing Service QUALIFIED82Stephen Shaw
1011Claire A SaylorsGermany2024-04-29Dorl, James J Esq QUALIFIED26Stephen Shaw
1012Francesco L ShinkoGermany2024-04-09Benton, John B Jr QUALIFIED59Ioni Bowcher
1013Ivar Q WhobreyCanada2024-04-02King, Christopher A Esq RENEWAL6Bernardo Dominic
1014Julie G MarrierIndia2024-05-01Benton, John B Jr QUALIFIED77Bernardo Dominic
1015Kaitlin V VenereIndia2024-04-09Truhlar And Truhlar Attys NEGOTIATION14Elwin Sharvill
1016Salvatore I CaudyCanada2024-04-19Benton, John B Jr QUALIFIED50Amy Elsner
1017Izzy X KolmetzGermany2024-04-02Dorl, James J Esq QUALIFIED96Asiya Javayant
1018David P FigeroaCanada2024-04-15Dorl, James J Esq NEW78Asiya Javayant
1019Salvatore J OstroskyCanada2024-04-16Commercial Press UNQUALIFIED10Asiya Javayant
1020Aika G SlusarskiItaly2024-04-24Dorl, James J Esq NEGOTIATION91Elwin Sharvill
1021Alejandro I MaletAustralia2024-04-25Benton, John B Jr QUALIFIED61Onyama Limba
1022Cody P AlbaresArgentina2024-04-17Feiner Bros RENEWAL30Ivan Magalhaes
1023Maisha I MacleadIndia2024-04-26Benton, John B Jr PROPOSAL58Anna Fali
1024Adams K RoysterAustralia2024-04-18King, Christopher A Esq QUALIFIED22Stephen Shaw
1025Misaki O PerinGermany2024-04-18Commercial Press UNQUALIFIED78Elwin Sharvill
1026Aruna Z NickaUnited Kingdom2024-04-03Benton, John B Jr NEW63Amy Elsner
1027Mujtaba U SaylorsJapan2024-04-29Truhlar And Truhlar Attys NEW91Xuxue Feng
1028Silvio L ButtArgentina2024-04-22Printing Dimensions UNQUALIFIED28Asiya Javayant
1029Francesco Y MarrierGermany2024-04-24Rousseaux, Michael Esq PROPOSAL35Ivan Magalhaes
1030Maisha N VocelkaFrance2024-04-12Rousseaux, Michael Esq PROPOSAL20Anna Fali
1031Jones C FigeroaIndia2024-04-06Morlong Associates QUALIFIED74Ioni Bowcher
1032Jeanfrancois T GlickUnited Kingdom2024-04-28Printing Dimensions UNQUALIFIED87Ioni Bowcher
1033Izzy Z FerenczFrance2024-04-28Rangoni Of Florence NEW23Asiya Javayant
1034Munro X GarufiJapan2024-04-16King, Christopher A Esq NEW66Bernardo Dominic
1035Juan L KolmetzIndia2024-04-17Truhlar And Truhlar Attys QUALIFIED5Stephen Shaw
1036Murillo C BologniaAustralia2024-04-04Dorl, James J Esq PROPOSAL72Amy Elsner
1037Jeanfrancois T KuskoFrance2024-04-17Feiner Bros QUALIFIED8Stephen Shaw
1038Julie E WaycottArgentina2024-04-11Buckley Miller Wright PROPOSAL72Bernardo Dominic
1039Darci J StensethUnited Kingdom2024-04-02Rangoni Of Florence NEW42Stephen Shaw
1040Sinclair C OstroskyItaly2024-04-21Benton, John B Jr QUALIFIED3Ivan Magalhaes
1041Ivar N NickaIndia2024-04-25Commercial Press PROPOSAL24Asiya Javayant
1042Costa U GillianJapan2024-04-04Benton, John B Jr RENEWAL67Elwin Sharvill
1043Misaki Q KolmetzUnited Kingdom2024-04-27Feiner Bros PROPOSAL82Elwin Sharvill
1044Claire V ShinkoBrazil2024-04-04Commercial Press PROPOSAL16Ivan Magalhaes
1045Jefferson O InouyeAustralia2024-04-27Chemel, James L Cpa NEGOTIATION15Stephen Shaw
1046Adams E DilliardUnited Kingdom2024-04-27Dorl, James J Esq UNQUALIFIED4Asiya Javayant
1047David I KuskoSpain2024-04-08Chapman, Ross E Esq NEW27Asiya Javayant
1048Kadeem H OstroskyUnited Kingdom2024-04-16Feltz Printing Service NEW70Bernardo Dominic
1049Claire T PaprockiFrance2024-04-10Commercial Press PROPOSAL75Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Sinclair B DarakjyFranceBernardo Dominic RENEWAL
Salvatore Y CampainArgentinaXuxue Feng NEW
Wickens A BowleyJapanStephen Shaw NEGOTIATION
Ivar W CaldareraBrazilOnyama Limba UNQUALIFIED
Antonio K OstroskyJapanIoni Bowcher PROPOSAL
Deepesh T NickaJapanIoni Bowcher PROPOSAL
Adams N DilliardAustraliaAsiya Javayant QUALIFIED
Faith E KuskoArgentinaAsiya Javayant QUALIFIED
Alejandro C StockhamJapanAmy Elsner RENEWAL
Ricardo K SlusarskiCanadaIoni Bowcher NEGOTIATION
Murillo U CaldareraAustraliaElwin Sharvill PROPOSAL
Claire G MaletUnited KingdomElwin Sharvill QUALIFIED
Deepesh P GauchoUnited KingdomAsiya Javayant RENEWAL
Misaki A PaprockiCanadaAnna Fali NEW
Maria F BowleyGermanyAmy Elsner UNQUALIFIED
Faith J WaycottBrazilAnna Fali NEGOTIATION
Arvin X BowleyArgentinaBernardo Dominic QUALIFIED
Adams G ButtItalyAsiya Javayant UNQUALIFIED
Cody D SaylorsFranceElwin Sharvill UNQUALIFIED
Aruna K SergiUnited KingdomIvan Magalhaes UNQUALIFIED
Darci B SergiAustraliaBernardo Dominic QUALIFIED
Sinclair P FigeroaRussiaOnyama Limba RENEWAL
Deepesh M GarufiFranceElwin Sharvill RENEWAL
Jefferson V RulapaughIndiaIoni Bowcher NEW
Faith Q IturbideIndiaStephen Shaw RENEWAL
Ashley Z NickaUnited KingdomAsiya Javayant NEW
Maria G GillianJapanIvan Magalhaes PROPOSAL
Maria M FollerArgentinaAsiya Javayant RENEWAL
Ivar T GauchoAustraliaElwin Sharvill NEGOTIATION
Smith G IturbideItalyElwin Sharvill RENEWAL
Munro Q PaprockiAustraliaIvan Magalhaes NEGOTIATION
Leon D PaprockiFranceXuxue Feng UNQUALIFIED
Jefferson Z SchemmerIndiaAsiya Javayant UNQUALIFIED
Misaki C ShinkoIndiaAsiya Javayant NEGOTIATION
Nicolas W SchemmerItalyElwin Sharvill UNQUALIFIED
Greenwood E GauchoFranceAsiya Javayant PROPOSAL
Arvin D RulapaughAustraliaIoni Bowcher UNQUALIFIED
Kaitlin C DoeGermanyAsiya Javayant QUALIFIED
Misaki R GarufiAustraliaStephen Shaw NEW
Maria C OstroskyFranceElwin Sharvill QUALIFIED
Jennifer A StensethBrazilAnna Fali UNQUALIFIED
Misaki J PerinFranceElwin Sharvill NEGOTIATION
Maisha N OldroydGermanyIvan Magalhaes UNQUALIFIED
Tony O TollnerFranceElwin Sharvill NEGOTIATION
Faith P OstroskyAustraliaElwin Sharvill NEW
Antonio P BologniaCanadaAnna Fali NEW
Murillo G AlbaresItalyIoni Bowcher NEW
David P OldroydFranceOnyama Limba RENEWAL
Kaitlin E VenereCanadaIoni Bowcher UNQUALIFIED
Faith O ShinkoRussiaAmy Elsner NEW
Frozen Columns
Name
Misaki R Kolmetz
Kadeem L Kusko
Clifford V Glick
James A Ferencz
Rodrigues O Maclead
Jeanfrancois K Figeroa
Tony D Glick
Emily F Doe
Emily M Oldroyd
Rodrigues R Darakjy
Emily E Gaucho
Ashley T Glick
Alejandro R Vocelka
Morrow E Maclead
Darci S Schemmer
Claire M Bowley
Chavez O Whobrey
Clifford T Rim
Isabel E Marrier
Ashley G Ruta
Morrow D Morasca
Murillo Y Vocelka
Aditya B Glick
Claire Y Nestle
Nicolas T Amigon
Mayumi C Stockham
Salvatore N Nicka
Leja K Malet
Arvin F Rulapaugh
Wickens A Ruta
Isabel A Kusko
Julie Q Kusko
Sinclair B Kusko
Ivar G Butt
Ricardo Q Kolmetz
James V Flosi
Greenwood K Tollner
Greenwood R Ruta
Antonio T Foller
Julie B Iturbide
Kadeem Q Figeroa
Greenwood J Malet
Alejandro Q Gaucho
Alejandro Q Maclead
Cody L Butt
Alejandro K Kusko
Aditya F Glick
Francesco C Campain
Misaki K Ruta
Nicolas C Albares
IdCountryDate
1000Italy2024-04-12
1001Italy2024-04-18
1002Germany2024-04-07
1003Russia2024-04-30
1004Australia2024-04-12
1005Canada2024-04-19
1006Brazil2024-04-22
1007Canada2024-04-25
1008Canada2024-04-08
1009Brazil2024-04-27
1010Australia2024-04-08
1011Japan2024-04-07
1012France2024-04-06
1013Japan2024-04-19
1014Spain2024-04-05
1015United Kingdom2024-05-01
1016Canada2024-04-28
1017Japan2024-04-07
1018Canada2024-04-04
1019Japan2024-04-20
1020India2024-04-12
1021France2024-05-01
1022France2024-04-21
1023Canada2024-04-08
1024Canada2024-04-18
1025Canada2024-04-03
1026United Kingdom2024-04-30
1027Japan2024-04-29
1028Brazil2024-04-18
1029Argentina2024-04-04
1030Russia2024-04-05
1031United Kingdom2024-04-20
1032Australia2024-04-17
1033Russia2024-04-24
1034India2024-04-27
1035Russia2024-04-23
1036Canada2024-04-03
1037Russia2024-04-09
1038Brazil2024-04-08
1039Brazil2024-04-26
1040Italy2024-04-04
1041Australia2024-04-29
1042India2024-04-25
1043Japan2024-04-30
1044Germany2024-04-07
1045Germany2024-04-04
1046Australia2024-04-26
1047Spain2024-04-08
1048Brazil2024-04-18
1049United Kingdom2024-04-11

On-Demand Data

NameIdCountryDate
Izzy U Rulapaugh1000Brazil2024-04-20
Maria I Paprocki1001Spain2024-04-17
Mayumi R Perin1002Canada2024-04-13
Jennifer Q Waycott1003Argentina2024-04-16
Izzy X Doe1004Australia2024-04-21
Claire O Stenseth1005Spain2024-04-24
Ivar W Whobrey1006Italy2024-04-29
David F Schemmer1007Spain2024-04-20
Smith T Rulapaugh1008Japan2024-04-27
Jones X Ostrosky1009Germany2024-04-29
Isabel H Royster1010Australia2024-04-18
Aika E Rulapaugh1011Brazil2024-04-08
Isabel F Morasca1012Russia2024-04-20
Ashley Z Bowley1013Spain2024-04-12
Costa V Inouye1014France2024-04-09
Costa O Bowley1015Germany2024-04-20
Arvin A Caldarera1016Argentina2024-04-06
Costa T Gillian1017United Kingdom2024-04-09
Claire Q Gaucho1018France2024-04-12
Misaki F Slusarski1019Germany2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo B PoquetteSpainAsiya Javayant NEGOTIATION
Silvio K TollnerArgentinaOnyama Limba PROPOSAL
Misaki O MaletCanadaIoni Bowcher NEW
David N GlickCanadaIvan Magalhaes UNQUALIFIED
Isabel O CaudyBrazilOnyama Limba NEW
Cody N PoquetteUnited KingdomAnna Fali UNQUALIFIED
Kaitlin H InouyeArgentinaIvan Magalhaes PROPOSAL
Chavez M BriddickCanadaStephen Shaw NEGOTIATION
Salvatore H MaletAustraliaIvan Magalhaes UNQUALIFIED
Nicolas W DarakjyCanadaXuxue Feng PROPOSAL
Aruna L BologniaItalyIoni Bowcher QUALIFIED
Claire U PaprockiFranceStephen Shaw RENEWAL
Maria V AmigonArgentinaStephen Shaw RENEWAL
Tony T VocelkaAustraliaIvan Magalhaes RENEWAL
Jones Y AmigonItalyAmy Elsner QUALIFIED
Francesco G ShinkoSpainElwin Sharvill NEW
Morrow H ButtCanadaBernardo Dominic QUALIFIED
Adams D SlusarskiCanadaIvan Magalhaes NEW
Jones E CampainRussiaXuxue Feng QUALIFIED
Antonio U VenereUnited KingdomIoni Bowcher QUALIFIED
Rodrigues L SergiAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba X StensethSpainAnna Fali UNQUALIFIED
Ivar U KuskoGermanyElwin Sharvill QUALIFIED
Aruna M GillianJapanOnyama Limba NEGOTIATION
Cody J DoeRussiaAnna Fali PROPOSAL
Clifford I FerenczAustraliaIvan Magalhaes UNQUALIFIED
Ashley L VenereRussiaAsiya Javayant UNQUALIFIED
Izzy T InouyeAustraliaAnna Fali NEGOTIATION
Claire W StensethFranceOnyama Limba PROPOSAL
Faith H BowleyRussiaElwin Sharvill PROPOSAL
Faith I SaylorsFranceXuxue Feng NEGOTIATION
Aruna Z FollerSpainStephen Shaw NEW
Jeanfrancois S GarufiIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois C FigeroaBrazilIoni Bowcher NEW
Jones K ShinkoArgentinaOnyama Limba RENEWAL
Isabel M FlosiCanadaBernardo Dominic PROPOSAL
Mayumi D GlickRussiaIvan Magalhaes UNQUALIFIED
Maisha K KolmetzItalyAsiya Javayant QUALIFIED
Jennifer H OstroskyAustraliaOnyama Limba PROPOSAL
Octavia U VenereRussiaAsiya Javayant 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>