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
Kadeem H GauchoAustraliaIoni Bowcher NEGOTIATION
Sinclair U KolmetzCanadaBernardo Dominic NEW
Izzy A FlosiCanadaBernardo Dominic PROPOSAL
Silvio B CaldareraBrazilAnna Fali PROPOSAL
Clifford X FlosiRussiaIvan Magalhaes QUALIFIED
Cody X RoysterArgentinaAsiya Javayant PROPOSAL
Johnson G PoquetteAustraliaBernardo Dominic NEGOTIATION
Kaitlin G OstroskyArgentinaIvan Magalhaes NEW
Cody R MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin I PaprockiItalyElwin Sharvill QUALIFIED
Munro S ButtFranceIvan Magalhaes UNQUALIFIED
Kaitlin G RoysterJapanOnyama Limba NEGOTIATION
Deepesh O DilliardCanadaIvan Magalhaes UNQUALIFIED
Mujtaba S WieserAustraliaIvan Magalhaes NEW
Juan Q TollnerJapanAsiya Javayant NEW
Jennifer E SlusarskiBrazilXuxue Feng UNQUALIFIED
Aruna Q ButtArgentinaAsiya Javayant QUALIFIED
Jones I KuskoRussiaIoni Bowcher NEGOTIATION
Cody N PerinArgentinaElwin Sharvill PROPOSAL
Aika F WieserBrazilElwin Sharvill NEGOTIATION
Darci Y ButtJapanIoni Bowcher PROPOSAL
Darci P CaudyArgentinaAnna Fali NEGOTIATION
Nicolas B KolmetzSpainAsiya Javayant NEW
Jennifer G InouyeSpainIoni Bowcher NEGOTIATION
Smith U SchemmerRussiaAsiya Javayant QUALIFIED
Faith R GillianAustraliaXuxue Feng UNQUALIFIED
Costa L AmigonFranceElwin Sharvill NEW
Murillo Q IturbideArgentinaIoni Bowcher UNQUALIFIED
Deepesh A RoysterAustraliaIoni Bowcher NEGOTIATION
Jennifer L PerinAustraliaAmy Elsner RENEWAL
Izzy H BologniaUnited KingdomStephen Shaw UNQUALIFIED
Costa I BriddickUnited KingdomAsiya Javayant PROPOSAL
Leon D FlosiFranceBernardo Dominic QUALIFIED
Adams C SlusarskiFranceIvan Magalhaes PROPOSAL
Jones K FollerRussiaStephen Shaw NEW
Stacey H DoeArgentinaIvan Magalhaes UNQUALIFIED
James N CampainIndiaAnna Fali QUALIFIED
Maria R RutaCanadaStephen Shaw UNQUALIFIED
Aika O OldroydSpainXuxue Feng QUALIFIED
Juan L TollnerRussiaAmy Elsner NEW
Maisha M KolmetzItalyAsiya Javayant NEGOTIATION
Ashley Q KuskoUnited KingdomIoni Bowcher PROPOSAL
Rodrigues P GillianSpainAmy Elsner RENEWAL
Kadeem V RutaFranceAnna Fali NEW
Aika A KuskoJapanXuxue Feng NEGOTIATION
Ivar Q MaletArgentinaAnna Fali NEGOTIATION
Smith C VocelkaSpainBernardo Dominic PROPOSAL
Jones Z FerenczBrazilIvan Magalhaes PROPOSAL
Sinclair K SlusarskiBrazilStephen Shaw RENEWAL
Ashley L RutaItalyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ricardo U StockhamCanadaIoni Bowcher QUALIFIED
Leja J OldroydIndiaElwin Sharvill PROPOSAL
Jennifer E MaletFranceAmy Elsner QUALIFIED
Aditya W ShinkoJapanStephen Shaw NEW
Ashley N DarakjyJapanOnyama Limba QUALIFIED
Kadeem M StockhamRussiaIoni Bowcher NEW
Salvatore R GillianFranceXuxue Feng QUALIFIED
Ricardo Z IturbideRussiaElwin Sharvill NEGOTIATION
Isabel C SergiBrazilAnna Fali NEGOTIATION
Arvin O MorascaBrazilOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire Q NickaIndia2024-04-02Printing Dimensions PROPOSAL6Ivan Magalhaes
1001Murillo W PaprockiItaly2024-03-28Feltz Printing Service NEGOTIATION58Onyama Limba
1002Aditya T BologniaSpain2024-04-15Morlong Associates RENEWAL88Bernardo Dominic
1003Maria N CaudyFrance2024-04-26Feltz Printing Service QUALIFIED1Elwin Sharvill
1004David N WhobreyAustralia2024-04-12Printing Dimensions QUALIFIED58Bernardo Dominic
1005Rodrigues G TollnerCanada2024-04-15King, Christopher A Esq NEGOTIATION6Asiya Javayant
1006Leon A MarrierArgentina2024-04-01Rousseaux, Michael Esq PROPOSAL44Ivan Magalhaes
1007Stacey U MorascaIndia2024-04-08Feiner Bros UNQUALIFIED68Bernardo Dominic
1008Maisha F SchemmerRussia2024-04-22Dorl, James J Esq UNQUALIFIED37Elwin Sharvill
1009Jefferson I MarrierGermany2024-04-02Rousseaux, Michael Esq PROPOSAL40Stephen Shaw
1010Rodrigues Q FigeroaAustralia2024-04-16Chanay, Jeffrey A Esq QUALIFIED54Asiya Javayant
1011Kadeem Q PoquetteIndia2024-03-28Rousseaux, Michael Esq RENEWAL89Ioni Bowcher
1012Leja P IturbideSpain2024-04-15Dorl, James J Esq RENEWAL75Bernardo Dominic
1013Octavia O RulapaughGermany2024-04-18Feiner Bros UNQUALIFIED58Ioni Bowcher
1014Greenwood S ButtSpain2024-04-17Morlong Associates NEW55Anna Fali
1015Claire L IturbideItaly2024-03-29Printing Dimensions PROPOSAL60Asiya Javayant
1016Ricardo H PerinFrance2024-04-14Morlong Associates NEGOTIATION93Onyama Limba
1017Misaki U SaylorsIndia2024-03-30Feltz Printing Service UNQUALIFIED1Stephen Shaw
1018Clifford D FollerAustralia2024-04-02Buckley Miller Wright QUALIFIED52Asiya Javayant
1019Ivar T WaycottArgentina2024-04-12Rangoni Of Florence NEGOTIATION13Stephen Shaw
1020Arvin W WhobreyGermany2024-04-23Chanay, Jeffrey A Esq RENEWAL89Ioni Bowcher
1021Greenwood U WieserSpain2024-04-23Truhlar And Truhlar Attys NEW40Anna Fali
1022Darci G NestleGermany2024-03-28Rousseaux, Michael Esq NEGOTIATION98Bernardo Dominic
1023Julie W RutaGermany2024-04-12Chapman, Ross E Esq NEW26Bernardo Dominic
1024Costa W SchemmerCanada2024-04-09King, Christopher A Esq QUALIFIED21Ivan Magalhaes
1025Jefferson I GlickBrazil2024-04-25Feltz Printing Service QUALIFIED38Elwin Sharvill
1026Jennifer S WieserItaly2024-04-06Benton, John B Jr UNQUALIFIED62Elwin Sharvill
1027Murillo K DoeAustralia2024-04-10Truhlar And Truhlar Attys PROPOSAL81Amy Elsner
1028Greenwood V WieserItaly2024-03-29Commercial Press RENEWAL69Ivan Magalhaes
1029Wickens R BologniaItaly2024-03-29Chapman, Ross E Esq RENEWAL95Stephen Shaw
1030Adams T PaprockiRussia2024-04-14Chapman, Ross E Esq NEGOTIATION83Xuxue Feng
1031Jennifer O OstroskyItaly2024-03-29King, Christopher A Esq RENEWAL28Elwin Sharvill
1032Deepesh O SaylorsUnited Kingdom2024-04-17Rousseaux, Michael Esq QUALIFIED31Xuxue Feng
1033Deepesh U PaprockiIndia2024-04-08Rangoni Of Florence NEW58Elwin Sharvill
1034Deepesh R CampainFrance2024-03-31Chapman, Ross E Esq UNQUALIFIED1Bernardo Dominic
1035Maria H PerinRussia2024-04-07Feiner Bros NEGOTIATION17Asiya Javayant
1036Octavia U RutaRussia2024-04-21Dorl, James J Esq PROPOSAL65Bernardo Dominic
1037Juan T GarufiSpain2024-04-24Rousseaux, Michael Esq RENEWAL3Asiya Javayant
1038Rodrigues Y MaletAustralia2024-04-03Truhlar And Truhlar Attys NEW78Ioni Bowcher
1039Munro K GauchoJapan2024-04-21Rousseaux, Michael Esq PROPOSAL23Stephen Shaw
1040Kadeem A MorascaUnited Kingdom2024-04-22Chemel, James L Cpa QUALIFIED39Stephen Shaw
1041Leon V ChuiBrazil2024-04-22Benton, John B Jr PROPOSAL3Elwin Sharvill
1042Aika R SchemmerUnited Kingdom2024-04-18Chanay, Jeffrey A Esq NEW59Stephen Shaw
1043Salvatore M IturbideItaly2024-04-13Dorl, James J Esq QUALIFIED68Onyama Limba
1044Clifford D DilliardBrazil2024-04-08Rangoni Of Florence NEGOTIATION34Bernardo Dominic
1045Ricardo H AmigonRussia2024-04-11Chemel, James L Cpa PROPOSAL0Anna Fali
1046Isabel S CaudyGermany2024-04-07Benton, John B Jr QUALIFIED90Anna Fali
1047Octavia N NestleIndia2024-03-30Feltz Printing Service RENEWAL26Ivan Magalhaes
1048Ashley Q ButtGermany2024-04-26Rousseaux, Michael Esq UNQUALIFIED75Stephen Shaw
1049Salvatore Y PoquetteJapan2024-04-26Morlong Associates PROPOSAL29Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Salvatore M FollerFranceOnyama Limba NEW
Kadeem Y GarufiBrazilIoni Bowcher QUALIFIED
Faith H MacleadItalyAnna Fali PROPOSAL
Isabel E OstroskyIndiaIoni Bowcher PROPOSAL
Jefferson E PoquetteGermanyElwin Sharvill NEW
Smith Q ChuiCanadaAnna Fali QUALIFIED
Leja I MorascaCanadaBernardo Dominic NEGOTIATION
Emily Z RoysterRussiaBernardo Dominic PROPOSAL
Mujtaba H CaldareraIndiaAmy Elsner RENEWAL
Smith V MaletGermanyBernardo Dominic NEGOTIATION
Ashley D MaletFranceBernardo Dominic QUALIFIED
Morrow W DilliardAustraliaOnyama Limba PROPOSAL
Rodrigues M FigeroaCanadaIvan Magalhaes PROPOSAL
Jefferson J MacleadBrazilXuxue Feng QUALIFIED
Greenwood F ChuiSpainIvan Magalhaes NEGOTIATION
Francesco Z InouyeGermanyAmy Elsner UNQUALIFIED
Misaki T WieserItalyIvan Magalhaes NEGOTIATION
Julie X AlbaresRussiaElwin Sharvill RENEWAL
Mujtaba G OstroskyAustraliaBernardo Dominic UNQUALIFIED
Isabel O WaycottItalyAnna Fali QUALIFIED
Alejandro F DarakjyArgentinaBernardo Dominic PROPOSAL
Sinclair B InouyeJapanElwin Sharvill QUALIFIED
Adams Q MarrierCanadaElwin Sharvill NEW
Clifford S GarufiJapanIoni Bowcher NEW
Ricardo Z CampainCanadaBernardo Dominic NEGOTIATION
Kadeem J SchemmerFranceAnna Fali RENEWAL
Mayumi G MaletRussiaElwin Sharvill QUALIFIED
Leon L DoeRussiaStephen Shaw RENEWAL
Jones S SaylorsRussiaElwin Sharvill RENEWAL
Chavez I RutaRussiaXuxue Feng NEGOTIATION
Alejandro C OstroskyFranceAmy Elsner PROPOSAL
Faith V WaycottRussiaElwin Sharvill QUALIFIED
Claire J GillianSpainAmy Elsner QUALIFIED
Aruna G ShinkoGermanyAsiya Javayant RENEWAL
Jones U MorascaArgentinaOnyama Limba NEW
Murillo I WaycottRussiaAsiya Javayant QUALIFIED
Aika V PaprockiIndiaAmy Elsner UNQUALIFIED
Julie R CaldareraAustraliaAmy Elsner PROPOSAL
Morrow B MaletCanadaAsiya Javayant QUALIFIED
Stacey Q OldroydSpainElwin Sharvill RENEWAL
Alejandro S CampainCanadaBernardo Dominic NEW
Smith S GlickFranceStephen Shaw RENEWAL
Jeanfrancois A FlosiCanadaAnna Fali RENEWAL
Tony T IturbideBrazilIoni Bowcher UNQUALIFIED
Tony P MacleadArgentinaOnyama Limba NEW
Clifford S CaldareraArgentinaElwin Sharvill NEGOTIATION
Stacey G SergiBrazilStephen Shaw NEGOTIATION
Claire D DarakjyFranceBernardo Dominic NEGOTIATION
Aditya S PoquetteUnited KingdomStephen Shaw NEGOTIATION
Mujtaba E GlickUnited KingdomAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Jennifer G Sergi
Antonio A Morasca
Costa U Oldroyd
Sinclair W Iturbide
Mujtaba N Stockham
Silvio A Ostrosky
Ricardo O Royster
Rodrigues E Maclead
Jennifer P Ferencz
Nicolas Y Bowley
Darci A Dilliard
Wickens R Waycott
Julie I Butt
Cody J Tollner
Mujtaba N Butt
Juan R Ostrosky
Arvin K Poquette
Ricardo U Caldarera
Aika L Stockham
Adams I Malet
Jeanfrancois G Doe
Aika O Bolognia
Jeanfrancois L Slusarski
Clifford B Doe
Salvatore T Briddick
Sinclair F Glick
Nicolas R Inouye
Arvin O Garufi
Darci S Gillian
Jones M Stenseth
Clifford V Gaucho
James Y Ruta
Salvatore Y Ruta
Smith T Chui
Misaki P Nestle
Claire R Schemmer
Aruna R Albares
James V Iturbide
Octavia V Bowley
Kadeem U Doe
Aruna V Glick
Izzy D Waycott
Isabel X Dilliard
Maisha I Morasca
Jones Q Doe
Isabel V Marrier
Misaki D Wieser
Sinclair T Ostrosky
Francesco Y Flosi
Munro S Marrier
IdCountryDate
1000Germany2024-04-11
1001Brazil2024-04-14
1002Spain2024-04-26
1003Brazil2024-04-18
1004Spain2024-04-20
1005Argentina2024-04-13
1006Japan2024-04-22
1007France2024-04-23
1008Japan2024-04-19
1009Argentina2024-04-03
1010Australia2024-04-12
1011Australia2024-04-23
1012Australia2024-04-11
1013Canada2024-04-17
1014France2024-04-07
1015Canada2024-04-06
1016Canada2024-03-30
1017Italy2024-04-15
1018Argentina2024-03-31
1019Spain2024-04-01
1020Spain2024-03-31
1021Spain2024-04-16
1022Canada2024-04-07
1023France2024-03-29
1024France2024-03-31
1025Japan2024-04-23
1026Brazil2024-04-21
1027India2024-03-31
1028Australia2024-04-01
1029Italy2024-04-18
1030Italy2024-04-06
1031Canada2024-04-19
1032Italy2024-04-13
1033Germany2024-04-22
1034Japan2024-04-10
1035United Kingdom2024-04-25
1036Argentina2024-04-26
1037Spain2024-04-24
1038Argentina2024-03-30
1039Japan2024-04-12
1040Argentina2024-04-03
1041Australia2024-04-09
1042Australia2024-04-04
1043Germany2024-04-06
1044Spain2024-04-25
1045France2024-04-10
1046Russia2024-04-16
1047Australia2024-04-04
1048Italy2024-04-19
1049France2024-04-11

On-Demand Data

NameIdCountryDate
Arvin M Venere1000Italy2024-04-16
Kadeem L Morasca1001India2024-04-25
Smith T Butt1002Germany2024-04-22
Murillo F Wieser1003Italy2024-04-03
Johnson X Whobrey1004Brazil2024-03-30
Izzy H Sergi1005Italy2024-03-29
Izzy P Venere1006Italy2024-04-08
Julie H Nestle1007Argentina2024-04-26
Jennifer A Rim1008Germany2024-04-25
Jeanfrancois V Gillian1009Canada2024-04-19
Francesco D Briddick1010Russia2024-04-22
Nicolas M Wieser1011Russia2024-04-06
Sinclair J Ostrosky1012Japan2024-04-21
Silvio E Kolmetz1013Japan2024-04-04
Costa D Butt1014Japan2024-04-26
Clifford H Slusarski1015Australia2024-04-14
Nicolas P Caudy1016Spain2024-03-31
Mayumi C Caudy1017France2024-04-22
Ivar P Poquette1018United Kingdom2024-04-06
Izzy Z Briddick1019Japan2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha I KuskoCanadaXuxue Feng RENEWAL
Clifford L VenereCanadaAmy Elsner UNQUALIFIED
Clifford C SergiIndiaIoni Bowcher UNQUALIFIED
Kadeem J WaycottAustraliaXuxue Feng RENEWAL
Arvin Q OldroydJapanIvan Magalhaes PROPOSAL
Faith I CaldareraArgentinaIvan Magalhaes NEW
Francesco T ShinkoItalyXuxue Feng NEW
Jennifer V ShinkoSpainBernardo Dominic RENEWAL
Costa V NickaRussiaOnyama Limba NEW
Silvio K FollerItalyOnyama Limba RENEWAL
Alejandro N AlbaresItalyStephen Shaw UNQUALIFIED
Costa T NickaItalyAnna Fali UNQUALIFIED
Mujtaba O ShinkoCanadaElwin Sharvill NEGOTIATION
Costa N MaletItalyAsiya Javayant PROPOSAL
Ivar D MarrierGermanyStephen Shaw NEW
Octavia Q GarufiSpainXuxue Feng NEGOTIATION
Leon T RimJapanBernardo Dominic RENEWAL
Munro M PoquetteIndiaOnyama Limba NEGOTIATION
Leon D FigeroaItalyIoni Bowcher PROPOSAL
Claire I DilliardCanadaElwin Sharvill NEW
Octavia H PaprockiItalyElwin Sharvill NEGOTIATION
Murillo R ShinkoRussiaXuxue Feng UNQUALIFIED
Jeanfrancois F WaycottRussiaAnna Fali NEW
Ricardo D IturbideArgentinaOnyama Limba RENEWAL
Aruna G ChuiBrazilBernardo Dominic NEW
Alejandro E PaprockiGermanyElwin Sharvill NEGOTIATION
James T TollnerCanadaStephen Shaw UNQUALIFIED
Ricardo L RulapaughRussiaStephen Shaw UNQUALIFIED
Aika S NestleIndiaStephen Shaw NEW
James P MarrierUnited KingdomOnyama Limba QUALIFIED
Ashley V MaletCanadaAsiya Javayant PROPOSAL
Tony M PerinGermanyAmy Elsner NEGOTIATION
Morrow D SergiIndiaBernardo Dominic RENEWAL
Francesco I DilliardArgentinaXuxue Feng UNQUALIFIED
Stacey X DilliardBrazilIvan Magalhaes PROPOSAL
Wickens X AlbaresGermanyAnna Fali NEGOTIATION
Arvin A MarrierBrazilElwin Sharvill NEGOTIATION
Clifford P SergiItalyOnyama Limba RENEWAL
Kaitlin E FollerRussiaIoni Bowcher QUALIFIED
Maisha X OstroskySpainAnna Fali 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>