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
Alejandro H TollnerFranceOnyama Limba NEW
Octavia C StensethUnited KingdomIvan Magalhaes PROPOSAL
Murillo N InouyeItalyBernardo Dominic QUALIFIED
Kaitlin T SaylorsAustraliaIoni Bowcher PROPOSAL
Maria U GillianIndiaIvan Magalhaes NEW
Julie T WhobreyArgentinaBernardo Dominic NEW
Johnson X SaylorsFranceElwin Sharvill NEGOTIATION
Ashley D ButtAustraliaOnyama Limba PROPOSAL
Kadeem C StockhamArgentinaAsiya Javayant NEW
Julie P ChuiGermanyAnna Fali PROPOSAL
Jennifer F SlusarskiJapanIvan Magalhaes UNQUALIFIED
James P MaletCanadaAmy Elsner PROPOSAL
Morrow I MarrierRussiaAmy Elsner PROPOSAL
Munro G GlickUnited KingdomAmy Elsner RENEWAL
Jefferson A SlusarskiItalyBernardo Dominic RENEWAL
Antonio H OstroskyRussiaBernardo Dominic QUALIFIED
Misaki G AlbaresCanadaIvan Magalhaes RENEWAL
Antonio K IturbideAustraliaXuxue Feng UNQUALIFIED
Munro T FlosiCanadaOnyama Limba QUALIFIED
Isabel I RimGermanyIoni Bowcher RENEWAL
Clifford T VocelkaSpainXuxue Feng NEGOTIATION
Munro T CampainItalyStephen Shaw UNQUALIFIED
Arvin J TollnerRussiaIvan Magalhaes RENEWAL
Isabel U PoquetteAustraliaBernardo Dominic QUALIFIED
Mayumi H SlusarskiBrazilOnyama Limba RENEWAL
Arvin L RutaJapanAsiya Javayant NEGOTIATION
Kadeem Y GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Faith H FigeroaItalyOnyama Limba NEGOTIATION
Octavia U PoquetteUnited KingdomBernardo Dominic PROPOSAL
Mayumi E StensethSpainIvan Magalhaes RENEWAL
Claire B PoquetteSpainAmy Elsner QUALIFIED
Ashley C DoeUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood W PoquetteJapanIoni Bowcher RENEWAL
Munro Y ButtArgentinaIvan Magalhaes QUALIFIED
Johnson X SchemmerFranceIoni Bowcher RENEWAL
Kaitlin Y VocelkaSpainIvan Magalhaes UNQUALIFIED
Smith M FollerBrazilAsiya Javayant NEW
Munro A KuskoArgentinaIoni Bowcher UNQUALIFIED
Salvatore O GillianCanadaAnna Fali RENEWAL
Kaitlin E GarufiArgentinaOnyama Limba UNQUALIFIED
Johnson Z NickaRussiaAsiya Javayant NEW
Chavez G CaudyItalyAmy Elsner UNQUALIFIED
Greenwood H RulapaughUnited KingdomAnna Fali NEGOTIATION
Clifford S ButtUnited KingdomBernardo Dominic QUALIFIED
Maria H MacleadCanadaStephen Shaw NEGOTIATION
David A GauchoSpainAmy Elsner NEGOTIATION
Rodrigues X VenereFranceOnyama Limba UNQUALIFIED
Morrow C GillianIndiaStephen Shaw NEGOTIATION
Alejandro H FollerCanadaStephen Shaw RENEWAL
Ricardo C VocelkaCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar N GillianUnited KingdomAmy Elsner QUALIFIED
James B WhobreySpainStephen Shaw NEGOTIATION
Johnson R VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Chavez K WhobreySpainIoni Bowcher UNQUALIFIED
Emily D StensethSpainAsiya Javayant RENEWAL
Greenwood P PoquetteItalyAnna Fali UNQUALIFIED
Aika C SchemmerIndiaBernardo Dominic NEGOTIATION
James U RoysterFranceAmy Elsner QUALIFIED
Ivar X CampainAustraliaElwin Sharvill RENEWAL
Johnson V FlosiCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar H PerinAustralia2026-06-14Chapman, Ross E Esq RENEWAL82Bernardo Dominic
1001Cody J DilliardArgentina2026-06-14Truhlar And Truhlar Attys RENEWAL51Onyama Limba
1002Izzy W OldroydRussia2026-06-26Printing Dimensions PROPOSAL39Xuxue Feng
1003Jennifer E RoysterGermany2026-06-06Benton, John B Jr PROPOSAL51Bernardo Dominic
1004Nicolas P RulapaughUnited Kingdom2026-07-05Chanay, Jeffrey A Esq RENEWAL95Elwin Sharvill
1005Claire D WaycottFrance2026-07-01Chapman, Ross E Esq UNQUALIFIED35Bernardo Dominic
1006Mujtaba H FlosiJapan2026-06-07Feiner Bros UNQUALIFIED20Ioni Bowcher
1007Aruna O GarufiCanada2026-06-19Morlong Associates PROPOSAL35Elwin Sharvill
1008Rodrigues R StensethAustralia2026-06-26Chanay, Jeffrey A Esq NEGOTIATION45Asiya Javayant
1009Morrow S GillianRussia2026-06-28Chemel, James L Cpa QUALIFIED25Asiya Javayant
1010Silvio J WhobreyAustralia2026-06-19Printing Dimensions UNQUALIFIED3Anna Fali
1011Jones B ShinkoIndia2026-06-15Chapman, Ross E Esq QUALIFIED56Elwin Sharvill
1012Izzy K SaylorsJapan2026-06-17Rousseaux, Michael Esq RENEWAL38Amy Elsner
1013Darci F MorascaFrance2026-06-24Commercial Press UNQUALIFIED46Ivan Magalhaes
1014Deepesh U MaletIndia2026-06-17Buckley Miller Wright QUALIFIED34Amy Elsner
1015Mujtaba C TollnerSpain2026-06-13Dorl, James J Esq UNQUALIFIED96Elwin Sharvill
1016Izzy I NestleSpain2026-06-13Commercial Press PROPOSAL93Anna Fali
1017Costa M WieserAustralia2026-07-04King, Christopher A Esq RENEWAL25Asiya Javayant
1018Aruna M ShinkoArgentina2026-06-20Chapman, Ross E Esq QUALIFIED62Anna Fali
1019Aruna S NickaCanada2026-06-30Feiner Bros NEW79Asiya Javayant
1020Francesco O DarakjyUnited Kingdom2026-06-14King, Christopher A Esq NEGOTIATION99Anna Fali
1021Murillo M KuskoRussia2026-06-19Truhlar And Truhlar Attys PROPOSAL93Xuxue Feng
1022Stacey E OldroydArgentina2026-06-13Chanay, Jeffrey A Esq RENEWAL33Anna Fali
1023Tony W OldroydArgentina2026-06-26Chapman, Ross E Esq RENEWAL44Ivan Magalhaes
1024Izzy M BologniaCanada2026-06-07Dorl, James J Esq UNQUALIFIED13Xuxue Feng
1025Misaki N CaldareraIndia2026-07-01Feltz Printing Service RENEWAL88Asiya Javayant
1026Misaki O MacleadCanada2026-06-11Chanay, Jeffrey A Esq QUALIFIED97Ivan Magalhaes
1027Stacey M FerenczJapan2026-06-23Buckley Miller Wright NEW97Amy Elsner
1028Faith C SergiSpain2026-06-22Printing Dimensions PROPOSAL10Amy Elsner
1029Jefferson I SaylorsCanada2026-06-16Buckley Miller Wright NEGOTIATION74Stephen Shaw
1030Emily J BologniaBrazil2026-06-24Printing Dimensions RENEWAL18Ivan Magalhaes
1031Cody U RulapaughRussia2026-06-30Printing Dimensions QUALIFIED25Elwin Sharvill
1032Faith N RulapaughFrance2026-07-03Chemel, James L Cpa UNQUALIFIED74Amy Elsner
1033Adams P KuskoGermany2026-06-09Commercial Press NEGOTIATION75Elwin Sharvill
1034Maisha B RoysterItaly2026-06-23Feiner Bros RENEWAL48Elwin Sharvill
1035Jennifer O RulapaughJapan2026-06-29Chapman, Ross E Esq NEW68Bernardo Dominic
1036Juan F ShinkoSpain2026-07-03Feltz Printing Service RENEWAL29Asiya Javayant
1037Tony V OldroydRussia2026-06-30King, Christopher A Esq PROPOSAL11Asiya Javayant
1038Aika Z PaprockiGermany2026-06-16Feiner Bros UNQUALIFIED43Amy Elsner
1039Smith F RimAustralia2026-06-19Feiner Bros UNQUALIFIED7Ioni Bowcher
1040Maisha G GarufiRussia2026-06-17Truhlar And Truhlar Attys RENEWAL41Bernardo Dominic
1041Clifford K VocelkaItaly2026-06-29Chapman, Ross E Esq QUALIFIED63Stephen Shaw
1042Mayumi D SergiBrazil2026-06-20Rousseaux, Michael Esq NEGOTIATION68Ivan Magalhaes
1043Kadeem S SaylorsAustralia2026-06-13Rousseaux, Michael Esq QUALIFIED74Stephen Shaw
1044Kadeem N SergiSpain2026-07-02Truhlar And Truhlar Attys UNQUALIFIED82Elwin Sharvill
1045Clifford F VocelkaUnited Kingdom2026-06-18Rangoni Of Florence NEW44Ivan Magalhaes
1046Chavez N AmigonSpain2026-06-28Chapman, Ross E Esq NEGOTIATION34Amy Elsner
1047David L ShinkoUnited Kingdom2026-07-05Dorl, James J Esq QUALIFIED80Stephen Shaw
1048Morrow S ShinkoGermany2026-06-28Chemel, James L Cpa RENEWAL61Elwin Sharvill
1049Francesco O GarufiRussia2026-06-11Chapman, Ross E Esq RENEWAL1Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maisha I NickaFranceIoni Bowcher UNQUALIFIED
Kaitlin P GauchoGermanyOnyama Limba NEGOTIATION
Silvio Q NestleGermanyAnna Fali RENEWAL
Munro N RulapaughGermanyStephen Shaw NEW
Ricardo J MarrierAustraliaBernardo Dominic RENEWAL
Costa F AmigonArgentinaElwin Sharvill PROPOSAL
Johnson J BologniaBrazilIoni Bowcher NEW
Aruna W KuskoItalyAsiya Javayant NEGOTIATION
Maisha Y FollerJapanAsiya Javayant UNQUALIFIED
Leon L VocelkaFranceStephen Shaw NEGOTIATION
Ashley H ShinkoIndiaAsiya Javayant UNQUALIFIED
Aika P ShinkoAustraliaXuxue Feng PROPOSAL
Aika I MaletUnited KingdomAsiya Javayant PROPOSAL
Stacey J WaycottArgentinaIvan Magalhaes QUALIFIED
Jones L DoeSpainElwin Sharvill NEGOTIATION
Murillo M KolmetzCanadaIoni Bowcher QUALIFIED
Tony W SaylorsAustraliaAmy Elsner NEGOTIATION
Murillo K FerenczCanadaXuxue Feng QUALIFIED
Leon S CampainJapanIvan Magalhaes UNQUALIFIED
Arvin J KolmetzSpainAnna Fali NEGOTIATION
Aditya G ChuiJapanAmy Elsner PROPOSAL
Clifford A FollerFranceIoni Bowcher QUALIFIED
Jefferson H MorascaItalyIoni Bowcher NEGOTIATION
Emily Q PerinCanadaAmy Elsner UNQUALIFIED
David J SlusarskiRussiaIoni Bowcher NEGOTIATION
Aruna X BologniaUnited KingdomAnna Fali UNQUALIFIED
Stacey R WhobreyArgentinaAsiya Javayant RENEWAL
Stacey I BologniaItalyAmy Elsner QUALIFIED
Clifford K DilliardArgentinaAsiya Javayant NEW
Greenwood Y VocelkaCanadaOnyama Limba RENEWAL
Leja K MarrierJapanXuxue Feng QUALIFIED
Munro E FigeroaSpainAsiya Javayant PROPOSAL
Ashley P MacleadSpainElwin Sharvill UNQUALIFIED
David L DoeSpainStephen Shaw NEW
Antonio S DarakjyJapanAmy Elsner QUALIFIED
Juan E SlusarskiSpainXuxue Feng UNQUALIFIED
Murillo Q SaylorsAustraliaElwin Sharvill PROPOSAL
Mujtaba P CaudyRussiaXuxue Feng UNQUALIFIED
Octavia X MaletRussiaAnna Fali RENEWAL
Costa D MorascaIndiaBernardo Dominic NEW
Jennifer R StensethGermanyBernardo Dominic PROPOSAL
David A VocelkaItalyStephen Shaw RENEWAL
Adams D KolmetzGermanyIoni Bowcher UNQUALIFIED
Francesco I MarrierSpainElwin Sharvill NEW
Morrow R NickaArgentinaIoni Bowcher UNQUALIFIED
Nicolas A MarrierCanadaAsiya Javayant NEGOTIATION
Julie X VocelkaAustraliaBernardo Dominic QUALIFIED
Mujtaba R GarufiGermanyAmy Elsner NEGOTIATION
Aruna J PaprockiBrazilAnna Fali NEGOTIATION
Kaitlin S PaprockiCanadaAsiya Javayant NEW
Frozen Columns
Name
Smith C Malet
Aruna J Tollner
Silvio W Kolmetz
Morrow H Nestle
Morrow J Gaucho
Chavez R Gaucho
James N Oldroyd
Juan A Wieser
Stacey W Malet
Jennifer I Oldroyd
Ivar V Royster
Wickens M Whobrey
Wickens N Shinko
Johnson B Marrier
Maria U Foller
Faith N Campain
Clifford Y Rim
Deepesh Y Saylors
Julie K Rim
Kaitlin I Nestle
Adams V Dilliard
James U Caldarera
Claire P Schemmer
Costa X Ferencz
Munro C Inouye
Ashley L Albares
Faith L Wieser
Rodrigues F Slusarski
Murillo L Rulapaugh
Chavez F Caldarera
Alejandro G Tollner
Jennifer J Caudy
Ricardo X Waycott
Misaki N Glick
Maisha D Wieser
Morrow P Perin
Claire T Venere
Chavez A Malet
David C Campain
Misaki D Royster
Munro J Whobrey
Aika P Saylors
Jennifer D Tollner
Salvatore U Stenseth
Deepesh K Vocelka
Munro C Sergi
Alejandro P Saylors
Francesco B Sergi
Jeanfrancois W Slusarski
Clifford U Foller
IdCountryDate
1000United Kingdom2026-06-14
1001France2026-06-26
1002India2026-06-28
1003France2026-06-24
1004France2026-06-17
1005Japan2026-06-09
1006Canada2026-06-21
1007Japan2026-06-19
1008India2026-06-16
1009Russia2026-07-03
1010Canada2026-06-25
1011Australia2026-06-07
1012Australia2026-06-11
1013United Kingdom2026-06-07
1014Spain2026-06-29
1015Australia2026-06-17
1016Russia2026-06-28
1017Japan2026-06-20
1018Australia2026-06-26
1019France2026-06-12
1020France2026-06-21
1021United Kingdom2026-06-27
1022Russia2026-06-22
1023Brazil2026-07-03
1024France2026-06-15
1025Brazil2026-07-01
1026Australia2026-06-27
1027Russia2026-06-13
1028Japan2026-06-29
1029Spain2026-06-19
1030Canada2026-06-20
1031Germany2026-06-20
1032Argentina2026-07-05
1033Japan2026-06-17
1034Brazil2026-06-11
1035Japan2026-06-08
1036Japan2026-07-02
1037Italy2026-06-13
1038Spain2026-06-29
1039Australia2026-06-18
1040Brazil2026-06-21
1041Argentina2026-06-16
1042United Kingdom2026-06-12
1043France2026-06-18
1044United Kingdom2026-06-19
1045India2026-06-17
1046France2026-06-21
1047Australia2026-07-04
1048Brazil2026-06-16
1049India2026-06-24

On-Demand Data

NameIdCountryDate
Francesco P Gillian1000Germany2026-06-25
Jennifer T Rulapaugh1001Italy2026-07-01
Greenwood V Figeroa1002Italy2026-06-30
Cody V Malet1003Spain2026-06-18
Mujtaba K Bolognia1004Germany2026-06-21
Ivar D Stockham1005Italy2026-06-09
Deepesh O Stockham1006Germany2026-06-12
Faith W Briddick1007Italy2026-06-25
Jones I Kolmetz1008Australia2026-06-30
Adams H Bolognia1009United Kingdom2026-06-25
Leja I Albares1010Japan2026-06-24
Ashley B Albares1011Italy2026-07-03
Kadeem U Schemmer1012Spain2026-06-26
Chavez H Kolmetz1013Canada2026-07-02
Smith Z Bowley1014Germany2026-06-28
Jones H Bolognia1015Canada2026-07-01
Smith Y Oldroyd1016Germany2026-06-21
Mujtaba W Malet1017Australia2026-06-14
Deepesh R Albares1018Canada2026-06-30
Leja A Campain1019Spain2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas X OldroydIndiaIvan Magalhaes NEW
Jeanfrancois G MacleadRussiaAmy Elsner QUALIFIED
Maria S TollnerItalyAmy Elsner RENEWAL
Wickens J MaletAustraliaOnyama Limba NEW
Isabel D FollerSpainOnyama Limba QUALIFIED
Aika W FigeroaUnited KingdomAnna Fali UNQUALIFIED
Murillo D StockhamRussiaAsiya Javayant RENEWAL
Nicolas L OldroydCanadaStephen Shaw NEW
Maria A MacleadJapanAsiya Javayant NEW
Francesco G FlosiFranceIvan Magalhaes NEGOTIATION
Aruna X GillianRussiaAsiya Javayant UNQUALIFIED
Alejandro I FlosiArgentinaAmy Elsner QUALIFIED
David Z VocelkaCanadaIvan Magalhaes UNQUALIFIED
Aruna K WaycottRussiaXuxue Feng QUALIFIED
Ashley Q RulapaughUnited KingdomAnna Fali PROPOSAL
Mayumi N KuskoItalyIoni Bowcher QUALIFIED
Silvio W WieserCanadaAsiya Javayant PROPOSAL
Isabel O ChuiAustraliaAsiya Javayant QUALIFIED
Darci M StensethRussiaElwin Sharvill UNQUALIFIED
Mayumi W StockhamJapanElwin Sharvill RENEWAL
Greenwood O VenereAustraliaAsiya Javayant RENEWAL
Costa M FigeroaBrazilIoni Bowcher NEGOTIATION
Misaki S BriddickUnited KingdomBernardo Dominic RENEWAL
Stacey L MaletSpainStephen Shaw QUALIFIED
Sinclair W CampainArgentinaAsiya Javayant NEW
Julie C SaylorsBrazilBernardo Dominic RENEWAL
Stacey W InouyeCanadaBernardo Dominic NEW
Murillo O FigeroaBrazilXuxue Feng NEGOTIATION
David Q KolmetzIndiaIvan Magalhaes NEGOTIATION
Leja H RulapaughSpainIoni Bowcher QUALIFIED
Cody O GillianRussiaElwin Sharvill NEGOTIATION
Ivar J AmigonArgentinaXuxue Feng NEGOTIATION
Mayumi U AlbaresCanadaBernardo Dominic NEW
Ricardo C BologniaBrazilOnyama Limba NEW
Greenwood B DarakjyGermanyStephen Shaw NEGOTIATION
Rodrigues B GlickFranceBernardo Dominic NEW
Leon H MarrierIndiaStephen Shaw QUALIFIED
Clifford J AlbaresFranceIoni Bowcher NEGOTIATION
Deepesh O VenereUnited KingdomAmy Elsner NEW
Chavez Y FollerItalyAsiya Javayant 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>