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
Rodrigues S PaprockiIndiaBernardo Dominic UNQUALIFIED
Claire A ShinkoArgentinaStephen Shaw QUALIFIED
Chavez I DoeSpainAsiya Javayant RENEWAL
Julie A FerenczRussiaElwin Sharvill PROPOSAL
James P SergiRussiaAnna Fali QUALIFIED
Aruna O AmigonFranceElwin Sharvill NEGOTIATION
Darci F MarrierBrazilElwin Sharvill QUALIFIED
Cody W GillianSpainXuxue Feng NEGOTIATION
Misaki Q GarufiFranceAmy Elsner NEGOTIATION
Smith I CampainArgentinaIvan Magalhaes QUALIFIED
Leon R AlbaresSpainAnna Fali NEGOTIATION
Costa D SergiFranceAnna Fali NEGOTIATION
Costa Y GlickItalyAsiya Javayant NEW
Leja K RimGermanyAsiya Javayant NEW
Antonio O BriddickFranceAnna Fali NEW
Wickens O ChuiIndiaElwin Sharvill PROPOSAL
Greenwood F FigeroaArgentinaStephen Shaw PROPOSAL
Jeanfrancois Q AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Deepesh L SlusarskiFranceElwin Sharvill RENEWAL
Kaitlin O GillianRussiaStephen Shaw UNQUALIFIED
Johnson R TollnerJapanAsiya Javayant UNQUALIFIED
Cody M NickaCanadaOnyama Limba PROPOSAL
Octavia Z StensethArgentinaIoni Bowcher NEW
Izzy R CampainJapanBernardo Dominic UNQUALIFIED
Chavez I RulapaughBrazilXuxue Feng PROPOSAL
Jones N TollnerFranceAmy Elsner RENEWAL
Alejandro L DoeArgentinaElwin Sharvill NEGOTIATION
Ivar E AlbaresItalyXuxue Feng NEGOTIATION
Deepesh A RoysterSpainElwin Sharvill RENEWAL
Tony W DoeCanadaIoni Bowcher NEGOTIATION
Darci V MacleadRussiaXuxue Feng PROPOSAL
Antonio I AlbaresFranceAmy Elsner NEGOTIATION
Murillo A WaycottItalyAsiya Javayant NEW
Aika G GlickSpainIoni Bowcher PROPOSAL
Alejandro B KuskoIndiaAnna Fali QUALIFIED
Francesco R GarufiUnited KingdomAnna Fali PROPOSAL
Wickens N WieserIndiaAnna Fali RENEWAL
Antonio Z RoysterBrazilXuxue Feng UNQUALIFIED
Rodrigues Z WieserGermanyIoni Bowcher UNQUALIFIED
Leon J DoeBrazilOnyama Limba NEW
Wickens Z FlosiFranceBernardo Dominic QUALIFIED
Greenwood W PerinAustraliaBernardo Dominic UNQUALIFIED
Darci G FerenczAustraliaBernardo Dominic QUALIFIED
Costa X OstroskyIndiaAsiya Javayant RENEWAL
Wickens X BowleySpainXuxue Feng NEGOTIATION
Izzy J KolmetzBrazilAmy Elsner NEGOTIATION
Izzy Q RimGermanyElwin Sharvill PROPOSAL
Mujtaba U NestleBrazilElwin Sharvill NEW
Faith Z WieserFranceXuxue Feng QUALIFIED
Darci F ButtAustraliaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro F CampainGermanyOnyama Limba QUALIFIED
Nicolas V MacleadRussiaAsiya Javayant PROPOSAL
Nicolas O KolmetzItalyBernardo Dominic QUALIFIED
Silvio U ButtBrazilAnna Fali NEW
Salvatore J KuskoSpainElwin Sharvill UNQUALIFIED
Rodrigues M OldroydGermanyIoni Bowcher NEW
Isabel E FollerBrazilOnyama Limba PROPOSAL
David R DilliardRussiaOnyama Limba UNQUALIFIED
Claire C ButtIndiaOnyama Limba NEGOTIATION
Silvio A WieserAustraliaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair A GauchoAustralia2024-04-16Chanay, Jeffrey A Esq PROPOSAL24Xuxue Feng
1001Aditya I VocelkaBrazil2024-05-11Rousseaux, Michael Esq QUALIFIED3Xuxue Feng
1002Ashley D FollerIndia2024-05-10Chemel, James L Cpa QUALIFIED57Ivan Magalhaes
1003Morrow E OldroydUnited Kingdom2024-04-25Chemel, James L Cpa QUALIFIED97Asiya Javayant
1004Deepesh Z CaldareraFrance2024-05-06Truhlar And Truhlar Attys NEGOTIATION4Ivan Magalhaes
1005Greenwood I MacleadGermany2024-05-12Buckley Miller Wright PROPOSAL45Amy Elsner
1006Maisha X TollnerRussia2024-04-15Chapman, Ross E Esq NEGOTIATION49Ivan Magalhaes
1007Clifford G WhobreyFrance2024-05-10Chemel, James L Cpa RENEWAL35Bernardo Dominic
1008Costa E CampainAustralia2024-05-08Printing Dimensions UNQUALIFIED56Xuxue Feng
1009Tony Q RoysterIndia2024-04-25Morlong Associates PROPOSAL18Xuxue Feng
1010Johnson R VocelkaSpain2024-05-06Dorl, James J Esq RENEWAL44Elwin Sharvill
1011Leon E BriddickUnited Kingdom2024-05-11Morlong Associates UNQUALIFIED16Onyama Limba
1012Nicolas X PerinCanada2024-04-22Rousseaux, Michael Esq NEGOTIATION67Onyama Limba
1013Mayumi S MorascaIndia2024-05-09Dorl, James J Esq QUALIFIED25Elwin Sharvill
1014Stacey Y SlusarskiRussia2024-04-18Chapman, Ross E Esq RENEWAL81Ioni Bowcher
1015Maisha E RutaSpain2024-04-27Printing Dimensions RENEWAL42Stephen Shaw
1016Aditya H ButtCanada2024-04-26Chanay, Jeffrey A Esq UNQUALIFIED28Bernardo Dominic
1017Leja P FerenczGermany2024-05-04Chanay, Jeffrey A Esq NEW13Stephen Shaw
1018Tony C SlusarskiUnited Kingdom2024-05-04Feiner Bros PROPOSAL68Asiya Javayant
1019Misaki B DoeArgentina2024-05-10Feiner Bros QUALIFIED60Anna Fali
1020Jefferson T AmigonCanada2024-04-20Feiner Bros QUALIFIED96Elwin Sharvill
1021Antonio S MarrierGermany2024-04-27Truhlar And Truhlar Attys NEW21Amy Elsner
1022Antonio S NestleIndia2024-04-22Chanay, Jeffrey A Esq NEGOTIATION48Bernardo Dominic
1023Julie T CaudyJapan2024-05-11Buckley Miller Wright NEGOTIATION1Anna Fali
1024Misaki S CampainAustralia2024-04-17Rangoni Of Florence UNQUALIFIED72Anna Fali
1025Adams G BowleyUnited Kingdom2024-04-25King, Christopher A Esq NEGOTIATION19Bernardo Dominic
1026Julie T MacleadAustralia2024-04-24Morlong Associates PROPOSAL56Xuxue Feng
1027Alejandro S GlickAustralia2024-05-12Dorl, James J Esq NEGOTIATION95Onyama Limba
1028Isabel W MaletFrance2024-04-27Truhlar And Truhlar Attys NEW3Stephen Shaw
1029Arvin P BowleyIndia2024-04-27King, Christopher A Esq NEGOTIATION14Ioni Bowcher
1030Julie M OstroskyArgentina2024-04-21Chanay, Jeffrey A Esq RENEWAL16Ioni Bowcher
1031Costa Q WhobreyItaly2024-04-22Morlong Associates PROPOSAL91Xuxue Feng
1032Misaki C FlosiSpain2024-04-16Chanay, Jeffrey A Esq NEW33Anna Fali
1033Chavez B VenereFrance2024-05-08Truhlar And Truhlar Attys UNQUALIFIED0Amy Elsner
1034Mayumi M ButtSpain2024-04-21Feltz Printing Service QUALIFIED12Stephen Shaw
1035Silvio B FigeroaItaly2024-04-17Printing Dimensions RENEWAL52Ivan Magalhaes
1036Mayumi T GarufiSpain2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED63Onyama Limba
1037Alejandro I NestleItaly2024-04-27Chapman, Ross E Esq NEGOTIATION25Asiya Javayant
1038Maisha V MaletItaly2024-05-04Rangoni Of Florence NEW58Ivan Magalhaes
1039Ivar P GarufiArgentina2024-05-13Feltz Printing Service PROPOSAL50Stephen Shaw
1040Smith M AmigonBrazil2024-04-21Feiner Bros NEGOTIATION36Amy Elsner
1041Antonio Q OldroydGermany2024-05-05Buckley Miller Wright PROPOSAL0Elwin Sharvill
1042Octavia L FerenczArgentina2024-04-17King, Christopher A Esq UNQUALIFIED96Xuxue Feng
1043Maisha E VenereBrazil2024-05-06Dorl, James J Esq UNQUALIFIED18Bernardo Dominic
1044Mayumi T ButtFrance2024-04-29Printing Dimensions NEW82Anna Fali
1045Faith O InouyeAustralia2024-04-27Feltz Printing Service RENEWAL64Onyama Limba
1046Leon K OstroskyAustralia2024-05-03Feltz Printing Service UNQUALIFIED55Anna Fali
1047Ashley N MacleadAustralia2024-05-12Chapman, Ross E Esq UNQUALIFIED78Asiya Javayant
1048Jeanfrancois F NickaSpain2024-04-30Feiner Bros QUALIFIED17Elwin Sharvill
1049Cody D FigeroaFrance2024-04-28Feltz Printing Service RENEWAL64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maisha X FollerSpainXuxue Feng NEW
Deepesh H WaycottRussiaAsiya Javayant PROPOSAL
Maisha O KuskoGermanyIvan Magalhaes UNQUALIFIED
Tony I VenereRussiaAnna Fali PROPOSAL
David S FollerArgentinaAmy Elsner QUALIFIED
Isabel V StockhamArgentinaAnna Fali NEGOTIATION
Aika G PaprockiJapanIvan Magalhaes PROPOSAL
Greenwood L FigeroaIndiaAmy Elsner NEGOTIATION
Aruna N PoquetteGermanyIoni Bowcher NEW
Claire J StensethGermanyElwin Sharvill RENEWAL
Sinclair U RimUnited KingdomElwin Sharvill NEW
Ashley Z PoquetteArgentinaXuxue Feng NEGOTIATION
Faith I ButtIndiaIvan Magalhaes QUALIFIED
Izzy F DoeSpainAsiya Javayant PROPOSAL
Arvin R BriddickCanadaOnyama Limba NEW
Jones T DoeIndiaIvan Magalhaes NEGOTIATION
Antonio J PaprockiUnited KingdomElwin Sharvill QUALIFIED
Kaitlin D NestleArgentinaStephen Shaw QUALIFIED
Wickens A SaylorsArgentinaOnyama Limba UNQUALIFIED
Sinclair Y SlusarskiIndiaXuxue Feng PROPOSAL
Antonio E GillianBrazilIoni Bowcher UNQUALIFIED
Silvio J NickaArgentinaIoni Bowcher UNQUALIFIED
Aditya B GarufiRussiaBernardo Dominic NEW
Johnson M BologniaRussiaAmy Elsner QUALIFIED
Julie Y MaletBrazilAnna Fali QUALIFIED
Antonio C GillianBrazilAsiya Javayant RENEWAL
Greenwood F DilliardItalyBernardo Dominic PROPOSAL
Jeanfrancois E FerenczAustraliaAsiya Javayant NEW
Smith K MorascaItalyXuxue Feng QUALIFIED
Mayumi J CaudyJapanStephen Shaw NEW
Smith G VocelkaFranceXuxue Feng NEGOTIATION
Aruna J StockhamUnited KingdomIoni Bowcher NEW
Tony V PerinAustraliaElwin Sharvill UNQUALIFIED
Aditya X MaletJapanAmy Elsner NEW
Jeanfrancois B RimGermanyIvan Magalhaes RENEWAL
Jefferson E FlosiArgentinaBernardo Dominic QUALIFIED
Aruna M CaldareraJapanAmy Elsner NEW
Deepesh F DoeFranceIoni Bowcher PROPOSAL
Tony X AmigonGermanyAnna Fali PROPOSAL
Cody E FlosiItalyIoni Bowcher QUALIFIED
Salvatore Y DarakjyItalyOnyama Limba PROPOSAL
Julie X VocelkaArgentinaIoni Bowcher PROPOSAL
Leja X AlbaresIndiaOnyama Limba NEW
Jennifer L TollnerAustraliaAmy Elsner QUALIFIED
Ivar I RimIndiaElwin Sharvill NEW
Aditya U PerinSpainIvan Magalhaes RENEWAL
Isabel H MaletJapanAnna Fali NEW
Leja U MorascaRussiaIoni Bowcher RENEWAL
Nicolas A GillianIndiaStephen Shaw QUALIFIED
Adams X KuskoBrazilXuxue Feng QUALIFIED
Frozen Columns
Name
Maisha K Perin
Greenwood T Kolmetz
Nicolas X Venere
Ivar W Vocelka
Chavez I Foller
James F Figeroa
Ivar H Gillian
James J Vocelka
Francesco S Maclead
Misaki S Maclead
Misaki B Glick
Jeanfrancois U Bolognia
Isabel O Dilliard
Munro R Ruta
Ashley B Figeroa
Aika U Gaucho
Mujtaba V Perin
Aika Q Bowley
Stacey N Malet
Mujtaba H Malet
Smith R Schemmer
Faith N Iturbide
Jennifer E Figeroa
Jeanfrancois H Iturbide
Darci Z Nicka
Antonio G Marrier
Claire L Paprocki
Smith Z Campain
Murillo T Schemmer
Aika B Morasca
Adams S Tollner
Morrow X Figeroa
Deepesh T Royster
Aditya E Stockham
Mayumi J Albares
Isabel M Caudy
Smith T Figeroa
Salvatore X Inouye
Murillo V Waycott
Ashley P Rim
Izzy X Gaucho
Stacey Y Sergi
Morrow X Poquette
Adams W Gaucho
Chavez X Caldarera
Murillo B Venere
Rodrigues C Bowley
Leon Q Chui
Kaitlin W Kolmetz
Antonio J Bowley
IdCountryDate
1000Brazil2024-05-01
1001Japan2024-05-07
1002Australia2024-04-24
1003Japan2024-05-08
1004France2024-04-29
1005France2024-04-26
1006Japan2024-04-25
1007Spain2024-05-08
1008Canada2024-05-02
1009Spain2024-04-17
1010Germany2024-05-13
1011Spain2024-05-05
1012France2024-04-30
1013France2024-04-21
1014Japan2024-04-25
1015Argentina2024-05-08
1016Australia2024-04-20
1017Germany2024-05-03
1018Spain2024-04-17
1019Brazil2024-04-21
1020Japan2024-04-28
1021United Kingdom2024-05-04
1022Russia2024-05-09
1023Canada2024-04-24
1024France2024-05-11
1025Italy2024-04-28
1026Argentina2024-05-07
1027Russia2024-04-19
1028France2024-04-17
1029Italy2024-04-28
1030France2024-05-12
1031Argentina2024-04-28
1032India2024-04-16
1033Brazil2024-05-13
1034Argentina2024-04-15
1035Japan2024-04-26
1036Italy2024-04-15
1037France2024-05-01
1038Canada2024-04-28
1039Brazil2024-04-15
1040Brazil2024-04-17
1041Germany2024-04-25
1042India2024-04-23
1043Brazil2024-04-19
1044India2024-05-10
1045Japan2024-04-28
1046Canada2024-05-13
1047France2024-05-07
1048Spain2024-04-26
1049India2024-05-10

On-Demand Data

NameIdCountryDate
Cody P Wieser1000Australia2024-04-24
Cody Z Royster1001Australia2024-04-30
Murillo E Poquette1002United Kingdom2024-05-10
Izzy M Gillian1003Russia2024-05-09
Greenwood I Foller1004Russia2024-05-03
Faith S Amigon1005Australia2024-04-22
Antonio P Stockham1006Italy2024-04-28
Darci M Paprocki1007United Kingdom2024-04-17
Mayumi B Bolognia1008Japan2024-04-27
Nicolas G Bolognia1009Canada2024-05-13
Johnson Z Butt1010United Kingdom2024-04-15
Costa C Vocelka1011Australia2024-05-13
Sinclair J Bolognia1012Germany2024-04-14
Claire K Foller1013Australia2024-04-14
Darci Q Malet1014Australia2024-05-01
Leja K Figeroa1015Canada2024-05-13
Silvio H Tollner1016Japan2024-04-21
Ivar V Morasca1017Italy2024-05-05
Jefferson Z Iturbide1018Japan2024-04-27
Alejandro M Briddick1019India2024-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin L SchemmerGermanyAmy Elsner PROPOSAL
Alejandro K MorascaFranceOnyama Limba NEGOTIATION
Cody A CampainJapanAmy Elsner PROPOSAL
Costa Y IturbideItalyIvan Magalhaes NEW
Silvio C AlbaresItalyStephen Shaw NEGOTIATION
Ricardo B SaylorsAustraliaAsiya Javayant RENEWAL
Stacey J RutaItalyAmy Elsner UNQUALIFIED
Ricardo L OstroskySpainAmy Elsner NEW
Leon Y ButtCanadaIoni Bowcher PROPOSAL
Kadeem H KuskoAustraliaOnyama Limba RENEWAL
Isabel S IturbideCanadaBernardo Dominic PROPOSAL
Munro V NestleJapanBernardo Dominic NEW
Aruna R FlosiJapanAmy Elsner NEGOTIATION
Maisha I StockhamFranceAmy Elsner NEW
Costa B DarakjyFranceOnyama Limba NEGOTIATION
Leon F CampainUnited KingdomAmy Elsner NEW
Jennifer U TollnerIndiaXuxue Feng QUALIFIED
Cody B NestleRussiaAsiya Javayant QUALIFIED
Jeanfrancois T PoquetteAustraliaXuxue Feng QUALIFIED
Alejandro A AlbaresBrazilIoni Bowcher NEGOTIATION
Rodrigues H BowleyRussiaElwin Sharvill PROPOSAL
Claire D MarrierBrazilXuxue Feng NEGOTIATION
Jennifer V StensethAustraliaAmy Elsner UNQUALIFIED
Aruna G FlosiGermanyAmy Elsner NEGOTIATION
Adams I NickaRussiaIoni Bowcher UNQUALIFIED
David C BriddickSpainIvan Magalhaes UNQUALIFIED
Nicolas I GarufiGermanyStephen Shaw NEGOTIATION
Murillo O SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Arvin G InouyeSpainIoni Bowcher RENEWAL
Julie V DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Juan U BriddickFranceOnyama Limba PROPOSAL
Maisha J AmigonFranceXuxue Feng QUALIFIED
Costa I KuskoIndiaOnyama Limba UNQUALIFIED
Leja U CampainSpainXuxue Feng RENEWAL
Leon E MaletIndiaAmy Elsner NEGOTIATION
Faith S RoysterAustraliaXuxue Feng NEW
Arvin W BologniaAustraliaBernardo Dominic RENEWAL
Misaki W SergiJapanElwin Sharvill NEW
Tony O OstroskyGermanyIvan Magalhaes PROPOSAL
Chavez G ShinkoGermanyIoni Bowcher 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>