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
Julie C StensethCanadaElwin Sharvill PROPOSAL
Claire K RimSpainIoni Bowcher UNQUALIFIED
Arvin N NickaJapanAnna Fali RENEWAL
Emily F DilliardBrazilXuxue Feng UNQUALIFIED
Aika W MacleadFranceOnyama Limba RENEWAL
Aditya P FlosiIndiaAsiya Javayant RENEWAL
Murillo G WaycottIndiaXuxue Feng QUALIFIED
Julie L SlusarskiIndiaIvan Magalhaes RENEWAL
Clifford Q DilliardSpainAmy Elsner PROPOSAL
Faith Q WhobreyBrazilBernardo Dominic QUALIFIED
Antonio H WhobreyArgentinaXuxue Feng NEGOTIATION
Greenwood N KolmetzAustraliaXuxue Feng NEGOTIATION
Munro A StockhamFranceOnyama Limba UNQUALIFIED
Kadeem C GlickSpainIoni Bowcher NEW
Kadeem L MarrierBrazilXuxue Feng NEW
Wickens N OstroskyArgentinaXuxue Feng UNQUALIFIED
Faith R StockhamArgentinaIoni Bowcher RENEWAL
Misaki T WieserItalyAmy Elsner UNQUALIFIED
Rodrigues R PaprockiUnited KingdomIoni Bowcher RENEWAL
Darci X KolmetzItalyAnna Fali PROPOSAL
Kaitlin T RulapaughUnited KingdomStephen Shaw NEGOTIATION
Kadeem B FollerRussiaStephen Shaw UNQUALIFIED
Smith W NickaGermanyIvan Magalhaes QUALIFIED
Misaki C DilliardJapanAsiya Javayant RENEWAL
Ashley U MaletFranceXuxue Feng NEGOTIATION
Morrow X AmigonJapanIoni Bowcher NEGOTIATION
Johnson T BologniaSpainBernardo Dominic QUALIFIED
Aditya N CaldareraCanadaBernardo Dominic RENEWAL
Tony R MorascaCanadaBernardo Dominic UNQUALIFIED
Mujtaba Z FerenczRussiaOnyama Limba NEW
Smith Y TollnerCanadaXuxue Feng RENEWAL
Ivar V ShinkoItalyOnyama Limba NEW
Munro H WhobreyUnited KingdomXuxue Feng QUALIFIED
Murillo C SchemmerUnited KingdomAmy Elsner NEGOTIATION
Silvio R ShinkoFranceOnyama Limba RENEWAL
Ricardo V GillianFranceIoni Bowcher PROPOSAL
Aika Z RimArgentinaElwin Sharvill UNQUALIFIED
Isabel I CaudyUnited KingdomAnna Fali NEGOTIATION
Mayumi S PoquetteFranceIoni Bowcher RENEWAL
Morrow E RoysterJapanOnyama Limba NEGOTIATION
Deepesh M KolmetzGermanyIoni Bowcher QUALIFIED
Tony F VocelkaSpainAsiya Javayant QUALIFIED
Clifford E WhobreyRussiaAnna Fali UNQUALIFIED
Leon A RoysterSpainBernardo Dominic NEW
Antonio S AlbaresSpainOnyama Limba QUALIFIED
Francesco K SlusarskiSpainIoni Bowcher NEGOTIATION
Darci S StockhamSpainElwin Sharvill UNQUALIFIED
Smith R MorascaFranceAmy Elsner NEGOTIATION
Murillo V ChuiUnited KingdomAmy Elsner UNQUALIFIED
Jeanfrancois F InouyeAustraliaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey H DarakjyRussiaStephen Shaw NEGOTIATION
Tony G NickaAustraliaOnyama Limba QUALIFIED
Cody Z GillianArgentinaAmy Elsner PROPOSAL
David W RutaBrazilAnna Fali UNQUALIFIED
Kaitlin T IturbideGermanyAnna Fali RENEWAL
Antonio P PoquetteAustraliaXuxue Feng UNQUALIFIED
Ricardo E CaldareraJapanAnna Fali RENEWAL
Isabel O MaletAustraliaElwin Sharvill UNQUALIFIED
Emily Z GauchoItalyAsiya Javayant RENEWAL
Leon C MarrierArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo O OstroskyItaly2024-04-20Dorl, James J Esq NEW86Xuxue Feng
1001Antonio A RutaSpain2024-04-09Truhlar And Truhlar Attys RENEWAL46Onyama Limba
1002Chavez K FollerBrazil2024-04-07Morlong Associates RENEWAL3Bernardo Dominic
1003Smith O CaudyCanada2024-05-02Chanay, Jeffrey A Esq PROPOSAL93Asiya Javayant
1004Maisha T WaycottBrazil2024-04-10Rousseaux, Michael Esq QUALIFIED59Asiya Javayant
1005Leja U DarakjyCanada2024-04-05Commercial Press UNQUALIFIED73Ivan Magalhaes
1006Jones N FollerCanada2024-04-24Chemel, James L Cpa NEW45Asiya Javayant
1007Salvatore F MaletBrazil2024-04-16Morlong Associates NEW44Anna Fali
1008Cody B FigeroaAustralia2024-04-25Rangoni Of Florence UNQUALIFIED35Stephen Shaw
1009Arvin U DarakjyIndia2024-04-18Buckley Miller Wright PROPOSAL35Bernardo Dominic
1010Morrow Y MorascaCanada2024-04-17Chanay, Jeffrey A Esq PROPOSAL71Stephen Shaw
1011Aruna V MaletArgentina2024-04-24Commercial Press NEGOTIATION78Onyama Limba
1012Emily S BowleyArgentina2024-05-02Commercial Press NEGOTIATION72Stephen Shaw
1013Chavez V InouyeUnited Kingdom2024-04-27Morlong Associates RENEWAL96Xuxue Feng
1014Aditya V DarakjySpain2024-04-19Feltz Printing Service UNQUALIFIED86Onyama Limba
1015Kadeem A OldroydIndia2024-05-01Printing Dimensions PROPOSAL78Elwin Sharvill
1016Tony H ChuiSpain2024-04-20King, Christopher A Esq NEGOTIATION28Amy Elsner
1017Mujtaba B AmigonFrance2024-04-26Truhlar And Truhlar Attys UNQUALIFIED79Xuxue Feng
1018Chavez F WaycottArgentina2024-05-01Truhlar And Truhlar Attys NEGOTIATION4Stephen Shaw
1019Misaki K SchemmerCanada2024-04-21Chanay, Jeffrey A Esq PROPOSAL11Xuxue Feng
1020Tony O RutaAustralia2024-04-29Benton, John B Jr UNQUALIFIED68Anna Fali
1021Misaki V OldroydArgentina2024-04-08Morlong Associates UNQUALIFIED96Xuxue Feng
1022Munro U StockhamBrazil2024-05-02Benton, John B Jr QUALIFIED83Asiya Javayant
1023Chavez R VenereGermany2024-04-20Morlong Associates RENEWAL45Stephen Shaw
1024Silvio X KuskoSpain2024-04-25Rousseaux, Michael Esq RENEWAL54Elwin Sharvill
1025Misaki P KuskoGermany2024-04-16Chapman, Ross E Esq UNQUALIFIED96Stephen Shaw
1026Morrow U DoeUnited Kingdom2024-04-12Chapman, Ross E Esq RENEWAL61Amy Elsner
1027Aika C BowleyArgentina2024-04-05Rousseaux, Michael Esq QUALIFIED25Ioni Bowcher
1028Antonio Q FigeroaFrance2024-04-04Morlong Associates NEW94Elwin Sharvill
1029Clifford E VenereIndia2024-04-15Rousseaux, Michael Esq NEW35Anna Fali
1030Ivar T WhobreyBrazil2024-04-09Feiner Bros PROPOSAL80Ioni Bowcher
1031Morrow R WhobreyUnited Kingdom2024-04-20Feiner Bros RENEWAL12Onyama Limba
1032Munro I BriddickArgentina2024-04-07Feltz Printing Service NEGOTIATION20Anna Fali
1033Ashley X CaudyGermany2024-04-29Truhlar And Truhlar Attys RENEWAL28Asiya Javayant
1034Arvin E SlusarskiRussia2024-04-23Buckley Miller Wright NEGOTIATION75Ivan Magalhaes
1035Juan S VocelkaJapan2024-04-09Truhlar And Truhlar Attys UNQUALIFIED8Xuxue Feng
1036James O WaycottRussia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED72Asiya Javayant
1037Morrow O NickaArgentina2024-04-28Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1038Isabel P VocelkaArgentina2024-04-30King, Christopher A Esq NEGOTIATION62Amy Elsner
1039James D InouyeAustralia2024-04-22Printing Dimensions QUALIFIED38Asiya Javayant
1040Nicolas A ChuiGermany2024-04-26Truhlar And Truhlar Attys NEGOTIATION94Xuxue Feng
1041Greenwood F BriddickUnited Kingdom2024-04-25Morlong Associates NEW26Stephen Shaw
1042Jennifer I FlosiFrance2024-04-26Feltz Printing Service NEGOTIATION13Ioni Bowcher
1043Morrow M WhobreySpain2024-04-30Benton, John B Jr NEGOTIATION20Ioni Bowcher
1044Jones L FerenczCanada2024-04-19Chemel, James L Cpa QUALIFIED37Ivan Magalhaes
1045James O MacleadUnited Kingdom2024-04-17Feiner Bros NEGOTIATION79Stephen Shaw
1046Adams J RoysterAustralia2024-04-23Feltz Printing Service UNQUALIFIED92Ioni Bowcher
1047Kadeem F FerenczUnited Kingdom2024-04-18Benton, John B Jr RENEWAL60Amy Elsner
1048Octavia S WaycottGermany2024-04-20King, Christopher A Esq NEGOTIATION46Amy Elsner
1049Ricardo N CaldareraBrazil2024-04-29Morlong Associates NEW94Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ricardo D PoquetteBrazilAsiya Javayant NEGOTIATION
Francesco O BowleyGermanyBernardo Dominic NEW
Maisha S PaprockiGermanyIoni Bowcher NEGOTIATION
Aditya B DarakjyJapanAsiya Javayant NEGOTIATION
Juan I KuskoJapanXuxue Feng UNQUALIFIED
Octavia W ShinkoArgentinaAmy Elsner UNQUALIFIED
Tony Z RimGermanyIvan Magalhaes UNQUALIFIED
Jefferson V AlbaresRussiaAmy Elsner RENEWAL
Alejandro E GauchoArgentinaXuxue Feng NEGOTIATION
Wickens C MarrierAustraliaIvan Magalhaes UNQUALIFIED
Julie T StockhamArgentinaXuxue Feng NEW
Morrow V CaudyUnited KingdomAnna Fali UNQUALIFIED
Costa S MaletRussiaElwin Sharvill RENEWAL
Morrow J MaletRussiaAnna Fali RENEWAL
Mujtaba G KolmetzSpainStephen Shaw NEW
Silvio U DarakjyBrazilXuxue Feng NEW
Smith B ChuiBrazilAmy Elsner NEW
Francesco Y StensethGermanyAnna Fali NEW
Julie K DilliardJapanElwin Sharvill UNQUALIFIED
Nicolas D BowleyGermanyStephen Shaw UNQUALIFIED
Antonio S MacleadArgentinaBernardo Dominic QUALIFIED
David Q GlickRussiaAnna Fali RENEWAL
Adams C DarakjyArgentinaIvan Magalhaes NEW
Morrow E IturbideCanadaBernardo Dominic RENEWAL
Mujtaba A MacleadIndiaAsiya Javayant UNQUALIFIED
Ricardo I WhobreyIndiaIoni Bowcher NEGOTIATION
Antonio D DilliardItalyStephen Shaw NEGOTIATION
Ivar X GlickRussiaIoni Bowcher NEW
Munro W RimBrazilStephen Shaw PROPOSAL
Claire W StockhamCanadaXuxue Feng NEGOTIATION
Costa X ButtAustraliaStephen Shaw RENEWAL
Claire A BriddickBrazilAmy Elsner PROPOSAL
Kadeem P VocelkaFranceOnyama Limba NEGOTIATION
Clifford F RoysterSpainStephen Shaw PROPOSAL
Juan Y PaprockiIndiaElwin Sharvill QUALIFIED
Greenwood K TollnerItalyIoni Bowcher QUALIFIED
Jeanfrancois N NickaIndiaXuxue Feng PROPOSAL
Maria X FollerCanadaAsiya Javayant RENEWAL
Jeanfrancois F FigeroaSpainAsiya Javayant QUALIFIED
Isabel F FlosiUnited KingdomOnyama Limba NEW
Murillo C OldroydSpainAnna Fali NEGOTIATION
Aditya U MorascaIndiaIoni Bowcher NEW
Jones T DilliardSpainAsiya Javayant RENEWAL
Kadeem U ChuiUnited KingdomAnna Fali RENEWAL
Kadeem E RoysterItalyStephen Shaw NEW
Darci S MarrierFranceOnyama Limba NEW
Jones X StockhamItalyIvan Magalhaes QUALIFIED
Aruna C VocelkaJapanIoni Bowcher RENEWAL
Costa F StockhamJapanAnna Fali NEGOTIATION
Emily E GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
James B Dilliard
Arvin Z Bowley
Leja P Stockham
Leja A Shinko
Juan C Garufi
Sinclair A Schemmer
Octavia Q Kusko
Alejandro A Poquette
Alejandro T Doe
Francesco Q Venere
James C Flosi
Kadeem W Albares
Emily I Kolmetz
Chavez U Rulapaugh
Salvatore K Waycott
Leja Y Chui
Nicolas L Rim
Silvio F Doe
Tony K Figeroa
Costa V Whobrey
Jefferson W Stenseth
Octavia N Darakjy
Juan E Vocelka
David A Chui
Kadeem O Bolognia
Nicolas W Gillian
Jennifer O Marrier
Mayumi K Paprocki
Kaitlin I Figeroa
Smith L Flosi
Misaki Z Dilliard
Munro O Stenseth
Tony U Nicka
Octavia F Oldroyd
Ricardo A Rulapaugh
Kadeem X Bowley
Smith L Gaucho
Izzy S Kusko
Arvin B Inouye
Smith N Darakjy
Cody O Nestle
Murillo C Nicka
Stacey X Kolmetz
Claire J Amigon
Ricardo I Oldroyd
Darci A Vocelka
Ashley F Doe
Maisha Z Amigon
Julie E Royster
Darci J Campain
IdCountryDate
1000Russia2024-05-03
1001Argentina2024-05-02
1002Japan2024-04-11
1003Spain2024-05-02
1004Japan2024-04-19
1005Germany2024-04-09
1006Russia2024-04-16
1007Australia2024-04-28
1008Italy2024-05-02
1009Argentina2024-05-03
1010Italy2024-04-09
1011Australia2024-04-08
1012Germany2024-04-29
1013Brazil2024-04-10
1014Japan2024-04-09
1015Italy2024-04-11
1016Australia2024-04-29
1017Japan2024-04-25
1018Russia2024-04-05
1019Brazil2024-04-14
1020Spain2024-04-26
1021Australia2024-04-30
1022Canada2024-05-02
1023Germany2024-04-09
1024Japan2024-04-15
1025Spain2024-04-30
1026Germany2024-04-21
1027Japan2024-04-24
1028Japan2024-04-29
1029United Kingdom2024-04-12
1030Germany2024-04-06
1031Japan2024-04-11
1032Italy2024-04-09
1033India2024-04-07
1034Japan2024-04-11
1035Australia2024-04-27
1036Brazil2024-04-09
1037Japan2024-04-07
1038India2024-04-04
1039United Kingdom2024-04-27
1040Italy2024-04-25
1041France2024-04-27
1042Spain2024-04-09
1043Japan2024-04-28
1044France2024-04-23
1045France2024-04-25
1046Italy2024-04-09
1047Canada2024-05-03
1048United Kingdom2024-04-12
1049Germany2024-04-22

On-Demand Data

NameIdCountryDate
Isabel V Nicka1000France2024-04-04
Alejandro D Whobrey1001Brazil2024-04-10
Faith J Maclead1002Japan2024-04-24
Francesco Y Whobrey1003Italy2024-04-14
Jefferson K Garufi1004Argentina2024-04-11
Kaitlin I Kolmetz1005Brazil2024-04-07
Leon C Wieser1006Argentina2024-04-15
Maria I Nicka1007Canada2024-04-23
Ivar B Butt1008Germany2024-04-18
Sinclair D Garufi1009Australia2024-04-17
Maisha H Kusko1010Spain2024-04-13
Ashley D Darakjy1011Russia2024-04-10
Greenwood K Oldroyd1012Russia2024-04-13
Kaitlin B Malet1013Canada2024-04-24
Julie T Figeroa1014Brazil2024-04-07
David U Stockham1015Australia2024-05-02
Misaki C Wieser1016Russia2024-04-08
Julie G Whobrey1017France2024-04-10
Kaitlin C Stenseth1018France2024-04-12
Aika V Amigon1019Argentina2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika W TollnerFranceOnyama Limba RENEWAL
Maisha B NickaBrazilAsiya Javayant NEGOTIATION
Sinclair Z IturbideItalyElwin Sharvill PROPOSAL
Emily H SlusarskiAustraliaXuxue Feng QUALIFIED
Leon B RutaArgentinaIoni Bowcher RENEWAL
Jennifer D FollerCanadaAnna Fali UNQUALIFIED
Jefferson M SergiGermanyAmy Elsner RENEWAL
Jones C CaldareraArgentinaIoni Bowcher NEW
Murillo V FigeroaRussiaElwin Sharvill NEGOTIATION
Nicolas F DarakjySpainXuxue Feng RENEWAL
Aika P DarakjyIndiaBernardo Dominic UNQUALIFIED
Julie V DarakjyGermanyIvan Magalhaes PROPOSAL
Darci P OstroskyUnited KingdomOnyama Limba NEW
Leja V BowleyArgentinaAmy Elsner NEW
David I MorascaAustraliaIvan Magalhaes QUALIFIED
James Q StensethRussiaOnyama Limba QUALIFIED
Adams B ChuiBrazilStephen Shaw PROPOSAL
Isabel G SlusarskiAustraliaElwin Sharvill NEW
Salvatore U RoysterCanadaAmy Elsner NEW
Aika V FlosiItalyIoni Bowcher NEW
Kadeem O FlosiSpainXuxue Feng RENEWAL
Leon V FigeroaBrazilStephen Shaw UNQUALIFIED
Emily F FollerIndiaIvan Magalhaes NEW
Silvio S NestleJapanAsiya Javayant QUALIFIED
Jones L RulapaughArgentinaOnyama Limba RENEWAL
Costa E MaletAustraliaAmy Elsner RENEWAL
Cody O CaldareraSpainIvan Magalhaes PROPOSAL
Francesco X GarufiAustraliaBernardo Dominic RENEWAL
Chavez X PaprockiSpainAsiya Javayant UNQUALIFIED
Aika N PerinAustraliaAsiya Javayant PROPOSAL
Octavia Y VocelkaUnited KingdomIoni Bowcher NEW
Sinclair X WhobreyGermanyStephen Shaw NEGOTIATION
Maria U VenereSpainAmy Elsner PROPOSAL
Faith R NestleJapanXuxue Feng QUALIFIED
Costa E PerinGermanyElwin Sharvill UNQUALIFIED
Kaitlin Y PoquetteRussiaStephen Shaw QUALIFIED
David D StockhamSpainAnna Fali PROPOSAL
Clifford D MaletBrazilStephen Shaw UNQUALIFIED
Isabel I RulapaughItalyIoni Bowcher PROPOSAL
Julie E NickaGermanyIoni Bowcher 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>