Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Salvatore X NestleIndiaXuxue Feng PROPOSAL
Ashley T SlusarskiCanadaOnyama Limba NEGOTIATION
Jones K SchemmerArgentinaOnyama Limba NEGOTIATION
Maria L MaletSpainBernardo Dominic PROPOSAL
Juan P MarrierFranceIvan Magalhaes NEW
Kaitlin S WhobreyJapanIvan Magalhaes NEGOTIATION
Johnson R StockhamIndiaIoni Bowcher PROPOSAL
Maria H SergiAustraliaStephen Shaw UNQUALIFIED
Ashley I SlusarskiItalyBernardo Dominic NEW
Juan U RulapaughIndiaIoni Bowcher UNQUALIFIED
Maisha Q MaletGermanyElwin Sharvill QUALIFIED
Aika N FollerSpainOnyama Limba NEW
Maria A StensethCanadaStephen Shaw NEW
Smith S DarakjyGermanyIvan Magalhaes RENEWAL
Jeanfrancois X SergiBrazilIoni Bowcher NEGOTIATION
Wickens L DarakjyJapanOnyama Limba RENEWAL
Alejandro G FollerArgentinaIoni Bowcher NEW
Darci M OldroydSpainAsiya Javayant PROPOSAL
Tony K CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Ashley W DilliardGermanyElwin Sharvill PROPOSAL
Aika B GauchoIndiaIoni Bowcher NEW
James E MacleadIndiaAnna Fali PROPOSAL
Silvio E RulapaughBrazilAnna Fali PROPOSAL
Clifford C MacleadSpainStephen Shaw RENEWAL
Costa E AmigonRussiaXuxue Feng PROPOSAL
Francesco N RoysterItalyAmy Elsner PROPOSAL
Smith W DilliardIndiaAmy Elsner UNQUALIFIED
Ivar S SlusarskiRussiaIvan Magalhaes QUALIFIED
Adams W MorascaBrazilAnna Fali QUALIFIED
Ashley U SaylorsFranceXuxue Feng NEW
Julie U ShinkoArgentinaAsiya Javayant PROPOSAL
Morrow H MaletGermanyBernardo Dominic PROPOSAL
Jeanfrancois C KolmetzRussiaAsiya Javayant NEW
Wickens A FollerJapanOnyama Limba RENEWAL
Cody S GlickArgentinaElwin Sharvill NEW
Julie T BologniaRussiaBernardo Dominic NEW
Alejandro E CampainJapanIvan Magalhaes UNQUALIFIED
Johnson A OstroskyJapanAnna Fali NEW
David D SlusarskiJapanIvan Magalhaes NEGOTIATION
Claire V MacleadCanadaElwin Sharvill NEW
Claire Z RutaJapanAnna Fali NEW
David S InouyeGermanyXuxue Feng NEGOTIATION
Leon I ChuiArgentinaStephen Shaw RENEWAL
Maisha G RutaBrazilBernardo Dominic NEGOTIATION
Maria D MorascaIndiaIvan Magalhaes PROPOSAL
Johnson D MaletRussiaIvan Magalhaes PROPOSAL
Leon Z MacleadJapanAsiya Javayant NEW
Nicolas B GlickIndiaAsiya Javayant NEW
Mujtaba S RimBrazilAsiya Javayant UNQUALIFIED
Claire Z BologniaGermanyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem S FerenczIndiaOnyama Limba PROPOSAL
Emily F MorascaJapanElwin Sharvill NEGOTIATION
Octavia Y SaylorsSpainStephen Shaw QUALIFIED
David U BologniaUnited KingdomAnna Fali PROPOSAL
Chavez Y SergiRussiaAsiya Javayant NEGOTIATION
Nicolas B FerenczFranceOnyama Limba UNQUALIFIED
Jones O SchemmerJapanXuxue Feng PROPOSAL
Juan D NestleSpainStephen Shaw UNQUALIFIED
Maisha Z IturbideBrazilIvan Magalhaes UNQUALIFIED
Jennifer N VocelkaCanadaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki I GillianBrazil2026-07-15Commercial Press PROPOSAL64Amy Elsner
1001Aruna B InouyeArgentina2026-07-28Feiner Bros RENEWAL6Amy Elsner
1002Jones K DarakjyIndia2026-07-03Rousseaux, Michael Esq UNQUALIFIED33Onyama Limba
1003Jefferson G OstroskyBrazil2026-07-13Commercial Press NEW36Ioni Bowcher
1004Leon N MorascaArgentina2026-07-25Buckley Miller Wright NEGOTIATION90Xuxue Feng
1005Arvin B MacleadFrance2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED52Onyama Limba
1006Rodrigues I StensethUnited Kingdom2026-07-13Benton, John B Jr QUALIFIED49Onyama Limba
1007Jefferson C GarufiRussia2026-07-24Feltz Printing Service PROPOSAL38Amy Elsner
1008Arvin F DarakjyItaly2026-07-12Chapman, Ross E Esq QUALIFIED4Ioni Bowcher
1009Misaki B SlusarskiIndia2026-07-22Rousseaux, Michael Esq UNQUALIFIED43Bernardo Dominic
1010Isabel V FlosiSpain2026-07-22Chemel, James L Cpa PROPOSAL5Onyama Limba
1011Julie H RulapaughItaly2026-07-13Benton, John B Jr QUALIFIED36Asiya Javayant
1012Murillo Q WhobreyGermany2026-07-06Morlong Associates PROPOSAL35Amy Elsner
1013Darci H CaudyAustralia2026-07-17Feltz Printing Service RENEWAL44Elwin Sharvill
1014Francesco T NickaAustralia2026-07-08Dorl, James J Esq NEW21Ioni Bowcher
1015Chavez A CaudyFrance2026-07-11Rousseaux, Michael Esq NEGOTIATION17Asiya Javayant
1016Ricardo A DilliardBrazil2026-07-11Buckley Miller Wright RENEWAL23Anna Fali
1017Jefferson Y RutaRussia2026-07-29Chemel, James L Cpa RENEWAL45Bernardo Dominic
1018Adams R WhobreyArgentina2026-07-28Rousseaux, Michael Esq NEW92Onyama Limba
1019Jennifer U MaletJapan2026-07-08Chanay, Jeffrey A Esq QUALIFIED87Onyama Limba
1020Murillo H DoeIndia2026-07-25Feltz Printing Service PROPOSAL67Ivan Magalhaes
1021David F CaudyIndia2026-07-17Rangoni Of Florence RENEWAL69Ioni Bowcher
1022Ivar K RutaJapan2026-07-08Morlong Associates PROPOSAL49Elwin Sharvill
1023Isabel G StockhamIndia2026-07-08Buckley Miller Wright NEW69Asiya Javayant
1024Faith U CampainItaly2026-07-19Truhlar And Truhlar Attys NEW0Ivan Magalhaes
1025David M MaletAustralia2026-07-31Dorl, James J Esq NEW95Amy Elsner
1026Smith Z KolmetzJapan2026-07-16Buckley Miller Wright NEGOTIATION98Amy Elsner
1027Juan X PaprockiUnited Kingdom2026-07-08Feltz Printing Service PROPOSAL20Elwin Sharvill
1028Jones M MorascaBrazil2026-07-27King, Christopher A Esq PROPOSAL11Amy Elsner
1029Morrow M IturbideJapan2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED24Elwin Sharvill
1030Jefferson R DoeItaly2026-07-31Buckley Miller Wright RENEWAL58Bernardo Dominic
1031David Q StockhamUnited Kingdom2026-07-08Feltz Printing Service UNQUALIFIED12Ioni Bowcher
1032Ashley X PaprockiArgentina2026-07-17Chanay, Jeffrey A Esq PROPOSAL77Ioni Bowcher
1033Kaitlin A DoeItaly2026-07-06Buckley Miller Wright NEW30Amy Elsner
1034Jennifer Z SchemmerRussia2026-07-14Rousseaux, Michael Esq QUALIFIED49Ioni Bowcher
1035Izzy S PerinGermany2026-08-01Morlong Associates UNQUALIFIED23Bernardo Dominic
1036Izzy F SlusarskiArgentina2026-07-07Truhlar And Truhlar Attys PROPOSAL4Bernardo Dominic
1037Sinclair A MorascaBrazil2026-07-09Benton, John B Jr PROPOSAL90Bernardo Dominic
1038Aika U GarufiSpain2026-07-14Printing Dimensions QUALIFIED35Ivan Magalhaes
1039Isabel N PoquetteJapan2026-07-22Chanay, Jeffrey A Esq NEW50Onyama Limba
1040Kaitlin P BowleyIndia2026-07-27Feltz Printing Service NEW13Onyama Limba
1041Jennifer G NickaIndia2026-07-17Feiner Bros NEW45Bernardo Dominic
1042Adams D MarrierArgentina2026-07-06Rousseaux, Michael Esq RENEWAL78Stephen Shaw
1043Mayumi F StockhamAustralia2026-07-31Morlong Associates RENEWAL28Bernardo Dominic
1044Clifford A KolmetzSpain2026-07-30Chemel, James L Cpa QUALIFIED47Onyama Limba
1045Julie O FollerCanada2026-07-13Benton, John B Jr RENEWAL16Onyama Limba
1046Cody L RulapaughSpain2026-07-11Chapman, Ross E Esq PROPOSAL40Ivan Magalhaes
1047Stacey N ButtRussia2026-07-31Feltz Printing Service QUALIFIED78Stephen Shaw
1048James V MarrierFrance2026-07-03Rousseaux, Michael Esq RENEWAL80Xuxue Feng
1049Costa Q KolmetzGermany2026-07-05Feltz Printing Service RENEWAL28Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aditya X RoysterItalyAsiya Javayant QUALIFIED
Jeanfrancois I TollnerJapanOnyama Limba PROPOSAL
Clifford J MaletJapanStephen Shaw QUALIFIED
Silvio V BriddickFranceElwin Sharvill RENEWAL
Kaitlin T OldroydRussiaIvan Magalhaes PROPOSAL
Munro G AlbaresCanadaStephen Shaw NEGOTIATION
Leja N GlickGermanyIvan Magalhaes UNQUALIFIED
Ashley P BologniaSpainAmy Elsner NEW
Mayumi W WieserGermanyXuxue Feng NEW
Sinclair T KuskoJapanAnna Fali QUALIFIED
Francesco C PaprockiItalyStephen Shaw QUALIFIED
Ricardo D WieserJapanOnyama Limba NEGOTIATION
Faith T AmigonCanadaOnyama Limba NEGOTIATION
Clifford W GlickRussiaElwin Sharvill RENEWAL
Kaitlin R BowleySpainStephen Shaw RENEWAL
Aika V PaprockiAustraliaStephen Shaw QUALIFIED
Julie R NickaSpainXuxue Feng QUALIFIED
Leja X MaletArgentinaAsiya Javayant NEW
Kadeem Q OstroskyArgentinaIoni Bowcher RENEWAL
David L TollnerFranceOnyama Limba RENEWAL
Stacey H SergiUnited KingdomStephen Shaw NEW
Ricardo D PerinBrazilAsiya Javayant RENEWAL
Nicolas H KuskoJapanBernardo Dominic PROPOSAL
James M MorascaArgentinaXuxue Feng RENEWAL
James W MacleadBrazilOnyama Limba RENEWAL
Aruna P GauchoArgentinaAnna Fali UNQUALIFIED
Chavez F FigeroaGermanyStephen Shaw NEGOTIATION
Kaitlin I DilliardSpainElwin Sharvill PROPOSAL
Wickens F CaldareraGermanyAmy Elsner PROPOSAL
Morrow N FigeroaIndiaAmy Elsner QUALIFIED
Murillo U KolmetzFranceAsiya Javayant UNQUALIFIED
Faith J AlbaresItalyIvan Magalhaes QUALIFIED
Jeanfrancois I PerinItalyXuxue Feng RENEWAL
Mayumi P MarrierSpainIoni Bowcher QUALIFIED
David K BriddickCanadaAnna Fali NEW
Aika T ShinkoIndiaOnyama Limba PROPOSAL
Jones D TollnerIndiaAnna Fali UNQUALIFIED
Kaitlin R NestleIndiaAnna Fali UNQUALIFIED
Jones K DilliardIndiaIvan Magalhaes RENEWAL
Adams H WhobreyRussiaAnna Fali UNQUALIFIED
Johnson G InouyeArgentinaXuxue Feng PROPOSAL
Ashley M RulapaughJapanXuxue Feng NEW
Ricardo A DoeJapanOnyama Limba UNQUALIFIED
Munro G WieserRussiaAnna Fali PROPOSAL
Darci V MaletItalyElwin Sharvill NEGOTIATION
Deepesh B GlickJapanOnyama Limba QUALIFIED
Alejandro B FlosiAustraliaAnna Fali NEGOTIATION
Jennifer Q ButtIndiaAmy Elsner UNQUALIFIED
Kadeem B GlickRussiaBernardo Dominic NEGOTIATION
Wickens G VocelkaIndiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Maria E Whobrey
Darci O Caldarera
Silvio Y Amigon
Arvin W Gillian
Isabel N Ostrosky
Jefferson X Figeroa
Nicolas W Marrier
Tony C Figeroa
Julie L Dilliard
Maria F Stockham
Juan V Glick
Alejandro O Ruta
Munro B Shinko
Misaki Y Caldarera
Octavia Y Figeroa
Rodrigues X Ostrosky
Ricardo D Marrier
Jones U Maclead
Mayumi B Inouye
Kaitlin C Perin
Maisha O Ruta
Arvin Z Tollner
Silvio X Waycott
Adams X Kolmetz
Jefferson A Ostrosky
Mujtaba P Glick
Stacey Q Vocelka
Deepesh W Tollner
Darci F Marrier
Silvio S Bowley
Greenwood W Schemmer
Smith Y Butt
Claire B Glick
Claire B Gillian
Jeanfrancois M Caudy
Octavia Q Caudy
Juan A Tollner
Greenwood A Glick
Aika H Schemmer
Clifford X Wieser
Francesco T Darakjy
Morrow J Glick
Kadeem T Inouye
Aika F Schemmer
Misaki A Darakjy
Tony F Ruta
Aditya A Whobrey
Claire H Kusko
Clifford P Marrier
Kaitlin X Garufi
IdCountryDate
1000Australia2026-07-16
1001Canada2026-07-05
1002Spain2026-07-15
1003France2026-07-07
1004Australia2026-07-17
1005India2026-07-27
1006Japan2026-08-01
1007Brazil2026-07-12
1008Australia2026-07-16
1009Italy2026-07-17
1010France2026-07-27
1011France2026-07-31
1012Spain2026-07-14
1013Canada2026-07-18
1014United Kingdom2026-08-01
1015United Kingdom2026-07-08
1016United Kingdom2026-07-12
1017United Kingdom2026-07-03
1018United Kingdom2026-07-29
1019Japan2026-07-05
1020Italy2026-07-30
1021Argentina2026-07-04
1022Argentina2026-07-10
1023Canada2026-07-29
1024Italy2026-07-15
1025Brazil2026-07-21
1026Germany2026-08-01
1027France2026-07-17
1028Japan2026-07-05
1029Italy2026-07-08
1030Canada2026-07-03
1031India2026-07-21
1032United Kingdom2026-07-09
1033Argentina2026-07-24
1034Germany2026-07-06
1035Brazil2026-07-08
1036Germany2026-07-09
1037Japan2026-07-09
1038Brazil2026-07-18
1039Canada2026-07-17
1040India2026-07-17
1041United Kingdom2026-07-26
1042United Kingdom2026-07-22
1043United Kingdom2026-07-13
1044India2026-07-03
1045Japan2026-07-11
1046Spain2026-07-21
1047France2026-08-01
1048Italy2026-07-10
1049Argentina2026-07-03

On-Demand Data

NameIdCountryDate
Maria B Shinko1000Russia2026-07-27
Rodrigues I Gillian1001Italy2026-07-08
Deepesh I Slusarski1002United Kingdom2026-07-09
Maria T Shinko1003United Kingdom2026-07-08
Smith F Iturbide1004France2026-07-20
Faith O Wieser1005Germany2026-07-05
David B Glick1006Brazil2026-07-26
Isabel R Morasca1007Brazil2026-07-24
Johnson Z Kolmetz1008Japan2026-07-24
Sinclair Y Tollner1009Russia2026-07-18
Alejandro X Wieser1010Japan2026-07-04
Greenwood Q Briddick1011Argentina2026-07-31
Kadeem Y Ferencz1012Argentina2026-07-26
Salvatore S Albares1013Russia2026-07-04
Chavez P Paprocki1014Italy2026-07-24
Alejandro U Foller1015Italy2026-07-10
Darci R Glick1016Spain2026-07-10
Ricardo L Amigon1017United Kingdom2026-07-31
Morrow Z Oldroyd1018Spain2026-07-07
Deepesh B Sergi1019Japan2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy K DilliardArgentinaIvan Magalhaes QUALIFIED
Juan N SergiUnited KingdomStephen Shaw RENEWAL
Silvio K BriddickCanadaStephen Shaw NEW
Smith X FigeroaCanadaElwin Sharvill PROPOSAL
Octavia T NickaFranceElwin Sharvill RENEWAL
Octavia P BriddickIndiaAmy Elsner UNQUALIFIED
Alejandro R VenereUnited KingdomIoni Bowcher RENEWAL
Rodrigues J GarufiIndiaStephen Shaw NEGOTIATION
Salvatore O SergiRussiaStephen Shaw QUALIFIED
Wickens X KolmetzJapanXuxue Feng QUALIFIED
Stacey O DarakjyIndiaStephen Shaw QUALIFIED
Ricardo Y ShinkoFranceAmy Elsner NEGOTIATION
Maisha M GlickFranceBernardo Dominic UNQUALIFIED
Arvin M MorascaAustraliaIvan Magalhaes UNQUALIFIED
Morrow V RulapaughCanadaAmy Elsner RENEWAL
Claire X FerenczFranceAsiya Javayant NEW
Clifford W StensethSpainXuxue Feng RENEWAL
Adams M PaprockiSpainXuxue Feng RENEWAL
Juan X OstroskyAustraliaBernardo Dominic NEGOTIATION
Rodrigues H WieserBrazilAmy Elsner NEW
Nicolas J MarrierRussiaBernardo Dominic NEGOTIATION
Morrow L PoquetteSpainElwin Sharvill QUALIFIED
Morrow Q AlbaresBrazilOnyama Limba QUALIFIED
Cody R NestleBrazilAnna Fali NEW
Aditya V DarakjyAustraliaIvan Magalhaes QUALIFIED
Juan N FollerIndiaIoni Bowcher NEGOTIATION
James E DilliardBrazilIvan Magalhaes RENEWAL
Jefferson Z CampainArgentinaIvan Magalhaes PROPOSAL
Johnson S PaprockiFranceBernardo Dominic NEW
James V RimGermanyBernardo Dominic PROPOSAL
Ashley V IturbideItalyStephen Shaw NEGOTIATION
Antonio B PaprockiItalyAsiya Javayant NEW
James K VocelkaArgentinaIoni Bowcher NEW
Chavez D FerenczCanadaIoni Bowcher RENEWAL
Johnson I MaletFranceAmy Elsner NEW
Rodrigues G BriddickFranceOnyama Limba PROPOSAL
Clifford L OldroydItalyElwin Sharvill UNQUALIFIED
Nicolas X FigeroaItalyXuxue Feng NEGOTIATION
Jennifer H CaudyJapanAmy Elsner UNQUALIFIED
Maria H FollerItalyIoni 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>