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
Darci N MorascaJapanBernardo Dominic RENEWAL
Rodrigues O ShinkoBrazilElwin Sharvill UNQUALIFIED
Tony J DarakjyUnited KingdomAnna Fali NEGOTIATION
Chavez S ButtJapanStephen Shaw PROPOSAL
Emily N SchemmerBrazilElwin Sharvill RENEWAL
James Z NestleJapanIvan Magalhaes QUALIFIED
Aruna N MaletCanadaIvan Magalhaes RENEWAL
Emily P BologniaRussiaAnna Fali NEW
Mujtaba O BowleyCanadaAnna Fali QUALIFIED
Ricardo C VenereItalyElwin Sharvill NEW
Kadeem V MarrierSpainBernardo Dominic NEGOTIATION
Ivar H WaycottUnited KingdomAsiya Javayant NEGOTIATION
Julie W AlbaresBrazilBernardo Dominic NEGOTIATION
Costa F RoysterGermanyXuxue Feng NEGOTIATION
Morrow R PoquetteUnited KingdomAmy Elsner PROPOSAL
Mayumi A IturbideUnited KingdomAsiya Javayant NEGOTIATION
Morrow F WieserCanadaIoni Bowcher NEW
Ashley T RulapaughIndiaOnyama Limba NEGOTIATION
Rodrigues I DilliardArgentinaAsiya Javayant PROPOSAL
Izzy Q GlickUnited KingdomIvan Magalhaes QUALIFIED
Misaki N PaprockiFranceBernardo Dominic RENEWAL
Ivar G CampainUnited KingdomIoni Bowcher QUALIFIED
Smith J DoeJapanBernardo Dominic QUALIFIED
Mujtaba B KolmetzAustraliaIoni Bowcher UNQUALIFIED
Ashley S SlusarskiGermanyXuxue Feng RENEWAL
Cody G WaycottSpainBernardo Dominic QUALIFIED
Arvin T FerenczArgentinaAmy Elsner UNQUALIFIED
Isabel I RulapaughIndiaIvan Magalhaes NEGOTIATION
Salvatore J PoquetteItalyOnyama Limba PROPOSAL
Murillo E CampainFranceOnyama Limba NEW
Cody W RutaCanadaIoni Bowcher NEW
Aditya L RulapaughRussiaAsiya Javayant UNQUALIFIED
Sinclair H BologniaBrazilAsiya Javayant NEGOTIATION
Munro T BriddickRussiaIoni Bowcher NEGOTIATION
Jeanfrancois Q FerenczJapanStephen Shaw NEW
Maisha N VenereFranceAnna Fali QUALIFIED
Emily G RoysterAustraliaStephen Shaw NEGOTIATION
Kaitlin J BologniaArgentinaAsiya Javayant NEGOTIATION
Adams M MaletItalyAmy Elsner UNQUALIFIED
Ivar I FerenczRussiaAnna Fali UNQUALIFIED
Jeanfrancois A RoysterAustraliaOnyama Limba NEGOTIATION
Adams Z GauchoArgentinaIoni Bowcher RENEWAL
Leja Z PoquetteBrazilAsiya Javayant UNQUALIFIED
Munro V RimBrazilIoni Bowcher PROPOSAL
David Q NestleSpainAmy Elsner NEGOTIATION
Cody S StensethCanadaAmy Elsner PROPOSAL
Kaitlin B ButtFranceBernardo Dominic NEGOTIATION
Johnson A WieserRussiaBernardo Dominic NEW
Darci Y PerinJapanXuxue Feng NEGOTIATION
Claire R VocelkaIndiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon W RutaItalyStephen Shaw RENEWAL
Isabel K SchemmerItalyElwin Sharvill NEGOTIATION
Emily E IturbideBrazilElwin Sharvill UNQUALIFIED
Cody W GauchoCanadaAsiya Javayant PROPOSAL
Arvin H MarrierGermanyBernardo Dominic PROPOSAL
Johnson T ChuiAustraliaIvan Magalhaes QUALIFIED
Kaitlin G InouyeFranceAsiya Javayant UNQUALIFIED
Adams W DoeUnited KingdomXuxue Feng PROPOSAL
Darci N GillianGermanyIvan Magalhaes QUALIFIED
David R GauchoArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson K ChuiItaly2025-06-12Chemel, James L Cpa UNQUALIFIED9Bernardo Dominic
1001Smith R KolmetzAustralia2025-05-22Morlong Associates RENEWAL85Xuxue Feng
1002Ivar C MorascaAustralia2025-05-20Chemel, James L Cpa PROPOSAL49Anna Fali
1003Cody P FollerAustralia2025-06-11Rousseaux, Michael Esq NEGOTIATION99Xuxue Feng
1004Ricardo C VocelkaJapan2025-05-24King, Christopher A Esq QUALIFIED50Amy Elsner
1005Mayumi D CaudyCanada2025-05-18Chanay, Jeffrey A Esq NEGOTIATION27Bernardo Dominic
1006Jennifer S ChuiUnited Kingdom2025-06-14Chanay, Jeffrey A Esq PROPOSAL96Elwin Sharvill
1007Rodrigues I WhobreyCanada2025-06-05Printing Dimensions UNQUALIFIED36Ioni Bowcher
1008Claire Q WaycottJapan2025-06-16King, Christopher A Esq NEW98Elwin Sharvill
1009Smith G AlbaresSpain2025-05-18King, Christopher A Esq QUALIFIED35Amy Elsner
1010Jones F GillianIndia2025-05-25Printing Dimensions UNQUALIFIED62Bernardo Dominic
1011Octavia Q FerenczCanada2025-06-06Commercial Press NEW74Asiya Javayant
1012Octavia H GauchoFrance2025-06-09Morlong Associates NEW63Anna Fali
1013Johnson X PerinRussia2025-06-15Rousseaux, Michael Esq UNQUALIFIED51Bernardo Dominic
1014Maria O IturbideUnited Kingdom2025-05-20Rangoni Of Florence NEW31Elwin Sharvill
1015Maria V WieserArgentina2025-05-26Commercial Press UNQUALIFIED93Ioni Bowcher
1016Murillo E OstroskyFrance2025-06-04Buckley Miller Wright RENEWAL60Onyama Limba
1017Rodrigues D FigeroaAustralia2025-06-04Chanay, Jeffrey A Esq PROPOSAL57Onyama Limba
1018Jeanfrancois Y BowleyCanada2025-06-08Rangoni Of Florence RENEWAL85Anna Fali
1019Claire H FollerJapan2025-05-22Rangoni Of Florence NEW18Onyama Limba
1020Aditya J DoeCanada2025-06-15Chemel, James L Cpa NEGOTIATION4Xuxue Feng
1021Chavez B ShinkoIndia2025-05-20Buckley Miller Wright RENEWAL62Ivan Magalhaes
1022Tony G StockhamBrazil2025-06-13Rousseaux, Michael Esq NEGOTIATION96Xuxue Feng
1023Maria R DarakjyIndia2025-05-24Morlong Associates UNQUALIFIED75Ivan Magalhaes
1024Jefferson Y WieserCanada2025-05-31Feiner Bros NEGOTIATION21Elwin Sharvill
1025Aika J RulapaughGermany2025-06-16Commercial Press NEGOTIATION74Onyama Limba
1026Stacey N RutaCanada2025-06-08Morlong Associates QUALIFIED34Xuxue Feng
1027Octavia J KolmetzFrance2025-06-13Buckley Miller Wright RENEWAL73Onyama Limba
1028Kaitlin K DarakjyFrance2025-05-19Chemel, James L Cpa PROPOSAL68Amy Elsner
1029Maisha B WieserItaly2025-05-24Chapman, Ross E Esq RENEWAL17Ioni Bowcher
1030Wickens U StockhamAustralia2025-06-01Chanay, Jeffrey A Esq UNQUALIFIED43Ivan Magalhaes
1031Sinclair Z MarrierSpain2025-05-28Rangoni Of Florence NEW81Xuxue Feng
1032Johnson X StensethItaly2025-05-27Morlong Associates NEGOTIATION41Elwin Sharvill
1033Greenwood B NestleJapan2025-06-03Chemel, James L Cpa PROPOSAL78Bernardo Dominic
1034Jones T BowleyGermany2025-06-05Truhlar And Truhlar Attys PROPOSAL70Elwin Sharvill
1035Tony O GauchoFrance2025-05-28Feiner Bros RENEWAL92Ivan Magalhaes
1036Jones A SaylorsArgentina2025-05-24Feiner Bros NEGOTIATION76Asiya Javayant
1037Murillo K GillianGermany2025-06-15Feltz Printing Service NEW15Stephen Shaw
1038Deepesh F KuskoBrazil2025-05-25Dorl, James J Esq NEW61Stephen Shaw
1039Maria E MaletCanada2025-06-11Truhlar And Truhlar Attys PROPOSAL31Xuxue Feng
1040Leon W CaldareraUnited Kingdom2025-05-28Chanay, Jeffrey A Esq PROPOSAL35Asiya Javayant
1041Ricardo E SergiRussia2025-06-15King, Christopher A Esq QUALIFIED11Elwin Sharvill
1042Faith F PerinGermany2025-05-22Chemel, James L Cpa QUALIFIED29Ivan Magalhaes
1043Francesco T PerinUnited Kingdom2025-06-12Chapman, Ross E Esq NEW97Onyama Limba
1044Adams H FollerJapan2025-05-23Chanay, Jeffrey A Esq NEW6Asiya Javayant
1045Greenwood O NickaIndia2025-06-05Dorl, James J Esq NEW8Xuxue Feng
1046Rodrigues T CaldareraFrance2025-06-06Printing Dimensions NEW4Amy Elsner
1047Maisha N MorascaFrance2025-06-08Truhlar And Truhlar Attys UNQUALIFIED41Asiya Javayant
1048James T VenereRussia2025-05-31Chanay, Jeffrey A Esq NEGOTIATION1Bernardo Dominic
1049Misaki F StockhamItaly2025-06-14Benton, John B Jr NEW30Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy E RutaAustraliaXuxue Feng QUALIFIED
Deepesh O CaldareraAustraliaAnna Fali NEGOTIATION
Maisha E MaletRussiaAmy Elsner QUALIFIED
Silvio U BowleyCanadaIoni Bowcher PROPOSAL
David T WhobreyRussiaOnyama Limba UNQUALIFIED
Adams A PaprockiAustraliaXuxue Feng UNQUALIFIED
Adams W CampainSpainElwin Sharvill NEW
Tony T WaycottBrazilXuxue Feng QUALIFIED
Alejandro X RulapaughSpainElwin Sharvill PROPOSAL
Greenwood S SlusarskiArgentinaElwin Sharvill QUALIFIED
Jefferson Q MacleadRussiaElwin Sharvill RENEWAL
Ivar P NickaAustraliaBernardo Dominic PROPOSAL
Ricardo D InouyeBrazilXuxue Feng NEGOTIATION
Ashley V DilliardCanadaIvan Magalhaes UNQUALIFIED
Darci C IturbideSpainAmy Elsner UNQUALIFIED
Claire M IturbideCanadaAmy Elsner NEW
David P DoeItalyStephen Shaw QUALIFIED
Sinclair A SchemmerJapanAmy Elsner PROPOSAL
Deepesh S KolmetzSpainAsiya Javayant PROPOSAL
Silvio F FollerIndiaIvan Magalhaes PROPOSAL
Aruna F FerenczBrazilIoni Bowcher NEW
Francesco A SergiAustraliaOnyama Limba NEW
Leja S ChuiUnited KingdomXuxue Feng PROPOSAL
Munro A DoeBrazilStephen Shaw NEGOTIATION
Jefferson T BriddickCanadaElwin Sharvill UNQUALIFIED
Kaitlin E BriddickItalyElwin Sharvill PROPOSAL
Mayumi R PerinJapanAnna Fali RENEWAL
Kaitlin R DoeBrazilAmy Elsner QUALIFIED
David D FollerSpainBernardo Dominic RENEWAL
Francesco W PerinGermanyBernardo Dominic QUALIFIED
Mujtaba I RimItalyIvan Magalhaes QUALIFIED
Stacey H WaycottJapanAmy Elsner NEW
Aika A GillianItalyAsiya Javayant RENEWAL
Juan W PerinUnited KingdomXuxue Feng NEW
Greenwood U PoquetteItalyAnna Fali NEGOTIATION
Deepesh J MorascaUnited KingdomStephen Shaw QUALIFIED
Costa E StensethFranceOnyama Limba NEGOTIATION
David B MorascaRussiaXuxue Feng PROPOSAL
Salvatore A RimSpainIvan Magalhaes NEW
Morrow F CaudyBrazilAsiya Javayant QUALIFIED
Misaki N RulapaughBrazilElwin Sharvill QUALIFIED
Stacey L StensethSpainIoni Bowcher UNQUALIFIED
Cody H TollnerItalyElwin Sharvill NEGOTIATION
Johnson L RimRussiaAnna Fali PROPOSAL
Stacey D RimBrazilElwin Sharvill QUALIFIED
Sinclair O MaletFranceBernardo Dominic NEW
Tony X MarrierIndiaStephen Shaw QUALIFIED
Misaki B VenereIndiaAmy Elsner QUALIFIED
Salvatore F SlusarskiAustraliaIvan Magalhaes NEW
Juan Z MaletIndiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Smith B Rulapaugh
Murillo C Saylors
Alejandro B Malet
Aruna Z Royster
Sinclair D Stenseth
Francesco F Rim
Mujtaba U Paprocki
Aruna H Gaucho
Jones F Albares
Izzy G Garufi
Francesco P Iturbide
Kaitlin B Shinko
Claire Z Oldroyd
Misaki X Gillian
Octavia G Inouye
Maria Y Caldarera
Silvio I Flosi
Claire P Glick
Adams T Chui
Leon N Ostrosky
Jennifer W Caudy
Maisha I Rim
Ivar Z Garufi
Isabel F Flosi
Arvin P Poquette
Deepesh E Amigon
Morrow X Flosi
Alejandro T Dilliard
Aruna Y Wieser
Kadeem B Briddick
Ashley D Stenseth
Antonio A Wieser
Nicolas D Slusarski
Claire L Foller
Aika I Glick
Jennifer U Morasca
Izzy J Ferencz
Sinclair W Wieser
Wickens I Foller
Kaitlin F Marrier
Darci E Briddick
Ricardo A Chui
Alejandro K Butt
Jones K Butt
Maisha E Waycott
Aruna Q Venere
Francesco S Gaucho
Darci T Bolognia
Silvio V Vocelka
Antonio K Ferencz
IdCountryDate
1000France2025-06-05
1001Italy2025-05-22
1002United Kingdom2025-05-23
1003Canada2025-05-18
1004Canada2025-05-26
1005France2025-05-20
1006Russia2025-06-16
1007Argentina2025-06-14
1008Germany2025-05-22
1009Argentina2025-05-25
1010France2025-05-24
1011Canada2025-06-05
1012India2025-05-19
1013Canada2025-05-31
1014Canada2025-06-11
1015Spain2025-06-13
1016Australia2025-05-27
1017France2025-05-27
1018Japan2025-05-25
1019Germany2025-06-16
1020Brazil2025-06-14
1021India2025-06-05
1022France2025-06-09
1023United Kingdom2025-05-26
1024Germany2025-06-07
1025Australia2025-05-30
1026Canada2025-05-21
1027Italy2025-05-28
1028United Kingdom2025-05-23
1029Germany2025-06-08
1030Australia2025-05-30
1031Japan2025-06-16
1032Canada2025-06-04
1033Japan2025-06-06
1034India2025-05-30
1035Germany2025-06-10
1036United Kingdom2025-06-06
1037Italy2025-06-10
1038India2025-05-25
1039Japan2025-05-22
1040Spain2025-05-19
1041Japan2025-06-01
1042India2025-06-03
1043Canada2025-06-12
1044United Kingdom2025-05-19
1045Canada2025-05-30
1046India2025-05-20
1047Canada2025-06-03
1048Canada2025-06-06
1049Italy2025-05-24

On-Demand Data

NameIdCountryDate
Juan Z Kolmetz1000Russia2025-06-03
Jones I Glick1001Canada2025-06-16
Jones O Briddick1002Australia2025-06-09
David X Figeroa1003Japan2025-06-08
Misaki I Flosi1004Germany2025-06-06
Johnson E Doe1005Germany2025-05-22
Octavia B Paprocki1006Canada2025-06-12
David M Iturbide1007Spain2025-06-08
Antonio F Bolognia1008Italy2025-06-01
Octavia X Bolognia1009Japan2025-05-18
Costa C Rulapaugh1010India2025-05-31
Julie B Morasca1011India2025-06-12
Aika L Glick1012Russia2025-06-03
Sinclair Y Campain1013Russia2025-05-24
Jennifer R Caudy1014Brazil2025-06-01
Misaki O Marrier1015Argentina2025-05-18
Greenwood E Gaucho1016Italy2025-05-26
Maisha B Kusko1017Brazil2025-05-22
Ivar V Shinko1018India2025-06-02
Darci T Poquette1019Germany2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James J MaletFranceElwin Sharvill RENEWAL
Emily B VenereArgentinaIvan Magalhaes UNQUALIFIED
Wickens S WhobreyBrazilAsiya Javayant PROPOSAL
Juan O OldroydArgentinaAmy Elsner QUALIFIED
Costa G RoysterBrazilXuxue Feng QUALIFIED
Antonio L WhobreyGermanyElwin Sharvill UNQUALIFIED
Claire T WhobreyBrazilStephen Shaw NEW
Clifford Q BriddickRussiaElwin Sharvill NEGOTIATION
Ashley U CampainItalyIvan Magalhaes NEGOTIATION
Aruna I KuskoIndiaAmy Elsner QUALIFIED
Wickens U SchemmerIndiaStephen Shaw NEGOTIATION
Sinclair S WaycottJapanIvan Magalhaes PROPOSAL
Francesco I CaldareraGermanyAsiya Javayant NEW
Salvatore W CampainCanadaIoni Bowcher QUALIFIED
Isabel R MaletFranceXuxue Feng UNQUALIFIED
Francesco B GillianSpainElwin Sharvill NEGOTIATION
Cody Z NestleCanadaAnna Fali NEGOTIATION
Adams I MaletBrazilXuxue Feng QUALIFIED
Chavez T MaletUnited KingdomAmy Elsner UNQUALIFIED
Ricardo M ShinkoBrazilBernardo Dominic RENEWAL
Jefferson L NestleJapanAnna Fali NEGOTIATION
Wickens X FollerSpainElwin Sharvill NEGOTIATION
Claire J CaldareraJapanAmy Elsner PROPOSAL
Ricardo X PerinRussiaBernardo Dominic UNQUALIFIED
Octavia B DarakjyAustraliaElwin Sharvill UNQUALIFIED
Munro Q BologniaRussiaIvan Magalhaes UNQUALIFIED
Johnson C BriddickIndiaIoni Bowcher NEW
Nicolas Y ButtBrazilXuxue Feng PROPOSAL
Aruna O MorascaArgentinaAnna Fali QUALIFIED
Jennifer N RutaBrazilElwin Sharvill PROPOSAL
Mujtaba J DarakjyIndiaOnyama Limba RENEWAL
Aditya M TollnerArgentinaIvan Magalhaes PROPOSAL
Aika A SaylorsIndiaElwin Sharvill NEW
Greenwood I MacleadJapanElwin Sharvill RENEWAL
Octavia P KuskoSpainStephen Shaw NEW
Octavia K RulapaughItalyOnyama Limba NEGOTIATION
Arvin J GillianJapanElwin Sharvill NEGOTIATION
Kaitlin M GlickRussiaXuxue Feng UNQUALIFIED
Mujtaba P KuskoGermanyOnyama Limba UNQUALIFIED
Maria G MacleadSpainBernardo Dominic RENEWAL

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