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
Maisha V FollerRussiaXuxue Feng NEGOTIATION
Misaki X MorascaFranceAnna Fali RENEWAL
Kaitlin K WieserIndiaAsiya Javayant QUALIFIED
Aruna H OstroskyCanadaIvan Magalhaes RENEWAL
Tony Q AlbaresIndiaElwin Sharvill QUALIFIED
Mujtaba Q MarrierJapanIoni Bowcher NEGOTIATION
Stacey V PerinUnited KingdomBernardo Dominic NEW
Jennifer X WhobreyJapanStephen Shaw NEW
Maria L FlosiCanadaAnna Fali UNQUALIFIED
Stacey P AmigonItalyXuxue Feng NEGOTIATION
Maisha J MarrierRussiaXuxue Feng NEW
Francesco Y FigeroaSpainIvan Magalhaes PROPOSAL
Aruna M MaletSpainOnyama Limba QUALIFIED
Juan B BriddickUnited KingdomAsiya Javayant UNQUALIFIED
Maria W PoquetteArgentinaOnyama Limba UNQUALIFIED
Kadeem Q AmigonJapanXuxue Feng PROPOSAL
Aika O VocelkaFranceIoni Bowcher QUALIFIED
Deepesh F GarufiAustraliaBernardo Dominic QUALIFIED
Faith U PoquetteBrazilStephen Shaw NEGOTIATION
Cody Y TollnerFranceIoni Bowcher NEGOTIATION
Octavia O AlbaresJapanAnna Fali UNQUALIFIED
Murillo X DilliardAustraliaElwin Sharvill QUALIFIED
Leja K MaletJapanStephen Shaw NEW
Mujtaba A CaudyUnited KingdomXuxue Feng UNQUALIFIED
Mayumi J SergiIndiaAmy Elsner RENEWAL
Mujtaba G FlosiRussiaAsiya Javayant NEW
Jennifer M AlbaresArgentinaXuxue Feng NEGOTIATION
Cody V BologniaBrazilStephen Shaw UNQUALIFIED
Sinclair M WieserCanadaIvan Magalhaes QUALIFIED
Kadeem P SaylorsRussiaXuxue Feng NEGOTIATION
Chavez N KuskoGermanyBernardo Dominic NEGOTIATION
Juan R GarufiItalyIoni Bowcher PROPOSAL
Rodrigues M GlickCanadaStephen Shaw NEGOTIATION
Jefferson O ChuiBrazilAsiya Javayant NEGOTIATION
Juan S PoquetteCanadaAsiya Javayant NEGOTIATION
Chavez S PaprockiItalyStephen Shaw NEGOTIATION
Jennifer J MorascaArgentinaOnyama Limba UNQUALIFIED
Juan B MaletSpainIvan Magalhaes QUALIFIED
Ashley O StockhamFranceIoni Bowcher RENEWAL
Emily B MarrierJapanIoni Bowcher UNQUALIFIED
Jones W CaldareraFranceOnyama Limba RENEWAL
Clifford U FerenczGermanyAnna Fali NEW
Clifford F RulapaughCanadaOnyama Limba PROPOSAL
Munro U SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Arvin Z MaletItalyAmy Elsner UNQUALIFIED
Chavez V TollnerUnited KingdomAmy Elsner NEW
Izzy U ShinkoBrazilBernardo Dominic NEW
Kaitlin S DoeCanadaBernardo Dominic NEW
Darci H RulapaughItalyOnyama Limba NEGOTIATION
Mayumi Y SlusarskiJapanBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood A NickaGermanyIvan Magalhaes PROPOSAL
Misaki H GarufiArgentinaBernardo Dominic NEW
Izzy F StensethItalyIvan Magalhaes QUALIFIED
Murillo I NickaUnited KingdomBernardo Dominic NEW
Arvin Y KolmetzItalyAsiya Javayant NEGOTIATION
Julie M StensethArgentinaElwin Sharvill QUALIFIED
Adams E StockhamRussiaStephen Shaw RENEWAL
Jefferson S WieserBrazilStephen Shaw NEW
Cody T SchemmerItalyXuxue Feng UNQUALIFIED
Alejandro H SergiAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco A DilliardJapan2026-06-07Morlong Associates QUALIFIED84Anna Fali
1001Deepesh M SergiAustralia2026-06-28Chemel, James L Cpa QUALIFIED65Amy Elsner
1002Costa Y FerenczSpain2026-06-12Dorl, James J Esq RENEWAL24Bernardo Dominic
1003Clifford Z WhobreyArgentina2026-06-08Rousseaux, Michael Esq UNQUALIFIED13Bernardo Dominic
1004Maria S GauchoCanada2026-06-27Chapman, Ross E Esq RENEWAL81Ivan Magalhaes
1005Francesco T KuskoRussia2026-06-29Buckley Miller Wright PROPOSAL20Amy Elsner
1006Clifford U FollerJapan2026-06-02Dorl, James J Esq NEGOTIATION58Elwin Sharvill
1007Wickens R SergiFrance2026-06-20Feltz Printing Service UNQUALIFIED66Anna Fali
1008Mayumi Z BowleyCanada2026-06-11Benton, John B Jr PROPOSAL32Amy Elsner
1009Tony O MarrierUnited Kingdom2026-06-27Feltz Printing Service NEW81Ivan Magalhaes
1010Izzy O GlickAustralia2026-06-05Rangoni Of Florence QUALIFIED7Stephen Shaw
1011Ricardo L BriddickSpain2026-06-06Commercial Press NEGOTIATION52Bernardo Dominic
1012Kaitlin R OstroskyUnited Kingdom2026-06-26Morlong Associates UNQUALIFIED48Stephen Shaw
1013Mayumi O DoeBrazil2026-06-07Rousseaux, Michael Esq RENEWAL33Asiya Javayant
1014Juan S MacleadItaly2026-06-16Dorl, James J Esq NEW81Amy Elsner
1015Jefferson W KolmetzGermany2026-06-13Benton, John B Jr PROPOSAL30Anna Fali
1016Darci M MarrierAustralia2026-06-11Morlong Associates PROPOSAL14Elwin Sharvill
1017Mujtaba Q FerenczFrance2026-06-03Feltz Printing Service UNQUALIFIED35Anna Fali
1018Cody E PerinIndia2026-06-01Chanay, Jeffrey A Esq QUALIFIED38Xuxue Feng
1019Clifford E DarakjyUnited Kingdom2026-06-26Chemel, James L Cpa UNQUALIFIED88Bernardo Dominic
1020Murillo J OldroydFrance2026-06-25Morlong Associates NEGOTIATION43Onyama Limba
1021Maria Y SergiUnited Kingdom2026-06-28Commercial Press RENEWAL7Ioni Bowcher
1022Cody O GauchoJapan2026-06-21Chemel, James L Cpa RENEWAL72Onyama Limba
1023Maisha E WhobreyAustralia2026-06-03Chapman, Ross E Esq PROPOSAL58Amy Elsner
1024Francesco A ButtItaly2026-06-19Morlong Associates NEGOTIATION75Stephen Shaw
1025Maria Y MaletFrance2026-06-28Chanay, Jeffrey A Esq PROPOSAL15Ivan Magalhaes
1026Rodrigues B AmigonArgentina2026-06-26Commercial Press PROPOSAL22Elwin Sharvill
1027Aika L WieserSpain2026-06-16Benton, John B Jr UNQUALIFIED97Anna Fali
1028Deepesh H DoeCanada2026-06-30Chemel, James L Cpa NEGOTIATION96Xuxue Feng
1029Juan R RimArgentina2026-06-22Feltz Printing Service PROPOSAL64Anna Fali
1030Isabel A AlbaresItaly2026-06-04Morlong Associates NEW82Ivan Magalhaes
1031Kaitlin U AmigonJapan2026-06-20Feltz Printing Service QUALIFIED67Anna Fali
1032Antonio O StockhamUnited Kingdom2026-06-22Commercial Press PROPOSAL61Onyama Limba
1033Mujtaba A CaldareraCanada2026-06-14Chanay, Jeffrey A Esq PROPOSAL30Amy Elsner
1034Jennifer G ButtUnited Kingdom2026-06-24Buckley Miller Wright UNQUALIFIED82Amy Elsner
1035Deepesh V PaprockiArgentina2026-06-13Morlong Associates RENEWAL75Anna Fali
1036Maisha E KolmetzJapan2026-06-22Chemel, James L Cpa NEW30Amy Elsner
1037Maisha W VocelkaFrance2026-06-14Feltz Printing Service QUALIFIED65Xuxue Feng
1038Mujtaba D RimAustralia2026-06-05Rangoni Of Florence RENEWAL20Stephen Shaw
1039Maisha K MorascaUnited Kingdom2026-06-12Rangoni Of Florence NEGOTIATION0Elwin Sharvill
1040Nicolas C InouyeIndia2026-06-06Truhlar And Truhlar Attys UNQUALIFIED58Ioni Bowcher
1041Sinclair Q NickaFrance2026-06-12Rousseaux, Michael Esq PROPOSAL87Xuxue Feng
1042Stacey D StensethGermany2026-06-20Chapman, Ross E Esq PROPOSAL64Xuxue Feng
1043Murillo L FlosiIndia2026-06-10Printing Dimensions QUALIFIED60Xuxue Feng
1044Kaitlin U WaycottFrance2026-06-18Rousseaux, Michael Esq NEW29Ivan Magalhaes
1045Francesco L RoysterItaly2026-06-16Chapman, Ross E Esq UNQUALIFIED58Ioni Bowcher
1046Julie D PaprockiJapan2026-06-14Feltz Printing Service NEGOTIATION47Ioni Bowcher
1047Misaki C SergiFrance2026-06-28Rousseaux, Michael Esq PROPOSAL0Stephen Shaw
1048Aika S DarakjyCanada2026-06-08Buckley Miller Wright NEGOTIATION99Amy Elsner
1049Leja Z FollerUnited Kingdom2026-06-07Chemel, James L Cpa RENEWAL50Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin E GarufiGermanyIoni Bowcher PROPOSAL
Emily L GlickUnited KingdomBernardo Dominic NEGOTIATION
Sinclair Z SchemmerGermanyAmy Elsner UNQUALIFIED
Mujtaba I CampainAustraliaAmy Elsner UNQUALIFIED
Wickens K RutaAustraliaIvan Magalhaes QUALIFIED
Maisha G GillianFranceOnyama Limba PROPOSAL
Misaki T NickaAustraliaStephen Shaw NEGOTIATION
Antonio U MacleadJapanIvan Magalhaes NEGOTIATION
Adams T VocelkaRussiaOnyama Limba RENEWAL
Nicolas H CaldareraSpainElwin Sharvill QUALIFIED
Chavez E SaylorsAustraliaIoni Bowcher NEGOTIATION
Aika P CaldareraIndiaIvan Magalhaes NEW
Jefferson Q ShinkoBrazilBernardo Dominic UNQUALIFIED
Aditya W GillianAustraliaBernardo Dominic NEW
Maria H RoysterIndiaElwin Sharvill NEW
Adams Y RimItalyAsiya Javayant RENEWAL
Kadeem T IturbideJapanStephen Shaw UNQUALIFIED
David T InouyeBrazilIvan Magalhaes RENEWAL
Stacey G RutaIndiaAnna Fali PROPOSAL
Smith L ChuiArgentinaOnyama Limba UNQUALIFIED
Aruna S MaletRussiaAsiya Javayant NEGOTIATION
Jefferson N MacleadJapanBernardo Dominic NEGOTIATION
Jennifer R KolmetzCanadaXuxue Feng NEW
James O StockhamIndiaElwin Sharvill QUALIFIED
Alejandro N KuskoFranceIoni Bowcher RENEWAL
Julie Q IturbideFranceIoni Bowcher QUALIFIED
Silvio M StensethJapanAsiya Javayant QUALIFIED
Ricardo W BologniaBrazilOnyama Limba UNQUALIFIED
Adams F InouyeRussiaBernardo Dominic PROPOSAL
Arvin D VocelkaSpainIvan Magalhaes PROPOSAL
Ivar F InouyeIndiaStephen Shaw NEW
Adams G ButtFranceBernardo Dominic NEGOTIATION
Julie J StensethRussiaAsiya Javayant NEW
Tony Q RimGermanyIvan Magalhaes PROPOSAL
Rodrigues Y CampainIndiaStephen Shaw UNQUALIFIED
Ricardo X OldroydFranceXuxue Feng NEGOTIATION
Adams N SlusarskiJapanAmy Elsner PROPOSAL
Wickens G PaprockiRussiaXuxue Feng RENEWAL
Clifford T WaycottJapanXuxue Feng NEGOTIATION
Claire W GarufiFranceStephen Shaw PROPOSAL
Deepesh P FlosiUnited KingdomStephen Shaw NEGOTIATION
Morrow I PaprockiAustraliaElwin Sharvill UNQUALIFIED
Aditya L RoysterIndiaStephen Shaw NEW
Greenwood L BowleyJapanAsiya Javayant NEGOTIATION
Aruna U OstroskyBrazilStephen Shaw QUALIFIED
Misaki Y BowleyBrazilStephen Shaw PROPOSAL
Ivar O IturbideUnited KingdomAmy Elsner RENEWAL
Murillo W NickaItalyIvan Magalhaes QUALIFIED
Juan M GillianArgentinaBernardo Dominic PROPOSAL
Stacey T PaprockiAustraliaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Antonio Y Inouye
Ivar D Inouye
Salvatore H Flosi
Jones P Amigon
Leon A Paprocki
Cody E Sergi
Kaitlin T Kusko
Ashley T Paprocki
Jones T Gaucho
Adams U Vocelka
Ivar U Whobrey
Murillo R Gaucho
Emily T Poquette
David B Marrier
Sinclair K Kolmetz
David D Rim
Tony Q Poquette
Claire Y Maclead
Jeanfrancois X Darakjy
Francesco F Wieser
Jeanfrancois G Figeroa
Sinclair R Amigon
Salvatore J Ruta
Izzy P Ferencz
Antonio I Schemmer
Faith R Whobrey
Isabel W Briddick
Francesco E Schemmer
Ashley U Wieser
Clifford O Maclead
Chavez U Amigon
Maisha N Poquette
Wickens S Stenseth
Jennifer N Schemmer
Wickens G Shinko
Antonio E Perin
Aruna J Kusko
Isabel T Inouye
Smith C Briddick
Clifford I Tollner
Maria L Sergi
Faith H Ostrosky
Tony Q Morasca
Ivar A Royster
Francesco J Dilliard
Julie G Chui
Kadeem E Tollner
Murillo U Figeroa
Faith F Nestle
Claire R Maclead
IdCountryDate
1000France2026-06-21
1001Japan2026-06-04
1002Italy2026-06-27
1003Japan2026-06-15
1004Australia2026-06-11
1005Canada2026-06-22
1006Canada2026-06-17
1007Spain2026-06-04
1008United Kingdom2026-06-28
1009Canada2026-06-22
1010Brazil2026-06-25
1011Spain2026-06-17
1012Canada2026-06-05
1013Russia2026-06-28
1014Brazil2026-06-01
1015Brazil2026-06-28
1016Russia2026-06-09
1017Japan2026-06-09
1018Canada2026-06-09
1019Russia2026-06-10
1020Germany2026-06-16
1021Spain2026-06-11
1022Australia2026-06-18
1023France2026-06-10
1024Russia2026-06-25
1025Canada2026-06-18
1026Australia2026-06-05
1027Canada2026-06-05
1028France2026-06-18
1029Italy2026-06-25
1030Argentina2026-06-09
1031Japan2026-06-20
1032Argentina2026-06-12
1033Argentina2026-06-10
1034Australia2026-06-22
1035Spain2026-06-26
1036Italy2026-06-02
1037Germany2026-06-29
1038Australia2026-06-09
1039Brazil2026-06-08
1040Japan2026-06-06
1041Italy2026-06-20
1042Spain2026-06-23
1043Spain2026-06-26
1044Italy2026-06-25
1045Russia2026-06-17
1046Brazil2026-06-11
1047United Kingdom2026-06-25
1048Germany2026-06-08
1049India2026-06-16

On-Demand Data

NameIdCountryDate
Munro V Malet1000France2026-06-25
Ashley C Caudy1001Canada2026-06-04
Stacey E Waycott1002Argentina2026-06-14
Jennifer B Wieser1003Spain2026-06-18
Murillo W Chui1004India2026-06-14
Misaki F Gillian1005United Kingdom2026-06-04
Clifford P Nicka1006Argentina2026-06-15
Munro F Nestle1007United Kingdom2026-06-21
Morrow D Tollner1008Argentina2026-06-17
Maria F Slusarski1009Argentina2026-06-02
Jefferson H Figeroa1010Japan2026-06-08
Juan G Chui1011Argentina2026-06-30
Smith T Saylors1012Australia2026-06-24
Aika X Chui1013Japan2026-06-18
Murillo I Amigon1014Spain2026-06-08
Faith T Whobrey1015Argentina2026-06-19
Jones C Slusarski1016Australia2026-06-08
Chavez J Oldroyd1017United Kingdom2026-06-27
Smith S Amigon1018Russia2026-06-05
Alejandro O Dilliard1019France2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith O BriddickFranceStephen Shaw RENEWAL
Darci N DoeArgentinaXuxue Feng RENEWAL
Aruna M DarakjyGermanyXuxue Feng UNQUALIFIED
Julie Q BologniaBrazilOnyama Limba NEGOTIATION
Jennifer A OstroskyFranceIvan Magalhaes NEGOTIATION
Silvio Z WhobreyBrazilElwin Sharvill NEGOTIATION
Leja D GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Misaki R OstroskyJapanBernardo Dominic QUALIFIED
Mayumi R MorascaUnited KingdomBernardo Dominic NEW
Munro X OldroydBrazilIvan Magalhaes RENEWAL
Wickens L ShinkoJapanIoni Bowcher PROPOSAL
Morrow N RoysterBrazilBernardo Dominic NEW
Jefferson U KuskoBrazilXuxue Feng RENEWAL
Antonio O NestleUnited KingdomAnna Fali RENEWAL
Clifford E MarrierAustraliaXuxue Feng NEGOTIATION
Leon C ButtIndiaElwin Sharvill QUALIFIED
Francesco O FerenczCanadaElwin Sharvill QUALIFIED
Chavez I VenereBrazilOnyama Limba PROPOSAL
Darci Y MorascaUnited KingdomElwin Sharvill NEGOTIATION
Izzy V ChuiCanadaAsiya Javayant NEGOTIATION
Nicolas M KuskoBrazilIvan Magalhaes RENEWAL
Kadeem C SergiGermanyIoni Bowcher PROPOSAL
Munro S MarrierArgentinaAsiya Javayant NEGOTIATION
Maria B WaycottRussiaStephen Shaw NEW
James L MacleadBrazilStephen Shaw NEGOTIATION
Leja T AmigonBrazilXuxue Feng NEGOTIATION
Leja B RutaArgentinaAnna Fali NEGOTIATION
Antonio W CampainUnited KingdomIoni Bowcher NEGOTIATION
Isabel U ShinkoRussiaOnyama Limba UNQUALIFIED
Costa G RimArgentinaOnyama Limba UNQUALIFIED
Maria A FigeroaIndiaBernardo Dominic NEGOTIATION
James C MaletItalyOnyama Limba NEGOTIATION
Salvatore A WaycottRussiaBernardo Dominic NEW
Rodrigues A FerenczIndiaIoni Bowcher QUALIFIED
Salvatore D SchemmerAustraliaAnna Fali NEW
Isabel V OldroydUnited KingdomOnyama Limba PROPOSAL
Emily A BowleyArgentinaBernardo Dominic UNQUALIFIED
Adams S GillianItalyAnna Fali NEW
Smith S CaudyAustraliaIvan Magalhaes PROPOSAL
Nicolas N VocelkaUnited KingdomElwin Sharvill RENEWAL

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