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 B PerinGermanyAsiya Javayant PROPOSAL
Cody C NickaArgentinaAsiya Javayant RENEWAL
Tony L BriddickBrazilBernardo Dominic QUALIFIED
Clifford P RutaIndiaBernardo Dominic PROPOSAL
Jennifer V SaylorsItalyElwin Sharvill UNQUALIFIED
Izzy S DoeBrazilAsiya Javayant RENEWAL
Sinclair G MacleadArgentinaIvan Magalhaes RENEWAL
Smith Y NestleGermanyXuxue Feng PROPOSAL
Stacey Q DarakjyCanadaXuxue Feng QUALIFIED
Ricardo I OstroskyAustraliaBernardo Dominic QUALIFIED
Stacey P MaletIndiaAsiya Javayant PROPOSAL
Ivar B PaprockiCanadaStephen Shaw RENEWAL
Nicolas Y RutaIndiaIoni Bowcher UNQUALIFIED
Emily D CaudySpainStephen Shaw PROPOSAL
Leja Q WieserIndiaAmy Elsner NEGOTIATION
Greenwood J SchemmerJapanIoni Bowcher NEGOTIATION
Rodrigues V AmigonCanadaAsiya Javayant NEW
Chavez W MaletRussiaBernardo Dominic QUALIFIED
Antonio B NestleArgentinaIvan Magalhaes RENEWAL
Leja J SchemmerArgentinaIoni Bowcher NEGOTIATION
Antonio L KuskoFranceOnyama Limba NEW
Claire E StensethCanadaBernardo Dominic NEGOTIATION
Aditya M KuskoJapanElwin Sharvill QUALIFIED
Claire B BologniaAustraliaIoni Bowcher PROPOSAL
Maria P KolmetzBrazilStephen Shaw NEW
Tony T MaletUnited KingdomAsiya Javayant NEW
Emily C KolmetzSpainIoni Bowcher UNQUALIFIED
Silvio P IturbideRussiaBernardo Dominic NEW
Maisha Q BriddickBrazilXuxue Feng UNQUALIFIED
Silvio M RutaFranceStephen Shaw NEGOTIATION
Morrow D PerinRussiaElwin Sharvill PROPOSAL
Murillo L NickaGermanyIvan Magalhaes UNQUALIFIED
Antonio J FerenczFranceOnyama Limba PROPOSAL
Sinclair L WaycottFranceAsiya Javayant PROPOSAL
Jones H RimRussiaStephen Shaw NEW
Cody E SchemmerItalyIvan Magalhaes UNQUALIFIED
Darci W CampainCanadaIoni Bowcher UNQUALIFIED
Jefferson G WieserFranceAsiya Javayant QUALIFIED
Stacey P IturbideArgentinaBernardo Dominic NEGOTIATION
Chavez O SaylorsCanadaAmy Elsner NEW
Claire T NickaIndiaIoni Bowcher NEW
Faith M DoeSpainAsiya Javayant NEGOTIATION
Costa N TollnerRussiaBernardo Dominic NEGOTIATION
Jefferson G CampainIndiaXuxue Feng PROPOSAL
Cody A GlickBrazilOnyama Limba NEW
Misaki C PoquetteJapanAmy Elsner UNQUALIFIED
Costa T MaletIndiaAmy Elsner NEW
Maisha Q RutaArgentinaAnna Fali QUALIFIED
Kadeem W BologniaIndiaIoni Bowcher RENEWAL
Aika D InouyeItalyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois W MaletAustraliaAnna Fali NEW
Ashley A ShinkoUnited KingdomOnyama Limba NEGOTIATION
Julie P StensethFranceBernardo Dominic NEW
Costa J DoeCanadaAnna Fali QUALIFIED
Morrow L InouyeSpainOnyama Limba NEW
Munro Q BowleyGermanyXuxue Feng UNQUALIFIED
Aruna B BologniaCanadaAnna Fali NEGOTIATION
Deepesh E ButtItalyAsiya Javayant RENEWAL
Ashley T MaletFranceStephen Shaw QUALIFIED
Izzy N RoysterRussiaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford E FlosiRussia2026-08-04Chanay, Jeffrey A Esq PROPOSAL65Asiya Javayant
1001Arvin J WieserJapan2026-07-23Benton, John B Jr NEGOTIATION32Onyama Limba
1002Izzy M OstroskyAustralia2026-07-20Chemel, James L Cpa QUALIFIED52Elwin Sharvill
1003James G WieserCanada2026-08-11Benton, John B Jr NEGOTIATION91Amy Elsner
1004Nicolas S RutaItaly2026-08-04Feiner Bros PROPOSAL95Xuxue Feng
1005Stacey Q StensethBrazil2026-07-14Chanay, Jeffrey A Esq NEGOTIATION62Anna Fali
1006Deepesh G GauchoJapan2026-07-17Dorl, James J Esq NEGOTIATION90Asiya Javayant
1007Stacey B FlosiSpain2026-07-30Truhlar And Truhlar Attys RENEWAL68Ioni Bowcher
1008Leja R GillianFrance2026-07-26Chapman, Ross E Esq PROPOSAL70Bernardo Dominic
1009Misaki Q CaldareraCanada2026-08-10Chapman, Ross E Esq NEW13Xuxue Feng
1010Arvin Q AlbaresItaly2026-08-09Morlong Associates UNQUALIFIED40Ivan Magalhaes
1011Misaki E KuskoAustralia2026-07-23Morlong Associates RENEWAL34Asiya Javayant
1012Stacey V WieserBrazil2026-07-22Truhlar And Truhlar Attys QUALIFIED51Ioni Bowcher
1013Antonio R AlbaresItaly2026-07-31King, Christopher A Esq QUALIFIED17Bernardo Dominic
1014Ricardo Q DarakjyUnited Kingdom2026-08-09King, Christopher A Esq NEGOTIATION39Stephen Shaw
1015Jefferson F RutaArgentina2026-07-28Commercial Press RENEWAL43Asiya Javayant
1016Claire A DarakjyBrazil2026-07-24Chemel, James L Cpa QUALIFIED41Ivan Magalhaes
1017Antonio S SlusarskiRussia2026-08-07Rousseaux, Michael Esq NEW42Amy Elsner
1018Kadeem Z PerinGermany2026-07-22Commercial Press UNQUALIFIED80Ioni Bowcher
1019Johnson E RulapaughJapan2026-07-13Feiner Bros NEW87Bernardo Dominic
1020Maria S NickaCanada2026-07-27Truhlar And Truhlar Attys NEGOTIATION40Asiya Javayant
1021Emily P GlickUnited Kingdom2026-08-04Feiner Bros NEW22Xuxue Feng
1022Juan I BologniaUnited Kingdom2026-07-28Dorl, James J Esq RENEWAL23Anna Fali
1023Darci V FigeroaFrance2026-07-22Chapman, Ross E Esq PROPOSAL86Ivan Magalhaes
1024Faith N StensethCanada2026-08-11Chanay, Jeffrey A Esq QUALIFIED98Ioni Bowcher
1025Arvin R RutaSpain2026-07-21Buckley Miller Wright QUALIFIED33Ioni Bowcher
1026Maisha W CampainIndia2026-07-23Commercial Press NEGOTIATION71Stephen Shaw
1027Misaki G PaprockiCanada2026-07-14King, Christopher A Esq QUALIFIED83Xuxue Feng
1028Adams W GauchoFrance2026-07-21Feltz Printing Service NEGOTIATION97Asiya Javayant
1029Kaitlin F PerinBrazil2026-07-24Rousseaux, Michael Esq QUALIFIED69Xuxue Feng
1030Sinclair I WaycottUnited Kingdom2026-07-19Morlong Associates NEW58Xuxue Feng
1031Jeanfrancois X CaldareraItaly2026-07-22King, Christopher A Esq NEW46Ioni Bowcher
1032Silvio I KolmetzFrance2026-08-05Dorl, James J Esq NEW53Asiya Javayant
1033Ricardo S RulapaughIndia2026-08-02Benton, John B Jr NEGOTIATION53Onyama Limba
1034Cody V KolmetzGermany2026-07-25Feiner Bros NEGOTIATION15Amy Elsner
1035Aruna A MacleadBrazil2026-08-02Benton, John B Jr RENEWAL59Onyama Limba
1036Morrow U KuskoArgentina2026-07-29Dorl, James J Esq PROPOSAL63Ioni Bowcher
1037Darci V CaudyAustralia2026-08-06Chapman, Ross E Esq PROPOSAL5Anna Fali
1038Maisha G WhobreyCanada2026-08-04Commercial Press NEW7Ioni Bowcher
1039Morrow X SaylorsGermany2026-07-16Benton, John B Jr NEW26Ioni Bowcher
1040Deepesh S BriddickBrazil2026-07-17Dorl, James J Esq QUALIFIED27Elwin Sharvill
1041Leja I StockhamIndia2026-07-26Printing Dimensions RENEWAL3Ioni Bowcher
1042Julie P AlbaresCanada2026-08-02Truhlar And Truhlar Attys QUALIFIED31Stephen Shaw
1043Nicolas A SlusarskiArgentina2026-07-27Chanay, Jeffrey A Esq NEW72Anna Fali
1044Jones T SergiSpain2026-07-13Commercial Press RENEWAL76Amy Elsner
1045Claire M MarrierIndia2026-08-04Benton, John B Jr QUALIFIED76Ivan Magalhaes
1046Stacey Q RulapaughUnited Kingdom2026-08-01Benton, John B Jr PROPOSAL45Anna Fali
1047Aika W VocelkaRussia2026-07-13Feltz Printing Service UNQUALIFIED83Elwin Sharvill
1048Emily M AmigonItaly2026-07-13Buckley Miller Wright PROPOSAL94Onyama Limba
1049Alejandro R MaletIndia2026-07-15Morlong Associates UNQUALIFIED41Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Deepesh C SergiGermanyBernardo Dominic NEGOTIATION
Adams L CaldareraAustraliaAnna Fali UNQUALIFIED
Aruna C GillianAustraliaBernardo Dominic RENEWAL
Claire A AlbaresJapanOnyama Limba QUALIFIED
Mujtaba K FigeroaItalyXuxue Feng NEW
Antonio D CaldareraIndiaAsiya Javayant PROPOSAL
Munro Z NickaSpainOnyama Limba PROPOSAL
Ivar A KolmetzUnited KingdomAmy Elsner NEW
Clifford H RimRussiaAsiya Javayant NEGOTIATION
Claire B NestleFranceIvan Magalhaes NEW
Clifford Q SergiBrazilXuxue Feng NEW
Deepesh R ButtIndiaXuxue Feng PROPOSAL
Leon J WieserSpainElwin Sharvill UNQUALIFIED
Antonio P SchemmerAustraliaAsiya Javayant NEW
Sinclair K CaldareraAustraliaIvan Magalhaes QUALIFIED
Jones V AlbaresGermanyAsiya Javayant PROPOSAL
Stacey U DarakjyJapanAmy Elsner QUALIFIED
Maria X ButtRussiaAsiya Javayant PROPOSAL
Silvio U AmigonFranceElwin Sharvill NEGOTIATION
Emily N MarrierJapanXuxue Feng RENEWAL
Aika U PaprockiIndiaAnna Fali NEGOTIATION
Alejandro L DoeCanadaAnna Fali QUALIFIED
Tony J MorascaUnited KingdomOnyama Limba QUALIFIED
Adams E DilliardItalyIoni Bowcher QUALIFIED
Chavez T MacleadSpainAsiya Javayant RENEWAL
Costa Y OstroskyFranceAsiya Javayant NEGOTIATION
Aika K StockhamIndiaIoni Bowcher PROPOSAL
Rodrigues Q OldroydJapanStephen Shaw NEGOTIATION
Aika Q GillianAustraliaAsiya Javayant PROPOSAL
Johnson V RoysterGermanyIoni Bowcher NEGOTIATION
Mayumi C OldroydCanadaXuxue Feng QUALIFIED
Tony F StensethFranceXuxue Feng UNQUALIFIED
Ashley S DarakjyGermanyAnna Fali RENEWAL
Isabel Z PerinJapanIvan Magalhaes PROPOSAL
Wickens P SaylorsJapanBernardo Dominic PROPOSAL
Darci P StockhamRussiaOnyama Limba QUALIFIED
Juan J RimBrazilAnna Fali NEGOTIATION
Leja N SaylorsArgentinaBernardo Dominic NEGOTIATION
Chavez U RoysterIndiaOnyama Limba RENEWAL
Jones D GillianCanadaXuxue Feng NEGOTIATION
Isabel F InouyeJapanStephen Shaw QUALIFIED
Jefferson X ChuiBrazilAmy Elsner QUALIFIED
Cody E InouyeAustraliaXuxue Feng RENEWAL
Rodrigues X RulapaughArgentinaStephen Shaw UNQUALIFIED
Claire T FlosiJapanOnyama Limba NEW
Mujtaba P ChuiJapanStephen Shaw PROPOSAL
James F BologniaGermanyAmy Elsner UNQUALIFIED
Francesco Q ChuiIndiaIoni Bowcher UNQUALIFIED
Emily L SchemmerFranceStephen Shaw PROPOSAL
Stacey F MorascaItalyXuxue Feng NEGOTIATION
Frozen Columns
Name
Alejandro H Stenseth
Aditya D Tollner
Claire D Albares
Misaki F Vocelka
Greenwood N Albares
Maisha N Stenseth
Kaitlin K Caldarera
Darci P Amigon
Sinclair Y Chui
Smith W Dilliard
Johnson I Stockham
Kadeem T Gaucho
Aika N Morasca
Aika S Malet
Leja G Vocelka
Salvatore R Rim
Emily W Kusko
Leon K Royster
Emily U Sergi
Arvin X Caudy
Silvio K Ruta
Clifford S Garufi
Wickens P Briddick
Silvio D Saylors
Kadeem B Paprocki
Salvatore F Inouye
Julie L Gillian
David L Campain
Claire V Gillian
Costa T Royster
Ricardo N Caldarera
Faith K Bolognia
Aika K Saylors
Aika O Vocelka
Isabel R Butt
Octavia T Saylors
Misaki Q Malet
Darci Y Foller
Salvatore I Gillian
Aditya N Albares
Tony L Royster
Rodrigues B Foller
Aruna N Garufi
Jeanfrancois F Nestle
Izzy D Kolmetz
Ricardo M Dilliard
Isabel V Paprocki
Cody C Royster
Maria O Caudy
Morrow O Schemmer
IdCountryDate
1000Australia2026-08-11
1001Canada2026-07-24
1002Australia2026-07-21
1003Spain2026-08-10
1004Japan2026-08-09
1005Canada2026-07-16
1006Japan2026-07-16
1007Brazil2026-08-02
1008Japan2026-08-10
1009Brazil2026-08-08
1010France2026-08-05
1011Brazil2026-07-26
1012Italy2026-08-11
1013Japan2026-08-05
1014United Kingdom2026-07-23
1015Argentina2026-07-21
1016Russia2026-07-22
1017Italy2026-08-06
1018United Kingdom2026-07-20
1019Russia2026-07-19
1020Argentina2026-07-18
1021India2026-07-27
1022Germany2026-07-26
1023Spain2026-07-20
1024Russia2026-07-15
1025Australia2026-08-09
1026Spain2026-08-10
1027France2026-07-13
1028Japan2026-07-31
1029India2026-08-05
1030Argentina2026-08-07
1031Italy2026-07-20
1032Brazil2026-07-30
1033India2026-07-18
1034India2026-07-29
1035France2026-07-20
1036Spain2026-08-11
1037India2026-07-22
1038United Kingdom2026-07-29
1039France2026-07-25
1040France2026-07-28
1041Argentina2026-07-25
1042Russia2026-08-10
1043Japan2026-08-03
1044India2026-07-31
1045France2026-07-23
1046Brazil2026-08-07
1047Germany2026-08-09
1048Italy2026-07-19
1049Germany2026-08-10

On-Demand Data

NameIdCountryDate
Darci R Flosi1000France2026-07-20
Isabel U Ruta1001Germany2026-07-22
Misaki M Royster1002Brazil2026-07-16
Emily R Bowley1003Germany2026-08-05
Jeanfrancois O Wieser1004Russia2026-07-18
Ivar H Morasca1005United Kingdom2026-07-23
Jeanfrancois D Whobrey1006Japan2026-07-22
Mayumi V Schemmer1007Brazil2026-08-07
Emily J Ruta1008Australia2026-08-05
Darci O Schemmer1009Germany2026-07-21
Jefferson T Nicka1010Canada2026-08-03
Cody M Foller1011Brazil2026-07-25
Munro Z Royster1012Japan2026-07-27
Munro W Stenseth1013Canada2026-08-02
Adams R Darakjy1014Argentina2026-07-21
Alejandro N Nestle1015India2026-07-16
Ricardo N Caudy1016Brazil2026-07-17
Kadeem K Whobrey1017Argentina2026-07-18
Ivar Y Caudy1018Spain2026-07-29
Tony H Paprocki1019Italy2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily Y WhobreySpainStephen Shaw QUALIFIED
Adams U PaprockiFranceAmy Elsner QUALIFIED
Chavez I PaprockiAustraliaElwin Sharvill PROPOSAL
Stacey C SaylorsIndiaAsiya Javayant PROPOSAL
Johnson N MarrierBrazilIoni Bowcher RENEWAL
Aruna S NickaJapanIoni Bowcher PROPOSAL
James D MarrierRussiaOnyama Limba PROPOSAL
Aika L NestleArgentinaXuxue Feng UNQUALIFIED
Johnson L StensethCanadaBernardo Dominic RENEWAL
Maria A VocelkaItalyAmy Elsner NEW
Costa E MaletArgentinaIoni Bowcher PROPOSAL
Emily P OstroskyRussiaIvan Magalhaes RENEWAL
Stacey S DilliardSpainAnna Fali NEW
Darci G OldroydSpainStephen Shaw UNQUALIFIED
David V DilliardAustraliaAmy Elsner NEW
Misaki X FigeroaJapanXuxue Feng QUALIFIED
Mayumi D ButtRussiaElwin Sharvill NEGOTIATION
Jones Z ShinkoGermanyAsiya Javayant NEW
Alejandro D StensethAustraliaElwin Sharvill UNQUALIFIED
Maisha S GlickSpainElwin Sharvill NEGOTIATION
Leon P PerinFranceIoni Bowcher QUALIFIED
Nicolas B DilliardBrazilAnna Fali NEW
Jennifer P SaylorsBrazilAmy Elsner PROPOSAL
Jones N GarufiRussiaAnna Fali NEW
Kaitlin C InouyeArgentinaAnna Fali UNQUALIFIED
Silvio O WieserBrazilIvan Magalhaes QUALIFIED
Francesco K KuskoIndiaIoni Bowcher NEW
Cody S StockhamRussiaOnyama Limba RENEWAL
Mujtaba L AmigonUnited KingdomIvan Magalhaes PROPOSAL
Maria L RulapaughUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois S FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood K OstroskyCanadaAnna Fali PROPOSAL
Aditya H MarrierUnited KingdomStephen Shaw PROPOSAL
Clifford J SchemmerUnited KingdomIoni Bowcher PROPOSAL
Johnson L ButtAustraliaBernardo Dominic UNQUALIFIED
Leja C CampainAustraliaOnyama Limba NEW
Izzy Y WieserArgentinaIoni Bowcher UNQUALIFIED
Wickens H GillianFranceBernardo Dominic PROPOSAL
Isabel O TollnerCanadaElwin Sharvill UNQUALIFIED
Aika A SergiRussiaIvan Magalhaes RENEWAL

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