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
Costa N StensethCanadaOnyama Limba NEW
Isabel N BologniaArgentinaAsiya Javayant RENEWAL
Ivar M MaletArgentinaBernardo Dominic NEGOTIATION
Sinclair W FlosiCanadaStephen Shaw UNQUALIFIED
Maria D GarufiIndiaAnna Fali QUALIFIED
Johnson E KolmetzRussiaElwin Sharvill PROPOSAL
Nicolas K RulapaughGermanyOnyama Limba QUALIFIED
Claire O InouyeIndiaStephen Shaw NEGOTIATION
Clifford Y MorascaFranceIoni Bowcher UNQUALIFIED
Aika A RulapaughItalyElwin Sharvill NEGOTIATION
Alejandro E DoeFranceXuxue Feng UNQUALIFIED
Francesco V DoeCanadaXuxue Feng NEGOTIATION
Misaki R WieserItalyAmy Elsner NEW
Chavez C CaldareraRussiaBernardo Dominic NEGOTIATION
Chavez C RutaAustraliaAsiya Javayant PROPOSAL
Emily E GauchoIndiaStephen Shaw NEGOTIATION
Morrow L RoysterBrazilIvan Magalhaes RENEWAL
Faith C BriddickArgentinaElwin Sharvill NEW
Greenwood I AlbaresArgentinaAmy Elsner NEW
Morrow J PoquetteCanadaStephen Shaw NEW
Isabel R IturbideAustraliaElwin Sharvill QUALIFIED
Ashley M CaldareraCanadaStephen Shaw NEW
Aika T InouyeCanadaAnna Fali NEGOTIATION
Leon U RulapaughFranceElwin Sharvill NEW
Clifford B CaldareraAustraliaAmy Elsner NEW
Jones T PerinJapanElwin Sharvill RENEWAL
Aruna E MarrierRussiaBernardo Dominic PROPOSAL
Rodrigues E WhobreyAustraliaIoni Bowcher UNQUALIFIED
Sinclair U FlosiArgentinaBernardo Dominic NEW
Adams W GlickArgentinaAmy Elsner UNQUALIFIED
Claire V NickaBrazilXuxue Feng RENEWAL
Clifford U PerinAustraliaStephen Shaw RENEWAL
Emily Q MaletItalyAsiya Javayant PROPOSAL
Emily S PerinCanadaIvan Magalhaes UNQUALIFIED
Greenwood C SaylorsItalyOnyama Limba NEGOTIATION
Octavia U CaldareraArgentinaAsiya Javayant QUALIFIED
Nicolas S FlosiRussiaAsiya Javayant RENEWAL
Jeanfrancois D DilliardArgentinaAmy Elsner UNQUALIFIED
Aika U DoeIndiaAsiya Javayant NEW
Juan A OldroydBrazilOnyama Limba PROPOSAL
Arvin D WaycottRussiaIoni Bowcher PROPOSAL
Mayumi D MacleadJapanAnna Fali PROPOSAL
Cody N MacleadCanadaIoni Bowcher NEGOTIATION
Costa Z WhobreyBrazilIoni Bowcher UNQUALIFIED
Salvatore Y DilliardJapanOnyama Limba QUALIFIED
Salvatore Q PerinSpainIvan Magalhaes NEW
Sinclair G FerenczBrazilAsiya Javayant UNQUALIFIED
Clifford H MaletIndiaBernardo Dominic NEGOTIATION
Antonio K FlosiRussiaIvan Magalhaes QUALIFIED
Aditya F FollerCanadaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya K AlbaresSpainAnna Fali UNQUALIFIED
Leon T ShinkoGermanyAnna Fali QUALIFIED
Stacey Y CaudyFranceStephen Shaw NEW
Munro Y DarakjyGermanyAsiya Javayant NEW
Wickens Z WaycottGermanyElwin Sharvill PROPOSAL
Izzy P BriddickAustraliaAnna Fali NEW
Johnson C NickaFranceAmy Elsner NEW
Clifford N IturbideAustraliaBernardo Dominic RENEWAL
Deepesh M FerenczBrazilElwin Sharvill UNQUALIFIED
Jones N WhobreyBrazilAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues J CaldareraRussia2024-04-11King, Christopher A Esq QUALIFIED70Onyama Limba
1001Emily Z KolmetzJapan2024-04-25Feltz Printing Service NEGOTIATION95Onyama Limba
1002Clifford T FollerRussia2024-04-20Feltz Printing Service NEW21Asiya Javayant
1003Johnson I RulapaughIndia2024-04-19Benton, John B Jr PROPOSAL83Onyama Limba
1004Costa O MarrierGermany2024-04-11Rangoni Of Florence NEGOTIATION31Asiya Javayant
1005Deepesh B DilliardAustralia2024-03-29Truhlar And Truhlar Attys NEW90Ioni Bowcher
1006Maisha H AmigonSpain2024-04-05Truhlar And Truhlar Attys QUALIFIED81Xuxue Feng
1007Faith X StockhamJapan2024-04-01Rangoni Of Florence NEGOTIATION21Bernardo Dominic
1008Jefferson F WaycottBrazil2024-04-23Chanay, Jeffrey A Esq QUALIFIED61Ivan Magalhaes
1009Tony P GauchoItaly2024-04-13King, Christopher A Esq RENEWAL78Xuxue Feng
1010Rodrigues Y DoeCanada2024-04-05King, Christopher A Esq RENEWAL98Stephen Shaw
1011Kaitlin R TollnerAustralia2024-04-07Buckley Miller Wright RENEWAL47Asiya Javayant
1012Tony P MaletFrance2024-04-26Morlong Associates NEGOTIATION45Ioni Bowcher
1013Smith Y CaldareraRussia2024-04-26Benton, John B Jr PROPOSAL90Xuxue Feng
1014Johnson B BowleyIndia2024-04-24Commercial Press UNQUALIFIED57Stephen Shaw
1015Leja N SchemmerBrazil2024-04-16Commercial Press QUALIFIED82Stephen Shaw
1016Antonio S MaletFrance2024-04-06Buckley Miller Wright NEW58Bernardo Dominic
1017Kadeem Z GillianCanada2024-04-22Feiner Bros NEGOTIATION64Asiya Javayant
1018Murillo E PerinFrance2024-03-31Feltz Printing Service NEW34Elwin Sharvill
1019Jennifer S RimBrazil2024-04-16Buckley Miller Wright RENEWAL24Stephen Shaw
1020Adams H WhobreyJapan2024-04-19Chemel, James L Cpa NEW72Onyama Limba
1021Tony K GlickBrazil2024-04-08Chemel, James L Cpa NEW17Stephen Shaw
1022Antonio F TollnerJapan2024-04-11Feiner Bros RENEWAL15Xuxue Feng
1023Silvio L PoquetteAustralia2024-03-30Feltz Printing Service NEW76Ioni Bowcher
1024Wickens Y IturbideJapan2024-04-18Buckley Miller Wright UNQUALIFIED35Asiya Javayant
1025James O RimSpain2024-04-13Chemel, James L Cpa QUALIFIED96Elwin Sharvill
1026Leon D StensethRussia2024-04-17Feltz Printing Service NEW26Onyama Limba
1027Jennifer P GarufiArgentina2024-04-06Benton, John B Jr NEGOTIATION30Anna Fali
1028Ashley U PoquetteFrance2024-03-31Benton, John B Jr QUALIFIED6Amy Elsner
1029Munro S StensethFrance2024-04-04Chapman, Ross E Esq QUALIFIED58Xuxue Feng
1030Jones K RimArgentina2024-04-20Feiner Bros RENEWAL45Bernardo Dominic
1031Octavia Y ChuiArgentina2024-04-16Chanay, Jeffrey A Esq NEW8Stephen Shaw
1032Claire V SergiItaly2024-03-30King, Christopher A Esq RENEWAL3Bernardo Dominic
1033Aditya M PerinGermany2024-04-09Rousseaux, Michael Esq RENEWAL67Amy Elsner
1034Aika O MarrierFrance2024-04-21Feiner Bros PROPOSAL73Ioni Bowcher
1035Tony T CampainSpain2024-04-02Rousseaux, Michael Esq RENEWAL84Ioni Bowcher
1036Rodrigues G NickaUnited Kingdom2024-04-23Chapman, Ross E Esq QUALIFIED86Elwin Sharvill
1037Mujtaba K InouyeArgentina2024-04-17Benton, John B Jr NEGOTIATION45Elwin Sharvill
1038Emily C AlbaresUnited Kingdom2024-04-21Benton, John B Jr PROPOSAL35Asiya Javayant
1039Alejandro G ChuiFrance2024-04-01Commercial Press RENEWAL37Ioni Bowcher
1040Juan F DarakjyGermany2024-04-17Chemel, James L Cpa QUALIFIED55Ioni Bowcher
1041Aika T VenereJapan2024-04-18Truhlar And Truhlar Attys RENEWAL79Xuxue Feng
1042Cody E BriddickBrazil2024-04-07Feiner Bros NEW58Asiya Javayant
1043Greenwood D MarrierSpain2024-03-28Truhlar And Truhlar Attys UNQUALIFIED72Xuxue Feng
1044Emily U CampainGermany2024-03-29Morlong Associates UNQUALIFIED75Stephen Shaw
1045Leja T WhobreyArgentina2024-04-20Benton, John B Jr PROPOSAL66Xuxue Feng
1046Kaitlin D OldroydAustralia2024-04-05Morlong Associates PROPOSAL22Asiya Javayant
1047Johnson R RutaIndia2024-04-19Rangoni Of Florence RENEWAL75Asiya Javayant
1048Jones Y WhobreyJapan2024-04-20Printing Dimensions NEW15Stephen Shaw
1049Salvatore U AmigonIndia2024-04-02Printing Dimensions PROPOSAL12Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily M StensethSpainAnna Fali NEW
Claire C WhobreyItalyIoni Bowcher UNQUALIFIED
Mayumi W GauchoUnited KingdomAmy Elsner NEW
Jefferson B RutaFranceBernardo Dominic PROPOSAL
Emily E BriddickItalyIoni Bowcher NEGOTIATION
Claire M MaletSpainAmy Elsner QUALIFIED
James W ButtFranceAnna Fali NEGOTIATION
Jeanfrancois F OldroydUnited KingdomOnyama Limba QUALIFIED
Aika R RimFranceAnna Fali PROPOSAL
Maria L OstroskyAustraliaBernardo Dominic PROPOSAL
Antonio R MaletGermanyAsiya Javayant PROPOSAL
Jennifer O KolmetzArgentinaAmy Elsner QUALIFIED
Munro R MorascaJapanOnyama Limba PROPOSAL
Jones D SergiBrazilIvan Magalhaes NEGOTIATION
Smith Y MaletFranceOnyama Limba QUALIFIED
Aditya L WhobreyRussiaOnyama Limba QUALIFIED
Cody D WieserItalyStephen Shaw RENEWAL
Octavia W DoeIndiaElwin Sharvill NEGOTIATION
Juan L AmigonIndiaXuxue Feng RENEWAL
Chavez N DoeRussiaAsiya Javayant UNQUALIFIED
Cody A SlusarskiJapanIvan Magalhaes NEW
Alejandro C GarufiAustraliaIvan Magalhaes PROPOSAL
Rodrigues Q RulapaughArgentinaOnyama Limba RENEWAL
Leja C KolmetzBrazilAmy Elsner RENEWAL
Rodrigues Q StensethItalyIvan Magalhaes RENEWAL
Jefferson D WaycottSpainAmy Elsner UNQUALIFIED
Maisha L FerenczSpainStephen Shaw NEW
Nicolas X CampainCanadaBernardo Dominic UNQUALIFIED
Adams J AmigonItalyIoni Bowcher NEGOTIATION
Juan W SergiRussiaBernardo Dominic NEGOTIATION
Ashley K SaylorsArgentinaOnyama Limba PROPOSAL
Silvio D MaletItalyBernardo Dominic NEGOTIATION
Munro Y CampainIndiaAmy Elsner NEGOTIATION
Mujtaba V WhobreyIndiaBernardo Dominic NEGOTIATION
Jennifer U DilliardRussiaOnyama Limba NEW
Aditya X NickaFranceIoni Bowcher RENEWAL
Ricardo R MacleadArgentinaElwin Sharvill RENEWAL
Octavia P VenereItalyElwin Sharvill RENEWAL
Rodrigues I FlosiFranceElwin Sharvill NEW
Julie Q CampainFranceAsiya Javayant RENEWAL
Faith M VocelkaRussiaAmy Elsner UNQUALIFIED
Rodrigues S KolmetzCanadaXuxue Feng QUALIFIED
Wickens X OldroydItalyOnyama Limba NEW
Isabel H KuskoSpainIvan Magalhaes NEW
Leja F RimUnited KingdomIoni Bowcher PROPOSAL
Murillo E BologniaUnited KingdomAsiya Javayant NEGOTIATION
Kadeem V MacleadSpainIvan Magalhaes QUALIFIED
Alejandro W RutaAustraliaXuxue Feng NEW
Munro H BriddickUnited KingdomAmy Elsner UNQUALIFIED
Costa Y OldroydBrazilXuxue Feng PROPOSAL
Frozen Columns
Name
Chavez T Poquette
Jennifer G Gaucho
Chavez L Darakjy
Murillo D Iturbide
Nicolas W Slusarski
Jones V Oldroyd
Cody S Butt
Isabel H Sergi
Izzy R Venere
Ivar Y Stockham
Deepesh G Chui
Jefferson R Waycott
Jeanfrancois X Perin
Francesco R Tollner
Faith D Poquette
Leja J Kusko
Costa M Ferencz
Juan C Amigon
Kaitlin M Oldroyd
Deepesh X Foller
Morrow A Malet
Octavia V Paprocki
Jennifer R Dilliard
Aditya X Amigon
Maria B Marrier
Chavez Z Caldarera
Misaki M Ostrosky
Johnson X Tollner
Adams G Glick
Jeanfrancois E Foller
David M Vocelka
Kaitlin U Gaucho
Costa R Amigon
Chavez D Rulapaugh
Isabel X Paprocki
Mayumi D Dilliard
Clifford X Albares
Sinclair D Nestle
James X Bolognia
Juan P Perin
Kaitlin Z Bowley
Chavez V Sergi
Silvio Z Gillian
Smith Y Figeroa
Octavia M Amigon
James V Caldarera
Emily W Marrier
Arvin U Caudy
Isabel J Whobrey
Chavez Z Slusarski
IdCountryDate
1000India2024-04-09
1001Italy2024-03-30
1002Canada2024-04-01
1003Australia2024-04-18
1004Russia2024-03-28
1005Russia2024-04-05
1006Italy2024-04-02
1007India2024-04-18
1008India2024-04-13
1009United Kingdom2024-04-06
1010Brazil2024-04-21
1011France2024-04-01
1012India2024-04-07
1013Spain2024-04-04
1014Australia2024-03-29
1015Spain2024-04-07
1016France2024-04-20
1017Japan2024-04-17
1018Italy2024-04-06
1019Italy2024-03-29
1020Argentina2024-04-07
1021Australia2024-04-17
1022Australia2024-04-02
1023Argentina2024-04-11
1024Japan2024-04-23
1025Japan2024-04-16
1026India2024-04-03
1027France2024-04-19
1028France2024-04-13
1029Russia2024-04-08
1030Italy2024-03-29
1031Australia2024-04-20
1032Germany2024-04-08
1033United Kingdom2024-04-22
1034Brazil2024-04-11
1035France2024-04-17
1036Argentina2024-04-09
1037Australia2024-04-21
1038Australia2024-04-10
1039India2024-04-05
1040Italy2024-04-17
1041Australia2024-04-07
1042India2024-04-17
1043United Kingdom2024-04-25
1044Argentina2024-03-30
1045Spain2024-04-09
1046Germany2024-04-19
1047Canada2024-04-11
1048United Kingdom2024-04-05
1049Spain2024-04-10

On-Demand Data

NameIdCountryDate
Ricardo U Malet1000United Kingdom2024-04-01
Munro G Ostrosky1001Japan2024-04-08
Smith Y Inouye1002United Kingdom2024-04-14
Faith I Slusarski1003Brazil2024-04-26
Maria W Saylors1004United Kingdom2024-03-29
Tony A Bowley1005Russia2024-04-13
Morrow X Iturbide1006Australia2024-04-20
Jennifer H Oldroyd1007Brazil2024-03-29
Maisha K Caldarera1008Brazil2024-04-01
Darci X Dilliard1009Argentina2024-04-09
Kadeem U Ostrosky1010Japan2024-04-17
Costa S Sergi1011Germany2024-04-25
Alejandro M Glick1012Spain2024-04-21
Aditya J Figeroa1013Russia2024-04-25
Aditya V Ferencz1014Argentina2024-03-30
Aruna G Vocelka1015Argentina2024-04-07
Smith W Ferencz1016Japan2024-04-06
David J Sergi1017Germany2024-04-15
Salvatore M Albares1018Argentina2024-03-29
Misaki M Nicka1019Italy2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria T DoeGermanyAsiya Javayant QUALIFIED
Octavia X FigeroaCanadaStephen Shaw NEW
Mayumi Q CaldareraItalyXuxue Feng NEGOTIATION
Isabel N FigeroaGermanyOnyama Limba QUALIFIED
Maria A CampainCanadaAnna Fali NEGOTIATION
Nicolas G WaycottGermanyXuxue Feng PROPOSAL
James B CaudyBrazilIvan Magalhaes QUALIFIED
Aika H CaldareraIndiaIoni Bowcher NEGOTIATION
Faith J AmigonBrazilAsiya Javayant NEW
Maisha J StensethFranceOnyama Limba QUALIFIED
Morrow R OldroydRussiaAsiya Javayant QUALIFIED
Mayumi X WieserUnited KingdomAmy Elsner RENEWAL
Greenwood S RoysterArgentinaAsiya Javayant NEW
Darci J GlickIndiaAmy Elsner NEGOTIATION
Deepesh C PoquetteIndiaElwin Sharvill RENEWAL
Mayumi X WaycottSpainStephen Shaw RENEWAL
Emily S MarrierGermanyBernardo Dominic PROPOSAL
Deepesh B TollnerJapanAsiya Javayant RENEWAL
Octavia A SlusarskiSpainIoni Bowcher PROPOSAL
Jeanfrancois X WhobreyJapanIoni Bowcher QUALIFIED
Greenwood N FlosiItalyAsiya Javayant PROPOSAL
Jeanfrancois F VenereRussiaOnyama Limba QUALIFIED
Juan M NestleSpainAmy Elsner UNQUALIFIED
Julie Z WaycottBrazilOnyama Limba QUALIFIED
Salvatore V VenereGermanyAsiya Javayant UNQUALIFIED
Nicolas V SchemmerJapanStephen Shaw UNQUALIFIED
Alejandro O RulapaughJapanStephen Shaw RENEWAL
Darci M IturbideIndiaOnyama Limba NEGOTIATION
Jeanfrancois C AlbaresUnited KingdomBernardo Dominic PROPOSAL
Alejandro Q IturbideIndiaIvan Magalhaes PROPOSAL
Rodrigues Y SlusarskiCanadaAnna Fali UNQUALIFIED
Faith C CaudyUnited KingdomIvan Magalhaes QUALIFIED
Nicolas B MacleadGermanyAnna Fali QUALIFIED
Stacey D VocelkaFranceBernardo Dominic NEGOTIATION
Wickens R DarakjyCanadaElwin Sharvill NEW
Aruna S GauchoJapanIoni Bowcher NEW
Faith Q NestleFranceElwin Sharvill QUALIFIED
Cody H WaycottRussiaIvan Magalhaes RENEWAL
Antonio Z SlusarskiArgentinaElwin Sharvill NEGOTIATION
Francesco U VenereBrazilIoni Bowcher 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>