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
Kaitlin V MaletAustraliaElwin Sharvill NEW
Arvin K ButtSpainIvan Magalhaes PROPOSAL
Darci I BologniaIndiaOnyama Limba NEW
Wickens R GauchoUnited KingdomOnyama Limba QUALIFIED
Octavia B AlbaresArgentinaElwin Sharvill NEW
Faith M BriddickCanadaOnyama Limba QUALIFIED
Francesco D OldroydAustraliaIoni Bowcher PROPOSAL
Ivar Q WieserGermanyIvan Magalhaes UNQUALIFIED
Arvin U KolmetzAustraliaXuxue Feng UNQUALIFIED
Tony W WhobreyBrazilBernardo Dominic NEW
Stacey Y OldroydUnited KingdomBernardo Dominic RENEWAL
Francesco H NestleItalyStephen Shaw NEW
Stacey A GlickUnited KingdomStephen Shaw NEW
Isabel I FigeroaIndiaAnna Fali PROPOSAL
Octavia E SchemmerSpainElwin Sharvill NEGOTIATION
Emily E InouyeIndiaOnyama Limba NEW
Kadeem W DarakjyCanadaElwin Sharvill RENEWAL
Ashley B BowleyUnited KingdomOnyama Limba PROPOSAL
Francesco D OstroskyRussiaAnna Fali UNQUALIFIED
Ivar A ChuiGermanyAnna Fali QUALIFIED
David R FerenczGermanyStephen Shaw QUALIFIED
Emily L StockhamUnited KingdomOnyama Limba QUALIFIED
Claire J KolmetzGermanyElwin Sharvill PROPOSAL
Sinclair D MaletIndiaAnna Fali PROPOSAL
Leon I PaprockiSpainStephen Shaw NEW
Costa Q DoeFranceStephen Shaw UNQUALIFIED
Misaki P WaycottItalyOnyama Limba NEW
Greenwood Y CampainAustraliaIvan Magalhaes RENEWAL
Mujtaba A DarakjySpainAsiya Javayant UNQUALIFIED
Izzy O SergiGermanyAsiya Javayant NEGOTIATION
Tony K StockhamBrazilStephen Shaw PROPOSAL
Mayumi C RulapaughUnited KingdomAnna Fali UNQUALIFIED
Jones G GauchoUnited KingdomXuxue Feng RENEWAL
Clifford V IturbideArgentinaAmy Elsner RENEWAL
Jones O StockhamAustraliaBernardo Dominic QUALIFIED
Antonio O RulapaughSpainElwin Sharvill RENEWAL
Ricardo N NickaCanadaAmy Elsner RENEWAL
Misaki G ButtItalyAnna Fali PROPOSAL
Aditya J SchemmerRussiaAmy Elsner RENEWAL
Isabel O PoquetteCanadaAmy Elsner RENEWAL
Isabel L GillianIndiaXuxue Feng RENEWAL
James F WieserJapanStephen Shaw NEW
David P CampainIndiaXuxue Feng NEGOTIATION
Isabel X ShinkoJapanXuxue Feng PROPOSAL
David R ButtGermanyIoni Bowcher RENEWAL
Jennifer N NickaArgentinaAmy Elsner QUALIFIED
Mayumi K DoeSpainElwin Sharvill NEGOTIATION
Octavia X CaldareraIndiaXuxue Feng RENEWAL
Emily S SchemmerCanadaAsiya Javayant NEW
Tony M AmigonCanadaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin I CampainSpainElwin Sharvill QUALIFIED
Francesco V RulapaughAustraliaElwin Sharvill QUALIFIED
Aditya C NestleCanadaXuxue Feng RENEWAL
Morrow X DilliardCanadaBernardo Dominic RENEWAL
Arvin W MacleadJapanXuxue Feng NEGOTIATION
Stacey U RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Clifford W DoeRussiaXuxue Feng RENEWAL
Chavez X AmigonBrazilAsiya Javayant RENEWAL
Clifford B GarufiJapanStephen Shaw NEW
Mayumi S ButtCanadaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James V WaycottRussia2024-03-29Chemel, James L Cpa UNQUALIFIED63Ioni Bowcher
1001Octavia C FlosiGermany2024-03-27Rangoni Of Florence UNQUALIFIED4Asiya Javayant
1002David Z GillianSpain2024-04-15Dorl, James J Esq NEW45Asiya Javayant
1003Antonio T DarakjyArgentina2024-04-09Rangoni Of Florence NEGOTIATION92Elwin Sharvill
1004Isabel C ChuiBrazil2024-04-19King, Christopher A Esq NEW20Asiya Javayant
1005Wickens H NickaItaly2024-04-22Buckley Miller Wright NEGOTIATION73Asiya Javayant
1006Isabel B MaletUnited Kingdom2024-03-30Printing Dimensions NEW67Onyama Limba
1007Misaki Z FlosiArgentina2024-04-07Chanay, Jeffrey A Esq NEGOTIATION83Amy Elsner
1008Stacey T ButtArgentina2024-04-13Printing Dimensions RENEWAL20Ivan Magalhaes
1009Aruna R PaprockiSpain2024-03-30Printing Dimensions NEW12Amy Elsner
1010Rodrigues P DoeUnited Kingdom2024-04-22Dorl, James J Esq QUALIFIED84Elwin Sharvill
1011Chavez I BowleyCanada2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED49Stephen Shaw
1012Izzy I MacleadCanada2024-04-12Feltz Printing Service PROPOSAL34Stephen Shaw
1013Darci V WieserArgentina2024-04-09Chemel, James L Cpa NEGOTIATION7Asiya Javayant
1014Morrow H FollerJapan2024-04-08Chemel, James L Cpa PROPOSAL0Elwin Sharvill
1015Jones G KuskoRussia2024-04-11Morlong Associates RENEWAL65Bernardo Dominic
1016Salvatore I VocelkaBrazil2024-04-08King, Christopher A Esq UNQUALIFIED21Onyama Limba
1017Greenwood G CampainUnited Kingdom2024-04-16Chemel, James L Cpa PROPOSAL11Ioni Bowcher
1018Isabel C VocelkaFrance2024-04-22Chapman, Ross E Esq PROPOSAL94Onyama Limba
1019Smith Z GauchoJapan2024-03-29King, Christopher A Esq NEW20Stephen Shaw
1020Kadeem X PerinGermany2024-04-08Feltz Printing Service UNQUALIFIED34Anna Fali
1021Silvio X BowleyIndia2024-03-27Benton, John B Jr NEW87Onyama Limba
1022Silvio K CampainJapan2024-03-30Truhlar And Truhlar Attys NEGOTIATION22Amy Elsner
1023Octavia P ChuiRussia2024-04-22Commercial Press RENEWAL29Xuxue Feng
1024Octavia S FollerAustralia2024-04-06Commercial Press NEW94Elwin Sharvill
1025Aditya B NickaArgentina2024-04-09Dorl, James J Esq PROPOSAL38Ioni Bowcher
1026Nicolas A CaudyRussia2024-04-20Chemel, James L Cpa NEGOTIATION13Amy Elsner
1027Mujtaba X RutaSpain2024-04-17Truhlar And Truhlar Attys NEW69Ioni Bowcher
1028Aditya Q RutaAustralia2024-04-08Buckley Miller Wright RENEWAL1Ivan Magalhaes
1029Kaitlin J MacleadBrazil2024-04-10Commercial Press NEW27Ioni Bowcher
1030Mayumi D GarufiSpain2024-04-19Rangoni Of Florence RENEWAL15Xuxue Feng
1031Cody C SaylorsCanada2024-04-15Chapman, Ross E Esq RENEWAL39Asiya Javayant
1032Arvin P ChuiArgentina2024-04-08Chanay, Jeffrey A Esq RENEWAL43Anna Fali
1033Jennifer K FerenczIndia2024-04-24Feiner Bros PROPOSAL79Stephen Shaw
1034Johnson P DoeArgentina2024-04-20King, Christopher A Esq QUALIFIED71Ioni Bowcher
1035Greenwood X SergiSpain2024-04-23Commercial Press QUALIFIED95Ivan Magalhaes
1036Leja E VenereArgentina2024-04-01Printing Dimensions PROPOSAL82Xuxue Feng
1037Ivar R CaudyItaly2024-04-13Chemel, James L Cpa RENEWAL46Onyama Limba
1038Maria X FlosiAustralia2024-04-11Dorl, James J Esq NEGOTIATION36Amy Elsner
1039Leon C BologniaAustralia2024-04-20Truhlar And Truhlar Attys NEGOTIATION92Ioni Bowcher
1040Tony F PoquetteBrazil2024-03-26Chanay, Jeffrey A Esq NEGOTIATION40Elwin Sharvill
1041Jefferson T KolmetzFrance2024-04-03Morlong Associates QUALIFIED67Elwin Sharvill
1042Julie U BriddickGermany2024-04-16Benton, John B Jr RENEWAL83Xuxue Feng
1043Wickens V RulapaughItaly2024-04-03Commercial Press PROPOSAL3Xuxue Feng
1044Nicolas P KolmetzBrazil2024-04-13Benton, John B Jr NEGOTIATION53Anna Fali
1045Ashley U StockhamJapan2024-04-12Chanay, Jeffrey A Esq RENEWAL1Onyama Limba
1046Sinclair R IturbideAustralia2024-04-03Buckley Miller Wright NEGOTIATION18Anna Fali
1047Faith G KuskoIndia2024-04-11Feiner Bros PROPOSAL55Stephen Shaw
1048Darci T SergiGermany2024-04-08Chapman, Ross E Esq NEGOTIATION6Stephen Shaw
1049Juan W OstroskySpain2024-04-01Morlong Associates NEW83Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Adams X FigeroaGermanyAmy Elsner QUALIFIED
Kaitlin Q PaprockiRussiaXuxue Feng UNQUALIFIED
Munro R IturbideBrazilXuxue Feng UNQUALIFIED
Darci X KuskoAustraliaIoni Bowcher NEW
Morrow Y CaldareraItalyAmy Elsner QUALIFIED
Cody X RoysterItalyIoni Bowcher UNQUALIFIED
Sinclair G PoquetteUnited KingdomAnna Fali NEW
Cody W DilliardArgentinaIoni Bowcher PROPOSAL
Julie R MacleadGermanyXuxue Feng NEGOTIATION
Ivar E SaylorsGermanyIvan Magalhaes QUALIFIED
Rodrigues Z NestleBrazilXuxue Feng PROPOSAL
Mujtaba N RimArgentinaElwin Sharvill NEW
Munro K CaldareraJapanAmy Elsner QUALIFIED
Clifford W TollnerJapanIvan Magalhaes NEW
Francesco T FlosiIndiaXuxue Feng UNQUALIFIED
Murillo D MaletItalyXuxue Feng PROPOSAL
Juan U SlusarskiCanadaAmy Elsner NEGOTIATION
Emily C SchemmerJapanOnyama Limba NEGOTIATION
Jennifer H PoquetteFranceAsiya Javayant UNQUALIFIED
Sinclair C VenereBrazilIoni Bowcher QUALIFIED
Jeanfrancois A WhobreyFranceAsiya Javayant NEGOTIATION
Kaitlin O OstroskyIndiaOnyama Limba RENEWAL
Mayumi W CampainItalyStephen Shaw UNQUALIFIED
Jones G MaletFranceAnna Fali PROPOSAL
Aika K AlbaresJapanAnna Fali NEGOTIATION
Darci H CaldareraJapanXuxue Feng NEGOTIATION
Munro T FollerBrazilBernardo Dominic NEGOTIATION
Darci H InouyeItalyIvan Magalhaes PROPOSAL
Aditya D AlbaresBrazilIvan Magalhaes RENEWAL
Jeanfrancois Y ShinkoBrazilBernardo Dominic QUALIFIED
Antonio O GauchoCanadaIoni Bowcher NEW
Julie Z GauchoRussiaBernardo Dominic PROPOSAL
Isabel L GarufiAustraliaAnna Fali QUALIFIED
Jones A FigeroaGermanyIvan Magalhaes NEGOTIATION
Adams M MarrierSpainIvan Magalhaes NEGOTIATION
Leon X VocelkaFranceAnna Fali PROPOSAL
Maisha H OldroydBrazilIvan Magalhaes RENEWAL
Faith E DilliardRussiaIvan Magalhaes NEW
Kadeem R BriddickItalyAsiya Javayant RENEWAL
Chavez Y OstroskyIndiaIoni Bowcher NEW
Smith X AlbaresFranceXuxue Feng PROPOSAL
Leja A SaylorsArgentinaIvan Magalhaes PROPOSAL
Ivar U IturbideCanadaStephen Shaw RENEWAL
Alejandro N MacleadJapanElwin Sharvill QUALIFIED
Wickens A FollerRussiaElwin Sharvill PROPOSAL
Ivar B PerinUnited KingdomOnyama Limba PROPOSAL
Emily V MaletItalyAmy Elsner NEGOTIATION
Rodrigues J OstroskyItalyOnyama Limba RENEWAL
Deepesh F RutaSpainOnyama Limba PROPOSAL
Ivar H MaletJapanIoni Bowcher NEGOTIATION
Frozen Columns
Name
Mujtaba L Stenseth
Silvio T Caudy
David J Butt
David I Royster
Ashley B Briddick
James I Paprocki
Jennifer G Doe
Jennifer I Briddick
Julie H Briddick
Cody G Gaucho
Aditya O Caudy
Leja C Amigon
Nicolas S Ostrosky
Faith I Perin
David D Rim
Chavez A Kusko
Mayumi H Wieser
Munro P Gaucho
Aika Y Oldroyd
Silvio P Dilliard
Claire D Oldroyd
Silvio Z Chui
Jefferson Z Whobrey
Mujtaba L Inouye
Munro E Gaucho
Darci G Kusko
Nicolas P Stenseth
Maisha O Waycott
Ricardo D Tollner
Jeanfrancois X Whobrey
Chavez P Gaucho
Munro U Oldroyd
Francesco L Rim
Ricardo W Morasca
Kadeem Z Wieser
Aditya V Butt
Mujtaba I Venere
Nicolas G Gaucho
Jennifer O Dilliard
Clifford C Albares
Johnson S Wieser
Ricardo D Nestle
Silvio V Inouye
Adams K Caldarera
Ashley A Garufi
Aruna M Slusarski
Faith R Ferencz
Emily R Kolmetz
Ivar H Nestle
Darci S Doe
IdCountryDate
1000Russia2024-03-28
1001Germany2024-04-05
1002Italy2024-04-17
1003Spain2024-04-02
1004Spain2024-04-14
1005Spain2024-04-12
1006Russia2024-04-01
1007Australia2024-03-29
1008Argentina2024-04-04
1009Germany2024-04-23
1010Brazil2024-04-13
1011Japan2024-04-08
1012France2024-03-30
1013Italy2024-04-21
1014Argentina2024-04-02
1015Japan2024-04-15
1016Japan2024-04-18
1017Argentina2024-04-02
1018France2024-04-05
1019Russia2024-04-01
1020Brazil2024-03-26
1021Germany2024-04-09
1022Australia2024-03-29
1023Japan2024-04-22
1024Australia2024-04-09
1025Spain2024-04-13
1026India2024-04-22
1027Germany2024-04-08
1028Japan2024-04-23
1029Australia2024-04-17
1030United Kingdom2024-04-19
1031Australia2024-04-16
1032Russia2024-04-08
1033India2024-03-31
1034Brazil2024-04-22
1035Italy2024-04-11
1036Japan2024-03-31
1037Canada2024-04-21
1038Spain2024-04-11
1039Australia2024-04-17
1040France2024-03-26
1041Germany2024-04-15
1042Spain2024-04-08
1043Brazil2024-04-23
1044Japan2024-03-26
1045Russia2024-03-28
1046Germany2024-04-21
1047Brazil2024-04-02
1048Canada2024-04-18
1049Germany2024-04-18

On-Demand Data

NameIdCountryDate
Greenwood F Venere1000Italy2024-04-21
Rodrigues A Dilliard1001Argentina2024-04-06
Kadeem E Poquette1002Japan2024-04-19
Aika A Maclead1003France2024-04-18
Misaki B Royster1004India2024-03-26
Emily X Butt1005Japan2024-04-04
David B Doe1006Brazil2024-03-30
Kadeem P Ferencz1007Russia2024-04-13
Jeanfrancois S Chui1008Australia2024-04-15
Isabel X Flosi1009Japan2024-04-03
Aditya E Sergi1010Russia2024-04-06
Stacey F Rim1011Australia2024-04-07
David B Royster1012Japan2024-04-18
Mujtaba O Garufi1013Italy2024-04-11
Wickens G Marrier1014United Kingdom2024-04-16
Salvatore Q Shinko1015Germany2024-04-22
Maisha B Nestle1016Germany2024-03-28
Smith H Sergi1017Russia2024-03-29
Wickens X Perin1018Spain2024-03-30
Misaki R Maclead1019Italy2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar N DarakjyRussiaAmy Elsner NEGOTIATION
Aruna N DoeItalyIvan Magalhaes NEW
Munro C RimFranceOnyama Limba UNQUALIFIED
Octavia Y ChuiFranceStephen Shaw NEW
Nicolas B MarrierItalyIvan Magalhaes QUALIFIED
Maria R PaprockiJapanAsiya Javayant PROPOSAL
Rodrigues X BriddickAustraliaIoni Bowcher UNQUALIFIED
Ashley K PoquetteBrazilStephen Shaw UNQUALIFIED
Greenwood G CaldareraSpainIvan Magalhaes UNQUALIFIED
Ricardo L WhobreyUnited KingdomStephen Shaw PROPOSAL
Darci B SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Julie C TollnerRussiaXuxue Feng NEGOTIATION
Kaitlin R FlosiSpainOnyama Limba NEGOTIATION
Juan F NestleCanadaXuxue Feng QUALIFIED
Claire I PaprockiAustraliaElwin Sharvill QUALIFIED
Darci K CampainCanadaAnna Fali QUALIFIED
Tony P RoysterJapanElwin Sharvill QUALIFIED
Maisha R AmigonIndiaBernardo Dominic NEGOTIATION
Claire Z NickaRussiaBernardo Dominic PROPOSAL
Jones E WieserFranceAnna Fali RENEWAL
Antonio X NickaFranceXuxue Feng QUALIFIED
Antonio Q PerinBrazilIoni Bowcher QUALIFIED
Adams T SchemmerBrazilStephen Shaw RENEWAL
James X AlbaresCanadaAsiya Javayant PROPOSAL
Octavia P PaprockiAustraliaBernardo Dominic RENEWAL
Mayumi W MacleadItalyAmy Elsner QUALIFIED
David Z PerinJapanBernardo Dominic QUALIFIED
Greenwood P GlickUnited KingdomIoni Bowcher NEW
Mujtaba M FlosiJapanAnna Fali NEGOTIATION
Octavia F SlusarskiRussiaElwin Sharvill NEW
James O DoeSpainAnna Fali NEW
Ashley I DarakjyIndiaAmy Elsner NEW
Julie R WieserItalyIvan Magalhaes NEW
David A NickaGermanyBernardo Dominic UNQUALIFIED
Greenwood S PoquetteJapanAmy Elsner QUALIFIED
Clifford E WaycottBrazilIvan Magalhaes PROPOSAL
Clifford F KuskoAustraliaBernardo Dominic NEGOTIATION
Chavez D SergiJapanBernardo Dominic UNQUALIFIED
Stacey Q BriddickIndiaXuxue Feng UNQUALIFIED
Rodrigues D PerinIndiaOnyama Limba UNQUALIFIED

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