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
Jones H FerenczItalyStephen Shaw NEGOTIATION
Deepesh H MaletRussiaOnyama Limba PROPOSAL
Ricardo V RulapaughFranceXuxue Feng NEGOTIATION
David D PaprockiIndiaIoni Bowcher RENEWAL
Deepesh U SaylorsIndiaStephen Shaw UNQUALIFIED
Claire L BowleyCanadaStephen Shaw NEW
Ivar S DarakjyItalyOnyama Limba PROPOSAL
Claire Q MarrierJapanIvan Magalhaes NEGOTIATION
Julie A GlickFranceXuxue Feng NEW
Murillo V MaletArgentinaStephen Shaw UNQUALIFIED
Ricardo G StockhamIndiaAnna Fali NEGOTIATION
Kadeem B ShinkoItalyElwin Sharvill RENEWAL
Claire O FollerFranceOnyama Limba UNQUALIFIED
Rodrigues U TollnerIndiaAnna Fali UNQUALIFIED
Aika R StockhamJapanAnna Fali RENEWAL
Costa L GillianFranceStephen Shaw QUALIFIED
Darci Z CaldareraIndiaAnna Fali NEW
Aruna Y TollnerUnited KingdomAnna Fali NEGOTIATION
Octavia H BriddickBrazilIoni Bowcher NEGOTIATION
Aika Z MorascaBrazilBernardo Dominic RENEWAL
Silvio E RoysterArgentinaIvan Magalhaes NEW
Ashley U TollnerArgentinaStephen Shaw RENEWAL
Aruna H SlusarskiUnited KingdomXuxue Feng QUALIFIED
Alejandro A CaudyJapanXuxue Feng NEGOTIATION
Silvio C FollerBrazilAmy Elsner NEW
Costa M MaletArgentinaIvan Magalhaes RENEWAL
Tony M FollerItalyOnyama Limba PROPOSAL
Morrow G VenereArgentinaStephen Shaw QUALIFIED
Misaki O StockhamJapanAmy Elsner QUALIFIED
Murillo C GauchoAustraliaStephen Shaw RENEWAL
Isabel U MacleadItalyBernardo Dominic PROPOSAL
Adams Q CampainGermanyAsiya Javayant UNQUALIFIED
Stacey M MacleadJapanBernardo Dominic NEGOTIATION
Alejandro E VenereFranceIoni Bowcher RENEWAL
Ivar J AlbaresGermanyAnna Fali RENEWAL
Francesco B GillianGermanyElwin Sharvill NEGOTIATION
Greenwood Z RoysterBrazilAsiya Javayant QUALIFIED
James Q ShinkoFranceIoni Bowcher NEGOTIATION
Silvio Q StockhamArgentinaIoni Bowcher UNQUALIFIED
Wickens O VocelkaArgentinaBernardo Dominic RENEWAL
Mujtaba H SergiSpainAnna Fali NEGOTIATION
Smith P WaycottGermanyIvan Magalhaes RENEWAL
Chavez Q AlbaresAustraliaElwin Sharvill UNQUALIFIED
Jones D GarufiAustraliaElwin Sharvill QUALIFIED
Adams K ButtIndiaBernardo Dominic QUALIFIED
Murillo J OldroydFranceBernardo Dominic NEGOTIATION
Misaki S VocelkaIndiaAmy Elsner RENEWAL
Alejandro I MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer Q SchemmerFranceAsiya Javayant UNQUALIFIED
Aika C FerenczIndiaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy S OldroydSpainAmy Elsner NEGOTIATION
Aruna M DilliardUnited KingdomAmy Elsner PROPOSAL
Julie Q KolmetzRussiaIoni Bowcher RENEWAL
Rodrigues C NestleItalyStephen Shaw UNQUALIFIED
Alejandro A DarakjySpainAnna Fali NEW
Aruna O SaylorsBrazilAnna Fali RENEWAL
Stacey M StensethCanadaIvan Magalhaes PROPOSAL
Munro J ButtFranceXuxue Feng PROPOSAL
Costa E DilliardUnited KingdomStephen Shaw RENEWAL
Johnson C ChuiCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin K GarufiArgentina2024-04-09Morlong Associates NEW95Elwin Sharvill
1001Cody E CaudyIndia2024-04-20Feiner Bros PROPOSAL40Anna Fali
1002Costa X DoeBrazil2024-04-03Chapman, Ross E Esq NEGOTIATION90Ivan Magalhaes
1003Deepesh Z PerinItaly2024-04-25Morlong Associates QUALIFIED43Onyama Limba
1004Jennifer L RoysterArgentina2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED24Stephen Shaw
1005Ricardo A ButtSpain2024-04-05Dorl, James J Esq NEW24Stephen Shaw
1006Deepesh G RimRussia2024-04-28Rousseaux, Michael Esq QUALIFIED6Onyama Limba
1007Salvatore E MaletArgentina2024-04-27Truhlar And Truhlar Attys NEGOTIATION18Ivan Magalhaes
1008Munro T KolmetzUnited Kingdom2024-04-27Dorl, James J Esq PROPOSAL61Ivan Magalhaes
1009Isabel Z PoquetteCanada2024-04-22Buckley Miller Wright QUALIFIED9Bernardo Dominic
1010Morrow J KuskoCanada2024-04-25Buckley Miller Wright QUALIFIED72Ivan Magalhaes
1011Chavez S KuskoAustralia2024-04-06Truhlar And Truhlar Attys UNQUALIFIED95Stephen Shaw
1012Jefferson Q StockhamItaly2024-04-20Truhlar And Truhlar Attys RENEWAL19Anna Fali
1013Leon E FlosiRussia2024-04-06Rousseaux, Michael Esq RENEWAL75Bernardo Dominic
1014Octavia A RulapaughBrazil2024-04-05Chemel, James L Cpa RENEWAL8Stephen Shaw
1015Nicolas W SaylorsAustralia2024-04-24Feiner Bros RENEWAL54Onyama Limba
1016Leon Y MorascaAustralia2024-04-13Chanay, Jeffrey A Esq NEGOTIATION92Anna Fali
1017Arvin I WaycottUnited Kingdom2024-04-08Morlong Associates QUALIFIED61Asiya Javayant
1018Kaitlin Z ShinkoSpain2024-04-09Rangoni Of Florence NEW52Amy Elsner
1019Rodrigues H IturbideFrance2024-04-27Rousseaux, Michael Esq NEGOTIATION97Xuxue Feng
1020Smith E MacleadRussia2024-04-06Feiner Bros UNQUALIFIED57Asiya Javayant
1021Murillo T WhobreyItaly2024-04-02Truhlar And Truhlar Attys PROPOSAL88Onyama Limba
1022Juan K FerenczGermany2024-04-07Feltz Printing Service QUALIFIED45Elwin Sharvill
1023Jennifer Y RoysterRussia2024-04-15Feltz Printing Service QUALIFIED12Amy Elsner
1024Leja B GillianIndia2024-04-07Truhlar And Truhlar Attys UNQUALIFIED6Ioni Bowcher
1025Jeanfrancois Y GlickFrance2024-04-21Dorl, James J Esq QUALIFIED21Onyama Limba
1026Wickens G FlosiSpain2024-04-21Chapman, Ross E Esq RENEWAL37Asiya Javayant
1027Silvio E WhobreyRussia2024-04-16Dorl, James J Esq NEW30Elwin Sharvill
1028Jefferson V MacleadRussia2024-04-12Feltz Printing Service PROPOSAL78Ivan Magalhaes
1029Julie P StensethIndia2024-04-19Dorl, James J Esq UNQUALIFIED55Bernardo Dominic
1030Chavez V WaycottItaly2024-04-26Morlong Associates QUALIFIED52Bernardo Dominic
1031James X IturbideFrance2024-04-07Chanay, Jeffrey A Esq PROPOSAL24Bernardo Dominic
1032Stacey X PerinSpain2024-04-09Benton, John B Jr UNQUALIFIED84Xuxue Feng
1033Deepesh D MaletJapan2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED6Ivan Magalhaes
1034Salvatore F AmigonArgentina2024-04-22Morlong Associates RENEWAL94Onyama Limba
1035Clifford O DilliardIndia2024-04-12Benton, John B Jr QUALIFIED91Xuxue Feng
1036Jones M CaldareraJapan2024-04-28Commercial Press NEW50Anna Fali
1037Maisha K GarufiFrance2024-04-17Chanay, Jeffrey A Esq NEGOTIATION36Stephen Shaw
1038Jones T AlbaresAustralia2024-04-10Feltz Printing Service UNQUALIFIED61Ivan Magalhaes
1039James S VocelkaGermany2024-04-19Morlong Associates NEW96Anna Fali
1040David W SlusarskiJapan2024-04-15Chapman, Ross E Esq NEGOTIATION88Ivan Magalhaes
1041Adams T CampainFrance2024-04-04Feltz Printing Service QUALIFIED53Asiya Javayant
1042Octavia Q WhobreyUnited Kingdom2024-04-10Buckley Miller Wright RENEWAL40Elwin Sharvill
1043Smith L SergiItaly2024-04-16King, Christopher A Esq NEGOTIATION33Ivan Magalhaes
1044Jeanfrancois K PaprockiAustralia2024-04-16Benton, John B Jr PROPOSAL83Xuxue Feng
1045Kadeem A GillianFrance2024-04-10Chapman, Ross E Esq PROPOSAL75Xuxue Feng
1046Misaki C WieserArgentina2024-04-15Benton, John B Jr NEW50Ioni Bowcher
1047Wickens N DoeArgentina2024-04-22Chapman, Ross E Esq PROPOSAL92Bernardo Dominic
1048Jeanfrancois C DarakjyItaly2024-04-12Chapman, Ross E Esq UNQUALIFIED47Stephen Shaw
1049Francesco Q GauchoArgentina2024-04-22Morlong Associates RENEWAL51Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Wickens P SlusarskiFranceIoni Bowcher UNQUALIFIED
Jefferson J NickaAustraliaXuxue Feng QUALIFIED
Ivar I MaletCanadaAnna Fali NEW
David P KuskoArgentinaStephen Shaw RENEWAL
Misaki L OldroydRussiaAsiya Javayant NEW
Salvatore Y NickaAustraliaBernardo Dominic NEGOTIATION
Claire L TollnerSpainAnna Fali UNQUALIFIED
Ricardo C GauchoAustraliaIvan Magalhaes PROPOSAL
Ivar F DoeCanadaAsiya Javayant NEW
Smith V CaldareraGermanyXuxue Feng QUALIFIED
Darci S PerinUnited KingdomElwin Sharvill NEW
Johnson C MaletBrazilAmy Elsner PROPOSAL
James T SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Leon O SlusarskiJapanAnna Fali NEGOTIATION
Arvin F KolmetzItalyAmy Elsner RENEWAL
Leon G SlusarskiSpainStephen Shaw NEW
Salvatore T SchemmerIndiaAsiya Javayant RENEWAL
Kaitlin T OldroydCanadaAmy Elsner NEGOTIATION
Antonio D MorascaItalyAnna Fali PROPOSAL
Leja E RimGermanyAsiya Javayant NEW
Kaitlin P RulapaughSpainAsiya Javayant RENEWAL
Jeanfrancois B VenereSpainAnna Fali RENEWAL
Leon O AlbaresArgentinaStephen Shaw UNQUALIFIED
Kadeem X ButtCanadaOnyama Limba QUALIFIED
Ashley Z AlbaresJapanIoni Bowcher NEGOTIATION
Wickens S ShinkoRussiaAnna Fali UNQUALIFIED
Costa K SlusarskiBrazilStephen Shaw NEW
Salvatore C RoysterSpainAnna Fali NEGOTIATION
Kadeem S WieserItalyAmy Elsner NEGOTIATION
Sinclair J SergiFranceStephen Shaw NEW
Francesco C SaylorsSpainXuxue Feng RENEWAL
Maisha E MaletArgentinaOnyama Limba QUALIFIED
David S AmigonRussiaAnna Fali UNQUALIFIED
Ricardo M PoquetteRussiaBernardo Dominic PROPOSAL
Cody B BowleyItalyIoni Bowcher RENEWAL
Ricardo W PerinIndiaAsiya Javayant PROPOSAL
Jeanfrancois Y AlbaresIndiaAsiya Javayant NEW
Maria W WhobreyCanadaBernardo Dominic QUALIFIED
Izzy O PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Wickens J PerinFranceElwin Sharvill NEW
Jones K VocelkaIndiaOnyama Limba NEGOTIATION
Faith N InouyeUnited KingdomAnna Fali NEGOTIATION
Johnson D ButtCanadaXuxue Feng PROPOSAL
Octavia V FerenczBrazilStephen Shaw NEGOTIATION
Nicolas K WieserJapanStephen Shaw UNQUALIFIED
Jones M KolmetzSpainAmy Elsner UNQUALIFIED
Claire Q GauchoBrazilIvan Magalhaes UNQUALIFIED
Cody I PaprockiFranceXuxue Feng QUALIFIED
Jennifer H AmigonAustraliaBernardo Dominic UNQUALIFIED
Emily A MaletItalyStephen Shaw QUALIFIED
Frozen Columns
Name
Nicolas G Stockham
Octavia S Royster
Juan J Caudy
Aika E Tollner
Leja H Marrier
Alejandro V Vocelka
Clifford P Garufi
Faith T Chui
Ashley X Iturbide
Chavez M Ruta
Isabel M Paprocki
Salvatore O Butt
Isabel P Ostrosky
Cody O Sergi
Greenwood K Briddick
Octavia I Garufi
Costa Q Dilliard
Morrow G Maclead
Mayumi L Campain
Munro F Kusko
Munro H Waycott
Tony J Caudy
Tony I Malet
Ivar V Perin
Adams F Schemmer
Munro R Ferencz
Kaitlin G Waycott
Kadeem E Campain
Julie X Rulapaugh
Claire F Kusko
Leja F Whobrey
Jennifer T Amigon
Silvio L Perin
Chavez G Saylors
Darci B Sergi
Adams D Schemmer
Deepesh B Doe
Kadeem F Chui
Murillo I Oldroyd
Maisha C Nicka
James B Caldarera
Ivar O Foller
Antonio X Poquette
Deepesh E Ferencz
Murillo B Inouye
Jefferson E Saylors
Francesco N Rim
Murillo F Whobrey
Aditya K Figeroa
Aditya N Ruta
IdCountryDate
1000United Kingdom2024-04-11
1001France2024-04-21
1002Spain2024-04-29
1003Italy2024-04-13
1004Italy2024-04-25
1005Brazil2024-04-05
1006Australia2024-04-05
1007France2024-04-19
1008Japan2024-04-01
1009Spain2024-04-08
1010Spain2024-04-30
1011Brazil2024-04-19
1012Canada2024-04-18
1013Germany2024-04-02
1014Canada2024-04-12
1015Italy2024-04-08
1016Brazil2024-04-30
1017Australia2024-04-16
1018Italy2024-04-28
1019United Kingdom2024-04-18
1020India2024-04-23
1021Germany2024-04-12
1022Brazil2024-04-15
1023United Kingdom2024-04-10
1024India2024-04-22
1025India2024-04-25
1026United Kingdom2024-04-10
1027France2024-04-03
1028France2024-04-15
1029Germany2024-04-20
1030Italy2024-04-06
1031Italy2024-04-25
1032Germany2024-04-22
1033France2024-04-01
1034United Kingdom2024-04-09
1035Australia2024-04-16
1036Italy2024-04-29
1037Canada2024-04-24
1038India2024-04-27
1039Australia2024-04-17
1040Japan2024-04-20
1041Brazil2024-04-20
1042Argentina2024-04-27
1043Italy2024-04-13
1044Australia2024-04-15
1045Australia2024-04-22
1046France2024-04-17
1047France2024-04-14
1048France2024-04-22
1049France2024-04-24

On-Demand Data

NameIdCountryDate
Stacey V Malet1000Canada2024-04-05
Izzy I Gillian1001Russia2024-04-13
Costa K Chui1002Italy2024-04-12
Mayumi A Saylors1003United Kingdom2024-04-29
Ivar C Stenseth1004Argentina2024-04-30
Adams R Morasca1005India2024-04-30
Costa Z Garufi1006Spain2024-04-26
Silvio A Nicka1007Japan2024-04-27
Kaitlin B Albares1008Japan2024-04-16
Cody Q Rulapaugh1009United Kingdom2024-04-28
Ashley J Doe1010Spain2024-04-27
Kaitlin A Whobrey1011Italy2024-04-26
Claire U Ostrosky1012Germany2024-04-29
Murillo O Stockham1013Brazil2024-04-04
Aruna E Gaucho1014India2024-04-11
Tony R Oldroyd1015Japan2024-04-07
Leja F Malet1016France2024-04-14
Munro F Doe1017United Kingdom2024-04-06
Izzy L Flosi1018Spain2024-04-24
Mujtaba Y Iturbide1019Australia2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody K BowleyBrazilStephen Shaw UNQUALIFIED
Leja H PoquetteFranceElwin Sharvill QUALIFIED
Sinclair D SlusarskiBrazilOnyama Limba PROPOSAL
Aruna U InouyeSpainIoni Bowcher PROPOSAL
Juan C DarakjyBrazilElwin Sharvill RENEWAL
Leon X StockhamUnited KingdomAsiya Javayant PROPOSAL
Emily Y KolmetzRussiaIoni Bowcher UNQUALIFIED
Kaitlin Z DilliardArgentinaStephen Shaw UNQUALIFIED
Arvin V ShinkoAustraliaIoni Bowcher PROPOSAL
Stacey O VenereBrazilAmy Elsner PROPOSAL
Mujtaba W SaylorsJapanStephen Shaw NEGOTIATION
Murillo F KuskoJapanAnna Fali RENEWAL
Sinclair T PaprockiItalyXuxue Feng NEW
Murillo M FollerCanadaIoni Bowcher NEW
Johnson G GauchoIndiaBernardo Dominic PROPOSAL
Johnson Q WaycottRussiaBernardo Dominic QUALIFIED
Aditya R KolmetzBrazilXuxue Feng NEW
Tony S OldroydJapanOnyama Limba NEGOTIATION
Murillo J AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Jefferson I NickaGermanyAmy Elsner NEW
Julie V BologniaGermanyAsiya Javayant NEW
James T ChuiUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood T StockhamGermanyElwin Sharvill NEGOTIATION
Julie J RutaArgentinaIvan Magalhaes NEGOTIATION
Julie R GauchoUnited KingdomAsiya Javayant NEW
Jennifer A DilliardFranceAnna Fali PROPOSAL
Aruna S FollerCanadaIoni Bowcher NEGOTIATION
Izzy P FollerGermanyStephen Shaw RENEWAL
Aruna Z KuskoSpainIvan Magalhaes NEW
Claire A PerinArgentinaAnna Fali NEGOTIATION
Smith B VenereRussiaOnyama Limba RENEWAL
Mujtaba P WieserCanadaAsiya Javayant NEW
Aika U StockhamAustraliaElwin Sharvill UNQUALIFIED
Maria Y GlickAustraliaStephen Shaw NEGOTIATION
David X RutaIndiaIvan Magalhaes NEW
Aruna V KolmetzAustraliaStephen Shaw NEGOTIATION
Aruna Y MacleadRussiaBernardo Dominic UNQUALIFIED
Nicolas V VocelkaBrazilBernardo Dominic QUALIFIED
Jones S NickaCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois F GlickItalyAnna Fali NEGOTIATION

<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>