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 E FollerAustraliaAnna Fali QUALIFIED
Ashley Z MacleadJapanIvan Magalhaes NEW
Silvio H InouyeSpainElwin Sharvill NEW
Rodrigues J MorascaSpainOnyama Limba QUALIFIED
Jeanfrancois M ChuiRussiaXuxue Feng QUALIFIED
Chavez P InouyeFranceAsiya Javayant NEGOTIATION
Kaitlin V ButtRussiaXuxue Feng PROPOSAL
Salvatore H MarrierArgentinaStephen Shaw NEGOTIATION
Smith U AlbaresIndiaIvan Magalhaes PROPOSAL
Jefferson I VocelkaItalyOnyama Limba QUALIFIED
Jones N NickaUnited KingdomElwin Sharvill QUALIFIED
Tony O SlusarskiSpainIoni Bowcher PROPOSAL
Izzy O GlickUnited KingdomBernardo Dominic UNQUALIFIED
Leon J InouyeIndiaStephen Shaw NEW
Johnson E SaylorsItalyBernardo Dominic UNQUALIFIED
Maria O VocelkaGermanyElwin Sharvill NEW
Johnson B ChuiRussiaStephen Shaw QUALIFIED
Salvatore I MorascaAustraliaIvan Magalhaes QUALIFIED
Cody E SlusarskiIndiaAnna Fali UNQUALIFIED
Jefferson J SergiIndiaBernardo Dominic NEW
Jennifer R FollerUnited KingdomIvan Magalhaes NEGOTIATION
Darci Q NestleAustraliaAsiya Javayant QUALIFIED
Jones T KuskoBrazilXuxue Feng NEGOTIATION
Jennifer Y GarufiIndiaStephen Shaw RENEWAL
Antonio V BowleySpainBernardo Dominic UNQUALIFIED
Maria O DarakjyRussiaIoni Bowcher RENEWAL
Wickens A FigeroaCanadaStephen Shaw UNQUALIFIED
Leja E DoeUnited KingdomAsiya Javayant RENEWAL
Rodrigues R KolmetzGermanyAnna Fali QUALIFIED
Darci D MaletItalyElwin Sharvill QUALIFIED
Antonio J CampainSpainBernardo Dominic PROPOSAL
Jefferson C RoysterAustraliaAnna Fali PROPOSAL
Jeanfrancois X ShinkoRussiaXuxue Feng QUALIFIED
Cody C GlickCanadaXuxue Feng NEGOTIATION
Maisha F IturbideBrazilElwin Sharvill UNQUALIFIED
Jennifer O VocelkaIndiaStephen Shaw PROPOSAL
Munro K GarufiArgentinaOnyama Limba QUALIFIED
Aditya S OstroskyGermanyIoni Bowcher NEW
Leon B IturbideItalyOnyama Limba NEGOTIATION
Octavia H ShinkoJapanAnna Fali NEGOTIATION
Costa F RutaBrazilElwin Sharvill QUALIFIED
Jefferson L WaycottArgentinaAmy Elsner NEW
Jones I StensethRussiaIoni Bowcher UNQUALIFIED
Kadeem R FigeroaJapanAnna Fali QUALIFIED
Salvatore U NickaFranceXuxue Feng NEGOTIATION
Munro O GlickArgentinaElwin Sharvill NEGOTIATION
Costa E WaycottUnited KingdomAnna Fali UNQUALIFIED
Octavia L SergiCanadaBernardo Dominic PROPOSAL
Rodrigues Y IturbideBrazilElwin Sharvill NEGOTIATION
Aditya F KolmetzCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro M ShinkoCanadaElwin Sharvill UNQUALIFIED
Alejandro K AmigonUnited KingdomAmy Elsner PROPOSAL
Julie Q GarufiGermanyOnyama Limba NEGOTIATION
Greenwood F TollnerAustraliaBernardo Dominic PROPOSAL
Alejandro A IturbideBrazilStephen Shaw NEW
Julie I MorascaGermanyElwin Sharvill NEW
Alejandro C ButtIndiaIvan Magalhaes PROPOSAL
Chavez E AmigonUnited KingdomOnyama Limba NEGOTIATION
Alejandro V MacleadItalyOnyama Limba RENEWAL
James I CampainCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood X MaletBrazil2024-04-01Commercial Press PROPOSAL10Ioni Bowcher
1001Isabel U ButtArgentina2024-04-18Rousseaux, Michael Esq UNQUALIFIED45Asiya Javayant
1002Costa L GarufiItaly2024-04-19Truhlar And Truhlar Attys UNQUALIFIED82Amy Elsner
1003Smith E ShinkoArgentina2024-04-24Chapman, Ross E Esq RENEWAL95Amy Elsner
1004David E FollerGermany2024-04-05Morlong Associates NEW75Bernardo Dominic
1005Misaki S OstroskyIndia2024-04-08Feltz Printing Service NEGOTIATION72Xuxue Feng
1006Claire G FigeroaItaly2024-04-06Feltz Printing Service NEGOTIATION54Onyama Limba
1007Salvatore A DilliardGermany2024-04-10Commercial Press NEGOTIATION84Xuxue Feng
1008Aditya G FollerArgentina2024-04-22Rangoni Of Florence PROPOSAL84Amy Elsner
1009Johnson H RoysterGermany2024-04-26Printing Dimensions UNQUALIFIED62Stephen Shaw
1010Salvatore S WhobreyRussia2024-04-13Chapman, Ross E Esq NEW5Stephen Shaw
1011Emily W CampainGermany2024-04-02Dorl, James J Esq QUALIFIED69Asiya Javayant
1012Leon Z SlusarskiIndia2024-04-07Dorl, James J Esq UNQUALIFIED99Stephen Shaw
1013Chavez D AmigonUnited Kingdom2024-04-12Rangoni Of Florence NEW86Elwin Sharvill
1014Rodrigues B SlusarskiBrazil2024-04-05Truhlar And Truhlar Attys UNQUALIFIED16Elwin Sharvill
1015Tony I StockhamItaly2024-04-10Chapman, Ross E Esq PROPOSAL77Ioni Bowcher
1016Rodrigues D NestleSpain2024-04-21Feiner Bros QUALIFIED16Amy Elsner
1017Leon F DoeRussia2024-04-23Commercial Press NEGOTIATION19Ioni Bowcher
1018Jefferson E PaprockiUnited Kingdom2024-04-06Commercial Press NEGOTIATION7Ioni Bowcher
1019Murillo C OldroydUnited Kingdom2024-03-29Benton, John B Jr NEGOTIATION55Ioni Bowcher
1020Claire J CaldareraCanada2024-04-11Chapman, Ross E Esq RENEWAL95Xuxue Feng
1021Jefferson E DoeAustralia2024-04-10Chanay, Jeffrey A Esq QUALIFIED43Amy Elsner
1022Nicolas R VenereGermany2024-04-26Commercial Press RENEWAL61Asiya Javayant
1023Cody Z WhobreyFrance2024-04-01Buckley Miller Wright UNQUALIFIED32Ivan Magalhaes
1024Greenwood N StockhamCanada2024-04-06Chanay, Jeffrey A Esq NEGOTIATION68Amy Elsner
1025Jones U RimCanada2024-04-17Dorl, James J Esq NEW50Stephen Shaw
1026Darci O StockhamGermany2024-04-07Truhlar And Truhlar Attys RENEWAL30Elwin Sharvill
1027Clifford X PerinBrazil2024-04-16Benton, John B Jr NEW42Amy Elsner
1028Kaitlin K NickaJapan2024-04-16Chapman, Ross E Esq RENEWAL69Bernardo Dominic
1029Faith K GauchoRussia2024-04-17Printing Dimensions UNQUALIFIED18Onyama Limba
1030Arvin A InouyeRussia2024-04-12Rousseaux, Michael Esq NEW61Onyama Limba
1031Isabel A InouyeUnited Kingdom2024-04-02Truhlar And Truhlar Attys NEGOTIATION18Ioni Bowcher
1032Stacey Q MacleadItaly2024-04-21Chemel, James L Cpa PROPOSAL34Ivan Magalhaes
1033Morrow C AlbaresRussia2024-04-02Chemel, James L Cpa NEW48Anna Fali
1034Rodrigues R CaldareraBrazil2024-04-25Chemel, James L Cpa RENEWAL17Bernardo Dominic
1035Morrow K DilliardBrazil2024-04-22Feltz Printing Service UNQUALIFIED52Onyama Limba
1036Leon D PaprockiJapan2024-04-20Rousseaux, Michael Esq RENEWAL3Ioni Bowcher
1037Ashley Y SchemmerSpain2024-04-01Chemel, James L Cpa NEW92Elwin Sharvill
1038Arvin E MaletAustralia2024-04-19Rangoni Of Florence NEW88Ivan Magalhaes
1039Adams E AlbaresRussia2024-04-21Buckley Miller Wright RENEWAL40Asiya Javayant
1040Silvio M VocelkaArgentina2024-04-15Truhlar And Truhlar Attys RENEWAL60Asiya Javayant
1041Sinclair Y IturbideCanada2024-04-23Morlong Associates NEW52Xuxue Feng
1042Wickens S BowleyCanada2024-03-31Benton, John B Jr UNQUALIFIED75Xuxue Feng
1043Faith Q RulapaughRussia2024-04-02Feltz Printing Service NEW7Ivan Magalhaes
1044Claire N CampainJapan2024-03-30Printing Dimensions NEW84Onyama Limba
1045Octavia V SlusarskiGermany2024-04-06Chapman, Ross E Esq NEW80Stephen Shaw
1046Ivar I FollerIndia2024-04-08Chemel, James L Cpa NEW54Ivan Magalhaes
1047Stacey B SergiBrazil2024-04-06Chapman, Ross E Esq PROPOSAL19Elwin Sharvill
1048Claire Q SchemmerBrazil2024-04-05Buckley Miller Wright RENEWAL35Bernardo Dominic
1049Rodrigues Q SlusarskiFrance2024-04-15Morlong Associates RENEWAL52Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Chavez B GlickItalyXuxue Feng NEGOTIATION
Murillo W BowleyRussiaStephen Shaw NEGOTIATION
Francesco B TollnerIndiaAsiya Javayant QUALIFIED
Darci V KuskoSpainAmy Elsner QUALIFIED
Smith A KolmetzGermanyIoni Bowcher QUALIFIED
Deepesh R WieserItalyBernardo Dominic NEW
Aruna P MaletSpainIvan Magalhaes NEGOTIATION
Juan I MacleadCanadaIoni Bowcher RENEWAL
Jennifer E MaletFranceStephen Shaw RENEWAL
Jeanfrancois T PerinIndiaAsiya Javayant QUALIFIED
Smith L DarakjyItalyIoni Bowcher RENEWAL
Chavez Y StockhamRussiaOnyama Limba NEW
Aditya N WhobreyAustraliaAsiya Javayant NEGOTIATION
Aruna A WieserGermanyAsiya Javayant NEGOTIATION
Smith S OstroskyItalyAnna Fali NEGOTIATION
Aditya E PerinSpainIoni Bowcher NEW
Alejandro L RoysterIndiaElwin Sharvill NEW
Silvio I CaudyJapanAmy Elsner NEGOTIATION
David T MarrierSpainOnyama Limba NEW
Mujtaba I MarrierArgentinaAnna Fali RENEWAL
Silvio I PaprockiAustraliaBernardo Dominic PROPOSAL
Arvin E SchemmerRussiaIvan Magalhaes NEGOTIATION
Tony E BowleySpainIvan Magalhaes NEGOTIATION
Antonio N OldroydBrazilStephen Shaw UNQUALIFIED
Octavia C VenereUnited KingdomAnna Fali UNQUALIFIED
Clifford D TollnerGermanyXuxue Feng PROPOSAL
Salvatore J ButtSpainIoni Bowcher RENEWAL
Murillo F MaletRussiaBernardo Dominic NEW
Johnson B RoysterRussiaAsiya Javayant NEGOTIATION
Leon A InouyeCanadaAmy Elsner QUALIFIED
Rodrigues B GillianFranceAnna Fali NEW
Morrow Y RutaCanadaAnna Fali RENEWAL
Nicolas D MaletSpainIvan Magalhaes NEW
Ivar B PerinArgentinaIvan Magalhaes PROPOSAL
Darci X KolmetzArgentinaIoni Bowcher RENEWAL
Aruna S SchemmerGermanyStephen Shaw PROPOSAL
Octavia Y GarufiSpainIvan Magalhaes RENEWAL
Octavia H GlickAustraliaStephen Shaw PROPOSAL
Leon P FlosiUnited KingdomElwin Sharvill NEGOTIATION
Chavez L WieserItalyStephen Shaw NEW
Misaki N CaldareraGermanyXuxue Feng UNQUALIFIED
Ricardo Q RimFranceElwin Sharvill RENEWAL
Rodrigues X WaycottAustraliaOnyama Limba PROPOSAL
Mujtaba S FollerItalyAmy Elsner QUALIFIED
Ivar T PoquetteItalyAsiya Javayant NEW
Wickens P GarufiUnited KingdomBernardo Dominic RENEWAL
Kadeem X OstroskyArgentinaOnyama Limba NEW
Kaitlin J GillianUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba A BologniaRussiaIvan Magalhaes PROPOSAL
Salvatore F IturbideAustraliaIvan Magalhaes NEW
Frozen Columns
Name
Deepesh S Amigon
Alejandro C Schemmer
Antonio V Briddick
Rodrigues Q Glick
David B Stenseth
Francesco V Ostrosky
Smith C Whobrey
Kadeem N Stenseth
Izzy M Nicka
Leja E Poquette
Juan V Slusarski
Darci W Chui
Juan L Darakjy
Clifford N Nicka
Costa Q Bolognia
Maria Q Nestle
Jones Y Saylors
Alejandro P Rulapaugh
Juan L Caudy
Sinclair I Rulapaugh
Mujtaba P Stenseth
James A Amigon
Francesco L Chui
Faith J Foller
Jones M Gaucho
Munro U Ostrosky
Claire Y Gillian
Julie M Malet
James Y Kolmetz
Clifford I Kusko
Julie G Malet
Emily Y Malet
Alejandro Y Slusarski
Francesco E Gillian
Maria I Oldroyd
Ivar J Venere
Leja C Poquette
Deepesh C Stockham
Juan W Shinko
Aika U Gaucho
Stacey A Schemmer
Maisha H Glick
Costa U Stockham
Wickens F Royster
James L Dilliard
Leon P Ruta
Nicolas Z Rim
Octavia I Stenseth
David T Whobrey
Antonio A Rim
IdCountryDate
1000France2024-04-27
1001Italy2024-04-20
1002Spain2024-04-02
1003Spain2024-04-14
1004Argentina2024-04-24
1005Brazil2024-04-23
1006United Kingdom2024-04-08
1007France2024-04-26
1008Japan2024-04-11
1009Russia2024-03-31
1010Spain2024-04-13
1011India2024-04-18
1012Argentina2024-04-09
1013India2024-04-18
1014France2024-04-12
1015Spain2024-04-17
1016Argentina2024-04-24
1017Italy2024-04-20
1018Russia2024-04-03
1019Spain2024-04-09
1020Brazil2024-04-13
1021Germany2024-04-17
1022Russia2024-04-21
1023Canada2024-04-02
1024Spain2024-04-07
1025United Kingdom2024-04-03
1026Germany2024-04-03
1027Italy2024-04-18
1028Brazil2024-04-06
1029India2024-04-02
1030France2024-04-10
1031Argentina2024-04-06
1032Australia2024-04-22
1033United Kingdom2024-04-16
1034Australia2024-04-02
1035Japan2024-04-10
1036Spain2024-04-03
1037Brazil2024-04-26
1038France2024-04-05
1039Argentina2024-04-20
1040Spain2024-04-04
1041Canada2024-04-25
1042Brazil2024-04-21
1043Germany2024-04-18
1044Australia2024-04-14
1045India2024-04-11
1046Spain2024-04-15
1047India2024-04-20
1048Brazil2024-04-08
1049Brazil2024-04-05

On-Demand Data

NameIdCountryDate
Aruna P Saylors1000Canada2024-04-12
Arvin U Gillian1001France2024-04-03
Jefferson S Nicka1002Russia2024-04-07
Munro Z Maclead1003United Kingdom2024-04-10
Nicolas O Poquette1004United Kingdom2024-04-14
Isabel G Kolmetz1005United Kingdom2024-04-21
Munro S Shinko1006Argentina2024-04-12
Leon X Foller1007India2024-04-07
Clifford E Gillian1008United Kingdom2024-04-23
Deepesh H Vocelka1009United Kingdom2024-04-11
Salvatore E Caudy1010Japan2024-04-25
Clifford U Iturbide1011Russia2024-04-10
Juan S Nestle1012Argentina2024-04-05
Juan W Paprocki1013Australia2024-04-23
Clifford Q Flosi1014Argentina2024-04-11
Salvatore O Venere1015Japan2024-04-16
Octavia C Morasca1016United Kingdom2024-04-12
Sinclair X Paprocki1017India2024-04-20
Stacey O Sergi1018Argentina2024-04-08
Kadeem S Albares1019Japan2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya G PaprockiItalyOnyama Limba NEGOTIATION
Tony F MorascaIndiaAsiya Javayant UNQUALIFIED
Johnson G RutaIndiaElwin Sharvill RENEWAL
Maisha K StockhamCanadaAnna Fali QUALIFIED
Silvio U SaylorsIndiaOnyama Limba NEGOTIATION
Ricardo H DilliardSpainAmy Elsner QUALIFIED
Aika B ButtItalyBernardo Dominic UNQUALIFIED
Morrow Q FigeroaJapanAsiya Javayant PROPOSAL
Morrow O RoysterAustraliaIvan Magalhaes QUALIFIED
Mujtaba M GarufiAustraliaStephen Shaw QUALIFIED
Juan V KuskoFranceIoni Bowcher QUALIFIED
Darci G FigeroaJapanBernardo Dominic QUALIFIED
Isabel W SergiCanadaIoni Bowcher QUALIFIED
Misaki C FlosiFranceBernardo Dominic RENEWAL
Johnson I ButtGermanyOnyama Limba PROPOSAL
Julie P OldroydRussiaAnna Fali UNQUALIFIED
Leja D NestleAustraliaAsiya Javayant NEW
Greenwood T RimUnited KingdomAmy Elsner PROPOSAL
Aika J InouyeIndiaAmy Elsner NEW
Ashley K VenereAustraliaElwin Sharvill RENEWAL
Munro Y PerinIndiaAmy Elsner QUALIFIED
Chavez L ChuiRussiaAnna Fali NEGOTIATION
Stacey C MorascaCanadaIoni Bowcher NEW
Jones T RimGermanyElwin Sharvill UNQUALIFIED
Greenwood W MaletRussiaXuxue Feng RENEWAL
Silvio X NestleUnited KingdomAmy Elsner NEW
Arvin Y TollnerArgentinaIoni Bowcher NEGOTIATION
Stacey U MarrierUnited KingdomXuxue Feng NEW
Clifford C KuskoJapanAsiya Javayant NEGOTIATION
Morrow W WhobreyJapanOnyama Limba QUALIFIED
Aditya H RutaBrazilXuxue Feng QUALIFIED
Misaki R StensethBrazilAsiya Javayant PROPOSAL
Tony W VocelkaBrazilAnna Fali QUALIFIED
Munro Z SergiFranceBernardo Dominic NEGOTIATION
Nicolas K DilliardItalyAsiya Javayant NEW
Chavez O StensethBrazilXuxue Feng QUALIFIED
Nicolas P StockhamBrazilXuxue Feng RENEWAL
Alejandro U RutaSpainIvan Magalhaes NEGOTIATION
Ivar R PoquetteUnited KingdomStephen Shaw NEGOTIATION
Smith T WieserUnited KingdomBernardo Dominic 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>