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
Chavez N SergiFranceElwin Sharvill NEW
Kadeem J SergiCanadaAnna Fali PROPOSAL
Deepesh T NestleSpainAnna Fali NEGOTIATION
Arvin Y AmigonGermanyIvan Magalhaes RENEWAL
Mujtaba N CaldareraCanadaAnna Fali QUALIFIED
Deepesh Y MacleadCanadaBernardo Dominic RENEWAL
Kaitlin N DoeBrazilAmy Elsner RENEWAL
Stacey C GauchoFranceXuxue Feng QUALIFIED
Greenwood L SchemmerRussiaAmy Elsner QUALIFIED
Antonio V BowleyJapanBernardo Dominic NEGOTIATION
Darci W GillianGermanyStephen Shaw PROPOSAL
Munro Y StensethBrazilIoni Bowcher NEGOTIATION
Antonio H WieserSpainXuxue Feng QUALIFIED
Jennifer E RutaIndiaAmy Elsner NEGOTIATION
Darci A PaprockiJapanIoni Bowcher UNQUALIFIED
Kaitlin L PaprockiCanadaIoni Bowcher QUALIFIED
Cody Z IturbideBrazilAsiya Javayant RENEWAL
Nicolas U VocelkaFranceElwin Sharvill NEGOTIATION
Maisha O WhobreyAustraliaElwin Sharvill PROPOSAL
Ashley O WaycottAustraliaOnyama Limba PROPOSAL
James B NickaIndiaIvan Magalhaes NEW
Kadeem A InouyeCanadaIoni Bowcher UNQUALIFIED
Tony D SaylorsAustraliaElwin Sharvill NEW
Mujtaba H DarakjyRussiaIvan Magalhaes NEGOTIATION
Silvio Z NestleRussiaBernardo Dominic UNQUALIFIED
Jefferson D RoysterIndiaStephen Shaw PROPOSAL
Ashley V BriddickIndiaAmy Elsner UNQUALIFIED
Jones C FigeroaCanadaXuxue Feng PROPOSAL
Darci E DilliardGermanyOnyama Limba PROPOSAL
Silvio T FollerArgentinaAmy Elsner NEW
Faith L DarakjyRussiaBernardo Dominic RENEWAL
Mayumi T AlbaresSpainOnyama Limba UNQUALIFIED
Arvin Z WhobreyArgentinaElwin Sharvill PROPOSAL
Jennifer T OstroskyItalyAmy Elsner UNQUALIFIED
Morrow V GauchoGermanyBernardo Dominic NEW
Antonio P TollnerJapanOnyama Limba NEW
Ricardo Y MaletFranceOnyama Limba RENEWAL
Morrow A GillianFranceAsiya Javayant UNQUALIFIED
Wickens C CaudyAustraliaIoni Bowcher PROPOSAL
Tony U DilliardSpainIoni Bowcher RENEWAL
Darci A SaylorsUnited KingdomOnyama Limba QUALIFIED
Kadeem S ChuiFranceAmy Elsner UNQUALIFIED
Ashley D MaletGermanyStephen Shaw QUALIFIED
Sinclair O DarakjyRussiaStephen Shaw NEW
Nicolas N MarrierSpainElwin Sharvill QUALIFIED
Deepesh M GillianItalyIoni Bowcher RENEWAL
Emily Z WhobreyRussiaAnna Fali NEGOTIATION
Arvin A StensethItalyIvan Magalhaes UNQUALIFIED
Chavez L DoeFranceAmy Elsner NEGOTIATION
Wickens T FigeroaArgentinaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody V SergiCanadaOnyama Limba NEGOTIATION
Jefferson V NestleRussiaIvan Magalhaes UNQUALIFIED
Aruna Q RimItalyStephen Shaw QUALIFIED
Maisha P OldroydIndiaOnyama Limba PROPOSAL
Antonio Q KolmetzAustraliaIvan Magalhaes RENEWAL
Murillo E MorascaGermanyIvan Magalhaes RENEWAL
Rodrigues C BowleyArgentinaAnna Fali PROPOSAL
James C SaylorsFranceXuxue Feng NEW
Mayumi Q DoeBrazilOnyama Limba QUALIFIED
Ashley A AlbaresRussiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki U IturbideUnited Kingdom2024-05-09Dorl, James J Esq NEGOTIATION70Onyama Limba
1001James Y ButtFrance2024-05-09Commercial Press UNQUALIFIED42Anna Fali
1002Rodrigues H FerenczUnited Kingdom2024-05-06Chemel, James L Cpa NEGOTIATION20Stephen Shaw
1003Alejandro M ChuiItaly2024-04-27Feltz Printing Service PROPOSAL17Onyama Limba
1004James M OldroydRussia2024-04-13Chanay, Jeffrey A Esq RENEWAL24Stephen Shaw
1005Aditya J StensethJapan2024-04-15Chanay, Jeffrey A Esq PROPOSAL54Elwin Sharvill
1006Francesco H GauchoFrance2024-04-11Rangoni Of Florence NEW51Xuxue Feng
1007Maisha R IturbideUnited Kingdom2024-04-11Rangoni Of Florence PROPOSAL42Bernardo Dominic
1008Tony E IturbideAustralia2024-05-03Feiner Bros NEGOTIATION72Bernardo Dominic
1009Jefferson T BriddickGermany2024-04-19King, Christopher A Esq PROPOSAL72Anna Fali
1010Mujtaba V KuskoBrazil2024-04-15King, Christopher A Esq NEGOTIATION31Ivan Magalhaes
1011Deepesh R ButtUnited Kingdom2024-04-24Chanay, Jeffrey A Esq NEW88Amy Elsner
1012Chavez A FigeroaArgentina2024-05-01Rangoni Of Florence NEW68Amy Elsner
1013Stacey F ButtGermany2024-05-08Chapman, Ross E Esq NEW95Stephen Shaw
1014Ashley T ChuiJapan2024-05-04Chemel, James L Cpa NEGOTIATION71Ivan Magalhaes
1015Murillo U CampainRussia2024-04-26Morlong Associates UNQUALIFIED89Onyama Limba
1016Mayumi I RulapaughRussia2024-05-07Feiner Bros PROPOSAL29Amy Elsner
1017Chavez Y FlosiArgentina2024-04-18Buckley Miller Wright NEW50Asiya Javayant
1018Greenwood C SergiUnited Kingdom2024-04-12Chapman, Ross E Esq NEW88Bernardo Dominic
1019Wickens P MacleadJapan2024-05-07Morlong Associates NEW85Stephen Shaw
1020Munro J CaudyIndia2024-05-04Morlong Associates UNQUALIFIED70Xuxue Feng
1021Jones A SergiSpain2024-04-14Dorl, James J Esq NEW50Elwin Sharvill
1022Aruna X NestleUnited Kingdom2024-05-08King, Christopher A Esq RENEWAL71Ivan Magalhaes
1023Francesco V MaletIndia2024-04-17Morlong Associates QUALIFIED84Anna Fali
1024Clifford X SaylorsAustralia2024-05-04Feiner Bros RENEWAL52Stephen Shaw
1025Leon U GarufiCanada2024-05-06King, Christopher A Esq NEW8Ioni Bowcher
1026Antonio A KolmetzAustralia2024-04-17Rousseaux, Michael Esq QUALIFIED9Elwin Sharvill
1027Jennifer Q ShinkoUnited Kingdom2024-05-10Chanay, Jeffrey A Esq RENEWAL5Amy Elsner
1028Aditya N RimSpain2024-04-16Truhlar And Truhlar Attys UNQUALIFIED90Stephen Shaw
1029Johnson Q RoysterSpain2024-04-27Rangoni Of Florence PROPOSAL35Anna Fali
1030Smith Z BologniaAustralia2024-05-07Feiner Bros PROPOSAL3Amy Elsner
1031Mayumi H SchemmerItaly2024-04-22Printing Dimensions UNQUALIFIED85Stephen Shaw
1032Ashley O AlbaresArgentina2024-04-13Buckley Miller Wright RENEWAL13Anna Fali
1033Izzy I RimFrance2024-04-12Chemel, James L Cpa PROPOSAL39Bernardo Dominic
1034James L GlickCanada2024-04-15Truhlar And Truhlar Attys NEW93Ivan Magalhaes
1035Misaki L TollnerJapan2024-04-24Buckley Miller Wright UNQUALIFIED18Stephen Shaw
1036Salvatore M TollnerIndia2024-04-14Feltz Printing Service NEW68Ivan Magalhaes
1037Ivar R InouyeUnited Kingdom2024-04-20Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1038Maisha D DarakjyRussia2024-04-24Buckley Miller Wright PROPOSAL6Xuxue Feng
1039Smith Z RulapaughArgentina2024-04-16Printing Dimensions PROPOSAL82Onyama Limba
1040Maria E MarrierBrazil2024-04-25Truhlar And Truhlar Attys NEGOTIATION47Ivan Magalhaes
1041James I PoquetteRussia2024-05-06Morlong Associates UNQUALIFIED35Asiya Javayant
1042Costa V StockhamBrazil2024-04-19Buckley Miller Wright UNQUALIFIED84Xuxue Feng
1043Maria E MaletItaly2024-04-12Buckley Miller Wright UNQUALIFIED59Amy Elsner
1044Sinclair X RulapaughArgentina2024-05-10Chemel, James L Cpa PROPOSAL47Ivan Magalhaes
1045James B MaletSpain2024-05-03Rousseaux, Michael Esq UNQUALIFIED22Ivan Magalhaes
1046Juan Q MaletArgentina2024-04-13Morlong Associates NEGOTIATION33Ivan Magalhaes
1047Mayumi F WieserCanada2024-04-18Morlong Associates QUALIFIED65Anna Fali
1048Mujtaba I DoeRussia2024-04-29Printing Dimensions NEW26Bernardo Dominic
1049Kadeem N WieserCanada2024-05-04Truhlar And Truhlar Attys QUALIFIED9Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Greenwood G DilliardCanadaAmy Elsner NEW
Jefferson Z BologniaItalyXuxue Feng QUALIFIED
Octavia G StockhamRussiaStephen Shaw NEGOTIATION
Deepesh A TollnerUnited KingdomOnyama Limba UNQUALIFIED
Ashley B NickaCanadaAmy Elsner RENEWAL
Aditya C BriddickRussiaXuxue Feng QUALIFIED
Rodrigues E FerenczBrazilAsiya Javayant NEGOTIATION
Arvin J KolmetzFranceStephen Shaw QUALIFIED
Silvio I SlusarskiJapanBernardo Dominic UNQUALIFIED
Cody I WhobreyBrazilAsiya Javayant UNQUALIFIED
Maisha N GarufiFranceStephen Shaw NEGOTIATION
Leon D AlbaresCanadaOnyama Limba RENEWAL
Jeanfrancois S BriddickFranceXuxue Feng PROPOSAL
Isabel H DilliardJapanXuxue Feng NEW
Clifford E VocelkaItalyElwin Sharvill PROPOSAL
Costa L WaycottSpainAsiya Javayant NEGOTIATION
Murillo F MorascaBrazilStephen Shaw PROPOSAL
Juan Z ShinkoAustraliaAmy Elsner NEGOTIATION
Jones Z MacleadGermanyBernardo Dominic UNQUALIFIED
Murillo W SergiIndiaBernardo Dominic NEW
Munro U RulapaughJapanAmy Elsner NEW
Octavia A SergiGermanyElwin Sharvill UNQUALIFIED
Arvin O GarufiAustraliaAnna Fali QUALIFIED
Izzy D FigeroaCanadaStephen Shaw NEGOTIATION
Johnson A ButtArgentinaIoni Bowcher RENEWAL
Murillo S RutaSpainAnna Fali NEGOTIATION
Jones S RulapaughUnited KingdomAnna Fali QUALIFIED
Faith Q AlbaresItalyXuxue Feng NEGOTIATION
Ricardo M NickaUnited KingdomStephen Shaw NEGOTIATION
Julie E ChuiUnited KingdomAnna Fali PROPOSAL
Leon F FollerSpainElwin Sharvill QUALIFIED
Silvio A WaycottIndiaIvan Magalhaes PROPOSAL
Izzy W GillianCanadaAsiya Javayant NEW
Jones G SaylorsBrazilAmy Elsner NEGOTIATION
Tony N GarufiGermanyBernardo Dominic NEW
Aika N KolmetzJapanAmy Elsner PROPOSAL
Izzy Z KolmetzIndiaAmy Elsner UNQUALIFIED
Ricardo Y VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Stacey C StockhamFranceOnyama Limba PROPOSAL
Murillo X CampainCanadaStephen Shaw NEGOTIATION
Kadeem W NestleFranceStephen Shaw UNQUALIFIED
Mayumi Q KuskoJapanElwin Sharvill UNQUALIFIED
Maria H BologniaAustraliaXuxue Feng QUALIFIED
Kaitlin L GlickBrazilElwin Sharvill NEW
Kadeem E RutaGermanyIoni Bowcher RENEWAL
Kadeem M VenereUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois B DilliardAustraliaStephen Shaw PROPOSAL
Wickens V BriddickJapanStephen Shaw QUALIFIED
Alejandro P AmigonItalyAnna Fali NEW
Ricardo C WieserRussiaOnyama Limba RENEWAL
Frozen Columns
Name
Morrow W Paprocki
Antonio V Doe
Deepesh P Wieser
Johnson J Caudy
Claire K Bolognia
Ivar M Gaucho
Johnson J Rim
Adams Y Morasca
Francesco N Albares
Wickens G Schemmer
Mujtaba R Rim
Jeanfrancois D Albares
Jennifer Z Gaucho
Smith B Dilliard
Jefferson K Nestle
Isabel X Marrier
Jeanfrancois Y Whobrey
Mayumi K Royster
Murillo U Maclead
Kadeem X Paprocki
Ashley A Morasca
David E Perin
Aruna P Stockham
Julie F Butt
Cody B Poquette
Jefferson J Oldroyd
Rodrigues V Garufi
Jones R Briddick
Leja W Amigon
Kadeem E Saylors
Ashley B Waycott
Salvatore U Ruta
Darci J Gillian
Darci H Paprocki
Munro S Shinko
Kaitlin X Chui
Morrow U Amigon
Salvatore S Poquette
Costa Z Sergi
Jennifer F Amigon
Aika Y Bowley
Greenwood V Iturbide
Wickens Q Butt
Greenwood W Campain
Nicolas L Stockham
Isabel J Gillian
Izzy P Gillian
Wickens V Nicka
Julie S Malet
Julie W Gillian
IdCountryDate
1000Argentina2024-04-17
1001India2024-04-13
1002Argentina2024-05-01
1003Brazil2024-04-27
1004Italy2024-05-01
1005Germany2024-05-05
1006Spain2024-04-12
1007France2024-05-06
1008United Kingdom2024-04-15
1009United Kingdom2024-04-11
1010Italy2024-04-11
1011Germany2024-05-08
1012Canada2024-04-12
1013Japan2024-04-17
1014Italy2024-04-13
1015Australia2024-04-30
1016Spain2024-04-18
1017France2024-04-13
1018India2024-04-12
1019India2024-04-18
1020Spain2024-05-08
1021Italy2024-04-11
1022Italy2024-04-16
1023Australia2024-05-10
1024France2024-05-02
1025Spain2024-04-22
1026Canada2024-04-22
1027Russia2024-05-03
1028Argentina2024-04-24
1029Australia2024-04-16
1030Italy2024-04-16
1031Russia2024-04-26
1032United Kingdom2024-04-21
1033Brazil2024-04-14
1034Italy2024-05-08
1035Brazil2024-05-03
1036Argentina2024-04-28
1037India2024-05-02
1038Italy2024-04-27
1039Australia2024-05-03
1040Canada2024-05-06
1041Germany2024-04-12
1042Italy2024-05-08
1043France2024-04-15
1044United Kingdom2024-04-25
1045India2024-04-25
1046Canada2024-05-05
1047United Kingdom2024-04-13
1048United Kingdom2024-05-06
1049Argentina2024-04-15

On-Demand Data

NameIdCountryDate
Tony P Albares1000United Kingdom2024-05-03
Aruna O Wieser1001Japan2024-05-01
Juan G Shinko1002United Kingdom2024-05-03
Leon J Bowley1003France2024-04-16
Salvatore E Stenseth1004Japan2024-05-03
Maisha Y Nestle1005Japan2024-04-16
Chavez V Malet1006Germany2024-04-18
Kadeem B Malet1007Japan2024-05-07
Murillo H Vocelka1008Spain2024-04-18
Munro N Waycott1009Russia2024-05-06
Rodrigues A Ruta1010Russia2024-04-28
Kadeem M Bowley1011Germany2024-04-25
Jennifer P Dilliard1012Brazil2024-04-16
Aika I Vocelka1013Spain2024-04-25
Ivar Z Campain1014Germany2024-04-24
James J Albares1015Argentina2024-04-16
Stacey M Royster1016France2024-04-11
Munro G Caudy1017France2024-05-03
Aika T Bowley1018Argentina2024-05-05
Costa P Briddick1019Brazil2024-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika X KuskoGermanyStephen Shaw RENEWAL
Johnson D InouyeCanadaStephen Shaw NEW
Clifford G SlusarskiIndiaBernardo Dominic UNQUALIFIED
Izzy B DilliardArgentinaIoni Bowcher RENEWAL
Nicolas I CaudyRussiaBernardo Dominic UNQUALIFIED
Cody M MaletCanadaBernardo Dominic PROPOSAL
Jones G MorascaItalyAmy Elsner UNQUALIFIED
Arvin E GarufiGermanyStephen Shaw NEW
Jeanfrancois D GarufiCanadaAsiya Javayant PROPOSAL
Jeanfrancois I InouyeItalyXuxue Feng UNQUALIFIED
Costa N MaletSpainXuxue Feng PROPOSAL
Jennifer X InouyeFranceXuxue Feng PROPOSAL
Juan A PoquetteRussiaXuxue Feng RENEWAL
Aruna J DilliardJapanBernardo Dominic PROPOSAL
Costa T PerinRussiaBernardo Dominic NEGOTIATION
Greenwood Z PaprockiJapanAmy Elsner PROPOSAL
Darci P FigeroaItalyBernardo Dominic PROPOSAL
Ashley T ShinkoIndiaXuxue Feng QUALIFIED
Ricardo R CaldareraJapanAsiya Javayant NEW
Aruna V RoysterRussiaOnyama Limba QUALIFIED
Darci S AlbaresFranceAmy Elsner NEGOTIATION
Deepesh Z IturbideGermanyXuxue Feng RENEWAL
Mayumi N OstroskyItalyAmy Elsner PROPOSAL
Smith Z DilliardGermanyBernardo Dominic NEGOTIATION
Aika O PerinJapanIvan Magalhaes QUALIFIED
Maria R RoysterItalyElwin Sharvill QUALIFIED
Misaki V BriddickBrazilAmy Elsner QUALIFIED
Darci A StensethArgentinaIoni Bowcher NEW
Ivar A RoysterIndiaStephen Shaw UNQUALIFIED
Adams B OstroskyUnited KingdomAmy Elsner PROPOSAL
Alejandro X RoysterUnited KingdomAnna Fali QUALIFIED
Silvio J NestleSpainBernardo Dominic QUALIFIED
Isabel G SaylorsFranceElwin Sharvill QUALIFIED
Silvio L IturbideJapanAnna Fali RENEWAL
Mayumi D DarakjyFranceBernardo Dominic PROPOSAL
Maria U StockhamFranceIvan Magalhaes NEW
Mayumi C MorascaUnited KingdomAmy Elsner QUALIFIED
Smith Q KolmetzRussiaBernardo Dominic NEGOTIATION
David C NestleAustraliaAmy Elsner QUALIFIED
Jennifer S DoeUnited KingdomStephen Shaw UNQUALIFIED

<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>