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
Emily K RutaUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba E SergiBrazilXuxue Feng RENEWAL
Misaki S StockhamFranceAmy Elsner UNQUALIFIED
Ashley W DoeItalyIvan Magalhaes UNQUALIFIED
Antonio G SergiFranceXuxue Feng QUALIFIED
Tony I OstroskyFranceAsiya Javayant PROPOSAL
Adams N PaprockiRussiaAsiya Javayant QUALIFIED
Isabel G GlickJapanAmy Elsner UNQUALIFIED
Mayumi B OstroskyRussiaStephen Shaw PROPOSAL
Silvio J FerenczAustraliaAmy Elsner PROPOSAL
Antonio Z DoeIndiaElwin Sharvill UNQUALIFIED
Wickens E KuskoCanadaOnyama Limba NEW
Mujtaba D StockhamCanadaAnna Fali NEGOTIATION
Jefferson Y WaycottItalyAmy Elsner PROPOSAL
Costa R BowleyCanadaAmy Elsner PROPOSAL
Isabel C KuskoFranceStephen Shaw NEW
Cody V BologniaCanadaAmy Elsner UNQUALIFIED
Costa K StensethItalyStephen Shaw NEW
Sinclair W WhobreyIndiaStephen Shaw NEGOTIATION
Clifford H FigeroaJapanAmy Elsner NEGOTIATION
Stacey O MorascaArgentinaOnyama Limba UNQUALIFIED
Sinclair H GauchoItalyOnyama Limba NEW
Antonio K CampainUnited KingdomAmy Elsner NEW
Mayumi O AmigonArgentinaIoni Bowcher QUALIFIED
Morrow R StockhamJapanAsiya Javayant RENEWAL
Smith Z MorascaFranceIoni Bowcher RENEWAL
Greenwood R MacleadArgentinaXuxue Feng UNQUALIFIED
Mayumi F InouyeFranceXuxue Feng PROPOSAL
Maria E KuskoAustraliaIoni Bowcher UNQUALIFIED
Chavez X WaycottAustraliaOnyama Limba NEW
Darci K CaldareraRussiaAmy Elsner PROPOSAL
Chavez T SchemmerItalyAmy Elsner NEGOTIATION
Smith W CaldareraUnited KingdomAnna Fali NEGOTIATION
Deepesh A DoeItalyIoni Bowcher PROPOSAL
Tony E WieserCanadaAmy Elsner NEW
Jennifer K VenereGermanyElwin Sharvill NEW
Chavez P FigeroaCanadaIvan Magalhaes PROPOSAL
Julie R BologniaIndiaAnna Fali QUALIFIED
Jones B ShinkoSpainStephen Shaw RENEWAL
Ashley V MorascaGermanyIvan Magalhaes NEGOTIATION
Jennifer L RoysterAustraliaElwin Sharvill QUALIFIED
Ashley E TollnerGermanyAmy Elsner PROPOSAL
Sinclair D FerenczUnited KingdomIoni Bowcher PROPOSAL
Kaitlin Y GillianCanadaBernardo Dominic NEGOTIATION
Nicolas O MaletJapanAnna Fali NEW
Arvin P VocelkaBrazilAsiya Javayant RENEWAL
Arvin F MarrierArgentinaIoni Bowcher NEGOTIATION
Jones E FlosiUnited KingdomAnna Fali NEW
James S BowleyCanadaBernardo Dominic NEGOTIATION
Misaki D RimIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore E PaprockiAustraliaXuxue Feng NEGOTIATION
Izzy X FigeroaUnited KingdomStephen Shaw NEW
Aika U NestleJapanAsiya Javayant PROPOSAL
Aditya T MacleadAustraliaAmy Elsner QUALIFIED
Smith M TollnerJapanAsiya Javayant QUALIFIED
Leon L MaletCanadaOnyama Limba PROPOSAL
Deepesh T CampainJapanIvan Magalhaes UNQUALIFIED
Deepesh L RulapaughFranceIoni Bowcher PROPOSAL
Salvatore Y PerinUnited KingdomOnyama Limba NEGOTIATION
Jones L WieserArgentinaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens J WhobreyCanada2024-04-15Rousseaux, Michael Esq QUALIFIED84Bernardo Dominic
1001Nicolas C MarrierArgentina2024-04-24Feltz Printing Service PROPOSAL7Asiya Javayant
1002Jefferson L OstroskyUnited Kingdom2024-04-21Chemel, James L Cpa UNQUALIFIED7Xuxue Feng
1003Greenwood C AmigonGermany2024-04-28Rangoni Of Florence RENEWAL63Ivan Magalhaes
1004Smith A MacleadBrazil2024-04-16Feiner Bros NEW54Anna Fali
1005Julie P KuskoSpain2024-04-20Buckley Miller Wright PROPOSAL18Onyama Limba
1006Isabel Z RutaSpain2024-04-26Chanay, Jeffrey A Esq PROPOSAL28Ivan Magalhaes
1007Salvatore U ButtIndia2024-04-29King, Christopher A Esq NEW36Ivan Magalhaes
1008Emily Q GillianFrance2024-04-29Dorl, James J Esq PROPOSAL1Stephen Shaw
1009Nicolas V ShinkoAustralia2024-04-26Benton, John B Jr NEW30Anna Fali
1010Sinclair Z DarakjyArgentina2024-04-16Rangoni Of Florence NEW92Xuxue Feng
1011Ivar S MorascaSpain2024-04-28Printing Dimensions NEW62Ioni Bowcher
1012Johnson M ButtJapan2024-04-07Buckley Miller Wright RENEWAL11Asiya Javayant
1013Silvio L FigeroaSpain2024-04-04Chapman, Ross E Esq NEW44Amy Elsner
1014Deepesh K BowleyCanada2024-04-15Dorl, James J Esq NEGOTIATION14Ivan Magalhaes
1015Maria L WaycottJapan2024-04-27Chanay, Jeffrey A Esq NEGOTIATION41Anna Fali
1016Alejandro B DilliardSpain2024-04-05Buckley Miller Wright RENEWAL76Amy Elsner
1017Wickens S ShinkoSpain2024-04-10Feltz Printing Service NEGOTIATION67Anna Fali
1018Johnson A FlosiCanada2024-04-23Morlong Associates QUALIFIED46Bernardo Dominic
1019Adams K MaletBrazil2024-04-15King, Christopher A Esq NEGOTIATION42Xuxue Feng
1020Costa W TollnerJapan2024-04-03Dorl, James J Esq NEGOTIATION80Stephen Shaw
1021Isabel J RutaGermany2024-04-02Buckley Miller Wright NEGOTIATION65Elwin Sharvill
1022Munro O FollerCanada2024-04-07Rangoni Of Florence NEGOTIATION74Elwin Sharvill
1023Kadeem O AlbaresUnited Kingdom2024-04-17Dorl, James J Esq RENEWAL41Elwin Sharvill
1024Mujtaba V AmigonGermany2024-04-19Rousseaux, Michael Esq NEW38Stephen Shaw
1025Aika Y ChuiJapan2024-04-24Chapman, Ross E Esq PROPOSAL67Ioni Bowcher
1026Izzy G KolmetzJapan2024-04-17Commercial Press QUALIFIED68Bernardo Dominic
1027Adams B VenereCanada2024-04-10Feltz Printing Service NEGOTIATION1Anna Fali
1028Emily O KolmetzUnited Kingdom2024-04-02Commercial Press UNQUALIFIED15Stephen Shaw
1029Greenwood C MarrierFrance2024-04-23Feltz Printing Service PROPOSAL85Xuxue Feng
1030David E NestleBrazil2024-04-09Dorl, James J Esq PROPOSAL21Ioni Bowcher
1031Aruna M MacleadCanada2024-04-04Rousseaux, Michael Esq NEGOTIATION4Ivan Magalhaes
1032Rodrigues B VenereSpain2024-04-02Printing Dimensions RENEWAL98Bernardo Dominic
1033Faith I RutaJapan2024-04-28Rangoni Of Florence UNQUALIFIED14Ivan Magalhaes
1034Jeanfrancois P VocelkaJapan2024-04-02Chanay, Jeffrey A Esq NEW40Asiya Javayant
1035Kadeem D SaylorsJapan2024-04-08Truhlar And Truhlar Attys NEW74Elwin Sharvill
1036Silvio X PerinJapan2024-04-20Morlong Associates NEW86Stephen Shaw
1037Adams S AlbaresFrance2024-04-26Morlong Associates UNQUALIFIED91Amy Elsner
1038Jeanfrancois E InouyeItaly2024-04-21Printing Dimensions NEW15Xuxue Feng
1039Francesco E WhobreyIndia2024-04-03Commercial Press QUALIFIED23Anna Fali
1040Tony L FerenczArgentina2024-04-30Benton, John B Jr UNQUALIFIED36Onyama Limba
1041Emily H GauchoFrance2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED64Bernardo Dominic
1042Johnson X GarufiArgentina2024-04-29Printing Dimensions UNQUALIFIED99Stephen Shaw
1043Munro Q GarufiJapan2024-04-27Feltz Printing Service QUALIFIED0Amy Elsner
1044Mayumi M NickaFrance2024-04-08Buckley Miller Wright QUALIFIED96Stephen Shaw
1045Jennifer L CaudyGermany2024-04-02Printing Dimensions NEW56Asiya Javayant
1046Alejandro A MorascaIndia2024-04-04King, Christopher A Esq NEGOTIATION83Ivan Magalhaes
1047Jeanfrancois W PerinCanada2024-04-11Feiner Bros PROPOSAL29Amy Elsner
1048Misaki A GlickFrance2024-04-23Chanay, Jeffrey A Esq PROPOSAL73Onyama Limba
1049Morrow Q RulapaughArgentina2024-04-09Buckley Miller Wright PROPOSAL87Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez U PerinAustraliaOnyama Limba NEGOTIATION
Ivar Y CaldareraIndiaAmy Elsner NEW
Ricardo T MaletCanadaAnna Fali PROPOSAL
Arvin W TollnerIndiaBernardo Dominic NEW
Kaitlin T KolmetzIndiaAsiya Javayant UNQUALIFIED
Leon K FerenczItalyIvan Magalhaes QUALIFIED
Alejandro K BriddickItalyBernardo Dominic NEGOTIATION
Antonio K ButtSpainIoni Bowcher NEGOTIATION
Stacey E StockhamFranceIoni Bowcher QUALIFIED
Ivar C ShinkoCanadaIvan Magalhaes NEW
Maria D VenereBrazilXuxue Feng PROPOSAL
Costa O VenereItalyXuxue Feng RENEWAL
Leja V SchemmerJapanBernardo Dominic RENEWAL
Maisha A FigeroaItalyXuxue Feng UNQUALIFIED
Silvio L OldroydSpainAsiya Javayant RENEWAL
Ivar S RimRussiaOnyama Limba QUALIFIED
Emily T MorascaAustraliaElwin Sharvill PROPOSAL
Maisha X OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba W NestleCanadaAmy Elsner NEW
Jefferson V StensethBrazilIvan Magalhaes NEW
Jefferson L WaycottAustraliaElwin Sharvill NEGOTIATION
Mujtaba Q PerinFranceIvan Magalhaes UNQUALIFIED
Cody G CaldareraBrazilAsiya Javayant PROPOSAL
Emily P TollnerJapanStephen Shaw UNQUALIFIED
Silvio E InouyeCanadaXuxue Feng UNQUALIFIED
Leja I FerenczGermanyElwin Sharvill QUALIFIED
Isabel C DarakjySpainXuxue Feng NEW
Costa R PoquetteRussiaAmy Elsner NEW
Ivar U WhobreyBrazilIvan Magalhaes NEGOTIATION
James K SchemmerIndiaAnna Fali QUALIFIED
Aika I IturbideArgentinaAnna Fali NEGOTIATION
Tony B FollerAustraliaXuxue Feng PROPOSAL
Wickens S VocelkaGermanyXuxue Feng QUALIFIED
Deepesh F SchemmerJapanIoni Bowcher NEW
Wickens P MorascaIndiaStephen Shaw PROPOSAL
Darci H ChuiIndiaElwin Sharvill QUALIFIED
Emily J GillianBrazilOnyama Limba RENEWAL
Rodrigues A TollnerIndiaIvan Magalhaes RENEWAL
Murillo L CampainBrazilXuxue Feng QUALIFIED
Ricardo E CampainGermanyBernardo Dominic RENEWAL
Ivar C VenereFranceAnna Fali UNQUALIFIED
Murillo J KuskoRussiaAnna Fali NEW
Aruna Q FerenczArgentinaIoni Bowcher RENEWAL
Izzy N NickaBrazilStephen Shaw UNQUALIFIED
Leja W BologniaBrazilBernardo Dominic PROPOSAL
Rodrigues H IturbideBrazilStephen Shaw QUALIFIED
Aruna N StockhamSpainOnyama Limba NEGOTIATION
Juan D FollerItalyStephen Shaw NEW
Antonio V VocelkaJapanIoni Bowcher NEW
Jennifer U GillianIndiaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Alejandro U Tollner
Misaki J Bolognia
Julie N Shinko
Ashley B Morasca
Munro N Caldarera
David N Shinko
Morrow Z Flosi
Johnson V Vocelka
Silvio T Briddick
Jefferson K Paprocki
Leon R Oldroyd
Julie J Ferencz
Salvatore C Ferencz
David J Malet
Clifford H Nicka
Tony E Schemmer
Salvatore A Albares
Nicolas D Rulapaugh
Aditya Q Whobrey
Maria L Waycott
Kadeem U Waycott
Antonio S Nestle
Aditya J Malet
James S Figeroa
Munro G Tollner
Izzy V Gaucho
Mayumi T Nicka
Kadeem W Albares
Costa Y Bolognia
Ashley L Rim
Kaitlin C Morasca
Claire I Ostrosky
Darci V Nestle
Munro E Malet
Tony W Malet
Julie Z Malet
Ricardo P Wieser
Darci M Flosi
Cody D Perin
Arvin I Stockham
Stacey B Briddick
Kadeem T Maclead
Francesco J Royster
Juan F Gaucho
Smith Y Rulapaugh
Maisha F Oldroyd
Isabel Z Caudy
Nicolas R Figeroa
Faith P Ferencz
Leja Z Ostrosky
IdCountryDate
1000Canada2024-04-21
1001Australia2024-04-10
1002Japan2024-04-04
1003Germany2024-04-29
1004Australia2024-04-08
1005France2024-04-10
1006France2024-04-23
1007India2024-04-15
1008Italy2024-04-03
1009India2024-04-23
1010Italy2024-04-15
1011France2024-04-16
1012Argentina2024-04-12
1013Italy2024-04-15
1014France2024-04-24
1015France2024-04-09
1016Argentina2024-04-19
1017United Kingdom2024-04-28
1018India2024-04-11
1019United Kingdom2024-04-06
1020Australia2024-04-20
1021Italy2024-04-10
1022Argentina2024-04-07
1023Japan2024-04-16
1024France2024-04-05
1025India2024-04-01
1026Spain2024-04-23
1027Australia2024-04-30
1028Australia2024-04-28
1029Brazil2024-04-08
1030India2024-04-29
1031Russia2024-04-06
1032India2024-04-25
1033France2024-04-11
1034Spain2024-04-10
1035Russia2024-04-02
1036Canada2024-04-29
1037Australia2024-04-04
1038Australia2024-04-28
1039Japan2024-04-27
1040Brazil2024-04-28
1041Canada2024-04-16
1042France2024-04-08
1043Italy2024-04-20
1044Australia2024-04-20
1045Canada2024-04-01
1046Canada2024-04-10
1047Italy2024-04-18
1048Spain2024-04-24
1049Brazil2024-04-02

On-Demand Data

NameIdCountryDate
Salvatore H Nicka1000Spain2024-04-17
Isabel T Foller1001Canada2024-04-25
Chavez V Foller1002France2024-04-24
Kadeem M Nestle1003Brazil2024-04-22
Aika J Bowley1004Brazil2024-04-15
Juan S Glick1005United Kingdom2024-04-28
Munro O Sergi1006Australia2024-04-26
David D Nicka1007Spain2024-04-01
Jefferson B Marrier1008United Kingdom2024-04-27
Maisha V Slusarski1009Spain2024-04-23
Rodrigues G Campain1010Australia2024-04-16
Clifford E Ruta1011Italy2024-04-30
Aruna M Bolognia1012Italy2024-04-08
Arvin Y Malet1013Germany2024-04-21
Tony H Perin1014Australia2024-04-28
Munro B Darakjy1015Spain2024-04-15
Smith Z Malet1016India2024-04-02
Jeanfrancois P Stenseth1017Canada2024-04-18
Emily M Kolmetz1018Japan2024-04-03
Claire B Kolmetz1019France2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem X VocelkaArgentinaStephen Shaw UNQUALIFIED
Silvio B FollerAustraliaIvan Magalhaes UNQUALIFIED
Tony B RutaFranceBernardo Dominic PROPOSAL
Johnson D MacleadArgentinaIvan Magalhaes PROPOSAL
Darci M CampainCanadaIoni Bowcher QUALIFIED
David C MacleadSpainStephen Shaw NEGOTIATION
Ivar B SaylorsAustraliaStephen Shaw PROPOSAL
Isabel R WieserJapanBernardo Dominic RENEWAL
Juan C GillianFranceAsiya Javayant QUALIFIED
Smith N CaudyCanadaXuxue Feng RENEWAL
Ivar E WieserCanadaAnna Fali PROPOSAL
Ashley I GarufiBrazilIoni Bowcher UNQUALIFIED
Stacey N MarrierIndiaStephen Shaw PROPOSAL
Morrow O OstroskyIndiaIvan Magalhaes RENEWAL
James X BologniaFranceIvan Magalhaes NEW
Kaitlin W WaycottIndiaStephen Shaw NEW
Rodrigues D SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Isabel A WaycottArgentinaXuxue Feng NEGOTIATION
Maria V NickaCanadaAsiya Javayant QUALIFIED
Rodrigues A PerinIndiaIoni Bowcher NEW
Francesco P RoysterIndiaAnna Fali UNQUALIFIED
Sinclair G InouyeIndiaBernardo Dominic RENEWAL
Munro F RutaArgentinaStephen Shaw QUALIFIED
Emily J SchemmerFranceBernardo Dominic PROPOSAL
Juan S KuskoItalyAmy Elsner NEGOTIATION
Jefferson Q InouyeItalyXuxue Feng PROPOSAL
Leon X BriddickSpainAnna Fali QUALIFIED
Stacey K AmigonCanadaAsiya Javayant NEW
Salvatore P FlosiJapanAmy Elsner QUALIFIED
Jennifer W MaletBrazilAmy Elsner NEW
Juan O GlickFranceXuxue Feng UNQUALIFIED
David N BologniaItalyXuxue Feng PROPOSAL
Salvatore B AlbaresAustraliaBernardo Dominic UNQUALIFIED
Octavia L CampainSpainStephen Shaw QUALIFIED
Juan H ButtRussiaAnna Fali NEGOTIATION
Cody T PerinRussiaAsiya Javayant NEGOTIATION
Mayumi F ChuiArgentinaXuxue Feng PROPOSAL
Silvio S WieserItalyOnyama Limba QUALIFIED
Murillo O MorascaArgentinaOnyama Limba NEGOTIATION
Johnson U ButtSpainIvan Magalhaes RENEWAL

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