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
Francesco V KuskoSpainElwin Sharvill NEW
Faith O RutaRussiaBernardo Dominic QUALIFIED
Jones S NestleArgentinaElwin Sharvill UNQUALIFIED
Ivar N GarufiGermanyIoni Bowcher QUALIFIED
Ivar Z StockhamGermanyStephen Shaw QUALIFIED
Ivar L ChuiRussiaXuxue Feng UNQUALIFIED
Claire S AmigonIndiaAmy Elsner RENEWAL
Arvin F NickaCanadaIvan Magalhaes NEW
Costa B IturbideGermanyAnna Fali UNQUALIFIED
Morrow C IturbideJapanOnyama Limba UNQUALIFIED
Rodrigues V WieserItalyBernardo Dominic NEW
Salvatore T BowleyIndiaElwin Sharvill UNQUALIFIED
Leon A CaudyBrazilBernardo Dominic PROPOSAL
James H GillianBrazilBernardo Dominic NEW
Greenwood B BriddickItalyStephen Shaw NEW
Alejandro E FollerCanadaOnyama Limba NEGOTIATION
Kadeem M TollnerAustraliaAnna Fali QUALIFIED
Ricardo Z KuskoRussiaBernardo Dominic NEGOTIATION
Izzy N AlbaresArgentinaElwin Sharvill PROPOSAL
Smith H IturbideGermanyAsiya Javayant UNQUALIFIED
Greenwood G StockhamSpainXuxue Feng QUALIFIED
Jefferson L VocelkaSpainElwin Sharvill RENEWAL
Deepesh G RulapaughGermanyAnna Fali QUALIFIED
Kaitlin U KuskoIndiaIoni Bowcher QUALIFIED
Mujtaba Y ShinkoFranceElwin Sharvill RENEWAL
Jones H AmigonFranceBernardo Dominic NEW
Claire A AmigonJapanBernardo Dominic UNQUALIFIED
Maria W CaudyGermanyXuxue Feng QUALIFIED
Chavez P BriddickBrazilOnyama Limba QUALIFIED
Leon M GauchoJapanStephen Shaw RENEWAL
Cody E ShinkoSpainOnyama Limba QUALIFIED
Antonio A GauchoUnited KingdomElwin Sharvill PROPOSAL
Clifford L KuskoArgentinaAsiya Javayant RENEWAL
Jones Q BologniaArgentinaIoni Bowcher NEW
Izzy M RimItalyElwin Sharvill QUALIFIED
Clifford D RoysterArgentinaElwin Sharvill NEW
Claire R PoquetteJapanElwin Sharvill NEW
Wickens P AmigonArgentinaElwin Sharvill UNQUALIFIED
Jennifer W MarrierGermanyIvan Magalhaes PROPOSAL
Claire X MacleadJapanBernardo Dominic QUALIFIED
Izzy H GarufiFranceXuxue Feng QUALIFIED
Julie R DilliardCanadaOnyama Limba UNQUALIFIED
James M PoquetteJapanOnyama Limba RENEWAL
Jefferson V PoquetteBrazilOnyama Limba QUALIFIED
Jeanfrancois L CaldareraGermanyBernardo Dominic PROPOSAL
Aika W PaprockiItalyOnyama Limba NEGOTIATION
Salvatore N GlickItalyIvan Magalhaes UNQUALIFIED
Julie T DoeBrazilElwin Sharvill PROPOSAL
Kaitlin T GauchoIndiaElwin Sharvill QUALIFIED
Darci P IturbideAustraliaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio S FerenczItalyOnyama Limba PROPOSAL
Juan K FigeroaIndiaAmy Elsner QUALIFIED
Salvatore G FlosiSpainAnna Fali NEW
Aditya T MaletRussiaIvan Magalhaes NEW
Murillo P AlbaresGermanyAmy Elsner NEW
Salvatore J ChuiItalyElwin Sharvill NEW
Julie Q WhobreyItalyAmy Elsner QUALIFIED
Sinclair K CaudyItalyIvan Magalhaes NEW
Jones H MarrierIndiaAmy Elsner PROPOSAL
Munro A PoquetteItalyIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily P PaprockiArgentina2026-08-10Truhlar And Truhlar Attys NEGOTIATION74Xuxue Feng
1001Ivar S GlickSpain2026-08-06Dorl, James J Esq NEW53Xuxue Feng
1002Morrow M DilliardIndia2026-08-02Chapman, Ross E Esq QUALIFIED54Onyama Limba
1003Ivar K BologniaBrazil2026-08-08Benton, John B Jr PROPOSAL58Ioni Bowcher
1004Izzy G DoeIndia2026-08-10Printing Dimensions NEW76Elwin Sharvill
1005Maisha O WieserBrazil2026-08-28King, Christopher A Esq UNQUALIFIED21Bernardo Dominic
1006Munro M StensethSpain2026-08-27Buckley Miller Wright UNQUALIFIED62Anna Fali
1007Kaitlin I ShinkoRussia2026-08-19Feltz Printing Service QUALIFIED59Elwin Sharvill
1008Faith E SergiJapan2026-08-07Chapman, Ross E Esq QUALIFIED87Anna Fali
1009Arvin E InouyeUnited Kingdom2026-07-31Chanay, Jeffrey A Esq UNQUALIFIED91Asiya Javayant
1010Jeanfrancois G StockhamRussia2026-08-28Benton, John B Jr NEGOTIATION1Elwin Sharvill
1011Salvatore G BriddickArgentina2026-08-27Feiner Bros QUALIFIED7Onyama Limba
1012Smith R RulapaughItaly2026-08-09Chanay, Jeffrey A Esq PROPOSAL31Stephen Shaw
1013Nicolas C FollerSpain2026-08-13Printing Dimensions RENEWAL26Ivan Magalhaes
1014Smith R OstroskyItaly2026-07-31Benton, John B Jr PROPOSAL12Xuxue Feng
1015Mayumi B FigeroaGermany2026-08-02Commercial Press QUALIFIED28Xuxue Feng
1016Jeanfrancois L InouyeUnited Kingdom2026-08-07Feltz Printing Service NEW82Xuxue Feng
1017Jeanfrancois R NickaItaly2026-08-28Truhlar And Truhlar Attys NEGOTIATION34Asiya Javayant
1018Clifford O CaudySpain2026-08-11Rangoni Of Florence NEGOTIATION99Ivan Magalhaes
1019Ricardo R MorascaAustralia2026-08-20Chapman, Ross E Esq UNQUALIFIED70Asiya Javayant
1020Arvin Y AlbaresFrance2026-08-05Feltz Printing Service NEW12Stephen Shaw
1021James G DoeIndia2026-08-04Dorl, James J Esq QUALIFIED94Stephen Shaw
1022Ricardo Q KolmetzUnited Kingdom2026-08-28Commercial Press UNQUALIFIED83Anna Fali
1023Francesco N VenereAustralia2026-08-05Feltz Printing Service PROPOSAL36Amy Elsner
1024Rodrigues W RoysterBrazil2026-08-03Benton, John B Jr QUALIFIED94Ioni Bowcher
1025Misaki S RoysterCanada2026-08-26Rangoni Of Florence NEW2Elwin Sharvill
1026Munro F MaletBrazil2026-08-18Buckley Miller Wright UNQUALIFIED66Xuxue Feng
1027Jones N RulapaughItaly2026-08-09Morlong Associates NEW58Xuxue Feng
1028Aditya C BowleyUnited Kingdom2026-08-18Chanay, Jeffrey A Esq QUALIFIED45Xuxue Feng
1029Wickens N KuskoAustralia2026-08-10Commercial Press NEGOTIATION46Ivan Magalhaes
1030Deepesh S TollnerAustralia2026-08-14Chanay, Jeffrey A Esq NEGOTIATION56Onyama Limba
1031Sinclair B MaletCanada2026-08-13Morlong Associates RENEWAL36Xuxue Feng
1032Faith X MorascaCanada2026-08-08Feiner Bros NEGOTIATION84Elwin Sharvill
1033Jennifer Q ShinkoArgentina2026-08-28Buckley Miller Wright NEW20Anna Fali
1034Aditya E CaudySpain2026-08-09King, Christopher A Esq RENEWAL69Asiya Javayant
1035Ashley C ChuiBrazil2026-08-13Feiner Bros QUALIFIED26Elwin Sharvill
1036Salvatore L NestleArgentina2026-08-09Commercial Press NEW13Anna Fali
1037Kadeem P BriddickSpain2026-08-12Benton, John B Jr RENEWAL58Ioni Bowcher
1038Emily G GauchoAustralia2026-08-03Feltz Printing Service PROPOSAL37Anna Fali
1039Leon M GarufiFrance2026-08-20Chapman, Ross E Esq NEW84Asiya Javayant
1040Adams W BriddickAustralia2026-08-22Chemel, James L Cpa UNQUALIFIED81Stephen Shaw
1041Wickens R FlosiAustralia2026-08-24Commercial Press PROPOSAL53Amy Elsner
1042Wickens G AlbaresArgentina2026-08-23Truhlar And Truhlar Attys RENEWAL67Onyama Limba
1043Jeanfrancois W MorascaRussia2026-08-20King, Christopher A Esq PROPOSAL68Onyama Limba
1044Izzy K OldroydIndia2026-08-17Truhlar And Truhlar Attys RENEWAL72Bernardo Dominic
1045Mujtaba J RoysterRussia2026-08-29Chanay, Jeffrey A Esq PROPOSAL6Xuxue Feng
1046Kaitlin F SlusarskiJapan2026-08-08Benton, John B Jr NEW98Elwin Sharvill
1047Adams K SergiRussia2026-08-20Benton, John B Jr PROPOSAL32Elwin Sharvill
1048Jeanfrancois N DoeSpain2026-08-15Benton, John B Jr NEW43Amy Elsner
1049James T BologniaItaly2026-08-02Truhlar And Truhlar Attys QUALIFIED55Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Nicolas P TollnerAustraliaStephen Shaw NEW
Adams B ButtFranceAmy Elsner QUALIFIED
Jones W MaletArgentinaElwin Sharvill NEGOTIATION
Ivar W FlosiItalyIvan Magalhaes NEGOTIATION
Salvatore L GillianItalyBernardo Dominic NEW
Juan F StockhamGermanyOnyama Limba PROPOSAL
Misaki T PoquetteFranceAmy Elsner UNQUALIFIED
Johnson X DilliardRussiaIvan Magalhaes NEGOTIATION
Chavez Q FigeroaRussiaAmy Elsner PROPOSAL
Faith P DarakjyIndiaOnyama Limba PROPOSAL
Munro K DarakjyGermanyBernardo Dominic UNQUALIFIED
Francesco V FerenczCanadaIvan Magalhaes RENEWAL
Jones N KolmetzFranceBernardo Dominic PROPOSAL
Maria C MaletFranceAsiya Javayant PROPOSAL
Johnson S MacleadRussiaBernardo Dominic PROPOSAL
Deepesh G MacleadCanadaBernardo Dominic NEW
Antonio Z VocelkaUnited KingdomStephen Shaw UNQUALIFIED
David J SaylorsGermanyElwin Sharvill QUALIFIED
Clifford Z FigeroaGermanyOnyama Limba RENEWAL
Arvin V RulapaughAustraliaIoni Bowcher PROPOSAL
Jeanfrancois L BowleySpainAsiya Javayant RENEWAL
Morrow O BologniaFranceElwin Sharvill RENEWAL
Julie J SaylorsRussiaAnna Fali PROPOSAL
Leja Z PaprockiItalyAmy Elsner RENEWAL
Deepesh F SergiSpainStephen Shaw PROPOSAL
Mujtaba S RimCanadaAmy Elsner QUALIFIED
Isabel L MorascaItalyStephen Shaw PROPOSAL
Isabel W PoquetteUnited KingdomIvan Magalhaes NEW
Costa U SaylorsItalyIoni Bowcher UNQUALIFIED
Rodrigues H PoquetteArgentinaAmy Elsner NEGOTIATION
Jones W SlusarskiAustraliaAmy Elsner UNQUALIFIED
Kaitlin C WaycottArgentinaAnna Fali NEGOTIATION
Smith K PoquetteAustraliaAsiya Javayant UNQUALIFIED
Jennifer Y DoeAustraliaBernardo Dominic QUALIFIED
Johnson K PaprockiBrazilAmy Elsner NEGOTIATION
Francesco G TollnerIndiaAnna Fali NEW
Kaitlin V DarakjyAustraliaStephen Shaw RENEWAL
Ashley E FerenczFranceAmy Elsner QUALIFIED
Faith G MacleadJapanElwin Sharvill RENEWAL
Arvin O MorascaGermanyXuxue Feng PROPOSAL
Mayumi S MacleadAustraliaIoni Bowcher RENEWAL
Tony R OldroydUnited KingdomBernardo Dominic NEW
Antonio F InouyeBrazilAmy Elsner NEGOTIATION
Wickens E TollnerCanadaAsiya Javayant UNQUALIFIED
Wickens K RulapaughCanadaAsiya Javayant PROPOSAL
Ashley R GlickCanadaAsiya Javayant UNQUALIFIED
Sinclair D SlusarskiJapanIvan Magalhaes QUALIFIED
Francesco A SchemmerGermanyAmy Elsner QUALIFIED
Nicolas V WhobreyJapanAnna Fali NEW
Izzy L FlosiFranceElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Izzy N Ostrosky
Aruna J Iturbide
Cody Y Perin
Francesco Q Glick
David A Ruta
Clifford G Garufi
Arvin S Poquette
Smith J Schemmer
Kadeem P Amigon
Julie A Butt
Francesco A Perin
Stacey L Caldarera
Alejandro J Royster
Julie X Poquette
Chavez K Glick
Alejandro C Rulapaugh
David P Gillian
Johnson J Venere
Julie K Wieser
Clifford R Waycott
Julie V Iturbide
Rodrigues A Venere
Stacey N Ferencz
Jones F Caudy
Izzy B Vocelka
Mayumi X Perin
Julie I Iturbide
Emily Y Kusko
Octavia K Perin
Juan M Bolognia
Claire R Doe
Faith R Caudy
Wickens H Foller
Jennifer R Campain
Arvin B Maclead
Kaitlin I Chui
Darci Y Gaucho
Smith M Briddick
Izzy B Royster
Darci I Malet
Ricardo E Dilliard
Izzy V Royster
Ashley C Marrier
Chavez I Oldroyd
Jones U Tollner
Francesco P Venere
Cody L Malet
Costa V Ruta
Claire W Whobrey
Aika X Rulapaugh
IdCountryDate
1000Australia2026-08-14
1001Spain2026-08-04
1002Spain2026-08-13
1003Germany2026-08-28
1004Germany2026-08-22
1005Spain2026-08-18
1006Argentina2026-08-26
1007India2026-08-21
1008Russia2026-08-08
1009Argentina2026-08-29
1010France2026-08-04
1011Canada2026-08-29
1012France2026-08-03
1013Canada2026-08-26
1014Italy2026-08-22
1015India2026-08-06
1016Russia2026-08-13
1017Canada2026-08-25
1018United Kingdom2026-08-12
1019Germany2026-08-25
1020Spain2026-08-10
1021Italy2026-07-31
1022Spain2026-08-25
1023Japan2026-08-21
1024Russia2026-08-19
1025India2026-08-19
1026Italy2026-08-19
1027France2026-08-27
1028United Kingdom2026-08-11
1029France2026-08-17
1030France2026-08-12
1031Russia2026-08-02
1032India2026-08-12
1033Russia2026-08-20
1034Brazil2026-08-15
1035India2026-08-03
1036Canada2026-08-18
1037Spain2026-08-04
1038Japan2026-08-14
1039Argentina2026-08-04
1040United Kingdom2026-07-31
1041Argentina2026-08-20
1042Brazil2026-08-29
1043Australia2026-08-27
1044Spain2026-07-31
1045Germany2026-08-07
1046Japan2026-08-24
1047Russia2026-08-24
1048Brazil2026-08-06
1049Germany2026-08-04

On-Demand Data

NameIdCountryDate
Kaitlin U Schemmer1000Canada2026-08-04
Cody O Garufi1001India2026-08-09
Costa Y Schemmer1002Spain2026-08-06
Morrow N Saylors1003Japan2026-08-15
Jones B Amigon1004Italy2026-08-27
Morrow T Nestle1005Canada2026-08-12
Ricardo I Kusko1006Argentina2026-08-16
Salvatore K Dilliard1007France2026-08-21
James J Gillian1008Japan2026-08-20
Murillo S Kusko1009Brazil2026-08-16
Silvio I Caudy1010Spain2026-08-09
Maria L Bowley1011Brazil2026-08-29
James N Ruta1012Canada2026-08-12
Julie N Perin1013India2026-08-17
Aditya W Figeroa1014Russia2026-08-11
Julie Q Butt1015Italy2026-08-19
Cody A Venere1016Australia2026-08-20
Jeanfrancois J Ostrosky1017Japan2026-08-10
Misaki A Maclead1018Germany2026-08-01
Leon U Malet1019India2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James Q GarufiFranceStephen Shaw QUALIFIED
Morrow Q MaletFranceXuxue Feng QUALIFIED
Stacey Q FollerAustraliaOnyama Limba PROPOSAL
Faith F OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Jones T MacleadItalyElwin Sharvill NEGOTIATION
Silvio V GillianBrazilStephen Shaw UNQUALIFIED
Silvio Q FollerUnited KingdomAsiya Javayant QUALIFIED
Kaitlin A FollerArgentinaAmy Elsner NEW
Costa J FerenczIndiaAsiya Javayant NEGOTIATION
Chavez V WhobreyItalyIvan Magalhaes QUALIFIED
Leon N BriddickSpainBernardo Dominic UNQUALIFIED
Morrow C GauchoIndiaAnna Fali NEGOTIATION
Adams F MaletItalyElwin Sharvill QUALIFIED
David Q SergiGermanyAnna Fali NEGOTIATION
Maria Q NickaUnited KingdomBernardo Dominic UNQUALIFIED
Silvio P SlusarskiCanadaStephen Shaw NEW
Jeanfrancois P MaletBrazilStephen Shaw UNQUALIFIED
Kaitlin J BologniaSpainIvan Magalhaes UNQUALIFIED
Salvatore T SchemmerArgentinaAsiya Javayant RENEWAL
Cody T ButtGermanyXuxue Feng UNQUALIFIED
Emily Z SaylorsRussiaXuxue Feng UNQUALIFIED
Stacey R CampainIndiaStephen Shaw QUALIFIED
Maria K OstroskyIndiaBernardo Dominic PROPOSAL
Munro C SchemmerSpainStephen Shaw NEW
Ivar N RutaSpainElwin Sharvill QUALIFIED
Jennifer O NestleIndiaIvan Magalhaes PROPOSAL
Ashley J VocelkaBrazilOnyama Limba RENEWAL
Alejandro U MaletCanadaOnyama Limba UNQUALIFIED
James S NestleJapanAsiya Javayant NEGOTIATION
Clifford W CaudyBrazilElwin Sharvill PROPOSAL
Clifford S DilliardJapanElwin Sharvill RENEWAL
Ricardo R IturbideCanadaBernardo Dominic PROPOSAL
Leon Q ShinkoGermanyIvan Magalhaes QUALIFIED
Jeanfrancois G SaylorsCanadaIvan Magalhaes RENEWAL
Aruna G FlosiAustraliaAmy Elsner NEGOTIATION
Kadeem C SlusarskiSpainAnna Fali UNQUALIFIED
Greenwood R DoeItalyAmy Elsner RENEWAL
Claire F ShinkoIndiaStephen Shaw NEW
Wickens F FlosiAustraliaAmy Elsner QUALIFIED
Sinclair G FigeroaGermanyElwin 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>