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
Ashley S WhobreyFranceAmy Elsner NEGOTIATION
Kaitlin S PaprockiFranceIoni Bowcher NEGOTIATION
James M TollnerItalyIoni Bowcher PROPOSAL
Julie P WieserBrazilAsiya Javayant PROPOSAL
Cody Z FollerGermanyStephen Shaw RENEWAL
Costa C OstroskyCanadaAmy Elsner PROPOSAL
Maisha U GlickCanadaIoni Bowcher UNQUALIFIED
Murillo W FollerJapanStephen Shaw RENEWAL
Kaitlin H VenereArgentinaElwin Sharvill PROPOSAL
Murillo M StensethSpainIoni Bowcher NEGOTIATION
Silvio C BriddickArgentinaXuxue Feng NEW
Kadeem F OstroskyJapanOnyama Limba NEGOTIATION
Jones O DilliardGermanyIoni Bowcher QUALIFIED
Octavia L CaldareraArgentinaElwin Sharvill NEGOTIATION
Mayumi R FerenczBrazilBernardo Dominic UNQUALIFIED
Leja Y OldroydRussiaAsiya Javayant PROPOSAL
Kadeem M FlosiSpainXuxue Feng UNQUALIFIED
Silvio H KuskoArgentinaStephen Shaw UNQUALIFIED
Kadeem R SaylorsFranceAsiya Javayant NEGOTIATION
Adams V MorascaSpainOnyama Limba NEGOTIATION
Darci E GauchoIndiaOnyama Limba QUALIFIED
Wickens E AmigonItalyStephen Shaw RENEWAL
Claire S ShinkoAustraliaIvan Magalhaes NEW
Ricardo G WaycottUnited KingdomElwin Sharvill NEGOTIATION
Francesco N GillianCanadaStephen Shaw NEW
Smith R FerenczAustraliaIvan Magalhaes RENEWAL
Silvio L KuskoBrazilIvan Magalhaes UNQUALIFIED
Adams M WaycottGermanyElwin Sharvill RENEWAL
Leon N GarufiArgentinaAnna Fali QUALIFIED
Smith C GillianFranceAnna Fali NEW
Sinclair W RimGermanyAsiya Javayant UNQUALIFIED
Alejandro W KuskoUnited KingdomOnyama Limba NEGOTIATION
Tony X BriddickArgentinaOnyama Limba NEW
Julie B KolmetzArgentinaElwin Sharvill QUALIFIED
Antonio X ShinkoJapanBernardo Dominic QUALIFIED
Stacey F FerenczGermanyXuxue Feng QUALIFIED
Jones N PoquetteGermanyAnna Fali QUALIFIED
Morrow G IturbideJapanElwin Sharvill PROPOSAL
Jones F PoquetteFranceAsiya Javayant RENEWAL
Johnson T GillianFranceAsiya Javayant NEW
Faith S TollnerFranceOnyama Limba QUALIFIED
Salvatore Y TollnerItalyOnyama Limba UNQUALIFIED
Jefferson G FollerUnited KingdomStephen Shaw QUALIFIED
Chavez D GillianSpainIoni Bowcher PROPOSAL
Ashley A CaudyItalyAnna Fali NEW
Octavia O VocelkaBrazilAmy Elsner NEW
Arvin W RulapaughRussiaIvan Magalhaes NEW
Salvatore H GauchoBrazilAnna Fali NEGOTIATION
Morrow X MaletBrazilIoni Bowcher UNQUALIFIED
Arvin E WhobreyArgentinaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa M StensethSpainIvan Magalhaes UNQUALIFIED
Nicolas Y BriddickFranceIvan Magalhaes RENEWAL
Darci K MorascaItalyAnna Fali NEW
Smith V MaletItalyAsiya Javayant NEGOTIATION
Murillo Y SchemmerJapanAsiya Javayant NEGOTIATION
Greenwood R SaylorsGermanyXuxue Feng PROPOSAL
Aditya I KuskoBrazilAsiya Javayant NEW
Tony J WhobreyBrazilAmy Elsner NEW
Aika E CaldareraArgentinaOnyama Limba QUALIFIED
Morrow K FigeroaCanadaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair I RoysterIndia2026-07-30Chapman, Ross E Esq NEW66Stephen Shaw
1001Ivar C AmigonSpain2026-08-07Dorl, James J Esq RENEWAL6Onyama Limba
1002Kadeem S PerinGermany2026-08-09Feiner Bros RENEWAL93Stephen Shaw
1003Kadeem C GillianIndia2026-07-17Dorl, James J Esq QUALIFIED61Asiya Javayant
1004Ashley J NickaBrazil2026-08-04Commercial Press NEGOTIATION93Amy Elsner
1005Claire A FollerGermany2026-07-29Chemel, James L Cpa NEGOTIATION33Ioni Bowcher
1006Julie R OstroskyRussia2026-07-19King, Christopher A Esq RENEWAL66Stephen Shaw
1007Misaki W VocelkaFrance2026-08-13Rousseaux, Michael Esq NEW75Anna Fali
1008Johnson H PerinCanada2026-07-18Chapman, Ross E Esq QUALIFIED24Ioni Bowcher
1009Jeanfrancois Z BowleyFrance2026-08-05Chemel, James L Cpa NEGOTIATION59Ioni Bowcher
1010Stacey O AmigonItaly2026-07-29Feltz Printing Service PROPOSAL36Amy Elsner
1011Jennifer H NestleUnited Kingdom2026-08-05Printing Dimensions QUALIFIED72Elwin Sharvill
1012Julie L VenereFrance2026-07-16Chanay, Jeffrey A Esq NEGOTIATION17Asiya Javayant
1013Jones Y PerinArgentina2026-07-25Benton, John B Jr NEW82Amy Elsner
1014Munro R BowleyJapan2026-08-09Printing Dimensions QUALIFIED17Stephen Shaw
1015Antonio S VocelkaJapan2026-07-17Truhlar And Truhlar Attys NEGOTIATION9Asiya Javayant
1016Izzy K NestleItaly2026-08-01Dorl, James J Esq QUALIFIED33Elwin Sharvill
1017Leja C DarakjyItaly2026-07-25Truhlar And Truhlar Attys NEGOTIATION6Onyama Limba
1018Salvatore W WaycottRussia2026-07-29Chanay, Jeffrey A Esq PROPOSAL17Asiya Javayant
1019Silvio D AlbaresBrazil2026-08-11Truhlar And Truhlar Attys NEGOTIATION25Xuxue Feng
1020Salvatore B KolmetzItaly2026-08-12Commercial Press PROPOSAL51Stephen Shaw
1021Jefferson X RimFrance2026-07-20Feltz Printing Service PROPOSAL21Bernardo Dominic
1022Murillo Q CaudySpain2026-08-13Buckley Miller Wright QUALIFIED28Bernardo Dominic
1023Izzy P GlickBrazil2026-07-30Chapman, Ross E Esq NEGOTIATION73Anna Fali
1024Ashley K OstroskyUnited Kingdom2026-07-15Morlong Associates QUALIFIED0Stephen Shaw
1025Octavia W BologniaFrance2026-07-27Commercial Press PROPOSAL53Stephen Shaw
1026Jones W AmigonRussia2026-07-26Rousseaux, Michael Esq QUALIFIED50Bernardo Dominic
1027Johnson F SaylorsArgentina2026-08-04Chanay, Jeffrey A Esq NEGOTIATION9Ioni Bowcher
1028Mujtaba M MaletItaly2026-07-27Benton, John B Jr UNQUALIFIED92Ioni Bowcher
1029Munro G BowleyItaly2026-08-09Benton, John B Jr UNQUALIFIED13Elwin Sharvill
1030Ricardo P RoysterAustralia2026-07-26Commercial Press UNQUALIFIED57Onyama Limba
1031Maria E DoeSpain2026-07-26Buckley Miller Wright NEGOTIATION20Amy Elsner
1032Kaitlin Y FigeroaUnited Kingdom2026-08-01Dorl, James J Esq UNQUALIFIED36Bernardo Dominic
1033Ivar F ShinkoBrazil2026-08-11King, Christopher A Esq PROPOSAL33Ivan Magalhaes
1034Tony U SlusarskiItaly2026-08-03Chapman, Ross E Esq RENEWAL22Ivan Magalhaes
1035Jefferson I DilliardRussia2026-07-19Buckley Miller Wright RENEWAL18Bernardo Dominic
1036Mujtaba J KolmetzJapan2026-08-03Feltz Printing Service UNQUALIFIED4Stephen Shaw
1037Morrow Q StockhamRussia2026-08-05Chapman, Ross E Esq UNQUALIFIED17Ioni Bowcher
1038Izzy Q BowleySpain2026-07-22Feiner Bros QUALIFIED34Elwin Sharvill
1039Costa E OstroskyBrazil2026-08-07Benton, John B Jr RENEWAL86Ivan Magalhaes
1040Smith W MacleadUnited Kingdom2026-08-04Buckley Miller Wright RENEWAL3Ioni Bowcher
1041Chavez W AmigonJapan2026-07-28Benton, John B Jr NEW58Onyama Limba
1042Rodrigues F MacleadUnited Kingdom2026-08-04Dorl, James J Esq NEGOTIATION84Elwin Sharvill
1043David O WhobreyFrance2026-08-13Dorl, James J Esq RENEWAL89Ivan Magalhaes
1044Mayumi J MaletBrazil2026-08-10Commercial Press NEGOTIATION74Ioni Bowcher
1045Claire W GauchoArgentina2026-08-09Commercial Press NEGOTIATION6Onyama Limba
1046Alejandro P RutaIndia2026-07-20Feltz Printing Service RENEWAL47Anna Fali
1047Rodrigues Q PerinIndia2026-08-07Chemel, James L Cpa UNQUALIFIED17Ivan Magalhaes
1048Mujtaba M FigeroaBrazil2026-07-24Chemel, James L Cpa NEGOTIATION47Xuxue Feng
1049David M CampainUnited Kingdom2026-07-16Dorl, James J Esq QUALIFIED53Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leon S GlickItalyOnyama Limba NEGOTIATION
Leon L TollnerArgentinaAmy Elsner QUALIFIED
Emily Q AmigonFranceAnna Fali RENEWAL
Smith C IturbideBrazilAnna Fali PROPOSAL
Costa P CaldareraIndiaIvan Magalhaes PROPOSAL
Leja O KuskoGermanyBernardo Dominic UNQUALIFIED
Morrow G NestleArgentinaElwin Sharvill QUALIFIED
Arvin W MarrierRussiaBernardo Dominic PROPOSAL
Emily F CaudyJapanStephen Shaw UNQUALIFIED
Aika X DarakjyAustraliaAmy Elsner NEW
Chavez P GauchoItalyBernardo Dominic UNQUALIFIED
Julie Z WaycottIndiaIvan Magalhaes UNQUALIFIED
Nicolas T SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
David S SergiGermanyElwin Sharvill QUALIFIED
Francesco R DarakjyIndiaIoni Bowcher NEGOTIATION
Morrow F RulapaughItalyElwin Sharvill RENEWAL
Julie O IturbideArgentinaAmy Elsner RENEWAL
Jefferson Z WaycottCanadaXuxue Feng NEW
Isabel K ChuiSpainBernardo Dominic RENEWAL
Juan W GauchoArgentinaAsiya Javayant NEW
David T PerinUnited KingdomAnna Fali RENEWAL
Johnson C VocelkaRussiaAsiya Javayant RENEWAL
Kaitlin B TollnerFranceAnna Fali PROPOSAL
Salvatore S DoeFranceAnna Fali PROPOSAL
Aika Y BologniaGermanyElwin Sharvill NEW
Kaitlin L GillianRussiaAmy Elsner NEGOTIATION
Deepesh D SergiFranceXuxue Feng PROPOSAL
Aditya I MorascaItalyAsiya Javayant RENEWAL
Maria H GlickAustraliaAsiya Javayant UNQUALIFIED
Adams M PaprockiItalyIvan Magalhaes NEGOTIATION
Misaki B FollerRussiaBernardo Dominic UNQUALIFIED
James V MacleadArgentinaElwin Sharvill NEGOTIATION
Ricardo O AlbaresArgentinaXuxue Feng NEW
Aditya E MarrierIndiaIoni Bowcher NEW
Jefferson M GauchoFranceBernardo Dominic RENEWAL
Izzy J InouyeFranceAsiya Javayant PROPOSAL
Mujtaba Q DoeGermanyIvan Magalhaes NEGOTIATION
Emily P NickaCanadaOnyama Limba NEGOTIATION
Silvio U NickaUnited KingdomAnna Fali NEW
Wickens K GauchoCanadaElwin Sharvill UNQUALIFIED
Greenwood V InouyeUnited KingdomElwin Sharvill PROPOSAL
Mujtaba T DarakjyUnited KingdomIoni Bowcher NEW
Morrow B MacleadArgentinaXuxue Feng UNQUALIFIED
Johnson W NestleRussiaOnyama Limba NEGOTIATION
Jeanfrancois R FigeroaBrazilBernardo Dominic NEGOTIATION
Arvin K NestleCanadaXuxue Feng PROPOSAL
Greenwood W RimBrazilAmy Elsner UNQUALIFIED
Octavia G ChuiArgentinaXuxue Feng UNQUALIFIED
James O RoysterUnited KingdomAnna Fali RENEWAL
Jeanfrancois K MacleadRussiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Maria G Kusko
Aika P Kusko
Murillo R Gillian
Arvin E Ruta
Misaki Z Sergi
Jones L Albares
Deepesh K Ruta
Antonio O Chui
Morrow L Vocelka
Leon H Poquette
Smith S Figeroa
Julie L Campain
Faith D Rim
Chavez F Caudy
Juan X Doe
Greenwood C Flosi
Mayumi X Ferencz
Mujtaba L Saylors
David Q Caudy
Munro K Caudy
Salvatore A Foller
Juan J Glick
Misaki A Ruta
Mujtaba L Gaucho
Faith D Marrier
Darci X Waycott
Tony Q Malet
Leon P Sergi
Munro D Bowley
Tony C Caudy
Claire K Butt
Stacey S Albares
Nicolas S Malet
Arvin J Caldarera
Jeanfrancois Q Iturbide
Mujtaba O Bolognia
Julie P Malet
Sinclair W Foller
Arvin F Caldarera
Jeanfrancois I Nestle
Misaki T Marrier
Morrow Q Ruta
James X Sergi
Mayumi B Oldroyd
Rodrigues R Malet
Leja W Foller
Darci F Stockham
Mujtaba F Amigon
Clifford K Rim
Darci N Bowley
IdCountryDate
1000Australia2026-08-13
1001Japan2026-07-18
1002Brazil2026-08-02
1003Spain2026-07-20
1004Germany2026-07-21
1005Germany2026-07-21
1006Japan2026-08-06
1007India2026-07-29
1008Canada2026-07-27
1009Spain2026-08-06
1010Australia2026-08-04
1011United Kingdom2026-07-21
1012India2026-07-19
1013Italy2026-08-08
1014Spain2026-08-11
1015Spain2026-08-10
1016Argentina2026-08-11
1017Spain2026-08-09
1018Australia2026-07-23
1019India2026-08-02
1020Brazil2026-08-09
1021France2026-07-20
1022Canada2026-07-19
1023Japan2026-08-11
1024Germany2026-08-01
1025Germany2026-08-04
1026Canada2026-07-18
1027United Kingdom2026-08-08
1028Australia2026-08-12
1029Canada2026-07-27
1030India2026-07-28
1031Canada2026-08-06
1032Argentina2026-07-26
1033Japan2026-08-05
1034Italy2026-07-24
1035Japan2026-08-02
1036Russia2026-07-26
1037Germany2026-07-16
1038Russia2026-08-09
1039Japan2026-08-02
1040Russia2026-07-16
1041India2026-08-04
1042Canada2026-08-01
1043United Kingdom2026-08-03
1044India2026-07-20
1045Russia2026-07-31
1046Brazil2026-07-28
1047France2026-08-04
1048Brazil2026-07-27
1049United Kingdom2026-07-17

On-Demand Data

NameIdCountryDate
James W Marrier1000Germany2026-07-23
Izzy K Kusko1001United Kingdom2026-08-01
Juan R Oldroyd1002Argentina2026-07-27
Johnson Y Flosi1003Australia2026-07-24
Mujtaba M Schemmer1004Japan2026-08-04
Aika J Butt1005Italy2026-07-27
Leja S Darakjy1006United Kingdom2026-08-09
Tony Q Chui1007Russia2026-08-01
Mujtaba S Darakjy1008Australia2026-07-19
Chavez W Glick1009Germany2026-08-08
Rodrigues Z Saylors1010Spain2026-08-13
Emily M Morasca1011India2026-08-09
Adams V Rulapaugh1012Canada2026-08-12
Nicolas H Nestle1013Spain2026-08-08
Jefferson C Sergi1014Canada2026-07-20
Arvin Y Rim1015Australia2026-07-31
Jeanfrancois G Amigon1016United Kingdom2026-07-26
Aditya V Rulapaugh1017Italy2026-07-28
Darci J Albares1018Germany2026-08-03
Aruna V Malet1019India2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David M PaprockiArgentinaStephen Shaw QUALIFIED
Misaki A DarakjyCanadaBernardo Dominic UNQUALIFIED
Jennifer C MaletArgentinaOnyama Limba NEW
Antonio P FollerItalyBernardo Dominic NEW
Izzy E IturbideItalyElwin Sharvill RENEWAL
Claire E WhobreyAustraliaAsiya Javayant PROPOSAL
Nicolas K MorascaItalyIoni Bowcher NEGOTIATION
Ricardo G OldroydItalyAnna Fali UNQUALIFIED
Smith L WaycottIndiaAnna Fali PROPOSAL
Jefferson P KuskoJapanStephen Shaw NEW
Jones Y NestleCanadaAsiya Javayant NEW
Mujtaba L PaprockiArgentinaBernardo Dominic PROPOSAL
Aditya P StockhamRussiaIvan Magalhaes UNQUALIFIED
Sinclair Z WieserArgentinaElwin Sharvill QUALIFIED
Sinclair I SchemmerRussiaIoni Bowcher RENEWAL
Greenwood M CaudySpainIvan Magalhaes NEGOTIATION
Costa D MorascaSpainXuxue Feng NEW
Claire K KuskoRussiaAnna Fali NEW
Leja A BologniaCanadaIvan Magalhaes NEGOTIATION
Francesco K SergiIndiaXuxue Feng PROPOSAL
Aruna F RoysterCanadaOnyama Limba UNQUALIFIED
Murillo W ShinkoBrazilOnyama Limba QUALIFIED
Octavia S SlusarskiCanadaIoni Bowcher NEGOTIATION
Johnson I AmigonFranceIvan Magalhaes PROPOSAL
Aditya O InouyeArgentinaIoni Bowcher NEW
Leja G StockhamIndiaAmy Elsner PROPOSAL
Faith U ChuiIndiaIvan Magalhaes RENEWAL
Maria V PaprockiBrazilElwin Sharvill QUALIFIED
Rodrigues V SchemmerGermanyIoni Bowcher QUALIFIED
Arvin J BologniaAustraliaBernardo Dominic NEW
Chavez Q PoquetteBrazilStephen Shaw QUALIFIED
Mayumi R WieserAustraliaIoni Bowcher QUALIFIED
Francesco J WhobreyJapanStephen Shaw RENEWAL
Cody B BowleyIndiaStephen Shaw PROPOSAL
Maria H GlickCanadaOnyama Limba NEGOTIATION
Faith C FigeroaJapanIvan Magalhaes QUALIFIED
Tony X ChuiBrazilStephen Shaw QUALIFIED
Izzy B GlickAustraliaBernardo Dominic PROPOSAL
Izzy B GillianUnited KingdomAmy Elsner NEW
Ivar J DarakjyAustraliaBernardo 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>