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
Smith G FigeroaAustraliaStephen Shaw PROPOSAL
Kaitlin P FigeroaSpainAsiya Javayant UNQUALIFIED
Kaitlin P MorascaAustraliaIvan Magalhaes QUALIFIED
Isabel Q SaylorsFranceXuxue Feng RENEWAL
Wickens O NickaBrazilBernardo Dominic NEW
Juan E RimSpainElwin Sharvill QUALIFIED
Alejandro C CaldareraAustraliaStephen Shaw NEW
Murillo N RimGermanyElwin Sharvill PROPOSAL
Smith D OldroydArgentinaAmy Elsner NEGOTIATION
Greenwood Q PaprockiGermanyOnyama Limba NEGOTIATION
Sinclair H WhobreyIndiaIoni Bowcher PROPOSAL
Aruna F FollerSpainXuxue Feng QUALIFIED
James Q GauchoJapanIvan Magalhaes NEGOTIATION
Wickens S MaletSpainAmy Elsner QUALIFIED
Jennifer T RulapaughBrazilAmy Elsner RENEWAL
Smith Q CaldareraBrazilAmy Elsner NEGOTIATION
Claire V ShinkoItalyOnyama Limba RENEWAL
Aika R CaudyFranceElwin Sharvill NEGOTIATION
Darci H PoquetteIndiaAmy Elsner UNQUALIFIED
James B StockhamRussiaIvan Magalhaes UNQUALIFIED
Jones N DoeJapanAmy Elsner PROPOSAL
Murillo X OstroskyArgentinaBernardo Dominic UNQUALIFIED
Maisha L PoquetteIndiaAsiya Javayant UNQUALIFIED
Aditya K KuskoArgentinaBernardo Dominic NEW
Antonio Z BriddickAustraliaStephen Shaw UNQUALIFIED
Juan R MarrierUnited KingdomIoni Bowcher QUALIFIED
Johnson K AlbaresCanadaBernardo Dominic NEGOTIATION
Misaki W BowleyRussiaIvan Magalhaes QUALIFIED
Misaki X VocelkaSpainStephen Shaw NEW
Octavia R SlusarskiCanadaElwin Sharvill QUALIFIED
Costa Z WhobreyAustraliaXuxue Feng NEW
Francesco S WieserRussiaIoni Bowcher UNQUALIFIED
Nicolas Z DoeSpainAnna Fali UNQUALIFIED
Clifford E PoquetteJapanAsiya Javayant UNQUALIFIED
Claire L BowleyUnited KingdomAsiya Javayant PROPOSAL
Claire T SlusarskiFranceOnyama Limba NEGOTIATION
Mayumi Y MaletFranceAmy Elsner UNQUALIFIED
Ashley W CampainGermanyOnyama Limba PROPOSAL
Salvatore D FerenczBrazilXuxue Feng QUALIFIED
Aditya F FerenczBrazilXuxue Feng UNQUALIFIED
Arvin V MaletBrazilAnna Fali QUALIFIED
Adams J BologniaItalyStephen Shaw NEGOTIATION
Jennifer Y CaudyItalyOnyama Limba QUALIFIED
Munro U MarrierItalyOnyama Limba RENEWAL
Arvin V GlickSpainBernardo Dominic PROPOSAL
Clifford B FerenczJapanIoni Bowcher UNQUALIFIED
Rodrigues A FerenczGermanyAsiya Javayant QUALIFIED
Kaitlin Y StensethCanadaIvan Magalhaes QUALIFIED
Claire E CaudyCanadaBernardo Dominic QUALIFIED
Alejandro A SchemmerItalyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel G ButtUnited KingdomAmy Elsner NEW
Leon F MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Misaki W OstroskyUnited KingdomStephen Shaw NEGOTIATION
Ivar M FerenczFranceAmy Elsner NEGOTIATION
Misaki V OstroskyJapanAsiya Javayant NEGOTIATION
Jones G SaylorsAustraliaOnyama Limba UNQUALIFIED
Darci P PerinItalyIvan Magalhaes NEW
Ricardo W BriddickArgentinaAnna Fali PROPOSAL
Maria O TollnerJapanIoni Bowcher UNQUALIFIED
Julie S MacleadArgentinaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki T ShinkoFrance2024-03-16Commercial Press QUALIFIED66Anna Fali
1001Juan D OstroskyBrazil2024-03-23Feiner Bros UNQUALIFIED83Ioni Bowcher
1002Silvio F PoquetteGermany2024-03-28Truhlar And Truhlar Attys RENEWAL94Bernardo Dominic
1003Leon D NestleCanada2024-02-29Rangoni Of Florence RENEWAL54Ioni Bowcher
1004Izzy M AmigonSpain2024-03-10Chanay, Jeffrey A Esq UNQUALIFIED87Amy Elsner
1005Jefferson N BriddickSpain2024-03-13King, Christopher A Esq UNQUALIFIED8Stephen Shaw
1006Munro I CaldareraRussia2024-03-19Benton, John B Jr NEW76Amy Elsner
1007Kaitlin A MorascaAustralia2024-03-19Buckley Miller Wright NEW65Ioni Bowcher
1008Tony B BriddickCanada2024-03-05Printing Dimensions PROPOSAL23Onyama Limba
1009Jefferson F InouyeItaly2024-03-23Feltz Printing Service QUALIFIED99Bernardo Dominic
1010Jennifer A StensethJapan2024-03-12Chemel, James L Cpa QUALIFIED43Elwin Sharvill
1011Izzy D DilliardGermany2024-03-15Commercial Press QUALIFIED22Xuxue Feng
1012Sinclair P InouyeCanada2024-03-09Printing Dimensions RENEWAL89Onyama Limba
1013Claire F WaycottAustralia2024-03-11Chemel, James L Cpa NEGOTIATION24Asiya Javayant
1014Salvatore Q RutaRussia2024-03-10Feiner Bros NEGOTIATION64Amy Elsner
1015Greenwood V StensethIndia2024-03-22Morlong Associates NEGOTIATION1Stephen Shaw
1016James D SergiFrance2024-02-28Buckley Miller Wright UNQUALIFIED83Bernardo Dominic
1017Octavia D ShinkoIndia2024-03-01Truhlar And Truhlar Attys NEGOTIATION42Stephen Shaw
1018Tony K BriddickSpain2024-03-01Feiner Bros NEGOTIATION51Stephen Shaw
1019Rodrigues X GarufiCanada2024-03-21Dorl, James J Esq RENEWAL96Xuxue Feng
1020Darci B NickaJapan2024-03-02Chanay, Jeffrey A Esq QUALIFIED78Stephen Shaw
1021Maisha W RulapaughCanada2024-03-04Commercial Press RENEWAL43Xuxue Feng
1022Emily H CaldareraGermany2024-02-29Commercial Press PROPOSAL50Amy Elsner
1023Leon P MorascaAustralia2024-02-28Buckley Miller Wright QUALIFIED54Asiya Javayant
1024Nicolas F InouyeGermany2024-03-11Feiner Bros NEGOTIATION52Xuxue Feng
1025Octavia L RimBrazil2024-02-29Chemel, James L Cpa UNQUALIFIED92Anna Fali
1026Aika M OldroydAustralia2024-03-02Feiner Bros PROPOSAL70Amy Elsner
1027Adams D NickaCanada2024-03-06Buckley Miller Wright QUALIFIED75Stephen Shaw
1028Darci F NickaJapan2024-03-24Rousseaux, Michael Esq UNQUALIFIED63Stephen Shaw
1029Wickens E FollerJapan2024-03-16King, Christopher A Esq UNQUALIFIED22Asiya Javayant
1030Antonio V OldroydAustralia2024-03-03Commercial Press NEGOTIATION62Xuxue Feng
1031Tony Z PaprockiGermany2024-03-09Buckley Miller Wright NEGOTIATION80Anna Fali
1032Sinclair I BowleyGermany2024-03-09King, Christopher A Esq UNQUALIFIED40Bernardo Dominic
1033Claire O ShinkoArgentina2024-03-20Chanay, Jeffrey A Esq NEGOTIATION61Bernardo Dominic
1034Juan Y WaycottJapan2024-03-14Benton, John B Jr NEGOTIATION43Asiya Javayant
1035Maisha W SergiItaly2024-03-23Rousseaux, Michael Esq RENEWAL74Amy Elsner
1036Darci K OldroydGermany2024-03-17King, Christopher A Esq NEGOTIATION46Xuxue Feng
1037Julie U NestleItaly2024-03-05King, Christopher A Esq UNQUALIFIED77Ivan Magalhaes
1038Aditya J OstroskyJapan2024-03-22King, Christopher A Esq UNQUALIFIED70Ivan Magalhaes
1039Faith Z VocelkaRussia2024-03-03Printing Dimensions PROPOSAL69Bernardo Dominic
1040Julie I RutaAustralia2024-03-20Chapman, Ross E Esq NEW24Elwin Sharvill
1041Smith M DilliardIndia2024-03-14Chapman, Ross E Esq QUALIFIED59Amy Elsner
1042Greenwood F GillianCanada2024-03-17Feiner Bros UNQUALIFIED46Elwin Sharvill
1043Antonio W RoysterGermany2024-03-01Rangoni Of Florence QUALIFIED30Amy Elsner
1044Isabel J RoysterJapan2024-03-04Dorl, James J Esq RENEWAL90Elwin Sharvill
1045Maisha U GauchoAustralia2024-03-17Rousseaux, Michael Esq RENEWAL56Xuxue Feng
1046Misaki X SchemmerGermany2024-02-29Chapman, Ross E Esq PROPOSAL66Stephen Shaw
1047Alejandro D PaprockiUnited Kingdom2024-03-14Chapman, Ross E Esq PROPOSAL19Xuxue Feng
1048Mujtaba Q VocelkaAustralia2024-03-05Commercial Press UNQUALIFIED77Ioni Bowcher
1049Adams H BologniaArgentina2024-03-22Benton, John B Jr PROPOSAL68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Silvio U OldroydJapanBernardo Dominic UNQUALIFIED
Rodrigues Q TollnerAustraliaIvan Magalhaes UNQUALIFIED
Antonio L NestleIndiaIvan Magalhaes QUALIFIED
Chavez E TollnerAustraliaAmy Elsner NEGOTIATION
Faith S WaycottArgentinaAmy Elsner QUALIFIED
Ricardo Y VenereItalyStephen Shaw NEW
Mayumi W CaldareraItalyElwin Sharvill PROPOSAL
Mujtaba P WaycottItalyBernardo Dominic UNQUALIFIED
Nicolas B BologniaFranceAmy Elsner RENEWAL
Aika X TollnerJapanIoni Bowcher NEW
Leon W BologniaSpainAmy Elsner QUALIFIED
Arvin G BowleyBrazilAnna Fali QUALIFIED
Leja I KolmetzFranceAnna Fali NEW
Emily A IturbideFranceElwin Sharvill NEW
Ricardo Z ChuiUnited KingdomOnyama Limba QUALIFIED
Silvio P CaudyJapanAnna Fali NEGOTIATION
Ivar D WhobreyBrazilIvan Magalhaes RENEWAL
Jennifer X MaletAustraliaOnyama Limba PROPOSAL
Octavia R RutaSpainAsiya Javayant NEGOTIATION
Mujtaba Q FigeroaSpainElwin Sharvill QUALIFIED
Nicolas V StockhamFranceStephen Shaw QUALIFIED
Morrow F ShinkoArgentinaIvan Magalhaes NEGOTIATION
Smith Z BriddickArgentinaAnna Fali QUALIFIED
David S FigeroaJapanElwin Sharvill PROPOSAL
Rodrigues D IturbideSpainAmy Elsner QUALIFIED
Misaki U AmigonCanadaAnna Fali PROPOSAL
Julie H InouyeCanadaAnna Fali NEGOTIATION
Misaki H NestleSpainElwin Sharvill NEW
Smith Z FlosiArgentinaOnyama Limba PROPOSAL
Jones I FigeroaCanadaAnna Fali NEGOTIATION
Faith I StensethIndiaElwin Sharvill QUALIFIED
Rodrigues A PerinBrazilBernardo Dominic QUALIFIED
Aditya K KuskoAustraliaStephen Shaw UNQUALIFIED
Stacey Q RulapaughIndiaAmy Elsner PROPOSAL
Aika R NickaArgentinaOnyama Limba PROPOSAL
Misaki C GauchoUnited KingdomStephen Shaw UNQUALIFIED
Maria H DilliardAustraliaAnna Fali UNQUALIFIED
Kadeem A AlbaresGermanyStephen Shaw NEW
Arvin A SchemmerUnited KingdomXuxue Feng NEW
Misaki C NickaIndiaAmy Elsner NEW
Emily B AlbaresSpainIoni Bowcher UNQUALIFIED
Misaki A RimArgentinaOnyama Limba PROPOSAL
Nicolas Q BowleyUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois B MaletAustraliaXuxue Feng NEGOTIATION
Greenwood U FigeroaItalyElwin Sharvill RENEWAL
Ricardo X DoeAustraliaIoni Bowcher RENEWAL
Ashley J MarrierAustraliaAmy Elsner NEW
Aditya R BowleyRussiaStephen Shaw RENEWAL
Sinclair Z ChuiGermanyStephen Shaw NEGOTIATION
Jennifer N TollnerArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Nicolas Y Stenseth
Nicolas Z Ferencz
Misaki N Nestle
Greenwood O Caldarera
Nicolas Z Briddick
Maisha W Poquette
Smith Q Inouye
Tony I Darakjy
Ricardo R Schemmer
Morrow E Morasca
Faith C Waycott
Adams L Venere
Stacey V Paprocki
Cody U Ferencz
David S Ruta
Tony Z Morasca
Morrow V Perin
Claire P Ferencz
Misaki F Nicka
Johnson A Schemmer
Ricardo I Ferencz
Ashley G Stockham
Octavia X Briddick
Nicolas G Vocelka
Misaki O Nestle
Greenwood Q Briddick
Aika Z Kolmetz
Murillo P Rulapaugh
Clifford U Paprocki
Salvatore E Chui
Smith Q Shinko
Izzy I Malet
Maria L Slusarski
Costa H Amigon
Murillo I Darakjy
Darci A Perin
Juan T Ferencz
Silvio F Vocelka
Ashley H Tollner
Claire W Bolognia
Misaki C Shinko
Jefferson D Kusko
Misaki N Garufi
Alejandro B Oldroyd
Julie H Ruta
Cody H Foller
Juan V Rim
Silvio R Rulapaugh
Isabel G Paprocki
Maisha K Albares
IdCountryDate
1000United Kingdom2024-03-07
1001Italy2024-03-16
1002Spain2024-03-04
1003India2024-03-10
1004Brazil2024-03-15
1005Japan2024-03-21
1006Germany2024-03-24
1007Japan2024-03-11
1008Russia2024-03-18
1009Japan2024-03-21
1010Italy2024-03-15
1011United Kingdom2024-03-08
1012Brazil2024-03-10
1013Italy2024-03-16
1014Germany2024-03-25
1015Argentina2024-03-22
1016France2024-03-15
1017France2024-03-10
1018Italy2024-03-03
1019United Kingdom2024-03-02
1020Australia2024-03-23
1021Japan2024-02-28
1022France2024-03-11
1023Argentina2024-03-03
1024India2024-03-25
1025Australia2024-03-11
1026Spain2024-03-07
1027Japan2024-03-11
1028India2024-03-10
1029United Kingdom2024-03-11
1030Australia2024-03-19
1031Japan2024-02-29
1032Italy2024-03-14
1033Germany2024-03-14
1034Argentina2024-03-02
1035Australia2024-03-26
1036Canada2024-03-06
1037Germany2024-03-06
1038India2024-03-03
1039Japan2024-03-07
1040United Kingdom2024-03-05
1041United Kingdom2024-03-26
1042India2024-03-25
1043United Kingdom2024-03-13
1044Germany2024-03-17
1045India2024-03-04
1046Japan2024-03-23
1047Russia2024-03-23
1048Germany2024-03-25
1049Germany2024-03-27

On-Demand Data

NameIdCountryDate
Aika Y Campain1000Russia2024-02-29
Smith P Saylors1001Argentina2024-03-17
Mayumi Z Campain1002United Kingdom2024-03-09
Octavia B Saylors1003Germany2024-03-28
Ivar D Caudy1004Brazil2024-03-02
Arvin S Saylors1005Russia2024-03-22
Juan T Kolmetz1006Russia2024-03-28
Sinclair O Venere1007Russia2024-03-18
Antonio X Whobrey1008Argentina2024-03-18
Jones I Morasca1009Spain2024-03-08
Ricardo Q Rulapaugh1010Australia2024-03-06
Izzy E Venere1011Australia2024-03-20
James E Nicka1012United Kingdom2024-03-14
Munro H Ruta1013India2024-03-28
Nicolas B Ferencz1014Brazil2024-03-04
Silvio U Paprocki1015Australia2024-03-10
Aika Q Bowley1016Italy2024-03-11
Juan W Nestle1017France2024-03-20
Emily B Maclead1018Canada2024-03-07
Leja Y Campain1019Spain2024-03-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson T MorascaAustraliaAnna Fali NEW
Kaitlin I AlbaresItalyIvan Magalhaes PROPOSAL
Faith B SaylorsSpainXuxue Feng UNQUALIFIED
Jefferson X DarakjyIndiaXuxue Feng NEW
Aruna U BowleyArgentinaOnyama Limba QUALIFIED
Maisha N ChuiJapanAmy Elsner NEGOTIATION
Julie E SaylorsJapanStephen Shaw QUALIFIED
David H RoysterBrazilAmy Elsner NEGOTIATION
Smith J DoeBrazilElwin Sharvill QUALIFIED
Kaitlin W GauchoCanadaXuxue Feng RENEWAL
Aditya G VenereRussiaXuxue Feng UNQUALIFIED
Silvio O IturbideJapanElwin Sharvill RENEWAL
Alejandro I VocelkaCanadaStephen Shaw RENEWAL
Aditya O GauchoUnited KingdomAmy Elsner PROPOSAL
Greenwood D RoysterJapanAsiya Javayant RENEWAL
Chavez T AlbaresRussiaBernardo Dominic UNQUALIFIED
Jefferson V VocelkaSpainXuxue Feng NEGOTIATION
Jennifer H SlusarskiFranceAnna Fali QUALIFIED
Aditya W ButtArgentinaXuxue Feng QUALIFIED
Sinclair S AlbaresBrazilBernardo Dominic PROPOSAL
Jones Z CaudyRussiaIvan Magalhaes NEW
Silvio P StensethArgentinaElwin Sharvill QUALIFIED
Munro E PaprockiBrazilElwin Sharvill RENEWAL
Deepesh Q RoysterCanadaElwin Sharvill UNQUALIFIED
Juan Q OstroskyIndiaAnna Fali QUALIFIED
Mayumi U IturbideGermanyIoni Bowcher NEW
Claire C PaprockiJapanAnna Fali NEW
Jennifer Y StockhamFranceAnna Fali UNQUALIFIED
Johnson E PerinAustraliaOnyama Limba RENEWAL
Alejandro O RutaJapanOnyama Limba RENEWAL
Isabel F RulapaughIndiaAmy Elsner UNQUALIFIED
Juan I MacleadAustraliaIvan Magalhaes PROPOSAL
Cody K WaycottBrazilAmy Elsner RENEWAL
Julie U AmigonFranceXuxue Feng NEGOTIATION
Maria C VenereArgentinaStephen Shaw RENEWAL
Misaki A SlusarskiUnited KingdomBernardo Dominic RENEWAL
Adams U TollnerGermanyAmy Elsner NEW
Chavez V BriddickCanadaStephen Shaw NEGOTIATION
Chavez M NickaAustraliaXuxue Feng NEGOTIATION
Aruna A FlosiArgentinaStephen Shaw UNQUALIFIED

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