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
Leja S DarakjyGermanyIoni Bowcher PROPOSAL
David V StockhamCanadaIoni Bowcher NEGOTIATION
James Y FerenczGermanyAsiya Javayant RENEWAL
Ivar G GillianSpainIoni Bowcher UNQUALIFIED
Cody C MaletItalyAnna Fali QUALIFIED
Arvin F SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Octavia T SaylorsUnited KingdomOnyama Limba NEW
Aika D NestleArgentinaXuxue Feng RENEWAL
Aruna T DarakjyRussiaXuxue Feng NEW
Costa E AmigonAustraliaIvan Magalhaes UNQUALIFIED
Aika Q SlusarskiArgentinaElwin Sharvill QUALIFIED
Jeanfrancois Z DoeIndiaXuxue Feng UNQUALIFIED
Emily G NickaUnited KingdomIvan Magalhaes QUALIFIED
Clifford N CaudyUnited KingdomAmy Elsner RENEWAL
Jennifer X NestleIndiaIvan Magalhaes PROPOSAL
Jefferson A MarrierBrazilAnna Fali QUALIFIED
Antonio U PerinArgentinaAsiya Javayant PROPOSAL
Johnson L CaldareraSpainOnyama Limba RENEWAL
Isabel X PoquetteUnited KingdomOnyama Limba NEW
Salvatore E PerinUnited KingdomAnna Fali NEGOTIATION
Tony K ButtItalyAsiya Javayant UNQUALIFIED
Adams T StensethIndiaAnna Fali PROPOSAL
James G BriddickSpainIoni Bowcher RENEWAL
Darci C DoeRussiaAsiya Javayant NEGOTIATION
Munro V CaldareraItalyIvan Magalhaes PROPOSAL
Faith Y CaudyGermanyElwin Sharvill UNQUALIFIED
Rodrigues X GlickBrazilXuxue Feng NEGOTIATION
Claire B GlickArgentinaElwin Sharvill UNQUALIFIED
Murillo P GarufiItalyAnna Fali NEW
Leon S RulapaughUnited KingdomXuxue Feng NEW
Aditya D SlusarskiArgentinaIvan Magalhaes QUALIFIED
Aika S BologniaArgentinaIoni Bowcher NEW
Jennifer J ShinkoFranceAsiya Javayant PROPOSAL
Chavez D StockhamJapanIoni Bowcher RENEWAL
Antonio R MacleadBrazilBernardo Dominic RENEWAL
Izzy S FerenczBrazilAsiya Javayant NEW
Aika C KolmetzSpainIoni Bowcher RENEWAL
Greenwood W KolmetzIndiaIoni Bowcher UNQUALIFIED
Darci V BriddickGermanyStephen Shaw NEGOTIATION
David L GauchoRussiaAsiya Javayant UNQUALIFIED
Clifford U DarakjyRussiaIoni Bowcher RENEWAL
Julie T BologniaUnited KingdomElwin Sharvill NEW
Deepesh F SaylorsSpainAnna Fali NEGOTIATION
Murillo O RimRussiaAsiya Javayant UNQUALIFIED
Rodrigues X FlosiIndiaElwin Sharvill RENEWAL
Emily L InouyeUnited KingdomAnna Fali NEGOTIATION
Cody N WieserItalyBernardo Dominic QUALIFIED
Costa G CaudyAustraliaXuxue Feng NEGOTIATION
Murillo S FigeroaSpainStephen Shaw PROPOSAL
Arvin R GlickFranceElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro O PerinIndiaOnyama Limba NEGOTIATION
Leon P CampainFranceOnyama Limba NEGOTIATION
Nicolas G WhobreyFranceBernardo Dominic NEW
Kadeem J FerenczRussiaAsiya Javayant PROPOSAL
Kadeem H FollerCanadaIoni Bowcher PROPOSAL
Misaki R GlickBrazilIoni Bowcher RENEWAL
Salvatore X CampainFranceXuxue Feng NEW
Jennifer F TollnerGermanyAmy Elsner PROPOSAL
Leja Z StockhamAustraliaElwin Sharvill NEW
Tony Z MarrierArgentinaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David D CaudyArgentina2024-04-22Rousseaux, Michael Esq QUALIFIED26Anna Fali
1001Octavia J KuskoJapan2024-04-02Morlong Associates RENEWAL52Asiya Javayant
1002Silvio K DilliardGermany2024-04-26Chapman, Ross E Esq QUALIFIED62Ioni Bowcher
1003Salvatore O GillianCanada2024-03-30Chanay, Jeffrey A Esq PROPOSAL72Onyama Limba
1004Wickens H FollerItaly2024-03-29Feiner Bros NEW91Elwin Sharvill
1005Faith H MaletJapan2024-04-18Feltz Printing Service PROPOSAL64Elwin Sharvill
1006Johnson N SchemmerFrance2024-03-29Commercial Press NEW61Ivan Magalhaes
1007Munro O PerinItaly2024-04-12Buckley Miller Wright PROPOSAL64Elwin Sharvill
1008Izzy W PerinSpain2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED92Ioni Bowcher
1009Aditya A SergiRussia2024-03-30Printing Dimensions QUALIFIED45Bernardo Dominic
1010Francesco S CaudyFrance2024-04-26Buckley Miller Wright QUALIFIED39Stephen Shaw
1011Ashley Z InouyeAustralia2024-04-26Printing Dimensions QUALIFIED20Stephen Shaw
1012Greenwood J RoysterCanada2024-04-20Commercial Press NEW82Onyama Limba
1013Silvio Y ChuiJapan2024-04-12Chemel, James L Cpa RENEWAL31Ivan Magalhaes
1014Aruna E BriddickIndia2024-04-01Truhlar And Truhlar Attys RENEWAL74Asiya Javayant
1015Octavia W RimGermany2024-04-19Morlong Associates RENEWAL36Anna Fali
1016Alejandro Z BowleyGermany2024-04-02Chemel, James L Cpa QUALIFIED3Asiya Javayant
1017Mayumi O MorascaAustralia2024-04-06Chanay, Jeffrey A Esq NEGOTIATION81Asiya Javayant
1018Ashley Y KolmetzGermany2024-04-19King, Christopher A Esq NEGOTIATION52Stephen Shaw
1019Jones P FigeroaFrance2024-04-25Chapman, Ross E Esq NEGOTIATION86Bernardo Dominic
1020Morrow L KolmetzUnited Kingdom2024-04-04Chanay, Jeffrey A Esq NEW45Ioni Bowcher
1021Isabel V TollnerUnited Kingdom2024-04-10Benton, John B Jr UNQUALIFIED15Elwin Sharvill
1022Tony E GarufiAustralia2024-03-28Feltz Printing Service NEW78Onyama Limba
1023Cody G MaletUnited Kingdom2024-04-21Buckley Miller Wright RENEWAL60Elwin Sharvill
1024Smith R GlickBrazil2024-04-06Feltz Printing Service UNQUALIFIED29Anna Fali
1025Maisha Y KolmetzSpain2024-04-03Feiner Bros NEW43Ioni Bowcher
1026Rodrigues K RoysterGermany2024-04-18Printing Dimensions RENEWAL54Elwin Sharvill
1027Aditya V CaldareraItaly2024-04-12Rousseaux, Michael Esq NEGOTIATION63Ioni Bowcher
1028Izzy S FollerUnited Kingdom2024-04-21Chemel, James L Cpa NEGOTIATION12Onyama Limba
1029Cody L GauchoGermany2024-04-11Morlong Associates NEGOTIATION60Anna Fali
1030Izzy S AmigonCanada2024-03-28Printing Dimensions RENEWAL66Amy Elsner
1031Costa T ChuiRussia2024-04-07Morlong Associates RENEWAL91Onyama Limba
1032Leon G ChuiBrazil2024-04-25Chanay, Jeffrey A Esq NEW37Elwin Sharvill
1033Murillo O ChuiRussia2024-04-25Feltz Printing Service PROPOSAL95Asiya Javayant
1034Leja V KuskoArgentina2024-04-10Feltz Printing Service UNQUALIFIED16Ioni Bowcher
1035Maria E RimFrance2024-04-18King, Christopher A Esq PROPOSAL69Ioni Bowcher
1036Kadeem U BowleyJapan2024-04-22Chapman, Ross E Esq RENEWAL67Elwin Sharvill
1037David M OstroskyGermany2024-04-21Chemel, James L Cpa RENEWAL25Amy Elsner
1038James L CaldareraCanada2024-04-25Commercial Press NEW69Anna Fali
1039Darci K OldroydFrance2024-04-06Chapman, Ross E Esq NEGOTIATION59Asiya Javayant
1040Jeanfrancois X StockhamJapan2024-04-19Buckley Miller Wright UNQUALIFIED84Anna Fali
1041Arvin N SaylorsArgentina2024-04-06Chapman, Ross E Esq NEGOTIATION88Anna Fali
1042Kaitlin J SergiIndia2024-04-26Dorl, James J Esq RENEWAL44Elwin Sharvill
1043Mujtaba Y RimSpain2024-04-15Truhlar And Truhlar Attys PROPOSAL57Ivan Magalhaes
1044Francesco U BowleyIndia2024-04-22Truhlar And Truhlar Attys PROPOSAL60Asiya Javayant
1045Izzy I FollerFrance2024-04-19Rangoni Of Florence RENEWAL64Ioni Bowcher
1046Jefferson T BologniaArgentina2024-04-13Benton, John B Jr UNQUALIFIED3Stephen Shaw
1047Faith V TollnerSpain2024-04-01Feiner Bros NEW23Stephen Shaw
1048Juan V PaprockiArgentina2024-03-31Feiner Bros PROPOSAL56Asiya Javayant
1049Smith Y TollnerAustralia2024-04-04Chemel, James L Cpa UNQUALIFIED83Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Antonio M VocelkaCanadaStephen Shaw QUALIFIED
Emily T VocelkaUnited KingdomAmy Elsner QUALIFIED
Clifford Z AlbaresUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois C CaldareraGermanyAmy Elsner NEW
Mayumi F OldroydIndiaStephen Shaw UNQUALIFIED
Isabel N RoysterSpainAmy Elsner PROPOSAL
Kadeem F RutaAustraliaStephen Shaw NEW
Sinclair E FerenczIndiaElwin Sharvill NEW
Izzy F MaletBrazilAmy Elsner NEGOTIATION
Julie P StensethRussiaIoni Bowcher NEW
Silvio G VocelkaCanadaElwin Sharvill PROPOSAL
Nicolas A FollerCanadaAsiya Javayant PROPOSAL
Arvin B ButtAustraliaXuxue Feng NEW
Murillo N PaprockiJapanAsiya Javayant UNQUALIFIED
James C AlbaresItalyAnna Fali NEW
Leja Q AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Ivar E BologniaCanadaStephen Shaw PROPOSAL
Greenwood A PerinAustraliaIoni Bowcher QUALIFIED
Nicolas X KuskoCanadaBernardo Dominic UNQUALIFIED
Maisha E RutaItalyStephen Shaw NEW
Jones B DoeArgentinaAnna Fali PROPOSAL
Aruna T GarufiCanadaAsiya Javayant PROPOSAL
Aditya L GillianJapanXuxue Feng RENEWAL
Aruna N ShinkoArgentinaIvan Magalhaes PROPOSAL
Ricardo B RoysterGermanyOnyama Limba RENEWAL
Costa P ShinkoAustraliaXuxue Feng PROPOSAL
Chavez S WaycottUnited KingdomIvan Magalhaes QUALIFIED
Deepesh X IturbideRussiaElwin Sharvill NEW
Isabel R BowleyUnited KingdomAnna Fali PROPOSAL
Jennifer F OstroskyRussiaStephen Shaw RENEWAL
Nicolas K IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois J WieserJapanAnna Fali NEW
Izzy Z BologniaCanadaIoni Bowcher NEGOTIATION
Alejandro N WaycottGermanyXuxue Feng QUALIFIED
Mujtaba U RutaUnited KingdomBernardo Dominic RENEWAL
Leon Z DilliardBrazilAmy Elsner PROPOSAL
Johnson L IturbideGermanyBernardo Dominic NEGOTIATION
Aditya K BologniaBrazilBernardo Dominic UNQUALIFIED
Tony A FollerBrazilAnna Fali NEGOTIATION
Smith N SergiCanadaAnna Fali UNQUALIFIED
Arvin P DoeArgentinaElwin Sharvill UNQUALIFIED
Aika J GarufiFranceIvan Magalhaes UNQUALIFIED
Rodrigues M BriddickJapanElwin Sharvill UNQUALIFIED
Wickens M GlickIndiaElwin Sharvill RENEWAL
Rodrigues Y AlbaresSpainBernardo Dominic NEGOTIATION
Isabel G ShinkoIndiaAnna Fali PROPOSAL
Clifford H FollerUnited KingdomAnna Fali NEGOTIATION
Faith I RoysterFranceXuxue Feng NEGOTIATION
Ricardo N WhobreyRussiaAsiya Javayant UNQUALIFIED
Salvatore P ShinkoAustraliaOnyama Limba PROPOSAL
Frozen Columns
Name
Stacey X Inouye
Maria V Kusko
Izzy M Stenseth
Maisha R Rim
Ashley R Shinko
Emily O Glick
Clifford K Paprocki
Ashley P Oldroyd
Wickens I Vocelka
Tony D Kusko
Mayumi B Malet
Julie F Ruta
Leon N Rim
Stacey H Royster
Juan A Nestle
Izzy U Rulapaugh
Tony V Schemmer
Rodrigues U Tollner
Jones I Whobrey
Juan G Figeroa
Wickens P Caudy
Arvin C Dilliard
Misaki K Schemmer
Salvatore D Gaucho
Aditya F Whobrey
Silvio H Sergi
Aditya P Ostrosky
Faith K Caldarera
Cody W Maclead
Julie J Schemmer
Aika A Saylors
Morrow W Sergi
Greenwood V Garufi
Aika F Darakjy
Wickens G Briddick
Misaki H Kusko
Julie I Bowley
Izzy B Garufi
Aika N Butt
Isabel C Waycott
Izzy B Wieser
Mujtaba C Slusarski
Rodrigues N Darakjy
Isabel N Whobrey
Emily B Oldroyd
Emily F Chui
Adams C Shinko
Ivar C Dilliard
Sinclair K Bolognia
Izzy S Waycott
IdCountryDate
1000Russia2024-04-07
1001Australia2024-04-05
1002Argentina2024-04-18
1003Japan2024-04-23
1004Germany2024-04-06
1005Australia2024-04-11
1006Argentina2024-04-19
1007Germany2024-04-12
1008Germany2024-04-02
1009Germany2024-04-02
1010Australia2024-03-28
1011France2024-04-13
1012India2024-04-13
1013Germany2024-04-06
1014Brazil2024-04-04
1015India2024-03-30
1016Canada2024-03-28
1017India2024-04-08
1018Russia2024-04-11
1019Australia2024-04-05
1020Brazil2024-04-06
1021Russia2024-04-23
1022Canada2024-04-16
1023Argentina2024-04-14
1024Canada2024-04-26
1025United Kingdom2024-04-12
1026India2024-04-16
1027Canada2024-04-26
1028United Kingdom2024-03-30
1029Brazil2024-04-06
1030Russia2024-04-24
1031Australia2024-03-31
1032Brazil2024-04-17
1033France2024-04-14
1034Argentina2024-04-11
1035United Kingdom2024-04-13
1036France2024-04-21
1037Argentina2024-03-28
1038France2024-04-23
1039Russia2024-04-09
1040Australia2024-04-04
1041United Kingdom2024-03-29
1042United Kingdom2024-04-21
1043Australia2024-04-23
1044Spain2024-04-05
1045Australia2024-03-30
1046Japan2024-04-08
1047Argentina2024-03-31
1048Spain2024-04-12
1049France2024-04-03

On-Demand Data

NameIdCountryDate
Arvin D Wieser1000Italy2024-04-26
Jennifer D Marrier1001Brazil2024-04-07
Misaki V Bolognia1002Spain2024-04-15
Chavez N Dilliard1003Italy2024-04-25
James L Ruta1004Japan2024-04-04
Isabel B Wieser1005Japan2024-04-03
Jennifer O Chui1006Italy2024-04-11
Aruna S Rim1007Russia2024-03-29
Morrow Y Maclead1008France2024-04-12
Maria D Stockham1009Japan2024-04-25
Costa L Malet1010Russia2024-04-23
David U Whobrey1011Spain2024-04-24
Mujtaba N Caudy1012India2024-04-23
Cody A Glick1013Germany2024-04-26
Jones U Perin1014India2024-04-22
Costa U Bolognia1015Spain2024-04-14
Ricardo P Iturbide1016Germany2024-03-28
Octavia O Shinko1017Japan2024-04-12
Jeanfrancois F Vocelka1018Spain2024-04-08
Clifford V Gaucho1019Spain2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood F RoysterCanadaOnyama Limba RENEWAL
Jennifer F IturbideSpainAnna Fali NEGOTIATION
Maisha H ChuiAustraliaIvan Magalhaes RENEWAL
Salvatore P PerinGermanyElwin Sharvill RENEWAL
Jones J IturbideArgentinaAsiya Javayant RENEWAL
Antonio K OldroydArgentinaOnyama Limba UNQUALIFIED
Isabel X DarakjySpainXuxue Feng RENEWAL
Alejandro L GlickBrazilOnyama Limba NEGOTIATION
Leja V WaycottItalyAmy Elsner UNQUALIFIED
Adams D VocelkaSpainStephen Shaw NEGOTIATION
Greenwood J FigeroaFranceBernardo Dominic PROPOSAL
Leja Y InouyeSpainStephen Shaw RENEWAL
Smith E WhobreyGermanyAmy Elsner NEGOTIATION
Wickens J RoysterCanadaOnyama Limba QUALIFIED
Alejandro I FlosiFranceAsiya Javayant PROPOSAL
Ricardo S StockhamFranceAsiya Javayant NEGOTIATION
David J SchemmerAustraliaOnyama Limba RENEWAL
Emily R SaylorsBrazilAnna Fali NEGOTIATION
Arvin J BriddickJapanBernardo Dominic UNQUALIFIED
Mayumi U WieserCanadaIvan Magalhaes PROPOSAL
Francesco G MaletIndiaOnyama Limba QUALIFIED
Munro B CaudyArgentinaStephen Shaw NEW
Maisha M BologniaIndiaAmy Elsner RENEWAL
Costa E FollerRussiaAsiya Javayant NEGOTIATION
Maisha Q GlickItalyIvan Magalhaes NEGOTIATION
Adams Q PoquetteRussiaBernardo Dominic QUALIFIED
Aruna D ShinkoRussiaOnyama Limba RENEWAL
Leja N GlickFranceIvan Magalhaes NEGOTIATION
Maisha G ChuiCanadaIoni Bowcher UNQUALIFIED
Rodrigues X KuskoSpainXuxue Feng QUALIFIED
Tony R SlusarskiAustraliaAsiya Javayant RENEWAL
Tony M MarrierJapanXuxue Feng QUALIFIED
Munro T StensethItalyStephen Shaw PROPOSAL
Aruna X KolmetzItalyIvan Magalhaes QUALIFIED
Ashley J RoysterFranceAnna Fali NEGOTIATION
Aditya E PerinSpainStephen Shaw NEW
Jones K BriddickBrazilOnyama Limba PROPOSAL
Misaki C SergiIndiaXuxue Feng NEGOTIATION
Antonio U SaylorsUnited KingdomAsiya Javayant RENEWAL
Isabel V PaprockiIndiaIvan Magalhaes 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>