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
Cody L AmigonRussiaIoni Bowcher RENEWAL
Aruna R WhobreyUnited KingdomAmy Elsner QUALIFIED
Stacey M RimUnited KingdomAsiya Javayant RENEWAL
Maisha G BologniaCanadaAmy Elsner NEW
Deepesh S PaprockiAustraliaBernardo Dominic RENEWAL
Jeanfrancois S BologniaSpainXuxue Feng NEW
Maisha E MacleadCanadaAsiya Javayant NEGOTIATION
Faith R BriddickJapanAmy Elsner UNQUALIFIED
Antonio I CaldareraSpainBernardo Dominic UNQUALIFIED
Leon C StockhamArgentinaBernardo Dominic QUALIFIED
Arvin C VocelkaArgentinaAsiya Javayant NEGOTIATION
Nicolas D PoquetteAustraliaElwin Sharvill QUALIFIED
James K RimRussiaIoni Bowcher PROPOSAL
Nicolas I BriddickUnited KingdomIoni Bowcher NEW
Morrow J ButtArgentinaStephen Shaw RENEWAL
Aika F CampainFranceStephen Shaw NEW
Nicolas D KolmetzAustraliaElwin Sharvill QUALIFIED
Ashley M DilliardGermanyStephen Shaw NEW
Ivar M PoquetteGermanyStephen Shaw RENEWAL
Francesco N RutaSpainIvan Magalhaes QUALIFIED
Misaki Y AmigonCanadaStephen Shaw RENEWAL
Francesco H AlbaresArgentinaBernardo Dominic QUALIFIED
Emily Q PerinCanadaElwin Sharvill NEGOTIATION
Deepesh R PoquetteGermanyIoni Bowcher NEGOTIATION
Ricardo P MaletArgentinaIvan Magalhaes PROPOSAL
Jefferson V ShinkoFranceIvan Magalhaes NEW
Jennifer W MarrierGermanyXuxue Feng NEGOTIATION
Ashley B DoeJapanBernardo Dominic PROPOSAL
Murillo D KolmetzUnited KingdomIoni Bowcher QUALIFIED
Ricardo B BriddickArgentinaXuxue Feng NEGOTIATION
Darci O FerenczJapanXuxue Feng PROPOSAL
James U DilliardItalyStephen Shaw QUALIFIED
Wickens O SaylorsCanadaAmy Elsner NEW
Ivar Q SchemmerCanadaAmy Elsner RENEWAL
Morrow A AmigonRussiaOnyama Limba NEGOTIATION
Sinclair D SchemmerCanadaOnyama Limba PROPOSAL
Chavez O RutaArgentinaAsiya Javayant UNQUALIFIED
Smith C MarrierUnited KingdomXuxue Feng PROPOSAL
Octavia P DilliardRussiaStephen Shaw NEGOTIATION
Jefferson W PaprockiItalyIvan Magalhaes RENEWAL
Tony F FlosiBrazilElwin Sharvill NEW
James A MacleadSpainAnna Fali NEGOTIATION
Munro J DilliardJapanIoni Bowcher NEW
Isabel K CampainRussiaXuxue Feng QUALIFIED
Aditya F GillianUnited KingdomAmy Elsner PROPOSAL
Antonio H AlbaresSpainAmy Elsner UNQUALIFIED
Leja D SaylorsCanadaOnyama Limba NEW
Izzy Q OstroskyIndiaIvan Magalhaes NEGOTIATION
James T ChuiJapanIoni Bowcher NEW
Leon I FlosiCanadaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams T GillianSpainIoni Bowcher PROPOSAL
Salvatore T VocelkaCanadaStephen Shaw PROPOSAL
Aditya N NickaRussiaIvan Magalhaes QUALIFIED
Ricardo X DoeSpainXuxue Feng UNQUALIFIED
Julie O CaudyIndiaBernardo Dominic PROPOSAL
Mayumi X BologniaIndiaXuxue Feng NEGOTIATION
Claire Y FlosiIndiaStephen Shaw PROPOSAL
Adams V MarrierCanadaAnna Fali NEGOTIATION
Munro Z GauchoFranceAnna Fali NEGOTIATION
David L TollnerRussiaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair M MaletBrazil2024-04-20Dorl, James J Esq NEW41Anna Fali
1001Faith U SchemmerGermany2024-04-13Chanay, Jeffrey A Esq UNQUALIFIED29Stephen Shaw
1002Mayumi A DoeGermany2024-04-23Commercial Press QUALIFIED76Stephen Shaw
1003Claire V SlusarskiUnited Kingdom2024-04-07Chemel, James L Cpa RENEWAL90Elwin Sharvill
1004Morrow L OstroskyItaly2024-03-30Buckley Miller Wright QUALIFIED21Ivan Magalhaes
1005Leon G DarakjyJapan2024-04-09Chemel, James L Cpa RENEWAL3Stephen Shaw
1006Claire F ShinkoIndia2024-04-11Benton, John B Jr PROPOSAL6Elwin Sharvill
1007Munro C AlbaresCanada2024-03-30Truhlar And Truhlar Attys QUALIFIED85Anna Fali
1008Chavez O PerinBrazil2024-04-12Chemel, James L Cpa RENEWAL31Ioni Bowcher
1009Mayumi I GillianIndia2024-03-28Benton, John B Jr UNQUALIFIED77Elwin Sharvill
1010Maria I VocelkaSpain2024-04-13Rangoni Of Florence NEW80Stephen Shaw
1011Nicolas X NickaFrance2024-04-02Morlong Associates UNQUALIFIED49Anna Fali
1012Kaitlin O BriddickGermany2024-04-19Chemel, James L Cpa UNQUALIFIED43Anna Fali
1013Octavia O MarrierIndia2024-03-28Morlong Associates UNQUALIFIED12Asiya Javayant
1014Arvin V InouyeAustralia2024-04-04Rangoni Of Florence UNQUALIFIED76Stephen Shaw
1015Cody M MaletRussia2024-04-05Chemel, James L Cpa NEW74Amy Elsner
1016Ashley I KuskoItaly2024-04-05Chanay, Jeffrey A Esq PROPOSAL92Ivan Magalhaes
1017Jeanfrancois W WaycottUnited Kingdom2024-04-23Chemel, James L Cpa RENEWAL1Elwin Sharvill
1018Francesco S RulapaughGermany2024-03-28Feiner Bros UNQUALIFIED50Onyama Limba
1019Francesco J CaudyJapan2024-04-03Printing Dimensions UNQUALIFIED50Ivan Magalhaes
1020Aditya C MaletUnited Kingdom2024-04-08Truhlar And Truhlar Attys UNQUALIFIED38Xuxue Feng
1021Maria U OstroskyBrazil2024-04-19Feiner Bros RENEWAL31Ioni Bowcher
1022Salvatore Z VocelkaItaly2024-03-31Feiner Bros RENEWAL12Ioni Bowcher
1023Maria F GillianIndia2024-04-10Chapman, Ross E Esq NEGOTIATION3Ioni Bowcher
1024Misaki R PerinCanada2024-03-29Rangoni Of Florence RENEWAL77Stephen Shaw
1025David Z KuskoBrazil2024-04-13Dorl, James J Esq RENEWAL33Stephen Shaw
1026Ashley M BriddickBrazil2024-04-14Dorl, James J Esq PROPOSAL37Asiya Javayant
1027Mayumi W TollnerSpain2024-03-28Rousseaux, Michael Esq NEGOTIATION64Asiya Javayant
1028Claire T ButtJapan2024-04-17Buckley Miller Wright NEW81Ivan Magalhaes
1029Costa P RulapaughUnited Kingdom2024-04-23Chapman, Ross E Esq NEGOTIATION72Bernardo Dominic
1030Francesco D NestleGermany2024-04-25Buckley Miller Wright PROPOSAL55Xuxue Feng
1031Salvatore D GarufiItaly2024-04-07Truhlar And Truhlar Attys QUALIFIED96Ioni Bowcher
1032Ricardo K PerinCanada2024-04-05Rangoni Of Florence PROPOSAL91Ivan Magalhaes
1033Adams M BowleyCanada2024-04-04Buckley Miller Wright RENEWAL82Bernardo Dominic
1034Jones Z GillianRussia2024-04-14Rangoni Of Florence RENEWAL59Amy Elsner
1035Clifford W DarakjyFrance2024-04-02Morlong Associates PROPOSAL82Onyama Limba
1036Ricardo L FlosiGermany2024-04-22Chanay, Jeffrey A Esq UNQUALIFIED32Bernardo Dominic
1037Chavez P InouyeUnited Kingdom2024-04-14Benton, John B Jr UNQUALIFIED80Anna Fali
1038Julie G MorascaIndia2024-03-31Truhlar And Truhlar Attys QUALIFIED55Asiya Javayant
1039Morrow N SlusarskiJapan2024-04-20Buckley Miller Wright RENEWAL11Asiya Javayant
1040Alejandro F CampainIndia2024-03-29Dorl, James J Esq QUALIFIED90Stephen Shaw
1041Jeanfrancois H FerenczRussia2024-04-02King, Christopher A Esq PROPOSAL49Bernardo Dominic
1042David N RulapaughSpain2024-04-15Chapman, Ross E Esq QUALIFIED37Elwin Sharvill
1043Johnson Y PerinFrance2024-04-23Feltz Printing Service PROPOSAL96Elwin Sharvill
1044Izzy M MorascaJapan2024-04-03Buckley Miller Wright QUALIFIED72Amy Elsner
1045James F RimCanada2024-04-13Morlong Associates NEGOTIATION84Ivan Magalhaes
1046Leon A BologniaAustralia2024-04-08Chanay, Jeffrey A Esq PROPOSAL21Stephen Shaw
1047Kadeem D DarakjyItaly2024-04-14Truhlar And Truhlar Attys NEW77Anna Fali
1048Darci V MarrierAustralia2024-03-30Printing Dimensions RENEWAL31Anna Fali
1049Kaitlin D MarrierAustralia2024-04-06Chanay, Jeffrey A Esq PROPOSAL46Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aruna Y InouyeFranceStephen Shaw PROPOSAL
Francesco L BologniaAustraliaOnyama Limba PROPOSAL
Morrow T IturbideAustraliaAmy Elsner QUALIFIED
Munro B KolmetzAustraliaAsiya Javayant NEGOTIATION
Jefferson W InouyeJapanXuxue Feng NEGOTIATION
Maria G MaletIndiaOnyama Limba PROPOSAL
Ivar G StockhamSpainOnyama Limba NEW
Smith R PaprockiAustraliaStephen Shaw PROPOSAL
Morrow N FigeroaJapanStephen Shaw NEW
Kaitlin I CaldareraRussiaIvan Magalhaes QUALIFIED
Kadeem G KolmetzUnited KingdomStephen Shaw NEW
Clifford G ButtSpainXuxue Feng QUALIFIED
Cody B ShinkoArgentinaElwin Sharvill NEW
Costa V VocelkaIndiaOnyama Limba NEW
Jeanfrancois V RoysterArgentinaStephen Shaw PROPOSAL
Clifford V DarakjyArgentinaIoni Bowcher QUALIFIED
Jefferson E RulapaughAustraliaElwin Sharvill NEW
Francesco E NestleIndiaAsiya Javayant QUALIFIED
Nicolas J NestleBrazilIoni Bowcher PROPOSAL
Munro U RimGermanyAnna Fali PROPOSAL
James E SergiSpainAsiya Javayant RENEWAL
Murillo O StockhamCanadaElwin Sharvill PROPOSAL
Greenwood T GauchoArgentinaIvan Magalhaes PROPOSAL
Wickens Y OldroydSpainIoni Bowcher QUALIFIED
Aruna N IturbideArgentinaOnyama Limba QUALIFIED
Mujtaba H DarakjyIndiaIoni Bowcher NEW
Aditya W ChuiSpainAnna Fali NEW
Silvio Y InouyeItalyBernardo Dominic NEGOTIATION
Deepesh O AmigonArgentinaAnna Fali RENEWAL
Isabel G ChuiGermanyAmy Elsner RENEWAL
Juan E MarrierBrazilAsiya Javayant RENEWAL
Octavia X MaletGermanyXuxue Feng QUALIFIED
Deepesh K CaldareraGermanyAsiya Javayant PROPOSAL
Chavez G InouyeItalyXuxue Feng NEW
Julie Z CampainCanadaAmy Elsner UNQUALIFIED
Chavez T DoeItalyOnyama Limba NEGOTIATION
Costa H NestleGermanyElwin Sharvill NEW
Julie O SlusarskiFranceIvan Magalhaes PROPOSAL
Clifford R WhobreyUnited KingdomAsiya Javayant NEW
Leon L BowleyIndiaXuxue Feng NEW
Jennifer R BologniaSpainBernardo Dominic PROPOSAL
Aruna H RoysterAustraliaIvan Magalhaes NEGOTIATION
Jennifer U IturbideArgentinaOnyama Limba NEGOTIATION
Johnson V VocelkaSpainAsiya Javayant PROPOSAL
Greenwood K RutaFranceXuxue Feng UNQUALIFIED
Leon T ButtUnited KingdomXuxue Feng QUALIFIED
Munro U VocelkaSpainIvan Magalhaes RENEWAL
Wickens U VenereArgentinaOnyama Limba NEW
Alejandro O GarufiBrazilStephen Shaw NEGOTIATION
Nicolas L NickaSpainAsiya Javayant NEW
Frozen Columns
Name
Mayumi T Butt
Darci T Stenseth
Adams B Tollner
Adams U Tollner
Izzy C Schemmer
Izzy U Figeroa
Ricardo N Stockham
Leja L Morasca
Smith P Venere
Aruna N Gaucho
Jeanfrancois B Glick
Sinclair W Bolognia
Silvio A Ferencz
Deepesh D Paprocki
Jennifer C Paprocki
David V Nicka
Julie B Caudy
Aruna W Caldarera
Mujtaba V Sergi
Alejandro J Gaucho
Faith M Paprocki
Ashley A Ostrosky
Aika N Venere
Salvatore Q Schemmer
Octavia J Venere
Ricardo I Slusarski
Johnson V Bolognia
Misaki U Figeroa
Kadeem Y Butt
Rodrigues U Doe
Julie D Ostrosky
Rodrigues Q Iturbide
Kaitlin M Bolognia
Ashley G Waycott
Mujtaba X Paprocki
Costa Y Vocelka
Aditya H Maclead
Smith M Doe
Ricardo W Flosi
Kaitlin Y Whobrey
Silvio E Foller
Julie B Chui
Sinclair L Shinko
Cody Q Whobrey
Antonio C Sergi
James T Saylors
Francesco W Gaucho
Emily N Malet
Leon N Darakjy
Misaki M Briddick
IdCountryDate
1000Russia2024-04-23
1001Argentina2024-04-15
1002Canada2024-03-29
1003United Kingdom2024-04-18
1004Spain2024-04-07
1005Brazil2024-04-07
1006Japan2024-04-09
1007Canada2024-04-10
1008Brazil2024-04-17
1009India2024-04-16
1010Spain2024-04-14
1011France2024-04-08
1012Argentina2024-04-25
1013Australia2024-04-04
1014Germany2024-04-17
1015Germany2024-04-23
1016United Kingdom2024-04-20
1017Russia2024-04-21
1018Canada2024-04-24
1019Australia2024-04-16
1020Brazil2024-04-13
1021Russia2024-03-31
1022Spain2024-04-21
1023Brazil2024-04-09
1024Brazil2024-04-12
1025Italy2024-04-03
1026Japan2024-04-13
1027Canada2024-04-19
1028United Kingdom2024-04-03
1029France2024-04-05
1030Germany2024-04-02
1031Spain2024-04-02
1032Canada2024-04-25
1033United Kingdom2024-04-25
1034Canada2024-04-21
1035Brazil2024-03-31
1036United Kingdom2024-03-30
1037United Kingdom2024-04-01
1038Argentina2024-03-29
1039France2024-04-14
1040India2024-04-20
1041Russia2024-04-15
1042Japan2024-04-19
1043Canada2024-04-03
1044India2024-04-22
1045Japan2024-03-30
1046Australia2024-03-28
1047Brazil2024-04-04
1048Italy2024-04-15
1049Brazil2024-04-05

On-Demand Data

NameIdCountryDate
Claire Z Amigon1000Argentina2024-04-15
Deepesh L Caudy1001France2024-04-04
Smith P Ruta1002Italy2024-03-30
Greenwood M Shinko1003Japan2024-04-05
Leja I Figeroa1004Argentina2024-04-11
Mujtaba J Rulapaugh1005United Kingdom2024-04-22
Mujtaba M Briddick1006Germany2024-04-14
Ashley E Maclead1007Brazil2024-04-05
Greenwood I Stenseth1008France2024-04-20
Rodrigues H Dilliard1009Italy2024-04-13
Francesco F Whobrey1010Germany2024-04-17
Silvio S Inouye1011Russia2024-04-17
Juan Y Nicka1012Italy2024-04-25
Clifford H Marrier1013Canada2024-04-10
Murillo O Kolmetz1014Spain2024-04-19
Maisha B Paprocki1015India2024-04-19
Claire L Bolognia1016Spain2024-04-22
Johnson Q Stockham1017Japan2024-04-20
Mujtaba W Butt1018Australia2024-04-23
Nicolas O Campain1019Japan2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin H OldroydAustraliaIoni Bowcher QUALIFIED
Isabel J BriddickItalyBernardo Dominic RENEWAL
Ivar P VenereFranceElwin Sharvill UNQUALIFIED
Sinclair C PoquetteIndiaIoni Bowcher PROPOSAL
Ashley R GillianUnited KingdomAsiya Javayant NEGOTIATION
Claire O GlickSpainIvan Magalhaes QUALIFIED
Greenwood Z OstroskyArgentinaElwin Sharvill UNQUALIFIED
Faith Y SaylorsBrazilIvan Magalhaes PROPOSAL
James Z BriddickJapanXuxue Feng NEGOTIATION
Salvatore J OstroskyRussiaAnna Fali UNQUALIFIED
Francesco U GauchoAustraliaAsiya Javayant NEGOTIATION
Rodrigues E GarufiIndiaAmy Elsner RENEWAL
Morrow A GillianAustraliaAnna Fali RENEWAL
Aika I FlosiAustraliaOnyama Limba UNQUALIFIED
Antonio R NickaRussiaOnyama Limba RENEWAL
David Z AlbaresItalyStephen Shaw PROPOSAL
Mayumi N KolmetzItalyElwin Sharvill NEW
Cody G NestleRussiaIoni Bowcher NEW
Deepesh G GarufiUnited KingdomElwin Sharvill PROPOSAL
Jones A WhobreyAustraliaBernardo Dominic RENEWAL
Faith M DarakjyJapanAnna Fali NEW
Morrow C SlusarskiGermanyBernardo Dominic RENEWAL
Sinclair J PoquetteCanadaBernardo Dominic RENEWAL
Wickens S RutaIndiaIoni Bowcher RENEWAL
Munro X IturbideIndiaXuxue Feng PROPOSAL
James X WaycottAustraliaAsiya Javayant NEW
Juan Q GauchoRussiaAnna Fali QUALIFIED
Faith W ChuiAustraliaAsiya Javayant QUALIFIED
Greenwood H ShinkoBrazilIvan Magalhaes PROPOSAL
Rodrigues E PoquetteItalyBernardo Dominic UNQUALIFIED
Greenwood J ButtJapanOnyama Limba QUALIFIED
Tony Y RutaFranceBernardo Dominic NEW
Alejandro W GillianIndiaIvan Magalhaes PROPOSAL
David Y BriddickIndiaStephen Shaw RENEWAL
Isabel B MaletArgentinaIoni Bowcher RENEWAL
Julie S PerinJapanAsiya Javayant NEW
Aditya I GlickCanadaIoni Bowcher PROPOSAL
Faith U GlickCanadaAnna Fali RENEWAL
Jones J DoeUnited KingdomIoni Bowcher QUALIFIED
Leon L SlusarskiCanadaAsiya Javayant 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>