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
Jefferson A KuskoCanadaElwin Sharvill NEGOTIATION
Ricardo U FerenczIndiaBernardo Dominic NEW
Greenwood R WieserFranceAsiya Javayant QUALIFIED
Stacey W CaldareraIndiaIvan Magalhaes PROPOSAL
Jeanfrancois L StensethSpainBernardo Dominic PROPOSAL
Maria M PaprockiRussiaAmy Elsner NEW
Izzy F WieserItalyIvan Magalhaes QUALIFIED
Salvatore X VocelkaCanadaXuxue Feng NEW
Darci X SaylorsFranceBernardo Dominic UNQUALIFIED
Murillo Y DilliardUnited KingdomOnyama Limba NEW
Costa X WaycottAustraliaAsiya Javayant QUALIFIED
Misaki N KuskoGermanyAsiya Javayant PROPOSAL
Octavia W GarufiItalyAsiya Javayant NEGOTIATION
Smith I ShinkoRussiaElwin Sharvill QUALIFIED
Sinclair O ShinkoSpainElwin Sharvill NEGOTIATION
Jennifer G FerenczArgentinaOnyama Limba UNQUALIFIED
Leja V FollerIndiaIoni Bowcher UNQUALIFIED
Claire X ButtJapanOnyama Limba NEGOTIATION
Izzy I ShinkoAustraliaElwin Sharvill PROPOSAL
Misaki S FerenczSpainStephen Shaw NEGOTIATION
Jefferson D CampainUnited KingdomAmy Elsner RENEWAL
Octavia N KuskoAustraliaXuxue Feng RENEWAL
Munro W CaudyCanadaStephen Shaw NEW
Arvin K DoeJapanIvan Magalhaes PROPOSAL
Johnson D SergiArgentinaAmy Elsner RENEWAL
Jefferson W BologniaArgentinaBernardo Dominic NEW
Darci R FollerRussiaAsiya Javayant QUALIFIED
Smith O RimBrazilXuxue Feng RENEWAL
Leja O DoeUnited KingdomAsiya Javayant PROPOSAL
Chavez T AlbaresBrazilAmy Elsner NEGOTIATION
Deepesh U WhobreyGermanyElwin Sharvill UNQUALIFIED
Stacey X FigeroaAustraliaStephen Shaw NEW
Alejandro Q IturbideCanadaIoni Bowcher QUALIFIED
Tony V PoquetteJapanIvan Magalhaes NEW
Nicolas S IturbideAustraliaAsiya Javayant NEW
Sinclair N SchemmerFranceIoni Bowcher RENEWAL
Claire G DilliardIndiaOnyama Limba PROPOSAL
Silvio L TollnerUnited KingdomAmy Elsner UNQUALIFIED
Claire O BowleyCanadaStephen Shaw NEGOTIATION
Claire Z CampainRussiaStephen Shaw PROPOSAL
Kadeem J ChuiFranceIoni Bowcher RENEWAL
Deepesh B FerenczItalyAmy Elsner NEW
Stacey C PerinIndiaBernardo Dominic NEW
Smith M SlusarskiIndiaIoni Bowcher QUALIFIED
Misaki R RulapaughSpainAsiya Javayant RENEWAL
Morrow J FollerJapanAnna Fali RENEWAL
Aruna S SlusarskiGermanyAsiya Javayant RENEWAL
Izzy R NickaGermanyAsiya Javayant NEGOTIATION
Tony Y WieserArgentinaElwin Sharvill UNQUALIFIED
Faith C IturbideFranceIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aika I MacleadItalyStephen Shaw UNQUALIFIED
Mayumi A FlosiArgentinaIoni Bowcher NEW
Antonio H RoysterCanadaElwin Sharvill QUALIFIED
Johnson B VocelkaJapanIvan Magalhaes PROPOSAL
Silvio E ButtJapanXuxue Feng NEGOTIATION
Tony Z DarakjyIndiaBernardo Dominic QUALIFIED
Wickens A MarrierArgentinaAnna Fali NEW
Jefferson X InouyeUnited KingdomIoni Bowcher NEGOTIATION
Sinclair I DilliardUnited KingdomOnyama Limba NEW
Antonio Z AlbaresRussiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues N RimAustralia2026-08-17Commercial Press NEW9Elwin Sharvill
1001Greenwood C DarakjyItaly2026-08-07Truhlar And Truhlar Attys RENEWAL22Elwin Sharvill
1002Leon O NickaUnited Kingdom2026-08-04Feiner Bros RENEWAL7Ioni Bowcher
1003Smith B ButtBrazil2026-07-28Buckley Miller Wright QUALIFIED88Asiya Javayant
1004Kaitlin Y VenereItaly2026-08-10Feiner Bros NEW48Amy Elsner
1005Johnson B WieserGermany2026-08-02Feltz Printing Service NEGOTIATION72Ivan Magalhaes
1006Jennifer G DilliardRussia2026-08-10Printing Dimensions PROPOSAL72Ivan Magalhaes
1007Aditya K InouyeGermany2026-08-14Morlong Associates UNQUALIFIED72Elwin Sharvill
1008Greenwood X RulapaughRussia2026-08-06Feiner Bros UNQUALIFIED35Onyama Limba
1009Chavez N VocelkaCanada2026-08-11Morlong Associates NEGOTIATION0Asiya Javayant
1010Sinclair I WaycottBrazil2026-08-08Dorl, James J Esq QUALIFIED47Bernardo Dominic
1011Clifford W SergiBrazil2026-08-24Buckley Miller Wright RENEWAL90Asiya Javayant
1012Antonio K FlosiCanada2026-08-01Benton, John B Jr UNQUALIFIED46Ivan Magalhaes
1013Rodrigues W IturbideCanada2026-08-01Feiner Bros QUALIFIED41Ivan Magalhaes
1014Chavez V KuskoFrance2026-08-24Rangoni Of Florence UNQUALIFIED32Onyama Limba
1015Tony F GillianAustralia2026-07-30Buckley Miller Wright RENEWAL32Asiya Javayant
1016Jones F MaletItaly2026-08-05Morlong Associates NEGOTIATION11Stephen Shaw
1017Silvio O SlusarskiFrance2026-08-13Chapman, Ross E Esq NEW24Onyama Limba
1018Johnson F SergiFrance2026-07-29Feltz Printing Service QUALIFIED45Anna Fali
1019Deepesh O RulapaughCanada2026-08-21Chemel, James L Cpa PROPOSAL1Ivan Magalhaes
1020Aruna C DoeAustralia2026-07-31Chanay, Jeffrey A Esq QUALIFIED52Elwin Sharvill
1021Stacey J GarufiSpain2026-07-28Feiner Bros RENEWAL44Stephen Shaw
1022Isabel D CaldareraGermany2026-08-03Commercial Press QUALIFIED79Onyama Limba
1023Alejandro C MaletArgentina2026-07-28Rangoni Of Florence RENEWAL13Elwin Sharvill
1024Deepesh M WaycottUnited Kingdom2026-07-28Feiner Bros UNQUALIFIED85Bernardo Dominic
1025Jeanfrancois M MaletUnited Kingdom2026-08-22Morlong Associates NEW53Elwin Sharvill
1026Maria A RimUnited Kingdom2026-08-24Rousseaux, Michael Esq NEGOTIATION4Amy Elsner
1027David X VocelkaAustralia2026-08-09Chemel, James L Cpa UNQUALIFIED30Asiya Javayant
1028David C ChuiGermany2026-08-08Chemel, James L Cpa NEGOTIATION53Onyama Limba
1029Alejandro K PoquetteSpain2026-08-22Feltz Printing Service QUALIFIED41Bernardo Dominic
1030Ivar P AlbaresFrance2026-07-29Benton, John B Jr UNQUALIFIED39Xuxue Feng
1031Jennifer P OstroskyBrazil2026-08-22Truhlar And Truhlar Attys NEGOTIATION27Asiya Javayant
1032Salvatore M StensethItaly2026-08-04Feltz Printing Service RENEWAL44Bernardo Dominic
1033Costa H ShinkoArgentina2026-08-16Feltz Printing Service NEW9Asiya Javayant
1034Mujtaba V MaletArgentina2026-08-05Chapman, Ross E Esq QUALIFIED66Anna Fali
1035Greenwood G VenereFrance2026-08-05Benton, John B Jr PROPOSAL73Stephen Shaw
1036Sinclair I SlusarskiIndia2026-08-11Buckley Miller Wright RENEWAL23Ivan Magalhaes
1037Silvio P VocelkaGermany2026-08-11Buckley Miller Wright NEGOTIATION6Anna Fali
1038Octavia J ChuiSpain2026-08-08Morlong Associates UNQUALIFIED73Xuxue Feng
1039Francesco L BologniaCanada2026-08-25Printing Dimensions NEW21Elwin Sharvill
1040Misaki N NestleRussia2026-07-29Rangoni Of Florence RENEWAL68Amy Elsner
1041Faith I BologniaArgentina2026-08-14Dorl, James J Esq RENEWAL20Elwin Sharvill
1042Mujtaba Z IturbideGermany2026-08-07Chanay, Jeffrey A Esq NEW11Ivan Magalhaes
1043Jefferson I PaprockiRussia2026-08-25Rangoni Of Florence PROPOSAL37Asiya Javayant
1044Octavia X GlickRussia2026-08-22King, Christopher A Esq QUALIFIED44Onyama Limba
1045Rodrigues Z TollnerBrazil2026-08-15Commercial Press UNQUALIFIED10Xuxue Feng
1046Smith Z StensethArgentina2026-08-18Rousseaux, Michael Esq NEW11Elwin Sharvill
1047Clifford E GauchoJapan2026-08-12Commercial Press UNQUALIFIED17Amy Elsner
1048Claire F WaycottFrance2026-08-03Printing Dimensions PROPOSAL79Ioni Bowcher
1049Salvatore H BriddickCanada2026-08-18Rangoni Of Florence UNQUALIFIED59Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Darci G ButtItalyAmy Elsner QUALIFIED
Jeanfrancois F BologniaArgentinaElwin Sharvill NEW
Ricardo S WaycottGermanyElwin Sharvill UNQUALIFIED
Isabel W MaletGermanyElwin Sharvill QUALIFIED
Alejandro D IturbideRussiaStephen Shaw QUALIFIED
Murillo L ChuiRussiaStephen Shaw NEGOTIATION
Maisha I ShinkoItalyAnna Fali NEGOTIATION
Juan Z InouyeGermanyBernardo Dominic NEGOTIATION
Aika N ShinkoBrazilOnyama Limba RENEWAL
Munro P FigeroaSpainAnna Fali NEGOTIATION
Darci T StensethIndiaAnna Fali NEW
Morrow A TollnerItalyIvan Magalhaes NEW
Isabel Q OldroydCanadaBernardo Dominic UNQUALIFIED
Kadeem L FigeroaArgentinaAmy Elsner NEW
Johnson V RulapaughArgentinaBernardo Dominic NEW
Claire R RoysterCanadaAnna Fali NEW
Antonio A WieserSpainOnyama Limba NEW
Jones B RimFranceBernardo Dominic NEW
Salvatore S ShinkoFranceOnyama Limba UNQUALIFIED
Aditya L FerenczUnited KingdomIvan Magalhaes NEW
Rodrigues Z GillianItalyStephen Shaw QUALIFIED
Adams Y DarakjyFranceIvan Magalhaes QUALIFIED
Rodrigues T GauchoAustraliaAsiya Javayant UNQUALIFIED
Mujtaba T InouyeUnited KingdomOnyama Limba QUALIFIED
Johnson Z CaudyRussiaAmy Elsner RENEWAL
Darci Y NickaBrazilAnna Fali RENEWAL
Arvin T FerenczUnited KingdomIoni Bowcher RENEWAL
Silvio B IturbideCanadaIvan Magalhaes QUALIFIED
Isabel R RoysterBrazilElwin Sharvill PROPOSAL
Deepesh D StensethBrazilXuxue Feng NEGOTIATION
Maisha S StockhamFranceXuxue Feng NEW
Aruna S PoquetteCanadaAnna Fali UNQUALIFIED
Deepesh J ButtCanadaIvan Magalhaes PROPOSAL
Kadeem S GarufiArgentinaIvan Magalhaes RENEWAL
Claire Q NestleItalyXuxue Feng PROPOSAL
Jennifer Q WieserFranceAnna Fali NEGOTIATION
Deepesh Y WhobreyItalyBernardo Dominic UNQUALIFIED
Adams C InouyeCanadaAnna Fali UNQUALIFIED
Deepesh M RoysterAustraliaOnyama Limba RENEWAL
Greenwood F GillianRussiaStephen Shaw QUALIFIED
Aika P GauchoFranceXuxue Feng QUALIFIED
Juan Q RulapaughUnited KingdomIoni Bowcher QUALIFIED
Smith Y AlbaresGermanyBernardo Dominic UNQUALIFIED
Ivar O RutaGermanyAnna Fali UNQUALIFIED
Mayumi A GillianSpainIvan Magalhaes PROPOSAL
Rodrigues I BologniaBrazilIoni Bowcher RENEWAL
Johnson M ChuiAustraliaElwin Sharvill NEGOTIATION
Tony R FerenczItalyOnyama Limba QUALIFIED
Wickens Y RimItalyAsiya Javayant NEW
Arvin X SaylorsSpainAsiya Javayant RENEWAL
Frozen Columns
Name
Clifford A Malet
Sinclair J Kusko
Jennifer J Sergi
Ivar T Bolognia
Silvio O Briddick
Alejandro E Tollner
Silvio D Iturbide
Octavia U Kusko
Faith N Gaucho
Francesco D Rim
Deepesh A Ruta
Octavia A Nestle
Kadeem H Nestle
Greenwood B Stockham
Cody V Malet
Smith S Gaucho
Claire Y Figeroa
Jennifer E Shinko
Kaitlin R Briddick
Jones P Dilliard
Nicolas J Bolognia
Kadeem V Maclead
Sinclair X Figeroa
James M Shinko
Maisha N Wieser
Silvio S Kolmetz
Costa K Amigon
Rodrigues G Nicka
Jeanfrancois Q Morasca
Kadeem A Inouye
Maria L Campain
Maria D Caudy
Ashley L Malet
Antonio D Kolmetz
Arvin O Saylors
Adams D Maclead
Sinclair I Caldarera
Izzy R Slusarski
Francesco H Whobrey
Claire B Iturbide
Faith P Venere
Maisha H Amigon
Darci I Chui
Alejandro Y Dilliard
Maria I Ferencz
Wickens T Caudy
Francesco Z Oldroyd
Munro F Dilliard
Faith O Perin
Cody Z Slusarski
IdCountryDate
1000Japan2026-08-16
1001Germany2026-08-09
1002Brazil2026-07-30
1003Canada2026-08-18
1004Japan2026-07-31
1005Russia2026-08-13
1006Spain2026-08-17
1007Brazil2026-08-09
1008Japan2026-08-01
1009France2026-08-15
1010India2026-08-19
1011Russia2026-08-06
1012Italy2026-08-13
1013Italy2026-08-17
1014Japan2026-08-01
1015Brazil2026-07-30
1016Italy2026-08-09
1017France2026-08-10
1018Australia2026-08-04
1019Japan2026-08-01
1020Spain2026-07-31
1021Argentina2026-08-13
1022Brazil2026-08-08
1023France2026-08-01
1024Russia2026-08-10
1025Japan2026-08-17
1026Germany2026-08-03
1027Spain2026-08-25
1028Germany2026-08-04
1029Italy2026-08-22
1030India2026-08-23
1031United Kingdom2026-08-19
1032France2026-08-18
1033Brazil2026-08-25
1034Italy2026-08-18
1035India2026-08-12
1036Brazil2026-08-08
1037Argentina2026-08-15
1038India2026-08-19
1039Australia2026-08-15
1040Russia2026-08-18
1041Canada2026-08-20
1042Argentina2026-08-10
1043Brazil2026-08-11
1044United Kingdom2026-08-18
1045India2026-08-23
1046Italy2026-08-01
1047United Kingdom2026-08-22
1048India2026-08-15
1049United Kingdom2026-08-19

On-Demand Data

NameIdCountryDate
Nicolas H Tollner1000Australia2026-08-14
Isabel F Garufi1001Japan2026-07-30
Rodrigues L Ostrosky1002Germany2026-07-30
Kadeem W Ferencz1003Italy2026-07-28
Greenwood A Nicka1004Brazil2026-08-20
Cody V Stenseth1005Russia2026-08-09
Wickens V Ruta1006Brazil2026-07-30
Ivar V Amigon1007India2026-08-09
Kadeem Z Kolmetz1008Germany2026-08-03
Maria E Ostrosky1009Russia2026-08-09
Nicolas E Marrier1010United Kingdom2026-08-02
Chavez Y Inouye1011Argentina2026-08-25
Jennifer N Paprocki1012Spain2026-08-23
Jefferson Y Ostrosky1013Italy2026-08-08
Murillo W Poquette1014Argentina2026-08-15
Ashley O Marrier1015United Kingdom2026-07-29
Mujtaba Z Stenseth1016Spain2026-08-01
Claire Y Inouye1017Canada2026-08-26
Mujtaba A Wieser1018Russia2026-07-29
Alejandro X Butt1019Canada2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna C PerinUnited KingdomElwin Sharvill PROPOSAL
Costa O CaldareraCanadaXuxue Feng RENEWAL
Munro C NickaFranceAsiya Javayant NEW
Antonio O OldroydAustraliaElwin Sharvill NEW
David W RutaGermanyOnyama Limba NEW
Leon J FlosiFranceXuxue Feng PROPOSAL
Emily Q FigeroaGermanyBernardo Dominic NEW
Costa Q GarufiItalyIvan Magalhaes NEGOTIATION
Munro E SaylorsBrazilBernardo Dominic PROPOSAL
Salvatore U GauchoRussiaAnna Fali NEGOTIATION
Jefferson N BriddickIndiaStephen Shaw UNQUALIFIED
Darci E DilliardRussiaOnyama Limba NEW
Alejandro J PerinArgentinaBernardo Dominic UNQUALIFIED
Maisha C MarrierRussiaAmy Elsner PROPOSAL
Ashley K WhobreyFranceStephen Shaw QUALIFIED
Greenwood N MaletIndiaIoni Bowcher RENEWAL
Stacey J PaprockiIndiaStephen Shaw PROPOSAL
Chavez G WaycottSpainBernardo Dominic UNQUALIFIED
Murillo D DilliardArgentinaAsiya Javayant RENEWAL
Antonio N ButtAustraliaBernardo Dominic PROPOSAL
Emily N GauchoGermanyXuxue Feng RENEWAL
Costa F CaudyFranceElwin Sharvill NEW
Aditya P CaldareraBrazilIvan Magalhaes NEW
Ricardo U GillianCanadaOnyama Limba RENEWAL
Adams P MorascaGermanyBernardo Dominic QUALIFIED
Izzy F AmigonItalyAnna Fali NEGOTIATION
Jefferson W KuskoCanadaIvan Magalhaes NEGOTIATION
Chavez D MorascaJapanOnyama Limba UNQUALIFIED
Isabel X BologniaAustraliaAsiya Javayant PROPOSAL
Kaitlin W FlosiIndiaXuxue Feng PROPOSAL
Arvin U RulapaughUnited KingdomBernardo Dominic NEW
Johnson S MaletBrazilIoni Bowcher NEGOTIATION
Stacey R FerenczCanadaOnyama Limba UNQUALIFIED
Stacey U PerinBrazilXuxue Feng NEGOTIATION
Sinclair G WaycottGermanyAsiya Javayant RENEWAL
Ricardo D PaprockiCanadaIvan Magalhaes PROPOSAL
Maria Z MacleadAustraliaAsiya Javayant NEGOTIATION
Mayumi W SaylorsIndiaOnyama Limba NEGOTIATION
Ricardo Z MaletGermanyIvan Magalhaes PROPOSAL
Juan J NickaUnited KingdomElwin Sharvill 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>