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
Julie J SergiBrazilElwin Sharvill QUALIFIED
Sinclair C MaletCanadaIvan Magalhaes QUALIFIED
Faith X AmigonCanadaAmy Elsner NEGOTIATION
Faith E MaletRussiaIvan Magalhaes NEGOTIATION
Stacey X MaletBrazilAsiya Javayant NEGOTIATION
Greenwood L MacleadGermanyElwin Sharvill RENEWAL
Deepesh A MaletArgentinaXuxue Feng RENEWAL
Faith Z GillianUnited KingdomBernardo Dominic PROPOSAL
Ashley H GauchoRussiaAsiya Javayant QUALIFIED
Silvio M MorascaAustraliaXuxue Feng NEW
Kaitlin O StockhamBrazilElwin Sharvill PROPOSAL
Costa T FlosiArgentinaAmy Elsner PROPOSAL
Antonio X BowleyArgentinaIvan Magalhaes RENEWAL
Jeanfrancois N MacleadItalyElwin Sharvill PROPOSAL
James B ShinkoSpainStephen Shaw NEGOTIATION
Claire K DilliardGermanyOnyama Limba PROPOSAL
Stacey R FigeroaArgentinaXuxue Feng UNQUALIFIED
Isabel Y RulapaughArgentinaElwin Sharvill QUALIFIED
Adams O MarrierCanadaAsiya Javayant PROPOSAL
Cody A RutaAustraliaStephen Shaw NEGOTIATION
Chavez I VenereRussiaBernardo Dominic NEGOTIATION
Rodrigues E GillianSpainOnyama Limba PROPOSAL
Morrow R MorascaGermanyStephen Shaw NEW
Darci R NickaGermanyIvan Magalhaes NEGOTIATION
Leon T NickaArgentinaAmy Elsner NEW
Emily Y PerinSpainIvan Magalhaes QUALIFIED
Cody I ChuiUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois A KuskoArgentinaBernardo Dominic NEGOTIATION
Julie C MorascaGermanyAsiya Javayant PROPOSAL
Misaki H PoquetteUnited KingdomOnyama Limba NEGOTIATION
Jefferson F RutaAustraliaBernardo Dominic UNQUALIFIED
Jennifer I OldroydItalyStephen Shaw NEGOTIATION
Wickens N VocelkaUnited KingdomElwin Sharvill NEW
Octavia Q SlusarskiJapanStephen Shaw QUALIFIED
Munro X FerenczUnited KingdomOnyama Limba RENEWAL
Juan J PaprockiAustraliaIvan Magalhaes NEGOTIATION
Murillo Y SaylorsItalyAnna Fali NEGOTIATION
Rodrigues M RulapaughItalyAsiya Javayant UNQUALIFIED
Arvin Z RoysterUnited KingdomAsiya Javayant NEW
Arvin C SaylorsAustraliaAnna Fali NEGOTIATION
Johnson Z FollerItalyIvan Magalhaes NEW
Izzy O TollnerFranceAnna Fali PROPOSAL
Alejandro B WieserItalyXuxue Feng UNQUALIFIED
Emily L MorascaSpainIvan Magalhaes QUALIFIED
Izzy Y BriddickJapanAsiya Javayant QUALIFIED
Aruna B RutaCanadaIvan Magalhaes UNQUALIFIED
Cody B MaletFranceAnna Fali NEW
Francesco U VocelkaJapanIoni Bowcher PROPOSAL
Octavia H VenereJapanAmy Elsner NEW
Misaki U MacleadIndiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
James H BowleyBrazilElwin Sharvill RENEWAL
Darci G GillianArgentinaIvan Magalhaes UNQUALIFIED
Izzy H PerinBrazilBernardo Dominic NEGOTIATION
Arvin S RoysterAustraliaAsiya Javayant UNQUALIFIED
Leja V SaylorsAustraliaElwin Sharvill UNQUALIFIED
Mayumi N NickaBrazilXuxue Feng NEW
Jeanfrancois N KuskoUnited KingdomXuxue Feng UNQUALIFIED
Deepesh L SaylorsGermanyAsiya Javayant NEGOTIATION
Mujtaba E StockhamJapanIvan Magalhaes NEW
David Y SlusarskiFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody N CaldareraCanada2024-04-15Buckley Miller Wright PROPOSAL17Bernardo Dominic
1001Stacey M AmigonFrance2024-04-12Commercial Press NEW79Amy Elsner
1002David P WieserFrance2024-04-10Feiner Bros RENEWAL44Amy Elsner
1003Greenwood V SaylorsItaly2024-03-31Chapman, Ross E Esq NEW25Onyama Limba
1004Chavez X PaprockiItaly2024-04-09Chapman, Ross E Esq PROPOSAL17Asiya Javayant
1005Antonio F RimRussia2024-04-14Printing Dimensions UNQUALIFIED83Stephen Shaw
1006Chavez Z RimArgentina2024-04-06Printing Dimensions UNQUALIFIED38Ioni Bowcher
1007Chavez I NickaCanada2024-04-03Chemel, James L Cpa PROPOSAL50Amy Elsner
1008Chavez P ShinkoCanada2024-03-31Benton, John B Jr UNQUALIFIED28Anna Fali
1009Antonio R CampainIndia2024-04-09Truhlar And Truhlar Attys RENEWAL84Anna Fali
1010Aditya X InouyeArgentina2024-04-06King, Christopher A Esq NEGOTIATION42Asiya Javayant
1011Mayumi Q DilliardRussia2024-04-11Chanay, Jeffrey A Esq NEGOTIATION50Onyama Limba
1012Deepesh F BriddickRussia2024-04-17Truhlar And Truhlar Attys QUALIFIED87Xuxue Feng
1013Clifford X RutaArgentina2024-04-08Commercial Press NEGOTIATION29Amy Elsner
1014Deepesh R GarufiCanada2024-03-28Dorl, James J Esq RENEWAL75Asiya Javayant
1015Emily J NestleRussia2024-04-07Chemel, James L Cpa QUALIFIED87Elwin Sharvill
1016Greenwood W BriddickGermany2024-03-27Benton, John B Jr QUALIFIED73Stephen Shaw
1017Nicolas R BriddickSpain2024-04-17Feiner Bros NEW99Ioni Bowcher
1018Isabel N NickaRussia2024-04-07Commercial Press NEW7Elwin Sharvill
1019Cody C MaletRussia2024-04-15Rangoni Of Florence PROPOSAL31Elwin Sharvill
1020Nicolas S FlosiFrance2024-03-30Chapman, Ross E Esq PROPOSAL70Stephen Shaw
1021Clifford E DarakjyJapan2024-04-05Buckley Miller Wright RENEWAL90Stephen Shaw
1022Arvin T WieserBrazil2024-04-19Truhlar And Truhlar Attys PROPOSAL5Elwin Sharvill
1023Johnson K DarakjySpain2024-04-01Truhlar And Truhlar Attys NEGOTIATION81Amy Elsner
1024Stacey C CaudyRussia2024-03-27Benton, John B Jr UNQUALIFIED0Stephen Shaw
1025James V DoeUnited Kingdom2024-04-24Buckley Miller Wright NEW87Ioni Bowcher
1026Aditya L SchemmerRussia2024-03-29Chapman, Ross E Esq NEW64Stephen Shaw
1027Kaitlin J VenereItaly2024-03-28Printing Dimensions QUALIFIED77Amy Elsner
1028Misaki Q CampainUnited Kingdom2024-04-20Buckley Miller Wright NEW19Stephen Shaw
1029Rodrigues L MorascaItaly2024-04-11Rangoni Of Florence NEW17Ivan Magalhaes
1030Jeanfrancois G GlickRussia2024-04-19Buckley Miller Wright NEGOTIATION97Asiya Javayant
1031Antonio P VenereSpain2024-04-18Benton, John B Jr NEGOTIATION57Onyama Limba
1032Octavia G CampainJapan2024-04-02Chapman, Ross E Esq NEW35Stephen Shaw
1033Murillo H VenereBrazil2024-04-13Feiner Bros UNQUALIFIED4Bernardo Dominic
1034Leon D VenereItaly2024-04-14Feltz Printing Service NEW73Stephen Shaw
1035Aika T ChuiFrance2024-04-18Morlong Associates PROPOSAL38Bernardo Dominic
1036Misaki W KuskoUnited Kingdom2024-04-14Feltz Printing Service RENEWAL76Anna Fali
1037Francesco W OstroskyUnited Kingdom2024-03-31Truhlar And Truhlar Attys UNQUALIFIED93Stephen Shaw
1038Jeanfrancois Q FlosiFrance2024-04-04Feiner Bros PROPOSAL89Anna Fali
1039Mayumi C TollnerIndia2024-04-03Chanay, Jeffrey A Esq NEW26Elwin Sharvill
1040Isabel O FigeroaIndia2024-04-15Commercial Press RENEWAL26Onyama Limba
1041Cody Y SaylorsJapan2024-04-12Chapman, Ross E Esq PROPOSAL98Amy Elsner
1042James P PaprockiJapan2024-04-21Truhlar And Truhlar Attys NEGOTIATION47Anna Fali
1043Murillo V DilliardItaly2024-04-09King, Christopher A Esq RENEWAL27Asiya Javayant
1044Misaki L SlusarskiFrance2024-04-19Dorl, James J Esq PROPOSAL25Ivan Magalhaes
1045Aruna C RimFrance2024-04-14Chemel, James L Cpa RENEWAL92Ivan Magalhaes
1046Leja Z KolmetzCanada2024-03-28Chanay, Jeffrey A Esq PROPOSAL56Elwin Sharvill
1047Chavez A SaylorsBrazil2024-04-20Chapman, Ross E Esq UNQUALIFIED51Elwin Sharvill
1048Clifford B GillianCanada2024-04-06Chapman, Ross E Esq NEW21Bernardo Dominic
1049Misaki I AmigonBrazil2024-03-30Commercial Press PROPOSAL86Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin U CaudySpainIvan Magalhaes QUALIFIED
Emily S GarufiJapanElwin Sharvill UNQUALIFIED
Ivar E CaldareraRussiaAnna Fali NEW
James T MaletGermanyXuxue Feng QUALIFIED
Jefferson H VenereJapanAnna Fali NEW
Kaitlin G NickaFranceStephen Shaw PROPOSAL
Leon F DilliardRussiaAsiya Javayant QUALIFIED
Juan M CaudyAustraliaAmy Elsner PROPOSAL
Cody U ChuiCanadaElwin Sharvill NEW
Arvin S FerenczFranceBernardo Dominic RENEWAL
Aruna Q TollnerArgentinaStephen Shaw NEGOTIATION
Jeanfrancois U FerenczSpainElwin Sharvill RENEWAL
Jeanfrancois R DilliardFranceXuxue Feng QUALIFIED
James D DoeCanadaStephen Shaw NEW
Murillo T FollerUnited KingdomOnyama Limba NEW
Munro J BriddickJapanBernardo Dominic RENEWAL
Salvatore F IturbideGermanyBernardo Dominic RENEWAL
Jeanfrancois Q SergiBrazilAmy Elsner QUALIFIED
Chavez B FollerArgentinaAmy Elsner NEW
Rodrigues P BriddickSpainAsiya Javayant NEW
Jennifer R CaudyGermanyXuxue Feng NEW
Julie H DilliardFranceStephen Shaw NEGOTIATION
Misaki S PoquetteBrazilAmy Elsner NEGOTIATION
Mujtaba T KolmetzArgentinaBernardo Dominic UNQUALIFIED
Misaki Q GillianBrazilOnyama Limba RENEWAL
Deepesh C InouyeIndiaOnyama Limba NEW
Nicolas X InouyeGermanyAnna Fali PROPOSAL
Sinclair J MarrierBrazilAnna Fali RENEWAL
Emily N InouyeSpainIvan Magalhaes RENEWAL
Ivar C SergiBrazilBernardo Dominic NEGOTIATION
Antonio V CaldareraUnited KingdomAsiya Javayant QUALIFIED
Kadeem V GlickItalyXuxue Feng NEW
Arvin Y MacleadRussiaBernardo Dominic NEGOTIATION
Johnson F PoquetteFranceStephen Shaw QUALIFIED
Chavez U MarrierIndiaAnna Fali UNQUALIFIED
Leja F SchemmerIndiaOnyama Limba RENEWAL
Morrow V MaletIndiaIoni Bowcher UNQUALIFIED
Jefferson Q KolmetzRussiaAnna Fali UNQUALIFIED
Alejandro F StockhamUnited KingdomIvan Magalhaes RENEWAL
Mujtaba Q PoquetteAustraliaAmy Elsner QUALIFIED
Faith U FigeroaJapanBernardo Dominic PROPOSAL
Kadeem E VenereAustraliaXuxue Feng PROPOSAL
Emily E GarufiFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois M SlusarskiArgentinaBernardo Dominic PROPOSAL
Darci J FerenczIndiaElwin Sharvill NEGOTIATION
Mayumi T DilliardAustraliaAmy Elsner NEW
Jeanfrancois D WhobreyIndiaIoni Bowcher PROPOSAL
Cody J WhobreyCanadaAmy Elsner NEW
Adams C AlbaresArgentinaIoni Bowcher NEGOTIATION
Claire A SchemmerAustraliaIoni Bowcher QUALIFIED
Frozen Columns
Name
Jefferson H Inouye
Greenwood I Sergi
Wickens O Tollner
Jones Y Waycott
Aditya M Bolognia
Nicolas V Saylors
Leja K Gaucho
Adams G Campain
Adams E Kusko
Deepesh O Wieser
Kadeem F Morasca
Jennifer F Flosi
Clifford B Chui
Aika H Tollner
Juan C Ruta
Stacey J Inouye
Ivar O Shinko
Jefferson V Schemmer
Tony W Waycott
Jones G Shinko
Juan L Slusarski
Costa D Amigon
Kaitlin C Amigon
Wickens G Malet
Munro H Amigon
Adams U Bolognia
Adams G Rulapaugh
Ashley N Maclead
Leon A Kolmetz
Ashley C Saylors
Aditya F Wieser
Costa Q Chui
David X Saylors
Maria L Oldroyd
Maria J Foller
Emily X Darakjy
Misaki E Nestle
Sinclair V Waycott
Ivar I Marrier
Kadeem A Maclead
Maria A Glick
Adams E Flosi
Jeanfrancois J Maclead
Stacey N Inouye
Costa S Stenseth
Silvio D Kolmetz
Juan U Maclead
Juan H Campain
Smith I Sergi
Kadeem F Glick
IdCountryDate
1000Argentina2024-04-01
1001France2024-04-19
1002United Kingdom2024-04-21
1003Canada2024-04-15
1004France2024-03-30
1005Spain2024-04-18
1006United Kingdom2024-04-18
1007India2024-04-15
1008United Kingdom2024-04-21
1009France2024-04-06
1010Russia2024-04-25
1011France2024-04-03
1012Brazil2024-04-16
1013Brazil2024-04-13
1014Russia2024-04-07
1015Australia2024-04-11
1016Brazil2024-03-28
1017Brazil2024-04-15
1018Japan2024-04-23
1019India2024-04-16
1020Germany2024-04-18
1021Canada2024-04-18
1022Spain2024-03-28
1023France2024-04-14
1024India2024-04-23
1025Germany2024-04-23
1026United Kingdom2024-04-05
1027Argentina2024-04-14
1028Canada2024-04-13
1029Russia2024-04-06
1030Argentina2024-04-02
1031Russia2024-03-30
1032Brazil2024-04-05
1033Italy2024-04-10
1034Argentina2024-04-03
1035United Kingdom2024-04-25
1036United Kingdom2024-04-05
1037Brazil2024-04-07
1038United Kingdom2024-04-13
1039Australia2024-04-03
1040Brazil2024-04-21
1041Spain2024-04-25
1042France2024-04-14
1043Russia2024-04-13
1044India2024-04-14
1045Japan2024-04-17
1046Australia2024-04-07
1047Australia2024-04-13
1048Japan2024-04-01
1049Italy2024-04-08

On-Demand Data

NameIdCountryDate
Nicolas T Inouye1000India2024-04-11
Kadeem I Glick1001Brazil2024-04-16
Clifford G Tollner1002Russia2024-04-04
Stacey I Malet1003Japan2024-04-12
Morrow N Nestle1004Italy2024-04-13
Chavez X Tollner1005Canada2024-04-17
Maria E Maclead1006United Kingdom2024-04-11
Mayumi A Rim1007Australia2024-04-16
Stacey I Kusko1008Germany2024-04-17
Murillo H Glick1009Spain2024-03-30
Chavez X Nicka1010France2024-04-22
Maisha C Briddick1011Japan2024-04-18
Deepesh R Gillian1012Argentina2024-03-27
Wickens I Ferencz1013Russia2024-03-28
Jeanfrancois W Flosi1014Brazil2024-03-31
Munro O Chui1015Canada2024-04-20
Francesco M Shinko1016Japan2024-03-27
Izzy Q Dilliard1017Germany2024-04-24
Murillo Y Figeroa1018Brazil2024-04-23
Sinclair F Stenseth1019Argentina2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams M SergiAustraliaIvan Magalhaes NEW
Munro M MacleadArgentinaXuxue Feng UNQUALIFIED
Faith X StensethBrazilOnyama Limba QUALIFIED
Silvio P CaldareraRussiaAsiya Javayant QUALIFIED
David W IturbideItalyElwin Sharvill PROPOSAL
Mujtaba Y SaylorsFranceBernardo Dominic NEW
Aditya S OldroydIndiaIoni Bowcher RENEWAL
Greenwood Y WaycottItalyAmy Elsner PROPOSAL
Clifford Q DoeIndiaBernardo Dominic RENEWAL
Chavez T PaprockiFranceAsiya Javayant QUALIFIED
Kaitlin K AlbaresGermanyStephen Shaw NEW
Arvin I FollerArgentinaIvan Magalhaes QUALIFIED
Clifford R SlusarskiUnited KingdomIoni Bowcher RENEWAL
Faith V NestleFranceIoni Bowcher NEGOTIATION
Izzy V CampainAustraliaAnna Fali PROPOSAL
Claire T GarufiBrazilAnna Fali UNQUALIFIED
Maria O SchemmerGermanyXuxue Feng UNQUALIFIED
Tony D StockhamJapanIoni Bowcher PROPOSAL
Leon Z SlusarskiBrazilAnna Fali QUALIFIED
Francesco B StockhamSpainOnyama Limba NEW
Aditya T BowleySpainOnyama Limba UNQUALIFIED
Aruna X MaletGermanyIvan Magalhaes PROPOSAL
Adams X SlusarskiArgentinaElwin Sharvill UNQUALIFIED
Leja C BriddickAustraliaIvan Magalhaes QUALIFIED
Leja Z BowleyCanadaOnyama Limba QUALIFIED
David T NickaSpainAmy Elsner PROPOSAL
Kaitlin N NickaIndiaOnyama Limba UNQUALIFIED
Morrow V WieserIndiaIoni Bowcher NEW
Aika H StensethUnited KingdomAmy Elsner NEGOTIATION
Silvio R SaylorsIndiaAsiya Javayant NEGOTIATION
Leja T AmigonArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois S SlusarskiCanadaElwin Sharvill NEGOTIATION
Kadeem O BowleyRussiaXuxue Feng PROPOSAL
Jones S CaudyArgentinaOnyama Limba NEW
Alejandro Y BologniaSpainAnna Fali QUALIFIED
Alejandro H GauchoRussiaElwin Sharvill UNQUALIFIED
Misaki L SergiUnited KingdomAsiya Javayant NEGOTIATION
Darci N CampainJapanAmy Elsner RENEWAL
Stacey E GarufiAustraliaAsiya Javayant RENEWAL
Emily K FigeroaFranceIvan Magalhaes 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>