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
Deepesh X GarufiGermanyAsiya Javayant RENEWAL
Jefferson T GillianCanadaElwin Sharvill PROPOSAL
Deepesh M GillianUnited KingdomAsiya Javayant PROPOSAL
Kaitlin R ShinkoAustraliaXuxue Feng PROPOSAL
Maisha S VocelkaFranceStephen Shaw PROPOSAL
Clifford I StensethAustraliaElwin Sharvill QUALIFIED
Mayumi Z ShinkoItalyBernardo Dominic RENEWAL
Sinclair D SergiRussiaIvan Magalhaes QUALIFIED
Isabel L RoysterSpainBernardo Dominic QUALIFIED
Munro S BriddickFranceOnyama Limba QUALIFIED
Jennifer P DarakjyJapanOnyama Limba UNQUALIFIED
Deepesh X BriddickFranceStephen Shaw QUALIFIED
Adams U InouyeArgentinaIvan Magalhaes NEGOTIATION
Greenwood L RulapaughJapanAsiya Javayant RENEWAL
Rodrigues Q StensethFranceAmy Elsner QUALIFIED
Murillo N PerinBrazilOnyama Limba UNQUALIFIED
Leon A SchemmerIndiaBernardo Dominic NEW
Clifford I RoysterAustraliaBernardo Dominic UNQUALIFIED
Munro T SaylorsRussiaAnna Fali UNQUALIFIED
Antonio Q VocelkaFranceXuxue Feng UNQUALIFIED
Johnson V DarakjyGermanyIoni Bowcher PROPOSAL
Darci D VocelkaAustraliaOnyama Limba UNQUALIFIED
Leon B MaletSpainStephen Shaw RENEWAL
Wickens M BologniaUnited KingdomAsiya Javayant NEGOTIATION
Johnson L DarakjyBrazilXuxue Feng UNQUALIFIED
Aruna C MacleadBrazilIoni Bowcher PROPOSAL
Stacey Y FollerArgentinaBernardo Dominic NEW
Leja G WhobreyBrazilIoni Bowcher RENEWAL
Maria J KuskoGermanyXuxue Feng NEW
Silvio P NestleCanadaIoni Bowcher UNQUALIFIED
Greenwood H WaycottIndiaAmy Elsner NEW
Kaitlin K SchemmerFranceAnna Fali RENEWAL
Francesco F WieserFranceStephen Shaw UNQUALIFIED
Maisha T MacleadBrazilAmy Elsner PROPOSAL
Arvin T IturbideGermanyOnyama Limba QUALIFIED
Jennifer E MarrierSpainXuxue Feng QUALIFIED
Ashley H SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba T WhobreyBrazilOnyama Limba UNQUALIFIED
Ricardo P WaycottItalyAnna Fali NEGOTIATION
Silvio G FollerUnited KingdomBernardo Dominic RENEWAL
Jones S RutaCanadaAsiya Javayant RENEWAL
Tony O WieserJapanXuxue Feng UNQUALIFIED
Adams U RimBrazilElwin Sharvill UNQUALIFIED
Faith K MarrierRussiaIvan Magalhaes QUALIFIED
Darci G CampainAustraliaOnyama Limba NEW
Aika Z MaletRussiaOnyama Limba UNQUALIFIED
Jeanfrancois T MacleadSpainAsiya Javayant NEW
Jefferson Y ShinkoIndiaBernardo Dominic QUALIFIED
Jones K BowleyGermanyXuxue Feng QUALIFIED
Wickens A GillianArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson X PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Sinclair N DoeRussiaAsiya Javayant QUALIFIED
Mayumi M StockhamCanadaAnna Fali QUALIFIED
Claire Z SlusarskiArgentinaIvan Magalhaes PROPOSAL
Cody U FlosiFranceBernardo Dominic QUALIFIED
Juan X BriddickSpainAnna Fali NEW
Jeanfrancois N DilliardSpainBernardo Dominic NEW
James Y GauchoGermanyBernardo Dominic PROPOSAL
Francesco E MorascaSpainOnyama Limba RENEWAL
Silvio X FlosiFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer V InouyeBrazil2026-08-03Chemel, James L Cpa NEW81Elwin Sharvill
1001Ricardo V FollerFrance2026-08-14Printing Dimensions UNQUALIFIED2Elwin Sharvill
1002Costa I VenereGermany2026-07-22Chanay, Jeffrey A Esq RENEWAL11Asiya Javayant
1003Sinclair O CampainCanada2026-08-01Morlong Associates NEGOTIATION35Amy Elsner
1004Alejandro A PoquetteIndia2026-07-22Benton, John B Jr PROPOSAL64Ioni Bowcher
1005Mujtaba T TollnerAustralia2026-08-03King, Christopher A Esq NEW58Anna Fali
1006Faith P TollnerItaly2026-08-06Chemel, James L Cpa QUALIFIED0Xuxue Feng
1007Silvio C StockhamJapan2026-07-27Rangoni Of Florence UNQUALIFIED10Ioni Bowcher
1008Deepesh P SlusarskiGermany2026-07-20Feltz Printing Service RENEWAL15Xuxue Feng
1009Jefferson V VenereIndia2026-08-11Benton, John B Jr RENEWAL40Elwin Sharvill
1010Rodrigues W PerinItaly2026-07-17Commercial Press UNQUALIFIED93Stephen Shaw
1011Jennifer C OstroskyBrazil2026-08-14King, Christopher A Esq NEW47Asiya Javayant
1012Juan F KuskoIndia2026-07-25Chapman, Ross E Esq NEGOTIATION62Ivan Magalhaes
1013Munro S RoysterIndia2026-08-08Dorl, James J Esq UNQUALIFIED67Asiya Javayant
1014Chavez R CampainSpain2026-08-02Feiner Bros RENEWAL36Ioni Bowcher
1015Francesco L GarufiArgentina2026-07-24Buckley Miller Wright UNQUALIFIED95Ioni Bowcher
1016Maisha T RoysterAustralia2026-08-07Printing Dimensions NEGOTIATION47Amy Elsner
1017Costa D BowleyItaly2026-07-27Commercial Press QUALIFIED59Elwin Sharvill
1018Mayumi Y CampainItaly2026-07-31Chapman, Ross E Esq NEW78Amy Elsner
1019Maisha U SlusarskiJapan2026-08-03Printing Dimensions PROPOSAL51Amy Elsner
1020Faith N IturbideItaly2026-08-02Feiner Bros PROPOSAL41Stephen Shaw
1021Ricardo T PoquetteArgentina2026-08-12Printing Dimensions NEGOTIATION18Ivan Magalhaes
1022Murillo I MaletJapan2026-08-03Chanay, Jeffrey A Esq PROPOSAL85Ioni Bowcher
1023James N WhobreyUnited Kingdom2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED60Amy Elsner
1024Deepesh A BowleyIndia2026-07-20Feltz Printing Service PROPOSAL57Anna Fali
1025Aditya V NestleArgentina2026-07-29Feltz Printing Service PROPOSAL86Elwin Sharvill
1026David G CaudyJapan2026-08-07Rousseaux, Michael Esq UNQUALIFIED91Ivan Magalhaes
1027Mujtaba O VocelkaAustralia2026-07-30Chanay, Jeffrey A Esq NEW64Onyama Limba
1028Aika I BriddickRussia2026-08-15Morlong Associates NEW67Xuxue Feng
1029Johnson N FigeroaIndia2026-07-26Chanay, Jeffrey A Esq NEGOTIATION15Stephen Shaw
1030Julie U VocelkaFrance2026-07-28Dorl, James J Esq QUALIFIED63Ioni Bowcher
1031Claire R RutaRussia2026-08-05Rangoni Of Florence NEW26Stephen Shaw
1032Kaitlin B KuskoBrazil2026-07-22Truhlar And Truhlar Attys NEGOTIATION46Ivan Magalhaes
1033Ivar Z WhobreyFrance2026-08-14Rousseaux, Michael Esq NEGOTIATION18Stephen Shaw
1034Maisha R InouyeFrance2026-07-26Benton, John B Jr RENEWAL17Bernardo Dominic
1035Morrow O FlosiUnited Kingdom2026-08-15Feiner Bros QUALIFIED19Bernardo Dominic
1036Munro O ButtAustralia2026-08-12Morlong Associates PROPOSAL92Ivan Magalhaes
1037Jeanfrancois X PoquetteAustralia2026-07-17Commercial Press NEW2Xuxue Feng
1038Juan M MorascaUnited Kingdom2026-08-11Buckley Miller Wright RENEWAL5Elwin Sharvill
1039Tony R BowleyRussia2026-07-29Truhlar And Truhlar Attys PROPOSAL77Amy Elsner
1040Ivar T OstroskySpain2026-07-25Rousseaux, Michael Esq RENEWAL5Stephen Shaw
1041Juan X ShinkoIndia2026-08-01Rangoni Of Florence QUALIFIED25Amy Elsner
1042Leja W IturbideUnited Kingdom2026-07-28King, Christopher A Esq NEW38Amy Elsner
1043Izzy O NestleAustralia2026-07-23Chapman, Ross E Esq PROPOSAL16Elwin Sharvill
1044Antonio I SergiIndia2026-08-06Chemel, James L Cpa QUALIFIED11Xuxue Feng
1045Silvio U FigeroaBrazil2026-08-01Buckley Miller Wright QUALIFIED61Elwin Sharvill
1046Leon I NickaRussia2026-08-07Buckley Miller Wright RENEWAL36Onyama Limba
1047Tony P GarufiCanada2026-07-17Truhlar And Truhlar Attys PROPOSAL56Bernardo Dominic
1048Chavez F MorascaArgentina2026-07-18Printing Dimensions RENEWAL90Anna Fali
1049Emily Q FerenczUnited Kingdom2026-08-15Chanay, Jeffrey A Esq NEGOTIATION61Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Greenwood I StockhamGermanyIvan Magalhaes QUALIFIED
Claire M MacleadArgentinaAsiya Javayant NEGOTIATION
Munro M FollerRussiaAmy Elsner RENEWAL
Wickens Q ChuiRussiaAnna Fali QUALIFIED
Arvin M DilliardAustraliaStephen Shaw RENEWAL
Morrow L RimFranceOnyama Limba QUALIFIED
Misaki R MarrierJapanAmy Elsner QUALIFIED
Francesco U VenereCanadaAsiya Javayant PROPOSAL
Johnson L BriddickUnited KingdomIoni Bowcher RENEWAL
Smith M PaprockiIndiaIoni Bowcher QUALIFIED
James E InouyeCanadaAnna Fali RENEWAL
Jones K FollerItalyXuxue Feng PROPOSAL
David P WieserAustraliaIoni Bowcher NEW
Maria O FerenczCanadaAsiya Javayant UNQUALIFIED
Morrow Q VenereItalyIoni Bowcher UNQUALIFIED
Mayumi C CampainIndiaIoni Bowcher RENEWAL
Arvin A RutaFranceAnna Fali UNQUALIFIED
Jefferson I ChuiItalyAsiya Javayant NEW
David Q VenereJapanAsiya Javayant UNQUALIFIED
Izzy A RoysterUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois T TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco E GarufiAustraliaStephen Shaw RENEWAL
Mujtaba P SchemmerCanadaElwin Sharvill RENEWAL
Ivar A StockhamBrazilElwin Sharvill NEGOTIATION
Nicolas N WaycottJapanIoni Bowcher PROPOSAL
Tony T ButtIndiaIoni Bowcher RENEWAL
Jefferson Q PoquetteIndiaBernardo Dominic RENEWAL
Ashley K PoquetteJapanOnyama Limba PROPOSAL
Greenwood T DoeAustraliaAmy Elsner NEW
Clifford N KuskoRussiaOnyama Limba NEGOTIATION
Johnson X OstroskyFranceAnna Fali NEGOTIATION
Munro A WieserArgentinaOnyama Limba PROPOSAL
Nicolas R VocelkaCanadaAsiya Javayant QUALIFIED
Jefferson T TollnerRussiaAsiya Javayant NEW
Ivar S FollerSpainStephen Shaw NEW
David Y FigeroaArgentinaAmy Elsner RENEWAL
Deepesh J DarakjySpainAnna Fali RENEWAL
Izzy Q CampainFranceAnna Fali PROPOSAL
Jeanfrancois U SlusarskiBrazilIvan Magalhaes NEGOTIATION
Antonio P PerinFranceXuxue Feng QUALIFIED
Mujtaba W WhobreyGermanyAmy Elsner UNQUALIFIED
Isabel Y GauchoGermanyAmy Elsner NEW
Maisha M GlickJapanAmy Elsner NEGOTIATION
Isabel T RulapaughArgentinaOnyama Limba NEGOTIATION
Julie E SaylorsArgentinaBernardo Dominic PROPOSAL
Jefferson C CaudyArgentinaIoni Bowcher PROPOSAL
Francesco V AmigonUnited KingdomIoni Bowcher NEGOTIATION
Izzy S GillianItalyAsiya Javayant QUALIFIED
Maisha Z RulapaughCanadaBernardo Dominic QUALIFIED
Darci R NestleUnited KingdomOnyama Limba RENEWAL
Frozen Columns
Name
Claire G Bolognia
Kaitlin U Gaucho
Ivar G Morasca
Tony L Ferencz
Isabel Y Chui
Clifford Q Slusarski
Juan D Briddick
Ivar O Bowley
Izzy G Sergi
Octavia L Maclead
Nicolas V Slusarski
Costa C Saylors
Chavez O Doe
Faith K Campain
Johnson R Ruta
Kaitlin Y Iturbide
Antonio S Nestle
Kaitlin Z Stenseth
James C Marrier
Murillo T Figeroa
Kadeem X Kusko
Mayumi L Wieser
Mayumi F Morasca
Cody A Maclead
Chavez C Chui
Francesco X Iturbide
Ashley I Gillian
Wickens X Kolmetz
Morrow O Slusarski
Adams M Rulapaugh
Smith E Venere
Arvin G Slusarski
Mujtaba J Butt
Clifford W Malet
Greenwood J Sergi
Alejandro H Darakjy
Clifford A Gaucho
Arvin M Slusarski
Jones W Chui
Adams P Stenseth
Stacey X Perin
Leja S Garufi
Tony P Malet
Juan Y Whobrey
Clifford G Flosi
Jefferson O Ferencz
Clifford A Royster
Greenwood I Ostrosky
Emily E Garufi
Ashley R Nestle
IdCountryDate
1000Australia2026-07-26
1001Brazil2026-07-18
1002Spain2026-08-14
1003India2026-07-29
1004Russia2026-07-27
1005Japan2026-08-15
1006Brazil2026-07-19
1007India2026-07-21
1008India2026-08-02
1009United Kingdom2026-07-31
1010Canada2026-07-19
1011Canada2026-08-04
1012Spain2026-08-07
1013United Kingdom2026-08-03
1014Brazil2026-07-18
1015France2026-08-12
1016Russia2026-08-12
1017Brazil2026-08-04
1018Brazil2026-07-25
1019Argentina2026-08-09
1020United Kingdom2026-08-11
1021Australia2026-07-31
1022Russia2026-07-19
1023Italy2026-07-25
1024Brazil2026-07-20
1025Argentina2026-08-04
1026Germany2026-08-14
1027Australia2026-07-19
1028France2026-07-18
1029Argentina2026-08-12
1030Spain2026-07-29
1031Germany2026-07-24
1032Germany2026-07-22
1033Argentina2026-07-27
1034Italy2026-07-27
1035Argentina2026-07-22
1036France2026-08-13
1037United Kingdom2026-08-02
1038Argentina2026-08-13
1039Brazil2026-07-29
1040Brazil2026-08-15
1041India2026-07-23
1042Italy2026-07-18
1043Japan2026-08-12
1044Japan2026-07-17
1045Spain2026-07-21
1046Canada2026-07-24
1047Canada2026-07-19
1048Spain2026-07-18
1049Japan2026-08-07

On-Demand Data

NameIdCountryDate
Claire B Stockham1000Germany2026-08-06
Antonio P Kolmetz1001Russia2026-08-11
Munro C Ferencz1002Australia2026-07-17
Juan Y Gaucho1003Brazil2026-08-03
Munro J Maclead1004Italy2026-08-08
Francesco Y Kolmetz1005Japan2026-07-23
Isabel N Foller1006United Kingdom2026-07-19
Greenwood C Maclead1007United Kingdom2026-08-02
Ricardo J Kolmetz1008Japan2026-08-02
Aditya C Shinko1009Italy2026-07-17
Jeanfrancois T Wieser1010United Kingdom2026-08-11
Mayumi S Briddick1011France2026-08-07
Aruna V Malet1012Argentina2026-07-29
Antonio N Caldarera1013Argentina2026-08-08
Leja P Royster1014Argentina2026-08-07
Jeanfrancois T Foller1015Japan2026-08-13
Maisha V Bolognia1016Canada2026-08-10
Murillo R Inouye1017Australia2026-08-12
Sinclair T Paprocki1018Japan2026-08-01
Ashley F Doe1019Argentina2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro M WieserAustraliaElwin Sharvill UNQUALIFIED
Aruna N FerenczBrazilAsiya Javayant NEGOTIATION
Sinclair J OldroydItalyBernardo Dominic UNQUALIFIED
David P GarufiRussiaIoni Bowcher QUALIFIED
Kadeem C ShinkoArgentinaAnna Fali NEW
Jennifer X GillianUnited KingdomAsiya Javayant PROPOSAL
Johnson A BriddickIndiaAnna Fali QUALIFIED
Mayumi O NickaUnited KingdomStephen Shaw PROPOSAL
Faith K FollerBrazilIvan Magalhaes UNQUALIFIED
Aruna A WieserRussiaXuxue Feng NEGOTIATION
Munro W BowleySpainXuxue Feng PROPOSAL
Kadeem D CaudyGermanyAsiya Javayant PROPOSAL
Mayumi D KolmetzArgentinaOnyama Limba NEW
Jennifer P CampainSpainOnyama Limba RENEWAL
Chavez Q FigeroaItalyOnyama Limba QUALIFIED
Mujtaba C MacleadAustraliaAnna Fali RENEWAL
Misaki Q RoysterUnited KingdomAnna Fali RENEWAL
Maria U GlickUnited KingdomOnyama Limba NEW
Stacey W MorascaAustraliaIvan Magalhaes PROPOSAL
Nicolas N RutaGermanyAmy Elsner UNQUALIFIED
Faith X MaletArgentinaBernardo Dominic RENEWAL
Jennifer B NickaBrazilBernardo Dominic NEW
Julie D VenereItalyStephen Shaw NEGOTIATION
David W StockhamRussiaAmy Elsner NEGOTIATION
Ashley A ShinkoRussiaOnyama Limba NEGOTIATION
Jennifer R RimJapanAsiya Javayant NEW
Sinclair T RoysterCanadaAnna Fali RENEWAL
Isabel P AlbaresRussiaIoni Bowcher UNQUALIFIED
Nicolas Z DarakjyGermanyIvan Magalhaes NEW
Leja Z VocelkaRussiaElwin Sharvill PROPOSAL
Ricardo H RutaUnited KingdomStephen Shaw UNQUALIFIED
Adams G VenereArgentinaXuxue Feng NEGOTIATION
Aruna S MacleadArgentinaElwin Sharvill UNQUALIFIED
Stacey E StensethJapanXuxue Feng QUALIFIED
Maisha F NestleItalyAsiya Javayant RENEWAL
Tony Z FollerRussiaAnna Fali QUALIFIED
Cody R OstroskyCanadaXuxue Feng UNQUALIFIED
James A FollerGermanyXuxue Feng QUALIFIED
Leon R DarakjyIndiaAnna Fali NEW
Sinclair L StensethBrazilOnyama Limba UNQUALIFIED

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