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
Morrow N FollerJapanBernardo Dominic NEGOTIATION
Stacey O BologniaIndiaXuxue Feng NEW
Deepesh D OstroskyIndiaIoni Bowcher NEGOTIATION
Jennifer P AlbaresAustraliaIoni Bowcher UNQUALIFIED
David K MaletRussiaXuxue Feng NEGOTIATION
Wickens T InouyeItalyBernardo Dominic NEW
Isabel O WaycottCanadaAnna Fali NEGOTIATION
Aruna T ChuiGermanyIvan Magalhaes QUALIFIED
Wickens J MarrierGermanyOnyama Limba RENEWAL
Aika K NickaSpainIoni Bowcher NEGOTIATION
Emily N StockhamGermanyStephen Shaw NEW
Cody S MorascaIndiaIoni Bowcher UNQUALIFIED
Ashley N AmigonRussiaAmy Elsner RENEWAL
Kaitlin Z TollnerSpainIoni Bowcher NEW
Clifford X ChuiJapanIvan Magalhaes RENEWAL
Ivar U OldroydGermanyAnna Fali QUALIFIED
Sinclair K GillianIndiaAsiya Javayant NEW
Antonio R OstroskyCanadaIvan Magalhaes NEW
Isabel R DilliardArgentinaXuxue Feng RENEWAL
Smith U CampainIndiaStephen Shaw NEGOTIATION
Mujtaba T OstroskyBrazilXuxue Feng PROPOSAL
Rodrigues N PoquetteBrazilElwin Sharvill PROPOSAL
Murillo H GarufiJapanAmy Elsner NEGOTIATION
Misaki P GillianJapanAmy Elsner NEW
Jeanfrancois U RimGermanyXuxue Feng RENEWAL
Emily R PaprockiArgentinaStephen Shaw PROPOSAL
Juan O OstroskyArgentinaOnyama Limba NEGOTIATION
Costa C FerenczJapanAmy Elsner NEW
Faith S FigeroaJapanAnna Fali PROPOSAL
Leon E RulapaughItalyXuxue Feng QUALIFIED
Wickens Q NickaFranceXuxue Feng NEGOTIATION
Deepesh I ShinkoUnited KingdomAmy Elsner PROPOSAL
Alejandro G OldroydGermanyBernardo Dominic RENEWAL
Ashley H KolmetzSpainIoni Bowcher NEGOTIATION
Deepesh V TollnerCanadaAmy Elsner UNQUALIFIED
Juan D DoeSpainIoni Bowcher RENEWAL
David S PaprockiRussiaStephen Shaw NEW
Aika R MaletArgentinaAsiya Javayant PROPOSAL
Greenwood D StockhamJapanAnna Fali NEGOTIATION
Jones U GarufiIndiaIvan Magalhaes PROPOSAL
Octavia T RutaCanadaIvan Magalhaes UNQUALIFIED
Ashley Y StensethSpainOnyama Limba UNQUALIFIED
Kadeem Q PaprockiIndiaOnyama Limba NEW
Aditya X ShinkoItalyIoni Bowcher PROPOSAL
Chavez G GlickItalyBernardo Dominic RENEWAL
Nicolas R MaletItalyAnna Fali QUALIFIED
Kaitlin V PaprockiFranceStephen Shaw QUALIFIED
Greenwood L VocelkaRussiaXuxue Feng UNQUALIFIED
Izzy L SlusarskiGermanyAmy Elsner PROPOSAL
Juan S NickaBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy T GarufiIndiaIvan Magalhaes QUALIFIED
Silvio A RoysterArgentinaIoni Bowcher UNQUALIFIED
Faith N BologniaAustraliaOnyama Limba RENEWAL
Francesco P StensethArgentinaBernardo Dominic QUALIFIED
Jefferson V RulapaughBrazilAsiya Javayant RENEWAL
Kadeem I AlbaresFranceAsiya Javayant QUALIFIED
Rodrigues S ChuiCanadaIvan Magalhaes NEGOTIATION
Antonio H AmigonRussiaIvan Magalhaes NEGOTIATION
James S MarrierItalyStephen Shaw RENEWAL
Aruna N AlbaresAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro L VenereCanada2024-04-13Chanay, Jeffrey A Esq QUALIFIED80Xuxue Feng
1001David L MorascaAustralia2024-04-06Buckley Miller Wright QUALIFIED40Elwin Sharvill
1002Claire I SergiSpain2024-04-02Chanay, Jeffrey A Esq RENEWAL21Asiya Javayant
1003Smith D TollnerArgentina2024-04-03Commercial Press QUALIFIED69Elwin Sharvill
1004Leja P SergiUnited Kingdom2024-04-07Commercial Press NEGOTIATION53Anna Fali
1005Jennifer B DarakjyBrazil2024-04-03Feltz Printing Service QUALIFIED55Ioni Bowcher
1006Misaki V BriddickGermany2024-04-09Buckley Miller Wright UNQUALIFIED91Ioni Bowcher
1007Alejandro E FollerCanada2024-04-02Dorl, James J Esq QUALIFIED29Elwin Sharvill
1008Deepesh J KuskoBrazil2024-03-27Chapman, Ross E Esq RENEWAL51Ioni Bowcher
1009David Y FollerUnited Kingdom2024-04-08Chanay, Jeffrey A Esq NEGOTIATION7Stephen Shaw
1010Salvatore S RulapaughFrance2024-03-27Benton, John B Jr RENEWAL24Anna Fali
1011Juan A AmigonFrance2024-03-22Chemel, James L Cpa NEW73Elwin Sharvill
1012Morrow Y StockhamItaly2024-03-27Buckley Miller Wright PROPOSAL31Onyama Limba
1013Octavia M VocelkaAustralia2024-04-16Buckley Miller Wright RENEWAL98Amy Elsner
1014Greenwood Q PoquetteSpain2024-03-21Dorl, James J Esq UNQUALIFIED32Anna Fali
1015Jennifer R RutaRussia2024-03-23Dorl, James J Esq RENEWAL29Anna Fali
1016Deepesh D StockhamIndia2024-04-11Commercial Press RENEWAL11Elwin Sharvill
1017Emily F SaylorsBrazil2024-03-26Chemel, James L Cpa UNQUALIFIED34Ivan Magalhaes
1018Ashley Q OstroskyGermany2024-04-03Chemel, James L Cpa PROPOSAL54Stephen Shaw
1019Aruna R FollerFrance2024-04-02Truhlar And Truhlar Attys NEGOTIATION98Ioni Bowcher
1020Izzy M AlbaresIndia2024-04-16Morlong Associates NEW20Bernardo Dominic
1021James L FlosiItaly2024-03-23Dorl, James J Esq PROPOSAL75Ioni Bowcher
1022Stacey I BowleyRussia2024-03-30Printing Dimensions UNQUALIFIED69Stephen Shaw
1023Emily S SergiUnited Kingdom2024-04-16Printing Dimensions RENEWAL46Amy Elsner
1024Izzy F WieserFrance2024-03-28Printing Dimensions RENEWAL56Xuxue Feng
1025Aika Z BriddickRussia2024-04-13Feiner Bros NEGOTIATION51Elwin Sharvill
1026Johnson S ButtArgentina2024-03-29Chanay, Jeffrey A Esq PROPOSAL74Xuxue Feng
1027Aruna U CaldareraItaly2024-04-06Rousseaux, Michael Esq NEGOTIATION11Asiya Javayant
1028Aika O FerenczCanada2024-04-15Chapman, Ross E Esq QUALIFIED32Stephen Shaw
1029Rodrigues K MacleadItaly2024-04-14Feiner Bros NEGOTIATION14Asiya Javayant
1030Misaki K MarrierJapan2024-03-26Commercial Press NEGOTIATION59Ivan Magalhaes
1031Juan Z DarakjyCanada2024-04-04Chapman, Ross E Esq QUALIFIED96Xuxue Feng
1032Aruna D NickaAustralia2024-04-05Rousseaux, Michael Esq UNQUALIFIED93Anna Fali
1033Ivar L BriddickItaly2024-04-15Benton, John B Jr RENEWAL53Elwin Sharvill
1034Jennifer E FerenczItaly2024-04-14Buckley Miller Wright UNQUALIFIED89Stephen Shaw
1035Ricardo Y BowleyFrance2024-04-14Chapman, Ross E Esq NEW82Xuxue Feng
1036Octavia Q DilliardCanada2024-03-31Dorl, James J Esq QUALIFIED53Bernardo Dominic
1037Octavia W FerenczAustralia2024-04-03Printing Dimensions NEGOTIATION24Bernardo Dominic
1038Tony M SaylorsGermany2024-03-31Dorl, James J Esq PROPOSAL25Ivan Magalhaes
1039Smith K SaylorsAustralia2024-03-24Printing Dimensions NEGOTIATION90Bernardo Dominic
1040Cody V TollnerUnited Kingdom2024-04-02Rousseaux, Michael Esq QUALIFIED80Amy Elsner
1041Stacey W MorascaAustralia2024-04-01Rangoni Of Florence QUALIFIED87Bernardo Dominic
1042Jennifer A VocelkaFrance2024-04-02Buckley Miller Wright NEW54Asiya Javayant
1043Tony M NickaCanada2024-03-29Buckley Miller Wright PROPOSAL22Ioni Bowcher
1044Faith F RimRussia2024-03-30Feltz Printing Service PROPOSAL29Anna Fali
1045Mayumi P CampainJapan2024-03-24Feiner Bros UNQUALIFIED24Asiya Javayant
1046Deepesh B InouyeRussia2024-04-15Benton, John B Jr RENEWAL5Xuxue Feng
1047Smith G RimFrance2024-03-28Truhlar And Truhlar Attys QUALIFIED59Xuxue Feng
1048Antonio N OstroskyGermany2024-04-14Buckley Miller Wright PROPOSAL79Ioni Bowcher
1049Jennifer L InouyeBrazil2024-04-01Chemel, James L Cpa PROPOSAL82Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson W SergiItalyIoni Bowcher PROPOSAL
Faith Q FollerSpainElwin Sharvill QUALIFIED
Adams U GillianJapanIoni Bowcher NEW
Adams L SaylorsItalyXuxue Feng NEGOTIATION
Greenwood E FlosiBrazilElwin Sharvill RENEWAL
Maria G GlickIndiaBernardo Dominic UNQUALIFIED
Munro V StockhamCanadaStephen Shaw UNQUALIFIED
Maria M TollnerIndiaIoni Bowcher QUALIFIED
Ricardo T RoysterUnited KingdomBernardo Dominic RENEWAL
Alejandro Y ButtUnited KingdomStephen Shaw NEGOTIATION
Jones Y OstroskyFranceIoni Bowcher UNQUALIFIED
David K OldroydArgentinaAsiya Javayant PROPOSAL
Johnson U BriddickArgentinaStephen Shaw PROPOSAL
Wickens R FollerArgentinaOnyama Limba RENEWAL
Wickens P OstroskySpainXuxue Feng RENEWAL
Mayumi B OstroskySpainAmy Elsner NEW
Mujtaba T DoeGermanyBernardo Dominic QUALIFIED
Antonio X ShinkoJapanOnyama Limba PROPOSAL
Morrow R PerinBrazilAsiya Javayant RENEWAL
Juan D BriddickBrazilAsiya Javayant NEW
Leja M MarrierItalyStephen Shaw NEW
Munro G CampainRussiaAsiya Javayant PROPOSAL
Aditya Z RoysterSpainAnna Fali NEGOTIATION
Antonio Q PaprockiItalyElwin Sharvill PROPOSAL
Jennifer R CaldareraBrazilAmy Elsner PROPOSAL
Munro Z KolmetzBrazilAnna Fali UNQUALIFIED
Kadeem Q StensethGermanyStephen Shaw NEGOTIATION
Murillo F DoeUnited KingdomStephen Shaw UNQUALIFIED
Morrow V GauchoCanadaBernardo Dominic RENEWAL
Maria N AlbaresUnited KingdomAnna Fali NEW
Arvin L BologniaJapanElwin Sharvill UNQUALIFIED
Juan Y GauchoRussiaAsiya Javayant RENEWAL
Silvio A DoeSpainStephen Shaw RENEWAL
Tony B VocelkaAustraliaIvan Magalhaes NEW
Jefferson X NickaSpainAmy Elsner NEGOTIATION
Adams I ChuiGermanyAnna Fali PROPOSAL
James D SergiItalyOnyama Limba RENEWAL
Tony C RimAustraliaXuxue Feng NEGOTIATION
Clifford O DarakjyIndiaAmy Elsner PROPOSAL
Ivar B BologniaIndiaAmy Elsner NEGOTIATION
Tony U ButtFranceOnyama Limba QUALIFIED
Izzy L DoeJapanAmy Elsner QUALIFIED
Smith Q OstroskyJapanOnyama Limba NEGOTIATION
Jeanfrancois M WhobreyIndiaOnyama Limba RENEWAL
Jennifer E SlusarskiSpainXuxue Feng QUALIFIED
Wickens M VenereAustraliaOnyama Limba RENEWAL
Aika W RulapaughItalyIvan Magalhaes NEW
Aika V KolmetzCanadaStephen Shaw NEGOTIATION
Izzy N VocelkaGermanyElwin Sharvill NEW
Julie S NickaItalyAnna Fali QUALIFIED
Frozen Columns
Name
Izzy W Schemmer
Costa N Kusko
Maisha T Shinko
Leon I Bolognia
Mayumi Z Kolmetz
Arvin R Stockham
Emily S Butt
Cody G Doe
Rodrigues K Gaucho
Darci W Darakjy
Cody J Nicka
Izzy K Caudy
Jones H Briddick
Antonio J Glick
Kadeem M Butt
Juan B Poquette
Ricardo T Malet
Jones U Tollner
Leon C Caldarera
Silvio W Nestle
Cody A Kolmetz
James L Poquette
Munro S Inouye
Kaitlin M Garufi
Kadeem P Waycott
Deepesh J Nestle
Rodrigues K Ostrosky
Tony Q Nicka
Tony D Inouye
Greenwood D Venere
Chavez A Maclead
Sinclair O Malet
Misaki X Whobrey
Izzy G Sergi
Clifford M Waycott
Smith J Venere
Cody S Royster
Misaki R Bolognia
Aruna Q Caudy
Misaki R Albares
Munro W Perin
Octavia F Wieser
Tony L Nicka
Juan O Wieser
Izzy N Albares
Jennifer O Kusko
Leon Q Darakjy
Kadeem Y Rulapaugh
Wickens L Stockham
Alejandro O Waycott
IdCountryDate
1000Germany2024-04-18
1001Italy2024-04-17
1002Canada2024-04-01
1003Japan2024-03-22
1004Germany2024-03-28
1005Australia2024-04-17
1006Australia2024-04-17
1007Germany2024-04-09
1008Argentina2024-03-24
1009Japan2024-04-18
1010France2024-04-09
1011Argentina2024-03-22
1012United Kingdom2024-04-12
1013Canada2024-04-13
1014Brazil2024-04-06
1015Japan2024-04-14
1016France2024-03-21
1017France2024-04-01
1018Canada2024-04-01
1019Germany2024-04-08
1020Russia2024-04-14
1021United Kingdom2024-04-08
1022Canada2024-04-15
1023United Kingdom2024-04-06
1024Spain2024-03-28
1025France2024-04-04
1026Italy2024-04-09
1027Italy2024-03-28
1028Brazil2024-03-21
1029United Kingdom2024-03-27
1030Italy2024-04-10
1031United Kingdom2024-04-05
1032France2024-04-01
1033Spain2024-03-29
1034Brazil2024-03-29
1035Argentina2024-04-15
1036Brazil2024-04-05
1037Japan2024-04-14
1038Brazil2024-03-23
1039Japan2024-04-18
1040India2024-04-05
1041Italy2024-04-09
1042Australia2024-04-05
1043India2024-04-19
1044Canada2024-04-05
1045Russia2024-04-10
1046Australia2024-04-03
1047Canada2024-04-19
1048India2024-04-04
1049Brazil2024-04-15

On-Demand Data

NameIdCountryDate
Mujtaba J Amigon1000France2024-04-03
Salvatore A Stockham1001Brazil2024-04-16
James T Malet1002Japan2024-04-11
Aruna X Nestle1003Australia2024-04-13
Aditya P Venere1004Japan2024-03-29
Izzy H Caldarera1005Italy2024-04-18
Aruna U Slusarski1006United Kingdom2024-04-08
Misaki M Stockham1007France2024-04-11
Antonio F Ruta1008Argentina2024-04-11
Leon S Nestle1009Australia2024-03-27
Aditya G Stockham1010United Kingdom2024-04-01
Aruna Z Paprocki1011Japan2024-04-09
Tony B Bolognia1012Germany2024-04-12
Alejandro Q Bowley1013Japan2024-03-21
Chavez E Vocelka1014Italy2024-03-24
Johnson H Oldroyd1015Japan2024-04-15
Kaitlin H Malet1016France2024-03-31
Kadeem W Royster1017Japan2024-03-31
Aruna U Perin1018India2024-03-26
Morrow G Amigon1019United Kingdom2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens Q StensethBrazilIoni Bowcher RENEWAL
Mayumi F StensethIndiaAmy Elsner NEW
Cody F ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Stacey C FollerGermanyOnyama Limba NEGOTIATION
James X MorascaIndiaAnna Fali PROPOSAL
Emily N StockhamBrazilIoni Bowcher NEW
Johnson G KuskoJapanXuxue Feng RENEWAL
Octavia P MarrierSpainIoni Bowcher UNQUALIFIED
Isabel G SaylorsArgentinaAmy Elsner RENEWAL
Kadeem B OldroydBrazilOnyama Limba QUALIFIED
Murillo I FlosiAustraliaStephen Shaw NEW
Deepesh R NestleCanadaAsiya Javayant QUALIFIED
Claire A ButtBrazilElwin Sharvill UNQUALIFIED
Francesco E DoeUnited KingdomBernardo Dominic UNQUALIFIED
Leon R NickaRussiaOnyama Limba RENEWAL
Smith F BriddickGermanyAnna Fali NEGOTIATION
Costa Z StensethAustraliaIoni Bowcher QUALIFIED
Tony M MarrierIndiaStephen Shaw QUALIFIED
Faith A GlickRussiaAnna Fali NEW
Rodrigues U DoeJapanStephen Shaw PROPOSAL
Maria D FollerFranceBernardo Dominic NEGOTIATION
Ashley K ShinkoIndiaIvan Magalhaes RENEWAL
Stacey F WhobreyRussiaAnna Fali NEGOTIATION
Costa A MorascaBrazilXuxue Feng PROPOSAL
Leon G CaldareraSpainAmy Elsner NEW
Juan X FlosiCanadaIoni Bowcher QUALIFIED
Cody R DilliardGermanyStephen Shaw NEW
Kaitlin V FollerRussiaOnyama Limba PROPOSAL
Izzy Y WieserAustraliaBernardo Dominic QUALIFIED
David Q StockhamBrazilAsiya Javayant RENEWAL
Aika N FollerFranceOnyama Limba NEW
Leja G FollerUnited KingdomXuxue Feng RENEWAL
Ashley D GarufiItalyXuxue Feng RENEWAL
Leja K CaldareraItalyIoni Bowcher RENEWAL
Morrow I DilliardItalyAsiya Javayant UNQUALIFIED
Leja Q GillianRussiaAnna Fali NEW
Stacey W GarufiJapanIvan Magalhaes NEGOTIATION
Jones D InouyeGermanyStephen Shaw PROPOSAL
Clifford W MorascaSpainXuxue Feng UNQUALIFIED
Juan V ButtFranceOnyama 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>