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
Aditya G CaudyFranceStephen Shaw RENEWAL
Ivar K ShinkoRussiaXuxue Feng NEW
Greenwood B RoysterAustraliaAsiya Javayant NEW
Leon Q TollnerJapanAmy Elsner UNQUALIFIED
Arvin P RimIndiaIoni Bowcher PROPOSAL
Jeanfrancois A StensethFranceStephen Shaw NEW
Jeanfrancois E RutaUnited KingdomAmy Elsner NEGOTIATION
Jennifer T NestleBrazilAmy Elsner QUALIFIED
Jefferson V MarrierFranceAnna Fali NEGOTIATION
Kaitlin C ChuiSpainOnyama Limba RENEWAL
Adams B CampainArgentinaIoni Bowcher RENEWAL
Johnson P VenereArgentinaAsiya Javayant QUALIFIED
Cody B StockhamIndiaBernardo Dominic PROPOSAL
Darci D ShinkoIndiaOnyama Limba NEW
Jefferson L StensethUnited KingdomStephen Shaw QUALIFIED
Wickens B TollnerArgentinaXuxue Feng RENEWAL
Jones D OstroskyJapanStephen Shaw PROPOSAL
Adams F MarrierSpainBernardo Dominic UNQUALIFIED
Wickens X StensethGermanyAnna Fali NEGOTIATION
Nicolas R CaudyArgentinaElwin Sharvill PROPOSAL
Faith F RoysterIndiaOnyama Limba QUALIFIED
Isabel P FigeroaJapanAsiya Javayant NEGOTIATION
Ivar Y NestleIndiaIvan Magalhaes RENEWAL
Emily F KolmetzBrazilIoni Bowcher PROPOSAL
Mayumi L NestleArgentinaIoni Bowcher NEGOTIATION
Mayumi V RulapaughItalyXuxue Feng NEW
Misaki S GillianAustraliaBernardo Dominic PROPOSAL
Jennifer Q FigeroaJapanAsiya Javayant PROPOSAL
Jennifer W KolmetzItalyElwin Sharvill PROPOSAL
Julie S ButtArgentinaStephen Shaw RENEWAL
Juan V OstroskyJapanAsiya Javayant NEGOTIATION
Izzy H TollnerGermanyXuxue Feng NEGOTIATION
Sinclair N IturbideItalyStephen Shaw NEW
Emily B RoysterSpainOnyama Limba UNQUALIFIED
Izzy O PaprockiBrazilXuxue Feng UNQUALIFIED
Smith A RoysterRussiaAsiya Javayant RENEWAL
Smith I FerenczIndiaStephen Shaw NEW
Deepesh B ChuiIndiaStephen Shaw UNQUALIFIED
Aika L VenereAustraliaElwin Sharvill NEGOTIATION
Jones A KolmetzFranceIvan Magalhaes RENEWAL
Adams B DilliardUnited KingdomStephen Shaw PROPOSAL
Aika Q WieserArgentinaXuxue Feng UNQUALIFIED
Murillo N RutaRussiaOnyama Limba NEGOTIATION
Arvin M InouyeGermanyAmy Elsner NEGOTIATION
Octavia C TollnerCanadaAnna Fali UNQUALIFIED
Chavez W RutaSpainAnna Fali NEW
Alejandro V PoquetteJapanOnyama Limba UNQUALIFIED
Claire N MaletBrazilElwin Sharvill RENEWAL
Sinclair Z BowleyIndiaIvan Magalhaes RENEWAL
Salvatore S RimGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood V BriddickUnited KingdomAsiya Javayant QUALIFIED
Morrow P FollerCanadaStephen Shaw UNQUALIFIED
Ricardo K CaldareraBrazilAnna Fali QUALIFIED
Jones A AmigonUnited KingdomOnyama Limba NEGOTIATION
Murillo V ShinkoIndiaAmy Elsner QUALIFIED
Aditya I AlbaresJapanIoni Bowcher NEW
Aika V CaudyAustraliaAsiya Javayant UNQUALIFIED
Aruna K ButtCanadaAnna Fali QUALIFIED
Stacey H PerinUnited KingdomIvan Magalhaes NEGOTIATION
Leon L SchemmerBrazilElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson P SaylorsItaly2026-08-06King, Christopher A Esq RENEWAL75Ioni Bowcher
1001Tony H NestleItaly2026-07-31Dorl, James J Esq NEW97Asiya Javayant
1002Leja A CaudySpain2026-08-08Feltz Printing Service PROPOSAL27Asiya Javayant
1003Chavez M PaprockiAustralia2026-08-05King, Christopher A Esq PROPOSAL69Anna Fali
1004Tony X AmigonGermany2026-08-01Chapman, Ross E Esq UNQUALIFIED6Amy Elsner
1005Wickens W BriddickIndia2026-07-21Truhlar And Truhlar Attys PROPOSAL26Ivan Magalhaes
1006Ashley A VocelkaItaly2026-07-18Rousseaux, Michael Esq PROPOSAL11Ioni Bowcher
1007Aditya D NickaArgentina2026-07-15Rangoni Of Florence NEGOTIATION34Bernardo Dominic
1008Antonio W KuskoCanada2026-07-25Feltz Printing Service UNQUALIFIED78Stephen Shaw
1009Ricardo Q PoquetteCanada2026-07-23Rousseaux, Michael Esq QUALIFIED45Stephen Shaw
1010Faith F OstroskyIndia2026-07-19Rangoni Of Florence PROPOSAL72Asiya Javayant
1011Chavez E DoeCanada2026-07-26Chanay, Jeffrey A Esq NEW7Ivan Magalhaes
1012Silvio S TollnerGermany2026-07-20Chanay, Jeffrey A Esq QUALIFIED22Ioni Bowcher
1013Claire T ChuiCanada2026-08-03Commercial Press QUALIFIED6Xuxue Feng
1014Cody R KolmetzFrance2026-07-16Morlong Associates RENEWAL98Stephen Shaw
1015Leon C SchemmerCanada2026-07-21Buckley Miller Wright UNQUALIFIED91Anna Fali
1016Jones J IturbideBrazil2026-07-18Chapman, Ross E Esq UNQUALIFIED68Onyama Limba
1017Munro X SaylorsJapan2026-07-16Chemel, James L Cpa NEW67Xuxue Feng
1018Misaki P KuskoBrazil2026-08-08Benton, John B Jr NEGOTIATION6Ioni Bowcher
1019Emily Z PaprockiIndia2026-08-08Chemel, James L Cpa NEGOTIATION12Ioni Bowcher
1020Nicolas D NestleIndia2026-07-26Rousseaux, Michael Esq PROPOSAL43Ivan Magalhaes
1021Izzy S CampainRussia2026-08-07Chemel, James L Cpa PROPOSAL4Elwin Sharvill
1022Isabel Z PerinBrazil2026-07-21Dorl, James J Esq PROPOSAL72Xuxue Feng
1023Kadeem X GillianItaly2026-07-20Feiner Bros PROPOSAL19Bernardo Dominic
1024Rodrigues C VenereSpain2026-07-18Feltz Printing Service NEGOTIATION25Xuxue Feng
1025Aditya Q RimJapan2026-08-01Feltz Printing Service NEW95Amy Elsner
1026Silvio G PoquetteAustralia2026-07-27Benton, John B Jr QUALIFIED24Ivan Magalhaes
1027Johnson S MacleadAustralia2026-07-24Benton, John B Jr PROPOSAL83Elwin Sharvill
1028Silvio H NestleGermany2026-07-20Morlong Associates RENEWAL97Xuxue Feng
1029Rodrigues A GillianFrance2026-08-01Chapman, Ross E Esq UNQUALIFIED49Amy Elsner
1030Mayumi V KuskoJapan2026-07-23Feltz Printing Service NEGOTIATION17Anna Fali
1031Aika C GauchoRussia2026-08-03Rangoni Of Florence PROPOSAL39Stephen Shaw
1032Mayumi C GillianFrance2026-07-21Printing Dimensions NEGOTIATION94Anna Fali
1033Mayumi P RulapaughJapan2026-07-31Rousseaux, Michael Esq PROPOSAL79Ivan Magalhaes
1034Rodrigues S WhobreyArgentina2026-07-23Commercial Press UNQUALIFIED23Ioni Bowcher
1035Wickens V OldroydGermany2026-08-01Benton, John B Jr UNQUALIFIED43Elwin Sharvill
1036Salvatore E FigeroaSpain2026-07-23Feiner Bros NEGOTIATION20Bernardo Dominic
1037Aruna E BriddickIndia2026-07-17Buckley Miller Wright RENEWAL27Ivan Magalhaes
1038Aika H GlickBrazil2026-08-06Rousseaux, Michael Esq UNQUALIFIED45Xuxue Feng
1039Francesco B RoysterGermany2026-07-26Buckley Miller Wright NEGOTIATION30Onyama Limba
1040Isabel E ChuiCanada2026-08-02Printing Dimensions QUALIFIED26Onyama Limba
1041Jennifer G PaprockiFrance2026-07-27Feiner Bros NEGOTIATION60Stephen Shaw
1042Smith I SergiArgentina2026-08-03Feiner Bros PROPOSAL34Elwin Sharvill
1043Aika S SlusarskiUnited Kingdom2026-07-16Feiner Bros NEGOTIATION23Amy Elsner
1044Murillo R ShinkoArgentina2026-08-02Rangoni Of Florence QUALIFIED93Asiya Javayant
1045Clifford E MacleadRussia2026-08-09Morlong Associates UNQUALIFIED85Bernardo Dominic
1046James B CaudyCanada2026-07-14Chapman, Ross E Esq NEGOTIATION62Elwin Sharvill
1047Sinclair B RoysterArgentina2026-07-31Chemel, James L Cpa UNQUALIFIED9Stephen Shaw
1048Adams Z ButtFrance2026-07-13Morlong Associates QUALIFIED87Amy Elsner
1049Aruna D GauchoFrance2026-07-12Chemel, James L Cpa QUALIFIED78Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ashley I DarakjyGermanyOnyama Limba PROPOSAL
Emily S SaylorsFranceIoni Bowcher UNQUALIFIED
Smith O FollerItalyElwin Sharvill NEW
Maria X KuskoSpainIoni Bowcher PROPOSAL
Aruna E CaudyItalyIvan Magalhaes NEGOTIATION
Cody Y WieserRussiaAmy Elsner QUALIFIED
Alejandro Q GlickBrazilElwin Sharvill PROPOSAL
Emily J BowleyUnited KingdomAnna Fali PROPOSAL
Francesco G MaletFranceIvan Magalhaes NEW
Munro X MacleadArgentinaOnyama Limba UNQUALIFIED
Isabel Q AmigonCanadaAmy Elsner RENEWAL
Smith A MaletBrazilElwin Sharvill QUALIFIED
Isabel K AlbaresRussiaAsiya Javayant QUALIFIED
Alejandro Z SaylorsBrazilElwin Sharvill NEW
Octavia V ChuiAustraliaStephen Shaw QUALIFIED
Mayumi F ShinkoIndiaIoni Bowcher QUALIFIED
Leon T NickaJapanAnna Fali UNQUALIFIED
David V ButtJapanStephen Shaw RENEWAL
Leon H GillianUnited KingdomAmy Elsner PROPOSAL
Jones J RutaUnited KingdomIoni Bowcher NEW
Francesco H BowleyUnited KingdomBernardo Dominic PROPOSAL
Johnson Y GillianJapanStephen Shaw QUALIFIED
Nicolas K DarakjyCanadaXuxue Feng PROPOSAL
Octavia P DarakjyGermanyAnna Fali PROPOSAL
Silvio J IturbideGermanyAnna Fali QUALIFIED
Leon K NestleBrazilXuxue Feng NEGOTIATION
Jones M GillianFranceElwin Sharvill QUALIFIED
Chavez Z FlosiAustraliaAmy Elsner NEGOTIATION
Chavez K DoeBrazilBernardo Dominic NEGOTIATION
Deepesh B RutaJapanStephen Shaw PROPOSAL
Emily Q PaprockiArgentinaAmy Elsner QUALIFIED
Smith D SergiBrazilStephen Shaw NEW
Adams T GauchoSpainAnna Fali NEGOTIATION
Jennifer R FollerRussiaElwin Sharvill UNQUALIFIED
Costa J TollnerJapanIvan Magalhaes QUALIFIED
Mujtaba D CampainBrazilAnna Fali UNQUALIFIED
Maisha C PerinUnited KingdomElwin Sharvill UNQUALIFIED
Johnson I StockhamCanadaAmy Elsner QUALIFIED
Nicolas G ButtItalyIvan Magalhaes NEW
Mayumi I DilliardFranceOnyama Limba RENEWAL
Nicolas J PerinGermanyAsiya Javayant NEW
Morrow L BowleyIndiaXuxue Feng UNQUALIFIED
Misaki G DarakjyFranceOnyama Limba QUALIFIED
Julie R DilliardSpainIvan Magalhaes NEGOTIATION
Rodrigues I PerinAustraliaAsiya Javayant RENEWAL
Ricardo G ButtArgentinaIoni Bowcher PROPOSAL
Sinclair U RulapaughSpainElwin Sharvill NEW
Chavez R GarufiRussiaElwin Sharvill NEGOTIATION
Faith X OstroskyFranceAnna Fali NEGOTIATION
Leon J FlosiRussiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Mujtaba V Morasca
Jennifer P Stenseth
Aditya Y Stenseth
Leja T Vocelka
Sinclair H Poquette
Deepesh S Vocelka
Salvatore T Campain
Francesco S Flosi
David X Iturbide
Francesco Z Caudy
Morrow Y Ferencz
Juan W Sergi
Leja B Venere
Mujtaba A Morasca
Juan Q Stenseth
Ricardo U Caldarera
Izzy K Marrier
Octavia L Kolmetz
Sinclair T Caudy
Francesco K Ferencz
Faith D Royster
Wickens Z Maclead
Stacey F Figeroa
Mujtaba H Malet
Ashley S Vocelka
Sinclair F Wieser
Silvio M Wieser
Ivar Y Venere
Ashley S Royster
Ivar B Perin
Jones U Foller
Aruna P Ferencz
Emily O Chui
Leon K Flosi
Clifford X Kolmetz
Clifford E Paprocki
Isabel L Kusko
Juan F Kolmetz
Adams K Glick
Cody Q Figeroa
Claire H Saylors
Johnson D Malet
David U Paprocki
Morrow I Ferencz
Arvin O Marrier
Silvio B Tollner
Julie T Paprocki
Emily H Rim
Johnson C Royster
Salvatore N Chui
IdCountryDate
1000Japan2026-07-31
1001Russia2026-07-17
1002Germany2026-07-22
1003Spain2026-08-10
1004Germany2026-07-29
1005Japan2026-08-06
1006Brazil2026-07-14
1007India2026-07-28
1008France2026-07-23
1009Australia2026-07-30
1010Italy2026-07-28
1011Canada2026-07-25
1012France2026-07-28
1013Canada2026-07-17
1014Brazil2026-07-13
1015Australia2026-07-28
1016Spain2026-08-08
1017Spain2026-07-20
1018Japan2026-08-03
1019United Kingdom2026-07-17
1020United Kingdom2026-07-23
1021Argentina2026-07-22
1022Argentina2026-08-04
1023India2026-08-04
1024France2026-07-23
1025Japan2026-07-19
1026India2026-07-21
1027Canada2026-07-17
1028Brazil2026-08-01
1029India2026-07-23
1030India2026-08-07
1031Brazil2026-07-27
1032Germany2026-07-13
1033Brazil2026-08-10
1034Brazil2026-07-17
1035United Kingdom2026-07-14
1036United Kingdom2026-08-06
1037Germany2026-07-23
1038Italy2026-07-24
1039Spain2026-07-28
1040United Kingdom2026-08-04
1041Japan2026-08-02
1042Russia2026-08-08
1043Argentina2026-07-21
1044Italy2026-08-08
1045United Kingdom2026-08-06
1046Argentina2026-08-08
1047Italy2026-07-18
1048United Kingdom2026-08-02
1049Russia2026-07-22

On-Demand Data

NameIdCountryDate
Smith V Inouye1000India2026-07-15
Chavez R Whobrey1001France2026-07-25
Faith S Shinko1002Australia2026-07-15
Aika B Ruta1003Japan2026-08-03
Ricardo Q Saylors1004France2026-08-05
Emily Y Schemmer1005India2026-07-12
Alejandro F Caldarera1006Canada2026-08-03
Costa R Wieser1007Russia2026-07-29
Faith P Poquette1008Spain2026-07-23
Wickens S Caldarera1009Japan2026-07-25
Smith X Perin1010Brazil2026-07-21
Smith C Waycott1011United Kingdom2026-07-22
Aika D Stenseth1012Germany2026-07-13
Aruna I Ferencz1013Germany2026-07-24
Aruna I Perin1014India2026-08-03
Mayumi U Butt1015India2026-08-10
Jones U Garufi1016Argentina2026-07-22
Jeanfrancois M Caudy1017Brazil2026-07-16
Munro M Rulapaugh1018India2026-08-04
Aruna P Royster1019India2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon H TollnerJapanBernardo Dominic NEGOTIATION
Munro D SchemmerJapanAmy Elsner NEGOTIATION
Mayumi G BowleyGermanyAmy Elsner QUALIFIED
Costa G SergiGermanyAnna Fali PROPOSAL
Jeanfrancois C MaletItalyAnna Fali PROPOSAL
Mujtaba T ShinkoArgentinaXuxue Feng PROPOSAL
Rodrigues J MorascaSpainElwin Sharvill NEW
Rodrigues Y StockhamUnited KingdomAmy Elsner NEW
Mujtaba A GauchoAustraliaXuxue Feng QUALIFIED
Sinclair Y RoysterUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson L NestleItalyIvan Magalhaes UNQUALIFIED
Ricardo E ButtAustraliaAsiya Javayant NEGOTIATION
Mujtaba A KolmetzRussiaAnna Fali RENEWAL
Costa X WhobreyJapanOnyama Limba UNQUALIFIED
Jennifer S DarakjyAustraliaAmy Elsner PROPOSAL
Antonio A WhobreyRussiaAmy Elsner QUALIFIED
Costa B PoquetteUnited KingdomAsiya Javayant PROPOSAL
Jefferson L BowleyBrazilXuxue Feng NEW
Isabel M GlickJapanElwin Sharvill RENEWAL
Jennifer M PaprockiIndiaBernardo Dominic UNQUALIFIED
Leon O ChuiAustraliaOnyama Limba PROPOSAL
Kaitlin V MorascaAustraliaIoni Bowcher QUALIFIED
Ricardo N NestleJapanStephen Shaw NEGOTIATION
Ricardo V CaudyRussiaXuxue Feng RENEWAL
Alejandro U PoquetteGermanyXuxue Feng RENEWAL
Kaitlin F CampainUnited KingdomIoni Bowcher QUALIFIED
Maisha O InouyeFranceAmy Elsner NEGOTIATION
Murillo X WhobreyIndiaAsiya Javayant NEGOTIATION
Cody C MarrierItalyStephen Shaw NEW
Antonio R MorascaBrazilIvan Magalhaes RENEWAL
Faith L WieserJapanStephen Shaw PROPOSAL
Ivar I FerenczArgentinaXuxue Feng NEGOTIATION
Smith O DoeArgentinaAsiya Javayant RENEWAL
Munro G SchemmerUnited KingdomStephen Shaw NEGOTIATION
Isabel C WieserGermanyOnyama Limba PROPOSAL
Jones D SergiRussiaAmy Elsner QUALIFIED
Maria B StockhamSpainElwin Sharvill NEGOTIATION
Julie H MaletCanadaOnyama Limba UNQUALIFIED
Silvio T TollnerBrazilXuxue Feng UNQUALIFIED
Ivar A FigeroaBrazilBernardo Dominic QUALIFIED

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