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
Ashley F PoquetteBrazilAnna Fali UNQUALIFIED
Salvatore U TollnerItalyOnyama Limba UNQUALIFIED
Mayumi P AlbaresJapanAmy Elsner UNQUALIFIED
Arvin Y GlickCanadaAnna Fali NEGOTIATION
Leon D BriddickJapanOnyama Limba NEW
Murillo T WhobreyIndiaXuxue Feng PROPOSAL
Jennifer Z BologniaRussiaAnna Fali NEGOTIATION
Octavia P MacleadIndiaAmy Elsner NEW
Wickens V VenereAustraliaAnna Fali RENEWAL
Salvatore Y IturbideUnited KingdomAsiya Javayant PROPOSAL
Antonio Z FigeroaJapanIoni Bowcher NEGOTIATION
Aruna Q RulapaughUnited KingdomAnna Fali QUALIFIED
Maria W GauchoIndiaAnna Fali RENEWAL
Izzy N DarakjyUnited KingdomStephen Shaw NEW
Aruna K GauchoAustraliaAnna Fali RENEWAL
Kadeem B KolmetzJapanAsiya Javayant NEW
Francesco L CaudyItalyAnna Fali NEW
Arvin V IturbideBrazilBernardo Dominic PROPOSAL
Murillo U RoysterItalyAsiya Javayant QUALIFIED
Munro C DarakjyBrazilStephen Shaw NEW
Mujtaba G StockhamAustraliaElwin Sharvill QUALIFIED
Darci S BologniaSpainAmy Elsner UNQUALIFIED
Deepesh W MacleadCanadaIoni Bowcher QUALIFIED
Tony X RulapaughGermanyAnna Fali QUALIFIED
Darci C ButtIndiaIvan Magalhaes UNQUALIFIED
James F ButtUnited KingdomAnna Fali RENEWAL
Misaki W CampainFranceIvan Magalhaes UNQUALIFIED
Sinclair M SergiIndiaAnna Fali PROPOSAL
Jeanfrancois Y MarrierArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois K BowleyArgentinaElwin Sharvill NEW
Kaitlin G RoysterArgentinaXuxue Feng UNQUALIFIED
Jefferson H RulapaughBrazilAmy Elsner NEW
Stacey T SaylorsSpainIoni Bowcher QUALIFIED
Greenwood Q StockhamBrazilElwin Sharvill QUALIFIED
Aika Y BowleySpainAnna Fali NEGOTIATION
Jennifer G BologniaGermanyIoni Bowcher PROPOSAL
Francesco H DilliardJapanOnyama Limba QUALIFIED
Isabel E ButtAustraliaIvan Magalhaes RENEWAL
Aruna P FlosiArgentinaOnyama Limba NEGOTIATION
Salvatore J AlbaresCanadaIoni Bowcher NEW
Leja J MaletBrazilXuxue Feng RENEWAL
Maisha E TollnerSpainXuxue Feng NEW
Arvin L PoquetteJapanElwin Sharvill NEGOTIATION
Johnson Q AmigonArgentinaAmy Elsner PROPOSAL
Johnson K BowleyArgentinaOnyama Limba RENEWAL
Silvio S FigeroaFranceXuxue Feng NEGOTIATION
Deepesh C CaldareraBrazilXuxue Feng NEW
Alejandro T DoeCanadaXuxue Feng QUALIFIED
Arvin D PerinAustraliaStephen Shaw NEGOTIATION
Aika G WaycottArgentinaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey G GauchoRussiaOnyama Limba NEW
Izzy Q InouyeIndiaIoni Bowcher UNQUALIFIED
Leon X DilliardIndiaAsiya Javayant NEGOTIATION
Nicolas R VenereFranceAmy Elsner PROPOSAL
Juan O NestleUnited KingdomAmy Elsner UNQUALIFIED
Aditya U NestleAustraliaStephen Shaw RENEWAL
Leon F MaletIndiaIoni Bowcher RENEWAL
Kaitlin Y AmigonItalyOnyama Limba QUALIFIED
Antonio R AlbaresItalyStephen Shaw NEW
Deepesh O RimGermanyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues S MaletBrazil2024-04-12King, Christopher A Esq RENEWAL48Amy Elsner
1001Ashley L InouyeArgentina2024-04-15Morlong Associates RENEWAL76Onyama Limba
1002Silvio M FerenczGermany2024-04-19Feiner Bros PROPOSAL51Ioni Bowcher
1003Chavez V GarufiJapan2024-04-24Truhlar And Truhlar Attys QUALIFIED10Ivan Magalhaes
1004Darci J VenereUnited Kingdom2024-04-21Chapman, Ross E Esq QUALIFIED28Bernardo Dominic
1005Izzy O RoysterCanada2024-04-05Chapman, Ross E Esq UNQUALIFIED59Xuxue Feng
1006Jones W SlusarskiUnited Kingdom2024-04-11Buckley Miller Wright NEW13Bernardo Dominic
1007Adams F TollnerGermany2024-04-04Morlong Associates NEGOTIATION45Xuxue Feng
1008Wickens K MaletIndia2024-04-13Rousseaux, Michael Esq NEW92Ioni Bowcher
1009Wickens R BowleyFrance2024-04-29Commercial Press PROPOSAL20Ioni Bowcher
1010James T AmigonItaly2024-04-19Chemel, James L Cpa NEW82Ioni Bowcher
1011Aruna J BriddickArgentina2024-04-26Feiner Bros NEW35Anna Fali
1012Ashley N PoquetteArgentina2024-04-07Commercial Press QUALIFIED44Stephen Shaw
1013Jones F BologniaAustralia2024-04-07Rousseaux, Michael Esq QUALIFIED85Asiya Javayant
1014Misaki R CaudyFrance2024-04-29Printing Dimensions NEGOTIATION10Bernardo Dominic
1015James B BriddickBrazil2024-04-13Chemel, James L Cpa UNQUALIFIED4Amy Elsner
1016Mujtaba G AmigonRussia2024-04-25Chanay, Jeffrey A Esq NEW79Anna Fali
1017Antonio I IturbideBrazil2024-04-28Chemel, James L Cpa QUALIFIED78Anna Fali
1018Mujtaba O AmigonJapan2024-04-25Morlong Associates UNQUALIFIED88Stephen Shaw
1019Isabel P BowleyGermany2024-04-28King, Christopher A Esq UNQUALIFIED18Amy Elsner
1020Deepesh X AmigonCanada2024-04-20Rangoni Of Florence NEW82Amy Elsner
1021Rodrigues R ChuiGermany2024-04-06King, Christopher A Esq NEW26Stephen Shaw
1022Greenwood S RoysterCanada2024-04-26Chanay, Jeffrey A Esq RENEWAL80Ioni Bowcher
1023Munro R ChuiItaly2024-04-05Feltz Printing Service NEGOTIATION96Anna Fali
1024Emily P NestleFrance2024-04-07Rangoni Of Florence RENEWAL14Stephen Shaw
1025Silvio Z GlickAustralia2024-04-17Commercial Press QUALIFIED25Bernardo Dominic
1026Jennifer F DoeAustralia2024-04-21Buckley Miller Wright RENEWAL76Amy Elsner
1027Alejandro H CampainGermany2024-04-20Printing Dimensions PROPOSAL90Ivan Magalhaes
1028Ivar C RimUnited Kingdom2024-04-04Rangoni Of Florence PROPOSAL36Stephen Shaw
1029Adams T SchemmerItaly2024-04-24Chapman, Ross E Esq PROPOSAL81Elwin Sharvill
1030Silvio L BriddickUnited Kingdom2024-04-04Buckley Miller Wright PROPOSAL27Elwin Sharvill
1031Aruna G MaletIndia2024-04-12Dorl, James J Esq UNQUALIFIED80Stephen Shaw
1032Leon O WaycottArgentina2024-04-12Rousseaux, Michael Esq UNQUALIFIED1Ioni Bowcher
1033Maria G FigeroaBrazil2024-04-15Buckley Miller Wright NEGOTIATION10Elwin Sharvill
1034Murillo L MaletSpain2024-04-28Chapman, Ross E Esq RENEWAL3Xuxue Feng
1035Octavia T RulapaughArgentina2024-04-19Chanay, Jeffrey A Esq NEW35Ioni Bowcher
1036Clifford H KolmetzFrance2024-04-07Dorl, James J Esq NEGOTIATION82Elwin Sharvill
1037Deepesh X FollerBrazil2024-04-19Chanay, Jeffrey A Esq UNQUALIFIED95Bernardo Dominic
1038Salvatore H CaudyArgentina2024-04-20Commercial Press PROPOSAL72Amy Elsner
1039Emily K DarakjyGermany2024-04-05Commercial Press PROPOSAL7Bernardo Dominic
1040Arvin E GarufiSpain2024-04-08Rousseaux, Michael Esq PROPOSAL60Amy Elsner
1041Emily E GauchoAustralia2024-04-12Truhlar And Truhlar Attys NEGOTIATION93Anna Fali
1042Morrow M CaldareraSpain2024-04-26Benton, John B Jr NEGOTIATION45Asiya Javayant
1043James Y RimIndia2024-04-08Rousseaux, Michael Esq NEW33Amy Elsner
1044Ricardo N PerinItaly2024-03-31Chapman, Ross E Esq PROPOSAL65Ivan Magalhaes
1045Jones D NestleGermany2024-04-08Printing Dimensions NEGOTIATION29Asiya Javayant
1046Kaitlin F ButtBrazil2024-04-13Chanay, Jeffrey A Esq RENEWAL78Onyama Limba
1047Francesco G CaldareraUnited Kingdom2024-04-11King, Christopher A Esq NEW10Anna Fali
1048Salvatore L FerenczItaly2024-04-05Rangoni Of Florence QUALIFIED79Amy Elsner
1049Alejandro K SergiUnited Kingdom2024-04-10King, Christopher A Esq UNQUALIFIED75Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jennifer K CaudyItalyIoni Bowcher NEW
Jones U DoeItalyAsiya Javayant NEW
Mayumi Q GarufiAustraliaAnna Fali NEW
Ivar O BologniaRussiaElwin Sharvill RENEWAL
Ricardo W MorascaUnited KingdomElwin Sharvill RENEWAL
Munro U CaldareraBrazilElwin Sharvill QUALIFIED
Emily F ShinkoUnited KingdomAnna Fali UNQUALIFIED
Alejandro M MorascaGermanyAnna Fali RENEWAL
Chavez T GauchoIndiaAsiya Javayant RENEWAL
Rodrigues R DoeCanadaAsiya Javayant QUALIFIED
Ashley I ChuiSpainAsiya Javayant NEW
Maria G StockhamJapanAnna Fali NEW
Stacey Q VocelkaArgentinaAmy Elsner NEW
Silvio U DilliardFranceAnna Fali NEGOTIATION
Ashley B MorascaBrazilStephen Shaw RENEWAL
Francesco Z DilliardAustraliaBernardo Dominic RENEWAL
Jeanfrancois K StensethUnited KingdomBernardo Dominic RENEWAL
Isabel R OstroskyCanadaAnna Fali NEGOTIATION
Emily I ShinkoItalyIvan Magalhaes PROPOSAL
Jeanfrancois P AlbaresCanadaElwin Sharvill RENEWAL
James R OldroydJapanStephen Shaw RENEWAL
Ashley I AmigonSpainXuxue Feng QUALIFIED
Faith C BriddickArgentinaOnyama Limba QUALIFIED
Salvatore B VocelkaFranceXuxue Feng NEW
David M AlbaresAustraliaElwin Sharvill QUALIFIED
Greenwood O StensethItalyBernardo Dominic NEGOTIATION
Juan P CampainIndiaBernardo Dominic NEGOTIATION
Leon N SlusarskiCanadaIoni Bowcher QUALIFIED
Isabel V WaycottArgentinaAmy Elsner PROPOSAL
Juan B SlusarskiArgentinaBernardo Dominic QUALIFIED
Morrow L FollerUnited KingdomIvan Magalhaes RENEWAL
Maisha B FlosiArgentinaStephen Shaw QUALIFIED
Izzy G WieserSpainOnyama Limba RENEWAL
Darci Q PoquetteCanadaIoni Bowcher NEGOTIATION
Mujtaba I MorascaItalyIoni Bowcher NEW
Munro U ButtBrazilIoni Bowcher QUALIFIED
Johnson S BriddickArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois M PerinJapanAmy Elsner NEGOTIATION
Mujtaba M TollnerJapanStephen Shaw QUALIFIED
Smith I BowleyGermanyBernardo Dominic RENEWAL
Greenwood K GillianBrazilElwin Sharvill UNQUALIFIED
Cody C FollerIndiaAsiya Javayant QUALIFIED
Misaki S AlbaresBrazilIvan Magalhaes NEGOTIATION
James L StockhamFranceElwin Sharvill RENEWAL
Aruna W BriddickBrazilBernardo Dominic UNQUALIFIED
Jeanfrancois V KuskoIndiaAmy Elsner NEGOTIATION
Stacey Y StockhamJapanOnyama Limba PROPOSAL
Tony T TollnerGermanyIoni Bowcher NEGOTIATION
Octavia G RimSpainAsiya Javayant QUALIFIED
Salvatore D RimJapanBernardo Dominic NEGOTIATION
Frozen Columns
Name
Jefferson G Figeroa
Jefferson N Iturbide
Maria T Stenseth
Emily I Sergi
Cody N Briddick
Arvin L Schemmer
Murillo U Butt
Murillo U Wieser
Costa Q Amigon
Smith I Tollner
Silvio J Darakjy
Kaitlin Z Rulapaugh
Octavia F Waycott
Mayumi H Flosi
Emily X Butt
Aditya W Figeroa
Sinclair X Caudy
Nicolas D Kusko
Silvio M Venere
Sinclair M Waycott
Arvin H Campain
Jefferson G Darakjy
Nicolas N Saylors
Clifford G Stockham
Arvin G Kolmetz
Jeanfrancois L Whobrey
Alejandro W Bowley
Chavez Q Ruta
Faith D Garufi
Misaki A Bowley
Wickens J Wieser
David T Waycott
Nicolas G Darakjy
Chavez G Waycott
Aditya V Campain
Silvio X Caldarera
Jeanfrancois G Briddick
Ashley R Iturbide
Juan U Caldarera
Cody V Caudy
Sinclair U Saylors
Antonio I Bowley
Nicolas R Nestle
Maisha N Poquette
Mayumi A Bowley
Costa R Oldroyd
Juan N Nicka
Emily I Ostrosky
Octavia E Bowley
Leon H Sergi
IdCountryDate
1000Australia2024-04-01
1001Germany2024-04-01
1002Japan2024-04-27
1003Canada2024-04-07
1004Spain2024-04-27
1005India2024-04-23
1006India2024-04-28
1007Brazil2024-04-17
1008Australia2024-04-17
1009Russia2024-04-22
1010Spain2024-04-05
1011United Kingdom2024-04-05
1012India2024-04-29
1013Argentina2024-04-19
1014Japan2024-04-11
1015Spain2024-04-26
1016France2024-04-14
1017India2024-03-31
1018Italy2024-04-16
1019United Kingdom2024-04-13
1020India2024-04-07
1021Japan2024-04-07
1022Japan2024-04-25
1023Spain2024-04-28
1024United Kingdom2024-04-09
1025Canada2024-04-27
1026India2024-04-02
1027Spain2024-04-16
1028Italy2024-04-20
1029Germany2024-04-09
1030France2024-04-03
1031India2024-04-23
1032India2024-04-07
1033Brazil2024-04-06
1034Germany2024-04-09
1035Argentina2024-04-28
1036Italy2024-04-02
1037Argentina2024-04-26
1038India2024-04-21
1039France2024-04-09
1040Japan2024-04-13
1041Japan2024-04-14
1042Japan2024-04-13
1043Italy2024-04-29
1044Australia2024-04-06
1045Italy2024-04-01
1046Canada2024-04-22
1047Argentina2024-04-01
1048Japan2024-04-28
1049Spain2024-04-27

On-Demand Data

NameIdCountryDate
Murillo E Marrier1000Japan2024-04-21
Silvio R Butt1001Russia2024-04-14
Silvio Y Dilliard1002India2024-04-22
Claire I Wieser1003Brazil2024-04-08
Arvin C Royster1004France2024-04-20
Mayumi U Maclead1005Brazil2024-04-15
Salvatore X Nestle1006Australia2024-04-27
Smith G Poquette1007Australia2024-04-26
Jeanfrancois B Doe1008Canada2024-04-09
Misaki B Marrier1009Brazil2024-04-21
Claire I Darakjy1010Spain2024-04-05
Jeanfrancois T Wieser1011Japan2024-04-08
Aika U Dilliard1012Brazil2024-04-27
Johnson S Nestle1013India2024-04-29
Arvin U Darakjy1014United Kingdom2024-04-11
Greenwood W Amigon1015Australia2024-04-03
Kadeem Z Darakjy1016Spain2024-04-29
Tony B Ostrosky1017United Kingdom2024-04-18
Ashley E Doe1018Russia2024-04-16
Costa Q Bowley1019Spain2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Y CaldareraItalyElwin Sharvill NEGOTIATION
Emily P StockhamJapanAmy Elsner UNQUALIFIED
Aditya K RoysterFranceElwin Sharvill PROPOSAL
Aika V MorascaBrazilAnna Fali QUALIFIED
Maisha D RulapaughJapanBernardo Dominic NEW
Aika W GauchoIndiaIvan Magalhaes NEW
Mayumi J ChuiArgentinaElwin Sharvill RENEWAL
Mujtaba M DoeArgentinaIoni Bowcher PROPOSAL
Jefferson S RutaArgentinaAmy Elsner QUALIFIED
Jefferson C DarakjyIndiaElwin Sharvill UNQUALIFIED
Antonio M TollnerArgentinaAsiya Javayant PROPOSAL
Rodrigues L DilliardJapanAnna Fali UNQUALIFIED
Kadeem J RimSpainXuxue Feng NEW
Morrow X FlosiCanadaElwin Sharvill NEW
Clifford I WhobreyFranceBernardo Dominic UNQUALIFIED
Aruna S VocelkaIndiaIoni Bowcher QUALIFIED
Jefferson Y CampainUnited KingdomIoni Bowcher UNQUALIFIED
Munro H VocelkaBrazilIvan Magalhaes RENEWAL
Julie S PerinCanadaOnyama Limba UNQUALIFIED
Nicolas N DoeCanadaIoni Bowcher RENEWAL
Clifford I RulapaughItalyXuxue Feng UNQUALIFIED
Maria J CaudyAustraliaAnna Fali RENEWAL
Maisha T CaldareraFranceBernardo Dominic RENEWAL
Antonio O PerinCanadaAmy Elsner PROPOSAL
Jeanfrancois D FlosiUnited KingdomXuxue Feng RENEWAL
Izzy R KuskoUnited KingdomOnyama Limba QUALIFIED
Jones Q FlosiSpainOnyama Limba UNQUALIFIED
Smith V SergiFranceElwin Sharvill PROPOSAL
Claire T FerenczJapanAnna Fali NEGOTIATION
Izzy M TollnerArgentinaBernardo Dominic QUALIFIED
Aditya G SlusarskiIndiaIvan Magalhaes QUALIFIED
Leon U SchemmerRussiaIoni Bowcher NEGOTIATION
Arvin F SaylorsGermanyBernardo Dominic NEGOTIATION
Leon M GillianBrazilAsiya Javayant NEW
Darci O MorascaCanadaAmy Elsner RENEWAL
Maria Q SergiGermanyIoni Bowcher NEW
Emily C OstroskySpainAsiya Javayant PROPOSAL
Sinclair N SaylorsIndiaIoni Bowcher NEGOTIATION
Emily Q ButtGermanyBernardo Dominic PROPOSAL
Maisha E DilliardGermanyAnna Fali QUALIFIED

<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>