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
Munro L WhobreyBrazilAsiya Javayant UNQUALIFIED
Maisha C SergiRussiaBernardo Dominic QUALIFIED
Munro X ChuiSpainIvan Magalhaes NEGOTIATION
Julie E PoquetteRussiaBernardo Dominic PROPOSAL
Munro F AlbaresCanadaElwin Sharvill RENEWAL
David H CaldareraSpainAmy Elsner NEW
Deepesh C SergiGermanyOnyama Limba RENEWAL
Nicolas Q OstroskyItalyBernardo Dominic PROPOSAL
Murillo D WaycottFranceXuxue Feng NEGOTIATION
Kadeem F BowleySpainIvan Magalhaes NEGOTIATION
Greenwood J GillianFranceElwin Sharvill QUALIFIED
Leon X FollerBrazilOnyama Limba UNQUALIFIED
Cody N TollnerAustraliaAnna Fali RENEWAL
Aruna X SlusarskiRussiaAnna Fali QUALIFIED
Maria Z KuskoUnited KingdomBernardo Dominic RENEWAL
Silvio F KolmetzBrazilAmy Elsner UNQUALIFIED
Jones V OstroskyJapanXuxue Feng UNQUALIFIED
Johnson Z ButtFranceAmy Elsner PROPOSAL
Ashley B MaletUnited KingdomElwin Sharvill QUALIFIED
Leon H AlbaresUnited KingdomXuxue Feng UNQUALIFIED
Leon F OstroskyFranceStephen Shaw NEW
Munro W AmigonRussiaAsiya Javayant NEGOTIATION
Izzy F WieserGermanyElwin Sharvill NEGOTIATION
Juan R StockhamBrazilOnyama Limba QUALIFIED
Rodrigues T ButtCanadaAnna Fali NEW
Arvin M WaycottFranceElwin Sharvill NEGOTIATION
Sinclair T WieserGermanyIvan Magalhaes NEGOTIATION
Misaki F WieserIndiaOnyama Limba NEGOTIATION
Morrow F StensethGermanyIoni Bowcher UNQUALIFIED
Aruna I StockhamRussiaIvan Magalhaes NEGOTIATION
David W VenereRussiaIvan Magalhaes RENEWAL
Octavia S TollnerBrazilIoni Bowcher PROPOSAL
Murillo I WaycottItalyElwin Sharvill NEGOTIATION
Alejandro Y WhobreyCanadaElwin Sharvill QUALIFIED
Tony M PerinCanadaAmy Elsner NEW
Faith N CaldareraUnited KingdomXuxue Feng NEW
Isabel P GauchoAustraliaAnna Fali NEW
Munro P AlbaresItalyIvan Magalhaes NEW
Maisha E GarufiIndiaXuxue Feng PROPOSAL
Misaki D TollnerJapanIvan Magalhaes NEGOTIATION
Emily P BowleySpainStephen Shaw UNQUALIFIED
Jones V KolmetzGermanyIvan Magalhaes QUALIFIED
Kadeem T MaletRussiaAsiya Javayant RENEWAL
Salvatore D VocelkaUnited KingdomOnyama Limba PROPOSAL
Johnson Q AmigonArgentinaIvan Magalhaes RENEWAL
Tony W OldroydCanadaBernardo Dominic UNQUALIFIED
Salvatore S BowleyGermanyBernardo Dominic QUALIFIED
Sinclair V GauchoGermanyAsiya Javayant PROPOSAL
Cody D PaprockiBrazilStephen Shaw UNQUALIFIED
Nicolas G TollnerGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Aruna K SaylorsJapanIvan Magalhaes UNQUALIFIED
Greenwood L SaylorsArgentinaAsiya Javayant UNQUALIFIED
Nicolas E SlusarskiAustraliaAmy Elsner NEGOTIATION
Greenwood W VenereGermanyXuxue Feng UNQUALIFIED
Cody M CaldareraJapanIoni Bowcher RENEWAL
Jones E IturbideGermanyBernardo Dominic UNQUALIFIED
Maria S VenereFranceStephen Shaw UNQUALIFIED
Nicolas U NickaAustraliaIoni Bowcher NEW
Isabel L GlickIndiaElwin Sharvill PROPOSAL
Nicolas X MaletBrazilAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson L BriddickUnited Kingdom2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED99Xuxue Feng
1001Alejandro Z OstroskyIndia2024-05-04Printing Dimensions NEGOTIATION89Asiya Javayant
1002Murillo Z BologniaAustralia2024-04-17Feiner Bros NEW2Bernardo Dominic
1003Isabel W MorascaAustralia2024-04-25Benton, John B Jr NEW22Asiya Javayant
1004Maisha B WaycottArgentina2024-05-02Chapman, Ross E Esq NEGOTIATION3Elwin Sharvill
1005Julie I RoysterUnited Kingdom2024-04-24Dorl, James J Esq QUALIFIED91Xuxue Feng
1006Murillo I DarakjyAustralia2024-04-30Chemel, James L Cpa RENEWAL64Onyama Limba
1007James T StockhamBrazil2024-04-25King, Christopher A Esq PROPOSAL39Bernardo Dominic
1008Octavia V GauchoRussia2024-04-24Chanay, Jeffrey A Esq RENEWAL23Bernardo Dominic
1009Clifford W AlbaresSpain2024-04-08Feiner Bros NEW6Ioni Bowcher
1010Deepesh V GauchoGermany2024-04-20Buckley Miller Wright RENEWAL55Xuxue Feng
1011Greenwood O InouyeJapan2024-04-19Chapman, Ross E Esq UNQUALIFIED32Amy Elsner
1012Ivar O FerenczSpain2024-04-16Rangoni Of Florence RENEWAL42Asiya Javayant
1013Francesco O PoquetteGermany2024-04-24Buckley Miller Wright QUALIFIED93Bernardo Dominic
1014Smith A BriddickArgentina2024-04-09Chanay, Jeffrey A Esq NEW21Bernardo Dominic
1015Cody N KuskoBrazil2024-04-21Chapman, Ross E Esq NEGOTIATION23Bernardo Dominic
1016Rodrigues X AlbaresJapan2024-04-14Morlong Associates NEW36Xuxue Feng
1017Aruna V DilliardJapan2024-04-17Printing Dimensions QUALIFIED17Asiya Javayant
1018Munro D SchemmerItaly2024-04-15Morlong Associates RENEWAL47Anna Fali
1019Greenwood D CampainSpain2024-04-22Commercial Press PROPOSAL46Asiya Javayant
1020Jefferson I RoysterRussia2024-04-30Chanay, Jeffrey A Esq PROPOSAL3Amy Elsner
1021Munro O TollnerIndia2024-04-12Rangoni Of Florence NEW68Onyama Limba
1022Antonio D FerenczRussia2024-05-06Chemel, James L Cpa NEW82Anna Fali
1023Emily Y RutaGermany2024-05-01Feiner Bros NEW10Ioni Bowcher
1024Johnson Y FerenczArgentina2024-04-26Dorl, James J Esq UNQUALIFIED69Amy Elsner
1025Munro Y BowleyFrance2024-05-02Dorl, James J Esq QUALIFIED92Ioni Bowcher
1026Chavez B DilliardIndia2024-04-11Benton, John B Jr RENEWAL3Anna Fali
1027Clifford X StockhamAustralia2024-04-09King, Christopher A Esq UNQUALIFIED85Stephen Shaw
1028Kadeem E KuskoUnited Kingdom2024-04-26Commercial Press QUALIFIED99Ioni Bowcher
1029Mayumi K MorascaSpain2024-04-27Feiner Bros PROPOSAL16Amy Elsner
1030Faith B MaletJapan2024-05-03Benton, John B Jr PROPOSAL43Bernardo Dominic
1031Clifford T GarufiUnited Kingdom2024-04-14Chanay, Jeffrey A Esq NEW3Onyama Limba
1032Octavia C GauchoRussia2024-04-12King, Christopher A Esq UNQUALIFIED9Xuxue Feng
1033Aruna Z MarrierBrazil2024-04-18Feiner Bros PROPOSAL92Anna Fali
1034Mujtaba S StensethFrance2024-04-14Benton, John B Jr NEGOTIATION94Asiya Javayant
1035Kaitlin O SlusarskiRussia2024-04-29Chapman, Ross E Esq PROPOSAL27Asiya Javayant
1036Adams R GillianArgentina2024-04-14Printing Dimensions RENEWAL96Elwin Sharvill
1037Ivar O RoysterUnited Kingdom2024-05-03Chemel, James L Cpa UNQUALIFIED78Ivan Magalhaes
1038Kadeem W TollnerUnited Kingdom2024-05-04Feltz Printing Service UNQUALIFIED43Ivan Magalhaes
1039Kaitlin N VocelkaSpain2024-04-29Dorl, James J Esq RENEWAL56Stephen Shaw
1040Mujtaba D FlosiArgentina2024-05-03Chanay, Jeffrey A Esq QUALIFIED13Bernardo Dominic
1041Jennifer J DilliardJapan2024-04-20Benton, John B Jr RENEWAL23Onyama Limba
1042Wickens W ShinkoArgentina2024-05-01Chanay, Jeffrey A Esq UNQUALIFIED54Anna Fali
1043Antonio P AlbaresAustralia2024-04-23Rangoni Of Florence PROPOSAL74Ioni Bowcher
1044Kaitlin H WieserCanada2024-05-03Feiner Bros PROPOSAL50Ioni Bowcher
1045Juan D FlosiItaly2024-04-19Truhlar And Truhlar Attys RENEWAL64Bernardo Dominic
1046Rodrigues Z WaycottJapan2024-04-08Buckley Miller Wright UNQUALIFIED75Ivan Magalhaes
1047Jennifer L IturbideItaly2024-04-11Rousseaux, Michael Esq RENEWAL27Xuxue Feng
1048Kadeem F SergiRussia2024-04-30Benton, John B Jr QUALIFIED32Ioni Bowcher
1049Emily H StensethAustralia2024-04-30Feltz Printing Service PROPOSAL61Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Antonio Q NickaItalyElwin Sharvill RENEWAL
Jennifer F ShinkoCanadaIoni Bowcher RENEWAL
Antonio J InouyeItalyXuxue Feng RENEWAL
Deepesh Y RimBrazilStephen Shaw UNQUALIFIED
Wickens N FollerRussiaXuxue Feng QUALIFIED
Francesco X StockhamBrazilXuxue Feng RENEWAL
Stacey Y DoeFranceStephen Shaw NEW
Arvin F ShinkoFranceAmy Elsner PROPOSAL
Kaitlin N RutaCanadaBernardo Dominic QUALIFIED
Cody O PoquetteItalyStephen Shaw NEW
Leon Y OldroydUnited KingdomAsiya Javayant RENEWAL
Deepesh W InouyeUnited KingdomXuxue Feng NEGOTIATION
Rodrigues E PerinBrazilAsiya Javayant NEGOTIATION
Wickens N DarakjyArgentinaElwin Sharvill RENEWAL
Nicolas P GlickUnited KingdomIoni Bowcher QUALIFIED
Johnson H WieserArgentinaBernardo Dominic PROPOSAL
Kadeem Y DilliardRussiaIvan Magalhaes NEGOTIATION
Munro V SlusarskiArgentinaOnyama Limba QUALIFIED
Maisha A PaprockiIndiaAnna Fali UNQUALIFIED
Ashley O MorascaItalyIoni Bowcher RENEWAL
Rodrigues O MaletIndiaAsiya Javayant PROPOSAL
Costa S OldroydBrazilIvan Magalhaes UNQUALIFIED
Chavez S RoysterRussiaElwin Sharvill PROPOSAL
Jefferson F CaldareraFranceStephen Shaw NEGOTIATION
David M DoeArgentinaAnna Fali NEGOTIATION
Emily L VocelkaArgentinaAmy Elsner NEW
Silvio A GarufiJapanElwin Sharvill PROPOSAL
Clifford C RimItalyAnna Fali QUALIFIED
Nicolas G BologniaItalyBernardo Dominic UNQUALIFIED
Costa F MarrierUnited KingdomBernardo Dominic NEGOTIATION
Johnson N CaldareraJapanAmy Elsner PROPOSAL
Julie Z IturbideGermanyAnna Fali NEGOTIATION
Maria R PoquetteFranceAsiya Javayant PROPOSAL
Julie Z TollnerRussiaElwin Sharvill NEGOTIATION
Smith Y SlusarskiSpainBernardo Dominic RENEWAL
Murillo H FollerIndiaAmy Elsner PROPOSAL
Rodrigues O FigeroaItalyIoni Bowcher QUALIFIED
Kadeem M FerenczSpainIvan Magalhaes RENEWAL
Stacey H DoeJapanBernardo Dominic UNQUALIFIED
Darci N WhobreyJapanIvan Magalhaes NEW
Clifford X CaudyUnited KingdomElwin Sharvill NEW
Salvatore R AlbaresItalyXuxue Feng NEGOTIATION
Adams V GauchoJapanBernardo Dominic PROPOSAL
Jeanfrancois W WieserGermanyStephen Shaw QUALIFIED
Wickens G StensethArgentinaElwin Sharvill PROPOSAL
Morrow R GauchoRussiaElwin Sharvill RENEWAL
Cody M OldroydItalyAnna Fali PROPOSAL
Faith R CaldareraGermanyXuxue Feng PROPOSAL
Kaitlin X CampainIndiaBernardo Dominic NEW
Maisha L StensethUnited KingdomIvan Magalhaes QUALIFIED
Frozen Columns
Name
Jones X Morasca
Murillo C Ostrosky
Chavez Q Doe
Morrow D Waycott
Munro K Paprocki
Morrow W Rulapaugh
Antonio K Caudy
Mayumi N Maclead
Munro Q Briddick
Greenwood T Caudy
Smith F Vocelka
Aruna X Schemmer
Jeanfrancois J Gillian
Salvatore L Garufi
Adams K Poquette
Clifford K Royster
David U Whobrey
Cody S Bolognia
Aditya N Poquette
Nicolas H Rulapaugh
Deepesh N Butt
Chavez Y Paprocki
Julie E Sergi
Jefferson Y Briddick
Claire O Albares
Mayumi G Doe
Claire P Ferencz
Octavia O Briddick
Leon H Tollner
Kaitlin P Whobrey
Kaitlin Q Briddick
Sinclair W Iturbide
Mayumi W Nestle
David M Shinko
Claire W Rulapaugh
Adams T Briddick
Faith G Malet
David W Malet
Silvio V Chui
James G Campain
Leja B Saylors
Juan S Slusarski
Deepesh W Glick
Johnson V Albares
Arvin M Glick
Wickens Y Shinko
Wickens X Wieser
Munro J Glick
Arvin M Bolognia
Leon X Rim
IdCountryDate
1000Russia2024-05-05
1001Brazil2024-04-17
1002Brazil2024-04-22
1003Italy2024-04-20
1004Spain2024-04-22
1005Canada2024-04-29
1006Russia2024-04-21
1007Spain2024-04-23
1008Canada2024-04-08
1009France2024-05-03
1010Brazil2024-05-04
1011Spain2024-04-08
1012Spain2024-05-07
1013United Kingdom2024-04-08
1014France2024-05-04
1015Australia2024-04-10
1016Brazil2024-04-22
1017France2024-05-02
1018Spain2024-05-05
1019India2024-04-13
1020France2024-04-23
1021India2024-04-23
1022Russia2024-05-02
1023Italy2024-05-06
1024Japan2024-04-16
1025Russia2024-04-11
1026India2024-04-20
1027Germany2024-05-04
1028Australia2024-04-18
1029Canada2024-04-16
1030Spain2024-04-22
1031Brazil2024-04-27
1032Spain2024-04-25
1033Germany2024-05-02
1034Germany2024-04-30
1035Italy2024-04-13
1036France2024-04-25
1037France2024-04-12
1038Australia2024-04-12
1039Brazil2024-04-29
1040Japan2024-04-15
1041Spain2024-04-20
1042Canada2024-04-23
1043Japan2024-04-19
1044Japan2024-04-12
1045Brazil2024-04-30
1046Germany2024-04-08
1047United Kingdom2024-04-10
1048Spain2024-04-12
1049Italy2024-04-14

On-Demand Data

NameIdCountryDate
Jefferson D Ostrosky1000United Kingdom2024-04-23
Antonio Q Kolmetz1001United Kingdom2024-04-19
Ricardo Y Ruta1002Japan2024-04-21
Faith M Ferencz1003Japan2024-04-20
Munro P Albares1004Russia2024-05-04
Aika R Chui1005Spain2024-04-28
Smith V Poquette1006Japan2024-04-14
Jones P Poquette1007Argentina2024-04-21
Deepesh J Dilliard1008Italy2024-04-16
Juan J Tollner1009Brazil2024-04-08
Cody L Saylors1010Japan2024-04-10
Jones X Darakjy1011United Kingdom2024-05-02
Leja C Glick1012France2024-04-21
Aruna M Doe1013United Kingdom2024-04-14
Nicolas J Oldroyd1014Japan2024-04-22
Kaitlin R Kusko1015Japan2024-04-12
Maria E Bolognia1016United Kingdom2024-04-17
Nicolas J Slusarski1017Germany2024-04-27
Leon F Caldarera1018Australia2024-05-04
Mujtaba P Kusko1019Canada2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro S WhobreyUnited KingdomAmy Elsner NEGOTIATION
Claire O NickaCanadaAmy Elsner QUALIFIED
Nicolas D WhobreyItalyIvan Magalhaes QUALIFIED
Munro E FollerUnited KingdomAmy Elsner QUALIFIED
Rodrigues H WaycottUnited KingdomAmy Elsner NEW
Aruna O SergiJapanAsiya Javayant PROPOSAL
Julie K FigeroaSpainXuxue Feng PROPOSAL
Jones P AlbaresBrazilAsiya Javayant NEGOTIATION
Antonio G FollerItalyXuxue Feng RENEWAL
Chavez Y WhobreyCanadaAnna Fali PROPOSAL
Leja E NickaBrazilOnyama Limba UNQUALIFIED
Faith V RimSpainElwin Sharvill RENEWAL
Darci A SlusarskiCanadaBernardo Dominic UNQUALIFIED
Ashley V AlbaresSpainIvan Magalhaes QUALIFIED
Mujtaba W SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
Leon X GillianSpainBernardo Dominic RENEWAL
Izzy J RoysterSpainStephen Shaw PROPOSAL
Morrow L CampainAustraliaIvan Magalhaes QUALIFIED
Salvatore W PerinArgentinaOnyama Limba NEGOTIATION
Juan D NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore B AmigonJapanIvan Magalhaes NEGOTIATION
Julie F SlusarskiIndiaStephen Shaw QUALIFIED
Maisha A CaudyJapanOnyama Limba NEW
Juan H GarufiArgentinaStephen Shaw QUALIFIED
Isabel Y VenereUnited KingdomStephen Shaw QUALIFIED
Jennifer Q KolmetzRussiaAmy Elsner QUALIFIED
Juan Q FollerItalyAsiya Javayant PROPOSAL
Leon U StensethIndiaAmy Elsner RENEWAL
Munro H VenereArgentinaXuxue Feng PROPOSAL
Jennifer N MarrierRussiaAsiya Javayant PROPOSAL
Jefferson Q ChuiJapanOnyama Limba NEGOTIATION
Ricardo M PaprockiUnited KingdomOnyama Limba RENEWAL
Arvin B WhobreyGermanyAmy Elsner NEGOTIATION
Aditya S BowleyIndiaIoni Bowcher NEGOTIATION
Wickens N ShinkoJapanAnna Fali QUALIFIED
Deepesh T RulapaughFranceAnna Fali QUALIFIED
Leon M TollnerJapanBernardo Dominic RENEWAL
Octavia K FlosiItalyStephen Shaw QUALIFIED
Kaitlin F GarufiArgentinaBernardo Dominic NEW
Munro F AmigonArgentinaAsiya 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>