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
Aditya T GarufiUnited KingdomAmy Elsner PROPOSAL
Aditya Y BologniaIndiaIoni Bowcher NEW
Misaki G SergiSpainStephen Shaw NEGOTIATION
Rodrigues F CaldareraIndiaIvan Magalhaes UNQUALIFIED
Chavez T OldroydSpainIoni Bowcher QUALIFIED
Stacey A MorascaFranceBernardo Dominic QUALIFIED
Ashley I OldroydRussiaOnyama Limba RENEWAL
Octavia T DarakjySpainAnna Fali NEW
Octavia B DarakjyArgentinaIvan Magalhaes NEW
Aika D VocelkaArgentinaIvan Magalhaes PROPOSAL
Greenwood B VocelkaJapanAsiya Javayant PROPOSAL
Antonio O CaldareraUnited KingdomAmy Elsner PROPOSAL
Wickens J BologniaAustraliaStephen Shaw NEW
Ivar C MarrierIndiaXuxue Feng NEGOTIATION
James N ShinkoAustraliaIvan Magalhaes UNQUALIFIED
Leon N SergiRussiaAsiya Javayant NEGOTIATION
Mayumi R MaletCanadaElwin Sharvill PROPOSAL
Jennifer J DilliardUnited KingdomAsiya Javayant NEW
Morrow G BowleyIndiaStephen Shaw QUALIFIED
Faith H RimIndiaIvan Magalhaes UNQUALIFIED
Jones X RoysterRussiaIvan Magalhaes NEGOTIATION
Cody M BowleyJapanStephen Shaw NEW
Faith M BowleyIndiaStephen Shaw NEW
Morrow F ButtAustraliaStephen Shaw QUALIFIED
Francesco O CaldareraGermanyIoni Bowcher QUALIFIED
Antonio R RulapaughRussiaElwin Sharvill QUALIFIED
Ivar L DilliardIndiaAnna Fali NEW
Emily J BriddickSpainStephen Shaw UNQUALIFIED
Aditya V ChuiUnited KingdomXuxue Feng NEW
Kaitlin W FollerItalyXuxue Feng PROPOSAL
Izzy R SergiUnited KingdomBernardo Dominic RENEWAL
Julie Z PerinBrazilAsiya Javayant QUALIFIED
Antonio Q MorascaJapanOnyama Limba QUALIFIED
Aditya N WaycottRussiaIoni Bowcher NEGOTIATION
Claire S GauchoBrazilXuxue Feng NEW
Mayumi L FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba B MorascaCanadaIoni Bowcher NEW
Cody K SchemmerAustraliaIvan Magalhaes NEGOTIATION
Leon N DoeItalyAnna Fali PROPOSAL
Stacey E AmigonCanadaIoni Bowcher PROPOSAL
Nicolas J AlbaresItalyBernardo Dominic PROPOSAL
Cody N MaletItalyAmy Elsner NEGOTIATION
Smith G CampainBrazilElwin Sharvill NEW
Greenwood B TollnerCanadaOnyama Limba RENEWAL
Jennifer G MaletCanadaAsiya Javayant RENEWAL
Ivar R MacleadSpainAsiya Javayant QUALIFIED
Mujtaba F PaprockiGermanyStephen Shaw RENEWAL
Cody B KolmetzBrazilOnyama Limba RENEWAL
Jeanfrancois Y WieserAustraliaIoni Bowcher PROPOSAL
Maisha R NickaUnited KingdomElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy R GillianSpainStephen Shaw NEW
Jennifer W FerenczJapanXuxue Feng PROPOSAL
Murillo N StensethFranceOnyama Limba UNQUALIFIED
Mayumi F GillianArgentinaAmy Elsner UNQUALIFIED
Ivar Q SergiCanadaXuxue Feng RENEWAL
Cody Y FlosiItalyBernardo Dominic UNQUALIFIED
Mayumi B InouyeArgentinaAmy Elsner NEW
Emily I RimArgentinaXuxue Feng UNQUALIFIED
Jones F WaycottRussiaAmy Elsner RENEWAL
Ashley Q StensethBrazilElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore Y PaprockiFrance2024-04-03Chapman, Ross E Esq UNQUALIFIED47Ivan Magalhaes
1001James M DoeCanada2024-04-27Commercial Press RENEWAL78Onyama Limba
1002Smith X ShinkoArgentina2024-04-14Rangoni Of Florence NEGOTIATION8Elwin Sharvill
1003Morrow R InouyeSpain2024-04-12Dorl, James J Esq QUALIFIED86Asiya Javayant
1004Chavez X FigeroaFrance2024-04-07King, Christopher A Esq RENEWAL51Xuxue Feng
1005Rodrigues Y MarrierSpain2024-04-09Morlong Associates QUALIFIED73Ioni Bowcher
1006Aditya W RulapaughGermany2024-04-04Rousseaux, Michael Esq NEGOTIATION59Xuxue Feng
1007Claire F OldroydGermany2024-04-28Commercial Press QUALIFIED35Bernardo Dominic
1008Ashley Q DilliardGermany2024-04-27Buckley Miller Wright NEGOTIATION83Ivan Magalhaes
1009Claire T GlickFrance2024-04-18Rousseaux, Michael Esq RENEWAL90Onyama Limba
1010Arvin T SergiAustralia2024-04-23King, Christopher A Esq NEGOTIATION79Ivan Magalhaes
1011Francesco E FerenczRussia2024-04-20Dorl, James J Esq NEW12Onyama Limba
1012Darci O MaletIndia2024-04-07Chapman, Ross E Esq UNQUALIFIED75Ioni Bowcher
1013Adams G ChuiCanada2024-04-28Buckley Miller Wright UNQUALIFIED7Anna Fali
1014Aruna B CaldareraFrance2024-04-19Commercial Press NEW1Anna Fali
1015Alejandro Q CaldareraRussia2024-04-20Buckley Miller Wright QUALIFIED60Ioni Bowcher
1016Darci A GauchoCanada2024-04-28Rousseaux, Michael Esq NEW32Onyama Limba
1017Antonio L WhobreyArgentina2024-04-27Rangoni Of Florence UNQUALIFIED41Ioni Bowcher
1018Aditya X BriddickItaly2024-04-02Chemel, James L Cpa QUALIFIED43Stephen Shaw
1019Mujtaba S NestleBrazil2024-04-13Truhlar And Truhlar Attys UNQUALIFIED39Onyama Limba
1020Aditya G KuskoItaly2024-04-19Printing Dimensions UNQUALIFIED10Onyama Limba
1021Adams I KolmetzJapan2024-04-16Benton, John B Jr NEGOTIATION43Stephen Shaw
1022Maisha Y DoeIndia2024-04-21Truhlar And Truhlar Attys NEGOTIATION36Bernardo Dominic
1023Izzy Q OldroydJapan2024-04-21Chemel, James L Cpa PROPOSAL65Stephen Shaw
1024Aditya Z RutaIndia2024-04-02Rousseaux, Michael Esq QUALIFIED38Xuxue Feng
1025Jeanfrancois U GlickBrazil2024-04-03Chemel, James L Cpa QUALIFIED39Elwin Sharvill
1026Stacey Y NickaGermany2024-04-01Truhlar And Truhlar Attys QUALIFIED22Ioni Bowcher
1027Wickens Y RoysterIndia2024-04-23Commercial Press RENEWAL90Asiya Javayant
1028Jones C DilliardUnited Kingdom2024-04-16Rousseaux, Michael Esq NEGOTIATION74Xuxue Feng
1029Cody M AmigonGermany2024-04-14King, Christopher A Esq NEW58Xuxue Feng
1030Stacey P KolmetzBrazil2024-04-05Dorl, James J Esq NEW19Bernardo Dominic
1031Costa B SaylorsArgentina2024-04-07Feiner Bros NEW85Ioni Bowcher
1032Faith G ShinkoArgentina2024-04-20Buckley Miller Wright PROPOSAL90Ivan Magalhaes
1033Kaitlin B VenereGermany2024-04-28Chapman, Ross E Esq RENEWAL79Bernardo Dominic
1034Stacey J FigeroaFrance2024-04-12Chemel, James L Cpa PROPOSAL76Onyama Limba
1035Wickens L SlusarskiUnited Kingdom2024-04-04Benton, John B Jr PROPOSAL12Bernardo Dominic
1036Emily S PerinSpain2024-04-21Chemel, James L Cpa UNQUALIFIED12Ivan Magalhaes
1037Jennifer Q VocelkaIndia2024-04-22Benton, John B Jr NEW4Bernardo Dominic
1038Silvio C WieserCanada2024-04-06Dorl, James J Esq UNQUALIFIED91Xuxue Feng
1039Misaki L AmigonArgentina2024-04-19Dorl, James J Esq RENEWAL64Onyama Limba
1040Misaki J SlusarskiUnited Kingdom2024-04-05Chanay, Jeffrey A Esq RENEWAL10Xuxue Feng
1041Morrow O MorascaRussia2024-04-03Rousseaux, Michael Esq RENEWAL64Elwin Sharvill
1042Claire T IturbideCanada2024-04-28Rousseaux, Michael Esq NEW90Ioni Bowcher
1043Francesco I FigeroaFrance2024-04-24Chapman, Ross E Esq NEW69Asiya Javayant
1044Darci U MaletFrance2024-04-11Truhlar And Truhlar Attys NEGOTIATION55Stephen Shaw
1045Chavez U FollerArgentina2024-04-23Dorl, James J Esq QUALIFIED79Amy Elsner
1046Tony P BowleyAustralia2024-04-06Printing Dimensions RENEWAL9Bernardo Dominic
1047Mayumi G PerinItaly2024-04-03King, Christopher A Esq UNQUALIFIED68Anna Fali
1048Emily D CaudyUnited Kingdom2024-04-16Feiner Bros UNQUALIFIED77Ioni Bowcher
1049Jefferson T RimSpain2024-04-01Printing Dimensions UNQUALIFIED64Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Octavia E FollerCanadaAnna Fali NEW
James V GlickItalyIvan Magalhaes UNQUALIFIED
Rodrigues R MarrierIndiaAsiya Javayant NEGOTIATION
Maria N SlusarskiJapanElwin Sharvill NEGOTIATION
Nicolas L MacleadSpainAmy Elsner RENEWAL
Octavia X ShinkoGermanyElwin Sharvill NEW
Salvatore K GauchoGermanyOnyama Limba RENEWAL
Chavez H CaldareraBrazilStephen Shaw NEGOTIATION
Silvio C StockhamFranceIoni Bowcher RENEWAL
Antonio L KuskoArgentinaElwin Sharvill PROPOSAL
Rodrigues R FigeroaUnited KingdomIvan Magalhaes RENEWAL
Munro I PaprockiUnited KingdomAnna Fali RENEWAL
Rodrigues H InouyeItalyElwin Sharvill NEW
Deepesh R OldroydRussiaIvan Magalhaes PROPOSAL
Clifford L MaletItalyOnyama Limba QUALIFIED
Emily X RimBrazilStephen Shaw PROPOSAL
Julie H VocelkaUnited KingdomXuxue Feng NEW
Cody W PoquetteRussiaIvan Magalhaes UNQUALIFIED
Leja X DarakjyJapanAnna Fali NEW
Izzy V DilliardJapanXuxue Feng NEW
Jeanfrancois A CaudyFranceXuxue Feng NEGOTIATION
Antonio Y SchemmerItalyAsiya Javayant NEGOTIATION
Cody A SlusarskiItalyElwin Sharvill QUALIFIED
David J FerenczGermanyStephen Shaw UNQUALIFIED
Juan W GauchoBrazilAsiya Javayant QUALIFIED
Deepesh J NickaArgentinaAmy Elsner RENEWAL
Stacey C AlbaresBrazilBernardo Dominic UNQUALIFIED
Clifford Z FollerItalyElwin Sharvill NEW
Leon W FigeroaSpainAmy Elsner PROPOSAL
Deepesh O RimSpainStephen Shaw UNQUALIFIED
Cody A AlbaresItalyStephen Shaw NEGOTIATION
Kadeem B FlosiJapanAsiya Javayant RENEWAL
Stacey V SlusarskiJapanAmy Elsner UNQUALIFIED
Kadeem Q OstroskyItalyOnyama Limba NEW
Aditya V PerinGermanyAmy Elsner NEGOTIATION
Jennifer G ChuiCanadaStephen Shaw PROPOSAL
Stacey Y StockhamJapanStephen Shaw RENEWAL
Morrow P SlusarskiCanadaXuxue Feng NEW
James T MaletItalyIvan Magalhaes UNQUALIFIED
James C CampainRussiaIoni Bowcher QUALIFIED
Salvatore N CaudyFranceIvan Magalhaes NEGOTIATION
Rodrigues H NickaItalyStephen Shaw NEW
Aika S RutaRussiaStephen Shaw NEW
Arvin G AmigonJapanOnyama Limba RENEWAL
Adams W ChuiBrazilAmy Elsner NEW
Jeanfrancois I DarakjyIndiaXuxue Feng NEW
Claire T FerenczUnited KingdomOnyama Limba NEGOTIATION
Cody W RimJapanIvan Magalhaes PROPOSAL
Leja W AmigonFranceOnyama Limba UNQUALIFIED
Maria T CampainIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Stacey N Perin
Stacey I Figeroa
Aika G Malet
Ivar C Dilliard
Adams U Waycott
Clifford R Albares
Mayumi U Caldarera
Leon M Gaucho
Darci K Nicka
Smith E Amigon
Costa F Poquette
Rodrigues E Waycott
Juan A Ruta
Jefferson N Butt
Costa Z Vocelka
Cody N Saylors
Smith C Rulapaugh
Mayumi I Darakjy
Kaitlin O Oldroyd
Clifford G Bowley
Silvio E Malet
Silvio B Briddick
Munro L Malet
Deepesh L Malet
Costa T Stenseth
Aika M Rim
Kaitlin G Caudy
Aditya W Sergi
Maisha L Stenseth
Francesco Q Venere
Antonio T Whobrey
Jones E Inouye
Adams B Ferencz
Stacey C Inouye
Wickens F Tollner
Salvatore V Poquette
Morrow U Tollner
Kadeem B Malet
Costa A Slusarski
Ashley K Shinko
Darci G Briddick
Mujtaba L Perin
Stacey F Ostrosky
Salvatore Y Bolognia
Aruna U Doe
Octavia H Malet
Sinclair Z Schemmer
Alejandro J Inouye
Leja C Iturbide
Ashley N Saylors
IdCountryDate
1000Italy2024-04-25
1001Russia2024-04-25
1002Brazil2024-04-07
1003Spain2024-04-05
1004India2024-04-12
1005Argentina2024-04-03
1006Canada2024-04-09
1007Italy2024-04-15
1008Spain2024-04-07
1009France2024-04-05
1010Spain2024-04-05
1011France2024-04-02
1012Japan2024-04-12
1013France2024-04-12
1014France2024-04-24
1015Brazil2024-04-13
1016Canada2024-03-30
1017Russia2024-04-02
1018France2024-04-05
1019United Kingdom2024-04-28
1020Canada2024-04-09
1021Spain2024-04-24
1022Spain2024-04-09
1023Australia2024-04-17
1024Argentina2024-03-30
1025Japan2024-04-05
1026India2024-04-11
1027Spain2024-04-16
1028Italy2024-04-16
1029Russia2024-04-09
1030United Kingdom2024-04-01
1031Brazil2024-04-01
1032Argentina2024-04-15
1033Spain2024-04-15
1034Italy2024-04-04
1035Spain2024-04-11
1036Canada2024-04-03
1037United Kingdom2024-04-25
1038Japan2024-04-22
1039United Kingdom2024-03-31
1040Germany2024-04-08
1041Australia2024-04-28
1042Canada2024-04-23
1043India2024-04-02
1044Canada2024-04-15
1045Germany2024-04-10
1046Japan2024-04-04
1047United Kingdom2024-04-03
1048Germany2024-04-10
1049Germany2024-04-04

On-Demand Data

NameIdCountryDate
Rodrigues N Marrier1000Russia2024-04-10
Izzy B Stenseth1001Japan2024-04-14
Misaki Y Glick1002Italy2024-04-28
Antonio X Rim1003Australia2024-04-09
David O Ruta1004Russia2024-04-27
Francesco J Slusarski1005Spain2024-04-12
Jefferson S Butt1006Argentina2024-04-06
Kaitlin N Kolmetz1007Australia2024-04-19
Maria V Kolmetz1008Brazil2024-04-14
Wickens C Wieser1009Japan2024-04-11
Munro Z Oldroyd1010United Kingdom2024-04-21
Salvatore V Flosi1011France2024-04-13
Deepesh M Garufi1012Germany2024-04-22
Izzy S Amigon1013Argentina2024-04-26
Aika U Nestle1014Spain2024-04-10
Ashley U Inouye1015Spain2024-04-06
Faith O Slusarski1016Australia2024-03-30
Stacey Z Figeroa1017Spain2024-03-30
Tony R Slusarski1018Spain2024-04-21
Francesco C Kusko1019United Kingdom2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa O AmigonAustraliaAmy Elsner RENEWAL
Tony O WhobreyIndiaAnna Fali PROPOSAL
Aruna F CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Isabel A BriddickItalyAnna Fali RENEWAL
Francesco B FigeroaGermanyIoni Bowcher RENEWAL
Leon L RoysterCanadaAnna Fali NEW
Greenwood F ChuiArgentinaIoni Bowcher UNQUALIFIED
Clifford O PaprockiSpainOnyama Limba RENEWAL
Nicolas M MaletFranceIvan Magalhaes PROPOSAL
Tony Z NickaArgentinaBernardo Dominic RENEWAL
Faith F GlickBrazilBernardo Dominic QUALIFIED
Smith M StensethUnited KingdomOnyama Limba NEW
Juan D SaylorsBrazilAmy Elsner RENEWAL
Leja X SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois I RoysterArgentinaOnyama Limba NEGOTIATION
Mujtaba G KolmetzAustraliaStephen Shaw NEGOTIATION
Jeanfrancois L TollnerRussiaAmy Elsner PROPOSAL
Isabel W VocelkaSpainBernardo Dominic PROPOSAL
Octavia Q SchemmerRussiaAnna Fali QUALIFIED
Misaki J SlusarskiBrazilAsiya Javayant RENEWAL
Greenwood I DoeAustraliaIvan Magalhaes UNQUALIFIED
Maisha K PaprockiBrazilIoni Bowcher NEGOTIATION
Kadeem E GillianGermanyStephen Shaw QUALIFIED
Smith W FigeroaCanadaIoni Bowcher NEW
Mujtaba A KuskoFranceIvan Magalhaes PROPOSAL
Aditya S RoysterGermanyIvan Magalhaes NEGOTIATION
Cody E AlbaresBrazilOnyama Limba RENEWAL
Deepesh W PerinUnited KingdomIvan Magalhaes QUALIFIED
Leja X InouyeRussiaXuxue Feng NEW
Aruna V ChuiIndiaBernardo Dominic UNQUALIFIED
Mujtaba S WaycottCanadaElwin Sharvill QUALIFIED
Juan L PerinIndiaStephen Shaw RENEWAL
Stacey P DarakjyGermanyBernardo Dominic NEW
Isabel U MacleadUnited KingdomAsiya Javayant PROPOSAL
Salvatore I GauchoItalyXuxue Feng NEGOTIATION
Claire Y RulapaughArgentinaAmy Elsner QUALIFIED
Julie U CampainUnited KingdomIvan Magalhaes PROPOSAL
Emily S FollerRussiaBernardo Dominic UNQUALIFIED
Jefferson L NestleFranceAsiya Javayant RENEWAL
Misaki V FlosiJapanElwin Sharvill 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>