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
Juan Z WieserItalyElwin Sharvill NEW
Antonio R FigeroaJapanStephen Shaw NEW
Francesco F FigeroaGermanyXuxue Feng PROPOSAL
Maisha N NickaArgentinaAmy Elsner NEW
Faith C RoysterAustraliaAsiya Javayant QUALIFIED
Jones T ChuiRussiaAnna Fali UNQUALIFIED
Deepesh M SaylorsCanadaStephen Shaw RENEWAL
Leon G CampainFranceAmy Elsner UNQUALIFIED
Rodrigues B FlosiItalyOnyama Limba PROPOSAL
Cody F RimSpainAnna Fali NEW
Antonio F StensethIndiaAnna Fali RENEWAL
Jeanfrancois C PoquetteCanadaXuxue Feng QUALIFIED
Alejandro I StockhamUnited KingdomStephen Shaw PROPOSAL
Darci T WhobreyBrazilXuxue Feng NEW
Aditya R CaudyAustraliaIvan Magalhaes PROPOSAL
Izzy Y CaldareraRussiaAnna Fali PROPOSAL
Mayumi R CaudyRussiaAsiya Javayant NEW
Jones U ChuiUnited KingdomOnyama Limba NEGOTIATION
Arvin L WaycottArgentinaIoni Bowcher NEGOTIATION
Jones A GarufiItalyBernardo Dominic NEGOTIATION
Leon E VenereAustraliaOnyama Limba QUALIFIED
Rodrigues J GarufiBrazilBernardo Dominic NEW
Faith J RutaSpainOnyama Limba PROPOSAL
Murillo T ButtRussiaXuxue Feng NEGOTIATION
Mayumi D PoquetteBrazilOnyama Limba PROPOSAL
Alejandro J GarufiArgentinaIoni Bowcher NEW
David Q NickaSpainOnyama Limba RENEWAL
Mayumi U SlusarskiCanadaAmy Elsner RENEWAL
Kaitlin S SaylorsFranceIoni Bowcher NEGOTIATION
Morrow Y RimUnited KingdomStephen Shaw QUALIFIED
Ivar D MaletBrazilOnyama Limba PROPOSAL
Ashley Y ChuiGermanyStephen Shaw NEW
Izzy I OldroydAustraliaBernardo Dominic RENEWAL
Chavez U RulapaughBrazilAnna Fali NEW
Munro D BowleyRussiaIvan Magalhaes QUALIFIED
Deepesh R TollnerArgentinaStephen Shaw PROPOSAL
Jennifer S OldroydJapanElwin Sharvill NEW
Adams A SchemmerCanadaAmy Elsner RENEWAL
Misaki V RimAustraliaAnna Fali UNQUALIFIED
Leja G OldroydUnited KingdomXuxue Feng UNQUALIFIED
Chavez K AlbaresIndiaElwin Sharvill PROPOSAL
Kaitlin C KuskoRussiaBernardo Dominic PROPOSAL
Juan I GarufiItalyStephen Shaw QUALIFIED
Munro Y BowleyJapanAsiya Javayant QUALIFIED
Deepesh E CaudyIndiaAsiya Javayant RENEWAL
Aruna B MaletSpainAnna Fali QUALIFIED
Leja P StockhamItalyElwin Sharvill NEW
Kaitlin W WieserAustraliaBernardo Dominic QUALIFIED
Isabel A ShinkoCanadaBernardo Dominic NEGOTIATION
Murillo Q SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna K SergiGermanyXuxue Feng NEGOTIATION
Julie C DoeCanadaAsiya Javayant RENEWAL
Aika U BowleySpainOnyama Limba PROPOSAL
Cody I RoysterBrazilAsiya Javayant UNQUALIFIED
Nicolas C KuskoItalyAsiya Javayant QUALIFIED
Ashley J WhobreyArgentinaBernardo Dominic UNQUALIFIED
Clifford W IturbideAustraliaAmy Elsner NEGOTIATION
Costa F MaletFranceAnna Fali QUALIFIED
James D PaprockiIndiaIoni Bowcher PROPOSAL
Arvin Q FerenczRussiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro R StensethRussia2024-04-21Chapman, Ross E Esq NEW11Onyama Limba
1001Isabel T OldroydIndia2024-04-21Rousseaux, Michael Esq NEW19Xuxue Feng
1002Mayumi B ButtCanada2024-04-29Feiner Bros NEW18Onyama Limba
1003Maria H VenereUnited Kingdom2024-04-17Chapman, Ross E Esq NEW53Bernardo Dominic
1004Julie P CaudyBrazil2024-04-22King, Christopher A Esq NEGOTIATION6Xuxue Feng
1005Ricardo R RulapaughFrance2024-04-21Benton, John B Jr PROPOSAL77Onyama Limba
1006Claire U PaprockiJapan2024-04-23Benton, John B Jr UNQUALIFIED5Onyama Limba
1007Arvin R ButtGermany2024-04-13Printing Dimensions NEW34Anna Fali
1008Arvin X MorascaFrance2024-04-15Rangoni Of Florence RENEWAL74Bernardo Dominic
1009Silvio J IturbideSpain2024-04-20Morlong Associates QUALIFIED7Stephen Shaw
1010Kadeem K GauchoSpain2024-05-01Truhlar And Truhlar Attys UNQUALIFIED73Bernardo Dominic
1011Kaitlin Q OldroydItaly2024-04-20Feltz Printing Service PROPOSAL6Xuxue Feng
1012Deepesh V FerenczRussia2024-04-22Feiner Bros NEW21Bernardo Dominic
1013Maria H BologniaRussia2024-04-21Morlong Associates PROPOSAL21Anna Fali
1014Cody B VocelkaFrance2024-04-30Chanay, Jeffrey A Esq NEGOTIATION48Stephen Shaw
1015Leja U KuskoBrazil2024-04-29Commercial Press UNQUALIFIED54Onyama Limba
1016Leon W PaprockiCanada2024-04-19Feltz Printing Service QUALIFIED84Amy Elsner
1017Julie G SaylorsUnited Kingdom2024-05-06Feltz Printing Service PROPOSAL79Elwin Sharvill
1018Deepesh U CaudyAustralia2024-04-13Feltz Printing Service RENEWAL24Xuxue Feng
1019Maisha X NestleBrazil2024-04-12Truhlar And Truhlar Attys QUALIFIED7Anna Fali
1020Jeanfrancois K CaldareraArgentina2024-04-11Chapman, Ross E Esq NEGOTIATION26Xuxue Feng
1021David H GlickCanada2024-04-13Buckley Miller Wright PROPOSAL25Onyama Limba
1022Izzy U StockhamGermany2024-05-07Feltz Printing Service NEGOTIATION6Stephen Shaw
1023Aruna C AmigonArgentina2024-04-20Benton, John B Jr PROPOSAL56Ioni Bowcher
1024Claire L SlusarskiAustralia2024-04-14Feiner Bros UNQUALIFIED44Elwin Sharvill
1025Isabel G RulapaughAustralia2024-04-10Chapman, Ross E Esq PROPOSAL63Stephen Shaw
1026Aika Y MorascaUnited Kingdom2024-04-20Commercial Press UNQUALIFIED37Bernardo Dominic
1027Nicolas F GauchoFrance2024-04-17Chapman, Ross E Esq PROPOSAL62Xuxue Feng
1028Stacey D FollerIndia2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED66Bernardo Dominic
1029Stacey J KolmetzCanada2024-04-11Rangoni Of Florence QUALIFIED67Onyama Limba
1030Juan I CaudyIndia2024-04-20Chanay, Jeffrey A Esq NEW49Ioni Bowcher
1031Emily M RimAustralia2024-04-11Truhlar And Truhlar Attys NEW64Bernardo Dominic
1032Jeanfrancois S SaylorsRussia2024-04-25Buckley Miller Wright NEGOTIATION35Amy Elsner
1033Izzy W MarrierUnited Kingdom2024-04-17Printing Dimensions UNQUALIFIED10Ioni Bowcher
1034Juan G MarrierBrazil2024-04-28Rousseaux, Michael Esq NEGOTIATION50Ivan Magalhaes
1035Darci B SaylorsSpain2024-04-19Commercial Press UNQUALIFIED36Ioni Bowcher
1036Aika W ButtJapan2024-04-12Chapman, Ross E Esq PROPOSAL73Ivan Magalhaes
1037Maisha M BowleyBrazil2024-04-20King, Christopher A Esq PROPOSAL17Stephen Shaw
1038James I FerenczUnited Kingdom2024-04-12Buckley Miller Wright PROPOSAL24Onyama Limba
1039David G MaletFrance2024-05-07Chemel, James L Cpa PROPOSAL63Bernardo Dominic
1040Smith Q CaldareraCanada2024-05-03Chemel, James L Cpa PROPOSAL11Onyama Limba
1041David X RoysterUnited Kingdom2024-05-01Morlong Associates PROPOSAL64Onyama Limba
1042Jones H BowleyAustralia2024-04-29Chapman, Ross E Esq RENEWAL97Stephen Shaw
1043Francesco L KuskoIndia2024-04-21Morlong Associates UNQUALIFIED0Elwin Sharvill
1044Isabel F WieserIndia2024-04-10Feiner Bros UNQUALIFIED91Amy Elsner
1045Claire U PoquetteSpain2024-04-14Dorl, James J Esq PROPOSAL93Elwin Sharvill
1046Silvio S AmigonArgentina2024-05-03Chapman, Ross E Esq NEW66Stephen Shaw
1047Maisha N TollnerFrance2024-04-10Buckley Miller Wright RENEWAL22Bernardo Dominic
1048Ashley V StensethUnited Kingdom2024-04-10Feiner Bros RENEWAL96Ioni Bowcher
1049Clifford Z SchemmerGermany2024-04-30Commercial Press UNQUALIFIED60Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba U StockhamAustraliaAmy Elsner PROPOSAL
Ashley Z TollnerFranceIvan Magalhaes PROPOSAL
Octavia E MarrierRussiaAsiya Javayant QUALIFIED
Sinclair U SaylorsJapanStephen Shaw NEGOTIATION
Salvatore U OstroskyGermanyIoni Bowcher UNQUALIFIED
Deepesh L GlickFranceElwin Sharvill UNQUALIFIED
Ricardo Y BologniaSpainAnna Fali QUALIFIED
Jeanfrancois B CaudyGermanyAmy Elsner UNQUALIFIED
Claire R TollnerItalyElwin Sharvill NEGOTIATION
Jeanfrancois X SlusarskiArgentinaBernardo Dominic RENEWAL
Jefferson W DilliardGermanyBernardo Dominic NEW
Juan S KolmetzGermanyIoni Bowcher NEGOTIATION
Arvin R StockhamArgentinaAnna Fali UNQUALIFIED
Kadeem O MarrierSpainIvan Magalhaes UNQUALIFIED
James U CampainCanadaXuxue Feng UNQUALIFIED
Claire L OstroskyArgentinaIoni Bowcher PROPOSAL
Smith L SlusarskiFranceAsiya Javayant NEGOTIATION
Tony D FerenczGermanyAnna Fali UNQUALIFIED
Juan B DilliardCanadaBernardo Dominic NEGOTIATION
Tony X RulapaughCanadaOnyama Limba QUALIFIED
Emily X TollnerJapanElwin Sharvill NEGOTIATION
Murillo K GarufiIndiaIoni Bowcher PROPOSAL
Faith M FollerArgentinaStephen Shaw QUALIFIED
Julie I DilliardUnited KingdomOnyama Limba QUALIFIED
Johnson X BowleyGermanyAmy Elsner UNQUALIFIED
Ricardo C AmigonIndiaAsiya Javayant QUALIFIED
Murillo C NickaCanadaOnyama Limba NEGOTIATION
Clifford C GarufiJapanStephen Shaw QUALIFIED
Octavia R GauchoArgentinaXuxue Feng QUALIFIED
Alejandro I AmigonIndiaIoni Bowcher NEGOTIATION
Leja O GauchoGermanyAnna Fali RENEWAL
Tony U BriddickCanadaIvan Magalhaes QUALIFIED
Aika N BowleyArgentinaElwin Sharvill QUALIFIED
Greenwood E GauchoSpainXuxue Feng PROPOSAL
Morrow P CaldareraRussiaAnna Fali NEW
James L WhobreyIndiaAnna Fali PROPOSAL
Wickens I BowleySpainAmy Elsner PROPOSAL
Aditya G MorascaCanadaElwin Sharvill PROPOSAL
Tony B CampainFranceIoni Bowcher QUALIFIED
Munro Y CaudyAustraliaIvan Magalhaes NEW
Johnson W SergiItalyStephen Shaw PROPOSAL
Jeanfrancois J StensethJapanAnna Fali QUALIFIED
Jones A GillianGermanyBernardo Dominic NEGOTIATION
Salvatore U RulapaughAustraliaElwin Sharvill NEW
David G VocelkaItalyXuxue Feng RENEWAL
Faith F WhobreyFranceBernardo Dominic NEGOTIATION
Wickens O PerinFranceAsiya Javayant PROPOSAL
Isabel I StensethBrazilBernardo Dominic QUALIFIED
Johnson I FollerCanadaAnna Fali UNQUALIFIED
Aruna J MarrierFranceXuxue Feng UNQUALIFIED
Frozen Columns
Name
Leon E Paprocki
Smith I Bolognia
Isabel J Rim
Octavia L Albares
Mujtaba D Kolmetz
Wickens D Perin
Munro O Stockham
Salvatore G Paprocki
Silvio N Doe
Chavez T Bolognia
Murillo Z Glick
Rodrigues S Doe
Ivar Z Glick
Wickens B Saylors
Izzy L Glick
Jeanfrancois M Ferencz
Aruna V Gillian
Aruna U Malet
Johnson G Rulapaugh
Jennifer C Figeroa
Emily H Caldarera
Emily P Kusko
Leja Q Schemmer
Ashley L Kolmetz
Francesco A Saylors
Emily S Malet
Ivar G Dilliard
Mayumi O Ferencz
Adams T Perin
Stacey X Slusarski
Julie Y Stockham
Aika K Rim
Darci O Wieser
Kadeem V Whobrey
Ricardo Q Albares
Nicolas N Butt
Emily B Iturbide
Jennifer N Kolmetz
Jennifer X Stockham
Chavez Y Doe
Mujtaba W Stockham
Ashley G Doe
Faith U Briddick
Kaitlin E Dilliard
Arvin Z Bowley
Chavez I Doe
Juan F Darakjy
Juan R Bolognia
Kaitlin D Marrier
Morrow X Albares
IdCountryDate
1000Italy2024-05-01
1001Argentina2024-04-29
1002Italy2024-04-29
1003United Kingdom2024-04-11
1004France2024-05-09
1005United Kingdom2024-04-12
1006Russia2024-05-08
1007Canada2024-04-29
1008Spain2024-04-23
1009India2024-04-23
1010Germany2024-05-07
1011Australia2024-05-04
1012Spain2024-04-23
1013Italy2024-04-18
1014Canada2024-05-06
1015Italy2024-05-07
1016Australia2024-04-14
1017United Kingdom2024-04-18
1018Argentina2024-05-05
1019Italy2024-04-16
1020Japan2024-05-03
1021Argentina2024-05-06
1022Japan2024-04-10
1023Argentina2024-04-14
1024Brazil2024-04-10
1025Russia2024-04-20
1026India2024-04-28
1027Argentina2024-04-12
1028Japan2024-04-21
1029Russia2024-04-17
1030Italy2024-05-09
1031Australia2024-04-20
1032Russia2024-04-30
1033Italy2024-05-04
1034India2024-04-26
1035Brazil2024-04-23
1036Japan2024-05-05
1037Spain2024-04-10
1038Italy2024-04-28
1039India2024-04-27
1040India2024-05-08
1041India2024-04-11
1042Canada2024-05-09
1043Italy2024-05-03
1044Australia2024-04-10
1045Italy2024-05-03
1046Spain2024-04-11
1047Australia2024-04-18
1048Australia2024-04-10
1049India2024-04-11

On-Demand Data

NameIdCountryDate
Jennifer K Amigon1000Spain2024-04-28
Jones K Ferencz1001Japan2024-04-30
Morrow O Campain1002Canada2024-04-22
Munro T Flosi1003India2024-04-14
Jones O Morasca1004France2024-04-21
Aruna Q Flosi1005Argentina2024-04-27
Chavez Z Schemmer1006Japan2024-04-24
Kaitlin J Caldarera1007Canada2024-05-05
Aika Q Chui1008India2024-04-14
Faith D Oldroyd1009Russia2024-04-19
Smith D Gaucho1010Germany2024-04-13
Maria R Shinko1011Australia2024-04-25
Ricardo V Saylors1012Spain2024-05-06
Cody S Rulapaugh1013Argentina2024-04-30
Adams U Iturbide1014United Kingdom2024-05-06
Costa M Poquette1015United Kingdom2024-05-09
Costa W Inouye1016Australia2024-04-26
Sinclair G Sergi1017India2024-05-09
Jones F Doe1018Spain2024-04-14
Isabel G Gaucho1019France2024-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony Z VenereRussiaAsiya Javayant PROPOSAL
Aditya H WaycottGermanyStephen Shaw PROPOSAL
Ivar A NestleArgentinaAnna Fali QUALIFIED
Murillo R PoquetteGermanyStephen Shaw NEW
Aditya A SchemmerAustraliaIoni Bowcher UNQUALIFIED
Julie U DoeGermanyOnyama Limba NEW
Julie X SergiAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois K MorascaUnited KingdomOnyama Limba RENEWAL
Juan T KuskoItalyIoni Bowcher RENEWAL
Aruna D GauchoRussiaAsiya Javayant QUALIFIED
Stacey U FollerSpainIvan Magalhaes RENEWAL
Aika E IturbideIndiaIvan Magalhaes NEGOTIATION
Silvio W CampainIndiaAmy Elsner NEW
Rodrigues G OstroskyRussiaStephen Shaw NEGOTIATION
Leja V GauchoJapanXuxue Feng NEGOTIATION
Octavia H NestleRussiaXuxue Feng RENEWAL
Maisha L BowleyAustraliaIoni Bowcher NEW
Stacey N WaycottBrazilBernardo Dominic NEGOTIATION
Mayumi X SlusarskiArgentinaStephen Shaw PROPOSAL
Faith T GauchoRussiaIvan Magalhaes QUALIFIED
Chavez U StensethRussiaXuxue Feng PROPOSAL
Maisha J GarufiBrazilIoni Bowcher UNQUALIFIED
Emily M CaldareraGermanyElwin Sharvill RENEWAL
Clifford T DarakjyJapanAmy Elsner PROPOSAL
Nicolas U WaycottItalyAnna Fali RENEWAL
Octavia X StockhamCanadaElwin Sharvill NEW
Faith E StensethGermanyAsiya Javayant RENEWAL
Aika Y RimBrazilIvan Magalhaes UNQUALIFIED
Alejandro S DilliardArgentinaStephen Shaw PROPOSAL
Emily I SlusarskiCanadaElwin Sharvill NEGOTIATION
Maria T CaldareraFranceIvan Magalhaes NEW
Deepesh D StensethSpainBernardo Dominic RENEWAL
Misaki R WaycottBrazilBernardo Dominic NEW
David O ChuiGermanyAnna Fali QUALIFIED
Leja P RimFranceBernardo Dominic NEGOTIATION
Johnson L GauchoItalyIvan Magalhaes NEW
Kaitlin I PaprockiGermanyAmy Elsner NEW
Clifford C OstroskyGermanyAsiya Javayant RENEWAL
Sinclair N PaprockiAustraliaAsiya Javayant NEW
Murillo H RimCanadaOnyama Limba 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>