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
Octavia G ChuiSpainIvan Magalhaes RENEWAL
Leon C SchemmerRussiaStephen Shaw NEW
Jefferson J PoquetteAustraliaAnna Fali RENEWAL
Morrow H MorascaCanadaBernardo Dominic PROPOSAL
Johnson U VocelkaBrazilIoni Bowcher UNQUALIFIED
Aruna W MarrierUnited KingdomStephen Shaw RENEWAL
Jennifer R IturbideUnited KingdomElwin Sharvill RENEWAL
Leja B RulapaughIndiaElwin Sharvill PROPOSAL
Johnson J PerinSpainElwin Sharvill QUALIFIED
Jefferson I IturbideUnited KingdomAnna Fali QUALIFIED
James C FlosiItalyOnyama Limba QUALIFIED
Maisha I MaletUnited KingdomAsiya Javayant RENEWAL
Antonio R FlosiGermanyStephen Shaw RENEWAL
Darci L ChuiGermanyXuxue Feng NEGOTIATION
Rodrigues A PoquetteAustraliaStephen Shaw UNQUALIFIED
Aditya Q RimCanadaAnna Fali UNQUALIFIED
Octavia K DilliardGermanyIvan Magalhaes RENEWAL
Kaitlin H StensethCanadaIoni Bowcher RENEWAL
Aika B MacleadRussiaStephen Shaw NEGOTIATION
Ivar L GarufiArgentinaStephen Shaw RENEWAL
Izzy G WaycottSpainElwin Sharvill UNQUALIFIED
Juan R NickaUnited KingdomStephen Shaw QUALIFIED
Ivar I MacleadUnited KingdomOnyama Limba NEW
Clifford E WaycottGermanyStephen Shaw NEW
Jeanfrancois M GarufiItalyElwin Sharvill UNQUALIFIED
David R StockhamArgentinaIoni Bowcher NEW
Costa B CaldareraBrazilElwin Sharvill PROPOSAL
Izzy X WieserGermanyIvan Magalhaes RENEWAL
Mayumi Z MarrierFranceAsiya Javayant NEW
Cody H SlusarskiUnited KingdomXuxue Feng QUALIFIED
Wickens V GauchoArgentinaAnna Fali NEW
Aruna D VenereJapanAnna Fali RENEWAL
Faith Z PerinAustraliaAsiya Javayant NEW
Octavia Q CampainArgentinaElwin Sharvill QUALIFIED
Izzy F OldroydGermanyElwin Sharvill RENEWAL
Aditya V AmigonJapanBernardo Dominic UNQUALIFIED
Clifford O KuskoIndiaIoni Bowcher QUALIFIED
Aditya K FigeroaCanadaElwin Sharvill RENEWAL
Emily M BowleyGermanyStephen Shaw RENEWAL
Darci F IturbideGermanyXuxue Feng NEW
Maisha F MaletJapanStephen Shaw RENEWAL
Julie T VenereCanadaOnyama Limba PROPOSAL
Ashley G MorascaUnited KingdomAnna Fali RENEWAL
Rodrigues G PaprockiSpainXuxue Feng RENEWAL
Clifford E MacleadIndiaIvan Magalhaes QUALIFIED
Rodrigues R ChuiArgentinaAsiya Javayant NEGOTIATION
Jones U SchemmerBrazilOnyama Limba PROPOSAL
Jefferson A ButtItalyAmy Elsner NEW
Emily S WieserGermanyAsiya Javayant UNQUALIFIED
Arvin C AmigonIndiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues Z PoquetteUnited KingdomElwin Sharvill QUALIFIED
Munro Q MaletAustraliaAmy Elsner NEGOTIATION
Johnson Z FerenczSpainBernardo Dominic QUALIFIED
Emily L OstroskyRussiaAsiya Javayant PROPOSAL
Jefferson L WaycottCanadaOnyama Limba UNQUALIFIED
Adams A ButtUnited KingdomAmy Elsner RENEWAL
Mujtaba U IturbideRussiaOnyama Limba NEW
Tony W ButtFranceStephen Shaw PROPOSAL
Faith K PoquetteGermanyOnyama Limba UNQUALIFIED
Isabel A MaletItalyBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily L PerinFrance2026-07-21Morlong Associates RENEWAL80Elwin Sharvill
1001Kadeem H GillianUnited Kingdom2026-07-11Feltz Printing Service NEW29Xuxue Feng
1002David A AlbaresBrazil2026-07-23Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1003Kadeem O SergiSpain2026-07-08Rousseaux, Michael Esq PROPOSAL44Ioni Bowcher
1004Sinclair M NestleRussia2026-07-05Rousseaux, Michael Esq RENEWAL36Elwin Sharvill
1005Smith S CampainIndia2026-07-26Chemel, James L Cpa QUALIFIED54Asiya Javayant
1006Stacey K BriddickArgentina2026-07-10Morlong Associates NEW33Elwin Sharvill
1007Deepesh S AmigonRussia2026-07-24Chemel, James L Cpa NEGOTIATION57Anna Fali
1008Juan X ChuiAustralia2026-07-16Printing Dimensions UNQUALIFIED13Amy Elsner
1009Wickens R PoquetteUnited Kingdom2026-06-30Feiner Bros NEW39Amy Elsner
1010Ashley A FlosiJapan2026-07-05Feiner Bros NEGOTIATION11Bernardo Dominic
1011Adams V GarufiGermany2026-07-19Dorl, James J Esq QUALIFIED64Ioni Bowcher
1012Jennifer T RulapaughJapan2026-07-06Benton, John B Jr RENEWAL41Ivan Magalhaes
1013Adams F StensethSpain2026-07-24Benton, John B Jr UNQUALIFIED88Xuxue Feng
1014Claire D PoquetteIndia2026-07-05Buckley Miller Wright UNQUALIFIED62Ioni Bowcher
1015Adams R ChuiItaly2026-07-17Buckley Miller Wright QUALIFIED7Anna Fali
1016Alejandro K RoysterCanada2026-07-07Truhlar And Truhlar Attys RENEWAL61Stephen Shaw
1017Jefferson X NickaSpain2026-07-06Chapman, Ross E Esq NEW35Amy Elsner
1018Isabel D TollnerAustralia2026-07-10Rangoni Of Florence PROPOSAL67Amy Elsner
1019Kadeem O SchemmerIndia2026-06-29Truhlar And Truhlar Attys RENEWAL52Asiya Javayant
1020Arvin S CaldareraRussia2026-07-22Buckley Miller Wright QUALIFIED51Elwin Sharvill
1021Mayumi L ButtGermany2026-07-20Feiner Bros NEW41Stephen Shaw
1022Jefferson S SergiRussia2026-07-24Rousseaux, Michael Esq UNQUALIFIED53Asiya Javayant
1023Ashley E RoysterUnited Kingdom2026-07-27Commercial Press NEW24Stephen Shaw
1024Arvin Q FigeroaIndia2026-07-14Benton, John B Jr RENEWAL90Asiya Javayant
1025Stacey H MorascaFrance2026-06-28Rousseaux, Michael Esq PROPOSAL59Amy Elsner
1026Murillo Q StensethBrazil2026-07-17Benton, John B Jr UNQUALIFIED73Onyama Limba
1027Smith F ShinkoArgentina2026-07-23Commercial Press NEW31Asiya Javayant
1028Clifford I GlickAustralia2026-07-19Rousseaux, Michael Esq PROPOSAL93Ioni Bowcher
1029Jones T BriddickFrance2026-07-09Buckley Miller Wright PROPOSAL88Anna Fali
1030Sinclair H BowleyUnited Kingdom2026-07-10Buckley Miller Wright RENEWAL48Ioni Bowcher
1031Adams G PoquetteAustralia2026-07-25Morlong Associates RENEWAL79Ivan Magalhaes
1032Maisha X PoquetteGermany2026-07-03Truhlar And Truhlar Attys NEGOTIATION0Elwin Sharvill
1033Arvin E VocelkaFrance2026-06-28Dorl, James J Esq NEGOTIATION74Onyama Limba
1034Tony D MaletFrance2026-06-29Feiner Bros PROPOSAL18Onyama Limba
1035Wickens V KolmetzAustralia2026-07-08Buckley Miller Wright UNQUALIFIED42Ivan Magalhaes
1036Emily Z BologniaArgentina2026-07-24Rangoni Of Florence PROPOSAL41Anna Fali
1037Cody Z CampainBrazil2026-07-12Rousseaux, Michael Esq NEGOTIATION76Bernardo Dominic
1038Maisha M GarufiFrance2026-07-27Commercial Press UNQUALIFIED89Amy Elsner
1039Leja E CaudyCanada2026-06-30Chapman, Ross E Esq QUALIFIED83Ivan Magalhaes
1040Stacey L CaudyRussia2026-07-27Chapman, Ross E Esq NEGOTIATION77Anna Fali
1041Arvin H KuskoJapan2026-07-17Printing Dimensions NEGOTIATION2Bernardo Dominic
1042Maria V MaletJapan2026-07-23Dorl, James J Esq PROPOSAL64Bernardo Dominic
1043Johnson O FollerArgentina2026-07-01Buckley Miller Wright PROPOSAL30Xuxue Feng
1044Deepesh N DilliardBrazil2026-07-06Commercial Press QUALIFIED79Elwin Sharvill
1045Aruna E RoysterSpain2026-07-10Chapman, Ross E Esq RENEWAL88Stephen Shaw
1046Mayumi P MaletRussia2026-07-26Buckley Miller Wright NEW44Stephen Shaw
1047Clifford I GlickBrazil2026-07-03Rangoni Of Florence NEGOTIATION75Stephen Shaw
1048Jones Q AlbaresSpain2026-06-29Feltz Printing Service NEW40Bernardo Dominic
1049Silvio G InouyeItaly2026-07-19Chanay, Jeffrey A Esq NEW2Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mayumi H FlosiArgentinaAsiya Javayant PROPOSAL
Jennifer K FlosiArgentinaOnyama Limba PROPOSAL
Kadeem B GlickAustraliaXuxue Feng PROPOSAL
Mayumi B OstroskyAustraliaElwin Sharvill UNQUALIFIED
Wickens S StockhamUnited KingdomXuxue Feng PROPOSAL
Jeanfrancois R StockhamSpainIoni Bowcher PROPOSAL
Claire W SaylorsCanadaIoni Bowcher NEGOTIATION
Mujtaba R MarrierArgentinaOnyama Limba RENEWAL
Aruna O MacleadSpainXuxue Feng PROPOSAL
Adams M CaudyJapanXuxue Feng UNQUALIFIED
Greenwood C MaletArgentinaIoni Bowcher RENEWAL
Greenwood N FlosiSpainIvan Magalhaes QUALIFIED
Costa W DarakjyBrazilAsiya Javayant NEW
Chavez X CaldareraRussiaBernardo Dominic NEGOTIATION
Julie M BowleyBrazilAsiya Javayant PROPOSAL
Costa I ChuiCanadaIoni Bowcher QUALIFIED
Kaitlin Q MacleadFranceBernardo Dominic NEW
Jones Z WhobreyUnited KingdomXuxue Feng RENEWAL
Greenwood F BowleyIndiaStephen Shaw NEW
Nicolas G GillianCanadaBernardo Dominic NEGOTIATION
Maria Q OstroskyCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois B RutaArgentinaIoni Bowcher UNQUALIFIED
David M WaycottAustraliaElwin Sharvill RENEWAL
Mujtaba M RutaAustraliaStephen Shaw PROPOSAL
Cody Y BowleyGermanyBernardo Dominic PROPOSAL
Kaitlin D PaprockiAustraliaIoni Bowcher QUALIFIED
Stacey H AmigonItalyElwin Sharvill PROPOSAL
Ivar X NestleUnited KingdomAnna Fali QUALIFIED
Jones F TollnerArgentinaOnyama Limba NEGOTIATION
Jefferson P GlickIndiaAsiya Javayant NEW
James N SergiArgentinaAmy Elsner NEGOTIATION
Mayumi G RutaFranceElwin Sharvill NEGOTIATION
Jones I PoquetteSpainStephen Shaw RENEWAL
Wickens T SlusarskiArgentinaBernardo Dominic QUALIFIED
Tony B IturbideGermanyStephen Shaw UNQUALIFIED
Costa X OldroydUnited KingdomOnyama Limba NEW
Munro U MarrierJapanXuxue Feng NEW
Claire S GillianIndiaStephen Shaw RENEWAL
Greenwood W FlosiBrazilAmy Elsner RENEWAL
Leon G WaycottSpainAmy Elsner NEW
Greenwood A PerinGermanyXuxue Feng UNQUALIFIED
Murillo K MaletItalyIvan Magalhaes QUALIFIED
Octavia Z WieserJapanIoni Bowcher QUALIFIED
Juan H OldroydAustraliaElwin Sharvill QUALIFIED
David V MacleadCanadaAnna Fali UNQUALIFIED
Smith S BriddickItalyOnyama Limba UNQUALIFIED
Jeanfrancois L MorascaUnited KingdomAmy Elsner RENEWAL
Emily J OldroydGermanyAsiya Javayant UNQUALIFIED
Leja X GillianUnited KingdomXuxue Feng NEW
Jeanfrancois H StensethItalyAnna Fali PROPOSAL
Frozen Columns
Name
Costa A Morasca
Aruna C Malet
Ashley C Morasca
Mayumi K Ruta
Smith A Ostrosky
Leja V Campain
Deepesh E Campain
Johnson F Whobrey
Antonio W Nestle
Antonio J Stockham
Antonio H Iturbide
Smith X Dilliard
Mujtaba S Flosi
Leja C Paprocki
Claire E Gaucho
Adams T Nicka
Morrow Q Malet
Chavez U Garufi
Salvatore Q Albares
Salvatore I Marrier
Octavia U Oldroyd
Jennifer C Bowley
Murillo U Royster
Clifford N Campain
Darci B Venere
Mujtaba K Ferencz
Clifford C Paprocki
Alejandro J Oldroyd
Maisha O Doe
Leja Z Figeroa
Wickens V Butt
James I Perin
Rodrigues P Perin
Johnson I Campain
Octavia M Malet
Aika H Glick
Alejandro H Paprocki
Francesco F Marrier
Smith T Caudy
Jennifer I Poquette
Jefferson Q Ostrosky
Darci N Campain
Salvatore E Ruta
Jefferson K Stockham
Darci U Rulapaugh
Emily A Nicka
Izzy D Kolmetz
Tony L Darakjy
Greenwood B Stenseth
Morrow P Kusko
IdCountryDate
1000Italy2026-07-20
1001Russia2026-07-15
1002India2026-07-10
1003United Kingdom2026-07-23
1004Italy2026-07-27
1005Spain2026-07-13
1006France2026-07-27
1007Argentina2026-07-01
1008Russia2026-07-19
1009Japan2026-07-24
1010Russia2026-07-18
1011Italy2026-07-12
1012Japan2026-07-05
1013India2026-07-14
1014Argentina2026-07-23
1015Russia2026-07-06
1016Argentina2026-07-16
1017France2026-07-23
1018Italy2026-06-29
1019Spain2026-07-16
1020Argentina2026-07-04
1021Canada2026-07-04
1022Japan2026-07-21
1023India2026-07-15
1024Japan2026-07-09
1025Germany2026-07-07
1026Australia2026-07-15
1027Spain2026-07-19
1028France2026-07-08
1029Russia2026-07-25
1030Canada2026-07-16
1031Brazil2026-07-14
1032Australia2026-07-06
1033United Kingdom2026-07-20
1034Russia2026-07-01
1035Argentina2026-07-26
1036Japan2026-07-19
1037Canada2026-07-04
1038United Kingdom2026-06-29
1039Argentina2026-07-13
1040Italy2026-07-24
1041Italy2026-07-11
1042Australia2026-07-26
1043Canada2026-07-21
1044Argentina2026-07-13
1045Australia2026-07-10
1046Russia2026-07-07
1047India2026-06-28
1048Australia2026-07-05
1049India2026-07-02

On-Demand Data

NameIdCountryDate
Sinclair W Foller1000Japan2026-07-04
Kadeem E Sergi1001Russia2026-07-25
Ivar U Caldarera1002India2026-07-27
Jeanfrancois C Darakjy1003France2026-07-27
Juan P Iturbide1004Italy2026-06-28
James Y Iturbide1005United Kingdom2026-07-10
Jennifer U Caudy1006Japan2026-07-16
Kadeem O Malet1007Japan2026-07-10
Morrow G Caudy1008India2026-07-20
Mayumi P Schemmer1009Japan2026-07-23
Darci W Ruta1010Germany2026-07-05
Darci E Wieser1011Russia2026-07-23
Jones W Oldroyd1012Brazil2026-07-16
Isabel L Stenseth1013Brazil2026-07-01
Isabel D Slusarski1014France2026-07-02
Maisha T Shinko1015Brazil2026-07-07
Jefferson Z Malet1016Spain2026-07-22
Leon R Maclead1017India2026-06-28
Silvio P Ruta1018United Kingdom2026-07-06
Darci L Bowley1019Australia2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James N NestleUnited KingdomElwin Sharvill QUALIFIED
Misaki G GarufiAustraliaAnna Fali NEW
Cody T FollerGermanyIoni Bowcher RENEWAL
Ricardo X CaldareraArgentinaIvan Magalhaes NEW
Emily O DarakjyItalyXuxue Feng NEGOTIATION
Nicolas A MorascaCanadaOnyama Limba NEW
Leja H GlickIndiaElwin Sharvill PROPOSAL
Julie P SaylorsBrazilElwin Sharvill NEW
Octavia L KuskoUnited KingdomAnna Fali NEGOTIATION
Sinclair T FollerItalyAnna Fali RENEWAL
Ashley A SlusarskiItalyOnyama Limba UNQUALIFIED
Faith D NestleUnited KingdomStephen Shaw NEW
Salvatore Y VenereSpainElwin Sharvill NEGOTIATION
Aditya Z GauchoBrazilAnna Fali PROPOSAL
Clifford Q BowleyGermanyElwin Sharvill NEGOTIATION
Tony Y SlusarskiIndiaOnyama Limba UNQUALIFIED
Faith J VocelkaItalyBernardo Dominic RENEWAL
Munro N FlosiGermanyBernardo Dominic UNQUALIFIED
Octavia D StockhamCanadaElwin Sharvill NEW
Aika P OldroydArgentinaIoni Bowcher RENEWAL
Stacey T GillianUnited KingdomOnyama Limba QUALIFIED
Mujtaba B BologniaUnited KingdomXuxue Feng NEW
Johnson Z FigeroaSpainIoni Bowcher PROPOSAL
Tony P VenereUnited KingdomAnna Fali RENEWAL
Aditya M GauchoCanadaBernardo Dominic PROPOSAL
Ricardo R IturbideJapanIvan Magalhaes NEW
Leja V VenereBrazilOnyama Limba PROPOSAL
Misaki I TollnerFranceAmy Elsner NEGOTIATION
Arvin T DilliardUnited KingdomIoni Bowcher QUALIFIED
Maisha A DoeCanadaOnyama Limba NEGOTIATION
Mayumi W MarrierCanadaIoni Bowcher RENEWAL
Costa V MarrierRussiaBernardo Dominic QUALIFIED
Adams G RutaCanadaOnyama Limba NEW
Morrow V RimArgentinaBernardo Dominic QUALIFIED
Silvio J DarakjyGermanyXuxue Feng QUALIFIED
Silvio Y DoeSpainStephen Shaw NEGOTIATION
Morrow R TollnerItalyBernardo Dominic NEW
Antonio S NestleCanadaStephen Shaw NEW
Chavez E StockhamGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois R RutaCanadaIvan Magalhaes QUALIFIED

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