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
Wickens W WhobreyAustraliaBernardo Dominic PROPOSAL
Jennifer K FlosiFranceStephen Shaw NEGOTIATION
Juan H AlbaresBrazilAnna Fali UNQUALIFIED
Greenwood D KolmetzSpainBernardo Dominic NEW
Deepesh B RimUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro H RoysterItalyIoni Bowcher RENEWAL
Morrow H DilliardBrazilBernardo Dominic UNQUALIFIED
Izzy C RutaIndiaOnyama Limba PROPOSAL
Jefferson N BriddickAustraliaAmy Elsner PROPOSAL
Octavia X DilliardArgentinaXuxue Feng NEGOTIATION
Darci T PerinRussiaIoni Bowcher PROPOSAL
Stacey J SaylorsCanadaIvan Magalhaes NEGOTIATION
Aditya J CampainArgentinaIoni Bowcher NEGOTIATION
Jefferson I MacleadIndiaIoni Bowcher RENEWAL
Mujtaba R MaletItalyAsiya Javayant UNQUALIFIED
Jones Y SchemmerUnited KingdomStephen Shaw NEGOTIATION
Clifford C InouyeArgentinaAsiya Javayant PROPOSAL
Costa P FigeroaArgentinaOnyama Limba UNQUALIFIED
Ashley Z RulapaughCanadaBernardo Dominic UNQUALIFIED
Arvin P InouyeAustraliaBernardo Dominic NEW
Morrow V ButtItalyOnyama Limba RENEWAL
Adams U BriddickItalyOnyama Limba NEW
Nicolas Q ShinkoCanadaIvan Magalhaes PROPOSAL
Aditya W GauchoIndiaStephen Shaw PROPOSAL
Faith K PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Sinclair B GillianGermanyAnna Fali QUALIFIED
Greenwood E ChuiCanadaStephen Shaw QUALIFIED
Adams K VocelkaSpainAsiya Javayant RENEWAL
Claire V SlusarskiGermanyBernardo Dominic QUALIFIED
Clifford N DoeGermanyAnna Fali NEGOTIATION
James R InouyeItalyElwin Sharvill NEGOTIATION
Nicolas J AmigonItalyAnna Fali NEW
Jefferson J InouyeArgentinaAmy Elsner UNQUALIFIED
Juan F DarakjyBrazilXuxue Feng QUALIFIED
Aruna B BologniaFranceAmy Elsner RENEWAL
Octavia I AmigonCanadaElwin Sharvill PROPOSAL
Silvio N WieserFranceIoni Bowcher NEGOTIATION
Maisha H SaylorsIndiaBernardo Dominic NEW
Ricardo O SchemmerArgentinaBernardo Dominic PROPOSAL
Izzy T IturbideAustraliaIoni Bowcher NEW
Leon H WieserArgentinaStephen Shaw PROPOSAL
Mujtaba C SlusarskiFranceIvan Magalhaes NEGOTIATION
Leon A ShinkoUnited KingdomXuxue Feng QUALIFIED
James F SergiItalyIvan Magalhaes NEGOTIATION
Cody C MaletGermanyOnyama Limba NEW
Mujtaba V ChuiSpainAsiya Javayant PROPOSAL
Murillo C FerenczGermanyOnyama Limba UNQUALIFIED
Smith V GillianRussiaOnyama Limba RENEWAL
Jefferson N GlickCanadaElwin Sharvill QUALIFIED
Mayumi Z KolmetzGermanyBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin S VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Isabel E BologniaGermanyXuxue Feng NEGOTIATION
Mayumi Z PaprockiJapanElwin Sharvill RENEWAL
Emily K CaldareraCanadaAsiya Javayant UNQUALIFIED
Kaitlin L AmigonBrazilIvan Magalhaes NEW
Leja U CaldareraSpainIoni Bowcher RENEWAL
Rodrigues R PoquetteItalyBernardo Dominic NEGOTIATION
Juan P GlickRussiaStephen Shaw NEW
Jefferson Q AmigonJapanAsiya Javayant NEW
Jones Q CampainUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois W MarrierAustralia2024-04-29Feiner Bros UNQUALIFIED85Anna Fali
1001Aruna Q KuskoSpain2024-04-25Commercial Press RENEWAL58Asiya Javayant
1002Izzy U MacleadGermany2024-04-30Rangoni Of Florence UNQUALIFIED59Ioni Bowcher
1003Cody B IturbideGermany2024-04-16King, Christopher A Esq PROPOSAL97Ivan Magalhaes
1004Jones Y CaldareraUnited Kingdom2024-04-14Rangoni Of Florence UNQUALIFIED44Bernardo Dominic
1005Aika U PoquetteArgentina2024-04-18Truhlar And Truhlar Attys RENEWAL15Ioni Bowcher
1006Rodrigues Q IturbideArgentina2024-04-18Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1007Kaitlin M ChuiArgentina2024-04-21Benton, John B Jr QUALIFIED88Stephen Shaw
1008Adams U SergiAustralia2024-04-11Truhlar And Truhlar Attys PROPOSAL17Ivan Magalhaes
1009Leja H CampainIndia2024-04-29King, Christopher A Esq NEW94Bernardo Dominic
1010Sinclair X ChuiJapan2024-05-02Chanay, Jeffrey A Esq NEW88Ivan Magalhaes
1011Antonio M WieserAustralia2024-04-19Chanay, Jeffrey A Esq NEW54Bernardo Dominic
1012Jones P BologniaFrance2024-04-30Rousseaux, Michael Esq UNQUALIFIED14Stephen Shaw
1013Stacey A ShinkoArgentina2024-04-27King, Christopher A Esq QUALIFIED47Bernardo Dominic
1014Aditya F TollnerJapan2024-04-17Chemel, James L Cpa QUALIFIED6Asiya Javayant
1015Jones J SaylorsSpain2024-04-30King, Christopher A Esq NEW25Amy Elsner
1016Murillo B KolmetzRussia2024-04-27Commercial Press NEGOTIATION17Stephen Shaw
1017Smith A MacleadBrazil2024-05-06Printing Dimensions NEW49Stephen Shaw
1018Jones J RimAustralia2024-04-17Chemel, James L Cpa RENEWAL17Asiya Javayant
1019Costa F MorascaRussia2024-05-02Dorl, James J Esq QUALIFIED22Ivan Magalhaes
1020Chavez C VenereUnited Kingdom2024-05-06King, Christopher A Esq PROPOSAL0Onyama Limba
1021Kaitlin H FollerArgentina2024-04-16Feltz Printing Service QUALIFIED78Ivan Magalhaes
1022Francesco Y CampainJapan2024-04-28Printing Dimensions NEGOTIATION93Ioni Bowcher
1023Julie E GlickArgentina2024-04-27Dorl, James J Esq UNQUALIFIED18Elwin Sharvill
1024Silvio N MorascaJapan2024-04-29Chapman, Ross E Esq RENEWAL61Asiya Javayant
1025Nicolas Z StockhamBrazil2024-05-08Printing Dimensions UNQUALIFIED38Onyama Limba
1026Leon H FigeroaGermany2024-04-28Chemel, James L Cpa RENEWAL92Elwin Sharvill
1027Munro X VenereFrance2024-04-15Rousseaux, Michael Esq PROPOSAL88Amy Elsner
1028Maisha J OldroydCanada2024-04-21Rangoni Of Florence NEW50Ioni Bowcher
1029Ashley R FollerIndia2024-04-15Printing Dimensions NEGOTIATION25Onyama Limba
1030Francesco P GillianIndia2024-05-01Chemel, James L Cpa NEW88Ioni Bowcher
1031Francesco I PerinGermany2024-05-07Feiner Bros UNQUALIFIED61Stephen Shaw
1032Julie K GillianFrance2024-05-05Feltz Printing Service UNQUALIFIED82Asiya Javayant
1033Chavez X WaycottCanada2024-05-03Rousseaux, Michael Esq RENEWAL41Ioni Bowcher
1034Octavia C FollerCanada2024-04-22Morlong Associates UNQUALIFIED16Asiya Javayant
1035Antonio Z RulapaughCanada2024-04-14Printing Dimensions RENEWAL64Stephen Shaw
1036Sinclair I StockhamJapan2024-04-12Chapman, Ross E Esq NEW60Bernardo Dominic
1037David A PerinUnited Kingdom2024-05-07Feltz Printing Service RENEWAL75Bernardo Dominic
1038Julie M FollerCanada2024-04-28Rangoni Of Florence UNQUALIFIED11Elwin Sharvill
1039Jeanfrancois C SergiSpain2024-05-06Chemel, James L Cpa QUALIFIED62Asiya Javayant
1040Faith W CaldareraAustralia2024-04-24Dorl, James J Esq RENEWAL1Elwin Sharvill
1041Chavez S ButtGermany2024-05-06Morlong Associates NEW7Xuxue Feng
1042Juan S CampainUnited Kingdom2024-05-01Chemel, James L Cpa PROPOSAL2Xuxue Feng
1043Stacey S FigeroaFrance2024-04-23Truhlar And Truhlar Attys NEW77Anna Fali
1044Rodrigues S TollnerSpain2024-05-02Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1045Rodrigues O TollnerSpain2024-05-07Rousseaux, Michael Esq PROPOSAL10Ivan Magalhaes
1046Aika L MaletUnited Kingdom2024-05-08Benton, John B Jr RENEWAL81Ivan Magalhaes
1047Aditya W VenereUnited Kingdom2024-04-15Chapman, Ross E Esq QUALIFIED21Xuxue Feng
1048Julie X GillianFrance2024-04-14Rousseaux, Michael Esq NEW72Amy Elsner
1049Johnson O OldroydIndia2024-04-19Rangoni Of Florence RENEWAL0Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Antonio Q PoquetteIndiaBernardo Dominic PROPOSAL
Emily F RutaItalyIoni Bowcher NEGOTIATION
Jeanfrancois M CaudyGermanyStephen Shaw PROPOSAL
Jones M PoquetteIndiaAsiya Javayant NEW
Kadeem V PerinGermanyAmy Elsner PROPOSAL
Izzy A KuskoUnited KingdomAnna Fali QUALIFIED
Leja E NestleArgentinaStephen Shaw NEW
Aditya F VenereItalyAmy Elsner PROPOSAL
Wickens M AmigonJapanStephen Shaw NEW
Costa H FlosiRussiaIoni Bowcher QUALIFIED
Arvin N StockhamItalyStephen Shaw NEW
Jones T VenereUnited KingdomOnyama Limba QUALIFIED
Aruna I WhobreyJapanIoni Bowcher NEGOTIATION
Julie T InouyeBrazilOnyama Limba NEGOTIATION
Maria R RoysterArgentinaXuxue Feng PROPOSAL
Tony L SergiBrazilIoni Bowcher QUALIFIED
Jennifer J VenereIndiaAsiya Javayant PROPOSAL
Sinclair R PoquetteIndiaOnyama Limba PROPOSAL
Jennifer K InouyeIndiaIvan Magalhaes UNQUALIFIED
Juan L MarrierGermanyAnna Fali UNQUALIFIED
Alejandro M BriddickCanadaIvan Magalhaes QUALIFIED
Ivar Q ChuiFranceAnna Fali RENEWAL
Nicolas V StockhamItalyAnna Fali PROPOSAL
Julie H OldroydRussiaOnyama Limba RENEWAL
Darci T FlosiCanadaOnyama Limba NEGOTIATION
Aika Z FlosiUnited KingdomElwin Sharvill NEW
Kaitlin B GauchoItalyStephen Shaw UNQUALIFIED
Izzy U FerenczCanadaXuxue Feng UNQUALIFIED
Arvin J NickaUnited KingdomXuxue Feng NEGOTIATION
Izzy R BriddickFranceAnna Fali UNQUALIFIED
Isabel P MaletUnited KingdomIvan Magalhaes PROPOSAL
Claire L NestleJapanStephen Shaw UNQUALIFIED
Munro X MaletItalyXuxue Feng QUALIFIED
Ricardo C WieserIndiaXuxue Feng RENEWAL
Aika T CaudySpainAsiya Javayant RENEWAL
Jones L NickaBrazilXuxue Feng PROPOSAL
Claire S BowleyCanadaAsiya Javayant NEW
Morrow O WieserJapanAsiya Javayant QUALIFIED
Silvio R AlbaresJapanAnna Fali QUALIFIED
Kadeem C FerenczItalyBernardo Dominic PROPOSAL
Leon G AmigonAustraliaIvan Magalhaes NEGOTIATION
Johnson V StockhamAustraliaIoni Bowcher RENEWAL
Ashley O IturbideRussiaXuxue Feng RENEWAL
Antonio X IturbideGermanyIoni Bowcher UNQUALIFIED
Rodrigues F PoquetteJapanBernardo Dominic QUALIFIED
Jeanfrancois F FlosiIndiaOnyama Limba NEW
Ashley U AmigonCanadaOnyama Limba UNQUALIFIED
Smith O ChuiArgentinaIvan Magalhaes RENEWAL
Cody A AmigonRussiaBernardo Dominic UNQUALIFIED
Murillo R GauchoCanadaStephen Shaw NEW
Frozen Columns
Name
Ivar W Stenseth
Smith C Oldroyd
Kaitlin R Tollner
Jennifer D Ostrosky
Octavia G Marrier
Aika A Ostrosky
Leon S Glick
Leon E Darakjy
Ashley A Caudy
Izzy Q Royster
Rodrigues L Bolognia
Jennifer L Paprocki
Izzy A Briddick
Julie G Wieser
Rodrigues E Kusko
Aditya O Tollner
Tony R Marrier
James C Ferencz
Leja Q Perin
Aika M Inouye
Darci J Schemmer
Clifford P Marrier
Wickens Z Paprocki
Adams K Dilliard
Kaitlin A Gillian
Octavia P Glick
Jefferson D Garufi
Kaitlin M Malet
Cody Q Gaucho
Sinclair H Oldroyd
Greenwood R Campain
Leon T Albares
Ricardo C Wieser
Mujtaba T Malet
Darci C Stenseth
Jeanfrancois T Albares
Jennifer I Ferencz
Juan E Nicka
Ashley M Ruta
Antonio G Caudy
Aditya V Whobrey
David R Briddick
Sinclair T Albares
Jones A Tollner
Arvin S Bowley
Cody V Flosi
Juan J Morasca
Nicolas L Briddick
Morrow N Ostrosky
Maisha K Inouye
IdCountryDate
1000Australia2024-05-09
1001Germany2024-05-03
1002United Kingdom2024-04-16
1003Italy2024-04-28
1004Russia2024-05-08
1005Japan2024-04-26
1006Italy2024-05-08
1007Argentina2024-04-27
1008Canada2024-04-15
1009France2024-04-19
1010Spain2024-05-02
1011Canada2024-04-29
1012Germany2024-04-25
1013Argentina2024-04-24
1014Italy2024-04-11
1015France2024-05-05
1016United Kingdom2024-04-28
1017India2024-05-09
1018Italy2024-04-14
1019Canada2024-04-14
1020France2024-04-25
1021Australia2024-04-28
1022Italy2024-05-02
1023United Kingdom2024-04-13
1024India2024-04-30
1025Italy2024-05-02
1026Spain2024-05-02
1027Brazil2024-04-27
1028Russia2024-04-19
1029India2024-04-26
1030Argentina2024-05-01
1031Russia2024-04-14
1032Canada2024-05-10
1033Japan2024-04-15
1034Japan2024-05-08
1035Australia2024-04-15
1036Japan2024-04-14
1037India2024-04-14
1038Germany2024-05-02
1039France2024-05-06
1040Japan2024-04-26
1041Japan2024-05-01
1042Argentina2024-04-20
1043Brazil2024-04-17
1044Argentina2024-04-30
1045France2024-04-29
1046Germany2024-04-18
1047Japan2024-04-11
1048United Kingdom2024-04-11
1049Australia2024-04-29

On-Demand Data

NameIdCountryDate
Emily K Kolmetz1000Germany2024-05-09
Francesco Q Nicka1001Argentina2024-04-25
Alejandro X Caudy1002Spain2024-04-27
Aruna N Morasca1003Brazil2024-04-23
Izzy L Stockham1004Argentina2024-05-06
Mujtaba R Shinko1005France2024-04-12
Maria Z Shinko1006Brazil2024-04-17
Jones M Saylors1007Japan2024-05-08
Chavez S Schemmer1008Italy2024-05-02
Emily R Ferencz1009India2024-05-09
Alejandro R Morasca1010France2024-04-19
Jefferson P Ruta1011Argentina2024-04-11
Isabel Y Campain1012Australia2024-04-12
Octavia N Malet1013Argentina2024-04-28
Misaki H Wieser1014Spain2024-04-15
Maria D Gaucho1015Brazil2024-05-10
Silvio V Saylors1016Spain2024-05-02
Greenwood V Saylors1017Spain2024-05-09
Antonio P Kusko1018Canada2024-05-05
Arvin T Caudy1019Italy2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna D TollnerBrazilStephen Shaw RENEWAL
Ashley E CampainAustraliaOnyama Limba RENEWAL
Munro F ButtGermanyAmy Elsner PROPOSAL
Darci W VocelkaUnited KingdomBernardo Dominic NEW
Greenwood Z SchemmerFranceXuxue Feng QUALIFIED
Stacey F KolmetzAustraliaXuxue Feng NEGOTIATION
Ivar H RutaItalyBernardo Dominic NEGOTIATION
Jeanfrancois I SlusarskiAustraliaAnna Fali QUALIFIED
Leja D BologniaFranceBernardo Dominic RENEWAL
Julie J SaylorsIndiaAsiya Javayant NEW
Arvin D OldroydCanadaAsiya Javayant RENEWAL
Emily C MorascaUnited KingdomBernardo Dominic NEW
Aika L OldroydIndiaIvan Magalhaes QUALIFIED
Isabel E DilliardCanadaOnyama Limba QUALIFIED
Sinclair L OldroydUnited KingdomStephen Shaw RENEWAL
Faith K NestleBrazilIvan Magalhaes RENEWAL
Mayumi M SchemmerBrazilIvan Magalhaes PROPOSAL
Claire B KolmetzSpainXuxue Feng RENEWAL
Arvin P WieserCanadaAmy Elsner NEGOTIATION
Salvatore W WhobreyIndiaElwin Sharvill NEW
James A DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore V NickaSpainBernardo Dominic PROPOSAL
Leja Z KuskoArgentinaAsiya Javayant NEW
Ricardo X IturbideGermanyStephen Shaw UNQUALIFIED
Sinclair D FlosiIndiaAmy Elsner RENEWAL
Adams O KolmetzFranceAsiya Javayant RENEWAL
Silvio Z PerinAustraliaIvan Magalhaes QUALIFIED
Stacey S MorascaFranceBernardo Dominic NEW
Jones P StockhamFranceIoni Bowcher RENEWAL
Jennifer A AlbaresAustraliaIoni Bowcher NEGOTIATION
Costa C PoquetteSpainIvan Magalhaes QUALIFIED
Alejandro S FerenczJapanIoni Bowcher NEGOTIATION
Ashley Y GlickItalyStephen Shaw NEW
Antonio P FlosiFranceElwin Sharvill NEGOTIATION
Claire Z FerenczAustraliaIoni Bowcher RENEWAL
Misaki X WaycottSpainIoni Bowcher RENEWAL
Ricardo U DarakjyRussiaXuxue Feng NEW
Maria C RimJapanXuxue Feng RENEWAL
Silvio Y PoquetteCanadaIvan Magalhaes NEGOTIATION
Claire C MacleadJapanStephen Shaw 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>