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
Julie X GauchoAustraliaStephen Shaw NEW
Izzy P VocelkaItalyAmy Elsner QUALIFIED
Salvatore H MaletBrazilXuxue Feng UNQUALIFIED
Jefferson A MarrierFranceStephen Shaw RENEWAL
Adams K DilliardIndiaAmy Elsner RENEWAL
Salvatore H PaprockiRussiaXuxue Feng RENEWAL
Sinclair I AmigonCanadaAmy Elsner RENEWAL
Jefferson V AlbaresIndiaAmy Elsner NEW
Aika Y ShinkoIndiaElwin Sharvill PROPOSAL
Johnson F MaletUnited KingdomElwin Sharvill NEW
Chavez H CaldareraIndiaBernardo Dominic UNQUALIFIED
Kadeem Z GauchoRussiaOnyama Limba QUALIFIED
Sinclair E ButtSpainXuxue Feng NEW
Kadeem H SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Silvio C FerenczArgentinaAmy Elsner QUALIFIED
Ivar T WaycottFranceIvan Magalhaes UNQUALIFIED
Izzy P RutaArgentinaAmy Elsner NEGOTIATION
Mayumi N GlickFranceOnyama Limba RENEWAL
Leon I WaycottUnited KingdomElwin Sharvill NEGOTIATION
Aditya A RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Munro P FerenczRussiaBernardo Dominic NEW
Wickens K GlickUnited KingdomBernardo Dominic PROPOSAL
Isabel G MorascaBrazilXuxue Feng QUALIFIED
Smith T RulapaughBrazilStephen Shaw RENEWAL
Ricardo C VenereArgentinaIvan Magalhaes NEGOTIATION
Octavia E SaylorsSpainXuxue Feng PROPOSAL
Murillo B AmigonFranceXuxue Feng QUALIFIED
Nicolas X MorascaSpainXuxue Feng NEGOTIATION
Juan T BriddickJapanAsiya Javayant RENEWAL
Jones H KolmetzRussiaStephen Shaw RENEWAL
Jeanfrancois G GillianIndiaIoni Bowcher NEGOTIATION
Alejandro G KolmetzFranceIoni Bowcher NEGOTIATION
Johnson E SchemmerJapanElwin Sharvill NEW
Arvin L KuskoGermanyAnna Fali NEGOTIATION
Maria Q FlosiJapanXuxue Feng QUALIFIED
Johnson J BowleyItalyAsiya Javayant PROPOSAL
Wickens F ButtItalyAnna Fali RENEWAL
Jennifer C FigeroaAustraliaAnna Fali QUALIFIED
Jennifer X RulapaughSpainAmy Elsner PROPOSAL
Arvin V RutaGermanyIoni Bowcher RENEWAL
Jefferson S MaletAustraliaAmy Elsner QUALIFIED
Julie C OldroydIndiaOnyama Limba NEW
Maria X SlusarskiArgentinaAsiya Javayant RENEWAL
Isabel E CaldareraGermanyBernardo Dominic RENEWAL
Julie G NestleGermanyXuxue Feng UNQUALIFIED
Antonio E SchemmerJapanStephen Shaw PROPOSAL
Ricardo U SergiIndiaElwin Sharvill RENEWAL
Stacey Y ChuiRussiaAnna Fali PROPOSAL
Salvatore F FerenczSpainElwin Sharvill NEW
Stacey Z BriddickItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow M TollnerBrazilOnyama Limba RENEWAL
Emily Q OldroydRussiaOnyama Limba NEW
Ricardo S TollnerItalyIoni Bowcher RENEWAL
Wickens F FerenczFranceStephen Shaw UNQUALIFIED
Mayumi D KuskoAustraliaBernardo Dominic RENEWAL
Ashley Z GlickCanadaElwin Sharvill QUALIFIED
Salvatore J PerinUnited KingdomOnyama Limba RENEWAL
Salvatore P GlickRussiaAnna Fali NEGOTIATION
Izzy Q SergiBrazilBernardo Dominic QUALIFIED
David M GauchoGermanyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci J MaletUnited Kingdom2024-03-22Buckley Miller Wright NEGOTIATION33Ivan Magalhaes
1001Ashley R WieserAustralia2024-04-09Benton, John B Jr RENEWAL7Bernardo Dominic
1002Maria H ChuiIndia2024-03-24Chanay, Jeffrey A Esq QUALIFIED33Stephen Shaw
1003Johnson U BriddickArgentina2024-04-09King, Christopher A Esq NEGOTIATION47Bernardo Dominic
1004Ivar Q FerenczItaly2024-04-16Chemel, James L Cpa PROPOSAL20Ioni Bowcher
1005Claire F DilliardItaly2024-03-19Feltz Printing Service PROPOSAL19Ioni Bowcher
1006Munro U MorascaRussia2024-03-28Chanay, Jeffrey A Esq NEGOTIATION35Anna Fali
1007Chavez O WhobreyBrazil2024-04-13Chanay, Jeffrey A Esq NEGOTIATION1Stephen Shaw
1008Leja Z TollnerRussia2024-04-09Truhlar And Truhlar Attys RENEWAL69Amy Elsner
1009Jones V BowleyBrazil2024-03-23Buckley Miller Wright NEW0Xuxue Feng
1010James Q MorascaAustralia2024-03-30Chanay, Jeffrey A Esq QUALIFIED94Stephen Shaw
1011Jeanfrancois B SaylorsIndia2024-04-11Rousseaux, Michael Esq PROPOSAL72Anna Fali
1012Julie R ShinkoFrance2024-03-26Printing Dimensions NEW71Bernardo Dominic
1013Munro Q NestleItaly2024-03-21Feltz Printing Service QUALIFIED10Elwin Sharvill
1014Claire L GarufiIndia2024-04-08Truhlar And Truhlar Attys PROPOSAL54Ioni Bowcher
1015Juan R DoeCanada2024-03-22Chapman, Ross E Esq QUALIFIED71Anna Fali
1016Darci G MaletFrance2024-04-16King, Christopher A Esq NEW50Anna Fali
1017James Y IturbideCanada2024-03-22Dorl, James J Esq NEW68Anna Fali
1018Cody W MaletSpain2024-04-01Rangoni Of Florence NEW22Xuxue Feng
1019Jeanfrancois N RulapaughJapan2024-04-15Commercial Press UNQUALIFIED77Asiya Javayant
1020Chavez Y DarakjyUnited Kingdom2024-03-24Chemel, James L Cpa RENEWAL94Onyama Limba
1021Maisha B RutaCanada2024-03-26Rousseaux, Michael Esq NEW32Asiya Javayant
1022Antonio Q RulapaughAustralia2024-04-01Dorl, James J Esq NEGOTIATION72Xuxue Feng
1023Stacey T PaprockiAustralia2024-04-04Buckley Miller Wright RENEWAL55Stephen Shaw
1024Darci N PerinSpain2024-03-24Commercial Press PROPOSAL52Bernardo Dominic
1025Leja Z TollnerUnited Kingdom2024-04-01Truhlar And Truhlar Attys QUALIFIED51Onyama Limba
1026Tony O MorascaUnited Kingdom2024-04-03Morlong Associates NEW84Xuxue Feng
1027Morrow U BowleyBrazil2024-03-27Feltz Printing Service UNQUALIFIED5Xuxue Feng
1028Stacey J GarufiFrance2024-03-31Morlong Associates QUALIFIED19Onyama Limba
1029Jennifer W InouyeFrance2024-03-21Printing Dimensions QUALIFIED7Stephen Shaw
1030Aika U StensethRussia2024-04-03Commercial Press PROPOSAL67Asiya Javayant
1031Smith N RoysterJapan2024-03-22Morlong Associates NEGOTIATION72Ivan Magalhaes
1032Antonio G AmigonItaly2024-03-25Morlong Associates PROPOSAL3Bernardo Dominic
1033Deepesh H ButtItaly2024-03-24Benton, John B Jr RENEWAL3Anna Fali
1034Kadeem I CaudyUnited Kingdom2024-04-11Benton, John B Jr QUALIFIED15Onyama Limba
1035Maria A PaprockiBrazil2024-03-22Chemel, James L Cpa NEGOTIATION71Asiya Javayant
1036Wickens V FollerGermany2024-04-17Chemel, James L Cpa RENEWAL29Asiya Javayant
1037Greenwood Q SchemmerBrazil2024-04-17Morlong Associates UNQUALIFIED17Elwin Sharvill
1038Isabel Z OldroydJapan2024-03-24Chemel, James L Cpa RENEWAL73Asiya Javayant
1039Maisha L BologniaGermany2024-03-25Rangoni Of Florence NEGOTIATION89Stephen Shaw
1040Antonio N StensethIndia2024-03-24Chapman, Ross E Esq NEGOTIATION67Anna Fali
1041Tony V BowleyAustralia2024-03-24Commercial Press PROPOSAL37Elwin Sharvill
1042Adams P MarrierArgentina2024-03-28Chanay, Jeffrey A Esq QUALIFIED64Stephen Shaw
1043Munro S SlusarskiUnited Kingdom2024-04-01Benton, John B Jr NEGOTIATION69Stephen Shaw
1044Antonio V ButtUnited Kingdom2024-03-20Commercial Press NEGOTIATION23Anna Fali
1045Clifford A TollnerArgentina2024-04-01King, Christopher A Esq RENEWAL16Stephen Shaw
1046Aika Y CaldareraCanada2024-04-09Rousseaux, Michael Esq QUALIFIED44Asiya Javayant
1047David R WhobreyGermany2024-03-28Buckley Miller Wright UNQUALIFIED29Ioni Bowcher
1048Ashley U NickaFrance2024-04-08Feiner Bros QUALIFIED57Asiya Javayant
1049Wickens A NestleItaly2024-03-28Benton, John B Jr PROPOSAL43Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez Z FollerRussiaOnyama Limba QUALIFIED
Rodrigues I TollnerJapanAmy Elsner PROPOSAL
Jeanfrancois M DilliardGermanyOnyama Limba PROPOSAL
Chavez S GlickRussiaIvan Magalhaes NEGOTIATION
Mayumi T MacleadJapanAnna Fali PROPOSAL
Salvatore W FollerGermanyIvan Magalhaes PROPOSAL
Leja F MorascaArgentinaIoni Bowcher NEGOTIATION
Mayumi K BologniaGermanyAnna Fali PROPOSAL
Julie R InouyeJapanIvan Magalhaes NEW
Arvin G BowleyGermanyOnyama Limba RENEWAL
Nicolas F VenereFranceOnyama Limba NEW
Misaki I BowleyUnited KingdomAsiya Javayant PROPOSAL
Greenwood P WieserIndiaStephen Shaw NEGOTIATION
Leon O WhobreyBrazilIoni Bowcher PROPOSAL
Claire G KuskoJapanAsiya Javayant UNQUALIFIED
James L BowleyUnited KingdomElwin Sharvill NEGOTIATION
Rodrigues V GarufiArgentinaAsiya Javayant QUALIFIED
Misaki W MacleadAustraliaElwin Sharvill RENEWAL
Smith H RimArgentinaIoni Bowcher QUALIFIED
Mujtaba Z NestleFranceElwin Sharvill QUALIFIED
David G SergiUnited KingdomElwin Sharvill NEW
Smith J RimAustraliaXuxue Feng NEW
Izzy U CaudyArgentinaIvan Magalhaes NEW
Clifford W FlosiBrazilIoni Bowcher PROPOSAL
Nicolas M KolmetzIndiaOnyama Limba NEW
Darci P AlbaresBrazilAnna Fali NEGOTIATION
Mujtaba G BowleyUnited KingdomIoni Bowcher RENEWAL
Costa C TollnerBrazilAnna Fali QUALIFIED
Clifford D PaprockiSpainXuxue Feng RENEWAL
Silvio B MorascaRussiaAmy Elsner QUALIFIED
Arvin N ButtAustraliaIvan Magalhaes NEGOTIATION
Chavez Q AlbaresGermanyBernardo Dominic NEGOTIATION
Adams H ShinkoIndiaAnna Fali NEGOTIATION
James L KuskoItalyStephen Shaw UNQUALIFIED
Costa O RoysterAustraliaElwin Sharvill RENEWAL
Aika Q GarufiBrazilAnna Fali RENEWAL
Octavia J ButtIndiaStephen Shaw NEW
Nicolas Q SlusarskiRussiaStephen Shaw UNQUALIFIED
Jones X NickaItalyIoni Bowcher NEGOTIATION
Aditya U OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Octavia O MarrierUnited KingdomXuxue Feng RENEWAL
Tony R BowleyAustraliaElwin Sharvill UNQUALIFIED
Antonio H DilliardFranceAsiya Javayant QUALIFIED
Stacey Z KuskoJapanXuxue Feng PROPOSAL
Tony O BowleyBrazilOnyama Limba NEW
Leon U MorascaRussiaIoni Bowcher UNQUALIFIED
Alejandro A SchemmerUnited KingdomAsiya Javayant PROPOSAL
Aika U SlusarskiSpainOnyama Limba PROPOSAL
Francesco P VocelkaUnited KingdomStephen Shaw QUALIFIED
Darci R PaprockiGermanyStephen Shaw NEW
Frozen Columns
Name
Tony J Rim
Stacey Q Briddick
Aditya Z Gaucho
Maria I Malet
Stacey Y Doe
Aruna Z Chui
Julie Z Amigon
Cody C Sergi
Wickens N Kolmetz
Claire U Stockham
Jeanfrancois D Caudy
Chavez O Amigon
Rodrigues L Tollner
Emily X Ruta
Aruna V Flosi
Tony F Doe
Smith U Chui
Rodrigues P Campain
Adams R Bowley
Alejandro Q Iturbide
Darci V Bolognia
Octavia I Ostrosky
Darci I Iturbide
Leja G Slusarski
Johnson K Royster
Jeanfrancois N Albares
Salvatore Z Albares
Francesco E Stenseth
Sinclair G Inouye
Adams I Kusko
Izzy S Rim
Jeanfrancois I Saylors
Ashley G Vocelka
Mayumi C Wieser
Francesco J Gillian
Leja L Ruta
Chavez C Whobrey
Misaki J Bolognia
Leja V Dilliard
Jennifer V Dilliard
Sinclair U Wieser
Munro A Sergi
Maisha P Stenseth
Octavia X Caldarera
Juan T Malet
Deepesh S Slusarski
Cody P Malet
Greenwood F Nicka
Aika I Malet
Ricardo T Nestle
IdCountryDate
1000Japan2024-03-19
1001France2024-03-20
1002Argentina2024-04-03
1003United Kingdom2024-03-25
1004Germany2024-03-26
1005Spain2024-04-12
1006Russia2024-04-08
1007Argentina2024-04-17
1008Russia2024-04-03
1009Argentina2024-04-14
1010India2024-04-17
1011Brazil2024-03-21
1012Japan2024-04-07
1013France2024-04-09
1014Canada2024-04-17
1015Brazil2024-04-06
1016France2024-03-28
1017Australia2024-03-24
1018Germany2024-03-27
1019United Kingdom2024-03-29
1020Germany2024-04-15
1021France2024-03-26
1022France2024-03-30
1023Russia2024-04-02
1024Japan2024-03-23
1025Canada2024-04-02
1026Russia2024-04-04
1027Australia2024-04-10
1028India2024-03-21
1029Japan2024-03-21
1030Australia2024-03-31
1031Japan2024-03-31
1032Germany2024-03-27
1033Russia2024-04-09
1034Italy2024-04-13
1035France2024-04-06
1036Italy2024-04-15
1037Italy2024-03-27
1038Canada2024-03-23
1039Australia2024-03-20
1040Italy2024-04-10
1041Germany2024-04-11
1042Italy2024-04-09
1043Germany2024-04-07
1044Argentina2024-04-15
1045United Kingdom2024-03-21
1046Spain2024-04-05
1047Canada2024-04-07
1048Canada2024-04-08
1049Spain2024-04-10

On-Demand Data

NameIdCountryDate
Jones N Rulapaugh1000United Kingdom2024-04-12
Deepesh E Bowley1001Australia2024-04-10
Adams X Vocelka1002Spain2024-04-11
Misaki R Ferencz1003India2024-03-24
Emily Z Briddick1004Germany2024-03-23
Jennifer B Gaucho1005Argentina2024-04-12
Leja K Paprocki1006Australia2024-04-02
Salvatore I Flosi1007Russia2024-03-26
Izzy K Campain1008Italy2024-04-12
Mujtaba B Darakjy1009Canada2024-03-24
Arvin N Slusarski1010India2024-04-08
Jefferson M Gaucho1011France2024-04-12
Aruna V Doe1012Argentina2024-04-13
Adams I Ruta1013Italy2024-04-07
Isabel E Kusko1014Brazil2024-03-22
Aruna U Whobrey1015Australia2024-04-10
Isabel H Stockham1016Russia2024-04-05
Maisha Q Rim1017Russia2024-03-30
James C Sergi1018France2024-04-16
Isabel R Kusko1019Canada2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya S KuskoItalyStephen Shaw NEGOTIATION
Kadeem A AlbaresIndiaElwin Sharvill PROPOSAL
Maria U SchemmerIndiaIvan Magalhaes NEGOTIATION
Costa S TollnerArgentinaAsiya Javayant RENEWAL
Aruna C MaletCanadaElwin Sharvill QUALIFIED
Jefferson A DilliardArgentinaIvan Magalhaes QUALIFIED
Sinclair N ButtGermanyAsiya Javayant UNQUALIFIED
Antonio D TollnerItalyElwin Sharvill UNQUALIFIED
Ivar C AlbaresGermanyAnna Fali PROPOSAL
Aruna Y ShinkoArgentinaAnna Fali QUALIFIED
Izzy C MaletBrazilIvan Magalhaes PROPOSAL
Mujtaba O ChuiCanadaAnna Fali QUALIFIED
Cody P ButtUnited KingdomAmy Elsner RENEWAL
Darci W FollerFranceAnna Fali UNQUALIFIED
Stacey O NickaCanadaOnyama Limba RENEWAL
Leon L AmigonRussiaAnna Fali UNQUALIFIED
David Z RutaFranceAsiya Javayant QUALIFIED
Maisha X StensethCanadaStephen Shaw NEW
Antonio F GlickUnited KingdomStephen Shaw RENEWAL
Munro B MarrierSpainOnyama Limba QUALIFIED
Leja F RulapaughGermanyIoni Bowcher NEGOTIATION
Juan C WieserArgentinaIoni Bowcher QUALIFIED
Deepesh K VenereFranceAsiya Javayant UNQUALIFIED
Munro S NickaRussiaElwin Sharvill NEW
Munro U VocelkaCanadaAsiya Javayant NEW
Julie Z SergiAustraliaBernardo Dominic QUALIFIED
Mujtaba U GlickRussiaStephen Shaw RENEWAL
Nicolas Z KolmetzItalyBernardo Dominic NEGOTIATION
Munro G SlusarskiItalyIoni Bowcher QUALIFIED
Rodrigues N MorascaUnited KingdomOnyama Limba PROPOSAL
Smith K IturbideCanadaElwin Sharvill UNQUALIFIED
Maisha P KolmetzAustraliaAsiya Javayant QUALIFIED
Emily Z StensethAustraliaElwin Sharvill NEW
Johnson V RimRussiaStephen Shaw PROPOSAL
Greenwood J KuskoBrazilXuxue Feng UNQUALIFIED
Francesco X SaylorsBrazilOnyama Limba NEGOTIATION
Deepesh M FerenczUnited KingdomXuxue Feng UNQUALIFIED
Ricardo V KuskoCanadaOnyama Limba NEW
Morrow B RulapaughFranceBernardo Dominic PROPOSAL
David J TollnerAustraliaXuxue Feng 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>