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
Izzy B SergiBrazilIoni Bowcher RENEWAL
Smith V MaletItalyOnyama Limba PROPOSAL
Octavia I NestleJapanAmy Elsner UNQUALIFIED
Ivar I KuskoCanadaXuxue Feng RENEWAL
Maisha Y DilliardUnited KingdomIoni Bowcher QUALIFIED
James P OldroydJapanOnyama Limba NEGOTIATION
Silvio O VocelkaAustraliaBernardo Dominic NEGOTIATION
Emily B StockhamIndiaXuxue Feng PROPOSAL
Tony X RutaRussiaIoni Bowcher QUALIFIED
Darci R DarakjyArgentinaIoni Bowcher NEGOTIATION
Salvatore P PerinFranceStephen Shaw NEW
Leja D BriddickItalyElwin Sharvill UNQUALIFIED
James I WieserCanadaIoni Bowcher NEW
Nicolas L FlosiRussiaAsiya Javayant PROPOSAL
Chavez A CampainJapanAnna Fali NEGOTIATION
Sinclair L KuskoSpainIvan Magalhaes RENEWAL
Leja O KuskoJapanOnyama Limba QUALIFIED
Salvatore C OldroydArgentinaElwin Sharvill NEGOTIATION
Cody L ChuiGermanyElwin Sharvill QUALIFIED
Juan W CaldareraRussiaIoni Bowcher RENEWAL
Maria V StensethIndiaIoni Bowcher UNQUALIFIED
Wickens R ChuiGermanyXuxue Feng UNQUALIFIED
Octavia I ButtItalyXuxue Feng NEW
Tony R SergiItalyIoni Bowcher NEGOTIATION
Stacey Q WieserIndiaOnyama Limba RENEWAL
Greenwood I GarufiAustraliaStephen Shaw PROPOSAL
Sinclair Y MarrierFranceAnna Fali QUALIFIED
Smith W WaycottGermanyStephen Shaw QUALIFIED
Faith U PoquetteSpainAnna Fali QUALIFIED
Murillo F GauchoUnited KingdomElwin Sharvill PROPOSAL
Maisha N CaudySpainIoni Bowcher NEW
Jeanfrancois X TollnerIndiaAnna Fali RENEWAL
Silvio M RimRussiaAmy Elsner PROPOSAL
Deepesh S ShinkoUnited KingdomXuxue Feng NEW
Kadeem H GauchoAustraliaStephen Shaw RENEWAL
Ivar V RoysterUnited KingdomStephen Shaw PROPOSAL
Costa Q IturbideCanadaBernardo Dominic PROPOSAL
Smith C StockhamArgentinaIvan Magalhaes NEW
Aika R FerenczGermanyStephen Shaw NEW
Leja R AlbaresArgentinaAmy Elsner NEW
Francesco W CampainUnited KingdomXuxue Feng NEW
Julie C OstroskySpainOnyama Limba NEGOTIATION
Stacey U SchemmerFranceIoni Bowcher NEW
Cody Z RoysterCanadaStephen Shaw PROPOSAL
Tony C PaprockiSpainBernardo Dominic PROPOSAL
Kaitlin H DarakjyJapanAsiya Javayant UNQUALIFIED
James Z KolmetzJapanBernardo Dominic QUALIFIED
Izzy K SlusarskiIndiaElwin Sharvill PROPOSAL
Aditya T FlosiFranceElwin Sharvill UNQUALIFIED
Murillo C OldroydCanadaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Adams G DoeFranceIoni Bowcher QUALIFIED
Isabel W CaudyFranceAnna Fali RENEWAL
Julie M AlbaresAustraliaAmy Elsner RENEWAL
Francesco M MaletRussiaIvan Magalhaes RENEWAL
Munro H GarufiIndiaXuxue Feng NEGOTIATION
Kadeem G SchemmerJapanElwin Sharvill RENEWAL
Morrow V TollnerFranceBernardo Dominic RENEWAL
Aika P StensethRussiaStephen Shaw QUALIFIED
Deepesh J GarufiSpainIvan Magalhaes NEGOTIATION
Smith N TollnerArgentinaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa N GarufiUnited Kingdom2024-03-26Buckley Miller Wright NEGOTIATION20Anna Fali
1001Mujtaba F CaldareraSpain2024-04-20Commercial Press PROPOSAL81Ioni Bowcher
1002Leon X StockhamJapan2024-04-08Buckley Miller Wright PROPOSAL79Ivan Magalhaes
1003Greenwood F CaudyCanada2024-04-11King, Christopher A Esq NEGOTIATION45Anna Fali
1004Jones Y SlusarskiAustralia2024-04-13Morlong Associates RENEWAL2Onyama Limba
1005Tony G PerinFrance2024-04-07Dorl, James J Esq UNQUALIFIED5Elwin Sharvill
1006Juan I PaprockiJapan2024-04-09Feltz Printing Service NEW27Stephen Shaw
1007Isabel Z ChuiItaly2024-04-24Buckley Miller Wright UNQUALIFIED14Onyama Limba
1008Faith W MaletGermany2024-04-13Chapman, Ross E Esq NEGOTIATION12Asiya Javayant
1009Juan Y AlbaresJapan2024-04-22Commercial Press PROPOSAL4Onyama Limba
1010Arvin X KolmetzBrazil2024-04-23Feltz Printing Service RENEWAL56Asiya Javayant
1011Leja W RimItaly2024-03-27Feltz Printing Service NEGOTIATION31Ivan Magalhaes
1012Salvatore G SlusarskiUnited Kingdom2024-04-12Feltz Printing Service NEW36Asiya Javayant
1013Sinclair I BowleyArgentina2024-04-20Buckley Miller Wright NEGOTIATION75Xuxue Feng
1014Adams I WhobreyBrazil2024-04-07Rangoni Of Florence PROPOSAL16Xuxue Feng
1015Stacey F FigeroaSpain2024-04-10Morlong Associates NEW78Asiya Javayant
1016Izzy C OstroskyArgentina2024-04-19Rousseaux, Michael Esq RENEWAL8Anna Fali
1017Jennifer M RoysterIndia2024-04-02Rangoni Of Florence PROPOSAL97Onyama Limba
1018Jones W OldroydIndia2024-04-17Chapman, Ross E Esq PROPOSAL24Anna Fali
1019Darci Z RutaIndia2024-03-31Chemel, James L Cpa NEW77Onyama Limba
1020Julie O MarrierGermany2024-03-31Benton, John B Jr NEW84Elwin Sharvill
1021Ashley T WieserSpain2024-03-29Buckley Miller Wright RENEWAL43Elwin Sharvill
1022Aruna A CaudyItaly2024-04-05Rousseaux, Michael Esq NEW22Ioni Bowcher
1023Nicolas C DilliardUnited Kingdom2024-03-27Rousseaux, Michael Esq UNQUALIFIED94Asiya Javayant
1024Chavez U MaletArgentina2024-04-13Chemel, James L Cpa PROPOSAL67Ioni Bowcher
1025Claire W StensethAustralia2024-04-22Chanay, Jeffrey A Esq PROPOSAL41Ioni Bowcher
1026Francesco A RutaGermany2024-04-05Feltz Printing Service NEGOTIATION53Anna Fali
1027Aditya Y GlickCanada2024-04-01Chapman, Ross E Esq NEW60Bernardo Dominic
1028Cody Y FlosiItaly2024-04-03Chemel, James L Cpa NEW19Asiya Javayant
1029Juan F StockhamBrazil2024-04-15Commercial Press NEW3Bernardo Dominic
1030Julie O MaletItaly2024-04-04Commercial Press UNQUALIFIED11Onyama Limba
1031Faith C VocelkaAustralia2024-03-27Rangoni Of Florence RENEWAL31Stephen Shaw
1032Aditya R KolmetzSpain2024-04-21Truhlar And Truhlar Attys NEW40Stephen Shaw
1033Aditya R KolmetzUnited Kingdom2024-04-01Buckley Miller Wright UNQUALIFIED7Elwin Sharvill
1034Darci D IturbideGermany2024-04-07Rangoni Of Florence QUALIFIED23Elwin Sharvill
1035Misaki O NickaFrance2024-03-30Dorl, James J Esq NEGOTIATION28Ioni Bowcher
1036Maisha L WieserAustralia2024-04-10Dorl, James J Esq NEW91Ioni Bowcher
1037Aruna J FollerArgentina2024-04-05Morlong Associates PROPOSAL91Elwin Sharvill
1038Sinclair J KolmetzRussia2024-04-11Truhlar And Truhlar Attys PROPOSAL54Amy Elsner
1039Jennifer T CaldareraAustralia2024-04-06Morlong Associates PROPOSAL35Ioni Bowcher
1040Mayumi H CaudyIndia2024-04-20Chanay, Jeffrey A Esq NEW57Ivan Magalhaes
1041Jeanfrancois X BowleyJapan2024-04-12Buckley Miller Wright NEGOTIATION75Stephen Shaw
1042Misaki W AlbaresCanada2024-04-14Printing Dimensions RENEWAL74Onyama Limba
1043Costa A CampainIndia2024-04-20Printing Dimensions QUALIFIED20Bernardo Dominic
1044Chavez C FlosiCanada2024-04-09Morlong Associates NEGOTIATION16Ioni Bowcher
1045Jeanfrancois L GillianArgentina2024-04-12Buckley Miller Wright PROPOSAL67Ioni Bowcher
1046Jefferson Q DoeAustralia2024-04-12Chapman, Ross E Esq UNQUALIFIED10Onyama Limba
1047Julie F DarakjyItaly2024-04-09Benton, John B Jr UNQUALIFIED63Bernardo Dominic
1048Julie X FigeroaCanada2024-04-07Rousseaux, Michael Esq UNQUALIFIED5Bernardo Dominic
1049Clifford C NickaSpain2024-04-15Printing Dimensions NEW14Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Claire P GillianSpainOnyama Limba UNQUALIFIED
Jennifer N MacleadItalyElwin Sharvill NEW
Tony W GarufiAustraliaAmy Elsner QUALIFIED
Aruna P IturbideItalyAsiya Javayant QUALIFIED
Juan M ShinkoGermanyAsiya Javayant NEW
Adams Z MaletItalyXuxue Feng UNQUALIFIED
Isabel U KolmetzJapanIvan Magalhaes PROPOSAL
Mujtaba U BologniaAustraliaAmy Elsner NEGOTIATION
Clifford O TollnerGermanyIvan Magalhaes NEW
Emily S CaldareraGermanyAsiya Javayant UNQUALIFIED
Deepesh B VocelkaFranceAnna Fali NEGOTIATION
Mujtaba D TollnerRussiaOnyama Limba NEGOTIATION
Kaitlin H PerinRussiaAnna Fali QUALIFIED
Arvin A MaletUnited KingdomIoni Bowcher NEW
Kadeem B DarakjyCanadaBernardo Dominic RENEWAL
Greenwood X BologniaGermanyStephen Shaw NEW
Alejandro E SaylorsGermanyStephen Shaw NEW
Jennifer G VenereUnited KingdomBernardo Dominic PROPOSAL
Murillo V FerenczItalyAnna Fali PROPOSAL
Maisha U SergiArgentinaOnyama Limba PROPOSAL
Nicolas J SaylorsAustraliaIvan Magalhaes PROPOSAL
Wickens I PerinUnited KingdomAmy Elsner PROPOSAL
Ashley B RutaRussiaOnyama Limba UNQUALIFIED
Izzy G AmigonIndiaStephen Shaw QUALIFIED
Rodrigues R VenereFranceOnyama Limba NEGOTIATION
Octavia G ButtBrazilElwin Sharvill NEW
Juan T RulapaughArgentinaOnyama Limba QUALIFIED
Maria Z DarakjyBrazilElwin Sharvill UNQUALIFIED
Misaki M MaletUnited KingdomStephen Shaw PROPOSAL
Sinclair Q CaudyItalyAsiya Javayant UNQUALIFIED
Faith R MaletArgentinaStephen Shaw NEGOTIATION
Kadeem U WieserJapanBernardo Dominic NEGOTIATION
Antonio P MarrierBrazilIvan Magalhaes NEGOTIATION
Morrow T CaldareraJapanStephen Shaw NEW
Maria F DilliardJapanAmy Elsner QUALIFIED
Stacey W KolmetzBrazilXuxue Feng UNQUALIFIED
Izzy L StockhamCanadaOnyama Limba QUALIFIED
Alejandro A AlbaresBrazilAnna Fali RENEWAL
Tony M ShinkoFranceXuxue Feng RENEWAL
Juan U WieserUnited KingdomBernardo Dominic NEW
Smith S GlickBrazilIoni Bowcher NEW
Aditya A WaycottCanadaXuxue Feng NEGOTIATION
Antonio F DarakjyBrazilAnna Fali QUALIFIED
Ricardo T DoeGermanyIvan Magalhaes NEGOTIATION
Deepesh G NestleUnited KingdomOnyama Limba RENEWAL
Wickens Z FlosiCanadaStephen Shaw NEW
Chavez P MorascaRussiaStephen Shaw UNQUALIFIED
Faith O ChuiIndiaAmy Elsner NEGOTIATION
Chavez H FollerJapanElwin Sharvill NEW
Mayumi R MaletIndiaAmy Elsner RENEWAL
Frozen Columns
Name
Ivar Y Rulapaugh
Leon P Nicka
Aruna M Chui
Jones U Garufi
Costa Z Paprocki
Emily C Flosi
Faith Q Garufi
Deepesh F Perin
Mayumi V Bowley
Leon M Tollner
Maria S Royster
Mayumi C Maclead
Jefferson P Chui
Jeanfrancois O Dilliard
Munro Y Paprocki
Nicolas U Tollner
Jefferson J Schemmer
Leon J Morasca
Aruna Z Kolmetz
Munro O Poquette
Rodrigues W Doe
Mujtaba Z Inouye
Aruna T Oldroyd
Misaki J Butt
James D Malet
Tony V Iturbide
Nicolas H Gaucho
Greenwood L Venere
David C Morasca
Adams F Briddick
Mayumi R Butt
Jennifer V Stockham
Adams Y Bolognia
Aditya N Paprocki
Adams M Dilliard
Tony K Doe
Jennifer W Bowley
Adams J Waycott
Jennifer L Campain
Juan S Ostrosky
Jennifer E Caldarera
Leja H Caudy
Alejandro P Rim
Stacey Q Iturbide
Wickens E Gillian
Murillo M Flosi
Sinclair Z Doe
Deepesh B Perin
Misaki Y Rim
Mayumi M Ruta
IdCountryDate
1000Russia2024-03-31
1001Spain2024-04-09
1002Argentina2024-04-02
1003France2024-04-10
1004United Kingdom2024-04-16
1005Russia2024-03-27
1006India2024-04-23
1007Argentina2024-04-05
1008Argentina2024-04-14
1009France2024-04-14
1010Germany2024-04-15
1011India2024-04-10
1012Canada2024-04-10
1013France2024-03-29
1014United Kingdom2024-03-30
1015Russia2024-04-07
1016India2024-04-10
1017United Kingdom2024-04-12
1018Brazil2024-04-02
1019Spain2024-04-19
1020Germany2024-04-20
1021United Kingdom2024-04-08
1022Italy2024-04-11
1023Italy2024-04-12
1024Italy2024-04-02
1025Russia2024-04-11
1026Japan2024-04-13
1027Germany2024-04-12
1028Russia2024-04-22
1029France2024-04-22
1030Spain2024-03-26
1031India2024-04-10
1032Japan2024-04-17
1033Argentina2024-04-23
1034Italy2024-04-04
1035Japan2024-04-10
1036France2024-04-09
1037Italy2024-04-24
1038Spain2024-04-08
1039Italy2024-04-02
1040Australia2024-03-29
1041France2024-04-05
1042France2024-04-11
1043Spain2024-04-24
1044Australia2024-04-05
1045Germany2024-04-05
1046United Kingdom2024-04-06
1047United Kingdom2024-04-16
1048Brazil2024-03-26
1049Spain2024-04-17

On-Demand Data

NameIdCountryDate
Jefferson F Garufi1000Australia2024-04-15
Faith S Bolognia1001India2024-04-19
Ashley J Poquette1002Australia2024-04-09
Octavia D Rulapaugh1003Australia2024-04-20
Jefferson V Stockham1004France2024-04-24
Kadeem H Waycott1005United Kingdom2024-04-24
Kadeem M Doe1006Russia2024-04-02
Alejandro V Nestle1007Spain2024-03-27
Leon Z Royster1008United Kingdom2024-04-22
Maria F Ostrosky1009Japan2024-04-13
Sinclair W Amigon1010India2024-04-21
Claire M Caldarera1011Australia2024-04-08
Arvin K Foller1012Russia2024-04-16
Isabel U Nestle1013Japan2024-04-19
Sinclair T Gaucho1014Japan2024-04-06
Antonio T Darakjy1015Australia2024-04-09
Adams Y Campain1016Germany2024-03-26
Jeanfrancois X Garufi1017United Kingdom2024-04-03
Ricardo U Butt1018Japan2024-04-06
Adams V Garufi1019Italy2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio V StockhamItalyIvan Magalhaes QUALIFIED
Jeanfrancois O WaycottFranceAmy Elsner QUALIFIED
Aruna U DarakjyGermanyAnna Fali QUALIFIED
Salvatore L SlusarskiItalyAsiya Javayant NEGOTIATION
Jefferson U RutaFranceIoni Bowcher RENEWAL
Cody M RulapaughIndiaIoni Bowcher UNQUALIFIED
Smith J MaletAustraliaIoni Bowcher RENEWAL
Aika S CaldareraBrazilAmy Elsner RENEWAL
Alejandro X FerenczBrazilBernardo Dominic PROPOSAL
Costa M MorascaAustraliaXuxue Feng NEW
Sinclair L SaylorsArgentinaIvan Magalhaes NEW
Jones T SergiFranceAsiya Javayant RENEWAL
Ricardo R VenereItalyOnyama Limba NEGOTIATION
Mayumi C InouyeCanadaIoni Bowcher PROPOSAL
Emily Q RulapaughSpainIoni Bowcher NEW
Munro Z NestleRussiaAnna Fali QUALIFIED
Darci Q SchemmerItalyIoni Bowcher QUALIFIED
Jennifer O WhobreyArgentinaStephen Shaw PROPOSAL
Wickens Y AmigonUnited KingdomIvan Magalhaes RENEWAL
Tony X MaletSpainAmy Elsner UNQUALIFIED
Julie I RimBrazilAmy Elsner PROPOSAL
Nicolas J MorascaFranceAmy Elsner UNQUALIFIED
Alejandro J DoeBrazilXuxue Feng UNQUALIFIED
Kadeem I DilliardBrazilBernardo Dominic UNQUALIFIED
Greenwood I ShinkoCanadaIoni Bowcher NEGOTIATION
Juan T BowleyJapanElwin Sharvill PROPOSAL
James Q NestleAustraliaAsiya Javayant QUALIFIED
Leja P BriddickGermanyIvan Magalhaes RENEWAL
Faith P OldroydUnited KingdomIvan Magalhaes PROPOSAL
Aditya V DoeArgentinaIvan Magalhaes PROPOSAL
Alejandro G ShinkoItalyAmy Elsner QUALIFIED
Adams E ChuiRussiaElwin Sharvill NEGOTIATION
Clifford S BriddickRussiaOnyama Limba PROPOSAL
Johnson K BowleySpainIvan Magalhaes RENEWAL
Julie V GlickFranceXuxue Feng NEGOTIATION
Clifford U FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar V CaldareraBrazilElwin Sharvill RENEWAL
Costa I WhobreyFranceStephen Shaw NEGOTIATION
Adams R DarakjyBrazilAsiya Javayant RENEWAL
Rodrigues Q StockhamGermanyAsiya Javayant NEGOTIATION

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