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
Ivar N WieserUnited KingdomAsiya Javayant PROPOSAL
Johnson D FlosiRussiaIoni Bowcher QUALIFIED
Jones E SaylorsBrazilAnna Fali NEW
Ricardo X PoquetteBrazilIoni Bowcher RENEWAL
Faith Z FollerCanadaAnna Fali NEGOTIATION
Antonio Q NestleItalyAmy Elsner RENEWAL
Jefferson J ChuiIndiaStephen Shaw PROPOSAL
Jones E MaletCanadaXuxue Feng UNQUALIFIED
Francesco R SchemmerItalyBernardo Dominic NEGOTIATION
Morrow A DoeFranceBernardo Dominic PROPOSAL
Julie J CampainItalyStephen Shaw UNQUALIFIED
Maisha Z ChuiFranceBernardo Dominic RENEWAL
Murillo N PoquetteBrazilXuxue Feng PROPOSAL
Ricardo Z CampainIndiaAnna Fali PROPOSAL
Morrow Y InouyeAustraliaStephen Shaw NEGOTIATION
Ricardo P GillianItalyBernardo Dominic RENEWAL
Jennifer E KolmetzCanadaIoni Bowcher UNQUALIFIED
Rodrigues J RulapaughCanadaStephen Shaw PROPOSAL
Greenwood Y GarufiIndiaAmy Elsner RENEWAL
Francesco H GlickGermanyAmy Elsner NEGOTIATION
Maria L ShinkoBrazilAnna Fali PROPOSAL
Ashley R NestleUnited KingdomOnyama Limba RENEWAL
Salvatore F MarrierSpainElwin Sharvill QUALIFIED
Aditya T MaletCanadaElwin Sharvill PROPOSAL
Maria F WaycottCanadaOnyama Limba NEGOTIATION
Munro E FollerFranceXuxue Feng PROPOSAL
Johnson T GarufiArgentinaAnna Fali QUALIFIED
Jones Q CaudyUnited KingdomStephen Shaw QUALIFIED
Sinclair T FlosiUnited KingdomAsiya Javayant QUALIFIED
Adams Z FollerAustraliaIvan Magalhaes NEGOTIATION
Aruna B RoysterArgentinaElwin Sharvill NEGOTIATION
Emily G AlbaresSpainIoni Bowcher NEW
Munro X FerenczJapanIoni Bowcher RENEWAL
Greenwood A MarrierIndiaBernardo Dominic QUALIFIED
Isabel L AmigonBrazilAsiya Javayant NEGOTIATION
Adams L MaletGermanyStephen Shaw UNQUALIFIED
Mayumi I MorascaAustraliaOnyama Limba PROPOSAL
Aditya N MarrierBrazilElwin Sharvill RENEWAL
Smith U DoeJapanStephen Shaw RENEWAL
Octavia O FigeroaRussiaXuxue Feng PROPOSAL
Rodrigues O SchemmerUnited KingdomOnyama Limba PROPOSAL
Aruna U DarakjyAustraliaAnna Fali RENEWAL
Munro D PoquetteAustraliaElwin Sharvill QUALIFIED
Deepesh Z MaletAustraliaAmy Elsner PROPOSAL
Misaki T RoysterJapanIoni Bowcher PROPOSAL
Kadeem S InouyeJapanIvan Magalhaes NEW
Aika T GlickUnited KingdomAnna Fali PROPOSAL
Deepesh T OstroskyGermanyAmy Elsner UNQUALIFIED
Isabel A DilliardUnited KingdomXuxue Feng NEGOTIATION
Antonio E WhobreyIndiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Smith A WieserCanadaElwin Sharvill NEW
Murillo R NestleItalyStephen Shaw NEW
Leon Q SergiAustraliaIoni Bowcher NEGOTIATION
Salvatore D ShinkoSpainElwin Sharvill UNQUALIFIED
Costa H VocelkaRussiaIoni Bowcher RENEWAL
Jones X BowleyRussiaIoni Bowcher NEW
Leon C FigeroaJapanXuxue Feng RENEWAL
Ashley Z InouyeSpainElwin Sharvill PROPOSAL
Morrow W DoeItalyAnna Fali QUALIFIED
Jefferson B SlusarskiFranceAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba P DarakjyFrance2026-08-14Chapman, Ross E Esq NEGOTIATION47Xuxue Feng
1001Maisha Q GlickFrance2026-08-11Morlong Associates UNQUALIFIED22Bernardo Dominic
1002Ashley M FollerSpain2026-08-04Commercial Press NEGOTIATION24Amy Elsner
1003Adams Q StockhamIndia2026-07-27Truhlar And Truhlar Attys NEGOTIATION16Anna Fali
1004Morrow Y WaycottBrazil2026-07-19Dorl, James J Esq UNQUALIFIED51Anna Fali
1005Adams J SchemmerGermany2026-08-02Chemel, James L Cpa NEGOTIATION92Onyama Limba
1006Aruna N DarakjyUnited Kingdom2026-08-10Commercial Press RENEWAL70Ivan Magalhaes
1007Mayumi W BowleyItaly2026-07-18Feltz Printing Service QUALIFIED54Ioni Bowcher
1008Silvio V FerenczFrance2026-08-05Morlong Associates PROPOSAL86Amy Elsner
1009Emily U VocelkaRussia2026-07-26Truhlar And Truhlar Attys PROPOSAL62Asiya Javayant
1010Greenwood J OstroskyIndia2026-08-07Truhlar And Truhlar Attys NEW13Elwin Sharvill
1011Ricardo J CaldareraJapan2026-08-15Morlong Associates RENEWAL44Bernardo Dominic
1012Maisha L CaudyArgentina2026-08-04Commercial Press QUALIFIED38Xuxue Feng
1013Leja J DoeRussia2026-08-02Rousseaux, Michael Esq NEGOTIATION28Amy Elsner
1014Leja L BowleyUnited Kingdom2026-08-13Rangoni Of Florence UNQUALIFIED78Ioni Bowcher
1015Munro A PoquetteBrazil2026-08-08Morlong Associates PROPOSAL50Bernardo Dominic
1016Leon J GauchoArgentina2026-07-20Chapman, Ross E Esq UNQUALIFIED4Onyama Limba
1017Chavez R SchemmerAustralia2026-07-26Rousseaux, Michael Esq RENEWAL25Xuxue Feng
1018Salvatore M MacleadArgentina2026-08-15Morlong Associates PROPOSAL69Onyama Limba
1019Juan L RoysterFrance2026-07-31Rangoni Of Florence UNQUALIFIED74Amy Elsner
1020Francesco Q MacleadSpain2026-08-08Feiner Bros PROPOSAL53Bernardo Dominic
1021Johnson Y ShinkoFrance2026-08-13Printing Dimensions QUALIFIED67Xuxue Feng
1022Smith U FerenczBrazil2026-07-27Buckley Miller Wright NEGOTIATION13Asiya Javayant
1023Costa Z AmigonSpain2026-08-01Buckley Miller Wright UNQUALIFIED79Stephen Shaw
1024Faith R AlbaresGermany2026-07-31Morlong Associates NEW32Amy Elsner
1025Clifford W OstroskySpain2026-07-17Chanay, Jeffrey A Esq NEW84Ivan Magalhaes
1026Misaki H IturbideJapan2026-08-05Rangoni Of Florence PROPOSAL54Anna Fali
1027Ivar R GauchoCanada2026-08-06Truhlar And Truhlar Attys NEGOTIATION10Bernardo Dominic
1028David K SaylorsArgentina2026-07-30Buckley Miller Wright NEW6Asiya Javayant
1029Munro V MarrierSpain2026-08-02Chanay, Jeffrey A Esq PROPOSAL96Xuxue Feng
1030Mayumi T SaylorsIndia2026-08-11King, Christopher A Esq NEW45Bernardo Dominic
1031Maria D BowleyIndia2026-08-02Chapman, Ross E Esq UNQUALIFIED92Onyama Limba
1032Darci O BologniaIndia2026-08-06Rangoni Of Florence NEGOTIATION8Xuxue Feng
1033Isabel R WaycottItaly2026-08-05Commercial Press QUALIFIED66Amy Elsner
1034Leon L InouyeBrazil2026-07-27Rangoni Of Florence PROPOSAL83Xuxue Feng
1035Octavia G BriddickSpain2026-07-26Chapman, Ross E Esq NEGOTIATION57Anna Fali
1036Claire B WaycottAustralia2026-08-08Rangoni Of Florence RENEWAL14Amy Elsner
1037Izzy K PoquetteCanada2026-07-22Buckley Miller Wright PROPOSAL2Xuxue Feng
1038Leja G InouyeArgentina2026-07-19Feltz Printing Service UNQUALIFIED76Onyama Limba
1039Leon Q FerenczItaly2026-08-10Dorl, James J Esq UNQUALIFIED9Asiya Javayant
1040Kadeem E RutaRussia2026-07-24Feiner Bros QUALIFIED21Ivan Magalhaes
1041Costa A RutaCanada2026-08-14Chanay, Jeffrey A Esq PROPOSAL99Ioni Bowcher
1042Jeanfrancois J MorascaUnited Kingdom2026-07-20Truhlar And Truhlar Attys NEW92Stephen Shaw
1043Clifford L WhobreyArgentina2026-08-05Truhlar And Truhlar Attys NEW37Asiya Javayant
1044Greenwood P WaycottItaly2026-07-28Truhlar And Truhlar Attys NEGOTIATION6Ivan Magalhaes
1045Emily Y ChuiItaly2026-07-21Rangoni Of Florence QUALIFIED3Asiya Javayant
1046Cody J WieserAustralia2026-07-23Feiner Bros PROPOSAL38Xuxue Feng
1047Mayumi E VenereRussia2026-08-10Feiner Bros RENEWAL30Elwin Sharvill
1048Deepesh G VocelkaCanada2026-07-20Feiner Bros NEW22Xuxue Feng
1049Juan H KolmetzRussia2026-07-30Morlong Associates UNQUALIFIED82Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem L BowleyFranceAmy Elsner RENEWAL
Maisha P RoysterItalyElwin Sharvill QUALIFIED
Leon E SaylorsRussiaAsiya Javayant RENEWAL
Deepesh X RulapaughJapanElwin Sharvill UNQUALIFIED
Wickens Q GarufiCanadaAnna Fali NEW
Murillo A FlosiGermanyStephen Shaw UNQUALIFIED
James W CaudyJapanAsiya Javayant PROPOSAL
Tony N WhobreyArgentinaBernardo Dominic QUALIFIED
Silvio C WaycottAustraliaIvan Magalhaes PROPOSAL
Clifford D KolmetzArgentinaElwin Sharvill PROPOSAL
Kadeem F PaprockiItalyStephen Shaw NEW
Maria Q DilliardGermanyIvan Magalhaes RENEWAL
Izzy I StensethBrazilXuxue Feng QUALIFIED
Wickens X PaprockiArgentinaAnna Fali NEW
Aika S DoeJapanIvan Magalhaes NEGOTIATION
Murillo S WieserBrazilAsiya Javayant UNQUALIFIED
Clifford A VenereIndiaIvan Magalhaes NEW
Leon D RulapaughGermanyAsiya Javayant NEW
Wickens L WieserArgentinaAmy Elsner UNQUALIFIED
Morrow F CampainUnited KingdomBernardo Dominic NEW
Arvin P MaletJapanOnyama Limba RENEWAL
Mujtaba N OstroskyUnited KingdomAnna Fali NEGOTIATION
Alejandro Z CampainRussiaAnna Fali QUALIFIED
Emily C MaletBrazilBernardo Dominic NEGOTIATION
Aika O StockhamGermanyAnna Fali QUALIFIED
Greenwood A CaldareraCanadaIvan Magalhaes UNQUALIFIED
David K PerinJapanAsiya Javayant UNQUALIFIED
Misaki I NestleItalyAnna Fali UNQUALIFIED
Smith S DoeBrazilAnna Fali PROPOSAL
Maisha F BriddickUnited KingdomIvan Magalhaes NEW
Kaitlin X AmigonAustraliaElwin Sharvill NEGOTIATION
Aika R FigeroaArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois K OstroskyCanadaXuxue Feng PROPOSAL
Juan R ChuiRussiaXuxue Feng NEW
Clifford Z SergiIndiaBernardo Dominic RENEWAL
Adams B OstroskyRussiaIoni Bowcher NEW
Ashley Q SaylorsArgentinaStephen Shaw QUALIFIED
Jones L GillianRussiaStephen Shaw RENEWAL
Alejandro O StensethCanadaIoni Bowcher NEGOTIATION
Jennifer G WaycottCanadaElwin Sharvill PROPOSAL
Ivar X AlbaresJapanIvan Magalhaes UNQUALIFIED
Misaki B AmigonCanadaAsiya Javayant QUALIFIED
Jones D FollerGermanyIvan Magalhaes NEW
Izzy L RutaArgentinaBernardo Dominic NEW
Mujtaba P BologniaUnited KingdomIvan Magalhaes PROPOSAL
Kaitlin B DarakjyIndiaOnyama Limba PROPOSAL
Cody B RimRussiaElwin Sharvill QUALIFIED
Leja P ChuiItalyStephen Shaw RENEWAL
Deepesh T VocelkaBrazilStephen Shaw PROPOSAL
Deepesh E GauchoSpainAnna Fali NEGOTIATION
Frozen Columns
Name
Darci P Briddick
Munro J Royster
Darci Y Iturbide
Darci Z Tollner
Francesco E Schemmer
Maria R Oldroyd
Morrow Q Rim
Ivar P Ostrosky
Ricardo C Maclead
Deepesh A Iturbide
Costa L Foller
Murillo T Ostrosky
Stacey F Stenseth
Claire V Saylors
Wickens C Dilliard
Tony B Schemmer
Johnson Z Perin
Nicolas R Nestle
Sinclair G Chui
James R Saylors
Sinclair Z Waycott
Isabel M Waycott
Arvin R Slusarski
Emily R Iturbide
Murillo N Malet
Johnson N Ostrosky
Izzy K Kusko
Arvin X Gaucho
Cody J Malet
Izzy X Sergi
Rodrigues D Bolognia
Wickens Y Inouye
Izzy B Bolognia
Leon Q Schemmer
Silvio M Vocelka
Jeanfrancois M Bowley
Silvio E Chui
Maria R Nestle
Izzy C Ferencz
Jennifer L Bolognia
Aditya L Caudy
Leon M Foller
Antonio A Gillian
Stacey B Glick
Aditya F Malet
Ricardo E Poquette
Ricardo S Perin
Johnson U Oldroyd
Tony B Campain
Isabel V Bolognia
IdCountryDate
1000Argentina2026-07-26
1001Italy2026-07-18
1002Spain2026-07-29
1003Japan2026-08-04
1004Canada2026-08-14
1005France2026-08-03
1006Brazil2026-07-28
1007Brazil2026-08-06
1008Italy2026-07-17
1009Russia2026-08-10
1010United Kingdom2026-07-21
1011Japan2026-08-06
1012Argentina2026-08-12
1013Brazil2026-08-01
1014Russia2026-07-21
1015Spain2026-08-13
1016France2026-07-17
1017Italy2026-08-08
1018India2026-08-04
1019Canada2026-07-24
1020Germany2026-07-21
1021Spain2026-08-07
1022Argentina2026-08-08
1023Canada2026-08-05
1024Canada2026-07-31
1025Canada2026-08-02
1026Brazil2026-07-26
1027Canada2026-07-21
1028Japan2026-07-23
1029Spain2026-07-23
1030Spain2026-07-18
1031France2026-07-22
1032Japan2026-08-08
1033Canada2026-08-11
1034Australia2026-07-31
1035India2026-08-04
1036Brazil2026-08-15
1037United Kingdom2026-08-14
1038India2026-07-17
1039India2026-08-14
1040Spain2026-07-29
1041Japan2026-07-27
1042Canada2026-08-04
1043India2026-08-12
1044Canada2026-07-31
1045Australia2026-08-13
1046Italy2026-07-19
1047Japan2026-07-27
1048France2026-08-13
1049Canada2026-07-23

On-Demand Data

NameIdCountryDate
Arvin B Wieser1000Spain2026-07-28
Emily S Morasca1001Argentina2026-07-23
Rodrigues L Butt1002India2026-07-24
Misaki X Poquette1003Brazil2026-08-11
Maisha U Bolognia1004Italy2026-07-23
Ricardo C Sergi1005Italy2026-08-15
Jeanfrancois S Nestle1006Argentina2026-07-18
Antonio G Royster1007Italy2026-08-11
Julie V Briddick1008Germany2026-08-15
Aika F Vocelka1009Canada2026-07-28
Deepesh G Darakjy1010Spain2026-07-29
Chavez W Whobrey1011Argentina2026-08-12
Tony M Doe1012Brazil2026-08-07
Jones L Caudy1013Brazil2026-08-06
Greenwood P Kolmetz1014Germany2026-07-31
Faith W Stockham1015Brazil2026-08-14
Emily N Morasca1016Germany2026-08-14
Ashley B Iturbide1017Italy2026-07-25
Wickens W Campain1018Spain2026-07-27
Murillo W Gaucho1019Argentina2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria B BowleyCanadaXuxue Feng RENEWAL
Nicolas E GillianRussiaIvan Magalhaes RENEWAL
Kadeem U OldroydCanadaAnna Fali NEGOTIATION
Adams Q CaldareraUnited KingdomAmy Elsner QUALIFIED
Misaki E VocelkaArgentinaAnna Fali RENEWAL
Rodrigues H FlosiBrazilStephen Shaw PROPOSAL
Kaitlin R DarakjyFranceAsiya Javayant UNQUALIFIED
Ivar E OldroydRussiaAsiya Javayant UNQUALIFIED
Alejandro E RulapaughJapanStephen Shaw NEGOTIATION
Adams Y MaletRussiaXuxue Feng NEW
Mujtaba S DilliardUnited KingdomStephen Shaw QUALIFIED
Smith B StensethAustraliaIoni Bowcher PROPOSAL
Misaki D GauchoUnited KingdomIvan Magalhaes PROPOSAL
Kadeem P OldroydGermanyAnna Fali QUALIFIED
Octavia K VocelkaSpainAsiya Javayant UNQUALIFIED
Kaitlin W CampainUnited KingdomAsiya Javayant RENEWAL
Adams S KuskoBrazilIoni Bowcher UNQUALIFIED
Deepesh D PoquetteJapanOnyama Limba QUALIFIED
Sinclair N MacleadJapanIoni Bowcher NEGOTIATION
Rodrigues U RimAustraliaAmy Elsner NEW
Jones M MaletSpainIoni Bowcher PROPOSAL
Stacey F RutaJapanIoni Bowcher NEW
Smith L WaycottItalyOnyama Limba PROPOSAL
Mayumi T StensethGermanyIoni Bowcher PROPOSAL
Isabel C SergiIndiaXuxue Feng QUALIFIED
Tony T AlbaresUnited KingdomAnna Fali NEW
Jones J PoquetteRussiaAsiya Javayant RENEWAL
Juan S InouyeGermanyBernardo Dominic NEW
Juan Y InouyeGermanyElwin Sharvill QUALIFIED
James T NickaArgentinaAsiya Javayant PROPOSAL
Claire Q PaprockiJapanAnna Fali UNQUALIFIED
Nicolas W BologniaFranceXuxue Feng RENEWAL
Tony J OstroskyFranceIoni Bowcher QUALIFIED
Morrow B BowleyAustraliaAnna Fali PROPOSAL
Kaitlin M CampainUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues M BriddickIndiaIoni Bowcher QUALIFIED
Wickens P PerinRussiaAsiya Javayant PROPOSAL
Faith S StockhamIndiaAsiya Javayant NEGOTIATION
Emily S NickaBrazilStephen Shaw UNQUALIFIED
Izzy M WaycottFranceAnna 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>