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
James P GillianGermanyAnna Fali NEW
Jeanfrancois N CaudyBrazilAnna Fali PROPOSAL
Francesco V ButtItalyAmy Elsner PROPOSAL
Cody H OldroydAustraliaIoni Bowcher NEGOTIATION
Deepesh K SchemmerBrazilStephen Shaw PROPOSAL
Ricardo M RulapaughItalyAnna Fali QUALIFIED
Jefferson G DoeAustraliaAmy Elsner NEW
Adams R RimIndiaIoni Bowcher RENEWAL
Costa B ShinkoArgentinaAmy Elsner RENEWAL
Izzy Y DoeCanadaAnna Fali NEGOTIATION
Leon Q PaprockiUnited KingdomAnna Fali PROPOSAL
Jefferson Z SlusarskiBrazilAsiya Javayant RENEWAL
Sinclair A MaletUnited KingdomBernardo Dominic QUALIFIED
Aika G FerenczAustraliaAsiya Javayant QUALIFIED
Rodrigues V DilliardAustraliaXuxue Feng NEGOTIATION
Tony H PaprockiArgentinaStephen Shaw NEW
Chavez W KolmetzUnited KingdomStephen Shaw QUALIFIED
Antonio Q FigeroaIndiaAsiya Javayant NEW
Johnson L GarufiGermanyXuxue Feng RENEWAL
James B MaletArgentinaAmy Elsner RENEWAL
Juan W CaudyGermanyAmy Elsner UNQUALIFIED
Leon R VocelkaRussiaAsiya Javayant RENEWAL
Johnson D MaletArgentinaElwin Sharvill RENEWAL
Ivar A NickaBrazilAmy Elsner UNQUALIFIED
Nicolas Z RutaSpainAmy Elsner NEGOTIATION
Julie Y CaudyFranceElwin Sharvill UNQUALIFIED
Octavia D PaprockiJapanAnna Fali QUALIFIED
Murillo E MaletSpainIvan Magalhaes NEGOTIATION
Mayumi J FlosiCanadaElwin Sharvill NEW
Claire O GauchoRussiaIvan Magalhaes NEW
Kaitlin A RoysterSpainXuxue Feng QUALIFIED
Johnson W AmigonItalyBernardo Dominic UNQUALIFIED
Nicolas I MarrierItalyAnna Fali PROPOSAL
Claire M VocelkaAustraliaBernardo Dominic NEW
Octavia O FollerArgentinaStephen Shaw RENEWAL
Silvio C VenereJapanIoni Bowcher NEW
Darci X SergiSpainOnyama Limba PROPOSAL
Murillo L KuskoArgentinaOnyama Limba NEGOTIATION
Mujtaba R NestleJapanAsiya Javayant PROPOSAL
Misaki A ChuiUnited KingdomIoni Bowcher PROPOSAL
Cody J ButtFranceElwin Sharvill NEW
Kadeem R SlusarskiAustraliaAnna Fali RENEWAL
Isabel C MaletAustraliaAsiya Javayant RENEWAL
Adams W WaycottBrazilIoni Bowcher UNQUALIFIED
Misaki N VocelkaAustraliaElwin Sharvill PROPOSAL
Aika I PerinCanadaAmy Elsner QUALIFIED
Rodrigues D FerenczItalyElwin Sharvill RENEWAL
Jennifer Q FlosiIndiaAnna Fali RENEWAL
Clifford Z PoquetteAustraliaIoni Bowcher NEW
Juan I DilliardItalyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily H FerenczItalyAmy Elsner NEW
Antonio T MarrierBrazilIvan Magalhaes NEW
Francesco U StensethArgentinaOnyama Limba NEW
Antonio K StensethCanadaIvan Magalhaes NEGOTIATION
Wickens J ButtUnited KingdomStephen Shaw NEGOTIATION
Clifford U MorascaCanadaBernardo Dominic PROPOSAL
Tony Z RimCanadaAmy Elsner UNQUALIFIED
Nicolas G MorascaAustraliaBernardo Dominic UNQUALIFIED
Clifford J PaprockiBrazilIvan Magalhaes RENEWAL
Kaitlin X OstroskyBrazilOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Y GarufiAustralia2026-07-21Rousseaux, Michael Esq UNQUALIFIED94Amy Elsner
1001Nicolas L StensethItaly2026-07-25Chemel, James L Cpa QUALIFIED14Amy Elsner
1002Kaitlin R AlbaresFrance2026-08-04King, Christopher A Esq RENEWAL76Ioni Bowcher
1003Antonio R AlbaresGermany2026-08-01Buckley Miller Wright UNQUALIFIED59Xuxue Feng
1004Aditya F SchemmerRussia2026-07-22Dorl, James J Esq QUALIFIED87Elwin Sharvill
1005Nicolas D SergiArgentina2026-07-25Benton, John B Jr NEW73Ioni Bowcher
1006Maria N FollerGermany2026-07-07Morlong Associates RENEWAL65Elwin Sharvill
1007Faith B RimIndia2026-07-30King, Christopher A Esq UNQUALIFIED69Anna Fali
1008Ivar Z AlbaresRussia2026-07-09Rousseaux, Michael Esq RENEWAL87Onyama Limba
1009Ricardo U FlosiRussia2026-07-23Rangoni Of Florence QUALIFIED62Amy Elsner
1010Alejandro F SlusarskiCanada2026-08-01King, Christopher A Esq NEGOTIATION28Asiya Javayant
1011Antonio Q KolmetzFrance2026-07-09Benton, John B Jr PROPOSAL16Ioni Bowcher
1012Aruna N SlusarskiItaly2026-07-26King, Christopher A Esq RENEWAL55Ivan Magalhaes
1013Tony Q FlosiRussia2026-07-29Chemel, James L Cpa PROPOSAL53Elwin Sharvill
1014Kadeem V WieserGermany2026-07-13Chemel, James L Cpa QUALIFIED16Bernardo Dominic
1015Rodrigues W IturbideArgentina2026-07-09Commercial Press NEGOTIATION53Asiya Javayant
1016Misaki H TollnerCanada2026-07-21Buckley Miller Wright NEGOTIATION15Amy Elsner
1017Francesco W MorascaSpain2026-07-11King, Christopher A Esq QUALIFIED35Anna Fali
1018Arvin C WaycottRussia2026-07-09Benton, John B Jr PROPOSAL19Stephen Shaw
1019Arvin B WaycottJapan2026-07-21King, Christopher A Esq NEW27Bernardo Dominic
1020Jones G ShinkoFrance2026-07-08Feltz Printing Service NEW72Ivan Magalhaes
1021Adams P GarufiGermany2026-07-08Printing Dimensions UNQUALIFIED58Ioni Bowcher
1022Ashley U MaletFrance2026-07-19Chemel, James L Cpa UNQUALIFIED30Elwin Sharvill
1023Murillo N VocelkaSpain2026-07-29Rousseaux, Michael Esq PROPOSAL85Asiya Javayant
1024Mayumi G DoeIndia2026-08-01Benton, John B Jr PROPOSAL42Asiya Javayant
1025Tony Z NickaCanada2026-07-25Printing Dimensions QUALIFIED4Asiya Javayant
1026Faith M SergiBrazil2026-07-07Commercial Press RENEWAL55Anna Fali
1027Emily Z MaletIndia2026-07-26King, Christopher A Esq PROPOSAL3Anna Fali
1028Antonio L PaprockiAustralia2026-07-29Printing Dimensions PROPOSAL82Elwin Sharvill
1029Smith W AlbaresSpain2026-07-12Dorl, James J Esq UNQUALIFIED92Stephen Shaw
1030Stacey X SergiGermany2026-07-08Rousseaux, Michael Esq RENEWAL32Bernardo Dominic
1031Misaki X WaycottGermany2026-07-08Morlong Associates NEGOTIATION59Amy Elsner
1032Chavez I RimIndia2026-07-17Truhlar And Truhlar Attys PROPOSAL42Amy Elsner
1033David X RutaGermany2026-07-15Truhlar And Truhlar Attys UNQUALIFIED71Xuxue Feng
1034Claire J PoquetteCanada2026-07-18Truhlar And Truhlar Attys NEW89Anna Fali
1035Arvin B AlbaresUnited Kingdom2026-07-08Dorl, James J Esq UNQUALIFIED61Bernardo Dominic
1036Chavez I VocelkaAustralia2026-07-07Feiner Bros NEW40Anna Fali
1037Johnson T ButtArgentina2026-07-06Commercial Press NEGOTIATION22Amy Elsner
1038Murillo Y RoysterSpain2026-07-09Buckley Miller Wright NEW32Ivan Magalhaes
1039Arvin U FlosiAustralia2026-07-12Chemel, James L Cpa PROPOSAL13Xuxue Feng
1040Darci R MorascaGermany2026-07-24Buckley Miller Wright QUALIFIED17Ivan Magalhaes
1041David E GlickJapan2026-07-19Chapman, Ross E Esq NEW76Xuxue Feng
1042Salvatore P MacleadJapan2026-08-04Dorl, James J Esq QUALIFIED29Elwin Sharvill
1043Francesco P OldroydAustralia2026-07-29Chemel, James L Cpa PROPOSAL59Bernardo Dominic
1044Adams E InouyeAustralia2026-07-24Rousseaux, Michael Esq UNQUALIFIED22Anna Fali
1045Adams D BologniaSpain2026-07-26Chemel, James L Cpa RENEWAL32Amy Elsner
1046Maisha L GarufiCanada2026-07-09Dorl, James J Esq NEGOTIATION40Bernardo Dominic
1047Ricardo M PerinItaly2026-07-08Rousseaux, Michael Esq PROPOSAL67Ioni Bowcher
1048Faith I SergiAustralia2026-08-04Feltz Printing Service RENEWAL91Ioni Bowcher
1049Tony G RutaRussia2026-07-25Feltz Printing Service RENEWAL91Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ivar Z FlosiArgentinaAnna Fali QUALIFIED
Maria M CaldareraFranceXuxue Feng RENEWAL
Sinclair Y DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Misaki T FigeroaFranceIvan Magalhaes PROPOSAL
Octavia Y InouyeCanadaXuxue Feng PROPOSAL
Juan B MorascaUnited KingdomAmy Elsner NEW
Aika H RoysterItalyOnyama Limba NEGOTIATION
Aditya K ChuiGermanyAsiya Javayant UNQUALIFIED
Maria R MarrierJapanXuxue Feng NEW
Kaitlin H DoeItalyXuxue Feng PROPOSAL
Darci U IturbideJapanAmy Elsner NEW
Jennifer L TollnerItalyXuxue Feng NEW
Salvatore E CaudyAustraliaIvan Magalhaes PROPOSAL
Isabel N OldroydBrazilIvan Magalhaes UNQUALIFIED
Francesco Q NestleGermanyOnyama Limba PROPOSAL
Jeanfrancois G AlbaresCanadaOnyama Limba PROPOSAL
Faith O TollnerJapanAnna Fali QUALIFIED
Smith U BriddickAustraliaOnyama Limba QUALIFIED
Murillo W WhobreyAustraliaOnyama Limba NEGOTIATION
James W StensethRussiaAsiya Javayant PROPOSAL
James T AmigonUnited KingdomIoni Bowcher NEW
Silvio R DarakjyItalyIvan Magalhaes PROPOSAL
Ivar M SchemmerGermanyStephen Shaw RENEWAL
Misaki H MarrierUnited KingdomElwin Sharvill NEW
Tony X VocelkaGermanyAnna Fali NEW
Jefferson K SlusarskiSpainAmy Elsner RENEWAL
Kadeem Z DarakjyIndiaAmy Elsner PROPOSAL
Octavia V FollerSpainAsiya Javayant UNQUALIFIED
Juan E PerinJapanAmy Elsner UNQUALIFIED
Tony O GillianFranceAnna Fali NEGOTIATION
Tony H CaldareraSpainAsiya Javayant PROPOSAL
Smith W WhobreyCanadaElwin Sharvill RENEWAL
David Z RimJapanAsiya Javayant RENEWAL
Juan E BowleyJapanXuxue Feng PROPOSAL
Mayumi E NestleAustraliaAmy Elsner RENEWAL
Sinclair O RutaArgentinaOnyama Limba RENEWAL
Stacey D VocelkaGermanyXuxue Feng UNQUALIFIED
Aditya K PerinItalyBernardo Dominic UNQUALIFIED
Mayumi C WaycottBrazilIvan Magalhaes RENEWAL
Murillo M GarufiBrazilOnyama Limba PROPOSAL
Arvin T ShinkoRussiaIvan Magalhaes NEW
James L StensethFranceOnyama Limba NEGOTIATION
Costa L OldroydUnited KingdomAmy Elsner NEGOTIATION
Ricardo X AmigonFranceBernardo Dominic PROPOSAL
Antonio T FigeroaCanadaIvan Magalhaes NEW
Aika A InouyeArgentinaIvan Magalhaes NEGOTIATION
Kaitlin E GarufiCanadaAmy Elsner RENEWAL
Maria D TollnerAustraliaAsiya Javayant NEGOTIATION
Mujtaba S KolmetzGermanyAmy Elsner NEGOTIATION
Smith J FollerItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
Kaitlin P Paprocki
Deepesh S Waycott
Sinclair L Butt
Clifford B Doe
Deepesh R Shinko
Faith N Butt
Adams J Perin
Jennifer D Bowley
Izzy I Stenseth
Morrow K Venere
Aditya F Ferencz
Silvio O Poquette
Francesco N Rim
Deepesh S Slusarski
Leja E Bowley
Kadeem V Ruta
Kadeem L Kolmetz
Kadeem K Caudy
Kaitlin I Amigon
Antonio J Stockham
Jeanfrancois M Marrier
Faith D Nicka
Jeanfrancois Y Perin
Kadeem U Maclead
Jefferson N Gillian
Smith K Vocelka
Darci C Kolmetz
Chavez R Waycott
Francesco M Briddick
Claire J Schemmer
Antonio E Bolognia
Greenwood S Perin
Isabel B Bowley
Maria Y Butt
Kadeem F Nicka
Kadeem P Glick
Adams R Gaucho
Izzy N Ruta
Ashley P Schemmer
Jefferson B Nicka
David K Saylors
Julie N Malet
Morrow O Darakjy
Kaitlin Y Shinko
Mayumi U Sergi
Wickens E Marrier
Ashley M Sergi
Mayumi K Inouye
Munro P Vocelka
Leon M Ferencz
IdCountryDate
1000Australia2026-07-16
1001Russia2026-07-06
1002France2026-07-11
1003Russia2026-07-19
1004Spain2026-07-26
1005France2026-07-07
1006India2026-07-31
1007Argentina2026-07-31
1008Argentina2026-07-22
1009Japan2026-07-12
1010Russia2026-08-01
1011France2026-07-14
1012Australia2026-07-24
1013Brazil2026-07-13
1014Japan2026-07-10
1015Spain2026-07-21
1016Brazil2026-07-31
1017Japan2026-07-16
1018Russia2026-07-15
1019United Kingdom2026-07-16
1020Australia2026-07-29
1021Russia2026-07-28
1022France2026-07-28
1023Germany2026-08-01
1024France2026-07-15
1025India2026-07-20
1026Spain2026-07-08
1027France2026-07-25
1028Brazil2026-07-25
1029India2026-07-31
1030Australia2026-07-27
1031Italy2026-07-19
1032Spain2026-08-03
1033France2026-07-12
1034Argentina2026-07-12
1035Russia2026-08-01
1036India2026-07-24
1037Japan2026-07-13
1038Brazil2026-07-15
1039Argentina2026-07-20
1040United Kingdom2026-07-17
1041India2026-07-12
1042Germany2026-07-18
1043Spain2026-07-15
1044Italy2026-07-23
1045Germany2026-08-04
1046United Kingdom2026-08-03
1047Australia2026-07-31
1048Russia2026-07-11
1049Spain2026-07-23

On-Demand Data

NameIdCountryDate
Maisha A Slusarski1000Argentina2026-07-11
Emily K Malet1001Spain2026-07-09
Morrow Q Amigon1002Argentina2026-07-12
Antonio Y Saylors1003Spain2026-07-27
Claire B Maclead1004Italy2026-07-25
David O Butt1005Argentina2026-07-31
Emily F Bolognia1006Spain2026-07-12
Jeanfrancois S Malet1007France2026-07-08
Leja H Saylors1008France2026-07-24
Aruna T Marrier1009Italy2026-07-09
Adams B Bolognia1010Germany2026-07-10
Jennifer T Figeroa1011Argentina2026-07-06
Cody S Briddick1012Brazil2026-08-02
Salvatore K Vocelka1013Italy2026-08-04
Jeanfrancois Y Ruta1014Brazil2026-07-16
Antonio W Poquette1015Argentina2026-07-29
Johnson B Malet1016Italy2026-07-26
Jeanfrancois M Foller1017Spain2026-07-28
Juan Y Bowley1018United Kingdom2026-07-21
Darci J Tollner1019Canada2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith H RutaFranceIoni Bowcher UNQUALIFIED
Francesco W DarakjyJapanElwin Sharvill RENEWAL
Octavia B GillianJapanAsiya Javayant PROPOSAL
Ashley B PerinJapanBernardo Dominic UNQUALIFIED
Wickens E ShinkoItalyElwin Sharvill UNQUALIFIED
Smith S PerinArgentinaOnyama Limba QUALIFIED
Alejandro X RulapaughJapanAsiya Javayant PROPOSAL
Jefferson J StockhamRussiaAnna Fali NEGOTIATION
Tony J GillianItalyBernardo Dominic PROPOSAL
Maisha Y ShinkoRussiaElwin Sharvill RENEWAL
Julie I CaldareraFranceIvan Magalhaes QUALIFIED
Johnson T MacleadAustraliaAmy Elsner PROPOSAL
Octavia Q GauchoRussiaIoni Bowcher QUALIFIED
Ashley O RutaArgentinaBernardo Dominic QUALIFIED
Johnson E MarrierArgentinaBernardo Dominic PROPOSAL
Izzy U DarakjyItalyIvan Magalhaes RENEWAL
Ivar X MorascaItalyBernardo Dominic PROPOSAL
Kaitlin U FollerIndiaAmy Elsner NEW
Deepesh Y DoeRussiaStephen Shaw UNQUALIFIED
Isabel U MarrierGermanyAmy Elsner NEW
Ashley X GlickBrazilBernardo Dominic NEGOTIATION
Mayumi E RutaCanadaBernardo Dominic PROPOSAL
Claire G CaudySpainBernardo Dominic NEW
Ivar Y MaletRussiaXuxue Feng NEGOTIATION
Aika O TollnerItalyAsiya Javayant PROPOSAL
Chavez L CampainSpainAnna Fali NEGOTIATION
Juan V DoeJapanElwin Sharvill NEW
Ricardo H KolmetzSpainAmy Elsner RENEWAL
Kadeem Y OldroydJapanElwin Sharvill NEW
Faith J SlusarskiIndiaXuxue Feng PROPOSAL
Tony I DilliardItalyXuxue Feng QUALIFIED
Morrow T IturbideCanadaStephen Shaw RENEWAL
Izzy X FerenczGermanyOnyama Limba NEW
Tony P GlickItalyAmy Elsner UNQUALIFIED
Aruna Q CaudySpainBernardo Dominic PROPOSAL
David I MorascaUnited KingdomBernardo Dominic RENEWAL
Julie Y FollerRussiaAmy Elsner PROPOSAL
Aika G SchemmerJapanBernardo Dominic RENEWAL
Wickens T GlickIndiaStephen Shaw RENEWAL
Greenwood L AmigonItalyIvan Magalhaes 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>