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
Emily C PaprockiFranceIvan Magalhaes NEW
Sinclair L AmigonArgentinaAmy Elsner NEGOTIATION
Isabel C PaprockiItalyAmy Elsner UNQUALIFIED
Jones S GauchoJapanAnna Fali NEW
Munro Q CaudyAustraliaAmy Elsner NEW
David A IturbideIndiaIvan Magalhaes RENEWAL
Leja Z BologniaRussiaAsiya Javayant RENEWAL
Ivar G BowleyArgentinaElwin Sharvill NEGOTIATION
Stacey M GillianGermanyOnyama Limba UNQUALIFIED
Maria H KolmetzJapanXuxue Feng UNQUALIFIED
Rodrigues A NickaRussiaOnyama Limba NEGOTIATION
Julie S ChuiSpainAnna Fali UNQUALIFIED
Jefferson C ShinkoJapanIoni Bowcher PROPOSAL
Antonio N WieserCanadaOnyama Limba RENEWAL
Nicolas V ShinkoFranceOnyama Limba RENEWAL
Wickens M BologniaCanadaOnyama Limba PROPOSAL
Tony S VocelkaItalyBernardo Dominic PROPOSAL
Mayumi E MaletGermanyIoni Bowcher NEGOTIATION
Antonio V KuskoAustraliaAsiya Javayant RENEWAL
Tony A FollerRussiaIvan Magalhaes QUALIFIED
Faith P BowleyFranceIoni Bowcher PROPOSAL
Aika J SergiCanadaXuxue Feng NEGOTIATION
Leon T DoeCanadaBernardo Dominic RENEWAL
Mayumi T RulapaughItalyBernardo Dominic UNQUALIFIED
Maria C ChuiIndiaStephen Shaw PROPOSAL
Leon U StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Cody F OldroydIndiaIvan Magalhaes RENEWAL
Jennifer K BowleyUnited KingdomBernardo Dominic PROPOSAL
Wickens V DoeUnited KingdomBernardo Dominic RENEWAL
Arvin S InouyeJapanAnna Fali NEGOTIATION
Wickens R VocelkaItalyAmy Elsner QUALIFIED
Greenwood K StensethAustraliaStephen Shaw NEGOTIATION
Adams P MorascaCanadaAnna Fali PROPOSAL
James L DoeCanadaAnna Fali PROPOSAL
Deepesh K StensethRussiaOnyama Limba RENEWAL
Alejandro H CampainArgentinaElwin Sharvill QUALIFIED
Adams E MaletCanadaAsiya Javayant QUALIFIED
James S MarrierAustraliaAsiya Javayant QUALIFIED
Nicolas L TollnerCanadaXuxue Feng NEW
Juan Q CaudyGermanyBernardo Dominic RENEWAL
Aditya A CaldareraSpainIoni Bowcher RENEWAL
Costa B StockhamAustraliaAnna Fali NEW
Mujtaba H BowleyCanadaXuxue Feng RENEWAL
Clifford P AlbaresArgentinaBernardo Dominic RENEWAL
Sinclair M TollnerArgentinaStephen Shaw UNQUALIFIED
Kaitlin W DoeBrazilBernardo Dominic QUALIFIED
Alejandro C RutaJapanAsiya Javayant RENEWAL
Faith L MacleadSpainXuxue Feng PROPOSAL
Stacey A PoquetteIndiaAnna Fali QUALIFIED
Maisha Q BowleyCanadaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez T GillianAustraliaAsiya Javayant UNQUALIFIED
Jennifer R KuskoAustraliaIvan Magalhaes UNQUALIFIED
Adams C DilliardArgentinaStephen Shaw NEGOTIATION
Rodrigues P StockhamJapanAsiya Javayant UNQUALIFIED
Jones Z WhobreyArgentinaAmy Elsner UNQUALIFIED
Cody S PoquetteBrazilAnna Fali RENEWAL
Wickens P MorascaRussiaIoni Bowcher NEGOTIATION
Aruna I InouyeJapanXuxue Feng PROPOSAL
Francesco Z MacleadArgentinaAmy Elsner RENEWAL
Costa A CaudyJapanAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel J FollerItaly2024-04-04Buckley Miller Wright QUALIFIED77Ioni Bowcher
1001James D SchemmerSpain2024-03-21Commercial Press UNQUALIFIED22Bernardo Dominic
1002Murillo I DarakjyRussia2024-03-26Rangoni Of Florence RENEWAL3Asiya Javayant
1003Maria G IturbideRussia2024-04-13King, Christopher A Esq NEGOTIATION90Elwin Sharvill
1004Arvin N MaletBrazil2024-03-22Rousseaux, Michael Esq UNQUALIFIED36Stephen Shaw
1005Kaitlin Z ChuiRussia2024-03-28Chanay, Jeffrey A Esq RENEWAL75Xuxue Feng
1006Maisha Y SlusarskiIndia2024-04-17Rousseaux, Michael Esq QUALIFIED59Stephen Shaw
1007David T RutaItaly2024-04-15Printing Dimensions NEGOTIATION43Onyama Limba
1008Salvatore O GlickIndia2024-04-02Feltz Printing Service PROPOSAL92Ivan Magalhaes
1009Costa C MorascaJapan2024-03-20Benton, John B Jr UNQUALIFIED40Ivan Magalhaes
1010Mayumi H StockhamIndia2024-03-22Dorl, James J Esq RENEWAL63Stephen Shaw
1011Morrow R CaldareraJapan2024-04-13Feiner Bros PROPOSAL12Xuxue Feng
1012Greenwood P RoysterFrance2024-04-06Chapman, Ross E Esq QUALIFIED59Stephen Shaw
1013Jennifer W CaudyUnited Kingdom2024-03-21Feiner Bros UNQUALIFIED91Elwin Sharvill
1014Jennifer V CampainUnited Kingdom2024-04-18Buckley Miller Wright UNQUALIFIED43Bernardo Dominic
1015Jefferson J VenereGermany2024-03-23Buckley Miller Wright UNQUALIFIED13Elwin Sharvill
1016Emily X GarufiJapan2024-03-21Benton, John B Jr NEGOTIATION59Ivan Magalhaes
1017Stacey B WaycottArgentina2024-04-16Chemel, James L Cpa QUALIFIED8Elwin Sharvill
1018Wickens C FigeroaSpain2024-04-08Chapman, Ross E Esq RENEWAL59Stephen Shaw
1019Alejandro V SlusarskiUnited Kingdom2024-04-02Rousseaux, Michael Esq UNQUALIFIED70Amy Elsner
1020David C RoysterCanada2024-03-28Printing Dimensions UNQUALIFIED66Ivan Magalhaes
1021Jefferson F NickaRussia2024-04-12Chapman, Ross E Esq UNQUALIFIED88Stephen Shaw
1022Francesco T KuskoBrazil2024-04-17Chanay, Jeffrey A Esq QUALIFIED3Ioni Bowcher
1023Stacey S GillianRussia2024-04-13Dorl, James J Esq QUALIFIED92Ioni Bowcher
1024Jefferson Q PaprockiAustralia2024-04-08Commercial Press NEGOTIATION1Onyama Limba
1025Tony J NestleRussia2024-03-20Buckley Miller Wright PROPOSAL24Elwin Sharvill
1026Emily Q RimCanada2024-04-13Truhlar And Truhlar Attys QUALIFIED77Onyama Limba
1027Mayumi W AlbaresUnited Kingdom2024-04-04Dorl, James J Esq QUALIFIED48Ioni Bowcher
1028Leja F KolmetzBrazil2024-03-23Benton, John B Jr NEW38Anna Fali
1029Costa M CaudyCanada2024-03-21Rousseaux, Michael Esq PROPOSAL29Stephen Shaw
1030Mayumi L PoquetteGermany2024-03-31Morlong Associates QUALIFIED40Asiya Javayant
1031Darci R TollnerArgentina2024-04-06King, Christopher A Esq RENEWAL91Xuxue Feng
1032Clifford M FlosiIndia2024-04-01Feiner Bros QUALIFIED97Stephen Shaw
1033Jefferson N DarakjyGermany2024-03-26Feiner Bros UNQUALIFIED3Elwin Sharvill
1034James E BowleySpain2024-03-25Feltz Printing Service RENEWAL87Anna Fali
1035Ashley E InouyeBrazil2024-04-11Printing Dimensions QUALIFIED38Anna Fali
1036Johnson K MorascaRussia2024-03-25Chanay, Jeffrey A Esq RENEWAL95Amy Elsner
1037Smith Q OldroydItaly2024-04-11King, Christopher A Esq NEGOTIATION99Amy Elsner
1038Chavez G AlbaresItaly2024-03-22Buckley Miller Wright NEW43Elwin Sharvill
1039Leon S RimFrance2024-04-02Rangoni Of Florence NEGOTIATION91Bernardo Dominic
1040Claire R IturbideUnited Kingdom2024-03-31Dorl, James J Esq UNQUALIFIED67Anna Fali
1041Jones K GarufiGermany2024-04-17Dorl, James J Esq NEW17Ivan Magalhaes
1042Costa I BriddickGermany2024-04-18Truhlar And Truhlar Attys NEGOTIATION7Ivan Magalhaes
1043Antonio Z GarufiJapan2024-03-26Dorl, James J Esq QUALIFIED90Anna Fali
1044Maisha Z FollerSpain2024-03-28Dorl, James J Esq NEGOTIATION70Amy Elsner
1045Alejandro N KolmetzCanada2024-03-27Commercial Press UNQUALIFIED24Elwin Sharvill
1046Maria A ChuiBrazil2024-03-23Commercial Press QUALIFIED84Elwin Sharvill
1047Isabel V NestleJapan2024-03-28Commercial Press RENEWAL77Onyama Limba
1048Octavia I NestleCanada2024-03-23Feiner Bros NEW60Bernardo Dominic
1049Nicolas P IturbideAustralia2024-04-17Feiner Bros QUALIFIED73Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois I RimRussiaAmy Elsner NEGOTIATION
Costa S OldroydGermanyAsiya Javayant NEGOTIATION
Francesco A ChuiJapanIoni Bowcher PROPOSAL
Rodrigues L VenereArgentinaAsiya Javayant RENEWAL
Juan H BriddickSpainIvan Magalhaes QUALIFIED
Stacey R AlbaresFranceIoni Bowcher RENEWAL
Mayumi K CaldareraIndiaAmy Elsner NEGOTIATION
Ricardo Z FigeroaFranceOnyama Limba UNQUALIFIED
Costa W RoysterArgentinaIvan Magalhaes QUALIFIED
Antonio O VenereIndiaIvan Magalhaes UNQUALIFIED
David M WieserCanadaIoni Bowcher NEW
Deepesh I MorascaCanadaOnyama Limba QUALIFIED
Izzy O StockhamBrazilElwin Sharvill PROPOSAL
Isabel R WieserItalyAmy Elsner UNQUALIFIED
Tony X GauchoGermanyOnyama Limba NEW
Misaki Z VocelkaSpainXuxue Feng NEGOTIATION
Kaitlin K RoysterGermanyIvan Magalhaes NEW
Jefferson X GauchoIndiaIvan Magalhaes NEGOTIATION
Jennifer G KolmetzArgentinaXuxue Feng NEGOTIATION
Kaitlin P GillianIndiaElwin Sharvill PROPOSAL
Rodrigues M FerenczArgentinaXuxue Feng RENEWAL
Leon M TollnerFranceElwin Sharvill NEW
Antonio S SlusarskiBrazilIvan Magalhaes QUALIFIED
Alejandro S OldroydGermanyAmy Elsner RENEWAL
Jones P MaletAustraliaIoni Bowcher PROPOSAL
Ivar O NestleJapanAmy Elsner NEGOTIATION
Maria J WaycottJapanAmy Elsner RENEWAL
Julie T MorascaFranceAmy Elsner PROPOSAL
Greenwood C MaletCanadaElwin Sharvill NEW
Adams C VenereCanadaBernardo Dominic UNQUALIFIED
Faith D CaudyJapanAsiya Javayant QUALIFIED
Cody M NestleCanadaIoni Bowcher UNQUALIFIED
Isabel K PoquetteGermanyOnyama Limba NEW
Jennifer J MaletJapanAnna Fali NEGOTIATION
Clifford J TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Costa F BriddickJapanElwin Sharvill NEGOTIATION
Leon R CaudyRussiaIvan Magalhaes NEW
Mayumi L NestleItalyElwin Sharvill NEW
Silvio J WhobreyItalyAnna Fali PROPOSAL
Jeanfrancois P FlosiIndiaXuxue Feng PROPOSAL
Francesco P OstroskyFranceAsiya Javayant QUALIFIED
Maisha F GauchoItalyAsiya Javayant UNQUALIFIED
Kadeem U DarakjyBrazilStephen Shaw QUALIFIED
Maisha N AmigonAustraliaBernardo Dominic NEW
Jefferson H TollnerRussiaStephen Shaw PROPOSAL
Aika O GarufiArgentinaBernardo Dominic UNQUALIFIED
Wickens S MarrierItalyAnna Fali NEGOTIATION
Rodrigues L AlbaresFranceElwin Sharvill QUALIFIED
Salvatore O MarrierAustraliaIoni Bowcher PROPOSAL
Arvin U BowleySpainBernardo Dominic NEGOTIATION
Frozen Columns
Name
Tony K Gaucho
Izzy F Flosi
Clifford F Poquette
Octavia E Caldarera
Kadeem G Figeroa
Julie S Inouye
Murillo P Schemmer
Salvatore W Marrier
Leon O Kolmetz
David K Poquette
Leon R Chui
Greenwood S Ruta
Costa T Inouye
Aruna R Rulapaugh
James W Briddick
David T Royster
Misaki P Tollner
Nicolas S Foller
Tony B Poquette
David J Flosi
Ivar D Stenseth
Claire A Doe
Sinclair I Whobrey
Wickens O Rim
Munro Q Figeroa
Francesco D Dilliard
Nicolas X Ruta
Aditya O Slusarski
Antonio N Chui
Munro X Inouye
Misaki D Foller
Jennifer K Waycott
Mujtaba J Gaucho
Johnson V Whobrey
Salvatore J Royster
Costa H Gillian
Kadeem H Iturbide
Johnson T Oldroyd
Antonio D Sergi
Nicolas Z Dilliard
Murillo I Rulapaugh
Munro R Whobrey
Kaitlin J Caldarera
Murillo T Morasca
Ricardo W Figeroa
Silvio M Caudy
Clifford E Butt
Adams O Iturbide
Aditya G Figeroa
Mayumi D Tollner
IdCountryDate
1000Germany2024-04-10
1001Italy2024-03-23
1002Italy2024-03-24
1003Brazil2024-03-29
1004Brazil2024-03-23
1005United Kingdom2024-04-14
1006India2024-04-05
1007Australia2024-03-24
1008Argentina2024-04-12
1009Russia2024-04-11
1010Russia2024-04-12
1011Spain2024-04-18
1012Japan2024-03-20
1013Italy2024-03-29
1014Brazil2024-04-09
1015Canada2024-04-14
1016Italy2024-04-18
1017France2024-03-23
1018Australia2024-04-07
1019Japan2024-04-17
1020Argentina2024-03-24
1021Italy2024-04-04
1022Russia2024-04-08
1023Japan2024-03-30
1024Canada2024-04-09
1025Canada2024-03-30
1026Canada2024-04-17
1027Argentina2024-03-25
1028Japan2024-04-14
1029United Kingdom2024-04-09
1030Spain2024-04-17
1031Italy2024-03-22
1032Russia2024-03-27
1033Australia2024-03-20
1034India2024-04-15
1035India2024-03-27
1036Japan2024-04-03
1037Japan2024-04-02
1038Spain2024-03-23
1039United Kingdom2024-04-11
1040Germany2024-03-26
1041India2024-04-03
1042Brazil2024-03-25
1043Canada2024-03-21
1044Argentina2024-03-21
1045India2024-03-26
1046Italy2024-03-29
1047Russia2024-04-07
1048Japan2024-03-27
1049Italy2024-03-29

On-Demand Data

NameIdCountryDate
Greenwood M Royster1000Argentina2024-04-08
Munro O Iturbide1001Spain2024-04-12
Kadeem P Glick1002Argentina2024-04-11
Francesco W Kusko1003Australia2024-03-30
Cody S Foller1004Canada2024-03-29
Kadeem J Paprocki1005Canada2024-03-26
Ashley C Ferencz1006United Kingdom2024-04-02
Aditya Z Flosi1007Spain2024-04-16
Salvatore T Ferencz1008Canada2024-03-22
Claire N Flosi1009United Kingdom2024-03-22
David J Nestle1010Argentina2024-03-31
Johnson L Flosi1011United Kingdom2024-04-18
Arvin Z Rulapaugh1012France2024-04-14
Francesco I Darakjy1013Spain2024-04-09
Aruna L Amigon1014United Kingdom2024-04-06
Stacey M Ferencz1015Spain2024-03-29
Leja T Kolmetz1016Australia2024-03-22
Octavia F Dilliard1017Germany2024-04-10
Maria U Malet1018Spain2024-03-25
Wickens Z Gaucho1019Russia2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez I DilliardArgentinaIoni Bowcher QUALIFIED
Deepesh S InouyeFranceAnna Fali NEW
Claire Z MorascaFranceIoni Bowcher NEGOTIATION
Ashley X MarrierRussiaIvan Magalhaes NEGOTIATION
Juan S BriddickSpainAmy Elsner NEW
Aditya D BologniaGermanyAsiya Javayant PROPOSAL
Arvin Y IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Murillo B GauchoRussiaAmy Elsner QUALIFIED
Greenwood S SchemmerAustraliaAsiya Javayant QUALIFIED
Tony K MaletGermanyAsiya Javayant NEW
James D SlusarskiCanadaBernardo Dominic NEW
Smith Z AlbaresCanadaAsiya Javayant NEGOTIATION
Isabel C MaletBrazilAsiya Javayant NEW
Maria H MarrierJapanStephen Shaw NEGOTIATION
Smith Z BriddickUnited KingdomXuxue Feng UNQUALIFIED
Aika C SergiJapanElwin Sharvill NEW
Cody Q VenereUnited KingdomAnna Fali UNQUALIFIED
Emily Y BriddickGermanyBernardo Dominic NEW
Jones D SchemmerCanadaAmy Elsner PROPOSAL
Francesco C FigeroaCanadaIvan Magalhaes NEGOTIATION
Aika H FlosiArgentinaBernardo Dominic RENEWAL
Leja O FlosiIndiaBernardo Dominic NEGOTIATION
Greenwood J RutaBrazilXuxue Feng PROPOSAL
Mayumi D DilliardIndiaIvan Magalhaes RENEWAL
Clifford L WhobreyIndiaAsiya Javayant PROPOSAL
Juan S BriddickArgentinaElwin Sharvill UNQUALIFIED
Rodrigues I SaylorsFranceAnna Fali NEW
Claire D MacleadArgentinaAsiya Javayant UNQUALIFIED
Maria Y ChuiAustraliaXuxue Feng NEW
Aditya S InouyeItalyElwin Sharvill NEW
Jennifer O PaprockiAustraliaAsiya Javayant PROPOSAL
Faith L WhobreyAustraliaOnyama Limba QUALIFIED
Aruna E CaldareraAustraliaIvan Magalhaes NEGOTIATION
Nicolas Z IturbideUnited KingdomAsiya Javayant PROPOSAL
Maria H MorascaGermanyIvan Magalhaes QUALIFIED
Deepesh T OldroydGermanyXuxue Feng NEGOTIATION
Francesco I StensethJapanOnyama Limba RENEWAL
Rodrigues Z BologniaSpainOnyama Limba QUALIFIED
Adams K StockhamJapanAnna Fali NEGOTIATION
Arvin D DarakjyIndiaXuxue Feng 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>