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
Francesco D VenereGermanyXuxue Feng NEGOTIATION
Stacey X ShinkoSpainXuxue Feng UNQUALIFIED
Nicolas C RimGermanyElwin Sharvill NEGOTIATION
Aruna Z CampainUnited KingdomAnna Fali NEW
Mayumi R TollnerCanadaIvan Magalhaes UNQUALIFIED
Munro Z NickaGermanyStephen Shaw NEW
Faith I RimAustraliaBernardo Dominic PROPOSAL
Maisha N SlusarskiBrazilStephen Shaw QUALIFIED
Faith C RoysterRussiaAnna Fali NEW
Jeanfrancois Q MaletArgentinaBernardo Dominic UNQUALIFIED
Octavia Q PerinArgentinaStephen Shaw NEGOTIATION
Sinclair I NickaSpainAsiya Javayant NEGOTIATION
Wickens P CampainJapanElwin Sharvill NEGOTIATION
Aika J WieserUnited KingdomAsiya Javayant NEW
Rodrigues N GarufiUnited KingdomAmy Elsner PROPOSAL
Emily J StensethJapanAsiya Javayant NEW
Darci G KolmetzFranceIvan Magalhaes NEW
Nicolas J FigeroaGermanyAnna Fali QUALIFIED
Francesco I SaylorsRussiaAmy Elsner QUALIFIED
Rodrigues M RulapaughIndiaXuxue Feng UNQUALIFIED
Adams U GillianIndiaOnyama Limba NEGOTIATION
Silvio D CaldareraRussiaElwin Sharvill NEGOTIATION
Johnson B StockhamBrazilOnyama Limba NEW
Jefferson T WieserGermanyAnna Fali RENEWAL
Mujtaba Q MarrierJapanAnna Fali QUALIFIED
Izzy V MaletRussiaAsiya Javayant UNQUALIFIED
Mujtaba M PerinJapanAmy Elsner UNQUALIFIED
Ricardo O MaletSpainXuxue Feng UNQUALIFIED
Silvio R DilliardRussiaAmy Elsner RENEWAL
Johnson R KolmetzArgentinaElwin Sharvill NEGOTIATION
Munro O GarufiBrazilAnna Fali UNQUALIFIED
Arvin B PoquetteArgentinaXuxue Feng PROPOSAL
Jeanfrancois F OldroydCanadaElwin Sharvill RENEWAL
Aika I BriddickSpainIoni Bowcher NEW
Misaki N RoysterIndiaXuxue Feng RENEWAL
Antonio Q MorascaIndiaXuxue Feng RENEWAL
Juan J FerenczBrazilElwin Sharvill RENEWAL
Jefferson I InouyeArgentinaAsiya Javayant PROPOSAL
Antonio G DarakjyAustraliaBernardo Dominic NEW
Clifford E GillianCanadaIvan Magalhaes PROPOSAL
Ivar E StensethGermanyAnna Fali NEGOTIATION
Ivar L DoeUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson K SlusarskiCanadaIvan Magalhaes NEGOTIATION
Claire K BowleyIndiaOnyama Limba PROPOSAL
Octavia R SchemmerItalyElwin Sharvill NEW
Ricardo W GillianJapanBernardo Dominic NEGOTIATION
Arvin Y SlusarskiSpainStephen Shaw RENEWAL
Claire W RulapaughCanadaXuxue Feng NEW
Aruna W SchemmerJapanIvan Magalhaes RENEWAL
Ricardo B RulapaughRussiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody S PaprockiJapanOnyama Limba NEGOTIATION
Ashley S BologniaSpainElwin Sharvill PROPOSAL
Deepesh B WieserGermanyAsiya Javayant PROPOSAL
Ashley F MaletCanadaIvan Magalhaes RENEWAL
Kadeem A RoysterUnited KingdomBernardo Dominic NEW
Arvin X DilliardUnited KingdomAsiya Javayant PROPOSAL
Wickens Q NestleUnited KingdomIvan Magalhaes NEW
Faith I KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Chavez P NestleRussiaAsiya Javayant NEGOTIATION
Leon G GarufiRussiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon V GarufiAustralia2025-05-28Truhlar And Truhlar Attys UNQUALIFIED83Ioni Bowcher
1001Ivar M StockhamFrance2025-05-27Benton, John B Jr NEGOTIATION26Elwin Sharvill
1002Aruna F StockhamJapan2025-06-07Rousseaux, Michael Esq PROPOSAL69Ivan Magalhaes
1003Kadeem O SchemmerAustralia2025-06-07Buckley Miller Wright NEW95Elwin Sharvill
1004Silvio E PoquetteAustralia2025-05-21Feiner Bros RENEWAL42Ivan Magalhaes
1005Emily Z PaprockiGermany2025-05-19Commercial Press QUALIFIED65Bernardo Dominic
1006Maisha E CaudyCanada2025-05-19King, Christopher A Esq UNQUALIFIED90Onyama Limba
1007Ashley A BologniaGermany2025-05-22Truhlar And Truhlar Attys NEW91Asiya Javayant
1008Jeanfrancois S DoeGermany2025-05-27Morlong Associates PROPOSAL48Bernardo Dominic
1009Tony E SergiIndia2025-05-30Feltz Printing Service RENEWAL39Bernardo Dominic
1010Silvio I OldroydSpain2025-05-22Chanay, Jeffrey A Esq NEW23Bernardo Dominic
1011Aika C FigeroaRussia2025-06-05Printing Dimensions UNQUALIFIED58Onyama Limba
1012Kaitlin G SergiJapan2025-05-23Chemel, James L Cpa UNQUALIFIED51Onyama Limba
1013Munro J KuskoBrazil2025-05-23Truhlar And Truhlar Attys PROPOSAL6Onyama Limba
1014Mayumi K BriddickItaly2025-06-15Benton, John B Jr UNQUALIFIED35Elwin Sharvill
1015Leja P DoeIndia2025-05-31Chapman, Ross E Esq QUALIFIED56Xuxue Feng
1016Ricardo D FigeroaItaly2025-05-29Feltz Printing Service NEW60Ivan Magalhaes
1017Arvin K OstroskyCanada2025-05-29Rousseaux, Michael Esq NEW11Onyama Limba
1018Murillo R PaprockiJapan2025-05-31Commercial Press QUALIFIED67Elwin Sharvill
1019Aika T SlusarskiSpain2025-05-18Buckley Miller Wright NEW50Bernardo Dominic
1020Clifford G DarakjyJapan2025-06-13Buckley Miller Wright NEW1Bernardo Dominic
1021Emily M DoeSpain2025-06-04Commercial Press RENEWAL70Amy Elsner
1022Smith B SergiItaly2025-05-25Chanay, Jeffrey A Esq RENEWAL69Xuxue Feng
1023Misaki Y CaldareraUnited Kingdom2025-05-23Rangoni Of Florence RENEWAL97Bernardo Dominic
1024Morrow M DilliardSpain2025-06-05Chapman, Ross E Esq QUALIFIED12Xuxue Feng
1025David P SlusarskiGermany2025-06-10Printing Dimensions UNQUALIFIED34Xuxue Feng
1026Mayumi K BologniaAustralia2025-05-20Chanay, Jeffrey A Esq NEW62Anna Fali
1027Sinclair X VenereRussia2025-06-02Chapman, Ross E Esq RENEWAL9Ioni Bowcher
1028Kaitlin N IturbideJapan2025-05-24Benton, John B Jr UNQUALIFIED11Ioni Bowcher
1029Sinclair D IturbideJapan2025-06-01Truhlar And Truhlar Attys QUALIFIED33Asiya Javayant
1030Aika C OstroskyGermany2025-06-14Feiner Bros PROPOSAL34Elwin Sharvill
1031Aditya I FerenczBrazil2025-06-07Commercial Press QUALIFIED27Anna Fali
1032Tony N CaldareraJapan2025-05-21Chanay, Jeffrey A Esq UNQUALIFIED94Stephen Shaw
1033Isabel F KolmetzItaly2025-05-21Chemel, James L Cpa QUALIFIED68Ivan Magalhaes
1034Silvio Z FlosiIndia2025-06-14Buckley Miller Wright PROPOSAL15Amy Elsner
1035Mujtaba D KuskoUnited Kingdom2025-06-07Chanay, Jeffrey A Esq UNQUALIFIED61Asiya Javayant
1036Tony P WhobreySpain2025-05-26King, Christopher A Esq PROPOSAL37Stephen Shaw
1037Aika E OstroskySpain2025-06-07Morlong Associates UNQUALIFIED72Ivan Magalhaes
1038Alejandro X WieserIndia2025-06-05Rousseaux, Michael Esq PROPOSAL81Ivan Magalhaes
1039Clifford X FollerCanada2025-06-06Benton, John B Jr PROPOSAL8Onyama Limba
1040Johnson F KolmetzUnited Kingdom2025-06-14Chanay, Jeffrey A Esq NEGOTIATION81Amy Elsner
1041Maisha W MaletArgentina2025-05-20Truhlar And Truhlar Attys RENEWAL95Ivan Magalhaes
1042Jefferson M VocelkaIndia2025-05-19Rousseaux, Michael Esq NEW20Asiya Javayant
1043Aika Q StensethUnited Kingdom2025-06-04Benton, John B Jr PROPOSAL20Ioni Bowcher
1044Maisha A BriddickArgentina2025-06-03Chanay, Jeffrey A Esq QUALIFIED87Amy Elsner
1045Nicolas Z GarufiItaly2025-05-20Benton, John B Jr QUALIFIED79Asiya Javayant
1046Tony V CaldareraGermany2025-05-30Rousseaux, Michael Esq UNQUALIFIED58Xuxue Feng
1047Aika A CampainAustralia2025-06-04Buckley Miller Wright RENEWAL5Ioni Bowcher
1048Chavez M SaylorsArgentina2025-06-12King, Christopher A Esq QUALIFIED93Elwin Sharvill
1049Mayumi R DarakjyGermany2025-05-19Morlong Associates NEW50Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Munro O VocelkaGermanyAnna Fali QUALIFIED
Adams G GillianRussiaXuxue Feng QUALIFIED
Claire Y DilliardArgentinaBernardo Dominic QUALIFIED
Claire D SergiGermanyOnyama Limba NEGOTIATION
Smith S RutaAustraliaStephen Shaw QUALIFIED
Darci G StockhamGermanyAmy Elsner NEGOTIATION
Smith Z MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Murillo E StockhamFranceBernardo Dominic QUALIFIED
Kadeem R WaycottGermanyAnna Fali RENEWAL
Ivar H CaldareraCanadaAsiya Javayant UNQUALIFIED
Ashley T KolmetzSpainIvan Magalhaes PROPOSAL
Aika C NickaIndiaAsiya Javayant NEGOTIATION
Deepesh L BriddickSpainXuxue Feng PROPOSAL
Munro E OldroydIndiaOnyama Limba NEW
Cody O AmigonArgentinaIoni Bowcher NEW
Jennifer H GauchoAustraliaXuxue Feng NEW
Kadeem V GlickArgentinaAmy Elsner UNQUALIFIED
Mujtaba N StensethItalyStephen Shaw PROPOSAL
James X ChuiIndiaStephen Shaw PROPOSAL
James F NestleRussiaXuxue Feng NEGOTIATION
Francesco F WaycottJapanBernardo Dominic RENEWAL
Rodrigues V MacleadSpainAnna Fali NEW
Nicolas J ShinkoSpainIvan Magalhaes NEGOTIATION
Julie N RoysterFranceAsiya Javayant NEW
Octavia W GauchoUnited KingdomOnyama Limba NEGOTIATION
Julie Z MorascaJapanAsiya Javayant PROPOSAL
Francesco Q PoquetteCanadaAmy Elsner RENEWAL
Nicolas I IturbideRussiaBernardo Dominic RENEWAL
David O FollerAustraliaAnna Fali RENEWAL
Jones G StockhamCanadaAsiya Javayant QUALIFIED
Wickens N SaylorsArgentinaStephen Shaw UNQUALIFIED
Murillo C FerenczCanadaAsiya Javayant PROPOSAL
Leon L WaycottCanadaElwin Sharvill RENEWAL
Silvio R ShinkoIndiaStephen Shaw UNQUALIFIED
Aika V KuskoArgentinaXuxue Feng UNQUALIFIED
Chavez O NestleJapanOnyama Limba PROPOSAL
Ivar S DilliardCanadaStephen Shaw NEGOTIATION
Ivar G VocelkaGermanyBernardo Dominic QUALIFIED
Julie S PaprockiRussiaBernardo Dominic UNQUALIFIED
Murillo Z ButtArgentinaOnyama Limba NEGOTIATION
Aditya Q VocelkaUnited KingdomAsiya Javayant QUALIFIED
Chavez H AlbaresCanadaOnyama Limba QUALIFIED
Alejandro L OldroydGermanyAmy Elsner PROPOSAL
Deepesh J BriddickArgentinaStephen Shaw PROPOSAL
Ricardo X ChuiJapanOnyama Limba RENEWAL
Costa R StockhamArgentinaStephen Shaw NEW
Aruna K StensethItalyIoni Bowcher NEW
Juan R CaldareraJapanBernardo Dominic QUALIFIED
Aika D SlusarskiGermanyAmy Elsner PROPOSAL
Salvatore M KuskoJapanXuxue Feng NEGOTIATION
Frozen Columns
Name
David L Rim
Aruna Y Ostrosky
Ivar K Saylors
Adams X Royster
Silvio F Butt
Munro O Saylors
Julie J Morasca
Jennifer T Figeroa
Costa H Slusarski
Tony H Amigon
Faith I Malet
Octavia N Caldarera
Johnson K Kolmetz
Greenwood O Shinko
Jefferson C Oldroyd
Francesco O Gillian
Francesco B Nicka
David D Whobrey
Costa T Oldroyd
Smith B Gillian
Julie W Venere
David I Whobrey
Darci D Vocelka
Emily M Foller
Ivar W Sergi
Jefferson L Albares
Jennifer F Rim
Misaki B Tollner
Nicolas E Malet
Leon A Caudy
Aruna B Ostrosky
Johnson H Saylors
Munro D Caldarera
Morrow R Poquette
Rodrigues P Dilliard
Isabel R Saylors
Wickens X Oldroyd
Alejandro E Perin
Ashley U Stenseth
Clifford B Saylors
Izzy F Sergi
David P Sergi
Leja Y Nicka
Stacey B Morasca
Rodrigues P Amigon
Octavia S Shinko
Faith T Marrier
Smith I Ferencz
Mayumi C Venere
Misaki Z Caudy
IdCountryDate
1000Argentina2025-06-13
1001India2025-05-24
1002Spain2025-06-07
1003Germany2025-06-06
1004Brazil2025-05-27
1005India2025-06-10
1006Brazil2025-06-12
1007United Kingdom2025-05-20
1008Spain2025-06-07
1009Spain2025-05-24
1010Russia2025-06-03
1011Spain2025-06-16
1012United Kingdom2025-06-05
1013Argentina2025-06-03
1014France2025-06-09
1015Argentina2025-06-11
1016Japan2025-06-16
1017Russia2025-05-30
1018Japan2025-05-28
1019Japan2025-06-07
1020France2025-06-09
1021Germany2025-05-27
1022Spain2025-05-22
1023Japan2025-05-27
1024Japan2025-05-19
1025Argentina2025-05-24
1026Germany2025-05-29
1027France2025-05-23
1028Argentina2025-05-20
1029India2025-05-18
1030Argentina2025-05-20
1031Australia2025-06-05
1032Canada2025-06-08
1033Spain2025-06-01
1034Australia2025-06-09
1035Argentina2025-06-04
1036Russia2025-05-24
1037Spain2025-05-28
1038Spain2025-06-08
1039Germany2025-06-15
1040Russia2025-06-02
1041Russia2025-06-16
1042Italy2025-06-02
1043India2025-06-11
1044Germany2025-06-12
1045Canada2025-06-11
1046Australia2025-06-05
1047Germany2025-05-25
1048United Kingdom2025-06-06
1049United Kingdom2025-05-27

On-Demand Data

NameIdCountryDate
James U Venere1000Canada2025-06-09
Leon L Malet1001Brazil2025-05-19
Morrow A Flosi1002Germany2025-06-05
Arvin A Rim1003Brazil2025-06-11
Isabel M Stenseth1004Australia2025-06-13
Antonio X Stockham1005Germany2025-05-27
Jeanfrancois C Venere1006Brazil2025-06-14
Mujtaba H Slusarski1007Italy2025-06-09
Deepesh U Caudy1008Australia2025-05-28
Clifford J Albares1009Spain2025-05-29
Juan I Stockham1010Canada2025-06-05
Aruna H Glick1011Canada2025-05-26
Murillo Q Malet1012Argentina2025-05-19
Morrow V Darakjy1013Canada2025-05-29
Aruna J Glick1014Argentina2025-06-07
Izzy P Rulapaugh1015Argentina2025-05-18
Clifford F Nicka1016Australia2025-06-11
Arvin L Marrier1017Japan2025-05-21
Sinclair J Gaucho1018United Kingdom2025-06-02
Adams X Albares1019Australia2025-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro G WhobreyArgentinaBernardo Dominic PROPOSAL
Chavez O StensethArgentinaOnyama Limba RENEWAL
Emily J PerinIndiaElwin Sharvill NEGOTIATION
Aruna D PerinAustraliaIoni Bowcher UNQUALIFIED
Julie M GlickArgentinaElwin Sharvill UNQUALIFIED
Tony P CampainRussiaStephen Shaw NEW
Leon Y TollnerCanadaXuxue Feng UNQUALIFIED
Munro F CampainAustraliaBernardo Dominic NEGOTIATION
Costa T MarrierIndiaAnna Fali QUALIFIED
Smith J KolmetzUnited KingdomAnna Fali UNQUALIFIED
Salvatore R DoeCanadaIvan Magalhaes UNQUALIFIED
James E SaylorsAustraliaOnyama Limba UNQUALIFIED
Francesco V VenereSpainElwin Sharvill RENEWAL
Emily I OstroskyCanadaAsiya Javayant UNQUALIFIED
Salvatore Y IturbideBrazilElwin Sharvill UNQUALIFIED
Adams D RoysterGermanyElwin Sharvill UNQUALIFIED
Jones P FigeroaSpainElwin Sharvill RENEWAL
Mujtaba S StensethAustraliaElwin Sharvill UNQUALIFIED
Tony A AlbaresRussiaAnna Fali NEGOTIATION
Ivar M BowleyCanadaXuxue Feng UNQUALIFIED
Izzy X CampainArgentinaIvan Magalhaes PROPOSAL
Smith Q GillianItalyBernardo Dominic PROPOSAL
Kadeem B KolmetzRussiaAmy Elsner PROPOSAL
Arvin S RimAustraliaAmy Elsner UNQUALIFIED
Mayumi C RulapaughAustraliaAsiya Javayant UNQUALIFIED
Nicolas P KuskoArgentinaElwin Sharvill RENEWAL
Deepesh G WieserFranceBernardo Dominic RENEWAL
Kadeem R RoysterAustraliaIvan Magalhaes NEGOTIATION
Maisha M SergiGermanyBernardo Dominic RENEWAL
Salvatore L StockhamIndiaXuxue Feng QUALIFIED
Silvio E GlickBrazilAsiya Javayant QUALIFIED
Munro D NickaCanadaIvan Magalhaes UNQUALIFIED
Morrow U FlosiUnited KingdomOnyama Limba UNQUALIFIED
Chavez P MaletJapanAmy Elsner NEGOTIATION
Antonio R SergiCanadaBernardo Dominic QUALIFIED
Jeanfrancois R FollerArgentinaElwin Sharvill UNQUALIFIED
Smith B ButtGermanyStephen Shaw QUALIFIED
Nicolas W AmigonSpainIvan Magalhaes RENEWAL
Morrow G DarakjyItalyStephen Shaw RENEWAL
Rodrigues O WaycottArgentinaIoni Bowcher 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>