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
Aika X CampainSpainBernardo Dominic PROPOSAL
Mujtaba R DarakjyUnited KingdomAmy Elsner NEGOTIATION
Deepesh Q BriddickSpainAnna Fali QUALIFIED
Munro Z MaletSpainAnna Fali QUALIFIED
Arvin Y RimItalyIoni Bowcher NEGOTIATION
Cody X ButtIndiaOnyama Limba RENEWAL
Chavez U KolmetzCanadaIvan Magalhaes NEW
Kaitlin A StockhamCanadaElwin Sharvill RENEWAL
Kaitlin P KuskoArgentinaBernardo Dominic NEGOTIATION
Misaki R DoeJapanAsiya Javayant QUALIFIED
Nicolas P WieserCanadaStephen Shaw PROPOSAL
Isabel J ButtGermanyBernardo Dominic QUALIFIED
Tony J NickaCanadaAnna Fali NEW
Leon W DoeIndiaOnyama Limba UNQUALIFIED
Mayumi L WhobreyUnited KingdomIoni Bowcher RENEWAL
Rodrigues G WieserFranceIoni Bowcher QUALIFIED
Alejandro Z WaycottSpainIoni Bowcher UNQUALIFIED
David Y MacleadCanadaBernardo Dominic UNQUALIFIED
Darci P FerenczBrazilIoni Bowcher NEW
Adams J DarakjySpainStephen Shaw UNQUALIFIED
Cody P RimJapanXuxue Feng QUALIFIED
Francesco X RimGermanyXuxue Feng QUALIFIED
Aika J ChuiItalyAsiya Javayant QUALIFIED
Maisha Q NickaAustraliaAsiya Javayant RENEWAL
Jefferson L NestleRussiaAnna Fali RENEWAL
Jefferson N PaprockiArgentinaOnyama Limba NEGOTIATION
Emily S TollnerArgentinaStephen Shaw PROPOSAL
Leon E MorascaIndiaXuxue Feng PROPOSAL
Francesco G GauchoCanadaBernardo Dominic NEW
Alejandro M DilliardCanadaElwin Sharvill RENEWAL
Smith Z InouyeFranceAnna Fali PROPOSAL
Stacey Y BriddickBrazilOnyama Limba NEW
Isabel L SergiBrazilIvan Magalhaes PROPOSAL
Izzy L BowleyAustraliaIoni Bowcher NEW
Ashley K CampainCanadaAmy Elsner RENEWAL
Smith A OstroskyIndiaBernardo Dominic RENEWAL
Smith P FigeroaIndiaXuxue Feng NEGOTIATION
Emily D GarufiBrazilElwin Sharvill RENEWAL
Izzy U ButtUnited KingdomBernardo Dominic NEGOTIATION
Antonio H KolmetzAustraliaElwin Sharvill RENEWAL
Emily V FlosiCanadaOnyama Limba RENEWAL
Izzy V TollnerRussiaIvan Magalhaes QUALIFIED
Greenwood D NickaCanadaAsiya Javayant RENEWAL
Antonio N DarakjyArgentinaStephen Shaw PROPOSAL
Antonio R GlickJapanStephen Shaw QUALIFIED
Costa J TollnerIndiaStephen Shaw QUALIFIED
Munro G NickaRussiaElwin Sharvill NEW
Jones Y SergiItalyStephen Shaw UNQUALIFIED
Aika Z GlickGermanyIoni Bowcher UNQUALIFIED
Mujtaba U SaylorsArgentinaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia H GarufiGermanyAnna Fali RENEWAL
Kaitlin X BologniaBrazilElwin Sharvill UNQUALIFIED
Mayumi Y PoquetteCanadaStephen Shaw UNQUALIFIED
Julie V GarufiBrazilIvan Magalhaes NEGOTIATION
Arvin V FerenczArgentinaAmy Elsner NEW
Aditya C GlickJapanXuxue Feng RENEWAL
Greenwood F KuskoFranceAmy Elsner PROPOSAL
Misaki F RoysterRussiaIvan Magalhaes UNQUALIFIED
Deepesh I MaletGermanyStephen Shaw QUALIFIED
Leon J GauchoUnited KingdomBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi Q OstroskyGermany2024-04-27King, Christopher A Esq RENEWAL98Ioni Bowcher
1001Kadeem O ButtItaly2024-04-08Printing Dimensions NEW50Elwin Sharvill
1002Emily J AlbaresItaly2024-04-17Dorl, James J Esq QUALIFIED15Ioni Bowcher
1003Ashley M PoquetteIndia2024-05-06Chanay, Jeffrey A Esq NEGOTIATION5Amy Elsner
1004Deepesh Z StockhamItaly2024-04-29Printing Dimensions UNQUALIFIED33Asiya Javayant
1005Tony D SlusarskiBrazil2024-04-17Feiner Bros RENEWAL28Amy Elsner
1006Julie X CaldareraRussia2024-04-07King, Christopher A Esq NEW79Onyama Limba
1007Izzy O ButtGermany2024-05-04Chanay, Jeffrey A Esq RENEWAL73Ivan Magalhaes
1008Murillo I WieserSpain2024-04-26Morlong Associates NEGOTIATION89Bernardo Dominic
1009Ashley O CampainCanada2024-04-26Chapman, Ross E Esq RENEWAL28Anna Fali
1010Faith W KolmetzSpain2024-04-07Feiner Bros QUALIFIED71Anna Fali
1011Costa U GauchoArgentina2024-05-04Buckley Miller Wright QUALIFIED73Elwin Sharvill
1012Francesco G IturbideBrazil2024-04-10Printing Dimensions QUALIFIED77Asiya Javayant
1013Mujtaba D VocelkaIndia2024-04-08Benton, John B Jr UNQUALIFIED66Asiya Javayant
1014Jeanfrancois W PoquetteSpain2024-04-12Buckley Miller Wright UNQUALIFIED28Onyama Limba
1015Clifford O PaprockiIndia2024-04-30Morlong Associates PROPOSAL16Bernardo Dominic
1016Munro I WieserItaly2024-04-22Chemel, James L Cpa PROPOSAL26Amy Elsner
1017Greenwood Y DoeJapan2024-05-02Chapman, Ross E Esq QUALIFIED45Stephen Shaw
1018Antonio M DoeCanada2024-05-02King, Christopher A Esq RENEWAL39Amy Elsner
1019Arvin G OstroskyIndia2024-04-12Benton, John B Jr NEW10Bernardo Dominic
1020Munro I NestleFrance2024-04-13Dorl, James J Esq PROPOSAL42Bernardo Dominic
1021Ricardo G SergiJapan2024-04-12Morlong Associates UNQUALIFIED23Xuxue Feng
1022Jones C CaudySpain2024-04-13Feltz Printing Service NEW4Ioni Bowcher
1023Darci E NestleArgentina2024-04-07Commercial Press UNQUALIFIED39Bernardo Dominic
1024Chavez P PaprockiFrance2024-04-20Feltz Printing Service NEGOTIATION26Stephen Shaw
1025Silvio I AlbaresItaly2024-04-07King, Christopher A Esq NEGOTIATION98Stephen Shaw
1026Stacey R DarakjyArgentina2024-04-30Chapman, Ross E Esq PROPOSAL54Stephen Shaw
1027Adams R BowleyJapan2024-04-09Morlong Associates NEGOTIATION26Ivan Magalhaes
1028Francesco K MacleadItaly2024-05-01Buckley Miller Wright NEW30Ioni Bowcher
1029Kadeem I SergiIndia2024-04-10Feltz Printing Service UNQUALIFIED1Onyama Limba
1030Salvatore F AmigonIndia2024-04-14King, Christopher A Esq NEGOTIATION96Amy Elsner
1031Mujtaba H TollnerFrance2024-04-16Chapman, Ross E Esq RENEWAL40Elwin Sharvill
1032Darci M AlbaresBrazil2024-05-01Morlong Associates NEGOTIATION42Ioni Bowcher
1033Misaki Q StockhamGermany2024-04-08Feiner Bros PROPOSAL97Amy Elsner
1034Johnson W RoysterSpain2024-04-27Truhlar And Truhlar Attys QUALIFIED90Elwin Sharvill
1035Darci X SergiFrance2024-04-23Benton, John B Jr NEGOTIATION72Xuxue Feng
1036Nicolas R ChuiFrance2024-05-02Commercial Press NEW79Amy Elsner
1037Kaitlin J KuskoBrazil2024-05-04Rousseaux, Michael Esq NEGOTIATION54Xuxue Feng
1038Arvin K GauchoItaly2024-04-12Chanay, Jeffrey A Esq NEW3Asiya Javayant
1039Stacey O ChuiFrance2024-05-01Dorl, James J Esq NEGOTIATION14Anna Fali
1040Salvatore I AlbaresArgentina2024-04-22Feiner Bros NEW15Stephen Shaw
1041Jennifer K NickaBrazil2024-04-15Chemel, James L Cpa PROPOSAL2Elwin Sharvill
1042Clifford V WieserGermany2024-04-19King, Christopher A Esq NEGOTIATION7Bernardo Dominic
1043Aditya S DoeRussia2024-05-06Rousseaux, Michael Esq UNQUALIFIED98Ivan Magalhaes
1044Costa N WhobreyItaly2024-04-07Dorl, James J Esq QUALIFIED22Amy Elsner
1045Jones B WieserUnited Kingdom2024-04-10Feiner Bros PROPOSAL7Ivan Magalhaes
1046Munro J RutaGermany2024-04-18Commercial Press NEGOTIATION25Stephen Shaw
1047Alejandro X ShinkoIndia2024-05-03Printing Dimensions QUALIFIED91Xuxue Feng
1048Greenwood G MaletItaly2024-05-06Chapman, Ross E Esq NEW64Ivan Magalhaes
1049Ivar U OldroydBrazil2024-04-08Chemel, James L Cpa PROPOSAL85Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro J CaldareraBrazilElwin Sharvill UNQUALIFIED
Smith Z FerenczAustraliaIvan Magalhaes RENEWAL
Sinclair T VenereGermanyBernardo Dominic NEW
Faith C RimArgentinaElwin Sharvill PROPOSAL
Isabel J GauchoJapanBernardo Dominic RENEWAL
Ashley T PoquetteArgentinaIvan Magalhaes NEGOTIATION
Chavez U WaycottIndiaBernardo Dominic PROPOSAL
Cody Y ChuiItalyIoni Bowcher QUALIFIED
Francesco Z NestleArgentinaXuxue Feng PROPOSAL
Silvio C TollnerAustraliaAsiya Javayant PROPOSAL
Salvatore X ChuiRussiaStephen Shaw UNQUALIFIED
Claire D FerenczItalyAmy Elsner NEGOTIATION
Alejandro K DarakjyRussiaXuxue Feng NEGOTIATION
Antonio Q ChuiCanadaIvan Magalhaes PROPOSAL
Antonio M DarakjySpainAmy Elsner UNQUALIFIED
Greenwood B FollerGermanyElwin Sharvill PROPOSAL
Costa X MaletArgentinaAmy Elsner RENEWAL
Maria V GillianGermanyBernardo Dominic PROPOSAL
Chavez M RoysterBrazilOnyama Limba QUALIFIED
Ivar E DoeUnited KingdomBernardo Dominic QUALIFIED
Francesco A BriddickItalyAnna Fali RENEWAL
Tony Z MacleadItalyAnna Fali PROPOSAL
Tony V MarrierJapanBernardo Dominic PROPOSAL
Francesco X StockhamGermanyStephen Shaw UNQUALIFIED
Leon Z MorascaItalyStephen Shaw NEW
Claire I GarufiItalyAsiya Javayant QUALIFIED
James S MaletBrazilOnyama Limba PROPOSAL
Cody V AmigonArgentinaIoni Bowcher PROPOSAL
Claire C BriddickBrazilAnna Fali PROPOSAL
Tony C FlosiArgentinaAsiya Javayant NEGOTIATION
Juan N SaylorsUnited KingdomIoni Bowcher QUALIFIED
Mayumi S GarufiJapanAnna Fali PROPOSAL
Clifford F MarrierUnited KingdomOnyama Limba RENEWAL
Arvin W MaletSpainAmy Elsner PROPOSAL
Izzy T AmigonSpainBernardo Dominic UNQUALIFIED
Munro W PaprockiIndiaOnyama Limba NEGOTIATION
Izzy W GarufiGermanyElwin Sharvill NEGOTIATION
Ivar V WhobreyItalyOnyama Limba QUALIFIED
Aika B StensethItalyIoni Bowcher PROPOSAL
Julie Y AlbaresArgentinaOnyama Limba PROPOSAL
Mujtaba F OldroydRussiaIvan Magalhaes NEGOTIATION
Arvin T BriddickBrazilAnna Fali QUALIFIED
Munro K CaudyCanadaAsiya Javayant RENEWAL
Francesco I IturbideGermanyIoni Bowcher NEW
Antonio U StockhamFranceIvan Magalhaes NEGOTIATION
Misaki O SaylorsArgentinaBernardo Dominic UNQUALIFIED
Rodrigues D CampainSpainBernardo Dominic RENEWAL
Aditya N IturbideUnited KingdomAmy Elsner PROPOSAL
Adams E MaletCanadaIvan Magalhaes NEGOTIATION
Claire B SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Frozen Columns
Name
Cody D Ruta
Jones C Amigon
Deepesh O Kolmetz
Juan F Sergi
Ricardo E Caldarera
Julie D Kolmetz
Stacey P Perin
Smith P Malet
Izzy W Stenseth
Izzy R Slusarski
Smith S Kusko
Tony N Flosi
Greenwood P Dilliard
Wickens W Ruta
Arvin X Garufi
Emily U Ferencz
Nicolas U Tollner
Mayumi H Caudy
Tony M Rim
Nicolas A Wieser
Cody M Ostrosky
Jennifer V Dilliard
Costa P Albares
Isabel R Sergi
Emily K Inouye
Kadeem C Perin
Cody D Ruta
Rodrigues E Wieser
Tony B Vocelka
James U Kolmetz
Darci M Gillian
Clifford K Maclead
James E Doe
Johnson O Whobrey
Adams Q Wieser
Mayumi N Figeroa
Jeanfrancois J Butt
Faith W Vocelka
Chavez A Sergi
Francesco M Schemmer
Julie T Marrier
Deepesh B Ostrosky
Mayumi L Perin
Johnson E Sergi
Sinclair U Rim
Maisha E Schemmer
Ricardo H Kusko
Silvio Z Rim
Jennifer U Kusko
Maria H Maclead
IdCountryDate
1000Japan2024-04-19
1001Australia2024-04-15
1002Brazil2024-04-21
1003Argentina2024-04-27
1004Canada2024-04-12
1005France2024-05-02
1006Spain2024-04-07
1007Canada2024-04-19
1008Argentina2024-05-05
1009Spain2024-04-28
1010France2024-04-29
1011United Kingdom2024-04-26
1012Argentina2024-04-27
1013Spain2024-04-10
1014Germany2024-04-21
1015Russia2024-04-26
1016Brazil2024-04-14
1017Italy2024-05-03
1018Italy2024-04-08
1019Italy2024-05-05
1020Spain2024-04-25
1021Argentina2024-04-10
1022Canada2024-04-12
1023Italy2024-05-01
1024Australia2024-04-20
1025India2024-05-02
1026Spain2024-05-03
1027Australia2024-05-06
1028Australia2024-04-28
1029Canada2024-04-26
1030Germany2024-04-17
1031Russia2024-04-08
1032Spain2024-04-14
1033India2024-05-06
1034Germany2024-04-16
1035United Kingdom2024-04-16
1036Spain2024-04-22
1037Japan2024-04-24
1038Brazil2024-05-01
1039Italy2024-04-24
1040France2024-04-14
1041United Kingdom2024-04-23
1042Japan2024-04-23
1043India2024-05-05
1044Italy2024-04-25
1045Australia2024-04-07
1046Argentina2024-05-05
1047India2024-04-23
1048Canada2024-05-01
1049Germany2024-04-27

On-Demand Data

NameIdCountryDate
Munro R Briddick1000Japan2024-04-22
Jones F Kusko1001Japan2024-04-23
Emily H Poquette1002Japan2024-04-12
James D Stockham1003Germany2024-04-14
Aika B Sergi1004Canada2024-04-16
Mayumi K Oldroyd1005Italy2024-04-19
Salvatore R Schemmer1006Germany2024-04-12
Julie F Bowley1007India2024-04-07
Mayumi K Inouye1008Brazil2024-04-27
David A Saylors1009Brazil2024-05-03
Arvin O Malet1010India2024-05-01
Jones J Campain1011Argentina2024-04-22
James P Paprocki1012Spain2024-05-02
Nicolas A Rim1013Japan2024-04-22
Darci J Tollner1014Japan2024-04-12
Stacey U Whobrey1015Brazil2024-05-04
Kadeem R Slusarski1016Russia2024-04-12
Smith S Waycott1017Argentina2024-04-21
Aika M Poquette1018United Kingdom2024-04-16
Wickens H Inouye1019Brazil2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair R MaletFranceStephen Shaw PROPOSAL
Rodrigues U GlickUnited KingdomIoni Bowcher NEGOTIATION
Misaki V MaletAustraliaIoni Bowcher NEW
Maria B DarakjyArgentinaIvan Magalhaes NEW
Stacey Z FollerJapanElwin Sharvill UNQUALIFIED
Greenwood A WieserCanadaXuxue Feng RENEWAL
Sinclair S MaletSpainXuxue Feng PROPOSAL
Kaitlin E SchemmerJapanStephen Shaw NEW
Murillo W AmigonIndiaXuxue Feng NEW
Tony K KuskoFranceIvan Magalhaes NEW
Rodrigues U OldroydRussiaAsiya Javayant QUALIFIED
Misaki J ShinkoGermanyAnna Fali NEW
Mayumi Q StockhamItalyBernardo Dominic PROPOSAL
Silvio K GauchoArgentinaIvan Magalhaes QUALIFIED
Cody R WieserUnited KingdomAnna Fali RENEWAL
Aika Q FigeroaJapanIvan Magalhaes UNQUALIFIED
Sinclair A RutaSpainAmy Elsner NEW
Ashley T BriddickArgentinaStephen Shaw QUALIFIED
Emily F GarufiUnited KingdomAnna Fali PROPOSAL
David D KuskoSpainStephen Shaw QUALIFIED
Salvatore R ButtGermanyOnyama Limba RENEWAL
Ashley Y DoeIndiaIvan Magalhaes PROPOSAL
Leon O BologniaGermanyBernardo Dominic NEGOTIATION
Costa E FigeroaSpainOnyama Limba NEW
Arvin I CampainItalyAmy Elsner RENEWAL
Julie J VenereItalyElwin Sharvill NEGOTIATION
Morrow L BowleyAustraliaBernardo Dominic NEGOTIATION
Morrow A ShinkoAustraliaIoni Bowcher UNQUALIFIED
Jennifer Z GlickItalyAnna Fali NEW
Tony W ShinkoItalyOnyama Limba PROPOSAL
Wickens U MaletUnited KingdomElwin Sharvill QUALIFIED
Ashley Y WaycottGermanyIvan Magalhaes RENEWAL
Munro R ChuiIndiaBernardo Dominic NEW
Julie T OstroskySpainIoni Bowcher RENEWAL
Wickens K GillianJapanAsiya Javayant PROPOSAL
Arvin T SaylorsItalyIvan Magalhaes QUALIFIED
Jefferson L MorascaCanadaIoni Bowcher NEW
Costa J KuskoFranceStephen Shaw PROPOSAL
Costa X DoeFranceIvan Magalhaes NEW
Chavez P WieserSpainElwin Sharvill 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>