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
Kadeem F StensethIndiaIvan Magalhaes NEW
Misaki Q ChuiItalyElwin Sharvill PROPOSAL
Kadeem E FerenczAustraliaBernardo Dominic NEW
Alejandro X RulapaughRussiaIvan Magalhaes QUALIFIED
Misaki Q VocelkaBrazilIoni Bowcher NEW
Smith P WhobreyJapanIvan Magalhaes UNQUALIFIED
Antonio I InouyeArgentinaAnna Fali RENEWAL
Deepesh M WaycottBrazilIvan Magalhaes UNQUALIFIED
Juan R SaylorsIndiaIvan Magalhaes QUALIFIED
Isabel M StockhamBrazilStephen Shaw QUALIFIED
Misaki D WaycottFranceAmy Elsner QUALIFIED
Rodrigues B GauchoFranceAsiya Javayant NEGOTIATION
Ricardo X RulapaughIndiaOnyama Limba RENEWAL
Sinclair M OldroydIndiaAnna Fali NEW
Mujtaba F DarakjyCanadaElwin Sharvill NEW
Antonio R OldroydItalyOnyama Limba QUALIFIED
Francesco E GillianSpainBernardo Dominic NEGOTIATION
Mayumi K ChuiArgentinaBernardo Dominic NEGOTIATION
Adams N MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro W MarrierCanadaIvan Magalhaes RENEWAL
Mayumi H GauchoItalyAsiya Javayant UNQUALIFIED
Claire Y OldroydGermanyAnna Fali QUALIFIED
Kadeem G FollerFranceStephen Shaw NEW
Faith Z BriddickJapanBernardo Dominic NEW
Ricardo B VocelkaSpainElwin Sharvill UNQUALIFIED
Mayumi L OstroskyGermanyAsiya Javayant NEGOTIATION
Jones U MacleadFranceAnna Fali NEGOTIATION
Sinclair M CaldareraRussiaIoni Bowcher PROPOSAL
Deepesh O VenereGermanyXuxue Feng RENEWAL
Kaitlin N InouyeJapanIvan Magalhaes UNQUALIFIED
Faith Q MaletArgentinaElwin Sharvill UNQUALIFIED
James U IturbideCanadaAnna Fali RENEWAL
Alejandro K FollerArgentinaIoni Bowcher RENEWAL
Julie U FlosiJapanIoni Bowcher PROPOSAL
Deepesh B TollnerAustraliaBernardo Dominic PROPOSAL
Jefferson R GarufiGermanyIoni Bowcher UNQUALIFIED
Juan F DarakjyAustraliaBernardo Dominic NEW
Ricardo U StockhamAustraliaAmy Elsner RENEWAL
Leja M MarrierRussiaOnyama Limba PROPOSAL
Nicolas J RulapaughSpainAsiya Javayant NEGOTIATION
Johnson U ButtJapanIvan Magalhaes PROPOSAL
Johnson H OstroskySpainAnna Fali RENEWAL
Arvin P DarakjyGermanyAmy Elsner NEGOTIATION
Darci T WaycottFranceOnyama Limba NEGOTIATION
Ivar R NickaBrazilIoni Bowcher PROPOSAL
Rodrigues F GlickFranceIvan Magalhaes NEW
Darci T OstroskyArgentinaStephen Shaw UNQUALIFIED
Chavez W FollerFranceAmy Elsner NEW
Rodrigues J VenereUnited KingdomAsiya Javayant NEGOTIATION
Arvin N SchemmerArgentinaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
David G WieserBrazilBernardo Dominic UNQUALIFIED
Mujtaba N ShinkoRussiaAnna Fali NEW
Antonio Q ButtCanadaAnna Fali QUALIFIED
Emily V KolmetzArgentinaAsiya Javayant NEGOTIATION
Ricardo I GauchoItalyAsiya Javayant NEGOTIATION
Mayumi N BologniaIndiaIoni Bowcher NEW
Leon E IturbideBrazilIvan Magalhaes NEW
Aruna T GlickRussiaStephen Shaw PROPOSAL
Aditya I InouyeCanadaElwin Sharvill NEGOTIATION
Silvio J RoysterCanadaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire Z AlbaresItaly2024-04-08Commercial Press NEGOTIATION20Bernardo Dominic
1001Mujtaba V SaylorsItaly2024-04-10Morlong Associates PROPOSAL74Elwin Sharvill
1002Ivar O AmigonCanada2024-03-30King, Christopher A Esq NEGOTIATION74Ivan Magalhaes
1003James T GillianJapan2024-03-29Printing Dimensions UNQUALIFIED39Xuxue Feng
1004Alejandro P AlbaresBrazil2024-04-21Commercial Press RENEWAL24Xuxue Feng
1005Jefferson G OstroskyJapan2024-04-16Feltz Printing Service PROPOSAL7Onyama Limba
1006Francesco S NickaArgentina2024-04-24Printing Dimensions NEW84Stephen Shaw
1007Ivar Q WieserGermany2024-04-02Buckley Miller Wright NEGOTIATION0Stephen Shaw
1008Maria W PerinFrance2024-03-30Chanay, Jeffrey A Esq NEGOTIATION70Amy Elsner
1009Antonio B MaletGermany2024-04-08Truhlar And Truhlar Attys NEGOTIATION37Ivan Magalhaes
1010Arvin R NickaCanada2024-04-14Chemel, James L Cpa QUALIFIED95Anna Fali
1011Sinclair L SaylorsIndia2024-03-31Dorl, James J Esq QUALIFIED55Elwin Sharvill
1012Aditya P SergiCanada2024-04-25Benton, John B Jr QUALIFIED28Bernardo Dominic
1013Misaki A SergiRussia2024-04-13Rousseaux, Michael Esq NEGOTIATION77Amy Elsner
1014Izzy N PaprockiCanada2024-04-03Buckley Miller Wright NEGOTIATION41Onyama Limba
1015Claire R GlickSpain2024-04-06Chapman, Ross E Esq NEGOTIATION31Asiya Javayant
1016Adams L ChuiArgentina2024-04-01Feiner Bros NEW44Ivan Magalhaes
1017Leon G BowleyBrazil2024-04-03Truhlar And Truhlar Attys PROPOSAL49Elwin Sharvill
1018Wickens H RimFrance2024-04-25Commercial Press NEW13Elwin Sharvill
1019Kaitlin D GillianFrance2024-04-17Morlong Associates NEW78Elwin Sharvill
1020Deepesh K FlosiBrazil2024-04-21Truhlar And Truhlar Attys UNQUALIFIED10Xuxue Feng
1021Ricardo J RulapaughArgentina2024-04-24Chemel, James L Cpa QUALIFIED23Asiya Javayant
1022Sinclair K TollnerRussia2024-04-24Benton, John B Jr NEW63Amy Elsner
1023Leon S DilliardCanada2024-04-06Truhlar And Truhlar Attys PROPOSAL99Stephen Shaw
1024Costa W ButtGermany2024-04-01Printing Dimensions RENEWAL94Ivan Magalhaes
1025Leon M KolmetzJapan2024-04-07Morlong Associates PROPOSAL85Asiya Javayant
1026Julie G SaylorsArgentina2024-04-20Feiner Bros RENEWAL41Elwin Sharvill
1027Salvatore T SlusarskiRussia2024-04-23Benton, John B Jr RENEWAL89Elwin Sharvill
1028Isabel X AmigonGermany2024-04-22Chanay, Jeffrey A Esq RENEWAL89Stephen Shaw
1029Antonio J FollerFrance2024-04-23Truhlar And Truhlar Attys NEGOTIATION84Asiya Javayant
1030Ashley N PerinUnited Kingdom2024-04-19Morlong Associates QUALIFIED56Ivan Magalhaes
1031Mayumi U InouyeSpain2024-04-06King, Christopher A Esq NEGOTIATION81Amy Elsner
1032Faith Q MaletJapan2024-03-29Dorl, James J Esq RENEWAL73Bernardo Dominic
1033Tony G RoysterIndia2024-04-18Chanay, Jeffrey A Esq RENEWAL59Ivan Magalhaes
1034Alejandro X FerenczCanada2024-04-17Feiner Bros UNQUALIFIED84Asiya Javayant
1035Deepesh J PerinUnited Kingdom2024-04-06King, Christopher A Esq UNQUALIFIED96Onyama Limba
1036Adams Y FlosiBrazil2024-04-12Dorl, James J Esq QUALIFIED30Bernardo Dominic
1037Murillo I OldroydSpain2024-04-06Feiner Bros NEGOTIATION58Elwin Sharvill
1038Arvin P StensethGermany2024-04-10Feiner Bros PROPOSAL71Elwin Sharvill
1039Octavia U GauchoFrance2024-04-04Buckley Miller Wright UNQUALIFIED79Amy Elsner
1040Nicolas M GauchoSpain2024-04-14Chapman, Ross E Esq QUALIFIED7Ioni Bowcher
1041Rodrigues J DarakjyRussia2024-04-05Buckley Miller Wright NEW49Amy Elsner
1042Emily G ButtBrazil2024-04-15Rousseaux, Michael Esq NEW18Amy Elsner
1043David X OstroskyArgentina2024-04-17Chemel, James L Cpa QUALIFIED54Onyama Limba
1044Jefferson C StockhamRussia2024-04-06Printing Dimensions NEW79Elwin Sharvill
1045Octavia U ShinkoIndia2024-03-29Commercial Press NEW17Ioni Bowcher
1046Salvatore B BologniaUnited Kingdom2024-04-14Chapman, Ross E Esq UNQUALIFIED27Anna Fali
1047Isabel Z WieserRussia2024-04-04Rousseaux, Michael Esq NEGOTIATION0Bernardo Dominic
1048Francesco T GlickIndia2024-04-20Truhlar And Truhlar Attys PROPOSAL38Stephen Shaw
1049Murillo I VenereArgentina2024-04-11Buckley Miller Wright NEW81Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Arvin C RoysterSpainAnna Fali QUALIFIED
Octavia C KuskoUnited KingdomIvan Magalhaes PROPOSAL
Izzy G CaudyItalyAmy Elsner QUALIFIED
Alejandro X KolmetzArgentinaElwin Sharvill NEW
Maisha M StensethCanadaElwin Sharvill PROPOSAL
Silvio G WaycottJapanElwin Sharvill UNQUALIFIED
Maria O MaletArgentinaStephen Shaw UNQUALIFIED
Izzy N DoeAustraliaAmy Elsner UNQUALIFIED
Maisha G RoysterIndiaStephen Shaw UNQUALIFIED
Costa L KuskoIndiaStephen Shaw NEW
Greenwood O RimArgentinaElwin Sharvill NEGOTIATION
Alejandro F GlickFranceAsiya Javayant QUALIFIED
Greenwood N StensethCanadaBernardo Dominic NEGOTIATION
Alejandro H AmigonSpainElwin Sharvill RENEWAL
Darci A WhobreySpainAnna Fali UNQUALIFIED
Claire M SlusarskiRussiaBernardo Dominic NEGOTIATION
Nicolas K VenereItalyAsiya Javayant QUALIFIED
Stacey D RulapaughAustraliaElwin Sharvill NEW
Mujtaba X NickaBrazilIoni Bowcher UNQUALIFIED
Jennifer A CampainFranceIoni Bowcher QUALIFIED
Salvatore E FlosiFranceIvan Magalhaes RENEWAL
Mayumi A OldroydItalyElwin Sharvill QUALIFIED
Juan E BriddickAustraliaIvan Magalhaes UNQUALIFIED
Arvin I SergiArgentinaAmy Elsner RENEWAL
Mayumi R FerenczIndiaAnna Fali NEGOTIATION
Darci E WieserRussiaAmy Elsner UNQUALIFIED
Ivar P CampainFranceOnyama Limba NEW
Aruna R SchemmerGermanyBernardo Dominic RENEWAL
Aika R OldroydIndiaOnyama Limba NEW
Octavia Y CaldareraCanadaIoni Bowcher QUALIFIED
Ashley Z MacleadArgentinaAmy Elsner NEGOTIATION
Adams B CampainBrazilOnyama Limba NEGOTIATION
David K PoquetteUnited KingdomAmy Elsner RENEWAL
Sinclair T DoeJapanAmy Elsner UNQUALIFIED
Clifford L MorascaBrazilAsiya Javayant NEGOTIATION
Leon Y MacleadArgentinaIvan Magalhaes UNQUALIFIED
Ricardo B SchemmerFranceElwin Sharvill NEW
Octavia M MacleadUnited KingdomElwin Sharvill PROPOSAL
Leon N PaprockiSpainStephen Shaw UNQUALIFIED
Darci P WaycottCanadaIvan Magalhaes NEW
Salvatore S NestleCanadaIvan Magalhaes NEW
Kadeem U BowleySpainElwin Sharvill UNQUALIFIED
Izzy N GlickFranceAnna Fali QUALIFIED
Murillo G CaldareraJapanOnyama Limba QUALIFIED
Greenwood X CaldareraGermanyOnyama Limba NEW
Darci D CaldareraRussiaStephen Shaw NEGOTIATION
Maisha Z WieserUnited KingdomAsiya Javayant PROPOSAL
Aika B PerinItalyOnyama Limba PROPOSAL
Costa M InouyeUnited KingdomXuxue Feng QUALIFIED
Chavez Z ChuiArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Ivar L Rim
Morrow Z Whobrey
Aruna R Stenseth
Ashley Y Whobrey
Nicolas G Bowley
Munro B Caldarera
Deepesh K Stockham
Nicolas W Whobrey
Nicolas I Oldroyd
James L Stenseth
Alejandro K Morasca
Kadeem M Venere
Tony N Slusarski
Antonio B Kolmetz
Maisha L Whobrey
Kaitlin C Figeroa
Munro T Ostrosky
Emily D Nicka
Morrow Q Caldarera
Aditya E Garufi
Smith V Perin
Kadeem M Dilliard
Julie E Rulapaugh
Jones P Venere
Aruna X Caudy
Morrow V Wieser
Cody M Bolognia
Clifford G Chui
David E Maclead
Ashley V Gillian
Leja Y Inouye
Darci L Kusko
Aika R Ostrosky
James S Briddick
Stacey V Rim
Faith I Malet
James V Doe
Mujtaba A Venere
Munro T Tollner
Kadeem F Maclead
Francesco C Gaucho
Jeanfrancois H Maclead
Nicolas O Dilliard
Emily X Gillian
Mayumi O Inouye
Murillo F Iturbide
Faith K Caudy
Wickens F Slusarski
Isabel L Nestle
Nicolas D Bolognia
IdCountryDate
1000Germany2024-04-09
1001Brazil2024-04-14
1002France2024-04-04
1003Russia2024-04-20
1004Canada2024-04-05
1005Italy2024-04-21
1006India2024-04-16
1007Spain2024-04-10
1008France2024-04-05
1009Argentina2024-04-24
1010Australia2024-03-31
1011Spain2024-04-14
1012India2024-03-30
1013India2024-04-24
1014Australia2024-04-06
1015Russia2024-04-19
1016United Kingdom2024-04-06
1017Spain2024-04-03
1018Japan2024-04-04
1019Brazil2024-04-01
1020Canada2024-04-01
1021Italy2024-03-29
1022United Kingdom2024-04-23
1023India2024-04-11
1024India2024-03-27
1025Brazil2024-03-27
1026Canada2024-04-20
1027Brazil2024-04-23
1028Japan2024-04-21
1029Russia2024-04-01
1030Italy2024-04-12
1031Spain2024-04-07
1032Germany2024-04-22
1033Spain2024-04-19
1034Spain2024-04-16
1035Germany2024-04-13
1036Italy2024-04-22
1037India2024-04-18
1038Russia2024-04-10
1039France2024-04-22
1040Brazil2024-04-06
1041United Kingdom2024-03-30
1042Russia2024-04-10
1043Spain2024-04-18
1044Italy2024-04-15
1045India2024-03-28
1046Argentina2024-04-10
1047United Kingdom2024-04-07
1048France2024-04-02
1049Russia2024-04-20

On-Demand Data

NameIdCountryDate
Mayumi H Whobrey1000Italy2024-04-02
Chavez G Morasca1001Germany2024-04-08
Munro H Sergi1002Germany2024-04-23
Smith K Amigon1003India2024-04-22
Mayumi V Albares1004Argentina2024-03-30
James F Wieser1005Brazil2024-04-08
Cody G Glick1006United Kingdom2024-04-08
Juan Y Perin1007France2024-04-21
Johnson W Dilliard1008Canada2024-04-15
Jeanfrancois E Paprocki1009France2024-04-13
Arvin J Bolognia1010Australia2024-03-31
Silvio E Chui1011France2024-04-19
Costa M Amigon1012Australia2024-04-15
Juan O Gaucho1013Spain2024-04-03
Wickens X Kolmetz1014Brazil2024-04-14
Chavez H Campain1015Germany2024-04-12
Ashley J Bolognia1016United Kingdom2024-04-24
Julie G Rim1017Canada2024-04-09
Maria Q Glick1018Australia2024-04-09
James J Rulapaugh1019Germany2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa C RoysterCanadaAsiya Javayant NEGOTIATION
Jeanfrancois I NestleGermanyOnyama Limba QUALIFIED
Aruna S RoysterRussiaAmy Elsner QUALIFIED
Maria R ButtRussiaElwin Sharvill UNQUALIFIED
David F InouyeItalyStephen Shaw QUALIFIED
Maria L FerenczRussiaStephen Shaw UNQUALIFIED
Aruna S AlbaresGermanyStephen Shaw NEW
Izzy X MarrierItalyBernardo Dominic UNQUALIFIED
Clifford U WaycottArgentinaAmy Elsner RENEWAL
Isabel Q ShinkoGermanyXuxue Feng NEW
Salvatore W IturbideJapanElwin Sharvill RENEWAL
Jennifer W FollerRussiaAnna Fali PROPOSAL
Julie U CaudyAustraliaIoni Bowcher PROPOSAL
Jones Z VenereAustraliaIvan Magalhaes NEGOTIATION
Silvio W TollnerIndiaOnyama Limba NEGOTIATION
Rodrigues E FlosiAustraliaBernardo Dominic UNQUALIFIED
Tony A OstroskyBrazilElwin Sharvill QUALIFIED
Greenwood O WieserAustraliaStephen Shaw QUALIFIED
Greenwood H WieserAustraliaIvan Magalhaes NEW
Greenwood A AmigonGermanyBernardo Dominic NEGOTIATION
Jeanfrancois A TollnerRussiaAnna Fali QUALIFIED
Cody C KuskoGermanyElwin Sharvill NEW
Salvatore L RulapaughCanadaXuxue Feng PROPOSAL
Ashley D FlosiFranceOnyama Limba RENEWAL
Nicolas P WaycottFranceElwin Sharvill UNQUALIFIED
Ivar J RutaRussiaStephen Shaw NEGOTIATION
David Y FerenczBrazilStephen Shaw NEW
Arvin S TollnerAustraliaElwin Sharvill PROPOSAL
Chavez M OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Costa U GarufiFranceXuxue Feng NEGOTIATION
Maria L OldroydItalyAnna Fali NEGOTIATION
Silvio V VenereJapanOnyama Limba NEW
Nicolas N GauchoGermanyAsiya Javayant PROPOSAL
Wickens Z IturbideUnited KingdomElwin Sharvill RENEWAL
Aditya F RulapaughItalyStephen Shaw NEW
Sinclair O FlosiBrazilStephen Shaw NEGOTIATION
Deepesh T WaycottBrazilBernardo Dominic NEGOTIATION
Alejandro K VenereRussiaStephen Shaw UNQUALIFIED
Octavia Z FollerAustraliaXuxue Feng PROPOSAL
Ashley Z MaletFranceXuxue Feng NEGOTIATION

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