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
Misaki C GauchoRussiaXuxue Feng UNQUALIFIED
Sinclair C WhobreyGermanyAnna Fali NEGOTIATION
Aruna Z RimUnited KingdomXuxue Feng UNQUALIFIED
Juan N MorascaJapanAnna Fali RENEWAL
Darci F StockhamArgentinaAsiya Javayant PROPOSAL
Mayumi G OldroydCanadaIvan Magalhaes NEW
Adams L MaletArgentinaOnyama Limba UNQUALIFIED
Maria T MaletSpainOnyama Limba UNQUALIFIED
Murillo U AmigonCanadaStephen Shaw NEGOTIATION
Leja T FollerArgentinaIvan Magalhaes NEGOTIATION
Morrow C NickaAustraliaAmy Elsner RENEWAL
Tony U FigeroaCanadaXuxue Feng NEW
Claire S FigeroaGermanyStephen Shaw QUALIFIED
Stacey X PerinIndiaBernardo Dominic NEW
Maria I FollerIndiaXuxue Feng UNQUALIFIED
Jeanfrancois B CaudyBrazilStephen Shaw NEW
Munro Q AmigonAustraliaAsiya Javayant QUALIFIED
Mayumi S PoquetteCanadaBernardo Dominic RENEWAL
Faith X InouyeJapanIoni Bowcher RENEWAL
Munro U WieserSpainBernardo Dominic PROPOSAL
Ivar N IturbideUnited KingdomBernardo Dominic QUALIFIED
Faith F PaprockiGermanyAnna Fali NEGOTIATION
Aruna K GillianUnited KingdomOnyama Limba UNQUALIFIED
Arvin X VenereFranceXuxue Feng NEGOTIATION
Smith U MorascaBrazilStephen Shaw QUALIFIED
Alejandro S ButtSpainBernardo Dominic NEW
Deepesh A BowleyIndiaBernardo Dominic NEW
Jennifer N AlbaresAustraliaAsiya Javayant UNQUALIFIED
Greenwood L WieserBrazilOnyama Limba UNQUALIFIED
Alejandro H RulapaughIndiaAmy Elsner PROPOSAL
Emily J DoeGermanyOnyama Limba NEW
Morrow C VenereIndiaIoni Bowcher NEGOTIATION
Morrow W SchemmerSpainBernardo Dominic RENEWAL
Chavez I GauchoSpainAnna Fali NEGOTIATION
Leja J WhobreyArgentinaElwin Sharvill RENEWAL
Kaitlin D MaletCanadaStephen Shaw UNQUALIFIED
Isabel K KuskoJapanAnna Fali NEW
Smith L PerinIndiaStephen Shaw PROPOSAL
Izzy C RulapaughCanadaAsiya Javayant NEGOTIATION
Mujtaba E SaylorsFranceBernardo Dominic PROPOSAL
Mayumi X CampainBrazilIvan Magalhaes UNQUALIFIED
Chavez Q RutaUnited KingdomBernardo Dominic RENEWAL
Munro V BologniaJapanStephen Shaw RENEWAL
Leon P RutaAustraliaAsiya Javayant RENEWAL
Ivar G CaldareraSpainOnyama Limba UNQUALIFIED
Adams S RutaRussiaXuxue Feng NEW
Nicolas M GillianCanadaIvan Magalhaes NEW
Morrow R FigeroaRussiaIoni Bowcher PROPOSAL
Smith T CaldareraJapanAsiya Javayant PROPOSAL
Francesco S MaletBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James C InouyeFranceIoni Bowcher PROPOSAL
Claire X BriddickFranceStephen Shaw QUALIFIED
Mujtaba J RulapaughCanadaBernardo Dominic NEGOTIATION
Mujtaba A MaletItalyOnyama Limba QUALIFIED
Salvatore L MacleadIndiaXuxue Feng PROPOSAL
Clifford T RulapaughBrazilBernardo Dominic RENEWAL
Cody C PaprockiRussiaIvan Magalhaes NEGOTIATION
Tony M OldroydAustraliaAmy Elsner PROPOSAL
Costa T SergiUnited KingdomBernardo Dominic NEW
Emily R VocelkaCanadaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio W StockhamGermany2024-05-23Rousseaux, Michael Esq NEW63Onyama Limba
1001Aika S MaletAustralia2024-06-09Chemel, James L Cpa QUALIFIED22Asiya Javayant
1002Clifford K WhobreyUnited Kingdom2024-05-21Rangoni Of Florence QUALIFIED32Amy Elsner
1003Chavez E VenereItaly2024-06-09Rousseaux, Michael Esq PROPOSAL39Bernardo Dominic
1004Alejandro E WaycottCanada2024-05-27Commercial Press NEW31Anna Fali
1005Tony Q MaletSpain2024-05-28Buckley Miller Wright QUALIFIED16Ivan Magalhaes
1006Johnson R MarrierSpain2024-06-13Chapman, Ross E Esq NEGOTIATION78Elwin Sharvill
1007Silvio I InouyeArgentina2024-06-09Chemel, James L Cpa NEGOTIATION13Elwin Sharvill
1008Sinclair O PaprockiUnited Kingdom2024-05-19Commercial Press NEW49Amy Elsner
1009Adams S GillianFrance2024-06-05King, Christopher A Esq NEGOTIATION27Ivan Magalhaes
1010Ivar K MarrierIndia2024-05-23Chanay, Jeffrey A Esq NEW8Xuxue Feng
1011Cody J StockhamItaly2024-06-12Chanay, Jeffrey A Esq RENEWAL8Ioni Bowcher
1012Antonio Y GauchoItaly2024-05-25Buckley Miller Wright NEGOTIATION3Amy Elsner
1013Smith I SergiArgentina2024-05-24Commercial Press NEW28Elwin Sharvill
1014Aruna J BowleyFrance2024-06-16Buckley Miller Wright QUALIFIED81Anna Fali
1015Sinclair X AmigonBrazil2024-05-21Truhlar And Truhlar Attys QUALIFIED24Bernardo Dominic
1016Mayumi D RutaArgentina2024-06-14Rousseaux, Michael Esq RENEWAL87Elwin Sharvill
1017Maisha J MaletBrazil2024-06-08Morlong Associates NEGOTIATION46Ioni Bowcher
1018Isabel O StockhamRussia2024-06-12Rangoni Of Florence RENEWAL50Onyama Limba
1019Ivar P NickaIndia2024-05-19Rousseaux, Michael Esq PROPOSAL91Anna Fali
1020Smith W KuskoAustralia2024-06-03Morlong Associates QUALIFIED53Ioni Bowcher
1021Leon J NickaItaly2024-06-02Truhlar And Truhlar Attys NEW49Anna Fali
1022Izzy K VenereUnited Kingdom2024-06-06King, Christopher A Esq QUALIFIED43Anna Fali
1023Rodrigues Q InouyeBrazil2024-06-03Rousseaux, Michael Esq PROPOSAL62Bernardo Dominic
1024Clifford E CampainFrance2024-06-04Morlong Associates QUALIFIED60Amy Elsner
1025Francesco K SlusarskiFrance2024-05-20Chanay, Jeffrey A Esq RENEWAL97Ivan Magalhaes
1026Claire F DilliardAustralia2024-06-09Benton, John B Jr QUALIFIED87Bernardo Dominic
1027Salvatore D DarakjyUnited Kingdom2024-06-04Morlong Associates RENEWAL77Asiya Javayant
1028Ricardo G GauchoFrance2024-05-31Dorl, James J Esq QUALIFIED13Stephen Shaw
1029Kadeem G FerenczItaly2024-06-13Morlong Associates PROPOSAL30Asiya Javayant
1030Salvatore O VenereGermany2024-06-06Printing Dimensions PROPOSAL12Elwin Sharvill
1031Clifford C GarufiItaly2024-05-27Dorl, James J Esq RENEWAL27Anna Fali
1032Misaki M FerenczIndia2024-05-29Truhlar And Truhlar Attys NEW50Elwin Sharvill
1033Aditya V GauchoGermany2024-05-22Printing Dimensions UNQUALIFIED21Amy Elsner
1034Jeanfrancois P PaprockiGermany2024-05-31Dorl, James J Esq NEGOTIATION53Stephen Shaw
1035Jennifer J DoeSpain2024-06-06Chanay, Jeffrey A Esq UNQUALIFIED82Anna Fali
1036Johnson V CaldareraAustralia2024-05-21Rangoni Of Florence NEW55Anna Fali
1037Aika H CaldareraGermany2024-05-26Chanay, Jeffrey A Esq UNQUALIFIED37Ivan Magalhaes
1038Francesco X CampainGermany2024-06-16Benton, John B Jr NEGOTIATION52Amy Elsner
1039Johnson L VocelkaSpain2024-05-26Rangoni Of Florence PROPOSAL40Asiya Javayant
1040Aruna D FlosiAustralia2024-05-23Buckley Miller Wright NEGOTIATION14Onyama Limba
1041Adams V DoeAustralia2024-06-06Benton, John B Jr NEW23Onyama Limba
1042Mujtaba A MaletSpain2024-06-08Rangoni Of Florence UNQUALIFIED51Amy Elsner
1043Isabel N AlbaresSpain2024-06-03King, Christopher A Esq NEGOTIATION79Bernardo Dominic
1044Emily X SchemmerAustralia2024-06-17Printing Dimensions PROPOSAL98Bernardo Dominic
1045Mayumi P GillianJapan2024-06-04Feltz Printing Service PROPOSAL83Asiya Javayant
1046Juan R NestleIndia2024-06-11Printing Dimensions NEW54Onyama Limba
1047Sinclair I DarakjyRussia2024-05-26King, Christopher A Esq UNQUALIFIED73Xuxue Feng
1048Nicolas I GillianItaly2024-06-07Rousseaux, Michael Esq UNQUALIFIED7Bernardo Dominic
1049Munro K ButtJapan2024-05-19Feltz Printing Service NEGOTIATION53Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aruna G RutaSpainBernardo Dominic RENEWAL
Ivar K MacleadJapanIvan Magalhaes UNQUALIFIED
Deepesh Y OldroydBrazilAmy Elsner UNQUALIFIED
Johnson M SergiGermanyAmy Elsner RENEWAL
Salvatore P MaletItalyXuxue Feng NEGOTIATION
Jones D CampainFranceIoni Bowcher QUALIFIED
Jennifer S AmigonIndiaElwin Sharvill RENEWAL
Stacey N DilliardBrazilStephen Shaw UNQUALIFIED
Chavez F GillianAustraliaStephen Shaw NEW
Jones K CaldareraJapanIvan Magalhaes PROPOSAL
Alejandro D DarakjyGermanyXuxue Feng RENEWAL
Jefferson Y MaletItalyAnna Fali QUALIFIED
Ricardo C AmigonIndiaIoni Bowcher UNQUALIFIED
Francesco C CampainAustraliaStephen Shaw NEW
Morrow B SaylorsArgentinaAmy Elsner NEGOTIATION
Julie X GillianSpainAsiya Javayant RENEWAL
Octavia T RulapaughItalyBernardo Dominic QUALIFIED
Ashley N ChuiFranceIoni Bowcher NEW
Leja Q GarufiAustraliaStephen Shaw RENEWAL
Aika D BriddickIndiaAmy Elsner NEGOTIATION
Munro L PoquetteIndiaStephen Shaw PROPOSAL
Juan A MacleadAustraliaXuxue Feng QUALIFIED
Johnson R GlickCanadaIvan Magalhaes RENEWAL
Jennifer F StensethBrazilAmy Elsner PROPOSAL
Maria P VocelkaGermanyStephen Shaw QUALIFIED
Jefferson U BologniaJapanElwin Sharvill RENEWAL
Aruna V RulapaughGermanyAnna Fali RENEWAL
Chavez O BologniaAustraliaAsiya Javayant NEGOTIATION
Emily Y GarufiFranceAsiya Javayant RENEWAL
Salvatore A MarrierSpainIoni Bowcher QUALIFIED
Jeanfrancois I IturbideAustraliaStephen Shaw NEGOTIATION
Rodrigues B NestleFranceElwin Sharvill PROPOSAL
Costa N PaprockiAustraliaAnna Fali QUALIFIED
Francesco Q SchemmerIndiaBernardo Dominic PROPOSAL
Ivar I SaylorsItalyStephen Shaw NEGOTIATION
James A CampainGermanyAnna Fali RENEWAL
Clifford C TollnerJapanAsiya Javayant UNQUALIFIED
Francesco O DarakjyGermanyIoni Bowcher QUALIFIED
Chavez W KolmetzGermanyElwin Sharvill NEW
David W MaletSpainIoni Bowcher UNQUALIFIED
Maria G CaldareraIndiaAmy Elsner PROPOSAL
Ashley O SergiGermanyAnna Fali UNQUALIFIED
Kaitlin U FlosiArgentinaAsiya Javayant PROPOSAL
Antonio L ButtSpainIvan Magalhaes QUALIFIED
Faith G StockhamJapanAsiya Javayant QUALIFIED
Jefferson J RulapaughBrazilOnyama Limba PROPOSAL
Tony Q NickaUnited KingdomIoni Bowcher NEW
Jennifer G SlusarskiFranceElwin Sharvill RENEWAL
Mujtaba V StensethArgentinaAnna Fali QUALIFIED
Antonio D ButtAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Leon O Doe
Antonio K Poquette
Munro Q Venere
Maria C Nestle
Nicolas B Caldarera
Claire M Sergi
Greenwood L Albares
Deepesh Q Whobrey
Jennifer E Marrier
Francesco E Briddick
Aruna D Slusarski
Murillo B Bolognia
Silvio B Schemmer
Aruna S Malet
Ricardo S Flosi
Emily F Perin
Maisha C Schemmer
Jeanfrancois M Bowley
Maria A Nicka
Salvatore R Briddick
Mayumi P Slusarski
Stacey S Briddick
Chavez Q Nicka
Ashley X Figeroa
Deepesh F Shinko
Stacey N Figeroa
Silvio W Tollner
Alejandro E Glick
Isabel G Darakjy
Alejandro Q Garufi
Leon Y Butt
Tony R Tollner
Aruna O Nicka
Silvio J Bolognia
Kadeem C Butt
Claire K Dilliard
Mayumi K Wieser
Adams D Morasca
Darci B Bolognia
Juan D Butt
Wickens Z Butt
Emily T Iturbide
Aditya H Oldroyd
Kadeem C Briddick
Jefferson Z Campain
Francesco B Venere
Arvin Q Royster
Murillo W Marrier
Smith P Maclead
Maisha P Wieser
IdCountryDate
1000Russia2024-06-13
1001Australia2024-05-20
1002Russia2024-06-05
1003Brazil2024-06-13
1004Argentina2024-06-09
1005France2024-06-09
1006Japan2024-06-06
1007Brazil2024-05-30
1008Canada2024-06-04
1009Canada2024-06-02
1010Brazil2024-06-03
1011Italy2024-05-21
1012Japan2024-06-13
1013Japan2024-06-17
1014Argentina2024-05-28
1015Italy2024-06-12
1016Japan2024-06-12
1017Canada2024-05-23
1018Australia2024-05-30
1019Brazil2024-06-12
1020Spain2024-06-03
1021India2024-05-29
1022Russia2024-06-16
1023Japan2024-05-31
1024Italy2024-05-20
1025Germany2024-06-16
1026Australia2024-06-03
1027Spain2024-06-16
1028Argentina2024-05-19
1029United Kingdom2024-06-04
1030Canada2024-06-16
1031Argentina2024-05-25
1032Germany2024-05-19
1033Brazil2024-06-14
1034Germany2024-06-16
1035United Kingdom2024-05-28
1036Italy2024-05-20
1037India2024-06-04
1038France2024-06-11
1039India2024-06-07
1040Italy2024-05-28
1041France2024-05-29
1042Italy2024-06-06
1043Canada2024-05-24
1044Brazil2024-05-28
1045United Kingdom2024-06-11
1046Brazil2024-05-25
1047Canada2024-06-06
1048India2024-06-06
1049United Kingdom2024-06-11

On-Demand Data

NameIdCountryDate
Stacey M Garufi1000India2024-06-09
Aika I Oldroyd1001Spain2024-06-06
Munro K Tollner1002Spain2024-06-05
Darci T Glick1003Spain2024-06-13
Johnson L Stenseth1004Italy2024-06-06
Smith B Garufi1005Italy2024-06-14
Darci G Venere1006Germany2024-05-22
Mayumi L Vocelka1007Canada2024-05-24
Clifford I Venere1008Japan2024-06-03
Kaitlin K Campain1009Argentina2024-06-07
Julie U Glick1010India2024-06-12
Rodrigues Q Albares1011Italy2024-05-26
Silvio D Nicka1012Brazil2024-06-13
Darci E Rim1013India2024-06-12
Clifford O Venere1014Germany2024-06-03
Julie T Paprocki1015Brazil2024-06-17
Antonio X Tollner1016India2024-06-10
Octavia Y Royster1017India2024-05-20
Kadeem B Rulapaugh1018Argentina2024-05-28
Octavia F Kolmetz1019Brazil2024-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro Z CaudyAustraliaAnna Fali QUALIFIED
Kadeem B VenereIndiaStephen Shaw NEGOTIATION
Aruna Y RutaFranceAsiya Javayant RENEWAL
Jones V ShinkoSpainOnyama Limba UNQUALIFIED
Stacey V WhobreyArgentinaAnna Fali UNQUALIFIED
Aditya Z NestleArgentinaIvan Magalhaes NEGOTIATION
David F GauchoJapanAmy Elsner NEGOTIATION
Ashley J MaletUnited KingdomOnyama Limba NEW
Antonio R SchemmerUnited KingdomOnyama Limba NEW
Leja V DoeArgentinaOnyama Limba NEW
Silvio H GarufiCanadaOnyama Limba NEW
Sinclair C VocelkaSpainAsiya Javayant RENEWAL
Murillo J PaprockiSpainAsiya Javayant UNQUALIFIED
Ashley I CaldareraAustraliaIvan Magalhaes NEW
Maisha X NickaAustraliaOnyama Limba NEGOTIATION
Kadeem A RimArgentinaXuxue Feng RENEWAL
Leon P PerinRussiaXuxue Feng UNQUALIFIED
Ashley J FollerUnited KingdomOnyama Limba PROPOSAL
Mayumi K MaletGermanyElwin Sharvill RENEWAL
Misaki Z NickaAustraliaXuxue Feng UNQUALIFIED
Kadeem T GillianFranceAnna Fali NEW
Salvatore J WaycottUnited KingdomIvan Magalhaes PROPOSAL
Juan K KolmetzFranceAmy Elsner NEGOTIATION
Antonio M PaprockiGermanyAmy Elsner NEW
Silvio K CaudyBrazilStephen Shaw RENEWAL
Smith K DoeIndiaOnyama Limba UNQUALIFIED
Mayumi Y WhobreyBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois U SaylorsFranceElwin Sharvill UNQUALIFIED
Jefferson R FigeroaUnited KingdomBernardo Dominic NEW
Sinclair W OldroydBrazilAnna Fali NEW
Costa U PoquetteUnited KingdomIoni Bowcher RENEWAL
Ricardo I SergiIndiaXuxue Feng NEW
Tony L PerinFranceAsiya Javayant RENEWAL
Ricardo G CaudyRussiaAsiya Javayant PROPOSAL
Julie D BologniaJapanOnyama Limba QUALIFIED
Jennifer K ShinkoRussiaAmy Elsner RENEWAL
Kaitlin E MaletAustraliaAnna Fali QUALIFIED
Tony P DarakjyBrazilAmy Elsner NEGOTIATION
Deepesh E KuskoGermanyStephen Shaw QUALIFIED
Aika P FollerRussiaAsiya 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>