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 P PaprockiSpainIoni Bowcher UNQUALIFIED
Costa V IturbideAustraliaAmy Elsner NEGOTIATION
Adams C PerinFranceAnna Fali QUALIFIED
Rodrigues T FlosiBrazilAnna Fali UNQUALIFIED
Murillo O MorascaIndiaAnna Fali PROPOSAL
Leja I PerinIndiaAsiya Javayant QUALIFIED
Misaki E StensethRussiaOnyama Limba RENEWAL
Costa U SergiUnited KingdomStephen Shaw NEGOTIATION
Claire K WaycottFranceIoni Bowcher RENEWAL
David Z StockhamUnited KingdomElwin Sharvill NEGOTIATION
Munro S BriddickArgentinaIoni Bowcher NEW
Francesco F DarakjyArgentinaElwin Sharvill NEGOTIATION
Darci W PerinItalyOnyama Limba QUALIFIED
Jefferson R RimFranceIvan Magalhaes UNQUALIFIED
David S CaldareraIndiaElwin Sharvill UNQUALIFIED
Aika E WaycottUnited KingdomAnna Fali NEW
Smith R RoysterItalyXuxue Feng NEGOTIATION
Alejandro Z NickaUnited KingdomXuxue Feng QUALIFIED
Nicolas W KuskoItalyOnyama Limba QUALIFIED
Greenwood F CampainItalyOnyama Limba PROPOSAL
Emily Q GlickGermanyIoni Bowcher QUALIFIED
Aditya F WhobreyArgentinaBernardo Dominic NEGOTIATION
Rodrigues D SaylorsJapanAnna Fali PROPOSAL
Ricardo L GauchoItalyAnna Fali RENEWAL
Darci R SergiBrazilAsiya Javayant UNQUALIFIED
James F SlusarskiGermanyAsiya Javayant PROPOSAL
Jones P BowleyFranceAmy Elsner QUALIFIED
Stacey O GarufiIndiaElwin Sharvill RENEWAL
Jennifer A WieserItalyXuxue Feng NEGOTIATION
Stacey W SaylorsUnited KingdomXuxue Feng QUALIFIED
Murillo U PaprockiAustraliaAmy Elsner PROPOSAL
Adams E CaudyAustraliaAmy Elsner RENEWAL
Misaki O PerinRussiaIvan Magalhaes QUALIFIED
Salvatore S AmigonUnited KingdomIoni Bowcher PROPOSAL
Aditya P WaycottJapanStephen Shaw QUALIFIED
Cody V CaldareraSpainAmy Elsner NEGOTIATION
Sinclair Y TollnerItalyOnyama Limba UNQUALIFIED
Izzy R FigeroaBrazilBernardo Dominic UNQUALIFIED
Claire Z MorascaJapanIvan Magalhaes NEW
Aruna F CaudyAustraliaStephen Shaw UNQUALIFIED
Wickens X CaudySpainAmy Elsner QUALIFIED
Jefferson B OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Antonio S BriddickBrazilOnyama Limba QUALIFIED
Cody E IturbideArgentinaBernardo Dominic PROPOSAL
Maria M PerinFranceBernardo Dominic NEW
Greenwood J StockhamItalyXuxue Feng NEW
Leja D AlbaresJapanOnyama Limba RENEWAL
Claire X GillianFranceOnyama Limba NEGOTIATION
Munro P StensethAustraliaAsiya Javayant QUALIFIED
Costa O CampainBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas P IturbideBrazilIvan Magalhaes PROPOSAL
Isabel A GlickGermanyIoni Bowcher PROPOSAL
Julie R RulapaughJapanAnna Fali NEGOTIATION
Isabel Z DarakjyIndiaIvan Magalhaes RENEWAL
Ashley C WieserRussiaXuxue Feng UNQUALIFIED
Claire P OldroydIndiaIvan Magalhaes NEGOTIATION
Chavez X VenereJapanElwin Sharvill UNQUALIFIED
Chavez R DilliardJapanIoni Bowcher UNQUALIFIED
Munro S FigeroaBrazilOnyama Limba PROPOSAL
Darci N WhobreyIndiaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh C PoquetteItaly2024-04-25Dorl, James J Esq RENEWAL74Ivan Magalhaes
1001Aditya B InouyeSpain2024-04-23Chemel, James L Cpa NEGOTIATION41Amy Elsner
1002Johnson F PaprockiIndia2024-05-01Morlong Associates QUALIFIED95Ivan Magalhaes
1003Tony L OldroydArgentina2024-04-23Buckley Miller Wright NEW38Bernardo Dominic
1004Aditya Y NickaAustralia2024-04-22Benton, John B Jr PROPOSAL73Stephen Shaw
1005Deepesh T CaudyItaly2024-04-19Buckley Miller Wright QUALIFIED37Stephen Shaw
1006Ashley A BowleyFrance2024-04-19Truhlar And Truhlar Attys QUALIFIED20Stephen Shaw
1007Sinclair O IturbideSpain2024-05-05Printing Dimensions PROPOSAL44Xuxue Feng
1008Tony R ChuiItaly2024-04-28Rousseaux, Michael Esq NEGOTIATION5Bernardo Dominic
1009Clifford C OldroydBrazil2024-04-07Buckley Miller Wright NEW33Xuxue Feng
1010Kadeem U PerinBrazil2024-04-14Feltz Printing Service QUALIFIED16Elwin Sharvill
1011Johnson K CaldareraGermany2024-04-29Morlong Associates UNQUALIFIED75Elwin Sharvill
1012Mujtaba F GauchoBrazil2024-04-22Chapman, Ross E Esq UNQUALIFIED98Asiya Javayant
1013Aruna P GarufiBrazil2024-04-07Chanay, Jeffrey A Esq NEGOTIATION56Xuxue Feng
1014Johnson P NestleArgentina2024-04-08King, Christopher A Esq PROPOSAL54Xuxue Feng
1015Julie R PerinArgentina2024-04-26Chanay, Jeffrey A Esq NEW1Ivan Magalhaes
1016Morrow H MaletRussia2024-04-22Feltz Printing Service PROPOSAL84Bernardo Dominic
1017Juan E AmigonGermany2024-05-01Rousseaux, Michael Esq QUALIFIED47Onyama Limba
1018Ashley N GarufiBrazil2024-04-22Feltz Printing Service UNQUALIFIED81Asiya Javayant
1019Francesco O StockhamSpain2024-04-23Feiner Bros QUALIFIED89Ivan Magalhaes
1020Aika A InouyeUnited Kingdom2024-04-29Printing Dimensions UNQUALIFIED8Xuxue Feng
1021Sinclair W OldroydRussia2024-04-27Dorl, James J Esq PROPOSAL13Elwin Sharvill
1022Mayumi E MorascaItaly2024-04-21Rousseaux, Michael Esq PROPOSAL87Stephen Shaw
1023Darci J SchemmerCanada2024-04-08Benton, John B Jr RENEWAL41Ioni Bowcher
1024Aruna C OldroydCanada2024-04-07King, Christopher A Esq QUALIFIED71Ioni Bowcher
1025Chavez X CaldareraFrance2024-04-28Chanay, Jeffrey A Esq NEW41Stephen Shaw
1026Wickens R BowleyCanada2024-04-28Feltz Printing Service QUALIFIED19Anna Fali
1027Clifford Q TollnerUnited Kingdom2024-04-23Feltz Printing Service RENEWAL37Ivan Magalhaes
1028Darci Q MarrierArgentina2024-04-28Dorl, James J Esq UNQUALIFIED78Stephen Shaw
1029Tony U FollerSpain2024-04-27Commercial Press RENEWAL74Elwin Sharvill
1030Mujtaba R WaycottUnited Kingdom2024-04-15Chapman, Ross E Esq PROPOSAL77Xuxue Feng
1031Tony F OldroydCanada2024-04-27Truhlar And Truhlar Attys RENEWAL81Ivan Magalhaes
1032Juan E CampainSpain2024-04-08King, Christopher A Esq NEGOTIATION49Xuxue Feng
1033Silvio S FollerGermany2024-04-21Printing Dimensions RENEWAL89Onyama Limba
1034Cody X SaylorsJapan2024-04-21Chemel, James L Cpa NEGOTIATION85Amy Elsner
1035Kaitlin V StockhamGermany2024-04-24Printing Dimensions NEW78Bernardo Dominic
1036Leon F PaprockiAustralia2024-04-29Truhlar And Truhlar Attys PROPOSAL98Elwin Sharvill
1037Kaitlin F DarakjyCanada2024-04-24Chapman, Ross E Esq UNQUALIFIED20Elwin Sharvill
1038Johnson M DarakjyRussia2024-04-28Morlong Associates UNQUALIFIED78Amy Elsner
1039David F WieserArgentina2024-04-19Feiner Bros NEW25Onyama Limba
1040David U PoquetteJapan2024-04-23Chanay, Jeffrey A Esq RENEWAL73Ivan Magalhaes
1041Adams O GlickArgentina2024-05-05Commercial Press NEW22Bernardo Dominic
1042Jefferson D WhobreyCanada2024-04-12King, Christopher A Esq RENEWAL70Onyama Limba
1043Maisha K BowleySpain2024-04-07Feltz Printing Service QUALIFIED75Ioni Bowcher
1044Cody L GlickIndia2024-05-05Rousseaux, Michael Esq UNQUALIFIED47Ivan Magalhaes
1045Jones S DilliardGermany2024-04-29Dorl, James J Esq QUALIFIED94Elwin Sharvill
1046Claire Q MaletUnited Kingdom2024-05-03Feiner Bros QUALIFIED82Xuxue Feng
1047Rodrigues D OldroydSpain2024-04-20Truhlar And Truhlar Attys QUALIFIED95Anna Fali
1048Jones A MaletGermany2024-04-14Feltz Printing Service PROPOSAL85Ioni Bowcher
1049Murillo K GarufiIndia2024-04-08Chanay, Jeffrey A Esq NEW7Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin F MarrierCanadaAnna Fali NEW
Ivar T RulapaughUnited KingdomAnna Fali NEW
Claire A GlickBrazilIvan Magalhaes PROPOSAL
Deepesh L RulapaughUnited KingdomBernardo Dominic NEW
James M ShinkoGermanyAmy Elsner NEGOTIATION
Nicolas D GarufiJapanStephen Shaw RENEWAL
Johnson Q AlbaresItalyIoni Bowcher NEW
Aditya F OldroydItalyAsiya Javayant PROPOSAL
Ivar B KolmetzJapanIoni Bowcher PROPOSAL
Darci P MarrierCanadaBernardo Dominic NEGOTIATION
Ashley M FigeroaAustraliaAmy Elsner UNQUALIFIED
Leja B RutaRussiaAsiya Javayant RENEWAL
Jeanfrancois F AmigonFranceAnna Fali PROPOSAL
Ivar E KuskoArgentinaIvan Magalhaes QUALIFIED
Jennifer U VenereFranceBernardo Dominic PROPOSAL
Jennifer V BologniaUnited KingdomIoni Bowcher NEGOTIATION
Leon J NestleIndiaAsiya Javayant UNQUALIFIED
Johnson C RutaAustraliaIoni Bowcher PROPOSAL
Jones H MorascaSpainAnna Fali QUALIFIED
Jennifer H ButtIndiaXuxue Feng NEGOTIATION
Morrow W GlickSpainAmy Elsner NEW
Claire C TollnerAustraliaAsiya Javayant QUALIFIED
Tony N PerinCanadaAsiya Javayant RENEWAL
Izzy W MaletBrazilElwin Sharvill NEGOTIATION
Aika Y SchemmerRussiaBernardo Dominic NEGOTIATION
Jeanfrancois X FigeroaUnited KingdomBernardo Dominic RENEWAL
Sinclair T MacleadArgentinaElwin Sharvill RENEWAL
Misaki U WieserFranceIvan Magalhaes UNQUALIFIED
Morrow Y DilliardBrazilAmy Elsner NEW
Leon O DarakjyRussiaAnna Fali QUALIFIED
Ricardo T GillianIndiaXuxue Feng PROPOSAL
Isabel O FigeroaJapanIvan Magalhaes PROPOSAL
Deepesh V FollerItalyXuxue Feng NEW
Izzy W ShinkoAustraliaElwin Sharvill PROPOSAL
Smith P WhobreyArgentinaAsiya Javayant RENEWAL
Octavia Q MaletItalyXuxue Feng UNQUALIFIED
Francesco K FerenczBrazilStephen Shaw NEW
Julie T InouyeBrazilAnna Fali PROPOSAL
Costa T RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Kadeem B PerinUnited KingdomStephen Shaw UNQUALIFIED
James K IturbideCanadaXuxue Feng NEGOTIATION
Antonio J WaycottBrazilStephen Shaw RENEWAL
Izzy H IturbideSpainOnyama Limba NEW
Salvatore V NickaItalyAmy Elsner RENEWAL
Juan R AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Costa Y MaletIndiaBernardo Dominic NEW
Ashley U VocelkaArgentinaStephen Shaw UNQUALIFIED
Clifford J KuskoIndiaIvan Magalhaes UNQUALIFIED
Octavia C RoysterRussiaAnna Fali PROPOSAL
Adams J FollerRussiaOnyama Limba PROPOSAL
Frozen Columns
Name
Adams S Campain
Emily Q Sergi
Costa N Gaucho
Kaitlin T Sergi
Silvio D Nestle
Ricardo Z Flosi
Darci Y Venere
Smith D Flosi
Faith N Kolmetz
Mujtaba Q Waycott
Antonio B Marrier
Isabel E Venere
Costa Z Rulapaugh
Juan E Ferencz
Stacey A Stockham
Rodrigues E Marrier
James P Albares
Clifford K Rim
Chavez X Morasca
Maisha Q Foller
Tony I Stenseth
Munro Z Darakjy
Faith B Tollner
Wickens G Stockham
Costa L Stenseth
Emily P Nicka
Stacey R Ruta
Leon N Waycott
Cody Z Nestle
Aruna W Butt
Maisha L Nestle
Ivar N Royster
Maisha O Sergi
Antonio Z Ruta
Izzy P Caldarera
Claire S Kolmetz
Aditya N Vocelka
Jeanfrancois H Stenseth
Silvio V Rulapaugh
Claire N Sergi
Johnson H Gillian
Mujtaba L Whobrey
Costa W Stenseth
Antonio B Kolmetz
Salvatore S Rim
Isabel X Bolognia
Greenwood B Rim
David V Figeroa
Isabel A Bowley
Darci E Butt
IdCountryDate
1000Canada2024-04-11
1001Japan2024-04-25
1002Germany2024-05-03
1003Australia2024-04-12
1004France2024-04-23
1005Argentina2024-04-14
1006Italy2024-04-11
1007Germany2024-04-23
1008Germany2024-04-14
1009France2024-04-12
1010Italy2024-05-03
1011Brazil2024-04-09
1012Russia2024-05-02
1013Canada2024-04-28
1014Australia2024-04-17
1015United Kingdom2024-04-27
1016Argentina2024-05-03
1017India2024-04-12
1018Argentina2024-04-27
1019France2024-04-06
1020Canada2024-04-24
1021Italy2024-04-28
1022Russia2024-05-01
1023United Kingdom2024-04-10
1024United Kingdom2024-04-20
1025Germany2024-04-18
1026Brazil2024-04-23
1027United Kingdom2024-04-06
1028Germany2024-04-21
1029United Kingdom2024-05-02
1030India2024-04-24
1031Argentina2024-04-15
1032Russia2024-04-29
1033Australia2024-05-03
1034Argentina2024-05-02
1035Japan2024-05-05
1036United Kingdom2024-04-30
1037France2024-04-14
1038Argentina2024-04-29
1039Australia2024-04-29
1040Argentina2024-04-23
1041Argentina2024-04-10
1042Italy2024-04-19
1043Russia2024-04-21
1044Spain2024-04-26
1045France2024-04-25
1046France2024-04-07
1047Canada2024-04-19
1048Italy2024-05-03
1049United Kingdom2024-04-13

On-Demand Data

NameIdCountryDate
Juan P Oldroyd1000India2024-04-20
Cody U Schemmer1001Australia2024-04-10
Wickens I Bowley1002Brazil2024-04-28
Emily E Foller1003United Kingdom2024-04-23
Jeanfrancois O Perin1004Canada2024-04-19
Juan Z Amigon1005Russia2024-04-24
Deepesh U Ferencz1006Australia2024-04-18
Rodrigues Y Kolmetz1007Argentina2024-05-01
Jeanfrancois U Ostrosky1008Canada2024-04-08
Misaki C Shinko1009Argentina2024-04-30
Maria J Caudy1010Canada2024-04-29
Aditya P Iturbide1011Germany2024-05-05
Leon Q Vocelka1012France2024-04-26
Kadeem B Perin1013Canada2024-04-22
Jefferson X Tollner1014Germany2024-04-12
Darci U Bolognia1015Italy2024-04-28
Greenwood U Vocelka1016Japan2024-04-19
Octavia E Caudy1017Germany2024-04-29
Chavez N Poquette1018Australia2024-04-19
Claire S Campain1019Canada2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa B PaprockiUnited KingdomElwin Sharvill QUALIFIED
Misaki P PaprockiCanadaAsiya Javayant PROPOSAL
Nicolas F BologniaGermanyIoni Bowcher PROPOSAL
Jefferson D IturbideRussiaOnyama Limba NEW
David D PerinItalyXuxue Feng QUALIFIED
Mayumi U FollerUnited KingdomAmy Elsner NEW
Claire D ButtItalyXuxue Feng PROPOSAL
Juan B TollnerGermanyAnna Fali NEGOTIATION
David D FigeroaBrazilAsiya Javayant NEW
Chavez M PerinRussiaStephen Shaw PROPOSAL
Juan T AlbaresArgentinaStephen Shaw PROPOSAL
Emily F RutaCanadaStephen Shaw PROPOSAL
James V VocelkaAustraliaAsiya Javayant PROPOSAL
Jennifer X GillianBrazilXuxue Feng PROPOSAL
Ivar N FlosiRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois P CaudyArgentinaIvan Magalhaes PROPOSAL
Maria Q NestleSpainAsiya Javayant NEW
Francesco P SlusarskiItalyBernardo Dominic PROPOSAL
Aditya X ButtCanadaBernardo Dominic PROPOSAL
Jefferson B OldroydArgentinaAsiya Javayant QUALIFIED
Leja T VenereSpainAsiya Javayant UNQUALIFIED
James F MarrierBrazilAnna Fali PROPOSAL
Isabel U InouyeBrazilAsiya Javayant NEGOTIATION
Wickens G GauchoRussiaElwin Sharvill NEGOTIATION
Kadeem J PerinIndiaIoni Bowcher PROPOSAL
Smith Y WieserRussiaAnna Fali NEGOTIATION
Costa V CaldareraFranceAsiya Javayant NEGOTIATION
Aika R MacleadFranceAmy Elsner PROPOSAL
Tony A StockhamAustraliaAmy Elsner NEGOTIATION
Jefferson E CaudyArgentinaIoni Bowcher NEW
Mayumi D SlusarskiItalyIvan Magalhaes QUALIFIED
Faith Q CaudyGermanyAnna Fali RENEWAL
Misaki X GillianAustraliaAmy Elsner QUALIFIED
Ivar B GarufiJapanElwin Sharvill NEGOTIATION
Rodrigues K RimItalyXuxue Feng NEW
James P RoysterIndiaElwin Sharvill NEW
Jefferson Z VenereItalyAsiya Javayant PROPOSAL
Maria B StensethAustraliaAnna Fali NEGOTIATION
Sinclair Y IturbideArgentinaElwin Sharvill PROPOSAL
Isabel S KolmetzItalyIoni Bowcher NEW

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