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
Alejandro J ButtArgentinaXuxue Feng PROPOSAL
Jennifer B MacleadArgentinaElwin Sharvill RENEWAL
Leon F FollerGermanyAsiya Javayant RENEWAL
Alejandro E PoquetteCanadaAmy Elsner NEGOTIATION
Aika F PerinGermanyAnna Fali PROPOSAL
Maisha S WhobreyGermanyXuxue Feng QUALIFIED
Rodrigues I ShinkoBrazilAmy Elsner NEGOTIATION
Jefferson T KuskoIndiaBernardo Dominic QUALIFIED
Morrow A WhobreyAustraliaStephen Shaw QUALIFIED
Salvatore B FerenczUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois A KolmetzCanadaElwin Sharvill QUALIFIED
Nicolas V PerinCanadaAsiya Javayant QUALIFIED
Stacey D VocelkaAustraliaXuxue Feng RENEWAL
Wickens S RoysterRussiaAsiya Javayant UNQUALIFIED
Murillo O NickaItalyAmy Elsner PROPOSAL
Francesco M GarufiItalyElwin Sharvill PROPOSAL
Costa V FigeroaJapanXuxue Feng NEW
Ashley K MaletArgentinaAnna Fali UNQUALIFIED
Claire E AmigonIndiaOnyama Limba RENEWAL
Greenwood K WieserItalyElwin Sharvill RENEWAL
David I RulapaughCanadaAmy Elsner QUALIFIED
Stacey D SlusarskiAustraliaAnna Fali NEW
Francesco J ShinkoIndiaAnna Fali QUALIFIED
Wickens T ShinkoAustraliaXuxue Feng PROPOSAL
Salvatore U FollerRussiaAmy Elsner QUALIFIED
Izzy W CampainJapanAsiya Javayant NEGOTIATION
Rodrigues X StensethArgentinaIvan Magalhaes UNQUALIFIED
Francesco D StockhamJapanStephen Shaw UNQUALIFIED
Deepesh Y NickaFranceIoni Bowcher UNQUALIFIED
Alejandro S PoquetteRussiaStephen Shaw RENEWAL
Deepesh L CaudyGermanyBernardo Dominic RENEWAL
Jones B MaletArgentinaStephen Shaw UNQUALIFIED
Murillo L IturbideAustraliaElwin Sharvill PROPOSAL
Maria D InouyeFranceAsiya Javayant PROPOSAL
Jefferson K WieserRussiaIoni Bowcher UNQUALIFIED
Greenwood L KolmetzUnited KingdomAmy Elsner PROPOSAL
Nicolas X GauchoArgentinaElwin Sharvill RENEWAL
Octavia M NestleBrazilElwin Sharvill PROPOSAL
Jones Q WieserBrazilElwin Sharvill NEGOTIATION
Smith Q RulapaughArgentinaIoni Bowcher NEW
Aruna P FollerRussiaOnyama Limba RENEWAL
Jennifer G RoysterItalyXuxue Feng RENEWAL
Juan L RulapaughIndiaIoni Bowcher QUALIFIED
Arvin K BriddickGermanyIoni Bowcher NEW
Costa S SaylorsFranceBernardo Dominic RENEWAL
Ashley P MacleadJapanStephen Shaw NEGOTIATION
Sinclair T DarakjyCanadaStephen Shaw NEW
Maria W DoeAustraliaIoni Bowcher NEW
Cody N DoeArgentinaIvan Magalhaes RENEWAL
Ashley V VenereFranceAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens F FerenczUnited KingdomOnyama Limba RENEWAL
Julie C CaldareraUnited KingdomIvan Magalhaes NEGOTIATION
Stacey E CampainArgentinaOnyama Limba NEGOTIATION
Jennifer M SaylorsJapanStephen Shaw NEGOTIATION
Misaki V RimUnited KingdomAsiya Javayant UNQUALIFIED
Cody R CaudyArgentinaAmy Elsner NEGOTIATION
David X OstroskyIndiaBernardo Dominic NEGOTIATION
Costa X BriddickCanadaXuxue Feng NEW
Kadeem E ShinkoIndiaOnyama Limba QUALIFIED
David W ShinkoArgentinaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow S RoysterFrance2026-06-23Truhlar And Truhlar Attys QUALIFIED53Onyama Limba
1001Antonio D RulapaughFrance2026-06-05Feiner Bros UNQUALIFIED47Anna Fali
1002Adams H TollnerItaly2026-06-26Benton, John B Jr UNQUALIFIED24Stephen Shaw
1003Costa F FerenczIndia2026-06-01King, Christopher A Esq NEGOTIATION38Asiya Javayant
1004Clifford U NickaGermany2026-06-29King, Christopher A Esq NEGOTIATION23Amy Elsner
1005Maria P FerenczFrance2026-06-30Buckley Miller Wright NEW70Onyama Limba
1006Jennifer F VenereGermany2026-06-17Truhlar And Truhlar Attys NEGOTIATION13Ivan Magalhaes
1007Octavia B GillianFrance2026-06-09Truhlar And Truhlar Attys QUALIFIED89Asiya Javayant
1008Aruna N OstroskyAustralia2026-06-23Benton, John B Jr UNQUALIFIED99Bernardo Dominic
1009Salvatore C StensethAustralia2026-06-08Chemel, James L Cpa RENEWAL37Amy Elsner
1010Deepesh T BriddickUnited Kingdom2026-06-28Morlong Associates UNQUALIFIED45Elwin Sharvill
1011James F WhobreyBrazil2026-06-07Chanay, Jeffrey A Esq UNQUALIFIED84Ivan Magalhaes
1012Arvin A MorascaFrance2026-06-18Truhlar And Truhlar Attys NEW21Xuxue Feng
1013Mayumi G DilliardGermany2026-06-19Buckley Miller Wright NEW90Elwin Sharvill
1014Murillo J GlickCanada2026-06-21Chapman, Ross E Esq QUALIFIED17Xuxue Feng
1015Maria E VocelkaJapan2026-06-20Rangoni Of Florence QUALIFIED93Amy Elsner
1016Faith E ButtFrance2026-06-16Commercial Press QUALIFIED12Stephen Shaw
1017Faith M VenereFrance2026-06-22Rousseaux, Michael Esq UNQUALIFIED58Xuxue Feng
1018Alejandro J FigeroaIndia2026-06-05Benton, John B Jr RENEWAL22Asiya Javayant
1019James W GauchoSpain2026-06-02Benton, John B Jr NEW40Onyama Limba
1020Adams Y VocelkaRussia2026-06-30King, Christopher A Esq RENEWAL70Xuxue Feng
1021Arvin X AlbaresBrazil2026-06-04Truhlar And Truhlar Attys RENEWAL88Ivan Magalhaes
1022Faith W WhobreyFrance2026-06-16Benton, John B Jr UNQUALIFIED67Anna Fali
1023Silvio P NickaUnited Kingdom2026-06-27Rousseaux, Michael Esq RENEWAL23Ivan Magalhaes
1024Arvin J ShinkoUnited Kingdom2026-06-06Morlong Associates QUALIFIED8Anna Fali
1025David M CampainArgentina2026-06-24Commercial Press NEGOTIATION23Onyama Limba
1026Stacey Q OstroskyItaly2026-06-09Chemel, James L Cpa PROPOSAL19Amy Elsner
1027Darci I NestleCanada2026-06-24Rangoni Of Florence PROPOSAL49Anna Fali
1028Isabel O ChuiArgentina2026-06-26Feltz Printing Service NEW51Anna Fali
1029Tony K FigeroaArgentina2026-06-15Chapman, Ross E Esq UNQUALIFIED71Stephen Shaw
1030Stacey X CampainGermany2026-06-16Feiner Bros PROPOSAL5Onyama Limba
1031Aruna X DilliardIndia2026-06-12Printing Dimensions RENEWAL47Bernardo Dominic
1032Misaki O CaudyBrazil2026-06-19Dorl, James J Esq PROPOSAL24Onyama Limba
1033Jefferson G WieserUnited Kingdom2026-06-01Rousseaux, Michael Esq NEGOTIATION60Onyama Limba
1034Misaki Y SergiIndia2026-06-07Rangoni Of Florence PROPOSAL67Bernardo Dominic
1035Claire Z RulapaughGermany2026-06-27Morlong Associates RENEWAL98Asiya Javayant
1036Julie P RoysterBrazil2026-06-22Commercial Press NEW37Onyama Limba
1037Silvio P AmigonSpain2026-06-08Chanay, Jeffrey A Esq QUALIFIED10Xuxue Feng
1038Leon T DilliardItaly2026-06-04Dorl, James J Esq RENEWAL66Xuxue Feng
1039Claire H IturbideFrance2026-06-14Truhlar And Truhlar Attys QUALIFIED79Ivan Magalhaes
1040Alejandro I MorascaGermany2026-06-27King, Christopher A Esq NEW56Ivan Magalhaes
1041Francesco C PerinBrazil2026-06-14Commercial Press RENEWAL87Asiya Javayant
1042Izzy W GarufiJapan2026-06-30Morlong Associates PROPOSAL95Elwin Sharvill
1043Johnson D MaletIndia2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED34Ivan Magalhaes
1044Emily V FlosiFrance2026-06-06Dorl, James J Esq NEW19Bernardo Dominic
1045Isabel H AmigonRussia2026-06-01King, Christopher A Esq QUALIFIED65Bernardo Dominic
1046Jones U RutaFrance2026-06-07Chapman, Ross E Esq NEW93Anna Fali
1047Salvatore N SaylorsArgentina2026-06-25Truhlar And Truhlar Attys NEGOTIATION88Anna Fali
1048Sinclair O KolmetzFrance2026-06-09Printing Dimensions UNQUALIFIED58Stephen Shaw
1049Johnson K BowleyArgentina2026-06-05King, Christopher A Esq NEGOTIATION44Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Misaki H MarrierIndiaBernardo Dominic RENEWAL
Mayumi R AlbaresAustraliaIoni Bowcher UNQUALIFIED
Francesco M KolmetzItalyOnyama Limba QUALIFIED
Ashley A StensethJapanElwin Sharvill NEW
Julie Z GlickItalyXuxue Feng NEW
Leon J ButtGermanyStephen Shaw QUALIFIED
Kadeem R SchemmerItalyIvan Magalhaes QUALIFIED
Emily K MarrierAustraliaIvan Magalhaes NEGOTIATION
Jennifer K NestleAustraliaAsiya Javayant NEGOTIATION
Kadeem Y WieserArgentinaOnyama Limba NEW
Julie D CaldareraCanadaAmy Elsner NEGOTIATION
Julie J GillianJapanElwin Sharvill QUALIFIED
Aika H WieserRussiaElwin Sharvill UNQUALIFIED
Morrow H PaprockiSpainBernardo Dominic RENEWAL
Adams O MaletBrazilIvan Magalhaes PROPOSAL
Jennifer Q CaldareraGermanyOnyama Limba PROPOSAL
Cody R OldroydRussiaAsiya Javayant NEGOTIATION
Darci R KuskoAustraliaIoni Bowcher NEGOTIATION
Jones C CaldareraJapanXuxue Feng UNQUALIFIED
Rodrigues E WieserCanadaXuxue Feng UNQUALIFIED
Costa J RulapaughFranceIvan Magalhaes UNQUALIFIED
Faith J FollerArgentinaElwin Sharvill NEW
Deepesh T SergiArgentinaOnyama Limba RENEWAL
Nicolas I FigeroaRussiaIvan Magalhaes UNQUALIFIED
Wickens D WhobreyCanadaXuxue Feng NEGOTIATION
Darci Z RutaAustraliaOnyama Limba PROPOSAL
Sinclair X GlickItalyIoni Bowcher PROPOSAL
Ashley W DilliardAustraliaBernardo Dominic RENEWAL
Aika Q StockhamJapanXuxue Feng NEGOTIATION
Morrow K PaprockiArgentinaStephen Shaw UNQUALIFIED
Deepesh B NestleBrazilBernardo Dominic NEW
Arvin C TollnerIndiaOnyama Limba NEW
Maisha J BriddickArgentinaXuxue Feng RENEWAL
Leon M KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Misaki Q OstroskyJapanElwin Sharvill NEW
Octavia J RimArgentinaIoni Bowcher UNQUALIFIED
Ashley E AmigonUnited KingdomXuxue Feng NEW
Ashley E RutaIndiaXuxue Feng NEGOTIATION
Mujtaba M VenereJapanAnna Fali NEW
Murillo S PerinAustraliaOnyama Limba NEW
Aditya B GlickAustraliaOnyama Limba NEW
Claire F DoeSpainAmy Elsner NEGOTIATION
Ricardo F BriddickAustraliaIvan Magalhaes UNQUALIFIED
Jefferson G InouyeUnited KingdomIoni Bowcher QUALIFIED
Maria F GillianGermanyAmy Elsner NEGOTIATION
Mujtaba B ShinkoCanadaStephen Shaw PROPOSAL
James J DoeRussiaXuxue Feng NEW
Cody X RoysterItalyIvan Magalhaes QUALIFIED
Rodrigues L FlosiSpainBernardo Dominic PROPOSAL
Costa S GillianFranceXuxue Feng QUALIFIED
Frozen Columns
Name
Kadeem L Kolmetz
Faith M Bolognia
Francesco A Doe
Adams J Butt
Mujtaba M Poquette
Salvatore V Iturbide
Misaki M Venere
Deepesh C Stockham
Maria O Wieser
Arvin S Caldarera
Maria V Briddick
Johnson S Wieser
Sinclair P Rulapaugh
Mayumi T Briddick
Ricardo D Rim
Cody E Nicka
Darci Q Iturbide
Octavia Y Whobrey
Maria D Briddick
Izzy T Albares
Kaitlin O Stenseth
Isabel L Nestle
Jefferson E Foller
Cody T Paprocki
Ivar J Bolognia
Costa U Perin
Octavia Q Amigon
Izzy Q Slusarski
Julie Y Iturbide
Ricardo N Venere
Mayumi C Stenseth
Tony Z Nicka
Nicolas H Caldarera
David Z Albares
Maisha W Venere
Costa B Butt
Jefferson K Butt
Murillo B Garufi
Nicolas O Oldroyd
Aditya B Waycott
Salvatore F Saylors
Emily Y Darakjy
Salvatore O Chui
James N Glick
Johnson P Caudy
Aditya G Nicka
David M Maclead
Sinclair J Glick
Claire J Garufi
Misaki X Iturbide
IdCountryDate
1000Japan2026-06-01
1001Japan2026-06-04
1002Argentina2026-06-29
1003Russia2026-06-23
1004Brazil2026-06-25
1005Spain2026-06-16
1006India2026-06-14
1007Japan2026-06-03
1008Canada2026-06-02
1009Argentina2026-06-13
1010Spain2026-06-18
1011India2026-06-24
1012Italy2026-06-10
1013Italy2026-06-10
1014Argentina2026-06-21
1015United Kingdom2026-06-19
1016Australia2026-06-24
1017Russia2026-06-27
1018India2026-06-17
1019United Kingdom2026-06-30
1020Germany2026-06-26
1021Russia2026-06-26
1022India2026-06-18
1023United Kingdom2026-06-03
1024United Kingdom2026-06-20
1025Germany2026-06-22
1026Australia2026-06-08
1027United Kingdom2026-06-02
1028Japan2026-06-30
1029United Kingdom2026-06-17
1030Russia2026-06-11
1031Russia2026-06-12
1032Japan2026-06-27
1033Spain2026-06-04
1034Brazil2026-06-03
1035Germany2026-06-23
1036Russia2026-06-01
1037Germany2026-06-15
1038Italy2026-06-12
1039India2026-06-12
1040Italy2026-06-15
1041Canada2026-06-20
1042Italy2026-06-02
1043India2026-06-02
1044Germany2026-06-14
1045Australia2026-06-17
1046Brazil2026-06-29
1047Germany2026-06-20
1048Japan2026-06-21
1049Spain2026-06-16

On-Demand Data

NameIdCountryDate
Silvio O Morasca1000Japan2026-06-05
Darci I Rim1001Australia2026-06-18
Claire C Morasca1002Japan2026-06-21
Murillo F Gaucho1003Brazil2026-06-30
Antonio F Rim1004Australia2026-06-22
Isabel V Schemmer1005Argentina2026-06-24
Francesco U Briddick1006Argentina2026-06-29
Greenwood H Schemmer1007Brazil2026-06-16
Mujtaba Y Briddick1008Argentina2026-06-21
Darci W Amigon1009France2026-06-28
Ivar B Kolmetz1010India2026-06-27
Mayumi A Albares1011United Kingdom2026-06-23
Juan T Ostrosky1012Canada2026-06-25
Claire C Venere1013Russia2026-06-26
Wickens Z Kusko1014United Kingdom2026-06-14
Jeanfrancois L Caudy1015Australia2026-06-30
Darci X Campain1016India2026-06-14
Sinclair T Slusarski1017Canada2026-06-18
Arvin Y Albares1018Australia2026-06-05
Aika L Marrier1019France2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams L FerenczUnited KingdomAmy Elsner QUALIFIED
Jefferson K GlickBrazilAsiya Javayant NEW
Munro T CaudyJapanAmy Elsner QUALIFIED
David Y MorascaRussiaAsiya Javayant QUALIFIED
Sinclair T WaycottGermanyIvan Magalhaes QUALIFIED
Misaki N FigeroaJapanAnna Fali NEW
Darci Y GlickUnited KingdomAsiya Javayant QUALIFIED
Isabel Q MaletRussiaAmy Elsner RENEWAL
Nicolas L AmigonRussiaAmy Elsner RENEWAL
Francesco W CaldareraSpainOnyama Limba NEGOTIATION
Clifford F WaycottFranceIvan Magalhaes NEGOTIATION
Ashley N CaldareraCanadaElwin Sharvill NEW
Aika P RulapaughUnited KingdomXuxue Feng NEW
Antonio H WaycottJapanElwin Sharvill QUALIFIED
Mayumi I VenereItalyElwin Sharvill PROPOSAL
Francesco Z AlbaresGermanyStephen Shaw NEGOTIATION
Claire K WhobreyJapanXuxue Feng NEGOTIATION
Nicolas P GlickUnited KingdomAmy Elsner PROPOSAL
Kaitlin H DilliardJapanBernardo Dominic PROPOSAL
Morrow T WieserCanadaAnna Fali RENEWAL
Aditya B RimFranceAsiya Javayant NEW
Aika Q BriddickItalyElwin Sharvill UNQUALIFIED
Emily T MaletArgentinaAsiya Javayant RENEWAL
Stacey U VocelkaSpainAnna Fali QUALIFIED
Julie Q SergiGermanyElwin Sharvill UNQUALIFIED
Mujtaba H NickaAustraliaIvan Magalhaes NEGOTIATION
Julie H OstroskyItalyAnna Fali NEGOTIATION
Munro L PoquetteGermanyOnyama Limba NEW
Mujtaba B AmigonItalyAmy Elsner UNQUALIFIED
Stacey V CaldareraBrazilAnna Fali PROPOSAL
Adams K WaycottFranceAnna Fali RENEWAL
Johnson L VenereBrazilElwin Sharvill NEW
Jeanfrancois E DoeUnited KingdomOnyama Limba NEW
Munro G ButtUnited KingdomIvan Magalhaes RENEWAL
Salvatore V BologniaJapanAsiya Javayant NEW
Murillo U DoeItalyElwin Sharvill RENEWAL
Leon N WieserJapanElwin Sharvill PROPOSAL
James V BowleyGermanyOnyama Limba NEGOTIATION
Tony G FigeroaIndiaStephen Shaw RENEWAL
Ashley Q ShinkoIndiaStephen Shaw 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>