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
Jefferson P RimItalyAnna Fali UNQUALIFIED
Izzy R PoquetteAustraliaAnna Fali UNQUALIFIED
Aditya G ButtArgentinaElwin Sharvill NEGOTIATION
Jefferson T GarufiFranceXuxue Feng QUALIFIED
Mujtaba B SlusarskiIndiaAmy Elsner PROPOSAL
Jefferson F DoeRussiaXuxue Feng RENEWAL
Nicolas Y OstroskyBrazilAnna Fali NEW
Munro W MaletRussiaAsiya Javayant NEGOTIATION
Jefferson S GillianJapanAnna Fali RENEWAL
Claire D ChuiSpainAnna Fali PROPOSAL
Izzy V SchemmerJapanAmy Elsner RENEWAL
Ashley U InouyeFranceStephen Shaw UNQUALIFIED
Arvin L FlosiFranceBernardo Dominic NEGOTIATION
Leja O CaldareraGermanyAmy Elsner NEW
Faith K GlickAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois F BriddickCanadaIvan Magalhaes RENEWAL
Arvin R BowleyUnited KingdomOnyama Limba UNQUALIFIED
Claire N DarakjyUnited KingdomBernardo Dominic RENEWAL
Antonio C IturbideIndiaAmy Elsner NEGOTIATION
Murillo Y StockhamJapanAnna Fali NEGOTIATION
Misaki E BowleyRussiaBernardo Dominic PROPOSAL
Darci A StockhamIndiaElwin Sharvill RENEWAL
Emily N FigeroaArgentinaAmy Elsner RENEWAL
Silvio F VenereUnited KingdomAmy Elsner PROPOSAL
Aika K SchemmerBrazilIvan Magalhaes NEGOTIATION
Aditya E KuskoArgentinaAnna Fali UNQUALIFIED
Chavez E InouyeIndiaBernardo Dominic QUALIFIED
Antonio D GauchoGermanyAsiya Javayant RENEWAL
Claire M GillianBrazilStephen Shaw UNQUALIFIED
Nicolas E GlickGermanyAnna Fali NEW
Arvin E GillianUnited KingdomAnna Fali PROPOSAL
Tony P TollnerGermanyElwin Sharvill NEW
Aruna O StockhamIndiaBernardo Dominic RENEWAL
Ashley M RoysterIndiaXuxue Feng PROPOSAL
Octavia H DoeJapanOnyama Limba UNQUALIFIED
Deepesh L MacleadSpainOnyama Limba QUALIFIED
Munro A GillianUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair M KolmetzIndiaIvan Magalhaes QUALIFIED
Murillo K RimFranceOnyama Limba RENEWAL
Ricardo U PoquetteIndiaXuxue Feng PROPOSAL
Leja W SaylorsArgentinaAmy Elsner NEGOTIATION
Clifford F PerinCanadaIvan Magalhaes NEGOTIATION
Faith J RimBrazilAmy Elsner RENEWAL
Aruna W DoeCanadaBernardo Dominic UNQUALIFIED
Rodrigues N DilliardArgentinaOnyama Limba UNQUALIFIED
Maria V DoeJapanAsiya Javayant QUALIFIED
David A RutaRussiaAmy Elsner QUALIFIED
David U CampainIndiaStephen Shaw PROPOSAL
Murillo O InouyeArgentinaAsiya Javayant NEW
Faith V IturbideArgentinaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki F MacleadCanadaAnna Fali NEGOTIATION
Smith R WhobreyAustraliaAnna Fali QUALIFIED
Chavez Z TollnerCanadaAmy Elsner QUALIFIED
Claire U DoeIndiaOnyama Limba QUALIFIED
Maisha C RulapaughAustraliaStephen Shaw UNQUALIFIED
Aika O ButtJapanBernardo Dominic RENEWAL
Faith E SaylorsAustraliaAsiya Javayant RENEWAL
David E MorascaUnited KingdomIvan Magalhaes RENEWAL
Jones O VenereAustraliaIvan Magalhaes UNQUALIFIED
Maria H FerenczFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Z IturbideCanada2026-07-28Feiner Bros PROPOSAL68Ivan Magalhaes
1001Emily B VenereFrance2026-07-25Feltz Printing Service NEGOTIATION27Onyama Limba
1002Kaitlin O TollnerIndia2026-08-04Printing Dimensions PROPOSAL63Anna Fali
1003Maisha A SaylorsItaly2026-07-18Benton, John B Jr NEW50Anna Fali
1004Cody M RimGermany2026-08-07Commercial Press NEW81Amy Elsner
1005Nicolas F ChuiUnited Kingdom2026-07-18Chapman, Ross E Esq NEW11Ioni Bowcher
1006Emily Z IturbideRussia2026-08-04Chemel, James L Cpa QUALIFIED64Ivan Magalhaes
1007Ashley Q DarakjyUnited Kingdom2026-07-30Chapman, Ross E Esq NEGOTIATION58Ivan Magalhaes
1008Ashley U WaycottRussia2026-08-09Benton, John B Jr QUALIFIED86Onyama Limba
1009Kaitlin L ShinkoIndia2026-07-29Morlong Associates UNQUALIFIED76Stephen Shaw
1010Francesco L StockhamJapan2026-07-17Printing Dimensions PROPOSAL83Stephen Shaw
1011Alejandro T MaletAustralia2026-08-02Chapman, Ross E Esq PROPOSAL78Bernardo Dominic
1012Mujtaba M GlickAustralia2026-07-25Feiner Bros PROPOSAL75Elwin Sharvill
1013Silvio V AlbaresCanada2026-07-21Commercial Press UNQUALIFIED44Xuxue Feng
1014Aruna V MorascaJapan2026-07-15Chapman, Ross E Esq NEW73Onyama Limba
1015Maisha T MacleadBrazil2026-08-05Rousseaux, Michael Esq PROPOSAL15Bernardo Dominic
1016Ashley I TollnerIndia2026-07-20King, Christopher A Esq QUALIFIED22Ioni Bowcher
1017Mujtaba D KolmetzCanada2026-07-17Chemel, James L Cpa NEW53Stephen Shaw
1018Ashley K BologniaAustralia2026-07-30Rangoni Of Florence PROPOSAL60Onyama Limba
1019Aruna E SergiArgentina2026-07-27King, Christopher A Esq PROPOSAL14Anna Fali
1020Wickens V DarakjyIndia2026-07-16Buckley Miller Wright RENEWAL65Asiya Javayant
1021Izzy N RoysterJapan2026-08-12Rousseaux, Michael Esq UNQUALIFIED60Ivan Magalhaes
1022James X ChuiGermany2026-07-23Commercial Press NEW53Elwin Sharvill
1023Aika A FigeroaGermany2026-07-28Truhlar And Truhlar Attys QUALIFIED34Onyama Limba
1024Misaki A SergiCanada2026-08-05Chemel, James L Cpa PROPOSAL52Ivan Magalhaes
1025Rodrigues C PoquetteJapan2026-08-02Rangoni Of Florence PROPOSAL43Asiya Javayant
1026Alejandro G FigeroaItaly2026-08-04Buckley Miller Wright NEW15Asiya Javayant
1027Nicolas K OstroskyItaly2026-07-22Rousseaux, Michael Esq RENEWAL94Elwin Sharvill
1028Leja J StensethAustralia2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED24Stephen Shaw
1029Kaitlin J AlbaresAustralia2026-07-30Feiner Bros NEW75Stephen Shaw
1030Faith R MacleadIndia2026-08-02Commercial Press QUALIFIED82Stephen Shaw
1031Chavez F CaudyUnited Kingdom2026-07-14Feltz Printing Service PROPOSAL25Ivan Magalhaes
1032David W FerenczAustralia2026-07-22Dorl, James J Esq RENEWAL56Asiya Javayant
1033Octavia M WieserJapan2026-07-28Buckley Miller Wright NEW63Ioni Bowcher
1034Ivar U MaletJapan2026-07-16Commercial Press RENEWAL75Ioni Bowcher
1035Chavez O SergiBrazil2026-07-17Chemel, James L Cpa QUALIFIED82Asiya Javayant
1036Isabel W StockhamRussia2026-08-01Feltz Printing Service UNQUALIFIED74Ioni Bowcher
1037Cody N DoeItaly2026-07-17Chemel, James L Cpa NEW56Anna Fali
1038Wickens I DilliardSpain2026-08-10Printing Dimensions UNQUALIFIED90Asiya Javayant
1039Chavez M MarrierFrance2026-08-10Chemel, James L Cpa RENEWAL3Stephen Shaw
1040Silvio S FlosiFrance2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED2Bernardo Dominic
1041Juan O ShinkoBrazil2026-07-22Rousseaux, Michael Esq NEGOTIATION5Bernardo Dominic
1042Kaitlin C FerenczFrance2026-08-12Feiner Bros RENEWAL90Elwin Sharvill
1043Rodrigues J MarrierArgentina2026-07-31Commercial Press RENEWAL57Onyama Limba
1044Francesco F GarufiBrazil2026-08-03Rangoni Of Florence PROPOSAL78Bernardo Dominic
1045Alejandro K GarufiItaly2026-07-30Rangoni Of Florence RENEWAL61Anna Fali
1046Octavia E ButtRussia2026-07-17Chemel, James L Cpa NEGOTIATION28Amy Elsner
1047Munro Z WaycottArgentina2026-07-19Rangoni Of Florence UNQUALIFIED56Ioni Bowcher
1048Clifford V MaletCanada2026-07-14Chanay, Jeffrey A Esq NEW71Bernardo Dominic
1049Costa D GlickCanada2026-07-28Buckley Miller Wright UNQUALIFIED75Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Costa N ButtFranceOnyama Limba UNQUALIFIED
Costa Y WieserSpainAmy Elsner QUALIFIED
Aditya F StockhamSpainIvan Magalhaes QUALIFIED
Smith M CampainCanadaStephen Shaw NEW
Octavia Y FerenczGermanyIvan Magalhaes PROPOSAL
Maria Z RoysterCanadaAsiya Javayant UNQUALIFIED
Arvin X IturbideCanadaOnyama Limba NEGOTIATION
Morrow L VenereArgentinaAsiya Javayant NEGOTIATION
Ricardo H PaprockiUnited KingdomIoni Bowcher NEW
Jones V VenereJapanXuxue Feng RENEWAL
Ricardo H FigeroaJapanIvan Magalhaes RENEWAL
Murillo P BowleyJapanElwin Sharvill PROPOSAL
Morrow S StensethCanadaOnyama Limba PROPOSAL
Aika X OldroydCanadaAnna Fali NEGOTIATION
David C FerenczFranceIvan Magalhaes NEW
Chavez R WaycottAustraliaXuxue Feng RENEWAL
Jefferson C PerinUnited KingdomIoni Bowcher PROPOSAL
Jones T TollnerJapanIoni Bowcher UNQUALIFIED
Nicolas Q OstroskyCanadaAnna Fali UNQUALIFIED
Juan D KuskoItalyBernardo Dominic RENEWAL
Adams J StockhamFranceBernardo Dominic NEW
Ashley F MorascaGermanyBernardo Dominic UNQUALIFIED
Alejandro T GarufiCanadaAsiya Javayant NEW
Maria P FigeroaSpainIoni Bowcher UNQUALIFIED
Aika F NickaBrazilIvan Magalhaes RENEWAL
Darci S VenereSpainAnna Fali QUALIFIED
Antonio G KolmetzItalyAnna Fali NEGOTIATION
Jones S PaprockiItalyOnyama Limba RENEWAL
Morrow F BologniaSpainOnyama Limba NEGOTIATION
James V NickaJapanIvan Magalhaes QUALIFIED
Alejandro W KolmetzGermanyIoni Bowcher QUALIFIED
Francesco B WieserCanadaXuxue Feng NEW
Jennifer W DilliardAustraliaElwin Sharvill PROPOSAL
Nicolas Z PoquetteGermanyAmy Elsner PROPOSAL
Jefferson O BowleyIndiaXuxue Feng NEGOTIATION
Sinclair U AmigonUnited KingdomStephen Shaw QUALIFIED
Clifford G ButtJapanAsiya Javayant UNQUALIFIED
Aika F MaletUnited KingdomAsiya Javayant NEGOTIATION
Alejandro P RutaFranceIvan Magalhaes NEW
Stacey P WieserUnited KingdomStephen Shaw PROPOSAL
Munro D FigeroaJapanAnna Fali RENEWAL
Aditya B PoquetteGermanyElwin Sharvill RENEWAL
Salvatore R CaudyRussiaIvan Magalhaes RENEWAL
Morrow V WieserAustraliaBernardo Dominic PROPOSAL
Leon P CampainAustraliaIoni Bowcher NEW
Murillo O GillianItalyAsiya Javayant QUALIFIED
Izzy D RulapaughBrazilBernardo Dominic PROPOSAL
Munro N FollerAustraliaAsiya Javayant UNQUALIFIED
Salvatore J RutaBrazilIvan Magalhaes QUALIFIED
Misaki A ShinkoArgentinaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Ashley M Wieser
Aika S Gaucho
Johnson G Inouye
Silvio U Nicka
Isabel R Malet
Jennifer P Poquette
Clifford V Ostrosky
Sinclair V Nicka
Jefferson Z Wieser
Ricardo Y Ruta
Nicolas I Royster
Tony V Gillian
Nicolas B Whobrey
Ashley F Bolognia
Emily U Caldarera
Mujtaba Q Rulapaugh
Aruna A Briddick
Jefferson V Malet
Wickens L Malet
Isabel E Gillian
Adams Y Doe
Murillo K Caudy
Kaitlin K Darakjy
Greenwood Z Kolmetz
Costa A Inouye
Aditya G Briddick
Morrow T Tollner
Sinclair Y Briddick
Munro G Paprocki
Silvio J Chui
Isabel C Campain
Adams S Schemmer
Rodrigues Y Doe
Silvio R Marrier
Greenwood G Maclead
Munro U Albares
Tony Z Nicka
Nicolas A Caldarera
Mayumi W Stenseth
Ashley U Kusko
Morrow I Paprocki
Cody G Stockham
Mayumi W Figeroa
Ashley D Stockham
David Y Royster
Jennifer S Marrier
Morrow X Waycott
Misaki U Sergi
Morrow W Iturbide
Sinclair K Glick
IdCountryDate
1000Brazil2026-08-12
1001Spain2026-07-24
1002India2026-08-12
1003Argentina2026-08-04
1004Germany2026-07-31
1005Canada2026-08-03
1006Italy2026-08-12
1007Japan2026-07-27
1008Russia2026-08-07
1009Canada2026-07-26
1010Germany2026-08-06
1011Canada2026-07-26
1012Germany2026-08-06
1013Russia2026-07-18
1014Italy2026-07-14
1015Argentina2026-08-12
1016Australia2026-08-05
1017Argentina2026-08-02
1018Spain2026-07-21
1019Canada2026-07-21
1020Spain2026-08-02
1021Canada2026-07-21
1022Russia2026-07-16
1023Australia2026-07-25
1024Japan2026-07-31
1025Germany2026-07-16
1026France2026-07-19
1027Australia2026-07-31
1028Italy2026-07-30
1029Canada2026-07-19
1030Italy2026-07-28
1031Russia2026-07-29
1032Spain2026-08-12
1033India2026-08-11
1034Australia2026-07-14
1035Germany2026-07-23
1036India2026-07-15
1037United Kingdom2026-08-08
1038India2026-07-22
1039Brazil2026-07-17
1040India2026-08-10
1041Japan2026-07-31
1042Australia2026-08-04
1043Brazil2026-07-22
1044India2026-07-22
1045United Kingdom2026-07-25
1046Argentina2026-08-09
1047United Kingdom2026-07-19
1048France2026-07-24
1049Argentina2026-08-03

On-Demand Data

NameIdCountryDate
Greenwood J Figeroa1000Canada2026-08-06
Stacey O Amigon1001United Kingdom2026-08-11
Kadeem O Poquette1002United Kingdom2026-07-22
Rodrigues S Shinko1003India2026-08-04
Emily G Nicka1004Canada2026-07-14
Wickens H Kusko1005France2026-08-09
Ricardo R Royster1006Canada2026-08-11
Morrow Q Albares1007Russia2026-08-03
Chavez P Garufi1008Spain2026-08-07
Johnson D Waycott1009Australia2026-08-07
Silvio F Garufi1010Argentina2026-08-04
Clifford R Paprocki1011Canada2026-08-06
Claire J Royster1012France2026-07-25
Ivar G Oldroyd1013Germany2026-07-27
Silvio A Ostrosky1014France2026-08-06
Morrow F Gaucho1015Canada2026-07-25
Alejandro C Waycott1016Russia2026-07-18
Smith U Iturbide1017France2026-08-07
Aruna C Glick1018India2026-08-11
Francesco J Vocelka1019Japan2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh Q OldroydAustraliaAnna Fali PROPOSAL
Alejandro H ButtGermanyElwin Sharvill UNQUALIFIED
Juan Y SlusarskiBrazilIvan Magalhaes NEGOTIATION
Faith Q DilliardSpainElwin Sharvill NEGOTIATION
Chavez W SlusarskiAustraliaIvan Magalhaes PROPOSAL
Arvin B SaylorsGermanyIoni Bowcher NEW
Nicolas R AmigonItalyIoni Bowcher NEGOTIATION
Salvatore R DilliardCanadaIoni Bowcher NEGOTIATION
Julie B GillianSpainIvan Magalhaes RENEWAL
Jefferson R DilliardFranceAmy Elsner UNQUALIFIED
Jennifer N KuskoArgentinaOnyama Limba NEW
Leja C CampainItalyIoni Bowcher QUALIFIED
Emily G NestleArgentinaStephen Shaw NEGOTIATION
Aruna Z DilliardJapanOnyama Limba NEGOTIATION
Morrow U NickaSpainAnna Fali UNQUALIFIED
Julie P ChuiItalyXuxue Feng NEW
Darci L CampainUnited KingdomXuxue Feng QUALIFIED
Chavez Q BowleyJapanOnyama Limba QUALIFIED
Costa T FollerCanadaOnyama Limba NEW
Aika L AlbaresBrazilXuxue Feng NEW
Kaitlin P RoysterRussiaIoni Bowcher PROPOSAL
Murillo W NestleItalyIoni Bowcher PROPOSAL
Ricardo O SaylorsIndiaAmy Elsner PROPOSAL
Stacey A NickaFranceAsiya Javayant NEW
Adams V SchemmerBrazilXuxue Feng QUALIFIED
Munro Z MorascaCanadaOnyama Limba PROPOSAL
Murillo J OstroskyIndiaAnna Fali NEGOTIATION
Mayumi I SergiSpainAnna Fali NEGOTIATION
Francesco T MacleadGermanyElwin Sharvill NEW
Arvin Q InouyeFranceBernardo Dominic NEGOTIATION
Costa K PaprockiSpainAnna Fali QUALIFIED
Faith I AlbaresJapanOnyama Limba RENEWAL
Salvatore W StensethArgentinaElwin Sharvill NEGOTIATION
Wickens V FollerUnited KingdomOnyama Limba PROPOSAL
Izzy N BriddickAustraliaAmy Elsner RENEWAL
Octavia K BowleyCanadaStephen Shaw RENEWAL
Leja B MacleadJapanAsiya Javayant QUALIFIED
Rodrigues W ShinkoBrazilIvan Magalhaes NEGOTIATION
Clifford K CaudyGermanyBernardo Dominic NEGOTIATION
Leon A BriddickIndiaAmy Elsner 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>