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
Tony I FerenczCanadaAnna Fali RENEWAL
Francesco K WaycottRussiaAmy Elsner RENEWAL
Tony E GauchoBrazilAnna Fali UNQUALIFIED
Stacey Z GauchoRussiaBernardo Dominic NEGOTIATION
Emily J KolmetzFranceAnna Fali QUALIFIED
Mayumi T WaycottCanadaBernardo Dominic NEW
Rodrigues C DoeItalyIoni Bowcher NEGOTIATION
Misaki C NickaRussiaIvan Magalhaes NEGOTIATION
Octavia S VocelkaSpainIvan Magalhaes PROPOSAL
Julie T DoeFranceBernardo Dominic RENEWAL
Sinclair J WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Arvin A NickaRussiaIvan Magalhaes NEW
Claire G SlusarskiItalyOnyama Limba RENEWAL
Johnson G AmigonGermanyXuxue Feng PROPOSAL
Arvin Y CaldareraGermanyAsiya Javayant UNQUALIFIED
Octavia L OstroskyGermanyElwin Sharvill QUALIFIED
Ivar I AmigonItalyAmy Elsner NEW
Greenwood K WaycottSpainXuxue Feng QUALIFIED
Aruna R RoysterBrazilElwin Sharvill PROPOSAL
James A GillianFranceAmy Elsner QUALIFIED
Isabel M PoquetteBrazilStephen Shaw UNQUALIFIED
Julie L PoquetteJapanAmy Elsner NEGOTIATION
Julie O MacleadIndiaIoni Bowcher RENEWAL
Izzy H ChuiBrazilXuxue Feng UNQUALIFIED
Kaitlin D BologniaIndiaAnna Fali NEGOTIATION
Jefferson J ChuiArgentinaAsiya Javayant QUALIFIED
Jeanfrancois E AmigonUnited KingdomAnna Fali QUALIFIED
Salvatore K CampainUnited KingdomOnyama Limba RENEWAL
Arvin A SlusarskiIndiaAnna Fali NEGOTIATION
Costa S BriddickGermanyElwin Sharvill QUALIFIED
Smith V KolmetzFranceElwin Sharvill NEGOTIATION
Jones K VenereCanadaAsiya Javayant NEW
Julie W KolmetzArgentinaStephen Shaw NEW
Ricardo T SaylorsSpainBernardo Dominic QUALIFIED
Wickens L OldroydBrazilBernardo Dominic NEW
Johnson Z DoeUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo V DarakjyRussiaAsiya Javayant QUALIFIED
Deepesh P KuskoCanadaAmy Elsner UNQUALIFIED
Maisha Q KuskoBrazilBernardo Dominic UNQUALIFIED
Jones I SlusarskiFranceAmy Elsner QUALIFIED
Jennifer S FlosiAustraliaOnyama Limba UNQUALIFIED
Mayumi Q KuskoSpainAsiya Javayant QUALIFIED
Maria Y WaycottAustraliaIvan Magalhaes RENEWAL
Izzy M PaprockiBrazilIvan Magalhaes UNQUALIFIED
Juan Q ShinkoGermanyStephen Shaw QUALIFIED
Johnson W KolmetzItalyStephen Shaw PROPOSAL
Clifford Q BowleyJapanAmy Elsner RENEWAL
Jefferson B PaprockiBrazilIoni Bowcher NEW
Julie D WieserAustraliaOnyama Limba NEW
Adams J BologniaArgentinaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba B CampainIndiaAnna Fali RENEWAL
Jones V InouyeItalyStephen Shaw QUALIFIED
Salvatore U AmigonRussiaElwin Sharvill UNQUALIFIED
Morrow X WieserIndiaIvan Magalhaes UNQUALIFIED
Adams Y FerenczSpainAmy Elsner NEW
Munro U DoeRussiaIoni Bowcher RENEWAL
Ricardo M ButtCanadaIvan Magalhaes RENEWAL
Ricardo X CaudyArgentinaIvan Magalhaes QUALIFIED
Munro M WaycottSpainIoni Bowcher PROPOSAL
Adams S ShinkoGermanyElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba Q DarakjyArgentina2024-03-25King, Christopher A Esq NEGOTIATION28Bernardo Dominic
1001Sinclair J DarakjySpain2024-03-30Buckley Miller Wright NEGOTIATION82Amy Elsner
1002David O SergiJapan2024-04-18Chemel, James L Cpa NEW48Ivan Magalhaes
1003Jeanfrancois U CaldareraItaly2024-03-25Rangoni Of Florence RENEWAL5Asiya Javayant
1004Aruna T WieserSpain2024-04-02Chanay, Jeffrey A Esq PROPOSAL53Xuxue Feng
1005Darci F SergiUnited Kingdom2024-03-26Buckley Miller Wright QUALIFIED47Bernardo Dominic
1006Rodrigues A BowleyFrance2024-03-24King, Christopher A Esq NEW7Stephen Shaw
1007Kadeem Y NickaFrance2024-04-14King, Christopher A Esq UNQUALIFIED53Ioni Bowcher
1008Cody H RutaRussia2024-03-26Truhlar And Truhlar Attys QUALIFIED3Stephen Shaw
1009Ricardo L AmigonUnited Kingdom2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED27Bernardo Dominic
1010Kadeem X ButtItaly2024-04-09Rangoni Of Florence NEW64Onyama Limba
1011Leja W StensethBrazil2024-03-21Dorl, James J Esq RENEWAL8Ivan Magalhaes
1012Cody Z BriddickIndia2024-04-08Rangoni Of Florence NEW21Stephen Shaw
1013Francesco R OldroydItaly2024-03-20Buckley Miller Wright PROPOSAL61Elwin Sharvill
1014Izzy S SergiGermany2024-03-28Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1015Sinclair T StensethSpain2024-04-04Buckley Miller Wright PROPOSAL72Ivan Magalhaes
1016Kaitlin T InouyeBrazil2024-04-14Chapman, Ross E Esq RENEWAL55Ivan Magalhaes
1017Sinclair U NickaRussia2024-04-04Chanay, Jeffrey A Esq PROPOSAL51Bernardo Dominic
1018Alejandro Q BowleyAustralia2024-03-22Feltz Printing Service RENEWAL68Bernardo Dominic
1019Tony W RutaCanada2024-04-02King, Christopher A Esq RENEWAL53Stephen Shaw
1020Rodrigues J MacleadArgentina2024-04-17Buckley Miller Wright NEW79Amy Elsner
1021Izzy R StockhamJapan2024-03-27Commercial Press RENEWAL3Ivan Magalhaes
1022Arvin G FlosiFrance2024-03-21Morlong Associates NEW56Stephen Shaw
1023Nicolas T RulapaughSpain2024-04-09Morlong Associates PROPOSAL11Elwin Sharvill
1024Leja H GillianArgentina2024-04-13Morlong Associates PROPOSAL81Bernardo Dominic
1025Maria Z AmigonUnited Kingdom2024-03-25Commercial Press QUALIFIED87Onyama Limba
1026Wickens P DarakjyJapan2024-04-11Rangoni Of Florence QUALIFIED88Bernardo Dominic
1027Leon R VocelkaGermany2024-03-20King, Christopher A Esq NEGOTIATION92Bernardo Dominic
1028Kaitlin U VocelkaItaly2024-04-17Buckley Miller Wright NEW92Anna Fali
1029Jennifer T FerenczCanada2024-04-13Benton, John B Jr UNQUALIFIED35Onyama Limba
1030Ashley Y CampainUnited Kingdom2024-04-08Feiner Bros RENEWAL33Bernardo Dominic
1031Juan B GauchoFrance2024-04-13Morlong Associates RENEWAL53Xuxue Feng
1032Leja S PerinSpain2024-03-20Rousseaux, Michael Esq RENEWAL15Asiya Javayant
1033Julie L AmigonCanada2024-04-08Feiner Bros NEW19Asiya Javayant
1034Stacey F WhobreyIndia2024-04-16Rousseaux, Michael Esq RENEWAL25Bernardo Dominic
1035Munro N PoquetteGermany2024-03-20Rousseaux, Michael Esq UNQUALIFIED16Amy Elsner
1036James G GlickIndia2024-03-22Truhlar And Truhlar Attys NEGOTIATION21Onyama Limba
1037Wickens B BriddickCanada2024-04-13Commercial Press UNQUALIFIED4Stephen Shaw
1038Smith G DilliardAustralia2024-04-18Morlong Associates UNQUALIFIED39Asiya Javayant
1039Mayumi W CaldareraItaly2024-04-11Morlong Associates QUALIFIED0Stephen Shaw
1040Arvin T MaletGermany2024-04-17Dorl, James J Esq QUALIFIED29Anna Fali
1041Claire N WhobreyItaly2024-04-16Benton, John B Jr PROPOSAL88Elwin Sharvill
1042Rodrigues W MaletSpain2024-04-06Printing Dimensions NEW49Stephen Shaw
1043Mujtaba R SlusarskiArgentina2024-04-16Benton, John B Jr QUALIFIED86Onyama Limba
1044Stacey C FigeroaBrazil2024-03-26Dorl, James J Esq UNQUALIFIED60Onyama Limba
1045Adams F MaletItaly2024-04-01King, Christopher A Esq NEW53Ioni Bowcher
1046Ashley Q ChuiArgentina2024-03-20Printing Dimensions NEGOTIATION30Ioni Bowcher
1047Ashley C ShinkoJapan2024-04-02Morlong Associates NEGOTIATION51Ivan Magalhaes
1048Alejandro C VocelkaFrance2024-03-23Buckley Miller Wright QUALIFIED51Amy Elsner
1049Darci X GlickIndia2024-03-31Chapman, Ross E Esq NEGOTIATION50Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson B AmigonFranceStephen Shaw UNQUALIFIED
Isabel L AmigonAustraliaAnna Fali UNQUALIFIED
Alejandro Q StensethFranceOnyama Limba NEW
Kaitlin A MaletJapanAsiya Javayant UNQUALIFIED
Ashley Z StensethFranceOnyama Limba RENEWAL
Isabel K PerinJapanBernardo Dominic NEGOTIATION
Leja I PaprockiUnited KingdomXuxue Feng NEGOTIATION
Maisha A PerinCanadaAsiya Javayant UNQUALIFIED
Murillo T SaylorsRussiaStephen Shaw UNQUALIFIED
Antonio W RutaSpainAnna Fali RENEWAL
Silvio K GauchoRussiaAsiya Javayant RENEWAL
Arvin W StensethIndiaStephen Shaw NEW
Juan U ButtCanadaXuxue Feng QUALIFIED
Ashley V DoeIndiaElwin Sharvill QUALIFIED
Isabel F RimRussiaStephen Shaw NEW
James O TollnerItalyXuxue Feng QUALIFIED
Greenwood J DilliardRussiaOnyama Limba UNQUALIFIED
Kaitlin J CampainArgentinaAsiya Javayant NEGOTIATION
Cody U BologniaBrazilAmy Elsner NEGOTIATION
Kadeem G FerenczIndiaAnna Fali RENEWAL
Maria W DoeBrazilOnyama Limba UNQUALIFIED
Jones G WieserCanadaOnyama Limba RENEWAL
Octavia X GarufiSpainBernardo Dominic RENEWAL
Smith Z WhobreyItalyElwin Sharvill UNQUALIFIED
Wickens E GlickUnited KingdomAnna Fali QUALIFIED
Clifford C IturbideRussiaAsiya Javayant RENEWAL
Murillo X OstroskyArgentinaAsiya Javayant UNQUALIFIED
Jones U StockhamArgentinaXuxue Feng NEGOTIATION
Jennifer R AlbaresSpainAnna Fali UNQUALIFIED
Wickens P GlickUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro R SaylorsGermanyStephen Shaw RENEWAL
Isabel E CaldareraCanadaBernardo Dominic RENEWAL
Costa E VenereFranceIoni Bowcher RENEWAL
Clifford J CampainIndiaElwin Sharvill QUALIFIED
Claire B FigeroaIndiaStephen Shaw NEW
Kadeem P AmigonRussiaOnyama Limba NEW
Murillo G MaletIndiaStephen Shaw UNQUALIFIED
Adams R TollnerIndiaAsiya Javayant RENEWAL
Cody E MarrierBrazilOnyama Limba RENEWAL
Adams M SaylorsFranceOnyama Limba UNQUALIFIED
Leon K GillianFranceStephen Shaw QUALIFIED
Jeanfrancois W ShinkoGermanyAmy Elsner NEW
Greenwood V CaldareraCanadaOnyama Limba NEGOTIATION
Aika E MaletItalyXuxue Feng UNQUALIFIED
Misaki I GlickRussiaOnyama Limba NEGOTIATION
James F SaylorsArgentinaOnyama Limba QUALIFIED
Kaitlin Z DilliardCanadaAmy Elsner RENEWAL
Julie Q ChuiBrazilIvan Magalhaes NEGOTIATION
Munro I RulapaughJapanAsiya Javayant RENEWAL
Julie K FollerBrazilOnyama Limba RENEWAL
Frozen Columns
Name
Leon B Tollner
Wickens M Rim
Adams D Dilliard
Ashley G Kolmetz
Juan L Waycott
Maria J Glick
Mayumi S Saylors
Sinclair N Stenseth
Stacey O Darakjy
Arvin P Vocelka
Costa E Oldroyd
Julie D Kolmetz
Arvin X Royster
Jefferson J Bolognia
Salvatore R Schemmer
Antonio N Stockham
Greenwood T Stenseth
Chavez F Briddick
Antonio L Saylors
Claire P Bolognia
Jeanfrancois H Caudy
Johnson Z Flosi
Faith S Marrier
Jefferson G Kusko
Ashley X Ostrosky
Chavez W Royster
Munro S Slusarski
Ashley R Malet
Ashley X Malet
Leja M Stenseth
Greenwood L Maclead
Octavia A Marrier
Clifford R Oldroyd
Faith G Gillian
Maisha S Venere
Costa B Vocelka
Maria D Bowley
Kadeem F Marrier
Jefferson E Whobrey
Kaitlin G Chui
Smith B Figeroa
Aditya L Garufi
Kaitlin X Albares
Jennifer A Vocelka
Octavia I Gaucho
Rodrigues K Iturbide
Smith E Nestle
Tony Y Ferencz
Antonio U Gaucho
Sinclair Y Royster
IdCountryDate
1000India2024-04-07
1001Italy2024-04-05
1002Australia2024-03-26
1003Argentina2024-04-05
1004Russia2024-03-22
1005Italy2024-03-23
1006France2024-03-22
1007Australia2024-03-31
1008Australia2024-04-15
1009India2024-03-23
1010France2024-04-17
1011Argentina2024-03-30
1012Argentina2024-04-08
1013Japan2024-03-28
1014Germany2024-03-21
1015Argentina2024-03-23
1016United Kingdom2024-04-01
1017Canada2024-04-18
1018Italy2024-04-15
1019France2024-03-30
1020Brazil2024-04-14
1021Argentina2024-03-26
1022Japan2024-03-22
1023France2024-03-30
1024Australia2024-03-26
1025Argentina2024-04-18
1026Japan2024-04-14
1027France2024-04-01
1028France2024-04-07
1029France2024-03-28
1030Spain2024-03-20
1031India2024-04-04
1032Russia2024-04-15
1033Spain2024-04-16
1034Australia2024-04-13
1035Spain2024-04-16
1036Germany2024-04-18
1037Argentina2024-03-30
1038Canada2024-04-01
1039Japan2024-04-16
1040Japan2024-04-05
1041Australia2024-04-06
1042France2024-03-30
1043Germany2024-04-07
1044Germany2024-04-12
1045Spain2024-03-26
1046Argentina2024-04-06
1047Brazil2024-04-06
1048United Kingdom2024-04-08
1049France2024-04-15

On-Demand Data

NameIdCountryDate
Maria M Marrier1000Brazil2024-04-03
David Z Slusarski1001India2024-03-31
Francesco W Chui1002India2024-03-21
Misaki J Rim1003Canada2024-03-22
Silvio N Sergi1004Brazil2024-03-29
Chavez A Ferencz1005Italy2024-04-08
Ashley B Poquette1006France2024-03-29
Aika D Flosi1007Brazil2024-04-01
Octavia W Kolmetz1008France2024-03-26
Jones Z Iturbide1009France2024-03-24
Nicolas C Bowley1010Germany2024-04-06
Aika W Bowley1011Germany2024-03-31
Leon E Iturbide1012Italy2024-03-31
Greenwood U Royster1013Italy2024-03-31
Chavez T Dilliard1014France2024-03-20
Smith U Kusko1015Germany2024-04-16
Faith Q Ruta1016Germany2024-04-11
Mayumi O Butt1017Russia2024-03-21
Misaki E Royster1018Japan2024-03-21
Mayumi N Paprocki1019Australia2024-03-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones Q OldroydBrazilAmy Elsner NEW
Stacey J WhobreyItalyXuxue Feng RENEWAL
Jefferson O VenereFranceAsiya Javayant PROPOSAL
Jennifer T FigeroaCanadaIvan Magalhaes PROPOSAL
Deepesh L BowleyAustraliaIoni Bowcher NEW
Munro T PoquetteSpainIvan Magalhaes NEW
Murillo O NestleFranceStephen Shaw RENEWAL
Costa F MorascaJapanAnna Fali QUALIFIED
Kaitlin Y MaletIndiaXuxue Feng RENEWAL
Adams H MorascaIndiaStephen Shaw NEGOTIATION
Izzy P SlusarskiCanadaStephen Shaw RENEWAL
Aditya F VenereCanadaAsiya Javayant QUALIFIED
Munro V InouyeCanadaIoni Bowcher PROPOSAL
Mayumi E AmigonGermanyAmy Elsner RENEWAL
Jeanfrancois D MaletAustraliaAmy Elsner RENEWAL
Adams K GauchoIndiaBernardo Dominic PROPOSAL
Faith U PerinFranceAnna Fali RENEWAL
Mujtaba F SergiUnited KingdomOnyama Limba RENEWAL
Francesco O GlickUnited KingdomAnna Fali NEGOTIATION
Clifford N SchemmerRussiaIoni Bowcher QUALIFIED
Ricardo E GillianAustraliaAmy Elsner PROPOSAL
Murillo F StockhamRussiaElwin Sharvill RENEWAL
Jennifer C VenereUnited KingdomIvan Magalhaes PROPOSAL
Mayumi D AlbaresBrazilIvan Magalhaes PROPOSAL
Greenwood Z PaprockiJapanOnyama Limba RENEWAL
Cody D KuskoGermanyStephen Shaw QUALIFIED
Morrow M PerinItalyAnna Fali QUALIFIED
Chavez B InouyeBrazilAnna Fali NEW
Mayumi M MaletIndiaAsiya Javayant NEW
Jefferson N PerinSpainBernardo Dominic UNQUALIFIED
Mujtaba M AmigonItalyXuxue Feng RENEWAL
Mujtaba S SlusarskiSpainAsiya Javayant RENEWAL
Sinclair W BowleyBrazilIoni Bowcher QUALIFIED
Izzy Z TollnerFranceAsiya Javayant QUALIFIED
Kadeem R MaletUnited KingdomIvan Magalhaes RENEWAL
Aika X KolmetzUnited KingdomAmy Elsner NEGOTIATION
Nicolas W MacleadSpainOnyama Limba NEW
Emily X OldroydIndiaIoni Bowcher RENEWAL
Jeanfrancois S DilliardIndiaBernardo Dominic RENEWAL
Aruna Q BologniaRussiaAnna Fali 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>