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
Emily G KuskoSpainAsiya Javayant PROPOSAL
Sinclair X KolmetzArgentinaAmy Elsner RENEWAL
Adams T FerenczItalyStephen Shaw NEW
Tony Y DoeAustraliaAmy Elsner RENEWAL
Emily V PaprockiIndiaAmy Elsner RENEWAL
Nicolas E CaldareraArgentinaAsiya Javayant UNQUALIFIED
Salvatore E PoquetteFranceAsiya Javayant NEW
Octavia D WaycottUnited KingdomAsiya Javayant NEGOTIATION
Jones C MorascaBrazilOnyama Limba PROPOSAL
Aditya Q WaycottBrazilXuxue Feng RENEWAL
Stacey A BologniaBrazilStephen Shaw UNQUALIFIED
Adams M GillianSpainXuxue Feng PROPOSAL
Adams Z WieserAustraliaIvan Magalhaes NEW
Izzy F OstroskyUnited KingdomElwin Sharvill QUALIFIED
Ricardo T SergiSpainOnyama Limba NEGOTIATION
Smith G VenereBrazilIoni Bowcher NEW
Octavia U DarakjyFranceXuxue Feng QUALIFIED
Leja T BologniaUnited KingdomAmy Elsner NEW
Smith Q AlbaresRussiaElwin Sharvill NEW
Murillo T GarufiSpainAnna Fali PROPOSAL
Jefferson A SlusarskiAustraliaStephen Shaw UNQUALIFIED
David M ButtItalyAmy Elsner PROPOSAL
Leja P CampainArgentinaIoni Bowcher PROPOSAL
Costa J AlbaresSpainXuxue Feng NEGOTIATION
Ivar F CaldareraItalyAmy Elsner NEGOTIATION
James Y DilliardIndiaOnyama Limba PROPOSAL
Emily L MaletBrazilAsiya Javayant PROPOSAL
Johnson F MaletUnited KingdomAsiya Javayant RENEWAL
Stacey L SergiIndiaXuxue Feng NEGOTIATION
Tony L MacleadGermanyAsiya Javayant NEW
Jones O NestleSpainStephen Shaw NEW
Maisha L RulapaughIndiaAnna Fali NEW
Stacey P SlusarskiBrazilIoni Bowcher PROPOSAL
Chavez S MaletAustraliaAnna Fali RENEWAL
Mayumi I RoysterItalyElwin Sharvill NEGOTIATION
Darci E MacleadRussiaBernardo Dominic UNQUALIFIED
Antonio D PoquetteCanadaIoni Bowcher PROPOSAL
Ivar D FerenczUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin W KolmetzBrazilStephen Shaw NEGOTIATION
Morrow C PoquetteGermanyElwin Sharvill NEGOTIATION
Aditya F GlickItalyOnyama Limba UNQUALIFIED
Mayumi M BowleyGermanyIoni Bowcher PROPOSAL
Chavez J KolmetzFranceAnna Fali PROPOSAL
Faith C GarufiAustraliaElwin Sharvill NEGOTIATION
Claire B FigeroaIndiaElwin Sharvill NEGOTIATION
Alejandro Z RutaRussiaIoni Bowcher RENEWAL
Claire W MaletJapanIoni Bowcher QUALIFIED
Johnson J WaycottCanadaOnyama Limba PROPOSAL
Leon C KolmetzCanadaAmy Elsner PROPOSAL
Juan B NickaItalyOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones W BologniaArgentinaIoni Bowcher NEW
Misaki W FerenczSpainAsiya Javayant UNQUALIFIED
Deepesh T KuskoIndiaIoni Bowcher QUALIFIED
David Y InouyeSpainStephen Shaw RENEWAL
Faith Y GillianFranceOnyama Limba NEGOTIATION
Jennifer H SchemmerUnited KingdomIoni Bowcher PROPOSAL
Maisha F RulapaughItalyAmy Elsner UNQUALIFIED
Salvatore P VocelkaGermanyAnna Fali QUALIFIED
Murillo M StensethSpainIoni Bowcher RENEWAL
Claire Y FerenczRussiaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey M SchemmerArgentina2024-04-13Truhlar And Truhlar Attys UNQUALIFIED86Anna Fali
1001Cody J RimIndia2024-03-31Dorl, James J Esq UNQUALIFIED82Amy Elsner
1002Stacey L FigeroaRussia2024-03-31Dorl, James J Esq UNQUALIFIED63Bernardo Dominic
1003Adams P CaldareraAustralia2024-03-31King, Christopher A Esq QUALIFIED96Elwin Sharvill
1004Kaitlin X DarakjyUnited Kingdom2024-03-30Feltz Printing Service QUALIFIED17Xuxue Feng
1005Isabel J StockhamBrazil2024-03-30Chapman, Ross E Esq UNQUALIFIED1Amy Elsner
1006Izzy S PoquetteUnited Kingdom2024-04-21Chemel, James L Cpa UNQUALIFIED34Xuxue Feng
1007Jefferson N CampainRussia2024-04-01Buckley Miller Wright NEGOTIATION39Onyama Limba
1008Munro F RoysterJapan2024-04-05Commercial Press QUALIFIED57Anna Fali
1009Costa M RutaBrazil2024-04-22Feltz Printing Service NEW0Stephen Shaw
1010Murillo U StensethCanada2024-04-10Buckley Miller Wright PROPOSAL21Ivan Magalhaes
1011Ashley G ChuiGermany2024-04-06Commercial Press PROPOSAL50Ioni Bowcher
1012Rodrigues K MorascaGermany2024-04-05Morlong Associates UNQUALIFIED84Onyama Limba
1013Ashley Z MaletAustralia2024-04-13Chemel, James L Cpa QUALIFIED17Ivan Magalhaes
1014Morrow I MorascaUnited Kingdom2024-04-12Feltz Printing Service RENEWAL43Asiya Javayant
1015Kadeem G RimIndia2024-04-18Rangoni Of Florence RENEWAL90Elwin Sharvill
1016Faith C InouyeCanada2024-04-04Benton, John B Jr NEGOTIATION39Asiya Javayant
1017Ashley W GarufiIndia2024-04-18Printing Dimensions NEGOTIATION24Onyama Limba
1018Izzy F OstroskySpain2024-04-13Chemel, James L Cpa PROPOSAL86Bernardo Dominic
1019Maria B MarrierAustralia2024-04-13Truhlar And Truhlar Attys NEW12Anna Fali
1020Antonio X ButtGermany2024-04-18Rousseaux, Michael Esq PROPOSAL60Onyama Limba
1021Arvin E ChuiFrance2024-04-10Chapman, Ross E Esq NEW27Xuxue Feng
1022Leon P SlusarskiFrance2024-04-27Benton, John B Jr PROPOSAL35Xuxue Feng
1023Darci R StockhamSpain2024-03-31Morlong Associates QUALIFIED72Xuxue Feng
1024Silvio D IturbideAustralia2024-04-14Rousseaux, Michael Esq PROPOSAL2Ioni Bowcher
1025Mujtaba E NickaArgentina2024-04-27Chanay, Jeffrey A Esq RENEWAL82Stephen Shaw
1026Rodrigues K WhobreyBrazil2024-03-30Chemel, James L Cpa RENEWAL50Ivan Magalhaes
1027Sinclair T RulapaughGermany2024-04-18Chanay, Jeffrey A Esq QUALIFIED14Onyama Limba
1028Chavez F GarufiItaly2024-04-04Printing Dimensions NEW85Ivan Magalhaes
1029Silvio M MaletItaly2024-04-27King, Christopher A Esq QUALIFIED74Elwin Sharvill
1030Francesco Y DilliardUnited Kingdom2024-04-05Feiner Bros UNQUALIFIED65Onyama Limba
1031Ricardo Y KuskoRussia2024-04-06Rousseaux, Michael Esq QUALIFIED7Stephen Shaw
1032Ricardo E StensethUnited Kingdom2024-04-23Dorl, James J Esq UNQUALIFIED69Stephen Shaw
1033Aika P CaudyItaly2024-04-02Commercial Press NEGOTIATION30Bernardo Dominic
1034Misaki U StensethAustralia2024-04-25Truhlar And Truhlar Attys NEW40Ioni Bowcher
1035Silvio C PaprockiJapan2024-04-26Dorl, James J Esq PROPOSAL24Bernardo Dominic
1036Cody L RutaFrance2024-04-16Benton, John B Jr QUALIFIED47Onyama Limba
1037Antonio M DilliardUnited Kingdom2024-04-16Chapman, Ross E Esq QUALIFIED89Stephen Shaw
1038Leon K GlickItaly2024-04-07Rangoni Of Florence QUALIFIED73Amy Elsner
1039Mayumi Y CaldareraArgentina2024-04-06Chapman, Ross E Esq QUALIFIED36Stephen Shaw
1040Aditya U GillianAustralia2024-04-28Feltz Printing Service RENEWAL94Asiya Javayant
1041Aika V DarakjyJapan2024-04-20Chapman, Ross E Esq NEGOTIATION45Xuxue Feng
1042Ashley U IturbideSpain2024-03-31Truhlar And Truhlar Attys PROPOSAL26Asiya Javayant
1043Juan V WaycottUnited Kingdom2024-04-12Feltz Printing Service NEGOTIATION88Bernardo Dominic
1044Mayumi Y SlusarskiFrance2024-04-21King, Christopher A Esq NEW17Onyama Limba
1045Jeanfrancois X VocelkaSpain2024-04-08Printing Dimensions QUALIFIED48Ivan Magalhaes
1046Greenwood K MaletItaly2024-04-13Chemel, James L Cpa NEW27Ivan Magalhaes
1047Sinclair M MaletSpain2024-04-23Feiner Bros PROPOSAL65Ioni Bowcher
1048Kaitlin D TollnerGermany2024-04-04Dorl, James J Esq PROPOSAL60Ivan Magalhaes
1049Francesco M NestleIndia2024-04-17Commercial Press QUALIFIED41Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Johnson H KolmetzGermanyElwin Sharvill QUALIFIED
Jennifer R MaletIndiaXuxue Feng PROPOSAL
Kadeem H FollerArgentinaIvan Magalhaes NEW
Antonio E FlosiCanadaIvan Magalhaes QUALIFIED
Antonio I FigeroaCanadaAmy Elsner PROPOSAL
Juan W SchemmerCanadaOnyama Limba NEGOTIATION
Emily M RoysterItalyOnyama Limba QUALIFIED
Salvatore Z BriddickArgentinaBernardo Dominic RENEWAL
Arvin R NickaAustraliaAmy Elsner UNQUALIFIED
Alejandro H BriddickUnited KingdomIvan Magalhaes RENEWAL
Leon D MarrierFranceAmy Elsner PROPOSAL
Adams L CaudyBrazilAmy Elsner RENEWAL
Jones M OldroydBrazilStephen Shaw PROPOSAL
Maria W WieserGermanyAnna Fali PROPOSAL
Mayumi A WieserUnited KingdomAmy Elsner NEW
Morrow V CaudyCanadaAnna Fali NEW
Ashley Z WieserCanadaElwin Sharvill RENEWAL
Julie R KuskoBrazilIvan Magalhaes NEW
Tony Q GillianJapanAmy Elsner RENEWAL
Ashley H VocelkaGermanyIvan Magalhaes QUALIFIED
Jones D InouyeBrazilOnyama Limba QUALIFIED
Adams H RutaUnited KingdomAsiya Javayant RENEWAL
Arvin W SaylorsIndiaIvan Magalhaes RENEWAL
Jefferson E VocelkaBrazilElwin Sharvill UNQUALIFIED
Johnson G OldroydBrazilXuxue Feng QUALIFIED
Rodrigues B NickaGermanyBernardo Dominic UNQUALIFIED
Nicolas D KuskoAustraliaBernardo Dominic QUALIFIED
Aditya O FollerSpainAnna Fali RENEWAL
Mujtaba A ChuiAustraliaIvan Magalhaes PROPOSAL
Aruna O OstroskyArgentinaStephen Shaw UNQUALIFIED
Nicolas M RoysterCanadaIvan Magalhaes RENEWAL
Mujtaba Z FerenczCanadaAsiya Javayant NEGOTIATION
Faith B KuskoFranceIoni Bowcher UNQUALIFIED
Faith R MaletItalyAsiya Javayant QUALIFIED
Adams W NickaJapanElwin Sharvill RENEWAL
Adams G GlickBrazilBernardo Dominic NEW
Munro H RutaBrazilOnyama Limba UNQUALIFIED
Arvin Z AmigonRussiaAmy Elsner UNQUALIFIED
Costa H FlosiJapanOnyama Limba NEGOTIATION
Sinclair P IturbideUnited KingdomBernardo Dominic QUALIFIED
Smith U TollnerItalyAnna Fali PROPOSAL
Ricardo E RoysterItalyIoni Bowcher PROPOSAL
Maisha J IturbideIndiaIoni Bowcher RENEWAL
Johnson R NickaCanadaStephen Shaw RENEWAL
Smith G RutaFranceBernardo Dominic RENEWAL
Maria F CaudyCanadaStephen Shaw QUALIFIED
Mujtaba G DarakjyCanadaAsiya Javayant RENEWAL
Jefferson Y NickaBrazilAnna Fali RENEWAL
Deepesh O GarufiRussiaIvan Magalhaes NEGOTIATION
Octavia T BologniaJapanXuxue Feng UNQUALIFIED
Frozen Columns
Name
Johnson I Royster
Tony B Bowley
Darci Z Marrier
Antonio P Dilliard
Emily K Iturbide
Faith Z Ferencz
Misaki W Schemmer
Jones L Gaucho
Greenwood K Venere
Jones L Oldroyd
Aika N Caldarera
Smith L Stenseth
Ashley K Albares
David K Caudy
Leon Q Tollner
Smith P Gaucho
James P Paprocki
Claire T Slusarski
Nicolas M Caldarera
Faith F Iturbide
Tony Q Rulapaugh
Salvatore D Waycott
Munro U Rim
Juan B Caudy
Jennifer U Chui
Wickens Z Chui
Jefferson B Stockham
Ricardo J Amigon
Ivar J Garufi
Darci Z Ferencz
Clifford C Nestle
Tony S Slusarski
Smith U Bowley
David X Tollner
Murillo U Gaucho
Cody A Waycott
Leon B Nestle
Murillo M Kolmetz
Francesco M Ruta
Ivar X Albares
Jennifer L Oldroyd
Faith R Schemmer
Izzy Q Inouye
Stacey B Tollner
Aruna Z Glick
Tony A Kolmetz
Cody W Wieser
Nicolas Y Paprocki
Maisha C Gaucho
Misaki W Venere
IdCountryDate
1000United Kingdom2024-04-18
1001United Kingdom2024-04-27
1002Brazil2024-04-07
1003United Kingdom2024-04-21
1004Argentina2024-04-26
1005France2024-04-01
1006Argentina2024-04-10
1007Brazil2024-03-30
1008Germany2024-04-13
1009United Kingdom2024-04-09
1010United Kingdom2024-04-19
1011Australia2024-04-04
1012Japan2024-04-16
1013Australia2024-03-30
1014Russia2024-04-22
1015Canada2024-04-22
1016Spain2024-04-19
1017Brazil2024-04-28
1018Germany2024-04-22
1019Brazil2024-03-31
1020Spain2024-04-16
1021Japan2024-04-13
1022Japan2024-04-17
1023Germany2024-04-02
1024Russia2024-04-04
1025Australia2024-04-02
1026India2024-04-26
1027Italy2024-04-02
1028Argentina2024-04-03
1029France2024-04-17
1030Brazil2024-03-31
1031Australia2024-04-07
1032India2024-04-20
1033Argentina2024-04-22
1034Australia2024-04-15
1035Germany2024-04-03
1036France2024-04-25
1037Argentina2024-04-04
1038United Kingdom2024-04-21
1039Italy2024-04-20
1040Brazil2024-04-22
1041Brazil2024-04-28
1042Germany2024-04-06
1043Italy2024-03-30
1044Russia2024-04-12
1045Argentina2024-04-16
1046France2024-04-17
1047Spain2024-04-10
1048Japan2024-04-19
1049Argentina2024-04-15

On-Demand Data

NameIdCountryDate
Munro J Figeroa1000Spain2024-04-04
Julie T Figeroa1001Canada2024-04-22
Izzy C Doe1002India2024-04-10
Isabel L Whobrey1003Russia2024-04-12
Kadeem N Sergi1004Canada2024-04-18
Clifford O Albares1005Japan2024-04-27
Izzy L Saylors1006Brazil2024-03-31
Ivar X Glick1007Canada2024-04-23
Aika V Ostrosky1008Japan2024-04-10
Rodrigues V Schemmer1009Japan2024-04-24
Izzy L Doe1010Argentina2024-04-13
Leja E Ruta1011Japan2024-04-20
Isabel J Royster1012Germany2024-04-10
Johnson I Shinko1013France2024-04-14
Claire S Venere1014India2024-04-04
Claire C Sergi1015France2024-04-17
Mujtaba Q Waycott1016Germany2024-04-25
Maria M Caldarera1017Canada2024-04-04
Smith Y Butt1018Argentina2024-04-22
James H Chui1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio Y RimIndiaAsiya Javayant NEW
David R ShinkoUnited KingdomIoni Bowcher RENEWAL
Smith S NickaAustraliaIvan Magalhaes PROPOSAL
David V DarakjyUnited KingdomAsiya Javayant NEW
Rodrigues R MaletGermanyStephen Shaw NEGOTIATION
Ashley S DilliardAustraliaOnyama Limba PROPOSAL
Juan C SlusarskiCanadaAnna Fali NEW
Smith Y FigeroaCanadaXuxue Feng RENEWAL
Octavia X GauchoBrazilAsiya Javayant NEW
Alejandro B StockhamSpainAsiya Javayant RENEWAL
Aditya W WieserBrazilAnna Fali RENEWAL
Aruna O DilliardItalyAsiya Javayant NEW
Smith H DilliardItalyXuxue Feng RENEWAL
Juan D ButtItalyIvan Magalhaes UNQUALIFIED
Silvio F CaudyIndiaIvan Magalhaes QUALIFIED
Adams A SaylorsSpainAsiya Javayant UNQUALIFIED
James E PoquetteBrazilIvan Magalhaes NEGOTIATION
Aruna F SchemmerAustraliaOnyama Limba PROPOSAL
Jones Y NestleUnited KingdomXuxue Feng QUALIFIED
Johnson T NestleSpainAsiya Javayant QUALIFIED
Misaki S BriddickJapanAmy Elsner UNQUALIFIED
Juan T FlosiSpainAnna Fali RENEWAL
Clifford W RulapaughSpainElwin Sharvill UNQUALIFIED
Misaki Q SlusarskiJapanAsiya Javayant PROPOSAL
Ricardo Z MarrierIndiaAmy Elsner NEGOTIATION
Faith E RulapaughBrazilXuxue Feng QUALIFIED
Cody J GlickArgentinaStephen Shaw QUALIFIED
Cody X BowleyCanadaBernardo Dominic UNQUALIFIED
Misaki E NestleFranceBernardo Dominic RENEWAL
Greenwood T StockhamBrazilBernardo Dominic NEW
Salvatore U TollnerAustraliaXuxue Feng NEW
Kadeem O KuskoAustraliaBernardo Dominic QUALIFIED
Aika X RulapaughFranceOnyama Limba QUALIFIED
Stacey I AlbaresBrazilAsiya Javayant PROPOSAL
Izzy R DoeGermanyStephen Shaw NEW
James U GarufiAustraliaIoni Bowcher RENEWAL
Leon Z PaprockiArgentinaIvan Magalhaes NEGOTIATION
David S GlickAustraliaXuxue Feng UNQUALIFIED
Maisha I PerinArgentinaOnyama Limba NEGOTIATION
Munro Q ShinkoArgentinaXuxue Feng PROPOSAL

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