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 I PoquetteCanadaAsiya Javayant NEGOTIATION
Faith I RulapaughCanadaAmy Elsner RENEWAL
Arvin O BriddickItalyAnna Fali RENEWAL
Nicolas T ShinkoAustraliaBernardo Dominic UNQUALIFIED
Deepesh Y RoysterFranceIoni Bowcher RENEWAL
Murillo M CaldareraGermanyAmy Elsner PROPOSAL
Julie R SergiFranceBernardo Dominic UNQUALIFIED
Smith M KuskoAustraliaIvan Magalhaes NEGOTIATION
Nicolas G SchemmerItalyXuxue Feng QUALIFIED
Jefferson R WieserRussiaXuxue Feng RENEWAL
Mujtaba O NickaJapanAsiya Javayant NEW
Murillo L FigeroaFranceElwin Sharvill PROPOSAL
Antonio N GlickArgentinaBernardo Dominic UNQUALIFIED
Jefferson U StockhamArgentinaElwin Sharvill RENEWAL
Claire G KuskoJapanElwin Sharvill PROPOSAL
Ivar B StensethJapanXuxue Feng RENEWAL
Jeanfrancois D VocelkaItalyAsiya Javayant RENEWAL
Kaitlin D ChuiRussiaAnna Fali PROPOSAL
Silvio F GarufiGermanyOnyama Limba NEGOTIATION
Ashley D WaycottGermanyElwin Sharvill NEGOTIATION
Jennifer D StockhamRussiaElwin Sharvill RENEWAL
Morrow Z FollerItalyStephen Shaw PROPOSAL
Jennifer M RimRussiaAnna Fali QUALIFIED
Octavia J InouyeUnited KingdomOnyama Limba UNQUALIFIED
Maisha C DilliardAustraliaStephen Shaw RENEWAL
Octavia A DilliardSpainIvan Magalhaes NEW
Sinclair D ButtGermanyAsiya Javayant QUALIFIED
Ashley H FerenczCanadaStephen Shaw PROPOSAL
Johnson J PaprockiArgentinaOnyama Limba NEGOTIATION
Alejandro U ShinkoGermanyElwin Sharvill PROPOSAL
Jefferson N RimAustraliaAnna Fali UNQUALIFIED
Wickens U PoquetteItalyAmy Elsner PROPOSAL
Nicolas B TollnerRussiaBernardo Dominic QUALIFIED
Stacey K KuskoSpainStephen Shaw RENEWAL
Munro A WaycottJapanIvan Magalhaes NEW
Kadeem S IturbideItalyAnna Fali QUALIFIED
Octavia V DarakjyItalyOnyama Limba NEW
Maria C AlbaresIndiaStephen Shaw NEW
Alejandro Z NickaAustraliaOnyama Limba UNQUALIFIED
Ivar S OstroskyCanadaElwin Sharvill PROPOSAL
Darci Z NestleRussiaXuxue Feng RENEWAL
Rodrigues P NestleAustraliaIoni Bowcher NEW
Sinclair K SergiSpainIoni Bowcher NEW
Ashley L MacleadSpainIvan Magalhaes NEW
Greenwood K InouyeJapanBernardo Dominic UNQUALIFIED
Silvio B RulapaughUnited KingdomXuxue Feng QUALIFIED
David K InouyeBrazilAsiya Javayant NEW
Ashley T StensethItalyOnyama Limba UNQUALIFIED
Maria H GauchoBrazilAnna Fali NEW
Silvio M GauchoIndiaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel Z PoquetteIndiaIoni Bowcher PROPOSAL
Smith L NestleCanadaOnyama Limba PROPOSAL
Jefferson R RulapaughItalyAnna Fali QUALIFIED
Sinclair X SergiAustraliaIoni Bowcher RENEWAL
Ivar H GauchoGermanyAmy Elsner UNQUALIFIED
Maria R SaylorsUnited KingdomOnyama Limba QUALIFIED
Kadeem H SlusarskiCanadaIvan Magalhaes QUALIFIED
Antonio R WieserCanadaAmy Elsner RENEWAL
Kaitlin K ChuiGermanyStephen Shaw UNQUALIFIED
Antonio W MaletIndiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois P BowleyIndia2024-03-31Rousseaux, Michael Esq NEGOTIATION48Amy Elsner
1001Jefferson G VenereArgentina2024-03-30Feltz Printing Service RENEWAL59Xuxue Feng
1002Tony E WieserArgentina2024-04-13Rangoni Of Florence RENEWAL54Anna Fali
1003Aditya L DilliardRussia2024-04-08Chapman, Ross E Esq NEGOTIATION48Bernardo Dominic
1004Murillo Q PoquetteFrance2024-04-21Chapman, Ross E Esq NEW53Bernardo Dominic
1005Johnson C FollerArgentina2024-04-13Chemel, James L Cpa NEGOTIATION8Asiya Javayant
1006Kaitlin Y RimBrazil2024-04-25Dorl, James J Esq QUALIFIED1Asiya Javayant
1007Julie B BologniaItaly2024-04-18Printing Dimensions NEW85Stephen Shaw
1008Munro I IturbideCanada2024-04-23Buckley Miller Wright NEW29Amy Elsner
1009Tony Q KolmetzRussia2024-04-12Commercial Press QUALIFIED6Elwin Sharvill
1010Aika W FlosiUnited Kingdom2024-04-16Feiner Bros RENEWAL25Ioni Bowcher
1011Johnson L SaylorsFrance2024-04-19Chanay, Jeffrey A Esq RENEWAL18Bernardo Dominic
1012Jones Z AlbaresJapan2024-04-12Feiner Bros PROPOSAL73Xuxue Feng
1013Kaitlin Y WieserArgentina2024-04-16Feiner Bros NEGOTIATION39Asiya Javayant
1014Maria M RimRussia2024-04-05Rangoni Of Florence NEW61Ivan Magalhaes
1015Francesco V DarakjyIndia2024-04-02Dorl, James J Esq NEW85Bernardo Dominic
1016Tony F PoquetteSpain2024-04-24Chemel, James L Cpa UNQUALIFIED1Amy Elsner
1017Francesco Y RimCanada2024-04-10Rangoni Of Florence NEW4Bernardo Dominic
1018Claire T StockhamRussia2024-04-09Commercial Press RENEWAL53Xuxue Feng
1019Emily P AlbaresArgentina2024-04-23Feiner Bros NEGOTIATION43Elwin Sharvill
1020Alejandro B PerinCanada2024-04-27Feltz Printing Service PROPOSAL84Bernardo Dominic
1021Aditya C StensethArgentina2024-04-15King, Christopher A Esq PROPOSAL85Ioni Bowcher
1022Emily K MaletSpain2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED67Ivan Magalhaes
1023Faith T IturbideRussia2024-04-14Truhlar And Truhlar Attys RENEWAL82Stephen Shaw
1024Salvatore D SlusarskiJapan2024-04-02Morlong Associates NEGOTIATION82Elwin Sharvill
1025Salvatore E GlickIndia2024-04-13King, Christopher A Esq UNQUALIFIED20Bernardo Dominic
1026Greenwood U OldroydFrance2024-04-24Chapman, Ross E Esq NEGOTIATION81Stephen Shaw
1027Mujtaba W RutaGermany2024-03-31Chanay, Jeffrey A Esq NEW19Onyama Limba
1028Faith L KuskoIndia2024-04-19Chapman, Ross E Esq NEW81Ioni Bowcher
1029David E BriddickItaly2024-04-12Truhlar And Truhlar Attys PROPOSAL89Elwin Sharvill
1030Aditya L WieserBrazil2024-04-01Printing Dimensions PROPOSAL66Ivan Magalhaes
1031Kadeem H ChuiRussia2024-04-12Benton, John B Jr NEW72Elwin Sharvill
1032David G DarakjyIndia2024-03-31Benton, John B Jr NEW6Elwin Sharvill
1033Francesco H InouyeArgentina2024-04-03Chapman, Ross E Esq QUALIFIED76Amy Elsner
1034Misaki E InouyeCanada2024-04-06Truhlar And Truhlar Attys NEGOTIATION45Stephen Shaw
1035Faith H BriddickJapan2024-04-01Morlong Associates RENEWAL21Anna Fali
1036Arvin B MaletFrance2024-04-15Benton, John B Jr NEGOTIATION92Stephen Shaw
1037Munro M RoysterBrazil2024-04-03Truhlar And Truhlar Attys PROPOSAL1Anna Fali
1038Munro Y MorascaBrazil2024-04-24King, Christopher A Esq NEW83Amy Elsner
1039Murillo N TollnerFrance2024-04-12Dorl, James J Esq NEW7Onyama Limba
1040James Z ButtJapan2024-04-15Chanay, Jeffrey A Esq QUALIFIED22Ioni Bowcher
1041Wickens R ChuiArgentina2024-04-09King, Christopher A Esq QUALIFIED76Xuxue Feng
1042Emily G MaletRussia2024-04-12Chapman, Ross E Esq NEW61Stephen Shaw
1043Smith G WhobreyItaly2024-04-10Chapman, Ross E Esq NEGOTIATION85Onyama Limba
1044Munro O RutaCanada2024-04-19Printing Dimensions NEW4Ivan Magalhaes
1045Smith B RutaSpain2024-04-24Chemel, James L Cpa RENEWAL48Ivan Magalhaes
1046Izzy V MaletRussia2024-04-14Chapman, Ross E Esq PROPOSAL70Amy Elsner
1047Costa M DarakjySpain2024-04-15Buckley Miller Wright QUALIFIED93Elwin Sharvill
1048Salvatore Q SergiSpain2024-04-06Buckley Miller Wright UNQUALIFIED26Amy Elsner
1049Leja I StensethArgentina2024-04-26Chapman, Ross E Esq UNQUALIFIED1Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Clifford W MaletSpainXuxue Feng RENEWAL
Jeanfrancois Z FerenczArgentinaOnyama Limba NEW
Juan X AmigonJapanOnyama Limba NEW
Johnson I SaylorsSpainIoni Bowcher PROPOSAL
Deepesh Y NickaItalyBernardo Dominic NEGOTIATION
Nicolas L KolmetzItalyOnyama Limba NEW
Ivar Y AlbaresUnited KingdomIoni Bowcher RENEWAL
Faith Q RimBrazilElwin Sharvill NEGOTIATION
Ivar A PoquetteItalyStephen Shaw NEW
Salvatore G WieserRussiaElwin Sharvill UNQUALIFIED
Leon F NickaItalyAmy Elsner RENEWAL
Deepesh L KolmetzCanadaXuxue Feng NEGOTIATION
David H AmigonCanadaIoni Bowcher NEGOTIATION
Claire M AlbaresCanadaIvan Magalhaes UNQUALIFIED
Ashley D PerinGermanyAmy Elsner NEGOTIATION
Clifford U FlosiRussiaElwin Sharvill RENEWAL
Sinclair C DoeFranceOnyama Limba QUALIFIED
David B WieserSpainIoni Bowcher QUALIFIED
Aditya S GillianJapanIoni Bowcher NEGOTIATION
Claire L OldroydIndiaIvan Magalhaes UNQUALIFIED
Kaitlin T BologniaAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois O RoysterFranceElwin Sharvill PROPOSAL
Silvio P GauchoAustraliaIvan Magalhaes QUALIFIED
Tony A FlosiSpainXuxue Feng QUALIFIED
Nicolas X MacleadItalyBernardo Dominic NEW
Jones C FerenczArgentinaStephen Shaw QUALIFIED
Greenwood C GarufiGermanyAnna Fali RENEWAL
Leja O SaylorsArgentinaIvan Magalhaes NEW
Smith U OldroydGermanyAsiya Javayant NEW
Jefferson K RulapaughGermanyBernardo Dominic UNQUALIFIED
Cody M ChuiItalyAsiya Javayant NEGOTIATION
Sinclair N CaudyFranceAnna Fali RENEWAL
Faith K OldroydFranceAnna Fali QUALIFIED
Aruna L DarakjyRussiaOnyama Limba RENEWAL
Maisha B RutaRussiaBernardo Dominic RENEWAL
Maria Q MaletIndiaXuxue Feng QUALIFIED
Kaitlin K MorascaGermanyXuxue Feng NEW
Salvatore K ChuiIndiaIvan Magalhaes NEW
Costa D DilliardArgentinaStephen Shaw RENEWAL
Mayumi E RutaItalyOnyama Limba PROPOSAL
Tony S BriddickFranceAmy Elsner NEGOTIATION
Nicolas P InouyeGermanyStephen Shaw PROPOSAL
Darci C SergiGermanyIoni Bowcher QUALIFIED
Deepesh A StensethUnited KingdomElwin Sharvill RENEWAL
Ivar V KolmetzRussiaIoni Bowcher NEGOTIATION
Rodrigues A WieserJapanIvan Magalhaes QUALIFIED
Tony C FerenczArgentinaElwin Sharvill UNQUALIFIED
Mayumi F CaldareraRussiaOnyama Limba NEW
Murillo C WieserBrazilElwin Sharvill NEW
Costa M DarakjyBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Isabel S Gillian
Maria X Ostrosky
Costa J Wieser
Ivar C Flosi
David I Schemmer
Greenwood D Waycott
Rodrigues A Campain
Claire U Caudy
Faith G Caudy
Leja L Foller
Julie M Gillian
Morrow Y Stockham
Johnson U Sergi
Aika Y Marrier
Rodrigues F Tollner
Jeanfrancois E Bowley
Jeanfrancois B Darakjy
Leon N Perin
Francesco F Bolognia
Cody Z Waycott
Nicolas X Ostrosky
Leja Q Amigon
Murillo M Waycott
Salvatore V Perin
Costa S Butt
Faith D Ostrosky
Jefferson P Marrier
Juan L Oldroyd
Kaitlin F Flosi
Mayumi E Saylors
Octavia W Bowley
Juan W Marrier
Tony B Iturbide
Silvio N Kusko
Leja W Malet
Aika X Schemmer
David G Stenseth
Juan F Albares
Darci B Nicka
Alejandro V Nicka
Ricardo X Rulapaugh
Maisha P Iturbide
Morrow C Vocelka
Kaitlin Y Malet
Johnson X Gaucho
Emily B Flosi
Ricardo X Amigon
Tony Q Maclead
Silvio L Inouye
Adams J Wieser
IdCountryDate
1000Canada2024-04-10
1001Germany2024-04-23
1002Germany2024-04-02
1003Germany2024-04-06
1004India2024-04-05
1005Italy2024-04-08
1006Italy2024-04-04
1007Japan2024-04-13
1008Japan2024-04-22
1009Japan2024-04-28
1010Australia2024-04-22
1011United Kingdom2024-04-06
1012Australia2024-04-16
1013Argentina2024-04-14
1014Brazil2024-04-25
1015India2024-04-20
1016India2024-04-06
1017Germany2024-04-17
1018Australia2024-04-27
1019Argentina2024-04-01
1020Russia2024-04-24
1021Japan2024-04-21
1022France2024-04-20
1023Italy2024-04-01
1024Brazil2024-04-03
1025Brazil2024-04-27
1026Spain2024-04-07
1027France2024-04-28
1028Germany2024-03-30
1029Spain2024-04-10
1030Brazil2024-03-30
1031Russia2024-03-30
1032Australia2024-04-07
1033Argentina2024-04-11
1034India2024-04-28
1035Germany2024-04-05
1036United Kingdom2024-04-01
1037India2024-03-31
1038United Kingdom2024-04-28
1039Canada2024-04-25
1040Australia2024-04-25
1041Canada2024-04-05
1042Italy2024-04-28
1043United Kingdom2024-04-03
1044Italy2024-04-27
1045Australia2024-04-04
1046Spain2024-04-04
1047Argentina2024-04-08
1048Germany2024-04-11
1049Brazil2024-04-18

On-Demand Data

NameIdCountryDate
Jeanfrancois U Garufi1000Brazil2024-04-22
Morrow A Nicka1001Brazil2024-04-24
Clifford R Whobrey1002Japan2024-04-01
Leon J Darakjy1003Japan2024-04-06
Murillo J Butt1004Argentina2024-04-12
Julie G Nicka1005Germany2024-04-16
Ricardo K Nicka1006India2024-04-09
Ricardo D Flosi1007Spain2024-04-16
Octavia M Poquette1008France2024-04-26
Maria B Ruta1009United Kingdom2024-03-30
Stacey A Rim1010Brazil2024-04-28
Clifford E Dilliard1011Canada2024-04-04
Juan P Dilliard1012Spain2024-04-05
Murillo X Ostrosky1013Japan2024-04-09
Smith U Malet1014Italy2024-04-23
Aika N Darakjy1015United Kingdom2024-04-02
Smith T Saylors1016Canada2024-04-07
Antonio P Venere1017United Kingdom2024-04-05
Greenwood X Glick1018Italy2024-04-22
Kaitlin O Whobrey1019Argentina2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel B ShinkoItalyElwin Sharvill PROPOSAL
Francesco U KolmetzBrazilBernardo Dominic PROPOSAL
Murillo P KolmetzBrazilAsiya Javayant QUALIFIED
Jennifer X CaldareraFranceAsiya Javayant RENEWAL
Greenwood K DilliardGermanyBernardo Dominic QUALIFIED
Costa U FigeroaItalyXuxue Feng PROPOSAL
Jones V KuskoIndiaAnna Fali QUALIFIED
Adams D DoeUnited KingdomIoni Bowcher RENEWAL
Maisha U OldroydGermanyElwin Sharvill NEGOTIATION
Ashley B WieserItalyStephen Shaw PROPOSAL
Misaki C StensethUnited KingdomXuxue Feng NEGOTIATION
Misaki Y FerenczIndiaAnna Fali QUALIFIED
Morrow C BologniaRussiaAnna Fali PROPOSAL
Stacey B MaletFranceIoni Bowcher RENEWAL
David T MaletArgentinaIoni Bowcher QUALIFIED
Faith Z AlbaresUnited KingdomAmy Elsner NEGOTIATION
Misaki S AlbaresSpainBernardo Dominic UNQUALIFIED
Aruna X OldroydArgentinaAnna Fali PROPOSAL
Munro Z KolmetzRussiaOnyama Limba NEW
Jeanfrancois B MaletRussiaElwin Sharvill UNQUALIFIED
Wickens U KuskoAustraliaIoni Bowcher RENEWAL
Silvio I VocelkaItalyBernardo Dominic PROPOSAL
Clifford C TollnerUnited KingdomAmy Elsner QUALIFIED
David W InouyeUnited KingdomXuxue Feng PROPOSAL
Mayumi O MorascaUnited KingdomXuxue Feng UNQUALIFIED
Jennifer O RoysterItalyElwin Sharvill PROPOSAL
Chavez J WhobreyCanadaAnna Fali PROPOSAL
Isabel K OstroskyGermanyAmy Elsner NEGOTIATION
Rodrigues U NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco O DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Kaitlin H RoysterRussiaXuxue Feng RENEWAL
Stacey R CaldareraSpainIvan Magalhaes NEGOTIATION
Costa Z StensethAustraliaAnna Fali RENEWAL
Leja J OstroskyJapanElwin Sharvill PROPOSAL
Maisha X KuskoArgentinaOnyama Limba PROPOSAL
Darci D GillianCanadaAmy Elsner RENEWAL
Tony N FigeroaUnited KingdomAsiya Javayant NEW
Salvatore W PerinUnited KingdomStephen Shaw NEGOTIATION
Aika E OstroskyFranceAmy Elsner QUALIFIED
Jeanfrancois C GlickUnited KingdomStephen Shaw 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>