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
Rodrigues J GarufiFranceXuxue Feng PROPOSAL
Kaitlin D StensethAustraliaAnna Fali UNQUALIFIED
Cody H SergiJapanIoni Bowcher UNQUALIFIED
Arvin C WhobreyAustraliaIoni Bowcher PROPOSAL
Misaki A DoeSpainAsiya Javayant UNQUALIFIED
Maisha I TollnerBrazilAsiya Javayant UNQUALIFIED
Stacey D RimJapanAmy Elsner NEGOTIATION
Emily G AmigonGermanyOnyama Limba NEW
Juan B GillianJapanIvan Magalhaes RENEWAL
Greenwood L MacleadItalyXuxue Feng UNQUALIFIED
Jones X CaldareraFranceAsiya Javayant RENEWAL
Sinclair M BowleySpainXuxue Feng RENEWAL
Chavez K WaycottSpainBernardo Dominic RENEWAL
Antonio W MacleadJapanElwin Sharvill PROPOSAL
Jefferson C WhobreyAustraliaBernardo Dominic NEW
Chavez J KolmetzGermanyXuxue Feng PROPOSAL
Leja T RimItalyAmy Elsner NEGOTIATION
Murillo E WaycottArgentinaAsiya Javayant NEW
Alejandro F StensethIndiaXuxue Feng NEGOTIATION
Maria Q InouyeCanadaStephen Shaw UNQUALIFIED
Adams L PerinIndiaOnyama Limba QUALIFIED
Johnson F MarrierJapanIvan Magalhaes PROPOSAL
Kaitlin Y RutaFranceXuxue Feng NEW
Aruna Z DilliardCanadaStephen Shaw NEW
Aditya Y SlusarskiFranceOnyama Limba PROPOSAL
Ashley A FigeroaJapanAsiya Javayant QUALIFIED
Mujtaba O RulapaughRussiaAnna Fali UNQUALIFIED
Ricardo O SchemmerBrazilIvan Magalhaes RENEWAL
Kadeem X DoeIndiaBernardo Dominic QUALIFIED
Isabel K WaycottItalyOnyama Limba RENEWAL
Johnson N RoysterItalyAsiya Javayant NEW
Silvio F InouyeArgentinaStephen Shaw PROPOSAL
Stacey L ChuiFranceAmy Elsner NEW
Morrow R SergiIndiaElwin Sharvill NEW
Clifford Q PerinItalyAsiya Javayant RENEWAL
Jefferson Z RimArgentinaOnyama Limba UNQUALIFIED
Smith H RoysterArgentinaIvan Magalhaes PROPOSAL
Isabel Q MacleadCanadaElwin Sharvill RENEWAL
Francesco B MaletFranceStephen Shaw NEGOTIATION
Murillo N ButtItalyXuxue Feng QUALIFIED
Leon S WaycottJapanOnyama Limba NEGOTIATION
Juan C WaycottCanadaBernardo Dominic NEGOTIATION
Jennifer F MaletSpainBernardo Dominic UNQUALIFIED
Mujtaba F GillianAustraliaAsiya Javayant NEW
Munro W SaylorsFranceIoni Bowcher RENEWAL
Isabel O RulapaughCanadaAmy Elsner RENEWAL
Maisha E KuskoJapanOnyama Limba NEGOTIATION
Jeanfrancois O GillianFranceXuxue Feng UNQUALIFIED
Chavez B SlusarskiBrazilAmy Elsner RENEWAL
Antonio Q OstroskyArgentinaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon T FollerItalyOnyama Limba NEGOTIATION
Stacey G GarufiItalyXuxue Feng PROPOSAL
Maisha K FollerGermanyAnna Fali QUALIFIED
Aika W PerinArgentinaStephen Shaw UNQUALIFIED
Morrow A TollnerSpainAsiya Javayant PROPOSAL
Ivar E CaldareraAustraliaAsiya Javayant UNQUALIFIED
Maisha Z StensethFranceIoni Bowcher NEGOTIATION
Clifford C StockhamIndiaOnyama Limba QUALIFIED
Adams Z ButtGermanyXuxue Feng UNQUALIFIED
Izzy H VenereRussiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem O AmigonFrance2024-04-22Printing Dimensions NEW69Bernardo Dominic
1001Aika C PoquetteUnited Kingdom2024-04-10Feiner Bros NEW6Onyama Limba
1002Rodrigues K MacleadArgentina2024-03-30Printing Dimensions NEGOTIATION68Elwin Sharvill
1003Aika M RoysterArgentina2024-04-05Dorl, James J Esq PROPOSAL27Ioni Bowcher
1004Emily H CampainIndia2024-04-12Benton, John B Jr QUALIFIED98Ioni Bowcher
1005Ivar E GarufiCanada2024-04-04Dorl, James J Esq NEW55Ivan Magalhaes
1006Jennifer V ButtItaly2024-04-09Chapman, Ross E Esq NEW33Onyama Limba
1007Ivar D WhobreyItaly2024-03-26Chapman, Ross E Esq PROPOSAL40Amy Elsner
1008Rodrigues E InouyeGermany2024-04-02Chapman, Ross E Esq RENEWAL4Ivan Magalhaes
1009Wickens E MorascaArgentina2024-04-13Buckley Miller Wright RENEWAL12Amy Elsner
1010James Y AmigonRussia2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED62Amy Elsner
1011Julie P GillianItaly2024-03-31Rousseaux, Michael Esq NEGOTIATION76Xuxue Feng
1012Silvio O FollerIndia2024-03-24Printing Dimensions QUALIFIED49Elwin Sharvill
1013Leja D StensethFrance2024-04-22Dorl, James J Esq PROPOSAL94Elwin Sharvill
1014Murillo A MorascaSpain2024-04-15Chapman, Ross E Esq PROPOSAL37Ioni Bowcher
1015Leja W RulapaughAustralia2024-04-18Benton, John B Jr NEW31Onyama Limba
1016Jeanfrancois B DilliardSpain2024-04-01Benton, John B Jr UNQUALIFIED11Elwin Sharvill
1017Jennifer T WaycottItaly2024-03-25Morlong Associates NEW80Asiya Javayant
1018Mayumi Z AmigonIndia2024-04-04Feltz Printing Service NEW1Anna Fali
1019Cody K ShinkoAustralia2024-04-20Feltz Printing Service QUALIFIED35Ivan Magalhaes
1020Greenwood B DoeSpain2024-04-03Chemel, James L Cpa NEGOTIATION8Elwin Sharvill
1021Salvatore F CaldareraItaly2024-04-15Chanay, Jeffrey A Esq NEW84Bernardo Dominic
1022Clifford M DoeAustralia2024-04-05Feiner Bros NEGOTIATION56Anna Fali
1023Antonio Q PerinArgentina2024-04-06Truhlar And Truhlar Attys UNQUALIFIED44Bernardo Dominic
1024Clifford U VocelkaCanada2024-04-22Benton, John B Jr PROPOSAL97Asiya Javayant
1025Munro V KuskoRussia2024-04-12Printing Dimensions PROPOSAL25Amy Elsner
1026Salvatore A TollnerFrance2024-03-24Feltz Printing Service RENEWAL67Xuxue Feng
1027Maisha R GlickItaly2024-04-05Chemel, James L Cpa NEW72Anna Fali
1028Ashley O VenereArgentina2024-03-29Benton, John B Jr RENEWAL27Elwin Sharvill
1029Wickens E RimItaly2024-04-03Benton, John B Jr NEGOTIATION79Xuxue Feng
1030Faith Y PerinIndia2024-03-31Printing Dimensions QUALIFIED47Asiya Javayant
1031Silvio G VocelkaRussia2024-04-01Rousseaux, Michael Esq QUALIFIED75Stephen Shaw
1032Francesco B CaudyJapan2024-04-12Benton, John B Jr RENEWAL63Anna Fali
1033Deepesh T RoysterJapan2024-03-26Chemel, James L Cpa PROPOSAL22Stephen Shaw
1034Stacey S RutaRussia2024-04-14Feiner Bros NEGOTIATION24Bernardo Dominic
1035Kaitlin L WieserJapan2024-03-28Dorl, James J Esq PROPOSAL85Ivan Magalhaes
1036Darci E StockhamItaly2024-04-14Chapman, Ross E Esq RENEWAL39Stephen Shaw
1037Izzy U BologniaIndia2024-04-04King, Christopher A Esq QUALIFIED48Bernardo Dominic
1038Adams L MorascaBrazil2024-04-06Rousseaux, Michael Esq QUALIFIED73Asiya Javayant
1039Murillo K NestleUnited Kingdom2024-04-17Dorl, James J Esq NEW97Xuxue Feng
1040Ivar I DarakjyCanada2024-04-02Feltz Printing Service PROPOSAL35Asiya Javayant
1041Leja J BriddickUnited Kingdom2024-04-16Commercial Press NEGOTIATION66Bernardo Dominic
1042Rodrigues I BriddickCanada2024-04-10Truhlar And Truhlar Attys QUALIFIED76Xuxue Feng
1043Morrow I NickaItaly2024-04-20Chanay, Jeffrey A Esq QUALIFIED58Stephen Shaw
1044Munro S PerinAustralia2024-04-09Rousseaux, Michael Esq UNQUALIFIED88Ioni Bowcher
1045Leon X BriddickRussia2024-04-20Feltz Printing Service NEW27Bernardo Dominic
1046Munro I MacleadFrance2024-04-17Benton, John B Jr NEW1Asiya Javayant
1047Isabel G WaycottAustralia2024-04-05Rangoni Of Florence QUALIFIED12Stephen Shaw
1048Jeanfrancois D AmigonItaly2024-04-12King, Christopher A Esq RENEWAL25Xuxue Feng
1049Stacey S TollnerSpain2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED72Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel L PaprockiIndiaIoni Bowcher QUALIFIED
Ricardo B TollnerItalyOnyama Limba UNQUALIFIED
Darci L MarrierItalyElwin Sharvill QUALIFIED
Morrow N FerenczFranceBernardo Dominic QUALIFIED
Mujtaba L PoquetteAustraliaXuxue Feng UNQUALIFIED
Greenwood M SergiIndiaIoni Bowcher QUALIFIED
Murillo M BowleySpainXuxue Feng RENEWAL
Clifford Q StensethFranceXuxue Feng PROPOSAL
Arvin N StensethUnited KingdomAmy Elsner UNQUALIFIED
Jennifer C ShinkoSpainStephen Shaw QUALIFIED
Sinclair Y CaldareraFranceAsiya Javayant NEW
Sinclair O IturbideAustraliaAsiya Javayant NEW
David O NestleIndiaAnna Fali UNQUALIFIED
Jones O RutaUnited KingdomElwin Sharvill RENEWAL
Leja R VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Rodrigues U ChuiBrazilOnyama Limba RENEWAL
Aruna I SlusarskiJapanAmy Elsner QUALIFIED
Deepesh F OstroskyGermanyAnna Fali PROPOSAL
Sinclair U GauchoAustraliaXuxue Feng UNQUALIFIED
Wickens V NestleRussiaAsiya Javayant RENEWAL
Stacey B BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Izzy K SergiRussiaElwin Sharvill NEW
Munro B BriddickJapanIoni Bowcher PROPOSAL
Wickens C NickaCanadaAnna Fali UNQUALIFIED
Jefferson P NickaArgentinaStephen Shaw NEW
Izzy O DarakjyFranceIoni Bowcher RENEWAL
Sinclair A VenereAustraliaIvan Magalhaes NEW
Faith N KuskoGermanyStephen Shaw QUALIFIED
Salvatore A PaprockiUnited KingdomOnyama Limba RENEWAL
Mayumi A NickaCanadaAnna Fali PROPOSAL
Aditya E GarufiRussiaAsiya Javayant QUALIFIED
Jennifer X SergiJapanStephen Shaw RENEWAL
Ashley S BowleyIndiaXuxue Feng NEGOTIATION
Greenwood H CampainBrazilIvan Magalhaes QUALIFIED
Ricardo K InouyeCanadaIvan Magalhaes NEGOTIATION
Aruna E GillianJapanXuxue Feng NEW
David Q ChuiGermanyOnyama Limba RENEWAL
Stacey Q CaldareraIndiaIvan Magalhaes RENEWAL
Tony M ButtArgentinaIvan Magalhaes NEW
Ashley I FlosiAustraliaAnna Fali NEW
Octavia G KuskoJapanOnyama Limba PROPOSAL
Sinclair D IturbideUnited KingdomAmy Elsner NEGOTIATION
Rodrigues F AmigonArgentinaAnna Fali UNQUALIFIED
Maria L NickaIndiaAnna Fali NEW
Octavia Z BologniaItalyXuxue Feng QUALIFIED
Stacey Q BriddickArgentinaBernardo Dominic RENEWAL
Costa A BowleyGermanyIvan Magalhaes NEW
Deepesh O GarufiCanadaBernardo Dominic NEGOTIATION
Aruna B CaudyCanadaXuxue Feng PROPOSAL
Faith F GillianUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Sinclair F Stenseth
Jefferson C Morasca
Emily M Gaucho
Arvin E Bowley
Maisha X Caudy
Greenwood R Oldroyd
Izzy F Figeroa
Jefferson V Amigon
Ashley E Venere
Wickens J Butt
James D Saylors
Sinclair Z Flosi
Johnson U Morasca
Clifford A Ruta
Emily D Maclead
Leon P Nestle
Claire D Inouye
Claire V Venere
Costa V Whobrey
Ivar W Foller
Jennifer B Nicka
Mujtaba X Malet
David X Oldroyd
Octavia V Stenseth
Francesco O Caldarera
Mujtaba W Schemmer
James Y Briddick
Antonio K Paprocki
Misaki H Caudy
Leja R Rulapaugh
Juan I Morasca
Mayumi L Inouye
Ricardo Y Caudy
Kaitlin N Wieser
Nicolas G Butt
Mujtaba T Caldarera
Juan U Amigon
Costa P Bolognia
Maria N Chui
Aika L Foller
David F Bolognia
Alejandro N Kusko
Rodrigues S Poquette
Darci Y Butt
Darci F Glick
Ivar D Bowley
Jennifer Q Chui
Jeanfrancois Z Bolognia
Aruna D Gillian
Jeanfrancois B Venere
IdCountryDate
1000India2024-04-08
1001Russia2024-04-03
1002Canada2024-04-06
1003Russia2024-04-18
1004Germany2024-04-14
1005Spain2024-03-27
1006Japan2024-04-19
1007France2024-04-16
1008Japan2024-04-10
1009Brazil2024-04-13
1010United Kingdom2024-04-17
1011Spain2024-04-19
1012Argentina2024-03-25
1013Japan2024-04-07
1014Russia2024-04-14
1015France2024-04-02
1016Russia2024-03-31
1017India2024-03-29
1018Spain2024-03-26
1019Australia2024-04-17
1020France2024-03-24
1021Russia2024-04-03
1022France2024-04-05
1023Japan2024-03-26
1024Brazil2024-03-27
1025India2024-03-30
1026Australia2024-04-11
1027France2024-04-01
1028Italy2024-04-20
1029France2024-04-05
1030France2024-04-20
1031India2024-04-20
1032Germany2024-04-18
1033Australia2024-03-25
1034Australia2024-04-10
1035Russia2024-03-24
1036Canada2024-04-04
1037Russia2024-04-08
1038Germany2024-04-07
1039Italy2024-03-27
1040India2024-03-26
1041France2024-04-11
1042Germany2024-04-11
1043Spain2024-04-04
1044Argentina2024-04-09
1045Brazil2024-03-27
1046Japan2024-04-21
1047Russia2024-04-07
1048Italy2024-03-27
1049Russia2024-04-21

On-Demand Data

NameIdCountryDate
David N Schemmer1000Germany2024-04-19
Izzy S Gaucho1001United Kingdom2024-03-24
Costa W Perin1002Japan2024-03-31
Wickens P Rim1003Brazil2024-03-27
Emily Y Vocelka1004Canada2024-04-06
Darci C Slusarski1005India2024-04-18
Jennifer N Flosi1006Germany2024-04-19
Chavez E Flosi1007Canada2024-04-12
Maria K Gillian1008Brazil2024-03-30
Wickens L Figeroa1009Japan2024-04-17
Maisha Q Malet1010Italy2024-04-08
Ivar R Chui1011France2024-04-03
Leja Z Inouye1012Argentina2024-04-19
Sinclair K Oldroyd1013Australia2024-03-24
Izzy Z Kusko1014Brazil2024-04-01
Ashley P Caudy1015Japan2024-04-19
Jefferson I Whobrey1016Italy2024-04-04
Darci Z Foller1017Russia2024-03-29
Isabel C Malet1018United Kingdom2024-04-03
Izzy E Caudy1019Germany2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith C ChuiBrazilStephen Shaw PROPOSAL
Aika U IturbideIndiaOnyama Limba NEGOTIATION
Jeanfrancois O VocelkaArgentinaAmy Elsner PROPOSAL
Chavez K WieserArgentinaIoni Bowcher NEGOTIATION
Silvio S SaylorsRussiaAmy Elsner UNQUALIFIED
Stacey Q WieserBrazilAnna Fali PROPOSAL
Costa C PoquetteIndiaAmy Elsner UNQUALIFIED
Silvio Z NestleAustraliaIoni Bowcher RENEWAL
Emily K DoeIndiaAnna Fali PROPOSAL
Ashley Y SaylorsBrazilIvan Magalhaes PROPOSAL
Kaitlin J BologniaCanadaElwin Sharvill NEW
Wickens C ShinkoAustraliaIvan Magalhaes QUALIFIED
Salvatore K SergiSpainAsiya Javayant PROPOSAL
Darci L MaletFranceAmy Elsner RENEWAL
Chavez L GarufiFranceOnyama Limba QUALIFIED
Cody P FerenczRussiaAsiya Javayant QUALIFIED
Munro L IturbideSpainOnyama Limba NEW
Deepesh Y AmigonBrazilAnna Fali QUALIFIED
Julie F RoysterItalyIoni Bowcher QUALIFIED
Ashley W BologniaFranceElwin Sharvill QUALIFIED
Clifford V WieserBrazilIoni Bowcher UNQUALIFIED
Julie U InouyeBrazilOnyama Limba RENEWAL
Maria W BriddickCanadaOnyama Limba NEGOTIATION
Stacey B FollerGermanyBernardo Dominic NEW
Jeanfrancois P WaycottAustraliaElwin Sharvill RENEWAL
Misaki O ShinkoSpainOnyama Limba QUALIFIED
Claire P BriddickCanadaStephen Shaw QUALIFIED
Nicolas N MaletUnited KingdomAsiya Javayant NEW
Jeanfrancois K MarrierSpainAsiya Javayant QUALIFIED
Maisha N NestleItalyStephen Shaw NEW
Faith A WhobreyAustraliaIoni Bowcher PROPOSAL
Kaitlin P TollnerAustraliaIoni Bowcher UNQUALIFIED
Jefferson D PerinJapanXuxue Feng RENEWAL
Greenwood J StockhamIndiaBernardo Dominic QUALIFIED
Kadeem F AmigonJapanAnna Fali QUALIFIED
Octavia K PerinFranceAnna Fali QUALIFIED
Greenwood F RimArgentinaIvan Magalhaes RENEWAL
Salvatore E MarrierSpainIoni Bowcher NEGOTIATION
Morrow A WhobreyIndiaAmy Elsner NEGOTIATION
Sinclair Y GarufiBrazilAmy Elsner NEW

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