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
Emily B StensethGermanyOnyama Limba PROPOSAL
Ricardo H PerinArgentinaXuxue Feng PROPOSAL
Darci N CaudyAustraliaOnyama Limba NEW
Octavia P VocelkaBrazilBernardo Dominic UNQUALIFIED
Greenwood J ChuiArgentinaIvan Magalhaes QUALIFIED
Misaki P FollerGermanyElwin Sharvill NEW
Mujtaba B GarufiCanadaStephen Shaw RENEWAL
Kaitlin Y FerenczJapanStephen Shaw UNQUALIFIED
Kadeem C PerinRussiaAsiya Javayant NEW
Greenwood L BowleyAustraliaElwin Sharvill NEGOTIATION
Darci M GarufiRussiaElwin Sharvill QUALIFIED
Leon N CaudyItalyStephen Shaw NEGOTIATION
Jeanfrancois C OstroskyCanadaBernardo Dominic PROPOSAL
Alejandro B StensethRussiaAnna Fali RENEWAL
Kaitlin K RutaCanadaElwin Sharvill PROPOSAL
Clifford K FlosiBrazilElwin Sharvill RENEWAL
Mayumi T SlusarskiRussiaIvan Magalhaes QUALIFIED
Adams X WhobreyArgentinaAsiya Javayant UNQUALIFIED
James D MarrierItalyAsiya Javayant NEGOTIATION
Jeanfrancois L SchemmerSpainIoni Bowcher NEW
Ricardo G RoysterGermanyXuxue Feng NEW
Aditya A NestleArgentinaAnna Fali QUALIFIED
Johnson I MarrierUnited KingdomOnyama Limba RENEWAL
Stacey S IturbideJapanAmy Elsner QUALIFIED
Ricardo E RimCanadaElwin Sharvill UNQUALIFIED
Leon B GauchoFranceIoni Bowcher UNQUALIFIED
Isabel M GillianSpainIoni Bowcher PROPOSAL
Deepesh D GlickFranceStephen Shaw UNQUALIFIED
Ricardo A GauchoIndiaIvan Magalhaes QUALIFIED
Leja H ButtAustraliaAnna Fali UNQUALIFIED
Jeanfrancois R MacleadFranceOnyama Limba QUALIFIED
Maria N RulapaughRussiaAsiya Javayant UNQUALIFIED
Greenwood B CaudyRussiaAnna Fali PROPOSAL
Tony L NickaArgentinaBernardo Dominic PROPOSAL
Ashley W KuskoGermanyBernardo Dominic NEW
Wickens G StockhamGermanyIvan Magalhaes RENEWAL
Morrow U PaprockiSpainBernardo Dominic NEGOTIATION
Alejandro R ButtGermanyIvan Magalhaes QUALIFIED
Wickens D ButtItalyOnyama Limba PROPOSAL
David G ChuiAustraliaStephen Shaw PROPOSAL
Maisha E SlusarskiGermanyOnyama Limba QUALIFIED
Salvatore C KuskoSpainBernardo Dominic RENEWAL
Mayumi N ButtSpainAsiya Javayant QUALIFIED
Mujtaba R DarakjyIndiaIoni Bowcher UNQUALIFIED
Tony K SlusarskiArgentinaAsiya Javayant NEW
Sinclair M BologniaFranceIoni Bowcher UNQUALIFIED
Misaki L GauchoAustraliaIoni Bowcher RENEWAL
Murillo P MarrierBrazilElwin Sharvill NEGOTIATION
Rodrigues C SchemmerAustraliaBernardo Dominic QUALIFIED
Maisha C WaycottFranceAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Silvio D NickaUnited KingdomOnyama Limba PROPOSAL
Stacey S KuskoGermanyIvan Magalhaes RENEWAL
Julie F CaldareraCanadaAmy Elsner NEW
Jefferson F MacleadJapanXuxue Feng NEW
Rodrigues W DarakjyJapanOnyama Limba PROPOSAL
Jennifer N BologniaBrazilAmy Elsner PROPOSAL
Costa D VocelkaFranceOnyama Limba QUALIFIED
Maria I OstroskyBrazilStephen Shaw RENEWAL
Alejandro V KuskoUnited KingdomBernardo Dominic NEGOTIATION
Emily O SchemmerRussiaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson L PoquetteAustralia2026-06-28Rousseaux, Michael Esq NEW96Xuxue Feng
1001Costa B PerinJapan2026-07-12Commercial Press NEW6Xuxue Feng
1002Clifford L OstroskyUnited Kingdom2026-07-04Rousseaux, Michael Esq NEGOTIATION88Amy Elsner
1003Maisha Z RimItaly2026-07-12Buckley Miller Wright RENEWAL87Anna Fali
1004Ricardo M GlickItaly2026-07-10Rousseaux, Michael Esq NEGOTIATION66Ivan Magalhaes
1005Octavia G WieserSpain2026-07-08Rangoni Of Florence UNQUALIFIED66Ioni Bowcher
1006Chavez S StensethJapan2026-07-09Buckley Miller Wright NEW65Asiya Javayant
1007David I WieserJapan2026-07-06Rangoni Of Florence NEGOTIATION50Ivan Magalhaes
1008Julie B CaldareraUnited Kingdom2026-06-16Morlong Associates QUALIFIED74Amy Elsner
1009Silvio A BowleyIndia2026-07-06Feltz Printing Service UNQUALIFIED85Anna Fali
1010Misaki O SchemmerJapan2026-07-04Feiner Bros NEW97Onyama Limba
1011Leja J MarrierSpain2026-07-01Printing Dimensions NEGOTIATION99Onyama Limba
1012Aditya Y BriddickBrazil2026-07-14Rousseaux, Michael Esq NEW20Ivan Magalhaes
1013Sinclair O ShinkoAustralia2026-06-29Feltz Printing Service PROPOSAL17Xuxue Feng
1014Jeanfrancois B TollnerSpain2026-07-12Printing Dimensions NEGOTIATION36Stephen Shaw
1015Aika J InouyeIndia2026-07-12King, Christopher A Esq NEW78Anna Fali
1016Jeanfrancois W BowleyAustralia2026-07-09Rousseaux, Michael Esq QUALIFIED71Ioni Bowcher
1017Ashley M WaycottItaly2026-06-21Printing Dimensions UNQUALIFIED27Ivan Magalhaes
1018Jones H RimUnited Kingdom2026-07-01Rousseaux, Michael Esq RENEWAL15Elwin Sharvill
1019Jefferson G GillianGermany2026-06-23King, Christopher A Esq UNQUALIFIED76Stephen Shaw
1020Munro W WhobreySpain2026-07-12Benton, John B Jr RENEWAL86Bernardo Dominic
1021Kadeem C WhobreyJapan2026-07-03Commercial Press QUALIFIED64Stephen Shaw
1022Arvin C DoeJapan2026-06-24Benton, John B Jr NEW15Amy Elsner
1023Kadeem D MarrierIndia2026-06-20Printing Dimensions RENEWAL61Elwin Sharvill
1024Adams X PerinRussia2026-06-28Rangoni Of Florence NEGOTIATION87Ivan Magalhaes
1025Deepesh I DilliardSpain2026-07-14Commercial Press UNQUALIFIED70Ioni Bowcher
1026David A RoysterGermany2026-06-20Morlong Associates QUALIFIED91Onyama Limba
1027Sinclair U RulapaughIndia2026-07-10Buckley Miller Wright QUALIFIED32Elwin Sharvill
1028Maisha D MorascaGermany2026-07-04Chanay, Jeffrey A Esq NEW86Xuxue Feng
1029Silvio R RimJapan2026-07-02Chemel, James L Cpa PROPOSAL20Elwin Sharvill
1030Johnson L FollerGermany2026-07-03Dorl, James J Esq NEW81Elwin Sharvill
1031Leja N KolmetzUnited Kingdom2026-07-07Feltz Printing Service QUALIFIED17Bernardo Dominic
1032Deepesh T KolmetzFrance2026-07-07Rousseaux, Michael Esq PROPOSAL1Ioni Bowcher
1033Jennifer K MacleadUnited Kingdom2026-06-22Benton, John B Jr RENEWAL13Xuxue Feng
1034Maria H KuskoSpain2026-06-25Feiner Bros RENEWAL35Amy Elsner
1035Mayumi O NestleAustralia2026-07-15Feiner Bros QUALIFIED65Asiya Javayant
1036Francesco C FerenczGermany2026-06-29King, Christopher A Esq RENEWAL67Asiya Javayant
1037Wickens G MarrierAustralia2026-07-10Chemel, James L Cpa QUALIFIED31Asiya Javayant
1038Munro U PaprockiAustralia2026-07-05Printing Dimensions NEGOTIATION85Elwin Sharvill
1039Kadeem D MacleadFrance2026-06-25Rousseaux, Michael Esq RENEWAL90Ivan Magalhaes
1040Jennifer V ButtSpain2026-07-05Rangoni Of Florence UNQUALIFIED57Asiya Javayant
1041Deepesh E FigeroaFrance2026-06-21Chapman, Ross E Esq QUALIFIED57Ioni Bowcher
1042Mujtaba H BowleyJapan2026-07-09Chapman, Ross E Esq UNQUALIFIED99Ivan Magalhaes
1043Stacey K MorascaGermany2026-07-10Chapman, Ross E Esq RENEWAL18Xuxue Feng
1044James V MaletUnited Kingdom2026-06-28Chanay, Jeffrey A Esq NEW68Amy Elsner
1045Clifford N ShinkoIndia2026-06-22Buckley Miller Wright NEW98Stephen Shaw
1046Aruna X GarufiJapan2026-06-21Feiner Bros RENEWAL30Onyama Limba
1047Adams P RimFrance2026-06-19King, Christopher A Esq UNQUALIFIED97Anna Fali
1048Murillo W MacleadJapan2026-06-28Buckley Miller Wright PROPOSAL48Xuxue Feng
1049Izzy F SchemmerFrance2026-06-26Morlong Associates RENEWAL30Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Clifford L WieserAustraliaIoni Bowcher RENEWAL
Jeanfrancois G TollnerArgentinaIoni Bowcher QUALIFIED
Juan F FollerSpainAmy Elsner NEGOTIATION
Jeanfrancois J FigeroaBrazilIoni Bowcher NEW
Misaki N FerenczFranceIvan Magalhaes NEW
Jeanfrancois J RimIndiaBernardo Dominic NEGOTIATION
Claire F RimFranceElwin Sharvill QUALIFIED
Stacey H CaldareraRussiaOnyama Limba UNQUALIFIED
Juan Z TollnerCanadaIoni Bowcher UNQUALIFIED
Wickens B OstroskySpainIoni Bowcher NEGOTIATION
Mujtaba M RulapaughCanadaIoni Bowcher NEW
Smith E VocelkaCanadaOnyama Limba QUALIFIED
Kaitlin W SaylorsFranceBernardo Dominic NEGOTIATION
David H MaletIndiaOnyama Limba UNQUALIFIED
Misaki I VenereAustraliaElwin Sharvill PROPOSAL
James A CaldareraFranceXuxue Feng UNQUALIFIED
Greenwood W TollnerItalyIoni Bowcher QUALIFIED
Cody M BriddickItalyElwin Sharvill PROPOSAL
Alejandro I BowleyCanadaOnyama Limba RENEWAL
Maisha V CaldareraItalyIoni Bowcher UNQUALIFIED
Mayumi Z AlbaresBrazilIoni Bowcher NEGOTIATION
Mujtaba A CaudyAustraliaIvan Magalhaes RENEWAL
Jeanfrancois U OstroskyUnited KingdomIvan Magalhaes RENEWAL
Jones F FlosiGermanyAmy Elsner QUALIFIED
Aika Q MarrierAustraliaXuxue Feng NEW
Claire F WaycottAustraliaIvan Magalhaes NEGOTIATION
Kaitlin E MaletArgentinaAsiya Javayant RENEWAL
Greenwood J BowleyCanadaBernardo Dominic QUALIFIED
Adams I RoysterAustraliaBernardo Dominic QUALIFIED
Ashley R MarrierGermanyAmy Elsner PROPOSAL
Johnson D SchemmerUnited KingdomAmy Elsner NEGOTIATION
Cody U OstroskyCanadaAmy Elsner NEGOTIATION
James H MorascaFranceElwin Sharvill UNQUALIFIED
Clifford I AmigonArgentinaBernardo Dominic NEW
Mujtaba R MaletRussiaOnyama Limba NEGOTIATION
Maria F MarrierFranceOnyama Limba UNQUALIFIED
Antonio Z SaylorsIndiaXuxue Feng RENEWAL
Salvatore Q WaycottBrazilAmy Elsner UNQUALIFIED
Nicolas I GillianSpainElwin Sharvill RENEWAL
Francesco S TollnerAustraliaElwin Sharvill UNQUALIFIED
Juan E FlosiCanadaIvan Magalhaes UNQUALIFIED
Misaki Y VenereSpainOnyama Limba UNQUALIFIED
Kaitlin R DarakjyIndiaOnyama Limba NEGOTIATION
Claire L KuskoGermanyElwin Sharvill RENEWAL
Wickens Y AmigonCanadaElwin Sharvill QUALIFIED
Rodrigues N PaprockiRussiaStephen Shaw RENEWAL
Sinclair A AlbaresCanadaAmy Elsner UNQUALIFIED
Morrow Z MorascaIndiaElwin Sharvill PROPOSAL
David C TollnerArgentinaAsiya Javayant QUALIFIED
Octavia D DilliardBrazilElwin Sharvill NEGOTIATION
Frozen Columns
Name
Adams K Morasca
Deepesh C Venere
Juan U Ferencz
Octavia C Wieser
Clifford F Butt
Silvio Y Kolmetz
Juan L Ferencz
Ricardo Z Wieser
Jeanfrancois A Schemmer
Morrow X Bolognia
Ivar B Butt
Chavez I Figeroa
Wickens E Malet
Silvio K Doe
Smith Q Ostrosky
Jennifer I Perin
Francesco D Maclead
Stacey S Darakjy
Leja Q Doe
Darci L Butt
Costa Z Gillian
James W Iturbide
Jones S Venere
Silvio F Butt
Faith N Stenseth
Francesco Y Slusarski
Munro C Saylors
Jennifer B Caldarera
Misaki F Stenseth
Aditya T Flosi
Clifford D Butt
Mujtaba D Garufi
Misaki B Venere
Tony Z Poquette
Leja C Wieser
Francesco P Briddick
Octavia O Vocelka
Silvio M Poquette
Tony F Figeroa
Emily F Campain
Maisha N Saylors
Kaitlin D Rulapaugh
Costa C Inouye
Munro J Amigon
Sinclair H Rulapaugh
Wickens G Caudy
Adams V Royster
Maisha G Paprocki
Izzy P Bolognia
Chavez C Wieser
IdCountryDate
1000Russia2026-06-29
1001Germany2026-07-01
1002Brazil2026-06-20
1003United Kingdom2026-06-24
1004Argentina2026-07-09
1005United Kingdom2026-06-23
1006Brazil2026-06-22
1007Argentina2026-06-18
1008Italy2026-07-14
1009Russia2026-07-14
1010Canada2026-07-15
1011Germany2026-07-07
1012Brazil2026-07-13
1013Russia2026-07-12
1014Russia2026-06-20
1015United Kingdom2026-07-05
1016Spain2026-06-24
1017Italy2026-06-19
1018Spain2026-06-30
1019Russia2026-06-16
1020Germany2026-06-28
1021United Kingdom2026-07-04
1022United Kingdom2026-07-10
1023United Kingdom2026-06-27
1024Spain2026-06-27
1025Brazil2026-06-18
1026Australia2026-06-20
1027France2026-06-30
1028Spain2026-07-11
1029Australia2026-07-02
1030Italy2026-06-29
1031Germany2026-06-20
1032Russia2026-07-09
1033Japan2026-06-28
1034Italy2026-07-03
1035Russia2026-06-19
1036Russia2026-07-01
1037France2026-07-11
1038Russia2026-07-09
1039France2026-07-10
1040Japan2026-06-28
1041Canada2026-06-18
1042Japan2026-07-10
1043Canada2026-06-17
1044Germany2026-06-28
1045United Kingdom2026-06-17
1046Spain2026-06-17
1047Australia2026-07-07
1048United Kingdom2026-07-02
1049Australia2026-06-18

On-Demand Data

NameIdCountryDate
Salvatore G Gillian1000Canada2026-06-25
Costa N Vocelka1001Argentina2026-07-04
Alejandro H Rim1002Spain2026-06-25
Clifford H Maclead1003Australia2026-06-24
Jeanfrancois A Glick1004Brazil2026-06-30
Julie M Vocelka1005United Kingdom2026-06-23
Mayumi R Flosi1006Spain2026-07-02
Rodrigues X Ostrosky1007Spain2026-06-20
Darci F Chui1008Spain2026-06-30
Ivar O Rulapaugh1009Argentina2026-06-25
Mayumi A Kusko1010Japan2026-07-06
Nicolas P Wieser1011Canada2026-07-07
Claire K Rulapaugh1012Canada2026-07-15
Leon R Dilliard1013France2026-06-18
Nicolas O Gaucho1014Russia2026-06-23
Murillo J Poquette1015Argentina2026-06-18
Mayumi C Venere1016Australia2026-07-08
Munro M Slusarski1017Argentina2026-07-03
David D Slusarski1018Spain2026-07-04
James F Ruta1019Japan2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio V SaylorsAustraliaAsiya Javayant UNQUALIFIED
Silvio U KolmetzCanadaStephen Shaw PROPOSAL
Misaki J MaletJapanBernardo Dominic PROPOSAL
Aika Y ChuiCanadaXuxue Feng PROPOSAL
Izzy Q MaletUnited KingdomBernardo Dominic PROPOSAL
Rodrigues N RimAustraliaAmy Elsner RENEWAL
Leon V VocelkaFranceIvan Magalhaes NEGOTIATION
Rodrigues F SchemmerBrazilIvan Magalhaes PROPOSAL
Darci P InouyeUnited KingdomAnna Fali NEW
Kaitlin N GauchoItalyElwin Sharvill NEGOTIATION
Faith Q MaletIndiaBernardo Dominic QUALIFIED
Rodrigues R TollnerIndiaAnna Fali NEW
Ivar H AmigonCanadaStephen Shaw QUALIFIED
Arvin D MorascaBrazilIoni Bowcher UNQUALIFIED
David V SchemmerItalyStephen Shaw PROPOSAL
Mujtaba Y IturbideJapanElwin Sharvill UNQUALIFIED
Jefferson D NickaItalyOnyama Limba QUALIFIED
Julie A NickaJapanIvan Magalhaes RENEWAL
Morrow T GillianRussiaElwin Sharvill UNQUALIFIED
Stacey R WaycottCanadaStephen Shaw RENEWAL
Stacey T SaylorsGermanyElwin Sharvill NEW
Julie G WaycottArgentinaAnna Fali NEW
James B RulapaughGermanyXuxue Feng QUALIFIED
Maria M WieserBrazilElwin Sharvill PROPOSAL
Kaitlin R IturbideUnited KingdomStephen Shaw NEW
Darci C DarakjyRussiaIoni Bowcher RENEWAL
Maisha O KolmetzItalyStephen Shaw QUALIFIED
Greenwood H CampainGermanyIvan Magalhaes RENEWAL
Octavia O MacleadItalyXuxue Feng PROPOSAL
Alejandro I ShinkoSpainAmy Elsner RENEWAL
Ashley N ShinkoArgentinaAmy Elsner RENEWAL
Izzy G SaylorsArgentinaAmy Elsner UNQUALIFIED
Nicolas U NestleCanadaAmy Elsner RENEWAL
Wickens W CaudyAustraliaBernardo Dominic PROPOSAL
Jeanfrancois L FlosiSpainBernardo Dominic NEW
Jeanfrancois I RimRussiaAmy Elsner PROPOSAL
Greenwood S BologniaAustraliaIoni Bowcher NEGOTIATION
Chavez S WieserItalyOnyama Limba UNQUALIFIED
Tony P NestleCanadaIoni Bowcher RENEWAL
Alejandro I WhobreyJapanOnyama Limba 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>