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
Adams W BriddickCanadaOnyama Limba NEGOTIATION
Emily L GlickJapanAnna Fali PROPOSAL
Sinclair M NickaBrazilBernardo Dominic NEGOTIATION
Jeanfrancois F CampainCanadaBernardo Dominic NEGOTIATION
Misaki C NestleRussiaElwin Sharvill PROPOSAL
Jennifer E DilliardFranceIoni Bowcher QUALIFIED
Emily N CaldareraFranceAsiya Javayant RENEWAL
Alejandro Z KuskoItalyStephen Shaw PROPOSAL
Jefferson L VenereCanadaAsiya Javayant NEGOTIATION
Deepesh L CaudyCanadaIoni Bowcher NEGOTIATION
Salvatore P FerenczAustraliaStephen Shaw NEGOTIATION
Munro Q AmigonArgentinaAsiya Javayant UNQUALIFIED
Stacey I BologniaAustraliaAmy Elsner PROPOSAL
Jeanfrancois B GlickRussiaIoni Bowcher NEW
Mujtaba X NestleUnited KingdomStephen Shaw NEGOTIATION
Jones H NickaBrazilStephen Shaw UNQUALIFIED
Claire V RutaJapanOnyama Limba QUALIFIED
Silvio T PoquetteSpainXuxue Feng UNQUALIFIED
Aditya K ChuiCanadaIoni Bowcher RENEWAL
Greenwood Z RutaBrazilIoni Bowcher RENEWAL
Faith Q DilliardRussiaBernardo Dominic NEGOTIATION
Munro W SchemmerArgentinaElwin Sharvill QUALIFIED
Octavia F AmigonRussiaStephen Shaw NEW
Johnson R MaletJapanOnyama Limba NEW
Chavez C GillianSpainXuxue Feng PROPOSAL
Clifford U KolmetzRussiaIoni Bowcher PROPOSAL
Cody R MarrierCanadaXuxue Feng RENEWAL
Tony X SlusarskiItalyElwin Sharvill RENEWAL
Adams H MacleadSpainOnyama Limba UNQUALIFIED
Ricardo I GillianAustraliaAmy Elsner PROPOSAL
Morrow L OstroskyFranceXuxue Feng NEGOTIATION
James M IturbideBrazilAsiya Javayant QUALIFIED
Misaki V BriddickAustraliaAnna Fali QUALIFIED
Ashley H WieserSpainIvan Magalhaes NEW
Ashley P TollnerGermanyAnna Fali QUALIFIED
Jefferson V KolmetzSpainOnyama Limba QUALIFIED
Costa W FerenczIndiaAsiya Javayant UNQUALIFIED
Julie E OstroskyUnited KingdomOnyama Limba NEGOTIATION
Francesco C GlickBrazilStephen Shaw RENEWAL
Smith A VocelkaIndiaOnyama Limba QUALIFIED
Clifford R MaletGermanyIvan Magalhaes QUALIFIED
Clifford Z FerenczBrazilAsiya Javayant RENEWAL
Izzy R IturbideFranceAnna Fali QUALIFIED
Leon Q RimArgentinaAmy Elsner RENEWAL
Maria L StensethCanadaXuxue Feng NEW
Aruna R WaycottCanadaIoni Bowcher QUALIFIED
Emily E StensethRussiaElwin Sharvill PROPOSAL
Costa X RoysterFranceAsiya Javayant RENEWAL
Emily D OldroydFranceIvan Magalhaes NEW
Jennifer Y CaldareraAustraliaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens A MaletFranceIoni Bowcher RENEWAL
Murillo M ShinkoIndiaAmy Elsner QUALIFIED
Johnson G BriddickBrazilIoni Bowcher NEW
Wickens S DilliardArgentinaElwin Sharvill PROPOSAL
Wickens U SaylorsJapanOnyama Limba NEGOTIATION
Alejandro G IturbideUnited KingdomBernardo Dominic QUALIFIED
Antonio G CampainArgentinaAnna Fali NEW
Faith L ButtUnited KingdomAnna Fali NEW
Misaki Y WhobreyAustraliaAmy Elsner QUALIFIED
Stacey F FollerFranceElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford X WhobreyAustralia2024-04-05Rousseaux, Michael Esq QUALIFIED87Bernardo Dominic
1001Johnson A AlbaresCanada2024-04-04Rousseaux, Michael Esq NEW13Elwin Sharvill
1002Claire S NestleJapan2024-03-27Feltz Printing Service QUALIFIED91Amy Elsner
1003Alejandro A OstroskyBrazil2024-04-17Feiner Bros RENEWAL79Amy Elsner
1004Jennifer M DoeUnited Kingdom2024-04-13Morlong Associates NEGOTIATION34Amy Elsner
1005Stacey F FlosiArgentina2024-04-18Benton, John B Jr NEGOTIATION1Asiya Javayant
1006Leon K BologniaIndia2024-03-30Chanay, Jeffrey A Esq RENEWAL71Amy Elsner
1007Jeanfrancois S OstroskyJapan2024-04-20Benton, John B Jr NEW8Xuxue Feng
1008Maria G MaletUnited Kingdom2024-04-04Rangoni Of Florence NEW98Ioni Bowcher
1009Tony R AmigonRussia2024-04-12Chemel, James L Cpa QUALIFIED87Anna Fali
1010Francesco F BowleyFrance2024-04-09Printing Dimensions PROPOSAL23Elwin Sharvill
1011Faith E KolmetzCanada2024-04-07Printing Dimensions RENEWAL30Amy Elsner
1012Rodrigues O KuskoArgentina2024-04-06Feiner Bros NEW12Onyama Limba
1013Jones B MaletItaly2024-04-16Chapman, Ross E Esq NEW87Asiya Javayant
1014Jones Y StensethBrazil2024-04-01Rangoni Of Florence NEW40Onyama Limba
1015David Y SchemmerJapan2024-04-04Printing Dimensions NEGOTIATION84Asiya Javayant
1016Ivar E ChuiCanada2024-04-13Printing Dimensions NEGOTIATION50Ivan Magalhaes
1017Izzy Z AmigonAustralia2024-04-08Commercial Press NEGOTIATION20Amy Elsner
1018Ricardo G MarrierGermany2024-04-14Rousseaux, Michael Esq NEGOTIATION85Onyama Limba
1019Aditya R FlosiArgentina2024-04-20King, Christopher A Esq NEGOTIATION75Xuxue Feng
1020Leja X DoeFrance2024-04-11Morlong Associates PROPOSAL0Bernardo Dominic
1021Wickens P StensethAustralia2024-03-27King, Christopher A Esq NEW19Ivan Magalhaes
1022Nicolas L RoysterFrance2024-04-17Truhlar And Truhlar Attys NEW40Ioni Bowcher
1023Jeanfrancois W KuskoItaly2024-04-01Commercial Press QUALIFIED53Ioni Bowcher
1024Maria N CaudyAustralia2024-04-09Rangoni Of Florence UNQUALIFIED16Ioni Bowcher
1025Greenwood A MaletRussia2024-03-26Chapman, Ross E Esq PROPOSAL20Ioni Bowcher
1026Mujtaba D OstroskyItaly2024-04-21King, Christopher A Esq QUALIFIED4Anna Fali
1027Aika I WaycottJapan2024-04-14Printing Dimensions UNQUALIFIED32Elwin Sharvill
1028Stacey X NickaFrance2024-04-03Rousseaux, Michael Esq NEGOTIATION48Elwin Sharvill
1029Emily G OldroydJapan2024-04-22Chapman, Ross E Esq QUALIFIED61Elwin Sharvill
1030Mujtaba Z WhobreyCanada2024-03-27Chemel, James L Cpa NEW4Xuxue Feng
1031Faith F DarakjyArgentina2024-03-31Rangoni Of Florence NEGOTIATION96Anna Fali
1032Rodrigues A KolmetzFrance2024-04-12Chemel, James L Cpa UNQUALIFIED75Stephen Shaw
1033Murillo E SaylorsCanada2024-04-24Truhlar And Truhlar Attys UNQUALIFIED80Ivan Magalhaes
1034Greenwood J GarufiCanada2024-04-18Feltz Printing Service RENEWAL21Amy Elsner
1035Rodrigues F DilliardUnited Kingdom2024-04-02Feiner Bros NEGOTIATION87Anna Fali
1036Rodrigues Z CaldareraCanada2024-04-23Feltz Printing Service RENEWAL10Ivan Magalhaes
1037Maisha S CampainRussia2024-03-26Benton, John B Jr QUALIFIED95Stephen Shaw
1038Chavez U InouyeAustralia2024-03-26Truhlar And Truhlar Attys QUALIFIED89Ioni Bowcher
1039Murillo F MaletGermany2024-04-21Rangoni Of Florence UNQUALIFIED64Stephen Shaw
1040Ricardo V IturbideGermany2024-04-17Feltz Printing Service RENEWAL4Asiya Javayant
1041Arvin O BologniaGermany2024-04-07Feltz Printing Service UNQUALIFIED58Stephen Shaw
1042Murillo U ChuiFrance2024-04-09King, Christopher A Esq NEGOTIATION13Ioni Bowcher
1043Ricardo C InouyeJapan2024-04-15Printing Dimensions NEW77Ivan Magalhaes
1044Jeanfrancois E WieserUnited Kingdom2024-04-14Commercial Press PROPOSAL75Ioni Bowcher
1045Ivar C OstroskyJapan2024-04-12Morlong Associates NEW96Anna Fali
1046Maria R NickaFrance2024-03-29Printing Dimensions PROPOSAL17Onyama Limba
1047David L AmigonIndia2024-04-01Rangoni Of Florence QUALIFIED88Bernardo Dominic
1048Nicolas Y MacleadGermany2024-04-17King, Christopher A Esq RENEWAL87Ivan Magalhaes
1049Deepesh C RulapaughAustralia2024-04-22Dorl, James J Esq NEGOTIATION65Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar T MarrierGermanyStephen Shaw NEGOTIATION
Mujtaba A PoquetteJapanAmy Elsner UNQUALIFIED
Nicolas A FlosiFranceAnna Fali QUALIFIED
Greenwood Z ChuiBrazilAnna Fali QUALIFIED
David U RutaIndiaIoni Bowcher RENEWAL
Salvatore O CampainSpainAsiya Javayant NEW
Ivar L RulapaughRussiaStephen Shaw PROPOSAL
Nicolas R GauchoArgentinaElwin Sharvill NEW
Ricardo E ShinkoGermanyStephen Shaw PROPOSAL
Jones I DoeFranceIvan Magalhaes UNQUALIFIED
Aika R FollerFranceOnyama Limba RENEWAL
Octavia Y FlosiCanadaElwin Sharvill UNQUALIFIED
Mujtaba U NickaSpainElwin Sharvill PROPOSAL
Maisha R PerinAustraliaAmy Elsner UNQUALIFIED
Chavez M TollnerBrazilXuxue Feng RENEWAL
Octavia N GlickUnited KingdomIvan Magalhaes QUALIFIED
Nicolas J RimBrazilXuxue Feng NEGOTIATION
Arvin Q RimRussiaIoni Bowcher NEW
Greenwood D SergiItalyAsiya Javayant PROPOSAL
Greenwood M OstroskyFranceBernardo Dominic NEGOTIATION
Sinclair A DilliardRussiaAsiya Javayant QUALIFIED
David T RimSpainBernardo Dominic NEW
Mujtaba S ShinkoAustraliaAmy Elsner NEW
Rodrigues O StensethSpainAnna Fali UNQUALIFIED
Kadeem F ButtJapanXuxue Feng NEGOTIATION
Chavez B CaudyArgentinaStephen Shaw QUALIFIED
Aruna J OldroydSpainElwin Sharvill RENEWAL
Jennifer G RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Aruna N RimCanadaAmy Elsner NEW
Izzy L FlosiArgentinaStephen Shaw RENEWAL
Claire R WhobreyCanadaBernardo Dominic PROPOSAL
Darci C NickaUnited KingdomAsiya Javayant NEGOTIATION
Ashley N GarufiItalyIoni Bowcher NEW
Greenwood E GauchoJapanStephen Shaw PROPOSAL
Jones S AlbaresGermanyIvan Magalhaes NEW
Ricardo C BowleyGermanyStephen Shaw QUALIFIED
Munro N NestleRussiaAsiya Javayant PROPOSAL
Jefferson B WaycottIndiaXuxue Feng PROPOSAL
Cody C KolmetzFranceAsiya Javayant NEGOTIATION
Clifford V VocelkaRussiaElwin Sharvill NEW
Antonio R RulapaughCanadaIoni Bowcher PROPOSAL
Jefferson Q ChuiGermanyElwin Sharvill NEGOTIATION
Isabel T DilliardBrazilIvan Magalhaes NEGOTIATION
Ashley P BowleyRussiaElwin Sharvill QUALIFIED
Rodrigues J BologniaGermanyIvan Magalhaes NEW
Emily S MacleadIndiaBernardo Dominic QUALIFIED
Tony U DarakjyRussiaAsiya Javayant NEGOTIATION
Claire G MacleadArgentinaAmy Elsner PROPOSAL
Jeanfrancois N NestleRussiaStephen Shaw QUALIFIED
Johnson R RulapaughFranceStephen Shaw UNQUALIFIED
Frozen Columns
Name
Aruna Z Glick
Morrow W Perin
Jennifer T Ostrosky
Sinclair D Butt
Jeanfrancois D Maclead
Jones W Venere
Arvin I Albares
Alejandro P Albares
Adams F Sergi
Juan F Royster
Aruna R Ferencz
Juan C Bolognia
Jennifer L Shinko
Ivar L Kolmetz
Emily P Dilliard
Wickens N Amigon
Octavia O Perin
Aditya T Albares
Murillo O Darakjy
Julie W Oldroyd
Claire X Poquette
Claire E Waycott
Ivar D Albares
Morrow Y Gillian
Munro T Ferencz
Johnson R Campain
Deepesh O Kusko
Ashley S Oldroyd
David X Perin
Octavia T Malet
Costa Z Albares
Costa H Whobrey
Mayumi J Gaucho
Greenwood N Gaucho
Costa O Kusko
Smith F Morasca
Greenwood T Doe
Aruna J Stockham
Ivar K Stenseth
Tony R Malet
Faith I Doe
Jeanfrancois I Malet
Faith V Marrier
Tony U Slusarski
Alejandro C Caudy
Aruna B Sergi
Mujtaba E Gillian
Silvio H Darakjy
Francesco M Darakjy
Maisha N Ruta
IdCountryDate
1000Spain2024-04-05
1001Italy2024-04-19
1002France2024-04-18
1003Argentina2024-04-08
1004Germany2024-04-23
1005Spain2024-04-05
1006Argentina2024-04-11
1007Germany2024-03-31
1008Japan2024-04-07
1009Italy2024-03-31
1010Italy2024-04-16
1011Argentina2024-04-03
1012Brazil2024-04-16
1013Germany2024-04-08
1014Argentina2024-03-30
1015United Kingdom2024-04-11
1016Germany2024-03-31
1017Germany2024-04-03
1018Spain2024-04-02
1019France2024-04-24
1020United Kingdom2024-04-14
1021Brazil2024-04-08
1022Russia2024-03-27
1023Japan2024-03-31
1024Italy2024-04-19
1025Argentina2024-04-18
1026Australia2024-04-07
1027United Kingdom2024-04-04
1028Brazil2024-04-03
1029Japan2024-04-22
1030Argentina2024-03-27
1031France2024-04-20
1032Russia2024-04-23
1033Germany2024-04-01
1034Australia2024-04-23
1035Canada2024-04-08
1036Canada2024-04-24
1037India2024-04-11
1038Australia2024-04-19
1039Australia2024-03-29
1040Japan2024-04-23
1041Brazil2024-04-14
1042Argentina2024-03-31
1043Australia2024-04-07
1044France2024-04-24
1045India2024-04-06
1046Canada2024-04-02
1047Spain2024-04-04
1048Japan2024-04-20
1049Argentina2024-04-19

On-Demand Data

NameIdCountryDate
Costa I Stockham1000France2024-04-22
Ivar A Butt1001Australia2024-04-20
Misaki J Nestle1002Brazil2024-04-19
Antonio P Marrier1003France2024-04-16
Francesco Z Oldroyd1004Spain2024-04-17
Nicolas F Flosi1005Japan2024-04-02
Antonio Q Ruta1006Spain2024-03-31
Isabel U Shinko1007Germany2024-04-12
Munro V Tollner1008Spain2024-04-04
Aditya E Vocelka1009Germany2024-03-30
Aika V Gillian1010India2024-04-14
Aditya J Rulapaugh1011Italy2024-04-18
Darci J Malet1012Japan2024-04-19
Morrow P Shinko1013Japan2024-04-11
Claire H Poquette1014Australia2024-04-03
Aditya Q Kolmetz1015India2024-04-13
Mayumi I Dilliard1016Germany2024-03-26
Faith K Venere1017France2024-04-07
Darci B Garufi1018Germany2024-04-07
Faith K Ruta1019Germany2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo S GarufiArgentinaIvan Magalhaes PROPOSAL
Aruna L ChuiBrazilStephen Shaw UNQUALIFIED
Chavez I AlbaresUnited KingdomStephen Shaw NEGOTIATION
Aditya O ShinkoGermanyIvan Magalhaes UNQUALIFIED
Stacey W KolmetzSpainAnna Fali PROPOSAL
Smith Y BologniaItalyAmy Elsner UNQUALIFIED
Chavez C FigeroaRussiaBernardo Dominic NEW
Ricardo K SergiArgentinaAnna Fali NEGOTIATION
Deepesh B DarakjyGermanyIoni Bowcher PROPOSAL
Stacey H StockhamCanadaIvan Magalhaes NEGOTIATION
Juan M RulapaughGermanyIvan Magalhaes QUALIFIED
Aditya N GauchoJapanAnna Fali QUALIFIED
Maria P MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Francesco Q ButtIndiaElwin Sharvill RENEWAL
Deepesh Q WhobreyCanadaOnyama Limba UNQUALIFIED
Rodrigues D WieserIndiaXuxue Feng NEW
Murillo H SaylorsArgentinaAnna Fali QUALIFIED
Jones M OstroskyFranceBernardo Dominic QUALIFIED
Jefferson L OldroydGermanyIvan Magalhaes QUALIFIED
Rodrigues K GarufiArgentinaOnyama Limba NEW
Maria E VocelkaItalyXuxue Feng RENEWAL
Juan J WhobreyCanadaAsiya Javayant PROPOSAL
Wickens C FerenczUnited KingdomStephen Shaw QUALIFIED
Silvio R SaylorsArgentinaAsiya Javayant UNQUALIFIED
Claire I MaletItalyAmy Elsner UNQUALIFIED
Alejandro E MarrierCanadaElwin Sharvill NEGOTIATION
Leon I BriddickBrazilAnna Fali RENEWAL
Jennifer P FlosiUnited KingdomAnna Fali UNQUALIFIED
Nicolas M SaylorsArgentinaBernardo Dominic NEW
Claire E WieserSpainStephen Shaw NEW
Mujtaba X IturbideRussiaOnyama Limba RENEWAL
Misaki Q VenereBrazilAsiya Javayant PROPOSAL
Mujtaba R WaycottSpainBernardo Dominic NEW
James I PoquetteItalyOnyama Limba RENEWAL
Darci A DoeSpainIoni Bowcher NEW
Jefferson Y DoeBrazilOnyama Limba NEGOTIATION
Deepesh A FerenczAustraliaIvan Magalhaes QUALIFIED
Ivar J VocelkaUnited KingdomStephen Shaw NEW
Ashley Z FigeroaRussiaAmy Elsner NEGOTIATION
Arvin D AlbaresGermanyIvan Magalhaes 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>