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
Faith H MaletCanadaXuxue Feng UNQUALIFIED
Nicolas H MacleadArgentinaXuxue Feng PROPOSAL
Leon Z BriddickGermanyAnna Fali NEW
Maisha F CaudyCanadaStephen Shaw PROPOSAL
Maisha R FollerCanadaBernardo Dominic NEGOTIATION
Jennifer G GlickRussiaIoni Bowcher UNQUALIFIED
Maisha K WhobreyUnited KingdomElwin Sharvill QUALIFIED
Costa N GlickUnited KingdomOnyama Limba QUALIFIED
Jones R MaletFranceXuxue Feng PROPOSAL
Munro A CaudyItalyAmy Elsner NEW
Cody R AmigonGermanyElwin Sharvill QUALIFIED
Maisha A FlosiAustraliaIoni Bowcher UNQUALIFIED
Rodrigues N MaletItalyAsiya Javayant PROPOSAL
Greenwood U DilliardBrazilStephen Shaw NEGOTIATION
Morrow A MarrierBrazilIvan Magalhaes NEGOTIATION
Nicolas F VenereItalyIoni Bowcher NEW
Julie T CaldareraIndiaStephen Shaw NEW
Costa B GillianUnited KingdomAsiya Javayant RENEWAL
Ricardo X PaprockiUnited KingdomStephen Shaw UNQUALIFIED
Leja T KolmetzRussiaIoni Bowcher QUALIFIED
Maisha B MaletRussiaIoni Bowcher NEGOTIATION
Octavia V VocelkaItalyStephen Shaw NEW
Mujtaba B BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba K RimUnited KingdomAsiya Javayant UNQUALIFIED
Tony T ButtRussiaIoni Bowcher UNQUALIFIED
Aditya H TollnerBrazilOnyama Limba NEGOTIATION
Silvio D VenereAustraliaAmy Elsner NEW
Aditya A AlbaresArgentinaBernardo Dominic UNQUALIFIED
Kaitlin T MaletItalyAmy Elsner UNQUALIFIED
Jennifer O DoeUnited KingdomOnyama Limba QUALIFIED
Ivar H DoeArgentinaOnyama Limba PROPOSAL
Darci X RimJapanOnyama Limba UNQUALIFIED
Sinclair J OstroskyIndiaIoni Bowcher RENEWAL
Deepesh M GauchoArgentinaElwin Sharvill QUALIFIED
Rodrigues B FigeroaJapanXuxue Feng NEW
James C PerinFranceIvan Magalhaes RENEWAL
Jefferson A StensethJapanXuxue Feng UNQUALIFIED
Izzy C DoeAustraliaStephen Shaw UNQUALIFIED
Darci N GillianArgentinaIvan Magalhaes QUALIFIED
Aruna H WaycottIndiaAnna Fali NEGOTIATION
Jennifer Q AlbaresAustraliaStephen Shaw NEW
Kaitlin F VocelkaAustraliaIvan Magalhaes PROPOSAL
Mayumi B MarrierIndiaIvan Magalhaes NEGOTIATION
James E FigeroaArgentinaIvan Magalhaes NEW
Leja E BriddickCanadaXuxue Feng QUALIFIED
Mayumi V DilliardFranceAsiya Javayant PROPOSAL
Maisha F DarakjyUnited KingdomAsiya Javayant RENEWAL
Mujtaba N BologniaRussiaIoni Bowcher RENEWAL
Rodrigues X AlbaresCanadaIoni Bowcher NEW
Ricardo F PerinItalyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kadeem N ButtCanadaXuxue Feng PROPOSAL
Kadeem F WhobreyArgentinaIvan Magalhaes NEGOTIATION
Mujtaba P FigeroaRussiaAnna Fali RENEWAL
Adams V PoquetteAustraliaOnyama Limba QUALIFIED
Arvin W MaletBrazilAsiya Javayant NEW
Johnson O ChuiRussiaIoni Bowcher PROPOSAL
Jefferson H StensethAustraliaXuxue Feng PROPOSAL
Chavez K DarakjySpainAsiya Javayant NEGOTIATION
Francesco P AlbaresFranceIoni Bowcher QUALIFIED
Claire X WieserFranceAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David I FerenczCanada2026-08-14Dorl, James J Esq UNQUALIFIED24Stephen Shaw
1001Izzy U DarakjyFrance2026-07-22Printing Dimensions NEGOTIATION71Asiya Javayant
1002Jones C RulapaughArgentina2026-08-19Chapman, Ross E Esq NEW98Ioni Bowcher
1003Aika C BowleyRussia2026-08-09King, Christopher A Esq PROPOSAL37Elwin Sharvill
1004Leja E CaudyFrance2026-07-25Chemel, James L Cpa QUALIFIED84Bernardo Dominic
1005Munro R MacleadAustralia2026-08-03Chemel, James L Cpa PROPOSAL10Xuxue Feng
1006Johnson S AmigonIndia2026-07-26Rousseaux, Michael Esq QUALIFIED29Anna Fali
1007Munro W NickaFrance2026-07-24Chapman, Ross E Esq UNQUALIFIED43Xuxue Feng
1008Costa E FlosiBrazil2026-07-22Rousseaux, Michael Esq RENEWAL2Stephen Shaw
1009Claire D RimItaly2026-08-07Buckley Miller Wright NEGOTIATION71Ioni Bowcher
1010Aditya T PerinArgentina2026-07-22Truhlar And Truhlar Attys RENEWAL50Xuxue Feng
1011Ricardo E OldroydGermany2026-07-28Rangoni Of Florence NEGOTIATION77Elwin Sharvill
1012Rodrigues T CaudyJapan2026-08-04Feiner Bros NEW47Ioni Bowcher
1013Arvin F AmigonGermany2026-07-23Dorl, James J Esq NEGOTIATION34Elwin Sharvill
1014Rodrigues W KolmetzAustralia2026-08-06Printing Dimensions UNQUALIFIED38Xuxue Feng
1015Jennifer T ButtSpain2026-08-01Chapman, Ross E Esq PROPOSAL22Asiya Javayant
1016Rodrigues A GillianSpain2026-07-23Feltz Printing Service NEGOTIATION82Anna Fali
1017Mayumi N SlusarskiBrazil2026-08-05Rousseaux, Michael Esq RENEWAL98Stephen Shaw
1018James M CampainIndia2026-08-03Rousseaux, Michael Esq RENEWAL17Asiya Javayant
1019Adams G BriddickJapan2026-08-11Commercial Press QUALIFIED48Ioni Bowcher
1020Costa G StockhamGermany2026-08-05Commercial Press PROPOSAL68Stephen Shaw
1021Arvin Y RutaUnited Kingdom2026-07-24Feltz Printing Service NEW80Elwin Sharvill
1022Aruna D DarakjyIndia2026-08-10Commercial Press UNQUALIFIED78Onyama Limba
1023David P DilliardGermany2026-08-19Truhlar And Truhlar Attys QUALIFIED39Amy Elsner
1024Cody Q StockhamItaly2026-07-28Chemel, James L Cpa NEGOTIATION11Ioni Bowcher
1025Johnson D KolmetzFrance2026-07-28Chemel, James L Cpa NEGOTIATION71Xuxue Feng
1026Rodrigues I VenereArgentina2026-08-03Benton, John B Jr NEW28Ivan Magalhaes
1027Maisha U StockhamCanada2026-07-26Buckley Miller Wright PROPOSAL64Asiya Javayant
1028Arvin B NestleAustralia2026-08-16Buckley Miller Wright NEGOTIATION53Elwin Sharvill
1029Aika H FigeroaArgentina2026-08-08Morlong Associates NEW68Ivan Magalhaes
1030Adams Y GlickCanada2026-08-20Buckley Miller Wright UNQUALIFIED76Ioni Bowcher
1031Julie Z RimItaly2026-07-23Commercial Press NEW6Anna Fali
1032Faith L FlosiBrazil2026-07-27Truhlar And Truhlar Attys RENEWAL90Elwin Sharvill
1033Isabel C MarrierIndia2026-07-27Truhlar And Truhlar Attys UNQUALIFIED83Onyama Limba
1034Mayumi O WhobreySpain2026-08-02Truhlar And Truhlar Attys PROPOSAL85Onyama Limba
1035Johnson K StockhamUnited Kingdom2026-07-23Dorl, James J Esq UNQUALIFIED81Ivan Magalhaes
1036Sinclair N NestleRussia2026-08-09Chanay, Jeffrey A Esq NEW66Asiya Javayant
1037Cody K RutaRussia2026-08-07Chapman, Ross E Esq NEW68Stephen Shaw
1038Faith A SlusarskiItaly2026-07-31Dorl, James J Esq PROPOSAL49Asiya Javayant
1039Smith Y VenereGermany2026-08-07Commercial Press UNQUALIFIED89Onyama Limba
1040Greenwood S ShinkoItaly2026-08-10Rangoni Of Florence PROPOSAL80Onyama Limba
1041Jones B SlusarskiSpain2026-08-15King, Christopher A Esq RENEWAL79Anna Fali
1042Smith H SergiBrazil2026-08-01Feiner Bros PROPOSAL60Asiya Javayant
1043Rodrigues T FollerAustralia2026-08-06Rousseaux, Michael Esq QUALIFIED8Elwin Sharvill
1044Julie I WaycottSpain2026-07-26Printing Dimensions NEGOTIATION51Ivan Magalhaes
1045Antonio M KolmetzBrazil2026-07-30Benton, John B Jr NEGOTIATION60Amy Elsner
1046Sinclair D ShinkoCanada2026-08-10Printing Dimensions NEGOTIATION69Onyama Limba
1047Maisha J CampainRussia2026-08-15Buckley Miller Wright UNQUALIFIED25Anna Fali
1048Ashley Y CampainRussia2026-07-25Chanay, Jeffrey A Esq NEGOTIATION33Bernardo Dominic
1049Faith K PaprockiAustralia2026-07-29Rousseaux, Michael Esq RENEWAL7Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi G StockhamArgentinaStephen Shaw UNQUALIFIED
Rodrigues P IturbideUnited KingdomIoni Bowcher NEW
Ricardo M PerinCanadaAsiya Javayant UNQUALIFIED
Octavia F CaudyUnited KingdomIvan Magalhaes PROPOSAL
Kadeem X WaycottJapanAmy Elsner QUALIFIED
Arvin N ChuiUnited KingdomElwin Sharvill PROPOSAL
Adams F MorascaCanadaAsiya Javayant PROPOSAL
Leon J AlbaresBrazilAmy Elsner UNQUALIFIED
Clifford S OstroskyIndiaOnyama Limba UNQUALIFIED
Jones D GarufiBrazilOnyama Limba UNQUALIFIED
Greenwood U RimAustraliaElwin Sharvill UNQUALIFIED
Morrow L MarrierCanadaStephen Shaw NEW
Antonio Z DilliardGermanyIoni Bowcher NEW
Nicolas R WieserJapanOnyama Limba NEGOTIATION
Claire R PoquetteSpainBernardo Dominic NEGOTIATION
Smith J NestleItalyIoni Bowcher QUALIFIED
Kaitlin G ChuiJapanElwin Sharvill UNQUALIFIED
Smith A WhobreyFranceAnna Fali PROPOSAL
Ivar H CampainUnited KingdomStephen Shaw NEW
Kaitlin U MacleadFranceBernardo Dominic RENEWAL
Rodrigues O GarufiJapanStephen Shaw QUALIFIED
Emily J ButtRussiaElwin Sharvill PROPOSAL
Francesco X SergiSpainBernardo Dominic RENEWAL
Chavez A StensethArgentinaAnna Fali RENEWAL
Jones K PaprockiIndiaOnyama Limba UNQUALIFIED
Arvin I PaprockiBrazilOnyama Limba NEW
Faith X IturbideArgentinaBernardo Dominic PROPOSAL
Jennifer B MacleadArgentinaElwin Sharvill QUALIFIED
Faith T StensethJapanXuxue Feng UNQUALIFIED
Rodrigues V FigeroaGermanyStephen Shaw NEW
Johnson P KolmetzSpainBernardo Dominic UNQUALIFIED
Mujtaba R ShinkoAustraliaIoni Bowcher RENEWAL
Julie J BowleyCanadaIoni Bowcher PROPOSAL
Stacey X CaudyItalyStephen Shaw QUALIFIED
Morrow E PoquetteItalyElwin Sharvill RENEWAL
Mayumi G WieserArgentinaElwin Sharvill RENEWAL
Wickens Z OstroskyUnited KingdomIoni Bowcher NEW
Francesco H CaldareraUnited KingdomAnna Fali NEW
Adams N CaudyAustraliaAmy Elsner NEGOTIATION
Rodrigues D CaldareraSpainIvan Magalhaes PROPOSAL
Kaitlin Y GillianSpainIoni Bowcher NEW
Misaki T WhobreyItalyOnyama Limba QUALIFIED
Misaki T StockhamCanadaXuxue Feng QUALIFIED
Darci U AmigonFranceIoni Bowcher NEGOTIATION
Juan G GillianIndiaBernardo Dominic UNQUALIFIED
Clifford E SaylorsFranceOnyama Limba RENEWAL
Tony R DoeCanadaIoni Bowcher NEGOTIATION
Izzy R WieserArgentinaXuxue Feng PROPOSAL
Deepesh Z ButtRussiaAmy Elsner NEW
Leja I MorascaArgentinaOnyama Limba NEW
Frozen Columns
Name
Clifford R Whobrey
Leja V Venere
Misaki C Ruta
Kadeem T Wieser
Cody N Flosi
Munro L Malet
Munro R Dilliard
Misaki L Oldroyd
Greenwood O Darakjy
Isabel X Briddick
Morrow O Malet
Claire R Saylors
Kadeem V Marrier
Salvatore C Flosi
Chavez D Morasca
Kadeem R Foller
Sinclair B Sergi
Ivar Z Caudy
Adams K Chui
Maisha P Bowley
Aruna X Stockham
Smith B Ferencz
Faith L Stenseth
David I Nestle
Kadeem T Tollner
Maria F Doe
Ricardo U Glick
Jeanfrancois R Ruta
Morrow I Malet
Emily W Caudy
Kaitlin K Nestle
Emily P Ostrosky
Alejandro A Amigon
Adams I Gaucho
Chavez O Wieser
Francesco Q Ostrosky
Aditya K Wieser
James P Maclead
Alejandro G Ostrosky
Misaki M Dilliard
Rodrigues N Shinko
Murillo P Wieser
Octavia O Morasca
Murillo P Foller
Alejandro J Nicka
Isabel E Nicka
Adams O Glick
Ivar T Stenseth
David I Nicka
Misaki W Malet
IdCountryDate
1000Australia2026-08-15
1001Canada2026-08-15
1002United Kingdom2026-07-24
1003Brazil2026-07-22
1004Germany2026-08-18
1005India2026-07-27
1006Canada2026-08-18
1007Argentina2026-08-18
1008Spain2026-08-19
1009France2026-07-22
1010India2026-08-15
1011Brazil2026-07-27
1012India2026-08-02
1013France2026-08-19
1014Russia2026-08-10
1015Brazil2026-08-03
1016Japan2026-08-18
1017Brazil2026-07-25
1018Spain2026-08-11
1019Brazil2026-08-04
1020Brazil2026-07-25
1021Canada2026-08-15
1022Italy2026-08-16
1023Argentina2026-07-25
1024France2026-08-08
1025Russia2026-08-16
1026Italy2026-08-18
1027Italy2026-08-19
1028Argentina2026-08-04
1029Italy2026-08-12
1030United Kingdom2026-08-04
1031Canada2026-08-04
1032Argentina2026-07-30
1033Russia2026-07-23
1034United Kingdom2026-08-05
1035India2026-08-08
1036Japan2026-08-09
1037Argentina2026-08-05
1038Germany2026-08-16
1039Canada2026-08-06
1040Spain2026-08-02
1041Argentina2026-07-29
1042India2026-08-03
1043Russia2026-08-13
1044Russia2026-08-07
1045Japan2026-08-16
1046Germany2026-07-30
1047United Kingdom2026-08-12
1048Argentina2026-08-05
1049Brazil2026-08-17

On-Demand Data

NameIdCountryDate
David J Inouye1000Spain2026-08-10
Aika W Butt1001Argentina2026-07-31
Wickens M Inouye1002France2026-07-22
Darci P Stenseth1003Germany2026-08-14
Izzy H Shinko1004India2026-07-22
David T Rim1005Russia2026-08-12
Jefferson P Saylors1006France2026-08-17
Misaki L Dilliard1007Russia2026-08-02
Mayumi M Malet1008Spain2026-08-18
Ashley V Briddick1009Russia2026-08-09
Clifford H Briddick1010Canada2026-07-30
Nicolas H Butt1011Brazil2026-08-19
Leon G Whobrey1012Italy2026-07-22
Ricardo P Gillian1013Brazil2026-07-22
Munro Q Slusarski1014France2026-08-19
Clifford S Foller1015India2026-08-17
Darci Z Marrier1016Australia2026-07-31
Claire Z Ostrosky1017Brazil2026-07-24
Rodrigues C Doe1018Japan2026-08-11
Cody W Stenseth1019Italy2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki L RulapaughRussiaElwin Sharvill NEGOTIATION
Emily W TollnerAustraliaAnna Fali QUALIFIED
Kadeem U RulapaughCanadaAsiya Javayant QUALIFIED
Francesco W SchemmerBrazilIoni Bowcher NEGOTIATION
Tony D IturbideIndiaElwin Sharvill UNQUALIFIED
Cody F WhobreyGermanyXuxue Feng NEGOTIATION
Ricardo Q StockhamGermanyAmy Elsner RENEWAL
Julie I BowleyGermanyBernardo Dominic NEGOTIATION
Mayumi T SergiCanadaOnyama Limba NEW
Cody W WhobreyIndiaAnna Fali NEGOTIATION
Ivar Q InouyeRussiaIvan Magalhaes RENEWAL
Octavia Z MacleadSpainXuxue Feng NEW
Stacey N RutaBrazilElwin Sharvill QUALIFIED
Greenwood X GillianBrazilIvan Magalhaes NEGOTIATION
Stacey P WaycottFranceElwin Sharvill NEGOTIATION
Jones S PaprockiItalyStephen Shaw QUALIFIED
Sinclair A PaprockiItalyIoni Bowcher NEGOTIATION
Mayumi R InouyeCanadaBernardo Dominic RENEWAL
Antonio C KuskoAustraliaOnyama Limba RENEWAL
Faith V GillianSpainAmy Elsner QUALIFIED
Munro Z GauchoJapanOnyama Limba RENEWAL
Jefferson D GauchoAustraliaXuxue Feng NEGOTIATION
Jones B CaldareraFranceXuxue Feng PROPOSAL
Claire J ShinkoBrazilStephen Shaw UNQUALIFIED
David W OstroskyBrazilAmy Elsner NEGOTIATION
Murillo S WhobreyItalyAnna Fali UNQUALIFIED
Jones G GillianIndiaXuxue Feng RENEWAL
Nicolas T FigeroaCanadaAmy Elsner QUALIFIED
Rodrigues H DarakjyCanadaIoni Bowcher PROPOSAL
Rodrigues J VenereAustraliaXuxue Feng UNQUALIFIED
Jones E AmigonSpainIoni Bowcher NEGOTIATION
Aditya Y PerinAustraliaAsiya Javayant RENEWAL
Deepesh U OldroydSpainAnna Fali QUALIFIED
Jones Q SchemmerItalyIoni Bowcher RENEWAL
David V KuskoIndiaElwin Sharvill NEW
Isabel C PoquetteFranceBernardo Dominic NEW
Jones Z KuskoBrazilAmy Elsner NEW
Kadeem Y NestleAustraliaBernardo Dominic PROPOSAL
Ricardo K OldroydGermanyOnyama Limba PROPOSAL
Aditya B GarufiItalyAnna Fali UNQUALIFIED

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