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 C GlickJapanElwin Sharvill QUALIFIED
Greenwood U CaudyCanadaStephen Shaw NEGOTIATION
Tony F OstroskyRussiaStephen Shaw NEGOTIATION
Aditya X SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Ashley R CaudyJapanIoni Bowcher UNQUALIFIED
Darci U WhobreyCanadaXuxue Feng UNQUALIFIED
Arvin L AlbaresCanadaAsiya Javayant NEW
Darci M KuskoIndiaIvan Magalhaes NEGOTIATION
Sinclair A MorascaArgentinaAmy Elsner RENEWAL
Murillo N InouyeBrazilXuxue Feng UNQUALIFIED
Aruna O MacleadBrazilBernardo Dominic QUALIFIED
Wickens C CaudyUnited KingdomIvan Magalhaes QUALIFIED
Arvin G MarrierBrazilAnna Fali PROPOSAL
Emily Y StockhamRussiaXuxue Feng NEW
Juan Z ShinkoItalyAnna Fali NEW
Ashley K OstroskyAustraliaAnna Fali PROPOSAL
James H MaletBrazilElwin Sharvill NEW
Juan Z TollnerSpainElwin Sharvill NEGOTIATION
Murillo O RoysterJapanIvan Magalhaes NEGOTIATION
Munro N FigeroaGermanyElwin Sharvill RENEWAL
Tony R MaletSpainBernardo Dominic RENEWAL
Salvatore M BowleyFranceAsiya Javayant UNQUALIFIED
Julie W CaudyCanadaIvan Magalhaes QUALIFIED
Arvin V KolmetzJapanOnyama Limba PROPOSAL
Salvatore P InouyeJapanAmy Elsner PROPOSAL
Aditya J CaldareraItalyAmy Elsner UNQUALIFIED
Jefferson X RoysterBrazilElwin Sharvill QUALIFIED
Maisha Q FerenczIndiaXuxue Feng PROPOSAL
Sinclair E NickaRussiaBernardo Dominic PROPOSAL
Juan T KolmetzIndiaAsiya Javayant RENEWAL
Costa X OstroskyArgentinaXuxue Feng QUALIFIED
Chavez O GlickItalyXuxue Feng UNQUALIFIED
Wickens X InouyeIndiaAnna Fali NEW
Darci Y MaletGermanyXuxue Feng NEGOTIATION
Nicolas L PerinUnited KingdomIoni Bowcher PROPOSAL
James T DilliardJapanXuxue Feng RENEWAL
Darci C MorascaJapanIvan Magalhaes NEGOTIATION
Jeanfrancois E FerenczRussiaBernardo Dominic QUALIFIED
Antonio V OstroskyArgentinaAnna Fali RENEWAL
Izzy R AlbaresJapanAsiya Javayant UNQUALIFIED
Jones R AlbaresFranceAsiya Javayant UNQUALIFIED
Juan V FigeroaArgentinaElwin Sharvill NEW
Mujtaba P PerinIndiaAnna Fali QUALIFIED
Francesco P ButtFranceIoni Bowcher NEW
Jennifer I GillianUnited KingdomIvan Magalhaes QUALIFIED
Murillo W FigeroaBrazilIvan Magalhaes NEGOTIATION
Nicolas L MaletSpainIoni Bowcher NEGOTIATION
Silvio N WaycottAustraliaBernardo Dominic NEW
Costa H OldroydBrazilIoni Bowcher QUALIFIED
Leon V WhobreyGermanyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody F ShinkoItalyOnyama Limba PROPOSAL
Emily W OldroydGermanyIoni Bowcher NEW
Aruna D FollerIndiaElwin Sharvill UNQUALIFIED
Stacey N GillianFranceIvan Magalhaes RENEWAL
Francesco O AmigonCanadaXuxue Feng NEGOTIATION
Sinclair Y MaletSpainAmy Elsner NEW
James W RutaGermanyAnna Fali NEGOTIATION
Leja C KuskoItalyIvan Magalhaes UNQUALIFIED
Munro I GarufiBrazilOnyama Limba PROPOSAL
Jones F InouyeAustraliaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire U IturbideArgentina2024-04-25Morlong Associates RENEWAL60Asiya Javayant
1001Silvio F KolmetzUnited Kingdom2024-04-23Rousseaux, Michael Esq NEW48Amy Elsner
1002Maria C SchemmerSpain2024-04-14Chemel, James L Cpa UNQUALIFIED30Bernardo Dominic
1003Juan R WaycottBrazil2024-04-04Commercial Press RENEWAL36Elwin Sharvill
1004Silvio N TollnerCanada2024-04-17Feiner Bros NEW31Onyama Limba
1005Munro J ButtCanada2024-04-16Feiner Bros PROPOSAL65Onyama Limba
1006Octavia N ButtJapan2024-04-08Feltz Printing Service NEGOTIATION19Stephen Shaw
1007Rodrigues B FollerBrazil2024-04-20Chapman, Ross E Esq UNQUALIFIED15Amy Elsner
1008Faith X TollnerCanada2024-04-17Rangoni Of Florence PROPOSAL82Xuxue Feng
1009Rodrigues W ChuiSpain2024-04-14Rangoni Of Florence UNQUALIFIED41Asiya Javayant
1010Juan F BowleyJapan2024-04-19Rousseaux, Michael Esq UNQUALIFIED43Onyama Limba
1011Maisha N TollnerUnited Kingdom2024-04-26Dorl, James J Esq NEW13Anna Fali
1012Nicolas W VocelkaBrazil2024-04-22Printing Dimensions UNQUALIFIED92Ivan Magalhaes
1013Izzy A CampainCanada2024-04-22Feiner Bros UNQUALIFIED36Asiya Javayant
1014Clifford N RoysterGermany2024-05-01Commercial Press NEW62Ivan Magalhaes
1015Claire B NickaFrance2024-04-15Chapman, Ross E Esq RENEWAL26Amy Elsner
1016Maria S DoeArgentina2024-04-09Chapman, Ross E Esq NEW69Elwin Sharvill
1017Ashley D FollerIndia2024-04-15Commercial Press NEW55Stephen Shaw
1018Mayumi U DilliardAustralia2024-04-12Commercial Press NEGOTIATION86Amy Elsner
1019Jefferson Y RoysterUnited Kingdom2024-04-04Benton, John B Jr PROPOSAL18Amy Elsner
1020Jones Y CampainBrazil2024-04-13Chanay, Jeffrey A Esq RENEWAL45Bernardo Dominic
1021Jennifer B BriddickSpain2024-04-21Rangoni Of Florence UNQUALIFIED58Ivan Magalhaes
1022Aruna X SaylorsSpain2024-04-16King, Christopher A Esq NEW41Elwin Sharvill
1023Chavez J BriddickUnited Kingdom2024-04-05Printing Dimensions PROPOSAL22Xuxue Feng
1024Johnson L KolmetzSpain2024-04-25Rousseaux, Michael Esq UNQUALIFIED2Asiya Javayant
1025Greenwood Q GlickArgentina2024-04-30Chapman, Ross E Esq UNQUALIFIED99Stephen Shaw
1026Clifford B RutaArgentina2024-04-11Rangoni Of Florence RENEWAL57Ioni Bowcher
1027Ivar S ChuiArgentina2024-04-10Chemel, James L Cpa UNQUALIFIED28Bernardo Dominic
1028Jefferson F FlosiGermany2024-04-08Rousseaux, Michael Esq NEGOTIATION58Onyama Limba
1029Juan B SchemmerJapan2024-04-12Benton, John B Jr QUALIFIED88Elwin Sharvill
1030James B ButtRussia2024-04-25Morlong Associates PROPOSAL23Ivan Magalhaes
1031Wickens W KolmetzAustralia2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED77Anna Fali
1032Deepesh C AlbaresBrazil2024-04-29Chanay, Jeffrey A Esq RENEWAL44Bernardo Dominic
1033Julie D BowleyArgentina2024-04-10Benton, John B Jr UNQUALIFIED53Amy Elsner
1034Maria C StockhamJapan2024-04-06Feltz Printing Service PROPOSAL62Anna Fali
1035Ivar P MacleadArgentina2024-04-20Chemel, James L Cpa RENEWAL25Stephen Shaw
1036Kadeem Y DoeRussia2024-04-14Chemel, James L Cpa NEGOTIATION53Ivan Magalhaes
1037Kaitlin B BowleyCanada2024-04-09Rousseaux, Michael Esq QUALIFIED91Bernardo Dominic
1038Leja G CaudyRussia2024-04-26Chapman, Ross E Esq NEW25Asiya Javayant
1039Antonio L FerenczItaly2024-04-10Chanay, Jeffrey A Esq NEGOTIATION54Xuxue Feng
1040Chavez N WieserItaly2024-04-07Dorl, James J Esq UNQUALIFIED61Bernardo Dominic
1041Isabel D SaylorsUnited Kingdom2024-04-30Chapman, Ross E Esq QUALIFIED82Xuxue Feng
1042Jefferson P RimSpain2024-04-08Commercial Press PROPOSAL92Ioni Bowcher
1043Leon A ButtCanada2024-04-22Commercial Press NEW7Onyama Limba
1044Chavez Z MarrierBrazil2024-05-01Rousseaux, Michael Esq UNQUALIFIED75Ioni Bowcher
1045Rodrigues M AlbaresSpain2024-04-04Feltz Printing Service NEGOTIATION92Elwin Sharvill
1046Ivar T TollnerJapan2024-04-12Rangoni Of Florence NEGOTIATION44Xuxue Feng
1047Salvatore C OldroydJapan2024-04-05Buckley Miller Wright RENEWAL22Onyama Limba
1048Emily D FlosiBrazil2024-04-06Dorl, James J Esq NEW52Stephen Shaw
1049Kadeem I InouyeCanada2024-04-30Truhlar And Truhlar Attys PROPOSAL50Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo G CampainGermanyAsiya Javayant PROPOSAL
Jennifer P NestleAustraliaStephen Shaw NEW
Misaki D CaldareraArgentinaElwin Sharvill NEGOTIATION
Smith W InouyeBrazilIvan Magalhaes QUALIFIED
Smith R MaletFranceAnna Fali RENEWAL
Darci K DoeArgentinaIvan Magalhaes UNQUALIFIED
Arvin X CaldareraSpainBernardo Dominic UNQUALIFIED
Jennifer N RoysterAustraliaAnna Fali QUALIFIED
Darci M MaletItalyAnna Fali RENEWAL
Stacey S DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Izzy J VenereIndiaBernardo Dominic RENEWAL
Maria X WieserUnited KingdomAmy Elsner QUALIFIED
Aditya L KuskoSpainAnna Fali QUALIFIED
Cody U FollerCanadaBernardo Dominic QUALIFIED
Silvio E WaycottItalyAsiya Javayant NEW
Claire J SlusarskiCanadaElwin Sharvill NEW
Mujtaba A InouyeCanadaAmy Elsner QUALIFIED
Adams Z BowleyCanadaAnna Fali NEW
Aditya P DilliardCanadaAsiya Javayant PROPOSAL
James M ButtAustraliaXuxue Feng NEGOTIATION
Mujtaba X DoeUnited KingdomBernardo Dominic NEW
Ricardo N FerenczItalyXuxue Feng PROPOSAL
Faith L RulapaughFranceAnna Fali NEW
Adams D PaprockiArgentinaAsiya Javayant PROPOSAL
Jefferson Y OldroydAustraliaIoni Bowcher NEW
Salvatore Q CaldareraGermanyIoni Bowcher UNQUALIFIED
Francesco C GauchoItalyIvan Magalhaes PROPOSAL
Antonio H TollnerArgentinaStephen Shaw NEW
Smith U RutaItalyAsiya Javayant UNQUALIFIED
Claire T VenereJapanIvan Magalhaes UNQUALIFIED
Adams F SchemmerJapanAnna Fali QUALIFIED
Aruna D CampainRussiaAnna Fali QUALIFIED
Arvin G StockhamRussiaXuxue Feng NEGOTIATION
Johnson H DoeBrazilIvan Magalhaes PROPOSAL
Francesco N PerinSpainBernardo Dominic RENEWAL
Stacey P BowleyItalyXuxue Feng QUALIFIED
Julie F MorascaAustraliaXuxue Feng NEW
Morrow Y BowleyIndiaElwin Sharvill UNQUALIFIED
Costa Q WieserCanadaAsiya Javayant UNQUALIFIED
Mayumi M WhobreyIndiaBernardo Dominic NEW
Silvio P DoeIndiaStephen Shaw RENEWAL
Leja K CaudyGermanyAnna Fali PROPOSAL
Darci B DarakjyRussiaAsiya Javayant NEGOTIATION
Claire Z SaylorsIndiaOnyama Limba RENEWAL
Mujtaba Q MaletRussiaBernardo Dominic PROPOSAL
James M BriddickJapanAnna Fali NEGOTIATION
Stacey E KuskoBrazilAnna Fali PROPOSAL
James E IturbideSpainAnna Fali NEW
Francesco M BowleyUnited KingdomBernardo Dominic NEW
Isabel B FollerUnited KingdomIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Francesco O Nestle
James I Bolognia
Morrow C Ferencz
Antonio T Figeroa
Ivar H Saylors
Costa R Foller
Salvatore H Slusarski
Cody W Glick
Octavia B Gillian
Stacey D Nicka
Ivar M Nicka
Salvatore F Marrier
Maria C Nestle
Silvio F Figeroa
Arvin W Marrier
Ricardo U Royster
Julie U Nicka
Ricardo P Garufi
Leja I Rulapaugh
Ivar H Doe
Antonio U Bowley
Mujtaba W Whobrey
Maisha N Wieser
Mujtaba F Darakjy
Chavez B Dilliard
Salvatore D Gillian
Sinclair W Perin
Adams R Stockham
Kaitlin J Slusarski
Darci G Stockham
Adams N Inouye
Johnson F Ostrosky
David F Inouye
Misaki J Bowley
Ivar V Vocelka
David I Morasca
Juan Y Butt
Munro R Flosi
Octavia V Wieser
Leon Y Amigon
Morrow H Malet
Smith G Oldroyd
Murillo O Stenseth
Isabel Y Vocelka
Maisha T Rulapaugh
Leja O Kusko
Kadeem G Ruta
Jeanfrancois Y Venere
Clifford P Perin
Salvatore E Malet
IdCountryDate
1000Germany2024-04-13
1001Spain2024-04-26
1002India2024-04-17
1003Australia2024-04-23
1004India2024-04-08
1005Germany2024-04-17
1006Australia2024-04-24
1007Germany2024-04-18
1008United Kingdom2024-04-12
1009Japan2024-04-18
1010Germany2024-04-11
1011United Kingdom2024-04-13
1012Japan2024-04-18
1013Italy2024-04-09
1014Argentina2024-04-13
1015Japan2024-04-24
1016United Kingdom2024-04-08
1017Spain2024-04-17
1018Russia2024-04-07
1019Canada2024-04-21
1020Australia2024-04-17
1021Germany2024-04-07
1022Argentina2024-04-06
1023Japan2024-04-07
1024United Kingdom2024-04-21
1025Australia2024-04-06
1026Japan2024-04-19
1027France2024-04-12
1028Germany2024-04-29
1029France2024-04-20
1030India2024-04-28
1031Argentina2024-04-21
1032Russia2024-04-27
1033Australia2024-04-11
1034Australia2024-04-11
1035Canada2024-04-29
1036Russia2024-04-15
1037India2024-04-11
1038India2024-04-15
1039Australia2024-04-28
1040Japan2024-04-04
1041France2024-04-28
1042Brazil2024-04-08
1043Argentina2024-04-08
1044France2024-04-18
1045Japan2024-04-15
1046Argentina2024-04-30
1047Canada2024-04-08
1048Russia2024-04-25
1049Russia2024-04-11

On-Demand Data

NameIdCountryDate
Munro G Rim1000India2024-04-03
Juan O Albares1001Australia2024-04-29
Aika W Rim1002Spain2024-04-26
Isabel M Briddick1003Germany2024-04-24
Munro W Bowley1004Italy2024-04-15
Kaitlin A Schemmer1005Italy2024-04-02
Salvatore V Waycott1006Argentina2024-04-05
Chavez S Dilliard1007Spain2024-04-28
Johnson O Darakjy1008Brazil2024-04-08
Aditya E Rim1009Germany2024-04-16
Faith A Kusko1010Spain2024-04-11
Deepesh L Sergi1011Argentina2024-04-13
Kadeem R Figeroa1012United Kingdom2024-04-14
Mayumi G Nestle1013France2024-04-08
Ivar C Waycott1014Russia2024-04-10
Claire B Iturbide1015Japan2024-04-28
James H Tollner1016Argentina2024-04-07
Wickens F Tollner1017Argentina2024-04-09
Octavia J Maclead1018United Kingdom2024-04-21
Salvatore E Gillian1019Brazil2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem G FollerUnited KingdomAmy Elsner RENEWAL
Emily L GauchoIndiaXuxue Feng NEGOTIATION
Izzy N MorascaCanadaStephen Shaw QUALIFIED
Ashley Y FlosiIndiaOnyama Limba UNQUALIFIED
Arvin J DarakjyCanadaIoni Bowcher NEW
Smith K MacleadUnited KingdomOnyama Limba UNQUALIFIED
Kadeem J BriddickGermanyBernardo Dominic QUALIFIED
Maisha Y BriddickFranceElwin Sharvill PROPOSAL
Francesco K NickaCanadaOnyama Limba RENEWAL
Leja G ShinkoCanadaIoni Bowcher PROPOSAL
Deepesh M DarakjyArgentinaAsiya Javayant QUALIFIED
Silvio N PoquetteRussiaIoni Bowcher RENEWAL
Murillo Y FerenczBrazilAsiya Javayant NEW
Octavia N BriddickCanadaXuxue Feng RENEWAL
Antonio O PaprockiIndiaIoni Bowcher UNQUALIFIED
Wickens B PaprockiItalyAsiya Javayant QUALIFIED
Jefferson U AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Jones P BologniaSpainStephen Shaw RENEWAL
Octavia I InouyeItalyIoni Bowcher RENEWAL
Rodrigues S VenereBrazilXuxue Feng PROPOSAL
Cody K ChuiBrazilIvan Magalhaes NEGOTIATION
Kaitlin A AmigonIndiaBernardo Dominic PROPOSAL
Octavia L GlickArgentinaIoni Bowcher NEGOTIATION
Aika T GarufiUnited KingdomXuxue Feng NEGOTIATION
Mayumi D WaycottBrazilAmy Elsner UNQUALIFIED
Misaki M BologniaSpainIvan Magalhaes RENEWAL
Octavia P SlusarskiArgentinaElwin Sharvill RENEWAL
Isabel U ButtArgentinaXuxue Feng PROPOSAL
Kadeem Z VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Sinclair G FigeroaSpainXuxue Feng QUALIFIED
David K MarrierJapanStephen Shaw UNQUALIFIED
James Z ButtAustraliaXuxue Feng NEW
Arvin Y GillianSpainAnna Fali UNQUALIFIED
Adams W RulapaughAustraliaXuxue Feng PROPOSAL
Morrow O SchemmerUnited KingdomAnna Fali QUALIFIED
Izzy M ButtAustraliaBernardo Dominic RENEWAL
David F GillianItalyIvan Magalhaes RENEWAL
Jefferson J VenereJapanStephen Shaw UNQUALIFIED
Faith G NestleRussiaIvan Magalhaes NEGOTIATION
Aruna R DilliardArgentinaIoni Bowcher PROPOSAL

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