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
Aruna L OstroskyItalyOnyama Limba QUALIFIED
Jennifer P DilliardIndiaBernardo Dominic NEW
Sinclair T IturbideRussiaIoni Bowcher QUALIFIED
Kaitlin L PoquetteGermanyBernardo Dominic NEGOTIATION
Clifford Z FerenczIndiaAnna Fali PROPOSAL
Costa V GlickJapanBernardo Dominic UNQUALIFIED
Kaitlin B CampainSpainXuxue Feng UNQUALIFIED
Mujtaba L InouyeBrazilOnyama Limba QUALIFIED
Claire O FlosiArgentinaIvan Magalhaes QUALIFIED
Aditya R GillianItalyAsiya Javayant QUALIFIED
Munro O MarrierSpainXuxue Feng NEW
Deepesh H MacleadJapanStephen Shaw RENEWAL
Arvin V FlosiBrazilAmy Elsner NEW
Wickens E ShinkoIndiaXuxue Feng UNQUALIFIED
Cody Z DarakjyGermanyAmy Elsner NEGOTIATION
Adams G FlosiUnited KingdomAsiya Javayant NEW
Maria X BriddickItalyXuxue Feng RENEWAL
Murillo G NickaArgentinaOnyama Limba NEW
Ivar R GillianIndiaXuxue Feng UNQUALIFIED
Emily T ChuiFranceAmy Elsner RENEWAL
Leon E OstroskyJapanStephen Shaw RENEWAL
Isabel T SaylorsBrazilStephen Shaw RENEWAL
James A ButtJapanIvan Magalhaes PROPOSAL
Jones K NickaArgentinaAmy Elsner RENEWAL
Costa V ButtRussiaOnyama Limba PROPOSAL
Sinclair K VenereBrazilIoni Bowcher NEW
Emily M FerenczAustraliaOnyama Limba PROPOSAL
Jennifer N MaletCanadaAsiya Javayant NEGOTIATION
Jones T FlosiBrazilAsiya Javayant PROPOSAL
Clifford V AlbaresUnited KingdomOnyama Limba PROPOSAL
Deepesh N GlickFranceStephen Shaw QUALIFIED
Ivar J StensethBrazilStephen Shaw QUALIFIED
Kadeem B MorascaArgentinaIoni Bowcher NEW
Maisha I SaylorsRussiaStephen Shaw UNQUALIFIED
Isabel J MarrierIndiaStephen Shaw NEGOTIATION
Morrow T ShinkoArgentinaBernardo Dominic PROPOSAL
Leja A BologniaCanadaAsiya Javayant UNQUALIFIED
Izzy L MacleadJapanIoni Bowcher PROPOSAL
Munro B DoeUnited KingdomOnyama Limba PROPOSAL
Leon T WieserIndiaAsiya Javayant NEW
Jefferson B NestleFranceAsiya Javayant NEW
Misaki K FlosiCanadaAnna Fali QUALIFIED
Izzy X PerinUnited KingdomBernardo Dominic RENEWAL
Aruna F SlusarskiItalyAmy Elsner PROPOSAL
Leon Y BologniaJapanAnna Fali PROPOSAL
Silvio I TollnerArgentinaStephen Shaw NEW
Julie B VocelkaAustraliaIoni Bowcher NEW
Maisha U FigeroaIndiaElwin Sharvill RENEWAL
Greenwood M FigeroaItalyIoni Bowcher NEW
Johnson E SchemmerCanadaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams Q VocelkaFranceElwin Sharvill PROPOSAL
Claire W MaletItalyIoni Bowcher QUALIFIED
Jeanfrancois D AmigonSpainAsiya Javayant QUALIFIED
Jones M GillianIndiaIoni Bowcher UNQUALIFIED
Aruna P NestleBrazilAsiya Javayant RENEWAL
Morrow Y WaycottGermanyXuxue Feng PROPOSAL
Chavez X CaldareraRussiaOnyama Limba QUALIFIED
Greenwood O StockhamRussiaOnyama Limba NEW
Alejandro E MorascaAustraliaAsiya Javayant UNQUALIFIED
Smith K IturbideGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens R GlickJapan2024-04-24Morlong Associates UNQUALIFIED75Elwin Sharvill
1001Ricardo I RoysterSpain2024-04-22Chemel, James L Cpa NEW48Asiya Javayant
1002Ashley S FerenczCanada2024-04-18Chapman, Ross E Esq UNQUALIFIED22Onyama Limba
1003David B MorascaSpain2024-04-21Chanay, Jeffrey A Esq NEW20Amy Elsner
1004Jefferson F RutaItaly2024-04-18Commercial Press NEW43Bernardo Dominic
1005Tony T NestleAustralia2024-04-13Rousseaux, Michael Esq PROPOSAL51Asiya Javayant
1006Smith I BowleyUnited Kingdom2024-04-10Commercial Press RENEWAL5Elwin Sharvill
1007Jones D MarrierIndia2024-04-08Dorl, James J Esq QUALIFIED77Xuxue Feng
1008Octavia W WaycottRussia2024-04-11Printing Dimensions NEW33Bernardo Dominic
1009Julie U CaudyItaly2024-04-06Chapman, Ross E Esq PROPOSAL3Bernardo Dominic
1010Izzy G CaldareraSpain2024-04-01Benton, John B Jr RENEWAL49Ioni Bowcher
1011Stacey U MorascaJapan2024-04-15Buckley Miller Wright NEGOTIATION56Ioni Bowcher
1012David E VenereRussia2024-04-02King, Christopher A Esq NEW18Anna Fali
1013Mayumi G WhobreyAustralia2024-04-24Commercial Press RENEWAL30Onyama Limba
1014Clifford K ShinkoArgentina2024-04-13Commercial Press PROPOSAL49Stephen Shaw
1015Octavia F GillianBrazil2024-04-06Printing Dimensions NEW9Amy Elsner
1016Octavia D GauchoFrance2024-04-01Printing Dimensions NEGOTIATION70Ioni Bowcher
1017Johnson A GlickArgentina2024-04-06Rousseaux, Michael Esq NEW30Stephen Shaw
1018Nicolas N SlusarskiRussia2024-04-03Rousseaux, Michael Esq UNQUALIFIED54Anna Fali
1019Octavia I PoquetteArgentina2024-04-10Chanay, Jeffrey A Esq RENEWAL23Onyama Limba
1020Maisha J NestleFrance2024-04-23Rousseaux, Michael Esq QUALIFIED39Stephen Shaw
1021Aika S AmigonFrance2024-03-26Printing Dimensions QUALIFIED43Ioni Bowcher
1022Nicolas U PaprockiUnited Kingdom2024-04-03Printing Dimensions RENEWAL74Ioni Bowcher
1023Nicolas K FerenczSpain2024-04-17Truhlar And Truhlar Attys RENEWAL55Amy Elsner
1024Murillo V TollnerIndia2024-04-21Rousseaux, Michael Esq NEGOTIATION48Ioni Bowcher
1025Emily E NickaCanada2024-03-29King, Christopher A Esq QUALIFIED71Anna Fali
1026Sinclair L NestleUnited Kingdom2024-04-05Chanay, Jeffrey A Esq QUALIFIED61Amy Elsner
1027Salvatore H NickaFrance2024-04-01Buckley Miller Wright RENEWAL63Elwin Sharvill
1028Costa P VenereFrance2024-04-20Chemel, James L Cpa NEGOTIATION62Ioni Bowcher
1029Jefferson A PoquetteArgentina2024-04-16Truhlar And Truhlar Attys QUALIFIED48Ivan Magalhaes
1030Jennifer M AmigonArgentina2024-04-09Feiner Bros RENEWAL44Ioni Bowcher
1031Silvio O TollnerRussia2024-04-18Rangoni Of Florence UNQUALIFIED61Xuxue Feng
1032Francesco J PaprockiIndia2024-03-31Rousseaux, Michael Esq UNQUALIFIED83Bernardo Dominic
1033Mayumi O KolmetzSpain2024-04-14Printing Dimensions PROPOSAL71Ivan Magalhaes
1034Adams H CampainUnited Kingdom2024-04-05Printing Dimensions UNQUALIFIED29Stephen Shaw
1035Chavez T GarufiRussia2024-04-19Rangoni Of Florence NEW4Xuxue Feng
1036Emily B RoysterFrance2024-04-24Feiner Bros RENEWAL38Stephen Shaw
1037Mujtaba W PoquetteSpain2024-03-29Rangoni Of Florence PROPOSAL94Stephen Shaw
1038Juan T FerenczFrance2024-04-19Buckley Miller Wright NEGOTIATION17Xuxue Feng
1039Stacey G PoquetteCanada2024-03-26Printing Dimensions NEW76Onyama Limba
1040Rodrigues Z KuskoSpain2024-04-21Dorl, James J Esq NEGOTIATION54Ivan Magalhaes
1041Faith M WhobreySpain2024-04-18Rousseaux, Michael Esq NEGOTIATION76Ivan Magalhaes
1042Smith B ButtBrazil2024-04-17King, Christopher A Esq QUALIFIED94Asiya Javayant
1043Mujtaba Y OstroskyFrance2024-04-23Benton, John B Jr PROPOSAL11Asiya Javayant
1044Mayumi Q SchemmerSpain2024-04-17Benton, John B Jr QUALIFIED96Bernardo Dominic
1045Murillo I OldroydSpain2024-04-23Commercial Press NEW15Ivan Magalhaes
1046Salvatore I FollerIndia2024-04-20Benton, John B Jr NEGOTIATION84Stephen Shaw
1047Silvio Q NickaCanada2024-04-06Printing Dimensions UNQUALIFIED17Elwin Sharvill
1048Greenwood X ChuiJapan2024-04-24Chanay, Jeffrey A Esq PROPOSAL49Ivan Magalhaes
1049Francesco P OldroydSpain2024-04-11Feiner Bros NEGOTIATION80Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin A PerinArgentinaXuxue Feng RENEWAL
Johnson N TollnerAustraliaStephen Shaw NEW
Johnson X SlusarskiCanadaBernardo Dominic NEW
Misaki P IturbideAustraliaOnyama Limba NEW
Kadeem G KolmetzArgentinaIvan Magalhaes RENEWAL
Leja H FlosiJapanAmy Elsner NEGOTIATION
Kaitlin P MarrierFranceXuxue Feng NEGOTIATION
Aruna G GlickJapanBernardo Dominic NEW
Maria L GauchoCanadaBernardo Dominic QUALIFIED
David O GarufiAustraliaIoni Bowcher NEW
Mayumi D OstroskyFranceBernardo Dominic UNQUALIFIED
Rodrigues H CaudyItalyAsiya Javayant RENEWAL
Darci W FollerItalyXuxue Feng PROPOSAL
Tony Q MacleadFranceOnyama Limba NEW
Nicolas D PaprockiFranceAnna Fali PROPOSAL
Antonio K FollerIndiaAsiya Javayant RENEWAL
Aditya G BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Julie N NickaSpainElwin Sharvill NEGOTIATION
Aruna L VocelkaGermanyAsiya Javayant UNQUALIFIED
Aika I FlosiBrazilIvan Magalhaes QUALIFIED
Juan L StensethBrazilOnyama Limba NEGOTIATION
Claire S DarakjyCanadaAmy Elsner QUALIFIED
Murillo D ChuiCanadaAmy Elsner UNQUALIFIED
Ashley I PaprockiArgentinaBernardo Dominic PROPOSAL
Francesco H RutaJapanIvan Magalhaes PROPOSAL
Silvio P SergiItalyStephen Shaw NEW
Morrow H ButtBrazilIoni Bowcher QUALIFIED
Smith M FigeroaCanadaIoni Bowcher RENEWAL
Ivar N MacleadGermanyAsiya Javayant UNQUALIFIED
Faith J CaldareraAustraliaBernardo Dominic PROPOSAL
Jeanfrancois Y PerinCanadaOnyama Limba PROPOSAL
Jones V NickaUnited KingdomOnyama Limba NEGOTIATION
Aditya M GlickIndiaIvan Magalhaes QUALIFIED
Leja I WaycottBrazilAmy Elsner QUALIFIED
Julie C GillianItalyAnna Fali QUALIFIED
Silvio V StockhamUnited KingdomElwin Sharvill QUALIFIED
Francesco Q StockhamFranceAsiya Javayant RENEWAL
Julie D NickaBrazilStephen Shaw UNQUALIFIED
Wickens O IturbideFranceStephen Shaw QUALIFIED
Aruna U SergiSpainAmy Elsner QUALIFIED
Leja R WieserArgentinaIoni Bowcher QUALIFIED
Jennifer K MorascaAustraliaIvan Magalhaes NEW
Tony Z WieserCanadaBernardo Dominic RENEWAL
Silvio T AmigonCanadaXuxue Feng NEGOTIATION
Isabel C FollerIndiaAnna Fali RENEWAL
Jeanfrancois T FollerRussiaStephen Shaw NEW
Ricardo C MaletCanadaIoni Bowcher NEGOTIATION
Stacey P GauchoCanadaIoni Bowcher PROPOSAL
Sinclair D DarakjyUnited KingdomBernardo Dominic RENEWAL
Mujtaba F DilliardUnited KingdomAsiya Javayant PROPOSAL
Frozen Columns
Name
Misaki E Caldarera
Wickens S Chui
Faith U Poquette
Murillo Y Bolognia
Johnson S Gaucho
Greenwood G Stockham
Adams M Wieser
Johnson M Albares
Costa H Shinko
Emily E Amigon
Jennifer S Tollner
Maria Z Slusarski
Silvio X Paprocki
Octavia U Flosi
Emily X Morasca
Leon K Saylors
Murillo U Inouye
Alejandro G Glick
Darci P Ferencz
Aditya H Morasca
Ashley G Sergi
Jefferson E Schemmer
Jeanfrancois E Flosi
Maria C Amigon
Jeanfrancois C Albares
Faith U Albares
Ricardo V Stenseth
Tony C Butt
Kaitlin K Shinko
Aika Y Garufi
Arvin F Oldroyd
Aika L Gaucho
Arvin H Stenseth
Murillo L Poquette
Mayumi Y Oldroyd
Murillo X Iturbide
Aditya E Malet
Darci X Chui
Octavia A Venere
Kaitlin U Bowley
Alejandro Y Gaucho
Mayumi S Rulapaugh
Chavez A Inouye
Izzy U Schemmer
Adams X Garufi
Jennifer C Morasca
Sinclair S Royster
Maisha H Schemmer
Juan R Sergi
Clifford N Darakjy
IdCountryDate
1000Germany2024-04-12
1001India2024-04-23
1002Russia2024-04-22
1003Spain2024-03-30
1004Brazil2024-04-18
1005Germany2024-04-08
1006Japan2024-04-07
1007Russia2024-04-12
1008Canada2024-03-29
1009United Kingdom2024-04-10
1010France2024-04-04
1011Russia2024-04-18
1012Japan2024-04-06
1013Australia2024-03-28
1014Italy2024-04-02
1015Japan2024-04-08
1016Australia2024-04-22
1017Brazil2024-04-03
1018Japan2024-04-11
1019Italy2024-04-12
1020Australia2024-04-23
1021Japan2024-04-17
1022Italy2024-03-29
1023Germany2024-03-26
1024Italy2024-04-02
1025India2024-04-21
1026Japan2024-04-15
1027Brazil2024-04-24
1028Brazil2024-04-09
1029Japan2024-04-14
1030Australia2024-04-10
1031Italy2024-04-07
1032Argentina2024-04-01
1033Canada2024-04-24
1034Australia2024-04-23
1035France2024-04-23
1036Australia2024-04-09
1037Japan2024-04-13
1038India2024-03-30
1039France2024-04-04
1040Italy2024-04-22
1041Spain2024-03-27
1042Russia2024-03-31
1043Argentina2024-04-16
1044Japan2024-04-23
1045Canada2024-03-27
1046India2024-04-17
1047Italy2024-04-13
1048Argentina2024-04-14
1049France2024-04-05

On-Demand Data

NameIdCountryDate
Cody N Perin1000United Kingdom2024-03-30
Wickens H Nestle1001Russia2024-04-02
Misaki G Garufi1002Spain2024-04-12
Morrow Z Glick1003Spain2024-04-12
Julie G Wieser1004Spain2024-04-09
Wickens B Gillian1005Australia2024-04-15
Cody Z Bowley1006United Kingdom2024-04-13
Ricardo U Malet1007Brazil2024-04-14
Aditya K Whobrey1008India2024-04-05
Stacey W Dilliard1009Russia2024-04-22
Claire N Glick1010Germany2024-04-04
Claire L Whobrey1011Canada2024-04-22
Salvatore S Shinko1012Canada2024-04-11
Claire T Gaucho1013Spain2024-04-07
Greenwood W Sergi1014Japan2024-03-29
Mujtaba Y Kolmetz1015Italy2024-04-03
Ashley Y Sergi1016Russia2024-03-31
Adams Y Morasca1017Australia2024-03-31
Morrow N Rulapaugh1018United Kingdom2024-04-15
Darci I Marrier1019Russia2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues Z CaudyBrazilStephen Shaw QUALIFIED
Nicolas Z RulapaughItalyIoni Bowcher RENEWAL
James O WieserIndiaAsiya Javayant NEGOTIATION
Ricardo F GarufiJapanXuxue Feng UNQUALIFIED
Deepesh M FerenczIndiaBernardo Dominic PROPOSAL
Greenwood U CaldareraIndiaStephen Shaw UNQUALIFIED
Maria X CampainArgentinaOnyama Limba QUALIFIED
Isabel X MorascaGermanyIvan Magalhaes UNQUALIFIED
David D ChuiArgentinaAnna Fali NEGOTIATION
Costa A StockhamJapanAnna Fali NEW
Silvio M CampainCanadaAnna Fali RENEWAL
Ivar B SergiGermanyStephen Shaw PROPOSAL
Juan V KolmetzUnited KingdomAmy Elsner PROPOSAL
Kadeem H PoquetteBrazilStephen Shaw RENEWAL
Faith J PerinAustraliaIoni Bowcher QUALIFIED
Arvin W ChuiJapanAsiya Javayant RENEWAL
Aditya I SchemmerJapanIvan Magalhaes NEGOTIATION
Leon W RulapaughJapanStephen Shaw NEW
Faith H RulapaughArgentinaOnyama Limba UNQUALIFIED
Morrow N ShinkoAustraliaAsiya Javayant PROPOSAL
Jennifer D VocelkaSpainAmy Elsner QUALIFIED
David V GauchoGermanyOnyama Limba PROPOSAL
Nicolas U RutaFranceElwin Sharvill NEW
Faith D MaletFranceIoni Bowcher UNQUALIFIED
Clifford T DilliardItalyAsiya Javayant RENEWAL
Morrow U SergiJapanAsiya Javayant NEGOTIATION
Murillo D InouyeGermanyBernardo Dominic NEW
Jones D KuskoGermanyElwin Sharvill NEW
Morrow D VenereSpainOnyama Limba UNQUALIFIED
Cody G GarufiBrazilAmy Elsner RENEWAL
Kaitlin Q NestleFranceAnna Fali NEW
Ashley N SlusarskiFranceIoni Bowcher PROPOSAL
Murillo C OldroydIndiaAsiya Javayant UNQUALIFIED
Tony H MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues N MaletArgentinaAmy Elsner PROPOSAL
James K GillianIndiaOnyama Limba NEGOTIATION
Maisha M FollerSpainXuxue Feng PROPOSAL
Octavia B MaletGermanyXuxue Feng QUALIFIED
Claire I BriddickFranceIoni Bowcher RENEWAL
Stacey J PoquetteArgentinaElwin Sharvill 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>