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
Mayumi J RoysterSpainAnna Fali NEW
Munro X MacleadGermanyIoni Bowcher QUALIFIED
Aruna P FigeroaAustraliaIoni Bowcher NEGOTIATION
Cody P BowleyAustraliaAsiya Javayant PROPOSAL
Jeanfrancois N DilliardFranceOnyama Limba RENEWAL
Nicolas U GillianCanadaAsiya Javayant NEGOTIATION
Smith D PaprockiArgentinaIvan Magalhaes NEGOTIATION
Isabel O OldroydArgentinaIoni Bowcher NEGOTIATION
Faith G ButtArgentinaAmy Elsner NEW
Deepesh S ButtUnited KingdomAmy Elsner NEGOTIATION
Claire M BologniaCanadaXuxue Feng QUALIFIED
Nicolas N MarrierSpainIoni Bowcher NEGOTIATION
Faith P PoquetteArgentinaXuxue Feng PROPOSAL
Jones N StensethItalyStephen Shaw NEW
Misaki R MaletSpainElwin Sharvill RENEWAL
Darci D PerinUnited KingdomIvan Magalhaes NEGOTIATION
Clifford D BologniaBrazilIoni Bowcher NEGOTIATION
Tony X InouyeArgentinaAnna Fali UNQUALIFIED
Salvatore I WieserArgentinaElwin Sharvill NEGOTIATION
Izzy G ButtAustraliaAsiya Javayant UNQUALIFIED
Darci Z FlosiArgentinaAmy Elsner QUALIFIED
Maria B DoeAustraliaAsiya Javayant RENEWAL
Costa M AmigonBrazilIvan Magalhaes NEW
Silvio I WhobreyArgentinaOnyama Limba QUALIFIED
Francesco H OstroskyRussiaBernardo Dominic NEW
Jones Q CaudyItalyAmy Elsner UNQUALIFIED
Misaki Q PoquetteJapanBernardo Dominic RENEWAL
Tony A FerenczCanadaStephen Shaw NEW
Mayumi N FlosiJapanIoni Bowcher QUALIFIED
Deepesh J OldroydSpainAnna Fali NEW
Arvin D PaprockiFranceStephen Shaw NEW
Julie V DilliardAustraliaIvan Magalhaes PROPOSAL
Chavez P NestleGermanyXuxue Feng NEGOTIATION
Isabel R KolmetzUnited KingdomIoni Bowcher RENEWAL
Mujtaba E WaycottItalyElwin Sharvill QUALIFIED
Tony M PaprockiArgentinaOnyama Limba UNQUALIFIED
Jennifer R MorascaAustraliaBernardo Dominic UNQUALIFIED
Nicolas D GlickSpainAnna Fali UNQUALIFIED
Emily U BriddickRussiaIoni Bowcher UNQUALIFIED
James Y KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Alejandro C ButtFranceBernardo Dominic NEW
Jefferson M CaldareraItalyAmy Elsner NEGOTIATION
Kadeem X GillianFranceAmy Elsner RENEWAL
Greenwood M MaletSpainOnyama Limba UNQUALIFIED
Chavez Y KolmetzAustraliaBernardo Dominic NEGOTIATION
Cody V SergiBrazilElwin Sharvill PROPOSAL
Juan O NestleCanadaStephen Shaw UNQUALIFIED
Mayumi J DilliardGermanyXuxue Feng NEGOTIATION
Darci P PaprockiAustraliaElwin Sharvill UNQUALIFIED
Jeanfrancois O FerenczAustraliaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jones M GauchoCanadaAsiya Javayant PROPOSAL
Munro N FigeroaUnited KingdomIoni Bowcher NEW
Tony F FollerUnited KingdomStephen Shaw QUALIFIED
Munro K GlickIndiaStephen Shaw QUALIFIED
Chavez P VenereArgentinaStephen Shaw UNQUALIFIED
Mayumi G AlbaresCanadaIoni Bowcher UNQUALIFIED
Juan N CaldareraRussiaBernardo Dominic NEGOTIATION
Chavez X FollerIndiaOnyama Limba QUALIFIED
Faith R MorascaBrazilAsiya Javayant QUALIFIED
Rodrigues E PoquetteAustraliaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon S NickaBrazil2024-04-01King, Christopher A Esq UNQUALIFIED49Ioni Bowcher
1001Maisha L MarrierBrazil2024-04-24Truhlar And Truhlar Attys PROPOSAL61Anna Fali
1002Kadeem U ButtArgentina2024-04-22Rousseaux, Michael Esq UNQUALIFIED28Anna Fali
1003Costa O StensethItaly2024-04-19Chemel, James L Cpa NEW41Asiya Javayant
1004Isabel R NickaFrance2024-04-19Benton, John B Jr QUALIFIED0Bernardo Dominic
1005Alejandro F GillianItaly2024-04-17Dorl, James J Esq NEGOTIATION67Ioni Bowcher
1006Faith N StockhamRussia2024-03-28Benton, John B Jr NEW87Ivan Magalhaes
1007Misaki J NestleIndia2024-04-12Chemel, James L Cpa UNQUALIFIED38Onyama Limba
1008Aika T KolmetzGermany2024-03-30Feiner Bros QUALIFIED69Anna Fali
1009Leon D FlosiFrance2024-04-02Truhlar And Truhlar Attys RENEWAL70Asiya Javayant
1010Claire F BowleySpain2024-04-23Benton, John B Jr NEGOTIATION94Stephen Shaw
1011Aditya Z FlosiJapan2024-03-28Morlong Associates NEGOTIATION39Stephen Shaw
1012Maisha P PaprockiUnited Kingdom2024-03-28Rangoni Of Florence PROPOSAL1Elwin Sharvill
1013Smith N CaudyIndia2024-04-01Printing Dimensions NEGOTIATION66Asiya Javayant
1014Maria U BriddickArgentina2024-04-24Truhlar And Truhlar Attys PROPOSAL40Onyama Limba
1015Maisha C SchemmerAustralia2024-04-14Chapman, Ross E Esq NEGOTIATION41Ioni Bowcher
1016Cody K KolmetzGermany2024-03-30King, Christopher A Esq PROPOSAL9Asiya Javayant
1017Morrow E RutaCanada2024-04-19Printing Dimensions NEW67Anna Fali
1018Isabel C BologniaCanada2024-04-24Rousseaux, Michael Esq RENEWAL36Asiya Javayant
1019Izzy N GarufiSpain2024-04-15Chemel, James L Cpa NEW96Bernardo Dominic
1020Isabel Y CampainCanada2024-04-20Benton, John B Jr PROPOSAL76Ioni Bowcher
1021Clifford A CampainBrazil2024-04-09Benton, John B Jr NEGOTIATION59Stephen Shaw
1022Greenwood F WieserFrance2024-04-10Morlong Associates RENEWAL20Asiya Javayant
1023Ivar G WieserAustralia2024-03-31Morlong Associates NEGOTIATION39Amy Elsner
1024Maisha R GlickItaly2024-04-04Morlong Associates UNQUALIFIED52Asiya Javayant
1025Octavia V InouyeItaly2024-04-04Buckley Miller Wright RENEWAL91Onyama Limba
1026Jones V BowleyBrazil2024-04-12Chanay, Jeffrey A Esq QUALIFIED81Elwin Sharvill
1027Jeanfrancois G GauchoSpain2024-04-15Chapman, Ross E Esq RENEWAL45Elwin Sharvill
1028Misaki U FlosiBrazil2024-04-14Chapman, Ross E Esq UNQUALIFIED20Ivan Magalhaes
1029Munro R BriddickUnited Kingdom2024-04-03Feltz Printing Service NEGOTIATION36Amy Elsner
1030Kaitlin E PoquetteArgentina2024-04-01Feiner Bros NEW83Bernardo Dominic
1031Silvio X ButtItaly2024-04-21Truhlar And Truhlar Attys NEW34Asiya Javayant
1032Misaki F DoeArgentina2024-04-11Printing Dimensions PROPOSAL33Elwin Sharvill
1033Antonio B MacleadItaly2024-04-16Morlong Associates UNQUALIFIED79Onyama Limba
1034Jones A MaletCanada2024-04-20Feiner Bros NEGOTIATION9Elwin Sharvill
1035Kaitlin O StockhamCanada2024-03-30Feiner Bros RENEWAL11Amy Elsner
1036Leja L GlickGermany2024-04-26King, Christopher A Esq PROPOSAL63Asiya Javayant
1037Jefferson Z SlusarskiGermany2024-03-30Dorl, James J Esq NEGOTIATION63Stephen Shaw
1038Aika C WhobreyArgentina2024-04-20Chanay, Jeffrey A Esq NEW62Bernardo Dominic
1039James T SchemmerUnited Kingdom2024-04-06Buckley Miller Wright UNQUALIFIED88Ivan Magalhaes
1040Costa X RimItaly2024-04-07Feltz Printing Service NEW82Xuxue Feng
1041James G VocelkaJapan2024-04-20Rousseaux, Michael Esq QUALIFIED77Xuxue Feng
1042Faith U NickaIndia2024-04-26Chemel, James L Cpa NEGOTIATION97Ivan Magalhaes
1043Francesco V BologniaJapan2024-03-30Feltz Printing Service UNQUALIFIED31Elwin Sharvill
1044Deepesh A PaprockiAustralia2024-04-01Printing Dimensions QUALIFIED23Ivan Magalhaes
1045Deepesh S CaudyFrance2024-04-17Chanay, Jeffrey A Esq NEGOTIATION53Anna Fali
1046Izzy X StensethUnited Kingdom2024-04-15Chapman, Ross E Esq PROPOSAL49Elwin Sharvill
1047Stacey S AlbaresSpain2024-03-30Truhlar And Truhlar Attys UNQUALIFIED23Asiya Javayant
1048Morrow H WhobreyFrance2024-04-08Chemel, James L Cpa NEW6Onyama Limba
1049Smith C TollnerCanada2024-04-12Feltz Printing Service RENEWAL86Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ashley K PoquetteGermanyIvan Magalhaes UNQUALIFIED
Greenwood T GlickItalyIvan Magalhaes NEGOTIATION
Tony J GlickGermanyAnna Fali QUALIFIED
Salvatore D StensethRussiaAsiya Javayant PROPOSAL
Faith Q GauchoIndiaIvan Magalhaes PROPOSAL
Juan M RutaRussiaIoni Bowcher QUALIFIED
Greenwood U PerinAustraliaAnna Fali NEGOTIATION
Isabel Z GarufiAustraliaAmy Elsner NEGOTIATION
Mujtaba M FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia Z GillianRussiaIvan Magalhaes NEW
Silvio O WhobreyUnited KingdomOnyama Limba PROPOSAL
Aditya W RoysterAustraliaOnyama Limba NEGOTIATION
Clifford O ShinkoFranceAnna Fali RENEWAL
Izzy C PoquetteIndiaAmy Elsner UNQUALIFIED
Deepesh N VocelkaRussiaXuxue Feng PROPOSAL
Mujtaba X MaletBrazilIoni Bowcher RENEWAL
Aruna U TollnerIndiaBernardo Dominic NEGOTIATION
Murillo V CampainRussiaOnyama Limba UNQUALIFIED
Darci A RoysterRussiaIvan Magalhaes RENEWAL
Francesco X SchemmerIndiaAnna Fali UNQUALIFIED
Clifford X VocelkaArgentinaIoni Bowcher UNQUALIFIED
Leja G CampainRussiaXuxue Feng UNQUALIFIED
Cody C WhobreyFranceAmy Elsner QUALIFIED
Jefferson X NickaSpainAnna Fali RENEWAL
Leon Y FlosiGermanyOnyama Limba NEW
Aditya S VocelkaGermanyStephen Shaw NEGOTIATION
Alejandro X InouyeItalyXuxue Feng NEW
Nicolas B GillianBrazilAsiya Javayant RENEWAL
Aruna P SlusarskiBrazilAsiya Javayant UNQUALIFIED
Kadeem Y BowleyFranceOnyama Limba NEW
Costa N MaletGermanyIvan Magalhaes NEW
Misaki B WhobreyIndiaBernardo Dominic RENEWAL
Leja T RoysterGermanyAsiya Javayant PROPOSAL
Cody W KolmetzJapanBernardo Dominic QUALIFIED
Greenwood H RulapaughIndiaOnyama Limba NEW
Leja A BowleyJapanOnyama Limba NEGOTIATION
Maria C PoquetteSpainIvan Magalhaes QUALIFIED
Jones Q BologniaSpainBernardo Dominic QUALIFIED
Chavez U ButtAustraliaXuxue Feng NEGOTIATION
Clifford J NickaGermanyIvan Magalhaes QUALIFIED
Costa F MarrierItalyXuxue Feng RENEWAL
Julie U NickaAustraliaAmy Elsner QUALIFIED
Kaitlin B MaletSpainXuxue Feng NEW
Misaki H RulapaughBrazilElwin Sharvill UNQUALIFIED
Jennifer X ShinkoBrazilOnyama Limba PROPOSAL
Claire U AmigonBrazilIoni Bowcher NEW
James C SaylorsUnited KingdomBernardo Dominic NEGOTIATION
Salvatore G GarufiIndiaAnna Fali PROPOSAL
Munro Z InouyeCanadaStephen Shaw RENEWAL
Maisha O GauchoCanadaAmy Elsner NEGOTIATION
Frozen Columns
Name
Izzy Y Iturbide
Wickens Q Figeroa
Johnson E Ruta
Munro Q Dilliard
Stacey Z Nicka
Silvio C Doe
Jennifer N Perin
Jefferson X Briddick
Darci A Shinko
Adams X Oldroyd
Emily I Shinko
Rodrigues F Waycott
Mujtaba W Oldroyd
Octavia V Royster
Munro P Kusko
Aika M Chui
Nicolas U Tollner
Wickens Z Glick
Izzy S Chui
Kaitlin Q Darakjy
Francesco O Oldroyd
Juan I Saylors
Izzy N Gaucho
Mayumi U Kusko
Sinclair X Stockham
Maisha H Venere
James C Inouye
Kaitlin E Briddick
Murillo H Nicka
Jones B Marrier
Emily D Butt
Isabel G Paprocki
Silvio S Briddick
Silvio A Malet
Stacey W Venere
Leon M Saylors
Leon E Vocelka
Isabel U Briddick
Ashley N Amigon
Julie P Schemmer
Jeanfrancois I Ruta
Deepesh V Maclead
Greenwood D Darakjy
Salvatore W Morasca
Arvin K Chui
Aruna V Morasca
Smith Y Oldroyd
Mujtaba B Stockham
Maisha C Caudy
Emily Z Marrier
IdCountryDate
1000Russia2024-04-25
1001Germany2024-03-30
1002Italy2024-03-28
1003Italy2024-04-23
1004Italy2024-03-31
1005Russia2024-04-07
1006Germany2024-03-30
1007France2024-04-23
1008France2024-04-21
1009Spain2024-04-06
1010India2024-04-07
1011Brazil2024-03-31
1012Australia2024-04-02
1013Argentina2024-04-15
1014Australia2024-04-15
1015Australia2024-04-17
1016United Kingdom2024-04-13
1017Japan2024-04-15
1018Italy2024-04-09
1019Italy2024-04-10
1020Germany2024-04-26
1021Japan2024-04-10
1022India2024-04-09
1023Spain2024-04-03
1024United Kingdom2024-03-28
1025Canada2024-04-04
1026India2024-04-03
1027Italy2024-04-06
1028Spain2024-04-07
1029Spain2024-04-11
1030Brazil2024-04-03
1031Argentina2024-04-03
1032Australia2024-04-09
1033Spain2024-04-13
1034Argentina2024-03-28
1035Brazil2024-04-25
1036Japan2024-04-08
1037Argentina2024-04-24
1038Canada2024-04-04
1039United Kingdom2024-03-31
1040Australia2024-04-14
1041Italy2024-04-03
1042Argentina2024-04-10
1043Germany2024-04-03
1044Italy2024-04-18
1045Japan2024-03-30
1046United Kingdom2024-04-05
1047Australia2024-04-11
1048Italy2024-03-31
1049Italy2024-04-26

On-Demand Data

NameIdCountryDate
Izzy V Albares1000Italy2024-03-30
Izzy S Bolognia1001France2024-04-16
Jeanfrancois H Rim1002India2024-04-17
Rodrigues X Bowley1003Spain2024-04-21
Smith K Perin1004Canada2024-04-20
Mujtaba H Rim1005Russia2024-04-24
Chavez G Stenseth1006Germany2024-04-06
Maisha D Briddick1007Italy2024-04-07
Costa H Nicka1008Brazil2024-04-07
Wickens Q Campain1009Germany2024-04-05
Juan N Malet1010Spain2024-04-18
Silvio M Stenseth1011Canada2024-04-14
Silvio K Bolognia1012Spain2024-03-29
Stacey P Caudy1013Canada2024-03-31
Munro I Saylors1014Italy2024-03-31
Jones Z Amigon1015Spain2024-04-13
Kadeem B Oldroyd1016Australia2024-04-22
Kadeem P Oldroyd1017Russia2024-04-04
Murillo M Gaucho1018France2024-04-12
Kaitlin I Gaucho1019Australia2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas M GarufiGermanyElwin Sharvill UNQUALIFIED
Cody S FlosiArgentinaAmy Elsner QUALIFIED
Adams T ChuiArgentinaAmy Elsner RENEWAL
Clifford C SergiRussiaXuxue Feng PROPOSAL
Misaki Q MacleadJapanIvan Magalhaes UNQUALIFIED
Clifford T ShinkoGermanyAmy Elsner PROPOSAL
Aika I KuskoArgentinaIoni Bowcher NEW
Alejandro T MaletRussiaBernardo Dominic RENEWAL
Leon K AlbaresCanadaAsiya Javayant NEGOTIATION
Johnson D KuskoCanadaElwin Sharvill QUALIFIED
Antonio V OstroskySpainIvan Magalhaes RENEWAL
Claire L AmigonAustraliaAmy Elsner NEGOTIATION
Darci I DilliardSpainStephen Shaw QUALIFIED
Wickens B SlusarskiBrazilElwin Sharvill PROPOSAL
Tony N TollnerBrazilAmy Elsner PROPOSAL
Aika G OstroskyUnited KingdomAnna Fali NEW
Wickens O DilliardArgentinaIvan Magalhaes NEW
Cody F MaletBrazilAmy Elsner QUALIFIED
Juan K PerinItalyAmy Elsner PROPOSAL
Sinclair G DoeFranceIoni Bowcher NEW
Arvin A MaletItalyAnna Fali NEGOTIATION
Jennifer Z MacleadIndiaOnyama Limba NEGOTIATION
Costa A GauchoAustraliaAsiya Javayant RENEWAL
Alejandro S CampainSpainIoni Bowcher NEGOTIATION
Jefferson Y MaletArgentinaAmy Elsner QUALIFIED
James U WhobreyGermanyBernardo Dominic QUALIFIED
Wickens C PerinRussiaOnyama Limba NEGOTIATION
Juan P KuskoBrazilAnna Fali RENEWAL
Johnson G CampainGermanyAmy Elsner RENEWAL
Rodrigues K MaletSpainIoni Bowcher NEW
Deepesh G GlickUnited KingdomXuxue Feng NEGOTIATION
James K MaletGermanyIvan Magalhaes RENEWAL
Salvatore B PoquetteAustraliaElwin Sharvill RENEWAL
Jeanfrancois B ChuiIndiaAmy Elsner RENEWAL
Silvio L RoysterCanadaIvan Magalhaes RENEWAL
Francesco B WaycottRussiaXuxue Feng NEW
Clifford E KuskoArgentinaElwin Sharvill PROPOSAL
Cody I NickaIndiaAnna Fali RENEWAL
Stacey O MacleadGermanyElwin Sharvill NEW
Julie B RimIndiaOnyama Limba NEGOTIATION

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