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
Sinclair K OstroskyCanadaOnyama Limba NEW
Antonio Z StockhamFranceXuxue Feng QUALIFIED
Ricardo Z PaprockiGermanyAsiya Javayant PROPOSAL
Alejandro Y RimCanadaStephen Shaw QUALIFIED
Misaki K CampainFranceIoni Bowcher PROPOSAL
James G PoquetteArgentinaAmy Elsner QUALIFIED
Greenwood H SaylorsBrazilAmy Elsner PROPOSAL
Leja M PerinBrazilElwin Sharvill NEGOTIATION
Maria K OldroydItalyIoni Bowcher QUALIFIED
Jeanfrancois P WaycottJapanXuxue Feng NEW
Ivar C FerenczGermanyXuxue Feng UNQUALIFIED
Murillo U MacleadArgentinaOnyama Limba NEGOTIATION
Kadeem F MorascaRussiaStephen Shaw QUALIFIED
Ashley H FollerCanadaOnyama Limba NEGOTIATION
Stacey J ChuiUnited KingdomAsiya Javayant NEW
Smith N StockhamItalyAmy Elsner NEGOTIATION
Octavia S MarrierCanadaElwin Sharvill UNQUALIFIED
Adams V BowleyIndiaOnyama Limba NEGOTIATION
Ashley H RimIndiaAsiya Javayant NEW
Maisha W SchemmerRussiaAsiya Javayant QUALIFIED
Jones X FigeroaUnited KingdomAmy Elsner NEGOTIATION
Misaki M IturbideUnited KingdomAnna Fali RENEWAL
Deepesh C PoquetteJapanStephen Shaw RENEWAL
Salvatore R DoeRussiaXuxue Feng PROPOSAL
Smith C RimGermanyIoni Bowcher RENEWAL
Wickens R SergiIndiaOnyama Limba QUALIFIED
Jones C RulapaughItalyAnna Fali QUALIFIED
Munro N FerenczArgentinaOnyama Limba RENEWAL
Munro R MacleadItalyAsiya Javayant RENEWAL
Rodrigues K PerinItalyOnyama Limba QUALIFIED
Julie B PerinAustraliaStephen Shaw QUALIFIED
Deepesh J DarakjyIndiaStephen Shaw UNQUALIFIED
Mujtaba P MacleadGermanyIvan Magalhaes PROPOSAL
Sinclair Z OldroydFranceIvan Magalhaes RENEWAL
Aika Q FollerFranceOnyama Limba NEGOTIATION
Antonio I BriddickFranceIoni Bowcher NEW
Deepesh T FollerIndiaOnyama Limba PROPOSAL
Nicolas P IturbideArgentinaAnna Fali UNQUALIFIED
Rodrigues U PoquetteGermanyAnna Fali PROPOSAL
Alejandro W WaycottRussiaElwin Sharvill NEGOTIATION
Murillo F MaletArgentinaAsiya Javayant RENEWAL
Rodrigues M MorascaSpainIoni Bowcher UNQUALIFIED
Darci Z VenereArgentinaBernardo Dominic UNQUALIFIED
Darci A AmigonRussiaElwin Sharvill RENEWAL
Ivar O DarakjyGermanyAmy Elsner UNQUALIFIED
Sinclair D OstroskyArgentinaStephen Shaw RENEWAL
Emily E KolmetzBrazilAnna Fali PROPOSAL
Julie H GarufiIndiaAnna Fali PROPOSAL
Jennifer F MarrierUnited KingdomIoni Bowcher UNQUALIFIED
Clifford X KuskoBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair U SchemmerSpainAnna Fali RENEWAL
Mayumi J DarakjySpainStephen Shaw QUALIFIED
Claire C MacleadRussiaIvan Magalhaes QUALIFIED
Chavez B MaletItalyStephen Shaw QUALIFIED
Sinclair Z MaletFranceElwin Sharvill PROPOSAL
Tony Q RulapaughRussiaBernardo Dominic RENEWAL
Mujtaba U AlbaresSpainStephen Shaw NEGOTIATION
Mujtaba G SaylorsUnited KingdomOnyama Limba PROPOSAL
Clifford C CaldareraIndiaAnna Fali QUALIFIED
Aruna F MacleadBrazilXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi V GlickFrance2024-04-18Dorl, James J Esq PROPOSAL79Bernardo Dominic
1001Francesco D StockhamGermany2024-03-31Buckley Miller Wright NEGOTIATION73Amy Elsner
1002Ricardo Y KuskoFrance2024-04-07Buckley Miller Wright UNQUALIFIED12Asiya Javayant
1003Stacey O MaletSpain2024-04-27Buckley Miller Wright QUALIFIED21Elwin Sharvill
1004Adams M FlosiIndia2024-04-12Chemel, James L Cpa QUALIFIED3Ivan Magalhaes
1005Tony E StensethArgentina2024-04-20Feltz Printing Service NEGOTIATION99Bernardo Dominic
1006Ashley V StensethGermany2024-04-23Chanay, Jeffrey A Esq NEW51Stephen Shaw
1007Alejandro W MarrierItaly2024-04-26Benton, John B Jr RENEWAL19Asiya Javayant
1008Tony L StockhamItaly2024-04-20Truhlar And Truhlar Attys PROPOSAL2Anna Fali
1009Wickens Y AmigonJapan2024-04-26Commercial Press QUALIFIED51Asiya Javayant
1010Juan Z BriddickFrance2024-04-25Feltz Printing Service NEGOTIATION52Onyama Limba
1011Cody N VocelkaUnited Kingdom2024-04-11Rousseaux, Michael Esq NEGOTIATION79Stephen Shaw
1012Chavez J CaudySpain2024-04-08Chapman, Ross E Esq PROPOSAL44Ioni Bowcher
1013Salvatore Z RulapaughFrance2024-04-20Benton, John B Jr PROPOSAL30Asiya Javayant
1014Alejandro Q RimArgentina2024-04-24Commercial Press QUALIFIED31Anna Fali
1015Antonio E OldroydBrazil2024-04-09Chanay, Jeffrey A Esq NEW23Ivan Magalhaes
1016Aika Q KolmetzGermany2024-04-17Feltz Printing Service RENEWAL97Stephen Shaw
1017Emily U MarrierFrance2024-04-14Truhlar And Truhlar Attys RENEWAL13Onyama Limba
1018Isabel H BowleyBrazil2024-04-19King, Christopher A Esq QUALIFIED91Xuxue Feng
1019Adams Z DilliardRussia2024-04-03King, Christopher A Esq QUALIFIED81Stephen Shaw
1020Leon T MacleadUnited Kingdom2024-04-22Printing Dimensions UNQUALIFIED38Stephen Shaw
1021Aditya R RimRussia2024-04-17Printing Dimensions NEW51Xuxue Feng
1022Francesco D MorascaGermany2024-04-22Truhlar And Truhlar Attys RENEWAL78Ioni Bowcher
1023Munro R VenereRussia2024-04-18Rousseaux, Michael Esq PROPOSAL49Onyama Limba
1024Darci W ChuiSpain2024-04-07Chapman, Ross E Esq PROPOSAL74Anna Fali
1025Emily F GlickJapan2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED56Ioni Bowcher
1026Wickens C FollerUnited Kingdom2024-04-13Chapman, Ross E Esq RENEWAL14Ivan Magalhaes
1027Chavez O AmigonGermany2024-04-08Dorl, James J Esq NEW98Onyama Limba
1028Emily T NestleRussia2024-04-22Commercial Press RENEWAL87Bernardo Dominic
1029Faith E VenereCanada2024-04-22Morlong Associates PROPOSAL46Xuxue Feng
1030Octavia W CampainAustralia2024-04-08Buckley Miller Wright RENEWAL93Ivan Magalhaes
1031Arvin Q MarrierArgentina2024-04-25Chemel, James L Cpa RENEWAL4Xuxue Feng
1032Sinclair H ShinkoSpain2024-04-02Buckley Miller Wright PROPOSAL84Onyama Limba
1033Kadeem H BologniaRussia2024-04-10King, Christopher A Esq NEW71Elwin Sharvill
1034Munro P OstroskyRussia2024-04-04Feltz Printing Service NEW26Ivan Magalhaes
1035Arvin P ShinkoJapan2024-04-27Chemel, James L Cpa PROPOSAL53Asiya Javayant
1036Aika E OstroskyUnited Kingdom2024-04-26Feiner Bros RENEWAL91Ioni Bowcher
1037Aruna H WhobreySpain2024-04-22Printing Dimensions UNQUALIFIED8Ivan Magalhaes
1038Ivar U MarrierAustralia2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED14Ivan Magalhaes
1039Aditya P AmigonArgentina2024-04-11Truhlar And Truhlar Attys QUALIFIED42Ioni Bowcher
1040Maria V RoysterArgentina2024-04-25Chanay, Jeffrey A Esq QUALIFIED29Amy Elsner
1041Salvatore L PaprockiRussia2024-04-08Chapman, Ross E Esq QUALIFIED24Stephen Shaw
1042Francesco C OstroskyIndia2024-04-17King, Christopher A Esq UNQUALIFIED65Asiya Javayant
1043Mayumi E FerenczFrance2024-03-29Feltz Printing Service UNQUALIFIED99Ioni Bowcher
1044Aruna L FerenczCanada2024-04-25Feltz Printing Service PROPOSAL11Xuxue Feng
1045Jeanfrancois F VocelkaIndia2024-04-03Chanay, Jeffrey A Esq PROPOSAL45Ivan Magalhaes
1046Kaitlin C KolmetzAustralia2024-04-19Rangoni Of Florence NEGOTIATION11Onyama Limba
1047David U DoeGermany2024-04-07Dorl, James J Esq QUALIFIED36Xuxue Feng
1048Smith C WieserIndia2024-04-21Rousseaux, Michael Esq QUALIFIED28Stephen Shaw
1049Ivar D GauchoBrazil2024-04-01Feiner Bros PROPOSAL68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Francesco C MorascaIndiaIvan Magalhaes PROPOSAL
Mayumi C BowleyUnited KingdomIoni Bowcher QUALIFIED
Arvin D StockhamGermanyElwin Sharvill NEW
Jefferson P DoeIndiaStephen Shaw PROPOSAL
Misaki W OldroydGermanyAsiya Javayant QUALIFIED
Smith S GlickCanadaAsiya Javayant RENEWAL
Aditya B StockhamBrazilAmy Elsner NEGOTIATION
Francesco P SaylorsJapanAnna Fali NEGOTIATION
Silvio N PoquetteCanadaElwin Sharvill PROPOSAL
Claire G SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Greenwood X GauchoJapanAnna Fali NEW
Adams V GarufiBrazilAmy Elsner RENEWAL
Tony K CaldareraItalyAmy Elsner NEW
Greenwood H CaldareraBrazilXuxue Feng UNQUALIFIED
Aika Z GillianJapanBernardo Dominic UNQUALIFIED
Juan K MacleadArgentinaOnyama Limba UNQUALIFIED
Munro J MorascaFranceAnna Fali NEGOTIATION
Emily J MacleadSpainOnyama Limba NEW
Ricardo A RimIndiaElwin Sharvill RENEWAL
Alejandro O SlusarskiFranceAmy Elsner NEW
Munro D KuskoSpainAnna Fali NEGOTIATION
Munro M OstroskyRussiaAmy Elsner UNQUALIFIED
Isabel G BowleyBrazilXuxue Feng RENEWAL
Morrow X DoeJapanOnyama Limba NEGOTIATION
Jones A DoeAustraliaIoni Bowcher NEW
Leon T MorascaItalyXuxue Feng NEGOTIATION
Isabel L BowleyRussiaAmy Elsner NEW
Aruna T RimUnited KingdomIoni Bowcher NEW
Murillo I CaldareraBrazilBernardo Dominic PROPOSAL
Julie R GlickFranceStephen Shaw NEGOTIATION
Arvin T WieserFranceBernardo Dominic PROPOSAL
Ashley E BowleyCanadaIoni Bowcher RENEWAL
Izzy H CaldareraGermanyBernardo Dominic PROPOSAL
Salvatore M AlbaresAustraliaStephen Shaw RENEWAL
Silvio E MaletGermanyOnyama Limba NEGOTIATION
Julie E DoeBrazilAsiya Javayant QUALIFIED
Aruna J FerenczCanadaAnna Fali UNQUALIFIED
Antonio P SaylorsRussiaXuxue Feng PROPOSAL
Aruna H RutaIndiaStephen Shaw UNQUALIFIED
Silvio M OstroskyAustraliaIvan Magalhaes NEW
James B BologniaBrazilStephen Shaw PROPOSAL
Ivar V CaldareraFranceBernardo Dominic RENEWAL
Ivar Z ShinkoIndiaOnyama Limba NEGOTIATION
Kaitlin T MarrierCanadaOnyama Limba UNQUALIFIED
Aruna J GlickJapanXuxue Feng NEGOTIATION
Izzy Z MaletUnited KingdomStephen Shaw UNQUALIFIED
Antonio E DilliardIndiaAsiya Javayant NEW
Julie L PaprockiSpainOnyama Limba NEGOTIATION
Murillo P PerinCanadaAsiya Javayant PROPOSAL
Arvin M KuskoUnited KingdomXuxue Feng UNQUALIFIED
Frozen Columns
Name
James S Malet
Rodrigues T Caldarera
Costa O Nicka
Mujtaba O Stockham
Maisha P Nicka
Misaki K Gillian
David X Kusko
Clifford D Nicka
Jones Z Nicka
Greenwood G Bolognia
Aika T Malet
Darci B Garufi
Deepesh K Albares
Ivar K Poquette
Jones A Kusko
Silvio X Malet
Maisha N Ruta
Claire S Campain
Costa W Waycott
Johnson R Marrier
James P Caldarera
Aditya X Figeroa
Aditya S Foller
Morrow E Gillian
Stacey Y Oldroyd
Silvio J Bolognia
Claire Z Slusarski
Octavia V Tollner
Smith I Caudy
Murillo Q Malet
Isabel Y Glick
Francesco G Malet
Alejandro X Iturbide
Misaki Z Saylors
Clifford H Chui
Mayumi J Inouye
Costa U Caldarera
David Q Bowley
Leon A Doe
Sinclair O Whobrey
Antonio B Flosi
Mayumi L Figeroa
Deepesh G Saylors
Deepesh E Butt
Kadeem N Waycott
Octavia S Rulapaugh
Deepesh O Stockham
Leon O Amigon
Jennifer N Sergi
Nicolas L Oldroyd
IdCountryDate
1000France2024-04-04
1001Japan2024-04-08
1002France2024-04-22
1003India2024-04-15
1004Italy2024-04-12
1005Argentina2024-04-03
1006Australia2024-04-14
1007Brazil2024-04-08
1008France2024-04-22
1009Brazil2024-03-31
1010Spain2024-04-12
1011France2024-04-13
1012Spain2024-04-25
1013Spain2024-04-16
1014United Kingdom2024-04-24
1015Germany2024-04-05
1016India2024-04-03
1017Spain2024-04-02
1018Spain2024-04-02
1019Italy2024-04-09
1020United Kingdom2024-04-05
1021Brazil2024-04-23
1022Canada2024-04-06
1023Italy2024-03-30
1024United Kingdom2024-04-24
1025Australia2024-04-05
1026Japan2024-04-10
1027Canada2024-04-12
1028Spain2024-04-02
1029Brazil2024-04-04
1030Australia2024-04-04
1031Italy2024-04-16
1032Russia2024-04-21
1033Spain2024-04-14
1034Australia2024-04-20
1035United Kingdom2024-04-10
1036Russia2024-04-10
1037United Kingdom2024-04-17
1038Argentina2024-04-20
1039United Kingdom2024-04-13
1040Argentina2024-04-21
1041Argentina2024-04-14
1042United Kingdom2024-04-25
1043United Kingdom2024-04-24
1044India2024-04-25
1045Russia2024-04-21
1046Canada2024-04-15
1047Spain2024-04-26
1048Italy2024-03-29
1049Argentina2024-03-29

On-Demand Data

NameIdCountryDate
Mayumi X Caudy1000Argentina2024-04-20
Misaki S Garufi1001Brazil2024-04-18
Maria C Caudy1002Brazil2024-03-31
Faith H Shinko1003India2024-04-15
James E Vocelka1004United Kingdom2024-04-19
Mujtaba A Stockham1005Canada2024-04-02
Aika B Briddick1006France2024-04-10
David K Rim1007Brazil2024-04-22
Deepesh I Albares1008Canada2024-04-12
Alejandro D Tollner1009United Kingdom2024-04-19
Isabel G Doe1010France2024-04-22
Stacey N Poquette1011United Kingdom2024-04-13
Izzy J Garufi1012Brazil2024-04-14
Smith D Tollner1013Argentina2024-04-16
Izzy T Darakjy1014India2024-04-12
Ricardo B Poquette1015Japan2024-04-10
David L Wieser1016Germany2024-04-27
Costa U Oldroyd1017Russia2024-04-03
Emily R Wieser1018Brazil2024-04-27
Clifford D Ruta1019Japan2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro X CampainArgentinaAmy Elsner PROPOSAL
Misaki Y BologniaGermanyAsiya Javayant QUALIFIED
Alejandro T CampainUnited KingdomAsiya Javayant UNQUALIFIED
Julie B AlbaresRussiaBernardo Dominic PROPOSAL
Isabel X CaldareraBrazilAnna Fali UNQUALIFIED
Julie U MorascaArgentinaElwin Sharvill QUALIFIED
Jeanfrancois V FerenczFranceXuxue Feng PROPOSAL
Faith J NickaSpainBernardo Dominic RENEWAL
Johnson X OstroskyUnited KingdomStephen Shaw NEGOTIATION
Adams R CaudyRussiaXuxue Feng NEW
Silvio R GarufiFranceOnyama Limba UNQUALIFIED
Leon W MarrierBrazilXuxue Feng NEW
Tony X RimCanadaAmy Elsner QUALIFIED
Silvio O KolmetzRussiaElwin Sharvill NEGOTIATION
Alejandro G GarufiAustraliaIoni Bowcher NEW
Octavia I ButtArgentinaOnyama Limba NEW
Greenwood I IturbideUnited KingdomStephen Shaw QUALIFIED
Silvio L MarrierCanadaAnna Fali UNQUALIFIED
Darci R ChuiArgentinaIoni Bowcher PROPOSAL
Antonio T ShinkoUnited KingdomStephen Shaw NEW
Jeanfrancois Q DilliardSpainBernardo Dominic NEW
Leja C FerenczIndiaXuxue Feng QUALIFIED
Murillo B MacleadAustraliaAsiya Javayant QUALIFIED
Francesco G ButtCanadaStephen Shaw QUALIFIED
Stacey N CaldareraIndiaElwin Sharvill PROPOSAL
Juan K GarufiItalyIvan Magalhaes QUALIFIED
Morrow R GlickAustraliaAsiya Javayant QUALIFIED
Clifford O FigeroaRussiaXuxue Feng PROPOSAL
Mujtaba Q NestleIndiaBernardo Dominic NEW
Faith C AmigonBrazilAmy Elsner UNQUALIFIED
Arvin S DilliardGermanyAsiya Javayant NEW
Jefferson I FerenczJapanAmy Elsner PROPOSAL
Aditya V FlosiFranceElwin Sharvill RENEWAL
Salvatore L StensethUnited KingdomOnyama Limba UNQUALIFIED
Leon Z PoquetteItalyAmy Elsner NEW
Julie G WaycottBrazilBernardo Dominic UNQUALIFIED
Arvin K AlbaresBrazilOnyama Limba PROPOSAL
Ivar E SaylorsBrazilAnna Fali RENEWAL
Maisha A NickaArgentinaAnna Fali RENEWAL
Darci E SchemmerAustraliaXuxue Feng QUALIFIED

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