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
Francesco L StockhamRussiaIoni Bowcher QUALIFIED
Francesco U FigeroaFranceIoni Bowcher PROPOSAL
Clifford S MaletBrazilXuxue Feng RENEWAL
Rodrigues Y RoysterUnited KingdomIvan Magalhaes QUALIFIED
Mayumi Z GlickRussiaAsiya Javayant PROPOSAL
Kaitlin O NickaJapanAnna Fali NEW
Octavia U RulapaughRussiaIoni Bowcher PROPOSAL
Darci G AlbaresAustraliaXuxue Feng PROPOSAL
Chavez F CaldareraJapanAnna Fali PROPOSAL
Salvatore B BowleyItalyStephen Shaw RENEWAL
Mujtaba S ShinkoJapanOnyama Limba UNQUALIFIED
David C MarrierIndiaOnyama Limba QUALIFIED
Clifford H MorascaAustraliaAsiya Javayant QUALIFIED
Francesco C WieserFranceIoni Bowcher QUALIFIED
Clifford H GarufiRussiaIoni Bowcher NEW
Darci V DilliardRussiaBernardo Dominic UNQUALIFIED
Smith O WaycottAustraliaXuxue Feng QUALIFIED
Mujtaba F OldroydGermanyElwin Sharvill QUALIFIED
Antonio Y VocelkaGermanyStephen Shaw NEGOTIATION
Darci V WhobreyArgentinaOnyama Limba RENEWAL
Mujtaba S FollerAustraliaOnyama Limba QUALIFIED
Johnson N KuskoCanadaElwin Sharvill UNQUALIFIED
Jones M KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Aruna D RimAustraliaAnna Fali PROPOSAL
Murillo O SergiItalyOnyama Limba UNQUALIFIED
Juan S FollerItalyIvan Magalhaes NEGOTIATION
Jones J NestleArgentinaElwin Sharvill PROPOSAL
Darci G KuskoRussiaIvan Magalhaes RENEWAL
Johnson S VocelkaCanadaAsiya Javayant RENEWAL
Faith S PoquetteIndiaAsiya Javayant PROPOSAL
Claire R PerinBrazilAmy Elsner NEW
Emily Z NickaGermanyAnna Fali NEW
James B BowleyBrazilXuxue Feng PROPOSAL
Sinclair F KolmetzCanadaBernardo Dominic UNQUALIFIED
Munro B MacleadRussiaIoni Bowcher RENEWAL
Isabel Z WaycottUnited KingdomAmy Elsner QUALIFIED
Maria B MaletUnited KingdomElwin Sharvill RENEWAL
Mujtaba F RimItalyAmy Elsner RENEWAL
Ivar I GillianFranceIvan Magalhaes QUALIFIED
Smith Z OldroydBrazilAsiya Javayant PROPOSAL
Julie U AlbaresGermanyAsiya Javayant PROPOSAL
Stacey O WieserFranceElwin Sharvill NEW
Johnson G VocelkaFranceAnna Fali NEW
James W PoquetteJapanStephen Shaw PROPOSAL
Jennifer V SlusarskiSpainAnna Fali PROPOSAL
Costa B InouyeItalyXuxue Feng NEW
Jennifer X KolmetzUnited KingdomOnyama Limba RENEWAL
Maria B SaylorsGermanyIoni Bowcher QUALIFIED
Jefferson D StensethGermanyElwin Sharvill PROPOSAL
Faith K SergiAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Julie T FigeroaUnited KingdomAnna Fali PROPOSAL
Morrow T FerenczUnited KingdomStephen Shaw NEW
Claire N GlickItalyIvan Magalhaes PROPOSAL
Julie Q NickaSpainStephen Shaw RENEWAL
Morrow I CaldareraSpainOnyama Limba PROPOSAL
Izzy R RimBrazilElwin Sharvill QUALIFIED
Darci P BowleyGermanyBernardo Dominic UNQUALIFIED
Isabel H KolmetzFranceBernardo Dominic QUALIFIED
Ivar S CaudyRussiaIoni Bowcher NEGOTIATION
Silvio B BriddickUnited KingdomAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair K BriddickIndia2024-04-22Feltz Printing Service NEW11Amy Elsner
1001Aditya N FerenczSpain2024-04-24Morlong Associates NEW51Elwin Sharvill
1002Kaitlin A FerenczFrance2024-04-25Rousseaux, Michael Esq PROPOSAL27Xuxue Feng
1003Francesco Q SergiArgentina2024-04-23Chanay, Jeffrey A Esq RENEWAL43Elwin Sharvill
1004Darci L FlosiItaly2024-04-21Commercial Press PROPOSAL71Amy Elsner
1005Stacey Q CaldareraSpain2024-04-12Feiner Bros RENEWAL73Stephen Shaw
1006Ashley P FerenczAustralia2024-04-21Chemel, James L Cpa RENEWAL91Bernardo Dominic
1007Ivar S OldroydUnited Kingdom2024-04-22Rousseaux, Michael Esq NEGOTIATION93Elwin Sharvill
1008Juan X StensethAustralia2024-04-21Benton, John B Jr PROPOSAL59Elwin Sharvill
1009Murillo U KuskoItaly2024-04-02Rangoni Of Florence NEW66Elwin Sharvill
1010Izzy E KolmetzJapan2024-04-15Feltz Printing Service QUALIFIED64Ivan Magalhaes
1011Octavia L AlbaresGermany2024-04-17Rangoni Of Florence RENEWAL16Xuxue Feng
1012Arvin W RutaBrazil2024-04-22Truhlar And Truhlar Attys UNQUALIFIED37Elwin Sharvill
1013Maria P FerenczArgentina2024-04-16Chanay, Jeffrey A Esq NEW16Amy Elsner
1014Sinclair D DarakjyRussia2024-04-24Feltz Printing Service QUALIFIED24Bernardo Dominic
1015Clifford S ButtItaly2024-04-12Truhlar And Truhlar Attys PROPOSAL66Anna Fali
1016Stacey Y VenereGermany2024-04-24Benton, John B Jr NEW57Asiya Javayant
1017Johnson Y AlbaresBrazil2024-04-18Chemel, James L Cpa RENEWAL60Amy Elsner
1018James H MacleadJapan2024-04-15Dorl, James J Esq RENEWAL51Ivan Magalhaes
1019Arvin X MaletUnited Kingdom2024-04-06Dorl, James J Esq UNQUALIFIED55Elwin Sharvill
1020Julie X MaletItaly2024-04-20Benton, John B Jr NEW7Asiya Javayant
1021James X FigeroaAustralia2024-04-12Morlong Associates NEW26Amy Elsner
1022Munro N BowleyJapan2024-04-22Feltz Printing Service NEGOTIATION77Elwin Sharvill
1023Clifford L MaletFrance2024-03-30Feiner Bros NEGOTIATION80Amy Elsner
1024Clifford P StockhamFrance2024-04-28Truhlar And Truhlar Attys QUALIFIED4Bernardo Dominic
1025Jennifer K OldroydIndia2024-04-07Rangoni Of Florence NEGOTIATION48Elwin Sharvill
1026Juan X TollnerJapan2024-04-25King, Christopher A Esq RENEWAL39Amy Elsner
1027Munro M FerenczCanada2024-04-17Buckley Miller Wright QUALIFIED21Bernardo Dominic
1028Faith E FollerRussia2024-04-08Feiner Bros NEW96Amy Elsner
1029Wickens K FerenczRussia2024-04-21Chanay, Jeffrey A Esq NEGOTIATION93Ioni Bowcher
1030Francesco I StensethFrance2024-04-14Truhlar And Truhlar Attys RENEWAL31Onyama Limba
1031Aika I GlickRussia2024-04-10Dorl, James J Esq PROPOSAL17Asiya Javayant
1032Greenwood H ChuiIndia2024-03-30Chanay, Jeffrey A Esq RENEWAL8Amy Elsner
1033Rodrigues A PaprockiSpain2024-03-30Chapman, Ross E Esq QUALIFIED20Ivan Magalhaes
1034Smith R NickaIndia2024-04-12King, Christopher A Esq NEGOTIATION66Onyama Limba
1035Emily V BowleyFrance2024-04-22Feltz Printing Service QUALIFIED37Onyama Limba
1036Munro Q GauchoAustralia2024-04-05Chanay, Jeffrey A Esq NEW60Ivan Magalhaes
1037Leon T SergiUnited Kingdom2024-04-27Commercial Press QUALIFIED17Ioni Bowcher
1038Isabel I SchemmerBrazil2024-04-17Printing Dimensions PROPOSAL73Ivan Magalhaes
1039Julie C RutaBrazil2024-04-13Morlong Associates UNQUALIFIED74Onyama Limba
1040Chavez C GauchoBrazil2024-04-19Chanay, Jeffrey A Esq QUALIFIED2Onyama Limba
1041Smith H GlickFrance2024-04-02Truhlar And Truhlar Attys RENEWAL66Amy Elsner
1042Johnson X StensethIndia2024-04-08Feiner Bros QUALIFIED25Elwin Sharvill
1043Claire H ChuiItaly2024-04-13King, Christopher A Esq QUALIFIED25Bernardo Dominic
1044David W InouyeSpain2024-04-18Rousseaux, Michael Esq RENEWAL48Asiya Javayant
1045Ricardo E InouyeJapan2024-04-09Benton, John B Jr RENEWAL19Xuxue Feng
1046Clifford I VocelkaFrance2024-04-26Printing Dimensions UNQUALIFIED88Elwin Sharvill
1047Aika I KuskoCanada2024-04-21Benton, John B Jr NEW59Ivan Magalhaes
1048Jefferson Q CaudyAustralia2024-04-10Morlong Associates RENEWAL2Ivan Magalhaes
1049Misaki X MorascaUnited Kingdom2024-04-14Feltz Printing Service UNQUALIFIED14Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Clifford X SchemmerItalyElwin Sharvill PROPOSAL
Isabel G SaylorsRussiaIvan Magalhaes UNQUALIFIED
Deepesh G CampainBrazilIvan Magalhaes NEW
Jeanfrancois I IturbideArgentinaBernardo Dominic UNQUALIFIED
Darci B MacleadGermanyIvan Magalhaes QUALIFIED
Rodrigues J MaletRussiaAnna Fali QUALIFIED
Salvatore P WieserIndiaXuxue Feng UNQUALIFIED
Darci L RoysterArgentinaOnyama Limba NEW
Cody M BriddickJapanAmy Elsner RENEWAL
Faith K NickaJapanElwin Sharvill QUALIFIED
Julie H SlusarskiArgentinaOnyama Limba RENEWAL
Mayumi R GauchoGermanyAnna Fali RENEWAL
Cody Y DilliardUnited KingdomAsiya Javayant NEGOTIATION
Smith T NickaBrazilAsiya Javayant RENEWAL
Alejandro E FlosiRussiaAmy Elsner QUALIFIED
Leon T StockhamSpainXuxue Feng NEW
Aditya Y CaudyCanadaIvan Magalhaes RENEWAL
Octavia P BologniaCanadaElwin Sharvill UNQUALIFIED
James D RoysterBrazilAnna Fali UNQUALIFIED
Arvin K StockhamAustraliaAsiya Javayant NEGOTIATION
Claire T WieserGermanyIvan Magalhaes QUALIFIED
Jones Y BologniaArgentinaIoni Bowcher QUALIFIED
Jennifer J AmigonJapanOnyama Limba QUALIFIED
Aika U FollerBrazilAnna Fali NEW
Ricardo V MarrierBrazilIvan Magalhaes NEGOTIATION
Darci V OldroydIndiaStephen Shaw QUALIFIED
Isabel Y FigeroaJapanIvan Magalhaes QUALIFIED
Juan W SaylorsJapanOnyama Limba UNQUALIFIED
Alejandro W MaletCanadaAsiya Javayant QUALIFIED
Cody U GlickItalyElwin Sharvill NEW
Deepesh J IturbideAustraliaXuxue Feng PROPOSAL
Sinclair W MacleadBrazilBernardo Dominic QUALIFIED
Leon D GauchoAustraliaAsiya Javayant PROPOSAL
Aika B VenereAustraliaXuxue Feng RENEWAL
Jennifer Y GillianIndiaIvan Magalhaes NEGOTIATION
Leja O WieserSpainStephen Shaw RENEWAL
Ivar F FollerItalyBernardo Dominic NEW
Cody Z FollerCanadaIoni Bowcher NEW
Izzy X GillianArgentinaAsiya Javayant UNQUALIFIED
Nicolas M MaletUnited KingdomIoni Bowcher RENEWAL
Antonio I PerinBrazilBernardo Dominic UNQUALIFIED
Rodrigues J StockhamJapanAnna Fali NEW
Ashley F FollerAustraliaBernardo Dominic UNQUALIFIED
Izzy P InouyeArgentinaIvan Magalhaes UNQUALIFIED
Stacey M WieserIndiaOnyama Limba NEGOTIATION
Julie T PoquetteGermanyAmy Elsner NEGOTIATION
Wickens N TollnerSpainOnyama Limba NEW
Darci Z SaylorsJapanIvan Magalhaes PROPOSAL
Maria K OstroskyAustraliaOnyama Limba QUALIFIED
Wickens P DoeAustraliaOnyama Limba PROPOSAL
Frozen Columns
Name
Deepesh R Ostrosky
Emily E Morasca
Aika N Chui
Jeanfrancois X Stenseth
Aditya T Schemmer
Emily M Ruta
Tony V Slusarski
Misaki W Sergi
Wickens A Wieser
Aruna W Gaucho
Emily M Butt
Jefferson L Marrier
Mujtaba Q Nicka
Izzy N Poquette
Johnson U Rulapaugh
Maria A Briddick
Jeanfrancois K Schemmer
Emily R Marrier
Mayumi Z Rulapaugh
Ashley A Schemmer
Julie G Slusarski
Julie R Morasca
Adams B Amigon
Smith K Paprocki
Sinclair A Bowley
James X Albares
James C Gaucho
Murillo B Tollner
Emily Y Iturbide
Octavia S Waycott
Murillo G Glick
Adams J Caudy
Kadeem S Gillian
Jones Z Darakjy
Arvin F Whobrey
Smith V Ruta
Munro H Rulapaugh
James M Kolmetz
Emily M Royster
Arvin U Gaucho
Tony M Wieser
Clifford P Amigon
James O Gaucho
Darci T Doe
Darci G Glick
Claire O Kolmetz
Sinclair O Albares
Clifford M Sergi
Stacey O Wieser
Jeanfrancois C Poquette
IdCountryDate
1000India2024-04-27
1001Argentina2024-04-02
1002Australia2024-04-14
1003Australia2024-04-09
1004Japan2024-04-26
1005Argentina2024-04-02
1006Germany2024-04-28
1007Argentina2024-04-26
1008Australia2024-04-02
1009Spain2024-04-02
1010Argentina2024-04-02
1011United Kingdom2024-04-04
1012United Kingdom2024-04-11
1013United Kingdom2024-03-30
1014Russia2024-04-13
1015Canada2024-04-02
1016Spain2024-04-21
1017Russia2024-04-27
1018United Kingdom2024-04-20
1019Argentina2024-04-19
1020Canada2024-04-14
1021United Kingdom2024-04-02
1022Spain2024-04-19
1023Japan2024-04-17
1024Australia2024-04-27
1025Italy2024-04-13
1026Japan2024-04-05
1027Brazil2024-04-04
1028Spain2024-04-19
1029Germany2024-04-11
1030Russia2024-04-19
1031Argentina2024-04-22
1032Brazil2024-04-22
1033Germany2024-04-12
1034United Kingdom2024-04-15
1035Russia2024-04-03
1036Russia2024-04-15
1037India2024-04-23
1038Germany2024-04-20
1039United Kingdom2024-03-31
1040Russia2024-04-15
1041France2024-04-19
1042Canada2024-04-08
1043Canada2024-04-10
1044Australia2024-04-20
1045United Kingdom2024-04-03
1046Canada2024-04-24
1047United Kingdom2024-03-31
1048Canada2024-04-17
1049India2024-04-12

On-Demand Data

NameIdCountryDate
Nicolas J Doe1000Germany2024-04-10
Adams W Maclead1001Japan2024-04-06
Sinclair O Glick1002Brazil2024-04-14
Clifford T Waycott1003Argentina2024-04-21
Adams S Bowley1004Canada2024-04-02
Costa C Slusarski1005Russia2024-04-09
Jones Z Campain1006United Kingdom2024-04-25
Izzy W Caldarera1007Japan2024-04-19
Arvin S Ostrosky1008Canada2024-04-24
Jones U Albares1009Russia2024-04-21
Cody F Schemmer1010Argentina2024-04-07
Salvatore H Kolmetz1011United Kingdom2024-03-30
Jennifer Y Paprocki1012India2024-04-23
David M Venere1013Spain2024-04-16
Munro C Iturbide1014Spain2024-04-10
Misaki T Caldarera1015France2024-04-09
Deepesh N Gaucho1016Argentina2024-04-12
Greenwood Q Chui1017Australia2024-04-26
Darci M Flosi1018Japan2024-04-19
Ashley D Poquette1019Argentina2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens X RulapaughIndiaElwin Sharvill UNQUALIFIED
Costa M GillianSpainAmy Elsner RENEWAL
Juan N PerinUnited KingdomAnna Fali PROPOSAL
Izzy N WhobreyBrazilBernardo Dominic NEW
Jeanfrancois Q BologniaUnited KingdomStephen Shaw QUALIFIED
Octavia Y BologniaBrazilAnna Fali RENEWAL
Tony G FigeroaGermanyBernardo Dominic QUALIFIED
David G CampainCanadaBernardo Dominic QUALIFIED
Smith N VocelkaIndiaAnna Fali PROPOSAL
Munro W AlbaresJapanStephen Shaw RENEWAL
Antonio X MacleadJapanStephen Shaw NEGOTIATION
Aditya V RimRussiaStephen Shaw NEGOTIATION
Octavia J MorascaItalyElwin Sharvill QUALIFIED
Smith E DarakjyIndiaIoni Bowcher NEW
Leja G ChuiRussiaElwin Sharvill RENEWAL
Tony G VenereRussiaOnyama Limba UNQUALIFIED
Darci T NestleCanadaElwin Sharvill UNQUALIFIED
Murillo D GlickIndiaIvan Magalhaes NEGOTIATION
Mujtaba N WaycottFranceIoni Bowcher UNQUALIFIED
Alejandro R DoeFranceStephen Shaw NEGOTIATION
David H MaletFranceStephen Shaw QUALIFIED
Darci L FollerSpainIvan Magalhaes NEW
Wickens R MarrierFranceIvan Magalhaes UNQUALIFIED
Misaki Y WhobreyIndiaOnyama Limba QUALIFIED
Antonio Y InouyeItalyElwin Sharvill NEGOTIATION
Adams O BowleyItalyBernardo Dominic QUALIFIED
Wickens W PerinIndiaAnna Fali NEGOTIATION
Jones X SlusarskiAustraliaIvan Magalhaes RENEWAL
Cody K MaletBrazilAsiya Javayant UNQUALIFIED
Stacey N WhobreyAustraliaElwin Sharvill RENEWAL
Wickens V AlbaresUnited KingdomStephen Shaw NEGOTIATION
Darci H PerinItalyAnna Fali PROPOSAL
Darci G RulapaughItalyAnna Fali NEW
Jennifer G GillianIndiaAsiya Javayant NEGOTIATION
Greenwood G ChuiGermanyIvan Magalhaes RENEWAL
Kadeem B KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Leja S AlbaresCanadaXuxue Feng RENEWAL
Rodrigues J DoeAustraliaAnna Fali UNQUALIFIED
Antonio P MacleadJapanBernardo Dominic NEW
Leon E WaycottBrazilIvan Magalhaes 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>