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
Antonio W TollnerArgentinaIoni Bowcher NEGOTIATION
Mujtaba C WhobreyAustraliaOnyama Limba RENEWAL
Ashley S RutaArgentinaAmy Elsner RENEWAL
Juan O DilliardItalyStephen Shaw QUALIFIED
Jeanfrancois K AmigonArgentinaIvan Magalhaes QUALIFIED
Costa I MacleadBrazilIvan Magalhaes NEGOTIATION
Juan J IturbideArgentinaAnna Fali NEW
Salvatore O MorascaBrazilIoni Bowcher NEW
Julie D ChuiRussiaElwin Sharvill RENEWAL
Sinclair L RoysterGermanyOnyama Limba PROPOSAL
Maisha H SchemmerRussiaBernardo Dominic PROPOSAL
Ricardo B MarrierGermanyBernardo Dominic QUALIFIED
Wickens V WhobreyCanadaXuxue Feng NEGOTIATION
Emily E RutaBrazilIvan Magalhaes UNQUALIFIED
David K PaprockiCanadaXuxue Feng NEGOTIATION
Antonio Y ChuiAustraliaAsiya Javayant NEGOTIATION
Octavia Y SlusarskiBrazilAsiya Javayant PROPOSAL
Claire Q BologniaIndiaStephen Shaw NEGOTIATION
Murillo Y InouyeAustraliaBernardo Dominic RENEWAL
Octavia F FigeroaCanadaIvan Magalhaes UNQUALIFIED
James C KolmetzAustraliaOnyama Limba QUALIFIED
Salvatore G StensethItalyStephen Shaw NEGOTIATION
Ashley D MorascaItalyAnna Fali NEGOTIATION
Alejandro P PaprockiGermanyIvan Magalhaes QUALIFIED
Ashley B KolmetzItalyIoni Bowcher RENEWAL
Rodrigues J MaletCanadaBernardo Dominic NEGOTIATION
Aditya Q AlbaresJapanAmy Elsner UNQUALIFIED
David W SchemmerFranceIoni Bowcher RENEWAL
Kadeem P NickaItalyElwin Sharvill PROPOSAL
Juan M SchemmerCanadaXuxue Feng NEGOTIATION
Morrow X AlbaresIndiaOnyama Limba UNQUALIFIED
Maria N RutaRussiaBernardo Dominic PROPOSAL
Nicolas C BologniaAustraliaOnyama Limba NEW
Ricardo S OstroskyRussiaIvan Magalhaes NEW
Kaitlin Z PerinCanadaXuxue Feng PROPOSAL
Jefferson Q ChuiCanadaXuxue Feng NEW
Jones D BriddickCanadaXuxue Feng NEGOTIATION
Salvatore I GauchoSpainBernardo Dominic UNQUALIFIED
Leja I VocelkaAustraliaIvan Magalhaes NEW
Kaitlin M WhobreyUnited KingdomBernardo Dominic NEW
Mayumi I DarakjyFranceAsiya Javayant NEGOTIATION
Kadeem Z RutaRussiaElwin Sharvill NEW
Arvin C MarrierCanadaBernardo Dominic RENEWAL
Faith X BriddickUnited KingdomAnna Fali NEGOTIATION
Jones B CampainSpainAnna Fali RENEWAL
Ivar O BologniaFranceAmy Elsner RENEWAL
Costa C GillianIndiaIoni Bowcher NEGOTIATION
Maria P FollerUnited KingdomBernardo Dominic RENEWAL
Leon K TollnerUnited KingdomOnyama Limba PROPOSAL
Arvin B MorascaJapanStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Chavez D CampainSpainBernardo Dominic NEW
Misaki E SergiAustraliaAsiya Javayant NEW
Stacey D GarufiCanadaElwin Sharvill NEGOTIATION
Faith M VenereFranceAmy Elsner NEW
Ashley H StensethBrazilAmy Elsner NEW
Costa O InouyeJapanBernardo Dominic QUALIFIED
Francesco U SchemmerJapanElwin Sharvill NEW
Salvatore G SaylorsArgentinaAnna Fali NEGOTIATION
Claire W VocelkaArgentinaBernardo Dominic QUALIFIED
Rodrigues J GlickItalyOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco L MaletGermany2024-04-19Dorl, James J Esq RENEWAL48Asiya Javayant
1001Jones S MarrierFrance2024-04-18Truhlar And Truhlar Attys NEW83Bernardo Dominic
1002James F RimFrance2024-04-20Feiner Bros QUALIFIED9Amy Elsner
1003Ricardo V KolmetzBrazil2024-04-15Feiner Bros NEW67Amy Elsner
1004Octavia P RulapaughUnited Kingdom2024-04-14Commercial Press QUALIFIED33Asiya Javayant
1005Ivar M StensethUnited Kingdom2024-03-28Dorl, James J Esq RENEWAL91Elwin Sharvill
1006Chavez J RutaItaly2024-04-02Printing Dimensions NEW50Ioni Bowcher
1007Chavez V CaudyUnited Kingdom2024-03-28Dorl, James J Esq NEGOTIATION91Stephen Shaw
1008Ivar A SaylorsJapan2024-04-20Feltz Printing Service NEW12Xuxue Feng
1009Maria O WaycottFrance2024-04-14Printing Dimensions QUALIFIED25Xuxue Feng
1010Jefferson J GlickJapan2024-04-24King, Christopher A Esq RENEWAL30Asiya Javayant
1011Munro V ChuiUnited Kingdom2024-04-01Chanay, Jeffrey A Esq UNQUALIFIED75Amy Elsner
1012Nicolas M WhobreyItaly2024-04-23Feltz Printing Service RENEWAL31Ivan Magalhaes
1013Murillo K NickaArgentina2024-04-07Feltz Printing Service RENEWAL90Xuxue Feng
1014Jefferson X BowleyJapan2024-04-12Chanay, Jeffrey A Esq RENEWAL19Bernardo Dominic
1015Sinclair F IturbideCanada2024-03-31Commercial Press NEW34Xuxue Feng
1016Izzy A PerinUnited Kingdom2024-04-21Dorl, James J Esq PROPOSAL24Bernardo Dominic
1017Misaki D KuskoJapan2024-04-21Chapman, Ross E Esq NEGOTIATION57Onyama Limba
1018Izzy T RulapaughJapan2024-04-07Chemel, James L Cpa RENEWAL59Ivan Magalhaes
1019Mayumi B GillianFrance2024-04-17Chapman, Ross E Esq NEW50Elwin Sharvill
1020Maria D CaldareraAustralia2024-04-17Feiner Bros NEW87Anna Fali
1021Kaitlin X KuskoAustralia2024-04-23Truhlar And Truhlar Attys NEGOTIATION88Elwin Sharvill
1022Julie K FlosiArgentina2024-03-29Rangoni Of Florence QUALIFIED52Amy Elsner
1023Silvio R CaudyCanada2024-04-18Chapman, Ross E Esq PROPOSAL22Onyama Limba
1024Jefferson S PoquetteArgentina2024-04-06Chapman, Ross E Esq NEW9Anna Fali
1025Nicolas B MaletIndia2024-04-22Feltz Printing Service QUALIFIED24Elwin Sharvill
1026Claire H ShinkoItaly2024-03-28Chemel, James L Cpa RENEWAL44Bernardo Dominic
1027Kadeem E KolmetzAustralia2024-04-24Chanay, Jeffrey A Esq RENEWAL53Xuxue Feng
1028Jones O IturbideArgentina2024-04-06Printing Dimensions QUALIFIED24Amy Elsner
1029Octavia M StockhamAustralia2024-04-14Rangoni Of Florence NEW87Ioni Bowcher
1030Ashley A InouyeJapan2024-04-16Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1031Aika X GlickRussia2024-03-29Chapman, Ross E Esq UNQUALIFIED58Amy Elsner
1032Kadeem A MaletItaly2024-03-27Truhlar And Truhlar Attys UNQUALIFIED29Ioni Bowcher
1033Jennifer B SaylorsRussia2024-03-29Rousseaux, Michael Esq NEW42Anna Fali
1034Ashley R WaycottRussia2024-04-02Rousseaux, Michael Esq PROPOSAL48Amy Elsner
1035Deepesh N FerenczIndia2024-04-18Rangoni Of Florence RENEWAL38Amy Elsner
1036Alejandro N MacleadCanada2024-04-23Buckley Miller Wright PROPOSAL21Anna Fali
1037Octavia N WaycottAustralia2024-04-04Feiner Bros NEGOTIATION55Elwin Sharvill
1038Jeanfrancois A WaycottSpain2024-03-30Dorl, James J Esq PROPOSAL33Stephen Shaw
1039Deepesh Q SaylorsRussia2024-04-01Feiner Bros UNQUALIFIED78Anna Fali
1040Julie A PerinBrazil2024-04-22Buckley Miller Wright PROPOSAL98Bernardo Dominic
1041Jefferson P NestleCanada2024-04-04Dorl, James J Esq PROPOSAL64Ivan Magalhaes
1042Rodrigues Z RutaRussia2024-03-29Rousseaux, Michael Esq RENEWAL11Asiya Javayant
1043Cody N NestleUnited Kingdom2024-04-12Rangoni Of Florence PROPOSAL46Asiya Javayant
1044Tony B FlosiAustralia2024-04-18Buckley Miller Wright NEGOTIATION33Elwin Sharvill
1045Greenwood L OldroydAustralia2024-04-17Rousseaux, Michael Esq UNQUALIFIED47Amy Elsner
1046Izzy K VocelkaFrance2024-04-08Chapman, Ross E Esq QUALIFIED72Xuxue Feng
1047Ricardo C AmigonRussia2024-04-07Benton, John B Jr NEW60Amy Elsner
1048Antonio F KuskoFrance2024-04-14King, Christopher A Esq QUALIFIED29Elwin Sharvill
1049Kadeem I PerinUnited Kingdom2024-04-19Chemel, James L Cpa PROPOSAL52Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily G InouyeFranceElwin Sharvill RENEWAL
Munro F FigeroaBrazilBernardo Dominic QUALIFIED
Chavez E IturbideItalyIvan Magalhaes PROPOSAL
Darci V MaletUnited KingdomIvan Magalhaes RENEWAL
Tony Q SaylorsAustraliaXuxue Feng QUALIFIED
Izzy A InouyeBrazilAsiya Javayant NEW
Antonio Y BologniaUnited KingdomBernardo Dominic NEGOTIATION
Johnson B GillianFranceXuxue Feng UNQUALIFIED
Alejandro C OldroydBrazilAmy Elsner NEGOTIATION
Smith L WieserIndiaIvan Magalhaes UNQUALIFIED
Faith A SlusarskiFranceAsiya Javayant NEW
Aruna Z DarakjyCanadaOnyama Limba NEGOTIATION
Ricardo E RimJapanIvan Magalhaes PROPOSAL
Tony F RulapaughJapanStephen Shaw RENEWAL
Claire I VocelkaItalyStephen Shaw QUALIFIED
Alejandro Z MacleadIndiaAnna Fali NEGOTIATION
Ashley Y CaudyJapanAsiya Javayant QUALIFIED
Antonio M VenereFranceXuxue Feng RENEWAL
Arvin W CaldareraJapanOnyama Limba NEW
Antonio M PoquetteJapanXuxue Feng UNQUALIFIED
Leja I DoeCanadaAmy Elsner NEW
Salvatore Z CampainGermanyOnyama Limba NEW
Ivar U RutaJapanElwin Sharvill UNQUALIFIED
Kaitlin R CaudyBrazilAnna Fali QUALIFIED
Emily F MaletItalyOnyama Limba NEGOTIATION
Ashley V InouyeSpainIvan Magalhaes UNQUALIFIED
Rodrigues U WaycottGermanyIvan Magalhaes QUALIFIED
Ashley B InouyeJapanAmy Elsner PROPOSAL
Izzy W WieserJapanAmy Elsner NEW
Isabel G IturbideGermanyXuxue Feng UNQUALIFIED
Leja O PaprockiJapanAmy Elsner QUALIFIED
Smith M TollnerAustraliaAsiya Javayant NEGOTIATION
Jennifer N PaprockiBrazilAmy Elsner QUALIFIED
Silvio H OstroskyCanadaBernardo Dominic NEGOTIATION
Kadeem Y IturbideCanadaAmy Elsner NEGOTIATION
Kadeem K FlosiItalyOnyama Limba UNQUALIFIED
Mayumi T RoysterUnited KingdomIoni Bowcher PROPOSAL
Misaki I ButtGermanyAnna Fali UNQUALIFIED
Murillo Y RoysterFranceAsiya Javayant NEW
Leja N GauchoCanadaXuxue Feng PROPOSAL
Misaki C PaprockiBrazilIoni Bowcher NEGOTIATION
Jeanfrancois D StockhamCanadaAnna Fali NEGOTIATION
Munro C MarrierIndiaAnna Fali PROPOSAL
Octavia K GauchoJapanOnyama Limba RENEWAL
Arvin W ChuiIndiaOnyama Limba NEGOTIATION
Clifford Q WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens G ShinkoItalyStephen Shaw QUALIFIED
Izzy L MorascaItalyAnna Fali QUALIFIED
Julie Z VenereItalyBernardo Dominic NEW
Munro H InouyeItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Ivar Z Marrier
Jefferson G Marrier
Juan S Kolmetz
Aika K Darakjy
Jeanfrancois Q Whobrey
Sinclair F Doe
Greenwood E Butt
Costa D Kolmetz
Stacey A Morasca
Aruna D Gaucho
Ashley M Garufi
James V Rim
Costa L Iturbide
Chavez S Butt
Munro U Sergi
Maria Z Slusarski
Antonio Y Dilliard
Jefferson U Flosi
Aika Q Caldarera
Tony F Nicka
Francesco Z Ferencz
Aruna H Caldarera
Nicolas Q Ruta
Isabel B Gillian
Aruna F Figeroa
Munro B Stockham
Rodrigues T Marrier
Arvin N Tollner
James C Morasca
Munro A Sergi
Cody M Garufi
Ashley Q Butt
Adams K Oldroyd
Ricardo W Stockham
Maisha M Slusarski
Sinclair N Malet
Maria O Poquette
Clifford F Poquette
Greenwood N Nestle
Alejandro A Morasca
Emily P Ferencz
Julie W Whobrey
Julie L Oldroyd
Salvatore P Saylors
Cody L Caudy
Murillo P Marrier
Cody N Waycott
Maisha W Figeroa
Silvio L Flosi
Deepesh M Nicka
IdCountryDate
1000Argentina2024-04-06
1001Australia2024-04-09
1002Canada2024-04-22
1003Canada2024-04-19
1004Germany2024-04-07
1005Australia2024-04-07
1006Russia2024-04-11
1007France2024-04-14
1008United Kingdom2024-04-21
1009Australia2024-04-03
1010Brazil2024-04-09
1011Italy2024-04-13
1012Spain2024-04-05
1013Brazil2024-04-02
1014Japan2024-04-16
1015Australia2024-03-29
1016Japan2024-04-19
1017United Kingdom2024-04-14
1018Japan2024-04-04
1019Spain2024-04-13
1020Canada2024-04-15
1021Italy2024-03-30
1022India2024-04-20
1023India2024-04-08
1024Russia2024-03-31
1025Australia2024-04-22
1026Germany2024-04-24
1027France2024-04-19
1028Italy2024-04-11
1029Japan2024-04-03
1030India2024-04-10
1031Argentina2024-04-02
1032United Kingdom2024-04-18
1033Russia2024-04-13
1034Japan2024-03-29
1035India2024-04-02
1036Australia2024-04-02
1037France2024-04-24
1038United Kingdom2024-03-28
1039Australia2024-04-13
1040Canada2024-04-06
1041Canada2024-04-01
1042Russia2024-04-02
1043Japan2024-04-07
1044Italy2024-04-22
1045Italy2024-03-31
1046Australia2024-04-09
1047Japan2024-03-29
1048Italy2024-04-12
1049Japan2024-04-05

On-Demand Data

NameIdCountryDate
Misaki I Figeroa1000Italy2024-03-29
Costa A Ferencz1001France2024-04-11
Rodrigues E Doe1002Spain2024-04-05
Clifford B Stockham1003Canada2024-04-10
Izzy W Malet1004Spain2024-03-30
Ashley C Whobrey1005Argentina2024-03-30
Deepesh T Chui1006Japan2024-04-25
Munro L Venere1007Spain2024-04-15
James A Dilliard1008Spain2024-04-05
Adams K Whobrey1009Germany2024-03-28
Murillo S Amigon1010Japan2024-04-14
Chavez Z Gillian1011Japan2024-04-23
Emily Y Flosi1012Russia2024-04-19
Francesco J Maclead1013Spain2024-04-16
Stacey D Rim1014Japan2024-04-15
Claire H Royster1015Argentina2024-04-18
Deepesh H Wieser1016Russia2024-04-07
Julie D Oldroyd1017Canada2024-04-21
Leja N Sergi1018Japan2024-04-10
Costa S Perin1019United Kingdom2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow L DarakjyFranceBernardo Dominic NEGOTIATION
Salvatore S RutaArgentinaXuxue Feng QUALIFIED
Claire A CaudyItalyIoni Bowcher UNQUALIFIED
Rodrigues S AmigonGermanyAsiya Javayant UNQUALIFIED
Ricardo H GauchoRussiaOnyama Limba NEW
Arvin K SchemmerRussiaAnna Fali NEGOTIATION
Ashley M SaylorsJapanBernardo Dominic PROPOSAL
Aruna X BologniaAustraliaIvan Magalhaes QUALIFIED
Leon Z ButtSpainAnna Fali RENEWAL
Arvin F DarakjyFranceBernardo Dominic NEW
Ricardo N WaycottCanadaElwin Sharvill QUALIFIED
Emily X BriddickBrazilOnyama Limba RENEWAL
Arvin O FerenczJapanXuxue Feng PROPOSAL
Rodrigues N FlosiArgentinaBernardo Dominic RENEWAL
Stacey C MorascaCanadaOnyama Limba QUALIFIED
Kadeem U RutaCanadaAnna Fali PROPOSAL
Misaki I RoysterBrazilAnna Fali NEGOTIATION
Deepesh M GillianFranceAsiya Javayant RENEWAL
Costa L NickaUnited KingdomAnna Fali NEGOTIATION
Maria J FigeroaAustraliaAnna Fali PROPOSAL
Maisha P VenereGermanyBernardo Dominic NEGOTIATION
Kadeem K WhobreyGermanyXuxue Feng QUALIFIED
Mayumi P ChuiJapanAmy Elsner QUALIFIED
Costa S CampainUnited KingdomIvan Magalhaes RENEWAL
Salvatore J IturbideFranceAmy Elsner NEGOTIATION
Aditya M MorascaFranceAsiya Javayant PROPOSAL
Jennifer F FerenczBrazilStephen Shaw NEGOTIATION
Nicolas P GauchoArgentinaAnna Fali NEGOTIATION
Mujtaba J ButtRussiaAmy Elsner PROPOSAL
Aruna B RulapaughGermanyIvan Magalhaes UNQUALIFIED
Sinclair T GauchoCanadaAmy Elsner NEGOTIATION
Smith A ShinkoBrazilIoni Bowcher QUALIFIED
Leja T InouyeRussiaAnna Fali NEGOTIATION
Munro C SchemmerIndiaAmy Elsner UNQUALIFIED
Misaki T MorascaJapanBernardo Dominic PROPOSAL
Julie U CaldareraCanadaIvan Magalhaes NEGOTIATION
Isabel U NestleItalyXuxue Feng PROPOSAL
Arvin A ChuiItalyAnna Fali PROPOSAL
Aika Y WaycottItalyAnna Fali NEGOTIATION
Jefferson S RulapaughAustraliaAsiya Javayant 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>