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
Arvin J WaycottUnited KingdomAsiya Javayant NEGOTIATION
Alejandro M CampainSpainStephen Shaw PROPOSAL
Claire H DilliardRussiaBernardo Dominic QUALIFIED
Mujtaba Z SlusarskiIndiaAnna Fali QUALIFIED
Jeanfrancois F PerinBrazilAnna Fali RENEWAL
Ashley F DoeSpainIoni Bowcher RENEWAL
Silvio W BowleyRussiaBernardo Dominic NEGOTIATION
Jennifer K NickaSpainAsiya Javayant QUALIFIED
Aruna I PaprockiUnited KingdomOnyama Limba PROPOSAL
Maria W GlickIndiaXuxue Feng NEGOTIATION
Clifford V PerinUnited KingdomStephen Shaw QUALIFIED
James O ShinkoCanadaElwin Sharvill UNQUALIFIED
Johnson Z FerenczGermanyElwin Sharvill NEGOTIATION
Misaki V DoeAustraliaBernardo Dominic NEW
Chavez G GauchoRussiaStephen Shaw NEGOTIATION
Maria I SaylorsUnited KingdomElwin Sharvill RENEWAL
Emily O RimJapanAsiya Javayant RENEWAL
Munro O DoeUnited KingdomAnna Fali NEW
Tony X DoeItalyStephen Shaw NEGOTIATION
Aruna S PaprockiCanadaBernardo Dominic UNQUALIFIED
Alejandro P RoysterJapanXuxue Feng NEW
Munro G SlusarskiRussiaXuxue Feng UNQUALIFIED
Kaitlin Q FigeroaItalyAsiya Javayant UNQUALIFIED
Munro C MaletIndiaAsiya Javayant QUALIFIED
Smith U SergiSpainAsiya Javayant PROPOSAL
Izzy R DarakjyBrazilAsiya Javayant QUALIFIED
Mayumi R CampainCanadaOnyama Limba NEW
Leja H MaletCanadaOnyama Limba PROPOSAL
Clifford T OstroskyRussiaOnyama Limba RENEWAL
Adams Q TollnerBrazilStephen Shaw UNQUALIFIED
Tony S MaletRussiaIoni Bowcher PROPOSAL
Jeanfrancois F RoysterIndiaBernardo Dominic UNQUALIFIED
Arvin W RulapaughJapanXuxue Feng RENEWAL
Tony K MarrierIndiaAmy Elsner NEW
Emily F MarrierFranceBernardo Dominic NEW
Francesco X NestleArgentinaAsiya Javayant RENEWAL
Salvatore K KolmetzAustraliaStephen Shaw NEGOTIATION
Misaki P MaletUnited KingdomAnna Fali PROPOSAL
Ricardo E GillianUnited KingdomElwin Sharvill NEW
Alejandro P StockhamUnited KingdomBernardo Dominic QUALIFIED
David M BowleyItalyStephen Shaw QUALIFIED
Jefferson T MaletCanadaOnyama Limba NEGOTIATION
Faith P GillianFranceElwin Sharvill PROPOSAL
Nicolas V CaldareraJapanIvan Magalhaes NEW
Emily F MaletAustraliaIoni Bowcher NEW
Aditya F SchemmerRussiaXuxue Feng NEGOTIATION
Murillo Q CaldareraItalyStephen Shaw QUALIFIED
Aruna D FerenczBrazilElwin Sharvill NEW
Murillo R RoysterItalyIoni Bowcher UNQUALIFIED
Julie N GarufiSpainXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas M FerenczUnited KingdomIoni Bowcher NEGOTIATION
Rodrigues Q MacleadRussiaElwin Sharvill UNQUALIFIED
Maria U RutaBrazilXuxue Feng QUALIFIED
Aditya U BowleyFranceAnna Fali PROPOSAL
Misaki Q VenereJapanBernardo Dominic NEW
Emily C MorascaBrazilIoni Bowcher UNQUALIFIED
Maria W MaletFranceStephen Shaw QUALIFIED
Arvin L BowleyGermanyAnna Fali PROPOSAL
Leja U PerinArgentinaAmy Elsner NEGOTIATION
Salvatore L DarakjyAustraliaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David A VenereUnited Kingdom2026-07-14Feltz Printing Service RENEWAL33Stephen Shaw
1001Jefferson L PaprockiIndia2026-07-17King, Christopher A Esq NEGOTIATION14Bernardo Dominic
1002Jones B AlbaresBrazil2026-07-13Morlong Associates QUALIFIED79Anna Fali
1003Maria L SergiItaly2026-08-10Dorl, James J Esq UNQUALIFIED29Ivan Magalhaes
1004Costa S InouyeCanada2026-08-08Morlong Associates NEGOTIATION95Ivan Magalhaes
1005Ashley U RimUnited Kingdom2026-08-05Chapman, Ross E Esq PROPOSAL72Xuxue Feng
1006Sinclair H GauchoItaly2026-07-28Chapman, Ross E Esq UNQUALIFIED67Stephen Shaw
1007Deepesh Z IturbideBrazil2026-07-22Morlong Associates NEGOTIATION65Elwin Sharvill
1008Sinclair K GarufiCanada2026-08-06Feiner Bros RENEWAL53Anna Fali
1009Kadeem L OldroydGermany2026-08-11Feltz Printing Service NEW57Onyama Limba
1010Aruna M RutaGermany2026-07-22Chemel, James L Cpa QUALIFIED12Xuxue Feng
1011Ashley P BowleyFrance2026-08-05Morlong Associates NEGOTIATION23Xuxue Feng
1012Juan D OstroskyBrazil2026-08-08Chemel, James L Cpa UNQUALIFIED52Stephen Shaw
1013Arvin Y BowleyUnited Kingdom2026-07-14Feiner Bros UNQUALIFIED32Bernardo Dominic
1014Juan R ChuiUnited Kingdom2026-08-06Commercial Press NEGOTIATION0Xuxue Feng
1015Leja V GauchoRussia2026-07-18Benton, John B Jr QUALIFIED50Elwin Sharvill
1016Smith B PoquetteJapan2026-07-14Chapman, Ross E Esq NEGOTIATION53Bernardo Dominic
1017Emily B KuskoAustralia2026-07-29Morlong Associates PROPOSAL4Bernardo Dominic
1018Faith W BowleySpain2026-08-07Printing Dimensions RENEWAL55Stephen Shaw
1019Jeanfrancois E WaycottRussia2026-08-04Rousseaux, Michael Esq QUALIFIED89Asiya Javayant
1020Isabel C FerenczGermany2026-07-20Chanay, Jeffrey A Esq PROPOSAL23Xuxue Feng
1021Ricardo Q SaylorsUnited Kingdom2026-08-07Feltz Printing Service RENEWAL90Ioni Bowcher
1022Emily M VocelkaGermany2026-07-29Chanay, Jeffrey A Esq RENEWAL64Onyama Limba
1023Morrow O ShinkoIndia2026-07-25King, Christopher A Esq PROPOSAL48Xuxue Feng
1024Silvio O MorascaCanada2026-07-25Benton, John B Jr NEW30Anna Fali
1025Wickens K MacleadSpain2026-07-15King, Christopher A Esq NEGOTIATION13Anna Fali
1026Octavia U MacleadItaly2026-07-28Buckley Miller Wright NEGOTIATION75Bernardo Dominic
1027Ashley O StockhamArgentina2026-07-27Truhlar And Truhlar Attys NEGOTIATION8Anna Fali
1028Arvin H AmigonRussia2026-08-11Commercial Press NEGOTIATION40Bernardo Dominic
1029Rodrigues P RulapaughCanada2026-08-04Commercial Press RENEWAL42Anna Fali
1030Clifford M SaylorsAustralia2026-07-28Buckley Miller Wright UNQUALIFIED94Elwin Sharvill
1031Stacey A CaudyUnited Kingdom2026-08-07Rousseaux, Michael Esq NEGOTIATION43Xuxue Feng
1032Maria M CaldareraFrance2026-07-26Rousseaux, Michael Esq QUALIFIED79Amy Elsner
1033Rodrigues X FerenczUnited Kingdom2026-07-24Chapman, Ross E Esq RENEWAL44Elwin Sharvill
1034Emily C VocelkaUnited Kingdom2026-07-19Truhlar And Truhlar Attys QUALIFIED46Ioni Bowcher
1035Maisha F NickaAustralia2026-07-17Chanay, Jeffrey A Esq PROPOSAL46Xuxue Feng
1036Alejandro F NickaFrance2026-07-22Dorl, James J Esq NEGOTIATION56Onyama Limba
1037Salvatore M ChuiAustralia2026-08-02Chanay, Jeffrey A Esq PROPOSAL11Anna Fali
1038Salvatore E MarrierCanada2026-07-22Dorl, James J Esq UNQUALIFIED96Anna Fali
1039Darci A TollnerCanada2026-08-02Benton, John B Jr UNQUALIFIED23Elwin Sharvill
1040Johnson A ButtRussia2026-07-28Benton, John B Jr NEGOTIATION35Bernardo Dominic
1041Cody Q WieserArgentina2026-07-29Feltz Printing Service QUALIFIED98Anna Fali
1042Greenwood G MorascaUnited Kingdom2026-07-24Truhlar And Truhlar Attys NEGOTIATION32Stephen Shaw
1043Adams M CaldareraAustralia2026-08-03Chemel, James L Cpa RENEWAL52Ivan Magalhaes
1044Maisha S RimBrazil2026-07-26Rousseaux, Michael Esq RENEWAL4Ivan Magalhaes
1045Emily L RulapaughArgentina2026-07-21Chemel, James L Cpa RENEWAL37Amy Elsner
1046Ivar P KolmetzArgentina2026-08-05Rangoni Of Florence QUALIFIED81Elwin Sharvill
1047Ashley H DoeBrazil2026-07-30Dorl, James J Esq UNQUALIFIED34Anna Fali
1048Julie O PaprockiRussia2026-08-06Chapman, Ross E Esq RENEWAL18Xuxue Feng
1049Leja B VenereGermany2026-08-03Commercial Press QUALIFIED73Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
James K FerenczFranceAmy Elsner UNQUALIFIED
Maisha G RulapaughFranceElwin Sharvill PROPOSAL
Francesco G CaldareraRussiaIoni Bowcher NEGOTIATION
David M OldroydCanadaIvan Magalhaes UNQUALIFIED
Izzy D FollerIndiaIoni Bowcher RENEWAL
Mujtaba Z MorascaItalyXuxue Feng PROPOSAL
Morrow E VenereUnited KingdomAmy Elsner NEGOTIATION
Jennifer J PerinIndiaElwin Sharvill UNQUALIFIED
Silvio T StockhamGermanyBernardo Dominic UNQUALIFIED
Sinclair Y SchemmerIndiaElwin Sharvill NEGOTIATION
Rodrigues F RimBrazilStephen Shaw RENEWAL
Antonio A DilliardCanadaIoni Bowcher RENEWAL
Claire X StensethUnited KingdomAmy Elsner NEW
Mujtaba W BologniaRussiaIoni Bowcher QUALIFIED
Ivar S SergiArgentinaAsiya Javayant UNQUALIFIED
Adams Y StensethAustraliaIvan Magalhaes NEGOTIATION
Cody C DilliardJapanAnna Fali NEGOTIATION
Sinclair K GarufiFranceAsiya Javayant UNQUALIFIED
Mujtaba Y WhobreyItalyStephen Shaw NEGOTIATION
Rodrigues L NickaBrazilAsiya Javayant UNQUALIFIED
Leon L ChuiAustraliaAmy Elsner NEW
Aditya R WhobreySpainAnna Fali NEGOTIATION
Morrow Y VocelkaGermanyAsiya Javayant NEW
Greenwood C SchemmerRussiaIvan Magalhaes UNQUALIFIED
Kaitlin O SchemmerRussiaOnyama Limba NEW
Silvio G SergiIndiaIvan Magalhaes QUALIFIED
Wickens D InouyeAustraliaOnyama Limba PROPOSAL
Ivar T RutaArgentinaAsiya Javayant NEGOTIATION
Morrow O GlickRussiaOnyama Limba UNQUALIFIED
Ricardo E CaldareraGermanyElwin Sharvill NEGOTIATION
Clifford P WieserItalyAnna Fali RENEWAL
Jones B RutaRussiaStephen Shaw NEGOTIATION
Aruna H MacleadGermanyAmy Elsner RENEWAL
Costa R PoquetteRussiaXuxue Feng UNQUALIFIED
Morrow B SaylorsArgentinaOnyama Limba PROPOSAL
Kadeem P StensethIndiaOnyama Limba PROPOSAL
Rodrigues U PerinIndiaAmy Elsner RENEWAL
Ivar Y GillianGermanyXuxue Feng QUALIFIED
Mujtaba P GauchoArgentinaElwin Sharvill UNQUALIFIED
Claire W OstroskySpainAnna Fali NEW
Clifford W SaylorsFranceBernardo Dominic NEW
Ricardo C BowleyArgentinaElwin Sharvill NEW
Murillo L BowleyJapanAmy Elsner UNQUALIFIED
Kaitlin L ButtCanadaOnyama Limba NEW
Isabel N SchemmerIndiaAnna Fali RENEWAL
Smith H CaldareraAustraliaElwin Sharvill RENEWAL
David M OstroskyBrazilOnyama Limba QUALIFIED
Antonio A RoysterBrazilOnyama Limba UNQUALIFIED
Leon Y MaletGermanyAmy Elsner NEW
Adams M WieserUnited KingdomAmy Elsner QUALIFIED
Frozen Columns
Name
Sinclair L Marrier
Francesco O Slusarski
Aruna E Gillian
Munro C Glick
Salvatore C Ferencz
Jones Z Maclead
Cody B Slusarski
Misaki J Ostrosky
Julie W Marrier
Adams I Morasca
Costa B Iturbide
Stacey E Caudy
Cody B Darakjy
Tony O Garufi
Clifford T Chui
Ivar U Malet
Maisha S Perin
Tony F Chui
Cody T Schemmer
Aditya W Ruta
David X Stockham
Johnson Y Waycott
Jones T Bowley
Aditya W Maclead
Ricardo G Rim
Ashley R Caudy
Johnson U Gillian
Juan E Amigon
Francesco L Oldroyd
David A Gaucho
Claire D Ferencz
Arvin G Slusarski
James E Caudy
Isabel T Briddick
Julie L Foller
Kaitlin N Rulapaugh
Deepesh J Doe
Costa K Butt
Cody Y Royster
Ivar C Kolmetz
Francesco X Waycott
James N Dilliard
Maisha Z Schemmer
Aditya L Tollner
James L Wieser
Jefferson Y Waycott
Faith C Schemmer
Aika E Stenseth
Smith W Glick
Clifford M Gillian
IdCountryDate
1000India2026-08-04
1001India2026-07-19
1002Spain2026-07-15
1003Canada2026-07-13
1004Brazil2026-08-07
1005Japan2026-07-20
1006India2026-07-24
1007Germany2026-08-10
1008Spain2026-08-07
1009Spain2026-07-24
1010India2026-08-08
1011Japan2026-08-03
1012Russia2026-07-21
1013Canada2026-08-07
1014Italy2026-08-05
1015Australia2026-07-25
1016India2026-07-27
1017France2026-07-24
1018Germany2026-07-22
1019Spain2026-08-04
1020United Kingdom2026-07-25
1021Russia2026-07-29
1022Canada2026-07-23
1023India2026-07-14
1024Spain2026-07-29
1025Argentina2026-07-28
1026Australia2026-08-11
1027France2026-08-05
1028India2026-07-17
1029Japan2026-07-28
1030Brazil2026-07-17
1031India2026-07-28
1032Argentina2026-07-25
1033France2026-07-31
1034India2026-07-22
1035Japan2026-08-10
1036Russia2026-07-18
1037Japan2026-08-11
1038India2026-08-10
1039Canada2026-07-26
1040Italy2026-07-17
1041Russia2026-08-02
1042Brazil2026-07-17
1043United Kingdom2026-07-17
1044Russia2026-07-29
1045Argentina2026-07-21
1046Germany2026-08-09
1047Australia2026-07-24
1048Russia2026-07-23
1049Germany2026-08-06

On-Demand Data

NameIdCountryDate
Morrow V Garufi1000Russia2026-07-17
James A Tollner1001Australia2026-08-01
Wickens B Ferencz1002United Kingdom2026-07-18
Clifford K Gaucho1003United Kingdom2026-08-03
Cody N Albares1004United Kingdom2026-07-26
Cody O Albares1005Russia2026-07-14
Jefferson P Slusarski1006France2026-07-22
Sinclair P Glick1007France2026-07-21
Antonio H Nicka1008Brazil2026-07-30
Arvin J Bolognia1009Japan2026-07-30
Juan Z Slusarski1010France2026-07-19
Emily C Caudy1011United Kingdom2026-08-02
Antonio N Paprocki1012France2026-08-04
Clifford B Foller1013Italy2026-07-14
Maisha B Kusko1014France2026-08-02
James W Paprocki1015Australia2026-07-22
Tony D Malet1016Spain2026-07-16
Jones B Figeroa1017Russia2026-07-24
Morrow A Shinko1018Russia2026-07-20
Aditya Y Venere1019Japan2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba R SchemmerItalyBernardo Dominic PROPOSAL
Mujtaba P KolmetzRussiaAsiya Javayant PROPOSAL
Murillo Q RoysterCanadaIoni Bowcher PROPOSAL
Clifford C BriddickIndiaStephen Shaw PROPOSAL
Silvio H RoysterJapanElwin Sharvill NEW
Stacey U ShinkoAustraliaIvan Magalhaes QUALIFIED
Kaitlin Y OldroydSpainIvan Magalhaes NEW
Juan I DoeArgentinaOnyama Limba QUALIFIED
Kaitlin T GillianArgentinaIvan Magalhaes NEGOTIATION
Faith B CampainArgentinaAsiya Javayant PROPOSAL
Aruna M GarufiSpainElwin Sharvill UNQUALIFIED
Kaitlin J NickaRussiaIoni Bowcher NEGOTIATION
Morrow L BowleyAustraliaIoni Bowcher PROPOSAL
Claire T GauchoSpainXuxue Feng QUALIFIED
Johnson C BriddickBrazilIvan Magalhaes UNQUALIFIED
Wickens Z RoysterJapanAmy Elsner UNQUALIFIED
Ashley P DilliardSpainBernardo Dominic QUALIFIED
Cody F InouyeItalyIoni Bowcher RENEWAL
Juan V BologniaJapanAmy Elsner QUALIFIED
Arvin C StockhamRussiaElwin Sharvill PROPOSAL
Rodrigues E StensethItalyAsiya Javayant NEW
Silvio N MarrierCanadaStephen Shaw NEGOTIATION
Mayumi P AmigonGermanyIvan Magalhaes PROPOSAL
Ashley Z BologniaCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois V SchemmerJapanAnna Fali NEW
Juan V NickaSpainBernardo Dominic NEW
Arvin Q MorascaArgentinaElwin Sharvill QUALIFIED
Mujtaba J SaylorsIndiaIoni Bowcher NEW
Munro L AlbaresItalyStephen Shaw RENEWAL
Arvin O ButtAustraliaIoni Bowcher PROPOSAL
Smith U MaletBrazilIvan Magalhaes PROPOSAL
Julie Y CaudySpainBernardo Dominic NEGOTIATION
Mujtaba D OldroydJapanAnna Fali UNQUALIFIED
Jennifer F StensethIndiaAnna Fali NEW
Ivar S FigeroaRussiaBernardo Dominic UNQUALIFIED
Greenwood G MorascaGermanyIoni Bowcher RENEWAL
Julie N VenereSpainStephen Shaw UNQUALIFIED
Wickens A PaprockiBrazilBernardo Dominic NEW
Salvatore L SlusarskiAustraliaBernardo Dominic PROPOSAL
Chavez Y AmigonItalyStephen Shaw 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>