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 O OldroydJapanAmy Elsner NEGOTIATION
Misaki Y DarakjyItalyBernardo Dominic NEW
Tony U AlbaresCanadaXuxue Feng PROPOSAL
Clifford A InouyeIndiaAsiya Javayant RENEWAL
Greenwood K BriddickFranceAsiya Javayant NEW
Costa Y FigeroaGermanyElwin Sharvill NEGOTIATION
Mujtaba J BriddickSpainIoni Bowcher PROPOSAL
Nicolas I NestleArgentinaAnna Fali PROPOSAL
Octavia W RulapaughBrazilBernardo Dominic NEGOTIATION
Smith P DilliardRussiaAnna Fali NEW
Claire B WieserAustraliaAsiya Javayant NEW
Octavia A DilliardSpainXuxue Feng NEW
Francesco B WieserRussiaElwin Sharvill UNQUALIFIED
Izzy E WhobreyBrazilBernardo Dominic NEGOTIATION
Johnson H GlickAustraliaAnna Fali PROPOSAL
Francesco B AlbaresFranceAsiya Javayant NEW
Antonio Y NestleUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois W SergiRussiaElwin Sharvill NEW
Costa A NickaGermanyAsiya Javayant QUALIFIED
Deepesh J NestleBrazilOnyama Limba NEW
Morrow Y PerinGermanyElwin Sharvill RENEWAL
Stacey C FlosiIndiaXuxue Feng NEW
Jennifer C MorascaCanadaIvan Magalhaes RENEWAL
Tony P StensethSpainIvan Magalhaes NEGOTIATION
Ricardo R SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Faith A RutaUnited KingdomIoni Bowcher RENEWAL
Aruna P ShinkoAustraliaIvan Magalhaes UNQUALIFIED
Alejandro E GlickAustraliaOnyama Limba UNQUALIFIED
Greenwood K BowleyFranceAsiya Javayant QUALIFIED
Ashley E MaletAustraliaAsiya Javayant NEW
Adams M KolmetzAustraliaAsiya Javayant RENEWAL
Jennifer D FerenczRussiaBernardo Dominic NEW
Isabel K BowleyRussiaAnna Fali NEGOTIATION
Jennifer B SlusarskiBrazilAmy Elsner NEGOTIATION
Salvatore U FollerArgentinaAnna Fali NEW
Maisha G CaudyCanadaIoni Bowcher NEW
Greenwood Z RoysterItalyElwin Sharvill NEW
James H GillianBrazilBernardo Dominic UNQUALIFIED
Maria U TollnerSpainOnyama Limba PROPOSAL
Kaitlin B CaldareraFranceElwin Sharvill NEW
Murillo H AmigonSpainXuxue Feng UNQUALIFIED
Aditya I CaudyCanadaIvan Magalhaes NEW
Alejandro D SchemmerBrazilAnna Fali NEW
Nicolas C SaylorsArgentinaXuxue Feng RENEWAL
Aika J PerinArgentinaOnyama Limba UNQUALIFIED
Claire L ShinkoArgentinaBernardo Dominic NEGOTIATION
Julie M CaldareraFranceAsiya Javayant PROPOSAL
Mayumi D DoeJapanAmy Elsner RENEWAL
James F SchemmerSpainIoni Bowcher QUALIFIED
Clifford Y SergiIndiaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair T PerinCanadaIvan Magalhaes NEGOTIATION
Nicolas U SchemmerArgentinaBernardo Dominic RENEWAL
Ashley O RoysterJapanOnyama Limba NEW
Faith H SchemmerRussiaAsiya Javayant NEW
Jennifer Y SergiSpainIoni Bowcher NEW
Aika F DoeItalyStephen Shaw NEGOTIATION
Deepesh T GlickItalyStephen Shaw QUALIFIED
Francesco A DilliardArgentinaAmy Elsner UNQUALIFIED
Adams F WieserCanadaStephen Shaw NEGOTIATION
Arvin Q CaudyJapanAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith I StensethBrazil2026-07-14Truhlar And Truhlar Attys PROPOSAL85Stephen Shaw
1001Chavez T DarakjyUnited Kingdom2026-06-23Rangoni Of Florence QUALIFIED12Asiya Javayant
1002Octavia K GillianBrazil2026-06-26Buckley Miller Wright PROPOSAL99Bernardo Dominic
1003Cody N NestleArgentina2026-07-15Truhlar And Truhlar Attys QUALIFIED74Elwin Sharvill
1004Octavia Y TollnerArgentina2026-07-07King, Christopher A Esq RENEWAL84Anna Fali
1005Leja T FlosiFrance2026-06-18Feiner Bros QUALIFIED34Stephen Shaw
1006Johnson H SaylorsCanada2026-06-30Benton, John B Jr QUALIFIED43Ivan Magalhaes
1007Aika L PoquetteBrazil2026-07-17King, Christopher A Esq QUALIFIED82Ioni Bowcher
1008Nicolas Q PaprockiSpain2026-07-09Printing Dimensions PROPOSAL66Stephen Shaw
1009Smith W MorascaCanada2026-06-18Commercial Press NEGOTIATION81Asiya Javayant
1010Jeanfrancois N ChuiIndia2026-06-24Commercial Press PROPOSAL59Ivan Magalhaes
1011Claire F InouyeSpain2026-07-13King, Christopher A Esq QUALIFIED67Ioni Bowcher
1012Maria V AmigonArgentina2026-07-07Rousseaux, Michael Esq PROPOSAL21Ivan Magalhaes
1013Alejandro X GlickSpain2026-06-22Morlong Associates RENEWAL56Xuxue Feng
1014Mujtaba K RimCanada2026-06-20Printing Dimensions NEW41Xuxue Feng
1015Rodrigues G BriddickIndia2026-07-02Feltz Printing Service PROPOSAL28Ivan Magalhaes
1016Wickens P FerenczAustralia2026-07-12Dorl, James J Esq QUALIFIED6Bernardo Dominic
1017Sinclair K MorascaJapan2026-06-27Chanay, Jeffrey A Esq UNQUALIFIED30Ivan Magalhaes
1018Tony A VocelkaSpain2026-06-20Rangoni Of Florence QUALIFIED39Elwin Sharvill
1019Kaitlin M SchemmerBrazil2026-07-04Benton, John B Jr QUALIFIED93Anna Fali
1020Ricardo Z NickaFrance2026-07-11Benton, John B Jr RENEWAL64Xuxue Feng
1021James Q InouyeIndia2026-07-13Rousseaux, Michael Esq NEW32Ivan Magalhaes
1022Aditya F CaudyAustralia2026-06-22Chapman, Ross E Esq NEW33Asiya Javayant
1023Julie N AmigonBrazil2026-07-11Feiner Bros RENEWAL95Stephen Shaw
1024Tony U PoquetteJapan2026-07-13Truhlar And Truhlar Attys NEW60Ivan Magalhaes
1025Leja F WhobreyArgentina2026-07-05Chanay, Jeffrey A Esq NEGOTIATION87Ivan Magalhaes
1026Isabel B InouyeBrazil2026-07-17Rangoni Of Florence NEW45Onyama Limba
1027Leon O SchemmerIndia2026-07-15Dorl, James J Esq PROPOSAL88Amy Elsner
1028Claire E SaylorsFrance2026-06-18Benton, John B Jr RENEWAL31Ioni Bowcher
1029James Z CampainArgentina2026-06-18Rousseaux, Michael Esq NEW69Anna Fali
1030Antonio D MaletSpain2026-06-20King, Christopher A Esq NEGOTIATION14Ioni Bowcher
1031Kadeem U GlickItaly2026-06-20Printing Dimensions NEW49Asiya Javayant
1032Greenwood P StensethFrance2026-06-22Benton, John B Jr QUALIFIED64Xuxue Feng
1033Kadeem C GillianFrance2026-07-07King, Christopher A Esq PROPOSAL51Ivan Magalhaes
1034Cody V PerinIndia2026-07-07Feltz Printing Service PROPOSAL13Amy Elsner
1035Antonio K DoeJapan2026-07-17Dorl, James J Esq NEGOTIATION9Amy Elsner
1036Francesco J VenereFrance2026-07-15King, Christopher A Esq NEGOTIATION39Elwin Sharvill
1037Stacey B BriddickFrance2026-07-07Printing Dimensions NEW54Anna Fali
1038Arvin G PerinArgentina2026-07-06Buckley Miller Wright NEGOTIATION30Onyama Limba
1039Aruna D BowleyIndia2026-06-30Chanay, Jeffrey A Esq PROPOSAL70Ioni Bowcher
1040Greenwood Q BowleyCanada2026-07-14Dorl, James J Esq UNQUALIFIED65Asiya Javayant
1041Ricardo U MacleadAustralia2026-07-03Morlong Associates UNQUALIFIED26Ioni Bowcher
1042Arvin U MaletGermany2026-07-03Benton, John B Jr QUALIFIED22Anna Fali
1043Tony T NickaSpain2026-07-01Chapman, Ross E Esq RENEWAL40Xuxue Feng
1044Wickens J DarakjyUnited Kingdom2026-07-16Chanay, Jeffrey A Esq QUALIFIED62Bernardo Dominic
1045Clifford U MaletAustralia2026-07-02Rangoni Of Florence QUALIFIED89Amy Elsner
1046David A NickaAustralia2026-07-17Chemel, James L Cpa RENEWAL8Xuxue Feng
1047Nicolas L SaylorsIndia2026-07-07Rousseaux, Michael Esq NEGOTIATION59Anna Fali
1048Stacey N WieserJapan2026-06-28Commercial Press NEGOTIATION38Ioni Bowcher
1049Cody A CampainJapan2026-06-23Rangoni Of Florence PROPOSAL74Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar F BriddickArgentinaXuxue Feng PROPOSAL
Jennifer X NestleBrazilXuxue Feng UNQUALIFIED
Morrow R GauchoItalyAsiya Javayant UNQUALIFIED
Chavez R CaldareraJapanBernardo Dominic PROPOSAL
Ashley A BowleySpainElwin Sharvill NEGOTIATION
Costa V NestleGermanyIvan Magalhaes RENEWAL
Leon K VocelkaAustraliaElwin Sharvill NEGOTIATION
Munro H AlbaresFranceIoni Bowcher RENEWAL
Isabel Z FlosiUnited KingdomAnna Fali NEW
Darci D MarrierJapanAsiya Javayant NEGOTIATION
Jennifer C FerenczArgentinaOnyama Limba PROPOSAL
Maria I AmigonBrazilBernardo Dominic NEW
Isabel N MacleadJapanOnyama Limba QUALIFIED
Aditya S CaldareraIndiaAsiya Javayant PROPOSAL
Sinclair A ChuiSpainStephen Shaw UNQUALIFIED
Juan L KolmetzArgentinaAnna Fali PROPOSAL
Julie A StockhamIndiaIvan Magalhaes QUALIFIED
Aika Y NickaFranceOnyama Limba PROPOSAL
Octavia S MarrierJapanStephen Shaw NEGOTIATION
Ricardo Y GlickJapanIoni Bowcher NEW
Maria Q FollerJapanOnyama Limba RENEWAL
Maria M BowleyIndiaAsiya Javayant QUALIFIED
Clifford H OstroskyBrazilAnna Fali NEGOTIATION
Maisha E RutaItalyElwin Sharvill PROPOSAL
Mayumi M InouyeJapanXuxue Feng QUALIFIED
Arvin H SchemmerUnited KingdomAnna Fali NEW
Jones S StensethGermanyOnyama Limba RENEWAL
Aruna B GauchoIndiaIvan Magalhaes NEGOTIATION
Darci O OstroskyCanadaAmy Elsner NEW
Morrow F BriddickFranceAsiya Javayant NEW
Rodrigues V MaletCanadaAnna Fali PROPOSAL
Aruna B InouyeItalyXuxue Feng NEGOTIATION
Isabel X InouyeJapanAmy Elsner PROPOSAL
Ricardo G KolmetzAustraliaAmy Elsner NEW
Leja H FlosiItalyIvan Magalhaes QUALIFIED
Maisha O AmigonBrazilOnyama Limba NEW
Nicolas T ShinkoCanadaIoni Bowcher QUALIFIED
Aruna T RimUnited KingdomStephen Shaw RENEWAL
Jefferson E SaylorsUnited KingdomAsiya Javayant QUALIFIED
Juan Q GarufiIndiaOnyama Limba RENEWAL
Leon F MaletCanadaStephen Shaw NEGOTIATION
Jennifer T StensethUnited KingdomBernardo Dominic NEW
Chavez C CampainIndiaOnyama Limba NEGOTIATION
Misaki A KolmetzSpainAnna Fali NEGOTIATION
Aruna K FigeroaAustraliaElwin Sharvill RENEWAL
Ivar P KolmetzUnited KingdomAnna Fali QUALIFIED
Deepesh H OstroskyItalyIoni Bowcher QUALIFIED
Jefferson S CampainBrazilIvan Magalhaes NEGOTIATION
Maisha Z OldroydRussiaBernardo Dominic NEW
Jennifer J CampainRussiaBernardo Dominic RENEWAL
Frozen Columns
Name
Jennifer E Garufi
Francesco L Caudy
Greenwood T Nestle
Jennifer O Briddick
Julie D Chui
Nicolas B Rulapaugh
Maria Y Marrier
Emily S Maclead
Greenwood D Ostrosky
Antonio S Nicka
Octavia P Stenseth
Rodrigues V Briddick
Leja G Chui
Chavez C Saylors
Octavia H Wieser
Jefferson X Garufi
Jennifer L Amigon
Francesco W Malet
Maria G Slusarski
Ricardo P Bowley
Claire P Kolmetz
Jones O Nicka
Aditya B Campain
James U Saylors
Chavez X Chui
Aika T Perin
Octavia N Malet
Jennifer P Darakjy
Ivar D Tollner
Misaki K Figeroa
Murillo S Kolmetz
Leon Y Waycott
Aditya Y Figeroa
Antonio K Royster
Octavia L Ostrosky
Misaki A Chui
Stacey W Morasca
Ricardo W Maclead
Stacey S Waycott
Salvatore G Stockham
Jennifer Y Ruta
Costa Z Gillian
Chavez P Kolmetz
Alejandro E Slusarski
Octavia H Darakjy
Emily U Royster
James S Wieser
Stacey C Ostrosky
Julie C Iturbide
Rodrigues M Schemmer
IdCountryDate
1000Argentina2026-07-06
1001Germany2026-06-29
1002Argentina2026-07-16
1003Italy2026-07-16
1004Canada2026-07-03
1005Brazil2026-07-11
1006Russia2026-07-17
1007Spain2026-06-23
1008Canada2026-07-07
1009Germany2026-07-06
1010Italy2026-07-14
1011Brazil2026-06-21
1012Germany2026-06-23
1013Spain2026-07-06
1014Spain2026-07-14
1015Spain2026-07-03
1016Canada2026-06-22
1017Australia2026-07-11
1018Italy2026-07-14
1019Australia2026-07-04
1020Argentina2026-06-27
1021Italy2026-07-01
1022Russia2026-07-13
1023Canada2026-06-24
1024Argentina2026-06-24
1025Brazil2026-07-17
1026India2026-06-24
1027France2026-07-15
1028United Kingdom2026-07-08
1029Brazil2026-07-08
1030Russia2026-06-19
1031Australia2026-07-12
1032Australia2026-07-05
1033Japan2026-07-17
1034France2026-07-12
1035Brazil2026-07-13
1036Australia2026-07-06
1037Argentina2026-06-27
1038Russia2026-07-14
1039Argentina2026-07-02
1040Argentina2026-07-04
1041Russia2026-06-27
1042Japan2026-07-02
1043United Kingdom2026-07-15
1044Australia2026-06-22
1045Germany2026-07-06
1046Australia2026-06-22
1047India2026-07-07
1048United Kingdom2026-07-15
1049France2026-06-25

On-Demand Data

NameIdCountryDate
Tony V Albares1000Germany2026-06-28
Stacey Y Darakjy1001Spain2026-06-26
Darci E Glick1002Germany2026-07-07
Isabel D Shinko1003France2026-07-04
Izzy J Wieser1004India2026-07-14
Faith P Vocelka1005Argentina2026-06-30
Claire B Wieser1006Italy2026-06-30
Greenwood H Rim1007Russia2026-07-12
Ashley K Briddick1008Russia2026-07-04
Jeanfrancois K Darakjy1009Canada2026-07-02
Isabel F Gillian1010Russia2026-06-25
Silvio M Venere1011United Kingdom2026-07-03
Juan T Kusko1012Brazil2026-06-30
Mujtaba V Inouye1013India2026-07-15
Claire T Bolognia1014Germany2026-06-24
Ashley L Briddick1015Brazil2026-07-09
Ivar D Ruta1016Australia2026-07-14
Stacey V Flosi1017Canada2026-07-15
Faith U Poquette1018Japan2026-07-13
Kadeem M Perin1019India2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika J SlusarskiArgentinaIoni Bowcher RENEWAL
Deepesh D NickaJapanOnyama Limba NEW
Johnson P FollerCanadaOnyama Limba NEW
Jones G RutaSpainAsiya Javayant QUALIFIED
Leja K AmigonUnited KingdomIoni Bowcher RENEWAL
Murillo A CampainBrazilXuxue Feng UNQUALIFIED
Mayumi O FerenczJapanBernardo Dominic UNQUALIFIED
Jennifer K RutaArgentinaAmy Elsner RENEWAL
Kaitlin J DarakjyGermanyAnna Fali RENEWAL
Faith Z RutaItalyBernardo Dominic RENEWAL
Smith G DoeSpainAsiya Javayant PROPOSAL
Kaitlin X RoysterIndiaIoni Bowcher NEW
Greenwood A WhobreyCanadaOnyama Limba NEW
Silvio C SlusarskiItalyXuxue Feng QUALIFIED
Aruna B MacleadRussiaBernardo Dominic PROPOSAL
Jennifer K DoeIndiaBernardo Dominic UNQUALIFIED
Silvio P StockhamIndiaBernardo Dominic QUALIFIED
Mayumi A FollerSpainAnna Fali NEGOTIATION
Francesco A NestleIndiaXuxue Feng UNQUALIFIED
Silvio M FlosiIndiaOnyama Limba NEGOTIATION
Julie L RutaBrazilAmy Elsner RENEWAL
Clifford S SchemmerGermanyBernardo Dominic RENEWAL
Maria Y WhobreyAustraliaIoni Bowcher NEGOTIATION
Murillo Q RulapaughAustraliaAmy Elsner NEGOTIATION
Kadeem V MaletRussiaBernardo Dominic RENEWAL
Deepesh O MaletRussiaStephen Shaw RENEWAL
Wickens N WaycottBrazilAmy Elsner NEW
Emily L SlusarskiBrazilBernardo Dominic RENEWAL
Aditya O DilliardAustraliaAsiya Javayant PROPOSAL
Clifford A StensethRussiaIoni Bowcher UNQUALIFIED
Izzy R OstroskyItalyStephen Shaw RENEWAL
David C OldroydJapanOnyama Limba QUALIFIED
Aika B AlbaresUnited KingdomAsiya Javayant RENEWAL
Isabel W VenereGermanyAnna Fali NEGOTIATION
Octavia F MorascaAustraliaElwin Sharvill NEW
Mayumi X TollnerArgentinaElwin Sharvill RENEWAL
Stacey Q ButtUnited KingdomIoni Bowcher NEGOTIATION
Emily Z GarufiCanadaIoni Bowcher UNQUALIFIED
Leja S MaletCanadaAmy Elsner NEGOTIATION
Aditya J AlbaresUnited KingdomAnna Fali 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>