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
Misaki X OldroydCanadaOnyama Limba RENEWAL
Deepesh A SaylorsGermanyAsiya Javayant PROPOSAL
Kaitlin A CaldareraSpainElwin Sharvill PROPOSAL
Leja S MaletIndiaXuxue Feng UNQUALIFIED
Kaitlin P PoquetteRussiaIoni Bowcher UNQUALIFIED
Adams V FollerJapanBernardo Dominic NEW
David F GlickUnited KingdomStephen Shaw PROPOSAL
Clifford L VenereItalyIvan Magalhaes PROPOSAL
Nicolas A RoysterAustraliaAmy Elsner UNQUALIFIED
Arvin M MaletFranceBernardo Dominic QUALIFIED
Clifford X NickaGermanyBernardo Dominic QUALIFIED
Maisha J InouyeArgentinaBernardo Dominic UNQUALIFIED
Kaitlin T DilliardGermanyBernardo Dominic NEGOTIATION
Darci I FollerFranceIvan Magalhaes PROPOSAL
Adams X OldroydGermanyBernardo Dominic PROPOSAL
Antonio D MarrierCanadaStephen Shaw QUALIFIED
Deepesh A MaletCanadaAnna Fali RENEWAL
Aika M VenereIndiaOnyama Limba UNQUALIFIED
Clifford J FerenczCanadaIoni Bowcher NEGOTIATION
Ricardo U OldroydAustraliaIvan Magalhaes NEW
Greenwood B SergiSpainStephen Shaw RENEWAL
Arvin Y GlickRussiaOnyama Limba QUALIFIED
Murillo A OldroydRussiaOnyama Limba NEW
Tony S InouyeSpainStephen Shaw QUALIFIED
Stacey R ChuiItalyAsiya Javayant PROPOSAL
Kaitlin Q FigeroaIndiaAsiya Javayant NEW
Arvin P KuskoCanadaBernardo Dominic PROPOSAL
Rodrigues Y FollerArgentinaOnyama Limba QUALIFIED
Ricardo L BologniaRussiaAmy Elsner UNQUALIFIED
Izzy N WieserFranceAnna Fali UNQUALIFIED
Maria B RoysterJapanIvan Magalhaes NEW
Aditya Y VocelkaFranceAnna Fali QUALIFIED
Stacey K KuskoGermanyOnyama Limba QUALIFIED
Kadeem E GillianSpainAmy Elsner RENEWAL
Ricardo C RulapaughUnited KingdomIoni Bowcher RENEWAL
James L SergiCanadaXuxue Feng NEW
Rodrigues Y WieserRussiaAmy Elsner RENEWAL
Johnson Q FlosiAustraliaStephen Shaw RENEWAL
Maisha F GauchoUnited KingdomOnyama Limba PROPOSAL
Ricardo A MorascaRussiaElwin Sharvill PROPOSAL
Mayumi H CampainGermanyXuxue Feng PROPOSAL
Wickens F FlosiCanadaAnna Fali NEW
Kaitlin Y RutaJapanStephen Shaw UNQUALIFIED
Salvatore V AlbaresGermanyXuxue Feng RENEWAL
Greenwood B RimBrazilElwin Sharvill RENEWAL
Mujtaba K PoquetteFranceAnna Fali NEGOTIATION
Kaitlin G GillianAustraliaIoni Bowcher NEW
Sinclair P PaprockiJapanAmy Elsner PROPOSAL
Darci V BriddickCanadaAmy Elsner PROPOSAL
Adams L WieserItalyBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood M GlickJapanXuxue Feng UNQUALIFIED
Kaitlin M ShinkoUnited KingdomElwin Sharvill RENEWAL
Aika F BriddickArgentinaAnna Fali UNQUALIFIED
Cody L DarakjyJapanBernardo Dominic PROPOSAL
Tony J DarakjyRussiaIvan Magalhaes UNQUALIFIED
Maria C OstroskySpainElwin Sharvill PROPOSAL
Deepesh O AlbaresIndiaXuxue Feng NEW
Tony C DilliardArgentinaAsiya Javayant RENEWAL
Maria C TollnerFranceIvan Magalhaes NEGOTIATION
Faith H CaudyIndiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna P ButtAustralia2024-04-02King, Christopher A Esq NEGOTIATION97Elwin Sharvill
1001Murillo F ChuiCanada2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED67Ivan Magalhaes
1002Faith F PerinJapan2024-04-10Feiner Bros RENEWAL58Amy Elsner
1003Munro O InouyeJapan2024-04-08Chemel, James L Cpa NEGOTIATION97Asiya Javayant
1004Arvin D VenereIndia2024-04-01Dorl, James J Esq NEW30Ivan Magalhaes
1005Jeanfrancois Q ButtRussia2024-04-09Chapman, Ross E Esq UNQUALIFIED17Ivan Magalhaes
1006Jones R MorascaUnited Kingdom2024-04-16Benton, John B Jr PROPOSAL60Xuxue Feng
1007Ivar L RulapaughCanada2024-04-11Feltz Printing Service RENEWAL39Ioni Bowcher
1008Kaitlin M SaylorsIndia2024-04-19Feiner Bros NEGOTIATION19Amy Elsner
1009Smith L BriddickCanada2024-04-16Chanay, Jeffrey A Esq PROPOSAL50Ivan Magalhaes
1010Octavia J KuskoFrance2024-04-08Chapman, Ross E Esq UNQUALIFIED14Bernardo Dominic
1011Jones H CampainJapan2024-04-08Printing Dimensions UNQUALIFIED86Bernardo Dominic
1012Greenwood L GillianSpain2024-04-20Rangoni Of Florence QUALIFIED84Ioni Bowcher
1013Deepesh L IturbideArgentina2024-04-06Feltz Printing Service NEGOTIATION43Anna Fali
1014Aditya Y KolmetzGermany2024-04-18Buckley Miller Wright QUALIFIED8Ioni Bowcher
1015Octavia H MacleadJapan2024-04-07Feltz Printing Service UNQUALIFIED89Stephen Shaw
1016Murillo W FlosiCanada2024-04-22Commercial Press QUALIFIED62Onyama Limba
1017Mayumi P GauchoIndia2024-03-29Dorl, James J Esq NEGOTIATION87Bernardo Dominic
1018Nicolas Q WieserAustralia2024-04-01Rangoni Of Florence RENEWAL54Asiya Javayant
1019Alejandro K SaylorsSpain2024-04-20Morlong Associates UNQUALIFIED47Bernardo Dominic
1020Isabel I OldroydArgentina2024-04-02Feltz Printing Service UNQUALIFIED17Stephen Shaw
1021Tony H MaletJapan2024-04-01Truhlar And Truhlar Attys QUALIFIED48Elwin Sharvill
1022Sinclair Q AmigonAustralia2024-04-23Printing Dimensions PROPOSAL26Xuxue Feng
1023Ivar M OldroydAustralia2024-04-05Chapman, Ross E Esq NEW90Amy Elsner
1024Greenwood L MarrierJapan2024-04-04Buckley Miller Wright PROPOSAL33Xuxue Feng
1025Ashley Q ButtArgentina2024-04-17Truhlar And Truhlar Attys PROPOSAL75Xuxue Feng
1026Alejandro P MaletItaly2024-04-12Commercial Press PROPOSAL77Ioni Bowcher
1027Nicolas O FlosiFrance2024-04-16Morlong Associates NEW32Ioni Bowcher
1028Jones G RimFrance2024-04-01Rousseaux, Michael Esq NEW56Anna Fali
1029Munro Q MaletIndia2024-04-16Morlong Associates UNQUALIFIED43Onyama Limba
1030Costa N WhobreyAustralia2024-04-24Morlong Associates PROPOSAL58Onyama Limba
1031Jeanfrancois N CaldareraFrance2024-04-05Feiner Bros RENEWAL65Bernardo Dominic
1032Kaitlin K SergiItaly2024-04-15Commercial Press RENEWAL33Onyama Limba
1033Julie F NestleJapan2024-04-04Feltz Printing Service PROPOSAL34Xuxue Feng
1034Nicolas V RimFrance2024-04-04Rangoni Of Florence NEW32Bernardo Dominic
1035Clifford H PaprockiAustralia2024-03-29Feiner Bros QUALIFIED99Stephen Shaw
1036Ricardo W OstroskySpain2024-04-07Commercial Press QUALIFIED84Asiya Javayant
1037Kadeem M FollerCanada2024-04-03Printing Dimensions PROPOSAL64Stephen Shaw
1038Emily Q BowleyJapan2024-04-25Dorl, James J Esq PROPOSAL36Asiya Javayant
1039Arvin F OstroskyItaly2024-04-05King, Christopher A Esq UNQUALIFIED14Ivan Magalhaes
1040Chavez V WaycottUnited Kingdom2024-04-12Chanay, Jeffrey A Esq RENEWAL41Elwin Sharvill
1041Tony L WaycottJapan2024-04-14Printing Dimensions RENEWAL31Ioni Bowcher
1042Faith F InouyeUnited Kingdom2024-04-10Feltz Printing Service QUALIFIED8Ivan Magalhaes
1043Ashley J MaletJapan2024-04-13Benton, John B Jr UNQUALIFIED72Amy Elsner
1044Aika Y CaldareraUnited Kingdom2024-04-24Feltz Printing Service PROPOSAL77Elwin Sharvill
1045Izzy Z PoquetteArgentina2024-04-21King, Christopher A Esq UNQUALIFIED28Elwin Sharvill
1046Jeanfrancois O VocelkaSpain2024-04-02Chanay, Jeffrey A Esq NEGOTIATION47Elwin Sharvill
1047David D GlickJapan2024-04-01Chemel, James L Cpa UNQUALIFIED98Stephen Shaw
1048Tony L SlusarskiSpain2024-04-21Morlong Associates QUALIFIED87Xuxue Feng
1049Salvatore V WhobreyRussia2024-04-21Commercial Press PROPOSAL50Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson N AmigonArgentinaElwin Sharvill QUALIFIED
Claire B ChuiAustraliaIoni Bowcher RENEWAL
Greenwood O StockhamFranceIoni Bowcher NEW
Aditya U WieserFranceAmy Elsner NEW
Misaki I CampainFranceStephen Shaw NEGOTIATION
Mayumi J MarrierSpainXuxue Feng RENEWAL
Claire R SaylorsCanadaIoni Bowcher NEW
Chavez Y FigeroaUnited KingdomElwin Sharvill PROPOSAL
Rodrigues F GarufiJapanAsiya Javayant UNQUALIFIED
Misaki N WieserJapanXuxue Feng QUALIFIED
Johnson S MorascaUnited KingdomAmy Elsner QUALIFIED
Costa G BowleyBrazilBernardo Dominic NEGOTIATION
Wickens R GlickBrazilOnyama Limba NEW
Sinclair C SchemmerGermanyAmy Elsner RENEWAL
Jennifer W VenereJapanIvan Magalhaes NEGOTIATION
Nicolas H FlosiSpainIoni Bowcher PROPOSAL
Leon N MaletJapanAsiya Javayant UNQUALIFIED
Adams K MaletIndiaAmy Elsner QUALIFIED
Faith Z CaldareraRussiaIoni Bowcher NEGOTIATION
Ashley M BologniaRussiaAnna Fali QUALIFIED
Salvatore U VocelkaGermanyXuxue Feng NEW
Alejandro M RutaGermanyBernardo Dominic NEGOTIATION
Munro K KuskoBrazilAsiya Javayant NEGOTIATION
Arvin U FerenczUnited KingdomXuxue Feng PROPOSAL
Wickens B MaletCanadaAsiya Javayant QUALIFIED
Julie J MaletUnited KingdomBernardo Dominic UNQUALIFIED
Izzy K SaylorsCanadaAmy Elsner QUALIFIED
James P SchemmerItalyAmy Elsner UNQUALIFIED
Kadeem R VenereIndiaBernardo Dominic NEGOTIATION
Clifford Q FlosiGermanyElwin Sharvill QUALIFIED
Misaki N MarrierBrazilStephen Shaw NEW
Isabel L CampainRussiaBernardo Dominic PROPOSAL
Ivar F PaprockiSpainBernardo Dominic RENEWAL
Smith Q BowleyFranceAsiya Javayant NEW
Maisha M MaletRussiaBernardo Dominic NEGOTIATION
Clifford T VocelkaCanadaElwin Sharvill PROPOSAL
Chavez Z BologniaBrazilBernardo Dominic UNQUALIFIED
Kadeem X OstroskyIndiaStephen Shaw RENEWAL
James J VenereRussiaIoni Bowcher UNQUALIFIED
Alejandro R BowleyUnited KingdomAmy Elsner UNQUALIFIED
Maisha E ButtFranceIvan Magalhaes RENEWAL
David B FigeroaBrazilAnna Fali NEW
Izzy O InouyeFranceXuxue Feng NEW
Nicolas T MorascaGermanyAsiya Javayant QUALIFIED
Chavez P RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Adams Y RulapaughGermanyAsiya Javayant UNQUALIFIED
Munro F RimCanadaIvan Magalhaes UNQUALIFIED
Stacey Q NestleAustraliaIvan Magalhaes UNQUALIFIED
Ivar T AmigonSpainIvan Magalhaes NEGOTIATION
Claire T SchemmerRussiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Jeanfrancois Y Rim
Faith X Sergi
Ricardo R Inouye
Aika U Briddick
Greenwood Z Vocelka
Julie V Shinko
Murillo W Doe
Leon F Inouye
Leon E Ruta
Francesco A Whobrey
James B Maclead
Greenwood U Foller
Cody M Albares
Juan X Iturbide
Juan Z Ostrosky
Sinclair X Rim
Kadeem X Kusko
Arvin P Gaucho
Wickens O Kusko
Claire Q Doe
Arvin C Marrier
David E Albares
Munro K Saylors
Juan W Campain
Aika T Oldroyd
Jeanfrancois R Gaucho
Jefferson O Sergi
Alejandro T Rulapaugh
Kadeem C Malet
Adams Z Tollner
Kadeem B Foller
Nicolas R Dilliard
Aditya F Ostrosky
Izzy V Darakjy
Ricardo V Briddick
James G Dilliard
Octavia P Waycott
Jefferson V Butt
Izzy S Waycott
Jones S Paprocki
Claire G Maclead
Jones M Maclead
Mayumi P Chui
Jennifer T Ruta
Rodrigues F Figeroa
Murillo C Figeroa
Faith C Campain
Julie F Poquette
Kaitlin N Caldarera
Rodrigues L Venere
IdCountryDate
1000France2024-04-01
1001India2024-04-13
1002Canada2024-04-06
1003United Kingdom2024-04-21
1004United Kingdom2024-04-21
1005Spain2024-04-13
1006Brazil2024-04-05
1007Russia2024-04-15
1008Japan2024-04-23
1009Japan2024-04-13
1010Canada2024-03-31
1011United Kingdom2024-03-29
1012Russia2024-03-29
1013Australia2024-04-08
1014India2024-04-21
1015France2024-04-20
1016Russia2024-04-08
1017Italy2024-04-12
1018Canada2024-04-06
1019Spain2024-04-02
1020India2024-04-19
1021Germany2024-03-29
1022India2024-04-22
1023Japan2024-04-16
1024France2024-04-01
1025Argentina2024-03-30
1026United Kingdom2024-04-06
1027Spain2024-04-12
1028Canada2024-04-01
1029Japan2024-04-08
1030Russia2024-04-11
1031Argentina2024-04-19
1032Russia2024-04-03
1033Germany2024-04-04
1034Canada2024-04-01
1035Australia2024-04-08
1036Canada2024-04-24
1037Spain2024-04-07
1038Italy2024-04-21
1039Argentina2024-04-04
1040India2024-04-09
1041Australia2024-04-15
1042Italy2024-04-17
1043Spain2024-04-11
1044Canada2024-04-19
1045Russia2024-04-24
1046Argentina2024-04-06
1047France2024-04-03
1048Spain2024-04-04
1049Argentina2024-04-25

On-Demand Data

NameIdCountryDate
Jennifer A Stenseth1000Brazil2024-04-16
Antonio T Caldarera1001Spain2024-04-17
Silvio Z Kolmetz1002Germany2024-04-01
Julie S Malet1003France2024-04-16
Leja N Bowley1004Spain2024-04-16
Isabel X Royster1005Brazil2024-04-06
Kaitlin U Caudy1006France2024-04-06
Octavia N Campain1007Italy2024-04-17
Wickens L Darakjy1008Brazil2024-04-11
Jones V Schemmer1009Germany2024-04-13
Munro Y Rim1010Japan2024-04-05
Kaitlin S Perin1011Japan2024-04-27
Kadeem L Maclead1012Australia2024-04-26
Aditya M Maclead1013Spain2024-04-03
Kaitlin N Stockham1014Brazil2024-04-08
Mujtaba C Ruta1015United Kingdom2024-04-03
Isabel O Nestle1016Spain2024-04-21
David D Rulapaugh1017Japan2024-03-31
Costa I Albares1018Japan2024-04-03
Faith N Wieser1019Japan2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy W DarakjyIndiaIoni Bowcher NEGOTIATION
Costa U DoeUnited KingdomOnyama Limba RENEWAL
Clifford X RulapaughRussiaOnyama Limba UNQUALIFIED
Clifford N RoysterSpainIoni Bowcher NEW
Aruna F MorascaRussiaIvan Magalhaes RENEWAL
Jefferson X CaldareraRussiaBernardo Dominic PROPOSAL
Nicolas V InouyeRussiaOnyama Limba RENEWAL
Leon L SlusarskiAustraliaOnyama Limba UNQUALIFIED
James H MorascaJapanAmy Elsner NEW
Jones H ShinkoBrazilAnna Fali QUALIFIED
Aruna B NestleSpainBernardo Dominic RENEWAL
Clifford I AmigonUnited KingdomOnyama Limba NEW
Silvio X ButtRussiaIvan Magalhaes NEW
Emily Y DarakjySpainElwin Sharvill NEW
Silvio U SaylorsArgentinaBernardo Dominic RENEWAL
Leja F FerenczGermanyElwin Sharvill PROPOSAL
Leja B SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Darci R FollerBrazilAnna Fali RENEWAL
Stacey J StockhamJapanElwin Sharvill PROPOSAL
Aditya N MorascaCanadaAsiya Javayant RENEWAL
Ashley E GauchoItalyXuxue Feng NEW
Ricardo S SlusarskiAustraliaBernardo Dominic RENEWAL
Tony Z BologniaBrazilXuxue Feng UNQUALIFIED
Sinclair A FollerItalyElwin Sharvill QUALIFIED
Jennifer Z ShinkoFranceIoni Bowcher QUALIFIED
Ricardo O GlickRussiaOnyama Limba UNQUALIFIED
Jefferson F MorascaItalyAnna Fali RENEWAL
Sinclair Z CampainItalyIvan Magalhaes QUALIFIED
Mujtaba E DarakjySpainAsiya Javayant PROPOSAL
Ivar O NickaCanadaAsiya Javayant PROPOSAL
Maria Y StockhamArgentinaIvan Magalhaes NEW
Sinclair W CaldareraBrazilAmy Elsner NEGOTIATION
Mayumi Y OldroydItalyStephen Shaw RENEWAL
Chavez Z VenereJapanAmy Elsner NEGOTIATION
Chavez G RulapaughArgentinaIvan Magalhaes NEGOTIATION
Jefferson K MacleadCanadaIoni Bowcher UNQUALIFIED
Cody X FollerUnited KingdomBernardo Dominic RENEWAL
Mujtaba G ButtAustraliaOnyama Limba NEGOTIATION
Francesco C ButtBrazilIoni Bowcher PROPOSAL
Adams Z DilliardCanadaElwin Sharvill 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>