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
Darci I PoquetteCanadaAmy Elsner UNQUALIFIED
Rodrigues S WieserCanadaStephen Shaw RENEWAL
Francesco Q ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Murillo B FerenczUnited KingdomAnna Fali QUALIFIED
Juan V BowleyIndiaAnna Fali PROPOSAL
Clifford K NickaBrazilXuxue Feng NEGOTIATION
Chavez M RutaArgentinaOnyama Limba NEW
Francesco C RutaCanadaIoni Bowcher NEW
Ricardo B MaletBrazilElwin Sharvill PROPOSAL
Misaki F MaletRussiaAsiya Javayant NEGOTIATION
Misaki Y IturbideUnited KingdomStephen Shaw RENEWAL
Kaitlin F FerenczAustraliaIvan Magalhaes RENEWAL
Mujtaba G DilliardCanadaIvan Magalhaes QUALIFIED
Aruna A MarrierItalyXuxue Feng RENEWAL
Adams R GillianArgentinaElwin Sharvill NEW
Ashley H CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Leon S VocelkaItalyElwin Sharvill NEW
Claire W FerenczUnited KingdomIvan Magalhaes RENEWAL
Faith G PoquetteItalyStephen Shaw PROPOSAL
Claire E PoquetteGermanyIoni Bowcher PROPOSAL
Isabel A WieserFranceIoni Bowcher UNQUALIFIED
Mayumi U SaylorsJapanIvan Magalhaes PROPOSAL
Maria X TollnerSpainAsiya Javayant QUALIFIED
Clifford A FollerAustraliaAsiya Javayant NEW
Aika Q KolmetzArgentinaAsiya Javayant UNQUALIFIED
Jennifer Z MaletAustraliaIvan Magalhaes NEGOTIATION
Emily L RulapaughFranceStephen Shaw PROPOSAL
Cody M OstroskyItalyAsiya Javayant PROPOSAL
Adams S DoeIndiaStephen Shaw RENEWAL
Kadeem T SergiAustraliaIvan Magalhaes PROPOSAL
Aika O WhobreyFranceIvan Magalhaes UNQUALIFIED
Munro P WieserIndiaXuxue Feng QUALIFIED
David D BriddickBrazilAmy Elsner UNQUALIFIED
Jefferson K GillianSpainStephen Shaw RENEWAL
Salvatore Q WhobreyRussiaXuxue Feng NEW
Izzy S CaldareraBrazilOnyama Limba RENEWAL
Smith H ChuiSpainStephen Shaw UNQUALIFIED
Alejandro S MarrierRussiaIoni Bowcher NEGOTIATION
Octavia L CaudyCanadaXuxue Feng PROPOSAL
Ivar C RulapaughItalyIvan Magalhaes RENEWAL
Maria J NestleGermanyBernardo Dominic PROPOSAL
Wickens L NickaRussiaXuxue Feng UNQUALIFIED
Maisha B MaletRussiaAsiya Javayant NEGOTIATION
Antonio A SchemmerIndiaStephen Shaw RENEWAL
Antonio Q SlusarskiFranceOnyama Limba NEGOTIATION
Claire W IturbideFranceIvan Magalhaes PROPOSAL
Emily E FollerAustraliaOnyama Limba QUALIFIED
Antonio T SergiAustraliaOnyama Limba NEGOTIATION
Maisha E OldroydAustraliaXuxue Feng NEW
Izzy N CaldareraFranceStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Leja V MaletItalyElwin Sharvill QUALIFIED
Claire H MaletItalyIvan Magalhaes NEGOTIATION
Silvio J ShinkoBrazilOnyama Limba NEW
Antonio A BriddickUnited KingdomStephen Shaw UNQUALIFIED
Kadeem I CampainSpainElwin Sharvill UNQUALIFIED
Silvio U VocelkaBrazilAsiya Javayant UNQUALIFIED
Stacey W ButtIndiaStephen Shaw NEGOTIATION
Juan S KolmetzFranceIvan Magalhaes NEW
Arvin D ShinkoRussiaElwin Sharvill RENEWAL
Costa M RulapaughFranceStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford R SlusarskiGermany2026-07-22Feiner Bros RENEWAL19Anna Fali
1001Arvin L NickaItaly2026-07-13Benton, John B Jr PROPOSAL46Asiya Javayant
1002Mujtaba F SaylorsSpain2026-07-14Feltz Printing Service QUALIFIED52Onyama Limba
1003Chavez D StensethArgentina2026-07-28Chemel, James L Cpa NEGOTIATION28Amy Elsner
1004Sinclair S SaylorsUnited Kingdom2026-07-26Commercial Press RENEWAL84Anna Fali
1005Ivar Z MaletIndia2026-07-14Dorl, James J Esq QUALIFIED21Amy Elsner
1006Clifford K CaudyGermany2026-07-24King, Christopher A Esq NEGOTIATION37Onyama Limba
1007Maria U TollnerBrazil2026-07-14Chapman, Ross E Esq UNQUALIFIED42Stephen Shaw
1008Arvin D StensethRussia2026-07-04Chemel, James L Cpa RENEWAL19Stephen Shaw
1009Claire P FigeroaCanada2026-07-28Printing Dimensions NEGOTIATION88Asiya Javayant
1010Clifford V KolmetzCanada2026-07-16Chemel, James L Cpa PROPOSAL5Anna Fali
1011David L BowleyCanada2026-07-21Buckley Miller Wright PROPOSAL52Stephen Shaw
1012Johnson H StensethUnited Kingdom2026-07-12King, Christopher A Esq UNQUALIFIED8Asiya Javayant
1013Aditya V SergiArgentina2026-07-04Chapman, Ross E Esq RENEWAL83Elwin Sharvill
1014Cody Q ShinkoUnited Kingdom2026-07-18Printing Dimensions UNQUALIFIED52Onyama Limba
1015Kadeem J StockhamBrazil2026-07-22Rousseaux, Michael Esq PROPOSAL24Ioni Bowcher
1016Deepesh Y FerenczRussia2026-07-23Rangoni Of Florence NEGOTIATION98Onyama Limba
1017Mayumi Y AlbaresJapan2026-07-16Buckley Miller Wright QUALIFIED57Xuxue Feng
1018Faith L SergiIndia2026-07-15Printing Dimensions PROPOSAL28Xuxue Feng
1019Octavia U RimBrazil2026-07-25Printing Dimensions PROPOSAL97Xuxue Feng
1020Aika Y WaycottSpain2026-07-09Chapman, Ross E Esq PROPOSAL83Asiya Javayant
1021Silvio J MarrierBrazil2026-07-06Chanay, Jeffrey A Esq QUALIFIED10Elwin Sharvill
1022Johnson Q ChuiSpain2026-07-23Commercial Press PROPOSAL18Elwin Sharvill
1023Ricardo C WaycottBrazil2026-07-22Chanay, Jeffrey A Esq NEGOTIATION25Ioni Bowcher
1024Izzy B MarrierBrazil2026-07-21King, Christopher A Esq NEGOTIATION23Amy Elsner
1025Maria R StockhamUnited Kingdom2026-07-23Buckley Miller Wright UNQUALIFIED73Ivan Magalhaes
1026Clifford P RulapaughAustralia2026-07-16Rangoni Of Florence UNQUALIFIED52Stephen Shaw
1027Alejandro M FigeroaSpain2026-07-15Commercial Press UNQUALIFIED85Ivan Magalhaes
1028Alejandro L FlosiUnited Kingdom2026-07-08Truhlar And Truhlar Attys PROPOSAL47Elwin Sharvill
1029Kadeem Z NickaGermany2026-07-29Feltz Printing Service QUALIFIED89Stephen Shaw
1030Francesco K KolmetzSpain2026-07-05Rousseaux, Michael Esq QUALIFIED1Anna Fali
1031Ivar P CaldareraFrance2026-07-20Feltz Printing Service UNQUALIFIED8Ioni Bowcher
1032Silvio P NickaSpain2026-07-14King, Christopher A Esq QUALIFIED45Asiya Javayant
1033Juan W StensethItaly2026-07-13Morlong Associates NEGOTIATION45Bernardo Dominic
1034Sinclair Y BologniaUnited Kingdom2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED63Asiya Javayant
1035Izzy D TollnerGermany2026-07-21King, Christopher A Esq QUALIFIED72Stephen Shaw
1036Isabel H WaycottRussia2026-07-13Dorl, James J Esq QUALIFIED14Anna Fali
1037Maria J NickaAustralia2026-08-01Feiner Bros RENEWAL92Elwin Sharvill
1038Jeanfrancois G SchemmerAustralia2026-07-27Dorl, James J Esq NEGOTIATION8Anna Fali
1039Ashley L AmigonUnited Kingdom2026-07-03Benton, John B Jr RENEWAL17Onyama Limba
1040Kadeem O VocelkaArgentina2026-07-04King, Christopher A Esq QUALIFIED21Elwin Sharvill
1041Ivar T TollnerCanada2026-07-18Printing Dimensions QUALIFIED63Stephen Shaw
1042Leja R PaprockiBrazil2026-07-12Buckley Miller Wright NEGOTIATION15Onyama Limba
1043Salvatore O WieserItaly2026-07-27Chapman, Ross E Esq UNQUALIFIED65Ioni Bowcher
1044Sinclair K PoquetteAustralia2026-07-28Benton, John B Jr QUALIFIED50Bernardo Dominic
1045Jeanfrancois Y WieserGermany2026-07-03Feltz Printing Service QUALIFIED66Bernardo Dominic
1046Antonio L BowleyJapan2026-07-26Printing Dimensions NEW59Amy Elsner
1047Adams P DarakjyRussia2026-07-21Chanay, Jeffrey A Esq RENEWAL68Bernardo Dominic
1048Faith Q OldroydArgentina2026-07-22Printing Dimensions NEW90Bernardo Dominic
1049Clifford Y PoquetteFrance2026-07-06Rangoni Of Florence NEW75Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Silvio F VenereUnited KingdomIvan Magalhaes QUALIFIED
Morrow W MacleadBrazilElwin Sharvill NEW
Alejandro K BriddickIndiaOnyama Limba NEW
Adams Z KuskoIndiaOnyama Limba RENEWAL
David M WaycottIndiaIoni Bowcher RENEWAL
Darci C RulapaughGermanyAsiya Javayant PROPOSAL
Cody D MorascaSpainAmy Elsner QUALIFIED
Jones H PerinBrazilAmy Elsner PROPOSAL
David H GillianGermanyOnyama Limba UNQUALIFIED
Kadeem L PerinItalyAnna Fali UNQUALIFIED
Clifford Y FerenczUnited KingdomAmy Elsner RENEWAL
Nicolas Q MaletRussiaStephen Shaw UNQUALIFIED
Jones C KuskoUnited KingdomOnyama Limba RENEWAL
Deepesh A FollerRussiaIoni Bowcher UNQUALIFIED
Deepesh P MarrierCanadaIoni Bowcher UNQUALIFIED
Stacey S KolmetzUnited KingdomOnyama Limba UNQUALIFIED
Costa T MarrierRussiaBernardo Dominic UNQUALIFIED
Deepesh O OldroydSpainElwin Sharvill PROPOSAL
Jeanfrancois P CampainIndiaAmy Elsner RENEWAL
Izzy T StensethArgentinaAsiya Javayant QUALIFIED
Kadeem N GlickItalyXuxue Feng PROPOSAL
Claire E CaudyAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois S RutaSpainBernardo Dominic PROPOSAL
Maria N MorascaIndiaIoni Bowcher RENEWAL
Jeanfrancois E RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Misaki X SchemmerBrazilIoni Bowcher PROPOSAL
Sinclair U StockhamSpainBernardo Dominic UNQUALIFIED
Ricardo X PoquetteFranceStephen Shaw NEGOTIATION
Emily R ChuiBrazilAmy Elsner PROPOSAL
Ashley O BriddickRussiaAnna Fali NEW
Nicolas Z NickaAustraliaOnyama Limba RENEWAL
Arvin D BologniaAustraliaAsiya Javayant RENEWAL
Jeanfrancois M FlosiCanadaAsiya Javayant QUALIFIED
Alejandro K PerinSpainXuxue Feng UNQUALIFIED
Alejandro G FollerSpainXuxue Feng PROPOSAL
Faith D VenereFranceAsiya Javayant PROPOSAL
Claire S StockhamIndiaElwin Sharvill NEW
Murillo Q NestleIndiaAnna Fali NEGOTIATION
Maisha J CaldareraIndiaElwin Sharvill QUALIFIED
Maria P WieserJapanOnyama Limba QUALIFIED
Greenwood U IturbideJapanIoni Bowcher QUALIFIED
Kaitlin L OldroydGermanyOnyama Limba QUALIFIED
Adams C GarufiItalyOnyama Limba NEGOTIATION
Adams D DoeUnited KingdomStephen Shaw QUALIFIED
Aditya Y RimArgentinaAsiya Javayant NEW
Silvio S NickaIndiaStephen Shaw PROPOSAL
Aruna F MarrierGermanyIvan Magalhaes NEW
Juan N RoysterArgentinaIvan Magalhaes RENEWAL
Antonio Q PaprockiGermanyIoni Bowcher NEGOTIATION
Alejandro C DilliardBrazilStephen Shaw NEGOTIATION
Frozen Columns
Name
Julie Z Garufi
Antonio Y Kusko
Misaki M Ruta
Maisha K Dilliard
Costa U Bowley
Nicolas J Morasca
Aruna P Caudy
Francesco G Stenseth
Adams U Kusko
James Q Foller
Deepesh H Butt
Salvatore V Kolmetz
Julie M Saylors
Aruna B Tollner
Misaki G Kolmetz
Aditya N Stenseth
Arvin W Kusko
Chavez E Darakjy
Greenwood F Ruta
Salvatore X Nestle
Smith J Butt
Darci A Wieser
Deepesh O Flosi
Alejandro Y Briddick
Deepesh T Caldarera
Aditya L Kusko
Aika X Garufi
Darci R Chui
Aruna Q Gaucho
Murillo V Vocelka
Jeanfrancois H Marrier
Nicolas M Caudy
Julie G Kusko
Rodrigues I Venere
Julie N Malet
Kadeem F Waycott
Tony I Marrier
James K Briddick
Munro V Nicka
Julie V Stenseth
Leja F Caudy
Johnson A Figeroa
Jeanfrancois O Stockham
Smith W Ruta
Misaki T Royster
Ashley D Doe
Costa M Poquette
Munro F Shinko
Tony D Marrier
Johnson U Amigon
IdCountryDate
1000Russia2026-07-20
1001France2026-07-30
1002United Kingdom2026-07-18
1003Russia2026-07-24
1004France2026-07-13
1005Canada2026-07-26
1006Australia2026-07-28
1007Spain2026-07-26
1008United Kingdom2026-08-01
1009Spain2026-07-22
1010Australia2026-07-13
1011Brazil2026-07-17
1012France2026-07-28
1013Australia2026-07-13
1014Argentina2026-07-15
1015Argentina2026-07-19
1016Russia2026-07-12
1017Germany2026-07-07
1018Canada2026-07-26
1019Germany2026-07-19
1020India2026-08-01
1021United Kingdom2026-07-04
1022Japan2026-07-23
1023France2026-07-14
1024Spain2026-07-22
1025United Kingdom2026-07-23
1026Australia2026-07-05
1027United Kingdom2026-07-09
1028Germany2026-07-14
1029Russia2026-07-22
1030Argentina2026-07-23
1031Canada2026-07-18
1032Brazil2026-07-29
1033Brazil2026-07-19
1034Russia2026-07-25
1035Argentina2026-07-26
1036Brazil2026-08-01
1037Brazil2026-07-31
1038Canada2026-07-12
1039Canada2026-07-19
1040Canada2026-07-05
1041France2026-07-17
1042Japan2026-07-11
1043Argentina2026-07-28
1044United Kingdom2026-07-10
1045Russia2026-07-22
1046Germany2026-07-04
1047Australia2026-07-05
1048Australia2026-07-03
1049Russia2026-07-20

On-Demand Data

NameIdCountryDate
Johnson U Kusko1000France2026-08-01
Jeanfrancois D Paprocki1001United Kingdom2026-07-15
Morrow L Maclead1002India2026-07-19
Mujtaba D Doe1003Japan2026-07-06
Kaitlin L Whobrey1004United Kingdom2026-07-25
Jefferson Q Kusko1005Germany2026-07-14
Maria K Stenseth1006France2026-07-29
Jennifer M Morasca1007Australia2026-07-19
Izzy P Caldarera1008United Kingdom2026-07-17
Faith J Chui1009Argentina2026-07-15
Ivar W Butt1010Argentina2026-07-11
Wickens V Stenseth1011India2026-07-19
Smith F Ferencz1012Japan2026-07-09
Clifford R Butt1013Australia2026-08-01
Murillo W Iturbide1014France2026-08-01
Ricardo F Poquette1015Japan2026-07-21
Antonio F Stockham1016Australia2026-07-24
Mayumi J Albares1017Japan2026-07-08
Cody Z Ruta1018India2026-07-09
Kadeem L Poquette1019France2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony C ChuiFranceStephen Shaw UNQUALIFIED
Ricardo Y StensethRussiaBernardo Dominic QUALIFIED
Johnson N PaprockiSpainAnna Fali UNQUALIFIED
Costa J CaldareraArgentinaBernardo Dominic UNQUALIFIED
Maisha M BologniaRussiaIvan Magalhaes NEGOTIATION
Costa L RimIndiaStephen Shaw UNQUALIFIED
Misaki F SchemmerSpainAsiya Javayant QUALIFIED
Adams E FollerSpainAmy Elsner UNQUALIFIED
Maisha Z MaletBrazilXuxue Feng QUALIFIED
Smith H GarufiIndiaBernardo Dominic RENEWAL
David V TollnerCanadaAnna Fali RENEWAL
Munro I WieserAustraliaAmy Elsner UNQUALIFIED
Greenwood J RimBrazilAnna Fali RENEWAL
Salvatore Q GlickIndiaAsiya Javayant RENEWAL
Adams I ButtRussiaOnyama Limba PROPOSAL
Salvatore F BriddickJapanXuxue Feng QUALIFIED
Alejandro P ShinkoCanadaIvan Magalhaes NEW
Jones E MarrierBrazilAmy Elsner RENEWAL
Aditya S FigeroaRussiaStephen Shaw NEW
Rodrigues J IturbideArgentinaIvan Magalhaes NEW
Jefferson U PaprockiCanadaAsiya Javayant NEW
Jones T WhobreyIndiaIvan Magalhaes QUALIFIED
Kadeem K BowleyGermanyBernardo Dominic UNQUALIFIED
Aditya L GauchoFranceAsiya Javayant PROPOSAL
Johnson H ButtArgentinaOnyama Limba NEGOTIATION
Aika R ChuiFranceElwin Sharvill PROPOSAL
Aruna W GillianIndiaIvan Magalhaes PROPOSAL
Antonio T CaldareraGermanyElwin Sharvill UNQUALIFIED
Darci V GillianGermanyIoni Bowcher RENEWAL
Stacey C WieserUnited KingdomStephen Shaw QUALIFIED
Alejandro R KolmetzArgentinaBernardo Dominic NEGOTIATION
Johnson C NestleGermanyBernardo Dominic NEGOTIATION
Nicolas Q MorascaArgentinaAsiya Javayant QUALIFIED
Antonio X MaletRussiaIoni Bowcher RENEWAL
Maisha W RoysterBrazilOnyama Limba NEW
Darci Q MaletRussiaIvan Magalhaes RENEWAL
Rodrigues E KolmetzGermanyElwin Sharvill NEGOTIATION
Greenwood C StockhamCanadaBernardo Dominic NEW
Aruna N PoquetteCanadaAmy Elsner NEGOTIATION
Silvio N AmigonSpainAnna Fali PROPOSAL

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