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
Jennifer Z RoysterUnited KingdomAnna Fali NEGOTIATION
Chavez H RutaCanadaAmy Elsner QUALIFIED
Aditya F InouyeFranceAsiya Javayant UNQUALIFIED
Maria Z AmigonArgentinaBernardo Dominic NEGOTIATION
Jones I WhobreyAustraliaAnna Fali UNQUALIFIED
Greenwood K ButtJapanIoni Bowcher QUALIFIED
Francesco C InouyeItalyOnyama Limba NEGOTIATION
Jefferson X WieserItalyElwin Sharvill PROPOSAL
Chavez L GillianRussiaAmy Elsner UNQUALIFIED
Isabel I PaprockiAustraliaStephen Shaw PROPOSAL
Jefferson X SaylorsRussiaOnyama Limba NEGOTIATION
Maisha K KuskoCanadaAsiya Javayant UNQUALIFIED
Claire D OldroydAustraliaAmy Elsner UNQUALIFIED
Nicolas J DoeIndiaElwin Sharvill QUALIFIED
Morrow E WhobreyArgentinaIvan Magalhaes NEGOTIATION
Emily R SergiAustraliaXuxue Feng NEGOTIATION
Aruna B DarakjyArgentinaXuxue Feng NEGOTIATION
Nicolas N MarrierCanadaAnna Fali PROPOSAL
Chavez C CampainAustraliaStephen Shaw PROPOSAL
Tony I PaprockiFranceBernardo Dominic NEGOTIATION
Nicolas T StockhamBrazilStephen Shaw PROPOSAL
Jennifer H VocelkaItalyElwin Sharvill NEW
Ricardo E GarufiSpainElwin Sharvill NEGOTIATION
Faith F SergiItalyAsiya Javayant QUALIFIED
Octavia O FlosiBrazilIvan Magalhaes RENEWAL
Juan H MacleadItalyXuxue Feng PROPOSAL
Jefferson F CaudySpainAmy Elsner RENEWAL
David X StensethArgentinaAnna Fali PROPOSAL
Faith Y AlbaresIndiaBernardo Dominic PROPOSAL
James D OstroskyBrazilIoni Bowcher QUALIFIED
Cody B MorascaFranceAsiya Javayant QUALIFIED
Sinclair H PaprockiJapanXuxue Feng RENEWAL
Claire G FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Cody Z CaudyFranceIvan Magalhaes UNQUALIFIED
Greenwood C MacleadAustraliaAmy Elsner NEW
Aruna Q BowleyUnited KingdomOnyama Limba PROPOSAL
Aditya L GarufiRussiaXuxue Feng NEW
Isabel P AmigonGermanyIvan Magalhaes QUALIFIED
Antonio J GarufiAustraliaIoni Bowcher UNQUALIFIED
Greenwood X RimUnited KingdomAsiya Javayant UNQUALIFIED
Silvio J SlusarskiFranceIoni Bowcher UNQUALIFIED
Salvatore Y BriddickGermanyStephen Shaw NEW
Nicolas I IturbideUnited KingdomIoni Bowcher RENEWAL
Clifford T AlbaresCanadaIvan Magalhaes QUALIFIED
Aruna P SaylorsItalyOnyama Limba UNQUALIFIED
Wickens F OstroskyIndiaIoni Bowcher NEW
Ricardo V RimFranceIvan Magalhaes QUALIFIED
Mujtaba D GauchoIndiaBernardo Dominic PROPOSAL
Maria N NickaAustraliaAmy Elsner NEW
Cody L BriddickGermanyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha R ShinkoBrazilXuxue Feng QUALIFIED
Faith E ShinkoIndiaBernardo Dominic UNQUALIFIED
Kadeem R OldroydSpainAsiya Javayant UNQUALIFIED
David L GlickArgentinaAnna Fali RENEWAL
Mujtaba G MaletJapanElwin Sharvill NEW
Maria L RoysterArgentinaAmy Elsner NEGOTIATION
Kadeem Z VenereUnited KingdomAnna Fali UNQUALIFIED
Mujtaba N RoysterGermanyOnyama Limba NEW
Maisha S GlickFranceElwin Sharvill PROPOSAL
Kadeem G CaudyArgentinaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams P SaylorsBrazil2024-04-16King, Christopher A Esq UNQUALIFIED41Ivan Magalhaes
1001Sinclair X GarufiArgentina2024-03-30Rangoni Of Florence QUALIFIED80Anna Fali
1002Wickens L DarakjyArgentina2024-04-23Commercial Press NEGOTIATION72Elwin Sharvill
1003Murillo M VenereArgentina2024-04-09Truhlar And Truhlar Attys UNQUALIFIED3Asiya Javayant
1004Octavia G SchemmerItaly2024-04-08Morlong Associates PROPOSAL26Asiya Javayant
1005Kadeem G RutaCanada2024-04-17Truhlar And Truhlar Attys NEW39Asiya Javayant
1006Sinclair P FerenczAustralia2024-04-11Feiner Bros PROPOSAL79Stephen Shaw
1007Smith T BriddickBrazil2024-04-03Commercial Press RENEWAL68Elwin Sharvill
1008Antonio M OldroydJapan2024-04-03Feltz Printing Service PROPOSAL53Amy Elsner
1009Jones P GillianFrance2024-04-09Dorl, James J Esq UNQUALIFIED20Xuxue Feng
1010Chavez E VocelkaBrazil2024-04-20Chanay, Jeffrey A Esq QUALIFIED53Onyama Limba
1011Faith U BowleySpain2024-04-11Dorl, James J Esq PROPOSAL18Elwin Sharvill
1012Francesco W PaprockiUnited Kingdom2024-03-27Benton, John B Jr UNQUALIFIED96Elwin Sharvill
1013James R GarufiBrazil2024-04-02Chanay, Jeffrey A Esq RENEWAL16Anna Fali
1014Tony Q IturbideItaly2024-04-20Chemel, James L Cpa UNQUALIFIED29Onyama Limba
1015Maria X FlosiArgentina2024-04-06Chemel, James L Cpa NEGOTIATION51Amy Elsner
1016Ivar X MorascaAustralia2024-04-22Truhlar And Truhlar Attys RENEWAL1Ioni Bowcher
1017Silvio M FlosiBrazil2024-04-01Benton, John B Jr PROPOSAL11Xuxue Feng
1018Antonio J OstroskyRussia2024-04-02King, Christopher A Esq NEGOTIATION29Elwin Sharvill
1019Jefferson U StensethFrance2024-04-16Truhlar And Truhlar Attys PROPOSAL45Stephen Shaw
1020Julie Q RulapaughIndia2024-04-17Chapman, Ross E Esq PROPOSAL50Xuxue Feng
1021Ivar F StensethGermany2024-04-11Benton, John B Jr NEW34Bernardo Dominic
1022Juan K DarakjyArgentina2024-03-29Chapman, Ross E Esq RENEWAL61Xuxue Feng
1023Silvio H StensethCanada2024-04-12Morlong Associates PROPOSAL78Bernardo Dominic
1024Ivar I IturbideItaly2024-04-18Printing Dimensions UNQUALIFIED89Stephen Shaw
1025Morrow W FigeroaGermany2024-04-03Chanay, Jeffrey A Esq QUALIFIED70Ioni Bowcher
1026Chavez R FlosiGermany2024-04-18Benton, John B Jr RENEWAL2Xuxue Feng
1027Jefferson X CaldareraBrazil2024-04-18Chapman, Ross E Esq RENEWAL69Stephen Shaw
1028Darci Z FlosiJapan2024-03-28Buckley Miller Wright QUALIFIED66Elwin Sharvill
1029Francesco T GauchoGermany2024-04-11Buckley Miller Wright RENEWAL21Stephen Shaw
1030Mayumi I StensethGermany2024-04-18Chanay, Jeffrey A Esq PROPOSAL53Stephen Shaw
1031Isabel G MorascaSpain2024-04-03Buckley Miller Wright QUALIFIED13Bernardo Dominic
1032Johnson G IturbideItaly2024-04-20Chapman, Ross E Esq UNQUALIFIED33Ivan Magalhaes
1033Claire C SchemmerArgentina2024-04-11Rangoni Of Florence PROPOSAL57Bernardo Dominic
1034Antonio I GlickGermany2024-04-12Chanay, Jeffrey A Esq RENEWAL56Asiya Javayant
1035Aruna U SchemmerCanada2024-04-11Feiner Bros PROPOSAL40Amy Elsner
1036Leja H InouyeItaly2024-04-06Commercial Press QUALIFIED91Anna Fali
1037Kadeem A MaletRussia2024-04-16Chemel, James L Cpa UNQUALIFIED50Stephen Shaw
1038Kaitlin Q PerinJapan2024-04-03Rousseaux, Michael Esq RENEWAL75Xuxue Feng
1039Rodrigues R WaycottAustralia2024-04-01Dorl, James J Esq NEGOTIATION33Amy Elsner
1040Maisha J RutaFrance2024-04-24Morlong Associates UNQUALIFIED4Asiya Javayant
1041Maisha A MaletJapan2024-04-19Truhlar And Truhlar Attys QUALIFIED54Asiya Javayant
1042Clifford S PerinBrazil2024-04-12Buckley Miller Wright RENEWAL21Asiya Javayant
1043Maria T SergiJapan2024-04-13Chapman, Ross E Esq PROPOSAL86Anna Fali
1044Munro Q FigeroaFrance2024-04-12Chemel, James L Cpa RENEWAL46Ivan Magalhaes
1045Kaitlin H PaprockiArgentina2024-04-05Chapman, Ross E Esq QUALIFIED51Ivan Magalhaes
1046Francesco H SergiItaly2024-04-01Chanay, Jeffrey A Esq NEGOTIATION86Onyama Limba
1047Tony Y WhobreyRussia2024-04-05Printing Dimensions NEW73Amy Elsner
1048Aika E VenereJapan2024-04-08Chemel, James L Cpa NEGOTIATION57Xuxue Feng
1049Misaki B OldroydSpain2024-04-06Benton, John B Jr PROPOSAL34Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba Y SaylorsSpainAsiya Javayant RENEWAL
Mujtaba K KolmetzArgentinaAnna Fali NEW
Chavez R KuskoBrazilStephen Shaw UNQUALIFIED
Ricardo X PoquetteBrazilElwin Sharvill NEGOTIATION
Johnson X ChuiBrazilAmy Elsner NEGOTIATION
Costa S RimGermanyOnyama Limba RENEWAL
Murillo P SaylorsArgentinaXuxue Feng NEW
Maria K FollerCanadaAsiya Javayant UNQUALIFIED
Munro S GlickJapanAnna Fali UNQUALIFIED
Aruna A FollerCanadaXuxue Feng RENEWAL
Kaitlin A OldroydBrazilIoni Bowcher QUALIFIED
Adams O PoquetteRussiaElwin Sharvill RENEWAL
Isabel R MorascaItalyAmy Elsner NEGOTIATION
Antonio X ChuiJapanAmy Elsner NEGOTIATION
Costa C MaletIndiaAmy Elsner PROPOSAL
Mayumi A TollnerJapanAsiya Javayant NEGOTIATION
Alejandro Y MaletRussiaAmy Elsner RENEWAL
Johnson C RoysterFranceAsiya Javayant NEGOTIATION
Johnson V BologniaUnited KingdomAmy Elsner UNQUALIFIED
Emily B FigeroaSpainAsiya Javayant QUALIFIED
Silvio K AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood T NickaJapanIoni Bowcher RENEWAL
Adams Q GlickItalyIoni Bowcher NEW
Salvatore B MorascaItalyIvan Magalhaes RENEWAL
Wickens Z BowleyArgentinaBernardo Dominic RENEWAL
Sinclair Y MacleadItalyIoni Bowcher RENEWAL
Adams T StensethFranceAmy Elsner PROPOSAL
Smith D RimCanadaAnna Fali UNQUALIFIED
Darci Z DilliardSpainIoni Bowcher UNQUALIFIED
Wickens L DilliardJapanIoni Bowcher RENEWAL
Antonio C WhobreyIndiaElwin Sharvill NEGOTIATION
Stacey C VenereGermanyIoni Bowcher RENEWAL
Jeanfrancois Y CaldareraCanadaIoni Bowcher PROPOSAL
Aika E WieserIndiaAsiya Javayant PROPOSAL
Greenwood C CaldareraItalyIvan Magalhaes NEGOTIATION
Juan O SergiCanadaIvan Magalhaes NEW
Leja O DarakjyFranceXuxue Feng NEGOTIATION
Rodrigues I ShinkoUnited KingdomAnna Fali NEW
James V PoquetteAustraliaBernardo Dominic RENEWAL
Morrow I SaylorsRussiaOnyama Limba PROPOSAL
Kadeem Q GauchoIndiaBernardo Dominic NEW
Rodrigues M WieserCanadaOnyama Limba NEW
Isabel N GarufiSpainOnyama Limba PROPOSAL
Cody R FlosiArgentinaIvan Magalhaes NEGOTIATION
Costa I SaylorsFranceAsiya Javayant UNQUALIFIED
Johnson V BowleyIndiaStephen Shaw UNQUALIFIED
Murillo C OldroydRussiaAnna Fali QUALIFIED
Morrow T SaylorsCanadaIoni Bowcher RENEWAL
Aruna V ButtUnited KingdomOnyama Limba UNQUALIFIED
Izzy C CaldareraUnited KingdomStephen Shaw PROPOSAL
Frozen Columns
Name
Johnson Q Malet
Stacey M Oldroyd
Rodrigues Y Kusko
James U Malet
Alejandro L Morasca
Aditya W Paprocki
Leon U Butt
Clifford J Waycott
Greenwood U Inouye
Deepesh K Kolmetz
Munro S Nicka
Darci H Amigon
Greenwood B Ostrosky
Deepesh F Caudy
Ivar M Schemmer
Greenwood R Flosi
Aruna O Waycott
Adams U Schemmer
Mujtaba X Ruta
Murillo W Dilliard
Isabel A Ruta
David R Inouye
Stacey M Rulapaugh
Mayumi L Waycott
Faith F Malet
Greenwood V Slusarski
Ashley F Malet
Rodrigues E Venere
Kadeem N Wieser
James Z Venere
Aika H Venere
Darci R Caldarera
Ivar J Kusko
Jefferson Z Ruta
Aruna O Paprocki
Jones E Kolmetz
Sinclair P Oldroyd
Claire X Albares
Antonio L Oldroyd
Misaki J Caldarera
Stacey U Tollner
Cody U Whobrey
Jennifer X Stenseth
Rodrigues H Sergi
Salvatore S Perin
Rodrigues C Tollner
Juan P Dilliard
Emily E Nicka
Jones P Iturbide
Nicolas S Figeroa
IdCountryDate
1000Russia2024-04-25
1001Brazil2024-04-19
1002Germany2024-04-16
1003Germany2024-04-17
1004France2024-04-22
1005Russia2024-04-17
1006Japan2024-04-16
1007Australia2024-04-16
1008Germany2024-04-05
1009Japan2024-04-18
1010Argentina2024-04-23
1011Brazil2024-04-12
1012Argentina2024-04-20
1013Germany2024-04-01
1014Russia2024-04-07
1015Canada2024-03-29
1016Spain2024-04-20
1017Brazil2024-03-29
1018Brazil2024-04-24
1019Japan2024-03-30
1020India2024-04-14
1021Italy2024-04-07
1022Canada2024-04-25
1023Russia2024-04-21
1024Italy2024-04-20
1025Russia2024-04-22
1026Spain2024-04-03
1027Spain2024-04-05
1028France2024-03-30
1029Australia2024-04-02
1030United Kingdom2024-04-07
1031Argentina2024-03-31
1032Japan2024-04-15
1033Germany2024-04-03
1034United Kingdom2024-04-21
1035Australia2024-04-02
1036Italy2024-04-02
1037Spain2024-04-21
1038Japan2024-04-21
1039India2024-04-21
1040France2024-04-01
1041Russia2024-04-21
1042Spain2024-03-31
1043Spain2024-04-19
1044France2024-04-19
1045Spain2024-04-10
1046United Kingdom2024-04-03
1047Canada2024-04-06
1048Canada2024-03-30
1049Brazil2024-03-27

On-Demand Data

NameIdCountryDate
Wickens V Darakjy1000Brazil2024-04-16
Ashley G Morasca1001Italy2024-04-03
Kadeem L Vocelka1002Argentina2024-03-31
Nicolas R Marrier1003Brazil2024-04-08
Costa L Venere1004Spain2024-04-23
Clifford J Rim1005India2024-03-31
Aruna E Maclead1006Italy2024-04-06
Cody P Flosi1007France2024-03-30
David U Garufi1008Brazil2024-04-22
Greenwood C Campain1009Spain2024-04-23
Isabel M Flosi1010Spain2024-04-21
Murillo P Inouye1011Argentina2024-04-24
Rodrigues X Rim1012Russia2024-04-16
Stacey J Doe1013Germany2024-04-05
Arvin L Sergi1014Australia2024-04-02
Aditya X Paprocki1015France2024-04-20
Aditya S Ruta1016Japan2024-04-03
Arvin O Albares1017India2024-04-24
Mujtaba J Poquette1018Japan2024-03-29
Jefferson R Oldroyd1019Germany2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja B ShinkoIndiaOnyama Limba PROPOSAL
Maisha J AlbaresAustraliaIvan Magalhaes PROPOSAL
Arvin P PoquetteUnited KingdomXuxue Feng NEGOTIATION
Francesco Y VenereAustraliaElwin Sharvill NEW
Francesco G MacleadArgentinaXuxue Feng RENEWAL
Maria D ShinkoAustraliaElwin Sharvill PROPOSAL
David T DarakjyUnited KingdomOnyama Limba RENEWAL
Emily D BologniaJapanStephen Shaw QUALIFIED
Maria J RoysterJapanAnna Fali NEGOTIATION
Greenwood Q MaletRussiaAnna Fali RENEWAL
Maria M DoeBrazilElwin Sharvill UNQUALIFIED
Octavia A StensethRussiaXuxue Feng NEGOTIATION
Jeanfrancois S FerenczGermanyIvan Magalhaes PROPOSAL
Stacey D WieserCanadaOnyama Limba QUALIFIED
Chavez B DarakjyJapanAnna Fali NEGOTIATION
Isabel O NestleRussiaElwin Sharvill QUALIFIED
Francesco H DoeJapanAmy Elsner NEGOTIATION
Juan D BriddickIndiaAmy Elsner PROPOSAL
Cody P FollerAustraliaAsiya Javayant NEW
Costa Y OldroydRussiaIvan Magalhaes NEGOTIATION
Sinclair H IturbideGermanyElwin Sharvill RENEWAL
Arvin H GlickIndiaElwin Sharvill RENEWAL
Wickens Z NickaSpainAmy Elsner NEGOTIATION
Kaitlin T SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Adams J BriddickArgentinaElwin Sharvill QUALIFIED
Jefferson E BologniaItalyStephen Shaw QUALIFIED
Johnson U InouyeRussiaIoni Bowcher PROPOSAL
Salvatore W BowleyFranceBernardo Dominic PROPOSAL
Julie E FollerGermanyIoni Bowcher PROPOSAL
Mayumi Q WieserAustraliaXuxue Feng QUALIFIED
Nicolas A WhobreyRussiaIvan Magalhaes NEGOTIATION
Maisha G PerinItalyElwin Sharvill PROPOSAL
Ivar B BriddickGermanyStephen Shaw NEW
Ashley C PaprockiAustraliaIoni Bowcher QUALIFIED
Arvin Z WieserAustraliaIvan Magalhaes NEGOTIATION
Munro O SergiBrazilIoni Bowcher UNQUALIFIED
Salvatore V VenereIndiaXuxue Feng UNQUALIFIED
Murillo Q BologniaFranceAsiya Javayant QUALIFIED
Chavez N FlosiRussiaOnyama Limba NEGOTIATION
Emily O DilliardFranceBernardo Dominic 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>