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
Leon N MarrierJapanElwin Sharvill NEW
Adams N PerinUnited KingdomElwin Sharvill NEW
Isabel N CaudyBrazilIoni Bowcher RENEWAL
Silvio K StensethAustraliaXuxue Feng NEW
Costa N ButtGermanyAnna Fali QUALIFIED
Aika F CaudyJapanAmy Elsner NEGOTIATION
Morrow K PoquetteItalyXuxue Feng UNQUALIFIED
Maria F MacleadFranceBernardo Dominic QUALIFIED
Aika V FigeroaRussiaIvan Magalhaes QUALIFIED
David D MorascaJapanAsiya Javayant UNQUALIFIED
Antonio G RoysterAustraliaBernardo Dominic PROPOSAL
Salvatore E WhobreyIndiaOnyama Limba QUALIFIED
Aditya Z FerenczCanadaAnna Fali NEGOTIATION
Claire A DarakjyRussiaIvan Magalhaes QUALIFIED
Leon O DilliardUnited KingdomXuxue Feng PROPOSAL
Cody X FollerGermanyXuxue Feng QUALIFIED
Jones M StockhamRussiaIoni Bowcher UNQUALIFIED
Izzy M DoeSpainXuxue Feng QUALIFIED
Kaitlin X MacleadItalyElwin Sharvill PROPOSAL
Clifford Y GauchoUnited KingdomStephen Shaw RENEWAL
Alejandro Y RulapaughRussiaOnyama Limba NEGOTIATION
Morrow L MaletSpainIoni Bowcher RENEWAL
Silvio M GauchoGermanyXuxue Feng RENEWAL
Jones B DilliardCanadaStephen Shaw RENEWAL
Alejandro W FerenczFranceXuxue Feng NEW
Julie D FlosiIndiaStephen Shaw NEW
Murillo D GlickAustraliaStephen Shaw RENEWAL
Costa X RimJapanAsiya Javayant RENEWAL
Ivar H InouyeSpainStephen Shaw NEGOTIATION
Faith W WhobreyItalyStephen Shaw PROPOSAL
Adams U BologniaRussiaAmy Elsner RENEWAL
Jefferson I ShinkoItalyElwin Sharvill RENEWAL
Clifford G DilliardCanadaBernardo Dominic NEW
Kadeem S RoysterUnited KingdomBernardo Dominic QUALIFIED
Leja S PerinItalyXuxue Feng PROPOSAL
Chavez B IturbideFranceIoni Bowcher UNQUALIFIED
Chavez S WhobreyJapanBernardo Dominic RENEWAL
David O DarakjyGermanyIvan Magalhaes NEGOTIATION
Aditya R RulapaughArgentinaAmy Elsner RENEWAL
Ivar G RimAustraliaXuxue Feng RENEWAL
Arvin K VenereSpainAnna Fali NEGOTIATION
Faith V MacleadArgentinaIoni Bowcher NEGOTIATION
Aika M FigeroaJapanStephen Shaw PROPOSAL
Clifford Z SergiIndiaAmy Elsner UNQUALIFIED
Claire Z WaycottJapanIvan Magalhaes PROPOSAL
Kaitlin C DoeGermanyStephen Shaw NEW
Munro A VocelkaBrazilBernardo Dominic PROPOSAL
Jeanfrancois E BowleyFranceXuxue Feng NEW
Silvio P DilliardCanadaAsiya Javayant NEGOTIATION
Julie J GlickGermanyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria Y WhobreyRussiaOnyama Limba PROPOSAL
Jones G MorascaSpainOnyama Limba NEGOTIATION
Francesco Q RoysterJapanIvan Magalhaes QUALIFIED
Mujtaba Z DarakjyIndiaStephen Shaw RENEWAL
Aika F RoysterSpainAnna Fali PROPOSAL
Alejandro O DilliardRussiaAnna Fali NEGOTIATION
Aika K VocelkaJapanStephen Shaw PROPOSAL
Mujtaba U DarakjyFranceOnyama Limba PROPOSAL
Chavez U WaycottJapanAsiya Javayant NEW
Francesco Q PoquetteAustraliaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar B NestleJapan2024-05-19Dorl, James J Esq RENEWAL49Ivan Magalhaes
1001Morrow B CaldareraFrance2024-04-21Buckley Miller Wright NEGOTIATION75Amy Elsner
1002Octavia V DoeItaly2024-05-18Chapman, Ross E Esq QUALIFIED21Anna Fali
1003Tony O DarakjyBrazil2024-05-06Rousseaux, Michael Esq UNQUALIFIED42Onyama Limba
1004Greenwood Q PaprockiBrazil2024-05-16Chanay, Jeffrey A Esq NEGOTIATION84Amy Elsner
1005Darci G SergiGermany2024-05-15Rangoni Of Florence NEW54Xuxue Feng
1006Chavez X WaycottUnited Kingdom2024-04-29King, Christopher A Esq RENEWAL85Amy Elsner
1007Clifford N ButtGermany2024-05-02Chapman, Ross E Esq NEGOTIATION52Asiya Javayant
1008David F DilliardSpain2024-05-11Truhlar And Truhlar Attys RENEWAL97Amy Elsner
1009Leon P CaudyCanada2024-04-22Rangoni Of Florence RENEWAL89Bernardo Dominic
1010Misaki D SergiItaly2024-05-13Printing Dimensions PROPOSAL59Bernardo Dominic
1011Stacey C VenereBrazil2024-05-06Dorl, James J Esq NEGOTIATION66Ivan Magalhaes
1012Stacey O BologniaRussia2024-04-23King, Christopher A Esq NEGOTIATION60Xuxue Feng
1013Morrow S ChuiArgentina2024-05-07Truhlar And Truhlar Attys NEGOTIATION15Anna Fali
1014Deepesh L BriddickRussia2024-05-16Morlong Associates RENEWAL66Onyama Limba
1015Sinclair E FigeroaFrance2024-04-24Chapman, Ross E Esq PROPOSAL53Anna Fali
1016Izzy I IturbideCanada2024-04-27King, Christopher A Esq NEW13Bernardo Dominic
1017Nicolas B FerenczArgentina2024-05-04Truhlar And Truhlar Attys UNQUALIFIED21Amy Elsner
1018Kadeem A NestleArgentina2024-04-29King, Christopher A Esq QUALIFIED28Anna Fali
1019Morrow N CaldareraFrance2024-05-06Chemel, James L Cpa NEGOTIATION27Ioni Bowcher
1020Kadeem K OldroydJapan2024-05-13Chanay, Jeffrey A Esq NEW64Elwin Sharvill
1021Mujtaba Q KuskoIndia2024-05-04King, Christopher A Esq QUALIFIED97Onyama Limba
1022Julie G FigeroaItaly2024-05-03Printing Dimensions RENEWAL30Ioni Bowcher
1023Stacey H KuskoBrazil2024-04-29Chemel, James L Cpa PROPOSAL7Amy Elsner
1024Salvatore F GlickRussia2024-04-21Feiner Bros UNQUALIFIED29Elwin Sharvill
1025Murillo M GlickRussia2024-04-22Chanay, Jeffrey A Esq NEGOTIATION87Bernardo Dominic
1026Aditya F StockhamRussia2024-05-04Printing Dimensions UNQUALIFIED3Bernardo Dominic
1027Antonio D DilliardUnited Kingdom2024-05-18Morlong Associates RENEWAL19Ivan Magalhaes
1028Wickens Z FerenczItaly2024-04-29Chapman, Ross E Esq PROPOSAL54Bernardo Dominic
1029Jones Z CampainUnited Kingdom2024-04-29Feltz Printing Service RENEWAL52Xuxue Feng
1030Salvatore F ShinkoRussia2024-05-20Printing Dimensions QUALIFIED77Bernardo Dominic
1031Jefferson M MarrierAustralia2024-05-11King, Christopher A Esq RENEWAL1Bernardo Dominic
1032Ricardo T WhobreyBrazil2024-05-18Benton, John B Jr PROPOSAL85Amy Elsner
1033Stacey Z MaletJapan2024-05-11Chapman, Ross E Esq PROPOSAL6Amy Elsner
1034Kadeem W AmigonRussia2024-04-30Feiner Bros RENEWAL99Xuxue Feng
1035Kadeem B MaletRussia2024-04-24Benton, John B Jr QUALIFIED9Anna Fali
1036Jones W VenereCanada2024-05-13Rousseaux, Michael Esq QUALIFIED37Xuxue Feng
1037Sinclair D RutaSpain2024-05-15Benton, John B Jr PROPOSAL40Ivan Magalhaes
1038Jones R PerinFrance2024-05-18Rousseaux, Michael Esq NEGOTIATION23Asiya Javayant
1039Chavez H MarrierUnited Kingdom2024-05-17Chemel, James L Cpa NEW10Anna Fali
1040Aruna Y RutaIndia2024-04-28Rangoni Of Florence QUALIFIED67Amy Elsner
1041Maisha Q RulapaughUnited Kingdom2024-05-09Commercial Press NEGOTIATION88Amy Elsner
1042Jennifer D PerinIndia2024-05-02Feiner Bros RENEWAL31Stephen Shaw
1043Leja K MarrierCanada2024-04-25Dorl, James J Esq QUALIFIED22Amy Elsner
1044Aika Q VocelkaArgentina2024-05-16Morlong Associates NEW58Xuxue Feng
1045Mujtaba D SchemmerIndia2024-05-03King, Christopher A Esq QUALIFIED99Ivan Magalhaes
1046Jefferson I KuskoArgentina2024-05-10Printing Dimensions PROPOSAL70Onyama Limba
1047Faith Z VocelkaSpain2024-05-04Printing Dimensions PROPOSAL61Xuxue Feng
1048Sinclair C WhobreyArgentina2024-05-07Feiner Bros QUALIFIED43Ioni Bowcher
1049Costa Y MaletUnited Kingdom2024-05-10Commercial Press NEW56Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Q GillianFranceStephen Shaw NEGOTIATION
Rodrigues N DilliardIndiaIvan Magalhaes RENEWAL
Tony H MaletArgentinaAnna Fali PROPOSAL
Ashley W PerinRussiaIoni Bowcher PROPOSAL
Ricardo H WhobreyIndiaAnna Fali PROPOSAL
Leja G NickaItalyElwin Sharvill NEGOTIATION
Aika M StensethFranceElwin Sharvill QUALIFIED
Isabel P NickaBrazilOnyama Limba RENEWAL
Maisha N WieserJapanAsiya Javayant UNQUALIFIED
Kadeem S NickaCanadaAnna Fali UNQUALIFIED
James R FollerBrazilAnna Fali QUALIFIED
Nicolas R AmigonBrazilIoni Bowcher NEW
Aruna C MorascaBrazilIoni Bowcher NEGOTIATION
Darci M PerinAustraliaOnyama Limba NEW
Kaitlin J MacleadIndiaIvan Magalhaes NEW
Jeanfrancois V AmigonIndiaAnna Fali UNQUALIFIED
David C RoysterFranceXuxue Feng RENEWAL
Ivar R MarrierRussiaXuxue Feng RENEWAL
Leja B PoquetteGermanyAnna Fali UNQUALIFIED
Stacey U OldroydJapanAmy Elsner NEGOTIATION
Jones S VenereArgentinaAmy Elsner RENEWAL
Ricardo B RulapaughSpainXuxue Feng QUALIFIED
Salvatore S GarufiCanadaBernardo Dominic UNQUALIFIED
Clifford E SaylorsRussiaBernardo Dominic UNQUALIFIED
Darci G GillianCanadaElwin Sharvill QUALIFIED
Tony Q AlbaresIndiaIoni Bowcher NEGOTIATION
Johnson O WaycottIndiaOnyama Limba RENEWAL
Clifford T RulapaughIndiaBernardo Dominic QUALIFIED
Leja I NickaIndiaElwin Sharvill NEW
Rodrigues T KuskoRussiaElwin Sharvill PROPOSAL
Leja G InouyeIndiaElwin Sharvill RENEWAL
Chavez O WieserRussiaAsiya Javayant UNQUALIFIED
Alejandro B ButtSpainXuxue Feng QUALIFIED
Morrow D MarrierJapanIoni Bowcher UNQUALIFIED
Julie F SchemmerFranceIoni Bowcher NEGOTIATION
Jeanfrancois Y RutaItalyBernardo Dominic PROPOSAL
Ivar P ChuiRussiaElwin Sharvill PROPOSAL
Silvio N PoquetteAustraliaStephen Shaw RENEWAL
Antonio Y SlusarskiArgentinaIvan Magalhaes RENEWAL
Izzy B WieserItalyElwin Sharvill PROPOSAL
Ricardo X MaletSpainBernardo Dominic UNQUALIFIED
Salvatore Z GauchoRussiaElwin Sharvill UNQUALIFIED
Munro N MarrierIndiaAnna Fali NEW
Clifford T AmigonSpainAnna Fali PROPOSAL
Misaki Q PerinJapanElwin Sharvill NEW
Juan S MorascaIndiaXuxue Feng PROPOSAL
Stacey F SlusarskiItalyStephen Shaw NEGOTIATION
Antonio T StensethArgentinaElwin Sharvill NEGOTIATION
Clifford X TollnerArgentinaBernardo Dominic PROPOSAL
Leja Y AmigonItalyElwin Sharvill NEGOTIATION
Frozen Columns
Name
Aditya I Ostrosky
Jeanfrancois B Dilliard
Kadeem S Kolmetz
Darci K Nicka
Morrow Z Campain
Stacey Y Slusarski
Ivar E Briddick
Juan E Maclead
Julie L Stockham
David U Butt
Faith A Dilliard
Darci A Butt
Adams V Slusarski
Izzy O Malet
David A Figeroa
Wickens I Ruta
Ivar E Perin
Alejandro P Maclead
Kadeem V Whobrey
Murillo D Maclead
Johnson L Bolognia
Chavez H Wieser
Morrow U Caldarera
Johnson T Flosi
Izzy K Campain
Antonio M Flosi
Misaki B Venere
Sinclair W Gaucho
Jefferson R Garufi
Faith X Paprocki
James N Tollner
Rodrigues J Caldarera
Wickens I Vocelka
Ricardo M Oldroyd
Murillo X Iturbide
Kaitlin Z Paprocki
Kaitlin Y Ostrosky
Ashley X Perin
Salvatore O Ostrosky
Kaitlin A Malet
Jones L Stenseth
Alejandro S Venere
Smith G Caldarera
Leon A Poquette
Jennifer R Gaucho
Mayumi P Flosi
Antonio M Malet
Mujtaba A Garufi
Sinclair J Wieser
Costa O Flosi
IdCountryDate
1000Germany2024-04-23
1001Canada2024-05-10
1002United Kingdom2024-05-10
1003United Kingdom2024-05-15
1004Germany2024-05-16
1005Russia2024-05-05
1006Russia2024-05-12
1007Brazil2024-04-28
1008Italy2024-05-17
1009Italy2024-05-04
1010India2024-04-24
1011United Kingdom2024-05-05
1012Australia2024-05-10
1013Canada2024-05-13
1014France2024-05-12
1015Russia2024-04-29
1016Brazil2024-05-13
1017India2024-05-13
1018India2024-04-25
1019Australia2024-04-29
1020Canada2024-05-16
1021Italy2024-05-12
1022Italy2024-04-30
1023Japan2024-05-13
1024India2024-05-02
1025Italy2024-04-22
1026Argentina2024-05-03
1027United Kingdom2024-04-27
1028United Kingdom2024-05-03
1029Australia2024-05-19
1030Brazil2024-04-24
1031India2024-05-19
1032Russia2024-04-22
1033Brazil2024-05-09
1034Italy2024-05-11
1035Spain2024-05-13
1036Japan2024-04-27
1037Japan2024-05-05
1038Germany2024-04-23
1039Spain2024-05-11
1040Brazil2024-04-27
1041Spain2024-04-28
1042France2024-05-08
1043Spain2024-04-21
1044Canada2024-04-30
1045Spain2024-04-21
1046Brazil2024-05-18
1047Australia2024-05-14
1048Italy2024-05-06
1049Australia2024-05-19

On-Demand Data

NameIdCountryDate
Claire L Whobrey1000Germany2024-04-27
Salvatore I Royster1001Argentina2024-05-15
Maria Z Albares1002Canada2024-05-11
Deepesh R Marrier1003Brazil2024-05-07
Sinclair T Perin1004Australia2024-05-04
Smith E Iturbide1005France2024-05-06
Mujtaba L Kolmetz1006Brazil2024-05-07
Sinclair B Ostrosky1007Australia2024-05-01
Ricardo O Campain1008Canada2024-05-14
Cody P Bowley1009Canada2024-05-17
James I Butt1010France2024-04-23
Darci O Kolmetz1011Brazil2024-05-01
Costa W Bowley1012Brazil2024-05-16
Ricardo B Bolognia1013Germany2024-05-03
Salvatore G Tollner1014Germany2024-05-11
Mujtaba Z Figeroa1015Japan2024-05-02
Leja R Darakjy1016Spain2024-05-14
Morrow S Glick1017Germany2024-04-28
Mujtaba N Inouye1018Germany2024-04-23
Mayumi V Kolmetz1019Argentina2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues B ButtIndiaIvan Magalhaes RENEWAL
Silvio I ChuiUnited KingdomBernardo Dominic PROPOSAL
Maria E NestleUnited KingdomAsiya Javayant PROPOSAL
Ashley W CaudyIndiaAnna Fali UNQUALIFIED
Smith O FigeroaGermanyStephen Shaw NEGOTIATION
Munro R RoysterUnited KingdomAsiya Javayant NEGOTIATION
Isabel F GillianBrazilBernardo Dominic RENEWAL
Nicolas C ChuiIndiaStephen Shaw NEGOTIATION
Julie F DoeArgentinaOnyama Limba UNQUALIFIED
Deepesh V MaletRussiaAmy Elsner PROPOSAL
Izzy K ShinkoIndiaAmy Elsner NEGOTIATION
Morrow S SchemmerRussiaOnyama Limba NEGOTIATION
Morrow F AmigonJapanBernardo Dominic PROPOSAL
Mayumi F SaylorsCanadaAsiya Javayant NEW
Morrow K CaldareraAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois Z AlbaresJapanElwin Sharvill RENEWAL
Mayumi K KuskoFranceAmy Elsner PROPOSAL
Juan A RutaJapanElwin Sharvill NEGOTIATION
Izzy P IturbideJapanStephen Shaw PROPOSAL
Emily J BowleyCanadaStephen Shaw QUALIFIED
Darci H RulapaughIndiaAmy Elsner PROPOSAL
Deepesh P SlusarskiIndiaElwin Sharvill UNQUALIFIED
Sinclair Q FollerArgentinaXuxue Feng RENEWAL
Wickens M RimItalyIoni Bowcher UNQUALIFIED
Alejandro E RulapaughIndiaIoni Bowcher RENEWAL
Antonio T StensethCanadaBernardo Dominic NEGOTIATION
Greenwood P GauchoRussiaIoni Bowcher UNQUALIFIED
Adams U VenereIndiaAsiya Javayant NEGOTIATION
Aika H DoeCanadaXuxue Feng NEGOTIATION
Sinclair S PerinUnited KingdomElwin Sharvill NEW
Cody O ShinkoIndiaStephen Shaw QUALIFIED
Julie B CampainGermanyIoni Bowcher UNQUALIFIED
Jefferson A FlosiAustraliaXuxue Feng RENEWAL
James B StensethItalyAsiya Javayant PROPOSAL
Juan H RimItalyStephen Shaw RENEWAL
Morrow C TollnerFranceElwin Sharvill PROPOSAL
Munro P WieserCanadaBernardo Dominic QUALIFIED
Ivar B KolmetzFranceElwin Sharvill PROPOSAL
Salvatore D FigeroaRussiaBernardo Dominic PROPOSAL
Maisha O WaycottCanadaIvan Magalhaes 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>