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
Jennifer Z StockhamUnited KingdomAmy Elsner NEW
Julie T MaletCanadaElwin Sharvill NEGOTIATION
Leon F FollerItalyIoni Bowcher PROPOSAL
Ricardo J WhobreyGermanyIoni Bowcher PROPOSAL
Maria C OstroskyItalyIoni Bowcher NEW
Aika K MaletRussiaElwin Sharvill UNQUALIFIED
James O BologniaUnited KingdomAnna Fali RENEWAL
Antonio V AlbaresCanadaStephen Shaw QUALIFIED
Sinclair V ShinkoItalyIvan Magalhaes PROPOSAL
James B RoysterArgentinaAnna Fali UNQUALIFIED
Julie R VocelkaSpainOnyama Limba PROPOSAL
Faith S BowleyRussiaAmy Elsner RENEWAL
Cody R StensethUnited KingdomBernardo Dominic PROPOSAL
Rodrigues K StockhamUnited KingdomStephen Shaw NEW
Clifford E IturbideIndiaOnyama Limba NEW
Deepesh B VocelkaAustraliaIvan Magalhaes PROPOSAL
Julie U MorascaBrazilStephen Shaw PROPOSAL
Costa O RutaUnited KingdomAnna Fali QUALIFIED
James O VenereArgentinaElwin Sharvill QUALIFIED
Rodrigues R StensethIndiaStephen Shaw UNQUALIFIED
Clifford Z DoeGermanyAmy Elsner UNQUALIFIED
Jones V SchemmerBrazilAmy Elsner QUALIFIED
Misaki P OstroskyRussiaStephen Shaw NEGOTIATION
Izzy N CaudyGermanyIvan Magalhaes UNQUALIFIED
James O PaprockiItalyStephen Shaw PROPOSAL
Morrow X MarrierBrazilAnna Fali PROPOSAL
Juan N FlosiUnited KingdomAmy Elsner NEW
Emily Z RutaGermanyElwin Sharvill NEGOTIATION
Julie Y StockhamBrazilElwin Sharvill NEW
Ivar R MarrierBrazilAsiya Javayant UNQUALIFIED
Johnson C PerinIndiaElwin Sharvill PROPOSAL
Morrow H VenereArgentinaIoni Bowcher NEW
Isabel Z TollnerRussiaAmy Elsner NEGOTIATION
James T FollerRussiaIoni Bowcher NEGOTIATION
Rodrigues L VenereArgentinaElwin Sharvill UNQUALIFIED
Arvin F FigeroaGermanyIoni Bowcher UNQUALIFIED
Leja K MorascaBrazilBernardo Dominic QUALIFIED
Ricardo U MorascaFranceStephen Shaw PROPOSAL
Ricardo R MarrierRussiaIvan Magalhaes UNQUALIFIED
Silvio A GauchoJapanAnna Fali NEW
Sinclair W VenereGermanyBernardo Dominic PROPOSAL
Nicolas S OldroydFranceIvan Magalhaes QUALIFIED
James D WieserRussiaStephen Shaw NEW
Francesco U MarrierSpainElwin Sharvill PROPOSAL
Isabel C MacleadSpainAsiya Javayant QUALIFIED
Alejandro R RulapaughRussiaStephen Shaw NEW
Sinclair Q AlbaresBrazilAsiya Javayant RENEWAL
Murillo W BowleyUnited KingdomIoni Bowcher NEW
Octavia J SchemmerJapanIoni Bowcher UNQUALIFIED
Costa J KolmetzArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer R SchemmerGermanyIvan Magalhaes NEW
Clifford X MacleadItalyElwin Sharvill NEW
Darci U BowleyGermanyIvan Magalhaes UNQUALIFIED
Maisha Y GarufiUnited KingdomBernardo Dominic RENEWAL
Maisha E CaudyAustraliaElwin Sharvill NEW
David X ChuiIndiaAsiya Javayant PROPOSAL
Juan L DilliardBrazilBernardo Dominic RENEWAL
Antonio C FlosiAustraliaIoni Bowcher NEGOTIATION
Johnson D FlosiAustraliaStephen Shaw QUALIFIED
Juan N BriddickBrazilAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James Q OldroydSpain2024-04-16Rousseaux, Michael Esq PROPOSAL71Asiya Javayant
1001Misaki F WaycottArgentina2024-04-27Dorl, James J Esq UNQUALIFIED45Onyama Limba
1002Aruna T CampainFrance2024-04-02Feiner Bros UNQUALIFIED58Asiya Javayant
1003Deepesh P RoysterUnited Kingdom2024-04-07Benton, John B Jr NEGOTIATION48Onyama Limba
1004Jefferson P BologniaBrazil2024-04-06Chanay, Jeffrey A Esq NEW31Elwin Sharvill
1005Leja X CaldareraCanada2024-04-23Printing Dimensions RENEWAL70Ioni Bowcher
1006Ricardo D FerenczRussia2024-04-14Feiner Bros PROPOSAL90Ivan Magalhaes
1007Morrow W CaldareraJapan2024-04-30Commercial Press RENEWAL29Asiya Javayant
1008Darci Q OldroydAustralia2024-04-04Rangoni Of Florence RENEWAL23Stephen Shaw
1009Darci S MaletIndia2024-04-13Chemel, James L Cpa UNQUALIFIED19Stephen Shaw
1010Ashley M GlickItaly2024-04-09Chapman, Ross E Esq NEW92Stephen Shaw
1011Smith Z NickaIndia2024-04-25Feiner Bros RENEWAL74Bernardo Dominic
1012Deepesh S BowleyCanada2024-04-25Dorl, James J Esq UNQUALIFIED25Amy Elsner
1013Deepesh M RoysterCanada2024-04-19Printing Dimensions NEW41Onyama Limba
1014Alejandro X RoysterUnited Kingdom2024-04-22Feltz Printing Service QUALIFIED51Ivan Magalhaes
1015Tony T GlickJapan2024-04-06Printing Dimensions NEGOTIATION85Asiya Javayant
1016Mayumi J DarakjyRussia2024-04-13Feiner Bros NEGOTIATION52Ioni Bowcher
1017Darci T WaycottSpain2024-04-20Chapman, Ross E Esq QUALIFIED61Ioni Bowcher
1018Jefferson Z FollerCanada2024-04-28Benton, John B Jr PROPOSAL5Ioni Bowcher
1019Jeanfrancois K RimJapan2024-04-24Chemel, James L Cpa NEGOTIATION15Onyama Limba
1020Aruna L GlickRussia2024-04-06Buckley Miller Wright PROPOSAL96Asiya Javayant
1021David X RimCanada2024-04-29King, Christopher A Esq RENEWAL72Asiya Javayant
1022Claire M SlusarskiGermany2024-04-04Feiner Bros QUALIFIED71Amy Elsner
1023Jennifer T CaudyItaly2024-04-05Printing Dimensions UNQUALIFIED75Xuxue Feng
1024Aika J VocelkaItaly2024-04-01Chapman, Ross E Esq NEGOTIATION99Asiya Javayant
1025Ivar D ShinkoArgentina2024-04-07Truhlar And Truhlar Attys NEGOTIATION86Amy Elsner
1026Francesco M AmigonArgentina2024-04-12Feiner Bros NEGOTIATION37Onyama Limba
1027Izzy S MaletJapan2024-04-07Buckley Miller Wright QUALIFIED2Stephen Shaw
1028Faith G CampainArgentina2024-04-17Chapman, Ross E Esq RENEWAL74Ioni Bowcher
1029Claire F FigeroaSpain2024-04-30Chanay, Jeffrey A Esq NEGOTIATION4Anna Fali
1030Greenwood R RulapaughBrazil2024-04-24Chapman, Ross E Esq NEW19Ioni Bowcher
1031Nicolas U DarakjyItaly2024-04-15Chapman, Ross E Esq NEGOTIATION60Bernardo Dominic
1032Claire M SaylorsItaly2024-04-06Morlong Associates QUALIFIED84Stephen Shaw
1033Clifford C RoysterJapan2024-04-21Chanay, Jeffrey A Esq QUALIFIED70Anna Fali
1034Tony B FollerIndia2024-04-15King, Christopher A Esq RENEWAL63Elwin Sharvill
1035Octavia A PoquetteArgentina2024-04-29Buckley Miller Wright NEW86Ivan Magalhaes
1036Tony F PoquetteGermany2024-04-10Feiner Bros RENEWAL26Onyama Limba
1037Kaitlin J RimArgentina2024-04-23Rousseaux, Michael Esq NEGOTIATION78Amy Elsner
1038Salvatore G RimFrance2024-04-28King, Christopher A Esq NEGOTIATION95Bernardo Dominic
1039Alejandro U FerenczGermany2024-04-04Chanay, Jeffrey A Esq QUALIFIED13Xuxue Feng
1040Mayumi I MaletJapan2024-04-28Chanay, Jeffrey A Esq PROPOSAL62Bernardo Dominic
1041Smith V BowleyFrance2024-04-30Rousseaux, Michael Esq NEGOTIATION34Anna Fali
1042Jennifer L InouyeArgentina2024-04-17Chemel, James L Cpa NEGOTIATION18Ioni Bowcher
1043Salvatore H SaylorsGermany2024-04-05Chemel, James L Cpa NEGOTIATION89Amy Elsner
1044David P KolmetzJapan2024-04-14King, Christopher A Esq PROPOSAL30Ivan Magalhaes
1045Antonio P AmigonRussia2024-04-29Feltz Printing Service QUALIFIED87Asiya Javayant
1046Mayumi O NickaBrazil2024-04-29Chemel, James L Cpa NEGOTIATION5Amy Elsner
1047Kadeem P FerenczJapan2024-04-10Rangoni Of Florence NEGOTIATION20Stephen Shaw
1048Juan T WaycottRussia2024-04-30Chanay, Jeffrey A Esq PROPOSAL91Amy Elsner
1049Munro F CaldareraUnited Kingdom2024-04-21Benton, John B Jr PROPOSAL42Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Arvin M MaletBrazilStephen Shaw QUALIFIED
Leja M CampainUnited KingdomAnna Fali QUALIFIED
Antonio E ChuiSpainOnyama Limba NEW
Cody U MarrierGermanyIoni Bowcher RENEWAL
Mayumi E ButtFranceIvan Magalhaes NEW
Maisha G IturbideUnited KingdomXuxue Feng QUALIFIED
Costa U OldroydFranceElwin Sharvill PROPOSAL
Mujtaba H MacleadUnited KingdomAsiya Javayant NEW
Jeanfrancois O PoquetteArgentinaAmy Elsner QUALIFIED
Francesco I SchemmerUnited KingdomIoni Bowcher RENEWAL
Antonio G IturbideGermanyOnyama Limba UNQUALIFIED
Kaitlin J DilliardArgentinaAnna Fali QUALIFIED
Clifford H MaletUnited KingdomStephen Shaw NEW
Adams X RoysterRussiaXuxue Feng PROPOSAL
Ashley B SaylorsGermanyStephen Shaw QUALIFIED
Mujtaba E GarufiIndiaBernardo Dominic PROPOSAL
Leja W GarufiArgentinaBernardo Dominic RENEWAL
Morrow T AmigonBrazilOnyama Limba UNQUALIFIED
Sinclair Q SlusarskiFranceIvan Magalhaes NEGOTIATION
Maria K ShinkoCanadaAsiya Javayant QUALIFIED
Aika T StockhamUnited KingdomAnna Fali NEGOTIATION
Maria M FlosiIndiaAnna Fali RENEWAL
Izzy L ShinkoItalyAmy Elsner QUALIFIED
Kadeem Y GlickJapanAnna Fali UNQUALIFIED
Aditya P FollerArgentinaAsiya Javayant PROPOSAL
Alejandro U CampainBrazilElwin Sharvill NEGOTIATION
Misaki U OldroydFranceAnna Fali NEW
Antonio V NestleIndiaBernardo Dominic NEW
Costa W NestleCanadaXuxue Feng RENEWAL
Jefferson B BowleyAustraliaAsiya Javayant UNQUALIFIED
Mujtaba E StockhamJapanBernardo Dominic UNQUALIFIED
Munro K TollnerItalyOnyama Limba NEGOTIATION
Clifford K RoysterGermanyStephen Shaw UNQUALIFIED
Deepesh N CampainArgentinaStephen Shaw NEGOTIATION
Tony B RulapaughCanadaStephen Shaw PROPOSAL
Johnson A PerinSpainXuxue Feng UNQUALIFIED
Aika N GillianUnited KingdomIvan Magalhaes PROPOSAL
Isabel S VenereBrazilXuxue Feng QUALIFIED
Mayumi M WhobreyRussiaAsiya Javayant PROPOSAL
Mayumi V TollnerGermanyXuxue Feng NEGOTIATION
Misaki N MorascaFranceElwin Sharvill RENEWAL
Izzy S BowleyArgentinaIvan Magalhaes NEW
Izzy I GauchoUnited KingdomBernardo Dominic QUALIFIED
Mujtaba B VenereFranceXuxue Feng UNQUALIFIED
Chavez D CaudyAustraliaBernardo Dominic PROPOSAL
Smith D DoeGermanyAnna Fali NEW
Ivar Q RulapaughBrazilStephen Shaw NEGOTIATION
Aika Z KuskoArgentinaIvan Magalhaes RENEWAL
Stacey W SlusarskiSpainIvan Magalhaes QUALIFIED
Munro K NestleCanadaAsiya Javayant QUALIFIED
Frozen Columns
Name
Wickens O Ostrosky
Sinclair H Bolognia
Nicolas T Malet
Jennifer P Nestle
Misaki F Butt
Salvatore A Flosi
Maisha J Whobrey
Nicolas N Kolmetz
Misaki E Maclead
Maisha J Morasca
Morrow F Garufi
Morrow N Malet
Izzy H Kolmetz
Francesco Z Paprocki
Wickens E Slusarski
Chavez J Malet
Misaki J Stenseth
Antonio I Malet
Darci H Amigon
Munro G Stockham
David M Sergi
Rodrigues F Briddick
Jones F Stenseth
Ivar K Amigon
Ivar V Whobrey
Aruna L Figeroa
Adams G Flosi
Claire L Bowley
Maria A Stenseth
Emily W Ferencz
Clifford O Chui
Wickens V Butt
Johnson C Nicka
Morrow X Dilliard
David V Foller
David F Venere
Stacey M Gaucho
Misaki T Bowley
Ricardo J Briddick
Maisha Q Oldroyd
Isabel G Whobrey
Leja U Chui
Tony N Stenseth
Aika X Ferencz
Jefferson H Campain
Maisha Q Iturbide
Silvio Y Foller
Faith C Sergi
Clifford K Briddick
Leon W Gillian
IdCountryDate
1000Japan2024-04-25
1001Germany2024-04-09
1002Japan2024-04-01
1003France2024-04-25
1004Canada2024-04-13
1005Canada2024-04-25
1006Japan2024-04-03
1007Japan2024-04-17
1008Italy2024-04-27
1009Japan2024-04-10
1010Canada2024-04-25
1011Canada2024-04-01
1012Argentina2024-04-16
1013India2024-04-01
1014France2024-04-07
1015Spain2024-04-14
1016Spain2024-04-08
1017Australia2024-04-03
1018Germany2024-04-22
1019Brazil2024-04-20
1020Brazil2024-04-02
1021Canada2024-04-13
1022Brazil2024-04-29
1023France2024-04-08
1024Russia2024-04-04
1025Japan2024-04-30
1026Germany2024-04-18
1027Italy2024-04-24
1028Italy2024-04-26
1029Italy2024-04-12
1030Canada2024-04-11
1031Italy2024-04-19
1032United Kingdom2024-04-13
1033India2024-04-14
1034France2024-04-12
1035Argentina2024-04-13
1036Brazil2024-04-24
1037United Kingdom2024-04-15
1038Japan2024-04-25
1039France2024-04-19
1040Brazil2024-04-26
1041Argentina2024-04-01
1042France2024-04-29
1043Argentina2024-04-29
1044India2024-04-25
1045Argentina2024-04-23
1046Argentina2024-04-19
1047Japan2024-04-26
1048Germany2024-04-26
1049Russia2024-04-29

On-Demand Data

NameIdCountryDate
Aika F Ruta1000India2024-04-14
Jefferson V Stockham1001France2024-04-24
Antonio H Marrier1002Germany2024-04-10
Costa V Maclead1003Canada2024-04-19
Jeanfrancois M Maclead1004Brazil2024-04-29
Chavez T Whobrey1005Germany2024-04-26
Morrow W Nestle1006Australia2024-04-04
Francesco E Inouye1007Canada2024-04-25
Leon Y Marrier1008Canada2024-04-02
Cody Q Whobrey1009Spain2024-04-01
Izzy M Kolmetz1010Russia2024-04-21
Smith B Malet1011Argentina2024-04-06
Jeanfrancois X Iturbide1012Spain2024-04-12
Francesco N Albares1013Spain2024-04-22
Stacey Q Vocelka1014Germany2024-04-17
Francesco S Wieser1015Japan2024-04-29
Juan X Caldarera1016France2024-04-04
Ivar B Marrier1017Spain2024-04-03
Wickens P Paprocki1018Germany2024-04-22
Rodrigues K Foller1019Argentina2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas K PoquetteGermanyIoni Bowcher RENEWAL
Kaitlin I ButtJapanOnyama Limba NEGOTIATION
Aika D SchemmerFranceAnna Fali NEGOTIATION
Ricardo Z DoeRussiaAnna Fali PROPOSAL
Nicolas F NickaRussiaElwin Sharvill RENEWAL
Faith L RutaCanadaStephen Shaw UNQUALIFIED
Silvio B GlickSpainBernardo Dominic NEW
Leja U AmigonGermanyAnna Fali PROPOSAL
Juan O ChuiUnited KingdomAmy Elsner QUALIFIED
Izzy X PerinArgentinaElwin Sharvill PROPOSAL
Aruna W CaudyIndiaStephen Shaw QUALIFIED
Wickens U BowleyBrazilAsiya Javayant QUALIFIED
Clifford M FerenczAustraliaIoni Bowcher NEW
Ivar G RutaIndiaAsiya Javayant RENEWAL
Leja G RutaRussiaElwin Sharvill NEW
Alejandro V PaprockiBrazilIvan Magalhaes QUALIFIED
Alejandro M CaudyArgentinaStephen Shaw RENEWAL
Leja M SaylorsItalyStephen Shaw PROPOSAL
Juan I RimRussiaOnyama Limba NEGOTIATION
Antonio F VocelkaFranceBernardo Dominic NEW
David T KolmetzAustraliaAsiya Javayant NEGOTIATION
Stacey T AmigonBrazilStephen Shaw PROPOSAL
David F PoquetteUnited KingdomXuxue Feng PROPOSAL
Misaki K RoysterIndiaOnyama Limba NEGOTIATION
Octavia F WhobreyBrazilBernardo Dominic NEW
Aditya E GauchoFranceIvan Magalhaes RENEWAL
Costa N MaletAustraliaXuxue Feng NEW
Kaitlin P GarufiGermanyElwin Sharvill NEW
Ricardo H InouyeSpainXuxue Feng NEGOTIATION
Julie H InouyeUnited KingdomAsiya Javayant PROPOSAL
Smith I BologniaAustraliaBernardo Dominic NEGOTIATION
Ashley I MacleadSpainElwin Sharvill UNQUALIFIED
Tony L BologniaFranceXuxue Feng NEGOTIATION
Octavia Y SlusarskiItalyBernardo Dominic RENEWAL
Jennifer T BriddickItalyXuxue Feng PROPOSAL
Kadeem I SchemmerRussiaAmy Elsner NEW
Stacey E BologniaCanadaIvan Magalhaes NEGOTIATION
Wickens H MaletCanadaAmy Elsner NEW
Sinclair E MorascaBrazilIoni Bowcher NEGOTIATION
Deepesh K MaletFranceElwin Sharvill RENEWAL

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