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
James R DoeCanadaOnyama Limba UNQUALIFIED
Murillo W MaletJapanIoni Bowcher NEGOTIATION
Leon C MorascaAustraliaAnna Fali NEW
Smith B MorascaUnited KingdomOnyama Limba RENEWAL
Octavia L RutaSpainIoni Bowcher RENEWAL
Jennifer E KuskoIndiaOnyama Limba QUALIFIED
Juan F PoquetteItalyAsiya Javayant QUALIFIED
Munro Q CaldareraFranceBernardo Dominic UNQUALIFIED
Francesco V DarakjyBrazilXuxue Feng QUALIFIED
Chavez E FigeroaGermanyIvan Magalhaes NEGOTIATION
David K InouyeSpainAnna Fali UNQUALIFIED
Ashley P BriddickJapanAnna Fali NEW
Salvatore V StockhamUnited KingdomOnyama Limba RENEWAL
Costa Z ButtBrazilOnyama Limba PROPOSAL
Darci B GauchoFranceIvan Magalhaes QUALIFIED
Murillo J AmigonJapanStephen Shaw NEGOTIATION
Misaki Y AmigonSpainAsiya Javayant PROPOSAL
Leja T CampainJapanXuxue Feng UNQUALIFIED
James N RimItalyStephen Shaw QUALIFIED
Leon B ButtGermanyElwin Sharvill NEW
Julie A BowleyGermanyAsiya Javayant NEW
Deepesh P PoquetteUnited KingdomAnna Fali QUALIFIED
Smith O MaletBrazilIoni Bowcher NEW
Emily X RoysterItalyIvan Magalhaes RENEWAL
Nicolas C PaprockiGermanyOnyama Limba RENEWAL
Jeanfrancois G PerinFranceOnyama Limba NEGOTIATION
Ivar M CaudyAustraliaStephen Shaw RENEWAL
Johnson F CaldareraCanadaOnyama Limba PROPOSAL
Costa M VocelkaSpainBernardo Dominic NEGOTIATION
Ashley B ChuiArgentinaIoni Bowcher QUALIFIED
Aruna U MacleadUnited KingdomBernardo Dominic QUALIFIED
Faith Y MarrierFranceBernardo Dominic NEW
Ashley X KuskoSpainElwin Sharvill UNQUALIFIED
Kaitlin B GlickAustraliaOnyama Limba UNQUALIFIED
Alejandro L GarufiItalyAnna Fali QUALIFIED
Aruna H ShinkoJapanElwin Sharvill NEGOTIATION
Morrow S BologniaRussiaBernardo Dominic NEGOTIATION
Morrow V OldroydJapanBernardo Dominic NEGOTIATION
Ivar M DilliardFranceOnyama Limba RENEWAL
Faith H SchemmerBrazilIvan Magalhaes NEW
Julie F WieserAustraliaAsiya Javayant QUALIFIED
Julie V VocelkaSpainXuxue Feng NEGOTIATION
Tony O ChuiBrazilElwin Sharvill PROPOSAL
Mayumi C MaletCanadaIoni Bowcher NEW
Stacey T MacleadUnited KingdomElwin Sharvill QUALIFIED
Kaitlin M DoeItalyAsiya Javayant PROPOSAL
Jeanfrancois W PerinCanadaOnyama Limba NEGOTIATION
Darci H SlusarskiArgentinaIoni Bowcher NEW
Aditya R BriddickFranceBernardo Dominic UNQUALIFIED
Kadeem W GauchoIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro T IturbideSpainAnna Fali UNQUALIFIED
Stacey M MacleadFranceXuxue Feng NEGOTIATION
Aditya W MaletSpainBernardo Dominic PROPOSAL
Leon Z ChuiArgentinaAsiya Javayant QUALIFIED
Jennifer S MaletItalyIoni Bowcher RENEWAL
Ricardo E NickaItalyAnna Fali RENEWAL
Silvio M NickaRussiaIvan Magalhaes NEGOTIATION
Sinclair D VocelkaGermanyBernardo Dominic NEGOTIATION
Jefferson A BowleyAustraliaIoni Bowcher RENEWAL
Cody I VenereItalyIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire V VocelkaFrance2026-07-12Truhlar And Truhlar Attys QUALIFIED98Xuxue Feng
1001Clifford K BriddickAustralia2026-07-17Morlong Associates NEW44Anna Fali
1002Tony L KuskoAustralia2026-07-18Rousseaux, Michael Esq QUALIFIED48Anna Fali
1003Izzy N FlosiBrazil2026-07-25Dorl, James J Esq RENEWAL89Elwin Sharvill
1004Johnson G ButtItaly2026-07-18Chemel, James L Cpa PROPOSAL74Elwin Sharvill
1005David G OstroskyGermany2026-07-24Buckley Miller Wright NEGOTIATION90Elwin Sharvill
1006Cody U IturbideRussia2026-07-06Buckley Miller Wright NEW48Amy Elsner
1007Deepesh K AmigonRussia2026-07-12Commercial Press RENEWAL99Anna Fali
1008Isabel A MacleadRussia2026-07-30Printing Dimensions QUALIFIED73Bernardo Dominic
1009David V NestleFrance2026-07-18King, Christopher A Esq NEGOTIATION79Bernardo Dominic
1010Morrow H StockhamUnited Kingdom2026-07-05Rangoni Of Florence NEW83Onyama Limba
1011Emily V DoeFrance2026-07-17Dorl, James J Esq UNQUALIFIED50Asiya Javayant
1012Emily N AlbaresJapan2026-07-14Rousseaux, Michael Esq QUALIFIED59Ioni Bowcher
1013Nicolas I MaletAustralia2026-07-11Commercial Press NEW11Xuxue Feng
1014Ashley I RutaArgentina2026-07-20Truhlar And Truhlar Attys RENEWAL34Xuxue Feng
1015Clifford M CaldareraGermany2026-07-08Chanay, Jeffrey A Esq NEGOTIATION76Stephen Shaw
1016Francesco B ButtGermany2026-07-15Truhlar And Truhlar Attys RENEWAL38Ioni Bowcher
1017Ivar J CampainItaly2026-07-20Benton, John B Jr RENEWAL40Ioni Bowcher
1018Jeanfrancois X WaycottIndia2026-07-16Truhlar And Truhlar Attys NEGOTIATION42Ivan Magalhaes
1019Johnson F WhobreyUnited Kingdom2026-07-06Rangoni Of Florence PROPOSAL2Ioni Bowcher
1020Aika J RutaRussia2026-07-25Benton, John B Jr PROPOSAL18Stephen Shaw
1021Faith G NestleIndia2026-07-21Rousseaux, Michael Esq UNQUALIFIED58Stephen Shaw
1022Juan C PoquetteBrazil2026-07-16Benton, John B Jr UNQUALIFIED64Amy Elsner
1023Leja H KolmetzGermany2026-07-25Morlong Associates RENEWAL68Xuxue Feng
1024Silvio X MacleadArgentina2026-07-22Feiner Bros QUALIFIED33Elwin Sharvill
1025Emily U PaprockiIndia2026-07-14Feltz Printing Service QUALIFIED29Onyama Limba
1026Nicolas K CampainCanada2026-07-25Rangoni Of Florence NEW51Elwin Sharvill
1027Costa O PoquetteIndia2026-07-05Truhlar And Truhlar Attys NEW9Stephen Shaw
1028Salvatore A RimCanada2026-07-14Truhlar And Truhlar Attys NEGOTIATION16Amy Elsner
1029Sinclair V NickaGermany2026-07-17Feiner Bros PROPOSAL95Stephen Shaw
1030Ricardo R BologniaJapan2026-07-06Chapman, Ross E Esq RENEWAL74Onyama Limba
1031Ricardo R GlickItaly2026-07-05Benton, John B Jr UNQUALIFIED43Onyama Limba
1032Munro X WhobreyBrazil2026-07-16Rangoni Of Florence RENEWAL62Asiya Javayant
1033Maria O MarrierItaly2026-07-22Printing Dimensions UNQUALIFIED44Elwin Sharvill
1034Ricardo R BriddickGermany2026-07-11Chemel, James L Cpa RENEWAL65Elwin Sharvill
1035Aruna E GillianArgentina2026-07-22Feiner Bros PROPOSAL69Stephen Shaw
1036Clifford B AlbaresGermany2026-07-20Commercial Press PROPOSAL7Bernardo Dominic
1037Silvio V CaudySpain2026-07-29Truhlar And Truhlar Attys RENEWAL85Amy Elsner
1038Mujtaba S CampainAustralia2026-07-23Truhlar And Truhlar Attys NEGOTIATION33Asiya Javayant
1039Ashley U ChuiSpain2026-07-09Feiner Bros UNQUALIFIED78Stephen Shaw
1040Jeanfrancois H GauchoIndia2026-07-26Printing Dimensions PROPOSAL74Anna Fali
1041Aruna W ShinkoRussia2026-07-07Truhlar And Truhlar Attys QUALIFIED89Asiya Javayant
1042Murillo P AlbaresBrazil2026-07-03Buckley Miller Wright PROPOSAL7Ivan Magalhaes
1043Sinclair N GillianCanada2026-07-20King, Christopher A Esq UNQUALIFIED93Ioni Bowcher
1044Faith X RulapaughFrance2026-07-08Rousseaux, Michael Esq QUALIFIED51Anna Fali
1045Silvio P WaycottGermany2026-07-03Chanay, Jeffrey A Esq PROPOSAL81Stephen Shaw
1046Jennifer O BowleyAustralia2026-07-27Rousseaux, Michael Esq QUALIFIED44Onyama Limba
1047Claire M RutaJapan2026-07-07Benton, John B Jr RENEWAL79Amy Elsner
1048Leja N GlickGermany2026-07-19Chemel, James L Cpa UNQUALIFIED62Amy Elsner
1049Darci I WieserAustralia2026-07-05Chanay, Jeffrey A Esq RENEWAL43Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Sinclair H CaldareraBrazilIoni Bowcher PROPOSAL
Deepesh V FollerBrazilStephen Shaw RENEWAL
Emily T FerenczUnited KingdomOnyama Limba RENEWAL
Jeanfrancois B FlosiBrazilElwin Sharvill RENEWAL
Jones H RutaJapanElwin Sharvill NEW
Nicolas Z NestleJapanBernardo Dominic PROPOSAL
Mayumi I MaletRussiaStephen Shaw UNQUALIFIED
Clifford S RimFranceAmy Elsner RENEWAL
Maisha P RimAustraliaElwin Sharvill PROPOSAL
Jones I VenereIndiaStephen Shaw NEGOTIATION
Jennifer T PoquetteGermanyBernardo Dominic NEW
Ashley J RoysterArgentinaElwin Sharvill RENEWAL
Julie E VenereRussiaAnna Fali NEW
Leon S PerinFranceElwin Sharvill PROPOSAL
Ivar T WhobreyBrazilAsiya Javayant QUALIFIED
Clifford M AlbaresArgentinaElwin Sharvill UNQUALIFIED
Nicolas L FollerUnited KingdomElwin Sharvill RENEWAL
Leja O VocelkaSpainAsiya Javayant NEGOTIATION
Ricardo T FollerJapanStephen Shaw NEGOTIATION
Mujtaba D FerenczArgentinaIvan Magalhaes UNQUALIFIED
Antonio C DarakjyCanadaIoni Bowcher NEGOTIATION
Smith M GillianCanadaAnna Fali RENEWAL
Leon H FerenczArgentinaOnyama Limba NEW
Aruna L ChuiRussiaStephen Shaw QUALIFIED
Ashley W GlickJapanBernardo Dominic QUALIFIED
Kaitlin Z MarrierGermanyAmy Elsner RENEWAL
Izzy B StensethGermanyAsiya Javayant RENEWAL
Mujtaba X PoquetteSpainStephen Shaw NEGOTIATION
Alejandro C GauchoJapanOnyama Limba PROPOSAL
Jeanfrancois K NickaArgentinaIvan Magalhaes NEGOTIATION
Ricardo L MorascaFranceStephen Shaw UNQUALIFIED
Wickens Q GarufiBrazilElwin Sharvill UNQUALIFIED
Ashley G SergiBrazilAmy Elsner NEGOTIATION
Greenwood O GarufiSpainAnna Fali RENEWAL
Ashley T BowleyIndiaBernardo Dominic RENEWAL
Misaki Q StensethItalyIvan Magalhaes NEW
Aika L RulapaughGermanyIvan Magalhaes RENEWAL
Izzy K NickaIndiaElwin Sharvill UNQUALIFIED
Deepesh D ShinkoBrazilXuxue Feng NEGOTIATION
Misaki C StockhamRussiaAnna Fali UNQUALIFIED
Mujtaba V MarrierFranceBernardo Dominic NEGOTIATION
Aruna B MarrierRussiaBernardo Dominic RENEWAL
Jeanfrancois L KolmetzGermanyIvan Magalhaes UNQUALIFIED
Aika W MorascaAustraliaXuxue Feng QUALIFIED
Morrow W PoquetteGermanyIoni Bowcher UNQUALIFIED
Chavez Q RimArgentinaBernardo Dominic UNQUALIFIED
Salvatore E AmigonArgentinaIvan Magalhaes QUALIFIED
Juan I DoeRussiaElwin Sharvill NEW
Maisha X WieserSpainIvan Magalhaes PROPOSAL
Rodrigues Y ShinkoUnited KingdomAsiya Javayant PROPOSAL
Frozen Columns
Name
Alejandro K Stenseth
Faith E Malet
Clifford U Albares
Wickens A Stenseth
Salvatore L Saylors
Izzy A Stenseth
Clifford A Gaucho
Leja F Caudy
Alejandro P Ruta
Ashley W Bowley
Silvio V Campain
Ashley R Glick
Misaki A Waycott
Jones D Campain
Kadeem I Perin
Maria L Chui
Ashley Y Foller
Ivar H Marrier
Jennifer Z Paprocki
Faith G Nicka
Kaitlin B Rim
Wickens N Stenseth
Emily A Paprocki
Greenwood S Figeroa
Isabel R Dilliard
Jeanfrancois E Butt
Francesco I Shinko
Faith L Tollner
Mayumi U Inouye
Cody J Doe
Salvatore S Rulapaugh
Cody O Nestle
Leon N Caudy
Emily S Albares
Smith W Sergi
Adams D Slusarski
Smith Q Marrier
Aditya A Royster
Alejandro I Ostrosky
Octavia I Malet
David R Whobrey
Arvin M Whobrey
Sinclair E Chui
Greenwood J Butt
Darci S Caudy
Octavia D Malet
Sinclair D Doe
Rodrigues A Perin
Ashley M Saylors
Stacey S Garufi
IdCountryDate
1000Japan2026-07-24
1001Brazil2026-07-04
1002Argentina2026-07-25
1003Argentina2026-07-07
1004Italy2026-07-29
1005India2026-07-22
1006Italy2026-07-09
1007India2026-07-20
1008Italy2026-07-05
1009Argentina2026-07-14
1010Japan2026-07-18
1011Japan2026-07-18
1012Argentina2026-07-21
1013France2026-07-07
1014Japan2026-07-08
1015Italy2026-07-26
1016Australia2026-07-18
1017Canada2026-07-21
1018Germany2026-07-20
1019India2026-07-11
1020Canada2026-07-26
1021Canada2026-07-06
1022United Kingdom2026-07-26
1023Italy2026-07-25
1024Spain2026-07-16
1025Brazil2026-07-25
1026Spain2026-07-06
1027Italy2026-07-18
1028Germany2026-07-17
1029Russia2026-07-06
1030Germany2026-07-03
1031United Kingdom2026-07-11
1032Australia2026-07-13
1033Argentina2026-07-23
1034Canada2026-07-17
1035France2026-07-13
1036United Kingdom2026-07-14
1037Japan2026-07-31
1038United Kingdom2026-07-20
1039France2026-07-05
1040Brazil2026-07-05
1041Brazil2026-07-05
1042Japan2026-07-30
1043United Kingdom2026-07-06
1044India2026-07-28
1045Spain2026-07-19
1046Germany2026-07-12
1047Argentina2026-07-26
1048Japan2026-07-26
1049France2026-07-12

On-Demand Data

NameIdCountryDate
Antonio J Malet1000Italy2026-07-07
Emily D Ostrosky1001United Kingdom2026-07-19
Costa G Whobrey1002Japan2026-07-23
Aruna X Wieser1003Canada2026-07-11
Maisha X Figeroa1004United Kingdom2026-07-29
Stacey X Paprocki1005Canada2026-07-18
Francesco A Marrier1006Russia2026-07-20
Misaki K Ostrosky1007France2026-07-07
Antonio H Venere1008France2026-07-11
Aika S Royster1009Germany2026-07-27
Salvatore J Poquette1010France2026-07-22
Juan N Gaucho1011India2026-07-20
Johnson L Schemmer1012United Kingdom2026-07-07
Aruna C Poquette1013India2026-07-10
Misaki H Ostrosky1014Spain2026-07-12
Aika L Malet1015France2026-07-23
Adams L Whobrey1016India2026-07-16
Juan Y Rim1017Argentina2026-07-24
Ricardo A Bolognia1018Australia2026-07-27
Munro S Dilliard1019France2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha X GlickArgentinaIvan Magalhaes RENEWAL
Alejandro J MaletArgentinaXuxue Feng NEGOTIATION
Jennifer W DilliardBrazilIvan Magalhaes NEW
Greenwood X CampainGermanyElwin Sharvill RENEWAL
Ashley Q CaldareraBrazilElwin Sharvill NEGOTIATION
Aruna Q RoysterCanadaAsiya Javayant NEGOTIATION
Jones S GarufiAustraliaStephen Shaw PROPOSAL
Clifford M GillianAustraliaIvan Magalhaes RENEWAL
Leja I AlbaresJapanAnna Fali UNQUALIFIED
Rodrigues W StockhamSpainOnyama Limba NEW
Jennifer U CaldareraItalyAnna Fali UNQUALIFIED
Jennifer I MarrierGermanyAmy Elsner NEW
Ivar V OstroskyItalyStephen Shaw PROPOSAL
Costa H CampainArgentinaBernardo Dominic NEW
Jeanfrancois Z DarakjyItalyAnna Fali QUALIFIED
Mujtaba X BriddickItalyIvan Magalhaes UNQUALIFIED
Chavez F TollnerGermanyAnna Fali UNQUALIFIED
Francesco I NickaUnited KingdomStephen Shaw PROPOSAL
Ashley P RulapaughCanadaAmy Elsner QUALIFIED
Emily A ButtUnited KingdomIoni Bowcher QUALIFIED
Alejandro P SergiIndiaOnyama Limba NEGOTIATION
Greenwood F DilliardCanadaAnna Fali RENEWAL
Nicolas X ChuiCanadaStephen Shaw PROPOSAL
Ivar C InouyeSpainAnna Fali NEW
Ashley V OldroydRussiaIvan Magalhaes RENEWAL
Johnson O FollerArgentinaElwin Sharvill NEW
Deepesh G FollerBrazilElwin Sharvill UNQUALIFIED
Morrow Z AlbaresAustraliaOnyama Limba PROPOSAL
Kaitlin D FerenczIndiaStephen Shaw PROPOSAL
Jefferson L SlusarskiSpainXuxue Feng NEGOTIATION
Isabel V MarrierGermanyStephen Shaw PROPOSAL
Kaitlin N DarakjyIndiaAsiya Javayant NEGOTIATION
Mujtaba S NestleCanadaStephen Shaw QUALIFIED
Smith T KuskoIndiaIoni Bowcher NEW
Johnson T NestleBrazilOnyama Limba PROPOSAL
Ashley X SaylorsAustraliaAnna Fali UNQUALIFIED
Rodrigues K InouyeArgentinaIoni Bowcher RENEWAL
Mayumi P MaletBrazilAsiya Javayant NEW
Morrow O PoquetteUnited KingdomBernardo Dominic QUALIFIED
Rodrigues R FerenczUnited KingdomStephen Shaw NEGOTIATION

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