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
Julie J NickaBrazilAsiya Javayant PROPOSAL
Chavez G SlusarskiCanadaIoni Bowcher NEW
Clifford A RulapaughUnited KingdomAmy Elsner PROPOSAL
Tony Y WhobreyUnited KingdomOnyama Limba PROPOSAL
Chavez O OldroydRussiaBernardo Dominic PROPOSAL
Costa N BowleyCanadaIvan Magalhaes QUALIFIED
Misaki D StensethFranceStephen Shaw NEW
Leja S SergiJapanIoni Bowcher RENEWAL
Leja F ButtJapanAsiya Javayant QUALIFIED
Francesco C InouyeRussiaIoni Bowcher PROPOSAL
Cody N VocelkaBrazilXuxue Feng PROPOSAL
Ivar D SaylorsAustraliaElwin Sharvill UNQUALIFIED
Kaitlin R KuskoBrazilStephen Shaw RENEWAL
Juan F FlosiGermanyXuxue Feng QUALIFIED
Sinclair V WhobreyRussiaAnna Fali RENEWAL
Silvio K GlickArgentinaStephen Shaw PROPOSAL
Mujtaba O InouyeGermanyAnna Fali NEW
Aditya J SergiFranceIoni Bowcher UNQUALIFIED
Jones G CaudyUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois O MorascaAustraliaAnna Fali NEW
Adams F InouyeBrazilBernardo Dominic QUALIFIED
Maisha O BologniaRussiaOnyama Limba UNQUALIFIED
Morrow V TollnerIndiaIvan Magalhaes QUALIFIED
Rodrigues D GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson T ChuiBrazilAnna Fali PROPOSAL
Smith G AlbaresJapanBernardo Dominic UNQUALIFIED
Julie C CaudySpainElwin Sharvill RENEWAL
Silvio U CaudyCanadaAnna Fali NEGOTIATION
Tony O GillianGermanyAmy Elsner UNQUALIFIED
Rodrigues L KuskoArgentinaAnna Fali UNQUALIFIED
Emily R TollnerItalyIoni Bowcher NEGOTIATION
Kaitlin H BriddickBrazilAnna Fali NEGOTIATION
Stacey Y KuskoGermanyIoni Bowcher UNQUALIFIED
Munro H CampainFranceIoni Bowcher NEGOTIATION
Arvin U MarrierItalyBernardo Dominic UNQUALIFIED
Stacey S NickaBrazilElwin Sharvill PROPOSAL
Munro D AmigonCanadaAmy Elsner PROPOSAL
Aika N AlbaresItalyStephen Shaw PROPOSAL
Deepesh T ShinkoCanadaBernardo Dominic UNQUALIFIED
Faith G WaycottItalyStephen Shaw NEW
Munro L GarufiBrazilOnyama Limba PROPOSAL
Claire V GlickItalyXuxue Feng PROPOSAL
Claire M VenereFranceBernardo Dominic RENEWAL
Chavez Y PoquetteCanadaXuxue Feng UNQUALIFIED
Tony K CampainJapanIoni Bowcher UNQUALIFIED
Tony L AlbaresUnited KingdomOnyama Limba NEGOTIATION
Murillo D ButtJapanIoni Bowcher QUALIFIED
Faith T BowleyBrazilAmy Elsner QUALIFIED
Morrow V PaprockiFranceIoni Bowcher NEW
Mayumi U GillianIndiaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Munro P AmigonRussiaStephen Shaw RENEWAL
Nicolas C GarufiIndiaStephen Shaw UNQUALIFIED
Darci T PoquetteGermanyXuxue Feng QUALIFIED
Aruna U GillianGermanyAmy Elsner NEW
Faith U MarrierAustraliaOnyama Limba QUALIFIED
Sinclair Y ShinkoIndiaXuxue Feng QUALIFIED
Misaki O NestleRussiaOnyama Limba NEGOTIATION
Silvio H WhobreyGermanyBernardo Dominic RENEWAL
Izzy Z DoeGermanyIvan Magalhaes QUALIFIED
Sinclair S SchemmerCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow M FerenczUnited Kingdom2024-04-15Chapman, Ross E Esq RENEWAL28Elwin Sharvill
1001Salvatore U GauchoRussia2024-04-10Chemel, James L Cpa RENEWAL93Anna Fali
1002Johnson G MaletCanada2024-04-16Rangoni Of Florence RENEWAL18Stephen Shaw
1003Misaki M BologniaGermany2024-03-25Truhlar And Truhlar Attys NEGOTIATION60Elwin Sharvill
1004Maria A RulapaughJapan2024-04-08Printing Dimensions RENEWAL87Ioni Bowcher
1005Kadeem J FollerJapan2024-04-02Feltz Printing Service PROPOSAL42Elwin Sharvill
1006Jeanfrancois S WaycottAustralia2024-04-11Printing Dimensions NEW7Amy Elsner
1007Juan E FerenczIndia2024-03-27Chanay, Jeffrey A Esq NEGOTIATION92Ivan Magalhaes
1008Octavia R WaycottGermany2024-04-07Chanay, Jeffrey A Esq UNQUALIFIED12Ioni Bowcher
1009Alejandro S WhobreySpain2024-04-13Benton, John B Jr NEGOTIATION87Amy Elsner
1010Kadeem K SchemmerItaly2024-03-30Morlong Associates RENEWAL65Ioni Bowcher
1011Jeanfrancois F CaldareraGermany2024-04-02Feiner Bros QUALIFIED9Amy Elsner
1012Leon B TollnerGermany2024-04-10Feltz Printing Service PROPOSAL62Elwin Sharvill
1013Juan H OstroskyIndia2024-03-28Commercial Press NEW84Stephen Shaw
1014Jefferson C FerenczAustralia2024-04-19Chemel, James L Cpa PROPOSAL12Xuxue Feng
1015Isabel X RimAustralia2024-04-05Buckley Miller Wright RENEWAL25Anna Fali
1016James Q PaprockiRussia2024-04-02Morlong Associates UNQUALIFIED63Elwin Sharvill
1017Maria E MorascaBrazil2024-03-31Chapman, Ross E Esq NEW86Bernardo Dominic
1018Maisha Q BriddickItaly2024-04-05Rousseaux, Michael Esq UNQUALIFIED70Anna Fali
1019Aruna X WieserFrance2024-03-30Dorl, James J Esq RENEWAL79Stephen Shaw
1020Leon U CaudyUnited Kingdom2024-04-01Benton, John B Jr QUALIFIED83Onyama Limba
1021Deepesh X CaldareraAustralia2024-04-06Printing Dimensions NEW12Elwin Sharvill
1022Murillo K NestleCanada2024-03-31Benton, John B Jr RENEWAL95Ivan Magalhaes
1023Claire Q SlusarskiUnited Kingdom2024-03-29Rangoni Of Florence NEGOTIATION2Bernardo Dominic
1024Faith I WieserFrance2024-04-04Truhlar And Truhlar Attys NEW56Amy Elsner
1025Morrow W PerinJapan2024-04-07Chemel, James L Cpa RENEWAL94Xuxue Feng
1026Munro S MorascaFrance2024-04-10Chemel, James L Cpa UNQUALIFIED67Asiya Javayant
1027Smith I StockhamItaly2024-04-20Printing Dimensions NEGOTIATION75Anna Fali
1028Silvio W RutaGermany2024-04-10Truhlar And Truhlar Attys NEW54Elwin Sharvill
1029Salvatore D SchemmerCanada2024-04-01Chanay, Jeffrey A Esq QUALIFIED80Ioni Bowcher
1030Maisha H VocelkaItaly2024-04-19Benton, John B Jr PROPOSAL7Amy Elsner
1031Adams N MorascaItaly2024-04-01Feiner Bros NEGOTIATION5Anna Fali
1032Rodrigues K FlosiJapan2024-04-13Commercial Press UNQUALIFIED57Bernardo Dominic
1033Isabel F FollerIndia2024-04-06Feltz Printing Service RENEWAL34Anna Fali
1034Francesco O CampainCanada2024-04-07Chanay, Jeffrey A Esq NEGOTIATION93Elwin Sharvill
1035Julie N MorascaBrazil2024-04-10Dorl, James J Esq PROPOSAL53Xuxue Feng
1036David R WaycottBrazil2024-04-13Chemel, James L Cpa NEGOTIATION6Ioni Bowcher
1037Ashley D VenereSpain2024-04-11Chapman, Ross E Esq UNQUALIFIED51Xuxue Feng
1038Darci M RulapaughIndia2024-03-25Rangoni Of Florence QUALIFIED1Asiya Javayant
1039Wickens P ChuiAustralia2024-03-28Truhlar And Truhlar Attys UNQUALIFIED3Stephen Shaw
1040Leja K RutaGermany2024-04-20Benton, John B Jr UNQUALIFIED30Ioni Bowcher
1041Emily L WhobreyFrance2024-04-20King, Christopher A Esq NEGOTIATION76Bernardo Dominic
1042Salvatore C DoeSpain2024-04-03King, Christopher A Esq NEGOTIATION34Amy Elsner
1043Sinclair T FlosiSpain2024-04-18Chemel, James L Cpa PROPOSAL55Anna Fali
1044Kadeem Q NickaRussia2024-04-18Chemel, James L Cpa RENEWAL90Anna Fali
1045Mujtaba L InouyeRussia2024-04-02Chanay, Jeffrey A Esq QUALIFIED73Onyama Limba
1046Deepesh B SaylorsGermany2024-04-19Morlong Associates NEGOTIATION94Onyama Limba
1047Wickens S RutaCanada2024-04-10Feltz Printing Service RENEWAL30Ivan Magalhaes
1048Leja L KolmetzJapan2024-04-18Chemel, James L Cpa NEGOTIATION61Ivan Magalhaes
1049Izzy Z SergiArgentina2024-04-12Chemel, James L Cpa RENEWAL33Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leja N NickaUnited KingdomIoni Bowcher PROPOSAL
Maisha Y RimFranceXuxue Feng UNQUALIFIED
Murillo J NickaCanadaIvan Magalhaes QUALIFIED
Smith M GarufiGermanyElwin Sharvill PROPOSAL
Leja G MorascaCanadaIoni Bowcher RENEWAL
Ashley F ShinkoJapanIvan Magalhaes QUALIFIED
Aditya J SlusarskiSpainBernardo Dominic RENEWAL
Tony R KuskoAustraliaAnna Fali UNQUALIFIED
Clifford V GlickUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois A DilliardBrazilAnna Fali RENEWAL
Mujtaba G WieserFranceBernardo Dominic QUALIFIED
Isabel X ChuiItalyIoni Bowcher RENEWAL
Octavia N OldroydItalyElwin Sharvill QUALIFIED
Clifford V KuskoCanadaElwin Sharvill UNQUALIFIED
Maria V StockhamAustraliaAmy Elsner QUALIFIED
Isabel O SergiFranceIvan Magalhaes RENEWAL
Leon I WhobreyJapanXuxue Feng NEGOTIATION
Ashley D BowleyBrazilAmy Elsner QUALIFIED
Costa Y ShinkoRussiaOnyama Limba QUALIFIED
Morrow V SlusarskiGermanyAnna Fali UNQUALIFIED
Mayumi A PerinUnited KingdomAnna Fali PROPOSAL
Claire F MarrierRussiaElwin Sharvill PROPOSAL
Clifford G KolmetzJapanStephen Shaw RENEWAL
Juan K NickaFranceAnna Fali NEGOTIATION
Aruna R MaletAustraliaAnna Fali RENEWAL
Emily H BologniaRussiaXuxue Feng QUALIFIED
Cody R ButtItalyStephen Shaw PROPOSAL
Ashley S WaycottUnited KingdomIvan Magalhaes PROPOSAL
Kadeem H PaprockiArgentinaAsiya Javayant RENEWAL
Izzy F ChuiItalyAnna Fali NEW
Ivar M FerenczBrazilElwin Sharvill QUALIFIED
Adams T OstroskyIndiaOnyama Limba QUALIFIED
Murillo Y BriddickAustraliaElwin Sharvill QUALIFIED
Francesco E DoeGermanyIoni Bowcher NEGOTIATION
Kaitlin R BowleyAustraliaIvan Magalhaes NEGOTIATION
Costa O GlickSpainElwin Sharvill RENEWAL
Aruna F VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Leja P VenereItalyStephen Shaw NEGOTIATION
Morrow K FlosiFranceElwin Sharvill NEGOTIATION
Deepesh X StensethAustraliaOnyama Limba RENEWAL
Misaki G CaldareraCanadaAnna Fali NEGOTIATION
Johnson I GillianGermanyIoni Bowcher RENEWAL
Alejandro Z MorascaUnited KingdomAmy Elsner UNQUALIFIED
Sinclair X MacleadArgentinaAmy Elsner NEW
Leon S ChuiGermanyOnyama Limba NEGOTIATION
Morrow H MorascaJapanIvan Magalhaes PROPOSAL
Mayumi V OldroydArgentinaStephen Shaw PROPOSAL
Jefferson V GlickIndiaAsiya Javayant PROPOSAL
Leon L GarufiGermanyElwin Sharvill PROPOSAL
Antonio Z FigeroaRussiaStephen Shaw PROPOSAL
Frozen Columns
Name
Octavia N Royster
Jeanfrancois K Maclead
Rodrigues L Darakjy
Stacey E Oldroyd
Cody K Slusarski
Chavez G Malet
James M Malet
Clifford I Chui
Maria P Slusarski
Mayumi A Paprocki
Francesco I Gillian
Alejandro K Nicka
Ivar H Morasca
Salvatore N Sergi
Deepesh Q Poquette
Emily O Ruta
Johnson R Briddick
Emily S Bowley
Greenwood H Butt
Jefferson D Sergi
Claire K Waycott
Claire A Kusko
Nicolas A Nestle
Leja Q Perin
Adams C Rulapaugh
Salvatore U Whobrey
Izzy S Slusarski
Leja R Albares
Juan O Saylors
Leja H Waycott
Adams R Waycott
Rodrigues U Briddick
Faith Q Poquette
Arvin Q Slusarski
Kaitlin L Nicka
Francesco B Campain
Smith V Slusarski
Claire L Malet
Jeanfrancois S Bowley
Maria X Albares
Johnson F Vocelka
Juan E Doe
Ricardo W Darakjy
Izzy P Darakjy
Ivar T Caudy
Aruna D Marrier
Ivar S Garufi
Arvin Z Flosi
Darci X Doe
Leon Q Waycott
IdCountryDate
1000Italy2024-04-02
1001United Kingdom2024-04-11
1002Argentina2024-04-20
1003Argentina2024-04-02
1004Russia2024-04-09
1005Argentina2024-04-01
1006Germany2024-04-04
1007Brazil2024-03-24
1008Canada2024-04-15
1009Italy2024-04-14
1010Australia2024-04-12
1011Canada2024-04-09
1012Canada2024-03-29
1013Canada2024-04-05
1014India2024-03-24
1015Brazil2024-04-02
1016Australia2024-04-09
1017France2024-04-19
1018Argentina2024-03-31
1019Italy2024-04-18
1020Russia2024-04-22
1021Argentina2024-03-29
1022Australia2024-04-16
1023Australia2024-04-08
1024Argentina2024-03-30
1025Brazil2024-04-09
1026Italy2024-04-02
1027Japan2024-03-27
1028Brazil2024-03-28
1029Russia2024-04-01
1030Italy2024-03-28
1031Brazil2024-04-02
1032Japan2024-04-02
1033Canada2024-04-04
1034Australia2024-04-01
1035Argentina2024-04-18
1036Argentina2024-04-10
1037Canada2024-03-24
1038France2024-03-31
1039Brazil2024-04-21
1040Japan2024-04-01
1041Japan2024-04-10
1042Spain2024-04-06
1043United Kingdom2024-04-21
1044Italy2024-04-18
1045Brazil2024-04-18
1046Canada2024-04-12
1047Germany2024-03-31
1048Italy2024-04-01
1049United Kingdom2024-04-17

On-Demand Data

NameIdCountryDate
Salvatore Z Gillian1000Spain2024-04-03
Mayumi H Morasca1001Spain2024-03-25
Wickens J Vocelka1002Argentina2024-03-26
Antonio C Ostrosky1003Russia2024-04-01
Nicolas Z Rim1004France2024-03-29
Murillo Y Caldarera1005Argentina2024-03-31
Adams R Gaucho1006France2024-03-31
Octavia F Morasca1007France2024-04-16
Alejandro D Rulapaugh1008United Kingdom2024-04-06
Leon W Waycott1009India2024-04-19
Sinclair E Rim1010Australia2024-04-08
Izzy O Gillian1011France2024-04-04
Antonio V Ruta1012Germany2024-04-21
Aruna N Nestle1013Brazil2024-04-17
Jeanfrancois E Oldroyd1014United Kingdom2024-04-13
Nicolas E Wieser1015Russia2024-04-04
Faith P Figeroa1016Brazil2024-04-09
Isabel M Flosi1017Argentina2024-04-08
Arvin O Malet1018Germany2024-03-29
Aditya L Inouye1019Canada2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas Q MorascaAustraliaBernardo Dominic NEGOTIATION
Murillo J BowleyCanadaStephen Shaw RENEWAL
Maisha C MaletItalyStephen Shaw NEW
Nicolas I GlickGermanyAmy Elsner NEW
Misaki Z RimCanadaStephen Shaw PROPOSAL
Clifford I MaletUnited KingdomBernardo Dominic QUALIFIED
Wickens G NestleGermanyOnyama Limba QUALIFIED
Kadeem Q KolmetzSpainBernardo Dominic NEW
Clifford M SaylorsCanadaStephen Shaw PROPOSAL
Murillo O CaudyRussiaElwin Sharvill PROPOSAL
Aruna I AmigonJapanIvan Magalhaes RENEWAL
Mayumi S MarrierBrazilAnna Fali NEGOTIATION
Izzy G FigeroaCanadaXuxue Feng UNQUALIFIED
David Z FigeroaJapanBernardo Dominic NEW
Greenwood V NestleItalyStephen Shaw NEGOTIATION
Jeanfrancois U SergiFranceStephen Shaw PROPOSAL
Salvatore L MaletAustraliaElwin Sharvill NEGOTIATION
Juan N OldroydJapanIvan Magalhaes NEW
Sinclair X FlosiArgentinaBernardo Dominic RENEWAL
Juan K RulapaughSpainIoni Bowcher PROPOSAL
Murillo R BologniaGermanyStephen Shaw QUALIFIED
Aika J GillianGermanyAsiya Javayant NEW
Morrow T IturbideSpainStephen Shaw RENEWAL
Jefferson O FigeroaSpainAnna Fali NEGOTIATION
Leon D FerenczIndiaAnna Fali RENEWAL
Octavia W RulapaughRussiaIvan Magalhaes UNQUALIFIED
Antonio X FigeroaGermanyOnyama Limba PROPOSAL
Sinclair U DoeBrazilIvan Magalhaes NEW
Wickens G AmigonIndiaAsiya Javayant NEGOTIATION
Mayumi J RimIndiaXuxue Feng QUALIFIED
James Y PerinUnited KingdomIvan Magalhaes RENEWAL
Johnson R FigeroaAustraliaAmy Elsner NEGOTIATION
Ashley U ShinkoUnited KingdomOnyama Limba QUALIFIED
Octavia B MacleadArgentinaXuxue Feng UNQUALIFIED
Kaitlin O RulapaughItalyAnna Fali NEGOTIATION
Aruna U RulapaughItalyAsiya Javayant UNQUALIFIED
Aika E NickaFranceBernardo Dominic RENEWAL
Jeanfrancois K GauchoGermanyXuxue Feng PROPOSAL
Mujtaba D RimUnited KingdomElwin Sharvill UNQUALIFIED
Tony U WaycottFranceAnna Fali 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>