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
David B CampainItalyIoni Bowcher PROPOSAL
Aruna J GlickJapanOnyama Limba RENEWAL
David G StensethItalyOnyama Limba PROPOSAL
Jefferson K RimIndiaAsiya Javayant NEW
Wickens I MaletIndiaAnna Fali PROPOSAL
Morrow Q RoysterIndiaAsiya Javayant QUALIFIED
Jefferson Z CaudyItalyBernardo Dominic PROPOSAL
Aika T ShinkoGermanyIoni Bowcher NEW
Sinclair G DarakjyItalyIvan Magalhaes NEGOTIATION
Deepesh E MaletCanadaStephen Shaw NEW
Salvatore U WieserBrazilXuxue Feng NEW
Wickens G TollnerUnited KingdomStephen Shaw QUALIFIED
Jefferson G VocelkaGermanyElwin Sharvill QUALIFIED
Johnson N FerenczArgentinaIoni Bowcher UNQUALIFIED
Deepesh C OstroskyCanadaAsiya Javayant QUALIFIED
Claire X SchemmerIndiaAsiya Javayant NEGOTIATION
Aika R SchemmerAustraliaAmy Elsner RENEWAL
Adams Q MacleadItalyIvan Magalhaes UNQUALIFIED
Tony X VocelkaItalyStephen Shaw NEGOTIATION
Leon W StensethAustraliaStephen Shaw UNQUALIFIED
Cody F WhobreyAustraliaStephen Shaw NEW
Murillo P CampainRussiaAnna Fali RENEWAL
Ivar F MaletBrazilXuxue Feng PROPOSAL
Jones N FlosiGermanyBernardo Dominic NEW
Emily P ShinkoArgentinaAmy Elsner NEGOTIATION
Stacey I OldroydSpainElwin Sharvill NEGOTIATION
Leja Q OldroydUnited KingdomIvan Magalhaes NEW
Stacey J BologniaJapanAsiya Javayant NEW
Murillo C OldroydBrazilIoni Bowcher UNQUALIFIED
Arvin P DoeUnited KingdomIoni Bowcher PROPOSAL
Misaki D RimUnited KingdomOnyama Limba NEW
Jeanfrancois P RimGermanyElwin Sharvill NEGOTIATION
Jeanfrancois T PerinUnited KingdomIvan Magalhaes PROPOSAL
Aika I KolmetzCanadaBernardo Dominic NEW
James D AmigonJapanIoni Bowcher PROPOSAL
Antonio F AmigonFranceIoni Bowcher PROPOSAL
Deepesh M GarufiCanadaAnna Fali RENEWAL
Leja S ChuiCanadaBernardo Dominic NEGOTIATION
Maria C StockhamAustraliaAmy Elsner RENEWAL
Jennifer O MacleadBrazilOnyama Limba UNQUALIFIED
Silvio X BologniaGermanyAnna Fali PROPOSAL
Ashley H KuskoCanadaAnna Fali QUALIFIED
Maria X KolmetzJapanOnyama Limba NEGOTIATION
Nicolas E NestleSpainXuxue Feng RENEWAL
Ashley P FlosiGermanyAsiya Javayant RENEWAL
Claire E RulapaughAustraliaOnyama Limba PROPOSAL
Deepesh W RutaFranceOnyama Limba NEGOTIATION
Alejandro U RulapaughGermanyIvan Magalhaes RENEWAL
Aditya D VenereIndiaAsiya Javayant NEW
Izzy S DarakjyIndiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
David G OldroydRussiaAmy Elsner NEW
Jeanfrancois G CampainCanadaBernardo Dominic QUALIFIED
Alejandro L DoeRussiaAsiya Javayant UNQUALIFIED
Mujtaba W MaletAustraliaStephen Shaw PROPOSAL
Costa E MaletCanadaBernardo Dominic NEW
Claire A TollnerGermanyAmy Elsner NEW
Octavia W InouyeJapanIoni Bowcher NEGOTIATION
Jones X CaudyCanadaAsiya Javayant NEGOTIATION
Aditya U MacleadGermanyAnna Fali NEGOTIATION
Juan O OldroydIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco L InouyeAustralia2024-04-05Rangoni Of Florence PROPOSAL81Elwin Sharvill
1001Cody U DilliardCanada2024-04-04Chapman, Ross E Esq UNQUALIFIED85Bernardo Dominic
1002Smith Y MaletRussia2024-04-02Chemel, James L Cpa QUALIFIED0Stephen Shaw
1003Antonio W BologniaJapan2024-04-03Commercial Press PROPOSAL49Ioni Bowcher
1004Silvio G DilliardFrance2024-04-16Chanay, Jeffrey A Esq NEGOTIATION14Amy Elsner
1005Cody J PerinArgentina2024-04-02Rangoni Of Florence UNQUALIFIED38Ioni Bowcher
1006Kadeem H RimJapan2024-04-15Commercial Press PROPOSAL24Ivan Magalhaes
1007Francesco T RoysterGermany2024-04-05Chanay, Jeffrey A Esq QUALIFIED20Stephen Shaw
1008Nicolas D StensethIndia2024-03-31King, Christopher A Esq NEGOTIATION3Amy Elsner
1009James Y MaletGermany2024-04-04Buckley Miller Wright PROPOSAL0Onyama Limba
1010Antonio O MaletArgentina2024-04-20Printing Dimensions NEGOTIATION59Ivan Magalhaes
1011Emily L SergiIndia2024-04-25Rangoni Of Florence NEW47Elwin Sharvill
1012Deepesh R VocelkaJapan2024-04-18Truhlar And Truhlar Attys RENEWAL28Asiya Javayant
1013Leja J GillianArgentina2024-04-16Buckley Miller Wright UNQUALIFIED35Anna Fali
1014Costa Y DarakjyJapan2024-04-13Chemel, James L Cpa PROPOSAL65Xuxue Feng
1015Mujtaba W StockhamCanada2024-04-16Benton, John B Jr NEGOTIATION18Ivan Magalhaes
1016Tony E CaudyJapan2024-04-10Chanay, Jeffrey A Esq PROPOSAL10Onyama Limba
1017Stacey A GarufiRussia2024-04-13Rangoni Of Florence NEW20Asiya Javayant
1018Antonio X DoeRussia2024-04-15Rangoni Of Florence PROPOSAL84Asiya Javayant
1019Faith O DarakjyRussia2024-04-04Dorl, James J Esq NEGOTIATION24Bernardo Dominic
1020Aruna S RimFrance2024-04-15Printing Dimensions QUALIFIED50Xuxue Feng
1021Ivar P NestleRussia2024-04-02Buckley Miller Wright NEW6Onyama Limba
1022James G FigeroaFrance2024-03-30Printing Dimensions UNQUALIFIED16Amy Elsner
1023Faith X NestleFrance2024-03-29Dorl, James J Esq RENEWAL28Anna Fali
1024Salvatore S AmigonSpain2024-04-16Feiner Bros QUALIFIED17Elwin Sharvill
1025Morrow D MaletRussia2024-04-11Printing Dimensions QUALIFIED26Elwin Sharvill
1026Claire P ShinkoFrance2024-04-20Dorl, James J Esq PROPOSAL13Bernardo Dominic
1027Jefferson R IturbideJapan2024-04-14Benton, John B Jr PROPOSAL72Ivan Magalhaes
1028Isabel R DarakjyGermany2024-04-18Commercial Press NEW47Xuxue Feng
1029Rodrigues A FollerJapan2024-03-29Benton, John B Jr PROPOSAL45Bernardo Dominic
1030Faith J GauchoSpain2024-04-09Rangoni Of Florence QUALIFIED86Anna Fali
1031Kaitlin P IturbideJapan2024-04-25Commercial Press NEW29Bernardo Dominic
1032Leja N AlbaresSpain2024-04-24Benton, John B Jr UNQUALIFIED42Ioni Bowcher
1033Munro V InouyeCanada2024-04-21Feiner Bros QUALIFIED20Ivan Magalhaes
1034Ricardo R FigeroaGermany2024-04-01Printing Dimensions RENEWAL8Xuxue Feng
1035Jennifer I GillianFrance2024-04-21Truhlar And Truhlar Attys QUALIFIED0Stephen Shaw
1036Chavez E StockhamCanada2024-04-18King, Christopher A Esq QUALIFIED61Onyama Limba
1037Aika C MaletUnited Kingdom2024-04-08Printing Dimensions UNQUALIFIED23Stephen Shaw
1038Sinclair E BologniaCanada2024-04-24Feiner Bros QUALIFIED26Onyama Limba
1039Adams G AmigonGermany2024-04-10Chapman, Ross E Esq QUALIFIED8Asiya Javayant
1040Maisha Q DoeUnited Kingdom2024-04-19Chemel, James L Cpa QUALIFIED28Ioni Bowcher
1041Johnson P BologniaSpain2024-04-04Feltz Printing Service QUALIFIED92Asiya Javayant
1042David W StockhamFrance2024-04-03Truhlar And Truhlar Attys PROPOSAL76Ivan Magalhaes
1043Deepesh A SergiUnited Kingdom2024-04-14Chapman, Ross E Esq RENEWAL38Onyama Limba
1044Arvin V BriddickCanada2024-04-05Buckley Miller Wright PROPOSAL13Ioni Bowcher
1045Aika C CaudyBrazil2024-03-31Printing Dimensions RENEWAL8Elwin Sharvill
1046Johnson J OldroydGermany2024-04-20Chanay, Jeffrey A Esq PROPOSAL83Ioni Bowcher
1047Salvatore D TollnerFrance2024-04-12Chapman, Ross E Esq QUALIFIED53Ivan Magalhaes
1048Aditya P VenereJapan2024-04-20Truhlar And Truhlar Attys QUALIFIED54Ioni Bowcher
1049Ivar A CampainBrazil2024-03-29Feiner Bros NEGOTIATION92Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aditya C ButtGermanyAnna Fali PROPOSAL
Nicolas F WieserArgentinaAsiya Javayant UNQUALIFIED
Aditya R OstroskyItalyOnyama Limba NEW
Faith Z FollerIndiaElwin Sharvill PROPOSAL
Kaitlin F ShinkoIndiaAmy Elsner PROPOSAL
Alejandro C FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba Z PaprockiRussiaStephen Shaw NEW
Ivar Q RutaItalyIvan Magalhaes UNQUALIFIED
Faith T VocelkaArgentinaStephen Shaw QUALIFIED
Deepesh V PerinArgentinaBernardo Dominic QUALIFIED
Aruna P FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Jones X BologniaAustraliaBernardo Dominic UNQUALIFIED
Silvio A StensethCanadaAnna Fali RENEWAL
Ricardo T InouyeUnited KingdomStephen Shaw QUALIFIED
Alejandro D PoquetteFranceAmy Elsner RENEWAL
Aditya L MarrierItalyAmy Elsner RENEWAL
Misaki Z PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio Y VenereAustraliaBernardo Dominic UNQUALIFIED
Emily F NickaUnited KingdomAmy Elsner NEGOTIATION
Julie O NestleJapanIoni Bowcher RENEWAL
Salvatore I RimCanadaOnyama Limba QUALIFIED
Darci Z ChuiArgentinaAmy Elsner RENEWAL
Nicolas K AlbaresIndiaAnna Fali RENEWAL
Murillo X ChuiGermanyOnyama Limba NEGOTIATION
Emily T PaprockiSpainOnyama Limba NEGOTIATION
Morrow U AlbaresUnited KingdomElwin Sharvill NEW
Aruna S SchemmerSpainAmy Elsner QUALIFIED
Murillo I BriddickUnited KingdomIvan Magalhaes NEW
Aika O FigeroaGermanyOnyama Limba RENEWAL
Smith P AmigonItalyIoni Bowcher NEW
Tony C NestleGermanyStephen Shaw NEGOTIATION
Sinclair F PerinFranceIoni Bowcher UNQUALIFIED
Claire W StensethItalyXuxue Feng QUALIFIED
Costa I MaletCanadaAsiya Javayant NEW
Cody G AlbaresItalyIoni Bowcher NEGOTIATION
Kadeem U MaletIndiaOnyama Limba NEW
Izzy K DoeAustraliaStephen Shaw NEGOTIATION
Greenwood C RimIndiaAsiya Javayant PROPOSAL
Francesco M OldroydGermanyStephen Shaw RENEWAL
Rodrigues S RoysterAustraliaStephen Shaw PROPOSAL
Arvin V OstroskyIndiaStephen Shaw RENEWAL
Deepesh U WhobreyBrazilAsiya Javayant NEW
Leja L RutaUnited KingdomIoni Bowcher UNQUALIFIED
Leja O TollnerJapanBernardo Dominic RENEWAL
Morrow P NestleBrazilXuxue Feng PROPOSAL
Aditya P FollerUnited KingdomAmy Elsner NEW
Ricardo P KuskoJapanAsiya Javayant UNQUALIFIED
Antonio R IturbideCanadaIvan Magalhaes RENEWAL
Ricardo D CampainUnited KingdomOnyama Limba NEGOTIATION
Murillo P PoquetteFranceAmy Elsner NEW
Frozen Columns
Name
Alejandro D Kusko
David Q Flosi
David G Inouye
Ricardo K Ferencz
Costa R Sergi
Munro R Kolmetz
Juan E Waycott
Greenwood Y Albares
Munro I Rim
Nicolas C Schemmer
Mujtaba P Stockham
Julie D Ruta
Ivar V Bowley
Costa G Flosi
Kaitlin V Ostrosky
Octavia A Amigon
Aditya K Maclead
Smith W Gillian
Misaki L Kolmetz
Maisha R Foller
Salvatore U Stockham
Ivar H Venere
Francesco P Bowley
Silvio H Shinko
Kaitlin O Bowley
Isabel K Rulapaugh
Deepesh J Amigon
Stacey H Stenseth
Kaitlin W Rim
Maria Q Caldarera
Francesco A Inouye
Silvio C Malet
Aruna I Chui
Kaitlin A Kolmetz
Maisha O Flosi
Tony V Bolognia
James A Saylors
Sinclair F Wieser
Rodrigues C Poquette
David R Malet
Cody S Morasca
Salvatore R Whobrey
Wickens W Schemmer
Chavez D Slusarski
Kadeem C Stockham
Julie G Malet
Adams Y Darakjy
Wickens P Garufi
Jones W Albares
Murillo G Rim
IdCountryDate
1000Italy2024-04-25
1001Argentina2024-04-24
1002Brazil2024-04-05
1003Spain2024-04-12
1004Italy2024-04-17
1005France2024-04-19
1006Spain2024-04-01
1007Russia2024-04-07
1008Argentina2024-04-10
1009France2024-04-04
1010France2024-04-07
1011Australia2024-04-06
1012India2024-04-26
1013India2024-04-11
1014Brazil2024-04-04
1015India2024-03-29
1016Japan2024-04-26
1017Australia2024-03-31
1018Brazil2024-04-10
1019Russia2024-04-26
1020Argentina2024-04-23
1021Argentina2024-03-29
1022Argentina2024-04-08
1023India2024-04-01
1024Russia2024-04-12
1025Australia2024-04-05
1026Australia2024-04-23
1027Russia2024-04-25
1028France2024-04-18
1029France2024-03-30
1030United Kingdom2024-04-17
1031United Kingdom2024-04-06
1032Spain2024-04-14
1033Australia2024-04-03
1034France2024-04-19
1035Spain2024-04-25
1036Australia2024-04-04
1037France2024-04-23
1038France2024-04-08
1039Brazil2024-04-24
1040Australia2024-04-22
1041Russia2024-03-31
1042Russia2024-04-20
1043France2024-04-19
1044France2024-04-19
1045Japan2024-04-11
1046Germany2024-04-14
1047France2024-04-04
1048Argentina2024-04-11
1049Russia2024-04-12

On-Demand Data

NameIdCountryDate
Aditya F Shinko1000Brazil2024-04-15
Morrow T Whobrey1001Argentina2024-04-24
Wickens W Schemmer1002Germany2024-04-21
Chavez W Gaucho1003Australia2024-04-05
Darci T Marrier1004Argentina2024-04-20
Alejandro Q Garufi1005France2024-04-07
Arvin D Flosi1006India2024-04-27
Johnson P Campain1007Russia2024-04-25
Cody U Albares1008Brazil2024-04-20
Ivar G Flosi1009Brazil2024-04-13
Ivar R Caudy1010Argentina2024-04-20
Aruna U Foller1011Japan2024-04-14
Smith I Stockham1012Canada2024-04-20
Mayumi M Shinko1013India2024-04-11
Ashley S Amigon1014India2024-04-27
James R Flosi1015Brazil2024-04-26
Kadeem N Foller1016Italy2024-04-04
Claire Y Wieser1017Australia2024-04-06
Morrow Z Ruta1018Argentina2024-03-30
Darci N Oldroyd1019Canada2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood D RoysterAustraliaBernardo Dominic PROPOSAL
Jones K TollnerJapanOnyama Limba PROPOSAL
David W IturbideUnited KingdomBernardo Dominic NEGOTIATION
Rodrigues F CampainSpainAmy Elsner QUALIFIED
Isabel F SaylorsUnited KingdomOnyama Limba QUALIFIED
Smith W AmigonArgentinaAmy Elsner NEGOTIATION
Morrow R GauchoAustraliaIoni Bowcher QUALIFIED
Jones P AlbaresUnited KingdomElwin Sharvill QUALIFIED
Sinclair V GlickJapanXuxue Feng QUALIFIED
Maria O FollerArgentinaAmy Elsner PROPOSAL
Aruna N VenereIndiaAnna Fali UNQUALIFIED
Munro Q KolmetzSpainOnyama Limba NEW
Maria T RulapaughUnited KingdomAnna Fali RENEWAL
Antonio G GillianAustraliaBernardo Dominic NEGOTIATION
Deepesh S RulapaughSpainXuxue Feng PROPOSAL
Greenwood R PerinRussiaAmy Elsner NEGOTIATION
Wickens L FigeroaCanadaBernardo Dominic UNQUALIFIED
Ivar G FigeroaItalyIoni Bowcher PROPOSAL
Sinclair J WaycottFranceBernardo Dominic QUALIFIED
Izzy J IturbideUnited KingdomAsiya Javayant NEW
Misaki K BriddickBrazilXuxue Feng NEW
Salvatore E GarufiArgentinaIvan Magalhaes UNQUALIFIED
Arvin V AlbaresAustraliaXuxue Feng PROPOSAL
Octavia O SchemmerGermanyOnyama Limba NEW
Jeanfrancois G CampainUnited KingdomAsiya Javayant QUALIFIED
Adams E FigeroaAustraliaBernardo Dominic UNQUALIFIED
Rodrigues O OldroydJapanStephen Shaw RENEWAL
Antonio L PerinCanadaAmy Elsner QUALIFIED
Emily C WhobreyBrazilIoni Bowcher NEGOTIATION
Greenwood K OldroydItalyAmy Elsner RENEWAL
Aika R VenereAustraliaBernardo Dominic NEGOTIATION
Kadeem K AlbaresCanadaAmy Elsner QUALIFIED
Chavez R ShinkoIndiaBernardo Dominic NEW
Maisha J PaprockiIndiaStephen Shaw QUALIFIED
Nicolas T VocelkaFranceAnna Fali RENEWAL
Jeanfrancois P DilliardAustraliaXuxue Feng UNQUALIFIED
Aika S SaylorsJapanBernardo Dominic UNQUALIFIED
Ashley O KuskoCanadaElwin Sharvill NEW
Cody Y KolmetzRussiaAnna Fali QUALIFIED
Stacey B StockhamItalyIvan 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>