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
Kaitlin N MarrierBrazilStephen Shaw NEW
Cody Y CaldareraSpainAsiya Javayant NEGOTIATION
Ivar C SchemmerFranceAnna Fali NEGOTIATION
Costa V SlusarskiJapanIvan Magalhaes NEW
Darci M VenereAustraliaAnna Fali NEW
Smith X RulapaughBrazilAmy Elsner UNQUALIFIED
Jones J PaprockiSpainElwin Sharvill NEGOTIATION
Julie Y ChuiCanadaOnyama Limba QUALIFIED
Darci I CaudyRussiaAmy Elsner RENEWAL
Aditya P BriddickUnited KingdomAsiya Javayant QUALIFIED
Clifford N SchemmerGermanyOnyama Limba QUALIFIED
Smith P FerenczBrazilOnyama Limba RENEWAL
Jefferson C GillianItalyBernardo Dominic RENEWAL
Misaki P DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Leja A InouyeItalyIoni Bowcher NEW
Maisha W MaletItalyAmy Elsner UNQUALIFIED
Maisha W GlickCanadaAmy Elsner PROPOSAL
David Z BriddickRussiaIoni Bowcher PROPOSAL
Deepesh Y BologniaAustraliaAmy Elsner RENEWAL
Claire Q PaprockiJapanElwin Sharvill RENEWAL
Deepesh Q DarakjyBrazilBernardo Dominic RENEWAL
Alejandro A DilliardGermanyXuxue Feng NEW
Faith C MaletJapanAmy Elsner NEW
Morrow R GauchoBrazilAmy Elsner NEGOTIATION
Claire Y AlbaresRussiaXuxue Feng RENEWAL
Claire T RutaAustraliaOnyama Limba NEW
Jeanfrancois M CampainIndiaBernardo Dominic PROPOSAL
Mayumi H MorascaFranceAnna Fali NEGOTIATION
Misaki I GillianAustraliaXuxue Feng PROPOSAL
Leon W MaletRussiaAnna Fali RENEWAL
Aruna K TollnerRussiaOnyama Limba UNQUALIFIED
Silvio Q IturbideCanadaElwin Sharvill NEGOTIATION
Wickens M MaletRussiaElwin Sharvill PROPOSAL
Adams O RulapaughFranceAsiya Javayant QUALIFIED
Aditya A FlosiCanadaAmy Elsner RENEWAL
Jeanfrancois Z KolmetzIndiaAsiya Javayant PROPOSAL
Faith M MaletJapanBernardo Dominic NEW
Aruna Z BowleyArgentinaBernardo Dominic NEGOTIATION
Claire H MorascaAustraliaAnna Fali NEGOTIATION
Tony M BologniaItalyAmy Elsner NEW
Julie N BriddickFranceXuxue Feng NEW
Munro J DoeArgentinaAsiya Javayant UNQUALIFIED
Salvatore H BologniaRussiaOnyama Limba QUALIFIED
Rodrigues I GlickGermanyAmy Elsner UNQUALIFIED
Mujtaba N FollerAustraliaOnyama Limba NEGOTIATION
Juan W ChuiJapanOnyama Limba RENEWAL
Emily H GlickIndiaAmy Elsner UNQUALIFIED
Aika B InouyeFranceXuxue Feng NEGOTIATION
Aika E DarakjySpainIvan Magalhaes PROPOSAL
Mujtaba P IturbideSpainIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley P BriddickBrazilAnna Fali NEW
Claire T NestleAustraliaIoni Bowcher PROPOSAL
Salvatore E StensethBrazilIoni Bowcher PROPOSAL
Izzy F RoysterCanadaBernardo Dominic UNQUALIFIED
Aditya C SlusarskiRussiaAnna Fali QUALIFIED
Misaki I MacleadJapanBernardo Dominic RENEWAL
Ricardo B DoeFranceOnyama Limba RENEWAL
Stacey E SchemmerArgentinaAsiya Javayant RENEWAL
Francesco H GauchoSpainElwin Sharvill RENEWAL
Julie P WieserRussiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire Q PoquetteUnited Kingdom2025-04-09Buckley Miller Wright RENEWAL7Amy Elsner
1001Aika K IturbideCanada2025-04-13Morlong Associates NEGOTIATION16Ivan Magalhaes
1002Faith C VenereItaly2025-04-23Dorl, James J Esq QUALIFIED77Anna Fali
1003Arvin L RimCanada2025-04-27Morlong Associates NEGOTIATION28Elwin Sharvill
1004Silvio L VenereCanada2025-04-05Feiner Bros NEW44Elwin Sharvill
1005Darci P OldroydCanada2025-04-30King, Christopher A Esq NEGOTIATION25Bernardo Dominic
1006Leon W FigeroaGermany2025-04-17Truhlar And Truhlar Attys NEW87Amy Elsner
1007Nicolas G RulapaughUnited Kingdom2025-04-14Feltz Printing Service PROPOSAL95Xuxue Feng
1008Cody Y MarrierAustralia2025-04-04Chemel, James L Cpa UNQUALIFIED34Asiya Javayant
1009Cody F FollerSpain2025-04-11Dorl, James J Esq NEW99Asiya Javayant
1010Misaki J ChuiSpain2025-04-07King, Christopher A Esq NEGOTIATION51Elwin Sharvill
1011Aruna M RimRussia2025-05-01Chemel, James L Cpa NEW8Elwin Sharvill
1012Nicolas D IturbideArgentina2025-04-06Benton, John B Jr PROPOSAL32Stephen Shaw
1013James S PerinGermany2025-04-13Morlong Associates RENEWAL57Elwin Sharvill
1014Deepesh B CampainRussia2025-04-23Rangoni Of Florence NEGOTIATION70Bernardo Dominic
1015Chavez H KuskoItaly2025-05-01Morlong Associates RENEWAL38Bernardo Dominic
1016Chavez W MacleadUnited Kingdom2025-04-12Chapman, Ross E Esq NEGOTIATION65Onyama Limba
1017Mujtaba J MarrierItaly2025-04-22Rangoni Of Florence NEW71Ioni Bowcher
1018Claire I AlbaresRussia2025-04-15Printing Dimensions NEGOTIATION20Onyama Limba
1019Maisha R ShinkoFrance2025-04-28Feltz Printing Service UNQUALIFIED3Amy Elsner
1020James W GarufiItaly2025-04-26Benton, John B Jr PROPOSAL55Ivan Magalhaes
1021Juan R CaudyRussia2025-04-17Morlong Associates NEGOTIATION41Xuxue Feng
1022Aika X PerinGermany2025-04-22Printing Dimensions UNQUALIFIED23Onyama Limba
1023Misaki I WaycottFrance2025-04-12Truhlar And Truhlar Attys UNQUALIFIED59Amy Elsner
1024Claire P PerinRussia2025-04-15Rousseaux, Michael Esq PROPOSAL45Ivan Magalhaes
1025Munro W RulapaughUnited Kingdom2025-04-02Feiner Bros NEW37Ivan Magalhaes
1026Deepesh E SergiItaly2025-04-03Morlong Associates UNQUALIFIED97Ioni Bowcher
1027Nicolas Z PoquetteAustralia2025-04-13Dorl, James J Esq QUALIFIED87Bernardo Dominic
1028Ivar M TollnerItaly2025-04-20Chemel, James L Cpa NEGOTIATION44Xuxue Feng
1029Leon M CaldareraFrance2025-04-29Morlong Associates NEGOTIATION38Asiya Javayant
1030Kaitlin W SergiBrazil2025-04-17Rousseaux, Michael Esq QUALIFIED80Onyama Limba
1031Chavez S CaudyArgentina2025-04-27Feiner Bros UNQUALIFIED35Xuxue Feng
1032Kaitlin U OstroskySpain2025-04-29Feltz Printing Service UNQUALIFIED56Asiya Javayant
1033Aika V MacleadBrazil2025-04-19Chapman, Ross E Esq NEW22Amy Elsner
1034Antonio L VenereGermany2025-04-03Chapman, Ross E Esq NEGOTIATION13Ivan Magalhaes
1035Clifford M ShinkoIndia2025-04-16Chemel, James L Cpa RENEWAL10Stephen Shaw
1036Mayumi Y OstroskyBrazil2025-04-17Chemel, James L Cpa PROPOSAL9Onyama Limba
1037Misaki T OldroydUnited Kingdom2025-04-08Dorl, James J Esq RENEWAL42Onyama Limba
1038Maria S GauchoGermany2025-04-22Feiner Bros NEW3Onyama Limba
1039Mujtaba F CaldareraGermany2025-04-03Morlong Associates RENEWAL43Bernardo Dominic
1040Jones G FlosiIndia2025-04-15Morlong Associates NEGOTIATION84Ivan Magalhaes
1041Mayumi P RutaAustralia2025-04-13Chemel, James L Cpa NEGOTIATION55Asiya Javayant
1042Juan I ShinkoAustralia2025-04-18Chapman, Ross E Esq RENEWAL36Onyama Limba
1043Chavez F NestleIndia2025-04-23Buckley Miller Wright PROPOSAL95Anna Fali
1044Jones R FlosiUnited Kingdom2025-04-20Dorl, James J Esq UNQUALIFIED11Asiya Javayant
1045Aruna H GlickIndia2025-04-05Benton, John B Jr NEW92Anna Fali
1046Jeanfrancois M StockhamArgentina2025-04-13Rangoni Of Florence RENEWAL99Elwin Sharvill
1047Murillo K FlosiRussia2025-04-10Chanay, Jeffrey A Esq QUALIFIED13Bernardo Dominic
1048Maisha D VenereUnited Kingdom2025-04-23Feiner Bros NEW40Amy Elsner
1049Aika R PaprockiUnited Kingdom2025-04-23Chapman, Ross E Esq NEW27Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Sinclair C MaletGermanyElwin Sharvill UNQUALIFIED
Alejandro F GlickUnited KingdomStephen Shaw RENEWAL
Jones J OstroskyCanadaOnyama Limba UNQUALIFIED
David V MaletSpainAnna Fali PROPOSAL
Silvio Z GarufiSpainStephen Shaw NEW
Darci V DilliardFranceAmy Elsner QUALIFIED
Alejandro E KolmetzGermanyAmy Elsner QUALIFIED
Octavia X OldroydBrazilXuxue Feng RENEWAL
Emily O MarrierSpainIoni Bowcher UNQUALIFIED
Aditya N MacleadGermanyBernardo Dominic PROPOSAL
Adams B GlickSpainStephen Shaw PROPOSAL
Clifford L WhobreyGermanyStephen Shaw NEGOTIATION
Arvin T FerenczAustraliaElwin Sharvill UNQUALIFIED
Aika Z DilliardBrazilElwin Sharvill NEW
Deepesh E DoeFranceXuxue Feng RENEWAL
Jeanfrancois C ChuiJapanElwin Sharvill PROPOSAL
Costa P PoquetteAustraliaAmy Elsner NEGOTIATION
Aditya K GlickFranceOnyama Limba NEW
Salvatore U MaletCanadaBernardo Dominic RENEWAL
Wickens W ShinkoArgentinaIvan Magalhaes RENEWAL
Leja B SergiGermanyBernardo Dominic RENEWAL
Rodrigues Q RimRussiaOnyama Limba NEGOTIATION
Francesco I AlbaresJapanAsiya Javayant NEW
Smith I DoeGermanyXuxue Feng PROPOSAL
Adams Q InouyeGermanyBernardo Dominic QUALIFIED
Juan Q ButtRussiaBernardo Dominic UNQUALIFIED
Jefferson H VocelkaBrazilAmy Elsner UNQUALIFIED
Octavia L RutaFranceBernardo Dominic NEW
Kaitlin A FollerAustraliaAsiya Javayant UNQUALIFIED
Isabel D RutaRussiaIvan Magalhaes RENEWAL
Claire N PoquetteGermanyBernardo Dominic PROPOSAL
Johnson G CampainCanadaXuxue Feng QUALIFIED
Octavia F StensethJapanStephen Shaw NEGOTIATION
Nicolas E GillianUnited KingdomAmy Elsner PROPOSAL
Cody K StockhamRussiaXuxue Feng NEGOTIATION
Misaki J AlbaresAustraliaIoni Bowcher RENEWAL
Kaitlin S SlusarskiSpainIoni Bowcher QUALIFIED
Tony F RulapaughCanadaAsiya Javayant NEW
Sinclair Q AmigonAustraliaAmy Elsner UNQUALIFIED
James J FollerUnited KingdomXuxue Feng PROPOSAL
James C PoquetteJapanAnna Fali RENEWAL
Isabel N PerinItalyAnna Fali QUALIFIED
Salvatore K MacleadSpainIvan Magalhaes PROPOSAL
Kadeem F GarufiBrazilBernardo Dominic NEW
Arvin H CaldareraRussiaAnna Fali NEGOTIATION
Costa F WieserFranceElwin Sharvill QUALIFIED
Aika T RulapaughAustraliaAsiya Javayant NEW
Faith O SergiBrazilElwin Sharvill NEGOTIATION
Arvin V BowleySpainAsiya Javayant PROPOSAL
Francesco E RoysterBrazilAsiya Javayant NEGOTIATION
Frozen Columns
Name
Kaitlin L Saylors
Jennifer U Whobrey
David W Bolognia
Wickens P Vocelka
Johnson J Marrier
Antonio P Nestle
Julie G Figeroa
Rodrigues J Amigon
Isabel Y Iturbide
Murillo Z Stockham
Ashley P Shinko
Maisha V Paprocki
David E Malet
Leja H Albares
Jeanfrancois J Shinko
Johnson F Royster
Faith L Maclead
Juan Q Doe
Darci O Figeroa
Wickens W Caudy
Darci K Marrier
Julie Z Rim
Faith Q Poquette
Salvatore M Maclead
Darci P Butt
Wickens J Kusko
Munro T Waycott
Munro N Gillian
Ivar H Stenseth
Arvin U Nestle
Tony M Sergi
Silvio V Nicka
Octavia J Figeroa
Alejandro Y Inouye
James W Poquette
Johnson W Campain
Salvatore Y Sergi
Isabel D Paprocki
James D Nicka
Kaitlin P Doe
Murillo W Chui
Kaitlin E Rulapaugh
Deepesh H Perin
Emily N Stenseth
Clifford Y Nestle
Aruna B Iturbide
Johnson Q Sergi
Aruna F Malet
Aruna H Iturbide
Deepesh B Morasca
IdCountryDate
1000United Kingdom2025-04-07
1001Canada2025-04-20
1002United Kingdom2025-04-07
1003Germany2025-04-13
1004Germany2025-04-10
1005Russia2025-04-13
1006Canada2025-04-12
1007Australia2025-04-30
1008Brazil2025-04-15
1009Germany2025-04-06
1010Australia2025-04-10
1011Spain2025-04-19
1012Argentina2025-05-01
1013Germany2025-04-10
1014Australia2025-04-22
1015Brazil2025-04-09
1016France2025-04-22
1017India2025-04-13
1018India2025-04-03
1019Argentina2025-04-09
1020Spain2025-04-15
1021Argentina2025-04-11
1022India2025-04-02
1023Argentina2025-04-11
1024Canada2025-04-29
1025Spain2025-04-06
1026Argentina2025-04-15
1027United Kingdom2025-04-10
1028Brazil2025-04-30
1029Spain2025-04-27
1030Japan2025-04-23
1031France2025-04-28
1032India2025-04-20
1033Russia2025-04-05
1034Brazil2025-04-09
1035Germany2025-05-01
1036Argentina2025-04-12
1037Russia2025-04-26
1038Canada2025-04-17
1039Germany2025-04-10
1040Canada2025-04-30
1041Spain2025-04-12
1042Argentina2025-04-16
1043France2025-04-13
1044United Kingdom2025-04-14
1045Germany2025-05-01
1046France2025-04-04
1047India2025-04-07
1048Russia2025-04-05
1049Brazil2025-04-28

On-Demand Data

NameIdCountryDate
Salvatore O Vocelka1000India2025-04-18
Adams R Figeroa1001India2025-04-22
Jeanfrancois T Ferencz1002India2025-04-26
Salvatore Q Rulapaugh1003Argentina2025-04-06
Aditya D Royster1004Spain2025-04-02
Maria O Dilliard1005Japan2025-04-10
Antonio T Ferencz1006France2025-04-09
Stacey N Maclead1007India2025-04-12
James E Campain1008Australia2025-05-01
James A Dilliard1009Germany2025-04-05
Juan J Campain1010Canada2025-04-30
Aditya I Schemmer1011Italy2025-04-12
Darci T Wieser1012Australia2025-04-24
Clifford J Caldarera1013India2025-04-12
Ivar U Stenseth1014India2025-04-28
Jones H Foller1015France2025-04-11
James P Oldroyd1016France2025-04-05
Smith E Gaucho1017Brazil2025-04-10
Isabel A Rulapaugh1018United Kingdom2025-04-08
Silvio F Gillian1019Argentina2025-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa I OldroydGermanyBernardo Dominic NEW
Jennifer M AmigonItalyBernardo Dominic QUALIFIED
Chavez D ShinkoRussiaIoni Bowcher QUALIFIED
James C GillianSpainStephen Shaw NEW
Mujtaba I DoeItalyElwin Sharvill QUALIFIED
Kaitlin V MacleadRussiaAsiya Javayant NEGOTIATION
Antonio H RutaUnited KingdomBernardo Dominic RENEWAL
Nicolas K RulapaughGermanyXuxue Feng RENEWAL
Octavia B GlickAustraliaIvan Magalhaes RENEWAL
Octavia G RutaArgentinaIoni Bowcher UNQUALIFIED
Kaitlin A BriddickJapanOnyama Limba NEGOTIATION
Misaki I BriddickRussiaXuxue Feng PROPOSAL
Silvio V ChuiCanadaStephen Shaw UNQUALIFIED
Isabel M StockhamCanadaXuxue Feng NEW
Arvin Y RoysterItalyBernardo Dominic NEGOTIATION
Claire Y MaletRussiaElwin Sharvill UNQUALIFIED
Aika V OldroydIndiaElwin Sharvill NEGOTIATION
Ashley D OstroskyJapanAmy Elsner RENEWAL
Smith F OstroskyUnited KingdomOnyama Limba QUALIFIED
Stacey N PaprockiArgentinaAnna Fali RENEWAL
Mayumi T AlbaresBrazilOnyama Limba PROPOSAL
Faith L SergiFranceAmy Elsner UNQUALIFIED
Jefferson A PaprockiAustraliaBernardo Dominic PROPOSAL
Maisha S BowleyRussiaElwin Sharvill NEW
Munro I CaudyGermanyAsiya Javayant NEW
David X InouyeAustraliaIvan Magalhaes PROPOSAL
Ashley N NestleFranceAnna Fali QUALIFIED
Mayumi T FerenczIndiaAmy Elsner PROPOSAL
Aditya Y FerenczArgentinaOnyama Limba QUALIFIED
Ivar N MaletRussiaXuxue Feng NEGOTIATION
Sinclair S AmigonCanadaIoni Bowcher PROPOSAL
Arvin P KolmetzArgentinaBernardo Dominic RENEWAL
Faith X ShinkoFranceBernardo Dominic NEGOTIATION
Octavia Z AlbaresAustraliaStephen Shaw RENEWAL
Juan X NickaUnited KingdomStephen Shaw QUALIFIED
Juan M StensethJapanIoni Bowcher QUALIFIED
Claire C DoeRussiaIvan Magalhaes PROPOSAL
Adams Q GillianItalyElwin Sharvill QUALIFIED
Deepesh O SergiJapanOnyama Limba UNQUALIFIED
Johnson L PaprockiRussiaStephen Shaw 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>