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
Darci B GauchoItalyOnyama Limba RENEWAL
Leja B PerinFranceIvan Magalhaes RENEWAL
Ricardo A FigeroaIndiaAnna Fali PROPOSAL
Sinclair Y GauchoFranceStephen Shaw PROPOSAL
Julie N BologniaItalyXuxue Feng PROPOSAL
Ashley H SaylorsIndiaIvan Magalhaes PROPOSAL
Mujtaba O BowleyUnited KingdomIoni Bowcher QUALIFIED
Alejandro Q DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Kaitlin T RimItalyBernardo Dominic QUALIFIED
Clifford W FlosiBrazilElwin Sharvill NEGOTIATION
Kaitlin J BowleyItalyElwin Sharvill RENEWAL
Clifford F KuskoFranceIoni Bowcher RENEWAL
Jennifer V CaudyAustraliaIvan Magalhaes NEGOTIATION
Deepesh S NestleSpainAnna Fali RENEWAL
Johnson P GarufiBrazilAnna Fali UNQUALIFIED
Mayumi J SlusarskiIndiaElwin Sharvill NEGOTIATION
James P PaprockiAustraliaBernardo Dominic NEGOTIATION
Aruna T RutaIndiaAnna Fali RENEWAL
Jennifer C IturbideIndiaAsiya Javayant RENEWAL
Leja B VenereUnited KingdomBernardo Dominic UNQUALIFIED
Leja W StockhamCanadaIvan Magalhaes UNQUALIFIED
Chavez N RoysterRussiaAnna Fali QUALIFIED
Maria B CampainRussiaBernardo Dominic RENEWAL
Greenwood L WhobreyJapanStephen Shaw RENEWAL
Aruna X OldroydCanadaAnna Fali NEGOTIATION
Rodrigues K OldroydRussiaAnna Fali NEW
Murillo V StensethRussiaStephen Shaw RENEWAL
Emily J KuskoFranceIvan Magalhaes NEGOTIATION
Kadeem N DilliardSpainElwin Sharvill PROPOSAL
Aika N FlosiGermanyXuxue Feng NEGOTIATION
Ricardo P KuskoIndiaAsiya Javayant QUALIFIED
Rodrigues Y NestleUnited KingdomXuxue Feng UNQUALIFIED
Emily K WaycottCanadaXuxue Feng RENEWAL
Jones A PaprockiSpainStephen Shaw RENEWAL
Smith U ShinkoArgentinaAmy Elsner UNQUALIFIED
Deepesh F StensethUnited KingdomIvan Magalhaes PROPOSAL
Isabel U WhobreyJapanIoni Bowcher QUALIFIED
Darci C RulapaughRussiaXuxue Feng QUALIFIED
Salvatore E VocelkaSpainIoni Bowcher NEW
Salvatore O OldroydCanadaOnyama Limba QUALIFIED
Maria F ShinkoAustraliaIvan Magalhaes RENEWAL
Chavez U MacleadIndiaAmy Elsner PROPOSAL
Munro X MaletSpainElwin Sharvill QUALIFIED
Tony Q DarakjyBrazilAnna Fali UNQUALIFIED
Julie J ButtSpainXuxue Feng NEGOTIATION
Murillo A AlbaresJapanElwin Sharvill RENEWAL
Emily Q StockhamAustraliaIvan Magalhaes NEGOTIATION
Alejandro W GillianGermanyAmy Elsner PROPOSAL
Darci K MaletGermanyXuxue Feng NEW
Maisha C SchemmerUnited KingdomElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio W MaletItalyXuxue Feng QUALIFIED
David M KuskoArgentinaStephen Shaw NEGOTIATION
Aruna T PerinArgentinaAnna Fali RENEWAL
Julie H FerenczIndiaOnyama Limba NEW
Misaki J MacleadFranceElwin Sharvill QUALIFIED
Francesco O MaletAustraliaAsiya Javayant RENEWAL
Alejandro O MacleadJapanAmy Elsner NEW
Francesco E SergiBrazilStephen Shaw PROPOSAL
Munro E KuskoFranceElwin Sharvill QUALIFIED
Jeanfrancois H WaycottIndiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore P FlosiJapan2026-07-29Commercial Press RENEWAL61Stephen Shaw
1001Aika I RimGermany2026-07-30Benton, John B Jr QUALIFIED67Asiya Javayant
1002Murillo K WieserGermany2026-08-10Feiner Bros NEGOTIATION24Onyama Limba
1003Rodrigues K SlusarskiSpain2026-07-23Buckley Miller Wright QUALIFIED88Elwin Sharvill
1004Smith W RutaUnited Kingdom2026-07-27King, Christopher A Esq NEW74Asiya Javayant
1005Darci G MacleadCanada2026-07-19Commercial Press PROPOSAL21Bernardo Dominic
1006Greenwood U SlusarskiArgentina2026-07-31Dorl, James J Esq NEGOTIATION51Ioni Bowcher
1007Munro U SaylorsIndia2026-07-28Benton, John B Jr NEGOTIATION90Amy Elsner
1008Silvio I RoysterItaly2026-07-30Printing Dimensions RENEWAL90Anna Fali
1009Jefferson A GillianJapan2026-07-27Chemel, James L Cpa QUALIFIED31Ivan Magalhaes
1010Darci T VenereCanada2026-08-06Feiner Bros QUALIFIED82Onyama Limba
1011Greenwood D RoysterIndia2026-08-06Buckley Miller Wright NEW61Stephen Shaw
1012Jones L FollerFrance2026-08-10Rousseaux, Michael Esq NEW58Anna Fali
1013Antonio A StensethCanada2026-07-16Printing Dimensions NEW36Amy Elsner
1014Jennifer T CaudyGermany2026-08-06Dorl, James J Esq NEGOTIATION72Ivan Magalhaes
1015James N SergiArgentina2026-07-23Chapman, Ross E Esq RENEWAL60Asiya Javayant
1016Silvio Q RutaGermany2026-07-16Benton, John B Jr NEGOTIATION73Ivan Magalhaes
1017Aditya T MaletUnited Kingdom2026-07-29Rousseaux, Michael Esq UNQUALIFIED48Xuxue Feng
1018Aruna K InouyeBrazil2026-07-20Benton, John B Jr PROPOSAL24Xuxue Feng
1019Silvio K AmigonCanada2026-08-13Feiner Bros UNQUALIFIED16Ivan Magalhaes
1020Nicolas W GillianSpain2026-07-18Dorl, James J Esq QUALIFIED91Asiya Javayant
1021Arvin Z RoysterAustralia2026-08-06Commercial Press NEW68Xuxue Feng
1022Mujtaba D InouyeGermany2026-07-16King, Christopher A Esq RENEWAL67Anna Fali
1023Deepesh Z AlbaresCanada2026-08-02Chapman, Ross E Esq RENEWAL65Asiya Javayant
1024Jennifer U FlosiAustralia2026-07-25Commercial Press QUALIFIED88Xuxue Feng
1025Nicolas D FlosiIndia2026-07-24Feiner Bros PROPOSAL8Ioni Bowcher
1026Tony T GauchoFrance2026-07-20Morlong Associates PROPOSAL66Bernardo Dominic
1027Smith U MaletUnited Kingdom2026-07-22Morlong Associates RENEWAL82Anna Fali
1028Johnson M IturbideGermany2026-07-17Printing Dimensions NEGOTIATION68Anna Fali
1029Isabel Z KolmetzJapan2026-08-04Dorl, James J Esq QUALIFIED92Asiya Javayant
1030Kadeem V ButtAustralia2026-07-15Dorl, James J Esq UNQUALIFIED64Asiya Javayant
1031Darci J NickaArgentina2026-07-28Feiner Bros QUALIFIED25Amy Elsner
1032Chavez E DarakjyAustralia2026-07-18Feiner Bros QUALIFIED93Anna Fali
1033Isabel T RoysterArgentina2026-08-08Truhlar And Truhlar Attys QUALIFIED22Bernardo Dominic
1034Jennifer C BriddickBrazil2026-08-07King, Christopher A Esq PROPOSAL52Stephen Shaw
1035Deepesh C WaycottFrance2026-07-26Chapman, Ross E Esq UNQUALIFIED80Asiya Javayant
1036Julie U PerinBrazil2026-07-15Chemel, James L Cpa UNQUALIFIED39Xuxue Feng
1037Greenwood A RimCanada2026-08-05Chapman, Ross E Esq PROPOSAL72Xuxue Feng
1038Jones B MaletRussia2026-07-27Chemel, James L Cpa NEGOTIATION3Xuxue Feng
1039Emily F KuskoAustralia2026-07-25Feiner Bros RENEWAL82Elwin Sharvill
1040Kaitlin R FigeroaFrance2026-08-11Dorl, James J Esq UNQUALIFIED27Xuxue Feng
1041Johnson O AmigonIndia2026-08-11King, Christopher A Esq RENEWAL23Ioni Bowcher
1042Mayumi R OldroydGermany2026-07-30Commercial Press NEW12Ioni Bowcher
1043Stacey M AmigonFrance2026-08-01Buckley Miller Wright UNQUALIFIED34Onyama Limba
1044Mujtaba M ChuiUnited Kingdom2026-07-31Buckley Miller Wright UNQUALIFIED52Anna Fali
1045Nicolas W FollerBrazil2026-07-17Rangoni Of Florence UNQUALIFIED51Amy Elsner
1046Costa W RoysterIndia2026-07-24Chemel, James L Cpa UNQUALIFIED36Stephen Shaw
1047Julie X IturbideItaly2026-07-16Dorl, James J Esq PROPOSAL75Bernardo Dominic
1048Leja Y InouyeItaly2026-07-26Chemel, James L Cpa UNQUALIFIED20Bernardo Dominic
1049Francesco K OstroskyGermany2026-08-11Chemel, James L Cpa RENEWAL96Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar K AmigonGermanyXuxue Feng RENEWAL
Wickens W OldroydUnited KingdomElwin Sharvill PROPOSAL
Mayumi J GarufiFranceElwin Sharvill UNQUALIFIED
Morrow F AmigonFranceIvan Magalhaes QUALIFIED
Emily E RulapaughFranceOnyama Limba NEW
Maria Y WaycottArgentinaIoni Bowcher PROPOSAL
Johnson P FollerJapanStephen Shaw UNQUALIFIED
Mayumi L FigeroaCanadaAsiya Javayant NEGOTIATION
Rodrigues X NestleAustraliaStephen Shaw NEW
Arvin D RoysterAustraliaBernardo Dominic PROPOSAL
Mayumi H ShinkoIndiaAsiya Javayant PROPOSAL
Jeanfrancois L NestleUnited KingdomAmy Elsner RENEWAL
Costa H ChuiSpainAsiya Javayant UNQUALIFIED
Wickens W StensethIndiaAnna Fali UNQUALIFIED
Julie X MorascaAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois D FigeroaItalyOnyama Limba PROPOSAL
Emily F KolmetzJapanAmy Elsner UNQUALIFIED
Darci C RutaUnited KingdomAnna Fali NEW
Aika C WaycottIndiaXuxue Feng RENEWAL
Julie S SlusarskiGermanyBernardo Dominic RENEWAL
Leon Y NestleArgentinaAnna Fali QUALIFIED
Francesco N MaletItalyAsiya Javayant NEW
Salvatore R GillianIndiaStephen Shaw QUALIFIED
Izzy C MaletUnited KingdomStephen Shaw NEW
Leon H PerinBrazilBernardo Dominic NEGOTIATION
Ricardo G RulapaughCanadaBernardo Dominic NEGOTIATION
Izzy G FerenczBrazilBernardo Dominic NEW
Faith L MacleadBrazilAsiya Javayant NEW
Murillo X CaudyAustraliaElwin Sharvill UNQUALIFIED
Juan I StockhamCanadaAnna Fali NEGOTIATION
Octavia F VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi T NestleJapanOnyama Limba PROPOSAL
Clifford B KolmetzFranceOnyama Limba RENEWAL
David G FerenczIndiaAnna Fali QUALIFIED
Leon T InouyeJapanAnna Fali PROPOSAL
Sinclair G GarufiBrazilIvan Magalhaes RENEWAL
Antonio G WieserJapanElwin Sharvill PROPOSAL
Misaki S StensethItalyAmy Elsner NEGOTIATION
Chavez L SergiRussiaElwin Sharvill PROPOSAL
James F DarakjyItalyStephen Shaw NEW
Isabel F PerinRussiaIvan Magalhaes PROPOSAL
Leon U TollnerCanadaIvan Magalhaes NEW
Leja G ShinkoUnited KingdomAnna Fali PROPOSAL
Antonio S KolmetzIndiaStephen Shaw NEGOTIATION
Munro N GauchoFranceIoni Bowcher NEW
Arvin D FerenczRussiaIoni Bowcher QUALIFIED
Kaitlin A AlbaresBrazilElwin Sharvill NEGOTIATION
Nicolas A NestleArgentinaAsiya Javayant QUALIFIED
Rodrigues Z GarufiIndiaBernardo Dominic RENEWAL
Jefferson T NestleItalyIoni Bowcher NEGOTIATION
Frozen Columns
Name
Alejandro I Kolmetz
Claire L Malet
Ricardo F Iturbide
Ashley T Darakjy
Octavia F Gaucho
Wickens B Glick
Darci U Glick
Deepesh Q Caudy
Rodrigues P Kusko
Ivar V Campain
Maria W Vocelka
Cody M Schemmer
Cody B Rim
Kaitlin U Butt
Smith Z Rim
Jennifer I Briddick
Silvio Y Malet
Emily G Tollner
Leon V Caldarera
Cody L Glick
Emily J Schemmer
Antonio K Gillian
Izzy L Sergi
Mayumi G Bolognia
Munro M Flosi
Alejandro W Paprocki
Emily M Rulapaugh
Rodrigues X Iturbide
Ricardo Y Garufi
Faith H Flosi
Izzy E Flosi
Wickens O Whobrey
Deepesh A Vocelka
Arvin I Stenseth
Clifford K Rulapaugh
Octavia I Butt
Deepesh N Waycott
Francesco L Bowley
Jeanfrancois V Figeroa
Salvatore A Figeroa
Nicolas X Paprocki
Munro Y Shinko
Ivar H Briddick
Julie I Slusarski
Stacey E Amigon
Claire M Gillian
Costa H Flosi
Salvatore X Briddick
Munro L Briddick
Chavez W Albares
IdCountryDate
1000Australia2026-08-04
1001United Kingdom2026-07-24
1002France2026-07-18
1003Spain2026-08-11
1004Russia2026-08-05
1005India2026-07-22
1006Canada2026-08-09
1007Australia2026-08-06
1008United Kingdom2026-08-08
1009India2026-07-18
1010Japan2026-07-27
1011Germany2026-08-04
1012India2026-07-20
1013Spain2026-08-02
1014Russia2026-08-12
1015Germany2026-08-03
1016Germany2026-08-12
1017France2026-07-29
1018Argentina2026-08-13
1019Argentina2026-08-05
1020Argentina2026-07-16
1021Canada2026-07-30
1022Argentina2026-07-27
1023Spain2026-08-13
1024Brazil2026-08-07
1025Japan2026-08-13
1026Australia2026-07-24
1027Canada2026-08-09
1028Japan2026-07-25
1029France2026-07-25
1030Germany2026-07-30
1031Spain2026-07-22
1032United Kingdom2026-07-21
1033Italy2026-08-11
1034Japan2026-08-09
1035Brazil2026-08-05
1036France2026-07-23
1037Brazil2026-07-28
1038Russia2026-08-01
1039Russia2026-07-16
1040United Kingdom2026-07-28
1041Germany2026-08-12
1042Japan2026-07-21
1043Canada2026-07-20
1044India2026-08-05
1045Germany2026-08-09
1046France2026-08-06
1047Japan2026-07-26
1048Germany2026-07-20
1049India2026-08-03

On-Demand Data

NameIdCountryDate
Tony Z Gillian1000Germany2026-07-31
Ricardo Z Kusko1001Spain2026-08-02
Costa E Kusko1002Spain2026-07-29
Ashley W Nestle1003France2026-08-08
Ricardo E Bowley1004India2026-08-09
Ricardo M Stenseth1005Canada2026-07-21
Jones I Gillian1006Argentina2026-07-16
Cody Y Ferencz1007Argentina2026-08-01
Clifford K Morasca1008Italy2026-07-28
Adams S Waycott1009Argentina2026-07-17
Murillo D Shinko1010Spain2026-07-26
Misaki N Ferencz1011Italy2026-08-06
Antonio E Venere1012Russia2026-08-08
Jennifer X Dilliard1013Japan2026-08-02
Jones R Rulapaugh1014Japan2026-07-19
Maria R Vocelka1015Brazil2026-08-03
Johnson O Amigon1016France2026-08-10
Faith M Schemmer1017Argentina2026-07-22
Jefferson K Shinko1018India2026-07-18
David Z Briddick1019Russia2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo Z RulapaughCanadaBernardo Dominic PROPOSAL
Ivar R BowleyJapanAnna Fali NEGOTIATION
Octavia A FlosiArgentinaXuxue Feng PROPOSAL
Silvio G MarrierRussiaXuxue Feng NEGOTIATION
Isabel X FollerArgentinaAnna Fali RENEWAL
Johnson O MarrierJapanAmy Elsner NEGOTIATION
Maisha P OstroskyRussiaAmy Elsner NEW
Alejandro T SergiArgentinaIoni Bowcher RENEWAL
Salvatore U DilliardJapanElwin Sharvill RENEWAL
Greenwood S SlusarskiGermanyOnyama Limba NEW
Jefferson N MaletCanadaBernardo Dominic UNQUALIFIED
Aditya G PaprockiJapanStephen Shaw NEGOTIATION
Munro O GarufiBrazilXuxue Feng UNQUALIFIED
Sinclair T PaprockiJapanAsiya Javayant PROPOSAL
Arvin B PerinCanadaIoni Bowcher NEW
Deepesh F GillianJapanAnna Fali UNQUALIFIED
Emily Y RutaArgentinaAmy Elsner UNQUALIFIED
Mujtaba G MorascaAustraliaBernardo Dominic QUALIFIED
Claire N AmigonJapanIvan Magalhaes RENEWAL
Kadeem Q DarakjySpainAsiya Javayant UNQUALIFIED
Alejandro I CaldareraFranceXuxue Feng RENEWAL
Johnson Q RoysterSpainXuxue Feng PROPOSAL
Chavez U WieserBrazilElwin Sharvill NEGOTIATION
Darci R RulapaughBrazilAsiya Javayant QUALIFIED
Jefferson E GillianJapanStephen Shaw NEGOTIATION
Jefferson S VocelkaFranceBernardo Dominic RENEWAL
Misaki W AlbaresFranceStephen Shaw NEW
Aditya M OldroydAustraliaIoni Bowcher NEW
Juan E SaylorsCanadaOnyama Limba QUALIFIED
Deepesh J CampainCanadaBernardo Dominic QUALIFIED
Leja Z DoeSpainIoni Bowcher QUALIFIED
Aruna Q BriddickIndiaOnyama Limba RENEWAL
Kadeem B PoquetteCanadaStephen Shaw UNQUALIFIED
Johnson O BologniaGermanyElwin Sharvill UNQUALIFIED
Sinclair K CampainSpainIvan Magalhaes NEW
Misaki F BowleySpainAsiya Javayant NEGOTIATION
Ricardo B SaylorsFranceElwin Sharvill NEW
Silvio I FollerSpainAsiya Javayant PROPOSAL
David L SaylorsRussiaXuxue Feng RENEWAL
Juan U OldroydUnited KingdomIvan Magalhaes PROPOSAL

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