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
Misaki G GarufiItalyOnyama Limba NEW
Emily N CaudyCanadaElwin Sharvill RENEWAL
Maisha H WaycottUnited KingdomBernardo Dominic PROPOSAL
Smith Y IturbideRussiaStephen Shaw QUALIFIED
Jones E VenereUnited KingdomAmy Elsner UNQUALIFIED
Salvatore V NestleUnited KingdomXuxue Feng RENEWAL
Jefferson V ChuiCanadaElwin Sharvill PROPOSAL
Greenwood C VocelkaSpainIoni Bowcher NEW
Aruna B NestleSpainAmy Elsner RENEWAL
Costa I SergiArgentinaStephen Shaw UNQUALIFIED
Ricardo U GarufiSpainXuxue Feng QUALIFIED
Salvatore G GarufiAustraliaAsiya Javayant NEW
David B DoeGermanyAnna Fali NEW
Deepesh G StensethRussiaIoni Bowcher PROPOSAL
Darci V AmigonGermanyAmy Elsner NEGOTIATION
Aditya N OldroydRussiaStephen Shaw RENEWAL
Silvio G SchemmerRussiaAsiya Javayant QUALIFIED
Ivar I SchemmerIndiaAnna Fali NEGOTIATION
Silvio V SlusarskiFranceAnna Fali QUALIFIED
Mayumi F IturbideItalyAmy Elsner NEGOTIATION
Faith D SchemmerGermanyAnna Fali UNQUALIFIED
Ivar K CampainJapanAmy Elsner QUALIFIED
Ricardo O InouyeAustraliaAsiya Javayant UNQUALIFIED
Antonio Q PoquetteAustraliaAmy Elsner QUALIFIED
Faith R ButtRussiaAmy Elsner QUALIFIED
Rodrigues X ChuiSpainAsiya Javayant UNQUALIFIED
Ashley I ShinkoAustraliaElwin Sharvill NEGOTIATION
Ivar G OstroskyJapanAsiya Javayant QUALIFIED
Arvin K MaletUnited KingdomIvan Magalhaes NEW
Adams J MacleadGermanyAnna Fali NEW
Jefferson H WaycottItalyAnna Fali PROPOSAL
Aruna M BologniaUnited KingdomStephen Shaw RENEWAL
Kadeem X WieserUnited KingdomElwin Sharvill RENEWAL
Kaitlin N RimItalyXuxue Feng UNQUALIFIED
Francesco L MaletJapanAsiya Javayant UNQUALIFIED
Jones J NestleSpainStephen Shaw QUALIFIED
Darci M ChuiAustraliaAnna Fali PROPOSAL
Kaitlin Y IturbideFranceOnyama Limba UNQUALIFIED
Tony U SlusarskiIndiaStephen Shaw UNQUALIFIED
Mujtaba L GauchoCanadaStephen Shaw NEW
Mujtaba B BowleyCanadaAmy Elsner NEW
Antonio O CaldareraGermanyAnna Fali RENEWAL
Julie F WhobreyRussiaElwin Sharvill QUALIFIED
David W StockhamItalyIvan Magalhaes PROPOSAL
Salvatore B ButtIndiaIoni Bowcher PROPOSAL
Nicolas K OldroydFranceIoni Bowcher NEW
Maisha F CampainFranceAnna Fali PROPOSAL
Chavez O RulapaughSpainAmy Elsner NEGOTIATION
Faith W KolmetzIndiaXuxue Feng UNQUALIFIED
Misaki O StensethItalyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro A SchemmerUnited KingdomAmy Elsner UNQUALIFIED
Tony X FollerUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem Z SergiFranceIoni Bowcher NEGOTIATION
Sinclair T MaletIndiaStephen Shaw UNQUALIFIED
Jeanfrancois B VenereItalyAnna Fali PROPOSAL
Faith I CaudyUnited KingdomAmy Elsner QUALIFIED
Darci M WhobreyItalyAnna Fali NEGOTIATION
Silvio T PoquetteAustraliaAnna Fali RENEWAL
David P ShinkoItalyXuxue Feng QUALIFIED
Alejandro W CaudyCanadaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki W AmigonCanada2026-07-07Commercial Press RENEWAL14Bernardo Dominic
1001Isabel X AlbaresRussia2026-07-08Morlong Associates UNQUALIFIED32Stephen Shaw
1002Ricardo Z PerinSpain2026-06-30King, Christopher A Esq NEW35Ivan Magalhaes
1003Octavia W RulapaughArgentina2026-07-02Chemel, James L Cpa PROPOSAL26Elwin Sharvill
1004Leon W DoeCanada2026-07-09Printing Dimensions UNQUALIFIED36Amy Elsner
1005Jefferson E WhobreyBrazil2026-07-03King, Christopher A Esq RENEWAL55Onyama Limba
1006Aruna D StockhamArgentina2026-07-07Feltz Printing Service QUALIFIED7Anna Fali
1007David V PerinBrazil2026-07-11Printing Dimensions NEW27Ivan Magalhaes
1008Salvatore T FollerGermany2026-07-01Chemel, James L Cpa UNQUALIFIED50Ivan Magalhaes
1009Faith J RoysterBrazil2026-07-12Rangoni Of Florence UNQUALIFIED40Bernardo Dominic
1010Clifford Y BowleyGermany2026-07-10Printing Dimensions NEW51Asiya Javayant
1011Smith O NickaSpain2026-07-04Chemel, James L Cpa PROPOSAL94Xuxue Feng
1012Clifford V MarrierCanada2026-07-11Chapman, Ross E Esq RENEWAL6Amy Elsner
1013Jeanfrancois Z FollerJapan2026-07-01Commercial Press QUALIFIED73Asiya Javayant
1014Claire P KuskoBrazil2026-07-15Printing Dimensions UNQUALIFIED58Ioni Bowcher
1015Emily L AmigonAustralia2026-07-05King, Christopher A Esq UNQUALIFIED94Ioni Bowcher
1016Mujtaba P SergiIndia2026-06-30Feltz Printing Service RENEWAL4Onyama Limba
1017Aika J MacleadJapan2026-07-10King, Christopher A Esq NEW55Ivan Magalhaes
1018Maisha X VocelkaGermany2026-07-14Rousseaux, Michael Esq UNQUALIFIED14Bernardo Dominic
1019Wickens O RulapaughUnited Kingdom2026-07-09Benton, John B Jr UNQUALIFIED41Xuxue Feng
1020Munro M SchemmerUnited Kingdom2026-07-16Rousseaux, Michael Esq NEW62Asiya Javayant
1021Murillo Q SaylorsRussia2026-07-11Truhlar And Truhlar Attys RENEWAL45Ivan Magalhaes
1022Ricardo P DarakjyCanada2026-07-05Benton, John B Jr QUALIFIED32Elwin Sharvill
1023James K NickaArgentina2026-06-25Rangoni Of Florence UNQUALIFIED92Asiya Javayant
1024Costa W KuskoBrazil2026-06-29Feiner Bros NEW13Asiya Javayant
1025Juan R DarakjyFrance2026-07-06Dorl, James J Esq RENEWAL29Ivan Magalhaes
1026Mayumi A AlbaresArgentina2026-07-20Printing Dimensions UNQUALIFIED45Bernardo Dominic
1027Juan H MarrierBrazil2026-07-15Morlong Associates PROPOSAL86Asiya Javayant
1028Kaitlin Z RimIndia2026-07-05Chanay, Jeffrey A Esq RENEWAL70Asiya Javayant
1029Leon E GlickBrazil2026-06-21Benton, John B Jr UNQUALIFIED3Onyama Limba
1030Smith C WaycottJapan2026-07-10Commercial Press PROPOSAL11Anna Fali
1031Chavez C MorascaItaly2026-07-16Chapman, Ross E Esq NEGOTIATION69Onyama Limba
1032Munro L NickaRussia2026-07-12Feltz Printing Service RENEWAL65Amy Elsner
1033Maria M ButtCanada2026-07-19Printing Dimensions UNQUALIFIED64Xuxue Feng
1034Faith A MorascaCanada2026-06-22Commercial Press RENEWAL37Elwin Sharvill
1035Jeanfrancois T AmigonSpain2026-07-06Truhlar And Truhlar Attys NEGOTIATION9Xuxue Feng
1036Ashley P GauchoUnited Kingdom2026-07-12Feltz Printing Service RENEWAL12Xuxue Feng
1037Mayumi U FollerIndia2026-06-23Dorl, James J Esq NEGOTIATION14Amy Elsner
1038Smith W IturbideItaly2026-07-02Dorl, James J Esq NEW48Bernardo Dominic
1039David W NickaUnited Kingdom2026-06-28Rousseaux, Michael Esq PROPOSAL19Ivan Magalhaes
1040Ricardo B NickaAustralia2026-06-24Feiner Bros NEGOTIATION11Elwin Sharvill
1041Misaki N WhobreyArgentina2026-07-08Chanay, Jeffrey A Esq NEGOTIATION93Xuxue Feng
1042Emily I MarrierRussia2026-06-29Truhlar And Truhlar Attys NEGOTIATION22Amy Elsner
1043Murillo N MarrierJapan2026-06-27Printing Dimensions NEGOTIATION47Elwin Sharvill
1044Salvatore B BowleyCanada2026-06-24Commercial Press RENEWAL26Elwin Sharvill
1045Tony O SchemmerGermany2026-07-04Printing Dimensions NEGOTIATION90Anna Fali
1046Morrow P MorascaGermany2026-07-05Chemel, James L Cpa QUALIFIED48Onyama Limba
1047Darci F MarrierJapan2026-07-04Dorl, James J Esq QUALIFIED65Asiya Javayant
1048Izzy W MaletItaly2026-06-24Rangoni Of Florence RENEWAL7Ivan Magalhaes
1049Jeanfrancois J PerinArgentina2026-07-07Truhlar And Truhlar Attys UNQUALIFIED62Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Costa Z SaylorsIndiaOnyama Limba QUALIFIED
Jefferson Z FigeroaItalyIoni Bowcher QUALIFIED
Jeanfrancois T MaletRussiaAmy Elsner QUALIFIED
Faith C GauchoJapanElwin Sharvill QUALIFIED
Maisha W SaylorsIndiaStephen Shaw NEGOTIATION
Wickens O GarufiItalyBernardo Dominic RENEWAL
Rodrigues B RulapaughUnited KingdomStephen Shaw NEGOTIATION
Faith E PoquetteGermanyAsiya Javayant UNQUALIFIED
Ivar Y PaprockiSpainAnna Fali NEW
Francesco I WieserCanadaOnyama Limba QUALIFIED
Aika J OldroydJapanIoni Bowcher PROPOSAL
Tony X MaletUnited KingdomBernardo Dominic NEGOTIATION
Aruna D ShinkoBrazilAsiya Javayant NEGOTIATION
Jeanfrancois S GillianArgentinaIoni Bowcher RENEWAL
Darci X KolmetzFranceIvan Magalhaes NEW
Clifford Z CaldareraAustraliaAsiya Javayant NEW
Smith F AmigonGermanyIoni Bowcher NEW
Francesco F FlosiSpainBernardo Dominic QUALIFIED
Adams S KolmetzFranceStephen Shaw NEW
Jeanfrancois I ButtItalyOnyama Limba RENEWAL
Cody L RoysterJapanBernardo Dominic PROPOSAL
Jones W DarakjyItalyAsiya Javayant RENEWAL
Alejandro K BriddickAustraliaAmy Elsner QUALIFIED
Costa T WhobreyGermanyBernardo Dominic RENEWAL
Aditya P StensethIndiaBernardo Dominic UNQUALIFIED
Claire B RimRussiaAnna Fali QUALIFIED
Munro U PoquetteRussiaXuxue Feng PROPOSAL
Deepesh E BriddickItalyIvan Magalhaes NEGOTIATION
Adams D GauchoJapanAnna Fali RENEWAL
Aika Q StockhamFranceOnyama Limba RENEWAL
Leja C MaletIndiaBernardo Dominic QUALIFIED
Ricardo V MorascaSpainIvan Magalhaes UNQUALIFIED
Salvatore Y RulapaughCanadaStephen Shaw NEGOTIATION
Darci W WhobreySpainStephen Shaw UNQUALIFIED
Aika K BologniaSpainAnna Fali RENEWAL
Juan U GlickItalyAmy Elsner NEGOTIATION
Chavez Q SchemmerItalyElwin Sharvill QUALIFIED
Juan R GillianGermanyAsiya Javayant UNQUALIFIED
Jennifer G InouyeArgentinaAnna Fali UNQUALIFIED
Claire R RimFranceXuxue Feng NEGOTIATION
Ricardo M ShinkoIndiaBernardo Dominic NEW
Tony F WieserItalyElwin Sharvill UNQUALIFIED
Deepesh D CaldareraCanadaOnyama Limba NEGOTIATION
Clifford Q KuskoRussiaAnna Fali UNQUALIFIED
David M StockhamAustraliaIoni Bowcher RENEWAL
Murillo O NestleIndiaAsiya Javayant QUALIFIED
Jeanfrancois B GauchoFranceOnyama Limba QUALIFIED
Aditya J RoysterFranceAnna Fali RENEWAL
Arvin Y RimCanadaAnna Fali NEGOTIATION
Greenwood G CaudyCanadaElwin Sharvill RENEWAL
Frozen Columns
Name
Greenwood Q Sergi
Isabel P Ostrosky
Aika R Garufi
Rodrigues H Ruta
Jennifer T Dilliard
Stacey Y Tollner
Aika N Stockham
Faith F Kusko
Sinclair U Slusarski
Sinclair O Nestle
Aditya F Figeroa
Stacey V Foller
David M Butt
Murillo R Briddick
David Z Saylors
Cody F Rulapaugh
Tony T Iturbide
Silvio Z Kusko
Murillo J Campain
Johnson R Gillian
Faith W Ostrosky
Sinclair K Saylors
Kaitlin C Rulapaugh
Aika Q Shinko
Ricardo J Venere
Izzy M Maclead
Misaki N Venere
Greenwood C Venere
Salvatore X Gillian
Greenwood I Venere
Clifford X Wieser
Rodrigues E Campain
Adams E Foller
Jeanfrancois E Oldroyd
Ricardo L Saylors
Stacey Z Poquette
Juan U Morasca
Ashley W Perin
Maisha X Ostrosky
Antonio P Doe
Aruna O Caldarera
Nicolas M Oldroyd
Salvatore S Ferencz
Juan R Garufi
Faith K Morasca
Aruna J Paprocki
Octavia T Dilliard
Wickens V Nestle
Jeanfrancois V Iturbide
Aika G Nestle
IdCountryDate
1000Japan2026-07-07
1001France2026-07-04
1002Japan2026-06-25
1003Brazil2026-06-27
1004Argentina2026-07-02
1005United Kingdom2026-06-25
1006Australia2026-07-08
1007Russia2026-07-17
1008Spain2026-07-07
1009Spain2026-07-11
1010France2026-07-12
1011Brazil2026-06-29
1012United Kingdom2026-07-13
1013Italy2026-07-10
1014Italy2026-07-06
1015Argentina2026-07-02
1016Germany2026-06-29
1017Australia2026-06-26
1018Brazil2026-07-16
1019Argentina2026-07-12
1020Argentina2026-06-21
1021Italy2026-07-05
1022Germany2026-06-27
1023Italy2026-06-23
1024Russia2026-07-19
1025Germany2026-07-06
1026Japan2026-06-25
1027Argentina2026-07-13
1028Australia2026-07-04
1029Germany2026-07-08
1030Argentina2026-06-28
1031Argentina2026-07-08
1032France2026-07-09
1033India2026-07-07
1034Germany2026-06-30
1035India2026-06-22
1036Canada2026-07-11
1037Russia2026-07-16
1038Spain2026-06-28
1039Brazil2026-06-22
1040Italy2026-06-23
1041Russia2026-07-02
1042Argentina2026-06-27
1043Russia2026-06-25
1044Russia2026-06-22
1045France2026-07-02
1046Italy2026-07-09
1047India2026-07-06
1048Australia2026-07-01
1049Spain2026-07-07

On-Demand Data

NameIdCountryDate
Nicolas M Bowley1000Brazil2026-06-22
Salvatore E Saylors1001Japan2026-07-20
Adams K Inouye1002Spain2026-07-16
James S Shinko1003Australia2026-07-03
Mayumi L Rim1004Brazil2026-07-15
Smith B Briddick1005Russia2026-06-29
Jeanfrancois H Paprocki1006India2026-07-11
Ashley V Maclead1007United Kingdom2026-07-14
Julie T Iturbide1008Japan2026-07-11
Emily I Nicka1009Germany2026-07-09
Wickens Z Dilliard1010Spain2026-07-13
Stacey C Ostrosky1011Spain2026-07-11
Munro J Chui1012India2026-07-06
Leon D Nicka1013Brazil2026-07-08
Nicolas R Vocelka1014Russia2026-07-10
Johnson X Gillian1015Brazil2026-06-27
Ricardo T Waycott1016United Kingdom2026-06-22
Leja J Nicka1017United Kingdom2026-06-26
Cody F Ostrosky1018United Kingdom2026-07-06
Arvin N Chui1019Australia2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya T NestleJapanAsiya Javayant UNQUALIFIED
Aruna V DarakjyUnited KingdomBernardo Dominic NEW
Aditya Z GauchoArgentinaIoni Bowcher QUALIFIED
Ashley G GlickBrazilBernardo Dominic PROPOSAL
Deepesh I RutaItalyIoni Bowcher PROPOSAL
Misaki O DarakjyCanadaBernardo Dominic RENEWAL
Mayumi K VocelkaAustraliaAsiya Javayant RENEWAL
Claire P BologniaGermanyIvan Magalhaes RENEWAL
Tony B KuskoRussiaOnyama Limba NEW
Misaki T FerenczItalyIoni Bowcher NEGOTIATION
Smith K FigeroaArgentinaBernardo Dominic QUALIFIED
Jones S BriddickIndiaIoni Bowcher QUALIFIED
David B BologniaRussiaElwin Sharvill UNQUALIFIED
Jefferson K StockhamSpainIoni Bowcher QUALIFIED
Cody D VocelkaUnited KingdomElwin Sharvill QUALIFIED
Adams X NickaBrazilAmy Elsner RENEWAL
Leon S ButtUnited KingdomBernardo Dominic NEGOTIATION
Nicolas G OstroskySpainStephen Shaw NEGOTIATION
Jones C PerinIndiaXuxue Feng QUALIFIED
Deepesh C SlusarskiGermanyAnna Fali PROPOSAL
Octavia Z RoysterArgentinaAmy Elsner NEGOTIATION
Silvio G CaldareraIndiaOnyama Limba RENEWAL
Maria F GarufiRussiaAsiya Javayant PROPOSAL
Kaitlin V VenereArgentinaOnyama Limba PROPOSAL
Ivar C NestleBrazilIoni Bowcher RENEWAL
Wickens Q NickaFranceIoni Bowcher RENEWAL
Deepesh L GarufiJapanXuxue Feng QUALIFIED
Juan T AmigonFranceElwin Sharvill QUALIFIED
Leon T SlusarskiGermanyOnyama Limba RENEWAL
Misaki J MacleadArgentinaIoni Bowcher NEW
Adams Y PaprockiSpainAsiya Javayant QUALIFIED
Mayumi A SlusarskiJapanStephen Shaw UNQUALIFIED
David L StockhamIndiaOnyama Limba QUALIFIED
Maria J GlickBrazilAnna Fali NEW
Deepesh B ShinkoBrazilElwin Sharvill NEGOTIATION
Adams C PoquetteArgentinaAnna Fali QUALIFIED
Juan X GauchoBrazilIvan Magalhaes NEGOTIATION
Faith T PaprockiItalyIoni Bowcher NEW
Maria W PoquetteArgentinaStephen Shaw QUALIFIED
Maria Y BologniaSpainBernardo Dominic RENEWAL

<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>