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
Aruna M FerenczCanadaBernardo Dominic RENEWAL
Alejandro L CampainCanadaIvan Magalhaes NEW
Aika N FollerSpainXuxue Feng RENEWAL
Salvatore Y PerinSpainAsiya Javayant UNQUALIFIED
Ricardo N FigeroaIndiaBernardo Dominic PROPOSAL
Faith I OldroydFranceStephen Shaw PROPOSAL
Stacey L ShinkoItalyBernardo Dominic RENEWAL
Morrow E BowleyIndiaIoni Bowcher NEGOTIATION
Rodrigues Q TollnerItalyIvan Magalhaes RENEWAL
Izzy H MorascaArgentinaIoni Bowcher RENEWAL
Claire T GauchoUnited KingdomAmy Elsner PROPOSAL
Misaki C ButtSpainIvan Magalhaes NEGOTIATION
Wickens R StensethCanadaIoni Bowcher UNQUALIFIED
Juan C RimJapanBernardo Dominic NEW
Octavia T RulapaughAustraliaOnyama Limba NEGOTIATION
Leon X RoysterFranceAnna Fali NEGOTIATION
Chavez W CaldareraJapanBernardo Dominic NEW
Silvio N FlosiIndiaIoni Bowcher PROPOSAL
Izzy Y MacleadArgentinaBernardo Dominic UNQUALIFIED
Mujtaba P GauchoIndiaAnna Fali PROPOSAL
Nicolas F MarrierCanadaElwin Sharvill NEW
Adams G FerenczItalyAsiya Javayant UNQUALIFIED
Darci H DilliardIndiaIoni Bowcher RENEWAL
Chavez P GauchoIndiaIoni Bowcher PROPOSAL
Alejandro M WieserItalyXuxue Feng PROPOSAL
Chavez S BologniaIndiaElwin Sharvill NEGOTIATION
Aditya S PaprockiGermanyOnyama Limba NEW
Mayumi V CaudyBrazilOnyama Limba UNQUALIFIED
Darci Y FigeroaBrazilAmy Elsner NEW
Jennifer Q FerenczArgentinaIvan Magalhaes UNQUALIFIED
Sinclair Q SaylorsCanadaAsiya Javayant UNQUALIFIED
Johnson G DoeArgentinaBernardo Dominic RENEWAL
Wickens S SchemmerBrazilIoni Bowcher QUALIFIED
Ricardo L DilliardGermanyOnyama Limba NEGOTIATION
Izzy H InouyeRussiaAmy Elsner NEW
Leon L CaldareraSpainAsiya Javayant RENEWAL
Salvatore L KolmetzSpainStephen Shaw NEGOTIATION
Nicolas X VocelkaJapanAnna Fali NEGOTIATION
Stacey Q RimSpainAmy Elsner RENEWAL
Izzy F CaudyIndiaElwin Sharvill QUALIFIED
Murillo P DarakjyJapanAmy Elsner NEW
Aditya X GauchoAustraliaIoni Bowcher PROPOSAL
Ivar L KuskoUnited KingdomOnyama Limba QUALIFIED
Murillo Z GarufiArgentinaXuxue Feng PROPOSAL
Alejandro B IturbideItalyElwin Sharvill RENEWAL
Darci U DarakjyCanadaAsiya Javayant NEGOTIATION
Jennifer I FollerArgentinaStephen Shaw PROPOSAL
Ashley Y GlickAustraliaAsiya Javayant NEGOTIATION
Ricardo J ShinkoGermanyIoni Bowcher UNQUALIFIED
Francesco Q WaycottItalyAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika M DoeRussiaOnyama Limba NEW
Faith A NickaUnited KingdomStephen Shaw RENEWAL
Alejandro C ShinkoArgentinaBernardo Dominic QUALIFIED
Silvio Q BriddickRussiaBernardo Dominic PROPOSAL
Leja B GauchoItalyXuxue Feng UNQUALIFIED
Julie F RulapaughArgentinaIoni Bowcher NEGOTIATION
Ricardo I WaycottItalyStephen Shaw RENEWAL
Morrow Y StockhamBrazilAmy Elsner QUALIFIED
Stacey L AlbaresGermanyAnna Fali PROPOSAL
Smith G KuskoBrazilBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna S MaletRussia2024-04-10Dorl, James J Esq UNQUALIFIED26Anna Fali
1001Salvatore A DoeAustralia2024-05-09Feltz Printing Service QUALIFIED40Elwin Sharvill
1002Silvio F MarrierSpain2024-05-05Chanay, Jeffrey A Esq PROPOSAL16Anna Fali
1003Johnson B FlosiGermany2024-04-18Rousseaux, Michael Esq QUALIFIED89Amy Elsner
1004Alejandro H VocelkaUnited Kingdom2024-04-26Morlong Associates NEGOTIATION85Xuxue Feng
1005Clifford W GillianRussia2024-05-03Feiner Bros NEW86Elwin Sharvill
1006Aditya D BowleyGermany2024-05-04Benton, John B Jr NEW15Xuxue Feng
1007Leja T OstroskyFrance2024-05-09Feltz Printing Service RENEWAL3Amy Elsner
1008Costa M OstroskyItaly2024-04-14Feiner Bros PROPOSAL30Asiya Javayant
1009Maria S RutaGermany2024-05-05Printing Dimensions QUALIFIED16Ivan Magalhaes
1010Kaitlin R MaletUnited Kingdom2024-04-28Truhlar And Truhlar Attys NEW48Asiya Javayant
1011Darci I OldroydArgentina2024-04-19Morlong Associates RENEWAL69Elwin Sharvill
1012Antonio S FigeroaRussia2024-04-28Commercial Press PROPOSAL95Ivan Magalhaes
1013Antonio S WieserRussia2024-04-21Rangoni Of Florence PROPOSAL61Bernardo Dominic
1014Clifford D WhobreyGermany2024-04-12Buckley Miller Wright PROPOSAL19Amy Elsner
1015Chavez M GillianCanada2024-05-06Truhlar And Truhlar Attys QUALIFIED18Bernardo Dominic
1016Juan C MaletIndia2024-04-15Commercial Press NEGOTIATION11Ioni Bowcher
1017Greenwood M RoysterJapan2024-04-26Truhlar And Truhlar Attys NEGOTIATION9Onyama Limba
1018Mayumi B GlickAustralia2024-04-21King, Christopher A Esq NEGOTIATION80Ivan Magalhaes
1019Faith G NickaJapan2024-05-05Truhlar And Truhlar Attys NEGOTIATION78Xuxue Feng
1020Kadeem M WaycottAustralia2024-04-11Feltz Printing Service UNQUALIFIED69Anna Fali
1021Munro I RulapaughJapan2024-05-09Truhlar And Truhlar Attys PROPOSAL17Stephen Shaw
1022James N SchemmerIndia2024-04-19Feiner Bros UNQUALIFIED24Asiya Javayant
1023Johnson Z ButtItaly2024-04-26Feiner Bros QUALIFIED56Amy Elsner
1024Cody C MacleadJapan2024-04-13Printing Dimensions NEGOTIATION23Ivan Magalhaes
1025Aditya Q CampainArgentina2024-04-15Buckley Miller Wright RENEWAL23Elwin Sharvill
1026Morrow C FigeroaGermany2024-04-30Feiner Bros UNQUALIFIED57Bernardo Dominic
1027Kadeem V RimIndia2024-04-16Morlong Associates PROPOSAL23Amy Elsner
1028Leja E ShinkoCanada2024-04-17King, Christopher A Esq QUALIFIED79Ivan Magalhaes
1029Ricardo H ShinkoItaly2024-04-22Morlong Associates RENEWAL66Anna Fali
1030Arvin Q NickaSpain2024-04-19Rousseaux, Michael Esq PROPOSAL48Stephen Shaw
1031Mujtaba M SergiGermany2024-04-26Benton, John B Jr QUALIFIED36Xuxue Feng
1032Emily E BowleyFrance2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED57Ioni Bowcher
1033Smith O KolmetzRussia2024-04-17Commercial Press RENEWAL93Bernardo Dominic
1034Adams N NestleRussia2024-04-19Morlong Associates PROPOSAL69Amy Elsner
1035Murillo V StensethRussia2024-04-22Rousseaux, Michael Esq RENEWAL77Ivan Magalhaes
1036Costa S VocelkaGermany2024-04-12Rousseaux, Michael Esq NEW94Asiya Javayant
1037Alejandro L NestleIndia2024-05-04Rangoni Of Florence UNQUALIFIED40Amy Elsner
1038Rodrigues V OldroydUnited Kingdom2024-04-15Buckley Miller Wright UNQUALIFIED29Bernardo Dominic
1039Darci Y KolmetzBrazil2024-05-04Rousseaux, Michael Esq UNQUALIFIED54Elwin Sharvill
1040Francesco O KuskoArgentina2024-04-13Truhlar And Truhlar Attys PROPOSAL53Anna Fali
1041Stacey G FerenczIndia2024-05-01Chanay, Jeffrey A Esq QUALIFIED17Ioni Bowcher
1042James J MacleadAustralia2024-05-09Chanay, Jeffrey A Esq NEGOTIATION8Stephen Shaw
1043Ricardo N GauchoJapan2024-05-09Feiner Bros NEW25Ivan Magalhaes
1044Emily U NickaBrazil2024-04-29Chemel, James L Cpa NEGOTIATION27Onyama Limba
1045Mayumi L GarufiUnited Kingdom2024-04-13Printing Dimensions QUALIFIED61Onyama Limba
1046Clifford T GauchoRussia2024-04-12Morlong Associates UNQUALIFIED25Amy Elsner
1047Maria Z FlosiCanada2024-05-06Buckley Miller Wright RENEWAL99Anna Fali
1048Rodrigues Z MorascaAustralia2024-04-26Chemel, James L Cpa QUALIFIED31Anna Fali
1049Arvin J MaletUnited Kingdom2024-05-07Rousseaux, Michael Esq PROPOSAL90Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna Q BowleyJapanAsiya Javayant NEGOTIATION
Morrow P PerinGermanyStephen Shaw PROPOSAL
Tony W SlusarskiJapanElwin Sharvill RENEWAL
Francesco W AmigonGermanyAnna Fali UNQUALIFIED
Mujtaba I FigeroaGermanyBernardo Dominic UNQUALIFIED
Ashley W MarrierGermanyAnna Fali UNQUALIFIED
Silvio R DarakjyCanadaIoni Bowcher NEGOTIATION
Leja Q DoeGermanyElwin Sharvill UNQUALIFIED
James N MaletItalyXuxue Feng RENEWAL
Francesco C BriddickUnited KingdomElwin Sharvill NEW
Kadeem S FigeroaItalyBernardo Dominic NEW
Izzy G RimAustraliaIoni Bowcher NEW
Faith W StensethBrazilXuxue Feng PROPOSAL
Aditya Y GarufiAustraliaIoni Bowcher PROPOSAL
Ricardo Y StensethUnited KingdomAmy Elsner RENEWAL
Aruna Q MaletSpainXuxue Feng NEW
Aika O NickaGermanyIoni Bowcher NEW
Jones M PaprockiCanadaIoni Bowcher NEW
Kaitlin M KolmetzBrazilBernardo Dominic NEW
Chavez Y KolmetzRussiaAnna Fali QUALIFIED
Faith V PaprockiSpainOnyama Limba RENEWAL
Kadeem T BologniaItalyOnyama Limba UNQUALIFIED
Murillo J FlosiCanadaElwin Sharvill RENEWAL
Murillo L VocelkaCanadaElwin Sharvill PROPOSAL
Izzy X BriddickItalyStephen Shaw RENEWAL
Wickens Z OldroydIndiaAmy Elsner RENEWAL
Salvatore D OstroskyGermanyAsiya Javayant QUALIFIED
Salvatore N CaudySpainAmy Elsner NEW
Costa N DilliardArgentinaIvan Magalhaes NEGOTIATION
Mujtaba J FlosiAustraliaAmy Elsner PROPOSAL
Francesco K GauchoSpainAsiya Javayant UNQUALIFIED
Octavia D WieserJapanAmy Elsner UNQUALIFIED
Aika V WhobreySpainStephen Shaw QUALIFIED
Jennifer H GauchoRussiaAsiya Javayant PROPOSAL
Izzy V SlusarskiGermanyStephen Shaw NEGOTIATION
Jones C MorascaArgentinaStephen Shaw NEGOTIATION
Maria V VenereFranceAmy Elsner PROPOSAL
Jefferson P OstroskyIndiaAsiya Javayant NEW
Ricardo Z IturbideItalyIoni Bowcher UNQUALIFIED
Greenwood P WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Darci R InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Julie I GarufiAustraliaStephen Shaw NEGOTIATION
Jefferson C MorascaCanadaAsiya Javayant RENEWAL
Antonio G PaprockiArgentinaAmy Elsner QUALIFIED
Deepesh S NickaJapanAmy Elsner NEW
Tony H BologniaAustraliaAmy Elsner NEGOTIATION
Octavia Y SaylorsRussiaBernardo Dominic PROPOSAL
Deepesh Y GauchoIndiaStephen Shaw UNQUALIFIED
Leon X CaudyIndiaAmy Elsner NEGOTIATION
Wickens S OldroydItalyAsiya Javayant PROPOSAL
Frozen Columns
Name
Misaki U Stenseth
Greenwood J Marrier
Julie R Briddick
Faith R Bolognia
Jennifer N Butt
Stacey Q Doe
Antonio A Campain
Alejandro A Whobrey
Alejandro T Garufi
James A Gillian
Tony S Ruta
Kaitlin Q Stenseth
Salvatore T Sergi
Mujtaba H Whobrey
Claire D Campain
Maisha Q Sergi
James P Foller
Francesco T Garufi
Jeanfrancois S Kusko
Maisha O Ostrosky
James K Venere
Misaki G Butt
Julie I Garufi
Salvatore J Chui
Arvin T Nestle
Jeanfrancois L Chui
Costa O Garufi
Claire S Iturbide
Isabel Q Malet
Silvio B Amigon
Silvio P Paprocki
Chavez P Campain
Jones C Ostrosky
David A Sergi
Tony S Morasca
Leon A Dilliard
Kaitlin W Marrier
Deepesh V Nicka
Alejandro R Rulapaugh
Aika Z Glick
David S Wieser
Rodrigues L Campain
Faith Q Flosi
Costa C Bowley
Kadeem Z Butt
Claire D Darakjy
David H Darakjy
Jennifer T Kolmetz
Emily H Kolmetz
Aruna U Ostrosky
IdCountryDate
1000United Kingdom2024-04-25
1001Japan2024-04-28
1002Italy2024-04-17
1003Germany2024-04-30
1004Brazil2024-04-15
1005Spain2024-04-19
1006France2024-04-21
1007United Kingdom2024-04-21
1008Japan2024-04-25
1009Germany2024-04-16
1010Japan2024-04-12
1011France2024-04-12
1012Japan2024-04-13
1013Brazil2024-05-05
1014United Kingdom2024-04-14
1015Italy2024-04-17
1016Japan2024-04-12
1017Australia2024-05-03
1018Russia2024-05-02
1019Germany2024-05-07
1020France2024-04-29
1021Australia2024-05-06
1022India2024-05-04
1023Canada2024-04-15
1024Russia2024-04-28
1025Brazil2024-04-23
1026India2024-04-25
1027France2024-05-06
1028Argentina2024-04-15
1029Japan2024-05-05
1030Spain2024-04-19
1031Italy2024-04-13
1032Australia2024-04-13
1033France2024-05-02
1034Russia2024-05-03
1035Russia2024-04-10
1036India2024-05-07
1037Russia2024-05-06
1038Spain2024-04-23
1039Italy2024-04-23
1040India2024-04-21
1041Australia2024-04-15
1042Germany2024-05-01
1043Russia2024-04-14
1044Argentina2024-04-18
1045Australia2024-04-23
1046France2024-04-13
1047France2024-04-19
1048Brazil2024-04-21
1049France2024-04-28

On-Demand Data

NameIdCountryDate
Cody E Bowley1000Canada2024-05-04
Maria W Iturbide1001United Kingdom2024-04-17
Wickens D Schemmer1002Germany2024-04-26
Julie S Inouye1003Japan2024-05-07
Maria F Garufi1004United Kingdom2024-04-14
Aika E Oldroyd1005France2024-04-20
Chavez W Maclead1006Italy2024-04-21
Tony A Ostrosky1007Italy2024-04-13
Mayumi R Marrier1008India2024-04-22
Deepesh F Slusarski1009France2024-05-07
Wickens F Saylors1010Russia2024-04-12
Octavia V Stockham1011Brazil2024-04-13
Wickens J Amigon1012Russia2024-04-12
Morrow Z Stenseth1013Brazil2024-04-13
Morrow Z Venere1014Germany2024-05-02
Salvatore K Stenseth1015United Kingdom2024-04-29
Clifford Z Caldarera1016Spain2024-05-09
Darci I Morasca1017Russia2024-04-20
Jennifer I Foller1018Spain2024-04-17
Francesco B Foller1019Germany2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon A DilliardAustraliaOnyama Limba NEGOTIATION
Antonio P RoysterUnited KingdomStephen Shaw PROPOSAL
Mujtaba T GlickUnited KingdomAmy Elsner QUALIFIED
Antonio R StockhamSpainAsiya Javayant UNQUALIFIED
Faith A CaudyRussiaAnna Fali PROPOSAL
Mujtaba O RimItalyBernardo Dominic PROPOSAL
Mayumi T InouyeAustraliaIoni Bowcher NEW
Stacey N GauchoCanadaElwin Sharvill NEW
Cody I InouyeRussiaAmy Elsner UNQUALIFIED
Cody D IturbideRussiaAmy Elsner RENEWAL
Mayumi F AlbaresFranceXuxue Feng QUALIFIED
Aruna K CaudyAustraliaElwin Sharvill NEW
Jefferson D DarakjySpainAnna Fali PROPOSAL
Deepesh L BriddickFranceElwin Sharvill UNQUALIFIED
Darci Y AmigonItalyXuxue Feng QUALIFIED
Cody G TollnerBrazilElwin Sharvill UNQUALIFIED
Rodrigues T GlickJapanElwin Sharvill RENEWAL
Aruna P RimBrazilElwin Sharvill RENEWAL
Tony I SlusarskiCanadaXuxue Feng NEGOTIATION
Wickens A CaldareraJapanIoni Bowcher NEW
Sinclair P AlbaresFranceOnyama Limba NEGOTIATION
Ricardo A RimIndiaStephen Shaw NEGOTIATION
Salvatore I DarakjyUnited KingdomAnna Fali UNQUALIFIED
Francesco A RulapaughArgentinaAmy Elsner NEW
Darci Y CaudyUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois A FlosiIndiaStephen Shaw PROPOSAL
Jones L WieserBrazilIvan Magalhaes QUALIFIED
Stacey D FollerJapanXuxue Feng NEGOTIATION
Tony H KuskoAustraliaIvan Magalhaes NEW
Faith R FigeroaArgentinaElwin Sharvill NEGOTIATION
Deepesh M StockhamUnited KingdomAnna Fali QUALIFIED
Leja N DoeRussiaAmy Elsner RENEWAL
Rodrigues U OldroydItalyAmy Elsner NEW
Faith T MarrierJapanIoni Bowcher UNQUALIFIED
Tony D RoysterAustraliaOnyama Limba RENEWAL
Greenwood O OldroydGermanyAnna Fali NEGOTIATION
Morrow O VocelkaGermanyElwin Sharvill QUALIFIED
Leon D WieserFranceAsiya Javayant QUALIFIED
Stacey J GauchoIndiaAmy Elsner PROPOSAL
Octavia E MaletBrazilIoni Bowcher PROPOSAL

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