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
Jones Q FigeroaCanadaAsiya Javayant NEW
Sinclair V StensethUnited KingdomOnyama Limba NEW
Claire T MaletAustraliaAsiya Javayant NEGOTIATION
Aditya H DarakjyBrazilAmy Elsner QUALIFIED
Isabel O NestleSpainXuxue Feng NEGOTIATION
Clifford H AmigonCanadaIoni Bowcher PROPOSAL
Greenwood F OstroskyRussiaIvan Magalhaes PROPOSAL
Nicolas P DilliardBrazilIoni Bowcher RENEWAL
Juan W SlusarskiRussiaXuxue Feng NEGOTIATION
David S BowleyItalyStephen Shaw NEW
Leon O GillianArgentinaOnyama Limba QUALIFIED
Juan Q ButtRussiaAsiya Javayant NEW
Munro F RutaBrazilStephen Shaw QUALIFIED
Kaitlin U CampainRussiaAsiya Javayant UNQUALIFIED
Isabel Y DarakjyCanadaXuxue Feng PROPOSAL
Faith Y VocelkaJapanStephen Shaw NEW
Ivar Y FigeroaUnited KingdomStephen Shaw QUALIFIED
Kadeem P SchemmerItalyIoni Bowcher QUALIFIED
Stacey G PerinAustraliaAmy Elsner RENEWAL
Munro Z NestleGermanyIoni Bowcher NEW
Sinclair J RutaRussiaAsiya Javayant NEW
Ricardo C MaletFranceBernardo Dominic NEW
Arvin J StockhamAustraliaAnna Fali NEW
Chavez O NickaIndiaXuxue Feng RENEWAL
Costa P BowleyCanadaOnyama Limba QUALIFIED
Juan N OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Maria W OstroskyUnited KingdomXuxue Feng NEGOTIATION
Aika Z PoquetteSpainOnyama Limba PROPOSAL
Greenwood M RoysterBrazilAnna Fali QUALIFIED
Alejandro Y GillianBrazilBernardo Dominic UNQUALIFIED
Costa Q FerenczBrazilXuxue Feng UNQUALIFIED
Mayumi Y PerinItalyBernardo Dominic NEW
Faith B CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Aditya T OstroskyItalyAnna Fali UNQUALIFIED
Juan X ShinkoJapanXuxue Feng NEGOTIATION
Kaitlin T ChuiJapanBernardo Dominic QUALIFIED
David H GarufiJapanElwin Sharvill UNQUALIFIED
Izzy W WieserAustraliaOnyama Limba NEW
Stacey P ButtJapanElwin Sharvill NEW
Morrow W TollnerUnited KingdomIoni Bowcher NEGOTIATION
Francesco S SchemmerItalyAnna Fali NEGOTIATION
Emily Q NestleSpainIvan Magalhaes QUALIFIED
Julie H MacleadGermanyIvan Magalhaes NEGOTIATION
Ricardo N PerinAustraliaBernardo Dominic PROPOSAL
Aruna Q BriddickJapanIoni Bowcher NEGOTIATION
Aruna L AlbaresFranceStephen Shaw QUALIFIED
Smith R FerenczBrazilXuxue Feng RENEWAL
Arvin X GauchoGermanyXuxue Feng PROPOSAL
Munro Z InouyeArgentinaOnyama Limba PROPOSAL
Cody A NestleItalyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Murillo O StockhamRussiaIvan Magalhaes UNQUALIFIED
Cody I FlosiSpainStephen Shaw NEW
David T GauchoFranceBernardo Dominic PROPOSAL
Maisha L GarufiRussiaXuxue Feng RENEWAL
Rodrigues X GlickFranceElwin Sharvill NEGOTIATION
Adams B VocelkaAustraliaIvan Magalhaes PROPOSAL
Faith Y ShinkoCanadaAnna Fali RENEWAL
Jones K VenereJapanIvan Magalhaes NEW
Murillo U StensethBrazilAmy Elsner NEGOTIATION
Julie G WhobreyJapanElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens Y VocelkaBrazil2024-04-06Benton, John B Jr RENEWAL39Anna Fali
1001Faith Q MaletSpain2024-04-23Morlong Associates RENEWAL52Asiya Javayant
1002Julie A DilliardFrance2024-04-01Rangoni Of Florence QUALIFIED52Amy Elsner
1003Costa N SaylorsCanada2024-04-14Morlong Associates QUALIFIED96Asiya Javayant
1004Munro E SergiUnited Kingdom2024-04-14Benton, John B Jr NEW10Ivan Magalhaes
1005Greenwood L DilliardAustralia2024-04-20Chapman, Ross E Esq NEGOTIATION80Anna Fali
1006Mayumi F RoysterSpain2024-04-18Rousseaux, Michael Esq NEGOTIATION42Elwin Sharvill
1007Sinclair E RimGermany2024-04-10Feiner Bros NEW4Amy Elsner
1008Ivar Y BologniaItaly2024-04-10Buckley Miller Wright QUALIFIED86Bernardo Dominic
1009Francesco E FerenczIndia2024-03-27Chapman, Ross E Esq UNQUALIFIED0Anna Fali
1010Emily H OstroskyRussia2024-04-04Rousseaux, Michael Esq PROPOSAL58Anna Fali
1011James E GauchoJapan2024-04-17Feiner Bros NEGOTIATION34Amy Elsner
1012Octavia D CaudyCanada2024-04-21Rangoni Of Florence NEW42Bernardo Dominic
1013Rodrigues E MorascaRussia2024-04-18Rangoni Of Florence UNQUALIFIED41Ioni Bowcher
1014Alejandro F SlusarskiAustralia2024-04-11Benton, John B Jr PROPOSAL21Anna Fali
1015Stacey D MorascaUnited Kingdom2024-04-07Chemel, James L Cpa RENEWAL89Ivan Magalhaes
1016Aruna H CaldareraJapan2024-04-02Benton, John B Jr UNQUALIFIED56Bernardo Dominic
1017Sinclair O ShinkoGermany2024-04-10Feltz Printing Service RENEWAL96Stephen Shaw
1018Darci N IturbideGermany2024-04-08Commercial Press PROPOSAL90Amy Elsner
1019Alejandro A CampainSpain2024-04-18Rousseaux, Michael Esq RENEWAL28Ivan Magalhaes
1020Ricardo U FlosiRussia2024-04-06Printing Dimensions UNQUALIFIED81Anna Fali
1021Leja O VocelkaRussia2024-04-13Dorl, James J Esq QUALIFIED24Xuxue Feng
1022Rodrigues K CampainFrance2024-04-16Chapman, Ross E Esq QUALIFIED71Amy Elsner
1023Kadeem X DarakjyGermany2024-04-02King, Christopher A Esq NEW76Stephen Shaw
1024Ashley H AlbaresItaly2024-04-19Chanay, Jeffrey A Esq RENEWAL87Xuxue Feng
1025Izzy F ShinkoGermany2024-04-10Rousseaux, Michael Esq QUALIFIED74Ivan Magalhaes
1026Chavez D VocelkaIndia2024-04-10Chemel, James L Cpa PROPOSAL15Xuxue Feng
1027Claire E FollerJapan2024-04-15Benton, John B Jr NEW23Amy Elsner
1028Cody R AmigonArgentina2024-04-01Morlong Associates NEGOTIATION71Bernardo Dominic
1029Adams F ShinkoGermany2024-04-07Printing Dimensions UNQUALIFIED34Amy Elsner
1030Tony F KuskoFrance2024-04-22Rousseaux, Michael Esq RENEWAL62Bernardo Dominic
1031Darci M VenereUnited Kingdom2024-04-22Benton, John B Jr QUALIFIED88Bernardo Dominic
1032Octavia A InouyeArgentina2024-04-11Rousseaux, Michael Esq NEGOTIATION3Stephen Shaw
1033Mujtaba Q BowleyCanada2024-04-03Chemel, James L Cpa QUALIFIED95Asiya Javayant
1034Tony F VenereIndia2024-04-18Rousseaux, Michael Esq NEW71Ioni Bowcher
1035Alejandro U InouyeJapan2024-04-22Commercial Press NEGOTIATION41Bernardo Dominic
1036Greenwood U ChuiItaly2024-04-04Truhlar And Truhlar Attys QUALIFIED90Bernardo Dominic
1037Morrow L FlosiAustralia2024-04-15Chanay, Jeffrey A Esq PROPOSAL97Xuxue Feng
1038Jones S CaudyUnited Kingdom2024-04-04Chapman, Ross E Esq NEW39Ioni Bowcher
1039Mujtaba B BriddickUnited Kingdom2024-03-25Truhlar And Truhlar Attys PROPOSAL54Asiya Javayant
1040Ivar J VocelkaUnited Kingdom2024-03-30Printing Dimensions QUALIFIED15Stephen Shaw
1041Salvatore R CaudyGermany2024-04-19Chemel, James L Cpa NEGOTIATION4Stephen Shaw
1042Leon U AmigonFrance2024-04-06Chemel, James L Cpa UNQUALIFIED89Stephen Shaw
1043Antonio C SergiGermany2024-04-06Chanay, Jeffrey A Esq QUALIFIED52Xuxue Feng
1044Morrow Y CaudyArgentina2024-03-28Printing Dimensions UNQUALIFIED31Stephen Shaw
1045Isabel Z GlickUnited Kingdom2024-04-21Truhlar And Truhlar Attys UNQUALIFIED40Amy Elsner
1046Izzy D RutaIndia2024-04-09Feiner Bros RENEWAL57Stephen Shaw
1047Darci X FollerIndia2024-04-12Printing Dimensions PROPOSAL26Elwin Sharvill
1048Isabel L SergiUnited Kingdom2024-04-09Chanay, Jeffrey A Esq NEW64Elwin Sharvill
1049Aditya B StockhamJapan2024-04-09Buckley Miller Wright QUALIFIED3Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams T OldroydCanadaIvan Magalhaes PROPOSAL
David B VenereItalyStephen Shaw NEW
James W NestleAustraliaXuxue Feng UNQUALIFIED
Clifford G PoquetteItalyAsiya Javayant NEGOTIATION
Mujtaba P PaprockiArgentinaIoni Bowcher RENEWAL
James W StensethIndiaXuxue Feng QUALIFIED
Jennifer Y RimCanadaElwin Sharvill NEW
Wickens W BologniaUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba F InouyeUnited KingdomIvan Magalhaes NEW
Murillo I GauchoArgentinaIoni Bowcher NEGOTIATION
Francesco Z ChuiRussiaXuxue Feng PROPOSAL
Mujtaba D RutaBrazilAsiya Javayant RENEWAL
Greenwood Q BowleyJapanAsiya Javayant NEW
Cody M SergiRussiaXuxue Feng RENEWAL
Adams F InouyeSpainAsiya Javayant PROPOSAL
Jennifer M VocelkaGermanyElwin Sharvill UNQUALIFIED
Emily J GillianJapanOnyama Limba NEGOTIATION
Izzy R AmigonSpainElwin Sharvill NEW
Faith I StockhamIndiaBernardo Dominic PROPOSAL
Nicolas C FlosiRussiaAmy Elsner PROPOSAL
Greenwood U WieserFranceXuxue Feng NEW
Chavez D GillianFranceAmy Elsner RENEWAL
Jennifer Q GauchoRussiaAmy Elsner NEGOTIATION
Ashley Y RoysterJapanBernardo Dominic NEGOTIATION
Kadeem M FollerItalyIvan Magalhaes NEW
Jeanfrancois P WieserFranceBernardo Dominic RENEWAL
Claire L MorascaUnited KingdomIoni Bowcher NEW
Sinclair T DarakjyIndiaElwin Sharvill QUALIFIED
Ashley Z KuskoCanadaOnyama Limba UNQUALIFIED
Jefferson A IturbideFranceStephen Shaw UNQUALIFIED
Wickens D StensethFranceElwin Sharvill QUALIFIED
Antonio U PerinUnited KingdomAmy Elsner NEW
Cody F OstroskyIndiaAnna Fali QUALIFIED
Isabel V KuskoBrazilAsiya Javayant RENEWAL
Faith U FigeroaGermanyOnyama Limba NEGOTIATION
Deepesh J VocelkaIndiaOnyama Limba NEGOTIATION
Julie O SaylorsRussiaBernardo Dominic UNQUALIFIED
Clifford C AlbaresItalyOnyama Limba QUALIFIED
David N MarrierRussiaElwin Sharvill NEW
Ricardo M GarufiAustraliaXuxue Feng RENEWAL
Leja A SergiArgentinaStephen Shaw NEGOTIATION
Tony L AmigonArgentinaAnna Fali NEGOTIATION
Darci D FollerIndiaAmy Elsner RENEWAL
Antonio Y FollerJapanAmy Elsner QUALIFIED
Rodrigues R DarakjyUnited KingdomBernardo Dominic NEW
Morrow U BriddickJapanAmy Elsner RENEWAL
Antonio G WieserSpainBernardo Dominic QUALIFIED
Clifford D FerenczItalyBernardo Dominic QUALIFIED
Jefferson V FerenczItalyIoni Bowcher RENEWAL
Faith R CaldareraRussiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Sinclair O Stockham
Maisha U Malet
Faith D Dilliard
Arvin N Rim
Izzy H Shinko
Aika H Nicka
Darci K Iturbide
Stacey M Butt
Jones J Ostrosky
Cody F Kusko
Munro N Bowley
Ricardo F Ruta
Johnson J Maclead
David O Waycott
Izzy U Shinko
Faith V Saylors
Adams K Rulapaugh
Ricardo V Perin
Jeanfrancois Y Nestle
Izzy C Gaucho
Nicolas I Morasca
Mujtaba W Dilliard
Mujtaba R Morasca
Ricardo R Doe
Izzy X Briddick
Antonio Q Bolognia
Sinclair Y Gillian
Maria V Malet
Juan O Sergi
Salvatore K Slusarski
Kaitlin T Bolognia
Aika P Stockham
Leon R Caudy
Tony U Caldarera
Claire H Glick
David H Whobrey
Faith S Kusko
Morrow Q Campain
Greenwood J Caudy
Julie O Whobrey
Aruna E Dilliard
Ashley T Poquette
David N Caudy
Arvin U Whobrey
Darci B Doe
Salvatore Y Paprocki
Alejandro O Tollner
Aditya H Stockham
Aditya X Foller
Greenwood E Malet
IdCountryDate
1000Australia2024-04-23
1001Australia2024-03-25
1002Argentina2024-04-20
1003Germany2024-03-29
1004Argentina2024-04-11
1005United Kingdom2024-04-05
1006Canada2024-04-08
1007Argentina2024-04-22
1008Argentina2024-04-22
1009Germany2024-04-16
1010Japan2024-04-18
1011Canada2024-03-29
1012France2024-03-31
1013Canada2024-04-06
1014Russia2024-04-01
1015Australia2024-04-20
1016Brazil2024-03-29
1017India2024-04-04
1018Australia2024-04-03
1019India2024-04-21
1020Russia2024-04-20
1021Spain2024-04-03
1022Canada2024-03-29
1023Germany2024-04-03
1024Australia2024-03-27
1025Argentina2024-04-20
1026Argentina2024-04-03
1027Japan2024-03-25
1028Germany2024-04-15
1029United Kingdom2024-04-05
1030Argentina2024-04-20
1031Australia2024-04-12
1032France2024-04-15
1033Japan2024-03-31
1034France2024-04-04
1035Australia2024-04-07
1036Argentina2024-04-15
1037France2024-04-11
1038Italy2024-03-26
1039Russia2024-04-16
1040Russia2024-04-21
1041Italy2024-04-07
1042Italy2024-04-07
1043Argentina2024-03-27
1044Australia2024-04-13
1045Japan2024-04-21
1046Argentina2024-04-13
1047Brazil2024-04-16
1048Italy2024-04-20
1049Russia2024-03-28

On-Demand Data

NameIdCountryDate
Munro N Malet1000India2024-04-09
Cody V Whobrey1001France2024-04-16
Arvin I Flosi1002Italy2024-03-25
Alejandro K Stenseth1003Argentina2024-04-23
Faith K Sergi1004Argentina2024-04-07
Aruna X Bolognia1005Spain2024-03-28
Deepesh Y Amigon1006India2024-04-19
Cody X Sergi1007Italy2024-04-17
Maria F Campain1008Canada2024-04-23
Julie Z Butt1009Australia2024-04-07
Leon F Stockham1010Canada2024-04-01
Nicolas K Inouye1011Germany2024-04-13
Silvio A Amigon1012Japan2024-04-08
Morrow W Vocelka1013Spain2024-04-14
Deepesh L Iturbide1014Italy2024-04-02
Jones B Iturbide1015Australia2024-04-03
Silvio U Saylors1016Brazil2024-04-04
Darci Q Shinko1017United Kingdom2024-04-17
Silvio F Whobrey1018India2024-04-15
Izzy P Sergi1019Russia2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha H PoquetteIndiaXuxue Feng PROPOSAL
Aruna V DoeGermanyIvan Magalhaes PROPOSAL
Darci H OldroydUnited KingdomXuxue Feng QUALIFIED
Deepesh D ShinkoIndiaAnna Fali NEW
Costa L BowleyJapanAsiya Javayant QUALIFIED
Ricardo Q SchemmerItalyXuxue Feng QUALIFIED
Johnson L WaycottArgentinaAsiya Javayant RENEWAL
Sinclair W MorascaAustraliaElwin Sharvill NEW
Octavia P GarufiAustraliaIvan Magalhaes RENEWAL
Leon I KolmetzBrazilIoni Bowcher UNQUALIFIED
Isabel G PoquetteUnited KingdomIoni Bowcher QUALIFIED
Jefferson U BriddickJapanOnyama Limba NEGOTIATION
Arvin T WhobreyItalyBernardo Dominic RENEWAL
Salvatore S CaldareraAustraliaIoni Bowcher NEW
Mujtaba R PaprockiUnited KingdomStephen Shaw RENEWAL
Arvin W PoquetteBrazilIoni Bowcher RENEWAL
Ashley V SaylorsIndiaXuxue Feng NEGOTIATION
Claire Z SaylorsItalyIoni Bowcher RENEWAL
Johnson G PaprockiArgentinaAsiya Javayant RENEWAL
Maisha I FollerAustraliaStephen Shaw RENEWAL
Juan M VocelkaUnited KingdomBernardo Dominic QUALIFIED
Arvin X FerenczCanadaStephen Shaw NEW
Arvin I MaletUnited KingdomStephen Shaw UNQUALIFIED
Aika X BologniaItalyAnna Fali PROPOSAL
Stacey Y MacleadSpainOnyama Limba RENEWAL
Deepesh J PoquetteIndiaStephen Shaw NEW
Mujtaba G CampainJapanAnna Fali NEW
Jeanfrancois M SaylorsUnited KingdomAnna Fali QUALIFIED
Leja W AmigonSpainAnna Fali NEW
Murillo A ChuiJapanAnna Fali QUALIFIED
Mujtaba E RulapaughIndiaOnyama Limba QUALIFIED
Darci K RimArgentinaAsiya Javayant NEW
Ricardo G WhobreyArgentinaAnna Fali RENEWAL
Maisha D FerenczIndiaOnyama Limba RENEWAL
Kadeem Y RoysterJapanAsiya Javayant RENEWAL
Julie F DilliardJapanXuxue Feng PROPOSAL
Julie X MorascaFranceXuxue Feng UNQUALIFIED
Darci I ButtGermanyAsiya Javayant RENEWAL
Kadeem U VenereBrazilElwin Sharvill UNQUALIFIED
Costa C InouyeUnited KingdomBernardo Dominic 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>