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
Octavia F MaletArgentinaAmy Elsner NEW
Costa G NickaFranceBernardo Dominic NEW
Mujtaba Y MaletAustraliaIvan Magalhaes UNQUALIFIED
Francesco J SergiUnited KingdomIoni Bowcher QUALIFIED
Rodrigues N ShinkoItalyElwin Sharvill UNQUALIFIED
Adams V RulapaughArgentinaIoni Bowcher PROPOSAL
Jennifer B DoeJapanElwin Sharvill PROPOSAL
Maria F NestleJapanBernardo Dominic RENEWAL
Claire Q AmigonBrazilBernardo Dominic NEW
Chavez G DarakjyCanadaAmy Elsner UNQUALIFIED
Murillo G SchemmerArgentinaIvan Magalhaes NEGOTIATION
Stacey K ButtCanadaAmy Elsner RENEWAL
Darci A OldroydArgentinaAsiya Javayant NEW
Misaki S MaletFranceAmy Elsner QUALIFIED
Faith N RoysterArgentinaAnna Fali QUALIFIED
Juan R CaldareraFranceAmy Elsner UNQUALIFIED
David E StockhamItalyIoni Bowcher QUALIFIED
Arvin Z OldroydCanadaAsiya Javayant UNQUALIFIED
Claire Z FerenczJapanOnyama Limba NEW
Morrow E WieserItalyXuxue Feng PROPOSAL
Darci C FollerBrazilAnna Fali QUALIFIED
Kadeem H MacleadCanadaAnna Fali PROPOSAL
Maria H RulapaughUnited KingdomXuxue Feng QUALIFIED
Mujtaba E AmigonFranceAsiya Javayant PROPOSAL
Leja V TollnerSpainOnyama Limba NEGOTIATION
Tony L PoquetteGermanyStephen Shaw UNQUALIFIED
Munro K AlbaresBrazilBernardo Dominic PROPOSAL
Aika K NickaBrazilOnyama Limba UNQUALIFIED
Munro D RoysterArgentinaElwin Sharvill NEGOTIATION
Greenwood D OstroskyItalyXuxue Feng PROPOSAL
Maisha Z DilliardAustraliaIvan Magalhaes UNQUALIFIED
Jones L GillianFranceOnyama Limba NEW
Murillo S DarakjyJapanIoni Bowcher UNQUALIFIED
Maria L FlosiBrazilOnyama Limba QUALIFIED
Tony I ShinkoRussiaAsiya Javayant QUALIFIED
Leon P DarakjyBrazilBernardo Dominic QUALIFIED
Ashley J GarufiRussiaXuxue Feng NEGOTIATION
Greenwood U AmigonCanadaXuxue Feng NEGOTIATION
Chavez L RutaUnited KingdomAmy Elsner QUALIFIED
Misaki N VenereBrazilOnyama Limba QUALIFIED
David Z RutaAustraliaAnna Fali QUALIFIED
Ricardo B KolmetzRussiaOnyama Limba PROPOSAL
Maria Z KuskoBrazilBernardo Dominic NEGOTIATION
Arvin Q NestleItalyElwin Sharvill PROPOSAL
Stacey J RoysterAustraliaIvan Magalhaes NEW
Morrow Y PoquetteArgentinaBernardo Dominic UNQUALIFIED
Ricardo Z KolmetzUnited KingdomIoni Bowcher NEW
Deepesh O MacleadJapanXuxue Feng QUALIFIED
Maisha K InouyeJapanOnyama Limba NEW
Claire Q MorascaFranceIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow K GlickBrazilAmy Elsner RENEWAL
Kaitlin Y OstroskyCanadaAmy Elsner RENEWAL
Salvatore A ChuiBrazilXuxue Feng UNQUALIFIED
Greenwood M GarufiGermanyAnna Fali PROPOSAL
James E MorascaAustraliaElwin Sharvill NEW
Adams K FigeroaIndiaOnyama Limba NEGOTIATION
Costa H IturbideGermanyAsiya Javayant NEGOTIATION
Kadeem E DilliardArgentinaElwin Sharvill QUALIFIED
Wickens F SlusarskiItalyOnyama Limba UNQUALIFIED
Darci E AmigonRussiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha Q VocelkaSpain2026-07-30Commercial Press PROPOSAL85Ioni Bowcher
1001Jefferson K MaletArgentina2026-07-30Chanay, Jeffrey A Esq PROPOSAL3Onyama Limba
1002Darci U FerenczAustralia2026-08-12Feltz Printing Service PROPOSAL81Onyama Limba
1003Maria L RulapaughFrance2026-08-06Feltz Printing Service PROPOSAL98Amy Elsner
1004Jefferson A GillianArgentina2026-07-24Morlong Associates NEW83Bernardo Dominic
1005Leja W BriddickBrazil2026-08-16Chapman, Ross E Esq RENEWAL9Amy Elsner
1006Costa T CaldareraRussia2026-07-23Chanay, Jeffrey A Esq QUALIFIED14Elwin Sharvill
1007Clifford O TollnerAustralia2026-08-16Printing Dimensions QUALIFIED53Ioni Bowcher
1008Leon Y OldroydSpain2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED89Ioni Bowcher
1009Salvatore Q GauchoIndia2026-08-12Buckley Miller Wright QUALIFIED71Onyama Limba
1010Mayumi N MarrierFrance2026-08-12Chemel, James L Cpa RENEWAL53Asiya Javayant
1011David V GauchoIndia2026-07-22Chanay, Jeffrey A Esq RENEWAL57Bernardo Dominic
1012Jones S MacleadRussia2026-08-03Chapman, Ross E Esq QUALIFIED31Amy Elsner
1013Ashley Z InouyeArgentina2026-08-07Feltz Printing Service PROPOSAL58Bernardo Dominic
1014Emily J InouyeUnited Kingdom2026-07-22Truhlar And Truhlar Attys NEW65Elwin Sharvill
1015Salvatore B MacleadUnited Kingdom2026-08-04Rousseaux, Michael Esq RENEWAL55Asiya Javayant
1016James I AmigonGermany2026-08-02Commercial Press NEGOTIATION59Bernardo Dominic
1017Francesco N WieserItaly2026-08-05Feiner Bros UNQUALIFIED65Ivan Magalhaes
1018Aditya F StockhamItaly2026-08-04Benton, John B Jr NEW45Onyama Limba
1019Wickens T GlickSpain2026-08-04Rousseaux, Michael Esq QUALIFIED20Onyama Limba
1020Ivar K VocelkaItaly2026-08-18Chemel, James L Cpa UNQUALIFIED35Ivan Magalhaes
1021Julie G TollnerSpain2026-08-13Rousseaux, Michael Esq PROPOSAL76Onyama Limba
1022Ricardo I PerinUnited Kingdom2026-08-03Printing Dimensions UNQUALIFIED28Ioni Bowcher
1023Chavez E RutaCanada2026-08-08Chemel, James L Cpa RENEWAL62Onyama Limba
1024Munro M PaprockiBrazil2026-07-27Commercial Press QUALIFIED31Amy Elsner
1025Ashley M DarakjyGermany2026-08-17Morlong Associates NEW20Ivan Magalhaes
1026Stacey M MacleadItaly2026-08-20Chemel, James L Cpa PROPOSAL24Xuxue Feng
1027Ashley L BowleyIndia2026-07-24Truhlar And Truhlar Attys RENEWAL77Onyama Limba
1028Chavez G CampainSpain2026-08-14Rangoni Of Florence RENEWAL92Asiya Javayant
1029Morrow W PerinUnited Kingdom2026-08-08Benton, John B Jr PROPOSAL49Bernardo Dominic
1030Salvatore J CaudySpain2026-08-18King, Christopher A Esq NEW30Asiya Javayant
1031Leon U WieserCanada2026-08-02Rousseaux, Michael Esq NEGOTIATION43Ioni Bowcher
1032Rodrigues P StensethJapan2026-07-24Chapman, Ross E Esq QUALIFIED59Bernardo Dominic
1033Kaitlin L SlusarskiBrazil2026-08-11Truhlar And Truhlar Attys QUALIFIED96Elwin Sharvill
1034Leja J NickaRussia2026-08-01Feltz Printing Service NEGOTIATION68Asiya Javayant
1035Costa Y IturbideBrazil2026-07-23Feltz Printing Service NEGOTIATION75Ivan Magalhaes
1036Mujtaba H WaycottCanada2026-08-04King, Christopher A Esq RENEWAL89Ioni Bowcher
1037Kaitlin H PoquetteGermany2026-07-22Feltz Printing Service RENEWAL23Ivan Magalhaes
1038Ivar I MaletCanada2026-08-02Morlong Associates RENEWAL63Anna Fali
1039Leon T FlosiItaly2026-08-05Truhlar And Truhlar Attys RENEWAL43Anna Fali
1040Jennifer Z CaudyFrance2026-07-28Feiner Bros RENEWAL24Ioni Bowcher
1041Faith Z OldroydAustralia2026-08-10Chanay, Jeffrey A Esq NEGOTIATION2Anna Fali
1042Ashley A AmigonUnited Kingdom2026-08-17Printing Dimensions PROPOSAL98Anna Fali
1043Silvio U WieserCanada2026-07-22Rousseaux, Michael Esq UNQUALIFIED29Xuxue Feng
1044Octavia B GillianUnited Kingdom2026-07-29Feiner Bros NEGOTIATION34Elwin Sharvill
1045Ashley U PerinBrazil2026-08-12Chanay, Jeffrey A Esq NEGOTIATION82Onyama Limba
1046Jennifer M BriddickSpain2026-07-22Chapman, Ross E Esq UNQUALIFIED67Ivan Magalhaes
1047Morrow X RulapaughGermany2026-08-05Morlong Associates NEGOTIATION58Asiya Javayant
1048Faith G FerenczArgentina2026-08-12Benton, John B Jr NEW8Amy Elsner
1049Kadeem O OldroydJapan2026-08-20Morlong Associates NEGOTIATION30Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Octavia G RimArgentinaIoni Bowcher UNQUALIFIED
Chavez M ShinkoCanadaElwin Sharvill QUALIFIED
Ricardo W FigeroaArgentinaIoni Bowcher QUALIFIED
Sinclair F ShinkoBrazilElwin Sharvill QUALIFIED
Munro C CampainIndiaAmy Elsner PROPOSAL
Ivar T MaletItalyIvan Magalhaes QUALIFIED
Deepesh K GlickBrazilIoni Bowcher RENEWAL
Jones Q TollnerArgentinaAsiya Javayant NEGOTIATION
Misaki X CaldareraCanadaXuxue Feng PROPOSAL
Maisha C GlickCanadaXuxue Feng PROPOSAL
Greenwood S NickaCanadaXuxue Feng UNQUALIFIED
Rodrigues B InouyeUnited KingdomOnyama Limba QUALIFIED
Leon Q MacleadSpainAnna Fali NEW
Misaki J FerenczSpainAnna Fali NEW
Misaki I WaycottCanadaOnyama Limba PROPOSAL
Costa G DilliardSpainAnna Fali RENEWAL
Wickens J AlbaresItalyAmy Elsner UNQUALIFIED
Darci R FerenczItalyStephen Shaw UNQUALIFIED
Kaitlin O GauchoAustraliaAsiya Javayant UNQUALIFIED
Tony L FollerJapanAnna Fali UNQUALIFIED
Julie D FerenczBrazilAmy Elsner NEGOTIATION
Cody Y ChuiJapanBernardo Dominic NEGOTIATION
Tony V OldroydItalyBernardo Dominic NEW
Julie H WieserItalyXuxue Feng NEGOTIATION
Aruna Z GarufiItalyIvan Magalhaes PROPOSAL
Ashley C FerenczGermanyBernardo Dominic UNQUALIFIED
Murillo F AmigonAustraliaXuxue Feng UNQUALIFIED
Wickens I MorascaSpainIvan Magalhaes NEGOTIATION
Juan K GillianBrazilAmy Elsner NEGOTIATION
Mayumi Y DilliardFranceElwin Sharvill NEGOTIATION
Maisha O GauchoUnited KingdomAnna Fali QUALIFIED
Ivar U GlickUnited KingdomAmy Elsner UNQUALIFIED
Leon M FlosiRussiaOnyama Limba UNQUALIFIED
David N SlusarskiCanadaElwin Sharvill NEW
Misaki L PaprockiIndiaStephen Shaw NEGOTIATION
Jefferson Z StockhamGermanyIoni Bowcher PROPOSAL
Ivar S ButtGermanyIvan Magalhaes PROPOSAL
Ricardo P CaudyBrazilElwin Sharvill NEGOTIATION
Isabel B PerinAustraliaBernardo Dominic NEGOTIATION
Octavia W ShinkoItalyBernardo Dominic NEGOTIATION
Ricardo X CaudyFranceStephen Shaw NEGOTIATION
Darci K SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore F GauchoRussiaAsiya Javayant NEW
Misaki H VenereRussiaBernardo Dominic QUALIFIED
Juan V NickaFranceAmy Elsner QUALIFIED
Sinclair D KolmetzArgentinaXuxue Feng RENEWAL
Julie Z WaycottBrazilAnna Fali UNQUALIFIED
Darci G ButtArgentinaOnyama Limba UNQUALIFIED
Stacey U FerenczCanadaOnyama Limba NEW
James K BologniaSpainIvan Magalhaes NEW
Frozen Columns
Name
Clifford K Dilliard
Antonio V Maclead
Jefferson N Bolognia
Leja B Flosi
Cody O Caudy
James W Caudy
Emily E Rulapaugh
Ashley I Bolognia
Julie W Glick
Munro I Briddick
Isabel E Bolognia
Nicolas K Perin
Adams Z Flosi
Jennifer C Whobrey
Isabel S Morasca
Morrow S Butt
Chavez Y Maclead
Octavia C Ostrosky
Deepesh W Whobrey
Sinclair S Malet
Leon F Kusko
Deepesh L Nestle
Jefferson L Royster
Izzy Q Malet
Octavia O Stenseth
Johnson O Perin
Jeanfrancois E Dilliard
Faith Z Schemmer
Clifford K Kusko
Claire Y Doe
Mayumi Y Caldarera
Sinclair B Marrier
Claire K Bowley
Adams V Nicka
James O Garufi
Juan L Marrier
Alejandro Z Paprocki
Aika Q Wieser
Maria O Ferencz
Arvin L Rulapaugh
Ricardo S Ruta
Kadeem I Ostrosky
Jeanfrancois D Oldroyd
Jennifer T Schemmer
Munro Q Caldarera
Izzy A Malet
Johnson C Stenseth
Faith G Shinko
Greenwood W Flosi
Emily W Chui
IdCountryDate
1000Germany2026-08-20
1001Canada2026-07-28
1002Spain2026-08-17
1003Canada2026-08-09
1004India2026-07-23
1005Germany2026-07-30
1006Russia2026-08-16
1007Russia2026-08-07
1008Russia2026-07-26
1009Germany2026-08-14
1010Brazil2026-08-12
1011United Kingdom2026-07-30
1012United Kingdom2026-07-30
1013Canada2026-08-04
1014Australia2026-08-19
1015Canada2026-07-22
1016United Kingdom2026-08-05
1017Australia2026-08-04
1018Argentina2026-08-10
1019Spain2026-08-10
1020Argentina2026-08-11
1021Brazil2026-08-14
1022India2026-07-27
1023Canada2026-08-02
1024Italy2026-08-17
1025Brazil2026-08-16
1026Argentina2026-08-09
1027France2026-08-03
1028Russia2026-08-02
1029Spain2026-08-01
1030Japan2026-08-07
1031Canada2026-08-08
1032Japan2026-07-24
1033France2026-07-27
1034Australia2026-07-25
1035United Kingdom2026-08-07
1036United Kingdom2026-07-29
1037France2026-07-26
1038India2026-08-01
1039Japan2026-07-23
1040Japan2026-07-30
1041India2026-08-19
1042Japan2026-08-10
1043United Kingdom2026-08-09
1044India2026-07-24
1045Brazil2026-08-07
1046Japan2026-08-12
1047Russia2026-07-25
1048Brazil2026-07-29
1049India2026-08-06

On-Demand Data

NameIdCountryDate
Francesco H Darakjy1000France2026-08-01
Morrow X Waycott1001Italy2026-08-20
Ricardo P Stockham1002Italy2026-08-05
Darci M Nestle1003United Kingdom2026-08-09
Deepesh V Rim1004Italy2026-08-06
Nicolas E Tollner1005Argentina2026-07-26
Munro E Sergi1006Germany2026-08-15
Izzy J Slusarski1007United Kingdom2026-08-20
Murillo G Bolognia1008United Kingdom2026-07-30
Emily S Morasca1009Germany2026-07-22
Darci U Whobrey1010Japan2026-08-10
Aika V Nestle1011Japan2026-07-30
Izzy K Royster1012United Kingdom2026-07-31
Aruna L Malet1013Russia2026-08-14
Misaki S Ostrosky1014France2026-07-26
Aditya A Tollner1015Spain2026-07-23
Silvio R Whobrey1016Canada2026-08-08
Jones M Stenseth1017Canada2026-08-14
Aditya E Stockham1018Brazil2026-08-07
Arvin A Garufi1019Italy2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson Q KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba A CampainCanadaAnna Fali NEW
Murillo V SergiFranceOnyama Limba NEW
Adams Y GarufiArgentinaAsiya Javayant NEW
Kadeem N BriddickIndiaAsiya Javayant NEW
Salvatore R OstroskyGermanyXuxue Feng PROPOSAL
Stacey V GarufiFranceIoni Bowcher QUALIFIED
Ashley Q DilliardFranceElwin Sharvill UNQUALIFIED
Rodrigues Z CampainIndiaAnna Fali PROPOSAL
Antonio M StockhamGermanyElwin Sharvill PROPOSAL
Ashley U SaylorsIndiaIoni Bowcher RENEWAL
James J MaletArgentinaIoni Bowcher NEW
Munro T RoysterIndiaIoni Bowcher NEGOTIATION
Mujtaba D DoeAustraliaElwin Sharvill RENEWAL
Octavia M AlbaresGermanyAsiya Javayant NEGOTIATION
Cody U StensethSpainIoni Bowcher RENEWAL
Greenwood K StensethItalyIoni Bowcher NEGOTIATION
Greenwood C DoeIndiaIvan Magalhaes PROPOSAL
Jeanfrancois D StockhamRussiaElwin Sharvill UNQUALIFIED
Smith N SaylorsBrazilOnyama Limba RENEWAL
Mayumi B StockhamRussiaBernardo Dominic NEW
Clifford C WaycottBrazilOnyama Limba UNQUALIFIED
Ashley O NickaAustraliaStephen Shaw NEGOTIATION
Jefferson M StensethRussiaAnna Fali QUALIFIED
James C FerenczSpainAsiya Javayant NEW
Antonio V InouyeBrazilElwin Sharvill RENEWAL
Aika D SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Kadeem W WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh A FlosiIndiaAsiya Javayant UNQUALIFIED
James Q NestleAustraliaIvan Magalhaes QUALIFIED
Ivar I BologniaItalyAnna Fali NEGOTIATION
Stacey Z SaylorsCanadaStephen Shaw RENEWAL
Juan J TollnerUnited KingdomStephen Shaw NEGOTIATION
Arvin L PaprockiJapanElwin Sharvill RENEWAL
Francesco G NickaBrazilElwin Sharvill PROPOSAL
Arvin C PerinBrazilBernardo Dominic RENEWAL
Deepesh A WhobreyRussiaStephen Shaw QUALIFIED
Jones B WieserGermanyOnyama Limba UNQUALIFIED
James Q TollnerUnited KingdomAsiya Javayant NEW
Julie W GlickIndiaIvan Magalhaes 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>