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
Cody H ChuiArgentinaOnyama Limba UNQUALIFIED
Antonio I OldroydCanadaBernardo Dominic RENEWAL
Alejandro E WhobreyIndiaBernardo Dominic PROPOSAL
Tony X PerinGermanyStephen Shaw NEGOTIATION
Kadeem B FerenczItalyAnna Fali QUALIFIED
Wickens Z RimRussiaIoni Bowcher PROPOSAL
Arvin M TollnerArgentinaAsiya Javayant QUALIFIED
Maisha M PerinCanadaXuxue Feng RENEWAL
Antonio X StockhamIndiaXuxue Feng QUALIFIED
Chavez I PoquetteArgentinaBernardo Dominic UNQUALIFIED
Clifford E FerenczFranceAmy Elsner NEGOTIATION
Morrow W PoquetteCanadaIoni Bowcher QUALIFIED
Rodrigues C WieserAustraliaIoni Bowcher NEGOTIATION
Clifford Y OldroydItalyOnyama Limba RENEWAL
Maisha U KolmetzCanadaAsiya Javayant NEGOTIATION
Clifford M RoysterGermanyElwin Sharvill QUALIFIED
Misaki U MorascaBrazilBernardo Dominic NEGOTIATION
Deepesh W WieserGermanyAsiya Javayant QUALIFIED
Emily B BowleyAustraliaBernardo Dominic NEW
Aditya A IturbideJapanIvan Magalhaes QUALIFIED
Claire D KolmetzFranceOnyama Limba QUALIFIED
Stacey V StockhamRussiaAmy Elsner QUALIFIED
Rodrigues W SchemmerIndiaIvan Magalhaes UNQUALIFIED
Kadeem R MacleadFranceXuxue Feng UNQUALIFIED
Leja E PerinSpainIoni Bowcher NEGOTIATION
Salvatore S VocelkaRussiaElwin Sharvill RENEWAL
Aika L GlickGermanyIoni Bowcher NEGOTIATION
Antonio N FollerGermanyAnna Fali UNQUALIFIED
Julie P PoquetteUnited KingdomIoni Bowcher NEW
Tony A RutaCanadaElwin Sharvill QUALIFIED
Kadeem K SaylorsBrazilXuxue Feng RENEWAL
Maisha J AmigonJapanAmy Elsner RENEWAL
Wickens P MacleadAustraliaElwin Sharvill UNQUALIFIED
Izzy J BowleyIndiaStephen Shaw NEGOTIATION
Silvio P PaprockiCanadaAmy Elsner RENEWAL
Smith P MaletItalyIvan Magalhaes NEW
Chavez I StensethBrazilStephen Shaw UNQUALIFIED
Morrow C AmigonCanadaAnna Fali NEGOTIATION
Jennifer H DilliardUnited KingdomElwin Sharvill PROPOSAL
Salvatore V SchemmerSpainElwin Sharvill RENEWAL
Silvio G GillianItalyElwin Sharvill RENEWAL
Claire K IturbideCanadaAmy Elsner NEGOTIATION
Jefferson J InouyeIndiaStephen Shaw PROPOSAL
Clifford V DarakjyCanadaAsiya Javayant NEW
Ashley A BriddickAustraliaStephen Shaw NEGOTIATION
Jeanfrancois L FerenczUnited KingdomAnna Fali QUALIFIED
Misaki M WieserIndiaXuxue Feng NEW
Maria E SchemmerItalyOnyama Limba QUALIFIED
Misaki A KuskoAustraliaOnyama Limba NEW
Aditya T SlusarskiFranceStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leja D PoquetteUnited KingdomAnna Fali PROPOSAL
Greenwood Z SergiCanadaOnyama Limba RENEWAL
Murillo T FerenczJapanAnna Fali NEW
Deepesh J InouyeCanadaAsiya Javayant PROPOSAL
Ivar K StensethItalyAmy Elsner PROPOSAL
Jefferson N AmigonIndiaOnyama Limba RENEWAL
Ivar M GlickAustraliaElwin Sharvill UNQUALIFIED
Juan M DoeGermanyIoni Bowcher PROPOSAL
Murillo A DarakjyArgentinaElwin Sharvill QUALIFIED
Murillo R MaletFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki K MaletSpain2024-03-31Chapman, Ross E Esq UNQUALIFIED63Anna Fali
1001Rodrigues M MaletSpain2024-04-26Feltz Printing Service UNQUALIFIED10Onyama Limba
1002Cody H FlosiGermany2024-04-11Chapman, Ross E Esq RENEWAL31Onyama Limba
1003Juan H DilliardFrance2024-04-09Benton, John B Jr PROPOSAL55Elwin Sharvill
1004Salvatore M MorascaItaly2024-04-18King, Christopher A Esq NEW87Ioni Bowcher
1005Silvio T BologniaSpain2024-04-16Truhlar And Truhlar Attys QUALIFIED25Ivan Magalhaes
1006Aika K CampainSpain2024-04-13King, Christopher A Esq NEW53Ivan Magalhaes
1007Wickens B GauchoBrazil2024-04-23Chemel, James L Cpa NEGOTIATION13Elwin Sharvill
1008Kaitlin L ButtUnited Kingdom2024-04-02King, Christopher A Esq NEGOTIATION52Elwin Sharvill
1009Mujtaba V SchemmerFrance2024-04-12Printing Dimensions UNQUALIFIED78Amy Elsner
1010Leon O GlickRussia2024-04-25Benton, John B Jr NEW63Stephen Shaw
1011Aditya L KolmetzUnited Kingdom2024-04-01King, Christopher A Esq UNQUALIFIED78Anna Fali
1012Greenwood O RulapaughArgentina2024-03-31Printing Dimensions PROPOSAL41Ivan Magalhaes
1013Julie Q StockhamJapan2024-04-08Chemel, James L Cpa PROPOSAL81Anna Fali
1014Maisha Y SergiRussia2024-04-19Rangoni Of Florence NEGOTIATION14Anna Fali
1015Faith T ButtUnited Kingdom2024-03-31Benton, John B Jr RENEWAL59Bernardo Dominic
1016David J NickaFrance2024-04-13Chanay, Jeffrey A Esq RENEWAL16Amy Elsner
1017Stacey O InouyeAustralia2024-03-30King, Christopher A Esq RENEWAL98Xuxue Feng
1018Nicolas Y SchemmerAustralia2024-04-09Dorl, James J Esq UNQUALIFIED25Asiya Javayant
1019Alejandro P FlosiBrazil2024-04-07Benton, John B Jr NEW15Amy Elsner
1020Murillo D RutaCanada2024-04-16Rangoni Of Florence NEW70Stephen Shaw
1021Arvin P WieserCanada2024-04-14Buckley Miller Wright RENEWAL34Asiya Javayant
1022Ashley Y CaldareraSpain2024-04-15Rangoni Of Florence RENEWAL26Ioni Bowcher
1023Costa S WaycottIndia2024-04-07Rousseaux, Michael Esq NEGOTIATION29Bernardo Dominic
1024Alejandro N MorascaUnited Kingdom2024-04-07Commercial Press PROPOSAL81Asiya Javayant
1025Stacey P BriddickSpain2024-04-20Chapman, Ross E Esq NEW26Xuxue Feng
1026Julie E FollerRussia2024-04-06Commercial Press QUALIFIED83Ivan Magalhaes
1027Cody J VocelkaUnited Kingdom2024-04-10Truhlar And Truhlar Attys NEGOTIATION44Onyama Limba
1028Rodrigues Y MaletGermany2024-04-12Rangoni Of Florence NEW70Ivan Magalhaes
1029Antonio T ShinkoUnited Kingdom2024-04-10Morlong Associates NEW93Xuxue Feng
1030Silvio B RoysterIndia2024-04-27Rousseaux, Michael Esq RENEWAL73Ioni Bowcher
1031Emily B ChuiItaly2024-04-10Rousseaux, Michael Esq NEGOTIATION49Elwin Sharvill
1032Isabel H KolmetzIndia2024-04-04Feiner Bros PROPOSAL94Ivan Magalhaes
1033Kaitlin D NickaSpain2024-04-26Truhlar And Truhlar Attys NEW71Onyama Limba
1034Misaki W NestleSpain2024-04-09Benton, John B Jr RENEWAL85Anna Fali
1035Jennifer A DarakjyUnited Kingdom2024-04-02King, Christopher A Esq UNQUALIFIED89Onyama Limba
1036Julie Y VocelkaUnited Kingdom2024-04-21Chapman, Ross E Esq PROPOSAL62Ioni Bowcher
1037Francesco U MaletBrazil2024-04-03Dorl, James J Esq NEW63Bernardo Dominic
1038Antonio B TollnerGermany2024-03-31Rangoni Of Florence PROPOSAL66Stephen Shaw
1039Octavia N FigeroaArgentina2024-04-09Chemel, James L Cpa UNQUALIFIED42Elwin Sharvill
1040Costa L MarrierItaly2024-04-03Rousseaux, Michael Esq NEW59Xuxue Feng
1041Costa E WaycottFrance2024-04-06Truhlar And Truhlar Attys QUALIFIED51Stephen Shaw
1042Johnson B DilliardAustralia2024-04-22Rousseaux, Michael Esq NEW44Asiya Javayant
1043Maria C BologniaArgentina2024-03-31Commercial Press PROPOSAL48Stephen Shaw
1044Smith J MaletAustralia2024-04-14King, Christopher A Esq UNQUALIFIED39Amy Elsner
1045Octavia S KolmetzArgentina2024-04-20Morlong Associates RENEWAL43Bernardo Dominic
1046Aika L FollerUnited Kingdom2024-04-25Buckley Miller Wright NEGOTIATION68Anna Fali
1047Aditya K NestleAustralia2024-04-16King, Christopher A Esq NEGOTIATION5Amy Elsner
1048James J MacleadSpain2024-04-20Morlong Associates UNQUALIFIED30Elwin Sharvill
1049Arvin X ShinkoArgentina2024-04-13Rousseaux, Michael Esq NEW3Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Octavia A MacleadSpainBernardo Dominic QUALIFIED
Chavez I RulapaughItalyElwin Sharvill NEW
Clifford G AlbaresItalyOnyama Limba QUALIFIED
Tony W ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Maria Q CampainJapanOnyama Limba QUALIFIED
Jefferson U KolmetzSpainAnna Fali RENEWAL
Ashley H DilliardUnited KingdomAnna Fali RENEWAL
Antonio X ButtAustraliaIvan Magalhaes UNQUALIFIED
Sinclair I CaudyBrazilBernardo Dominic PROPOSAL
Izzy L GauchoJapanIoni Bowcher NEW
Costa F PerinGermanyIoni Bowcher NEW
Munro V MacleadSpainXuxue Feng QUALIFIED
Ashley Z GauchoAustraliaOnyama Limba UNQUALIFIED
Tony J PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Octavia Z VenereFranceOnyama Limba NEGOTIATION
Arvin L IturbideItalyAnna Fali NEW
Darci Z MorascaUnited KingdomAmy Elsner QUALIFIED
David H FollerRussiaIvan Magalhaes RENEWAL
Sinclair Y DoeJapanAsiya Javayant NEGOTIATION
Maisha G NestleIndiaElwin Sharvill NEGOTIATION
Jones X CaudySpainIoni Bowcher NEGOTIATION
Darci O RimItalyAmy Elsner NEW
Jennifer U SaylorsJapanIvan Magalhaes NEW
Faith D BologniaIndiaBernardo Dominic UNQUALIFIED
Kaitlin N BriddickUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood I SchemmerUnited KingdomOnyama Limba NEW
Cody L OldroydArgentinaStephen Shaw QUALIFIED
Kaitlin V ButtCanadaAnna Fali RENEWAL
Smith X FollerCanadaAmy Elsner NEGOTIATION
Francesco Z BologniaArgentinaElwin Sharvill NEGOTIATION
Maria T WaycottCanadaStephen Shaw RENEWAL
Kadeem F FerenczAustraliaAnna Fali NEW
Francesco I PaprockiRussiaIoni Bowcher NEW
Faith N FerenczBrazilAnna Fali NEGOTIATION
Ashley P IturbideUnited KingdomBernardo Dominic QUALIFIED
Julie F OldroydFranceAsiya Javayant QUALIFIED
Aditya A GauchoSpainElwin Sharvill RENEWAL
Jones Y NestleSpainBernardo Dominic NEW
Maria J GarufiArgentinaElwin Sharvill PROPOSAL
Maisha D GauchoJapanXuxue Feng QUALIFIED
Claire K PoquetteArgentinaBernardo Dominic UNQUALIFIED
Juan S RutaFranceStephen Shaw RENEWAL
Cody V KuskoCanadaXuxue Feng NEW
Murillo U NickaArgentinaIvan Magalhaes NEGOTIATION
Johnson V WaycottArgentinaAsiya Javayant QUALIFIED
Izzy S SlusarskiBrazilAnna Fali QUALIFIED
Deepesh B BowleyArgentinaBernardo Dominic NEGOTIATION
Salvatore S WhobreyCanadaAnna Fali RENEWAL
Maisha C IturbideArgentinaAsiya Javayant UNQUALIFIED
Izzy V RimCanadaAnna Fali NEGOTIATION
Frozen Columns
Name
Aditya G Garufi
Francesco J Ostrosky
Johnson E Nestle
Ricardo Q Foller
Munro K Caldarera
Deepesh Y Gillian
Silvio I Morasca
Arvin V Rim
James E Vocelka
Faith I Nicka
James W Shinko
Aruna L Venere
Aika O Nestle
Izzy F Venere
Munro W Wieser
Julie D Stenseth
Ricardo X Garufi
Kadeem S Ferencz
Deepesh V Gillian
Morrow S Ruta
Silvio V Saylors
Jones R Wieser
Antonio A Poquette
Aruna P Garufi
Julie K Dilliard
Cody C Bowley
Aika Y Schemmer
Jeanfrancois O Ferencz
Octavia V Oldroyd
Alejandro H Sergi
Smith P Inouye
Jones B Caldarera
Costa Q Gillian
Jones Q Glick
Greenwood I Dilliard
Rodrigues P Garufi
Emily D Gillian
Emily R Garufi
Darci Q Tollner
Juan L Kusko
Jefferson U Caldarera
Morrow Z Kolmetz
Sinclair C Vocelka
Tony R Darakjy
Claire Z Gaucho
Deepesh A Stenseth
Juan P Glick
Sinclair Z Briddick
Francesco C Gaucho
Arvin U Gillian
IdCountryDate
1000India2024-04-28
1001Russia2024-04-26
1002Argentina2024-04-24
1003Japan2024-04-12
1004United Kingdom2024-04-04
1005India2024-04-22
1006India2024-04-27
1007Italy2024-04-16
1008Canada2024-04-04
1009Argentina2024-04-06
1010Australia2024-04-04
1011Japan2024-04-13
1012Australia2024-04-11
1013Brazil2024-04-19
1014Argentina2024-04-07
1015Argentina2024-04-12
1016Brazil2024-04-10
1017France2024-04-08
1018Germany2024-04-19
1019Argentina2024-04-14
1020Spain2024-04-22
1021France2024-04-28
1022India2024-04-21
1023United Kingdom2024-04-24
1024India2024-04-08
1025Russia2024-04-22
1026United Kingdom2024-04-20
1027Russia2024-04-20
1028India2024-04-14
1029Argentina2024-04-08
1030India2024-04-20
1031Spain2024-04-03
1032India2024-04-09
1033Argentina2024-03-30
1034Russia2024-04-02
1035Australia2024-04-16
1036India2024-04-01
1037United Kingdom2024-04-25
1038United Kingdom2024-03-30
1039Germany2024-04-15
1040India2024-04-02
1041United Kingdom2024-04-16
1042India2024-04-21
1043Argentina2024-04-13
1044Argentina2024-04-18
1045Spain2024-04-03
1046United Kingdom2024-03-30
1047Italy2024-04-23
1048Spain2024-04-21
1049Russia2024-04-17

On-Demand Data

NameIdCountryDate
Aditya Q Gaucho1000Spain2024-04-21
Arvin R Bolognia1001Argentina2024-04-11
James S Figeroa1002France2024-04-01
Deepesh F Nestle1003United Kingdom2024-04-09
Misaki D Glick1004Germany2024-04-14
Rodrigues O Whobrey1005Japan2024-04-27
Murillo R Bolognia1006Brazil2024-04-08
Maisha T Ferencz1007Canada2024-04-19
Leon E Waycott1008Argentina2024-04-27
Emily Q Caudy1009Japan2024-04-11
Costa W Perin1010Australia2024-04-20
Isabel G Malet1011India2024-04-26
Isabel T Schemmer1012Germany2024-04-26
Morrow V Butt1013Argentina2024-04-16
Aika Y Malet1014Spain2024-04-23
Smith O Sergi1015Brazil2024-04-12
Emily W Malet1016Italy2024-04-06
Cody S Malet1017Argentina2024-04-27
Izzy X Garufi1018Canada2024-04-17
Mayumi Y Foller1019Russia2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika O DarakjyUnited KingdomOnyama Limba NEGOTIATION
James A InouyeGermanyAsiya Javayant NEW
Rodrigues U DoeGermanyStephen Shaw RENEWAL
Jones G OldroydFranceAsiya Javayant NEGOTIATION
Adams K FerenczIndiaAmy Elsner RENEWAL
Alejandro Z WhobreyUnited KingdomAnna Fali UNQUALIFIED
Maisha R OldroydJapanAmy Elsner QUALIFIED
Darci C FollerRussiaAmy Elsner PROPOSAL
Octavia X WhobreyGermanyAmy Elsner NEGOTIATION
Aruna Y OstroskyRussiaElwin Sharvill NEW
James D PerinUnited KingdomAsiya Javayant RENEWAL
Ashley G MorascaRussiaStephen Shaw UNQUALIFIED
Ivar L CaudyArgentinaAmy Elsner QUALIFIED
Jeanfrancois B RulapaughIndiaIoni Bowcher UNQUALIFIED
Izzy J VenereArgentinaStephen Shaw UNQUALIFIED
Jefferson Y MarrierCanadaXuxue Feng NEW
Kadeem D SaylorsUnited KingdomIvan Magalhaes NEW
Salvatore T WhobreyCanadaAnna Fali QUALIFIED
Mayumi E PaprockiIndiaBernardo Dominic RENEWAL
Jennifer W GlickArgentinaIvan Magalhaes UNQUALIFIED
Leon Y OldroydAustraliaElwin Sharvill RENEWAL
Munro H FlosiFranceBernardo Dominic UNQUALIFIED
Jefferson W SlusarskiSpainXuxue Feng PROPOSAL
Antonio T BriddickUnited KingdomOnyama Limba NEW
Rodrigues A BologniaRussiaBernardo Dominic NEW
Maria D VenereGermanyBernardo Dominic NEW
James H AlbaresJapanIvan Magalhaes RENEWAL
Wickens B MaletRussiaIoni Bowcher NEGOTIATION
Maria U MorascaBrazilXuxue Feng NEW
Johnson B SchemmerAustraliaAmy Elsner QUALIFIED
Francesco E MarrierBrazilIoni Bowcher QUALIFIED
Ricardo F SchemmerRussiaOnyama Limba NEW
Izzy R PoquetteFranceElwin Sharvill QUALIFIED
Aika V BriddickRussiaOnyama Limba NEW
Sinclair R OstroskyFranceAmy Elsner NEGOTIATION
James R ButtAustraliaIoni Bowcher NEGOTIATION
Adams D DarakjyFranceIvan Magalhaes RENEWAL
Kadeem T RulapaughBrazilBernardo Dominic PROPOSAL
Isabel J NickaArgentinaIvan Magalhaes NEGOTIATION
Leja W StockhamFranceStephen Shaw 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>