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
Greenwood B CaldareraArgentinaIoni Bowcher RENEWAL
Mayumi C MorascaArgentinaBernardo Dominic PROPOSAL
Aruna A DilliardUnited KingdomElwin Sharvill NEGOTIATION
Ivar N MaletRussiaIvan Magalhaes NEW
Ashley T FlosiFranceXuxue Feng UNQUALIFIED
Silvio E SchemmerGermanyElwin Sharvill NEW
Johnson G MorascaItalyAmy Elsner NEGOTIATION
Alejandro Y PoquetteRussiaIvan Magalhaes NEGOTIATION
Faith F CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Maria Y MaletCanadaElwin Sharvill QUALIFIED
Emily N SergiJapanAsiya Javayant QUALIFIED
Chavez R VocelkaArgentinaXuxue Feng PROPOSAL
Isabel Q MorascaCanadaBernardo Dominic UNQUALIFIED
Faith N MorascaCanadaAnna Fali PROPOSAL
Darci N BologniaBrazilStephen Shaw QUALIFIED
Juan T WhobreyRussiaXuxue Feng NEGOTIATION
Ashley V SchemmerUnited KingdomIvan Magalhaes NEW
Deepesh B InouyeCanadaIoni Bowcher NEGOTIATION
Sinclair A CampainItalyStephen Shaw NEGOTIATION
Chavez D PaprockiArgentinaIoni Bowcher QUALIFIED
Greenwood T AmigonAustraliaOnyama Limba PROPOSAL
Wickens Z MaletUnited KingdomAnna Fali UNQUALIFIED
Misaki Q MaletBrazilStephen Shaw UNQUALIFIED
Wickens Y GarufiIndiaAsiya Javayant NEGOTIATION
Ivar A DilliardSpainBernardo Dominic RENEWAL
Nicolas Y BowleyFranceStephen Shaw NEW
Leon L RutaJapanIoni Bowcher UNQUALIFIED
Silvio R RoysterAustraliaStephen Shaw PROPOSAL
Silvio I VocelkaCanadaAmy Elsner PROPOSAL
Darci V TollnerCanadaIoni Bowcher NEW
Costa Z OldroydGermanyStephen Shaw NEW
Clifford Y MorascaUnited KingdomElwin Sharvill QUALIFIED
Maria P RutaRussiaAsiya Javayant PROPOSAL
Octavia S WieserFranceElwin Sharvill QUALIFIED
Darci B NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Emily V PoquetteRussiaXuxue Feng NEW
Greenwood B MarrierAustraliaAsiya Javayant UNQUALIFIED
Wickens G StockhamCanadaElwin Sharvill PROPOSAL
Juan Z NickaJapanOnyama Limba NEGOTIATION
Salvatore T RutaUnited KingdomStephen Shaw QUALIFIED
Kadeem W RulapaughItalyAnna Fali NEGOTIATION
Salvatore K GillianBrazilStephen Shaw RENEWAL
Mayumi Z StockhamUnited KingdomStephen Shaw UNQUALIFIED
Julie G WaycottBrazilBernardo Dominic NEW
Mujtaba V RulapaughBrazilAmy Elsner NEW
Deepesh A AmigonUnited KingdomBernardo Dominic NEGOTIATION
Morrow D BologniaCanadaIvan Magalhaes NEGOTIATION
Tony R MacleadBrazilBernardo Dominic NEGOTIATION
Stacey I RoysterIndiaAmy Elsner QUALIFIED
James B ChuiSpainAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio I KolmetzBrazilAsiya Javayant NEGOTIATION
Cody T GauchoItalyStephen Shaw NEW
Kadeem R PerinArgentinaStephen Shaw UNQUALIFIED
Aika Q CaudyJapanElwin Sharvill RENEWAL
Jeanfrancois K AmigonAustraliaOnyama Limba NEW
Jeanfrancois S DoeUnited KingdomOnyama Limba QUALIFIED
Darci R VocelkaJapanOnyama Limba UNQUALIFIED
Jefferson V FlosiUnited KingdomOnyama Limba UNQUALIFIED
Ricardo C StensethItalyXuxue Feng NEW
Jefferson Q AmigonBrazilXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois K WieserRussia2024-04-04Rangoni Of Florence UNQUALIFIED55Onyama Limba
1001Darci A ChuiGermany2024-04-26Printing Dimensions NEW73Ioni Bowcher
1002Tony U DoeGermany2024-04-10Rousseaux, Michael Esq QUALIFIED55Onyama Limba
1003Greenwood Q GauchoArgentina2024-04-07Chemel, James L Cpa QUALIFIED97Asiya Javayant
1004Johnson U CampainJapan2024-04-07Buckley Miller Wright QUALIFIED11Ioni Bowcher
1005Ashley D PaprockiFrance2024-04-18Rousseaux, Michael Esq NEW13Anna Fali
1006Nicolas V SaylorsRussia2024-04-24Dorl, James J Esq QUALIFIED40Ioni Bowcher
1007Kaitlin B FlosiFrance2024-03-31Commercial Press NEW87Onyama Limba
1008Emily R NickaFrance2024-04-08Feltz Printing Service PROPOSAL87Ivan Magalhaes
1009Cody K PoquetteSpain2024-04-24Morlong Associates RENEWAL13Stephen Shaw
1010Maisha E KolmetzCanada2024-04-01Feiner Bros QUALIFIED47Ivan Magalhaes
1011Stacey C OstroskyFrance2024-04-25Printing Dimensions PROPOSAL73Xuxue Feng
1012Chavez R MorascaAustralia2024-04-02Rangoni Of Florence PROPOSAL83Bernardo Dominic
1013Johnson G BologniaIndia2024-04-01Truhlar And Truhlar Attys QUALIFIED36Elwin Sharvill
1014Leon B PerinUnited Kingdom2024-04-09Buckley Miller Wright NEW99Ioni Bowcher
1015Leon T FigeroaSpain2024-04-22Buckley Miller Wright QUALIFIED55Ivan Magalhaes
1016Murillo J KuskoGermany2024-04-13Buckley Miller Wright NEW85Ioni Bowcher
1017Maisha Y MaletAustralia2024-03-30Buckley Miller Wright NEW58Stephen Shaw
1018Ricardo I RoysterJapan2024-04-06Printing Dimensions PROPOSAL97Ivan Magalhaes
1019Faith E FlosiGermany2024-04-14Printing Dimensions NEGOTIATION10Xuxue Feng
1020Jennifer Q SaylorsSpain2024-03-31Commercial Press QUALIFIED56Ioni Bowcher
1021Tony E MarrierIndia2024-04-15Chapman, Ross E Esq RENEWAL64Ivan Magalhaes
1022Ricardo F IturbideCanada2024-03-31Chapman, Ross E Esq UNQUALIFIED74Ivan Magalhaes
1023Jefferson K CampainBrazil2024-04-22Printing Dimensions QUALIFIED19Ioni Bowcher
1024Juan G AlbaresGermany2024-04-28Truhlar And Truhlar Attys RENEWAL79Ioni Bowcher
1025Silvio Q FerenczFrance2024-04-25Chapman, Ross E Esq UNQUALIFIED29Bernardo Dominic
1026Silvio R InouyeAustralia2024-04-17Buckley Miller Wright NEGOTIATION64Asiya Javayant
1027Leon B WieserGermany2024-04-12Morlong Associates RENEWAL51Onyama Limba
1028Jones N StensethItaly2024-04-03Chapman, Ross E Esq NEW84Amy Elsner
1029Julie I GauchoIndia2024-04-18Truhlar And Truhlar Attys NEW83Stephen Shaw
1030Adams C WaycottJapan2024-04-24Printing Dimensions NEW46Asiya Javayant
1031Cody J MaletSpain2024-04-04Printing Dimensions RENEWAL68Ivan Magalhaes
1032Francesco P AlbaresCanada2024-04-02Printing Dimensions QUALIFIED18Onyama Limba
1033Darci M OstroskyRussia2024-04-16King, Christopher A Esq QUALIFIED89Onyama Limba
1034Chavez M InouyeFrance2024-03-30Printing Dimensions QUALIFIED25Stephen Shaw
1035Kadeem S RimItaly2024-04-09Feltz Printing Service UNQUALIFIED0Elwin Sharvill
1036Arvin R GauchoGermany2024-04-20Chapman, Ross E Esq PROPOSAL86Onyama Limba
1037Kadeem N OstroskyUnited Kingdom2024-04-28Benton, John B Jr RENEWAL89Xuxue Feng
1038Morrow E BologniaArgentina2024-04-27Dorl, James J Esq NEGOTIATION10Onyama Limba
1039Julie J PoquetteSpain2024-04-01Truhlar And Truhlar Attys PROPOSAL70Amy Elsner
1040Emily J BowleyUnited Kingdom2024-03-30Rousseaux, Michael Esq PROPOSAL96Stephen Shaw
1041Leon S TollnerItaly2024-04-25Benton, John B Jr NEGOTIATION61Bernardo Dominic
1042Deepesh W MorascaArgentina2024-04-06Benton, John B Jr NEW36Asiya Javayant
1043Misaki J GarufiFrance2024-04-20Feltz Printing Service NEW42Bernardo Dominic
1044Salvatore D KolmetzItaly2024-04-19Rangoni Of Florence PROPOSAL86Xuxue Feng
1045Cody S OstroskyArgentina2024-03-31Chemel, James L Cpa QUALIFIED39Anna Fali
1046Maria D CampainSpain2024-04-07Chanay, Jeffrey A Esq PROPOSAL33Asiya Javayant
1047Emily B WhobreyBrazil2024-04-09Buckley Miller Wright UNQUALIFIED59Xuxue Feng
1048Nicolas J CaudyArgentina2024-04-16Feiner Bros UNQUALIFIED38Asiya Javayant
1049Kaitlin C WhobreyFrance2024-04-19King, Christopher A Esq RENEWAL23Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues N CampainItalyAmy Elsner NEW
Clifford U FlosiCanadaIoni Bowcher PROPOSAL
Costa S RimFranceOnyama Limba UNQUALIFIED
Silvio B AmigonAustraliaBernardo Dominic PROPOSAL
Kadeem D StensethIndiaIvan Magalhaes NEW
Jones J GillianSpainOnyama Limba PROPOSAL
Alejandro M VenereItalyBernardo Dominic PROPOSAL
James W GauchoItalyIoni Bowcher NEGOTIATION
Darci P CaudyCanadaBernardo Dominic UNQUALIFIED
Tony T OldroydCanadaElwin Sharvill NEW
Kaitlin I RulapaughArgentinaAmy Elsner PROPOSAL
Leon C KuskoCanadaIoni Bowcher PROPOSAL
Misaki O InouyeArgentinaBernardo Dominic PROPOSAL
James O GauchoFranceStephen Shaw QUALIFIED
David E SlusarskiFranceIvan Magalhaes RENEWAL
Isabel I IturbideJapanOnyama Limba NEW
Mujtaba N WieserJapanAsiya Javayant NEW
Darci R GarufiRussiaIvan Magalhaes UNQUALIFIED
Jennifer F OstroskyCanadaIoni Bowcher NEGOTIATION
Juan C SchemmerUnited KingdomOnyama Limba RENEWAL
Wickens N DarakjyFranceIoni Bowcher PROPOSAL
Julie I AmigonSpainAsiya Javayant RENEWAL
Jefferson B WhobreyAustraliaIoni Bowcher UNQUALIFIED
Munro P RulapaughJapanIoni Bowcher NEW
Jennifer F ShinkoCanadaStephen Shaw PROPOSAL
Leja H VocelkaUnited KingdomOnyama Limba PROPOSAL
Mayumi S DilliardCanadaIvan Magalhaes UNQUALIFIED
Maisha L CaldareraArgentinaAsiya Javayant QUALIFIED
Aditya J SaylorsJapanAsiya Javayant QUALIFIED
Munro H FollerSpainAnna Fali RENEWAL
Ivar X SlusarskiIndiaOnyama Limba UNQUALIFIED
Kadeem R TollnerRussiaXuxue Feng NEGOTIATION
Aditya O FollerFranceAnna Fali NEGOTIATION
Aika E BologniaBrazilElwin Sharvill UNQUALIFIED
Clifford U WieserAustraliaBernardo Dominic PROPOSAL
James L NestleUnited KingdomAmy Elsner UNQUALIFIED
Murillo R ShinkoItalyIvan Magalhaes PROPOSAL
Ashley O BowleyUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba D MaletGermanyStephen Shaw PROPOSAL
Mujtaba U StensethSpainAnna Fali PROPOSAL
Deepesh D StockhamJapanElwin Sharvill NEW
Mayumi G MacleadItalyBernardo Dominic NEGOTIATION
Alejandro N RimRussiaAnna Fali RENEWAL
Chavez S FerenczRussiaAsiya Javayant NEGOTIATION
Mujtaba R DoeItalyElwin Sharvill QUALIFIED
Cody F AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Juan I VocelkaIndiaAmy Elsner UNQUALIFIED
Emily C WaycottBrazilStephen Shaw QUALIFIED
Smith O KolmetzGermanyAmy Elsner NEGOTIATION
Munro V PoquetteFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Jennifer K Schemmer
Ivar F Bolognia
Rodrigues Y Ferencz
Antonio B Glick
Leon N Maclead
Salvatore S Gaucho
Kadeem V Waycott
Francesco B Kusko
Sinclair P Slusarski
Arvin K Butt
Mayumi L Gaucho
Kadeem K Shinko
Adams C Nicka
Maisha M Maclead
Emily N Stenseth
Faith F Ferencz
Isabel W Saylors
Mujtaba D Caudy
Kaitlin E Doe
Munro V Sergi
Kadeem N Butt
Rodrigues D Ostrosky
Munro H Venere
Kadeem C Venere
Emily A Royster
Salvatore Y Rim
Maria H Shinko
Ivar D Morasca
Sinclair M Maclead
Kaitlin M Rulapaugh
Ashley C Ostrosky
Leja L Gillian
Mujtaba E Amigon
Munro T Perin
Kadeem Z Glick
Jefferson W Dilliard
Leja S Stockham
Antonio Y Kolmetz
David H Paprocki
Sinclair Q Foller
Silvio S Oldroyd
Alejandro E Chui
Munro K Stenseth
Costa D Dilliard
Kadeem P Ferencz
Mujtaba Z Stenseth
Leon B Butt
David B Ruta
Greenwood D Tollner
Aika F Chui
IdCountryDate
1000India2024-04-17
1001United Kingdom2024-04-09
1002Russia2024-04-26
1003Canada2024-04-27
1004Canada2024-04-17
1005Canada2024-03-31
1006France2024-04-12
1007Argentina2024-03-30
1008Japan2024-04-24
1009Russia2024-03-31
1010Australia2024-04-26
1011Argentina2024-04-19
1012India2024-04-08
1013Argentina2024-03-30
1014Japan2024-04-15
1015Italy2024-04-08
1016Germany2024-04-07
1017Australia2024-04-14
1018Australia2024-04-03
1019Italy2024-04-23
1020France2024-04-09
1021Japan2024-04-13
1022France2024-04-01
1023Canada2024-04-16
1024Germany2024-04-13
1025Canada2024-04-23
1026Spain2024-04-08
1027India2024-04-10
1028Canada2024-04-15
1029Italy2024-03-31
1030Japan2024-04-24
1031Australia2024-04-01
1032Spain2024-03-30
1033Spain2024-04-11
1034Argentina2024-04-27
1035Australia2024-04-09
1036Russia2024-04-23
1037France2024-04-17
1038Italy2024-04-12
1039Canada2024-04-08
1040Germany2024-04-19
1041Germany2024-04-15
1042Japan2024-04-03
1043Canada2024-04-17
1044Australia2024-04-06
1045Russia2024-04-18
1046Canada2024-04-07
1047United Kingdom2024-04-21
1048Italy2024-04-12
1049Japan2024-04-13

On-Demand Data

NameIdCountryDate
Aditya E Waycott1000Australia2024-04-25
Smith Q Flosi1001Russia2024-04-14
Maria F Malet1002India2024-04-21
Maria T Tollner1003Germany2024-04-08
Greenwood S Iturbide1004Germany2024-04-25
Deepesh U Stockham1005India2024-04-19
Faith Q Caudy1006Spain2024-04-16
Aika E Whobrey1007Russia2024-04-20
Darci S Slusarski1008Russia2024-04-09
Kadeem O Shinko1009Japan2024-04-16
Francesco F Bolognia1010Russia2024-04-04
Sinclair E Schemmer1011Canada2024-04-24
Stacey V Ferencz1012France2024-04-03
Antonio T Ferencz1013Germany2024-04-15
Deepesh I Foller1014Brazil2024-04-10
Silvio L Caudy1015Canada2024-03-31
Costa D Doe1016France2024-04-21
Claire A Bowley1017Spain2024-04-01
Francesco O Figeroa1018Australia2024-04-09
Maisha I Whobrey1019Russia2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith J WaycottArgentinaAmy Elsner NEGOTIATION
James D SchemmerJapanStephen Shaw NEGOTIATION
Julie L BologniaIndiaElwin Sharvill NEGOTIATION
Aruna G KuskoGermanyAmy Elsner QUALIFIED
Tony S KolmetzJapanBernardo Dominic QUALIFIED
Octavia Q AmigonGermanyAnna Fali RENEWAL
Mayumi O MarrierBrazilAnna Fali PROPOSAL
Adams W PerinJapanAmy Elsner PROPOSAL
Ashley C IturbideUnited KingdomAsiya Javayant NEGOTIATION
Aditya E TollnerItalyAsiya Javayant NEGOTIATION
Faith K NestleIndiaIvan Magalhaes NEW
Morrow T CaudyFranceIvan Magalhaes PROPOSAL
Aruna I VenereSpainAmy Elsner RENEWAL
Aika E FerenczCanadaBernardo Dominic NEW
Jefferson R CampainBrazilAnna Fali QUALIFIED
Izzy F MaletItalyAnna Fali RENEWAL
Johnson U AmigonGermanyAsiya Javayant NEGOTIATION
Antonio J WhobreyGermanyElwin Sharvill RENEWAL
Murillo F StensethJapanElwin Sharvill UNQUALIFIED
Julie V DoeJapanElwin Sharvill RENEWAL
Silvio W RimJapanAsiya Javayant RENEWAL
Kadeem L FerenczAustraliaStephen Shaw QUALIFIED
Wickens Z TollnerJapanElwin Sharvill UNQUALIFIED
Isabel Z AlbaresAustraliaBernardo Dominic QUALIFIED
Emily C KolmetzFranceAnna Fali UNQUALIFIED
Ivar F GillianGermanyElwin Sharvill NEW
Johnson P VenereGermanyXuxue Feng PROPOSAL
Morrow R StockhamSpainBernardo Dominic NEGOTIATION
Jefferson P OstroskyGermanyIoni Bowcher RENEWAL
Salvatore N CaudyGermanyIvan Magalhaes NEGOTIATION
Kaitlin W BriddickBrazilIvan Magalhaes UNQUALIFIED
Aditya S GauchoAustraliaAmy Elsner NEW
David P FerenczCanadaAmy Elsner RENEWAL
Ricardo G OldroydItalyAsiya Javayant RENEWAL
Silvio J ButtSpainAnna Fali PROPOSAL
Julie J VenereCanadaStephen Shaw UNQUALIFIED
Jefferson M ButtArgentinaAnna Fali QUALIFIED
Sinclair C MarrierGermanyElwin Sharvill NEW
David R StensethFranceBernardo Dominic UNQUALIFIED
Jefferson J ChuiJapanXuxue Feng PROPOSAL

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