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
Aruna M MaletAustraliaIvan Magalhaes RENEWAL
Ashley J SergiUnited KingdomStephen Shaw NEW
Mujtaba E SaylorsBrazilIoni Bowcher RENEWAL
Isabel O SergiSpainIoni Bowcher QUALIFIED
Isabel X GauchoItalyOnyama Limba RENEWAL
Antonio W RutaSpainAmy Elsner NEW
Silvio A VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Francesco U SchemmerAustraliaIoni Bowcher NEGOTIATION
Claire E FigeroaFranceOnyama Limba UNQUALIFIED
Antonio D FerenczGermanyStephen Shaw UNQUALIFIED
Kaitlin O CaldareraArgentinaElwin Sharvill RENEWAL
Jeanfrancois P MorascaCanadaBernardo Dominic NEW
Leja M PaprockiFranceBernardo Dominic UNQUALIFIED
Maisha F DarakjyIndiaElwin Sharvill QUALIFIED
Isabel L RoysterArgentinaOnyama Limba RENEWAL
Ricardo F OldroydGermanyOnyama Limba NEW
Octavia L WhobreyGermanyOnyama Limba PROPOSAL
Mujtaba O MaletBrazilBernardo Dominic RENEWAL
Darci M PaprockiSpainOnyama Limba QUALIFIED
David C PerinIndiaAsiya Javayant RENEWAL
Alejandro U RimAustraliaStephen Shaw QUALIFIED
Kaitlin B GillianFranceIvan Magalhaes NEGOTIATION
Kadeem Y WaycottCanadaIvan Magalhaes NEGOTIATION
Octavia W IturbideJapanBernardo Dominic UNQUALIFIED
Jefferson C ShinkoUnited KingdomIvan Magalhaes RENEWAL
Maria A MarrierCanadaOnyama Limba NEW
Chavez J DarakjyBrazilXuxue Feng NEW
Clifford K MarrierGermanyIvan Magalhaes PROPOSAL
Costa G MarrierBrazilAmy Elsner UNQUALIFIED
Silvio B BologniaCanadaElwin Sharvill NEW
Johnson R BologniaRussiaIvan Magalhaes NEW
Emily I NestleBrazilBernardo Dominic PROPOSAL
Sinclair Q OldroydAustraliaIoni Bowcher NEGOTIATION
Octavia T PoquetteBrazilIoni Bowcher NEGOTIATION
Morrow F SlusarskiGermanyBernardo Dominic NEW
Jennifer Y SchemmerRussiaAsiya Javayant RENEWAL
Chavez H MarrierIndiaIoni Bowcher NEW
Aditya J GauchoUnited KingdomAnna Fali NEGOTIATION
Nicolas J GillianIndiaIvan Magalhaes NEGOTIATION
Greenwood C RoysterJapanElwin Sharvill NEW
Sinclair O KolmetzIndiaStephen Shaw RENEWAL
Aruna K FigeroaJapanAmy Elsner QUALIFIED
Smith S KolmetzUnited KingdomAnna Fali NEGOTIATION
Aika F StensethItalyIvan Magalhaes NEGOTIATION
Maria P DilliardUnited KingdomAmy Elsner PROPOSAL
Morrow O StensethCanadaStephen Shaw QUALIFIED
David O BologniaFranceIvan Magalhaes UNQUALIFIED
Aruna P MaletGermanyAmy Elsner QUALIFIED
Misaki N WhobreyBrazilIvan Magalhaes NEGOTIATION
Cody Y RutaFranceAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
David U AlbaresFranceXuxue Feng PROPOSAL
Smith W StensethCanadaIoni Bowcher NEW
Leon O SchemmerGermanyIoni Bowcher RENEWAL
Emily Z ShinkoBrazilAnna Fali NEGOTIATION
Costa A ChuiJapanElwin Sharvill NEW
Mayumi R SchemmerRussiaAmy Elsner NEGOTIATION
Misaki M GlickItalyIvan Magalhaes RENEWAL
Clifford T AlbaresFranceElwin Sharvill PROPOSAL
Mayumi Y RoysterUnited KingdomIoni Bowcher QUALIFIED
Francesco B PoquetteIndiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba F ShinkoArgentina2025-05-31King, Christopher A Esq PROPOSAL88Ivan Magalhaes
1001Deepesh Z DilliardItaly2025-06-04Morlong Associates PROPOSAL64Xuxue Feng
1002Silvio N CaldareraJapan2025-06-09Printing Dimensions RENEWAL38Onyama Limba
1003Murillo H FerenczItaly2025-05-24Morlong Associates NEW27Onyama Limba
1004Leon S StensethAustralia2025-05-30Chanay, Jeffrey A Esq RENEWAL41Asiya Javayant
1005Rodrigues W RimItaly2025-05-27Rousseaux, Michael Esq RENEWAL33Ioni Bowcher
1006Greenwood Q KuskoGermany2025-06-04Morlong Associates RENEWAL82Anna Fali
1007Leon S SlusarskiRussia2025-06-03Printing Dimensions QUALIFIED26Xuxue Feng
1008Cody H OstroskyUnited Kingdom2025-05-25Dorl, James J Esq QUALIFIED41Onyama Limba
1009Ivar Z MacleadFrance2025-06-06Rousseaux, Michael Esq NEGOTIATION56Elwin Sharvill
1010Salvatore B StensethFrance2025-05-22King, Christopher A Esq NEW90Ioni Bowcher
1011Rodrigues U BowleyItaly2025-06-16Rousseaux, Michael Esq NEGOTIATION91Asiya Javayant
1012Salvatore H BowleyRussia2025-05-28Printing Dimensions PROPOSAL63Onyama Limba
1013Clifford I OstroskyItaly2025-06-14Chapman, Ross E Esq RENEWAL21Asiya Javayant
1014Leon P StockhamItaly2025-06-08Chapman, Ross E Esq NEW21Amy Elsner
1015Wickens M KolmetzArgentina2025-05-31Dorl, James J Esq UNQUALIFIED43Onyama Limba
1016Jones C FigeroaUnited Kingdom2025-05-18Chapman, Ross E Esq PROPOSAL73Bernardo Dominic
1017Salvatore P SlusarskiSpain2025-05-21Rangoni Of Florence QUALIFIED37Stephen Shaw
1018Salvatore O DoeIndia2025-06-05Feltz Printing Service NEW56Anna Fali
1019Juan X KuskoUnited Kingdom2025-05-23Rangoni Of Florence RENEWAL16Ioni Bowcher
1020Leja I ShinkoUnited Kingdom2025-05-22Printing Dimensions RENEWAL62Asiya Javayant
1021Leja G SlusarskiArgentina2025-06-04Dorl, James J Esq NEW81Ioni Bowcher
1022Arvin W MarrierRussia2025-06-12Chemel, James L Cpa NEW40Ivan Magalhaes
1023Clifford R ButtItaly2025-06-14Printing Dimensions NEW32Asiya Javayant
1024Maisha G GarufiSpain2025-06-09Feiner Bros QUALIFIED82Ioni Bowcher
1025Smith N FerenczAustralia2025-06-08Chemel, James L Cpa QUALIFIED48Bernardo Dominic
1026Claire W WieserAustralia2025-06-05Buckley Miller Wright QUALIFIED98Xuxue Feng
1027Munro Q CampainUnited Kingdom2025-05-25Benton, John B Jr PROPOSAL66Anna Fali
1028Adams W StockhamIndia2025-06-15Benton, John B Jr UNQUALIFIED74Asiya Javayant
1029Adams P FigeroaIndia2025-06-13Dorl, James J Esq RENEWAL75Onyama Limba
1030Nicolas E InouyeSpain2025-06-06Benton, John B Jr PROPOSAL84Anna Fali
1031Adams T VocelkaUnited Kingdom2025-05-18Chapman, Ross E Esq NEGOTIATION49Stephen Shaw
1032Salvatore T GarufiBrazil2025-06-01Chemel, James L Cpa RENEWAL34Anna Fali
1033Sinclair K SlusarskiCanada2025-06-12King, Christopher A Esq NEW42Asiya Javayant
1034Aika Y WieserGermany2025-06-15Buckley Miller Wright PROPOSAL25Ioni Bowcher
1035Smith C FlosiJapan2025-05-18Commercial Press NEGOTIATION76Bernardo Dominic
1036Aika X RulapaughGermany2025-06-02Printing Dimensions RENEWAL72Stephen Shaw
1037Arvin T InouyeUnited Kingdom2025-05-19Rousseaux, Michael Esq QUALIFIED95Ivan Magalhaes
1038Claire X GlickIndia2025-06-08Commercial Press PROPOSAL56Elwin Sharvill
1039Aika Y ChuiIndia2025-05-30Dorl, James J Esq NEGOTIATION55Anna Fali
1040Clifford D SchemmerIndia2025-06-04Printing Dimensions UNQUALIFIED45Ioni Bowcher
1041Misaki W SaylorsCanada2025-05-29Feiner Bros QUALIFIED20Onyama Limba
1042Wickens X DoeArgentina2025-06-13Feiner Bros NEGOTIATION83Anna Fali
1043Mujtaba P StensethFrance2025-06-06Morlong Associates RENEWAL34Anna Fali
1044Jennifer T OstroskyGermany2025-05-30Morlong Associates QUALIFIED76Asiya Javayant
1045Ricardo A CampainBrazil2025-05-27Benton, John B Jr NEGOTIATION8Onyama Limba
1046Juan F FlosiFrance2025-05-28Rousseaux, Michael Esq RENEWAL5Elwin Sharvill
1047Claire G MorascaCanada2025-05-30Buckley Miller Wright NEGOTIATION21Elwin Sharvill
1048Salvatore X SchemmerArgentina2025-06-08Morlong Associates UNQUALIFIED87Ivan Magalhaes
1049Sinclair S DilliardJapan2025-05-24Chanay, Jeffrey A Esq NEGOTIATION98Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maisha X TollnerItalyBernardo Dominic UNQUALIFIED
Mujtaba W DoeGermanyXuxue Feng QUALIFIED
Isabel Y MacleadRussiaIoni Bowcher RENEWAL
Ricardo J NestleCanadaIvan Magalhaes PROPOSAL
Deepesh A PaprockiRussiaIvan Magalhaes PROPOSAL
Nicolas M WaycottGermanyXuxue Feng RENEWAL
Munro N FerenczRussiaAmy Elsner NEGOTIATION
Johnson S WieserItalyIoni Bowcher NEW
Alejandro Y SaylorsGermanyBernardo Dominic PROPOSAL
Stacey A OstroskyGermanyAnna Fali RENEWAL
Smith Q RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel G WieserAustraliaOnyama Limba UNQUALIFIED
Maisha Z SaylorsRussiaStephen Shaw NEW
Sinclair H SergiIndiaIoni Bowcher UNQUALIFIED
Ricardo Y TollnerGermanyIoni Bowcher NEW
Jennifer Z AmigonUnited KingdomIvan Magalhaes NEW
Ashley N NickaUnited KingdomAsiya Javayant QUALIFIED
Claire B AmigonArgentinaAnna Fali RENEWAL
Ivar J CampainIndiaXuxue Feng NEGOTIATION
Emily D IturbideIndiaAmy Elsner RENEWAL
Deepesh D WieserItalyIvan Magalhaes QUALIFIED
Mayumi R PoquetteBrazilIvan Magalhaes NEGOTIATION
Maisha H FerenczIndiaElwin Sharvill RENEWAL
Stacey C BowleyBrazilAsiya Javayant RENEWAL
Johnson H FerenczCanadaIoni Bowcher NEW
Emily Z VocelkaIndiaStephen Shaw RENEWAL
Arvin M ChuiRussiaAmy Elsner RENEWAL
Aditya R StockhamRussiaStephen Shaw UNQUALIFIED
Tony I FollerJapanIvan Magalhaes QUALIFIED
Misaki X WhobreySpainBernardo Dominic PROPOSAL
Nicolas O SergiIndiaOnyama Limba UNQUALIFIED
Jones C AlbaresJapanElwin Sharvill NEW
Mayumi Z AlbaresGermanyBernardo Dominic RENEWAL
Salvatore O CampainUnited KingdomXuxue Feng RENEWAL
Stacey L NestleGermanyElwin Sharvill NEW
Munro S FigeroaCanadaIoni Bowcher QUALIFIED
Izzy L WhobreyBrazilOnyama Limba NEGOTIATION
Aruna N PaprockiFranceXuxue Feng QUALIFIED
Leon S CampainJapanBernardo Dominic RENEWAL
Ashley X WieserBrazilAnna Fali PROPOSAL
Ivar I IturbideCanadaAnna Fali PROPOSAL
James U WaycottRussiaAmy Elsner NEGOTIATION
Adams Z PaprockiGermanyIoni Bowcher NEGOTIATION
Maisha R KuskoJapanStephen Shaw RENEWAL
Octavia A DoeGermanyAnna Fali NEGOTIATION
Ashley C AlbaresItalyAmy Elsner RENEWAL
Johnson M OldroydJapanStephen Shaw QUALIFIED
Ashley C SergiAustraliaIvan Magalhaes UNQUALIFIED
Ivar G InouyeIndiaElwin Sharvill NEGOTIATION
Arvin S ChuiJapanXuxue Feng RENEWAL
Frozen Columns
Name
Tony Z Dilliard
Juan H Darakjy
Ivar K Darakjy
Jones D Tollner
Kaitlin W Tollner
Johnson T Caudy
Arvin W Paprocki
Silvio Z Wieser
Juan D Perin
Stacey Q Kusko
Faith H Gaucho
Aditya Z Oldroyd
Antonio P Maclead
Ivar C Briddick
Smith R Inouye
Mayumi N Wieser
Aditya A Amigon
Aditya S Campain
Aika K Saylors
Ashley T Figeroa
Izzy H Amigon
Munro Z Malet
James L Foller
Munro V Gaucho
Leja E Malet
Darci A Darakjy
Ashley W Darakjy
Stacey N Ostrosky
Maria H Briddick
Emily I Slusarski
Chavez C Amigon
Antonio K Paprocki
Jones O Amigon
Kaitlin P Sergi
Arvin P Poquette
Ashley Y Rulapaugh
Morrow K Darakjy
Kadeem Z Perin
Leon Y Perin
Johnson Q Rim
Ivar A Caudy
Cody G Morasca
Francesco F Caudy
Isabel R Malet
Nicolas X Venere
Mayumi R Morasca
Ashley M Iturbide
Ivar Z Ruta
Juan K Glick
Stacey A Bowley
IdCountryDate
1000Japan2025-06-04
1001India2025-05-29
1002India2025-06-06
1003Australia2025-06-15
1004Italy2025-05-27
1005Argentina2025-06-04
1006Argentina2025-05-21
1007Italy2025-05-19
1008France2025-05-22
1009Germany2025-05-22
1010Germany2025-06-10
1011Australia2025-06-02
1012Australia2025-06-06
1013Japan2025-05-22
1014Italy2025-05-23
1015France2025-05-26
1016Germany2025-05-26
1017Brazil2025-06-16
1018Spain2025-06-08
1019Argentina2025-06-13
1020Japan2025-05-25
1021Russia2025-06-14
1022Australia2025-05-20
1023Russia2025-05-31
1024India2025-05-28
1025Japan2025-05-18
1026France2025-06-10
1027United Kingdom2025-06-10
1028Spain2025-06-01
1029Japan2025-05-21
1030Russia2025-06-13
1031Spain2025-06-12
1032Australia2025-05-27
1033Japan2025-06-11
1034United Kingdom2025-06-10
1035France2025-06-03
1036Canada2025-05-20
1037United Kingdom2025-06-10
1038India2025-06-08
1039Germany2025-05-31
1040Russia2025-06-13
1041Germany2025-05-31
1042France2025-05-19
1043France2025-06-03
1044Germany2025-06-04
1045Argentina2025-05-31
1046Italy2025-06-02
1047India2025-06-09
1048Germany2025-05-22
1049Italy2025-05-24

On-Demand Data

NameIdCountryDate
Morrow H Dilliard1000Russia2025-06-09
Clifford Q Briddick1001Brazil2025-06-06
Clifford U Caldarera1002France2025-06-08
Maria H Maclead1003Brazil2025-05-23
Wickens F Perin1004United Kingdom2025-05-19
Darci I Schemmer1005United Kingdom2025-06-09
Kadeem B Kusko1006United Kingdom2025-05-30
Rodrigues V Nicka1007Italy2025-06-09
Kaitlin I Caudy1008Russia2025-05-31
Jeanfrancois T Figeroa1009Australia2025-06-11
Alejandro F Nicka1010Canada2025-05-22
Arvin A Royster1011Japan2025-06-03
Alejandro Y Oldroyd1012Spain2025-06-15
Claire G Albares1013United Kingdom2025-05-25
Kaitlin J Malet1014Spain2025-06-12
Mujtaba X Caudy1015Japan2025-05-26
Kaitlin B Amigon1016Australia2025-05-19
Rodrigues A Bolognia1017France2025-05-23
Julie C Stenseth1018Russia2025-06-15
Mayumi A Rim1019Italy2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood Q IturbideAustraliaIoni Bowcher UNQUALIFIED
Ricardo W KolmetzBrazilBernardo Dominic NEW
Morrow W VocelkaCanadaAsiya Javayant UNQUALIFIED
Claire G GarufiCanadaIoni Bowcher RENEWAL
Arvin K ChuiSpainAnna Fali PROPOSAL
Nicolas K GauchoSpainAnna Fali RENEWAL
Mujtaba D RoysterIndiaIvan Magalhaes PROPOSAL
Maria P BriddickBrazilIoni Bowcher QUALIFIED
Kadeem D DoeFranceXuxue Feng UNQUALIFIED
Clifford K GarufiItalyIoni Bowcher NEW
Ricardo C FigeroaFranceAsiya Javayant PROPOSAL
Salvatore D VocelkaSpainIoni Bowcher PROPOSAL
Jones G AmigonIndiaElwin Sharvill NEW
Jefferson Y DilliardAustraliaAsiya Javayant NEW
Jefferson K ButtArgentinaAnna Fali PROPOSAL
Misaki O DilliardSpainXuxue Feng PROPOSAL
Jennifer K GauchoItalyIoni Bowcher QUALIFIED
Claire E FollerSpainAnna Fali QUALIFIED
Costa V SchemmerItalyStephen Shaw UNQUALIFIED
Leon X CaldareraFranceAmy Elsner QUALIFIED
Johnson L RutaGermanyAsiya Javayant UNQUALIFIED
Jennifer G SlusarskiArgentinaOnyama Limba RENEWAL
Aditya X SaylorsBrazilAnna Fali NEW
Deepesh D RulapaughRussiaElwin Sharvill UNQUALIFIED
Stacey Y AlbaresJapanIvan Magalhaes NEW
Faith V OstroskyItalyAnna Fali NEGOTIATION
Darci L NestleBrazilElwin Sharvill QUALIFIED
Johnson D PerinJapanAsiya Javayant PROPOSAL
Chavez N DilliardRussiaOnyama Limba NEGOTIATION
Aruna P MacleadCanadaIvan Magalhaes NEGOTIATION
Aika L AlbaresItalyAnna Fali UNQUALIFIED
Chavez K AlbaresUnited KingdomAmy Elsner PROPOSAL
Johnson X NickaGermanyAnna Fali NEW
Alejandro C CaudyAustraliaAsiya Javayant UNQUALIFIED
Deepesh D WieserUnited KingdomStephen Shaw QUALIFIED
Nicolas K PoquetteUnited KingdomAnna Fali NEGOTIATION
Julie M MarrierUnited KingdomAmy Elsner RENEWAL
Misaki E BologniaGermanyStephen Shaw QUALIFIED
Claire P RimUnited KingdomStephen Shaw QUALIFIED
Johnson H GauchoIndiaAmy Elsner NEGOTIATION

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