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 W ChuiAustraliaBernardo Dominic PROPOSAL
Kaitlin U CaudyJapanStephen Shaw PROPOSAL
Arvin W RoysterItalyXuxue Feng QUALIFIED
Johnson F MorascaCanadaIoni Bowcher UNQUALIFIED
Alejandro H AlbaresItalyBernardo Dominic PROPOSAL
Juan N NickaArgentinaXuxue Feng UNQUALIFIED
Nicolas Z PerinItalyAsiya Javayant NEW
Emily N CampainBrazilStephen Shaw QUALIFIED
Stacey Y BologniaFranceAmy Elsner RENEWAL
Juan T CampainArgentinaIoni Bowcher PROPOSAL
Jefferson Q StockhamGermanyOnyama Limba UNQUALIFIED
Costa H NickaAustraliaAnna Fali NEW
Isabel W MorascaFranceAnna Fali QUALIFIED
Ricardo Q TollnerSpainAnna Fali NEW
Murillo M StockhamJapanBernardo Dominic RENEWAL
Aika P PaprockiBrazilAmy Elsner QUALIFIED
Misaki C RoysterItalyIvan Magalhaes RENEWAL
Smith G IturbideUnited KingdomAnna Fali PROPOSAL
Tony M SchemmerFranceIoni Bowcher QUALIFIED
Jefferson A MaletFranceElwin Sharvill RENEWAL
Leja L GillianRussiaIvan Magalhaes RENEWAL
Adams B IturbideJapanElwin Sharvill UNQUALIFIED
Jones P AlbaresBrazilIoni Bowcher PROPOSAL
Jennifer V NickaArgentinaIoni Bowcher QUALIFIED
Julie P VocelkaAustraliaAnna Fali PROPOSAL
Maria K PoquetteGermanyXuxue Feng PROPOSAL
Aruna P MarrierRussiaIvan Magalhaes NEW
Wickens O GauchoArgentinaIoni Bowcher PROPOSAL
Emily V StensethUnited KingdomAmy Elsner NEGOTIATION
Aika W PaprockiFranceIvan Magalhaes QUALIFIED
Nicolas W GlickJapanAsiya Javayant RENEWAL
James U ShinkoAustraliaBernardo Dominic UNQUALIFIED
Maisha Z DoeIndiaStephen Shaw QUALIFIED
Darci Y RutaJapanAmy Elsner NEGOTIATION
Isabel X CaldareraGermanyAmy Elsner NEW
Izzy V PaprockiBrazilXuxue Feng PROPOSAL
Leja K FerenczRussiaOnyama Limba NEGOTIATION
Misaki R TollnerBrazilIoni Bowcher NEW
Leja H BowleyAustraliaStephen Shaw PROPOSAL
Cody F RutaBrazilIvan Magalhaes NEGOTIATION
Greenwood G BologniaCanadaStephen Shaw UNQUALIFIED
Cody R CaldareraFranceAsiya Javayant NEW
Julie E SlusarskiBrazilElwin Sharvill NEGOTIATION
Jeanfrancois L BriddickAustraliaIvan Magalhaes QUALIFIED
Leon B AlbaresUnited KingdomAmy Elsner RENEWAL
Maisha W BologniaFranceBernardo Dominic UNQUALIFIED
Greenwood W WieserBrazilAmy Elsner NEGOTIATION
Claire R MorascaRussiaXuxue Feng RENEWAL
Francesco T SchemmerJapanOnyama Limba RENEWAL
Jeanfrancois G GauchoCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin Q AmigonItalyOnyama Limba UNQUALIFIED
Cody Y MacleadSpainAsiya Javayant UNQUALIFIED
Emily S InouyeBrazilAmy Elsner UNQUALIFIED
Greenwood S RoysterIndiaIvan Magalhaes PROPOSAL
Juan C AlbaresCanadaAmy Elsner RENEWAL
Aruna G PaprockiItalyAsiya Javayant NEW
Darci U GauchoSpainAmy Elsner QUALIFIED
James H MaletArgentinaXuxue Feng NEGOTIATION
Jones O MorascaSpainAmy Elsner NEW
Ivar F BriddickArgentinaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams C CaudyAustralia2026-07-18Dorl, James J Esq NEGOTIATION46Ivan Magalhaes
1001Misaki P DoeAustralia2026-07-15Feiner Bros PROPOSAL85Xuxue Feng
1002Octavia N WhobreyFrance2026-08-05Rangoni Of Florence PROPOSAL89Bernardo Dominic
1003Greenwood T SergiArgentina2026-08-05Printing Dimensions PROPOSAL64Bernardo Dominic
1004Tony I MorascaJapan2026-07-11Chemel, James L Cpa RENEWAL87Asiya Javayant
1005James N SaylorsItaly2026-08-02Commercial Press NEGOTIATION14Onyama Limba
1006Salvatore Z CaldareraItaly2026-07-27Rousseaux, Michael Esq NEGOTIATION36Amy Elsner
1007Rodrigues T BowleySpain2026-07-15Commercial Press QUALIFIED94Xuxue Feng
1008Munro L MarrierArgentina2026-07-20Chapman, Ross E Esq NEGOTIATION39Amy Elsner
1009Sinclair K AmigonIndia2026-07-12Dorl, James J Esq NEW71Asiya Javayant
1010Clifford O PaprockiFrance2026-07-25Chapman, Ross E Esq UNQUALIFIED96Ivan Magalhaes
1011Stacey M MacleadItaly2026-07-28Chapman, Ross E Esq NEGOTIATION11Asiya Javayant
1012Jefferson Z PerinFrance2026-07-14Truhlar And Truhlar Attys PROPOSAL55Bernardo Dominic
1013Tony L FerenczIndia2026-08-02Dorl, James J Esq RENEWAL54Bernardo Dominic
1014Juan X KolmetzIndia2026-07-29Feltz Printing Service RENEWAL26Ivan Magalhaes
1015Maisha Z PerinCanada2026-07-19Dorl, James J Esq QUALIFIED13Ioni Bowcher
1016Jeanfrancois Z MorascaBrazil2026-07-23Dorl, James J Esq QUALIFIED84Ioni Bowcher
1017Misaki S GarufiFrance2026-08-01Morlong Associates PROPOSAL79Ivan Magalhaes
1018James S FollerRussia2026-08-03Morlong Associates RENEWAL67Elwin Sharvill
1019Greenwood Z AmigonAustralia2026-07-20Rousseaux, Michael Esq PROPOSAL57Anna Fali
1020Sinclair B SergiFrance2026-07-14Chapman, Ross E Esq PROPOSAL76Amy Elsner
1021Wickens M OstroskyArgentina2026-08-08Truhlar And Truhlar Attys NEW32Stephen Shaw
1022Ricardo Q RutaIndia2026-07-28Benton, John B Jr PROPOSAL49Asiya Javayant
1023Jeanfrancois Z VocelkaArgentina2026-08-03Dorl, James J Esq NEGOTIATION93Xuxue Feng
1024Silvio S IturbideAustralia2026-08-08Rangoni Of Florence UNQUALIFIED63Anna Fali
1025Johnson H StockhamGermany2026-08-04Dorl, James J Esq UNQUALIFIED57Ioni Bowcher
1026Cody Q IturbideSpain2026-08-05Dorl, James J Esq UNQUALIFIED14Ioni Bowcher
1027Chavez D SlusarskiAustralia2026-07-28Feiner Bros UNQUALIFIED13Bernardo Dominic
1028Izzy Y GauchoAustralia2026-07-29Feltz Printing Service PROPOSAL53Ioni Bowcher
1029Ricardo V AmigonCanada2026-07-11Buckley Miller Wright PROPOSAL98Bernardo Dominic
1030Misaki G CaudyAustralia2026-08-05Chanay, Jeffrey A Esq UNQUALIFIED47Ivan Magalhaes
1031Francesco H WhobreyBrazil2026-08-09Chemel, James L Cpa QUALIFIED22Elwin Sharvill
1032Johnson N StockhamAustralia2026-08-08Commercial Press RENEWAL45Ioni Bowcher
1033Adams A DarakjyFrance2026-08-08Feltz Printing Service UNQUALIFIED73Stephen Shaw
1034Morrow R KolmetzGermany2026-08-06Truhlar And Truhlar Attys PROPOSAL18Amy Elsner
1035Jeanfrancois Y NestleArgentina2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED55Onyama Limba
1036James Y NickaJapan2026-08-05Chemel, James L Cpa PROPOSAL19Bernardo Dominic
1037Maria B KuskoSpain2026-07-23Chanay, Jeffrey A Esq QUALIFIED68Stephen Shaw
1038Deepesh S CaldareraBrazil2026-07-25Truhlar And Truhlar Attys NEGOTIATION98Onyama Limba
1039Alejandro J PerinItaly2026-07-26Chapman, Ross E Esq NEGOTIATION62Stephen Shaw
1040Greenwood Z DoeBrazil2026-08-04Rangoni Of Florence NEGOTIATION92Onyama Limba
1041Deepesh X RoysterIndia2026-08-05Dorl, James J Esq NEGOTIATION22Ioni Bowcher
1042Octavia F MorascaSpain2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED36Asiya Javayant
1043James X FollerArgentina2026-08-01King, Christopher A Esq NEW71Xuxue Feng
1044Morrow Y FerenczUnited Kingdom2026-07-28King, Christopher A Esq NEW72Ioni Bowcher
1045Clifford J GlickAustralia2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED32Ivan Magalhaes
1046Jones V RutaCanada2026-07-21Chanay, Jeffrey A Esq PROPOSAL76Amy Elsner
1047Kadeem L GlickRussia2026-07-28Printing Dimensions NEW97Stephen Shaw
1048Faith Z ShinkoAustralia2026-07-18Buckley Miller Wright NEW88Bernardo Dominic
1049Deepesh H ChuiFrance2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED85Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jennifer T SchemmerIndiaStephen Shaw PROPOSAL
Ivar R GillianUnited KingdomBernardo Dominic QUALIFIED
Antonio X WieserRussiaStephen Shaw RENEWAL
Ivar W BowleyFranceStephen Shaw PROPOSAL
Chavez P SchemmerSpainBernardo Dominic NEW
Maria A KolmetzRussiaElwin Sharvill PROPOSAL
Morrow D CaldareraAustraliaStephen Shaw QUALIFIED
Stacey N GauchoBrazilElwin Sharvill UNQUALIFIED
Francesco O ChuiRussiaBernardo Dominic UNQUALIFIED
Izzy V RoysterAustraliaIoni Bowcher RENEWAL
Izzy F IturbideIndiaXuxue Feng NEGOTIATION
Rodrigues O SlusarskiSpainAnna Fali RENEWAL
Aika A KolmetzSpainStephen Shaw UNQUALIFIED
Kadeem W MorascaFranceIvan Magalhaes NEGOTIATION
Deepesh S NestleIndiaIoni Bowcher QUALIFIED
Jones W KuskoBrazilAnna Fali UNQUALIFIED
Francesco A CaldareraItalyBernardo Dominic UNQUALIFIED
Isabel E FlosiSpainStephen Shaw PROPOSAL
James T NickaAustraliaIoni Bowcher NEGOTIATION
Johnson J GillianCanadaElwin Sharvill NEW
David W BologniaGermanyIvan Magalhaes PROPOSAL
Maisha C WhobreyUnited KingdomAnna Fali QUALIFIED
Clifford H OstroskyAustraliaBernardo Dominic NEW
Aruna M GlickArgentinaAsiya Javayant RENEWAL
Kaitlin P NickaAustraliaAmy Elsner RENEWAL
Jones L FlosiItalyAnna Fali NEGOTIATION
Silvio G CampainCanadaBernardo Dominic QUALIFIED
Chavez S AlbaresItalyElwin Sharvill QUALIFIED
Aruna W SaylorsItalyXuxue Feng PROPOSAL
Mujtaba S GauchoGermanyXuxue Feng RENEWAL
Cody O RoysterUnited KingdomAmy Elsner NEW
Clifford A RoysterAustraliaAsiya Javayant QUALIFIED
Emily M InouyeFranceAmy Elsner NEGOTIATION
Costa F BriddickFranceXuxue Feng NEW
Juan J GauchoItalyBernardo Dominic PROPOSAL
Ricardo R NickaRussiaAsiya Javayant UNQUALIFIED
Nicolas O DoeJapanAmy Elsner QUALIFIED
Rodrigues P NickaUnited KingdomOnyama Limba UNQUALIFIED
Aruna G GarufiBrazilXuxue Feng QUALIFIED
Ashley E ShinkoArgentinaXuxue Feng NEGOTIATION
Nicolas O GarufiSpainXuxue Feng PROPOSAL
Munro Q AmigonAustraliaOnyama Limba QUALIFIED
Rodrigues C PerinItalyXuxue Feng NEW
Murillo G CaudyFranceIoni Bowcher RENEWAL
Maria J GarufiSpainBernardo Dominic NEGOTIATION
Isabel R RimFranceAsiya Javayant NEW
Alejandro Q MaletFranceBernardo Dominic NEGOTIATION
Octavia E RulapaughIndiaXuxue Feng NEGOTIATION
Morrow X MorascaIndiaAnna Fali NEW
Leon P MarrierRussiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Tony G Dilliard
Juan U Saylors
Leja K Ferencz
Jefferson Z Darakjy
Stacey G Glick
Silvio H Ferencz
Claire V Whobrey
Antonio A Ostrosky
Jones W Kolmetz
Kadeem X Kusko
Nicolas W Gaucho
Antonio Y Bowley
Sinclair O Tollner
Ashley U Morasca
Cody N Rulapaugh
Kaitlin P Vocelka
Leon S Dilliard
Smith H Morasca
Francesco H Darakjy
Ricardo V Nestle
Jennifer K Sergi
Jeanfrancois E Caudy
Jones W Doe
Salvatore A Glick
Morrow B Briddick
Izzy F Venere
Leja M Vocelka
Aditya P Dilliard
Darci G Saylors
Mujtaba H Caudy
Johnson R Saylors
Jones I Dilliard
Cody A Rulapaugh
Ivar X Perin
Smith W Morasca
Jones J Kolmetz
Tony S Figeroa
Stacey G Nicka
David R Kolmetz
Murillo I Chui
Antonio S Inouye
Juan T Ferencz
Isabel M Perin
Jones A Rulapaugh
Jones F Campain
Silvio B Wieser
Kaitlin M Marrier
Aika A Saylors
Arvin T Ruta
Aika A Butt
IdCountryDate
1000Spain2026-07-26
1001India2026-07-18
1002Japan2026-07-16
1003Australia2026-07-21
1004Russia2026-07-29
1005Italy2026-07-11
1006Argentina2026-07-28
1007United Kingdom2026-07-15
1008India2026-07-22
1009Argentina2026-07-11
1010Spain2026-07-23
1011Italy2026-07-22
1012Brazil2026-08-09
1013Russia2026-07-13
1014Canada2026-07-28
1015France2026-07-24
1016Germany2026-08-03
1017Brazil2026-07-21
1018Japan2026-07-24
1019Argentina2026-07-29
1020Brazil2026-07-31
1021Canada2026-08-02
1022United Kingdom2026-07-21
1023India2026-07-21
1024Italy2026-08-06
1025Canada2026-07-22
1026Japan2026-07-29
1027Japan2026-08-04
1028Russia2026-07-15
1029India2026-07-16
1030Argentina2026-08-08
1031Argentina2026-07-19
1032Spain2026-07-28
1033Japan2026-07-11
1034Spain2026-07-25
1035Australia2026-08-03
1036Australia2026-07-28
1037Japan2026-08-04
1038United Kingdom2026-07-25
1039Australia2026-08-03
1040United Kingdom2026-07-15
1041Brazil2026-07-28
1042Germany2026-07-15
1043Germany2026-08-08
1044India2026-07-31
1045France2026-07-22
1046United Kingdom2026-07-31
1047Italy2026-07-22
1048Argentina2026-07-22
1049Australia2026-07-16

On-Demand Data

NameIdCountryDate
Salvatore L Ruta1000Brazil2026-08-08
Jennifer V Rim1001Italy2026-07-13
David N Stenseth1002France2026-08-07
Wickens S Maclead1003United Kingdom2026-08-04
Jeanfrancois M Venere1004United Kingdom2026-07-29
Mujtaba Y Schemmer1005Germany2026-07-26
Tony E Iturbide1006Italy2026-07-25
Misaki H Perin1007Germany2026-07-14
Juan X Darakjy1008Canada2026-07-24
Chavez M Albares1009Italy2026-07-11
Aditya C Malet1010Argentina2026-07-17
Faith Q Nicka1011United Kingdom2026-07-24
Smith S Campain1012Canada2026-08-07
Sinclair Q Kusko1013Canada2026-07-18
Ricardo H Bowley1014Japan2026-07-15
Munro V Caldarera1015Brazil2026-07-24
Costa E Ferencz1016United Kingdom2026-08-08
Emily F Foller1017Argentina2026-07-27
Rodrigues A Foller1018Russia2026-08-01
Chavez E Garufi1019Germany2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria F IturbideItalyElwin Sharvill NEGOTIATION
Chavez I FollerItalyAnna Fali RENEWAL
Greenwood X GlickBrazilXuxue Feng PROPOSAL
Emily R PoquetteRussiaOnyama Limba UNQUALIFIED
Mayumi T FigeroaUnited KingdomStephen Shaw RENEWAL
Jefferson P BologniaItalyXuxue Feng NEW
Costa U BowleyItalyBernardo Dominic RENEWAL
Jefferson K BriddickBrazilAnna Fali QUALIFIED
Silvio N RoysterItalyElwin Sharvill QUALIFIED
Chavez I CaldareraCanadaIvan Magalhaes RENEWAL
Alejandro F GarufiSpainIvan Magalhaes QUALIFIED
Misaki Y FollerFranceStephen Shaw NEGOTIATION
Aika O RutaCanadaAsiya Javayant UNQUALIFIED
Rodrigues S OstroskyItalyElwin Sharvill UNQUALIFIED
Juan Y MaletBrazilIvan Magalhaes PROPOSAL
Leon I SchemmerAustraliaAsiya Javayant RENEWAL
Jeanfrancois T InouyeBrazilStephen Shaw NEW
Juan V MaletAustraliaStephen Shaw NEGOTIATION
Emily S GlickBrazilAmy Elsner UNQUALIFIED
Mujtaba B CaldareraArgentinaXuxue Feng NEGOTIATION
Stacey X FigeroaCanadaIvan Magalhaes QUALIFIED
Ivar I GlickRussiaIoni Bowcher NEGOTIATION
Mayumi E WieserAustraliaAnna Fali UNQUALIFIED
Sinclair L MorascaCanadaIvan Magalhaes RENEWAL
Clifford O CaudyIndiaAmy Elsner QUALIFIED
Jennifer D PaprockiGermanyElwin Sharvill UNQUALIFIED
Munro M StensethItalyIoni Bowcher NEGOTIATION
Silvio F SaylorsBrazilIoni Bowcher QUALIFIED
Jefferson H MacleadSpainElwin Sharvill UNQUALIFIED
Alejandro B AmigonAustraliaAsiya Javayant NEGOTIATION
Chavez T SergiIndiaBernardo Dominic NEGOTIATION
Smith D OldroydUnited KingdomBernardo Dominic PROPOSAL
Kadeem D BowleyFranceElwin Sharvill PROPOSAL
Chavez B IturbideCanadaAnna Fali QUALIFIED
Arvin Z IturbideGermanyIoni Bowcher UNQUALIFIED
Chavez L SchemmerCanadaAnna Fali UNQUALIFIED
Cody G ChuiIndiaStephen Shaw NEGOTIATION
Salvatore J MacleadAustraliaElwin Sharvill PROPOSAL
Aika D DoeUnited KingdomXuxue Feng UNQUALIFIED
Sinclair O IturbideSpainIvan Magalhaes NEW

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