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 E KuskoFranceIoni Bowcher NEW
Julie C StockhamFranceAnna Fali RENEWAL
Greenwood D NestleGermanyAmy Elsner RENEWAL
Cody Z KuskoSpainIoni Bowcher UNQUALIFIED
Costa D DarakjyCanadaIoni Bowcher QUALIFIED
Salvatore J MorascaAustraliaIoni Bowcher RENEWAL
Cody W RulapaughBrazilIoni Bowcher PROPOSAL
Stacey E RulapaughItalyOnyama Limba UNQUALIFIED
Arvin A SaylorsBrazilIoni Bowcher NEGOTIATION
Ivar E FigeroaGermanyAnna Fali RENEWAL
Chavez R AmigonSpainAnna Fali PROPOSAL
Jefferson R GarufiItalyBernardo Dominic QUALIFIED
Johnson B StensethIndiaIvan Magalhaes PROPOSAL
Alejandro Z RimAustraliaAnna Fali QUALIFIED
Jones Z DoeCanadaXuxue Feng RENEWAL
Isabel U SlusarskiRussiaAmy Elsner UNQUALIFIED
Francesco D SlusarskiItalyAmy Elsner QUALIFIED
Leja U InouyeIndiaAnna Fali PROPOSAL
Octavia H DarakjyRussiaBernardo Dominic PROPOSAL
James U FollerRussiaBernardo Dominic PROPOSAL
Izzy M StensethUnited KingdomBernardo Dominic NEGOTIATION
Murillo H DoeItalyAnna Fali RENEWAL
Arvin J InouyeItalyAnna Fali PROPOSAL
Ricardo Q WaycottSpainStephen Shaw RENEWAL
Juan U MaletAustraliaAsiya Javayant NEGOTIATION
Chavez W PaprockiAustraliaXuxue Feng UNQUALIFIED
Aruna C BriddickGermanyOnyama Limba NEGOTIATION
Jefferson I VenereCanadaBernardo Dominic UNQUALIFIED
Maisha T FlosiRussiaIoni Bowcher NEW
Ivar Y StensethAustraliaAnna Fali PROPOSAL
Munro B GauchoCanadaAmy Elsner QUALIFIED
Mujtaba W DoeUnited KingdomStephen Shaw RENEWAL
Francesco G RoysterUnited KingdomBernardo Dominic QUALIFIED
Murillo X TollnerGermanyIvan Magalhaes PROPOSAL
James F ButtIndiaXuxue Feng RENEWAL
Arvin H SergiItalyIvan Magalhaes QUALIFIED
Tony H WieserRussiaElwin Sharvill RENEWAL
Sinclair H CampainJapanXuxue Feng PROPOSAL
Jones S SergiAustraliaOnyama Limba QUALIFIED
Francesco R CampainFranceElwin Sharvill PROPOSAL
Silvio L BowleyAustraliaIvan Magalhaes UNQUALIFIED
Mayumi L MarrierItalyOnyama Limba NEW
Clifford W GillianUnited KingdomBernardo Dominic RENEWAL
Greenwood A VocelkaGermanyAmy Elsner NEW
Sinclair P BowleyCanadaElwin Sharvill QUALIFIED
Clifford O MarrierSpainBernardo Dominic UNQUALIFIED
Deepesh E CampainIndiaAsiya Javayant QUALIFIED
Francesco U AlbaresRussiaElwin Sharvill UNQUALIFIED
Juan X StensethAustraliaAmy Elsner NEW
Jennifer V CampainGermanyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens C ShinkoIndiaBernardo Dominic NEGOTIATION
Chavez M MacleadUnited KingdomAnna Fali PROPOSAL
Cody F BriddickAustraliaBernardo Dominic RENEWAL
Izzy K CaudyCanadaIoni Bowcher UNQUALIFIED
Ivar L WhobreyJapanStephen Shaw PROPOSAL
Deepesh R NestleSpainIoni Bowcher NEGOTIATION
Tony Q BologniaArgentinaAsiya Javayant NEGOTIATION
Munro I ChuiCanadaOnyama Limba PROPOSAL
Stacey V IturbideFranceIoni Bowcher UNQUALIFIED
Maria I GillianBrazilAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja S InouyeAustralia2024-05-13Morlong Associates UNQUALIFIED74Ivan Magalhaes
1001Smith B FerenczBrazil2024-04-28Chanay, Jeffrey A Esq UNQUALIFIED96Elwin Sharvill
1002Aruna J FigeroaAustralia2024-04-25Benton, John B Jr QUALIFIED71Bernardo Dominic
1003Emily B VocelkaBrazil2024-04-22Printing Dimensions UNQUALIFIED88Amy Elsner
1004Mayumi N MacleadCanada2024-05-18Feltz Printing Service NEW63Anna Fali
1005James C SlusarskiCanada2024-05-06Dorl, James J Esq RENEWAL55Xuxue Feng
1006James K FigeroaBrazil2024-04-26Morlong Associates UNQUALIFIED10Asiya Javayant
1007Aditya B WhobreyRussia2024-05-13Rousseaux, Michael Esq PROPOSAL88Asiya Javayant
1008Leon J SergiRussia2024-05-02Rangoni Of Florence PROPOSAL71Asiya Javayant
1009Greenwood I AlbaresFrance2024-05-11Dorl, James J Esq RENEWAL80Stephen Shaw
1010Stacey G PerinCanada2024-05-11Chemel, James L Cpa PROPOSAL9Xuxue Feng
1011James A AlbaresIndia2024-05-07Morlong Associates QUALIFIED48Anna Fali
1012Mayumi P GarufiIndia2024-05-18Chemel, James L Cpa QUALIFIED54Ioni Bowcher
1013Mujtaba X RutaItaly2024-05-07Morlong Associates UNQUALIFIED38Bernardo Dominic
1014Wickens P BowleySpain2024-05-08Dorl, James J Esq RENEWAL95Stephen Shaw
1015Adams F SchemmerIndia2024-05-18Chapman, Ross E Esq PROPOSAL76Stephen Shaw
1016Misaki N RimIndia2024-05-19Printing Dimensions PROPOSAL15Ioni Bowcher
1017Aditya L ButtItaly2024-04-30Dorl, James J Esq PROPOSAL31Elwin Sharvill
1018James K DarakjyItaly2024-04-27Chapman, Ross E Esq NEW41Asiya Javayant
1019Costa V KolmetzArgentina2024-05-13Dorl, James J Esq UNQUALIFIED11Amy Elsner
1020Deepesh Q WhobreySpain2024-04-29Truhlar And Truhlar Attys RENEWAL37Ivan Magalhaes
1021Mayumi S SchemmerCanada2024-04-22Rousseaux, Michael Esq NEW85Bernardo Dominic
1022Leon B CampainFrance2024-04-25Commercial Press QUALIFIED99Stephen Shaw
1023Tony J MaletRussia2024-05-04Commercial Press QUALIFIED56Bernardo Dominic
1024Johnson D MaletSpain2024-05-16King, Christopher A Esq NEW31Xuxue Feng
1025Jeanfrancois P PaprockiCanada2024-04-25Feiner Bros NEGOTIATION20Ivan Magalhaes
1026Cody P KuskoSpain2024-05-19Feltz Printing Service RENEWAL74Ivan Magalhaes
1027Arvin L MacleadArgentina2024-05-18Buckley Miller Wright RENEWAL68Anna Fali
1028Alejandro E RutaArgentina2024-05-15Chapman, Ross E Esq PROPOSAL24Ioni Bowcher
1029Tony M OstroskyIndia2024-05-11Dorl, James J Esq NEW36Onyama Limba
1030Aruna Y CampainFrance2024-05-20Truhlar And Truhlar Attys NEW74Elwin Sharvill
1031Aruna B BologniaRussia2024-05-02Printing Dimensions NEGOTIATION0Ivan Magalhaes
1032Nicolas J InouyeGermany2024-05-14Chapman, Ross E Esq PROPOSAL18Elwin Sharvill
1033Juan Y WaycottRussia2024-05-18Rangoni Of Florence UNQUALIFIED27Stephen Shaw
1034Leon U SlusarskiItaly2024-05-15Feiner Bros PROPOSAL47Stephen Shaw
1035Julie G AlbaresUnited Kingdom2024-05-04Chanay, Jeffrey A Esq QUALIFIED94Anna Fali
1036Ricardo E NestleJapan2024-05-05Commercial Press UNQUALIFIED84Anna Fali
1037Kadeem J TollnerAustralia2024-05-08Commercial Press UNQUALIFIED9Ioni Bowcher
1038Tony Y StockhamSpain2024-05-01Benton, John B Jr PROPOSAL51Ioni Bowcher
1039Silvio S RoysterBrazil2024-04-29Rangoni Of Florence RENEWAL62Onyama Limba
1040Wickens U VenereBrazil2024-05-02Truhlar And Truhlar Attys RENEWAL37Ivan Magalhaes
1041Adams T RutaIndia2024-05-01Commercial Press NEW25Onyama Limba
1042Francesco N SlusarskiSpain2024-04-22Morlong Associates PROPOSAL95Amy Elsner
1043Silvio M SchemmerBrazil2024-04-22Rousseaux, Michael Esq RENEWAL25Bernardo Dominic
1044Stacey K VocelkaSpain2024-05-04Chemel, James L Cpa NEGOTIATION28Ioni Bowcher
1045Ricardo M PaprockiItaly2024-04-25Chapman, Ross E Esq NEGOTIATION13Ivan Magalhaes
1046Maisha Y WaycottIndia2024-05-13Benton, John B Jr NEW32Elwin Sharvill
1047Darci O GlickSpain2024-05-20Benton, John B Jr RENEWAL55Bernardo Dominic
1048David L IturbideIndia2024-05-11Morlong Associates RENEWAL59Ivan Magalhaes
1049Isabel X FollerAustralia2024-05-20Rousseaux, Michael Esq NEGOTIATION10Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair F MaletArgentinaElwin Sharvill NEGOTIATION
Emily M NickaUnited KingdomAnna Fali UNQUALIFIED
Faith A OstroskyUnited KingdomXuxue Feng RENEWAL
Jones M FigeroaCanadaXuxue Feng UNQUALIFIED
Jeanfrancois M SchemmerFranceAmy Elsner QUALIFIED
Costa O StockhamRussiaIoni Bowcher QUALIFIED
Mayumi U PerinJapanStephen Shaw UNQUALIFIED
Deepesh N BologniaBrazilAsiya Javayant UNQUALIFIED
Costa S TollnerArgentinaElwin Sharvill UNQUALIFIED
Morrow M KuskoUnited KingdomAnna Fali UNQUALIFIED
Stacey V WhobreyBrazilAmy Elsner NEW
Tony J ChuiCanadaIvan Magalhaes QUALIFIED
Aika U GillianJapanOnyama Limba NEGOTIATION
Jones I CaldareraRussiaAnna Fali UNQUALIFIED
Nicolas E CaudyRussiaAsiya Javayant UNQUALIFIED
Smith W MarrierBrazilOnyama Limba UNQUALIFIED
Antonio S VocelkaAustraliaAsiya Javayant NEW
Leon X RoysterBrazilIvan Magalhaes QUALIFIED
Maisha B AmigonUnited KingdomXuxue Feng NEGOTIATION
Aditya G ChuiCanadaAnna Fali PROPOSAL
Silvio O PaprockiAustraliaBernardo Dominic NEW
Murillo T GauchoSpainIvan Magalhaes NEGOTIATION
Darci Z CaudyIndiaIoni Bowcher NEW
Antonio C FollerFranceStephen Shaw RENEWAL
Ricardo Y KuskoArgentinaElwin Sharvill PROPOSAL
Greenwood R SaylorsGermanyIoni Bowcher QUALIFIED
Nicolas Q MacleadCanadaIvan Magalhaes PROPOSAL
Cody M StensethBrazilAsiya Javayant UNQUALIFIED
Misaki F OstroskyGermanyXuxue Feng QUALIFIED
Arvin F PerinBrazilAsiya Javayant NEW
Mayumi S InouyeArgentinaStephen Shaw NEGOTIATION
Claire U GlickBrazilAnna Fali NEGOTIATION
Jones D VocelkaSpainOnyama Limba RENEWAL
Jefferson R OstroskyGermanyIoni Bowcher PROPOSAL
Ashley R ChuiJapanBernardo Dominic QUALIFIED
Stacey K RoysterArgentinaElwin Sharvill NEW
Leja P StockhamSpainOnyama Limba NEW
Johnson J VocelkaGermanyIvan Magalhaes PROPOSAL
Juan D AlbaresGermanyXuxue Feng NEGOTIATION
Salvatore W InouyeRussiaElwin Sharvill NEW
Jones G CaldareraArgentinaXuxue Feng QUALIFIED
Mayumi M SchemmerRussiaIoni Bowcher NEW
Kadeem O RoysterItalyIvan Magalhaes PROPOSAL
Maria N MaletItalyOnyama Limba NEW
Murillo Q MorascaItalyElwin Sharvill PROPOSAL
Silvio F GlickAustraliaAnna Fali QUALIFIED
James M InouyeCanadaIvan Magalhaes NEW
Misaki C ButtUnited KingdomAnna Fali NEGOTIATION
Cody G AlbaresJapanAmy Elsner NEGOTIATION
Misaki H GauchoRussiaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Claire U Waycott
Kaitlin A Kolmetz
Misaki V Venere
Sinclair Q Nicka
Ashley R Iturbide
Mujtaba W Chui
Nicolas L Oldroyd
Jones O Nicka
Alejandro H Bolognia
Isabel A Nestle
James K Vocelka
Clifford S Shinko
Isabel G Vocelka
Ashley Y Caldarera
Deepesh U Waycott
Octavia W Chui
Antonio Y Venere
Leja O Darakjy
Chavez E Vocelka
Johnson S Morasca
Claire K Darakjy
Tony T Chui
Chavez L Inouye
Izzy M Perin
Alejandro Q Darakjy
Chavez G Sergi
Deepesh L Inouye
Leon K Gillian
Isabel A Slusarski
Kadeem T Stockham
Johnson M Nicka
Greenwood K Vocelka
Greenwood B Wieser
Silvio I Gaucho
Maria H Briddick
Ashley Q Vocelka
Mujtaba R Campain
Smith V Poquette
Faith D Bolognia
Murillo Z Dilliard
Maria M Nicka
Smith E Gaucho
Alejandro B Kusko
Maisha E Morasca
Tony P Bowley
Faith H Darakjy
Ivar F Whobrey
Stacey A Albares
Alejandro A Morasca
Octavia L Schemmer
IdCountryDate
1000Italy2024-04-27
1001France2024-05-05
1002Argentina2024-05-08
1003France2024-05-13
1004India2024-05-02
1005Japan2024-05-08
1006Australia2024-05-05
1007United Kingdom2024-05-03
1008Spain2024-04-24
1009Italy2024-05-02
1010Spain2024-04-22
1011Russia2024-05-15
1012Brazil2024-05-01
1013Spain2024-05-01
1014Argentina2024-04-27
1015Argentina2024-05-10
1016Argentina2024-04-22
1017France2024-05-02
1018Italy2024-05-04
1019Argentina2024-05-10
1020Japan2024-04-29
1021Russia2024-05-10
1022Japan2024-05-04
1023United Kingdom2024-05-07
1024Japan2024-05-12
1025Japan2024-05-08
1026India2024-04-25
1027United Kingdom2024-04-24
1028Brazil2024-04-24
1029Russia2024-05-12
1030Russia2024-04-27
1031Argentina2024-05-19
1032Canada2024-05-04
1033France2024-05-09
1034Japan2024-05-01
1035Japan2024-04-23
1036Brazil2024-05-19
1037Italy2024-04-25
1038Russia2024-05-13
1039Russia2024-05-18
1040Australia2024-04-22
1041France2024-05-15
1042France2024-05-13
1043Germany2024-05-18
1044Russia2024-04-29
1045Brazil2024-05-13
1046Argentina2024-05-14
1047India2024-05-04
1048Russia2024-05-21
1049Spain2024-04-24

On-Demand Data

NameIdCountryDate
Aruna L Figeroa1000United Kingdom2024-04-25
Claire B Dilliard1001Spain2024-05-04
Kadeem Y Nestle1002Australia2024-05-15
Izzy G Shinko1003United Kingdom2024-04-25
Kaitlin H Figeroa1004Japan2024-05-15
Cody T Venere1005Brazil2024-05-05
Aika B Stockham1006Argentina2024-05-16
Leja C Caudy1007France2024-05-04
Chavez H Venere1008Germany2024-05-19
Octavia S Chui1009United Kingdom2024-05-05
Rodrigues C Stockham1010Australia2024-05-10
Chavez Z Butt1011India2024-04-23
Antonio G Glick1012Russia2024-05-21
Tony G Ruta1013Italy2024-05-18
Deepesh M Glick1014Argentina2024-05-19
Mayumi O Gillian1015Russia2024-05-15
Cody I Morasca1016Russia2024-05-20
Jennifer Q Garufi1017Spain2024-04-29
David A Oldroyd1018Brazil2024-05-06
Faith O Malet1019Spain2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey H MaletArgentinaAnna Fali PROPOSAL
Darci R AmigonCanadaIvan Magalhaes NEW
Chavez A WaycottJapanBernardo Dominic NEW
Jennifer A OstroskyArgentinaElwin Sharvill QUALIFIED
Costa E MarrierSpainIvan Magalhaes NEGOTIATION
James Z FollerAustraliaAsiya Javayant QUALIFIED
Antonio Z PoquetteBrazilIoni Bowcher QUALIFIED
Darci G WhobreyArgentinaAnna Fali RENEWAL
Jennifer X GlickAustraliaIoni Bowcher QUALIFIED
Mujtaba N AmigonUnited KingdomAmy Elsner NEW
Faith W NestleAustraliaIvan Magalhaes NEGOTIATION
Stacey Z FollerRussiaBernardo Dominic UNQUALIFIED
Izzy Y AlbaresJapanBernardo Dominic NEGOTIATION
Aditya H ShinkoBrazilIvan Magalhaes PROPOSAL
Leon O TollnerIndiaBernardo Dominic NEW
Munro H IturbideItalyIvan Magalhaes UNQUALIFIED
Francesco T OstroskySpainAnna Fali RENEWAL
Morrow N PerinIndiaAmy Elsner NEGOTIATION
Deepesh M GauchoItalyBernardo Dominic UNQUALIFIED
Sinclair Y MorascaArgentinaAsiya Javayant NEGOTIATION
Kaitlin C MorascaFranceXuxue Feng RENEWAL
Adams B DoeItalyAsiya Javayant PROPOSAL
Stacey R InouyeBrazilAsiya Javayant PROPOSAL
Deepesh T SergiAustraliaIvan Magalhaes NEW
Aika A PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Smith C DoeGermanyAnna Fali NEW
Ivar J RutaArgentinaXuxue Feng NEW
Sinclair L PaprockiCanadaStephen Shaw RENEWAL
Alejandro L PoquetteUnited KingdomAsiya Javayant NEW
Morrow H MaletFranceElwin Sharvill PROPOSAL
James Q KolmetzUnited KingdomAsiya Javayant PROPOSAL
Arvin R ButtBrazilStephen Shaw NEGOTIATION
Julie H GarufiSpainAsiya Javayant NEW
Alejandro U SchemmerBrazilElwin Sharvill UNQUALIFIED
Morrow B PaprockiGermanyIvan Magalhaes RENEWAL
Mujtaba L ButtUnited KingdomOnyama Limba UNQUALIFIED
Aditya O DarakjyBrazilAmy Elsner PROPOSAL
Costa H WieserIndiaStephen Shaw PROPOSAL
Morrow T OldroydArgentinaAsiya Javayant PROPOSAL
Morrow A GarufiAustraliaAsiya Javayant RENEWAL

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