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
Ashley U CaldareraCanadaAsiya Javayant QUALIFIED
Chavez H BowleyCanadaStephen Shaw RENEWAL
Izzy A FollerIndiaAnna Fali UNQUALIFIED
Kadeem D OstroskyBrazilAmy Elsner QUALIFIED
Ricardo F MaletSpainBernardo Dominic PROPOSAL
Darci E FlosiCanadaXuxue Feng NEGOTIATION
Juan P WieserItalyElwin Sharvill PROPOSAL
Ashley Y AlbaresUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba M FlosiBrazilOnyama Limba UNQUALIFIED
Antonio G CaudyJapanIvan Magalhaes NEGOTIATION
Alejandro N FlosiRussiaOnyama Limba UNQUALIFIED
Murillo B MorascaItalyAmy Elsner RENEWAL
Juan J PaprockiUnited KingdomAmy Elsner QUALIFIED
Jennifer W OstroskyUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois G KolmetzArgentinaAnna Fali NEW
Jefferson C BriddickBrazilXuxue Feng UNQUALIFIED
Clifford V MaletUnited KingdomAmy Elsner NEGOTIATION
Chavez K CaldareraBrazilElwin Sharvill UNQUALIFIED
Arvin W MacleadItalyOnyama Limba UNQUALIFIED
James I MaletCanadaAsiya Javayant PROPOSAL
Salvatore N RutaBrazilIvan Magalhaes NEGOTIATION
Costa J BriddickCanadaAsiya Javayant NEGOTIATION
Mayumi B FerenczRussiaAsiya Javayant PROPOSAL
Aruna L BriddickSpainIvan Magalhaes PROPOSAL
Kaitlin M GlickCanadaIoni Bowcher RENEWAL
Antonio E BriddickCanadaOnyama Limba QUALIFIED
Morrow V ChuiArgentinaBernardo Dominic UNQUALIFIED
Deepesh P DilliardCanadaBernardo Dominic PROPOSAL
Smith A FerenczCanadaBernardo Dominic NEGOTIATION
Aditya P OldroydBrazilAmy Elsner QUALIFIED
Clifford F MaletIndiaElwin Sharvill UNQUALIFIED
Ashley E MaletJapanAsiya Javayant QUALIFIED
Ivar Y NickaItalyIvan Magalhaes QUALIFIED
Darci O GillianArgentinaIoni Bowcher NEW
Leja E StensethBrazilXuxue Feng QUALIFIED
Clifford H SlusarskiArgentinaBernardo Dominic NEGOTIATION
Maria H VenereSpainAmy Elsner RENEWAL
Rodrigues N FollerGermanyAmy Elsner QUALIFIED
Misaki Q DarakjyCanadaAsiya Javayant UNQUALIFIED
Chavez F BriddickIndiaXuxue Feng QUALIFIED
Alejandro E GarufiAustraliaAmy Elsner NEGOTIATION
Silvio T AmigonJapanAsiya Javayant RENEWAL
Ashley P BowleyRussiaIoni Bowcher UNQUALIFIED
Ashley Y GillianBrazilXuxue Feng NEW
Alejandro Q ChuiRussiaAsiya Javayant NEGOTIATION
Deepesh O GauchoArgentinaIvan Magalhaes UNQUALIFIED
Stacey A StockhamAustraliaBernardo Dominic NEGOTIATION
James K PerinAustraliaAsiya Javayant NEGOTIATION
Leon H OldroydSpainBernardo Dominic NEGOTIATION
Emily P ShinkoRussiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford I WieserCanadaBernardo Dominic UNQUALIFIED
James Y CaldareraArgentinaAnna Fali RENEWAL
Munro W RoysterCanadaIvan Magalhaes PROPOSAL
Faith C DoeArgentinaOnyama Limba QUALIFIED
Faith M WhobreyAustraliaIoni Bowcher NEGOTIATION
Ivar W CaudyGermanyIvan Magalhaes QUALIFIED
Aika W TollnerArgentinaAnna Fali NEW
Ivar R NickaAustraliaStephen Shaw NEGOTIATION
Aika V PerinUnited KingdomXuxue Feng RENEWAL
Stacey W DoeAustraliaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Z CampainGermany2024-04-22Feiner Bros PROPOSAL85Bernardo Dominic
1001Kadeem H ButtItaly2024-04-26King, Christopher A Esq NEGOTIATION31Ioni Bowcher
1002Adams V CaldareraJapan2024-04-26Dorl, James J Esq QUALIFIED20Xuxue Feng
1003Misaki F MaletItaly2024-04-04Morlong Associates RENEWAL79Anna Fali
1004Smith Q FerenczCanada2024-04-15Dorl, James J Esq PROPOSAL35Asiya Javayant
1005Jefferson U AmigonBrazil2024-04-23King, Christopher A Esq NEGOTIATION6Bernardo Dominic
1006Antonio F SlusarskiJapan2024-04-14Buckley Miller Wright QUALIFIED74Onyama Limba
1007Stacey K RutaCanada2024-04-20Buckley Miller Wright PROPOSAL84Amy Elsner
1008Alejandro N KuskoJapan2024-04-07King, Christopher A Esq NEGOTIATION86Asiya Javayant
1009Ivar J PoquetteAustralia2024-04-15Chemel, James L Cpa UNQUALIFIED6Amy Elsner
1010Ivar W MarrierRussia2024-04-15Chapman, Ross E Esq RENEWAL26Anna Fali
1011Jennifer E FollerSpain2024-04-04Rousseaux, Michael Esq NEW5Ivan Magalhaes
1012Costa N AlbaresFrance2024-04-23Rangoni Of Florence RENEWAL69Bernardo Dominic
1013Morrow H RulapaughBrazil2024-03-31Commercial Press RENEWAL94Elwin Sharvill
1014Tony J DarakjyCanada2024-04-10Rangoni Of Florence PROPOSAL3Ioni Bowcher
1015Aruna F DoeGermany2024-04-02Truhlar And Truhlar Attys PROPOSAL19Asiya Javayant
1016Nicolas S DarakjyCanada2024-04-23Feltz Printing Service PROPOSAL28Asiya Javayant
1017Sinclair G GarufiItaly2024-04-12Commercial Press NEGOTIATION10Bernardo Dominic
1018Misaki Y ShinkoArgentina2024-03-31Chemel, James L Cpa NEW7Elwin Sharvill
1019Mayumi V PerinAustralia2024-04-21Rousseaux, Michael Esq UNQUALIFIED24Ivan Magalhaes
1020Jennifer H DilliardGermany2024-04-12King, Christopher A Esq NEGOTIATION40Amy Elsner
1021Greenwood N NickaSpain2024-04-14Commercial Press NEW39Stephen Shaw
1022Stacey S KolmetzCanada2024-04-12Chanay, Jeffrey A Esq NEGOTIATION82Onyama Limba
1023Adams Y MacleadArgentina2024-03-29Buckley Miller Wright NEW99Anna Fali
1024Leja G MaletUnited Kingdom2024-04-17Truhlar And Truhlar Attys NEGOTIATION87Ivan Magalhaes
1025Murillo O FerenczBrazil2024-04-18Printing Dimensions NEGOTIATION44Asiya Javayant
1026Ivar X ShinkoBrazil2024-04-14Rousseaux, Michael Esq NEGOTIATION21Anna Fali
1027Jones N AlbaresArgentina2024-04-16Commercial Press QUALIFIED62Stephen Shaw
1028Francesco Y ButtGermany2024-04-02Rangoni Of Florence RENEWAL79Elwin Sharvill
1029Julie S NestleItaly2024-04-12Dorl, James J Esq PROPOSAL28Xuxue Feng
1030Munro P CaudyAustralia2024-04-01Rangoni Of Florence UNQUALIFIED51Onyama Limba
1031Arvin F InouyeRussia2024-04-25Chemel, James L Cpa NEGOTIATION19Ivan Magalhaes
1032Munro N SaylorsBrazil2024-04-03Chemel, James L Cpa NEW94Anna Fali
1033Silvio X KolmetzArgentina2024-03-31Dorl, James J Esq RENEWAL5Elwin Sharvill
1034Faith Y NestleFrance2024-04-19Chapman, Ross E Esq NEW67Ivan Magalhaes
1035Adams L GauchoCanada2024-04-17Chanay, Jeffrey A Esq QUALIFIED9Elwin Sharvill
1036Cody M GillianJapan2024-04-15King, Christopher A Esq UNQUALIFIED5Stephen Shaw
1037Murillo X WieserUnited Kingdom2024-04-06Rousseaux, Michael Esq PROPOSAL80Asiya Javayant
1038Alejandro Y FlosiUnited Kingdom2024-04-09Rousseaux, Michael Esq RENEWAL65Bernardo Dominic
1039Adams L SchemmerArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION73Onyama Limba
1040Kadeem G SaylorsJapan2024-04-12King, Christopher A Esq NEGOTIATION78Anna Fali
1041Ricardo W DilliardRussia2024-04-01Commercial Press UNQUALIFIED26Asiya Javayant
1042Aruna X NestleGermany2024-04-17Feltz Printing Service NEGOTIATION0Amy Elsner
1043David X MacleadGermany2024-04-21Morlong Associates PROPOSAL28Onyama Limba
1044Julie R AmigonAustralia2024-04-23Rousseaux, Michael Esq UNQUALIFIED22Anna Fali
1045Nicolas T GillianFrance2024-04-10Benton, John B Jr UNQUALIFIED37Ioni Bowcher
1046Jefferson H BowleySpain2024-04-15Feltz Printing Service RENEWAL71Xuxue Feng
1047Rodrigues Z WieserGermany2024-04-27Truhlar And Truhlar Attys PROPOSAL93Amy Elsner
1048Leja S BriddickUnited Kingdom2024-04-25Dorl, James J Esq NEGOTIATION4Bernardo Dominic
1049Julie Y GarufiUnited Kingdom2024-04-04Dorl, James J Esq PROPOSAL80Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody M MarrierRussiaBernardo Dominic RENEWAL
Leja S CaudyArgentinaOnyama Limba PROPOSAL
Cody X OstroskyRussiaXuxue Feng QUALIFIED
Tony N NestleBrazilAmy Elsner QUALIFIED
Leja H KolmetzSpainOnyama Limba NEGOTIATION
Jefferson K IturbideBrazilAnna Fali QUALIFIED
Morrow V BologniaAustraliaAmy Elsner RENEWAL
Ashley C StockhamSpainIoni Bowcher UNQUALIFIED
Ivar V MacleadBrazilIoni Bowcher RENEWAL
Jefferson V FollerGermanyStephen Shaw QUALIFIED
James P GlickArgentinaOnyama Limba UNQUALIFIED
Sinclair W RutaGermanyElwin Sharvill NEW
Greenwood Z FollerAustraliaBernardo Dominic NEGOTIATION
Isabel G DoeIndiaAnna Fali RENEWAL
Claire M SaylorsSpainAsiya Javayant RENEWAL
James C NickaSpainAnna Fali RENEWAL
Maria B BriddickFranceIoni Bowcher QUALIFIED
Tony U RutaItalyXuxue Feng PROPOSAL
Wickens G MacleadAustraliaAmy Elsner UNQUALIFIED
David W NickaRussiaElwin Sharvill RENEWAL
Nicolas J FlosiFranceBernardo Dominic NEGOTIATION
Ashley X NestleAustraliaElwin Sharvill UNQUALIFIED
Costa B InouyeIndiaStephen Shaw UNQUALIFIED
Faith L SchemmerJapanXuxue Feng UNQUALIFIED
Ashley J KolmetzBrazilElwin Sharvill NEW
Cody Z GillianSpainXuxue Feng QUALIFIED
Izzy H MaletGermanyAsiya Javayant UNQUALIFIED
Aditya M WieserRussiaAnna Fali NEW
Darci A StockhamSpainAmy Elsner NEW
Leja X SaylorsJapanStephen Shaw NEGOTIATION
Jeanfrancois U FollerAustraliaAnna Fali PROPOSAL
Maria V CampainJapanAsiya Javayant PROPOSAL
Wickens E StockhamItalyBernardo Dominic RENEWAL
Deepesh O WhobreyRussiaAsiya Javayant RENEWAL
Clifford H BologniaUnited KingdomAmy Elsner RENEWAL
James X DoeGermanyIoni Bowcher PROPOSAL
Darci T ShinkoJapanAnna Fali NEW
Claire Z GarufiBrazilAsiya Javayant NEGOTIATION
Isabel M ShinkoCanadaOnyama Limba PROPOSAL
Jeanfrancois O VenereJapanIvan Magalhaes NEW
Morrow X MorascaIndiaIvan Magalhaes QUALIFIED
Mayumi P OstroskyItalyAnna Fali RENEWAL
Leja Q RulapaughRussiaAsiya Javayant QUALIFIED
Kaitlin A InouyeUnited KingdomAsiya Javayant RENEWAL
Johnson L PoquetteIndiaAnna Fali NEW
Clifford D WaycottItalyXuxue Feng UNQUALIFIED
Munro M RoysterAustraliaIoni Bowcher NEW
Costa N MaletArgentinaIvan Magalhaes NEW
Munro C TollnerCanadaIvan Magalhaes RENEWAL
Mayumi S SlusarskiJapanIvan Magalhaes PROPOSAL
Frozen Columns
Name
Faith K Ostrosky
David R Bowley
Murillo L Oldroyd
Johnson S Gillian
Costa V Morasca
Misaki O Sergi
Aika F Bowley
Juan R Gaucho
Ivar V Sergi
Rodrigues P Ostrosky
Wickens N Iturbide
Julie S Sergi
Aruna M Rulapaugh
Nicolas X Inouye
Kaitlin K Doe
Ashley Z Tollner
Kadeem B Bolognia
Julie B Chui
Stacey Y Sergi
Izzy K Kusko
Deepesh N Campain
Deepesh C Slusarski
Faith S Chui
Smith X Vocelka
Juan L Bolognia
Stacey C Rulapaugh
Alejandro J Sergi
Smith Z Shinko
Jefferson W Darakjy
Claire T Tollner
Ivar X Malet
Ashley B Flosi
Isabel E Schemmer
Jones L Caudy
Murillo G Bowley
Francesco U Wieser
Izzy H Perin
Darci Z Malet
Juan U Dilliard
Chavez K Kolmetz
Tony B Gillian
Sinclair L Amigon
Kadeem K Sergi
Emily X Foller
David N Ferencz
Faith L Maclead
Claire E Butt
David X Rim
Darci V Whobrey
Ashley F Saylors
IdCountryDate
1000India2024-04-01
1001Canada2024-03-30
1002Japan2024-04-02
1003United Kingdom2024-04-19
1004Russia2024-04-11
1005Japan2024-03-30
1006United Kingdom2024-04-08
1007Germany2024-04-19
1008Russia2024-04-15
1009Spain2024-04-04
1010Brazil2024-04-26
1011Brazil2024-04-19
1012France2024-04-17
1013France2024-04-15
1014Germany2024-03-31
1015Italy2024-04-11
1016Argentina2024-04-05
1017Australia2024-04-16
1018India2024-04-26
1019United Kingdom2024-04-23
1020Italy2024-03-29
1021India2024-04-15
1022Canada2024-04-12
1023Australia2024-04-08
1024Japan2024-04-26
1025Spain2024-04-02
1026Canada2024-04-08
1027Spain2024-04-13
1028Italy2024-04-01
1029Argentina2024-04-03
1030Australia2024-04-08
1031Argentina2024-04-22
1032Germany2024-04-08
1033France2024-04-10
1034Brazil2024-04-26
1035Canada2024-04-08
1036Australia2024-04-25
1037Australia2024-04-24
1038Germany2024-04-04
1039Germany2024-04-13
1040Canada2024-04-06
1041Argentina2024-04-16
1042Brazil2024-03-30
1043Japan2024-04-19
1044Brazil2024-04-15
1045Germany2024-04-13
1046Brazil2024-04-19
1047Argentina2024-04-21
1048Germany2024-04-06
1049Japan2024-04-08

On-Demand Data

NameIdCountryDate
James N Bowley1000Germany2024-04-18
Aika G Caldarera1001Brazil2024-04-25
Mujtaba H Darakjy1002Canada2024-04-16
Izzy X Bowley1003India2024-04-24
Ricardo R Schemmer1004United Kingdom2024-04-24
Leja H Perin1005Australia2024-04-19
Maisha U Chui1006Argentina2024-04-18
Jones J Chui1007Argentina2024-04-27
Mujtaba Y Tollner1008Canada2024-03-30
Munro O Shinko1009Italy2024-04-26
Kadeem X Stenseth1010France2024-04-23
Ashley J Marrier1011Canada2024-04-23
Rodrigues W Ferencz1012France2024-04-15
Smith S Vocelka1013Australia2024-03-30
Mayumi L Doe1014Italy2024-04-24
Munro V Slusarski1015Spain2024-04-24
Sinclair D Butt1016Canada2024-04-01
Mayumi F Stockham1017Italy2024-03-31
Morrow D Foller1018Canada2024-04-16
Greenwood I Chui1019Brazil2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie B GauchoBrazilOnyama Limba NEGOTIATION
Ashley L MarrierSpainBernardo Dominic NEGOTIATION
Isabel Q SlusarskiFranceIvan Magalhaes NEGOTIATION
Alejandro V FerenczArgentinaAsiya Javayant PROPOSAL
Aika C SchemmerBrazilXuxue Feng NEGOTIATION
Maria W GarufiAustraliaAnna Fali NEGOTIATION
Ashley I CaldareraUnited KingdomAmy Elsner NEGOTIATION
Jefferson H FollerBrazilAnna Fali PROPOSAL
Julie B VocelkaBrazilAmy Elsner PROPOSAL
Darci C PerinArgentinaXuxue Feng NEGOTIATION
Octavia B PerinIndiaOnyama Limba UNQUALIFIED
Jennifer L BologniaBrazilBernardo Dominic UNQUALIFIED
Jefferson K WhobreyArgentinaAsiya Javayant NEGOTIATION
Claire Y WieserUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues A ButtRussiaStephen Shaw RENEWAL
Chavez V PaprockiItalyElwin Sharvill NEGOTIATION
Jones V FerenczRussiaOnyama Limba NEGOTIATION
Juan R BologniaAustraliaStephen Shaw PROPOSAL
Stacey Z FlosiAustraliaOnyama Limba UNQUALIFIED
Morrow U InouyeFranceAnna Fali PROPOSAL
Morrow Y VocelkaUnited KingdomStephen Shaw PROPOSAL
Faith F MarrierIndiaOnyama Limba RENEWAL
Chavez J MarrierAustraliaXuxue Feng RENEWAL
Aditya W InouyeRussiaIoni Bowcher QUALIFIED
Misaki V GillianGermanyStephen Shaw QUALIFIED
Octavia O WhobreyRussiaIoni Bowcher QUALIFIED
James T BologniaAustraliaIoni Bowcher NEGOTIATION
Antonio Z NestleRussiaAnna Fali NEGOTIATION
Mayumi E KuskoFranceIvan Magalhaes NEGOTIATION
Ivar X InouyeCanadaBernardo Dominic NEW
Ashley V WieserGermanyXuxue Feng NEGOTIATION
Maisha P OstroskySpainIoni Bowcher NEGOTIATION
Emily S GlickCanadaStephen Shaw PROPOSAL
Octavia D RutaJapanStephen Shaw NEGOTIATION
Aruna Y OstroskyBrazilAnna Fali RENEWAL
Faith F OstroskyRussiaIoni Bowcher RENEWAL
Izzy Y RoysterGermanyAmy Elsner NEW
Clifford H ButtGermanyAsiya Javayant NEW
Smith X NickaItalyElwin Sharvill NEGOTIATION
Wickens O ChuiRussiaBernardo Dominic 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>