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
Antonio W SaylorsBrazilBernardo Dominic NEGOTIATION
Alejandro J StockhamGermanyOnyama Limba QUALIFIED
Ivar D ShinkoUnited KingdomOnyama Limba NEGOTIATION
Silvio Q RoysterCanadaAsiya Javayant QUALIFIED
Salvatore O DarakjyIndiaIvan Magalhaes NEW
Nicolas U InouyeCanadaXuxue Feng PROPOSAL
Nicolas O StockhamArgentinaStephen Shaw NEGOTIATION
Murillo M InouyeJapanXuxue Feng NEGOTIATION
Emily G SchemmerJapanIvan Magalhaes PROPOSAL
Aika M MorascaIndiaAsiya Javayant RENEWAL
Jefferson N BologniaAustraliaOnyama Limba RENEWAL
Ricardo N GlickFranceOnyama Limba PROPOSAL
Adams G SaylorsAustraliaOnyama Limba PROPOSAL
Smith N FlosiRussiaAnna Fali UNQUALIFIED
Silvio L ButtIndiaBernardo Dominic PROPOSAL
Morrow X CaudyAustraliaIoni Bowcher NEW
Kaitlin W NestleRussiaAmy Elsner RENEWAL
Aruna X GillianCanadaIoni Bowcher UNQUALIFIED
Murillo V GarufiIndiaAmy Elsner QUALIFIED
Adams W BowleyBrazilElwin Sharvill QUALIFIED
Kadeem M ChuiUnited KingdomStephen Shaw QUALIFIED
Izzy A PerinArgentinaIvan Magalhaes QUALIFIED
Darci I ShinkoUnited KingdomOnyama Limba NEGOTIATION
Octavia L GarufiUnited KingdomAmy Elsner PROPOSAL
Faith D CaldareraGermanyXuxue Feng NEGOTIATION
Jeanfrancois X SergiRussiaAsiya Javayant QUALIFIED
Stacey P DilliardItalyBernardo Dominic UNQUALIFIED
Mayumi I MorascaItalyXuxue Feng PROPOSAL
Kaitlin E PoquetteItalyBernardo Dominic NEGOTIATION
James W VocelkaSpainAnna Fali QUALIFIED
Misaki O AlbaresIndiaElwin Sharvill QUALIFIED
Silvio Y ShinkoItalyAmy Elsner QUALIFIED
Emily W FigeroaIndiaOnyama Limba PROPOSAL
Greenwood Y SaylorsIndiaOnyama Limba RENEWAL
Aditya F OstroskyJapanOnyama Limba UNQUALIFIED
Rodrigues Y InouyeFranceElwin Sharvill RENEWAL
Johnson J CaldareraIndiaAmy Elsner PROPOSAL
Izzy J CaudyIndiaOnyama Limba QUALIFIED
Mujtaba K WhobreyArgentinaIoni Bowcher PROPOSAL
Ricardo K MacleadIndiaElwin Sharvill RENEWAL
Mayumi G OldroydGermanyIvan Magalhaes NEW
Aruna E OldroydCanadaAsiya Javayant NEGOTIATION
Ashley E MaletAustraliaElwin Sharvill UNQUALIFIED
Ricardo M ButtIndiaElwin Sharvill NEW
Faith C BologniaSpainIoni Bowcher QUALIFIED
Adams G MacleadAustraliaXuxue Feng NEW
Murillo M GarufiAustraliaXuxue Feng QUALIFIED
Jones W MarrierUnited KingdomOnyama Limba QUALIFIED
Sinclair D WaycottFranceIvan Magalhaes UNQUALIFIED
Misaki P PoquetteRussiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy J VocelkaItalyXuxue Feng PROPOSAL
Johnson B GillianFranceIvan Magalhaes UNQUALIFIED
Maisha W GlickIndiaAnna Fali RENEWAL
Leja A KolmetzRussiaAmy Elsner NEGOTIATION
Clifford V ButtIndiaOnyama Limba NEW
Murillo K SergiSpainXuxue Feng QUALIFIED
Maisha F NickaGermanyStephen Shaw QUALIFIED
Wickens N ShinkoGermanyAsiya Javayant NEW
Ricardo P BowleyAustraliaElwin Sharvill NEGOTIATION
Julie X OldroydBrazilXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson W RoysterCanada2024-04-21Benton, John B Jr NEGOTIATION92Elwin Sharvill
1001Morrow S FlosiGermany2024-05-09Chemel, James L Cpa QUALIFIED22Asiya Javayant
1002Greenwood W AlbaresFrance2024-04-20Benton, John B Jr NEGOTIATION25Ivan Magalhaes
1003James F WaycottJapan2024-04-22Dorl, James J Esq NEGOTIATION99Ivan Magalhaes
1004Claire Z ChuiJapan2024-04-13Buckley Miller Wright NEGOTIATION7Ivan Magalhaes
1005Cody V SlusarskiGermany2024-05-09Rangoni Of Florence NEW63Ivan Magalhaes
1006Maisha M WhobreyBrazil2024-04-30Feiner Bros PROPOSAL64Ivan Magalhaes
1007Francesco T FollerBrazil2024-04-29Chapman, Ross E Esq QUALIFIED97Elwin Sharvill
1008Emily H MarrierAustralia2024-04-17Commercial Press RENEWAL10Onyama Limba
1009Emily C GillianBrazil2024-05-02Dorl, James J Esq UNQUALIFIED32Ivan Magalhaes
1010Kaitlin J ShinkoUnited Kingdom2024-04-26Morlong Associates NEW62Anna Fali
1011Jeanfrancois R SaylorsArgentina2024-05-07Truhlar And Truhlar Attys UNQUALIFIED63Asiya Javayant
1012Juan S CaldareraRussia2024-04-14Chanay, Jeffrey A Esq NEW17Bernardo Dominic
1013Chavez S FigeroaIndia2024-04-21Dorl, James J Esq RENEWAL50Bernardo Dominic
1014Aika R MaletUnited Kingdom2024-04-22Feiner Bros RENEWAL5Elwin Sharvill
1015Greenwood L BowleyJapan2024-05-11Rousseaux, Michael Esq UNQUALIFIED5Xuxue Feng
1016David F RoysterCanada2024-04-15Printing Dimensions PROPOSAL83Asiya Javayant
1017Mujtaba N MarrierAustralia2024-04-27Rangoni Of Florence UNQUALIFIED85Amy Elsner
1018Arvin I FlosiJapan2024-05-06Benton, John B Jr UNQUALIFIED45Asiya Javayant
1019Sinclair T SaylorsGermany2024-05-04Buckley Miller Wright UNQUALIFIED67Asiya Javayant
1020Jefferson B DoeAustralia2024-05-07Buckley Miller Wright UNQUALIFIED76Onyama Limba
1021Octavia X GarufiFrance2024-04-15Rangoni Of Florence RENEWAL96Xuxue Feng
1022Wickens H RulapaughRussia2024-04-15Dorl, James J Esq RENEWAL52Asiya Javayant
1023Maria F FerenczAustralia2024-04-14Rousseaux, Michael Esq NEW81Bernardo Dominic
1024Darci O DoeJapan2024-04-17Chanay, Jeffrey A Esq QUALIFIED69Asiya Javayant
1025Chavez Y NestleAustralia2024-04-28Dorl, James J Esq UNQUALIFIED36Ivan Magalhaes
1026Maria H RutaIndia2024-05-12Chanay, Jeffrey A Esq RENEWAL54Onyama Limba
1027Misaki T AmigonCanada2024-04-19Dorl, James J Esq QUALIFIED63Anna Fali
1028Murillo Z MacleadGermany2024-05-10Printing Dimensions NEW16Bernardo Dominic
1029Juan J RoysterAustralia2024-05-06Feiner Bros PROPOSAL41Stephen Shaw
1030Johnson C CampainUnited Kingdom2024-05-06Morlong Associates NEGOTIATION29Ioni Bowcher
1031James G ChuiAustralia2024-05-12Chanay, Jeffrey A Esq UNQUALIFIED37Stephen Shaw
1032Aruna E FollerIndia2024-04-30Feiner Bros UNQUALIFIED34Onyama Limba
1033Aika Z DarakjyRussia2024-04-30Benton, John B Jr UNQUALIFIED48Elwin Sharvill
1034Stacey Q FigeroaCanada2024-05-09Rangoni Of Florence PROPOSAL26Stephen Shaw
1035Jefferson U SaylorsJapan2024-04-18Chapman, Ross E Esq RENEWAL57Asiya Javayant
1036Johnson K StockhamGermany2024-05-01Feltz Printing Service NEGOTIATION32Xuxue Feng
1037Smith I GarufiItaly2024-05-12Dorl, James J Esq NEGOTIATION15Stephen Shaw
1038Isabel Y WieserRussia2024-05-02Truhlar And Truhlar Attys QUALIFIED8Elwin Sharvill
1039Faith Q BowleyBrazil2024-05-08Chemel, James L Cpa NEGOTIATION36Stephen Shaw
1040Mayumi H MacleadAustralia2024-05-07Chemel, James L Cpa RENEWAL97Xuxue Feng
1041Smith A GillianArgentina2024-04-21Chanay, Jeffrey A Esq RENEWAL9Anna Fali
1042Mayumi U WhobreyItaly2024-04-25King, Christopher A Esq QUALIFIED21Asiya Javayant
1043Morrow E BriddickUnited Kingdom2024-04-28Buckley Miller Wright PROPOSAL14Elwin Sharvill
1044Ashley S DilliardSpain2024-04-15Buckley Miller Wright NEW62Asiya Javayant
1045Nicolas K FlosiJapan2024-05-06Chanay, Jeffrey A Esq RENEWAL78Xuxue Feng
1046Tony L MorascaIndia2024-04-19Rangoni Of Florence QUALIFIED23Onyama Limba
1047Morrow L TollnerFrance2024-05-11Morlong Associates QUALIFIED4Amy Elsner
1048Jefferson R RimIndia2024-04-17Chanay, Jeffrey A Esq RENEWAL31Ivan Magalhaes
1049Jefferson X ButtIndia2024-04-15Dorl, James J Esq NEGOTIATION19Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel T SaylorsSpainIoni Bowcher RENEWAL
Murillo L MacleadIndiaXuxue Feng PROPOSAL
Mayumi S NickaSpainBernardo Dominic NEW
Emily X GlickCanadaElwin Sharvill NEW
Greenwood I PoquetteJapanAsiya Javayant UNQUALIFIED
Tony P RutaItalyAnna Fali NEGOTIATION
Smith H StensethRussiaAnna Fali PROPOSAL
Kaitlin J AlbaresIndiaAsiya Javayant NEGOTIATION
Aditya Y WieserBrazilBernardo Dominic QUALIFIED
Rodrigues Q SlusarskiItalyAsiya Javayant RENEWAL
Maria C BologniaGermanyElwin Sharvill NEGOTIATION
Nicolas L SlusarskiJapanOnyama Limba NEW
Jones S StockhamArgentinaOnyama Limba NEW
Tony X DoeFranceAsiya Javayant UNQUALIFIED
Murillo U GlickJapanAsiya Javayant NEW
Clifford F MaletCanadaStephen Shaw NEW
Sinclair D OstroskySpainIvan Magalhaes RENEWAL
Smith G MorascaIndiaAmy Elsner NEW
Aditya T VocelkaFranceIoni Bowcher PROPOSAL
Morrow N SaylorsFranceAmy Elsner PROPOSAL
Maria W ButtAustraliaAsiya Javayant NEW
Wickens U GillianAustraliaElwin Sharvill UNQUALIFIED
Izzy C SlusarskiSpainOnyama Limba RENEWAL
Wickens N RulapaughRussiaOnyama Limba QUALIFIED
Tony J RoysterUnited KingdomAmy Elsner QUALIFIED
Faith C DarakjyGermanyBernardo Dominic NEW
Alejandro I RoysterRussiaStephen Shaw NEGOTIATION
Jeanfrancois G WieserAustraliaBernardo Dominic PROPOSAL
Aruna C RoysterUnited KingdomOnyama Limba NEW
Francesco W OldroydItalyStephen Shaw QUALIFIED
Nicolas Q OstroskyFranceAsiya Javayant QUALIFIED
Jefferson P CampainGermanyAsiya Javayant NEW
Munro N FollerFranceIoni Bowcher PROPOSAL
Kadeem O MaletRussiaAsiya Javayant NEGOTIATION
Juan Y ChuiFranceAmy Elsner NEGOTIATION
Jefferson C CaldareraRussiaAmy Elsner NEW
Misaki R CaldareraGermanyAnna Fali UNQUALIFIED
Faith M ShinkoIndiaIvan Magalhaes RENEWAL
Maisha U ButtCanadaIoni Bowcher PROPOSAL
Jeanfrancois L WhobreyJapanOnyama Limba NEGOTIATION
Murillo N IturbideRussiaAnna Fali RENEWAL
Jennifer H CaudyFranceXuxue Feng QUALIFIED
Smith M CaudyIndiaAnna Fali NEGOTIATION
Alejandro K MarrierJapanElwin Sharvill UNQUALIFIED
Mayumi L StockhamFranceStephen Shaw PROPOSAL
Leja F CampainSpainStephen Shaw RENEWAL
Kadeem G DilliardArgentinaIoni Bowcher RENEWAL
Aruna R RutaJapanAmy Elsner NEW
Sinclair O OstroskyIndiaOnyama Limba NEW
Munro O SchemmerFranceIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Ivar S Flosi
Francesco O Malet
Isabel B Venere
Salvatore R Marrier
Leon I Glick
Rodrigues C Saylors
Jefferson U Stockham
Julie P Poquette
Isabel Y Kolmetz
Mayumi W Perin
Stacey U Kolmetz
Rodrigues P Oldroyd
Aditya Q Sergi
Kadeem J Stockham
Jennifer U Caudy
Aditya V Tollner
Sinclair O Wieser
Julie W Dilliard
Aditya W Paprocki
Maisha M Gaucho
Alejandro Z Campain
Arvin P Whobrey
Juan O Campain
Leja F Poquette
Jones D Amigon
Johnson V Albares
Nicolas S Doe
Cody W Figeroa
Stacey S Paprocki
Chavez I Shinko
Wickens H Gaucho
Johnson G Perin
Misaki O Stenseth
Francesco U Caldarera
Julie Y Ruta
James P Waycott
Murillo A Oldroyd
Jeanfrancois W Perin
Jefferson R Ostrosky
Johnson L Caldarera
Nicolas Y Glick
Aditya B Royster
Johnson E Schemmer
Costa R Ruta
Adams V Amigon
Ricardo Y Maclead
Ricardo X Wieser
Faith Q Oldroyd
Cody Y Saylors
Jefferson P Slusarski
IdCountryDate
1000Japan2024-05-08
1001France2024-04-15
1002Brazil2024-04-17
1003Canada2024-05-05
1004France2024-04-28
1005France2024-04-22
1006Germany2024-04-23
1007Japan2024-04-25
1008Japan2024-05-04
1009Canada2024-04-28
1010Japan2024-05-04
1011Brazil2024-04-29
1012France2024-04-17
1013Australia2024-04-25
1014Japan2024-04-22
1015United Kingdom2024-04-28
1016Italy2024-05-07
1017Spain2024-04-15
1018Italy2024-05-02
1019Germany2024-04-15
1020Japan2024-04-30
1021Russia2024-04-23
1022United Kingdom2024-04-14
1023Germany2024-04-21
1024Japan2024-05-12
1025India2024-05-02
1026Germany2024-05-09
1027Germany2024-05-11
1028Argentina2024-04-14
1029Australia2024-05-06
1030Australia2024-04-29
1031Italy2024-05-12
1032France2024-05-08
1033Argentina2024-05-10
1034Spain2024-05-04
1035France2024-05-03
1036Germany2024-04-30
1037India2024-04-19
1038France2024-04-23
1039Russia2024-04-25
1040Canada2024-04-17
1041France2024-04-25
1042Japan2024-05-02
1043Spain2024-04-18
1044Italy2024-04-29
1045India2024-05-04
1046United Kingdom2024-05-08
1047United Kingdom2024-05-11
1048Brazil2024-04-14
1049Brazil2024-05-04

On-Demand Data

NameIdCountryDate
Silvio U Malet1000United Kingdom2024-04-25
Greenwood R Rim1001France2024-04-22
Faith Y Slusarski1002United Kingdom2024-04-28
Silvio H Tollner1003Japan2024-05-06
David K Stockham1004Germany2024-05-02
Wickens L Caudy1005Australia2024-04-14
Octavia I Butt1006Brazil2024-04-24
Sinclair Y Schemmer1007Argentina2024-04-29
Adams D Darakjy1008Brazil2024-04-24
Smith X Glick1009Spain2024-04-14
Jefferson H Royster1010Brazil2024-04-20
Kadeem R Briddick1011Australia2024-04-14
Rodrigues J Vocelka1012Germany2024-04-25
Leja V Ruta1013United Kingdom2024-05-07
Mujtaba A Gillian1014Brazil2024-05-02
Stacey O Morasca1015Germany2024-04-16
Chavez O Caldarera1016India2024-04-13
Aika N Marrier1017Argentina2024-04-15
Leon D Campain1018Spain2024-04-16
Adams J Iturbide1019Germany2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy M FlosiArgentinaAsiya Javayant QUALIFIED
Silvio E StensethJapanBernardo Dominic NEGOTIATION
Wickens V DilliardArgentinaXuxue Feng NEW
Darci N GillianIndiaAsiya Javayant RENEWAL
Alejandro X WhobreyUnited KingdomBernardo Dominic NEW
Murillo O BowleyArgentinaAnna Fali QUALIFIED
Alejandro J DoeCanadaElwin Sharvill NEGOTIATION
Leja N BowleySpainAmy Elsner QUALIFIED
Salvatore J DilliardFranceAsiya Javayant QUALIFIED
Alejandro R VenereBrazilIvan Magalhaes QUALIFIED
Isabel E DoeRussiaAmy Elsner UNQUALIFIED
Wickens P RutaArgentinaElwin Sharvill NEGOTIATION
Smith P BriddickIndiaOnyama Limba RENEWAL
Jefferson R DilliardCanadaIvan Magalhaes PROPOSAL
Darci C MarrierBrazilXuxue Feng NEGOTIATION
Munro L PerinSpainIoni Bowcher UNQUALIFIED
Antonio E OldroydBrazilAmy Elsner NEGOTIATION
Chavez O PaprockiRussiaBernardo Dominic RENEWAL
Munro P AlbaresItalyIoni Bowcher PROPOSAL
Claire X CaudyFranceIvan Magalhaes PROPOSAL
Alejandro V VocelkaRussiaElwin Sharvill RENEWAL
Chavez L ButtBrazilAnna Fali UNQUALIFIED
David Y NickaRussiaAmy Elsner RENEWAL
Octavia U DoeUnited KingdomIoni Bowcher NEW
Johnson K MorascaJapanIoni Bowcher NEW
Antonio C KolmetzArgentinaIoni Bowcher RENEWAL
Misaki T VenereBrazilAsiya Javayant PROPOSAL
Aruna I BologniaUnited KingdomAsiya Javayant NEGOTIATION
David D FigeroaArgentinaAmy Elsner PROPOSAL
Jennifer T StensethGermanyOnyama Limba RENEWAL
Jennifer U PerinSpainStephen Shaw RENEWAL
Johnson V BologniaAustraliaElwin Sharvill RENEWAL
Costa Y SlusarskiIndiaStephen Shaw PROPOSAL
Ashley N SlusarskiUnited KingdomElwin Sharvill NEW
Wickens A ShinkoJapanStephen Shaw NEGOTIATION
Stacey B MaletGermanyIvan Magalhaes NEW
Silvio Z CaldareraItalyIoni Bowcher NEGOTIATION
Wickens X GarufiUnited KingdomIoni Bowcher RENEWAL
Alejandro A RimCanadaIoni Bowcher UNQUALIFIED
Deepesh H StensethFranceAmy Elsner 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>