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 V BowleyGermanyXuxue Feng NEGOTIATION
Rodrigues A FollerCanadaXuxue Feng QUALIFIED
Smith H WaycottRussiaStephen Shaw QUALIFIED
Silvio C FollerUnited KingdomOnyama Limba NEW
Clifford W MacleadUnited KingdomIvan Magalhaes RENEWAL
Munro V SaylorsBrazilXuxue Feng UNQUALIFIED
Misaki T GarufiRussiaBernardo Dominic NEW
Izzy A KolmetzRussiaAmy Elsner PROPOSAL
Arvin H ShinkoCanadaElwin Sharvill QUALIFIED
Adams S OstroskyArgentinaXuxue Feng UNQUALIFIED
Wickens I PaprockiGermanyOnyama Limba RENEWAL
Julie S CaudyUnited KingdomIoni Bowcher NEGOTIATION
Murillo Z PaprockiFranceIoni Bowcher NEGOTIATION
Tony D GlickFranceElwin Sharvill NEW
Aruna T ButtCanadaIoni Bowcher NEGOTIATION
Adams A BowleySpainAnna Fali UNQUALIFIED
Deepesh X TollnerUnited KingdomOnyama Limba NEW
Antonio H GillianIndiaAsiya Javayant RENEWAL
Nicolas X RoysterRussiaAsiya Javayant NEGOTIATION
Wickens V DarakjyIndiaOnyama Limba PROPOSAL
Sinclair M GlickFranceBernardo Dominic NEW
Aditya X OstroskyAustraliaElwin Sharvill PROPOSAL
Sinclair A MaletGermanyXuxue Feng UNQUALIFIED
Smith V RutaAustraliaBernardo Dominic RENEWAL
Alejandro L MaletRussiaOnyama Limba RENEWAL
Izzy Z ButtUnited KingdomIvan Magalhaes NEW
Rodrigues Z RimItalyAsiya Javayant NEW
Aika X SlusarskiArgentinaIoni Bowcher QUALIFIED
Salvatore R SlusarskiFranceXuxue Feng UNQUALIFIED
Izzy F FigeroaRussiaAmy Elsner QUALIFIED
Tony K CaudyAustraliaAsiya Javayant QUALIFIED
Faith K SchemmerItalyAmy Elsner UNQUALIFIED
Salvatore D ButtCanadaOnyama Limba NEW
Darci J FerenczArgentinaXuxue Feng RENEWAL
Jones D SaylorsBrazilIoni Bowcher QUALIFIED
Alejandro B OldroydCanadaAmy Elsner QUALIFIED
Stacey U RulapaughCanadaElwin Sharvill QUALIFIED
Morrow F WhobreySpainStephen Shaw UNQUALIFIED
Deepesh F MaletGermanyAmy Elsner NEGOTIATION
Tony J CaudyUnited KingdomAmy Elsner PROPOSAL
Antonio O GarufiBrazilIoni Bowcher RENEWAL
Antonio M NickaGermanyAnna Fali RENEWAL
Isabel Y SchemmerCanadaBernardo Dominic RENEWAL
Alejandro K InouyeItalyIvan Magalhaes PROPOSAL
Rodrigues K ChuiSpainXuxue Feng QUALIFIED
Leja H DarakjySpainIoni Bowcher NEW
Kaitlin R DilliardAustraliaOnyama Limba QUALIFIED
Costa E VenereItalyAmy Elsner NEGOTIATION
Cody R GillianGermanyStephen Shaw RENEWAL
Jones V SlusarskiRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody I DilliardArgentinaStephen Shaw QUALIFIED
Ivar R KolmetzIndiaAnna Fali QUALIFIED
Greenwood N MarrierBrazilElwin Sharvill NEGOTIATION
Aika J RulapaughGermanyBernardo Dominic PROPOSAL
Smith R DilliardSpainElwin Sharvill NEGOTIATION
Johnson R GauchoIndiaAnna Fali NEW
Isabel F GarufiCanadaXuxue Feng NEGOTIATION
Adams O WaycottAustraliaAsiya Javayant RENEWAL
Mujtaba X OstroskyGermanyAsiya Javayant QUALIFIED
Jefferson V TollnerRussiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki N FollerIndia2026-07-26Chapman, Ross E Esq RENEWAL33Bernardo Dominic
1001Ivar O ButtSpain2026-08-01Rousseaux, Michael Esq NEGOTIATION61Onyama Limba
1002Alejandro Y GauchoAustralia2026-08-05Truhlar And Truhlar Attys UNQUALIFIED23Bernardo Dominic
1003Clifford U WieserRussia2026-08-07Feiner Bros PROPOSAL71Bernardo Dominic
1004Antonio R NestleFrance2026-08-22King, Christopher A Esq UNQUALIFIED26Amy Elsner
1005Nicolas E AlbaresIndia2026-08-03Chemel, James L Cpa UNQUALIFIED63Stephen Shaw
1006Smith V OldroydUnited Kingdom2026-08-20Rousseaux, Michael Esq NEGOTIATION17Amy Elsner
1007Silvio L RutaSpain2026-08-02Printing Dimensions RENEWAL53Ioni Bowcher
1008Costa Y DilliardIndia2026-08-18Dorl, James J Esq PROPOSAL92Xuxue Feng
1009Darci U SergiBrazil2026-08-09Chemel, James L Cpa NEW69Onyama Limba
1010Kadeem V ChuiArgentina2026-07-24Chapman, Ross E Esq QUALIFIED99Onyama Limba
1011Antonio S KuskoSpain2026-08-08Chanay, Jeffrey A Esq PROPOSAL22Elwin Sharvill
1012Claire S GlickBrazil2026-08-21Feltz Printing Service UNQUALIFIED21Elwin Sharvill
1013Faith Y InouyeRussia2026-08-17Buckley Miller Wright NEW57Stephen Shaw
1014Juan B GauchoGermany2026-08-09Printing Dimensions RENEWAL14Asiya Javayant
1015Nicolas A CampainJapan2026-07-25Rousseaux, Michael Esq QUALIFIED77Stephen Shaw
1016Aika G FlosiSpain2026-08-15Dorl, James J Esq NEW93Asiya Javayant
1017Emily W InouyeItaly2026-08-15Rangoni Of Florence QUALIFIED4Amy Elsner
1018Jennifer Y CampainArgentina2026-07-31Chapman, Ross E Esq PROPOSAL72Ivan Magalhaes
1019Aditya S FlosiUnited Kingdom2026-08-15Truhlar And Truhlar Attys NEW38Stephen Shaw
1020Cody X FlosiSpain2026-07-27Truhlar And Truhlar Attys NEGOTIATION54Stephen Shaw
1021David P DarakjyUnited Kingdom2026-07-28Buckley Miller Wright NEGOTIATION10Ivan Magalhaes
1022Deepesh D RimUnited Kingdom2026-08-20Feiner Bros UNQUALIFIED67Stephen Shaw
1023Wickens I MaletBrazil2026-08-04Dorl, James J Esq PROPOSAL97Onyama Limba
1024Maisha Y MacleadRussia2026-08-22Truhlar And Truhlar Attys PROPOSAL98Stephen Shaw
1025Jeanfrancois V PaprockiUnited Kingdom2026-07-28Benton, John B Jr NEGOTIATION5Xuxue Feng
1026Kadeem U SergiJapan2026-07-29Benton, John B Jr PROPOSAL3Anna Fali
1027Jones V OldroydAustralia2026-07-27Rousseaux, Michael Esq NEGOTIATION65Bernardo Dominic
1028Faith A MaletAustralia2026-07-27Chemel, James L Cpa NEGOTIATION88Bernardo Dominic
1029Mujtaba U VenereJapan2026-08-01Morlong Associates RENEWAL42Xuxue Feng
1030Costa S ButtFrance2026-07-26Truhlar And Truhlar Attys QUALIFIED6Ivan Magalhaes
1031Costa W BowleyRussia2026-08-02Morlong Associates RENEWAL63Amy Elsner
1032Darci D MarrierAustralia2026-08-03Feiner Bros QUALIFIED7Bernardo Dominic
1033Tony E CaudyUnited Kingdom2026-08-20Rousseaux, Michael Esq UNQUALIFIED64Bernardo Dominic
1034Kaitlin E FollerCanada2026-08-05Chemel, James L Cpa NEGOTIATION5Bernardo Dominic
1035Misaki K OstroskyJapan2026-07-25Chapman, Ross E Esq NEW1Stephen Shaw
1036Ivar M SlusarskiSpain2026-08-20Morlong Associates PROPOSAL21Ivan Magalhaes
1037James P RulapaughGermany2026-07-27Buckley Miller Wright QUALIFIED73Ioni Bowcher
1038Kaitlin O MaletIndia2026-08-03Printing Dimensions NEGOTIATION49Onyama Limba
1039Smith W MarrierBrazil2026-08-22Chemel, James L Cpa UNQUALIFIED14Onyama Limba
1040David K PerinUnited Kingdom2026-07-25Dorl, James J Esq PROPOSAL48Bernardo Dominic
1041Misaki Z SaylorsCanada2026-07-25Chanay, Jeffrey A Esq NEGOTIATION52Asiya Javayant
1042Alejandro A CampainIndia2026-08-07Benton, John B Jr UNQUALIFIED19Asiya Javayant
1043Cody S OldroydCanada2026-08-02Buckley Miller Wright PROPOSAL77Elwin Sharvill
1044Kaitlin G VenereAustralia2026-08-04Benton, John B Jr RENEWAL89Asiya Javayant
1045Jefferson U DilliardFrance2026-07-30Chanay, Jeffrey A Esq PROPOSAL0Amy Elsner
1046Aruna W SergiJapan2026-08-12Chapman, Ross E Esq RENEWAL31Bernardo Dominic
1047Adams S AmigonArgentina2026-08-08Chanay, Jeffrey A Esq NEW15Onyama Limba
1048Julie O DilliardJapan2026-08-11Morlong Associates UNQUALIFIED24Amy Elsner
1049Ivar M MaletFrance2026-08-03Rangoni Of Florence NEW87Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jones E PerinRussiaAsiya Javayant NEGOTIATION
Rodrigues R MarrierItalyXuxue Feng PROPOSAL
Julie A RutaIndiaAmy Elsner QUALIFIED
Salvatore O ChuiFranceXuxue Feng UNQUALIFIED
Jefferson B RutaCanadaIoni Bowcher NEW
Morrow S PaprockiBrazilXuxue Feng QUALIFIED
Jeanfrancois G InouyeUnited KingdomXuxue Feng RENEWAL
Mujtaba S PoquetteGermanyStephen Shaw RENEWAL
Costa E CaldareraRussiaStephen Shaw NEGOTIATION
Johnson E OldroydSpainIvan Magalhaes UNQUALIFIED
Kadeem Q FigeroaItalyXuxue Feng UNQUALIFIED
Claire B PaprockiAustraliaXuxue Feng NEW
Ricardo F RoysterRussiaAsiya Javayant NEW
Leon E TollnerAustraliaAnna Fali NEGOTIATION
David A RulapaughBrazilBernardo Dominic UNQUALIFIED
Tony M RoysterAustraliaStephen Shaw QUALIFIED
Kaitlin U BriddickSpainAmy Elsner PROPOSAL
Kadeem E BologniaGermanyAmy Elsner QUALIFIED
Jones I ShinkoJapanStephen Shaw NEW
Jeanfrancois Q FerenczGermanyStephen Shaw RENEWAL
Silvio N DilliardFranceAnna Fali QUALIFIED
Morrow D RoysterCanadaOnyama Limba UNQUALIFIED
Kadeem F DarakjyJapanIoni Bowcher NEGOTIATION
Stacey W VenereRussiaIoni Bowcher PROPOSAL
Salvatore B PoquetteBrazilIoni Bowcher PROPOSAL
Ashley B VenereItalyElwin Sharvill PROPOSAL
James S MaletIndiaAnna Fali NEW
Jones D MorascaJapanStephen Shaw UNQUALIFIED
Mujtaba Z StensethUnited KingdomAmy Elsner NEGOTIATION
Isabel H FollerCanadaIvan Magalhaes RENEWAL
Izzy Q AmigonJapanAsiya Javayant PROPOSAL
Jeanfrancois F BologniaGermanyAmy Elsner UNQUALIFIED
Kaitlin B GlickIndiaAmy Elsner RENEWAL
Misaki E RoysterCanadaAmy Elsner QUALIFIED
Aika C BologniaAustraliaBernardo Dominic PROPOSAL
Rodrigues H VenereGermanyIoni Bowcher RENEWAL
Emily C RutaSpainXuxue Feng RENEWAL
Jefferson K AlbaresRussiaAnna Fali UNQUALIFIED
Ricardo T GlickJapanAsiya Javayant RENEWAL
Adams M WieserIndiaAnna Fali PROPOSAL
Maria Q BriddickUnited KingdomOnyama Limba NEGOTIATION
Kaitlin T KuskoArgentinaBernardo Dominic QUALIFIED
James M ShinkoUnited KingdomOnyama Limba PROPOSAL
Faith O SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Tony V KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Arvin C IturbideSpainOnyama Limba PROPOSAL
Jennifer V DarakjyUnited KingdomElwin Sharvill QUALIFIED
Adams V GarufiJapanAmy Elsner NEGOTIATION
Smith K SlusarskiGermanyBernardo Dominic PROPOSAL
Wickens X KuskoBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Salvatore D Darakjy
David L Morasca
James J Wieser
Greenwood Y Kusko
Tony M Campain
Adams X Morasca
James Z Gaucho
Silvio Q Malet
Jones M Caudy
Alejandro U Darakjy
Jeanfrancois S Figeroa
Aika E Chui
Izzy N Ostrosky
Nicolas P Bowley
Kaitlin E Gillian
Emily C Wieser
Claire S Sergi
Arvin F Maclead
Julie L Slusarski
Munro Y Figeroa
Johnson Y Ferencz
David P Chui
Smith L Venere
Rodrigues I Iturbide
Octavia H Chui
Cody E Caudy
Emily O Rulapaugh
Faith P Rulapaugh
Antonio Q Ostrosky
Morrow K Royster
Munro Z Saylors
Silvio B Perin
Arvin S Bolognia
Mayumi S Figeroa
Aruna S Royster
Maisha L Nicka
Munro G Malet
Mujtaba J Malet
Julie L Campain
Mayumi V Rulapaugh
Darci C Garufi
Chavez C Garufi
Octavia K Royster
Claire N Darakjy
Nicolas J Poquette
Antonio Z Bowley
Julie H Chui
Maisha S Bowley
Chavez H Ferencz
Kaitlin G Whobrey
IdCountryDate
1000India2026-08-22
1001Japan2026-07-29
1002Italy2026-08-07
1003Argentina2026-07-30
1004Germany2026-08-08
1005United Kingdom2026-07-26
1006Argentina2026-08-04
1007Russia2026-08-01
1008India2026-07-24
1009Italy2026-08-15
1010India2026-08-15
1011United Kingdom2026-08-06
1012Brazil2026-08-08
1013Germany2026-08-18
1014Russia2026-08-15
1015Australia2026-08-19
1016Germany2026-08-18
1017Argentina2026-07-26
1018Brazil2026-08-04
1019United Kingdom2026-07-24
1020France2026-07-26
1021Germany2026-08-21
1022United Kingdom2026-07-26
1023Australia2026-08-10
1024Japan2026-08-04
1025Canada2026-07-29
1026France2026-08-15
1027India2026-08-14
1028India2026-08-21
1029France2026-07-29
1030Brazil2026-07-29
1031Germany2026-08-08
1032India2026-08-04
1033Argentina2026-07-28
1034Germany2026-08-21
1035Japan2026-08-06
1036Argentina2026-07-26
1037United Kingdom2026-07-26
1038Australia2026-07-28
1039Germany2026-08-15
1040United Kingdom2026-08-06
1041Russia2026-08-20
1042Russia2026-08-02
1043Canada2026-08-17
1044Russia2026-07-30
1045India2026-08-18
1046Brazil2026-08-05
1047Canada2026-08-07
1048India2026-07-31
1049United Kingdom2026-08-07

On-Demand Data

NameIdCountryDate
Juan P Schemmer1000Argentina2026-08-13
Adams H Briddick1001France2026-08-06
Francesco O Kusko1002India2026-07-30
Clifford M Inouye1003Italy2026-08-07
Wickens K Albares1004Brazil2026-08-20
Izzy L Campain1005France2026-08-14
Izzy O Nestle1006Spain2026-08-08
Morrow M Caldarera1007India2026-08-11
Nicolas S Paprocki1008Spain2026-07-29
Juan Z Ostrosky1009India2026-08-19
Emily B Bolognia1010Japan2026-07-25
Francesco N Poquette1011Germany2026-08-13
Nicolas P Garufi1012Australia2026-08-07
Clifford G Morasca1013Argentina2026-08-20
Maria K Figeroa1014United Kingdom2026-07-27
Stacey K Stenseth1015Brazil2026-08-20
Chavez P Doe1016Brazil2026-08-08
Rodrigues S Bowley1017Spain2026-08-10
Ivar X Venere1018Germany2026-08-04
Francesco U Rulapaugh1019Germany2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki H MorascaSpainIoni Bowcher NEW
Octavia E DilliardRussiaStephen Shaw PROPOSAL
Aditya M WaycottArgentinaStephen Shaw NEGOTIATION
Costa K OstroskyRussiaXuxue Feng PROPOSAL
Darci Z FerenczFranceXuxue Feng PROPOSAL
Aruna D MacleadBrazilIoni Bowcher QUALIFIED
Jefferson Y RoysterGermanyAnna Fali RENEWAL
Rodrigues A ChuiGermanyAmy Elsner PROPOSAL
Izzy Y CampainRussiaIvan Magalhaes UNQUALIFIED
Costa I FigeroaItalyAnna Fali RENEWAL
Salvatore G GillianBrazilIoni Bowcher UNQUALIFIED
Murillo S RulapaughBrazilAmy Elsner RENEWAL
Julie J VenereFranceAmy Elsner NEW
Mujtaba C RoysterRussiaIvan Magalhaes QUALIFIED
Rodrigues I WaycottBrazilBernardo Dominic QUALIFIED
Jennifer H WhobreyFranceOnyama Limba NEW
Faith V SergiFranceIvan Magalhaes UNQUALIFIED
Maria T BologniaSpainBernardo Dominic NEGOTIATION
Antonio H PaprockiBrazilOnyama Limba RENEWAL
Kadeem R InouyeIndiaIoni Bowcher RENEWAL
Chavez Z GarufiArgentinaIvan Magalhaes RENEWAL
Juan C AmigonFranceAnna Fali UNQUALIFIED
Jefferson U SaylorsFranceBernardo Dominic PROPOSAL
Jefferson D VocelkaCanadaOnyama Limba UNQUALIFIED
Antonio K WaycottItalyStephen Shaw NEGOTIATION
Wickens X GauchoFranceAnna Fali PROPOSAL
David R GarufiIndiaAsiya Javayant QUALIFIED
Misaki F OldroydAustraliaAnna Fali RENEWAL
Chavez Q GarufiArgentinaIvan Magalhaes QUALIFIED
James E MacleadSpainStephen Shaw PROPOSAL
Jeanfrancois N MaletJapanIoni Bowcher NEW
Misaki P CaudyGermanyIoni Bowcher UNQUALIFIED
Kadeem H KolmetzItalyStephen Shaw NEGOTIATION
Aika L RutaRussiaAmy Elsner QUALIFIED
Claire Z FerenczArgentinaAsiya Javayant UNQUALIFIED
Mayumi K VenereUnited KingdomStephen Shaw NEGOTIATION
Claire S MorascaIndiaAsiya Javayant RENEWAL
David R InouyeFranceAmy Elsner UNQUALIFIED
Jeanfrancois J WieserGermanyXuxue Feng QUALIFIED
Emily B RulapaughItalyStephen Shaw 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>