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
Morrow D FollerSpainOnyama Limba QUALIFIED
Izzy Q ChuiFranceElwin Sharvill NEGOTIATION
Leja K KolmetzFranceOnyama Limba QUALIFIED
Juan I VenereArgentinaOnyama Limba UNQUALIFIED
Kaitlin T VocelkaRussiaAmy Elsner UNQUALIFIED
Alejandro F BowleyRussiaIvan Magalhaes QUALIFIED
Claire I FigeroaBrazilAmy Elsner QUALIFIED
Aika Y MacleadItalyElwin Sharvill NEGOTIATION
Leja W BriddickUnited KingdomXuxue Feng RENEWAL
Smith C BologniaCanadaXuxue Feng NEGOTIATION
Greenwood F GarufiIndiaIvan Magalhaes UNQUALIFIED
James V VocelkaBrazilStephen Shaw NEGOTIATION
Darci F FlosiIndiaOnyama Limba PROPOSAL
Rodrigues B FigeroaUnited KingdomXuxue Feng PROPOSAL
Kaitlin Z InouyeUnited KingdomAmy Elsner NEGOTIATION
Jennifer O DilliardUnited KingdomStephen Shaw PROPOSAL
Jennifer Z RutaArgentinaOnyama Limba RENEWAL
Leon H KuskoAustraliaStephen Shaw QUALIFIED
Isabel W BologniaUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin L FerenczItalyAnna Fali PROPOSAL
Leja S MarrierJapanAsiya Javayant RENEWAL
Costa D WieserGermanyIvan Magalhaes QUALIFIED
James V DoeJapanElwin Sharvill PROPOSAL
Salvatore P KolmetzItalyAsiya Javayant UNQUALIFIED
Costa B RimRussiaOnyama Limba RENEWAL
Ivar Y BriddickIndiaAsiya Javayant NEGOTIATION
Kaitlin F OstroskyBrazilOnyama Limba QUALIFIED
Claire R TollnerArgentinaAmy Elsner NEGOTIATION
Clifford D FigeroaFranceAsiya Javayant UNQUALIFIED
Juan S NestleGermanyAmy Elsner PROPOSAL
Kadeem M StensethAustraliaAnna Fali RENEWAL
Jeanfrancois Q AlbaresIndiaOnyama Limba PROPOSAL
Johnson T FerenczGermanyBernardo Dominic NEGOTIATION
Aditya F KuskoUnited KingdomOnyama Limba UNQUALIFIED
Antonio Q FigeroaCanadaStephen Shaw QUALIFIED
Ivar Y PerinUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer M VenereAustraliaAnna Fali RENEWAL
Octavia T CampainUnited KingdomIvan Magalhaes RENEWAL
Sinclair I VenereUnited KingdomOnyama Limba RENEWAL
Alejandro X FerenczCanadaIvan Magalhaes NEGOTIATION
Faith M SergiArgentinaAmy Elsner PROPOSAL
Leja H MarrierFranceOnyama Limba RENEWAL
Aditya S VocelkaUnited KingdomAnna Fali QUALIFIED
Cody V GillianArgentinaStephen Shaw NEGOTIATION
David U GlickUnited KingdomXuxue Feng UNQUALIFIED
Julie W GillianIndiaStephen Shaw RENEWAL
Arvin E VenereGermanyAnna Fali NEGOTIATION
Costa K SlusarskiFranceXuxue Feng QUALIFIED
Silvio P ChuiCanadaXuxue Feng NEGOTIATION
Aika T ChuiBrazilOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith W OstroskyBrazilOnyama Limba NEW
Clifford Q RoysterUnited KingdomIoni Bowcher NEW
Greenwood N GarufiItalyAsiya Javayant RENEWAL
Aruna G MaletItalyElwin Sharvill UNQUALIFIED
Mujtaba P OldroydJapanOnyama Limba QUALIFIED
David C SaylorsCanadaAsiya Javayant NEW
Jennifer Z NestleJapanStephen Shaw UNQUALIFIED
Juan G TollnerGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois T StockhamSpainElwin Sharvill RENEWAL
Greenwood L KuskoRussiaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow K PoquetteSpain2025-04-13Rousseaux, Michael Esq PROPOSAL60Amy Elsner
1001Faith V NestleGermany2025-04-03Printing Dimensions NEGOTIATION13Stephen Shaw
1002Emily M RimSpain2025-04-09Chanay, Jeffrey A Esq RENEWAL84Elwin Sharvill
1003Wickens M WieserJapan2025-04-07Rangoni Of Florence UNQUALIFIED24Elwin Sharvill
1004David N SchemmerUnited Kingdom2025-04-14Rousseaux, Michael Esq PROPOSAL75Asiya Javayant
1005Cody P RutaUnited Kingdom2025-04-11Chemel, James L Cpa NEW11Onyama Limba
1006Leon J GauchoIndia2025-04-12Chemel, James L Cpa NEW99Stephen Shaw
1007Sinclair S OldroydUnited Kingdom2025-04-28Dorl, James J Esq PROPOSAL40Anna Fali
1008Jefferson A OstroskyRussia2025-04-29Dorl, James J Esq NEW22Xuxue Feng
1009Jones S SchemmerUnited Kingdom2025-04-06Chanay, Jeffrey A Esq PROPOSAL62Bernardo Dominic
1010Jones R BowleyJapan2025-04-16Chapman, Ross E Esq RENEWAL36Xuxue Feng
1011Alejandro E RoysterAustralia2025-04-07Dorl, James J Esq QUALIFIED53Ioni Bowcher
1012Claire L FollerItaly2025-04-28Rousseaux, Michael Esq QUALIFIED92Anna Fali
1013Rodrigues A PerinBrazil2025-04-24King, Christopher A Esq NEGOTIATION14Onyama Limba
1014Wickens G DilliardIndia2025-04-09Chanay, Jeffrey A Esq NEGOTIATION35Ioni Bowcher
1015Maria E OstroskyItaly2025-04-04Chapman, Ross E Esq PROPOSAL92Elwin Sharvill
1016Alejandro X ButtItaly2025-04-07King, Christopher A Esq QUALIFIED11Asiya Javayant
1017Juan C BowleyIndia2025-04-06Rousseaux, Michael Esq QUALIFIED77Onyama Limba
1018Aditya V IturbideGermany2025-04-14Chanay, Jeffrey A Esq NEGOTIATION74Stephen Shaw
1019Nicolas M FollerArgentina2025-04-17Morlong Associates QUALIFIED93Ivan Magalhaes
1020Antonio M InouyeCanada2025-04-30Benton, John B Jr NEW55Ioni Bowcher
1021Mujtaba R OstroskyRussia2025-04-11Printing Dimensions NEW47Ioni Bowcher
1022Rodrigues A AlbaresCanada2025-04-21Chanay, Jeffrey A Esq PROPOSAL72Elwin Sharvill
1023Alejandro F SaylorsCanada2025-04-20Chanay, Jeffrey A Esq QUALIFIED47Anna Fali
1024Wickens O ButtRussia2025-04-22Buckley Miller Wright QUALIFIED56Amy Elsner
1025Claire D KolmetzItaly2025-04-02Rangoni Of Florence PROPOSAL43Anna Fali
1026Jones Z MaletJapan2025-04-20Feiner Bros RENEWAL45Stephen Shaw
1027Morrow I NestleSpain2025-04-21Rangoni Of Florence UNQUALIFIED80Anna Fali
1028Wickens B RimGermany2025-04-15Chapman, Ross E Esq UNQUALIFIED3Ioni Bowcher
1029Mayumi A WieserRussia2025-04-09Morlong Associates NEW60Stephen Shaw
1030Juan X PerinSpain2025-04-07Chemel, James L Cpa NEGOTIATION41Onyama Limba
1031Wickens U SchemmerJapan2025-04-11Chapman, Ross E Esq RENEWAL64Asiya Javayant
1032David Y InouyeJapan2025-04-18Dorl, James J Esq UNQUALIFIED91Amy Elsner
1033Silvio B VenereIndia2025-04-29Truhlar And Truhlar Attys QUALIFIED73Elwin Sharvill
1034Leja W DarakjyFrance2025-04-20Rousseaux, Michael Esq UNQUALIFIED75Amy Elsner
1035Claire M MarrierSpain2025-04-14Feltz Printing Service NEW21Bernardo Dominic
1036Maria P WaycottJapan2025-04-25Chemel, James L Cpa NEW40Amy Elsner
1037Stacey F OldroydIndia2025-04-18Chemel, James L Cpa UNQUALIFIED23Bernardo Dominic
1038Rodrigues P RoysterAustralia2025-04-24Rangoni Of Florence UNQUALIFIED9Ivan Magalhaes
1039Rodrigues M PerinJapan2025-04-12Morlong Associates PROPOSAL80Elwin Sharvill
1040Jeanfrancois E SlusarskiArgentina2025-04-24Morlong Associates PROPOSAL88Bernardo Dominic
1041Jeanfrancois Q PerinJapan2025-04-30Dorl, James J Esq QUALIFIED42Elwin Sharvill
1042Jefferson Z StensethItaly2025-04-15Rousseaux, Michael Esq NEGOTIATION48Asiya Javayant
1043Murillo X KuskoFrance2025-04-03Rangoni Of Florence PROPOSAL65Stephen Shaw
1044Mayumi T StensethFrance2025-04-10Buckley Miller Wright QUALIFIED90Asiya Javayant
1045David P WaycottBrazil2025-04-30Rousseaux, Michael Esq UNQUALIFIED42Ivan Magalhaes
1046Isabel F MacleadAustralia2025-04-17Chanay, Jeffrey A Esq NEGOTIATION29Bernardo Dominic
1047Costa Q PoquetteRussia2025-04-28Dorl, James J Esq UNQUALIFIED3Asiya Javayant
1048Johnson A SaylorsAustralia2025-04-23Chanay, Jeffrey A Esq NEW24Bernardo Dominic
1049Misaki W CaudyGermany2025-04-06Truhlar And Truhlar Attys RENEWAL42Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Arvin C KuskoFranceAmy Elsner RENEWAL
Stacey N WieserItalyXuxue Feng UNQUALIFIED
Julie M StockhamArgentinaBernardo Dominic RENEWAL
Francesco Q GarufiSpainAmy Elsner PROPOSAL
Ashley D MacleadCanadaIoni Bowcher NEW
Faith U NickaCanadaAsiya Javayant QUALIFIED
Ivar H KolmetzSpainAnna Fali PROPOSAL
Greenwood J MarrierUnited KingdomElwin Sharvill NEGOTIATION
Maisha H KolmetzRussiaIoni Bowcher UNQUALIFIED
Jennifer X DoeFranceAsiya Javayant PROPOSAL
Ivar N MorascaGermanyOnyama Limba QUALIFIED
Costa I KolmetzRussiaStephen Shaw QUALIFIED
Alejandro L GillianAustraliaStephen Shaw PROPOSAL
Mayumi K NickaCanadaXuxue Feng NEW
Smith O PoquetteSpainStephen Shaw UNQUALIFIED
Chavez W VenereIndiaAmy Elsner QUALIFIED
Adams N KolmetzArgentinaIoni Bowcher UNQUALIFIED
Nicolas Q RutaRussiaIvan Magalhaes UNQUALIFIED
Rodrigues D AmigonUnited KingdomIvan Magalhaes QUALIFIED
Morrow J WhobreyCanadaElwin Sharvill NEGOTIATION
Salvatore I VocelkaGermanyStephen Shaw QUALIFIED
Smith G ChuiCanadaStephen Shaw NEGOTIATION
Deepesh S KolmetzFranceXuxue Feng RENEWAL
Aika M WaycottUnited KingdomAmy Elsner UNQUALIFIED
Cody T KuskoRussiaIoni Bowcher UNQUALIFIED
Adams M StockhamBrazilIoni Bowcher UNQUALIFIED
Antonio Q CampainItalyElwin Sharvill UNQUALIFIED
Greenwood J RoysterJapanIoni Bowcher NEW
Leja B WaycottRussiaXuxue Feng UNQUALIFIED
Munro Q PoquetteItalyAnna Fali UNQUALIFIED
Mujtaba B GlickIndiaAnna Fali QUALIFIED
Jones O MarrierSpainBernardo Dominic NEGOTIATION
Juan A GauchoUnited KingdomBernardo Dominic RENEWAL
David F CaudyArgentinaIvan Magalhaes NEW
Mujtaba P RoysterItalyStephen Shaw PROPOSAL
Jefferson M GillianFranceAmy Elsner PROPOSAL
Faith S WieserCanadaXuxue Feng NEW
Kadeem C VocelkaRussiaXuxue Feng NEW
Aruna Y WieserRussiaElwin Sharvill QUALIFIED
Octavia F MorascaJapanAmy Elsner RENEWAL
Costa K CampainUnited KingdomStephen Shaw QUALIFIED
Julie V PaprockiCanadaXuxue Feng NEW
Aika Q KolmetzFranceIvan Magalhaes NEGOTIATION
Morrow D DoeBrazilElwin Sharvill QUALIFIED
Smith R RimItalyAsiya Javayant QUALIFIED
Aika U RimGermanyXuxue Feng QUALIFIED
Mayumi P SaylorsIndiaAsiya Javayant RENEWAL
Clifford X WhobreyFranceStephen Shaw RENEWAL
Darci T DilliardRussiaStephen Shaw QUALIFIED
Leon J ShinkoItalyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Jeanfrancois V Albares
Ashley U Malet
Isabel G Schemmer
Adams B Perin
Arvin Z Perin
Jones Q Kolmetz
Aruna Z Chui
Tony N Bowley
Jefferson Q Figeroa
Aditya H Poquette
Cody G Slusarski
Mujtaba H Bolognia
Johnson H Morasca
Maisha N Perin
Izzy O Flosi
Izzy W Foller
Silvio R Saylors
Salvatore P Venere
Jones A Figeroa
Leja M Malet
Aika F Venere
Johnson B Iturbide
Emily W Glick
Francesco H Campain
Chavez P Ruta
Leon L Venere
Greenwood Z Ferencz
Aditya K Perin
Jones Q Briddick
Jones F Gaucho
Jefferson V Ostrosky
Sinclair F Caudy
Chavez R Wieser
Aruna K Stenseth
Kaitlin Z Caldarera
Greenwood D Oldroyd
Wickens C Wieser
Juan K Royster
Deepesh D Schemmer
Kaitlin U Saylors
James A Schemmer
Greenwood F Slusarski
Francesco O Gillian
Salvatore Y Bolognia
Salvatore P Poquette
Adams B Maclead
Cody A Maclead
Deepesh M Campain
Sinclair U Malet
Ivar P Bolognia
IdCountryDate
1000Canada2025-04-16
1001Spain2025-04-27
1002Russia2025-04-12
1003Canada2025-04-07
1004India2025-04-01
1005Spain2025-04-16
1006Russia2025-04-04
1007Brazil2025-04-10
1008Spain2025-04-08
1009India2025-04-02
1010Brazil2025-04-18
1011Spain2025-04-16
1012Canada2025-04-15
1013United Kingdom2025-04-30
1014Canada2025-04-04
1015France2025-04-20
1016Russia2025-04-08
1017Argentina2025-04-23
1018United Kingdom2025-04-19
1019Spain2025-04-09
1020Canada2025-04-04
1021United Kingdom2025-04-20
1022Australia2025-04-27
1023Brazil2025-04-05
1024Italy2025-04-09
1025Spain2025-04-09
1026Brazil2025-04-10
1027Italy2025-04-02
1028Canada2025-04-05
1029United Kingdom2025-04-28
1030France2025-04-07
1031Germany2025-04-10
1032Australia2025-04-12
1033Italy2025-04-18
1034Russia2025-04-02
1035Italy2025-04-21
1036Argentina2025-04-16
1037Japan2025-04-19
1038Russia2025-04-24
1039Spain2025-04-15
1040Japan2025-04-11
1041Argentina2025-04-03
1042United Kingdom2025-04-15
1043Germany2025-04-21
1044France2025-04-26
1045Argentina2025-04-25
1046Canada2025-04-17
1047Argentina2025-04-01
1048Germany2025-04-25
1049Germany2025-04-22

On-Demand Data

NameIdCountryDate
Maisha B Campain1000Argentina2025-04-05
Jeanfrancois O Kolmetz1001Australia2025-04-20
Jeanfrancois Q Malet1002Canada2025-04-30
Octavia F Tollner1003Germany2025-04-24
Claire B Venere1004Germany2025-04-14
Costa N Kolmetz1005France2025-04-29
Clifford L Glick1006Argentina2025-04-22
Leon W Maclead1007United Kingdom2025-04-16
Ricardo E Figeroa1008Brazil2025-04-22
Kaitlin C Sergi1009Argentina2025-04-17
Antonio A Ostrosky1010Canada2025-04-21
Isabel R Tollner1011Russia2025-04-26
Murillo D Figeroa1012Brazil2025-04-04
Francesco V Amigon1013Germany2025-04-02
Mayumi T Kusko1014Australia2025-04-07
Emily K Chui1015Spain2025-04-15
Izzy R Vocelka1016Brazil2025-04-21
Rodrigues P Amigon1017Brazil2025-04-17
Wickens L Gillian1018Italy2025-04-20
Jones I Caldarera1019Australia2025-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James C NickaGermanyAmy Elsner RENEWAL
Aditya G InouyeArgentinaAsiya Javayant RENEWAL
Faith C BriddickAustraliaAnna Fali PROPOSAL
Morrow O SaylorsSpainIvan Magalhaes NEW
Arvin R PaprockiBrazilAnna Fali PROPOSAL
Mayumi E KuskoIndiaAsiya Javayant NEW
Alejandro M SlusarskiCanadaAnna Fali QUALIFIED
Leon N WaycottAustraliaBernardo Dominic PROPOSAL
Ricardo X GauchoAustraliaStephen Shaw NEW
Tony A SlusarskiIndiaIoni Bowcher PROPOSAL
Izzy D AlbaresJapanStephen Shaw NEGOTIATION
Aditya Q OldroydItalyXuxue Feng PROPOSAL
Mujtaba P GauchoIndiaBernardo Dominic NEW
Octavia I WhobreyCanadaAmy Elsner RENEWAL
Misaki M RimArgentinaIvan Magalhaes UNQUALIFIED
Stacey P BowleyJapanIoni Bowcher NEGOTIATION
Stacey L FerenczBrazilStephen Shaw UNQUALIFIED
Aruna G FerenczUnited KingdomXuxue Feng UNQUALIFIED
Arvin P IturbideGermanyIvan Magalhaes PROPOSAL
Kaitlin L PaprockiCanadaStephen Shaw UNQUALIFIED
Aruna D StockhamIndiaAsiya Javayant UNQUALIFIED
Julie X WaycottGermanyStephen Shaw PROPOSAL
Izzy P RimUnited KingdomElwin Sharvill RENEWAL
Ricardo K FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin B ChuiRussiaAmy Elsner NEW
Murillo U MarrierItalyXuxue Feng PROPOSAL
Clifford N RoysterSpainOnyama Limba NEGOTIATION
Morrow H PerinGermanyAmy Elsner PROPOSAL
Francesco Q CaudyJapanOnyama Limba NEW
Adams K RulapaughIndiaBernardo Dominic QUALIFIED
Munro W MaletAustraliaAmy Elsner NEW
Murillo S MarrierSpainIvan Magalhaes PROPOSAL
Morrow N VenereGermanyAnna Fali RENEWAL
Antonio E GlickGermanyOnyama Limba NEGOTIATION
Munro C OstroskyIndiaIvan Magalhaes UNQUALIFIED
Kadeem F PoquetteBrazilIoni Bowcher QUALIFIED
Ricardo Q CaldareraAustraliaBernardo Dominic QUALIFIED
Darci U BowleySpainElwin Sharvill NEW
Mujtaba X BriddickUnited KingdomXuxue Feng RENEWAL
Costa F NickaCanadaOnyama 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>