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
Nicolas N MorascaIndiaBernardo Dominic RENEWAL
Ricardo H PoquetteSpainBernardo Dominic NEW
Chavez B ChuiJapanAsiya Javayant RENEWAL
Leon G RoysterJapanAnna Fali RENEWAL
James N CampainBrazilBernardo Dominic QUALIFIED
James U MorascaGermanyStephen Shaw QUALIFIED
Tony G GauchoBrazilAnna Fali PROPOSAL
Jones K FigeroaItalyElwin Sharvill QUALIFIED
Izzy E CaldareraRussiaOnyama Limba NEGOTIATION
Leon O GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer I MacleadItalyOnyama Limba NEGOTIATION
Morrow C RulapaughItalyIvan Magalhaes PROPOSAL
Murillo W ChuiRussiaAsiya Javayant RENEWAL
Darci V SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Greenwood A WaycottGermanyAmy Elsner QUALIFIED
Ivar A MorascaBrazilIvan Magalhaes NEGOTIATION
Mayumi Q AlbaresSpainElwin Sharvill QUALIFIED
Jeanfrancois V PerinGermanyAnna Fali QUALIFIED
Faith D GarufiUnited KingdomAsiya Javayant NEW
Kadeem D FlosiFranceStephen Shaw RENEWAL
Mayumi I FollerJapanAmy Elsner NEGOTIATION
Silvio Z GarufiSpainAnna Fali PROPOSAL
Clifford B FerenczBrazilXuxue Feng RENEWAL
Aditya X BowleyUnited KingdomXuxue Feng NEW
David Q MaletItalyBernardo Dominic QUALIFIED
Aditya R MaletItalyAnna Fali QUALIFIED
Izzy J SlusarskiIndiaXuxue Feng NEGOTIATION
Jones H CampainJapanOnyama Limba NEW
James W DilliardUnited KingdomIoni Bowcher QUALIFIED
Maria S BriddickItalyIoni Bowcher UNQUALIFIED
Salvatore N GauchoBrazilIoni Bowcher NEW
Chavez R SchemmerAustraliaStephen Shaw UNQUALIFIED
Darci E AlbaresCanadaStephen Shaw UNQUALIFIED
Murillo T FigeroaAustraliaBernardo Dominic NEGOTIATION
Jefferson C NickaSpainAsiya Javayant RENEWAL
Emily A GauchoJapanXuxue Feng RENEWAL
Aika A OldroydCanadaBernardo Dominic RENEWAL
Cody W ShinkoBrazilXuxue Feng NEW
Aditya T TollnerIndiaBernardo Dominic NEW
Aika S RoysterBrazilBernardo Dominic QUALIFIED
Misaki L DoeArgentinaOnyama Limba NEW
Munro I MacleadGermanyOnyama Limba UNQUALIFIED
Ricardo E StockhamCanadaElwin Sharvill UNQUALIFIED
Juan X RoysterJapanAsiya Javayant NEW
Izzy X FlosiAustraliaStephen Shaw RENEWAL
Ivar B DarakjyBrazilElwin Sharvill PROPOSAL
Octavia K RimSpainAsiya Javayant NEW
Kadeem O SchemmerArgentinaBernardo Dominic QUALIFIED
Nicolas S KolmetzGermanyAsiya Javayant NEW
Cody K KuskoRussiaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith D FigeroaFranceIvan Magalhaes UNQUALIFIED
Smith F SchemmerCanadaElwin Sharvill QUALIFIED
Salvatore T AmigonBrazilElwin Sharvill RENEWAL
Alejandro B FlosiCanadaIoni Bowcher QUALIFIED
Morrow C MaletGermanyElwin Sharvill QUALIFIED
David F WaycottRussiaIvan Magalhaes PROPOSAL
Darci B GlickSpainXuxue Feng NEW
Jones B AmigonSpainAsiya Javayant NEGOTIATION
Antonio W WaycottFranceStephen Shaw NEGOTIATION
Mujtaba E DarakjyArgentinaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba F MaletSpain2024-04-11Morlong Associates RENEWAL99Amy Elsner
1001Emily Q KuskoItaly2024-04-15Chemel, James L Cpa NEW54Asiya Javayant
1002Faith M WhobreyArgentina2024-04-12Chemel, James L Cpa UNQUALIFIED93Ioni Bowcher
1003Rodrigues B PoquetteIndia2024-04-23Truhlar And Truhlar Attys NEGOTIATION91Ioni Bowcher
1004Francesco B PerinFrance2024-03-31Commercial Press PROPOSAL14Onyama Limba
1005Faith F WaycottJapan2024-04-01King, Christopher A Esq UNQUALIFIED93Elwin Sharvill
1006Mujtaba C RoysterSpain2024-04-09Dorl, James J Esq RENEWAL90Anna Fali
1007Greenwood P GillianSpain2024-04-04Rangoni Of Florence NEGOTIATION45Ioni Bowcher
1008Isabel J IturbideGermany2024-04-12Commercial Press UNQUALIFIED22Amy Elsner
1009Chavez S KolmetzItaly2024-04-16Dorl, James J Esq RENEWAL43Asiya Javayant
1010Mujtaba W GillianItaly2024-04-05Chemel, James L Cpa RENEWAL10Stephen Shaw
1011Mayumi K SergiAustralia2024-04-22Chemel, James L Cpa QUALIFIED25Stephen Shaw
1012Salvatore K WieserFrance2024-03-29Buckley Miller Wright PROPOSAL90Amy Elsner
1013Silvio F MaletJapan2024-03-30Rousseaux, Michael Esq NEGOTIATION86Onyama Limba
1014Mujtaba I ButtUnited Kingdom2024-04-14Feiner Bros UNQUALIFIED75Onyama Limba
1015Aruna M WieserSpain2024-04-01Benton, John B Jr RENEWAL46Elwin Sharvill
1016Julie S CampainGermany2024-03-28Commercial Press NEW55Amy Elsner
1017Nicolas D IturbideGermany2024-04-15Dorl, James J Esq PROPOSAL78Asiya Javayant
1018Darci B GillianArgentina2024-04-22Feiner Bros PROPOSAL68Amy Elsner
1019Misaki L SaylorsItaly2024-04-08Chanay, Jeffrey A Esq RENEWAL27Ioni Bowcher
1020Ivar D OldroydCanada2024-04-24Feltz Printing Service UNQUALIFIED99Xuxue Feng
1021Mujtaba Q VocelkaFrance2024-04-13Truhlar And Truhlar Attys RENEWAL47Amy Elsner
1022Isabel I WaycottBrazil2024-04-17Morlong Associates UNQUALIFIED69Bernardo Dominic
1023Francesco D WieserIndia2024-04-08Chapman, Ross E Esq RENEWAL79Bernardo Dominic
1024Salvatore E StockhamUnited Kingdom2024-04-08Buckley Miller Wright UNQUALIFIED93Amy Elsner
1025Wickens B VocelkaCanada2024-04-13Truhlar And Truhlar Attys RENEWAL3Onyama Limba
1026Murillo D DoeArgentina2024-04-01Benton, John B Jr PROPOSAL95Xuxue Feng
1027Octavia B SchemmerArgentina2024-03-30Commercial Press NEW34Ivan Magalhaes
1028Ricardo B GauchoJapan2024-03-29Buckley Miller Wright PROPOSAL58Asiya Javayant
1029Isabel P AmigonCanada2024-04-05Buckley Miller Wright QUALIFIED40Ioni Bowcher
1030Leja M VocelkaIndia2024-04-15Benton, John B Jr PROPOSAL43Xuxue Feng
1031Murillo O MacleadAustralia2024-04-12Printing Dimensions RENEWAL64Asiya Javayant
1032Greenwood M KuskoBrazil2024-04-02Chanay, Jeffrey A Esq NEGOTIATION81Ioni Bowcher
1033James X PerinCanada2024-04-09Truhlar And Truhlar Attys NEW16Anna Fali
1034Mujtaba F VocelkaCanada2024-04-14Rousseaux, Michael Esq NEW47Elwin Sharvill
1035Costa W WaycottCanada2024-04-04Buckley Miller Wright RENEWAL16Amy Elsner
1036Mayumi O SaylorsSpain2024-04-21Rangoni Of Florence NEW93Ivan Magalhaes
1037Ashley K RoysterBrazil2024-04-04Commercial Press PROPOSAL20Elwin Sharvill
1038Smith I KolmetzCanada2024-04-23Chapman, Ross E Esq QUALIFIED66Onyama Limba
1039Aditya T GlickGermany2024-04-02Benton, John B Jr UNQUALIFIED6Xuxue Feng
1040Misaki L WhobreySpain2024-04-25Printing Dimensions UNQUALIFIED78Bernardo Dominic
1041James R MaletGermany2024-04-20Chemel, James L Cpa UNQUALIFIED42Xuxue Feng
1042Stacey X CaldareraCanada2024-04-15Morlong Associates PROPOSAL56Onyama Limba
1043James J PaprockiFrance2024-04-15Chapman, Ross E Esq RENEWAL37Elwin Sharvill
1044David N MaletCanada2024-03-29Chapman, Ross E Esq UNQUALIFIED21Stephen Shaw
1045Leon P DilliardItaly2024-03-29Chapman, Ross E Esq NEW69Ioni Bowcher
1046Deepesh Q RulapaughSpain2024-04-09Morlong Associates RENEWAL14Stephen Shaw
1047Alejandro C AlbaresArgentina2024-04-01Feiner Bros RENEWAL84Elwin Sharvill
1048Salvatore Y CampainCanada2024-04-21Feltz Printing Service NEW40Bernardo Dominic
1049Isabel F BriddickRussia2024-04-06Feiner Bros NEW44Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Smith D FigeroaFranceAsiya Javayant PROPOSAL
Aika E SlusarskiRussiaIoni Bowcher NEW
Ashley P OldroydUnited KingdomAmy Elsner NEGOTIATION
Jefferson H VocelkaFranceBernardo Dominic QUALIFIED
Leja T KuskoIndiaIoni Bowcher NEGOTIATION
Jones H RulapaughIndiaAmy Elsner RENEWAL
Adams K FlosiRussiaAmy Elsner QUALIFIED
Kadeem W NickaArgentinaAmy Elsner UNQUALIFIED
Smith V MorascaJapanXuxue Feng RENEWAL
Nicolas G MaletBrazilIvan Magalhaes NEW
Ricardo Z VocelkaUnited KingdomAmy Elsner NEW
Salvatore Z MaletIndiaAnna Fali PROPOSAL
Chavez X BologniaAustraliaStephen Shaw UNQUALIFIED
Leja O OldroydFranceAsiya Javayant RENEWAL
Jennifer M GarufiFranceAnna Fali UNQUALIFIED
Clifford V StockhamIndiaXuxue Feng QUALIFIED
Misaki V MaletFranceOnyama Limba NEGOTIATION
Julie B MaletAustraliaOnyama Limba NEW
James I NestleUnited KingdomIoni Bowcher RENEWAL
Ivar K DarakjyBrazilElwin Sharvill NEGOTIATION
Cody A VenereFranceAsiya Javayant UNQUALIFIED
Cody C AmigonUnited KingdomOnyama Limba QUALIFIED
Leon B RoysterIndiaAmy Elsner NEGOTIATION
Tony N PaprockiAustraliaIvan Magalhaes NEGOTIATION
Antonio M IturbideCanadaIvan Magalhaes UNQUALIFIED
Jennifer N WaycottAustraliaOnyama Limba PROPOSAL
Leon D RulapaughGermanyAnna Fali NEGOTIATION
Wickens D FollerFranceAsiya Javayant QUALIFIED
Leon W MaletBrazilAsiya Javayant RENEWAL
Maisha W GauchoFranceStephen Shaw PROPOSAL
Francesco X NickaItalyBernardo Dominic QUALIFIED
Adams Y GarufiUnited KingdomAmy Elsner QUALIFIED
Arvin E SchemmerUnited KingdomAnna Fali RENEWAL
David K SergiGermanyIoni Bowcher RENEWAL
Julie B RoysterAustraliaIoni Bowcher NEW
James R DilliardUnited KingdomBernardo Dominic NEGOTIATION
Claire A VocelkaAustraliaIoni Bowcher PROPOSAL
Leon H AlbaresGermanyIvan Magalhaes PROPOSAL
Francesco D MaletArgentinaAnna Fali NEW
Claire P SchemmerAustraliaStephen Shaw NEGOTIATION
Chavez A FlosiCanadaStephen Shaw NEGOTIATION
Salvatore N MorascaSpainIvan Magalhaes NEW
Johnson O RoysterFranceIoni Bowcher QUALIFIED
Maria J BowleyFranceAmy Elsner NEGOTIATION
Maria R NestleBrazilIvan Magalhaes UNQUALIFIED
Munro V DilliardAustraliaStephen Shaw RENEWAL
Juan K WhobreyFranceElwin Sharvill UNQUALIFIED
Emily D SchemmerGermanyIvan Magalhaes RENEWAL
Arvin C ButtRussiaIoni Bowcher NEW
Jones Z IturbideUnited KingdomBernardo Dominic PROPOSAL
Frozen Columns
Name
Maisha Q Bolognia
Sinclair O Stenseth
Arvin S Butt
Aika A Saylors
Mujtaba Y Rulapaugh
Deepesh W Waycott
Arvin X Maclead
Deepesh L Nicka
Sinclair R Maclead
Emily Y Ferencz
Costa J Morasca
Darci W Amigon
Arvin Z Stenseth
Aruna A Bowley
Clifford X Nestle
Jefferson R Butt
James A Malet
Alejandro Q Albares
Antonio W Dilliard
Silvio O Amigon
Mujtaba H Flosi
Jefferson W Gaucho
Deepesh G Stenseth
Kadeem R Rulapaugh
Leon F Chui
Mujtaba C Butt
Salvatore E Ostrosky
Chavez H Campain
Aika T Maclead
Mayumi K Whobrey
Ricardo G Ruta
Chavez Q Oldroyd
Leon M Nicka
Claire I Chui
Nicolas T Shinko
Mayumi Y Kusko
Wickens Y Stenseth
Johnson D Chui
Deepesh T Ruta
Aika R Slusarski
Chavez C Vocelka
Darci E Rulapaugh
Morrow U Maclead
Aditya C Schemmer
Antonio D Caldarera
David W Royster
Sinclair V Campain
Adams X Stenseth
Stacey W Venere
Antonio X Chui
IdCountryDate
1000Italy2024-04-20
1001Spain2024-03-30
1002Japan2024-04-21
1003Germany2024-04-10
1004Italy2024-04-19
1005Brazil2024-04-09
1006Argentina2024-04-08
1007Spain2024-03-29
1008Spain2024-04-22
1009Italy2024-04-02
1010Spain2024-04-16
1011France2024-04-21
1012Russia2024-04-19
1013India2024-04-12
1014Argentina2024-04-20
1015Germany2024-04-09
1016India2024-04-24
1017Russia2024-03-31
1018Argentina2024-04-09
1019Russia2024-04-26
1020United Kingdom2024-04-11
1021Russia2024-03-30
1022Australia2024-04-12
1023Spain2024-04-18
1024Japan2024-04-03
1025Spain2024-04-11
1026Italy2024-03-30
1027Japan2024-03-31
1028Germany2024-04-10
1029Australia2024-04-12
1030Russia2024-04-22
1031Russia2024-04-10
1032Germany2024-04-09
1033Germany2024-04-14
1034Spain2024-04-14
1035Spain2024-04-20
1036Canada2024-04-02
1037Japan2024-04-09
1038Japan2024-04-17
1039Brazil2024-04-19
1040Germany2024-04-06
1041India2024-04-12
1042Spain2024-04-23
1043Italy2024-04-19
1044Spain2024-04-26
1045Australia2024-04-10
1046France2024-04-22
1047Canada2024-04-11
1048Russia2024-03-29
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Smith L Flosi1000France2024-04-18
Izzy O Glick1001Canada2024-04-21
Aditya L Gaucho1002Russia2024-04-12
Jeanfrancois T Campain1003Brazil2024-04-04
Jennifer K Tollner1004Argentina2024-04-02
Ashley Y Schemmer1005Spain2024-04-06
Jefferson L Nestle1006Canada2024-04-04
Smith V Bowley1007Australia2024-04-20
Juan I Perin1008Brazil2024-04-02
David C Tollner1009Spain2024-04-18
Faith T Nicka1010Brazil2024-04-17
Misaki P Glick1011India2024-04-20
Cody L Royster1012Brazil2024-03-31
Maisha S Glick1013Italy2024-04-06
Antonio J Flosi1014Japan2024-04-18
Murillo V Sergi1015Italy2024-04-13
Jeanfrancois T Paprocki1016Canada2024-04-08
Leon Y Gaucho1017Brazil2024-04-07
Mayumi S Glick1018United Kingdom2024-04-19
Clifford P Ruta1019Argentina2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria R GarufiJapanOnyama Limba QUALIFIED
Salvatore C DilliardBrazilStephen Shaw PROPOSAL
Francesco A BowleyGermanyIvan Magalhaes NEW
Antonio H BologniaIndiaIvan Magalhaes QUALIFIED
Johnson E GlickAustraliaStephen Shaw UNQUALIFIED
David F PoquetteBrazilStephen Shaw UNQUALIFIED
Faith P GauchoRussiaAmy Elsner NEW
Misaki V DoeSpainAsiya Javayant NEW
Juan T PerinSpainXuxue Feng RENEWAL
Clifford E FigeroaFranceAnna Fali PROPOSAL
Clifford M BologniaSpainOnyama Limba PROPOSAL
Sinclair D StockhamArgentinaXuxue Feng UNQUALIFIED
Ivar D WhobreyBrazilIoni Bowcher RENEWAL
Ivar S PaprockiGermanyAmy Elsner UNQUALIFIED
Kadeem D FerenczFranceBernardo Dominic PROPOSAL
Octavia J WaycottIndiaAnna Fali PROPOSAL
Jefferson F OstroskyRussiaXuxue Feng QUALIFIED
Kadeem X MorascaGermanyAsiya Javayant UNQUALIFIED
Izzy S OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson N RutaAustraliaAsiya Javayant PROPOSAL
Aruna J MacleadAustraliaAmy Elsner QUALIFIED
Aruna O GlickBrazilIoni Bowcher UNQUALIFIED
Salvatore C GarufiUnited KingdomStephen Shaw QUALIFIED
Maria W KolmetzIndiaXuxue Feng QUALIFIED
Smith J MaletFranceIoni Bowcher UNQUALIFIED
Octavia U IturbideGermanyXuxue Feng RENEWAL
Mujtaba Q RulapaughItalyIoni Bowcher QUALIFIED
Morrow G TollnerAustraliaXuxue Feng PROPOSAL
Munro A SlusarskiBrazilStephen Shaw PROPOSAL
Darci C SaylorsAustraliaAnna Fali NEGOTIATION
Arvin O RulapaughIndiaBernardo Dominic UNQUALIFIED
Jennifer R RulapaughIndiaAmy Elsner PROPOSAL
Deepesh O ShinkoRussiaStephen Shaw QUALIFIED
Aika I MaletItalyIvan Magalhaes QUALIFIED
Smith K KolmetzSpainAnna Fali NEW
Darci L DarakjyRussiaBernardo Dominic PROPOSAL
Leon A AlbaresJapanXuxue Feng PROPOSAL
Leja Y CaldareraFranceOnyama Limba NEW
Leon V ShinkoBrazilStephen Shaw NEGOTIATION
Munro U PaprockiAustraliaBernardo Dominic 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>