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
Leon M GauchoGermanyBernardo Dominic PROPOSAL
Rodrigues Q GlickItalyAnna Fali RENEWAL
Darci S ShinkoGermanyXuxue Feng NEGOTIATION
Jeanfrancois G AmigonRussiaAnna Fali PROPOSAL
Antonio N RutaUnited KingdomAmy Elsner NEGOTIATION
Maria D OstroskyGermanyAsiya Javayant NEGOTIATION
Juan A KuskoArgentinaElwin Sharvill UNQUALIFIED
Claire C SlusarskiItalyElwin Sharvill QUALIFIED
Leja S OldroydGermanyXuxue Feng UNQUALIFIED
Morrow N RulapaughRussiaAnna Fali PROPOSAL
Murillo O InouyeUnited KingdomAmy Elsner RENEWAL
Kadeem C MarrierSpainBernardo Dominic UNQUALIFIED
Octavia X FollerBrazilAmy Elsner RENEWAL
Stacey E StockhamItalyIvan Magalhaes RENEWAL
Ricardo J ShinkoGermanyAmy Elsner PROPOSAL
Leon L MaletCanadaOnyama Limba NEW
Jennifer L FlosiAustraliaBernardo Dominic RENEWAL
Mujtaba S DilliardJapanAnna Fali RENEWAL
Deepesh H KuskoFranceXuxue Feng RENEWAL
Murillo X DilliardRussiaXuxue Feng NEW
Aika O FerenczCanadaElwin Sharvill NEGOTIATION
Adams S WhobreyIndiaXuxue Feng UNQUALIFIED
Leja Q VocelkaRussiaAnna Fali PROPOSAL
Alejandro A PoquetteBrazilElwin Sharvill QUALIFIED
Deepesh O AmigonRussiaXuxue Feng NEGOTIATION
Arvin S IturbideSpainAsiya Javayant UNQUALIFIED
Leon R CaldareraRussiaBernardo Dominic PROPOSAL
James P NestleRussiaOnyama Limba UNQUALIFIED
Costa G WhobreySpainIoni Bowcher PROPOSAL
Octavia K NickaAustraliaIvan Magalhaes UNQUALIFIED
Claire C WaycottUnited KingdomAsiya Javayant PROPOSAL
Maria Y OstroskyFranceIoni Bowcher UNQUALIFIED
Isabel V KolmetzCanadaElwin Sharvill QUALIFIED
Clifford Z VenereItalyAmy Elsner RENEWAL
Darci Q TollnerItalyAmy Elsner QUALIFIED
Greenwood G FigeroaFranceAnna Fali RENEWAL
Juan Y GlickJapanXuxue Feng PROPOSAL
Smith S VocelkaUnited KingdomIoni Bowcher QUALIFIED
Izzy X KolmetzSpainStephen Shaw QUALIFIED
Rodrigues V GarufiSpainElwin Sharvill NEW
Leon L RulapaughItalyElwin Sharvill UNQUALIFIED
Isabel Y OstroskyGermanyIvan Magalhaes NEGOTIATION
Maisha W MacleadAustraliaOnyama Limba QUALIFIED
Morrow Y AmigonAustraliaAmy Elsner NEW
Julie Z AmigonGermanyBernardo Dominic RENEWAL
Maisha E OldroydCanadaAmy Elsner NEW
Misaki G CaudyJapanElwin Sharvill QUALIFIED
Jeanfrancois T AlbaresBrazilBernardo Dominic UNQUALIFIED
Misaki W MacleadRussiaBernardo Dominic NEW
Sinclair H DarakjyJapanBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood X FollerCanadaElwin Sharvill NEGOTIATION
Arvin Q BriddickSpainElwin Sharvill RENEWAL
Chavez J WaycottJapanAsiya Javayant UNQUALIFIED
Izzy U CaldareraArgentinaXuxue Feng NEGOTIATION
Mujtaba Y StensethJapanAmy Elsner QUALIFIED
Wickens L ChuiAustraliaAsiya Javayant PROPOSAL
Alejandro I WaycottSpainOnyama Limba PROPOSAL
Antonio A FerenczGermanyAsiya Javayant UNQUALIFIED
Ivar F WhobreyItalyStephen Shaw RENEWAL
Maria T CaudyJapanIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones C SchemmerUnited Kingdom2024-04-05Commercial Press NEGOTIATION63Ioni Bowcher
1001Wickens J OldroydGermany2024-04-26Truhlar And Truhlar Attys NEW90Ivan Magalhaes
1002Izzy L KuskoArgentina2024-04-11Chemel, James L Cpa NEW59Bernardo Dominic
1003Clifford Y OstroskyArgentina2024-04-02Truhlar And Truhlar Attys RENEWAL50Ioni Bowcher
1004Deepesh D StockhamUnited Kingdom2024-04-11Dorl, James J Esq QUALIFIED91Xuxue Feng
1005Mayumi R FigeroaCanada2024-04-26Dorl, James J Esq NEGOTIATION78Anna Fali
1006James Z FerenczSpain2024-04-23Rangoni Of Florence PROPOSAL7Onyama Limba
1007Darci T GauchoJapan2024-04-14Feltz Printing Service NEW85Onyama Limba
1008James U PerinRussia2024-04-24Morlong Associates RENEWAL84Xuxue Feng
1009Jennifer R MarrierIndia2024-04-03King, Christopher A Esq QUALIFIED68Ivan Magalhaes
1010Salvatore A WaycottIndia2024-03-31Feltz Printing Service PROPOSAL58Stephen Shaw
1011James M DilliardSpain2024-04-14Dorl, James J Esq UNQUALIFIED70Ioni Bowcher
1012Aika S PoquetteFrance2024-04-11Chapman, Ross E Esq QUALIFIED26Elwin Sharvill
1013Darci U GlickCanada2024-04-10Feltz Printing Service RENEWAL7Onyama Limba
1014Emily G OstroskyIndia2024-04-16Printing Dimensions QUALIFIED31Elwin Sharvill
1015James T PaprockiIndia2024-04-07Chanay, Jeffrey A Esq PROPOSAL94Bernardo Dominic
1016Clifford K CaudyItaly2024-04-19Buckley Miller Wright QUALIFIED32Bernardo Dominic
1017Ivar H ChuiGermany2024-04-14Buckley Miller Wright PROPOSAL26Ioni Bowcher
1018Claire C BowleyFrance2024-04-06Rangoni Of Florence UNQUALIFIED57Anna Fali
1019Chavez J VenereSpain2024-04-15Chapman, Ross E Esq NEGOTIATION91Amy Elsner
1020Tony E RoysterRussia2024-04-08King, Christopher A Esq PROPOSAL63Ioni Bowcher
1021David C OldroydSpain2024-04-24Chemel, James L Cpa NEW21Amy Elsner
1022Arvin L MorascaGermany2024-04-18Truhlar And Truhlar Attys UNQUALIFIED61Xuxue Feng
1023Tony F TollnerUnited Kingdom2024-04-04Rangoni Of Florence QUALIFIED25Anna Fali
1024Adams I WhobreyItaly2024-04-07Chemel, James L Cpa RENEWAL77Xuxue Feng
1025Kadeem O SergiUnited Kingdom2024-04-07Feltz Printing Service NEW3Anna Fali
1026Mujtaba B RulapaughIndia2024-04-08Chanay, Jeffrey A Esq NEGOTIATION79Elwin Sharvill
1027Misaki I RoysterJapan2024-04-02Truhlar And Truhlar Attys UNQUALIFIED77Onyama Limba
1028Maisha B FigeroaSpain2024-04-27Chanay, Jeffrey A Esq NEGOTIATION59Bernardo Dominic
1029Nicolas Q StensethSpain2024-04-02Morlong Associates NEGOTIATION29Onyama Limba
1030Johnson R RoysterBrazil2024-04-07Dorl, James J Esq RENEWAL65Stephen Shaw
1031Claire D DarakjyCanada2024-04-19Feltz Printing Service QUALIFIED53Ioni Bowcher
1032Adams O TollnerArgentina2024-04-27Commercial Press NEGOTIATION42Ioni Bowcher
1033Misaki U NestleBrazil2024-04-13Chanay, Jeffrey A Esq PROPOSAL25Stephen Shaw
1034Alejandro O FlosiRussia2024-04-04Commercial Press RENEWAL63Elwin Sharvill
1035Adams I FerenczItaly2024-04-01Chanay, Jeffrey A Esq UNQUALIFIED92Bernardo Dominic
1036Morrow X WhobreyUnited Kingdom2024-04-19Feiner Bros NEGOTIATION90Stephen Shaw
1037Chavez C FollerBrazil2024-04-13Printing Dimensions RENEWAL55Elwin Sharvill
1038Jones J DoeGermany2024-04-27Feiner Bros UNQUALIFIED5Stephen Shaw
1039Aika U OldroydAustralia2024-04-23Truhlar And Truhlar Attys UNQUALIFIED48Ioni Bowcher
1040Johnson D SlusarskiArgentina2024-04-06Chapman, Ross E Esq NEW90Onyama Limba
1041Ashley S RutaRussia2024-04-15Commercial Press RENEWAL96Ivan Magalhaes
1042Antonio D KolmetzFrance2024-04-07Buckley Miller Wright RENEWAL71Elwin Sharvill
1043Wickens J AlbaresRussia2024-03-31Chemel, James L Cpa UNQUALIFIED43Amy Elsner
1044Isabel G BologniaCanada2024-04-16King, Christopher A Esq RENEWAL76Asiya Javayant
1045Nicolas Q StensethSpain2024-03-30Rangoni Of Florence UNQUALIFIED64Ivan Magalhaes
1046Chavez C AmigonSpain2024-04-25Feltz Printing Service RENEWAL41Stephen Shaw
1047Silvio R GillianAustralia2024-04-11Printing Dimensions NEGOTIATION57Ioni Bowcher
1048Wickens R KolmetzSpain2024-03-31Commercial Press PROPOSAL62Asiya Javayant
1049David F AlbaresUnited Kingdom2024-04-25Chanay, Jeffrey A Esq QUALIFIED4Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Adams O AmigonAustraliaElwin Sharvill NEGOTIATION
Stacey P OldroydIndiaBernardo Dominic QUALIFIED
Kaitlin H RutaBrazilOnyama Limba PROPOSAL
Misaki B FigeroaUnited KingdomOnyama Limba NEW
Tony F ShinkoIndiaXuxue Feng NEGOTIATION
Mayumi Q GillianArgentinaXuxue Feng QUALIFIED
Isabel F IturbideJapanStephen Shaw PROPOSAL
Ricardo Z DoeJapanAnna Fali QUALIFIED
Alejandro W WaycottFranceXuxue Feng NEW
Izzy P BologniaArgentinaElwin Sharvill NEGOTIATION
Tony K FerenczFranceXuxue Feng NEGOTIATION
Nicolas L FollerFranceAnna Fali NEGOTIATION
Isabel D FlosiAustraliaOnyama Limba QUALIFIED
Murillo B MorascaGermanyBernardo Dominic PROPOSAL
Alejandro L ShinkoUnited KingdomIoni Bowcher NEW
Jones K SchemmerJapanXuxue Feng PROPOSAL
Aruna B DarakjyAustraliaIvan Magalhaes QUALIFIED
Juan J RulapaughUnited KingdomAsiya Javayant QUALIFIED
Leja W CaudyArgentinaStephen Shaw RENEWAL
Leja Q FollerSpainElwin Sharvill NEW
Sinclair L ButtItalyIoni Bowcher RENEWAL
Kadeem X RutaIndiaAmy Elsner NEW
Tony G GauchoUnited KingdomAnna Fali RENEWAL
Misaki O GlickItalyStephen Shaw RENEWAL
James J GauchoArgentinaAnna Fali NEW
Darci A AmigonIndiaXuxue Feng QUALIFIED
Clifford O AmigonRussiaBernardo Dominic RENEWAL
Deepesh X BriddickJapanAsiya Javayant NEW
Octavia Y WhobreyRussiaBernardo Dominic NEGOTIATION
Ivar M CaudyCanadaIvan Magalhaes PROPOSAL
Aruna F FlosiIndiaStephen Shaw NEGOTIATION
Jones B RoysterUnited KingdomStephen Shaw NEGOTIATION
Arvin U ShinkoAustraliaAnna Fali NEGOTIATION
Murillo P GauchoAustraliaIoni Bowcher NEW
Aditya C BowleyAustraliaAnna Fali UNQUALIFIED
Jefferson C StensethFranceAsiya Javayant QUALIFIED
Octavia F StensethIndiaIvan Magalhaes QUALIFIED
Salvatore F FlosiFranceAmy Elsner RENEWAL
Leja G MacleadRussiaBernardo Dominic QUALIFIED
Mayumi U CaudyGermanyAmy Elsner NEGOTIATION
James I RoysterIndiaXuxue Feng UNQUALIFIED
Darci W VocelkaIndiaIvan Magalhaes QUALIFIED
Jeanfrancois M PerinUnited KingdomAsiya Javayant NEGOTIATION
Ricardo M IturbideArgentinaElwin Sharvill RENEWAL
Juan X PerinRussiaIoni Bowcher NEW
Maisha Y MaletArgentinaIvan Magalhaes RENEWAL
Kaitlin O CaldareraUnited KingdomElwin Sharvill QUALIFIED
Jefferson P VenereSpainStephen Shaw RENEWAL
Jeanfrancois H StockhamUnited KingdomXuxue Feng NEW
Jones J MaletGermanyAsiya Javayant NEW
Frozen Columns
Name
Tony D Kusko
Jefferson N Shinko
Jones N Wieser
Ivar N Ferencz
Kaitlin O Doe
Claire B Shinko
Sinclair K Caudy
Faith D Ostrosky
Wickens R Figeroa
Johnson A Nestle
Leja L Shinko
Ivar W Caudy
Munro K Kolmetz
Nicolas K Royster
Maisha U Doe
Murillo Y Slusarski
Maria Y Glick
Maisha N Briddick
Ricardo P Schemmer
Isabel Q Glick
Sinclair S Briddick
Antonio A Butt
Johnson P Doe
Silvio K Briddick
Wickens C Paprocki
Isabel Y Doe
Emily O Waycott
Francesco F Butt
Misaki L Tollner
Jeanfrancois Q Foller
Ricardo M Foller
Costa A Wieser
Aditya V Tollner
Sinclair D Ferencz
Chavez A Perin
Deepesh I Malet
Murillo T Glick
Rodrigues U Kolmetz
Costa W Shinko
Mujtaba D Kolmetz
Faith X Malet
Morrow E Venere
Jennifer E Morasca
Isabel E Caudy
Ashley W Butt
Darci D Kusko
Antonio Z Amigon
Murillo Z Paprocki
Munro M Vocelka
Jones U Foller
IdCountryDate
1000Japan2024-04-19
1001France2024-04-15
1002Canada2024-04-04
1003United Kingdom2024-04-20
1004Japan2024-04-25
1005United Kingdom2024-04-06
1006Italy2024-04-26
1007France2024-04-27
1008Russia2024-04-10
1009Germany2024-04-27
1010Argentina2024-04-02
1011Canada2024-04-22
1012United Kingdom2024-04-06
1013Australia2024-04-25
1014Canada2024-03-30
1015Canada2024-04-19
1016India2024-04-05
1017India2024-04-25
1018Italy2024-04-10
1019Australia2024-04-25
1020India2024-04-22
1021Spain2024-04-25
1022Italy2024-04-10
1023United Kingdom2024-04-22
1024Russia2024-04-26
1025Germany2024-04-19
1026Germany2024-04-15
1027Canada2024-04-03
1028Russia2024-04-08
1029Canada2024-04-18
1030France2024-03-31
1031Russia2024-04-15
1032Australia2024-04-12
1033Russia2024-04-13
1034Italy2024-04-13
1035France2024-04-21
1036Spain2024-04-23
1037France2024-04-19
1038India2024-04-28
1039Japan2024-04-02
1040France2024-04-14
1041Australia2024-04-06
1042Japan2024-04-28
1043Australia2024-04-18
1044United Kingdom2024-04-01
1045France2024-04-25
1046Germany2024-04-19
1047Spain2024-04-02
1048Germany2024-04-27
1049Russia2024-04-08

On-Demand Data

NameIdCountryDate
Deepesh D Gaucho1000United Kingdom2024-04-25
Costa J Ostrosky1001Russia2024-04-12
Kaitlin F Kolmetz1002India2024-03-30
Tony J Darakjy1003Canada2024-04-07
Ricardo K Paprocki1004Russia2024-03-31
Darci Y Schemmer1005Germany2024-04-02
Mayumi O Ostrosky1006France2024-04-01
Isabel I Darakjy1007Japan2024-04-01
Salvatore L Caldarera1008Argentina2024-03-31
Ricardo J Bolognia1009Spain2024-04-19
Julie E Albares1010Italy2024-04-18
James Z Glick1011Argentina2024-04-05
Adams U Campain1012United Kingdom2024-04-10
Kaitlin L Tollner1013Canada2024-04-21
Juan K Ostrosky1014Australia2024-04-14
Jennifer V Sergi1015Germany2024-04-02
Aika C Ferencz1016Spain2024-04-25
Salvatore G Kolmetz1017Spain2024-04-08
Octavia C Figeroa1018Russia2024-04-17
Ivar H Briddick1019India2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna R SchemmerBrazilIvan Magalhaes QUALIFIED
Claire Z FerenczUnited KingdomBernardo Dominic NEGOTIATION
Silvio N FerenczIndiaAmy Elsner NEGOTIATION
Tony I CampainItalyOnyama Limba UNQUALIFIED
Misaki W MacleadRussiaOnyama Limba UNQUALIFIED
Johnson Z StockhamJapanAmy Elsner UNQUALIFIED
Izzy J MacleadJapanAnna Fali UNQUALIFIED
Rodrigues C OldroydAustraliaAmy Elsner PROPOSAL
Smith T TollnerCanadaStephen Shaw PROPOSAL
Maria O MorascaIndiaIvan Magalhaes PROPOSAL
Darci G PoquetteFranceBernardo Dominic RENEWAL
Aruna L SlusarskiIndiaAnna Fali NEGOTIATION
Claire J InouyeArgentinaAsiya Javayant RENEWAL
Jeanfrancois S CaldareraBrazilIoni Bowcher PROPOSAL
Jennifer Z WhobreyIndiaAsiya Javayant PROPOSAL
Salvatore T NickaAustraliaStephen Shaw NEW
Aditya K WaycottGermanyOnyama Limba PROPOSAL
Mujtaba N WieserFranceIvan Magalhaes UNQUALIFIED
Wickens Z VenereIndiaAmy Elsner NEW
Tony D MacleadSpainAnna Fali PROPOSAL
Clifford X SlusarskiItalyBernardo Dominic PROPOSAL
James J WhobreyBrazilBernardo Dominic QUALIFIED
Faith V CaudyJapanElwin Sharvill NEGOTIATION
Aika I AlbaresFranceBernardo Dominic NEW
Izzy F CampainGermanyIoni Bowcher RENEWAL
Clifford B RimItalyElwin Sharvill UNQUALIFIED
Leja O NickaUnited KingdomXuxue Feng NEW
Izzy P AlbaresCanadaBernardo Dominic NEW
Smith L OldroydSpainAnna Fali NEW
Sinclair W GarufiSpainStephen Shaw QUALIFIED
Chavez W PaprockiGermanyIoni Bowcher UNQUALIFIED
Chavez F ShinkoBrazilElwin Sharvill RENEWAL
Greenwood L FigeroaSpainBernardo Dominic QUALIFIED
Emily B PerinArgentinaIoni Bowcher PROPOSAL
Leja Z AmigonArgentinaOnyama Limba NEW
Jennifer K GarufiFranceStephen Shaw QUALIFIED
Murillo Y CampainRussiaAsiya Javayant NEW
Johnson S ButtJapanXuxue Feng NEGOTIATION
Clifford L NickaRussiaIvan Magalhaes PROPOSAL
Francesco P RulapaughCanadaOnyama Limba 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>