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 O WieserSpainStephen Shaw UNQUALIFIED
Aditya Q SergiItalyStephen Shaw NEW
Rodrigues B KolmetzBrazilXuxue Feng QUALIFIED
Morrow J SaylorsUnited KingdomOnyama Limba RENEWAL
Jones E OldroydRussiaStephen Shaw NEW
Sinclair Y NestleItalyXuxue Feng RENEWAL
Deepesh N ShinkoAustraliaXuxue Feng NEGOTIATION
Murillo U KolmetzItalyAmy Elsner NEW
Greenwood P BowleyRussiaIvan Magalhaes NEW
Isabel M InouyeUnited KingdomOnyama Limba PROPOSAL
Misaki O SchemmerFranceElwin Sharvill QUALIFIED
Jeanfrancois V NickaFranceXuxue Feng NEGOTIATION
Arvin L AmigonUnited KingdomBernardo Dominic QUALIFIED
David N VocelkaUnited KingdomAnna Fali NEGOTIATION
Chavez B DoeCanadaXuxue Feng QUALIFIED
Claire T RulapaughArgentinaAsiya Javayant PROPOSAL
Chavez T RutaAustraliaXuxue Feng NEGOTIATION
Stacey P CaldareraUnited KingdomAmy Elsner NEW
Salvatore D SergiFranceElwin Sharvill NEW
Wickens L MorascaJapanAmy Elsner NEGOTIATION
Adams H KolmetzSpainXuxue Feng NEGOTIATION
Adams E FigeroaSpainAmy Elsner PROPOSAL
Juan J KolmetzBrazilIvan Magalhaes RENEWAL
Chavez L MacleadSpainXuxue Feng NEGOTIATION
Tony Y SlusarskiJapanAnna Fali QUALIFIED
Claire M SaylorsJapanIvan Magalhaes NEGOTIATION
Clifford Q NickaSpainAnna Fali NEW
Kaitlin U GlickGermanyXuxue Feng PROPOSAL
Alejandro W DilliardArgentinaIoni Bowcher NEGOTIATION
Ivar G ButtCanadaStephen Shaw NEW
Jeanfrancois C CaudyItalyXuxue Feng NEGOTIATION
Kaitlin B WhobreyIndiaAnna Fali QUALIFIED
Juan J PoquetteItalyAsiya Javayant QUALIFIED
Aruna V RutaAustraliaStephen Shaw NEW
Francesco C MorascaBrazilStephen Shaw QUALIFIED
Emily W MaletJapanOnyama Limba RENEWAL
Leja N SergiSpainIoni Bowcher NEW
Julie G AmigonJapanStephen Shaw PROPOSAL
Costa S MaletJapanIvan Magalhaes UNQUALIFIED
Izzy Q PerinUnited KingdomElwin Sharvill NEGOTIATION
Wickens O SlusarskiIndiaIoni Bowcher NEGOTIATION
Maisha L PerinCanadaIvan Magalhaes PROPOSAL
Greenwood F StensethJapanIoni Bowcher RENEWAL
Rodrigues J OldroydAustraliaStephen Shaw PROPOSAL
Ricardo U BowleyRussiaIvan Magalhaes RENEWAL
Jones H BowleyFranceStephen Shaw QUALIFIED
Julie W GillianFranceOnyama Limba NEW
Nicolas H SlusarskiArgentinaStephen Shaw QUALIFIED
Misaki N PaprockiCanadaIvan Magalhaes PROPOSAL
James M RulapaughJapanOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson X GillianRussiaAnna Fali NEGOTIATION
Francesco W DilliardSpainElwin Sharvill RENEWAL
Jeanfrancois T PerinFranceStephen Shaw RENEWAL
Juan L OldroydAustraliaElwin Sharvill PROPOSAL
Izzy Q DilliardUnited KingdomAnna Fali PROPOSAL
Leja F FollerFranceXuxue Feng RENEWAL
Morrow V ButtBrazilStephen Shaw RENEWAL
Juan C DarakjyJapanOnyama Limba QUALIFIED
Francesco O WaycottFranceXuxue Feng PROPOSAL
David R VenereIndiaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin D RulapaughItaly2024-03-25Rangoni Of Florence UNQUALIFIED54Stephen Shaw
1001Julie U FigeroaIndia2024-03-26Chemel, James L Cpa QUALIFIED98Anna Fali
1002Aruna B StensethSpain2024-04-02Morlong Associates NEW71Ivan Magalhaes
1003Jones X ChuiJapan2024-03-31Chemel, James L Cpa NEGOTIATION2Elwin Sharvill
1004Octavia V SlusarskiFrance2024-04-06Dorl, James J Esq RENEWAL58Ivan Magalhaes
1005Rodrigues G MaletCanada2024-03-30Truhlar And Truhlar Attys NEW16Ivan Magalhaes
1006Leja F MarrierUnited Kingdom2024-04-22Rangoni Of Florence UNQUALIFIED73Anna Fali
1007Darci E FerenczFrance2024-04-07Rousseaux, Michael Esq QUALIFIED76Ivan Magalhaes
1008Silvio M KolmetzFrance2024-03-25Truhlar And Truhlar Attys NEW16Anna Fali
1009Wickens Z OstroskyAustralia2024-04-06Truhlar And Truhlar Attys QUALIFIED74Stephen Shaw
1010Nicolas R MaletJapan2024-03-28Benton, John B Jr RENEWAL48Ivan Magalhaes
1011Chavez W CaudySpain2024-04-21Benton, John B Jr PROPOSAL96Anna Fali
1012Sinclair A NickaUnited Kingdom2024-03-26Chapman, Ross E Esq NEW86Anna Fali
1013Ashley J GlickItaly2024-04-14Feltz Printing Service QUALIFIED66Ioni Bowcher
1014Alejandro V PaprockiItaly2024-04-03Dorl, James J Esq UNQUALIFIED79Asiya Javayant
1015Kaitlin X NestleCanada2024-04-12Rangoni Of Florence RENEWAL81Elwin Sharvill
1016Izzy F RulapaughJapan2024-04-06Printing Dimensions RENEWAL96Amy Elsner
1017Sinclair Q RoysterUnited Kingdom2024-04-17Chemel, James L Cpa NEGOTIATION69Ivan Magalhaes
1018Greenwood I NickaSpain2024-04-22Commercial Press NEW79Ioni Bowcher
1019Octavia Z FerenczGermany2024-04-15Buckley Miller Wright QUALIFIED87Onyama Limba
1020Ashley M WieserSpain2024-04-13Buckley Miller Wright RENEWAL69Ivan Magalhaes
1021Kadeem H RoysterAustralia2024-04-02Chapman, Ross E Esq NEGOTIATION5Bernardo Dominic
1022Smith B PaprockiFrance2024-03-26Printing Dimensions UNQUALIFIED12Stephen Shaw
1023Aruna V NestleUnited Kingdom2024-04-12Buckley Miller Wright QUALIFIED55Xuxue Feng
1024Costa O NestleItaly2024-04-13Rangoni Of Florence UNQUALIFIED58Anna Fali
1025Clifford Y MacleadCanada2024-03-25Truhlar And Truhlar Attys UNQUALIFIED52Asiya Javayant
1026Alejandro O PoquetteIndia2024-03-29Chanay, Jeffrey A Esq RENEWAL34Ioni Bowcher
1027Aditya C VenereIndia2024-03-28Printing Dimensions UNQUALIFIED89Amy Elsner
1028Isabel U SlusarskiAustralia2024-04-08Chemel, James L Cpa PROPOSAL11Elwin Sharvill
1029Alejandro W ChuiJapan2024-04-10Chemel, James L Cpa UNQUALIFIED97Elwin Sharvill
1030Maria Q MarrierSpain2024-03-27Benton, John B Jr NEGOTIATION37Stephen Shaw
1031Nicolas F VenereIndia2024-04-06Benton, John B Jr PROPOSAL52Ivan Magalhaes
1032Sinclair B WieserJapan2024-04-08Chemel, James L Cpa NEGOTIATION54Onyama Limba
1033Darci T OstroskyGermany2024-04-04Printing Dimensions UNQUALIFIED20Amy Elsner
1034Ivar D AlbaresArgentina2024-04-01King, Christopher A Esq QUALIFIED79Ioni Bowcher
1035Izzy P PerinBrazil2024-04-08Commercial Press NEGOTIATION69Anna Fali
1036Murillo Q OstroskyGermany2024-04-12Morlong Associates UNQUALIFIED47Amy Elsner
1037Sinclair C PaprockiIndia2024-04-07Rousseaux, Michael Esq NEGOTIATION27Asiya Javayant
1038Tony W WhobreyAustralia2024-03-31Chapman, Ross E Esq PROPOSAL71Anna Fali
1039Chavez L FollerItaly2024-03-30Feltz Printing Service NEW60Bernardo Dominic
1040Emily W KuskoSpain2024-04-16Commercial Press RENEWAL74Stephen Shaw
1041Leon Y DoeAustralia2024-04-12Chemel, James L Cpa NEGOTIATION54Xuxue Feng
1042Munro P MorascaIndia2024-04-05Commercial Press PROPOSAL32Ioni Bowcher
1043Emily S CampainItaly2024-03-31Morlong Associates UNQUALIFIED53Elwin Sharvill
1044Johnson I CaldareraUnited Kingdom2024-03-30Dorl, James J Esq NEGOTIATION11Asiya Javayant
1045Sinclair C IturbideIndia2024-04-09Dorl, James J Esq NEW27Elwin Sharvill
1046Juan R AlbaresBrazil2024-04-16Rousseaux, Michael Esq QUALIFIED12Amy Elsner
1047Isabel F SlusarskiUnited Kingdom2024-04-13Feltz Printing Service PROPOSAL99Bernardo Dominic
1048Mujtaba L ShinkoBrazil2024-04-08Rousseaux, Michael Esq PROPOSAL65Bernardo Dominic
1049Wickens Q RutaAustralia2024-04-21Feiner Bros NEW42Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Julie X AmigonArgentinaAmy Elsner NEW
Isabel N KolmetzBrazilAsiya Javayant RENEWAL
Rodrigues Z PaprockiArgentinaStephen Shaw QUALIFIED
Arvin K IturbideAustraliaBernardo Dominic NEW
Costa O GlickUnited KingdomIvan Magalhaes NEW
Ricardo W TollnerSpainIoni Bowcher NEW
Ashley M ButtIndiaAsiya Javayant QUALIFIED
Leja F MaletIndiaIoni Bowcher PROPOSAL
Rodrigues T CaldareraAustraliaAnna Fali NEW
Tony M BriddickUnited KingdomAnna Fali NEGOTIATION
Misaki B GarufiSpainAsiya Javayant NEGOTIATION
Isabel J RutaItalyStephen Shaw NEW
Mujtaba F StensethGermanyAnna Fali NEGOTIATION
James G DoeItalyAsiya Javayant NEW
Aditya I TollnerJapanXuxue Feng RENEWAL
Darci Q MarrierFranceOnyama Limba QUALIFIED
Mujtaba I VenereBrazilAsiya Javayant RENEWAL
Wickens D FigeroaFranceElwin Sharvill PROPOSAL
Johnson H CampainCanadaOnyama Limba NEGOTIATION
Juan L VenereCanadaIvan Magalhaes NEGOTIATION
Leja N CaudyGermanyAnna Fali UNQUALIFIED
Ivar E ChuiAustraliaAnna Fali UNQUALIFIED
Leon X NestleBrazilBernardo Dominic PROPOSAL
Francesco J SchemmerSpainOnyama Limba NEGOTIATION
Kadeem T OstroskyGermanyElwin Sharvill NEW
Francesco L CaldareraBrazilXuxue Feng QUALIFIED
Stacey Y FerenczGermanyAmy Elsner PROPOSAL
Clifford E ButtCanadaIoni Bowcher NEW
Maria F GillianArgentinaElwin Sharvill UNQUALIFIED
Sinclair B MarrierArgentinaAnna Fali NEGOTIATION
Mayumi V CaudyCanadaOnyama Limba UNQUALIFIED
Jones X FollerAustraliaAnna Fali NEW
Kadeem G InouyeAustraliaBernardo Dominic UNQUALIFIED
Arvin X BologniaGermanyAsiya Javayant RENEWAL
Maria S ButtFranceBernardo Dominic PROPOSAL
Silvio Q FigeroaIndiaBernardo Dominic PROPOSAL
Francesco H MorascaJapanIoni Bowcher RENEWAL
Rodrigues Q WhobreyGermanyOnyama Limba NEGOTIATION
Aika C KolmetzGermanyBernardo Dominic NEW
Ivar P StockhamFranceAsiya Javayant UNQUALIFIED
Chavez P FerenczBrazilOnyama Limba NEGOTIATION
Tony S KolmetzAustraliaStephen Shaw NEGOTIATION
Wickens W VocelkaSpainElwin Sharvill RENEWAL
Munro G MarrierIndiaAmy Elsner PROPOSAL
Tony X TollnerUnited KingdomAnna Fali PROPOSAL
Izzy H StockhamArgentinaStephen Shaw RENEWAL
Leon M SergiFranceAsiya Javayant UNQUALIFIED
Maisha L DarakjyRussiaAnna Fali NEGOTIATION
Jefferson B VocelkaAustraliaIvan Magalhaes NEW
Stacey Z VenereIndiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Sinclair L Nestle
Leja R Vocelka
Antonio O Maclead
Francesco N Venere
Ashley X Iturbide
Leon K Slusarski
Faith C Venere
Clifford U Ostrosky
Juan H Nicka
Mujtaba X Shinko
Adams D Malet
Aika K Albares
Costa X Paprocki
Octavia A Malet
Johnson S Stockham
Murillo L Shinko
Isabel H Poquette
Misaki B Dilliard
Chavez B Glick
Izzy D Malet
Kadeem P Kolmetz
Salvatore A Morasca
Salvatore N Oldroyd
Mayumi U Wieser
Salvatore D Bolognia
Aika M Doe
Leon L Whobrey
Emily J Figeroa
Silvio E Sergi
Adams Q Sergi
Aditya S Ruta
Greenwood C Inouye
Tony D Butt
Stacey G Sergi
Alejandro K Perin
Aruna F Caudy
Ashley G Briddick
Chavez T Slusarski
Ashley Z Nicka
Ivar V Marrier
Julie X Iturbide
Misaki R Shinko
Emily Z Stockham
Leja N Foller
Ivar M Venere
Leon R Ferencz
Maria Y Nicka
Clifford D Ferencz
Smith F Campain
Leja P Albares
IdCountryDate
1000Canada2024-04-07
1001Australia2024-04-15
1002Canada2024-03-29
1003India2024-04-05
1004Japan2024-04-14
1005Germany2024-04-22
1006Japan2024-03-25
1007Russia2024-03-25
1008United Kingdom2024-03-26
1009Russia2024-04-03
1010France2024-04-12
1011Spain2024-04-14
1012Argentina2024-04-11
1013France2024-03-26
1014United Kingdom2024-03-26
1015Australia2024-04-22
1016Germany2024-03-31
1017Germany2024-04-16
1018Japan2024-04-17
1019Canada2024-04-03
1020Australia2024-03-30
1021Canada2024-04-23
1022India2024-03-28
1023Brazil2024-03-28
1024India2024-04-18
1025Russia2024-04-20
1026Canada2024-04-20
1027Brazil2024-04-10
1028Russia2024-04-07
1029India2024-04-19
1030Brazil2024-04-16
1031Brazil2024-04-10
1032Canada2024-04-13
1033Italy2024-03-29
1034Germany2024-04-21
1035Spain2024-03-28
1036Canada2024-04-09
1037Italy2024-04-12
1038France2024-04-06
1039Argentina2024-03-28
1040Japan2024-04-22
1041France2024-04-11
1042Brazil2024-04-05
1043Canada2024-04-12
1044France2024-04-10
1045Japan2024-03-27
1046India2024-03-26
1047Canada2024-03-25
1048Russia2024-04-03
1049Brazil2024-04-15

On-Demand Data

NameIdCountryDate
Jeanfrancois X Campain1000Japan2024-04-14
Nicolas K Stockham1001France2024-04-07
Faith J Kolmetz1002India2024-04-15
David Z Ferencz1003Argentina2024-03-27
Ivar W Malet1004India2024-04-07
Aditya K Nicka1005Russia2024-04-16
Arvin X Glick1006Germany2024-03-30
Misaki P Maclead1007Argentina2024-03-25
Smith D Darakjy1008Russia2024-04-21
Ricardo H Iturbide1009Argentina2024-04-06
Claire I Rulapaugh1010United Kingdom2024-04-15
Morrow M Figeroa1011Brazil2024-04-23
Octavia I Shinko1012Australia2024-04-19
Jeanfrancois G Chui1013United Kingdom2024-04-10
James R Albares1014Russia2024-03-25
Emily X Dilliard1015Spain2024-03-30
Maria V Paprocki1016Italy2024-04-01
Aika Y Amigon1017Italy2024-04-02
Julie O Vocelka1018India2024-04-15
Maria T Rulapaugh1019Australia2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja C BriddickFranceAmy Elsner QUALIFIED
Jones L SergiIndiaIvan Magalhaes UNQUALIFIED
Leja F DilliardRussiaAsiya Javayant RENEWAL
Murillo T BriddickBrazilXuxue Feng UNQUALIFIED
Darci E CaldareraRussiaOnyama Limba PROPOSAL
Aika E PaprockiFranceOnyama Limba QUALIFIED
Kadeem B MorascaIndiaElwin Sharvill PROPOSAL
Maria J CaudyCanadaOnyama Limba NEGOTIATION
Aditya E ButtFranceAnna Fali NEGOTIATION
Greenwood O SergiUnited KingdomAsiya Javayant RENEWAL
Isabel D CaudyRussiaIvan Magalhaes UNQUALIFIED
Aika V CaldareraSpainStephen Shaw UNQUALIFIED
Darci E MorascaItalyXuxue Feng RENEWAL
Arvin V MorascaArgentinaIvan Magalhaes NEGOTIATION
Leon N KolmetzSpainAnna Fali QUALIFIED
Wickens M CampainIndiaStephen Shaw PROPOSAL
Aditya C PerinRussiaStephen Shaw NEW
Emily F TollnerItalyXuxue Feng QUALIFIED
Ricardo C DilliardAustraliaAmy Elsner QUALIFIED
Misaki K PerinGermanyAnna Fali QUALIFIED
Aruna H PaprockiCanadaBernardo Dominic QUALIFIED
Faith T FlosiSpainAsiya Javayant NEW
Emily A VocelkaUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois H NickaIndiaOnyama Limba NEGOTIATION
Cody X PerinAustraliaAnna Fali NEGOTIATION
Salvatore X GlickItalyElwin Sharvill RENEWAL
Stacey V SaylorsSpainIoni Bowcher PROPOSAL
Chavez T SchemmerCanadaElwin Sharvill QUALIFIED
Claire Z AlbaresCanadaElwin Sharvill NEW
Jeanfrancois I BologniaSpainElwin Sharvill NEW
Izzy D CaldareraRussiaAsiya Javayant PROPOSAL
Darci K SergiJapanAnna Fali UNQUALIFIED
Jefferson O IturbideArgentinaOnyama Limba NEGOTIATION
Jones F OldroydItalyElwin Sharvill RENEWAL
Jeanfrancois A StensethGermanyStephen Shaw UNQUALIFIED
Octavia T TollnerIndiaElwin Sharvill NEGOTIATION
Sinclair Z SchemmerArgentinaElwin Sharvill PROPOSAL
Tony D OstroskySpainBernardo Dominic PROPOSAL
David Q GarufiAustraliaBernardo Dominic PROPOSAL
Claire U PoquetteJapanStephen Shaw 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>