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
Jeanfrancois M PerinRussiaOnyama Limba NEW
Francesco V DoeSpainAnna Fali PROPOSAL
James R PaprockiGermanyAmy Elsner NEGOTIATION
David J RimBrazilBernardo Dominic RENEWAL
Tony I KolmetzIndiaOnyama Limba RENEWAL
Izzy D StockhamBrazilElwin Sharvill NEGOTIATION
Antonio I MorascaUnited KingdomAsiya Javayant QUALIFIED
Antonio F ShinkoCanadaAsiya Javayant RENEWAL
Leon X VenereFranceXuxue Feng UNQUALIFIED
Leon S GauchoCanadaIoni Bowcher PROPOSAL
Darci Z ShinkoItalyIoni Bowcher QUALIFIED
Munro F RutaFranceAnna Fali NEGOTIATION
Salvatore E PoquetteRussiaXuxue Feng NEW
Nicolas I FerenczRussiaAmy Elsner RENEWAL
Leja E MaletCanadaBernardo Dominic RENEWAL
Jeanfrancois A PoquetteItalyBernardo Dominic NEGOTIATION
David Y DilliardAustraliaBernardo Dominic NEGOTIATION
Ricardo A VocelkaBrazilAsiya Javayant RENEWAL
Chavez C FollerSpainAsiya Javayant UNQUALIFIED
James G MaletGermanyAmy Elsner RENEWAL
Aditya R GillianUnited KingdomIvan Magalhaes QUALIFIED
Wickens C FigeroaBrazilIvan Magalhaes NEGOTIATION
Jennifer I PerinIndiaIoni Bowcher NEGOTIATION
Jennifer Y OldroydAustraliaOnyama Limba RENEWAL
Jennifer F GarufiCanadaIvan Magalhaes QUALIFIED
Isabel R MaletFranceAsiya Javayant PROPOSAL
Ashley T SchemmerUnited KingdomAnna Fali QUALIFIED
James S VenereAustraliaAmy Elsner NEW
Jefferson R MorascaItalyAmy Elsner NEW
Morrow W FerenczCanadaStephen Shaw NEW
Chavez H CaldareraItalyOnyama Limba PROPOSAL
Aditya P RimAustraliaAsiya Javayant RENEWAL
Ricardo V MarrierFranceIoni Bowcher QUALIFIED
Leon N RimArgentinaIvan Magalhaes PROPOSAL
Emily Z OldroydSpainOnyama Limba QUALIFIED
Adams K MacleadBrazilAsiya Javayant NEW
Alejandro Q VocelkaItalyOnyama Limba PROPOSAL
Emily P RimCanadaIoni Bowcher NEW
Deepesh N MaletItalyElwin Sharvill PROPOSAL
Aruna F FerenczCanadaIvan Magalhaes PROPOSAL
Costa C ButtIndiaOnyama Limba PROPOSAL
Clifford B VocelkaItalyIvan Magalhaes QUALIFIED
Deepesh L ShinkoArgentinaIoni Bowcher NEGOTIATION
Maria E ShinkoArgentinaAsiya Javayant UNQUALIFIED
Julie G DilliardCanadaAsiya Javayant PROPOSAL
Izzy J GauchoBrazilIvan Magalhaes QUALIFIED
Ivar W MarrierCanadaBernardo Dominic UNQUALIFIED
Jennifer Y AmigonGermanyOnyama Limba PROPOSAL
Cody D SchemmerAustraliaStephen Shaw RENEWAL
Sinclair C AmigonArgentinaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Tony W MaletArgentinaIvan Magalhaes RENEWAL
Antonio I FerenczAustraliaAmy Elsner NEW
Kadeem T FollerJapanBernardo Dominic NEW
Darci V InouyeAustraliaElwin Sharvill PROPOSAL
Nicolas X ChuiIndiaElwin Sharvill PROPOSAL
Cody A CaldareraIndiaAsiya Javayant UNQUALIFIED
Maisha X BologniaJapanOnyama Limba QUALIFIED
Nicolas L VocelkaFranceIoni Bowcher PROPOSAL
Aruna V DarakjySpainBernardo Dominic NEGOTIATION
Nicolas L SlusarskiItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones D PoquetteIndia2025-05-22Morlong Associates NEGOTIATION74Stephen Shaw
1001Ivar V SaylorsUnited Kingdom2025-05-20Chapman, Ross E Esq UNQUALIFIED40Ivan Magalhaes
1002Cody K ButtJapan2025-05-22Dorl, James J Esq RENEWAL92Xuxue Feng
1003Jones T MorascaArgentina2025-06-15Commercial Press PROPOSAL2Ioni Bowcher
1004Kadeem F AlbaresGermany2025-06-10Commercial Press RENEWAL92Bernardo Dominic
1005Ricardo M NickaAustralia2025-06-16Chapman, Ross E Esq UNQUALIFIED72Ivan Magalhaes
1006Misaki N GillianItaly2025-06-03Rangoni Of Florence NEGOTIATION43Xuxue Feng
1007Maria E InouyeBrazil2025-06-04Chanay, Jeffrey A Esq UNQUALIFIED6Ioni Bowcher
1008Chavez V OldroydUnited Kingdom2025-05-31Feltz Printing Service NEW47Anna Fali
1009Claire N GauchoGermany2025-06-03Dorl, James J Esq NEW53Amy Elsner
1010Maisha Q MaletArgentina2025-06-08Feltz Printing Service NEGOTIATION66Ioni Bowcher
1011Izzy Z FigeroaRussia2025-06-16Commercial Press NEGOTIATION23Anna Fali
1012Munro F ButtSpain2025-06-13Buckley Miller Wright QUALIFIED83Amy Elsner
1013Adams U BologniaItaly2025-06-08Dorl, James J Esq PROPOSAL66Bernardo Dominic
1014Ashley R GillianItaly2025-06-12Buckley Miller Wright QUALIFIED53Ivan Magalhaes
1015Jefferson I BriddickAustralia2025-05-24Commercial Press QUALIFIED30Stephen Shaw
1016David O NickaAustralia2025-06-05Chanay, Jeffrey A Esq UNQUALIFIED65Elwin Sharvill
1017Stacey J ChuiUnited Kingdom2025-06-01Rangoni Of Florence PROPOSAL46Onyama Limba
1018Faith Y DarakjyRussia2025-05-18Dorl, James J Esq QUALIFIED36Onyama Limba
1019Maisha L CaudySpain2025-06-05Chanay, Jeffrey A Esq NEW50Stephen Shaw
1020Ivar H NestleItaly2025-06-13Chapman, Ross E Esq QUALIFIED14Onyama Limba
1021Leon Q FerenczFrance2025-05-21King, Christopher A Esq QUALIFIED80Elwin Sharvill
1022David O BowleyGermany2025-06-05Benton, John B Jr UNQUALIFIED36Asiya Javayant
1023Munro I RutaFrance2025-05-25Morlong Associates NEW13Elwin Sharvill
1024Maisha G FollerUnited Kingdom2025-06-15Benton, John B Jr NEGOTIATION33Asiya Javayant
1025Stacey I VocelkaCanada2025-06-14Feltz Printing Service UNQUALIFIED9Elwin Sharvill
1026Jefferson W KolmetzGermany2025-05-25Buckley Miller Wright RENEWAL68Elwin Sharvill
1027Smith O StensethItaly2025-06-15King, Christopher A Esq QUALIFIED11Bernardo Dominic
1028Claire F FlosiItaly2025-05-24Truhlar And Truhlar Attys PROPOSAL46Stephen Shaw
1029Salvatore C WaycottItaly2025-06-09Truhlar And Truhlar Attys NEGOTIATION40Bernardo Dominic
1030Munro I BriddickArgentina2025-05-20Benton, John B Jr QUALIFIED93Onyama Limba
1031Jeanfrancois V MaletIndia2025-05-31King, Christopher A Esq UNQUALIFIED76Ioni Bowcher
1032Murillo K WhobreyFrance2025-05-30Printing Dimensions QUALIFIED48Ioni Bowcher
1033Kadeem P DoeGermany2025-06-09Morlong Associates RENEWAL25Elwin Sharvill
1034David O ChuiSpain2025-06-09Chemel, James L Cpa RENEWAL54Ivan Magalhaes
1035Juan A StockhamFrance2025-06-06Commercial Press RENEWAL98Onyama Limba
1036David B CaudyJapan2025-06-06Truhlar And Truhlar Attys RENEWAL38Ivan Magalhaes
1037Rodrigues K StockhamGermany2025-05-29Chemel, James L Cpa NEGOTIATION55Ivan Magalhaes
1038Adams D FollerUnited Kingdom2025-05-23Chemel, James L Cpa PROPOSAL97Stephen Shaw
1039Nicolas O StensethUnited Kingdom2025-05-25Feltz Printing Service NEW99Ivan Magalhaes
1040Sinclair N FigeroaAustralia2025-05-24Commercial Press QUALIFIED69Elwin Sharvill
1041Antonio P NickaGermany2025-05-31Rousseaux, Michael Esq QUALIFIED8Elwin Sharvill
1042Aruna P RimIndia2025-05-31Chemel, James L Cpa PROPOSAL40Elwin Sharvill
1043Adams C RoysterBrazil2025-06-11Feiner Bros UNQUALIFIED30Stephen Shaw
1044Nicolas E SergiCanada2025-06-08Dorl, James J Esq RENEWAL59Stephen Shaw
1045Sinclair U SergiFrance2025-05-19Rangoni Of Florence RENEWAL26Ivan Magalhaes
1046Darci E PoquetteGermany2025-06-02Buckley Miller Wright QUALIFIED18Anna Fali
1047Nicolas S FerenczFrance2025-05-23Feltz Printing Service RENEWAL32Bernardo Dominic
1048Wickens H GarufiCanada2025-05-31Buckley Miller Wright UNQUALIFIED9Xuxue Feng
1049Misaki B NickaItaly2025-06-15Commercial Press NEW91Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Chavez C WieserAustraliaElwin Sharvill RENEWAL
Antonio H PaprockiRussiaStephen Shaw NEW
Izzy D MaletCanadaOnyama Limba UNQUALIFIED
Sinclair Q WaycottFranceOnyama Limba NEGOTIATION
Faith Y MaletGermanyOnyama Limba RENEWAL
Jones F DarakjyAustraliaStephen Shaw UNQUALIFIED
James U GauchoGermanyAmy Elsner UNQUALIFIED
Wickens L FerenczItalyBernardo Dominic NEGOTIATION
Chavez V ChuiSpainIvan Magalhaes UNQUALIFIED
Adams Z FerenczUnited KingdomOnyama Limba PROPOSAL
Silvio H VocelkaSpainAmy Elsner NEGOTIATION
Murillo Q GauchoArgentinaIoni Bowcher UNQUALIFIED
Faith T MaletCanadaBernardo Dominic PROPOSAL
Costa C SlusarskiCanadaXuxue Feng UNQUALIFIED
Octavia G BowleyAustraliaAnna Fali QUALIFIED
Octavia X InouyeGermanyXuxue Feng UNQUALIFIED
Mayumi Z MorascaJapanElwin Sharvill NEGOTIATION
Ashley B CampainSpainAsiya Javayant RENEWAL
Johnson Z AmigonIndiaStephen Shaw NEW
Darci P DilliardFranceBernardo Dominic PROPOSAL
Wickens T KuskoBrazilIoni Bowcher NEGOTIATION
James R RutaCanadaIoni Bowcher RENEWAL
Costa R PerinBrazilElwin Sharvill NEGOTIATION
Johnson P FlosiArgentinaIvan Magalhaes PROPOSAL
Salvatore D ButtRussiaIoni Bowcher UNQUALIFIED
Claire M PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Silvio O GillianItalyAmy Elsner RENEWAL
Octavia J OstroskyIndiaAsiya Javayant NEW
Juan G ButtArgentinaElwin Sharvill QUALIFIED
Ivar Y WaycottBrazilIoni Bowcher UNQUALIFIED
Emily I ChuiArgentinaOnyama Limba PROPOSAL
Emily U OldroydIndiaAsiya Javayant NEGOTIATION
Deepesh Y DarakjyRussiaBernardo Dominic NEW
Jefferson X GarufiUnited KingdomIoni Bowcher NEW
Costa N MarrierUnited KingdomAmy Elsner NEW
James Y DarakjySpainAnna Fali NEGOTIATION
Maisha H StockhamUnited KingdomElwin Sharvill QUALIFIED
Jones D OldroydCanadaAmy Elsner UNQUALIFIED
Rodrigues R CampainIndiaAnna Fali QUALIFIED
Kaitlin S OldroydJapanXuxue Feng NEW
Costa L AlbaresArgentinaStephen Shaw RENEWAL
Julie D RulapaughBrazilIvan Magalhaes RENEWAL
Antonio J NickaItalyElwin Sharvill NEGOTIATION
Emily Q DarakjyCanadaXuxue Feng QUALIFIED
Nicolas R SlusarskiGermanyXuxue Feng UNQUALIFIED
Smith G GlickItalyOnyama Limba QUALIFIED
Salvatore V TollnerGermanyElwin Sharvill NEW
Izzy H RimArgentinaXuxue Feng RENEWAL
James T FollerRussiaBernardo Dominic UNQUALIFIED
Clifford S PerinUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Sinclair X Venere
Faith Q Malet
Rodrigues F Doe
Munro L Bolognia
Misaki F Nicka
Antonio X Butt
Stacey W Saylors
Juan T Poquette
Cody N Nestle
Wickens T Ferencz
Chavez G Kusko
Claire O Shinko
Chavez F Gaucho
James G Stenseth
Mujtaba H Foller
Morrow S Wieser
Jeanfrancois E Malet
Cody A Schemmer
Mayumi D Vocelka
Munro F Figeroa
James R Stockham
Misaki R Kolmetz
Julie W Marrier
Alejandro U Flosi
Izzy Y Garufi
Silvio H Butt
Arvin X Doe
Jennifer A Dilliard
Jennifer E Campain
Jefferson Y Gaucho
Misaki Y Dilliard
Ashley C Darakjy
Wickens Q Glick
Cody B Briddick
Ivar Z Gaucho
Morrow H Vocelka
Salvatore G Rim
Darci R Whobrey
Maria V Albares
Tony N Foller
Julie O Shinko
Jennifer O Whobrey
Francesco H Ostrosky
Maria G Briddick
Adams O Gaucho
Maisha G Flosi
Kadeem U Flosi
Costa O Saylors
Octavia N Nestle
Faith M Royster
IdCountryDate
1000Canada2025-06-10
1001Brazil2025-06-05
1002Spain2025-05-24
1003Russia2025-06-12
1004United Kingdom2025-06-10
1005India2025-05-24
1006Germany2025-06-13
1007Italy2025-06-09
1008France2025-06-15
1009Argentina2025-05-28
1010Australia2025-05-20
1011India2025-06-13
1012Argentina2025-05-29
1013Australia2025-05-24
1014France2025-05-29
1015Russia2025-05-21
1016Australia2025-05-20
1017Japan2025-05-29
1018Japan2025-05-20
1019India2025-06-14
1020Germany2025-06-08
1021Japan2025-05-18
1022Argentina2025-05-29
1023Argentina2025-06-04
1024Argentina2025-06-05
1025Brazil2025-05-23
1026Argentina2025-05-20
1027Russia2025-05-19
1028Argentina2025-05-23
1029United Kingdom2025-06-10
1030Brazil2025-06-09
1031Australia2025-05-19
1032Spain2025-05-19
1033Spain2025-05-19
1034Japan2025-06-16
1035Germany2025-06-07
1036Russia2025-05-18
1037Spain2025-06-11
1038Italy2025-05-23
1039India2025-05-25
1040Australia2025-05-30
1041Italy2025-06-10
1042Australia2025-05-29
1043Italy2025-05-27
1044Russia2025-06-05
1045France2025-06-07
1046Russia2025-06-10
1047Canada2025-06-09
1048Canada2025-05-31
1049Brazil2025-06-06

On-Demand Data

NameIdCountryDate
Costa W Sergi1000India2025-06-14
Nicolas I Briddick1001Spain2025-05-31
Morrow K Albares1002Italy2025-05-24
Arvin I Nestle1003United Kingdom2025-05-22
Silvio U Sergi1004Japan2025-05-21
Juan E Sergi1005Brazil2025-06-09
Morrow M Marrier1006Argentina2025-05-30
Deepesh L Glick1007Germany2025-06-05
Claire E Briddick1008Canada2025-05-28
Faith K Gaucho1009Russia2025-06-10
Rodrigues N Paprocki1010Italy2025-05-23
Misaki D Rim1011Australia2025-06-14
Darci N Maclead1012Spain2025-05-28
Ricardo R Venere1013Spain2025-05-26
Julie J Amigon1014Italy2025-05-26
Cody O Whobrey1015Italy2025-06-05
Deepesh Z Briddick1016France2025-05-24
Claire C Rulapaugh1017France2025-06-06
Deepesh F Nicka1018Germany2025-06-04
Misaki V Bolognia1019Japan2025-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo P FigeroaRussiaAsiya Javayant UNQUALIFIED
Claire G BowleyUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois Q OstroskyBrazilAmy Elsner QUALIFIED
Ashley Z RoysterCanadaIoni Bowcher UNQUALIFIED
Darci D DarakjyItalyIoni Bowcher QUALIFIED
Silvio H MaletJapanElwin Sharvill RENEWAL
Aruna D RoysterArgentinaAsiya Javayant NEGOTIATION
Chavez C StockhamAustraliaStephen Shaw QUALIFIED
Aruna W DarakjyItalyOnyama Limba UNQUALIFIED
Mayumi Y GlickUnited KingdomIoni Bowcher NEW
Juan Z CaudyArgentinaAnna Fali PROPOSAL
Wickens Y VenereGermanyXuxue Feng RENEWAL
Smith Y OldroydIndiaXuxue Feng NEGOTIATION
Julie L StockhamCanadaIvan Magalhaes RENEWAL
Isabel N MacleadJapanXuxue Feng NEGOTIATION
Stacey R CaudyIndiaAmy Elsner RENEWAL
Smith L ChuiCanadaStephen Shaw QUALIFIED
Ivar P VenereCanadaOnyama Limba PROPOSAL
Izzy E NickaItalyIoni Bowcher NEW
Tony U FlosiJapanStephen Shaw RENEWAL
Jennifer L StensethUnited KingdomXuxue Feng PROPOSAL
Cody O VenereArgentinaBernardo Dominic PROPOSAL
Arvin D SlusarskiFranceXuxue Feng NEW
Aruna A CampainArgentinaAsiya Javayant PROPOSAL
Faith W WieserArgentinaStephen Shaw UNQUALIFIED
Maria J SergiFranceElwin Sharvill NEW
Smith S BriddickArgentinaIoni Bowcher PROPOSAL
Mujtaba S WhobreyBrazilAnna Fali QUALIFIED
Francesco E FollerIndiaXuxue Feng NEGOTIATION
Misaki O MarrierBrazilAnna Fali NEGOTIATION
Kaitlin V MaletItalyXuxue Feng NEW
Izzy V DarakjySpainAsiya Javayant QUALIFIED
Munro E SlusarskiRussiaAnna Fali UNQUALIFIED
David N WaycottBrazilElwin Sharvill RENEWAL
Jeanfrancois E VocelkaCanadaElwin Sharvill QUALIFIED
Faith W SaylorsArgentinaAsiya Javayant QUALIFIED
Jefferson W DilliardGermanyXuxue Feng NEW
Smith R PerinSpainXuxue Feng QUALIFIED
Jeanfrancois G SaylorsIndiaStephen Shaw QUALIFIED
Silvio P SchemmerIndiaStephen Shaw 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>