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
Arvin W TollnerJapanAnna Fali QUALIFIED
Jefferson C FigeroaIndiaAnna Fali NEGOTIATION
Chavez K PoquetteAustraliaAsiya Javayant RENEWAL
Jennifer D PerinJapanAnna Fali RENEWAL
Alejandro A OstroskyCanadaBernardo Dominic NEW
Salvatore P SchemmerAustraliaIoni Bowcher NEGOTIATION
Kadeem E MorascaSpainAnna Fali RENEWAL
Kadeem Y RutaJapanAsiya Javayant UNQUALIFIED
Aika G TollnerCanadaAmy Elsner NEGOTIATION
Misaki Z CaldareraAustraliaXuxue Feng RENEWAL
Jennifer Y MacleadIndiaAmy Elsner RENEWAL
Wickens G SaylorsIndiaIoni Bowcher NEGOTIATION
Nicolas F RutaAustraliaElwin Sharvill RENEWAL
Octavia H FigeroaFranceElwin Sharvill UNQUALIFIED
Juan V WaycottUnited KingdomXuxue Feng QUALIFIED
Maisha Y FlosiBrazilStephen Shaw NEW
Murillo S PerinUnited KingdomElwin Sharvill UNQUALIFIED
Murillo Q CampainAustraliaBernardo Dominic UNQUALIFIED
Maria H FerenczGermanyIvan Magalhaes NEGOTIATION
Emily K GlickGermanyBernardo Dominic PROPOSAL
Isabel Q CaldareraSpainAsiya Javayant UNQUALIFIED
Adams N MaletItalyXuxue Feng PROPOSAL
Arvin H RulapaughAustraliaOnyama Limba NEGOTIATION
Ashley A IturbideFranceAmy Elsner PROPOSAL
Greenwood C RimJapanOnyama Limba NEW
Chavez C CaldareraFranceAmy Elsner UNQUALIFIED
Tony W TollnerArgentinaAnna Fali UNQUALIFIED
Morrow V GillianCanadaXuxue Feng PROPOSAL
Antonio R TollnerUnited KingdomXuxue Feng NEGOTIATION
Aditya D MorascaRussiaElwin Sharvill QUALIFIED
Aika B MorascaArgentinaBernardo Dominic QUALIFIED
Rodrigues T DoeUnited KingdomBernardo Dominic NEGOTIATION
Julie H WaycottAustraliaAmy Elsner NEW
Arvin O MaletSpainIoni Bowcher NEW
Cody W ChuiItalyAnna Fali UNQUALIFIED
Morrow R RimAustraliaXuxue Feng PROPOSAL
Munro O SchemmerJapanIoni Bowcher NEGOTIATION
Chavez G MorascaIndiaAsiya Javayant UNQUALIFIED
Claire S AmigonItalyAmy Elsner QUALIFIED
Aruna O DilliardSpainIoni Bowcher UNQUALIFIED
Smith L MaletItalyIoni Bowcher RENEWAL
David T MacleadFranceXuxue Feng UNQUALIFIED
Nicolas Z WaycottFranceStephen Shaw NEW
Aika I OldroydArgentinaXuxue Feng PROPOSAL
Munro D SchemmerSpainXuxue Feng RENEWAL
Ivar Y WieserAustraliaAmy Elsner NEW
Emily B GauchoFranceXuxue Feng UNQUALIFIED
Alejandro H MaletCanadaIvan Magalhaes NEW
Greenwood O PoquetteBrazilBernardo Dominic RENEWAL
Smith I GillianItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Julie F IturbideCanadaBernardo Dominic RENEWAL
Johnson B PerinCanadaStephen Shaw RENEWAL
Maisha F GarufiArgentinaAsiya Javayant NEW
Leja X ButtAustraliaBernardo Dominic RENEWAL
Clifford W FollerSpainAsiya Javayant PROPOSAL
Darci R GarufiJapanXuxue Feng QUALIFIED
Chavez T PaprockiSpainAmy Elsner QUALIFIED
Rodrigues N GlickFranceIoni Bowcher PROPOSAL
Clifford T MaletUnited KingdomAsiya Javayant RENEWAL
David Z VenereJapanAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro Z OldroydCanada2024-04-21Buckley Miller Wright QUALIFIED22Xuxue Feng
1001Izzy P FollerSpain2024-04-10Buckley Miller Wright QUALIFIED48Ivan Magalhaes
1002Antonio B MaletArgentina2024-04-21Chanay, Jeffrey A Esq NEW41Amy Elsner
1003Kaitlin L BowleyJapan2024-04-05Chapman, Ross E Esq RENEWAL23Bernardo Dominic
1004Deepesh Z RoysterItaly2024-04-16Truhlar And Truhlar Attys PROPOSAL77Anna Fali
1005Johnson X DarakjyAustralia2024-04-29King, Christopher A Esq RENEWAL20Elwin Sharvill
1006Wickens K FollerSpain2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED37Onyama Limba
1007Aruna Z DilliardCanada2024-04-27Rangoni Of Florence RENEWAL62Ioni Bowcher
1008Kaitlin U CaudyBrazil2024-04-20Morlong Associates PROPOSAL30Amy Elsner
1009Faith J PerinCanada2024-04-12Truhlar And Truhlar Attys RENEWAL44Bernardo Dominic
1010Maria N MaletCanada2024-04-10Truhlar And Truhlar Attys QUALIFIED51Elwin Sharvill
1011Alejandro C AmigonJapan2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED58Stephen Shaw
1012Leja F KuskoSpain2024-04-24Feiner Bros PROPOSAL95Onyama Limba
1013Jones U ShinkoJapan2024-04-29Chanay, Jeffrey A Esq QUALIFIED4Xuxue Feng
1014Jefferson K MorascaIndia2024-04-15Commercial Press UNQUALIFIED34Bernardo Dominic
1015Cody Y KuskoBrazil2024-04-17Buckley Miller Wright RENEWAL71Onyama Limba
1016Arvin B SaylorsArgentina2024-04-16Truhlar And Truhlar Attys UNQUALIFIED60Ioni Bowcher
1017Jones T InouyeCanada2024-04-20Rangoni Of Florence RENEWAL41Stephen Shaw
1018Aika S IturbideArgentina2024-04-17Feltz Printing Service NEGOTIATION20Stephen Shaw
1019Smith D GlickAustralia2024-04-28Feltz Printing Service RENEWAL55Amy Elsner
1020Deepesh B SchemmerAustralia2024-04-16Commercial Press RENEWAL3Anna Fali
1021Leja U NickaAustralia2024-04-11Rangoni Of Florence PROPOSAL62Xuxue Feng
1022Johnson U BriddickRussia2024-04-05Morlong Associates NEGOTIATION80Xuxue Feng
1023Tony S AlbaresSpain2024-04-24Feltz Printing Service NEGOTIATION85Bernardo Dominic
1024Clifford N VocelkaCanada2024-04-03Commercial Press UNQUALIFIED83Amy Elsner
1025Cody F CampainSpain2024-04-02Rangoni Of Florence QUALIFIED59Ioni Bowcher
1026Maria B WieserAustralia2024-04-15Commercial Press UNQUALIFIED93Bernardo Dominic
1027Maisha G OstroskyGermany2024-04-17Feltz Printing Service QUALIFIED83Onyama Limba
1028Clifford T ShinkoIndia2024-04-28Printing Dimensions NEGOTIATION58Ivan Magalhaes
1029Jennifer W BriddickFrance2024-04-12Benton, John B Jr PROPOSAL63Ioni Bowcher
1030Johnson L VenereUnited Kingdom2024-04-03Chapman, Ross E Esq NEW23Onyama Limba
1031Kaitlin J BologniaItaly2024-04-26Feltz Printing Service NEGOTIATION66Amy Elsner
1032Stacey N ChuiIndia2024-04-03Rangoni Of Florence QUALIFIED77Ivan Magalhaes
1033Antonio X AlbaresSpain2024-04-11Chemel, James L Cpa NEW22Amy Elsner
1034Aditya S BologniaRussia2024-04-24Rangoni Of Florence NEGOTIATION54Xuxue Feng
1035Salvatore H StensethIndia2024-04-17Printing Dimensions QUALIFIED26Ivan Magalhaes
1036David L BriddickItaly2024-04-23King, Christopher A Esq NEW47Anna Fali
1037Jennifer S BologniaSpain2024-04-15Rousseaux, Michael Esq PROPOSAL94Amy Elsner
1038Maria U MorascaCanada2024-04-01Feltz Printing Service NEGOTIATION46Ioni Bowcher
1039Antonio T ShinkoRussia2024-04-14Feiner Bros RENEWAL19Xuxue Feng
1040David J MorascaFrance2024-04-13Buckley Miller Wright QUALIFIED55Asiya Javayant
1041Octavia Q StockhamAustralia2024-04-20Feiner Bros UNQUALIFIED46Onyama Limba
1042Ricardo A ShinkoArgentina2024-04-09Buckley Miller Wright NEGOTIATION54Anna Fali
1043Misaki S OstroskyAustralia2024-04-05Chemel, James L Cpa NEW59Ioni Bowcher
1044Izzy H MarrierUnited Kingdom2024-04-15Chapman, Ross E Esq QUALIFIED62Asiya Javayant
1045Mayumi R AlbaresCanada2024-04-28Printing Dimensions QUALIFIED41Ivan Magalhaes
1046Emily T BowleyIndia2024-04-25Chemel, James L Cpa UNQUALIFIED17Onyama Limba
1047Claire L NickaIndia2024-04-05Morlong Associates QUALIFIED24Ivan Magalhaes
1048Deepesh M AlbaresBrazil2024-04-29Rousseaux, Michael Esq PROPOSAL95Xuxue Feng
1049Emily D CampainAustralia2024-04-13Buckley Miller Wright RENEWAL54Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair J VocelkaFranceOnyama Limba NEGOTIATION
Munro G BriddickAustraliaElwin Sharvill NEW
Wickens J GlickAustraliaIoni Bowcher PROPOSAL
Izzy K PoquetteArgentinaStephen Shaw PROPOSAL
Faith D TollnerSpainXuxue Feng UNQUALIFIED
Francesco Z FlosiRussiaAnna Fali RENEWAL
Aditya F MaletArgentinaElwin Sharvill PROPOSAL
Mujtaba L StensethRussiaStephen Shaw UNQUALIFIED
Ricardo H BriddickIndiaBernardo Dominic PROPOSAL
Aditya S GillianArgentinaElwin Sharvill QUALIFIED
Silvio B CaudyItalyAsiya Javayant NEGOTIATION
Octavia L RulapaughItalyBernardo Dominic NEGOTIATION
Claire X InouyeBrazilAnna Fali UNQUALIFIED
Faith G MarrierCanadaAmy Elsner QUALIFIED
Mayumi J SaylorsItalyIoni Bowcher NEW
Misaki U ButtIndiaIvan Magalhaes QUALIFIED
Silvio C AmigonItalyAsiya Javayant PROPOSAL
James U MaletItalyStephen Shaw NEGOTIATION
Ashley O SchemmerJapanAmy Elsner UNQUALIFIED
Chavez Y FerenczRussiaAnna Fali NEGOTIATION
Arvin G BowleyGermanyBernardo Dominic PROPOSAL
Aditya C OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem X DarakjyIndiaIvan Magalhaes PROPOSAL
Salvatore Y FigeroaArgentinaIvan Magalhaes RENEWAL
Nicolas E CaldareraCanadaAnna Fali PROPOSAL
Aruna S IturbideArgentinaElwin Sharvill NEGOTIATION
Chavez E ChuiBrazilIvan Magalhaes PROPOSAL
Misaki F MaletBrazilIoni Bowcher RENEWAL
Kaitlin P DilliardBrazilIoni Bowcher PROPOSAL
Ashley W SaylorsRussiaAnna Fali QUALIFIED
Julie T FlosiIndiaElwin Sharvill RENEWAL
Darci O MorascaAustraliaIoni Bowcher RENEWAL
Leja L ChuiItalyIvan Magalhaes NEW
Munro P ButtJapanOnyama Limba RENEWAL
Morrow A IturbideCanadaIvan Magalhaes QUALIFIED
Emily Y PerinItalyIoni Bowcher UNQUALIFIED
Jeanfrancois R ChuiItalyIoni Bowcher QUALIFIED
James M KolmetzBrazilXuxue Feng UNQUALIFIED
David T OstroskyAustraliaStephen Shaw NEW
Misaki O CaldareraIndiaAmy Elsner UNQUALIFIED
Morrow B WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Maisha L CaldareraBrazilElwin Sharvill NEGOTIATION
Tony V GauchoCanadaIoni Bowcher QUALIFIED
Antonio P GlickSpainStephen Shaw PROPOSAL
Mujtaba E GlickSpainIvan Magalhaes NEGOTIATION
Isabel R WhobreySpainIvan Magalhaes QUALIFIED
Kaitlin F RoysterGermanyElwin Sharvill NEW
Maisha M InouyeCanadaAmy Elsner NEGOTIATION
Izzy M SlusarskiAustraliaIvan Magalhaes NEW
Smith O GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Misaki U Royster
Rodrigues Y Glick
Ivar T Kolmetz
Clifford M Royster
James B Royster
Octavia F Briddick
Alejandro O Tollner
Antonio D Chui
Maria N Bowley
Rodrigues F Iturbide
Sinclair C Stockham
Mayumi A Venere
Greenwood W Ostrosky
Izzy G Bolognia
Aika O Nicka
Leja T Flosi
Juan Z Bolognia
Jefferson E Royster
Claire Z Gaucho
Claire X Campain
Sinclair D Rim
David F Butt
Adams E Doe
Sinclair B Doe
Octavia T Foller
Izzy M Garufi
Juan V Briddick
Leja B Albares
Antonio U Slusarski
Julie U Figeroa
Mujtaba E Figeroa
Costa S Briddick
Antonio R Nicka
Francesco Q Maclead
Tony J Darakjy
Maisha J Kolmetz
Aditya J Figeroa
Izzy Z Poquette
Izzy B Tollner
Faith P Gaucho
Maria W Flosi
Isabel Z Glick
Jones Z Saylors
Ricardo W Bowley
Aditya J Ferencz
Ricardo J Shinko
Munro U Foller
Maisha Q Campain
Nicolas G Kusko
Kadeem Q Royster
IdCountryDate
1000Brazil2024-04-09
1001Brazil2024-04-01
1002Brazil2024-04-06
1003Australia2024-04-22
1004United Kingdom2024-04-29
1005Canada2024-04-05
1006Argentina2024-04-20
1007Argentina2024-04-12
1008Brazil2024-04-29
1009Germany2024-04-25
1010Australia2024-04-21
1011France2024-04-28
1012Russia2024-04-15
1013Canada2024-04-28
1014Argentina2024-04-21
1015India2024-04-06
1016United Kingdom2024-04-01
1017Japan2024-04-30
1018France2024-04-19
1019United Kingdom2024-04-03
1020Japan2024-04-29
1021Canada2024-04-26
1022Italy2024-04-19
1023United Kingdom2024-04-13
1024Russia2024-04-22
1025Germany2024-04-17
1026Russia2024-04-18
1027Germany2024-04-27
1028Spain2024-04-07
1029United Kingdom2024-04-16
1030Brazil2024-04-08
1031Canada2024-04-06
1032Spain2024-04-01
1033Germany2024-04-08
1034Brazil2024-04-28
1035Japan2024-04-13
1036France2024-04-14
1037France2024-04-14
1038France2024-04-09
1039France2024-04-17
1040United Kingdom2024-04-21
1041United Kingdom2024-04-10
1042Brazil2024-04-30
1043France2024-04-15
1044Canada2024-04-16
1045Spain2024-04-11
1046India2024-04-29
1047India2024-04-28
1048Brazil2024-04-15
1049Russia2024-04-22

On-Demand Data

NameIdCountryDate
Leja W Marrier1000Spain2024-04-25
Salvatore F Schemmer1001Italy2024-04-10
Chavez N Poquette1002Italy2024-04-17
Chavez Y Slusarski1003Russia2024-04-30
Ricardo T Inouye1004Brazil2024-04-09
Misaki L Garufi1005France2024-04-20
Francesco I Tollner1006Italy2024-04-09
Clifford N Ostrosky1007Spain2024-04-28
Jefferson V Saylors1008United Kingdom2024-04-26
Arvin N Stockham1009India2024-04-06
Mujtaba M Doe1010Brazil2024-04-15
Mujtaba K Malet1011Germany2024-04-19
Salvatore E Campain1012Germany2024-04-09
Tony J Venere1013France2024-04-06
Nicolas D Kolmetz1014United Kingdom2024-04-02
Ashley O Slusarski1015France2024-04-04
Izzy A Saylors1016Australia2024-04-30
Morrow S Royster1017Spain2024-04-18
Smith A Ostrosky1018Germany2024-04-16
Mujtaba Z Ferencz1019Spain2024-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya R NestleArgentinaAsiya Javayant RENEWAL
Jeanfrancois W FigeroaIndiaElwin Sharvill QUALIFIED
Murillo H OldroydIndiaStephen Shaw QUALIFIED
Stacey V BologniaIndiaAnna Fali RENEWAL
Murillo P TollnerAustraliaXuxue Feng RENEWAL
Tony W WhobreySpainAsiya Javayant NEW
Aruna O RimJapanIvan Magalhaes PROPOSAL
Octavia S PaprockiCanadaStephen Shaw RENEWAL
Smith R DoeFranceAnna Fali NEW
Mujtaba R RutaUnited KingdomStephen Shaw RENEWAL
Misaki F CampainSpainElwin Sharvill RENEWAL
Rodrigues C FlosiAustraliaAsiya Javayant NEW
Cody X NestleSpainOnyama Limba NEGOTIATION
Deepesh W KuskoIndiaBernardo Dominic NEGOTIATION
Chavez Z BriddickIndiaAnna Fali RENEWAL
Leja U OstroskyGermanyXuxue Feng RENEWAL
Costa H NickaItalyElwin Sharvill RENEWAL
Clifford T DilliardGermanyStephen Shaw PROPOSAL
Jefferson T GauchoBrazilOnyama Limba NEW
Jennifer T AmigonArgentinaAnna Fali RENEWAL
Costa M CaldareraRussiaAsiya Javayant UNQUALIFIED
Clifford D PaprockiItalyAmy Elsner RENEWAL
Nicolas Z DilliardIndiaIvan Magalhaes QUALIFIED
Jeanfrancois J WaycottItalyAsiya Javayant NEW
Ivar S VocelkaFranceBernardo Dominic NEW
Greenwood U MaletUnited KingdomOnyama Limba NEGOTIATION
Leja H SlusarskiRussiaXuxue Feng NEGOTIATION
Nicolas G KuskoItalyAmy Elsner RENEWAL
Silvio N AmigonUnited KingdomElwin Sharvill NEGOTIATION
Faith V RutaBrazilXuxue Feng NEGOTIATION
James Y BologniaSpainBernardo Dominic PROPOSAL
Izzy P MorascaArgentinaIoni Bowcher RENEWAL
Adams F MaletArgentinaAnna Fali NEGOTIATION
Cody L SchemmerBrazilBernardo Dominic PROPOSAL
Ricardo V SaylorsJapanIvan Magalhaes NEGOTIATION
Jeanfrancois O CampainIndiaAnna Fali NEW
Ashley X RulapaughAustraliaStephen Shaw RENEWAL
Jefferson E MaletGermanyIvan Magalhaes NEW
Costa J PaprockiCanadaXuxue Feng UNQUALIFIED
Maisha G OstroskyGermanyAmy Elsner PROPOSAL

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