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
Rodrigues P MaletSpainAsiya Javayant UNQUALIFIED
Murillo J AmigonGermanyIvan Magalhaes RENEWAL
Faith F DilliardRussiaBernardo Dominic NEGOTIATION
Jeanfrancois T SlusarskiBrazilIoni Bowcher NEW
Misaki B AmigonItalyXuxue Feng NEW
Octavia W ButtBrazilIoni Bowcher UNQUALIFIED
Johnson I OstroskyFranceElwin Sharvill NEGOTIATION
Sinclair G BriddickArgentinaIvan Magalhaes UNQUALIFIED
Mayumi K DilliardRussiaElwin Sharvill RENEWAL
Juan F BowleyIndiaIvan Magalhaes UNQUALIFIED
Juan P SaylorsIndiaOnyama Limba QUALIFIED
Deepesh G GauchoCanadaAnna Fali QUALIFIED
Aditya X ChuiGermanyIoni Bowcher QUALIFIED
Kaitlin E SergiJapanAnna Fali PROPOSAL
Kadeem O GarufiItalyIvan Magalhaes RENEWAL
Munro J ShinkoJapanOnyama Limba NEGOTIATION
Sinclair U AlbaresFranceIvan Magalhaes PROPOSAL
Kadeem G NestleBrazilElwin Sharvill UNQUALIFIED
Mayumi W ShinkoAustraliaElwin Sharvill NEGOTIATION
Jefferson L SlusarskiAustraliaStephen Shaw PROPOSAL
Mayumi H GarufiAustraliaAmy Elsner RENEWAL
Juan J DarakjyIndiaIvan Magalhaes UNQUALIFIED
Wickens H OldroydSpainBernardo Dominic PROPOSAL
Emily F BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Leja E FollerRussiaAmy Elsner NEGOTIATION
Chavez S FollerJapanStephen Shaw QUALIFIED
Antonio F MorascaGermanyStephen Shaw UNQUALIFIED
Arvin F DoeSpainOnyama Limba UNQUALIFIED
Jeanfrancois P NestleArgentinaIvan Magalhaes UNQUALIFIED
Greenwood G RulapaughFranceIoni Bowcher PROPOSAL
Kadeem Z VenereAustraliaStephen Shaw NEW
Rodrigues C GarufiItalyStephen Shaw NEGOTIATION
Kaitlin J BowleyIndiaBernardo Dominic UNQUALIFIED
Juan W CaudyIndiaAmy Elsner NEGOTIATION
Leja B BowleyArgentinaAmy Elsner RENEWAL
Jefferson B KolmetzIndiaIvan Magalhaes QUALIFIED
David Q GillianIndiaElwin Sharvill RENEWAL
Alejandro J TollnerSpainXuxue Feng UNQUALIFIED
Silvio N WieserFranceAsiya Javayant NEW
Juan E FlosiFranceAnna Fali QUALIFIED
Smith P VocelkaGermanyAsiya Javayant QUALIFIED
Misaki F MaletIndiaIvan Magalhaes PROPOSAL
Morrow Z GillianJapanBernardo Dominic UNQUALIFIED
Mujtaba A PerinIndiaAmy Elsner RENEWAL
Stacey V GarufiAustraliaAnna Fali PROPOSAL
Misaki G FollerFranceStephen Shaw UNQUALIFIED
Isabel D SaylorsRussiaIvan Magalhaes UNQUALIFIED
Maria P DilliardGermanyXuxue Feng NEW
Faith R OstroskyGermanyIvan Magalhaes UNQUALIFIED
Leon C RimArgentinaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens B GarufiAustraliaIvan Magalhaes QUALIFIED
Emily G DoeArgentinaOnyama Limba NEGOTIATION
Johnson V DarakjyItalyStephen Shaw PROPOSAL
Aruna M RulapaughIndiaIvan Magalhaes QUALIFIED
Emily J GillianArgentinaElwin Sharvill UNQUALIFIED
Faith E NestleFranceAsiya Javayant NEGOTIATION
Silvio U ShinkoIndiaAsiya Javayant NEGOTIATION
Costa M SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Arvin U DoeRussiaAsiya Javayant NEGOTIATION
Leja P MaletUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki R FigeroaCanada2026-07-27Dorl, James J Esq UNQUALIFIED89Anna Fali
1001Johnson R CaldareraUnited Kingdom2026-07-09Morlong Associates NEGOTIATION32Onyama Limba
1002Claire X MaletRussia2026-07-24Chemel, James L Cpa RENEWAL91Asiya Javayant
1003Costa A StockhamFrance2026-07-18Chemel, James L Cpa UNQUALIFIED54Ioni Bowcher
1004Murillo K SergiArgentina2026-07-07King, Christopher A Esq UNQUALIFIED7Asiya Javayant
1005Sinclair A GlickUnited Kingdom2026-07-10Benton, John B Jr UNQUALIFIED91Amy Elsner
1006Sinclair X MarrierGermany2026-07-07Commercial Press QUALIFIED91Amy Elsner
1007Darci C NickaItaly2026-07-20Truhlar And Truhlar Attys RENEWAL84Xuxue Feng
1008Leon E VenereJapan2026-07-07Benton, John B Jr PROPOSAL34Ivan Magalhaes
1009Adams Z FlosiRussia2026-07-15Rousseaux, Michael Esq NEW30Elwin Sharvill
1010Ashley V MorascaJapan2026-07-17Printing Dimensions QUALIFIED28Amy Elsner
1011Izzy Y PoquetteArgentina2026-07-11Chemel, James L Cpa UNQUALIFIED66Amy Elsner
1012Darci F StockhamIndia2026-07-26Feltz Printing Service RENEWAL10Xuxue Feng
1013Tony A MarrierGermany2026-07-12Buckley Miller Wright UNQUALIFIED47Amy Elsner
1014Antonio R BologniaFrance2026-08-03Rousseaux, Michael Esq UNQUALIFIED4Amy Elsner
1015Tony N PoquetteUnited Kingdom2026-07-29Chapman, Ross E Esq PROPOSAL49Anna Fali
1016James E WieserGermany2026-07-09King, Christopher A Esq UNQUALIFIED21Bernardo Dominic
1017Ivar E GlickRussia2026-08-02Rousseaux, Michael Esq RENEWAL85Stephen Shaw
1018Jeanfrancois E CampainCanada2026-07-20Dorl, James J Esq UNQUALIFIED42Ioni Bowcher
1019Aruna X GauchoCanada2026-07-30Printing Dimensions NEGOTIATION0Ivan Magalhaes
1020Julie R RimUnited Kingdom2026-07-11Buckley Miller Wright RENEWAL37Xuxue Feng
1021Misaki O PaprockiGermany2026-07-20Commercial Press RENEWAL23Elwin Sharvill
1022Alejandro W RulapaughArgentina2026-07-20Buckley Miller Wright RENEWAL30Ivan Magalhaes
1023Jones C KuskoAustralia2026-07-13Printing Dimensions RENEWAL85Anna Fali
1024Silvio W BriddickUnited Kingdom2026-08-03King, Christopher A Esq UNQUALIFIED89Anna Fali
1025Cody Y PaprockiIndia2026-07-10Rangoni Of Florence PROPOSAL55Ioni Bowcher
1026Ricardo F OldroydArgentina2026-07-16Chapman, Ross E Esq QUALIFIED81Stephen Shaw
1027Greenwood T DoeItaly2026-08-04Chanay, Jeffrey A Esq RENEWAL86Stephen Shaw
1028Cody T CampainAustralia2026-07-12Rangoni Of Florence UNQUALIFIED27Asiya Javayant
1029Ricardo Z FigeroaItaly2026-07-11Commercial Press QUALIFIED24Ivan Magalhaes
1030Cody X SaylorsFrance2026-08-04Rangoni Of Florence QUALIFIED22Elwin Sharvill
1031Arvin E CampainCanada2026-07-14King, Christopher A Esq UNQUALIFIED89Amy Elsner
1032Octavia L StockhamSpain2026-07-09Commercial Press PROPOSAL89Onyama Limba
1033Johnson M ShinkoUnited Kingdom2026-07-27Benton, John B Jr RENEWAL83Bernardo Dominic
1034Deepesh E AlbaresJapan2026-07-28Buckley Miller Wright NEGOTIATION58Onyama Limba
1035Sinclair P SlusarskiRussia2026-07-10Feiner Bros QUALIFIED99Anna Fali
1036Greenwood H MarrierUnited Kingdom2026-07-11Printing Dimensions NEGOTIATION19Anna Fali
1037Maisha M MaletFrance2026-07-19Chapman, Ross E Esq QUALIFIED48Onyama Limba
1038Ashley Q ShinkoItaly2026-07-14Buckley Miller Wright RENEWAL87Ivan Magalhaes
1039Maria J TollnerSpain2026-07-19Rousseaux, Michael Esq UNQUALIFIED98Elwin Sharvill
1040Leon W SaylorsRussia2026-07-10Benton, John B Jr UNQUALIFIED65Stephen Shaw
1041Antonio T SergiJapan2026-07-13Printing Dimensions UNQUALIFIED70Anna Fali
1042Wickens Z MaletBrazil2026-07-09Dorl, James J Esq PROPOSAL35Onyama Limba
1043Arvin C GarufiFrance2026-07-08Chanay, Jeffrey A Esq RENEWAL96Ivan Magalhaes
1044Darci M NestleGermany2026-07-20Printing Dimensions UNQUALIFIED64Xuxue Feng
1045Ivar D GarufiAustralia2026-07-21Chemel, James L Cpa RENEWAL14Ioni Bowcher
1046Ashley Z MaletAustralia2026-07-28Feiner Bros NEGOTIATION55Stephen Shaw
1047Wickens T BriddickGermany2026-07-23Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1048Octavia Y SergiSpain2026-07-30Morlong Associates PROPOSAL85Stephen Shaw
1049Emily L RoysterJapan2026-07-16Rousseaux, Michael Esq NEGOTIATION9Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro Z InouyeArgentinaElwin Sharvill UNQUALIFIED
Clifford H KolmetzSpainIoni Bowcher NEW
Ivar U MaletJapanStephen Shaw NEW
Jones V ButtArgentinaXuxue Feng RENEWAL
Jennifer P VenereBrazilStephen Shaw QUALIFIED
Izzy O SaylorsIndiaBernardo Dominic QUALIFIED
Jefferson T BologniaBrazilElwin Sharvill NEGOTIATION
Leon F RulapaughJapanIvan Magalhaes NEW
Tony H NestleAustraliaAmy Elsner QUALIFIED
Kadeem H BologniaSpainIoni Bowcher QUALIFIED
Maisha G OldroydJapanAnna Fali NEGOTIATION
Emily B VocelkaCanadaXuxue Feng PROPOSAL
Francesco S MaletArgentinaStephen Shaw QUALIFIED
Ivar S CaldareraRussiaIvan Magalhaes NEGOTIATION
Stacey N BowleyAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois F DoeRussiaOnyama Limba UNQUALIFIED
Emily N InouyeSpainAsiya Javayant UNQUALIFIED
Rodrigues I RutaRussiaAnna Fali NEGOTIATION
Maisha L VocelkaFranceStephen Shaw QUALIFIED
Greenwood B PoquetteJapanIoni Bowcher NEW
Jones N FigeroaArgentinaXuxue Feng NEW
Leon V PerinBrazilBernardo Dominic UNQUALIFIED
David G FigeroaArgentinaIvan Magalhaes NEGOTIATION
Claire H SlusarskiSpainElwin Sharvill NEGOTIATION
Ricardo I RoysterRussiaOnyama Limba QUALIFIED
Deepesh G GillianIndiaBernardo Dominic NEW
Faith W InouyeSpainAnna Fali NEGOTIATION
Jeanfrancois P KuskoCanadaXuxue Feng UNQUALIFIED
Nicolas M SaylorsCanadaBernardo Dominic NEGOTIATION
Silvio B DoeJapanAsiya Javayant NEGOTIATION
Francesco V ChuiGermanyAmy Elsner NEW
Rodrigues E DarakjyFranceElwin Sharvill NEW
Wickens T DarakjyIndiaAsiya Javayant NEGOTIATION
Arvin B FerenczJapanIoni Bowcher NEW
Misaki K ButtArgentinaOnyama Limba UNQUALIFIED
Octavia S FigeroaSpainIoni Bowcher RENEWAL
Aika Y PaprockiFranceStephen Shaw NEW
Smith Y CaldareraUnited KingdomXuxue Feng NEGOTIATION
Clifford C FlosiAustraliaAnna Fali PROPOSAL
Arvin Z OstroskyArgentinaIvan Magalhaes NEGOTIATION
David C DoeUnited KingdomElwin Sharvill NEGOTIATION
Adams R SchemmerBrazilStephen Shaw QUALIFIED
David U MarrierCanadaOnyama Limba NEW
Murillo A InouyeArgentinaBernardo Dominic NEW
Aditya A GarufiAustraliaAmy Elsner RENEWAL
Misaki L ChuiArgentinaAsiya Javayant QUALIFIED
Jeanfrancois C KuskoIndiaXuxue Feng NEW
Mujtaba Z PaprockiCanadaBernardo Dominic UNQUALIFIED
Salvatore Q WaycottAustraliaBernardo Dominic QUALIFIED
Ashley T TollnerAustraliaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Ivar C Bowley
Stacey B Flosi
Greenwood X Kolmetz
Costa E Royster
Johnson A Poquette
Munro K Albares
Octavia F Kolmetz
Kaitlin X Kusko
Jefferson K Tollner
Kadeem Z Kusko
Kaitlin V Nestle
Kaitlin M Slusarski
Leon U Wieser
Munro F Flosi
Wickens Z Doe
Smith U Venere
Francesco O Venere
Wickens B Whobrey
Smith W Maclead
Octavia S Foller
Kadeem E Slusarski
Izzy H Iturbide
Leja B Campain
Rodrigues U Caudy
Julie E Rim
Silvio K Flosi
Maisha J Glick
Ivar E Waycott
Greenwood A Stenseth
Murillo G Saylors
Jefferson M Waycott
Johnson K Doe
Leon N Wieser
Wickens I Malet
Darci W Butt
Tony Q Schemmer
Alejandro L Venere
Greenwood N Stockham
Salvatore V Caldarera
Costa A Whobrey
Murillo L Butt
Mujtaba J Bowley
Francesco Z Waycott
Leon D Gaucho
Nicolas Y Bolognia
Kaitlin Z Inouye
Juan A Waycott
Kaitlin P Chui
Aruna D Campain
Aruna A Wieser
IdCountryDate
1000Australia2026-08-01
1001Italy2026-07-07
1002Italy2026-08-02
1003Italy2026-07-28
1004Germany2026-07-24
1005Russia2026-07-23
1006Canada2026-07-11
1007India2026-07-26
1008France2026-07-28
1009Argentina2026-08-03
1010Italy2026-07-20
1011United Kingdom2026-07-28
1012United Kingdom2026-08-04
1013Russia2026-07-27
1014Canada2026-08-01
1015Argentina2026-07-25
1016Spain2026-08-03
1017Germany2026-07-10
1018Germany2026-07-25
1019Germany2026-07-23
1020Argentina2026-08-04
1021Canada2026-08-03
1022Japan2026-07-09
1023United Kingdom2026-07-29
1024Japan2026-07-28
1025Canada2026-07-16
1026United Kingdom2026-08-03
1027Spain2026-07-06
1028India2026-07-08
1029France2026-08-04
1030Argentina2026-08-01
1031Spain2026-07-18
1032Germany2026-07-30
1033Germany2026-07-31
1034Brazil2026-07-23
1035Canada2026-07-19
1036Brazil2026-07-30
1037Spain2026-08-03
1038United Kingdom2026-07-15
1039India2026-07-15
1040Canada2026-07-28
1041United Kingdom2026-08-02
1042India2026-07-18
1043Italy2026-07-09
1044Italy2026-07-14
1045Argentina2026-07-24
1046Argentina2026-07-27
1047France2026-07-24
1048Australia2026-07-06
1049Italy2026-07-27

On-Demand Data

NameIdCountryDate
Arvin Y Kusko1000United Kingdom2026-07-22
Leja G Venere1001France2026-07-07
Aditya H Bowley1002Brazil2026-07-23
Ashley P Wieser1003United Kingdom2026-08-03
Chavez X Tollner1004Spain2026-08-03
Aruna K Doe1005Argentina2026-07-28
Ashley V Flosi1006Spain2026-07-12
Salvatore N Caldarera1007Argentina2026-07-21
Adams U Chui1008Brazil2026-07-16
Morrow L Stockham1009Australia2026-07-25
Jeanfrancois A Inouye1010Canada2026-07-15
Nicolas H Iturbide1011Germany2026-07-23
Kaitlin P Vocelka1012Russia2026-07-11
Maria R Tollner1013Italy2026-07-07
Antonio D Gaucho1014Germany2026-07-22
Clifford X Slusarski1015Brazil2026-07-18
Clifford A Slusarski1016Canada2026-07-21
Jefferson I Kolmetz1017Japan2026-07-06
Kaitlin T Gaucho1018Brazil2026-07-15
Jennifer H Rim1019United Kingdom2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo D NickaSpainIoni Bowcher NEW
Cody M DilliardCanadaIvan Magalhaes RENEWAL
Sinclair D WaycottBrazilAnna Fali QUALIFIED
Ricardo I OldroydRussiaXuxue Feng NEGOTIATION
Morrow Y CampainIndiaStephen Shaw NEW
Morrow R NestleCanadaAsiya Javayant PROPOSAL
Ashley X SaylorsFranceBernardo Dominic UNQUALIFIED
Juan C CaldareraJapanElwin Sharvill UNQUALIFIED
Johnson Y SaylorsAustraliaAsiya Javayant PROPOSAL
Mujtaba V StockhamAustraliaBernardo Dominic NEW
Leon S OldroydArgentinaAsiya Javayant NEGOTIATION
Kadeem Q DilliardAustraliaAmy Elsner RENEWAL
Salvatore C GauchoSpainXuxue Feng NEW
Jennifer Z RulapaughArgentinaXuxue Feng RENEWAL
Ivar X ButtArgentinaAsiya Javayant QUALIFIED
Deepesh K OstroskyGermanyXuxue Feng RENEWAL
Leja W KuskoJapanAnna Fali PROPOSAL
Mayumi X DarakjyAustraliaBernardo Dominic NEGOTIATION
Sinclair D RutaJapanAmy Elsner NEGOTIATION
Maria G BriddickBrazilAnna Fali UNQUALIFIED
Deepesh E WhobreyRussiaAmy Elsner NEGOTIATION
Ivar P IturbideFranceAsiya Javayant NEGOTIATION
Sinclair G ShinkoItalyIvan Magalhaes QUALIFIED
Jennifer S IturbideFranceAnna Fali NEW
Silvio T WieserArgentinaBernardo Dominic UNQUALIFIED
Kaitlin F NickaAustraliaOnyama Limba PROPOSAL
Francesco D VocelkaArgentinaOnyama Limba QUALIFIED
Nicolas Q PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood E NickaSpainElwin Sharvill UNQUALIFIED
Smith S GauchoRussiaElwin Sharvill QUALIFIED
Sinclair F RoysterRussiaAnna Fali NEW
Cody D MorascaItalyIoni Bowcher NEGOTIATION
Ashley H TollnerJapanAmy Elsner PROPOSAL
Wickens L AlbaresIndiaAmy Elsner NEGOTIATION
Salvatore Q GarufiBrazilAnna Fali QUALIFIED
Adams B MacleadGermanyAsiya Javayant NEGOTIATION
Maisha Z OldroydFranceIoni Bowcher PROPOSAL
Ivar D WhobreyAustraliaIvan Magalhaes UNQUALIFIED
Greenwood O MorascaCanadaIoni Bowcher UNQUALIFIED
Kadeem I DilliardFranceElwin 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>