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
Maria X AmigonAustraliaAsiya Javayant RENEWAL
Mujtaba B RimFranceOnyama Limba UNQUALIFIED
Emily M VocelkaAustraliaAmy Elsner PROPOSAL
Maria C SlusarskiRussiaAnna Fali RENEWAL
Wickens N FigeroaUnited KingdomXuxue Feng RENEWAL
Isabel B DoeUnited KingdomElwin Sharvill NEGOTIATION
Nicolas Q SchemmerBrazilElwin Sharvill NEGOTIATION
Tony Q BowleySpainBernardo Dominic RENEWAL
Greenwood Y GarufiItalyIvan Magalhaes QUALIFIED
Jones U GillianGermanyOnyama Limba RENEWAL
Juan H ChuiFranceIvan Magalhaes RENEWAL
James R AmigonSpainStephen Shaw PROPOSAL
Maisha B GauchoJapanXuxue Feng QUALIFIED
Johnson P RoysterIndiaBernardo Dominic NEW
Aika Y InouyeAustraliaAsiya Javayant PROPOSAL
Ricardo Q VenereItalyBernardo Dominic PROPOSAL
Antonio N DarakjyBrazilAnna Fali UNQUALIFIED
Silvio Q MorascaBrazilAmy Elsner QUALIFIED
Isabel N DarakjyAustraliaElwin Sharvill QUALIFIED
Francesco Y WieserFranceXuxue Feng RENEWAL
Jeanfrancois W OstroskyAustraliaElwin Sharvill PROPOSAL
Jennifer Q GauchoIndiaOnyama Limba UNQUALIFIED
Aruna H RutaBrazilAsiya Javayant QUALIFIED
Greenwood H FollerUnited KingdomXuxue Feng QUALIFIED
Silvio L BriddickFranceIvan Magalhaes UNQUALIFIED
Tony G SaylorsSpainStephen Shaw NEW
Aruna D KolmetzItalyOnyama Limba RENEWAL
Wickens O DilliardCanadaIoni Bowcher NEGOTIATION
Julie I DoeIndiaAnna Fali PROPOSAL
Cody L KuskoRussiaAsiya Javayant QUALIFIED
Cody U OstroskyArgentinaIvan Magalhaes NEGOTIATION
Rodrigues N SergiUnited KingdomStephen Shaw PROPOSAL
Maria Z CaldareraJapanXuxue Feng PROPOSAL
Leon F VocelkaUnited KingdomOnyama Limba NEGOTIATION
Aditya F MarrierUnited KingdomIoni Bowcher PROPOSAL
Greenwood W DoeArgentinaXuxue Feng NEGOTIATION
David D PerinSpainOnyama Limba RENEWAL
Jefferson Z MorascaBrazilXuxue Feng RENEWAL
Kaitlin R DoeSpainIoni Bowcher PROPOSAL
Aditya V MorascaGermanyXuxue Feng RENEWAL
Clifford Q KolmetzRussiaIvan Magalhaes NEW
Mujtaba Y WhobreySpainIvan Magalhaes QUALIFIED
Deepesh G GauchoGermanyBernardo Dominic UNQUALIFIED
Jones C WieserUnited KingdomElwin Sharvill PROPOSAL
Ashley G CaldareraBrazilAsiya Javayant PROPOSAL
Johnson D PerinCanadaAmy Elsner QUALIFIED
Kaitlin S SergiIndiaAmy Elsner UNQUALIFIED
Aruna S WieserUnited KingdomAsiya Javayant RENEWAL
Chavez J DarakjyItalyOnyama Limba PROPOSAL
Adams E BologniaIndiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jefferson D MaletAustraliaStephen Shaw RENEWAL
Maria Q FlosiCanadaBernardo Dominic PROPOSAL
Chavez G RimGermanyBernardo Dominic UNQUALIFIED
Mujtaba Z AlbaresItalyAsiya Javayant NEGOTIATION
Nicolas K MaletSpainAsiya Javayant NEW
Tony E SlusarskiFranceElwin Sharvill RENEWAL
Kaitlin X DoeItalyIvan Magalhaes RENEWAL
Nicolas T RulapaughUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois W GlickGermanyOnyama Limba NEW
Julie R WhobreyArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba Q BologniaAustralia2024-06-06Truhlar And Truhlar Attys PROPOSAL3Stephen Shaw
1001Deepesh R OldroydCanada2024-06-19Printing Dimensions NEGOTIATION47Xuxue Feng
1002Antonio G CampainBrazil2024-06-10Truhlar And Truhlar Attys UNQUALIFIED81Anna Fali
1003Mayumi P SaylorsUnited Kingdom2024-06-05King, Christopher A Esq QUALIFIED12Asiya Javayant
1004Izzy W PoquetteAustralia2024-06-16Chapman, Ross E Esq NEGOTIATION28Ivan Magalhaes
1005Leja N ChuiGermany2024-06-13Chanay, Jeffrey A Esq RENEWAL42Ivan Magalhaes
1006Alejandro C ShinkoAustralia2024-06-13Chapman, Ross E Esq RENEWAL39Ivan Magalhaes
1007Morrow M SaylorsJapan2024-06-16Feltz Printing Service UNQUALIFIED25Onyama Limba
1008Costa Y InouyeIndia2024-06-19Buckley Miller Wright PROPOSAL51Elwin Sharvill
1009Deepesh C FlosiItaly2024-06-01Rangoni Of Florence UNQUALIFIED99Elwin Sharvill
1010Clifford D CampainFrance2024-06-20Chapman, Ross E Esq PROPOSAL71Bernardo Dominic
1011Tony Y BowleyRussia2024-06-02Rangoni Of Florence NEGOTIATION4Xuxue Feng
1012Adams J BriddickSpain2024-06-07Chapman, Ross E Esq PROPOSAL42Ivan Magalhaes
1013Faith H PaprockiGermany2024-06-02Benton, John B Jr UNQUALIFIED46Xuxue Feng
1014Adams L FlosiItaly2024-06-12Dorl, James J Esq QUALIFIED54Stephen Shaw
1015Murillo L SergiArgentina2024-06-07Morlong Associates NEGOTIATION15Xuxue Feng
1016Jennifer C VocelkaSpain2024-06-23Chanay, Jeffrey A Esq NEW46Ioni Bowcher
1017Ricardo L GauchoArgentina2024-05-28Rangoni Of Florence UNQUALIFIED96Ivan Magalhaes
1018Aika A NestleCanada2024-06-24Feltz Printing Service UNQUALIFIED28Asiya Javayant
1019Arvin S KolmetzItaly2024-06-19Chanay, Jeffrey A Esq PROPOSAL59Onyama Limba
1020Rodrigues P OldroydCanada2024-06-18Chapman, Ross E Esq RENEWAL17Ivan Magalhaes
1021Cody X VenereGermany2024-06-10King, Christopher A Esq UNQUALIFIED3Ivan Magalhaes
1022Morrow Y MaletJapan2024-06-19Chemel, James L Cpa RENEWAL21Anna Fali
1023Murillo L WieserBrazil2024-06-06Rousseaux, Michael Esq NEW13Onyama Limba
1024Ashley E SaylorsCanada2024-06-16Feltz Printing Service NEGOTIATION70Asiya Javayant
1025Darci T IturbideJapan2024-06-12Benton, John B Jr NEW25Stephen Shaw
1026Maria L KolmetzItaly2024-06-11Truhlar And Truhlar Attys NEW84Onyama Limba
1027Clifford G BologniaUnited Kingdom2024-06-01Dorl, James J Esq QUALIFIED45Amy Elsner
1028Nicolas Q GarufiBrazil2024-06-03Buckley Miller Wright NEW66Onyama Limba
1029James H GillianCanada2024-06-13Dorl, James J Esq NEW68Elwin Sharvill
1030Cody A WaycottFrance2024-06-09Rousseaux, Michael Esq NEGOTIATION46Ioni Bowcher
1031Francesco Z TollnerRussia2024-06-03Truhlar And Truhlar Attys UNQUALIFIED35Ivan Magalhaes
1032Kadeem R FollerCanada2024-06-22Truhlar And Truhlar Attys UNQUALIFIED94Xuxue Feng
1033Adams W TollnerArgentina2024-06-01Chanay, Jeffrey A Esq QUALIFIED19Bernardo Dominic
1034James J OstroskyBrazil2024-05-26Chanay, Jeffrey A Esq UNQUALIFIED73Onyama Limba
1035Julie T CaudyCanada2024-06-08Printing Dimensions NEGOTIATION96Xuxue Feng
1036Morrow R PerinUnited Kingdom2024-06-23Benton, John B Jr QUALIFIED48Xuxue Feng
1037Octavia D DarakjyFrance2024-05-29Feltz Printing Service NEW32Elwin Sharvill
1038Maria R DilliardGermany2024-06-01Buckley Miller Wright NEGOTIATION14Ivan Magalhaes
1039Arvin B FerenczBrazil2024-06-05Morlong Associates PROPOSAL14Xuxue Feng
1040Deepesh D MarrierGermany2024-06-09Truhlar And Truhlar Attys NEW19Elwin Sharvill
1041Maisha E FollerSpain2024-06-15Chapman, Ross E Esq RENEWAL87Onyama Limba
1042Faith S PerinSpain2024-06-01Chapman, Ross E Esq NEGOTIATION56Xuxue Feng
1043David P WieserCanada2024-06-18Rousseaux, Michael Esq NEW26Bernardo Dominic
1044Misaki V DilliardSpain2024-05-27Truhlar And Truhlar Attys NEGOTIATION79Anna Fali
1045Nicolas E CaudyFrance2024-05-30Feltz Printing Service PROPOSAL12Amy Elsner
1046Kaitlin O GillianRussia2024-06-24Benton, John B Jr QUALIFIED98Amy Elsner
1047Juan L MaletFrance2024-06-02Feltz Printing Service PROPOSAL70Xuxue Feng
1048Murillo H RoysterIndia2024-06-14Benton, John B Jr UNQUALIFIED28Ivan Magalhaes
1049Aika I SlusarskiGermany2024-05-27Rangoni Of Florence NEGOTIATION89Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jennifer P GauchoBrazilAmy Elsner NEGOTIATION
Smith F WhobreyCanadaOnyama Limba RENEWAL
Wickens F GlickArgentinaAsiya Javayant NEGOTIATION
Aruna P VenereFranceBernardo Dominic NEGOTIATION
Ashley N AmigonUnited KingdomOnyama Limba RENEWAL
Tony Y GauchoJapanStephen Shaw PROPOSAL
Jennifer W InouyeArgentinaXuxue Feng RENEWAL
Jennifer V ChuiAustraliaBernardo Dominic RENEWAL
Arvin M AlbaresRussiaAmy Elsner PROPOSAL
Francesco Y VenereJapanElwin Sharvill PROPOSAL
Murillo R GarufiJapanOnyama Limba NEGOTIATION
Julie X AlbaresItalyElwin Sharvill NEGOTIATION
Claire C BologniaRussiaIvan Magalhaes NEGOTIATION
Ricardo V ChuiAustraliaAmy Elsner NEGOTIATION
James A IturbideCanadaElwin Sharvill UNQUALIFIED
Aika Q WieserArgentinaXuxue Feng QUALIFIED
Morrow U OldroydAustraliaElwin Sharvill UNQUALIFIED
Adams S FigeroaAustraliaIoni Bowcher RENEWAL
Kadeem C StensethFranceXuxue Feng UNQUALIFIED
Johnson B WhobreyFranceAnna Fali NEW
Costa L MorascaSpainBernardo Dominic NEGOTIATION
James U FigeroaSpainIoni Bowcher NEGOTIATION
Cody K SchemmerIndiaAmy Elsner NEW
Antonio F PerinArgentinaElwin Sharvill UNQUALIFIED
Kadeem K ChuiGermanyAmy Elsner UNQUALIFIED
Octavia P MaletCanadaAnna Fali QUALIFIED
Aika G SchemmerItalyIoni Bowcher QUALIFIED
Wickens D RimSpainOnyama Limba NEGOTIATION
Misaki Q KolmetzSpainAnna Fali UNQUALIFIED
Julie K VenereIndiaStephen Shaw NEW
Rodrigues F BowleyAustraliaOnyama Limba NEW
Isabel X NestleJapanBernardo Dominic UNQUALIFIED
Munro D SaylorsCanadaAmy Elsner QUALIFIED
Deepesh W TollnerAustraliaElwin Sharvill UNQUALIFIED
Cody I TollnerFranceStephen Shaw UNQUALIFIED
Arvin R RulapaughJapanElwin Sharvill NEGOTIATION
Mayumi T CaldareraBrazilIoni Bowcher QUALIFIED
Adams X SaylorsIndiaBernardo Dominic UNQUALIFIED
Leon A InouyeIndiaXuxue Feng PROPOSAL
Jones A CampainAustraliaIvan Magalhaes NEW
Morrow A AlbaresGermanyStephen Shaw NEW
Sinclair E BologniaItalyXuxue Feng UNQUALIFIED
Ricardo I NickaJapanIoni Bowcher NEW
Jeanfrancois O MaletGermanyIvan Magalhaes QUALIFIED
Adams N WhobreyJapanAsiya Javayant UNQUALIFIED
Sinclair T KolmetzFranceStephen Shaw UNQUALIFIED
Juan R PerinSpainElwin Sharvill RENEWAL
Deepesh A DilliardCanadaStephen Shaw NEW
Jefferson C CampainFranceIoni Bowcher NEGOTIATION
Adams F PoquetteRussiaIoni Bowcher NEW
Frozen Columns
Name
Jones H Glick
Deepesh D Rulapaugh
Wickens K Caudy
Claire A Chui
David V Figeroa
Stacey T Doe
Clifford J Slusarski
Claire P Vocelka
David W Caldarera
Greenwood L Oldroyd
Antonio X Paprocki
Octavia K Dilliard
Aruna K Campain
Maisha W Bolognia
Leja G Slusarski
Antonio M Paprocki
Maria U Vocelka
James Z Ostrosky
Morrow M Albares
Kaitlin A Tollner
Juan O Oldroyd
Johnson I Iturbide
Munro L Tollner
Jennifer D Amigon
Johnson C Glick
Cody B Vocelka
Kaitlin E Flosi
Adams W Ruta
Mayumi F Kolmetz
Sinclair J Waycott
Greenwood N Campain
Clifford H Waycott
Darci K Ruta
Salvatore N Albares
Darci O Bowley
Maisha I Foller
James Z Waycott
Jeanfrancois E Ruta
Juan E Ostrosky
David G Kolmetz
Deepesh R Paprocki
Chavez D Sergi
Johnson X Briddick
Darci X Foller
Tony O Maclead
Arvin B Iturbide
Deepesh A Oldroyd
Morrow U Saylors
Aruna T Flosi
Greenwood Z Stockham
IdCountryDate
1000France2024-06-24
1001Germany2024-06-08
1002Spain2024-06-18
1003Argentina2024-06-10
1004Germany2024-05-26
1005Russia2024-06-20
1006Germany2024-06-23
1007France2024-06-22
1008Italy2024-06-05
1009Germany2024-06-12
1010Spain2024-06-24
1011Russia2024-05-26
1012Spain2024-06-21
1013Germany2024-06-24
1014Germany2024-05-28
1015Canada2024-06-23
1016Spain2024-06-16
1017India2024-06-07
1018Argentina2024-06-24
1019Germany2024-06-22
1020Argentina2024-06-07
1021United Kingdom2024-06-18
1022Italy2024-06-16
1023Brazil2024-06-20
1024United Kingdom2024-06-02
1025India2024-05-26
1026Russia2024-06-07
1027Australia2024-06-03
1028Australia2024-06-06
1029Italy2024-06-23
1030Italy2024-06-14
1031Japan2024-06-17
1032United Kingdom2024-06-19
1033Italy2024-05-29
1034France2024-06-17
1035Brazil2024-06-03
1036Italy2024-06-14
1037United Kingdom2024-06-12
1038Spain2024-06-12
1039Australia2024-06-20
1040Canada2024-06-17
1041India2024-06-01
1042United Kingdom2024-06-12
1043Brazil2024-06-21
1044Germany2024-06-02
1045France2024-06-11
1046France2024-06-13
1047Italy2024-05-30
1048Brazil2024-06-22
1049Germany2024-05-26

On-Demand Data

NameIdCountryDate
Deepesh X Bowley1000Japan2024-06-22
Nicolas X Albares1001Spain2024-06-19
Kaitlin G Saylors1002Spain2024-06-07
Chavez U Oldroyd1003Germany2024-05-27
Darci U Figeroa1004India2024-06-01
Chavez Q Saylors1005Russia2024-06-06
Mayumi R Tollner1006Germany2024-05-31
Juan M Saylors1007Japan2024-06-20
Rodrigues J Schemmer1008Spain2024-06-04
Nicolas O Foller1009Spain2024-06-06
Juan B Bowley1010Italy2024-05-30
Julie C Rulapaugh1011United Kingdom2024-06-08
Clifford Y Sergi1012Argentina2024-06-21
Maria K Tollner1013Russia2024-06-17
Izzy H Maclead1014Australia2024-05-31
Faith Y Marrier1015India2024-06-02
Johnson P Gillian1016India2024-05-26
Faith E Ostrosky1017India2024-05-29
Maria O Garufi1018United Kingdom2024-06-07
Juan W Stenseth1019Spain2024-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony U VenereFranceStephen Shaw QUALIFIED
Aditya T IturbideItalyAmy Elsner PROPOSAL
Maisha B SchemmerFranceAnna Fali NEW
Francesco U InouyeJapanAmy Elsner PROPOSAL
Antonio D RoysterCanadaOnyama Limba QUALIFIED
Murillo I MaletIndiaAmy Elsner RENEWAL
Aruna D RutaAustraliaElwin Sharvill UNQUALIFIED
Aruna A KuskoRussiaXuxue Feng PROPOSAL
Deepesh H PaprockiRussiaIoni Bowcher NEGOTIATION
Jennifer Z DoeAustraliaAsiya Javayant UNQUALIFIED
Morrow V WaycottRussiaBernardo Dominic NEW
Maria G GillianItalyStephen Shaw NEW
Clifford I RoysterAustraliaBernardo Dominic QUALIFIED
Deepesh J BologniaGermanyAnna Fali UNQUALIFIED
Rodrigues Q StockhamItalyIvan Magalhaes RENEWAL
Julie V MacleadAustraliaAnna Fali QUALIFIED
Arvin P VocelkaRussiaXuxue Feng PROPOSAL
Leja N CampainFranceAsiya Javayant QUALIFIED
Jefferson L GlickArgentinaAmy Elsner UNQUALIFIED
Claire F DilliardGermanyAsiya Javayant NEGOTIATION
Rodrigues P MaletJapanBernardo Dominic QUALIFIED
Stacey F WieserCanadaAmy Elsner RENEWAL
Jefferson O NickaAustraliaElwin Sharvill PROPOSAL
Leon G PaprockiBrazilOnyama Limba RENEWAL
Jefferson C NickaJapanOnyama Limba NEGOTIATION
Izzy V WieserAustraliaIoni Bowcher UNQUALIFIED
Mujtaba W NickaGermanyIvan Magalhaes PROPOSAL
David P ButtArgentinaElwin Sharvill PROPOSAL
Johnson J MaletIndiaAnna Fali PROPOSAL
Ivar E KuskoFranceIvan Magalhaes PROPOSAL
Maisha L PerinBrazilOnyama Limba RENEWAL
Sinclair A OldroydAustraliaStephen Shaw RENEWAL
Maria S KuskoItalyElwin Sharvill RENEWAL
Jones N KuskoGermanyOnyama Limba RENEWAL
Maria R KuskoCanadaAsiya Javayant PROPOSAL
Darci Y FigeroaIndiaBernardo Dominic UNQUALIFIED
Maisha I VenereJapanIoni Bowcher NEGOTIATION
Adams F DarakjyFranceXuxue Feng NEW
Nicolas D MarrierSpainElwin Sharvill QUALIFIED
Maria L StockhamArgentinaElwin Sharvill 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>