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
Leon G SergiGermanyOnyama Limba NEGOTIATION
Johnson B WieserCanadaElwin Sharvill PROPOSAL
David T FlosiIndiaBernardo Dominic NEW
Aika H WhobreyFranceAsiya Javayant NEGOTIATION
Leja U OstroskyBrazilIoni Bowcher UNQUALIFIED
Greenwood B MacleadAustraliaXuxue Feng RENEWAL
Jennifer X MarrierArgentinaElwin Sharvill NEGOTIATION
Kadeem S StockhamSpainIoni Bowcher NEW
Maisha T CampainSpainAmy Elsner UNQUALIFIED
Murillo W OldroydItalyStephen Shaw UNQUALIFIED
Mayumi D TollnerFranceElwin Sharvill PROPOSAL
Costa U FlosiAustraliaIvan Magalhaes RENEWAL
David O MacleadSpainStephen Shaw PROPOSAL
Emily U InouyeJapanIvan Magalhaes QUALIFIED
Costa F SergiRussiaAsiya Javayant UNQUALIFIED
Leon X TollnerCanadaAnna Fali QUALIFIED
Smith L SaylorsCanadaAmy Elsner UNQUALIFIED
Ashley K KolmetzGermanyBernardo Dominic PROPOSAL
Maisha P FlosiRussiaStephen Shaw NEW
Jefferson K BologniaRussiaStephen Shaw NEW
Kaitlin G CaudyAustraliaAmy Elsner PROPOSAL
Chavez G VenereBrazilBernardo Dominic NEGOTIATION
Izzy K FigeroaCanadaAnna Fali PROPOSAL
Francesco U AlbaresAustraliaXuxue Feng NEGOTIATION
Ricardo T ShinkoSpainBernardo Dominic NEW
Isabel S RulapaughAustraliaAnna Fali QUALIFIED
Cody Q WaycottRussiaAsiya Javayant QUALIFIED
Jeanfrancois S VenereIndiaAsiya Javayant PROPOSAL
Cody A MarrierArgentinaIoni Bowcher PROPOSAL
David H ChuiIndiaBernardo Dominic QUALIFIED
Misaki H DoeArgentinaXuxue Feng NEGOTIATION
Wickens O CaldareraFranceStephen Shaw UNQUALIFIED
Jeanfrancois N KolmetzIndiaAmy Elsner QUALIFIED
Francesco N MorascaItalyElwin Sharvill NEW
Alejandro U InouyeFranceBernardo Dominic RENEWAL
Jefferson V DilliardRussiaElwin Sharvill NEW
Aika U SergiRussiaXuxue Feng QUALIFIED
Misaki C CampainArgentinaAnna Fali PROPOSAL
James V GillianIndiaBernardo Dominic UNQUALIFIED
Munro W DilliardArgentinaIoni Bowcher QUALIFIED
Arvin H MarrierAustraliaAnna Fali PROPOSAL
Mayumi O BologniaSpainAmy Elsner PROPOSAL
Ivar C RulapaughItalyXuxue Feng RENEWAL
Alejandro X SaylorsGermanyOnyama Limba NEW
Morrow T OldroydGermanyAsiya Javayant UNQUALIFIED
Costa K VocelkaRussiaXuxue Feng NEGOTIATION
Aditya R MaletJapanBernardo Dominic NEW
Salvatore Q TollnerUnited KingdomStephen Shaw QUALIFIED
Arvin M ShinkoSpainOnyama Limba PROPOSAL
Darci Z MarrierIndiaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh E GarufiRussiaStephen Shaw RENEWAL
Jennifer W NestleArgentinaElwin Sharvill UNQUALIFIED
Tony O VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Cody J MacleadGermanyAnna Fali NEW
Emily J RulapaughCanadaStephen Shaw RENEWAL
Wickens W SaylorsJapanElwin Sharvill NEGOTIATION
Mujtaba U SaylorsFranceElwin Sharvill QUALIFIED
Aruna K CaudyAustraliaIoni Bowcher PROPOSAL
Jeanfrancois G GillianAustraliaElwin Sharvill RENEWAL
Ricardo X GillianItalyElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith J BologniaArgentina2026-06-27Dorl, James J Esq NEGOTIATION31Anna Fali
1001Kadeem W ChuiIndia2026-07-03King, Christopher A Esq NEW8Elwin Sharvill
1002Munro M StockhamGermany2026-06-23King, Christopher A Esq QUALIFIED65Amy Elsner
1003Jennifer J MaletAustralia2026-06-28Truhlar And Truhlar Attys RENEWAL26Asiya Javayant
1004Nicolas X MacleadSpain2026-07-15Printing Dimensions RENEWAL74Anna Fali
1005Silvio Z MaletRussia2026-07-07Chanay, Jeffrey A Esq QUALIFIED66Bernardo Dominic
1006Leon H RutaArgentina2026-07-07Rangoni Of Florence UNQUALIFIED29Ivan Magalhaes
1007Alejandro L CampainItaly2026-07-02Printing Dimensions UNQUALIFIED14Amy Elsner
1008Jones K KolmetzAustralia2026-07-08Rousseaux, Michael Esq NEGOTIATION53Elwin Sharvill
1009Mujtaba T VenereBrazil2026-07-13Truhlar And Truhlar Attys NEGOTIATION84Asiya Javayant
1010Alejandro P ButtItaly2026-06-25Rangoni Of Florence NEW98Ivan Magalhaes
1011Cody Y KolmetzRussia2026-07-07Chapman, Ross E Esq UNQUALIFIED28Asiya Javayant
1012Leon I CampainCanada2026-06-29Feltz Printing Service QUALIFIED51Bernardo Dominic
1013Ricardo Q CaudyRussia2026-06-19Feiner Bros RENEWAL27Xuxue Feng
1014Cody V FigeroaIndia2026-06-19Commercial Press PROPOSAL40Onyama Limba
1015Isabel C FollerRussia2026-06-20Feiner Bros NEW43Stephen Shaw
1016James B DarakjyGermany2026-06-20Buckley Miller Wright NEW54Elwin Sharvill
1017Leja L FlosiRussia2026-07-15Dorl, James J Esq PROPOSAL29Bernardo Dominic
1018Isabel L VocelkaGermany2026-06-21Benton, John B Jr NEGOTIATION76Asiya Javayant
1019Leon A StensethUnited Kingdom2026-07-02Chanay, Jeffrey A Esq RENEWAL88Stephen Shaw
1020Kadeem X SergiJapan2026-07-14Truhlar And Truhlar Attys NEGOTIATION11Onyama Limba
1021Aruna F DilliardAustralia2026-07-07Commercial Press UNQUALIFIED38Anna Fali
1022David X GauchoArgentina2026-07-01Rousseaux, Michael Esq NEW90Bernardo Dominic
1023Darci P FollerItaly2026-07-10Commercial Press RENEWAL55Elwin Sharvill
1024Octavia U SaylorsCanada2026-07-07Dorl, James J Esq NEGOTIATION26Bernardo Dominic
1025Mujtaba M FigeroaUnited Kingdom2026-06-30Dorl, James J Esq UNQUALIFIED10Amy Elsner
1026Jones D TollnerAustralia2026-06-26Feiner Bros PROPOSAL89Amy Elsner
1027Arvin V PoquetteBrazil2026-07-14Dorl, James J Esq PROPOSAL33Anna Fali
1028Jennifer W BriddickIndia2026-06-24Chapman, Ross E Esq QUALIFIED21Bernardo Dominic
1029Chavez G IturbideIndia2026-07-12Feltz Printing Service NEW74Bernardo Dominic
1030Deepesh Q FigeroaIndia2026-07-07King, Christopher A Esq NEGOTIATION60Amy Elsner
1031Rodrigues Q OldroydFrance2026-07-12Buckley Miller Wright NEW33Amy Elsner
1032Emily Q SaylorsJapan2026-07-04Benton, John B Jr NEGOTIATION14Stephen Shaw
1033Mujtaba G AlbaresSpain2026-07-14Truhlar And Truhlar Attys RENEWAL88Anna Fali
1034Maria S RimAustralia2026-06-20Feltz Printing Service PROPOSAL25Ivan Magalhaes
1035Misaki C StensethBrazil2026-06-22Buckley Miller Wright NEW81Amy Elsner
1036Antonio E MorascaIndia2026-07-08Feiner Bros UNQUALIFIED11Ioni Bowcher
1037Arvin R FigeroaCanada2026-06-20King, Christopher A Esq QUALIFIED30Stephen Shaw
1038Izzy R MarrierGermany2026-06-19King, Christopher A Esq NEGOTIATION94Ioni Bowcher
1039Jefferson A KolmetzBrazil2026-06-20Printing Dimensions QUALIFIED14Onyama Limba
1040Jeanfrancois E ButtRussia2026-07-03Truhlar And Truhlar Attys PROPOSAL30Asiya Javayant
1041Chavez U GlickJapan2026-07-02Commercial Press NEGOTIATION62Ivan Magalhaes
1042Claire V NestleFrance2026-07-14Rousseaux, Michael Esq UNQUALIFIED21Bernardo Dominic
1043James V CaldareraFrance2026-07-04Truhlar And Truhlar Attys NEGOTIATION59Anna Fali
1044Salvatore Z ShinkoFrance2026-06-22Chemel, James L Cpa QUALIFIED10Stephen Shaw
1045Costa W MaletSpain2026-06-24Morlong Associates NEGOTIATION1Ivan Magalhaes
1046Ivar S CaudyBrazil2026-07-18Printing Dimensions UNQUALIFIED28Bernardo Dominic
1047Aditya V VenereAustralia2026-06-30Dorl, James J Esq UNQUALIFIED53Anna Fali
1048Clifford W IturbideGermany2026-06-23Truhlar And Truhlar Attys NEW34Amy Elsner
1049Salvatore U InouyeIndia2026-07-05Truhlar And Truhlar Attys NEGOTIATION35Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Misaki X PaprockiBrazilAmy Elsner NEGOTIATION
Adams R RoysterJapanAnna Fali PROPOSAL
Nicolas W ButtJapanOnyama Limba NEGOTIATION
Morrow M NestleAustraliaStephen Shaw UNQUALIFIED
Morrow R PaprockiIndiaAnna Fali NEW
Aika H GillianSpainBernardo Dominic PROPOSAL
Costa G KuskoCanadaAmy Elsner PROPOSAL
Aika L MorascaBrazilAsiya Javayant UNQUALIFIED
Arvin D StockhamItalyIvan Magalhaes NEGOTIATION
Aika W ButtBrazilAsiya Javayant UNQUALIFIED
Kadeem D CampainGermanyIvan Magalhaes PROPOSAL
Mujtaba G GlickRussiaIoni Bowcher NEW
Aditya V KuskoBrazilElwin Sharvill RENEWAL
Greenwood L SaylorsAustraliaStephen Shaw QUALIFIED
Munro B KolmetzIndiaAmy Elsner RENEWAL
Darci H MacleadBrazilOnyama Limba NEGOTIATION
Antonio J AmigonIndiaIvan Magalhaes QUALIFIED
Greenwood T OldroydCanadaXuxue Feng RENEWAL
Rodrigues Q PerinBrazilIvan Magalhaes PROPOSAL
Chavez K MaletIndiaBernardo Dominic QUALIFIED
James F RimItalyOnyama Limba UNQUALIFIED
Leja L WhobreyIndiaAmy Elsner PROPOSAL
Silvio Y SlusarskiFranceAmy Elsner UNQUALIFIED
Darci L KolmetzUnited KingdomAnna Fali QUALIFIED
Munro J VocelkaSpainXuxue Feng RENEWAL
Claire K TollnerIndiaXuxue Feng RENEWAL
Izzy N BowleyGermanyXuxue Feng QUALIFIED
Clifford O FlosiSpainAmy Elsner NEGOTIATION
Leja S PaprockiIndiaOnyama Limba PROPOSAL
Leja V AmigonBrazilIvan Magalhaes PROPOSAL
Kaitlin D WieserSpainBernardo Dominic NEGOTIATION
Munro G MacleadItalyOnyama Limba NEW
Costa M RimCanadaAsiya Javayant PROPOSAL
Salvatore Z NickaSpainAnna Fali UNQUALIFIED
Misaki M SlusarskiJapanStephen Shaw NEGOTIATION
James Q RutaAustraliaStephen Shaw NEGOTIATION
Jennifer T RulapaughGermanyStephen Shaw QUALIFIED
Kaitlin Y ChuiFranceAmy Elsner RENEWAL
James L ChuiIndiaBernardo Dominic QUALIFIED
Faith O KuskoArgentinaAnna Fali QUALIFIED
Aditya N BriddickGermanyXuxue Feng UNQUALIFIED
Jefferson F CampainGermanyOnyama Limba PROPOSAL
Aika G BologniaIndiaXuxue Feng UNQUALIFIED
Jeanfrancois W NestleIndiaElwin Sharvill QUALIFIED
Aruna E WieserItalyAmy Elsner PROPOSAL
Arvin G VenereGermanyAsiya Javayant NEW
Leon L OldroydIndiaAsiya Javayant UNQUALIFIED
David F KuskoFranceIvan Magalhaes NEGOTIATION
Kadeem X KolmetzIndiaAmy Elsner PROPOSAL
Clifford C RoysterItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Johnson O Vocelka
Ricardo F Poquette
Clifford D Royster
Claire U Malet
Clifford S Paprocki
Clifford I Waycott
Mujtaba S Royster
Adams Z Stenseth
Greenwood L Schemmer
Stacey I Doe
Ashley I Caudy
Aditya W Bowley
Morrow H Kusko
Mujtaba X Oldroyd
Mujtaba W Ostrosky
Misaki Z Whobrey
Octavia N Figeroa
David C Darakjy
Julie L Schemmer
Juan E Malet
Murillo M Bowley
Murillo R Wieser
Munro I Caldarera
Munro E Maclead
Jeanfrancois I Butt
Francesco D Nestle
Murillo V Doe
Mayumi C Whobrey
Stacey J Bowley
Aditya E Malet
Sinclair B Whobrey
Munro F Wieser
Jefferson R Royster
Costa E Bowley
Costa R Gaucho
Ivar R Perin
Jefferson H Oldroyd
Kadeem X Iturbide
Kadeem P Bowley
Faith D Dilliard
Julie R Schemmer
Aditya O Caldarera
Smith Y Kolmetz
Silvio Z Waycott
Tony U Bolognia
Rodrigues G Perin
Juan W Campain
Claire D Royster
Jefferson V Campain
Aika E Maclead
IdCountryDate
1000Argentina2026-07-15
1001Germany2026-07-08
1002Germany2026-07-08
1003Russia2026-07-03
1004Italy2026-07-15
1005Brazil2026-06-19
1006Russia2026-07-07
1007India2026-07-06
1008Australia2026-06-24
1009France2026-06-27
1010Argentina2026-07-08
1011Spain2026-06-20
1012Germany2026-06-30
1013United Kingdom2026-06-28
1014Argentina2026-06-23
1015Spain2026-07-04
1016India2026-06-20
1017Brazil2026-07-17
1018Russia2026-06-20
1019Argentina2026-06-19
1020United Kingdom2026-07-08
1021Japan2026-06-22
1022India2026-06-21
1023Germany2026-06-20
1024Australia2026-06-27
1025Italy2026-06-28
1026Brazil2026-06-20
1027Brazil2026-07-03
1028India2026-07-01
1029Spain2026-06-24
1030France2026-07-09
1031Germany2026-06-26
1032Brazil2026-06-23
1033Japan2026-06-30
1034Spain2026-06-22
1035Japan2026-06-28
1036Germany2026-07-06
1037France2026-07-08
1038United Kingdom2026-06-27
1039Germany2026-07-16
1040Spain2026-07-13
1041Brazil2026-06-30
1042Australia2026-07-16
1043Japan2026-07-05
1044Canada2026-07-06
1045Japan2026-07-07
1046Italy2026-06-27
1047France2026-06-20
1048Australia2026-07-15
1049Canada2026-07-06

On-Demand Data

NameIdCountryDate
Aditya G Wieser1000Japan2026-07-11
Octavia W Nestle1001Japan2026-06-23
Jennifer S Ostrosky1002Italy2026-06-20
Octavia B Poquette1003France2026-06-23
Munro M Nicka1004India2026-06-22
Alejandro S Glick1005France2026-06-27
Arvin B Saylors1006Argentina2026-07-03
Aruna N Schemmer1007Brazil2026-06-30
Misaki V Maclead1008Argentina2026-06-27
Kaitlin N Venere1009Canada2026-07-07
Chavez J Tollner1010Russia2026-07-03
Smith Q Saylors1011Brazil2026-07-09
Maria W Stockham1012Argentina2026-06-29
Munro X Chui1013United Kingdom2026-06-29
Salvatore R Garufi1014Argentina2026-07-12
Emily M Marrier1015Canada2026-07-13
Ashley A Nestle1016Japan2026-07-04
Silvio N Nestle1017Argentina2026-07-14
Deepesh X Darakjy1018France2026-06-24
Francesco Y Ferencz1019Australia2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie N PoquetteArgentinaAnna Fali PROPOSAL
Sinclair M BriddickArgentinaBernardo Dominic NEW
Jennifer W CampainAustraliaAnna Fali RENEWAL
Mujtaba N PerinCanadaBernardo Dominic PROPOSAL
Sinclair I MacleadRussiaXuxue Feng RENEWAL
Mujtaba L PerinUnited KingdomXuxue Feng UNQUALIFIED
Murillo J RutaUnited KingdomIoni Bowcher QUALIFIED
Francesco L VocelkaUnited KingdomAsiya Javayant PROPOSAL
Johnson U StockhamUnited KingdomAmy Elsner PROPOSAL
Kadeem Z GauchoItalyElwin Sharvill NEGOTIATION
Greenwood T WhobreyFranceIvan Magalhaes QUALIFIED
Francesco L PoquetteGermanyBernardo Dominic UNQUALIFIED
Francesco K GarufiItalyAnna Fali QUALIFIED
Chavez I AmigonCanadaAmy Elsner NEGOTIATION
Izzy E FerenczArgentinaOnyama Limba NEGOTIATION
Francesco M CampainFranceAsiya Javayant NEGOTIATION
Munro A FerenczJapanOnyama Limba UNQUALIFIED
Mujtaba M ShinkoUnited KingdomElwin Sharvill NEW
Maria Z SchemmerJapanAsiya Javayant PROPOSAL
Julie O OldroydIndiaOnyama Limba PROPOSAL
Octavia W SchemmerCanadaElwin Sharvill NEGOTIATION
Julie H PoquetteArgentinaBernardo Dominic NEW
Antonio B ShinkoGermanyXuxue Feng NEGOTIATION
Isabel G VenereFranceAmy Elsner NEGOTIATION
Octavia I WaycottItalyIvan Magalhaes UNQUALIFIED
Francesco Z SergiRussiaBernardo Dominic PROPOSAL
Mayumi V FollerBrazilAnna Fali NEW
Darci O CampainGermanyAsiya Javayant QUALIFIED
Jennifer T AmigonSpainAsiya Javayant PROPOSAL
Darci E BriddickAustraliaAsiya Javayant NEW
Izzy Z WaycottIndiaStephen Shaw NEW
Johnson R FollerUnited KingdomXuxue Feng UNQUALIFIED
Deepesh W SlusarskiSpainAnna Fali QUALIFIED
Jefferson T BriddickUnited KingdomXuxue Feng UNQUALIFIED
Aruna P AmigonAustraliaElwin Sharvill PROPOSAL
Smith K SlusarskiAustraliaIvan Magalhaes RENEWAL
Stacey C WhobreyIndiaStephen Shaw NEGOTIATION
Arvin N ShinkoCanadaAmy Elsner NEGOTIATION
Aditya X MacleadFranceAnna Fali UNQUALIFIED
Aruna G GlickUnited KingdomAnna Fali 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>