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
Darci H InouyeGermanyIvan Magalhaes NEW
Smith G SaylorsItalyIvan Magalhaes RENEWAL
Julie G VocelkaIndiaIoni Bowcher UNQUALIFIED
Emily S KuskoBrazilIoni Bowcher UNQUALIFIED
Jennifer N CaudyJapanBernardo Dominic RENEWAL
Octavia R GlickRussiaAmy Elsner QUALIFIED
Chavez I SaylorsAustraliaAmy Elsner NEGOTIATION
Johnson W AmigonAustraliaBernardo Dominic NEGOTIATION
Julie K InouyeSpainAnna Fali NEW
Rodrigues N GarufiIndiaAsiya Javayant NEW
Adams J RoysterItalyBernardo Dominic UNQUALIFIED
Ivar L ShinkoCanadaIoni Bowcher NEW
Maria P NickaBrazilIvan Magalhaes NEGOTIATION
Ivar V PerinRussiaIoni Bowcher PROPOSAL
Leja Y RulapaughBrazilAnna Fali UNQUALIFIED
Claire Y NickaFranceIoni Bowcher QUALIFIED
Deepesh S AmigonAustraliaOnyama Limba NEGOTIATION
Ashley D ButtSpainElwin Sharvill UNQUALIFIED
Octavia P KuskoJapanAmy Elsner PROPOSAL
Alejandro A SchemmerIndiaAnna Fali NEW
Isabel X MaletSpainIoni Bowcher QUALIFIED
Kaitlin I TollnerItalyAmy Elsner PROPOSAL
Jeanfrancois G PoquetteBrazilIoni Bowcher NEGOTIATION
Tony N WaycottGermanyAnna Fali QUALIFIED
Kadeem B MorascaUnited KingdomElwin Sharvill PROPOSAL
Costa U SaylorsBrazilOnyama Limba UNQUALIFIED
Aika Q PaprockiFranceElwin Sharvill UNQUALIFIED
Maisha E AlbaresRussiaBernardo Dominic PROPOSAL
Misaki I KuskoSpainXuxue Feng QUALIFIED
Murillo L NickaJapanAsiya Javayant QUALIFIED
Izzy P RutaRussiaStephen Shaw NEW
Jeanfrancois X NickaArgentinaElwin Sharvill NEGOTIATION
Isabel F GlickCanadaIoni Bowcher RENEWAL
Smith J MarrierFranceXuxue Feng PROPOSAL
Aika O RulapaughFranceIoni Bowcher RENEWAL
Isabel W FollerAustraliaXuxue Feng NEW
Jeanfrancois Z OldroydIndiaAnna Fali UNQUALIFIED
Smith F FerenczItalyIvan Magalhaes NEGOTIATION
Claire U WhobreyBrazilAsiya Javayant RENEWAL
Jones C VenereCanadaAnna Fali UNQUALIFIED
Isabel L BowleyArgentinaIoni Bowcher PROPOSAL
Isabel R PoquetteCanadaXuxue Feng RENEWAL
Julie N OldroydGermanyElwin Sharvill UNQUALIFIED
Maria P SaylorsAustraliaXuxue Feng UNQUALIFIED
Aruna L ChuiItalyElwin Sharvill RENEWAL
Stacey Y SlusarskiFranceOnyama Limba QUALIFIED
Ashley X StensethGermanyXuxue Feng UNQUALIFIED
Sinclair L FigeroaBrazilIoni Bowcher NEW
Greenwood W InouyeItalyIvan Magalhaes UNQUALIFIED
Tony Y DilliardBrazilBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James T NestleIndiaStephen Shaw UNQUALIFIED
Jennifer B StensethRussiaAmy Elsner RENEWAL
Smith X StockhamJapanElwin Sharvill NEGOTIATION
Maria Y PaprockiBrazilIvan Magalhaes QUALIFIED
David H RulapaughJapanAmy Elsner PROPOSAL
Jones U MaletIndiaStephen Shaw QUALIFIED
Adams T KolmetzGermanyStephen Shaw QUALIFIED
Jefferson I PoquetteJapanIoni Bowcher RENEWAL
Tony L SergiGermanyStephen Shaw NEGOTIATION
Julie X ButtUnited KingdomStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Q PerinRussia2024-06-08Printing Dimensions QUALIFIED55Ioni Bowcher
1001Maria N GlickIndia2024-05-29Chanay, Jeffrey A Esq RENEWAL73Xuxue Feng
1002Emily C BologniaJapan2024-05-19King, Christopher A Esq NEGOTIATION39Xuxue Feng
1003Silvio R AlbaresSpain2024-05-20Feiner Bros UNQUALIFIED48Asiya Javayant
1004Greenwood H OldroydJapan2024-06-01Rangoni Of Florence NEW85Stephen Shaw
1005Ivar W NickaBrazil2024-05-21Dorl, James J Esq UNQUALIFIED42Bernardo Dominic
1006Jeanfrancois C MorascaUnited Kingdom2024-05-31Feiner Bros RENEWAL36Amy Elsner
1007Tony P PoquetteSpain2024-05-27Chanay, Jeffrey A Esq NEGOTIATION51Xuxue Feng
1008Antonio Y VocelkaArgentina2024-06-03Commercial Press UNQUALIFIED75Anna Fali
1009Faith R IturbideIndia2024-05-23Feiner Bros NEW25Onyama Limba
1010Aika T ShinkoGermany2024-05-23Rangoni Of Florence NEGOTIATION29Onyama Limba
1011Faith E GillianCanada2024-06-09Benton, John B Jr UNQUALIFIED44Bernardo Dominic
1012David M FerenczFrance2024-05-28Rangoni Of Florence PROPOSAL78Stephen Shaw
1013Jefferson N CaldareraJapan2024-05-20King, Christopher A Esq UNQUALIFIED17Amy Elsner
1014James S RimIndia2024-05-30Chemel, James L Cpa QUALIFIED68Xuxue Feng
1015Francesco V MarrierItaly2024-05-30Buckley Miller Wright NEGOTIATION81Stephen Shaw
1016Mayumi P SergiGermany2024-05-23Buckley Miller Wright RENEWAL2Onyama Limba
1017Greenwood O SergiAustralia2024-05-19Benton, John B Jr QUALIFIED81Anna Fali
1018Smith L BologniaCanada2024-06-01Feiner Bros NEW56Ioni Bowcher
1019Aruna G VenereUnited Kingdom2024-05-20Truhlar And Truhlar Attys RENEWAL92Asiya Javayant
1020Morrow E GlickArgentina2024-06-09Feiner Bros QUALIFIED19Xuxue Feng
1021Alejandro M BriddickSpain2024-05-27Buckley Miller Wright PROPOSAL21Ivan Magalhaes
1022Sinclair E MarrierGermany2024-05-24Printing Dimensions PROPOSAL7Amy Elsner
1023Aditya L DarakjyItaly2024-05-31Printing Dimensions RENEWAL36Onyama Limba
1024Kadeem R GillianArgentina2024-05-29Printing Dimensions NEW25Ioni Bowcher
1025Silvio S ButtIndia2024-05-22Chanay, Jeffrey A Esq RENEWAL90Amy Elsner
1026Ricardo L RulapaughGermany2024-05-31Commercial Press NEGOTIATION42Onyama Limba
1027Cody P PoquetteItaly2024-06-08Truhlar And Truhlar Attys NEGOTIATION63Bernardo Dominic
1028Mujtaba T CaudyIndia2024-05-19Feiner Bros PROPOSAL63Onyama Limba
1029Stacey F CampainCanada2024-05-23Morlong Associates RENEWAL17Bernardo Dominic
1030Jeanfrancois O MarrierJapan2024-06-15Chanay, Jeffrey A Esq RENEWAL36Ivan Magalhaes
1031Francesco D GlickRussia2024-06-07Rousseaux, Michael Esq NEW88Elwin Sharvill
1032Octavia Y SergiAustralia2024-05-21Chemel, James L Cpa UNQUALIFIED58Anna Fali
1033Juan R BowleyGermany2024-06-01Rousseaux, Michael Esq QUALIFIED4Xuxue Feng
1034Salvatore B InouyeBrazil2024-05-23Rangoni Of Florence QUALIFIED75Elwin Sharvill
1035Antonio Y CampainArgentina2024-05-30Benton, John B Jr UNQUALIFIED60Stephen Shaw
1036Juan O CaldareraArgentina2024-06-06Benton, John B Jr NEW52Bernardo Dominic
1037Jeanfrancois U MaletItaly2024-05-28King, Christopher A Esq NEW96Ivan Magalhaes
1038Nicolas K TollnerUnited Kingdom2024-05-25Feltz Printing Service PROPOSAL55Stephen Shaw
1039Julie V SaylorsUnited Kingdom2024-06-15Morlong Associates QUALIFIED72Amy Elsner
1040James C VenereRussia2024-05-27Dorl, James J Esq NEGOTIATION14Xuxue Feng
1041Claire E GarufiUnited Kingdom2024-06-16Feiner Bros RENEWAL8Ivan Magalhaes
1042Francesco C VenereFrance2024-05-26Commercial Press QUALIFIED63Ioni Bowcher
1043Ricardo B VenereCanada2024-05-24Feiner Bros NEGOTIATION98Elwin Sharvill
1044Salvatore B WieserBrazil2024-06-09Benton, John B Jr NEW67Bernardo Dominic
1045Isabel X DilliardJapan2024-06-15Benton, John B Jr NEW57Anna Fali
1046Antonio Z SergiCanada2024-05-29Printing Dimensions NEW99Ioni Bowcher
1047Kadeem L SergiRussia2024-05-27Dorl, James J Esq NEGOTIATION9Stephen Shaw
1048Leja Y NickaBrazil2024-06-03King, Christopher A Esq QUALIFIED43Ivan Magalhaes
1049David P WieserUnited Kingdom2024-05-20Buckley Miller Wright NEW95Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow N ShinkoRussiaIvan Magalhaes UNQUALIFIED
Antonio K VocelkaJapanIoni Bowcher NEGOTIATION
Aika G BologniaFranceOnyama Limba RENEWAL
Francesco H SergiAustraliaAnna Fali NEW
Munro N BologniaFranceXuxue Feng QUALIFIED
Aditya P MaletAustraliaIvan Magalhaes UNQUALIFIED
Aditya H DilliardFranceStephen Shaw NEW
Darci S PaprockiUnited KingdomIvan Magalhaes NEW
Faith M GillianArgentinaAnna Fali QUALIFIED
Julie V SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Chavez L NestleArgentinaStephen Shaw RENEWAL
Deepesh F VenereRussiaOnyama Limba PROPOSAL
Ivar P CaldareraItalyElwin Sharvill UNQUALIFIED
Arvin O StensethItalyStephen Shaw UNQUALIFIED
Jefferson N RulapaughGermanyBernardo Dominic NEW
Ashley V PoquetteAustraliaAnna Fali PROPOSAL
Rodrigues B MarrierAustraliaIoni Bowcher UNQUALIFIED
Rodrigues O CampainJapanBernardo Dominic NEW
Adams M RulapaughJapanAsiya Javayant PROPOSAL
Deepesh D NestleFranceOnyama Limba UNQUALIFIED
Juan I GlickRussiaElwin Sharvill RENEWAL
Ivar R DoeArgentinaIoni Bowcher NEW
Arvin N RutaBrazilBernardo Dominic PROPOSAL
Stacey E BologniaBrazilAsiya Javayant NEW
Izzy C NickaGermanyIoni Bowcher UNQUALIFIED
David D ButtBrazilStephen Shaw PROPOSAL
Ivar N StensethJapanXuxue Feng UNQUALIFIED
Juan H PaprockiBrazilIvan Magalhaes UNQUALIFIED
Rodrigues A RimItalyIvan Magalhaes RENEWAL
Darci P SaylorsFranceAmy Elsner NEW
Rodrigues E RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar H RutaBrazilStephen Shaw NEW
Leon A FollerRussiaStephen Shaw NEW
Julie A DoeJapanOnyama Limba NEGOTIATION
Rodrigues P WaycottBrazilAmy Elsner NEW
Izzy A ChuiBrazilAsiya Javayant RENEWAL
Nicolas O FlosiIndiaAnna Fali PROPOSAL
Greenwood W AlbaresItalyOnyama Limba QUALIFIED
Mujtaba C PaprockiIndiaIvan Magalhaes QUALIFIED
Francesco T FigeroaBrazilOnyama Limba PROPOSAL
Nicolas T KolmetzGermanyIoni Bowcher QUALIFIED
Maria D OstroskyIndiaElwin Sharvill RENEWAL
Ivar Q GarufiSpainAnna Fali RENEWAL
Clifford Q SlusarskiArgentinaAmy Elsner NEGOTIATION
Leja R MorascaArgentinaIvan Magalhaes NEW
Maria L PerinIndiaXuxue Feng QUALIFIED
Aika K MaletUnited KingdomAmy Elsner NEW
Jefferson C ShinkoRussiaXuxue Feng NEW
Kaitlin T RimArgentinaStephen Shaw NEW
Jennifer A RoysterIndiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Leja A Nestle
Chavez V Butt
Izzy L Kusko
Alejandro U Caudy
Mujtaba O Kusko
Silvio F Wieser
Maisha W Kolmetz
Nicolas R Marrier
Cody V Campain
Munro Y Rim
Jeanfrancois G Albares
Silvio U Ostrosky
Tony J Stockham
Leon Z Oldroyd
Maisha D Darakjy
Chavez X Ostrosky
Johnson T Ostrosky
Adams R Perin
Ricardo M Morasca
Aika C Caudy
Kadeem S Inouye
Salvatore Y Stockham
Ricardo H Whobrey
Arvin E Stenseth
Claire W Poquette
Jeanfrancois V Gaucho
Ricardo K Nestle
Mayumi P Oldroyd
Ricardo O Flosi
Emily M Tollner
Francesco C Ruta
Julie X Campain
Emily V Figeroa
David P Waycott
Cody U Amigon
Ashley T Kusko
Nicolas E Rim
Mujtaba E Bowley
Jefferson Y Garufi
Tony J Bolognia
Emily W Venere
Clifford O Bowley
Izzy Y Schemmer
Maisha J Rim
David E Sergi
Leon G Whobrey
Misaki Y Chui
Aika L Malet
Misaki Y Sergi
Arvin S Ostrosky
IdCountryDate
1000Spain2024-06-14
1001United Kingdom2024-06-11
1002Argentina2024-06-08
1003Spain2024-05-27
1004United Kingdom2024-05-25
1005Argentina2024-06-09
1006Germany2024-05-23
1007Japan2024-05-19
1008France2024-05-25
1009Canada2024-06-15
1010Italy2024-05-30
1011Germany2024-06-10
1012Argentina2024-05-28
1013Australia2024-05-18
1014India2024-06-08
1015Spain2024-05-31
1016Japan2024-05-22
1017Germany2024-06-06
1018Russia2024-06-02
1019Argentina2024-06-06
1020Italy2024-06-10
1021Brazil2024-06-07
1022Canada2024-06-07
1023India2024-06-08
1024Brazil2024-06-13
1025India2024-06-05
1026India2024-06-13
1027Spain2024-06-05
1028Japan2024-05-25
1029Canada2024-05-19
1030Canada2024-06-02
1031Brazil2024-06-01
1032Argentina2024-06-15
1033Canada2024-06-07
1034Australia2024-06-07
1035Italy2024-05-19
1036Germany2024-06-13
1037Australia2024-06-08
1038Argentina2024-06-06
1039India2024-06-13
1040France2024-05-21
1041France2024-05-31
1042Brazil2024-06-15
1043Brazil2024-06-10
1044Japan2024-05-24
1045Canada2024-05-22
1046Japan2024-05-22
1047Germany2024-05-24
1048Germany2024-06-15
1049Australia2024-06-14

On-Demand Data

NameIdCountryDate
Morrow G Tollner1000Germany2024-06-08
Stacey U Dilliard1001Spain2024-05-25
Morrow Y Chui1002Spain2024-06-12
Isabel W Poquette1003Argentina2024-05-18
Sinclair H Briddick1004Argentina2024-05-31
Adams O Poquette1005Argentina2024-05-22
Ivar G Bowley1006Argentina2024-06-02
Salvatore R Nicka1007Argentina2024-05-26
Ricardo L Kolmetz1008Italy2024-05-21
Faith G Bowley1009Canada2024-06-10
Rodrigues K Foller1010Japan2024-05-27
Adams M Venere1011Japan2024-06-06
Aditya B Waycott1012United Kingdom2024-06-03
Octavia B Flosi1013India2024-05-21
Greenwood W Malet1014Russia2024-06-06
Smith R Bolognia1015Canada2024-06-04
Costa P Foller1016Spain2024-06-15
Juan C Dilliard1017Argentina2024-06-08
Aika B Wieser1018Spain2024-05-30
Munro F Nestle1019Germany2024-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio E NestleItalyAsiya Javayant NEW
Arvin L WhobreyCanadaAsiya Javayant NEGOTIATION
Murillo R TollnerUnited KingdomAmy Elsner RENEWAL
Cody B MorascaRussiaBernardo Dominic RENEWAL
Jefferson Y KolmetzUnited KingdomStephen Shaw NEW
Costa F PaprockiAustraliaOnyama Limba PROPOSAL
Ricardo K GlickFranceStephen Shaw QUALIFIED
Smith N VenereItalyIvan Magalhaes PROPOSAL
Clifford W KolmetzUnited KingdomStephen Shaw RENEWAL
Jones J MaletArgentinaAmy Elsner QUALIFIED
Silvio B RimRussiaIvan Magalhaes NEW
Ashley Q RutaGermanyIoni Bowcher RENEWAL
Salvatore Q FlosiJapanXuxue Feng NEW
Emily E WaycottItalyAsiya Javayant RENEWAL
Stacey E FerenczJapanXuxue Feng UNQUALIFIED
Jones S MaletUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois Y InouyeJapanIvan Magalhaes PROPOSAL
Adams Y FollerIndiaStephen Shaw RENEWAL
Kadeem U VocelkaBrazilAmy Elsner NEGOTIATION
Clifford U OstroskyFranceBernardo Dominic QUALIFIED
Johnson S RoysterItalyAmy Elsner QUALIFIED
Aika A KuskoCanadaOnyama Limba NEW
Tony W RutaBrazilIoni Bowcher QUALIFIED
Kaitlin N CaudySpainAmy Elsner NEGOTIATION
David W SchemmerBrazilBernardo Dominic NEW
Clifford P BowleyGermanyBernardo Dominic UNQUALIFIED
Maisha Y IturbideFranceOnyama Limba NEW
Mayumi A RulapaughJapanStephen Shaw PROPOSAL
Chavez E WhobreyUnited KingdomStephen Shaw RENEWAL
Maria R PerinFranceIvan Magalhaes UNQUALIFIED
Kaitlin E InouyeBrazilOnyama Limba RENEWAL
Sinclair T StensethUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi Y SergiJapanOnyama Limba PROPOSAL
Chavez I CaldareraItalyAnna Fali NEGOTIATION
Costa E StockhamGermanyIoni Bowcher RENEWAL
Faith Y WieserCanadaAnna Fali QUALIFIED
Isabel I AmigonSpainAnna Fali PROPOSAL
Sinclair G BriddickItalyBernardo Dominic NEW
Salvatore W BowleyBrazilIoni Bowcher NEW
Alejandro U CaldareraIndiaBernardo Dominic 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>