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
Kaitlin E StockhamIndiaElwin Sharvill QUALIFIED
Silvio J DilliardFranceIoni Bowcher RENEWAL
Aruna R MarrierJapanIoni Bowcher NEGOTIATION
Aruna H PerinArgentinaStephen Shaw QUALIFIED
David N MacleadUnited KingdomAnna Fali RENEWAL
Jennifer J OldroydRussiaIoni Bowcher QUALIFIED
Izzy D GarufiBrazilIoni Bowcher QUALIFIED
Jones F AmigonGermanyAnna Fali RENEWAL
Morrow Y CaldareraFranceElwin Sharvill NEGOTIATION
Maria G FollerAustraliaAsiya Javayant RENEWAL
Juan E MaletRussiaAnna Fali NEW
Aditya L ShinkoAustraliaXuxue Feng QUALIFIED
Murillo X FerenczUnited KingdomIvan Magalhaes RENEWAL
Smith N RimFranceIvan Magalhaes NEGOTIATION
Leon O InouyeJapanIvan Magalhaes QUALIFIED
Greenwood S ChuiIndiaAmy Elsner NEW
Maisha U CampainItalyElwin Sharvill RENEWAL
Juan C StensethUnited KingdomXuxue Feng PROPOSAL
Salvatore X GarufiSpainElwin Sharvill QUALIFIED
Leon G FollerCanadaXuxue Feng NEW
Kadeem G StockhamArgentinaAsiya Javayant UNQUALIFIED
James S FlosiRussiaIoni Bowcher NEGOTIATION
Deepesh H KolmetzRussiaBernardo Dominic QUALIFIED
Costa Q ShinkoRussiaElwin Sharvill UNQUALIFIED
Silvio X StensethAustraliaAmy Elsner RENEWAL
Mujtaba G WaycottSpainAnna Fali RENEWAL
Aditya X PaprockiUnited KingdomBernardo Dominic RENEWAL
Tony D RoysterRussiaAsiya Javayant PROPOSAL
Kadeem X WhobreyJapanAsiya Javayant QUALIFIED
Alejandro D MaletBrazilAnna Fali RENEWAL
Smith H GlickCanadaBernardo Dominic PROPOSAL
Costa C FlosiCanadaIoni Bowcher RENEWAL
Leja J OstroskyCanadaIoni Bowcher RENEWAL
Isabel K WieserGermanyBernardo Dominic QUALIFIED
Jefferson Y CaudyRussiaAnna Fali PROPOSAL
Isabel C DarakjyRussiaStephen Shaw RENEWAL
David P FerenczArgentinaXuxue Feng NEGOTIATION
Aruna Y MaletBrazilAmy Elsner PROPOSAL
Kadeem Z PaprockiCanadaAnna Fali PROPOSAL
Stacey G RoysterArgentinaIoni Bowcher RENEWAL
Francesco W GillianAustraliaXuxue Feng UNQUALIFIED
Sinclair D MaletCanadaStephen Shaw NEW
Ivar G FerenczJapanIvan Magalhaes QUALIFIED
Francesco L MarrierJapanAnna Fali NEGOTIATION
Kadeem K DarakjyGermanyAsiya Javayant RENEWAL
Mayumi S BriddickRussiaStephen Shaw UNQUALIFIED
Kadeem O NickaIndiaBernardo Dominic PROPOSAL
Maisha R CaudyJapanAnna Fali RENEWAL
Wickens D NestleCanadaElwin Sharvill QUALIFIED
Ricardo E ShinkoIndiaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody I ButtSpainAnna Fali NEGOTIATION
Faith Z BowleyRussiaOnyama Limba PROPOSAL
Leja Q NestleBrazilAmy Elsner UNQUALIFIED
Sinclair E RimGermanyAsiya Javayant NEW
Chavez G PerinItalyAmy Elsner RENEWAL
James F ShinkoSpainBernardo Dominic NEW
Rodrigues U VenereUnited KingdomOnyama Limba NEW
Izzy F FerenczIndiaOnyama Limba NEW
Sinclair I InouyeItalyElwin Sharvill QUALIFIED
Munro K RutaUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha Z WieserIndia2024-05-11Chemel, James L Cpa RENEWAL66Asiya Javayant
1001Aika A ButtSpain2024-05-19Buckley Miller Wright NEW83Anna Fali
1002Murillo O MaletFrance2024-05-14Morlong Associates QUALIFIED92Amy Elsner
1003Stacey V BowleyItaly2024-05-17Rangoni Of Florence PROPOSAL99Ivan Magalhaes
1004Ricardo B KolmetzCanada2024-05-05Chanay, Jeffrey A Esq UNQUALIFIED57Stephen Shaw
1005Adams C WaycottRussia2024-05-11Chapman, Ross E Esq PROPOSAL88Elwin Sharvill
1006Aditya D SlusarskiRussia2024-05-15Rousseaux, Michael Esq UNQUALIFIED61Amy Elsner
1007Jefferson P StockhamFrance2024-05-04Printing Dimensions NEW99Amy Elsner
1008Mayumi I TollnerCanada2024-04-27King, Christopher A Esq QUALIFIED53Asiya Javayant
1009David W VenereAustralia2024-05-04Feltz Printing Service UNQUALIFIED55Bernardo Dominic
1010Johnson W ButtGermany2024-05-10Chapman, Ross E Esq NEGOTIATION70Onyama Limba
1011David D CaldareraSpain2024-04-27Benton, John B Jr UNQUALIFIED78Amy Elsner
1012Jennifer A WieserBrazil2024-05-05Feiner Bros RENEWAL57Ivan Magalhaes
1013Salvatore L InouyeGermany2024-05-16Rangoni Of Florence UNQUALIFIED48Amy Elsner
1014Jefferson C AmigonUnited Kingdom2024-04-24Morlong Associates NEW47Elwin Sharvill
1015Rodrigues T RutaBrazil2024-05-02Morlong Associates NEGOTIATION51Stephen Shaw
1016Aika X SaylorsSpain2024-05-12Truhlar And Truhlar Attys PROPOSAL93Onyama Limba
1017Ivar G SaylorsIndia2024-04-23Buckley Miller Wright NEGOTIATION53Asiya Javayant
1018Leja X DoeCanada2024-04-25Rousseaux, Michael Esq NEGOTIATION62Anna Fali
1019Faith X FerenczAustralia2024-05-12Chapman, Ross E Esq RENEWAL30Anna Fali
1020Antonio A SlusarskiFrance2024-05-10Rousseaux, Michael Esq NEGOTIATION89Ioni Bowcher
1021Aruna E GarufiBrazil2024-04-30Truhlar And Truhlar Attys QUALIFIED78Amy Elsner
1022Wickens Z FollerAustralia2024-05-10Chanay, Jeffrey A Esq NEW70Elwin Sharvill
1023Mayumi R NickaFrance2024-04-25Dorl, James J Esq NEGOTIATION29Ivan Magalhaes
1024Costa C GillianCanada2024-05-11Rangoni Of Florence QUALIFIED92Anna Fali
1025Claire N AlbaresFrance2024-05-10Feltz Printing Service NEGOTIATION31Onyama Limba
1026Chavez B OldroydArgentina2024-04-28King, Christopher A Esq UNQUALIFIED97Anna Fali
1027Cody X RutaAustralia2024-04-25Dorl, James J Esq NEW85Ioni Bowcher
1028Maisha P BowleyItaly2024-05-09Feiner Bros NEGOTIATION22Xuxue Feng
1029Clifford Q SlusarskiItaly2024-04-23Printing Dimensions UNQUALIFIED97Ivan Magalhaes
1030Kadeem D MacleadRussia2024-05-08Feltz Printing Service PROPOSAL37Ioni Bowcher
1031Deepesh I BowleyGermany2024-05-13Rousseaux, Michael Esq RENEWAL64Stephen Shaw
1032Francesco X AmigonBrazil2024-05-17Feltz Printing Service NEGOTIATION89Xuxue Feng
1033Johnson W SchemmerUnited Kingdom2024-05-03Chanay, Jeffrey A Esq QUALIFIED3Ioni Bowcher
1034David K OldroydRussia2024-04-30Chapman, Ross E Esq UNQUALIFIED33Anna Fali
1035Aruna Z PaprockiRussia2024-04-29Commercial Press PROPOSAL69Ivan Magalhaes
1036Aruna E GarufiBrazil2024-05-06Buckley Miller Wright NEGOTIATION32Bernardo Dominic
1037Emily K RulapaughCanada2024-05-05Truhlar And Truhlar Attys RENEWAL44Amy Elsner
1038Jones A SlusarskiRussia2024-05-16Chanay, Jeffrey A Esq NEGOTIATION59Onyama Limba
1039Chavez Y FigeroaGermany2024-05-19Chapman, Ross E Esq NEW88Asiya Javayant
1040Mujtaba L MaletUnited Kingdom2024-05-14Feiner Bros PROPOSAL51Onyama Limba
1041Jennifer W RoysterItaly2024-04-24Chapman, Ross E Esq NEGOTIATION21Anna Fali
1042Costa J RimItaly2024-05-11Chapman, Ross E Esq NEGOTIATION86Stephen Shaw
1043Emily Y GauchoGermany2024-05-18Rangoni Of Florence RENEWAL26Xuxue Feng
1044Aruna O KuskoJapan2024-04-25Morlong Associates RENEWAL32Ivan Magalhaes
1045Leon G GillianJapan2024-05-11Feiner Bros UNQUALIFIED59Stephen Shaw
1046Salvatore Q CaudyCanada2024-05-13Truhlar And Truhlar Attys NEW40Stephen Shaw
1047Stacey C NestleArgentina2024-05-02Printing Dimensions NEW42Bernardo Dominic
1048Mujtaba W FollerIndia2024-05-14Printing Dimensions PROPOSAL61Stephen Shaw
1049Murillo P DoeIndia2024-05-02Truhlar And Truhlar Attys NEW35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci F RimFranceBernardo Dominic RENEWAL
Ashley S SaylorsSpainXuxue Feng NEW
James Z MacleadCanadaBernardo Dominic NEGOTIATION
Johnson R SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Kadeem W AlbaresGermanyAnna Fali NEGOTIATION
Ricardo U SlusarskiRussiaXuxue Feng NEW
Tony X IturbideArgentinaXuxue Feng NEGOTIATION
Julie P ButtGermanyAmy Elsner QUALIFIED
Octavia Q DoeAustraliaAmy Elsner UNQUALIFIED
Maria U AmigonJapanIvan Magalhaes UNQUALIFIED
Chavez P VenereGermanyIoni Bowcher NEW
Clifford R VocelkaBrazilIvan Magalhaes UNQUALIFIED
Leon I BologniaJapanElwin Sharvill NEW
Clifford R DilliardRussiaAmy Elsner NEGOTIATION
Munro L GauchoGermanyIvan Magalhaes QUALIFIED
Stacey H PerinRussiaXuxue Feng PROPOSAL
Salvatore Y CaudyBrazilXuxue Feng QUALIFIED
Claire A KolmetzSpainElwin Sharvill NEW
Smith J SchemmerItalyElwin Sharvill PROPOSAL
Rodrigues G WaycottFranceElwin Sharvill QUALIFIED
Mujtaba Y AmigonSpainElwin Sharvill NEGOTIATION
Juan S RutaFranceIoni Bowcher RENEWAL
Claire C GauchoAustraliaAsiya Javayant QUALIFIED
Leon S SlusarskiRussiaIoni Bowcher NEGOTIATION
Juan K IturbideItalyAnna Fali UNQUALIFIED
Clifford H BriddickSpainAmy Elsner RENEWAL
Nicolas T CaudyArgentinaXuxue Feng NEGOTIATION
Julie G ShinkoCanadaStephen Shaw PROPOSAL
Chavez G KolmetzBrazilAmy Elsner QUALIFIED
Arvin M ShinkoCanadaIoni Bowcher PROPOSAL
Antonio A KuskoArgentinaAmy Elsner NEW
Costa Y GlickIndiaOnyama Limba NEW
Clifford A GlickArgentinaIoni Bowcher NEGOTIATION
Isabel I StockhamIndiaAnna Fali UNQUALIFIED
Octavia I GauchoIndiaIvan Magalhaes PROPOSAL
Aditya E CaldareraAustraliaBernardo Dominic RENEWAL
Wickens I MorascaBrazilIvan Magalhaes PROPOSAL
Claire M DarakjyBrazilAsiya Javayant PROPOSAL
Ashley H NickaGermanyXuxue Feng NEW
Silvio E FerenczAustraliaAsiya Javayant RENEWAL
Deepesh M FollerBrazilBernardo Dominic UNQUALIFIED
Smith O ShinkoBrazilAsiya Javayant PROPOSAL
Stacey A PaprockiUnited KingdomBernardo Dominic QUALIFIED
Nicolas K PaprockiCanadaXuxue Feng NEW
Stacey S FlosiIndiaIvan Magalhaes UNQUALIFIED
Mujtaba S SchemmerRussiaOnyama Limba NEGOTIATION
Faith Y BriddickSpainStephen Shaw QUALIFIED
Juan C KuskoSpainIoni Bowcher NEGOTIATION
Mayumi W GarufiCanadaAnna Fali QUALIFIED
Claire G FigeroaUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Francesco C Kusko
Leja D Ferencz
David H Perin
Antonio D Darakjy
Salvatore G Nestle
Adams O Caldarera
Leja X Rim
David L Sergi
Emily U Tollner
Clifford D Kolmetz
Smith Q Butt
Smith T Ostrosky
Adams C Rim
Leja P Butt
Murillo Z Doe
Isabel S Darakjy
Tony C Ruta
Darci L Amigon
Antonio G Bowley
Adams R Vocelka
Tony R Oldroyd
Octavia N Flosi
Emily B Darakjy
Aika I Slusarski
Leon B Campain
Costa H Perin
Tony T Vocelka
Jefferson T Maclead
Deepesh Q Bolognia
Nicolas U Rim
Salvatore H Ruta
Kaitlin F Wieser
Salvatore A Glick
Smith L Briddick
Jefferson S Marrier
Chavez I Whobrey
Claire I Flosi
Silvio D Whobrey
Jefferson T Waycott
Julie W Caldarera
Wickens V Doe
Smith K Paprocki
Maisha R Oldroyd
Jones V Inouye
Chavez Z Sergi
Munro G Marrier
Munro G Morasca
Jeanfrancois X Waycott
Isabel M Malet
Murillo W Rulapaugh
IdCountryDate
1000Spain2024-05-07
1001Canada2024-04-21
1002Australia2024-05-18
1003France2024-05-01
1004Canada2024-04-27
1005Brazil2024-05-03
1006Russia2024-05-18
1007Italy2024-05-20
1008Spain2024-05-01
1009Japan2024-05-15
1010Australia2024-05-02
1011Germany2024-05-11
1012France2024-05-04
1013Russia2024-05-10
1014United Kingdom2024-04-28
1015India2024-05-20
1016France2024-05-04
1017Australia2024-04-24
1018Argentina2024-05-04
1019France2024-05-13
1020Italy2024-04-22
1021Italy2024-04-30
1022Spain2024-05-16
1023Argentina2024-05-16
1024Germany2024-05-03
1025Australia2024-05-02
1026Argentina2024-05-17
1027Canada2024-05-06
1028Brazil2024-05-18
1029Canada2024-04-25
1030India2024-04-30
1031Canada2024-05-03
1032Spain2024-04-28
1033United Kingdom2024-05-16
1034Japan2024-04-28
1035Argentina2024-05-08
1036Italy2024-05-03
1037Argentina2024-05-12
1038Russia2024-04-24
1039Brazil2024-04-22
1040Japan2024-05-05
1041Australia2024-04-27
1042Japan2024-04-26
1043Japan2024-05-05
1044Brazil2024-04-28
1045Italy2024-05-20
1046Italy2024-05-16
1047Russia2024-05-11
1048Japan2024-05-08
1049Brazil2024-05-11

On-Demand Data

NameIdCountryDate
Maria U Shinko1000Argentina2024-05-15
Claire N Butt1001Russia2024-04-25
James K Kolmetz1002Germany2024-04-23
Deepesh M Marrier1003Italy2024-05-01
Octavia O Dilliard1004Canada2024-05-18
Leja G Bowley1005Germany2024-04-24
Aika K Ruta1006Australia2024-05-07
Johnson J Slusarski1007Australia2024-04-22
Morrow U Venere1008France2024-04-27
Francesco Q Tollner1009Japan2024-05-04
Mujtaba X Bowley1010India2024-05-04
Antonio H Morasca1011Italy2024-04-21
Aika M Marrier1012France2024-05-18
Julie H Caudy1013India2024-05-15
Cody X Whobrey1014India2024-05-20
Clifford B Saylors1015Canada2024-04-21
Mayumi I Poquette1016Australia2024-05-07
Leja E Tollner1017France2024-05-17
Antonio T Briddick1018Canada2024-04-30
Francesco Y Campain1019Spain2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily P ShinkoGermanyAnna Fali PROPOSAL
James R PerinRussiaAnna Fali QUALIFIED
Rodrigues S SlusarskiItalyStephen Shaw QUALIFIED
Ashley Z RulapaughGermanyAsiya Javayant RENEWAL
Mujtaba Y WaycottIndiaAmy Elsner RENEWAL
Ivar X DarakjyItalyAsiya Javayant NEW
Jeanfrancois F DoeArgentinaOnyama Limba QUALIFIED
Stacey G StensethSpainElwin Sharvill PROPOSAL
Nicolas M SergiCanadaIvan Magalhaes NEW
Stacey J CampainSpainStephen Shaw QUALIFIED
Claire Q ButtArgentinaAsiya Javayant RENEWAL
James R VocelkaCanadaIoni Bowcher UNQUALIFIED
Cody M NickaCanadaIvan Magalhaes UNQUALIFIED
Sinclair F MarrierArgentinaAmy Elsner PROPOSAL
Stacey C FerenczArgentinaAmy Elsner NEW
Deepesh L MacleadIndiaIoni Bowcher UNQUALIFIED
David U SaylorsFranceIoni Bowcher QUALIFIED
Mayumi O CampainItalyAsiya Javayant NEGOTIATION
Leja G ShinkoItalyOnyama Limba QUALIFIED
Smith T FerenczBrazilElwin Sharvill QUALIFIED
Clifford V AmigonUnited KingdomXuxue Feng UNQUALIFIED
Ricardo U TollnerIndiaOnyama Limba RENEWAL
Emily O OstroskySpainIoni Bowcher QUALIFIED
Sinclair V AlbaresRussiaElwin Sharvill RENEWAL
Morrow U DarakjyIndiaElwin Sharvill UNQUALIFIED
Nicolas K FerenczFranceIvan Magalhaes UNQUALIFIED
Sinclair O MacleadFranceAmy Elsner RENEWAL
James R WieserJapanStephen Shaw NEW
Kadeem E WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Greenwood W KolmetzCanadaOnyama Limba PROPOSAL
Nicolas W RulapaughItalyElwin Sharvill UNQUALIFIED
Cody A WhobreyItalyOnyama Limba UNQUALIFIED
Isabel H NickaIndiaBernardo Dominic QUALIFIED
Morrow P SaylorsGermanyIvan Magalhaes NEGOTIATION
Costa N SaylorsCanadaIvan Magalhaes NEGOTIATION
Murillo R FlosiJapanStephen Shaw NEGOTIATION
Adams S RoysterArgentinaIvan Magalhaes NEW
Emily U OstroskyFranceAmy Elsner QUALIFIED
Costa N GauchoSpainOnyama Limba UNQUALIFIED
Jefferson K MaletIndiaStephen Shaw UNQUALIFIED

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