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
Izzy M DilliardIndiaIoni Bowcher RENEWAL
Jefferson C SchemmerFranceAsiya Javayant RENEWAL
Murillo H DilliardJapanAsiya Javayant QUALIFIED
Leja O OstroskyFranceBernardo Dominic PROPOSAL
Emily W BriddickCanadaXuxue Feng RENEWAL
Aruna T CampainBrazilAnna Fali QUALIFIED
Ricardo B FerenczCanadaOnyama Limba NEGOTIATION
David I MacleadFranceElwin Sharvill NEW
Munro D FerenczIndiaIoni Bowcher UNQUALIFIED
Juan N RulapaughRussiaAnna Fali PROPOSAL
Jeanfrancois I NestleRussiaElwin Sharvill RENEWAL
Leja P FollerRussiaAnna Fali NEW
Francesco J WieserGermanyBernardo Dominic QUALIFIED
Aruna U CampainCanadaIoni Bowcher NEGOTIATION
David V CaudyUnited KingdomAmy Elsner RENEWAL
Leon K OldroydBrazilBernardo Dominic UNQUALIFIED
Jones W RimCanadaIoni Bowcher NEW
Jefferson L ChuiJapanStephen Shaw UNQUALIFIED
Arvin Q InouyeIndiaBernardo Dominic NEW
Mujtaba A FigeroaArgentinaBernardo Dominic QUALIFIED
Alejandro Y ButtAustraliaBernardo Dominic QUALIFIED
Aditya B NestleUnited KingdomBernardo Dominic QUALIFIED
Chavez G MacleadItalyStephen Shaw PROPOSAL
Alejandro Y RoysterGermanyIoni Bowcher RENEWAL
Greenwood S WieserIndiaAmy Elsner QUALIFIED
Francesco M OldroydJapanElwin Sharvill NEGOTIATION
Salvatore C OldroydCanadaIoni Bowcher RENEWAL
Mayumi H StockhamRussiaElwin Sharvill QUALIFIED
Jones F ShinkoIndiaBernardo Dominic UNQUALIFIED
Greenwood V RulapaughRussiaIoni Bowcher PROPOSAL
Salvatore M WieserGermanyOnyama Limba NEGOTIATION
Wickens H GauchoSpainAsiya Javayant RENEWAL
Clifford U VocelkaJapanElwin Sharvill NEW
Octavia N PaprockiBrazilAsiya Javayant UNQUALIFIED
Sinclair Y StensethAustraliaIvan Magalhaes RENEWAL
Antonio G WieserGermanyAmy Elsner NEGOTIATION
Chavez Z FollerArgentinaXuxue Feng UNQUALIFIED
Isabel Y RimSpainAmy Elsner NEGOTIATION
Jennifer O VenereGermanyBernardo Dominic UNQUALIFIED
Stacey T OstroskyRussiaStephen Shaw PROPOSAL
Tony N PerinIndiaIvan Magalhaes UNQUALIFIED
Maria F WhobreyUnited KingdomAmy Elsner NEGOTIATION
Ashley W AlbaresGermanyElwin Sharvill NEGOTIATION
Kaitlin Z NestleAustraliaBernardo Dominic RENEWAL
Jones T ShinkoJapanAsiya Javayant RENEWAL
Chavez E MaletSpainOnyama Limba PROPOSAL
Kaitlin M AmigonAustraliaStephen Shaw NEGOTIATION
David F RoysterItalyElwin Sharvill QUALIFIED
Stacey B NickaFranceStephen Shaw QUALIFIED
Jefferson I SaylorsItalyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio P PerinGermanyIoni Bowcher UNQUALIFIED
Mujtaba V RulapaughBrazilIoni Bowcher NEGOTIATION
Wickens B RoysterFranceAnna Fali NEW
Kaitlin B CaudyAustraliaAsiya Javayant NEW
James K GauchoSpainElwin Sharvill NEGOTIATION
Octavia I PoquetteArgentinaAsiya Javayant PROPOSAL
Stacey P MarrierItalyAmy Elsner RENEWAL
Arvin E PerinCanadaXuxue Feng UNQUALIFIED
Tony B RulapaughIndiaIvan Magalhaes PROPOSAL
Aditya J CaudyUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria N AmigonArgentina2026-07-07Truhlar And Truhlar Attys QUALIFIED95Stephen Shaw
1001Jennifer S WieserJapan2026-07-24Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1002Munro A RoysterArgentina2026-07-29Morlong Associates UNQUALIFIED99Ioni Bowcher
1003Leon W InouyeGermany2026-07-10Rousseaux, Michael Esq NEW75Anna Fali
1004Murillo O SlusarskiJapan2026-07-20Commercial Press QUALIFIED65Ioni Bowcher
1005Isabel Z WaycottArgentina2026-07-12Printing Dimensions NEW66Onyama Limba
1006Greenwood Z VocelkaJapan2026-07-05Dorl, James J Esq RENEWAL93Stephen Shaw
1007Jeanfrancois W FlosiJapan2026-07-20Feltz Printing Service PROPOSAL30Anna Fali
1008Greenwood O OstroskyRussia2026-07-17King, Christopher A Esq RENEWAL34Ivan Magalhaes
1009Jennifer S AlbaresItaly2026-07-18Chemel, James L Cpa UNQUALIFIED58Xuxue Feng
1010Nicolas S StensethUnited Kingdom2026-07-30Chemel, James L Cpa UNQUALIFIED85Ioni Bowcher
1011Antonio F AlbaresRussia2026-07-23Buckley Miller Wright UNQUALIFIED45Xuxue Feng
1012Alejandro J IturbideIndia2026-07-11Chanay, Jeffrey A Esq PROPOSAL75Xuxue Feng
1013Claire D PoquetteRussia2026-07-14Chapman, Ross E Esq NEGOTIATION25Bernardo Dominic
1014Alejandro H OldroydFrance2026-07-16King, Christopher A Esq QUALIFIED35Amy Elsner
1015Cody A StensethRussia2026-07-05Morlong Associates NEW36Bernardo Dominic
1016Cody E FlosiSpain2026-07-23Benton, John B Jr NEW81Asiya Javayant
1017Johnson N InouyeUnited Kingdom2026-07-27Benton, John B Jr PROPOSAL90Amy Elsner
1018James T WaycottRussia2026-07-18Chemel, James L Cpa NEGOTIATION17Anna Fali
1019Adams F CampainFrance2026-07-05Dorl, James J Esq RENEWAL29Bernardo Dominic
1020Mujtaba I MorascaSpain2026-07-26Dorl, James J Esq QUALIFIED94Ivan Magalhaes
1021Clifford K NestleBrazil2026-07-10Buckley Miller Wright NEGOTIATION59Bernardo Dominic
1022Johnson D CaldareraItaly2026-07-11Rousseaux, Michael Esq QUALIFIED73Amy Elsner
1023Ashley L WaycottBrazil2026-07-04Morlong Associates PROPOSAL65Amy Elsner
1024Nicolas Y CaudyIndia2026-07-21Chemel, James L Cpa UNQUALIFIED47Ivan Magalhaes
1025Aika R MarrierRussia2026-07-08Rangoni Of Florence NEW86Elwin Sharvill
1026Tony K DarakjyItaly2026-07-03Feiner Bros PROPOSAL28Ivan Magalhaes
1027Ashley Q KolmetzUnited Kingdom2026-07-30Commercial Press QUALIFIED86Anna Fali
1028Costa Q OstroskyAustralia2026-07-14Benton, John B Jr UNQUALIFIED37Bernardo Dominic
1029Ricardo Y DarakjyAustralia2026-07-07Benton, John B Jr PROPOSAL90Anna Fali
1030David I WieserBrazil2026-07-13Feltz Printing Service NEGOTIATION1Stephen Shaw
1031Jeanfrancois E KolmetzJapan2026-07-25Rousseaux, Michael Esq RENEWAL23Bernardo Dominic
1032Leon Y StensethFrance2026-07-05Feiner Bros PROPOSAL79Amy Elsner
1033Adams B MorascaJapan2026-07-25Chemel, James L Cpa QUALIFIED57Asiya Javayant
1034Ivar T PaprockiCanada2026-07-28Chemel, James L Cpa NEW26Asiya Javayant
1035Deepesh P RoysterCanada2026-07-25Dorl, James J Esq NEGOTIATION32Asiya Javayant
1036David R InouyeRussia2026-07-31Chemel, James L Cpa NEW75Elwin Sharvill
1037Maisha P AmigonArgentina2026-07-08Dorl, James J Esq UNQUALIFIED45Elwin Sharvill
1038Kaitlin E FlosiAustralia2026-07-31Buckley Miller Wright QUALIFIED86Amy Elsner
1039Antonio P NickaItaly2026-07-05Rousseaux, Michael Esq UNQUALIFIED2Bernardo Dominic
1040Tony J TollnerGermany2026-07-24Feiner Bros PROPOSAL39Amy Elsner
1041Tony I OstroskyIndia2026-07-08Buckley Miller Wright NEGOTIATION31Asiya Javayant
1042Faith W NestleSpain2026-07-11Feiner Bros NEGOTIATION39Ivan Magalhaes
1043Munro H VocelkaArgentina2026-07-31Truhlar And Truhlar Attys NEW6Elwin Sharvill
1044Jennifer Y FollerBrazil2026-07-09Benton, John B Jr PROPOSAL63Elwin Sharvill
1045James P TollnerArgentina2026-07-23Printing Dimensions NEW42Ivan Magalhaes
1046Ashley J MorascaItaly2026-08-01Feltz Printing Service PROPOSAL25Stephen Shaw
1047Leon H RulapaughGermany2026-07-28Commercial Press NEGOTIATION30Ioni Bowcher
1048Mayumi U StockhamArgentina2026-07-15Morlong Associates NEW12Amy Elsner
1049Cody H WhobreyArgentina2026-07-20Rousseaux, Michael Esq NEW49Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ricardo Z BologniaSpainIvan Magalhaes UNQUALIFIED
Claire K GauchoCanadaAnna Fali NEGOTIATION
Murillo H SaylorsAustraliaAnna Fali NEGOTIATION
Mayumi F ShinkoAustraliaXuxue Feng NEW
Izzy E BowleyIndiaOnyama Limba UNQUALIFIED
Leon R WieserCanadaAnna Fali NEW
Leon B PaprockiJapanStephen Shaw PROPOSAL
Alejandro D SlusarskiArgentinaAnna Fali PROPOSAL
Octavia L FerenczAustraliaElwin Sharvill RENEWAL
Maisha N GauchoCanadaAsiya Javayant QUALIFIED
Leja Z BowleyJapanOnyama Limba PROPOSAL
Maria M IturbideBrazilAnna Fali NEGOTIATION
Leja Q FerenczSpainStephen Shaw QUALIFIED
Aditya T VocelkaArgentinaAsiya Javayant NEGOTIATION
Aika G CampainAustraliaAsiya Javayant NEW
Jefferson M ChuiIndiaIoni Bowcher UNQUALIFIED
Jeanfrancois O ButtIndiaBernardo Dominic PROPOSAL
Aika X FigeroaUnited KingdomElwin Sharvill QUALIFIED
Maisha B WieserJapanBernardo Dominic UNQUALIFIED
David E WaycottRussiaElwin Sharvill PROPOSAL
Costa L WieserCanadaAnna Fali NEW
Mayumi C InouyeIndiaAmy Elsner UNQUALIFIED
Adams D MaletCanadaAsiya Javayant UNQUALIFIED
Emily N TollnerBrazilElwin Sharvill PROPOSAL
Juan L RoysterCanadaAnna Fali UNQUALIFIED
Ashley F MarrierArgentinaBernardo Dominic UNQUALIFIED
Sinclair T ButtAustraliaIoni Bowcher UNQUALIFIED
Jeanfrancois Q IturbideFranceElwin Sharvill NEW
Johnson S KuskoItalyXuxue Feng RENEWAL
Jennifer Y DarakjyAustraliaAnna Fali UNQUALIFIED
Emily E CaldareraGermanyAsiya Javayant QUALIFIED
Nicolas Z NickaIndiaElwin Sharvill RENEWAL
Smith L TollnerBrazilIoni Bowcher PROPOSAL
Aika I RoysterCanadaAnna Fali NEW
Salvatore L PerinIndiaAsiya Javayant QUALIFIED
Jennifer D BowleyRussiaAsiya Javayant QUALIFIED
Adams C BologniaUnited KingdomOnyama Limba RENEWAL
Wickens K ButtItalyBernardo Dominic NEW
James Y RimGermanyIoni Bowcher RENEWAL
Aika H CampainItalyOnyama Limba UNQUALIFIED
Claire L SergiBrazilAmy Elsner NEGOTIATION
Costa V RoysterArgentinaXuxue Feng PROPOSAL
Cody D GlickGermanyOnyama Limba PROPOSAL
Kadeem P WhobreyAustraliaAsiya Javayant QUALIFIED
Salvatore Q BriddickIndiaElwin Sharvill UNQUALIFIED
Antonio N TollnerJapanOnyama Limba QUALIFIED
Tony W ButtBrazilAmy Elsner NEGOTIATION
Julie H CaudyGermanyOnyama Limba UNQUALIFIED
Johnson G KolmetzAustraliaXuxue Feng NEW
Ricardo W StockhamUnited KingdomBernardo Dominic PROPOSAL
Frozen Columns
Name
Kadeem Z Briddick
Ivar P Kusko
Ivar G Bolognia
Salvatore W Foller
Morrow G Poquette
Maria O Wieser
Silvio D Kolmetz
Sinclair M Wieser
Darci L Marrier
Chavez R Morasca
Maisha P Foller
Cody W Tollner
Sinclair B Waycott
Darci X Saylors
Julie B Doe
David V Kolmetz
Greenwood S Whobrey
Ricardo Q Rulapaugh
Faith W Shinko
Costa W Glick
Alejandro Y Rim
Kaitlin A Sergi
Ashley Z Figeroa
David M Malet
Izzy E Gaucho
Misaki A Iturbide
James F Nicka
Silvio P Shinko
Ivar S Perin
Murillo P Caudy
Clifford Q Royster
Nicolas Z Dilliard
Aruna J Schemmer
Stacey F Ruta
Emily F Figeroa
Chavez H Nestle
David X Garufi
Cody U Chui
Izzy E Garufi
Maria X Schemmer
Munro G Venere
Tony T Poquette
Juan N Nicka
Leja K Waycott
Juan Q Flosi
Costa T Malet
Smith M Shinko
Smith Z Flosi
Mayumi R Morasca
Salvatore E Briddick
IdCountryDate
1000United Kingdom2026-07-19
1001India2026-07-06
1002Germany2026-07-07
1003Germany2026-07-12
1004Argentina2026-07-20
1005Spain2026-07-21
1006Japan2026-07-05
1007India2026-07-16
1008Argentina2026-07-15
1009France2026-07-08
1010India2026-07-27
1011India2026-07-28
1012Argentina2026-07-13
1013Argentina2026-07-27
1014Australia2026-07-12
1015Brazil2026-07-07
1016Australia2026-07-25
1017India2026-07-18
1018Australia2026-07-28
1019Brazil2026-07-21
1020Argentina2026-07-21
1021United Kingdom2026-07-19
1022India2026-07-24
1023France2026-07-13
1024Brazil2026-07-17
1025Italy2026-07-28
1026Germany2026-07-14
1027Canada2026-07-15
1028Spain2026-07-23
1029Italy2026-07-27
1030France2026-07-18
1031Brazil2026-07-09
1032Canada2026-07-22
1033Italy2026-07-16
1034United Kingdom2026-07-10
1035France2026-07-27
1036Spain2026-07-09
1037India2026-07-10
1038Brazil2026-07-04
1039Germany2026-07-03
1040Canada2026-07-22
1041Brazil2026-07-31
1042Japan2026-07-26
1043Spain2026-07-05
1044India2026-07-22
1045Brazil2026-07-04
1046Australia2026-07-14
1047United Kingdom2026-07-23
1048Italy2026-07-22
1049Russia2026-07-13

On-Demand Data

NameIdCountryDate
Antonio U Kusko1000Germany2026-07-07
Rodrigues W Campain1001Russia2026-07-20
Chavez M Paprocki1002Italy2026-07-03
Ricardo Y Rulapaugh1003Russia2026-07-17
Maria G Paprocki1004Italy2026-07-03
Chavez W Royster1005Argentina2026-07-26
Juan I Royster1006Spain2026-07-14
Jones N Perin1007Japan2026-07-06
Maisha O Kusko1008Brazil2026-07-07
Darci C Gillian1009Brazil2026-07-17
Adams K Nestle1010Brazil2026-07-13
Isabel O Maclead1011Argentina2026-07-04
Mujtaba P Rulapaugh1012Japan2026-07-10
Clifford B Inouye1013Russia2026-07-09
Juan H Campain1014Russia2026-07-23
Alejandro Z Garufi1015Germany2026-07-27
Faith I Bolognia1016Italy2026-07-30
Leon H Ferencz1017Russia2026-07-31
Smith F Stenseth1018Spain2026-07-28
Julie W Bowley1019Japan2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo O MarrierJapanAsiya Javayant QUALIFIED
Kadeem R WhobreySpainAsiya Javayant NEW
Chavez S DarakjyCanadaBernardo Dominic NEW
Aruna O StockhamAustraliaBernardo Dominic RENEWAL
Smith J CaldareraItalyIoni Bowcher PROPOSAL
Mujtaba V OstroskyGermanyStephen Shaw QUALIFIED
Ivar N NickaCanadaAnna Fali PROPOSAL
Sinclair W MorascaUnited KingdomStephen Shaw QUALIFIED
Deepesh W FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Deepesh Y WhobreyBrazilXuxue Feng RENEWAL
Mujtaba K AmigonItalyElwin Sharvill UNQUALIFIED
Wickens S AmigonSpainAnna Fali NEGOTIATION
Darci B VocelkaJapanIoni Bowcher PROPOSAL
Aditya M AmigonGermanyAmy Elsner NEW
Ivar R BowleyIndiaOnyama Limba NEGOTIATION
Izzy Y RulapaughFranceAmy Elsner QUALIFIED
Julie P PoquetteIndiaIoni Bowcher UNQUALIFIED
Emily Q GauchoIndiaOnyama Limba NEGOTIATION
Sinclair D KolmetzArgentinaIvan Magalhaes PROPOSAL
Misaki E NickaArgentinaAsiya Javayant UNQUALIFIED
Cody F SergiSpainIoni Bowcher NEGOTIATION
Murillo J RoysterAustraliaStephen Shaw NEW
Jefferson A GillianRussiaOnyama Limba NEGOTIATION
Stacey M PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Aika N OldroydBrazilXuxue Feng RENEWAL
Darci C ChuiFranceStephen Shaw NEGOTIATION
Leon L IturbideSpainStephen Shaw QUALIFIED
Leon Z RimItalyStephen Shaw PROPOSAL
Juan D MaletGermanyIvan Magalhaes NEGOTIATION
David P BologniaRussiaIoni Bowcher QUALIFIED
Munro Z SergiFranceStephen Shaw RENEWAL
Cody N BriddickFranceXuxue Feng NEW
Jones X MaletBrazilAmy Elsner RENEWAL
Clifford J RoysterJapanStephen Shaw RENEWAL
Mayumi L VenereArgentinaAnna Fali PROPOSAL
Aika V IturbideAustraliaBernardo Dominic NEGOTIATION
Faith W ButtJapanAnna Fali NEGOTIATION
Costa P SergiFranceIoni Bowcher NEGOTIATION
Darci Z MaletBrazilAnna Fali UNQUALIFIED
Arvin Z FlosiSpainAnna Fali UNQUALIFIED

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