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
Darci P TollnerItalyIvan Magalhaes RENEWAL
David T ChuiIndiaBernardo Dominic QUALIFIED
Faith O SlusarskiGermanyAnna Fali UNQUALIFIED
James Z ChuiArgentinaIoni Bowcher NEW
Rodrigues S DoeFranceAmy Elsner NEW
Claire Y DilliardJapanIoni Bowcher RENEWAL
Jones N BowleyGermanyXuxue Feng UNQUALIFIED
Rodrigues T MarrierRussiaXuxue Feng NEW
Nicolas D SaylorsSpainOnyama Limba QUALIFIED
Faith V ButtArgentinaIvan Magalhaes PROPOSAL
Cody Z MaletUnited KingdomIoni Bowcher NEGOTIATION
Darci W RulapaughArgentinaIoni Bowcher UNQUALIFIED
Julie E RulapaughIndiaXuxue Feng NEW
Greenwood C MarrierIndiaIoni Bowcher NEW
Mujtaba K GlickIndiaOnyama Limba PROPOSAL
James U PerinGermanyAmy Elsner UNQUALIFIED
Chavez W NestleItalyIvan Magalhaes PROPOSAL
Deepesh C MacleadSpainElwin Sharvill NEW
Emily Y RimJapanElwin Sharvill RENEWAL
Munro V MacleadGermanyAmy Elsner PROPOSAL
Maisha Q VocelkaSpainStephen Shaw NEW
Mujtaba H FerenczItalyBernardo Dominic QUALIFIED
Cody B ChuiBrazilAnna Fali NEGOTIATION
Ricardo J PaprockiGermanyIvan Magalhaes PROPOSAL
Arvin Y GarufiFranceStephen Shaw NEW
Claire N RulapaughIndiaXuxue Feng RENEWAL
Leon Z SchemmerCanadaIvan Magalhaes UNQUALIFIED
Misaki Q ShinkoJapanAmy Elsner UNQUALIFIED
Maria F DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Ashley S DarakjyJapanElwin Sharvill RENEWAL
Aditya D FigeroaRussiaAmy Elsner NEGOTIATION
Leon X KuskoFranceStephen Shaw QUALIFIED
Aruna D MarrierItalyAmy Elsner RENEWAL
Sinclair M CampainUnited KingdomStephen Shaw PROPOSAL
Mayumi T ChuiIndiaElwin Sharvill QUALIFIED
Kaitlin Z DoeAustraliaAsiya Javayant RENEWAL
Adams J GlickJapanAnna Fali QUALIFIED
Maisha E AlbaresUnited KingdomAnna Fali NEGOTIATION
Adams R InouyeAustraliaIoni Bowcher QUALIFIED
Sinclair Q MaletSpainAmy Elsner NEW
Costa H NickaArgentinaOnyama Limba RENEWAL
Isabel Y FlosiRussiaAmy Elsner NEGOTIATION
Munro K NestleIndiaAmy Elsner NEGOTIATION
Alejandro U NestleCanadaStephen Shaw UNQUALIFIED
Sinclair A OstroskyCanadaAmy Elsner PROPOSAL
Sinclair K PoquetteJapanAsiya Javayant RENEWAL
Alejandro T AlbaresCanadaElwin Sharvill QUALIFIED
Aika L BriddickUnited KingdomAsiya Javayant QUALIFIED
Wickens I StensethRussiaOnyama Limba NEGOTIATION
Smith P FlosiGermanyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire O FollerItalyAnna Fali PROPOSAL
Aditya X SergiCanadaBernardo Dominic PROPOSAL
Deepesh P DarakjyJapanBernardo Dominic NEGOTIATION
Murillo S BowleyGermanyElwin Sharvill PROPOSAL
Wickens O GarufiJapanAnna Fali NEW
Claire A FollerCanadaAsiya Javayant NEGOTIATION
Juan Q RulapaughSpainElwin Sharvill NEGOTIATION
David F StensethIndiaAnna Fali NEGOTIATION
Kadeem P RimFranceAmy Elsner QUALIFIED
Maisha E CaudyArgentinaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki J RulapaughRussia2026-07-16Feiner Bros QUALIFIED8Onyama Limba
1001Isabel R MaletRussia2026-07-18Chanay, Jeffrey A Esq NEGOTIATION2Elwin Sharvill
1002Aditya B NestleJapan2026-07-03King, Christopher A Esq PROPOSAL77Asiya Javayant
1003Kaitlin E WieserJapan2026-07-14Chanay, Jeffrey A Esq RENEWAL24Amy Elsner
1004Maria U InouyeUnited Kingdom2026-07-10Chapman, Ross E Esq PROPOSAL42Asiya Javayant
1005Leon L VocelkaCanada2026-07-24Truhlar And Truhlar Attys QUALIFIED59Bernardo Dominic
1006Salvatore F SaylorsCanada2026-07-10Rangoni Of Florence QUALIFIED11Elwin Sharvill
1007Leon X GarufiSpain2026-06-29Rangoni Of Florence NEW27Amy Elsner
1008Rodrigues O AlbaresGermany2026-07-04Rangoni Of Florence PROPOSAL52Stephen Shaw
1009Faith A CaudyArgentina2026-07-02Commercial Press QUALIFIED12Anna Fali
1010Leja S GillianJapan2026-07-20Buckley Miller Wright QUALIFIED79Elwin Sharvill
1011Kaitlin C DilliardAustralia2026-07-23Printing Dimensions NEW14Bernardo Dominic
1012Maria M KuskoFrance2026-07-16Chanay, Jeffrey A Esq QUALIFIED11Elwin Sharvill
1013Aruna X PaprockiArgentina2026-06-30Commercial Press PROPOSAL48Xuxue Feng
1014Octavia D NickaGermany2026-07-08Rangoni Of Florence NEW56Stephen Shaw
1015Francesco U NickaSpain2026-07-02Rousseaux, Michael Esq RENEWAL55Amy Elsner
1016Isabel Q KolmetzItaly2026-07-13Buckley Miller Wright PROPOSAL43Ivan Magalhaes
1017Kadeem J DoeItaly2026-07-22Buckley Miller Wright NEGOTIATION36Asiya Javayant
1018Francesco W StensethGermany2026-07-25Buckley Miller Wright NEW92Anna Fali
1019Jefferson T MorascaUnited Kingdom2026-07-23Morlong Associates QUALIFIED21Ivan Magalhaes
1020Darci X StensethGermany2026-07-17Morlong Associates NEW44Onyama Limba
1021Claire K DoeGermany2026-06-27Benton, John B Jr QUALIFIED34Onyama Limba
1022Chavez G StockhamIndia2026-07-02Chemel, James L Cpa PROPOSAL24Ivan Magalhaes
1023Sinclair U GlickAustralia2026-07-24Dorl, James J Esq NEW97Stephen Shaw
1024Salvatore I SlusarskiBrazil2026-06-30Morlong Associates PROPOSAL66Stephen Shaw
1025Darci P SlusarskiAustralia2026-07-12Chanay, Jeffrey A Esq PROPOSAL8Bernardo Dominic
1026Ivar K PaprockiSpain2026-07-16Chemel, James L Cpa QUALIFIED21Anna Fali
1027Greenwood I KuskoCanada2026-07-24Rousseaux, Michael Esq RENEWAL40Xuxue Feng
1028Smith E AlbaresBrazil2026-07-07Rangoni Of Florence UNQUALIFIED78Ioni Bowcher
1029Emily N CampainArgentina2026-07-24Rousseaux, Michael Esq UNQUALIFIED28Asiya Javayant
1030Darci T RoysterAustralia2026-07-15Dorl, James J Esq QUALIFIED84Anna Fali
1031Maisha N FlosiUnited Kingdom2026-07-12Chapman, Ross E Esq NEGOTIATION6Bernardo Dominic
1032Mujtaba U DarakjyJapan2026-07-09Feiner Bros QUALIFIED97Ivan Magalhaes
1033Mayumi L FlosiSpain2026-07-04Rousseaux, Michael Esq UNQUALIFIED82Bernardo Dominic
1034Aika Z InouyeGermany2026-07-08Printing Dimensions RENEWAL67Ivan Magalhaes
1035Leja T FerenczIndia2026-06-26Buckley Miller Wright NEW67Ivan Magalhaes
1036Ricardo I SergiItaly2026-07-18Truhlar And Truhlar Attys UNQUALIFIED72Ivan Magalhaes
1037David O ButtArgentina2026-06-28Chemel, James L Cpa PROPOSAL41Bernardo Dominic
1038Chavez Z ChuiAustralia2026-07-22Feltz Printing Service RENEWAL14Bernardo Dominic
1039Munro A KuskoAustralia2026-07-03Commercial Press PROPOSAL33Onyama Limba
1040Deepesh Y VenereGermany2026-07-19King, Christopher A Esq RENEWAL75Onyama Limba
1041Tony J StockhamSpain2026-07-20Morlong Associates PROPOSAL35Xuxue Feng
1042Arvin E KolmetzGermany2026-06-27King, Christopher A Esq PROPOSAL40Anna Fali
1043Johnson E GauchoBrazil2026-07-01Commercial Press NEGOTIATION51Bernardo Dominic
1044Morrow D DarakjyIndia2026-07-06Truhlar And Truhlar Attys PROPOSAL93Anna Fali
1045Jefferson Z FerenczArgentina2026-06-27Feiner Bros UNQUALIFIED81Xuxue Feng
1046Antonio F DarakjyCanada2026-07-21Chemel, James L Cpa PROPOSAL25Xuxue Feng
1047Smith N KuskoRussia2026-07-17Buckley Miller Wright NEW13Asiya Javayant
1048Alejandro E NestleBrazil2026-06-29Dorl, James J Esq QUALIFIED79Asiya Javayant
1049Murillo I DilliardCanada2026-07-18Benton, John B Jr UNQUALIFIED65Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Costa U MorascaSpainIoni Bowcher RENEWAL
Francesco K DoeAustraliaIoni Bowcher QUALIFIED
Jefferson Q RulapaughUnited KingdomBernardo Dominic PROPOSAL
Ricardo P CaldareraCanadaElwin Sharvill QUALIFIED
James A SlusarskiBrazilBernardo Dominic NEW
Claire L CaldareraArgentinaAsiya Javayant UNQUALIFIED
Silvio B VocelkaUnited KingdomAsiya Javayant NEW
Darci Q MaletAustraliaOnyama Limba PROPOSAL
Alejandro K ChuiIndiaAmy Elsner RENEWAL
Mujtaba Q MaletGermanyAsiya Javayant RENEWAL
Leon X PoquetteIndiaIoni Bowcher PROPOSAL
Jones U FerenczJapanStephen Shaw RENEWAL
Stacey R DarakjyIndiaBernardo Dominic QUALIFIED
James A RimSpainXuxue Feng QUALIFIED
Johnson S BowleyIndiaAsiya Javayant UNQUALIFIED
Johnson V SergiFranceAsiya Javayant PROPOSAL
David J RutaIndiaXuxue Feng NEW
Julie X GillianRussiaAsiya Javayant PROPOSAL
Jennifer V FigeroaGermanyIoni Bowcher NEGOTIATION
Jeanfrancois W ButtJapanXuxue Feng NEW
Rodrigues X AlbaresUnited KingdomStephen Shaw RENEWAL
Maria Z WhobreyFranceStephen Shaw UNQUALIFIED
Maria Z SchemmerItalyAnna Fali RENEWAL
Rodrigues O VocelkaAustraliaBernardo Dominic RENEWAL
Silvio Y AlbaresGermanyStephen Shaw PROPOSAL
Murillo J SaylorsFranceOnyama Limba PROPOSAL
Aruna Y RulapaughBrazilElwin Sharvill RENEWAL
Aika E MaletCanadaStephen Shaw RENEWAL
James C FerenczBrazilAnna Fali QUALIFIED
Jefferson E ButtArgentinaIoni Bowcher QUALIFIED
Izzy O ButtArgentinaIvan Magalhaes UNQUALIFIED
Mayumi X BologniaItalyAnna Fali NEGOTIATION
Francesco Z NestleUnited KingdomBernardo Dominic RENEWAL
Izzy R SlusarskiItalyAnna Fali NEW
Ricardo C FollerIndiaIvan Magalhaes NEW
Leja O BologniaAustraliaIvan Magalhaes NEGOTIATION
Greenwood E ChuiItalyAmy Elsner NEW
Cody F ChuiAustraliaXuxue Feng NEW
Claire H CaudySpainAnna Fali UNQUALIFIED
Leon Y SergiArgentinaAmy Elsner RENEWAL
Leon B ButtCanadaAsiya Javayant RENEWAL
Tony X IturbideFranceStephen Shaw NEGOTIATION
Nicolas R MorascaAustraliaElwin Sharvill PROPOSAL
Adams O FlosiItalyAsiya Javayant RENEWAL
Alejandro H MacleadGermanyStephen Shaw RENEWAL
Kadeem K VocelkaAustraliaStephen Shaw NEGOTIATION
James I NestleFranceXuxue Feng NEW
Aruna D BologniaBrazilAnna Fali NEGOTIATION
Morrow K GillianBrazilOnyama Limba QUALIFIED
Murillo T CampainRussiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Maria Y Figeroa
Deepesh B Oldroyd
Darci A Schemmer
Nicolas F Iturbide
Wickens I Vocelka
Antonio A Oldroyd
Maisha K Wieser
Leon A Ostrosky
Alejandro T Sergi
Murillo X Gillian
Rodrigues K Briddick
Leon X Shinko
Cody Q Malet
Mujtaba S Caldarera
Ricardo I Bolognia
Julie P Rulapaugh
Aruna O Malet
Murillo G Saylors
James W Caudy
Octavia I Poquette
Munro E Figeroa
Isabel Y Paprocki
Kaitlin C Ostrosky
Francesco Z Stockham
Juan U Malet
Nicolas L Saylors
Misaki P Dilliard
Ivar I Saylors
David B Sergi
Rodrigues O Nicka
Sinclair M Oldroyd
Sinclair G Foller
Adams Q Albares
Clifford N Wieser
Jefferson X Chui
James A Slusarski
Maria A Morasca
Cody R Whobrey
Francesco L Vocelka
Faith Q Saylors
Octavia J Gillian
Leja A Oldroyd
Murillo M Chui
Jefferson R Caudy
Murillo A Schemmer
Emily J Gillian
Mujtaba U Shinko
Clifford B Darakjy
Jeanfrancois F Maclead
Alejandro G Butt
IdCountryDate
1000United Kingdom2026-07-09
1001Australia2026-07-24
1002Japan2026-07-14
1003Canada2026-07-24
1004Brazil2026-07-19
1005United Kingdom2026-07-01
1006Japan2026-06-28
1007United Kingdom2026-07-25
1008Argentina2026-07-13
1009Germany2026-07-02
1010Brazil2026-07-21
1011Germany2026-07-10
1012India2026-07-16
1013Germany2026-07-01
1014Italy2026-07-13
1015Brazil2026-07-18
1016France2026-07-14
1017Canada2026-07-17
1018Brazil2026-06-26
1019India2026-07-18
1020Brazil2026-07-12
1021United Kingdom2026-07-06
1022Japan2026-07-09
1023United Kingdom2026-07-19
1024Italy2026-07-03
1025Spain2026-07-13
1026Spain2026-07-20
1027Germany2026-07-09
1028Russia2026-07-11
1029Italy2026-07-15
1030Argentina2026-07-02
1031Brazil2026-07-22
1032Japan2026-07-23
1033Australia2026-07-23
1034Germany2026-07-14
1035France2026-07-24
1036France2026-07-07
1037United Kingdom2026-06-26
1038Spain2026-07-16
1039Japan2026-07-07
1040France2026-06-27
1041Brazil2026-07-03
1042India2026-07-24
1043France2026-06-29
1044Germany2026-07-23
1045Russia2026-07-18
1046Russia2026-07-04
1047United Kingdom2026-07-10
1048France2026-06-29
1049Argentina2026-07-04

On-Demand Data

NameIdCountryDate
Ricardo U Bowley1000France2026-07-18
Francesco K Venere1001Spain2026-07-03
Juan W Wieser1002Canada2026-07-24
Nicolas V Saylors1003Brazil2026-07-16
Kadeem F Iturbide1004Spain2026-07-25
Jones O Perin1005United Kingdom2026-07-24
Misaki K Saylors1006United Kingdom2026-07-05
Isabel L Nestle1007Argentina2026-06-27
Jennifer F Saylors1008Canada2026-07-21
Clifford E Glick1009United Kingdom2026-06-28
Cody A Maclead1010France2026-07-20
Ricardo Z Darakjy1011United Kingdom2026-06-30
Silvio M Stockham1012Italy2026-07-06
Misaki M Inouye1013Argentina2026-07-18
Tony H Maclead1014Brazil2026-06-27
Nicolas Q Rim1015Argentina2026-07-15
Aruna R Garufi1016Spain2026-07-24
Nicolas N Oldroyd1017Japan2026-07-24
Alejandro S Chui1018Russia2026-06-27
Tony K Perin1019France2026-07-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley L MaletUnited KingdomIoni Bowcher PROPOSAL
Stacey Q CaldareraRussiaAnna Fali QUALIFIED
Jefferson V DarakjyCanadaBernardo Dominic NEGOTIATION
Aika O RoysterIndiaStephen Shaw RENEWAL
Izzy U GauchoBrazilBernardo Dominic RENEWAL
Jones E NickaRussiaOnyama Limba RENEWAL
Chavez W ChuiAustraliaXuxue Feng UNQUALIFIED
Alejandro W OstroskyCanadaIoni Bowcher NEGOTIATION
Jones B CaldareraGermanyXuxue Feng QUALIFIED
Sinclair X NickaAustraliaIoni Bowcher UNQUALIFIED
Jones E IturbideGermanyIvan Magalhaes QUALIFIED
Maisha U NestleArgentinaStephen Shaw PROPOSAL
Morrow I RoysterIndiaIoni Bowcher QUALIFIED
Cody O OldroydGermanyOnyama Limba PROPOSAL
Ashley P SlusarskiBrazilIvan Magalhaes NEGOTIATION
James M GlickArgentinaIvan Magalhaes RENEWAL
Francesco O NickaIndiaOnyama Limba NEGOTIATION
Deepesh W VenereAustraliaBernardo Dominic NEGOTIATION
Jefferson Y MaletArgentinaAsiya Javayant UNQUALIFIED
Chavez Z SlusarskiJapanBernardo Dominic RENEWAL
Greenwood N NickaGermanyIoni Bowcher UNQUALIFIED
Kaitlin F RimAustraliaOnyama Limba QUALIFIED
Adams M BriddickBrazilXuxue Feng QUALIFIED
Izzy T MarrierCanadaStephen Shaw PROPOSAL
Francesco E AmigonUnited KingdomStephen Shaw PROPOSAL
Maria L DarakjyJapanIvan Magalhaes QUALIFIED
Murillo N AmigonJapanOnyama Limba RENEWAL
Izzy T PoquetteIndiaAmy Elsner NEGOTIATION
Emily P GauchoSpainIoni Bowcher RENEWAL
Ashley G TollnerRussiaIvan Magalhaes RENEWAL
Costa Q PerinRussiaBernardo Dominic RENEWAL
Ashley B MarrierJapanAmy Elsner NEW
Izzy C KuskoItalyXuxue Feng UNQUALIFIED
Julie Z VocelkaJapanElwin Sharvill QUALIFIED
Mayumi Z SaylorsBrazilAnna Fali UNQUALIFIED
Morrow I OldroydRussiaIvan Magalhaes PROPOSAL
Jeanfrancois I MaletItalyOnyama Limba UNQUALIFIED
Sinclair S DilliardItalyStephen Shaw PROPOSAL
Emily J BologniaFranceStephen Shaw RENEWAL
Arvin U MarrierCanadaAmy Elsner RENEWAL

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