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
Chavez W SaylorsRussiaIoni Bowcher NEGOTIATION
Emily Z WieserBrazilAmy Elsner NEGOTIATION
Claire U DarakjySpainIvan Magalhaes QUALIFIED
Clifford L VocelkaArgentinaXuxue Feng RENEWAL
Tony E PaprockiAustraliaXuxue Feng UNQUALIFIED
Smith Y DarakjyUnited KingdomXuxue Feng PROPOSAL
Leja V FerenczIndiaElwin Sharvill NEGOTIATION
Kaitlin T FlosiBrazilAsiya Javayant PROPOSAL
Murillo I KuskoSpainIvan Magalhaes NEW
Emily C RulapaughSpainOnyama Limba NEGOTIATION
Murillo D MaletJapanElwin Sharvill NEGOTIATION
Misaki P IturbideSpainAnna Fali PROPOSAL
Mujtaba H PerinItalyXuxue Feng NEW
Johnson N InouyeArgentinaOnyama Limba UNQUALIFIED
Jennifer G CaldareraSpainXuxue Feng RENEWAL
Jones U FollerGermanyAsiya Javayant QUALIFIED
Morrow E CaudyBrazilIoni Bowcher RENEWAL
Leja Z ButtGermanyElwin Sharvill RENEWAL
Tony W MarrierGermanyOnyama Limba NEGOTIATION
Jeanfrancois Z PerinBrazilOnyama Limba NEGOTIATION
James V FollerAustraliaXuxue Feng NEW
Munro T GarufiAustraliaStephen Shaw PROPOSAL
Maria Y KuskoIndiaIoni Bowcher NEW
Mayumi K SlusarskiUnited KingdomStephen Shaw NEGOTIATION
Leon E InouyeSpainAsiya Javayant NEGOTIATION
Wickens B SlusarskiCanadaStephen Shaw NEW
Julie Z RulapaughSpainAsiya Javayant PROPOSAL
Mayumi T ButtGermanyAmy Elsner RENEWAL
Kadeem B StensethSpainStephen Shaw QUALIFIED
Claire F MarrierRussiaElwin Sharvill UNQUALIFIED
Misaki C MaletCanadaBernardo Dominic QUALIFIED
Johnson X CaldareraSpainAnna Fali PROPOSAL
Nicolas I PaprockiJapanXuxue Feng NEGOTIATION
Jones O BowleyJapanStephen Shaw PROPOSAL
Kaitlin J OldroydIndiaIoni Bowcher QUALIFIED
Arvin B CampainSpainAsiya Javayant PROPOSAL
Smith S DarakjyIndiaIoni Bowcher UNQUALIFIED
James N MarrierRussiaStephen Shaw PROPOSAL
Leja D WieserArgentinaXuxue Feng UNQUALIFIED
Kadeem B RulapaughAustraliaBernardo Dominic QUALIFIED
Emily S OldroydRussiaAnna Fali QUALIFIED
Wickens V PoquetteGermanyAnna Fali NEGOTIATION
Greenwood Q BologniaBrazilAnna Fali PROPOSAL
Leja G NestleIndiaAsiya Javayant NEW
Wickens N WaycottFranceIoni Bowcher RENEWAL
Chavez G PerinBrazilXuxue Feng PROPOSAL
Silvio D CaldareraFranceBernardo Dominic PROPOSAL
Smith I CaudyUnited KingdomBernardo Dominic NEW
Emily P RoysterFranceAnna Fali PROPOSAL
Francesco L FlosiAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Salvatore E RutaArgentinaElwin Sharvill UNQUALIFIED
Aditya F RutaJapanBernardo Dominic PROPOSAL
Maisha O MaletJapanOnyama Limba PROPOSAL
Antonio K MacleadItalyAnna Fali NEW
Izzy E PerinBrazilIoni Bowcher NEW
Leja N RulapaughArgentinaAnna Fali PROPOSAL
Jennifer F GillianArgentinaIvan Magalhaes RENEWAL
Misaki C InouyeBrazilElwin Sharvill RENEWAL
Adams J PerinGermanyAmy Elsner UNQUALIFIED
Mayumi V MaletIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues M RoysterUnited Kingdom2024-03-26Printing Dimensions RENEWAL5Bernardo Dominic
1001Izzy S DarakjyBrazil2024-03-24King, Christopher A Esq QUALIFIED17Onyama Limba
1002Sinclair W BriddickAustralia2024-04-04Printing Dimensions NEW94Ivan Magalhaes
1003Leon E AlbaresRussia2024-04-09Dorl, James J Esq QUALIFIED38Ivan Magalhaes
1004Kaitlin P MorascaAustralia2024-03-30King, Christopher A Esq UNQUALIFIED34Xuxue Feng
1005Maisha M ButtArgentina2024-04-10Rangoni Of Florence RENEWAL0Amy Elsner
1006Murillo Z GarufiIndia2024-04-05Rousseaux, Michael Esq RENEWAL16Xuxue Feng
1007Sinclair B GillianItaly2024-04-12Feiner Bros RENEWAL34Asiya Javayant
1008Jeanfrancois I KolmetzCanada2024-04-16Commercial Press QUALIFIED60Xuxue Feng
1009Kaitlin B PaprockiRussia2024-04-04Printing Dimensions NEGOTIATION25Amy Elsner
1010Ricardo R OstroskyCanada2024-04-09King, Christopher A Esq NEW63Onyama Limba
1011Morrow L OldroydItaly2024-03-25Chemel, James L Cpa RENEWAL27Amy Elsner
1012Wickens A AmigonAustralia2024-04-08King, Christopher A Esq NEGOTIATION56Elwin Sharvill
1013Jennifer U InouyeCanada2024-03-26Truhlar And Truhlar Attys QUALIFIED14Amy Elsner
1014Emily S ChuiBrazil2024-04-08Commercial Press UNQUALIFIED88Anna Fali
1015Mayumi X DarakjyFrance2024-03-31Commercial Press PROPOSAL51Onyama Limba
1016Kaitlin U RulapaughArgentina2024-04-12Rousseaux, Michael Esq NEW15Onyama Limba
1017Claire E DarakjyArgentina2024-03-28Feiner Bros QUALIFIED95Amy Elsner
1018Jennifer J DoeAustralia2024-03-25Rangoni Of Florence QUALIFIED8Stephen Shaw
1019Alejandro H SaylorsSpain2024-03-29Chanay, Jeffrey A Esq NEGOTIATION41Bernardo Dominic
1020Ricardo H StockhamUnited Kingdom2024-03-24Truhlar And Truhlar Attys NEGOTIATION29Ivan Magalhaes
1021Emily O OstroskyFrance2024-04-18Printing Dimensions PROPOSAL39Stephen Shaw
1022Jeanfrancois O RutaArgentina2024-04-05Feiner Bros QUALIFIED43Ivan Magalhaes
1023Greenwood T GlickGermany2024-04-03Feltz Printing Service QUALIFIED8Elwin Sharvill
1024Munro R VenereJapan2024-03-25Chapman, Ross E Esq RENEWAL39Xuxue Feng
1025Izzy C WieserAustralia2024-04-20Benton, John B Jr NEGOTIATION61Stephen Shaw
1026Ashley Y CaldareraArgentina2024-03-31King, Christopher A Esq NEW7Ivan Magalhaes
1027Ashley L OstroskyGermany2024-04-22King, Christopher A Esq RENEWAL94Stephen Shaw
1028Munro V WieserAustralia2024-04-05Commercial Press NEW92Stephen Shaw
1029Sinclair N BriddickBrazil2024-03-26King, Christopher A Esq QUALIFIED64Ioni Bowcher
1030Maisha V NickaArgentina2024-04-18Dorl, James J Esq NEGOTIATION75Ivan Magalhaes
1031Ivar W GillianBrazil2024-04-14Morlong Associates NEW98Bernardo Dominic
1032Julie E BologniaCanada2024-04-21Rangoni Of Florence RENEWAL52Anna Fali
1033Silvio J ChuiUnited Kingdom2024-04-14Printing Dimensions NEW19Anna Fali
1034Murillo H MacleadSpain2024-03-30Feiner Bros NEGOTIATION10Ioni Bowcher
1035Ricardo Q OldroydBrazil2024-04-02Chapman, Ross E Esq PROPOSAL34Ioni Bowcher
1036Emily K VenereRussia2024-03-25Printing Dimensions NEW96Bernardo Dominic
1037Greenwood B GillianJapan2024-04-09Buckley Miller Wright UNQUALIFIED57Ioni Bowcher
1038Silvio W GarufiItaly2024-04-04King, Christopher A Esq PROPOSAL77Xuxue Feng
1039Claire R SchemmerRussia2024-04-04Chapman, Ross E Esq QUALIFIED55Amy Elsner
1040Mujtaba R BriddickArgentina2024-04-05Dorl, James J Esq NEW44Amy Elsner
1041Izzy Q ButtIndia2024-03-31Benton, John B Jr QUALIFIED12Bernardo Dominic
1042Maria L FigeroaUnited Kingdom2024-03-27Chemel, James L Cpa RENEWAL72Ivan Magalhaes
1043Murillo A WhobreyRussia2024-04-21Morlong Associates RENEWAL96Ivan Magalhaes
1044Julie V InouyeItaly2024-04-16Rousseaux, Michael Esq QUALIFIED4Amy Elsner
1045Costa X AlbaresRussia2024-04-14Rangoni Of Florence RENEWAL7Anna Fali
1046Francesco Y PaprockiBrazil2024-03-24Truhlar And Truhlar Attys NEGOTIATION20Stephen Shaw
1047Clifford F SchemmerGermany2024-04-22Truhlar And Truhlar Attys QUALIFIED48Anna Fali
1048Sinclair N KolmetzGermany2024-04-11Chapman, Ross E Esq PROPOSAL37Elwin Sharvill
1049Arvin M KolmetzJapan2024-03-26Chemel, James L Cpa QUALIFIED49Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon C DilliardAustraliaAsiya Javayant NEGOTIATION
Wickens I OstroskyItalyIvan Magalhaes QUALIFIED
Kaitlin K VenereItalyAsiya Javayant RENEWAL
Isabel N ButtGermanyOnyama Limba NEW
Johnson I OldroydJapanOnyama Limba RENEWAL
Wickens P DilliardGermanyStephen Shaw NEGOTIATION
Murillo Z MaletCanadaElwin Sharvill PROPOSAL
Izzy K SchemmerCanadaAmy Elsner NEGOTIATION
Faith L GlickGermanyAmy Elsner UNQUALIFIED
Deepesh V MaletRussiaIoni Bowcher UNQUALIFIED
Chavez F FigeroaItalyAnna Fali PROPOSAL
Rodrigues J StockhamArgentinaElwin Sharvill QUALIFIED
Leja B BriddickBrazilOnyama Limba RENEWAL
Ricardo Z CaudyBrazilAnna Fali PROPOSAL
Ashley W BologniaJapanAnna Fali PROPOSAL
Isabel D PaprockiSpainOnyama Limba NEW
Maria K KuskoSpainIoni Bowcher NEGOTIATION
Aditya Q RulapaughIndiaAmy Elsner RENEWAL
Leja F MorascaItalyStephen Shaw PROPOSAL
Alejandro M MorascaCanadaXuxue Feng RENEWAL
Julie N FlosiSpainOnyama Limba UNQUALIFIED
Kadeem L TollnerArgentinaAsiya Javayant NEGOTIATION
Tony X SchemmerArgentinaIoni Bowcher NEGOTIATION
Adams M DarakjyJapanXuxue Feng NEGOTIATION
Kadeem X StockhamJapanIvan Magalhaes PROPOSAL
Emily H BowleyIndiaOnyama Limba NEW
Rodrigues P CampainArgentinaElwin Sharvill RENEWAL
Ricardo W TollnerArgentinaBernardo Dominic RENEWAL
Adams U RimRussiaAnna Fali NEW
Mayumi E VocelkaItalyIoni Bowcher QUALIFIED
Kadeem D IturbideAustraliaElwin Sharvill QUALIFIED
Stacey D ButtBrazilElwin Sharvill NEGOTIATION
Maria B StensethCanadaElwin Sharvill UNQUALIFIED
Murillo K WaycottBrazilBernardo Dominic QUALIFIED
Isabel Y BriddickFranceElwin Sharvill NEW
Izzy W FerenczArgentinaXuxue Feng RENEWAL
Kadeem K RoysterRussiaBernardo Dominic PROPOSAL
Octavia S RutaRussiaIvan Magalhaes NEGOTIATION
Clifford Q MaletArgentinaAnna Fali PROPOSAL
Claire O MaletFranceAmy Elsner NEGOTIATION
Jones Z WieserItalyXuxue Feng RENEWAL
James N MacleadItalyIvan Magalhaes NEGOTIATION
Misaki M ShinkoItalyAmy Elsner NEGOTIATION
Murillo Y ShinkoUnited KingdomOnyama Limba QUALIFIED
Costa Q CaldareraJapanAnna Fali NEGOTIATION
Nicolas Z FollerCanadaElwin Sharvill UNQUALIFIED
Kadeem O AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo Z WieserBrazilElwin Sharvill QUALIFIED
Antonio A RutaItalyAnna Fali PROPOSAL
Adams X OldroydAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Leon J Bowley
Antonio I Rulapaugh
James V Shinko
Aika J Bolognia
Jeanfrancois K Royster
Costa H Slusarski
Adams R Malet
Darci Q Amigon
Emily C Tollner
Juan W Perin
Kaitlin B Stenseth
Antonio S Inouye
Sinclair V Rulapaugh
Jones E Gillian
Clifford A Stenseth
David Z Marrier
Stacey B Amigon
Greenwood H Schemmer
Aditya I Ruta
Johnson T Inouye
Misaki J Figeroa
Darci A Venere
Leon P Gillian
Izzy T Vocelka
Ivar M Kolmetz
Chavez V Tollner
David E Perin
Adams G Malet
Ashley R Kolmetz
Antonio U Gaucho
Murillo E Ostrosky
Faith C Foller
Morrow S Tollner
Morrow V Shinko
Maisha C Venere
Ricardo D Gillian
Deepesh B Dilliard
Emily P Wieser
Leja Q Ferencz
Costa P Ostrosky
Mayumi V Gaucho
Deepesh Q Darakjy
Antonio F Stenseth
Aditya V Malet
Jeanfrancois R Dilliard
Izzy R Rim
Kaitlin O Sergi
Clifford D Doe
Cody T Poquette
Nicolas A Figeroa
IdCountryDate
1000Canada2024-04-13
1001Canada2024-03-30
1002United Kingdom2024-04-06
1003Germany2024-03-24
1004India2024-03-29
1005United Kingdom2024-04-02
1006United Kingdom2024-04-05
1007India2024-04-06
1008Italy2024-03-25
1009India2024-04-20
1010Australia2024-03-31
1011Russia2024-04-09
1012Germany2024-03-28
1013Australia2024-04-06
1014Brazil2024-04-17
1015Spain2024-03-27
1016India2024-03-29
1017Russia2024-04-14
1018India2024-04-21
1019Brazil2024-04-13
1020Spain2024-04-11
1021Russia2024-03-24
1022Canada2024-04-18
1023Australia2024-03-30
1024Spain2024-04-07
1025Japan2024-03-28
1026Brazil2024-04-22
1027Australia2024-03-30
1028Germany2024-04-18
1029Russia2024-04-02
1030Brazil2024-04-06
1031United Kingdom2024-04-09
1032France2024-04-13
1033Italy2024-04-18
1034United Kingdom2024-04-03
1035France2024-04-10
1036Japan2024-04-05
1037Australia2024-04-13
1038France2024-03-28
1039Russia2024-04-08
1040United Kingdom2024-03-28
1041France2024-03-26
1042Spain2024-04-11
1043Canada2024-04-14
1044Germany2024-04-11
1045Canada2024-04-03
1046Brazil2024-04-06
1047Brazil2024-03-31
1048Italy2024-04-22
1049Argentina2024-04-22

On-Demand Data

NameIdCountryDate
Chavez E Caldarera1000Italy2024-03-24
Leja W Gillian1001Brazil2024-03-29
Nicolas E Dilliard1002India2024-04-05
Octavia M Waycott1003France2024-04-18
Isabel O Doe1004Spain2024-03-30
Murillo I Morasca1005Italy2024-04-16
Salvatore J Maclead1006Argentina2024-04-20
Salvatore V Flosi1007France2024-04-18
James A Saylors1008India2024-04-18
Isabel I Dilliard1009Canada2024-03-28
David H Poquette1010Japan2024-04-16
Ricardo Q Dilliard1011Canada2024-04-02
Wickens Q Maclead1012Italy2024-04-18
Julie X Vocelka1013Australia2024-03-29
Misaki P Royster1014Australia2024-03-29
Leon D Flosi1015Japan2024-03-28
Alejandro D Poquette1016Canada2024-04-05
Jefferson P Garufi1017France2024-04-03
Stacey X Perin1018Italy2024-04-10
James R Waycott1019Germany2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh A KolmetzJapanAsiya Javayant UNQUALIFIED
Greenwood O WaycottArgentinaAmy Elsner NEW
Stacey R VocelkaGermanyAmy Elsner NEW
Murillo P StensethArgentinaIvan Magalhaes UNQUALIFIED
Jennifer W RutaIndiaElwin Sharvill NEW
Claire G FollerFranceAnna Fali UNQUALIFIED
Leja Q DoeBrazilOnyama Limba NEGOTIATION
Jeanfrancois G StensethRussiaIoni Bowcher QUALIFIED
Ivar R OldroydSpainXuxue Feng PROPOSAL
Juan B KuskoIndiaIoni Bowcher NEGOTIATION
David R SlusarskiAustraliaAsiya Javayant PROPOSAL
Aditya T DilliardBrazilIvan Magalhaes PROPOSAL
Kaitlin K WaycottUnited KingdomOnyama Limba RENEWAL
Julie W RulapaughIndiaOnyama Limba QUALIFIED
Mujtaba M ButtFranceElwin Sharvill NEW
Adams P WhobreyBrazilXuxue Feng NEGOTIATION
Jones N DoeCanadaIoni Bowcher NEW
Leja R InouyeRussiaAnna Fali NEGOTIATION
Aruna A SlusarskiIndiaAnna Fali RENEWAL
Stacey K ChuiGermanyIvan Magalhaes QUALIFIED
Arvin W SaylorsUnited KingdomElwin Sharvill RENEWAL
Julie W AmigonJapanAsiya Javayant NEGOTIATION
Darci C BowleyAustraliaStephen Shaw QUALIFIED
Ricardo A CaudyArgentinaXuxue Feng PROPOSAL
Emily V RulapaughAustraliaOnyama Limba NEGOTIATION
Kadeem Y WaycottArgentinaAmy Elsner NEW
Kaitlin R GarufiRussiaAsiya Javayant NEW
Antonio N FollerGermanyAnna Fali QUALIFIED
David Q GarufiArgentinaAmy Elsner UNQUALIFIED
Wickens Q SergiIndiaStephen Shaw NEW
Greenwood Q BologniaCanadaAmy Elsner NEW
Salvatore O StockhamItalyXuxue Feng NEW
Leja D StensethCanadaOnyama Limba PROPOSAL
Claire Y BowleyItalyIoni Bowcher NEW
Kadeem Q CaudyFranceIvan Magalhaes UNQUALIFIED
Adams D RoysterIndiaOnyama Limba PROPOSAL
Adams S GauchoBrazilAnna Fali NEGOTIATION
Murillo L SergiBrazilAmy Elsner UNQUALIFIED
Morrow A DarakjyGermanyOnyama Limba RENEWAL
Leon T RutaUnited KingdomBernardo Dominic 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>