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
Ivar L RimJapanBernardo Dominic UNQUALIFIED
Jeanfrancois T KuskoSpainBernardo Dominic RENEWAL
Greenwood S ChuiGermanyOnyama Limba RENEWAL
Mujtaba C PaprockiFranceIvan Magalhaes PROPOSAL
Munro Y NickaAustraliaXuxue Feng NEGOTIATION
Misaki A StockhamArgentinaElwin Sharvill QUALIFIED
David N VocelkaCanadaAsiya Javayant PROPOSAL
Jennifer C WaycottFranceElwin Sharvill PROPOSAL
Adams F FerenczItalyXuxue Feng RENEWAL
Adams N GlickJapanStephen Shaw NEW
Tony D ChuiBrazilAsiya Javayant NEGOTIATION
Rodrigues R PaprockiGermanyAnna Fali RENEWAL
Aditya N VenereJapanAnna Fali QUALIFIED
Mujtaba Z ChuiRussiaIvan Magalhaes RENEWAL
Johnson L CaudyAustraliaStephen Shaw PROPOSAL
Wickens Z TollnerArgentinaXuxue Feng NEW
Greenwood C GlickBrazilXuxue Feng NEW
Isabel V WhobreyUnited KingdomStephen Shaw PROPOSAL
Leon D OldroydGermanyXuxue Feng RENEWAL
Ivar F SergiFranceElwin Sharvill QUALIFIED
Ivar D FerenczIndiaIvan Magalhaes RENEWAL
Rodrigues J VenereUnited KingdomIoni Bowcher NEGOTIATION
Ricardo R WieserBrazilOnyama Limba UNQUALIFIED
Nicolas W RimFranceStephen Shaw NEGOTIATION
David F RoysterCanadaElwin Sharvill PROPOSAL
Leja H AlbaresFranceStephen Shaw QUALIFIED
Izzy H PerinBrazilElwin Sharvill UNQUALIFIED
James W GlickAustraliaOnyama Limba QUALIFIED
Munro Y KuskoJapanElwin Sharvill NEGOTIATION
Stacey S SchemmerGermanyElwin Sharvill UNQUALIFIED
Isabel F AmigonRussiaIvan Magalhaes NEGOTIATION
Johnson X BriddickFranceStephen Shaw QUALIFIED
Greenwood J GlickUnited KingdomAmy Elsner PROPOSAL
Jones Q DoeArgentinaAnna Fali UNQUALIFIED
Claire K NestleUnited KingdomBernardo Dominic RENEWAL
Jefferson Q IturbideJapanAsiya Javayant RENEWAL
Isabel Y ButtCanadaIvan Magalhaes UNQUALIFIED
Octavia G DoeCanadaIvan Magalhaes QUALIFIED
Isabel J SchemmerItalyOnyama Limba NEW
Chavez P StensethBrazilStephen Shaw RENEWAL
Johnson G NestleIndiaBernardo Dominic PROPOSAL
Rodrigues U IturbideIndiaAmy Elsner UNQUALIFIED
Misaki I SlusarskiCanadaAnna Fali UNQUALIFIED
Maisha F CaudyCanadaAmy Elsner NEGOTIATION
Misaki M KuskoCanadaAnna Fali QUALIFIED
Emily A DoeJapanBernardo Dominic NEW
Aika U BriddickCanadaOnyama Limba UNQUALIFIED
Wickens I BowleyCanadaXuxue Feng PROPOSAL
Ricardo V KolmetzGermanyBernardo Dominic NEGOTIATION
Greenwood Y PaprockiFranceAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois H CampainBrazilBernardo Dominic NEGOTIATION
Kaitlin O CaldareraRussiaBernardo Dominic NEGOTIATION
Cody T MarrierRussiaAmy Elsner QUALIFIED
Wickens S MarrierIndiaAmy Elsner NEGOTIATION
Nicolas W CaldareraCanadaXuxue Feng NEGOTIATION
Julie C GillianCanadaAsiya Javayant NEGOTIATION
Darci Q ShinkoArgentinaStephen Shaw RENEWAL
Aika N DilliardGermanyStephen Shaw RENEWAL
Aika J MaletJapanBernardo Dominic PROPOSAL
Silvio T CampainFranceOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa X FollerAustralia2024-04-24Chanay, Jeffrey A Esq UNQUALIFIED55Bernardo Dominic
1001Izzy Z SchemmerUnited Kingdom2024-04-23Dorl, James J Esq UNQUALIFIED17Stephen Shaw
1002Chavez T ButtSpain2024-04-14Commercial Press QUALIFIED78Stephen Shaw
1003Clifford H VenereGermany2024-05-09Truhlar And Truhlar Attys NEGOTIATION6Amy Elsner
1004Mayumi Z ChuiSpain2024-05-11Feiner Bros UNQUALIFIED14Bernardo Dominic
1005Jefferson M StockhamGermany2024-05-07Rousseaux, Michael Esq UNQUALIFIED17Xuxue Feng
1006Deepesh K ShinkoSpain2024-04-29Feiner Bros QUALIFIED63Anna Fali
1007Silvio N CaldareraCanada2024-04-29Chapman, Ross E Esq QUALIFIED4Bernardo Dominic
1008Clifford B ChuiJapan2024-05-01Morlong Associates RENEWAL2Anna Fali
1009Stacey V CaudyArgentina2024-05-02Rangoni Of Florence UNQUALIFIED37Ivan Magalhaes
1010Jefferson X WaycottCanada2024-04-29Buckley Miller Wright RENEWAL81Xuxue Feng
1011Jones O FollerRussia2024-04-13Printing Dimensions QUALIFIED42Onyama Limba
1012Aditya A GillianIndia2024-04-17Rangoni Of Florence NEGOTIATION74Bernardo Dominic
1013Greenwood L AlbaresSpain2024-05-02Dorl, James J Esq RENEWAL16Amy Elsner
1014Izzy J NestleCanada2024-04-15Dorl, James J Esq QUALIFIED38Stephen Shaw
1015Smith R DoeIndia2024-04-22Rangoni Of Florence UNQUALIFIED14Ivan Magalhaes
1016Misaki Y DoeCanada2024-04-30Chemel, James L Cpa RENEWAL7Amy Elsner
1017Antonio V GauchoIndia2024-04-29Dorl, James J Esq UNQUALIFIED71Ivan Magalhaes
1018Leon W FerenczSpain2024-04-21Rousseaux, Michael Esq NEW34Onyama Limba
1019Faith M ChuiBrazil2024-04-19King, Christopher A Esq PROPOSAL93Xuxue Feng
1020Munro I DarakjyAustralia2024-04-25Buckley Miller Wright NEW53Xuxue Feng
1021Ivar C SaylorsRussia2024-05-06Chemel, James L Cpa NEGOTIATION68Ivan Magalhaes
1022Smith F DilliardGermany2024-04-18Chanay, Jeffrey A Esq RENEWAL54Elwin Sharvill
1023Jefferson Z KuskoArgentina2024-04-30Benton, John B Jr QUALIFIED96Asiya Javayant
1024Greenwood B WhobreyIndia2024-05-09Commercial Press RENEWAL84Stephen Shaw
1025Sinclair H SchemmerJapan2024-04-30Chanay, Jeffrey A Esq RENEWAL57Bernardo Dominic
1026Octavia Y GarufiIndia2024-04-29Chapman, Ross E Esq RENEWAL58Ioni Bowcher
1027Adams W PoquetteGermany2024-04-18Rousseaux, Michael Esq QUALIFIED8Amy Elsner
1028Izzy P DilliardArgentina2024-04-28Benton, John B Jr NEW77Anna Fali
1029Cody W WieserAustralia2024-04-21Benton, John B Jr UNQUALIFIED60Amy Elsner
1030Arvin T PaprockiItaly2024-05-11Chemel, James L Cpa UNQUALIFIED83Amy Elsner
1031Smith E VocelkaAustralia2024-05-06Benton, John B Jr PROPOSAL18Ioni Bowcher
1032Clifford Y WieserGermany2024-04-14Feiner Bros NEW1Asiya Javayant
1033Octavia N PerinArgentina2024-05-01Dorl, James J Esq QUALIFIED81Stephen Shaw
1034Kadeem N BowleyArgentina2024-04-27Rousseaux, Michael Esq NEGOTIATION80Bernardo Dominic
1035Clifford O OldroydFrance2024-04-19King, Christopher A Esq PROPOSAL22Xuxue Feng
1036Aruna C MaletBrazil2024-04-18Chapman, Ross E Esq UNQUALIFIED46Bernardo Dominic
1037Costa Q GauchoRussia2024-05-12Rousseaux, Michael Esq NEW18Ivan Magalhaes
1038Ricardo W MarrierUnited Kingdom2024-05-06Printing Dimensions RENEWAL13Elwin Sharvill
1039Silvio A OstroskySpain2024-05-05Rousseaux, Michael Esq NEW82Ivan Magalhaes
1040Deepesh H DarakjyCanada2024-04-17Chemel, James L Cpa UNQUALIFIED50Amy Elsner
1041Mayumi A MacleadItaly2024-04-13Rousseaux, Michael Esq NEW98Onyama Limba
1042Jefferson V OstroskyUnited Kingdom2024-04-23Buckley Miller Wright PROPOSAL1Amy Elsner
1043Sinclair Y SaylorsAustralia2024-04-27Chapman, Ross E Esq PROPOSAL92Anna Fali
1044Silvio C OldroydGermany2024-04-27Truhlar And Truhlar Attys PROPOSAL17Anna Fali
1045Sinclair L PerinRussia2024-04-14Feltz Printing Service QUALIFIED91Ioni Bowcher
1046Antonio Y FigeroaItaly2024-04-20King, Christopher A Esq NEW97Elwin Sharvill
1047Maria D AmigonFrance2024-04-13Dorl, James J Esq NEGOTIATION47Anna Fali
1048Ivar B MaletRussia2024-04-26Morlong Associates NEGOTIATION49Anna Fali
1049Faith R ShinkoAustralia2024-05-09Buckley Miller Wright RENEWAL50Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar Q WhobreyUnited KingdomIvan Magalhaes NEW
Mujtaba N RoysterUnited KingdomXuxue Feng PROPOSAL
Chavez Q PerinIndiaAnna Fali RENEWAL
Jeanfrancois T SergiArgentinaStephen Shaw NEW
Johnson E WhobreyRussiaAmy Elsner UNQUALIFIED
Nicolas D GarufiGermanyOnyama Limba RENEWAL
Leon Q VenereFranceAnna Fali NEW
Octavia W DoeUnited KingdomXuxue Feng QUALIFIED
Adams K DoeJapanStephen Shaw PROPOSAL
Adams W SaylorsIndiaIoni Bowcher RENEWAL
Leja J KolmetzRussiaStephen Shaw UNQUALIFIED
Francesco E DarakjySpainBernardo Dominic RENEWAL
Costa X ChuiItalyAnna Fali NEW
Claire J KuskoIndiaIvan Magalhaes PROPOSAL
Ricardo O WhobreyGermanyAnna Fali RENEWAL
Chavez J CampainAustraliaElwin Sharvill QUALIFIED
Silvio T SchemmerIndiaIoni Bowcher NEW
Rodrigues X NickaIndiaStephen Shaw RENEWAL
Ricardo J GauchoSpainStephen Shaw PROPOSAL
Darci S RimUnited KingdomOnyama Limba NEGOTIATION
Jefferson Y StockhamBrazilAnna Fali NEW
Jefferson I IturbideGermanyElwin Sharvill PROPOSAL
Jones Q AlbaresCanadaXuxue Feng RENEWAL
Francesco S OldroydItalyAnna Fali QUALIFIED
Adams W RulapaughCanadaAnna Fali PROPOSAL
Deepesh T KolmetzAustraliaIvan Magalhaes PROPOSAL
Cody L FollerIndiaElwin Sharvill QUALIFIED
Ivar O FollerSpainStephen Shaw NEW
Julie R DarakjyJapanXuxue Feng UNQUALIFIED
Ivar U BriddickGermanyBernardo Dominic NEGOTIATION
Aditya P RoysterItalyStephen Shaw QUALIFIED
Darci N FlosiUnited KingdomBernardo Dominic PROPOSAL
Arvin A BologniaSpainXuxue Feng NEGOTIATION
Rodrigues Z BowleySpainIoni Bowcher PROPOSAL
Faith I FerenczBrazilIvan Magalhaes NEW
Ricardo V DilliardArgentinaXuxue Feng RENEWAL
Jennifer C CampainAustraliaOnyama Limba UNQUALIFIED
Murillo K MaletJapanIoni Bowcher NEW
Isabel E CaldareraFranceAsiya Javayant UNQUALIFIED
Munro U MaletFranceIoni Bowcher NEW
Juan S PerinFranceOnyama Limba RENEWAL
Aruna Q SaylorsArgentinaOnyama Limba PROPOSAL
Izzy W BriddickItalyOnyama Limba NEW
Munro O PerinGermanyBernardo Dominic NEGOTIATION
Ricardo M WhobreyArgentinaXuxue Feng PROPOSAL
Jeanfrancois N VocelkaAustraliaAnna Fali NEGOTIATION
Ashley M KolmetzItalyBernardo Dominic NEGOTIATION
Ashley T WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Ricardo W MaletSpainAsiya Javayant PROPOSAL
Clifford J WieserAustraliaOnyama Limba QUALIFIED
Frozen Columns
Name
Claire L Royster
Isabel S Inouye
Rodrigues G Nestle
Jeanfrancois L Nestle
Ashley A Figeroa
Aditya J Caudy
Octavia O Gillian
Leon W Bowley
Arvin M Briddick
Nicolas V Malet
Rodrigues X Ruta
Ivar Q Nestle
Salvatore I Vocelka
Jeanfrancois K Tollner
Arvin L Tollner
Murillo R Doe
Leon C Nestle
Kaitlin B Slusarski
Aditya R Tollner
Murillo Y Venere
Leon E Rim
Aika Z Kusko
Stacey E Albares
Alejandro T Rim
Greenwood D Perin
Deepesh N Amigon
Juan G Inouye
Morrow G Malet
Jones Z Dilliard
Darci I Tollner
Ashley S Morasca
Cody H Briddick
Arvin P Amigon
Jennifer J Flosi
Tony V Whobrey
Ashley U Ostrosky
Salvatore X Rulapaugh
Sinclair Y Campain
Costa Z Schemmer
Stacey E Campain
Ashley V Poquette
Faith A Doe
Ashley M Poquette
Claire V Bowley
Leja E Nestle
Alejandro P Caudy
David M Doe
Claire T Wieser
Smith D Gillian
Misaki Y Chui
IdCountryDate
1000Italy2024-05-05
1001Australia2024-04-20
1002Russia2024-05-07
1003Russia2024-04-27
1004Canada2024-05-11
1005Australia2024-04-15
1006Spain2024-04-27
1007Spain2024-05-01
1008Russia2024-04-28
1009Canada2024-05-02
1010Spain2024-05-02
1011Germany2024-04-14
1012Spain2024-05-12
1013Argentina2024-04-13
1014France2024-04-20
1015Brazil2024-04-23
1016India2024-04-18
1017France2024-04-18
1018Japan2024-04-27
1019Russia2024-05-03
1020Canada2024-05-09
1021Spain2024-05-08
1022Spain2024-04-13
1023Spain2024-05-04
1024France2024-04-18
1025France2024-04-21
1026United Kingdom2024-05-03
1027Canada2024-04-30
1028Brazil2024-04-15
1029Australia2024-05-07
1030India2024-05-05
1031Japan2024-05-03
1032United Kingdom2024-04-25
1033Australia2024-04-21
1034France2024-04-18
1035France2024-05-10
1036India2024-04-20
1037Russia2024-04-28
1038Japan2024-05-07
1039Argentina2024-05-02
1040Argentina2024-04-17
1041India2024-04-30
1042Australia2024-04-20
1043Canada2024-04-30
1044Germany2024-04-26
1045Australia2024-05-02
1046Germany2024-04-14
1047India2024-04-26
1048France2024-04-29
1049France2024-04-15

On-Demand Data

NameIdCountryDate
Silvio J Ferencz1000India2024-05-01
Deepesh K Inouye1001France2024-05-05
Octavia U Chui1002Australia2024-04-19
Clifford D Albares1003Italy2024-04-13
Adams T Slusarski1004Brazil2024-04-30
Jefferson H Royster1005Japan2024-05-12
Greenwood M Gaucho1006Japan2024-05-04
Munro I Morasca1007Argentina2024-04-28
Darci L Dilliard1008Russia2024-04-29
Misaki R Albares1009Russia2024-04-16
Julie V Ruta1010United Kingdom2024-04-13
Misaki G Sergi1011France2024-04-15
Emily M Caudy1012Canada2024-04-29
Wickens B Glick1013Japan2024-04-28
Aditya B Bolognia1014Japan2024-05-11
Cody S Bolognia1015Italy2024-05-11
Rodrigues Q Chui1016Germany2024-05-07
Smith A Garufi1017Australia2024-04-14
Munro Z Stenseth1018Italy2024-05-01
James D Chui1019India2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson Y WieserUnited KingdomAmy Elsner RENEWAL
Ashley L CaudySpainElwin Sharvill UNQUALIFIED
Cody A KuskoCanadaAnna Fali UNQUALIFIED
Ricardo G MorascaItalyAsiya Javayant QUALIFIED
Wickens I VocelkaCanadaAmy Elsner UNQUALIFIED
Munro N RimAustraliaAnna Fali QUALIFIED
Jeanfrancois N DilliardAustraliaStephen Shaw NEGOTIATION
Emily E KuskoFranceOnyama Limba QUALIFIED
Alejandro J GauchoFranceBernardo Dominic NEW
Ashley D IturbideAustraliaXuxue Feng NEW
Leja J AmigonItalyStephen Shaw NEGOTIATION
Stacey Z MaletUnited KingdomOnyama Limba PROPOSAL
Greenwood Z DarakjySpainAmy Elsner UNQUALIFIED
Julie Y SlusarskiJapanElwin Sharvill PROPOSAL
Aditya Y NickaGermanyAsiya Javayant PROPOSAL
Alejandro E OldroydGermanyIoni Bowcher NEGOTIATION
Jeanfrancois D BowleyArgentinaIvan Magalhaes NEGOTIATION
Aditya Q CampainFranceXuxue Feng UNQUALIFIED
Maria S PoquetteUnited KingdomBernardo Dominic RENEWAL
Greenwood G InouyeAustraliaElwin Sharvill QUALIFIED
Antonio S MarrierCanadaIoni Bowcher NEW
Aditya N MorascaArgentinaAmy Elsner RENEWAL
Jennifer Z MorascaItalyXuxue Feng PROPOSAL
Salvatore R VenereItalyBernardo Dominic UNQUALIFIED
Izzy S ButtUnited KingdomStephen Shaw QUALIFIED
Claire M RimBrazilElwin Sharvill QUALIFIED
Francesco F MarrierCanadaAmy Elsner NEW
Darci K WieserCanadaIoni Bowcher NEGOTIATION
David Q DoeSpainAnna Fali NEW
Claire Y MorascaJapanXuxue Feng NEGOTIATION
Deepesh K RulapaughCanadaAsiya Javayant UNQUALIFIED
Julie U GauchoIndiaAsiya Javayant RENEWAL
Izzy S BologniaIndiaElwin Sharvill QUALIFIED
Mujtaba V AlbaresIndiaIoni Bowcher PROPOSAL
Maisha G FigeroaSpainIvan Magalhaes UNQUALIFIED
Mujtaba Z MacleadItalyIoni Bowcher NEW
Maria M WaycottBrazilBernardo Dominic PROPOSAL
Darci U DarakjyFranceElwin Sharvill PROPOSAL
Chavez F VenereAustraliaAnna Fali NEGOTIATION
Jones O RimGermanyAsiya 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>