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
Ashley S GarufiCanadaAmy Elsner PROPOSAL
Juan U BologniaIndiaBernardo Dominic NEGOTIATION
Stacey I DoeArgentinaIoni Bowcher RENEWAL
Aika S IturbideAustraliaStephen Shaw NEGOTIATION
Leon K BologniaIndiaElwin Sharvill NEW
Smith H GauchoSpainStephen Shaw PROPOSAL
Maria O BriddickItalyElwin Sharvill QUALIFIED
Chavez O RutaJapanOnyama Limba PROPOSAL
Antonio V NestleRussiaIvan Magalhaes QUALIFIED
Claire N TollnerBrazilIvan Magalhaes NEGOTIATION
Adams E RutaUnited KingdomOnyama Limba RENEWAL
Juan S DoeUnited KingdomXuxue Feng QUALIFIED
Murillo T VenereFranceAsiya Javayant NEGOTIATION
Arvin H GauchoIndiaStephen Shaw NEGOTIATION
Francesco V PaprockiUnited KingdomXuxue Feng PROPOSAL
Isabel F ShinkoFranceAmy Elsner PROPOSAL
Sinclair Z OldroydRussiaBernardo Dominic UNQUALIFIED
Sinclair D StensethAustraliaAnna Fali QUALIFIED
Misaki C OldroydBrazilAsiya Javayant PROPOSAL
Tony W ShinkoArgentinaXuxue Feng QUALIFIED
Izzy K SchemmerRussiaElwin Sharvill NEGOTIATION
Smith J VocelkaFranceIoni Bowcher RENEWAL
James N NestleFranceBernardo Dominic NEW
Kadeem L AmigonSpainAsiya Javayant UNQUALIFIED
Mujtaba P StockhamItalyAmy Elsner QUALIFIED
Munro V PaprockiJapanOnyama Limba PROPOSAL
Aditya E DilliardAustraliaXuxue Feng QUALIFIED
Chavez I FlosiRussiaOnyama Limba UNQUALIFIED
Jones Y AlbaresUnited KingdomAnna Fali RENEWAL
James W PerinCanadaXuxue Feng RENEWAL
Jones W NestleItalyBernardo Dominic NEW
Jennifer L DarakjyFranceElwin Sharvill UNQUALIFIED
Sinclair I GauchoArgentinaBernardo Dominic NEGOTIATION
Jefferson E OstroskyItalyBernardo Dominic RENEWAL
Jones M KolmetzBrazilXuxue Feng NEGOTIATION
Adams M TollnerFranceIvan Magalhaes UNQUALIFIED
Julie M WhobreyRussiaAnna Fali QUALIFIED
Ashley K StensethItalyIvan Magalhaes RENEWAL
Kadeem M RimItalyAsiya Javayant PROPOSAL
Deepesh J RutaJapanIvan Magalhaes NEW
Ivar F GillianIndiaOnyama Limba PROPOSAL
Ivar Q DarakjyJapanElwin Sharvill PROPOSAL
Tony A BologniaFranceXuxue Feng NEGOTIATION
Francesco X OldroydUnited KingdomAsiya Javayant NEW
Ivar C WieserFranceAmy Elsner NEW
Maria I WaycottGermanyAnna Fali PROPOSAL
Ivar S PerinItalyXuxue Feng NEGOTIATION
Leja S FerenczItalyOnyama Limba QUALIFIED
Sinclair Y MacleadGermanyIvan Magalhaes QUALIFIED
Mujtaba W MaletJapanOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Francesco B GillianFranceIvan Magalhaes NEGOTIATION
Murillo Y OstroskyGermanyBernardo Dominic PROPOSAL
Alejandro K FlosiSpainXuxue Feng NEGOTIATION
Aditya I StensethGermanyAnna Fali PROPOSAL
Maria I NestleIndiaBernardo Dominic UNQUALIFIED
Nicolas K OldroydJapanBernardo Dominic NEW
Jeanfrancois Z SlusarskiRussiaIvan Magalhaes RENEWAL
Wickens P CaldareraUnited KingdomAmy Elsner NEGOTIATION
Arvin Z GauchoCanadaAmy Elsner PROPOSAL
Arvin V MaletFranceIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya K OldroydIndia2024-04-22Chapman, Ross E Esq UNQUALIFIED82Onyama Limba
1001Maisha A DarakjyJapan2024-04-01Truhlar And Truhlar Attys PROPOSAL46Bernardo Dominic
1002Cody P AlbaresJapan2024-03-30Feiner Bros NEW22Anna Fali
1003Mujtaba M KuskoArgentina2024-04-23Truhlar And Truhlar Attys QUALIFIED2Xuxue Feng
1004Ashley A SlusarskiCanada2024-04-10Chanay, Jeffrey A Esq PROPOSAL35Stephen Shaw
1005Jeanfrancois S SchemmerRussia2024-04-23Benton, John B Jr NEGOTIATION68Ivan Magalhaes
1006Murillo Y DilliardArgentina2024-04-11Feiner Bros UNQUALIFIED50Bernardo Dominic
1007Jennifer J CaudyUnited Kingdom2024-04-06Chemel, James L Cpa RENEWAL72Asiya Javayant
1008Darci Q TollnerArgentina2024-04-11Buckley Miller Wright PROPOSAL50Bernardo Dominic
1009Isabel Z StensethGermany2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED37Ivan Magalhaes
1010Isabel R CampainBrazil2024-04-22Chapman, Ross E Esq NEGOTIATION82Xuxue Feng
1011Ivar R PoquetteJapan2024-04-13Rangoni Of Florence PROPOSAL88Amy Elsner
1012Faith B RulapaughGermany2024-04-11Chapman, Ross E Esq PROPOSAL14Bernardo Dominic
1013Cody U FollerSpain2024-04-01Buckley Miller Wright NEW2Amy Elsner
1014Faith O WaycottIndia2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED68Stephen Shaw
1015Clifford M VenereSpain2024-03-27Truhlar And Truhlar Attys NEW62Asiya Javayant
1016Kadeem V SaylorsSpain2024-04-02Buckley Miller Wright QUALIFIED33Onyama Limba
1017Leon R RulapaughUnited Kingdom2024-04-19Truhlar And Truhlar Attys UNQUALIFIED27Xuxue Feng
1018Maria C MaletGermany2024-04-10Dorl, James J Esq UNQUALIFIED16Asiya Javayant
1019Deepesh P MaletJapan2024-04-15Rousseaux, Michael Esq UNQUALIFIED89Stephen Shaw
1020Maisha H IturbideUnited Kingdom2024-04-06Rangoni Of Florence UNQUALIFIED65Ivan Magalhaes
1021Johnson O FerenczSpain2024-04-05Dorl, James J Esq PROPOSAL23Ivan Magalhaes
1022Maria K InouyeRussia2024-04-06Dorl, James J Esq PROPOSAL19Ioni Bowcher
1023Isabel W GillianJapan2024-04-23Benton, John B Jr NEW49Anna Fali
1024Adams A ShinkoCanada2024-04-12Morlong Associates NEW54Stephen Shaw
1025Salvatore J GarufiIndia2024-04-24Chanay, Jeffrey A Esq RENEWAL29Elwin Sharvill
1026Murillo K RoysterJapan2024-04-13Chanay, Jeffrey A Esq RENEWAL35Anna Fali
1027David D StensethCanada2024-04-07Rangoni Of Florence NEW95Anna Fali
1028Kaitlin U GillianFrance2024-04-09Chanay, Jeffrey A Esq RENEWAL23Bernardo Dominic
1029Claire R PoquetteGermany2024-04-09Commercial Press UNQUALIFIED36Stephen Shaw
1030Jeanfrancois H VocelkaSpain2024-04-13Chanay, Jeffrey A Esq NEW60Anna Fali
1031Chavez F OldroydAustralia2024-04-21Dorl, James J Esq UNQUALIFIED40Anna Fali
1032Wickens Z ShinkoIndia2024-04-04Printing Dimensions QUALIFIED60Stephen Shaw
1033Kadeem H SaylorsUnited Kingdom2024-04-17Chapman, Ross E Esq UNQUALIFIED84Amy Elsner
1034Antonio E NickaJapan2024-03-29Chapman, Ross E Esq NEGOTIATION66Ioni Bowcher
1035Isabel Z FigeroaUnited Kingdom2024-04-05Chemel, James L Cpa NEW44Ioni Bowcher
1036Murillo O MarrierSpain2024-04-03Morlong Associates QUALIFIED22Onyama Limba
1037Aruna B DoeAustralia2024-04-06Chemel, James L Cpa UNQUALIFIED91Ivan Magalhaes
1038Smith G PaprockiFrance2024-04-11King, Christopher A Esq UNQUALIFIED80Bernardo Dominic
1039Chavez O TollnerBrazil2024-04-13Buckley Miller Wright UNQUALIFIED26Amy Elsner
1040Ashley C TollnerGermany2024-04-05Chanay, Jeffrey A Esq NEGOTIATION67Stephen Shaw
1041Mayumi Z BowleyIndia2024-04-19Truhlar And Truhlar Attys NEGOTIATION35Asiya Javayant
1042Nicolas R FlosiAustralia2024-04-07Commercial Press PROPOSAL62Anna Fali
1043Murillo U SaylorsFrance2024-04-20Chapman, Ross E Esq UNQUALIFIED98Stephen Shaw
1044Antonio U RulapaughGermany2024-04-20Buckley Miller Wright NEW14Xuxue Feng
1045Silvio I WhobreyIndia2024-04-12Chemel, James L Cpa QUALIFIED83Amy Elsner
1046Jennifer D MaletCanada2024-04-01Benton, John B Jr NEGOTIATION78Bernardo Dominic
1047Octavia U PoquetteItaly2024-04-24Morlong Associates RENEWAL43Anna Fali
1048Silvio E CampainGermany2024-04-07Benton, John B Jr RENEWAL23Asiya Javayant
1049Chavez K SaylorsItaly2024-04-22Commercial Press QUALIFIED58Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois W CampainArgentinaOnyama Limba PROPOSAL
Greenwood J RulapaughSpainIoni Bowcher RENEWAL
Aika I RoysterArgentinaOnyama Limba UNQUALIFIED
Smith O RutaIndiaAsiya Javayant NEW
Stacey U AlbaresRussiaIvan Magalhaes NEGOTIATION
Wickens N FigeroaRussiaOnyama Limba NEW
Tony L FlosiUnited KingdomElwin Sharvill RENEWAL
Faith P AmigonFranceElwin Sharvill QUALIFIED
Arvin U ButtCanadaIvan Magalhaes QUALIFIED
Clifford C BowleyItalyAmy Elsner NEGOTIATION
Juan V BriddickItalyStephen Shaw PROPOSAL
Faith E MaletGermanyIvan Magalhaes QUALIFIED
Adams V RimJapanIoni Bowcher UNQUALIFIED
Juan W SergiCanadaStephen Shaw NEW
Murillo T FigeroaRussiaElwin Sharvill PROPOSAL
Salvatore J MaletSpainAsiya Javayant QUALIFIED
Aika P ButtJapanIoni Bowcher UNQUALIFIED
Greenwood H MacleadArgentinaBernardo Dominic PROPOSAL
Jones I FerenczItalyStephen Shaw NEW
Juan G CaudyItalyAnna Fali UNQUALIFIED
Izzy P CampainGermanyStephen Shaw RENEWAL
Rodrigues J GauchoSpainXuxue Feng PROPOSAL
Sinclair G KuskoGermanyBernardo Dominic QUALIFIED
Mayumi U MacleadArgentinaOnyama Limba PROPOSAL
Deepesh Z MarrierFranceIvan Magalhaes NEW
Morrow K ShinkoAustraliaStephen Shaw NEGOTIATION
Stacey S FerenczIndiaAnna Fali NEGOTIATION
Kadeem H NickaFranceAsiya Javayant NEGOTIATION
Jennifer W SergiJapanStephen Shaw NEW
Francesco X OldroydAustraliaXuxue Feng NEW
Izzy Y WhobreyCanadaElwin Sharvill UNQUALIFIED
Jones U AlbaresItalyElwin Sharvill NEW
David E BriddickCanadaIvan Magalhaes RENEWAL
Faith W GauchoBrazilXuxue Feng NEW
Kadeem K SaylorsIndiaXuxue Feng NEW
Rodrigues R CampainRussiaXuxue Feng NEGOTIATION
James F KuskoGermanyAmy Elsner RENEWAL
Nicolas U DoeBrazilAnna Fali NEGOTIATION
Misaki D SchemmerItalyStephen Shaw RENEWAL
Julie S SchemmerArgentinaOnyama Limba QUALIFIED
Morrow X ShinkoFranceAnna Fali NEGOTIATION
Smith D PaprockiRussiaOnyama Limba NEW
Cody J OstroskyBrazilAsiya Javayant UNQUALIFIED
David C AlbaresFranceIoni Bowcher UNQUALIFIED
Ashley L KuskoRussiaBernardo Dominic PROPOSAL
Cody Y DoeAustraliaStephen Shaw RENEWAL
Darci G NestleItalyElwin Sharvill UNQUALIFIED
Silvio C CaldareraGermanyElwin Sharvill QUALIFIED
Jennifer C MorascaJapanIvan Magalhaes NEW
Leon E FerenczItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Greenwood D Stenseth
Deepesh N Kusko
Maria P Figeroa
Alejandro A Albares
Smith D Rim
Jones K Garufi
Aruna C Slusarski
James C Gillian
Clifford V Nestle
Costa Y Paprocki
Stacey A Gillian
Jefferson U Paprocki
James M Wieser
Mayumi T Figeroa
Francesco O Waycott
Greenwood C Briddick
Kaitlin A Garufi
Darci X Tollner
Leja G Briddick
Ivar Y Sergi
Maisha I Oldroyd
Ashley N Figeroa
Greenwood V Glick
Stacey H Darakjy
Misaki C Kolmetz
Isabel I Doe
Izzy G Slusarski
Jones Y Shinko
Jennifer A Gaucho
Faith N Schemmer
Leon X Wieser
Aditya S Rim
Johnson G Nestle
Deepesh V Nestle
Adams C Gillian
Smith F Paprocki
Salvatore D Marrier
Mayumi X Kolmetz
David H Bolognia
Ricardo O Albares
Mujtaba E Stockham
Wickens M Paprocki
Morrow H Campain
Chavez E Bolognia
Darci A Doe
Maria V Kolmetz
Clifford O Dilliard
Ricardo I Whobrey
Antonio G Chui
Mayumi X Vocelka
IdCountryDate
1000Canada2024-04-11
1001Canada2024-04-23
1002Italy2024-03-27
1003France2024-04-12
1004Australia2024-04-01
1005Japan2024-04-03
1006Canada2024-04-02
1007Argentina2024-03-31
1008France2024-04-10
1009Australia2024-03-27
1010Spain2024-03-30
1011United Kingdom2024-04-20
1012Italy2024-04-21
1013Spain2024-04-15
1014Brazil2024-04-05
1015India2024-04-11
1016France2024-03-27
1017India2024-04-23
1018France2024-04-04
1019Spain2024-04-22
1020France2024-04-23
1021France2024-04-24
1022Russia2024-04-02
1023United Kingdom2024-04-03
1024Brazil2024-04-01
1025Brazil2024-04-10
1026Argentina2024-04-11
1027Russia2024-04-04
1028Germany2024-04-19
1029Germany2024-04-09
1030Italy2024-04-17
1031India2024-04-04
1032Russia2024-04-05
1033Russia2024-04-20
1034Japan2024-04-18
1035United Kingdom2024-03-28
1036Italy2024-03-31
1037United Kingdom2024-04-03
1038United Kingdom2024-04-17
1039United Kingdom2024-03-28
1040Brazil2024-03-28
1041Brazil2024-03-28
1042India2024-04-05
1043Germany2024-04-23
1044Canada2024-04-07
1045Germany2024-03-30
1046Brazil2024-04-02
1047Argentina2024-04-02
1048Japan2024-03-30
1049Australia2024-04-01

On-Demand Data

NameIdCountryDate
Costa I Oldroyd1000India2024-03-31
Isabel H Nestle1001France2024-04-04
Maria S Iturbide1002United Kingdom2024-03-29
Aditya R Stockham1003Brazil2024-04-07
Ivar K Kolmetz1004Brazil2024-04-13
Aika M Chui1005Brazil2024-04-23
Francesco V Butt1006India2024-04-12
Emily V Bolognia1007India2024-03-29
Jennifer V Glick1008Spain2024-03-30
Ricardo X Waycott1009Brazil2024-03-28
Jennifer G Rim1010United Kingdom2024-04-03
Jones C Foller1011United Kingdom2024-03-28
Claire I Inouye1012Germany2024-04-08
Faith J Kusko1013Brazil2024-04-07
Murillo P Marrier1014Germany2024-03-28
Morrow C Gaucho1015Germany2024-04-07
Silvio P Stockham1016France2024-04-06
Octavia P Shinko1017Brazil2024-03-30
Cody Y Morasca1018Germany2024-03-27
Aika J Figeroa1019Japan2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez W RimCanadaAmy Elsner RENEWAL
Ivar G CaldareraSpainAmy Elsner RENEWAL
Antonio F MacleadBrazilIvan Magalhaes PROPOSAL
Izzy R FigeroaAustraliaElwin Sharvill PROPOSAL
Octavia U PerinCanadaAmy Elsner PROPOSAL
Chavez R SergiRussiaAnna Fali RENEWAL
Cody I KolmetzBrazilOnyama Limba UNQUALIFIED
Aika Y MaletArgentinaXuxue Feng UNQUALIFIED
Darci C StockhamJapanElwin Sharvill UNQUALIFIED
Octavia M RoysterUnited KingdomXuxue Feng QUALIFIED
Ricardo X WaycottArgentinaStephen Shaw RENEWAL
Jones R StockhamFranceStephen Shaw RENEWAL
Mayumi I RimRussiaElwin Sharvill PROPOSAL
Claire D CampainJapanIvan Magalhaes QUALIFIED
Aika G TollnerUnited KingdomElwin Sharvill RENEWAL
Rodrigues Q FollerCanadaAsiya Javayant UNQUALIFIED
Sinclair G PaprockiGermanyIvan Magalhaes RENEWAL
Claire H IturbideRussiaOnyama Limba PROPOSAL
Jeanfrancois N RimJapanAmy Elsner RENEWAL
Leon J GlickCanadaBernardo Dominic PROPOSAL
Jefferson H RutaIndiaStephen Shaw PROPOSAL
Maria K FigeroaSpainAnna Fali NEW
Aditya U FlosiBrazilAmy Elsner NEW
Cody Z AmigonArgentinaXuxue Feng RENEWAL
Maria K GarufiArgentinaAmy Elsner UNQUALIFIED
Rodrigues B DilliardArgentinaBernardo Dominic QUALIFIED
Jennifer F WieserFranceBernardo Dominic NEW
Mujtaba Z PoquetteUnited KingdomOnyama Limba NEW
Leja W GlickBrazilXuxue Feng NEGOTIATION
Francesco Q PerinBrazilBernardo Dominic NEW
Maisha Q NestleBrazilIoni Bowcher QUALIFIED
Rodrigues H AlbaresCanadaIoni Bowcher NEGOTIATION
Darci M MacleadUnited KingdomOnyama Limba NEW
Aika M VenereBrazilAnna Fali NEW
Tony P TollnerUnited KingdomOnyama Limba UNQUALIFIED
Wickens Z NestleCanadaOnyama Limba NEGOTIATION
Jones S SaylorsIndiaIoni Bowcher NEW
David Z RutaArgentinaIvan Magalhaes NEGOTIATION
James F BriddickAustraliaAmy Elsner QUALIFIED
Kadeem Z IturbideIndiaStephen Shaw 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>