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
David J SaylorsRussiaStephen Shaw QUALIFIED
Ricardo D OldroydJapanOnyama Limba QUALIFIED
Jones R NickaIndiaIoni Bowcher UNQUALIFIED
Jones C RulapaughJapanElwin Sharvill NEGOTIATION
Deepesh I VenereUnited KingdomAsiya Javayant UNQUALIFIED
Leon M VenereCanadaElwin Sharvill QUALIFIED
Aruna A ButtItalyAsiya Javayant QUALIFIED
Deepesh N RulapaughArgentinaElwin Sharvill NEGOTIATION
Johnson N FerenczCanadaIoni Bowcher RENEWAL
Francesco G ChuiIndiaElwin Sharvill NEW
Aika D VenereJapanStephen Shaw NEW
Maria U ChuiRussiaStephen Shaw NEW
Stacey D IturbideRussiaElwin Sharvill QUALIFIED
Juan Q FigeroaGermanyAmy Elsner RENEWAL
David I DoeFranceIoni Bowcher QUALIFIED
Misaki B SchemmerIndiaIoni Bowcher QUALIFIED
Francesco Z PoquetteSpainAmy Elsner UNQUALIFIED
Murillo M FigeroaCanadaBernardo Dominic QUALIFIED
Darci B FollerFranceIoni Bowcher NEGOTIATION
Ivar C RulapaughBrazilIoni Bowcher QUALIFIED
Smith K KolmetzItalyIvan Magalhaes NEGOTIATION
Stacey D GlickRussiaIoni Bowcher NEW
David Z FigeroaGermanyBernardo Dominic RENEWAL
Costa W SaylorsCanadaIoni Bowcher NEGOTIATION
Misaki N ShinkoUnited KingdomOnyama Limba QUALIFIED
Morrow C BriddickUnited KingdomAnna Fali PROPOSAL
Jeanfrancois X WaycottBrazilAnna Fali UNQUALIFIED
Claire Z RimSpainXuxue Feng PROPOSAL
Kaitlin U RoysterRussiaElwin Sharvill PROPOSAL
Costa N KuskoAustraliaStephen Shaw PROPOSAL
Aruna X NestleAustraliaOnyama Limba QUALIFIED
Jeanfrancois J FollerBrazilElwin Sharvill NEW
Greenwood T DarakjyAustraliaXuxue Feng QUALIFIED
Costa E NickaGermanyBernardo Dominic UNQUALIFIED
David D ChuiItalyStephen Shaw QUALIFIED
Smith J MorascaSpainAsiya Javayant UNQUALIFIED
Clifford Z InouyeFranceAsiya Javayant UNQUALIFIED
Deepesh T IturbideIndiaElwin Sharvill PROPOSAL
Leon N FlosiSpainXuxue Feng NEW
Jones E SchemmerItalyBernardo Dominic NEGOTIATION
Mujtaba L NickaIndiaOnyama Limba PROPOSAL
Kaitlin U SchemmerIndiaAnna Fali QUALIFIED
Arvin Z MorascaIndiaOnyama Limba QUALIFIED
Adams Q RutaCanadaAnna Fali NEW
Ivar E StockhamUnited KingdomStephen Shaw UNQUALIFIED
Munro D FollerItalyStephen Shaw RENEWAL
Costa S CaldareraAustraliaIvan Magalhaes NEGOTIATION
Kaitlin L SergiCanadaIoni Bowcher PROPOSAL
Juan J AlbaresCanadaBernardo Dominic NEGOTIATION
Murillo T GillianJapanAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Izzy A GauchoGermanyAsiya Javayant NEGOTIATION
Arvin N SaylorsCanadaAnna Fali RENEWAL
Antonio H MaletBrazilAmy Elsner NEGOTIATION
Octavia Z InouyeGermanyBernardo Dominic RENEWAL
Morrow H NickaUnited KingdomIoni Bowcher PROPOSAL
Rodrigues X DoeBrazilStephen Shaw PROPOSAL
Antonio O DilliardIndiaIoni Bowcher PROPOSAL
Smith G BowleyUnited KingdomXuxue Feng RENEWAL
Munro A ChuiUnited KingdomBernardo Dominic RENEWAL
Nicolas D BowleyIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio E BologniaUnited Kingdom2026-07-25Buckley Miller Wright UNQUALIFIED1Ioni Bowcher
1001Maisha Y WieserSpain2026-08-13Feiner Bros QUALIFIED36Ivan Magalhaes
1002Silvio J MaletAustralia2026-08-04Dorl, James J Esq QUALIFIED4Onyama Limba
1003Deepesh P VocelkaUnited Kingdom2026-07-24Chemel, James L Cpa NEGOTIATION56Ivan Magalhaes
1004Mujtaba P PaprockiCanada2026-07-25Benton, John B Jr NEW43Anna Fali
1005Costa C OstroskyArgentina2026-07-20Printing Dimensions UNQUALIFIED66Anna Fali
1006Kadeem G SergiJapan2026-07-20Buckley Miller Wright NEGOTIATION28Ioni Bowcher
1007Kadeem A StockhamAustralia2026-08-07Benton, John B Jr NEW8Anna Fali
1008Maisha S InouyeArgentina2026-08-06Commercial Press RENEWAL76Onyama Limba
1009Ricardo B GlickArgentina2026-08-02Rousseaux, Michael Esq PROPOSAL78Onyama Limba
1010Jennifer U FlosiSpain2026-08-01Chanay, Jeffrey A Esq NEGOTIATION43Ioni Bowcher
1011Mujtaba I NestleRussia2026-08-02Rousseaux, Michael Esq PROPOSAL77Xuxue Feng
1012Jennifer B GlickBrazil2026-08-15Truhlar And Truhlar Attys NEW44Elwin Sharvill
1013Ivar I PaprockiItaly2026-08-07Rangoni Of Florence NEW81Xuxue Feng
1014Faith L RutaRussia2026-08-07Truhlar And Truhlar Attys PROPOSAL49Onyama Limba
1015Darci M RutaBrazil2026-07-19King, Christopher A Esq UNQUALIFIED20Asiya Javayant
1016Stacey I MaletSpain2026-08-11King, Christopher A Esq NEGOTIATION38Asiya Javayant
1017David S SchemmerUnited Kingdom2026-08-09Buckley Miller Wright NEGOTIATION61Bernardo Dominic
1018Chavez A ShinkoIndia2026-07-21Benton, John B Jr QUALIFIED1Ioni Bowcher
1019David F SlusarskiRussia2026-07-31Feltz Printing Service RENEWAL40Stephen Shaw
1020Wickens J OldroydArgentina2026-07-24Dorl, James J Esq NEW17Anna Fali
1021Izzy N ShinkoIndia2026-07-23Chapman, Ross E Esq QUALIFIED5Elwin Sharvill
1022Arvin J PerinSpain2026-07-19Commercial Press NEGOTIATION83Stephen Shaw
1023Salvatore L FigeroaIndia2026-08-09Feiner Bros NEGOTIATION61Ioni Bowcher
1024Salvatore S TollnerFrance2026-08-08Chemel, James L Cpa PROPOSAL5Asiya Javayant
1025Greenwood I GlickSpain2026-08-06Rousseaux, Michael Esq UNQUALIFIED87Amy Elsner
1026Nicolas N RimFrance2026-07-24Chanay, Jeffrey A Esq NEGOTIATION59Bernardo Dominic
1027Aditya W GillianSpain2026-08-12Printing Dimensions NEW6Amy Elsner
1028Morrow O MacleadUnited Kingdom2026-07-26Feltz Printing Service RENEWAL24Ivan Magalhaes
1029Johnson R MacleadSpain2026-07-20Printing Dimensions RENEWAL59Onyama Limba
1030Greenwood D WaycottItaly2026-08-05Chapman, Ross E Esq PROPOSAL74Bernardo Dominic
1031Ashley S VenereRussia2026-07-19Morlong Associates NEW45Onyama Limba
1032Ricardo X FigeroaSpain2026-08-15Morlong Associates RENEWAL88Xuxue Feng
1033Leja W VocelkaCanada2026-07-19Chanay, Jeffrey A Esq NEGOTIATION11Anna Fali
1034Sinclair Z DoeRussia2026-07-25Chemel, James L Cpa UNQUALIFIED82Amy Elsner
1035Mujtaba Z MorascaItaly2026-08-01Chanay, Jeffrey A Esq PROPOSAL90Anna Fali
1036Juan Z RimArgentina2026-08-14King, Christopher A Esq RENEWAL19Elwin Sharvill
1037Claire D CaldareraGermany2026-07-19Rousseaux, Michael Esq NEGOTIATION11Onyama Limba
1038Aditya J TollnerGermany2026-07-31Commercial Press NEGOTIATION95Anna Fali
1039Jones E StensethSpain2026-07-24Printing Dimensions NEGOTIATION50Onyama Limba
1040Chavez P RoysterBrazil2026-07-30Rangoni Of Florence PROPOSAL70Onyama Limba
1041Ashley K SaylorsIndia2026-07-31Chapman, Ross E Esq QUALIFIED50Onyama Limba
1042Kaitlin M InouyeAustralia2026-08-12Buckley Miller Wright UNQUALIFIED39Amy Elsner
1043Deepesh U OldroydAustralia2026-07-19Benton, John B Jr NEW76Ivan Magalhaes
1044Tony X FigeroaJapan2026-07-18Commercial Press UNQUALIFIED77Amy Elsner
1045Silvio J RulapaughItaly2026-07-29King, Christopher A Esq PROPOSAL99Elwin Sharvill
1046Isabel N VenereSpain2026-07-18Benton, John B Jr QUALIFIED3Onyama Limba
1047Morrow Q GillianUnited Kingdom2026-07-20Chanay, Jeffrey A Esq RENEWAL37Anna Fali
1048Jones X MaletGermany2026-08-09Chapman, Ross E Esq NEGOTIATION15Anna Fali
1049Leja F WaycottAustralia2026-08-11Feiner Bros UNQUALIFIED89Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leon D VenereSpainBernardo Dominic PROPOSAL
Greenwood E AlbaresBrazilOnyama Limba PROPOSAL
Ashley J SaylorsGermanyBernardo Dominic QUALIFIED
Clifford K MaletArgentinaElwin Sharvill UNQUALIFIED
Wickens L OstroskyItalyBernardo Dominic PROPOSAL
Munro D GlickIndiaAmy Elsner NEGOTIATION
Jeanfrancois N MarrierIndiaAnna Fali UNQUALIFIED
Izzy V WaycottRussiaAsiya Javayant UNQUALIFIED
Kaitlin R RutaAustraliaAmy Elsner NEW
Jones M KolmetzSpainAnna Fali PROPOSAL
Ivar L AlbaresArgentinaAmy Elsner PROPOSAL
Mujtaba Y IturbideJapanBernardo Dominic RENEWAL
Aruna M InouyeCanadaOnyama Limba UNQUALIFIED
Aika W MacleadArgentinaStephen Shaw RENEWAL
Sinclair N OldroydRussiaBernardo Dominic QUALIFIED
Arvin M FollerJapanElwin Sharvill RENEWAL
Alejandro Y GauchoArgentinaXuxue Feng RENEWAL
Stacey A SlusarskiGermanyAnna Fali UNQUALIFIED
Stacey V PaprockiBrazilElwin Sharvill QUALIFIED
Maisha B GauchoCanadaAnna Fali PROPOSAL
Jefferson B StockhamItalyAmy Elsner RENEWAL
Chavez R NickaIndiaIoni Bowcher NEGOTIATION
Maria O SlusarskiItalyAmy Elsner QUALIFIED
Nicolas S WieserUnited KingdomAsiya Javayant NEGOTIATION
Maria T StockhamArgentinaAnna Fali NEGOTIATION
Maisha W WieserRussiaElwin Sharvill PROPOSAL
Jefferson H ChuiSpainAsiya Javayant NEW
Munro S WieserAustraliaOnyama Limba UNQUALIFIED
Salvatore H ButtFranceAnna Fali QUALIFIED
Stacey T MorascaSpainElwin Sharvill QUALIFIED
Jennifer H AlbaresSpainIoni Bowcher UNQUALIFIED
Mayumi N StockhamAustraliaAmy Elsner QUALIFIED
Maria X GlickSpainAnna Fali QUALIFIED
James E DilliardRussiaXuxue Feng RENEWAL
Mayumi G MaletIndiaOnyama Limba NEW
Smith G AlbaresArgentinaIoni Bowcher UNQUALIFIED
Clifford L PaprockiCanadaBernardo Dominic PROPOSAL
Aika Z SlusarskiArgentinaOnyama Limba NEW
Izzy X MaletArgentinaAmy Elsner UNQUALIFIED
Aditya P FigeroaItalyIvan Magalhaes NEW
Misaki N CaudyRussiaAmy Elsner RENEWAL
Clifford H GillianItalyXuxue Feng NEGOTIATION
Adams H NickaArgentinaAsiya Javayant UNQUALIFIED
Alejandro F OstroskyJapanAsiya Javayant NEW
Wickens W FigeroaItalyAmy Elsner NEW
Mayumi Y InouyeUnited KingdomIoni Bowcher PROPOSAL
Alejandro D RimGermanyXuxue Feng NEW
Kaitlin U VenereUnited KingdomElwin Sharvill RENEWAL
Julie L KuskoCanadaAsiya Javayant PROPOSAL
Maria T CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Leja J Malet
Claire D Shinko
Chavez E Butt
Kaitlin E Oldroyd
Wickens U Butt
Murillo V Flosi
Wickens Z Slusarski
Sinclair B Perin
Aditya H Gillian
Sinclair B Butt
Jeanfrancois D Schemmer
Jeanfrancois Q Figeroa
Antonio J Stockham
Arvin H Campain
Sinclair H Paprocki
Juan U Schemmer
Aruna P Venere
Leon I Doe
Clifford Y Nestle
Jennifer T Ferencz
Costa P Briddick
Misaki N Saylors
Aika Q Bolognia
Leon M Briddick
Clifford Z Briddick
Adams N Poquette
Aditya K Whobrey
Maria Z Rulapaugh
Mayumi H Bolognia
Mujtaba X Dilliard
Maisha D Perin
Stacey C Nestle
Arvin H Caudy
Faith Q Bowley
Aruna T Nicka
Leja W Kolmetz
Sinclair J Kolmetz
Maria K Schemmer
Leon X Schemmer
Kaitlin N Albares
Jennifer E Darakjy
Kadeem U Paprocki
Misaki M Ostrosky
Aditya O Whobrey
Leon G Albares
Munro K Venere
Maria N Poquette
Kaitlin S Vocelka
Tony R Nestle
Costa Y Malet
IdCountryDate
1000Japan2026-07-20
1001India2026-07-30
1002Brazil2026-07-31
1003United Kingdom2026-07-20
1004Brazil2026-07-19
1005France2026-08-05
1006France2026-08-03
1007India2026-08-15
1008France2026-08-14
1009Canada2026-07-19
1010Spain2026-07-30
1011Germany2026-08-09
1012Italy2026-07-25
1013Canada2026-07-28
1014Spain2026-07-26
1015Spain2026-08-01
1016Germany2026-07-20
1017Japan2026-08-04
1018United Kingdom2026-07-24
1019India2026-07-27
1020Australia2026-08-07
1021Russia2026-07-19
1022Italy2026-08-13
1023India2026-08-10
1024Japan2026-08-04
1025Australia2026-07-24
1026Germany2026-07-23
1027Canada2026-07-29
1028Germany2026-08-06
1029Argentina2026-07-17
1030Germany2026-08-06
1031Brazil2026-08-14
1032Australia2026-07-27
1033Russia2026-07-22
1034Italy2026-07-21
1035Russia2026-08-14
1036Spain2026-08-15
1037Canada2026-07-26
1038India2026-08-09
1039Germany2026-07-28
1040France2026-07-28
1041Canada2026-07-31
1042Argentina2026-07-23
1043Germany2026-08-15
1044Germany2026-07-18
1045Italy2026-08-01
1046France2026-07-27
1047Russia2026-08-12
1048Australia2026-07-17
1049Japan2026-07-22

On-Demand Data

NameIdCountryDate
Sinclair F Venere1000Brazil2026-08-11
Ricardo N Royster1001Germany2026-08-12
Rodrigues C Dilliard1002Brazil2026-07-29
Jones J Saylors1003Australia2026-07-29
Misaki T Figeroa1004Germany2026-08-07
Jones I Gillian1005Japan2026-08-11
Deepesh E Ruta1006Brazil2026-08-08
Nicolas H Royster1007Australia2026-07-27
Sinclair S Poquette1008Australia2026-07-25
Aruna I Bowley1009Germany2026-08-02
Adams N Malet1010Italy2026-07-18
Kaitlin M Sergi1011Russia2026-08-08
Ashley Z Ruta1012United Kingdom2026-08-06
Costa H Doe1013Germany2026-08-03
Jennifer I Dilliard1014Brazil2026-08-06
Chavez N Oldroyd1015Brazil2026-08-09
Salvatore G Figeroa1016France2026-07-28
Ashley A Maclead1017Argentina2026-08-01
Claire N Kusko1018Italy2026-08-01
Leon P Stenseth1019Australia2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha P StensethUnited KingdomAsiya Javayant QUALIFIED
Claire R SaylorsCanadaIoni Bowcher UNQUALIFIED
Munro H OstroskyRussiaIoni Bowcher NEGOTIATION
Silvio Q OldroydAustraliaElwin Sharvill NEGOTIATION
Aika M BriddickJapanIoni Bowcher QUALIFIED
Chavez S StensethIndiaIvan Magalhaes UNQUALIFIED
Chavez I SlusarskiRussiaAsiya Javayant NEGOTIATION
Aruna H FigeroaFranceStephen Shaw NEW
Isabel X WaycottBrazilAmy Elsner QUALIFIED
Johnson Y DilliardArgentinaBernardo Dominic NEGOTIATION
Johnson Y GauchoGermanyXuxue Feng PROPOSAL
Kadeem M ChuiFranceIoni Bowcher RENEWAL
Maisha E RulapaughAustraliaXuxue Feng NEGOTIATION
Isabel E KolmetzRussiaBernardo Dominic NEW
Sinclair I SchemmerItalyElwin Sharvill UNQUALIFIED
Maria S StensethBrazilXuxue Feng UNQUALIFIED
Arvin W WieserArgentinaBernardo Dominic QUALIFIED
Isabel V VenereAustraliaAsiya Javayant QUALIFIED
Mujtaba U KolmetzFranceAsiya Javayant NEGOTIATION
Julie U FlosiGermanyIoni Bowcher RENEWAL
Aruna Q BologniaItalyStephen Shaw QUALIFIED
Kadeem P RoysterIndiaAsiya Javayant QUALIFIED
Ashley M FollerRussiaIvan Magalhaes PROPOSAL
Jefferson H GauchoItalyStephen Shaw PROPOSAL
Alejandro V DoeUnited KingdomAnna Fali QUALIFIED
Ivar T OstroskyBrazilBernardo Dominic NEW
Mujtaba I DilliardRussiaOnyama Limba UNQUALIFIED
Johnson V FerenczSpainIvan Magalhaes PROPOSAL
Morrow O SchemmerUnited KingdomAsiya Javayant NEW
Emily J RulapaughIndiaAnna Fali QUALIFIED
Cody B PoquetteIndiaElwin Sharvill QUALIFIED
Emily C ChuiArgentinaStephen Shaw NEGOTIATION
Antonio X PerinUnited KingdomIoni Bowcher QUALIFIED
Octavia Q ButtUnited KingdomOnyama Limba NEW
Jones Y DilliardJapanAsiya Javayant NEGOTIATION
Chavez W WhobreyCanadaIvan Magalhaes NEGOTIATION
Isabel X CaudyAustraliaBernardo Dominic PROPOSAL
Rodrigues Z PaprockiAustraliaIoni Bowcher QUALIFIED
Jeanfrancois O SaylorsCanadaAsiya Javayant QUALIFIED
James W ShinkoSpainElwin Sharvill PROPOSAL

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