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
Munro R GauchoFranceAnna Fali UNQUALIFIED
Aditya E OstroskyBrazilIvan Magalhaes QUALIFIED
Clifford S ButtBrazilStephen Shaw NEW
Aditya W BologniaFranceStephen Shaw RENEWAL
Ashley O RutaAustraliaStephen Shaw QUALIFIED
Ricardo G GauchoJapanIoni Bowcher RENEWAL
Kaitlin N AlbaresAustraliaElwin Sharvill NEGOTIATION
Faith F GauchoIndiaIvan Magalhaes NEW
Izzy A BriddickCanadaXuxue Feng UNQUALIFIED
Octavia Y DilliardRussiaAsiya Javayant RENEWAL
Ashley D RutaAustraliaElwin Sharvill PROPOSAL
James R WhobreyItalyOnyama Limba PROPOSAL
Maisha Z FerenczFranceXuxue Feng QUALIFIED
Claire O OstroskyJapanElwin Sharvill RENEWAL
Claire I DoeBrazilAsiya Javayant QUALIFIED
Faith A PerinCanadaAmy Elsner PROPOSAL
Maria C WhobreyItalyAsiya Javayant RENEWAL
Mujtaba Z DarakjyIndiaAmy Elsner NEGOTIATION
Jones Q CaudyUnited KingdomXuxue Feng NEW
Francesco O IturbideArgentinaAnna Fali PROPOSAL
David D RoysterFranceAsiya Javayant NEW
Mujtaba R KolmetzArgentinaStephen Shaw UNQUALIFIED
Costa G VenereItalyAnna Fali QUALIFIED
Isabel O MarrierUnited KingdomXuxue Feng PROPOSAL
Stacey F StockhamJapanAsiya Javayant QUALIFIED
Cody W IturbideBrazilAnna Fali NEW
James B RimIndiaAnna Fali PROPOSAL
Sinclair M GarufiUnited KingdomIoni Bowcher NEGOTIATION
Maria O SaylorsBrazilIoni Bowcher NEGOTIATION
Rodrigues M PoquetteArgentinaElwin Sharvill RENEWAL
Jeanfrancois M DoeItalyXuxue Feng QUALIFIED
Tony E AmigonFranceAmy Elsner UNQUALIFIED
Aditya R DarakjyArgentinaXuxue Feng PROPOSAL
Darci H RimAustraliaAnna Fali UNQUALIFIED
Kaitlin W PerinUnited KingdomStephen Shaw NEGOTIATION
Aika I WhobreyItalyElwin Sharvill UNQUALIFIED
Stacey D BriddickUnited KingdomIoni Bowcher NEGOTIATION
Tony J MarrierFranceXuxue Feng QUALIFIED
Maria U WieserAustraliaXuxue Feng UNQUALIFIED
Stacey F RutaIndiaBernardo Dominic PROPOSAL
Maria I DarakjyGermanyElwin Sharvill UNQUALIFIED
Leon D MarrierBrazilIoni Bowcher QUALIFIED
Salvatore S StockhamBrazilAnna Fali RENEWAL
Rodrigues Q RutaItalyAsiya Javayant PROPOSAL
Francesco I CampainSpainBernardo Dominic NEW
Jefferson O RoysterArgentinaIvan Magalhaes UNQUALIFIED
Ivar U ButtRussiaXuxue Feng RENEWAL
Aditya T BowleySpainOnyama Limba RENEWAL
David P ChuiSpainAmy Elsner PROPOSAL
Emily O KuskoArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki U PaprockiBrazilXuxue Feng NEW
Chavez F FlosiSpainAsiya Javayant NEW
Juan V RoysterArgentinaIvan Magalhaes RENEWAL
Alejandro M GlickItalyXuxue Feng PROPOSAL
Jefferson Z SergiSpainBernardo Dominic UNQUALIFIED
Darci L VocelkaSpainAnna Fali PROPOSAL
Kadeem E NickaArgentinaAmy Elsner UNQUALIFIED
Antonio S SlusarskiRussiaStephen Shaw UNQUALIFIED
Sinclair N WaycottFranceAnna Fali NEGOTIATION
Greenwood F PerinBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem E NestleJapan2026-08-09Truhlar And Truhlar Attys UNQUALIFIED51Ioni Bowcher
1001Ivar H BowleyAustralia2026-08-02Feltz Printing Service RENEWAL60Onyama Limba
1002Smith Q KuskoGermany2026-08-03Truhlar And Truhlar Attys UNQUALIFIED53Bernardo Dominic
1003Ivar Y AmigonRussia2026-08-17Rangoni Of Florence RENEWAL0Anna Fali
1004Jefferson W MorascaGermany2026-08-06Chanay, Jeffrey A Esq RENEWAL3Stephen Shaw
1005Jefferson T GillianSpain2026-08-21Rousseaux, Michael Esq QUALIFIED67Onyama Limba
1006Jones B ShinkoFrance2026-08-11Chemel, James L Cpa NEGOTIATION42Anna Fali
1007Jefferson W KolmetzArgentina2026-07-29Morlong Associates RENEWAL33Anna Fali
1008Smith A GlickCanada2026-08-21Truhlar And Truhlar Attys NEW92Ivan Magalhaes
1009Octavia U StockhamFrance2026-08-08Buckley Miller Wright UNQUALIFIED60Xuxue Feng
1010Octavia F KuskoSpain2026-08-06King, Christopher A Esq NEW50Elwin Sharvill
1011Kaitlin Z RulapaughArgentina2026-08-17Rousseaux, Michael Esq PROPOSAL44Stephen Shaw
1012Jones Q WaycottBrazil2026-07-29Chapman, Ross E Esq RENEWAL29Ivan Magalhaes
1013Alejandro Q VenereIndia2026-08-10Commercial Press QUALIFIED26Amy Elsner
1014Jefferson E DoeAustralia2026-08-21Chanay, Jeffrey A Esq PROPOSAL55Onyama Limba
1015Johnson Q StensethIndia2026-08-14Printing Dimensions RENEWAL67Ioni Bowcher
1016Aditya Z GarufiUnited Kingdom2026-08-17Rangoni Of Florence PROPOSAL56Elwin Sharvill
1017Jones B DoeArgentina2026-08-03Benton, John B Jr NEW91Anna Fali
1018Antonio S NestleRussia2026-07-31Chapman, Ross E Esq RENEWAL46Anna Fali
1019Greenwood M AlbaresBrazil2026-08-22Commercial Press RENEWAL70Asiya Javayant
1020Kadeem C SergiJapan2026-08-06Dorl, James J Esq NEGOTIATION83Asiya Javayant
1021Ricardo H MorascaRussia2026-08-22Commercial Press UNQUALIFIED79Stephen Shaw
1022Costa W FollerAustralia2026-08-13Dorl, James J Esq QUALIFIED97Xuxue Feng
1023Adams Y AlbaresSpain2026-07-29Morlong Associates PROPOSAL63Xuxue Feng
1024Ashley G MorascaUnited Kingdom2026-08-09Truhlar And Truhlar Attys NEW87Onyama Limba
1025Morrow Y SlusarskiUnited Kingdom2026-07-28Rousseaux, Michael Esq NEW58Asiya Javayant
1026Clifford T MaletSpain2026-08-02Benton, John B Jr UNQUALIFIED91Stephen Shaw
1027Cody M ShinkoJapan2026-08-19Rousseaux, Michael Esq QUALIFIED87Stephen Shaw
1028James X FerenczCanada2026-07-27Morlong Associates PROPOSAL88Ioni Bowcher
1029Stacey P GillianRussia2026-08-20Printing Dimensions NEGOTIATION18Asiya Javayant
1030Antonio W MarrierUnited Kingdom2026-08-22Morlong Associates NEW3Amy Elsner
1031Aruna A SlusarskiBrazil2026-08-06Rangoni Of Florence QUALIFIED20Elwin Sharvill
1032Octavia R PerinFrance2026-08-09Buckley Miller Wright NEGOTIATION19Ivan Magalhaes
1033Maisha C PoquetteItaly2026-08-03King, Christopher A Esq PROPOSAL84Anna Fali
1034Jefferson Z PaprockiCanada2026-08-16Chemel, James L Cpa UNQUALIFIED81Amy Elsner
1035Misaki K BologniaFrance2026-08-16Printing Dimensions PROPOSAL21Bernardo Dominic
1036Ivar A SergiItaly2026-08-06Rangoni Of Florence QUALIFIED5Elwin Sharvill
1037Chavez M MorascaCanada2026-07-24Rousseaux, Michael Esq UNQUALIFIED61Ioni Bowcher
1038Kadeem X PaprockiCanada2026-07-25Chanay, Jeffrey A Esq RENEWAL36Onyama Limba
1039Mujtaba W VenereCanada2026-08-12Buckley Miller Wright RENEWAL31Ioni Bowcher
1040Claire H SaylorsItaly2026-08-12Dorl, James J Esq RENEWAL75Xuxue Feng
1041Octavia N CaudyGermany2026-08-05Printing Dimensions NEW28Bernardo Dominic
1042Aika E FerenczFrance2026-08-13Feiner Bros QUALIFIED41Xuxue Feng
1043Wickens F StockhamIndia2026-07-26Buckley Miller Wright UNQUALIFIED62Ioni Bowcher
1044Faith J FerenczCanada2026-08-13Benton, John B Jr NEW23Anna Fali
1045Salvatore O TollnerArgentina2026-08-22Chanay, Jeffrey A Esq RENEWAL44Xuxue Feng
1046Mujtaba K FollerBrazil2026-07-28Commercial Press NEGOTIATION32Amy Elsner
1047Ivar N BologniaItaly2026-08-22Rangoni Of Florence RENEWAL31Ioni Bowcher
1048Leja W ShinkoGermany2026-08-06Chemel, James L Cpa RENEWAL12Asiya Javayant
1049Wickens B FollerCanada2026-07-25Chapman, Ross E Esq RENEWAL61Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aruna U FerenczUnited KingdomAmy Elsner PROPOSAL
Rodrigues W KuskoRussiaIoni Bowcher NEW
James W MaletBrazilStephen Shaw NEW
Leja Z FollerGermanyElwin Sharvill PROPOSAL
Mayumi O PoquetteAustraliaOnyama Limba QUALIFIED
Kadeem S PoquetteRussiaXuxue Feng NEW
Tony U ShinkoItalyOnyama Limba RENEWAL
Leon M GlickSpainAmy Elsner NEGOTIATION
Octavia W NickaUnited KingdomBernardo Dominic NEGOTIATION
Smith Y GlickAustraliaIoni Bowcher PROPOSAL
Rodrigues F OstroskyGermanyAnna Fali RENEWAL
Silvio X ShinkoFranceAsiya Javayant RENEWAL
Ricardo E FigeroaItalyBernardo Dominic NEGOTIATION
Morrow Q RoysterJapanAsiya Javayant UNQUALIFIED
Murillo L AmigonJapanAmy Elsner PROPOSAL
Cody R IturbideCanadaBernardo Dominic NEGOTIATION
Murillo Z NickaAustraliaOnyama Limba PROPOSAL
Morrow O VenereItalyIvan Magalhaes PROPOSAL
Antonio P InouyeSpainAmy Elsner PROPOSAL
Misaki B NestleIndiaAsiya Javayant UNQUALIFIED
Salvatore X WaycottFranceIoni Bowcher RENEWAL
Jefferson K PaprockiUnited KingdomAnna Fali QUALIFIED
Jones J WieserAustraliaIoni Bowcher NEGOTIATION
Arvin C VenereJapanAnna Fali QUALIFIED
Kaitlin P PaprockiBrazilBernardo Dominic UNQUALIFIED
Aditya Y OstroskyIndiaAnna Fali UNQUALIFIED
Wickens L WhobreyBrazilAnna Fali QUALIFIED
Murillo N BologniaFranceStephen Shaw NEGOTIATION
Leja K RulapaughRussiaIoni Bowcher PROPOSAL
Isabel C RoysterIndiaXuxue Feng PROPOSAL
Rodrigues R SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Clifford X WhobreySpainBernardo Dominic UNQUALIFIED
Kaitlin G AmigonAustraliaAnna Fali RENEWAL
Kadeem J MacleadIndiaAsiya Javayant QUALIFIED
Ashley N MorascaCanadaIoni Bowcher NEW
Alejandro G RulapaughCanadaXuxue Feng NEGOTIATION
James P MaletIndiaAsiya Javayant PROPOSAL
James W CaudyBrazilBernardo Dominic PROPOSAL
Kadeem H MaletItalyAmy Elsner NEW
Kaitlin V RutaArgentinaXuxue Feng QUALIFIED
Greenwood C DarakjyBrazilAnna Fali QUALIFIED
Jones A DilliardGermanyElwin Sharvill NEW
Misaki J BowleyJapanAnna Fali RENEWAL
Clifford V GillianRussiaStephen Shaw NEW
Aruna S SergiIndiaBernardo Dominic RENEWAL
Octavia Z RimAustraliaOnyama Limba RENEWAL
Claire N ChuiRussiaAsiya Javayant NEW
Murillo Z WaycottCanadaAmy Elsner RENEWAL
Antonio L VocelkaSpainBernardo Dominic RENEWAL
Tony C NickaCanadaXuxue Feng PROPOSAL
Frozen Columns
Name
Ricardo X Dilliard
Maisha F Rim
Wickens I Stockham
Silvio T Bowley
Julie H Stockham
Isabel J Stenseth
Rodrigues J Chui
Rodrigues D Waycott
Claire N Garufi
Julie T Bolognia
Alejandro I Saylors
Juan W Flosi
Isabel L Vocelka
Ashley Q Foller
Rodrigues Y Flosi
Ivar S Dilliard
Aruna E Waycott
Aika Q Malet
Francesco N Darakjy
Murillo Y Albares
Greenwood P Bowley
Silvio X Chui
Stacey J Saylors
Ashley X Venere
Francesco X Paprocki
Kaitlin P Nestle
James D Paprocki
Juan F Saylors
Sinclair G Paprocki
Munro L Caudy
Stacey P Vocelka
Ashley K Nicka
Jeanfrancois I Chui
Izzy H Campain
Deepesh E Malet
Rodrigues H Gillian
Leja Z Ostrosky
Jones K Venere
Misaki A Stenseth
Leja Y Malet
Leja F Flosi
Kadeem F Inouye
Clifford H Whobrey
Munro E Royster
Jefferson P Ruta
Leja P Bowley
Maisha T Waycott
Cody N Garufi
Munro B Malet
Faith A Rulapaugh
IdCountryDate
1000India2026-08-08
1001Japan2026-07-28
1002Italy2026-08-13
1003Argentina2026-07-29
1004Russia2026-08-11
1005Canada2026-08-02
1006Brazil2026-08-09
1007Canada2026-08-21
1008France2026-07-26
1009Spain2026-08-15
1010Japan2026-08-14
1011Spain2026-08-16
1012Japan2026-07-24
1013United Kingdom2026-07-28
1014United Kingdom2026-07-31
1015Russia2026-08-17
1016India2026-08-17
1017Argentina2026-08-09
1018France2026-08-13
1019Argentina2026-08-21
1020Italy2026-08-06
1021Germany2026-08-21
1022Canada2026-07-25
1023United Kingdom2026-08-18
1024Germany2026-08-04
1025France2026-07-25
1026Russia2026-08-05
1027United Kingdom2026-08-19
1028Italy2026-07-27
1029Australia2026-07-30
1030Russia2026-08-21
1031Canada2026-08-01
1032United Kingdom2026-07-31
1033Japan2026-07-30
1034Australia2026-07-30
1035Germany2026-08-01
1036Argentina2026-07-28
1037Australia2026-08-06
1038Italy2026-07-29
1039Brazil2026-07-29
1040United Kingdom2026-08-12
1041Argentina2026-08-21
1042Japan2026-08-04
1043India2026-08-16
1044Japan2026-08-06
1045Russia2026-08-18
1046Argentina2026-08-07
1047Spain2026-08-13
1048Canada2026-08-21
1049Germany2026-08-13

On-Demand Data

NameIdCountryDate
David N Bowley1000Spain2026-08-09
Francesco F Rulapaugh1001India2026-08-07
Isabel R Shinko1002Japan2026-07-31
Salvatore U Foller1003Italy2026-07-25
Emily S Whobrey1004United Kingdom2026-08-10
Misaki D Perin1005Italy2026-08-13
Jefferson L Gillian1006France2026-08-16
Tony Y Malet1007Brazil2026-08-03
James P Shinko1008Australia2026-08-20
Stacey E Saylors1009Australia2026-08-22
Greenwood U Figeroa1010Australia2026-08-12
Aruna R Marrier1011Argentina2026-07-31
Johnson Z Ostrosky1012Brazil2026-08-07
Murillo R Ostrosky1013Russia2026-07-26
Mujtaba R Caudy1014Germany2026-08-02
Mujtaba W Caldarera1015Spain2026-08-10
Mayumi V Ferencz1016Japan2026-08-14
Tony R Glick1017United Kingdom2026-08-05
Jennifer X Morasca1018Brazil2026-08-04
Ivar S Iturbide1019United Kingdom2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily L OldroydRussiaIoni Bowcher UNQUALIFIED
Salvatore T PerinCanadaAmy Elsner QUALIFIED
Mujtaba S RimAustraliaAnna Fali UNQUALIFIED
Tony F InouyeArgentinaXuxue Feng RENEWAL
Silvio E PoquetteBrazilStephen Shaw NEW
Munro B AmigonIndiaStephen Shaw QUALIFIED
Emily H NickaAustraliaIvan Magalhaes UNQUALIFIED
Chavez K MaletCanadaStephen Shaw UNQUALIFIED
Mayumi J BriddickRussiaElwin Sharvill QUALIFIED
Jeanfrancois X AmigonItalyBernardo Dominic UNQUALIFIED
Tony P KuskoFranceElwin Sharvill PROPOSAL
Salvatore W StockhamSpainIvan Magalhaes NEW
Costa J DoeGermanyElwin Sharvill NEGOTIATION
Nicolas Q AmigonCanadaXuxue Feng NEW
Ivar J WieserIndiaXuxue Feng NEW
Aditya Z FigeroaBrazilIoni Bowcher RENEWAL
Ashley K StensethArgentinaAsiya Javayant PROPOSAL
Tony O BologniaGermanyXuxue Feng QUALIFIED
Johnson M TollnerJapanAnna Fali PROPOSAL
Mayumi X FerenczUnited KingdomOnyama Limba UNQUALIFIED
Kadeem R SergiGermanyStephen Shaw UNQUALIFIED
Stacey N BologniaCanadaBernardo Dominic PROPOSAL
Clifford I PaprockiGermanyIvan Magalhaes UNQUALIFIED
Faith L IturbideUnited KingdomAnna Fali NEW
Ivar F InouyeUnited KingdomIoni Bowcher QUALIFIED
Kadeem W MarrierSpainAnna Fali QUALIFIED
Cody Q GlickAustraliaAsiya Javayant PROPOSAL
Jennifer Q MaletItalyIoni Bowcher PROPOSAL
Stacey Q KolmetzBrazilOnyama Limba RENEWAL
Leja S PaprockiArgentinaStephen Shaw PROPOSAL
Stacey H GarufiSpainBernardo Dominic RENEWAL
Faith X GlickJapanIoni Bowcher NEGOTIATION
Tony D MarrierGermanyXuxue Feng NEW
Chavez Q RulapaughSpainElwin Sharvill PROPOSAL
Greenwood L NestleArgentinaAmy Elsner RENEWAL
Adams E GillianCanadaIvan Magalhaes NEGOTIATION
Leja B WieserAustraliaIoni Bowcher PROPOSAL
Salvatore C ShinkoGermanyAsiya Javayant NEW
Nicolas W ChuiBrazilXuxue Feng NEW
Claire O ButtSpainBernardo Dominic 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>