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 E VenereJapanIoni Bowcher PROPOSAL
Johnson G InouyeJapanOnyama Limba PROPOSAL
Maria R BriddickUnited KingdomAsiya Javayant PROPOSAL
Smith W BriddickItalyStephen Shaw PROPOSAL
Juan R MacleadIndiaIvan Magalhaes PROPOSAL
Arvin R FollerCanadaAsiya Javayant NEW
Maria M StockhamItalyBernardo Dominic PROPOSAL
Octavia X MaletJapanElwin Sharvill NEGOTIATION
Costa K KolmetzAustraliaIoni Bowcher RENEWAL
Ivar A SchemmerBrazilStephen Shaw NEGOTIATION
Ricardo R GillianSpainBernardo Dominic RENEWAL
Faith U SergiAustraliaElwin Sharvill QUALIFIED
Arvin F DilliardJapanIoni Bowcher UNQUALIFIED
Wickens Y FigeroaRussiaAnna Fali RENEWAL
Costa U SaylorsArgentinaElwin Sharvill QUALIFIED
Aditya V RoysterCanadaElwin Sharvill NEGOTIATION
Aruna G BowleySpainAsiya Javayant UNQUALIFIED
Ivar K KuskoSpainAsiya Javayant NEW
Claire L RoysterIndiaIoni Bowcher PROPOSAL
Chavez P ShinkoArgentinaAnna Fali UNQUALIFIED
Maisha Y SchemmerItalyAsiya Javayant RENEWAL
David E CampainItalyIoni Bowcher NEGOTIATION
Leja R KuskoFranceIoni Bowcher NEGOTIATION
Salvatore M VocelkaAustraliaAmy Elsner UNQUALIFIED
Ivar B PaprockiGermanyAnna Fali QUALIFIED
Nicolas F MorascaAustraliaStephen Shaw NEW
Mayumi U BowleyJapanAnna Fali NEW
Mayumi N MaletGermanyIvan Magalhaes QUALIFIED
Munro S CaudyRussiaElwin Sharvill NEGOTIATION
Costa J NestleArgentinaStephen Shaw QUALIFIED
Tony T RimIndiaStephen Shaw NEGOTIATION
Salvatore L DilliardItalyAmy Elsner UNQUALIFIED
Silvio Q InouyeFranceElwin Sharvill RENEWAL
Cody O ShinkoIndiaAsiya Javayant QUALIFIED
Ashley T TollnerGermanyIvan Magalhaes QUALIFIED
Cody Q TollnerUnited KingdomBernardo Dominic PROPOSAL
David N SaylorsAustraliaAmy Elsner QUALIFIED
Maria D GillianBrazilOnyama Limba NEW
Ivar S VocelkaUnited KingdomAsiya Javayant PROPOSAL
David J GarufiSpainElwin Sharvill NEW
Mujtaba J PaprockiAustraliaIoni Bowcher NEW
Stacey W StensethIndiaAmy Elsner NEGOTIATION
Kadeem Z FigeroaFranceElwin Sharvill UNQUALIFIED
Ricardo L NestleAustraliaAnna Fali RENEWAL
Emily D InouyeBrazilBernardo Dominic QUALIFIED
Stacey R DarakjyAustraliaBernardo Dominic NEGOTIATION
Johnson J DoeUnited KingdomElwin Sharvill NEW
Arvin F FlosiIndiaAmy Elsner UNQUALIFIED
Adams M PaprockiArgentinaXuxue Feng PROPOSAL
Deepesh A SlusarskiBrazilBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson U OldroydUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois Y OldroydRussiaElwin Sharvill UNQUALIFIED
Jones B VenereJapanAsiya Javayant NEGOTIATION
Cody O BologniaJapanIoni Bowcher QUALIFIED
Wickens B IturbideGermanyIvan Magalhaes NEGOTIATION
Ricardo T BowleyGermanyIvan Magalhaes NEGOTIATION
Misaki T VenereGermanyOnyama Limba NEGOTIATION
Costa C KolmetzAustraliaAnna Fali RENEWAL
Clifford U MacleadRussiaIvan Magalhaes QUALIFIED
Sinclair R MorascaItalyXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire J GarufiBrazil2026-07-02Buckley Miller Wright UNQUALIFIED50Xuxue Feng
1001Smith O StensethSpain2026-07-19Chanay, Jeffrey A Esq NEGOTIATION34Onyama Limba
1002Jefferson S OstroskyRussia2026-07-13Rousseaux, Michael Esq PROPOSAL34Xuxue Feng
1003Sinclair S WaycottRussia2026-07-06Truhlar And Truhlar Attys UNQUALIFIED44Anna Fali
1004Wickens V StockhamArgentina2026-07-18Chemel, James L Cpa UNQUALIFIED63Anna Fali
1005James V SaylorsGermany2026-07-06Dorl, James J Esq QUALIFIED20Amy Elsner
1006Faith O NestleArgentina2026-07-11Chapman, Ross E Esq NEW76Bernardo Dominic
1007Aruna A FollerJapan2026-07-31Morlong Associates NEGOTIATION39Asiya Javayant
1008James R PoquetteAustralia2026-07-04Chemel, James L Cpa RENEWAL68Bernardo Dominic
1009Munro J MaletCanada2026-07-22Morlong Associates NEGOTIATION37Bernardo Dominic
1010Chavez Y FigeroaUnited Kingdom2026-07-16Printing Dimensions PROPOSAL39Ivan Magalhaes
1011Faith L FollerJapan2026-07-28Feltz Printing Service RENEWAL66Asiya Javayant
1012Adams N GillianAustralia2026-07-02Rousseaux, Michael Esq QUALIFIED95Ivan Magalhaes
1013Aika X PerinJapan2026-07-28Feiner Bros NEGOTIATION99Anna Fali
1014Adams K BologniaAustralia2026-07-08Dorl, James J Esq PROPOSAL35Xuxue Feng
1015Octavia K GillianItaly2026-07-11Rangoni Of Florence NEW67Amy Elsner
1016Aruna O TollnerBrazil2026-07-09Chanay, Jeffrey A Esq PROPOSAL54Xuxue Feng
1017Kadeem M TollnerRussia2026-07-15Morlong Associates NEW81Bernardo Dominic
1018Claire R DilliardBrazil2026-07-25Morlong Associates QUALIFIED68Onyama Limba
1019Leon Q WhobreyUnited Kingdom2026-07-05Rangoni Of Florence NEW43Amy Elsner
1020Morrow P RoysterGermany2026-07-16Commercial Press NEGOTIATION98Elwin Sharvill
1021Faith Z WhobreyItaly2026-07-14Benton, John B Jr RENEWAL7Anna Fali
1022Francesco V FollerGermany2026-07-03Benton, John B Jr NEGOTIATION79Asiya Javayant
1023Sinclair M RutaAustralia2026-07-20Benton, John B Jr UNQUALIFIED92Ioni Bowcher
1024Misaki I GauchoItaly2026-07-26Benton, John B Jr QUALIFIED10Bernardo Dominic
1025Francesco K FigeroaBrazil2026-07-20Rangoni Of Florence RENEWAL11Asiya Javayant
1026Sinclair H PoquetteJapan2026-07-16Buckley Miller Wright RENEWAL18Xuxue Feng
1027Aika C MaletRussia2026-07-20Feltz Printing Service QUALIFIED30Amy Elsner
1028Octavia O CampainFrance2026-07-12Morlong Associates NEW9Ioni Bowcher
1029Wickens U PaprockiCanada2026-07-06Printing Dimensions NEW76Xuxue Feng
1030Ashley E BriddickJapan2026-07-24Rousseaux, Michael Esq RENEWAL30Ivan Magalhaes
1031Ricardo N BowleyArgentina2026-07-18Dorl, James J Esq NEW34Bernardo Dominic
1032Ricardo P DilliardBrazil2026-07-24Feiner Bros RENEWAL64Xuxue Feng
1033Leja S RoysterBrazil2026-07-07Chapman, Ross E Esq NEW78Amy Elsner
1034Tony L IturbideArgentina2026-07-18Feiner Bros QUALIFIED85Xuxue Feng
1035Octavia U CampainSpain2026-07-21Feltz Printing Service NEGOTIATION19Bernardo Dominic
1036Adams N CampainRussia2026-07-14Benton, John B Jr UNQUALIFIED71Amy Elsner
1037Munro I RutaJapan2026-07-31Chemel, James L Cpa UNQUALIFIED30Stephen Shaw
1038Emily K GlickRussia2026-07-22Rangoni Of Florence RENEWAL31Asiya Javayant
1039Claire I KuskoArgentina2026-07-17Benton, John B Jr QUALIFIED17Xuxue Feng
1040Adams X RimRussia2026-07-31Morlong Associates QUALIFIED4Onyama Limba
1041Mujtaba V StensethRussia2026-07-25Benton, John B Jr NEW72Asiya Javayant
1042Alejandro L MorascaFrance2026-07-10Printing Dimensions NEGOTIATION38Anna Fali
1043Aika S MacleadSpain2026-07-23Commercial Press NEW89Ioni Bowcher
1044Aruna C SaylorsIndia2026-07-07Feltz Printing Service UNQUALIFIED35Onyama Limba
1045James R MaletAustralia2026-07-23Dorl, James J Esq PROPOSAL90Amy Elsner
1046Ivar C AmigonBrazil2026-07-11Printing Dimensions NEW19Onyama Limba
1047Aika V GauchoBrazil2026-07-19Chapman, Ross E Esq UNQUALIFIED11Ioni Bowcher
1048Morrow I DoeUnited Kingdom2026-07-09Benton, John B Jr RENEWAL9Bernardo Dominic
1049Misaki R WhobreyCanada2026-07-29Feltz Printing Service NEW88Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maria O SchemmerCanadaElwin Sharvill RENEWAL
Tony E FollerFranceIvan Magalhaes PROPOSAL
Adams E BologniaItalyElwin Sharvill NEGOTIATION
Jefferson G AmigonBrazilAsiya Javayant PROPOSAL
Aditya X IturbideCanadaAmy Elsner RENEWAL
Cody G IturbideJapanIoni Bowcher NEW
Mayumi C WieserRussiaAmy Elsner NEGOTIATION
Salvatore K PaprockiArgentinaOnyama Limba PROPOSAL
Silvio T FollerFranceBernardo Dominic NEGOTIATION
Julie N VenereRussiaBernardo Dominic PROPOSAL
Smith Y FigeroaFranceAnna Fali QUALIFIED
Adams A ChuiRussiaXuxue Feng RENEWAL
Octavia I DarakjyAustraliaAsiya Javayant UNQUALIFIED
Mayumi H DoeIndiaIvan Magalhaes UNQUALIFIED
Leon H OldroydUnited KingdomStephen Shaw UNQUALIFIED
Tony C BriddickJapanElwin Sharvill PROPOSAL
Leon M CaldareraBrazilStephen Shaw UNQUALIFIED
Murillo I StockhamRussiaBernardo Dominic PROPOSAL
Misaki D MorascaItalyAnna Fali QUALIFIED
Tony P DoeCanadaBernardo Dominic NEGOTIATION
Deepesh Y SaylorsAustraliaAnna Fali PROPOSAL
Salvatore H CaudyRussiaAnna Fali UNQUALIFIED
Silvio H PoquetteRussiaAnna Fali NEW
Chavez X StensethUnited KingdomAnna Fali QUALIFIED
Emily O FlosiArgentinaStephen Shaw RENEWAL
Emily V PaprockiItalyElwin Sharvill QUALIFIED
Misaki U SchemmerRussiaAsiya Javayant UNQUALIFIED
Maria M PaprockiAustraliaAnna Fali PROPOSAL
Silvio I MarrierSpainAnna Fali PROPOSAL
Juan L PerinBrazilAsiya Javayant QUALIFIED
David V AlbaresJapanStephen Shaw RENEWAL
Deepesh W SergiIndiaElwin Sharvill UNQUALIFIED
Jennifer G InouyeUnited KingdomXuxue Feng UNQUALIFIED
Clifford A SaylorsItalyIvan Magalhaes UNQUALIFIED
Ricardo F ChuiRussiaAnna Fali RENEWAL
Antonio C StensethAustraliaBernardo Dominic PROPOSAL
Leja C RoysterRussiaStephen Shaw NEW
Maisha N InouyeFranceXuxue Feng PROPOSAL
Jennifer K MaletRussiaXuxue Feng NEGOTIATION
Darci C FollerRussiaXuxue Feng QUALIFIED
Kaitlin F CaudyAustraliaBernardo Dominic NEW
Emily P SchemmerUnited KingdomXuxue Feng RENEWAL
Claire U RoysterItalyOnyama Limba UNQUALIFIED
Clifford H OstroskyIndiaIoni Bowcher NEGOTIATION
Kadeem O GarufiArgentinaStephen Shaw UNQUALIFIED
Faith W FlosiItalyAnna Fali NEW
Jennifer Q ButtItalyXuxue Feng NEGOTIATION
Leon V ButtSpainAnna Fali QUALIFIED
Leja B DarakjyGermanyXuxue Feng UNQUALIFIED
David E GauchoSpainAmy Elsner RENEWAL
Frozen Columns
Name
Mujtaba S Malet
Ricardo M Butt
Arvin X Doe
Claire Q Doe
Izzy I Bolognia
Mayumi D Bowley
Ivar H Royster
Izzy H Marrier
Emily M Chui
Antonio V Inouye
Maisha Y Caldarera
Tony B Amigon
Aika Z Caldarera
Jennifer D Oldroyd
Octavia H Wieser
Cody U Malet
Mayumi H Ostrosky
Faith A Dilliard
Deepesh Q Flosi
Tony N Slusarski
Leja F Caudy
Claire P Marrier
David F Glick
Kadeem R Slusarski
Aika V Iturbide
Antonio Q Bowley
Jennifer O Stockham
James W Venere
Munro N Bolognia
Maria X Rulapaugh
David D Tollner
Octavia Q Bolognia
Maria H Butt
Ricardo A Kolmetz
Izzy R Nicka
Antonio R Slusarski
Darci K Schemmer
Emily S Gaucho
Rodrigues G Waycott
Chavez V Butt
Juan D Ruta
Octavia Y Maclead
Francesco B Schemmer
Nicolas O Stenseth
David X Figeroa
Mujtaba G Bowley
Aruna E Caldarera
Clifford F Malet
Sinclair W Nicka
Sinclair U Saylors
IdCountryDate
1000Spain2026-07-30
1001Argentina2026-07-11
1002Italy2026-07-08
1003Spain2026-07-15
1004Italy2026-07-31
1005Russia2026-07-06
1006Japan2026-07-08
1007Australia2026-07-21
1008Russia2026-07-09
1009Brazil2026-07-18
1010Argentina2026-07-22
1011Canada2026-07-26
1012Argentina2026-07-17
1013France2026-07-18
1014Argentina2026-07-23
1015Russia2026-07-26
1016Australia2026-07-23
1017Germany2026-07-08
1018Germany2026-07-18
1019Japan2026-07-21
1020Australia2026-07-20
1021Russia2026-07-05
1022Argentina2026-07-02
1023Italy2026-07-29
1024Japan2026-07-15
1025Brazil2026-07-05
1026France2026-07-30
1027Canada2026-07-15
1028India2026-07-04
1029Brazil2026-07-09
1030Spain2026-07-16
1031Germany2026-07-26
1032France2026-07-11
1033Argentina2026-07-27
1034Spain2026-07-03
1035Italy2026-07-23
1036Argentina2026-07-28
1037Spain2026-07-15
1038Canada2026-07-19
1039Russia2026-07-15
1040Japan2026-07-16
1041France2026-07-15
1042Germany2026-07-27
1043Russia2026-07-18
1044Japan2026-07-27
1045Germany2026-07-03
1046Brazil2026-07-15
1047Australia2026-07-16
1048Spain2026-07-17
1049France2026-07-09

On-Demand Data

NameIdCountryDate
Aruna O Ferencz1000Brazil2026-07-19
Adams E Nestle1001Japan2026-07-16
Salvatore P Saylors1002Italy2026-07-31
Nicolas G Schemmer1003Spain2026-07-17
Deepesh H Briddick1004Italy2026-07-19
Chavez O Vocelka1005Argentina2026-07-24
Greenwood Z Sergi1006Argentina2026-07-26
Mayumi Q Malet1007Argentina2026-07-10
Adams Q Sergi1008Spain2026-07-06
Jones B Inouye1009Italy2026-07-09
Claire Y Amigon1010United Kingdom2026-07-31
Aditya M Bowley1011United Kingdom2026-07-08
Adams L Marrier1012India2026-07-30
Sinclair Q Dilliard1013Spain2026-07-06
Silvio C Ferencz1014Italy2026-07-03
Mayumi I Malet1015Canada2026-07-28
Faith H Campain1016India2026-07-20
Maisha V Darakjy1017Brazil2026-07-19
Antonio P Marrier1018Brazil2026-07-31
Tony V Ostrosky1019United Kingdom2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria J RoysterBrazilBernardo Dominic UNQUALIFIED
Mayumi K GlickArgentinaAnna Fali QUALIFIED
Jeanfrancois Q KolmetzSpainAsiya Javayant UNQUALIFIED
Aditya A RoysterJapanOnyama Limba QUALIFIED
Aruna B VenereBrazilIoni Bowcher NEGOTIATION
Antonio C MorascaRussiaStephen Shaw QUALIFIED
Deepesh B ButtFranceAsiya Javayant NEW
Izzy Z IturbideBrazilIvan Magalhaes NEGOTIATION
Salvatore M StockhamGermanyAnna Fali PROPOSAL
Murillo Q NickaFranceAsiya Javayant NEGOTIATION
Clifford F CampainJapanStephen Shaw RENEWAL
Jefferson U KolmetzAustraliaIvan Magalhaes NEGOTIATION
Ricardo Z ButtJapanBernardo Dominic NEGOTIATION
Smith E CampainGermanyElwin Sharvill NEW
Mayumi Z StockhamGermanyOnyama Limba RENEWAL
Stacey Y KolmetzFranceStephen Shaw NEGOTIATION
Julie U CaldareraRussiaIoni Bowcher PROPOSAL
Faith H PerinGermanyAnna Fali UNQUALIFIED
Munro P MaletSpainAsiya Javayant UNQUALIFIED
Johnson G FlosiUnited KingdomOnyama Limba PROPOSAL
Kadeem X MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Morrow O FerenczGermanyElwin Sharvill PROPOSAL
Mujtaba P ButtCanadaOnyama Limba NEGOTIATION
Mayumi A WieserSpainElwin Sharvill NEGOTIATION
Munro T ButtUnited KingdomIoni Bowcher QUALIFIED
Silvio X OstroskyJapanIvan Magalhaes QUALIFIED
Murillo D WaycottBrazilAsiya Javayant RENEWAL
James P FlosiItalyStephen Shaw QUALIFIED
Smith A SaylorsSpainIoni Bowcher RENEWAL
Nicolas V RimGermanyIvan Magalhaes NEW
Jeanfrancois D BriddickIndiaAnna Fali QUALIFIED
Adams W InouyeItalyXuxue Feng NEGOTIATION
Faith O CaldareraCanadaAmy Elsner RENEWAL
Cody T FigeroaAustraliaAnna Fali UNQUALIFIED
Aika K RimJapanOnyama Limba QUALIFIED
James G ShinkoGermanyAsiya Javayant NEW
Ricardo I SaylorsRussiaAmy Elsner QUALIFIED
Francesco X VocelkaUnited KingdomIoni Bowcher NEW
Stacey G InouyeSpainAmy Elsner NEGOTIATION
Jones Z SaylorsJapanAnna Fali 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>