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
Claire J DarakjySpainBernardo Dominic NEW
Maria C RoysterBrazilIoni Bowcher NEGOTIATION
Adams D KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Emily G FerenczCanadaXuxue Feng UNQUALIFIED
Stacey F RimAustraliaAmy Elsner RENEWAL
Murillo Y ButtSpainIvan Magalhaes NEGOTIATION
Murillo B PoquetteArgentinaIoni Bowcher UNQUALIFIED
Jennifer A CaldareraRussiaBernardo Dominic NEGOTIATION
Julie A NestleBrazilBernardo Dominic UNQUALIFIED
Salvatore P RulapaughRussiaXuxue Feng NEW
Sinclair E CampainGermanyStephen Shaw NEGOTIATION
Leja Q FlosiCanadaAmy Elsner RENEWAL
Jennifer F ShinkoBrazilStephen Shaw RENEWAL
Aruna C RulapaughIndiaAmy Elsner NEW
Octavia D PerinFranceAnna Fali UNQUALIFIED
David S CaudyGermanyAsiya Javayant QUALIFIED
Leja G SergiArgentinaOnyama Limba NEGOTIATION
Jefferson G MaletRussiaAnna Fali NEW
Deepesh M AlbaresBrazilBernardo Dominic UNQUALIFIED
Adams O MaletArgentinaAsiya Javayant PROPOSAL
Greenwood Y RulapaughArgentinaAmy Elsner NEW
Tony P FlosiAustraliaIvan Magalhaes UNQUALIFIED
James J MorascaIndiaAnna Fali PROPOSAL
Ashley O KolmetzSpainIoni Bowcher NEGOTIATION
Adams E MacleadRussiaBernardo Dominic PROPOSAL
Nicolas G SaylorsRussiaAmy Elsner UNQUALIFIED
David S TollnerIndiaOnyama Limba NEGOTIATION
Ricardo Z ButtItalyAsiya Javayant PROPOSAL
Deepesh H CaldareraUnited KingdomAsiya Javayant QUALIFIED
Clifford W FigeroaIndiaAnna Fali NEGOTIATION
Tony Q ChuiArgentinaXuxue Feng UNQUALIFIED
Chavez V GarufiGermanyXuxue Feng UNQUALIFIED
Munro Y CaudyCanadaAnna Fali NEGOTIATION
Jones K RulapaughArgentinaIoni Bowcher QUALIFIED
Alejandro D BowleyCanadaAmy Elsner NEW
Faith S TollnerCanadaBernardo Dominic RENEWAL
Nicolas T MaletIndiaAnna Fali UNQUALIFIED
Jefferson Q FerenczItalyElwin Sharvill PROPOSAL
Mujtaba L DoeItalyAmy Elsner RENEWAL
Aditya B StockhamCanadaOnyama Limba NEGOTIATION
Chavez R KolmetzSpainOnyama Limba NEGOTIATION
Jones H SchemmerAustraliaAsiya Javayant UNQUALIFIED
Antonio Z WaycottArgentinaStephen Shaw QUALIFIED
Kaitlin O ChuiItalyAmy Elsner PROPOSAL
Juan I BologniaBrazilAsiya Javayant PROPOSAL
Morrow G TollnerArgentinaAsiya Javayant UNQUALIFIED
Aruna Q PerinGermanyStephen Shaw NEW
Tony X IturbideArgentinaOnyama Limba UNQUALIFIED
Ricardo K FollerUnited KingdomOnyama Limba NEGOTIATION
Ricardo P BowleyFranceIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues E ChuiIndiaStephen Shaw PROPOSAL
Rodrigues F VenereSpainElwin Sharvill NEGOTIATION
Jefferson S DarakjyFranceAsiya Javayant UNQUALIFIED
Munro Y MaletFranceIoni Bowcher NEW
Mujtaba T VocelkaBrazilAnna Fali PROPOSAL
Jones I RutaSpainAnna Fali PROPOSAL
Ivar P SergiJapanAmy Elsner NEW
Isabel R MaletIndiaBernardo Dominic UNQUALIFIED
Misaki J DoeRussiaAmy Elsner PROPOSAL
Francesco A ChuiRussiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika U SaylorsAustralia2024-03-21Feltz Printing Service UNQUALIFIED83Amy Elsner
1001Wickens L BriddickIndia2024-03-18Truhlar And Truhlar Attys UNQUALIFIED44Stephen Shaw
1002Cody P MaletAustralia2024-02-27Printing Dimensions RENEWAL43Ivan Magalhaes
1003Ivar J ShinkoCanada2024-03-27Feltz Printing Service NEGOTIATION59Ioni Bowcher
1004Aika S MarrierAustralia2024-03-05Printing Dimensions NEGOTIATION5Anna Fali
1005Alejandro E SchemmerUnited Kingdom2024-03-18Chanay, Jeffrey A Esq NEGOTIATION35Asiya Javayant
1006Salvatore L MarrierArgentina2024-03-19Feiner Bros QUALIFIED58Ioni Bowcher
1007James L FerenczAustralia2024-02-29King, Christopher A Esq NEGOTIATION94Bernardo Dominic
1008Costa Y PerinArgentina2024-03-05Feiner Bros QUALIFIED26Bernardo Dominic
1009Emily O FollerGermany2024-03-08Commercial Press UNQUALIFIED7Ioni Bowcher
1010Jefferson R BologniaRussia2024-03-21Rousseaux, Michael Esq QUALIFIED38Onyama Limba
1011Chavez E PerinAustralia2024-03-23Rangoni Of Florence RENEWAL74Bernardo Dominic
1012Costa E PaprockiCanada2024-03-22Morlong Associates QUALIFIED84Ivan Magalhaes
1013Izzy X BriddickArgentina2024-03-10Morlong Associates RENEWAL11Bernardo Dominic
1014Chavez F GlickRussia2024-02-29King, Christopher A Esq RENEWAL69Onyama Limba
1015Chavez R SaylorsArgentina2024-03-23Morlong Associates QUALIFIED96Amy Elsner
1016Ivar R RutaJapan2024-03-17Morlong Associates QUALIFIED19Amy Elsner
1017Maisha T FigeroaSpain2024-03-05Morlong Associates QUALIFIED45Xuxue Feng
1018Leon P GauchoArgentina2024-03-22Chapman, Ross E Esq UNQUALIFIED16Elwin Sharvill
1019Emily A SlusarskiFrance2024-03-03King, Christopher A Esq RENEWAL44Xuxue Feng
1020Aditya Y MorascaAustralia2024-03-18Buckley Miller Wright QUALIFIED15Onyama Limba
1021Mayumi M RimFrance2024-02-28King, Christopher A Esq PROPOSAL23Asiya Javayant
1022Faith Y TollnerSpain2024-03-11Commercial Press PROPOSAL13Elwin Sharvill
1023Nicolas B MacleadUnited Kingdom2024-03-02Truhlar And Truhlar Attys NEW56Ioni Bowcher
1024Wickens K GlickUnited Kingdom2024-03-05Chapman, Ross E Esq QUALIFIED43Ioni Bowcher
1025Wickens U GlickAustralia2024-02-29Rangoni Of Florence QUALIFIED76Asiya Javayant
1026Sinclair D InouyeUnited Kingdom2024-03-15Truhlar And Truhlar Attys RENEWAL49Ioni Bowcher
1027Jefferson L InouyeItaly2024-03-18Buckley Miller Wright NEGOTIATION20Stephen Shaw
1028Salvatore B CaudyCanada2024-03-17Chapman, Ross E Esq UNQUALIFIED92Stephen Shaw
1029Johnson J ShinkoArgentina2024-03-09Chanay, Jeffrey A Esq UNQUALIFIED15Stephen Shaw
1030Murillo V SaylorsItaly2024-03-06Morlong Associates UNQUALIFIED81Ivan Magalhaes
1031Smith G CampainAustralia2024-03-24Chapman, Ross E Esq RENEWAL31Onyama Limba
1032Leja L MorascaAustralia2024-03-17Chemel, James L Cpa NEGOTIATION23Ivan Magalhaes
1033Leja V KuskoCanada2024-03-05Chemel, James L Cpa RENEWAL99Elwin Sharvill
1034Aruna X PoquetteAustralia2024-03-13Feiner Bros NEGOTIATION72Anna Fali
1035Maria P SergiJapan2024-03-10Printing Dimensions RENEWAL15Amy Elsner
1036Johnson C RoysterBrazil2024-03-13Feltz Printing Service NEGOTIATION27Elwin Sharvill
1037Morrow P OldroydItaly2024-03-03Rangoni Of Florence PROPOSAL27Elwin Sharvill
1038Munro Z MarrierJapan2024-03-05Chapman, Ross E Esq NEW11Stephen Shaw
1039Ricardo G MacleadSpain2024-03-19Rousseaux, Michael Esq UNQUALIFIED40Elwin Sharvill
1040Smith D RutaItaly2024-03-03Chemel, James L Cpa NEGOTIATION83Stephen Shaw
1041Greenwood F VenereArgentina2024-03-16Morlong Associates NEW6Xuxue Feng
1042Emily L GarufiGermany2024-03-12Buckley Miller Wright UNQUALIFIED70Amy Elsner
1043Francesco M MacleadGermany2024-03-12Chanay, Jeffrey A Esq RENEWAL70Xuxue Feng
1044Antonio Y InouyeJapan2024-03-26Benton, John B Jr NEW50Amy Elsner
1045Costa F NestleFrance2024-03-25Chanay, Jeffrey A Esq UNQUALIFIED82Elwin Sharvill
1046Kadeem O SlusarskiArgentina2024-03-11Feiner Bros NEW66Ioni Bowcher
1047David W SlusarskiRussia2024-03-09King, Christopher A Esq NEGOTIATION72Ivan Magalhaes
1048Misaki N AlbaresRussia2024-03-10Morlong Associates PROPOSAL55Asiya Javayant
1049Rodrigues I GillianJapan2024-03-25Rangoni Of Florence NEGOTIATION48Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Munro Q SchemmerRussiaOnyama Limba NEGOTIATION
Claire G NestleFranceOnyama Limba RENEWAL
Kadeem Q DoeRussiaIvan Magalhaes RENEWAL
Tony D IturbideGermanyXuxue Feng UNQUALIFIED
Mayumi H PoquetteUnited KingdomElwin Sharvill RENEWAL
Emily W BologniaGermanyIvan Magalhaes PROPOSAL
Johnson S FigeroaAustraliaAsiya Javayant UNQUALIFIED
Alejandro M DarakjyRussiaXuxue Feng QUALIFIED
Jennifer C OstroskyJapanOnyama Limba NEW
Morrow Z PerinAustraliaIoni Bowcher QUALIFIED
Claire Y SchemmerCanadaStephen Shaw NEGOTIATION
Octavia C GillianItalyBernardo Dominic NEW
Aika Y AlbaresItalyOnyama Limba UNQUALIFIED
David R MarrierBrazilXuxue Feng NEW
Ashley G InouyeArgentinaOnyama Limba UNQUALIFIED
Jefferson O WhobreyIndiaElwin Sharvill UNQUALIFIED
Morrow M FigeroaArgentinaIoni Bowcher NEW
Octavia K WieserIndiaBernardo Dominic NEW
Faith K ButtBrazilBernardo Dominic UNQUALIFIED
Kadeem Q DilliardIndiaAnna Fali UNQUALIFIED
Silvio B StensethArgentinaIvan Magalhaes RENEWAL
David R MaletGermanyBernardo Dominic RENEWAL
Leon H FollerJapanIvan Magalhaes NEGOTIATION
Smith H OstroskyItalyIoni Bowcher NEGOTIATION
Ashley Y SaylorsBrazilAnna Fali PROPOSAL
Maisha E FigeroaArgentinaBernardo Dominic NEW
Aika E CaldareraUnited KingdomXuxue Feng NEW
Leja R VenereCanadaAsiya Javayant UNQUALIFIED
Wickens M DarakjyItalyAsiya Javayant UNQUALIFIED
Sinclair C KolmetzSpainXuxue Feng RENEWAL
Morrow Q PerinAustraliaElwin Sharvill UNQUALIFIED
Ricardo K StensethUnited KingdomAmy Elsner NEW
Smith C KolmetzSpainAsiya Javayant PROPOSAL
Kadeem K DarakjySpainElwin Sharvill UNQUALIFIED
Rodrigues P CaudyCanadaAnna Fali PROPOSAL
Ricardo A ButtCanadaAsiya Javayant NEGOTIATION
Faith I GillianItalyBernardo Dominic NEW
Silvio J ShinkoAustraliaAmy Elsner NEGOTIATION
Leja P RulapaughJapanAmy Elsner NEGOTIATION
Deepesh S StockhamGermanyAsiya Javayant RENEWAL
Faith N AlbaresSpainElwin Sharvill QUALIFIED
Sinclair V CaudyBrazilBernardo Dominic NEW
Mujtaba L MarrierJapanElwin Sharvill UNQUALIFIED
Greenwood C RimFranceXuxue Feng PROPOSAL
James K RimAustraliaAsiya Javayant NEGOTIATION
Ivar A BologniaArgentinaOnyama Limba UNQUALIFIED
Julie M RulapaughIndiaBernardo Dominic UNQUALIFIED
Faith H PoquetteItalyIvan Magalhaes PROPOSAL
Jefferson Q SaylorsBrazilStephen Shaw NEGOTIATION
Cody I RutaSpainOnyama Limba NEGOTIATION
Frozen Columns
Name
Maria D Shinko
Clifford O Perin
Wickens F Amigon
Antonio Q Morasca
Leja F Marrier
Deepesh J Nicka
Maria Z Amigon
Alejandro P Poquette
Faith K Oldroyd
Juan O Dilliard
Juan W Flosi
Leon J Sergi
Juan D Waycott
Stacey I Oldroyd
David K Saylors
Kaitlin H Gillian
Antonio J Bowley
Jennifer V Shinko
Jefferson Z Stockham
Alejandro V Kusko
David W Briddick
Isabel Q Albares
Munro C Malet
Johnson Z Bolognia
Leja V Campain
Ashley H Waycott
Nicolas U Royster
Juan W Chui
Rodrigues Q Ferencz
Silvio O Bowley
Aruna F Saylors
Kaitlin O Schemmer
James Q Venere
Cody N Kusko
Misaki P Butt
Octavia O Stenseth
Emily E Gillian
Kaitlin K Maclead
David A Glick
Antonio H Stenseth
Greenwood P Chui
Faith M Nicka
Morrow M Chui
Jones O Bolognia
Emily U Foller
Salvatore E Sergi
Juan I Oldroyd
Isabel C Figeroa
Maisha J Tollner
Antonio Q Dilliard
IdCountryDate
1000Argentina2024-03-25
1001India2024-03-06
1002Russia2024-02-27
1003United Kingdom2024-03-04
1004Argentina2024-03-14
1005Germany2024-03-18
1006Germany2024-03-02
1007Brazil2024-03-03
1008France2024-02-27
1009Japan2024-03-04
1010Spain2024-03-24
1011Russia2024-03-17
1012Germany2024-03-06
1013Russia2024-03-13
1014Canada2024-03-16
1015Japan2024-03-24
1016France2024-03-09
1017Spain2024-03-06
1018Canada2024-03-02
1019Germany2024-03-14
1020India2024-03-10
1021United Kingdom2024-03-18
1022France2024-03-23
1023Brazil2024-03-01
1024Italy2024-03-17
1025Italy2024-03-15
1026India2024-03-11
1027Spain2024-02-27
1028Spain2024-03-16
1029Russia2024-03-14
1030Brazil2024-03-04
1031Japan2024-03-21
1032Russia2024-03-16
1033France2024-03-14
1034Spain2024-03-22
1035Japan2024-03-23
1036Spain2024-03-04
1037France2024-03-13
1038Germany2024-03-17
1039Canada2024-03-06
1040Italy2024-03-10
1041Japan2024-03-19
1042Canada2024-03-09
1043India2024-03-03
1044Japan2024-03-21
1045India2024-03-12
1046Russia2024-03-19
1047India2024-03-12
1048United Kingdom2024-03-18
1049Spain2024-03-12

On-Demand Data

NameIdCountryDate
Johnson K Whobrey1000Brazil2024-03-15
Stacey T Saylors1001Argentina2024-03-15
Mayumi U Marrier1002Russia2024-03-26
Misaki J Flosi1003Russia2024-03-26
Antonio R Maclead1004Argentina2024-03-17
Morrow R Stockham1005Spain2024-03-05
Maria Y Ostrosky1006Argentina2024-03-27
Claire G Tollner1007Spain2024-03-02
Jefferson P Maclead1008Russia2024-03-14
Aditya C Rulapaugh1009Brazil2024-03-11
Kadeem U Oldroyd1010Brazil2024-02-27
Maria U Royster1011Italy2024-03-06
Maria P Marrier1012India2024-03-20
Smith V Oldroyd1013Italy2024-03-17
Kaitlin Q Figeroa1014Spain2024-03-24
Kaitlin B Malet1015Canada2024-03-08
Johnson K Marrier1016India2024-03-02
David V Sergi1017Canada2024-03-16
Clifford W Slusarski1018India2024-03-22
Arvin S Malet1019Italy2024-03-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily E RutaIndiaXuxue Feng NEW
Juan W WieserUnited KingdomBernardo Dominic NEGOTIATION
James V PaprockiSpainElwin Sharvill UNQUALIFIED
Jones N GarufiFranceAmy Elsner UNQUALIFIED
Smith W PaprockiIndiaBernardo Dominic NEGOTIATION
Salvatore Q DoeUnited KingdomOnyama Limba QUALIFIED
Maria Q MaletBrazilStephen Shaw QUALIFIED
Alejandro P FollerCanadaXuxue Feng PROPOSAL
Emily M FigeroaUnited KingdomIvan Magalhaes RENEWAL
Kadeem U VenereArgentinaOnyama Limba NEGOTIATION
Ricardo D ChuiBrazilIvan Magalhaes NEW
Kadeem P WaycottRussiaAsiya Javayant NEW
Munro Z CaldareraAustraliaIvan Magalhaes NEW
Juan M ChuiFranceIoni Bowcher UNQUALIFIED
Costa U WhobreyBrazilAnna Fali UNQUALIFIED
Greenwood D MaletFranceStephen Shaw NEGOTIATION
Julie L CampainBrazilAsiya Javayant NEW
Jones D MaletJapanOnyama Limba RENEWAL
Wickens I RulapaughBrazilXuxue Feng RENEWAL
James P BowleyIndiaXuxue Feng RENEWAL
Silvio U InouyeRussiaOnyama Limba UNQUALIFIED
Nicolas O SchemmerSpainIvan Magalhaes QUALIFIED
Sinclair X VocelkaFranceStephen Shaw NEGOTIATION
Ashley Q BologniaSpainAmy Elsner QUALIFIED
Kaitlin P CaudyRussiaStephen Shaw QUALIFIED
Tony R BriddickGermanyIoni Bowcher RENEWAL
Ashley Q RulapaughIndiaStephen Shaw QUALIFIED
Claire S VenereRussiaAnna Fali UNQUALIFIED
Misaki R VenereRussiaStephen Shaw QUALIFIED
Silvio K PaprockiGermanyStephen Shaw RENEWAL
Emily A WaycottArgentinaIoni Bowcher UNQUALIFIED
Kaitlin N SaylorsArgentinaOnyama Limba UNQUALIFIED
Adams R WaycottIndiaStephen Shaw NEGOTIATION
Jones K AmigonFranceAsiya Javayant UNQUALIFIED
Silvio Y PaprockiCanadaIvan Magalhaes QUALIFIED
Aruna S StockhamSpainAsiya Javayant NEW
Morrow R RulapaughFranceStephen Shaw UNQUALIFIED
Arvin S OldroydRussiaBernardo Dominic PROPOSAL
Emily Q SaylorsIndiaBernardo Dominic UNQUALIFIED
Izzy V InouyeBrazilAsiya Javayant RENEWAL

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