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 D BriddickFranceAsiya Javayant PROPOSAL
Isabel T TollnerUnited KingdomIvan Magalhaes PROPOSAL
Sinclair N InouyeCanadaAnna Fali QUALIFIED
Claire Q KuskoSpainStephen Shaw PROPOSAL
Ricardo K DoeBrazilXuxue Feng QUALIFIED
Ivar J VocelkaArgentinaBernardo Dominic PROPOSAL
Aika K WieserArgentinaOnyama Limba RENEWAL
Arvin X OstroskyRussiaOnyama Limba NEGOTIATION
Francesco W OstroskyCanadaIvan Magalhaes PROPOSAL
James J NickaAustraliaStephen Shaw RENEWAL
Mayumi T BowleyAustraliaAmy Elsner UNQUALIFIED
Smith Z AlbaresSpainAnna Fali NEGOTIATION
Silvio O SchemmerFranceAnna Fali NEW
Darci P VenereRussiaIvan Magalhaes NEGOTIATION
Juan D TollnerJapanBernardo Dominic QUALIFIED
Kaitlin C PaprockiIndiaAnna Fali QUALIFIED
Jones Z DilliardSpainBernardo Dominic QUALIFIED
Murillo R PaprockiBrazilOnyama Limba RENEWAL
Maria B InouyeAustraliaOnyama Limba RENEWAL
Aika Y RulapaughAustraliaAnna Fali PROPOSAL
Jefferson S BologniaRussiaIoni Bowcher PROPOSAL
Deepesh P FlosiIndiaXuxue Feng QUALIFIED
Antonio D CaldareraBrazilIoni Bowcher NEGOTIATION
Emily Q RimGermanyIoni Bowcher UNQUALIFIED
Stacey T KuskoJapanElwin Sharvill NEW
Jefferson I DilliardFranceAnna Fali QUALIFIED
Adams C GillianJapanAmy Elsner UNQUALIFIED
Leon M InouyeCanadaIvan Magalhaes RENEWAL
Kadeem F WhobreyItalyAmy Elsner PROPOSAL
Faith Y NestleFranceAmy Elsner UNQUALIFIED
David U GarufiArgentinaAsiya Javayant RENEWAL
Murillo D BriddickRussiaStephen Shaw UNQUALIFIED
Munro E SlusarskiSpainIoni Bowcher UNQUALIFIED
Leon Q OldroydRussiaAmy Elsner RENEWAL
Faith L MarrierJapanAsiya Javayant PROPOSAL
Kadeem G DoeGermanyIvan Magalhaes UNQUALIFIED
Aditya R WieserCanadaIoni Bowcher QUALIFIED
Tony L InouyeCanadaIvan Magalhaes RENEWAL
Claire R NestleUnited KingdomOnyama Limba QUALIFIED
Jennifer B GauchoBrazilStephen Shaw NEGOTIATION
Julie M NickaItalyOnyama Limba NEW
Morrow S OldroydFranceStephen Shaw UNQUALIFIED
Maria X RutaIndiaAmy Elsner PROPOSAL
Misaki D MacleadJapanIvan Magalhaes QUALIFIED
Sinclair I AmigonUnited KingdomXuxue Feng UNQUALIFIED
Julie K AlbaresIndiaAmy Elsner NEGOTIATION
Misaki A SlusarskiBrazilAnna Fali QUALIFIED
Rodrigues F StensethSpainBernardo Dominic NEW
Kadeem L GauchoFranceOnyama Limba PROPOSAL
Ricardo H GauchoUnited KingdomStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia F CampainRussiaIvan Magalhaes QUALIFIED
Wickens N WhobreyGermanyBernardo Dominic QUALIFIED
Jefferson G VenereSpainAsiya Javayant NEGOTIATION
Sinclair Q NickaCanadaAnna Fali UNQUALIFIED
Alejandro D SchemmerFranceBernardo Dominic NEGOTIATION
Stacey Z GarufiIndiaAsiya Javayant NEGOTIATION
Izzy Z InouyeCanadaIoni Bowcher NEGOTIATION
Leja U AlbaresAustraliaOnyama Limba RENEWAL
Cody B RoysterSpainXuxue Feng QUALIFIED
Arvin F AmigonArgentinaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues V WieserBrazil2026-08-14Chanay, Jeffrey A Esq QUALIFIED21Onyama Limba
1001Cody D GauchoArgentina2026-07-26Rousseaux, Michael Esq UNQUALIFIED50Onyama Limba
1002Ashley E TollnerUnited Kingdom2026-08-06Printing Dimensions RENEWAL83Ioni Bowcher
1003Emily R KuskoBrazil2026-08-07Morlong Associates NEW27Asiya Javayant
1004Murillo C RimArgentina2026-08-15Printing Dimensions RENEWAL94Bernardo Dominic
1005Aruna N RoysterItaly2026-08-07Chanay, Jeffrey A Esq QUALIFIED33Amy Elsner
1006Salvatore K FerenczBrazil2026-07-21Buckley Miller Wright UNQUALIFIED79Stephen Shaw
1007Claire H BologniaCanada2026-07-18Chapman, Ross E Esq RENEWAL11Amy Elsner
1008Maisha U MorascaCanada2026-07-19King, Christopher A Esq NEW26Bernardo Dominic
1009Nicolas C NestleGermany2026-07-27Rousseaux, Michael Esq PROPOSAL98Amy Elsner
1010Antonio V FollerGermany2026-07-24Feltz Printing Service NEGOTIATION19Ioni Bowcher
1011Tony I VocelkaItaly2026-07-27Rangoni Of Florence QUALIFIED30Asiya Javayant
1012Sinclair V MorascaBrazil2026-08-03Morlong Associates QUALIFIED90Stephen Shaw
1013Mayumi Z StensethRussia2026-08-12Dorl, James J Esq NEW93Anna Fali
1014Jefferson Z CampainArgentina2026-07-25Dorl, James J Esq UNQUALIFIED19Ivan Magalhaes
1015Jeanfrancois Y RimArgentina2026-08-04Chemel, James L Cpa NEW65Stephen Shaw
1016Jones I NickaBrazil2026-08-07Rangoni Of Florence QUALIFIED77Onyama Limba
1017Juan P NickaCanada2026-08-05Truhlar And Truhlar Attys NEW26Asiya Javayant
1018Isabel L DilliardItaly2026-07-21Chemel, James L Cpa UNQUALIFIED23Xuxue Feng
1019Maisha G KolmetzIndia2026-08-04Truhlar And Truhlar Attys RENEWAL7Ivan Magalhaes
1020Deepesh G DoeUnited Kingdom2026-08-10Truhlar And Truhlar Attys RENEWAL80Ivan Magalhaes
1021Juan F InouyeBrazil2026-08-05Feltz Printing Service UNQUALIFIED67Anna Fali
1022Tony G CaldareraRussia2026-07-26Buckley Miller Wright NEGOTIATION3Xuxue Feng
1023Salvatore M FlosiGermany2026-07-27Truhlar And Truhlar Attys RENEWAL3Ivan Magalhaes
1024Chavez Q StensethRussia2026-07-24Buckley Miller Wright NEW61Onyama Limba
1025James B NickaRussia2026-08-11Printing Dimensions RENEWAL23Ioni Bowcher
1026Mujtaba Q FlosiBrazil2026-07-19Benton, John B Jr UNQUALIFIED46Xuxue Feng
1027Wickens X InouyeJapan2026-07-29Chanay, Jeffrey A Esq NEW77Ioni Bowcher
1028Salvatore T StensethUnited Kingdom2026-07-31Commercial Press NEW21Ioni Bowcher
1029Julie Q FollerCanada2026-07-21Truhlar And Truhlar Attys NEW90Ivan Magalhaes
1030Jefferson B TollnerIndia2026-07-17Rangoni Of Florence UNQUALIFIED16Bernardo Dominic
1031Leon R OstroskyAustralia2026-08-04Dorl, James J Esq PROPOSAL81Amy Elsner
1032Adams N KolmetzGermany2026-08-15Rousseaux, Michael Esq UNQUALIFIED30Xuxue Feng
1033Tony U VenereBrazil2026-08-12Chanay, Jeffrey A Esq QUALIFIED71Stephen Shaw
1034Izzy S IturbideAustralia2026-08-12Rousseaux, Michael Esq PROPOSAL3Asiya Javayant
1035Deepesh P DilliardAustralia2026-08-13Rousseaux, Michael Esq RENEWAL19Asiya Javayant
1036Octavia Z PerinSpain2026-07-24Dorl, James J Esq PROPOSAL75Ivan Magalhaes
1037Kaitlin Z WieserRussia2026-08-01Printing Dimensions QUALIFIED39Ivan Magalhaes
1038Costa U FigeroaJapan2026-08-06Rousseaux, Michael Esq NEW77Amy Elsner
1039Ricardo X BowleyFrance2026-08-12King, Christopher A Esq QUALIFIED54Ivan Magalhaes
1040James T DilliardRussia2026-07-17Morlong Associates RENEWAL35Bernardo Dominic
1041Cody F SchemmerItaly2026-08-05King, Christopher A Esq QUALIFIED59Ioni Bowcher
1042Greenwood B ShinkoItaly2026-07-26Commercial Press RENEWAL58Bernardo Dominic
1043Sinclair O CaldareraGermany2026-08-11Printing Dimensions RENEWAL6Elwin Sharvill
1044Smith G GarufiCanada2026-07-22Commercial Press QUALIFIED5Asiya Javayant
1045Greenwood X FollerItaly2026-08-14Benton, John B Jr RENEWAL93Amy Elsner
1046Antonio W WaycottIndia2026-07-24Benton, John B Jr PROPOSAL34Xuxue Feng
1047Julie N InouyeUnited Kingdom2026-07-20Truhlar And Truhlar Attys UNQUALIFIED33Onyama Limba
1048Morrow M BowleyIndia2026-07-20King, Christopher A Esq NEGOTIATION51Ivan Magalhaes
1049Greenwood A OstroskyAustralia2026-08-09Chemel, James L Cpa NEGOTIATION67Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Nicolas L AlbaresJapanBernardo Dominic QUALIFIED
Leja E IturbideGermanyIvan Magalhaes RENEWAL
Deepesh T CampainGermanyOnyama Limba NEW
Morrow N GarufiAustraliaElwin Sharvill PROPOSAL
Maria T DarakjyItalyAnna Fali NEW
Jeanfrancois I DarakjyJapanIvan Magalhaes NEW
David Z WaycottGermanyIvan Magalhaes RENEWAL
Izzy M WaycottItalyAnna Fali PROPOSAL
Leja G MaletArgentinaXuxue Feng RENEWAL
Leon J PaprockiAustraliaAmy Elsner PROPOSAL
Claire A DarakjyAustraliaIoni Bowcher NEGOTIATION
Sinclair G MaletGermanyXuxue Feng RENEWAL
Antonio N SchemmerIndiaBernardo Dominic NEGOTIATION
Claire U StensethJapanAnna Fali NEGOTIATION
Maria H KuskoCanadaBernardo Dominic RENEWAL
Adams E CampainBrazilXuxue Feng UNQUALIFIED
Aruna F SchemmerGermanyAmy Elsner PROPOSAL
Jones P WhobreyGermanyElwin Sharvill RENEWAL
Johnson U CampainJapanXuxue Feng NEGOTIATION
James H DarakjyRussiaElwin Sharvill NEGOTIATION
Salvatore J DarakjySpainAsiya Javayant UNQUALIFIED
Jennifer S FollerRussiaAsiya Javayant NEGOTIATION
Isabel B MarrierAustraliaIvan Magalhaes NEW
Leon U ChuiSpainAnna Fali NEW
Aika I VocelkaItalyAsiya Javayant QUALIFIED
Aruna I KuskoArgentinaAnna Fali RENEWAL
Mayumi Z IturbideSpainAsiya Javayant QUALIFIED
Murillo D RulapaughUnited KingdomAmy Elsner QUALIFIED
Ashley E StockhamCanadaIvan Magalhaes RENEWAL
Leja J DoeSpainStephen Shaw RENEWAL
Darci F PaprockiCanadaAnna Fali PROPOSAL
Leja T VenereRussiaAsiya Javayant UNQUALIFIED
Jones G VenereItalyStephen Shaw UNQUALIFIED
Darci C MaletBrazilIvan Magalhaes NEW
Alejandro R MaletFranceStephen Shaw NEGOTIATION
Julie V KolmetzCanadaAsiya Javayant RENEWAL
Costa F StensethUnited KingdomBernardo Dominic PROPOSAL
Clifford W SergiSpainIvan Magalhaes RENEWAL
Emily Y MaletRussiaBernardo Dominic NEGOTIATION
Mujtaba X DoeItalyStephen Shaw RENEWAL
James Z KuskoGermanyAmy Elsner UNQUALIFIED
Leon X BowleyArgentinaXuxue Feng QUALIFIED
Leon V SchemmerIndiaXuxue Feng UNQUALIFIED
Kadeem M FollerSpainXuxue Feng RENEWAL
Maisha J InouyeCanadaAnna Fali NEW
Emily Z FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi F OstroskyRussiaAsiya Javayant QUALIFIED
Aditya O ChuiArgentinaElwin Sharvill PROPOSAL
Isabel N NickaUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi O BologniaRussiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Alejandro T Inouye
Johnson N Inouye
Stacey N Foller
Munro N Sergi
Jones X Rim
Chavez L Schemmer
Kaitlin N Waycott
Deepesh N Figeroa
Darci Z Bowley
Stacey Y Rulapaugh
Ricardo P Royster
Izzy X Darakjy
Smith R Shinko
Smith R Kolmetz
Faith R Schemmer
Misaki P Nicka
Emily M Sergi
Kaitlin E Vocelka
Octavia Y Butt
Maisha J Foller
Silvio N Bolognia
Smith J Ferencz
Deepesh A Venere
Adams Y Campain
Izzy T Amigon
Murillo Q Inouye
Aruna L Figeroa
Isabel O Slusarski
Salvatore O Rim
Smith Z Dilliard
Mujtaba C Caldarera
Salvatore K Gaucho
Izzy L Bowley
Jefferson S Nestle
Ricardo U Kolmetz
Aditya T Morasca
Jennifer R Kusko
Salvatore C Waycott
Sinclair M Rulapaugh
Izzy R Maclead
Murillo S Tollner
Faith M Albares
Leja Z Malet
Faith Q Waycott
Julie I Maclead
Salvatore Z Nicka
Costa R Caldarera
Leja T Tollner
Ivar G Briddick
Jones M Morasca
IdCountryDate
1000Argentina2026-08-11
1001Spain2026-08-14
1002France2026-07-30
1003Canada2026-07-28
1004Italy2026-07-28
1005Japan2026-07-24
1006Australia2026-07-30
1007Italy2026-08-02
1008Russia2026-07-28
1009Germany2026-08-08
1010Spain2026-08-15
1011India2026-08-08
1012Australia2026-07-29
1013Italy2026-07-30
1014Spain2026-08-05
1015India2026-07-26
1016India2026-08-11
1017United Kingdom2026-07-26
1018Brazil2026-07-26
1019Russia2026-08-09
1020France2026-08-01
1021Japan2026-07-22
1022United Kingdom2026-07-23
1023United Kingdom2026-07-21
1024Brazil2026-08-15
1025Canada2026-08-03
1026India2026-07-31
1027Argentina2026-08-11
1028Russia2026-08-06
1029Japan2026-07-19
1030Germany2026-07-28
1031Russia2026-07-27
1032India2026-08-05
1033Spain2026-08-13
1034Russia2026-07-20
1035India2026-08-10
1036Italy2026-08-06
1037India2026-07-19
1038Japan2026-07-26
1039Italy2026-07-30
1040Russia2026-08-06
1041Italy2026-07-26
1042Argentina2026-08-04
1043France2026-08-04
1044India2026-08-13
1045Japan2026-08-08
1046Germany2026-07-17
1047Spain2026-08-10
1048Germany2026-08-03
1049France2026-07-28

On-Demand Data

NameIdCountryDate
Claire Y Maclead1000France2026-08-05
Faith V Rim1001Spain2026-07-24
Antonio K Caldarera1002Russia2026-08-06
Aruna X Campain1003India2026-08-07
Smith J Glick1004Brazil2026-08-12
Ashley L Darakjy1005Canada2026-08-05
Stacey A Waycott1006Russia2026-07-25
Jennifer D Albares1007Russia2026-07-26
Wickens C Saylors1008Australia2026-08-04
Murillo M Campain1009Italy2026-07-22
Sinclair W Saylors1010Canada2026-08-13
Kadeem M Amigon1011Australia2026-07-31
Leon N Kusko1012Argentina2026-07-19
Kaitlin V Nicka1013Italy2026-07-31
Kadeem J Gaucho1014Brazil2026-07-20
Wickens Q Inouye1015Russia2026-07-21
Deepesh T Nicka1016India2026-08-04
Ashley Q Gaucho1017Brazil2026-08-14
Smith B Ruta1018India2026-08-15
Nicolas C Butt1019Australia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika B ShinkoGermanyElwin Sharvill RENEWAL
Morrow Y ShinkoAustraliaStephen Shaw NEW
Kaitlin H ShinkoGermanyElwin Sharvill QUALIFIED
Maisha I WaycottFranceXuxue Feng NEW
Kaitlin A DoeItalyAnna Fali QUALIFIED
Maisha K MarrierFranceIvan Magalhaes NEGOTIATION
Julie G TollnerIndiaAsiya Javayant QUALIFIED
Ricardo G MacleadItalyAnna Fali NEGOTIATION
Jeanfrancois Y CaudyAustraliaIvan Magalhaes QUALIFIED
Smith O ButtGermanyIoni Bowcher QUALIFIED
Jefferson W NestleArgentinaIoni Bowcher NEGOTIATION
Leon V MacleadJapanBernardo Dominic NEW
James C NestleJapanIvan Magalhaes NEGOTIATION
Clifford U TollnerItalyOnyama Limba RENEWAL
Claire H DarakjyIndiaElwin Sharvill QUALIFIED
Antonio B BriddickIndiaIoni Bowcher UNQUALIFIED
Francesco M AlbaresUnited KingdomStephen Shaw QUALIFIED
Mujtaba W FigeroaSpainStephen Shaw RENEWAL
Julie O FigeroaBrazilStephen Shaw UNQUALIFIED
Julie R CampainArgentinaAnna Fali NEGOTIATION
Octavia N BowleySpainAnna Fali PROPOSAL
Munro F RimGermanyAnna Fali NEGOTIATION
Deepesh N AlbaresItalyStephen Shaw NEW
David Q IturbideItalyIvan Magalhaes NEW
Silvio Z SlusarskiItalyAmy Elsner RENEWAL
Darci U DilliardAustraliaOnyama Limba RENEWAL
Jefferson S OstroskyUnited KingdomElwin Sharvill QUALIFIED
Wickens L SergiUnited KingdomAmy Elsner NEW
Greenwood M SergiItalyIvan Magalhaes RENEWAL
Isabel S WaycottItalyBernardo Dominic RENEWAL
Adams X ShinkoIndiaIoni Bowcher NEGOTIATION
Ricardo E BologniaUnited KingdomIoni Bowcher PROPOSAL
Juan T StensethCanadaOnyama Limba PROPOSAL
Kaitlin Y KuskoFranceAmy Elsner UNQUALIFIED
Maisha D WieserBrazilOnyama Limba UNQUALIFIED
Isabel Y GillianJapanAsiya Javayant UNQUALIFIED
Mujtaba G NestleJapanAmy Elsner QUALIFIED
Tony A RoysterUnited KingdomIoni Bowcher QUALIFIED
Costa R PoquetteGermanyAsiya Javayant NEW
Claire K OstroskyRussiaBernardo Dominic PROPOSAL

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