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
Sinclair V GarufiIndiaIvan Magalhaes UNQUALIFIED
Tony S PaprockiUnited KingdomAsiya Javayant NEW
Munro B BologniaFranceIoni Bowcher PROPOSAL
Isabel A MorascaBrazilIvan Magalhaes QUALIFIED
Sinclair Q PoquetteSpainAmy Elsner NEW
Francesco A DarakjyAustraliaAsiya Javayant UNQUALIFIED
Claire F GauchoJapanAnna Fali UNQUALIFIED
David W CaldareraArgentinaAmy Elsner QUALIFIED
Clifford H MacleadUnited KingdomXuxue Feng NEGOTIATION
Emily T NickaItalyIoni Bowcher RENEWAL
Octavia N CaudyItalyIoni Bowcher QUALIFIED
Misaki S MorascaBrazilBernardo Dominic RENEWAL
Antonio R KuskoJapanIvan Magalhaes NEW
Salvatore O FollerArgentinaAnna Fali UNQUALIFIED
Smith M DarakjyJapanElwin Sharvill UNQUALIFIED
Juan G FollerAustraliaAsiya Javayant NEGOTIATION
Stacey X ShinkoBrazilElwin Sharvill QUALIFIED
Murillo V RimSpainAsiya Javayant NEW
David L FigeroaBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois W NestleItalyStephen Shaw PROPOSAL
Clifford H BriddickBrazilAnna Fali RENEWAL
Deepesh E MarrierGermanyAmy Elsner PROPOSAL
James L AmigonIndiaIvan Magalhaes UNQUALIFIED
Morrow R FlosiArgentinaAnna Fali QUALIFIED
Kaitlin U PaprockiSpainAnna Fali QUALIFIED
Salvatore M PoquetteGermanyXuxue Feng QUALIFIED
Leon U PaprockiFranceXuxue Feng QUALIFIED
Francesco Q MorascaIndiaBernardo Dominic NEW
Faith P MarrierSpainIoni Bowcher NEGOTIATION
Aruna J FerenczUnited KingdomAsiya Javayant RENEWAL
Izzy L BologniaGermanyIoni Bowcher NEGOTIATION
Misaki I RutaBrazilAnna Fali QUALIFIED
Silvio E DilliardIndiaStephen Shaw RENEWAL
Morrow B CampainBrazilXuxue Feng RENEWAL
Salvatore J CaldareraArgentinaAnna Fali PROPOSAL
Smith Y PoquetteArgentinaAnna Fali NEW
Wickens I KolmetzUnited KingdomAnna Fali PROPOSAL
Greenwood P WaycottRussiaAmy Elsner NEW
Ricardo A FollerFranceElwin Sharvill UNQUALIFIED
Nicolas Z NestleCanadaStephen Shaw QUALIFIED
Darci O StensethArgentinaStephen Shaw RENEWAL
Stacey I IturbideSpainAmy Elsner NEGOTIATION
Nicolas S InouyeAustraliaAnna Fali PROPOSAL
Isabel M PoquetteCanadaOnyama Limba QUALIFIED
Smith A AmigonSpainAmy Elsner QUALIFIED
Aditya H FollerIndiaIvan Magalhaes NEW
Stacey Z FlosiJapanOnyama Limba QUALIFIED
Sinclair Q IturbideAustraliaBernardo Dominic RENEWAL
Mujtaba Z RimSpainIvan Magalhaes NEW
Claire Z GillianBrazilBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Morrow K SergiJapanIvan Magalhaes QUALIFIED
Salvatore E InouyeFranceAsiya Javayant UNQUALIFIED
Isabel G MorascaGermanyAnna Fali PROPOSAL
David H SaylorsUnited KingdomAmy Elsner QUALIFIED
Octavia J FollerSpainIoni Bowcher NEW
Faith Y GlickRussiaStephen Shaw NEGOTIATION
Ivar Y WhobreyAustraliaAsiya Javayant UNQUALIFIED
Ricardo V MorascaAustraliaBernardo Dominic QUALIFIED
Morrow S MaletFranceBernardo Dominic PROPOSAL
Silvio M KolmetzJapanIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar Q NickaItaly2024-04-20Truhlar And Truhlar Attys UNQUALIFIED49Asiya Javayant
1001Greenwood R RimArgentina2024-04-01Rousseaux, Michael Esq UNQUALIFIED71Amy Elsner
1002Aruna F BriddickAustralia2024-04-03Chapman, Ross E Esq NEW32Xuxue Feng
1003Aditya I GlickSpain2024-04-16Morlong Associates PROPOSAL38Ivan Magalhaes
1004Aditya V ShinkoBrazil2024-04-12Buckley Miller Wright PROPOSAL44Onyama Limba
1005Aika T TollnerArgentina2024-04-23Buckley Miller Wright RENEWAL47Asiya Javayant
1006Ashley A WaycottGermany2024-04-23Rousseaux, Michael Esq PROPOSAL77Elwin Sharvill
1007Aika U NestleIndia2024-04-20Feiner Bros QUALIFIED17Onyama Limba
1008Maisha D KuskoFrance2024-04-08Benton, John B Jr RENEWAL17Anna Fali
1009Kadeem T WieserSpain2024-04-20Feltz Printing Service NEW59Ivan Magalhaes
1010Claire N RutaFrance2024-04-08Benton, John B Jr QUALIFIED88Ioni Bowcher
1011Costa K PaprockiAustralia2024-04-18Feiner Bros QUALIFIED16Onyama Limba
1012Ashley O FlosiAustralia2024-04-21Feiner Bros UNQUALIFIED47Asiya Javayant
1013Murillo K IturbideUnited Kingdom2024-04-16Chapman, Ross E Esq UNQUALIFIED11Bernardo Dominic
1014Ricardo S GlickUnited Kingdom2024-04-14Rangoni Of Florence QUALIFIED3Stephen Shaw
1015Kaitlin I GillianArgentina2024-03-31Commercial Press PROPOSAL71Onyama Limba
1016Aditya D DoeBrazil2024-04-12Buckley Miller Wright PROPOSAL39Elwin Sharvill
1017Ivar X TollnerBrazil2024-04-02Commercial Press RENEWAL64Elwin Sharvill
1018Munro Z GlickSpain2024-04-07Truhlar And Truhlar Attys NEW74Anna Fali
1019Alejandro D TollnerUnited Kingdom2024-04-20Dorl, James J Esq PROPOSAL73Elwin Sharvill
1020Salvatore D MacleadGermany2024-04-14King, Christopher A Esq PROPOSAL19Anna Fali
1021Jefferson A FollerAustralia2024-04-11Benton, John B Jr PROPOSAL29Xuxue Feng
1022Cody D VocelkaFrance2024-04-16Rangoni Of Florence RENEWAL75Xuxue Feng
1023Antonio I BologniaArgentina2024-03-27King, Christopher A Esq RENEWAL91Amy Elsner
1024Johnson I ShinkoArgentina2024-04-01Commercial Press QUALIFIED5Ivan Magalhaes
1025Cody G FerenczJapan2024-03-27Rousseaux, Michael Esq NEGOTIATION47Stephen Shaw
1026Deepesh W SlusarskiIndia2024-04-16Morlong Associates UNQUALIFIED4Stephen Shaw
1027Ivar Q KuskoGermany2024-04-18Benton, John B Jr RENEWAL71Onyama Limba
1028Ashley C PoquetteFrance2024-04-15Chemel, James L Cpa QUALIFIED32Ivan Magalhaes
1029Faith B MacleadFrance2024-03-29Printing Dimensions NEGOTIATION5Anna Fali
1030Octavia X MaletGermany2024-04-23Dorl, James J Esq NEW27Ivan Magalhaes
1031Arvin D AmigonAustralia2024-03-31Feltz Printing Service NEW85Xuxue Feng
1032Sinclair S GauchoSpain2024-04-09Commercial Press NEW47Ivan Magalhaes
1033Jones D BowleyJapan2024-04-18Chemel, James L Cpa UNQUALIFIED18Anna Fali
1034Ricardo A SergiItaly2024-04-24Morlong Associates NEW92Anna Fali
1035Deepesh Q IturbideItaly2024-04-01Chanay, Jeffrey A Esq QUALIFIED45Xuxue Feng
1036Tony N RoysterItaly2024-04-18Dorl, James J Esq RENEWAL45Elwin Sharvill
1037Murillo U NickaSpain2024-04-12King, Christopher A Esq NEW86Ivan Magalhaes
1038Aditya J GauchoRussia2024-04-23Rangoni Of Florence UNQUALIFIED29Stephen Shaw
1039Ashley I FerenczRussia2024-04-14Morlong Associates PROPOSAL34Onyama Limba
1040Jeanfrancois T RimAustralia2024-04-18Feiner Bros QUALIFIED59Xuxue Feng
1041Murillo T MacleadBrazil2024-04-18Chemel, James L Cpa NEGOTIATION25Bernardo Dominic
1042Jefferson D NestleBrazil2024-04-15Feltz Printing Service NEGOTIATION44Onyama Limba
1043Clifford D RutaSpain2024-04-17King, Christopher A Esq PROPOSAL54Elwin Sharvill
1044Misaki E AlbaresCanada2024-04-22Dorl, James J Esq RENEWAL25Onyama Limba
1045Mayumi H RimRussia2024-04-19Benton, John B Jr RENEWAL17Anna Fali
1046Francesco U CaudyJapan2024-04-17Rangoni Of Florence RENEWAL77Onyama Limba
1047Kadeem Y VocelkaGermany2024-04-09Buckley Miller Wright PROPOSAL3Bernardo Dominic
1048Faith H GarufiFrance2024-03-27Truhlar And Truhlar Attys NEW19Xuxue Feng
1049Juan Z MacleadCanada2024-04-17Feltz Printing Service UNQUALIFIED59Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aruna F CaldareraJapanIvan Magalhaes NEGOTIATION
Munro Q WhobreyIndiaBernardo Dominic NEGOTIATION
Salvatore L KolmetzSpainAnna Fali QUALIFIED
Julie G GillianArgentinaXuxue Feng UNQUALIFIED
Salvatore E NickaCanadaAmy Elsner QUALIFIED
Claire V SchemmerFranceBernardo Dominic UNQUALIFIED
Ashley B OstroskyCanadaXuxue Feng UNQUALIFIED
Cody E DilliardFranceXuxue Feng RENEWAL
Murillo K GarufiAustraliaOnyama Limba PROPOSAL
Leja V AmigonFranceIoni Bowcher NEW
Julie E ChuiIndiaStephen Shaw PROPOSAL
Octavia Y CaldareraCanadaIoni Bowcher NEW
Adams W MacleadBrazilIvan Magalhaes UNQUALIFIED
Sinclair A VocelkaGermanyBernardo Dominic NEGOTIATION
Isabel H FlosiArgentinaIvan Magalhaes RENEWAL
Silvio C AlbaresGermanyStephen Shaw RENEWAL
Aika P AmigonIndiaAsiya Javayant PROPOSAL
Faith P StensethJapanAsiya Javayant QUALIFIED
Aditya O VenereUnited KingdomOnyama Limba PROPOSAL
Jefferson S MacleadFranceAmy Elsner NEW
Jeanfrancois S FigeroaBrazilAsiya Javayant NEW
Antonio V FollerItalyAsiya Javayant UNQUALIFIED
Kadeem D DoeUnited KingdomElwin Sharvill NEGOTIATION
Murillo Q DarakjyAustraliaElwin Sharvill UNQUALIFIED
Kaitlin J IturbideSpainAnna Fali UNQUALIFIED
Maria T KuskoArgentinaIvan Magalhaes QUALIFIED
Antonio C CaldareraBrazilXuxue Feng NEW
Antonio U WhobreyItalyIvan Magalhaes UNQUALIFIED
Sinclair X MacleadIndiaXuxue Feng NEGOTIATION
Ivar O GillianFranceIvan Magalhaes NEGOTIATION
Jefferson S KolmetzGermanyAsiya Javayant UNQUALIFIED
Arvin I VenereSpainXuxue Feng NEGOTIATION
Izzy R CampainUnited KingdomElwin Sharvill NEGOTIATION
Deepesh A KuskoArgentinaXuxue Feng NEGOTIATION
Tony R MacleadFranceIoni Bowcher RENEWAL
Jeanfrancois E RoysterIndiaAsiya Javayant QUALIFIED
Morrow U BowleyGermanyStephen Shaw UNQUALIFIED
Maisha S MorascaRussiaAsiya Javayant QUALIFIED
Misaki J PerinFranceAnna Fali PROPOSAL
Munro D StensethGermanyIvan Magalhaes PROPOSAL
Jefferson K RoysterArgentinaIvan Magalhaes RENEWAL
Juan R FigeroaAustraliaOnyama Limba NEW
Kaitlin T ShinkoBrazilIoni Bowcher UNQUALIFIED
Mujtaba S GlickAustraliaAnna Fali NEW
Cody M MorascaSpainIoni Bowcher UNQUALIFIED
Ashley G IturbideJapanAsiya Javayant QUALIFIED
Aditya D FigeroaAustraliaStephen Shaw NEGOTIATION
Morrow U ShinkoGermanyXuxue Feng NEGOTIATION
Isabel O MaletFranceAnna Fali NEW
Costa B SchemmerJapanStephen Shaw NEW
Frozen Columns
Name
Johnson I Maclead
Chavez W Butt
Alejandro M Amigon
Octavia E Kusko
Murillo W Garufi
Stacey Q Albares
Ivar W Wieser
David K Sergi
James E Glick
Morrow C Marrier
Ricardo H Shinko
Ashley L Oldroyd
Claire A Maclead
Chavez J Tollner
Kadeem X Vocelka
Kadeem V Campain
James G Stenseth
Aruna X Schemmer
Juan W Bolognia
Morrow G Darakjy
Ashley I Rim
Mayumi T Campain
Adams F Iturbide
Maria U Ostrosky
Sinclair E Ferencz
Murillo P Iturbide
Jones Y Wieser
Ricardo V Iturbide
Stacey K Kolmetz
Leja Z Venere
Ricardo O Tollner
Wickens I Figeroa
Claire L Iturbide
Francesco G Royster
James C Butt
Murillo R Ostrosky
Cody U Oldroyd
Arvin S Poquette
Alejandro Q Malet
Ivar S Whobrey
David A Chui
Jeanfrancois S Gillian
Sinclair F Gillian
Smith U Maclead
Arvin O Royster
Arvin U Ferencz
Juan U Stockham
Deepesh J Rim
Chavez T Kusko
Johnson Q Schemmer
IdCountryDate
1000India2024-03-27
1001Spain2024-04-21
1002Russia2024-03-30
1003Germany2024-04-19
1004Argentina2024-04-20
1005United Kingdom2024-04-24
1006United Kingdom2024-04-02
1007Spain2024-04-03
1008Brazil2024-04-20
1009Italy2024-04-06
1010Brazil2024-04-02
1011Russia2024-04-04
1012Argentina2024-04-07
1013Japan2024-04-16
1014Italy2024-04-18
1015Germany2024-04-12
1016Italy2024-04-01
1017Argentina2024-04-22
1018Italy2024-04-09
1019Brazil2024-03-29
1020Canada2024-04-17
1021Argentina2024-04-01
1022Japan2024-03-26
1023Germany2024-04-23
1024India2024-04-22
1025Spain2024-04-19
1026Canada2024-04-07
1027Brazil2024-04-01
1028Argentina2024-03-31
1029Russia2024-04-08
1030Russia2024-04-08
1031United Kingdom2024-03-30
1032Spain2024-04-20
1033Brazil2024-04-04
1034United Kingdom2024-04-23
1035Spain2024-03-26
1036Japan2024-04-10
1037France2024-03-29
1038Australia2024-04-24
1039Germany2024-04-02
1040Argentina2024-04-10
1041France2024-04-17
1042Canada2024-04-03
1043Argentina2024-03-31
1044Japan2024-04-18
1045Brazil2024-04-08
1046Russia2024-04-02
1047Argentina2024-04-04
1048Japan2024-04-16
1049Italy2024-04-20

On-Demand Data

NameIdCountryDate
Rodrigues T Inouye1000Australia2024-03-27
Maisha P Waycott1001Australia2024-04-11
Octavia M Maclead1002Canada2024-04-01
Claire H Foller1003Russia2024-04-14
Sinclair H Gaucho1004India2024-04-15
Murillo T Albares1005Germany2024-04-21
Maisha X Bolognia1006Canada2024-04-02
Murillo A Ostrosky1007Italy2024-04-06
Jeanfrancois Q Ruta1008Argentina2024-04-15
Mujtaba J Ostrosky1009Australia2024-04-21
Mujtaba H Figeroa1010Canada2024-03-30
Jennifer M Wieser1011Argentina2024-04-18
Rodrigues K Garufi1012France2024-04-20
Jeanfrancois N Albares1013Spain2024-03-30
David G Malet1014Russia2024-04-08
Jones P Glick1015Italy2024-04-15
Maria P Malet1016United Kingdom2024-04-21
Mayumi F Chui1017Germany2024-04-16
Munro D Briddick1018Australia2024-04-01
Julie T Vocelka1019Japan2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa G WieserRussiaStephen Shaw QUALIFIED
James E RimBrazilStephen Shaw UNQUALIFIED
Isabel P MacleadAustraliaElwin Sharvill NEW
Aika T FlosiUnited KingdomXuxue Feng RENEWAL
Leon E CaudyFranceOnyama Limba RENEWAL
Emily S OstroskyBrazilElwin Sharvill NEGOTIATION
Octavia C RoysterFranceAmy Elsner NEW
Emily E CampainArgentinaAnna Fali PROPOSAL
Antonio D SaylorsGermanyOnyama Limba UNQUALIFIED
Mayumi Q TollnerRussiaElwin Sharvill UNQUALIFIED
Johnson N GarufiGermanyAmy Elsner NEW
Clifford S KolmetzUnited KingdomElwin Sharvill NEW
Johnson J CaldareraGermanyBernardo Dominic RENEWAL
Darci W MaletCanadaXuxue Feng UNQUALIFIED
Chavez E MarrierItalyAnna Fali NEW
Emily C BologniaArgentinaIoni Bowcher UNQUALIFIED
Smith O BologniaBrazilBernardo Dominic RENEWAL
Aruna K StockhamFranceAmy Elsner QUALIFIED
Nicolas U GlickCanadaOnyama Limba NEW
Kadeem H RutaCanadaElwin Sharvill RENEWAL
Claire R MaletItalyStephen Shaw UNQUALIFIED
Wickens F BriddickArgentinaAsiya Javayant QUALIFIED
Leon Q PaprockiGermanyIoni Bowcher NEGOTIATION
Emily I MaletJapanBernardo Dominic NEW
Leon V AmigonRussiaBernardo Dominic RENEWAL
Leon B RoysterUnited KingdomAnna Fali QUALIFIED
Aditya Q GarufiGermanyOnyama Limba NEW
Silvio Q PaprockiSpainBernardo Dominic UNQUALIFIED
Claire U IturbideRussiaAsiya Javayant NEGOTIATION
Cody I SchemmerJapanIoni Bowcher PROPOSAL
Octavia E RoysterBrazilXuxue Feng PROPOSAL
Nicolas W PoquetteAustraliaBernardo Dominic QUALIFIED
Misaki P InouyeRussiaAmy Elsner QUALIFIED
Smith L PerinBrazilIvan Magalhaes NEW
Johnson K MarrierGermanyBernardo Dominic RENEWAL
Octavia Q MaletUnited KingdomAmy Elsner UNQUALIFIED
James A FlosiUnited KingdomElwin Sharvill RENEWAL
James J BriddickIndiaAnna Fali NEGOTIATION
Stacey H SergiRussiaElwin Sharvill QUALIFIED
Isabel B FerenczArgentinaStephen Shaw 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>