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
Greenwood E FigeroaArgentinaIvan Magalhaes RENEWAL
Wickens L RoysterRussiaIoni Bowcher RENEWAL
Ivar T MaletAustraliaBernardo Dominic QUALIFIED
Kaitlin U BowleyFranceXuxue Feng NEW
Rodrigues U SchemmerUnited KingdomAnna Fali NEGOTIATION
Faith R ShinkoGermanyIoni Bowcher RENEWAL
Ivar C FollerRussiaStephen Shaw RENEWAL
Jeanfrancois E BriddickUnited KingdomAnna Fali PROPOSAL
Maisha O DarakjyCanadaAsiya Javayant NEGOTIATION
Murillo D CaudyItalyBernardo Dominic UNQUALIFIED
Nicolas Z FigeroaArgentinaIoni Bowcher RENEWAL
Jennifer G MarrierAustraliaIvan Magalhaes QUALIFIED
Aruna E PoquetteBrazilAmy Elsner QUALIFIED
Murillo E SergiSpainAmy Elsner PROPOSAL
Sinclair O KuskoCanadaAsiya Javayant UNQUALIFIED
Octavia Y PaprockiAustraliaElwin Sharvill RENEWAL
Antonio Q GauchoRussiaElwin Sharvill PROPOSAL
Murillo N BowleyJapanElwin Sharvill NEW
Leja G FigeroaIndiaElwin Sharvill NEW
Ricardo I OstroskyJapanIvan Magalhaes QUALIFIED
James S InouyeUnited KingdomAmy Elsner NEW
Ashley F MorascaIndiaXuxue Feng UNQUALIFIED
Isabel O KuskoCanadaIoni Bowcher NEW
Faith K BowleyAustraliaBernardo Dominic NEGOTIATION
Jennifer S BowleyRussiaElwin Sharvill NEW
Jefferson X ShinkoArgentinaElwin Sharvill UNQUALIFIED
Jones M WaycottBrazilIvan Magalhaes RENEWAL
Aditya C DoeGermanyAsiya Javayant UNQUALIFIED
Ricardo J GillianJapanOnyama Limba QUALIFIED
Stacey B PerinGermanyXuxue Feng QUALIFIED
James E FigeroaUnited KingdomIoni Bowcher PROPOSAL
Faith H FerenczRussiaAsiya Javayant PROPOSAL
Octavia I CaldareraSpainAsiya Javayant NEGOTIATION
Clifford V VenereJapanIvan Magalhaes NEGOTIATION
Ivar W GarufiItalyIoni Bowcher NEW
Rodrigues Q StockhamUnited KingdomIvan Magalhaes NEW
Nicolas W OldroydAustraliaOnyama Limba RENEWAL
Jennifer R AmigonRussiaElwin Sharvill RENEWAL
Stacey Z BowleyUnited KingdomAnna Fali NEGOTIATION
Darci F MacleadFranceAmy Elsner RENEWAL
Ivar H SaylorsGermanyOnyama Limba RENEWAL
Cody T MorascaUnited KingdomBernardo Dominic RENEWAL
Francesco F FollerUnited KingdomBernardo Dominic PROPOSAL
Francesco W GauchoRussiaIvan Magalhaes QUALIFIED
James Q KuskoCanadaAsiya Javayant UNQUALIFIED
Emily F FlosiIndiaIvan Magalhaes UNQUALIFIED
Ivar Y GarufiRussiaBernardo Dominic PROPOSAL
Munro O BriddickArgentinaElwin Sharvill RENEWAL
Salvatore V OldroydJapanStephen Shaw UNQUALIFIED
Rodrigues Z GarufiGermanyStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa O BologniaBrazilIvan Magalhaes NEW
Alejandro J VenereGermanyElwin Sharvill QUALIFIED
Adams J FollerCanadaOnyama Limba PROPOSAL
Francesco F FlosiRussiaAmy Elsner NEW
Adams I ShinkoJapanAmy Elsner RENEWAL
Salvatore W MarrierRussiaStephen Shaw UNQUALIFIED
Juan L CaudyUnited KingdomAnna Fali RENEWAL
Munro N ChuiUnited KingdomOnyama Limba UNQUALIFIED
Arvin X FigeroaSpainIoni Bowcher UNQUALIFIED
Jefferson I NestleSpainStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas W FigeroaBrazil2024-03-22Chapman, Ross E Esq RENEWAL79Onyama Limba
1001Jennifer B ButtCanada2024-03-13Chanay, Jeffrey A Esq UNQUALIFIED84Bernardo Dominic
1002Antonio C SlusarskiCanada2024-03-12Rousseaux, Michael Esq UNQUALIFIED97Stephen Shaw
1003Claire R SergiArgentina2024-03-16Chapman, Ross E Esq NEW38Amy Elsner
1004Octavia E GillianRussia2024-03-26Feltz Printing Service NEW7Anna Fali
1005Aditya U SlusarskiCanada2024-03-14Truhlar And Truhlar Attys PROPOSAL18Onyama Limba
1006James V MaletJapan2024-02-28Dorl, James J Esq NEGOTIATION8Anna Fali
1007Jones J GarufiItaly2024-03-14Feltz Printing Service NEGOTIATION13Amy Elsner
1008Francesco L ButtAustralia2024-03-27Printing Dimensions QUALIFIED44Anna Fali
1009Ricardo N GauchoArgentina2024-03-16Commercial Press NEW43Ivan Magalhaes
1010Aruna G FigeroaSpain2024-03-01Benton, John B Jr QUALIFIED20Elwin Sharvill
1011Octavia Y StensethAustralia2024-03-01King, Christopher A Esq QUALIFIED36Stephen Shaw
1012Clifford D DilliardGermany2024-03-16Morlong Associates NEW97Stephen Shaw
1013Mayumi H BologniaRussia2024-02-28Dorl, James J Esq NEW31Ioni Bowcher
1014Darci X BologniaAustralia2024-03-05Morlong Associates NEW58Amy Elsner
1015Kadeem V GillianSpain2024-02-29Printing Dimensions RENEWAL49Asiya Javayant
1016Murillo F GarufiSpain2024-03-08King, Christopher A Esq NEGOTIATION93Ivan Magalhaes
1017Antonio X PaprockiIndia2024-03-05Chanay, Jeffrey A Esq NEW82Xuxue Feng
1018Rodrigues N CaldareraBrazil2024-03-25Dorl, James J Esq NEW1Stephen Shaw
1019Morrow O MaletFrance2024-03-07Rangoni Of Florence NEGOTIATION48Xuxue Feng
1020Clifford U FollerArgentina2024-03-13Chanay, Jeffrey A Esq RENEWAL19Onyama Limba
1021Rodrigues F BowleyGermany2024-03-19Commercial Press RENEWAL46Elwin Sharvill
1022Leja O FlosiFrance2024-03-23Buckley Miller Wright NEW61Asiya Javayant
1023Ricardo S IturbideSpain2024-03-15Dorl, James J Esq UNQUALIFIED44Amy Elsner
1024Darci X InouyeJapan2024-03-08King, Christopher A Esq NEW75Xuxue Feng
1025Faith F VenereItaly2024-03-05Commercial Press QUALIFIED31Amy Elsner
1026Costa T TollnerJapan2024-03-24Truhlar And Truhlar Attys PROPOSAL64Elwin Sharvill
1027Izzy J SergiRussia2024-03-15Dorl, James J Esq QUALIFIED97Amy Elsner
1028Jefferson Z AlbaresItaly2024-03-04Morlong Associates UNQUALIFIED18Ioni Bowcher
1029Jennifer R FlosiSpain2024-03-10Feiner Bros RENEWAL77Stephen Shaw
1030Greenwood F WhobreyBrazil2024-03-23Buckley Miller Wright NEW57Elwin Sharvill
1031Salvatore T OstroskyIndia2024-03-03King, Christopher A Esq NEW71Xuxue Feng
1032Jefferson B GlickIndia2024-03-04Feltz Printing Service PROPOSAL16Amy Elsner
1033Silvio P FerenczCanada2024-03-22King, Christopher A Esq NEGOTIATION46Asiya Javayant
1034Cody X StensethJapan2024-03-13King, Christopher A Esq NEGOTIATION77Bernardo Dominic
1035Cody I FlosiRussia2024-03-12Printing Dimensions NEGOTIATION34Stephen Shaw
1036Ashley R ShinkoBrazil2024-03-22Chemel, James L Cpa RENEWAL15Ivan Magalhaes
1037Nicolas F CaldareraSpain2024-03-17Morlong Associates NEW43Elwin Sharvill
1038Leja I WieserIndia2024-03-14Rangoni Of Florence NEGOTIATION49Amy Elsner
1039Emily S VocelkaItaly2024-03-20Commercial Press PROPOSAL35Amy Elsner
1040Francesco D KuskoBrazil2024-03-03Chemel, James L Cpa NEGOTIATION7Xuxue Feng
1041Ricardo D GlickArgentina2024-03-02Rousseaux, Michael Esq QUALIFIED5Elwin Sharvill
1042Aika S ChuiIndia2024-03-20Feiner Bros PROPOSAL93Ivan Magalhaes
1043Octavia T NickaBrazil2024-02-28Chemel, James L Cpa PROPOSAL79Stephen Shaw
1044Wickens D WhobreyJapan2024-03-27Chemel, James L Cpa QUALIFIED13Ivan Magalhaes
1045Antonio P WaycottUnited Kingdom2024-03-11Chemel, James L Cpa UNQUALIFIED62Anna Fali
1046Mayumi C NickaSpain2024-03-19Morlong Associates PROPOSAL39Ioni Bowcher
1047Rodrigues R GlickGermany2024-02-29Rousseaux, Michael Esq UNQUALIFIED43Amy Elsner
1048Leon P SergiAustralia2024-03-01Buckley Miller Wright NEW64Elwin Sharvill
1049Maria J KolmetzIndia2024-03-21Commercial Press PROPOSAL21Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow I DilliardArgentinaStephen Shaw NEW
Kadeem N OldroydAustraliaElwin Sharvill NEW
Antonio D GlickRussiaIoni Bowcher RENEWAL
Deepesh V MaletUnited KingdomIoni Bowcher UNQUALIFIED
Darci L IturbideGermanyStephen Shaw UNQUALIFIED
Maisha B ChuiUnited KingdomXuxue Feng QUALIFIED
Clifford Z GauchoGermanyIvan Magalhaes RENEWAL
Ashley E StensethBrazilBernardo Dominic QUALIFIED
Jeanfrancois J TollnerBrazilAmy Elsner RENEWAL
Cody Q WieserUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair K RutaCanadaBernardo Dominic PROPOSAL
Murillo L TollnerUnited KingdomStephen Shaw RENEWAL
James I WhobreyIndiaAsiya Javayant NEW
Alejandro O VocelkaCanadaElwin Sharvill UNQUALIFIED
Greenwood R DarakjyRussiaBernardo Dominic RENEWAL
Maisha Q GillianSpainOnyama Limba PROPOSAL
Cody K DoeSpainAmy Elsner NEGOTIATION
Aruna R VenereGermanyAmy Elsner RENEWAL
Clifford C DarakjyUnited KingdomAsiya Javayant RENEWAL
Ivar P SlusarskiSpainAsiya Javayant NEW
Jones P MacleadArgentinaIvan Magalhaes UNQUALIFIED
Murillo R WaycottGermanyAsiya Javayant RENEWAL
Salvatore P AlbaresItalyAmy Elsner QUALIFIED
Chavez Z GlickFranceAnna Fali NEGOTIATION
Ricardo R BriddickItalyIoni Bowcher UNQUALIFIED
Costa H IturbideJapanIvan Magalhaes NEGOTIATION
Julie O RoysterFranceAnna Fali QUALIFIED
Jeanfrancois P CaldareraItalyAsiya Javayant PROPOSAL
Johnson X WaycottCanadaOnyama Limba PROPOSAL
Mujtaba O ButtCanadaOnyama Limba RENEWAL
Munro Z CampainItalyIvan Magalhaes PROPOSAL
Kaitlin Q CaudyJapanAsiya Javayant NEGOTIATION
Greenwood M RulapaughBrazilAmy Elsner RENEWAL
Kaitlin S CampainItalyIvan Magalhaes UNQUALIFIED
Tony D MaletIndiaElwin Sharvill UNQUALIFIED
Mayumi U OldroydCanadaBernardo Dominic NEW
Leja C WieserGermanyOnyama Limba QUALIFIED
Mujtaba Z AmigonArgentinaBernardo Dominic NEGOTIATION
Izzy L WieserRussiaIvan Magalhaes NEW
Adams B MaletArgentinaStephen Shaw QUALIFIED
Sinclair K BologniaCanadaOnyama Limba RENEWAL
Sinclair M BologniaAustraliaXuxue Feng UNQUALIFIED
Isabel V OldroydItalyAsiya Javayant NEW
Alejandro J GarufiItalyBernardo Dominic NEGOTIATION
Murillo N GarufiFranceElwin Sharvill NEGOTIATION
Darci T MaletUnited KingdomAsiya Javayant PROPOSAL
Clifford G CampainCanadaAnna Fali UNQUALIFIED
Aditya B SaylorsCanadaXuxue Feng QUALIFIED
Aruna C ShinkoJapanOnyama Limba NEW
Cody C NestleArgentinaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Clifford S Stenseth
Misaki J Dilliard
Jeanfrancois L Paprocki
Aruna Z Glick
Greenwood V Whobrey
Antonio J Marrier
Kaitlin K Dilliard
Salvatore H Venere
Izzy X Rulapaugh
Octavia H Glick
Ivar J Saylors
Adams L Inouye
Juan F Glick
Misaki I Butt
Murillo Y Briddick
Sinclair D Ferencz
Wickens L Oldroyd
Isabel U Maclead
Smith O Sergi
Leja J Venere
Nicolas D Malet
Misaki J Nicka
Costa A Albares
Claire N Doe
Jennifer S Gillian
Ricardo U Caudy
Greenwood Y Shinko
Greenwood B Kolmetz
James X Tollner
Jones N Dilliard
Jefferson O Waycott
Nicolas L Kolmetz
Mujtaba I Rulapaugh
Alejandro C Glick
Ashley J Rim
Munro Z Marrier
Aditya P Ruta
Aruna A Perin
Cody L Caldarera
Jones W Albares
Sinclair C Ruta
Darci A Perin
Ricardo L Flosi
Maisha N Oldroyd
Izzy D Briddick
Cody A Stenseth
Julie F Gaucho
Rodrigues J Rulapaugh
Julie O Caudy
Clifford W Sergi
IdCountryDate
1000Italy2024-03-07
1001Argentina2024-03-21
1002Brazil2024-03-28
1003Germany2024-03-12
1004Germany2024-03-16
1005India2024-03-10
1006Italy2024-03-06
1007Brazil2024-03-22
1008Brazil2024-03-16
1009United Kingdom2024-03-11
1010Canada2024-03-28
1011Canada2024-03-23
1012France2024-03-14
1013Italy2024-03-23
1014Japan2024-03-03
1015Canada2024-03-18
1016Russia2024-03-20
1017Italy2024-03-23
1018United Kingdom2024-03-14
1019Japan2024-03-23
1020Australia2024-03-05
1021Italy2024-03-20
1022United Kingdom2024-02-29
1023United Kingdom2024-03-24
1024Spain2024-03-16
1025Canada2024-02-28
1026Australia2024-03-26
1027Brazil2024-03-07
1028United Kingdom2024-03-28
1029Australia2024-02-28
1030France2024-03-02
1031Russia2024-03-23
1032Australia2024-03-28
1033Germany2024-03-17
1034Russia2024-03-07
1035Russia2024-03-23
1036India2024-03-24
1037Australia2024-03-04
1038Russia2024-03-09
1039Australia2024-03-03
1040Canada2024-03-01
1041Japan2024-03-22
1042Argentina2024-03-08
1043Brazil2024-03-08
1044Canada2024-03-15
1045United Kingdom2024-03-22
1046Italy2024-03-05
1047India2024-02-29
1048India2024-02-28
1049India2024-03-19

On-Demand Data

NameIdCountryDate
Johnson V Sergi1000India2024-03-12
Nicolas R Marrier1001Brazil2024-03-09
Silvio K Gaucho1002Brazil2024-03-20
Octavia R Slusarski1003Australia2024-03-25
Jeanfrancois I Sergi1004Argentina2024-03-23
Johnson G Rulapaugh1005India2024-03-06
Claire D Nestle1006Australia2024-03-11
Silvio Z Nicka1007Germany2024-03-27
Aditya D Ruta1008Argentina2024-02-28
Alejandro D Malet1009Canada2024-03-22
Misaki U Ruta1010Brazil2024-03-12
Arvin S Maclead1011Germany2024-03-02
Kaitlin X Stenseth1012Japan2024-03-11
Ricardo H Royster1013Spain2024-03-10
Isabel G Briddick1014India2024-03-06
Izzy C Vocelka1015Spain2024-03-11
Claire B Sergi1016Japan2024-03-04
Leja U Flosi1017United Kingdom2024-03-15
Isabel H Bowley1018Russia2024-03-27
Salvatore H Maclead1019Japan2024-03-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin I MarrierSpainAsiya Javayant RENEWAL
Jennifer E BriddickItalyAsiya Javayant QUALIFIED
Octavia I VenereAustraliaElwin Sharvill NEW
Stacey V OstroskyGermanyBernardo Dominic NEGOTIATION
James Z FollerBrazilElwin Sharvill QUALIFIED
Francesco V FigeroaIndiaElwin Sharvill NEW
James Z SchemmerUnited KingdomIoni Bowcher QUALIFIED
Munro G BriddickAustraliaOnyama Limba RENEWAL
Leon X PerinItalyIoni Bowcher UNQUALIFIED
Nicolas D WaycottAustraliaElwin Sharvill NEW
Ricardo S IturbideJapanAsiya Javayant UNQUALIFIED
Silvio V VenereIndiaBernardo Dominic NEGOTIATION
Silvio T ButtAustraliaIoni Bowcher PROPOSAL
Mayumi W WieserUnited KingdomIoni Bowcher QUALIFIED
Aruna C VenereItalyIvan Magalhaes NEGOTIATION
Octavia P SchemmerFranceBernardo Dominic NEW
Ashley K VenereArgentinaIoni Bowcher UNQUALIFIED
Ashley E CaldareraIndiaAnna Fali NEGOTIATION
Maria K DoeFranceAsiya Javayant NEGOTIATION
Misaki K FollerGermanyAnna Fali PROPOSAL
Aruna E ChuiJapanXuxue Feng RENEWAL
Jennifer V CaudyCanadaAmy Elsner UNQUALIFIED
Deepesh Z KolmetzFranceAnna Fali NEW
Morrow V OldroydGermanyAsiya Javayant NEW
James X CaudySpainStephen Shaw RENEWAL
Tony V DoeUnited KingdomAmy Elsner UNQUALIFIED
Tony A ShinkoCanadaStephen Shaw NEGOTIATION
Julie S MaletBrazilIvan Magalhaes PROPOSAL
Isabel M GarufiArgentinaElwin Sharvill NEGOTIATION
Mujtaba C VenereIndiaIoni Bowcher RENEWAL
Munro N GillianAustraliaOnyama Limba NEGOTIATION
Antonio I CaudyUnited KingdomXuxue Feng QUALIFIED
Aruna Z PoquetteGermanyOnyama Limba QUALIFIED
Jennifer A AlbaresJapanIoni Bowcher QUALIFIED
Chavez X RoysterUnited KingdomAnna Fali NEW
Cody D KolmetzAustraliaOnyama Limba PROPOSAL
Costa F GarufiFranceBernardo Dominic NEW
Kadeem C OldroydRussiaIvan Magalhaes NEGOTIATION
Mayumi Y FlosiBrazilElwin Sharvill NEW
Darci J AmigonBrazilIvan Magalhaes 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>