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
Ashley O InouyeJapanAnna Fali UNQUALIFIED
Chavez W DilliardCanadaAmy Elsner RENEWAL
Alejandro Q KolmetzFranceAmy Elsner UNQUALIFIED
Rodrigues Y SchemmerRussiaStephen Shaw NEGOTIATION
Aruna B PerinGermanyBernardo Dominic RENEWAL
Misaki F FigeroaCanadaBernardo Dominic RENEWAL
Adams Y PerinArgentinaOnyama Limba PROPOSAL
Jefferson H AlbaresItalyIvan Magalhaes NEW
Cody O RimArgentinaIoni Bowcher PROPOSAL
Munro M MacleadCanadaOnyama Limba NEGOTIATION
Greenwood S OldroydAustraliaIoni Bowcher NEGOTIATION
Silvio O VocelkaIndiaIoni Bowcher UNQUALIFIED
Alejandro A VenereRussiaBernardo Dominic NEGOTIATION
Jones J CampainUnited KingdomOnyama Limba UNQUALIFIED
Emily L VenereAustraliaIvan Magalhaes RENEWAL
Jennifer T InouyeFranceIoni Bowcher PROPOSAL
Clifford W OstroskyJapanAsiya Javayant UNQUALIFIED
Aika P MaletBrazilStephen Shaw PROPOSAL
Maria E FlosiCanadaXuxue Feng RENEWAL
Isabel K SaylorsCanadaXuxue Feng QUALIFIED
Darci R RutaAustraliaIvan Magalhaes UNQUALIFIED
Juan U AlbaresCanadaStephen Shaw RENEWAL
Aruna T GarufiAustraliaAsiya Javayant RENEWAL
Octavia W FollerGermanyAsiya Javayant QUALIFIED
Mayumi A FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Faith C RulapaughItalyStephen Shaw NEGOTIATION
Jennifer S BowleyGermanyStephen Shaw NEW
Maisha D BologniaUnited KingdomAnna Fali NEW
Jeanfrancois Z RutaAustraliaAmy Elsner UNQUALIFIED
Alejandro D NestleArgentinaElwin Sharvill RENEWAL
Sinclair Z KolmetzJapanIoni Bowcher QUALIFIED
Francesco M BologniaItalyElwin Sharvill NEGOTIATION
Clifford H GarufiGermanyIvan Magalhaes NEGOTIATION
Munro U GarufiCanadaIoni Bowcher UNQUALIFIED
Jones C CampainAustraliaIoni Bowcher NEW
Jefferson D ChuiRussiaAnna Fali PROPOSAL
Antonio Y WhobreyCanadaElwin Sharvill NEW
Claire L GarufiIndiaElwin Sharvill RENEWAL
Nicolas M WhobreyFranceStephen Shaw RENEWAL
Munro R MorascaSpainElwin Sharvill NEW
Emily O NestleIndiaXuxue Feng NEW
Deepesh N SaylorsJapanStephen Shaw PROPOSAL
Misaki A BriddickGermanyOnyama Limba NEW
Arvin T RulapaughCanadaIoni Bowcher NEGOTIATION
Aditya U BriddickGermanyIvan Magalhaes NEGOTIATION
Misaki P SchemmerIndiaIvan Magalhaes NEW
Mayumi H BowleyFranceOnyama Limba PROPOSAL
Kaitlin X PoquetteSpainStephen Shaw PROPOSAL
Mayumi K BowleyBrazilAnna Fali UNQUALIFIED
Arvin T FollerJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Emily D FerenczRussiaAnna Fali PROPOSAL
Cody D MaletJapanXuxue Feng NEGOTIATION
Aika T StensethBrazilAmy Elsner PROPOSAL
Salvatore I PoquetteItalyAmy Elsner PROPOSAL
Misaki Z BologniaIndiaAsiya Javayant QUALIFIED
Kadeem Z KuskoFranceAnna Fali RENEWAL
Leon X FigeroaCanadaXuxue Feng RENEWAL
Deepesh Q ButtItalyAsiya Javayant RENEWAL
Nicolas O StockhamCanadaIoni Bowcher NEGOTIATION
Leon X RimItalyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony P MarrierFrance2025-05-22Chanay, Jeffrey A Esq NEGOTIATION8Stephen Shaw
1001James T AmigonFrance2025-06-12Printing Dimensions UNQUALIFIED22Asiya Javayant
1002Mujtaba I MaletArgentina2025-06-04Benton, John B Jr QUALIFIED85Xuxue Feng
1003Stacey I KolmetzAustralia2025-05-18Feltz Printing Service NEGOTIATION67Onyama Limba
1004Claire T StockhamItaly2025-05-31Rangoni Of Florence NEGOTIATION55Stephen Shaw
1005David W ChuiItaly2025-06-11Benton, John B Jr QUALIFIED38Onyama Limba
1006Octavia V InouyeFrance2025-06-09Commercial Press RENEWAL88Bernardo Dominic
1007Munro X InouyeItaly2025-06-15Dorl, James J Esq NEGOTIATION87Amy Elsner
1008Claire L KuskoCanada2025-06-13Morlong Associates QUALIFIED32Anna Fali
1009David M ShinkoBrazil2025-05-28Truhlar And Truhlar Attys NEGOTIATION72Onyama Limba
1010David D DoeItaly2025-05-30Dorl, James J Esq NEGOTIATION51Ivan Magalhaes
1011Clifford P BologniaUnited Kingdom2025-06-08Rangoni Of Florence QUALIFIED0Stephen Shaw
1012Isabel V StockhamArgentina2025-06-14Dorl, James J Esq NEGOTIATION21Ioni Bowcher
1013Greenwood X SlusarskiGermany2025-05-31Commercial Press UNQUALIFIED30Anna Fali
1014Alejandro D FollerArgentina2025-05-26King, Christopher A Esq RENEWAL33Stephen Shaw
1015Aika T KolmetzRussia2025-05-26Chanay, Jeffrey A Esq RENEWAL93Xuxue Feng
1016Cody I WhobreyFrance2025-05-23Dorl, James J Esq PROPOSAL32Bernardo Dominic
1017Aruna R StockhamSpain2025-06-04King, Christopher A Esq UNQUALIFIED5Ioni Bowcher
1018Emily Y ChuiFrance2025-06-12Buckley Miller Wright PROPOSAL56Ioni Bowcher
1019Alejandro C MacleadGermany2025-05-31Chanay, Jeffrey A Esq UNQUALIFIED26Asiya Javayant
1020Cody I BowleyRussia2025-05-20Morlong Associates PROPOSAL89Elwin Sharvill
1021Leja I BowleyAustralia2025-05-19Truhlar And Truhlar Attys RENEWAL42Bernardo Dominic
1022Rodrigues L InouyeCanada2025-06-05Chapman, Ross E Esq QUALIFIED57Elwin Sharvill
1023Ashley B FlosiBrazil2025-05-18Chemel, James L Cpa PROPOSAL29Bernardo Dominic
1024Maria T WhobreyArgentina2025-06-08Benton, John B Jr RENEWAL24Stephen Shaw
1025Rodrigues Y PaprockiCanada2025-06-07Chemel, James L Cpa NEW55Stephen Shaw
1026Kaitlin J FlosiArgentina2025-05-24Benton, John B Jr RENEWAL22Elwin Sharvill
1027Munro U TollnerBrazil2025-05-18Rousseaux, Michael Esq PROPOSAL35Stephen Shaw
1028Isabel Y FlosiGermany2025-06-09Chemel, James L Cpa PROPOSAL48Xuxue Feng
1029David G BowleySpain2025-05-30Dorl, James J Esq PROPOSAL48Ivan Magalhaes
1030Clifford Y AlbaresGermany2025-06-04Feltz Printing Service QUALIFIED60Stephen Shaw
1031Julie D PoquetteUnited Kingdom2025-06-12Dorl, James J Esq NEGOTIATION87Elwin Sharvill
1032Adams H CaldareraUnited Kingdom2025-05-21Buckley Miller Wright NEGOTIATION88Ioni Bowcher
1033Darci Q CaudyJapan2025-06-15Chemel, James L Cpa NEW13Bernardo Dominic
1034Mayumi N DilliardUnited Kingdom2025-05-27Buckley Miller Wright UNQUALIFIED48Bernardo Dominic
1035Wickens B FollerUnited Kingdom2025-06-06Truhlar And Truhlar Attys NEW13Ivan Magalhaes
1036Greenwood U FlosiRussia2025-06-02Buckley Miller Wright PROPOSAL6Onyama Limba
1037Claire Q PoquetteRussia2025-05-24Printing Dimensions NEW3Ivan Magalhaes
1038Adams U VocelkaRussia2025-06-05Morlong Associates NEGOTIATION22Amy Elsner
1039Maisha Q FollerBrazil2025-05-24Rangoni Of Florence PROPOSAL58Onyama Limba
1040Maisha E InouyeIndia2025-05-24Feiner Bros NEW76Ioni Bowcher
1041Misaki C NickaFrance2025-06-12Commercial Press RENEWAL88Onyama Limba
1042Greenwood C WhobreyBrazil2025-06-08Chemel, James L Cpa NEW33Stephen Shaw
1043Kadeem W DarakjyBrazil2025-06-10Rousseaux, Michael Esq UNQUALIFIED41Anna Fali
1044Kadeem K VocelkaCanada2025-06-06Chanay, Jeffrey A Esq NEW54Ioni Bowcher
1045Leja C AmigonAustralia2025-05-20Feltz Printing Service PROPOSAL9Ivan Magalhaes
1046Ricardo Z DarakjyAustralia2025-05-27Truhlar And Truhlar Attys RENEWAL92Asiya Javayant
1047Costa D InouyeGermany2025-05-28Morlong Associates NEGOTIATION63Amy Elsner
1048Mayumi P GillianJapan2025-06-09King, Christopher A Esq NEW94Xuxue Feng
1049Rodrigues N RoysterIndia2025-05-21Chemel, James L Cpa UNQUALIFIED19Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy W TollnerIndiaAnna Fali PROPOSAL
Maria R RulapaughArgentinaAsiya Javayant NEGOTIATION
Maisha D MacleadUnited KingdomBernardo Dominic RENEWAL
Izzy A GillianSpainElwin Sharvill NEGOTIATION
Francesco G ButtJapanBernardo Dominic NEW
Mujtaba M SergiCanadaBernardo Dominic NEW
Smith A MaletArgentinaAmy Elsner NEW
Maisha T KuskoAustraliaOnyama Limba UNQUALIFIED
Aika R CaldareraRussiaAnna Fali PROPOSAL
Emily E DarakjySpainElwin Sharvill PROPOSAL
Nicolas I DilliardCanadaAmy Elsner RENEWAL
Antonio G IturbideFranceStephen Shaw PROPOSAL
Leja P FerenczItalyStephen Shaw QUALIFIED
Jeanfrancois Q NestleFranceElwin Sharvill NEGOTIATION
Aruna F AlbaresGermanyIvan Magalhaes PROPOSAL
Ricardo Q WaycottUnited KingdomStephen Shaw NEW
Mujtaba E DilliardIndiaAsiya Javayant RENEWAL
Silvio G PerinBrazilIoni Bowcher NEGOTIATION
Antonio M PoquetteBrazilOnyama Limba QUALIFIED
Deepesh U KolmetzAustraliaElwin Sharvill PROPOSAL
Julie H NestleAustraliaElwin Sharvill PROPOSAL
Clifford M WhobreyFranceAsiya Javayant NEGOTIATION
Greenwood W VocelkaFranceOnyama Limba NEW
Aruna B FollerBrazilAnna Fali NEW
Alejandro W SergiGermanyBernardo Dominic NEGOTIATION
Clifford F KuskoCanadaXuxue Feng NEW
Smith N DoeRussiaIoni Bowcher PROPOSAL
James J ChuiSpainXuxue Feng PROPOSAL
Wickens D KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Ricardo H MarrierFranceOnyama Limba RENEWAL
Claire U CaldareraBrazilBernardo Dominic QUALIFIED
Clifford D PaprockiCanadaAsiya Javayant PROPOSAL
Nicolas F KolmetzUnited KingdomStephen Shaw RENEWAL
Deepesh W StensethAustraliaAnna Fali RENEWAL
Kadeem U SaylorsJapanAnna Fali UNQUALIFIED
Munro N StockhamJapanAmy Elsner NEGOTIATION
Aditya U GillianArgentinaAnna Fali QUALIFIED
Kadeem Q GillianUnited KingdomIoni Bowcher QUALIFIED
Maisha E MaletGermanyAnna Fali NEW
Aika I VenereUnited KingdomAmy Elsner RENEWAL
Greenwood T CaldareraFranceElwin Sharvill RENEWAL
Faith W DarakjyAustraliaAmy Elsner UNQUALIFIED
Salvatore A SlusarskiBrazilStephen Shaw NEGOTIATION
Rodrigues J FollerFranceBernardo Dominic PROPOSAL
Kaitlin X OldroydSpainAnna Fali QUALIFIED
Jennifer N RulapaughAustraliaIvan Magalhaes QUALIFIED
Francesco U OldroydBrazilIoni Bowcher QUALIFIED
Morrow S KuskoCanadaAsiya Javayant RENEWAL
Ivar S BriddickGermanyIoni Bowcher UNQUALIFIED
Rodrigues A MacleadItalyAnna Fali PROPOSAL
Frozen Columns
Name
Stacey C Whobrey
Sinclair V Figeroa
Izzy L Morasca
Arvin G Paprocki
James P Maclead
Isabel Q Darakjy
Rodrigues D Rulapaugh
Maisha P Maclead
Alejandro O Bowley
Faith K Shinko
Leon I Slusarski
Mujtaba U Kusko
Clifford J Sergi
James F Figeroa
Claire I Whobrey
Isabel Z Inouye
Darci Q Figeroa
Stacey H Whobrey
Sinclair H Nestle
Aruna A Nicka
Francesco P Ruta
Smith G Paprocki
Cody H Darakjy
Kaitlin U Bowley
Maria L Waycott
Murillo H Iturbide
Julie J Glick
Antonio B Dilliard
Stacey O Butt
Ivar V Paprocki
Silvio B Butt
Munro T Malet
Francesco H Kusko
Jones B Flosi
Claire O Nicka
Claire J Iturbide
Costa M Malet
Emily H Perin
Maria G Albares
Julie Z Paprocki
Greenwood K Dilliard
Claire X Caldarera
Jones F Stockham
Jennifer R Inouye
Maria G Chui
Aruna T Vocelka
Leja U Nicka
Smith B Schemmer
Aruna R Ostrosky
Jeanfrancois N Gillian
IdCountryDate
1000Australia2025-05-26
1001Spain2025-05-25
1002Russia2025-05-28
1003United Kingdom2025-05-22
1004Brazil2025-05-27
1005France2025-06-05
1006United Kingdom2025-05-24
1007France2025-06-10
1008Spain2025-05-18
1009India2025-06-13
1010Germany2025-05-26
1011Canada2025-06-09
1012India2025-06-09
1013Russia2025-05-31
1014Australia2025-05-29
1015Italy2025-05-27
1016Italy2025-06-04
1017Canada2025-05-26
1018Brazil2025-06-15
1019Canada2025-05-17
1020Brazil2025-06-15
1021United Kingdom2025-05-31
1022Russia2025-05-22
1023France2025-05-23
1024Australia2025-06-15
1025India2025-06-12
1026United Kingdom2025-05-30
1027Japan2025-06-14
1028Australia2025-06-02
1029Germany2025-05-19
1030Japan2025-06-03
1031Russia2025-06-04
1032Germany2025-05-23
1033Spain2025-06-09
1034Argentina2025-06-14
1035United Kingdom2025-05-21
1036Spain2025-05-20
1037India2025-05-19
1038Spain2025-05-20
1039Russia2025-05-25
1040Italy2025-05-19
1041Germany2025-06-08
1042Argentina2025-05-20
1043Brazil2025-06-05
1044Brazil2025-06-01
1045Argentina2025-06-14
1046United Kingdom2025-05-20
1047Brazil2025-05-20
1048Argentina2025-06-08
1049Japan2025-06-14

On-Demand Data

NameIdCountryDate
Francesco M Flosi1000United Kingdom2025-05-25
Jones A Whobrey1001Brazil2025-06-03
Nicolas K Darakjy1002Germany2025-06-05
Adams A Kolmetz1003Germany2025-05-24
Tony V Morasca1004France2025-05-28
Alejandro W Perin1005Brazil2025-06-14
Adams V Gaucho1006Argentina2025-06-03
Adams B Wieser1007Germany2025-06-08
Rodrigues S Campain1008Canada2025-05-18
Darci H Schemmer1009United Kingdom2025-06-01
James J Dilliard1010Argentina2025-06-04
Sinclair U Figeroa1011Japan2025-05-21
Jones L Perin1012Italy2025-05-31
Francesco F Paprocki1013Spain2025-06-11
Aditya L Perin1014Argentina2025-05-18
Emily U Sergi1015Russia2025-05-27
Francesco W Perin1016Germany2025-06-12
Francesco G Sergi1017Germany2025-05-21
Costa W Gaucho1018Italy2025-05-22
Jeanfrancois N Ferencz1019Italy2025-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie L SchemmerAustraliaAnna Fali UNQUALIFIED
Octavia H GarufiCanadaIvan Magalhaes QUALIFIED
Ashley P CaudyJapanAnna Fali PROPOSAL
Sinclair T SaylorsSpainElwin Sharvill UNQUALIFIED
Julie A KolmetzSpainIvan Magalhaes QUALIFIED
Faith N KuskoCanadaStephen Shaw NEW
Stacey N AlbaresArgentinaBernardo Dominic RENEWAL
Wickens D WhobreyJapanAsiya Javayant PROPOSAL
Rodrigues E DarakjyFranceXuxue Feng QUALIFIED
Antonio O KuskoBrazilXuxue Feng UNQUALIFIED
Claire G FollerAustraliaAnna Fali UNQUALIFIED
Ricardo C WaycottJapanIoni Bowcher NEW
Juan S ChuiArgentinaIoni Bowcher QUALIFIED
Antonio V IturbideIndiaAsiya Javayant NEGOTIATION
Leja F StockhamFranceStephen Shaw QUALIFIED
Juan U CaudySpainBernardo Dominic QUALIFIED
Francesco B CampainRussiaAsiya Javayant NEGOTIATION
Rodrigues Z RimRussiaAsiya Javayant UNQUALIFIED
Rodrigues Q MaletJapanXuxue Feng UNQUALIFIED
Clifford D BowleyBrazilAnna Fali NEGOTIATION
Misaki D WhobreyUnited KingdomBernardo Dominic RENEWAL
Kadeem W BowleyUnited KingdomAnna Fali NEGOTIATION
Aika W WhobreyIndiaElwin Sharvill NEGOTIATION
Deepesh U CampainSpainElwin Sharvill QUALIFIED
Arvin U OldroydGermanyIoni Bowcher NEW
Leon P CaudyRussiaIoni Bowcher NEW
Clifford X RulapaughAustraliaAmy Elsner PROPOSAL
Maria G BologniaRussiaBernardo Dominic UNQUALIFIED
Mayumi H StockhamCanadaStephen Shaw NEGOTIATION
Arvin G WhobreyIndiaOnyama Limba UNQUALIFIED
Clifford L AmigonGermanyAmy Elsner QUALIFIED
Izzy W WaycottCanadaAnna Fali NEGOTIATION
Rodrigues F SaylorsArgentinaStephen Shaw UNQUALIFIED
Claire M MacleadRussiaStephen Shaw NEGOTIATION
Juan G GarufiArgentinaAsiya Javayant QUALIFIED
Alejandro J DilliardRussiaOnyama Limba RENEWAL
Izzy I FlosiSpainAmy Elsner UNQUALIFIED
Aruna V NestleAustraliaOnyama Limba QUALIFIED
Mujtaba I CampainAustraliaIoni Bowcher QUALIFIED
Izzy T RimFranceAsiya Javayant QUALIFIED

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