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
Stacey J IturbideJapanAnna Fali QUALIFIED
Ivar W TollnerCanadaAnna Fali QUALIFIED
Mujtaba F FigeroaJapanStephen Shaw NEGOTIATION
Chavez J BologniaCanadaElwin Sharvill NEW
Misaki U GlickArgentinaIvan Magalhaes NEGOTIATION
Clifford W FollerSpainIvan Magalhaes QUALIFIED
Greenwood U DarakjyJapanIvan Magalhaes NEW
Jennifer O ChuiRussiaOnyama Limba NEW
Isabel G PerinItalyAnna Fali PROPOSAL
Murillo C SchemmerItalyElwin Sharvill RENEWAL
Kaitlin X KolmetzRussiaStephen Shaw NEGOTIATION
Izzy A BowleyFranceElwin Sharvill NEGOTIATION
Salvatore W NestleBrazilXuxue Feng NEW
Nicolas P FerenczJapanOnyama Limba QUALIFIED
Arvin R BowleyJapanElwin Sharvill UNQUALIFIED
Sinclair W MarrierBrazilBernardo Dominic RENEWAL
Aika T MaletBrazilAsiya Javayant NEGOTIATION
Sinclair F InouyeItalyElwin Sharvill NEGOTIATION
Maisha G FigeroaGermanyAnna Fali PROPOSAL
Rodrigues X OldroydFranceAsiya Javayant PROPOSAL
James H AlbaresBrazilAnna Fali UNQUALIFIED
Wickens Y InouyeFranceOnyama Limba NEW
Darci P NickaIndiaOnyama Limba NEW
Silvio P ShinkoBrazilIvan Magalhaes PROPOSAL
Francesco C GauchoCanadaOnyama Limba QUALIFIED
Aditya A IturbideJapanIoni Bowcher NEW
Mayumi Q GauchoGermanyAsiya Javayant PROPOSAL
Wickens Q AmigonCanadaIvan Magalhaes RENEWAL
Costa S RoysterRussiaBernardo Dominic NEW
James Q KuskoJapanAnna Fali RENEWAL
Jennifer W NestleGermanyAsiya Javayant UNQUALIFIED
Murillo A BologniaFranceAmy Elsner QUALIFIED
Ricardo Q PoquetteRussiaStephen Shaw NEW
Kaitlin W SlusarskiIndiaAmy Elsner UNQUALIFIED
Maisha X GillianJapanStephen Shaw RENEWAL
David S MarrierIndiaXuxue Feng NEW
Munro H RoysterUnited KingdomBernardo Dominic NEW
Aika D StensethUnited KingdomAmy Elsner QUALIFIED
Clifford C KuskoJapanAsiya Javayant NEGOTIATION
Isabel F VenereFranceAsiya Javayant PROPOSAL
Julie C AlbaresBrazilAmy Elsner RENEWAL
Mujtaba E DoeBrazilXuxue Feng RENEWAL
Leon Y MacleadRussiaOnyama Limba RENEWAL
Juan F AlbaresSpainBernardo Dominic RENEWAL
Stacey G MacleadIndiaStephen Shaw UNQUALIFIED
Ashley V MorascaAustraliaElwin Sharvill PROPOSAL
Munro R NickaItalyXuxue Feng RENEWAL
Ashley A IturbideJapanOnyama Limba RENEWAL
Francesco P InouyeUnited KingdomIoni Bowcher UNQUALIFIED
Smith U ChuiRussiaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi X MacleadSpainElwin Sharvill QUALIFIED
Kadeem L SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Faith K StockhamGermanyIoni Bowcher PROPOSAL
Mayumi B CaldareraJapanAnna Fali QUALIFIED
Julie W TollnerRussiaStephen Shaw QUALIFIED
David A OldroydJapanStephen Shaw NEW
Francesco H KolmetzFranceOnyama Limba PROPOSAL
Nicolas H PaprockiBrazilIoni Bowcher QUALIFIED
Antonio I NestleFranceAmy Elsner PROPOSAL
Arvin K PerinCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo R AlbaresBrazil2024-04-27Feiner Bros NEGOTIATION6Ivan Magalhaes
1001Cody W RulapaughUnited Kingdom2024-04-24Chanay, Jeffrey A Esq NEW39Amy Elsner
1002Darci I FerenczBrazil2024-04-06Chemel, James L Cpa PROPOSAL67Elwin Sharvill
1003Aruna I WaycottItaly2024-04-05Truhlar And Truhlar Attys UNQUALIFIED12Ivan Magalhaes
1004Arvin S MaletJapan2024-04-11Benton, John B Jr NEW30Ioni Bowcher
1005Darci G CampainIndia2024-04-24Benton, John B Jr PROPOSAL88Elwin Sharvill
1006Aditya S ButtItaly2024-04-24Buckley Miller Wright NEW7Amy Elsner
1007Alejandro D KolmetzAustralia2024-04-23Rangoni Of Florence NEGOTIATION40Stephen Shaw
1008Isabel Z GauchoAustralia2024-04-15Buckley Miller Wright UNQUALIFIED67Ioni Bowcher
1009Jones S DilliardIndia2024-04-27Buckley Miller Wright UNQUALIFIED92Xuxue Feng
1010Maria Q GlickBrazil2024-04-17Feiner Bros NEW59Anna Fali
1011Smith N MacleadSpain2024-04-29Truhlar And Truhlar Attys NEW56Onyama Limba
1012Adams M ButtRussia2024-04-18Rangoni Of Florence UNQUALIFIED98Elwin Sharvill
1013Francesco H VocelkaSpain2024-04-13Benton, John B Jr NEGOTIATION24Onyama Limba
1014Leon S AmigonItaly2024-04-15Rangoni Of Florence RENEWAL0Xuxue Feng
1015Maisha F BowleyIndia2024-04-08Feltz Printing Service UNQUALIFIED32Ivan Magalhaes
1016Adams O FigeroaSpain2024-04-26Buckley Miller Wright RENEWAL5Amy Elsner
1017Johnson Q RulapaughBrazil2024-05-02Rousseaux, Michael Esq PROPOSAL3Anna Fali
1018Silvio L ShinkoJapan2024-04-12Chemel, James L Cpa PROPOSAL66Asiya Javayant
1019Johnson J VocelkaCanada2024-04-30Chapman, Ross E Esq PROPOSAL14Stephen Shaw
1020Jennifer I BologniaFrance2024-04-04Feltz Printing Service NEW77Ioni Bowcher
1021Rodrigues I PerinBrazil2024-04-09Chapman, Ross E Esq QUALIFIED37Stephen Shaw
1022Tony E OstroskyGermany2024-04-22Benton, John B Jr UNQUALIFIED50Elwin Sharvill
1023Jones P DoeIndia2024-04-20Feltz Printing Service RENEWAL7Onyama Limba
1024Chavez N DilliardBrazil2024-04-26Chanay, Jeffrey A Esq QUALIFIED68Bernardo Dominic
1025Costa R MaletAustralia2024-04-11Printing Dimensions PROPOSAL96Bernardo Dominic
1026Stacey P MaletGermany2024-05-02Rangoni Of Florence RENEWAL47Bernardo Dominic
1027David C PaprockiUnited Kingdom2024-05-02Chanay, Jeffrey A Esq NEW16Asiya Javayant
1028Faith E AlbaresGermany2024-04-29Truhlar And Truhlar Attys QUALIFIED86Anna Fali
1029Murillo G ButtJapan2024-04-10Feiner Bros NEW54Bernardo Dominic
1030Izzy K OldroydRussia2024-04-19Feiner Bros UNQUALIFIED4Onyama Limba
1031Jefferson M ShinkoRussia2024-04-12Buckley Miller Wright RENEWAL3Anna Fali
1032Wickens C DilliardGermany2024-04-13Dorl, James J Esq NEW78Asiya Javayant
1033Alejandro E TollnerArgentina2024-04-21Benton, John B Jr QUALIFIED52Xuxue Feng
1034Julie D IturbideFrance2024-04-30Feltz Printing Service RENEWAL39Asiya Javayant
1035Faith R CampainRussia2024-04-18Rousseaux, Michael Esq UNQUALIFIED49Onyama Limba
1036Misaki L SchemmerSpain2024-04-05Chanay, Jeffrey A Esq UNQUALIFIED68Elwin Sharvill
1037Emily I PerinFrance2024-04-13Morlong Associates NEGOTIATION22Anna Fali
1038Ivar S StockhamBrazil2024-05-02Commercial Press UNQUALIFIED26Xuxue Feng
1039Alejandro L IturbideAustralia2024-04-22Morlong Associates RENEWAL87Elwin Sharvill
1040Wickens S GauchoJapan2024-04-13Buckley Miller Wright QUALIFIED60Xuxue Feng
1041Maria Q FigeroaBrazil2024-04-20Buckley Miller Wright UNQUALIFIED25Xuxue Feng
1042Tony C RoysterRussia2024-05-01Benton, John B Jr QUALIFIED31Anna Fali
1043Leon Q ShinkoAustralia2024-04-12Chemel, James L Cpa NEGOTIATION54Ivan Magalhaes
1044Wickens W FerenczAustralia2024-04-14Buckley Miller Wright QUALIFIED37Bernardo Dominic
1045Salvatore Q KolmetzAustralia2024-04-09Buckley Miller Wright UNQUALIFIED22Bernardo Dominic
1046Francesco K NestleCanada2024-04-24Morlong Associates NEGOTIATION25Stephen Shaw
1047Octavia A WaycottBrazil2024-04-06Chanay, Jeffrey A Esq PROPOSAL60Anna Fali
1048David K InouyeItaly2024-04-23Feltz Printing Service NEGOTIATION65Asiya Javayant
1049Munro K WhobreyJapan2024-04-11Feltz Printing Service NEGOTIATION44Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
James O FollerArgentinaIoni Bowcher NEGOTIATION
Chavez G MarrierCanadaXuxue Feng NEGOTIATION
Maisha Y MaletItalyAmy Elsner UNQUALIFIED
Claire T AmigonItalyAmy Elsner QUALIFIED
Emily Q ButtFranceOnyama Limba UNQUALIFIED
Kaitlin P WhobreyIndiaStephen Shaw NEGOTIATION
Mayumi I OldroydRussiaElwin Sharvill PROPOSAL
Clifford B AmigonFranceXuxue Feng NEGOTIATION
Alejandro I MaletAustraliaOnyama Limba NEGOTIATION
Munro S SergiJapanAnna Fali NEGOTIATION
Claire C GarufiRussiaXuxue Feng RENEWAL
Maria C ChuiRussiaOnyama Limba RENEWAL
Rodrigues F SchemmerIndiaXuxue Feng UNQUALIFIED
Leon V RoysterAustraliaIoni Bowcher PROPOSAL
Adams F BriddickArgentinaXuxue Feng QUALIFIED
Munro Z DarakjyAustraliaOnyama Limba PROPOSAL
Leja D CaudyBrazilAsiya Javayant QUALIFIED
Cody A DilliardBrazilStephen Shaw NEW
James Z KuskoItalyAsiya Javayant NEGOTIATION
Aruna P MaletBrazilStephen Shaw RENEWAL
Mujtaba Z RutaAustraliaElwin Sharvill QUALIFIED
James C OldroydItalyIvan Magalhaes NEGOTIATION
James J RimAustraliaIvan Magalhaes UNQUALIFIED
Maria F VenereAustraliaOnyama Limba UNQUALIFIED
Stacey P OstroskySpainOnyama Limba UNQUALIFIED
Deepesh P TollnerUnited KingdomBernardo Dominic PROPOSAL
Johnson U BowleyUnited KingdomAnna Fali NEGOTIATION
Jefferson T SlusarskiAustraliaElwin Sharvill NEW
Rodrigues M DoeIndiaAmy Elsner RENEWAL
Darci Y PaprockiRussiaAsiya Javayant QUALIFIED
Adams T WhobreyItalyStephen Shaw QUALIFIED
Aika Y SaylorsBrazilOnyama Limba NEW
Kaitlin F WieserCanadaXuxue Feng NEGOTIATION
Jefferson J VenereRussiaAnna Fali RENEWAL
James P GillianSpainStephen Shaw PROPOSAL
Salvatore T MacleadCanadaAmy Elsner NEGOTIATION
Morrow N FigeroaAustraliaIvan Magalhaes QUALIFIED
Costa Y KuskoCanadaIoni Bowcher UNQUALIFIED
Johnson R SchemmerBrazilXuxue Feng NEW
Deepesh P PerinAustraliaIoni Bowcher NEGOTIATION
Kaitlin O ButtArgentinaElwin Sharvill NEGOTIATION
Munro B AmigonCanadaBernardo Dominic NEW
James K ButtGermanyAmy Elsner PROPOSAL
Izzy L GauchoCanadaAsiya Javayant UNQUALIFIED
Kadeem D SlusarskiCanadaAmy Elsner NEW
Aika A MaletCanadaAmy Elsner PROPOSAL
Izzy E DarakjyArgentinaBernardo Dominic NEGOTIATION
Francesco I CaldareraItalyStephen Shaw RENEWAL
Morrow O KolmetzJapanIoni Bowcher RENEWAL
Murillo G MaletAustraliaAsiya Javayant NEW
Frozen Columns
Name
Emily X Malet
Clifford M Venere
Antonio T Caudy
Aruna S Ferencz
Maria S Marrier
Jennifer L Ferencz
Jefferson M Amigon
Stacey P Oldroyd
Murillo P Bowley
Greenwood V Shinko
Jeanfrancois C Perin
Antonio C Kusko
Jones X Shinko
Ivar E Nicka
Sinclair B Tollner
Leon C Shinko
Juan T Vocelka
Alejandro D Bolognia
Johnson T Oldroyd
Alejandro M Shinko
Murillo V Paprocki
Wickens O Wieser
Johnson J Oldroyd
Smith R Figeroa
Cody S Gaucho
Nicolas M Bolognia
Tony W Flosi
Aditya Y Ostrosky
Leja T Glick
Isabel M Dilliard
Smith E Royster
Munro C Maclead
Arvin J Kolmetz
Faith N Malet
Greenwood T Darakjy
Sinclair H Darakjy
Mayumi V Malet
Deepesh Z Waycott
Claire K Malet
Salvatore W Iturbide
Jeanfrancois N Sergi
Alejandro D Malet
Claire O Malet
Antonio W Butt
James R Slusarski
Munro R Rulapaugh
Faith F Darakjy
Faith F Marrier
Johnson G Slusarski
Tony I Bolognia
IdCountryDate
1000Argentina2024-04-11
1001Japan2024-04-24
1002Spain2024-04-28
1003Spain2024-04-13
1004France2024-04-24
1005Italy2024-04-17
1006France2024-04-26
1007United Kingdom2024-04-19
1008France2024-04-08
1009Japan2024-04-24
1010Russia2024-04-17
1011Russia2024-04-17
1012Argentina2024-04-06
1013Japan2024-04-08
1014Canada2024-04-10
1015Japan2024-04-13
1016Italy2024-04-05
1017Italy2024-04-16
1018United Kingdom2024-04-05
1019France2024-04-18
1020United Kingdom2024-04-07
1021Australia2024-05-03
1022Italy2024-04-18
1023Germany2024-04-20
1024Spain2024-04-17
1025Brazil2024-04-25
1026Brazil2024-04-06
1027Italy2024-04-23
1028United Kingdom2024-04-26
1029Japan2024-04-15
1030Brazil2024-04-14
1031Argentina2024-04-20
1032Italy2024-05-03
1033Spain2024-04-04
1034France2024-04-08
1035France2024-04-26
1036Japan2024-04-26
1037Russia2024-04-21
1038Russia2024-04-29
1039United Kingdom2024-05-02
1040Italy2024-04-09
1041United Kingdom2024-04-16
1042United Kingdom2024-04-05
1043Germany2024-04-22
1044India2024-04-08
1045Japan2024-04-12
1046Germany2024-04-25
1047Russia2024-04-21
1048India2024-05-01
1049Italy2024-04-05

On-Demand Data

NameIdCountryDate
Tony P Flosi1000Japan2024-04-14
Silvio W Bowley1001Argentina2024-04-09
Francesco J Butt1002Italy2024-04-25
Johnson K Inouye1003Spain2024-05-03
Jones R Oldroyd1004United Kingdom2024-04-22
Ashley D Venere1005Italy2024-04-24
Faith E Kolmetz1006France2024-04-10
Izzy I Marrier1007Australia2024-04-04
Ashley V Bolognia1008Germany2024-04-25
Costa Y Oldroyd1009United Kingdom2024-04-06
Emily J Shinko1010Brazil2024-04-20
Jones C Nestle1011Australia2024-04-30
Octavia I Royster1012Russia2024-04-12
Antonio U Sergi1013Spain2024-04-11
Aruna O Caldarera1014United Kingdom2024-04-08
Munro O Gillian1015Australia2024-05-01
Misaki D Shinko1016Australia2024-04-14
Nicolas U Slusarski1017Italy2024-04-04
Murillo H Campain1018Spain2024-04-17
Leon J Malet1019United Kingdom2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Z KolmetzBrazilXuxue Feng NEGOTIATION
Leja J FollerSpainXuxue Feng NEW
Maisha S DoeGermanyElwin Sharvill NEGOTIATION
Jennifer U SlusarskiBrazilOnyama Limba PROPOSAL
James K BologniaJapanIoni Bowcher UNQUALIFIED
Aika U RoysterArgentinaOnyama Limba NEGOTIATION
Leja M KolmetzAustraliaStephen Shaw RENEWAL
Ivar C MorascaIndiaStephen Shaw RENEWAL
Smith Z CaudyGermanyBernardo Dominic QUALIFIED
Costa M MorascaJapanElwin Sharvill PROPOSAL
Nicolas M RutaCanadaXuxue Feng PROPOSAL
Ricardo G KolmetzItalyElwin Sharvill RENEWAL
Smith C MorascaArgentinaElwin Sharvill PROPOSAL
Antonio S ChuiArgentinaIoni Bowcher PROPOSAL
Antonio D RutaRussiaElwin Sharvill QUALIFIED
Francesco I BriddickSpainOnyama Limba RENEWAL
David I ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Alejandro S GarufiGermanyOnyama Limba NEGOTIATION
Costa Q AmigonSpainOnyama Limba NEW
Leja L AlbaresArgentinaIoni Bowcher NEGOTIATION
Antonio A MorascaCanadaElwin Sharvill UNQUALIFIED
Faith Y CaldareraFranceBernardo Dominic NEGOTIATION
Cody Y BowleyRussiaIoni Bowcher NEW
Stacey F KolmetzAustraliaAnna Fali QUALIFIED
Kaitlin L OstroskyJapanBernardo Dominic RENEWAL
Deepesh N KolmetzAustraliaAsiya Javayant PROPOSAL
Ricardo K MarrierArgentinaOnyama Limba NEGOTIATION
Emily E GlickArgentinaAmy Elsner QUALIFIED
Wickens I MarrierIndiaXuxue Feng QUALIFIED
Rodrigues E MorascaIndiaAsiya Javayant NEW
Jennifer Z BriddickRussiaBernardo Dominic NEGOTIATION
Jeanfrancois V ChuiArgentinaAsiya Javayant RENEWAL
Nicolas D VocelkaIndiaAsiya Javayant NEGOTIATION
Jefferson V MaletIndiaIoni Bowcher NEW
Faith Z KuskoJapanOnyama Limba RENEWAL
Chavez U GillianCanadaXuxue Feng NEGOTIATION
Greenwood F FerenczFranceAmy Elsner NEW
Leon D MaletRussiaIoni Bowcher RENEWAL
Ricardo N GillianArgentinaIvan Magalhaes QUALIFIED
Clifford I OldroydFranceIvan Magalhaes 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>