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
Morrow V StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Stacey I CampainSpainIoni Bowcher PROPOSAL
Johnson W GauchoCanadaOnyama Limba UNQUALIFIED
Misaki L KolmetzRussiaStephen Shaw NEW
Jones P FigeroaJapanElwin Sharvill NEW
Jones P InouyeJapanOnyama Limba RENEWAL
Maisha J RulapaughJapanIoni Bowcher NEGOTIATION
Leon A WaycottSpainOnyama Limba NEW
Adams Y OldroydGermanyIvan Magalhaes RENEWAL
Murillo B CaudyFranceElwin Sharvill NEGOTIATION
Murillo K ShinkoUnited KingdomStephen Shaw PROPOSAL
Antonio K ChuiGermanyElwin Sharvill QUALIFIED
Mayumi M InouyeCanadaXuxue Feng NEW
Silvio Z FerenczFranceStephen Shaw UNQUALIFIED
Ricardo F NickaItalyIoni Bowcher PROPOSAL
Mujtaba Y PerinUnited KingdomIvan Magalhaes NEW
Isabel G FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Johnson E TollnerRussiaAnna Fali NEW
Rodrigues M NickaRussiaAsiya Javayant NEW
Antonio D GauchoFranceAsiya Javayant RENEWAL
Misaki X StockhamArgentinaElwin Sharvill RENEWAL
Greenwood D MacleadIndiaStephen Shaw PROPOSAL
Juan H DilliardFranceIvan Magalhaes NEGOTIATION
Deepesh N MorascaGermanyAnna Fali PROPOSAL
Claire K SlusarskiSpainAmy Elsner RENEWAL
Silvio U AmigonGermanyElwin Sharvill NEW
Mayumi G RoysterCanadaBernardo Dominic RENEWAL
David N OstroskyUnited KingdomIoni Bowcher NEW
Francesco M SlusarskiJapanAmy Elsner PROPOSAL
Salvatore O VenereBrazilAsiya Javayant NEGOTIATION
Ivar R AlbaresItalyIvan Magalhaes QUALIFIED
Salvatore I BologniaJapanAsiya Javayant NEGOTIATION
Aruna O CampainItalyIvan Magalhaes UNQUALIFIED
Ivar B GauchoUnited KingdomIvan Magalhaes PROPOSAL
Greenwood S SlusarskiArgentinaElwin Sharvill RENEWAL
Leon C AmigonGermanyAmy Elsner QUALIFIED
Jefferson R ButtCanadaAsiya Javayant NEGOTIATION
Murillo G WaycottUnited KingdomAmy Elsner QUALIFIED
Aika C FigeroaBrazilXuxue Feng UNQUALIFIED
Deepesh J NickaItalyBernardo Dominic UNQUALIFIED
Morrow M MarrierRussiaBernardo Dominic RENEWAL
Ivar Z VocelkaBrazilElwin Sharvill UNQUALIFIED
Ashley O WieserGermanyIvan Magalhaes UNQUALIFIED
Murillo P RutaGermanyXuxue Feng QUALIFIED
Arvin O TollnerBrazilStephen Shaw RENEWAL
Arvin L PerinAustraliaAnna Fali PROPOSAL
Adams L GillianItalyOnyama Limba QUALIFIED
Tony L OldroydRussiaIoni Bowcher PROPOSAL
Antonio K InouyeIndiaAmy Elsner NEGOTIATION
Maria Y DarakjyIndiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maisha J VenereFranceAmy Elsner QUALIFIED
Maisha H RoysterGermanyIoni Bowcher NEGOTIATION
Aditya J CampainFranceAsiya Javayant PROPOSAL
Clifford W VocelkaArgentinaBernardo Dominic PROPOSAL
Clifford V BowleyCanadaAmy Elsner RENEWAL
Munro M DilliardIndiaIoni Bowcher PROPOSAL
Leja T PoquetteUnited KingdomXuxue Feng NEW
Izzy U DoeIndiaElwin Sharvill PROPOSAL
Wickens U SergiUnited KingdomBernardo Dominic PROPOSAL
Francesco S MorascaUnited KingdomIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon G AlbaresSpain2024-04-04Rousseaux, Michael Esq RENEWAL74Elwin Sharvill
1001Darci G RimRussia2024-04-17Truhlar And Truhlar Attys UNQUALIFIED1Stephen Shaw
1002James T KuskoArgentina2024-03-29Benton, John B Jr RENEWAL60Asiya Javayant
1003Cody N StensethArgentina2024-04-01Dorl, James J Esq PROPOSAL42Anna Fali
1004Izzy K WieserAustralia2024-04-03Morlong Associates QUALIFIED23Ioni Bowcher
1005Ivar Q NickaSpain2024-04-14Feiner Bros UNQUALIFIED31Amy Elsner
1006Kaitlin Q MacleadIndia2024-04-07Morlong Associates RENEWAL71Onyama Limba
1007Jefferson V FollerGermany2024-04-25Chanay, Jeffrey A Esq QUALIFIED20Bernardo Dominic
1008Aika U OldroydCanada2024-04-01Benton, John B Jr RENEWAL2Ioni Bowcher
1009Jeanfrancois L VocelkaArgentina2024-04-21Printing Dimensions PROPOSAL96Ivan Magalhaes
1010Ashley I BowleyBrazil2024-04-25Chapman, Ross E Esq PROPOSAL25Anna Fali
1011Morrow Q TollnerUnited Kingdom2024-04-07King, Christopher A Esq NEW76Ioni Bowcher
1012Aditya K GlickCanada2024-04-23Rousseaux, Michael Esq RENEWAL18Ivan Magalhaes
1013Arvin W OstroskyFrance2024-03-29Chanay, Jeffrey A Esq PROPOSAL58Ioni Bowcher
1014Rodrigues B RimUnited Kingdom2024-03-30Benton, John B Jr UNQUALIFIED89Ivan Magalhaes
1015Munro F FlosiSpain2024-03-30Chemel, James L Cpa NEGOTIATION29Xuxue Feng
1016Ashley G CaudyIndia2024-04-20Feltz Printing Service QUALIFIED2Elwin Sharvill
1017Julie T CaudyAustralia2024-04-10Chemel, James L Cpa QUALIFIED5Ioni Bowcher
1018Tony P BowleyGermany2024-04-14Rangoni Of Florence NEW6Bernardo Dominic
1019Silvio P VenereSpain2024-04-22Printing Dimensions RENEWAL26Stephen Shaw
1020Ricardo H OstroskyIndia2024-04-12Rangoni Of Florence RENEWAL53Ivan Magalhaes
1021James J NestleUnited Kingdom2024-04-23Benton, John B Jr NEGOTIATION5Onyama Limba
1022Stacey H NickaGermany2024-04-21Feltz Printing Service RENEWAL53Xuxue Feng
1023Isabel O KuskoAustralia2024-03-28Benton, John B Jr UNQUALIFIED95Onyama Limba
1024Leja W WaycottRussia2024-04-23Feltz Printing Service UNQUALIFIED77Elwin Sharvill
1025Jeanfrancois C GarufiCanada2024-04-13Buckley Miller Wright QUALIFIED78Stephen Shaw
1026Maria W StockhamRussia2024-04-15Feltz Printing Service RENEWAL87Asiya Javayant
1027Wickens L BowleyCanada2024-04-13Rousseaux, Michael Esq PROPOSAL77Asiya Javayant
1028Isabel U ButtRussia2024-04-13Morlong Associates NEW2Elwin Sharvill
1029Mayumi S InouyeJapan2024-04-11King, Christopher A Esq NEW27Ivan Magalhaes
1030Jeanfrancois S CampainAustralia2024-04-12Commercial Press QUALIFIED18Bernardo Dominic
1031Isabel R DoeArgentina2024-04-23Dorl, James J Esq PROPOSAL72Ivan Magalhaes
1032Juan B IturbideItaly2024-04-21Chapman, Ross E Esq QUALIFIED41Amy Elsner
1033Costa M SergiArgentina2024-04-09Printing Dimensions NEW26Xuxue Feng
1034Arvin S WaycottIndia2024-03-28Benton, John B Jr QUALIFIED48Xuxue Feng
1035Ashley X SergiIndia2024-04-15Morlong Associates QUALIFIED26Asiya Javayant
1036Adams S AmigonSpain2024-04-09Chemel, James L Cpa NEGOTIATION10Amy Elsner
1037Mujtaba M BologniaIndia2024-04-19Printing Dimensions NEW12Anna Fali
1038Arvin Z StockhamAustralia2024-03-30Chanay, Jeffrey A Esq RENEWAL60Amy Elsner
1039Kadeem R FigeroaJapan2024-03-28Chapman, Ross E Esq QUALIFIED75Bernardo Dominic
1040Aditya A AlbaresCanada2024-03-31Feiner Bros PROPOSAL91Amy Elsner
1041Arvin D GillianFrance2024-04-06Printing Dimensions UNQUALIFIED76Bernardo Dominic
1042Aika C CaldareraItaly2024-03-29Chapman, Ross E Esq RENEWAL56Ioni Bowcher
1043Antonio H SlusarskiJapan2024-04-10King, Christopher A Esq PROPOSAL34Asiya Javayant
1044Aditya H SergiCanada2024-03-30Buckley Miller Wright NEGOTIATION15Onyama Limba
1045Arvin R WhobreyBrazil2024-04-03King, Christopher A Esq RENEWAL59Anna Fali
1046Ashley A SchemmerGermany2024-04-01Chanay, Jeffrey A Esq RENEWAL36Anna Fali
1047Kaitlin N RoysterAustralia2024-04-01Printing Dimensions QUALIFIED25Amy Elsner
1048Claire K FerenczFrance2024-04-23Buckley Miller Wright PROPOSAL2Stephen Shaw
1049Ivar Y BriddickFrance2024-04-22Chapman, Ross E Esq QUALIFIED0Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow M FigeroaCanadaElwin Sharvill PROPOSAL
Alejandro Z DilliardFranceAnna Fali RENEWAL
Jennifer R InouyeBrazilAmy Elsner QUALIFIED
Kadeem S IturbideGermanyAnna Fali PROPOSAL
Ashley E CaldareraItalyIoni Bowcher RENEWAL
Costa D CampainArgentinaIoni Bowcher RENEWAL
Stacey N NickaIndiaStephen Shaw QUALIFIED
Kaitlin R FollerItalyIoni Bowcher NEW
Izzy B PaprockiBrazilIvan Magalhaes PROPOSAL
Julie G StensethRussiaIvan Magalhaes QUALIFIED
Leja H AlbaresFranceOnyama Limba PROPOSAL
Munro K PerinGermanyElwin Sharvill NEGOTIATION
Ashley D VenereBrazilElwin Sharvill NEW
Juan O GarufiAustraliaElwin Sharvill RENEWAL
Sinclair K AlbaresIndiaXuxue Feng PROPOSAL
Julie C ButtItalyBernardo Dominic NEW
Aruna Q FollerItalyAnna Fali QUALIFIED
Murillo L GlickGermanyXuxue Feng QUALIFIED
Ivar P CaudyCanadaAmy Elsner NEW
Izzy D MaletAustraliaAmy Elsner NEGOTIATION
Tony Y MorascaArgentinaStephen Shaw NEGOTIATION
James X FigeroaArgentinaStephen Shaw UNQUALIFIED
Isabel K InouyeSpainXuxue Feng PROPOSAL
Leon N OstroskyUnited KingdomAmy Elsner QUALIFIED
Izzy D CaudyUnited KingdomOnyama Limba QUALIFIED
Nicolas H MorascaIndiaOnyama Limba RENEWAL
Cody A SchemmerGermanyAmy Elsner QUALIFIED
David D RulapaughSpainAnna Fali UNQUALIFIED
Chavez R VenereSpainIoni Bowcher NEW
Salvatore H MarrierCanadaAsiya Javayant NEGOTIATION
Munro E RimGermanyElwin Sharvill UNQUALIFIED
Izzy E MarrierGermanyAsiya Javayant QUALIFIED
Greenwood Q BologniaRussiaBernardo Dominic QUALIFIED
Faith Z BriddickGermanyElwin Sharvill NEGOTIATION
Nicolas J DoeUnited KingdomElwin Sharvill PROPOSAL
Leja I BologniaGermanyBernardo Dominic RENEWAL
Mayumi T GillianBrazilStephen Shaw NEW
Clifford Y VenereSpainAmy Elsner QUALIFIED
Morrow I FerenczFranceIoni Bowcher NEGOTIATION
Darci L BowleyGermanyAnna Fali RENEWAL
Sinclair K WieserIndiaIvan Magalhaes NEW
Aika B GlickUnited KingdomAsiya Javayant NEGOTIATION
Wickens L AlbaresRussiaXuxue Feng UNQUALIFIED
Salvatore I MorascaBrazilAsiya Javayant RENEWAL
Isabel Y SergiRussiaStephen Shaw NEW
Smith P PoquetteRussiaXuxue Feng RENEWAL
Wickens R RulapaughItalyAmy Elsner NEW
Tony J DilliardArgentinaAsiya Javayant PROPOSAL
Julie Q RulapaughIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois J CampainGermanyAsiya Javayant QUALIFIED
Frozen Columns
Name
Murillo R Caldarera
Julie S Nicka
Munro I Royster
Mayumi P Oldroyd
Morrow C Saylors
Octavia R Slusarski
Sinclair H Oldroyd
Johnson L Perin
Jones L Tollner
Salvatore Y Stockham
Adams D Slusarski
Julie Y Caudy
Jeanfrancois J Poquette
Adams N Marrier
Salvatore X Perin
Alejandro T Slusarski
Kaitlin E Morasca
Stacey I Slusarski
Alejandro S Chui
Mujtaba P Maclead
Tony C Dilliard
Claire D Nicka
Faith C Iturbide
Silvio B Nicka
Antonio B Gillian
Emily W Shinko
Wickens M Gaucho
Clifford F Oldroyd
Jefferson G Gillian
Clifford K Marrier
Maria J Marrier
Sinclair S Figeroa
Munro T Gaucho
Nicolas Z Rulapaugh
Ricardo L Caldarera
Mujtaba W Malet
Faith Z Kolmetz
Ricardo K Bolognia
Juan W Briddick
Munro B Whobrey
Maisha A Gillian
Nicolas R Saylors
Ashley R Bowley
Jefferson P Paprocki
Salvatore R Briddick
Cody S Slusarski
Munro G Stockham
Jefferson A Perin
Misaki X Stenseth
Greenwood E Stenseth
IdCountryDate
1000Brazil2024-04-07
1001France2024-04-23
1002Canada2024-04-12
1003Japan2024-04-05
1004France2024-03-31
1005Australia2024-03-28
1006India2024-03-31
1007Japan2024-04-23
1008Australia2024-04-16
1009Italy2024-04-21
1010Italy2024-04-05
1011Argentina2024-04-17
1012Argentina2024-04-13
1013Brazil2024-04-05
1014Germany2024-04-14
1015Australia2024-04-12
1016Italy2024-04-24
1017Argentina2024-04-24
1018Australia2024-04-14
1019Spain2024-04-05
1020Spain2024-04-01
1021Russia2024-04-16
1022Brazil2024-04-23
1023Italy2024-04-01
1024United Kingdom2024-04-09
1025Japan2024-04-14
1026France2024-04-11
1027Australia2024-04-03
1028Russia2024-03-31
1029Spain2024-04-11
1030Germany2024-04-24
1031Canada2024-04-11
1032India2024-04-18
1033Argentina2024-04-07
1034Italy2024-03-29
1035Germany2024-04-21
1036Russia2024-04-01
1037France2024-04-21
1038India2024-04-24
1039Australia2024-03-30
1040Canada2024-04-13
1041Australia2024-03-31
1042Italy2024-04-03
1043Canada2024-03-30
1044India2024-04-20
1045France2024-04-23
1046Italy2024-04-05
1047France2024-04-10
1048France2024-04-12
1049India2024-03-28

On-Demand Data

NameIdCountryDate
Alejandro R Butt1000India2024-04-13
Ricardo Z Bolognia1001Italy2024-04-18
Aika J Garufi1002Russia2024-04-03
Johnson W Ferencz1003Italy2024-04-09
Rodrigues U Royster1004Brazil2024-04-15
Deepesh B Gillian1005Australia2024-04-20
Aruna F Briddick1006Russia2024-04-07
Antonio Y Inouye1007France2024-04-09
Stacey G Whobrey1008United Kingdom2024-04-25
Sinclair L Gaucho1009Japan2024-04-16
Aruna K Glick1010France2024-04-19
Maria Z Darakjy1011Russia2024-04-03
Claire L Stenseth1012Russia2024-03-29
Mujtaba X Perin1013United Kingdom2024-04-19
Faith E Gillian1014Germany2024-04-16
Ashley K Caudy1015Spain2024-04-20
Jennifer D Waycott1016Australia2024-04-09
Silvio U Amigon1017Argentina2024-04-08
Adams P Stenseth1018Russia2024-04-19
Leja I Sergi1019Spain2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan S GauchoAustraliaBernardo Dominic NEW
Misaki I RimAustraliaOnyama Limba QUALIFIED
Rodrigues P TollnerCanadaBernardo Dominic UNQUALIFIED
Arvin R StensethFranceElwin Sharvill NEGOTIATION
Jefferson D RoysterFranceAnna Fali UNQUALIFIED
Mujtaba L StockhamFranceAmy Elsner RENEWAL
Aruna T BowleyRussiaBernardo Dominic QUALIFIED
Antonio W AmigonBrazilElwin Sharvill RENEWAL
Deepesh K MaletSpainXuxue Feng UNQUALIFIED
Morrow O GauchoIndiaStephen Shaw NEW
Greenwood P StockhamAustraliaBernardo Dominic RENEWAL
Darci Q GlickItalyAsiya Javayant RENEWAL
Maria N ChuiGermanyBernardo Dominic QUALIFIED
Chavez P MaletIndiaXuxue Feng NEGOTIATION
Cody F PoquetteUnited KingdomAmy Elsner NEGOTIATION
Sinclair X PerinGermanyIvan Magalhaes RENEWAL
Maria H WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba N RulapaughIndiaAsiya Javayant NEGOTIATION
Nicolas E SchemmerAustraliaOnyama Limba QUALIFIED
Murillo D SergiBrazilStephen Shaw UNQUALIFIED
Claire R IturbideIndiaAmy Elsner QUALIFIED
Sinclair E SchemmerJapanIoni Bowcher QUALIFIED
Mayumi Y SlusarskiArgentinaAmy Elsner NEGOTIATION
Tony Z SaylorsCanadaIoni Bowcher RENEWAL
Francesco Y CaldareraFranceBernardo Dominic NEW
Silvio R CampainGermanyAsiya Javayant RENEWAL
Darci I CaudyUnited KingdomBernardo Dominic RENEWAL
Octavia S PoquetteArgentinaElwin Sharvill UNQUALIFIED
Clifford N WhobreyRussiaIoni Bowcher NEW
Adams W FigeroaIndiaStephen Shaw NEGOTIATION
Chavez G AmigonBrazilElwin Sharvill UNQUALIFIED
Leon P BologniaRussiaIvan Magalhaes RENEWAL
Greenwood P CampainIndiaStephen Shaw UNQUALIFIED
Smith W CaldareraItalyAsiya Javayant QUALIFIED
Ricardo P VocelkaIndiaXuxue Feng NEW
Murillo P DilliardSpainElwin Sharvill RENEWAL
Silvio D DarakjyBrazilIoni Bowcher UNQUALIFIED
Murillo T RoysterAustraliaStephen Shaw QUALIFIED
Juan J VocelkaJapanOnyama Limba NEGOTIATION
Francesco S AlbaresIndiaStephen Shaw NEW

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