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
Leja L MaletSpainXuxue Feng QUALIFIED
Francesco O TollnerSpainAmy Elsner NEGOTIATION
Rodrigues U SchemmerBrazilOnyama Limba NEW
Aditya C PerinArgentinaAmy Elsner RENEWAL
Greenwood S WhobreyFranceElwin Sharvill PROPOSAL
Mujtaba H RoysterUnited KingdomXuxue Feng QUALIFIED
Leon D DilliardCanadaAmy Elsner NEW
Salvatore Y RoysterRussiaAmy Elsner PROPOSAL
Adams E StockhamSpainIvan Magalhaes UNQUALIFIED
Izzy K PoquetteCanadaAsiya Javayant QUALIFIED
Mujtaba W NickaBrazilXuxue Feng PROPOSAL
Jones M MorascaBrazilAmy Elsner UNQUALIFIED
Smith M AlbaresAustraliaIoni Bowcher RENEWAL
Jeanfrancois Q OldroydCanadaBernardo Dominic NEGOTIATION
Izzy A MaletGermanyIvan Magalhaes UNQUALIFIED
Maisha I GlickUnited KingdomIvan Magalhaes NEW
Adams T PaprockiUnited KingdomStephen Shaw QUALIFIED
Kaitlin P DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois T CampainIndiaElwin Sharvill NEW
Aditya D RimSpainIoni Bowcher RENEWAL
Alejandro P FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Julie Y PerinCanadaXuxue Feng NEW
Cody D AlbaresIndiaXuxue Feng PROPOSAL
Octavia R CampainIndiaAsiya Javayant UNQUALIFIED
Leja Z DoeRussiaOnyama Limba NEGOTIATION
Deepesh R FlosiArgentinaIoni Bowcher NEGOTIATION
Izzy F RimRussiaBernardo Dominic RENEWAL
Alejandro U ButtRussiaElwin Sharvill UNQUALIFIED
Deepesh X ShinkoUnited KingdomAnna Fali RENEWAL
Maisha O MaletJapanIvan Magalhaes NEW
Adams T KuskoBrazilIvan Magalhaes NEW
Stacey Q CampainCanadaAnna Fali NEW
Sinclair U SergiIndiaIvan Magalhaes UNQUALIFIED
Ricardo H VocelkaFranceXuxue Feng RENEWAL
Jones W NestleArgentinaElwin Sharvill NEW
Leon C RoysterSpainOnyama Limba PROPOSAL
Jefferson R IturbideJapanStephen Shaw QUALIFIED
Leon A ButtUnited KingdomElwin Sharvill PROPOSAL
Jones V SergiArgentinaAmy Elsner NEW
Silvio O BowleyUnited KingdomIoni Bowcher NEGOTIATION
Darci Z PoquetteSpainBernardo Dominic RENEWAL
Sinclair D CaldareraCanadaXuxue Feng RENEWAL
Silvio C IturbideGermanyBernardo Dominic NEW
Maria U FollerRussiaStephen Shaw NEW
Ivar Q GauchoItalyStephen Shaw NEW
Leja L DilliardUnited KingdomIvan Magalhaes QUALIFIED
Aditya V ChuiFranceIoni Bowcher NEGOTIATION
Antonio A PaprockiJapanStephen Shaw NEGOTIATION
Claire F ChuiUnited KingdomBernardo Dominic RENEWAL
Ashley T VenereAustraliaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson K BriddickArgentinaOnyama Limba NEGOTIATION
Aruna S OldroydAustraliaAnna Fali UNQUALIFIED
Nicolas E InouyeIndiaIvan Magalhaes QUALIFIED
Munro A FollerIndiaXuxue Feng NEW
Murillo F MorascaFranceAnna Fali RENEWAL
Clifford B WhobreyBrazilBernardo Dominic NEW
Sinclair T CaldareraItalyIoni Bowcher PROPOSAL
Jeanfrancois J WieserJapanAmy Elsner PROPOSAL
Alejandro S PerinCanadaIvan Magalhaes NEW
Silvio N RimIndiaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez J StockhamGermany2026-07-16Morlong Associates NEGOTIATION54Asiya Javayant
1001Morrow H SlusarskiIndia2026-07-20Dorl, James J Esq UNQUALIFIED76Elwin Sharvill
1002Jones S AmigonJapan2026-07-18Chemel, James L Cpa QUALIFIED6Bernardo Dominic
1003Silvio R BowleySpain2026-07-12Dorl, James J Esq RENEWAL2Anna Fali
1004Stacey S PoquetteGermany2026-06-30Morlong Associates UNQUALIFIED1Xuxue Feng
1005Costa H AlbaresCanada2026-07-22Feiner Bros PROPOSAL21Amy Elsner
1006Murillo W BologniaCanada2026-07-04King, Christopher A Esq NEGOTIATION64Stephen Shaw
1007Isabel V ButtUnited Kingdom2026-07-24Printing Dimensions NEW43Asiya Javayant
1008Sinclair T PaprockiUnited Kingdom2026-07-06Rousseaux, Michael Esq QUALIFIED47Bernardo Dominic
1009Johnson L FigeroaFrance2026-07-19Chemel, James L Cpa NEGOTIATION76Bernardo Dominic
1010Ashley X ChuiBrazil2026-07-22Chapman, Ross E Esq NEW86Anna Fali
1011Smith J CampainArgentina2026-07-02Rangoni Of Florence UNQUALIFIED40Ivan Magalhaes
1012Isabel I FollerUnited Kingdom2026-07-06Feltz Printing Service NEW85Xuxue Feng
1013Isabel H RoysterItaly2026-06-30Buckley Miller Wright NEGOTIATION21Onyama Limba
1014Emily Q AmigonRussia2026-06-29Chemel, James L Cpa NEGOTIATION38Ivan Magalhaes
1015James L PaprockiCanada2026-07-06Truhlar And Truhlar Attys QUALIFIED25Anna Fali
1016Ricardo A GauchoIndia2026-07-15Morlong Associates UNQUALIFIED68Anna Fali
1017Francesco S RutaArgentina2026-07-08Buckley Miller Wright QUALIFIED89Elwin Sharvill
1018Alejandro P SlusarskiGermany2026-07-23Chapman, Ross E Esq UNQUALIFIED42Ioni Bowcher
1019Isabel F MaletCanada2026-07-14Rousseaux, Michael Esq NEGOTIATION15Asiya Javayant
1020Faith H ChuiFrance2026-07-07Chanay, Jeffrey A Esq NEW66Ivan Magalhaes
1021Maisha B BowleyFrance2026-07-15Chanay, Jeffrey A Esq NEGOTIATION11Bernardo Dominic
1022Jennifer T BowleyUnited Kingdom2026-07-20Chemel, James L Cpa NEGOTIATION33Asiya Javayant
1023Emily X RimItaly2026-07-20Rousseaux, Michael Esq NEGOTIATION60Ivan Magalhaes
1024Sinclair S FerenczUnited Kingdom2026-07-22Chanay, Jeffrey A Esq NEGOTIATION88Stephen Shaw
1025David W ChuiFrance2026-07-12Printing Dimensions RENEWAL28Bernardo Dominic
1026Jennifer A DarakjyJapan2026-07-27Feiner Bros UNQUALIFIED41Anna Fali
1027Leja U MarrierArgentina2026-07-03Morlong Associates RENEWAL88Anna Fali
1028Silvio G KolmetzAustralia2026-07-14Chemel, James L Cpa UNQUALIFIED31Anna Fali
1029Tony U StockhamJapan2026-07-05Chemel, James L Cpa NEGOTIATION76Stephen Shaw
1030Mayumi O ShinkoRussia2026-07-16Chemel, James L Cpa QUALIFIED44Elwin Sharvill
1031Costa C WaycottFrance2026-07-03Rousseaux, Michael Esq NEGOTIATION96Ivan Magalhaes
1032Tony K MacleadJapan2026-07-20Buckley Miller Wright QUALIFIED66Bernardo Dominic
1033Salvatore M SchemmerGermany2026-07-06Chapman, Ross E Esq RENEWAL83Bernardo Dominic
1034Alejandro D MorascaItaly2026-07-23Dorl, James J Esq UNQUALIFIED89Ivan Magalhaes
1035Morrow J FollerGermany2026-07-08King, Christopher A Esq PROPOSAL76Onyama Limba
1036Smith A NestleItaly2026-07-04Chapman, Ross E Esq RENEWAL42Elwin Sharvill
1037Jennifer V RutaRussia2026-07-04Truhlar And Truhlar Attys UNQUALIFIED69Ivan Magalhaes
1038Morrow L ButtCanada2026-07-21Commercial Press PROPOSAL91Xuxue Feng
1039James Z DilliardIndia2026-07-11Rousseaux, Michael Esq NEW63Amy Elsner
1040Johnson Q InouyeArgentina2026-07-27Feiner Bros NEW8Xuxue Feng
1041Arvin H DarakjyCanada2026-07-24King, Christopher A Esq RENEWAL76Onyama Limba
1042Antonio N TollnerIndia2026-07-09Chemel, James L Cpa NEGOTIATION9Xuxue Feng
1043Octavia N MaletAustralia2026-07-19Commercial Press PROPOSAL52Elwin Sharvill
1044Jeanfrancois I DoeRussia2026-07-15Feiner Bros UNQUALIFIED17Onyama Limba
1045Darci M RoysterIndia2026-07-10Benton, John B Jr PROPOSAL78Xuxue Feng
1046Jefferson J TollnerSpain2026-06-29Chapman, Ross E Esq NEGOTIATION47Stephen Shaw
1047Kadeem I NestleSpain2026-07-03Rousseaux, Michael Esq QUALIFIED92Xuxue Feng
1048Maisha T SaylorsUnited Kingdom2026-07-02Dorl, James J Esq PROPOSAL22Bernardo Dominic
1049Leon N OstroskyGermany2026-07-17Dorl, James J Esq PROPOSAL77Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan V NestleCanadaBernardo Dominic NEGOTIATION
Wickens T RutaUnited KingdomElwin Sharvill QUALIFIED
Misaki O MaletItalyAnna Fali UNQUALIFIED
Silvio V NestleRussiaBernardo Dominic NEGOTIATION
Leon A SlusarskiFranceOnyama Limba NEGOTIATION
Kaitlin Y CaudyBrazilIvan Magalhaes UNQUALIFIED
Greenwood D PaprockiAustraliaOnyama Limba UNQUALIFIED
Ashley L RoysterFranceOnyama Limba NEGOTIATION
Julie H DarakjyIndiaElwin Sharvill NEGOTIATION
Cody Q WhobreyUnited KingdomOnyama Limba NEGOTIATION
James C SergiCanadaXuxue Feng PROPOSAL
Darci G DoeBrazilAmy Elsner QUALIFIED
Chavez A CampainCanadaIoni Bowcher NEW
Kaitlin P FollerIndiaAsiya Javayant QUALIFIED
James W PaprockiAustraliaAmy Elsner QUALIFIED
Kadeem M AmigonUnited KingdomStephen Shaw RENEWAL
Munro X IturbideIndiaElwin Sharvill RENEWAL
Emily Y KolmetzCanadaIoni Bowcher NEGOTIATION
Stacey I SaylorsIndiaOnyama Limba NEGOTIATION
Murillo A KolmetzUnited KingdomXuxue Feng QUALIFIED
Arvin Y FigeroaJapanAnna Fali NEGOTIATION
Kadeem E SlusarskiItalyIvan Magalhaes RENEWAL
David V KolmetzItalyOnyama Limba UNQUALIFIED
Cody O StensethCanadaXuxue Feng QUALIFIED
Leja J RutaFranceElwin Sharvill NEGOTIATION
Tony I BriddickArgentinaIvan Magalhaes NEW
Faith H GlickItalyAsiya Javayant UNQUALIFIED
David G OldroydGermanyAsiya Javayant QUALIFIED
Munro T MaletItalyElwin Sharvill UNQUALIFIED
Mujtaba G InouyeItalyAsiya Javayant RENEWAL
Leon F FerenczFranceElwin Sharvill UNQUALIFIED
Mujtaba U BowleyJapanAnna Fali NEGOTIATION
Leon L MarrierAustraliaStephen Shaw NEGOTIATION
Stacey X BowleySpainAmy Elsner NEW
Nicolas L MarrierUnited KingdomXuxue Feng UNQUALIFIED
Alejandro S OldroydJapanOnyama Limba NEW
Ivar A WieserIndiaIvan Magalhaes PROPOSAL
Tony X FollerGermanyAnna Fali NEGOTIATION
Mayumi L StockhamAustraliaStephen Shaw UNQUALIFIED
Leja A OstroskyBrazilAmy Elsner RENEWAL
Costa Z RulapaughUnited KingdomIoni Bowcher QUALIFIED
Francesco O GauchoCanadaAsiya Javayant UNQUALIFIED
Izzy S GauchoUnited KingdomBernardo Dominic RENEWAL
Adams Q NestleSpainXuxue Feng NEW
Leja R KolmetzArgentinaAnna Fali RENEWAL
James T MorascaGermanyAsiya Javayant QUALIFIED
Maria Y RulapaughSpainOnyama Limba QUALIFIED
Emily H NestleItalyAnna Fali NEGOTIATION
Julie N FigeroaArgentinaOnyama Limba PROPOSAL
Sinclair C VenereAustraliaElwin Sharvill NEW
Frozen Columns
Name
Murillo H Ostrosky
Arvin T Venere
Nicolas V Stenseth
Murillo S Saylors
Leja L Inouye
Greenwood E Bowley
Maisha N Darakjy
Izzy D Stockham
Misaki J Amigon
Rodrigues D Glick
Faith X Waycott
Murillo P Ferencz
Sinclair U Saylors
Cody R Albares
Costa L Malet
Kadeem M Whobrey
Antonio H Butt
Leon K Figeroa
Silvio G Nestle
James H Oldroyd
James W Gaucho
Antonio T Iturbide
Deepesh L Ostrosky
Octavia M Saylors
Mujtaba H Tollner
Silvio L Venere
Arvin L Gillian
Maria H Caudy
Ricardo L Rim
Mujtaba N Iturbide
Antonio C Maclead
Mujtaba P Inouye
Nicolas Y Glick
Wickens B Maclead
Tony K Malet
Sinclair F Marrier
Stacey F Caldarera
Juan N Shinko
Ricardo T Ostrosky
Greenwood X Campain
Nicolas P Poquette
Rodrigues Y Ferencz
Murillo A Kolmetz
Alejandro M Whobrey
Faith B Paprocki
James I Doe
Chavez M Poquette
Octavia J Iturbide
Greenwood J Iturbide
Munro L Saylors
IdCountryDate
1000Canada2026-07-07
1001Italy2026-07-13
1002Spain2026-07-03
1003Russia2026-07-15
1004Brazil2026-07-24
1005Japan2026-07-22
1006Spain2026-07-28
1007Argentina2026-07-22
1008France2026-07-05
1009Canada2026-07-01
1010Australia2026-07-20
1011Canada2026-07-04
1012Russia2026-07-19
1013Brazil2026-07-11
1014Germany2026-07-12
1015United Kingdom2026-07-25
1016India2026-07-07
1017Spain2026-07-26
1018Australia2026-07-26
1019Canada2026-07-26
1020France2026-07-04
1021Canada2026-07-15
1022Germany2026-07-13
1023Russia2026-06-29
1024Italy2026-07-02
1025Italy2026-07-13
1026Brazil2026-07-18
1027Canada2026-06-30
1028Russia2026-07-21
1029Spain2026-07-21
1030Canada2026-07-03
1031Brazil2026-07-22
1032Australia2026-07-12
1033Spain2026-07-23
1034Italy2026-07-22
1035Japan2026-07-17
1036India2026-07-28
1037India2026-07-12
1038India2026-07-22
1039Spain2026-07-20
1040France2026-07-27
1041India2026-07-11
1042Italy2026-07-16
1043Spain2026-07-02
1044Spain2026-07-22
1045India2026-07-15
1046Canada2026-07-21
1047United Kingdom2026-07-11
1048Brazil2026-07-15
1049Canada2026-07-03

On-Demand Data

NameIdCountryDate
Mujtaba F Amigon1000United Kingdom2026-07-23
Stacey M Slusarski1001Argentina2026-07-07
Octavia E Darakjy1002Germany2026-07-12
Mujtaba F Tollner1003Brazil2026-07-13
Nicolas J Ostrosky1004France2026-07-24
Greenwood I Stockham1005Australia2026-07-28
Mujtaba Y Gillian1006Japan2026-07-03
Smith K Iturbide1007Russia2026-07-06
Munro D Shinko1008Japan2026-07-16
Tony G Bowley1009Argentina2026-07-08
Murillo W Venere1010Russia2026-07-28
Adams K Malet1011Brazil2026-07-28
Cody L Flosi1012Spain2026-07-06
Munro W Iturbide1013Germany2026-07-15
Jennifer C Bolognia1014United Kingdom2026-07-15
Kadeem D Vocelka1015India2026-07-26
Darci V Rulapaugh1016Australia2026-07-21
Julie D Bolognia1017Spain2026-07-05
Isabel F Darakjy1018Brazil2026-07-08
Kadeem Y Malet1019France2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja S PoquetteItalyAnna Fali NEW
Izzy H MarrierAustraliaIvan Magalhaes UNQUALIFIED
Darci N RutaIndiaIoni Bowcher QUALIFIED
Silvio K SaylorsGermanyAsiya Javayant PROPOSAL
Adams E NickaBrazilAsiya Javayant NEGOTIATION
Nicolas Y BriddickUnited KingdomStephen Shaw UNQUALIFIED
Jefferson Q ShinkoSpainIoni Bowcher NEW
Clifford J BowleyCanadaAnna Fali UNQUALIFIED
Ivar O GillianIndiaStephen Shaw NEGOTIATION
Murillo B MorascaAustraliaElwin Sharvill UNQUALIFIED
Silvio N BowleyItalyElwin Sharvill NEGOTIATION
Greenwood D IturbideItalyStephen Shaw NEW
Faith U SchemmerRussiaOnyama Limba PROPOSAL
James Y GarufiSpainAmy Elsner UNQUALIFIED
Stacey E NickaItalyStephen Shaw NEW
Adams W IturbideArgentinaAsiya Javayant RENEWAL
James L MorascaRussiaXuxue Feng QUALIFIED
Cody S NickaFranceAnna Fali RENEWAL
Greenwood F CaldareraJapanOnyama Limba RENEWAL
Ivar C GarufiUnited KingdomElwin Sharvill QUALIFIED
Adams X StensethUnited KingdomElwin Sharvill PROPOSAL
Morrow Z AmigonItalyStephen Shaw PROPOSAL
Munro L StensethGermanyAnna Fali PROPOSAL
Octavia B DoeArgentinaIvan Magalhaes RENEWAL
Murillo Q RimRussiaAmy Elsner NEW
Rodrigues R PoquetteItalyXuxue Feng QUALIFIED
Emily R IturbideJapanOnyama Limba QUALIFIED
Darci Z PaprockiUnited KingdomStephen Shaw QUALIFIED
Munro J StensethArgentinaBernardo Dominic NEGOTIATION
Smith P CampainAustraliaIvan Magalhaes RENEWAL
Stacey V MacleadIndiaOnyama Limba UNQUALIFIED
Arvin L ButtJapanAmy Elsner NEW
Maisha J OldroydGermanyAnna Fali QUALIFIED
Deepesh S VenereIndiaElwin Sharvill PROPOSAL
Costa I TollnerAustraliaElwin Sharvill PROPOSAL
Aditya J PaprockiGermanyBernardo Dominic NEGOTIATION
Munro N TollnerArgentinaStephen Shaw NEW
Tony Z WhobreyCanadaOnyama Limba PROPOSAL
Chavez O GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Tony E OstroskyBrazilIvan Magalhaes 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>