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
Adams T VocelkaRussiaIoni Bowcher UNQUALIFIED
Aditya P MorascaCanadaAsiya Javayant NEW
Ashley A TollnerSpainXuxue Feng UNQUALIFIED
Jennifer A InouyeRussiaXuxue Feng QUALIFIED
Stacey V AlbaresArgentinaAsiya Javayant NEW
Ivar T InouyeFranceAsiya Javayant RENEWAL
Antonio X RoysterFranceBernardo Dominic QUALIFIED
Darci X KuskoJapanIvan Magalhaes PROPOSAL
Ashley T SlusarskiGermanyXuxue Feng UNQUALIFIED
Alejandro W DarakjyAustraliaAnna Fali RENEWAL
Sinclair Z CampainItalyStephen Shaw NEGOTIATION
Mayumi F CaudyFranceStephen Shaw NEW
Aika Q RoysterItalyAmy Elsner UNQUALIFIED
Maisha U PoquetteFranceBernardo Dominic QUALIFIED
Jeanfrancois K SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Salvatore F FigeroaAustraliaStephen Shaw NEW
Johnson A StensethArgentinaXuxue Feng UNQUALIFIED
Murillo G PerinAustraliaBernardo Dominic NEGOTIATION
Stacey H ShinkoCanadaIoni Bowcher UNQUALIFIED
Arvin Z WieserJapanAsiya Javayant PROPOSAL
Adams U SergiJapanAsiya Javayant QUALIFIED
Rodrigues J SergiFranceXuxue Feng RENEWAL
Adams G ButtAustraliaStephen Shaw NEGOTIATION
Isabel S CampainJapanAsiya Javayant NEGOTIATION
Maria B PaprockiBrazilIoni Bowcher NEGOTIATION
Alejandro D CaldareraItalyIvan Magalhaes RENEWAL
Jennifer O MorascaBrazilElwin Sharvill NEW
Francesco L NickaAustraliaBernardo Dominic QUALIFIED
Alejandro R AlbaresAustraliaXuxue Feng UNQUALIFIED
Murillo G NickaJapanBernardo Dominic RENEWAL
Salvatore Y MaletArgentinaBernardo Dominic UNQUALIFIED
Greenwood K CaldareraAustraliaBernardo Dominic NEW
Cody O FigeroaUnited KingdomBernardo Dominic QUALIFIED
Nicolas N GarufiGermanyElwin Sharvill UNQUALIFIED
Julie I FerenczBrazilIoni Bowcher QUALIFIED
Kadeem W ChuiIndiaAnna Fali NEGOTIATION
Jeanfrancois C DoeUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois L ChuiCanadaXuxue Feng QUALIFIED
Ivar E VenereItalyBernardo Dominic RENEWAL
Tony Z DilliardRussiaIvan Magalhaes RENEWAL
Adams M ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Mujtaba D CaldareraIndiaStephen Shaw QUALIFIED
Smith X WieserUnited KingdomIoni Bowcher QUALIFIED
David P PoquetteUnited KingdomStephen Shaw PROPOSAL
Stacey U FigeroaJapanAnna Fali UNQUALIFIED
Ashley E GauchoArgentinaElwin Sharvill RENEWAL
Jefferson L WieserJapanIvan Magalhaes RENEWAL
Arvin W TollnerIndiaIoni Bowcher PROPOSAL
Murillo Y MarrierUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues E RulapaughBrazilAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Smith R RoysterSpainXuxue Feng NEW
Misaki S MacleadRussiaElwin Sharvill NEW
Antonio C RimGermanyAsiya Javayant NEGOTIATION
Arvin E ShinkoJapanAsiya Javayant PROPOSAL
Alejandro U NickaBrazilIoni Bowcher PROPOSAL
Smith A AlbaresCanadaOnyama Limba UNQUALIFIED
Murillo Y RoysterGermanyElwin Sharvill UNQUALIFIED
Clifford Q CampainArgentinaIoni Bowcher RENEWAL
Juan M MarrierFranceBernardo Dominic UNQUALIFIED
Juan X TollnerArgentinaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily P WaycottCanada2024-04-25King, Christopher A Esq RENEWAL88Xuxue Feng
1001Jennifer K ShinkoFrance2024-05-01Chemel, James L Cpa RENEWAL70Asiya Javayant
1002Silvio L ChuiAustralia2024-04-29Chemel, James L Cpa RENEWAL58Anna Fali
1003Silvio G SchemmerGermany2024-04-18Truhlar And Truhlar Attys QUALIFIED81Bernardo Dominic
1004Julie A GillianFrance2024-05-01Feltz Printing Service QUALIFIED44Xuxue Feng
1005Ashley S WaycottAustralia2024-04-09Printing Dimensions NEGOTIATION26Stephen Shaw
1006Mayumi I DoeUnited Kingdom2024-04-11Printing Dimensions NEW79Ioni Bowcher
1007Clifford N VenereJapan2024-04-19Truhlar And Truhlar Attys UNQUALIFIED29Asiya Javayant
1008Morrow E NestleItaly2024-04-15Chemel, James L Cpa RENEWAL42Amy Elsner
1009Ashley V BologniaAustralia2024-04-21Truhlar And Truhlar Attys NEW31Onyama Limba
1010Munro J SlusarskiUnited Kingdom2024-04-22Chemel, James L Cpa NEW70Ioni Bowcher
1011Julie R NickaSpain2024-04-17Truhlar And Truhlar Attys NEW27Stephen Shaw
1012Smith E SaylorsFrance2024-04-18Chanay, Jeffrey A Esq NEW89Xuxue Feng
1013Emily E SchemmerSpain2024-04-29Benton, John B Jr PROPOSAL96Stephen Shaw
1014Julie T FerenczFrance2024-04-21Morlong Associates UNQUALIFIED48Anna Fali
1015Cody G MacleadAustralia2024-05-03Truhlar And Truhlar Attys NEGOTIATION41Onyama Limba
1016Costa Y BriddickRussia2024-04-20Feiner Bros NEW17Ioni Bowcher
1017Mayumi V BowleyBrazil2024-05-05Chemel, James L Cpa NEW19Anna Fali
1018Jennifer C WaycottFrance2024-04-15Dorl, James J Esq NEGOTIATION60Elwin Sharvill
1019Ivar Q NickaBrazil2024-04-27Printing Dimensions RENEWAL67Bernardo Dominic
1020Antonio A ChuiJapan2024-05-06Truhlar And Truhlar Attys NEW67Ioni Bowcher
1021David G CaudyUnited Kingdom2024-04-13King, Christopher A Esq NEGOTIATION36Elwin Sharvill
1022Sinclair H MorascaRussia2024-04-14Buckley Miller Wright QUALIFIED11Onyama Limba
1023Johnson Z GauchoSpain2024-05-04Dorl, James J Esq NEW48Asiya Javayant
1024David V StockhamSpain2024-04-29Rousseaux, Michael Esq NEW89Anna Fali
1025Mujtaba I FigeroaBrazil2024-05-05Printing Dimensions NEGOTIATION75Elwin Sharvill
1026Aditya F SlusarskiBrazil2024-04-10Printing Dimensions RENEWAL55Asiya Javayant
1027Ricardo C RimIndia2024-04-20Chanay, Jeffrey A Esq QUALIFIED90Bernardo Dominic
1028Ashley O MaletGermany2024-04-10Printing Dimensions NEW74Elwin Sharvill
1029David N SlusarskiArgentina2024-05-02Benton, John B Jr NEW73Elwin Sharvill
1030Jefferson T WhobreyCanada2024-04-16Feiner Bros PROPOSAL37Asiya Javayant
1031Tony U DarakjyGermany2024-05-05Commercial Press UNQUALIFIED65Asiya Javayant
1032Jefferson E CaldareraAustralia2024-04-18Feltz Printing Service NEGOTIATION19Ivan Magalhaes
1033Smith F InouyeBrazil2024-04-25Truhlar And Truhlar Attys NEGOTIATION4Asiya Javayant
1034Isabel L WaycottFrance2024-04-26Feiner Bros QUALIFIED56Amy Elsner
1035Alejandro J BowleyUnited Kingdom2024-04-21Buckley Miller Wright PROPOSAL11Elwin Sharvill
1036Clifford P AlbaresUnited Kingdom2024-05-07Buckley Miller Wright RENEWAL57Ioni Bowcher
1037Maria I KuskoRussia2024-05-07King, Christopher A Esq NEGOTIATION10Ivan Magalhaes
1038Morrow V AlbaresCanada2024-05-05King, Christopher A Esq NEW76Stephen Shaw
1039Juan V GarufiArgentina2024-04-22Rangoni Of Florence QUALIFIED34Ivan Magalhaes
1040Leja Z FerenczGermany2024-05-03Rousseaux, Michael Esq RENEWAL44Asiya Javayant
1041Chavez K MaletJapan2024-04-18Printing Dimensions NEW82Asiya Javayant
1042Izzy W SchemmerSpain2024-04-20Morlong Associates NEW28Asiya Javayant
1043Maisha L CaldareraIndia2024-05-03Chemel, James L Cpa RENEWAL67Asiya Javayant
1044Adams U CampainUnited Kingdom2024-04-29Chapman, Ross E Esq PROPOSAL47Ioni Bowcher
1045Emily M FollerFrance2024-04-23Dorl, James J Esq PROPOSAL16Ioni Bowcher
1046Chavez W AmigonFrance2024-04-23Chemel, James L Cpa RENEWAL95Amy Elsner
1047Adams N FerenczFrance2024-04-29Morlong Associates QUALIFIED32Bernardo Dominic
1048Mayumi Y StensethBrazil2024-04-28Commercial Press NEW22Onyama Limba
1049Cody D GarufiRussia2024-05-06Buckley Miller Wright RENEWAL86Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois Y MorascaAustraliaAnna Fali RENEWAL
Leon Q ChuiSpainStephen Shaw NEGOTIATION
Aika E BriddickGermanyAnna Fali NEGOTIATION
Rodrigues Z ShinkoIndiaAmy Elsner PROPOSAL
Ricardo R IturbideUnited KingdomAmy Elsner RENEWAL
Sinclair I DoeCanadaElwin Sharvill QUALIFIED
Costa X ShinkoRussiaIoni Bowcher NEW
Ashley W WieserArgentinaAmy Elsner PROPOSAL
Darci F NickaBrazilOnyama Limba RENEWAL
David W MacleadArgentinaAsiya Javayant QUALIFIED
Greenwood O GauchoCanadaBernardo Dominic PROPOSAL
Ivar H CaudyBrazilAmy Elsner PROPOSAL
Emily D KolmetzRussiaIvan Magalhaes RENEWAL
Jones H MarrierCanadaAmy Elsner UNQUALIFIED
Salvatore U KuskoAustraliaIoni Bowcher RENEWAL
Costa R ShinkoBrazilXuxue Feng UNQUALIFIED
Misaki C ButtUnited KingdomAmy Elsner PROPOSAL
Maisha M CampainFranceXuxue Feng UNQUALIFIED
Rodrigues O OldroydJapanAnna Fali RENEWAL
David V NestleRussiaBernardo Dominic PROPOSAL
David D CaldareraArgentinaIvan Magalhaes QUALIFIED
Julie F GlickJapanXuxue Feng UNQUALIFIED
Maisha H OldroydIndiaBernardo Dominic UNQUALIFIED
Aruna I VenereItalyAsiya Javayant NEW
Ashley O MaletAustraliaElwin Sharvill UNQUALIFIED
Salvatore S StockhamAustraliaOnyama Limba NEGOTIATION
Aditya Z PerinFranceElwin Sharvill NEW
Wickens N BologniaUnited KingdomAsiya Javayant QUALIFIED
Clifford M TollnerSpainIoni Bowcher NEW
Francesco C FlosiIndiaAmy Elsner RENEWAL
Cody F CampainRussiaOnyama Limba RENEWAL
Smith M GillianItalyAmy Elsner QUALIFIED
Jeanfrancois S SchemmerGermanyStephen Shaw PROPOSAL
Rodrigues E RoysterBrazilStephen Shaw UNQUALIFIED
Johnson Y ChuiRussiaAmy Elsner NEGOTIATION
Jefferson Q BowleyItalyXuxue Feng NEW
Ashley N ChuiFranceIvan Magalhaes NEGOTIATION
Jones R FlosiRussiaElwin Sharvill UNQUALIFIED
Smith E WhobreyRussiaAnna Fali NEW
Leon R GlickGermanyBernardo Dominic UNQUALIFIED
Leja W VenereBrazilBernardo Dominic QUALIFIED
Alejandro Y FigeroaGermanyIoni Bowcher PROPOSAL
Jefferson I MaletUnited KingdomStephen Shaw NEGOTIATION
Deepesh Z RulapaughGermanyOnyama Limba UNQUALIFIED
Sinclair S StensethFranceXuxue Feng QUALIFIED
Morrow X IturbideSpainAnna Fali NEGOTIATION
Adams T TollnerJapanAmy Elsner QUALIFIED
David O ChuiItalyStephen Shaw NEGOTIATION
Darci G DilliardGermanyBernardo Dominic NEGOTIATION
Costa E RulapaughIndiaStephen Shaw NEW
Frozen Columns
Name
Chavez X Malet
Jennifer N Garufi
Chavez T Bowley
Munro V Tollner
Antonio B Saylors
Jefferson T Amigon
Cody C Malet
Jefferson S Ruta
Greenwood Z Stockham
David M Whobrey
Clifford O Morasca
Misaki W Shinko
Sinclair A Albares
James T Chui
Aika K Venere
Smith O Stockham
Aika J Royster
Mayumi D Gillian
Adams N Dilliard
Nicolas N Oldroyd
Aika S Nestle
Kaitlin G Whobrey
Aditya V Marrier
Antonio K Vocelka
Octavia D Maclead
Leon I Chui
Alejandro M Kusko
Ricardo O Bolognia
Adams W Whobrey
Chavez E Caudy
Kaitlin N Inouye
Misaki N Waycott
Morrow D Foller
Deepesh L Caudy
Greenwood V Figeroa
Murillo S Caudy
Tony C Stockham
Ashley W Waycott
Jennifer K Shinko
Claire G Gillian
Tony F Inouye
Aika A Malet
Leja X Caldarera
Ivar Y Inouye
Isabel J Glick
Murillo T Garufi
Jeanfrancois F Tollner
Francesco A Stockham
Clifford W Caudy
Arvin Z Bolognia
IdCountryDate
1000Australia2024-04-11
1001Italy2024-04-11
1002Spain2024-04-19
1003Brazil2024-04-21
1004Japan2024-05-04
1005France2024-05-05
1006Australia2024-04-20
1007Brazil2024-05-03
1008Italy2024-05-06
1009Russia2024-04-09
1010United Kingdom2024-05-05
1011Brazil2024-04-14
1012Australia2024-04-14
1013United Kingdom2024-04-09
1014Brazil2024-04-24
1015Brazil2024-04-18
1016Spain2024-04-19
1017Japan2024-04-19
1018Brazil2024-04-23
1019Japan2024-05-03
1020Japan2024-04-17
1021Australia2024-04-29
1022Russia2024-04-18
1023India2024-04-11
1024Argentina2024-04-24
1025Australia2024-05-01
1026Russia2024-05-03
1027Italy2024-04-19
1028Japan2024-04-30
1029Japan2024-04-24
1030France2024-04-16
1031Italy2024-04-25
1032Argentina2024-04-26
1033Russia2024-05-03
1034United Kingdom2024-04-23
1035Russia2024-05-06
1036Russia2024-04-16
1037Brazil2024-05-08
1038Brazil2024-04-12
1039India2024-04-20
1040Germany2024-05-06
1041Argentina2024-04-24
1042Japan2024-04-12
1043France2024-04-20
1044Canada2024-04-21
1045Spain2024-04-13
1046Russia2024-05-06
1047United Kingdom2024-05-02
1048India2024-04-22
1049Germany2024-05-02

On-Demand Data

NameIdCountryDate
James X Perin1000United Kingdom2024-04-17
Kaitlin A Sergi1001Germany2024-04-26
Mujtaba L Iturbide1002Argentina2024-05-07
Aruna G Inouye1003Russia2024-04-20
Francesco T Bowley1004Brazil2024-04-28
Isabel T Dilliard1005Russia2024-05-07
Murillo M Inouye1006Spain2024-04-11
Claire J Nicka1007Russia2024-04-17
Wickens F Venere1008United Kingdom2024-04-25
Adams Y Morasca1009Spain2024-04-26
Smith U Kusko1010Argentina2024-04-13
Ricardo O Wieser1011Italy2024-04-30
Aika G Sergi1012Argentina2024-05-03
Arvin F Foller1013Spain2024-04-22
Jeanfrancois B Flosi1014India2024-04-09
Jeanfrancois P Inouye1015Australia2024-04-16
Morrow J Waycott1016Germany2024-04-12
Nicolas N Briddick1017Canada2024-04-30
Francesco P Albares1018India2024-04-27
Misaki V Rim1019Canada2024-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem W BowleyBrazilOnyama Limba PROPOSAL
Smith R InouyeAustraliaIvan Magalhaes UNQUALIFIED
Kadeem Y WhobreyUnited KingdomXuxue Feng QUALIFIED
Kaitlin D DoeFranceElwin Sharvill QUALIFIED
Adams P BriddickRussiaAnna Fali UNQUALIFIED
Morrow Q AmigonFranceXuxue Feng NEW
Emily Z GauchoIndiaBernardo Dominic NEGOTIATION
Aruna S RutaRussiaAnna Fali NEW
Munro W DoeIndiaAsiya Javayant UNQUALIFIED
Leja P CampainGermanyBernardo Dominic QUALIFIED
Ricardo G MaletCanadaAsiya Javayant PROPOSAL
Kadeem W SergiIndiaIoni Bowcher PROPOSAL
Jefferson E ShinkoSpainIvan Magalhaes RENEWAL
Chavez Q WhobreyItalyBernardo Dominic PROPOSAL
David V ChuiJapanAmy Elsner PROPOSAL
Isabel S KuskoAustraliaElwin Sharvill QUALIFIED
Aditya S RimUnited KingdomIoni Bowcher NEW
Antonio N NickaAustraliaBernardo Dominic NEGOTIATION
James K PoquetteGermanyBernardo Dominic QUALIFIED
Murillo B BriddickItalyBernardo Dominic RENEWAL
Juan R OldroydCanadaAmy Elsner NEGOTIATION
Kadeem B SaylorsAustraliaAnna Fali RENEWAL
David M FerenczUnited KingdomBernardo Dominic NEW
Alejandro X MacleadSpainStephen Shaw PROPOSAL
Darci A FlosiSpainAmy Elsner NEGOTIATION
Aditya Q CaudyFranceStephen Shaw QUALIFIED
Clifford G ChuiCanadaAnna Fali NEGOTIATION
Wickens T OstroskyFranceStephen Shaw PROPOSAL
Wickens M StockhamSpainBernardo Dominic QUALIFIED
Ricardo A FlosiFranceStephen Shaw PROPOSAL
Leja F SlusarskiJapanIvan Magalhaes PROPOSAL
Maisha V WaycottBrazilIvan Magalhaes QUALIFIED
Ivar T WhobreyJapanXuxue Feng QUALIFIED
Aruna L RulapaughCanadaAmy Elsner NEW
Nicolas R DarakjyCanadaBernardo Dominic NEW
Tony A GauchoArgentinaIvan Magalhaes NEGOTIATION
Maria I ChuiIndiaOnyama Limba NEGOTIATION
James Q PerinAustraliaBernardo Dominic QUALIFIED
Claire B MaletSpainIvan Magalhaes RENEWAL
Francesco D MaletSpainOnyama Limba 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>