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
Johnson B RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Claire X OldroydSpainStephen Shaw RENEWAL
Jennifer W FerenczItalyAmy Elsner RENEWAL
Ashley U RimBrazilAsiya Javayant PROPOSAL
James W MorascaFranceIoni Bowcher UNQUALIFIED
Emily Z NestleIndiaXuxue Feng QUALIFIED
Ashley K DarakjyGermanyXuxue Feng PROPOSAL
Izzy V PerinSpainOnyama Limba NEGOTIATION
Johnson G WaycottCanadaOnyama Limba UNQUALIFIED
Johnson C SaylorsRussiaXuxue Feng PROPOSAL
Ashley M CaldareraFranceXuxue Feng RENEWAL
Costa M RutaAustraliaAsiya Javayant NEGOTIATION
Stacey O RoysterJapanIvan Magalhaes NEGOTIATION
Izzy Z WaycottFranceIoni Bowcher NEW
Silvio W AlbaresArgentinaAnna Fali PROPOSAL
Murillo Z RutaBrazilBernardo Dominic UNQUALIFIED
Maisha V StensethIndiaOnyama Limba PROPOSAL
Alejandro W GarufiRussiaIvan Magalhaes RENEWAL
Chavez U NestleRussiaAnna Fali NEW
Mujtaba N CaudyItalyAnna Fali RENEWAL
Aditya O MarrierIndiaAnna Fali NEW
Arvin S VocelkaJapanAmy Elsner NEW
Stacey F OstroskySpainXuxue Feng NEGOTIATION
Jennifer Y ButtFranceElwin Sharvill NEGOTIATION
Smith Z RimIndiaIoni Bowcher NEW
Kaitlin I BowleyArgentinaOnyama Limba UNQUALIFIED
Mayumi O MorascaItalyAsiya Javayant NEW
David K WaycottCanadaIoni Bowcher RENEWAL
James Z GauchoBrazilIoni Bowcher QUALIFIED
Munro I MorascaCanadaAmy Elsner NEW
Tony L StensethCanadaOnyama Limba NEGOTIATION
Izzy W FerenczIndiaStephen Shaw NEGOTIATION
Isabel Z KolmetzJapanXuxue Feng RENEWAL
Nicolas F DilliardUnited KingdomAmy Elsner PROPOSAL
Costa N KuskoItalyAmy Elsner RENEWAL
Jefferson P BologniaAustraliaIoni Bowcher PROPOSAL
Mayumi N FollerGermanyIvan Magalhaes NEW
Kaitlin O DoeSpainOnyama Limba UNQUALIFIED
Jeanfrancois B StensethSpainAnna Fali PROPOSAL
James Q MaletCanadaAnna Fali QUALIFIED
Salvatore Y StockhamAustraliaIvan Magalhaes NEW
Ricardo R OldroydAustraliaAsiya Javayant NEGOTIATION
Kaitlin G ButtGermanyStephen Shaw NEW
Morrow E ButtRussiaIvan Magalhaes NEGOTIATION
Chavez S CampainUnited KingdomIvan Magalhaes QUALIFIED
Mayumi S MaletIndiaXuxue Feng PROPOSAL
Ashley U AlbaresRussiaIoni Bowcher NEW
Jeanfrancois B BriddickSpainIoni Bowcher NEW
Silvio G DarakjyJapanBernardo Dominic UNQUALIFIED
Maria S NickaUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily N WaycottArgentinaOnyama Limba RENEWAL
Darci W OldroydIndiaIoni Bowcher RENEWAL
Alejandro B AlbaresItalyElwin Sharvill RENEWAL
Smith Z WieserBrazilBernardo Dominic NEGOTIATION
James P StockhamSpainStephen Shaw NEW
Adams H PerinIndiaAsiya Javayant UNQUALIFIED
Darci D StockhamRussiaAmy Elsner NEGOTIATION
Wickens P ShinkoIndiaAnna Fali PROPOSAL
Jeanfrancois Y RimFranceOnyama Limba RENEWAL
Juan A SlusarskiJapanElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci Q StensethCanada2024-04-24Chemel, James L Cpa NEGOTIATION2Bernardo Dominic
1001Octavia N MaletGermany2024-04-30Buckley Miller Wright RENEWAL5Amy Elsner
1002Greenwood R GillianUnited Kingdom2024-05-04Commercial Press NEGOTIATION3Elwin Sharvill
1003Aditya H ShinkoFrance2024-04-12Commercial Press NEGOTIATION79Ivan Magalhaes
1004James O StensethCanada2024-05-01Feiner Bros NEW11Xuxue Feng
1005Isabel K FigeroaSpain2024-04-12Printing Dimensions UNQUALIFIED86Onyama Limba
1006Tony Z AlbaresAustralia2024-04-22Chanay, Jeffrey A Esq QUALIFIED24Asiya Javayant
1007Jefferson A RulapaughArgentina2024-04-18Commercial Press UNQUALIFIED17Onyama Limba
1008Mayumi O KuskoSpain2024-04-26Buckley Miller Wright NEGOTIATION80Elwin Sharvill
1009Juan Y OldroydIndia2024-04-17Morlong Associates RENEWAL7Stephen Shaw
1010Silvio K SaylorsItaly2024-04-12Rangoni Of Florence UNQUALIFIED81Elwin Sharvill
1011Murillo T PoquetteRussia2024-04-21Rousseaux, Michael Esq RENEWAL64Ioni Bowcher
1012Wickens Y BriddickJapan2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED1Anna Fali
1013Ricardo K WhobreyBrazil2024-05-02Truhlar And Truhlar Attys NEW84Asiya Javayant
1014Johnson X RoysterIndia2024-05-02Dorl, James J Esq NEW44Ioni Bowcher
1015Leon B NickaRussia2024-05-07Commercial Press RENEWAL29Xuxue Feng
1016Alejandro T FerenczGermany2024-04-30Dorl, James J Esq PROPOSAL50Stephen Shaw
1017Leja L TollnerArgentina2024-05-06Feiner Bros QUALIFIED59Bernardo Dominic
1018Cody S VenereGermany2024-04-30Benton, John B Jr QUALIFIED66Ioni Bowcher
1019Adams T DilliardCanada2024-05-04Morlong Associates QUALIFIED80Amy Elsner
1020Alejandro H StensethCanada2024-04-16Chapman, Ross E Esq RENEWAL99Xuxue Feng
1021Mayumi J PoquetteIndia2024-05-01Chanay, Jeffrey A Esq PROPOSAL99Bernardo Dominic
1022Murillo X GlickGermany2024-04-29Morlong Associates QUALIFIED62Ioni Bowcher
1023Maisha K StensethAustralia2024-05-02Chanay, Jeffrey A Esq NEW44Ioni Bowcher
1024Stacey J AmigonJapan2024-04-19Buckley Miller Wright PROPOSAL13Elwin Sharvill
1025Julie Z NestleGermany2024-04-30Dorl, James J Esq PROPOSAL73Ioni Bowcher
1026Murillo K CaudyGermany2024-04-12Feiner Bros RENEWAL56Stephen Shaw
1027Morrow V WieserUnited Kingdom2024-05-02Commercial Press QUALIFIED86Asiya Javayant
1028Juan T DilliardBrazil2024-04-11Truhlar And Truhlar Attys QUALIFIED35Anna Fali
1029Ashley R CaudySpain2024-05-07Chemel, James L Cpa NEGOTIATION92Stephen Shaw
1030Morrow T WaycottSpain2024-04-14Chanay, Jeffrey A Esq NEW20Asiya Javayant
1031Rodrigues P OstroskyItaly2024-04-13Rousseaux, Michael Esq NEGOTIATION28Elwin Sharvill
1032Adams D RimRussia2024-05-06Chapman, Ross E Esq QUALIFIED91Elwin Sharvill
1033Adams Q GauchoIndia2024-04-17Chemel, James L Cpa UNQUALIFIED79Xuxue Feng
1034Murillo N SchemmerBrazil2024-04-24Dorl, James J Esq PROPOSAL94Anna Fali
1035Arvin Y KuskoIndia2024-05-04Chemel, James L Cpa PROPOSAL2Elwin Sharvill
1036Adams K CaudySpain2024-04-11Morlong Associates QUALIFIED93Bernardo Dominic
1037James C ChuiUnited Kingdom2024-04-16Morlong Associates RENEWAL39Ivan Magalhaes
1038Julie Y RimBrazil2024-04-13Dorl, James J Esq RENEWAL30Ioni Bowcher
1039Sinclair L MorascaUnited Kingdom2024-04-12Morlong Associates QUALIFIED15Onyama Limba
1040Antonio G GillianUnited Kingdom2024-04-30Printing Dimensions PROPOSAL13Stephen Shaw
1041Jefferson I DoeIndia2024-04-30Feltz Printing Service NEGOTIATION61Ivan Magalhaes
1042Rodrigues N SlusarskiAustralia2024-04-20Chapman, Ross E Esq NEW95Anna Fali
1043Mujtaba E VenereBrazil2024-04-19Feiner Bros RENEWAL11Elwin Sharvill
1044Morrow F MarrierItaly2024-04-26Benton, John B Jr UNQUALIFIED5Onyama Limba
1045Jones C DoeBrazil2024-05-02Chapman, Ross E Esq RENEWAL82Onyama Limba
1046Jones O VocelkaItaly2024-05-07Chanay, Jeffrey A Esq NEW65Asiya Javayant
1047Clifford H RulapaughCanada2024-04-15Morlong Associates PROPOSAL2Xuxue Feng
1048Sinclair U CaudyArgentina2024-04-25Truhlar And Truhlar Attys UNQUALIFIED42Elwin Sharvill
1049Leja D WhobreyArgentina2024-04-16Feltz Printing Service RENEWAL58Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Murillo Y DarakjyUnited KingdomAsiya Javayant QUALIFIED
Rodrigues N PaprockiUnited KingdomIvan Magalhaes RENEWAL
Ricardo A MaletAustraliaOnyama Limba UNQUALIFIED
Aditya W DilliardIndiaAmy Elsner QUALIFIED
Morrow K OstroskyFranceIoni Bowcher NEGOTIATION
Greenwood U KuskoJapanXuxue Feng NEW
Leja C ShinkoRussiaAmy Elsner NEW
Adams I SaylorsGermanyAnna Fali NEGOTIATION
Sinclair N KuskoAustraliaElwin Sharvill NEW
Kadeem D WaycottGermanyAnna Fali QUALIFIED
Johnson M FigeroaAustraliaAnna Fali UNQUALIFIED
Ashley W SergiAustraliaAsiya Javayant NEW
Maria M WaycottAustraliaAsiya Javayant QUALIFIED
Stacey U SlusarskiCanadaElwin Sharvill QUALIFIED
Aika N ButtFranceAnna Fali UNQUALIFIED
Sinclair W CampainFranceAmy Elsner NEGOTIATION
Chavez L OldroydAustraliaAsiya Javayant PROPOSAL
James S PaprockiRussiaOnyama Limba UNQUALIFIED
Emily Z GlickUnited KingdomAmy Elsner NEGOTIATION
Leon P SergiCanadaXuxue Feng QUALIFIED
Maria C FigeroaRussiaAnna Fali RENEWAL
Maisha L RutaBrazilAnna Fali UNQUALIFIED
Faith Y WieserArgentinaElwin Sharvill RENEWAL
Cody D PaprockiRussiaIoni Bowcher RENEWAL
Munro R BologniaJapanAsiya Javayant NEGOTIATION
Wickens P MarrierIndiaStephen Shaw NEGOTIATION
Faith S RutaArgentinaAsiya Javayant UNQUALIFIED
Wickens Q PaprockiCanadaBernardo Dominic PROPOSAL
Sinclair S RutaIndiaAmy Elsner NEGOTIATION
Aika W BriddickArgentinaOnyama Limba RENEWAL
Adams F NickaRussiaAmy Elsner QUALIFIED
Greenwood W CaudyAustraliaElwin Sharvill QUALIFIED
Jennifer W MacleadJapanAsiya Javayant NEW
Ricardo Q MorascaSpainElwin Sharvill RENEWAL
Johnson C DilliardArgentinaAsiya Javayant NEW
Smith A FlosiUnited KingdomOnyama Limba RENEWAL
Julie F InouyeAustraliaBernardo Dominic QUALIFIED
Johnson X KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Murillo N BowleyFranceElwin Sharvill NEGOTIATION
Stacey H SergiArgentinaAsiya Javayant RENEWAL
Octavia B AlbaresItalyStephen Shaw QUALIFIED
Jennifer S AmigonJapanOnyama Limba NEGOTIATION
Antonio Q TollnerRussiaBernardo Dominic UNQUALIFIED
Julie U GauchoBrazilBernardo Dominic RENEWAL
Rodrigues Y FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Leja B CaldareraCanadaBernardo Dominic PROPOSAL
Leja T StensethArgentinaStephen Shaw NEGOTIATION
Alejandro C CaudySpainBernardo Dominic NEGOTIATION
Maisha P StockhamGermanyAmy Elsner NEGOTIATION
Mayumi C TollnerUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Jennifer B Caldarera
Francesco H Iturbide
Cody R Schemmer
Jefferson L Dilliard
Alejandro T Poquette
Claire Q Waycott
Ricardo W Briddick
Kadeem R Iturbide
Adams B Doe
Ashley A Kolmetz
Izzy Q Perin
Emily D Perin
Mayumi K Flosi
Darci B Kolmetz
Aika M Perin
Clifford X Campain
Ivar A Shinko
Maisha P Iturbide
Antonio V Maclead
Stacey N Whobrey
Leon L Rim
Cody Z Vocelka
Stacey M Darakjy
Salvatore X Garufi
Francesco J Stockham
Nicolas V Perin
Julie D Doe
Morrow W Butt
Kaitlin H Chui
David N Ruta
Misaki X Royster
Francesco U Dilliard
Mujtaba P Shinko
Aika G Tollner
James G Saylors
Aruna Q Slusarski
Claire U Nestle
Stacey V Schemmer
Johnson U Venere
Misaki R Nicka
Mujtaba D Venere
Arvin X Paprocki
Johnson H Caudy
Deepesh L Perin
Silvio U Marrier
Leja T Bolognia
Darci C Venere
Tony F Iturbide
Stacey T Inouye
Wickens D Nicka
IdCountryDate
1000Canada2024-04-30
1001Brazil2024-04-11
1002Canada2024-04-20
1003France2024-04-20
1004Australia2024-04-13
1005Spain2024-04-16
1006United Kingdom2024-05-01
1007Italy2024-04-23
1008Australia2024-04-29
1009Russia2024-04-19
1010India2024-04-13
1011Italy2024-05-04
1012Japan2024-04-27
1013United Kingdom2024-05-07
1014France2024-05-01
1015United Kingdom2024-04-26
1016Russia2024-05-01
1017Spain2024-04-09
1018United Kingdom2024-04-15
1019Canada2024-05-07
1020India2024-04-30
1021Japan2024-05-04
1022United Kingdom2024-04-28
1023Germany2024-05-03
1024Italy2024-04-29
1025Japan2024-05-04
1026Germany2024-05-01
1027Spain2024-05-04
1028Russia2024-04-24
1029United Kingdom2024-04-18
1030Russia2024-05-03
1031Brazil2024-04-17
1032Argentina2024-04-25
1033United Kingdom2024-05-03
1034India2024-04-30
1035Japan2024-04-08
1036Japan2024-05-07
1037Canada2024-04-19
1038Germany2024-04-21
1039France2024-04-11
1040Italy2024-04-22
1041Spain2024-04-08
1042Germany2024-04-23
1043Australia2024-05-05
1044Argentina2024-05-05
1045Canada2024-04-17
1046Japan2024-05-07
1047Japan2024-04-09
1048Japan2024-04-15
1049Argentina2024-04-08

On-Demand Data

NameIdCountryDate
Deepesh E Whobrey1000India2024-04-14
Jones V Kusko1001Canada2024-05-05
Chavez H Venere1002France2024-05-06
Jones Y Bolognia1003Brazil2024-04-21
Aditya R Albares1004Canada2024-04-27
Jefferson V Figeroa1005Australia2024-04-21
James Q Darakjy1006Russia2024-04-24
Stacey C Inouye1007Japan2024-04-16
Ricardo I Dilliard1008Japan2024-04-11
James G Figeroa1009Australia2024-04-21
Darci B Ostrosky1010India2024-04-28
Salvatore M Malet1011Canada2024-04-09
Faith O Amigon1012Canada2024-05-05
Clifford S Foller1013Japan2024-05-06
Leon K Malet1014Germany2024-04-19
Sinclair W Bolognia1015Italy2024-05-05
Smith A Nestle1016Italy2024-04-18
Aditya R Kusko1017Brazil2024-04-14
Misaki G Ferencz1018United Kingdom2024-04-12
Leja C Shinko1019India2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Y SaylorsArgentinaIoni Bowcher UNQUALIFIED
Johnson K DoeIndiaBernardo Dominic NEGOTIATION
Clifford N StensethItalyIoni Bowcher NEW
Mujtaba R BologniaGermanyStephen Shaw NEGOTIATION
Jeanfrancois X MaletArgentinaStephen Shaw QUALIFIED
Munro Y NestleGermanyAsiya Javayant QUALIFIED
Silvio O MaletItalyStephen Shaw QUALIFIED
Tony J ButtBrazilAnna Fali NEGOTIATION
Stacey V GillianJapanAmy Elsner RENEWAL
Jones D IturbideUnited KingdomIvan Magalhaes QUALIFIED
Jeanfrancois T MorascaUnited KingdomBernardo Dominic PROPOSAL
Arvin W PoquetteGermanyXuxue Feng PROPOSAL
James M MaletItalyAmy Elsner UNQUALIFIED
Tony Y FollerCanadaAmy Elsner PROPOSAL
Morrow Q PoquetteGermanyBernardo Dominic RENEWAL
Deepesh H AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba K IturbideFranceElwin Sharvill NEW
Deepesh O DarakjyCanadaAsiya Javayant NEGOTIATION
Claire E RimAustraliaElwin Sharvill PROPOSAL
Kaitlin Y WieserJapanAmy Elsner RENEWAL
Tony M FigeroaCanadaBernardo Dominic NEGOTIATION
Izzy L BologniaArgentinaElwin Sharvill QUALIFIED
Maria L SergiGermanyIoni Bowcher RENEWAL
Jefferson N ShinkoSpainIvan Magalhaes UNQUALIFIED
Aruna S RulapaughItalyIoni Bowcher NEW
Julie P VenereItalyXuxue Feng RENEWAL
Maisha E DilliardUnited KingdomBernardo Dominic QUALIFIED
Clifford K ChuiRussiaOnyama Limba RENEWAL
Jeanfrancois X RutaAustraliaElwin Sharvill NEW
Ricardo R BologniaFranceAmy Elsner PROPOSAL
Clifford U RoysterAustraliaStephen Shaw NEW
Jennifer M MorascaBrazilElwin Sharvill NEGOTIATION
Kadeem N FigeroaRussiaIvan Magalhaes NEGOTIATION
Jeanfrancois J CampainRussiaAnna Fali QUALIFIED
Aditya O NickaItalyAmy Elsner UNQUALIFIED
Alejandro R BowleyArgentinaElwin Sharvill PROPOSAL
Mujtaba Y NickaBrazilAsiya Javayant QUALIFIED
Jeanfrancois V WhobreyRussiaAsiya Javayant QUALIFIED
Mayumi K InouyeGermanyBernardo Dominic NEGOTIATION
Aika D RulapaughJapanElwin Sharvill 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>