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
Ricardo T CaudyAustraliaAsiya Javayant UNQUALIFIED
Antonio V CampainBrazilIoni Bowcher RENEWAL
Claire X GarufiJapanAnna Fali QUALIFIED
Wickens X BologniaJapanOnyama Limba PROPOSAL
Murillo K DarakjyRussiaIvan Magalhaes QUALIFIED
Kadeem R MorascaArgentinaIvan Magalhaes UNQUALIFIED
Izzy Z StockhamCanadaIoni Bowcher PROPOSAL
Jennifer J GauchoGermanyOnyama Limba PROPOSAL
Francesco U StensethFranceStephen Shaw NEGOTIATION
James C OldroydRussiaElwin Sharvill NEW
Morrow Q WhobreyArgentinaXuxue Feng NEGOTIATION
Antonio G FollerIndiaAmy Elsner UNQUALIFIED
Johnson R GillianIndiaAsiya Javayant QUALIFIED
Morrow C SergiRussiaXuxue Feng NEW
Izzy C PerinItalyAnna Fali NEGOTIATION
Francesco T VenereAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba O DilliardCanadaIvan Magalhaes NEGOTIATION
Juan U WaycottUnited KingdomAmy Elsner QUALIFIED
Juan H AlbaresJapanOnyama Limba PROPOSAL
Jefferson E MorascaBrazilAnna Fali NEGOTIATION
Octavia Z BowleyBrazilStephen Shaw UNQUALIFIED
Mujtaba V RimJapanElwin Sharvill RENEWAL
Costa N PaprockiFranceIvan Magalhaes PROPOSAL
Misaki Q AmigonArgentinaOnyama Limba UNQUALIFIED
Costa D DilliardGermanyBernardo Dominic QUALIFIED
Jefferson J MaletBrazilElwin Sharvill QUALIFIED
Julie Q RimArgentinaXuxue Feng PROPOSAL
Aruna J RimArgentinaXuxue Feng NEGOTIATION
Octavia G CaudyItalyAnna Fali RENEWAL
Izzy F SchemmerItalyBernardo Dominic RENEWAL
Munro P RutaAustraliaAnna Fali PROPOSAL
Clifford P GarufiBrazilBernardo Dominic NEGOTIATION
Costa E SchemmerArgentinaAsiya Javayant NEW
Julie B GlickRussiaAmy Elsner PROPOSAL
Deepesh E RimUnited KingdomElwin Sharvill UNQUALIFIED
Munro H ShinkoItalyIoni Bowcher NEGOTIATION
Claire M TollnerGermanyAnna Fali PROPOSAL
Stacey G CaldareraArgentinaBernardo Dominic RENEWAL
Morrow R MarrierIndiaIvan Magalhaes NEGOTIATION
Costa G StockhamJapanOnyama Limba UNQUALIFIED
Nicolas H InouyeFranceIvan Magalhaes QUALIFIED
David K MaletRussiaAnna Fali RENEWAL
Salvatore M InouyeJapanElwin Sharvill NEW
David V NickaFranceIvan Magalhaes UNQUALIFIED
Aditya F NestleRussiaAsiya Javayant RENEWAL
Faith H ShinkoJapanIvan Magalhaes QUALIFIED
Jones U RutaGermanyElwin Sharvill NEW
James S NickaItalyAmy Elsner PROPOSAL
Leon V OldroydArgentinaAsiya Javayant UNQUALIFIED
Stacey W AmigonRussiaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi Z ShinkoFranceXuxue Feng RENEWAL
Jeanfrancois U CaudySpainElwin Sharvill NEW
Munro H RutaGermanyBernardo Dominic RENEWAL
Mujtaba W MacleadRussiaIvan Magalhaes NEGOTIATION
Aruna L ChuiItalyOnyama Limba RENEWAL
Wickens H SlusarskiSpainIvan Magalhaes NEGOTIATION
Emily N CaudyArgentinaElwin Sharvill QUALIFIED
Maria J MaletBrazilIoni Bowcher NEW
Julie I StockhamBrazilOnyama Limba RENEWAL
David A TollnerFranceElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya U KolmetzAustralia2026-07-05Commercial Press QUALIFIED26Asiya Javayant
1001Aika N AlbaresSpain2026-07-18Dorl, James J Esq QUALIFIED75Amy Elsner
1002Ashley O MaletSpain2026-07-15Morlong Associates NEGOTIATION43Asiya Javayant
1003Stacey H PoquetteArgentina2026-07-08Truhlar And Truhlar Attys RENEWAL27Stephen Shaw
1004Arvin Y MarrierSpain2026-06-30Chemel, James L Cpa NEW99Ioni Bowcher
1005Antonio H FigeroaRussia2026-07-23Buckley Miller Wright PROPOSAL32Elwin Sharvill
1006Alejandro N VocelkaUnited Kingdom2026-07-14Buckley Miller Wright QUALIFIED10Elwin Sharvill
1007Munro L StockhamSpain2026-07-16King, Christopher A Esq QUALIFIED67Xuxue Feng
1008Aruna O StensethIndia2026-07-10Rangoni Of Florence QUALIFIED83Xuxue Feng
1009Ivar A FollerArgentina2026-07-09Morlong Associates NEGOTIATION29Xuxue Feng
1010Silvio T RutaSpain2026-06-25Chemel, James L Cpa NEW76Onyama Limba
1011Clifford F IturbideCanada2026-07-14Chanay, Jeffrey A Esq RENEWAL78Ivan Magalhaes
1012Adams H MorascaRussia2026-07-22King, Christopher A Esq RENEWAL51Elwin Sharvill
1013Juan X WieserAustralia2026-07-21Commercial Press PROPOSAL3Ivan Magalhaes
1014Isabel Q NickaSpain2026-07-20Commercial Press UNQUALIFIED21Amy Elsner
1015Ricardo I BologniaJapan2026-06-30Benton, John B Jr QUALIFIED49Anna Fali
1016Misaki U StensethItaly2026-07-07Chemel, James L Cpa NEGOTIATION87Elwin Sharvill
1017Murillo W TollnerCanada2026-07-06Feltz Printing Service UNQUALIFIED54Anna Fali
1018Izzy O KolmetzRussia2026-07-07Chemel, James L Cpa RENEWAL93Onyama Limba
1019Murillo J OldroydUnited Kingdom2026-07-07Dorl, James J Esq PROPOSAL17Bernardo Dominic
1020Greenwood J BowleyItaly2026-07-19Dorl, James J Esq PROPOSAL98Ioni Bowcher
1021Isabel C WhobreyItaly2026-07-23King, Christopher A Esq NEGOTIATION22Ivan Magalhaes
1022Juan I MorascaCanada2026-07-20Dorl, James J Esq QUALIFIED37Amy Elsner
1023Arvin A CaudyIndia2026-07-14Feltz Printing Service UNQUALIFIED55Ioni Bowcher
1024Smith T KuskoJapan2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED26Anna Fali
1025Salvatore G GlickAustralia2026-07-12Feltz Printing Service RENEWAL31Ioni Bowcher
1026Claire D GillianArgentina2026-06-25Truhlar And Truhlar Attys NEW42Xuxue Feng
1027Sinclair J FlosiArgentina2026-07-16Feiner Bros UNQUALIFIED69Onyama Limba
1028Murillo K InouyeArgentina2026-06-28Feiner Bros QUALIFIED15Anna Fali
1029Deepesh U DilliardSpain2026-07-06Rangoni Of Florence NEGOTIATION37Ioni Bowcher
1030Claire Y RutaFrance2026-07-08Dorl, James J Esq QUALIFIED52Stephen Shaw
1031Deepesh C GillianSpain2026-07-23Rangoni Of Florence UNQUALIFIED49Bernardo Dominic
1032Johnson N InouyeCanada2026-07-14Rangoni Of Florence NEGOTIATION11Xuxue Feng
1033Johnson Q FerenczCanada2026-07-03Printing Dimensions RENEWAL72Ivan Magalhaes
1034Wickens F GarufiBrazil2026-07-11Feiner Bros QUALIFIED13Onyama Limba
1035Julie N ChuiArgentina2026-07-12King, Christopher A Esq UNQUALIFIED87Anna Fali
1036Sinclair X WieserUnited Kingdom2026-07-11Buckley Miller Wright UNQUALIFIED28Ivan Magalhaes
1037Claire P FollerIndia2026-07-13Rousseaux, Michael Esq QUALIFIED53Ioni Bowcher
1038Misaki R StensethFrance2026-07-24King, Christopher A Esq NEW86Asiya Javayant
1039Aika Z GauchoFrance2026-07-14Rangoni Of Florence NEGOTIATION35Elwin Sharvill
1040Jefferson A FlosiFrance2026-06-25Commercial Press PROPOSAL39Xuxue Feng
1041Smith C ShinkoJapan2026-06-28Printing Dimensions UNQUALIFIED22Ivan Magalhaes
1042Jefferson W CaudyBrazil2026-07-23Dorl, James J Esq NEW32Ioni Bowcher
1043Munro I KuskoUnited Kingdom2026-07-05Buckley Miller Wright NEGOTIATION74Asiya Javayant
1044James X SlusarskiGermany2026-06-26Printing Dimensions PROPOSAL74Amy Elsner
1045Adams Z GlickItaly2026-07-19Commercial Press NEW23Onyama Limba
1046Misaki A GlickRussia2026-07-22Truhlar And Truhlar Attys RENEWAL24Amy Elsner
1047Leja I BologniaJapan2026-07-19Dorl, James J Esq RENEWAL95Bernardo Dominic
1048Mujtaba Q ChuiSpain2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED56Anna Fali
1049Leon G BologniaItaly2026-06-29Feiner Bros QUALIFIED91Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Chavez J MaletIndiaXuxue Feng RENEWAL
Rodrigues F RimJapanBernardo Dominic NEGOTIATION
Octavia H OstroskyCanadaAsiya Javayant RENEWAL
Costa D SchemmerCanadaStephen Shaw RENEWAL
Leon O MacleadItalyAsiya Javayant PROPOSAL
Sinclair T PoquetteAustraliaStephen Shaw RENEWAL
Maria M NestleIndiaAnna Fali QUALIFIED
Jones I FollerArgentinaOnyama Limba RENEWAL
Leja P FerenczFranceAmy Elsner NEW
Leja Z PaprockiArgentinaAmy Elsner QUALIFIED
Juan A DilliardFranceXuxue Feng PROPOSAL
Arvin D OldroydItalyIoni Bowcher QUALIFIED
Ivar G GillianCanadaElwin Sharvill RENEWAL
Costa S NestleGermanyOnyama Limba PROPOSAL
Deepesh B PaprockiGermanyOnyama Limba PROPOSAL
Jefferson Q BriddickFranceIvan Magalhaes QUALIFIED
Morrow M PerinBrazilElwin Sharvill NEW
Deepesh G MorascaFranceAmy Elsner NEGOTIATION
Wickens C AmigonIndiaAsiya Javayant QUALIFIED
Silvio L OldroydBrazilAnna Fali PROPOSAL
Cody P DilliardSpainBernardo Dominic NEW
Darci F FollerAustraliaOnyama Limba NEGOTIATION
Kaitlin B OstroskyArgentinaAsiya Javayant RENEWAL
Leja Y VocelkaCanadaXuxue Feng NEW
Costa L WaycottCanadaIoni Bowcher NEGOTIATION
Darci N FollerFranceBernardo Dominic NEW
Kaitlin O FollerSpainXuxue Feng NEW
Ivar N RulapaughFranceXuxue Feng PROPOSAL
Ivar I MaletSpainAsiya Javayant NEGOTIATION
Izzy S ButtUnited KingdomIvan Magalhaes QUALIFIED
Adams O RimSpainAmy Elsner PROPOSAL
Johnson C ButtSpainIvan Magalhaes UNQUALIFIED
Morrow I RutaSpainAmy Elsner UNQUALIFIED
Jeanfrancois O WhobreyRussiaIoni Bowcher QUALIFIED
Kadeem F DilliardAustraliaXuxue Feng QUALIFIED
James N OstroskyIndiaBernardo Dominic UNQUALIFIED
Clifford Z GlickSpainAnna Fali PROPOSAL
Emily P KuskoBrazilXuxue Feng PROPOSAL
Isabel Q GillianBrazilAsiya Javayant UNQUALIFIED
Nicolas L ChuiUnited KingdomBernardo Dominic NEW
Aditya U KolmetzArgentinaStephen Shaw UNQUALIFIED
Adams W SchemmerAustraliaElwin Sharvill NEW
Adams M RutaCanadaIvan Magalhaes NEGOTIATION
Munro E BowleyArgentinaAmy Elsner QUALIFIED
Nicolas Q PerinSpainXuxue Feng NEGOTIATION
Aditya N NestleJapanIoni Bowcher RENEWAL
Smith C DilliardSpainIvan Magalhaes PROPOSAL
Silvio Q BowleyUnited KingdomAmy Elsner PROPOSAL
Mayumi T RoysterGermanyAsiya Javayant UNQUALIFIED
James V CaldareraRussiaElwin Sharvill RENEWAL
Frozen Columns
Name
Morrow L Morasca
Clifford W Iturbide
Darci Y Slusarski
Isabel D Sergi
Maria M Iturbide
Francesco V Wieser
Juan T Flosi
Mayumi N Slusarski
Wickens T Ferencz
Salvatore C Royster
Kadeem N Doe
Julie I Paprocki
Mujtaba J Doe
Nicolas W Ferencz
Jeanfrancois R Royster
Emily C Caudy
Sinclair D Schemmer
Isabel E Paprocki
Faith X Kusko
Aruna C Stockham
Julie A Shinko
Salvatore J Perin
Leja O Campain
Johnson A Doe
Isabel Y Ruta
Tony R Vocelka
Chavez L Venere
Stacey Q Malet
Nicolas L Royster
Ashley T Butt
Salvatore R Amigon
Rodrigues C Waycott
Mayumi M Marrier
Smith R Malet
Antonio E Vocelka
Misaki H Chui
Kadeem I Rulapaugh
Leja S Morasca
Munro E Kolmetz
Chavez J Ostrosky
Wickens Q Caldarera
Jeanfrancois B Flosi
Kaitlin M Doe
Jeanfrancois A Iturbide
Jefferson K Rulapaugh
Jefferson F Foller
David D Marrier
Jones K Malet
Deepesh O Albares
Ivar N Ruta
IdCountryDate
1000Italy2026-06-29
1001Russia2026-07-04
1002Canada2026-07-14
1003Spain2026-07-19
1004France2026-07-22
1005Argentina2026-07-03
1006Spain2026-07-21
1007Spain2026-07-02
1008Canada2026-07-23
1009Japan2026-07-08
1010India2026-07-16
1011France2026-07-23
1012Italy2026-07-05
1013Japan2026-07-22
1014Argentina2026-07-20
1015Argentina2026-07-01
1016Brazil2026-07-08
1017Spain2026-06-29
1018Japan2026-07-21
1019Italy2026-07-05
1020Argentina2026-07-05
1021Canada2026-07-01
1022France2026-07-08
1023Russia2026-07-11
1024India2026-07-18
1025Australia2026-06-28
1026Germany2026-07-02
1027Japan2026-07-13
1028India2026-07-22
1029Germany2026-07-13
1030Italy2026-07-01
1031Spain2026-06-29
1032France2026-07-20
1033Canada2026-06-30
1034Russia2026-07-08
1035Germany2026-07-15
1036Australia2026-07-18
1037Germany2026-07-24
1038Japan2026-07-06
1039Canada2026-07-06
1040Brazil2026-07-14
1041Brazil2026-07-03
1042United Kingdom2026-07-21
1043Italy2026-07-12
1044Spain2026-07-08
1045United Kingdom2026-07-18
1046Germany2026-07-14
1047Brazil2026-06-26
1048United Kingdom2026-07-22
1049Australia2026-07-20

On-Demand Data

NameIdCountryDate
Misaki X Nestle1000Germany2026-07-04
Jefferson M Flosi1001Argentina2026-07-08
Wickens Z Whobrey1002Brazil2026-07-06
Clifford D Garufi1003Russia2026-07-20
Murillo R Malet1004Argentina2026-07-21
Rodrigues X Amigon1005Russia2026-07-03
Emily Z Gaucho1006France2026-07-08
Julie J Briddick1007Argentina2026-06-26
Antonio O Maclead1008United Kingdom2026-07-05
Alejandro W Gillian1009Russia2026-07-09
Morrow T Garufi1010France2026-07-17
Adams B Whobrey1011Spain2026-07-10
Ashley J Caudy1012Germany2026-07-22
Jeanfrancois E Stenseth1013Russia2026-07-16
Ashley T Schemmer1014Argentina2026-07-18
Jones B Gillian1015Argentina2026-07-09
Clifford F Chui1016United Kingdom2026-07-07
Stacey S Morasca1017Argentina2026-07-11
Jennifer C Paprocki1018Argentina2026-07-16
Julie I Campain1019Canada2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens A GillianIndiaBernardo Dominic UNQUALIFIED
Aditya C RulapaughAustraliaBernardo Dominic RENEWAL
Cody T BriddickRussiaBernardo Dominic NEGOTIATION
Murillo E StockhamUnited KingdomIoni Bowcher NEW
Alejandro C IturbideUnited KingdomXuxue Feng PROPOSAL
Tony O PerinItalyAmy Elsner NEGOTIATION
Cody W MaletRussiaIvan Magalhaes NEGOTIATION
Ivar F SlusarskiIndiaXuxue Feng QUALIFIED
Antonio N ButtArgentinaIvan Magalhaes RENEWAL
Greenwood K MacleadIndiaStephen Shaw UNQUALIFIED
Salvatore F BriddickAustraliaAmy Elsner UNQUALIFIED
Octavia A BologniaBrazilIvan Magalhaes PROPOSAL
Mayumi H FollerJapanElwin Sharvill UNQUALIFIED
Ricardo D BowleyFranceStephen Shaw NEGOTIATION
James R AlbaresBrazilStephen Shaw NEGOTIATION
Munro O GauchoFranceIoni Bowcher QUALIFIED
Salvatore C VenereRussiaStephen Shaw RENEWAL
Aika P SaylorsCanadaStephen Shaw RENEWAL
Misaki A RimUnited KingdomAnna Fali RENEWAL
Misaki A SergiRussiaXuxue Feng NEW
Rodrigues M NestleIndiaAsiya Javayant PROPOSAL
Chavez U FigeroaAustraliaAsiya Javayant PROPOSAL
Maria E PaprockiBrazilOnyama Limba UNQUALIFIED
Sinclair U StensethBrazilIoni Bowcher RENEWAL
Munro G ButtCanadaStephen Shaw NEW
Julie D MorascaAustraliaXuxue Feng UNQUALIFIED
Mujtaba Z MarrierFranceIvan Magalhaes NEW
Ashley R WieserFranceIvan Magalhaes PROPOSAL
Johnson Y ChuiItalyAmy Elsner UNQUALIFIED
Misaki S PoquetteIndiaAnna Fali QUALIFIED
Mujtaba H RutaJapanIvan Magalhaes UNQUALIFIED
Costa M DarakjyBrazilAnna Fali NEW
Mujtaba O DarakjySpainAmy Elsner NEW
Kadeem H AmigonSpainXuxue Feng PROPOSAL
Arvin T MacleadGermanyAmy Elsner NEGOTIATION
Jones R GlickFranceIoni Bowcher NEGOTIATION
Salvatore N DarakjyArgentinaIoni Bowcher PROPOSAL
Leja Q DilliardSpainIoni Bowcher NEGOTIATION
Mujtaba C FollerIndiaAsiya Javayant PROPOSAL
Arvin M VenereBrazilXuxue Feng 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>