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
Emily A ChuiUnited KingdomElwin Sharvill PROPOSAL
Greenwood C TollnerArgentinaIvan Magalhaes RENEWAL
Wickens A FollerArgentinaAnna Fali UNQUALIFIED
Jones Z MacleadGermanyAmy Elsner NEGOTIATION
Leja H VocelkaFranceBernardo Dominic NEGOTIATION
Ricardo M BowleyArgentinaIvan Magalhaes QUALIFIED
Ricardo D MorascaBrazilAsiya Javayant NEW
Izzy W GauchoSpainElwin Sharvill UNQUALIFIED
Kaitlin F NickaItalyAnna Fali NEGOTIATION
Ivar N WhobreyCanadaAsiya Javayant NEW
Ashley W BriddickCanadaOnyama Limba UNQUALIFIED
Jeanfrancois G MaletBrazilAnna Fali PROPOSAL
Mujtaba V CaudyRussiaIvan Magalhaes QUALIFIED
David L DarakjyAustraliaAmy Elsner PROPOSAL
Costa A CaldareraRussiaAsiya Javayant QUALIFIED
Leja F IturbideGermanyAmy Elsner UNQUALIFIED
Arvin X SergiBrazilIoni Bowcher QUALIFIED
Jeanfrancois V FerenczGermanyAnna Fali PROPOSAL
Isabel R MorascaRussiaElwin Sharvill NEGOTIATION
Antonio Y FlosiAustraliaIvan Magalhaes NEW
Alejandro M FigeroaSpainOnyama Limba RENEWAL
Mujtaba X ShinkoArgentinaBernardo Dominic QUALIFIED
Murillo S RulapaughFranceIoni Bowcher QUALIFIED
Darci Y PoquetteRussiaStephen Shaw NEW
Faith E InouyeAustraliaElwin Sharvill NEW
Francesco N CaudyJapanIvan Magalhaes NEW
Aditya I GillianGermanyAnna Fali UNQUALIFIED
Juan W KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Darci R ButtItalyOnyama Limba NEGOTIATION
Arvin A WaycottRussiaIoni Bowcher QUALIFIED
Jefferson M FigeroaArgentinaElwin Sharvill NEW
Morrow M AlbaresFranceElwin Sharvill PROPOSAL
Jones U CaudyGermanyBernardo Dominic UNQUALIFIED
Clifford C PerinJapanIoni Bowcher NEW
Maria A ShinkoJapanOnyama Limba QUALIFIED
Silvio A AmigonGermanyAsiya Javayant NEW
James I MaletIndiaAnna Fali PROPOSAL
Misaki Q FollerRussiaStephen Shaw RENEWAL
Maisha L PaprockiItalyXuxue Feng QUALIFIED
Stacey Q CaldareraFranceElwin Sharvill NEW
Antonio R CampainUnited KingdomIvan Magalhaes PROPOSAL
Misaki Y DarakjyUnited KingdomBernardo Dominic NEW
Misaki C CaldareraAustraliaBernardo Dominic UNQUALIFIED
Ricardo S SlusarskiGermanyStephen Shaw UNQUALIFIED
Arvin P DilliardBrazilOnyama Limba NEW
Leja Y AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Faith X KuskoCanadaBernardo Dominic RENEWAL
Jefferson W DarakjyGermanyAnna Fali RENEWAL
Maria Z GlickCanadaBernardo Dominic QUALIFIED
Stacey U GillianUnited KingdomOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ivar Z FlosiUnited KingdomIoni Bowcher NEW
Wickens D GarufiRussiaElwin Sharvill NEW
Sinclair Y PerinCanadaElwin Sharvill RENEWAL
Aditya A BologniaIndiaOnyama Limba QUALIFIED
Kadeem E BowleyIndiaAnna Fali PROPOSAL
Alejandro F MorascaItalyAsiya Javayant PROPOSAL
Faith E RoysterGermanyIoni Bowcher UNQUALIFIED
Darci W KolmetzAustraliaXuxue Feng NEGOTIATION
Julie Y AmigonFranceOnyama Limba PROPOSAL
Francesco E MaletGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo L BologniaAustralia2024-04-04Commercial Press NEW73Anna Fali
1001Ashley T WaycottAustralia2024-04-17Feltz Printing Service NEGOTIATION6Ivan Magalhaes
1002Maria A ButtCanada2024-04-07King, Christopher A Esq NEW21Ivan Magalhaes
1003Salvatore H BowleyBrazil2024-04-24Chapman, Ross E Esq PROPOSAL94Xuxue Feng
1004Isabel D RulapaughGermany2024-04-17Truhlar And Truhlar Attys NEGOTIATION88Anna Fali
1005James X StensethJapan2024-04-19Printing Dimensions UNQUALIFIED66Ivan Magalhaes
1006Ashley G RulapaughFrance2024-04-21Truhlar And Truhlar Attys UNQUALIFIED49Xuxue Feng
1007Emily J SaylorsArgentina2024-04-12Chanay, Jeffrey A Esq RENEWAL12Asiya Javayant
1008Julie L OstroskyGermany2024-03-31Morlong Associates QUALIFIED59Elwin Sharvill
1009Clifford N RutaIndia2024-04-17Rousseaux, Michael Esq RENEWAL86Amy Elsner
1010Juan L DarakjyCanada2024-04-17Morlong Associates RENEWAL67Elwin Sharvill
1011Jones N SlusarskiIndia2024-04-02Morlong Associates UNQUALIFIED42Amy Elsner
1012Jones T KuskoIndia2024-04-24Commercial Press QUALIFIED24Stephen Shaw
1013Rodrigues F KolmetzSpain2024-03-29King, Christopher A Esq QUALIFIED92Anna Fali
1014Deepesh X KuskoIndia2024-04-23Feltz Printing Service UNQUALIFIED94Stephen Shaw
1015Deepesh T MacleadFrance2024-04-17Benton, John B Jr PROPOSAL76Anna Fali
1016Wickens G TollnerAustralia2024-04-25Buckley Miller Wright UNQUALIFIED47Bernardo Dominic
1017Munro O MaletCanada2024-04-26Morlong Associates NEGOTIATION8Asiya Javayant
1018Mujtaba M StensethFrance2024-03-31Chemel, James L Cpa RENEWAL18Ivan Magalhaes
1019Munro D RoysterCanada2024-04-09Commercial Press PROPOSAL51Anna Fali
1020Silvio U NestleIndia2024-04-24Dorl, James J Esq NEGOTIATION61Ivan Magalhaes
1021Salvatore M GlickUnited Kingdom2024-04-22King, Christopher A Esq QUALIFIED57Anna Fali
1022Johnson I RutaAustralia2024-04-19Dorl, James J Esq NEGOTIATION70Amy Elsner
1023Morrow A SergiSpain2024-04-05Morlong Associates PROPOSAL49Amy Elsner
1024Jones G MaletUnited Kingdom2024-04-02Printing Dimensions UNQUALIFIED92Onyama Limba
1025Aruna Z InouyeCanada2024-04-12Rousseaux, Michael Esq RENEWAL76Ioni Bowcher
1026Leja P ChuiSpain2024-04-12Commercial Press NEW22Ioni Bowcher
1027Deepesh M GarufiGermany2024-04-20Printing Dimensions QUALIFIED36Ioni Bowcher
1028Deepesh Y GillianBrazil2024-04-01King, Christopher A Esq NEW97Anna Fali
1029Stacey K InouyeRussia2024-04-01Benton, John B Jr NEGOTIATION64Stephen Shaw
1030Julie Z MarrierRussia2024-04-15Buckley Miller Wright NEW42Onyama Limba
1031Clifford N StockhamUnited Kingdom2024-04-15Truhlar And Truhlar Attys NEW89Asiya Javayant
1032Octavia S MarrierArgentina2024-04-04Commercial Press NEW61Anna Fali
1033Costa N DilliardFrance2024-04-25Chapman, Ross E Esq NEW10Amy Elsner
1034Deepesh J MaletAustralia2024-04-16Chanay, Jeffrey A Esq PROPOSAL71Onyama Limba
1035Jennifer X MarrierFrance2024-04-22Rangoni Of Florence PROPOSAL83Asiya Javayant
1036Emily T KolmetzAustralia2024-04-10Morlong Associates PROPOSAL43Xuxue Feng
1037Darci S VocelkaBrazil2024-04-13Benton, John B Jr PROPOSAL89Xuxue Feng
1038Emily D SergiGermany2024-04-01King, Christopher A Esq NEGOTIATION38Asiya Javayant
1039Maria R BologniaCanada2024-03-29Chapman, Ross E Esq RENEWAL39Amy Elsner
1040Tony T ShinkoJapan2024-04-18Chemel, James L Cpa PROPOSAL60Stephen Shaw
1041Adams H MaletGermany2024-04-04King, Christopher A Esq NEGOTIATION26Bernardo Dominic
1042Cody E ShinkoAustralia2024-04-10Feltz Printing Service RENEWAL19Onyama Limba
1043Silvio D PoquetteGermany2024-04-09Dorl, James J Esq QUALIFIED86Amy Elsner
1044Claire Z InouyeUnited Kingdom2024-04-14Chanay, Jeffrey A Esq PROPOSAL7Xuxue Feng
1045Jefferson I MaletIndia2024-04-11Chapman, Ross E Esq UNQUALIFIED75Ivan Magalhaes
1046Deepesh C OstroskyArgentina2024-04-23Chapman, Ross E Esq QUALIFIED38Onyama Limba
1047James D NestleCanada2024-04-17Rousseaux, Michael Esq QUALIFIED97Elwin Sharvill
1048Clifford H VocelkaSpain2024-04-20Feltz Printing Service RENEWAL61Ivan Magalhaes
1049Jeanfrancois S ChuiCanada2024-04-16Rangoni Of Florence NEW88Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Darci W MarrierBrazilStephen Shaw UNQUALIFIED
Murillo Q CaldareraUnited KingdomAnna Fali NEW
Morrow Q DoeArgentinaAnna Fali NEGOTIATION
Morrow X CampainBrazilStephen Shaw NEW
Mayumi X SlusarskiFranceAsiya Javayant UNQUALIFIED
Aika G NickaArgentinaAsiya Javayant UNQUALIFIED
Kadeem K RoysterJapanAsiya Javayant RENEWAL
Francesco E RoysterJapanOnyama Limba QUALIFIED
Ivar Z FlosiUnited KingdomXuxue Feng QUALIFIED
Alejandro X BowleyFranceOnyama Limba UNQUALIFIED
Kadeem O OldroydAustraliaAmy Elsner NEGOTIATION
Claire Q FigeroaJapanOnyama Limba QUALIFIED
Leon R NestleGermanyAsiya Javayant QUALIFIED
Mujtaba A CampainUnited KingdomAsiya Javayant PROPOSAL
Julie O RimArgentinaIoni Bowcher NEGOTIATION
Leon N AmigonArgentinaAnna Fali NEGOTIATION
Antonio Q RutaRussiaAsiya Javayant UNQUALIFIED
Sinclair L AlbaresAustraliaElwin Sharvill NEGOTIATION
Stacey W PaprockiBrazilOnyama Limba UNQUALIFIED
Francesco F KolmetzFranceXuxue Feng QUALIFIED
Smith Q PerinJapanIvan Magalhaes QUALIFIED
Chavez R OstroskyUnited KingdomAsiya Javayant RENEWAL
Maisha T GauchoFranceStephen Shaw PROPOSAL
Rodrigues Z SaylorsGermanyAsiya Javayant PROPOSAL
James G RutaFranceAnna Fali RENEWAL
Aditya Z BriddickCanadaAmy Elsner UNQUALIFIED
Aruna S FerenczRussiaAsiya Javayant PROPOSAL
Adams D ChuiCanadaAsiya Javayant QUALIFIED
Jeanfrancois F SaylorsUnited KingdomAmy Elsner QUALIFIED
Morrow M CaldareraSpainAmy Elsner UNQUALIFIED
Ricardo L FerenczBrazilAnna Fali PROPOSAL
Rodrigues C VenereItalyElwin Sharvill RENEWAL
Wickens G WaycottGermanyIoni Bowcher UNQUALIFIED
Munro Z DilliardAustraliaAnna Fali RENEWAL
Kadeem M WieserCanadaAnna Fali RENEWAL
Tony O WaycottIndiaAsiya Javayant NEW
Jones U VocelkaGermanyBernardo Dominic UNQUALIFIED
Costa Z IturbideCanadaXuxue Feng QUALIFIED
Aditya Q GillianAustraliaAmy Elsner UNQUALIFIED
Mayumi J DoeFranceAnna Fali PROPOSAL
Ashley Y DarakjySpainOnyama Limba QUALIFIED
Johnson Y DilliardCanadaXuxue Feng PROPOSAL
Emily R FollerFranceXuxue Feng PROPOSAL
Antonio V GauchoFranceStephen Shaw NEGOTIATION
Tony K NestleRussiaOnyama Limba NEW
Munro W RimGermanyXuxue Feng NEGOTIATION
Leon G SchemmerIndiaIoni Bowcher PROPOSAL
Jennifer W KolmetzGermanyAmy Elsner NEW
Adams R DarakjyBrazilBernardo Dominic NEGOTIATION
Julie J WieserBrazilIoni Bowcher NEGOTIATION
Frozen Columns
Name
Nicolas P Whobrey
Munro Q Whobrey
Jennifer M Caudy
Munro S Doe
Kaitlin B Doe
Ashley J Ostrosky
Aruna R Schemmer
Leon C Foller
David F Ostrosky
Alejandro D Nicka
Deepesh O Tollner
Kadeem I Nestle
Alejandro K Venere
Wickens T Paprocki
Jones U Darakjy
Isabel U Stockham
Aruna G Briddick
Emily V Caldarera
Smith N Gillian
Jones H Kusko
Nicolas G Royster
Kaitlin E Campain
Rodrigues C Royster
James B Rim
Jones Q Glick
Clifford E Briddick
Aika G Doe
Rodrigues L Ferencz
Rodrigues N Figeroa
Maisha S Kusko
Maisha D Caldarera
Maria X Bowley
Salvatore Z Tollner
Salvatore M Kolmetz
Leja V Schemmer
Chavez M Tollner
Francesco E Garufi
Jones L Paprocki
Ashley G Morasca
Greenwood D Schemmer
Aruna A Vocelka
Ricardo W Kusko
Juan R Campain
Octavia O Amigon
Johnson F Royster
Maria Y Paprocki
Greenwood Z Caudy
Jennifer U Whobrey
Leja K Rim
James Z Campain
IdCountryDate
1000Italy2024-04-02
1001Australia2024-03-30
1002Argentina2024-04-17
1003Australia2024-04-12
1004Germany2024-04-09
1005Spain2024-04-11
1006Canada2024-04-25
1007Japan2024-04-13
1008Japan2024-04-16
1009France2024-04-15
1010Russia2024-04-16
1011Australia2024-04-05
1012Canada2024-04-24
1013Brazil2024-04-07
1014India2024-04-10
1015Canada2024-04-18
1016United Kingdom2024-04-13
1017Italy2024-04-01
1018United Kingdom2024-04-05
1019Russia2024-04-02
1020Australia2024-04-23
1021United Kingdom2024-04-02
1022Japan2024-04-24
1023Italy2024-04-12
1024Japan2024-04-24
1025Spain2024-04-16
1026United Kingdom2024-04-04
1027Italy2024-04-21
1028Canada2024-03-30
1029Russia2024-04-16
1030Brazil2024-04-15
1031France2024-04-07
1032Spain2024-03-31
1033Russia2024-04-19
1034India2024-04-25
1035Italy2024-04-05
1036Spain2024-04-16
1037France2024-04-22
1038Italy2024-04-18
1039Italy2024-04-09
1040India2024-04-03
1041Japan2024-04-19
1042Spain2024-04-03
1043Brazil2024-04-21
1044Russia2024-04-24
1045Argentina2024-04-23
1046India2024-04-07
1047Germany2024-04-06
1048Brazil2024-04-08
1049Brazil2024-04-20

On-Demand Data

NameIdCountryDate
Jefferson S Marrier1000Canada2024-04-14
James N Foller1001Russia2024-04-24
Cody G Stenseth1002Canada2024-04-14
Darci B Campain1003Germany2024-04-26
Izzy E Bolognia1004Argentina2024-04-24
Costa N Butt1005Brazil2024-03-29
Munro F Chui1006France2024-03-30
Ivar T Rulapaugh1007Germany2024-04-16
Smith U Gaucho1008Russia2024-04-26
Julie W Nestle1009United Kingdom2024-04-21
Nicolas O Shinko1010Argentina2024-04-12
Morrow C Caldarera1011Canada2024-04-18
Claire W Gillian1012United Kingdom2024-04-07
Darci Z Rulapaugh1013Japan2024-04-03
Leja U Albares1014Spain2024-04-09
Misaki N Darakjy1015Spain2024-04-11
Faith C Inouye1016India2024-04-07
Mujtaba K Garufi1017India2024-04-25
Antonio B Dilliard1018Japan2024-03-30
Leja M Saylors1019Japan2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas Z DoeUnited KingdomStephen Shaw RENEWAL
Jones M MorascaAustraliaBernardo Dominic UNQUALIFIED
Leja V BowleyItalyXuxue Feng UNQUALIFIED
Claire N VocelkaBrazilElwin Sharvill RENEWAL
Silvio I NestleIndiaIoni Bowcher RENEWAL
Emily Y ShinkoArgentinaOnyama Limba UNQUALIFIED
Darci Q SchemmerSpainIvan Magalhaes NEGOTIATION
Aditya M BowleyAustraliaAsiya Javayant RENEWAL
Misaki E OldroydGermanyIoni Bowcher RENEWAL
Cody V RoysterUnited KingdomOnyama Limba RENEWAL
Faith E FlosiJapanElwin Sharvill PROPOSAL
James G WieserSpainIvan Magalhaes RENEWAL
Claire E CaudyIndiaBernardo Dominic UNQUALIFIED
Adams I SchemmerSpainBernardo Dominic NEW
Maisha G TollnerArgentinaAnna Fali NEW
Leja X RulapaughUnited KingdomElwin Sharvill NEW
Juan L SergiJapanElwin Sharvill UNQUALIFIED
Faith R ButtRussiaAnna Fali RENEWAL
Costa Z FigeroaUnited KingdomOnyama Limba PROPOSAL
Leja K NestleArgentinaIvan Magalhaes UNQUALIFIED
Ashley R GlickRussiaXuxue Feng PROPOSAL
Claire N StensethUnited KingdomIvan Magalhaes NEGOTIATION
Clifford Z MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo P CampainCanadaStephen Shaw RENEWAL
Ricardo T DilliardItalyAsiya Javayant NEW
Mayumi A MacleadItalyAnna Fali UNQUALIFIED
Jones A ChuiRussiaAmy Elsner PROPOSAL
Octavia M VenereItalyAnna Fali RENEWAL
Alejandro V ChuiFranceOnyama Limba NEGOTIATION
Stacey J KolmetzSpainIvan Magalhaes UNQUALIFIED
Aika Z SchemmerIndiaElwin Sharvill NEGOTIATION
Sinclair L NickaFranceAsiya Javayant QUALIFIED
Clifford Y ButtIndiaOnyama Limba NEW
Sinclair S MorascaItalyBernardo Dominic PROPOSAL
Aika V OldroydSpainAnna Fali UNQUALIFIED
Jennifer C PoquetteFranceOnyama Limba NEGOTIATION
Kadeem V MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Francesco Z GarufiJapanStephen Shaw QUALIFIED
Aditya L BriddickFranceAmy Elsner PROPOSAL
Stacey A NestleFranceXuxue Feng QUALIFIED

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