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
Adams E WieserArgentinaAmy Elsner QUALIFIED
Wickens H KuskoSpainStephen Shaw PROPOSAL
Johnson B PerinAustraliaBernardo Dominic RENEWAL
Mujtaba J BowleyFranceIvan Magalhaes NEGOTIATION
Maisha L MarrierItalyAnna Fali NEW
Stacey E PaprockiArgentinaAnna Fali NEW
Maisha I MorascaUnited KingdomStephen Shaw PROPOSAL
Aika U CampainArgentinaAnna Fali RENEWAL
Silvio J DoeJapanBernardo Dominic NEGOTIATION
Izzy J TollnerSpainXuxue Feng NEGOTIATION
Ivar W VenereGermanyElwin Sharvill NEW
Rodrigues H BowleySpainAmy Elsner RENEWAL
Murillo Q KuskoCanadaIvan Magalhaes PROPOSAL
Juan E MaletIndiaIvan Magalhaes NEGOTIATION
Jefferson K InouyeAustraliaIoni Bowcher QUALIFIED
Mayumi Y FigeroaAustraliaAnna Fali QUALIFIED
Johnson Z DoeItalyAnna Fali NEGOTIATION
Faith M PaprockiRussiaAsiya Javayant NEW
Sinclair R NickaJapanStephen Shaw QUALIFIED
Emily H InouyeSpainIvan Magalhaes NEGOTIATION
Jones E StensethIndiaAnna Fali NEW
Maisha Y PoquetteCanadaBernardo Dominic NEW
Aruna A PoquetteUnited KingdomOnyama Limba RENEWAL
Maisha D BowleyUnited KingdomIoni Bowcher NEGOTIATION
Leja D GauchoJapanAnna Fali NEW
Jeanfrancois L MorascaRussiaAsiya Javayant NEGOTIATION
Sinclair X OldroydGermanyStephen Shaw PROPOSAL
Faith J GlickFranceIvan Magalhaes QUALIFIED
Isabel F NickaJapanElwin Sharvill UNQUALIFIED
Johnson I FerenczItalyIvan Magalhaes QUALIFIED
Emily Y RulapaughAustraliaAmy Elsner UNQUALIFIED
Smith N CaudyBrazilIoni Bowcher RENEWAL
Maisha C CampainArgentinaAnna Fali QUALIFIED
Isabel M CaldareraFranceAnna Fali RENEWAL
Munro O SaylorsItalyElwin Sharvill UNQUALIFIED
Mujtaba L MaletSpainXuxue Feng NEGOTIATION
Aika Q DoeFranceAsiya Javayant NEW
Izzy Q FigeroaItalyIvan Magalhaes RENEWAL
Aika O FerenczItalyAsiya Javayant PROPOSAL
Stacey V VocelkaFranceAmy Elsner PROPOSAL
Cody Z RimIndiaOnyama Limba PROPOSAL
Isabel L VenereArgentinaXuxue Feng NEGOTIATION
Emily Q ChuiItalyAnna Fali UNQUALIFIED
Jeanfrancois M DilliardAustraliaAnna Fali QUALIFIED
Aruna O BologniaAustraliaAmy Elsner NEW
Antonio G GauchoJapanAmy Elsner RENEWAL
David W AlbaresAustraliaIvan Magalhaes RENEWAL
Misaki J BriddickIndiaBernardo Dominic NEGOTIATION
Clifford D BriddickSpainElwin Sharvill NEGOTIATION
Faith R FlosiCanadaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel F AlbaresUnited KingdomStephen Shaw NEGOTIATION
Morrow O MacleadIndiaOnyama Limba PROPOSAL
Izzy K ShinkoIndiaAmy Elsner UNQUALIFIED
Leon W KuskoFranceIoni Bowcher PROPOSAL
James Z GillianFranceOnyama Limba QUALIFIED
Stacey Z MarrierAustraliaBernardo Dominic RENEWAL
Isabel T AlbaresFranceIvan Magalhaes PROPOSAL
Maisha D GarufiGermanyElwin Sharvill NEGOTIATION
Murillo E GarufiBrazilAnna Fali RENEWAL
Jefferson U DilliardBrazilIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy C SchemmerFrance2026-08-06Chanay, Jeffrey A Esq PROPOSAL99Amy Elsner
1001Maisha R RulapaughItaly2026-08-08Dorl, James J Esq NEGOTIATION88Ioni Bowcher
1002Emily V CaldareraArgentina2026-08-15Rousseaux, Michael Esq RENEWAL74Ioni Bowcher
1003Munro G PoquetteCanada2026-08-11Feiner Bros RENEWAL9Amy Elsner
1004Leja T GarufiJapan2026-08-05Buckley Miller Wright NEGOTIATION29Elwin Sharvill
1005Ricardo W SlusarskiIndia2026-08-03Chapman, Ross E Esq PROPOSAL11Asiya Javayant
1006Munro L StensethAustralia2026-08-09Dorl, James J Esq RENEWAL59Anna Fali
1007Smith W AmigonGermany2026-07-28Feiner Bros PROPOSAL79Elwin Sharvill
1008Cody X BriddickSpain2026-07-22Rousseaux, Michael Esq PROPOSAL49Anna Fali
1009Leja E WhobreyUnited Kingdom2026-08-11Benton, John B Jr RENEWAL27Bernardo Dominic
1010Costa Z AlbaresJapan2026-08-16Feiner Bros NEGOTIATION43Stephen Shaw
1011David W FlosiUnited Kingdom2026-08-14Rangoni Of Florence NEW54Ivan Magalhaes
1012Jefferson D BowleyCanada2026-08-15Benton, John B Jr UNQUALIFIED46Onyama Limba
1013Juan X MacleadUnited Kingdom2026-08-20Commercial Press PROPOSAL16Anna Fali
1014Ricardo E NickaBrazil2026-08-13Dorl, James J Esq QUALIFIED84Ivan Magalhaes
1015Murillo Z RimFrance2026-08-08Rangoni Of Florence UNQUALIFIED31Stephen Shaw
1016Deepesh V WhobreyRussia2026-08-09Benton, John B Jr PROPOSAL19Asiya Javayant
1017Munro Q DarakjyItaly2026-08-05Feiner Bros NEGOTIATION62Stephen Shaw
1018Deepesh T DarakjyAustralia2026-08-15Commercial Press QUALIFIED1Stephen Shaw
1019Mujtaba Q PoquetteIndia2026-08-04Chapman, Ross E Esq QUALIFIED4Asiya Javayant
1020Aika N GarufiSpain2026-07-28Chapman, Ross E Esq NEGOTIATION6Stephen Shaw
1021Octavia U StockhamSpain2026-08-19Truhlar And Truhlar Attys RENEWAL89Asiya Javayant
1022Silvio H RoysterCanada2026-07-27Benton, John B Jr RENEWAL44Asiya Javayant
1023James A KuskoIndia2026-07-30Rousseaux, Michael Esq NEW22Anna Fali
1024Jefferson E IturbideAustralia2026-08-04Rousseaux, Michael Esq RENEWAL10Onyama Limba
1025Clifford X BriddickIndia2026-08-01Chapman, Ross E Esq UNQUALIFIED41Elwin Sharvill
1026Ivar H TollnerJapan2026-08-08Morlong Associates RENEWAL3Ioni Bowcher
1027Ivar P AmigonSpain2026-08-07Printing Dimensions RENEWAL34Bernardo Dominic
1028Johnson A WieserSpain2026-07-31Chemel, James L Cpa UNQUALIFIED63Stephen Shaw
1029Johnson L IturbideBrazil2026-08-14Dorl, James J Esq NEW12Elwin Sharvill
1030Alejandro T SergiItaly2026-08-18Printing Dimensions NEW84Asiya Javayant
1031Antonio U ShinkoArgentina2026-08-15Rangoni Of Florence UNQUALIFIED2Onyama Limba
1032Tony B NickaItaly2026-08-03Rangoni Of Florence PROPOSAL43Ivan Magalhaes
1033Nicolas E OldroydSpain2026-08-09King, Christopher A Esq QUALIFIED25Asiya Javayant
1034Sinclair I DarakjyGermany2026-08-20Buckley Miller Wright NEW56Stephen Shaw
1035Stacey B KolmetzSpain2026-08-19Feiner Bros NEGOTIATION43Stephen Shaw
1036Johnson N GlickArgentina2026-08-04Rousseaux, Michael Esq NEW92Ivan Magalhaes
1037Nicolas D MaletCanada2026-08-20Chanay, Jeffrey A Esq UNQUALIFIED26Bernardo Dominic
1038Octavia M BologniaFrance2026-07-28Chapman, Ross E Esq UNQUALIFIED3Onyama Limba
1039Leja O FerenczSpain2026-08-02Chapman, Ross E Esq NEW41Onyama Limba
1040Darci Q MarrierGermany2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED10Ioni Bowcher
1041Rodrigues L FerenczJapan2026-08-16Rangoni Of Florence NEW17Elwin Sharvill
1042Chavez K InouyeCanada2026-07-27Truhlar And Truhlar Attys RENEWAL23Ivan Magalhaes
1043Leja J MorascaGermany2026-07-26Rangoni Of Florence NEW91Bernardo Dominic
1044Jennifer H CampainFrance2026-08-08Benton, John B Jr NEW59Anna Fali
1045Kadeem N RutaIndia2026-07-22Rangoni Of Florence NEGOTIATION53Anna Fali
1046Isabel O OldroydJapan2026-07-23Chapman, Ross E Esq NEW82Ivan Magalhaes
1047Tony C AmigonItaly2026-07-24Printing Dimensions PROPOSAL35Xuxue Feng
1048Chavez W WhobreyAustralia2026-07-31Chemel, James L Cpa UNQUALIFIED0Bernardo Dominic
1049Nicolas K ShinkoAustralia2026-07-24Printing Dimensions NEW67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Arvin R InouyeJapanAmy Elsner RENEWAL
Adams E MaletItalyIvan Magalhaes NEGOTIATION
Mujtaba O MorascaSpainAmy Elsner UNQUALIFIED
Claire W FigeroaAustraliaBernardo Dominic QUALIFIED
Jones U FlosiArgentinaOnyama Limba NEGOTIATION
Claire Y DoeItalyIvan Magalhaes UNQUALIFIED
Izzy T OstroskySpainXuxue Feng PROPOSAL
Mujtaba H MacleadRussiaIoni Bowcher NEGOTIATION
Maisha V OstroskySpainIoni Bowcher QUALIFIED
Izzy T GlickIndiaAsiya Javayant NEGOTIATION
Isabel T AlbaresRussiaAsiya Javayant UNQUALIFIED
Clifford W MarrierSpainIoni Bowcher UNQUALIFIED
Greenwood M DilliardGermanyIvan Magalhaes QUALIFIED
Mujtaba X GauchoArgentinaIvan Magalhaes RENEWAL
Maisha X DoeUnited KingdomStephen Shaw NEGOTIATION
Francesco K FollerAustraliaIvan Magalhaes QUALIFIED
David L DarakjyGermanyAsiya Javayant RENEWAL
Aditya I RoysterFranceElwin Sharvill NEGOTIATION
Chavez W OstroskyRussiaAmy Elsner QUALIFIED
Clifford E MarrierRussiaIvan Magalhaes NEGOTIATION
Francesco G BriddickBrazilBernardo Dominic UNQUALIFIED
Darci A MaletSpainAnna Fali NEW
Misaki K RulapaughIndiaIvan Magalhaes UNQUALIFIED
Emily G StensethJapanIoni Bowcher QUALIFIED
Kadeem G RoysterUnited KingdomAnna Fali UNQUALIFIED
Wickens M AlbaresArgentinaOnyama Limba QUALIFIED
Deepesh D SaylorsRussiaAsiya Javayant PROPOSAL
Mayumi T InouyeFranceOnyama Limba NEW
Faith Z DarakjyRussiaStephen Shaw NEW
Claire I PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Emily D FollerCanadaOnyama Limba NEW
Rodrigues D WieserAustraliaIoni Bowcher RENEWAL
Smith Q RutaIndiaOnyama Limba RENEWAL
Morrow L RulapaughGermanyXuxue Feng NEW
Francesco B GlickAustraliaIvan Magalhaes RENEWAL
Wickens T MarrierUnited KingdomBernardo Dominic NEW
Ashley T SaylorsFranceAnna Fali RENEWAL
Aika U SlusarskiIndiaIoni Bowcher QUALIFIED
Rodrigues K PerinRussiaStephen Shaw QUALIFIED
Izzy Y PaprockiArgentinaElwin Sharvill NEW
Jeanfrancois L CampainIndiaAnna Fali RENEWAL
Munro U MacleadArgentinaXuxue Feng NEGOTIATION
Greenwood W ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Aika D StockhamIndiaAsiya Javayant NEGOTIATION
Mujtaba F SergiFranceAmy Elsner QUALIFIED
Salvatore A MacleadCanadaXuxue Feng UNQUALIFIED
Izzy P OstroskyGermanyIvan Magalhaes QUALIFIED
David F MacleadJapanIoni Bowcher NEW
Stacey Z PoquetteIndiaAsiya Javayant RENEWAL
Aruna M PoquetteIndiaAsiya Javayant QUALIFIED
Frozen Columns
Name
James Z Vocelka
Antonio X Flosi
Murillo A Paprocki
Ricardo H Stockham
Stacey I Kusko
Murillo H Oldroyd
Misaki D Inouye
Murillo X Ferencz
Kaitlin Q Whobrey
Kaitlin J Vocelka
Claire V Flosi
Murillo A Amigon
Jefferson W Schemmer
Sinclair J Briddick
Leon O Ostrosky
Rodrigues F Figeroa
Rodrigues M Glick
Cody G Butt
Silvio A Sergi
Julie Q Saylors
Salvatore H Malet
Arvin B Perin
Silvio A Rim
Tony W Nestle
Octavia A Perin
Aditya R Ostrosky
Wickens J Malet
Aditya G Vocelka
Leja E Glick
Wickens D Flosi
Ricardo R Rim
Antonio O Gaucho
Ashley W Rim
Maisha U Whobrey
Costa O Paprocki
Aruna Q Caudy
Julie P Oldroyd
Clifford F Waycott
Jefferson K Oldroyd
Costa J Poquette
Misaki U Butt
Izzy Z Nestle
Kadeem R Darakjy
Mujtaba B Gillian
Morrow M Nicka
Arvin P Albares
Isabel L Inouye
Johnson Y Maclead
Emily Y Ostrosky
Julie Q Briddick
IdCountryDate
1000India2026-08-03
1001Germany2026-08-16
1002India2026-08-03
1003Australia2026-08-01
1004Germany2026-07-30
1005Canada2026-07-31
1006Italy2026-08-07
1007India2026-08-05
1008France2026-07-28
1009Japan2026-08-09
1010Spain2026-07-31
1011Spain2026-08-02
1012France2026-08-06
1013Russia2026-07-31
1014United Kingdom2026-08-07
1015Australia2026-07-27
1016India2026-08-14
1017Australia2026-08-04
1018Russia2026-07-30
1019Brazil2026-07-29
1020Russia2026-07-30
1021Germany2026-08-19
1022Italy2026-08-17
1023Russia2026-07-26
1024Canada2026-07-22
1025Japan2026-07-30
1026France2026-08-15
1027France2026-08-18
1028France2026-07-30
1029Australia2026-07-23
1030France2026-07-24
1031United Kingdom2026-08-01
1032France2026-07-31
1033Russia2026-08-06
1034India2026-08-18
1035United Kingdom2026-08-07
1036India2026-08-18
1037Russia2026-08-05
1038Canada2026-07-27
1039India2026-07-29
1040Canada2026-07-23
1041Canada2026-08-05
1042Canada2026-08-06
1043Australia2026-07-24
1044Japan2026-08-06
1045Japan2026-08-01
1046Japan2026-08-17
1047Canada2026-07-29
1048Australia2026-07-30
1049Spain2026-08-09

On-Demand Data

NameIdCountryDate
Arvin H Garufi1000Australia2026-08-06
Wickens A Glick1001Brazil2026-07-28
Ricardo W Rulapaugh1002Germany2026-07-26
Izzy E Inouye1003Brazil2026-08-15
Tony C Rulapaugh1004France2026-08-14
Salvatore T Rim1005Australia2026-07-31
Francesco D Dilliard1006Italy2026-07-31
Juan B Caudy1007Germany2026-08-05
Johnson K Ferencz1008Russia2026-07-25
David M Ostrosky1009Italy2026-07-28
Sinclair E Morasca1010Spain2026-08-02
Tony P Maclead1011Australia2026-08-18
Murillo I Rim1012France2026-07-23
Faith X Malet1013Canada2026-08-17
Jones G Inouye1014India2026-07-24
Izzy N Caudy1015Russia2026-08-12
Mayumi C Dilliard1016Australia2026-08-08
Maisha B Doe1017Russia2026-07-29
Jones D Rim1018Argentina2026-07-30
Cody K Campain1019United Kingdom2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire S GlickIndiaAnna Fali PROPOSAL
Tony I ButtBrazilAsiya Javayant RENEWAL
Juan P BologniaGermanyAmy Elsner NEW
Costa L InouyeJapanIoni Bowcher UNQUALIFIED
David V SergiAustraliaElwin Sharvill PROPOSAL
Octavia C FlosiBrazilAsiya Javayant NEGOTIATION
Salvatore O SchemmerJapanOnyama Limba PROPOSAL
Morrow P VocelkaCanadaOnyama Limba PROPOSAL
Silvio W NickaFranceAsiya Javayant QUALIFIED
Mayumi R WieserArgentinaOnyama Limba PROPOSAL
Silvio Z FlosiUnited KingdomXuxue Feng QUALIFIED
Mujtaba C MaletUnited KingdomIoni Bowcher QUALIFIED
Alejandro O GlickArgentinaIvan Magalhaes PROPOSAL
Kaitlin A RulapaughSpainAsiya Javayant NEGOTIATION
Greenwood G RimRussiaXuxue Feng NEGOTIATION
Francesco B PaprockiFranceElwin Sharvill NEGOTIATION
Ricardo E BriddickCanadaAnna Fali NEW
Izzy I MorascaGermanyOnyama Limba RENEWAL
Aruna L PaprockiItalyIoni Bowcher NEW
Juan I AlbaresRussiaIvan Magalhaes NEGOTIATION
Salvatore E NestleGermanyAsiya Javayant RENEWAL
Kaitlin N StockhamItalyStephen Shaw QUALIFIED
Aruna H CampainIndiaAsiya Javayant NEW
Jennifer S BowleyBrazilAsiya Javayant UNQUALIFIED
Misaki B AlbaresItalyXuxue Feng NEGOTIATION
Leon V BriddickGermanyXuxue Feng NEW
Emily O WhobreyAustraliaXuxue Feng RENEWAL
Jones O ChuiBrazilBernardo Dominic UNQUALIFIED
David D RoysterGermanyAsiya Javayant RENEWAL
Silvio T DilliardGermanyStephen Shaw NEW
Kaitlin N ButtAustraliaStephen Shaw UNQUALIFIED
Stacey D FollerArgentinaAnna Fali PROPOSAL
Mujtaba C FollerFranceXuxue Feng QUALIFIED
Octavia O SergiCanadaElwin Sharvill NEW
Aika P GlickBrazilAmy Elsner NEW
Alejandro Q KolmetzItalyOnyama Limba PROPOSAL
Alejandro G RutaFranceAsiya Javayant QUALIFIED
Murillo G GauchoArgentinaXuxue Feng UNQUALIFIED
Aruna H MacleadUnited KingdomElwin Sharvill PROPOSAL
Kaitlin B IturbideArgentinaElwin Sharvill UNQUALIFIED

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