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
Jeanfrancois T SchemmerItalyBernardo Dominic NEW
Wickens J MaletItalyOnyama Limba UNQUALIFIED
Morrow H FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Arvin F BologniaArgentinaIoni Bowcher UNQUALIFIED
Mujtaba N OstroskyJapanIoni Bowcher UNQUALIFIED
Ricardo E FollerCanadaElwin Sharvill RENEWAL
Chavez E OstroskyArgentinaStephen Shaw PROPOSAL
Jefferson R BologniaItalyBernardo Dominic RENEWAL
Misaki E ShinkoBrazilBernardo Dominic PROPOSAL
Jones A GlickGermanyXuxue Feng PROPOSAL
Aruna J MacleadSpainIvan Magalhaes QUALIFIED
Clifford Q SaylorsIndiaBernardo Dominic QUALIFIED
Tony P OldroydItalyAsiya Javayant PROPOSAL
Aika Y RimArgentinaOnyama Limba UNQUALIFIED
Kaitlin J DarakjyArgentinaElwin Sharvill UNQUALIFIED
Greenwood N DoeBrazilStephen Shaw NEW
Darci V AmigonRussiaAsiya Javayant RENEWAL
Aruna G RimItalyAnna Fali NEGOTIATION
David Y OstroskyItalyXuxue Feng PROPOSAL
Cody S SergiSpainAnna Fali PROPOSAL
Smith C CampainJapanAsiya Javayant RENEWAL
Izzy V PerinJapanIvan Magalhaes NEGOTIATION
Octavia J MaletIndiaOnyama Limba RENEWAL
Arvin U SergiItalyOnyama Limba NEW
Johnson X AmigonRussiaStephen Shaw PROPOSAL
Maisha O FerenczArgentinaIoni Bowcher UNQUALIFIED
Francesco A DarakjyIndiaBernardo Dominic NEW
Ricardo C VenereJapanIvan Magalhaes UNQUALIFIED
Sinclair A StensethUnited KingdomAsiya Javayant UNQUALIFIED
Cody K IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Maria H SaylorsIndiaAsiya Javayant PROPOSAL
Clifford H FollerIndiaIoni Bowcher UNQUALIFIED
Faith S AmigonBrazilAnna Fali NEW
Jennifer O RimIndiaElwin Sharvill NEW
Stacey P SlusarskiCanadaAmy Elsner RENEWAL
Adams R RulapaughCanadaStephen Shaw QUALIFIED
Adams K StockhamIndiaIoni Bowcher NEGOTIATION
Jennifer J WaycottCanadaIvan Magalhaes QUALIFIED
Mujtaba R GlickItalyAnna Fali RENEWAL
Johnson W SlusarskiItalyElwin Sharvill NEGOTIATION
Maisha L FerenczJapanStephen Shaw NEW
Maria T MaletFranceIvan Magalhaes UNQUALIFIED
Faith G WaycottItalyAmy Elsner PROPOSAL
Rodrigues Z ChuiBrazilAnna Fali NEGOTIATION
Isabel Y KuskoSpainIoni Bowcher NEW
Deepesh N PaprockiFranceAsiya Javayant PROPOSAL
Antonio I KuskoItalyXuxue Feng QUALIFIED
Izzy D CaudyGermanyStephen Shaw NEW
Leja P GlickArgentinaAsiya Javayant QUALIFIED
Aditya V SaylorsItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa C KolmetzGermanyElwin Sharvill QUALIFIED
David V BowleyItalyXuxue Feng NEGOTIATION
Ivar T TollnerArgentinaBernardo Dominic NEGOTIATION
Aruna J MorascaJapanAmy Elsner PROPOSAL
Wickens N MorascaFranceOnyama Limba NEGOTIATION
Mujtaba N RutaItalyBernardo Dominic UNQUALIFIED
Aditya C ChuiIndiaBernardo Dominic UNQUALIFIED
Antonio H RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh I RutaRussiaElwin Sharvill QUALIFIED
Izzy C GauchoFranceIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C DarakjyRussia2024-04-24Rangoni Of Florence UNQUALIFIED64Anna Fali
1001Morrow A RutaJapan2024-04-29Feltz Printing Service UNQUALIFIED32Xuxue Feng
1002Jones M MarrierItaly2024-04-11Morlong Associates UNQUALIFIED61Ivan Magalhaes
1003Francesco Y BologniaFrance2024-04-25Truhlar And Truhlar Attys QUALIFIED38Amy Elsner
1004Octavia A BowleyCanada2024-04-01King, Christopher A Esq UNQUALIFIED49Anna Fali
1005Faith T RimUnited Kingdom2024-04-07Benton, John B Jr NEW6Asiya Javayant
1006Francesco K RoysterAustralia2024-04-01Feltz Printing Service NEW55Bernardo Dominic
1007Maria F SaylorsRussia2024-04-15Dorl, James J Esq NEW21Ivan Magalhaes
1008Salvatore T KolmetzBrazil2024-04-10Chemel, James L Cpa RENEWAL5Anna Fali
1009Kaitlin W TollnerItaly2024-04-29Feiner Bros PROPOSAL14Elwin Sharvill
1010Jeanfrancois F MaletSpain2024-04-03Chapman, Ross E Esq NEGOTIATION52Asiya Javayant
1011Deepesh G IturbideRussia2024-04-02Benton, John B Jr PROPOSAL30Amy Elsner
1012Murillo E DoeAustralia2024-04-08Buckley Miller Wright PROPOSAL91Anna Fali
1013Octavia B VocelkaCanada2024-04-15Buckley Miller Wright QUALIFIED3Anna Fali
1014Johnson K WaycottCanada2024-04-12Morlong Associates PROPOSAL33Bernardo Dominic
1015Morrow F RutaRussia2024-04-14Benton, John B Jr PROPOSAL66Elwin Sharvill
1016Adams P DilliardAustralia2024-04-26Chanay, Jeffrey A Esq QUALIFIED90Ivan Magalhaes
1017Arvin W MacleadUnited Kingdom2024-04-05Truhlar And Truhlar Attys NEW69Ioni Bowcher
1018Smith V CaldareraFrance2024-04-27Chemel, James L Cpa RENEWAL93Elwin Sharvill
1019Octavia P ChuiFrance2024-04-22Benton, John B Jr NEW84Bernardo Dominic
1020Leon Z TollnerUnited Kingdom2024-04-23Feltz Printing Service NEGOTIATION31Stephen Shaw
1021Clifford A RoysterJapan2024-04-11Truhlar And Truhlar Attys UNQUALIFIED15Anna Fali
1022Jeanfrancois F FerenczJapan2024-04-29Rangoni Of Florence PROPOSAL38Asiya Javayant
1023Aditya R OstroskyRussia2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED46Anna Fali
1024Aika D CaudyJapan2024-03-31Benton, John B Jr NEW57Bernardo Dominic
1025Johnson C KolmetzAustralia2024-04-12Benton, John B Jr UNQUALIFIED5Ivan Magalhaes
1026Maisha Q StockhamBrazil2024-03-31Benton, John B Jr RENEWAL23Onyama Limba
1027Silvio R CaldareraIndia2024-04-06Chemel, James L Cpa NEGOTIATION42Anna Fali
1028Aika F DoeAustralia2024-04-04Feltz Printing Service NEW60Ivan Magalhaes
1029Julie W DarakjyItaly2024-04-06Chemel, James L Cpa UNQUALIFIED87Ivan Magalhaes
1030Costa G CampainIndia2024-04-23Chemel, James L Cpa NEW9Bernardo Dominic
1031Julie B SchemmerSpain2024-04-13Commercial Press QUALIFIED36Bernardo Dominic
1032Costa W ShinkoSpain2024-04-13King, Christopher A Esq QUALIFIED82Ioni Bowcher
1033Maria C FollerSpain2024-04-29Rousseaux, Michael Esq UNQUALIFIED49Stephen Shaw
1034Emily Y GarufiArgentina2024-04-09Commercial Press NEGOTIATION25Stephen Shaw
1035Costa I MarrierJapan2024-04-17Truhlar And Truhlar Attys NEW34Ioni Bowcher
1036Ricardo X VocelkaBrazil2024-03-31Chemel, James L Cpa PROPOSAL30Ioni Bowcher
1037James Y TollnerBrazil2024-04-24Feiner Bros NEGOTIATION52Xuxue Feng
1038Claire R CaldareraJapan2024-04-18Chanay, Jeffrey A Esq RENEWAL51Stephen Shaw
1039Jennifer N CampainFrance2024-04-22Commercial Press NEW48Amy Elsner
1040Arvin A IturbideJapan2024-04-27Chemel, James L Cpa NEGOTIATION85Onyama Limba
1041Silvio L BowleyAustralia2024-03-31Dorl, James J Esq UNQUALIFIED65Bernardo Dominic
1042Morrow Y SlusarskiArgentina2024-04-08Morlong Associates RENEWAL94Stephen Shaw
1043Stacey C GillianRussia2024-04-01Chapman, Ross E Esq NEGOTIATION73Elwin Sharvill
1044Adams O StockhamUnited Kingdom2024-03-31Morlong Associates NEGOTIATION28Ioni Bowcher
1045Izzy G CampainCanada2024-03-31Feltz Printing Service NEGOTIATION85Anna Fali
1046Francesco T OldroydFrance2024-04-23Chemel, James L Cpa NEW82Stephen Shaw
1047Isabel Z RulapaughIndia2024-04-06Benton, John B Jr NEGOTIATION52Onyama Limba
1048Morrow M DilliardSpain2024-04-20Feiner Bros RENEWAL46Xuxue Feng
1049Darci F VocelkaJapan2024-04-11King, Christopher A Esq RENEWAL91Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley T ShinkoJapanXuxue Feng RENEWAL
Sinclair Z RimSpainAsiya Javayant QUALIFIED
Johnson R OldroydRussiaElwin Sharvill NEW
Rodrigues I CaudySpainOnyama Limba NEGOTIATION
Darci K CampainBrazilElwin Sharvill NEGOTIATION
Adams D WieserItalyIoni Bowcher PROPOSAL
Ashley I VocelkaUnited KingdomBernardo Dominic RENEWAL
Isabel I StensethBrazilIvan Magalhaes QUALIFIED
Jennifer P PerinBrazilElwin Sharvill QUALIFIED
Cody E WhobreyAustraliaAmy Elsner PROPOSAL
Leon R DoeJapanAsiya Javayant RENEWAL
Chavez A NestleIndiaXuxue Feng UNQUALIFIED
Munro G VenereBrazilAsiya Javayant QUALIFIED
Aika P NestleIndiaStephen Shaw NEGOTIATION
Clifford M ChuiFranceAsiya Javayant RENEWAL
Murillo P DoeSpainElwin Sharvill UNQUALIFIED
Mujtaba F AlbaresItalyAnna Fali NEW
Jeanfrancois N DarakjyJapanBernardo Dominic QUALIFIED
Juan E GillianBrazilIoni Bowcher NEW
Alejandro C RoysterUnited KingdomAnna Fali QUALIFIED
Salvatore U MarrierRussiaBernardo Dominic RENEWAL
Rodrigues Q DoeCanadaStephen Shaw RENEWAL
Morrow D BowleyBrazilBernardo Dominic RENEWAL
Sinclair O InouyeItalyElwin Sharvill NEW
Munro K MaletIndiaAmy Elsner NEW
Jones C ShinkoJapanBernardo Dominic RENEWAL
Julie Z OstroskyIndiaIvan Magalhaes UNQUALIFIED
Juan N StensethIndiaStephen Shaw NEW
Cody Y NickaBrazilBernardo Dominic NEGOTIATION
Ricardo F GauchoCanadaIoni Bowcher QUALIFIED
Deepesh X GlickBrazilElwin Sharvill QUALIFIED
Mayumi L CampainGermanyBernardo Dominic RENEWAL
Alejandro P CaldareraCanadaAsiya Javayant NEGOTIATION
Silvio T WaycottGermanyXuxue Feng NEGOTIATION
Wickens G KuskoCanadaXuxue Feng RENEWAL
Isabel O ChuiAustraliaAnna Fali RENEWAL
Aika W AlbaresCanadaBernardo Dominic NEW
Cody X DarakjyItalyAsiya Javayant RENEWAL
Costa T PaprockiItalyBernardo Dominic RENEWAL
Emily C StensethRussiaBernardo Dominic RENEWAL
Mayumi H BologniaRussiaAnna Fali QUALIFIED
Ivar I CaldareraIndiaIoni Bowcher RENEWAL
Ivar M ShinkoIndiaElwin Sharvill QUALIFIED
Isabel R NestleIndiaElwin Sharvill NEGOTIATION
Costa M NickaUnited KingdomOnyama Limba UNQUALIFIED
Aruna S VenereJapanIoni Bowcher UNQUALIFIED
Maisha V MacleadArgentinaAnna Fali NEGOTIATION
Murillo B MaletSpainIoni Bowcher PROPOSAL
Chavez Q MaletAustraliaOnyama Limba PROPOSAL
Munro V BologniaBrazilAsiya Javayant NEGOTIATION
Frozen Columns
Name
Mayumi N Ostrosky
Mujtaba O Campain
Tony X Malet
Alejandro L Chui
Murillo D Gaucho
Darci O Albares
Juan P Malet
Adams J Paprocki
Cody H Rim
Arvin O Kolmetz
Jeanfrancois H Oldroyd
Jennifer P Flosi
Jones C Venere
Juan F Ostrosky
Stacey O Gillian
Alejandro X Caudy
Jefferson C Gillian
Cody Q Wieser
Antonio D Doe
Smith R Ostrosky
Johnson Q Caldarera
Jeanfrancois A Rulapaugh
Smith C Tollner
Izzy P Ferencz
Isabel L Ferencz
Jeanfrancois G Bowley
Smith P Wieser
Nicolas J Amigon
Chavez P Rim
Misaki A Campain
Aruna A Doe
Smith F Rulapaugh
Alejandro P Caldarera
Francesco N Paprocki
Arvin N Amigon
Costa A Doe
Ricardo X Morasca
Mayumi K Inouye
Ashley Q Glick
Juan Y Rulapaugh
Emily B Inouye
Darci E Bolognia
Ivar X Kusko
Aika O Amigon
Silvio N Stockham
Munro R Butt
Antonio N Shinko
Smith A Iturbide
Emily H Poquette
Maria H Tollner
IdCountryDate
1000Italy2024-04-29
1001United Kingdom2024-04-12
1002France2024-04-02
1003Japan2024-04-12
1004United Kingdom2024-04-21
1005Canada2024-04-29
1006Japan2024-04-14
1007France2024-04-13
1008Brazil2024-03-31
1009India2024-04-25
1010Japan2024-04-20
1011Spain2024-04-22
1012Spain2024-04-27
1013Brazil2024-04-19
1014France2024-04-26
1015Japan2024-04-16
1016Argentina2024-04-13
1017Italy2024-04-17
1018Germany2024-04-10
1019Germany2024-04-15
1020United Kingdom2024-04-11
1021Brazil2024-04-13
1022United Kingdom2024-04-23
1023Argentina2024-04-18
1024United Kingdom2024-04-27
1025Canada2024-04-17
1026France2024-04-11
1027Spain2024-04-15
1028Argentina2024-04-05
1029Canada2024-03-31
1030India2024-04-26
1031Spain2024-04-28
1032Spain2024-04-12
1033Japan2024-04-25
1034United Kingdom2024-04-07
1035Argentina2024-04-06
1036United Kingdom2024-04-03
1037United Kingdom2024-04-12
1038Australia2024-04-17
1039India2024-04-09
1040Japan2024-04-24
1041Russia2024-04-02
1042United Kingdom2024-04-21
1043Italy2024-04-03
1044Russia2024-04-27
1045France2024-04-17
1046Australia2024-04-14
1047Italy2024-04-21
1048Argentina2024-04-21
1049United Kingdom2024-04-08

On-Demand Data

NameIdCountryDate
David S Rim1000Canada2024-04-03
Antonio C Paprocki1001Australia2024-04-10
Adams M Paprocki1002France2024-04-06
Kaitlin Q Malet1003Argentina2024-04-04
Claire K Gillian1004Argentina2024-04-29
Tony P Inouye1005Canada2024-04-06
Ashley L Poquette1006Russia2024-04-07
Aruna R Saylors1007Germany2024-04-05
Murillo M Nestle1008Spain2024-04-05
Jeanfrancois I Stockham1009Japan2024-04-27
Aika U Stenseth1010Russia2024-04-07
Aruna Y Inouye1011Australia2024-04-09
Silvio D Nicka1012Brazil2024-04-13
Julie T Ostrosky1013Spain2024-04-10
Claire C Nestle1014Germany2024-04-06
Misaki V Tollner1015India2024-04-29
Clifford L Waycott1016India2024-04-28
Isabel F Nicka1017Brazil2024-04-02
Greenwood H Ostrosky1018Germany2024-04-21
Sinclair J Waycott1019Russia2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson U MarrierRussiaXuxue Feng NEGOTIATION
Darci W SlusarskiIndiaOnyama Limba NEGOTIATION
Greenwood B PerinSpainOnyama Limba RENEWAL
Sinclair D PaprockiArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois W RoysterFranceIoni Bowcher QUALIFIED
Leon Z FlosiGermanyIvan Magalhaes QUALIFIED
Julie C PaprockiJapanAnna Fali UNQUALIFIED
Ricardo R IturbideRussiaXuxue Feng RENEWAL
Jones F KuskoAustraliaAmy Elsner NEGOTIATION
James H WieserFranceIvan Magalhaes RENEWAL
Jeanfrancois V StensethBrazilStephen Shaw QUALIFIED
Morrow W MorascaCanadaXuxue Feng PROPOSAL
Jennifer T RulapaughItalyAnna Fali UNQUALIFIED
Ricardo X OstroskyCanadaAnna Fali PROPOSAL
Octavia M MarrierUnited KingdomIvan Magalhaes QUALIFIED
Maria R SaylorsIndiaAnna Fali UNQUALIFIED
Alejandro T OldroydBrazilBernardo Dominic NEW
Jefferson D CampainBrazilIoni Bowcher RENEWAL
Izzy O AlbaresIndiaStephen Shaw UNQUALIFIED
Maisha G VenereFranceAmy Elsner QUALIFIED
Morrow D StensethCanadaStephen Shaw QUALIFIED
Francesco Y BowleyRussiaOnyama Limba UNQUALIFIED
Faith O SchemmerRussiaElwin Sharvill QUALIFIED
Mujtaba L AlbaresCanadaBernardo Dominic RENEWAL
Clifford Z OldroydArgentinaXuxue Feng NEW
Cody F BowleyAustraliaElwin Sharvill NEW
James U NestleUnited KingdomAnna Fali RENEWAL
Kaitlin D KuskoBrazilAmy Elsner UNQUALIFIED
Maria R BowleyJapanIoni Bowcher RENEWAL
Arvin N OldroydItalyAnna Fali NEGOTIATION
Faith R SlusarskiGermanyBernardo Dominic PROPOSAL
Octavia T FigeroaCanadaXuxue Feng NEGOTIATION
Emily B ShinkoJapanAnna Fali NEGOTIATION
Jennifer N MorascaArgentinaIvan Magalhaes NEGOTIATION
Emily V VocelkaBrazilAsiya Javayant RENEWAL
Juan M SaylorsJapanIoni Bowcher RENEWAL
Juan W StockhamRussiaBernardo Dominic QUALIFIED
Tony R TollnerJapanOnyama Limba UNQUALIFIED
James D CampainCanadaAnna Fali QUALIFIED
Ashley T RimAustraliaAnna Fali QUALIFIED

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