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
Julie G RulapaughAustraliaXuxue Feng RENEWAL
Johnson Y TollnerGermanyIvan Magalhaes NEW
Munro U KuskoSpainAsiya Javayant QUALIFIED
Mujtaba S DarakjyJapanXuxue Feng QUALIFIED
Murillo R RimArgentinaElwin Sharvill QUALIFIED
Jones O InouyeFranceAsiya Javayant UNQUALIFIED
James J CampainUnited KingdomAsiya Javayant PROPOSAL
Octavia K TollnerRussiaStephen Shaw PROPOSAL
Mujtaba Y SergiSpainIvan Magalhaes QUALIFIED
Jeanfrancois B FlosiUnited KingdomAnna Fali NEW
Arvin Z AlbaresBrazilElwin Sharvill PROPOSAL
Aditya O VenereUnited KingdomBernardo Dominic PROPOSAL
Alejandro I CampainGermanyXuxue Feng RENEWAL
Morrow A IturbideBrazilAnna Fali UNQUALIFIED
Octavia T WaycottIndiaOnyama Limba UNQUALIFIED
Clifford M FerenczUnited KingdomAnna Fali NEGOTIATION
Kaitlin E WhobreyJapanAmy Elsner NEGOTIATION
Jefferson U StensethRussiaAnna Fali PROPOSAL
Kadeem V OldroydRussiaBernardo Dominic UNQUALIFIED
Ricardo Q MacleadBrazilIvan Magalhaes QUALIFIED
Leja B VocelkaAustraliaBernardo Dominic RENEWAL
Chavez M FlosiRussiaAnna Fali NEW
Octavia P SaylorsArgentinaStephen Shaw QUALIFIED
Kadeem Q VocelkaJapanXuxue Feng RENEWAL
Tony O OstroskyItalyXuxue Feng UNQUALIFIED
Jones D IturbideItalyStephen Shaw RENEWAL
Darci K WieserCanadaAmy Elsner RENEWAL
Maria R MacleadIndiaElwin Sharvill NEW
Aika J CaudyIndiaIvan Magalhaes NEGOTIATION
Wickens E SaylorsUnited KingdomXuxue Feng NEW
Claire Y OldroydItalyIoni Bowcher NEW
Maisha V CaudyBrazilOnyama Limba UNQUALIFIED
Rodrigues D FlosiAustraliaAsiya Javayant QUALIFIED
Isabel O GlickSpainAsiya Javayant RENEWAL
Tony Z FlosiUnited KingdomBernardo Dominic RENEWAL
Chavez J StockhamJapanElwin Sharvill UNQUALIFIED
Nicolas R SaylorsBrazilBernardo Dominic UNQUALIFIED
Alejandro Y WieserGermanyAnna Fali PROPOSAL
Antonio Q ShinkoFranceAsiya Javayant UNQUALIFIED
Ivar W ShinkoIndiaStephen Shaw UNQUALIFIED
Rodrigues J AmigonFranceAsiya Javayant PROPOSAL
Emily K NickaRussiaXuxue Feng QUALIFIED
Faith V WieserGermanyAnna Fali QUALIFIED
Octavia B OldroydItalyOnyama Limba NEW
Silvio Z SergiGermanyStephen Shaw NEW
Jennifer U MorascaRussiaIvan Magalhaes NEW
Ivar G FollerArgentinaAmy Elsner PROPOSAL
Jeanfrancois D RulapaughGermanyXuxue Feng UNQUALIFIED
Ricardo X SlusarskiJapanIvan Magalhaes UNQUALIFIED
Sinclair N NickaUnited KingdomAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson G WhobreyIndiaIvan Magalhaes UNQUALIFIED
Adams A VenereCanadaAmy Elsner UNQUALIFIED
David J CaudyAustraliaXuxue Feng RENEWAL
Maisha P SaylorsItalyAmy Elsner UNQUALIFIED
Emily Y NestleRussiaOnyama Limba RENEWAL
Maisha X WaycottJapanAnna Fali UNQUALIFIED
Arvin E MarrierSpainStephen Shaw NEGOTIATION
Jefferson E DarakjyRussiaIvan Magalhaes RENEWAL
Misaki K SaylorsItalyXuxue Feng QUALIFIED
Jefferson H NestleItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore K DarakjyGermany2026-06-24Rousseaux, Michael Esq NEGOTIATION18Stephen Shaw
1001Aditya Z SlusarskiJapan2026-07-05Printing Dimensions PROPOSAL48Elwin Sharvill
1002Antonio J StockhamBrazil2026-06-28Chanay, Jeffrey A Esq RENEWAL65Onyama Limba
1003Francesco C SaylorsSpain2026-06-23Commercial Press PROPOSAL30Stephen Shaw
1004Isabel D DilliardSpain2026-06-25King, Christopher A Esq UNQUALIFIED66Asiya Javayant
1005Adams T ButtCanada2026-07-08Chemel, James L Cpa NEW55Stephen Shaw
1006Maria L GarufiArgentina2026-06-12Chanay, Jeffrey A Esq PROPOSAL80Ivan Magalhaes
1007Murillo K GillianUnited Kingdom2026-06-24Chapman, Ross E Esq QUALIFIED49Ioni Bowcher
1008David G MaletItaly2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED78Ivan Magalhaes
1009Costa F MaletSpain2026-06-21Rangoni Of Florence NEGOTIATION53Elwin Sharvill
1010Tony V MaletFrance2026-06-18Chemel, James L Cpa UNQUALIFIED97Onyama Limba
1011Stacey J ChuiSpain2026-06-22Dorl, James J Esq UNQUALIFIED33Asiya Javayant
1012Octavia X GlickJapan2026-07-07Dorl, James J Esq PROPOSAL69Amy Elsner
1013Murillo K MacleadFrance2026-07-04Chemel, James L Cpa QUALIFIED14Stephen Shaw
1014Mujtaba S GarufiGermany2026-07-07Buckley Miller Wright RENEWAL35Ivan Magalhaes
1015Isabel O MaletJapan2026-06-27Feltz Printing Service NEW80Bernardo Dominic
1016Munro C AmigonAustralia2026-06-23Truhlar And Truhlar Attys PROPOSAL87Bernardo Dominic
1017Arvin B GarufiAustralia2026-06-27Feltz Printing Service RENEWAL59Anna Fali
1018Munro T ChuiJapan2026-06-24Chapman, Ross E Esq NEGOTIATION89Xuxue Feng
1019Aditya A SergiSpain2026-06-26Benton, John B Jr PROPOSAL6Onyama Limba
1020Stacey P DarakjyArgentina2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED58Anna Fali
1021Jeanfrancois D GillianBrazil2026-06-16Truhlar And Truhlar Attys NEW54Ivan Magalhaes
1022Costa M FerenczCanada2026-06-21Feiner Bros PROPOSAL6Ivan Magalhaes
1023Emily E SlusarskiIndia2026-07-02Rangoni Of Florence RENEWAL80Xuxue Feng
1024Leja F RoysterFrance2026-06-20King, Christopher A Esq NEW73Bernardo Dominic
1025Aika J KuskoBrazil2026-06-27Buckley Miller Wright PROPOSAL92Ivan Magalhaes
1026Leon T PoquetteJapan2026-07-07Chanay, Jeffrey A Esq RENEWAL89Onyama Limba
1027Deepesh F WaycottCanada2026-06-15Printing Dimensions PROPOSAL4Xuxue Feng
1028Octavia V InouyeBrazil2026-06-15Chapman, Ross E Esq NEGOTIATION50Xuxue Feng
1029Jeanfrancois Z BowleyRussia2026-06-30Chapman, Ross E Esq QUALIFIED70Asiya Javayant
1030Rodrigues N AmigonFrance2026-06-25King, Christopher A Esq PROPOSAL6Elwin Sharvill
1031Ashley V TollnerArgentina2026-06-27Truhlar And Truhlar Attys NEGOTIATION28Onyama Limba
1032Ivar C SchemmerGermany2026-07-07Commercial Press QUALIFIED33Asiya Javayant
1033Ricardo B PaprockiJapan2026-06-11Feltz Printing Service NEW25Anna Fali
1034Chavez N ChuiAustralia2026-06-24Benton, John B Jr UNQUALIFIED11Elwin Sharvill
1035Ricardo X ButtBrazil2026-06-16Commercial Press PROPOSAL61Ioni Bowcher
1036Aditya U GarufiJapan2026-06-15King, Christopher A Esq RENEWAL28Xuxue Feng
1037Izzy U NickaSpain2026-06-29Commercial Press PROPOSAL59Xuxue Feng
1038Arvin Y DilliardGermany2026-06-16Feltz Printing Service QUALIFIED87Ioni Bowcher
1039Costa D VocelkaAustralia2026-07-08Rousseaux, Michael Esq NEW78Elwin Sharvill
1040Octavia F BowleyBrazil2026-07-01Truhlar And Truhlar Attys QUALIFIED99Ioni Bowcher
1041Aruna G CaldareraSpain2026-06-25Truhlar And Truhlar Attys RENEWAL74Elwin Sharvill
1042Sinclair V CampainUnited Kingdom2026-06-29Rousseaux, Michael Esq QUALIFIED24Elwin Sharvill
1043Tony U DilliardGermany2026-06-29Rangoni Of Florence NEW7Ivan Magalhaes
1044Octavia A BologniaItaly2026-06-11Truhlar And Truhlar Attys NEW89Elwin Sharvill
1045Wickens Y CaldareraSpain2026-06-21Chemel, James L Cpa PROPOSAL96Xuxue Feng
1046Izzy Y KolmetzArgentina2026-06-24Truhlar And Truhlar Attys UNQUALIFIED14Bernardo Dominic
1047Francesco V IturbideArgentina2026-06-15Rangoni Of Florence RENEWAL65Asiya Javayant
1048James Z CaldareraRussia2026-07-04Dorl, James J Esq PROPOSAL10Ioni Bowcher
1049Salvatore Y PaprockiSpain2026-07-06Chemel, James L Cpa PROPOSAL66Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Deepesh A RutaArgentinaXuxue Feng NEGOTIATION
Ricardo Q TollnerJapanAsiya Javayant QUALIFIED
Octavia E GillianAustraliaXuxue Feng NEW
Adams P CampainSpainIvan Magalhaes RENEWAL
Adams Z NestleBrazilIoni Bowcher QUALIFIED
Juan B ButtUnited KingdomOnyama Limba NEGOTIATION
Leja M StensethIndiaOnyama Limba RENEWAL
Tony Q IturbideItalyAnna Fali NEGOTIATION
Kadeem G WieserFranceIoni Bowcher UNQUALIFIED
Kaitlin T NestleBrazilStephen Shaw PROPOSAL
James N VocelkaRussiaXuxue Feng NEGOTIATION
Ivar I AlbaresFranceIvan Magalhaes NEGOTIATION
Misaki P RimBrazilAnna Fali UNQUALIFIED
Ivar K MacleadCanadaOnyama Limba RENEWAL
David J CampainUnited KingdomBernardo Dominic RENEWAL
Octavia H BriddickIndiaAmy Elsner NEGOTIATION
Tony W SchemmerSpainOnyama Limba UNQUALIFIED
Stacey K ShinkoJapanAnna Fali NEW
Jennifer P TollnerCanadaIoni Bowcher NEW
Faith Y StensethFranceAsiya Javayant NEGOTIATION
Sinclair M FlosiAustraliaXuxue Feng UNQUALIFIED
Claire W SaylorsJapanIvan Magalhaes RENEWAL
Jones J CaudyGermanyIvan Magalhaes NEW
Leon Z RulapaughSpainElwin Sharvill PROPOSAL
Ivar M DoeJapanStephen Shaw NEGOTIATION
David O WaycottBrazilXuxue Feng NEGOTIATION
Clifford C FerenczAustraliaBernardo Dominic RENEWAL
Salvatore A CaldareraIndiaXuxue Feng NEW
Salvatore K CampainCanadaElwin Sharvill NEW
Ashley F BologniaRussiaStephen Shaw QUALIFIED
Julie O WhobreyFranceIvan Magalhaes UNQUALIFIED
James O MarrierBrazilBernardo Dominic UNQUALIFIED
Francesco R NestleUnited KingdomBernardo Dominic QUALIFIED
Leon T TollnerIndiaElwin Sharvill UNQUALIFIED
Emily C BriddickGermanyAnna Fali UNQUALIFIED
Smith G AlbaresRussiaElwin Sharvill UNQUALIFIED
Ashley B IturbideCanadaAnna Fali QUALIFIED
Aruna U FollerAustraliaIvan Magalhaes NEGOTIATION
Mujtaba T VenereItalyAmy Elsner QUALIFIED
Darci F DilliardAustraliaAsiya Javayant NEGOTIATION
Silvio U InouyeGermanyElwin Sharvill QUALIFIED
Ashley N SaylorsArgentinaBernardo Dominic NEGOTIATION
Sinclair Q PerinSpainAmy Elsner QUALIFIED
Claire O IturbideRussiaAmy Elsner NEGOTIATION
Ricardo L ButtSpainIoni Bowcher NEW
Darci B InouyeItalyElwin Sharvill UNQUALIFIED
Faith K WaycottBrazilIoni Bowcher QUALIFIED
Jennifer D WaycottAustraliaIoni Bowcher RENEWAL
Maisha I FollerUnited KingdomXuxue Feng NEGOTIATION
Isabel O PaprockiAustraliaElwin Sharvill NEW
Frozen Columns
Name
Tony E Inouye
Misaki Y Figeroa
Isabel V Kolmetz
Juan D Ruta
David I Kolmetz
Stacey L Rulapaugh
Adams E Malet
Ivar L Glick
Murillo I Stenseth
Ivar O Kusko
Smith A Ostrosky
Kaitlin H Darakjy
Faith U Ruta
Wickens K Kolmetz
Ricardo K Dilliard
Leon I Malet
Sinclair A Marrier
Francesco D Glick
Cody S Whobrey
Mayumi V Butt
Tony C Oldroyd
Johnson M Paprocki
Aditya N Sergi
Deepesh R Morasca
Ashley L Ruta
Clifford Z Rulapaugh
Cody N Garufi
Deepesh O Rim
Antonio D Glick
Murillo S Bolognia
Aruna H Vocelka
Maisha D Caldarera
Tony I Caldarera
Ashley I Venere
Nicolas L Royster
Maria L Foller
Costa N Perin
Maria C Malet
Juan S Waycott
Isabel C Paprocki
Izzy G Chui
Greenwood O Slusarski
Jeanfrancois H Nestle
Aika P Malet
Aika Q Chui
Munro L Glick
Jennifer D Chui
Aika Q Gaucho
Smith R Ferencz
Faith D Malet
IdCountryDate
1000Spain2026-07-02
1001Argentina2026-06-26
1002Spain2026-06-18
1003Brazil2026-07-03
1004Russia2026-06-24
1005Canada2026-06-13
1006Germany2026-06-19
1007Brazil2026-07-08
1008United Kingdom2026-07-10
1009Germany2026-07-06
1010Spain2026-07-07
1011Spain2026-06-11
1012Brazil2026-07-07
1013India2026-06-24
1014Russia2026-07-02
1015Spain2026-06-27
1016Argentina2026-07-07
1017Italy2026-06-23
1018Australia2026-06-23
1019Russia2026-07-07
1020Russia2026-07-06
1021India2026-07-01
1022Spain2026-07-08
1023Russia2026-07-06
1024France2026-06-20
1025Russia2026-06-20
1026Argentina2026-07-04
1027Japan2026-06-23
1028Argentina2026-06-25
1029Brazil2026-07-03
1030Argentina2026-06-27
1031Germany2026-07-05
1032Spain2026-06-18
1033Argentina2026-06-28
1034United Kingdom2026-06-24
1035Italy2026-06-13
1036Russia2026-07-05
1037Spain2026-07-05
1038Brazil2026-06-21
1039India2026-06-21
1040France2026-07-07
1041Japan2026-07-06
1042Japan2026-07-04
1043Russia2026-06-19
1044Germany2026-06-22
1045India2026-06-22
1046Italy2026-06-19
1047Germany2026-07-03
1048United Kingdom2026-06-19
1049United Kingdom2026-06-19

On-Demand Data

NameIdCountryDate
Mujtaba R Rim1000Argentina2026-06-27
Maria I Foller1001United Kingdom2026-06-17
Jones Q Tollner1002Japan2026-06-23
Ricardo X Kusko1003Argentina2026-07-01
Morrow B Tollner1004France2026-06-20
Stacey Y Ostrosky1005Italy2026-06-16
Adams C Maclead1006Germany2026-06-17
Francesco O Campain1007Germany2026-06-29
Claire S Schemmer1008Argentina2026-06-26
Aditya V Briddick1009Brazil2026-07-05
Rodrigues C Whobrey1010United Kingdom2026-06-17
David H Poquette1011France2026-06-26
Aruna M Kolmetz1012Japan2026-06-21
Nicolas R Amigon1013Germany2026-06-21
Mayumi Z Schemmer1014Canada2026-07-04
Cody U Gillian1015Argentina2026-06-21
Francesco R Gaucho1016Italy2026-07-10
Ricardo N Ruta1017India2026-06-29
Aditya A Slusarski1018Japan2026-06-17
Isabel H Morasca1019Brazil2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey F CaudyRussiaBernardo Dominic NEGOTIATION
Ricardo H OstroskyIndiaIoni Bowcher NEGOTIATION
Octavia Y GarufiSpainXuxue Feng UNQUALIFIED
Greenwood O VocelkaItalyAnna Fali RENEWAL
Cody H RoysterAustraliaXuxue Feng QUALIFIED
Kadeem B AmigonSpainStephen Shaw QUALIFIED
Julie A CampainItalyOnyama Limba NEGOTIATION
Ashley M GillianGermanyAsiya Javayant PROPOSAL
Francesco R PaprockiSpainIoni Bowcher PROPOSAL
Faith J PoquetteGermanyAsiya Javayant QUALIFIED
Isabel P FlosiGermanyIoni Bowcher QUALIFIED
Morrow N RimBrazilIvan Magalhaes NEGOTIATION
Aika W FerenczIndiaAnna Fali UNQUALIFIED
Costa C CampainRussiaElwin Sharvill PROPOSAL
David C InouyeBrazilAnna Fali RENEWAL
Aruna X TollnerArgentinaElwin Sharvill UNQUALIFIED
Alejandro T GarufiItalyBernardo Dominic NEW
Kaitlin A MarrierGermanyStephen Shaw NEGOTIATION
Ashley X DilliardAustraliaAsiya Javayant RENEWAL
Wickens M FlosiIndiaIvan Magalhaes PROPOSAL
Tony N ButtJapanAmy Elsner UNQUALIFIED
Kaitlin V SlusarskiJapanElwin Sharvill RENEWAL
David Q OldroydAustraliaIvan Magalhaes UNQUALIFIED
Ashley O MaletAustraliaAmy Elsner NEW
Morrow H GauchoSpainElwin Sharvill RENEWAL
Mayumi F MorascaBrazilXuxue Feng PROPOSAL
Nicolas M TollnerJapanAsiya Javayant NEW
Salvatore T TollnerJapanIvan Magalhaes NEW
Kaitlin I OstroskyUnited KingdomAsiya Javayant RENEWAL
Aruna M OstroskyRussiaAsiya Javayant QUALIFIED
Antonio A FigeroaIndiaIvan Magalhaes NEGOTIATION
Izzy P DarakjyItalyBernardo Dominic NEW
Costa F CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Francesco K OstroskyUnited KingdomElwin Sharvill NEW
Leja G SchemmerIndiaStephen Shaw RENEWAL
Maria J MaletJapanStephen Shaw NEW
Chavez J BowleyItalyOnyama Limba UNQUALIFIED
Jennifer N OstroskyJapanStephen Shaw QUALIFIED
Johnson R VocelkaAustraliaAmy Elsner QUALIFIED
Faith G CaldareraItalyAsiya Javayant 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>