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
Misaki U RimSpainBernardo Dominic NEGOTIATION
Isabel V BowleyBrazilOnyama Limba QUALIFIED
Greenwood P RimSpainIoni Bowcher NEGOTIATION
Leon A MacleadItalyOnyama Limba NEW
Chavez X BowleyJapanAnna Fali RENEWAL
Wickens A CampainCanadaAnna Fali PROPOSAL
Juan Z SlusarskiRussiaAsiya Javayant QUALIFIED
David W OstroskyIndiaIoni Bowcher QUALIFIED
Munro A MorascaGermanyXuxue Feng RENEWAL
Darci G AmigonBrazilBernardo Dominic UNQUALIFIED
Isabel S MaletRussiaIoni Bowcher UNQUALIFIED
Rodrigues W KuskoRussiaIoni Bowcher NEGOTIATION
Emily N FerenczArgentinaAnna Fali RENEWAL
Aditya C AlbaresGermanyIoni Bowcher RENEWAL
Ivar I VocelkaIndiaAsiya Javayant NEGOTIATION
Chavez O MaletAustraliaAnna Fali UNQUALIFIED
Ashley U OldroydArgentinaStephen Shaw NEW
Deepesh C RutaRussiaIvan Magalhaes PROPOSAL
Deepesh Y KuskoCanadaOnyama Limba UNQUALIFIED
Aruna U BologniaGermanyOnyama Limba PROPOSAL
Sinclair V StockhamBrazilAmy Elsner NEW
Costa F PaprockiJapanAnna Fali QUALIFIED
Claire L ButtSpainAsiya Javayant QUALIFIED
Kadeem T FollerCanadaOnyama Limba PROPOSAL
Jennifer F MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro Z ShinkoArgentinaIoni Bowcher NEGOTIATION
Mujtaba C FigeroaBrazilStephen Shaw RENEWAL
Juan S GillianRussiaAnna Fali RENEWAL
Smith T GauchoItalyElwin Sharvill NEGOTIATION
Antonio P ChuiGermanyIoni Bowcher QUALIFIED
Tony R RutaFranceStephen Shaw PROPOSAL
Ivar X KuskoGermanyXuxue Feng RENEWAL
Kadeem J PoquetteRussiaOnyama Limba RENEWAL
Greenwood V GillianCanadaStephen Shaw NEW
Maria E NickaUnited KingdomBernardo Dominic QUALIFIED
Antonio O KolmetzItalyBernardo Dominic QUALIFIED
Mayumi A RoysterAustraliaAsiya Javayant PROPOSAL
Kaitlin I CaudyItalyIoni Bowcher PROPOSAL
Munro E StensethFranceXuxue Feng PROPOSAL
Izzy X CampainUnited KingdomIvan Magalhaes NEGOTIATION
Leon S AlbaresAustraliaAmy Elsner PROPOSAL
Isabel M OstroskyFranceAnna Fali UNQUALIFIED
Murillo F ChuiFranceStephen Shaw PROPOSAL
Mayumi W NickaCanadaIvan Magalhaes QUALIFIED
Francesco P SlusarskiGermanyIvan Magalhaes NEW
James C VocelkaCanadaOnyama Limba NEGOTIATION
Ricardo J RoysterItalyBernardo Dominic RENEWAL
Clifford N SaylorsBrazilElwin Sharvill RENEWAL
Costa E WieserRussiaXuxue Feng RENEWAL
Izzy E TollnerItalyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci O ButtBrazilIvan Magalhaes NEW
Octavia W TollnerJapanAnna Fali NEGOTIATION
Claire Q FlosiArgentinaOnyama Limba UNQUALIFIED
Ricardo R MorascaSpainStephen Shaw NEGOTIATION
Juan J SergiArgentinaStephen Shaw NEGOTIATION
Deepesh R PerinCanadaXuxue Feng RENEWAL
Tony B GarufiItalyXuxue Feng UNQUALIFIED
Costa L ShinkoAustraliaOnyama Limba NEGOTIATION
Arvin A StensethRussiaElwin Sharvill UNQUALIFIED
Adams D MorascaArgentinaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford A MorascaRussia2024-04-01Dorl, James J Esq NEGOTIATION1Elwin Sharvill
1001James Z AlbaresBrazil2024-04-16Morlong Associates NEW71Bernardo Dominic
1002Cody O GarufiRussia2024-04-11Chemel, James L Cpa UNQUALIFIED61Onyama Limba
1003Tony I AmigonUnited Kingdom2024-04-05Printing Dimensions NEGOTIATION95Stephen Shaw
1004Morrow U NickaAustralia2024-04-07Buckley Miller Wright RENEWAL4Ivan Magalhaes
1005Darci B WieserSpain2024-04-13Morlong Associates NEGOTIATION34Asiya Javayant
1006Aditya G NickaBrazil2024-04-24Morlong Associates RENEWAL55Stephen Shaw
1007Arvin E ButtAustralia2024-04-10Printing Dimensions PROPOSAL59Onyama Limba
1008Stacey K PoquetteUnited Kingdom2024-03-31Buckley Miller Wright NEW48Ivan Magalhaes
1009Aika W FlosiBrazil2024-04-21Rangoni Of Florence NEW85Amy Elsner
1010Alejandro F DilliardUnited Kingdom2024-04-23Buckley Miller Wright NEW35Xuxue Feng
1011Leon X VocelkaCanada2024-04-08Commercial Press RENEWAL61Xuxue Feng
1012Jefferson Y VocelkaIndia2024-04-07Rangoni Of Florence QUALIFIED83Ivan Magalhaes
1013Maisha D BowleySpain2024-04-07Benton, John B Jr UNQUALIFIED82Asiya Javayant
1014Nicolas J PerinJapan2024-04-04Morlong Associates QUALIFIED41Ivan Magalhaes
1015Francesco A PaprockiJapan2024-04-04Chanay, Jeffrey A Esq RENEWAL67Elwin Sharvill
1016Aruna X RulapaughArgentina2024-04-07Truhlar And Truhlar Attys PROPOSAL41Ioni Bowcher
1017Emily A FollerJapan2024-04-06Printing Dimensions NEW73Asiya Javayant
1018Greenwood B MaletAustralia2024-04-07Chemel, James L Cpa RENEWAL30Onyama Limba
1019Jeanfrancois C FollerBrazil2024-04-27Chapman, Ross E Esq NEGOTIATION74Xuxue Feng
1020Aruna T ChuiArgentina2024-04-21Dorl, James J Esq NEGOTIATION27Elwin Sharvill
1021Munro Y SchemmerIndia2024-04-18Chemel, James L Cpa UNQUALIFIED73Bernardo Dominic
1022Sinclair S SaylorsFrance2024-04-03Rousseaux, Michael Esq RENEWAL12Elwin Sharvill
1023Faith U VenereCanada2024-04-19Chemel, James L Cpa NEGOTIATION75Stephen Shaw
1024Aika K WieserAustralia2024-04-05Morlong Associates PROPOSAL25Onyama Limba
1025Izzy Z DarakjyCanada2024-04-18Chemel, James L Cpa PROPOSAL11Onyama Limba
1026Jefferson H MarrierIndia2024-04-24Buckley Miller Wright NEGOTIATION58Onyama Limba
1027Salvatore A InouyeArgentina2024-04-13Commercial Press NEGOTIATION32Ivan Magalhaes
1028Octavia X DoeUnited Kingdom2024-04-28Benton, John B Jr PROPOSAL90Xuxue Feng
1029David P CaudyArgentina2024-04-14Printing Dimensions RENEWAL36Stephen Shaw
1030Maisha W RimCanada2024-04-13Rangoni Of Florence RENEWAL46Ivan Magalhaes
1031Alejandro R CaudyCanada2024-04-17Chemel, James L Cpa QUALIFIED52Amy Elsner
1032Munro V WieserAustralia2024-04-27Morlong Associates NEGOTIATION32Ivan Magalhaes
1033Julie W FollerGermany2024-04-26Rousseaux, Michael Esq QUALIFIED35Elwin Sharvill
1034Faith J IturbideItaly2024-04-22Rangoni Of Florence QUALIFIED51Asiya Javayant
1035Maisha E StensethUnited Kingdom2024-04-23Commercial Press NEW54Ioni Bowcher
1036Jennifer X GlickJapan2024-04-14Commercial Press RENEWAL51Stephen Shaw
1037Izzy B MacleadBrazil2024-04-10Rangoni Of Florence RENEWAL87Asiya Javayant
1038Jefferson Z IturbideGermany2024-04-28Printing Dimensions NEW4Ivan Magalhaes
1039Julie W KuskoItaly2024-04-18King, Christopher A Esq NEW29Amy Elsner
1040Munro A FigeroaGermany2024-04-24Rangoni Of Florence UNQUALIFIED30Xuxue Feng
1041Stacey A ButtSpain2024-04-16Rousseaux, Michael Esq PROPOSAL6Amy Elsner
1042Cody T TollnerFrance2024-04-11Morlong Associates UNQUALIFIED18Ioni Bowcher
1043Alejandro R MaletUnited Kingdom2024-04-19Rangoni Of Florence NEW28Xuxue Feng
1044David H IturbideRussia2024-04-13Rousseaux, Michael Esq QUALIFIED90Ioni Bowcher
1045Leon D PerinFrance2024-04-17Chapman, Ross E Esq QUALIFIED13Ivan Magalhaes
1046Aditya E DarakjyIndia2024-04-28Commercial Press NEW9Elwin Sharvill
1047Alejandro X PerinSpain2024-04-23Dorl, James J Esq UNQUALIFIED55Onyama Limba
1048Darci I KolmetzGermany2024-04-05Commercial Press RENEWAL13Xuxue Feng
1049Kaitlin E WaycottBrazil2024-04-18Feltz Printing Service UNQUALIFIED25Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria Y NickaJapanElwin Sharvill NEGOTIATION
Kadeem Q TollnerItalyStephen Shaw QUALIFIED
Francesco W AlbaresAustraliaElwin Sharvill PROPOSAL
Chavez W ButtIndiaElwin Sharvill PROPOSAL
Tony X PaprockiCanadaStephen Shaw QUALIFIED
Maisha S GauchoRussiaXuxue Feng NEGOTIATION
Mujtaba R CaudyArgentinaAnna Fali NEGOTIATION
Mujtaba N RoysterAustraliaAsiya Javayant NEGOTIATION
Nicolas D SlusarskiGermanyElwin Sharvill QUALIFIED
Johnson G WaycottSpainAmy Elsner NEGOTIATION
Misaki Y AlbaresAustraliaBernardo Dominic QUALIFIED
Morrow J PoquetteUnited KingdomIoni Bowcher QUALIFIED
Arvin M BriddickAustraliaIvan Magalhaes QUALIFIED
Misaki Y MarrierBrazilAnna Fali PROPOSAL
Morrow W ButtRussiaAnna Fali RENEWAL
Clifford V OstroskyAustraliaBernardo Dominic QUALIFIED
Johnson F WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Julie B NestleBrazilXuxue Feng RENEWAL
Costa H FlosiRussiaBernardo Dominic UNQUALIFIED
Francesco S BriddickItalyAmy Elsner QUALIFIED
Mujtaba M MarrierIndiaIoni Bowcher NEW
Smith F StensethSpainAsiya Javayant NEW
Leja I GlickGermanyAnna Fali NEGOTIATION
Faith W VenereUnited KingdomStephen Shaw RENEWAL
Chavez J BowleySpainStephen Shaw NEGOTIATION
Julie I CampainJapanIoni Bowcher UNQUALIFIED
Ashley E DarakjySpainOnyama Limba PROPOSAL
Darci F TollnerIndiaStephen Shaw NEGOTIATION
Greenwood O NestleCanadaXuxue Feng RENEWAL
Jefferson C TollnerGermanyBernardo Dominic NEGOTIATION
Smith G ButtSpainXuxue Feng NEW
Misaki T MaletBrazilIvan Magalhaes PROPOSAL
Octavia N KolmetzAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois X FollerGermanyAnna Fali NEW
Ricardo S GillianRussiaElwin Sharvill NEW
Silvio F FerenczAustraliaAnna Fali UNQUALIFIED
Deepesh K MarrierRussiaElwin Sharvill PROPOSAL
Kadeem A BriddickBrazilIoni Bowcher NEW
Maria B BowleyRussiaBernardo Dominic UNQUALIFIED
James C PaprockiFranceIoni Bowcher NEW
Antonio W StensethArgentinaIvan Magalhaes NEGOTIATION
Aruna C FlosiGermanyIoni Bowcher NEW
Antonio H SaylorsJapanOnyama Limba UNQUALIFIED
Emily I GauchoUnited KingdomStephen Shaw RENEWAL
Leon S MacleadArgentinaAsiya Javayant QUALIFIED
Jennifer O WieserSpainAmy Elsner NEGOTIATION
Mujtaba B FigeroaAustraliaAnna Fali QUALIFIED
Jefferson M OldroydAustraliaOnyama Limba UNQUALIFIED
Greenwood V NickaFranceIvan Magalhaes PROPOSAL
Kadeem T OstroskyGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Faith J Campain
Aruna A Malet
Jones N Butt
Aika X Slusarski
Octavia K Waycott
Stacey J Dilliard
Francesco K Campain
Silvio J Perin
Emily H Iturbide
Misaki K Briddick
Rodrigues Q Inouye
Nicolas N Nicka
Emily K Waycott
Emily N Chui
Jones I Figeroa
Deepesh F Briddick
Izzy J Iturbide
Ivar E Marrier
Isabel Z Caldarera
Ashley V Waycott
Wickens G Stenseth
Octavia C Kolmetz
Arvin J Gaucho
Octavia X Foller
James M Ferencz
Rodrigues M Nicka
Leon N Perin
Mayumi I Briddick
Antonio J Gaucho
Sinclair G Paprocki
Murillo C Darakjy
Maisha P Nicka
Jennifer G Nicka
Isabel Q Oldroyd
Mayumi W Gillian
Aditya G Sergi
Maria T Albares
Jones O Stenseth
Leja J Caldarera
Johnson G Kolmetz
Octavia R Malet
Aika U Kolmetz
Misaki V Kolmetz
Kadeem K Briddick
Deepesh Q Nestle
Francesco C Nestle
Nicolas A Royster
Morrow U Dilliard
Alejandro Y Butt
Mujtaba E Perin
IdCountryDate
1000Brazil2024-04-05
1001Argentina2024-04-08
1002Australia2024-04-27
1003Russia2024-04-06
1004Germany2024-04-26
1005Australia2024-04-12
1006Japan2024-04-23
1007India2024-04-25
1008India2024-04-11
1009Canada2024-04-10
1010United Kingdom2024-04-19
1011France2024-04-04
1012Brazil2024-04-22
1013Brazil2024-04-23
1014United Kingdom2024-04-21
1015Germany2024-04-05
1016India2024-04-21
1017United Kingdom2024-04-09
1018Japan2024-04-18
1019United Kingdom2024-04-23
1020France2024-04-04
1021Russia2024-04-09
1022Japan2024-04-13
1023France2024-04-21
1024Argentina2024-04-19
1025Japan2024-04-29
1026Brazil2024-04-21
1027Brazil2024-04-17
1028France2024-04-23
1029Argentina2024-04-21
1030United Kingdom2024-04-29
1031Italy2024-04-16
1032Australia2024-04-17
1033Japan2024-04-26
1034United Kingdom2024-04-14
1035Germany2024-04-12
1036Canada2024-04-09
1037Australia2024-04-23
1038India2024-04-12
1039United Kingdom2024-04-13
1040Germany2024-04-21
1041Italy2024-04-12
1042Germany2024-03-31
1043Russia2024-04-08
1044Brazil2024-04-20
1045Germany2024-04-03
1046Italy2024-04-01
1047Japan2024-04-24
1048Germany2024-04-08
1049France2024-04-04

On-Demand Data

NameIdCountryDate
Aika I Royster1000Spain2024-04-10
Kaitlin X Caldarera1001Canada2024-04-22
Nicolas V Figeroa1002Japan2024-04-26
Smith C Kolmetz1003Spain2024-04-02
Darci S Butt1004France2024-04-14
Octavia Q Oldroyd1005Japan2024-04-10
Mujtaba E Ferencz1006Japan2024-04-16
Ivar H Schemmer1007Australia2024-04-22
Cody N Nicka1008Spain2024-03-31
Ricardo Y Malet1009United Kingdom2024-04-08
Darci T Caldarera1010Germany2024-04-22
Kaitlin E Venere1011Japan2024-04-09
Leon Z Garufi1012Spain2024-04-23
Salvatore T Flosi1013Japan2024-04-03
Aditya Y Ruta1014Spain2024-04-23
Salvatore U Butt1015Germany2024-04-18
Silvio E Darakjy1016France2024-04-23
Jeanfrancois K Kolmetz1017Australia2024-04-26
Alejandro E Waycott1018Canada2024-04-18
Cody G Inouye1019France2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco B RimIndiaIoni Bowcher QUALIFIED
Adams I CaudyBrazilBernardo Dominic UNQUALIFIED
Aika N FlosiGermanyElwin Sharvill PROPOSAL
Claire F SchemmerCanadaAnna Fali QUALIFIED
Silvio G SchemmerBrazilAsiya Javayant PROPOSAL
Greenwood X CaudyJapanAmy Elsner NEW
Juan R ChuiUnited KingdomAnna Fali PROPOSAL
Wickens R OstroskyCanadaAnna Fali UNQUALIFIED
Sinclair W AlbaresBrazilElwin Sharvill QUALIFIED
Ivar M PoquetteIndiaAnna Fali PROPOSAL
Julie T GarufiBrazilBernardo Dominic RENEWAL
Juan P OldroydSpainIvan Magalhaes RENEWAL
Jones D BologniaGermanyOnyama Limba PROPOSAL
Izzy M ChuiJapanAmy Elsner PROPOSAL
Emily M PaprockiGermanyStephen Shaw UNQUALIFIED
Maisha I GlickAustraliaAnna Fali RENEWAL
Octavia S BowleyItalyAmy Elsner NEGOTIATION
Emily X FollerIndiaElwin Sharvill QUALIFIED
Darci O RimFranceIoni Bowcher RENEWAL
Misaki U OstroskyAustraliaAsiya Javayant UNQUALIFIED
Mujtaba V StockhamCanadaElwin Sharvill NEGOTIATION
Smith U KuskoAustraliaStephen Shaw RENEWAL
Wickens L WhobreyUnited KingdomAsiya Javayant QUALIFIED
James D StockhamGermanyOnyama Limba UNQUALIFIED
Darci A FlosiArgentinaXuxue Feng NEW
Maisha P CaldareraSpainStephen Shaw RENEWAL
Kaitlin R WhobreyUnited KingdomIoni Bowcher QUALIFIED
Jennifer W CaldareraFranceAmy Elsner RENEWAL
Julie G SergiBrazilElwin Sharvill NEGOTIATION
Kadeem B WieserRussiaAmy Elsner RENEWAL
David P StensethArgentinaIvan Magalhaes QUALIFIED
Julie M FigeroaRussiaBernardo Dominic PROPOSAL
Chavez Z NestleGermanyAsiya Javayant RENEWAL
Tony F VocelkaItalyAsiya Javayant NEGOTIATION
Tony U WaycottCanadaOnyama Limba NEGOTIATION
Nicolas J MorascaArgentinaAsiya Javayant UNQUALIFIED
Mayumi F ButtGermanyAsiya Javayant QUALIFIED
David Y MacleadItalyOnyama Limba PROPOSAL
Arvin S GarufiGermanyIvan Magalhaes RENEWAL
Ashley H GlickSpainXuxue Feng NEW

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