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
Aditya A InouyeArgentinaElwin Sharvill UNQUALIFIED
Darci R MaletUnited KingdomIoni Bowcher PROPOSAL
Alejandro Y KuskoAustraliaBernardo Dominic UNQUALIFIED
Greenwood C NestleRussiaAsiya Javayant RENEWAL
Leon E DarakjyAustraliaAmy Elsner UNQUALIFIED
Mayumi Q WaycottFranceAmy Elsner UNQUALIFIED
Morrow O AlbaresArgentinaIvan Magalhaes RENEWAL
Murillo Z KolmetzItalyIoni Bowcher UNQUALIFIED
Adams T BriddickCanadaElwin Sharvill RENEWAL
Aika T PoquetteRussiaStephen Shaw NEGOTIATION
Munro B ButtUnited KingdomAmy Elsner PROPOSAL
Arvin U OstroskyUnited KingdomOnyama Limba RENEWAL
Francesco O RoysterFranceIoni Bowcher NEGOTIATION
Arvin Q MacleadRussiaAmy Elsner NEGOTIATION
Antonio D NickaJapanAsiya Javayant UNQUALIFIED
Munro O GauchoJapanAnna Fali UNQUALIFIED
Morrow J RutaJapanBernardo Dominic RENEWAL
Mujtaba C FigeroaFranceIoni Bowcher RENEWAL
Alejandro X RimCanadaAnna Fali QUALIFIED
James X RimIndiaIvan Magalhaes NEW
Ashley Y DoeBrazilIoni Bowcher NEGOTIATION
Costa S BologniaItalyIoni Bowcher UNQUALIFIED
Costa Q AmigonSpainXuxue Feng QUALIFIED
Arvin P FigeroaIndiaAnna Fali NEGOTIATION
Munro B WhobreyArgentinaStephen Shaw RENEWAL
Greenwood K NickaItalyElwin Sharvill NEW
Greenwood C CampainJapanStephen Shaw NEW
Ricardo T AmigonAustraliaXuxue Feng UNQUALIFIED
Faith H NestleFranceBernardo Dominic QUALIFIED
Costa R FollerJapanAsiya Javayant UNQUALIFIED
Alejandro X RulapaughItalyXuxue Feng NEW
Claire A GillianFranceOnyama Limba NEGOTIATION
Aditya K FigeroaBrazilOnyama Limba PROPOSAL
Mayumi H WieserCanadaIoni Bowcher NEW
Leja V NickaBrazilAnna Fali NEW
Maria H FollerIndiaAsiya Javayant NEW
Maria Q PaprockiSpainBernardo Dominic PROPOSAL
David X SchemmerGermanyElwin Sharvill UNQUALIFIED
Mayumi B VocelkaUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois M SergiFranceElwin Sharvill PROPOSAL
Greenwood Q TollnerBrazilElwin Sharvill PROPOSAL
Ricardo P NestleRussiaElwin Sharvill QUALIFIED
Sinclair W VocelkaJapanElwin Sharvill NEGOTIATION
Emily Z PaprockiAustraliaStephen Shaw UNQUALIFIED
Mujtaba C MarrierArgentinaStephen Shaw QUALIFIED
Murillo M OstroskyItalyBernardo Dominic NEGOTIATION
Stacey R PerinFranceBernardo Dominic UNQUALIFIED
Murillo A MorascaSpainStephen Shaw QUALIFIED
Chavez D DarakjyRussiaIoni Bowcher NEW
Greenwood M WieserBrazilOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Clifford T VenereCanadaAsiya Javayant RENEWAL
Deepesh Y DarakjyCanadaIoni Bowcher UNQUALIFIED
Smith D StensethIndiaXuxue Feng RENEWAL
Mayumi E DarakjyCanadaOnyama Limba NEGOTIATION
Adams U FigeroaArgentinaAsiya Javayant RENEWAL
Maisha F TollnerRussiaStephen Shaw NEW
Aruna G DarakjyJapanXuxue Feng QUALIFIED
Tony W PerinBrazilBernardo Dominic QUALIFIED
Ivar G MaletItalyElwin Sharvill PROPOSAL
Adams V SchemmerItalyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika O PaprockiJapan2024-04-21Rangoni Of Florence NEW42Stephen Shaw
1001Salvatore R AmigonSpain2024-04-12Feiner Bros QUALIFIED84Anna Fali
1002Chavez A TollnerBrazil2024-04-08Rousseaux, Michael Esq NEW8Ioni Bowcher
1003Jones B MarrierGermany2024-04-04Truhlar And Truhlar Attys QUALIFIED16Stephen Shaw
1004Leon S StensethFrance2024-04-14Morlong Associates RENEWAL67Stephen Shaw
1005Sinclair D IturbideUnited Kingdom2024-03-28Benton, John B Jr PROPOSAL14Stephen Shaw
1006Kaitlin N AlbaresSpain2024-04-15Rangoni Of Florence RENEWAL23Ioni Bowcher
1007Darci L PerinUnited Kingdom2024-03-28Chemel, James L Cpa NEW52Bernardo Dominic
1008Ivar H InouyeFrance2024-04-09King, Christopher A Esq RENEWAL48Xuxue Feng
1009Ivar M GlickRussia2024-04-13Rousseaux, Michael Esq QUALIFIED36Asiya Javayant
1010Kaitlin O AmigonUnited Kingdom2024-04-08Morlong Associates QUALIFIED91Stephen Shaw
1011Julie X SaylorsGermany2024-03-30King, Christopher A Esq RENEWAL51Xuxue Feng
1012Jefferson O MorascaItaly2024-04-20Feltz Printing Service NEGOTIATION69Xuxue Feng
1013Francesco P SchemmerSpain2024-04-15Feiner Bros NEGOTIATION94Bernardo Dominic
1014Leja O TollnerJapan2024-04-08Feiner Bros NEW37Ivan Magalhaes
1015Jones L FigeroaCanada2024-04-24Commercial Press PROPOSAL25Anna Fali
1016David L StockhamBrazil2024-03-30Commercial Press RENEWAL19Amy Elsner
1017Isabel G DoeArgentina2024-04-07Rousseaux, Michael Esq NEW55Elwin Sharvill
1018Deepesh R MorascaIndia2024-04-14Chemel, James L Cpa NEGOTIATION52Bernardo Dominic
1019Claire C FerenczCanada2024-04-11Chapman, Ross E Esq PROPOSAL16Ivan Magalhaes
1020Isabel X NickaSpain2024-04-20Rangoni Of Florence QUALIFIED71Ivan Magalhaes
1021Munro O GlickArgentina2024-04-20Dorl, James J Esq NEW76Xuxue Feng
1022Juan Q KolmetzGermany2024-04-11Benton, John B Jr RENEWAL94Elwin Sharvill
1023Aditya D FerenczRussia2024-04-01Morlong Associates NEGOTIATION89Anna Fali
1024Costa T TollnerRussia2024-04-05Feiner Bros UNQUALIFIED39Amy Elsner
1025Misaki R IturbideAustralia2024-04-13Chapman, Ross E Esq PROPOSAL0Anna Fali
1026Munro F MaletAustralia2024-04-15Dorl, James J Esq QUALIFIED79Asiya Javayant
1027Greenwood B FigeroaIndia2024-04-24Feiner Bros QUALIFIED90Onyama Limba
1028Kaitlin L IturbideFrance2024-04-08Feltz Printing Service NEGOTIATION75Onyama Limba
1029Wickens F DoeIndia2024-04-19Chapman, Ross E Esq PROPOSAL74Ioni Bowcher
1030Mayumi D PaprockiRussia2024-03-29Buckley Miller Wright NEW72Elwin Sharvill
1031Aruna X SergiAustralia2024-04-13Chemel, James L Cpa UNQUALIFIED94Onyama Limba
1032Murillo L AlbaresAustralia2024-04-14Rangoni Of Florence RENEWAL67Amy Elsner
1033Claire Y InouyeArgentina2024-04-19King, Christopher A Esq PROPOSAL77Bernardo Dominic
1034Adams D KolmetzIndia2024-04-01Chanay, Jeffrey A Esq NEGOTIATION44Onyama Limba
1035Stacey O GlickCanada2024-04-10Chemel, James L Cpa UNQUALIFIED49Amy Elsner
1036Nicolas L MaletSpain2024-04-24Benton, John B Jr NEGOTIATION58Onyama Limba
1037Rodrigues H CaldareraArgentina2024-04-06King, Christopher A Esq NEW41Xuxue Feng
1038Ivar N DarakjyAustralia2024-04-19Printing Dimensions NEGOTIATION69Elwin Sharvill
1039Faith T BriddickFrance2024-04-16Chapman, Ross E Esq RENEWAL1Xuxue Feng
1040Greenwood H FigeroaItaly2024-03-27Commercial Press RENEWAL72Onyama Limba
1041Tony I PerinBrazil2024-04-14Feltz Printing Service QUALIFIED99Bernardo Dominic
1042Jeanfrancois K VocelkaBrazil2024-04-23Benton, John B Jr UNQUALIFIED59Amy Elsner
1043Ashley V SlusarskiArgentina2024-03-27Feiner Bros PROPOSAL11Anna Fali
1044Francesco P GlickIndia2024-04-12Benton, John B Jr RENEWAL92Anna Fali
1045David V PerinFrance2024-04-03Chanay, Jeffrey A Esq PROPOSAL92Elwin Sharvill
1046Jeanfrancois Y InouyeFrance2024-04-04Dorl, James J Esq QUALIFIED87Elwin Sharvill
1047Arvin E RulapaughCanada2024-04-11Printing Dimensions UNQUALIFIED49Asiya Javayant
1048Antonio A NickaRussia2024-04-18Printing Dimensions QUALIFIED92Anna Fali
1049Smith Q CampainBrazil2024-04-23Feiner Bros NEGOTIATION95Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Adams P PaprockiRussiaIvan Magalhaes PROPOSAL
Maisha Y BowleyBrazilIvan Magalhaes PROPOSAL
Clifford U OldroydAustraliaIvan Magalhaes PROPOSAL
Leja J ButtItalyIvan Magalhaes RENEWAL
Jefferson D SchemmerAustraliaOnyama Limba RENEWAL
Smith I PoquetteGermanyOnyama Limba PROPOSAL
David O FerenczCanadaStephen Shaw QUALIFIED
Julie Y GauchoFranceXuxue Feng PROPOSAL
Rodrigues A SaylorsAustraliaElwin Sharvill PROPOSAL
Arvin D WaycottArgentinaBernardo Dominic UNQUALIFIED
Mayumi S FlosiSpainIoni Bowcher QUALIFIED
Alejandro N StockhamIndiaOnyama Limba UNQUALIFIED
Greenwood R MacleadGermanyStephen Shaw UNQUALIFIED
Tony E ShinkoSpainXuxue Feng NEGOTIATION
Nicolas N BowleyFranceAsiya Javayant NEGOTIATION
Antonio P AmigonArgentinaAsiya Javayant QUALIFIED
Ricardo J StockhamArgentinaIoni Bowcher RENEWAL
Johnson W MorascaRussiaIvan Magalhaes RENEWAL
Salvatore L OldroydFranceAnna Fali UNQUALIFIED
Francesco L MaletGermanyXuxue Feng NEGOTIATION
Emily D OstroskyCanadaIoni Bowcher UNQUALIFIED
Julie M FollerItalyXuxue Feng QUALIFIED
Sinclair K SaylorsBrazilElwin Sharvill PROPOSAL
Greenwood R NickaGermanyOnyama Limba NEW
Sinclair Q GarufiIndiaBernardo Dominic NEGOTIATION
Maria A TollnerItalyStephen Shaw PROPOSAL
Jefferson W SlusarskiRussiaStephen Shaw NEW
Jennifer B NestleRussiaElwin Sharvill PROPOSAL
Jefferson N PaprockiCanadaAnna Fali RENEWAL
Juan S SergiFranceIoni Bowcher NEW
Clifford K RimFranceAmy Elsner NEGOTIATION
Costa H SchemmerJapanStephen Shaw PROPOSAL
Munro H OstroskyFranceElwin Sharvill NEW
Arvin E SaylorsRussiaXuxue Feng NEW
Morrow V MacleadArgentinaIoni Bowcher UNQUALIFIED
Misaki A BologniaIndiaIoni Bowcher NEGOTIATION
Deepesh D InouyeGermanyAsiya Javayant RENEWAL
Cody Z RutaFranceAmy Elsner QUALIFIED
James E OldroydIndiaStephen Shaw NEGOTIATION
Francesco E MacleadBrazilAnna Fali NEGOTIATION
Wickens B AlbaresAustraliaStephen Shaw NEW
Maria F BowleyCanadaOnyama Limba NEGOTIATION
Maisha Z GillianItalyXuxue Feng RENEWAL
Adams N CampainSpainAsiya Javayant NEGOTIATION
Jones C NestleArgentinaElwin Sharvill PROPOSAL
Darci T IturbideFranceAnna Fali UNQUALIFIED
Ivar I FigeroaIndiaElwin Sharvill NEGOTIATION
Julie Q DoeJapanIvan Magalhaes PROPOSAL
Deepesh T FerenczCanadaIvan Magalhaes UNQUALIFIED
David M StensethCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Leja O Royster
Deepesh Q Kusko
Darci I Bolognia
Leon M Vocelka
Arvin O Foller
Mujtaba J Malet
Silvio C Darakjy
Misaki W Royster
Isabel N Nicka
Mayumi S Perin
Maria L Perin
Darci F Wieser
Francesco A Butt
Ashley K Oldroyd
Greenwood V Ostrosky
Jones G Kolmetz
Alejandro X Caudy
Clifford V Perin
Costa A Figeroa
David C Perin
Munro C Nestle
Ashley H Ruta
Faith H Garufi
Misaki J Sergi
Juan V Gillian
Chavez M Iturbide
Kaitlin W Albares
James H Butt
Aruna R Campain
Murillo M Tollner
Aruna C Venere
Chavez A Stockham
Juan J Slusarski
Rodrigues D Bowley
Maisha O Inouye
Greenwood T Malet
Ivar V Ruta
Ricardo D Iturbide
Misaki B Glick
David J Kolmetz
Rodrigues L Malet
Francesco D Inouye
James W Venere
Aruna J Schemmer
Mayumi J Royster
Rodrigues M Malet
Clifford B Gaucho
Claire F Royster
Wickens C Stenseth
Rodrigues A Stockham
IdCountryDate
1000Italy2024-04-19
1001Russia2024-03-31
1002France2024-04-07
1003France2024-04-13
1004India2024-04-02
1005Australia2024-04-18
1006Spain2024-04-08
1007Russia2024-04-14
1008Brazil2024-04-13
1009Argentina2024-04-12
1010United Kingdom2024-04-11
1011Canada2024-04-23
1012France2024-04-04
1013Brazil2024-04-23
1014Brazil2024-04-20
1015Italy2024-03-30
1016Italy2024-04-02
1017Australia2024-03-29
1018Argentina2024-03-27
1019Brazil2024-04-09
1020India2024-04-13
1021Canada2024-04-13
1022Germany2024-04-24
1023United Kingdom2024-04-13
1024Canada2024-04-02
1025Canada2024-04-12
1026Italy2024-03-31
1027Spain2024-03-29
1028Italy2024-04-18
1029Japan2024-04-17
1030Germany2024-04-02
1031France2024-04-06
1032Brazil2024-03-27
1033Argentina2024-04-18
1034United Kingdom2024-04-01
1035Argentina2024-04-04
1036Canada2024-03-31
1037Australia2024-04-09
1038India2024-03-29
1039Australia2024-04-08
1040India2024-04-08
1041Argentina2024-03-30
1042United Kingdom2024-04-21
1043Russia2024-04-15
1044Canada2024-04-13
1045Brazil2024-04-11
1046Argentina2024-04-23
1047Spain2024-04-15
1048Spain2024-03-30
1049Russia2024-04-12

On-Demand Data

NameIdCountryDate
Ivar Q Darakjy1000United Kingdom2024-04-20
Greenwood B Gillian1001France2024-03-27
Maria V Gillian1002Spain2024-04-06
Mujtaba Y Venere1003France2024-04-09
Ashley C Glick1004United Kingdom2024-04-16
Murillo F Rulapaugh1005Spain2024-04-10
Aruna R Dilliard1006Japan2024-04-08
David J Wieser1007Spain2024-04-15
Smith Y Briddick1008Japan2024-04-17
Kaitlin Q Glick1009France2024-04-05
Leja O Chui1010Canada2024-04-18
Jeanfrancois U Rulapaugh1011Germany2024-04-02
Mayumi T Sergi1012Canada2024-04-08
Morrow T Ruta1013Japan2024-04-14
Arvin N Venere1014Spain2024-04-24
Jones R Malet1015United Kingdom2024-03-30
Maisha D Perin1016Italy2024-04-02
Ricardo L Nicka1017Australia2024-04-24
Francesco R Flosi1018India2024-04-02
Johnson B Ostrosky1019Argentina2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow I DoeBrazilIvan Magalhaes RENEWAL
Izzy W ButtUnited KingdomXuxue Feng NEW
Tony Q MaletAustraliaXuxue Feng NEW
Johnson Y DarakjyRussiaElwin Sharvill QUALIFIED
Jeanfrancois A RutaGermanyIvan Magalhaes NEW
Leja C PoquetteArgentinaElwin Sharvill RENEWAL
Smith M FerenczAustraliaOnyama Limba NEW
Darci L TollnerCanadaXuxue Feng NEGOTIATION
Salvatore O CaudyFranceAnna Fali RENEWAL
Ivar R RimRussiaIoni Bowcher QUALIFIED
Jefferson E AmigonAustraliaIvan Magalhaes QUALIFIED
Greenwood K RutaIndiaXuxue Feng NEW
Deepesh R SlusarskiSpainXuxue Feng NEGOTIATION
David X ButtAustraliaAsiya Javayant NEW
Cody L GillianAustraliaStephen Shaw UNQUALIFIED
Aditya E BologniaCanadaOnyama Limba QUALIFIED
Wickens M PaprockiArgentinaIvan Magalhaes QUALIFIED
Darci Y RimBrazilBernardo Dominic QUALIFIED
Morrow A CaudyUnited KingdomOnyama Limba NEW
Tony U TollnerItalyAmy Elsner PROPOSAL
Wickens N RoysterRussiaBernardo Dominic PROPOSAL
Mayumi C SlusarskiJapanIvan Magalhaes QUALIFIED
Isabel N WieserItalyElwin Sharvill UNQUALIFIED
Izzy H MorascaUnited KingdomStephen Shaw UNQUALIFIED
Aika Y IturbideArgentinaAnna Fali PROPOSAL
Silvio D SaylorsAustraliaXuxue Feng UNQUALIFIED
Octavia L SlusarskiSpainAmy Elsner PROPOSAL
Maisha O GillianFranceOnyama Limba NEGOTIATION
Ivar O MaletIndiaAsiya Javayant RENEWAL
Aruna S SergiSpainAsiya Javayant PROPOSAL
Jeanfrancois B DarakjyBrazilStephen Shaw PROPOSAL
Greenwood I DarakjyItalyAnna Fali NEGOTIATION
Jennifer Q AlbaresIndiaIvan Magalhaes NEW
Greenwood N WieserArgentinaStephen Shaw NEGOTIATION
Isabel H FollerArgentinaAmy Elsner RENEWAL
Leja V KolmetzRussiaXuxue Feng NEGOTIATION
Tony W WaycottItalyXuxue Feng RENEWAL
Alejandro H ShinkoRussiaAnna Fali QUALIFIED
Aika T RutaGermanyAnna Fali NEW
Maisha Q PoquetteSpainIvan Magalhaes 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>