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
Alejandro D FigeroaJapanXuxue Feng NEW
Maria T MacleadItalyAsiya Javayant NEGOTIATION
Rodrigues W NestleArgentinaStephen Shaw PROPOSAL
Emily S SlusarskiFranceElwin Sharvill NEGOTIATION
Kadeem E KuskoFranceIoni Bowcher PROPOSAL
Julie L GlickFranceXuxue Feng NEW
Maria U MaletCanadaOnyama Limba NEW
Nicolas Q AmigonGermanyBernardo Dominic NEGOTIATION
Tony D SaylorsArgentinaStephen Shaw PROPOSAL
Leon J NickaArgentinaAsiya Javayant NEW
Rodrigues R MacleadArgentinaAnna Fali QUALIFIED
Cody H BriddickAustraliaBernardo Dominic QUALIFIED
Salvatore C PaprockiJapanAnna Fali NEW
Silvio A DilliardJapanIvan Magalhaes PROPOSAL
Octavia J NickaGermanyIvan Magalhaes NEGOTIATION
Jones Q FigeroaIndiaIvan Magalhaes UNQUALIFIED
Izzy N CaldareraCanadaAmy Elsner RENEWAL
Stacey I MarrierJapanElwin Sharvill UNQUALIFIED
Costa M PaprockiArgentinaAmy Elsner PROPOSAL
Chavez V DilliardJapanIvan Magalhaes QUALIFIED
Adams B FollerAustraliaIvan Magalhaes NEGOTIATION
Mayumi Q ButtRussiaIoni Bowcher QUALIFIED
Isabel P MarrierUnited KingdomIoni Bowcher NEGOTIATION
Morrow U WhobreyJapanOnyama Limba UNQUALIFIED
Octavia W SlusarskiAustraliaXuxue Feng QUALIFIED
Morrow U ShinkoFranceIoni Bowcher PROPOSAL
Maria D BriddickSpainBernardo Dominic QUALIFIED
Tony N PaprockiGermanyAmy Elsner UNQUALIFIED
Leja O CaudySpainAmy Elsner QUALIFIED
Isabel M BologniaGermanyAnna Fali NEW
Juan Y SchemmerAustraliaAnna Fali PROPOSAL
Octavia V RimArgentinaAsiya Javayant NEW
Greenwood K SergiJapanXuxue Feng RENEWAL
Ashley B SlusarskiRussiaAsiya Javayant NEW
Morrow Y DarakjySpainOnyama Limba UNQUALIFIED
Claire B GarufiBrazilXuxue Feng RENEWAL
Jones R FollerFranceIoni Bowcher NEW
Munro G GlickCanadaStephen Shaw UNQUALIFIED
Izzy R RimArgentinaElwin Sharvill RENEWAL
Leja Q DoeSpainElwin Sharvill RENEWAL
Claire H SchemmerRussiaAmy Elsner NEW
Silvio X BowleyIndiaAmy Elsner NEGOTIATION
Wickens H KuskoItalyIoni Bowcher PROPOSAL
Costa M SlusarskiAustraliaAmy Elsner NEW
Jones Z DarakjyArgentinaAmy Elsner QUALIFIED
Munro L PaprockiFranceAnna Fali NEW
Francesco A MaletSpainIvan Magalhaes QUALIFIED
Claire Q PerinArgentinaElwin Sharvill UNQUALIFIED
Cody S WieserRussiaElwin Sharvill PROPOSAL
Silvio A WieserArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin I OldroydCanadaElwin Sharvill UNQUALIFIED
Jennifer L SlusarskiArgentinaAmy Elsner UNQUALIFIED
Octavia R GauchoFranceBernardo Dominic PROPOSAL
Kaitlin Y ButtSpainXuxue Feng QUALIFIED
Costa Y DoeIndiaBernardo Dominic RENEWAL
Juan N StockhamJapanBernardo Dominic RENEWAL
Faith U WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Munro U CaudyFranceAnna Fali PROPOSAL
Octavia R MaletUnited KingdomAnna Fali NEGOTIATION
Mayumi K RoysterJapanIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba P GarufiAustralia2024-04-11Rousseaux, Michael Esq UNQUALIFIED6Bernardo Dominic
1001Tony D RulapaughUnited Kingdom2024-04-13Printing Dimensions UNQUALIFIED82Asiya Javayant
1002Kaitlin O RulapaughAustralia2024-04-15Dorl, James J Esq UNQUALIFIED32Anna Fali
1003Francesco D MaletGermany2024-04-19King, Christopher A Esq QUALIFIED66Ivan Magalhaes
1004Morrow N BriddickArgentina2024-04-01Benton, John B Jr NEW75Ivan Magalhaes
1005Darci O SlusarskiUnited Kingdom2024-03-30Printing Dimensions NEGOTIATION74Onyama Limba
1006Cody K AlbaresRussia2024-04-04King, Christopher A Esq NEGOTIATION16Ivan Magalhaes
1007Ivar Y SlusarskiGermany2024-03-27Dorl, James J Esq QUALIFIED86Amy Elsner
1008Johnson V NickaArgentina2024-03-28King, Christopher A Esq QUALIFIED69Onyama Limba
1009Rodrigues T RulapaughRussia2024-04-16Feiner Bros UNQUALIFIED63Bernardo Dominic
1010Nicolas I RutaRussia2024-04-10Feiner Bros UNQUALIFIED60Ivan Magalhaes
1011Sinclair P OldroydRussia2024-04-09Benton, John B Jr UNQUALIFIED75Ivan Magalhaes
1012Smith O GarufiSpain2024-04-18Chapman, Ross E Esq QUALIFIED23Ivan Magalhaes
1013Claire R MacleadGermany2024-03-24Chapman, Ross E Esq NEW8Onyama Limba
1014Smith D GarufiUnited Kingdom2024-04-17Feltz Printing Service PROPOSAL31Ioni Bowcher
1015Smith Y SergiItaly2024-04-04Rousseaux, Michael Esq UNQUALIFIED79Elwin Sharvill
1016Nicolas G DilliardFrance2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED19Onyama Limba
1017Jeanfrancois V GauchoUnited Kingdom2024-04-09Feltz Printing Service UNQUALIFIED28Ivan Magalhaes
1018Kaitlin V GlickIndia2024-04-19Printing Dimensions NEW58Amy Elsner
1019Rodrigues K GlickRussia2024-04-08Truhlar And Truhlar Attys QUALIFIED46Onyama Limba
1020Misaki J NickaItaly2024-04-01Morlong Associates UNQUALIFIED98Amy Elsner
1021Aruna S FigeroaSpain2024-03-31Rousseaux, Michael Esq NEW63Amy Elsner
1022Leon R WhobreyUnited Kingdom2024-04-05Truhlar And Truhlar Attys PROPOSAL5Ioni Bowcher
1023Silvio I RutaUnited Kingdom2024-03-25Buckley Miller Wright NEGOTIATION96Onyama Limba
1024Arvin Y DarakjyUnited Kingdom2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED20Onyama Limba
1025Murillo Z WieserIndia2024-03-29Rousseaux, Michael Esq RENEWAL5Xuxue Feng
1026Darci P VenereAustralia2024-04-16Feiner Bros NEGOTIATION92Onyama Limba
1027Tony B DoeCanada2024-04-18Dorl, James J Esq RENEWAL63Anna Fali
1028Smith F DarakjyItaly2024-04-04Feiner Bros NEGOTIATION21Anna Fali
1029Jones C OldroydItaly2024-03-26Chapman, Ross E Esq NEGOTIATION2Amy Elsner
1030Costa D AmigonItaly2024-04-11Chanay, Jeffrey A Esq NEW46Ioni Bowcher
1031Murillo S WhobreyArgentina2024-04-14Feltz Printing Service UNQUALIFIED86Bernardo Dominic
1032Antonio V WaycottGermany2024-03-24Commercial Press NEGOTIATION59Amy Elsner
1033Sinclair X ButtCanada2024-03-30Benton, John B Jr UNQUALIFIED90Xuxue Feng
1034Salvatore J NickaArgentina2024-04-05Truhlar And Truhlar Attys UNQUALIFIED28Stephen Shaw
1035Greenwood R ChuiUnited Kingdom2024-04-11King, Christopher A Esq NEW60Asiya Javayant
1036Emily N TollnerJapan2024-03-23King, Christopher A Esq QUALIFIED6Ioni Bowcher
1037Claire I BowleyUnited Kingdom2024-04-14Feiner Bros QUALIFIED9Ioni Bowcher
1038Isabel Q PaprockiJapan2024-04-04Chanay, Jeffrey A Esq PROPOSAL16Elwin Sharvill
1039Leon K VenereRussia2024-04-01Chapman, Ross E Esq QUALIFIED41Bernardo Dominic
1040Leon Z PaprockiArgentina2024-04-10Commercial Press NEGOTIATION99Onyama Limba
1041Adams T ShinkoSpain2024-04-17Buckley Miller Wright PROPOSAL46Stephen Shaw
1042Leon B SchemmerAustralia2024-04-18Morlong Associates UNQUALIFIED78Stephen Shaw
1043Rodrigues M SlusarskiItaly2024-04-08Chemel, James L Cpa UNQUALIFIED10Ivan Magalhaes
1044Nicolas J StensethIndia2024-04-12Chanay, Jeffrey A Esq NEW77Elwin Sharvill
1045Ivar H RimBrazil2024-03-21Feiner Bros NEGOTIATION13Ivan Magalhaes
1046Murillo Z BologniaCanada2024-04-06Buckley Miller Wright UNQUALIFIED8Stephen Shaw
1047Juan U PaprockiFrance2024-04-11King, Christopher A Esq RENEWAL89Amy Elsner
1048Leon H SergiAustralia2024-03-24Chanay, Jeffrey A Esq NEGOTIATION24Stephen Shaw
1049Mayumi O DoeJapan2024-03-24Feltz Printing Service NEGOTIATION0Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Adams F DilliardSpainXuxue Feng QUALIFIED
Morrow A CaldareraJapanIvan Magalhaes RENEWAL
Johnson K StockhamBrazilBernardo Dominic RENEWAL
Morrow A MaletAustraliaOnyama Limba NEGOTIATION
Faith J PerinAustraliaOnyama Limba QUALIFIED
Costa L RimBrazilAnna Fali RENEWAL
Kaitlin D StockhamArgentinaXuxue Feng NEGOTIATION
Chavez Q MacleadSpainElwin Sharvill NEW
Aruna A FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Julie O VenereIndiaXuxue Feng RENEWAL
Murillo P GarufiUnited KingdomStephen Shaw QUALIFIED
Misaki I BriddickArgentinaElwin Sharvill NEGOTIATION
Cody D BowleyItalyAmy Elsner NEW
Mayumi F BologniaUnited KingdomElwin Sharvill RENEWAL
Cody U PaprockiJapanAnna Fali RENEWAL
Mujtaba P FerenczIndiaOnyama Limba PROPOSAL
Murillo F CaudyCanadaElwin Sharvill PROPOSAL
Faith Y MacleadItalyIoni Bowcher RENEWAL
Leon A RutaIndiaAmy Elsner PROPOSAL
Faith X KolmetzGermanyAmy Elsner QUALIFIED
James G BriddickArgentinaXuxue Feng NEGOTIATION
Silvio E MarrierJapanAmy Elsner NEGOTIATION
Maria H SchemmerJapanAnna Fali QUALIFIED
Maria I RoysterIndiaAsiya Javayant NEW
Maisha Q NestleUnited KingdomElwin Sharvill QUALIFIED
Ivar B VenereArgentinaElwin Sharvill NEW
Smith U SaylorsSpainStephen Shaw PROPOSAL
Isabel J TollnerGermanyAnna Fali QUALIFIED
Alejandro S InouyeIndiaIvan Magalhaes UNQUALIFIED
Maria Y BowleyItalyBernardo Dominic PROPOSAL
Julie N CaldareraBrazilAmy Elsner NEGOTIATION
Maisha X WaycottGermanyOnyama Limba QUALIFIED
Jones P FigeroaFranceElwin Sharvill RENEWAL
Jones L WhobreyArgentinaAnna Fali RENEWAL
Costa W FigeroaUnited KingdomAmy Elsner QUALIFIED
Izzy S InouyeJapanXuxue Feng PROPOSAL
James F CampainJapanAsiya Javayant NEW
Rodrigues T AlbaresRussiaIoni Bowcher NEGOTIATION
Kadeem R ShinkoArgentinaIoni Bowcher NEW
Cody J NickaCanadaAmy Elsner PROPOSAL
Kadeem Y AlbaresUnited KingdomXuxue Feng NEGOTIATION
Emily X RimBrazilIvan Magalhaes UNQUALIFIED
Leja B FerenczArgentinaAmy Elsner QUALIFIED
Isabel L DilliardIndiaXuxue Feng NEGOTIATION
Jefferson J SaylorsJapanIvan Magalhaes QUALIFIED
Aika V StockhamAustraliaIvan Magalhaes RENEWAL
Sinclair A NestleGermanyOnyama Limba NEGOTIATION
David Z FlosiSpainElwin Sharvill RENEWAL
Claire L RulapaughArgentinaXuxue Feng NEGOTIATION
Cody P BologniaIndiaXuxue Feng RENEWAL
Frozen Columns
Name
David V Sergi
Costa M Rulapaugh
Tony W Iturbide
Rodrigues Z Perin
Leja G Darakjy
Emily V Doe
Silvio F Amigon
Ashley C Gaucho
Silvio A Doe
Aruna A Venere
Leja T Malet
Alejandro N Inouye
Smith R Shinko
Antonio W Inouye
Wickens K Oldroyd
Aruna Y Shinko
Rodrigues J Campain
Arvin F Iturbide
Costa B Inouye
Alejandro U Gaucho
Stacey O Nicka
Faith O Caldarera
Cody C Poquette
Stacey H Waycott
David P Malet
Aditya V Stockham
Leja H Gaucho
Octavia E Kusko
Faith F Royster
Murillo I Tollner
Aditya J Perin
Silvio J Royster
Julie F Malet
Cody Z Marrier
Arvin L Bowley
Sinclair H Poquette
Isabel V Darakjy
Chavez M Sergi
Faith C Garufi
Munro G Sergi
Jennifer F Albares
Jennifer D Campain
Jefferson R Gillian
Salvatore B Malet
Emily I Flosi
Alejandro Q Caldarera
Kaitlin V Darakjy
Salvatore R Doe
Ivar X Butt
Tony Q Nestle
IdCountryDate
1000Spain2024-04-12
1001Germany2024-04-17
1002Italy2024-04-08
1003Canada2024-03-30
1004Italy2024-04-09
1005Italy2024-04-12
1006Japan2024-04-15
1007Russia2024-03-21
1008Italy2024-04-02
1009Germany2024-03-25
1010Japan2024-04-17
1011Argentina2024-04-14
1012Australia2024-04-09
1013Italy2024-03-22
1014Canada2024-04-01
1015Italy2024-03-22
1016Canada2024-04-08
1017United Kingdom2024-04-01
1018Australia2024-04-09
1019Canada2024-04-12
1020United Kingdom2024-03-31
1021Spain2024-03-30
1022Argentina2024-03-30
1023Canada2024-04-15
1024Japan2024-03-26
1025Canada2024-04-18
1026Italy2024-03-31
1027United Kingdom2024-04-06
1028Argentina2024-03-21
1029Germany2024-04-01
1030Germany2024-04-06
1031Russia2024-03-24
1032Italy2024-04-10
1033Canada2024-04-17
1034Italy2024-04-19
1035Russia2024-04-15
1036United Kingdom2024-03-28
1037United Kingdom2024-03-29
1038Canada2024-03-30
1039Spain2024-04-04
1040Russia2024-03-24
1041Canada2024-03-28
1042Russia2024-04-01
1043Brazil2024-03-27
1044Italy2024-04-10
1045Spain2024-04-16
1046Argentina2024-03-23
1047Brazil2024-04-12
1048United Kingdom2024-04-02
1049India2024-04-02

On-Demand Data

NameIdCountryDate
Salvatore Q Iturbide1000Italy2024-03-29
Nicolas V Doe1001Spain2024-04-13
Smith I Amigon1002Canada2024-03-31
Munro I Caudy1003Spain2024-04-08
Deepesh K Rim1004Brazil2024-04-03
Munro L Albares1005Brazil2024-04-04
Emily A Tollner1006Canada2024-04-19
Clifford M Inouye1007Japan2024-04-07
Mujtaba C Briddick1008Canada2024-04-05
Adams G Schemmer1009Argentina2024-03-26
Clifford E Kusko1010Australia2024-03-25
Silvio B Waycott1011Spain2024-04-18
Smith Z Oldroyd1012Italy2024-04-09
Johnson U Whobrey1013Spain2024-04-18
Ricardo G Waycott1014Spain2024-04-19
Claire X Poquette1015France2024-04-17
Alejandro R Amigon1016Argentina2024-03-31
Misaki F Doe1017Germany2024-03-22
Murillo O Ostrosky1018Russia2024-04-05
Ricardo Y Whobrey1019Argentina2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David I DarakjyItalyAnna Fali NEGOTIATION
Sinclair D NestleCanadaIoni Bowcher UNQUALIFIED
Kadeem V MaletIndiaBernardo Dominic NEW
Misaki Q ShinkoUnited KingdomAmy Elsner RENEWAL
Mayumi A AmigonIndiaXuxue Feng PROPOSAL
Alejandro J KuskoSpainIvan Magalhaes UNQUALIFIED
Ashley K MarrierRussiaOnyama Limba RENEWAL
Munro H GarufiCanadaAnna Fali UNQUALIFIED
David J PaprockiBrazilOnyama Limba NEW
Misaki Z InouyeJapanElwin Sharvill QUALIFIED
Stacey U CaldareraRussiaIvan Magalhaes QUALIFIED
Greenwood S BologniaItalyIvan Magalhaes UNQUALIFIED
Smith J WhobreyFranceIvan Magalhaes QUALIFIED
Ashley N StensethIndiaIvan Magalhaes NEW
Kaitlin P GillianBrazilAmy Elsner QUALIFIED
Darci E RulapaughAustraliaIvan Magalhaes NEW
Isabel T DoeArgentinaIvan Magalhaes RENEWAL
Claire X VenereBrazilXuxue Feng NEGOTIATION
Emily R KolmetzFranceIvan Magalhaes NEGOTIATION
Stacey O WieserGermanyBernardo Dominic NEGOTIATION
Sinclair N NestleSpainBernardo Dominic QUALIFIED
Ashley O WhobreyFranceAnna Fali NEW
Francesco D KolmetzIndiaAmy Elsner UNQUALIFIED
Juan A CampainCanadaAmy Elsner NEGOTIATION
Darci Q MarrierJapanXuxue Feng UNQUALIFIED
Murillo M MarrierJapanAsiya Javayant NEW
Silvio I MorascaFranceOnyama Limba RENEWAL
Kadeem B WhobreyGermanyAnna Fali NEGOTIATION
Antonio L NickaFranceIoni Bowcher QUALIFIED
David U PerinBrazilIvan Magalhaes NEW
Kadeem J RimBrazilAnna Fali UNQUALIFIED
Ricardo G FerenczCanadaAnna Fali NEW
Chavez K ShinkoItalyIvan Magalhaes NEW
Deepesh S FerenczSpainIvan Magalhaes PROPOSAL
Darci M IturbideJapanBernardo Dominic PROPOSAL
Munro X VenereBrazilOnyama Limba PROPOSAL
Jones L ButtUnited KingdomBernardo Dominic QUALIFIED
Arvin L KolmetzIndiaBernardo Dominic NEGOTIATION
Kadeem Y GlickArgentinaStephen Shaw NEGOTIATION
Mujtaba S MacleadBrazilAsiya Javayant 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>