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
David O BriddickSpainElwin Sharvill NEGOTIATION
Greenwood W WieserIndiaIvan Magalhaes NEW
Kaitlin H KolmetzUnited KingdomIoni Bowcher RENEWAL
Murillo A VocelkaSpainIoni Bowcher RENEWAL
Izzy Q InouyeFranceIvan Magalhaes NEGOTIATION
Nicolas T SergiBrazilIoni Bowcher UNQUALIFIED
Faith V ButtUnited KingdomElwin Sharvill PROPOSAL
Leon S MarrierUnited KingdomStephen Shaw NEGOTIATION
Maisha W BologniaGermanyBernardo Dominic PROPOSAL
Alejandro C GlickIndiaOnyama Limba PROPOSAL
Kadeem H DarakjyAustraliaIvan Magalhaes RENEWAL
Ricardo W MaletArgentinaIoni Bowcher NEGOTIATION
Morrow Y WieserAustraliaElwin Sharvill QUALIFIED
Costa J TollnerSpainElwin Sharvill NEW
Aika R FollerIndiaIvan Magalhaes RENEWAL
Maisha Y KolmetzBrazilStephen Shaw PROPOSAL
Jefferson T BologniaGermanyAsiya Javayant UNQUALIFIED
Misaki B WieserUnited KingdomBernardo Dominic NEGOTIATION
Ashley J KuskoJapanOnyama Limba QUALIFIED
Johnson O PerinJapanBernardo Dominic NEW
Octavia P MacleadCanadaXuxue Feng UNQUALIFIED
Cody I RutaAustraliaStephen Shaw NEGOTIATION
Arvin J WieserCanadaAmy Elsner PROPOSAL
Murillo A PoquetteGermanyAnna Fali QUALIFIED
Isabel J SergiIndiaStephen Shaw RENEWAL
Kaitlin C MarrierJapanOnyama Limba PROPOSAL
Jeanfrancois V CaudyAustraliaOnyama Limba UNQUALIFIED
Julie S GillianFranceElwin Sharvill NEW
Claire T DarakjyCanadaElwin Sharvill QUALIFIED
Murillo S RulapaughFranceAnna Fali RENEWAL
Faith E PoquetteGermanyOnyama Limba PROPOSAL
Aditya W StensethUnited KingdomXuxue Feng RENEWAL
Munro P InouyeRussiaIvan Magalhaes PROPOSAL
Greenwood Z SlusarskiCanadaAnna Fali PROPOSAL
Alejandro R NestleItalyAmy Elsner NEGOTIATION
Jefferson E SergiCanadaIvan Magalhaes NEGOTIATION
Nicolas E ButtJapanAnna Fali PROPOSAL
Maisha G CaudyGermanyIvan Magalhaes NEGOTIATION
Cody V SchemmerCanadaAsiya Javayant NEGOTIATION
Smith Q FigeroaUnited KingdomXuxue Feng NEW
Alejandro C StockhamAustraliaElwin Sharvill QUALIFIED
Jeanfrancois I OldroydBrazilOnyama Limba UNQUALIFIED
Darci Q BologniaSpainStephen Shaw NEGOTIATION
Aditya H SchemmerGermanyElwin Sharvill QUALIFIED
Silvio E FlosiAustraliaBernardo Dominic PROPOSAL
Chavez F PerinFranceBernardo Dominic NEGOTIATION
Ricardo Y VenereGermanyAnna Fali UNQUALIFIED
James E DarakjyIndiaBernardo Dominic NEW
Isabel L FollerFranceBernardo Dominic RENEWAL
Greenwood Y CampainUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Misaki B FigeroaSpainXuxue Feng UNQUALIFIED
Ricardo B NestleFranceXuxue Feng QUALIFIED
Antonio B InouyeGermanyOnyama Limba UNQUALIFIED
Octavia N AmigonRussiaAmy Elsner QUALIFIED
Mujtaba Q DoeAustraliaElwin Sharvill QUALIFIED
Adams F PoquetteJapanXuxue Feng QUALIFIED
Jefferson T OldroydGermanyElwin Sharvill UNQUALIFIED
Costa O ChuiBrazilAnna Fali NEW
Kaitlin B OldroydUnited KingdomAmy Elsner QUALIFIED
Rodrigues A RoysterRussiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens V DoeArgentina2024-04-06Chemel, James L Cpa NEGOTIATION44Ivan Magalhaes
1001Stacey P StensethAustralia2024-03-23Commercial Press RENEWAL10Ivan Magalhaes
1002Ivar Y VocelkaCanada2024-04-18Rousseaux, Michael Esq UNQUALIFIED29Bernardo Dominic
1003Nicolas T WhobreySpain2024-04-05Rousseaux, Michael Esq RENEWAL63Asiya Javayant
1004Maisha O SaylorsJapan2024-03-25Buckley Miller Wright PROPOSAL94Amy Elsner
1005Deepesh X MorascaItaly2024-03-23Printing Dimensions PROPOSAL31Amy Elsner
1006Costa C GlickArgentina2024-04-04Buckley Miller Wright RENEWAL60Xuxue Feng
1007Aditya J CampainSpain2024-04-13Feltz Printing Service PROPOSAL67Ioni Bowcher
1008Francesco V SergiItaly2024-04-08Truhlar And Truhlar Attys PROPOSAL33Xuxue Feng
1009Julie R WhobreyAustralia2024-03-29Printing Dimensions NEGOTIATION6Ioni Bowcher
1010Ashley Z FollerIndia2024-03-26Chanay, Jeffrey A Esq UNQUALIFIED31Stephen Shaw
1011Wickens Q GillianItaly2024-04-07Printing Dimensions QUALIFIED89Elwin Sharvill
1012Nicolas R NestleBrazil2024-03-21Morlong Associates PROPOSAL35Asiya Javayant
1013Salvatore H ShinkoUnited Kingdom2024-03-28King, Christopher A Esq PROPOSAL39Ioni Bowcher
1014James B MarrierItaly2024-04-12King, Christopher A Esq NEGOTIATION53Bernardo Dominic
1015Alejandro J AmigonBrazil2024-03-21Buckley Miller Wright NEGOTIATION35Anna Fali
1016Deepesh C SergiUnited Kingdom2024-03-22Chanay, Jeffrey A Esq QUALIFIED50Ivan Magalhaes
1017Costa G WaycottItaly2024-03-21Printing Dimensions PROPOSAL58Asiya Javayant
1018Greenwood Z InouyeSpain2024-03-29Rousseaux, Michael Esq QUALIFIED30Bernardo Dominic
1019Salvatore J NickaRussia2024-03-25Printing Dimensions NEW52Onyama Limba
1020Stacey A VenereJapan2024-04-16Chemel, James L Cpa NEW39Ivan Magalhaes
1021Aruna N TollnerAustralia2024-03-24Truhlar And Truhlar Attys UNQUALIFIED86Bernardo Dominic
1022Darci W AlbaresJapan2024-03-26Rangoni Of Florence PROPOSAL7Anna Fali
1023Costa P ButtIndia2024-04-14Morlong Associates UNQUALIFIED84Onyama Limba
1024Darci P ChuiFrance2024-04-14King, Christopher A Esq QUALIFIED71Stephen Shaw
1025Munro E MacleadAustralia2024-04-08Truhlar And Truhlar Attys QUALIFIED23Stephen Shaw
1026Clifford D OstroskySpain2024-04-02Chapman, Ross E Esq NEGOTIATION59Ivan Magalhaes
1027Murillo B NickaArgentina2024-04-10Chapman, Ross E Esq NEW95Ivan Magalhaes
1028Alejandro C GlickSpain2024-03-24Feltz Printing Service QUALIFIED80Anna Fali
1029Octavia A RulapaughFrance2024-03-22Feltz Printing Service NEGOTIATION17Asiya Javayant
1030Johnson R NestleAustralia2024-03-29Chapman, Ross E Esq QUALIFIED43Bernardo Dominic
1031Rodrigues P BowleyFrance2024-03-24Chanay, Jeffrey A Esq RENEWAL85Ioni Bowcher
1032Chavez G MarrierSpain2024-04-06Commercial Press NEGOTIATION32Ioni Bowcher
1033Darci L RoysterIndia2024-03-21Dorl, James J Esq NEW63Ivan Magalhaes
1034Ashley R KuskoJapan2024-04-11Feiner Bros NEW16Anna Fali
1035Munro L PoquetteSpain2024-03-31Benton, John B Jr RENEWAL9Bernardo Dominic
1036Leja W SaylorsIndia2024-03-23Printing Dimensions NEW12Elwin Sharvill
1037Clifford E MacleadIndia2024-03-20Benton, John B Jr RENEWAL46Ivan Magalhaes
1038Tony N DoeUnited Kingdom2024-04-07Chemel, James L Cpa NEGOTIATION35Xuxue Feng
1039Aika G SlusarskiRussia2024-04-13Rousseaux, Michael Esq QUALIFIED27Bernardo Dominic
1040Maisha U MorascaBrazil2024-04-11Chemel, James L Cpa UNQUALIFIED9Amy Elsner
1041Johnson F ButtRussia2024-04-15Chemel, James L Cpa UNQUALIFIED18Ivan Magalhaes
1042Deepesh E KuskoSpain2024-04-12Commercial Press QUALIFIED73Anna Fali
1043Ashley W FlosiItaly2024-03-24Chanay, Jeffrey A Esq QUALIFIED63Asiya Javayant
1044Deepesh K MacleadIndia2024-04-11Rangoni Of Florence NEW14Amy Elsner
1045Jennifer E ChuiCanada2024-03-30Feiner Bros UNQUALIFIED32Asiya Javayant
1046Murillo I MaletGermany2024-04-16Benton, John B Jr UNQUALIFIED68Ioni Bowcher
1047Tony Q MorascaRussia2024-04-07Chanay, Jeffrey A Esq PROPOSAL28Elwin Sharvill
1048Antonio R NestleJapan2024-03-21Feltz Printing Service UNQUALIFIED82Stephen Shaw
1049Sinclair Y DarakjyRussia2024-04-13Buckley Miller Wright NEGOTIATION54Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jennifer Y GauchoBrazilXuxue Feng PROPOSAL
Deepesh B VenereGermanyStephen Shaw PROPOSAL
Emily A ChuiGermanyIvan Magalhaes NEGOTIATION
Misaki E SaylorsFranceAsiya Javayant NEGOTIATION
Ricardo K KuskoFranceAsiya Javayant NEW
Julie A SchemmerRussiaStephen Shaw NEW
Clifford T PerinFranceOnyama Limba PROPOSAL
Johnson D PaprockiAustraliaIvan Magalhaes PROPOSAL
Costa I ButtSpainOnyama Limba UNQUALIFIED
Cody D AmigonJapanElwin Sharvill NEW
Juan G ChuiFranceIvan Magalhaes RENEWAL
Sinclair X ShinkoFranceAsiya Javayant NEW
Jones P WieserJapanXuxue Feng RENEWAL
Cody U DilliardJapanIvan Magalhaes UNQUALIFIED
Aditya C KolmetzSpainStephen Shaw UNQUALIFIED
Ricardo A DilliardSpainStephen Shaw RENEWAL
Arvin J BowleyItalyAnna Fali PROPOSAL
Ricardo O KuskoGermanyAsiya Javayant NEGOTIATION
Jones J StensethSpainIoni Bowcher NEW
Aruna J AmigonCanadaAnna Fali QUALIFIED
Wickens V SergiAustraliaAnna Fali NEW
Jeanfrancois H RimItalyElwin Sharvill PROPOSAL
Faith A ShinkoUnited KingdomStephen Shaw RENEWAL
Kadeem Y IturbideBrazilXuxue Feng NEW
Misaki F PoquetteJapanElwin Sharvill UNQUALIFIED
Aika G WaycottRussiaXuxue Feng NEGOTIATION
Isabel Z OstroskyGermanyStephen Shaw QUALIFIED
Jennifer Q DarakjyCanadaOnyama Limba QUALIFIED
Francesco M MacleadBrazilStephen Shaw NEW
Darci K ShinkoGermanyStephen Shaw UNQUALIFIED
Maisha M RutaAustraliaAsiya Javayant PROPOSAL
Juan O WieserSpainIoni Bowcher QUALIFIED
Claire F IturbideUnited KingdomAmy Elsner NEGOTIATION
Ivar I DilliardItalyBernardo Dominic RENEWAL
Greenwood Z GillianCanadaBernardo Dominic RENEWAL
Sinclair O RulapaughRussiaIvan Magalhaes NEW
Maisha U RimItalyAmy Elsner NEGOTIATION
Wickens V ShinkoGermanyIvan Magalhaes UNQUALIFIED
Costa N RutaFranceAmy Elsner QUALIFIED
Leon U ShinkoSpainBernardo Dominic NEGOTIATION
Alejandro L GauchoArgentinaStephen Shaw NEGOTIATION
Misaki D BriddickCanadaAnna Fali NEGOTIATION
Isabel R CaudyIndiaAnna Fali NEW
Darci Y VocelkaFranceIvan Magalhaes NEGOTIATION
Mayumi X MaletAustraliaIoni Bowcher RENEWAL
Francesco I MaletRussiaAmy Elsner NEGOTIATION
Smith K CampainUnited KingdomAmy Elsner UNQUALIFIED
Francesco X DilliardRussiaStephen Shaw UNQUALIFIED
Aika B ChuiJapanStephen Shaw UNQUALIFIED
Jones W CaldareraCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Silvio Y Briddick
Ivar O Poquette
Maria S Chui
Alejandro U Inouye
Adams C Sergi
Darci D Doe
Faith W Briddick
Maisha Z Rulapaugh
Rodrigues F Paprocki
Jones R Vocelka
Ricardo R Briddick
Alejandro D Paprocki
Rodrigues J Doe
Ricardo O Vocelka
Claire F Venere
Morrow M Bowley
Isabel U Ferencz
Jeanfrancois Y Royster
Claire S Maclead
Ashley X Oldroyd
Maria O Schemmer
Chavez L Chui
Silvio X Iturbide
Adams N Kusko
Aditya T Ruta
Isabel O Caldarera
Jefferson U Poquette
Emily F Bolognia
Ashley Q Ostrosky
Kaitlin S Whobrey
Jeanfrancois Z Caudy
Stacey D Perin
Clifford H Marrier
Kaitlin X Shinko
Silvio J Kolmetz
Jennifer M Saylors
Misaki U Iturbide
Alejandro F Ostrosky
Nicolas P Wieser
Antonio W Doe
Kadeem F Nicka
Leja H Ostrosky
Kaitlin C Flosi
Jeanfrancois U Tollner
Jennifer W Wieser
Nicolas E Figeroa
Arvin T Marrier
Antonio Z Venere
Juan Q Darakjy
Rodrigues C Kolmetz
IdCountryDate
1000Russia2024-04-16
1001Australia2024-03-21
1002Italy2024-04-06
1003Germany2024-04-16
1004India2024-04-04
1005Australia2024-04-10
1006Germany2024-04-04
1007Russia2024-04-16
1008Australia2024-03-27
1009United Kingdom2024-04-06
1010Argentina2024-03-24
1011Russia2024-04-15
1012Australia2024-04-05
1013United Kingdom2024-04-18
1014Spain2024-04-04
1015Italy2024-04-18
1016Spain2024-04-05
1017Italy2024-04-09
1018Brazil2024-03-24
1019Spain2024-03-28
1020Argentina2024-04-13
1021France2024-04-05
1022France2024-03-26
1023Japan2024-04-03
1024Brazil2024-03-23
1025Spain2024-03-28
1026Canada2024-03-29
1027Germany2024-03-29
1028France2024-04-08
1029Canada2024-03-28
1030Canada2024-04-15
1031Argentina2024-04-16
1032India2024-04-09
1033Brazil2024-04-07
1034Germany2024-04-16
1035Canada2024-03-31
1036Italy2024-04-02
1037Canada2024-04-15
1038Germany2024-03-29
1039France2024-04-09
1040Australia2024-04-08
1041India2024-03-31
1042Russia2024-04-12
1043France2024-03-29
1044Germany2024-04-17
1045United Kingdom2024-03-23
1046India2024-03-27
1047Brazil2024-04-06
1048Australia2024-03-29
1049Italy2024-03-26

On-Demand Data

NameIdCountryDate
Stacey R Poquette1000India2024-03-22
Aruna C Ruta1001Australia2024-04-04
Silvio Z Sergi1002United Kingdom2024-04-06
Silvio K Butt1003Australia2024-04-04
Stacey E Kolmetz1004Italy2024-03-25
Mujtaba U Slusarski1005Brazil2024-03-25
Ashley P Doe1006Japan2024-03-31
Claire G Whobrey1007Argentina2024-03-29
Antonio S Bowley1008Japan2024-04-14
Greenwood F Ostrosky1009Argentina2024-04-11
Francesco R Morasca1010Brazil2024-03-27
Darci J Ostrosky1011Spain2024-04-08
Nicolas K Sergi1012Argentina2024-03-24
Morrow H Malet1013Brazil2024-03-20
Maisha T Ferencz1014Spain2024-04-02
Mujtaba B Stockham1015India2024-04-12
Costa O Foller1016France2024-04-08
Wickens Z Gillian1017Italy2024-04-15
Clifford T Ruta1018United Kingdom2024-03-27
Murillo W Whobrey1019France2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio C NickaUnited KingdomAsiya Javayant RENEWAL
Arvin I BriddickIndiaElwin Sharvill NEGOTIATION
Johnson A DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Tony K SchemmerFranceStephen Shaw NEW
Antonio Y ButtIndiaAsiya Javayant UNQUALIFIED
Munro I ButtCanadaBernardo Dominic RENEWAL
Isabel P AmigonAustraliaAmy Elsner RENEWAL
Aruna G FlosiGermanyElwin Sharvill QUALIFIED
Jefferson T VenereGermanyAnna Fali NEGOTIATION
Deepesh Z ChuiGermanyElwin Sharvill UNQUALIFIED
Murillo O SaylorsArgentinaElwin Sharvill NEGOTIATION
Munro O GlickArgentinaXuxue Feng RENEWAL
Leja Y SaylorsGermanyAnna Fali RENEWAL
Julie M CaudyCanadaAnna Fali PROPOSAL
Cody B PoquetteRussiaXuxue Feng UNQUALIFIED
Emily E GlickIndiaAsiya Javayant QUALIFIED
Jefferson Q RimGermanyElwin Sharvill QUALIFIED
Costa J OldroydSpainOnyama Limba NEW
Morrow I WhobreyJapanIoni Bowcher NEW
Mujtaba D RimUnited KingdomOnyama Limba PROPOSAL
Aruna P PoquetteAustraliaXuxue Feng NEW
Stacey N ShinkoFranceAnna Fali PROPOSAL
Jefferson Z GarufiSpainAnna Fali NEGOTIATION
Aruna V MaletItalyStephen Shaw PROPOSAL
Jennifer Z RutaIndiaIvan Magalhaes QUALIFIED
Jeanfrancois U MacleadCanadaOnyama Limba RENEWAL
Murillo V MaletSpainAsiya Javayant RENEWAL
Jefferson P AlbaresArgentinaXuxue Feng NEW
Mayumi R FollerBrazilXuxue Feng UNQUALIFIED
Ashley Q WieserBrazilAsiya Javayant NEW
James N KuskoAustraliaElwin Sharvill UNQUALIFIED
Clifford R AlbaresGermanyXuxue Feng UNQUALIFIED
Adams J SchemmerAustraliaOnyama Limba UNQUALIFIED
Ashley C RulapaughJapanIvan Magalhaes NEW
Jeanfrancois Q DilliardSpainAsiya Javayant QUALIFIED
Jennifer I NickaRussiaBernardo Dominic UNQUALIFIED
Juan U SaylorsRussiaElwin Sharvill NEW
Jeanfrancois R DilliardJapanIvan Magalhaes NEW
Darci K SaylorsUnited KingdomOnyama Limba NEGOTIATION
Izzy G GlickSpainXuxue Feng 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>