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
Adams U MacleadArgentinaBernardo Dominic NEW
Jennifer N ChuiGermanyIvan Magalhaes NEW
David O SlusarskiAustraliaOnyama Limba PROPOSAL
Aruna X OstroskyRussiaAnna Fali NEGOTIATION
Ivar P GarufiGermanyXuxue Feng QUALIFIED
Alejandro T MaletFranceAnna Fali RENEWAL
Stacey Q KuskoRussiaElwin Sharvill QUALIFIED
Aruna X VocelkaArgentinaAmy Elsner NEW
Isabel C SaylorsAustraliaIoni Bowcher RENEWAL
Jefferson A CaudyAustraliaBernardo Dominic UNQUALIFIED
Misaki E FigeroaArgentinaAmy Elsner RENEWAL
Claire Y BologniaUnited KingdomIvan Magalhaes RENEWAL
James H OstroskyIndiaAnna Fali NEGOTIATION
Smith D ChuiBrazilElwin Sharvill NEGOTIATION
Julie A BologniaJapanStephen Shaw UNQUALIFIED
Jefferson N VocelkaJapanElwin Sharvill PROPOSAL
Wickens F BriddickArgentinaAsiya Javayant NEGOTIATION
Ivar A NestleFranceAnna Fali UNQUALIFIED
Ivar G WhobreyArgentinaAmy Elsner NEW
Ricardo T SergiItalyAnna Fali NEGOTIATION
David P MacleadIndiaOnyama Limba NEGOTIATION
James P NestleItalyXuxue Feng UNQUALIFIED
Ricardo V DoeAustraliaIvan Magalhaes QUALIFIED
Clifford H PoquetteRussiaIvan Magalhaes UNQUALIFIED
Darci P DarakjyArgentinaElwin Sharvill NEW
Maria H AmigonJapanIoni Bowcher PROPOSAL
Adams U MaletIndiaXuxue Feng RENEWAL
Ashley H OldroydSpainAsiya Javayant UNQUALIFIED
Munro M KuskoBrazilIoni Bowcher QUALIFIED
Sinclair B FlosiJapanBernardo Dominic PROPOSAL
Smith V DilliardRussiaStephen Shaw UNQUALIFIED
Nicolas A NestleIndiaAsiya Javayant RENEWAL
Ricardo A StockhamFranceAsiya Javayant RENEWAL
Smith C StockhamGermanyIoni Bowcher RENEWAL
Ricardo N ShinkoAustraliaStephen Shaw RENEWAL
Adams P AmigonGermanyAmy Elsner PROPOSAL
Mujtaba O OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Wickens L GillianJapanElwin Sharvill NEGOTIATION
Jennifer Z MacleadRussiaIvan Magalhaes PROPOSAL
Tony S DoeJapanStephen Shaw RENEWAL
Aditya O MaletUnited KingdomElwin Sharvill NEW
Darci F RulapaughAustraliaIoni Bowcher PROPOSAL
Cody Z AlbaresUnited KingdomAnna Fali PROPOSAL
Greenwood P DarakjyFranceIvan Magalhaes UNQUALIFIED
Mayumi Y VocelkaItalyBernardo Dominic RENEWAL
Mujtaba J FigeroaIndiaAmy Elsner NEW
Francesco F ButtFranceBernardo Dominic NEW
Maria B MorascaRussiaOnyama Limba QUALIFIED
Silvio V MaletGermanyAmy Elsner NEW
Emily P FlosiSpainXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi D RimItalyXuxue Feng NEW
Aditya L FlosiJapanElwin Sharvill QUALIFIED
Deepesh B MaletArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois J AlbaresJapanOnyama Limba UNQUALIFIED
Rodrigues I MaletCanadaIvan Magalhaes NEGOTIATION
Murillo G ChuiIndiaIoni Bowcher UNQUALIFIED
Isabel J RimGermanyIoni Bowcher NEW
Juan J StensethItalyElwin Sharvill NEGOTIATION
Johnson L ChuiCanadaOnyama Limba NEGOTIATION
Leja K VenereBrazilXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia G ShinkoFrance2024-04-08Morlong Associates QUALIFIED22Elwin Sharvill
1001Emily O VenereIndia2024-04-06Commercial Press NEGOTIATION57Stephen Shaw
1002Darci U MacleadFrance2024-04-02Truhlar And Truhlar Attys NEGOTIATION48Stephen Shaw
1003Stacey I KolmetzCanada2024-04-14Truhlar And Truhlar Attys QUALIFIED42Xuxue Feng
1004Aika N WaycottFrance2024-04-17Feltz Printing Service NEGOTIATION18Stephen Shaw
1005Francesco R BriddickCanada2024-04-21Rousseaux, Michael Esq RENEWAL1Asiya Javayant
1006Maisha R RoysterGermany2024-04-20Printing Dimensions PROPOSAL3Asiya Javayant
1007Clifford E ButtSpain2024-04-06Rousseaux, Michael Esq QUALIFIED3Xuxue Feng
1008Sinclair G MarrierItaly2024-04-19Benton, John B Jr NEW72Elwin Sharvill
1009Murillo G MaletCanada2024-04-15Benton, John B Jr NEGOTIATION19Amy Elsner
1010Juan L CampainRussia2024-04-03Truhlar And Truhlar Attys NEGOTIATION64Ioni Bowcher
1011Julie K TollnerAustralia2024-04-17Rangoni Of Florence NEW79Ivan Magalhaes
1012Aruna A InouyeJapan2024-04-22Buckley Miller Wright NEGOTIATION44Stephen Shaw
1013Tony C SaylorsGermany2024-04-03Buckley Miller Wright NEGOTIATION76Bernardo Dominic
1014Nicolas M SchemmerArgentina2024-04-27Feltz Printing Service NEGOTIATION2Bernardo Dominic
1015Misaki D GauchoUnited Kingdom2024-04-08Truhlar And Truhlar Attys PROPOSAL37Asiya Javayant
1016Octavia E SlusarskiUnited Kingdom2024-04-09Rousseaux, Michael Esq RENEWAL59Bernardo Dominic
1017Kadeem V OstroskyRussia2024-04-02Chemel, James L Cpa UNQUALIFIED30Xuxue Feng
1018Silvio Q SergiGermany2024-04-25Feltz Printing Service NEGOTIATION67Asiya Javayant
1019Izzy G BologniaBrazil2024-04-02Chapman, Ross E Esq NEW99Ioni Bowcher
1020Rodrigues K InouyeBrazil2024-03-31Truhlar And Truhlar Attys UNQUALIFIED13Xuxue Feng
1021Chavez A NickaCanada2024-04-10Truhlar And Truhlar Attys NEW49Amy Elsner
1022Kadeem B SaylorsJapan2024-04-26Chemel, James L Cpa PROPOSAL86Bernardo Dominic
1023Misaki K CaudyRussia2024-04-08Benton, John B Jr PROPOSAL67Xuxue Feng
1024Claire H MaletGermany2024-04-04Morlong Associates RENEWAL38Anna Fali
1025Sinclair S OldroydArgentina2024-04-13Printing Dimensions UNQUALIFIED14Xuxue Feng
1026Jennifer L ButtCanada2024-04-16Dorl, James J Esq RENEWAL27Onyama Limba
1027Cody D PerinFrance2024-04-28Chanay, Jeffrey A Esq NEGOTIATION43Bernardo Dominic
1028Deepesh Q BriddickSpain2024-04-02Rangoni Of Florence RENEWAL77Ivan Magalhaes
1029Ricardo O GlickSpain2024-04-13Morlong Associates QUALIFIED21Ivan Magalhaes
1030Jeanfrancois M CaldareraArgentina2024-04-15Buckley Miller Wright RENEWAL80Bernardo Dominic
1031Francesco G RulapaughFrance2024-04-19Feltz Printing Service QUALIFIED33Stephen Shaw
1032Octavia P WaycottUnited Kingdom2024-04-25Rangoni Of Florence PROPOSAL24Ivan Magalhaes
1033Rodrigues U NickaFrance2024-04-15Commercial Press UNQUALIFIED36Anna Fali
1034Jeanfrancois X SergiArgentina2024-04-14Feiner Bros PROPOSAL8Anna Fali
1035Leon O SchemmerUnited Kingdom2024-04-28Feltz Printing Service NEW44Xuxue Feng
1036Costa B AlbaresSpain2024-04-10Commercial Press NEGOTIATION64Xuxue Feng
1037Morrow L RoysterArgentina2024-04-20Printing Dimensions NEW96Asiya Javayant
1038Deepesh B WhobreyAustralia2024-04-17Buckley Miller Wright NEGOTIATION18Stephen Shaw
1039Aika N RutaGermany2024-04-27Buckley Miller Wright NEGOTIATION77Elwin Sharvill
1040Aika D MaletAustralia2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED96Stephen Shaw
1041Wickens G FlosiFrance2024-04-14Benton, John B Jr UNQUALIFIED61Onyama Limba
1042Nicolas J BowleyJapan2024-04-06Printing Dimensions RENEWAL35Anna Fali
1043Maria H SaylorsJapan2024-04-17Truhlar And Truhlar Attys QUALIFIED49Amy Elsner
1044Darci E CaudySpain2024-04-02Benton, John B Jr QUALIFIED51Ioni Bowcher
1045Juan N MaletJapan2024-04-15Feltz Printing Service NEW72Asiya Javayant
1046Emily E OldroydIndia2024-04-20Rangoni Of Florence NEW48Onyama Limba
1047David U GlickAustralia2024-04-24King, Christopher A Esq NEW83Stephen Shaw
1048Arvin F KolmetzBrazil2024-04-07Benton, John B Jr RENEWAL79Anna Fali
1049Leon G KolmetzArgentina2024-03-30Feltz Printing Service PROPOSAL80Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Isabel T BologniaIndiaIoni Bowcher UNQUALIFIED
Emily N RoysterBrazilAmy Elsner RENEWAL
Mujtaba R SaylorsGermanyBernardo Dominic NEW
Mujtaba A GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez G VenereCanadaStephen Shaw QUALIFIED
Johnson E SergiSpainIoni Bowcher QUALIFIED
Jennifer Z ButtGermanyIvan Magalhaes QUALIFIED
Morrow F AmigonCanadaAnna Fali QUALIFIED
Cody G SaylorsFranceIoni Bowcher RENEWAL
Antonio C PaprockiFranceAmy Elsner QUALIFIED
David A TollnerRussiaOnyama Limba QUALIFIED
Jeanfrancois W RulapaughArgentinaIoni Bowcher NEGOTIATION
Ashley P DilliardCanadaIvan Magalhaes RENEWAL
Costa R MaletFranceBernardo Dominic PROPOSAL
Mayumi O ShinkoUnited KingdomStephen Shaw QUALIFIED
Munro E FollerSpainStephen Shaw RENEWAL
Leon V TollnerGermanyBernardo Dominic QUALIFIED
Jones S KuskoFranceXuxue Feng QUALIFIED
James I IturbideItalyStephen Shaw PROPOSAL
Emily I SlusarskiBrazilStephen Shaw RENEWAL
Sinclair L ShinkoGermanyAmy Elsner PROPOSAL
Ashley E VenereRussiaOnyama Limba NEW
David I RimFranceBernardo Dominic NEW
Johnson K OstroskySpainAnna Fali QUALIFIED
Aruna X BriddickRussiaAmy Elsner NEGOTIATION
James B AlbaresSpainAsiya Javayant UNQUALIFIED
Julie X GillianCanadaAmy Elsner NEGOTIATION
Emily Y GauchoCanadaElwin Sharvill QUALIFIED
Sinclair M IturbideAustraliaOnyama Limba PROPOSAL
Aika Z OldroydRussiaAnna Fali RENEWAL
Izzy W CaudyItalyAnna Fali RENEWAL
Tony R RulapaughGermanyBernardo Dominic UNQUALIFIED
Aruna F FerenczArgentinaOnyama Limba PROPOSAL
Aika X DarakjyJapanIvan Magalhaes QUALIFIED
Ricardo G MarrierArgentinaStephen Shaw UNQUALIFIED
Munro M SchemmerAustraliaIoni Bowcher NEW
Julie S ButtJapanElwin Sharvill UNQUALIFIED
Greenwood M ButtIndiaIvan Magalhaes RENEWAL
Isabel O RoysterJapanAmy Elsner RENEWAL
Aika R KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Aditya X ChuiItalyOnyama Limba NEW
Rodrigues Y KolmetzGermanyAnna Fali NEW
Leon S MorascaGermanyStephen Shaw UNQUALIFIED
Arvin N ShinkoRussiaOnyama Limba UNQUALIFIED
Antonio U PaprockiCanadaBernardo Dominic NEW
Jones U BriddickIndiaAsiya Javayant RENEWAL
Jones R ShinkoRussiaElwin Sharvill UNQUALIFIED
Deepesh Z BowleyBrazilAmy Elsner NEW
Izzy Q MorascaIndiaOnyama Limba NEGOTIATION
Alejandro F RulapaughFranceOnyama Limba UNQUALIFIED
Frozen Columns
Name
Kaitlin F Caldarera
Izzy U Caldarera
Emily B Saylors
Octavia O Poquette
Salvatore F Albares
Silvio W Nestle
Francesco X Shinko
Misaki H Butt
Nicolas G Sergi
Emily U Figeroa
Jones G Malet
Greenwood R Ruta
Maisha Y Waycott
Maria Q Amigon
Wickens M Malet
Claire B Perin
Clifford H Foller
Rodrigues M Flosi
Maisha I Malet
Smith I Iturbide
Ivar T Ferencz
Leja U Dilliard
Murillo F Caudy
Smith K Rulapaugh
Misaki B Morasca
Misaki Y Schemmer
Leja Y Darakjy
Kaitlin V Wieser
Munro G Bolognia
Leja O Rim
Nicolas O Caldarera
Stacey Y Inouye
Juan H Garufi
Julie V Marrier
Costa F Stockham
Kaitlin G Foller
Francesco W Inouye
Francesco H Rim
Chavez P Maclead
Faith N Rim
Francesco D Garufi
Isabel X Perin
Francesco Y Darakjy
Jones F Malet
Juan O Waycott
Murillo M Bowley
Smith X Rulapaugh
Murillo W Royster
Ricardo A Tollner
Antonio K Whobrey
IdCountryDate
1000France2024-04-15
1001Spain2024-04-20
1002Australia2024-04-23
1003Brazil2024-04-18
1004Argentina2024-04-03
1005United Kingdom2024-04-16
1006Germany2024-04-17
1007Japan2024-04-14
1008India2024-04-16
1009Italy2024-04-05
1010Spain2024-04-14
1011Japan2024-04-02
1012France2024-04-11
1013Germany2024-03-31
1014India2024-04-24
1015Brazil2024-04-23
1016Argentina2024-04-04
1017France2024-03-30
1018Brazil2024-04-02
1019Germany2024-04-05
1020Canada2024-04-08
1021United Kingdom2024-04-21
1022Brazil2024-04-20
1023Brazil2024-04-16
1024France2024-04-19
1025Australia2024-04-24
1026Spain2024-04-01
1027Germany2024-04-09
1028Russia2024-04-14
1029Spain2024-04-09
1030United Kingdom2024-04-21
1031India2024-04-27
1032France2024-04-15
1033Germany2024-04-16
1034France2024-04-09
1035France2024-04-10
1036United Kingdom2024-04-19
1037Argentina2024-04-18
1038Australia2024-04-25
1039Russia2024-04-26
1040Spain2024-04-27
1041France2024-04-03
1042Germany2024-04-07
1043Argentina2024-04-24
1044Italy2024-04-10
1045India2024-03-30
1046Argentina2024-04-06
1047Russia2024-04-07
1048Japan2024-04-11
1049Argentina2024-04-22

On-Demand Data

NameIdCountryDate
Cody O Saylors1000Spain2024-04-20
Arvin T Campain1001Brazil2024-04-28
Munro F Doe1002Australia2024-04-24
Aditya B Schemmer1003Japan2024-04-03
Munro P Morasca1004France2024-04-19
Maisha I Briddick1005Germany2024-04-17
Francesco Y Poquette1006Italy2024-04-07
Adams K Bowley1007Italy2024-04-02
Julie R Glick1008Spain2024-04-28
Alejandro N Darakjy1009United Kingdom2024-04-16
Wickens J Shinko1010Australia2024-04-18
Costa T Flosi1011Canada2024-04-09
David U Flosi1012India2024-04-25
Ricardo J Tollner1013Germany2024-04-14
Aruna W Glick1014Brazil2024-04-17
Costa A Kusko1015United Kingdom2024-04-06
Rodrigues P Caudy1016Germany2024-04-22
Nicolas A Figeroa1017Japan2024-04-02
Izzy B Vocelka1018India2024-04-07
Francesco O Shinko1019Spain2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria C NickaJapanElwin Sharvill PROPOSAL
Maisha N CampainIndiaAsiya Javayant NEW
Chavez G ButtItalyIvan Magalhaes QUALIFIED
Jeanfrancois Y WhobreyCanadaAnna Fali NEW
Maisha D ShinkoSpainXuxue Feng PROPOSAL
Rodrigues Z IturbideFranceAnna Fali NEGOTIATION
Izzy U PoquetteRussiaAsiya Javayant UNQUALIFIED
Kaitlin K MorascaRussiaBernardo Dominic UNQUALIFIED
Ricardo T DoeIndiaStephen Shaw UNQUALIFIED
Alejandro D CaldareraItalyElwin Sharvill NEGOTIATION
Clifford N WhobreyRussiaElwin Sharvill QUALIFIED
Antonio U GlickCanadaBernardo Dominic UNQUALIFIED
Chavez R KuskoGermanyXuxue Feng UNQUALIFIED
Isabel U FlosiJapanIoni Bowcher NEGOTIATION
Deepesh M StockhamAustraliaAmy Elsner NEGOTIATION
Izzy I StockhamJapanOnyama Limba QUALIFIED
Wickens C FigeroaArgentinaOnyama Limba RENEWAL
James H MarrierJapanXuxue Feng QUALIFIED
Isabel S TollnerIndiaOnyama Limba QUALIFIED
Darci W VenereItalyStephen Shaw PROPOSAL
Smith G VenereRussiaAsiya Javayant PROPOSAL
Ashley M CaudyItalyAnna Fali QUALIFIED
Kadeem N ButtCanadaBernardo Dominic QUALIFIED
Tony Y CaldareraBrazilStephen Shaw PROPOSAL
Salvatore U VenereRussiaBernardo Dominic QUALIFIED
Leja O FollerJapanBernardo Dominic QUALIFIED
Kadeem D BowleySpainBernardo Dominic RENEWAL
Claire C CampainRussiaXuxue Feng NEW
Mujtaba E WhobreyFranceAnna Fali PROPOSAL
Alejandro R MacleadCanadaOnyama Limba NEW
Murillo W GlickUnited KingdomElwin Sharvill UNQUALIFIED
Adams L MaletItalyIvan Magalhaes UNQUALIFIED
Maisha J FollerJapanAnna Fali PROPOSAL
Octavia B KolmetzGermanyOnyama Limba RENEWAL
Isabel G FigeroaAustraliaElwin Sharvill NEW
Alejandro G VenereGermanyStephen Shaw PROPOSAL
Salvatore Z TollnerUnited KingdomElwin Sharvill QUALIFIED
Francesco N DarakjyJapanBernardo Dominic NEW
Stacey Y SaylorsSpainStephen Shaw NEW
Darci B StensethIndiaStephen 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>