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 D GlickUnited KingdomStephen Shaw NEGOTIATION
Costa V FollerArgentinaIvan Magalhaes RENEWAL
Ricardo C MacleadRussiaBernardo Dominic QUALIFIED
Costa V StockhamAustraliaBernardo Dominic NEW
Nicolas S MarrierBrazilOnyama Limba UNQUALIFIED
Maisha T NestleArgentinaAmy Elsner UNQUALIFIED
Ricardo B FollerAustraliaAmy Elsner QUALIFIED
Izzy N DoeBrazilAmy Elsner NEW
Cody D BriddickItalyOnyama Limba RENEWAL
Clifford N WieserIndiaAnna Fali QUALIFIED
Ashley X AlbaresBrazilStephen Shaw NEW
Leon X TollnerSpainIvan Magalhaes UNQUALIFIED
Rodrigues B SlusarskiIndiaStephen Shaw PROPOSAL
Munro O NickaAustraliaAnna Fali RENEWAL
Morrow J StockhamFranceIvan Magalhaes QUALIFIED
Rodrigues W VenereItalyStephen Shaw QUALIFIED
Ricardo B AlbaresGermanyElwin Sharvill RENEWAL
Emily K FlosiGermanyIvan Magalhaes NEGOTIATION
Kaitlin G PoquetteUnited KingdomBernardo Dominic PROPOSAL
Arvin E MacleadRussiaIvan Magalhaes NEW
Cody Q SergiBrazilStephen Shaw NEGOTIATION
Jones I ShinkoAustraliaIoni Bowcher NEW
Jones J WaycottAustraliaAnna Fali RENEWAL
Faith B ShinkoGermanyOnyama Limba PROPOSAL
Aika U MacleadItalyStephen Shaw UNQUALIFIED
Jones I CampainCanadaXuxue Feng QUALIFIED
Faith Q KolmetzJapanIvan Magalhaes QUALIFIED
Adams L MaletSpainBernardo Dominic RENEWAL
Alejandro I RulapaughCanadaIoni Bowcher NEW
Sinclair H InouyeUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois B SchemmerItalyAnna Fali NEW
Wickens M ShinkoUnited KingdomXuxue Feng RENEWAL
Maisha T GillianIndiaOnyama Limba NEW
James A PerinIndiaElwin Sharvill QUALIFIED
Arvin W VenereUnited KingdomXuxue Feng QUALIFIED
Deepesh N WieserIndiaOnyama Limba PROPOSAL
Kadeem N InouyeAustraliaAsiya Javayant NEGOTIATION
Tony X FollerSpainAnna Fali NEGOTIATION
Mayumi A ChuiItalyAnna Fali QUALIFIED
Clifford P OldroydBrazilIvan Magalhaes PROPOSAL
Faith Q InouyeBrazilElwin Sharvill NEGOTIATION
Aruna W WaycottBrazilStephen Shaw UNQUALIFIED
Maria R GauchoIndiaAnna Fali NEGOTIATION
Clifford O DoeIndiaAsiya Javayant NEGOTIATION
Julie F BriddickFranceXuxue Feng RENEWAL
Aika Q CaudyUnited KingdomAnna Fali NEW
Leon E ChuiRussiaElwin Sharvill NEW
Ashley T DarakjyFranceAsiya Javayant RENEWAL
Faith L DarakjySpainBernardo Dominic RENEWAL
Johnson K DarakjyGermanyAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa Y MacleadRussiaAmy Elsner NEGOTIATION
Aika E NickaCanadaIoni Bowcher QUALIFIED
Costa H TollnerUnited KingdomAsiya Javayant PROPOSAL
Leja W CaldareraBrazilElwin Sharvill NEGOTIATION
Salvatore B RutaFranceElwin Sharvill PROPOSAL
Aditya J FigeroaUnited KingdomOnyama Limba NEGOTIATION
Isabel O MaletArgentinaStephen Shaw PROPOSAL
Leon F KolmetzCanadaOnyama Limba UNQUALIFIED
Kadeem O KolmetzUnited KingdomAsiya Javayant RENEWAL
Francesco U RutaIndiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow A SergiGermany2026-08-12Feiner Bros PROPOSAL75Anna Fali
1001Leon S FerenczArgentina2026-08-03Benton, John B Jr NEGOTIATION1Amy Elsner
1002Antonio X DarakjyUnited Kingdom2026-08-14Chemel, James L Cpa QUALIFIED57Bernardo Dominic
1003Mayumi I BriddickItaly2026-08-08Benton, John B Jr QUALIFIED77Amy Elsner
1004James W KolmetzIndia2026-08-02Chapman, Ross E Esq NEW69Amy Elsner
1005Silvio F KuskoSpain2026-08-14Benton, John B Jr UNQUALIFIED38Elwin Sharvill
1006Ricardo Q BowleyAustralia2026-07-26Benton, John B Jr QUALIFIED65Stephen Shaw
1007Kadeem H RulapaughJapan2026-08-12Morlong Associates PROPOSAL53Amy Elsner
1008David K ButtAustralia2026-08-18Dorl, James J Esq QUALIFIED14Asiya Javayant
1009Jennifer W DarakjyFrance2026-08-04Commercial Press QUALIFIED29Anna Fali
1010Aika K PoquetteArgentina2026-08-02Commercial Press NEW59Ioni Bowcher
1011Jones E MaletJapan2026-08-10Morlong Associates PROPOSAL7Ioni Bowcher
1012Darci G StockhamCanada2026-08-09Rousseaux, Michael Esq PROPOSAL45Xuxue Feng
1013Jefferson C CampainArgentina2026-08-11Commercial Press UNQUALIFIED71Asiya Javayant
1014Deepesh T AmigonArgentina2026-08-07Chemel, James L Cpa UNQUALIFIED72Onyama Limba
1015Aika C FlosiFrance2026-07-27Commercial Press NEW24Xuxue Feng
1016Jennifer G GlickJapan2026-08-03Feiner Bros QUALIFIED56Xuxue Feng
1017Costa L RoysterRussia2026-08-23Benton, John B Jr NEGOTIATION98Xuxue Feng
1018Maisha D OstroskyIndia2026-08-23King, Christopher A Esq RENEWAL87Stephen Shaw
1019Jennifer N VocelkaBrazil2026-08-15Chanay, Jeffrey A Esq QUALIFIED6Xuxue Feng
1020Nicolas N IturbideFrance2026-07-31King, Christopher A Esq QUALIFIED14Ivan Magalhaes
1021Salvatore U ChuiFrance2026-08-23Commercial Press QUALIFIED8Elwin Sharvill
1022Rodrigues Z StensethItaly2026-08-15King, Christopher A Esq QUALIFIED68Ivan Magalhaes
1023Leon C BologniaIndia2026-08-21King, Christopher A Esq QUALIFIED66Elwin Sharvill
1024Octavia C CampainRussia2026-08-02Feltz Printing Service QUALIFIED58Amy Elsner
1025Mujtaba Z BowleyRussia2026-08-11Truhlar And Truhlar Attys NEGOTIATION67Asiya Javayant
1026Izzy Z SergiCanada2026-07-31Buckley Miller Wright NEGOTIATION4Stephen Shaw
1027Antonio I MaletItaly2026-08-10Benton, John B Jr RENEWAL80Bernardo Dominic
1028Adams G DarakjyArgentina2026-08-04Rangoni Of Florence NEW90Ivan Magalhaes
1029Julie Q PoquetteGermany2026-07-29Rangoni Of Florence UNQUALIFIED98Ivan Magalhaes
1030Izzy K ChuiBrazil2026-07-31Chanay, Jeffrey A Esq UNQUALIFIED44Anna Fali
1031Costa D FigeroaRussia2026-08-15Morlong Associates UNQUALIFIED8Xuxue Feng
1032Emily R NestleUnited Kingdom2026-08-09Dorl, James J Esq PROPOSAL96Ioni Bowcher
1033Costa A GillianBrazil2026-08-12Rangoni Of Florence UNQUALIFIED78Amy Elsner
1034Costa S IturbideUnited Kingdom2026-08-23Dorl, James J Esq RENEWAL85Asiya Javayant
1035Sinclair I GillianSpain2026-08-15Truhlar And Truhlar Attys QUALIFIED83Bernardo Dominic
1036Murillo T OldroydGermany2026-08-19Chapman, Ross E Esq NEGOTIATION8Bernardo Dominic
1037Darci Q WaycottJapan2026-08-12Commercial Press NEW67Asiya Javayant
1038Isabel D PerinAustralia2026-08-23Rousseaux, Michael Esq RENEWAL12Ioni Bowcher
1039Sinclair R KuskoJapan2026-08-23Chanay, Jeffrey A Esq PROPOSAL54Onyama Limba
1040Francesco K OldroydItaly2026-08-12Benton, John B Jr NEW24Asiya Javayant
1041Mujtaba G MaletArgentina2026-08-21Printing Dimensions RENEWAL23Ioni Bowcher
1042Claire Q SergiItaly2026-08-22Commercial Press RENEWAL54Onyama Limba
1043Ashley K RimGermany2026-08-17Rangoni Of Florence RENEWAL68Onyama Limba
1044Ricardo H ButtGermany2026-08-04Printing Dimensions NEW7Ivan Magalhaes
1045Arvin O DoeArgentina2026-08-20Benton, John B Jr PROPOSAL78Onyama Limba
1046Kaitlin L FlosiJapan2026-08-15Feltz Printing Service UNQUALIFIED57Onyama Limba
1047Ashley C TollnerIndia2026-08-22Benton, John B Jr PROPOSAL2Anna Fali
1048Leon T FollerArgentina2026-08-22Chapman, Ross E Esq UNQUALIFIED37Ioni Bowcher
1049Leja S SergiItaly2026-07-25Rangoni Of Florence RENEWAL1Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi D CaudyIndiaXuxue Feng NEGOTIATION
Juan Z GarufiJapanElwin Sharvill NEW
Morrow X ChuiSpainXuxue Feng NEW
Johnson F StensethJapanIoni Bowcher NEGOTIATION
Maisha E AmigonBrazilAsiya Javayant PROPOSAL
Kadeem G VenereJapanAnna Fali NEGOTIATION
Antonio E PerinSpainStephen Shaw QUALIFIED
Leja M RimSpainOnyama Limba RENEWAL
Maisha B RutaFranceXuxue Feng NEW
Salvatore B WieserCanadaElwin Sharvill PROPOSAL
Cody B FerenczJapanAsiya Javayant QUALIFIED
Jennifer D RutaItalyBernardo Dominic PROPOSAL
Morrow F ButtRussiaAnna Fali NEGOTIATION
Mujtaba A WhobreyRussiaOnyama Limba UNQUALIFIED
Tony L AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo F RoysterItalyAnna Fali QUALIFIED
James A FerenczFranceBernardo Dominic UNQUALIFIED
Costa T MarrierCanadaIoni Bowcher NEGOTIATION
Aika J PaprockiAustraliaBernardo Dominic QUALIFIED
Maisha E OldroydArgentinaStephen Shaw NEGOTIATION
Faith T NickaUnited KingdomStephen Shaw QUALIFIED
Ivar S InouyeAustraliaXuxue Feng PROPOSAL
Ricardo N AmigonUnited KingdomAmy Elsner NEW
Francesco X RimArgentinaIvan Magalhaes RENEWAL
Sinclair P DarakjyGermanyStephen Shaw UNQUALIFIED
Ivar I OldroydFranceElwin Sharvill NEW
Mujtaba Z SergiUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood C MarrierFranceAmy Elsner NEGOTIATION
Wickens V ButtSpainStephen Shaw PROPOSAL
Salvatore P WaycottSpainAmy Elsner NEW
Chavez N FigeroaUnited KingdomAmy Elsner NEGOTIATION
Smith G MacleadRussiaIoni Bowcher QUALIFIED
Deepesh K MacleadSpainBernardo Dominic PROPOSAL
Rodrigues C PerinRussiaAsiya Javayant NEGOTIATION
Octavia Z PerinSpainAnna Fali NEGOTIATION
Jeanfrancois H GillianUnited KingdomXuxue Feng NEW
Rodrigues U RulapaughIndiaAsiya Javayant NEGOTIATION
Jones F WhobreyAustraliaAnna Fali NEGOTIATION
Emily Z CaudyArgentinaBernardo Dominic NEW
Costa G DilliardGermanyIvan Magalhaes UNQUALIFIED
Francesco N MacleadSpainAsiya Javayant NEGOTIATION
Francesco L StockhamGermanyBernardo Dominic PROPOSAL
Kaitlin S MorascaFranceIoni Bowcher QUALIFIED
Greenwood B BriddickSpainOnyama Limba QUALIFIED
James Q OstroskySpainIvan Magalhaes QUALIFIED
Ricardo S PerinUnited KingdomElwin Sharvill NEGOTIATION
Nicolas M StockhamJapanIvan Magalhaes UNQUALIFIED
Clifford R KolmetzSpainAnna Fali QUALIFIED
Nicolas F BowleySpainIvan Magalhaes RENEWAL
Leja V StensethAustraliaIvan Magalhaes RENEWAL
Frozen Columns
Name
Clifford F Paprocki
Salvatore M Gillian
Wickens J Malet
Wickens D Glick
Arvin Y Albares
Juan H Marrier
Maria Z Morasca
Alejandro L Paprocki
Ricardo J Figeroa
Izzy H Flosi
Greenwood Y Stenseth
Misaki C Rulapaugh
Rodrigues X Sergi
Maisha K Iturbide
Claire A Marrier
Juan B Dilliard
Ricardo X Caldarera
Jones N Schemmer
Misaki G Sergi
Jennifer Q Bolognia
David V Vocelka
Maria Y Chui
Mujtaba U Butt
Ricardo C Ostrosky
Kaitlin H Malet
Juan K Paprocki
Munro C Malet
Leja H Chui
Munro R Nestle
Wickens N Morasca
Morrow A Morasca
Alejandro V Ferencz
Silvio E Caldarera
Johnson E Iturbide
Faith P Chui
Costa Q Malet
Chavez V Caudy
Maria N Stockham
Mujtaba P Rulapaugh
Emily V Iturbide
Faith P Ostrosky
Salvatore W Ruta
Rodrigues L Royster
Munro S Foller
Francesco N Perin
Rodrigues U Slusarski
Kaitlin C Wieser
Antonio W Tollner
Octavia L Albares
Stacey N Gillian
IdCountryDate
1000Spain2026-08-16
1001Russia2026-08-17
1002Argentina2026-08-09
1003Argentina2026-08-22
1004Russia2026-08-18
1005India2026-07-27
1006Japan2026-07-30
1007Argentina2026-08-03
1008United Kingdom2026-07-30
1009United Kingdom2026-08-02
1010Italy2026-07-27
1011France2026-07-26
1012United Kingdom2026-07-31
1013Germany2026-08-01
1014Japan2026-08-22
1015United Kingdom2026-08-07
1016Argentina2026-08-16
1017India2026-08-05
1018Spain2026-08-20
1019United Kingdom2026-07-27
1020Canada2026-08-13
1021Argentina2026-07-30
1022Argentina2026-07-29
1023Brazil2026-08-21
1024United Kingdom2026-08-22
1025Argentina2026-08-13
1026Australia2026-08-01
1027Australia2026-08-23
1028India2026-07-27
1029France2026-08-15
1030Canada2026-08-23
1031Brazil2026-07-26
1032Germany2026-08-15
1033United Kingdom2026-08-21
1034United Kingdom2026-08-10
1035Australia2026-08-20
1036France2026-08-18
1037Argentina2026-08-21
1038Spain2026-07-25
1039France2026-08-11
1040Canada2026-07-27
1041Russia2026-08-21
1042Japan2026-08-08
1043United Kingdom2026-08-02
1044France2026-08-22
1045Italy2026-08-16
1046Brazil2026-07-26
1047Spain2026-08-18
1048Germany2026-08-15
1049Canada2026-08-08

On-Demand Data

NameIdCountryDate
Morrow Y Inouye1000Russia2026-08-19
Chavez O Glick1001Italy2026-08-22
Tony Y Inouye1002India2026-08-17
Salvatore E Campain1003Brazil2026-07-28
Clifford Q Morasca1004Argentina2026-08-06
Salvatore O Inouye1005Italy2026-08-23
James B Sergi1006Argentina2026-08-11
Aika G Marrier1007Spain2026-08-10
Wickens J Figeroa1008Japan2026-08-21
Kaitlin V Amigon1009Canada2026-08-13
Ashley D Vocelka1010Australia2026-08-10
Claire E Flosi1011Australia2026-07-27
Greenwood K Campain1012Germany2026-08-14
Alejandro U Flosi1013Brazil2026-07-30
Johnson I Venere1014Canada2026-08-19
Darci Q Rulapaugh1015Argentina2026-07-25
Aruna M Kolmetz1016Brazil2026-08-18
Ricardo D Gillian1017Russia2026-08-06
Leja B Dilliard1018Germany2026-08-11
Morrow B Butt1019Germany2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna W RimAustraliaAnna Fali NEW
Maisha Q ButtSpainAmy Elsner PROPOSAL
Tony D KuskoGermanyBernardo Dominic PROPOSAL
Octavia D ButtArgentinaAsiya Javayant NEW
Antonio R SergiFranceAnna Fali UNQUALIFIED
Greenwood D WhobreyItalyElwin Sharvill RENEWAL
Julie L DilliardSpainIvan Magalhaes PROPOSAL
Wickens O WhobreyGermanyIvan Magalhaes NEW
James Q RimUnited KingdomBernardo Dominic NEW
Salvatore R ButtGermanyIvan Magalhaes NEW
Darci I CampainGermanyIoni Bowcher RENEWAL
Jefferson S WhobreyItalyAmy Elsner UNQUALIFIED
Darci P SchemmerBrazilIoni Bowcher QUALIFIED
Antonio W ButtAustraliaIvan Magalhaes QUALIFIED
Jennifer Y BriddickUnited KingdomBernardo Dominic RENEWAL
Leon X PoquetteAustraliaBernardo Dominic QUALIFIED
Emily Z RutaRussiaIvan Magalhaes UNQUALIFIED
Jones V CampainBrazilOnyama Limba QUALIFIED
Ashley T DilliardArgentinaAnna Fali QUALIFIED
Aruna B WieserFranceElwin Sharvill RENEWAL
Ivar E AmigonIndiaOnyama Limba UNQUALIFIED
Juan O VocelkaGermanyXuxue Feng NEW
Clifford T FollerSpainXuxue Feng PROPOSAL
Wickens S BowleyFranceStephen Shaw RENEWAL
Clifford T GarufiArgentinaBernardo Dominic UNQUALIFIED
Alejandro P GlickSpainAsiya Javayant QUALIFIED
Maria P NestleSpainStephen Shaw UNQUALIFIED
Misaki U AmigonUnited KingdomAnna Fali NEGOTIATION
Ivar O VocelkaSpainIvan Magalhaes PROPOSAL
Jones N KolmetzGermanyXuxue Feng NEGOTIATION
Tony J GillianUnited KingdomXuxue Feng QUALIFIED
Alejandro Y StockhamAustraliaAsiya Javayant UNQUALIFIED
Juan L WaycottSpainStephen Shaw RENEWAL
Adams P PoquetteFranceXuxue Feng NEGOTIATION
Murillo I WhobreySpainElwin Sharvill NEW
Jones S CampainBrazilAnna Fali QUALIFIED
Faith B VocelkaSpainOnyama Limba NEW
Nicolas V CampainFranceStephen Shaw NEW
Ricardo B FollerFranceAmy Elsner PROPOSAL
Claire Y SchemmerBrazilXuxue Feng QUALIFIED

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