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
Leja Y BowleyGermanyStephen Shaw RENEWAL
Jones U GillianRussiaIoni Bowcher QUALIFIED
Aika C PaprockiSpainAmy Elsner NEGOTIATION
David X AmigonAustraliaBernardo Dominic RENEWAL
Smith E BriddickArgentinaAsiya Javayant PROPOSAL
Wickens U MorascaArgentinaOnyama Limba QUALIFIED
Leon O FollerCanadaStephen Shaw UNQUALIFIED
Alejandro K KuskoSpainAmy Elsner NEW
Costa C RulapaughGermanyAnna Fali NEGOTIATION
Maria Z CampainItalyOnyama Limba PROPOSAL
Deepesh G NickaUnited KingdomAnna Fali QUALIFIED
Johnson R RoysterSpainIvan Magalhaes QUALIFIED
Leon D StockhamAustraliaOnyama Limba RENEWAL
Greenwood S FerenczAustraliaStephen Shaw NEW
Claire F SlusarskiCanadaStephen Shaw NEW
Chavez P AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Tony V SaylorsGermanyIoni Bowcher NEGOTIATION
Maisha N CaldareraGermanyAmy Elsner PROPOSAL
Misaki C FigeroaBrazilElwin Sharvill NEW
Octavia L RoysterItalyIvan Magalhaes QUALIFIED
Johnson P RulapaughUnited KingdomOnyama Limba NEGOTIATION
Costa A AlbaresBrazilIoni Bowcher UNQUALIFIED
Maisha Q GauchoJapanBernardo Dominic NEW
Jones R CaudyIndiaIoni Bowcher PROPOSAL
Clifford S GauchoAustraliaBernardo Dominic RENEWAL
Jeanfrancois B FollerBrazilStephen Shaw RENEWAL
Maria H ShinkoRussiaAnna Fali NEW
Francesco Y NickaRussiaAsiya Javayant NEGOTIATION
Isabel B SergiSpainElwin Sharvill UNQUALIFIED
Mayumi Q StensethUnited KingdomBernardo Dominic PROPOSAL
James U ChuiArgentinaAmy Elsner QUALIFIED
Octavia E RutaIndiaIvan Magalhaes QUALIFIED
Murillo T WaycottAustraliaAsiya Javayant UNQUALIFIED
Ashley L BologniaArgentinaStephen Shaw PROPOSAL
Mujtaba F FlosiJapanAnna Fali PROPOSAL
Jennifer M RoysterUnited KingdomBernardo Dominic NEGOTIATION
Maria Y OldroydJapanAnna Fali UNQUALIFIED
Francesco M BriddickGermanyIvan Magalhaes QUALIFIED
Mayumi D WieserIndiaAsiya Javayant QUALIFIED
Morrow K DarakjyCanadaXuxue Feng QUALIFIED
Alejandro K ButtSpainBernardo Dominic UNQUALIFIED
Clifford B RimIndiaAsiya Javayant PROPOSAL
Costa C DarakjyArgentinaAsiya Javayant NEW
Mujtaba Y OstroskySpainOnyama Limba RENEWAL
Cody G TollnerItalyStephen Shaw RENEWAL
Tony K PerinIndiaBernardo Dominic NEGOTIATION
Munro W WhobreyCanadaOnyama Limba NEGOTIATION
Cody W AlbaresSpainXuxue Feng NEGOTIATION
Maria R MaletUnited KingdomAnna Fali QUALIFIED
Morrow P SlusarskiSpainAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson L IturbideGermanyXuxue Feng NEGOTIATION
Kadeem K SchemmerGermanyAmy Elsner PROPOSAL
Juan V SergiSpainBernardo Dominic QUALIFIED
Mujtaba U TollnerSpainAsiya Javayant QUALIFIED
Rodrigues F ShinkoArgentinaOnyama Limba RENEWAL
Wickens M RutaCanadaXuxue Feng PROPOSAL
Antonio D DoeItalyOnyama Limba PROPOSAL
Smith R KuskoItalyBernardo Dominic NEGOTIATION
Leja R VocelkaGermanyIvan Magalhaes PROPOSAL
Chavez W CaldareraFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo W DarakjyBrazil2024-04-25Morlong Associates QUALIFIED88Stephen Shaw
1001Tony M FerenczJapan2024-04-13Rangoni Of Florence NEGOTIATION33Ivan Magalhaes
1002Octavia Y MorascaArgentina2024-04-22Chanay, Jeffrey A Esq PROPOSAL72Onyama Limba
1003Mujtaba A CaudyJapan2024-04-14Buckley Miller Wright NEW78Ivan Magalhaes
1004Smith V DilliardUnited Kingdom2024-03-31Feiner Bros PROPOSAL88Anna Fali
1005Munro L NickaFrance2024-04-28Chapman, Ross E Esq PROPOSAL14Ioni Bowcher
1006Chavez S OstroskyItaly2024-04-25King, Christopher A Esq UNQUALIFIED83Xuxue Feng
1007Aruna M WhobreyIndia2024-04-11Rousseaux, Michael Esq NEGOTIATION57Elwin Sharvill
1008Adams F KuskoGermany2024-04-19Feiner Bros QUALIFIED61Bernardo Dominic
1009Jennifer Y StensethRussia2024-04-19Commercial Press NEGOTIATION74Elwin Sharvill
1010Jennifer Y DarakjyJapan2024-04-14Morlong Associates NEW31Asiya Javayant
1011Munro N MaletRussia2024-04-15Printing Dimensions UNQUALIFIED72Anna Fali
1012Salvatore Z DarakjyBrazil2024-04-02Morlong Associates UNQUALIFIED90Anna Fali
1013Leja C BowleyArgentina2024-04-13Truhlar And Truhlar Attys QUALIFIED50Ioni Bowcher
1014Rodrigues R DilliardAustralia2024-04-23Chapman, Ross E Esq UNQUALIFIED35Onyama Limba
1015Claire J RutaJapan2024-04-14Dorl, James J Esq PROPOSAL17Xuxue Feng
1016James W CaudyGermany2024-04-08Benton, John B Jr NEW31Ivan Magalhaes
1017Stacey K KolmetzIndia2024-04-21King, Christopher A Esq NEGOTIATION13Amy Elsner
1018Emily M SchemmerCanada2024-04-17Feiner Bros RENEWAL93Stephen Shaw
1019Mayumi A NickaItaly2024-04-15Feltz Printing Service NEW20Ioni Bowcher
1020Emily F OldroydCanada2024-04-03Rousseaux, Michael Esq NEGOTIATION68Xuxue Feng
1021Claire T KolmetzGermany2024-04-02King, Christopher A Esq QUALIFIED47Onyama Limba
1022Arvin K WhobreyBrazil2024-04-17Printing Dimensions NEW5Stephen Shaw
1023Leon K MorascaUnited Kingdom2024-04-06Chapman, Ross E Esq NEW85Amy Elsner
1024Jones T GauchoIndia2024-04-20Truhlar And Truhlar Attys NEGOTIATION73Ioni Bowcher
1025Alejandro F GillianIndia2024-04-04Commercial Press NEGOTIATION46Onyama Limba
1026Emily C RimBrazil2024-04-04Feiner Bros UNQUALIFIED74Bernardo Dominic
1027Greenwood Y MaletJapan2024-04-27Commercial Press NEGOTIATION48Stephen Shaw
1028Greenwood Z InouyeCanada2024-04-08Chanay, Jeffrey A Esq QUALIFIED74Stephen Shaw
1029Arvin R GarufiCanada2024-04-28Truhlar And Truhlar Attys RENEWAL25Bernardo Dominic
1030Rodrigues I OstroskySpain2024-04-21Feltz Printing Service UNQUALIFIED54Xuxue Feng
1031Silvio H BriddickItaly2024-04-21Rousseaux, Michael Esq RENEWAL26Elwin Sharvill
1032Julie X NestleAustralia2024-04-12Chapman, Ross E Esq UNQUALIFIED71Onyama Limba
1033Wickens M StensethSpain2024-04-11Chanay, Jeffrey A Esq PROPOSAL47Onyama Limba
1034Deepesh W FerenczSpain2024-04-08Benton, John B Jr RENEWAL69Asiya Javayant
1035Clifford I AlbaresBrazil2024-04-08King, Christopher A Esq UNQUALIFIED63Xuxue Feng
1036Mayumi Z PoquetteFrance2024-04-19Morlong Associates PROPOSAL64Ioni Bowcher
1037Aruna W SlusarskiItaly2024-04-03Commercial Press NEW3Asiya Javayant
1038Francesco V RutaGermany2024-04-18Rousseaux, Michael Esq QUALIFIED64Bernardo Dominic
1039Smith Z CaudyCanada2024-04-17Feltz Printing Service PROPOSAL45Asiya Javayant
1040Maisha D GauchoSpain2024-04-22Rangoni Of Florence NEGOTIATION45Amy Elsner
1041Sinclair O BowleyItaly2024-04-11Chapman, Ross E Esq NEW65Ioni Bowcher
1042Deepesh N RimUnited Kingdom2024-04-15Commercial Press PROPOSAL99Asiya Javayant
1043Maisha L StensethFrance2024-03-30Commercial Press NEW40Asiya Javayant
1044Mujtaba A SaylorsAustralia2024-04-22Feltz Printing Service QUALIFIED19Asiya Javayant
1045Mujtaba U GillianItaly2024-04-18Chapman, Ross E Esq PROPOSAL80Onyama Limba
1046Rodrigues Z AmigonItaly2024-04-26King, Christopher A Esq PROPOSAL17Ivan Magalhaes
1047Aruna B OstroskyIndia2024-04-27Feiner Bros NEGOTIATION72Elwin Sharvill
1048Julie E RoysterIndia2024-04-10Commercial Press PROPOSAL52Bernardo Dominic
1049Izzy Y GlickIndia2024-04-08Chapman, Ross E Esq PROPOSAL91Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Murillo D BologniaRussiaIvan Magalhaes RENEWAL
Alejandro V MarrierJapanBernardo Dominic RENEWAL
Maria N BologniaItalyElwin Sharvill RENEWAL
Antonio B MacleadSpainIvan Magalhaes NEGOTIATION
Maisha E SlusarskiRussiaIvan Magalhaes QUALIFIED
Smith J NickaCanadaElwin Sharvill QUALIFIED
David D DarakjySpainIoni Bowcher PROPOSAL
Mayumi E DarakjyItalyBernardo Dominic RENEWAL
Alejandro R VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Murillo L FollerUnited KingdomIoni Bowcher QUALIFIED
Aika M InouyeUnited KingdomAmy Elsner QUALIFIED
Deepesh H KuskoRussiaElwin Sharvill PROPOSAL
Salvatore H BriddickBrazilOnyama Limba RENEWAL
Clifford G SergiAustraliaBernardo Dominic RENEWAL
Aditya H BologniaCanadaXuxue Feng NEGOTIATION
Salvatore H ButtItalyBernardo Dominic UNQUALIFIED
Maria I AlbaresArgentinaIvan Magalhaes QUALIFIED
Aika Z GauchoCanadaBernardo Dominic UNQUALIFIED
Aditya S FerenczUnited KingdomAmy Elsner UNQUALIFIED
Darci K BologniaIndiaStephen Shaw NEGOTIATION
Jennifer H RutaIndiaAnna Fali PROPOSAL
Adams W RoysterCanadaXuxue Feng NEW
Kadeem K WhobreyIndiaAmy Elsner NEGOTIATION
Leon Q SlusarskiUnited KingdomIvan Magalhaes NEW
Misaki R BowleyItalyElwin Sharvill PROPOSAL
Smith G MorascaArgentinaIoni Bowcher QUALIFIED
Misaki S ChuiGermanyIoni Bowcher PROPOSAL
Johnson M IturbideJapanOnyama Limba UNQUALIFIED
Sinclair D VenereJapanIvan Magalhaes NEW
Silvio P MaletFranceAnna Fali NEW
Antonio D SlusarskiSpainAsiya Javayant QUALIFIED
Cody A MorascaIndiaAmy Elsner RENEWAL
Isabel M FigeroaUnited KingdomOnyama Limba NEGOTIATION
James K ChuiArgentinaXuxue Feng PROPOSAL
Octavia H CaldareraUnited KingdomAnna Fali NEGOTIATION
Chavez Y FigeroaBrazilAnna Fali RENEWAL
Ashley Y RoysterArgentinaIoni Bowcher NEGOTIATION
Emily S CaudyFranceAsiya Javayant PROPOSAL
Leon Q FlosiItalyIvan Magalhaes NEW
Ashley F GarufiSpainStephen Shaw PROPOSAL
Julie K NickaBrazilAsiya Javayant PROPOSAL
Greenwood R PaprockiBrazilElwin Sharvill QUALIFIED
Munro T WhobreyJapanXuxue Feng NEGOTIATION
Cody D OldroydSpainAmy Elsner UNQUALIFIED
Silvio Z MaletItalyOnyama Limba NEW
Octavia T MacleadIndiaElwin Sharvill QUALIFIED
Leon K CaudyFranceAnna Fali RENEWAL
Arvin D FerenczArgentinaAsiya Javayant PROPOSAL
Greenwood W WhobreyRussiaOnyama Limba RENEWAL
Salvatore U OldroydJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Izzy U Caldarera
Aditya Y Doe
Cody R Sergi
Wickens U Slusarski
Antonio Q Stockham
Aditya M Kolmetz
Greenwood T Ostrosky
Rodrigues Y Stockham
Izzy H Garufi
Kaitlin E Gaucho
Octavia F Poquette
Faith A Dilliard
James T Flosi
Kaitlin Q Morasca
Johnson F Vocelka
Kadeem T Poquette
Maria V Dilliard
Rodrigues R Slusarski
Jefferson O Foller
Tony Q Caudy
Chavez V Royster
Darci W Foller
Smith J Slusarski
Mujtaba J Doe
Jones T Perin
Aditya O Amigon
Leja F Waycott
Johnson I Garufi
Munro I Kusko
James R Kolmetz
Misaki O Gaucho
Salvatore E Ferencz
Chavez L Rulapaugh
Leja X Darakjy
James A Whobrey
Nicolas E Figeroa
Darci O Dilliard
Murillo U Bolognia
Wickens U Ferencz
Misaki Q Stockham
Clifford O Royster
Antonio E Caudy
Kadeem B Marrier
Johnson Y Tollner
Clifford K Stockham
Julie B Ruta
Adams N Inouye
Kaitlin R Wieser
Kaitlin L Bolognia
Smith X Ostrosky
IdCountryDate
1000India2024-04-08
1001Germany2024-04-01
1002Japan2024-04-13
1003France2024-04-07
1004Italy2024-04-11
1005Italy2024-04-21
1006Germany2024-04-27
1007Italy2024-04-12
1008India2024-04-20
1009Argentina2024-04-10
1010Japan2024-04-11
1011Italy2024-04-28
1012India2024-04-08
1013Russia2024-04-16
1014United Kingdom2024-04-07
1015Italy2024-04-03
1016Australia2024-04-01
1017Argentina2024-03-31
1018Spain2024-03-30
1019Australia2024-03-30
1020Germany2024-04-11
1021Brazil2024-04-11
1022Japan2024-04-09
1023Japan2024-04-02
1024United Kingdom2024-04-23
1025Spain2024-04-19
1026Russia2024-04-14
1027Brazil2024-04-26
1028Italy2024-04-14
1029Brazil2024-04-03
1030Canada2024-04-24
1031Italy2024-04-05
1032France2024-04-23
1033Italy2024-04-13
1034Italy2024-04-24
1035United Kingdom2024-04-09
1036India2024-04-28
1037Brazil2024-04-09
1038Russia2024-04-14
1039Canada2024-04-14
1040Germany2024-04-03
1041Spain2024-04-14
1042Brazil2024-04-06
1043Argentina2024-04-16
1044France2024-04-15
1045India2024-04-27
1046Spain2024-04-25
1047Italy2024-04-11
1048Italy2024-04-27
1049Argentina2024-04-07

On-Demand Data

NameIdCountryDate
Aika P Caldarera1000Germany2024-04-21
Leja I Malet1001Argentina2024-04-12
Johnson X Caudy1002Brazil2024-04-21
Costa V Stenseth1003Japan2024-04-19
Arvin V Slusarski1004Australia2024-04-24
Nicolas Z Figeroa1005Italy2024-03-31
Johnson X Albares1006Argentina2024-04-12
Ivar Q Sergi1007Argentina2024-04-21
Tony G Morasca1008India2024-04-03
Adams F Nicka1009Italy2024-04-17
Izzy J Glick1010France2024-03-31
Antonio U Rim1011Canada2024-03-30
Aditya T Albares1012Russia2024-04-10
Mujtaba D Ostrosky1013Spain2024-03-31
Adams V Kolmetz1014Russia2024-04-08
Clifford Q Ruta1015Germany2024-04-12
Francesco S Marrier1016Spain2024-03-31
Julie L Garufi1017Spain2024-04-21
Cody J Chui1018Japan2024-04-28
Aika Q Kolmetz1019Canada2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki A WhobreyIndiaXuxue Feng QUALIFIED
Maria P MacleadGermanyAnna Fali QUALIFIED
Octavia W GillianIndiaBernardo Dominic NEGOTIATION
Kadeem Z PoquetteFranceAnna Fali RENEWAL
Maria H AlbaresFranceIvan Magalhaes RENEWAL
David T PaprockiJapanAsiya Javayant QUALIFIED
James I SaylorsRussiaAnna Fali RENEWAL
Mujtaba T SlusarskiCanadaIvan Magalhaes RENEWAL
Maisha M ChuiIndiaAmy Elsner PROPOSAL
Kaitlin D CaldareraAustraliaStephen Shaw PROPOSAL
Adams W CampainBrazilStephen Shaw QUALIFIED
Tony C SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Faith X WhobreyUnited KingdomStephen Shaw NEW
Faith W GillianRussiaStephen Shaw RENEWAL
Stacey Q DarakjyIndiaIoni Bowcher RENEWAL
Misaki A AmigonUnited KingdomAmy Elsner PROPOSAL
Aruna L BologniaArgentinaAmy Elsner RENEWAL
Wickens U GarufiItalyStephen Shaw NEW
Aruna N NickaCanadaIoni Bowcher NEGOTIATION
Darci X ButtIndiaAmy Elsner PROPOSAL
Leja M CaudyIndiaElwin Sharvill PROPOSAL
Cody T TollnerBrazilBernardo Dominic QUALIFIED
Costa D ChuiIndiaStephen Shaw PROPOSAL
Jefferson M ChuiFranceAmy Elsner QUALIFIED
Clifford M SlusarskiAustraliaStephen Shaw QUALIFIED
Morrow G VenereGermanyAmy Elsner NEW
Greenwood N MaletUnited KingdomAmy Elsner PROPOSAL
Murillo L InouyeJapanElwin Sharvill UNQUALIFIED
James Q InouyeRussiaXuxue Feng QUALIFIED
Kaitlin J RoysterRussiaAmy Elsner NEGOTIATION
Stacey Y BowleyCanadaElwin Sharvill NEGOTIATION
Leja B RulapaughSpainIoni Bowcher UNQUALIFIED
Jeanfrancois H RimSpainAmy Elsner RENEWAL
Octavia V CaudyJapanIoni Bowcher UNQUALIFIED
Greenwood J MacleadCanadaElwin Sharvill RENEWAL
Deepesh W BriddickArgentinaElwin Sharvill PROPOSAL
Darci C StockhamArgentinaAsiya Javayant NEGOTIATION
Sinclair V BowleyFranceAmy Elsner NEW
James J VenereArgentinaAmy Elsner NEGOTIATION
Ashley W MarrierItalyIoni Bowcher NEW

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