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
Julie B WaycottJapanOnyama Limba RENEWAL
Julie X StensethGermanyIoni Bowcher NEGOTIATION
Rodrigues E OldroydAustraliaBernardo Dominic NEGOTIATION
Morrow L MacleadIndiaAmy Elsner QUALIFIED
Clifford B VocelkaRussiaIoni Bowcher RENEWAL
Ricardo P CampainGermanyOnyama Limba NEW
Darci Q BowleyBrazilOnyama Limba RENEWAL
Kadeem C VocelkaGermanyElwin Sharvill PROPOSAL
Octavia A BologniaItalyStephen Shaw PROPOSAL
Maria E WaycottCanadaIvan Magalhaes RENEWAL
Clifford B PaprockiUnited KingdomAnna Fali NEW
Francesco J PaprockiJapanElwin Sharvill NEGOTIATION
David Y ChuiItalyStephen Shaw PROPOSAL
Aditya F AmigonItalyAsiya Javayant RENEWAL
Aika G NestleGermanyOnyama Limba UNQUALIFIED
Adams T AmigonRussiaElwin Sharvill NEGOTIATION
Ashley I RoysterFranceAsiya Javayant UNQUALIFIED
Leja R ChuiIndiaStephen Shaw QUALIFIED
Ricardo L PerinIndiaAmy Elsner NEW
Julie K GauchoUnited KingdomAnna Fali RENEWAL
Alejandro G MaletRussiaAnna Fali NEGOTIATION
Smith F NickaAustraliaAnna Fali RENEWAL
Mujtaba T RutaCanadaBernardo Dominic RENEWAL
Ivar N RutaArgentinaBernardo Dominic QUALIFIED
Murillo K GlickSpainAnna Fali UNQUALIFIED
Chavez O ShinkoSpainXuxue Feng UNQUALIFIED
Mujtaba A BologniaSpainXuxue Feng RENEWAL
Leon T MaletGermanyStephen Shaw PROPOSAL
Rodrigues X MarrierBrazilElwin Sharvill RENEWAL
Mujtaba C GlickJapanXuxue Feng PROPOSAL
Morrow H AlbaresFranceStephen Shaw PROPOSAL
Cody V ShinkoCanadaIvan Magalhaes QUALIFIED
Jefferson V WaycottBrazilXuxue Feng NEW
Morrow F PerinItalyAnna Fali RENEWAL
Stacey F PaprockiIndiaBernardo Dominic RENEWAL
Kaitlin U MacleadGermanyElwin Sharvill PROPOSAL
Aika W PerinSpainBernardo Dominic NEGOTIATION
Mayumi Q ShinkoIndiaAmy Elsner QUALIFIED
Ricardo Q KuskoRussiaAsiya Javayant RENEWAL
Darci P DoeBrazilIvan Magalhaes PROPOSAL
Morrow A PoquetteSpainBernardo Dominic UNQUALIFIED
Leon J MarrierArgentinaAnna Fali RENEWAL
Costa W MaletJapanAnna Fali UNQUALIFIED
Jones O DarakjyFranceOnyama Limba NEW
Morrow S MaletArgentinaOnyama Limba UNQUALIFIED
Darci Z CaudyGermanyXuxue Feng UNQUALIFIED
Izzy W DilliardRussiaBernardo Dominic QUALIFIED
Johnson L RulapaughAustraliaBernardo Dominic NEGOTIATION
Alejandro O VenereUnited KingdomStephen Shaw RENEWAL
Kaitlin H MorascaAustraliaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria T PaprockiUnited KingdomAsiya Javayant UNQUALIFIED
Tony Q BriddickFranceOnyama Limba RENEWAL
Jennifer D VocelkaBrazilAnna Fali NEW
Ivar D DarakjyJapanElwin Sharvill NEW
Arvin C MacleadFranceStephen Shaw NEGOTIATION
Antonio F VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Aika M ShinkoSpainBernardo Dominic NEGOTIATION
Adams R PerinUnited KingdomBernardo Dominic PROPOSAL
Murillo K AlbaresRussiaIvan Magalhaes NEW
Chavez M KolmetzRussiaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith C WaycottBrazil2024-04-12Chemel, James L Cpa QUALIFIED63Amy Elsner
1001Greenwood U AmigonFrance2024-04-22Dorl, James J Esq PROPOSAL25Bernardo Dominic
1002Smith Z DilliardJapan2024-04-19Morlong Associates RENEWAL23Ivan Magalhaes
1003Tony G CaldareraCanada2024-04-07King, Christopher A Esq NEW40Ivan Magalhaes
1004Costa X TollnerItaly2024-04-20Truhlar And Truhlar Attys PROPOSAL74Anna Fali
1005Maisha P DilliardAustralia2024-03-31Commercial Press RENEWAL99Onyama Limba
1006Smith W DoeGermany2024-03-28Feltz Printing Service RENEWAL76Onyama Limba
1007Jennifer H BologniaRussia2024-04-13Dorl, James J Esq RENEWAL57Anna Fali
1008Johnson M IturbideCanada2024-04-19Buckley Miller Wright NEGOTIATION69Ivan Magalhaes
1009Murillo S NickaSpain2024-04-04Rangoni Of Florence QUALIFIED37Ioni Bowcher
1010Kaitlin S FigeroaAustralia2024-04-02Rousseaux, Michael Esq QUALIFIED81Ioni Bowcher
1011Emily G TollnerGermany2024-04-24Morlong Associates NEGOTIATION58Ioni Bowcher
1012Ivar Y VenereAustralia2024-03-27Chemel, James L Cpa RENEWAL7Onyama Limba
1013Misaki H VocelkaCanada2024-03-29Chapman, Ross E Esq QUALIFIED24Stephen Shaw
1014Salvatore P ChuiJapan2024-04-18Feiner Bros RENEWAL42Ioni Bowcher
1015David I NestleSpain2024-04-02Feltz Printing Service QUALIFIED45Amy Elsner
1016Cody N RoysterArgentina2024-04-20Chanay, Jeffrey A Esq PROPOSAL42Amy Elsner
1017Ricardo P GarufiItaly2024-03-28Feltz Printing Service RENEWAL36Ivan Magalhaes
1018Aditya N PerinArgentina2024-04-20Chanay, Jeffrey A Esq RENEWAL96Amy Elsner
1019Sinclair I BologniaCanada2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED31Stephen Shaw
1020Clifford V CaldareraItaly2024-04-15Chapman, Ross E Esq NEW34Ivan Magalhaes
1021Deepesh I FigeroaUnited Kingdom2024-04-22Truhlar And Truhlar Attys NEW23Onyama Limba
1022Faith X InouyeItaly2024-04-17Rousseaux, Michael Esq PROPOSAL97Stephen Shaw
1023Faith A CaudyIndia2024-04-09Printing Dimensions QUALIFIED76Ivan Magalhaes
1024Aruna L FollerBrazil2024-04-23Chanay, Jeffrey A Esq NEGOTIATION58Amy Elsner
1025Murillo S GauchoFrance2024-04-19Feltz Printing Service PROPOSAL53Anna Fali
1026Jefferson K StockhamArgentina2024-04-02Chemel, James L Cpa NEW16Elwin Sharvill
1027Izzy K StockhamBrazil2024-03-28Truhlar And Truhlar Attys QUALIFIED28Xuxue Feng
1028Clifford P WieserItaly2024-04-13Truhlar And Truhlar Attys NEGOTIATION72Bernardo Dominic
1029Kadeem H SaylorsCanada2024-04-14Morlong Associates QUALIFIED18Ivan Magalhaes
1030Smith V FollerBrazil2024-04-09Dorl, James J Esq PROPOSAL78Bernardo Dominic
1031Mujtaba R DarakjyUnited Kingdom2024-04-14Dorl, James J Esq RENEWAL34Bernardo Dominic
1032Salvatore B MorascaFrance2024-04-03King, Christopher A Esq NEGOTIATION48Onyama Limba
1033David C WieserRussia2024-04-08Buckley Miller Wright PROPOSAL72Asiya Javayant
1034Faith F KolmetzJapan2024-04-20Chapman, Ross E Esq RENEWAL54Xuxue Feng
1035Stacey Q KuskoUnited Kingdom2024-04-20Truhlar And Truhlar Attys NEW49Ioni Bowcher
1036Antonio C GlickGermany2024-04-13Chapman, Ross E Esq UNQUALIFIED13Stephen Shaw
1037Isabel N AlbaresIndia2024-03-31Dorl, James J Esq RENEWAL8Xuxue Feng
1038Antonio D StockhamCanada2024-03-30Buckley Miller Wright NEW74Elwin Sharvill
1039Antonio Z NestleRussia2024-03-31Dorl, James J Esq QUALIFIED93Onyama Limba
1040Octavia M BowleyRussia2024-04-06Commercial Press NEGOTIATION40Bernardo Dominic
1041Deepesh K MorascaFrance2024-04-02King, Christopher A Esq NEW61Stephen Shaw
1042Wickens X AmigonItaly2024-04-15Chanay, Jeffrey A Esq NEGOTIATION38Ivan Magalhaes
1043Johnson P WhobreyAustralia2024-04-25Buckley Miller Wright NEW26Asiya Javayant
1044Isabel E StockhamItaly2024-04-04Benton, John B Jr UNQUALIFIED59Xuxue Feng
1045Isabel Y IturbideArgentina2024-04-01Truhlar And Truhlar Attys RENEWAL80Elwin Sharvill
1046Ivar C VenereRussia2024-03-30Morlong Associates PROPOSAL29Xuxue Feng
1047Kadeem B FollerSpain2024-04-20Chanay, Jeffrey A Esq NEGOTIATION30Xuxue Feng
1048Aditya M GlickJapan2024-04-01King, Christopher A Esq PROPOSAL50Amy Elsner
1049Ashley I KolmetzSpain2024-04-02Chemel, James L Cpa UNQUALIFIED78Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Murillo K GauchoCanadaAnna Fali NEGOTIATION
Misaki X DarakjyJapanXuxue Feng QUALIFIED
Mayumi O FigeroaAustraliaIoni Bowcher QUALIFIED
Sinclair S NickaIndiaXuxue Feng NEGOTIATION
Jennifer N SaylorsJapanAnna Fali RENEWAL
Adams G SlusarskiArgentinaElwin Sharvill QUALIFIED
Izzy R RutaAustraliaOnyama Limba UNQUALIFIED
Rodrigues K RulapaughFranceIvan Magalhaes UNQUALIFIED
Kadeem U KuskoUnited KingdomAnna Fali QUALIFIED
Aditya S CampainJapanAsiya Javayant QUALIFIED
Ivar K RutaCanadaIoni Bowcher PROPOSAL
Nicolas G NickaFranceBernardo Dominic NEW
Francesco G MaletIndiaOnyama Limba RENEWAL
Alejandro Y GarufiFranceAmy Elsner UNQUALIFIED
Wickens A VenereJapanStephen Shaw NEW
Kadeem F CaudyAustraliaOnyama Limba NEW
Ashley C OstroskyBrazilXuxue Feng NEGOTIATION
Smith Z GarufiAustraliaAnna Fali RENEWAL
Greenwood E InouyeJapanElwin Sharvill NEGOTIATION
Ivar L CaldareraArgentinaOnyama Limba PROPOSAL
Murillo H GauchoCanadaAmy Elsner NEW
Ricardo W RulapaughUnited KingdomIoni Bowcher NEW
Murillo T TollnerItalyIvan Magalhaes QUALIFIED
Octavia B TollnerSpainIvan Magalhaes RENEWAL
Mujtaba I MaletItalyElwin Sharvill NEW
Maria C VenereGermanyAsiya Javayant NEGOTIATION
Octavia W MorascaGermanyAmy Elsner NEGOTIATION
Francesco J AlbaresRussiaAnna Fali PROPOSAL
Claire X RutaSpainIvan Magalhaes UNQUALIFIED
Aika K RutaUnited KingdomXuxue Feng RENEWAL
Rodrigues Z KolmetzIndiaIvan Magalhaes PROPOSAL
Salvatore O OstroskyGermanyBernardo Dominic RENEWAL
Morrow K BowleyRussiaAmy Elsner PROPOSAL
Salvatore Z DilliardUnited KingdomOnyama Limba QUALIFIED
Smith S PaprockiFranceIvan Magalhaes RENEWAL
Smith F DoeGermanyAsiya Javayant UNQUALIFIED
Rodrigues X GauchoUnited KingdomBernardo Dominic RENEWAL
Francesco G SergiAustraliaIvan Magalhaes PROPOSAL
Chavez C BriddickJapanOnyama Limba QUALIFIED
Sinclair E AlbaresBrazilIvan Magalhaes NEW
Aika I BowleyArgentinaAnna Fali RENEWAL
David E StensethItalyOnyama Limba UNQUALIFIED
Stacey F RoysterSpainStephen Shaw PROPOSAL
Juan L KolmetzSpainAnna Fali PROPOSAL
Antonio O WieserBrazilAnna Fali NEW
Faith A AlbaresFranceElwin Sharvill PROPOSAL
Juan V SaylorsUnited KingdomStephen Shaw PROPOSAL
Wickens N BriddickSpainOnyama Limba QUALIFIED
Stacey C MorascaUnited KingdomElwin Sharvill PROPOSAL
Salvatore A MacleadAustraliaIvan Magalhaes NEW
Frozen Columns
Name
Maisha H Rim
Aruna B Bolognia
Maria M Ruta
Leja D Chui
Aika H Paprocki
Smith T Glick
Ivar M Poquette
Jones N Malet
Juan G Sergi
Ricardo Q Saylors
Francesco P Rulapaugh
Juan E Briddick
Izzy B Oldroyd
Arvin T Malet
Greenwood L Saylors
James K Tollner
Stacey Q Rulapaugh
Clifford E Nestle
Sinclair D Briddick
Maisha W Glick
Aditya U Maclead
Alejandro T Albares
Leja Y Amigon
Stacey M Dilliard
Morrow C Gillian
Munro U Gillian
Leja R Saylors
Arvin O Saylors
Jefferson S Inouye
Johnson I Campain
Faith C Schemmer
Cody K Paprocki
Sinclair L Albares
Ashley V Rim
Adams R Vocelka
Antonio A Perin
Claire M Poquette
Adams B Garufi
Stacey U Inouye
Salvatore E Whobrey
Kaitlin X Butt
Mujtaba U Nestle
David N Slusarski
Murillo P Morasca
Aika S Chui
Octavia J Schemmer
Smith K Shinko
Salvatore Z Garufi
Chavez X Tollner
David F Royster
IdCountryDate
1000United Kingdom2024-04-19
1001India2024-03-27
1002Russia2024-04-20
1003France2024-04-19
1004Australia2024-04-24
1005Australia2024-04-13
1006Italy2024-04-18
1007France2024-04-15
1008Germany2024-04-02
1009Australia2024-04-09
1010India2024-04-25
1011Italy2024-04-23
1012Australia2024-04-05
1013Australia2024-04-14
1014Canada2024-04-12
1015Italy2024-03-30
1016Russia2024-04-01
1017Russia2024-04-20
1018India2024-03-31
1019Australia2024-03-29
1020Brazil2024-04-12
1021France2024-04-16
1022Brazil2024-03-30
1023Brazil2024-04-15
1024Brazil2024-04-11
1025Japan2024-04-07
1026France2024-04-10
1027Canada2024-04-24
1028Canada2024-04-20
1029India2024-04-24
1030United Kingdom2024-04-21
1031Japan2024-03-27
1032Brazil2024-04-18
1033India2024-04-12
1034Brazil2024-04-13
1035Germany2024-04-07
1036Germany2024-04-10
1037France2024-04-18
1038Australia2024-04-24
1039France2024-04-23
1040Japan2024-04-19
1041United Kingdom2024-04-06
1042India2024-03-29
1043Australia2024-04-01
1044United Kingdom2024-04-18
1045United Kingdom2024-03-29
1046Japan2024-04-10
1047Italy2024-04-21
1048Spain2024-04-07
1049Canada2024-04-20

On-Demand Data

NameIdCountryDate
Rodrigues R Foller1000Germany2024-04-11
Nicolas E Darakjy1001United Kingdom2024-03-30
Ivar H Caldarera1002Italy2024-04-24
Stacey C Marrier1003Japan2024-04-18
Salvatore K Maclead1004United Kingdom2024-04-15
Misaki F Albares1005Italy2024-04-05
Arvin H Butt1006Canada2024-04-05
Johnson M Darakjy1007United Kingdom2024-04-23
Jennifer B Malet1008France2024-04-17
Nicolas J Malet1009India2024-04-24
Alejandro K Oldroyd1010Spain2024-03-27
Munro V Whobrey1011Australia2024-04-09
David I Chui1012Australia2024-04-14
Isabel I Perin1013Italy2024-04-21
Nicolas L Venere1014Japan2024-03-31
Jennifer C Inouye1015Argentina2024-04-23
Misaki F Malet1016Germany2024-04-09
Costa M Shinko1017Australia2024-04-20
Aruna J Gaucho1018United Kingdom2024-04-01
Stacey J Ferencz1019Argentina2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer B SlusarskiFranceIvan Magalhaes NEGOTIATION
Chavez G BologniaIndiaOnyama Limba RENEWAL
Jefferson R MorascaIndiaAnna Fali QUALIFIED
Leon C NickaItalyXuxue Feng NEGOTIATION
Johnson C OldroydItalyXuxue Feng NEGOTIATION
Faith E BologniaItalyAmy Elsner PROPOSAL
Octavia D AlbaresCanadaXuxue Feng NEGOTIATION
David R OldroydCanadaStephen Shaw RENEWAL
Silvio R GauchoSpainIvan Magalhaes PROPOSAL
Maria W RimArgentinaXuxue Feng NEGOTIATION
Ashley E GillianFranceXuxue Feng UNQUALIFIED
Aruna Z BriddickGermanyOnyama Limba PROPOSAL
Arvin X RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Octavia B StockhamIndiaAnna Fali PROPOSAL
Juan J NickaBrazilAnna Fali NEW
Isabel M StensethGermanyXuxue Feng QUALIFIED
Ricardo Q FlosiUnited KingdomAmy Elsner NEGOTIATION
Tony J WhobreyRussiaElwin Sharvill QUALIFIED
Ivar I WieserIndiaAmy Elsner UNQUALIFIED
Morrow Y BologniaGermanyAnna Fali RENEWAL
Munro H DarakjyBrazilStephen Shaw RENEWAL
Alejandro K RoysterFranceAnna Fali NEW
Ashley T KolmetzRussiaAsiya Javayant NEGOTIATION
Arvin X RulapaughBrazilIvan Magalhaes RENEWAL
Jeanfrancois M BriddickUnited KingdomAmy Elsner QUALIFIED
David O KuskoItalyAnna Fali UNQUALIFIED
Darci B PerinArgentinaAsiya Javayant NEGOTIATION
Emily J PaprockiCanadaXuxue Feng NEW
Silvio L SaylorsItalyIvan Magalhaes UNQUALIFIED
Costa X RutaFranceAnna Fali PROPOSAL
Arvin D BriddickJapanBernardo Dominic RENEWAL
Kadeem T SaylorsItalyXuxue Feng NEGOTIATION
Tony U RoysterJapanIoni Bowcher NEGOTIATION
Kadeem I WieserGermanyIoni Bowcher NEW
Mayumi J TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez Y GillianUnited KingdomElwin Sharvill UNQUALIFIED
James A BriddickBrazilElwin Sharvill PROPOSAL
Julie W ButtUnited KingdomOnyama Limba RENEWAL
Emily X PoquetteCanadaOnyama Limba UNQUALIFIED
Aruna A MorascaBrazilXuxue Feng 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>