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
Antonio W CampainSpainAnna Fali PROPOSAL
Maisha C OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Deepesh K AlbaresBrazilXuxue Feng RENEWAL
Silvio O DarakjyBrazilIoni Bowcher NEW
Aditya N SlusarskiArgentinaXuxue Feng UNQUALIFIED
Silvio Y WieserGermanyAmy Elsner UNQUALIFIED
Juan F KuskoSpainIvan Magalhaes PROPOSAL
Julie P FollerAustraliaAnna Fali NEW
Smith T RimSpainXuxue Feng PROPOSAL
Faith N CaudyArgentinaOnyama Limba QUALIFIED
Faith W RutaArgentinaElwin Sharvill PROPOSAL
Darci I GarufiBrazilAsiya Javayant UNQUALIFIED
Sinclair P FerenczIndiaIvan Magalhaes PROPOSAL
Silvio F ChuiCanadaIoni Bowcher QUALIFIED
Ricardo V ShinkoRussiaAnna Fali PROPOSAL
Chavez E CaldareraRussiaOnyama Limba QUALIFIED
Faith L NestleGermanyIvan Magalhaes PROPOSAL
Jennifer Q ShinkoRussiaElwin Sharvill UNQUALIFIED
Ivar I DilliardUnited KingdomXuxue Feng UNQUALIFIED
Johnson I FigeroaGermanyAsiya Javayant QUALIFIED
Maria G CaudyUnited KingdomAmy Elsner NEGOTIATION
Aruna H MaletArgentinaIvan Magalhaes UNQUALIFIED
Leon A IturbideUnited KingdomBernardo Dominic QUALIFIED
Maisha V FollerGermanyElwin Sharvill UNQUALIFIED
Aditya N PaprockiFranceIoni Bowcher QUALIFIED
Arvin K SlusarskiCanadaElwin Sharvill UNQUALIFIED
Izzy W DarakjyJapanXuxue Feng NEW
Alejandro B GarufiCanadaXuxue Feng NEGOTIATION
Chavez V InouyeCanadaElwin Sharvill UNQUALIFIED
Chavez H RulapaughRussiaAnna Fali UNQUALIFIED
Stacey S GlickRussiaIvan Magalhaes UNQUALIFIED
Misaki Y NickaRussiaAnna Fali QUALIFIED
Cody A StensethBrazilIoni Bowcher UNQUALIFIED
Tony W GauchoIndiaAsiya Javayant QUALIFIED
Juan Z WieserJapanOnyama Limba PROPOSAL
Leon A RimSpainElwin Sharvill PROPOSAL
Mujtaba Z GauchoCanadaIvan Magalhaes UNQUALIFIED
Kaitlin N BriddickGermanyOnyama Limba NEW
Deepesh L GlickBrazilIvan Magalhaes PROPOSAL
James J BowleyGermanyBernardo Dominic NEW
Aditya C TollnerCanadaIoni Bowcher NEGOTIATION
Smith I SchemmerSpainXuxue Feng UNQUALIFIED
Leja N InouyeUnited KingdomAnna Fali QUALIFIED
Francesco P RutaSpainOnyama Limba UNQUALIFIED
Sinclair O BologniaJapanOnyama Limba RENEWAL
Ashley V AlbaresUnited KingdomOnyama Limba QUALIFIED
Izzy R RulapaughIndiaAsiya Javayant QUALIFIED
Aditya T FollerGermanyAsiya Javayant PROPOSAL
James R DarakjyGermanyStephen Shaw QUALIFIED
Isabel Q MacleadCanadaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Maisha W SlusarskiFranceAmy Elsner QUALIFIED
Jefferson X WaycottIndiaElwin Sharvill UNQUALIFIED
Alejandro D GillianJapanIvan Magalhaes NEGOTIATION
Kadeem X OstroskyGermanyElwin Sharvill UNQUALIFIED
Claire Z ButtCanadaAmy Elsner QUALIFIED
Munro U FlosiJapanOnyama Limba NEGOTIATION
Jefferson G InouyeCanadaXuxue Feng RENEWAL
Octavia J RoysterFranceStephen Shaw NEW
Tony T CaldareraIndiaAmy Elsner NEGOTIATION
Leja K BriddickAustraliaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo N RimRussia2024-04-10Morlong Associates NEW7Ioni Bowcher
1001Misaki M StensethUnited Kingdom2024-04-02Dorl, James J Esq PROPOSAL56Xuxue Feng
1002Murillo S MacleadArgentina2024-04-17Rousseaux, Michael Esq UNQUALIFIED20Asiya Javayant
1003Aditya U DarakjyItaly2024-04-11Printing Dimensions UNQUALIFIED43Stephen Shaw
1004Johnson G RimFrance2024-04-28Dorl, James J Esq PROPOSAL61Anna Fali
1005Misaki C BriddickJapan2024-04-16Rangoni Of Florence NEW47Ioni Bowcher
1006Mujtaba W VenereIndia2024-04-19Printing Dimensions NEGOTIATION41Elwin Sharvill
1007Tony N WieserFrance2024-04-28Printing Dimensions RENEWAL55Amy Elsner
1008Costa O FigeroaIndia2024-04-25Truhlar And Truhlar Attys UNQUALIFIED47Stephen Shaw
1009Ricardo B TollnerFrance2024-04-12Rangoni Of Florence PROPOSAL76Xuxue Feng
1010Ivar C NickaArgentina2024-04-02Chapman, Ross E Esq RENEWAL27Ivan Magalhaes
1011Smith F CaudyItaly2024-04-09Rousseaux, Michael Esq NEW18Xuxue Feng
1012Greenwood B GarufiGermany2024-04-17Chanay, Jeffrey A Esq RENEWAL29Ivan Magalhaes
1013Kadeem X FerenczSpain2024-04-04Truhlar And Truhlar Attys QUALIFIED41Amy Elsner
1014Rodrigues A CaldareraJapan2024-04-25Rangoni Of Florence RENEWAL85Ioni Bowcher
1015Mayumi A BologniaRussia2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED99Xuxue Feng
1016Mujtaba E PaprockiUnited Kingdom2024-04-22Feiner Bros NEGOTIATION81Anna Fali
1017Maria Z SlusarskiAustralia2024-04-09Printing Dimensions UNQUALIFIED35Asiya Javayant
1018Leja C MarrierUnited Kingdom2024-04-11Feltz Printing Service RENEWAL21Ioni Bowcher
1019Nicolas J NickaArgentina2024-04-26Chapman, Ross E Esq QUALIFIED68Ioni Bowcher
1020Jennifer B VenereUnited Kingdom2024-04-26Rangoni Of Florence NEGOTIATION15Asiya Javayant
1021Darci W CaldareraJapan2024-04-05Dorl, James J Esq RENEWAL75Asiya Javayant
1022Ricardo R CampainUnited Kingdom2024-04-17Dorl, James J Esq RENEWAL61Ioni Bowcher
1023Ashley K FerenczUnited Kingdom2024-03-30Benton, John B Jr NEGOTIATION30Elwin Sharvill
1024Salvatore O CaudyItaly2024-04-19Feiner Bros NEW40Stephen Shaw
1025Octavia Y RulapaughRussia2024-04-14King, Christopher A Esq RENEWAL42Ioni Bowcher
1026Francesco F WaycottJapan2024-04-12Morlong Associates PROPOSAL65Elwin Sharvill
1027Munro V MorascaBrazil2024-04-08Rangoni Of Florence QUALIFIED59Ivan Magalhaes
1028Cody C AlbaresRussia2024-04-10Truhlar And Truhlar Attys QUALIFIED81Onyama Limba
1029Isabel J DarakjyUnited Kingdom2024-04-13Buckley Miller Wright PROPOSAL58Ivan Magalhaes
1030Darci E PaprockiJapan2024-04-20Rousseaux, Michael Esq RENEWAL73Amy Elsner
1031Alejandro M FigeroaAustralia2024-04-10Rangoni Of Florence NEGOTIATION43Amy Elsner
1032Deepesh O BologniaIndia2024-03-31Morlong Associates NEGOTIATION9Ivan Magalhaes
1033Cody R OldroydFrance2024-04-09Chanay, Jeffrey A Esq PROPOSAL45Anna Fali
1034Octavia W SchemmerUnited Kingdom2024-04-14Chemel, James L Cpa PROPOSAL70Stephen Shaw
1035Rodrigues J MacleadRussia2024-04-20Morlong Associates RENEWAL66Ivan Magalhaes
1036Deepesh B KolmetzSpain2024-03-31Chemel, James L Cpa RENEWAL59Elwin Sharvill
1037Leja B RoysterItaly2024-04-13Dorl, James J Esq RENEWAL56Elwin Sharvill
1038Salvatore S DarakjyRussia2024-04-25Chapman, Ross E Esq QUALIFIED4Xuxue Feng
1039Aika S WieserArgentina2024-04-04Feltz Printing Service NEW92Onyama Limba
1040Juan C GlickFrance2024-04-16Morlong Associates PROPOSAL81Stephen Shaw
1041Ivar S GlickRussia2024-04-06Chemel, James L Cpa RENEWAL92Amy Elsner
1042Antonio M BriddickCanada2024-04-19Benton, John B Jr PROPOSAL90Amy Elsner
1043Ricardo V MorascaFrance2024-04-18Commercial Press QUALIFIED60Onyama Limba
1044Ashley S MaletIndia2024-04-11Chemel, James L Cpa PROPOSAL79Stephen Shaw
1045Ashley S ChuiIndia2024-03-31King, Christopher A Esq NEW14Stephen Shaw
1046Wickens D RutaGermany2024-04-01Chemel, James L Cpa UNQUALIFIED52Ivan Magalhaes
1047Julie R OstroskyRussia2024-04-06Printing Dimensions UNQUALIFIED30Asiya Javayant
1048Tony K KolmetzSpain2024-03-30Benton, John B Jr QUALIFIED30Asiya Javayant
1049James E RutaFrance2024-04-18Chanay, Jeffrey A Esq NEGOTIATION87Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo Z SchemmerSpainIoni Bowcher UNQUALIFIED
Francesco R GarufiRussiaAmy Elsner NEGOTIATION
Murillo X RoysterArgentinaIoni Bowcher UNQUALIFIED
Mujtaba H OldroydGermanyIvan Magalhaes NEW
Cody L GillianRussiaIvan Magalhaes NEW
Deepesh R CampainUnited KingdomAmy Elsner RENEWAL
Murillo H RoysterSpainBernardo Dominic QUALIFIED
Aika Y RoysterIndiaOnyama Limba NEGOTIATION
Emily L MaletAustraliaAnna Fali RENEWAL
Octavia U DilliardCanadaXuxue Feng UNQUALIFIED
Munro Y DoeAustraliaAnna Fali NEGOTIATION
Adams D WhobreyCanadaStephen Shaw UNQUALIFIED
Wickens W DoeBrazilAsiya Javayant PROPOSAL
Antonio U WhobreyIndiaIvan Magalhaes UNQUALIFIED
Kadeem R TollnerIndiaXuxue Feng UNQUALIFIED
Jennifer K PoquetteUnited KingdomAnna Fali UNQUALIFIED
Mujtaba V RulapaughSpainElwin Sharvill PROPOSAL
Silvio I WieserFranceOnyama Limba NEGOTIATION
Ivar K WieserFranceStephen Shaw NEW
Alejandro F StensethGermanyIvan Magalhaes QUALIFIED
Adams E BriddickAustraliaXuxue Feng NEW
Juan S PerinItalyStephen Shaw NEW
Sinclair J ShinkoIndiaAnna Fali NEGOTIATION
Clifford R GauchoJapanIvan Magalhaes UNQUALIFIED
Sinclair Y OstroskyRussiaXuxue Feng NEW
Tony D SchemmerUnited KingdomBernardo Dominic NEW
Izzy C ButtGermanyAnna Fali PROPOSAL
Emily Y RulapaughJapanBernardo Dominic QUALIFIED
Alejandro H DilliardCanadaAnna Fali NEW
Wickens H NickaItalyIoni Bowcher NEGOTIATION
Adams V SaylorsBrazilIvan Magalhaes QUALIFIED
Aika J GarufiCanadaOnyama Limba UNQUALIFIED
Salvatore V SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Jones D BriddickGermanyAmy Elsner UNQUALIFIED
Claire V FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Isabel Q SlusarskiCanadaBernardo Dominic PROPOSAL
Misaki L RoysterSpainAmy Elsner RENEWAL
Maria A GillianItalyBernardo Dominic NEGOTIATION
Murillo I OstroskyCanadaAmy Elsner UNQUALIFIED
Darci Z GillianArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois H StensethJapanXuxue Feng QUALIFIED
Mayumi W OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas K GlickJapanIoni Bowcher QUALIFIED
Darci L GlickCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois G StockhamIndiaXuxue Feng RENEWAL
Jennifer N VenereUnited KingdomElwin Sharvill NEGOTIATION
Alejandro D PoquetteJapanIoni Bowcher UNQUALIFIED
Greenwood V FerenczJapanElwin Sharvill PROPOSAL
Kaitlin I RimUnited KingdomOnyama Limba NEGOTIATION
Faith V MorascaCanadaAnna Fali RENEWAL
Frozen Columns
Name
Jefferson A Kolmetz
Johnson A Bolognia
Sinclair L Flosi
Octavia H Briddick
Deepesh Y Maclead
Ivar R Perin
Rodrigues Q Chui
Munro Z Bowley
Leon M Doe
Francesco C Maclead
Adams O Kolmetz
Aditya X Garufi
Emily S Gillian
Ricardo V Dilliard
Clifford Y Rim
Juan C Amigon
Antonio T Garufi
Costa Q Marrier
Jeanfrancois K Kusko
Kaitlin K Albares
Maria F Butt
Salvatore S Ferencz
Rodrigues O Figeroa
David Q Caudy
Chavez H Schemmer
Faith K Oldroyd
Adams N Sergi
Faith H Albares
Ricardo P Bolognia
Kaitlin S Malet
Claire A Doe
Jeanfrancois V Malet
Octavia K Gaucho
Claire J Gaucho
Ashley K Ostrosky
Cody T Glick
James K Darakjy
Cody J Gillian
Arvin B Darakjy
Isabel O Kusko
Julie K Ostrosky
Stacey R Oldroyd
David N Garufi
Greenwood N Butt
Cody P Stenseth
Kadeem U Sergi
Claire Z Ruta
Aruna K Ferencz
Cody N Malet
Aditya T Oldroyd
IdCountryDate
1000United Kingdom2024-04-27
1001United Kingdom2024-04-23
1002Spain2024-04-16
1003United Kingdom2024-03-31
1004Spain2024-04-17
1005India2024-04-03
1006Germany2024-04-08
1007Italy2024-03-31
1008India2024-04-05
1009Russia2024-04-08
1010Brazil2024-04-11
1011Australia2024-04-01
1012Spain2024-04-22
1013France2024-04-27
1014Argentina2024-04-03
1015Canada2024-04-17
1016Canada2024-04-08
1017Italy2024-04-05
1018Spain2024-04-13
1019Brazil2024-04-09
1020Japan2024-04-07
1021Germany2024-04-08
1022Germany2024-04-28
1023Brazil2024-04-10
1024Russia2024-03-31
1025Brazil2024-04-23
1026Russia2024-04-21
1027Argentina2024-04-09
1028Australia2024-04-04
1029Argentina2024-04-03
1030Australia2024-04-20
1031Argentina2024-04-21
1032Australia2024-04-15
1033India2024-03-31
1034Australia2024-03-31
1035France2024-04-17
1036Brazil2024-04-27
1037Russia2024-04-21
1038Canada2024-04-19
1039Australia2024-04-16
1040Russia2024-04-28
1041United Kingdom2024-04-17
1042Germany2024-04-15
1043Brazil2024-04-09
1044Spain2024-04-10
1045Japan2024-04-23
1046Japan2024-04-06
1047Italy2024-04-07
1048Japan2024-04-10
1049Argentina2024-04-01

On-Demand Data

NameIdCountryDate
Jennifer R Nicka1000Australia2024-03-30
Francesco Q Maclead1001Argentina2024-04-07
Wickens M Perin1002Canada2024-04-10
Isabel E Albares1003Russia2024-04-02
Emily V Rim1004Australia2024-04-11
Tony F Chui1005Australia2024-04-24
Wickens H Bowley1006Argentina2024-04-24
Antonio Z Shinko1007India2024-04-23
Adams T Maclead1008Japan2024-04-08
Aditya T Marrier1009Russia2024-04-11
Silvio F Oldroyd1010Brazil2024-04-28
Aika W Ruta1011Germany2024-04-28
Johnson D Oldroyd1012India2024-04-22
Salvatore M Figeroa1013Canada2024-04-14
Faith W Vocelka1014Argentina2024-04-28
Francesco K Caldarera1015Brazil2024-04-19
Jennifer Y Bolognia1016Australia2024-03-31
Costa M Royster1017Brazil2024-04-09
Jeanfrancois M Tollner1018Italy2024-04-04
Antonio O Doe1019Australia2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi Z DilliardFranceAnna Fali UNQUALIFIED
Emily Q TollnerRussiaAnna Fali UNQUALIFIED
Claire E MaletBrazilAmy Elsner NEGOTIATION
Jefferson T SchemmerArgentinaAnna Fali PROPOSAL
Morrow J RimRussiaAsiya Javayant NEGOTIATION
Jefferson J SlusarskiRussiaAmy Elsner RENEWAL
Mayumi R PerinJapanIoni Bowcher UNQUALIFIED
Aruna A WaycottUnited KingdomAmy Elsner PROPOSAL
James G KuskoFranceAnna Fali PROPOSAL
Johnson K ButtSpainAsiya Javayant QUALIFIED
Jeanfrancois D MorascaUnited KingdomAnna Fali RENEWAL
Jeanfrancois H DarakjyArgentinaStephen Shaw QUALIFIED
Maisha E FollerBrazilXuxue Feng UNQUALIFIED
Claire O TollnerFranceAmy Elsner QUALIFIED
Aika X SlusarskiFranceXuxue Feng NEGOTIATION
Arvin I PoquetteIndiaAnna Fali QUALIFIED
Ivar U NickaFranceXuxue Feng NEGOTIATION
Sinclair M KuskoIndiaElwin Sharvill UNQUALIFIED
Kaitlin H SaylorsFranceStephen Shaw UNQUALIFIED
Alejandro P VenereItalyElwin Sharvill RENEWAL
Julie M MacleadIndiaOnyama Limba PROPOSAL
Tony I CampainItalyElwin Sharvill RENEWAL
Mujtaba U RulapaughArgentinaOnyama Limba PROPOSAL
Darci Z SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Aruna V BriddickGermanyElwin Sharvill QUALIFIED
Kaitlin R MaletItalyBernardo Dominic NEGOTIATION
Adams W CampainCanadaIoni Bowcher NEW
Isabel E CaudyBrazilXuxue Feng NEGOTIATION
Arvin P InouyeItalyIvan Magalhaes UNQUALIFIED
Cody S ShinkoJapanBernardo Dominic NEW
David G CaldareraFranceBernardo Dominic RENEWAL
Kadeem O GlickAustraliaIvan Magalhaes UNQUALIFIED
Maria E GillianCanadaBernardo Dominic NEW
Smith G GarufiJapanIvan Magalhaes PROPOSAL
Francesco A ButtUnited KingdomBernardo Dominic UNQUALIFIED
Jefferson F KuskoJapanAnna Fali NEW
Silvio P StensethGermanyXuxue Feng NEGOTIATION
Leja Z RoysterJapanAnna Fali RENEWAL
Morrow C ChuiJapanIvan Magalhaes RENEWAL
Alejandro X KuskoArgentinaIvan Magalhaes RENEWAL

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