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
Aika F NestleFranceElwin Sharvill PROPOSAL
Morrow G CaldareraGermanyXuxue Feng RENEWAL
Greenwood D GillianJapanAnna Fali QUALIFIED
Misaki N ButtArgentinaElwin Sharvill QUALIFIED
James K PoquetteGermanyIoni Bowcher PROPOSAL
Misaki Z MorascaUnited KingdomAnna Fali RENEWAL
Juan J MarrierGermanyStephen Shaw PROPOSAL
Salvatore K RulapaughArgentinaAnna Fali QUALIFIED
Nicolas J SlusarskiItalyIvan Magalhaes RENEWAL
Morrow X TollnerAustraliaAsiya Javayant NEGOTIATION
Alejandro Q VenereArgentinaStephen Shaw NEGOTIATION
Morrow E VocelkaCanadaStephen Shaw QUALIFIED
Cody M FlosiIndiaStephen Shaw QUALIFIED
Leja O DilliardAustraliaStephen Shaw UNQUALIFIED
Mujtaba E SchemmerArgentinaAsiya Javayant PROPOSAL
Juan T AmigonRussiaIoni Bowcher UNQUALIFIED
Ivar W NickaSpainAmy Elsner QUALIFIED
Salvatore P StockhamCanadaOnyama Limba NEGOTIATION
Kaitlin F IturbideGermanyAsiya Javayant NEGOTIATION
Smith S WaycottBrazilIvan Magalhaes NEGOTIATION
Julie N DilliardRussiaElwin Sharvill RENEWAL
Smith O SergiAustraliaBernardo Dominic RENEWAL
Alejandro O KolmetzFranceOnyama Limba RENEWAL
Aruna A SchemmerRussiaAnna Fali NEGOTIATION
Stacey W CaudyArgentinaAsiya Javayant NEW
Tony T StensethGermanyStephen Shaw NEW
Kadeem X StockhamUnited KingdomStephen Shaw RENEWAL
Antonio I InouyeAustraliaAsiya Javayant UNQUALIFIED
Antonio K GauchoArgentinaIvan Magalhaes PROPOSAL
Arvin I VocelkaRussiaIoni Bowcher NEW
Jeanfrancois O StensethItalyStephen Shaw NEW
Ricardo O NickaGermanyOnyama Limba RENEWAL
Deepesh T AlbaresAustraliaBernardo Dominic RENEWAL
Salvatore Q OstroskyItalyXuxue Feng RENEWAL
Adams K RutaUnited KingdomElwin Sharvill RENEWAL
Morrow X CaudyFranceXuxue Feng UNQUALIFIED
Arvin E SchemmerArgentinaIoni Bowcher QUALIFIED
Octavia N DoeItalyElwin Sharvill NEGOTIATION
Jones J SlusarskiRussiaAsiya Javayant UNQUALIFIED
Murillo C GauchoIndiaXuxue Feng PROPOSAL
Wickens I IturbideItalyAsiya Javayant PROPOSAL
James K CaudyArgentinaOnyama Limba RENEWAL
Aruna R RoysterJapanBernardo Dominic NEGOTIATION
Francesco S MarrierAustraliaIoni Bowcher NEGOTIATION
Aika A CaldareraRussiaElwin Sharvill NEGOTIATION
Rodrigues D NickaArgentinaAmy Elsner RENEWAL
Antonio Z FigeroaSpainStephen Shaw NEW
Deepesh S MaletRussiaIoni Bowcher PROPOSAL
Mujtaba U OstroskyItalyStephen Shaw QUALIFIED
Maisha C ButtGermanyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh F FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Isabel T NestleIndiaAmy Elsner UNQUALIFIED
Isabel Y GauchoSpainOnyama Limba QUALIFIED
Kaitlin E GlickArgentinaBernardo Dominic NEGOTIATION
Darci R PoquetteRussiaIvan Magalhaes NEW
Aditya D PoquetteJapanIvan Magalhaes UNQUALIFIED
Aruna Z SergiSpainAsiya Javayant RENEWAL
Leon Q DilliardAustraliaStephen Shaw RENEWAL
Maria M AlbaresIndiaBernardo Dominic RENEWAL
Jones Z NickaAustraliaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas Z GillianSpain2025-04-09Feiner Bros NEW95Anna Fali
1001Johnson S GlickSpain2025-04-28Truhlar And Truhlar Attys QUALIFIED16Ioni Bowcher
1002Jones U PoquetteFrance2025-04-29Feiner Bros NEGOTIATION35Onyama Limba
1003Smith H NickaSpain2025-04-21King, Christopher A Esq UNQUALIFIED36Anna Fali
1004Adams H WaycottArgentina2025-04-02Chemel, James L Cpa QUALIFIED1Amy Elsner
1005Jeanfrancois Z TollnerJapan2025-04-13Morlong Associates NEGOTIATION54Onyama Limba
1006Darci Y DoeArgentina2025-04-02Commercial Press NEGOTIATION39Elwin Sharvill
1007Wickens E DarakjyUnited Kingdom2025-04-30Rousseaux, Michael Esq RENEWAL67Bernardo Dominic
1008Silvio F IturbideFrance2025-04-29Printing Dimensions UNQUALIFIED34Ivan Magalhaes
1009Cody U GlickRussia2025-04-13Chapman, Ross E Esq NEW86Stephen Shaw
1010Rodrigues T DarakjyGermany2025-04-14Chapman, Ross E Esq UNQUALIFIED57Bernardo Dominic
1011Kadeem L BologniaSpain2025-04-07Printing Dimensions RENEWAL38Xuxue Feng
1012Munro O AlbaresFrance2025-04-07Chapman, Ross E Esq PROPOSAL13Bernardo Dominic
1013Maria W BriddickArgentina2025-04-04Truhlar And Truhlar Attys UNQUALIFIED45Asiya Javayant
1014Johnson A ButtBrazil2025-04-09Morlong Associates UNQUALIFIED34Ivan Magalhaes
1015Jones E PaprockiCanada2025-04-16Rangoni Of Florence RENEWAL47Anna Fali
1016Nicolas Q PoquetteIndia2025-04-05Chapman, Ross E Esq NEW30Elwin Sharvill
1017Morrow O StensethCanada2025-04-22King, Christopher A Esq QUALIFIED20Asiya Javayant
1018Ashley A MaletGermany2025-04-20Benton, John B Jr UNQUALIFIED45Amy Elsner
1019Jeanfrancois B PaprockiJapan2025-04-04Feltz Printing Service UNQUALIFIED57Asiya Javayant
1020Aditya R PoquetteRussia2025-04-19Rousseaux, Michael Esq UNQUALIFIED47Asiya Javayant
1021Juan H KolmetzArgentina2025-04-20Rangoni Of Florence UNQUALIFIED53Ioni Bowcher
1022Leon M VocelkaArgentina2025-04-29Buckley Miller Wright QUALIFIED77Ioni Bowcher
1023Jones V OldroydRussia2025-04-21Chemel, James L Cpa PROPOSAL14Bernardo Dominic
1024Juan L KolmetzItaly2025-04-29Buckley Miller Wright PROPOSAL91Xuxue Feng
1025Izzy H BologniaSpain2025-04-03Chanay, Jeffrey A Esq UNQUALIFIED72Asiya Javayant
1026Nicolas A MarrierUnited Kingdom2025-04-04Feltz Printing Service NEW44Ioni Bowcher
1027Murillo G NestleArgentina2025-04-30Buckley Miller Wright QUALIFIED37Amy Elsner
1028Leon F PoquetteRussia2025-04-01King, Christopher A Esq RENEWAL81Onyama Limba
1029Ashley B GlickItaly2025-04-03Rousseaux, Michael Esq RENEWAL23Amy Elsner
1030Alejandro Z OldroydJapan2025-04-15Chemel, James L Cpa NEW11Onyama Limba
1031Adams N WieserArgentina2025-04-04Feiner Bros UNQUALIFIED93Amy Elsner
1032Morrow F RulapaughItaly2025-04-29Dorl, James J Esq UNQUALIFIED94Xuxue Feng
1033Ashley H MacleadFrance2025-04-27Chemel, James L Cpa UNQUALIFIED33Amy Elsner
1034Maria F SaylorsCanada2025-04-02Dorl, James J Esq NEW52Onyama Limba
1035Leon I StensethFrance2025-04-26Morlong Associates UNQUALIFIED59Elwin Sharvill
1036Mayumi Y KuskoArgentina2025-04-28Truhlar And Truhlar Attys NEW47Elwin Sharvill
1037Jefferson Z NickaSpain2025-04-22Dorl, James J Esq RENEWAL22Ioni Bowcher
1038Arvin N MaletArgentina2025-04-20Morlong Associates QUALIFIED38Anna Fali
1039Kadeem U SchemmerIndia2025-04-19Commercial Press QUALIFIED37Anna Fali
1040Adams Y FollerGermany2025-04-06Commercial Press QUALIFIED11Amy Elsner
1041Emily R AmigonAustralia2025-04-21Rousseaux, Michael Esq NEGOTIATION99Asiya Javayant
1042Jennifer P DarakjySpain2025-04-28Morlong Associates NEW63Anna Fali
1043Mayumi Z CaldareraCanada2025-04-08Benton, John B Jr NEW53Stephen Shaw
1044Chavez I MorascaArgentina2025-04-29Feltz Printing Service QUALIFIED27Elwin Sharvill
1045Antonio U GauchoCanada2025-04-27Dorl, James J Esq UNQUALIFIED84Bernardo Dominic
1046Octavia S BriddickJapan2025-04-12Printing Dimensions QUALIFIED28Bernardo Dominic
1047Kadeem J GlickFrance2025-04-27Feiner Bros PROPOSAL53Ivan Magalhaes
1048Morrow R SaylorsAustralia2025-04-02Rousseaux, Michael Esq UNQUALIFIED56Anna Fali
1049Ashley D PaprockiGermany2025-04-27Buckley Miller Wright NEW55Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow V OstroskyUnited KingdomIvan Magalhaes PROPOSAL
Silvio K BriddickIndiaStephen Shaw UNQUALIFIED
Cody J OstroskyFranceAsiya Javayant UNQUALIFIED
Octavia D WhobreyBrazilIoni Bowcher NEW
Munro U CaldareraIndiaIoni Bowcher QUALIFIED
Isabel V WhobreyUnited KingdomOnyama Limba UNQUALIFIED
Julie L ShinkoAustraliaElwin Sharvill NEGOTIATION
Deepesh U GarufiAustraliaElwin Sharvill NEGOTIATION
Cody C MaletIndiaAmy Elsner QUALIFIED
Emily A OldroydUnited KingdomIoni Bowcher PROPOSAL
Octavia D VocelkaGermanyAnna Fali NEW
Faith D BologniaArgentinaOnyama Limba NEW
Maisha D PoquetteSpainXuxue Feng QUALIFIED
David F SlusarskiIndiaXuxue Feng RENEWAL
Rodrigues D NestleSpainAmy Elsner PROPOSAL
Faith K MaletUnited KingdomAmy Elsner QUALIFIED
Ricardo L SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Chavez D OldroydJapanAnna Fali NEGOTIATION
Jones E AlbaresItalyAnna Fali NEGOTIATION
Aruna K VocelkaItalyXuxue Feng NEGOTIATION
James A KuskoSpainXuxue Feng PROPOSAL
Alejandro P MaletJapanElwin Sharvill NEGOTIATION
Smith M FerenczGermanyXuxue Feng RENEWAL
Rodrigues I SergiGermanyBernardo Dominic NEW
Octavia Z StockhamBrazilXuxue Feng PROPOSAL
Costa I RulapaughAustraliaIoni Bowcher NEGOTIATION
Stacey J OstroskyCanadaXuxue Feng PROPOSAL
Isabel I IturbideFranceXuxue Feng RENEWAL
Chavez V MacleadIndiaStephen Shaw QUALIFIED
Izzy G FigeroaBrazilBernardo Dominic PROPOSAL
Leon I SaylorsGermanyXuxue Feng UNQUALIFIED
Julie C BowleyBrazilXuxue Feng NEW
Murillo D WhobreyArgentinaBernardo Dominic QUALIFIED
Greenwood W RimSpainXuxue Feng PROPOSAL
Stacey W SergiRussiaAnna Fali UNQUALIFIED
Mayumi V StensethRussiaOnyama Limba PROPOSAL
Darci M GlickItalyIoni Bowcher UNQUALIFIED
Morrow N RulapaughFranceAnna Fali PROPOSAL
Antonio X DilliardSpainIoni Bowcher PROPOSAL
Aruna H RoysterArgentinaBernardo Dominic UNQUALIFIED
Nicolas E PoquetteItalyAsiya Javayant QUALIFIED
James Q CaudyRussiaIvan Magalhaes NEW
Adams Y WhobreyCanadaBernardo Dominic NEGOTIATION
Leja R GarufiAustraliaIvan Magalhaes UNQUALIFIED
Arvin K PerinSpainStephen Shaw QUALIFIED
Francesco E InouyeJapanAnna Fali PROPOSAL
Ashley L MaletArgentinaAmy Elsner NEGOTIATION
Octavia O FollerGermanyXuxue Feng UNQUALIFIED
Antonio L MarrierSpainOnyama Limba RENEWAL
Maisha Q WieserBrazilXuxue Feng RENEWAL
Frozen Columns
Name
Antonio S Ferencz
Claire M Bowley
Jefferson S Kusko
Aditya A Malet
Salvatore E Poquette
Claire E Morasca
Costa Y Chui
Costa F Wieser
Munro A Nestle
Juan U Royster
Rodrigues W Morasca
Aika Q Perin
Aika P Campain
Sinclair F Stenseth
Adams L Flosi
Ashley N Amigon
Ivar N Gillian
Ivar G Wieser
Jefferson V Shinko
Greenwood Q Darakjy
Mayumi M Poquette
Isabel D Kolmetz
Smith O Caudy
Rodrigues K Nicka
Darci R Maclead
Antonio H Vocelka
Chavez X Flosi
Juan V Stockham
Izzy R Glick
Ricardo G Figeroa
Mayumi U Foller
Mujtaba J Rim
Costa T Malet
Alejandro M Malet
Darci L Stenseth
Clifford L Tollner
Isabel Y Kusko
Aditya F Malet
Clifford C Tollner
Claire M Waycott
Salvatore V Flosi
Sinclair U Flosi
Murillo I Garufi
Octavia I Kolmetz
Emily H Maclead
Ashley V Marrier
Cody R Malet
Clifford R Flosi
Ashley G Foller
Izzy V Malet
IdCountryDate
1000Russia2025-04-11
1001Germany2025-04-02
1002France2025-04-14
1003India2025-04-11
1004Australia2025-04-23
1005India2025-04-13
1006Germany2025-04-09
1007Australia2025-04-17
1008France2025-04-20
1009Spain2025-04-12
1010Canada2025-04-18
1011Argentina2025-04-03
1012Australia2025-04-20
1013Italy2025-04-29
1014Russia2025-04-04
1015Japan2025-04-30
1016India2025-04-26
1017Japan2025-04-10
1018Argentina2025-04-27
1019Canada2025-04-07
1020United Kingdom2025-04-29
1021India2025-04-28
1022Canada2025-04-27
1023Japan2025-04-02
1024Brazil2025-04-18
1025Argentina2025-04-12
1026United Kingdom2025-04-17
1027United Kingdom2025-04-18
1028India2025-04-08
1029Brazil2025-04-07
1030Canada2025-04-07
1031Japan2025-04-05
1032Italy2025-04-23
1033Russia2025-04-19
1034Italy2025-04-01
1035India2025-04-11
1036Russia2025-04-24
1037Canada2025-04-29
1038Germany2025-04-06
1039Argentina2025-04-27
1040Russia2025-04-18
1041Germany2025-04-18
1042United Kingdom2025-04-05
1043Italy2025-04-09
1044Russia2025-04-29
1045Japan2025-04-09
1046Italy2025-04-02
1047Japan2025-04-09
1048Japan2025-04-22
1049Canada2025-04-27

On-Demand Data

NameIdCountryDate
Aditya J Poquette1000Russia2025-04-25
Clifford Y Glick1001Japan2025-04-14
Aika E Garufi1002Canada2025-04-01
Octavia Y Figeroa1003Canada2025-04-06
Darci E Albares1004France2025-04-20
Johnson M Slusarski1005France2025-04-02
Costa R Wieser1006United Kingdom2025-04-16
Leon P Marrier1007France2025-04-05
Chavez D Oldroyd1008Canada2025-04-18
Clifford R Stockham1009France2025-04-15
Misaki K Bolognia1010France2025-04-02
Kaitlin H Whobrey1011Australia2025-04-25
Tony J Royster1012Australia2025-04-29
Aruna M Foller1013France2025-04-30
Rodrigues S Gaucho1014Canada2025-04-14
Aditya N Campain1015Italy2025-04-13
Adams V Whobrey1016India2025-04-18
Sinclair L Tollner1017Italy2025-04-28
Johnson K Kolmetz1018Spain2025-04-13
Maisha M Waycott1019Germany2025-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James E WhobreyItalyStephen Shaw QUALIFIED
Leon I RoysterRussiaXuxue Feng RENEWAL
Arvin Z ButtRussiaElwin Sharvill NEW
Faith P SchemmerSpainAsiya Javayant QUALIFIED
Cody N SlusarskiArgentinaStephen Shaw UNQUALIFIED
Ashley X SchemmerSpainIvan Magalhaes NEGOTIATION
Ricardo F PaprockiUnited KingdomXuxue Feng RENEWAL
Maisha S InouyeRussiaIoni Bowcher QUALIFIED
Johnson L OldroydFranceElwin Sharvill UNQUALIFIED
Mujtaba I WieserFranceAmy Elsner RENEWAL
Jeanfrancois S CaldareraAustraliaAsiya Javayant NEGOTIATION
Aika G GarufiBrazilAsiya Javayant QUALIFIED
Claire A DoeJapanAsiya Javayant NEW
Salvatore F BowleySpainOnyama Limba NEGOTIATION
Octavia T OldroydRussiaIoni Bowcher NEGOTIATION
Darci Q FigeroaSpainIvan Magalhaes PROPOSAL
Aika M FerenczRussiaXuxue Feng RENEWAL
Aditya R GlickJapanAmy Elsner NEW
Mayumi R PaprockiGermanyOnyama Limba NEW
Tony H IturbideIndiaElwin Sharvill NEW
Isabel H SlusarskiCanadaOnyama Limba NEW
Mujtaba W VocelkaFranceIvan Magalhaes NEGOTIATION
Smith K OldroydSpainAsiya Javayant NEW
Octavia P RoysterArgentinaElwin Sharvill NEW
Izzy Y SergiUnited KingdomAsiya Javayant QUALIFIED
Adams J SergiItalyIvan Magalhaes RENEWAL
Jefferson V GauchoSpainIoni Bowcher UNQUALIFIED
Silvio W RimGermanyOnyama Limba RENEWAL
Greenwood E MaletBrazilAmy Elsner QUALIFIED
Deepesh V SergiIndiaBernardo Dominic RENEWAL
Francesco W PerinSpainIoni Bowcher NEGOTIATION
Morrow E InouyeItalyAnna Fali QUALIFIED
Leon Z FerenczFranceXuxue Feng NEW
James R PoquetteFranceAmy Elsner PROPOSAL
Nicolas I DarakjyGermanyAsiya Javayant QUALIFIED
Costa A PoquetteGermanyAsiya Javayant UNQUALIFIED
Salvatore D KuskoJapanIvan Magalhaes NEW
Rodrigues J DoeJapanAsiya Javayant PROPOSAL
Jones L CaudyBrazilBernardo Dominic RENEWAL
Cody J AmigonGermanyElwin Sharvill 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>