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
Deepesh U StensethAustraliaIoni Bowcher NEW
Ashley U MaletSpainAsiya Javayant RENEWAL
Darci X ChuiArgentinaAnna Fali NEGOTIATION
Nicolas R MacleadCanadaIoni Bowcher UNQUALIFIED
Arvin H MaletSpainElwin Sharvill RENEWAL
Jennifer R InouyeSpainIoni Bowcher NEW
James A BriddickBrazilAsiya Javayant UNQUALIFIED
Wickens S MorascaCanadaStephen Shaw UNQUALIFIED
Munro W GillianIndiaStephen Shaw UNQUALIFIED
Wickens J RoysterItalyIoni Bowcher RENEWAL
Chavez F MacleadCanadaXuxue Feng RENEWAL
Francesco B NestleGermanyAnna Fali RENEWAL
Stacey X CaudyBrazilIvan Magalhaes QUALIFIED
Kaitlin E RulapaughCanadaElwin Sharvill QUALIFIED
Octavia R MaletRussiaAsiya Javayant NEGOTIATION
Misaki O CaudyFranceBernardo Dominic UNQUALIFIED
Mujtaba G ShinkoFranceAnna Fali NEGOTIATION
Izzy Y DilliardJapanAsiya Javayant PROPOSAL
Tony G PerinIndiaAsiya Javayant NEW
Costa R OldroydJapanElwin Sharvill RENEWAL
Arvin M KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco U WaycottRussiaElwin Sharvill NEGOTIATION
Alejandro K OldroydSpainIoni Bowcher UNQUALIFIED
Aruna R KolmetzArgentinaOnyama Limba NEW
Ashley Z CaldareraBrazilAnna Fali NEGOTIATION
Jennifer W BologniaCanadaElwin Sharvill NEW
Salvatore K StensethFranceElwin Sharvill NEW
Jefferson V DoeBrazilAmy Elsner RENEWAL
Costa U BriddickCanadaAnna Fali PROPOSAL
Sinclair M BologniaBrazilAnna Fali RENEWAL
Claire X BologniaBrazilBernardo Dominic UNQUALIFIED
Emily P IturbideFranceOnyama Limba PROPOSAL
Alejandro H RimArgentinaAnna Fali UNQUALIFIED
Maisha B MaletItalyIvan Magalhaes NEW
Octavia X KuskoUnited KingdomAsiya Javayant RENEWAL
Maisha A SlusarskiCanadaBernardo Dominic QUALIFIED
Julie D GarufiArgentinaElwin Sharvill UNQUALIFIED
Chavez M CaldareraItalyAnna Fali RENEWAL
Mayumi D MaletJapanAmy Elsner NEW
Silvio B PerinGermanyAnna Fali RENEWAL
Salvatore S WieserAustraliaXuxue Feng RENEWAL
Costa R BowleyArgentinaBernardo Dominic NEGOTIATION
Deepesh Y ShinkoItalyAsiya Javayant RENEWAL
Mujtaba S DoeUnited KingdomAmy Elsner UNQUALIFIED
Isabel H KuskoItalyAnna Fali UNQUALIFIED
Faith C MacleadIndiaAsiya Javayant NEW
Maisha F ButtArgentinaXuxue Feng NEGOTIATION
Leja I SergiUnited KingdomAmy Elsner UNQUALIFIED
Ivar P ChuiIndiaOnyama Limba NEW
Darci Z MorascaRussiaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Ivar G DoeUnited KingdomAmy Elsner NEGOTIATION
Aruna F AmigonItalyAsiya Javayant UNQUALIFIED
Costa U StockhamCanadaOnyama Limba NEW
Francesco I BologniaUnited KingdomAnna Fali PROPOSAL
Alejandro S ShinkoCanadaIoni Bowcher QUALIFIED
Arvin G FollerAustraliaOnyama Limba RENEWAL
Misaki R InouyeGermanyAmy Elsner UNQUALIFIED
Cody M InouyeFranceAmy Elsner PROPOSAL
Morrow N GarufiAustraliaElwin Sharvill NEW
Arvin H KuskoUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel F FigeroaFrance2024-04-25Truhlar And Truhlar Attys NEW46Bernardo Dominic
1001Adams P MaletUnited Kingdom2024-04-15Dorl, James J Esq UNQUALIFIED83Elwin Sharvill
1002Deepesh Z SchemmerGermany2024-04-09Buckley Miller Wright NEGOTIATION67Onyama Limba
1003Chavez W RoysterUnited Kingdom2024-03-30Rousseaux, Michael Esq NEGOTIATION77Anna Fali
1004Silvio F GarufiItaly2024-04-04Chemel, James L Cpa NEGOTIATION0Onyama Limba
1005Mayumi V MarrierCanada2024-04-10Chemel, James L Cpa UNQUALIFIED41Ivan Magalhaes
1006Francesco M WhobreyItaly2024-04-07Morlong Associates RENEWAL69Elwin Sharvill
1007Aruna D SlusarskiFrance2024-04-20Dorl, James J Esq NEW40Onyama Limba
1008Maisha L MaletJapan2024-04-02Rangoni Of Florence NEGOTIATION44Bernardo Dominic
1009Kaitlin G IturbideAustralia2024-04-04Commercial Press RENEWAL94Anna Fali
1010Costa D BologniaCanada2024-04-24Chanay, Jeffrey A Esq NEGOTIATION8Ivan Magalhaes
1011Maisha M ShinkoCanada2024-04-25King, Christopher A Esq PROPOSAL93Asiya Javayant
1012Julie A CaudyCanada2024-04-02Chemel, James L Cpa NEGOTIATION45Onyama Limba
1013Aruna R NickaCanada2024-04-16Feltz Printing Service UNQUALIFIED5Anna Fali
1014Leja L BowleyUnited Kingdom2024-04-14Dorl, James J Esq QUALIFIED3Bernardo Dominic
1015Munro H StensethCanada2024-04-19Commercial Press PROPOSAL99Stephen Shaw
1016Wickens G GlickIndia2024-04-15Printing Dimensions UNQUALIFIED15Ioni Bowcher
1017Julie U OstroskyFrance2024-04-06Rousseaux, Michael Esq PROPOSAL45Elwin Sharvill
1018Emily T KuskoBrazil2024-04-25Chapman, Ross E Esq PROPOSAL3Amy Elsner
1019Kaitlin K FlosiAustralia2024-04-14Dorl, James J Esq RENEWAL45Ioni Bowcher
1020Jefferson B IturbideItaly2024-04-05King, Christopher A Esq RENEWAL99Bernardo Dominic
1021Antonio P ButtRussia2024-04-08Commercial Press UNQUALIFIED51Elwin Sharvill
1022Jennifer K GlickBrazil2024-04-18Buckley Miller Wright QUALIFIED53Bernardo Dominic
1023Costa W TollnerIndia2024-04-06Feiner Bros NEW91Ioni Bowcher
1024Antonio M StensethItaly2024-04-14Feltz Printing Service QUALIFIED29Ivan Magalhaes
1025Emily T TollnerFrance2024-04-05Rousseaux, Michael Esq NEW77Ioni Bowcher
1026Greenwood W VocelkaIndia2024-04-14Dorl, James J Esq PROPOSAL10Ivan Magalhaes
1027Mujtaba K ChuiIndia2024-04-18Feiner Bros NEGOTIATION62Ivan Magalhaes
1028Aruna Z GillianJapan2024-04-18Buckley Miller Wright UNQUALIFIED90Stephen Shaw
1029Alejandro G GarufiItaly2024-03-30Morlong Associates PROPOSAL48Ioni Bowcher
1030Ivar C DilliardUnited Kingdom2024-04-02Benton, John B Jr UNQUALIFIED73Elwin Sharvill
1031Deepesh O DarakjyGermany2024-04-21Chapman, Ross E Esq PROPOSAL41Stephen Shaw
1032Aika D KolmetzArgentina2024-04-02Chemel, James L Cpa NEGOTIATION91Ivan Magalhaes
1033Aika Q IturbideRussia2024-04-13Benton, John B Jr UNQUALIFIED60Ivan Magalhaes
1034Cody T GarufiCanada2024-03-31Morlong Associates UNQUALIFIED85Asiya Javayant
1035Nicolas V SaylorsFrance2024-04-07Dorl, James J Esq PROPOSAL64Asiya Javayant
1036Tony I NestleRussia2024-04-09Rangoni Of Florence NEGOTIATION76Amy Elsner
1037Octavia N NestleUnited Kingdom2024-04-02Morlong Associates UNQUALIFIED77Anna Fali
1038Costa E DoeIndia2024-04-18Chapman, Ross E Esq NEGOTIATION10Stephen Shaw
1039Rodrigues U OldroydAustralia2024-04-20Chapman, Ross E Esq NEW31Asiya Javayant
1040Juan K GauchoCanada2024-04-04Feltz Printing Service RENEWAL23Ioni Bowcher
1041Aruna Z InouyeIndia2024-04-07Feiner Bros NEW56Ioni Bowcher
1042Arvin W SlusarskiItaly2024-04-28Commercial Press NEW66Ivan Magalhaes
1043Adams C StockhamCanada2024-04-13Truhlar And Truhlar Attys PROPOSAL76Bernardo Dominic
1044Smith L TollnerBrazil2024-04-19Commercial Press NEGOTIATION51Ivan Magalhaes
1045Salvatore A GarufiJapan2024-04-11King, Christopher A Esq QUALIFIED92Ioni Bowcher
1046Maisha R StockhamFrance2024-04-13Morlong Associates NEW29Bernardo Dominic
1047Maisha O FigeroaBrazil2024-04-16Feltz Printing Service QUALIFIED21Bernardo Dominic
1048Isabel O NestleSpain2024-04-26Dorl, James J Esq UNQUALIFIED22Asiya Javayant
1049Isabel H DoeGermany2024-04-17Commercial Press PROPOSAL78Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
David O GillianSpainIvan Magalhaes RENEWAL
Aruna D GillianItalyBernardo Dominic NEW
Juan J MacleadArgentinaIvan Magalhaes QUALIFIED
Morrow K SaylorsJapanXuxue Feng QUALIFIED
Cody B GarufiBrazilStephen Shaw UNQUALIFIED
Antonio I StockhamFranceIvan Magalhaes QUALIFIED
Costa H MaletSpainBernardo Dominic NEGOTIATION
Wickens P TollnerCanadaIvan Magalhaes PROPOSAL
Misaki M WhobreyRussiaStephen Shaw NEGOTIATION
Sinclair Y RulapaughItalyBernardo Dominic PROPOSAL
Tony P VocelkaJapanIvan Magalhaes RENEWAL
Clifford N FollerJapanElwin Sharvill UNQUALIFIED
Leon L BowleyIndiaStephen Shaw PROPOSAL
Antonio A AmigonRussiaAnna Fali QUALIFIED
Ashley F SchemmerFranceOnyama Limba UNQUALIFIED
Costa N ShinkoGermanyElwin Sharvill PROPOSAL
Johnson W MorascaRussiaElwin Sharvill RENEWAL
James C InouyeJapanIvan Magalhaes QUALIFIED
Wickens E MorascaSpainXuxue Feng NEGOTIATION
Darci B SaylorsUnited KingdomElwin Sharvill RENEWAL
Smith N OldroydIndiaElwin Sharvill UNQUALIFIED
Jones F ShinkoBrazilAnna Fali NEGOTIATION
Morrow H MaletRussiaXuxue Feng QUALIFIED
Octavia M PaprockiCanadaIoni Bowcher QUALIFIED
Munro R GarufiCanadaOnyama Limba NEW
Francesco U RimRussiaElwin Sharvill UNQUALIFIED
Antonio P PoquetteRussiaBernardo Dominic PROPOSAL
Costa F GarufiCanadaOnyama Limba PROPOSAL
Chavez Z BologniaIndiaBernardo Dominic NEGOTIATION
David H MorascaSpainAmy Elsner NEGOTIATION
Emily P TollnerItalyIvan Magalhaes RENEWAL
Murillo X MarrierRussiaIvan Magalhaes RENEWAL
Maria S CaudyJapanXuxue Feng PROPOSAL
Nicolas C SlusarskiIndiaStephen Shaw RENEWAL
Tony C PaprockiBrazilIvan Magalhaes NEGOTIATION
Nicolas G NickaUnited KingdomAnna Fali RENEWAL
Munro P GarufiUnited KingdomElwin Sharvill PROPOSAL
Juan S SergiFranceOnyama Limba RENEWAL
Chavez F BologniaGermanyBernardo Dominic UNQUALIFIED
Claire R InouyeRussiaAmy Elsner QUALIFIED
Wickens X MarrierJapanIoni Bowcher NEW
Octavia J RimBrazilElwin Sharvill QUALIFIED
Arvin L GillianJapanBernardo Dominic NEGOTIATION
Isabel W SlusarskiJapanAmy Elsner RENEWAL
Deepesh L StockhamItalyOnyama Limba NEGOTIATION
Maisha I MacleadSpainXuxue Feng RENEWAL
Wickens P NickaGermanyIoni Bowcher QUALIFIED
Adams D ShinkoBrazilIvan Magalhaes NEGOTIATION
Leja E GauchoRussiaElwin Sharvill PROPOSAL
Smith H WaycottArgentinaStephen Shaw NEW
Frozen Columns
Name
Francesco D Butt
Aika A Tollner
Jones U Stockham
Ricardo R Rulapaugh
Aika U Paprocki
Juan T Bowley
Kaitlin S Rulapaugh
Clifford M Briddick
Smith K Darakjy
Tony X Darakjy
Claire N Iturbide
Aditya V Darakjy
Aika R Waycott
Cody N Maclead
Darci C Stockham
Jefferson O Maclead
Rodrigues W Vocelka
Sinclair T Chui
Mayumi Y Briddick
Stacey U Saylors
Nicolas S Maclead
Faith N Rulapaugh
Leon J Perin
Kadeem S Doe
Jefferson L Morasca
Aditya X Albares
Leon A Nestle
James R Marrier
Nicolas M Butt
Faith Q Saylors
Maria C Paprocki
Deepesh H Malet
Cody V Doe
Kaitlin E Morasca
Leon Q Maclead
Aditya Z Caudy
Johnson W Chui
Kadeem E Morasca
Clifford L Inouye
Antonio X Malet
Wickens K Butt
Stacey H Morasca
Ricardo E Butt
Tony V Campain
Silvio X Nicka
Cody Q Kolmetz
Murillo Y Shinko
Antonio N Ferencz
Antonio W Kusko
Ricardo H Gillian
IdCountryDate
1000Italy2024-04-23
1001Italy2024-04-11
1002Japan2024-03-30
1003Italy2024-04-05
1004Germany2024-04-28
1005Italy2024-04-27
1006France2024-04-21
1007Spain2024-04-03
1008India2024-04-07
1009Argentina2024-04-06
1010France2024-04-18
1011France2024-04-11
1012Australia2024-04-07
1013Russia2024-04-01
1014Argentina2024-04-17
1015Australia2024-04-22
1016Australia2024-04-02
1017Spain2024-04-24
1018Germany2024-04-18
1019Russia2024-04-22
1020India2024-04-08
1021Argentina2024-03-31
1022Germany2024-04-28
1023India2024-04-26
1024Germany2024-04-24
1025Germany2024-04-16
1026France2024-04-19
1027Australia2024-04-22
1028Canada2024-03-30
1029Germany2024-04-22
1030United Kingdom2024-04-16
1031France2024-04-15
1032Italy2024-04-17
1033Spain2024-04-02
1034Brazil2024-04-09
1035India2024-04-16
1036Germany2024-04-14
1037United Kingdom2024-04-14
1038France2024-04-10
1039France2024-04-04
1040Japan2024-04-03
1041Russia2024-04-06
1042Italy2024-04-18
1043Germany2024-04-25
1044Brazil2024-04-01
1045France2024-04-01
1046Brazil2024-04-11
1047Brazil2024-04-16
1048Brazil2024-04-11
1049Australia2024-04-17

On-Demand Data

NameIdCountryDate
Silvio V Perin1000Japan2024-04-20
Aika F Maclead1001Canada2024-04-25
Darci U Foller1002Argentina2024-04-13
Faith J Rulapaugh1003United Kingdom2024-04-20
Jennifer D Garufi1004Canada2024-04-11
Tony X Bolognia1005United Kingdom2024-04-22
Munro X Iturbide1006Argentina2024-04-06
Ricardo J Glick1007Japan2024-04-15
Ricardo D Iturbide1008Australia2024-04-11
Leja Z Kolmetz1009India2024-04-20
Mayumi M Inouye1010Germany2024-04-15
Costa V Caudy1011Australia2024-04-15
Cody Z Shinko1012Germany2024-04-20
Antonio V Whobrey1013Brazil2024-04-09
Murillo V Flosi1014Russia2024-04-13
Johnson U Inouye1015Japan2024-04-01
Morrow I Garufi1016Germany2024-04-22
Jefferson J Kusko1017Japan2024-04-23
Silvio T Malet1018Russia2024-04-26
Sinclair B Wieser1019Russia2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams U ButtAustraliaIoni Bowcher PROPOSAL
Adams X SergiIndiaXuxue Feng PROPOSAL
Kaitlin M ChuiFranceAnna Fali NEGOTIATION
Salvatore Q FigeroaSpainAmy Elsner NEW
Maria D FigeroaSpainStephen Shaw QUALIFIED
Chavez I InouyeRussiaAnna Fali NEW
Ricardo D BowleyBrazilAnna Fali NEW
Emily H MorascaFranceAsiya Javayant NEGOTIATION
Aika W BowleyIndiaStephen Shaw NEW
Mujtaba G KuskoAustraliaAsiya Javayant NEGOTIATION
Arvin G SchemmerBrazilAsiya Javayant NEW
Claire W FigeroaCanadaStephen Shaw NEW
Francesco U WieserAustraliaStephen Shaw QUALIFIED
Chavez Q CaldareraFranceElwin Sharvill PROPOSAL
Sinclair B SergiGermanyXuxue Feng NEW
Kaitlin J PaprockiRussiaOnyama Limba NEGOTIATION
Francesco U SlusarskiArgentinaAsiya Javayant NEW
Ashley M SlusarskiIndiaElwin Sharvill RENEWAL
Jones L RulapaughArgentinaAnna Fali RENEWAL
Jennifer P CaldareraRussiaBernardo Dominic NEGOTIATION
Ashley V GarufiSpainAnna Fali NEW
Johnson N RulapaughUnited KingdomBernardo Dominic QUALIFIED
Alejandro S TollnerCanadaAmy Elsner NEGOTIATION
Salvatore T DilliardAustraliaIvan Magalhaes NEGOTIATION
Murillo Z PoquetteAustraliaAmy Elsner PROPOSAL
Jones B MarrierItalyXuxue Feng UNQUALIFIED
Alejandro G CaldareraSpainStephen Shaw UNQUALIFIED
James A OldroydJapanIoni Bowcher PROPOSAL
Arvin B WaycottIndiaAsiya Javayant UNQUALIFIED
Faith W CaldareraIndiaXuxue Feng UNQUALIFIED
Alejandro F FollerAustraliaAsiya Javayant UNQUALIFIED
Nicolas C IturbideRussiaXuxue Feng QUALIFIED
Jeanfrancois T GillianCanadaIvan Magalhaes QUALIFIED
Maisha U BologniaItalyXuxue Feng RENEWAL
Clifford Q StockhamItalyAsiya Javayant QUALIFIED
Nicolas Y SchemmerArgentinaIoni Bowcher NEGOTIATION
Salvatore I PerinAustraliaBernardo Dominic PROPOSAL
Misaki N CampainItalyXuxue Feng QUALIFIED
Sinclair Z NestleUnited KingdomXuxue Feng UNQUALIFIED
Salvatore H ChuiFranceOnyama Limba 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>