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
Leja Q RutaArgentinaAnna Fali UNQUALIFIED
Octavia K IturbideFranceIoni Bowcher NEGOTIATION
Jennifer N FlosiArgentinaAnna Fali NEW
James Q ChuiItalyIvan Magalhaes NEGOTIATION
Nicolas I PerinAustraliaAsiya Javayant RENEWAL
Mayumi N MaletRussiaAsiya Javayant NEGOTIATION
Francesco O DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh B WaycottGermanyAmy Elsner RENEWAL
Kaitlin R AmigonIndiaXuxue Feng PROPOSAL
Julie N BowleySpainAsiya Javayant UNQUALIFIED
Johnson R DilliardIndiaStephen Shaw QUALIFIED
Deepesh T FerenczRussiaAnna Fali NEGOTIATION
Claire O VenereBrazilIvan Magalhaes PROPOSAL
Clifford T FerenczSpainIoni Bowcher UNQUALIFIED
Jones F AmigonAustraliaXuxue Feng UNQUALIFIED
Aruna Y GillianBrazilStephen Shaw NEGOTIATION
Arvin T MorascaRussiaOnyama Limba NEGOTIATION
Smith U DarakjyItalyOnyama Limba NEGOTIATION
Mayumi F DilliardSpainIvan Magalhaes RENEWAL
Rodrigues H DoeCanadaAnna Fali RENEWAL
Jeanfrancois X PoquetteFranceXuxue Feng NEGOTIATION
Stacey H AmigonBrazilIoni Bowcher QUALIFIED
Leja N AmigonJapanAnna Fali NEGOTIATION
Chavez Q GlickFranceStephen Shaw PROPOSAL
Deepesh I CaldareraCanadaXuxue Feng PROPOSAL
Tony S PoquetteArgentinaStephen Shaw UNQUALIFIED
Clifford N DoeCanadaAnna Fali NEGOTIATION
Alejandro F WaycottSpainAsiya Javayant RENEWAL
Emily G CampainArgentinaXuxue Feng UNQUALIFIED
David N NickaIndiaIoni Bowcher PROPOSAL
Sinclair Y BologniaFranceAsiya Javayant RENEWAL
David T KolmetzFranceStephen Shaw RENEWAL
Wickens M SergiCanadaElwin Sharvill NEGOTIATION
Maria Y RimFranceAmy Elsner PROPOSAL
Morrow J WieserGermanyIoni Bowcher UNQUALIFIED
Misaki S AlbaresRussiaAnna Fali NEGOTIATION
Cody Z KolmetzItalyXuxue Feng NEW
Misaki P SchemmerItalyXuxue Feng NEW
Leja X AlbaresIndiaAsiya Javayant PROPOSAL
Rodrigues U MaletCanadaXuxue Feng UNQUALIFIED
Morrow B PerinAustraliaOnyama Limba PROPOSAL
Arvin L StensethUnited KingdomElwin Sharvill NEGOTIATION
Kadeem J GlickIndiaIvan Magalhaes PROPOSAL
Juan N GarufiCanadaAnna Fali RENEWAL
Leon A RulapaughFranceIvan Magalhaes QUALIFIED
Mujtaba T PoquetteUnited KingdomXuxue Feng NEGOTIATION
Jefferson I FlosiJapanIoni Bowcher QUALIFIED
Wickens X RoysterCanadaOnyama Limba RENEWAL
Kaitlin Y BowleyBrazilAmy Elsner PROPOSAL
Cody E NickaBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Silvio U KuskoJapanXuxue Feng NEW
Costa D DarakjyBrazilBernardo Dominic PROPOSAL
Jennifer B NestleUnited KingdomBernardo Dominic NEW
Deepesh N ButtItalyIvan Magalhaes RENEWAL
Deepesh R TollnerUnited KingdomIvan Magalhaes QUALIFIED
Arvin F InouyeIndiaOnyama Limba NEGOTIATION
Adams R CaldareraIndiaStephen Shaw UNQUALIFIED
Julie A ShinkoGermanyBernardo Dominic UNQUALIFIED
Julie M VenereJapanStephen Shaw NEGOTIATION
Juan J OstroskyBrazilBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily C IturbideFrance2024-04-23Printing Dimensions RENEWAL49Anna Fali
1001Kadeem N CaudyJapan2024-04-21Buckley Miller Wright UNQUALIFIED65Amy Elsner
1002Salvatore Y KolmetzGermany2024-04-03Morlong Associates RENEWAL50Anna Fali
1003Alejandro C IturbideGermany2024-04-14Chemel, James L Cpa RENEWAL13Onyama Limba
1004Alejandro I BowleyBrazil2024-04-09Buckley Miller Wright PROPOSAL38Asiya Javayant
1005Darci S CaldareraCanada2024-03-26Benton, John B Jr QUALIFIED25Ivan Magalhaes
1006Kadeem P KuskoBrazil2024-04-20Rousseaux, Michael Esq PROPOSAL75Ivan Magalhaes
1007Maisha X MacleadJapan2024-04-22Dorl, James J Esq UNQUALIFIED95Ivan Magalhaes
1008Johnson N WhobreyCanada2024-04-06Truhlar And Truhlar Attys RENEWAL70Stephen Shaw
1009Faith D WaycottIndia2024-04-07Printing Dimensions NEW47Ivan Magalhaes
1010Costa S GauchoGermany2024-04-13Feiner Bros PROPOSAL13Onyama Limba
1011Rodrigues A FollerUnited Kingdom2024-04-08King, Christopher A Esq PROPOSAL30Onyama Limba
1012Greenwood D AmigonAustralia2024-04-13Buckley Miller Wright NEGOTIATION65Ivan Magalhaes
1013Mayumi X AlbaresIndia2024-04-06Feiner Bros UNQUALIFIED55Stephen Shaw
1014Julie R TollnerArgentina2024-04-18Truhlar And Truhlar Attys NEW33Ioni Bowcher
1015Tony X MarrierRussia2024-04-07King, Christopher A Esq NEGOTIATION17Bernardo Dominic
1016Clifford H TollnerAustralia2024-04-24Feiner Bros RENEWAL20Bernardo Dominic
1017Isabel U MaletFrance2024-04-21Printing Dimensions QUALIFIED22Ivan Magalhaes
1018Leon O DarakjyArgentina2024-03-31Rangoni Of Florence RENEWAL75Anna Fali
1019Isabel P BologniaRussia2024-04-04Rousseaux, Michael Esq NEGOTIATION40Stephen Shaw
1020Ivar A MaletRussia2024-04-15Chanay, Jeffrey A Esq QUALIFIED88Elwin Sharvill
1021Izzy J VenereFrance2024-03-29King, Christopher A Esq NEGOTIATION86Amy Elsner
1022Smith G DoeCanada2024-04-01Feltz Printing Service PROPOSAL50Elwin Sharvill
1023Arvin X BowleySpain2024-04-11Dorl, James J Esq NEW41Ivan Magalhaes
1024Aruna J GauchoGermany2024-04-24Buckley Miller Wright QUALIFIED87Bernardo Dominic
1025Deepesh T IturbideItaly2024-04-21Commercial Press QUALIFIED80Amy Elsner
1026Kaitlin J CaldareraCanada2024-04-21Chanay, Jeffrey A Esq NEGOTIATION55Bernardo Dominic
1027James N SlusarskiJapan2024-04-10Rangoni Of Florence NEGOTIATION45Stephen Shaw
1028Izzy C WieserIndia2024-04-05Morlong Associates PROPOSAL15Ivan Magalhaes
1029Salvatore R SergiItaly2024-04-08Printing Dimensions NEGOTIATION77Ioni Bowcher
1030Maria A FigeroaRussia2024-04-19Chemel, James L Cpa NEGOTIATION62Elwin Sharvill
1031Claire B CampainArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION62Elwin Sharvill
1032Leon J ButtIndia2024-03-31Feiner Bros QUALIFIED61Stephen Shaw
1033Costa K AmigonSpain2024-04-11Printing Dimensions RENEWAL30Anna Fali
1034Isabel T PoquetteGermany2024-04-23Morlong Associates NEGOTIATION13Ioni Bowcher
1035Ivar O SlusarskiBrazil2024-03-30Chapman, Ross E Esq QUALIFIED80Elwin Sharvill
1036Nicolas V RutaBrazil2024-04-23Rangoni Of Florence PROPOSAL89Amy Elsner
1037Silvio E FlosiUnited Kingdom2024-03-30Truhlar And Truhlar Attys NEW42Elwin Sharvill
1038Wickens C SergiFrance2024-04-08Rousseaux, Michael Esq NEW1Stephen Shaw
1039Jeanfrancois A MacleadJapan2024-04-05Benton, John B Jr UNQUALIFIED57Elwin Sharvill
1040Stacey L WaycottUnited Kingdom2024-04-15King, Christopher A Esq NEGOTIATION67Xuxue Feng
1041Jennifer P KolmetzSpain2024-03-27Buckley Miller Wright QUALIFIED52Ivan Magalhaes
1042Francesco P SlusarskiGermany2024-04-22Chemel, James L Cpa PROPOSAL14Bernardo Dominic
1043Stacey L BowleyUnited Kingdom2024-04-14Morlong Associates NEW81Onyama Limba
1044Juan Y ButtIndia2024-04-22Truhlar And Truhlar Attys NEGOTIATION71Xuxue Feng
1045Kaitlin I InouyeSpain2024-04-03Feltz Printing Service RENEWAL21Asiya Javayant
1046Deepesh K OldroydBrazil2024-04-10Morlong Associates QUALIFIED98Xuxue Feng
1047Munro V GarufiRussia2024-04-15Chapman, Ross E Esq UNQUALIFIED76Onyama Limba
1048Costa W VenereFrance2024-04-21Benton, John B Jr PROPOSAL93Xuxue Feng
1049Greenwood I NestleFrance2024-04-09Morlong Associates RENEWAL90Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan L ChuiJapanIvan Magalhaes QUALIFIED
Cody Y FollerSpainIvan Magalhaes NEW
Aruna O BologniaItalyAsiya Javayant NEGOTIATION
Misaki U CaudyArgentinaAmy Elsner RENEWAL
David O GlickItalyIoni Bowcher NEGOTIATION
Jones Q RutaUnited KingdomAmy Elsner UNQUALIFIED
Jennifer T IturbideArgentinaElwin Sharvill RENEWAL
Ivar M BologniaBrazilAmy Elsner UNQUALIFIED
Johnson U CaldareraItalyElwin Sharvill NEGOTIATION
Ashley A VenereIndiaIoni Bowcher UNQUALIFIED
Leja C IturbideGermanyStephen Shaw NEW
Smith W DarakjyAustraliaAmy Elsner RENEWAL
Aika W DilliardItalyAnna Fali PROPOSAL
Claire R GillianFranceBernardo Dominic PROPOSAL
Ashley C SchemmerGermanyAnna Fali QUALIFIED
Julie X DoeCanadaStephen Shaw QUALIFIED
Murillo Y SaylorsRussiaIvan Magalhaes RENEWAL
James M SchemmerUnited KingdomAmy Elsner NEW
Octavia L ChuiJapanBernardo Dominic NEGOTIATION
Francesco F DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Costa U SergiCanadaIoni Bowcher QUALIFIED
Octavia Z BriddickCanadaStephen Shaw NEW
Francesco V PoquetteJapanIvan Magalhaes NEGOTIATION
Ivar A BriddickBrazilXuxue Feng UNQUALIFIED
Claire F FerenczCanadaAmy Elsner PROPOSAL
Johnson S RimArgentinaAsiya Javayant NEW
Jones Y NestleGermanyOnyama Limba NEGOTIATION
Jeanfrancois H FlosiRussiaBernardo Dominic NEGOTIATION
Juan A VocelkaBrazilIoni Bowcher NEW
Jefferson G AlbaresBrazilIoni Bowcher PROPOSAL
Costa Y NestleIndiaIvan Magalhaes NEW
Jennifer J CaudyUnited KingdomOnyama Limba PROPOSAL
Aika G BowleyFranceElwin Sharvill RENEWAL
Silvio H RutaJapanBernardo Dominic NEW
Salvatore B WhobreyRussiaBernardo Dominic QUALIFIED
Ivar B OstroskyCanadaBernardo Dominic NEW
Salvatore S GauchoGermanyAmy Elsner RENEWAL
Julie F KolmetzSpainAmy Elsner NEW
Juan H ButtCanadaOnyama Limba NEGOTIATION
Munro M FerenczCanadaXuxue Feng UNQUALIFIED
Isabel F MarrierSpainBernardo Dominic RENEWAL
Mujtaba L RutaCanadaAmy Elsner QUALIFIED
Maisha J RulapaughGermanyElwin Sharvill RENEWAL
Juan E ButtArgentinaOnyama Limba UNQUALIFIED
Izzy A DilliardAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin T MacleadSpainAnna Fali NEW
Maria C MarrierIndiaOnyama Limba UNQUALIFIED
Jones Y OldroydItalyAsiya Javayant PROPOSAL
Wickens L TollnerCanadaOnyama Limba QUALIFIED
Antonio T MacleadSpainOnyama Limba PROPOSAL
Frozen Columns
Name
Salvatore K Figeroa
Emily A Paprocki
David S Rulapaugh
Aika X Flosi
Misaki E Dilliard
Juan Y Inouye
Deepesh S Briddick
Silvio F Kusko
Aditya U Flosi
Rodrigues X Saylors
Leja K Darakjy
Darci H Darakjy
Jennifer D Schemmer
Octavia C Schemmer
Octavia A Foller
Maria L Kusko
Aditya V Stenseth
Aditya N Bowley
Mujtaba B Venere
Leja O Vocelka
Claire Y Whobrey
Antonio W Wieser
James R Ruta
Jones M Royster
Aruna H Gillian
Jones W Morasca
Antonio R Stockham
James W Rim
Kaitlin D Wieser
Salvatore Z Bowley
David A Bolognia
Francesco O Campain
Julie J Amigon
Misaki W Kolmetz
Leon S Rim
Ricardo A Gaucho
Chavez N Stockham
Johnson O Dilliard
Sinclair P Waycott
Julie L Dilliard
James R Flosi
Costa Z Malet
Rodrigues P Iturbide
Kadeem I Campain
David E Venere
Chavez F Kolmetz
Adams N Darakjy
Morrow B Nestle
Mayumi L Saylors
Emily D Tollner
IdCountryDate
1000France2024-04-06
1001Italy2024-04-04
1002Canada2024-03-31
1003Germany2024-03-30
1004Argentina2024-04-13
1005United Kingdom2024-04-20
1006Brazil2024-04-03
1007France2024-04-03
1008Brazil2024-04-16
1009Argentina2024-04-16
1010India2024-04-24
1011Japan2024-04-08
1012Brazil2024-04-16
1013Brazil2024-04-24
1014Italy2024-04-19
1015India2024-04-21
1016Australia2024-04-03
1017France2024-04-20
1018Russia2024-04-18
1019United Kingdom2024-04-05
1020United Kingdom2024-04-10
1021Russia2024-04-11
1022Australia2024-04-18
1023India2024-04-17
1024Australia2024-04-10
1025Russia2024-04-11
1026United Kingdom2024-04-08
1027Germany2024-04-06
1028Canada2024-04-13
1029Spain2024-04-05
1030Italy2024-04-08
1031Australia2024-03-30
1032India2024-03-28
1033Argentina2024-03-30
1034Canada2024-04-16
1035Australia2024-03-31
1036United Kingdom2024-04-23
1037Russia2024-04-08
1038India2024-04-13
1039Canada2024-04-04
1040Australia2024-04-07
1041Russia2024-04-16
1042Argentina2024-04-13
1043Russia2024-03-28
1044United Kingdom2024-04-13
1045France2024-03-31
1046Japan2024-04-22
1047Germany2024-04-01
1048Japan2024-04-08
1049United Kingdom2024-04-19

On-Demand Data

NameIdCountryDate
Tony E Stenseth1000United Kingdom2024-04-22
Mujtaba S Stenseth1001Brazil2024-04-09
Leja M Ferencz1002Australia2024-04-19
Ashley A Ostrosky1003Germany2024-04-15
Aruna O Slusarski1004Spain2024-04-24
Costa L Dilliard1005France2024-04-20
Murillo U Amigon1006Canada2024-04-07
Aditya O Wieser1007Australia2024-04-03
Jennifer K Foller1008India2024-04-20
Octavia Y Stenseth1009France2024-03-26
Octavia C Sergi1010Argentina2024-04-02
Ivar U Maclead1011Germany2024-04-20
Stacey Y Ruta1012United Kingdom2024-04-04
Silvio X Ferencz1013Brazil2024-04-06
Kadeem Y Waycott1014Italy2024-04-11
Greenwood Y Wieser1015Italy2024-04-15
Leon O Amigon1016United Kingdom2024-04-14
Chavez M Malet1017France2024-03-29
Johnson J Gaucho1018Japan2024-04-14
David D Caldarera1019Italy2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens E GillianJapanIvan Magalhaes NEW
Ivar N WaycottAustraliaAnna Fali QUALIFIED
Jeanfrancois C InouyeJapanStephen Shaw UNQUALIFIED
Smith L PaprockiItalyElwin Sharvill UNQUALIFIED
Greenwood B VocelkaRussiaElwin Sharvill NEGOTIATION
Isabel K WieserFranceStephen Shaw UNQUALIFIED
Aruna H MaletRussiaAsiya Javayant NEGOTIATION
Stacey Q BologniaUnited KingdomAnna Fali RENEWAL
Mayumi E ChuiSpainAmy Elsner UNQUALIFIED
Aditya P AlbaresRussiaElwin Sharvill NEGOTIATION
Misaki L FerenczArgentinaAmy Elsner PROPOSAL
Mayumi Z IturbideFranceIvan Magalhaes QUALIFIED
Jefferson N SlusarskiItalyXuxue Feng RENEWAL
Leon R SchemmerBrazilAmy Elsner NEGOTIATION
Chavez S BologniaArgentinaAnna Fali NEGOTIATION
Jones L IturbideArgentinaAnna Fali UNQUALIFIED
Greenwood O StockhamCanadaIvan Magalhaes UNQUALIFIED
Darci P StockhamUnited KingdomOnyama Limba NEW
Greenwood M OstroskyCanadaElwin Sharvill UNQUALIFIED
Juan K StensethIndiaAnna Fali UNQUALIFIED
Jennifer K DoeAustraliaIvan Magalhaes NEW
Mujtaba C ChuiBrazilElwin Sharvill PROPOSAL
Leon B DarakjyJapanAsiya Javayant PROPOSAL
Kadeem K IturbideRussiaOnyama Limba RENEWAL
Misaki E StockhamIndiaAmy Elsner NEGOTIATION
Maisha P VenereBrazilStephen Shaw QUALIFIED
Mayumi T GillianUnited KingdomStephen Shaw NEW
Silvio W RimBrazilStephen Shaw PROPOSAL
Adams S WhobreyGermanyAmy Elsner NEW
Octavia T GauchoArgentinaElwin Sharvill UNQUALIFIED
Juan P TollnerArgentinaAmy Elsner UNQUALIFIED
Adams M BriddickSpainAmy Elsner NEGOTIATION
Maria I VocelkaJapanStephen Shaw RENEWAL
Adams Y DilliardGermanyElwin Sharvill PROPOSAL
James Q PoquetteItalyXuxue Feng RENEWAL
Rodrigues L AlbaresCanadaElwin Sharvill NEGOTIATION
Sinclair H VocelkaItalyAnna Fali PROPOSAL
Misaki Z VenereItalyStephen Shaw NEW
Costa I AmigonRussiaIvan Magalhaes RENEWAL
Smith O CaudyFranceStephen Shaw NEGOTIATION

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