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
James V VenereSpainBernardo Dominic PROPOSAL
Antonio Y GarufiItalyBernardo Dominic NEW
Sinclair V PerinBrazilStephen Shaw QUALIFIED
Faith Z MorascaSpainBernardo Dominic RENEWAL
Nicolas S SergiRussiaIoni Bowcher NEGOTIATION
Maisha U AlbaresJapanElwin Sharvill QUALIFIED
Clifford A SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Cody I SlusarskiArgentinaAsiya Javayant QUALIFIED
Sinclair G GillianCanadaIoni Bowcher PROPOSAL
Octavia W MaletIndiaAsiya Javayant NEGOTIATION
Jefferson E OstroskySpainOnyama Limba NEW
Salvatore Q MarrierIndiaIvan Magalhaes QUALIFIED
Kadeem I OldroydSpainXuxue Feng UNQUALIFIED
David N FigeroaIndiaStephen Shaw PROPOSAL
Juan R MacleadJapanOnyama Limba NEW
Leon D KuskoItalyIvan Magalhaes NEGOTIATION
Kadeem Y ChuiRussiaAsiya Javayant UNQUALIFIED
Francesco V NickaIndiaIoni Bowcher QUALIFIED
Arvin N SchemmerJapanOnyama Limba QUALIFIED
Chavez C StensethCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois W WieserRussiaAnna Fali UNQUALIFIED
Francesco D PerinGermanyAnna Fali NEGOTIATION
Morrow S PerinBrazilIoni Bowcher NEW
Arvin Y VenereRussiaStephen Shaw PROPOSAL
Darci Z FigeroaFranceAnna Fali RENEWAL
Emily W ChuiArgentinaIvan Magalhaes QUALIFIED
James R BologniaJapanAsiya Javayant RENEWAL
Mujtaba I GillianUnited KingdomAsiya Javayant QUALIFIED
Francesco N StensethGermanyIoni Bowcher QUALIFIED
Aika L RutaAustraliaXuxue Feng UNQUALIFIED
Silvio F BriddickFranceIvan Magalhaes NEW
Faith J NestleIndiaStephen Shaw UNQUALIFIED
Ashley K VenereSpainXuxue Feng UNQUALIFIED
Jones K WieserCanadaElwin Sharvill NEGOTIATION
Ricardo A PaprockiItalyStephen Shaw PROPOSAL
Misaki C FigeroaArgentinaBernardo Dominic NEW
Maisha P WieserFranceStephen Shaw UNQUALIFIED
Maisha K FlosiAustraliaStephen Shaw NEW
Juan L BowleyRussiaElwin Sharvill NEW
Murillo M KolmetzUnited KingdomBernardo Dominic RENEWAL
David Z PerinIndiaBernardo Dominic NEW
Claire H WaycottGermanyXuxue Feng QUALIFIED
Deepesh J InouyeFranceXuxue Feng QUALIFIED
Julie A WaycottGermanyXuxue Feng QUALIFIED
Morrow X DilliardUnited KingdomXuxue Feng RENEWAL
Mayumi U SlusarskiIndiaStephen Shaw NEGOTIATION
David R FerenczCanadaAmy Elsner PROPOSAL
David Z GlickIndiaBernardo Dominic NEW
Salvatore Q WieserIndiaIvan Magalhaes QUALIFIED
Ivar S InouyeJapanXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Tony X NickaRussiaAnna Fali PROPOSAL
Stacey P PoquetteUnited KingdomElwin Sharvill PROPOSAL
Leja V NickaUnited KingdomOnyama Limba UNQUALIFIED
Aika I SergiRussiaStephen Shaw RENEWAL
Francesco D DarakjyCanadaAsiya Javayant UNQUALIFIED
Wickens O MaletAustraliaStephen Shaw RENEWAL
Silvio I PoquetteCanadaAnna Fali NEGOTIATION
Tony I RulapaughSpainAmy Elsner QUALIFIED
Ashley W VocelkaAustraliaAmy Elsner NEW
Francesco L NickaCanadaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams E FlosiUnited Kingdom2024-04-04Benton, John B Jr NEGOTIATION14Elwin Sharvill
1001Francesco V VenereUnited Kingdom2024-04-09King, Christopher A Esq PROPOSAL78Elwin Sharvill
1002Claire K BologniaFrance2024-04-24Chanay, Jeffrey A Esq NEW98Ivan Magalhaes
1003Clifford F BriddickUnited Kingdom2024-04-01Truhlar And Truhlar Attys NEGOTIATION68Bernardo Dominic
1004Greenwood Y GauchoArgentina2024-04-23Chemel, James L Cpa NEW6Asiya Javayant
1005Wickens I FerenczSpain2024-04-13Commercial Press RENEWAL33Bernardo Dominic
1006Octavia F BologniaAustralia2024-04-06Benton, John B Jr RENEWAL28Xuxue Feng
1007Chavez I RulapaughIndia2024-03-29Rousseaux, Michael Esq NEW71Stephen Shaw
1008Aruna Q StensethIndia2024-04-12Chanay, Jeffrey A Esq NEW42Stephen Shaw
1009Wickens C WieserBrazil2024-04-27Feltz Printing Service UNQUALIFIED87Stephen Shaw
1010Aditya V SergiIndia2024-04-07Rangoni Of Florence PROPOSAL89Xuxue Feng
1011Francesco L WieserBrazil2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED62Asiya Javayant
1012Maria G BologniaGermany2024-04-25Rangoni Of Florence PROPOSAL56Ivan Magalhaes
1013Ashley M AmigonBrazil2024-04-25Truhlar And Truhlar Attys RENEWAL29Asiya Javayant
1014Costa E KolmetzItaly2024-04-07Commercial Press NEGOTIATION56Xuxue Feng
1015Smith Z FerenczCanada2024-04-17Feltz Printing Service NEW94Xuxue Feng
1016Maisha V WieserCanada2024-04-20Chapman, Ross E Esq UNQUALIFIED76Asiya Javayant
1017Silvio O StensethItaly2024-04-21King, Christopher A Esq RENEWAL35Elwin Sharvill
1018Mujtaba W FlosiAustralia2024-04-21King, Christopher A Esq QUALIFIED49Amy Elsner
1019Misaki H StensethRussia2024-03-30Chapman, Ross E Esq PROPOSAL29Ivan Magalhaes
1020David B CampainCanada2024-04-12King, Christopher A Esq PROPOSAL47Bernardo Dominic
1021Morrow U FollerSpain2024-04-19Feltz Printing Service QUALIFIED6Ivan Magalhaes
1022Jeanfrancois N RimAustralia2024-04-16Chanay, Jeffrey A Esq NEGOTIATION50Amy Elsner
1023Clifford Y PaprockiArgentina2024-04-18Dorl, James J Esq PROPOSAL68Ivan Magalhaes
1024Silvio R BowleyIndia2024-04-18Chemel, James L Cpa QUALIFIED28Stephen Shaw
1025Juan P BologniaGermany2024-04-05Rangoni Of Florence RENEWAL96Ioni Bowcher
1026Smith T VenereUnited Kingdom2024-04-10Feiner Bros NEGOTIATION73Xuxue Feng
1027Deepesh U GillianSpain2024-04-08Feltz Printing Service QUALIFIED88Asiya Javayant
1028Wickens M GillianJapan2024-04-18Chapman, Ross E Esq NEW97Ivan Magalhaes
1029Izzy K MorascaJapan2024-04-13Printing Dimensions NEGOTIATION50Elwin Sharvill
1030Mujtaba B GauchoIndia2024-04-18Feiner Bros NEGOTIATION20Amy Elsner
1031Francesco N IturbideAustralia2024-04-10Dorl, James J Esq PROPOSAL23Stephen Shaw
1032Kaitlin M DoeGermany2024-04-21Feltz Printing Service NEGOTIATION80Stephen Shaw
1033Aditya H CaudyBrazil2024-04-15Feiner Bros UNQUALIFIED13Amy Elsner
1034Alejandro L OldroydJapan2024-04-08Commercial Press NEGOTIATION3Elwin Sharvill
1035Aruna Y MarrierCanada2024-04-04Rousseaux, Michael Esq NEW72Ivan Magalhaes
1036Cody W WieserGermany2024-04-22Chemel, James L Cpa RENEWAL70Anna Fali
1037Julie V BriddickArgentina2024-04-09Chanay, Jeffrey A Esq RENEWAL50Onyama Limba
1038Leon B BowleyUnited Kingdom2024-04-07Dorl, James J Esq NEGOTIATION97Xuxue Feng
1039Ricardo X MarrierGermany2024-04-07Feiner Bros UNQUALIFIED66Ivan Magalhaes
1040Chavez N SchemmerCanada2024-04-20Rangoni Of Florence QUALIFIED21Xuxue Feng
1041Jeanfrancois N OldroydRussia2024-04-16Benton, John B Jr NEW65Xuxue Feng
1042Morrow B FlosiUnited Kingdom2024-04-06King, Christopher A Esq RENEWAL10Onyama Limba
1043Maria W DilliardItaly2024-04-02Truhlar And Truhlar Attys RENEWAL22Asiya Javayant
1044Emily V DoeGermany2024-04-08Dorl, James J Esq PROPOSAL59Bernardo Dominic
1045Kaitlin R OldroydUnited Kingdom2024-04-25Benton, John B Jr PROPOSAL17Anna Fali
1046Darci K RulapaughFrance2024-04-16Commercial Press NEGOTIATION93Xuxue Feng
1047Jennifer Y ButtRussia2024-04-24Chapman, Ross E Esq NEW53Xuxue Feng
1048Clifford B BriddickBrazil2024-04-24Rousseaux, Michael Esq QUALIFIED52Elwin Sharvill
1049Nicolas A ChuiIndia2024-04-22Morlong Associates QUALIFIED97Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair R PerinAustraliaStephen Shaw PROPOSAL
Johnson B DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Stacey B KolmetzFranceXuxue Feng NEGOTIATION
Jennifer F OstroskySpainOnyama Limba RENEWAL
Deepesh Y BowleyFranceAmy Elsner UNQUALIFIED
Kadeem Q StensethRussiaIvan Magalhaes RENEWAL
Maria B RoysterJapanElwin Sharvill UNQUALIFIED
Izzy U RoysterUnited KingdomAmy Elsner RENEWAL
Claire W SergiSpainOnyama Limba QUALIFIED
Octavia Y WhobreySpainAnna Fali PROPOSAL
Morrow S ChuiSpainXuxue Feng QUALIFIED
Leon M ChuiGermanyIoni Bowcher NEW
Ricardo N MorascaItalyAsiya Javayant NEGOTIATION
Munro U BowleyJapanAsiya Javayant UNQUALIFIED
Izzy O ChuiIndiaAnna Fali QUALIFIED
Alejandro T FollerIndiaAmy Elsner NEGOTIATION
Mujtaba Q CaudyUnited KingdomStephen Shaw NEGOTIATION
Cody B SaylorsSpainAmy Elsner QUALIFIED
Darci N RoysterItalyAnna Fali NEW
Jones U NickaRussiaElwin Sharvill RENEWAL
Leon K SergiCanadaAnna Fali NEW
Salvatore X MacleadArgentinaAmy Elsner UNQUALIFIED
Jefferson H WaycottUnited KingdomBernardo Dominic NEW
Alejandro T GauchoGermanyAsiya Javayant QUALIFIED
Faith Y FerenczBrazilAmy Elsner NEGOTIATION
Jeanfrancois M BologniaBrazilElwin Sharvill RENEWAL
Ricardo K FerenczBrazilElwin Sharvill QUALIFIED
Alejandro E IturbideCanadaXuxue Feng RENEWAL
Jones I BowleySpainAnna Fali NEGOTIATION
Izzy Z RulapaughItalyElwin Sharvill PROPOSAL
Francesco M RimBrazilAsiya Javayant QUALIFIED
Octavia A BowleyBrazilBernardo Dominic NEW
Murillo W AmigonArgentinaAnna Fali RENEWAL
Johnson E PerinGermanyIvan Magalhaes UNQUALIFIED
Misaki R MaletItalyAsiya Javayant QUALIFIED
Maria U AmigonItalyIvan Magalhaes NEGOTIATION
Stacey W DilliardItalyIvan Magalhaes RENEWAL
Chavez Y ShinkoGermanyOnyama Limba UNQUALIFIED
Costa F StensethUnited KingdomAsiya Javayant NEW
Deepesh Y RulapaughUnited KingdomAmy Elsner NEGOTIATION
Ashley C OldroydIndiaIoni Bowcher UNQUALIFIED
Cody R BowleySpainBernardo Dominic NEGOTIATION
Salvatore O RutaJapanAsiya Javayant NEGOTIATION
Chavez S DilliardIndiaStephen Shaw NEGOTIATION
Tony P KolmetzItalyBernardo Dominic NEGOTIATION
James H GlickIndiaElwin Sharvill RENEWAL
Leja E MorascaAustraliaIoni Bowcher UNQUALIFIED
Mayumi F OldroydIndiaStephen Shaw NEGOTIATION
Mayumi H DilliardCanadaXuxue Feng RENEWAL
Arvin B WaycottJapanIoni Bowcher NEW
Frozen Columns
Name
Johnson P Bowley
Aruna F Iturbide
Izzy V Morasca
Leja P Darakjy
Wickens R Maclead
Juan Y Rulapaugh
Salvatore S Nestle
Mayumi Y Nestle
Aditya W Vocelka
Murillo T Caudy
Isabel A Perin
Misaki L Bowley
Ricardo C Kusko
Kadeem S Oldroyd
Arvin L Bowley
Costa O Morasca
Ashley B Bolognia
Juan S Ostrosky
Leon I Amigon
Aruna M Perin
Salvatore F Rulapaugh
Jefferson G Garufi
Smith V Briddick
Ivar A Poquette
Maisha O Poquette
Kaitlin N Briddick
Chavez X Darakjy
Cody R Tollner
Antonio E Venere
Silvio F Gaucho
Sinclair E Bowley
Arvin V Briddick
Ricardo Y Ferencz
Kadeem G Marrier
Tony K Nestle
Ivar X Kusko
Adams R Ferencz
Munro F Stockham
Jefferson Q Shinko
Tony O Iturbide
Smith J Flosi
Antonio M Chui
Faith M Iturbide
Smith W Marrier
David H Gaucho
Jeanfrancois V Gaucho
Mujtaba G Caldarera
Jeanfrancois Q Maclead
Julie A Marrier
Costa E Maclead
IdCountryDate
1000France2024-03-30
1001Brazil2024-04-11
1002Canada2024-04-12
1003Russia2024-04-22
1004Germany2024-04-26
1005Russia2024-04-19
1006Argentina2024-04-24
1007India2024-04-26
1008France2024-04-03
1009France2024-04-17
1010Canada2024-04-01
1011France2024-03-30
1012Argentina2024-03-29
1013France2024-04-19
1014Italy2024-04-21
1015Russia2024-04-04
1016Japan2024-04-02
1017Germany2024-04-20
1018India2024-04-07
1019India2024-04-06
1020France2024-04-18
1021Australia2024-04-05
1022Italy2024-04-04
1023Italy2024-03-29
1024Spain2024-04-12
1025Canada2024-04-05
1026Canada2024-04-14
1027Italy2024-04-03
1028Russia2024-04-15
1029Russia2024-04-20
1030Australia2024-04-17
1031Spain2024-04-27
1032Japan2024-03-31
1033United Kingdom2024-04-08
1034Spain2024-04-07
1035Italy2024-03-29
1036Brazil2024-04-19
1037France2024-04-14
1038Brazil2024-04-14
1039France2024-04-26
1040Canada2024-04-06
1041United Kingdom2024-04-06
1042India2024-04-25
1043Brazil2024-04-17
1044Germany2024-04-20
1045Australia2024-04-06
1046Germany2024-04-07
1047India2024-04-09
1048Japan2024-04-02
1049India2024-04-07

On-Demand Data

NameIdCountryDate
Cody Z Paprocki1000Canada2024-04-20
Leja T Chui1001Germany2024-04-14
Arvin K Malet1002Germany2024-04-08
Leja G Oldroyd1003Australia2024-04-11
Julie S Nicka1004Argentina2024-04-06
Chavez M Schemmer1005Italy2024-04-16
Adams K Chui1006Argentina2024-04-17
Silvio U Inouye1007Argentina2024-04-18
Clifford O Poquette1008France2024-04-06
Aditya E Ruta1009Japan2024-04-08
Emily Q Darakjy1010Argentina2024-04-20
Deepesh J Nicka1011Germany2024-04-04
Costa Q Ostrosky1012United Kingdom2024-04-18
Costa F Caldarera1013Germany2024-04-26
Silvio P Malet1014Japan2024-04-03
Claire D Whobrey1015Japan2024-04-03
Rodrigues V Schemmer1016Japan2024-04-08
Sinclair Q Inouye1017Italy2024-04-01
Munro B Ferencz1018United Kingdom2024-04-10
Aika D Chui1019United Kingdom2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo O SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Sinclair X ShinkoRussiaIvan Magalhaes PROPOSAL
Jeanfrancois M WaycottItalyOnyama Limba UNQUALIFIED
Morrow C RulapaughCanadaAsiya Javayant UNQUALIFIED
Julie O GillianJapanBernardo Dominic QUALIFIED
Adams T CaldareraAustraliaBernardo Dominic QUALIFIED
Ashley I PoquetteJapanIoni Bowcher NEW
Emily D RoysterFranceIoni Bowcher QUALIFIED
Chavez U OstroskyUnited KingdomElwin Sharvill PROPOSAL
Costa D StensethArgentinaStephen Shaw UNQUALIFIED
Nicolas Z CaudyAustraliaAmy Elsner UNQUALIFIED
Nicolas A InouyeBrazilAmy Elsner QUALIFIED
Silvio H DilliardBrazilAmy Elsner UNQUALIFIED
Jennifer B AmigonUnited KingdomBernardo Dominic RENEWAL
Rodrigues H GauchoCanadaAsiya Javayant NEW
Kaitlin W MorascaAustraliaElwin Sharvill NEGOTIATION
Adams B MaletSpainBernardo Dominic UNQUALIFIED
Smith D AmigonAustraliaBernardo Dominic QUALIFIED
Stacey E FerenczBrazilOnyama Limba NEW
Jennifer Q MorascaBrazilAsiya Javayant UNQUALIFIED
Francesco R NestleItalyBernardo Dominic NEGOTIATION
Darci S ShinkoJapanXuxue Feng QUALIFIED
Emily A SchemmerRussiaXuxue Feng QUALIFIED
Clifford S RulapaughArgentinaBernardo Dominic QUALIFIED
Mujtaba F MarrierArgentinaElwin Sharvill PROPOSAL
Smith K RulapaughRussiaIoni Bowcher PROPOSAL
Deepesh I CaudyArgentinaIoni Bowcher NEGOTIATION
Wickens Q AmigonUnited KingdomElwin Sharvill NEW
Deepesh Y MacleadUnited KingdomIoni Bowcher NEGOTIATION
Costa F BriddickRussiaIoni Bowcher UNQUALIFIED
Isabel H PoquetteSpainAmy Elsner UNQUALIFIED
Wickens C WaycottJapanAnna Fali PROPOSAL
David S RimUnited KingdomAmy Elsner NEW
Ricardo M SergiJapanAmy Elsner NEW
Stacey B NickaRussiaElwin Sharvill RENEWAL
Cody P GarufiArgentinaIvan Magalhaes NEW
Munro C RimGermanyBernardo Dominic NEW
Munro R IturbideFranceAsiya Javayant PROPOSAL
Johnson E GauchoUnited KingdomAnna Fali UNQUALIFIED
Octavia T FigeroaFranceOnyama Limba NEW

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