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
Leja S SlusarskiFranceAsiya Javayant NEW
Izzy J RulapaughIndiaElwin Sharvill PROPOSAL
Antonio I DarakjyGermanyXuxue Feng PROPOSAL
Jefferson A AmigonSpainOnyama Limba PROPOSAL
Nicolas V AmigonAustraliaIvan Magalhaes RENEWAL
Kadeem P WhobreyArgentinaXuxue Feng NEW
Julie D FerenczRussiaXuxue Feng UNQUALIFIED
Morrow Z TollnerBrazilOnyama Limba NEW
Darci O BriddickBrazilElwin Sharvill UNQUALIFIED
Sinclair M AmigonIndiaOnyama Limba UNQUALIFIED
Ivar F WieserSpainStephen Shaw QUALIFIED
Adams S OldroydBrazilStephen Shaw UNQUALIFIED
Aditya L StockhamGermanyAsiya Javayant PROPOSAL
Costa L NestleGermanyOnyama Limba PROPOSAL
Adams N OstroskyUnited KingdomIoni Bowcher QUALIFIED
Claire B GlickAustraliaIoni Bowcher NEW
Mujtaba S MorascaArgentinaBernardo Dominic NEW
Aditya R NestleItalyIoni Bowcher NEGOTIATION
Izzy X StockhamFranceAmy Elsner UNQUALIFIED
Leon G GarufiJapanIvan Magalhaes QUALIFIED
Juan Z PaprockiUnited KingdomAnna Fali UNQUALIFIED
Maisha D GlickJapanXuxue Feng RENEWAL
Ashley Q VenereGermanyAnna Fali NEGOTIATION
Mujtaba B IturbideFranceOnyama Limba NEGOTIATION
Smith V VocelkaItalyXuxue Feng NEW
Arvin J MorascaAustraliaStephen Shaw PROPOSAL
Munro J GillianIndiaBernardo Dominic NEW
Wickens P MaletBrazilIoni Bowcher QUALIFIED
Cody K CaudyItalyIvan Magalhaes QUALIFIED
Stacey J KolmetzJapanIvan Magalhaes PROPOSAL
Murillo U FlosiIndiaIvan Magalhaes NEGOTIATION
Sinclair V DarakjyFranceAnna Fali PROPOSAL
James A ButtCanadaXuxue Feng RENEWAL
Johnson T ShinkoJapanStephen Shaw UNQUALIFIED
Ashley T ChuiJapanXuxue Feng RENEWAL
Greenwood U BologniaArgentinaXuxue Feng UNQUALIFIED
Johnson X DilliardSpainStephen Shaw UNQUALIFIED
Juan F FigeroaGermanyAsiya Javayant UNQUALIFIED
Jones D StockhamCanadaAmy Elsner RENEWAL
Ashley K InouyeBrazilElwin Sharvill NEGOTIATION
Ashley F CampainArgentinaAnna Fali RENEWAL
Smith L StockhamJapanStephen Shaw NEW
Nicolas F CaudyArgentinaIvan Magalhaes PROPOSAL
Leja C FollerUnited KingdomElwin Sharvill UNQUALIFIED
Francesco P MorascaRussiaAsiya Javayant UNQUALIFIED
Leja W NestleGermanyBernardo Dominic NEGOTIATION
Tony O IturbideBrazilElwin Sharvill PROPOSAL
Johnson I DoeCanadaStephen Shaw NEGOTIATION
Chavez W SaylorsItalyBernardo Dominic RENEWAL
Jefferson H MarrierCanadaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily C OldroydJapanAnna Fali RENEWAL
Munro X FigeroaItalyIvan Magalhaes NEGOTIATION
Sinclair I PoquetteGermanyIvan Magalhaes UNQUALIFIED
Morrow Y AmigonCanadaXuxue Feng UNQUALIFIED
Jones Y BologniaBrazilAnna Fali NEGOTIATION
Aditya V SaylorsBrazilElwin Sharvill UNQUALIFIED
Aditya U WaycottRussiaAmy Elsner PROPOSAL
Antonio H FollerAustraliaElwin Sharvill NEGOTIATION
Greenwood I AmigonFranceXuxue Feng PROPOSAL
Deepesh H DilliardRussiaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois V PaprockiItaly2026-08-06Chapman, Ross E Esq NEGOTIATION47Amy Elsner
1001Octavia C BologniaRussia2026-08-02Printing Dimensions QUALIFIED76Ioni Bowcher
1002Maisha V ButtAustralia2026-07-16Chapman, Ross E Esq UNQUALIFIED7Amy Elsner
1003Munro G CaudyJapan2026-07-24Rousseaux, Michael Esq NEGOTIATION25Xuxue Feng
1004Johnson B MaletItaly2026-07-20Feiner Bros PROPOSAL65Ioni Bowcher
1005Ivar X DarakjyGermany2026-07-15King, Christopher A Esq NEW80Xuxue Feng
1006Silvio K SergiCanada2026-07-21Printing Dimensions NEGOTIATION72Asiya Javayant
1007Aditya K FigeroaItaly2026-07-23Feiner Bros UNQUALIFIED41Anna Fali
1008Silvio M GlickCanada2026-07-22Dorl, James J Esq QUALIFIED85Onyama Limba
1009Arvin B FerenczItaly2026-08-07Feiner Bros NEGOTIATION13Bernardo Dominic
1010Emily A FollerGermany2026-07-30Dorl, James J Esq NEW37Bernardo Dominic
1011Ashley A WhobreyGermany2026-07-30Dorl, James J Esq UNQUALIFIED15Asiya Javayant
1012Jones O BologniaJapan2026-08-10Commercial Press UNQUALIFIED9Asiya Javayant
1013Jeanfrancois R CaudyIndia2026-07-17Dorl, James J Esq QUALIFIED96Xuxue Feng
1014Izzy A NestleIndia2026-07-25King, Christopher A Esq NEGOTIATION69Xuxue Feng
1015Jefferson T CampainJapan2026-08-04Truhlar And Truhlar Attys QUALIFIED51Asiya Javayant
1016Ashley N DarakjyFrance2026-07-27Truhlar And Truhlar Attys RENEWAL2Asiya Javayant
1017Faith H GillianCanada2026-07-29King, Christopher A Esq RENEWAL30Stephen Shaw
1018Jennifer A DarakjyAustralia2026-07-21Truhlar And Truhlar Attys NEW87Stephen Shaw
1019Jennifer R DoeJapan2026-08-10Feiner Bros NEW24Elwin Sharvill
1020Ricardo T BriddickBrazil2026-07-16Rousseaux, Michael Esq QUALIFIED72Xuxue Feng
1021Leja T ButtRussia2026-07-24Chemel, James L Cpa QUALIFIED31Xuxue Feng
1022Izzy E OldroydAustralia2026-08-06Chapman, Ross E Esq UNQUALIFIED18Ioni Bowcher
1023Ashley A OstroskyBrazil2026-08-01King, Christopher A Esq PROPOSAL79Ioni Bowcher
1024Arvin A VenereCanada2026-07-30Feltz Printing Service QUALIFIED9Xuxue Feng
1025Deepesh Q FlosiSpain2026-08-05Printing Dimensions NEW1Ioni Bowcher
1026Ashley T FerenczSpain2026-07-21Rangoni Of Florence QUALIFIED95Ivan Magalhaes
1027Maisha W OstroskyIndia2026-07-29Truhlar And Truhlar Attys PROPOSAL65Onyama Limba
1028Smith R FerenczFrance2026-07-26Rangoni Of Florence QUALIFIED0Amy Elsner
1029Greenwood H ShinkoUnited Kingdom2026-08-12Feiner Bros PROPOSAL77Asiya Javayant
1030David Q GarufiItaly2026-07-21King, Christopher A Esq PROPOSAL11Stephen Shaw
1031Smith F MorascaFrance2026-08-13Dorl, James J Esq UNQUALIFIED84Asiya Javayant
1032Alejandro B IturbideSpain2026-07-29Chanay, Jeffrey A Esq PROPOSAL81Onyama Limba
1033Jefferson G InouyeAustralia2026-08-12Chanay, Jeffrey A Esq RENEWAL48Bernardo Dominic
1034Octavia X ShinkoItaly2026-07-15Printing Dimensions RENEWAL95Stephen Shaw
1035Chavez G RulapaughUnited Kingdom2026-08-08Chanay, Jeffrey A Esq QUALIFIED14Elwin Sharvill
1036Alejandro S OstroskyUnited Kingdom2026-08-03Buckley Miller Wright RENEWAL60Stephen Shaw
1037Greenwood C PerinArgentina2026-08-02Truhlar And Truhlar Attys QUALIFIED25Stephen Shaw
1038Silvio J StockhamArgentina2026-08-04Buckley Miller Wright QUALIFIED24Anna Fali
1039Jones G WieserAustralia2026-08-10Feiner Bros NEW28Bernardo Dominic
1040Jennifer V ButtAustralia2026-07-18Rousseaux, Michael Esq QUALIFIED52Bernardo Dominic
1041Maisha U DilliardJapan2026-07-29Dorl, James J Esq NEGOTIATION54Stephen Shaw
1042Silvio A KolmetzSpain2026-07-20Buckley Miller Wright NEW36Bernardo Dominic
1043Maria U GarufiRussia2026-07-24Benton, John B Jr UNQUALIFIED44Ioni Bowcher
1044Kadeem Z FlosiUnited Kingdom2026-07-30Chapman, Ross E Esq QUALIFIED30Bernardo Dominic
1045Misaki Q DoeArgentina2026-08-03Chanay, Jeffrey A Esq NEGOTIATION65Ivan Magalhaes
1046Ashley N BowleyItaly2026-07-20Rangoni Of Florence PROPOSAL68Stephen Shaw
1047David Y IturbideItaly2026-07-30Buckley Miller Wright NEGOTIATION2Onyama Limba
1048Costa D SlusarskiItaly2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED33Onyama Limba
1049Darci N NickaFrance2026-07-21Feltz Printing Service NEW47Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Claire X SergiAustraliaAnna Fali PROPOSAL
Adams L MaletAustraliaOnyama Limba NEGOTIATION
Rodrigues E SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Johnson L PerinItalyBernardo Dominic UNQUALIFIED
Wickens K BriddickItalyIoni Bowcher UNQUALIFIED
Alejandro B SergiArgentinaElwin Sharvill NEW
Izzy D MaletUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo L GauchoGermanyAnna Fali PROPOSAL
Ivar L FigeroaArgentinaAmy Elsner PROPOSAL
Jennifer F VocelkaAustraliaAnna Fali UNQUALIFIED
Ricardo S IturbideItalyXuxue Feng NEW
Murillo H SlusarskiSpainAnna Fali NEW
Kadeem P DoeIndiaBernardo Dominic QUALIFIED
Leon I ShinkoItalyIoni Bowcher QUALIFIED
Maria O PoquetteArgentinaXuxue Feng UNQUALIFIED
Nicolas B FigeroaBrazilAnna Fali NEGOTIATION
Leon U AmigonRussiaElwin Sharvill NEGOTIATION
Costa Q GarufiAustraliaAmy Elsner RENEWAL
Deepesh X TollnerItalyAmy Elsner NEW
Silvio X RutaItalyIvan Magalhaes NEGOTIATION
Clifford S BowleyBrazilOnyama Limba NEGOTIATION
Jefferson U RutaFranceAmy Elsner UNQUALIFIED
Nicolas Y BologniaUnited KingdomIoni Bowcher RENEWAL
Wickens I DilliardSpainElwin Sharvill QUALIFIED
Munro Y GlickGermanyStephen Shaw NEW
Izzy H WieserCanadaOnyama Limba NEW
Jeanfrancois L WaycottAustraliaXuxue Feng NEW
David T FigeroaCanadaElwin Sharvill NEW
Juan G GillianCanadaIvan Magalhaes QUALIFIED
Greenwood T KolmetzSpainAsiya Javayant RENEWAL
Leja O KolmetzJapanIvan Magalhaes UNQUALIFIED
Jefferson V SaylorsArgentinaOnyama Limba NEGOTIATION
Ricardo W ButtBrazilIoni Bowcher QUALIFIED
Julie L CaldareraGermanyElwin Sharvill PROPOSAL
Greenwood P RutaGermanyAmy Elsner PROPOSAL
Costa L KolmetzAustraliaStephen Shaw RENEWAL
Faith J BriddickItalyXuxue Feng UNQUALIFIED
Juan J SergiRussiaBernardo Dominic QUALIFIED
Jefferson U BriddickJapanAnna Fali QUALIFIED
Ivar S AlbaresBrazilAmy Elsner UNQUALIFIED
Jefferson W ChuiFranceBernardo Dominic QUALIFIED
Salvatore P ShinkoItalyIoni Bowcher QUALIFIED
Sinclair J MorascaIndiaAnna Fali UNQUALIFIED
Faith A SaylorsCanadaElwin Sharvill PROPOSAL
Aika M DarakjyIndiaAmy Elsner QUALIFIED
Isabel T DoeJapanOnyama Limba QUALIFIED
Octavia E CaudyAustraliaElwin Sharvill QUALIFIED
Tony K StockhamBrazilXuxue Feng QUALIFIED
James K KuskoArgentinaOnyama Limba NEGOTIATION
Aika U DoeAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Emily U Kusko
Nicolas F Caudy
Salvatore Y Shinko
Cody A Bolognia
Mayumi E Dilliard
Rodrigues E Ferencz
Sinclair G Doe
Jefferson D Bowley
Morrow R Dilliard
Aruna Y Bolognia
Antonio Q Albares
Mayumi M Flosi
Clifford V Rulapaugh
Emily T Albares
Jefferson Y Campain
Mayumi A Glick
Clifford L Malet
Ashley B Briddick
Kaitlin D Kolmetz
Arvin K Dilliard
Ivar Q Kolmetz
Julie J Doe
Adams M Wieser
Jefferson D Figeroa
Ricardo L Paprocki
Jones Y Malet
Jeanfrancois W Stockham
Kaitlin S Bolognia
Alejandro Q Rulapaugh
Emily Q Campain
Clifford W Briddick
Isabel M Figeroa
Tony Y Ruta
Antonio G Foller
Faith X Royster
Salvatore Q Figeroa
Maria L Albares
Alejandro U Foller
Ivar O Caldarera
Emily I Garufi
Rodrigues M Rim
James H Stenseth
Wickens X Foller
Maisha N Caldarera
Greenwood G Doe
Emily T Albares
Tony N Amigon
Stacey D Albares
Deepesh J Caldarera
Alejandro J Stockham
IdCountryDate
1000Australia2026-08-05
1001Australia2026-08-10
1002Brazil2026-07-16
1003Spain2026-07-25
1004Japan2026-08-05
1005Argentina2026-07-28
1006Germany2026-08-05
1007Canada2026-07-18
1008Spain2026-07-18
1009Canada2026-08-12
1010India2026-08-08
1011Spain2026-07-24
1012France2026-07-22
1013Italy2026-08-06
1014France2026-07-21
1015France2026-08-02
1016Spain2026-07-30
1017Russia2026-08-13
1018Spain2026-07-20
1019Brazil2026-08-11
1020Australia2026-08-11
1021Russia2026-07-18
1022France2026-07-24
1023Germany2026-07-15
1024Argentina2026-08-07
1025Brazil2026-07-29
1026Russia2026-07-20
1027Russia2026-07-26
1028Canada2026-08-06
1029India2026-07-25
1030Italy2026-08-08
1031France2026-08-08
1032Australia2026-07-18
1033Germany2026-08-04
1034Spain2026-07-16
1035Russia2026-08-01
1036Argentina2026-08-07
1037Germany2026-08-03
1038Canada2026-07-25
1039France2026-07-15
1040Canada2026-07-19
1041Canada2026-08-07
1042Brazil2026-07-25
1043Japan2026-07-18
1044Spain2026-08-03
1045Russia2026-07-23
1046Argentina2026-08-11
1047Spain2026-08-01
1048Russia2026-07-23
1049Spain2026-08-08

On-Demand Data

NameIdCountryDate
Juan J Venere1000Brazil2026-08-07
Morrow R Malet1001Argentina2026-08-07
Johnson Q Garufi1002Germany2026-07-15
Jennifer X Caldarera1003India2026-07-26
Mayumi D Figeroa1004Australia2026-07-29
Octavia F Malet1005India2026-07-24
Salvatore M Bowley1006Brazil2026-08-06
Stacey X Doe1007Italy2026-07-28
Misaki Z Stockham1008Brazil2026-07-31
Francesco P Gaucho1009Brazil2026-08-13
Munro B Iturbide1010Spain2026-07-21
Izzy M Ostrosky1011Argentina2026-07-21
Mayumi B Paprocki1012France2026-08-08
Tony O Amigon1013India2026-08-12
Faith A Waycott1014Australia2026-07-25
Isabel C Gillian1015India2026-07-16
Munro P Garufi1016Canada2026-08-06
Jones K Maclead1017Brazil2026-07-22
Jennifer J Waycott1018Germany2026-08-05
Deepesh P Albares1019Japan2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez S MaletIndiaAmy Elsner QUALIFIED
Isabel R VocelkaRussiaElwin Sharvill NEGOTIATION
Julie V RulapaughUnited KingdomStephen Shaw NEGOTIATION
Morrow V PerinCanadaXuxue Feng UNQUALIFIED
Chavez S InouyeIndiaIvan Magalhaes PROPOSAL
Maisha J WieserRussiaIvan Magalhaes RENEWAL
Octavia A AlbaresJapanAsiya Javayant UNQUALIFIED
David S NickaGermanyStephen Shaw PROPOSAL
Alejandro D GarufiUnited KingdomAnna Fali NEW
Nicolas L OldroydBrazilOnyama Limba NEGOTIATION
Jennifer O AlbaresBrazilStephen Shaw QUALIFIED
James E MaletArgentinaXuxue Feng RENEWAL
Maria S TollnerAustraliaBernardo Dominic NEW
Aika C NickaGermanyAmy Elsner RENEWAL
Morrow H MaletBrazilAsiya Javayant RENEWAL
Nicolas K SergiArgentinaAmy Elsner RENEWAL
Jefferson Y TollnerFranceBernardo Dominic UNQUALIFIED
Leon W StensethJapanStephen Shaw UNQUALIFIED
Alejandro Y BologniaIndiaIvan Magalhaes NEGOTIATION
Leon H PoquetteUnited KingdomStephen Shaw NEGOTIATION
Kadeem Q StensethUnited KingdomElwin Sharvill UNQUALIFIED
Jones R GarufiFranceIoni Bowcher PROPOSAL
Johnson Y VenereUnited KingdomStephen Shaw QUALIFIED
Jefferson V StockhamJapanAsiya Javayant PROPOSAL
Mayumi F KuskoAustraliaIvan Magalhaes QUALIFIED
Salvatore C GillianJapanIvan Magalhaes UNQUALIFIED
Alejandro P DilliardIndiaAsiya Javayant NEGOTIATION
Maria Z MaletArgentinaAmy Elsner UNQUALIFIED
Jennifer M DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Jones X FollerUnited KingdomOnyama Limba UNQUALIFIED
Deepesh E MarrierAustraliaAmy Elsner RENEWAL
Chavez V RutaJapanBernardo Dominic PROPOSAL
Jefferson O BriddickIndiaAnna Fali NEW
Alejandro T KolmetzCanadaIoni Bowcher NEGOTIATION
Smith C PaprockiArgentinaAnna Fali NEW
Cody K RutaArgentinaStephen Shaw RENEWAL
Ivar Q AmigonFranceBernardo Dominic NEGOTIATION
Rodrigues O CaudyJapanIoni Bowcher QUALIFIED
Octavia O PoquetteJapanOnyama Limba UNQUALIFIED
Ricardo S MaletIndiaStephen Shaw NEGOTIATION

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