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
Rodrigues L AlbaresArgentinaStephen Shaw PROPOSAL
Clifford Q MacleadIndiaIvan Magalhaes PROPOSAL
Claire P FerenczJapanXuxue Feng RENEWAL
Claire V WhobreySpainIoni Bowcher PROPOSAL
Silvio V MacleadAustraliaOnyama Limba NEGOTIATION
Jones L VenereGermanyAmy Elsner PROPOSAL
Rodrigues P VocelkaBrazilXuxue Feng PROPOSAL
Maisha V FerenczIndiaOnyama Limba NEW
Ivar C FlosiItalyStephen Shaw QUALIFIED
Alejandro C PoquetteJapanAmy Elsner UNQUALIFIED
Antonio T KolmetzCanadaAnna Fali PROPOSAL
Isabel T FerenczUnited KingdomElwin Sharvill QUALIFIED
Juan R IturbideAustraliaAnna Fali NEGOTIATION
Adams A CaldareraIndiaBernardo Dominic NEW
Kaitlin H WieserCanadaAsiya Javayant QUALIFIED
Claire T RutaCanadaOnyama Limba QUALIFIED
Cody N MaletArgentinaOnyama Limba NEGOTIATION
Aruna I WieserIndiaXuxue Feng UNQUALIFIED
Leon V RimUnited KingdomStephen Shaw QUALIFIED
Chavez N SlusarskiJapanIvan Magalhaes RENEWAL
Izzy T BologniaRussiaOnyama Limba NEW
Costa S FlosiGermanyBernardo Dominic PROPOSAL
Aika I CaudyAustraliaOnyama Limba QUALIFIED
Tony D VocelkaCanadaAsiya Javayant UNQUALIFIED
Ivar L KuskoRussiaAmy Elsner UNQUALIFIED
David P MorascaJapanAsiya Javayant QUALIFIED
Mujtaba T GarufiGermanyStephen Shaw RENEWAL
Silvio E OldroydBrazilIvan Magalhaes NEGOTIATION
Julie R ShinkoSpainIoni Bowcher QUALIFIED
Nicolas R StockhamArgentinaXuxue Feng NEGOTIATION
Morrow I StensethGermanyAsiya Javayant UNQUALIFIED
Jones Z StensethAustraliaBernardo Dominic QUALIFIED
Juan X VenereJapanIoni Bowcher QUALIFIED
Alejandro T ShinkoFranceAmy Elsner RENEWAL
Misaki M MacleadArgentinaXuxue Feng PROPOSAL
Sinclair K DarakjyGermanyOnyama Limba RENEWAL
Murillo Q SergiIndiaBernardo Dominic NEW
Clifford J BowleyIndiaIvan Magalhaes RENEWAL
David R FerenczJapanXuxue Feng NEW
Jefferson U AmigonFranceAnna Fali QUALIFIED
Adams Y KuskoCanadaAsiya Javayant RENEWAL
Kaitlin E AlbaresCanadaAsiya Javayant PROPOSAL
Cody N DarakjyBrazilStephen Shaw NEGOTIATION
Munro O ChuiJapanBernardo Dominic QUALIFIED
Salvatore M MacleadSpainXuxue Feng NEGOTIATION
Nicolas S FlosiSpainStephen Shaw NEW
Alejandro W PaprockiRussiaElwin Sharvill NEW
David N ButtJapanStephen Shaw RENEWAL
Rodrigues W SergiBrazilXuxue Feng QUALIFIED
Claire R KuskoIndiaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood Y PerinGermanyStephen Shaw NEGOTIATION
Adams C OldroydCanadaAsiya Javayant NEGOTIATION
Smith P StockhamRussiaElwin Sharvill QUALIFIED
Jeanfrancois J PoquetteRussiaStephen Shaw NEGOTIATION
Salvatore V RutaItalyIvan Magalhaes PROPOSAL
Arvin E VocelkaJapanOnyama Limba NEGOTIATION
Antonio E ChuiJapanStephen Shaw PROPOSAL
Isabel I DarakjyIndiaIvan Magalhaes PROPOSAL
Francesco D DarakjyJapanAsiya Javayant UNQUALIFIED
Deepesh Q DoeGermanyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley V WaycottItaly2026-06-15Rousseaux, Michael Esq RENEWAL68Onyama Limba
1001Aditya T FigeroaAustralia2026-06-14Feltz Printing Service NEW91Onyama Limba
1002Munro T MaletBrazil2026-06-21Truhlar And Truhlar Attys QUALIFIED57Onyama Limba
1003Arvin M GauchoBrazil2026-07-01Morlong Associates NEW19Bernardo Dominic
1004Ivar U VenereGermany2026-06-22Dorl, James J Esq QUALIFIED12Ivan Magalhaes
1005Silvio C WieserFrance2026-06-23Commercial Press RENEWAL3Amy Elsner
1006Arvin Q SaylorsCanada2026-07-03Truhlar And Truhlar Attys PROPOSAL16Onyama Limba
1007Costa N CaudyFrance2026-07-02Chapman, Ross E Esq NEW8Ivan Magalhaes
1008Juan G FlosiFrance2026-07-04King, Christopher A Esq QUALIFIED66Ioni Bowcher
1009Kaitlin A ShinkoIndia2026-06-08Rangoni Of Florence UNQUALIFIED74Bernardo Dominic
1010Stacey K OldroydArgentina2026-06-15Chanay, Jeffrey A Esq QUALIFIED93Amy Elsner
1011Munro S PerinArgentina2026-06-21Chapman, Ross E Esq NEGOTIATION45Asiya Javayant
1012Faith M BriddickAustralia2026-06-17Rangoni Of Florence NEW0Elwin Sharvill
1013Misaki F IturbideRussia2026-06-29Commercial Press PROPOSAL66Amy Elsner
1014Antonio D RutaBrazil2026-06-08Chapman, Ross E Esq NEGOTIATION70Ivan Magalhaes
1015Stacey R AlbaresCanada2026-06-13Commercial Press NEGOTIATION89Elwin Sharvill
1016Jefferson Z MarrierItaly2026-06-26Chanay, Jeffrey A Esq RENEWAL14Amy Elsner
1017Francesco V OstroskyUnited Kingdom2026-06-27Chanay, Jeffrey A Esq NEGOTIATION35Amy Elsner
1018Adams N MorascaAustralia2026-06-26Chanay, Jeffrey A Esq QUALIFIED0Amy Elsner
1019Costa U OldroydRussia2026-06-28Truhlar And Truhlar Attys PROPOSAL54Stephen Shaw
1020Jeanfrancois N GarufiUnited Kingdom2026-06-22Dorl, James J Esq PROPOSAL80Elwin Sharvill
1021Tony I NickaArgentina2026-07-04Chapman, Ross E Esq PROPOSAL4Anna Fali
1022Maisha L GillianJapan2026-06-13Commercial Press PROPOSAL76Stephen Shaw
1023Juan H NestleItaly2026-06-28Truhlar And Truhlar Attys UNQUALIFIED52Ioni Bowcher
1024Misaki E MacleadBrazil2026-06-20Buckley Miller Wright UNQUALIFIED7Onyama Limba
1025Jennifer J TollnerRussia2026-07-04Buckley Miller Wright NEGOTIATION87Amy Elsner
1026Aruna T CampainRussia2026-06-24Chemel, James L Cpa NEW57Elwin Sharvill
1027Stacey B StensethSpain2026-07-02Dorl, James J Esq UNQUALIFIED60Onyama Limba
1028Mayumi V CaldareraGermany2026-06-29King, Christopher A Esq PROPOSAL58Ivan Magalhaes
1029Claire T AmigonArgentina2026-06-20Chanay, Jeffrey A Esq NEGOTIATION25Elwin Sharvill
1030James R WieserFrance2026-06-14Truhlar And Truhlar Attys RENEWAL59Elwin Sharvill
1031Octavia P GlickAustralia2026-06-20Buckley Miller Wright NEW53Stephen Shaw
1032Wickens J ButtArgentina2026-06-29Chemel, James L Cpa PROPOSAL41Asiya Javayant
1033Sinclair T RutaBrazil2026-07-03Rousseaux, Michael Esq NEGOTIATION68Ivan Magalhaes
1034David I FerenczItaly2026-06-13Feltz Printing Service RENEWAL63Elwin Sharvill
1035Ivar D MacleadUnited Kingdom2026-06-14Chapman, Ross E Esq NEGOTIATION32Ivan Magalhaes
1036Julie I StockhamJapan2026-07-03Morlong Associates UNQUALIFIED2Xuxue Feng
1037Aika G StockhamSpain2026-06-11Buckley Miller Wright QUALIFIED15Stephen Shaw
1038Nicolas G InouyeUnited Kingdom2026-06-21Truhlar And Truhlar Attys UNQUALIFIED77Onyama Limba
1039Silvio T OldroydJapan2026-06-30Morlong Associates PROPOSAL18Asiya Javayant
1040Deepesh X OstroskyAustralia2026-06-14Benton, John B Jr NEGOTIATION32Asiya Javayant
1041Murillo T DoeArgentina2026-06-29Feltz Printing Service QUALIFIED5Ioni Bowcher
1042Jones Z RoysterCanada2026-06-15Chapman, Ross E Esq NEW92Anna Fali
1043Costa D FollerCanada2026-06-23Chanay, Jeffrey A Esq QUALIFIED56Xuxue Feng
1044Jones P ShinkoGermany2026-06-09Buckley Miller Wright NEGOTIATION51Ivan Magalhaes
1045Isabel K BriddickAustralia2026-06-18Dorl, James J Esq NEGOTIATION21Amy Elsner
1046Nicolas R SaylorsCanada2026-06-29Chanay, Jeffrey A Esq PROPOSAL24Anna Fali
1047Johnson D RulapaughRussia2026-06-21Chapman, Ross E Esq UNQUALIFIED92Xuxue Feng
1048Tony J StensethItaly2026-07-06Printing Dimensions QUALIFIED71Anna Fali
1049Stacey Q BriddickItaly2026-06-15Rousseaux, Michael Esq PROPOSAL85Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria I VenereSpainAnna Fali RENEWAL
Tony S BowleyItalyStephen Shaw NEGOTIATION
Izzy M PaprockiCanadaBernardo Dominic NEW
Ashley L MaletBrazilOnyama Limba NEGOTIATION
Aditya B AmigonItalyAsiya Javayant RENEWAL
Jeanfrancois I GarufiIndiaXuxue Feng NEW
Isabel J BriddickItalyAsiya Javayant PROPOSAL
Stacey S PaprockiArgentinaBernardo Dominic RENEWAL
Murillo Q VocelkaArgentinaBernardo Dominic PROPOSAL
Claire C AmigonAustraliaOnyama Limba NEGOTIATION
Arvin C ButtGermanyAmy Elsner NEGOTIATION
Aika Q InouyeRussiaIvan Magalhaes RENEWAL
Faith I MaletSpainAsiya Javayant NEW
Wickens S WieserIndiaBernardo Dominic QUALIFIED
Mayumi D TollnerFranceElwin Sharvill UNQUALIFIED
Faith E MacleadBrazilAnna Fali UNQUALIFIED
Rodrigues F MaletAustraliaAnna Fali NEW
Arvin P GillianItalyXuxue Feng NEW
Aditya S FlosiAustraliaAmy Elsner QUALIFIED
Isabel U MorascaIndiaStephen Shaw NEW
Jones X IturbideAustraliaAsiya Javayant UNQUALIFIED
David B StensethSpainOnyama Limba NEW
Faith X VocelkaSpainXuxue Feng UNQUALIFIED
Emily Z IturbideJapanAmy Elsner PROPOSAL
Munro H MarrierGermanyAnna Fali QUALIFIED
Kaitlin N RulapaughGermanyOnyama Limba UNQUALIFIED
Claire D FigeroaCanadaAsiya Javayant QUALIFIED
Emily R CampainSpainBernardo Dominic NEW
Jefferson T CaldareraJapanStephen Shaw UNQUALIFIED
Smith Y StensethSpainIvan Magalhaes RENEWAL
Arvin Y AlbaresFranceAsiya Javayant PROPOSAL
David P OstroskyGermanyStephen Shaw NEGOTIATION
Chavez E VocelkaJapanElwin Sharvill NEW
Tony B FollerSpainAmy Elsner PROPOSAL
Juan G OldroydFranceAnna Fali NEGOTIATION
Cody N NickaUnited KingdomBernardo Dominic NEGOTIATION
Clifford S IturbideArgentinaAmy Elsner PROPOSAL
Munro A SaylorsRussiaAnna Fali UNQUALIFIED
Silvio U GlickSpainAsiya Javayant QUALIFIED
Ricardo K OstroskyUnited KingdomAmy Elsner NEGOTIATION
Ricardo P FerenczArgentinaOnyama Limba QUALIFIED
Misaki B AmigonIndiaElwin Sharvill NEW
Stacey E WieserAustraliaStephen Shaw QUALIFIED
Claire G SaylorsIndiaOnyama Limba RENEWAL
Adams B DoeItalyIvan Magalhaes PROPOSAL
Nicolas Y MorascaGermanyAmy Elsner NEGOTIATION
Jefferson I ChuiIndiaOnyama Limba QUALIFIED
Misaki L AlbaresRussiaAmy Elsner QUALIFIED
Jeanfrancois L ChuiItalyStephen Shaw RENEWAL
Juan C TollnerRussiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Clifford A Vocelka
Arvin T Amigon
Jeanfrancois M Inouye
Mayumi D Chui
Isabel T Maclead
Greenwood E Schemmer
Sinclair R Bolognia
Jeanfrancois H Morasca
Faith U Flosi
Julie C Marrier
Arvin M Campain
Johnson X Marrier
James Z Perin
Jefferson X Malet
Ivar L Oldroyd
Smith G Campain
Smith E Foller
Adams P Maclead
Kadeem R Malet
Leon G Figeroa
Francesco O Malet
Jennifer A Slusarski
Morrow I Rim
David E Vocelka
Juan W Ferencz
Salvatore V Royster
Julie L Stockham
Jeanfrancois L Stenseth
Silvio K Gaucho
Julie E Foller
Deepesh D Stenseth
Cody N Briddick
Leon G Ostrosky
Morrow R Darakjy
Deepesh R Bowley
Kaitlin E Stenseth
Julie G Marrier
Tony O Caldarera
Jones U Butt
Morrow V Slusarski
Jennifer Q Vocelka
Smith X Caldarera
Chavez E Chui
Tony A Caudy
Murillo G Nicka
Silvio Z Wieser
Morrow S Shinko
Jones N Whobrey
Leon R Malet
Claire U Sergi
IdCountryDate
1000India2026-06-09
1001India2026-06-27
1002France2026-06-23
1003India2026-07-06
1004Russia2026-06-18
1005Argentina2026-06-30
1006France2026-07-06
1007Germany2026-06-16
1008Australia2026-06-08
1009Italy2026-07-03
1010Germany2026-06-08
1011Brazil2026-06-11
1012Spain2026-06-23
1013Australia2026-06-19
1014Argentina2026-07-02
1015Spain2026-06-07
1016Australia2026-06-29
1017Germany2026-06-20
1018India2026-06-13
1019India2026-06-09
1020Argentina2026-06-09
1021Spain2026-06-26
1022United Kingdom2026-06-13
1023Argentina2026-06-14
1024India2026-06-24
1025Australia2026-06-26
1026United Kingdom2026-06-21
1027Italy2026-07-01
1028United Kingdom2026-06-15
1029United Kingdom2026-07-01
1030Russia2026-07-06
1031Argentina2026-07-04
1032India2026-06-11
1033Canada2026-06-07
1034Spain2026-06-23
1035United Kingdom2026-06-11
1036France2026-06-10
1037India2026-06-21
1038Australia2026-06-10
1039Canada2026-07-03
1040France2026-06-22
1041Italy2026-06-25
1042Brazil2026-06-27
1043United Kingdom2026-06-19
1044Russia2026-07-02
1045India2026-06-26
1046India2026-06-29
1047Russia2026-06-11
1048Japan2026-06-20
1049India2026-06-13

On-Demand Data

NameIdCountryDate
Jennifer V Campain1000Germany2026-07-01
Maisha Q Waycott1001Germany2026-06-25
Clifford N Kolmetz1002Australia2026-06-21
Izzy R Malet1003Russia2026-06-18
Adams V Shinko1004Japan2026-06-11
Johnson A Caldarera1005Canada2026-06-11
Cody Y Dilliard1006Japan2026-06-16
Juan S Caudy1007Russia2026-06-08
Mujtaba C Rim1008Italy2026-06-15
Greenwood X Paprocki1009Argentina2026-06-30
Wickens V Ferencz1010Italy2026-06-12
Isabel O Shinko1011Japan2026-06-22
Arvin L Slusarski1012France2026-06-11
Darci D Marrier1013Argentina2026-06-10
Jeanfrancois I Whobrey1014Australia2026-06-16
Sinclair S Bowley1015Australia2026-06-30
Murillo H Bowley1016Spain2026-06-13
Wickens R Iturbide1017Japan2026-06-29
Silvio P Flosi1018Italy2026-06-29
Aruna I Albares1019Italy2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco E SlusarskiBrazilStephen Shaw UNQUALIFIED
Wickens C PaprockiBrazilIoni Bowcher NEW
Clifford K GillianIndiaBernardo Dominic PROPOSAL
Murillo V MorascaRussiaBernardo Dominic UNQUALIFIED
Silvio G PerinUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin M KolmetzIndiaAsiya Javayant UNQUALIFIED
Mayumi A NickaItalyIoni Bowcher QUALIFIED
Kadeem A BowleyRussiaXuxue Feng RENEWAL
Leja O VenereJapanIvan Magalhaes NEW
Jennifer Q RutaItalyBernardo Dominic QUALIFIED
Misaki A RimFranceXuxue Feng UNQUALIFIED
Arvin I RulapaughCanadaAmy Elsner RENEWAL
Ashley W RutaFranceOnyama Limba NEW
Wickens Q NestleUnited KingdomAmy Elsner NEW
Clifford P OldroydBrazilBernardo Dominic RENEWAL
Emily I DoeIndiaOnyama Limba NEGOTIATION
Ashley Y DoeCanadaAmy Elsner NEGOTIATION
Rodrigues B DarakjyItalyBernardo Dominic UNQUALIFIED
Leja N MorascaRussiaAmy Elsner PROPOSAL
Julie B ShinkoAustraliaAnna Fali PROPOSAL
Smith B NestleJapanBernardo Dominic NEW
Nicolas G FlosiIndiaIoni Bowcher PROPOSAL
Tony H MaletFranceStephen Shaw NEW
Ivar U NestleSpainAnna Fali PROPOSAL
Izzy U FigeroaCanadaAsiya Javayant PROPOSAL
Mujtaba T StockhamFranceAmy Elsner QUALIFIED
Jefferson N GauchoArgentinaAmy Elsner PROPOSAL
Antonio X BologniaCanadaElwin Sharvill PROPOSAL
Greenwood K FlosiFranceOnyama Limba UNQUALIFIED
Kaitlin O NestleGermanyAnna Fali NEGOTIATION
Darci K KuskoAustraliaAnna Fali NEGOTIATION
Octavia K SchemmerCanadaAmy Elsner RENEWAL
Kaitlin K KuskoItalyXuxue Feng NEGOTIATION
Morrow O WhobreyBrazilAnna Fali NEW
Claire L KuskoArgentinaAmy Elsner QUALIFIED
Jennifer V RutaAustraliaBernardo Dominic PROPOSAL
Jones O RoysterJapanOnyama Limba UNQUALIFIED
Ricardo Y MarrierBrazilXuxue Feng NEW
Deepesh E GarufiUnited KingdomAsiya Javayant NEW
Adams V GauchoBrazilXuxue Feng NEGOTIATION

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