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 R CaldareraAustraliaOnyama Limba PROPOSAL
Aditya N OstroskyIndiaAnna Fali UNQUALIFIED
Chavez P ChuiRussiaBernardo Dominic NEW
Alejandro G BowleyArgentinaAnna Fali PROPOSAL
Tony V MarrierAustraliaElwin Sharvill QUALIFIED
Morrow I DarakjyCanadaXuxue Feng QUALIFIED
Faith S AmigonItalyIoni Bowcher NEW
Jefferson R StensethRussiaAsiya Javayant QUALIFIED
Ashley H DilliardCanadaBernardo Dominic NEW
Jones I InouyeJapanOnyama Limba RENEWAL
Darci I GauchoIndiaIvan Magalhaes UNQUALIFIED
Murillo L PerinJapanIvan Magalhaes NEW
Alejandro I FerenczSpainStephen Shaw PROPOSAL
Mayumi M StensethSpainIoni Bowcher NEGOTIATION
Leon G FlosiItalyXuxue Feng UNQUALIFIED
Nicolas G MaletJapanIoni Bowcher UNQUALIFIED
Juan Q RoysterJapanBernardo Dominic PROPOSAL
David U DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore O KolmetzRussiaAnna Fali UNQUALIFIED
Alejandro I WaycottCanadaXuxue Feng QUALIFIED
Leja V ButtCanadaIoni Bowcher NEGOTIATION
Smith X NickaAustraliaOnyama Limba NEW
Jones Z CaldareraGermanyBernardo Dominic PROPOSAL
Isabel Z MaletBrazilXuxue Feng NEW
Darci Z GauchoArgentinaAmy Elsner QUALIFIED
Salvatore C NickaGermanyOnyama Limba NEW
Jeanfrancois X OldroydSpainIvan Magalhaes PROPOSAL
Salvatore W GauchoCanadaStephen Shaw QUALIFIED
Rodrigues F AmigonJapanStephen Shaw UNQUALIFIED
Chavez X DarakjyItalyIoni Bowcher PROPOSAL
Wickens C SlusarskiAustraliaElwin Sharvill NEGOTIATION
Ashley T FerenczFranceXuxue Feng UNQUALIFIED
Ivar H AlbaresGermanyStephen Shaw NEGOTIATION
Smith W VocelkaGermanyAsiya Javayant UNQUALIFIED
Tony C MorascaSpainIoni Bowcher NEW
Francesco Y MorascaIndiaBernardo Dominic RENEWAL
Ricardo P IturbideIndiaStephen Shaw NEW
Clifford I MorascaSpainStephen Shaw UNQUALIFIED
Emily C ShinkoGermanyAmy Elsner NEW
Maisha P RulapaughAustraliaIvan Magalhaes NEGOTIATION
Leon P OldroydSpainAnna Fali PROPOSAL
Octavia S TollnerBrazilAnna Fali NEGOTIATION
Arvin D RoysterIndiaBernardo Dominic PROPOSAL
Silvio M DilliardItalyStephen Shaw UNQUALIFIED
Murillo P OldroydAustraliaElwin Sharvill NEGOTIATION
Mayumi V DarakjyArgentinaIvan Magalhaes PROPOSAL
Morrow H StockhamFranceIvan Magalhaes PROPOSAL
Ivar B CaldareraJapanXuxue Feng RENEWAL
Wickens R BriddickCanadaAnna Fali NEGOTIATION
Claire A MarrierBrazilOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody M CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Nicolas B StockhamSpainIoni Bowcher NEW
Arvin A ButtRussiaStephen Shaw NEGOTIATION
Ivar A DoeJapanBernardo Dominic NEGOTIATION
Francesco I VocelkaItalyAnna Fali NEGOTIATION
Wickens X ButtFranceOnyama Limba NEGOTIATION
Rodrigues I PaprockiUnited KingdomBernardo Dominic QUALIFIED
Aika U KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Maria Z ChuiCanadaIoni Bowcher RENEWAL
Ivar S DoeRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem M CaldareraRussia2024-04-12Chanay, Jeffrey A Esq NEGOTIATION58Onyama Limba
1001Arvin M BowleyCanada2024-04-14Chemel, James L Cpa QUALIFIED92Asiya Javayant
1002Kadeem V CaldareraArgentina2024-04-18Chanay, Jeffrey A Esq RENEWAL79Asiya Javayant
1003Nicolas E ShinkoRussia2024-04-14Buckley Miller Wright NEW20Onyama Limba
1004Darci A MarrierRussia2024-04-15Feiner Bros QUALIFIED10Asiya Javayant
1005Jefferson N ShinkoJapan2024-04-20Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1006Izzy R MaletAustralia2024-04-17Commercial Press RENEWAL13Xuxue Feng
1007Clifford Y GauchoUnited Kingdom2024-03-26Chanay, Jeffrey A Esq NEW8Bernardo Dominic
1008Adams H WieserRussia2024-04-15Chanay, Jeffrey A Esq PROPOSAL23Onyama Limba
1009Darci X GarufiFrance2024-04-21King, Christopher A Esq NEW18Bernardo Dominic
1010Maria N FlosiCanada2024-04-23Printing Dimensions NEGOTIATION68Asiya Javayant
1011Alejandro B PaprockiAustralia2024-04-20Chapman, Ross E Esq RENEWAL12Ivan Magalhaes
1012Maria J StockhamGermany2024-04-03Commercial Press QUALIFIED48Amy Elsner
1013Alejandro J CaudyFrance2024-03-30Dorl, James J Esq NEW89Elwin Sharvill
1014Murillo B WaycottGermany2024-04-20King, Christopher A Esq NEGOTIATION76Asiya Javayant
1015Clifford G KolmetzCanada2024-03-26Chanay, Jeffrey A Esq QUALIFIED89Amy Elsner
1016Kaitlin A GarufiRussia2024-04-21Truhlar And Truhlar Attys QUALIFIED32Elwin Sharvill
1017Jennifer L FigeroaSpain2024-04-23King, Christopher A Esq QUALIFIED14Stephen Shaw
1018Johnson Q BologniaItaly2024-04-01Printing Dimensions RENEWAL90Amy Elsner
1019James W CaldareraFrance2024-04-06Chemel, James L Cpa NEGOTIATION26Ivan Magalhaes
1020Isabel P ButtJapan2024-03-26Feiner Bros NEW16Bernardo Dominic
1021Sinclair P MaletFrance2024-03-26Truhlar And Truhlar Attys RENEWAL5Bernardo Dominic
1022Rodrigues Q MarrierSpain2024-04-19Rangoni Of Florence QUALIFIED67Stephen Shaw
1023Izzy D OldroydItaly2024-04-19Chanay, Jeffrey A Esq NEGOTIATION19Asiya Javayant
1024Deepesh Y FollerUnited Kingdom2024-04-20Feiner Bros QUALIFIED6Stephen Shaw
1025Clifford C SchemmerCanada2024-04-10Chemel, James L Cpa RENEWAL83Stephen Shaw
1026Greenwood W MacleadItaly2024-04-16Morlong Associates NEW38Stephen Shaw
1027Juan J BologniaBrazil2024-03-27Chapman, Ross E Esq QUALIFIED60Ioni Bowcher
1028Munro C DilliardIndia2024-04-20Truhlar And Truhlar Attys NEW34Anna Fali
1029Arvin Y MarrierBrazil2024-04-22Rangoni Of Florence NEW83Asiya Javayant
1030Morrow Q GillianFrance2024-04-14Buckley Miller Wright RENEWAL28Elwin Sharvill
1031Faith P FlosiBrazil2024-04-14Chapman, Ross E Esq PROPOSAL7Ioni Bowcher
1032Munro Z ChuiItaly2024-04-08Chapman, Ross E Esq QUALIFIED62Ioni Bowcher
1033Murillo W NickaItaly2024-04-15Chanay, Jeffrey A Esq NEGOTIATION3Onyama Limba
1034Maria Q BowleyJapan2024-04-14Printing Dimensions UNQUALIFIED33Ivan Magalhaes
1035Octavia C WieserSpain2024-04-22Rousseaux, Michael Esq QUALIFIED87Asiya Javayant
1036Murillo I GarufiCanada2024-04-22Printing Dimensions NEGOTIATION10Anna Fali
1037Izzy S TollnerCanada2024-04-21Chapman, Ross E Esq UNQUALIFIED99Ioni Bowcher
1038Salvatore M FigeroaGermany2024-04-08Chanay, Jeffrey A Esq PROPOSAL3Amy Elsner
1039Jennifer X PoquetteIndia2024-04-01Dorl, James J Esq RENEWAL58Onyama Limba
1040Smith L MacleadSpain2024-04-03Chemel, James L Cpa NEGOTIATION0Ioni Bowcher
1041Isabel U WieserFrance2024-03-30Truhlar And Truhlar Attys RENEWAL53Asiya Javayant
1042Alejandro M ShinkoCanada2024-03-30Chanay, Jeffrey A Esq NEGOTIATION97Amy Elsner
1043Salvatore R AlbaresCanada2024-03-26Printing Dimensions NEGOTIATION27Elwin Sharvill
1044Murillo T BowleyCanada2024-04-14Chapman, Ross E Esq NEW64Bernardo Dominic
1045Antonio M GlickArgentina2024-04-18Rangoni Of Florence UNQUALIFIED32Elwin Sharvill
1046Tony C NestleAustralia2024-04-06Chanay, Jeffrey A Esq NEW86Anna Fali
1047Stacey J WhobreyArgentina2024-04-21Chanay, Jeffrey A Esq RENEWAL3Asiya Javayant
1048Adams Y DilliardCanada2024-03-26Buckley Miller Wright NEGOTIATION84Anna Fali
1049Antonio S IturbideItaly2024-03-26Commercial Press NEGOTIATION88Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio C ButtItalyStephen Shaw UNQUALIFIED
Munro Y SchemmerCanadaAnna Fali QUALIFIED
Johnson R ChuiSpainStephen Shaw QUALIFIED
Mujtaba H ShinkoAustraliaOnyama Limba UNQUALIFIED
Silvio K WhobreyGermanyAsiya Javayant PROPOSAL
Antonio K CaldareraArgentinaIvan Magalhaes QUALIFIED
Darci C IturbideJapanAmy Elsner PROPOSAL
Ricardo L SaylorsItalyStephen Shaw UNQUALIFIED
Rodrigues U AmigonJapanAnna Fali RENEWAL
Rodrigues B GlickAustraliaOnyama Limba PROPOSAL
Smith J WhobreyFranceOnyama Limba RENEWAL
Rodrigues T SaylorsUnited KingdomStephen Shaw PROPOSAL
David B ChuiFranceAnna Fali NEGOTIATION
Greenwood A FerenczIndiaIvan Magalhaes NEW
Chavez B InouyeCanadaElwin Sharvill NEGOTIATION
Adams K MaletUnited KingdomIvan Magalhaes PROPOSAL
Cody X WieserJapanAsiya Javayant PROPOSAL
Adams E FollerAustraliaElwin Sharvill NEGOTIATION
Salvatore X SchemmerJapanBernardo Dominic QUALIFIED
Leja C PoquetteItalyElwin Sharvill RENEWAL
Ivar P WaycottAustraliaStephen Shaw UNQUALIFIED
Kaitlin K MacleadAustraliaXuxue Feng RENEWAL
Antonio G SchemmerIndiaAsiya Javayant QUALIFIED
Wickens G OstroskyItalyBernardo Dominic NEW
Emily V ButtBrazilIvan Magalhaes UNQUALIFIED
Leja S StensethRussiaElwin Sharvill QUALIFIED
Silvio K TollnerJapanIvan Magalhaes RENEWAL
Costa E RulapaughItalyIvan Magalhaes UNQUALIFIED
Leja D PerinIndiaAsiya Javayant RENEWAL
Cody E FlosiCanadaBernardo Dominic RENEWAL
Aruna S RimSpainBernardo Dominic RENEWAL
David I RutaAustraliaIoni Bowcher UNQUALIFIED
Ivar S AmigonFranceIoni Bowcher NEGOTIATION
James D SergiUnited KingdomOnyama Limba QUALIFIED
Sinclair F CaldareraJapanIvan Magalhaes NEGOTIATION
Adams K NickaBrazilOnyama Limba PROPOSAL
Greenwood V PerinRussiaBernardo Dominic NEGOTIATION
Darci S PoquetteIndiaAsiya Javayant RENEWAL
Stacey G CaldareraArgentinaStephen Shaw RENEWAL
Maria U GauchoArgentinaAsiya Javayant UNQUALIFIED
Deepesh B KuskoJapanStephen Shaw PROPOSAL
Leja R MarrierSpainIoni Bowcher PROPOSAL
Adams K MaletAustraliaIvan Magalhaes NEGOTIATION
Wickens N FigeroaCanadaXuxue Feng PROPOSAL
Smith L ChuiAustraliaOnyama Limba QUALIFIED
Kadeem A StensethIndiaXuxue Feng PROPOSAL
Mayumi H GarufiBrazilAsiya Javayant UNQUALIFIED
Kaitlin L BologniaBrazilElwin Sharvill RENEWAL
Adams F MarrierItalyIvan Magalhaes UNQUALIFIED
Leon B RutaUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Aditya X Kusko
Aditya X Caldarera
Chavez H Figeroa
Izzy S Dilliard
Sinclair Z Caudy
Darci A Ruta
Juan V Kolmetz
Jeanfrancois Q Rulapaugh
Maria Y Schemmer
Salvatore W Dilliard
Rodrigues C Paprocki
Johnson J Oldroyd
Kaitlin C Inouye
Jefferson H Rim
Chavez E Perin
Munro T Nicka
Deepesh F Saylors
Octavia F Bolognia
Izzy P Caldarera
Claire O Flosi
Mujtaba O Glick
Leon H Bowley
Arvin R Albares
Ashley E Saylors
Alejandro I Chui
Jeanfrancois J Nestle
Izzy E Campain
Deepesh J Paprocki
Ivar S Schemmer
Darci A Rulapaugh
Rodrigues J Stockham
Munro E Bowley
Costa R Venere
Stacey S Rim
Aika B Tollner
Deepesh S Dilliard
Mujtaba D Sergi
Francesco F Morasca
Claire N Malet
Darci A Doe
Silvio Z Royster
Nicolas D Royster
Antonio L Nicka
Stacey D Inouye
Francesco J Glick
Mujtaba Y Slusarski
Faith S Glick
Misaki A Ferencz
Leon A Poquette
Mayumi V Maclead
IdCountryDate
1000Canada2024-03-26
1001Australia2024-04-18
1002Canada2024-04-01
1003United Kingdom2024-03-31
1004Germany2024-04-07
1005Brazil2024-04-18
1006Germany2024-04-16
1007France2024-04-04
1008Spain2024-04-04
1009France2024-04-04
1010Germany2024-04-16
1011Spain2024-04-14
1012Germany2024-03-26
1013Japan2024-04-20
1014Australia2024-04-23
1015Japan2024-03-31
1016Japan2024-04-02
1017Argentina2024-04-16
1018Argentina2024-04-07
1019Brazil2024-04-01
1020Spain2024-03-30
1021Argentina2024-04-15
1022India2024-04-19
1023Russia2024-04-04
1024Spain2024-04-05
1025Spain2024-04-05
1026United Kingdom2024-04-20
1027Japan2024-03-30
1028Japan2024-04-02
1029Australia2024-04-15
1030Canada2024-04-11
1031Brazil2024-04-03
1032Canada2024-04-04
1033Spain2024-03-28
1034France2024-04-02
1035Argentina2024-03-26
1036Spain2024-04-16
1037Germany2024-04-18
1038Brazil2024-03-28
1039France2024-03-28
1040Japan2024-03-27
1041Russia2024-04-16
1042Japan2024-03-28
1043Italy2024-03-27
1044Germany2024-03-26
1045United Kingdom2024-03-29
1046India2024-04-04
1047Russia2024-04-02
1048France2024-04-11
1049Argentina2024-04-04

On-Demand Data

NameIdCountryDate
Wickens W Foller1000Spain2024-04-06
Chavez Q Schemmer1001India2024-03-26
Arvin N Ruta1002Brazil2024-04-16
Aditya I Ruta1003India2024-04-10
Sinclair E Saylors1004Italy2024-03-27
Costa Y Saylors1005Germany2024-03-28
Claire D Ostrosky1006Japan2024-04-16
Aika P Venere1007Australia2024-04-23
Munro J Kusko1008India2024-03-25
Julie P Briddick1009Japan2024-04-11
Rodrigues T Foller1010United Kingdom2024-04-08
Octavia P Bolognia1011Russia2024-04-11
Greenwood G Sergi1012Australia2024-03-29
Wickens B Wieser1013Italy2024-04-22
Silvio N Morasca1014Argentina2024-03-25
Ricardo Q Royster1015Australia2024-03-26
Arvin U Oldroyd1016Italy2024-04-05
Nicolas N Kolmetz1017Australia2024-04-20
Ricardo C Bowley1018France2024-04-04
Mujtaba F Foller1019Spain2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro Y ChuiBrazilStephen Shaw UNQUALIFIED
Munro I VenereCanadaAnna Fali NEGOTIATION
Aditya E OldroydBrazilOnyama Limba PROPOSAL
Antonio D WaycottBrazilElwin Sharvill QUALIFIED
Wickens R FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Octavia A PaprockiRussiaElwin Sharvill QUALIFIED
Smith A DarakjyRussiaBernardo Dominic RENEWAL
Izzy Q StensethAustraliaAmy Elsner RENEWAL
Munro P CaldareraSpainBernardo Dominic RENEWAL
Maisha R KolmetzCanadaAsiya Javayant QUALIFIED
Costa E GillianArgentinaXuxue Feng NEGOTIATION
Aika R PerinIndiaOnyama Limba QUALIFIED
Chavez R DarakjyJapanElwin Sharvill QUALIFIED
Kaitlin V DilliardCanadaIvan Magalhaes PROPOSAL
Adams R SlusarskiBrazilAmy Elsner RENEWAL
Munro B IturbideJapanAnna Fali NEGOTIATION
Silvio O StensethGermanyXuxue Feng NEGOTIATION
Aruna U OstroskyCanadaElwin Sharvill PROPOSAL
Julie S VenereJapanAsiya Javayant RENEWAL
Juan X IturbideFranceElwin Sharvill RENEWAL
Faith L InouyeJapanXuxue Feng UNQUALIFIED
Leon D ButtRussiaIvan Magalhaes RENEWAL
Emily Z GauchoBrazilAmy Elsner PROPOSAL
Murillo E CaldareraAustraliaAmy Elsner QUALIFIED
David A NestleFranceIvan Magalhaes NEW
Tony M SlusarskiRussiaOnyama Limba RENEWAL
Aditya I GauchoBrazilAmy Elsner NEW
Juan O InouyeItalyBernardo Dominic NEGOTIATION
Clifford I StensethIndiaIoni Bowcher NEGOTIATION
Octavia L SlusarskiItalyBernardo Dominic PROPOSAL
Stacey U BowleyFranceIoni Bowcher QUALIFIED
Aruna R SergiRussiaIvan Magalhaes NEW
Smith S CaldareraSpainIoni Bowcher QUALIFIED
Morrow P SlusarskiFranceIoni Bowcher NEGOTIATION
Jefferson V ShinkoGermanyAmy Elsner UNQUALIFIED
Jeanfrancois P GauchoCanadaStephen Shaw UNQUALIFIED
Antonio R CampainIndiaBernardo Dominic RENEWAL
Greenwood L AmigonRussiaAsiya Javayant PROPOSAL
Maria A GlickUnited KingdomAnna Fali RENEWAL
Ricardo L RoysterIndiaBernardo 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>