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
Leja V ButtArgentinaStephen Shaw QUALIFIED
Ivar J NestleUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois Y PaprockiAustraliaOnyama Limba PROPOSAL
Silvio O PoquetteRussiaOnyama Limba QUALIFIED
Francesco V CaldareraFranceAnna Fali RENEWAL
Emily R SlusarskiCanadaIoni Bowcher NEW
Salvatore N MaletArgentinaOnyama Limba QUALIFIED
Arvin M WieserArgentinaIoni Bowcher RENEWAL
Cody N CampainJapanAsiya Javayant QUALIFIED
Salvatore U AmigonArgentinaAnna Fali UNQUALIFIED
Darci Z RimUnited KingdomAnna Fali PROPOSAL
Silvio T StockhamFranceBernardo Dominic RENEWAL
Misaki H GillianArgentinaBernardo Dominic UNQUALIFIED
David T GillianSpainIvan Magalhaes NEGOTIATION
Tony O KuskoAustraliaIoni Bowcher UNQUALIFIED
Clifford I CaudyJapanIoni Bowcher PROPOSAL
Greenwood F SlusarskiFranceOnyama Limba QUALIFIED
Faith Y KuskoArgentinaElwin Sharvill UNQUALIFIED
Adams V BologniaGermanyAmy Elsner UNQUALIFIED
Sinclair O VenereSpainStephen Shaw QUALIFIED
Emily F TollnerArgentinaXuxue Feng NEW
Jefferson E BologniaAustraliaOnyama Limba NEGOTIATION
Ricardo H ChuiGermanyIvan Magalhaes RENEWAL
Johnson E KuskoUnited KingdomIvan Magalhaes QUALIFIED
Cody D NickaFranceIvan Magalhaes RENEWAL
Salvatore V FollerUnited KingdomElwin Sharvill RENEWAL
Emily I NickaGermanyAsiya Javayant QUALIFIED
Jennifer O BriddickSpainXuxue Feng RENEWAL
Rodrigues K WieserItalyElwin Sharvill UNQUALIFIED
Nicolas X VenereFranceIvan Magalhaes NEGOTIATION
Sinclair G VocelkaArgentinaBernardo Dominic NEGOTIATION
Cody O MorascaFranceElwin Sharvill NEW
Ashley Y RimUnited KingdomIoni Bowcher PROPOSAL
Johnson D RoysterFranceIvan Magalhaes RENEWAL
Aruna O SergiSpainAnna Fali UNQUALIFIED
Darci U OstroskyFranceBernardo Dominic PROPOSAL
Adams F RulapaughArgentinaIvan Magalhaes RENEWAL
Stacey W DilliardFranceStephen Shaw RENEWAL
Aditya I AlbaresJapanAsiya Javayant NEGOTIATION
Mayumi U GillianArgentinaAsiya Javayant PROPOSAL
Jeanfrancois X VocelkaCanadaIoni Bowcher QUALIFIED
Sinclair G FerenczGermanyXuxue Feng PROPOSAL
Emily C WhobreyArgentinaElwin Sharvill QUALIFIED
Francesco X RoysterIndiaAnna Fali RENEWAL
David S RimJapanElwin Sharvill NEW
Francesco G SchemmerItalyAnna Fali NEGOTIATION
Darci S DilliardCanadaXuxue Feng UNQUALIFIED
Ashley S FollerUnited KingdomXuxue Feng UNQUALIFIED
Maisha N AmigonFranceBernardo Dominic UNQUALIFIED
Arvin L CaldareraBrazilXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey J ChuiAustraliaElwin Sharvill PROPOSAL
Kaitlin X RulapaughUnited KingdomIvan Magalhaes NEW
Aditya S InouyeJapanAsiya Javayant PROPOSAL
Jennifer S VocelkaArgentinaAnna Fali NEGOTIATION
Munro A MaletJapanOnyama Limba UNQUALIFIED
Deepesh Z GauchoFranceIvan Magalhaes PROPOSAL
Clifford W FollerBrazilXuxue Feng QUALIFIED
James L GillianIndiaIoni Bowcher RENEWAL
Tony L ChuiSpainAnna Fali PROPOSAL
Clifford W RutaCanadaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci V FigeroaRussia2024-04-23Chemel, James L Cpa NEW66Ioni Bowcher
1001Francesco X PerinSpain2024-04-06Feltz Printing Service RENEWAL22Ivan Magalhaes
1002Claire D CampainArgentina2024-04-24Chanay, Jeffrey A Esq NEW17Elwin Sharvill
1003Greenwood I ShinkoIndia2024-04-02Feltz Printing Service NEGOTIATION13Onyama Limba
1004Ivar N TollnerUnited Kingdom2024-04-19Chemel, James L Cpa QUALIFIED75Xuxue Feng
1005Nicolas B RimSpain2024-04-27Benton, John B Jr RENEWAL82Elwin Sharvill
1006Nicolas V BriddickJapan2024-04-17King, Christopher A Esq RENEWAL71Stephen Shaw
1007Jefferson Y IturbideRussia2024-04-06Feiner Bros RENEWAL56Anna Fali
1008Ricardo I NickaItaly2024-04-03Rousseaux, Michael Esq NEGOTIATION83Bernardo Dominic
1009James F DarakjyAustralia2024-04-24Chanay, Jeffrey A Esq PROPOSAL65Xuxue Feng
1010Maisha G ShinkoGermany2024-04-26Rousseaux, Michael Esq PROPOSAL2Elwin Sharvill
1011Maisha B WhobreyGermany2024-04-18Commercial Press NEGOTIATION52Xuxue Feng
1012Faith X OstroskyFrance2024-04-15King, Christopher A Esq UNQUALIFIED93Anna Fali
1013Ivar E VocelkaItaly2024-04-03Rangoni Of Florence RENEWAL78Anna Fali
1014Juan R MaletGermany2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED17Amy Elsner
1015Antonio B IturbideBrazil2024-04-04Feiner Bros PROPOSAL17Ivan Magalhaes
1016Stacey W ButtIndia2024-04-23Rangoni Of Florence QUALIFIED86Elwin Sharvill
1017Francesco F StensethArgentina2024-04-15Truhlar And Truhlar Attys PROPOSAL95Anna Fali
1018Sinclair L BowleyBrazil2024-04-18King, Christopher A Esq RENEWAL67Xuxue Feng
1019James V SergiIndia2024-03-29Feltz Printing Service PROPOSAL91Stephen Shaw
1020Mujtaba Y DarakjyAustralia2024-04-14Rangoni Of Florence RENEWAL94Ivan Magalhaes
1021Leja T StensethFrance2024-04-15Benton, John B Jr QUALIFIED56Amy Elsner
1022Adams K KuskoGermany2024-04-03Rousseaux, Michael Esq QUALIFIED59Stephen Shaw
1023Nicolas Z FlosiFrance2024-04-05Chapman, Ross E Esq QUALIFIED42Xuxue Feng
1024Jeanfrancois X SlusarskiGermany2024-04-14Feiner Bros UNQUALIFIED72Ivan Magalhaes
1025Jones V BowleyArgentina2024-04-10Morlong Associates RENEWAL22Bernardo Dominic
1026Chavez R DilliardAustralia2024-04-16Buckley Miller Wright QUALIFIED49Ivan Magalhaes
1027Jeanfrancois L GlickArgentina2024-04-04Dorl, James J Esq NEW26Stephen Shaw
1028Izzy S PaprockiCanada2024-04-24Chemel, James L Cpa UNQUALIFIED25Bernardo Dominic
1029Aika B FerenczGermany2024-04-13Feiner Bros NEGOTIATION92Amy Elsner
1030Jefferson K MacleadIndia2024-04-06Chanay, Jeffrey A Esq RENEWAL70Bernardo Dominic
1031Leon R VocelkaArgentina2024-04-05Chapman, Ross E Esq NEGOTIATION39Stephen Shaw
1032Aruna O FerenczCanada2024-04-09Feiner Bros QUALIFIED79Bernardo Dominic
1033Antonio J SchemmerFrance2024-04-18Commercial Press RENEWAL32Stephen Shaw
1034James F ShinkoJapan2024-04-20Feltz Printing Service QUALIFIED98Asiya Javayant
1035Octavia Y MaletIndia2024-04-21Rousseaux, Michael Esq NEW23Elwin Sharvill
1036Arvin K IturbideCanada2024-04-16Rangoni Of Florence RENEWAL89Anna Fali
1037Kaitlin B SaylorsIndia2024-03-31Commercial Press NEGOTIATION64Ivan Magalhaes
1038Kadeem D SchemmerJapan2024-04-20King, Christopher A Esq QUALIFIED66Amy Elsner
1039Clifford A MaletSpain2024-04-25Truhlar And Truhlar Attys NEW4Elwin Sharvill
1040Morrow N RutaItaly2024-04-23Printing Dimensions NEGOTIATION93Bernardo Dominic
1041Mujtaba W CampainJapan2024-04-03Feiner Bros NEW5Bernardo Dominic
1042James X RimSpain2024-04-14Rangoni Of Florence NEGOTIATION66Asiya Javayant
1043Jeanfrancois V PerinCanada2024-04-26Dorl, James J Esq NEW22Stephen Shaw
1044Rodrigues K SergiGermany2024-04-08Chapman, Ross E Esq NEGOTIATION39Onyama Limba
1045Chavez H RulapaughAustralia2024-04-10Benton, John B Jr RENEWAL2Bernardo Dominic
1046Mujtaba H ShinkoArgentina2024-04-24Rousseaux, Michael Esq RENEWAL44Ioni Bowcher
1047Octavia Z GillianIndia2024-04-14Rangoni Of Florence RENEWAL36Stephen Shaw
1048Aruna G NestleBrazil2024-04-10Feltz Printing Service NEW10Ioni Bowcher
1049Morrow E SergiRussia2024-04-24Rousseaux, Michael Esq RENEWAL88Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson T CaudyArgentinaOnyama Limba QUALIFIED
Chavez U BowleyRussiaAsiya Javayant UNQUALIFIED
Claire G ShinkoAustraliaAnna Fali NEGOTIATION
Darci D BriddickArgentinaAsiya Javayant NEGOTIATION
Deepesh R NestleUnited KingdomElwin Sharvill NEW
Isabel N MacleadAustraliaIvan Magalhaes NEW
Faith Q FigeroaCanadaIvan Magalhaes PROPOSAL
Maria O BowleyAustraliaAmy Elsner RENEWAL
James Y NestleArgentinaXuxue Feng PROPOSAL
Kadeem K CaldareraRussiaAsiya Javayant UNQUALIFIED
Misaki E PerinCanadaIoni Bowcher PROPOSAL
Aika Y ShinkoIndiaBernardo Dominic NEW
Misaki E PoquetteIndiaStephen Shaw NEGOTIATION
Francesco G MaletFranceStephen Shaw UNQUALIFIED
Jeanfrancois O WaycottArgentinaIoni Bowcher NEW
Clifford M DarakjyGermanyStephen Shaw NEW
Nicolas C MacleadSpainIoni Bowcher RENEWAL
Mayumi W DilliardUnited KingdomXuxue Feng PROPOSAL
Francesco L NestleGermanyAnna Fali NEW
Nicolas K BowleyCanadaAmy Elsner RENEWAL
Ashley A DarakjyUnited KingdomAmy Elsner QUALIFIED
Isabel B SlusarskiSpainBernardo Dominic NEW
Murillo R MarrierRussiaAmy Elsner UNQUALIFIED
Sinclair G GlickJapanOnyama Limba NEGOTIATION
David B BowleyJapanXuxue Feng RENEWAL
Cody H OstroskyCanadaElwin Sharvill NEW
Morrow L FollerItalyXuxue Feng PROPOSAL
Isabel Z SchemmerSpainXuxue Feng PROPOSAL
Leon N CaudySpainStephen Shaw UNQUALIFIED
Chavez E WieserCanadaAnna Fali NEW
Aruna D GillianFranceElwin Sharvill RENEWAL
Arvin T PerinSpainAmy Elsner PROPOSAL
Kadeem B ChuiGermanyOnyama Limba QUALIFIED
Maria J DilliardAustraliaAsiya Javayant NEGOTIATION
Aditya Z ShinkoIndiaXuxue Feng NEGOTIATION
Stacey E PaprockiIndiaAsiya Javayant UNQUALIFIED
Silvio K PaprockiItalyAmy Elsner RENEWAL
Mujtaba L RoysterJapanIoni Bowcher NEW
David V KuskoSpainXuxue Feng QUALIFIED
Munro V ShinkoRussiaAmy Elsner NEGOTIATION
Darci F RoysterSpainIoni Bowcher QUALIFIED
James D WhobreyFranceAnna Fali UNQUALIFIED
Stacey H FlosiSpainOnyama Limba UNQUALIFIED
Silvio J CaudyUnited KingdomBernardo Dominic PROPOSAL
Darci X FigeroaSpainAnna Fali NEW
Wickens Y ShinkoIndiaAmy Elsner PROPOSAL
Emily Y ChuiFranceBernardo Dominic NEW
Silvio I StensethItalyElwin Sharvill PROPOSAL
Deepesh C OldroydArgentinaAmy Elsner PROPOSAL
Mayumi S GarufiFranceOnyama Limba QUALIFIED
Frozen Columns
Name
Kadeem R Poquette
Kaitlin W Marrier
Chavez Y Waycott
Aruna T Rulapaugh
Kadeem K Nestle
Wickens E Campain
Octavia U Glick
Aika E Dilliard
Octavia H Royster
Misaki X Schemmer
Jennifer F Flosi
Leja Z Ferencz
Murillo O Saylors
Aditya T Schemmer
Ricardo N Ostrosky
Murillo P Kusko
James Z Briddick
James I Schemmer
Leja I Darakjy
Maisha T Bolognia
Adams L Royster
Octavia C Stenseth
Nicolas P Saylors
Francesco F Campain
Nicolas X Paprocki
Cody K Chui
Maria K Ostrosky
Johnson I Caudy
Morrow P Foller
Antonio I Campain
Morrow J Poquette
Juan R Iturbide
Alejandro Y Tollner
Silvio V Malet
Ashley D Tollner
Julie C Malet
Chavez M Paprocki
Chavez P Morasca
Kadeem X Kusko
Jennifer O Whobrey
Misaki I Wieser
Morrow Z Venere
Morrow W Stenseth
Alejandro E Nicka
Julie G Morasca
Munro H Sergi
Tony X Caudy
Munro H Ruta
Darci Q Briddick
Nicolas J Chui
IdCountryDate
1000Brazil2024-04-07
1001Italy2024-04-14
1002Argentina2024-04-24
1003United Kingdom2024-04-25
1004Japan2024-04-02
1005Brazil2024-04-01
1006United Kingdom2024-04-03
1007Canada2024-04-09
1008Russia2024-03-30
1009United Kingdom2024-04-07
1010Argentina2024-04-09
1011Japan2024-04-15
1012Russia2024-04-25
1013Japan2024-04-07
1014Argentina2024-04-08
1015Argentina2024-04-17
1016Spain2024-04-01
1017India2024-04-04
1018Italy2024-04-16
1019Japan2024-04-16
1020India2024-04-08
1021Argentina2024-04-19
1022Japan2024-04-09
1023Argentina2024-04-08
1024France2024-04-01
1025India2024-04-04
1026Italy2024-04-27
1027Australia2024-04-16
1028Australia2024-04-22
1029France2024-04-19
1030Brazil2024-04-21
1031France2024-04-24
1032United Kingdom2024-04-03
1033Spain2024-04-03
1034Italy2024-04-08
1035India2024-04-19
1036Italy2024-03-29
1037Germany2024-04-26
1038Argentina2024-04-10
1039Russia2024-04-13
1040Argentina2024-04-09
1041France2024-04-22
1042Canada2024-04-04
1043Italy2024-04-25
1044Australia2024-04-02
1045Italy2024-04-26
1046Russia2024-04-21
1047Brazil2024-04-07
1048Russia2024-04-26
1049Russia2024-04-06

On-Demand Data

NameIdCountryDate
Aika I Ruta1000Italy2024-04-20
Juan D Ruta1001Spain2024-04-22
Tony B Stockham1002France2024-04-04
Octavia A Perin1003France2024-04-18
Maria F Poquette1004Canada2024-04-18
Aruna P Gaucho1005Italy2024-04-07
Francesco Y Inouye1006Brazil2024-04-04
Julie S Kolmetz1007Japan2024-03-30
Jefferson H Malet1008Italy2024-04-18
Jefferson N Royster1009Germany2024-04-26
Maria V Doe1010United Kingdom2024-04-12
Ivar T Perin1011Spain2024-04-27
Kadeem E Tollner1012France2024-04-25
David X Ostrosky1013Canada2024-04-04
Aditya X Campain1014Australia2024-04-13
Nicolas Q Nicka1015Canada2024-04-14
Johnson X Shinko1016Australia2024-03-29
Kadeem I Caudy1017India2024-04-27
Antonio B Iturbide1018Argentina2024-04-25
Jennifer U Iturbide1019Italy2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki R SaylorsGermanyBernardo Dominic NEW
Jones C PaprockiAustraliaIvan Magalhaes PROPOSAL
Cody X WhobreyItalyBernardo Dominic PROPOSAL
Nicolas I KuskoIndiaBernardo Dominic UNQUALIFIED
Salvatore M SchemmerIndiaAmy Elsner QUALIFIED
Smith N CaldareraFranceOnyama Limba PROPOSAL
Octavia E SlusarskiAustraliaBernardo Dominic RENEWAL
Adams S PaprockiRussiaAsiya Javayant NEGOTIATION
Kaitlin B NestleRussiaXuxue Feng UNQUALIFIED
Jefferson G FlosiBrazilAsiya Javayant UNQUALIFIED
James X SchemmerCanadaAmy Elsner PROPOSAL
David C VocelkaArgentinaBernardo Dominic NEW
Rodrigues F MacleadIndiaXuxue Feng NEW
Wickens Z StockhamIndiaAmy Elsner PROPOSAL
Leon E IturbideRussiaBernardo Dominic UNQUALIFIED
Wickens N StensethAustraliaStephen Shaw UNQUALIFIED
Murillo X ChuiAustraliaStephen Shaw NEW
Jennifer S AlbaresFranceAmy Elsner UNQUALIFIED
Munro G RimUnited KingdomOnyama Limba NEGOTIATION
Munro Y IturbideSpainAmy Elsner RENEWAL
Ricardo T FigeroaArgentinaOnyama Limba UNQUALIFIED
Julie L NickaBrazilAsiya Javayant PROPOSAL
Claire I PoquetteCanadaIoni Bowcher PROPOSAL
Arvin X AmigonAustraliaXuxue Feng NEW
Juan A SlusarskiFranceStephen Shaw NEW
Kadeem U GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Julie I RimCanadaIvan Magalhaes NEGOTIATION
James T StockhamJapanIoni Bowcher NEW
Jefferson Q PaprockiItalyAmy Elsner NEGOTIATION
Rodrigues D GlickGermanyElwin Sharvill NEGOTIATION
Octavia K MaletArgentinaAmy Elsner RENEWAL
Francesco Y WaycottSpainIoni Bowcher PROPOSAL
Mujtaba Z FollerAustraliaAmy Elsner UNQUALIFIED
Jones O MaletSpainAmy Elsner RENEWAL
Julie Z RulapaughGermanyXuxue Feng RENEWAL
Faith V RutaArgentinaIvan Magalhaes NEGOTIATION
Aika M WhobreyCanadaElwin Sharvill RENEWAL
Aditya R VenereCanadaBernardo Dominic QUALIFIED
Greenwood T BriddickSpainElwin Sharvill UNQUALIFIED
Misaki R NickaSpainOnyama Limba QUALIFIED

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