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
Darci I DoeBrazilAnna Fali NEW
Jennifer X SlusarskiIndiaOnyama Limba NEGOTIATION
Ricardo P RutaFranceXuxue Feng NEGOTIATION
Misaki X OstroskyJapanStephen Shaw RENEWAL
Cody I DoeJapanOnyama Limba UNQUALIFIED
Adams X MaletFranceOnyama Limba NEW
Juan A VenereJapanStephen Shaw PROPOSAL
Chavez V OstroskyIndiaStephen Shaw PROPOSAL
Smith M OstroskyBrazilAsiya Javayant RENEWAL
Morrow X MorascaFranceOnyama Limba PROPOSAL
Maisha L GarufiArgentinaAsiya Javayant PROPOSAL
Julie C GillianItalyStephen Shaw PROPOSAL
David B GlickBrazilStephen Shaw UNQUALIFIED
Antonio E SlusarskiItalyOnyama Limba NEGOTIATION
Misaki L NestleIndiaIoni Bowcher NEGOTIATION
Nicolas W PerinArgentinaAsiya Javayant UNQUALIFIED
Leja T VocelkaCanadaIvan Magalhaes RENEWAL
Juan G AmigonCanadaAsiya Javayant NEGOTIATION
Emily K PoquetteSpainXuxue Feng UNQUALIFIED
Stacey E FlosiRussiaXuxue Feng QUALIFIED
Ricardo G RimIndiaOnyama Limba NEW
David I WieserBrazilAmy Elsner QUALIFIED
Julie E OstroskyArgentinaAmy Elsner RENEWAL
Cody J FerenczRussiaAnna Fali UNQUALIFIED
Aditya O AmigonGermanyAnna Fali NEW
Leon U FlosiUnited KingdomXuxue Feng PROPOSAL
Aditya Y CaldareraJapanBernardo Dominic PROPOSAL
Jennifer B SlusarskiCanadaOnyama Limba NEW
Kaitlin M FerenczJapanAnna Fali NEW
Jeanfrancois Z ButtArgentinaIoni Bowcher UNQUALIFIED
Arvin P DarakjyJapanAnna Fali NEW
Salvatore O BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues M AmigonJapanStephen Shaw NEGOTIATION
Clifford I MacleadFranceAmy Elsner NEW
Jefferson Z InouyeUnited KingdomAmy Elsner RENEWAL
Julie Y FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba Q RutaArgentinaBernardo Dominic PROPOSAL
Nicolas D BowleyArgentinaBernardo Dominic QUALIFIED
Ivar D NickaBrazilStephen Shaw RENEWAL
Adams V MarrierGermanyXuxue Feng QUALIFIED
Costa V DoeFranceAsiya Javayant UNQUALIFIED
Salvatore U BowleyIndiaIoni Bowcher NEW
Julie K OldroydIndiaIvan Magalhaes QUALIFIED
Ivar F InouyeJapanIvan Magalhaes NEW
Adams J GarufiJapanAnna Fali NEGOTIATION
Clifford E ButtUnited KingdomIoni Bowcher NEGOTIATION
Maria D StensethCanadaAnna Fali PROPOSAL
Stacey B CaldareraBrazilElwin Sharvill NEGOTIATION
Octavia S RimGermanyOnyama Limba NEGOTIATION
Jefferson U GillianArgentinaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams L SergiGermanyAsiya Javayant PROPOSAL
Leja G GlickRussiaAsiya Javayant UNQUALIFIED
Jefferson L PerinFranceStephen Shaw NEGOTIATION
Chavez C MorascaCanadaStephen Shaw NEW
Francesco C BologniaFranceStephen Shaw NEW
Jefferson E BowleyJapanAmy Elsner UNQUALIFIED
Munro K FigeroaUnited KingdomIvan Magalhaes RENEWAL
Jefferson D IturbideBrazilIvan Magalhaes NEGOTIATION
Mayumi Y StockhamIndiaAsiya Javayant PROPOSAL
Adams F RoysterSpainStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Y CaudyItaly2024-04-24Feltz Printing Service RENEWAL64Anna Fali
1001Nicolas B WhobreyIndia2024-05-01Truhlar And Truhlar Attys NEGOTIATION13Elwin Sharvill
1002Arvin N FollerItaly2024-04-19Feiner Bros PROPOSAL56Onyama Limba
1003Greenwood F NestleIndia2024-04-26Printing Dimensions QUALIFIED47Amy Elsner
1004Maria M MaletUnited Kingdom2024-04-11Printing Dimensions QUALIFIED21Ivan Magalhaes
1005Leja E BologniaBrazil2024-04-07Rangoni Of Florence RENEWAL4Bernardo Dominic
1006Ivar J RimRussia2024-04-25Chemel, James L Cpa RENEWAL25Amy Elsner
1007Alejandro J StensethFrance2024-04-12Benton, John B Jr RENEWAL7Anna Fali
1008Clifford N MarrierJapan2024-05-02Morlong Associates NEW73Asiya Javayant
1009Aruna C KolmetzAustralia2024-04-24Chanay, Jeffrey A Esq RENEWAL82Asiya Javayant
1010Sinclair V WieserSpain2024-05-03Morlong Associates QUALIFIED59Bernardo Dominic
1011Deepesh T SergiArgentina2024-04-13Commercial Press NEW6Xuxue Feng
1012Costa U IturbideJapan2024-04-12Chanay, Jeffrey A Esq QUALIFIED16Bernardo Dominic
1013Sinclair R GillianCanada2024-04-19Dorl, James J Esq RENEWAL62Amy Elsner
1014Silvio W MorascaUnited Kingdom2024-04-22Printing Dimensions UNQUALIFIED61Asiya Javayant
1015Jennifer T RoysterArgentina2024-05-04Commercial Press NEGOTIATION28Bernardo Dominic
1016Ricardo P SergiFrance2024-04-22Feltz Printing Service NEW85Amy Elsner
1017Emily M ButtJapan2024-04-26Morlong Associates NEGOTIATION58Anna Fali
1018Murillo P MarrierRussia2024-04-22Benton, John B Jr PROPOSAL5Stephen Shaw
1019Faith C NestleUnited Kingdom2024-05-05Chapman, Ross E Esq QUALIFIED22Asiya Javayant
1020Izzy H CaudyIndia2024-04-10Truhlar And Truhlar Attys NEGOTIATION45Onyama Limba
1021Morrow H VenereGermany2024-05-02Feltz Printing Service NEGOTIATION28Elwin Sharvill
1022Antonio H SaylorsRussia2024-04-22Rangoni Of Florence RENEWAL56Xuxue Feng
1023Silvio A DoeAustralia2024-04-18Benton, John B Jr UNQUALIFIED67Amy Elsner
1024Wickens U SergiRussia2024-04-18Feltz Printing Service RENEWAL81Xuxue Feng
1025Francesco E OldroydJapan2024-04-27Commercial Press PROPOSAL45Xuxue Feng
1026Maisha A StensethJapan2024-04-25Truhlar And Truhlar Attys NEW59Bernardo Dominic
1027Costa J PoquetteAustralia2024-04-08Commercial Press QUALIFIED73Anna Fali
1028Isabel R KolmetzIndia2024-04-26King, Christopher A Esq NEW35Asiya Javayant
1029Faith M FigeroaAustralia2024-04-13King, Christopher A Esq NEW97Amy Elsner
1030Maria J ChuiAustralia2024-05-02Feiner Bros QUALIFIED34Stephen Shaw
1031Jeanfrancois S FollerFrance2024-04-28Rousseaux, Michael Esq QUALIFIED45Anna Fali
1032Mayumi D WhobreyGermany2024-04-12Morlong Associates UNQUALIFIED89Bernardo Dominic
1033Smith S MaletItaly2024-04-14Morlong Associates PROPOSAL58Bernardo Dominic
1034Maisha G AmigonRussia2024-04-22Benton, John B Jr PROPOSAL5Amy Elsner
1035Cody Q GillianRussia2024-04-16Buckley Miller Wright UNQUALIFIED59Asiya Javayant
1036Leon N NickaUnited Kingdom2024-04-11Chemel, James L Cpa UNQUALIFIED86Asiya Javayant
1037Isabel F MaletItaly2024-04-28Feiner Bros QUALIFIED36Asiya Javayant
1038Ricardo Y WieserJapan2024-05-01Feiner Bros UNQUALIFIED91Xuxue Feng
1039Arvin M OstroskyCanada2024-04-13Truhlar And Truhlar Attys NEW68Elwin Sharvill
1040Silvio F TollnerItaly2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED36Asiya Javayant
1041Jones E VocelkaJapan2024-04-27Rousseaux, Michael Esq RENEWAL44Asiya Javayant
1042Munro V MaletItaly2024-04-14Feiner Bros PROPOSAL13Stephen Shaw
1043Munro R ShinkoGermany2024-05-01Chemel, James L Cpa UNQUALIFIED95Amy Elsner
1044Nicolas Y SergiCanada2024-04-11Buckley Miller Wright PROPOSAL41Amy Elsner
1045Aika F BologniaGermany2024-04-26Feiner Bros RENEWAL10Ivan Magalhaes
1046Kadeem A ChuiArgentina2024-05-05Chapman, Ross E Esq RENEWAL73Bernardo Dominic
1047Costa M MacleadRussia2024-04-09Morlong Associates NEW88Elwin Sharvill
1048Jeanfrancois X GauchoRussia2024-04-18Rangoni Of Florence NEW55Anna Fali
1049Ivar L SchemmerArgentina2024-04-21Feltz Printing Service NEGOTIATION33Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Morrow D RulapaughJapanElwin Sharvill UNQUALIFIED
Clifford I BowleyFranceStephen Shaw RENEWAL
Morrow F CampainBrazilOnyama Limba PROPOSAL
Jeanfrancois B ChuiItalyIvan Magalhaes QUALIFIED
Murillo K MarrierGermanyOnyama Limba UNQUALIFIED
Nicolas X NestleRussiaAnna Fali NEW
Izzy W ButtRussiaStephen Shaw QUALIFIED
Ivar S WieserItalyBernardo Dominic NEGOTIATION
Jones N CaudyGermanyStephen Shaw QUALIFIED
Jefferson P DarakjyUnited KingdomOnyama Limba PROPOSAL
Aditya X ButtUnited KingdomAmy Elsner NEGOTIATION
Darci J GauchoSpainAmy Elsner PROPOSAL
Salvatore T ShinkoBrazilAmy Elsner PROPOSAL
Cody W NestleItalyAmy Elsner QUALIFIED
Tony I MarrierIndiaElwin Sharvill QUALIFIED
Leja E GillianIndiaElwin Sharvill RENEWAL
Maria A SergiBrazilIoni Bowcher NEGOTIATION
Alejandro B SaylorsCanadaElwin Sharvill RENEWAL
Isabel W BowleySpainIvan Magalhaes UNQUALIFIED
Stacey N VenereUnited KingdomXuxue Feng NEGOTIATION
Rodrigues B MacleadRussiaIvan Magalhaes RENEWAL
Tony A OstroskyJapanIvan Magalhaes PROPOSAL
Jeanfrancois H VocelkaArgentinaAnna Fali PROPOSAL
Ricardo C PerinItalyElwin Sharvill RENEWAL
Aika V InouyeRussiaElwin Sharvill UNQUALIFIED
Octavia V ShinkoBrazilOnyama Limba UNQUALIFIED
Darci W RulapaughJapanBernardo Dominic PROPOSAL
Izzy B OldroydRussiaOnyama Limba NEW
Claire V BriddickIndiaIoni Bowcher PROPOSAL
Sinclair K ShinkoFranceOnyama Limba QUALIFIED
Wickens B CampainCanadaXuxue Feng NEGOTIATION
Isabel S GlickItalyIvan Magalhaes UNQUALIFIED
Faith K OstroskyIndiaXuxue Feng UNQUALIFIED
Ivar X PaprockiJapanAsiya Javayant NEGOTIATION
James K SlusarskiIndiaIoni Bowcher PROPOSAL
Octavia Q MorascaItalyXuxue Feng QUALIFIED
Juan Q FlosiCanadaAnna Fali NEGOTIATION
David Q VocelkaItalyBernardo Dominic NEW
Aika A StockhamSpainIvan Magalhaes PROPOSAL
Sinclair B MarrierJapanOnyama Limba QUALIFIED
Isabel W TollnerGermanyElwin Sharvill PROPOSAL
Silvio D MaletIndiaAmy Elsner QUALIFIED
Adams I GlickCanadaElwin Sharvill RENEWAL
Greenwood S VocelkaJapanXuxue Feng NEW
Salvatore W SlusarskiSpainAsiya Javayant QUALIFIED
Aruna A RutaGermanyAnna Fali NEW
Faith E WhobreyItalyIvan Magalhaes UNQUALIFIED
Ivar Z ButtAustraliaAmy Elsner UNQUALIFIED
Morrow F DoeJapanXuxue Feng RENEWAL
Octavia Z MaletCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Jones Z Briddick
Julie T Rim
Smith K Saylors
Jeanfrancois R Marrier
Ashley Z Stenseth
Julie I Gillian
Leon K Wieser
Leon P Paprocki
Jefferson Z Oldroyd
Murillo Z Tollner
Maria X Stockham
Morrow V Albares
Tony M Venere
Cody T Darakjy
Stacey R Paprocki
Jones U Butt
Ashley L Malet
Greenwood L Oldroyd
Jones Y Foller
Ivar Q Marrier
Stacey S Kusko
Morrow R Bolognia
Jennifer N Darakjy
Claire R Marrier
Mayumi F Bowley
Mayumi U Rim
Claire S Caudy
Isabel M Kolmetz
Aruna S Butt
Maria N Nestle
Antonio R Shinko
Salvatore O Malet
Claire Y Glick
Faith M Gaucho
Deepesh Q Caudy
Antonio M Darakjy
James W Tollner
Smith G Ruta
Kaitlin O Stockham
Leja Q Ruta
Johnson N Stenseth
Sinclair M Gillian
Nicolas H Rim
Chavez C Nestle
Jeanfrancois E Nestle
Izzy O Ostrosky
Jennifer E Morasca
Leja Z Butt
Izzy W Rulapaugh
Johnson L Figeroa
IdCountryDate
1000Russia2024-05-05
1001Germany2024-04-10
1002Italy2024-04-29
1003Australia2024-04-16
1004France2024-04-29
1005Argentina2024-04-25
1006United Kingdom2024-04-17
1007Russia2024-04-26
1008Argentina2024-04-11
1009Australia2024-04-06
1010Australia2024-04-21
1011Australia2024-04-18
1012France2024-04-12
1013France2024-04-24
1014Spain2024-04-17
1015Brazil2024-04-19
1016France2024-04-16
1017India2024-04-24
1018India2024-04-28
1019India2024-04-28
1020Germany2024-04-10
1021United Kingdom2024-04-13
1022Argentina2024-04-25
1023Canada2024-04-08
1024Spain2024-04-22
1025Russia2024-04-17
1026India2024-04-10
1027United Kingdom2024-04-18
1028India2024-04-10
1029Brazil2024-04-12
1030Italy2024-04-30
1031Argentina2024-04-13
1032India2024-04-24
1033France2024-04-26
1034Japan2024-04-07
1035Russia2024-04-21
1036Brazil2024-04-28
1037Russia2024-04-16
1038Brazil2024-04-22
1039France2024-04-08
1040Brazil2024-04-12
1041Spain2024-04-26
1042France2024-05-04
1043Italy2024-04-25
1044India2024-04-07
1045United Kingdom2024-04-19
1046Japan2024-04-25
1047Brazil2024-04-09
1048Canada2024-04-06
1049Spain2024-04-07

On-Demand Data

NameIdCountryDate
Octavia J Figeroa1000France2024-05-04
Wickens G Glick1001India2024-04-08
Smith Q Paprocki1002Germany2024-04-14
Kaitlin Y Caudy1003France2024-04-15
Adams D Malet1004Canada2024-04-08
Julie I Briddick1005Spain2024-04-20
Juan Z Rulapaugh1006Russia2024-04-07
Cody L Paprocki1007Japan2024-04-06
David V Paprocki1008Russia2024-04-13
Clifford T Perin1009Russia2024-04-10
Stacey E Albares1010Canada2024-05-05
Wickens P Perin1011Japan2024-04-28
Juan M Nicka1012Spain2024-04-11
Emily W Albares1013India2024-04-15
Maisha U Malet1014India2024-04-24
Sinclair F Briddick1015Spain2024-04-22
Rodrigues K Shinko1016Australia2024-05-01
Mayumi Z Slusarski1017Japan2024-04-15
Arvin H Caldarera1018Argentina2024-04-07
Antonio L Figeroa1019India2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair O MarrierRussiaIoni Bowcher NEW
Salvatore D BowleyGermanyBernardo Dominic PROPOSAL
Wickens Y PaprockiAustraliaElwin Sharvill RENEWAL
Juan U FollerSpainAsiya Javayant PROPOSAL
Leon F FollerArgentinaOnyama Limba NEW
Ashley S MaletUnited KingdomXuxue Feng RENEWAL
Silvio J OldroydJapanAnna Fali QUALIFIED
Maisha U StensethRussiaBernardo Dominic NEW
Emily V MarrierFranceIoni Bowcher QUALIFIED
Stacey U PerinFranceAnna Fali RENEWAL
Jennifer Z OstroskyArgentinaBernardo Dominic QUALIFIED
Adams F OstroskyGermanyIoni Bowcher PROPOSAL
Julie C FerenczGermanyOnyama Limba PROPOSAL
Juan Y FigeroaItalyAsiya Javayant NEW
Sinclair L MacleadBrazilOnyama Limba NEGOTIATION
Maria V RimCanadaBernardo Dominic UNQUALIFIED
Sinclair K SaylorsCanadaElwin Sharvill PROPOSAL
Adams M MarrierGermanyElwin Sharvill UNQUALIFIED
Nicolas D RimSpainOnyama Limba UNQUALIFIED
Jefferson Q MorascaRussiaElwin Sharvill NEGOTIATION
Juan B MarrierUnited KingdomOnyama Limba UNQUALIFIED
Silvio X TollnerGermanyElwin Sharvill QUALIFIED
Julie Y DilliardRussiaOnyama Limba RENEWAL
James F FigeroaIndiaAsiya Javayant QUALIFIED
Emily M BologniaJapanElwin Sharvill NEGOTIATION
Mujtaba D WaycottItalyBernardo Dominic QUALIFIED
Sinclair L MorascaRussiaXuxue Feng NEGOTIATION
Smith Q WieserRussiaAsiya Javayant NEW
Juan V MaletArgentinaAnna Fali NEGOTIATION
Aruna K KolmetzRussiaElwin Sharvill NEGOTIATION
Clifford Q MaletCanadaOnyama Limba UNQUALIFIED
Mayumi E StockhamRussiaBernardo Dominic PROPOSAL
Emily V StensethItalyBernardo Dominic NEW
Darci N PerinJapanIoni Bowcher UNQUALIFIED
Leja C CaudyGermanyAmy Elsner NEW
Silvio S ShinkoGermanyBernardo Dominic NEGOTIATION
Deepesh R GillianUnited KingdomElwin Sharvill PROPOSAL
David D MaletCanadaAsiya Javayant NEGOTIATION
Octavia H SchemmerCanadaAmy Elsner RENEWAL
Arvin J VenereArgentinaAsiya Javayant NEGOTIATION

<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>