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
Silvio O FerenczAustraliaStephen Shaw QUALIFIED
Munro N SaylorsSpainBernardo Dominic NEGOTIATION
Ricardo A DoeGermanyBernardo Dominic NEGOTIATION
Johnson K MorascaSpainXuxue Feng NEW
Silvio U StensethAustraliaStephen Shaw PROPOSAL
Cody N AmigonRussiaStephen Shaw RENEWAL
Tony O StensethArgentinaAnna Fali NEGOTIATION
Rodrigues T AmigonAustraliaIoni Bowcher NEW
James B InouyeBrazilElwin Sharvill RENEWAL
Cody I GlickAustraliaIoni Bowcher UNQUALIFIED
Emily E SergiRussiaElwin Sharvill NEW
Deepesh S VenereAustraliaXuxue Feng QUALIFIED
Silvio G GauchoUnited KingdomElwin Sharvill NEGOTIATION
Wickens C DarakjyIndiaAnna Fali RENEWAL
Johnson I SlusarskiGermanyAsiya Javayant NEW
Wickens Q SergiFranceAsiya Javayant RENEWAL
Costa I ShinkoItalyXuxue Feng RENEWAL
Adams A WaycottArgentinaStephen Shaw UNQUALIFIED
Deepesh S GarufiArgentinaAnna Fali NEGOTIATION
Costa N RoysterArgentinaAsiya Javayant NEW
Murillo S StensethSpainIvan Magalhaes PROPOSAL
Maria G StockhamCanadaAmy Elsner NEW
Izzy M SchemmerGermanyAmy Elsner PROPOSAL
Ashley R KuskoSpainIvan Magalhaes NEGOTIATION
Murillo W DarakjyIndiaElwin Sharvill UNQUALIFIED
Kaitlin D ButtFranceElwin Sharvill NEW
Ivar J BowleyJapanIoni Bowcher UNQUALIFIED
Ivar E OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood G DarakjySpainOnyama Limba NEW
Aruna I FigeroaItalyAmy Elsner NEW
Mayumi D WhobreyGermanyXuxue Feng NEW
Ashley R PaprockiAustraliaIvan Magalhaes UNQUALIFIED
Clifford R ButtFranceIoni Bowcher NEW
Claire B KolmetzCanadaAmy Elsner NEW
Juan J VocelkaRussiaAsiya Javayant QUALIFIED
Emily R DarakjyJapanIoni Bowcher UNQUALIFIED
Costa I ShinkoCanadaElwin Sharvill UNQUALIFIED
Jones S CaudyIndiaXuxue Feng NEGOTIATION
Sinclair G DilliardCanadaIoni Bowcher RENEWAL
Silvio Y OldroydBrazilAmy Elsner NEW
Ricardo V VenereGermanyStephen Shaw PROPOSAL
Jones S SchemmerUnited KingdomIoni Bowcher RENEWAL
Costa I RulapaughJapanBernardo Dominic NEGOTIATION
Leja E MorascaIndiaAsiya Javayant NEGOTIATION
Morrow U CampainBrazilIvan Magalhaes UNQUALIFIED
David Q RoysterArgentinaBernardo Dominic NEW
Kadeem N CampainAustraliaStephen Shaw RENEWAL
Octavia G ShinkoFranceStephen Shaw UNQUALIFIED
Mayumi G TollnerUnited KingdomIoni Bowcher PROPOSAL
Nicolas A ChuiBrazilBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody W GarufiAustraliaElwin Sharvill NEGOTIATION
Faith Y OstroskyIndiaXuxue Feng NEGOTIATION
Clifford N SlusarskiArgentinaIoni Bowcher PROPOSAL
Morrow N BowleySpainXuxue Feng QUALIFIED
Leon M CampainFranceElwin Sharvill UNQUALIFIED
Silvio U KuskoRussiaElwin Sharvill NEW
Mujtaba E PaprockiUnited KingdomAsiya Javayant PROPOSAL
Silvio U ShinkoCanadaOnyama Limba NEGOTIATION
Antonio W WhobreyIndiaIvan Magalhaes NEGOTIATION
Leja W FerenczUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci W MacleadAustralia2024-03-30Commercial Press RENEWAL84Ivan Magalhaes
1001Arvin L ButtUnited Kingdom2024-04-28Buckley Miller Wright RENEWAL72Onyama Limba
1002Francesco B ChuiUnited Kingdom2024-04-19Feltz Printing Service QUALIFIED4Amy Elsner
1003Murillo L AlbaresBrazil2024-04-13Chapman, Ross E Esq RENEWAL33Elwin Sharvill
1004Octavia B FollerSpain2024-04-06Chanay, Jeffrey A Esq PROPOSAL93Amy Elsner
1005Antonio W WhobreyArgentina2024-04-06Commercial Press QUALIFIED0Asiya Javayant
1006Salvatore F DilliardSpain2024-04-06Printing Dimensions PROPOSAL27Elwin Sharvill
1007Deepesh L MacleadAustralia2024-04-07Benton, John B Jr RENEWAL80Onyama Limba
1008Misaki B KuskoJapan2024-04-15Rangoni Of Florence PROPOSAL64Ioni Bowcher
1009Adams S DilliardBrazil2024-04-14Truhlar And Truhlar Attys UNQUALIFIED41Ioni Bowcher
1010Sinclair X FollerCanada2024-04-19Feiner Bros UNQUALIFIED82Ivan Magalhaes
1011Aditya T KuskoIndia2024-04-06Rangoni Of Florence NEGOTIATION76Asiya Javayant
1012Wickens D ChuiSpain2024-04-02Commercial Press NEW66Amy Elsner
1013Kadeem S StensethAustralia2024-03-31Buckley Miller Wright NEW56Stephen Shaw
1014Silvio O StockhamJapan2024-04-16Rousseaux, Michael Esq RENEWAL14Bernardo Dominic
1015Deepesh M BriddickRussia2024-04-28Chanay, Jeffrey A Esq QUALIFIED28Elwin Sharvill
1016Greenwood X VocelkaJapan2024-04-21Rangoni Of Florence QUALIFIED50Xuxue Feng
1017Maria L KolmetzUnited Kingdom2024-04-27King, Christopher A Esq UNQUALIFIED60Amy Elsner
1018Jones E CaudyFrance2024-04-10Chanay, Jeffrey A Esq PROPOSAL92Bernardo Dominic
1019Smith N PoquetteBrazil2024-03-31King, Christopher A Esq RENEWAL75Ioni Bowcher
1020Antonio P OstroskyIndia2024-04-18Chemel, James L Cpa PROPOSAL83Elwin Sharvill
1021Darci B RoysterUnited Kingdom2024-04-16Feiner Bros UNQUALIFIED87Ivan Magalhaes
1022Smith M PaprockiJapan2024-04-28Chemel, James L Cpa PROPOSAL50Xuxue Feng
1023Aditya X BowleyBrazil2024-04-07Morlong Associates UNQUALIFIED67Asiya Javayant
1024Silvio S MarrierRussia2024-04-28Rangoni Of Florence NEW33Elwin Sharvill
1025Emily X SchemmerSpain2024-04-06Commercial Press UNQUALIFIED25Onyama Limba
1026Kadeem P BowleyJapan2024-04-10Printing Dimensions NEW29Amy Elsner
1027Isabel Q MorascaArgentina2024-04-14Chapman, Ross E Esq NEGOTIATION37Bernardo Dominic
1028Clifford J DoeAustralia2024-04-24King, Christopher A Esq NEW29Onyama Limba
1029Aditya S RimBrazil2024-04-08Rangoni Of Florence QUALIFIED1Asiya Javayant
1030Smith N OldroydGermany2024-04-14Printing Dimensions NEGOTIATION35Stephen Shaw
1031Stacey C FigeroaAustralia2024-04-20Benton, John B Jr NEGOTIATION47Anna Fali
1032Jones Z StockhamAustralia2024-04-21King, Christopher A Esq UNQUALIFIED15Onyama Limba
1033Mujtaba H BriddickAustralia2024-04-27Morlong Associates NEW31Anna Fali
1034Murillo E KolmetzIndia2024-04-16Commercial Press PROPOSAL62Ivan Magalhaes
1035Antonio C MarrierItaly2024-04-05Morlong Associates UNQUALIFIED28Ivan Magalhaes
1036Claire S OldroydUnited Kingdom2024-04-14Feltz Printing Service QUALIFIED44Onyama Limba
1037Leja I RutaArgentina2024-04-03Truhlar And Truhlar Attys NEGOTIATION77Stephen Shaw
1038Ricardo Y FigeroaAustralia2024-04-27King, Christopher A Esq UNQUALIFIED5Bernardo Dominic
1039Murillo Z KuskoJapan2024-04-21Rangoni Of Florence QUALIFIED79Asiya Javayant
1040Octavia W ShinkoIndia2024-03-30Rangoni Of Florence UNQUALIFIED73Bernardo Dominic
1041Greenwood J OldroydUnited Kingdom2024-04-21Printing Dimensions RENEWAL6Asiya Javayant
1042Ricardo W GauchoSpain2024-04-08Feltz Printing Service QUALIFIED52Xuxue Feng
1043Maisha I MarrierCanada2024-04-09King, Christopher A Esq NEW26Onyama Limba
1044Jones G MarrierJapan2024-04-22Feiner Bros NEGOTIATION80Bernardo Dominic
1045Mujtaba Z BriddickCanada2024-04-13Printing Dimensions PROPOSAL72Bernardo Dominic
1046James V SergiArgentina2024-04-07Printing Dimensions QUALIFIED35Ioni Bowcher
1047Cody Y ChuiSpain2024-04-16Benton, John B Jr RENEWAL22Elwin Sharvill
1048Isabel M RoysterBrazil2024-04-10Feltz Printing Service RENEWAL53Xuxue Feng
1049Morrow H MarrierFrance2024-04-26King, Christopher A Esq NEGOTIATION29Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair U RimIndiaAsiya Javayant QUALIFIED
Morrow V KolmetzIndiaIoni Bowcher RENEWAL
Aika V NestleRussiaAnna Fali PROPOSAL
Emily F RutaBrazilBernardo Dominic NEGOTIATION
Mujtaba L OldroydFranceBernardo Dominic QUALIFIED
Jennifer K InouyeItalyIvan Magalhaes RENEWAL
James C KuskoGermanyAnna Fali PROPOSAL
James Q KuskoItalyBernardo Dominic NEGOTIATION
Jefferson X GarufiCanadaOnyama Limba QUALIFIED
Faith A MacleadArgentinaAmy Elsner RENEWAL
Alejandro W ButtJapanIvan Magalhaes PROPOSAL
Morrow I ButtFranceStephen Shaw UNQUALIFIED
Ricardo P RulapaughAustraliaBernardo Dominic UNQUALIFIED
Murillo Z ShinkoAustraliaIoni Bowcher NEGOTIATION
Claire J CampainUnited KingdomAsiya Javayant QUALIFIED
Jefferson L CaudyCanadaXuxue Feng UNQUALIFIED
Darci X RimItalyAnna Fali UNQUALIFIED
Morrow E CampainCanadaAmy Elsner NEW
Maisha X GlickItalyElwin Sharvill QUALIFIED
Munro D TollnerRussiaStephen Shaw RENEWAL
Kaitlin J NickaAustraliaAnna Fali NEW
Jones E VocelkaUnited KingdomStephen Shaw NEGOTIATION
Misaki J NickaItalyElwin Sharvill RENEWAL
Alejandro T StockhamSpainOnyama Limba RENEWAL
Antonio H CaudyJapanBernardo Dominic QUALIFIED
Murillo B FlosiJapanAnna Fali QUALIFIED
Clifford Y MacleadIndiaElwin Sharvill UNQUALIFIED
Faith V StensethArgentinaAnna Fali PROPOSAL
Emily Q PerinGermanyElwin Sharvill RENEWAL
James H DarakjyFranceIvan Magalhaes RENEWAL
Rodrigues H CampainArgentinaElwin Sharvill RENEWAL
James I CaudyIndiaIvan Magalhaes PROPOSAL
Misaki V VenereFranceOnyama Limba PROPOSAL
Isabel L FollerCanadaOnyama Limba UNQUALIFIED
Leja K KuskoGermanyOnyama Limba PROPOSAL
Leja C IturbideUnited KingdomBernardo Dominic RENEWAL
Maisha Q MaletJapanIvan Magalhaes PROPOSAL
Silvio V GillianAustraliaAsiya Javayant UNQUALIFIED
Ashley W PerinUnited KingdomElwin Sharvill QUALIFIED
Deepesh J CaudyArgentinaAmy Elsner UNQUALIFIED
Adams X AlbaresRussiaElwin Sharvill QUALIFIED
Morrow W PaprockiRussiaAmy Elsner PROPOSAL
Ashley I DilliardBrazilStephen Shaw NEGOTIATION
Mayumi R FigeroaGermanyAnna Fali RENEWAL
Costa N CampainItalyAmy Elsner UNQUALIFIED
Leon A DoeJapanAsiya Javayant NEGOTIATION
Darci X SchemmerAustraliaIoni Bowcher QUALIFIED
Octavia J KuskoIndiaElwin Sharvill NEGOTIATION
Silvio C StensethAustraliaStephen Shaw QUALIFIED
Kaitlin C BriddickArgentinaAmy Elsner RENEWAL
Frozen Columns
Name
Jefferson B Bowley
Costa F Malet
Rodrigues J Iturbide
Claire I Gaucho
Emily X Caudy
Julie H Rulapaugh
Wickens W Bowley
Johnson C Garufi
James N Butt
Morrow M Garufi
Maisha A Sergi
Juan M Flosi
Leon L Albares
Aruna K Malet
David X Chui
Faith M Marrier
Izzy W Doe
Mayumi Z Vocelka
David E Albares
Tony F Flosi
Jeanfrancois C Amigon
Wickens Z Whobrey
Jones R Sergi
Leon C Kusko
Kaitlin B Iturbide
Aika K Malet
Aruna G Poquette
Kaitlin X Nicka
Aika M Kusko
Kadeem U Tollner
David Q Waycott
Maisha B Kusko
Juan T Saylors
Julie W Waycott
Chavez V Maclead
Deepesh T Nicka
Nicolas N Gaucho
Leon E Bolognia
Faith F Bowley
Francesco Z Kusko
Greenwood D Albares
Francesco I Maclead
Murillo G Sergi
Jones G Ruta
Jennifer F Campain
Octavia M Poquette
Leon T Gillian
Cody Y Maclead
Aika J Venere
Rodrigues I Ostrosky
IdCountryDate
1000Germany2024-04-12
1001Canada2024-04-12
1002United Kingdom2024-04-04
1003Spain2024-04-22
1004Japan2024-04-17
1005Australia2024-04-24
1006Canada2024-04-16
1007France2024-04-13
1008Russia2024-04-08
1009Spain2024-03-31
1010Japan2024-04-28
1011Italy2024-04-09
1012United Kingdom2024-04-05
1013France2024-04-04
1014Italy2024-04-10
1015Argentina2024-04-28
1016Spain2024-04-15
1017Russia2024-04-21
1018Japan2024-04-25
1019Italy2024-04-17
1020Brazil2024-03-31
1021Spain2024-04-19
1022Brazil2024-04-10
1023United Kingdom2024-03-31
1024Australia2024-04-01
1025Japan2024-04-14
1026Argentina2024-04-23
1027Spain2024-04-15
1028Japan2024-04-26
1029United Kingdom2024-04-13
1030Russia2024-04-07
1031Russia2024-04-18
1032Brazil2024-04-04
1033Spain2024-04-20
1034Germany2024-04-14
1035United Kingdom2024-04-27
1036United Kingdom2024-04-17
1037Australia2024-04-07
1038Japan2024-04-19
1039Canada2024-04-17
1040France2024-04-13
1041Brazil2024-03-30
1042Argentina2024-04-14
1043Australia2024-04-23
1044France2024-04-11
1045Australia2024-04-24
1046Spain2024-03-30
1047Argentina2024-03-30
1048United Kingdom2024-04-26
1049Brazil2024-04-03

On-Demand Data

NameIdCountryDate
Jeanfrancois Q Tollner1000India2024-04-04
Ricardo R Campain1001Russia2024-04-26
Izzy I Doe1002India2024-04-05
Maisha W Vocelka1003Canada2024-04-01
Isabel B Chui1004Australia2024-04-25
Arvin Q Venere1005Argentina2024-04-15
Jefferson V Ruta1006France2024-04-10
Murillo V Inouye1007United Kingdom2024-04-02
Silvio D Saylors1008India2024-04-08
Darci V Garufi1009Russia2024-04-02
Ashley L Kolmetz1010Brazil2024-04-28
Rodrigues X Doe1011Spain2024-04-11
Alejandro F Nestle1012Argentina2024-04-06
Adams J Glick1013United Kingdom2024-04-21
Morrow P Nestle1014India2024-03-30
Tony C Ostrosky1015Italy2024-04-20
Cody F Ferencz1016Italy2024-04-27
Munro C Royster1017Italy2024-04-17
Rodrigues C Tollner1018Germany2024-04-17
Leja Q Caudy1019Russia2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones X CaldareraArgentinaAnna Fali PROPOSAL
Julie Y ShinkoItalyXuxue Feng NEW
Sinclair J IturbideUnited KingdomIvan Magalhaes NEW
Darci Z NickaBrazilIoni Bowcher NEGOTIATION
Ivar H SlusarskiArgentinaIvan Magalhaes NEW
Adams J MaletJapanXuxue Feng NEGOTIATION
Misaki Z StensethBrazilIvan Magalhaes QUALIFIED
Aika S GarufiArgentinaXuxue Feng NEGOTIATION
Silvio Q SaylorsBrazilIoni Bowcher NEGOTIATION
James V StensethGermanyIoni Bowcher QUALIFIED
Alejandro V RutaGermanyBernardo Dominic NEW
David D WhobreyCanadaAsiya Javayant QUALIFIED
Munro Y NickaArgentinaXuxue Feng RENEWAL
Nicolas X GarufiCanadaOnyama Limba RENEWAL
Maisha T AmigonAustraliaAmy Elsner RENEWAL
James J KuskoIndiaStephen Shaw QUALIFIED
Isabel W AmigonUnited KingdomAnna Fali UNQUALIFIED
Octavia J GillianSpainAsiya Javayant QUALIFIED
Smith H MaletJapanOnyama Limba NEGOTIATION
Kadeem Y GauchoIndiaXuxue Feng RENEWAL
Cody C BologniaCanadaAnna Fali QUALIFIED
Leja W CampainCanadaElwin Sharvill QUALIFIED
Faith P WieserFranceBernardo Dominic QUALIFIED
Deepesh T MaletRussiaAnna Fali NEW
Leja F ShinkoBrazilIvan Magalhaes QUALIFIED
Mujtaba F RoysterGermanyElwin Sharvill UNQUALIFIED
Aika Q ChuiCanadaOnyama Limba UNQUALIFIED
Murillo E MaletAustraliaXuxue Feng UNQUALIFIED
Clifford E MacleadFranceIoni Bowcher NEGOTIATION
Costa W KuskoSpainOnyama Limba RENEWAL
Emily X AlbaresArgentinaOnyama Limba NEGOTIATION
Octavia H PoquetteGermanyBernardo Dominic NEW
David Q GillianFranceStephen Shaw NEGOTIATION
Deepesh Q TollnerCanadaStephen Shaw NEGOTIATION
Morrow C BologniaBrazilAmy Elsner RENEWAL
Kadeem H ChuiCanadaStephen Shaw QUALIFIED
Jennifer Q GarufiFranceAsiya Javayant NEW
Ivar B NickaIndiaStephen Shaw QUALIFIED
Jones X IturbideGermanyBernardo Dominic NEGOTIATION
Kaitlin N DilliardAustraliaAsiya Javayant 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>