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
Greenwood U IturbideCanadaIoni Bowcher UNQUALIFIED
Emily W MarrierCanadaElwin Sharvill UNQUALIFIED
Murillo X AlbaresCanadaAmy Elsner UNQUALIFIED
Nicolas Q SaylorsArgentinaIoni Bowcher NEGOTIATION
Tony D PerinAustraliaIoni Bowcher NEGOTIATION
Arvin D GillianUnited KingdomAmy Elsner NEW
Maria Z BologniaIndiaAnna Fali RENEWAL
Ivar A CaudyBrazilAsiya Javayant UNQUALIFIED
Tony N FigeroaArgentinaXuxue Feng PROPOSAL
Julie L OstroskyUnited KingdomAnna Fali NEW
Jennifer H RimBrazilXuxue Feng PROPOSAL
Leja O SlusarskiGermanyIoni Bowcher NEGOTIATION
Leja S WaycottArgentinaOnyama Limba PROPOSAL
Morrow D SaylorsItalyIvan Magalhaes QUALIFIED
Nicolas J MorascaArgentinaAnna Fali RENEWAL
David X NestleJapanStephen Shaw NEGOTIATION
Antonio G SchemmerItalyAnna Fali UNQUALIFIED
Murillo E CaldareraIndiaStephen Shaw QUALIFIED
Maria L GarufiRussiaBernardo Dominic NEGOTIATION
Jeanfrancois N FerenczSpainIvan Magalhaes NEGOTIATION
Mayumi L ShinkoCanadaAmy Elsner QUALIFIED
Adams K RimIndiaAmy Elsner UNQUALIFIED
Johnson G DoeGermanyOnyama Limba RENEWAL
Leja H CaudyGermanyStephen Shaw PROPOSAL
Jefferson N GillianAustraliaElwin Sharvill UNQUALIFIED
Tony U WieserBrazilOnyama Limba NEGOTIATION
Deepesh E MorascaAustraliaIvan Magalhaes RENEWAL
Silvio Y GarufiAustraliaOnyama Limba PROPOSAL
Nicolas U FerenczFranceElwin Sharvill NEGOTIATION
Wickens M VenereFranceBernardo Dominic UNQUALIFIED
Nicolas E SlusarskiIndiaOnyama Limba PROPOSAL
Mayumi L PerinFranceXuxue Feng QUALIFIED
Kadeem X WhobreyAustraliaElwin Sharvill NEW
Tony B PerinSpainElwin Sharvill NEW
Clifford W ButtUnited KingdomBernardo Dominic NEGOTIATION
Stacey L OldroydUnited KingdomXuxue Feng PROPOSAL
Smith P MarrierArgentinaAmy Elsner PROPOSAL
Costa X StensethUnited KingdomElwin Sharvill QUALIFIED
James M StockhamIndiaElwin Sharvill QUALIFIED
David P RutaBrazilAsiya Javayant UNQUALIFIED
Nicolas G KolmetzGermanyIvan Magalhaes NEGOTIATION
Arvin W FerenczJapanOnyama Limba RENEWAL
Leon I KolmetzBrazilIvan Magalhaes NEW
Morrow P StensethFranceElwin Sharvill NEGOTIATION
Chavez D GauchoArgentinaBernardo Dominic QUALIFIED
Morrow Y StensethSpainAmy Elsner PROPOSAL
Alejandro C KolmetzAustraliaIvan Magalhaes PROPOSAL
Smith O TollnerSpainIvan Magalhaes RENEWAL
Ricardo R BowleyJapanElwin Sharvill NEW
Francesco Y DoeAustraliaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair I NickaGermanyXuxue Feng UNQUALIFIED
Deepesh G IturbideUnited KingdomAsiya Javayant NEW
Mayumi J PoquetteUnited KingdomXuxue Feng QUALIFIED
Leja V VocelkaArgentinaIoni Bowcher QUALIFIED
Kadeem Y SergiItalyBernardo Dominic PROPOSAL
Maria X WieserFranceBernardo Dominic PROPOSAL
Arvin V CaldareraRussiaOnyama Limba UNQUALIFIED
Arvin Y NestleFranceBernardo Dominic RENEWAL
Juan K DarakjyJapanBernardo Dominic NEGOTIATION
Deepesh I WaycottRussiaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja T BriddickAustralia2026-06-25Morlong Associates PROPOSAL33Amy Elsner
1001Ashley B RutaArgentina2026-06-07Chanay, Jeffrey A Esq PROPOSAL7Ivan Magalhaes
1002Salvatore M RoysterRussia2026-06-30Commercial Press UNQUALIFIED12Xuxue Feng
1003Deepesh T SergiAustralia2026-06-23Commercial Press UNQUALIFIED72Asiya Javayant
1004Tony P GauchoItaly2026-06-11Rousseaux, Michael Esq UNQUALIFIED76Ivan Magalhaes
1005Faith B WaycottBrazil2026-06-30Feiner Bros QUALIFIED35Elwin Sharvill
1006Greenwood C WaycottFrance2026-06-23Feltz Printing Service UNQUALIFIED98Bernardo Dominic
1007Adams Y FlosiRussia2026-06-10Printing Dimensions UNQUALIFIED86Onyama Limba
1008Morrow T FerenczGermany2026-06-12Rousseaux, Michael Esq QUALIFIED71Xuxue Feng
1009Julie U SaylorsIndia2026-06-05Chemel, James L Cpa PROPOSAL56Stephen Shaw
1010Leja H RulapaughUnited Kingdom2026-06-23Benton, John B Jr NEW72Anna Fali
1011Mayumi Y SaylorsItaly2026-06-19Truhlar And Truhlar Attys QUALIFIED47Ivan Magalhaes
1012Ivar O SaylorsIndia2026-06-13Benton, John B Jr NEGOTIATION17Xuxue Feng
1013Emily G PoquetteAustralia2026-07-02Rousseaux, Michael Esq UNQUALIFIED60Onyama Limba
1014Misaki A BriddickItaly2026-06-24Chanay, Jeffrey A Esq NEGOTIATION6Amy Elsner
1015Kadeem D RutaGermany2026-06-16Dorl, James J Esq QUALIFIED66Ioni Bowcher
1016Mujtaba J DoeGermany2026-06-17Rousseaux, Michael Esq NEGOTIATION62Asiya Javayant
1017Kaitlin Z PaprockiRussia2026-06-26Chemel, James L Cpa UNQUALIFIED66Onyama Limba
1018Maria R GarufiGermany2026-06-26Chanay, Jeffrey A Esq NEW42Asiya Javayant
1019Juan P MaletArgentina2026-06-05Commercial Press PROPOSAL9Elwin Sharvill
1020Kadeem S FollerItaly2026-06-09Dorl, James J Esq PROPOSAL72Ioni Bowcher
1021Mujtaba C MarrierAustralia2026-06-08Dorl, James J Esq UNQUALIFIED51Ivan Magalhaes
1022Jeanfrancois N KolmetzRussia2026-06-17Feiner Bros RENEWAL8Stephen Shaw
1023Adams D NestleSpain2026-06-28Benton, John B Jr RENEWAL61Xuxue Feng
1024Tony R OstroskyGermany2026-06-20King, Christopher A Esq QUALIFIED64Onyama Limba
1025Arvin Y MaletUnited Kingdom2026-06-27Commercial Press PROPOSAL82Amy Elsner
1026Wickens D FigeroaBrazil2026-07-02Printing Dimensions UNQUALIFIED91Amy Elsner
1027Jeanfrancois U SaylorsGermany2026-06-16Buckley Miller Wright RENEWAL91Bernardo Dominic
1028Alejandro J MarrierGermany2026-07-01King, Christopher A Esq RENEWAL97Ioni Bowcher
1029Darci F RutaUnited Kingdom2026-06-18Benton, John B Jr UNQUALIFIED66Anna Fali
1030Jones P PaprockiIndia2026-06-23Morlong Associates UNQUALIFIED63Xuxue Feng
1031Munro Y DoeUnited Kingdom2026-06-29Commercial Press NEW67Elwin Sharvill
1032Mayumi I RimSpain2026-06-05King, Christopher A Esq QUALIFIED36Bernardo Dominic
1033Misaki S DoeArgentina2026-06-30Chapman, Ross E Esq PROPOSAL17Bernardo Dominic
1034Leon R AmigonSpain2026-06-26Dorl, James J Esq UNQUALIFIED12Ioni Bowcher
1035Greenwood H FollerSpain2026-06-10Buckley Miller Wright UNQUALIFIED28Anna Fali
1036Arvin M RulapaughSpain2026-06-26Benton, John B Jr UNQUALIFIED23Bernardo Dominic
1037Antonio P RulapaughFrance2026-06-12Chapman, Ross E Esq UNQUALIFIED98Ivan Magalhaes
1038Johnson C BriddickGermany2026-06-07Feiner Bros NEGOTIATION91Amy Elsner
1039Emily Y BowleySpain2026-06-28Morlong Associates RENEWAL35Bernardo Dominic
1040Adams I GarufiJapan2026-06-12Benton, John B Jr UNQUALIFIED16Ivan Magalhaes
1041Aika S MorascaBrazil2026-06-28King, Christopher A Esq RENEWAL52Anna Fali
1042Jeanfrancois O BologniaUnited Kingdom2026-06-12Morlong Associates RENEWAL3Ioni Bowcher
1043Maria F ShinkoCanada2026-06-08Printing Dimensions NEW72Elwin Sharvill
1044Clifford W DoeCanada2026-06-05Chapman, Ross E Esq RENEWAL19Amy Elsner
1045Claire V ShinkoRussia2026-06-29Rousseaux, Michael Esq RENEWAL16Anna Fali
1046Isabel J TollnerJapan2026-06-26Buckley Miller Wright PROPOSAL74Stephen Shaw
1047Jennifer E WaycottIndia2026-06-13Rangoni Of Florence NEW7Stephen Shaw
1048Morrow X KolmetzFrance2026-06-08Printing Dimensions PROPOSAL97Asiya Javayant
1049Wickens Q StensethCanada2026-06-18Dorl, James J Esq RENEWAL35Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aika T BologniaItalyOnyama Limba NEW
Maisha T ChuiSpainAsiya Javayant RENEWAL
Greenwood K DoeSpainXuxue Feng NEW
Faith Z MacleadGermanyElwin Sharvill QUALIFIED
Mayumi D PerinBrazilIoni Bowcher NEGOTIATION
Salvatore U SergiRussiaAmy Elsner QUALIFIED
Jefferson R CaudyAustraliaAnna Fali NEW
Jeanfrancois D FlosiCanadaXuxue Feng RENEWAL
Octavia Z ButtAustraliaAnna Fali QUALIFIED
Octavia N GillianCanadaIvan Magalhaes NEW
Emily Y PerinBrazilIvan Magalhaes RENEWAL
Izzy G SaylorsRussiaBernardo Dominic RENEWAL
Deepesh S FerenczBrazilAmy Elsner NEW
Antonio Z BowleyRussiaElwin Sharvill PROPOSAL
Izzy C RutaFranceXuxue Feng QUALIFIED
Johnson Q RutaGermanyIoni Bowcher NEGOTIATION
Octavia F SlusarskiBrazilIvan Magalhaes NEW
Ashley W ShinkoSpainIoni Bowcher UNQUALIFIED
Johnson Q WaycottAustraliaIoni Bowcher RENEWAL
Stacey A InouyeItalyOnyama Limba NEGOTIATION
Cody J SaylorsUnited KingdomAmy Elsner PROPOSAL
Jones C RoysterIndiaAsiya Javayant PROPOSAL
Jennifer Z CampainItalyElwin Sharvill UNQUALIFIED
Jefferson C GauchoIndiaElwin Sharvill UNQUALIFIED
Misaki N BriddickItalyIvan Magalhaes PROPOSAL
Johnson Q FollerCanadaIvan Magalhaes UNQUALIFIED
Octavia M DilliardJapanElwin Sharvill NEGOTIATION
Clifford X DoeGermanyOnyama Limba QUALIFIED
Francesco I CaudyFranceAmy Elsner NEW
Maisha H OstroskyJapanElwin Sharvill PROPOSAL
Aditya L ButtAustraliaAsiya Javayant QUALIFIED
Cody E NestleGermanyXuxue Feng UNQUALIFIED
Kadeem F SchemmerFranceXuxue Feng NEW
Kadeem C MarrierGermanyOnyama Limba UNQUALIFIED
Jeanfrancois J StensethFranceBernardo Dominic NEW
David L CaudyIndiaXuxue Feng NEGOTIATION
Emily G PoquetteItalyOnyama Limba PROPOSAL
Jennifer D SaylorsAustraliaBernardo Dominic UNQUALIFIED
Salvatore U PerinAustraliaIoni Bowcher RENEWAL
Faith E SchemmerSpainIvan Magalhaes UNQUALIFIED
Kaitlin U SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi H RulapaughSpainIoni Bowcher QUALIFIED
Tony Q OstroskyFranceElwin Sharvill NEW
David C FollerAustraliaIvan Magalhaes QUALIFIED
Tony J WhobreyFranceOnyama Limba QUALIFIED
Nicolas J DoeArgentinaAmy Elsner QUALIFIED
Claire S SaylorsCanadaXuxue Feng RENEWAL
Aditya O PaprockiCanadaXuxue Feng NEGOTIATION
Leon D VocelkaAustraliaAnna Fali QUALIFIED
Tony L SlusarskiArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Misaki T Caudy
Arvin B Paprocki
Salvatore H Stockham
Clifford A Bolognia
Sinclair X Kusko
Murillo S Oldroyd
Morrow Z Stockham
Ricardo T Doe
Smith U Darakjy
Ivar K Campain
Tony H Flosi
Aditya W Malet
Munro E Paprocki
Claire O Paprocki
Claire J Kusko
Octavia A Darakjy
Tony L Caudy
James K Albares
Clifford R Marrier
Mayumi U Flosi
Faith L Sergi
Wickens J Gaucho
Cody V Ostrosky
Maisha W Perin
Arvin K Wieser
Octavia Q Briddick
Jennifer W Inouye
Nicolas O Kolmetz
Nicolas I Ostrosky
Leon X Ruta
Nicolas F Figeroa
Claire A Stenseth
David X Darakjy
Francesco E Kusko
Stacey O Malet
Claire P Caudy
Tony L Schemmer
Stacey J Wieser
Sinclair M Tollner
Aruna U Flosi
Leon B Campain
Emily L Campain
Nicolas J Rim
Ricardo U Rim
Ricardo Z Gaucho
Aika L Ruta
Alejandro T Malet
Jeanfrancois G Malet
Costa X Poquette
Cody G Caldarera
IdCountryDate
1000United Kingdom2026-06-23
1001Russia2026-06-30
1002Canada2026-06-28
1003Australia2026-06-17
1004Spain2026-06-30
1005Italy2026-06-28
1006United Kingdom2026-06-30
1007United Kingdom2026-06-28
1008Japan2026-06-08
1009Brazil2026-06-18
1010India2026-06-21
1011Japan2026-06-07
1012Italy2026-06-26
1013Argentina2026-06-08
1014Brazil2026-06-29
1015Russia2026-07-03
1016Argentina2026-06-07
1017Germany2026-07-03
1018France2026-06-13
1019Russia2026-06-13
1020United Kingdom2026-06-07
1021Australia2026-06-10
1022Italy2026-06-26
1023Russia2026-06-25
1024Australia2026-07-03
1025Germany2026-06-10
1026Russia2026-06-30
1027Spain2026-06-07
1028India2026-06-04
1029Italy2026-06-19
1030France2026-06-26
1031India2026-06-23
1032France2026-06-10
1033Canada2026-07-02
1034Italy2026-06-13
1035Italy2026-07-02
1036Australia2026-06-19
1037India2026-06-15
1038Australia2026-06-25
1039United Kingdom2026-06-21
1040India2026-06-14
1041Brazil2026-06-08
1042Japan2026-07-01
1043Russia2026-06-06
1044India2026-06-12
1045Canada2026-06-13
1046United Kingdom2026-06-13
1047Russia2026-07-01
1048Canada2026-06-10
1049Canada2026-06-05

On-Demand Data

NameIdCountryDate
Jeanfrancois I Royster1000United Kingdom2026-06-23
Greenwood C Kolmetz1001Australia2026-06-04
Darci D Shinko1002Japan2026-06-30
Munro C Butt1003Brazil2026-06-07
Faith W Darakjy1004India2026-06-20
Murillo K Foller1005United Kingdom2026-06-21
Nicolas D Bowley1006Italy2026-06-17
Wickens U Stockham1007Japan2026-06-06
Aditya N Gaucho1008Spain2026-06-23
Sinclair C Schemmer1009Brazil2026-06-07
Ashley U Amigon1010United Kingdom2026-06-15
Emily U Inouye1011Japan2026-06-24
Leon N Royster1012Japan2026-07-03
David W Butt1013Italy2026-07-02
Munro L Perin1014Canada2026-06-22
Sinclair R Stenseth1015Germany2026-06-09
Emily P Dilliard1016Australia2026-06-19
Alejandro B Maclead1017Spain2026-07-01
Arvin M Figeroa1018Argentina2026-06-25
Jefferson C Marrier1019United Kingdom2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo I TollnerUnited KingdomXuxue Feng NEGOTIATION
Jennifer E SlusarskiIndiaIvan Magalhaes NEW
Deepesh U OldroydCanadaAmy Elsner RENEWAL
Smith Z CaudySpainBernardo Dominic NEW
Salvatore V PaprockiSpainStephen Shaw UNQUALIFIED
Julie M FlosiCanadaBernardo Dominic NEGOTIATION
Cody T CaldareraIndiaElwin Sharvill RENEWAL
Jefferson X FollerRussiaOnyama Limba NEGOTIATION
Chavez N RimFranceStephen Shaw NEGOTIATION
Jeanfrancois D IturbideAustraliaXuxue Feng PROPOSAL
Ricardo Z ChuiArgentinaOnyama Limba QUALIFIED
Morrow L AmigonSpainAnna Fali UNQUALIFIED
Maisha V RoysterGermanyAmy Elsner NEW
Smith V SchemmerJapanElwin Sharvill NEW
Kaitlin K PoquetteGermanyIoni Bowcher NEW
Jennifer M RulapaughItalyStephen Shaw UNQUALIFIED
Costa C RutaAustraliaOnyama Limba RENEWAL
Nicolas K InouyeArgentinaOnyama Limba RENEWAL
Francesco I RoysterJapanXuxue Feng QUALIFIED
Claire P GlickIndiaIvan Magalhaes NEGOTIATION
Isabel Y StensethIndiaXuxue Feng UNQUALIFIED
Munro E RulapaughRussiaElwin Sharvill PROPOSAL
Ivar P InouyeRussiaElwin Sharvill NEW
Salvatore D MarrierItalyIoni Bowcher NEGOTIATION
Mujtaba A BriddickBrazilElwin Sharvill UNQUALIFIED
Faith Y WieserJapanIoni Bowcher RENEWAL
Kaitlin M FerenczAustraliaXuxue Feng QUALIFIED
Leja J PoquetteAustraliaAsiya Javayant UNQUALIFIED
James J StensethFranceIoni Bowcher UNQUALIFIED
Ricardo J PerinAustraliaIoni Bowcher PROPOSAL
Misaki K DilliardUnited KingdomIoni Bowcher QUALIFIED
Kaitlin I RulapaughAustraliaBernardo Dominic UNQUALIFIED
Leja P PaprockiUnited KingdomBernardo Dominic NEW
Costa P WieserUnited KingdomOnyama Limba NEW
Murillo V GillianBrazilOnyama Limba UNQUALIFIED
Leja Y GarufiBrazilIvan Magalhaes UNQUALIFIED
Kadeem I DilliardAustraliaStephen Shaw RENEWAL
Ivar H PerinArgentinaIoni Bowcher NEGOTIATION
Isabel W PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Adams A CaudyArgentinaXuxue Feng RENEWAL

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