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
Claire C RutaCanadaOnyama Limba PROPOSAL
Cody Z NickaGermanyIvan Magalhaes PROPOSAL
Jefferson Q ShinkoFranceIvan Magalhaes PROPOSAL
Stacey H GillianAustraliaElwin Sharvill PROPOSAL
Isabel O BriddickArgentinaAmy Elsner PROPOSAL
Claire I MacleadItalyStephen Shaw UNQUALIFIED
Juan T AmigonBrazilIoni Bowcher UNQUALIFIED
Costa S SlusarskiItalyBernardo Dominic NEGOTIATION
Ivar I NickaCanadaAsiya Javayant RENEWAL
Maria J MaletGermanyIvan Magalhaes QUALIFIED
Arvin Z PerinJapanAnna Fali NEGOTIATION
Leon C OstroskyCanadaStephen Shaw NEW
Francesco C WaycottIndiaOnyama Limba QUALIFIED
Isabel L SchemmerBrazilIvan Magalhaes PROPOSAL
James F KuskoArgentinaXuxue Feng RENEWAL
Julie V SaylorsCanadaAnna Fali RENEWAL
Leon C RoysterSpainAsiya Javayant NEW
Alejandro P KolmetzJapanAsiya Javayant UNQUALIFIED
Jeanfrancois T RulapaughGermanyAnna Fali RENEWAL
Octavia S AmigonAustraliaAnna Fali UNQUALIFIED
Nicolas O FerenczItalyAnna Fali PROPOSAL
Mujtaba L CaldareraUnited KingdomOnyama Limba NEGOTIATION
Antonio L KolmetzAustraliaXuxue Feng RENEWAL
Mayumi H StensethFranceAnna Fali NEGOTIATION
Francesco Q FollerRussiaOnyama Limba NEGOTIATION
Rodrigues B AlbaresJapanOnyama Limba NEGOTIATION
Arvin P IturbideJapanAsiya Javayant RENEWAL
Jennifer M NestleIndiaAsiya Javayant NEGOTIATION
Kaitlin E RutaArgentinaIvan Magalhaes PROPOSAL
Sinclair M DilliardSpainIvan Magalhaes UNQUALIFIED
Chavez D InouyeFranceOnyama Limba NEW
Aditya D MacleadFranceIoni Bowcher NEW
Chavez T SchemmerUnited KingdomStephen Shaw NEGOTIATION
Wickens F SchemmerArgentinaOnyama Limba RENEWAL
Aruna D ShinkoSpainStephen Shaw RENEWAL
Jennifer U RimCanadaElwin Sharvill UNQUALIFIED
Ivar N WaycottGermanyXuxue Feng NEGOTIATION
Ivar X PerinGermanyElwin Sharvill NEW
Maisha Z MacleadItalyAsiya Javayant RENEWAL
Tony K CaldareraFranceAnna Fali QUALIFIED
Rodrigues X GillianUnited KingdomIoni Bowcher NEW
Julie I VenereFranceAmy Elsner PROPOSAL
Nicolas F CaldareraJapanStephen Shaw RENEWAL
Alejandro Q ButtSpainStephen Shaw PROPOSAL
Clifford X OldroydBrazilAmy Elsner PROPOSAL
Leon R MarrierFranceAmy Elsner NEW
Claire A CaudyRussiaBernardo Dominic RENEWAL
Adams S OstroskyJapanIvan Magalhaes PROPOSAL
Julie G RoysterCanadaIoni Bowcher PROPOSAL
Alejandro U CaldareraCanadaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens H CaudyBrazilElwin Sharvill PROPOSAL
Jefferson J RulapaughSpainXuxue Feng NEW
Izzy H MorascaBrazilIoni Bowcher UNQUALIFIED
Aditya T DilliardRussiaAnna Fali PROPOSAL
Maisha V GlickGermanyAmy Elsner RENEWAL
Greenwood O SaylorsIndiaOnyama Limba RENEWAL
Darci K BowleySpainElwin Sharvill NEGOTIATION
Leja M NestleSpainIoni Bowcher UNQUALIFIED
Stacey O ShinkoFranceAnna Fali NEGOTIATION
Clifford P WhobreyRussiaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem P VocelkaBrazil2024-04-13Feiner Bros QUALIFIED11Ioni Bowcher
1001Stacey P CaudyGermany2024-04-02Dorl, James J Esq PROPOSAL97Onyama Limba
1002Octavia V InouyeJapan2024-04-23Commercial Press QUALIFIED54Ivan Magalhaes
1003Ivar H BriddickJapan2024-04-19Buckley Miller Wright RENEWAL34Elwin Sharvill
1004Aika S WhobreyGermany2024-04-02Feltz Printing Service QUALIFIED98Ioni Bowcher
1005Greenwood J GauchoFrance2024-04-17Rousseaux, Michael Esq PROPOSAL43Xuxue Feng
1006Maria O PerinAustralia2024-04-24King, Christopher A Esq NEGOTIATION44Onyama Limba
1007Deepesh I OldroydRussia2024-04-08King, Christopher A Esq QUALIFIED7Bernardo Dominic
1008Rodrigues W KuskoItaly2024-04-02Buckley Miller Wright NEGOTIATION8Stephen Shaw
1009Emily K MorascaArgentina2024-04-15Morlong Associates UNQUALIFIED60Anna Fali
1010Faith K FigeroaIndia2024-04-13Chapman, Ross E Esq QUALIFIED24Xuxue Feng
1011Maria O CaudyBrazil2024-04-24Feiner Bros PROPOSAL16Bernardo Dominic
1012Leja Z ButtUnited Kingdom2024-04-14Printing Dimensions RENEWAL98Onyama Limba
1013Rodrigues X RulapaughAustralia2024-04-11Dorl, James J Esq UNQUALIFIED47Onyama Limba
1014Smith Z SchemmerGermany2024-04-06Dorl, James J Esq NEGOTIATION81Asiya Javayant
1015Izzy W DoeItaly2024-04-04Dorl, James J Esq NEGOTIATION69Xuxue Feng
1016Mayumi G DarakjySpain2024-04-07Printing Dimensions RENEWAL94Anna Fali
1017Octavia Q StensethFrance2024-05-01Dorl, James J Esq NEGOTIATION83Asiya Javayant
1018Costa E RimArgentina2024-04-07Chemel, James L Cpa RENEWAL50Xuxue Feng
1019Antonio W FigeroaIndia2024-04-10Commercial Press UNQUALIFIED11Stephen Shaw
1020Smith B FerenczBrazil2024-04-23Truhlar And Truhlar Attys PROPOSAL53Amy Elsner
1021Munro F MarrierJapan2024-04-09Truhlar And Truhlar Attys QUALIFIED83Bernardo Dominic
1022David B MorascaBrazil2024-04-07Morlong Associates RENEWAL18Xuxue Feng
1023David A FlosiArgentina2024-04-02Rousseaux, Michael Esq UNQUALIFIED66Anna Fali
1024Ivar J MorascaArgentina2024-04-04Commercial Press RENEWAL96Xuxue Feng
1025Julie F AmigonItaly2024-04-09Chanay, Jeffrey A Esq RENEWAL94Asiya Javayant
1026Rodrigues G StensethFrance2024-04-22Buckley Miller Wright RENEWAL25Onyama Limba
1027Rodrigues Y RoysterSpain2024-04-15Printing Dimensions UNQUALIFIED98Asiya Javayant
1028Aruna V SchemmerIndia2024-04-05Rangoni Of Florence QUALIFIED43Amy Elsner
1029Kaitlin F AlbaresAustralia2024-04-06Rangoni Of Florence NEW2Bernardo Dominic
1030Faith J FerenczIndia2024-04-16Feltz Printing Service QUALIFIED33Anna Fali
1031Jefferson O RoysterArgentina2024-04-23Commercial Press NEW98Anna Fali
1032Kadeem I BowleyCanada2024-04-20Morlong Associates NEW47Anna Fali
1033Juan X VocelkaIndia2024-04-06Chanay, Jeffrey A Esq RENEWAL18Onyama Limba
1034Leon B AlbaresArgentina2024-04-24Chemel, James L Cpa PROPOSAL59Bernardo Dominic
1035Arvin T FigeroaCanada2024-04-06Feiner Bros QUALIFIED64Onyama Limba
1036Ivar I MorascaIndia2024-04-06Commercial Press RENEWAL86Elwin Sharvill
1037Ashley H CaudyIndia2024-04-22Feiner Bros UNQUALIFIED57Anna Fali
1038Clifford M BologniaFrance2024-04-07Feiner Bros PROPOSAL61Bernardo Dominic
1039Morrow X PaprockiAustralia2024-04-12Chemel, James L Cpa UNQUALIFIED67Elwin Sharvill
1040Misaki Y CaldareraFrance2024-04-16Commercial Press NEW8Amy Elsner
1041Emily S SaylorsUnited Kingdom2024-04-20Feltz Printing Service NEW35Elwin Sharvill
1042Leja V IturbideJapan2024-04-10Feiner Bros QUALIFIED31Xuxue Feng
1043Ivar N SergiAustralia2024-04-21Commercial Press NEGOTIATION95Bernardo Dominic
1044Greenwood K BowleyArgentina2024-04-02Rousseaux, Michael Esq NEGOTIATION95Xuxue Feng
1045Cody M BowleySpain2024-04-19Truhlar And Truhlar Attys QUALIFIED66Amy Elsner
1046Arvin U PerinSpain2024-04-10Commercial Press UNQUALIFIED30Amy Elsner
1047Juan T WieserRussia2024-04-19Dorl, James J Esq NEGOTIATION26Anna Fali
1048Deepesh B CaudyAustralia2024-04-25Rangoni Of Florence UNQUALIFIED41Stephen Shaw
1049Jefferson L ChuiBrazil2024-04-06Truhlar And Truhlar Attys UNQUALIFIED31Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Wickens Y NickaCanadaAsiya Javayant PROPOSAL
Ricardo C PoquetteJapanElwin Sharvill PROPOSAL
Faith G GarufiJapanXuxue Feng NEW
Silvio Y WhobreyCanadaBernardo Dominic NEGOTIATION
Chavez T RutaArgentinaXuxue Feng RENEWAL
Kadeem Z WieserJapanIvan Magalhaes NEW
Arvin M TollnerGermanyBernardo Dominic NEW
Ricardo N WaycottIndiaOnyama Limba NEGOTIATION
Mujtaba S MorascaJapanBernardo Dominic NEW
Johnson F ButtRussiaIoni Bowcher NEGOTIATION
Chavez Y CampainArgentinaIvan Magalhaes PROPOSAL
Adams W PaprockiIndiaAmy Elsner NEGOTIATION
Izzy M CaudyAustraliaElwin Sharvill QUALIFIED
Sinclair Y StensethSpainOnyama Limba NEGOTIATION
David B DarakjyItalyAsiya Javayant NEW
Rodrigues Z VenereGermanyBernardo Dominic NEGOTIATION
Nicolas I VenereBrazilIoni Bowcher QUALIFIED
Faith P MaletAustraliaXuxue Feng NEGOTIATION
Aika X AmigonCanadaIvan Magalhaes NEW
Francesco Q BriddickCanadaAmy Elsner NEGOTIATION
Darci G AmigonRussiaBernardo Dominic QUALIFIED
Costa P NickaArgentinaStephen Shaw QUALIFIED
Deepesh I AmigonArgentinaOnyama Limba NEW
Aika P KuskoGermanyXuxue Feng PROPOSAL
Adams W StensethIndiaOnyama Limba NEW
Mujtaba W NestleAustraliaXuxue Feng NEGOTIATION
Juan I WhobreyIndiaOnyama Limba NEGOTIATION
Antonio H SaylorsSpainOnyama Limba NEW
Antonio Y RoysterArgentinaElwin Sharvill NEGOTIATION
Johnson O GarufiFranceAmy Elsner NEGOTIATION
Adams L GarufiAustraliaStephen Shaw RENEWAL
Arvin A BologniaArgentinaAmy Elsner NEW
Kadeem M FollerArgentinaAmy Elsner NEGOTIATION
Chavez A DarakjyFranceBernardo Dominic QUALIFIED
Aika U InouyeRussiaOnyama Limba NEGOTIATION
Ivar U KuskoArgentinaXuxue Feng PROPOSAL
Emily N OstroskyAustraliaBernardo Dominic QUALIFIED
Ivar L FlosiJapanAmy Elsner NEGOTIATION
Emily J IturbideJapanElwin Sharvill QUALIFIED
Jennifer W StensethArgentinaAmy Elsner QUALIFIED
Alejandro T OstroskyGermanyAmy Elsner QUALIFIED
Johnson Y VenereFranceAsiya Javayant UNQUALIFIED
Arvin V WieserCanadaXuxue Feng UNQUALIFIED
Costa K BowleyJapanElwin Sharvill PROPOSAL
Chavez M BriddickJapanElwin Sharvill RENEWAL
Kaitlin G SchemmerGermanyIvan Magalhaes PROPOSAL
Wickens L MarrierItalyIvan Magalhaes NEW
Cody K PaprockiSpainOnyama Limba UNQUALIFIED
David M DilliardUnited KingdomOnyama Limba NEW
Ricardo L FollerGermanyStephen Shaw NEW
Frozen Columns
Name
Francesco U Ruta
Maisha B Schemmer
Morrow M Kusko
David Z Figeroa
Jones A Venere
Sinclair I Foller
Maria W Gaucho
Francesco K Bolognia
David E Shinko
Kaitlin G Paprocki
Maisha W Malet
Alejandro E Caldarera
Murillo K Bowley
Mujtaba S Garufi
Munro G Royster
Arvin T Stenseth
Emily K Dilliard
Claire V Gillian
Murillo O Schemmer
Jeanfrancois U Briddick
Chavez O Schemmer
Jennifer S Nicka
Misaki Y Gaucho
Julie I Doe
Kaitlin I Paprocki
Maisha Y Oldroyd
Maria B Malet
Stacey M Vocelka
Jeanfrancois B Kusko
Julie J Wieser
Johnson V Maclead
Aruna P Marrier
Rodrigues H Briddick
James V Venere
Kadeem C Stenseth
Adams P Gaucho
Jennifer O Butt
Darci S Marrier
Julie S Foller
Leon W Campain
Aruna U Rim
Jones O Ruta
Morrow S Schemmer
Clifford P Glick
Clifford Q Rim
Ashley Q Schemmer
Jennifer Q Bowley
Clifford I Venere
Antonio G Glick
Leja F Caldarera
IdCountryDate
1000Australia2024-04-02
1001Argentina2024-04-12
1002Japan2024-04-29
1003Canada2024-04-09
1004Brazil2024-04-05
1005Argentina2024-04-06
1006United Kingdom2024-04-27
1007Australia2024-04-04
1008Brazil2024-04-24
1009Russia2024-04-14
1010Italy2024-04-13
1011Australia2024-04-24
1012Japan2024-04-02
1013Brazil2024-04-22
1014Australia2024-04-17
1015Italy2024-04-12
1016Japan2024-04-26
1017France2024-04-26
1018Russia2024-04-17
1019India2024-04-26
1020Russia2024-04-10
1021Germany2024-04-28
1022Australia2024-04-25
1023Australia2024-04-18
1024Brazil2024-04-02
1025Brazil2024-04-20
1026Germany2024-04-24
1027Italy2024-04-20
1028India2024-04-04
1029United Kingdom2024-04-23
1030Spain2024-04-29
1031France2024-04-02
1032Germany2024-04-02
1033Spain2024-04-05
1034Spain2024-04-07
1035Argentina2024-04-18
1036Italy2024-05-01
1037Canada2024-04-05
1038France2024-04-10
1039Germany2024-04-28
1040Argentina2024-04-11
1041Spain2024-04-09
1042Brazil2024-04-08
1043Australia2024-04-09
1044Germany2024-04-09
1045United Kingdom2024-04-02
1046France2024-04-10
1047Argentina2024-05-01
1048France2024-04-16
1049Australia2024-04-18

On-Demand Data

NameIdCountryDate
James R Campain1000Canada2024-04-15
Johnson C Ferencz1001Spain2024-04-03
Costa W Maclead1002Germany2024-04-10
Claire J Iturbide1003Russia2024-04-26
Aika F Tollner1004Spain2024-04-21
Greenwood P Shinko1005United Kingdom2024-04-03
Clifford L Whobrey1006Russia2024-04-25
Rodrigues E Ruta1007Spain2024-04-16
Ivar O Royster1008Brazil2024-04-10
Cody G Amigon1009Spain2024-04-04
Jennifer B Ostrosky1010Germany2024-04-06
Aditya Z Kolmetz1011Japan2024-05-01
Claire G Wieser1012United Kingdom2024-04-26
Arvin B Waycott1013Brazil2024-04-14
Darci S Tollner1014Argentina2024-04-17
Rodrigues T Figeroa1015Japan2024-04-16
Deepesh R Nestle1016Spain2024-04-14
Kadeem O Wieser1017France2024-04-21
Adams O Darakjy1018Spain2024-04-24
Cody L Caldarera1019Russia2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire P FollerIndiaAnna Fali NEGOTIATION
Ricardo T IturbideCanadaXuxue Feng NEGOTIATION
Leja I MaletAustraliaOnyama Limba NEW
Ricardo Q WhobreyCanadaBernardo Dominic QUALIFIED
Jones D ChuiGermanyStephen Shaw PROPOSAL
Kaitlin M OldroydAustraliaBernardo Dominic NEW
Chavez Q ButtSpainIoni Bowcher NEGOTIATION
Ivar T GauchoRussiaAnna Fali PROPOSAL
James T FlosiRussiaStephen Shaw NEW
Murillo V AmigonGermanyXuxue Feng NEGOTIATION
Izzy Y InouyeBrazilAsiya Javayant NEGOTIATION
Salvatore J KuskoRussiaAnna Fali PROPOSAL
Clifford X ShinkoRussiaIoni Bowcher NEW
Murillo F CaldareraRussiaStephen Shaw PROPOSAL
Stacey T NickaIndiaIvan Magalhaes PROPOSAL
Mayumi L RoysterGermanyIoni Bowcher NEW
Johnson M OstroskyCanadaOnyama Limba RENEWAL
Leja K VocelkaBrazilStephen Shaw NEGOTIATION
Leja Z MorascaSpainAnna Fali PROPOSAL
Rodrigues U FerenczSpainElwin Sharvill RENEWAL
Francesco X CampainAustraliaXuxue Feng QUALIFIED
Jeanfrancois L DilliardSpainAnna Fali NEGOTIATION
Greenwood L IturbideItalyElwin Sharvill RENEWAL
Isabel F AmigonCanadaIoni Bowcher NEGOTIATION
Mayumi G FerenczSpainAsiya Javayant PROPOSAL
Ricardo V WaycottArgentinaAsiya Javayant QUALIFIED
Julie B MorascaCanadaOnyama Limba QUALIFIED
Izzy Q MorascaIndiaAmy Elsner QUALIFIED
Darci V ButtIndiaElwin Sharvill NEW
Jones Q WaycottRussiaIoni Bowcher QUALIFIED
Ivar Y TollnerSpainAmy Elsner PROPOSAL
Kaitlin K CaldareraJapanElwin Sharvill NEGOTIATION
Stacey U PoquetteRussiaBernardo Dominic UNQUALIFIED
Chavez U MorascaArgentinaStephen Shaw PROPOSAL
Ivar R MorascaCanadaAsiya Javayant QUALIFIED
Tony E FerenczGermanyStephen Shaw QUALIFIED
Aika I SlusarskiAustraliaBernardo Dominic RENEWAL
Smith Z MaletGermanyAmy Elsner RENEWAL
Alejandro O PaprockiIndiaIvan Magalhaes PROPOSAL
Emily G CampainRussiaOnyama Limba 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>