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
Mayumi G MaletArgentinaStephen Shaw RENEWAL
Smith Y CaldareraItalyIoni Bowcher NEW
David S CampainUnited KingdomXuxue Feng RENEWAL
Deepesh P GauchoUnited KingdomStephen Shaw RENEWAL
Costa K AmigonJapanStephen Shaw QUALIFIED
Leja G ButtUnited KingdomXuxue Feng NEW
James B AlbaresUnited KingdomAnna Fali UNQUALIFIED
Ricardo V PaprockiGermanyOnyama Limba RENEWAL
Arvin Q MaletItalyStephen Shaw UNQUALIFIED
Salvatore H SchemmerGermanyBernardo Dominic QUALIFIED
Aruna Z DoeAustraliaIoni Bowcher NEGOTIATION
Ivar G PoquetteJapanIoni Bowcher NEGOTIATION
Mujtaba C WieserFranceOnyama Limba PROPOSAL
Octavia J MaletGermanyAsiya Javayant RENEWAL
Chavez R NestleGermanyAnna Fali PROPOSAL
Mayumi G CaldareraAustraliaIoni Bowcher NEW
Octavia R IturbideSpainXuxue Feng RENEWAL
Isabel F KuskoIndiaStephen Shaw RENEWAL
Jones Y AlbaresItalyElwin Sharvill RENEWAL
Murillo N ChuiGermanyElwin Sharvill PROPOSAL
Alejandro I IturbideIndiaElwin Sharvill RENEWAL
Munro M IturbideItalyAmy Elsner RENEWAL
Isabel E WieserIndiaBernardo Dominic UNQUALIFIED
Leon L BowleyGermanyIoni Bowcher QUALIFIED
Jefferson O VenereIndiaOnyama Limba NEGOTIATION
Costa T KolmetzFranceAsiya Javayant UNQUALIFIED
Emily G ButtUnited KingdomBernardo Dominic NEW
Francesco B OstroskyAustraliaIvan Magalhaes NEGOTIATION
Smith T VenereAustraliaAmy Elsner UNQUALIFIED
Julie V GarufiGermanyStephen Shaw PROPOSAL
Munro X PerinSpainAnna Fali PROPOSAL
Greenwood S WaycottRussiaAsiya Javayant UNQUALIFIED
Wickens D BowleySpainIoni Bowcher UNQUALIFIED
Cody G GlickCanadaOnyama Limba RENEWAL
Isabel P BologniaFranceElwin Sharvill PROPOSAL
Juan I CaudyUnited KingdomOnyama Limba NEW
Arvin U StensethItalyAsiya Javayant PROPOSAL
Sinclair W BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas A DoeIndiaStephen Shaw UNQUALIFIED
Ricardo S MaletItalyStephen Shaw UNQUALIFIED
Emily L ButtCanadaStephen Shaw NEGOTIATION
James T FerenczFranceBernardo Dominic QUALIFIED
Antonio W GauchoArgentinaOnyama Limba NEW
Stacey Z CaudyGermanyElwin Sharvill UNQUALIFIED
Arvin F FigeroaJapanAmy Elsner NEGOTIATION
Francesco P SergiSpainBernardo Dominic PROPOSAL
Murillo R SchemmerUnited KingdomElwin Sharvill QUALIFIED
Arvin I IturbideIndiaAmy Elsner PROPOSAL
Greenwood G GillianIndiaBernardo Dominic UNQUALIFIED
Ricardo E MarrierGermanyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki O DarakjyJapanAsiya Javayant PROPOSAL
Jeanfrancois Q CaudyJapanElwin Sharvill PROPOSAL
Mayumi V KuskoBrazilStephen Shaw PROPOSAL
Kadeem B WieserCanadaElwin Sharvill QUALIFIED
Greenwood N ShinkoAustraliaXuxue Feng QUALIFIED
Ricardo Y MacleadGermanyBernardo Dominic RENEWAL
Ivar J WieserRussiaElwin Sharvill UNQUALIFIED
Tony A CaudyCanadaIoni Bowcher RENEWAL
Aditya X BowleyCanadaIoni Bowcher NEW
Jones L ShinkoGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore U DoeFrance2026-07-14Chapman, Ross E Esq QUALIFIED83Bernardo Dominic
1001Darci H MaletFrance2026-07-09Chapman, Ross E Esq UNQUALIFIED8Onyama Limba
1002Mujtaba Y VocelkaGermany2026-07-13King, Christopher A Esq NEGOTIATION98Xuxue Feng
1003Emily Z SlusarskiCanada2026-07-30Printing Dimensions RENEWAL14Asiya Javayant
1004Mayumi H NestleFrance2026-08-05Rangoni Of Florence UNQUALIFIED50Ivan Magalhaes
1005Leja D BologniaSpain2026-08-01Dorl, James J Esq PROPOSAL93Stephen Shaw
1006Izzy H OstroskyGermany2026-07-30Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1007James Y OstroskyBrazil2026-07-23Dorl, James J Esq PROPOSAL7Stephen Shaw
1008Alejandro A ChuiItaly2026-07-23Benton, John B Jr QUALIFIED46Elwin Sharvill
1009David J GlickArgentina2026-07-24Morlong Associates NEW38Elwin Sharvill
1010Nicolas Y SlusarskiArgentina2026-07-10Dorl, James J Esq QUALIFIED75Asiya Javayant
1011Tony H MarrierJapan2026-07-26Rangoni Of Florence NEW9Stephen Shaw
1012Aika U MorascaArgentina2026-07-14Chemel, James L Cpa UNQUALIFIED26Bernardo Dominic
1013Ashley P SaylorsBrazil2026-07-14Chemel, James L Cpa NEW45Bernardo Dominic
1014Greenwood T WieserSpain2026-07-23Rangoni Of Florence QUALIFIED97Amy Elsner
1015Munro I ShinkoCanada2026-07-09Feltz Printing Service RENEWAL99Anna Fali
1016Silvio I CaldareraGermany2026-07-10Commercial Press UNQUALIFIED88Amy Elsner
1017Mayumi R FerenczArgentina2026-07-25Commercial Press UNQUALIFIED97Amy Elsner
1018Nicolas Z VenereBrazil2026-07-12Feiner Bros UNQUALIFIED42Xuxue Feng
1019Tony W MaletGermany2026-07-18Rangoni Of Florence NEGOTIATION31Ivan Magalhaes
1020James M RutaBrazil2026-08-04Truhlar And Truhlar Attys PROPOSAL11Stephen Shaw
1021Ivar H CaldareraArgentina2026-08-07Chapman, Ross E Esq NEW14Elwin Sharvill
1022Deepesh K SaylorsUnited Kingdom2026-07-10Dorl, James J Esq NEW10Asiya Javayant
1023Morrow Z ChuiRussia2026-07-10Feiner Bros PROPOSAL23Ioni Bowcher
1024Costa F FlosiSpain2026-07-30Truhlar And Truhlar Attys RENEWAL29Anna Fali
1025Aruna U StockhamFrance2026-07-30Benton, John B Jr QUALIFIED99Xuxue Feng
1026Isabel K MaletUnited Kingdom2026-07-26Printing Dimensions NEGOTIATION9Ivan Magalhaes
1027Aruna W OstroskyUnited Kingdom2026-08-04Rangoni Of Florence PROPOSAL69Amy Elsner
1028Ivar W VenereRussia2026-08-07Buckley Miller Wright QUALIFIED32Amy Elsner
1029Arvin W ChuiFrance2026-08-06Chemel, James L Cpa NEGOTIATION46Asiya Javayant
1030Ivar O TollnerSpain2026-07-28Commercial Press RENEWAL75Anna Fali
1031Costa D SaylorsArgentina2026-07-22Morlong Associates UNQUALIFIED11Bernardo Dominic
1032Munro J WaycottAustralia2026-07-18Buckley Miller Wright NEGOTIATION19Ioni Bowcher
1033Salvatore I KolmetzBrazil2026-07-12Chemel, James L Cpa QUALIFIED13Asiya Javayant
1034Darci I TollnerFrance2026-07-23Commercial Press NEGOTIATION95Ioni Bowcher
1035Kaitlin Y ChuiUnited Kingdom2026-08-03Chemel, James L Cpa NEW94Asiya Javayant
1036Smith J GillianBrazil2026-07-24Rousseaux, Michael Esq QUALIFIED70Onyama Limba
1037Leon I VenereGermany2026-07-14Benton, John B Jr PROPOSAL50Anna Fali
1038Ivar Y KolmetzIndia2026-07-31Printing Dimensions NEGOTIATION32Anna Fali
1039Aika S GarufiJapan2026-07-18Dorl, James J Esq UNQUALIFIED74Asiya Javayant
1040Greenwood Y StockhamFrance2026-07-18Feltz Printing Service NEW23Onyama Limba
1041Morrow I AmigonArgentina2026-08-01Printing Dimensions PROPOSAL83Stephen Shaw
1042Octavia F SergiCanada2026-07-23Chemel, James L Cpa NEGOTIATION96Onyama Limba
1043Misaki P SchemmerIndia2026-07-26Rousseaux, Michael Esq NEGOTIATION73Asiya Javayant
1044Leon I ShinkoSpain2026-07-27Dorl, James J Esq NEGOTIATION16Bernardo Dominic
1045Kaitlin G OstroskyBrazil2026-07-16Benton, John B Jr NEW31Elwin Sharvill
1046Mayumi N RutaGermany2026-07-31Benton, John B Jr UNQUALIFIED72Xuxue Feng
1047Aditya F SlusarskiItaly2026-07-18Feltz Printing Service PROPOSAL20Ivan Magalhaes
1048Kaitlin R GlickGermany2026-07-16Rangoni Of Florence NEGOTIATION62Stephen Shaw
1049Jefferson P GarufiUnited Kingdom2026-08-07Morlong Associates RENEWAL95Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maria E WieserCanadaXuxue Feng NEGOTIATION
Darci Z MorascaArgentinaAnna Fali RENEWAL
Octavia K KuskoJapanAmy Elsner QUALIFIED
Antonio Y FlosiSpainIoni Bowcher PROPOSAL
Mayumi J CaldareraFranceIoni Bowcher PROPOSAL
Mujtaba G DoeArgentinaOnyama Limba NEW
Misaki Q TollnerFranceBernardo Dominic NEGOTIATION
Smith V KuskoRussiaAsiya Javayant NEW
Stacey D CampainItalyIvan Magalhaes NEGOTIATION
Silvio U CampainItalyAnna Fali QUALIFIED
Ivar K DoeItalyAnna Fali NEGOTIATION
Cody G BriddickItalyOnyama Limba QUALIFIED
Leon K InouyeRussiaIoni Bowcher PROPOSAL
Ashley F SchemmerBrazilElwin Sharvill QUALIFIED
Izzy X StockhamAustraliaAnna Fali UNQUALIFIED
Deepesh L PerinArgentinaStephen Shaw QUALIFIED
Clifford X OldroydGermanyIoni Bowcher UNQUALIFIED
Kaitlin T ButtItalyOnyama Limba NEW
Tony I CampainIndiaAmy Elsner QUALIFIED
Ashley L PaprockiIndiaXuxue Feng PROPOSAL
Munro Z PaprockiAustraliaAnna Fali NEW
Maria U ChuiAustraliaAnna Fali NEGOTIATION
Smith K MaletCanadaAnna Fali NEW
Salvatore B FerenczItalyOnyama Limba RENEWAL
Octavia G MaletGermanyOnyama Limba NEGOTIATION
Jefferson U PerinItalyIoni Bowcher QUALIFIED
Johnson L NickaCanadaAmy Elsner NEW
Octavia D GarufiUnited KingdomIoni Bowcher NEW
Alejandro U StensethBrazilAsiya Javayant UNQUALIFIED
David W PaprockiJapanStephen Shaw PROPOSAL
Kadeem V KolmetzCanadaStephen Shaw PROPOSAL
Sinclair G RutaBrazilIvan Magalhaes PROPOSAL
Cody W VenereRussiaXuxue Feng UNQUALIFIED
Ricardo I DilliardFranceElwin Sharvill QUALIFIED
Kadeem Z WaycottIndiaAnna Fali RENEWAL
Misaki T VenereIndiaStephen Shaw NEW
Jefferson T GauchoItalyOnyama Limba UNQUALIFIED
Greenwood W FlosiGermanyIvan Magalhaes RENEWAL
Jones Q RoysterBrazilAnna Fali NEGOTIATION
Mujtaba R DoeJapanXuxue Feng PROPOSAL
Emily Y SlusarskiArgentinaAsiya Javayant NEW
Jennifer U StensethBrazilAnna Fali UNQUALIFIED
Aditya A MaletAustraliaXuxue Feng UNQUALIFIED
Ricardo C MaletIndiaAsiya Javayant NEW
Murillo U SaylorsItalyIoni Bowcher UNQUALIFIED
Smith K PerinItalyStephen Shaw UNQUALIFIED
Sinclair M GarufiIndiaIoni Bowcher QUALIFIED
Maria B FollerCanadaStephen Shaw PROPOSAL
Jennifer G CampainIndiaAmy Elsner QUALIFIED
Ricardo P SchemmerCanadaStephen Shaw NEGOTIATION
Frozen Columns
Name
Octavia F Bolognia
Izzy E Albares
Chavez F Wieser
Ivar D Foller
Adams P Tollner
Cody H Perin
Octavia R Poquette
Morrow P Gaucho
David G Vocelka
Antonio Y Garufi
Francesco J Foller
Leon S Albares
Aruna T Stenseth
Cody M Foller
Arvin Q Inouye
Jeanfrancois O Wieser
Wickens B Flosi
Izzy E Gaucho
Mujtaba C Royster
Jennifer P Waycott
Kadeem M Caldarera
James O Stenseth
Rodrigues O Caudy
Cody C Inouye
Maisha S Bolognia
Octavia F Albares
Wickens U Venere
Smith U Stenseth
Claire C Venere
Johnson Z Stenseth
Ivar O Nestle
Darci J Ferencz
Rodrigues R Slusarski
Julie S Perin
Deepesh B Wieser
Leon R Ostrosky
Silvio Z Chui
Ivar J Nicka
Ashley X Amigon
Costa Z Stockham
Jefferson Q Malet
Ricardo H Rulapaugh
Chavez R Garufi
Leja F Campain
Jeanfrancois K Amigon
Misaki X Briddick
Leon O Iturbide
Morrow F Rulapaugh
Johnson V Chui
Salvatore Q Whobrey
IdCountryDate
1000Russia2026-07-22
1001Japan2026-07-22
1002United Kingdom2026-07-30
1003Brazil2026-07-27
1004Russia2026-07-27
1005Italy2026-07-26
1006United Kingdom2026-07-11
1007Brazil2026-07-15
1008Italy2026-07-10
1009Germany2026-07-27
1010Japan2026-07-11
1011Spain2026-07-28
1012Russia2026-07-09
1013Japan2026-07-09
1014Italy2026-07-12
1015Brazil2026-07-20
1016Brazil2026-07-12
1017Brazil2026-07-19
1018Australia2026-07-20
1019India2026-08-02
1020United Kingdom2026-08-07
1021Italy2026-07-11
1022India2026-07-15
1023Germany2026-07-18
1024India2026-07-14
1025Australia2026-07-20
1026Italy2026-07-14
1027Germany2026-07-30
1028Argentina2026-08-06
1029Germany2026-07-14
1030Russia2026-07-19
1031Argentina2026-07-20
1032Canada2026-07-27
1033Australia2026-07-29
1034Russia2026-07-10
1035Argentina2026-07-17
1036Russia2026-07-23
1037Australia2026-07-19
1038Spain2026-07-28
1039Spain2026-07-30
1040Brazil2026-07-21
1041Argentina2026-07-30
1042Spain2026-07-23
1043United Kingdom2026-07-13
1044Brazil2026-07-30
1045United Kingdom2026-07-31
1046Japan2026-07-16
1047Spain2026-07-27
1048Russia2026-07-14
1049Spain2026-08-06

On-Demand Data

NameIdCountryDate
Octavia J Garufi1000Russia2026-07-24
Maria C Schemmer1001Germany2026-08-05
Alejandro U Stockham1002Brazil2026-07-10
Jennifer T Shinko1003Canada2026-08-04
Julie V Stockham1004India2026-07-20
Jennifer Z Waycott1005Italy2026-08-06
Izzy Q Rulapaugh1006Germany2026-07-09
Faith X Waycott1007Spain2026-07-23
Cody H Vocelka1008Japan2026-07-13
Greenwood J Darakjy1009Australia2026-07-26
Johnson D Whobrey1010Spain2026-07-10
Greenwood B Garufi1011Italy2026-07-26
Silvio J Caudy1012Spain2026-08-01
Emily E Campain1013Japan2026-07-24
Deepesh M Ferencz1014India2026-07-22
Mayumi T Poquette1015Japan2026-07-25
Julie R Kusko1016Japan2026-07-26
Ivar D Kolmetz1017Australia2026-08-06
Emily V Darakjy1018France2026-07-26
Ricardo J Chui1019Australia2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci G GarufiRussiaAmy Elsner NEW
James Z AlbaresCanadaElwin Sharvill NEGOTIATION
Mayumi D SlusarskiArgentinaOnyama Limba NEW
Ricardo H PoquetteAustraliaStephen Shaw UNQUALIFIED
Leja J VocelkaJapanStephen Shaw NEW
Kaitlin J WaycottAustraliaIvan Magalhaes PROPOSAL
Maisha J MacleadRussiaAsiya Javayant NEW
David H KolmetzJapanXuxue Feng NEGOTIATION
Sinclair B ChuiJapanIvan Magalhaes NEGOTIATION
Maisha U RoysterJapanIvan Magalhaes NEW
Greenwood V GillianRussiaElwin Sharvill QUALIFIED
Mujtaba W MaletAustraliaStephen Shaw RENEWAL
Murillo J SergiArgentinaXuxue Feng NEW
Smith A SergiCanadaStephen Shaw QUALIFIED
Stacey R ChuiIndiaAmy Elsner NEGOTIATION
Emily I CaudyArgentinaIvan Magalhaes RENEWAL
Jeanfrancois F AmigonJapanXuxue Feng RENEWAL
Leon Y GarufiFranceAmy Elsner NEGOTIATION
Wickens L StensethJapanElwin Sharvill NEW
Cody P FollerJapanBernardo Dominic RENEWAL
Kaitlin W RimGermanyAmy Elsner PROPOSAL
Faith Q BriddickCanadaIoni Bowcher RENEWAL
Antonio Q PoquetteAustraliaIvan Magalhaes QUALIFIED
Antonio E GauchoGermanyAnna Fali NEGOTIATION
Wickens J PerinItalyBernardo Dominic QUALIFIED
Murillo Y FlosiSpainAsiya Javayant RENEWAL
Arvin C FlosiRussiaIvan Magalhaes RENEWAL
Juan R RoysterRussiaElwin Sharvill RENEWAL
Clifford B MaletIndiaOnyama Limba PROPOSAL
Maria G NestleAustraliaIoni Bowcher QUALIFIED
Leja S GillianRussiaStephen Shaw RENEWAL
Francesco W KuskoFranceAmy Elsner NEW
Silvio M PerinFranceIoni Bowcher RENEWAL
Julie E GarufiCanadaOnyama Limba NEW
Chavez B FollerJapanIvan Magalhaes NEGOTIATION
Alejandro Q CampainRussiaBernardo Dominic NEGOTIATION
Francesco Y AlbaresSpainAmy Elsner QUALIFIED
Maria C CaldareraArgentinaBernardo Dominic UNQUALIFIED
Munro O RoysterRussiaAnna Fali NEGOTIATION
Johnson T InouyeSpainIvan 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>