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
Morrow S PerinRussiaIvan Magalhaes NEW
Ricardo E WieserArgentinaAnna Fali UNQUALIFIED
Alejandro J KolmetzSpainXuxue Feng NEW
Chavez Y KolmetzUnited KingdomAsiya Javayant QUALIFIED
Emily Z MarrierAustraliaIvan Magalhaes PROPOSAL
Rodrigues S GlickRussiaXuxue Feng NEW
Alejandro G StockhamRussiaOnyama Limba PROPOSAL
Cody O VocelkaRussiaBernardo Dominic RENEWAL
Costa X VocelkaIndiaIoni Bowcher PROPOSAL
Faith Q WaycottItalyAnna Fali NEW
Jefferson P OstroskyRussiaXuxue Feng NEGOTIATION
Aika G BologniaIndiaBernardo Dominic NEGOTIATION
Emily Z GlickArgentinaXuxue Feng RENEWAL
Isabel F CaldareraRussiaIoni Bowcher QUALIFIED
Maria F FollerJapanStephen Shaw NEGOTIATION
Cody S WieserItalyBernardo Dominic QUALIFIED
Greenwood U TollnerGermanyAmy Elsner RENEWAL
Nicolas A CampainBrazilAmy Elsner NEGOTIATION
Chavez F IturbideUnited KingdomAmy Elsner UNQUALIFIED
Chavez B MacleadAustraliaOnyama Limba NEGOTIATION
Chavez D CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Smith G DilliardArgentinaAsiya Javayant NEGOTIATION
Cody W RimSpainBernardo Dominic QUALIFIED
Jones B CampainGermanyAnna Fali QUALIFIED
Stacey S MaletRussiaBernardo Dominic RENEWAL
Misaki L StockhamArgentinaXuxue Feng RENEWAL
Morrow G ButtArgentinaXuxue Feng PROPOSAL
Deepesh F RimJapanElwin Sharvill NEW
Maria C GauchoIndiaBernardo Dominic RENEWAL
Misaki O MorascaGermanyElwin Sharvill PROPOSAL
Leon M RulapaughItalyIvan Magalhaes UNQUALIFIED
Maria E RulapaughRussiaBernardo Dominic NEGOTIATION
Nicolas I AlbaresBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois A SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Greenwood I DilliardCanadaAmy Elsner RENEWAL
James Z MacleadArgentinaOnyama Limba RENEWAL
Jones A AmigonCanadaAnna Fali NEGOTIATION
Kaitlin R ShinkoUnited KingdomAmy Elsner PROPOSAL
David U FerenczBrazilAmy Elsner NEW
Julie P KolmetzBrazilStephen Shaw RENEWAL
Adams Y WaycottJapanOnyama Limba UNQUALIFIED
Misaki A MacleadCanadaIvan Magalhaes PROPOSAL
Maisha P GlickRussiaXuxue Feng NEGOTIATION
Julie G RutaArgentinaAsiya Javayant NEGOTIATION
Jefferson U RulapaughRussiaStephen Shaw NEW
Maisha M FollerRussiaXuxue Feng PROPOSAL
Kaitlin Z SchemmerBrazilAsiya Javayant RENEWAL
Tony I OstroskyItalyAmy Elsner UNQUALIFIED
Wickens M ShinkoAustraliaOnyama Limba NEGOTIATION
Ashley W SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem N MorascaBrazilAmy Elsner PROPOSAL
Tony K DoeRussiaAnna Fali UNQUALIFIED
Antonio T BowleyGermanyStephen Shaw PROPOSAL
Clifford I DoeAustraliaIoni Bowcher QUALIFIED
Faith E ShinkoUnited KingdomAmy Elsner PROPOSAL
Ricardo F SaylorsAustraliaOnyama Limba UNQUALIFIED
Nicolas Z GlickItalyIvan Magalhaes NEW
Sinclair S GlickCanadaIvan Magalhaes UNQUALIFIED
Ashley V GlickIndiaAsiya Javayant QUALIFIED
Aruna D PaprockiItalyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C DarakjyAustralia2024-04-19Feltz Printing Service NEW66Asiya Javayant
1001Misaki S TollnerGermany2024-04-02Dorl, James J Esq RENEWAL16Amy Elsner
1002Cody J CaudyCanada2024-04-16Printing Dimensions NEW62Stephen Shaw
1003Chavez L KuskoGermany2024-04-04Rangoni Of Florence QUALIFIED28Elwin Sharvill
1004Jones B DilliardGermany2024-04-20Buckley Miller Wright QUALIFIED94Ivan Magalhaes
1005Clifford D DoeBrazil2024-04-02Feiner Bros NEGOTIATION59Xuxue Feng
1006Morrow G VenereFrance2024-04-27Feltz Printing Service RENEWAL82Anna Fali
1007Maisha K OldroydGermany2024-04-04Rangoni Of Florence RENEWAL96Onyama Limba
1008Munro H MarrierArgentina2024-04-27Dorl, James J Esq PROPOSAL77Amy Elsner
1009Arvin Y PerinBrazil2024-03-31Chanay, Jeffrey A Esq PROPOSAL4Ivan Magalhaes
1010Murillo D WhobreySpain2024-04-27Chapman, Ross E Esq NEW19Elwin Sharvill
1011Sinclair X SergiCanada2024-04-12Rousseaux, Michael Esq NEW31Xuxue Feng
1012Morrow X FigeroaGermany2024-04-11Commercial Press UNQUALIFIED88Onyama Limba
1013Mujtaba W StockhamFrance2024-03-31Rousseaux, Michael Esq PROPOSAL84Anna Fali
1014Clifford E NestleJapan2024-04-03Benton, John B Jr PROPOSAL19Bernardo Dominic
1015Maria H StockhamArgentina2024-04-07Printing Dimensions PROPOSAL88Amy Elsner
1016Cody J CaudyFrance2024-04-07Printing Dimensions UNQUALIFIED78Onyama Limba
1017Octavia S VenereBrazil2024-04-20Morlong Associates NEW76Ioni Bowcher
1018Jennifer M ChuiAustralia2024-04-19Dorl, James J Esq NEGOTIATION32Onyama Limba
1019Misaki S MacleadGermany2024-04-26Feiner Bros QUALIFIED52Stephen Shaw
1020Silvio P KuskoSpain2024-03-31Chanay, Jeffrey A Esq QUALIFIED62Anna Fali
1021Kaitlin J SergiRussia2024-04-03Benton, John B Jr UNQUALIFIED52Stephen Shaw
1022Murillo L PaprockiSpain2024-04-05Truhlar And Truhlar Attys RENEWAL29Onyama Limba
1023Stacey P OldroydIndia2024-04-24King, Christopher A Esq PROPOSAL3Amy Elsner
1024Clifford I RulapaughCanada2024-04-06Feiner Bros NEW71Ioni Bowcher
1025Ricardo U DarakjyCanada2024-04-16Commercial Press PROPOSAL93Xuxue Feng
1026Rodrigues Q RulapaughUnited Kingdom2024-04-15Truhlar And Truhlar Attys UNQUALIFIED72Stephen Shaw
1027David S OstroskyBrazil2024-04-10Buckley Miller Wright QUALIFIED91Asiya Javayant
1028Greenwood A WhobreyBrazil2024-04-22King, Christopher A Esq QUALIFIED99Stephen Shaw
1029Adams W StensethRussia2024-04-04Feltz Printing Service NEW77Amy Elsner
1030Ricardo G RutaJapan2024-03-31Dorl, James J Esq UNQUALIFIED31Anna Fali
1031Clifford G MorascaRussia2024-04-17Truhlar And Truhlar Attys NEGOTIATION34Stephen Shaw
1032Aditya S DarakjyJapan2024-04-03Benton, John B Jr UNQUALIFIED88Amy Elsner
1033Rodrigues G SlusarskiRussia2024-04-25Chapman, Ross E Esq UNQUALIFIED98Stephen Shaw
1034Johnson D RimJapan2024-04-26Morlong Associates RENEWAL77Stephen Shaw
1035Faith B MorascaCanada2024-04-23Chapman, Ross E Esq PROPOSAL75Ioni Bowcher
1036Ashley S FerenczItaly2024-04-28Benton, John B Jr RENEWAL73Elwin Sharvill
1037Johnson S KolmetzAustralia2024-03-30Rousseaux, Michael Esq NEW92Asiya Javayant
1038Ashley T FigeroaJapan2024-04-09Dorl, James J Esq UNQUALIFIED75Amy Elsner
1039Ricardo O KuskoArgentina2024-04-17Truhlar And Truhlar Attys QUALIFIED39Xuxue Feng
1040Claire R CampainCanada2024-04-27Benton, John B Jr NEGOTIATION28Onyama Limba
1041Jeanfrancois P IturbideSpain2024-04-25Feltz Printing Service RENEWAL70Anna Fali
1042Ivar V PerinBrazil2024-04-27Benton, John B Jr NEW53Ioni Bowcher
1043Wickens G ButtSpain2024-04-27Rousseaux, Michael Esq PROPOSAL54Xuxue Feng
1044Julie J BologniaBrazil2024-04-06Feiner Bros NEW51Anna Fali
1045Aditya T StockhamGermany2024-04-19Rousseaux, Michael Esq QUALIFIED89Amy Elsner
1046Wickens G FigeroaGermany2024-04-23Dorl, James J Esq UNQUALIFIED32Ioni Bowcher
1047Jeanfrancois U WieserUnited Kingdom2024-04-25Chanay, Jeffrey A Esq NEGOTIATION58Stephen Shaw
1048Mayumi Y VocelkaGermany2024-04-17Dorl, James J Esq QUALIFIED7Amy Elsner
1049James A ButtBrazil2024-04-02Feiner Bros UNQUALIFIED11Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Morrow J PerinCanadaIvan Magalhaes QUALIFIED
Francesco O PerinGermanyIoni Bowcher RENEWAL
Kaitlin T IturbideJapanAmy Elsner UNQUALIFIED
Kaitlin C BriddickSpainBernardo Dominic RENEWAL
Izzy C ShinkoArgentinaStephen Shaw UNQUALIFIED
Greenwood G GarufiJapanIoni Bowcher QUALIFIED
Leja T PaprockiUnited KingdomOnyama Limba NEGOTIATION
Faith Y KolmetzItalyBernardo Dominic QUALIFIED
Cody G CaudyAustraliaStephen Shaw NEW
Alejandro K WhobreyJapanXuxue Feng NEW
Silvio O CaldareraSpainXuxue Feng UNQUALIFIED
Sinclair W VenereBrazilAnna Fali NEW
Clifford V SlusarskiJapanIoni Bowcher QUALIFIED
Smith Q KolmetzSpainOnyama Limba RENEWAL
Izzy C BowleyAustraliaIvan Magalhaes QUALIFIED
Johnson H FigeroaFranceAsiya Javayant RENEWAL
Costa D StockhamGermanyXuxue Feng UNQUALIFIED
Sinclair T CaldareraIndiaIoni Bowcher NEGOTIATION
David N SergiCanadaAsiya Javayant QUALIFIED
Ivar N KolmetzJapanAsiya Javayant RENEWAL
Wickens T GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi L CampainItalyOnyama Limba NEGOTIATION
Cody Z RimFranceBernardo Dominic UNQUALIFIED
David X RutaGermanyIoni Bowcher PROPOSAL
Francesco K IturbideBrazilBernardo Dominic NEW
James K RulapaughSpainAmy Elsner NEGOTIATION
Morrow J GlickIndiaAsiya Javayant RENEWAL
Emily Q CaudyRussiaAsiya Javayant UNQUALIFIED
Greenwood H PaprockiFranceOnyama Limba NEW
Julie C BriddickBrazilIoni Bowcher RENEWAL
Smith V IturbideIndiaAsiya Javayant RENEWAL
Stacey T KuskoCanadaAmy Elsner NEW
Leja S FerenczRussiaIvan Magalhaes NEGOTIATION
Kadeem K ButtRussiaAsiya Javayant PROPOSAL
Kaitlin L ShinkoSpainBernardo Dominic PROPOSAL
Francesco D OldroydAustraliaStephen Shaw UNQUALIFIED
Francesco O SaylorsItalyAsiya Javayant PROPOSAL
Leon U OstroskyUnited KingdomBernardo Dominic QUALIFIED
Maria W PoquetteCanadaXuxue Feng RENEWAL
Emily E BowleySpainIoni Bowcher NEW
Smith K WaycottCanadaIvan Magalhaes QUALIFIED
Stacey Y ButtArgentinaIvan Magalhaes PROPOSAL
Julie E VocelkaAustraliaAnna Fali UNQUALIFIED
Jeanfrancois M CaudyAustraliaAnna Fali QUALIFIED
Francesco W PoquetteItalyXuxue Feng UNQUALIFIED
Maisha Z StockhamCanadaBernardo Dominic UNQUALIFIED
Wickens G GarufiAustraliaIvan Magalhaes NEW
Aditya Z VenereUnited KingdomAmy Elsner PROPOSAL
Leja O BriddickAustraliaStephen Shaw PROPOSAL
Johnson F CampainFranceBernardo Dominic RENEWAL
Frozen Columns
Name
Kadeem U Wieser
Sinclair N Bolognia
Salvatore W Malet
Leja M Nicka
Cody S Doe
Smith H Whobrey
Costa Z Darakjy
Murillo F Ferencz
Kadeem T Whobrey
Emily P Kusko
Smith R Campain
Adams T Chui
Deepesh E Flosi
Greenwood E Darakjy
David K Butt
Salvatore Q Darakjy
Ricardo N Butt
Maria L Slusarski
Jennifer D Caldarera
Costa V Garufi
Salvatore D Bowley
Arvin J Caudy
Jeanfrancois Z Campain
Stacey W Vocelka
Claire R Ruta
Salvatore Y Malet
Munro V Rulapaugh
Alejandro B Venere
Munro O Sergi
Jones A Schemmer
Maisha O Wieser
Sinclair I Kolmetz
Tony V Morasca
Emily F Malet
Murillo X Tollner
Leon H Stockham
Maisha Q Maclead
Faith B Dilliard
Cody X Kolmetz
Jones V Albares
Adams J Caudy
David T Bolognia
Chavez I Darakjy
Smith T Nicka
Mujtaba D Amigon
Stacey I Amigon
Morrow H Flosi
Wickens G Maclead
Costa E Waycott
Morrow Q Garufi
IdCountryDate
1000Germany2024-04-19
1001Argentina2024-04-15
1002Brazil2024-04-18
1003France2024-03-30
1004Italy2024-04-01
1005Spain2024-03-31
1006Germany2024-04-28
1007Spain2024-04-13
1008United Kingdom2024-04-05
1009Japan2024-04-12
1010France2024-04-02
1011Argentina2024-04-13
1012United Kingdom2024-04-19
1013Russia2024-04-15
1014Germany2024-04-28
1015United Kingdom2024-04-01
1016Italy2024-04-17
1017France2024-04-19
1018Spain2024-04-28
1019Brazil2024-04-22
1020United Kingdom2024-04-09
1021Australia2024-04-11
1022Spain2024-04-17
1023India2024-04-12
1024Germany2024-04-19
1025Italy2024-04-15
1026Russia2024-04-08
1027Australia2024-03-30
1028United Kingdom2024-04-23
1029Germany2024-04-13
1030Australia2024-04-20
1031Japan2024-04-04
1032Japan2024-04-23
1033Italy2024-04-08
1034India2024-04-07
1035Russia2024-04-12
1036France2024-04-04
1037Brazil2024-04-17
1038Italy2024-04-27
1039Italy2024-04-08
1040Spain2024-04-16
1041Germany2024-04-04
1042India2024-04-16
1043India2024-04-18
1044United Kingdom2024-04-27
1045Japan2024-04-08
1046India2024-04-17
1047Japan2024-04-13
1048Spain2024-04-26
1049Spain2024-04-02

On-Demand Data

NameIdCountryDate
Ivar H Venere1000United Kingdom2024-04-13
Octavia P Foller1001Australia2024-04-24
Faith W Maclead1002France2024-04-05
Ricardo P Figeroa1003Germany2024-04-09
Ricardo R Paprocki1004United Kingdom2024-04-22
Maisha B Inouye1005Canada2024-04-19
Nicolas V Saylors1006Spain2024-04-05
Nicolas I Bolognia1007Spain2024-04-16
Ricardo B Oldroyd1008Russia2024-04-03
Johnson I Shinko1009United Kingdom2024-04-15
Julie Z Nestle1010Italy2024-04-18
Clifford D Oldroyd1011India2024-04-19
Julie S Marrier1012United Kingdom2024-04-07
Costa T Bolognia1013Argentina2024-04-13
Kaitlin J Briddick1014France2024-04-06
Morrow R Stockham1015Argentina2024-04-01
Deepesh H Royster1016Argentina2024-04-19
Alejandro P Gillian1017Brazil2024-04-13
Darci G Iturbide1018Japan2024-03-31
Arvin K Inouye1019Australia2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas X AmigonIndiaOnyama Limba UNQUALIFIED
Sinclair M SchemmerFranceStephen Shaw NEGOTIATION
Chavez Z GauchoBrazilOnyama Limba RENEWAL
Deepesh W CaldareraIndiaXuxue Feng RENEWAL
Johnson V BologniaCanadaElwin Sharvill PROPOSAL
Jones J PoquetteArgentinaStephen Shaw NEGOTIATION
Aditya X MacleadRussiaIvan Magalhaes RENEWAL
Jefferson W WaycottUnited KingdomStephen Shaw RENEWAL
Smith F WaycottJapanIoni Bowcher NEW
James D SlusarskiArgentinaOnyama Limba PROPOSAL
Isabel O RimJapanIvan Magalhaes NEW
Francesco Z SergiBrazilBernardo Dominic UNQUALIFIED
Johnson Y ShinkoRussiaAsiya Javayant PROPOSAL
Munro H GillianFranceAnna Fali PROPOSAL
Nicolas Q InouyeBrazilStephen Shaw QUALIFIED
Julie L StensethItalyBernardo Dominic PROPOSAL
Wickens R BriddickJapanAmy Elsner QUALIFIED
Aditya E BriddickJapanBernardo Dominic NEW
Cody A NestleRussiaOnyama Limba UNQUALIFIED
Nicolas U ShinkoArgentinaStephen Shaw NEGOTIATION
Aruna J GarufiItalyAsiya Javayant NEGOTIATION
Johnson P MaletSpainBernardo Dominic PROPOSAL
Stacey L MacleadIndiaIvan Magalhaes NEW
Misaki A GillianAustraliaAsiya Javayant NEGOTIATION
Maria K SaylorsAustraliaOnyama Limba RENEWAL
Maisha I DarakjyUnited KingdomAmy Elsner NEGOTIATION
David T BowleyBrazilElwin Sharvill NEW
Jeanfrancois Z KuskoRussiaIoni Bowcher NEGOTIATION
Ricardo T SlusarskiAustraliaAsiya Javayant PROPOSAL
Isabel I InouyeCanadaBernardo Dominic NEW
Leja V RoysterIndiaBernardo Dominic UNQUALIFIED
Greenwood N ChuiIndiaAmy Elsner NEW
Izzy X ChuiGermanyAmy Elsner UNQUALIFIED
Julie B PaprockiRussiaBernardo Dominic RENEWAL
Rodrigues Q TollnerUnited KingdomBernardo Dominic NEW
Claire Y AlbaresSpainStephen Shaw NEGOTIATION
Murillo U MaletSpainAsiya Javayant QUALIFIED
Aruna T CaudyBrazilIoni Bowcher NEW
Munro J PaprockiUnited KingdomBernardo Dominic QUALIFIED
Isabel T DoeIndiaStephen Shaw PROPOSAL

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