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
Nicolas Z GillianArgentinaBernardo Dominic UNQUALIFIED
Ricardo S SchemmerUnited KingdomXuxue Feng NEW
Francesco R BowleySpainIoni Bowcher RENEWAL
Mujtaba Y FerenczGermanyElwin Sharvill NEW
James T DarakjyRussiaIvan Magalhaes NEW
Ivar P ChuiRussiaIoni Bowcher UNQUALIFIED
Kadeem G OstroskyIndiaAnna Fali UNQUALIFIED
Salvatore N PoquetteItalyAsiya Javayant PROPOSAL
Mayumi L KuskoItalyIoni Bowcher PROPOSAL
Tony F IturbideUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois C ShinkoArgentinaAsiya Javayant NEGOTIATION
Costa C SergiJapanIvan Magalhaes QUALIFIED
Ashley U KolmetzSpainIvan Magalhaes NEGOTIATION
Stacey D OldroydIndiaAmy Elsner NEGOTIATION
Ricardo L CaudyRussiaElwin Sharvill QUALIFIED
Leon D MacleadBrazilXuxue Feng UNQUALIFIED
Sinclair X RutaGermanyIoni Bowcher NEGOTIATION
Tony L SaylorsItalyXuxue Feng UNQUALIFIED
Jennifer O PoquetteJapanAmy Elsner PROPOSAL
Rodrigues V RulapaughAustraliaOnyama Limba RENEWAL
Jennifer U MacleadAustraliaAmy Elsner UNQUALIFIED
Murillo N StensethSpainAmy Elsner QUALIFIED
Ivar D WhobreyJapanXuxue Feng PROPOSAL
Salvatore P BowleyBrazilStephen Shaw NEGOTIATION
Jeanfrancois C PerinIndiaXuxue Feng QUALIFIED
Jeanfrancois U KolmetzBrazilElwin Sharvill NEW
Adams V RimAustraliaAmy Elsner NEW
Emily D MacleadGermanyOnyama Limba RENEWAL
Ricardo R DilliardGermanyBernardo Dominic NEGOTIATION
Rodrigues E MaletSpainAsiya Javayant NEW
Francesco R BriddickItalyElwin Sharvill PROPOSAL
Faith S SlusarskiRussiaAmy Elsner UNQUALIFIED
Aruna C FigeroaGermanyBernardo Dominic PROPOSAL
Murillo F SchemmerGermanyElwin Sharvill PROPOSAL
Juan U CaudyItalyAsiya Javayant PROPOSAL
Munro D OldroydRussiaOnyama Limba RENEWAL
Juan C RulapaughJapanXuxue Feng NEW
Jefferson U PerinUnited KingdomXuxue Feng NEGOTIATION
Isabel K GarufiCanadaIoni Bowcher NEGOTIATION
Octavia O PaprockiGermanyAnna Fali NEW
Aditya I RimUnited KingdomIoni Bowcher NEW
Clifford S ButtFranceOnyama Limba RENEWAL
Octavia Y SchemmerJapanIvan Magalhaes RENEWAL
Juan T WieserAustraliaElwin Sharvill RENEWAL
Jennifer C MorascaGermanyElwin Sharvill NEW
Ricardo C RulapaughCanadaBernardo Dominic QUALIFIED
Adams Q ButtRussiaOnyama Limba PROPOSAL
Silvio S IturbideJapanAmy Elsner RENEWAL
Adams S PaprockiJapanAsiya Javayant PROPOSAL
Costa U MaletItalyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha J FlosiRussiaIvan Magalhaes RENEWAL
Izzy D CampainRussiaElwin Sharvill NEGOTIATION
Misaki N StensethFranceElwin Sharvill NEGOTIATION
Antonio U RimJapanStephen Shaw RENEWAL
Johnson W DarakjyGermanyAsiya Javayant PROPOSAL
Mujtaba U PaprockiItalyOnyama Limba RENEWAL
Deepesh A WhobreyFranceIoni Bowcher UNQUALIFIED
Deepesh N AlbaresAustraliaBernardo Dominic RENEWAL
Sinclair F MacleadGermanyIoni Bowcher NEW
Emily R RulapaughIndiaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon Y GillianArgentina2026-07-17Dorl, James J Esq PROPOSAL84Xuxue Feng
1001David Y FollerJapan2026-07-23Feltz Printing Service QUALIFIED99Asiya Javayant
1002Mujtaba U VenereArgentina2026-07-14Commercial Press PROPOSAL63Xuxue Feng
1003Jeanfrancois F ChuiCanada2026-07-17Dorl, James J Esq QUALIFIED0Ivan Magalhaes
1004Juan M PerinFrance2026-07-09Rousseaux, Michael Esq UNQUALIFIED34Bernardo Dominic
1005Emily T ButtRussia2026-07-21Benton, John B Jr QUALIFIED87Elwin Sharvill
1006Smith M GillianFrance2026-06-30Rangoni Of Florence RENEWAL74Anna Fali
1007Octavia I KolmetzRussia2026-07-19Benton, John B Jr UNQUALIFIED86Anna Fali
1008Antonio F RutaItaly2026-07-21Chemel, James L Cpa NEW52Stephen Shaw
1009Chavez I BowleyItaly2026-07-21Dorl, James J Esq NEW14Amy Elsner
1010Maisha T IturbideFrance2026-07-04Chemel, James L Cpa NEW97Asiya Javayant
1011Isabel E DarakjyCanada2026-07-02Rousseaux, Michael Esq NEW31Xuxue Feng
1012Jeanfrancois R CampainUnited Kingdom2026-07-03Dorl, James J Esq NEGOTIATION50Ivan Magalhaes
1013Smith C KolmetzGermany2026-07-20Commercial Press PROPOSAL29Asiya Javayant
1014Juan H WieserGermany2026-07-28King, Christopher A Esq NEGOTIATION42Stephen Shaw
1015Maria D WieserCanada2026-07-05Dorl, James J Esq RENEWAL24Asiya Javayant
1016Julie F StockhamFrance2026-06-30Benton, John B Jr NEGOTIATION57Xuxue Feng
1017Greenwood K ChuiRussia2026-06-30Morlong Associates NEGOTIATION54Ioni Bowcher
1018Nicolas J BologniaGermany2026-07-04Truhlar And Truhlar Attys NEGOTIATION66Stephen Shaw
1019Juan X NickaSpain2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED58Ioni Bowcher
1020Octavia Y SchemmerGermany2026-07-01Dorl, James J Esq NEW41Bernardo Dominic
1021Leja C FlosiSpain2026-07-24Commercial Press QUALIFIED43Amy Elsner
1022Morrow X NickaAustralia2026-07-21Rangoni Of Florence PROPOSAL44Ioni Bowcher
1023Octavia Z SchemmerGermany2026-07-12Rangoni Of Florence UNQUALIFIED56Xuxue Feng
1024Claire P MacleadCanada2026-07-11Chemel, James L Cpa UNQUALIFIED10Stephen Shaw
1025Mayumi Q CaudyCanada2026-07-20Commercial Press PROPOSAL42Amy Elsner
1026Arvin W AmigonRussia2026-07-01Rangoni Of Florence NEGOTIATION47Asiya Javayant
1027Rodrigues P WaycottItaly2026-07-05Chapman, Ross E Esq QUALIFIED37Amy Elsner
1028Faith U NestleArgentina2026-07-05Feiner Bros NEW26Elwin Sharvill
1029Jefferson W AmigonBrazil2026-07-24Feiner Bros RENEWAL72Ivan Magalhaes
1030Rodrigues M RulapaughBrazil2026-07-23Chemel, James L Cpa NEGOTIATION76Elwin Sharvill
1031James Z GarufiFrance2026-07-02Benton, John B Jr QUALIFIED69Asiya Javayant
1032Nicolas N ShinkoSpain2026-06-30Printing Dimensions PROPOSAL26Amy Elsner
1033Ashley X MorascaItaly2026-07-10Commercial Press RENEWAL6Amy Elsner
1034Juan F PoquetteJapan2026-06-29King, Christopher A Esq NEGOTIATION84Amy Elsner
1035Izzy L KuskoArgentina2026-07-10Rangoni Of Florence NEW43Ioni Bowcher
1036Stacey X CaldareraArgentina2026-07-18Feltz Printing Service UNQUALIFIED44Bernardo Dominic
1037Isabel E KolmetzUnited Kingdom2026-07-08Rousseaux, Michael Esq RENEWAL44Anna Fali
1038Jones T OldroydCanada2026-07-01Chemel, James L Cpa NEGOTIATION65Ioni Bowcher
1039Misaki R GlickUnited Kingdom2026-07-23Feltz Printing Service NEGOTIATION82Asiya Javayant
1040Ricardo D PerinGermany2026-07-12King, Christopher A Esq NEW29Onyama Limba
1041Jeanfrancois M ChuiBrazil2026-07-14Feiner Bros NEGOTIATION40Elwin Sharvill
1042Jefferson F RulapaughIndia2026-07-12Chapman, Ross E Esq RENEWAL74Stephen Shaw
1043Deepesh H OstroskyJapan2026-07-13Truhlar And Truhlar Attys QUALIFIED35Anna Fali
1044Chavez F BriddickRussia2026-07-04Benton, John B Jr RENEWAL15Amy Elsner
1045Ivar W GlickFrance2026-07-24Printing Dimensions UNQUALIFIED58Anna Fali
1046Arvin W NestleJapan2026-06-29Buckley Miller Wright UNQUALIFIED71Anna Fali
1047Deepesh D DoeCanada2026-07-11Commercial Press UNQUALIFIED66Ioni Bowcher
1048Alejandro P SaylorsIndia2026-07-20Chemel, James L Cpa RENEWAL74Anna Fali
1049Salvatore V PaprockiFrance2026-07-04Feltz Printing Service QUALIFIED0Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci Z FerenczJapanIoni Bowcher RENEWAL
Francesco X RulapaughSpainAnna Fali PROPOSAL
Isabel N NestleRussiaAmy Elsner UNQUALIFIED
Arvin S VenereItalyBernardo Dominic UNQUALIFIED
Faith P PoquetteJapanAmy Elsner PROPOSAL
Greenwood R FigeroaGermanyAsiya Javayant RENEWAL
Silvio F SlusarskiUnited KingdomAmy Elsner PROPOSAL
Wickens O WhobreyIndiaElwin Sharvill UNQUALIFIED
Maria M VocelkaRussiaElwin Sharvill RENEWAL
Maisha H MarrierGermanyIoni Bowcher NEW
Stacey H BologniaCanadaBernardo Dominic RENEWAL
Stacey J RoysterFranceAsiya Javayant UNQUALIFIED
Isabel B OstroskySpainIoni Bowcher PROPOSAL
Kaitlin K StensethIndiaIoni Bowcher NEGOTIATION
Greenwood X PerinIndiaIvan Magalhaes RENEWAL
Arvin P NestleAustraliaStephen Shaw NEW
Leja R BriddickBrazilIoni Bowcher NEW
Julie Y StensethArgentinaIoni Bowcher PROPOSAL
Jeanfrancois J NickaArgentinaOnyama Limba NEGOTIATION
Rodrigues K CampainBrazilIvan Magalhaes NEW
Aika M DoeFranceElwin Sharvill NEW
Mayumi I GarufiIndiaAmy Elsner NEGOTIATION
Kadeem Y DilliardGermanyAnna Fali NEGOTIATION
Murillo Y SlusarskiArgentinaStephen Shaw QUALIFIED
Claire N KolmetzSpainBernardo Dominic RENEWAL
Morrow C SaylorsGermanyStephen Shaw UNQUALIFIED
Jeanfrancois A OstroskyJapanIoni Bowcher RENEWAL
David M TollnerRussiaIvan Magalhaes RENEWAL
Izzy U GillianArgentinaOnyama Limba NEW
David Q BriddickCanadaOnyama Limba NEW
Johnson W DoeItalyElwin Sharvill RENEWAL
Tony K AlbaresAustraliaIvan Magalhaes QUALIFIED
Adams Z RimArgentinaIvan Magalhaes NEW
Antonio K CampainUnited KingdomElwin Sharvill NEGOTIATION
Juan D AmigonCanadaAsiya Javayant PROPOSAL
Silvio K PoquetteFranceAnna Fali PROPOSAL
Juan V FlosiAustraliaXuxue Feng PROPOSAL
Deepesh B PaprockiArgentinaAmy Elsner RENEWAL
Maria G RutaItalyStephen Shaw NEW
Adams M CampainArgentinaStephen Shaw RENEWAL
Adams J MacleadRussiaIoni Bowcher QUALIFIED
Emily A RutaRussiaAmy Elsner RENEWAL
Aruna D GarufiItalyAnna Fali QUALIFIED
Aika K GarufiItalyStephen Shaw QUALIFIED
Jones F BriddickFranceIoni Bowcher NEW
Kadeem U AmigonAustraliaAmy Elsner QUALIFIED
Octavia E GlickCanadaAnna Fali UNQUALIFIED
Costa B DoeItalyElwin Sharvill NEW
Nicolas V InouyeAustraliaIvan Magalhaes UNQUALIFIED
Jennifer M VenereFranceIoni Bowcher PROPOSAL
Frozen Columns
Name
Kadeem V Gillian
Murillo Y Malet
Misaki I Saylors
Isabel T Caudy
Silvio S Inouye
Kadeem I Stenseth
Ashley M Saylors
Leja T Royster
Deepesh S Maclead
Jefferson H Garufi
Clifford C Inouye
Smith W Paprocki
Clifford H Venere
Mujtaba N Royster
Cody N Gaucho
Jennifer V Ferencz
Ricardo E Garufi
Wickens Z Wieser
Jefferson R Kolmetz
Mayumi Z Whobrey
Deepesh T Caudy
Greenwood K Malet
Munro J Whobrey
Isabel S Nestle
Emily W Foller
Wickens B Maclead
Faith N Ostrosky
Kadeem L Venere
Arvin I Schemmer
Maria K Rulapaugh
Silvio M Sergi
Emily X Foller
Silvio J Tollner
Mayumi L Marrier
Nicolas R Doe
Maisha K Garufi
Salvatore M Kusko
Mujtaba Z Maclead
Maisha R Rim
Jones T Glick
Leja N Vocelka
Emily C Stenseth
David Z Rim
Ricardo W Butt
Cody L Stockham
Jones N Ostrosky
Adams U Gaucho
Silvio A Venere
Aika P Stenseth
Leja M Briddick
IdCountryDate
1000Japan2026-07-27
1001United Kingdom2026-07-26
1002United Kingdom2026-07-11
1003Brazil2026-07-05
1004Italy2026-07-03
1005Australia2026-07-11
1006India2026-07-04
1007Russia2026-07-24
1008Brazil2026-07-19
1009Canada2026-07-24
1010Italy2026-07-17
1011Argentina2026-07-28
1012Spain2026-07-18
1013Russia2026-07-16
1014Russia2026-07-18
1015Argentina2026-07-06
1016Argentina2026-07-20
1017Australia2026-07-15
1018Canada2026-07-26
1019France2026-07-19
1020Russia2026-07-24
1021Spain2026-07-15
1022Germany2026-07-22
1023Russia2026-06-30
1024Germany2026-07-08
1025Germany2026-07-06
1026Germany2026-07-27
1027India2026-07-17
1028Italy2026-07-03
1029Japan2026-07-11
1030India2026-07-03
1031Brazil2026-07-07
1032Japan2026-07-27
1033Spain2026-07-07
1034Russia2026-07-03
1035Russia2026-07-22
1036France2026-07-16
1037Russia2026-07-03
1038Germany2026-07-21
1039Italy2026-07-07
1040United Kingdom2026-07-14
1041Japan2026-07-26
1042Canada2026-07-04
1043France2026-07-10
1044France2026-07-09
1045Argentina2026-07-22
1046France2026-07-19
1047Argentina2026-07-15
1048United Kingdom2026-07-19
1049Argentina2026-07-02

On-Demand Data

NameIdCountryDate
Silvio A Whobrey1000India2026-07-11
Ivar W Briddick1001Japan2026-07-27
Silvio Q Darakjy1002Italy2026-07-28
Aika U Bowley1003United Kingdom2026-06-30
Jefferson K Royster1004Argentina2026-06-30
Francesco W Iturbide1005India2026-07-10
Munro N Marrier1006Canada2026-07-11
Sinclair B Wieser1007Australia2026-07-05
Johnson Z Morasca1008Spain2026-07-23
Mujtaba R Tollner1009Spain2026-07-03
Nicolas J Briddick1010United Kingdom2026-07-02
Francesco O Stenseth1011India2026-06-29
Ivar Y Gaucho1012Spain2026-07-21
Cody S Albares1013Canada2026-07-10
Smith R Sergi1014Japan2026-07-21
Johnson L Maclead1015Argentina2026-07-13
Claire F Malet1016India2026-07-23
Jones I Amigon1017India2026-07-16
Sinclair U Caudy1018Argentina2026-07-16
Claire V Maclead1019Russia2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood X KolmetzBrazilIoni Bowcher PROPOSAL
Aika U RulapaughJapanAmy Elsner UNQUALIFIED
Deepesh O SchemmerAustraliaAmy Elsner QUALIFIED
Mayumi D PaprockiArgentinaAnna Fali QUALIFIED
Izzy Z BriddickItalyOnyama Limba QUALIFIED
Smith Y SchemmerItalyIvan Magalhaes NEGOTIATION
Kadeem V VocelkaIndiaIoni Bowcher QUALIFIED
Jeanfrancois H StensethJapanOnyama Limba NEGOTIATION
Rodrigues O RoysterJapanIvan Magalhaes QUALIFIED
Ricardo S MacleadArgentinaIvan Magalhaes NEW
Misaki Y VocelkaSpainAmy Elsner PROPOSAL
Silvio E FollerUnited KingdomBernardo Dominic NEGOTIATION
Claire T CaldareraFranceStephen Shaw RENEWAL
Rodrigues X VenereItalyOnyama Limba NEW
James G MaletBrazilStephen Shaw UNQUALIFIED
Tony P CampainArgentinaBernardo Dominic PROPOSAL
Faith G BriddickSpainStephen Shaw NEW
Mujtaba M ButtItalyAnna Fali QUALIFIED
Jones S OldroydGermanyIoni Bowcher QUALIFIED
Salvatore F CaudyFranceIvan Magalhaes NEGOTIATION
Juan J WaycottFranceAsiya Javayant UNQUALIFIED
Isabel A MaletArgentinaAnna Fali PROPOSAL
Kaitlin B GauchoCanadaXuxue Feng PROPOSAL
Leon M BowleySpainAsiya Javayant NEGOTIATION
Deepesh W GarufiAustraliaIoni Bowcher UNQUALIFIED
Salvatore W PoquetteAustraliaXuxue Feng PROPOSAL
Clifford N RimBrazilXuxue Feng QUALIFIED
Silvio U SchemmerAustraliaAsiya Javayant NEGOTIATION
Jefferson D MacleadRussiaBernardo Dominic NEGOTIATION
David U StockhamUnited KingdomOnyama Limba QUALIFIED
Cody E SaylorsGermanyStephen Shaw NEGOTIATION
Sinclair K DarakjySpainIoni Bowcher QUALIFIED
Ricardo R ChuiJapanIvan Magalhaes RENEWAL
James A VocelkaRussiaOnyama Limba NEW
Izzy U CaudyCanadaStephen Shaw NEGOTIATION
Smith L WieserRussiaStephen Shaw NEGOTIATION
Adams O WaycottSpainAnna Fali RENEWAL
Costa R InouyeIndiaAsiya Javayant NEGOTIATION
Emily R NestleAustraliaOnyama Limba RENEWAL
Juan M CampainArgentinaAnna Fali 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>