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
Faith V MaletArgentinaAnna Fali RENEWAL
Julie F BriddickUnited KingdomIvan Magalhaes PROPOSAL
Jennifer J SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Aruna B MacleadIndiaIvan Magalhaes QUALIFIED
Clifford K TollnerCanadaXuxue Feng QUALIFIED
Cody R OldroydFranceAsiya Javayant UNQUALIFIED
Ashley R ChuiUnited KingdomIvan Magalhaes QUALIFIED
Aruna U BriddickArgentinaOnyama Limba PROPOSAL
Jeanfrancois K CampainAustraliaBernardo Dominic RENEWAL
Costa V SaylorsAustraliaIoni Bowcher RENEWAL
Johnson H AlbaresAustraliaElwin Sharvill PROPOSAL
Maisha V StensethGermanyAsiya Javayant UNQUALIFIED
Rodrigues U CaudyFranceOnyama Limba RENEWAL
Leja U ChuiRussiaAsiya Javayant NEW
Salvatore A SaylorsIndiaAnna Fali PROPOSAL
Claire C SaylorsItalyBernardo Dominic UNQUALIFIED
Ricardo I PoquetteRussiaBernardo Dominic RENEWAL
Munro T DoeBrazilElwin Sharvill RENEWAL
Tony K FerenczCanadaAnna Fali PROPOSAL
Leon E RoysterGermanyAnna Fali RENEWAL
Ivar G StockhamArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois S SergiRussiaIvan Magalhaes PROPOSAL
Ivar W GauchoGermanyAnna Fali NEGOTIATION
Jones F CaudyCanadaOnyama Limba NEW
Jones Y StensethSpainAsiya Javayant RENEWAL
Izzy O AlbaresFranceXuxue Feng UNQUALIFIED
Leon V WhobreyCanadaAnna Fali PROPOSAL
Ivar R AmigonGermanyIoni Bowcher UNQUALIFIED
Faith I ChuiFranceStephen Shaw RENEWAL
Ricardo U DarakjyRussiaOnyama Limba NEW
Faith K SchemmerCanadaIoni Bowcher PROPOSAL
Greenwood A StensethAustraliaStephen Shaw PROPOSAL
Johnson B SergiItalyXuxue Feng UNQUALIFIED
Rodrigues M IturbideAustraliaBernardo Dominic UNQUALIFIED
Aruna D MorascaArgentinaBernardo Dominic NEGOTIATION
Aruna R SergiIndiaElwin Sharvill RENEWAL
Munro H PerinAustraliaAnna Fali UNQUALIFIED
Darci D SaylorsRussiaElwin Sharvill UNQUALIFIED
Emily Y GarufiArgentinaIvan Magalhaes RENEWAL
James C MaletJapanAnna Fali RENEWAL
Ivar N RimFranceBernardo Dominic QUALIFIED
Deepesh O GlickFranceAsiya Javayant PROPOSAL
Ricardo Y PoquetteFranceOnyama Limba UNQUALIFIED
Leon Y InouyeArgentinaBernardo Dominic NEGOTIATION
Leja I FlosiIndiaElwin Sharvill RENEWAL
Mayumi A SchemmerUnited KingdomOnyama Limba NEGOTIATION
Johnson K VenereJapanElwin Sharvill UNQUALIFIED
Murillo C SlusarskiUnited KingdomOnyama Limba NEW
Leja T RoysterUnited KingdomOnyama Limba RENEWAL
Morrow B AlbaresItalyAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa K GlickAustraliaAsiya Javayant QUALIFIED
Murillo R MacleadBrazilIvan Magalhaes NEW
Octavia D BriddickIndiaElwin Sharvill UNQUALIFIED
Jefferson D OstroskyIndiaAsiya Javayant NEGOTIATION
Leon P StockhamGermanyAmy Elsner PROPOSAL
Morrow X RulapaughJapanAnna Fali PROPOSAL
Arvin W IturbideJapanXuxue Feng UNQUALIFIED
Kadeem S PoquetteUnited KingdomOnyama Limba NEGOTIATION
Jennifer I GauchoFranceElwin Sharvill UNQUALIFIED
Sinclair Y VocelkaArgentinaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria S MaletFrance2026-08-08Truhlar And Truhlar Attys RENEWAL50Anna Fali
1001Mayumi Z CaldareraBrazil2026-08-09Feiner Bros NEGOTIATION53Amy Elsner
1002Jeanfrancois S TollnerItaly2026-08-09Buckley Miller Wright PROPOSAL90Onyama Limba
1003Morrow I KolmetzIndia2026-08-18Buckley Miller Wright RENEWAL39Ioni Bowcher
1004Octavia L ChuiIndia2026-08-14Commercial Press PROPOSAL1Anna Fali
1005Francesco G CampainUnited Kingdom2026-08-16Benton, John B Jr RENEWAL60Ivan Magalhaes
1006Sinclair T MorascaArgentina2026-08-05Morlong Associates NEGOTIATION27Ioni Bowcher
1007Ivar B BriddickGermany2026-08-19Rangoni Of Florence NEW44Asiya Javayant
1008Costa E NestleAustralia2026-08-14Feiner Bros RENEWAL28Onyama Limba
1009Darci T GauchoJapan2026-08-19Chanay, Jeffrey A Esq NEGOTIATION7Onyama Limba
1010Munro T CaldareraCanada2026-08-23Rangoni Of Florence NEGOTIATION6Asiya Javayant
1011Ricardo M MaletIndia2026-08-13Morlong Associates UNQUALIFIED29Onyama Limba
1012Jefferson D SergiCanada2026-08-04Benton, John B Jr NEGOTIATION3Xuxue Feng
1013Leon H OldroydAustralia2026-08-27Dorl, James J Esq NEW30Xuxue Feng
1014Julie E MaletAustralia2026-08-08Feiner Bros NEW2Stephen Shaw
1015Kadeem Z CampainGermany2026-08-16Feltz Printing Service PROPOSAL89Asiya Javayant
1016Maria I GlickSpain2026-08-01Benton, John B Jr UNQUALIFIED38Onyama Limba
1017Julie F BriddickUnited Kingdom2026-08-19Printing Dimensions NEW82Bernardo Dominic
1018Jefferson O CaldareraArgentina2026-08-19Buckley Miller Wright QUALIFIED53Xuxue Feng
1019Greenwood S BologniaAustralia2026-08-13Feiner Bros PROPOSAL48Ioni Bowcher
1020Emily V OstroskySpain2026-08-01King, Christopher A Esq NEW98Ivan Magalhaes
1021Kaitlin R RulapaughAustralia2026-08-18Commercial Press RENEWAL70Ioni Bowcher
1022Leon F MaletJapan2026-08-20Rangoni Of Florence UNQUALIFIED57Ioni Bowcher
1023Kadeem G CaudyArgentina2026-08-09Commercial Press UNQUALIFIED77Anna Fali
1024Juan N GillianArgentina2026-08-23Chapman, Ross E Esq NEGOTIATION20Asiya Javayant
1025Jones I StockhamArgentina2026-08-30Buckley Miller Wright RENEWAL56Elwin Sharvill
1026James O PoquetteUnited Kingdom2026-08-13Dorl, James J Esq NEGOTIATION72Asiya Javayant
1027Mujtaba Z WaycottJapan2026-08-25Chapman, Ross E Esq QUALIFIED15Amy Elsner
1028Leon I ShinkoArgentina2026-08-25Feiner Bros UNQUALIFIED53Xuxue Feng
1029Munro X DilliardBrazil2026-08-11Printing Dimensions RENEWAL24Asiya Javayant
1030Aruna H WhobreyJapan2026-08-03Chanay, Jeffrey A Esq RENEWAL92Ivan Magalhaes
1031Juan O TollnerFrance2026-08-12Commercial Press NEGOTIATION81Onyama Limba
1032Aruna B BologniaGermany2026-08-28Rousseaux, Michael Esq UNQUALIFIED40Xuxue Feng
1033Isabel I GlickUnited Kingdom2026-08-26Feiner Bros NEGOTIATION72Xuxue Feng
1034Mayumi R PerinCanada2026-08-27Buckley Miller Wright RENEWAL8Amy Elsner
1035Faith S RimFrance2026-08-28Morlong Associates QUALIFIED16Ioni Bowcher
1036Jefferson R BowleyCanada2026-08-08Morlong Associates RENEWAL55Ioni Bowcher
1037Cody N PoquetteFrance2026-08-29Buckley Miller Wright QUALIFIED44Anna Fali
1038Ricardo X PoquetteFrance2026-08-21Buckley Miller Wright PROPOSAL87Bernardo Dominic
1039Murillo K RimBrazil2026-08-06Dorl, James J Esq QUALIFIED81Ivan Magalhaes
1040Johnson V RutaArgentina2026-08-01Chanay, Jeffrey A Esq NEGOTIATION1Anna Fali
1041Costa G GillianItaly2026-08-13Feiner Bros RENEWAL31Amy Elsner
1042Deepesh L VocelkaUnited Kingdom2026-08-25Dorl, James J Esq RENEWAL30Elwin Sharvill
1043Jeanfrancois T MaletAustralia2026-08-25Rousseaux, Michael Esq QUALIFIED15Stephen Shaw
1044Francesco T OldroydCanada2026-08-10Benton, John B Jr RENEWAL45Anna Fali
1045Silvio U VocelkaUnited Kingdom2026-08-07Chapman, Ross E Esq PROPOSAL22Ioni Bowcher
1046Salvatore F BologniaCanada2026-08-11Dorl, James J Esq RENEWAL35Stephen Shaw
1047Adams B CampainIndia2026-08-23Chemel, James L Cpa NEGOTIATION67Stephen Shaw
1048Jennifer W StockhamJapan2026-08-27Chemel, James L Cpa NEW5Bernardo Dominic
1049Wickens F DoeBrazil2026-08-12King, Christopher A Esq PROPOSAL84Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Misaki E OstroskyItalyAmy Elsner UNQUALIFIED
Octavia F GarufiBrazilAmy Elsner PROPOSAL
Maria U MaletAustraliaXuxue Feng NEW
Antonio H PaprockiIndiaIoni Bowcher PROPOSAL
Salvatore K ChuiUnited KingdomIoni Bowcher NEW
Jefferson R WieserGermanyXuxue Feng QUALIFIED
Mayumi B RutaBrazilBernardo Dominic RENEWAL
Adams Z GillianJapanOnyama Limba UNQUALIFIED
Johnson M GlickBrazilXuxue Feng RENEWAL
Octavia J SaylorsCanadaAsiya Javayant UNQUALIFIED
Cody C SlusarskiUnited KingdomIoni Bowcher RENEWAL
Misaki V WieserItalyAmy Elsner UNQUALIFIED
Jones T OstroskyIndiaIoni Bowcher NEGOTIATION
Morrow L RoysterUnited KingdomAmy Elsner PROPOSAL
Claire U InouyeFranceElwin Sharvill QUALIFIED
Octavia X GillianIndiaStephen Shaw QUALIFIED
Aruna I DoeFranceOnyama Limba NEW
Leja Q AlbaresJapanAsiya Javayant NEGOTIATION
Adams N RutaSpainStephen Shaw RENEWAL
Munro T MaletGermanyBernardo Dominic NEW
Nicolas R GillianUnited KingdomAsiya Javayant NEGOTIATION
Antonio E CampainCanadaAmy Elsner UNQUALIFIED
Ricardo A RoysterBrazilAnna Fali RENEWAL
Ashley V RulapaughGermanyAsiya Javayant QUALIFIED
David T GarufiSpainIoni Bowcher NEW
Antonio E CaldareraSpainIvan Magalhaes NEGOTIATION
Johnson Q GarufiBrazilIoni Bowcher UNQUALIFIED
Mayumi E MaletCanadaXuxue Feng RENEWAL
Ivar M BowleyBrazilAsiya Javayant NEGOTIATION
Jones V CaudySpainAnna Fali NEGOTIATION
Faith K DoeGermanyAnna Fali QUALIFIED
Chavez B OldroydFranceAmy Elsner PROPOSAL
Greenwood F ShinkoFranceIoni Bowcher NEW
Deepesh X DilliardRussiaStephen Shaw PROPOSAL
Ashley N NickaJapanElwin Sharvill NEGOTIATION
Smith G ButtAustraliaStephen Shaw NEW
Claire R DoeItalyAnna Fali RENEWAL
Claire I GillianSpainAnna Fali NEW
Julie Q FigeroaItalyAsiya Javayant RENEWAL
Smith M VocelkaSpainIoni Bowcher UNQUALIFIED
Aditya M StensethCanadaAnna Fali PROPOSAL
Chavez U ChuiItalyIoni Bowcher NEW
Ashley X VocelkaGermanyXuxue Feng NEW
Jeanfrancois U RimArgentinaBernardo Dominic RENEWAL
Johnson X VenereJapanIoni Bowcher QUALIFIED
Juan P SaylorsBrazilIvan Magalhaes RENEWAL
Murillo X WhobreyRussiaAsiya Javayant RENEWAL
Costa X PoquetteSpainStephen Shaw NEW
Ricardo V InouyeItalyStephen Shaw PROPOSAL
Ricardo L GillianJapanXuxue Feng PROPOSAL
Frozen Columns
Name
Greenwood X Ruta
Tony V Whobrey
Aika F Figeroa
Antonio N Gillian
Mayumi J Caudy
Morrow Y Waycott
Jennifer U Poquette
Maria J Marrier
Mujtaba R Venere
Murillo G Shinko
Leja T Doe
Tony Q Briddick
Kaitlin U Sergi
Ashley U Ostrosky
Johnson X Stenseth
Munro H Whobrey
Faith R Flosi
Aika E Oldroyd
Faith G Wieser
Ashley Z Morasca
Leja W Vocelka
Faith D Ferencz
Mayumi I Amigon
Costa M Venere
Kaitlin R Vocelka
Arvin I Glick
Greenwood B Caldarera
Aditya N Nicka
Ivar Q Ruta
Morrow U Sergi
Clifford W Garufi
Greenwood J Nicka
Ashley N Paprocki
Greenwood Y Vocelka
Ivar B Briddick
Mujtaba G Perin
Aika V Stenseth
Nicolas J Maclead
Maisha L Inouye
Alejandro U Tollner
Aika N Ruta
Kaitlin N Malet
Izzy L Slusarski
Salvatore M Rim
Sinclair S Malet
Kadeem R Glick
Aditya O Schemmer
Kadeem C Vocelka
James U Nicka
Cody E Paprocki
IdCountryDate
1000United Kingdom2026-08-29
1001United Kingdom2026-08-08
1002Japan2026-08-25
1003United Kingdom2026-08-06
1004Argentina2026-08-26
1005Germany2026-08-23
1006India2026-08-13
1007Italy2026-08-29
1008Spain2026-08-21
1009Australia2026-08-05
1010France2026-08-28
1011Argentina2026-08-30
1012Australia2026-08-12
1013Argentina2026-08-08
1014France2026-08-02
1015Japan2026-08-25
1016Argentina2026-08-07
1017Canada2026-08-15
1018Brazil2026-08-03
1019United Kingdom2026-08-19
1020Spain2026-08-06
1021Japan2026-08-15
1022Canada2026-08-02
1023India2026-08-18
1024Italy2026-08-02
1025Canada2026-08-17
1026Italy2026-08-07
1027Canada2026-08-04
1028Argentina2026-08-24
1029Canada2026-08-02
1030Italy2026-08-20
1031United Kingdom2026-08-26
1032Japan2026-08-07
1033Spain2026-08-15
1034India2026-08-26
1035Australia2026-08-11
1036Australia2026-08-21
1037India2026-08-29
1038Japan2026-08-30
1039Italy2026-08-23
1040India2026-08-02
1041Russia2026-08-05
1042Canada2026-08-18
1043India2026-08-01
1044India2026-08-18
1045Italy2026-08-20
1046Argentina2026-08-12
1047Canada2026-08-08
1048United Kingdom2026-08-29
1049Brazil2026-08-27

On-Demand Data

NameIdCountryDate
Maria C Whobrey1000France2026-08-15
Johnson E Rim1001Italy2026-08-17
Cody L Royster1002Canada2026-08-13
Faith E Campain1003Brazil2026-08-01
Deepesh P Inouye1004United Kingdom2026-08-05
Maria F Flosi1005Australia2026-08-27
Maria U Sergi1006Brazil2026-08-21
Deepesh Z Briddick1007Australia2026-08-08
Chavez E Gaucho1008Spain2026-08-03
Rodrigues U Waycott1009Australia2026-08-26
Stacey C Stockham1010Australia2026-08-23
Antonio D Caudy1011Spain2026-08-25
Sinclair S Glick1012Spain2026-08-25
Morrow D Malet1013Russia2026-08-28
Nicolas T Chui1014Japan2026-08-04
Sinclair G Gillian1015France2026-08-20
Sinclair G Butt1016Japan2026-08-03
Maisha K Waycott1017Argentina2026-08-07
Maria Z Albares1018Canada2026-08-07
Rodrigues V Venere1019Russia2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika K FigeroaGermanyIoni Bowcher PROPOSAL
Antonio J DoeSpainIoni Bowcher QUALIFIED
Mayumi C TollnerAustraliaBernardo Dominic UNQUALIFIED
Faith S FigeroaSpainBernardo Dominic RENEWAL
Aika I MaletAustraliaAsiya Javayant RENEWAL
Salvatore M StensethArgentinaElwin Sharvill UNQUALIFIED
Juan U MarrierFranceAmy Elsner NEW
Nicolas X IturbideCanadaAnna Fali UNQUALIFIED
Darci Z RutaBrazilAmy Elsner PROPOSAL
Kadeem E MaletGermanyIvan Magalhaes NEGOTIATION
Stacey D SaylorsRussiaOnyama Limba UNQUALIFIED
Clifford R SlusarskiGermanyElwin Sharvill UNQUALIFIED
Misaki E DilliardBrazilIoni Bowcher NEGOTIATION
Wickens Q SaylorsAustraliaOnyama Limba NEGOTIATION
Misaki H IturbideAustraliaAnna Fali PROPOSAL
Silvio X AlbaresIndiaElwin Sharvill RENEWAL
James G FerenczRussiaIoni Bowcher NEW
Maria R SlusarskiAustraliaAmy Elsner RENEWAL
Jeanfrancois E RulapaughUnited KingdomStephen Shaw PROPOSAL
Aika A MaletGermanyIoni Bowcher QUALIFIED
Cody S BowleyItalyOnyama Limba QUALIFIED
Deepesh S WaycottIndiaIvan Magalhaes PROPOSAL
Cody Z KuskoArgentinaBernardo Dominic PROPOSAL
Juan D StensethAustraliaIvan Magalhaes QUALIFIED
Faith Q WieserArgentinaIoni Bowcher NEW
Emily I StockhamIndiaAsiya Javayant NEW
Costa R MaletFranceIoni Bowcher UNQUALIFIED
Kadeem X PaprockiSpainAmy Elsner PROPOSAL
Arvin Y VenereSpainIvan Magalhaes RENEWAL
Jefferson U CampainJapanXuxue Feng PROPOSAL
Julie A SlusarskiFranceAmy Elsner NEGOTIATION
Rodrigues X MaletFranceAsiya Javayant QUALIFIED
Sinclair Q SergiRussiaStephen Shaw NEW
Morrow L FigeroaIndiaAmy Elsner QUALIFIED
Tony S RutaGermanyIvan Magalhaes NEW
Leja W OstroskyAustraliaStephen Shaw PROPOSAL
Murillo J KolmetzAustraliaElwin Sharvill RENEWAL
Juan R FerenczArgentinaIvan Magalhaes QUALIFIED
Tony M FerenczSpainIoni Bowcher NEW
Smith B VenereJapanStephen 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>