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
Deepesh Q SlusarskiRussiaIvan Magalhaes NEW
Aruna Q OstroskyGermanyAnna Fali NEW
Izzy T GlickSpainXuxue Feng PROPOSAL
Isabel Y ButtBrazilStephen Shaw RENEWAL
Juan C MacleadJapanBernardo Dominic QUALIFIED
Greenwood Y StockhamCanadaOnyama Limba NEW
Kadeem D KolmetzJapanIoni Bowcher PROPOSAL
Jeanfrancois I ShinkoJapanIvan Magalhaes RENEWAL
Aika U FerenczBrazilStephen Shaw UNQUALIFIED
Tony V WhobreyAustraliaElwin Sharvill QUALIFIED
Alejandro T PaprockiBrazilAmy Elsner RENEWAL
Wickens B SaylorsUnited KingdomAsiya Javayant RENEWAL
James X OldroydIndiaIvan Magalhaes RENEWAL
Aruna Z CampainFranceOnyama Limba PROPOSAL
Jennifer W InouyeAustraliaOnyama Limba PROPOSAL
Emily G WaycottItalyAmy Elsner PROPOSAL
Clifford M PerinIndiaOnyama Limba NEGOTIATION
James D CaldareraGermanyIoni Bowcher UNQUALIFIED
Ivar G PaprockiJapanAnna Fali UNQUALIFIED
Darci S CampainCanadaXuxue Feng RENEWAL
Murillo O NickaRussiaAnna Fali PROPOSAL
Leja V SergiJapanXuxue Feng PROPOSAL
Greenwood V MaletAustraliaAsiya Javayant QUALIFIED
Munro X DoeGermanyIvan Magalhaes RENEWAL
Johnson P SergiArgentinaAmy Elsner PROPOSAL
Darci R MaletJapanIoni Bowcher QUALIFIED
Maisha W FollerItalyBernardo Dominic NEGOTIATION
Rodrigues R MorascaCanadaIoni Bowcher QUALIFIED
Deepesh A CampainGermanyAnna Fali PROPOSAL
Emily G PoquetteIndiaBernardo Dominic RENEWAL
Julie X ButtIndiaAsiya Javayant NEGOTIATION
Smith U BowleyJapanBernardo Dominic UNQUALIFIED
Greenwood P KuskoUnited KingdomElwin Sharvill NEGOTIATION
Greenwood R StockhamArgentinaElwin Sharvill UNQUALIFIED
Juan L NestleGermanyIoni Bowcher PROPOSAL
Aika O StockhamAustraliaIoni Bowcher QUALIFIED
Ashley Z GarufiIndiaElwin Sharvill QUALIFIED
Tony U SlusarskiGermanyOnyama Limba QUALIFIED
Deepesh Z FerenczFranceBernardo Dominic NEW
Alejandro U SergiItalyOnyama Limba NEW
Rodrigues L CaudyIndiaIoni Bowcher RENEWAL
Mujtaba C GarufiCanadaIvan Magalhaes NEGOTIATION
Cody V OldroydJapanBernardo Dominic PROPOSAL
Chavez E IturbideFranceAmy Elsner UNQUALIFIED
Ashley C FigeroaSpainElwin Sharvill PROPOSAL
Cody A AlbaresArgentinaIoni Bowcher UNQUALIFIED
Costa L SchemmerAustraliaAmy Elsner NEGOTIATION
Stacey X FollerUnited KingdomXuxue Feng PROPOSAL
Kaitlin X MarrierBrazilAsiya Javayant NEW
Ashley F AmigonRussiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro M BologniaCanadaXuxue Feng UNQUALIFIED
Misaki O MorascaAustraliaAmy Elsner NEGOTIATION
Leon W BriddickFranceElwin Sharvill QUALIFIED
Antonio X NickaItalyIoni Bowcher NEW
Rodrigues T AmigonItalyAsiya Javayant RENEWAL
Faith M GlickIndiaBernardo Dominic QUALIFIED
Aruna Y WaycottCanadaAnna Fali UNQUALIFIED
Emily J KuskoCanadaOnyama Limba NEGOTIATION
Maria K CampainGermanyXuxue Feng RENEWAL
Darci R RutaSpainAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi K WaycottFrance2024-04-09Chapman, Ross E Esq NEW9Bernardo Dominic
1001Jennifer F OstroskySpain2024-03-25Feiner Bros UNQUALIFIED62Amy Elsner
1002Nicolas Z RutaAustralia2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED82Ioni Bowcher
1003Costa W OldroydIndia2024-04-11Chanay, Jeffrey A Esq RENEWAL0Xuxue Feng
1004Chavez A PerinSpain2024-04-06Feltz Printing Service NEW83Stephen Shaw
1005Rodrigues W SlusarskiRussia2024-04-15Rangoni Of Florence RENEWAL16Elwin Sharvill
1006Misaki H VocelkaIndia2024-04-06Rousseaux, Michael Esq NEW89Onyama Limba
1007Murillo Z IturbideAustralia2024-04-16Chapman, Ross E Esq RENEWAL24Bernardo Dominic
1008Sinclair D BowleyArgentina2024-03-24King, Christopher A Esq UNQUALIFIED54Amy Elsner
1009Silvio E GarufiRussia2024-04-06Feltz Printing Service RENEWAL77Stephen Shaw
1010Adams G ShinkoIndia2024-03-24Morlong Associates NEGOTIATION23Elwin Sharvill
1011Kaitlin Y MaletJapan2024-04-07Commercial Press NEW15Elwin Sharvill
1012Mujtaba M OldroydIndia2024-04-16Buckley Miller Wright UNQUALIFIED45Anna Fali
1013Costa L PaprockiIndia2024-03-24Morlong Associates NEGOTIATION71Asiya Javayant
1014Cody H KuskoArgentina2024-04-16Chemel, James L Cpa NEW53Bernardo Dominic
1015Julie B GillianUnited Kingdom2024-03-26Feltz Printing Service PROPOSAL91Amy Elsner
1016Stacey J MarrierAustralia2024-04-08Rangoni Of Florence UNQUALIFIED59Amy Elsner
1017Greenwood C StensethFrance2024-03-29Chemel, James L Cpa QUALIFIED84Anna Fali
1018Ricardo Q CaudyBrazil2024-03-25Buckley Miller Wright UNQUALIFIED74Asiya Javayant
1019Greenwood T SergiArgentina2024-04-20Morlong Associates PROPOSAL41Amy Elsner
1020Deepesh Z CaldareraAustralia2024-04-18Commercial Press NEW74Ioni Bowcher
1021Mayumi Z GauchoJapan2024-04-17Chanay, Jeffrey A Esq UNQUALIFIED32Anna Fali
1022Jeanfrancois A NickaItaly2024-03-30Rangoni Of Florence NEGOTIATION41Elwin Sharvill
1023Faith G BriddickItaly2024-04-05Morlong Associates NEGOTIATION63Asiya Javayant
1024Clifford S MorascaAustralia2024-03-25Rangoni Of Florence NEGOTIATION34Asiya Javayant
1025Morrow L StockhamItaly2024-03-26Dorl, James J Esq NEW40Bernardo Dominic
1026Antonio X SlusarskiUnited Kingdom2024-03-27Truhlar And Truhlar Attys NEW51Bernardo Dominic
1027Cody Z SaylorsUnited Kingdom2024-04-07Chemel, James L Cpa RENEWAL20Anna Fali
1028Mujtaba C DilliardRussia2024-04-17Printing Dimensions UNQUALIFIED3Stephen Shaw
1029Jeanfrancois N AlbaresUnited Kingdom2024-03-31King, Christopher A Esq PROPOSAL49Amy Elsner
1030Juan U BowleyBrazil2024-04-13Printing Dimensions UNQUALIFIED36Xuxue Feng
1031Jones P CampainSpain2024-04-10Benton, John B Jr RENEWAL87Xuxue Feng
1032Arvin H ShinkoItaly2024-03-27Buckley Miller Wright RENEWAL57Asiya Javayant
1033Rodrigues O PaprockiIndia2024-03-24Dorl, James J Esq QUALIFIED60Anna Fali
1034Ashley X FigeroaSpain2024-03-24Chapman, Ross E Esq QUALIFIED60Anna Fali
1035Maria O AlbaresBrazil2024-04-11Rousseaux, Michael Esq UNQUALIFIED42Amy Elsner
1036Nicolas O ChuiCanada2024-04-14Dorl, James J Esq UNQUALIFIED93Asiya Javayant
1037Emily R KuskoArgentina2024-04-02Benton, John B Jr PROPOSAL50Stephen Shaw
1038Ivar V ShinkoGermany2024-04-15Feltz Printing Service NEGOTIATION51Stephen Shaw
1039Kadeem T NestleCanada2024-04-04Rousseaux, Michael Esq RENEWAL88Elwin Sharvill
1040Greenwood F NickaUnited Kingdom2024-04-02Chemel, James L Cpa RENEWAL91Elwin Sharvill
1041Alejandro E RimAustralia2024-04-15Commercial Press NEGOTIATION77Asiya Javayant
1042Rodrigues K RulapaughJapan2024-04-04Morlong Associates NEW95Xuxue Feng
1043Izzy M BowleyBrazil2024-04-17Chanay, Jeffrey A Esq NEGOTIATION97Asiya Javayant
1044Smith K MorascaRussia2024-04-20Commercial Press PROPOSAL88Onyama Limba
1045Morrow V GillianSpain2024-04-01Feiner Bros QUALIFIED39Amy Elsner
1046Julie I MacleadFrance2024-03-25Feiner Bros QUALIFIED35Elwin Sharvill
1047Ricardo K IturbideCanada2024-04-10Commercial Press RENEWAL82Stephen Shaw
1048Jefferson D OldroydAustralia2024-03-25King, Christopher A Esq UNQUALIFIED75Xuxue Feng
1049James R SlusarskiArgentina2024-04-02Chanay, Jeffrey A Esq NEGOTIATION57Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony Z OstroskySpainXuxue Feng RENEWAL
Isabel U PoquetteGermanyAsiya Javayant QUALIFIED
Mayumi E SergiIndiaIoni Bowcher PROPOSAL
Aruna C KuskoFranceOnyama Limba RENEWAL
David H CaudyCanadaStephen Shaw RENEWAL
Claire O NestleSpainAsiya Javayant NEW
Jones R FlosiJapanBernardo Dominic NEW
Mayumi O RutaIndiaStephen Shaw NEW
Antonio Y TollnerGermanyXuxue Feng QUALIFIED
Silvio J SaylorsFranceBernardo Dominic UNQUALIFIED
Leja E SlusarskiArgentinaBernardo Dominic NEGOTIATION
Octavia P FollerArgentinaAsiya Javayant PROPOSAL
Johnson W StockhamArgentinaAmy Elsner UNQUALIFIED
Darci S CampainArgentinaBernardo Dominic NEGOTIATION
Mujtaba O WhobreyGermanyOnyama Limba RENEWAL
Faith F CampainSpainStephen Shaw NEW
Faith T SchemmerUnited KingdomXuxue Feng QUALIFIED
Tony C WieserItalyElwin Sharvill PROPOSAL
Emily D KolmetzGermanyBernardo Dominic NEGOTIATION
Morrow V MaletFranceIoni Bowcher QUALIFIED
Aika H ChuiRussiaXuxue Feng UNQUALIFIED
Mayumi J StockhamSpainAmy Elsner NEGOTIATION
Aika S SchemmerAustraliaAnna Fali QUALIFIED
Francesco K ShinkoAustraliaAsiya Javayant RENEWAL
David Y GlickJapanOnyama Limba UNQUALIFIED
Ricardo V WieserItalyIoni Bowcher UNQUALIFIED
Leon Z OstroskyItalyIvan Magalhaes RENEWAL
Faith P StensethItalyIvan Magalhaes NEGOTIATION
Cody P NickaCanadaAsiya Javayant UNQUALIFIED
Misaki V AlbaresGermanyAmy Elsner PROPOSAL
Juan F StensethRussiaIoni Bowcher QUALIFIED
Ashley K DilliardBrazilAsiya Javayant QUALIFIED
Mujtaba F SaylorsItalyAmy Elsner RENEWAL
Izzy R BologniaIndiaElwin Sharvill QUALIFIED
Leon Y RoysterSpainBernardo Dominic NEGOTIATION
Emily Y PaprockiGermanyStephen Shaw NEGOTIATION
Jefferson A MacleadAustraliaAmy Elsner NEW
Sinclair H ChuiGermanyOnyama Limba NEGOTIATION
Mayumi L AmigonIndiaBernardo Dominic PROPOSAL
Maria A FlosiItalyXuxue Feng UNQUALIFIED
Octavia J MaletCanadaOnyama Limba NEW
Arvin F CaldareraCanadaIoni Bowcher UNQUALIFIED
Emily H WieserJapanAmy Elsner UNQUALIFIED
Arvin Z ChuiGermanyAmy Elsner RENEWAL
Murillo K MaletFranceAmy Elsner NEGOTIATION
Maria F GlickItalyXuxue Feng QUALIFIED
Aika I IturbideJapanElwin Sharvill NEGOTIATION
Adams K GlickUnited KingdomBernardo Dominic RENEWAL
Chavez U GarufiGermanyIvan Magalhaes NEW
Cody W CaudyArgentinaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Antonio P Schemmer
Kaitlin I Perin
Ashley D Wieser
Antonio M Iturbide
Chavez O Perin
Jennifer S Inouye
Tony S Perin
Smith B Oldroyd
Nicolas Z Kolmetz
Smith S Bowley
Rodrigues G Saylors
Adams T Rim
Izzy Y Malet
James T Venere
Mayumi K Tollner
Isabel G Marrier
Jeanfrancois S Ruta
Antonio A Poquette
Jennifer Q Garufi
Antonio Z Caudy
Antonio M Stockham
Mayumi G Flosi
Ivar Q Stockham
Juan N Figeroa
Cody T Nestle
Wickens P Sergi
Misaki A Malet
Kadeem N Stenseth
Mujtaba M Venere
Ashley Y Glick
Jeanfrancois R Chui
Arvin O Nicka
Ashley L Royster
James O Inouye
Tony Y Rim
Alejandro T Campain
Arvin T Iturbide
Kaitlin G Bolognia
Aditya V Nicka
Kaitlin X Oldroyd
Leja S Kusko
Claire N Wieser
Maria I Marrier
Juan I Amigon
Maisha T Marrier
David Z Maclead
Nicolas E Briddick
Cody H Kusko
Ivar Z Wieser
Wickens E Marrier
IdCountryDate
1000Japan2024-04-11
1001Russia2024-04-13
1002Spain2024-04-20
1003France2024-04-21
1004Argentina2024-04-19
1005India2024-03-24
1006India2024-04-20
1007Brazil2024-03-29
1008Germany2024-04-12
1009France2024-04-19
1010Canada2024-04-01
1011Russia2024-03-24
1012Australia2024-04-07
1013Japan2024-04-15
1014Spain2024-04-06
1015France2024-04-22
1016Australia2024-03-28
1017Russia2024-04-13
1018India2024-03-28
1019France2024-04-14
1020Brazil2024-04-18
1021Japan2024-04-02
1022Canada2024-04-07
1023Germany2024-04-06
1024Russia2024-04-17
1025Canada2024-03-25
1026Spain2024-04-01
1027Germany2024-04-04
1028India2024-04-04
1029Canada2024-04-07
1030Brazil2024-04-10
1031Japan2024-04-21
1032Russia2024-03-28
1033Canada2024-03-24
1034France2024-04-06
1035Brazil2024-03-28
1036Italy2024-04-10
1037India2024-04-12
1038United Kingdom2024-04-16
1039Italy2024-04-02
1040Brazil2024-04-02
1041Japan2024-04-12
1042Argentina2024-04-16
1043France2024-04-14
1044Germany2024-04-14
1045Brazil2024-03-28
1046Spain2024-04-10
1047Italy2024-04-10
1048Canada2024-03-26
1049United Kingdom2024-03-24

On-Demand Data

NameIdCountryDate
Izzy N Slusarski1000Argentina2024-04-05
Emily H Foller1001Italy2024-04-20
Costa I Glick1002Spain2024-03-28
Tony J Iturbide1003Canada2024-04-11
Arvin S Whobrey1004France2024-03-25
James R Doe1005France2024-04-07
Leja Y Oldroyd1006France2024-04-05
Leja N Oldroyd1007Canada2024-04-01
Julie K Caudy1008Russia2024-04-04
Jennifer A Darakjy1009Italy2024-04-13
Nicolas X Kusko1010Argentina2024-04-03
Adams Y Ostrosky1011Italy2024-04-19
Antonio A Foller1012Germany2024-04-09
Deepesh K Kusko1013United Kingdom2024-04-16
Clifford Y Ostrosky1014Germany2024-04-19
Claire G Chui1015Spain2024-04-09
Faith V Campain1016France2024-03-24
Faith Y Oldroyd1017Canada2024-03-27
Maisha D Albares1018Japan2024-04-02
Nicolas M Malet1019United Kingdom2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones F KuskoAustraliaStephen Shaw QUALIFIED
Leja Y FigeroaSpainStephen Shaw NEGOTIATION
Jefferson R RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Johnson G GlickUnited KingdomAsiya Javayant RENEWAL
Smith I NestleRussiaAnna Fali QUALIFIED
Nicolas A CaudyJapanBernardo Dominic RENEWAL
Cody U WieserSpainIvan Magalhaes QUALIFIED
Adams U CaudyCanadaXuxue Feng UNQUALIFIED
Munro C RimSpainIoni Bowcher RENEWAL
Ivar A RoysterRussiaAmy Elsner UNQUALIFIED
Cody Q ChuiBrazilElwin Sharvill NEGOTIATION
Claire Q NestleIndiaAnna Fali PROPOSAL
Ashley P OstroskyJapanAnna Fali UNQUALIFIED
Silvio M AmigonCanadaBernardo Dominic RENEWAL
Octavia V BriddickIndiaBernardo Dominic NEGOTIATION
Aditya R PerinFranceBernardo Dominic PROPOSAL
Maria Y AlbaresGermanyIoni Bowcher RENEWAL
Leon V SergiBrazilOnyama Limba PROPOSAL
Faith P NickaArgentinaElwin Sharvill PROPOSAL
Aika W OstroskyItalyIoni Bowcher RENEWAL
Leon I FlosiArgentinaOnyama Limba PROPOSAL
David A WhobreyArgentinaBernardo Dominic RENEWAL
Darci K DilliardSpainAmy Elsner PROPOSAL
Ashley F TollnerUnited KingdomXuxue Feng QUALIFIED
Julie I BowleyUnited KingdomAsiya Javayant NEGOTIATION
Jefferson G AmigonSpainAmy Elsner PROPOSAL
Aditya C DilliardGermanyIoni Bowcher RENEWAL
Sinclair T BriddickFranceOnyama Limba QUALIFIED
Nicolas F KuskoAustraliaStephen Shaw PROPOSAL
Deepesh N PerinAustraliaAsiya Javayant RENEWAL
Leon Q VocelkaJapanOnyama Limba QUALIFIED
Kaitlin B StockhamGermanyAmy Elsner UNQUALIFIED
Maisha P FigeroaBrazilStephen Shaw RENEWAL
Isabel E FerenczItalyAsiya Javayant NEW
Octavia O GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood P CaudyUnited KingdomAmy Elsner UNQUALIFIED
Emily G GarufiArgentinaOnyama Limba RENEWAL
Leon H WieserGermanyAnna Fali UNQUALIFIED
Ashley J WhobreyRussiaOnyama Limba UNQUALIFIED
Ivar L GarufiIndiaAsiya Javayant 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>