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
Greenwood B DoeIndiaAmy Elsner NEGOTIATION
Tony K OstroskyJapanAsiya Javayant QUALIFIED
Tony L CampainArgentinaAmy Elsner QUALIFIED
Morrow W MarrierCanadaOnyama Limba QUALIFIED
Emily K InouyeRussiaIoni Bowcher QUALIFIED
Rodrigues S NestleRussiaXuxue Feng PROPOSAL
Costa D RulapaughAustraliaElwin Sharvill NEGOTIATION
Leja E DarakjyRussiaIvan Magalhaes UNQUALIFIED
Ricardo N WieserIndiaBernardo Dominic NEGOTIATION
Morrow I MarrierSpainOnyama Limba UNQUALIFIED
Jennifer Y PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Darci B ButtUnited KingdomIoni Bowcher PROPOSAL
Sinclair P PerinRussiaXuxue Feng QUALIFIED
Leja V DarakjyUnited KingdomIvan Magalhaes NEW
Darci I SlusarskiFranceAmy Elsner QUALIFIED
Jennifer U KuskoGermanyElwin Sharvill NEGOTIATION
Darci Y RutaIndiaAsiya Javayant NEGOTIATION
Deepesh X MaletCanadaOnyama Limba NEGOTIATION
Munro U PaprockiBrazilAnna Fali RENEWAL
Izzy Y GillianJapanStephen Shaw RENEWAL
Munro P GarufiAustraliaBernardo Dominic RENEWAL
Jennifer R NestleGermanyStephen Shaw PROPOSAL
Misaki T AmigonArgentinaAmy Elsner UNQUALIFIED
Stacey I ShinkoIndiaXuxue Feng PROPOSAL
Antonio V CaudyCanadaIvan Magalhaes NEW
Claire Z GillianCanadaIoni Bowcher PROPOSAL
Leon L FollerUnited KingdomStephen Shaw UNQUALIFIED
Jones Z FollerFranceBernardo Dominic UNQUALIFIED
Antonio J FlosiArgentinaOnyama Limba RENEWAL
Adams C MaletSpainAnna Fali RENEWAL
Mayumi C DarakjyArgentinaElwin Sharvill NEW
Deepesh O RulapaughAustraliaAsiya Javayant NEW
Munro R GarufiArgentinaBernardo Dominic PROPOSAL
Francesco B BowleyRussiaAsiya Javayant PROPOSAL
Jeanfrancois T GillianArgentinaIoni Bowcher RENEWAL
Francesco N StockhamUnited KingdomIvan Magalhaes NEW
Nicolas X FollerItalyIvan Magalhaes QUALIFIED
Alejandro N VocelkaGermanyOnyama Limba NEW
Octavia F GillianJapanOnyama Limba QUALIFIED
Claire I StensethUnited KingdomAnna Fali NEW
Julie J BriddickBrazilAsiya Javayant NEW
Aika D BologniaIndiaBernardo Dominic PROPOSAL
Ivar Y MaletItalyIoni Bowcher UNQUALIFIED
Francesco P WaycottRussiaStephen Shaw UNQUALIFIED
Adams B WieserJapanBernardo Dominic NEGOTIATION
Ivar R DilliardFranceBernardo Dominic RENEWAL
Emily N OstroskyItalyIvan Magalhaes NEW
Salvatore Y GlickIndiaStephen Shaw QUALIFIED
Stacey W NestleItalyOnyama Limba RENEWAL
Silvio F OstroskyBrazilStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy Q GauchoJapanIoni Bowcher UNQUALIFIED
Kadeem X DoeUnited KingdomXuxue Feng UNQUALIFIED
Aruna E SchemmerItalyIvan Magalhaes RENEWAL
Faith Q RoysterIndiaXuxue Feng PROPOSAL
Silvio K InouyeFranceStephen Shaw NEW
Francesco K MacleadIndiaAsiya Javayant UNQUALIFIED
Clifford O RimGermanyStephen Shaw RENEWAL
Jefferson A VenereUnited KingdomAsiya Javayant PROPOSAL
Silvio J MacleadSpainIoni Bowcher NEGOTIATION
Francesco X BologniaFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja G InouyeRussia2026-07-07Truhlar And Truhlar Attys QUALIFIED69Anna Fali
1001Adams W NestleGermany2026-06-25Buckley Miller Wright QUALIFIED34Anna Fali
1002Emily J KolmetzJapan2026-07-19Printing Dimensions PROPOSAL26Asiya Javayant
1003Aika R FerenczItaly2026-07-10Commercial Press QUALIFIED60Bernardo Dominic
1004Morrow S StensethIndia2026-07-06Benton, John B Jr NEW99Onyama Limba
1005Johnson P InouyeIndia2026-07-15Dorl, James J Esq UNQUALIFIED19Amy Elsner
1006David G OstroskyRussia2026-07-12Commercial Press UNQUALIFIED36Elwin Sharvill
1007Jones O MaletGermany2026-07-13Chemel, James L Cpa QUALIFIED55Elwin Sharvill
1008Octavia V SaylorsRussia2026-06-27Benton, John B Jr PROPOSAL20Stephen Shaw
1009Aditya W CaudyJapan2026-06-27Rousseaux, Michael Esq NEW25Xuxue Feng
1010Jefferson C FollerGermany2026-06-24Morlong Associates RENEWAL12Anna Fali
1011Mujtaba M GauchoBrazil2026-07-16Feltz Printing Service RENEWAL19Onyama Limba
1012Leja P GauchoRussia2026-07-17Morlong Associates UNQUALIFIED11Ivan Magalhaes
1013Arvin O SergiItaly2026-07-09Morlong Associates NEGOTIATION75Anna Fali
1014Maria D KuskoItaly2026-06-30Feltz Printing Service NEGOTIATION36Xuxue Feng
1015Kadeem Y AmigonJapan2026-07-06Chanay, Jeffrey A Esq NEGOTIATION27Bernardo Dominic
1016Wickens R PoquetteAustralia2026-06-24Chapman, Ross E Esq PROPOSAL26Stephen Shaw
1017Leja J BologniaJapan2026-07-16Printing Dimensions PROPOSAL54Bernardo Dominic
1018Claire L ShinkoIndia2026-07-19Buckley Miller Wright UNQUALIFIED75Ivan Magalhaes
1019Johnson X FollerIndia2026-07-03Benton, John B Jr UNQUALIFIED77Amy Elsner
1020Jennifer X ShinkoUnited Kingdom2026-07-13King, Christopher A Esq UNQUALIFIED56Asiya Javayant
1021Alejandro Z VocelkaItaly2026-07-05Rousseaux, Michael Esq RENEWAL87Elwin Sharvill
1022Murillo D DarakjyBrazil2026-06-21Chanay, Jeffrey A Esq PROPOSAL85Amy Elsner
1023Salvatore V VenereIndia2026-07-06Morlong Associates PROPOSAL88Ioni Bowcher
1024Smith U WieserGermany2026-07-08Benton, John B Jr PROPOSAL21Bernardo Dominic
1025Chavez O GlickBrazil2026-07-13Morlong Associates QUALIFIED69Bernardo Dominic
1026Jones J OstroskyGermany2026-07-19Chanay, Jeffrey A Esq NEGOTIATION50Asiya Javayant
1027Deepesh F TollnerRussia2026-07-20Rousseaux, Michael Esq RENEWAL5Amy Elsner
1028James A FigeroaUnited Kingdom2026-07-15Printing Dimensions NEGOTIATION33Onyama Limba
1029Nicolas T GauchoItaly2026-06-27Commercial Press RENEWAL51Elwin Sharvill
1030Aditya D PaprockiArgentina2026-07-12Chapman, Ross E Esq NEGOTIATION53Amy Elsner
1031Darci X DarakjyRussia2026-07-08King, Christopher A Esq RENEWAL66Onyama Limba
1032James X BriddickUnited Kingdom2026-06-21Chapman, Ross E Esq RENEWAL30Stephen Shaw
1033Jennifer D MaletJapan2026-06-27Truhlar And Truhlar Attys PROPOSAL57Ioni Bowcher
1034Octavia A AmigonSpain2026-07-14Feiner Bros RENEWAL25Anna Fali
1035Maria S MorascaFrance2026-07-10Chanay, Jeffrey A Esq RENEWAL67Amy Elsner
1036Octavia P StockhamCanada2026-06-23Truhlar And Truhlar Attys NEGOTIATION81Bernardo Dominic
1037Julie J MacleadGermany2026-06-25Rangoni Of Florence UNQUALIFIED85Asiya Javayant
1038Tony W AlbaresRussia2026-06-24Commercial Press RENEWAL54Anna Fali
1039David L PoquetteCanada2026-07-05Printing Dimensions PROPOSAL15Stephen Shaw
1040Morrow T VocelkaCanada2026-07-17Truhlar And Truhlar Attys PROPOSAL11Onyama Limba
1041Maisha Z SaylorsCanada2026-07-11Buckley Miller Wright UNQUALIFIED46Ioni Bowcher
1042Maisha V RoysterArgentina2026-06-22Feltz Printing Service QUALIFIED86Stephen Shaw
1043Jeanfrancois I GlickAustralia2026-07-05Chanay, Jeffrey A Esq RENEWAL65Ioni Bowcher
1044Deepesh P StensethIndia2026-07-18Chemel, James L Cpa PROPOSAL6Xuxue Feng
1045Costa W RutaBrazil2026-06-24Truhlar And Truhlar Attys QUALIFIED16Asiya Javayant
1046Aditya W DoeArgentina2026-07-18Chemel, James L Cpa NEGOTIATION22Stephen Shaw
1047Leon Q ChuiGermany2026-06-24Truhlar And Truhlar Attys NEW4Onyama Limba
1048Isabel U VocelkaFrance2026-07-08Chemel, James L Cpa QUALIFIED4Xuxue Feng
1049Francesco U VocelkaJapan2026-07-09Commercial Press RENEWAL50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
James F WaycottBrazilStephen Shaw UNQUALIFIED
Julie V ShinkoSpainElwin Sharvill QUALIFIED
Aruna Y RulapaughBrazilAnna Fali RENEWAL
Alejandro L SlusarskiAustraliaElwin Sharvill NEGOTIATION
Munro M RimIndiaIvan Magalhaes NEW
Jones E CampainCanadaIoni Bowcher NEW
Emily N CaldareraAustraliaBernardo Dominic UNQUALIFIED
Ivar W GauchoCanadaStephen Shaw NEGOTIATION
Jennifer C SergiGermanyXuxue Feng PROPOSAL
Clifford H AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Tony R ChuiArgentinaXuxue Feng PROPOSAL
Maria J GarufiUnited KingdomOnyama Limba NEW
Stacey S MaletUnited KingdomStephen Shaw QUALIFIED
Johnson F MarrierIndiaIoni Bowcher QUALIFIED
Aditya T PaprockiFranceAnna Fali NEGOTIATION
Maisha I FerenczCanadaAsiya Javayant QUALIFIED
Smith P FollerSpainOnyama Limba UNQUALIFIED
Ashley G FigeroaUnited KingdomAnna Fali NEW
Ashley Z RimJapanIvan Magalhaes QUALIFIED
Francesco J OldroydCanadaIvan Magalhaes NEW
Cody T GillianSpainElwin Sharvill PROPOSAL
Antonio F KolmetzIndiaAmy Elsner NEGOTIATION
Salvatore X WaycottFranceAnna Fali UNQUALIFIED
Darci H OldroydBrazilElwin Sharvill UNQUALIFIED
Aditya P StockhamGermanyAnna Fali UNQUALIFIED
Nicolas K VocelkaJapanBernardo Dominic PROPOSAL
Misaki J SlusarskiBrazilXuxue Feng QUALIFIED
Julie L GarufiUnited KingdomBernardo Dominic RENEWAL
Ivar U WhobreyJapanOnyama Limba QUALIFIED
Kaitlin W BologniaAustraliaElwin Sharvill NEGOTIATION
Francesco K KuskoJapanIoni Bowcher UNQUALIFIED
Aika M WhobreyCanadaElwin Sharvill QUALIFIED
Jefferson F MacleadIndiaIoni Bowcher UNQUALIFIED
Isabel G NickaGermanyAsiya Javayant QUALIFIED
Salvatore O WaycottFranceIoni Bowcher RENEWAL
Rodrigues J BriddickArgentinaOnyama Limba NEGOTIATION
Leja L FerenczGermanyIvan Magalhaes UNQUALIFIED
Mujtaba B BologniaSpainStephen Shaw PROPOSAL
Mayumi X FigeroaItalyBernardo Dominic UNQUALIFIED
Mayumi G CampainGermanyAnna Fali UNQUALIFIED
Maria R AmigonItalyXuxue Feng NEGOTIATION
Stacey P KolmetzRussiaElwin Sharvill PROPOSAL
Juan B RulapaughRussiaXuxue Feng UNQUALIFIED
Jefferson C MacleadGermanyStephen Shaw PROPOSAL
Leon X PoquetteItalyIvan Magalhaes QUALIFIED
Emily A CaldareraAustraliaElwin Sharvill NEW
Julie M SlusarskiBrazilAnna Fali QUALIFIED
Jones M GlickJapanBernardo Dominic UNQUALIFIED
Jeanfrancois U DoeUnited KingdomAmy Elsner NEGOTIATION
Antonio T FigeroaIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Claire U Gillian
Adams I Nicka
Faith C Nicka
Julie V Garufi
Darci F Garufi
Arvin N Oldroyd
Alejandro V Malet
Kadeem D Figeroa
Johnson T Glick
Juan F Royster
Nicolas I Campain
Julie T Nicka
Alejandro A Ruta
Wickens J Dilliard
Alejandro P Inouye
Misaki J Campain
Tony E Ferencz
Jeanfrancois S Slusarski
Jones F Malet
Antonio L Campain
Sinclair R Nestle
Juan G Kolmetz
Kaitlin B Figeroa
Cody L Paprocki
Chavez B Doe
Isabel Q Albares
Mujtaba R Tollner
Maisha F Morasca
Johnson V Foller
Deepesh S Iturbide
Tony F Malet
Chavez V Poquette
Misaki R Glick
Francesco U Whobrey
Leja V Schemmer
Francesco A Amigon
Sinclair Y Rulapaugh
Smith U Shinko
Jennifer B Caldarera
Wickens H Royster
Leja Q Whobrey
Greenwood O Nestle
Costa W Stenseth
Kaitlin P Maclead
Francesco D Venere
Francesco E Bowley
Aika U Iturbide
Adams G Stockham
Maisha F Kolmetz
Silvio D Albares
IdCountryDate
1000Japan2026-07-16
1001France2026-07-08
1002Australia2026-07-20
1003Brazil2026-07-10
1004Japan2026-07-12
1005India2026-07-14
1006United Kingdom2026-07-20
1007Argentina2026-07-18
1008Spain2026-07-01
1009Australia2026-07-17
1010Canada2026-06-23
1011Japan2026-07-12
1012France2026-07-15
1013France2026-06-28
1014Italy2026-06-30
1015India2026-07-03
1016India2026-06-24
1017Brazil2026-07-04
1018Australia2026-07-05
1019Brazil2026-07-12
1020Brazil2026-06-25
1021Brazil2026-06-23
1022Japan2026-07-17
1023France2026-07-13
1024Brazil2026-07-09
1025Australia2026-07-16
1026Italy2026-06-30
1027France2026-07-13
1028France2026-07-19
1029Spain2026-06-26
1030Italy2026-07-16
1031United Kingdom2026-06-29
1032Australia2026-06-22
1033India2026-06-22
1034Russia2026-07-20
1035Italy2026-07-18
1036Argentina2026-06-23
1037Canada2026-06-24
1038Italy2026-06-24
1039United Kingdom2026-07-18
1040Argentina2026-07-20
1041United Kingdom2026-07-02
1042Russia2026-07-13
1043Germany2026-07-10
1044United Kingdom2026-06-30
1045Russia2026-06-26
1046Australia2026-07-04
1047India2026-07-11
1048Spain2026-07-19
1049France2026-06-23

On-Demand Data

NameIdCountryDate
Deepesh V Oldroyd1000Australia2026-07-06
Ricardo K Marrier1001Japan2026-06-29
Leja W Flosi1002Australia2026-06-24
Maria T Waycott1003Argentina2026-07-10
Ricardo E Whobrey1004Japan2026-07-19
Jones D Garufi1005Italy2026-07-01
Jones C Saylors1006Canada2026-06-28
Izzy X Rulapaugh1007Canada2026-07-02
Morrow X Malet1008Brazil2026-07-11
Tony V Paprocki1009Spain2026-07-02
Adams P Paprocki1010Russia2026-06-21
Smith B Glick1011India2026-06-22
Arvin O Nestle1012Russia2026-07-04
Cody H Foller1013United Kingdom2026-07-13
Nicolas E Wieser1014Russia2026-06-22
Julie S Perin1015Argentina2026-07-03
Adams Q Schemmer1016Germany2026-07-06
Aditya U Garufi1017Argentina2026-07-04
Leon E Campain1018Japan2026-07-14
Tony U Rim1019Italy2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody G RoysterBrazilIvan Magalhaes NEW
Leon J RoysterCanadaIvan Magalhaes NEGOTIATION
Salvatore E AlbaresRussiaStephen Shaw RENEWAL
Julie I OstroskyItalyAsiya Javayant UNQUALIFIED
Ashley E TollnerGermanyStephen Shaw NEW
Aika O PoquetteJapanStephen Shaw RENEWAL
James M CampainArgentinaStephen Shaw RENEWAL
Emily H KuskoIndiaElwin Sharvill PROPOSAL
Greenwood X NickaJapanAnna Fali QUALIFIED
Arvin C StensethSpainStephen Shaw NEW
Smith L CaudyCanadaIoni Bowcher RENEWAL
Emily X MaletUnited KingdomAsiya Javayant NEGOTIATION
Deepesh M WieserUnited KingdomIvan Magalhaes NEW
Emily T RutaCanadaAnna Fali UNQUALIFIED
Mayumi K SlusarskiJapanXuxue Feng NEW
Costa L FigeroaArgentinaBernardo Dominic NEGOTIATION
Aruna C ShinkoIndiaBernardo Dominic PROPOSAL
Ashley G ButtAustraliaAnna Fali UNQUALIFIED
Stacey H RoysterSpainAnna Fali NEGOTIATION
Smith Y DoeJapanBernardo Dominic NEGOTIATION
Nicolas H FerenczAustraliaStephen Shaw NEGOTIATION
Aruna E BriddickIndiaAmy Elsner NEGOTIATION
Ivar Z IturbideGermanyAmy Elsner NEW
Ivar X PoquetteJapanAsiya Javayant NEGOTIATION
Mujtaba M VenereAustraliaAsiya Javayant QUALIFIED
Faith V CampainRussiaAnna Fali PROPOSAL
David Y NickaJapanXuxue Feng NEGOTIATION
Johnson V PoquetteCanadaXuxue Feng QUALIFIED
Jones P BowleyArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues G AmigonRussiaAnna Fali NEW
Juan E OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Izzy L MarrierUnited KingdomIoni Bowcher NEGOTIATION
David J GlickItalyIoni Bowcher RENEWAL
Juan P SchemmerAustraliaElwin Sharvill RENEWAL
Tony Y SchemmerArgentinaAsiya Javayant QUALIFIED
Leja F FollerFranceAsiya Javayant PROPOSAL
Kadeem K CaudyBrazilElwin Sharvill PROPOSAL
Kadeem V ButtIndiaIvan Magalhaes RENEWAL
Mujtaba E AmigonFranceBernardo Dominic PROPOSAL
Darci P StensethBrazilAnna Fali RENEWAL

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