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
Antonio A FerenczAustraliaIoni Bowcher UNQUALIFIED
Antonio M FigeroaIndiaAmy Elsner NEGOTIATION
Clifford N WieserUnited KingdomXuxue Feng PROPOSAL
Costa Y SchemmerItalyXuxue Feng QUALIFIED
Jefferson Q CaldareraUnited KingdomElwin Sharvill RENEWAL
Greenwood S OldroydAustraliaAnna Fali QUALIFIED
Tony G BologniaSpainXuxue Feng NEGOTIATION
Nicolas D OstroskySpainElwin Sharvill NEGOTIATION
Emily B NestleAustraliaAnna Fali QUALIFIED
Chavez E PoquetteGermanyAsiya Javayant RENEWAL
Sinclair E InouyeArgentinaIvan Magalhaes NEW
Arvin C KolmetzSpainIvan Magalhaes PROPOSAL
Silvio F OstroskyFranceIvan Magalhaes PROPOSAL
Munro N AmigonFranceAmy Elsner QUALIFIED
Wickens W NickaSpainOnyama Limba NEW
Chavez H WhobreyGermanyAsiya Javayant RENEWAL
Arvin N CaudyIndiaXuxue Feng RENEWAL
Johnson P PerinJapanIoni Bowcher PROPOSAL
David Y RutaGermanyStephen Shaw UNQUALIFIED
Tony O CaldareraArgentinaElwin Sharvill PROPOSAL
Ashley N MaletSpainStephen Shaw PROPOSAL
Misaki N StensethJapanIoni Bowcher PROPOSAL
Emily S RulapaughAustraliaBernardo Dominic UNQUALIFIED
Julie D MorascaFranceIvan Magalhaes RENEWAL
Darci O SchemmerCanadaBernardo Dominic PROPOSAL
Aruna J ButtArgentinaBernardo Dominic PROPOSAL
Cody U TollnerBrazilIoni Bowcher RENEWAL
Jennifer A PaprockiGermanyStephen Shaw QUALIFIED
Mayumi N FlosiJapanXuxue Feng NEW
Antonio Q MarrierArgentinaStephen Shaw QUALIFIED
Jennifer U FerenczUnited KingdomBernardo Dominic PROPOSAL
Costa V StensethJapanAsiya Javayant RENEWAL
Kadeem J InouyeRussiaXuxue Feng QUALIFIED
Jeanfrancois Y ShinkoAustraliaBernardo Dominic NEW
Rodrigues D VocelkaCanadaAmy Elsner PROPOSAL
Maria I FollerSpainStephen Shaw NEW
Greenwood V WhobreyAustraliaXuxue Feng RENEWAL
Arvin D BriddickFranceXuxue Feng RENEWAL
James Y SergiAustraliaAnna Fali QUALIFIED
James I MaletUnited KingdomIoni Bowcher NEW
Maria E IturbideAustraliaStephen Shaw NEW
Claire B FlosiItalyAmy Elsner NEW
Leja F VocelkaRussiaBernardo Dominic PROPOSAL
Leja Y BriddickUnited KingdomIoni Bowcher QUALIFIED
Leja Q SaylorsJapanAnna Fali RENEWAL
Wickens X InouyeArgentinaAsiya Javayant PROPOSAL
Faith H FlosiIndiaOnyama Limba PROPOSAL
Alejandro V GauchoRussiaXuxue Feng NEGOTIATION
Maisha O SlusarskiFranceBernardo Dominic NEGOTIATION
Juan C FollerItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel C SlusarskiGermanyAmy Elsner NEW
Isabel X AmigonArgentinaXuxue Feng QUALIFIED
Arvin E VocelkaAustraliaOnyama Limba RENEWAL
Misaki R IturbideArgentinaOnyama Limba PROPOSAL
Cody A RutaArgentinaStephen Shaw QUALIFIED
Stacey W MorascaJapanXuxue Feng PROPOSAL
Leon V GarufiBrazilElwin Sharvill UNQUALIFIED
Faith O SlusarskiFranceIoni Bowcher NEW
Izzy M AlbaresGermanyIoni Bowcher NEGOTIATION
Izzy D GarufiJapanXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood V ShinkoArgentina2024-04-03Feiner Bros NEW63Onyama Limba
1001Kaitlin Q FerenczCanada2024-04-07Dorl, James J Esq NEW43Anna Fali
1002Clifford S StensethAustralia2024-04-24Chapman, Ross E Esq NEW52Elwin Sharvill
1003Francesco I RoysterAustralia2024-04-26Buckley Miller Wright NEGOTIATION5Ivan Magalhaes
1004Octavia G AlbaresArgentina2024-04-18Chemel, James L Cpa QUALIFIED45Elwin Sharvill
1005Juan J GillianRussia2024-04-20King, Christopher A Esq QUALIFIED88Amy Elsner
1006Octavia D PoquetteArgentina2024-04-17Feiner Bros PROPOSAL39Asiya Javayant
1007Ricardo T GillianGermany2024-04-21Chanay, Jeffrey A Esq NEGOTIATION18Xuxue Feng
1008Faith B GillianCanada2024-04-09Chemel, James L Cpa UNQUALIFIED56Ioni Bowcher
1009Jeanfrancois Q WaycottCanada2024-04-17Benton, John B Jr RENEWAL74Asiya Javayant
1010David H ChuiAustralia2024-04-13Morlong Associates UNQUALIFIED11Amy Elsner
1011Jennifer H SergiIndia2024-04-23Chanay, Jeffrey A Esq QUALIFIED13Bernardo Dominic
1012Smith A OldroydBrazil2024-03-31Chapman, Ross E Esq NEW46Xuxue Feng
1013Wickens P MaletFrance2024-04-10Feiner Bros NEW81Ivan Magalhaes
1014Mujtaba E DoeAustralia2024-04-25Buckley Miller Wright NEW0Ioni Bowcher
1015Francesco W StensethCanada2024-04-16Rangoni Of Florence NEW6Anna Fali
1016Johnson U InouyeItaly2024-04-17Truhlar And Truhlar Attys UNQUALIFIED96Ivan Magalhaes
1017James L SergiUnited Kingdom2024-04-26Dorl, James J Esq PROPOSAL97Onyama Limba
1018Salvatore F TollnerFrance2024-03-31Rangoni Of Florence QUALIFIED11Ioni Bowcher
1019Stacey W KolmetzItaly2024-04-10Printing Dimensions QUALIFIED8Stephen Shaw
1020Ashley F KuskoBrazil2024-04-23Truhlar And Truhlar Attys PROPOSAL31Xuxue Feng
1021Greenwood K MaletJapan2024-04-04Chemel, James L Cpa PROPOSAL85Stephen Shaw
1022Rodrigues N PerinJapan2024-04-24Rousseaux, Michael Esq RENEWAL79Ivan Magalhaes
1023Ashley G SchemmerCanada2024-04-04King, Christopher A Esq PROPOSAL78Elwin Sharvill
1024Jeanfrancois E RoysterFrance2024-04-15Chemel, James L Cpa NEGOTIATION19Asiya Javayant
1025Julie P WieserCanada2024-04-19Benton, John B Jr NEGOTIATION12Onyama Limba
1026Jones S FigeroaCanada2024-04-23Morlong Associates NEW41Xuxue Feng
1027Mujtaba P MorascaAustralia2024-04-23Chapman, Ross E Esq NEGOTIATION80Ioni Bowcher
1028Emily U SaylorsUnited Kingdom2024-04-23Rousseaux, Michael Esq UNQUALIFIED81Anna Fali
1029Wickens W StockhamCanada2024-04-07King, Christopher A Esq QUALIFIED39Onyama Limba
1030Aruna L StockhamArgentina2024-04-25Benton, John B Jr NEGOTIATION48Anna Fali
1031Cody P ShinkoCanada2024-04-17Feiner Bros RENEWAL6Asiya Javayant
1032David B OldroydFrance2024-04-26Feltz Printing Service NEGOTIATION73Anna Fali
1033Francesco H MorascaAustralia2024-04-27Rangoni Of Florence RENEWAL31Onyama Limba
1034Antonio X VocelkaAustralia2024-04-05Truhlar And Truhlar Attys PROPOSAL38Asiya Javayant
1035Sinclair A WaycottGermany2024-04-22Rousseaux, Michael Esq RENEWAL84Ioni Bowcher
1036Isabel F PoquetteUnited Kingdom2024-04-01Rousseaux, Michael Esq NEW67Anna Fali
1037Johnson D SaylorsArgentina2024-04-04Morlong Associates RENEWAL7Asiya Javayant
1038Clifford D GillianFrance2024-04-06King, Christopher A Esq UNQUALIFIED33Xuxue Feng
1039Jennifer W FerenczGermany2024-04-07Dorl, James J Esq UNQUALIFIED72Amy Elsner
1040Morrow D BowleyArgentina2024-04-28Rousseaux, Michael Esq NEW47Amy Elsner
1041Jeanfrancois L WieserUnited Kingdom2024-04-14Rangoni Of Florence QUALIFIED49Onyama Limba
1042Ashley M MaletJapan2024-04-10Morlong Associates RENEWAL4Onyama Limba
1043Johnson Z MaletJapan2024-04-18Truhlar And Truhlar Attys RENEWAL46Elwin Sharvill
1044Jefferson J DarakjyJapan2024-04-14King, Christopher A Esq NEGOTIATION9Bernardo Dominic
1045Arvin M ButtRussia2024-04-22Feiner Bros RENEWAL52Ioni Bowcher
1046Isabel Y RulapaughIndia2024-04-28Dorl, James J Esq QUALIFIED71Bernardo Dominic
1047Faith Y SchemmerUnited Kingdom2024-04-17Chanay, Jeffrey A Esq NEW96Asiya Javayant
1048Kadeem V CampainBrazil2024-04-02Printing Dimensions QUALIFIED28Xuxue Feng
1049Rodrigues U FigeroaSpain2024-04-10Rousseaux, Michael Esq PROPOSAL99Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Arvin Y SergiSpainAsiya Javayant PROPOSAL
Stacey J AmigonGermanyAsiya Javayant PROPOSAL
Clifford J AmigonUnited KingdomIoni Bowcher RENEWAL
Aruna F TollnerGermanyIoni Bowcher NEGOTIATION
Wickens A FlosiGermanyBernardo Dominic NEGOTIATION
Salvatore B GauchoItalyElwin Sharvill UNQUALIFIED
Ivar G DarakjyFranceIoni Bowcher UNQUALIFIED
Clifford U KolmetzUnited KingdomAmy Elsner PROPOSAL
Mujtaba K BologniaRussiaIoni Bowcher PROPOSAL
Arvin U RutaFranceIvan Magalhaes RENEWAL
Deepesh Y FollerAustraliaAsiya Javayant UNQUALIFIED
Morrow U TollnerUnited KingdomXuxue Feng PROPOSAL
Clifford W KuskoGermanyBernardo Dominic UNQUALIFIED
Juan W KolmetzItalyOnyama Limba PROPOSAL
Munro Z WieserRussiaIoni Bowcher RENEWAL
Misaki E GlickCanadaAsiya Javayant RENEWAL
Ricardo J PerinItalyAmy Elsner QUALIFIED
Salvatore J GillianBrazilAnna Fali NEGOTIATION
Clifford P SaylorsBrazilXuxue Feng QUALIFIED
Arvin W VocelkaRussiaBernardo Dominic UNQUALIFIED
Antonio B PaprockiFranceElwin Sharvill RENEWAL
Smith Z ShinkoRussiaAsiya Javayant QUALIFIED
Mayumi D ButtBrazilOnyama Limba QUALIFIED
James J RimAustraliaIvan Magalhaes QUALIFIED
Nicolas D IturbideItalyElwin Sharvill QUALIFIED
Ricardo G ShinkoSpainAmy Elsner QUALIFIED
Nicolas K CampainSpainIvan Magalhaes QUALIFIED
Aika M StockhamArgentinaAsiya Javayant QUALIFIED
Francesco E MarrierSpainStephen Shaw RENEWAL
Maisha K VocelkaItalyElwin Sharvill RENEWAL
Clifford E BologniaJapanOnyama Limba RENEWAL
Aika U PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Aruna S GlickJapanXuxue Feng QUALIFIED
Clifford E WhobreyRussiaIoni Bowcher RENEWAL
Adams H StockhamFranceAmy Elsner NEW
Greenwood J FlosiBrazilBernardo Dominic NEGOTIATION
Costa V WhobreyArgentinaBernardo Dominic PROPOSAL
Aditya I FollerIndiaIvan Magalhaes NEW
Claire I VenereBrazilAnna Fali UNQUALIFIED
Rodrigues X WaycottGermanyAsiya Javayant UNQUALIFIED
Maisha I ChuiItalyIoni Bowcher NEGOTIATION
Morrow J MorascaRussiaIoni Bowcher PROPOSAL
Octavia A VenereUnited KingdomBernardo Dominic PROPOSAL
Leja V GlickArgentinaElwin Sharvill NEW
Nicolas I RimFranceStephen Shaw QUALIFIED
Claire Y MorascaIndiaAmy Elsner NEGOTIATION
Jefferson I CaldareraIndiaOnyama Limba NEGOTIATION
Nicolas Z MaletSpainStephen Shaw UNQUALIFIED
Sinclair Q KuskoCanadaStephen Shaw NEW
Johnson P VocelkaRussiaOnyama Limba QUALIFIED
Frozen Columns
Name
Aika G Rim
Cody L Maclead
Maria A Morasca
Costa A Bolognia
Maria M Briddick
Aruna F Stockham
Ricardo V Darakjy
Mayumi T Malet
Salvatore M Malet
Aditya K Stockham
Emily F Stenseth
Emily M Ruta
Aruna S Malet
Aditya N Ostrosky
Francesco R Stockham
Kadeem B Caudy
Murillo E Shinko
Juan B Garufi
Tony Q Kusko
Clifford N Wieser
Aika O Chui
Octavia F Briddick
Aditya H Darakjy
Izzy Q Wieser
Clifford Y Caudy
Faith W Inouye
Salvatore E Waycott
David Y Stenseth
Silvio P Nicka
Aruna R Dilliard
Juan Y Nestle
Julie D Nicka
Maria J Schemmer
Claire D Venere
Leja X Ruta
Jeanfrancois T Tollner
Ashley I Chui
Costa Z Schemmer
Chavez K Foller
Greenwood I Schemmer
Tony U Malet
Morrow R Bowley
Morrow L Flosi
James P Waycott
Izzy J Rim
Misaki P Caldarera
Kaitlin S Doe
Maria S Saylors
Clifford M Shinko
Jeanfrancois Y Waycott
IdCountryDate
1000Russia2024-04-18
1001Italy2024-04-29
1002Argentina2024-04-10
1003Canada2024-04-29
1004Canada2024-04-19
1005France2024-04-19
1006Canada2024-04-16
1007Canada2024-04-20
1008Australia2024-04-05
1009Germany2024-04-07
1010Spain2024-04-26
1011Germany2024-04-12
1012Argentina2024-04-26
1013Italy2024-04-29
1014Brazil2024-04-17
1015Argentina2024-04-15
1016Russia2024-04-19
1017Japan2024-04-03
1018Brazil2024-04-01
1019France2024-04-27
1020Germany2024-04-20
1021Brazil2024-04-13
1022France2024-04-06
1023Germany2024-04-27
1024France2024-04-09
1025Brazil2024-04-21
1026Japan2024-04-24
1027Argentina2024-04-21
1028Spain2024-04-27
1029Spain2024-04-14
1030Italy2024-04-15
1031France2024-04-12
1032Brazil2024-04-04
1033United Kingdom2024-04-28
1034France2024-04-15
1035Japan2024-04-26
1036Japan2024-04-03
1037Germany2024-04-17
1038Argentina2024-04-22
1039India2024-04-24
1040France2024-04-22
1041France2024-04-23
1042Russia2024-04-13
1043United Kingdom2024-04-13
1044United Kingdom2024-04-14
1045Japan2024-04-08
1046Italy2024-04-07
1047India2024-04-22
1048India2024-04-08
1049Australia2024-04-12

On-Demand Data

NameIdCountryDate
Mujtaba O Malet1000Brazil2024-04-03
Murillo Z Ferencz1001Japan2024-04-11
Mayumi P Malet1002United Kingdom2024-04-19
Arvin V Royster1003United Kingdom2024-04-19
Octavia W Malet1004Australia2024-04-04
Murillo D Rulapaugh1005Germany2024-04-25
Ivar R Gillian1006Spain2024-04-24
Munro J Darakjy1007Italy2024-04-19
Johnson B Ruta1008Brazil2024-04-12
Mayumi Z Caldarera1009Brazil2024-04-06
Jefferson O Figeroa1010Argentina2024-04-07
Clifford E Dilliard1011France2024-04-01
Mujtaba C Waycott1012India2024-04-06
David I Marrier1013Australia2024-04-09
Costa A Whobrey1014Australia2024-04-19
Aika N Foller1015Japan2024-04-29
Deepesh Q Sergi1016Spain2024-04-15
Jefferson R Malet1017Brazil2024-04-20
Faith D Saylors1018Italy2024-04-06
Alejandro P Wieser1019Japan2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio X MacleadGermanyBernardo Dominic RENEWAL
Murillo Q DoeIndiaOnyama Limba UNQUALIFIED
Stacey S SchemmerIndiaAmy Elsner PROPOSAL
Juan Z RoysterRussiaBernardo Dominic NEW
Munro T NickaJapanXuxue Feng PROPOSAL
Misaki S MarrierCanadaIoni Bowcher QUALIFIED
Jefferson S StensethJapanAmy Elsner RENEWAL
Mujtaba F RulapaughItalyAnna Fali NEGOTIATION
James V VenereArgentinaStephen Shaw PROPOSAL
Antonio A SchemmerSpainOnyama Limba RENEWAL
Chavez H PoquetteArgentinaAnna Fali QUALIFIED
Misaki S BowleyFranceStephen Shaw QUALIFIED
Kadeem Q StockhamJapanIvan Magalhaes NEW
Greenwood H StensethJapanXuxue Feng NEGOTIATION
Ricardo J FigeroaFranceAmy Elsner RENEWAL
Jones X BologniaIndiaAmy Elsner RENEWAL
Silvio E BologniaUnited KingdomOnyama Limba NEGOTIATION
David P VocelkaItalyAsiya Javayant QUALIFIED
Rodrigues J NestleJapanIoni Bowcher PROPOSAL
Kaitlin C NestleItalyAsiya Javayant NEGOTIATION
James Y DilliardArgentinaAsiya Javayant QUALIFIED
Wickens F PaprockiIndiaAsiya Javayant UNQUALIFIED
Munro Q PaprockiIndiaIoni Bowcher RENEWAL
Greenwood Q IturbideArgentinaAsiya Javayant PROPOSAL
Maria K OstroskyRussiaElwin Sharvill UNQUALIFIED
Sinclair B PaprockiJapanIoni Bowcher PROPOSAL
Ashley Q GillianJapanBernardo Dominic QUALIFIED
Francesco O MorascaIndiaIoni Bowcher RENEWAL
Francesco R RoysterSpainStephen Shaw PROPOSAL
Salvatore L MarrierSpainAsiya Javayant QUALIFIED
Rodrigues M BowleyItalyAmy Elsner NEW
Darci O WieserFranceIoni Bowcher QUALIFIED
Morrow A OstroskyJapanAmy Elsner RENEWAL
Juan Z BologniaGermanyIvan Magalhaes QUALIFIED
Juan R InouyeRussiaXuxue Feng NEGOTIATION
Kaitlin A PaprockiSpainAmy Elsner NEW
Jones J SlusarskiBrazilBernardo Dominic RENEWAL
Clifford V WieserFranceBernardo Dominic QUALIFIED
Greenwood K FigeroaFranceAsiya Javayant NEGOTIATION
Faith U RutaAustraliaOnyama Limba QUALIFIED

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