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
Kaitlin M CaudyFranceIoni Bowcher NEW
Octavia G FerenczSpainElwin Sharvill PROPOSAL
Deepesh L WieserJapanIvan Magalhaes NEW
Nicolas Q ShinkoIndiaXuxue Feng RENEWAL
Aika Q DilliardUnited KingdomAmy Elsner PROPOSAL
Tony C MorascaBrazilAmy Elsner UNQUALIFIED
Greenwood N CaldareraRussiaXuxue Feng NEW
Darci Z GlickCanadaXuxue Feng NEGOTIATION
Arvin P PoquetteBrazilAnna Fali PROPOSAL
Johnson H MacleadAustraliaElwin Sharvill NEGOTIATION
Antonio R SchemmerFranceXuxue Feng NEW
Isabel M CaudyFranceXuxue Feng RENEWAL
Ricardo F MarrierSpainElwin Sharvill NEW
Stacey W BriddickFranceIvan Magalhaes PROPOSAL
Nicolas O RimBrazilIoni Bowcher NEGOTIATION
Chavez P NickaFranceBernardo Dominic PROPOSAL
Jones I TollnerUnited KingdomElwin Sharvill NEW
Kaitlin B GauchoJapanIvan Magalhaes NEW
Antonio Z PerinRussiaXuxue Feng UNQUALIFIED
Faith T TollnerItalyStephen Shaw QUALIFIED
Deepesh U GarufiBrazilXuxue Feng NEGOTIATION
James I RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Leja D MorascaAustraliaAmy Elsner PROPOSAL
Arvin N SergiUnited KingdomBernardo Dominic RENEWAL
Johnson W CampainIndiaElwin Sharvill RENEWAL
Chavez L OstroskyItalyIvan Magalhaes RENEWAL
Leon K WaycottSpainStephen Shaw NEGOTIATION
Antonio Y FlosiRussiaStephen Shaw RENEWAL
Aditya L ChuiFranceStephen Shaw PROPOSAL
Maria F BologniaRussiaAmy Elsner NEW
Morrow R DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Tony B PaprockiItalyOnyama Limba PROPOSAL
Ivar E IturbideUnited KingdomOnyama Limba UNQUALIFIED
Mayumi A CaudyAustraliaElwin Sharvill PROPOSAL
Emily S SaylorsUnited KingdomElwin Sharvill RENEWAL
Darci K OldroydSpainAsiya Javayant PROPOSAL
Alejandro X WaycottItalyStephen Shaw NEW
Aditya G CaldareraArgentinaIvan Magalhaes RENEWAL
Arvin Z WieserJapanAmy Elsner NEW
Cody B FlosiSpainAsiya Javayant PROPOSAL
Alejandro U MaletUnited KingdomOnyama Limba QUALIFIED
Ivar V IturbideAustraliaAnna Fali NEW
Alejandro J GarufiArgentinaStephen Shaw NEGOTIATION
Emily D PoquetteGermanyAnna Fali RENEWAL
David Y IturbideFranceXuxue Feng PROPOSAL
Sinclair U GarufiSpainOnyama Limba PROPOSAL
Cody N PerinArgentinaOnyama Limba PROPOSAL
Ashley Y RutaJapanAmy Elsner NEGOTIATION
Chavez W VenereFranceBernardo Dominic PROPOSAL
Mayumi D SaylorsJapanXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley C RimJapanXuxue Feng NEW
Salvatore H SergiBrazilIvan Magalhaes QUALIFIED
Aditya V GillianIndiaXuxue Feng PROPOSAL
Sinclair E FlosiArgentinaAmy Elsner PROPOSAL
Clifford T MaletCanadaIoni Bowcher UNQUALIFIED
Stacey M PaprockiUnited KingdomXuxue Feng PROPOSAL
Jefferson Y BologniaCanadaAsiya Javayant QUALIFIED
Izzy J OstroskyAustraliaXuxue Feng NEW
Juan F DilliardBrazilAmy Elsner RENEWAL
Octavia T RutaCanadaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith D NickaIndia2024-04-13Commercial Press NEGOTIATION10Stephen Shaw
1001Darci W ShinkoUnited Kingdom2024-04-18Dorl, James J Esq PROPOSAL11Xuxue Feng
1002Wickens G BologniaItaly2024-04-17Feiner Bros PROPOSAL24Stephen Shaw
1003Francesco X StensethRussia2024-04-11Buckley Miller Wright NEGOTIATION92Ioni Bowcher
1004Aruna O NickaCanada2024-04-24Printing Dimensions PROPOSAL78Xuxue Feng
1005Octavia R AmigonCanada2024-04-21Buckley Miller Wright RENEWAL22Elwin Sharvill
1006Claire A FerenczBrazil2024-04-18Printing Dimensions QUALIFIED64Ioni Bowcher
1007Ashley O FerenczItaly2024-04-10Printing Dimensions RENEWAL26Xuxue Feng
1008Emily F StockhamIndia2024-03-26Chemel, James L Cpa UNQUALIFIED98Asiya Javayant
1009Jones G VocelkaItaly2024-04-06Benton, John B Jr UNQUALIFIED96Asiya Javayant
1010Faith H PaprockiFrance2024-04-02Chanay, Jeffrey A Esq NEGOTIATION26Asiya Javayant
1011Smith R VocelkaJapan2024-04-23Feltz Printing Service RENEWAL31Ioni Bowcher
1012Murillo A RoysterSpain2024-03-28Chemel, James L Cpa QUALIFIED21Xuxue Feng
1013Jeanfrancois I InouyeUnited Kingdom2024-04-16Rousseaux, Michael Esq QUALIFIED23Bernardo Dominic
1014Aruna S PerinRussia2024-04-22Morlong Associates UNQUALIFIED16Onyama Limba
1015Clifford V OldroydIndia2024-04-22Chemel, James L Cpa NEGOTIATION34Ivan Magalhaes
1016Chavez C TollnerFrance2024-04-10Buckley Miller Wright PROPOSAL67Ioni Bowcher
1017Mayumi R InouyeGermany2024-04-04Dorl, James J Esq UNQUALIFIED58Xuxue Feng
1018Aika S NickaRussia2024-03-30Morlong Associates QUALIFIED89Anna Fali
1019Greenwood T RoysterJapan2024-04-23Chanay, Jeffrey A Esq QUALIFIED35Bernardo Dominic
1020Kaitlin B CampainArgentina2024-03-29Dorl, James J Esq PROPOSAL78Asiya Javayant
1021Costa Q MacleadUnited Kingdom2024-04-08King, Christopher A Esq NEW47Asiya Javayant
1022Aruna Q KolmetzGermany2024-04-21Morlong Associates UNQUALIFIED19Ioni Bowcher
1023Octavia K WieserArgentina2024-03-29Dorl, James J Esq RENEWAL34Ivan Magalhaes
1024David P NestleIndia2024-04-16Commercial Press NEGOTIATION82Elwin Sharvill
1025Munro J FlosiJapan2024-04-19Rangoni Of Florence QUALIFIED32Ioni Bowcher
1026Silvio E SaylorsItaly2024-04-21Commercial Press PROPOSAL0Asiya Javayant
1027Ricardo T TollnerRussia2024-04-23Chanay, Jeffrey A Esq RENEWAL21Ioni Bowcher
1028Salvatore M StockhamUnited Kingdom2024-04-02Chemel, James L Cpa PROPOSAL30Ioni Bowcher
1029Jeanfrancois A FollerCanada2024-04-22Commercial Press RENEWAL45Bernardo Dominic
1030Deepesh S BologniaFrance2024-04-17Buckley Miller Wright UNQUALIFIED87Amy Elsner
1031Munro I KuskoFrance2024-04-06Morlong Associates NEGOTIATION98Anna Fali
1032Izzy J KolmetzSpain2024-04-14Printing Dimensions NEGOTIATION62Xuxue Feng
1033Nicolas E MorascaSpain2024-03-28Rangoni Of Florence NEW81Elwin Sharvill
1034Deepesh C ButtItaly2024-03-26Dorl, James J Esq UNQUALIFIED16Amy Elsner
1035David M ShinkoGermany2024-04-22Printing Dimensions QUALIFIED62Ioni Bowcher
1036Claire D PerinSpain2024-04-20Feiner Bros UNQUALIFIED59Amy Elsner
1037Smith O OldroydIndia2024-04-11Chemel, James L Cpa NEGOTIATION77Xuxue Feng
1038Ricardo J DarakjyIndia2024-04-08Chanay, Jeffrey A Esq QUALIFIED18Anna Fali
1039Darci W FlosiRussia2024-04-03Chanay, Jeffrey A Esq PROPOSAL56Elwin Sharvill
1040Chavez L KuskoUnited Kingdom2024-04-22Chemel, James L Cpa UNQUALIFIED8Asiya Javayant
1041Julie W GauchoFrance2024-04-05Chemel, James L Cpa QUALIFIED43Ivan Magalhaes
1042Munro X GillianGermany2024-04-16Printing Dimensions RENEWAL47Ivan Magalhaes
1043Jeanfrancois F ShinkoJapan2024-03-27Buckley Miller Wright NEW9Stephen Shaw
1044Munro W ButtFrance2024-03-27Printing Dimensions NEGOTIATION14Ioni Bowcher
1045Leon D StensethItaly2024-04-20Chanay, Jeffrey A Esq RENEWAL20Stephen Shaw
1046Octavia E FlosiSpain2024-04-09Rousseaux, Michael Esq RENEWAL80Ivan Magalhaes
1047Aditya T CaldareraAustralia2024-04-21Truhlar And Truhlar Attys QUALIFIED80Stephen Shaw
1048Kadeem V CaudyBrazil2024-04-22Printing Dimensions NEW43Onyama Limba
1049Arvin E WaycottAustralia2024-04-22Morlong Associates NEGOTIATION46Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aika B FollerArgentinaIoni Bowcher QUALIFIED
Chavez J VenereAustraliaAmy Elsner RENEWAL
Leja L RimAustraliaXuxue Feng RENEWAL
Smith N GillianJapanXuxue Feng PROPOSAL
Jeanfrancois B RutaBrazilIoni Bowcher RENEWAL
Aruna N BowleyAustraliaIvan Magalhaes RENEWAL
Kaitlin G DoeArgentinaBernardo Dominic PROPOSAL
Claire R GauchoFranceXuxue Feng NEGOTIATION
Smith Y TollnerCanadaAnna Fali UNQUALIFIED
Octavia E AlbaresFranceElwin Sharvill NEGOTIATION
Rodrigues K VocelkaAustraliaStephen Shaw NEGOTIATION
Chavez J VocelkaUnited KingdomStephen Shaw NEGOTIATION
Nicolas D GarufiRussiaOnyama Limba PROPOSAL
Morrow Z RulapaughArgentinaElwin Sharvill UNQUALIFIED
Cody I MarrierArgentinaAsiya Javayant UNQUALIFIED
Arvin B VenereItalyAnna Fali QUALIFIED
Antonio K GillianSpainIvan Magalhaes PROPOSAL
Wickens X KolmetzRussiaAsiya Javayant NEGOTIATION
Ivar K PaprockiArgentinaBernardo Dominic PROPOSAL
Jeanfrancois B RulapaughItalyAmy Elsner PROPOSAL
Darci W DarakjyRussiaStephen Shaw UNQUALIFIED
Kadeem M RimCanadaStephen Shaw QUALIFIED
Ricardo D MacleadGermanyAsiya Javayant PROPOSAL
Kaitlin A GlickSpainIoni Bowcher NEGOTIATION
Izzy X FigeroaArgentinaXuxue Feng UNQUALIFIED
Ivar I SchemmerRussiaAmy Elsner NEGOTIATION
Misaki S FerenczAustraliaStephen Shaw RENEWAL
Claire S CampainArgentinaOnyama Limba NEGOTIATION
Greenwood X GillianCanadaStephen Shaw NEW
Kadeem Q SaylorsSpainAmy Elsner PROPOSAL
Costa N MacleadBrazilElwin Sharvill QUALIFIED
Leon Y GauchoItalyIoni Bowcher QUALIFIED
Maria F VenereGermanyAmy Elsner RENEWAL
Wickens C DilliardCanadaIoni Bowcher RENEWAL
Julie I BologniaArgentinaElwin Sharvill NEW
Leon P MaletSpainStephen Shaw PROPOSAL
Cody T FlosiCanadaOnyama Limba RENEWAL
Isabel W DoeItalyAsiya Javayant NEGOTIATION
Leja G FerenczAustraliaStephen Shaw RENEWAL
Misaki L DarakjyUnited KingdomAnna Fali UNQUALIFIED
Jennifer N FerenczGermanyElwin Sharvill UNQUALIFIED
Mujtaba T GillianFranceAnna Fali NEGOTIATION
Costa H StockhamGermanyBernardo Dominic PROPOSAL
David T MorascaIndiaAmy Elsner RENEWAL
Claire W NestleIndiaAmy Elsner RENEWAL
Aruna F CaldareraSpainAnna Fali UNQUALIFIED
Ashley V InouyeFranceBernardo Dominic PROPOSAL
Kaitlin S NestleRussiaBernardo Dominic UNQUALIFIED
Mayumi A StensethRussiaOnyama Limba PROPOSAL
Smith J WaycottRussiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Arvin Y Saylors
Aditya J Flosi
Smith J Glick
Greenwood E Nicka
Jefferson M Perin
Cody K Shinko
Jennifer T Gaucho
Munro G Doe
Wickens D Vocelka
Antonio V Albares
Mayumi L Albares
Jeanfrancois R Stockham
Munro C Ferencz
Jennifer H Sergi
Jeanfrancois N Ferencz
James V Malet
Cody U Glick
Costa V Vocelka
Leon T Paprocki
Tony D Campain
Wickens Y Perin
Mayumi E Vocelka
Leja Q Poquette
Octavia C Iturbide
Kaitlin R Stenseth
Francesco S Marrier
Nicolas Z Sergi
Antonio R Amigon
Wickens H Oldroyd
Chavez X Shinko
Mujtaba R Campain
Faith Z Caudy
Alejandro M Nestle
Jeanfrancois B Glick
Johnson U Ferencz
Antonio U Morasca
Octavia Q Gillian
Ashley U Stenseth
Francesco J Stenseth
Salvatore W Stockham
Maria H Darakjy
Izzy A Slusarski
Izzy O Waycott
Jones C Butt
Octavia X Royster
Jennifer E Chui
Izzy H Whobrey
Tony A Kusko
Claire V Nicka
Leon T Flosi
IdCountryDate
1000India2024-04-23
1001United Kingdom2024-04-21
1002Brazil2024-04-12
1003Brazil2024-04-08
1004Italy2024-04-13
1005Argentina2024-03-27
1006Russia2024-03-27
1007Russia2024-04-17
1008Italy2024-04-20
1009Russia2024-04-03
1010Italy2024-04-12
1011Argentina2024-04-03
1012Japan2024-03-27
1013India2024-03-29
1014Brazil2024-04-04
1015Canada2024-03-28
1016Japan2024-04-09
1017United Kingdom2024-03-29
1018Spain2024-04-17
1019Brazil2024-04-03
1020United Kingdom2024-03-27
1021India2024-04-20
1022Brazil2024-04-10
1023Germany2024-04-17
1024Canada2024-04-07
1025France2024-03-28
1026Italy2024-04-13
1027Germany2024-03-27
1028Germany2024-04-08
1029India2024-03-31
1030Germany2024-04-01
1031Brazil2024-04-12
1032Australia2024-04-02
1033Brazil2024-04-24
1034Russia2024-03-28
1035Argentina2024-03-27
1036Russia2024-04-16
1037Spain2024-04-08
1038Russia2024-04-19
1039France2024-04-19
1040France2024-04-24
1041Argentina2024-04-17
1042Canada2024-04-07
1043Argentina2024-04-13
1044Canada2024-04-10
1045India2024-03-27
1046Russia2024-04-14
1047Germany2024-04-18
1048Spain2024-03-28
1049India2024-04-18

On-Demand Data

NameIdCountryDate
Munro T Albares1000Canada2024-04-22
Johnson Z Malet1001France2024-03-28
Maisha L Wieser1002United Kingdom2024-04-19
Deepesh Z Poquette1003Germany2024-03-27
Leon K Campain1004Italy2024-04-20
Ashley G Butt1005India2024-04-02
Darci G Saylors1006Australia2024-03-28
Ashley E Paprocki1007Russia2024-04-18
Munro U Garufi1008Brazil2024-04-17
Adams W Marrier1009Australia2024-04-16
Munro E Shinko1010Italy2024-04-15
David R Rim1011Japan2024-03-27
Johnson W Royster1012Canada2024-04-15
Jeanfrancois U Glick1013Italy2024-03-30
Izzy W Doe1014Russia2024-04-23
Costa T Wieser1015Italy2024-04-04
Tony G Venere1016Germany2024-04-16
Murillo M Nicka1017Germany2024-03-30
Arvin B Morasca1018India2024-04-17
Maisha P Maclead1019Argentina2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer T InouyeArgentinaBernardo Dominic RENEWAL
Isabel R RulapaughGermanyStephen Shaw RENEWAL
Aika J WaycottItalyBernardo Dominic NEW
Antonio G StensethFranceAnna Fali RENEWAL
Julie C GlickAustraliaAmy Elsner RENEWAL
Johnson Z InouyeJapanAnna Fali PROPOSAL
Isabel F NestleUnited KingdomBernardo Dominic RENEWAL
Faith A CaldareraGermanyAmy Elsner PROPOSAL
Isabel C RutaCanadaIoni Bowcher PROPOSAL
Claire C WhobreyJapanIvan Magalhaes UNQUALIFIED
Octavia X GillianItalyAsiya Javayant RENEWAL
Jones R CaudyItalyBernardo Dominic RENEWAL
Aditya V WaycottCanadaAmy Elsner QUALIFIED
Silvio Y AmigonRussiaIoni Bowcher UNQUALIFIED
Maisha C SlusarskiBrazilStephen Shaw NEGOTIATION
Ashley B RutaBrazilBernardo Dominic QUALIFIED
Jones P CaldareraArgentinaIvan Magalhaes QUALIFIED
Stacey E CaldareraSpainElwin Sharvill PROPOSAL
Darci P NickaBrazilXuxue Feng PROPOSAL
Maria D BologniaCanadaElwin Sharvill RENEWAL
Aditya G BowleyFranceElwin Sharvill UNQUALIFIED
Cody A NickaBrazilXuxue Feng RENEWAL
Maria T RutaGermanyAnna Fali NEGOTIATION
Faith X FlosiGermanyIvan Magalhaes RENEWAL
Adams R GlickCanadaOnyama Limba QUALIFIED
Octavia F MarrierSpainAnna Fali QUALIFIED
Wickens Q AlbaresItalyBernardo Dominic QUALIFIED
Leon C PaprockiItalyAsiya Javayant QUALIFIED
Cody B IturbideSpainElwin Sharvill UNQUALIFIED
Aruna J MorascaItalyIoni Bowcher UNQUALIFIED
Costa A VenereRussiaAsiya Javayant PROPOSAL
Ricardo T PoquetteSpainOnyama Limba PROPOSAL
Munro J BowleySpainElwin Sharvill NEGOTIATION
Mujtaba R WaycottUnited KingdomOnyama Limba QUALIFIED
Aika K WaycottAustraliaAmy Elsner QUALIFIED
Faith Y MacleadSpainOnyama Limba NEW
Kadeem K StensethJapanBernardo Dominic RENEWAL
Julie N DarakjyCanadaAmy Elsner RENEWAL
Juan E FigeroaCanadaXuxue Feng NEGOTIATION
Morrow E WhobreyIndiaXuxue Feng 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>