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
Salvatore I MorascaGermanyAsiya Javayant UNQUALIFIED
Munro G VenereFranceIvan Magalhaes RENEWAL
Octavia O KuskoArgentinaAsiya Javayant QUALIFIED
Wickens Q WaycottGermanyIvan Magalhaes NEW
Deepesh T GauchoArgentinaAsiya Javayant NEW
Adams N ButtIndiaAmy Elsner UNQUALIFIED
Ashley V ButtCanadaIoni Bowcher PROPOSAL
Misaki W BologniaAustraliaAsiya Javayant UNQUALIFIED
Costa E StockhamItalyAmy Elsner RENEWAL
Mujtaba U WieserBrazilOnyama Limba QUALIFIED
Nicolas M MarrierJapanAnna Fali UNQUALIFIED
Darci J BowleyRussiaAmy Elsner RENEWAL
Kaitlin D StockhamGermanyElwin Sharvill RENEWAL
Nicolas O MaletRussiaIvan Magalhaes UNQUALIFIED
Salvatore T FollerIndiaElwin Sharvill NEW
Smith O WieserRussiaBernardo Dominic QUALIFIED
Munro M MaletUnited KingdomElwin Sharvill RENEWAL
Silvio M RutaArgentinaStephen Shaw QUALIFIED
Clifford R BriddickAustraliaAmy Elsner PROPOSAL
Leon N MarrierSpainXuxue Feng PROPOSAL
Jennifer I BriddickJapanIvan Magalhaes PROPOSAL
Octavia M BriddickRussiaElwin Sharvill RENEWAL
Stacey X DarakjyCanadaAnna Fali NEGOTIATION
Tony P RoysterJapanAmy Elsner QUALIFIED
Jeanfrancois D KuskoItalyAmy Elsner QUALIFIED
Aika O ChuiArgentinaOnyama Limba QUALIFIED
Leja F OstroskyGermanyXuxue Feng RENEWAL
Arvin B FollerCanadaElwin Sharvill NEW
Stacey N SchemmerUnited KingdomAmy Elsner NEW
Nicolas A FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Cody O MaletArgentinaAsiya Javayant RENEWAL
Juan G WhobreyJapanStephen Shaw QUALIFIED
Aditya D WaycottIndiaAnna Fali NEW
Kadeem T AmigonItalyAnna Fali QUALIFIED
Aika B VocelkaItalyIoni Bowcher UNQUALIFIED
Murillo H TollnerFranceOnyama Limba NEW
Francesco D CaudyItalyAsiya Javayant RENEWAL
Juan S SaylorsRussiaAmy Elsner QUALIFIED
Izzy W FollerGermanyXuxue Feng RENEWAL
Nicolas Z PerinBrazilOnyama Limba NEGOTIATION
Isabel R SchemmerFranceAsiya Javayant NEW
Ashley Q FollerRussiaBernardo Dominic RENEWAL
Maisha V RoysterArgentinaBernardo Dominic PROPOSAL
Leja E InouyeArgentinaAsiya Javayant PROPOSAL
Ivar Z FlosiSpainAsiya Javayant PROPOSAL
Emily I FlosiAustraliaXuxue Feng NEGOTIATION
Murillo V PaprockiSpainOnyama Limba UNQUALIFIED
Tony A CaldareraGermanyAmy Elsner PROPOSAL
Deepesh O GarufiArgentinaAsiya Javayant NEW
Salvatore Q ShinkoArgentinaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood L GarufiGermanyAnna Fali UNQUALIFIED
Faith O StockhamBrazilAmy Elsner UNQUALIFIED
Darci X SlusarskiSpainAmy Elsner NEW
Jones X StensethRussiaXuxue Feng NEW
Rodrigues L GauchoBrazilIvan Magalhaes QUALIFIED
Silvio G StensethUnited KingdomBernardo Dominic RENEWAL
Ricardo N CampainJapanIvan Magalhaes QUALIFIED
Salvatore J BowleySpainAmy Elsner NEGOTIATION
Jeanfrancois J SergiRussiaXuxue Feng PROPOSAL
Izzy O IturbideCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh K StensethIndia2024-03-12Chanay, Jeffrey A Esq RENEWAL65Bernardo Dominic
1001Kadeem T MarrierGermany2024-03-13Feltz Printing Service NEGOTIATION86Ioni Bowcher
1002Misaki V CaudyCanada2024-02-29Morlong Associates UNQUALIFIED92Anna Fali
1003Julie D CampainGermany2024-03-02Printing Dimensions QUALIFIED72Onyama Limba
1004Aruna B ChuiAustralia2024-03-04Buckley Miller Wright NEGOTIATION72Ivan Magalhaes
1005Nicolas O MaletUnited Kingdom2024-03-18Feiner Bros RENEWAL25Onyama Limba
1006Izzy O DoeCanada2024-03-14Benton, John B Jr RENEWAL67Anna Fali
1007Chavez U MarrierBrazil2024-03-19Benton, John B Jr NEGOTIATION45Xuxue Feng
1008Leja Y AlbaresSpain2024-03-14Buckley Miller Wright RENEWAL25Stephen Shaw
1009Rodrigues Z CaldareraBrazil2024-03-12Rousseaux, Michael Esq PROPOSAL96Xuxue Feng
1010Jefferson Z SaylorsBrazil2024-03-16Rangoni Of Florence NEGOTIATION21Stephen Shaw
1011Jones O SergiSpain2024-03-25Benton, John B Jr UNQUALIFIED76Xuxue Feng
1012Misaki C KolmetzJapan2024-03-16Rangoni Of Florence UNQUALIFIED6Ivan Magalhaes
1013Jeanfrancois D MorascaCanada2024-03-01Rousseaux, Michael Esq QUALIFIED59Elwin Sharvill
1014Jefferson D AmigonBrazil2024-03-02Printing Dimensions NEGOTIATION83Ivan Magalhaes
1015Jeanfrancois I OldroydJapan2024-03-13Chapman, Ross E Esq RENEWAL7Bernardo Dominic
1016Sinclair A FerenczGermany2024-03-28Rangoni Of Florence NEGOTIATION53Bernardo Dominic
1017Aditya F OldroydItaly2024-03-17Morlong Associates NEW43Bernardo Dominic
1018Leon O DarakjyAustralia2024-03-13Feiner Bros NEGOTIATION69Elwin Sharvill
1019Cody Q GillianBrazil2024-03-01Truhlar And Truhlar Attys RENEWAL43Anna Fali
1020Darci R MaletFrance2024-03-20Dorl, James J Esq PROPOSAL84Anna Fali
1021Aruna G ChuiItaly2024-03-12Chanay, Jeffrey A Esq NEW47Xuxue Feng
1022Jeanfrancois P DarakjyItaly2024-03-02Feltz Printing Service QUALIFIED7Ioni Bowcher
1023Jones K KuskoArgentina2024-03-21Dorl, James J Esq UNQUALIFIED10Ioni Bowcher
1024Costa X BriddickFrance2024-03-18Buckley Miller Wright QUALIFIED4Stephen Shaw
1025Clifford O DoeJapan2024-03-04Commercial Press RENEWAL11Ivan Magalhaes
1026Deepesh O DilliardSpain2024-03-12King, Christopher A Esq UNQUALIFIED8Onyama Limba
1027Maisha T FerenczBrazil2024-03-12Chemel, James L Cpa RENEWAL92Onyama Limba
1028Jennifer C SaylorsGermany2024-03-14Benton, John B Jr PROPOSAL66Onyama Limba
1029Leon Q GarufiFrance2024-03-28Chemel, James L Cpa NEGOTIATION33Anna Fali
1030Murillo E ChuiRussia2024-03-28King, Christopher A Esq UNQUALIFIED72Asiya Javayant
1031Aditya U AlbaresAustralia2024-03-23Rousseaux, Michael Esq RENEWAL16Stephen Shaw
1032Tony N MorascaRussia2024-03-28Rousseaux, Michael Esq NEW96Onyama Limba
1033Cody X SlusarskiFrance2024-03-23Morlong Associates NEW29Bernardo Dominic
1034Aika C WhobreySpain2024-03-22Chapman, Ross E Esq UNQUALIFIED20Onyama Limba
1035Arvin E KuskoItaly2024-03-09Rousseaux, Michael Esq PROPOSAL76Bernardo Dominic
1036Ashley Z RimSpain2024-03-12Feltz Printing Service NEW97Asiya Javayant
1037Wickens K BriddickBrazil2024-03-12Chemel, James L Cpa QUALIFIED62Bernardo Dominic
1038Ivar R KolmetzItaly2024-03-14Benton, John B Jr UNQUALIFIED68Asiya Javayant
1039Mayumi F BriddickBrazil2024-03-21Chanay, Jeffrey A Esq QUALIFIED38Ivan Magalhaes
1040Arvin A OldroydSpain2024-02-29Rangoni Of Florence NEW96Elwin Sharvill
1041Misaki U MorascaArgentina2024-03-21Dorl, James J Esq PROPOSAL73Amy Elsner
1042David K SaylorsItaly2024-03-07Morlong Associates UNQUALIFIED97Bernardo Dominic
1043Misaki D SchemmerBrazil2024-03-17Dorl, James J Esq UNQUALIFIED23Onyama Limba
1044Kadeem C BowleyItaly2024-03-18King, Christopher A Esq UNQUALIFIED70Xuxue Feng
1045Adams C DoeFrance2024-03-09Benton, John B Jr NEGOTIATION11Ioni Bowcher
1046Ivar F GlickCanada2024-03-11Rangoni Of Florence NEGOTIATION81Bernardo Dominic
1047Isabel N StensethRussia2024-03-01Buckley Miller Wright QUALIFIED19Bernardo Dominic
1048Jeanfrancois W CaudyJapan2024-03-10King, Christopher A Esq PROPOSAL18Anna Fali
1049Kadeem M BologniaBrazil2024-03-04King, Christopher A Esq UNQUALIFIED55Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Clifford Q PoquetteFranceXuxue Feng PROPOSAL
Misaki J OstroskySpainOnyama Limba NEW
Jones S SaylorsIndiaXuxue Feng UNQUALIFIED
Ivar E BologniaJapanAsiya Javayant RENEWAL
Mujtaba X AmigonArgentinaStephen Shaw PROPOSAL
Jones E ShinkoJapanIoni Bowcher UNQUALIFIED
Leja R MaletCanadaBernardo Dominic NEW
Leja J FlosiBrazilStephen Shaw NEW
Tony I RimSpainElwin Sharvill UNQUALIFIED
Tony J OldroydSpainElwin Sharvill RENEWAL
Leja R BriddickSpainElwin Sharvill NEW
Arvin D PerinItalyAsiya Javayant UNQUALIFIED
Ricardo Y DoeSpainAsiya Javayant NEW
Nicolas Q SaylorsGermanyOnyama Limba PROPOSAL
Munro I AmigonGermanyAsiya Javayant NEW
Tony U RutaItalyIoni Bowcher NEW
Kaitlin H MaletBrazilAsiya Javayant QUALIFIED
Rodrigues R TollnerRussiaStephen Shaw NEGOTIATION
Sinclair E RimIndiaElwin Sharvill PROPOSAL
Julie W FigeroaCanadaBernardo Dominic UNQUALIFIED
Emily C WhobreyRussiaXuxue Feng NEGOTIATION
Morrow K MacleadGermanyXuxue Feng PROPOSAL
Mayumi K FigeroaUnited KingdomAnna Fali PROPOSAL
Maisha A PaprockiAustraliaAsiya Javayant QUALIFIED
Leja X TollnerSpainAnna Fali QUALIFIED
Misaki Q FigeroaIndiaElwin Sharvill NEGOTIATION
Mujtaba G ShinkoGermanyAmy Elsner RENEWAL
Izzy H WieserGermanyXuxue Feng NEW
Sinclair O OldroydBrazilAmy Elsner UNQUALIFIED
Deepesh W CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore M GarufiFranceIoni Bowcher NEW
Leja L PaprockiRussiaAmy Elsner QUALIFIED
Johnson G RimArgentinaElwin Sharvill NEGOTIATION
Arvin V RimFranceIvan Magalhaes NEW
Murillo E RimJapanElwin Sharvill RENEWAL
Jeanfrancois G OldroydFranceAmy Elsner RENEWAL
Antonio M DoeAustraliaXuxue Feng UNQUALIFIED
Julie P KuskoFranceIvan Magalhaes RENEWAL
Morrow F PoquetteFranceAsiya Javayant NEGOTIATION
Octavia N FerenczItalyXuxue Feng NEW
Greenwood N OstroskyGermanyIoni Bowcher PROPOSAL
Tony J SaylorsCanadaIoni Bowcher PROPOSAL
Juan Q InouyeJapanOnyama Limba NEGOTIATION
David B MaletBrazilXuxue Feng NEW
Aruna O RulapaughFranceXuxue Feng PROPOSAL
Darci F VenereRussiaAnna Fali QUALIFIED
Julie D RimBrazilStephen Shaw UNQUALIFIED
Emily H PerinCanadaOnyama Limba NEW
Morrow H DilliardSpainXuxue Feng NEGOTIATION
Smith H PerinJapanIvan Magalhaes NEW
Frozen Columns
Name
Ivar U Sergi
Greenwood G Wieser
Kadeem R Caudy
Francesco Q Darakjy
Silvio U Maclead
Emily E Dilliard
Juan J Glick
Maisha Y Schemmer
Murillo O Caudy
David A Perin
Jeanfrancois N Gillian
Chavez X Butt
Izzy Y Stenseth
Darci S Shinko
Arvin O Rim
Maisha Y Gaucho
David H Oldroyd
Deepesh X Kusko
Kadeem G Whobrey
Jennifer T Slusarski
Aditya K Waycott
Isabel W Figeroa
Greenwood S Ruta
Smith F Chui
Maisha S Royster
Maria K Ostrosky
Rodrigues J Malet
Octavia D Malet
Octavia C Waycott
Cody W Butt
Jennifer I Oldroyd
Julie X Schemmer
Mayumi Q Kolmetz
David G Flosi
Misaki C Inouye
Salvatore V Iturbide
Nicolas J Whobrey
Sinclair I Flosi
James V Sergi
Ashley G Poquette
Clifford E Caldarera
Jones O Paprocki
Mujtaba A Kusko
Ricardo G Sergi
Ivar D Poquette
Adams B Nicka
Arvin K Stenseth
Misaki O Campain
Rodrigues L Kolmetz
Mujtaba M Malet
IdCountryDate
1000Italy2024-03-02
1001France2024-03-23
1002Japan2024-03-13
1003Canada2024-03-13
1004Russia2024-03-15
1005Germany2024-03-08
1006United Kingdom2024-03-14
1007Italy2024-03-28
1008Canada2024-03-10
1009France2024-03-24
1010Japan2024-02-29
1011Canada2024-03-15
1012Japan2024-03-19
1013Argentina2024-03-26
1014France2024-02-28
1015Germany2024-03-12
1016United Kingdom2024-03-26
1017Japan2024-03-15
1018India2024-03-20
1019Argentina2024-02-29
1020United Kingdom2024-03-16
1021India2024-03-26
1022France2024-03-24
1023France2024-03-21
1024Japan2024-03-22
1025Brazil2024-03-17
1026Germany2024-03-22
1027Japan2024-03-12
1028Italy2024-02-29
1029Russia2024-03-10
1030India2024-03-16
1031France2024-03-18
1032Germany2024-03-13
1033France2024-03-13
1034Australia2024-03-09
1035Australia2024-03-13
1036Australia2024-03-02
1037United Kingdom2024-02-29
1038Canada2024-03-17
1039Spain2024-03-22
1040Argentina2024-03-25
1041Canada2024-03-14
1042Canada2024-03-27
1043Russia2024-03-10
1044Argentina2024-03-06
1045United Kingdom2024-03-01
1046Brazil2024-03-02
1047France2024-03-10
1048Australia2024-03-22
1049Canada2024-03-06

On-Demand Data

NameIdCountryDate
Murillo Y Royster1000Argentina2024-03-19
Sinclair U Morasca1001Spain2024-03-26
Aika J Whobrey1002Spain2024-03-03
Jennifer W Perin1003India2024-03-02
Juan G Doe1004Argentina2024-03-23
Emily Y Garufi1005Brazil2024-03-16
Tony J Ruta1006India2024-03-09
Maria U Tollner1007Japan2024-03-03
Aditya F Schemmer1008United Kingdom2024-03-02
James Z Maclead1009Brazil2024-03-28
Wickens P Bowley1010Russia2024-03-11
Alejandro B Figeroa1011Russia2024-03-03
Izzy K Ferencz1012United Kingdom2024-03-20
Nicolas D Kolmetz1013India2024-03-17
Tony E Kusko1014Canada2024-03-10
Ricardo Q Dilliard1015India2024-03-22
Tony Y Ferencz1016Australia2024-02-28
Isabel N Maclead1017Japan2024-03-03
Maisha K Garufi1018Germany2024-02-29
Murillo V Schemmer1019India2024-03-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey Q ButtIndiaXuxue Feng NEW
Leja B ButtSpainElwin Sharvill RENEWAL
Jeanfrancois X SergiUnited KingdomElwin Sharvill NEGOTIATION
Darci R WieserAustraliaStephen Shaw PROPOSAL
Silvio Q SchemmerCanadaStephen Shaw UNQUALIFIED
Darci C VocelkaFranceBernardo Dominic RENEWAL
Aika J SaylorsIndiaXuxue Feng NEGOTIATION
Aruna R ChuiGermanyBernardo Dominic RENEWAL
Aruna V MaletGermanyElwin Sharvill RENEWAL
Ivar W DilliardSpainAsiya Javayant NEGOTIATION
Murillo D RulapaughAustraliaAsiya Javayant NEGOTIATION
Clifford D AlbaresBrazilIvan Magalhaes UNQUALIFIED
Ashley P WaycottCanadaIoni Bowcher RENEWAL
David U CaudyRussiaStephen Shaw NEW
Aika E WhobreyBrazilXuxue Feng PROPOSAL
Murillo J OldroydAustraliaAnna Fali NEW
Isabel Q FerenczIndiaAsiya Javayant NEGOTIATION
Ivar N IturbideUnited KingdomAnna Fali PROPOSAL
Julie W RutaSpainIvan Magalhaes NEGOTIATION
Kadeem F OstroskyArgentinaIoni Bowcher NEGOTIATION
Murillo C ButtUnited KingdomIoni Bowcher QUALIFIED
Morrow M InouyeCanadaIoni Bowcher QUALIFIED
Cody D RimItalyOnyama Limba RENEWAL
Ashley K AmigonIndiaElwin Sharvill NEW
Kaitlin O MaletIndiaIoni Bowcher UNQUALIFIED
Leon O AmigonAustraliaStephen Shaw PROPOSAL
Ivar N KolmetzCanadaBernardo Dominic QUALIFIED
Aditya E VocelkaCanadaXuxue Feng UNQUALIFIED
James V TollnerJapanStephen Shaw UNQUALIFIED
Antonio C BriddickArgentinaBernardo Dominic PROPOSAL
Stacey P FerenczItalyStephen Shaw QUALIFIED
James X GlickItalyAnna Fali QUALIFIED
Salvatore T InouyeCanadaIoni Bowcher NEW
Arvin M AmigonBrazilStephen Shaw PROPOSAL
Antonio J NickaBrazilXuxue Feng RENEWAL
Salvatore Q CampainBrazilAmy Elsner RENEWAL
Mujtaba Q BologniaItalyBernardo Dominic UNQUALIFIED
Maisha T CaldareraIndiaOnyama Limba QUALIFIED
Wickens T NestleBrazilIvan Magalhaes NEW
Wickens X GlickUnited KingdomAmy Elsner RENEWAL

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