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 D StensethItalyIvan Magalhaes NEW
James M MarrierItalyElwin Sharvill QUALIFIED
Cody J SergiCanadaStephen Shaw QUALIFIED
Costa Y ChuiIndiaOnyama Limba UNQUALIFIED
David K DoeCanadaIvan Magalhaes PROPOSAL
Misaki I WieserItalyBernardo Dominic QUALIFIED
Octavia L TollnerCanadaAsiya Javayant PROPOSAL
Antonio Q CampainItalyAmy Elsner PROPOSAL
Clifford N CaldareraFranceStephen Shaw QUALIFIED
Leja Z FlosiCanadaIoni Bowcher NEW
Jefferson G PoquetteItalyStephen Shaw NEGOTIATION
Mujtaba K RoysterArgentinaAmy Elsner NEW
Greenwood A PoquetteCanadaAnna Fali QUALIFIED
Alejandro U GlickItalyBernardo Dominic NEW
Claire I NestleSpainStephen Shaw NEGOTIATION
Darci J SlusarskiItalyXuxue Feng UNQUALIFIED
Costa F VocelkaBrazilAnna Fali NEGOTIATION
Morrow T TollnerArgentinaStephen Shaw NEGOTIATION
Greenwood R GlickGermanyOnyama Limba UNQUALIFIED
Antonio U BologniaAustraliaIvan Magalhaes RENEWAL
Wickens M CaldareraRussiaOnyama Limba QUALIFIED
Kadeem Y MaletRussiaElwin Sharvill PROPOSAL
Mayumi Y SlusarskiIndiaIoni Bowcher UNQUALIFIED
Munro Q SergiCanadaOnyama Limba PROPOSAL
Rodrigues U AlbaresJapanAsiya Javayant UNQUALIFIED
Juan B IturbideAustraliaAmy Elsner NEW
Stacey T FlosiArgentinaXuxue Feng UNQUALIFIED
Ricardo O CaldareraCanadaElwin Sharvill RENEWAL
Aditya X CaldareraGermanyIvan Magalhaes UNQUALIFIED
Costa K CaudyFranceAmy Elsner PROPOSAL
Ricardo N DarakjyUnited KingdomBernardo Dominic RENEWAL
Rodrigues D MarrierItalyStephen Shaw NEGOTIATION
Rodrigues O DoeRussiaAsiya Javayant NEGOTIATION
Stacey B BowleyUnited KingdomXuxue Feng NEGOTIATION
Aruna W CaudyFranceIvan Magalhaes QUALIFIED
Aruna U AlbaresArgentinaXuxue Feng NEGOTIATION
Alejandro X FerenczUnited KingdomAnna Fali RENEWAL
Leon X StockhamJapanStephen Shaw NEW
Silvio N ChuiItalyXuxue Feng PROPOSAL
Izzy U KolmetzBrazilAsiya Javayant QUALIFIED
Jefferson Q AlbaresAustraliaElwin Sharvill NEGOTIATION
Tony L PaprockiItalyIoni Bowcher NEW
Kaitlin N NestleArgentinaAnna Fali UNQUALIFIED
Jones K StensethJapanBernardo Dominic QUALIFIED
Ivar S StockhamSpainXuxue Feng UNQUALIFIED
Wickens I KuskoBrazilAsiya Javayant RENEWAL
Clifford G DarakjyBrazilIoni Bowcher QUALIFIED
Nicolas B NickaBrazilXuxue Feng NEW
Emily K StensethArgentinaIoni Bowcher QUALIFIED
Jefferson W OldroydUnited KingdomBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba O VenereJapanOnyama Limba NEGOTIATION
Kadeem J CaldareraUnited KingdomIoni Bowcher NEW
James J DoeItalyElwin Sharvill QUALIFIED
James P OstroskyCanadaAnna Fali UNQUALIFIED
Emily P ShinkoUnited KingdomAnna Fali NEGOTIATION
Juan X PaprockiGermanyXuxue Feng QUALIFIED
Greenwood U VocelkaItalyAsiya Javayant QUALIFIED
Greenwood I KolmetzGermanyAmy Elsner RENEWAL
Johnson G PaprockiArgentinaElwin Sharvill PROPOSAL
Nicolas G DilliardArgentinaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh G MacleadSpain2025-05-04Morlong Associates PROPOSAL53Amy Elsner
1001Izzy Z RoysterIndia2025-05-27Dorl, James J Esq NEGOTIATION17Ivan Magalhaes
1002Arvin B OstroskyIndia2025-05-08Rousseaux, Michael Esq QUALIFIED81Anna Fali
1003Murillo M RimItaly2025-05-08Buckley Miller Wright RENEWAL50Stephen Shaw
1004Chavez A FollerUnited Kingdom2025-05-19Rousseaux, Michael Esq QUALIFIED54Amy Elsner
1005Silvio C SaylorsUnited Kingdom2025-05-28Morlong Associates PROPOSAL26Elwin Sharvill
1006Julie J MarrierGermany2025-05-28Morlong Associates UNQUALIFIED16Amy Elsner
1007Adams O AmigonAustralia2025-06-02Buckley Miller Wright NEGOTIATION46Anna Fali
1008Jennifer Z BowleySpain2025-05-04Rousseaux, Michael Esq QUALIFIED60Bernardo Dominic
1009Wickens B CampainItaly2025-05-12Buckley Miller Wright RENEWAL6Asiya Javayant
1010Murillo T FlosiCanada2025-05-19Chemel, James L Cpa NEGOTIATION50Xuxue Feng
1011Sinclair J FerenczAustralia2025-05-31Rangoni Of Florence NEW54Onyama Limba
1012Rodrigues W SaylorsFrance2025-05-31Dorl, James J Esq NEGOTIATION53Anna Fali
1013Octavia R InouyeJapan2025-05-18Chanay, Jeffrey A Esq RENEWAL47Xuxue Feng
1014Costa H MaletGermany2025-05-17Chapman, Ross E Esq UNQUALIFIED64Asiya Javayant
1015Kaitlin T VocelkaFrance2025-05-08Dorl, James J Esq NEW95Stephen Shaw
1016Greenwood G FerenczGermany2025-05-08Commercial Press PROPOSAL76Bernardo Dominic
1017Octavia K AlbaresJapan2025-05-21King, Christopher A Esq NEW62Ivan Magalhaes
1018Aruna Y DarakjySpain2025-05-17Feltz Printing Service PROPOSAL3Asiya Javayant
1019Ashley I GillianArgentina2025-05-26Chanay, Jeffrey A Esq RENEWAL60Ioni Bowcher
1020Morrow B FigeroaCanada2025-05-24Rousseaux, Michael Esq RENEWAL23Ivan Magalhaes
1021Claire Z InouyeUnited Kingdom2025-05-23Dorl, James J Esq NEGOTIATION54Xuxue Feng
1022Jones U VocelkaGermany2025-05-23Truhlar And Truhlar Attys UNQUALIFIED31Anna Fali
1023Leon D NickaArgentina2025-05-14Buckley Miller Wright UNQUALIFIED35Anna Fali
1024Tony S VocelkaArgentina2025-05-09Dorl, James J Esq NEGOTIATION17Ioni Bowcher
1025Wickens W PerinItaly2025-05-17Printing Dimensions PROPOSAL97Onyama Limba
1026Leon S FollerIndia2025-05-10Printing Dimensions PROPOSAL42Ioni Bowcher
1027Munro M GarufiIndia2025-05-08Truhlar And Truhlar Attys NEW94Ioni Bowcher
1028Julie W SlusarskiSpain2025-05-12Chemel, James L Cpa NEW47Ioni Bowcher
1029Deepesh V ShinkoUnited Kingdom2025-05-27Truhlar And Truhlar Attys QUALIFIED66Ioni Bowcher
1030Jefferson X BriddickBrazil2025-05-23Commercial Press PROPOSAL88Ioni Bowcher
1031Murillo V KolmetzGermany2025-05-06Chapman, Ross E Esq UNQUALIFIED14Ivan Magalhaes
1032Emily Q SchemmerArgentina2025-05-31Commercial Press QUALIFIED46Elwin Sharvill
1033Claire K RoysterFrance2025-05-23Commercial Press NEW89Anna Fali
1034Adams W GlickBrazil2025-05-06King, Christopher A Esq RENEWAL13Xuxue Feng
1035Greenwood J FollerItaly2025-05-27Printing Dimensions RENEWAL79Bernardo Dominic
1036Ricardo H VocelkaArgentina2025-05-17Commercial Press RENEWAL58Onyama Limba
1037Johnson Q InouyeItaly2025-05-16Feiner Bros PROPOSAL3Stephen Shaw
1038Alejandro V CaudyArgentina2025-05-12Buckley Miller Wright NEGOTIATION98Amy Elsner
1039Wickens D MorascaBrazil2025-05-10Buckley Miller Wright NEGOTIATION80Xuxue Feng
1040Cody L KolmetzFrance2025-05-08Truhlar And Truhlar Attys RENEWAL65Stephen Shaw
1041Aika Q WaycottSpain2025-05-20Buckley Miller Wright QUALIFIED76Elwin Sharvill
1042Jones A BowleyRussia2025-05-16Dorl, James J Esq PROPOSAL65Xuxue Feng
1043Misaki O FigeroaIndia2025-05-15Feiner Bros PROPOSAL81Xuxue Feng
1044Silvio K StensethAustralia2025-05-29Rousseaux, Michael Esq NEW87Xuxue Feng
1045Wickens N NestleSpain2025-05-25Morlong Associates NEGOTIATION25Ioni Bowcher
1046Munro S PaprockiCanada2025-05-21Feltz Printing Service RENEWAL84Ivan Magalhaes
1047Deepesh C StockhamIndia2025-06-01Morlong Associates UNQUALIFIED76Asiya Javayant
1048Kaitlin G IturbideBrazil2025-05-04Benton, John B Jr NEW45Ivan Magalhaes
1049Leja I MaletCanada2025-05-28Truhlar And Truhlar Attys UNQUALIFIED16Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Smith N AlbaresRussiaStephen Shaw NEW
Johnson M CaldareraItalyAmy Elsner PROPOSAL
Alejandro P PerinRussiaAnna Fali NEGOTIATION
Leon X PerinCanadaIoni Bowcher PROPOSAL
Ricardo T ChuiArgentinaIvan Magalhaes NEGOTIATION
Darci C DilliardAustraliaOnyama Limba NEGOTIATION
Misaki Z DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Arvin U BriddickUnited KingdomIvan Magalhaes NEW
Mujtaba Z MacleadUnited KingdomAnna Fali UNQUALIFIED
Jones S AmigonBrazilBernardo Dominic NEGOTIATION
Misaki Y GauchoCanadaStephen Shaw NEGOTIATION
Mayumi Y WhobreyAustraliaAsiya Javayant PROPOSAL
Nicolas N MorascaBrazilElwin Sharvill PROPOSAL
Jeanfrancois Q WieserBrazilAmy Elsner NEGOTIATION
Leja H WieserAustraliaIvan Magalhaes RENEWAL
Maria D ChuiFranceIoni Bowcher NEGOTIATION
Salvatore F BologniaGermanyAmy Elsner UNQUALIFIED
Emily D TollnerFranceIoni Bowcher QUALIFIED
Aika K OldroydCanadaOnyama Limba NEGOTIATION
Aditya E OldroydFranceOnyama Limba NEGOTIATION
Clifford V FerenczItalyBernardo Dominic NEW
Murillo R FerenczBrazilElwin Sharvill UNQUALIFIED
Salvatore Y RulapaughJapanStephen Shaw PROPOSAL
Munro O KuskoSpainXuxue Feng PROPOSAL
Salvatore O DoeArgentinaIvan Magalhaes QUALIFIED
Jefferson L GarufiAustraliaOnyama Limba RENEWAL
Maria B ShinkoFranceOnyama Limba NEGOTIATION
Leja R MaletRussiaAmy Elsner QUALIFIED
Emily L WieserRussiaAnna Fali RENEWAL
Sinclair U NickaGermanyAmy Elsner NEGOTIATION
Octavia H MacleadRussiaElwin Sharvill PROPOSAL
Wickens H GarufiGermanyIoni Bowcher NEGOTIATION
Ivar A MacleadItalyStephen Shaw NEGOTIATION
Maisha T PerinAustraliaXuxue Feng QUALIFIED
Smith W PoquetteRussiaBernardo Dominic UNQUALIFIED
Francesco J ButtCanadaBernardo Dominic NEW
Clifford Z CaldareraIndiaStephen Shaw PROPOSAL
Salvatore K ButtBrazilAsiya Javayant NEW
Salvatore K KuskoItalyElwin Sharvill UNQUALIFIED
Juan W PerinAustraliaAsiya Javayant QUALIFIED
Maisha V VenereIndiaElwin Sharvill UNQUALIFIED
Claire I PoquetteAustraliaAmy Elsner QUALIFIED
Kadeem K WhobreyItalyBernardo Dominic NEGOTIATION
Salvatore S RoysterGermanyIoni Bowcher UNQUALIFIED
Francesco K SaylorsBrazilOnyama Limba UNQUALIFIED
Ivar O VenereArgentinaOnyama Limba RENEWAL
Maisha A GarufiFranceAsiya Javayant NEGOTIATION
Ivar D FerenczGermanyBernardo Dominic PROPOSAL
Adams A GlickUnited KingdomAnna Fali QUALIFIED
Isabel G RoysterUnited KingdomStephen Shaw RENEWAL
Frozen Columns
Name
Aruna S Amigon
Izzy X Poquette
Octavia S Tollner
Juan D Butt
Leja Q Gillian
Aika I Paprocki
Jones H Vocelka
Greenwood M Saylors
Misaki P Waycott
Antonio Z Doe
David V Briddick
Jones T Briddick
Claire U Waycott
Isabel D Garufi
Alejandro P Ruta
Wickens R Ferencz
Silvio C Bowley
Maisha M Doe
Maisha C Figeroa
Aditya Q Briddick
Munro O Marrier
Jones M Briddick
Tony T Campain
Aika V Paprocki
Izzy X Amigon
Aditya U Butt
Aruna H Caudy
Chavez S Figeroa
Aika G Bowley
Stacey U Ruta
Isabel M Saylors
Alejandro N Poquette
Darci O Poquette
Greenwood G Waycott
Sinclair S Poquette
Rodrigues D Dilliard
Mujtaba U Kusko
Murillo C Schemmer
Nicolas V Stenseth
Costa K Doe
Faith H Ostrosky
Mujtaba G Morasca
Salvatore L Figeroa
Murillo S Doe
Ricardo C Stockham
Maisha L Ruta
Arvin X Rulapaugh
Cody V Caudy
Maisha D Bolognia
Wickens V Campain
IdCountryDate
1000Brazil2025-05-08
1001Argentina2025-05-17
1002Brazil2025-05-31
1003Canada2025-05-27
1004Spain2025-05-19
1005India2025-05-09
1006Japan2025-05-30
1007Germany2025-05-19
1008Argentina2025-05-18
1009Italy2025-05-19
1010Italy2025-05-08
1011Russia2025-05-08
1012Russia2025-05-28
1013France2025-05-30
1014India2025-05-18
1015Japan2025-05-04
1016Russia2025-05-13
1017Russia2025-06-01
1018India2025-05-30
1019Canada2025-05-18
1020Germany2025-05-27
1021Argentina2025-05-10
1022India2025-06-01
1023Spain2025-05-04
1024Spain2025-05-14
1025Australia2025-05-28
1026Brazil2025-05-13
1027Germany2025-05-23
1028Italy2025-06-02
1029Russia2025-05-19
1030United Kingdom2025-05-30
1031Argentina2025-05-18
1032United Kingdom2025-05-25
1033Spain2025-06-01
1034Brazil2025-05-09
1035France2025-05-20
1036India2025-05-29
1037Brazil2025-06-02
1038Italy2025-05-29
1039India2025-05-23
1040Germany2025-05-20
1041Australia2025-06-02
1042Italy2025-05-23
1043Japan2025-05-07
1044Argentina2025-05-12
1045Germany2025-05-22
1046France2025-05-11
1047Spain2025-05-05
1048Germany2025-05-12
1049Australia2025-05-29

On-Demand Data

NameIdCountryDate
Aruna C Bowley1000Italy2025-06-02
Julie Y Stenseth1001Italy2025-05-20
Rodrigues M Darakjy1002Brazil2025-05-23
Juan A Waycott1003Argentina2025-05-20
Tony O Nestle1004Argentina2025-05-06
Jefferson I Amigon1005Germany2025-05-08
Aika F Bolognia1006Italy2025-05-14
Claire L Caldarera1007Australia2025-05-19
Misaki P Gillian1008Japan2025-05-12
Aruna Z Vocelka1009Australia2025-05-17
James X Rim1010United Kingdom2025-05-19
Rodrigues T Whobrey1011Brazil2025-05-25
Tony K Stenseth1012Australia2025-05-16
Ashley G Butt1013Italy2025-05-21
Salvatore L Schemmer1014Germany2025-05-29
Darci Y Gillian1015Brazil2025-05-15
Aditya P Schemmer1016Italy2025-05-22
Octavia I Nicka1017Italy2025-05-06
Silvio J Nicka1018Canada2025-05-30
Adams G Whobrey1019Brazil2025-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin F BowleyIndiaXuxue Feng UNQUALIFIED
Jefferson B RulapaughAustraliaAmy Elsner NEW
Jefferson Y WhobreyRussiaAsiya Javayant PROPOSAL
Nicolas Q CaudyGermanyAsiya Javayant NEW
Rodrigues Z SergiJapanAmy Elsner QUALIFIED
Aditya C AmigonUnited KingdomOnyama Limba NEW
Adams D MorascaSpainXuxue Feng UNQUALIFIED
Morrow G OldroydAustraliaStephen Shaw PROPOSAL
Murillo A IturbideRussiaAmy Elsner NEW
Jennifer T NickaGermanyElwin Sharvill UNQUALIFIED
Murillo Y ShinkoItalyIoni Bowcher RENEWAL
Murillo H DoeGermanyAnna Fali UNQUALIFIED
Darci F OldroydItalyElwin Sharvill QUALIFIED
Faith L RimSpainElwin Sharvill NEGOTIATION
Izzy B IturbideCanadaAnna Fali UNQUALIFIED
Smith U SlusarskiIndiaElwin Sharvill PROPOSAL
Aditya R GlickRussiaOnyama Limba UNQUALIFIED
Aika K SlusarskiAustraliaElwin Sharvill NEGOTIATION
Aditya M KuskoUnited KingdomAsiya Javayant NEGOTIATION
Sinclair P GauchoRussiaIoni Bowcher QUALIFIED
Jefferson S BowleyAustraliaIoni Bowcher NEGOTIATION
Faith M CaldareraJapanAnna Fali NEGOTIATION
Mujtaba O DoeIndiaOnyama Limba NEW
Julie J VocelkaGermanyAsiya Javayant RENEWAL
Nicolas B ChuiUnited KingdomStephen Shaw UNQUALIFIED
Costa E WaycottArgentinaStephen Shaw NEGOTIATION
Tony O InouyeRussiaIvan Magalhaes UNQUALIFIED
Morrow I CaudyJapanXuxue Feng QUALIFIED
Murillo J WieserAustraliaAsiya Javayant UNQUALIFIED
Costa O NestleGermanyStephen Shaw NEGOTIATION
Chavez T SaylorsBrazilIoni Bowcher PROPOSAL
Ashley X MacleadAustraliaAsiya Javayant NEGOTIATION
Francesco K BriddickUnited KingdomIoni Bowcher QUALIFIED
Jefferson G CaudyJapanStephen Shaw QUALIFIED
Munro L StockhamItalyAsiya Javayant RENEWAL
Ricardo J MaletAustraliaIvan Magalhaes NEW
Jefferson W FigeroaRussiaElwin Sharvill QUALIFIED
Ashley K RulapaughCanadaAnna Fali NEGOTIATION
Jefferson P DoeIndiaAsiya Javayant QUALIFIED
Rodrigues A RulapaughIndiaIoni Bowcher 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>