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
Emily M FigeroaUnited KingdomStephen Shaw RENEWAL
Smith L MacleadUnited KingdomIvan Magalhaes PROPOSAL
Deepesh T VocelkaFranceXuxue Feng UNQUALIFIED
Tony J AlbaresJapanAnna Fali NEGOTIATION
Adams P DilliardSpainXuxue Feng NEGOTIATION
Leon M StensethJapanXuxue Feng NEGOTIATION
Leon X RimArgentinaBernardo Dominic NEGOTIATION
Ricardo N ShinkoRussiaIoni Bowcher RENEWAL
Cody N WieserItalyXuxue Feng NEW
Jennifer C SergiCanadaOnyama Limba NEGOTIATION
Faith N ButtJapanAnna Fali UNQUALIFIED
Leja V VocelkaSpainOnyama Limba PROPOSAL
Francesco M RimCanadaAmy Elsner QUALIFIED
Francesco L SlusarskiJapanIvan Magalhaes NEW
Smith L SchemmerAustraliaElwin Sharvill QUALIFIED
Aruna F TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Isabel T MaletUnited KingdomIoni Bowcher NEGOTIATION
Aika B CaudyFranceIvan Magalhaes UNQUALIFIED
Greenwood L FerenczFranceElwin Sharvill PROPOSAL
Jeanfrancois V BriddickRussiaOnyama Limba NEGOTIATION
Mayumi P PaprockiAustraliaStephen Shaw PROPOSAL
Munro X MorascaArgentinaBernardo Dominic QUALIFIED
Jennifer M DoeGermanyAsiya Javayant UNQUALIFIED
James Q VocelkaJapanAsiya Javayant NEGOTIATION
Aruna D GauchoItalyStephen Shaw PROPOSAL
Faith X PerinUnited KingdomIvan Magalhaes QUALIFIED
Darci V RimAustraliaElwin Sharvill RENEWAL
Claire Q BowleyArgentinaAsiya Javayant PROPOSAL
Alejandro S BowleyUnited KingdomAnna Fali UNQUALIFIED
Kadeem X TollnerGermanyIoni Bowcher PROPOSAL
Darci I BriddickSpainIoni Bowcher NEW
Greenwood C RoysterSpainAmy Elsner RENEWAL
Mayumi U BologniaItalyElwin Sharvill NEW
Salvatore V SaylorsFranceXuxue Feng PROPOSAL
Tony A PoquetteFranceStephen Shaw RENEWAL
David R PerinCanadaXuxue Feng QUALIFIED
Nicolas H SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Leja O FerenczFranceOnyama Limba NEW
Kadeem J SaylorsBrazilAsiya Javayant UNQUALIFIED
Sinclair E ButtAustraliaIvan Magalhaes QUALIFIED
Nicolas A MorascaBrazilAsiya Javayant NEGOTIATION
Faith N RulapaughIndiaAsiya Javayant NEGOTIATION
Mayumi T NickaArgentinaAsiya Javayant RENEWAL
Aruna F VenereUnited KingdomOnyama Limba NEW
James H KolmetzCanadaXuxue Feng NEGOTIATION
Julie K SlusarskiFranceIoni Bowcher RENEWAL
Maria H InouyeUnited KingdomIvan Magalhaes QUALIFIED
Misaki Z WaycottAustraliaIoni Bowcher PROPOSAL
Francesco Z BriddickArgentinaAsiya Javayant QUALIFIED
Ricardo M PoquetteBrazilOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh U WaycottUnited KingdomAsiya Javayant RENEWAL
Murillo Q FlosiBrazilIoni Bowcher QUALIFIED
Alejandro Z PaprockiJapanAmy Elsner NEGOTIATION
Faith F AlbaresGermanyAmy Elsner RENEWAL
Greenwood S RimSpainAsiya Javayant RENEWAL
Wickens Z RoysterUnited KingdomOnyama Limba NEGOTIATION
Isabel O WaycottItalyAnna Fali QUALIFIED
Antonio C OldroydSpainAsiya Javayant NEW
Jefferson E MacleadSpainIvan Magalhaes UNQUALIFIED
Munro Y KolmetzJapanBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco O TollnerRussia2024-04-07Buckley Miller Wright PROPOSAL31Onyama Limba
1001Salvatore F RulapaughArgentina2024-04-04Chanay, Jeffrey A Esq QUALIFIED85Bernardo Dominic
1002Kadeem J GillianAustralia2024-04-22Feltz Printing Service NEGOTIATION66Anna Fali
1003Costa C SlusarskiAustralia2024-04-20King, Christopher A Esq QUALIFIED69Onyama Limba
1004Clifford X FigeroaSpain2024-04-07Truhlar And Truhlar Attys QUALIFIED48Elwin Sharvill
1005Claire E RimBrazil2024-04-07Commercial Press NEGOTIATION85Anna Fali
1006Aruna A VenereArgentina2024-04-20Commercial Press PROPOSAL80Xuxue Feng
1007Misaki Z StockhamSpain2024-04-02Chemel, James L Cpa RENEWAL73Elwin Sharvill
1008Isabel X BologniaFrance2024-04-11Feltz Printing Service NEW88Amy Elsner
1009Adams H BologniaSpain2024-04-08Chapman, Ross E Esq NEGOTIATION92Amy Elsner
1010Juan Z PoquetteIndia2024-04-18Morlong Associates QUALIFIED68Xuxue Feng
1011Jones R RutaCanada2024-04-16Chapman, Ross E Esq NEGOTIATION6Onyama Limba
1012Silvio Y AlbaresJapan2024-04-05King, Christopher A Esq UNQUALIFIED99Amy Elsner
1013Jones Z OldroydItaly2024-04-05Feltz Printing Service NEW81Asiya Javayant
1014Ivar N PoquetteJapan2024-04-06Rousseaux, Michael Esq QUALIFIED75Bernardo Dominic
1015Isabel K DilliardCanada2024-04-10Feltz Printing Service RENEWAL35Anna Fali
1016Cody M BriddickUnited Kingdom2024-04-04Rangoni Of Florence NEGOTIATION66Anna Fali
1017Aditya L PerinCanada2024-04-17King, Christopher A Esq NEW72Onyama Limba
1018Ashley E CaudySpain2024-03-31Rousseaux, Michael Esq NEGOTIATION10Xuxue Feng
1019Leon J StensethIndia2024-03-29Rangoni Of Florence PROPOSAL27Elwin Sharvill
1020Chavez M SchemmerAustralia2024-04-11Feiner Bros QUALIFIED18Bernardo Dominic
1021Misaki R SchemmerArgentina2024-04-17Chapman, Ross E Esq NEGOTIATION88Ioni Bowcher
1022Chavez E FollerGermany2024-03-29Chemel, James L Cpa UNQUALIFIED45Ioni Bowcher
1023Alejandro J OstroskyFrance2024-04-11Feltz Printing Service UNQUALIFIED59Anna Fali
1024Sinclair K FollerRussia2024-04-26Feltz Printing Service PROPOSAL83Amy Elsner
1025Sinclair S MacleadCanada2024-04-18Chapman, Ross E Esq NEGOTIATION26Ivan Magalhaes
1026Faith O CaudyGermany2024-04-16Chemel, James L Cpa UNQUALIFIED36Asiya Javayant
1027Tony S WaycottFrance2024-04-09Chanay, Jeffrey A Esq NEGOTIATION91Asiya Javayant
1028Murillo Q GauchoUnited Kingdom2024-04-15Morlong Associates QUALIFIED22Onyama Limba
1029Alejandro G AlbaresRussia2024-03-28Chapman, Ross E Esq QUALIFIED35Onyama Limba
1030David B SergiAustralia2024-04-18Truhlar And Truhlar Attys PROPOSAL26Xuxue Feng
1031Maria J BriddickRussia2024-04-11Feltz Printing Service NEGOTIATION98Amy Elsner
1032Arvin R ShinkoAustralia2024-03-28Rangoni Of Florence RENEWAL94Onyama Limba
1033Aika U BriddickUnited Kingdom2024-04-26Chanay, Jeffrey A Esq PROPOSAL59Onyama Limba
1034Chavez O ButtJapan2024-04-24Buckley Miller Wright NEGOTIATION77Asiya Javayant
1035Nicolas X NestleSpain2024-04-20Rousseaux, Michael Esq QUALIFIED27Xuxue Feng
1036Jones W BologniaFrance2024-04-08Morlong Associates UNQUALIFIED87Stephen Shaw
1037Mayumi C CaldareraUnited Kingdom2024-04-24Rousseaux, Michael Esq QUALIFIED95Onyama Limba
1038Aditya M MarrierUnited Kingdom2024-04-15Chanay, Jeffrey A Esq QUALIFIED10Stephen Shaw
1039Juan C GlickFrance2024-04-13Morlong Associates NEW5Anna Fali
1040Morrow L ShinkoCanada2024-04-05Truhlar And Truhlar Attys NEGOTIATION4Stephen Shaw
1041David Z GauchoAustralia2024-04-07Feltz Printing Service NEGOTIATION49Bernardo Dominic
1042Darci D NestleRussia2024-04-09Feiner Bros NEGOTIATION12Bernardo Dominic
1043Mayumi G RutaSpain2024-03-28Feltz Printing Service RENEWAL42Ivan Magalhaes
1044Kaitlin T RoysterRussia2024-04-16King, Christopher A Esq QUALIFIED10Xuxue Feng
1045Murillo I ButtGermany2024-04-07Dorl, James J Esq PROPOSAL87Asiya Javayant
1046Murillo R OstroskyRussia2024-04-01Commercial Press RENEWAL44Asiya Javayant
1047Ashley O PerinGermany2024-04-24Commercial Press NEW78Asiya Javayant
1048Julie U SergiBrazil2024-04-02King, Christopher A Esq NEW16Onyama Limba
1049Izzy E SchemmerGermany2024-04-23Morlong Associates PROPOSAL99Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Antonio X PoquetteBrazilIvan Magalhaes UNQUALIFIED
Julie G FigeroaFranceAsiya Javayant RENEWAL
Sinclair P ShinkoGermanyOnyama Limba PROPOSAL
Leja H SaylorsCanadaXuxue Feng PROPOSAL
Rodrigues Y WieserSpainXuxue Feng NEGOTIATION
Munro T NestleIndiaAmy Elsner RENEWAL
Alejandro U AlbaresArgentinaOnyama Limba RENEWAL
Izzy V BologniaArgentinaStephen Shaw UNQUALIFIED
Deepesh Y KolmetzJapanElwin Sharvill NEGOTIATION
Rodrigues G DarakjyCanadaStephen Shaw RENEWAL
Misaki W RutaBrazilElwin Sharvill UNQUALIFIED
Clifford S ShinkoBrazilIoni Bowcher PROPOSAL
Deepesh G DarakjyAustraliaBernardo Dominic RENEWAL
Octavia P FerenczAustraliaXuxue Feng PROPOSAL
Maisha F MaletGermanyIoni Bowcher NEGOTIATION
Tony V VenereCanadaIvan Magalhaes QUALIFIED
Chavez J FollerAustraliaAsiya Javayant NEGOTIATION
Faith U OstroskyRussiaAsiya Javayant RENEWAL
Octavia I WhobreySpainStephen Shaw PROPOSAL
Jennifer B DoeJapanAnna Fali UNQUALIFIED
Leja Z PoquetteAustraliaAmy Elsner PROPOSAL
Izzy P NestleItalyStephen Shaw RENEWAL
Cody O RimRussiaStephen Shaw NEGOTIATION
Aditya F CaudyBrazilStephen Shaw QUALIFIED
Costa A IturbideGermanyIvan Magalhaes PROPOSAL
Julie J SchemmerJapanElwin Sharvill NEGOTIATION
Costa P ShinkoSpainAsiya Javayant PROPOSAL
Mayumi I MaletJapanAsiya Javayant NEW
Munro H ShinkoSpainElwin Sharvill PROPOSAL
Julie X OstroskyIndiaOnyama Limba UNQUALIFIED
Ashley F RutaSpainIoni Bowcher RENEWAL
Jeanfrancois O SchemmerFranceBernardo Dominic PROPOSAL
Juan Z MaletItalyIoni Bowcher NEW
Johnson T AlbaresArgentinaAsiya Javayant QUALIFIED
Juan O TollnerRussiaXuxue Feng UNQUALIFIED
Leja I BriddickFranceElwin Sharvill NEW
Emily I CaudyUnited KingdomAnna Fali PROPOSAL
Deepesh J BriddickItalyXuxue Feng NEGOTIATION
Arvin N GauchoCanadaAmy Elsner NEW
Deepesh U KuskoJapanAmy Elsner RENEWAL
Aika P FlosiAustraliaStephen Shaw NEW
Mujtaba V WaycottFranceIoni Bowcher NEGOTIATION
Kadeem R InouyeItalyBernardo Dominic QUALIFIED
Aika L RimCanadaOnyama Limba UNQUALIFIED
Wickens Z DoeArgentinaXuxue Feng PROPOSAL
Leon M SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Chavez C WieserCanadaAnna Fali RENEWAL
Jefferson K InouyeItalyIoni Bowcher QUALIFIED
Emily T WhobreyFranceAmy Elsner UNQUALIFIED
Morrow K FerenczRussiaAnna Fali QUALIFIED
Frozen Columns
Name
Costa S Rim
Chavez L Venere
Maisha H Kusko
Jefferson Y Briddick
Mujtaba S Flosi
Tony I Ruta
Kaitlin L Caudy
Sinclair S Waycott
Julie E Glick
Johnson L Darakjy
Adams S Caldarera
Isabel D Ruta
Murillo U Ostrosky
Kaitlin C Perin
Smith B Ferencz
Greenwood F Caldarera
Mayumi K Chui
Smith E Glick
Cody O Chui
Smith Q Oldroyd
Sinclair V Poquette
Emily P Ostrosky
Deepesh Y Bolognia
Juan S Malet
Francesco K Schemmer
Jennifer D Oldroyd
Cody G Figeroa
Ashley K Paprocki
Maria H Ferencz
Izzy A Flosi
Leja D Gaucho
James T Darakjy
Octavia K Stenseth
Jefferson G Briddick
Jones T Gaucho
Kaitlin D Gaucho
Cody D Marrier
Julie M Inouye
Adams W Stenseth
Antonio T Slusarski
Leja G Tollner
Aruna O Paprocki
Jennifer V Briddick
Ashley N Dilliard
Izzy Q Venere
Kadeem L Slusarski
Aika X Stenseth
Faith J Ruta
Ricardo Z Tollner
Salvatore O Darakjy
IdCountryDate
1000India2024-04-12
1001India2024-04-06
1002Germany2024-04-08
1003Russia2024-04-10
1004Germany2024-04-06
1005Germany2024-04-10
1006Brazil2024-04-13
1007Brazil2024-04-10
1008Argentina2024-04-24
1009United Kingdom2024-04-20
1010Argentina2024-04-13
1011Italy2024-03-31
1012Brazil2024-04-13
1013Germany2024-03-29
1014India2024-04-03
1015Italy2024-04-07
1016Germany2024-04-25
1017Argentina2024-04-01
1018Brazil2024-04-02
1019Brazil2024-04-25
1020Argentina2024-04-24
1021Russia2024-04-22
1022France2024-04-11
1023Russia2024-04-02
1024Brazil2024-04-08
1025Japan2024-04-08
1026India2024-04-19
1027Australia2024-03-29
1028Canada2024-04-01
1029Italy2024-04-02
1030India2024-04-20
1031Canada2024-04-22
1032Japan2024-04-17
1033Japan2024-04-09
1034Germany2024-04-10
1035Brazil2024-04-14
1036France2024-04-05
1037Italy2024-04-26
1038Russia2024-04-08
1039Germany2024-04-02
1040Russia2024-04-06
1041Argentina2024-04-21
1042Japan2024-04-22
1043Australia2024-04-08
1044Germany2024-04-13
1045Spain2024-04-19
1046United Kingdom2024-04-23
1047Argentina2024-04-06
1048France2024-04-18
1049United Kingdom2024-04-16

On-Demand Data

NameIdCountryDate
Leja W Whobrey1000Australia2024-04-11
Munro Q Kusko1001Argentina2024-04-13
Izzy P Figeroa1002United Kingdom2024-04-06
Aika G Figeroa1003Canada2024-04-15
Alejandro B Paprocki1004Russia2024-04-04
Greenwood C Perin1005Germany2024-04-25
Sinclair X Ruta1006Italy2024-04-05
Costa F Vocelka1007Japan2024-04-03
Jennifer V Saylors1008Japan2024-04-10
Munro S Foller1009Italy2024-04-22
Munro C Poquette1010Japan2024-04-01
Maria D Figeroa1011Germany2024-04-09
Francesco S Shinko1012Japan2024-04-18
Isabel E Gaucho1013United Kingdom2024-03-28
Antonio T Malet1014India2024-04-24
Clifford I Shinko1015Canada2024-04-22
Deepesh C Nestle1016Argentina2024-04-21
Aruna A Rulapaugh1017India2024-03-31
Jefferson W Ruta1018Argentina2024-04-13
James L Briddick1019United Kingdom2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya L GillianItalyAnna Fali NEW
Smith J MaletJapanAmy Elsner RENEWAL
Izzy C DilliardCanadaAnna Fali PROPOSAL
Rodrigues H BowleyRussiaAmy Elsner QUALIFIED
Mujtaba B MorascaGermanyStephen Shaw NEW
Silvio F KuskoItalyXuxue Feng NEGOTIATION
Ivar M RutaRussiaAnna Fali RENEWAL
Antonio K ChuiRussiaIvan Magalhaes UNQUALIFIED
Stacey L KuskoUnited KingdomIvan Magalhaes PROPOSAL
Ricardo U BowleySpainStephen Shaw RENEWAL
Octavia C AlbaresRussiaIvan Magalhaes QUALIFIED
Maria S MaletFranceOnyama Limba UNQUALIFIED
Morrow D DarakjyBrazilBernardo Dominic NEGOTIATION
Faith S CaudyCanadaAsiya Javayant NEW
Mujtaba P GarufiAustraliaXuxue Feng RENEWAL
Leon I KolmetzFranceStephen Shaw RENEWAL
James Q GarufiArgentinaOnyama Limba NEGOTIATION
Isabel S FlosiItalyStephen Shaw NEGOTIATION
Aika Q SchemmerArgentinaXuxue Feng QUALIFIED
Aruna D RimIndiaElwin Sharvill NEW
Stacey S ButtUnited KingdomStephen Shaw RENEWAL
Nicolas X PoquetteRussiaOnyama Limba NEW
Chavez D BriddickAustraliaElwin Sharvill NEGOTIATION
Jennifer H OldroydArgentinaXuxue Feng QUALIFIED
Greenwood G PoquetteItalyStephen Shaw PROPOSAL
Wickens Q CaldareraFranceIvan Magalhaes PROPOSAL
Emily H KolmetzItalyIvan Magalhaes NEW
Mujtaba C SergiGermanyAmy Elsner UNQUALIFIED
Sinclair A PaprockiUnited KingdomStephen Shaw QUALIFIED
Leon B RutaBrazilBernardo Dominic NEGOTIATION
Maria Q OstroskyBrazilAmy Elsner QUALIFIED
Jeanfrancois T FerenczCanadaAsiya Javayant NEGOTIATION
Jefferson J GillianCanadaStephen Shaw UNQUALIFIED
Julie A KuskoItalyBernardo Dominic QUALIFIED
Chavez R VocelkaUnited KingdomIvan Magalhaes RENEWAL
Stacey J WhobreyRussiaBernardo Dominic PROPOSAL
Kadeem E ButtFranceIoni Bowcher RENEWAL
Aruna X RulapaughSpainElwin Sharvill NEW
Sinclair R FigeroaItalyXuxue Feng NEGOTIATION
Arvin X IturbideUnited KingdomElwin Sharvill RENEWAL

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