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
Jefferson M WhobreyJapanElwin Sharvill UNQUALIFIED
Munro J KolmetzUnited KingdomElwin Sharvill QUALIFIED
Wickens J PoquetteJapanAsiya Javayant UNQUALIFIED
Mayumi H BriddickAustraliaXuxue Feng NEGOTIATION
Mujtaba W TollnerJapanStephen Shaw NEW
Antonio S MaletIndiaIoni Bowcher NEW
Johnson M RutaIndiaAsiya Javayant PROPOSAL
Deepesh F IturbideUnited KingdomStephen Shaw PROPOSAL
Faith I FigeroaFranceElwin Sharvill UNQUALIFIED
Ashley H FollerUnited KingdomAnna Fali UNQUALIFIED
Salvatore U GlickItalyStephen Shaw NEW
Darci T RulapaughRussiaIoni Bowcher QUALIFIED
Ricardo Q CaudyItalyIoni Bowcher PROPOSAL
Ashley L VocelkaItalyOnyama Limba QUALIFIED
Jefferson S PoquetteRussiaIvan Magalhaes PROPOSAL
Salvatore H IturbideRussiaIvan Magalhaes QUALIFIED
Morrow A ChuiBrazilElwin Sharvill QUALIFIED
Aruna B CaudyIndiaXuxue Feng RENEWAL
Maisha S KuskoCanadaIoni Bowcher RENEWAL
Alejandro M MacleadIndiaIoni Bowcher NEW
Isabel E KuskoIndiaStephen Shaw NEW
Tony B ChuiAustraliaXuxue Feng UNQUALIFIED
Misaki R WaycottJapanOnyama Limba QUALIFIED
Clifford V ShinkoGermanyOnyama Limba QUALIFIED
Rodrigues P InouyeAustraliaBernardo Dominic RENEWAL
Morrow N SergiBrazilIoni Bowcher QUALIFIED
Wickens F RimSpainAnna Fali UNQUALIFIED
Kadeem Q DarakjyAustraliaBernardo Dominic RENEWAL
Adams A KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Julie M AlbaresRussiaAnna Fali QUALIFIED
James B SaylorsUnited KingdomStephen Shaw RENEWAL
Leja X RulapaughJapanIoni Bowcher NEW
Aika T MarrierAustraliaXuxue Feng NEGOTIATION
Darci J SergiSpainIvan Magalhaes NEW
Greenwood Q CaldareraFranceOnyama Limba NEW
Johnson E CaldareraCanadaBernardo Dominic NEGOTIATION
Antonio M FerenczGermanyIoni Bowcher NEGOTIATION
Kaitlin J GarufiCanadaElwin Sharvill PROPOSAL
Ivar E FerenczUnited KingdomBernardo Dominic QUALIFIED
Chavez J BologniaGermanyAsiya Javayant RENEWAL
Kadeem N MacleadJapanOnyama Limba QUALIFIED
Aruna U DilliardUnited KingdomStephen Shaw PROPOSAL
Greenwood P ChuiFranceStephen Shaw RENEWAL
Ashley E MorascaBrazilAmy Elsner QUALIFIED
Faith J RoysterCanadaXuxue Feng RENEWAL
Faith X GauchoAustraliaAmy Elsner UNQUALIFIED
Kadeem W VocelkaItalyAnna Fali RENEWAL
Jefferson V PaprockiBrazilAmy Elsner NEW
Wickens U VenereUnited KingdomIoni Bowcher QUALIFIED
Johnson H NestleFranceXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow O OstroskyRussiaXuxue Feng PROPOSAL
Claire M VenereGermanyBernardo Dominic NEGOTIATION
Kadeem V IturbideItalyElwin Sharvill RENEWAL
Tony J WhobreyFranceBernardo Dominic NEGOTIATION
Adams U AlbaresCanadaXuxue Feng NEGOTIATION
Kaitlin Z RoysterJapanIvan Magalhaes PROPOSAL
Antonio C BologniaGermanyIoni Bowcher NEGOTIATION
Julie Q InouyeArgentinaStephen Shaw NEGOTIATION
James K StensethBrazilAnna Fali NEW
Mujtaba L RulapaughRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James H FigeroaArgentina2026-08-09Morlong Associates UNQUALIFIED9Xuxue Feng
1001Mujtaba W WieserRussia2026-07-28Dorl, James J Esq NEGOTIATION80Bernardo Dominic
1002Mayumi J PerinItaly2026-08-15Truhlar And Truhlar Attys UNQUALIFIED24Stephen Shaw
1003Maisha Y GauchoJapan2026-08-15Rangoni Of Florence NEW64Xuxue Feng
1004Claire W GarufiJapan2026-08-21Buckley Miller Wright NEGOTIATION76Xuxue Feng
1005James O GarufiItaly2026-08-06Benton, John B Jr PROPOSAL25Stephen Shaw
1006Jennifer G InouyeRussia2026-08-18Commercial Press NEGOTIATION33Amy Elsner
1007Silvio G SlusarskiItaly2026-08-09Chapman, Ross E Esq UNQUALIFIED28Bernardo Dominic
1008Faith F FollerRussia2026-08-14Commercial Press UNQUALIFIED74Onyama Limba
1009Munro C KolmetzGermany2026-08-11Feiner Bros RENEWAL55Asiya Javayant
1010Greenwood H DoeFrance2026-08-04Printing Dimensions NEGOTIATION38Anna Fali
1011Claire W ShinkoJapan2026-07-30Feiner Bros NEGOTIATION83Anna Fali
1012Munro B SaylorsAustralia2026-08-16Dorl, James J Esq UNQUALIFIED3Amy Elsner
1013Morrow V FerenczGermany2026-08-04Dorl, James J Esq UNQUALIFIED70Asiya Javayant
1014Aruna S GlickArgentina2026-08-07Buckley Miller Wright QUALIFIED62Anna Fali
1015James V BowleyFrance2026-08-01Buckley Miller Wright QUALIFIED1Asiya Javayant
1016David D SlusarskiAustralia2026-08-13Truhlar And Truhlar Attys UNQUALIFIED10Bernardo Dominic
1017David M WaycottSpain2026-07-31Rousseaux, Michael Esq PROPOSAL81Xuxue Feng
1018Ashley H SchemmerIndia2026-08-09Rousseaux, Michael Esq QUALIFIED59Ivan Magalhaes
1019Nicolas E RoysterUnited Kingdom2026-08-12Truhlar And Truhlar Attys UNQUALIFIED19Stephen Shaw
1020Ashley K CaudyRussia2026-08-04Rousseaux, Michael Esq PROPOSAL5Asiya Javayant
1021Smith L SergiArgentina2026-08-16Benton, John B Jr RENEWAL2Onyama Limba
1022Adams Z MaletArgentina2026-07-27Feltz Printing Service UNQUALIFIED67Anna Fali
1023Francesco F GarufiBrazil2026-08-14Printing Dimensions QUALIFIED39Xuxue Feng
1024Costa Z MacleadCanada2026-07-31Rangoni Of Florence RENEWAL68Xuxue Feng
1025Leja K CaudyItaly2026-07-26Commercial Press NEGOTIATION79Bernardo Dominic
1026Greenwood V SergiGermany2026-07-26Rangoni Of Florence NEGOTIATION57Anna Fali
1027Antonio B MarrierGermany2026-08-11Truhlar And Truhlar Attys NEW44Anna Fali
1028Jennifer D AmigonBrazil2026-08-23Feltz Printing Service UNQUALIFIED80Amy Elsner
1029Antonio N VocelkaSpain2026-08-16Truhlar And Truhlar Attys RENEWAL34Ivan Magalhaes
1030Jeanfrancois J SergiItaly2026-08-23Rangoni Of Florence NEGOTIATION88Onyama Limba
1031Sinclair H FlosiArgentina2026-08-19Rousseaux, Michael Esq PROPOSAL48Ioni Bowcher
1032Claire P GauchoItaly2026-08-18Printing Dimensions RENEWAL92Amy Elsner
1033Julie H ButtCanada2026-07-26Chemel, James L Cpa NEGOTIATION90Elwin Sharvill
1034Antonio S FigeroaCanada2026-08-23Rangoni Of Florence NEGOTIATION33Elwin Sharvill
1035Cody J BologniaItaly2026-08-21King, Christopher A Esq QUALIFIED9Onyama Limba
1036Mujtaba C GauchoAustralia2026-08-22Benton, John B Jr QUALIFIED11Asiya Javayant
1037Emily U WieserAustralia2026-08-09Buckley Miller Wright UNQUALIFIED56Xuxue Feng
1038Johnson U ButtCanada2026-08-18Printing Dimensions UNQUALIFIED27Anna Fali
1039Arvin D CaudyCanada2026-08-09Commercial Press RENEWAL74Onyama Limba
1040Misaki N DarakjyIndia2026-07-30Chapman, Ross E Esq UNQUALIFIED76Xuxue Feng
1041Arvin L AlbaresUnited Kingdom2026-07-25Truhlar And Truhlar Attys PROPOSAL12Anna Fali
1042Francesco J BowleyIndia2026-08-09Chemel, James L Cpa UNQUALIFIED17Ivan Magalhaes
1043Antonio F SaylorsCanada2026-08-15Feltz Printing Service PROPOSAL23Elwin Sharvill
1044Leja B CaudyBrazil2026-08-17Feiner Bros PROPOSAL14Stephen Shaw
1045Chavez X StensethGermany2026-08-08Chapman, Ross E Esq NEGOTIATION33Ivan Magalhaes
1046Ricardo J WieserCanada2026-08-20Rousseaux, Michael Esq UNQUALIFIED5Bernardo Dominic
1047Johnson D MaletIndia2026-07-31Feltz Printing Service QUALIFIED12Xuxue Feng
1048Wickens A RutaBrazil2026-07-31Chemel, James L Cpa NEW86Asiya Javayant
1049Tony U StensethAustralia2026-08-04Feltz Printing Service PROPOSAL2Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maisha G NickaBrazilAsiya Javayant NEGOTIATION
James G IturbideCanadaOnyama Limba NEW
Deepesh L OstroskyItalyOnyama Limba RENEWAL
Jeanfrancois Q CaldareraBrazilXuxue Feng NEGOTIATION
Claire I PerinRussiaBernardo Dominic NEGOTIATION
Chavez W CaudyUnited KingdomIoni Bowcher RENEWAL
Claire J MorascaFranceBernardo Dominic UNQUALIFIED
Maria N AmigonSpainAnna Fali NEW
Kaitlin T WaycottUnited KingdomAsiya Javayant NEGOTIATION
Greenwood A PaprockiFranceStephen Shaw NEGOTIATION
Tony P RulapaughJapanOnyama Limba NEW
Aditya I NickaItalyStephen Shaw RENEWAL
Maria T FollerItalyIoni Bowcher NEW
Stacey G WhobreyRussiaIvan Magalhaes RENEWAL
James Z RulapaughItalyBernardo Dominic NEW
Jones G VocelkaArgentinaAnna Fali QUALIFIED
Juan W StensethItalyElwin Sharvill NEGOTIATION
Costa R RimSpainXuxue Feng QUALIFIED
Deepesh N RulapaughBrazilIvan Magalhaes NEGOTIATION
Greenwood Y OstroskyItalyAsiya Javayant QUALIFIED
Silvio F CaudyRussiaAmy Elsner RENEWAL
Murillo V MorascaBrazilXuxue Feng QUALIFIED
Silvio B DarakjyAustraliaIoni Bowcher PROPOSAL
Misaki M WhobreyArgentinaIoni Bowcher NEGOTIATION
James X ButtAustraliaXuxue Feng NEGOTIATION
David F KolmetzAustraliaIvan Magalhaes QUALIFIED
Adams M ChuiCanadaAnna Fali NEW
Jefferson T CaldareraCanadaIoni Bowcher PROPOSAL
Julie E BriddickJapanAnna Fali UNQUALIFIED
Jones R TollnerArgentinaIvan Magalhaes PROPOSAL
Kaitlin R FigeroaBrazilXuxue Feng QUALIFIED
Faith E WieserRussiaIvan Magalhaes NEW
Aruna P RimFranceIvan Magalhaes RENEWAL
Kaitlin K MarrierCanadaAmy Elsner QUALIFIED
Ivar W WhobreySpainAmy Elsner PROPOSAL
Leja Q MorascaRussiaXuxue Feng PROPOSAL
Kadeem P RutaSpainXuxue Feng QUALIFIED
Kadeem Q FigeroaItalyElwin Sharvill NEGOTIATION
Jeanfrancois B MaletArgentinaIoni Bowcher PROPOSAL
David I SchemmerRussiaBernardo Dominic QUALIFIED
Arvin D BowleyRussiaAsiya Javayant NEGOTIATION
James G StensethRussiaAsiya Javayant RENEWAL
Kaitlin D TollnerJapanAsiya Javayant QUALIFIED
Antonio W FlosiCanadaIoni Bowcher NEW
Aruna A RoysterItalyIvan Magalhaes NEGOTIATION
Emily M MorascaBrazilBernardo Dominic NEW
Kadeem V InouyeSpainIoni Bowcher RENEWAL
Julie D VocelkaBrazilAmy Elsner RENEWAL
Kaitlin R AlbaresIndiaIvan Magalhaes UNQUALIFIED
James V PerinSpainAnna Fali NEW
Frozen Columns
Name
David M Briddick
Julie S Perin
Isabel P Ostrosky
Ivar L Kolmetz
Chavez E Maclead
Cody T Shinko
Francesco A Stenseth
David T Flosi
Mujtaba P Garufi
Antonio M Foller
Juan Z Malet
Chavez F Kusko
Cody D Gaucho
Deepesh A Shinko
Mayumi D Caldarera
James U Gillian
Leja N Ferencz
Ricardo E Kolmetz
Leja E Schemmer
Antonio V Perin
Ashley O Slusarski
Aika D Shinko
Kadeem Z Doe
Ashley N Campain
Juan Z Gillian
Leja O Ferencz
Jefferson K Royster
Arvin J Schemmer
Juan P Inouye
Rodrigues D Perin
James Q Darakjy
Emily H Stockham
Leja I Bowley
Costa L Ostrosky
Cody T Nicka
Ivar A Malet
Maria W Malet
Cody I Shinko
Izzy D Stenseth
Johnson V Ruta
Antonio G Dilliard
Wickens P Briddick
Ricardo W Caudy
Maisha N Briddick
David B Inouye
Juan P Kolmetz
Ivar M Kolmetz
Adams J Ostrosky
Kaitlin J Foller
James B Flosi
IdCountryDate
1000Italy2026-08-04
1001Italy2026-08-04
1002France2026-08-07
1003Italy2026-08-10
1004Canada2026-07-29
1005Japan2026-08-15
1006Japan2026-08-20
1007United Kingdom2026-08-03
1008Russia2026-07-28
1009United Kingdom2026-07-27
1010Italy2026-08-15
1011Argentina2026-08-14
1012Italy2026-08-06
1013Russia2026-08-17
1014Spain2026-08-08
1015Australia2026-08-05
1016Brazil2026-08-17
1017Canada2026-07-30
1018Spain2026-08-09
1019Japan2026-07-30
1020Russia2026-08-16
1021Russia2026-07-29
1022Argentina2026-08-14
1023Canada2026-08-05
1024Italy2026-08-22
1025Argentina2026-07-29
1026Spain2026-07-27
1027Japan2026-07-28
1028Russia2026-07-25
1029Germany2026-08-11
1030India2026-07-30
1031Russia2026-07-25
1032Spain2026-08-07
1033France2026-08-15
1034Japan2026-08-10
1035United Kingdom2026-08-18
1036Australia2026-08-05
1037Spain2026-08-19
1038Canada2026-08-14
1039Australia2026-08-20
1040Russia2026-08-20
1041Canada2026-08-16
1042United Kingdom2026-08-12
1043France2026-08-18
1044Germany2026-07-28
1045United Kingdom2026-07-31
1046Canada2026-08-13
1047Italy2026-08-16
1048Italy2026-07-30
1049Japan2026-08-17

On-Demand Data

NameIdCountryDate
Misaki P Gaucho1000Canada2026-08-14
Antonio K Oldroyd1001United Kingdom2026-07-29
Antonio P Rulapaugh1002Argentina2026-07-29
Faith N Glick1003France2026-07-30
Faith A Darakjy1004Argentina2026-07-25
Izzy R Shinko1005Japan2026-08-20
Izzy J Morasca1006Australia2026-08-19
Jeanfrancois B Kusko1007Japan2026-08-05
Antonio D Poquette1008Argentina2026-07-28
Antonio C Oldroyd1009Spain2026-08-13
Emily H Garufi1010India2026-08-06
Jennifer L Shinko1011United Kingdom2026-08-12
Jeanfrancois U Briddick1012Canada2026-07-28
Costa A Doe1013Italy2026-08-06
Julie T Chui1014United Kingdom2026-07-31
Aika L Darakjy1015Australia2026-08-01
Kadeem B Ferencz1016Australia2026-08-04
Greenwood T Malet1017India2026-07-26
Kadeem G Iturbide1018Spain2026-08-13
Cody X Caudy1019India2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro I NestleSpainAmy Elsner UNQUALIFIED
Arvin S WhobreyItalyBernardo Dominic QUALIFIED
Juan L StensethAustraliaAnna Fali QUALIFIED
Izzy Q SergiFranceStephen Shaw PROPOSAL
Julie P CaudyArgentinaAsiya Javayant NEGOTIATION
Jefferson S SergiArgentinaAmy Elsner RENEWAL
Ivar E RimUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues D PerinJapanElwin Sharvill UNQUALIFIED
Arvin L PerinIndiaAsiya Javayant RENEWAL
Jones R StockhamGermanyAsiya Javayant QUALIFIED
Alejandro S SaylorsJapanElwin Sharvill UNQUALIFIED
Adams C GillianCanadaIoni Bowcher NEGOTIATION
Emily M SlusarskiIndiaElwin Sharvill RENEWAL
Jefferson O PerinItalyElwin Sharvill QUALIFIED
Jeanfrancois Q BologniaGermanyOnyama Limba UNQUALIFIED
Aditya R MacleadArgentinaAmy Elsner NEGOTIATION
Sinclair J RimFranceStephen Shaw UNQUALIFIED
Clifford T AlbaresUnited KingdomOnyama Limba RENEWAL
Isabel N VocelkaSpainAsiya Javayant NEW
Jennifer K WieserJapanIvan Magalhaes UNQUALIFIED
Jones E FigeroaBrazilBernardo Dominic QUALIFIED
Johnson Z GauchoAustraliaAnna Fali RENEWAL
Silvio N FerenczBrazilStephen Shaw NEW
Izzy O VenereGermanyIvan Magalhaes NEGOTIATION
David R PerinGermanyIoni Bowcher NEW
Leon W FigeroaUnited KingdomAsiya Javayant NEW
Mujtaba T TollnerBrazilBernardo Dominic RENEWAL
Aditya C CampainSpainAnna Fali NEW
Kaitlin H NestleItalyElwin Sharvill NEGOTIATION
Nicolas Z InouyeGermanyElwin Sharvill NEGOTIATION
Nicolas G StockhamUnited KingdomAmy Elsner RENEWAL
Munro M RulapaughCanadaIoni Bowcher NEW
Darci I VenereIndiaXuxue Feng NEW
Aditya Y MaletBrazilAmy Elsner QUALIFIED
Rodrigues Y AlbaresFranceAsiya Javayant NEGOTIATION
Leja I FollerCanadaAsiya Javayant PROPOSAL
Nicolas Y KolmetzArgentinaStephen Shaw NEW
Ashley A RimArgentinaAmy Elsner UNQUALIFIED
Mayumi S MorascaFranceIvan Magalhaes QUALIFIED
Jones O AmigonSpainAsiya Javayant 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>