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 P PaprockiItalyStephen Shaw NEGOTIATION
Stacey X SergiItalyAmy Elsner NEW
Ivar D BologniaJapanElwin Sharvill PROPOSAL
Emily R MarrierArgentinaElwin Sharvill NEW
Adams K WaycottCanadaAnna Fali PROPOSAL
Ashley C FlosiFranceIvan Magalhaes RENEWAL
Jefferson Z BologniaIndiaIoni Bowcher NEGOTIATION
Wickens V PerinJapanIvan Magalhaes NEW
Aruna Q GauchoFranceIvan Magalhaes PROPOSAL
Ashley V PoquetteItalyAnna Fali QUALIFIED
Alejandro T PerinFranceBernardo Dominic NEW
Maisha D PoquetteAustraliaIvan Magalhaes PROPOSAL
Aika Q BologniaCanadaOnyama Limba RENEWAL
Aika L FlosiUnited KingdomBernardo Dominic QUALIFIED
Isabel U StockhamFranceElwin Sharvill QUALIFIED
Greenwood V CampainBrazilElwin Sharvill NEW
Jones N DoeBrazilAsiya Javayant UNQUALIFIED
Rodrigues D PerinAustraliaAsiya Javayant RENEWAL
Munro O BriddickCanadaXuxue Feng RENEWAL
Aika Q TollnerGermanyXuxue Feng RENEWAL
Mayumi D IturbideGermanyBernardo Dominic PROPOSAL
Salvatore Y WaycottSpainIoni Bowcher NEGOTIATION
Cody X WieserCanadaAsiya Javayant NEGOTIATION
Jeanfrancois J WaycottIndiaIoni Bowcher NEW
Kaitlin C WhobreyUnited KingdomAmy Elsner PROPOSAL
Leon X ButtFranceBernardo Dominic UNQUALIFIED
Francesco X ChuiItalyOnyama Limba UNQUALIFIED
Arvin Y OldroydCanadaAmy Elsner NEGOTIATION
Costa M GlickGermanyIvan Magalhaes UNQUALIFIED
Leon T KolmetzRussiaElwin Sharvill NEGOTIATION
Costa J AmigonCanadaStephen Shaw UNQUALIFIED
Alejandro I SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Izzy F MarrierAustraliaStephen Shaw QUALIFIED
Kadeem D RimRussiaIvan Magalhaes NEW
Leja G FlosiBrazilAsiya Javayant UNQUALIFIED
Octavia J DilliardJapanIvan Magalhaes RENEWAL
Salvatore H OldroydFranceElwin Sharvill NEGOTIATION
Emily I FerenczCanadaBernardo Dominic NEW
Stacey V KolmetzAustraliaOnyama Limba RENEWAL
Rodrigues O MacleadIndiaElwin Sharvill UNQUALIFIED
Clifford P FerenczJapanElwin Sharvill UNQUALIFIED
Aika L CampainRussiaAsiya Javayant UNQUALIFIED
Sinclair V SergiFranceAmy Elsner PROPOSAL
Izzy U OstroskyRussiaOnyama Limba QUALIFIED
Chavez D KolmetzCanadaBernardo Dominic RENEWAL
Jefferson X BriddickJapanElwin Sharvill QUALIFIED
Jefferson G BriddickBrazilAnna Fali UNQUALIFIED
Francesco W VocelkaBrazilIvan Magalhaes RENEWAL
Clifford C PoquetteItalyElwin Sharvill UNQUALIFIED
Ashley S TollnerItalyXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Stacey A DoeArgentinaAmy Elsner UNQUALIFIED
Adams V MaletJapanAnna Fali NEW
Johnson M RutaUnited KingdomAsiya Javayant UNQUALIFIED
Cody N IturbideBrazilIvan Magalhaes UNQUALIFIED
Jones T FerenczCanadaStephen Shaw NEGOTIATION
Claire H CaldareraArgentinaAmy Elsner RENEWAL
Francesco F RoysterUnited KingdomStephen Shaw RENEWAL
Tony O StockhamAustraliaStephen Shaw NEW
Ivar E ButtFranceIoni Bowcher NEW
Julie D BowleyItalyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya K PerinJapan2026-07-18Rousseaux, Michael Esq UNQUALIFIED98Onyama Limba
1001Adams P MarrierCanada2026-07-29Truhlar And Truhlar Attys NEGOTIATION99Elwin Sharvill
1002Jeanfrancois D SaylorsJapan2026-07-19Rousseaux, Michael Esq PROPOSAL36Onyama Limba
1003James T BologniaFrance2026-07-30Morlong Associates QUALIFIED85Elwin Sharvill
1004Costa R FollerItaly2026-07-16Dorl, James J Esq RENEWAL34Ivan Magalhaes
1005Arvin E PerinGermany2026-08-06Feiner Bros NEGOTIATION40Asiya Javayant
1006Misaki U RimFrance2026-07-16Benton, John B Jr PROPOSAL31Ioni Bowcher
1007Tony G AmigonGermany2026-07-28Morlong Associates PROPOSAL5Amy Elsner
1008Greenwood Q PerinBrazil2026-07-10Morlong Associates NEGOTIATION29Elwin Sharvill
1009David U SchemmerAustralia2026-07-15Buckley Miller Wright RENEWAL61Ivan Magalhaes
1010Darci D TollnerAustralia2026-08-06Dorl, James J Esq UNQUALIFIED2Onyama Limba
1011Jennifer H OstroskyArgentina2026-08-08Buckley Miller Wright PROPOSAL54Ioni Bowcher
1012Alejandro L WaycottRussia2026-07-22Chanay, Jeffrey A Esq NEGOTIATION37Asiya Javayant
1013Izzy X OstroskySpain2026-08-07Benton, John B Jr RENEWAL28Asiya Javayant
1014Ivar U CaldareraUnited Kingdom2026-08-02Chanay, Jeffrey A Esq NEGOTIATION82Xuxue Feng
1015Ivar I DilliardIndia2026-07-27Chemel, James L Cpa QUALIFIED26Amy Elsner
1016Emily N RulapaughSpain2026-07-10Feltz Printing Service UNQUALIFIED4Asiya Javayant
1017Octavia D RutaRussia2026-07-22Feltz Printing Service RENEWAL93Xuxue Feng
1018Darci B RimUnited Kingdom2026-08-06Truhlar And Truhlar Attys PROPOSAL77Stephen Shaw
1019Octavia K OldroydCanada2026-07-12Feiner Bros QUALIFIED9Ivan Magalhaes
1020Ivar Y PaprockiArgentina2026-07-15Truhlar And Truhlar Attys QUALIFIED40Xuxue Feng
1021Maisha Q PoquetteJapan2026-08-02Commercial Press PROPOSAL65Onyama Limba
1022Mujtaba V RimSpain2026-07-20Chemel, James L Cpa PROPOSAL16Amy Elsner
1023Ashley Q GillianSpain2026-07-27Chanay, Jeffrey A Esq QUALIFIED85Ioni Bowcher
1024Greenwood S IturbideAustralia2026-08-05Rangoni Of Florence UNQUALIFIED57Anna Fali
1025Kaitlin S PoquetteGermany2026-07-23Printing Dimensions RENEWAL54Elwin Sharvill
1026Maria L NestleSpain2026-08-05Commercial Press NEW16Ivan Magalhaes
1027Arvin P KolmetzJapan2026-07-26Commercial Press NEGOTIATION4Asiya Javayant
1028Munro G MacleadGermany2026-07-22Chemel, James L Cpa NEW85Amy Elsner
1029Emily C StensethIndia2026-07-26Rousseaux, Michael Esq NEW52Ioni Bowcher
1030Faith G AmigonArgentina2026-07-16Rousseaux, Michael Esq PROPOSAL37Elwin Sharvill
1031Ashley D StockhamRussia2026-08-07Benton, John B Jr RENEWAL65Stephen Shaw
1032Claire H IturbideBrazil2026-08-07Printing Dimensions NEW69Stephen Shaw
1033Sinclair X CaldareraUnited Kingdom2026-07-23Feltz Printing Service QUALIFIED62Xuxue Feng
1034Jeanfrancois I PaprockiItaly2026-07-11Rousseaux, Michael Esq NEW16Onyama Limba
1035Adams N TollnerIndia2026-08-08Commercial Press RENEWAL54Stephen Shaw
1036Chavez E WhobreyItaly2026-07-12Feltz Printing Service PROPOSAL23Elwin Sharvill
1037Morrow L VocelkaRussia2026-07-23Chapman, Ross E Esq NEW71Amy Elsner
1038Aditya C DarakjySpain2026-07-18Chanay, Jeffrey A Esq NEGOTIATION29Asiya Javayant
1039Salvatore M SergiIndia2026-07-12Chanay, Jeffrey A Esq RENEWAL78Ioni Bowcher
1040Jennifer R RoysterItaly2026-07-11Rousseaux, Michael Esq QUALIFIED21Bernardo Dominic
1041Adams B PoquetteCanada2026-07-30Buckley Miller Wright NEW3Xuxue Feng
1042Costa C MarrierBrazil2026-08-08Chemel, James L Cpa QUALIFIED72Xuxue Feng
1043Maisha W FlosiSpain2026-07-10Rangoni Of Florence QUALIFIED10Xuxue Feng
1044Izzy Z MaletCanada2026-08-05Printing Dimensions NEGOTIATION93Amy Elsner
1045Leon I InouyeCanada2026-07-21Commercial Press NEW48Amy Elsner
1046Murillo S StensethAustralia2026-07-31Rousseaux, Michael Esq QUALIFIED32Xuxue Feng
1047Jones S StensethArgentina2026-08-03Chemel, James L Cpa PROPOSAL36Ioni Bowcher
1048Wickens W RimItaly2026-07-23Dorl, James J Esq QUALIFIED12Amy Elsner
1049Julie O GlickJapan2026-07-14Truhlar And Truhlar Attys NEGOTIATION22Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mayumi D DilliardGermanyOnyama Limba PROPOSAL
Cody N RutaGermanyStephen Shaw UNQUALIFIED
Wickens E KuskoItalyAsiya Javayant PROPOSAL
Deepesh Q RoysterItalyOnyama Limba NEGOTIATION
Silvio M DilliardJapanIoni Bowcher UNQUALIFIED
Alejandro P BologniaUnited KingdomAnna Fali NEW
Francesco O CaudyIndiaIvan Magalhaes UNQUALIFIED
David X IturbideArgentinaElwin Sharvill NEGOTIATION
Clifford F KuskoCanadaAsiya Javayant UNQUALIFIED
Costa O MorascaArgentinaOnyama Limba QUALIFIED
Morrow T KuskoSpainIvan Magalhaes NEGOTIATION
Ricardo M SaylorsUnited KingdomOnyama Limba NEGOTIATION
Stacey N BologniaJapanAmy Elsner NEW
James B FigeroaJapanXuxue Feng UNQUALIFIED
Julie J SchemmerGermanyBernardo Dominic NEW
David O FollerRussiaXuxue Feng PROPOSAL
Kadeem I RoysterBrazilAsiya Javayant UNQUALIFIED
Claire P CaudyFranceElwin Sharvill PROPOSAL
Johnson X NestleFranceOnyama Limba NEGOTIATION
Maria X OstroskyCanadaAsiya Javayant PROPOSAL
Silvio D KuskoJapanStephen Shaw PROPOSAL
Maria F NestleItalyAsiya Javayant NEW
Kaitlin O VocelkaArgentinaXuxue Feng NEGOTIATION
Maisha E RoysterBrazilXuxue Feng NEW
Ricardo U CaudyRussiaOnyama Limba PROPOSAL
Maisha X MaletUnited KingdomStephen Shaw UNQUALIFIED
Leja Q BologniaCanadaOnyama Limba PROPOSAL
Arvin X DilliardArgentinaXuxue Feng UNQUALIFIED
Chavez Z FollerArgentinaIvan Magalhaes NEGOTIATION
Chavez F GlickSpainOnyama Limba UNQUALIFIED
Silvio B CampainItalyOnyama Limba PROPOSAL
Isabel O GauchoUnited KingdomAmy Elsner QUALIFIED
Darci F KolmetzRussiaStephen Shaw UNQUALIFIED
Aika Q CaudyFranceBernardo Dominic NEW
Juan E SaylorsItalyXuxue Feng RENEWAL
Costa H SchemmerSpainIvan Magalhaes PROPOSAL
Adams Q StockhamItalyStephen Shaw UNQUALIFIED
Maisha G GillianAustraliaAsiya Javayant PROPOSAL
Maisha L DilliardArgentinaXuxue Feng NEW
Ashley G SaylorsItalyAnna Fali NEW
Smith V GlickRussiaAsiya Javayant NEW
Claire J GillianSpainStephen Shaw RENEWAL
Smith I BologniaSpainBernardo Dominic NEW
Jennifer U CaldareraCanadaIoni Bowcher QUALIFIED
Wickens N RulapaughIndiaIvan Magalhaes PROPOSAL
Munro U WaycottIndiaStephen Shaw NEGOTIATION
Munro I KuskoCanadaElwin Sharvill UNQUALIFIED
Maria L VocelkaArgentinaElwin Sharvill QUALIFIED
Ricardo L CaudyGermanyBernardo Dominic NEW
Jones P AmigonItalyBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Munro S Saylors
Izzy K Flosi
Munro O Chui
Izzy V Albares
Aditya A Marrier
Sinclair A Iturbide
Jeanfrancois O Tollner
Tony H Royster
James Y Flosi
Murillo Z Shinko
Misaki A Kusko
Ricardo T Tollner
Smith F Paprocki
James L Bolognia
Aruna D Vocelka
Juan B Bolognia
Kaitlin G Rim
Rodrigues L Iturbide
Salvatore R Nicka
Ivar D Whobrey
Francesco N Iturbide
Jeanfrancois T Doe
Jones Y Briddick
Mayumi I Malet
James K Butt
Jefferson K Marrier
Emily K Flosi
Francesco P Malet
Leja V Rulapaugh
Darci Z Perin
Clifford C Schemmer
Mayumi Y Butt
Clifford J Sergi
Rodrigues T Caudy
Juan V Ferencz
Ricardo A Kolmetz
Aika Y Slusarski
Tony W Ruta
Kaitlin L Bolognia
Tony L Campain
Maria D Kolmetz
Octavia Q Shinko
Salvatore W Bolognia
Munro F Poquette
Kaitlin P Malet
Darci U Stenseth
Salvatore H Royster
Costa L Chui
Aruna D Rim
Mayumi V Paprocki
IdCountryDate
1000Italy2026-07-29
1001Argentina2026-07-19
1002Australia2026-07-20
1003Spain2026-07-14
1004Canada2026-07-17
1005Japan2026-07-15
1006Canada2026-08-03
1007Russia2026-07-28
1008France2026-08-08
1009Argentina2026-07-12
1010United Kingdom2026-07-13
1011Australia2026-08-06
1012Germany2026-08-04
1013Brazil2026-07-11
1014Italy2026-08-01
1015France2026-07-13
1016Australia2026-07-24
1017India2026-07-25
1018Australia2026-07-12
1019United Kingdom2026-07-25
1020United Kingdom2026-07-14
1021Japan2026-07-15
1022Argentina2026-07-23
1023Italy2026-08-02
1024United Kingdom2026-07-24
1025Australia2026-08-02
1026Brazil2026-07-19
1027France2026-07-19
1028United Kingdom2026-07-28
1029Argentina2026-07-18
1030France2026-07-31
1031Russia2026-07-10
1032Germany2026-07-22
1033Brazil2026-07-18
1034Canada2026-07-20
1035Argentina2026-07-15
1036France2026-08-01
1037Russia2026-07-13
1038Spain2026-07-22
1039Japan2026-07-14
1040United Kingdom2026-07-21
1041India2026-07-14
1042Germany2026-07-26
1043France2026-08-01
1044Canada2026-08-02
1045Australia2026-07-21
1046Germany2026-07-27
1047Spain2026-07-14
1048Argentina2026-07-16
1049Germany2026-07-29

On-Demand Data

NameIdCountryDate
Leja K Caldarera1000Canada2026-08-05
Faith H Whobrey1001Germany2026-07-16
Maisha F Tollner1002Italy2026-07-15
Jennifer U Ostrosky1003Brazil2026-07-23
Juan R Campain1004Italy2026-08-03
Jones Q Caudy1005Argentina2026-08-06
Arvin S Bolognia1006Italy2026-07-12
Deepesh P Saylors1007Japan2026-07-20
Ricardo T Poquette1008Germany2026-07-23
Chavez F Perin1009Argentina2026-07-20
Leja U Bolognia1010Japan2026-07-21
Claire L Darakjy1011Italy2026-07-24
Chavez V Marrier1012United Kingdom2026-07-27
Silvio K Glick1013Japan2026-07-29
Rodrigues L Ruta1014Germany2026-07-28
Juan C Shinko1015Japan2026-08-04
Juan T Venere1016Spain2026-08-04
Faith Y Rim1017India2026-07-13
Clifford I Figeroa1018Brazil2026-07-24
Ricardo L Poquette1019France2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio A KolmetzBrazilXuxue Feng UNQUALIFIED
Salvatore F MorascaBrazilOnyama Limba PROPOSAL
Octavia L PoquetteUnited KingdomOnyama Limba NEW
Leja U RutaRussiaXuxue Feng PROPOSAL
Rodrigues T StensethCanadaStephen Shaw NEGOTIATION
Francesco I KuskoFranceIoni Bowcher RENEWAL
Jefferson T FigeroaCanadaElwin Sharvill NEW
Wickens J BriddickBrazilIoni Bowcher UNQUALIFIED
Wickens D GillianRussiaOnyama Limba NEGOTIATION
Smith V ButtSpainBernardo Dominic PROPOSAL
Wickens K BriddickIndiaXuxue Feng NEGOTIATION
Sinclair I NickaSpainAmy Elsner QUALIFIED
Nicolas N MarrierJapanAmy Elsner PROPOSAL
Julie H RulapaughIndiaIoni Bowcher QUALIFIED
Smith O SaylorsRussiaElwin Sharvill NEGOTIATION
Mayumi K RutaArgentinaIoni Bowcher RENEWAL
Silvio Q RulapaughArgentinaElwin Sharvill QUALIFIED
Mayumi E FigeroaSpainXuxue Feng RENEWAL
David I KuskoGermanyAmy Elsner RENEWAL
Isabel L GarufiUnited KingdomElwin Sharvill RENEWAL
Aruna I WieserUnited KingdomAsiya Javayant RENEWAL
Maisha P FerenczIndiaStephen Shaw NEGOTIATION
Mujtaba M ChuiIndiaIvan Magalhaes RENEWAL
David Y GlickGermanyBernardo Dominic PROPOSAL
Leja W KuskoSpainAsiya Javayant PROPOSAL
David H PaprockiIndiaXuxue Feng RENEWAL
Maisha U DilliardJapanXuxue Feng NEW
Johnson E VenereSpainElwin Sharvill UNQUALIFIED
Darci N WhobreyGermanyIvan Magalhaes RENEWAL
Tony C StensethRussiaOnyama Limba QUALIFIED
Ricardo G RulapaughArgentinaElwin Sharvill PROPOSAL
Alejandro M PoquetteRussiaOnyama Limba PROPOSAL
Aika E FlosiFranceStephen Shaw NEW
Chavez K PoquetteRussiaBernardo Dominic NEW
Ashley S VocelkaAustraliaElwin Sharvill UNQUALIFIED
Juan A AlbaresJapanAsiya Javayant UNQUALIFIED
Jones T FollerJapanXuxue Feng RENEWAL
Johnson O IturbideAustraliaAnna Fali NEW
Kaitlin A VenereItalyAmy Elsner RENEWAL
Aika V KuskoUnited KingdomAnna Fali 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>