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
Alejandro P KolmetzJapanXuxue Feng RENEWAL
Deepesh W DilliardFranceAnna Fali RENEWAL
Maisha A SaylorsFranceAmy Elsner NEW
David E GauchoIndiaXuxue Feng QUALIFIED
Francesco Z IturbideBrazilElwin Sharvill UNQUALIFIED
Faith W CaldareraAustraliaBernardo Dominic NEW
Ricardo R MaletItalyElwin Sharvill NEW
Faith T MaletCanadaIvan Magalhaes RENEWAL
Adams M InouyeJapanAmy Elsner UNQUALIFIED
Murillo P BriddickJapanBernardo Dominic QUALIFIED
Wickens A CaldareraSpainStephen Shaw RENEWAL
Costa M OstroskyAustraliaXuxue Feng PROPOSAL
Darci W RulapaughUnited KingdomXuxue Feng RENEWAL
Maria Y AlbaresJapanIoni Bowcher PROPOSAL
David O CaudyGermanyBernardo Dominic NEGOTIATION
Arvin T AlbaresIndiaElwin Sharvill QUALIFIED
Deepesh B MacleadRussiaOnyama Limba RENEWAL
Maisha U NestleGermanyIoni Bowcher NEGOTIATION
Greenwood F FigeroaAustraliaBernardo Dominic QUALIFIED
Wickens H FlosiCanadaOnyama Limba RENEWAL
Wickens O RoysterCanadaStephen Shaw QUALIFIED
Ivar L MorascaFranceAsiya Javayant NEW
Darci C BriddickAustraliaIoni Bowcher UNQUALIFIED
Smith U GauchoIndiaIoni Bowcher NEGOTIATION
Kadeem V AlbaresArgentinaIvan Magalhaes QUALIFIED
Rodrigues Y DilliardItalyOnyama Limba NEW
Clifford F NestleAustraliaOnyama Limba NEW
Faith G MacleadCanadaAnna Fali PROPOSAL
Munro D NickaUnited KingdomBernardo Dominic NEGOTIATION
Maisha W SergiArgentinaIvan Magalhaes UNQUALIFIED
Costa A MorascaArgentinaAsiya Javayant UNQUALIFIED
Kadeem C OstroskyIndiaStephen Shaw NEGOTIATION
Juan Z MorascaItalyXuxue Feng UNQUALIFIED
Isabel P CaldareraArgentinaAmy Elsner PROPOSAL
Salvatore X FollerJapanXuxue Feng NEW
Maria H InouyeGermanyAnna Fali RENEWAL
Francesco P RoysterRussiaElwin Sharvill NEW
Aruna P MarrierUnited KingdomBernardo Dominic QUALIFIED
Claire T StensethAustraliaAnna Fali RENEWAL
Salvatore C ShinkoIndiaXuxue Feng RENEWAL
Costa E VenereSpainAmy Elsner RENEWAL
Juan S MarrierItalyAnna Fali QUALIFIED
Isabel W DarakjyBrazilAmy Elsner RENEWAL
Nicolas E MacleadGermanyElwin Sharvill UNQUALIFIED
Aruna F ButtBrazilIoni Bowcher NEGOTIATION
Ivar O WhobreyFranceStephen Shaw QUALIFIED
Kaitlin Y WhobreyIndiaOnyama Limba RENEWAL
Morrow K MaletItalyAnna Fali NEGOTIATION
Francesco T OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Tony B BologniaGermanyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
David W CaudyJapanElwin Sharvill QUALIFIED
Arvin J FlosiJapanElwin Sharvill QUALIFIED
Octavia E RutaBrazilIvan Magalhaes QUALIFIED
Mujtaba I OstroskyIndiaXuxue Feng RENEWAL
Emily S FigeroaRussiaXuxue Feng RENEWAL
Mayumi N RutaFranceAnna Fali NEW
Emily R RoysterJapanStephen Shaw RENEWAL
Francesco R ChuiArgentinaIvan Magalhaes RENEWAL
Arvin S VenereIndiaAnna Fali RENEWAL
Stacey Y StensethArgentinaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro S AmigonJapan2024-05-02Buckley Miller Wright NEW89Ivan Magalhaes
1001Leja Y RimCanada2024-05-08Buckley Miller Wright UNQUALIFIED56Asiya Javayant
1002Misaki T FollerRussia2024-05-04Commercial Press QUALIFIED77Asiya Javayant
1003Jeanfrancois N NestleGermany2024-04-20Feltz Printing Service NEGOTIATION97Ioni Bowcher
1004Wickens J VenereGermany2024-04-27King, Christopher A Esq QUALIFIED29Stephen Shaw
1005Izzy H CaudyItaly2024-04-16Dorl, James J Esq RENEWAL90Xuxue Feng
1006Sinclair B OstroskyAustralia2024-04-30Benton, John B Jr RENEWAL16Onyama Limba
1007Maisha X FlosiCanada2024-05-05Chemel, James L Cpa NEGOTIATION66Stephen Shaw
1008Aruna A PaprockiIndia2024-04-11Benton, John B Jr UNQUALIFIED7Elwin Sharvill
1009Leon G GlickAustralia2024-04-22Morlong Associates NEGOTIATION71Bernardo Dominic
1010Claire W WhobreyAustralia2024-04-12Chapman, Ross E Esq RENEWAL33Xuxue Feng
1011Clifford M WaycottArgentina2024-04-18Printing Dimensions QUALIFIED18Elwin Sharvill
1012Maria J WhobreyGermany2024-04-29Truhlar And Truhlar Attys QUALIFIED9Ivan Magalhaes
1013Smith G WhobreyJapan2024-05-10King, Christopher A Esq PROPOSAL43Anna Fali
1014Chavez V OstroskyAustralia2024-05-06Truhlar And Truhlar Attys QUALIFIED17Asiya Javayant
1015Johnson X SergiArgentina2024-04-11Feiner Bros UNQUALIFIED4Ivan Magalhaes
1016Mujtaba L WieserRussia2024-04-12Commercial Press PROPOSAL92Onyama Limba
1017Izzy U BriddickJapan2024-04-21Dorl, James J Esq RENEWAL50Xuxue Feng
1018Izzy W DoeItaly2024-04-16Feiner Bros NEGOTIATION5Anna Fali
1019Julie B StensethFrance2024-04-11Chanay, Jeffrey A Esq QUALIFIED56Anna Fali
1020Jeanfrancois M PaprockiCanada2024-04-16Benton, John B Jr UNQUALIFIED48Amy Elsner
1021Mayumi J IturbideJapan2024-04-30Feiner Bros PROPOSAL88Bernardo Dominic
1022Claire T ButtItaly2024-05-05Benton, John B Jr PROPOSAL21Stephen Shaw
1023Alejandro U PoquetteSpain2024-04-23Morlong Associates NEGOTIATION26Asiya Javayant
1024Smith U IturbideJapan2024-04-27Printing Dimensions QUALIFIED49Bernardo Dominic
1025Adams V MacleadAustralia2024-04-23Printing Dimensions NEW22Onyama Limba
1026Sinclair N BowleyBrazil2024-04-22Benton, John B Jr NEW82Ioni Bowcher
1027Ricardo X RutaFrance2024-05-04Chapman, Ross E Esq UNQUALIFIED10Elwin Sharvill
1028Mayumi P WhobreyBrazil2024-05-01Chapman, Ross E Esq NEW98Onyama Limba
1029Darci Q AmigonSpain2024-04-28Benton, John B Jr PROPOSAL33Amy Elsner
1030Darci C MaletAustralia2024-05-09Morlong Associates RENEWAL34Ivan Magalhaes
1031Julie J RimBrazil2024-04-27Buckley Miller Wright RENEWAL47Amy Elsner
1032Costa P FerenczGermany2024-04-16Buckley Miller Wright UNQUALIFIED24Asiya Javayant
1033Isabel A NickaUnited Kingdom2024-05-09Dorl, James J Esq RENEWAL66Bernardo Dominic
1034Leja I WaycottIndia2024-05-08Benton, John B Jr UNQUALIFIED58Onyama Limba
1035Antonio O ShinkoItaly2024-05-08Rangoni Of Florence NEW61Stephen Shaw
1036Silvio S RutaAustralia2024-05-01King, Christopher A Esq NEW82Elwin Sharvill
1037Silvio B MorascaRussia2024-04-15Chanay, Jeffrey A Esq PROPOSAL16Anna Fali
1038Ivar W DilliardSpain2024-04-16Feltz Printing Service UNQUALIFIED33Asiya Javayant
1039Izzy S FlosiUnited Kingdom2024-05-08Truhlar And Truhlar Attys NEGOTIATION7Amy Elsner
1040Murillo T GarufiAustralia2024-04-16Dorl, James J Esq NEW35Onyama Limba
1041Darci X MorascaArgentina2024-05-10Feltz Printing Service NEW68Elwin Sharvill
1042Ricardo C KuskoSpain2024-04-15Chemel, James L Cpa RENEWAL41Stephen Shaw
1043Jennifer W PaprockiSpain2024-04-19Rangoni Of Florence RENEWAL56Ivan Magalhaes
1044Jefferson I WhobreyGermany2024-05-09Rousseaux, Michael Esq UNQUALIFIED14Onyama Limba
1045Costa R TollnerUnited Kingdom2024-04-11Chapman, Ross E Esq RENEWAL60Amy Elsner
1046Ivar B FigeroaUnited Kingdom2024-04-29Rangoni Of Florence NEW86Asiya Javayant
1047David U RulapaughUnited Kingdom2024-05-04King, Christopher A Esq UNQUALIFIED58Xuxue Feng
1048Morrow G RoysterAustralia2024-05-04Rangoni Of Florence QUALIFIED92Amy Elsner
1049Kaitlin D OldroydCanada2024-05-04Benton, John B Jr QUALIFIED94Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Cody H DoeBrazilIoni Bowcher RENEWAL
Sinclair N CaldareraFranceAnna Fali QUALIFIED
Mujtaba J PerinGermanyAnna Fali RENEWAL
Kaitlin G RimUnited KingdomOnyama Limba QUALIFIED
Deepesh P VenereJapanOnyama Limba RENEWAL
Johnson V DarakjyArgentinaXuxue Feng PROPOSAL
David O FigeroaSpainAnna Fali UNQUALIFIED
Claire X GauchoArgentinaAnna Fali NEGOTIATION
Rodrigues Z RimRussiaStephen Shaw NEGOTIATION
Murillo M StockhamFranceAmy Elsner RENEWAL
Juan N MaletRussiaBernardo Dominic RENEWAL
Jennifer I InouyeItalyOnyama Limba PROPOSAL
Jones Q RimRussiaXuxue Feng NEGOTIATION
Murillo Z MaletUnited KingdomAsiya Javayant UNQUALIFIED
Emily L MaletIndiaBernardo Dominic QUALIFIED
Murillo Z WhobreyIndiaXuxue Feng PROPOSAL
Cody Z VenereJapanElwin Sharvill UNQUALIFIED
Jennifer H OstroskyCanadaAmy Elsner PROPOSAL
Mayumi Q RimJapanBernardo Dominic NEW
Emily L RimAustraliaXuxue Feng QUALIFIED
Kaitlin E MaletGermanyElwin Sharvill RENEWAL
Costa A OldroydItalyAmy Elsner QUALIFIED
Alejandro I AmigonItalyBernardo Dominic PROPOSAL
Sinclair H RulapaughGermanyAmy Elsner NEGOTIATION
Isabel D WhobreySpainOnyama Limba QUALIFIED
Costa P AmigonGermanyXuxue Feng PROPOSAL
Mayumi U FollerBrazilAsiya Javayant UNQUALIFIED
Silvio J IturbideCanadaStephen Shaw PROPOSAL
Clifford O SlusarskiSpainIoni Bowcher NEGOTIATION
Antonio E VenereUnited KingdomStephen Shaw NEW
Adams D FerenczFranceAsiya Javayant PROPOSAL
Silvio I FollerGermanyOnyama Limba UNQUALIFIED
Leon C DarakjyIndiaBernardo Dominic RENEWAL
Deepesh J KolmetzSpainAsiya Javayant PROPOSAL
Jones B FlosiCanadaIoni Bowcher RENEWAL
Nicolas H PoquetteFranceBernardo Dominic PROPOSAL
Stacey O CampainGermanyIoni Bowcher UNQUALIFIED
Alejandro I GillianBrazilBernardo Dominic RENEWAL
Stacey O BowleyFranceAmy Elsner PROPOSAL
Misaki Z CaudyRussiaOnyama Limba UNQUALIFIED
Leon Q RoysterArgentinaAnna Fali RENEWAL
Deepesh P FollerJapanIvan Magalhaes PROPOSAL
Darci T StockhamIndiaOnyama Limba UNQUALIFIED
Isabel P ButtBrazilXuxue Feng NEGOTIATION
Juan W FlosiJapanAmy Elsner QUALIFIED
Jennifer F SergiCanadaAsiya Javayant UNQUALIFIED
Misaki N BowleyItalyStephen Shaw NEW
Claire F PerinJapanElwin Sharvill UNQUALIFIED
Morrow R FigeroaItalyIoni Bowcher PROPOSAL
Wickens A NestleIndiaStephen Shaw PROPOSAL
Frozen Columns
Name
Salvatore O Schemmer
Clifford W Slusarski
Greenwood O Marrier
Jennifer O Amigon
Maria W Rim
Aruna A Slusarski
Ricardo Y Perin
Maisha Y Perin
Jeanfrancois V Figeroa
Tony H Nicka
Rodrigues D Morasca
Arvin W Caudy
Munro M Chui
Maisha Z Iturbide
Stacey G Royster
Francesco C Ostrosky
Munro S Chui
Jennifer M Dilliard
Clifford D Maclead
Greenwood I Rim
Wickens Z Ferencz
Julie Z Morasca
Adams C Amigon
Clifford G Ruta
Greenwood O Caudy
Silvio J Perin
Julie Z Paprocki
Leon G Campain
Rodrigues E Garufi
Jennifer L Caldarera
Aditya P Maclead
Cody V Ferencz
Darci A Perin
Misaki O Paprocki
Julie U Stenseth
Misaki X Stockham
Aruna W Kusko
Arvin P Chui
Ivar F Darakjy
Misaki P Stockham
Octavia N Rim
Sinclair D Gillian
Octavia V Ruta
Ivar K Garufi
Silvio U Kolmetz
Jones D Chui
Leon B Oldroyd
Claire K Tollner
Leja M Venere
Jefferson T Rim
IdCountryDate
1000Russia2024-04-20
1001India2024-04-16
1002France2024-04-26
1003Italy2024-05-04
1004France2024-04-29
1005Spain2024-04-14
1006Italy2024-04-14
1007Japan2024-05-07
1008Italy2024-05-02
1009Spain2024-04-23
1010Germany2024-04-21
1011United Kingdom2024-04-26
1012Brazil2024-04-24
1013Germany2024-05-09
1014Brazil2024-04-18
1015United Kingdom2024-04-13
1016United Kingdom2024-04-17
1017Germany2024-04-17
1018Spain2024-05-09
1019Spain2024-04-13
1020Spain2024-05-07
1021Italy2024-04-26
1022Japan2024-05-06
1023Australia2024-05-05
1024Spain2024-04-21
1025Spain2024-04-15
1026Canada2024-04-14
1027Russia2024-04-28
1028Spain2024-05-08
1029United Kingdom2024-04-27
1030Canada2024-04-25
1031India2024-05-05
1032Australia2024-04-27
1033Japan2024-05-05
1034France2024-05-03
1035Spain2024-04-11
1036Brazil2024-05-07
1037Australia2024-04-18
1038Spain2024-04-18
1039Italy2024-04-29
1040Russia2024-04-16
1041Japan2024-04-20
1042Argentina2024-04-14
1043Spain2024-04-25
1044Australia2024-04-25
1045Brazil2024-05-07
1046Germany2024-05-03
1047Brazil2024-04-16
1048Canada2024-05-07
1049France2024-04-15

On-Demand Data

NameIdCountryDate
Jefferson X Nestle1000Russia2024-04-30
Salvatore M Vocelka1001Australia2024-04-28
Juan W Butt1002Japan2024-04-19
Costa C Butt1003United Kingdom2024-04-13
Deepesh V Nestle1004Spain2024-05-09
Misaki P Figeroa1005Japan2024-04-16
Emily T Oldroyd1006Japan2024-04-14
Ashley A Stenseth1007Argentina2024-05-08
Juan Z Briddick1008France2024-05-04
Arvin K Iturbide1009Canada2024-04-20
Isabel P Slusarski1010France2024-04-17
Izzy B Doe1011Argentina2024-04-17
Juan O Malet1012India2024-04-25
Adams C Garufi1013France2024-04-20
Izzy Y Gillian1014Germany2024-05-10
Clifford X Gillian1015Germany2024-04-18
Kaitlin F Caldarera1016Australia2024-05-06
Nicolas S Gillian1017Canada2024-04-16
Sinclair I Caudy1018India2024-05-08
Ashley E Briddick1019Japan2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer R IturbideAustraliaAmy Elsner UNQUALIFIED
Faith M CaudyJapanXuxue Feng PROPOSAL
Francesco O RoysterFranceElwin Sharvill RENEWAL
Francesco Z MaletBrazilStephen Shaw UNQUALIFIED
Izzy Y KuskoJapanBernardo Dominic PROPOSAL
Julie O NestleArgentinaAsiya Javayant QUALIFIED
Antonio A VenereCanadaStephen Shaw QUALIFIED
Jeanfrancois W ShinkoItalyStephen Shaw NEGOTIATION
Aditya D NickaArgentinaIoni Bowcher QUALIFIED
Izzy O GillianFranceAsiya Javayant UNQUALIFIED
Ivar S ShinkoSpainIoni Bowcher NEW
James O PerinRussiaIoni Bowcher RENEWAL
Juan L PoquetteItalyAsiya Javayant PROPOSAL
Faith F RimSpainOnyama Limba RENEWAL
Tony U AlbaresFranceElwin Sharvill NEGOTIATION
James Q FlosiArgentinaBernardo Dominic UNQUALIFIED
Deepesh Y SaylorsSpainOnyama Limba QUALIFIED
Morrow T SchemmerItalyAmy Elsner NEW
Wickens L FollerJapanAsiya Javayant NEW
Clifford B InouyeArgentinaAnna Fali NEW
David G RutaAustraliaXuxue Feng NEGOTIATION
Salvatore R AlbaresRussiaStephen Shaw PROPOSAL
Nicolas O ButtSpainElwin Sharvill NEW
Faith B BologniaAustraliaIoni Bowcher QUALIFIED
James G ChuiRussiaStephen Shaw RENEWAL
Claire X SergiAustraliaOnyama Limba RENEWAL
Cody M MacleadItalyIoni Bowcher RENEWAL
Clifford R DilliardJapanElwin Sharvill PROPOSAL
Munro B TollnerCanadaOnyama Limba PROPOSAL
Cody R GarufiCanadaAsiya Javayant NEGOTIATION
Costa W FlosiGermanyAsiya Javayant UNQUALIFIED
Ricardo Y KuskoGermanyOnyama Limba QUALIFIED
Juan G NickaItalyIoni Bowcher QUALIFIED
Alejandro S MorascaGermanyStephen Shaw NEW
Mujtaba S CaldareraSpainAsiya Javayant QUALIFIED
Cody A BowleyGermanyIvan Magalhaes PROPOSAL
Ashley H CampainFranceXuxue Feng QUALIFIED
Aruna P GarufiSpainIoni Bowcher QUALIFIED
Nicolas X NickaAustraliaAsiya Javayant QUALIFIED
Ashley O NestleFranceIvan 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>