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
David M NickaCanadaIoni Bowcher NEW
Kaitlin X RulapaughArgentinaIoni Bowcher UNQUALIFIED
Chavez I CaldareraUnited KingdomOnyama Limba QUALIFIED
Darci J MorascaCanadaIoni Bowcher UNQUALIFIED
Ashley C MorascaFranceOnyama Limba NEGOTIATION
Kadeem E WieserUnited KingdomAnna Fali NEGOTIATION
Jones E TollnerJapanOnyama Limba PROPOSAL
Kaitlin O PoquetteCanadaBernardo Dominic UNQUALIFIED
Mujtaba I SchemmerJapanAnna Fali PROPOSAL
Adams D BowleyBrazilXuxue Feng NEGOTIATION
Chavez B BologniaBrazilElwin Sharvill UNQUALIFIED
Wickens D MarrierAustraliaIoni Bowcher NEW
Jeanfrancois M InouyeCanadaStephen Shaw QUALIFIED
Clifford Q SlusarskiCanadaXuxue Feng RENEWAL
Rodrigues Q DoeIndiaBernardo Dominic NEGOTIATION
Rodrigues C ChuiSpainXuxue Feng UNQUALIFIED
Aditya R StensethJapanAsiya Javayant RENEWAL
Mujtaba C CampainGermanyAmy Elsner RENEWAL
Leon P RulapaughBrazilAnna Fali UNQUALIFIED
Cody K DilliardUnited KingdomElwin Sharvill NEW
Sinclair E RutaItalyAsiya Javayant UNQUALIFIED
Aruna B IturbideArgentinaXuxue Feng NEW
Octavia F MarrierArgentinaXuxue Feng UNQUALIFIED
Silvio M RutaGermanyXuxue Feng QUALIFIED
Octavia Q FerenczFranceIvan Magalhaes RENEWAL
Arvin I SlusarskiFranceOnyama Limba NEW
Antonio E RimCanadaIoni Bowcher UNQUALIFIED
Morrow D MarrierCanadaBernardo Dominic QUALIFIED
Johnson K GlickIndiaBernardo Dominic NEGOTIATION
Kaitlin G ButtSpainAnna Fali QUALIFIED
Aika G GillianUnited KingdomAmy Elsner UNQUALIFIED
Silvio M IturbideRussiaElwin Sharvill PROPOSAL
Antonio Z FerenczUnited KingdomBernardo Dominic RENEWAL
Salvatore J GillianBrazilXuxue Feng NEGOTIATION
Morrow N OldroydArgentinaAmy Elsner UNQUALIFIED
Maisha U OldroydGermanyIvan Magalhaes NEW
Aruna A PaprockiItalyOnyama Limba QUALIFIED
Clifford H RoysterCanadaAsiya Javayant NEW
Darci Z MarrierRussiaStephen Shaw RENEWAL
Mujtaba L KuskoArgentinaElwin Sharvill PROPOSAL
Salvatore Y KuskoSpainStephen Shaw QUALIFIED
Costa S OstroskyGermanyOnyama Limba PROPOSAL
Cody Q BowleySpainAsiya Javayant NEW
Costa L SlusarskiUnited KingdomOnyama Limba NEW
Silvio E MorascaFranceXuxue Feng QUALIFIED
Claire C StensethCanadaOnyama Limba PROPOSAL
Ivar F KuskoGermanyIoni Bowcher UNQUALIFIED
Rodrigues X DarakjyIndiaOnyama Limba NEW
Jefferson U WaycottBrazilIoni Bowcher PROPOSAL
Francesco P AmigonIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin L GauchoGermanyElwin Sharvill RENEWAL
Juan I IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois I FerenczItalyIvan Magalhaes RENEWAL
Jefferson G OldroydItalyXuxue Feng QUALIFIED
Smith E StensethSpainXuxue Feng QUALIFIED
Ashley X KuskoUnited KingdomIoni Bowcher PROPOSAL
Alejandro I OstroskyRussiaStephen Shaw NEGOTIATION
Ivar E RimAustraliaBernardo Dominic UNQUALIFIED
Isabel J CaldareraSpainBernardo Dominic RENEWAL
Mayumi M RutaSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie V InouyeUnited Kingdom2024-04-07Printing Dimensions QUALIFIED58Amy Elsner
1001Kadeem E OstroskyBrazil2024-04-27Truhlar And Truhlar Attys NEW98Amy Elsner
1002David Z MaletCanada2024-04-10Feiner Bros QUALIFIED79Elwin Sharvill
1003Nicolas U CaudyAustralia2024-04-10Dorl, James J Esq NEW6Xuxue Feng
1004Jones A VocelkaArgentina2024-04-17Truhlar And Truhlar Attys NEW55Asiya Javayant
1005Wickens E RimItaly2024-04-14Chemel, James L Cpa PROPOSAL54Xuxue Feng
1006Aruna P PoquetteSpain2024-04-27Buckley Miller Wright QUALIFIED23Onyama Limba
1007Faith I RutaSpain2024-04-23Truhlar And Truhlar Attys NEGOTIATION51Onyama Limba
1008Ivar K FollerFrance2024-03-31Morlong Associates QUALIFIED21Asiya Javayant
1009James E VocelkaAustralia2024-04-22Truhlar And Truhlar Attys RENEWAL98Ivan Magalhaes
1010Jefferson W MaletItaly2024-04-06Morlong Associates PROPOSAL72Ivan Magalhaes
1011Stacey J MacleadSpain2024-04-18Feltz Printing Service NEGOTIATION19Elwin Sharvill
1012Isabel Y VocelkaItaly2024-04-27Chanay, Jeffrey A Esq RENEWAL89Xuxue Feng
1013Julie Y MaletBrazil2024-04-10Buckley Miller Wright PROPOSAL77Elwin Sharvill
1014Chavez D FerenczArgentina2024-04-27Buckley Miller Wright UNQUALIFIED80Xuxue Feng
1015Maisha P RutaArgentina2024-04-25Rousseaux, Michael Esq QUALIFIED28Amy Elsner
1016Maisha S BowleyArgentina2024-04-13King, Christopher A Esq UNQUALIFIED30Bernardo Dominic
1017Deepesh S FollerGermany2024-04-12King, Christopher A Esq QUALIFIED61Stephen Shaw
1018Arvin U SlusarskiItaly2024-04-06Rangoni Of Florence NEGOTIATION11Ivan Magalhaes
1019Jefferson G SaylorsSpain2024-04-13Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1020Rodrigues Z SergiFrance2024-04-14Dorl, James J Esq NEW55Amy Elsner
1021Leja L InouyeIndia2024-04-19Morlong Associates NEGOTIATION30Anna Fali
1022Leon P WhobreyUnited Kingdom2024-03-30Printing Dimensions RENEWAL27Amy Elsner
1023Salvatore C OstroskyJapan2024-04-18Feiner Bros NEGOTIATION64Amy Elsner
1024Jeanfrancois B GauchoSpain2024-04-19Printing Dimensions RENEWAL99Bernardo Dominic
1025Claire S MaletSpain2024-04-21Rangoni Of Florence NEW52Anna Fali
1026Murillo S KuskoBrazil2024-04-10Chanay, Jeffrey A Esq RENEWAL28Stephen Shaw
1027Jones S RimBrazil2024-04-07King, Christopher A Esq QUALIFIED59Ioni Bowcher
1028Jennifer L BriddickBrazil2024-04-03Rousseaux, Michael Esq PROPOSAL22Asiya Javayant
1029Ashley Z StensethAustralia2024-04-07Chemel, James L Cpa UNQUALIFIED5Stephen Shaw
1030Morrow S MacleadFrance2024-04-15Morlong Associates PROPOSAL61Asiya Javayant
1031Tony F MarrierCanada2024-04-09Rousseaux, Michael Esq NEW20Xuxue Feng
1032Smith P FerenczItaly2024-04-12Buckley Miller Wright PROPOSAL63Bernardo Dominic
1033Claire W IturbideItaly2024-04-08Rousseaux, Michael Esq QUALIFIED61Ivan Magalhaes
1034Costa H BowleyGermany2024-04-22Feltz Printing Service RENEWAL64Ioni Bowcher
1035Darci X RutaCanada2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED51Xuxue Feng
1036Rodrigues W MacleadUnited Kingdom2024-04-08Buckley Miller Wright NEGOTIATION5Ioni Bowcher
1037Ashley L FollerCanada2024-04-27Printing Dimensions UNQUALIFIED96Ivan Magalhaes
1038Kadeem A SaylorsUnited Kingdom2024-04-17Morlong Associates UNQUALIFIED53Ioni Bowcher
1039Ricardo F MarrierFrance2024-04-18King, Christopher A Esq QUALIFIED27Elwin Sharvill
1040Ashley O GauchoJapan2024-04-19Rousseaux, Michael Esq RENEWAL57Onyama Limba
1041Kaitlin C SaylorsArgentina2024-04-23Truhlar And Truhlar Attys NEW73Stephen Shaw
1042Adams D GarufiJapan2024-04-18Buckley Miller Wright NEW9Bernardo Dominic
1043Octavia I VocelkaGermany2024-04-06Feltz Printing Service QUALIFIED41Ioni Bowcher
1044Tony X ShinkoAustralia2024-04-28Rangoni Of Florence RENEWAL60Asiya Javayant
1045Leja G GarufiIndia2024-04-28Truhlar And Truhlar Attys NEGOTIATION62Ivan Magalhaes
1046Emily U RimCanada2024-04-04Truhlar And Truhlar Attys QUALIFIED19Amy Elsner
1047Deepesh C OldroydCanada2024-03-30Feltz Printing Service UNQUALIFIED32Elwin Sharvill
1048Darci N SaylorsSpain2024-04-09Feiner Bros RENEWAL66Amy Elsner
1049Claire W OstroskyIndia2024-04-16Chemel, James L Cpa NEGOTIATION1Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja F RimAustraliaAmy Elsner PROPOSAL
Leja A DoeGermanyXuxue Feng QUALIFIED
Tony B StockhamBrazilAsiya Javayant RENEWAL
Kaitlin H TollnerGermanyOnyama Limba RENEWAL
Silvio I KolmetzBrazilAsiya Javayant UNQUALIFIED
Juan T RoysterItalyOnyama Limba RENEWAL
Faith H WhobreyIndiaElwin Sharvill UNQUALIFIED
Ivar M OldroydFranceOnyama Limba UNQUALIFIED
Emily E AmigonAustraliaElwin Sharvill RENEWAL
Mujtaba I KuskoBrazilOnyama Limba RENEWAL
Claire E StensethItalyXuxue Feng UNQUALIFIED
Mujtaba V DoeItalyAmy Elsner NEGOTIATION
Salvatore D MacleadAustraliaIoni Bowcher QUALIFIED
Maria J MaletArgentinaIoni Bowcher NEW
Silvio L GillianIndiaElwin Sharvill NEW
Francesco Z AmigonJapanIoni Bowcher QUALIFIED
Ashley N KolmetzRussiaIvan Magalhaes RENEWAL
Mujtaba T ShinkoArgentinaBernardo Dominic QUALIFIED
Silvio P GauchoGermanyIvan Magalhaes QUALIFIED
Stacey B BowleyJapanAsiya Javayant QUALIFIED
Munro Z TollnerItalyAsiya Javayant NEGOTIATION
Jeanfrancois C PerinRussiaBernardo Dominic UNQUALIFIED
Rodrigues A MaletBrazilIoni Bowcher NEGOTIATION
Izzy S WieserGermanyOnyama Limba UNQUALIFIED
Aika A PoquetteRussiaIoni Bowcher UNQUALIFIED
Rodrigues X GarufiAustraliaAmy Elsner UNQUALIFIED
Johnson F GauchoFranceAsiya Javayant NEGOTIATION
James T TollnerIndiaAmy Elsner NEGOTIATION
Misaki L NickaCanadaAsiya Javayant NEGOTIATION
Izzy S MarrierArgentinaAnna Fali UNQUALIFIED
Emily E GillianIndiaIvan Magalhaes PROPOSAL
Munro B MaletGermanyIvan Magalhaes RENEWAL
Nicolas T GillianCanadaAmy Elsner PROPOSAL
Aruna L WaycottGermanyIoni Bowcher QUALIFIED
Aika X VocelkaFranceElwin Sharvill NEGOTIATION
Jefferson Q MaletAustraliaXuxue Feng QUALIFIED
Darci U PoquetteGermanyIvan Magalhaes RENEWAL
Claire I RutaGermanyAmy Elsner NEGOTIATION
Izzy Z GlickSpainStephen Shaw UNQUALIFIED
Ivar E SergiUnited KingdomXuxue Feng NEW
Ivar D GlickUnited KingdomStephen Shaw PROPOSAL
Maisha W TollnerBrazilElwin Sharvill PROPOSAL
Leon L FollerFranceIoni Bowcher UNQUALIFIED
Jefferson Y StockhamBrazilBernardo Dominic QUALIFIED
Morrow A GillianJapanAmy Elsner RENEWAL
Ashley E SchemmerBrazilOnyama Limba RENEWAL
Alejandro N MacleadSpainAmy Elsner NEGOTIATION
Nicolas W RutaCanadaBernardo Dominic NEW
Cody C SaylorsGermanyStephen Shaw NEGOTIATION
Mayumi Z SlusarskiJapanIvan Magalhaes PROPOSAL
Frozen Columns
Name
Jefferson P Campain
Costa T Rim
Leja U Iturbide
Kadeem Z Kusko
Aika G Rulapaugh
Ashley B Maclead
Stacey A Saylors
Aika X Nestle
Izzy W Darakjy
Aditya Q Marrier
Clifford F Malet
Silvio Z Maclead
Aika X Bowley
Jennifer Q Darakjy
James M Inouye
Johnson E Briddick
Morrow E Morasca
Smith B Nestle
Maisha W Poquette
Kadeem U Ruta
Jennifer B Slusarski
Jefferson X Ferencz
Ashley F Kusko
Stacey C Royster
Nicolas D Rulapaugh
Tony K Morasca
Jones O Gaucho
Jefferson L Gillian
Jeanfrancois C Caudy
Deepesh W Butt
Johnson N Chui
Costa J Gaucho
Costa G Foller
Adams U Tollner
Aditya F Malet
Octavia A Amigon
Maria Y Malet
Murillo N Gillian
Darci D Sergi
James I Shinko
Greenwood I Slusarski
Isabel O Kolmetz
Silvio I Butt
Antonio C Stenseth
Juan K Flosi
Aditya Z Foller
Morrow A Kusko
Johnson O Waycott
Stacey W Malet
Aditya K Perin
IdCountryDate
1000United Kingdom2024-04-13
1001Russia2024-04-17
1002France2024-04-20
1003Australia2024-04-25
1004United Kingdom2024-04-14
1005Italy2024-04-17
1006Russia2024-04-01
1007Spain2024-04-12
1008India2024-04-06
1009Italy2024-04-27
1010Canada2024-04-25
1011France2024-04-26
1012Australia2024-04-05
1013Russia2024-04-08
1014Russia2024-04-05
1015India2024-03-30
1016Germany2024-04-26
1017France2024-04-03
1018India2024-04-03
1019Germany2024-04-18
1020United Kingdom2024-04-08
1021Germany2024-04-26
1022United Kingdom2024-04-02
1023Italy2024-04-24
1024Germany2024-04-27
1025Canada2024-04-11
1026United Kingdom2024-04-25
1027Argentina2024-04-14
1028Brazil2024-04-12
1029Japan2024-04-28
1030Russia2024-04-12
1031Spain2024-04-06
1032Argentina2024-04-21
1033Spain2024-04-26
1034Spain2024-04-18
1035Canada2024-04-08
1036Russia2024-04-11
1037Argentina2024-04-23
1038France2024-04-19
1039Brazil2024-04-20
1040Germany2024-04-07
1041Canada2024-04-17
1042Australia2024-04-19
1043United Kingdom2024-04-03
1044France2024-04-18
1045Japan2024-03-30
1046Canada2024-04-15
1047Argentina2024-04-16
1048Japan2024-04-26
1049Australia2024-04-18

On-Demand Data

NameIdCountryDate
Izzy E Bowley1000Russia2024-04-18
Ivar Y Kolmetz1001Germany2024-04-15
Leon E Oldroyd1002Italy2024-04-20
Morrow N Inouye1003France2024-04-23
Salvatore H Vocelka1004Canada2024-04-02
Kadeem F Stenseth1005United Kingdom2024-04-12
Arvin F Darakjy1006Brazil2024-04-03
Alejandro R Waycott1007Russia2024-04-20
Claire M Maclead1008Brazil2024-04-12
Tony J Caldarera1009Russia2024-03-30
Smith Y Waycott1010Italy2024-04-28
Tony E Tollner1011Italy2024-04-08
Munro A Ruta1012India2024-04-15
Leon F Inouye1013Argentina2024-04-07
Costa U Whobrey1014United Kingdom2024-03-31
Costa D Gillian1015Germany2024-04-07
Leja W Flosi1016Germany2024-04-28
Rodrigues N Ferencz1017Canada2024-04-19
Murillo X Flosi1018India2024-04-05
Faith R Butt1019Japan2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja H PoquetteBrazilAsiya Javayant NEW
Isabel R NickaFranceAnna Fali UNQUALIFIED
Murillo N SaylorsBrazilOnyama Limba PROPOSAL
Jeanfrancois V BriddickFranceAnna Fali RENEWAL
Claire A PoquetteSpainElwin Sharvill QUALIFIED
Izzy A WaycottRussiaIoni Bowcher PROPOSAL
Costa X KuskoItalyOnyama Limba NEGOTIATION
Isabel J GillianBrazilAsiya Javayant QUALIFIED
Cody P IturbideFranceIoni Bowcher NEGOTIATION
Kaitlin P IturbideAustraliaAmy Elsner PROPOSAL
Jones V FollerRussiaIvan Magalhaes UNQUALIFIED
Deepesh D SaylorsArgentinaBernardo Dominic PROPOSAL
Jones Z RulapaughBrazilOnyama Limba PROPOSAL
Murillo I PoquetteSpainOnyama Limba PROPOSAL
Maria I BowleyItalyBernardo Dominic RENEWAL
Darci U DilliardAustraliaIvan Magalhaes PROPOSAL
Leja P BowleyIndiaStephen Shaw UNQUALIFIED
Stacey J BologniaRussiaStephen Shaw NEW
Nicolas M MacleadJapanOnyama Limba PROPOSAL
Faith Z RulapaughUnited KingdomXuxue Feng QUALIFIED
Leon A ChuiCanadaXuxue Feng PROPOSAL
Faith D MaletIndiaBernardo Dominic NEW
Ricardo V MaletUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois I NickaItalyElwin Sharvill NEW
Alejandro L SchemmerItalyElwin Sharvill UNQUALIFIED
Greenwood R TollnerJapanIoni Bowcher NEW
Kadeem W RoysterBrazilXuxue Feng QUALIFIED
Jefferson W ButtUnited KingdomAnna Fali NEGOTIATION
Jones G FollerIndiaStephen Shaw PROPOSAL
Darci E VocelkaIndiaBernardo Dominic QUALIFIED
Alejandro G MorascaFranceXuxue Feng UNQUALIFIED
Juan H OldroydItalyAnna Fali NEGOTIATION
Sinclair E SergiAustraliaOnyama Limba PROPOSAL
Francesco P PaprockiBrazilAnna Fali PROPOSAL
Kaitlin H GauchoUnited KingdomElwin Sharvill QUALIFIED
Francesco J BowleyArgentinaElwin Sharvill NEGOTIATION
Greenwood B AmigonFranceElwin Sharvill NEW
Leon R FollerArgentinaXuxue Feng QUALIFIED
Antonio M DoeGermanyXuxue Feng NEW
Kadeem B VenereRussiaAsiya Javayant 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>