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
Aika K WieserFranceAsiya Javayant PROPOSAL
Izzy G NestleJapanOnyama Limba QUALIFIED
Maisha A ButtRussiaBernardo Dominic NEW
Jennifer A VenereSpainStephen Shaw RENEWAL
David X PaprockiJapanAmy Elsner NEW
Mayumi O SchemmerArgentinaAmy Elsner NEW
Johnson L SergiFranceAsiya Javayant QUALIFIED
Leja I SergiItalyStephen Shaw NEW
Kadeem K CampainGermanyAsiya Javayant NEGOTIATION
David G MorascaSpainStephen Shaw NEW
Leon T OldroydFranceXuxue Feng UNQUALIFIED
Jennifer R ChuiRussiaAnna Fali NEW
Faith F CaudyItalyBernardo Dominic UNQUALIFIED
Emily Q StockhamGermanyStephen Shaw NEW
Aditya N SaylorsCanadaIoni Bowcher PROPOSAL
Salvatore T RimGermanyAsiya Javayant RENEWAL
Costa C MarrierBrazilStephen Shaw RENEWAL
Tony R CampainSpainAnna Fali RENEWAL
Murillo L SaylorsBrazilIvan Magalhaes NEGOTIATION
Mayumi J WhobreyAustraliaElwin Sharvill QUALIFIED
Stacey A FollerFranceAsiya Javayant QUALIFIED
Faith V BriddickSpainAsiya Javayant PROPOSAL
Johnson G RutaAustraliaOnyama Limba PROPOSAL
Ivar O SlusarskiItalyOnyama Limba NEW
Alejandro E RulapaughRussiaIoni Bowcher PROPOSAL
Maria V GlickGermanyAnna Fali UNQUALIFIED
Nicolas K MaletGermanyOnyama Limba PROPOSAL
Jennifer Z CaldareraUnited KingdomIvan Magalhaes NEGOTIATION
Munro U DoeAustraliaElwin Sharvill QUALIFIED
Antonio J RimGermanyAnna Fali RENEWAL
Misaki A SlusarskiItalyIoni Bowcher PROPOSAL
Jennifer Z ButtGermanyStephen Shaw UNQUALIFIED
Rodrigues B VenereUnited KingdomIoni Bowcher NEGOTIATION
Jefferson M WieserRussiaXuxue Feng QUALIFIED
Antonio D StockhamJapanIoni Bowcher NEGOTIATION
Leja J BriddickFranceIoni Bowcher RENEWAL
Silvio O CaudyJapanAmy Elsner QUALIFIED
Jones A FollerUnited KingdomIoni Bowcher PROPOSAL
Stacey Z FigeroaFranceIoni Bowcher RENEWAL
Antonio P VocelkaFranceStephen Shaw QUALIFIED
Francesco Z TollnerSpainAnna Fali NEW
Jefferson R GillianAustraliaAmy Elsner RENEWAL
Leja K AlbaresBrazilStephen Shaw RENEWAL
Johnson J RoysterCanadaAsiya Javayant RENEWAL
Morrow E GillianUnited KingdomIoni Bowcher RENEWAL
Adams M VenereUnited KingdomAnna Fali NEGOTIATION
Isabel V VenereBrazilBernardo Dominic NEGOTIATION
Kaitlin N KolmetzAustraliaAnna Fali RENEWAL
Greenwood K RimFranceBernardo Dominic UNQUALIFIED
Jennifer Y CaldareraItalyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio U DilliardBrazilStephen Shaw RENEWAL
Francesco D StockhamCanadaXuxue Feng UNQUALIFIED
Clifford L CaudyUnited KingdomStephen Shaw NEW
Tony N InouyeRussiaAmy Elsner NEGOTIATION
Rodrigues T WaycottFranceAsiya Javayant UNQUALIFIED
Faith V RimAustraliaAsiya Javayant RENEWAL
Ivar G DoeRussiaStephen Shaw UNQUALIFIED
Isabel U PoquetteArgentinaOnyama Limba NEGOTIATION
Chavez T AlbaresSpainAnna Fali UNQUALIFIED
Munro K DoeRussiaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin S FerenczFrance2024-04-11Benton, John B Jr PROPOSAL30Asiya Javayant
1001David J DoeUnited Kingdom2024-04-13Feltz Printing Service QUALIFIED72Ioni Bowcher
1002Leja C WhobreyFrance2024-04-17Printing Dimensions NEW72Onyama Limba
1003Leon S GauchoSpain2024-04-02Rangoni Of Florence RENEWAL68Xuxue Feng
1004Munro T TollnerArgentina2024-04-12Buckley Miller Wright NEGOTIATION55Xuxue Feng
1005Misaki W BriddickGermany2024-04-08King, Christopher A Esq UNQUALIFIED0Elwin Sharvill
1006Silvio W FerenczJapan2024-04-24Truhlar And Truhlar Attys UNQUALIFIED18Bernardo Dominic
1007Jennifer B PerinAustralia2024-04-08Morlong Associates NEW85Bernardo Dominic
1008Claire X WaycottUnited Kingdom2024-04-19Chanay, Jeffrey A Esq RENEWAL32Stephen Shaw
1009Morrow D PaprockiIndia2024-04-18Feiner Bros QUALIFIED50Elwin Sharvill
1010Julie M ShinkoItaly2024-03-30Chanay, Jeffrey A Esq QUALIFIED9Elwin Sharvill
1011Leon N ButtFrance2024-04-17Feiner Bros NEW97Asiya Javayant
1012James U VenereRussia2024-04-24Truhlar And Truhlar Attys PROPOSAL22Asiya Javayant
1013Nicolas T CaudyJapan2024-04-10Feltz Printing Service NEW8Stephen Shaw
1014Leon N GarufiArgentina2024-04-17Rousseaux, Michael Esq NEGOTIATION91Ioni Bowcher
1015Faith X IturbideAustralia2024-04-06Printing Dimensions NEW68Onyama Limba
1016Cody C WieserCanada2024-04-24Benton, John B Jr RENEWAL25Stephen Shaw
1017Adams O NickaSpain2024-04-06Commercial Press NEGOTIATION2Xuxue Feng
1018Chavez O WieserRussia2024-03-30Chanay, Jeffrey A Esq QUALIFIED47Asiya Javayant
1019Clifford O RimBrazil2024-03-26Feiner Bros RENEWAL26Asiya Javayant
1020Darci H MorascaAustralia2024-04-09Benton, John B Jr PROPOSAL0Ivan Magalhaes
1021Ashley Q GauchoSpain2024-04-10King, Christopher A Esq NEW73Stephen Shaw
1022Darci Z RimUnited Kingdom2024-04-19Rousseaux, Michael Esq NEGOTIATION43Ioni Bowcher
1023Izzy Q MarrierRussia2024-04-02Rousseaux, Michael Esq NEW93Amy Elsner
1024Emily T AlbaresBrazil2024-04-06Feltz Printing Service NEGOTIATION59Ivan Magalhaes
1025Antonio Y SergiRussia2024-04-01Buckley Miller Wright NEW93Onyama Limba
1026Emily P SaylorsIndia2024-04-12Buckley Miller Wright QUALIFIED26Elwin Sharvill
1027Ashley E MaletItaly2024-04-08Commercial Press RENEWAL97Amy Elsner
1028Ivar L BowleyArgentina2024-04-24Morlong Associates QUALIFIED62Ivan Magalhaes
1029Kadeem Z CaldareraArgentina2024-04-05Truhlar And Truhlar Attys QUALIFIED47Elwin Sharvill
1030Chavez Z DarakjyBrazil2024-04-08Dorl, James J Esq QUALIFIED62Asiya Javayant
1031Deepesh O FerenczSpain2024-04-10Feiner Bros UNQUALIFIED2Amy Elsner
1032Chavez S ShinkoArgentina2024-04-12Benton, John B Jr RENEWAL56Amy Elsner
1033Darci S MaletItaly2024-04-19Chemel, James L Cpa RENEWAL82Xuxue Feng
1034Costa Y FerenczBrazil2024-04-19Morlong Associates RENEWAL50Ioni Bowcher
1035Antonio S WaycottAustralia2024-04-03Dorl, James J Esq QUALIFIED26Onyama Limba
1036Faith V GauchoFrance2024-03-30Dorl, James J Esq UNQUALIFIED1Ioni Bowcher
1037Chavez W ButtFrance2024-04-17Dorl, James J Esq NEGOTIATION48Amy Elsner
1038Darci X CaldareraFrance2024-04-04Buckley Miller Wright NEGOTIATION33Amy Elsner
1039Rodrigues K OldroydJapan2024-04-07Dorl, James J Esq PROPOSAL27Asiya Javayant
1040Claire S StensethCanada2024-04-11Chapman, Ross E Esq UNQUALIFIED85Amy Elsner
1041Smith V FlosiGermany2024-04-20Printing Dimensions NEW69Asiya Javayant
1042Juan M AmigonAustralia2024-04-24Dorl, James J Esq NEGOTIATION74Bernardo Dominic
1043Antonio M FerenczCanada2024-04-04Feltz Printing Service NEW58Onyama Limba
1044Aruna F NestleJapan2024-04-21Buckley Miller Wright QUALIFIED51Stephen Shaw
1045Wickens P SchemmerSpain2024-04-16Morlong Associates QUALIFIED69Bernardo Dominic
1046Greenwood Y WieserUnited Kingdom2024-03-29Dorl, James J Esq QUALIFIED82Asiya Javayant
1047Wickens Z CaldareraAustralia2024-03-31Chanay, Jeffrey A Esq NEW49Ioni Bowcher
1048David K GauchoIndia2024-04-13Feltz Printing Service NEGOTIATION38Asiya Javayant
1049Chavez B WhobreyCanada2024-04-19Chemel, James L Cpa PROPOSAL86Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Deepesh C BriddickRussiaOnyama Limba RENEWAL
Clifford F VocelkaItalyIvan Magalhaes UNQUALIFIED
Costa M SchemmerArgentinaOnyama Limba UNQUALIFIED
Aruna H MacleadSpainBernardo Dominic QUALIFIED
Jones C MaletBrazilXuxue Feng RENEWAL
Greenwood Y BologniaArgentinaAmy Elsner RENEWAL
Emily S PerinBrazilXuxue Feng UNQUALIFIED
Silvio L RimFranceAsiya Javayant PROPOSAL
Silvio U GauchoIndiaXuxue Feng NEW
Mayumi T ShinkoBrazilStephen Shaw UNQUALIFIED
Ashley D BriddickJapanStephen Shaw UNQUALIFIED
Adams N BriddickFranceAnna Fali NEW
Costa L ButtJapanXuxue Feng PROPOSAL
Emily P CaldareraArgentinaElwin Sharvill QUALIFIED
Alejandro S RulapaughBrazilElwin Sharvill RENEWAL
Deepesh B WieserJapanElwin Sharvill UNQUALIFIED
Arvin I IturbideAustraliaAnna Fali UNQUALIFIED
Antonio O NickaFranceStephen Shaw QUALIFIED
Sinclair X BowleySpainStephen Shaw PROPOSAL
Munro B KolmetzRussiaIvan Magalhaes RENEWAL
Julie A AmigonFranceIoni Bowcher UNQUALIFIED
Claire I InouyeCanadaOnyama Limba RENEWAL
Aditya S OldroydItalyAnna Fali RENEWAL
Darci X MarrierFranceElwin Sharvill NEGOTIATION
Aruna J SchemmerFranceAsiya Javayant UNQUALIFIED
Ivar Z TollnerCanadaBernardo Dominic RENEWAL
Munro H ChuiCanadaOnyama Limba UNQUALIFIED
Octavia Z ChuiBrazilAmy Elsner NEW
Aditya A RimFranceIvan Magalhaes NEGOTIATION
Leon O RulapaughJapanIvan Magalhaes NEW
James C MarrierArgentinaBernardo Dominic PROPOSAL
Chavez S DilliardBrazilAmy Elsner QUALIFIED
Misaki F MaletGermanyAnna Fali PROPOSAL
James X SaylorsRussiaStephen Shaw UNQUALIFIED
Juan E VocelkaJapanAnna Fali NEGOTIATION
Leja O NestleBrazilOnyama Limba RENEWAL
Antonio Y PerinJapanIoni Bowcher NEGOTIATION
Arvin V SchemmerCanadaOnyama Limba NEGOTIATION
Ashley Q BologniaAustraliaIvan Magalhaes QUALIFIED
Adams G SergiRussiaAsiya Javayant NEGOTIATION
Clifford S TollnerSpainAsiya Javayant RENEWAL
Murillo I StockhamBrazilAsiya Javayant UNQUALIFIED
Nicolas Q KuskoGermanyElwin Sharvill NEW
Tony D FlosiRussiaAmy Elsner UNQUALIFIED
James P AlbaresFranceElwin Sharvill RENEWAL
Aika O CaudyRussiaAmy Elsner UNQUALIFIED
Darci X FollerUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba I TollnerUnited KingdomAnna Fali PROPOSAL
Aruna M AlbaresItalyStephen Shaw NEGOTIATION
Jeanfrancois J AmigonAustraliaIvan Magalhaes RENEWAL
Frozen Columns
Name
Chavez Z Dilliard
Darci O Foller
Alejandro S Marrier
Nicolas X Gillian
Ashley U Kusko
Kaitlin D Royster
Nicolas T Nicka
Salvatore J Garufi
Alejandro E Ostrosky
Murillo D Slusarski
Munro U Glick
Maria S Morasca
Chavez O Slusarski
James X Rulapaugh
Claire I Bolognia
Nicolas Q Caudy
Kaitlin Y Paprocki
Clifford U Garufi
Jeanfrancois S Garufi
Darci Z Stenseth
Mayumi S Tollner
Rodrigues X Perin
Maisha H Bowley
Isabel E Briddick
Munro F Venere
Cody H Darakjy
Leon K Poquette
Emily D Sergi
Munro B Waycott
Juan W Whobrey
Aditya A Figeroa
Adams F Caldarera
Mujtaba I Ruta
Rodrigues K Saylors
Octavia L Gillian
Claire X Nestle
Salvatore X Paprocki
Costa C Amigon
Costa Z Bolognia
Nicolas O Stenseth
Mujtaba U Flosi
Antonio Q Doe
Ashley M Nicka
Arvin U Nicka
Chavez H Nicka
Murillo Y Butt
Maria I Slusarski
Francesco H Vocelka
Costa L Albares
Silvio N Garufi
IdCountryDate
1000Germany2024-04-16
1001Spain2024-04-08
1002India2024-04-23
1003India2024-04-01
1004India2024-04-02
1005Germany2024-04-20
1006France2024-03-29
1007Canada2024-04-24
1008Brazil2024-04-04
1009Germany2024-04-24
1010Spain2024-04-03
1011Argentina2024-04-01
1012Spain2024-04-11
1013Canada2024-04-07
1014United Kingdom2024-04-20
1015Spain2024-04-07
1016Germany2024-04-11
1017United Kingdom2024-03-26
1018Russia2024-04-09
1019Germany2024-03-31
1020France2024-04-24
1021Canada2024-03-26
1022Japan2024-03-26
1023Australia2024-03-30
1024Japan2024-03-26
1025Australia2024-04-09
1026Spain2024-04-01
1027Canada2024-04-18
1028Italy2024-04-21
1029France2024-04-10
1030Canada2024-04-21
1031Japan2024-04-21
1032France2024-04-08
1033Argentina2024-04-01
1034Australia2024-03-26
1035France2024-04-07
1036Canada2024-04-03
1037Australia2024-04-13
1038Canada2024-04-03
1039France2024-04-10
1040Germany2024-04-06
1041Japan2024-04-02
1042Japan2024-03-27
1043Spain2024-04-10
1044Italy2024-04-22
1045Canada2024-04-17
1046United Kingdom2024-04-21
1047United Kingdom2024-04-12
1048Australia2024-04-06
1049Brazil2024-04-09

On-Demand Data

NameIdCountryDate
Wickens N Malet1000Germany2024-03-28
Kadeem O Inouye1001Italy2024-03-27
Clifford H Whobrey1002Australia2024-04-18
Faith F Flosi1003Italy2024-04-15
James P Wieser1004India2024-04-07
Izzy A Glick1005Australia2024-04-14
Maisha F Saylors1006Russia2024-04-04
Nicolas K Malet1007France2024-04-09
Maisha Z Campain1008Russia2024-04-10
Jennifer G Nicka1009Brazil2024-04-04
Ashley O Kusko1010Russia2024-03-28
Chavez Q Albares1011India2024-04-12
Rodrigues X Amigon1012Germany2024-04-02
Aruna O Marrier1013Germany2024-04-22
Kadeem W Shinko1014United Kingdom2024-03-28
Darci I Glick1015Australia2024-04-16
Ricardo M Chui1016Canada2024-04-16
Jones W Sergi1017United Kingdom2024-03-31
Kadeem N Gaucho1018Japan2024-04-24
Johnson Q Maclead1019France2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo T MacleadJapanStephen Shaw QUALIFIED
Faith Z RimCanadaStephen Shaw NEGOTIATION
Cody Z GlickJapanAsiya Javayant NEW
Nicolas V PerinRussiaAnna Fali RENEWAL
Morrow C BriddickIndiaIoni Bowcher RENEWAL
Cody V NickaFranceElwin Sharvill PROPOSAL
Adams Q NestleCanadaIoni Bowcher NEW
Costa J SchemmerJapanStephen Shaw NEW
Adams L FigeroaArgentinaAnna Fali NEW
Octavia W GillianAustraliaXuxue Feng NEW
Darci Z ChuiSpainXuxue Feng RENEWAL
Sinclair G PerinFranceIvan Magalhaes NEGOTIATION
Murillo W DilliardArgentinaIoni Bowcher QUALIFIED
Juan R SergiJapanAnna Fali NEW
Jones R MaletJapanElwin Sharvill NEGOTIATION
Munro V GauchoGermanyAmy Elsner NEGOTIATION
Antonio M GillianBrazilStephen Shaw UNQUALIFIED
Faith Q BologniaAustraliaAnna Fali NEGOTIATION
Morrow A NestleArgentinaXuxue Feng NEW
Leon B BologniaCanadaIoni Bowcher NEW
Rodrigues Y FerenczCanadaIvan Magalhaes RENEWAL
Chavez W FollerFranceIvan Magalhaes NEW
Tony W CaudyBrazilIvan Magalhaes UNQUALIFIED
Ashley J DilliardSpainAsiya Javayant QUALIFIED
Ashley F AlbaresJapanStephen Shaw UNQUALIFIED
Jeanfrancois N MorascaSpainElwin Sharvill RENEWAL
Jones H MacleadCanadaAmy Elsner NEGOTIATION
Aditya U MaletFranceXuxue Feng NEGOTIATION
Jennifer R FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Izzy J GauchoJapanXuxue Feng QUALIFIED
Morrow H KuskoAustraliaElwin Sharvill NEGOTIATION
Claire C AlbaresRussiaElwin Sharvill QUALIFIED
Leja L ButtJapanBernardo Dominic NEW
Jeanfrancois Y MaletFranceXuxue Feng QUALIFIED
Darci R DarakjyIndiaAnna Fali RENEWAL
Maria T DoeUnited KingdomIvan Magalhaes PROPOSAL
Munro E DoeBrazilAmy Elsner QUALIFIED
Ricardo V BowleyFranceXuxue Feng NEW
Costa I GauchoArgentinaAmy Elsner PROPOSAL
Julie N GarufiIndiaIoni Bowcher UNQUALIFIED

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