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
Isabel N SlusarskiFranceIoni Bowcher NEW
Maria Y KolmetzRussiaStephen Shaw NEW
Jones C SlusarskiJapanXuxue Feng PROPOSAL
Maisha C GauchoJapanAsiya Javayant NEGOTIATION
Tony J NickaJapanAsiya Javayant NEGOTIATION
Murillo Z InouyeGermanyOnyama Limba PROPOSAL
Misaki G StockhamBrazilAnna Fali UNQUALIFIED
Johnson Q SchemmerIndiaAnna Fali NEW
Nicolas J DilliardBrazilBernardo Dominic NEGOTIATION
Rodrigues J NickaArgentinaBernardo Dominic NEGOTIATION
Claire D MacleadSpainStephen Shaw NEW
Chavez W OstroskyItalyAmy Elsner UNQUALIFIED
Deepesh E ButtIndiaIvan Magalhaes QUALIFIED
Juan V ShinkoJapanBernardo Dominic RENEWAL
Sinclair Z DarakjyCanadaBernardo Dominic PROPOSAL
Munro Q SaylorsUnited KingdomBernardo Dominic RENEWAL
Ivar M VocelkaUnited KingdomAmy Elsner RENEWAL
Emily N CaldareraIndiaIvan Magalhaes NEGOTIATION
David D TollnerArgentinaAnna Fali PROPOSAL
Leja O DilliardBrazilOnyama Limba PROPOSAL
Aditya B FerenczSpainBernardo Dominic QUALIFIED
Izzy J PaprockiJapanAnna Fali UNQUALIFIED
Greenwood I WieserJapanAmy Elsner QUALIFIED
Izzy G NestleArgentinaXuxue Feng NEGOTIATION
David Q GillianBrazilAmy Elsner NEGOTIATION
Octavia O PerinAustraliaXuxue Feng RENEWAL
Jennifer C FlosiIndiaElwin Sharvill QUALIFIED
Darci E RulapaughGermanyAsiya Javayant NEGOTIATION
Emily C KolmetzUnited KingdomOnyama Limba RENEWAL
Alejandro N VenereRussiaStephen Shaw NEW
Jeanfrancois I IturbideGermanyElwin Sharvill NEW
Chavez K WieserJapanXuxue Feng UNQUALIFIED
James A GillianArgentinaStephen Shaw UNQUALIFIED
Stacey G VenereSpainStephen Shaw RENEWAL
Jeanfrancois P FollerArgentinaAnna Fali PROPOSAL
Sinclair S GarufiGermanyAsiya Javayant RENEWAL
Tony N AlbaresCanadaAsiya Javayant PROPOSAL
Ivar U StensethJapanStephen Shaw RENEWAL
Chavez N FerenczSpainAmy Elsner RENEWAL
Arvin X OldroydJapanOnyama Limba RENEWAL
Murillo D KuskoArgentinaIvan Magalhaes UNQUALIFIED
Arvin I PaprockiFranceAsiya Javayant UNQUALIFIED
Antonio Q GauchoAustraliaOnyama Limba PROPOSAL
Claire W IturbideSpainBernardo Dominic PROPOSAL
Maria T RutaGermanyAsiya Javayant PROPOSAL
Leon E BowleyRussiaXuxue Feng UNQUALIFIED
Francesco P TollnerIndiaBernardo Dominic RENEWAL
Aika D MacleadArgentinaAnna Fali UNQUALIFIED
Arvin T FollerBrazilOnyama Limba QUALIFIED
Leon J DoeRussiaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Chavez R KolmetzFranceXuxue Feng QUALIFIED
Wickens D VocelkaFranceAnna Fali NEW
Smith X PoquetteFranceStephen Shaw PROPOSAL
Aruna Z FigeroaItalyAsiya Javayant QUALIFIED
Octavia D FollerArgentinaAsiya Javayant NEW
Rodrigues B PaprockiGermanyStephen Shaw NEW
Aika Y FigeroaUnited KingdomStephen Shaw NEGOTIATION
Aika E GlickRussiaBernardo Dominic NEW
Munro B AlbaresCanadaBernardo Dominic PROPOSAL
Chavez L DarakjyGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey D GlickUnited Kingdom2024-04-18King, Christopher A Esq PROPOSAL76Stephen Shaw
1001Jeanfrancois V GarufiRussia2024-03-31Feltz Printing Service NEW74Anna Fali
1002Kaitlin X AlbaresUnited Kingdom2024-04-06Feltz Printing Service PROPOSAL11Xuxue Feng
1003Costa W DilliardIndia2024-04-01Feltz Printing Service UNQUALIFIED32Bernardo Dominic
1004Francesco M BologniaBrazil2024-04-22Morlong Associates QUALIFIED79Xuxue Feng
1005Claire Q SchemmerGermany2024-04-03Morlong Associates QUALIFIED22Stephen Shaw
1006Ashley W PerinBrazil2024-04-15Morlong Associates PROPOSAL8Onyama Limba
1007Emily E CampainItaly2024-04-01Feltz Printing Service QUALIFIED1Bernardo Dominic
1008Faith K CaudyGermany2024-04-18Morlong Associates PROPOSAL77Ivan Magalhaes
1009Leon R SchemmerBrazil2024-04-24Morlong Associates QUALIFIED58Asiya Javayant
1010Jeanfrancois V StockhamSpain2024-04-09Buckley Miller Wright PROPOSAL97Stephen Shaw
1011Mayumi J VocelkaItaly2024-04-17Commercial Press RENEWAL51Asiya Javayant
1012Chavez L SergiGermany2024-04-06Chapman, Ross E Esq QUALIFIED77Elwin Sharvill
1013Smith D ChuiCanada2024-04-08Truhlar And Truhlar Attys NEGOTIATION11Anna Fali
1014Ashley X CaldareraRussia2024-03-28Rangoni Of Florence PROPOSAL84Ivan Magalhaes
1015Silvio Z KolmetzRussia2024-04-12King, Christopher A Esq PROPOSAL66Ivan Magalhaes
1016Maisha U WieserBrazil2024-04-19Truhlar And Truhlar Attys NEGOTIATION52Ivan Magalhaes
1017Salvatore A FlosiFrance2024-04-08Chemel, James L Cpa PROPOSAL80Elwin Sharvill
1018Murillo B StensethJapan2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED19Elwin Sharvill
1019Costa N DarakjyIndia2024-03-29Rousseaux, Michael Esq QUALIFIED70Anna Fali
1020Clifford A FollerIndia2024-04-12Rangoni Of Florence NEW8Elwin Sharvill
1021Maisha D PaprockiRussia2024-04-16King, Christopher A Esq QUALIFIED98Onyama Limba
1022Arvin U NickaArgentina2024-04-07Feltz Printing Service NEGOTIATION45Ioni Bowcher
1023Ricardo O MacleadRussia2024-04-23Dorl, James J Esq RENEWAL87Ivan Magalhaes
1024Leja G KuskoBrazil2024-03-29Feltz Printing Service PROPOSAL41Amy Elsner
1025Julie F WaycottBrazil2024-04-16Buckley Miller Wright UNQUALIFIED21Amy Elsner
1026Leon K IturbideSpain2024-04-24Benton, John B Jr PROPOSAL44Anna Fali
1027Rodrigues U ButtCanada2024-04-04Rousseaux, Michael Esq QUALIFIED93Amy Elsner
1028Misaki G MaletSpain2024-04-09Buckley Miller Wright NEGOTIATION33Bernardo Dominic
1029Costa V FigeroaSpain2024-04-12Rousseaux, Michael Esq UNQUALIFIED65Anna Fali
1030Izzy V MorascaAustralia2024-03-31Benton, John B Jr NEW59Xuxue Feng
1031Jones C ButtAustralia2024-04-24Rousseaux, Michael Esq QUALIFIED42Ioni Bowcher
1032Arvin J FollerItaly2024-04-14Printing Dimensions UNQUALIFIED81Ivan Magalhaes
1033Jeanfrancois T SchemmerAustralia2024-03-27Feltz Printing Service NEW34Ioni Bowcher
1034Alejandro Y IturbideJapan2024-04-16Feiner Bros RENEWAL47Asiya Javayant
1035Leja V ShinkoUnited Kingdom2024-04-25Dorl, James J Esq PROPOSAL85Anna Fali
1036Arvin Q PoquetteAustralia2024-04-16King, Christopher A Esq NEW1Bernardo Dominic
1037Aruna A GlickIndia2024-04-01Benton, John B Jr QUALIFIED21Elwin Sharvill
1038Adams V AlbaresAustralia2024-04-15Feltz Printing Service NEW5Asiya Javayant
1039Ashley H FigeroaBrazil2024-04-06Feiner Bros QUALIFIED97Elwin Sharvill
1040Ricardo T CaldareraUnited Kingdom2024-04-09Buckley Miller Wright PROPOSAL42Stephen Shaw
1041Ashley W DarakjyUnited Kingdom2024-04-23Truhlar And Truhlar Attys NEW20Amy Elsner
1042Cody F GillianIndia2024-03-27Printing Dimensions PROPOSAL75Onyama Limba
1043Maisha O DoeGermany2024-04-19Truhlar And Truhlar Attys QUALIFIED67Ioni Bowcher
1044Ricardo A IturbideRussia2024-03-30Rousseaux, Michael Esq PROPOSAL54Anna Fali
1045Julie N GauchoIndia2024-04-18King, Christopher A Esq QUALIFIED81Amy Elsner
1046Jeanfrancois C MaletSpain2024-03-31Dorl, James J Esq PROPOSAL23Anna Fali
1047Kadeem H BriddickAustralia2024-04-12Rousseaux, Michael Esq NEW32Amy Elsner
1048Aika T RimAustralia2024-04-11King, Christopher A Esq QUALIFIED42Asiya Javayant
1049Tony G SergiAustralia2024-04-07Morlong Associates NEW20Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci O TollnerArgentinaIvan Magalhaes UNQUALIFIED
Mujtaba V PoquetteJapanIvan Magalhaes UNQUALIFIED
Deepesh L GlickItalyElwin Sharvill RENEWAL
David O MorascaSpainStephen Shaw RENEWAL
Smith M NestleItalyOnyama Limba QUALIFIED
Ricardo T PerinArgentinaBernardo Dominic QUALIFIED
Aditya A RoysterArgentinaIvan Magalhaes QUALIFIED
Ashley R WhobreyUnited KingdomBernardo Dominic NEW
James Y RoysterAustraliaElwin Sharvill QUALIFIED
Nicolas S WaycottRussiaElwin Sharvill UNQUALIFIED
Aruna G WhobreyIndiaOnyama Limba PROPOSAL
Juan Q GarufiArgentinaIvan Magalhaes QUALIFIED
Chavez O SergiJapanXuxue Feng NEW
Kaitlin V FigeroaGermanyXuxue Feng PROPOSAL
Smith U GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Isabel V AmigonSpainStephen Shaw PROPOSAL
Jones E BowleyUnited KingdomAnna Fali NEW
Rodrigues V KuskoArgentinaAsiya Javayant UNQUALIFIED
Smith O FollerJapanXuxue Feng NEW
Antonio V RoysterBrazilAnna Fali RENEWAL
Rodrigues Y ChuiBrazilXuxue Feng UNQUALIFIED
Emily J IturbideBrazilXuxue Feng NEGOTIATION
Ricardo E StensethAustraliaIvan Magalhaes UNQUALIFIED
Salvatore P FerenczItalyIoni Bowcher PROPOSAL
Misaki Q MaletBrazilAsiya Javayant UNQUALIFIED
Cody I RutaItalyAsiya Javayant RENEWAL
Jeanfrancois K InouyeCanadaIvan Magalhaes RENEWAL
Johnson C RutaCanadaBernardo Dominic QUALIFIED
Greenwood Z DoeArgentinaAnna Fali NEGOTIATION
Silvio C StockhamCanadaIoni Bowcher RENEWAL
Izzy C RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi T StockhamUnited KingdomElwin Sharvill NEW
Maisha T SaylorsJapanAmy Elsner NEW
Costa N GillianAustraliaBernardo Dominic RENEWAL
Mayumi C TollnerArgentinaAsiya Javayant UNQUALIFIED
Francesco J ShinkoItalyIoni Bowcher RENEWAL
Arvin V MaletSpainAsiya Javayant PROPOSAL
Murillo D SergiFranceAmy Elsner UNQUALIFIED
Mayumi N VenereIndiaIoni Bowcher QUALIFIED
Alejandro Z GauchoAustraliaIvan Magalhaes NEW
Clifford L FigeroaJapanOnyama Limba UNQUALIFIED
Chavez G VenereFranceElwin Sharvill RENEWAL
Leja P FlosiUnited KingdomAsiya Javayant PROPOSAL
Tony O RutaFranceAmy Elsner QUALIFIED
Adams S RulapaughArgentinaIoni Bowcher NEGOTIATION
David Z DilliardFranceAsiya Javayant UNQUALIFIED
Ricardo W OldroydIndiaIoni Bowcher NEW
Aika T DarakjyJapanXuxue Feng NEGOTIATION
Faith A CaudyCanadaIoni Bowcher NEGOTIATION
Juan L TollnerUnited KingdomAmy Elsner QUALIFIED
Frozen Columns
Name
Ivar P Sergi
Maria X Gillian
Murillo A Oldroyd
Emily F Nicka
Rodrigues U Glick
Maisha A Ferencz
Darci E Morasca
Tony W Stockham
Deepesh F Darakjy
Kaitlin W Glick
Nicolas R Darakjy
Faith A Inouye
Costa K Caldarera
Wickens K Bowley
Johnson R Gaucho
Costa M Poquette
Salvatore G Tollner
Izzy D Campain
Jefferson F Inouye
Maisha V Waycott
Julie P Perin
Tony X Bowley
Costa W Vocelka
Faith T Caldarera
Munro O Schemmer
Munro C Gillian
Tony A Nicka
Octavia H Gaucho
Ivar I Perin
Jones P Ostrosky
Ivar S Butt
Morrow Y Amigon
Isabel I Butt
Isabel D Campain
Maria I Ruta
Rodrigues K Butt
Alejandro I Garufi
Juan A Saylors
Leja D Wieser
Jeanfrancois T Rulapaugh
Jennifer A Bowley
Kaitlin Z Kolmetz
Alejandro L Rim
Aika O Butt
Stacey H Royster
Leon B Doe
Clifford Y Nicka
Jones L Bowley
Silvio J Campain
James V Darakjy
IdCountryDate
1000United Kingdom2024-04-07
1001Russia2024-04-18
1002Brazil2024-04-11
1003Brazil2024-04-06
1004Australia2024-04-24
1005Germany2024-04-04
1006Australia2024-04-07
1007Argentina2024-04-12
1008Italy2024-03-28
1009Japan2024-04-12
1010Japan2024-04-18
1011Italy2024-04-03
1012India2024-04-11
1013Canada2024-04-10
1014Spain2024-04-15
1015Germany2024-04-17
1016Spain2024-03-29
1017Germany2024-04-20
1018Australia2024-03-31
1019United Kingdom2024-03-31
1020France2024-04-17
1021Argentina2024-04-24
1022Spain2024-04-09
1023United Kingdom2024-04-13
1024India2024-04-10
1025Germany2024-04-01
1026United Kingdom2024-04-06
1027United Kingdom2024-04-06
1028Brazil2024-04-09
1029Japan2024-04-16
1030Argentina2024-04-08
1031Russia2024-04-02
1032Spain2024-04-03
1033Australia2024-04-01
1034Spain2024-04-12
1035Japan2024-04-07
1036Argentina2024-04-12
1037Argentina2024-04-25
1038United Kingdom2024-04-22
1039Argentina2024-04-08
1040United Kingdom2024-04-11
1041India2024-04-16
1042United Kingdom2024-04-25
1043Italy2024-04-02
1044Argentina2024-04-20
1045Japan2024-04-19
1046Spain2024-04-02
1047France2024-04-12
1048Russia2024-04-12
1049India2024-04-08

On-Demand Data

NameIdCountryDate
Murillo L Gaucho1000Argentina2024-03-30
Mayumi A Vocelka1001Canada2024-04-20
Costa J Schemmer1002Canada2024-04-08
Deepesh D Stenseth1003France2024-04-10
David S Ferencz1004Italy2024-04-03
Chavez F Waycott1005India2024-04-09
Mujtaba D Iturbide1006France2024-04-14
Julie J Nestle1007France2024-04-03
Tony Q Rim1008India2024-04-15
Isabel V Slusarski1009Germany2024-04-21
Francesco M Stenseth1010United Kingdom2024-04-12
Darci D Tollner1011Italy2024-04-20
Mayumi Y Saylors1012India2024-04-19
Murillo I Tollner1013India2024-04-16
Chavez B Venere1014Russia2024-03-31
Kadeem W Kusko1015Argentina2024-04-12
Tony Q Poquette1016Australia2024-04-11
Sinclair N Dilliard1017Italy2024-04-10
Francesco C Vocelka1018India2024-04-13
Jefferson D Perin1019Italy2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh C FigeroaItalyStephen Shaw RENEWAL
Mujtaba L FerenczFranceStephen Shaw QUALIFIED
Costa M PaprockiSpainElwin Sharvill UNQUALIFIED
Nicolas O MacleadRussiaBernardo Dominic QUALIFIED
Izzy U RulapaughSpainAnna Fali PROPOSAL
Izzy C WaycottSpainAmy Elsner PROPOSAL
Smith W PaprockiAustraliaXuxue Feng NEW
Costa K SergiItalyAnna Fali NEGOTIATION
Aika C StockhamBrazilAsiya Javayant UNQUALIFIED
Misaki W KolmetzFranceOnyama Limba UNQUALIFIED
Alejandro R NestleFranceIoni Bowcher NEGOTIATION
Leja Q KuskoArgentinaIvan Magalhaes PROPOSAL
Julie U BowleyUnited KingdomAmy Elsner PROPOSAL
James X MorascaAustraliaIvan Magalhaes NEGOTIATION
Costa N AmigonCanadaOnyama Limba PROPOSAL
Johnson H InouyeGermanyAnna Fali QUALIFIED
Jefferson P BologniaGermanyElwin Sharvill NEW
Misaki M BowleyFranceOnyama Limba RENEWAL
Emily L WaycottBrazilAnna Fali NEW
James K PaprockiItalyAsiya Javayant UNQUALIFIED
Clifford A OldroydFranceOnyama Limba PROPOSAL
Murillo W DoeSpainIvan Magalhaes PROPOSAL
Ricardo W GauchoGermanyXuxue Feng QUALIFIED
Cody Q PaprockiJapanIvan Magalhaes RENEWAL
Sinclair N NestleItalyAsiya Javayant QUALIFIED
Jefferson E MacleadArgentinaStephen Shaw PROPOSAL
Misaki K VenereIndiaOnyama Limba UNQUALIFIED
Aditya S SchemmerUnited KingdomAnna Fali RENEWAL
Adams Q WaycottUnited KingdomAmy Elsner UNQUALIFIED
Smith G VenereIndiaAsiya Javayant PROPOSAL
Salvatore Z StockhamBrazilAnna Fali UNQUALIFIED
Julie T MarrierJapanAsiya Javayant NEW
James M RoysterFranceAsiya Javayant NEGOTIATION
Johnson S GillianCanadaStephen Shaw UNQUALIFIED
Stacey F SchemmerRussiaAnna Fali RENEWAL
Silvio I FigeroaRussiaStephen Shaw PROPOSAL
Mayumi A ButtItalyStephen Shaw NEW
Claire E TollnerCanadaAsiya Javayant UNQUALIFIED
Cody S DoeCanadaBernardo Dominic RENEWAL
Arvin L ChuiBrazilBernardo Dominic 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>