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
Maria J FerenczGermanyAnna Fali NEGOTIATION
Mujtaba B KolmetzSpainAsiya Javayant NEGOTIATION
Silvio E BowleyItalyAmy Elsner QUALIFIED
David H KuskoCanadaIvan Magalhaes NEGOTIATION
Johnson B MaletJapanBernardo Dominic UNQUALIFIED
Faith J RimFranceAmy Elsner UNQUALIFIED
Claire X CampainFranceAsiya Javayant UNQUALIFIED
Juan S ShinkoRussiaElwin Sharvill UNQUALIFIED
Julie Y BowleyBrazilIvan Magalhaes QUALIFIED
Jefferson J TollnerIndiaAsiya Javayant PROPOSAL
Jennifer R DilliardArgentinaIoni Bowcher QUALIFIED
Izzy K OstroskyUnited KingdomAnna Fali RENEWAL
Chavez R WaycottUnited KingdomElwin Sharvill QUALIFIED
Ivar N VocelkaGermanyOnyama Limba UNQUALIFIED
Juan C RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Aruna H MaletAustraliaStephen Shaw UNQUALIFIED
Kaitlin F SchemmerItalyStephen Shaw NEGOTIATION
Aruna P MaletAustraliaStephen Shaw NEGOTIATION
Emily E SchemmerIndiaIoni Bowcher NEW
Claire K VenereRussiaBernardo Dominic NEGOTIATION
Smith N StensethBrazilAsiya Javayant NEW
Aruna T WaycottJapanAsiya Javayant UNQUALIFIED
Izzy Z PaprockiBrazilAnna Fali RENEWAL
Jennifer H VocelkaIndiaIvan Magalhaes RENEWAL
Smith M CaudyUnited KingdomAmy Elsner RENEWAL
Kaitlin P ChuiUnited KingdomIvan Magalhaes NEW
Isabel K CaldareraArgentinaXuxue Feng NEW
Cody R AlbaresFranceAnna Fali NEGOTIATION
Clifford M CampainIndiaElwin Sharvill PROPOSAL
Tony C GillianBrazilIoni Bowcher PROPOSAL
Smith P InouyeAustraliaStephen Shaw PROPOSAL
Kaitlin Y OstroskyItalyStephen Shaw UNQUALIFIED
Nicolas V DarakjyFranceIvan Magalhaes NEGOTIATION
Silvio L KolmetzUnited KingdomXuxue Feng PROPOSAL
Morrow E IturbideBrazilOnyama Limba UNQUALIFIED
Silvio T WaycottBrazilIoni Bowcher NEW
Clifford Y IturbideSpainIvan Magalhaes QUALIFIED
Kadeem F MacleadFranceIvan Magalhaes RENEWAL
Mayumi Z PerinIndiaStephen Shaw UNQUALIFIED
Sinclair A PoquetteBrazilIoni Bowcher NEGOTIATION
Alejandro S MarrierBrazilElwin Sharvill RENEWAL
Jefferson I FigeroaAustraliaAnna Fali RENEWAL
Maisha A StensethFranceBernardo Dominic QUALIFIED
Julie B FerenczArgentinaOnyama Limba QUALIFIED
Munro T SchemmerAustraliaXuxue Feng UNQUALIFIED
Smith O MarrierArgentinaXuxue Feng RENEWAL
Darci J SchemmerIndiaIoni Bowcher UNQUALIFIED
Ivar A ShinkoAustraliaAsiya Javayant RENEWAL
Leon T RimUnited KingdomStephen Shaw PROPOSAL
Maria F CampainJapanBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy H StockhamCanadaXuxue Feng RENEWAL
Rodrigues L VocelkaUnited KingdomAmy Elsner RENEWAL
Tony I BowleyUnited KingdomOnyama Limba PROPOSAL
Izzy L FlosiBrazilOnyama Limba NEGOTIATION
Cody J StensethBrazilIvan Magalhaes NEGOTIATION
Silvio L NickaBrazilBernardo Dominic NEGOTIATION
Salvatore S StensethUnited KingdomAsiya Javayant QUALIFIED
Antonio W SchemmerFranceIoni Bowcher NEW
Clifford L WhobreyJapanElwin Sharvill QUALIFIED
Maisha P SergiUnited KingdomAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley K MorascaCanada2025-06-01Rangoni Of Florence PROPOSAL58Amy Elsner
1001Isabel Y OldroydArgentina2025-06-05Benton, John B Jr RENEWAL67Anna Fali
1002Munro Y PaprockiAustralia2025-06-08King, Christopher A Esq RENEWAL60Asiya Javayant
1003Francesco U BologniaIndia2025-05-20Chanay, Jeffrey A Esq NEW75Amy Elsner
1004Salvatore M FerenczArgentina2025-06-13Chapman, Ross E Esq RENEWAL95Onyama Limba
1005Leja D StockhamBrazil2025-06-02Dorl, James J Esq QUALIFIED24Onyama Limba
1006Ashley K MacleadBrazil2025-06-06Dorl, James J Esq NEGOTIATION36Stephen Shaw
1007Antonio A BologniaFrance2025-05-27Benton, John B Jr NEGOTIATION66Ivan Magalhaes
1008Mujtaba S WaycottArgentina2025-05-26King, Christopher A Esq PROPOSAL2Stephen Shaw
1009Deepesh B AlbaresBrazil2025-06-15Benton, John B Jr UNQUALIFIED29Ioni Bowcher
1010Deepesh U RimAustralia2025-05-30Morlong Associates QUALIFIED78Stephen Shaw
1011Salvatore T RulapaughFrance2025-06-09Rousseaux, Michael Esq QUALIFIED64Xuxue Feng
1012Isabel B ChuiArgentina2025-05-23Chanay, Jeffrey A Esq UNQUALIFIED23Anna Fali
1013Mujtaba V CaudyIndia2025-06-02Feltz Printing Service UNQUALIFIED18Ivan Magalhaes
1014Emily Z FollerRussia2025-05-29Commercial Press RENEWAL94Bernardo Dominic
1015Nicolas Q CaudyCanada2025-06-12Commercial Press RENEWAL54Bernardo Dominic
1016Maria R DilliardBrazil2025-05-19Commercial Press RENEWAL22Amy Elsner
1017Stacey L OstroskyItaly2025-06-06Morlong Associates NEGOTIATION79Bernardo Dominic
1018Julie C SchemmerJapan2025-05-19Truhlar And Truhlar Attys NEW26Xuxue Feng
1019Adams S MorascaFrance2025-05-31King, Christopher A Esq QUALIFIED27Amy Elsner
1020Morrow O BriddickUnited Kingdom2025-05-20King, Christopher A Esq NEGOTIATION79Anna Fali
1021Alejandro M ButtUnited Kingdom2025-06-05Chanay, Jeffrey A Esq NEW31Asiya Javayant
1022Mujtaba K CaldareraGermany2025-05-24Morlong Associates PROPOSAL53Amy Elsner
1023Octavia D PaprockiBrazil2025-05-22Benton, John B Jr QUALIFIED61Stephen Shaw
1024Nicolas X VenereItaly2025-06-14Commercial Press NEW66Xuxue Feng
1025Claire T CaldareraFrance2025-06-09King, Christopher A Esq RENEWAL75Ivan Magalhaes
1026Cody W InouyeFrance2025-06-05Chemel, James L Cpa NEGOTIATION16Asiya Javayant
1027Maria K InouyeJapan2025-05-23Feiner Bros NEW87Anna Fali
1028Kadeem J RimGermany2025-06-12Rangoni Of Florence PROPOSAL77Xuxue Feng
1029Francesco G NestleBrazil2025-06-07Chemel, James L Cpa NEGOTIATION39Anna Fali
1030Antonio D KolmetzArgentina2025-05-31Buckley Miller Wright NEGOTIATION98Elwin Sharvill
1031Murillo Q FollerUnited Kingdom2025-05-17Morlong Associates NEW14Ivan Magalhaes
1032Octavia H GlickAustralia2025-06-08Chapman, Ross E Esq QUALIFIED99Ioni Bowcher
1033Claire K MacleadUnited Kingdom2025-05-29Rousseaux, Michael Esq NEW94Onyama Limba
1034Ivar Y VocelkaGermany2025-06-06Printing Dimensions UNQUALIFIED43Anna Fali
1035Leon Z CaldareraAustralia2025-05-17King, Christopher A Esq UNQUALIFIED37Onyama Limba
1036Arvin E VocelkaCanada2025-05-30Dorl, James J Esq NEGOTIATION13Asiya Javayant
1037Juan J MaletRussia2025-05-26Feiner Bros NEGOTIATION4Asiya Javayant
1038Cody H OldroydSpain2025-06-14Commercial Press QUALIFIED64Bernardo Dominic
1039Morrow V GauchoIndia2025-06-03Rangoni Of Florence UNQUALIFIED68Onyama Limba
1040Jones L BologniaItaly2025-06-09Commercial Press QUALIFIED13Stephen Shaw
1041Kadeem Q FlosiBrazil2025-05-26Printing Dimensions UNQUALIFIED37Onyama Limba
1042Ivar P GarufiSpain2025-06-03Chanay, Jeffrey A Esq PROPOSAL25Xuxue Feng
1043Jefferson H FlosiItaly2025-05-28Rangoni Of Florence UNQUALIFIED59Bernardo Dominic
1044Mayumi G SchemmerUnited Kingdom2025-05-22Feltz Printing Service QUALIFIED90Anna Fali
1045Darci H GauchoSpain2025-06-05Commercial Press NEW18Ivan Magalhaes
1046Sinclair T StockhamArgentina2025-05-26Chanay, Jeffrey A Esq RENEWAL95Stephen Shaw
1047Silvio J ChuiGermany2025-06-13Benton, John B Jr UNQUALIFIED24Bernardo Dominic
1048Stacey P SaylorsSpain2025-05-27Chemel, James L Cpa QUALIFIED68Onyama Limba
1049Jennifer O FigeroaCanada2025-05-17Feltz Printing Service UNQUALIFIED63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois W PaprockiUnited KingdomStephen Shaw QUALIFIED
Kadeem S PerinGermanyOnyama Limba NEGOTIATION
Costa A CaudyItalyAmy Elsner NEGOTIATION
Costa Y GauchoArgentinaStephen Shaw PROPOSAL
Adams D MacleadCanadaAmy Elsner RENEWAL
Leon M GarufiIndiaBernardo Dominic RENEWAL
Leon S AmigonSpainOnyama Limba NEGOTIATION
James S KolmetzCanadaAnna Fali RENEWAL
Octavia I CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Francesco S PoquetteCanadaIvan Magalhaes NEGOTIATION
Kadeem X PerinGermanyIvan Magalhaes NEGOTIATION
James P FlosiArgentinaAsiya Javayant RENEWAL
Darci Q MorascaUnited KingdomElwin Sharvill RENEWAL
Ricardo Q DarakjyJapanIoni Bowcher UNQUALIFIED
Maisha C SergiGermanyAnna Fali QUALIFIED
Stacey A BriddickItalyOnyama Limba UNQUALIFIED
Tony S MaletRussiaAnna Fali UNQUALIFIED
Claire L KolmetzCanadaXuxue Feng PROPOSAL
Ricardo J WieserRussiaIoni Bowcher UNQUALIFIED
Nicolas O WieserIndiaIoni Bowcher NEGOTIATION
Salvatore O ShinkoRussiaBernardo Dominic UNQUALIFIED
Faith R NestleBrazilIvan Magalhaes RENEWAL
Mayumi H MaletCanadaIoni Bowcher NEGOTIATION
Munro V DarakjyArgentinaElwin Sharvill RENEWAL
Aika Z PoquetteSpainElwin Sharvill QUALIFIED
Jennifer P NestleAustraliaOnyama Limba NEGOTIATION
Greenwood D RoysterIndiaIvan Magalhaes NEGOTIATION
Emily X GillianArgentinaBernardo Dominic QUALIFIED
Morrow N RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson E RutaIndiaXuxue Feng UNQUALIFIED
Francesco Q RulapaughCanadaAnna Fali UNQUALIFIED
Leon A GauchoFranceStephen Shaw QUALIFIED
Salvatore T DilliardItalyAsiya Javayant RENEWAL
Leja M SergiBrazilElwin Sharvill RENEWAL
Munro Y RimBrazilAnna Fali NEGOTIATION
Jones B RimFranceAnna Fali NEGOTIATION
Alejandro C GlickArgentinaAnna Fali UNQUALIFIED
Ivar E ChuiRussiaOnyama Limba QUALIFIED
Deepesh O SchemmerIndiaIoni Bowcher NEGOTIATION
Juan Z DilliardRussiaOnyama Limba NEW
Morrow F DarakjyFranceXuxue Feng NEW
Darci F RimUnited KingdomElwin Sharvill NEGOTIATION
Izzy F DarakjyCanadaElwin Sharvill QUALIFIED
Kaitlin W CampainBrazilXuxue Feng NEW
Leon H InouyeCanadaXuxue Feng QUALIFIED
Jefferson G MorascaItalyOnyama Limba PROPOSAL
Ivar G BriddickSpainElwin Sharvill PROPOSAL
Izzy K RutaFranceAmy Elsner UNQUALIFIED
Julie C SlusarskiGermanyAsiya Javayant RENEWAL
Silvio G BologniaRussiaOnyama Limba RENEWAL
Frozen Columns
Name
Ivar W Schemmer
Leon V Malet
Izzy J Ostrosky
David E Chui
Isabel L Briddick
Kadeem J Poquette
Sinclair T Paprocki
Greenwood J Bolognia
Ricardo A Flosi
Emily H Nestle
James M Amigon
Darci V Gaucho
Adams A Doe
Izzy S Stenseth
Aika S Malet
Alejandro Z Bolognia
Claire B Nestle
Cody N Morasca
Jeanfrancois O Poquette
Murillo V Foller
Faith S Butt
Sinclair I Nicka
Jones F Ruta
Aika E Poquette
Morrow X Marrier
Leon Q Caudy
Silvio E Waycott
Francesco D Doe
Greenwood X Vocelka
Octavia H Rulapaugh
Rodrigues Q Butt
Faith O Flosi
Rodrigues R Iturbide
Julie I Flosi
James S Wieser
Aruna V Marrier
Deepesh E Caudy
Aruna R Figeroa
Isabel Q Figeroa
Salvatore J Amigon
Aruna G Amigon
Emily K Bolognia
Maria E Caldarera
Clifford X Schemmer
David J Gillian
Izzy X Paprocki
Kaitlin X Nicka
Costa X Bowley
Ivar R Bolognia
Leja C Butt
IdCountryDate
1000Argentina2025-05-22
1001Canada2025-05-19
1002Argentina2025-06-03
1003Argentina2025-06-14
1004United Kingdom2025-06-05
1005France2025-05-19
1006Italy2025-05-30
1007Italy2025-05-21
1008Italy2025-06-10
1009Argentina2025-06-09
1010India2025-05-22
1011India2025-06-12
1012Germany2025-05-17
1013France2025-06-08
1014Spain2025-06-11
1015Germany2025-05-22
1016France2025-06-01
1017Spain2025-06-02
1018Italy2025-05-25
1019Argentina2025-06-02
1020Spain2025-05-29
1021Brazil2025-05-31
1022Australia2025-06-15
1023Italy2025-05-26
1024Germany2025-05-18
1025Canada2025-06-10
1026Australia2025-05-20
1027United Kingdom2025-06-12
1028Russia2025-05-25
1029Russia2025-06-02
1030Canada2025-06-14
1031France2025-05-26
1032France2025-05-20
1033Italy2025-05-29
1034Germany2025-06-07
1035Argentina2025-06-04
1036Canada2025-05-17
1037Argentina2025-05-22
1038Spain2025-06-13
1039Australia2025-06-07
1040India2025-05-31
1041Germany2025-06-09
1042Brazil2025-05-18
1043Argentina2025-06-11
1044Germany2025-06-02
1045Spain2025-05-21
1046Brazil2025-05-23
1047France2025-06-08
1048Japan2025-05-27
1049Japan2025-06-10

On-Demand Data

NameIdCountryDate
Emily S Perin1000Germany2025-06-14
Darci I Sergi1001Australia2025-06-10
Aruna M Chui1002Russia2025-05-23
David L Malet1003Brazil2025-06-13
Leja D Wieser1004United Kingdom2025-05-26
Johnson Y Saylors1005Germany2025-05-28
Mujtaba N Shinko1006Canada2025-05-29
Francesco L Malet1007Canada2025-06-08
Juan E Kusko1008Germany2025-06-08
Deepesh N Sergi1009France2025-06-01
Juan R Iturbide1010Argentina2025-06-02
Julie G Maclead1011France2025-05-26
Juan X Caudy1012Spain2025-05-23
Antonio Q Nicka1013Spain2025-06-14
Stacey X Maclead1014Brazil2025-05-18
Ashley R Malet1015Germany2025-06-06
Stacey V Sergi1016Russia2025-06-05
Alejandro Y Marrier1017Argentina2025-06-15
Ashley L Caldarera1018France2025-05-23
Alejandro X Doe1019France2025-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony N FerenczIndiaXuxue Feng UNQUALIFIED
Misaki Z InouyeAustraliaXuxue Feng QUALIFIED
Deepesh U MaletBrazilAmy Elsner UNQUALIFIED
Izzy U OstroskyUnited KingdomIoni Bowcher QUALIFIED
Johnson E WhobreyIndiaOnyama Limba UNQUALIFIED
Jennifer Y RulapaughIndiaIvan Magalhaes PROPOSAL
Nicolas C FigeroaRussiaIvan Magalhaes NEGOTIATION
Wickens L CaldareraCanadaElwin Sharvill NEGOTIATION
Aruna T BologniaFranceOnyama Limba NEGOTIATION
Claire Z WaycottBrazilAnna Fali NEW
James B BologniaUnited KingdomOnyama Limba PROPOSAL
Aruna L FerenczSpainStephen Shaw NEGOTIATION
Octavia E DilliardRussiaAsiya Javayant RENEWAL
Izzy D CaudyGermanyStephen Shaw RENEWAL
Aruna G CampainFranceIvan Magalhaes UNQUALIFIED
Octavia Q MaletArgentinaOnyama Limba NEW
James N AmigonJapanAmy Elsner NEGOTIATION
Wickens C NestleUnited KingdomStephen Shaw QUALIFIED
Jefferson Z FollerIndiaIoni Bowcher QUALIFIED
Tony C MaletJapanElwin Sharvill PROPOSAL
Juan H RutaArgentinaIvan Magalhaes NEGOTIATION
Adams P RutaItalyElwin Sharvill PROPOSAL
Octavia X VenereCanadaIvan Magalhaes UNQUALIFIED
Izzy N CaldareraRussiaOnyama Limba QUALIFIED
Arvin F BowleyItalyBernardo Dominic PROPOSAL
Aditya P OstroskyFranceIvan Magalhaes NEW
Nicolas P VenereJapanElwin Sharvill QUALIFIED
Juan F SergiRussiaIvan Magalhaes NEGOTIATION
Murillo Z PerinAustraliaIoni Bowcher RENEWAL
Francesco J RoysterGermanyIoni Bowcher QUALIFIED
Aditya U CampainAustraliaStephen Shaw QUALIFIED
Julie O BowleyCanadaStephen Shaw RENEWAL
Francesco N CaldareraBrazilAmy Elsner RENEWAL
Aika Y DilliardItalyStephen Shaw QUALIFIED
Wickens Q OstroskyItalyIoni Bowcher NEGOTIATION
Misaki F ButtFranceElwin Sharvill UNQUALIFIED
Johnson P KolmetzJapanXuxue Feng PROPOSAL
Aditya H PaprockiRussiaAnna Fali NEGOTIATION
Misaki I NickaArgentinaAmy Elsner UNQUALIFIED
Antonio J MorascaFranceOnyama Limba QUALIFIED

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