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
Munro X TollnerSpainXuxue Feng PROPOSAL
Jeanfrancois C KolmetzGermanyAnna Fali PROPOSAL
David Q RoysterItalyIvan Magalhaes QUALIFIED
Wickens E NestleSpainOnyama Limba UNQUALIFIED
Murillo B MaletGermanyBernardo Dominic UNQUALIFIED
Smith U AlbaresIndiaOnyama Limba NEW
Morrow T PoquetteBrazilAmy Elsner PROPOSAL
Clifford M MarrierAustraliaOnyama Limba PROPOSAL
Maria J TollnerSpainIvan Magalhaes RENEWAL
Tony L ShinkoFranceIoni Bowcher NEGOTIATION
Izzy S GauchoCanadaIvan Magalhaes RENEWAL
Adams J RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Aika D SlusarskiGermanyIvan Magalhaes NEW
Salvatore E DilliardJapanStephen Shaw RENEWAL
Maria D MorascaGermanyIoni Bowcher QUALIFIED
Darci B IturbideAustraliaOnyama Limba QUALIFIED
Misaki N FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Chavez S AlbaresJapanAnna Fali QUALIFIED
Ivar X NestleRussiaElwin Sharvill RENEWAL
Aruna F ShinkoRussiaOnyama Limba NEGOTIATION
Mujtaba P MaletUnited KingdomOnyama Limba QUALIFIED
Leja D ChuiIndiaXuxue Feng NEGOTIATION
Misaki Y DarakjyRussiaXuxue Feng UNQUALIFIED
Salvatore Q SlusarskiJapanOnyama Limba NEW
Claire J DarakjySpainAnna Fali QUALIFIED
Antonio N ChuiCanadaAsiya Javayant NEW
Stacey P WieserItalyStephen Shaw UNQUALIFIED
Clifford S NestleSpainAsiya Javayant RENEWAL
Salvatore R AmigonFranceAsiya Javayant NEW
Aditya Q PerinFranceBernardo Dominic PROPOSAL
Mayumi E WaycottItalyElwin Sharvill NEW
Aditya W CaudyRussiaStephen Shaw QUALIFIED
Darci H CaudyIndiaXuxue Feng NEW
Tony I GillianBrazilIoni Bowcher UNQUALIFIED
Ricardo B FigeroaFranceXuxue Feng NEW
Francesco D StensethUnited KingdomStephen Shaw PROPOSAL
Sinclair E SlusarskiRussiaElwin Sharvill PROPOSAL
Antonio E ShinkoBrazilBernardo Dominic QUALIFIED
Jones V KolmetzJapanAmy Elsner NEGOTIATION
Greenwood K VocelkaRussiaBernardo Dominic UNQUALIFIED
Antonio V MaletIndiaXuxue Feng PROPOSAL
Faith N FollerBrazilIvan Magalhaes UNQUALIFIED
Stacey W BowleyRussiaAsiya Javayant UNQUALIFIED
Rodrigues J MaletAustraliaOnyama Limba PROPOSAL
Maisha V IturbideAustraliaAsiya Javayant UNQUALIFIED
Chavez I StockhamSpainIvan Magalhaes RENEWAL
Rodrigues H PoquetteSpainAmy Elsner RENEWAL
Emily A ButtArgentinaStephen Shaw PROPOSAL
Salvatore H MarrierJapanBernardo Dominic RENEWAL
Munro R GarufiSpainOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo X RutaFranceAmy Elsner UNQUALIFIED
Izzy S GarufiItalyXuxue Feng NEW
Jennifer F DilliardIndiaOnyama Limba NEGOTIATION
Emily W SchemmerGermanyOnyama Limba PROPOSAL
Silvio C AlbaresBrazilStephen Shaw NEGOTIATION
Isabel R GillianCanadaBernardo Dominic NEW
Arvin A PoquetteItalyOnyama Limba UNQUALIFIED
Nicolas X MarrierCanadaAsiya Javayant NEW
Octavia Z PoquetteJapanIvan Magalhaes UNQUALIFIED
Darci V CaudyFranceXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams F NickaSpain2024-04-19Buckley Miller Wright UNQUALIFIED18Elwin Sharvill
1001Mayumi C InouyeItaly2024-04-09Chemel, James L Cpa NEGOTIATION9Ivan Magalhaes
1002Ricardo W StockhamFrance2024-04-02Morlong Associates UNQUALIFIED77Asiya Javayant
1003Mujtaba E WhobreyFrance2024-04-19Chanay, Jeffrey A Esq RENEWAL21Ioni Bowcher
1004Munro C FlosiAustralia2024-03-30King, Christopher A Esq PROPOSAL24Stephen Shaw
1005Silvio I TollnerCanada2024-04-24Chemel, James L Cpa NEW1Amy Elsner
1006Murillo G RutaRussia2024-04-04Feltz Printing Service RENEWAL56Onyama Limba
1007Munro D BowleyBrazil2024-03-30Morlong Associates RENEWAL78Xuxue Feng
1008Ashley T OstroskyIndia2024-04-23Buckley Miller Wright QUALIFIED77Ioni Bowcher
1009James W MaletBrazil2024-04-03King, Christopher A Esq QUALIFIED88Bernardo Dominic
1010Johnson Y GauchoIndia2024-04-02Buckley Miller Wright RENEWAL58Ioni Bowcher
1011Ashley X NickaItaly2024-03-29Commercial Press PROPOSAL16Asiya Javayant
1012Isabel R CampainAustralia2024-03-28Truhlar And Truhlar Attys NEW57Onyama Limba
1013Salvatore L WaycottCanada2024-04-08King, Christopher A Esq PROPOSAL89Amy Elsner
1014James Y OldroydJapan2024-04-22Chapman, Ross E Esq NEW71Anna Fali
1015Costa O RimCanada2024-04-12Chemel, James L Cpa PROPOSAL21Anna Fali
1016Greenwood D WaycottIndia2024-04-10Printing Dimensions UNQUALIFIED56Amy Elsner
1017Leon K ButtGermany2024-04-09Buckley Miller Wright NEW33Xuxue Feng
1018Morrow G SchemmerCanada2024-03-31Chapman, Ross E Esq RENEWAL92Xuxue Feng
1019Claire L AlbaresJapan2024-04-03Rousseaux, Michael Esq NEW25Onyama Limba
1020Silvio R NickaArgentina2024-04-10Truhlar And Truhlar Attys RENEWAL4Asiya Javayant
1021Mujtaba X BologniaArgentina2024-04-04Rousseaux, Michael Esq RENEWAL26Xuxue Feng
1022Clifford K DarakjyFrance2024-03-31Chapman, Ross E Esq PROPOSAL67Ioni Bowcher
1023Claire J WieserBrazil2024-04-25Feiner Bros QUALIFIED49Bernardo Dominic
1024Chavez F DoeRussia2024-03-29Chemel, James L Cpa UNQUALIFIED83Bernardo Dominic
1025Kaitlin S KolmetzRussia2024-04-03Rousseaux, Michael Esq NEGOTIATION73Anna Fali
1026Aika P DilliardUnited Kingdom2024-04-05Rousseaux, Michael Esq UNQUALIFIED95Ivan Magalhaes
1027Jeanfrancois F CaldareraGermany2024-04-17Truhlar And Truhlar Attys PROPOSAL98Stephen Shaw
1028Smith F CampainArgentina2024-04-23Printing Dimensions UNQUALIFIED48Onyama Limba
1029Rodrigues S MacleadRussia2024-04-17Commercial Press NEW75Bernardo Dominic
1030Leja U WieserAustralia2024-04-03Morlong Associates RENEWAL99Asiya Javayant
1031Misaki N StensethFrance2024-04-09Truhlar And Truhlar Attys RENEWAL65Elwin Sharvill
1032Izzy T KolmetzArgentina2024-04-11Rangoni Of Florence PROPOSAL34Stephen Shaw
1033Alejandro B AlbaresRussia2024-04-10Feiner Bros UNQUALIFIED30Xuxue Feng
1034Silvio Z KuskoRussia2024-04-11Feiner Bros RENEWAL80Amy Elsner
1035Darci B PaprockiFrance2024-04-25Printing Dimensions NEW37Ivan Magalhaes
1036Isabel O DoeItaly2024-04-15Commercial Press QUALIFIED57Ivan Magalhaes
1037Salvatore Z MorascaUnited Kingdom2024-04-22Printing Dimensions NEW90Bernardo Dominic
1038Misaki M PaprockiAustralia2024-04-21Dorl, James J Esq QUALIFIED49Xuxue Feng
1039Jefferson G CampainIndia2024-04-12Chapman, Ross E Esq QUALIFIED63Elwin Sharvill
1040Smith O DarakjyItaly2024-04-04Printing Dimensions PROPOSAL22Ioni Bowcher
1041Kaitlin Y BologniaFrance2024-04-05Printing Dimensions PROPOSAL58Anna Fali
1042Clifford N ButtFrance2024-03-31Morlong Associates RENEWAL91Asiya Javayant
1043Chavez E MarrierSpain2024-04-12Rangoni Of Florence RENEWAL58Onyama Limba
1044Maisha W InouyeFrance2024-04-02Commercial Press RENEWAL35Amy Elsner
1045Sinclair K PoquetteUnited Kingdom2024-03-31Chanay, Jeffrey A Esq QUALIFIED16Elwin Sharvill
1046Misaki B OldroydCanada2024-04-01Chapman, Ross E Esq UNQUALIFIED15Amy Elsner
1047Wickens N AlbaresArgentina2024-03-31Morlong Associates PROPOSAL55Ivan Magalhaes
1048Greenwood I RutaFrance2024-04-26Rangoni Of Florence RENEWAL90Elwin Sharvill
1049Murillo G RulapaughCanada2024-04-05Feltz Printing Service UNQUALIFIED90Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aruna Y IturbideRussiaAsiya Javayant NEGOTIATION
Nicolas Y MorascaUnited KingdomIoni Bowcher RENEWAL
Leon G PerinCanadaAsiya Javayant RENEWAL
Nicolas S GarufiJapanXuxue Feng PROPOSAL
Francesco K MacleadIndiaXuxue Feng NEGOTIATION
Tony N BriddickGermanyBernardo Dominic RENEWAL
Leja C VocelkaGermanyElwin Sharvill NEGOTIATION
Jeanfrancois S SchemmerSpainElwin Sharvill QUALIFIED
Arvin Z RoysterIndiaElwin Sharvill NEW
Clifford L VenereRussiaElwin Sharvill QUALIFIED
Wickens K GillianCanadaXuxue Feng RENEWAL
Antonio V MorascaRussiaAnna Fali UNQUALIFIED
Leja A MaletIndiaIoni Bowcher RENEWAL
Claire X PoquetteCanadaStephen Shaw RENEWAL
James B WaycottJapanIoni Bowcher NEGOTIATION
Deepesh Z WhobreyItalyIoni Bowcher RENEWAL
Johnson K MacleadJapanOnyama Limba RENEWAL
James N BologniaBrazilElwin Sharvill QUALIFIED
Kadeem O AmigonUnited KingdomAmy Elsner NEW
Ivar X AmigonSpainOnyama Limba NEGOTIATION
Stacey W CampainRussiaAmy Elsner QUALIFIED
David A NickaRussiaXuxue Feng RENEWAL
Octavia P FigeroaIndiaStephen Shaw QUALIFIED
Morrow I GillianRussiaIoni Bowcher UNQUALIFIED
Adams N FlosiUnited KingdomAmy Elsner RENEWAL
Faith V MaletAustraliaOnyama Limba RENEWAL
Clifford T SergiGermanyIoni Bowcher UNQUALIFIED
Chavez K BriddickItalyBernardo Dominic NEW
Adams W WieserGermanyAsiya Javayant PROPOSAL
Faith Y KuskoItalyStephen Shaw RENEWAL
Kaitlin I MorascaJapanStephen Shaw NEW
Ricardo R MaletGermanyElwin Sharvill NEGOTIATION
Jeanfrancois N FigeroaSpainXuxue Feng NEW
Johnson T BriddickAustraliaAnna Fali UNQUALIFIED
Faith S BriddickUnited KingdomElwin Sharvill NEW
Chavez G VenereArgentinaXuxue Feng NEW
Arvin B OstroskyItalyAnna Fali QUALIFIED
Juan Y WhobreyGermanyAmy Elsner PROPOSAL
Aditya V OstroskyCanadaIvan Magalhaes NEGOTIATION
Misaki N ChuiGermanyXuxue Feng NEW
Munro V CaudyRussiaElwin Sharvill NEGOTIATION
Leja O GillianItalyAmy Elsner UNQUALIFIED
Maisha J CampainFranceOnyama Limba UNQUALIFIED
Stacey L SlusarskiUnited KingdomStephen Shaw QUALIFIED
Kaitlin O FigeroaJapanXuxue Feng UNQUALIFIED
James Y ButtItalyStephen Shaw UNQUALIFIED
Ashley G FlosiJapanIvan Magalhaes NEW
Sinclair R BologniaFranceIoni Bowcher QUALIFIED
Aditya D WaycottRussiaIvan Magalhaes PROPOSAL
Emily X OstroskyUnited KingdomElwin Sharvill RENEWAL
Frozen Columns
Name
James R Kusko
Costa H Briddick
David O Stockham
Jeanfrancois Y Malet
Cody R Inouye
Rodrigues N Figeroa
Mujtaba C Whobrey
Morrow V Paprocki
Arvin B Rulapaugh
Aruna B Oldroyd
Ivar I Nicka
Munro O Malet
Jennifer O Marrier
Faith T Saylors
Alejandro C Malet
Deepesh D Wieser
Francesco I Campain
Deepesh Z Kusko
Kaitlin K Saylors
Adams F Figeroa
Alejandro J Perin
Julie L Bolognia
Darci Z Chui
Isabel F Gaucho
Juan I Saylors
Rodrigues Z Bolognia
Jefferson D Tollner
Juan S Flosi
Ashley K Royster
Kaitlin A Rim
Johnson J Wieser
Rodrigues Y Royster
Julie T Kolmetz
Aruna X Darakjy
Nicolas Q Stenseth
Ashley Y Royster
Ricardo L Darakjy
Wickens C Stockham
Maisha I Shinko
Leja L Gillian
Izzy R Marrier
Jefferson W Saylors
Sinclair K Rim
Ashley B Inouye
Isabel T Oldroyd
Julie K Caudy
Maria B Perin
Mayumi U Dilliard
Clifford V Iturbide
Munro C Briddick
IdCountryDate
1000Australia2024-04-03
1001Japan2024-04-22
1002United Kingdom2024-04-23
1003France2024-03-28
1004Canada2024-04-20
1005Brazil2024-04-12
1006Germany2024-04-03
1007Argentina2024-03-30
1008Germany2024-04-22
1009Russia2024-04-20
1010Spain2024-04-19
1011Japan2024-04-23
1012Canada2024-04-09
1013India2024-03-31
1014Australia2024-04-10
1015India2024-04-08
1016Canada2024-04-23
1017Spain2024-04-17
1018United Kingdom2024-04-13
1019Canada2024-04-23
1020France2024-04-23
1021Spain2024-04-05
1022Germany2024-04-23
1023United Kingdom2024-04-15
1024Argentina2024-04-26
1025Canada2024-04-01
1026Germany2024-04-11
1027Canada2024-04-26
1028Brazil2024-04-10
1029Argentina2024-04-25
1030Spain2024-03-30
1031Russia2024-04-25
1032Brazil2024-04-04
1033Germany2024-04-23
1034Japan2024-04-03
1035France2024-03-29
1036Germany2024-04-03
1037Canada2024-04-23
1038Italy2024-04-26
1039Brazil2024-04-22
1040Germany2024-04-04
1041Canada2024-04-18
1042India2024-04-12
1043Russia2024-04-15
1044France2024-04-13
1045Australia2024-04-21
1046Canada2024-04-05
1047India2024-03-28
1048France2024-04-19
1049Spain2024-04-12

On-Demand Data

NameIdCountryDate
Tony D Bowley1000Spain2024-04-08
Maisha G Figeroa1001Brazil2024-04-04
Mayumi H Caudy1002Australia2024-04-24
Tony A Waycott1003Germany2024-03-30
Aruna Y Figeroa1004France2024-04-15
Morrow C Darakjy1005Australia2024-04-24
Cody B Tollner1006Japan2024-04-03
Rodrigues Q Sergi1007Japan2024-04-22
Clifford L Gillian1008Italy2024-04-17
Mujtaba K Paprocki1009Italy2024-04-15
Nicolas Q Whobrey1010Canada2024-04-16
Leon P Glick1011India2024-04-13
Sinclair F Gillian1012United Kingdom2024-04-10
Costa G Figeroa1013Australia2024-04-14
Aditya P Dilliard1014Australia2024-04-03
Leon T Whobrey1015Spain2024-04-20
Kaitlin L Maclead1016Brazil2024-04-26
Ivar O Shinko1017Australia2024-04-19
Wickens O Slusarski1018Canada2024-04-14
Morrow G Albares1019Spain2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja D DilliardGermanyBernardo Dominic RENEWAL
Darci Z FigeroaSpainAmy Elsner NEW
Isabel N AlbaresSpainIvan Magalhaes PROPOSAL
Murillo X DilliardBrazilXuxue Feng QUALIFIED
Izzy S SaylorsRussiaAsiya Javayant NEW
Tony W FollerSpainAmy Elsner NEW
Tony V ShinkoFranceXuxue Feng PROPOSAL
Jones O NestleArgentinaOnyama Limba NEGOTIATION
Nicolas L KolmetzFranceStephen Shaw UNQUALIFIED
Izzy Q VocelkaCanadaAsiya Javayant RENEWAL
Leon J CaldareraAustraliaAsiya Javayant NEW
Greenwood Q SergiSpainOnyama Limba PROPOSAL
Ashley V BologniaCanadaIvan Magalhaes PROPOSAL
Jennifer T KolmetzFranceBernardo Dominic QUALIFIED
Mayumi X OstroskyGermanyIvan Magalhaes NEW
Jeanfrancois M MarrierUnited KingdomXuxue Feng RENEWAL
Salvatore N NickaIndiaAsiya Javayant RENEWAL
Tony F CaudyArgentinaAnna Fali NEGOTIATION
Mujtaba Y StensethItalyStephen Shaw NEW
Ivar T DarakjyAustraliaAnna Fali UNQUALIFIED
Cody V RoysterArgentinaElwin Sharvill NEW
Aruna L WhobreySpainIvan Magalhaes NEW
James O RoysterUnited KingdomXuxue Feng PROPOSAL
Misaki K NickaItalyBernardo Dominic PROPOSAL
Silvio P NickaIndiaIvan Magalhaes UNQUALIFIED
Emily D TollnerJapanElwin Sharvill NEGOTIATION
Johnson W CaudyIndiaStephen Shaw NEGOTIATION
Rodrigues Y IturbideIndiaOnyama Limba UNQUALIFIED
Mujtaba I CampainSpainAsiya Javayant QUALIFIED
Kaitlin M StensethItalyOnyama Limba UNQUALIFIED
Arvin V FigeroaAustraliaStephen Shaw NEW
Nicolas Y AmigonJapanOnyama Limba UNQUALIFIED
Antonio V VenereRussiaAsiya Javayant QUALIFIED
Jefferson Q GillianUnited KingdomElwin Sharvill UNQUALIFIED
Maria E MacleadIndiaStephen Shaw QUALIFIED
Ricardo D PerinSpainStephen Shaw UNQUALIFIED
Stacey B SergiSpainIoni Bowcher PROPOSAL
Aika D GarufiItalyBernardo Dominic RENEWAL
Antonio T MaletRussiaBernardo Dominic NEGOTIATION
Misaki T CampainAustraliaAmy Elsner QUALIFIED

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