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
Mujtaba O NestleFranceAsiya Javayant QUALIFIED
Deepesh C NickaSpainBernardo Dominic QUALIFIED
Jones R BologniaCanadaAsiya Javayant PROPOSAL
Cody Y VenereJapanIvan Magalhaes UNQUALIFIED
Cody U StensethGermanyOnyama Limba NEW
Rodrigues Q AmigonArgentinaXuxue Feng UNQUALIFIED
Kadeem O FerenczJapanStephen Shaw PROPOSAL
Antonio R ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas Q RimIndiaIoni Bowcher RENEWAL
Smith P StockhamJapanAsiya Javayant NEGOTIATION
Leja W GlickArgentinaBernardo Dominic PROPOSAL
Ashley W NestleIndiaAmy Elsner NEGOTIATION
Misaki A KolmetzArgentinaIvan Magalhaes NEGOTIATION
Ricardo C GlickItalyElwin Sharvill QUALIFIED
Maria P SaylorsRussiaBernardo Dominic QUALIFIED
Octavia C CaudyItalyIvan Magalhaes UNQUALIFIED
Jones G OldroydItalyXuxue Feng RENEWAL
Adams Q GauchoUnited KingdomBernardo Dominic QUALIFIED
Rodrigues S CaudyJapanElwin Sharvill UNQUALIFIED
Jennifer K InouyeItalyStephen Shaw UNQUALIFIED
Costa P GarufiRussiaIoni Bowcher QUALIFIED
Misaki B NickaItalyIoni Bowcher UNQUALIFIED
Deepesh N FerenczSpainAsiya Javayant NEGOTIATION
Mayumi R GauchoJapanStephen Shaw RENEWAL
Jones V OldroydCanadaElwin Sharvill QUALIFIED
Sinclair W NestleItalyBernardo Dominic QUALIFIED
Wickens R MacleadBrazilXuxue Feng UNQUALIFIED
Antonio R DilliardUnited KingdomXuxue Feng NEGOTIATION
Sinclair W FollerRussiaIvan Magalhaes NEW
Aruna G StensethFranceStephen Shaw QUALIFIED
Chavez M SaylorsJapanXuxue Feng NEGOTIATION
Mayumi U CaldareraAustraliaAsiya Javayant NEW
Tony Q BologniaUnited KingdomIoni Bowcher RENEWAL
Mujtaba A MacleadGermanyStephen Shaw QUALIFIED
Nicolas I IturbideIndiaElwin Sharvill QUALIFIED
Darci S FollerRussiaOnyama Limba UNQUALIFIED
Wickens J GlickAustraliaIoni Bowcher NEGOTIATION
Arvin O RoysterBrazilAsiya Javayant NEGOTIATION
Leja N StensethFranceXuxue Feng QUALIFIED
Mujtaba Q RutaJapanXuxue Feng RENEWAL
Ricardo P FerenczArgentinaAnna Fali UNQUALIFIED
Jeanfrancois J GillianItalyElwin Sharvill PROPOSAL
Jones X CaldareraUnited KingdomStephen Shaw PROPOSAL
Nicolas W DilliardUnited KingdomIoni Bowcher NEW
Nicolas U GarufiIndiaAnna Fali NEW
Rodrigues X RutaCanadaBernardo Dominic UNQUALIFIED
Costa F MacleadItalyElwin Sharvill NEW
Johnson S FigeroaFranceAmy Elsner NEW
Darci O RoysterIndiaBernardo Dominic NEGOTIATION
Francesco C BowleyArgentinaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya Z PoquetteFranceAnna Fali NEGOTIATION
Greenwood N PerinCanadaAsiya Javayant NEGOTIATION
Kadeem H GlickGermanyAnna Fali PROPOSAL
Mujtaba B DarakjyFranceStephen Shaw PROPOSAL
Jennifer C FigeroaBrazilAnna Fali RENEWAL
Ivar Z RoysterCanadaElwin Sharvill QUALIFIED
Ashley B AmigonGermanyStephen Shaw RENEWAL
Smith G DoeItalyXuxue Feng UNQUALIFIED
Antonio A SergiIndiaAsiya Javayant NEGOTIATION
Cody B GillianUnited KingdomAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Y ChuiItaly2024-04-29Chemel, James L Cpa NEGOTIATION68Xuxue Feng
1001Arvin Q VenereUnited Kingdom2024-05-12King, Christopher A Esq PROPOSAL71Anna Fali
1002Jennifer A RoysterItaly2024-05-11Feltz Printing Service UNQUALIFIED81Asiya Javayant
1003Costa E ShinkoAustralia2024-04-27Dorl, James J Esq QUALIFIED62Ivan Magalhaes
1004Mayumi E RutaGermany2024-05-14Rangoni Of Florence PROPOSAL71Asiya Javayant
1005Murillo H VocelkaFrance2024-05-11Buckley Miller Wright RENEWAL78Asiya Javayant
1006Jeanfrancois D KuskoCanada2024-05-12Dorl, James J Esq QUALIFIED80Ioni Bowcher
1007Rodrigues I AmigonIndia2024-05-07Commercial Press NEW72Ivan Magalhaes
1008Mujtaba Q CaudyBrazil2024-05-10Feltz Printing Service NEGOTIATION33Ioni Bowcher
1009Cody X MacleadFrance2024-04-28Truhlar And Truhlar Attys NEGOTIATION3Ivan Magalhaes
1010Sinclair G KolmetzFrance2024-04-29Chanay, Jeffrey A Esq PROPOSAL33Bernardo Dominic
1011Mayumi P BologniaIndia2024-05-21Rangoni Of Florence PROPOSAL13Elwin Sharvill
1012Adams D PoquetteSpain2024-04-27Morlong Associates UNQUALIFIED14Bernardo Dominic
1013Jones A ShinkoArgentina2024-04-22Benton, John B Jr PROPOSAL24Xuxue Feng
1014James Z VenereUnited Kingdom2024-04-27Buckley Miller Wright UNQUALIFIED35Anna Fali
1015Arvin L DarakjyFrance2024-05-18Feltz Printing Service RENEWAL42Ioni Bowcher
1016Darci W RulapaughUnited Kingdom2024-05-09Buckley Miller Wright RENEWAL37Amy Elsner
1017Johnson L PerinItaly2024-05-08Dorl, James J Esq RENEWAL88Stephen Shaw
1018Aditya Y StockhamJapan2024-05-04Buckley Miller Wright UNQUALIFIED94Bernardo Dominic
1019Greenwood V MacleadArgentina2024-05-03Benton, John B Jr UNQUALIFIED5Elwin Sharvill
1020Munro J RutaAustralia2024-05-20Morlong Associates NEW98Amy Elsner
1021Morrow S KuskoCanada2024-05-14Rangoni Of Florence NEW65Bernardo Dominic
1022Cody R RutaRussia2024-05-14Printing Dimensions UNQUALIFIED21Ivan Magalhaes
1023Francesco E OstroskyGermany2024-05-01Chapman, Ross E Esq PROPOSAL28Ioni Bowcher
1024Emily S ButtCanada2024-04-28Chemel, James L Cpa QUALIFIED29Ioni Bowcher
1025Izzy O TollnerArgentina2024-04-24Printing Dimensions RENEWAL19Stephen Shaw
1026Octavia N SaylorsFrance2024-05-03Truhlar And Truhlar Attys UNQUALIFIED89Onyama Limba
1027Jeanfrancois M OldroydArgentina2024-04-26Morlong Associates RENEWAL21Stephen Shaw
1028David G MaletAustralia2024-05-02Rousseaux, Michael Esq PROPOSAL8Anna Fali
1029Darci P IturbideRussia2024-05-15Chapman, Ross E Esq PROPOSAL66Ioni Bowcher
1030Arvin U WhobreyRussia2024-05-09Feltz Printing Service PROPOSAL19Bernardo Dominic
1031Jones M NickaArgentina2024-05-21Commercial Press QUALIFIED65Xuxue Feng
1032Mayumi L RimCanada2024-05-02Buckley Miller Wright UNQUALIFIED97Ioni Bowcher
1033Isabel W FerenczCanada2024-05-11Dorl, James J Esq PROPOSAL31Ioni Bowcher
1034Maria K CampainJapan2024-05-01Feltz Printing Service QUALIFIED64Stephen Shaw
1035Darci X NickaCanada2024-04-23Morlong Associates PROPOSAL33Bernardo Dominic
1036Claire B SaylorsSpain2024-05-03Chapman, Ross E Esq QUALIFIED42Stephen Shaw
1037Antonio G GlickGermany2024-04-29Commercial Press NEW5Ioni Bowcher
1038Jefferson T BologniaFrance2024-05-07Dorl, James J Esq NEW68Ivan Magalhaes
1039Aditya X DilliardUnited Kingdom2024-04-24Feltz Printing Service NEGOTIATION54Ioni Bowcher
1040Alejandro D TollnerIndia2024-05-09Chapman, Ross E Esq QUALIFIED12Bernardo Dominic
1041Ricardo Y MaletSpain2024-05-03Chemel, James L Cpa NEGOTIATION70Ioni Bowcher
1042Nicolas W WhobreyJapan2024-05-06Feiner Bros NEGOTIATION75Ivan Magalhaes
1043Isabel R FollerUnited Kingdom2024-05-17Feltz Printing Service UNQUALIFIED37Onyama Limba
1044Aditya A RimArgentina2024-05-21Morlong Associates RENEWAL27Anna Fali
1045Misaki I MarrierSpain2024-05-09Morlong Associates RENEWAL79Asiya Javayant
1046Ivar H MarrierUnited Kingdom2024-05-15Feltz Printing Service QUALIFIED30Elwin Sharvill
1047Ivar Y BologniaItaly2024-05-02Chanay, Jeffrey A Esq QUALIFIED43Ioni Bowcher
1048Ivar O InouyeArgentina2024-05-15Buckley Miller Wright UNQUALIFIED8Ioni Bowcher
1049Juan Z KolmetzArgentina2024-05-04Chapman, Ross E Esq PROPOSAL53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Isabel L MaletUnited KingdomAmy Elsner NEW
Mujtaba V CaldareraJapanIvan Magalhaes QUALIFIED
Francesco I BowleyItalyOnyama Limba NEW
Alejandro M CampainIndiaStephen Shaw NEGOTIATION
Sinclair Q RutaAustraliaAmy Elsner PROPOSAL
Costa W ShinkoFranceAnna Fali PROPOSAL
Darci H DoeBrazilStephen Shaw NEW
Cody J KolmetzSpainBernardo Dominic PROPOSAL
Mujtaba B OstroskyJapanIvan Magalhaes RENEWAL
Sinclair S RoysterUnited KingdomOnyama Limba NEW
Adams G RulapaughItalyElwin Sharvill RENEWAL
Juan K GillianGermanyOnyama Limba PROPOSAL
Murillo V FlosiArgentinaAmy Elsner NEW
Leja Q SergiJapanAsiya Javayant QUALIFIED
Johnson R RimGermanyIvan Magalhaes RENEWAL
Ricardo B GillianFranceBernardo Dominic UNQUALIFIED
Faith J RutaItalyBernardo Dominic NEW
Leon Y VocelkaArgentinaAmy Elsner PROPOSAL
Nicolas R RulapaughJapanXuxue Feng NEGOTIATION
Cody D WaycottRussiaIvan Magalhaes QUALIFIED
Isabel C FollerUnited KingdomBernardo Dominic QUALIFIED
Rodrigues Z IturbideAustraliaXuxue Feng NEGOTIATION
Adams D StockhamAustraliaIoni Bowcher QUALIFIED
Clifford C BologniaItalyAsiya Javayant UNQUALIFIED
Greenwood H IturbideIndiaIoni Bowcher UNQUALIFIED
Maria M RimIndiaIvan Magalhaes RENEWAL
Emily S WieserAustraliaElwin Sharvill NEGOTIATION
Jennifer U InouyeBrazilIvan Magalhaes NEW
Costa H RutaFranceStephen Shaw UNQUALIFIED
Francesco B SergiFranceStephen Shaw NEGOTIATION
Kadeem B WaycottAustraliaAsiya Javayant UNQUALIFIED
Octavia P KolmetzUnited KingdomStephen Shaw QUALIFIED
Izzy T MaletBrazilOnyama Limba QUALIFIED
Emily R ShinkoJapanBernardo Dominic UNQUALIFIED
Chavez C WaycottJapanOnyama Limba NEGOTIATION
Mayumi K SchemmerItalyAnna Fali UNQUALIFIED
Wickens M SlusarskiIndiaAnna Fali NEW
Leon T ChuiItalyOnyama Limba PROPOSAL
Deepesh Y InouyeFranceXuxue Feng PROPOSAL
Greenwood B GarufiRussiaXuxue Feng RENEWAL
Leon P GillianSpainXuxue Feng UNQUALIFIED
Mayumi G CampainJapanOnyama Limba QUALIFIED
Silvio X SergiItalyBernardo Dominic NEGOTIATION
Izzy F MaletArgentinaStephen Shaw RENEWAL
Octavia G SergiSpainStephen Shaw RENEWAL
David G SaylorsCanadaAmy Elsner RENEWAL
Adams L WhobreyBrazilXuxue Feng NEW
Morrow Q NickaItalyElwin Sharvill NEW
Salvatore Q InouyeJapanAmy Elsner NEGOTIATION
Cody L AmigonFranceIvan Magalhaes RENEWAL
Frozen Columns
Name
James M Gaucho
Isabel G Dilliard
Mayumi T Maclead
Adams U Tollner
Tony B Amigon
Johnson U Figeroa
Isabel U Gillian
Aditya V Figeroa
Munro G Paprocki
Tony O Marrier
Ricardo Z Flosi
Maisha C Glick
Leon Q Ostrosky
Arvin X Venere
Wickens H Glick
James W Nicka
Julie M Dilliard
Deepesh T Butt
Octavia F Whobrey
Darci A Garufi
Johnson B Oldroyd
Murillo K Saylors
Greenwood L Perin
James U Shinko
Sinclair B Gaucho
Morrow A Figeroa
Jones W Briddick
Aditya H Waycott
Octavia W Rulapaugh
Isabel J Kusko
Wickens U Caudy
Murillo P Malet
Jeanfrancois W Morasca
Nicolas R Bowley
Maria P Wieser
Costa N Schemmer
James Z Rim
Alejandro G Paprocki
Jennifer R Marrier
Sinclair P Butt
Mayumi I Gillian
Julie O Figeroa
Arvin E Ferencz
Sinclair F Caudy
Ashley M Royster
Isabel H Caldarera
Izzy L Ferencz
Izzy Q Amigon
Rodrigues Z Malet
David V Malet
IdCountryDate
1000Germany2024-05-17
1001India2024-05-15
1002Japan2024-05-20
1003Italy2024-05-17
1004Italy2024-04-23
1005Spain2024-04-29
1006United Kingdom2024-05-03
1007United Kingdom2024-05-08
1008India2024-05-09
1009Canada2024-05-13
1010Canada2024-05-03
1011Brazil2024-05-07
1012India2024-05-21
1013Italy2024-04-28
1014Australia2024-04-22
1015Russia2024-05-18
1016France2024-05-01
1017Japan2024-05-19
1018Brazil2024-05-15
1019Japan2024-05-13
1020France2024-05-01
1021United Kingdom2024-05-09
1022India2024-05-02
1023France2024-05-01
1024United Kingdom2024-04-28
1025Russia2024-05-11
1026United Kingdom2024-05-05
1027Japan2024-04-27
1028United Kingdom2024-05-19
1029Italy2024-05-08
1030Germany2024-04-23
1031Brazil2024-05-19
1032United Kingdom2024-05-12
1033Argentina2024-05-14
1034Australia2024-05-05
1035Italy2024-05-14
1036Australia2024-05-15
1037Australia2024-05-19
1038Australia2024-05-20
1039Australia2024-05-14
1040Argentina2024-05-08
1041Germany2024-04-25
1042United Kingdom2024-05-10
1043France2024-05-03
1044Germany2024-05-20
1045Japan2024-05-18
1046Canada2024-05-09
1047Russia2024-05-20
1048Canada2024-05-03
1049India2024-05-16

On-Demand Data

NameIdCountryDate
Arvin K Ostrosky1000Germany2024-05-10
Johnson O Nestle1001Japan2024-05-13
Alejandro S Ostrosky1002India2024-05-05
Aditya W Amigon1003Australia2024-05-18
Faith R Saylors1004Germany2024-04-28
Murillo G Maclead1005Australia2024-05-14
Ashley G Rim1006India2024-04-22
Clifford W Figeroa1007Argentina2024-04-29
Antonio M Saylors1008France2024-05-01
Aika O Wieser1009Germany2024-05-16
David F Iturbide1010Brazil2024-05-17
Adams D Marrier1011Brazil2024-04-23
Leja X Butt1012Russia2024-05-08
Antonio L Briddick1013France2024-04-22
Maisha U Inouye1014Spain2024-05-14
Julie L Ferencz1015Brazil2024-05-06
Wickens B Briddick1016Brazil2024-04-22
Jeanfrancois L Gillian1017India2024-04-28
Ricardo C Nicka1018Germany2024-04-29
Alejandro V Whobrey1019Russia2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow C RulapaughFranceAmy Elsner NEW
Darci A DilliardUnited KingdomBernardo Dominic NEW
Emily Z RutaIndiaAmy Elsner QUALIFIED
Jeanfrancois H WaycottJapanIvan Magalhaes NEW
Jennifer N IturbideGermanyElwin Sharvill UNQUALIFIED
Juan Q KuskoGermanyAsiya Javayant UNQUALIFIED
Aika E StockhamCanadaElwin Sharvill NEW
Octavia R SlusarskiBrazilAnna Fali PROPOSAL
Juan C SlusarskiIndiaAmy Elsner NEGOTIATION
Jeanfrancois R FollerCanadaXuxue Feng UNQUALIFIED
Faith I AmigonAustraliaAnna Fali NEW
Clifford H MacleadJapanStephen Shaw QUALIFIED
Nicolas S VocelkaBrazilIvan Magalhaes PROPOSAL
Deepesh D CampainSpainBernardo Dominic NEGOTIATION
Wickens D CaudyRussiaOnyama Limba QUALIFIED
Faith Q PerinSpainAmy Elsner NEGOTIATION
Costa H GlickRussiaAmy Elsner UNQUALIFIED
Aruna T AmigonGermanyIoni Bowcher UNQUALIFIED
Antonio N RutaGermanyBernardo Dominic PROPOSAL
Arvin M CaudyItalyIoni Bowcher QUALIFIED
Silvio B BriddickAustraliaBernardo Dominic QUALIFIED
Morrow B BologniaCanadaStephen Shaw PROPOSAL
Deepesh U FollerAustraliaAnna Fali NEW
Aika X VenereAustraliaAnna Fali QUALIFIED
Rodrigues U VocelkaBrazilOnyama Limba NEW
Claire L WhobreyItalyElwin Sharvill UNQUALIFIED
Faith S FigeroaFranceIoni Bowcher NEGOTIATION
Adams N CampainItalyOnyama Limba UNQUALIFIED
Silvio T SchemmerSpainIoni Bowcher NEW
Darci B GlickBrazilAmy Elsner QUALIFIED
Isabel T PoquetteArgentinaBernardo Dominic RENEWAL
Smith K RutaIndiaAsiya Javayant NEW
Aruna U WieserGermanyXuxue Feng NEGOTIATION
Claire E CaldareraGermanyStephen Shaw PROPOSAL
Adams I ShinkoFranceAnna Fali PROPOSAL
Aika C KuskoItalyOnyama Limba NEW
Wickens F SergiUnited KingdomStephen Shaw NEGOTIATION
Ivar B DoeUnited KingdomStephen Shaw QUALIFIED
Ricardo H RoysterFranceIoni Bowcher NEGOTIATION
Izzy T OldroydIndiaAnna Fali UNQUALIFIED

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