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
Jennifer T TollnerArgentinaElwin Sharvill NEW
Juan G AlbaresIndiaAmy Elsner NEGOTIATION
Deepesh V CaldareraFranceAnna Fali QUALIFIED
Tony G CaldareraIndiaBernardo Dominic NEGOTIATION
Aditya E FollerAustraliaStephen Shaw NEW
Deepesh S SlusarskiAustraliaAmy Elsner RENEWAL
Morrow G IturbideFranceIoni Bowcher QUALIFIED
Cody M VenereArgentinaBernardo Dominic UNQUALIFIED
Darci K RutaCanadaElwin Sharvill RENEWAL
Greenwood U MorascaArgentinaXuxue Feng NEW
Jefferson B RutaRussiaStephen Shaw QUALIFIED
Wickens D AmigonSpainAnna Fali RENEWAL
Antonio Z GauchoCanadaAsiya Javayant NEW
Adams R ChuiFranceBernardo Dominic RENEWAL
Isabel F BriddickUnited KingdomIvan Magalhaes RENEWAL
Costa Y MorascaIndiaXuxue Feng NEW
Kadeem J ChuiAustraliaOnyama Limba PROPOSAL
Rodrigues N RimFranceXuxue Feng UNQUALIFIED
Chavez V WieserGermanyXuxue Feng UNQUALIFIED
Darci V DarakjyIndiaBernardo Dominic PROPOSAL
Jefferson K WhobreyItalyXuxue Feng NEW
Sinclair K TollnerSpainOnyama Limba RENEWAL
Alejandro H CaudyCanadaStephen Shaw RENEWAL
Mujtaba L RoysterArgentinaIvan Magalhaes PROPOSAL
Ashley B MorascaRussiaAmy Elsner UNQUALIFIED
Ricardo B NestleBrazilIvan Magalhaes NEW
Aika L PerinJapanStephen Shaw PROPOSAL
Izzy N CaldareraItalyAsiya Javayant RENEWAL
Octavia H DarakjyAustraliaAnna Fali RENEWAL
Mujtaba G VocelkaArgentinaIvan Magalhaes RENEWAL
Smith O VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Jones G VenereArgentinaAnna Fali RENEWAL
Sinclair I SaylorsGermanyAmy Elsner QUALIFIED
Wickens W IturbideJapanIoni Bowcher UNQUALIFIED
Ivar F PoquetteBrazilElwin Sharvill UNQUALIFIED
Faith W CaudyArgentinaBernardo Dominic NEW
Darci I MorascaFranceAnna Fali RENEWAL
Alejandro V FigeroaArgentinaAsiya Javayant PROPOSAL
Smith I DilliardBrazilOnyama Limba UNQUALIFIED
Adams G CaudyGermanyElwin Sharvill NEW
Nicolas K RimRussiaStephen Shaw RENEWAL
David P WaycottJapanAsiya Javayant PROPOSAL
Smith V MaletArgentinaElwin Sharvill PROPOSAL
Ashley O ShinkoItalyElwin Sharvill NEGOTIATION
Misaki W SaylorsGermanyStephen Shaw UNQUALIFIED
Rodrigues G TollnerAustraliaAnna Fali QUALIFIED
Claire Z MacleadCanadaStephen Shaw PROPOSAL
Deepesh Y KuskoFranceElwin Sharvill RENEWAL
Ricardo J TollnerGermanyOnyama Limba RENEWAL
Arvin Q AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas R RoysterRussiaIvan Magalhaes RENEWAL
Adams A GauchoRussiaAsiya Javayant PROPOSAL
Munro M ShinkoJapanAsiya Javayant UNQUALIFIED
Chavez P GillianItalyOnyama Limba QUALIFIED
Clifford T SergiJapanAnna Fali PROPOSAL
Greenwood Q BowleyItalyXuxue Feng NEGOTIATION
Cody V BowleyRussiaIvan Magalhaes NEGOTIATION
Cody F DilliardCanadaStephen Shaw UNQUALIFIED
Stacey L BologniaSpainAnna Fali NEW
Ricardo I VocelkaGermanyStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika E BriddickBrazil2024-04-07Truhlar And Truhlar Attys UNQUALIFIED90Anna Fali
1001Jeanfrancois A RimRussia2024-04-01Truhlar And Truhlar Attys NEGOTIATION3Onyama Limba
1002Clifford Z CaudyIndia2024-04-02Buckley Miller Wright NEW42Ivan Magalhaes
1003Ivar E CaldareraFrance2024-03-30Printing Dimensions NEW76Asiya Javayant
1004Aruna N AmigonIndia2024-03-28Truhlar And Truhlar Attys QUALIFIED12Anna Fali
1005Ivar B BologniaItaly2024-03-30King, Christopher A Esq NEW71Elwin Sharvill
1006Smith H MaletJapan2024-03-31Printing Dimensions NEGOTIATION83Amy Elsner
1007Julie L FigeroaArgentina2024-03-29Chapman, Ross E Esq UNQUALIFIED2Bernardo Dominic
1008Sinclair L MarrierBrazil2024-04-17Printing Dimensions NEGOTIATION92Xuxue Feng
1009Aditya I GarufiBrazil2024-04-09Feiner Bros UNQUALIFIED44Onyama Limba
1010Maria Q MacleadBrazil2024-04-03Morlong Associates UNQUALIFIED7Anna Fali
1011Ashley L KolmetzIndia2024-04-16Chanay, Jeffrey A Esq RENEWAL0Anna Fali
1012Rodrigues W FigeroaIndia2024-04-05Chapman, Ross E Esq NEGOTIATION55Onyama Limba
1013Faith Z ButtSpain2024-03-28Chemel, James L Cpa RENEWAL52Bernardo Dominic
1014Jefferson E WaycottCanada2024-04-21Chapman, Ross E Esq QUALIFIED88Stephen Shaw
1015Greenwood C NestleUnited Kingdom2024-04-08Morlong Associates NEW7Onyama Limba
1016Emily N MacleadCanada2024-04-19Chanay, Jeffrey A Esq QUALIFIED2Ioni Bowcher
1017Aditya A BologniaArgentina2024-04-13Benton, John B Jr PROPOSAL88Ivan Magalhaes
1018Arvin M GlickCanada2024-04-05Morlong Associates QUALIFIED0Bernardo Dominic
1019Juan D StensethUnited Kingdom2024-04-23Chapman, Ross E Esq PROPOSAL90Xuxue Feng
1020Rodrigues V KolmetzCanada2024-04-23King, Christopher A Esq QUALIFIED32Asiya Javayant
1021Julie M GarufiBrazil2024-04-05Rousseaux, Michael Esq QUALIFIED80Elwin Sharvill
1022Faith Z VocelkaUnited Kingdom2024-04-11Commercial Press UNQUALIFIED16Amy Elsner
1023Aruna G VenereBrazil2024-04-20Morlong Associates NEGOTIATION69Asiya Javayant
1024Clifford L KolmetzCanada2024-04-21King, Christopher A Esq NEGOTIATION15Bernardo Dominic
1025Ricardo N AmigonFrance2024-04-20Chanay, Jeffrey A Esq RENEWAL54Elwin Sharvill
1026Alejandro U FerenczSpain2024-04-12Dorl, James J Esq PROPOSAL16Bernardo Dominic
1027Kaitlin Y AmigonItaly2024-04-10Feltz Printing Service RENEWAL97Asiya Javayant
1028Aika B ChuiIndia2024-04-01Rangoni Of Florence NEGOTIATION39Elwin Sharvill
1029Antonio R IturbideIndia2024-04-02Benton, John B Jr QUALIFIED99Anna Fali
1030Jennifer S DilliardBrazil2024-04-18Rousseaux, Michael Esq QUALIFIED96Stephen Shaw
1031Stacey M NickaSpain2024-04-02Truhlar And Truhlar Attys UNQUALIFIED30Ioni Bowcher
1032Deepesh Q WaycottJapan2024-04-16Truhlar And Truhlar Attys QUALIFIED76Anna Fali
1033Faith P NickaArgentina2024-04-10Benton, John B Jr NEGOTIATION50Onyama Limba
1034Leja B SaylorsArgentina2024-04-20Chanay, Jeffrey A Esq RENEWAL14Elwin Sharvill
1035Isabel O InouyeCanada2024-04-17Printing Dimensions NEW1Asiya Javayant
1036Ricardo J NickaSpain2024-04-16Buckley Miller Wright QUALIFIED65Ivan Magalhaes
1037Darci D GarufiAustralia2024-04-18Rousseaux, Michael Esq PROPOSAL81Stephen Shaw
1038Antonio G CaldareraFrance2024-04-12Printing Dimensions RENEWAL7Xuxue Feng
1039Jeanfrancois V VocelkaBrazil2024-04-24Morlong Associates NEGOTIATION35Elwin Sharvill
1040Izzy S BologniaFrance2024-04-16Buckley Miller Wright NEGOTIATION71Elwin Sharvill
1041Maria A KolmetzAustralia2024-04-09Buckley Miller Wright UNQUALIFIED23Bernardo Dominic
1042David K WieserBrazil2024-04-22Printing Dimensions NEW57Onyama Limba
1043Aika I StockhamAustralia2024-04-10Rousseaux, Michael Esq PROPOSAL98Ivan Magalhaes
1044Mayumi P DarakjySpain2024-03-31Benton, John B Jr RENEWAL84Anna Fali
1045Darci U FigeroaIndia2024-04-20Feiner Bros NEGOTIATION64Stephen Shaw
1046Nicolas U SlusarskiCanada2024-03-29Benton, John B Jr NEGOTIATION24Stephen Shaw
1047Murillo R PerinCanada2024-04-23Printing Dimensions UNQUALIFIED92Elwin Sharvill
1048Izzy C PerinIndia2024-03-30Rousseaux, Michael Esq RENEWAL24Amy Elsner
1049Antonio F BowleySpain2024-04-03Chapman, Ross E Esq RENEWAL50Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow X DilliardCanadaIoni Bowcher NEGOTIATION
Izzy T RoysterIndiaXuxue Feng RENEWAL
Stacey W SaylorsAustraliaAmy Elsner QUALIFIED
Greenwood C GauchoItalyAmy Elsner PROPOSAL
Wickens I GlickCanadaOnyama Limba NEW
Adams F CampainJapanAsiya Javayant NEW
Smith L ShinkoIndiaAsiya Javayant RENEWAL
Wickens Y OstroskyFranceXuxue Feng NEGOTIATION
Jeanfrancois I KolmetzCanadaXuxue Feng NEGOTIATION
Costa X WhobreyAustraliaIoni Bowcher NEW
Izzy P MaletAustraliaElwin Sharvill QUALIFIED
Leja E NickaJapanAsiya Javayant RENEWAL
Francesco T IturbideAustraliaAsiya Javayant PROPOSAL
Munro D FollerAustraliaOnyama Limba NEW
Aditya V GauchoUnited KingdomOnyama Limba RENEWAL
Isabel X FerenczBrazilAsiya Javayant PROPOSAL
David K CampainFranceIoni Bowcher UNQUALIFIED
Johnson Z FollerGermanyOnyama Limba RENEWAL
Aditya T TollnerItalyIvan Magalhaes QUALIFIED
Faith L NickaBrazilAmy Elsner NEW
Julie I StockhamArgentinaXuxue Feng RENEWAL
Stacey Y TollnerItalyIvan Magalhaes QUALIFIED
Kadeem R KolmetzSpainAnna Fali UNQUALIFIED
Claire Z VenereGermanyStephen Shaw NEGOTIATION
Antonio E PerinCanadaStephen Shaw RENEWAL
Jeanfrancois N SlusarskiBrazilAsiya Javayant UNQUALIFIED
Nicolas B FollerCanadaBernardo Dominic NEGOTIATION
James S WhobreySpainStephen Shaw PROPOSAL
Leon T MarrierFranceElwin Sharvill NEGOTIATION
James E KuskoFranceIvan Magalhaes RENEWAL
Salvatore N KolmetzCanadaAmy Elsner PROPOSAL
Isabel J ShinkoRussiaBernardo Dominic NEGOTIATION
Arvin D PerinBrazilBernardo Dominic UNQUALIFIED
Ivar I DoeRussiaIoni Bowcher NEGOTIATION
Juan V DarakjyBrazilOnyama Limba UNQUALIFIED
Maria L MaletRussiaAnna Fali UNQUALIFIED
Chavez Q RulapaughIndiaXuxue Feng PROPOSAL
Silvio W CaldareraBrazilAsiya Javayant QUALIFIED
Adams V NickaGermanyXuxue Feng RENEWAL
Sinclair C IturbideJapanXuxue Feng RENEWAL
Julie I FollerJapanAsiya Javayant QUALIFIED
Jones H PaprockiFranceAsiya Javayant QUALIFIED
Sinclair R PerinJapanXuxue Feng QUALIFIED
Arvin D PaprockiSpainOnyama Limba UNQUALIFIED
Wickens O OldroydCanadaIoni Bowcher RENEWAL
Clifford V MorascaRussiaElwin Sharvill PROPOSAL
Costa N GlickAustraliaXuxue Feng QUALIFIED
Stacey D RutaFranceIvan Magalhaes PROPOSAL
Sinclair B BowleySpainElwin Sharvill PROPOSAL
Kaitlin I KuskoUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Aika X Paprocki
Emily K Paprocki
Faith O Sergi
Francesco P Nicka
Faith C Flosi
Alejandro C Chui
Deepesh I Garufi
Aruna Q Doe
Julie X Stenseth
Ivar B Albares
Tony J Glick
Stacey E Wieser
Francesco J Inouye
Aruna J Rulapaugh
Aika H Wieser
Octavia B Royster
Aika F Butt
Smith D Whobrey
Silvio E Garufi
Ricardo D Kusko
Murillo F Tollner
Greenwood J Morasca
Johnson A Doe
Wickens Z Doe
Claire V Paprocki
Juan L Caudy
Darci P Vocelka
Emily D Royster
Kadeem R Morasca
Jeanfrancois Q Rim
Mujtaba U Darakjy
James S Wieser
David C Waycott
Claire R Saylors
Mayumi Z Marrier
Clifford W Sergi
Tony K Ferencz
Stacey B Flosi
Costa H Whobrey
Leja M Gillian
Mayumi T Butt
Munro I Chui
Kaitlin D Rulapaugh
Cody B Albares
Deepesh N Caldarera
Francesco J Marrier
Ricardo C Shinko
Aditya R Tollner
Darci T Vocelka
Isabel H Dilliard
IdCountryDate
1000Japan2024-04-11
1001Canada2024-04-15
1002France2024-03-28
1003Russia2024-04-12
1004France2024-04-07
1005Australia2024-04-03
1006Italy2024-04-21
1007Australia2024-04-15
1008Germany2024-04-15
1009Spain2024-04-15
1010Australia2024-03-31
1011India2024-04-23
1012Italy2024-04-09
1013India2024-03-30
1014Japan2024-04-08
1015India2024-04-03
1016United Kingdom2024-04-07
1017Russia2024-04-04
1018Canada2024-04-03
1019India2024-04-21
1020India2024-04-14
1021Italy2024-04-22
1022Spain2024-04-16
1023Japan2024-04-02
1024India2024-04-14
1025Spain2024-03-30
1026Argentina2024-04-13
1027Australia2024-04-09
1028Spain2024-04-02
1029Argentina2024-04-20
1030Australia2024-04-16
1031Russia2024-03-29
1032United Kingdom2024-04-08
1033United Kingdom2024-04-25
1034India2024-04-17
1035Brazil2024-04-21
1036Germany2024-03-28
1037Japan2024-04-15
1038Argentina2024-03-31
1039Australia2024-04-11
1040United Kingdom2024-04-08
1041Russia2024-04-05
1042Spain2024-04-09
1043Japan2024-04-17
1044Russia2024-04-09
1045India2024-04-21
1046Spain2024-03-29
1047Germany2024-04-25
1048India2024-04-24
1049United Kingdom2024-04-19

On-Demand Data

NameIdCountryDate
Ashley X Slusarski1000Germany2024-04-17
James L Malet1001Russia2024-03-31
Darci G Venere1002Germany2024-04-13
Leon U Venere1003France2024-03-29
Cody O Waycott1004India2024-04-13
Maisha J Kolmetz1005Russia2024-04-25
Greenwood R Oldroyd1006France2024-04-02
Alejandro I Foller1007Brazil2024-04-01
Jennifer K Albares1008Spain2024-04-08
Izzy A Whobrey1009Australia2024-04-05
Salvatore P Chui1010Italy2024-04-08
Cody K Rulapaugh1011Germany2024-04-22
David H Wieser1012United Kingdom2024-04-18
Maisha Q Darakjy1013France2024-04-23
Claire M Morasca1014France2024-04-05
Smith W Stockham1015United Kingdom2024-04-02
Adams G Poquette1016Russia2024-04-12
Octavia Y Slusarski1017Japan2024-04-10
Faith G Saylors1018France2024-04-18
Jennifer D Whobrey1019Italy2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore E NickaIndiaElwin Sharvill NEGOTIATION
Julie T WaycottGermanyIoni Bowcher RENEWAL
Antonio A InouyeArgentinaAnna Fali NEGOTIATION
Johnson F ButtBrazilAnna Fali RENEWAL
Rodrigues Y DilliardIndiaXuxue Feng RENEWAL
Alejandro Z VenereSpainAsiya Javayant PROPOSAL
Izzy G BowleyArgentinaXuxue Feng NEW
Costa V FollerFranceIvan Magalhaes PROPOSAL
Octavia Z PerinUnited KingdomIoni Bowcher RENEWAL
Arvin Y NestleBrazilStephen Shaw PROPOSAL
Leon U MarrierRussiaStephen Shaw QUALIFIED
Ivar N ChuiRussiaIoni Bowcher RENEWAL
Julie Z OldroydCanadaAsiya Javayant UNQUALIFIED
Clifford K WieserAustraliaAmy Elsner NEGOTIATION
Aruna U DoeUnited KingdomAmy Elsner QUALIFIED
Misaki S FlosiGermanyAnna Fali NEW
Aditya E PoquetteSpainAmy Elsner PROPOSAL
James L SaylorsAustraliaAmy Elsner PROPOSAL
Murillo O CaldareraGermanyOnyama Limba NEW
Juan V FlosiAustraliaAsiya Javayant PROPOSAL
Maria B WieserSpainXuxue Feng RENEWAL
Salvatore F WaycottJapanIvan Magalhaes NEW
Mayumi I StockhamArgentinaOnyama Limba UNQUALIFIED
Stacey U WhobreyGermanyOnyama Limba NEGOTIATION
Izzy M ShinkoGermanyOnyama Limba RENEWAL
Silvio H WaycottFranceAsiya Javayant UNQUALIFIED
Darci Q FlosiRussiaIvan Magalhaes UNQUALIFIED
Darci O PerinSpainOnyama Limba UNQUALIFIED
Claire J MacleadRussiaAsiya Javayant PROPOSAL
Julie C BologniaBrazilAsiya Javayant RENEWAL
Leon X InouyeRussiaAmy Elsner NEGOTIATION
Deepesh W PerinArgentinaStephen Shaw PROPOSAL
Maria R RulapaughRussiaAnna Fali RENEWAL
Kadeem Z FerenczFranceAnna Fali NEW
Aika A WieserIndiaAnna Fali NEW
Leon E GlickBrazilIoni Bowcher RENEWAL
Darci O VocelkaCanadaIvan Magalhaes UNQUALIFIED
Clifford G BowleyJapanAsiya Javayant QUALIFIED
Tony P TollnerSpainOnyama Limba UNQUALIFIED
Julie X WhobreyGermanyElwin Sharvill 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>