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
Kadeem H PoquetteGermanyAmy Elsner QUALIFIED
Juan U ButtArgentinaXuxue Feng QUALIFIED
Clifford O BriddickGermanyIvan Magalhaes NEGOTIATION
Johnson W KuskoArgentinaAnna Fali NEW
Leon U GlickItalyIvan Magalhaes UNQUALIFIED
Maria L CaudyFranceAmy Elsner RENEWAL
Julie Q FigeroaFranceStephen Shaw QUALIFIED
Arvin Q FollerIndiaElwin Sharvill QUALIFIED
Misaki E FigeroaIndiaXuxue Feng UNQUALIFIED
Adams Y BowleyCanadaIvan Magalhaes RENEWAL
Arvin O MaletArgentinaAnna Fali RENEWAL
Kadeem I RulapaughGermanyAsiya Javayant QUALIFIED
Maisha P OldroydFranceElwin Sharvill QUALIFIED
Rodrigues U NickaJapanStephen Shaw QUALIFIED
Morrow E MarrierGermanyAmy Elsner UNQUALIFIED
Sinclair H CaudyJapanAmy Elsner PROPOSAL
Jennifer D IturbideItalyAnna Fali RENEWAL
Morrow T ChuiJapanOnyama Limba PROPOSAL
Jennifer H GlickSpainIoni Bowcher PROPOSAL
Costa Y BowleyUnited KingdomAmy Elsner PROPOSAL
Claire U SlusarskiBrazilAnna Fali NEW
Sinclair W KuskoArgentinaBernardo Dominic RENEWAL
Darci D RoysterCanadaElwin Sharvill NEGOTIATION
Jeanfrancois U GillianArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois B FerenczItalyIoni Bowcher NEW
Antonio R FlosiIndiaOnyama Limba UNQUALIFIED
Costa O BowleyFranceStephen Shaw UNQUALIFIED
Clifford V PaprockiAustraliaStephen Shaw RENEWAL
Smith I StensethBrazilAnna Fali PROPOSAL
Kaitlin Z AmigonGermanyAsiya Javayant PROPOSAL
Adams Q AmigonAustraliaElwin Sharvill QUALIFIED
Jefferson Y DilliardRussiaXuxue Feng NEW
Alejandro C WieserIndiaIvan Magalhaes NEW
Aruna C CaldareraFranceOnyama Limba RENEWAL
Emily B GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel S DilliardRussiaOnyama Limba NEW
Ashley W BriddickUnited KingdomAsiya Javayant PROPOSAL
Julie M OldroydSpainXuxue Feng RENEWAL
Claire P ButtGermanyStephen Shaw PROPOSAL
Leja S NestleRussiaXuxue Feng QUALIFIED
Ricardo A IturbideSpainXuxue Feng RENEWAL
Costa M MaletIndiaXuxue Feng QUALIFIED
Murillo M IturbideUnited KingdomBernardo Dominic NEGOTIATION
Wickens Z RimRussiaXuxue Feng UNQUALIFIED
Costa V BriddickBrazilAmy Elsner NEW
Leja Q WieserArgentinaXuxue Feng PROPOSAL
Munro D VocelkaRussiaElwin Sharvill PROPOSAL
Darci X RutaBrazilAsiya Javayant NEGOTIATION
Octavia Q RutaIndiaBernardo Dominic UNQUALIFIED
Tony K CaudyJapanBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie K FlosiArgentinaStephen Shaw RENEWAL
Misaki O StockhamBrazilOnyama Limba QUALIFIED
Darci H GarufiItalyBernardo Dominic PROPOSAL
Sinclair O ShinkoGermanyElwin Sharvill NEGOTIATION
Leja P RulapaughIndiaStephen Shaw NEW
Ricardo L FlosiGermanyBernardo Dominic UNQUALIFIED
Jefferson S TollnerUnited KingdomElwin Sharvill NEGOTIATION
Alejandro N WieserBrazilIvan Magalhaes PROPOSAL
Stacey Y BowleyIndiaStephen Shaw RENEWAL
Izzy Z VenereAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer U SaylorsBrazil2026-08-05Commercial Press UNQUALIFIED85Onyama Limba
1001Ashley D GillianArgentina2026-08-06Chemel, James L Cpa NEW99Ivan Magalhaes
1002Antonio D SaylorsIndia2026-08-24Feltz Printing Service PROPOSAL45Amy Elsner
1003Jefferson V WaycottIndia2026-08-07King, Christopher A Esq QUALIFIED96Stephen Shaw
1004Aika N MorascaJapan2026-08-23Dorl, James J Esq PROPOSAL47Amy Elsner
1005Stacey G MaletGermany2026-08-13Printing Dimensions NEW2Elwin Sharvill
1006Ashley G KolmetzBrazil2026-09-01Chapman, Ross E Esq NEW18Stephen Shaw
1007Jennifer P PerinGermany2026-08-09Feiner Bros NEGOTIATION15Bernardo Dominic
1008Ricardo I WieserGermany2026-08-18Chanay, Jeffrey A Esq UNQUALIFIED35Elwin Sharvill
1009Julie Y GillianItaly2026-08-17Buckley Miller Wright RENEWAL25Elwin Sharvill
1010Costa G MacleadGermany2026-08-17Rousseaux, Michael Esq NEW73Bernardo Dominic
1011Ashley D PoquetteGermany2026-08-13Rangoni Of Florence NEW53Amy Elsner
1012Nicolas V StensethCanada2026-08-03Buckley Miller Wright NEW73Anna Fali
1013Rodrigues Y SaylorsBrazil2026-08-06Chanay, Jeffrey A Esq NEGOTIATION4Anna Fali
1014Claire B PaprockiSpain2026-08-16Chemel, James L Cpa NEGOTIATION64Onyama Limba
1015Isabel S SchemmerIndia2026-08-03Rangoni Of Florence NEW76Bernardo Dominic
1016Izzy V AmigonArgentina2026-08-30Feltz Printing Service PROPOSAL10Asiya Javayant
1017Faith S GarufiRussia2026-08-12Feiner Bros PROPOSAL58Xuxue Feng
1018Tony Q DilliardUnited Kingdom2026-08-17Benton, John B Jr UNQUALIFIED64Ioni Bowcher
1019Salvatore L NestleAustralia2026-08-04Benton, John B Jr NEGOTIATION27Elwin Sharvill
1020Greenwood N RutaCanada2026-08-13Morlong Associates PROPOSAL22Stephen Shaw
1021James H SlusarskiUnited Kingdom2026-08-04Truhlar And Truhlar Attys NEGOTIATION57Xuxue Feng
1022Mayumi T SchemmerBrazil2026-09-01Dorl, James J Esq RENEWAL93Ioni Bowcher
1023Cody N AlbaresFrance2026-08-05Benton, John B Jr NEGOTIATION61Bernardo Dominic
1024Alejandro Y MorascaSpain2026-08-27Morlong Associates NEGOTIATION58Anna Fali
1025Emily M FlosiBrazil2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED73Xuxue Feng
1026Maria D OldroydIndia2026-08-03Rousseaux, Michael Esq NEW71Asiya Javayant
1027Jeanfrancois R MorascaArgentina2026-08-29Benton, John B Jr RENEWAL15Stephen Shaw
1028Kadeem T BologniaIndia2026-08-23Truhlar And Truhlar Attys UNQUALIFIED21Onyama Limba
1029Francesco E GillianAustralia2026-08-09Feltz Printing Service NEGOTIATION60Anna Fali
1030Jones W BologniaItaly2026-08-21King, Christopher A Esq UNQUALIFIED18Stephen Shaw
1031Morrow M AlbaresRussia2026-08-06Rousseaux, Michael Esq QUALIFIED66Elwin Sharvill
1032Darci L InouyeSpain2026-08-04King, Christopher A Esq NEGOTIATION97Bernardo Dominic
1033David Y MacleadIndia2026-08-31Buckley Miller Wright NEW95Stephen Shaw
1034Nicolas I ChuiRussia2026-08-08Morlong Associates QUALIFIED32Ivan Magalhaes
1035Smith A DoeFrance2026-08-10Chapman, Ross E Esq NEW66Elwin Sharvill
1036Stacey O KolmetzCanada2026-08-18Morlong Associates PROPOSAL31Anna Fali
1037Ivar W GauchoCanada2026-08-13Buckley Miller Wright NEGOTIATION73Ivan Magalhaes
1038Octavia U VenereGermany2026-08-11Rangoni Of Florence PROPOSAL98Anna Fali
1039Misaki A StensethRussia2026-08-24Feltz Printing Service QUALIFIED66Ioni Bowcher
1040Juan D SchemmerAustralia2026-08-20Rousseaux, Michael Esq RENEWAL65Xuxue Feng
1041Emily H MacleadItaly2026-08-18Commercial Press UNQUALIFIED26Ivan Magalhaes
1042Juan J InouyeSpain2026-08-27Truhlar And Truhlar Attys NEW83Anna Fali
1043Chavez I StockhamBrazil2026-08-16Chemel, James L Cpa NEW34Asiya Javayant
1044Emily L ButtFrance2026-08-30Morlong Associates NEGOTIATION13Ivan Magalhaes
1045Johnson A KuskoUnited Kingdom2026-08-26King, Christopher A Esq QUALIFIED47Ioni Bowcher
1046Faith C CaldareraSpain2026-08-15Benton, John B Jr QUALIFIED91Stephen Shaw
1047Arvin G KuskoCanada2026-08-07Commercial Press NEGOTIATION24Amy Elsner
1048Tony C TollnerSpain2026-08-25Rangoni Of Florence QUALIFIED33Anna Fali
1049Faith A BologniaSpain2026-08-16Chanay, Jeffrey A Esq NEW60Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Arvin P InouyeJapanAmy Elsner RENEWAL
Octavia U CaldareraBrazilStephen Shaw PROPOSAL
Morrow B MorascaFranceAmy Elsner UNQUALIFIED
Smith S VocelkaAustraliaBernardo Dominic NEW
Leja W GarufiArgentinaOnyama Limba PROPOSAL
Tony M RoysterCanadaOnyama Limba UNQUALIFIED
Ivar U AmigonJapanIvan Magalhaes NEW
Julie C InouyeItalyBernardo Dominic NEW
David B DilliardArgentinaIoni Bowcher RENEWAL
Antonio X PaprockiJapanAnna Fali UNQUALIFIED
Johnson X ChuiArgentinaBernardo Dominic RENEWAL
Jefferson Q CampainBrazilAsiya Javayant NEGOTIATION
Mujtaba F StockhamBrazilOnyama Limba UNQUALIFIED
Greenwood A GillianItalyBernardo Dominic NEGOTIATION
Izzy Z SergiGermanyBernardo Dominic UNQUALIFIED
Kadeem S GillianCanadaStephen Shaw NEW
Arvin C MorascaItalyAsiya Javayant NEGOTIATION
Greenwood W CampainSpainXuxue Feng PROPOSAL
Adams O FerenczJapanIoni Bowcher NEGOTIATION
Aruna Y SergiArgentinaElwin Sharvill QUALIFIED
Stacey R FollerUnited KingdomAmy Elsner NEW
Aditya I PoquetteSpainElwin Sharvill NEW
James M IturbideCanadaAmy Elsner PROPOSAL
Julie B DilliardAustraliaAsiya Javayant RENEWAL
Jennifer U InouyeSpainStephen Shaw NEGOTIATION
Jeanfrancois J BriddickItalyIvan Magalhaes RENEWAL
Jefferson R AlbaresGermanyStephen Shaw QUALIFIED
Adams N GillianBrazilIvan Magalhaes NEW
Nicolas I NestleJapanAmy Elsner PROPOSAL
Leon X StensethCanadaAnna Fali RENEWAL
Julie T PoquetteSpainStephen Shaw NEGOTIATION
Jones E SchemmerJapanAsiya Javayant UNQUALIFIED
Tony U WhobreyFranceAmy Elsner RENEWAL
Ricardo A FerenczRussiaIvan Magalhaes NEW
Claire C CaudyJapanIvan Magalhaes QUALIFIED
Wickens L MorascaItalyElwin Sharvill QUALIFIED
Emily G FlosiGermanyOnyama Limba RENEWAL
Maisha F SlusarskiItalyAnna Fali NEGOTIATION
Wickens G MaletBrazilIoni Bowcher NEGOTIATION
Stacey K BowleyAustraliaAsiya Javayant UNQUALIFIED
Maria Q FollerCanadaIvan Magalhaes NEW
Clifford G StockhamRussiaElwin Sharvill NEGOTIATION
Jennifer P RoysterIndiaXuxue Feng NEGOTIATION
Ashley H OldroydFranceElwin Sharvill PROPOSAL
James S WieserGermanyAsiya Javayant NEGOTIATION
Smith R CaldareraCanadaOnyama Limba UNQUALIFIED
Ricardo U GauchoFranceElwin Sharvill RENEWAL
Aruna X KuskoItalyBernardo Dominic QUALIFIED
Juan I AlbaresArgentinaStephen Shaw NEGOTIATION
Isabel A MarrierIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
James Y Darakjy
Mujtaba H Whobrey
James E Albares
Emily I Venere
Greenwood A Malet
Jones P Bowley
Silvio F Kusko
James Q Royster
Jones I Venere
Munro H Morasca
Silvio R Briddick
Aditya K Flosi
Murillo E Morasca
Nicolas I Dilliard
Antonio A Ruta
Murillo M Tollner
Kaitlin T Kolmetz
Silvio V Schemmer
Stacey Z Saylors
Jefferson J Maclead
Maisha H Caudy
Adams G Poquette
Munro P Kolmetz
Faith F Waycott
Aika F Figeroa
Izzy J Venere
Jeanfrancois T Campain
Octavia H Nestle
Leja W Slusarski
Julie S Inouye
Silvio A Foller
Izzy K Nicka
Johnson B Marrier
Antonio O Poquette
Aruna J Flosi
Francesco Q Perin
Isabel A Whobrey
Cody N Kusko
Maisha X Venere
Ashley K Schemmer
Mayumi H Morasca
Mayumi G Perin
Kaitlin Q Foller
Salvatore W Whobrey
Jefferson D Kolmetz
Mujtaba M Chui
Kadeem G Whobrey
Alejandro I Oldroyd
Arvin M Briddick
Jennifer I Figeroa
IdCountryDate
1000Japan2026-08-11
1001Russia2026-08-18
1002Australia2026-08-12
1003Japan2026-08-17
1004United Kingdom2026-08-04
1005France2026-08-31
1006Russia2026-08-12
1007Brazil2026-08-25
1008Russia2026-08-16
1009Brazil2026-08-19
1010United Kingdom2026-08-03
1011Italy2026-08-03
1012Canada2026-08-10
1013Argentina2026-08-25
1014United Kingdom2026-08-04
1015Brazil2026-08-23
1016India2026-08-30
1017United Kingdom2026-08-07
1018Canada2026-08-12
1019Japan2026-08-14
1020Germany2026-08-12
1021Germany2026-08-21
1022France2026-08-13
1023Japan2026-08-22
1024Japan2026-08-03
1025France2026-08-04
1026Japan2026-08-13
1027Italy2026-08-21
1028United Kingdom2026-08-05
1029Canada2026-08-27
1030Spain2026-08-20
1031Argentina2026-08-23
1032Italy2026-08-29
1033Russia2026-08-24
1034Brazil2026-08-31
1035Italy2026-08-23
1036Russia2026-08-11
1037United Kingdom2026-08-24
1038Argentina2026-08-26
1039Germany2026-08-22
1040Spain2026-08-10
1041Spain2026-09-01
1042United Kingdom2026-08-13
1043Japan2026-08-27
1044United Kingdom2026-08-30
1045Russia2026-08-03
1046Brazil2026-08-19
1047United Kingdom2026-08-04
1048Australia2026-08-07
1049Canada2026-08-20

On-Demand Data

NameIdCountryDate
Jefferson H Bolognia1000Spain2026-08-05
Octavia G Darakjy1001Italy2026-08-22
Jeanfrancois R Garufi1002Japan2026-08-18
Murillo I Morasca1003Japan2026-08-16
Izzy M Waycott1004Russia2026-08-03
Francesco N Marrier1005Russia2026-08-25
Kadeem K Glick1006Australia2026-08-13
Mayumi K Morasca1007Brazil2026-08-08
Sinclair I Darakjy1008Japan2026-08-29
Stacey F Briddick1009France2026-08-10
Aika Y Malet1010Australia2026-08-15
David P Gaucho1011United Kingdom2026-08-15
Kadeem Y Venere1012India2026-08-15
Salvatore O Oldroyd1013Russia2026-08-14
Mayumi O Briddick1014Brazil2026-08-27
Ricardo O Oldroyd1015Japan2026-08-26
Kaitlin X Gillian1016Germany2026-08-14
Jennifer L Caudy1017United Kingdom2026-08-05
Costa R Dilliard1018Germany2026-08-27
Antonio B Nestle1019India2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika C MaletBrazilAmy Elsner NEGOTIATION
Faith C CaldareraIndiaBernardo Dominic NEW
Faith R AlbaresRussiaAmy Elsner UNQUALIFIED
Aruna T TollnerItalyIvan Magalhaes NEW
Cody A FlosiJapanAmy Elsner PROPOSAL
Costa G CaldareraIndiaStephen Shaw QUALIFIED
Adams T DilliardArgentinaAmy Elsner NEGOTIATION
Faith V DarakjyUnited KingdomAmy Elsner NEW
Emily D MacleadAustraliaAsiya Javayant NEGOTIATION
Mayumi U SlusarskiIndiaStephen Shaw QUALIFIED
Rodrigues Q GillianIndiaBernardo Dominic QUALIFIED
Munro S GillianUnited KingdomIvan Magalhaes NEGOTIATION
Adams T SergiItalyElwin Sharvill NEGOTIATION
Ashley W NickaIndiaBernardo Dominic NEGOTIATION
Rodrigues H PerinRussiaIoni Bowcher PROPOSAL
Greenwood V ChuiUnited KingdomIvan Magalhaes QUALIFIED
Jennifer R SaylorsArgentinaXuxue Feng UNQUALIFIED
Jefferson W WhobreyCanadaStephen Shaw RENEWAL
Aika F GillianFranceBernardo Dominic RENEWAL
Nicolas V SergiBrazilAsiya Javayant UNQUALIFIED
Misaki Z KuskoSpainAsiya Javayant QUALIFIED
Cody B OldroydJapanBernardo Dominic RENEWAL
Murillo A KolmetzBrazilIoni Bowcher NEW
Faith J BowleyCanadaOnyama Limba RENEWAL
Mujtaba D DilliardCanadaOnyama Limba NEW
Silvio Y BriddickAustraliaAnna Fali PROPOSAL
Costa V DoeSpainStephen Shaw QUALIFIED
Nicolas Q AmigonRussiaOnyama Limba RENEWAL
Nicolas H GlickIndiaAsiya Javayant PROPOSAL
Mayumi W VenereRussiaStephen Shaw RENEWAL
Smith M MaletAustraliaStephen Shaw PROPOSAL
Chavez N SergiSpainBernardo Dominic NEGOTIATION
Ivar T CaldareraRussiaOnyama Limba RENEWAL
Aika N VocelkaArgentinaIvan Magalhaes NEGOTIATION
Mayumi X WhobreyAustraliaIvan Magalhaes NEW
Deepesh N NickaFranceIvan Magalhaes PROPOSAL
Murillo M KolmetzItalyIvan Magalhaes NEGOTIATION
Claire U PerinUnited KingdomStephen Shaw NEGOTIATION
Clifford U CampainBrazilXuxue Feng NEW
Silvio Q OstroskyCanadaAnna Fali 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>