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
Mujtaba W SlusarskiRussiaXuxue Feng QUALIFIED
Kaitlin A StensethJapanXuxue Feng NEW
Tony I RimJapanXuxue Feng RENEWAL
Aika B IturbideItalyAsiya Javayant UNQUALIFIED
Claire J SaylorsFranceBernardo Dominic NEW
Ashley B VenereArgentinaOnyama Limba NEGOTIATION
Ricardo V PerinItalyIoni Bowcher NEW
Maisha M BowleyUnited KingdomBernardo Dominic NEW
Kadeem J WaycottJapanElwin Sharvill QUALIFIED
Arvin N MaletUnited KingdomBernardo Dominic RENEWAL
Aika X SergiFranceElwin Sharvill UNQUALIFIED
Salvatore A CampainBrazilAsiya Javayant NEW
Emily W WhobreySpainElwin Sharvill PROPOSAL
Kadeem L KolmetzSpainElwin Sharvill UNQUALIFIED
Misaki H RimAustraliaBernardo Dominic NEW
Rodrigues Q PerinFranceStephen Shaw RENEWAL
Kadeem E KuskoItalyAnna Fali RENEWAL
Juan A RoysterArgentinaIvan Magalhaes RENEWAL
Deepesh X GarufiBrazilIvan Magalhaes RENEWAL
Jefferson W FerenczItalyAmy Elsner QUALIFIED
Kaitlin A WhobreyArgentinaIoni Bowcher UNQUALIFIED
Leon O MacleadItalyBernardo Dominic NEGOTIATION
Kadeem A StensethSpainOnyama Limba UNQUALIFIED
Jennifer M FigeroaAustraliaIvan Magalhaes NEGOTIATION
Claire Q FollerCanadaElwin Sharvill QUALIFIED
Maria E ButtItalyOnyama Limba NEGOTIATION
Aika F MarrierFranceOnyama Limba UNQUALIFIED
Sinclair T NickaAustraliaStephen Shaw UNQUALIFIED
Maisha S FerenczSpainStephen Shaw NEW
James P NestleUnited KingdomBernardo Dominic UNQUALIFIED
Maria N CampainArgentinaXuxue Feng RENEWAL
Misaki E RutaUnited KingdomAmy Elsner RENEWAL
Johnson X NestleGermanyOnyama Limba NEGOTIATION
Mujtaba Q KuskoCanadaOnyama Limba NEGOTIATION
Silvio V DarakjyFranceIvan Magalhaes NEGOTIATION
Cody T FlosiAustraliaIoni Bowcher NEGOTIATION
Wickens F VenereItalyElwin Sharvill UNQUALIFIED
Rodrigues E WieserAustraliaXuxue Feng QUALIFIED
Emily I RimFranceAmy Elsner UNQUALIFIED
Aika Y TollnerBrazilElwin Sharvill NEGOTIATION
Emily G TollnerFranceIvan Magalhaes PROPOSAL
Maria E RulapaughAustraliaElwin Sharvill PROPOSAL
Costa D SchemmerUnited KingdomBernardo Dominic QUALIFIED
Clifford G SergiAustraliaAnna Fali RENEWAL
Aika N RutaFranceIvan Magalhaes QUALIFIED
Jones R PoquetteJapanOnyama Limba NEGOTIATION
Arvin F RoysterJapanElwin Sharvill RENEWAL
Salvatore Y StockhamIndiaAnna Fali PROPOSAL
Kaitlin V PerinArgentinaAsiya Javayant RENEWAL
Tony I DoeBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Chavez I BologniaUnited KingdomAmy Elsner RENEWAL
Kaitlin Q MaletGermanyOnyama Limba RENEWAL
Leja K FerenczRussiaAmy Elsner PROPOSAL
Deepesh B WhobreyArgentinaXuxue Feng RENEWAL
Leja K MaletJapanIoni Bowcher NEGOTIATION
Faith C StensethFranceIoni Bowcher RENEWAL
Jones R StensethFranceAnna Fali UNQUALIFIED
Francesco O RulapaughFranceOnyama Limba NEGOTIATION
Chavez P MorascaItalyAsiya Javayant NEGOTIATION
Cody F WieserFranceBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas H BriddickGermany2024-04-04Feiner Bros UNQUALIFIED89Elwin Sharvill
1001Adams T FerenczCanada2024-04-11Buckley Miller Wright NEW72Xuxue Feng
1002Stacey Z AlbaresJapan2024-04-21Rousseaux, Michael Esq NEW73Ivan Magalhaes
1003Deepesh D SaylorsFrance2024-04-26Feltz Printing Service NEGOTIATION12Xuxue Feng
1004Alejandro R PoquetteArgentina2024-04-15Chanay, Jeffrey A Esq PROPOSAL81Xuxue Feng
1005Munro J MaletAustralia2024-04-29Commercial Press NEGOTIATION98Amy Elsner
1006Maisha X MaletArgentina2024-04-07Morlong Associates RENEWAL43Elwin Sharvill
1007Julie K WieserGermany2024-04-12Truhlar And Truhlar Attys RENEWAL11Elwin Sharvill
1008Julie X WieserAustralia2024-04-20Benton, John B Jr NEW65Xuxue Feng
1009Aditya R FollerUnited Kingdom2024-04-04Truhlar And Truhlar Attys NEW17Stephen Shaw
1010Deepesh H SlusarskiUnited Kingdom2024-04-05Chemel, James L Cpa NEW54Ioni Bowcher
1011Wickens O PoquetteCanada2024-04-14Buckley Miller Wright NEGOTIATION62Ioni Bowcher
1012Francesco A IturbideJapan2024-04-05Chemel, James L Cpa QUALIFIED79Stephen Shaw
1013Morrow R MorascaArgentina2024-04-08Morlong Associates QUALIFIED95Amy Elsner
1014Deepesh C KolmetzArgentina2024-04-27Dorl, James J Esq RENEWAL66Onyama Limba
1015Greenwood D IturbideJapan2024-04-07Morlong Associates QUALIFIED34Ioni Bowcher
1016Deepesh A SergiArgentina2024-04-25Rangoni Of Florence NEW10Amy Elsner
1017Chavez H MaletItaly2024-04-13Printing Dimensions PROPOSAL83Xuxue Feng
1018Jeanfrancois C SchemmerUnited Kingdom2024-04-24Commercial Press NEGOTIATION74Asiya Javayant
1019Silvio W GlickItaly2024-04-10Buckley Miller Wright NEW83Amy Elsner
1020Julie S PaprockiItaly2024-04-15Chanay, Jeffrey A Esq NEGOTIATION17Stephen Shaw
1021Misaki E FlosiArgentina2024-04-17Chapman, Ross E Esq UNQUALIFIED34Onyama Limba
1022Clifford T NickaGermany2024-04-21Chemel, James L Cpa UNQUALIFIED99Xuxue Feng
1023Alejandro M SchemmerItaly2024-04-17Chanay, Jeffrey A Esq PROPOSAL80Ioni Bowcher
1024Jones C InouyeBrazil2024-04-03Chemel, James L Cpa PROPOSAL65Stephen Shaw
1025Nicolas Z AlbaresBrazil2024-04-19Chanay, Jeffrey A Esq NEGOTIATION71Asiya Javayant
1026Kaitlin U StensethIndia2024-04-29Chemel, James L Cpa RENEWAL86Elwin Sharvill
1027Kaitlin N MacleadSpain2024-04-27Chapman, Ross E Esq NEGOTIATION56Onyama Limba
1028Silvio K BowleyAustralia2024-04-05Rangoni Of Florence UNQUALIFIED31Elwin Sharvill
1029Stacey P DilliardGermany2024-04-05Morlong Associates RENEWAL68Ivan Magalhaes
1030Nicolas H MorascaBrazil2024-04-23Rangoni Of Florence UNQUALIFIED60Amy Elsner
1031Izzy R IturbideRussia2024-04-26Printing Dimensions NEGOTIATION17Bernardo Dominic
1032Deepesh Y KolmetzJapan2024-04-24Chanay, Jeffrey A Esq NEGOTIATION66Amy Elsner
1033Cody O CaldareraCanada2024-04-22King, Christopher A Esq NEGOTIATION48Elwin Sharvill
1034Mujtaba M WhobreyBrazil2024-04-24Buckley Miller Wright PROPOSAL98Onyama Limba
1035Morrow J FerenczJapan2024-04-26Chanay, Jeffrey A Esq QUALIFIED70Amy Elsner
1036Antonio Y GlickFrance2024-04-26Feltz Printing Service UNQUALIFIED89Anna Fali
1037Ricardo S MorascaAustralia2024-04-01Buckley Miller Wright NEW70Ivan Magalhaes
1038Sinclair D NestleSpain2024-04-11Buckley Miller Wright PROPOSAL57Asiya Javayant
1039Jennifer D ChuiBrazil2024-04-28Truhlar And Truhlar Attys RENEWAL55Asiya Javayant
1040Leon Y WieserCanada2024-04-26Chemel, James L Cpa NEW20Ivan Magalhaes
1041Murillo E DarakjyBrazil2024-04-13Feltz Printing Service UNQUALIFIED69Stephen Shaw
1042Tony U InouyeFrance2024-04-21Buckley Miller Wright UNQUALIFIED69Stephen Shaw
1043Clifford P OstroskyBrazil2024-04-24Benton, John B Jr NEW10Anna Fali
1044James L MorascaUnited Kingdom2024-04-23Commercial Press NEW29Asiya Javayant
1045Julie P BologniaJapan2024-04-17Benton, John B Jr QUALIFIED66Bernardo Dominic
1046Aditya H WieserFrance2024-04-26Benton, John B Jr PROPOSAL95Amy Elsner
1047Arvin D RutaUnited Kingdom2024-04-17Printing Dimensions UNQUALIFIED72Asiya Javayant
1048Nicolas L DoeFrance2024-04-03Commercial Press UNQUALIFIED64Ivan Magalhaes
1049Wickens X AlbaresArgentina2024-04-08Chanay, Jeffrey A Esq NEGOTIATION20Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith O StensethAustraliaAnna Fali PROPOSAL
Murillo J MarrierArgentinaAnna Fali UNQUALIFIED
James V VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Munro M FlosiAustraliaAsiya Javayant NEGOTIATION
Misaki O CampainUnited KingdomAnna Fali QUALIFIED
Deepesh S NickaItalyAnna Fali NEW
Morrow Y ShinkoAustraliaAsiya Javayant QUALIFIED
Smith L PerinBrazilIvan Magalhaes NEW
Stacey Q RimArgentinaXuxue Feng NEW
Emily M ChuiUnited KingdomAnna Fali UNQUALIFIED
Misaki H VocelkaIndiaAsiya Javayant UNQUALIFIED
Wickens M VocelkaCanadaAnna Fali NEW
Stacey I RulapaughIndiaStephen Shaw NEGOTIATION
James E CaldareraIndiaAsiya Javayant PROPOSAL
Maisha E FollerArgentinaStephen Shaw RENEWAL
James E NestleGermanyElwin Sharvill NEGOTIATION
Costa W VenereIndiaIoni Bowcher NEGOTIATION
Arvin P SergiGermanyAmy Elsner UNQUALIFIED
Stacey O SergiRussiaStephen Shaw NEGOTIATION
Antonio S CampainGermanyXuxue Feng NEGOTIATION
Octavia A VocelkaCanadaAsiya Javayant NEGOTIATION
Octavia Y SlusarskiFranceAmy Elsner UNQUALIFIED
Jones Y IturbideJapanIoni Bowcher RENEWAL
Jones C VenereCanadaStephen Shaw NEGOTIATION
Jefferson B KuskoItalyAmy Elsner RENEWAL
Stacey R MarrierArgentinaBernardo Dominic UNQUALIFIED
Nicolas E FigeroaCanadaElwin Sharvill RENEWAL
Chavez A TollnerFranceOnyama Limba QUALIFIED
Octavia G KolmetzItalyBernardo Dominic NEGOTIATION
Arvin X InouyeUnited KingdomIoni Bowcher PROPOSAL
Emily W TollnerGermanyAnna Fali PROPOSAL
Darci R VenereIndiaIoni Bowcher RENEWAL
Munro E PaprockiIndiaAnna Fali RENEWAL
Aika E InouyeJapanXuxue Feng RENEWAL
Costa I OstroskyGermanyAsiya Javayant PROPOSAL
Aruna M SchemmerFranceStephen Shaw NEW
Jennifer C SergiItalyIvan Magalhaes QUALIFIED
Stacey S MacleadJapanOnyama Limba NEGOTIATION
Aditya E MaletUnited KingdomStephen Shaw PROPOSAL
Octavia T ChuiGermanyIvan Magalhaes UNQUALIFIED
Salvatore D CaldareraBrazilElwin Sharvill UNQUALIFIED
Juan P MorascaSpainAnna Fali PROPOSAL
Greenwood V PerinGermanyIvan Magalhaes RENEWAL
Silvio F MarrierArgentinaAmy Elsner NEGOTIATION
Isabel Z KolmetzRussiaElwin Sharvill NEW
Chavez Y SlusarskiIndiaOnyama Limba NEGOTIATION
Francesco T FigeroaAustraliaXuxue Feng UNQUALIFIED
Nicolas W ButtCanadaAsiya Javayant NEW
Jones W RimItalyStephen Shaw UNQUALIFIED
Chavez A MaletArgentinaIoni Bowcher NEW
Frozen Columns
Name
Clifford J Maclead
Adams J Flosi
Aruna C Ferencz
Misaki X Venere
Francesco A Poquette
Maisha Y Briddick
Faith H Wieser
Stacey A Caldarera
Kadeem P Ferencz
Jeanfrancois B Nicka
Wickens O Butt
Chavez T Briddick
Johnson A Shinko
Jones Y Bolognia
Jones Z Slusarski
Maisha S Amigon
Leja P Vocelka
Alejandro K Rulapaugh
Salvatore O Malet
Juan S Oldroyd
Kaitlin O Chui
Murillo A Stockham
Leja A Dilliard
Jennifer W Figeroa
Claire A Waycott
Silvio K Malet
Antonio R Rim
Silvio Q Wieser
Johnson L Inouye
Izzy N Chui
Stacey T Bowley
Morrow F Schemmer
Wickens L Glick
Greenwood B Royster
Morrow A Bolognia
Stacey M Sergi
Salvatore B Shinko
Isabel I Chui
Emily V Schemmer
Murillo N Iturbide
Greenwood J Maclead
Tony F Slusarski
Maisha D Caldarera
Ivar T Saylors
Julie W Saylors
Emily H Stockham
Cody M Kolmetz
Leja A Rim
Maisha K Poquette
Faith D Caldarera
IdCountryDate
1000Russia2024-04-08
1001Spain2024-04-15
1002Argentina2024-04-14
1003Argentina2024-04-25
1004Italy2024-04-12
1005Argentina2024-04-17
1006Canada2024-04-20
1007Germany2024-04-19
1008Australia2024-04-13
1009Japan2024-04-04
1010Brazil2024-04-24
1011Canada2024-04-30
1012Canada2024-04-15
1013Germany2024-04-20
1014Spain2024-04-09
1015Spain2024-04-26
1016Argentina2024-04-14
1017United Kingdom2024-04-23
1018Brazil2024-04-08
1019Italy2024-04-22
1020United Kingdom2024-04-08
1021India2024-04-05
1022India2024-04-24
1023Brazil2024-04-20
1024Canada2024-04-15
1025Spain2024-04-16
1026Spain2024-04-05
1027Argentina2024-04-18
1028Australia2024-04-24
1029Australia2024-04-11
1030Australia2024-04-14
1031Brazil2024-04-21
1032France2024-04-27
1033Japan2024-04-19
1034Japan2024-04-16
1035Italy2024-04-25
1036Brazil2024-04-06
1037France2024-04-17
1038France2024-04-22
1039France2024-04-03
1040United Kingdom2024-04-24
1041Australia2024-04-06
1042Australia2024-04-12
1043United Kingdom2024-04-06
1044Spain2024-04-19
1045India2024-04-09
1046Italy2024-04-11
1047India2024-04-08
1048Russia2024-04-03
1049Germany2024-04-21

On-Demand Data

NameIdCountryDate
Misaki Y Stockham1000Argentina2024-04-19
Julie C Perin1001Brazil2024-04-01
Maria N Paprocki1002Russia2024-04-01
Morrow L Saylors1003United Kingdom2024-04-02
Mujtaba M Dilliard1004Australia2024-04-24
Adams X Ostrosky1005Argentina2024-04-15
Silvio A Figeroa1006India2024-04-21
Jennifer V Ferencz1007Japan2024-04-24
Cody E Sergi1008Argentina2024-04-25
Sinclair H Morasca1009Australia2024-04-26
Aika S Nestle1010Spain2024-04-18
Greenwood T Malet1011United Kingdom2024-04-20
Leon S Oldroyd1012Spain2024-04-12
Nicolas P Rulapaugh1013Japan2024-04-21
Claire X Campain1014Spain2024-04-19
Leja A Nicka1015Canada2024-04-13
Adams Y Rulapaugh1016Japan2024-04-19
Greenwood C Kolmetz1017Japan2024-04-09
Francesco Z Butt1018Germany2024-04-22
Johnson O Stockham1019Japan2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco H InouyeArgentinaStephen Shaw RENEWAL
Morrow T BowleyFranceOnyama Limba QUALIFIED
Arvin N KolmetzBrazilBernardo Dominic QUALIFIED
Arvin D SergiSpainOnyama Limba PROPOSAL
Rodrigues W MaletCanadaOnyama Limba UNQUALIFIED
Morrow X MarrierSpainAnna Fali NEW
Leja H FerenczIndiaElwin Sharvill NEW
Cody N PoquetteJapanIoni Bowcher QUALIFIED
Ivar K TollnerUnited KingdomStephen Shaw NEGOTIATION
Deepesh V BologniaBrazilElwin Sharvill NEGOTIATION
Darci G MacleadFranceBernardo Dominic NEGOTIATION
Stacey M TollnerCanadaAmy Elsner UNQUALIFIED
James F WaycottArgentinaAnna Fali NEW
Maria C FollerAustraliaXuxue Feng UNQUALIFIED
Sinclair A ChuiArgentinaAmy Elsner NEGOTIATION
Aditya X TollnerArgentinaAnna Fali NEGOTIATION
Maisha J NestleUnited KingdomAsiya Javayant NEGOTIATION
Ivar S PerinIndiaIoni Bowcher QUALIFIED
Johnson F MacleadArgentinaElwin Sharvill PROPOSAL
Maria M ShinkoJapanXuxue Feng NEW
Emily M SergiIndiaIoni Bowcher PROPOSAL
Aruna J PaprockiBrazilOnyama Limba UNQUALIFIED
Morrow T NickaAustraliaStephen Shaw QUALIFIED
Smith F WaycottUnited KingdomAsiya Javayant NEW
Julie J CaldareraArgentinaAmy Elsner UNQUALIFIED
Alejandro K DoeFranceAnna Fali RENEWAL
Jeanfrancois M NestleUnited KingdomOnyama Limba NEW
Murillo Z WaycottBrazilAmy Elsner QUALIFIED
Murillo L WaycottIndiaIoni Bowcher QUALIFIED
Octavia Q SchemmerUnited KingdomAnna Fali QUALIFIED
Morrow Y RulapaughGermanyIvan Magalhaes QUALIFIED
Tony C TollnerGermanyAsiya Javayant UNQUALIFIED
Juan A FigeroaJapanBernardo Dominic QUALIFIED
Salvatore P CampainIndiaOnyama Limba RENEWAL
Sinclair B TollnerArgentinaIvan Magalhaes NEGOTIATION
Ivar Q TollnerItalyXuxue Feng QUALIFIED
Silvio I ShinkoUnited KingdomXuxue Feng PROPOSAL
Clifford N RutaGermanyOnyama Limba NEW
Juan U AlbaresUnited KingdomAsiya Javayant PROPOSAL
Misaki W BologniaCanadaElwin Sharvill 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>