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
Aika I MorascaIndiaBernardo Dominic UNQUALIFIED
Juan P MaletUnited KingdomAsiya Javayant NEW
Sinclair W CaldareraArgentinaAnna Fali NEW
Jennifer X BriddickCanadaAnna Fali RENEWAL
Aditya I AlbaresUnited KingdomAmy Elsner NEW
Kaitlin Z PaprockiItalyXuxue Feng NEGOTIATION
Aditya C GillianBrazilStephen Shaw NEGOTIATION
Sinclair P PaprockiJapanAmy Elsner RENEWAL
Cody D FlosiRussiaBernardo Dominic UNQUALIFIED
Juan N MaletArgentinaAsiya Javayant RENEWAL
Leon Z CaudyItalyIvan Magalhaes NEW
Chavez B ShinkoFranceOnyama Limba UNQUALIFIED
James K CaudyJapanIoni Bowcher UNQUALIFIED
Maisha T DarakjyCanadaAsiya Javayant NEW
Ivar W CampainFranceBernardo Dominic UNQUALIFIED
Misaki J DilliardSpainBernardo Dominic NEGOTIATION
Nicolas A PaprockiAustraliaAnna Fali QUALIFIED
Aditya W MaletItalyXuxue Feng NEW
Alejandro S DilliardRussiaIvan Magalhaes PROPOSAL
Smith I CaldareraFranceXuxue Feng UNQUALIFIED
Munro A OstroskyArgentinaStephen Shaw UNQUALIFIED
Ricardo I IturbideGermanyStephen Shaw UNQUALIFIED
Morrow H RoysterCanadaAnna Fali UNQUALIFIED
Kadeem R WhobreyJapanIvan Magalhaes UNQUALIFIED
Maisha A ShinkoItalyAsiya Javayant UNQUALIFIED
Faith V PoquetteGermanyAnna Fali NEW
Morrow F BologniaUnited KingdomAsiya Javayant NEGOTIATION
Costa N NestleCanadaAsiya Javayant UNQUALIFIED
Mujtaba F VocelkaJapanIoni Bowcher RENEWAL
Mujtaba G DoeUnited KingdomBernardo Dominic NEGOTIATION
Deepesh P InouyeJapanAmy Elsner PROPOSAL
Jeanfrancois R DarakjySpainAnna Fali NEW
Isabel I FigeroaBrazilXuxue Feng QUALIFIED
Ivar D StockhamFranceIvan Magalhaes RENEWAL
Silvio Y MaletBrazilAsiya Javayant RENEWAL
Jefferson A ChuiRussiaIoni Bowcher NEGOTIATION
Silvio H CaldareraRussiaAsiya Javayant QUALIFIED
Aruna V FerenczArgentinaAnna Fali RENEWAL
Salvatore X MaletRussiaOnyama Limba RENEWAL
Arvin H MarrierAustraliaAnna Fali NEGOTIATION
Munro Y GauchoIndiaBernardo Dominic PROPOSAL
Costa D DilliardAustraliaIoni Bowcher NEW
Johnson I RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Kadeem P RulapaughRussiaElwin Sharvill RENEWAL
Morrow U StensethUnited KingdomElwin Sharvill QUALIFIED
Mayumi J StensethArgentinaIoni Bowcher RENEWAL
Greenwood D MacleadAustraliaStephen Shaw PROPOSAL
Deepesh V PaprockiJapanXuxue Feng NEGOTIATION
Jennifer K StensethBrazilElwin Sharvill QUALIFIED
Jones X PaprockiIndiaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson T ChuiAustraliaIoni Bowcher PROPOSAL
Jones G KolmetzAustraliaIoni Bowcher RENEWAL
Isabel I CaldareraSpainAsiya Javayant RENEWAL
Silvio F OstroskyBrazilStephen Shaw RENEWAL
Ivar J DarakjyItalyAnna Fali QUALIFIED
Jefferson G FollerCanadaXuxue Feng PROPOSAL
Ricardo B WieserBrazilBernardo Dominic UNQUALIFIED
Murillo K SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues D IturbideFranceIvan Magalhaes NEW
Costa F SlusarskiSpainAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David F BowleyAustralia2026-06-29Benton, John B Jr QUALIFIED86Ioni Bowcher
1001Stacey S FigeroaFrance2026-06-21Commercial Press NEGOTIATION59Bernardo Dominic
1002David H AlbaresIndia2026-06-04Rangoni Of Florence PROPOSAL0Anna Fali
1003Juan H SlusarskiIndia2026-06-13Dorl, James J Esq QUALIFIED79Ivan Magalhaes
1004Nicolas S KolmetzRussia2026-06-05Dorl, James J Esq PROPOSAL29Stephen Shaw
1005Morrow O ChuiItaly2026-06-25Feiner Bros RENEWAL8Ivan Magalhaes
1006Mujtaba G SergiRussia2026-06-19Chemel, James L Cpa NEW85Ioni Bowcher
1007Francesco L VocelkaCanada2026-06-17Morlong Associates RENEWAL27Ioni Bowcher
1008Arvin Y FigeroaCanada2026-06-04Benton, John B Jr PROPOSAL94Asiya Javayant
1009Julie X CaldareraUnited Kingdom2026-06-04Benton, John B Jr QUALIFIED17Asiya Javayant
1010Ivar Z GlickAustralia2026-06-18Chemel, James L Cpa NEGOTIATION30Amy Elsner
1011Rodrigues Y CaldareraRussia2026-06-15Buckley Miller Wright QUALIFIED19Onyama Limba
1012Cody X CampainBrazil2026-06-21Chapman, Ross E Esq QUALIFIED99Ivan Magalhaes
1013Leon Q TollnerFrance2026-06-09Chapman, Ross E Esq UNQUALIFIED45Elwin Sharvill
1014Aika C CampainSpain2026-06-05Chemel, James L Cpa UNQUALIFIED26Anna Fali
1015Morrow J GlickItaly2026-06-17Morlong Associates NEGOTIATION48Stephen Shaw
1016Silvio O WieserBrazil2026-06-26Chapman, Ross E Esq RENEWAL13Elwin Sharvill
1017Alejandro B WieserBrazil2026-06-10Rangoni Of Florence NEGOTIATION81Ioni Bowcher
1018Leon T GarufiBrazil2026-06-11Rangoni Of Florence PROPOSAL73Ioni Bowcher
1019Clifford J FigeroaItaly2026-06-13Chanay, Jeffrey A Esq PROPOSAL90Stephen Shaw
1020Kaitlin G ButtGermany2026-06-25Buckley Miller Wright QUALIFIED92Bernardo Dominic
1021Francesco C StensethIndia2026-06-04Rousseaux, Michael Esq RENEWAL25Elwin Sharvill
1022Murillo E NestleArgentina2026-06-16Morlong Associates PROPOSAL80Elwin Sharvill
1023Kaitlin Z FlosiItaly2026-06-30Rangoni Of Florence UNQUALIFIED69Elwin Sharvill
1024Morrow I FollerRussia2026-06-09Printing Dimensions RENEWAL12Bernardo Dominic
1025Deepesh N CampainUnited Kingdom2026-06-10Rangoni Of Florence QUALIFIED34Stephen Shaw
1026Adams P StensethBrazil2026-06-22Feltz Printing Service NEW61Anna Fali
1027Sinclair K GillianArgentina2026-06-07Truhlar And Truhlar Attys NEW5Onyama Limba
1028Deepesh D BologniaUnited Kingdom2026-06-05Chemel, James L Cpa RENEWAL34Asiya Javayant
1029Misaki P KuskoSpain2026-06-13Rousseaux, Michael Esq NEGOTIATION70Stephen Shaw
1030Rodrigues S CaldareraUnited Kingdom2026-06-19Dorl, James J Esq NEGOTIATION68Xuxue Feng
1031Chavez O InouyeItaly2026-06-30Dorl, James J Esq PROPOSAL6Ioni Bowcher
1032Maria M GarufiGermany2026-06-14Feiner Bros PROPOSAL95Stephen Shaw
1033Maisha Y VenereRussia2026-06-21Rousseaux, Michael Esq PROPOSAL15Stephen Shaw
1034Ivar R AlbaresUnited Kingdom2026-06-04Rousseaux, Michael Esq QUALIFIED14Ioni Bowcher
1035Julie U InouyeCanada2026-06-08Truhlar And Truhlar Attys PROPOSAL69Ioni Bowcher
1036Juan U MarrierAustralia2026-06-23Rangoni Of Florence NEW27Amy Elsner
1037Julie O BriddickArgentina2026-07-02Chanay, Jeffrey A Esq NEGOTIATION34Ioni Bowcher
1038Munro N DarakjyCanada2026-06-09Benton, John B Jr RENEWAL13Ivan Magalhaes
1039David Q RimUnited Kingdom2026-06-22Feiner Bros RENEWAL57Elwin Sharvill
1040Faith F IturbideBrazil2026-06-23Chapman, Ross E Esq NEW25Ioni Bowcher
1041Ivar X MaletSpain2026-06-28Dorl, James J Esq QUALIFIED97Elwin Sharvill
1042Wickens F CampainItaly2026-06-09Buckley Miller Wright PROPOSAL28Ivan Magalhaes
1043Aruna S BologniaArgentina2026-06-03Dorl, James J Esq PROPOSAL62Xuxue Feng
1044Julie S StensethAustralia2026-06-08Buckley Miller Wright RENEWAL85Elwin Sharvill
1045Alejandro W CaudyUnited Kingdom2026-06-19Commercial Press QUALIFIED24Bernardo Dominic
1046Antonio X PaprockiCanada2026-06-06Rangoni Of Florence NEGOTIATION15Elwin Sharvill
1047Jones G PaprockiArgentina2026-06-11Feiner Bros UNQUALIFIED71Elwin Sharvill
1048Mujtaba Q RimCanada2026-06-27Printing Dimensions PROPOSAL82Onyama Limba
1049Rodrigues O FerenczIndia2026-06-07Chanay, Jeffrey A Esq RENEWAL66Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily K AmigonBrazilAnna Fali NEW
Morrow I BriddickAustraliaOnyama Limba NEW
Smith E RulapaughJapanXuxue Feng PROPOSAL
Aika U MaletAustraliaIvan Magalhaes UNQUALIFIED
Octavia U MacleadGermanyOnyama Limba NEGOTIATION
Aruna U MacleadSpainIoni Bowcher RENEWAL
Mayumi I FerenczSpainElwin Sharvill UNQUALIFIED
Jeanfrancois X SergiGermanyAsiya Javayant RENEWAL
Juan N ButtIndiaIoni Bowcher RENEWAL
Rodrigues U FerenczBrazilAmy Elsner NEGOTIATION
Cody S IturbideFranceAsiya Javayant NEW
Tony I OldroydItalyStephen Shaw PROPOSAL
Francesco K PerinFranceAsiya Javayant PROPOSAL
Jennifer C AlbaresItalyAmy Elsner QUALIFIED
Octavia Q FerenczGermanyBernardo Dominic NEGOTIATION
Leon M StockhamFranceAsiya Javayant QUALIFIED
Johnson H CaldareraJapanIvan Magalhaes NEGOTIATION
Julie V WhobreyArgentinaIvan Magalhaes RENEWAL
Kaitlin I WaycottFranceAnna Fali RENEWAL
Emily J SergiJapanElwin Sharvill NEW
Isabel P VenereSpainStephen Shaw UNQUALIFIED
Kadeem H PaprockiFranceIvan Magalhaes UNQUALIFIED
James Y CampainAustraliaStephen Shaw PROPOSAL
Arvin P PoquetteSpainAnna Fali QUALIFIED
Silvio C ChuiUnited KingdomAmy Elsner PROPOSAL
Nicolas V ChuiIndiaElwin Sharvill RENEWAL
Adams G CaldareraBrazilIvan Magalhaes QUALIFIED
Johnson V StensethItalyBernardo Dominic NEGOTIATION
Aruna N KolmetzJapanIoni Bowcher UNQUALIFIED
Morrow P FerenczCanadaIvan Magalhaes QUALIFIED
Deepesh M WieserIndiaAnna Fali PROPOSAL
Salvatore R SchemmerFranceOnyama Limba NEW
Mujtaba X StockhamAustraliaOnyama Limba PROPOSAL
Murillo A ShinkoCanadaBernardo Dominic RENEWAL
Faith Q DoeBrazilBernardo Dominic NEW
Johnson R NickaUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer C PaprockiIndiaAmy Elsner UNQUALIFIED
Silvio J RulapaughGermanyBernardo Dominic NEW
Jeanfrancois Q FlosiJapanStephen Shaw NEW
Jennifer J MarrierArgentinaIoni Bowcher QUALIFIED
Deepesh Z TollnerGermanyAnna Fali NEGOTIATION
Costa J PerinIndiaAsiya Javayant QUALIFIED
Aika O NestleUnited KingdomOnyama Limba PROPOSAL
Isabel W MaletBrazilIoni Bowcher QUALIFIED
Aika A CampainIndiaElwin Sharvill NEGOTIATION
Mujtaba B InouyeSpainAmy Elsner PROPOSAL
Adams H RutaGermanyStephen Shaw NEW
Rodrigues U OldroydUnited KingdomAnna Fali NEGOTIATION
Julie O CaudySpainAsiya Javayant QUALIFIED
Francesco Q BriddickItalyOnyama Limba QUALIFIED
Frozen Columns
Name
Morrow Q Nicka
Salvatore J Stenseth
Adams O Figeroa
Francesco T Oldroyd
Greenwood F Kusko
Octavia X Maclead
Maisha L Maclead
Johnson Z Perin
Munro O Dilliard
Jefferson L Oldroyd
Arvin T Rulapaugh
Murillo Z Foller
Aruna R Ferencz
Rodrigues D Marrier
Leja U Darakjy
Juan S Poquette
Faith F Campain
Isabel X Vocelka
Jones N Nicka
Arvin G Stenseth
Darci C Kolmetz
Jennifer C Paprocki
Juan U Gaucho
Costa V Stenseth
Darci V Schemmer
Darci V Malet
Juan Z Garufi
James G Caudy
Aruna W Rulapaugh
Stacey D Malet
Ricardo V Gillian
Claire B Saylors
Misaki A Inouye
Juan G Saylors
Deepesh S Kolmetz
Faith J Dilliard
Claire C Tollner
Kadeem O Caudy
Sinclair M Stockham
David R Doe
Jones S Gaucho
Stacey U Morasca
Arvin F Venere
Jones C Whobrey
Faith T Kusko
Alejandro U Figeroa
Morrow A Perin
Deepesh S Ostrosky
Izzy O Caldarera
Kaitlin H Campain
IdCountryDate
1000France2026-06-20
1001France2026-06-19
1002Canada2026-06-14
1003Argentina2026-06-03
1004Canada2026-06-06
1005India2026-07-02
1006Australia2026-06-13
1007Japan2026-06-04
1008India2026-06-11
1009Canada2026-06-09
1010Canada2026-06-06
1011India2026-06-03
1012United Kingdom2026-06-17
1013Australia2026-06-04
1014Germany2026-06-03
1015India2026-06-04
1016Argentina2026-06-19
1017France2026-06-23
1018Germany2026-06-05
1019Canada2026-06-30
1020Argentina2026-07-01
1021Argentina2026-06-03
1022United Kingdom2026-06-09
1023Brazil2026-06-11
1024Italy2026-06-14
1025France2026-06-17
1026Canada2026-06-17
1027Canada2026-06-15
1028Canada2026-06-25
1029Russia2026-06-12
1030Spain2026-06-14
1031United Kingdom2026-06-23
1032Canada2026-06-24
1033Italy2026-06-15
1034India2026-06-27
1035Argentina2026-06-17
1036Canada2026-06-10
1037India2026-06-29
1038Canada2026-06-22
1039Canada2026-06-29
1040United Kingdom2026-06-18
1041Japan2026-06-20
1042India2026-06-06
1043United Kingdom2026-06-14
1044Spain2026-06-07
1045Spain2026-06-12
1046France2026-06-12
1047United Kingdom2026-06-16
1048India2026-06-21
1049Russia2026-06-30

On-Demand Data

NameIdCountryDate
Costa J Sergi1000Canada2026-06-26
Silvio B Rim1001Australia2026-06-12
Wickens P Butt1002Russia2026-06-14
Jennifer O Rim1003Japan2026-06-12
Octavia I Iturbide1004Australia2026-06-23
Kadeem C Wieser1005Australia2026-06-16
Mayumi I Schemmer1006France2026-06-26
Jeanfrancois F Stenseth1007Russia2026-06-22
Stacey C Iturbide1008United Kingdom2026-06-25
Smith Y Nestle1009Russia2026-06-25
Salvatore B Caudy1010Australia2026-06-27
James S Albares1011France2026-06-29
Ricardo K Vocelka1012Argentina2026-06-13
Arvin S Ruta1013Japan2026-06-18
Ivar V Schemmer1014Argentina2026-06-13
Chavez L Figeroa1015India2026-06-26
Salvatore M Whobrey1016India2026-06-27
Isabel J Chui1017Canada2026-06-05
Cody E Garufi1018Australia2026-06-16
Darci L Maclead1019Brazil2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody R KolmetzGermanyAnna Fali UNQUALIFIED
Aika W AlbaresSpainXuxue Feng QUALIFIED
Chavez F KolmetzArgentinaOnyama Limba PROPOSAL
Smith N WieserAustraliaElwin Sharvill NEGOTIATION
Kaitlin K RutaBrazilBernardo Dominic QUALIFIED
Juan C DilliardGermanyElwin Sharvill PROPOSAL
Maisha H AlbaresUnited KingdomAmy Elsner NEGOTIATION
Ashley Y WieserRussiaAnna Fali NEGOTIATION
Emily A FollerFranceAsiya Javayant QUALIFIED
Smith P AlbaresIndiaElwin Sharvill NEW
Claire P PaprockiCanadaAmy Elsner NEW
Deepesh F RutaGermanyStephen Shaw PROPOSAL
Faith O VocelkaRussiaAsiya Javayant QUALIFIED
Maria T BologniaSpainStephen Shaw UNQUALIFIED
Smith Z FlosiUnited KingdomElwin Sharvill PROPOSAL
Izzy L FlosiCanadaBernardo Dominic PROPOSAL
Johnson S MorascaSpainElwin Sharvill PROPOSAL
Misaki V MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Maisha G RulapaughFranceElwin Sharvill RENEWAL
Juan C FlosiBrazilAmy Elsner NEGOTIATION
Munro X RutaArgentinaStephen Shaw PROPOSAL
Maria B StockhamArgentinaAmy Elsner RENEWAL
Jefferson T OldroydRussiaXuxue Feng PROPOSAL
Tony M GarufiIndiaAnna Fali PROPOSAL
Morrow L BologniaSpainIvan Magalhaes RENEWAL
Maisha N NickaIndiaStephen Shaw RENEWAL
Sinclair E AmigonUnited KingdomIoni Bowcher QUALIFIED
Clifford C VenereBrazilOnyama Limba QUALIFIED
Nicolas A AmigonRussiaAmy Elsner UNQUALIFIED
Izzy R WhobreyFranceIoni Bowcher NEW
Octavia V RoysterSpainElwin Sharvill NEGOTIATION
Mayumi H DilliardArgentinaIvan Magalhaes NEGOTIATION
Wickens O AlbaresAustraliaAmy Elsner UNQUALIFIED
Francesco V SergiFranceStephen Shaw QUALIFIED
Jones L StockhamSpainAsiya Javayant PROPOSAL
Maisha S SergiItalyAnna Fali PROPOSAL
Kadeem K GauchoGermanyIoni Bowcher QUALIFIED
Izzy J WhobreyRussiaAmy Elsner NEGOTIATION
Jennifer Y SaylorsUnited KingdomBernardo Dominic NEW
Mayumi R GarufiUnited KingdomIoni Bowcher NEW

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