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
Aika K MorascaJapanAsiya Javayant UNQUALIFIED
Mayumi Z DarakjyJapanOnyama Limba UNQUALIFIED
Jeanfrancois F CaldareraIndiaStephen Shaw RENEWAL
James E ButtJapanXuxue Feng NEW
Antonio U RimJapanIvan Magalhaes NEW
Salvatore A KolmetzIndiaAnna Fali RENEWAL
Smith M TollnerBrazilAsiya Javayant NEGOTIATION
Mayumi H GarufiGermanyIvan Magalhaes PROPOSAL
Munro Q NestleRussiaOnyama Limba RENEWAL
Julie I FollerAustraliaOnyama Limba PROPOSAL
Emily O FlosiItalyBernardo Dominic RENEWAL
Adams R RutaCanadaAsiya Javayant QUALIFIED
Adams X MaletRussiaOnyama Limba PROPOSAL
Greenwood L OldroydCanadaIvan Magalhaes UNQUALIFIED
Tony Z WhobreyAustraliaAsiya Javayant QUALIFIED
Kadeem R StensethGermanyXuxue Feng UNQUALIFIED
Jeanfrancois E BologniaBrazilBernardo Dominic NEW
Aika O ShinkoFranceElwin Sharvill UNQUALIFIED
Sinclair D PaprockiItalyOnyama Limba RENEWAL
Antonio P PoquetteItalyAsiya Javayant NEW
Jeanfrancois G BologniaFranceAnna Fali UNQUALIFIED
Salvatore R DoeCanadaOnyama Limba QUALIFIED
Nicolas H VenereRussiaXuxue Feng QUALIFIED
Ricardo J ShinkoUnited KingdomStephen Shaw NEW
Isabel B MacleadRussiaIvan Magalhaes UNQUALIFIED
Sinclair R GillianBrazilAsiya Javayant UNQUALIFIED
Aditya M SaylorsIndiaElwin Sharvill RENEWAL
Clifford Z GauchoCanadaOnyama Limba NEGOTIATION
Emily Z GauchoCanadaElwin Sharvill PROPOSAL
Murillo L OstroskyUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois Q GarufiSpainAnna Fali QUALIFIED
Cody A OldroydJapanIvan Magalhaes PROPOSAL
Cody J RoysterBrazilOnyama Limba QUALIFIED
Kadeem T WaycottBrazilIoni Bowcher QUALIFIED
Rodrigues B PoquetteFranceOnyama Limba NEW
Julie V RoysterIndiaElwin Sharvill QUALIFIED
Misaki X StensethRussiaElwin Sharvill RENEWAL
Maria J OstroskyArgentinaAsiya Javayant UNQUALIFIED
Rodrigues L MaletArgentinaIoni Bowcher RENEWAL
Octavia N StockhamRussiaOnyama Limba RENEWAL
Misaki B DoeIndiaOnyama Limba RENEWAL
Sinclair U VocelkaCanadaXuxue Feng PROPOSAL
Greenwood E SchemmerGermanyAnna Fali QUALIFIED
Aika T VenereJapanBernardo Dominic RENEWAL
Maisha U SlusarskiCanadaAmy Elsner PROPOSAL
Silvio C MarrierGermanyBernardo Dominic PROPOSAL
Maisha E PoquetteAustraliaAsiya Javayant PROPOSAL
Isabel I GauchoIndiaStephen Shaw NEW
Francesco P FollerItalyIvan Magalhaes PROPOSAL
Costa R GillianCanadaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford I ShinkoGermanyAsiya Javayant UNQUALIFIED
Smith D FollerGermanyOnyama Limba RENEWAL
Murillo N IturbideGermanyAnna Fali PROPOSAL
Costa Y FlosiRussiaIoni Bowcher NEW
Antonio F DoeIndiaAmy Elsner UNQUALIFIED
Clifford H DarakjyBrazilAsiya Javayant PROPOSAL
Claire C SaylorsItalyIoni Bowcher QUALIFIED
Kaitlin K TollnerItalyOnyama Limba UNQUALIFIED
Salvatore D DilliardBrazilXuxue Feng RENEWAL
Tony V RimSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia F VocelkaRussia2024-04-22Feiner Bros NEW20Xuxue Feng
1001Aika N CampainUnited Kingdom2024-04-22Commercial Press NEGOTIATION90Asiya Javayant
1002Murillo O AmigonAustralia2024-04-20Chanay, Jeffrey A Esq PROPOSAL30Stephen Shaw
1003Aika A BologniaSpain2024-04-15Commercial Press RENEWAL24Ivan Magalhaes
1004Tony K VenereBrazil2024-04-01Chapman, Ross E Esq RENEWAL42Bernardo Dominic
1005Jennifer T OldroydCanada2024-04-17Printing Dimensions UNQUALIFIED40Ioni Bowcher
1006Stacey Q ButtCanada2024-04-18Chapman, Ross E Esq UNQUALIFIED7Ivan Magalhaes
1007Nicolas Y NestleRussia2024-04-24Truhlar And Truhlar Attys PROPOSAL91Xuxue Feng
1008Cody H VocelkaJapan2024-04-18Chapman, Ross E Esq QUALIFIED56Bernardo Dominic
1009Costa A VenereArgentina2024-04-25Printing Dimensions NEW73Xuxue Feng
1010Sinclair Z GauchoSpain2024-04-11Rousseaux, Michael Esq QUALIFIED28Bernardo Dominic
1011Murillo U PerinRussia2024-04-16Feiner Bros RENEWAL96Asiya Javayant
1012Chavez V AlbaresGermany2024-04-20Commercial Press PROPOSAL58Asiya Javayant
1013Antonio I WaycottUnited Kingdom2024-04-17King, Christopher A Esq PROPOSAL6Stephen Shaw
1014Faith E KuskoItaly2024-04-20Dorl, James J Esq NEW94Asiya Javayant
1015Octavia Z GillianItaly2024-04-26Chapman, Ross E Esq RENEWAL76Xuxue Feng
1016Morrow T StockhamCanada2024-04-17Benton, John B Jr NEGOTIATION67Xuxue Feng
1017Adams L GillianUnited Kingdom2024-04-26Printing Dimensions NEW22Anna Fali
1018Rodrigues E VenereJapan2024-04-01Dorl, James J Esq PROPOSAL25Ivan Magalhaes
1019Nicolas Y DarakjyBrazil2024-04-10Chemel, James L Cpa UNQUALIFIED90Ioni Bowcher
1020Cody M InouyeUnited Kingdom2024-04-16Printing Dimensions RENEWAL7Xuxue Feng
1021Salvatore S FerenczGermany2024-04-24Commercial Press NEGOTIATION70Elwin Sharvill
1022Ashley F ShinkoRussia2024-04-27Chanay, Jeffrey A Esq NEGOTIATION44Elwin Sharvill
1023Aditya X StockhamIndia2024-04-18Rousseaux, Michael Esq RENEWAL55Xuxue Feng
1024Antonio N MarrierJapan2024-04-07Rangoni Of Florence NEW5Elwin Sharvill
1025Rodrigues F DilliardIndia2024-04-27Feltz Printing Service QUALIFIED29Anna Fali
1026Kaitlin K MarrierSpain2024-04-17Chapman, Ross E Esq PROPOSAL16Bernardo Dominic
1027Mujtaba M StockhamUnited Kingdom2024-04-16Commercial Press NEGOTIATION84Bernardo Dominic
1028Ricardo D DilliardRussia2024-04-10Benton, John B Jr NEGOTIATION68Stephen Shaw
1029Nicolas U DarakjyBrazil2024-04-21Printing Dimensions NEW50Elwin Sharvill
1030Smith X FollerGermany2024-04-29Commercial Press NEGOTIATION12Ivan Magalhaes
1031Johnson U CaldareraArgentina2024-04-08Truhlar And Truhlar Attys RENEWAL79Onyama Limba
1032Ivar G OstroskyCanada2024-04-26Chanay, Jeffrey A Esq QUALIFIED47Ivan Magalhaes
1033Jeanfrancois W ButtFrance2024-04-11Rousseaux, Michael Esq PROPOSAL60Xuxue Feng
1034Leja L ButtRussia2024-04-27Buckley Miller Wright QUALIFIED8Amy Elsner
1035Leon B WaycottGermany2024-04-23Chanay, Jeffrey A Esq RENEWAL1Anna Fali
1036Cody M FlosiRussia2024-04-06Chapman, Ross E Esq UNQUALIFIED88Anna Fali
1037Murillo B GauchoFrance2024-04-09Benton, John B Jr PROPOSAL46Anna Fali
1038Stacey Q AmigonIndia2024-04-21Feltz Printing Service RENEWAL35Ivan Magalhaes
1039Smith A MarrierIndia2024-04-10Commercial Press PROPOSAL45Asiya Javayant
1040Aditya O GarufiUnited Kingdom2024-04-16Printing Dimensions NEW93Anna Fali
1041Mayumi E NickaArgentina2024-04-15Rangoni Of Florence RENEWAL13Amy Elsner
1042Leja Q SaylorsFrance2024-04-09King, Christopher A Esq NEGOTIATION5Ivan Magalhaes
1043Aditya E OldroydAustralia2024-04-13Feltz Printing Service NEGOTIATION44Xuxue Feng
1044Maisha T CaldareraFrance2024-04-04Printing Dimensions NEW16Elwin Sharvill
1045Arvin E OstroskyUnited Kingdom2024-04-05Dorl, James J Esq NEGOTIATION16Onyama Limba
1046Julie V RutaUnited Kingdom2024-04-18Chapman, Ross E Esq UNQUALIFIED34Elwin Sharvill
1047Adams S NickaSpain2024-04-13Benton, John B Jr NEGOTIATION45Bernardo Dominic
1048Adams M DoeSpain2024-04-02Rangoni Of Florence UNQUALIFIED16Stephen Shaw
1049Leja F FerenczSpain2024-04-29Rangoni Of Florence UNQUALIFIED40Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Morrow J InouyeGermanyAnna Fali UNQUALIFIED
Jefferson P FerenczJapanIvan Magalhaes QUALIFIED
Aika T GlickGermanyBernardo Dominic QUALIFIED
Antonio E FigeroaIndiaAnna Fali NEGOTIATION
Sinclair F VenereSpainAmy Elsner UNQUALIFIED
Francesco V BologniaGermanyStephen Shaw NEW
Stacey A WhobreyItalyIoni Bowcher NEW
Ivar N DarakjyCanadaAmy Elsner RENEWAL
Aika A MaletAustraliaAnna Fali NEGOTIATION
Misaki O WhobreyArgentinaAmy Elsner QUALIFIED
Stacey F DarakjyRussiaIvan Magalhaes NEW
David O PaprockiRussiaAmy Elsner NEW
Antonio H DilliardGermanyElwin Sharvill NEGOTIATION
Rodrigues Y FerenczJapanBernardo Dominic RENEWAL
Salvatore G IturbideJapanXuxue Feng UNQUALIFIED
Juan L SlusarskiAustraliaAsiya Javayant RENEWAL
Claire V FlosiItalyBernardo Dominic PROPOSAL
Murillo Z OstroskySpainIoni Bowcher QUALIFIED
Smith B SlusarskiGermanyElwin Sharvill UNQUALIFIED
James O GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Ivar I InouyeCanadaXuxue Feng QUALIFIED
Misaki V FollerArgentinaAsiya Javayant PROPOSAL
Ricardo M VenereAustraliaXuxue Feng QUALIFIED
Chavez A CaudySpainElwin Sharvill QUALIFIED
Morrow O MarrierFranceAsiya Javayant NEGOTIATION
Nicolas W KolmetzGermanyAnna Fali PROPOSAL
Julie L KolmetzBrazilIoni Bowcher PROPOSAL
Murillo M GarufiCanadaIvan Magalhaes NEW
Juan T RoysterAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois Y PoquetteGermanyStephen Shaw UNQUALIFIED
Costa E RoysterIndiaIoni Bowcher NEGOTIATION
Misaki T StockhamSpainStephen Shaw QUALIFIED
Emily F PaprockiIndiaXuxue Feng PROPOSAL
Misaki L BologniaAustraliaStephen Shaw PROPOSAL
Wickens T InouyeIndiaElwin Sharvill RENEWAL
Leon H CaldareraUnited KingdomBernardo Dominic QUALIFIED
Misaki I StensethRussiaIoni Bowcher NEGOTIATION
Ashley N TollnerArgentinaAnna Fali NEGOTIATION
Jones M MaletIndiaBernardo Dominic RENEWAL
Kaitlin B CaudyUnited KingdomElwin Sharvill NEGOTIATION
Greenwood J ShinkoFranceStephen Shaw QUALIFIED
Misaki H WhobreyJapanXuxue Feng PROPOSAL
David L MacleadBrazilAnna Fali RENEWAL
Greenwood V VocelkaBrazilAnna Fali RENEWAL
Smith D FerenczUnited KingdomIoni Bowcher QUALIFIED
Munro R WhobreyArgentinaStephen Shaw UNQUALIFIED
Silvio F SergiFranceIvan Magalhaes PROPOSAL
Aika F IturbideIndiaXuxue Feng UNQUALIFIED
Ivar Z RoysterGermanyAmy Elsner UNQUALIFIED
Aruna B GillianJapanBernardo Dominic NEW
Frozen Columns
Name
Faith J Maclead
Clifford G Tollner
Claire L Bowley
Maria P Venere
Alejandro A Wieser
Clifford U Kolmetz
Aika C Oldroyd
Smith R Ruta
Ashley T Rulapaugh
Darci X Caudy
Jones I Foller
Morrow S Albares
Cody D Rulapaugh
Rodrigues Y Rulapaugh
Juan G Caudy
Aika U Flosi
Aruna A Shinko
Aruna D Saylors
Julie N Sergi
Greenwood J Inouye
Ricardo K Figeroa
Alejandro Y Morasca
Izzy U Darakjy
Murillo M Darakjy
Greenwood K Dilliard
Johnson R Schemmer
Isabel K Albares
Arvin A Gaucho
Juan B Marrier
Jones S Flosi
Salvatore A Flosi
Ivar G Doe
Misaki E Whobrey
Claire L Waycott
Izzy M Shinko
David T Briddick
Adams Q Whobrey
Juan K Bowley
Leon R Chui
Francesco A Nestle
Jeanfrancois V Bolognia
Aika N Venere
Silvio S Albares
Alejandro I Shinko
James C Kusko
Tony Z Maclead
Smith X Albares
Jennifer A Royster
Aika Y Nicka
Antonio K Caudy
IdCountryDate
1000Germany2024-04-10
1001Australia2024-04-25
1002Germany2024-04-13
1003Spain2024-04-09
1004Japan2024-04-22
1005Brazil2024-04-13
1006Germany2024-04-17
1007Canada2024-04-28
1008Germany2024-04-08
1009France2024-04-12
1010Brazil2024-04-25
1011Brazil2024-04-14
1012Spain2024-04-28
1013Spain2024-04-07
1014Russia2024-04-06
1015Germany2024-03-31
1016Japan2024-04-13
1017France2024-04-08
1018Germany2024-04-26
1019Italy2024-04-25
1020Canada2024-04-15
1021France2024-04-10
1022Canada2024-04-28
1023Italy2024-04-23
1024Canada2024-04-10
1025France2024-04-22
1026Russia2024-04-22
1027United Kingdom2024-04-27
1028Argentina2024-04-15
1029United Kingdom2024-04-07
1030Italy2024-04-06
1031Brazil2024-04-16
1032Spain2024-04-11
1033France2024-04-22
1034Japan2024-04-02
1035France2024-04-07
1036Germany2024-04-16
1037Russia2024-04-21
1038Spain2024-04-02
1039Brazil2024-04-26
1040India2024-04-16
1041Italy2024-04-12
1042Argentina2024-03-31
1043Spain2024-04-11
1044Germany2024-04-17
1045United Kingdom2024-04-29
1046India2024-04-08
1047Italy2024-04-22
1048Japan2024-04-05
1049Brazil2024-04-09

On-Demand Data

NameIdCountryDate
Leon B Stenseth1000United Kingdom2024-04-25
Ricardo C Bowley1001Germany2024-04-29
Octavia S Rulapaugh1002India2024-04-29
Leon R Sergi1003Australia2024-04-19
James V Gaucho1004Russia2024-04-05
Isabel F Rulapaugh1005Argentina2024-04-16
Salvatore N Rulapaugh1006Spain2024-04-18
Costa M Flosi1007Russia2024-04-06
Octavia K Schemmer1008Russia2024-04-23
Kaitlin M Slusarski1009Brazil2024-04-20
Antonio O Malet1010Japan2024-04-19
Wickens S Maclead1011United Kingdom2024-04-26
Nicolas Q Shinko1012Italy2024-04-04
Salvatore V Oldroyd1013Australia2024-04-02
Faith H Shinko1014Australia2024-04-15
Francesco X Figeroa1015Brazil2024-04-15
Jones U Marrier1016Germany2024-04-24
Johnson E Rim1017India2024-04-06
Costa Z Butt1018Japan2024-04-10
Tony I Amigon1019United Kingdom2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire F SlusarskiIndiaOnyama Limba UNQUALIFIED
Wickens L AlbaresSpainXuxue Feng NEW
Deepesh Q StensethJapanAnna Fali NEGOTIATION
Kadeem N SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Aika U PaprockiSpainIoni Bowcher NEGOTIATION
Faith H KuskoSpainBernardo Dominic PROPOSAL
Emily M GarufiAustraliaAnna Fali UNQUALIFIED
Kadeem M StensethFranceAmy Elsner RENEWAL
Morrow S RulapaughIndiaAnna Fali PROPOSAL
Adams U GillianArgentinaAsiya Javayant NEW
Claire F MacleadUnited KingdomStephen Shaw QUALIFIED
Misaki B SchemmerCanadaIvan Magalhaes UNQUALIFIED
Francesco P DilliardRussiaIvan Magalhaes PROPOSAL
Misaki C BowleySpainAmy Elsner NEW
Greenwood T DilliardIndiaOnyama Limba RENEWAL
Rodrigues E MarrierRussiaOnyama Limba RENEWAL
Murillo B OldroydFranceAnna Fali PROPOSAL
Murillo K DarakjySpainStephen Shaw UNQUALIFIED
Greenwood Y KolmetzItalyStephen Shaw PROPOSAL
Wickens B FerenczJapanAnna Fali PROPOSAL
Jennifer B ChuiUnited KingdomAmy Elsner QUALIFIED
Misaki Z GarufiItalyOnyama Limba RENEWAL
Ricardo E DoeItalyXuxue Feng NEGOTIATION
Izzy K BowleyCanadaAsiya Javayant RENEWAL
Octavia D FollerItalyXuxue Feng PROPOSAL
Rodrigues F VocelkaSpainElwin Sharvill NEW
Aika L ChuiCanadaBernardo Dominic NEW
Aika D VenereSpainIoni Bowcher RENEWAL
Octavia G WhobreyJapanBernardo Dominic RENEWAL
Arvin M BologniaUnited KingdomAmy Elsner PROPOSAL
Salvatore U InouyeItalyElwin Sharvill UNQUALIFIED
Morrow Q ChuiIndiaIvan Magalhaes UNQUALIFIED
Adams O MorascaCanadaIvan Magalhaes QUALIFIED
Sinclair T FlosiAustraliaIvan Magalhaes RENEWAL
Alejandro F MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Maisha K NestleCanadaIvan Magalhaes UNQUALIFIED
Emily J SergiRussiaIvan Magalhaes NEW
Faith N NickaBrazilBernardo Dominic NEW
James Q DarakjyJapanAnna Fali UNQUALIFIED
Nicolas O MarrierIndiaAmy Elsner RENEWAL

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