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
Murillo Q CampainIndiaAmy Elsner QUALIFIED
Chavez A SlusarskiItalyXuxue Feng PROPOSAL
Clifford K TollnerAustraliaAmy Elsner PROPOSAL
Misaki I CampainSpainOnyama Limba RENEWAL
Johnson L DoeBrazilElwin Sharvill QUALIFIED
Ricardo O MaletGermanyIvan Magalhaes RENEWAL
David B GlickRussiaAmy Elsner QUALIFIED
Mujtaba Y RimGermanyBernardo Dominic NEW
Smith Z NickaFranceElwin Sharvill UNQUALIFIED
Julie X CaudyUnited KingdomBernardo Dominic QUALIFIED
Ricardo T SchemmerIndiaAsiya Javayant QUALIFIED
Jefferson A PoquetteArgentinaIvan Magalhaes RENEWAL
Francesco A TollnerJapanAnna Fali UNQUALIFIED
Jefferson U KolmetzItalyIvan Magalhaes QUALIFIED
Morrow Q AmigonGermanyAmy Elsner UNQUALIFIED
Isabel K VocelkaSpainIvan Magalhaes NEGOTIATION
Clifford Z SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois S PerinArgentinaAnna Fali QUALIFIED
Kadeem G PerinCanadaElwin Sharvill NEW
Kaitlin J MaletItalyElwin Sharvill QUALIFIED
Ricardo S MacleadJapanIoni Bowcher NEW
Cody F PaprockiBrazilOnyama Limba UNQUALIFIED
Mujtaba A PaprockiJapanIvan Magalhaes QUALIFIED
Ashley R BriddickJapanBernardo Dominic NEGOTIATION
Arvin F MacleadCanadaElwin Sharvill NEW
Stacey H PoquetteFranceElwin Sharvill NEGOTIATION
Leja E MorascaRussiaOnyama Limba QUALIFIED
Wickens O VenereRussiaIvan Magalhaes NEGOTIATION
Ivar H TollnerJapanXuxue Feng QUALIFIED
Leja U ShinkoBrazilXuxue Feng RENEWAL
Julie W FigeroaUnited KingdomOnyama Limba PROPOSAL
Mujtaba M DilliardCanadaAmy Elsner UNQUALIFIED
Kadeem E AmigonArgentinaStephen Shaw NEGOTIATION
Stacey B BriddickItalyBernardo Dominic NEGOTIATION
Maria F StensethRussiaAnna Fali PROPOSAL
Aika B MarrierAustraliaIvan Magalhaes NEGOTIATION
Leon K FerenczSpainIvan Magalhaes RENEWAL
Isabel Q ChuiSpainElwin Sharvill UNQUALIFIED
Kadeem K WieserItalyAsiya Javayant NEW
Costa T KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba S PaprockiUnited KingdomAsiya Javayant UNQUALIFIED
Johnson X SergiBrazilAsiya Javayant UNQUALIFIED
Juan Y DoeArgentinaAsiya Javayant PROPOSAL
Jones R DilliardArgentinaOnyama Limba QUALIFIED
Clifford U MaletGermanyAnna Fali NEGOTIATION
Chavez Z OstroskyBrazilXuxue Feng UNQUALIFIED
Aruna R TollnerJapanIvan Magalhaes UNQUALIFIED
Jones O RoysterUnited KingdomIoni Bowcher NEW
Rodrigues F PaprockiAustraliaAmy Elsner UNQUALIFIED
Kaitlin G KuskoCanadaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya D DilliardUnited KingdomIvan Magalhaes NEW
Misaki S CaudyGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois M FerenczIndiaIoni Bowcher NEW
Adams V InouyeItalyOnyama Limba UNQUALIFIED
Wickens C MaletIndiaAnna Fali NEW
Mujtaba O GarufiSpainElwin Sharvill NEW
Darci J CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Costa B RimJapanAsiya Javayant UNQUALIFIED
Murillo S NestleAustraliaBernardo Dominic PROPOSAL
Rodrigues X AlbaresGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody W CampainUnited Kingdom2024-04-19Dorl, James J Esq UNQUALIFIED95Asiya Javayant
1001Sinclair Y ButtIndia2024-04-24Feltz Printing Service NEGOTIATION38Asiya Javayant
1002Faith I GlickBrazil2024-04-06Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1003Jeanfrancois I FigeroaFrance2024-04-27Printing Dimensions PROPOSAL61Bernardo Dominic
1004Misaki G MaletArgentina2024-04-12Rousseaux, Michael Esq NEGOTIATION89Asiya Javayant
1005Aditya R SergiIndia2024-04-22Buckley Miller Wright PROPOSAL24Onyama Limba
1006Aika O PoquetteJapan2024-04-13Feiner Bros QUALIFIED54Onyama Limba
1007Munro S RoysterJapan2024-04-09Commercial Press NEGOTIATION80Ioni Bowcher
1008Claire P AmigonUnited Kingdom2024-04-25Truhlar And Truhlar Attys NEGOTIATION58Ioni Bowcher
1009Jeanfrancois X PoquetteRussia2024-04-02Rangoni Of Florence PROPOSAL7Stephen Shaw
1010Aruna L CampainBrazil2024-04-18Printing Dimensions NEGOTIATION0Bernardo Dominic
1011Deepesh T OstroskyRussia2024-04-17Chanay, Jeffrey A Esq RENEWAL82Elwin Sharvill
1012Maria E DarakjyFrance2024-04-29Rangoni Of Florence NEGOTIATION21Amy Elsner
1013Tony V ButtIndia2024-04-04Rousseaux, Michael Esq UNQUALIFIED3Bernardo Dominic
1014Ashley K AlbaresRussia2024-04-24Commercial Press QUALIFIED51Elwin Sharvill
1015Misaki L SergiSpain2024-04-23Printing Dimensions NEGOTIATION92Ioni Bowcher
1016Jefferson W MarrierUnited Kingdom2024-04-04Morlong Associates PROPOSAL34Onyama Limba
1017Smith T StensethGermany2024-04-16Morlong Associates PROPOSAL67Anna Fali
1018Aruna U MorascaArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION69Amy Elsner
1019Juan L RoysterIndia2024-04-15Feltz Printing Service NEW49Asiya Javayant
1020Izzy H MarrierFrance2024-04-05King, Christopher A Esq NEW7Asiya Javayant
1021Faith C NickaGermany2024-04-21Chapman, Ross E Esq UNQUALIFIED90Asiya Javayant
1022Jeanfrancois W MaletItaly2024-04-07Commercial Press NEGOTIATION67Amy Elsner
1023Izzy E GauchoItaly2024-04-02Buckley Miller Wright RENEWAL18Elwin Sharvill
1024Ashley L TollnerRussia2024-05-01King, Christopher A Esq PROPOSAL5Onyama Limba
1025Deepesh L WhobreyCanada2024-04-25Rousseaux, Michael Esq QUALIFIED26Bernardo Dominic
1026Arvin S ChuiIndia2024-04-16Buckley Miller Wright RENEWAL95Bernardo Dominic
1027Nicolas K FollerJapan2024-04-09Commercial Press QUALIFIED89Ioni Bowcher
1028Maisha L OldroydItaly2024-04-20Feiner Bros PROPOSAL54Bernardo Dominic
1029Costa G FigeroaItaly2024-04-08Chanay, Jeffrey A Esq QUALIFIED26Xuxue Feng
1030Smith C GarufiCanada2024-04-11Rousseaux, Michael Esq RENEWAL2Ioni Bowcher
1031Adams Z KuskoCanada2024-05-01Dorl, James J Esq PROPOSAL46Anna Fali
1032Mujtaba U MorascaBrazil2024-04-22Commercial Press PROPOSAL37Amy Elsner
1033Salvatore T BowleyJapan2024-04-09Feiner Bros NEW52Bernardo Dominic
1034Antonio G MaletGermany2024-04-03Feltz Printing Service UNQUALIFIED55Asiya Javayant
1035Antonio Y StensethSpain2024-04-11Truhlar And Truhlar Attys NEGOTIATION46Elwin Sharvill
1036Smith D InouyeGermany2024-04-25Dorl, James J Esq NEGOTIATION8Xuxue Feng
1037Ashley M WieserSpain2024-04-27Rousseaux, Michael Esq QUALIFIED61Xuxue Feng
1038Alejandro J VocelkaItaly2024-04-18Morlong Associates PROPOSAL93Amy Elsner
1039Maisha R AmigonArgentina2024-04-16Feltz Printing Service QUALIFIED99Ioni Bowcher
1040Misaki K GillianAustralia2024-04-09Commercial Press RENEWAL81Ivan Magalhaes
1041Ashley B MaletFrance2024-04-15Commercial Press UNQUALIFIED40Anna Fali
1042Cody G SaylorsArgentina2024-04-18Buckley Miller Wright QUALIFIED56Amy Elsner
1043Mujtaba T MaletJapan2024-04-22Feiner Bros UNQUALIFIED45Ioni Bowcher
1044Faith R FollerBrazil2024-04-22Printing Dimensions PROPOSAL2Elwin Sharvill
1045Juan H SchemmerCanada2024-04-20Buckley Miller Wright QUALIFIED5Bernardo Dominic
1046Jones Z VocelkaBrazil2024-04-24Rangoni Of Florence PROPOSAL45Asiya Javayant
1047Wickens D OldroydUnited Kingdom2024-04-26King, Christopher A Esq QUALIFIED62Xuxue Feng
1048Wickens H RimGermany2024-04-03King, Christopher A Esq NEW34Ivan Magalhaes
1049Arvin W ChuiBrazil2024-04-06Chapman, Ross E Esq RENEWAL42Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Costa G PaprockiIndiaAmy Elsner NEGOTIATION
Jeanfrancois Q TollnerCanadaXuxue Feng RENEWAL
Kadeem E WieserJapanBernardo Dominic NEW
Misaki G KolmetzUnited KingdomAnna Fali NEW
Deepesh H RutaRussiaElwin Sharvill UNQUALIFIED
Jeanfrancois L VenereJapanAmy Elsner RENEWAL
Julie L MarrierItalyOnyama Limba NEGOTIATION
Darci C NickaJapanOnyama Limba PROPOSAL
Maisha M GillianItalyStephen Shaw QUALIFIED
Mayumi E GarufiIndiaAmy Elsner PROPOSAL
Johnson A RimAustraliaAmy Elsner NEW
Jeanfrancois M BologniaSpainAnna Fali NEW
Mayumi U PoquetteIndiaIvan Magalhaes NEGOTIATION
Salvatore Y GlickAustraliaStephen Shaw NEW
Munro O FigeroaAustraliaIoni Bowcher NEGOTIATION
Silvio S WhobreyIndiaXuxue Feng QUALIFIED
Sinclair I WhobreyUnited KingdomXuxue Feng NEGOTIATION
Aditya P AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Darci S RulapaughFranceXuxue Feng RENEWAL
Chavez Z FerenczJapanAmy Elsner QUALIFIED
Julie U GauchoFranceOnyama Limba PROPOSAL
Kaitlin R RoysterFranceAsiya Javayant NEGOTIATION
Nicolas W GillianFranceXuxue Feng NEGOTIATION
Nicolas A KolmetzBrazilIvan Magalhaes NEGOTIATION
Aditya C ShinkoArgentinaIoni Bowcher UNQUALIFIED
Octavia A BowleyJapanAsiya Javayant RENEWAL
Jefferson L OstroskyItalyBernardo Dominic QUALIFIED
Munro H BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Johnson Z AlbaresUnited KingdomAmy Elsner NEGOTIATION
Octavia O RutaSpainOnyama Limba QUALIFIED
Faith Y NestleRussiaAnna Fali RENEWAL
Kadeem J RutaJapanAnna Fali RENEWAL
Aditya B KolmetzAustraliaBernardo Dominic RENEWAL
James K WaycottAustraliaElwin Sharvill UNQUALIFIED
Leon T SaylorsFranceOnyama Limba NEGOTIATION
Faith O FollerJapanOnyama Limba RENEWAL
Antonio J KuskoIndiaAnna Fali QUALIFIED
Maria R ButtSpainIoni Bowcher PROPOSAL
Silvio C ButtUnited KingdomAnna Fali QUALIFIED
Murillo A FigeroaGermanyXuxue Feng RENEWAL
Julie D InouyeRussiaIoni Bowcher QUALIFIED
Maisha U SlusarskiItalyXuxue Feng UNQUALIFIED
Jennifer E RoysterIndiaStephen Shaw NEGOTIATION
Francesco A KuskoItalyAsiya Javayant NEGOTIATION
Morrow D SergiArgentinaElwin Sharvill NEW
Maisha I TollnerAustraliaIoni Bowcher QUALIFIED
Arvin I AlbaresIndiaIvan Magalhaes QUALIFIED
Alejandro J MacleadBrazilIvan Magalhaes RENEWAL
James Q GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro U AmigonAustraliaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Faith M Sergi
Smith X Tollner
Adams I Saylors
Chavez H Gaucho
Stacey J Ruta
Silvio Z Chui
Munro B Morasca
Munro X Doe
Octavia U Venere
Izzy L Wieser
Tony G Iturbide
Cody G Poquette
Nicolas X Stenseth
Arvin J Schemmer
Misaki V Morasca
Claire W Glick
Julie Y Wieser
Misaki M Caudy
Jeanfrancois S Stenseth
David Q Garufi
Antonio X Stockham
Mayumi D Schemmer
Chavez Q Nestle
Wickens I Nicka
Isabel B Caldarera
Ashley Z Stockham
Rodrigues R Bolognia
Stacey T Stenseth
Wickens B Slusarski
Antonio Z Stockham
Chavez T Gaucho
Mujtaba Q Waycott
Adams G Chui
Aruna F Sergi
Francesco S Caudy
Emily N Gillian
Kadeem G Campain
Wickens Y Venere
Octavia X Malet
Mujtaba Z Marrier
James K Ferencz
Jennifer S Waycott
Johnson E Campain
Tony U Saylors
Kadeem S Paprocki
Claire P Foller
Ricardo N Foller
Deepesh T Ruta
Leon Q Tollner
Deepesh C Doe
IdCountryDate
1000Argentina2024-04-05
1001Italy2024-04-21
1002France2024-04-29
1003India2024-04-21
1004Russia2024-04-29
1005Italy2024-04-08
1006France2024-04-07
1007Australia2024-05-01
1008Italy2024-04-11
1009Italy2024-04-18
1010United Kingdom2024-04-21
1011Argentina2024-04-10
1012Argentina2024-04-15
1013United Kingdom2024-04-15
1014Australia2024-04-20
1015Japan2024-04-04
1016India2024-04-27
1017United Kingdom2024-04-22
1018Spain2024-04-16
1019Spain2024-04-26
1020United Kingdom2024-04-21
1021France2024-04-20
1022Canada2024-04-29
1023Australia2024-04-08
1024Argentina2024-04-30
1025France2024-04-02
1026France2024-04-24
1027Germany2024-04-27
1028Argentina2024-04-08
1029Argentina2024-04-10
1030France2024-04-25
1031France2024-04-10
1032Spain2024-04-23
1033Spain2024-04-02
1034Germany2024-05-01
1035India2024-04-29
1036Brazil2024-04-12
1037Canada2024-04-24
1038Italy2024-04-16
1039Germany2024-04-25
1040India2024-04-16
1041India2024-04-18
1042India2024-04-15
1043India2024-05-01
1044Japan2024-04-24
1045Spain2024-04-25
1046Russia2024-04-13
1047India2024-04-23
1048Italy2024-04-19
1049United Kingdom2024-04-03

On-Demand Data

NameIdCountryDate
Aika D Vocelka1000Italy2024-04-26
Adams Y Glick1001Russia2024-04-16
Julie K Caudy1002Italy2024-04-17
Darci Q Briddick1003India2024-04-05
Darci G Flosi1004Japan2024-04-21
Costa K Inouye1005United Kingdom2024-04-26
Wickens X Sergi1006United Kingdom2024-04-13
Ricardo J Iturbide1007Argentina2024-04-13
Octavia K Gillian1008Canada2024-04-06
Maisha S Vocelka1009Canada2024-04-15
David F Campain1010Brazil2024-04-04
Julie D Rim1011Germany2024-04-09
Leja G Gaucho1012Australia2024-04-13
Mujtaba A Bolognia1013Canada2024-04-10
Darci J Vocelka1014Australia2024-04-23
Darci S Dilliard1015India2024-04-15
Aika X Perin1016Canada2024-04-07
Deepesh V Amigon1017Brazil2024-04-10
Salvatore Y Campain1018Canada2024-04-30
Darci L Rulapaugh1019Italy2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford V VocelkaRussiaXuxue Feng PROPOSAL
Aika O KuskoSpainAnna Fali UNQUALIFIED
Murillo P SergiAustraliaOnyama Limba NEGOTIATION
Jennifer X BowleyBrazilElwin Sharvill UNQUALIFIED
Rodrigues C OldroydRussiaAmy Elsner QUALIFIED
Wickens X RulapaughFranceAmy Elsner QUALIFIED
Johnson V DilliardJapanBernardo Dominic RENEWAL
Jefferson Z DilliardJapanStephen Shaw QUALIFIED
Maria N MaletGermanyBernardo Dominic UNQUALIFIED
Alejandro B InouyeArgentinaXuxue Feng QUALIFIED
Chavez Z VocelkaArgentinaAnna Fali PROPOSAL
Ashley K SlusarskiFranceIoni Bowcher NEW
David P IturbideAustraliaAmy Elsner PROPOSAL
Francesco T GauchoSpainAsiya Javayant RENEWAL
Sinclair E ShinkoBrazilElwin Sharvill UNQUALIFIED
Rodrigues U MaletCanadaStephen Shaw QUALIFIED
Juan I SlusarskiRussiaXuxue Feng NEW
Jeanfrancois S SlusarskiAustraliaAmy Elsner RENEWAL
Claire Q OldroydGermanyStephen Shaw NEGOTIATION
Julie U PerinFranceIvan Magalhaes QUALIFIED
Jeanfrancois U RutaIndiaIvan Magalhaes RENEWAL
Francesco Y DarakjyBrazilStephen Shaw PROPOSAL
Rodrigues Z FollerFranceAnna Fali QUALIFIED
Aruna U FigeroaFranceElwin Sharvill NEGOTIATION
Maisha Q WaycottAustraliaBernardo Dominic NEGOTIATION
Silvio C MaletRussiaAsiya Javayant RENEWAL
Sinclair V AlbaresFranceIoni Bowcher NEGOTIATION
Morrow C CaudyUnited KingdomXuxue Feng PROPOSAL
Julie E FigeroaArgentinaBernardo Dominic NEGOTIATION
Kaitlin Q FerenczBrazilBernardo Dominic PROPOSAL
Clifford W StockhamJapanAnna Fali UNQUALIFIED
Adams D PaprockiRussiaOnyama Limba NEW
Maria R BologniaJapanAsiya Javayant PROPOSAL
James N CampainRussiaStephen Shaw PROPOSAL
Ashley U TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood Y VenereGermanyIoni Bowcher PROPOSAL
Clifford N FlosiFranceStephen Shaw QUALIFIED
Morrow V SergiJapanOnyama Limba PROPOSAL
Jeanfrancois T StockhamJapanIvan Magalhaes PROPOSAL
Chavez N GauchoFranceStephen Shaw 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>