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
Julie N KolmetzIndiaElwin Sharvill UNQUALIFIED
Ashley W BologniaIndiaAmy Elsner PROPOSAL
Morrow P DoeArgentinaIoni Bowcher PROPOSAL
Ricardo W CaldareraCanadaBernardo Dominic PROPOSAL
Jefferson L BowleyCanadaAmy Elsner NEGOTIATION
Murillo B StockhamJapanAmy Elsner PROPOSAL
Johnson Z DoeFranceStephen Shaw NEW
Smith E RoysterSpainAsiya Javayant NEGOTIATION
Faith Z DilliardUnited KingdomAnna Fali QUALIFIED
Ricardo I FlosiGermanyBernardo Dominic PROPOSAL
Mujtaba Z SchemmerGermanyOnyama Limba NEGOTIATION
Leja L RimAustraliaAmy Elsner NEW
Maria X StockhamUnited KingdomElwin Sharvill NEGOTIATION
Greenwood U CampainArgentinaStephen Shaw NEGOTIATION
Francesco Y ShinkoArgentinaElwin Sharvill NEGOTIATION
Murillo W PoquetteJapanBernardo Dominic NEW
Jeanfrancois L VocelkaFranceAmy Elsner PROPOSAL
David O MaletAustraliaAsiya Javayant QUALIFIED
Adams L ButtJapanAmy Elsner QUALIFIED
Clifford U StensethArgentinaStephen Shaw NEGOTIATION
Stacey R CaudySpainOnyama Limba NEW
Johnson G MacleadCanadaAmy Elsner PROPOSAL
Emily L MarrierItalyBernardo Dominic NEGOTIATION
Kaitlin G MorascaSpainBernardo Dominic PROPOSAL
Francesco U FollerRussiaAnna Fali NEW
Darci P MaletBrazilIvan Magalhaes NEGOTIATION
Aruna K SaylorsRussiaBernardo Dominic RENEWAL
Rodrigues R DilliardFranceAmy Elsner RENEWAL
Leon G FlosiGermanyAmy Elsner UNQUALIFIED
Morrow W SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Ivar M RoysterBrazilAmy Elsner UNQUALIFIED
Deepesh U MorascaAustraliaIoni Bowcher UNQUALIFIED
Ashley K MacleadUnited KingdomAnna Fali RENEWAL
Kadeem Z CaudyRussiaIvan Magalhaes RENEWAL
Silvio N TollnerRussiaIvan Magalhaes UNQUALIFIED
Emily N CampainArgentinaBernardo Dominic UNQUALIFIED
Leon Q MacleadArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois T VenereItalyElwin Sharvill UNQUALIFIED
Aika K MacleadJapanAmy Elsner NEW
Costa W RulapaughBrazilIoni Bowcher QUALIFIED
Jones H SergiGermanyAnna Fali PROPOSAL
Kaitlin W KuskoCanadaAsiya Javayant QUALIFIED
Kaitlin K VenereFranceIvan Magalhaes NEW
Maisha O MaletItalyOnyama Limba NEW
Chavez P StockhamArgentinaIoni Bowcher UNQUALIFIED
Greenwood N MaletSpainOnyama Limba PROPOSAL
Mayumi O GillianFranceStephen Shaw RENEWAL
Octavia K InouyeGermanyAsiya Javayant PROPOSAL
Mayumi V GlickIndiaAmy Elsner PROPOSAL
Faith Z KuskoUnited KingdomBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Faith K WieserItalyXuxue Feng QUALIFIED
Leon C MaletItalyXuxue Feng QUALIFIED
Johnson C RutaAustraliaStephen Shaw PROPOSAL
Arvin A GauchoAustraliaXuxue Feng UNQUALIFIED
James V IturbideCanadaIoni Bowcher QUALIFIED
Maisha N CaudyItalyXuxue Feng NEW
Maria F GillianSpainAmy Elsner RENEWAL
Maisha D VenereJapanAsiya Javayant NEGOTIATION
Ricardo X ChuiCanadaAnna Fali NEGOTIATION
Rodrigues B CaudyItalyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo Y AlbaresRussia2026-06-29Commercial Press PROPOSAL15Bernardo Dominic
1001Julie D ButtUnited Kingdom2026-06-24Morlong Associates UNQUALIFIED69Amy Elsner
1002Aditya W VenereSpain2026-06-16Printing Dimensions QUALIFIED11Xuxue Feng
1003Francesco K DilliardUnited Kingdom2026-06-11Chanay, Jeffrey A Esq QUALIFIED88Stephen Shaw
1004Salvatore X FlosiArgentina2026-06-25Commercial Press RENEWAL45Amy Elsner
1005Wickens U FollerArgentina2026-06-24Chemel, James L Cpa NEGOTIATION75Anna Fali
1006Jefferson H StensethGermany2026-06-20Feiner Bros QUALIFIED6Ioni Bowcher
1007Stacey R AmigonSpain2026-06-13Truhlar And Truhlar Attys UNQUALIFIED42Onyama Limba
1008Maisha O WhobreyFrance2026-06-14Commercial Press NEGOTIATION2Bernardo Dominic
1009Aruna B IturbideSpain2026-07-09Printing Dimensions QUALIFIED2Bernardo Dominic
1010Ricardo V VocelkaIndia2026-06-14Dorl, James J Esq RENEWAL97Stephen Shaw
1011Misaki N BologniaSpain2026-07-01Feltz Printing Service NEW58Ioni Bowcher
1012Jefferson J VocelkaFrance2026-06-30Rangoni Of Florence PROPOSAL93Elwin Sharvill
1013Kaitlin C FerenczArgentina2026-06-26Truhlar And Truhlar Attys RENEWAL24Ivan Magalhaes
1014Cody T MacleadCanada2026-06-27Benton, John B Jr UNQUALIFIED46Elwin Sharvill
1015Kadeem K IturbideArgentina2026-06-11Rangoni Of Florence RENEWAL56Asiya Javayant
1016Julie A VocelkaGermany2026-06-23King, Christopher A Esq UNQUALIFIED98Ivan Magalhaes
1017Deepesh Y WieserUnited Kingdom2026-06-25King, Christopher A Esq QUALIFIED28Ioni Bowcher
1018Octavia L RimBrazil2026-07-06King, Christopher A Esq NEGOTIATION42Asiya Javayant
1019Izzy G RoysterJapan2026-06-29Buckley Miller Wright QUALIFIED24Asiya Javayant
1020Faith W CaldareraSpain2026-06-29Benton, John B Jr NEW33Stephen Shaw
1021Isabel O OldroydRussia2026-06-21Chanay, Jeffrey A Esq NEGOTIATION48Stephen Shaw
1022Ashley L ButtBrazil2026-07-01Chemel, James L Cpa UNQUALIFIED99Asiya Javayant
1023David U DarakjyArgentina2026-07-07Chapman, Ross E Esq NEW35Amy Elsner
1024Jones H RulapaughAustralia2026-06-27Chanay, Jeffrey A Esq RENEWAL50Ivan Magalhaes
1025Leja U KuskoJapan2026-06-12Chanay, Jeffrey A Esq NEGOTIATION26Anna Fali
1026Mayumi D OstroskyGermany2026-07-08Feiner Bros UNQUALIFIED79Elwin Sharvill
1027Tony K GillianArgentina2026-06-20Commercial Press QUALIFIED35Stephen Shaw
1028Clifford N RimAustralia2026-07-01Chanay, Jeffrey A Esq PROPOSAL86Ivan Magalhaes
1029Sinclair J MarrierUnited Kingdom2026-06-12Feltz Printing Service NEGOTIATION45Asiya Javayant
1030Misaki U NickaItaly2026-06-12Feiner Bros NEGOTIATION94Xuxue Feng
1031Ivar X MorascaAustralia2026-07-04Truhlar And Truhlar Attys PROPOSAL35Elwin Sharvill
1032Costa B MacleadFrance2026-07-04Rousseaux, Michael Esq RENEWAL94Asiya Javayant
1033Mujtaba U GauchoJapan2026-06-18Buckley Miller Wright NEW23Bernardo Dominic
1034Julie F BologniaIndia2026-07-07Benton, John B Jr PROPOSAL86Onyama Limba
1035Faith N RulapaughItaly2026-07-07Morlong Associates UNQUALIFIED33Ioni Bowcher
1036David Z KuskoCanada2026-06-25Feiner Bros PROPOSAL33Xuxue Feng
1037Aditya J BowleySpain2026-06-12Feiner Bros QUALIFIED22Xuxue Feng
1038Murillo Q CaldareraAustralia2026-07-02Benton, John B Jr RENEWAL17Anna Fali
1039Juan G NickaItaly2026-06-20Benton, John B Jr NEW87Stephen Shaw
1040Arvin B NickaJapan2026-06-11Chapman, Ross E Esq QUALIFIED86Ioni Bowcher
1041Jefferson G DilliardAustralia2026-06-29Printing Dimensions NEW20Onyama Limba
1042Julie L TollnerUnited Kingdom2026-06-20Morlong Associates NEGOTIATION15Elwin Sharvill
1043Aruna Q FigeroaRussia2026-07-09Feiner Bros UNQUALIFIED79Xuxue Feng
1044Munro S GillianCanada2026-06-26Truhlar And Truhlar Attys RENEWAL75Xuxue Feng
1045David G InouyeIndia2026-06-16Dorl, James J Esq NEW7Asiya Javayant
1046Chavez Y CampainRussia2026-06-25Commercial Press PROPOSAL31Xuxue Feng
1047Costa N VenereGermany2026-06-26Morlong Associates NEGOTIATION57Ioni Bowcher
1048Ashley W GarufiCanada2026-06-28Dorl, James J Esq QUALIFIED28Onyama Limba
1049Salvatore Z ChuiFrance2026-06-16Benton, John B Jr RENEWAL26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Claire A RutaItalyAmy Elsner QUALIFIED
Mayumi D GlickIndiaIoni Bowcher PROPOSAL
Kaitlin D MaletArgentinaBernardo Dominic NEW
Jones I WieserSpainIoni Bowcher PROPOSAL
Johnson Y SaylorsIndiaBernardo Dominic RENEWAL
Aditya X CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Costa W IturbideCanadaAmy Elsner NEW
Tony Y IturbideIndiaOnyama Limba NEW
Chavez D SlusarskiGermanyXuxue Feng RENEWAL
Munro Q GlickCanadaAmy Elsner RENEWAL
Isabel R ShinkoItalyAmy Elsner RENEWAL
Aruna H RulapaughArgentinaXuxue Feng UNQUALIFIED
Stacey L VenereFranceOnyama Limba UNQUALIFIED
Nicolas W WieserGermanyElwin Sharvill PROPOSAL
Costa X OstroskyGermanyStephen Shaw RENEWAL
Misaki G BowleyAustraliaAmy Elsner RENEWAL
Juan Q SlusarskiRussiaIoni Bowcher NEGOTIATION
Mujtaba J MacleadArgentinaAnna Fali NEGOTIATION
Isabel S MaletBrazilAnna Fali NEGOTIATION
Greenwood V MorascaRussiaAsiya Javayant RENEWAL
Izzy L PerinArgentinaElwin Sharvill UNQUALIFIED
Ashley X FlosiSpainAmy Elsner PROPOSAL
Murillo U PoquetteJapanAmy Elsner UNQUALIFIED
Rodrigues B DoeArgentinaAnna Fali RENEWAL
Alejandro P TollnerArgentinaAmy Elsner QUALIFIED
Stacey X AmigonRussiaElwin Sharvill QUALIFIED
Faith P RulapaughCanadaStephen Shaw PROPOSAL
James B ChuiIndiaBernardo Dominic NEGOTIATION
Aditya H DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Arvin B BriddickSpainXuxue Feng RENEWAL
Misaki B StensethCanadaAsiya Javayant UNQUALIFIED
Clifford K RulapaughUnited KingdomIvan Magalhaes NEW
Munro A RulapaughBrazilAsiya Javayant NEGOTIATION
Kadeem I GarufiBrazilBernardo Dominic UNQUALIFIED
Emily Y FerenczRussiaIoni Bowcher PROPOSAL
Nicolas D OldroydCanadaIoni Bowcher QUALIFIED
Silvio F MaletJapanIoni Bowcher RENEWAL
Aika Z BowleyAustraliaXuxue Feng RENEWAL
Smith L MacleadAustraliaAsiya Javayant PROPOSAL
Aika V MaletArgentinaElwin Sharvill UNQUALIFIED
Isabel X CampainBrazilAsiya Javayant QUALIFIED
Kadeem N AlbaresArgentinaStephen Shaw NEW
Deepesh S FollerCanadaAnna Fali RENEWAL
Claire B ShinkoRussiaXuxue Feng NEW
Juan S CaldareraUnited KingdomBernardo Dominic NEW
Adams R OstroskySpainAsiya Javayant NEW
Munro L RulapaughArgentinaXuxue Feng RENEWAL
Aika Q MacleadIndiaAsiya Javayant QUALIFIED
Jennifer A StockhamArgentinaXuxue Feng NEW
Munro N DarakjyGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Julie Z Wieser
Isabel Q Shinko
Greenwood Y Morasca
Salvatore Z Figeroa
Murillo T Gillian
Jennifer D Poquette
Jefferson F Kolmetz
Munro A Perin
Leon N Nicka
Mujtaba W Nestle
Isabel L Caudy
Julie C Figeroa
Wickens T Maclead
Claire A Dilliard
Arvin T Ruta
Morrow P Stenseth
Darci T Albares
Emily B Amigon
Johnson W Flosi
Jeanfrancois L Figeroa
Deepesh R Albares
Leja S Nestle
Ashley O Bolognia
Salvatore W Garufi
Aruna I Stenseth
Darci W Malet
Jones U Ostrosky
Jeanfrancois R Foller
Jones S Malet
Deepesh R Venere
Leon H Rim
Rodrigues R Waycott
Greenwood A Maclead
Faith Q Oldroyd
Kaitlin B Gaucho
Octavia A Saylors
Kadeem O Poquette
Ivar A Rim
Ashley E Shinko
Stacey J Malet
Jones U Albares
Smith B Oldroyd
Alejandro Z Stenseth
James X Stockham
Ivar C Gillian
Kadeem V Maclead
Octavia M Perin
Aika R Caldarera
Maria N Iturbide
Aika D Doe
IdCountryDate
1000Brazil2026-06-19
1001United Kingdom2026-07-07
1002Australia2026-07-09
1003Brazil2026-06-20
1004France2026-06-21
1005Germany2026-07-05
1006Russia2026-07-07
1007Russia2026-06-26
1008Russia2026-06-14
1009United Kingdom2026-07-03
1010Canada2026-06-30
1011Brazil2026-06-10
1012Canada2026-06-25
1013Argentina2026-07-04
1014India2026-07-06
1015Spain2026-06-17
1016Brazil2026-06-12
1017Italy2026-06-10
1018Brazil2026-06-16
1019Germany2026-06-19
1020France2026-06-13
1021Germany2026-06-26
1022Germany2026-06-10
1023Japan2026-06-24
1024Argentina2026-07-07
1025France2026-07-08
1026Germany2026-06-16
1027Japan2026-06-19
1028Italy2026-07-08
1029Japan2026-07-02
1030Australia2026-07-06
1031United Kingdom2026-06-11
1032France2026-06-13
1033Italy2026-06-11
1034Japan2026-06-30
1035Brazil2026-06-13
1036Brazil2026-06-28
1037Spain2026-06-19
1038Japan2026-06-19
1039India2026-06-11
1040Argentina2026-07-01
1041Brazil2026-06-12
1042Spain2026-06-13
1043Japan2026-07-05
1044Japan2026-06-18
1045Brazil2026-06-13
1046Russia2026-07-08
1047Australia2026-06-10
1048Italy2026-07-03
1049Brazil2026-06-17

On-Demand Data

NameIdCountryDate
Stacey R Oldroyd1000Spain2026-06-13
Darci Q Nestle1001Italy2026-06-12
Wickens T Sergi1002Spain2026-07-03
Tony A Morasca1003Australia2026-06-13
Nicolas U Albares1004Germany2026-07-02
Jeanfrancois W Chui1005Canada2026-06-27
Deepesh B Whobrey1006Argentina2026-07-04
Johnson N Ferencz1007Argentina2026-07-02
Morrow I Garufi1008Brazil2026-06-14
Rodrigues B Slusarski1009United Kingdom2026-07-06
Deepesh A Albares1010Russia2026-06-23
Murillo U Foller1011Italy2026-07-06
Maria B Albares1012Germany2026-06-17
Claire G Briddick1013Canada2026-07-04
Claire M Perin1014Australia2026-06-21
Kadeem M Caldarera1015France2026-06-18
Aditya P Rulapaugh1016Russia2026-06-12
Maria Y Doe1017United Kingdom2026-06-29
Clifford N Gillian1018Germany2026-07-02
Izzy O Paprocki1019United Kingdom2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja B SaylorsBrazilIoni Bowcher PROPOSAL
Wickens F PerinCanadaAsiya Javayant NEGOTIATION
Octavia U BowleyGermanyStephen Shaw NEGOTIATION
Kaitlin R VenereJapanElwin Sharvill UNQUALIFIED
Adams M FlosiJapanOnyama Limba RENEWAL
Stacey U MaletRussiaXuxue Feng QUALIFIED
Ivar W KuskoArgentinaIvan Magalhaes UNQUALIFIED
Greenwood V ChuiCanadaStephen Shaw RENEWAL
Clifford U MorascaCanadaBernardo Dominic PROPOSAL
Sinclair Q CaudyJapanElwin Sharvill RENEWAL
Jennifer E TollnerRussiaOnyama Limba RENEWAL
Deepesh U FigeroaItalyBernardo Dominic PROPOSAL
Maria V DoeCanadaXuxue Feng NEGOTIATION
Mujtaba R MaletArgentinaOnyama Limba PROPOSAL
Leon X RoysterRussiaAmy Elsner PROPOSAL
Aika Z PaprockiUnited KingdomBernardo Dominic QUALIFIED
Maria T FerenczSpainIoni Bowcher NEW
Jefferson S KuskoAustraliaXuxue Feng RENEWAL
Aditya S SlusarskiAustraliaIvan Magalhaes NEW
Kaitlin Z RutaAustraliaStephen Shaw NEW
Maria B MarrierItalyAmy Elsner UNQUALIFIED
Clifford L DarakjyFranceAmy Elsner PROPOSAL
Ashley C FigeroaGermanyElwin Sharvill PROPOSAL
Rodrigues C MaletBrazilOnyama Limba RENEWAL
Nicolas D CampainIndiaXuxue Feng NEW
Greenwood G AlbaresUnited KingdomOnyama Limba NEGOTIATION
Leja I NestleBrazilOnyama Limba PROPOSAL
Juan T BologniaAustraliaElwin Sharvill PROPOSAL
Johnson M VenereAustraliaStephen Shaw UNQUALIFIED
Rodrigues Y ShinkoArgentinaOnyama Limba UNQUALIFIED
Leja B PaprockiBrazilAnna Fali RENEWAL
Octavia F ChuiAustraliaStephen Shaw NEW
Izzy M GlickCanadaStephen Shaw NEW
Murillo M RoysterFranceXuxue Feng PROPOSAL
Aditya O FigeroaBrazilAsiya Javayant QUALIFIED
Murillo X DoeBrazilIvan Magalhaes NEGOTIATION
Ashley W KuskoRussiaAnna Fali NEGOTIATION
Johnson R IturbideFranceAnna Fali NEW
Sinclair F CaudyCanadaBernardo Dominic NEGOTIATION
Julie X GarufiUnited KingdomIvan Magalhaes 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>