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
James Z MacleadItalyStephen Shaw QUALIFIED
Darci O VenereFranceOnyama Limba QUALIFIED
Ashley L MarrierCanadaOnyama Limba NEGOTIATION
Jeanfrancois I StensethItalyIoni Bowcher NEW
James M OldroydJapanXuxue Feng NEGOTIATION
Sinclair R SergiGermanyAmy Elsner PROPOSAL
Maisha I SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Ashley R GauchoGermanyXuxue Feng NEW
Sinclair B PerinCanadaIvan Magalhaes UNQUALIFIED
Aika N AlbaresItalyStephen Shaw NEGOTIATION
Ivar M ShinkoArgentinaAsiya Javayant NEGOTIATION
Ashley O KolmetzBrazilBernardo Dominic NEW
Murillo N TollnerCanadaOnyama Limba NEGOTIATION
Wickens H FerenczFranceAmy Elsner QUALIFIED
Munro O BriddickAustraliaElwin Sharvill RENEWAL
Arvin O IturbideRussiaIoni Bowcher UNQUALIFIED
Deepesh H SlusarskiItalyIvan Magalhaes PROPOSAL
Kaitlin D ButtBrazilAnna Fali QUALIFIED
Tony D WieserIndiaIvan Magalhaes RENEWAL
Tony U StensethSpainStephen Shaw NEW
Izzy E MaletItalyIvan Magalhaes QUALIFIED
Isabel P NestleSpainIoni Bowcher NEW
Isabel X MorascaAustraliaIvan Magalhaes PROPOSAL
David Z RoysterBrazilElwin Sharvill QUALIFIED
Silvio N FerenczCanadaOnyama Limba RENEWAL
David V PoquetteIndiaBernardo Dominic NEGOTIATION
Faith Y PoquetteSpainOnyama Limba UNQUALIFIED
Francesco H RoysterSpainAnna Fali QUALIFIED
Jefferson B NickaRussiaAsiya Javayant UNQUALIFIED
Chavez I PaprockiAustraliaAmy Elsner UNQUALIFIED
Smith Q CampainBrazilIoni Bowcher NEW
Mujtaba R SchemmerRussiaBernardo Dominic QUALIFIED
Arvin W StockhamIndiaAmy Elsner QUALIFIED
Aruna A GarufiAustraliaOnyama Limba NEW
Greenwood X VenereSpainStephen Shaw NEGOTIATION
Rodrigues O OstroskyGermanyBernardo Dominic UNQUALIFIED
Stacey D StockhamRussiaXuxue Feng UNQUALIFIED
Cody L TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Ivar Z RutaArgentinaBernardo Dominic RENEWAL
Alejandro Q WieserRussiaXuxue Feng UNQUALIFIED
Chavez M BologniaUnited KingdomXuxue Feng UNQUALIFIED
Antonio J SergiRussiaAmy Elsner QUALIFIED
Murillo J FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo P FlosiSpainOnyama Limba RENEWAL
Ivar H StensethSpainAmy Elsner QUALIFIED
Leja A WaycottGermanyAnna Fali RENEWAL
Izzy H IturbideIndiaAsiya Javayant NEW
Ricardo L CampainRussiaAnna Fali PROPOSAL
Kadeem U KuskoFranceStephen Shaw QUALIFIED
Cody C PoquetteJapanIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo Q StensethIndiaOnyama Limba QUALIFIED
Salvatore O OstroskyIndiaOnyama Limba RENEWAL
Leon Y GillianBrazilIvan Magalhaes RENEWAL
Maria W SergiFranceAmy Elsner NEW
Darci D RulapaughGermanyElwin Sharvill RENEWAL
Jennifer S AlbaresJapanAsiya Javayant RENEWAL
Morrow I WieserFranceStephen Shaw PROPOSAL
Costa V CampainJapanBernardo Dominic RENEWAL
Morrow F PerinItalyStephen Shaw RENEWAL
Mayumi X GauchoCanadaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily T GlickUnited Kingdom2024-04-24Rangoni Of Florence UNQUALIFIED44Amy Elsner
1001Octavia J RimAustralia2024-04-28Chapman, Ross E Esq NEW53Onyama Limba
1002Murillo O WieserArgentina2024-04-10Truhlar And Truhlar Attys NEW23Ioni Bowcher
1003Jones B ShinkoCanada2024-04-04Feltz Printing Service UNQUALIFIED37Elwin Sharvill
1004Antonio L TollnerSpain2024-04-14Rangoni Of Florence PROPOSAL4Bernardo Dominic
1005Emily R SergiCanada2024-04-27Benton, John B Jr NEGOTIATION34Xuxue Feng
1006Mujtaba E VocelkaFrance2024-04-06Buckley Miller Wright NEW18Stephen Shaw
1007Smith H ChuiArgentina2024-04-22Chanay, Jeffrey A Esq PROPOSAL67Onyama Limba
1008Emily W BowleyCanada2024-04-23Commercial Press RENEWAL65Elwin Sharvill
1009Kadeem P GarufiSpain2024-04-06Morlong Associates PROPOSAL2Anna Fali
1010Isabel N FerenczBrazil2024-04-28Morlong Associates QUALIFIED46Amy Elsner
1011Leja G ChuiBrazil2024-04-30Commercial Press NEW74Asiya Javayant
1012Stacey S MaletIndia2024-04-29Dorl, James J Esq UNQUALIFIED7Bernardo Dominic
1013Jennifer N MarrierItaly2024-04-02Chapman, Ross E Esq NEGOTIATION80Ioni Bowcher
1014Nicolas U BologniaIndia2024-04-19Rangoni Of Florence UNQUALIFIED64Ioni Bowcher
1015Darci W NickaSpain2024-04-27Morlong Associates NEGOTIATION80Asiya Javayant
1016Chavez G WhobreyUnited Kingdom2024-05-01Chanay, Jeffrey A Esq RENEWAL46Anna Fali
1017Faith V VocelkaArgentina2024-04-23Chemel, James L Cpa RENEWAL73Ivan Magalhaes
1018James V CampainGermany2024-04-04Dorl, James J Esq NEW19Asiya Javayant
1019Alejandro L RutaArgentina2024-04-02King, Christopher A Esq NEW1Anna Fali
1020Ivar O TollnerCanada2024-04-08Buckley Miller Wright QUALIFIED59Asiya Javayant
1021Tony M BologniaItaly2024-04-25Chemel, James L Cpa NEGOTIATION21Amy Elsner
1022Morrow W VocelkaArgentina2024-04-27Feltz Printing Service RENEWAL66Onyama Limba
1023Cody G FigeroaRussia2024-04-21Dorl, James J Esq QUALIFIED36Asiya Javayant
1024Kadeem Z FigeroaRussia2024-04-07Commercial Press PROPOSAL54Bernardo Dominic
1025Rodrigues K WaycottIndia2024-04-26Chemel, James L Cpa NEGOTIATION54Asiya Javayant
1026Emily D FollerRussia2024-04-05Chemel, James L Cpa NEGOTIATION68Amy Elsner
1027Arvin W GauchoArgentina2024-04-07Feltz Printing Service QUALIFIED21Ioni Bowcher
1028Greenwood S CaudyFrance2024-04-18Chapman, Ross E Esq QUALIFIED67Asiya Javayant
1029Francesco P FlosiUnited Kingdom2024-04-17Truhlar And Truhlar Attys NEGOTIATION39Bernardo Dominic
1030Wickens C SchemmerJapan2024-04-29Feiner Bros QUALIFIED39Bernardo Dominic
1031David P OstroskySpain2024-04-13Morlong Associates UNQUALIFIED29Onyama Limba
1032Francesco E DilliardCanada2024-04-13Rousseaux, Michael Esq NEW25Asiya Javayant
1033Isabel U CampainAustralia2024-04-21Commercial Press UNQUALIFIED24Amy Elsner
1034Claire I IturbideJapan2024-04-05Benton, John B Jr NEW93Ivan Magalhaes
1035Claire X CaudyBrazil2024-04-15Chanay, Jeffrey A Esq NEGOTIATION49Bernardo Dominic
1036Aika M StockhamCanada2024-04-05Rousseaux, Michael Esq UNQUALIFIED6Ioni Bowcher
1037Wickens T InouyeJapan2024-04-17Truhlar And Truhlar Attys PROPOSAL25Ioni Bowcher
1038Murillo V PoquetteBrazil2024-04-05Feltz Printing Service RENEWAL78Stephen Shaw
1039Arvin F MarrierIndia2024-04-20Morlong Associates RENEWAL5Asiya Javayant
1040Jones B DarakjyUnited Kingdom2024-04-10Commercial Press QUALIFIED22Ivan Magalhaes
1041Morrow D MarrierBrazil2024-04-08Buckley Miller Wright UNQUALIFIED57Xuxue Feng
1042Alejandro K GarufiArgentina2024-04-12Commercial Press UNQUALIFIED22Asiya Javayant
1043Antonio T AlbaresBrazil2024-04-07Commercial Press NEGOTIATION50Anna Fali
1044Jeanfrancois L GlickArgentina2024-04-10Printing Dimensions NEW31Ioni Bowcher
1045Julie L AmigonIndia2024-04-12Feiner Bros UNQUALIFIED23Asiya Javayant
1046Mayumi E IturbideIndia2024-04-14Feiner Bros NEW60Asiya Javayant
1047Faith P RoysterArgentina2024-04-24Rousseaux, Michael Esq NEGOTIATION7Elwin Sharvill
1048Isabel D MarrierUnited Kingdom2024-04-09Buckley Miller Wright PROPOSAL78Elwin Sharvill
1049Octavia O SlusarskiArgentina2024-04-02Feiner Bros NEGOTIATION51Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Greenwood U IturbideIndiaXuxue Feng NEGOTIATION
Chavez G DarakjyIndiaAnna Fali RENEWAL
Tony C RoysterAustraliaOnyama Limba NEW
Juan G BowleyCanadaXuxue Feng NEW
Greenwood G BowleyRussiaIoni Bowcher NEW
Aruna L WaycottAustraliaElwin Sharvill NEW
Cody L ChuiArgentinaAsiya Javayant UNQUALIFIED
Arvin L SlusarskiBrazilAmy Elsner NEGOTIATION
Stacey B AlbaresUnited KingdomAmy Elsner QUALIFIED
Emily U TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues X InouyeJapanStephen Shaw NEW
Cody N BriddickArgentinaAmy Elsner PROPOSAL
James Q NickaBrazilXuxue Feng PROPOSAL
Francesco I SergiAustraliaIoni Bowcher NEGOTIATION
Tony Y MaletFranceIvan Magalhaes NEGOTIATION
Johnson D StensethJapanIoni Bowcher QUALIFIED
Deepesh X FigeroaBrazilIoni Bowcher PROPOSAL
Silvio A FollerCanadaIoni Bowcher NEW
Maisha R GarufiAustraliaXuxue Feng QUALIFIED
Isabel N DilliardCanadaStephen Shaw RENEWAL
Alejandro P WhobreySpainBernardo Dominic NEGOTIATION
Murillo C SergiIndiaAnna Fali NEGOTIATION
Tony O ShinkoUnited KingdomBernardo Dominic UNQUALIFIED
Isabel R GarufiGermanyBernardo Dominic RENEWAL
David T StockhamAustraliaBernardo Dominic NEGOTIATION
Cody P GarufiRussiaBernardo Dominic RENEWAL
Kadeem Z DarakjyJapanIvan Magalhaes RENEWAL
Mujtaba Y OldroydJapanElwin Sharvill NEW
Deepesh M WhobreyIndiaAsiya Javayant QUALIFIED
Arvin N ButtArgentinaIoni Bowcher NEGOTIATION
Salvatore A BologniaAustraliaElwin Sharvill PROPOSAL
Leja B IturbideGermanyOnyama Limba QUALIFIED
Maria O VenereRussiaStephen Shaw PROPOSAL
Isabel U VocelkaRussiaXuxue Feng UNQUALIFIED
Adams O SchemmerJapanOnyama Limba RENEWAL
Murillo M NestleUnited KingdomOnyama Limba NEGOTIATION
Johnson I WieserAustraliaElwin Sharvill RENEWAL
Leon P GillianAustraliaAmy Elsner PROPOSAL
Octavia P PaprockiBrazilAsiya Javayant RENEWAL
Aika W SlusarskiRussiaStephen Shaw NEW
Tony V DarakjyIndiaBernardo Dominic NEW
Kadeem Z RoysterFranceElwin Sharvill RENEWAL
Costa R CampainUnited KingdomAsiya Javayant QUALIFIED
Ricardo X DilliardBrazilAsiya Javayant QUALIFIED
Aruna K CaudyAustraliaAnna Fali RENEWAL
David E DoeAustraliaXuxue Feng NEGOTIATION
Smith Q RimCanadaIvan Magalhaes NEW
Izzy M GlickIndiaOnyama Limba QUALIFIED
Faith D PoquetteIndiaAnna Fali QUALIFIED
Juan V SaylorsJapanAsiya Javayant RENEWAL
Frozen Columns
Name
Darci B Tollner
Johnson T Caldarera
Julie F Butt
Antonio F Butt
Leon T Foller
Jennifer B Oldroyd
Isabel E Darakjy
Rodrigues G Doe
Jefferson B Nicka
Emily R Ostrosky
Ivar C Butt
Mujtaba Z Darakjy
Aruna V Vocelka
Maisha I Kolmetz
Octavia L Caldarera
Salvatore I Caudy
Jeanfrancois S Ostrosky
James X Darakjy
Deepesh O Schemmer
Tony J Malet
Kadeem N Ruta
Jefferson X Shinko
Stacey L Tollner
Salvatore J Shinko
Kadeem A Morasca
Cody D Caudy
Claire H Caldarera
Juan R Garufi
Aruna N Bolognia
Faith W Stenseth
Smith H Amigon
Maria P Maclead
Murillo K Marrier
Johnson F Paprocki
Morrow F Oldroyd
David H Perin
Claire L Maclead
Faith O Bolognia
Adams R Campain
Misaki D Tollner
Aditya R Iturbide
Sinclair X Royster
James V Dilliard
Leja W Oldroyd
Aditya C Garufi
Emily F Bolognia
Rodrigues A Vocelka
Munro L Figeroa
Aditya W Rulapaugh
David H Bolognia
IdCountryDate
1000Japan2024-04-09
1001Italy2024-04-15
1002Australia2024-04-27
1003Argentina2024-04-20
1004Canada2024-04-06
1005Spain2024-04-19
1006Japan2024-04-09
1007Spain2024-04-27
1008France2024-04-16
1009Argentina2024-04-07
1010Japan2024-04-26
1011Russia2024-04-02
1012Japan2024-04-27
1013Canada2024-04-04
1014Germany2024-04-30
1015Germany2024-04-11
1016India2024-04-08
1017France2024-04-11
1018Italy2024-04-23
1019Russia2024-05-01
1020Canada2024-04-26
1021Germany2024-04-19
1022Brazil2024-04-13
1023Italy2024-04-04
1024Italy2024-04-08
1025Italy2024-04-15
1026Argentina2024-04-27
1027Canada2024-04-02
1028Canada2024-04-18
1029Argentina2024-04-02
1030Russia2024-04-04
1031Spain2024-04-26
1032Canada2024-04-24
1033Italy2024-04-30
1034Russia2024-04-19
1035Australia2024-04-03
1036Canada2024-04-29
1037Australia2024-04-18
1038Brazil2024-04-20
1039Germany2024-04-28
1040United Kingdom2024-04-28
1041Australia2024-04-28
1042Japan2024-04-15
1043Canada2024-04-26
1044Spain2024-04-10
1045Japan2024-04-28
1046India2024-04-14
1047India2024-04-22
1048Italy2024-04-07
1049Canada2024-04-12

On-Demand Data

NameIdCountryDate
Sinclair D Stenseth1000United Kingdom2024-04-29
Silvio P Darakjy1001United Kingdom2024-04-20
Claire W Shinko1002United Kingdom2024-04-16
Costa N Oldroyd1003Argentina2024-04-04
Maisha W Chui1004Russia2024-04-25
Leon Q Rulapaugh1005United Kingdom2024-05-01
Juan T Sergi1006Australia2024-04-30
Isabel L Foller1007Italy2024-04-28
Morrow W Malet1008Canada2024-04-14
Clifford Y Paprocki1009Germany2024-04-04
Tony A Saylors1010United Kingdom2024-04-07
Johnson Y Inouye1011Spain2024-04-25
Costa V Chui1012Italy2024-04-04
Leon Y Flosi1013India2024-04-04
Arvin G Flosi1014Canada2024-04-20
Julie X Marrier1015Japan2024-04-12
Nicolas Z Glick1016Germany2024-04-15
Rodrigues S Glick1017Germany2024-04-02
Jeanfrancois U Nicka1018Brazil2024-04-14
Misaki A Malet1019Canada2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson M StockhamItalyAmy Elsner PROPOSAL
Juan S GillianAustraliaStephen Shaw QUALIFIED
Isabel J DarakjyJapanAnna Fali NEGOTIATION
Kaitlin Z KuskoUnited KingdomStephen Shaw QUALIFIED
Faith W MarrierItalyAsiya Javayant PROPOSAL
David G OldroydBrazilOnyama Limba QUALIFIED
Darci C KolmetzGermanyBernardo Dominic NEGOTIATION
Leon D ShinkoItalyOnyama Limba RENEWAL
Murillo V GlickBrazilStephen Shaw PROPOSAL
James P WhobreySpainAnna Fali RENEWAL
Darci Z GauchoAustraliaAnna Fali RENEWAL
Smith D MaletBrazilXuxue Feng RENEWAL
Kadeem P MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba C MorascaIndiaStephen Shaw PROPOSAL
Maisha H ShinkoBrazilXuxue Feng PROPOSAL
Darci Q CampainBrazilElwin Sharvill RENEWAL
Mujtaba Y MacleadGermanyIoni Bowcher PROPOSAL
Adams S MacleadRussiaIvan Magalhaes UNQUALIFIED
Jennifer P WaycottIndiaOnyama Limba NEW
Sinclair D VenereIndiaIvan Magalhaes UNQUALIFIED
Ricardo E NickaJapanIvan Magalhaes RENEWAL
Antonio I RoysterItalyAnna Fali UNQUALIFIED
Deepesh E NickaFranceOnyama Limba UNQUALIFIED
Silvio N WaycottAustraliaAnna Fali RENEWAL
Mayumi H VocelkaRussiaAsiya Javayant UNQUALIFIED
Octavia Q MaletJapanAsiya Javayant QUALIFIED
Clifford W NickaBrazilXuxue Feng RENEWAL
Arvin Q GillianIndiaXuxue Feng PROPOSAL
Izzy Q MarrierItalyElwin Sharvill UNQUALIFIED
Nicolas O TollnerArgentinaAnna Fali QUALIFIED
Sinclair V SaylorsGermanyStephen Shaw QUALIFIED
Greenwood K NickaCanadaIvan Magalhaes UNQUALIFIED
Juan Z ButtRussiaXuxue Feng NEGOTIATION
James X KolmetzCanadaBernardo Dominic UNQUALIFIED
Maisha A AmigonSpainStephen Shaw PROPOSAL
Aika I ButtGermanyAnna Fali PROPOSAL
Tony F ChuiCanadaIoni Bowcher PROPOSAL
Aika F CaudySpainStephen Shaw NEGOTIATION
Aruna N GillianUnited KingdomXuxue Feng NEGOTIATION
Isabel I IturbideUnited KingdomOnyama Limba 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>