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
Aruna P NickaJapanAmy Elsner NEGOTIATION
Johnson E NestleCanadaAmy Elsner NEW
Jones A RulapaughUnited KingdomElwin Sharvill PROPOSAL
Greenwood C PoquetteRussiaAmy Elsner RENEWAL
Izzy C RoysterBrazilBernardo Dominic NEGOTIATION
Jennifer U BriddickAustraliaOnyama Limba UNQUALIFIED
Jennifer Z RutaArgentinaXuxue Feng NEW
Maisha Z MaletUnited KingdomBernardo Dominic NEW
James B BowleyGermanyElwin Sharvill UNQUALIFIED
Clifford J NickaRussiaAnna Fali NEW
Silvio J WaycottSpainIoni Bowcher NEGOTIATION
Wickens U InouyeJapanOnyama Limba NEW
Antonio R WhobreyJapanElwin Sharvill QUALIFIED
Greenwood V ButtArgentinaElwin Sharvill QUALIFIED
Juan U SaylorsSpainAsiya Javayant UNQUALIFIED
Kadeem N KolmetzGermanyXuxue Feng NEGOTIATION
Costa H SaylorsJapanAsiya Javayant UNQUALIFIED
Aditya W GarufiBrazilXuxue Feng NEW
Wickens P ShinkoItalyAnna Fali PROPOSAL
Wickens G MacleadRussiaAsiya Javayant NEGOTIATION
Costa G KolmetzIndiaAnna Fali QUALIFIED
Kadeem P CaudyJapanBernardo Dominic RENEWAL
Adams U TollnerSpainXuxue Feng RENEWAL
Salvatore Y MaletCanadaAnna Fali NEW
Sinclair I AmigonItalyAsiya Javayant NEW
Jennifer P VenereArgentinaElwin Sharvill RENEWAL
Francesco D BriddickFranceIoni Bowcher RENEWAL
Costa Y ShinkoCanadaAnna Fali NEGOTIATION
Chavez B OldroydItalyAmy Elsner UNQUALIFIED
Julie K DilliardIndiaOnyama Limba NEGOTIATION
Alejandro K CampainIndiaStephen Shaw PROPOSAL
Mujtaba H FerenczArgentinaElwin Sharvill RENEWAL
Ricardo X GillianRussiaAsiya Javayant NEW
Emily C OldroydAustraliaElwin Sharvill QUALIFIED
Nicolas E StensethItalyAnna Fali PROPOSAL
Arvin M BologniaRussiaIvan Magalhaes PROPOSAL
Octavia Q BriddickItalyXuxue Feng PROPOSAL
Cody W MacleadRussiaElwin Sharvill RENEWAL
Juan I NestleRussiaOnyama Limba RENEWAL
Sinclair Z MaletFranceStephen Shaw UNQUALIFIED
Alejandro W DoeGermanyStephen Shaw NEW
Leja U PerinIndiaIoni Bowcher RENEWAL
Stacey F RutaFranceAnna Fali PROPOSAL
Octavia T PaprockiIndiaXuxue Feng QUALIFIED
Adams P MorascaUnited KingdomAmy Elsner NEGOTIATION
Claire V MorascaSpainIvan Magalhaes QUALIFIED
Nicolas A BriddickJapanStephen Shaw NEW
Kaitlin G BriddickArgentinaAnna Fali PROPOSAL
Emily T TollnerGermanyAmy Elsner PROPOSAL
Leon A DoeJapanAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Clifford L VocelkaUnited KingdomBernardo Dominic NEW
Jefferson A KuskoRussiaIoni Bowcher NEGOTIATION
Kadeem W InouyeCanadaStephen Shaw PROPOSAL
Aika M SlusarskiAustraliaStephen Shaw QUALIFIED
Emily S StensethRussiaAsiya Javayant RENEWAL
Wickens N WhobreyItalyElwin Sharvill RENEWAL
Morrow Q OldroydRussiaBernardo Dominic PROPOSAL
Munro G RulapaughItalyXuxue Feng UNQUALIFIED
Morrow W InouyeItalyStephen Shaw QUALIFIED
Ivar J CaldareraSpainAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika J SergiJapan2024-04-24Feiner Bros QUALIFIED89Ioni Bowcher
1001Kadeem E FlosiFrance2024-04-16Feiner Bros NEW26Ivan Magalhaes
1002Maisha A SlusarskiUnited Kingdom2024-04-18Dorl, James J Esq UNQUALIFIED40Onyama Limba
1003Smith K RutaJapan2024-04-14Printing Dimensions NEW1Onyama Limba
1004Maisha S AlbaresGermany2024-04-24Benton, John B Jr QUALIFIED35Asiya Javayant
1005Mayumi J RoysterAustralia2024-03-31Printing Dimensions RENEWAL39Ioni Bowcher
1006Aruna B MaletCanada2024-04-13Printing Dimensions NEGOTIATION10Xuxue Feng
1007Rodrigues P FollerIndia2024-04-18Buckley Miller Wright NEGOTIATION47Onyama Limba
1008Maria X RimRussia2024-04-16Dorl, James J Esq NEW27Ivan Magalhaes
1009Kadeem I MarrierIndia2024-03-27Morlong Associates NEW10Anna Fali
1010Leon W VocelkaItaly2024-04-23Benton, John B Jr RENEWAL82Elwin Sharvill
1011Silvio J NestleRussia2024-04-04Feltz Printing Service NEW36Ivan Magalhaes
1012Salvatore L StensethBrazil2024-03-29Rousseaux, Michael Esq QUALIFIED17Onyama Limba
1013Cody N MorascaIndia2024-04-18Feltz Printing Service RENEWAL99Stephen Shaw
1014Rodrigues D DilliardSpain2024-04-13Feiner Bros NEW50Stephen Shaw
1015Claire X RutaUnited Kingdom2024-04-06Chapman, Ross E Esq QUALIFIED17Onyama Limba
1016Juan H MarrierIndia2024-03-29Morlong Associates QUALIFIED57Ivan Magalhaes
1017Julie R KolmetzFrance2024-04-14Morlong Associates RENEWAL82Ivan Magalhaes
1018Wickens A BowleyCanada2024-03-31Truhlar And Truhlar Attys NEGOTIATION43Amy Elsner
1019James U PaprockiItaly2024-04-15Chanay, Jeffrey A Esq PROPOSAL50Ivan Magalhaes
1020Leon F InouyeItaly2024-04-24Truhlar And Truhlar Attys NEGOTIATION10Asiya Javayant
1021Jeanfrancois W VocelkaItaly2024-04-05Rousseaux, Michael Esq UNQUALIFIED94Onyama Limba
1022Jennifer B ShinkoItaly2024-03-30Chanay, Jeffrey A Esq QUALIFIED98Amy Elsner
1023David X OstroskyJapan2024-04-11Benton, John B Jr PROPOSAL32Bernardo Dominic
1024Alejandro A WhobreyCanada2024-04-04Morlong Associates UNQUALIFIED20Bernardo Dominic
1025Wickens B KolmetzUnited Kingdom2024-04-13Chanay, Jeffrey A Esq NEW1Asiya Javayant
1026Silvio Y PoquetteIndia2024-03-30Chemel, James L Cpa UNQUALIFIED82Bernardo Dominic
1027Greenwood P KolmetzCanada2024-04-13Chapman, Ross E Esq NEW28Amy Elsner
1028Leja J GlickItaly2024-04-08Morlong Associates UNQUALIFIED64Bernardo Dominic
1029Alejandro W MaletGermany2024-03-28King, Christopher A Esq UNQUALIFIED66Xuxue Feng
1030Clifford Q RoysterBrazil2024-04-11Rangoni Of Florence NEW47Asiya Javayant
1031Octavia S MorascaJapan2024-04-04Dorl, James J Esq PROPOSAL70Ivan Magalhaes
1032Aditya K BowleyIndia2024-03-31Commercial Press UNQUALIFIED22Stephen Shaw
1033Jennifer L AmigonArgentina2024-03-29Chemel, James L Cpa QUALIFIED25Ioni Bowcher
1034Kadeem Y ShinkoSpain2024-04-12Chapman, Ross E Esq RENEWAL9Bernardo Dominic
1035Johnson S AlbaresUnited Kingdom2024-03-30Chapman, Ross E Esq PROPOSAL50Ivan Magalhaes
1036Arvin T GarufiUnited Kingdom2024-04-24Feltz Printing Service RENEWAL24Ivan Magalhaes
1037Sinclair L RutaRussia2024-04-01Chapman, Ross E Esq NEGOTIATION83Asiya Javayant
1038Isabel E RimAustralia2024-04-21Benton, John B Jr QUALIFIED15Ivan Magalhaes
1039Deepesh J NestleJapan2024-04-01Morlong Associates UNQUALIFIED89Amy Elsner
1040Aruna M MacleadFrance2024-04-20Dorl, James J Esq UNQUALIFIED67Ioni Bowcher
1041Darci J StockhamItaly2024-04-05Rangoni Of Florence PROPOSAL46Amy Elsner
1042Arvin J OldroydCanada2024-03-29Feiner Bros NEGOTIATION18Asiya Javayant
1043Munro Y PoquetteGermany2024-04-12Morlong Associates QUALIFIED19Elwin Sharvill
1044Costa C BologniaBrazil2024-04-02Rousseaux, Michael Esq NEW28Asiya Javayant
1045Kaitlin B RutaArgentina2024-04-21Printing Dimensions NEGOTIATION34Stephen Shaw
1046Kaitlin E ButtArgentina2024-03-29Chapman, Ross E Esq NEW50Anna Fali
1047Smith X MorascaSpain2024-04-25Buckley Miller Wright RENEWAL81Stephen Shaw
1048Emily Q MaletArgentina2024-04-14Rousseaux, Michael Esq QUALIFIED47Amy Elsner
1049Smith I IturbideSpain2024-04-22Truhlar And Truhlar Attys UNQUALIFIED89Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Deepesh Q ShinkoAustraliaAsiya Javayant UNQUALIFIED
Jefferson B MacleadFranceOnyama Limba RENEWAL
Isabel V CampainIndiaBernardo Dominic NEW
Murillo O DoeBrazilXuxue Feng NEGOTIATION
Mayumi F IturbideIndiaAsiya Javayant PROPOSAL
Emily J MacleadAustraliaXuxue Feng PROPOSAL
Octavia K WhobreyCanadaIvan Magalhaes UNQUALIFIED
Jones H NickaCanadaAsiya Javayant QUALIFIED
Arvin I DarakjyFranceXuxue Feng UNQUALIFIED
Cody W FollerAustraliaBernardo Dominic NEGOTIATION
Leon T DilliardCanadaOnyama Limba NEW
Jefferson O OldroydJapanAmy Elsner NEGOTIATION
David H StockhamArgentinaXuxue Feng RENEWAL
Ashley P MorascaSpainBernardo Dominic UNQUALIFIED
Darci H GlickBrazilElwin Sharvill PROPOSAL
Salvatore I KuskoRussiaXuxue Feng NEW
Faith B BologniaFranceAnna Fali UNQUALIFIED
Jones X MaletRussiaAsiya Javayant PROPOSAL
Mujtaba L GlickBrazilXuxue Feng UNQUALIFIED
Misaki N CaudyGermanyIvan Magalhaes RENEWAL
Kadeem B GauchoItalyStephen Shaw QUALIFIED
Clifford T PoquetteAustraliaElwin Sharvill NEW
Alejandro K StockhamCanadaAnna Fali UNQUALIFIED
Ricardo Q RulapaughRussiaBernardo Dominic UNQUALIFIED
Antonio U WhobreyFranceElwin Sharvill NEGOTIATION
Alejandro O CaldareraCanadaAmy Elsner UNQUALIFIED
Wickens J MarrierUnited KingdomAmy Elsner QUALIFIED
Darci K VocelkaItalyBernardo Dominic PROPOSAL
Greenwood T MarrierBrazilAsiya Javayant UNQUALIFIED
Francesco S KolmetzItalyBernardo Dominic UNQUALIFIED
Kaitlin X PaprockiIndiaAnna Fali QUALIFIED
Leon S MarrierIndiaXuxue Feng NEW
Chavez W BowleyUnited KingdomAnna Fali RENEWAL
Deepesh L AlbaresJapanBernardo Dominic NEW
Ivar F StensethFranceStephen Shaw PROPOSAL
Rodrigues N MorascaItalyAsiya Javayant NEGOTIATION
Morrow Q RutaRussiaAsiya Javayant UNQUALIFIED
Stacey U MaletAustraliaStephen Shaw NEGOTIATION
David U OldroydItalyIoni Bowcher NEGOTIATION
Aruna W VenereAustraliaOnyama Limba QUALIFIED
Greenwood V DarakjyBrazilIoni Bowcher UNQUALIFIED
Faith Y WhobreyUnited KingdomBernardo Dominic NEW
Mujtaba W BologniaSpainOnyama Limba NEW
Emily G SaylorsIndiaAsiya Javayant UNQUALIFIED
Jefferson T AlbaresUnited KingdomElwin Sharvill PROPOSAL
Jennifer D MaletItalyBernardo Dominic QUALIFIED
Emily R NestleUnited KingdomAnna Fali PROPOSAL
Jones E DoeIndiaAsiya Javayant RENEWAL
Maria U MorascaItalyIvan Magalhaes NEW
Aditya A IturbideGermanyOnyama Limba UNQUALIFIED
Frozen Columns
Name
Murillo O Saylors
Silvio L Briddick
Jones I Ostrosky
Mujtaba R Bowley
Leja Z Sergi
Aditya Z Glick
Wickens V Doe
Faith I Whobrey
Ivar R Caudy
Rodrigues T Royster
Cody W Schemmer
Ricardo P Perin
Emily P Vocelka
Munro J Ruta
Kadeem K Paprocki
Mujtaba R Malet
Salvatore Y Vocelka
Rodrigues A Caldarera
Smith N Darakjy
Ricardo S Chui
Kadeem G Malet
Jennifer H Ferencz
Morrow L Amigon
Morrow W Vocelka
Arvin N Schemmer
Murillo B Butt
Izzy G Malet
Aditya X Paprocki
Murillo Y Flosi
Kaitlin S Vocelka
Stacey S Rulapaugh
Francesco C Garufi
Munro P Gaucho
Octavia Z Butt
Antonio O Iturbide
Faith A Oldroyd
Mujtaba I Iturbide
Ashley D Schemmer
Cody Z Rim
Francesco N Dilliard
Stacey I Butt
Francesco B Campain
Octavia B Royster
Kaitlin L Butt
Isabel O Gaucho
Faith R Saylors
Izzy U Tollner
Nicolas B Caudy
Cody G Kusko
James W Royster
IdCountryDate
1000Canada2024-04-12
1001Canada2024-04-14
1002France2024-03-27
1003Argentina2024-04-17
1004France2024-04-06
1005Canada2024-04-12
1006United Kingdom2024-04-04
1007Germany2024-04-02
1008Italy2024-04-25
1009Argentina2024-04-02
1010Argentina2024-04-07
1011Italy2024-03-31
1012France2024-03-30
1013Canada2024-03-29
1014Germany2024-04-08
1015Canada2024-03-27
1016Brazil2024-04-15
1017Canada2024-04-08
1018Japan2024-04-09
1019Argentina2024-03-31
1020Japan2024-03-30
1021Australia2024-03-27
1022Argentina2024-04-05
1023Russia2024-04-07
1024Argentina2024-04-10
1025Italy2024-04-12
1026Brazil2024-04-11
1027Germany2024-04-19
1028Argentina2024-04-17
1029Australia2024-04-12
1030Argentina2024-04-19
1031United Kingdom2024-04-23
1032Russia2024-04-01
1033France2024-03-30
1034India2024-04-02
1035United Kingdom2024-04-01
1036Russia2024-04-08
1037Italy2024-04-20
1038Japan2024-04-14
1039Canada2024-04-06
1040Italy2024-03-30
1041Brazil2024-04-03
1042Japan2024-04-04
1043Germany2024-04-05
1044India2024-04-13
1045Argentina2024-04-21
1046India2024-03-31
1047Argentina2024-04-24
1048Germany2024-03-31
1049Germany2024-04-02

On-Demand Data

NameIdCountryDate
Ashley E Glick1000Argentina2024-04-25
Clifford N Stenseth1001Canada2024-04-18
Munro H Waycott1002Brazil2024-04-10
Sinclair E Iturbide1003Italy2024-04-05
Aditya H Caudy1004Italy2024-03-27
Leon E Paprocki1005United Kingdom2024-04-20
Misaki Q Figeroa1006Japan2024-04-16
Juan P Iturbide1007Canada2024-03-30
Emily M Oldroyd1008Argentina2024-04-04
Claire Q Inouye1009Brazil2024-04-13
Adams R Butt1010France2024-04-23
Leon U Schemmer1011India2024-03-30
Murillo L Briddick1012Italy2024-04-21
Costa D Marrier1013Russia2024-04-16
Alejandro V Darakjy1014Russia2024-04-07
Greenwood R Bolognia1015Japan2024-04-01
Tony U Ostrosky1016Canada2024-04-08
Emily T Morasca1017Australia2024-04-15
Smith D Malet1018Australia2024-04-13
Johnson D Poquette1019Argentina2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily G TollnerArgentinaIvan Magalhaes RENEWAL
Costa O BriddickItalyStephen Shaw RENEWAL
Tony P WaycottRussiaBernardo Dominic QUALIFIED
Octavia T OldroydRussiaIoni Bowcher NEW
Julie Y CampainFranceElwin Sharvill RENEWAL
Sinclair N InouyeSpainOnyama Limba NEGOTIATION
Julie E FlosiJapanBernardo Dominic NEW
Kadeem A MorascaBrazilAsiya Javayant RENEWAL
Ashley S AmigonArgentinaOnyama Limba RENEWAL
Jennifer I AmigonBrazilStephen Shaw UNQUALIFIED
Emily U RulapaughCanadaAmy Elsner RENEWAL
Arvin T PerinIndiaStephen Shaw NEW
Juan C TollnerBrazilIoni Bowcher UNQUALIFIED
Deepesh I KolmetzGermanyBernardo Dominic NEW
Leon A CaudyRussiaXuxue Feng NEGOTIATION
Rodrigues B PerinArgentinaElwin Sharvill RENEWAL
Claire F SlusarskiAustraliaAnna Fali NEW
Kadeem T ButtFranceAmy Elsner QUALIFIED
Mayumi M BologniaItalyElwin Sharvill QUALIFIED
David G FigeroaFranceAsiya Javayant NEW
Antonio H WaycottSpainIvan Magalhaes PROPOSAL
Morrow D ChuiArgentinaBernardo Dominic RENEWAL
Arvin R SchemmerGermanyAmy Elsner UNQUALIFIED
Sinclair B GlickUnited KingdomAnna Fali RENEWAL
Claire X ChuiGermanyIvan Magalhaes PROPOSAL
Octavia F CampainIndiaStephen Shaw RENEWAL
Izzy H KuskoFranceIoni Bowcher PROPOSAL
Faith H FigeroaUnited KingdomXuxue Feng NEW
Alejandro E KuskoRussiaIvan Magalhaes PROPOSAL
Misaki L PoquetteGermanyBernardo Dominic QUALIFIED
Clifford F ButtItalyIoni Bowcher QUALIFIED
Tony Z PoquetteAustraliaBernardo Dominic RENEWAL
Kaitlin Z ChuiBrazilAsiya Javayant NEGOTIATION
Aditya R DarakjyItalyElwin Sharvill NEW
Tony J InouyeCanadaStephen Shaw QUALIFIED
Jennifer Z KuskoItalyAmy Elsner RENEWAL
Murillo Y NestleIndiaOnyama Limba RENEWAL
Claire K FlosiGermanyAnna Fali QUALIFIED
Ashley G SaylorsGermanyXuxue Feng RENEWAL
Adams Z KuskoSpainIoni Bowcher 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>