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
Chavez K MaletAustraliaAnna Fali UNQUALIFIED
Misaki Q StensethBrazilStephen Shaw UNQUALIFIED
David X BowleyGermanyAmy Elsner NEGOTIATION
Antonio G MacleadCanadaBernardo Dominic NEGOTIATION
Sinclair J FlosiItalyAnna Fali NEGOTIATION
Ashley S GarufiUnited KingdomIoni Bowcher RENEWAL
Nicolas Q OldroydAustraliaElwin Sharvill QUALIFIED
James L InouyeUnited KingdomXuxue Feng NEGOTIATION
Octavia I PaprockiSpainXuxue Feng UNQUALIFIED
Juan Q AmigonSpainStephen Shaw UNQUALIFIED
Juan Y RutaCanadaAnna Fali PROPOSAL
Aika N NestleIndiaBernardo Dominic PROPOSAL
Ricardo Q FerenczBrazilBernardo Dominic NEW
Stacey C RulapaughSpainIvan Magalhaes NEGOTIATION
Kadeem X GillianArgentinaOnyama Limba NEW
Adams T WieserUnited KingdomXuxue Feng PROPOSAL
Ricardo M GarufiGermanyStephen Shaw PROPOSAL
Aruna J PerinIndiaIoni Bowcher RENEWAL
Smith A FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Munro S GauchoArgentinaAmy Elsner NEW
Antonio A PoquetteUnited KingdomOnyama Limba NEGOTIATION
Aditya K KuskoRussiaElwin Sharvill PROPOSAL
Izzy X BologniaAustraliaOnyama Limba QUALIFIED
Aruna Z AlbaresBrazilOnyama Limba PROPOSAL
Deepesh A StensethItalyIvan Magalhaes NEW
Chavez K ChuiItalyAsiya Javayant RENEWAL
Ivar J RoysterSpainIvan Magalhaes UNQUALIFIED
Arvin W StensethCanadaAnna Fali NEGOTIATION
Emily G PoquetteFranceElwin Sharvill NEW
Rodrigues Y VocelkaJapanBernardo Dominic RENEWAL
Juan Y KolmetzArgentinaIoni Bowcher PROPOSAL
Ricardo J AlbaresFranceAnna Fali NEGOTIATION
Johnson V StensethRussiaStephen Shaw RENEWAL
Cody D MorascaRussiaStephen Shaw NEGOTIATION
Murillo O PerinUnited KingdomXuxue Feng RENEWAL
Greenwood E CaudyJapanIoni Bowcher NEW
Emily F CaudyRussiaOnyama Limba PROPOSAL
Jones N OstroskyItalyBernardo Dominic QUALIFIED
Smith L PoquetteArgentinaXuxue Feng PROPOSAL
Julie T WaycottBrazilStephen Shaw QUALIFIED
Jennifer P CaldareraGermanyAnna Fali NEW
Stacey J GlickGermanyAnna Fali QUALIFIED
Morrow O RulapaughUnited KingdomAmy Elsner PROPOSAL
Maria G SlusarskiUnited KingdomOnyama Limba QUALIFIED
Antonio V AmigonGermanyAmy Elsner NEW
Mayumi Q GlickCanadaAnna Fali QUALIFIED
Deepesh W KuskoCanadaAmy Elsner PROPOSAL
Wickens L ShinkoSpainAnna Fali UNQUALIFIED
Nicolas F SlusarskiItalyBernardo Dominic QUALIFIED
Aruna N ShinkoCanadaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mayumi A SergiCanadaAsiya Javayant NEW
Tony A BowleyUnited KingdomAnna Fali PROPOSAL
Clifford R RimSpainElwin Sharvill NEGOTIATION
Faith G WaycottItalyAsiya Javayant NEGOTIATION
Leja N MarrierUnited KingdomXuxue Feng PROPOSAL
Munro L FlosiCanadaIvan Magalhaes NEW
Smith C BowleyRussiaOnyama Limba PROPOSAL
Johnson Z DoeBrazilStephen Shaw UNQUALIFIED
Mayumi X FerenczAustraliaElwin Sharvill PROPOSAL
Kaitlin Y BologniaUnited KingdomBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin L DoeIndia2026-06-30Benton, John B Jr NEGOTIATION65Amy Elsner
1001Mayumi P PaprockiGermany2026-07-12King, Christopher A Esq NEW2Xuxue Feng
1002Kadeem X RimJapan2026-07-01Rousseaux, Michael Esq PROPOSAL55Onyama Limba
1003Kadeem O DilliardRussia2026-07-27Morlong Associates RENEWAL61Amy Elsner
1004Costa I GauchoGermany2026-07-29Truhlar And Truhlar Attys NEW52Xuxue Feng
1005Chavez N RoysterItaly2026-07-16Rangoni Of Florence RENEWAL92Asiya Javayant
1006Leja G MacleadJapan2026-07-12Benton, John B Jr PROPOSAL9Ivan Magalhaes
1007Smith O VocelkaJapan2026-07-06Feiner Bros RENEWAL14Ioni Bowcher
1008Aika F RoysterBrazil2026-07-04Printing Dimensions RENEWAL32Amy Elsner
1009Munro F FigeroaArgentina2026-07-19Feltz Printing Service UNQUALIFIED82Asiya Javayant
1010Murillo U PaprockiAustralia2026-07-05Dorl, James J Esq UNQUALIFIED34Bernardo Dominic
1011Chavez H BowleyBrazil2026-07-05King, Christopher A Esq QUALIFIED50Anna Fali
1012Julie D VocelkaItaly2026-07-18Buckley Miller Wright UNQUALIFIED54Ioni Bowcher
1013Murillo Q IturbideBrazil2026-07-29Chemel, James L Cpa NEGOTIATION99Stephen Shaw
1014Wickens E IturbideGermany2026-07-23Chanay, Jeffrey A Esq NEGOTIATION25Asiya Javayant
1015Alejandro N StensethCanada2026-07-23Rangoni Of Florence QUALIFIED96Anna Fali
1016Adams L ShinkoSpain2026-07-01Printing Dimensions QUALIFIED62Xuxue Feng
1017Jefferson V IturbideFrance2026-07-27Feiner Bros RENEWAL24Anna Fali
1018Morrow K MaletJapan2026-07-07Morlong Associates UNQUALIFIED65Bernardo Dominic
1019Ashley Y StockhamIndia2026-07-21Morlong Associates PROPOSAL53Anna Fali
1020Leja L FerenczArgentina2026-07-12Chapman, Ross E Esq NEGOTIATION79Ivan Magalhaes
1021Mayumi G FlosiGermany2026-07-13Chanay, Jeffrey A Esq RENEWAL23Stephen Shaw
1022Murillo I GauchoUnited Kingdom2026-07-28Printing Dimensions NEGOTIATION99Elwin Sharvill
1023Octavia V ShinkoUnited Kingdom2026-07-07Dorl, James J Esq UNQUALIFIED8Asiya Javayant
1024Munro H GlickIndia2026-07-16Feiner Bros NEW95Stephen Shaw
1025Aruna R FlosiAustralia2026-07-16Dorl, James J Esq NEGOTIATION69Onyama Limba
1026Faith I StockhamGermany2026-07-02Printing Dimensions NEW86Onyama Limba
1027Jones Z BowleyRussia2026-07-20King, Christopher A Esq QUALIFIED28Bernardo Dominic
1028Izzy W StockhamCanada2026-07-16Printing Dimensions QUALIFIED91Onyama Limba
1029Smith Q WhobreyUnited Kingdom2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED74Ioni Bowcher
1030Kadeem M WieserJapan2026-07-02Benton, John B Jr UNQUALIFIED40Xuxue Feng
1031Johnson D InouyeAustralia2026-07-25Feiner Bros PROPOSAL99Onyama Limba
1032Costa T IturbideItaly2026-07-02Buckley Miller Wright QUALIFIED79Bernardo Dominic
1033Ashley Z CampainSpain2026-07-05Commercial Press NEW84Onyama Limba
1034Leja T SlusarskiRussia2026-07-09Truhlar And Truhlar Attys NEW31Anna Fali
1035Silvio V WhobreyItaly2026-07-28Printing Dimensions NEW52Onyama Limba
1036Alejandro S SlusarskiCanada2026-07-29Rangoni Of Florence QUALIFIED12Asiya Javayant
1037Ivar L FlosiArgentina2026-07-19King, Christopher A Esq NEW62Bernardo Dominic
1038Maria Y TollnerGermany2026-07-22Rousseaux, Michael Esq UNQUALIFIED64Bernardo Dominic
1039Maisha J AmigonFrance2026-07-07Printing Dimensions NEGOTIATION18Onyama Limba
1040Aditya U CaudyGermany2026-07-25Feltz Printing Service NEW22Ioni Bowcher
1041Murillo F ChuiArgentina2026-07-04Printing Dimensions RENEWAL59Ioni Bowcher
1042Juan O MacleadArgentina2026-07-04Chapman, Ross E Esq QUALIFIED48Amy Elsner
1043Munro S OstroskyArgentina2026-07-10Feltz Printing Service RENEWAL15Amy Elsner
1044Nicolas I ChuiUnited Kingdom2026-07-03Dorl, James J Esq QUALIFIED63Anna Fali
1045Maria E MaletJapan2026-07-13Buckley Miller Wright UNQUALIFIED63Xuxue Feng
1046Antonio Y WhobreyIndia2026-06-30Feiner Bros UNQUALIFIED37Ioni Bowcher
1047Silvio J FollerBrazil2026-07-26Truhlar And Truhlar Attys NEW63Ioni Bowcher
1048Morrow J WieserSpain2026-07-25Benton, John B Jr NEGOTIATION9Amy Elsner
1049Maria R FollerBrazil2026-07-20King, Christopher A Esq NEGOTIATION82Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin X CaudyArgentinaStephen Shaw RENEWAL
Ashley I RutaBrazilIoni Bowcher QUALIFIED
Johnson J CaldareraCanadaAsiya Javayant NEW
Claire F InouyeIndiaIoni Bowcher UNQUALIFIED
Izzy I AmigonBrazilElwin Sharvill QUALIFIED
Greenwood J CampainFranceAnna Fali UNQUALIFIED
Kadeem W KuskoAustraliaIvan Magalhaes UNQUALIFIED
Jennifer P MacleadBrazilOnyama Limba NEGOTIATION
Rodrigues M OldroydBrazilElwin Sharvill QUALIFIED
Emily X SergiIndiaIoni Bowcher QUALIFIED
Sinclair B WieserFranceElwin Sharvill RENEWAL
Arvin T GauchoJapanIvan Magalhaes PROPOSAL
Ricardo X MaletCanadaStephen Shaw QUALIFIED
Alejandro F WaycottGermanyXuxue Feng UNQUALIFIED
Darci S FollerGermanyXuxue Feng RENEWAL
Aruna W MarrierJapanOnyama Limba UNQUALIFIED
Isabel I RimAustraliaAnna Fali NEGOTIATION
Leja U MacleadJapanAmy Elsner NEW
Julie M VocelkaArgentinaBernardo Dominic QUALIFIED
Leja D InouyeUnited KingdomOnyama Limba PROPOSAL
Murillo E CaldareraJapanStephen Shaw UNQUALIFIED
Smith H BriddickBrazilAmy Elsner QUALIFIED
Ivar Q CaldareraItalyAnna Fali UNQUALIFIED
Izzy N MaletFranceAmy Elsner QUALIFIED
Jeanfrancois C AmigonItalyAsiya Javayant PROPOSAL
Jones R SlusarskiCanadaAmy Elsner QUALIFIED
Johnson P BowleyArgentinaXuxue Feng NEGOTIATION
Tony S VocelkaJapanElwin Sharvill QUALIFIED
Aika Y SlusarskiJapanOnyama Limba RENEWAL
Ashley W CaudyRussiaElwin Sharvill NEGOTIATION
Claire Q MorascaArgentinaIvan Magalhaes NEGOTIATION
Salvatore X ChuiItalyIvan Magalhaes RENEWAL
Clifford H WhobreyRussiaIvan Magalhaes QUALIFIED
Jones B WhobreyRussiaAsiya Javayant UNQUALIFIED
Emily Q PoquetteItalyXuxue Feng UNQUALIFIED
Clifford J StensethItalyIoni Bowcher QUALIFIED
Ashley N BowleyItalyAnna Fali NEGOTIATION
Rodrigues H SaylorsArgentinaIoni Bowcher QUALIFIED
Morrow C SlusarskiIndiaXuxue Feng QUALIFIED
Ricardo H GauchoSpainElwin Sharvill UNQUALIFIED
Claire A CampainFranceAmy Elsner NEGOTIATION
Arvin Q GarufiItalyXuxue Feng QUALIFIED
Aika E RoysterSpainAnna Fali QUALIFIED
Aditya B VenereUnited KingdomAnna Fali NEGOTIATION
Wickens G OldroydIndiaBernardo Dominic QUALIFIED
Chavez M WieserCanadaAnna Fali PROPOSAL
Maisha T BriddickIndiaIvan Magalhaes QUALIFIED
Isabel L MarrierCanadaBernardo Dominic NEGOTIATION
Tony V WaycottFranceOnyama Limba PROPOSAL
Salvatore H WhobreyRussiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Kadeem P Ostrosky
Jones L Kusko
Wickens J Butt
Leja G Paprocki
Deepesh Z Saylors
Juan C Bowley
Deepesh M Malet
David D Rim
Leon J Whobrey
David V Perin
Ricardo L Chui
Silvio Y Vocelka
Cody X Tollner
Salvatore N Albares
David A Doe
Ashley G Foller
Greenwood C Amigon
Jones L Shinko
Jennifer T Saylors
Mayumi K Vocelka
Aditya Q Rim
Adams T Perin
Stacey R Caudy
Ashley O Briddick
Julie V Stenseth
Octavia H Figeroa
Aditya I Figeroa
Julie P Wieser
Stacey J Schemmer
Julie P Malet
Mayumi A Waycott
Maisha Z Kolmetz
Jennifer D Dilliard
Ricardo V Campain
Deepesh Y Bowley
Aditya Y Perin
Nicolas J Waycott
Aika I Paprocki
Chavez Z Foller
Johnson W Venere
Ashley C Garufi
Darci F Ostrosky
Ashley X Venere
Nicolas U Nicka
Costa J Paprocki
Ashley O Butt
Stacey Y Maclead
Aruna Y Briddick
Jeanfrancois X Venere
Octavia E Briddick
IdCountryDate
1000Canada2026-07-16
1001Australia2026-07-21
1002Japan2026-07-09
1003India2026-07-01
1004Spain2026-07-02
1005Italy2026-07-12
1006Germany2026-07-03
1007Spain2026-07-26
1008Spain2026-07-19
1009Italy2026-07-05
1010Australia2026-07-25
1011France2026-07-26
1012Australia2026-07-17
1013United Kingdom2026-06-30
1014Germany2026-07-28
1015Japan2026-07-01
1016India2026-07-24
1017United Kingdom2026-07-19
1018Germany2026-07-28
1019Australia2026-07-17
1020France2026-07-03
1021Argentina2026-07-02
1022Italy2026-07-19
1023Spain2026-07-28
1024France2026-07-20
1025Spain2026-07-22
1026Brazil2026-07-01
1027France2026-06-30
1028United Kingdom2026-07-27
1029Brazil2026-07-20
1030Brazil2026-07-19
1031Brazil2026-07-13
1032Russia2026-07-09
1033United Kingdom2026-07-20
1034Italy2026-07-01
1035Argentina2026-07-04
1036Italy2026-07-06
1037Spain2026-07-25
1038Italy2026-07-06
1039Russia2026-07-08
1040Germany2026-07-15
1041Spain2026-07-14
1042India2026-07-27
1043India2026-07-24
1044Canada2026-07-12
1045Russia2026-07-07
1046United Kingdom2026-07-27
1047India2026-07-12
1048Japan2026-07-18
1049Germany2026-07-04

On-Demand Data

NameIdCountryDate
Morrow G Morasca1000Argentina2026-07-26
Jennifer B Paprocki1001United Kingdom2026-07-21
Mayumi W Venere1002Japan2026-07-01
James Z Caudy1003Germany2026-07-23
Wickens E Flosi1004Canada2026-07-04
Aditya M Maclead1005India2026-07-06
Leja P Flosi1006Brazil2026-07-05
Claire B Royster1007India2026-07-22
Salvatore P Kolmetz1008Russia2026-07-15
Munro P Figeroa1009Canada2026-07-29
Chavez T Perin1010Spain2026-07-15
Silvio Q Inouye1011United Kingdom2026-07-08
Antonio S Rim1012Italy2026-06-30
Jennifer E Poquette1013Brazil2026-07-04
Kadeem M Kusko1014Japan2026-07-01
Ivar T Bowley1015India2026-07-13
Izzy S Caldarera1016Germany2026-07-14
David V Slusarski1017France2026-07-20
Sinclair V Waycott1018Russia2026-07-11
Greenwood F Paprocki1019Brazil2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David O RoysterFranceElwin Sharvill PROPOSAL
Ricardo S FigeroaCanadaIvan Magalhaes NEGOTIATION
Jones J GauchoSpainIvan Magalhaes RENEWAL
Chavez P SlusarskiFranceAnna Fali UNQUALIFIED
Clifford R RulapaughGermanyAmy Elsner NEGOTIATION
Aruna G RulapaughSpainXuxue Feng NEGOTIATION
Aditya X StensethBrazilElwin Sharvill PROPOSAL
Leon Q FollerIndiaIvan Magalhaes PROPOSAL
Isabel Y GlickRussiaIvan Magalhaes NEW
Ivar F AmigonUnited KingdomAnna Fali RENEWAL
Jennifer A PaprockiAustraliaOnyama Limba NEW
Nicolas E WhobreyFranceOnyama Limba PROPOSAL
Maria Q PaprockiJapanIvan Magalhaes NEGOTIATION
Ashley Z RoysterAustraliaAmy Elsner NEW
Clifford Z SlusarskiIndiaAsiya Javayant PROPOSAL
Izzy N StensethArgentinaAnna Fali RENEWAL
Rodrigues H CaudyAustraliaElwin Sharvill UNQUALIFIED
Ivar Y SlusarskiFranceAsiya Javayant PROPOSAL
Ricardo R OstroskyIndiaAsiya Javayant RENEWAL
Leon L FlosiSpainOnyama Limba RENEWAL
Wickens F CaldareraItalyAsiya Javayant PROPOSAL
Leon Q KolmetzRussiaIvan Magalhaes RENEWAL
Izzy L FigeroaIndiaAmy Elsner UNQUALIFIED
Ivar F MarrierGermanyBernardo Dominic NEW
Arvin I AmigonJapanAnna Fali NEGOTIATION
Morrow M PoquetteIndiaIvan Magalhaes PROPOSAL
Clifford Z InouyeRussiaIoni Bowcher UNQUALIFIED
Clifford C SaylorsJapanElwin Sharvill UNQUALIFIED
Rodrigues Q OstroskyGermanyAmy Elsner QUALIFIED
Octavia W StensethSpainAsiya Javayant NEGOTIATION
Munro A OstroskyUnited KingdomElwin Sharvill RENEWAL
Clifford Z AmigonBrazilAsiya Javayant QUALIFIED
Kadeem G DarakjySpainAsiya Javayant NEGOTIATION
Isabel W GauchoAustraliaIvan Magalhaes QUALIFIED
Smith X MarrierSpainElwin Sharvill RENEWAL
Maisha Q SaylorsJapanStephen Shaw QUALIFIED
Jefferson A WaycottRussiaAmy Elsner RENEWAL
Alejandro P TollnerSpainXuxue Feng NEGOTIATION
Maria U SlusarskiCanadaOnyama Limba RENEWAL
Stacey D OstroskyCanadaIoni Bowcher 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>