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
Aika Q WhobreyFranceOnyama Limba NEGOTIATION
Ricardo Y ChuiGermanyAnna Fali NEW
Sinclair P OldroydItalyAmy Elsner NEW
Mujtaba P WhobreyAustraliaAsiya Javayant PROPOSAL
Octavia Z PoquetteGermanyAsiya Javayant UNQUALIFIED
Aruna J SaylorsSpainElwin Sharvill UNQUALIFIED
Stacey S SaylorsIndiaAnna Fali PROPOSAL
Leja U GarufiJapanStephen Shaw UNQUALIFIED
Jeanfrancois T AlbaresBrazilBernardo Dominic QUALIFIED
Kaitlin K MorascaJapanBernardo Dominic RENEWAL
Isabel G FerenczSpainIvan Magalhaes UNQUALIFIED
Julie G TollnerRussiaAmy Elsner PROPOSAL
Johnson W SchemmerGermanyElwin Sharvill NEW
Juan O StockhamIndiaStephen Shaw QUALIFIED
Kadeem M CaudyBrazilXuxue Feng RENEWAL
Salvatore I SaylorsRussiaOnyama Limba QUALIFIED
Leja I AmigonSpainAmy Elsner NEW
Deepesh U BowleyBrazilIoni Bowcher NEGOTIATION
Morrow T StensethGermanyIoni Bowcher NEW
Jones B DilliardSpainAmy Elsner NEW
Leon Q OstroskySpainIoni Bowcher UNQUALIFIED
Johnson U SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Claire X VenereAustraliaAsiya Javayant RENEWAL
Darci D SergiCanadaOnyama Limba QUALIFIED
Octavia C InouyeItalyAsiya Javayant NEGOTIATION
Antonio O StockhamUnited KingdomIvan Magalhaes NEW
Aruna V CaldareraGermanyIvan Magalhaes QUALIFIED
Sinclair X SchemmerCanadaStephen Shaw PROPOSAL
Julie P PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Rodrigues N SaylorsSpainElwin Sharvill NEGOTIATION
Munro J VocelkaUnited KingdomAnna Fali NEGOTIATION
Silvio M FlosiSpainBernardo Dominic NEGOTIATION
Emily G MacleadIndiaIvan Magalhaes NEGOTIATION
Aditya S ButtBrazilStephen Shaw QUALIFIED
Leja B StensethIndiaAmy Elsner NEW
Munro I RoysterCanadaIoni Bowcher QUALIFIED
Antonio R VenereAustraliaAsiya Javayant NEGOTIATION
Misaki Q DilliardRussiaAsiya Javayant NEGOTIATION
Ricardo S StockhamSpainAmy Elsner QUALIFIED
Maria G NickaFranceIvan Magalhaes RENEWAL
Cody M GarufiAustraliaElwin Sharvill NEGOTIATION
Isabel R NestleUnited KingdomBernardo Dominic QUALIFIED
Leon Z MacleadGermanyAsiya Javayant QUALIFIED
Salvatore M AlbaresJapanOnyama Limba NEGOTIATION
Smith M DoeItalyStephen Shaw NEW
Morrow Z SchemmerJapanOnyama Limba RENEWAL
Julie Y MarrierBrazilXuxue Feng UNQUALIFIED
David K InouyeJapanIvan Magalhaes UNQUALIFIED
Tony C FigeroaGermanyBernardo Dominic PROPOSAL
Stacey H VenereGermanyBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues R MaletItalyIoni Bowcher NEGOTIATION
Silvio F KolmetzJapanStephen Shaw NEW
Johnson K AlbaresSpainIoni Bowcher NEGOTIATION
Silvio W ChuiItalyAmy Elsner NEGOTIATION
Octavia U MorascaJapanIvan Magalhaes RENEWAL
Jefferson E NickaGermanyOnyama Limba UNQUALIFIED
Julie S KuskoFranceXuxue Feng PROPOSAL
Arvin G DilliardCanadaStephen Shaw NEW
Salvatore V ChuiArgentinaAnna Fali PROPOSAL
Greenwood T FerenczCanadaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley A FlosiJapan2025-06-07Chapman, Ross E Esq NEGOTIATION86Stephen Shaw
1001Greenwood L SergiUnited Kingdom2025-06-05Feiner Bros NEW66Bernardo Dominic
1002Cody Q SchemmerItaly2025-06-06Chemel, James L Cpa PROPOSAL38Onyama Limba
1003Claire K MarrierFrance2025-06-06Chanay, Jeffrey A Esq UNQUALIFIED26Elwin Sharvill
1004Ashley Z BowleyArgentina2025-05-22Morlong Associates QUALIFIED63Anna Fali
1005Greenwood J CaldareraItaly2025-06-08Buckley Miller Wright UNQUALIFIED64Amy Elsner
1006Silvio H OstroskyArgentina2025-05-24Rousseaux, Michael Esq UNQUALIFIED37Onyama Limba
1007Arvin M AmigonAustralia2025-06-17King, Christopher A Esq NEGOTIATION95Ioni Bowcher
1008Costa Q ChuiRussia2025-05-22Printing Dimensions NEW95Ioni Bowcher
1009Ricardo N MacleadUnited Kingdom2025-06-05Morlong Associates PROPOSAL4Anna Fali
1010Francesco P NickaJapan2025-05-28Morlong Associates QUALIFIED30Onyama Limba
1011Nicolas D RutaBrazil2025-05-27Rousseaux, Michael Esq RENEWAL39Elwin Sharvill
1012Juan O AlbaresUnited Kingdom2025-06-14Chemel, James L Cpa PROPOSAL82Ioni Bowcher
1013Antonio Q CaldareraArgentina2025-06-01Truhlar And Truhlar Attys UNQUALIFIED1Anna Fali
1014Isabel T FigeroaAustralia2025-06-16Dorl, James J Esq QUALIFIED7Ivan Magalhaes
1015James D GlickArgentina2025-06-04Dorl, James J Esq QUALIFIED82Asiya Javayant
1016Nicolas M WaycottCanada2025-05-22Dorl, James J Esq NEW33Ivan Magalhaes
1017Octavia K VocelkaItaly2025-05-21Rangoni Of Florence UNQUALIFIED2Stephen Shaw
1018Francesco I SaylorsUnited Kingdom2025-06-11Buckley Miller Wright NEGOTIATION66Xuxue Feng
1019Darci G StockhamAustralia2025-06-06Commercial Press NEGOTIATION4Elwin Sharvill
1020Antonio Q RimFrance2025-06-05Rangoni Of Florence NEGOTIATION80Xuxue Feng
1021Octavia H GillianItaly2025-05-22Chemel, James L Cpa NEW34Asiya Javayant
1022Adams U NickaItaly2025-05-23Rangoni Of Florence UNQUALIFIED30Amy Elsner
1023David Q DarakjyArgentina2025-05-30Dorl, James J Esq NEW64Asiya Javayant
1024Maisha S BologniaRussia2025-06-12Chemel, James L Cpa NEW59Ivan Magalhaes
1025Juan B PoquetteSpain2025-06-14Truhlar And Truhlar Attys QUALIFIED86Stephen Shaw
1026Alejandro Y CaudyAustralia2025-06-12Benton, John B Jr RENEWAL81Stephen Shaw
1027Misaki W VocelkaCanada2025-06-17Printing Dimensions RENEWAL61Ivan Magalhaes
1028Izzy O KolmetzSpain2025-06-03Rangoni Of Florence NEGOTIATION28Ivan Magalhaes
1029Ashley U DilliardIndia2025-05-20Buckley Miller Wright NEW63Amy Elsner
1030Jennifer X NickaCanada2025-06-04Feiner Bros UNQUALIFIED72Onyama Limba
1031Munro J CaldareraCanada2025-06-07Feltz Printing Service NEGOTIATION14Bernardo Dominic
1032Morrow G PerinUnited Kingdom2025-05-20Rousseaux, Michael Esq NEW10Anna Fali
1033Morrow K OldroydGermany2025-06-09Rousseaux, Michael Esq PROPOSAL87Xuxue Feng
1034Silvio J AlbaresBrazil2025-05-31Morlong Associates RENEWAL14Elwin Sharvill
1035Costa C ShinkoArgentina2025-05-23Morlong Associates RENEWAL19Ivan Magalhaes
1036Arvin D WaycottAustralia2025-05-28Rousseaux, Michael Esq RENEWAL40Anna Fali
1037Juan P IturbideRussia2025-05-27Morlong Associates NEGOTIATION1Bernardo Dominic
1038Chavez K RoysterCanada2025-06-03Rousseaux, Michael Esq UNQUALIFIED21Bernardo Dominic
1039Leja M RutaGermany2025-06-02Printing Dimensions NEW73Ioni Bowcher
1040Darci B GlickJapan2025-05-29Truhlar And Truhlar Attys NEW68Ivan Magalhaes
1041Munro H FigeroaIndia2025-05-30Chanay, Jeffrey A Esq PROPOSAL16Xuxue Feng
1042Arvin Z ButtCanada2025-06-09Rangoni Of Florence QUALIFIED93Bernardo Dominic
1043Julie X BologniaRussia2025-05-29Dorl, James J Esq NEGOTIATION14Asiya Javayant
1044Jennifer L WaycottUnited Kingdom2025-05-24King, Christopher A Esq RENEWAL65Bernardo Dominic
1045Juan O CaudySpain2025-05-24Truhlar And Truhlar Attys QUALIFIED15Amy Elsner
1046Claire A WhobreyFrance2025-06-01Chapman, Ross E Esq NEW46Ivan Magalhaes
1047James I PerinFrance2025-05-26King, Christopher A Esq PROPOSAL27Amy Elsner
1048Maria I CampainArgentina2025-05-24Truhlar And Truhlar Attys UNQUALIFIED53Ivan Magalhaes
1049Maisha H SlusarskiCanada2025-06-01Printing Dimensions RENEWAL67Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria P ButtRussiaAsiya Javayant QUALIFIED
Juan Z NickaJapanAmy Elsner NEW
James D PerinGermanyXuxue Feng UNQUALIFIED
Rodrigues Y ChuiIndiaAnna Fali RENEWAL
Stacey T WieserItalyAnna Fali RENEWAL
Jones O AmigonIndiaStephen Shaw RENEWAL
Ashley Y CampainItalyIoni Bowcher NEGOTIATION
Kaitlin V WieserBrazilAsiya Javayant NEGOTIATION
Maria X RutaCanadaIvan Magalhaes NEW
Aruna C VocelkaCanadaIvan Magalhaes PROPOSAL
Stacey I GillianJapanIoni Bowcher PROPOSAL
Salvatore K WieserJapanAsiya Javayant QUALIFIED
Darci Q DoeCanadaAmy Elsner NEW
Jeanfrancois T BologniaIndiaStephen Shaw UNQUALIFIED
Adams V SlusarskiItalyIvan Magalhaes UNQUALIFIED
Francesco E FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Johnson Z DilliardArgentinaIvan Magalhaes UNQUALIFIED
Jones M SchemmerJapanAsiya Javayant RENEWAL
Ivar B CaudyGermanyAmy Elsner NEGOTIATION
Darci A IturbideUnited KingdomXuxue Feng PROPOSAL
Leja P MorascaGermanyXuxue Feng PROPOSAL
Morrow C SergiJapanAmy Elsner UNQUALIFIED
Izzy J MaletBrazilOnyama Limba NEW
Mujtaba C SlusarskiGermanyAmy Elsner PROPOSAL
Salvatore B GarufiAustraliaOnyama Limba NEW
Mujtaba Y ChuiRussiaBernardo Dominic PROPOSAL
Misaki H RimIndiaAmy Elsner PROPOSAL
Leon S GauchoArgentinaAnna Fali UNQUALIFIED
Jeanfrancois O PerinAustraliaAsiya Javayant NEGOTIATION
Mayumi B FollerAustraliaElwin Sharvill QUALIFIED
Morrow L RulapaughSpainIoni Bowcher PROPOSAL
Izzy V RimIndiaXuxue Feng UNQUALIFIED
Aruna H MaletArgentinaIvan Magalhaes PROPOSAL
Kadeem F FlosiItalyOnyama Limba RENEWAL
Chavez L ShinkoRussiaOnyama Limba UNQUALIFIED
Greenwood X SchemmerCanadaStephen Shaw PROPOSAL
Adams S OstroskyGermanyStephen Shaw QUALIFIED
Sinclair P SaylorsIndiaAmy Elsner QUALIFIED
Claire L FigeroaItalyIvan Magalhaes RENEWAL
Leja N GillianAustraliaElwin Sharvill QUALIFIED
Kadeem A VocelkaItalyXuxue Feng NEGOTIATION
Juan F MorascaGermanyAmy Elsner PROPOSAL
Alejandro S SlusarskiAustraliaStephen Shaw NEW
Alejandro I GauchoAustraliaStephen Shaw NEGOTIATION
Ivar Y SaylorsRussiaAnna Fali QUALIFIED
Nicolas E ShinkoArgentinaIoni Bowcher QUALIFIED
Jennifer Z TollnerAustraliaBernardo Dominic NEW
Jefferson R NickaCanadaIvan Magalhaes NEGOTIATION
Aika B CampainUnited KingdomIoni Bowcher PROPOSAL
Isabel S SchemmerAustraliaAnna Fali QUALIFIED
Frozen Columns
Name
Silvio R Ruta
Aditya Z Caldarera
Antonio M Albares
Morrow L Foller
Deepesh O Figeroa
Tony S Paprocki
Tony T Vocelka
Jones Z Paprocki
Izzy Q Chui
Arvin U Maclead
Rodrigues I Albares
David A Maclead
Clifford F Nestle
Misaki Q Campain
Smith B Rim
Morrow Z Albares
Maria I Ostrosky
Greenwood E Perin
Faith B Poquette
Darci F Malet
Darci G Glick
Costa R Dilliard
Kaitlin H Kusko
Maisha U Figeroa
Maisha N Butt
Munro U Bowley
Isabel Y Darakjy
Leja W Caudy
Julie L Rim
Ricardo Y Ostrosky
Faith I Caudy
Jennifer D Waycott
Francesco V Venere
Antonio N Figeroa
Munro U Shinko
Nicolas O Marrier
Smith U Rim
Clifford D Rulapaugh
Emily B Whobrey
James P Flosi
Tony U Dilliard
Chavez O Campain
Stacey H Iturbide
Juan G Vocelka
Munro C Kolmetz
Isabel W Rulapaugh
Misaki R Flosi
Murillo U Marrier
Ashley R Stockham
Jeanfrancois M Malet
IdCountryDate
1000Brazil2025-05-30
1001Russia2025-06-06
1002Spain2025-06-17
1003Argentina2025-05-25
1004Russia2025-06-07
1005Spain2025-05-25
1006Germany2025-05-25
1007Brazil2025-06-04
1008United Kingdom2025-06-02
1009Australia2025-06-02
1010Italy2025-05-28
1011Brazil2025-05-19
1012Canada2025-06-17
1013France2025-06-10
1014United Kingdom2025-06-10
1015Russia2025-06-05
1016Germany2025-05-31
1017Argentina2025-05-29
1018United Kingdom2025-06-11
1019Spain2025-06-02
1020Argentina2025-06-16
1021Australia2025-05-24
1022Italy2025-05-31
1023France2025-05-21
1024Brazil2025-06-14
1025India2025-05-26
1026United Kingdom2025-05-25
1027Japan2025-05-28
1028Italy2025-05-22
1029Spain2025-06-07
1030France2025-06-05
1031Italy2025-06-06
1032Germany2025-06-14
1033Australia2025-06-17
1034Russia2025-05-24
1035India2025-05-21
1036Germany2025-05-23
1037Canada2025-05-22
1038Japan2025-06-02
1039Argentina2025-05-24
1040India2025-05-21
1041India2025-06-06
1042Brazil2025-05-30
1043Brazil2025-06-02
1044Brazil2025-05-31
1045Argentina2025-06-17
1046Russia2025-06-01
1047United Kingdom2025-05-24
1048Italy2025-06-01
1049Spain2025-05-26

On-Demand Data

NameIdCountryDate
Jeanfrancois F Morasca1000Italy2025-05-24
Murillo O Dilliard1001Canada2025-06-15
Izzy I Perin1002United Kingdom2025-05-20
Claire U Foller1003Brazil2025-06-10
Octavia A Nestle1004Italy2025-05-29
Costa R Saylors1005Argentina2025-05-20
Kadeem M Caudy1006Australia2025-05-24
Kadeem Z Glick1007Spain2025-06-12
Izzy V Caldarera1008Australia2025-05-28
Aika X Darakjy1009Japan2025-05-27
Isabel H Malet1010Australia2025-05-30
James L Shinko1011Germany2025-05-25
Mujtaba S Stockham1012Italy2025-05-31
Emily R Butt1013India2025-06-08
Aditya K Kusko1014Australia2025-06-02
Chavez X Morasca1015Russia2025-05-26
Darci Q Venere1016India2025-06-10
Jefferson K Waycott1017India2025-06-07
Faith T Caudy1018Russia2025-05-22
Cody J Whobrey1019Argentina2025-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar U MacleadBrazilIoni Bowcher NEW
Misaki Y ChuiSpainAmy Elsner UNQUALIFIED
Johnson Q RimSpainAsiya Javayant QUALIFIED
Ricardo I ButtSpainIvan Magalhaes NEW
Salvatore C CampainSpainOnyama Limba QUALIFIED
Smith E CaldareraFranceXuxue Feng NEGOTIATION
Francesco U CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Juan C IturbideFranceIoni Bowcher PROPOSAL
Darci T DilliardJapanStephen Shaw UNQUALIFIED
Claire S MorascaIndiaElwin Sharvill QUALIFIED
Arvin P RoysterSpainBernardo Dominic QUALIFIED
Ashley T CampainBrazilIvan Magalhaes NEGOTIATION
Isabel S BologniaItalyOnyama Limba PROPOSAL
Leon J FlosiUnited KingdomStephen Shaw QUALIFIED
Salvatore K MaletFranceOnyama Limba UNQUALIFIED
Mujtaba Y CampainUnited KingdomIoni Bowcher PROPOSAL
Chavez F DarakjyRussiaAmy Elsner UNQUALIFIED
Silvio S MaletUnited KingdomOnyama Limba UNQUALIFIED
Aditya H TollnerBrazilAnna Fali QUALIFIED
Maria Z RoysterSpainXuxue Feng NEW
Salvatore S BowleyGermanyIoni Bowcher RENEWAL
Morrow Y GarufiArgentinaIvan Magalhaes UNQUALIFIED
Chavez Y KolmetzGermanyAmy Elsner RENEWAL
Leon C ButtFranceAnna Fali RENEWAL
Ricardo S GarufiCanadaAmy Elsner RENEWAL
Ricardo J SaylorsIndiaAsiya Javayant NEGOTIATION
Julie T SchemmerAustraliaStephen Shaw NEGOTIATION
Cody K NickaFranceStephen Shaw RENEWAL
Faith E DoeRussiaBernardo Dominic RENEWAL
Clifford S DoeBrazilElwin Sharvill NEGOTIATION
Francesco U MaletSpainElwin Sharvill PROPOSAL
Misaki Y VocelkaJapanXuxue Feng QUALIFIED
Jeanfrancois Q GlickArgentinaIvan Magalhaes UNQUALIFIED
Aruna B BologniaItalyIoni Bowcher UNQUALIFIED
Emily C MacleadSpainXuxue Feng PROPOSAL
Faith F PerinArgentinaElwin Sharvill QUALIFIED
Tony R StensethCanadaXuxue Feng NEW
Mujtaba U ShinkoIndiaIvan Magalhaes NEGOTIATION
Nicolas I CaldareraArgentinaOnyama Limba NEGOTIATION
Julie W FlosiBrazilBernardo Dominic 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>