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
Ivar D BowleyBrazilAnna Fali UNQUALIFIED
Stacey M InouyeItalyOnyama Limba PROPOSAL
Alejandro D AmigonUnited KingdomAsiya Javayant RENEWAL
Aditya I MorascaArgentinaBernardo Dominic NEW
Emily M MorascaAustraliaAnna Fali UNQUALIFIED
Juan K FlosiRussiaAmy Elsner RENEWAL
Wickens O ShinkoSpainBernardo Dominic RENEWAL
Leon Q MarrierRussiaXuxue Feng QUALIFIED
Nicolas N BologniaAustraliaBernardo Dominic UNQUALIFIED
Faith Y PoquetteAustraliaBernardo Dominic QUALIFIED
Mujtaba H ButtBrazilAmy Elsner PROPOSAL
Greenwood B VocelkaArgentinaIoni Bowcher PROPOSAL
David Y SchemmerBrazilIvan Magalhaes RENEWAL
Jones Y SchemmerGermanyXuxue Feng PROPOSAL
Sinclair C RulapaughFranceIoni Bowcher UNQUALIFIED
Misaki B RutaBrazilAnna Fali UNQUALIFIED
Aditya W StockhamBrazilIvan Magalhaes NEGOTIATION
Maria U VenereFranceAnna Fali QUALIFIED
Wickens H NickaBrazilAnna Fali UNQUALIFIED
Johnson M AmigonArgentinaElwin Sharvill QUALIFIED
Wickens R CampainGermanyBernardo Dominic NEGOTIATION
Darci K AlbaresItalyElwin Sharvill NEGOTIATION
Munro S CampainGermanyAsiya Javayant PROPOSAL
Mujtaba W PaprockiAustraliaIvan Magalhaes RENEWAL
Smith N WaycottUnited KingdomAsiya Javayant PROPOSAL
Misaki R PaprockiSpainAmy Elsner QUALIFIED
Faith G WieserUnited KingdomAmy Elsner QUALIFIED
Kadeem P OstroskyJapanIvan Magalhaes QUALIFIED
Silvio V NickaUnited KingdomStephen Shaw UNQUALIFIED
Misaki O RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Leja Z MacleadSpainOnyama Limba RENEWAL
Jennifer P AmigonFranceAsiya Javayant NEGOTIATION
Juan A NickaCanadaAmy Elsner PROPOSAL
Sinclair F PerinBrazilOnyama Limba RENEWAL
Isabel R IturbideGermanyAnna Fali NEW
Rodrigues S RulapaughCanadaStephen Shaw QUALIFIED
Claire I RoysterCanadaIoni Bowcher RENEWAL
Munro I WhobreyUnited KingdomAmy Elsner NEGOTIATION
Juan C KolmetzAustraliaBernardo Dominic NEW
Jennifer U AlbaresSpainElwin Sharvill PROPOSAL
Maisha Q ShinkoCanadaAsiya Javayant PROPOSAL
Alejandro Q IturbideUnited KingdomStephen Shaw UNQUALIFIED
James N MacleadAustraliaIoni Bowcher PROPOSAL
Wickens L FlosiUnited KingdomIoni Bowcher NEW
Francesco G WieserRussiaAsiya Javayant UNQUALIFIED
Maria G SlusarskiIndiaAnna Fali PROPOSAL
Tony J FigeroaRussiaStephen Shaw NEGOTIATION
Ricardo P SlusarskiSpainBernardo Dominic NEGOTIATION
Arvin L PaprockiUnited KingdomXuxue Feng PROPOSAL
Silvio Q CampainSpainAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Julie B BriddickFranceAmy Elsner NEW
Jefferson E AmigonJapanStephen Shaw NEW
Costa Y RulapaughArgentinaAmy Elsner QUALIFIED
Stacey F PoquetteGermanyStephen Shaw PROPOSAL
Jefferson M FlosiBrazilOnyama Limba QUALIFIED
Morrow Q MacleadCanadaIvan Magalhaes UNQUALIFIED
Aika K BowleySpainAmy Elsner NEW
Johnson H VocelkaAustraliaStephen Shaw QUALIFIED
Francesco T InouyeUnited KingdomElwin Sharvill QUALIFIED
Kadeem E RutaGermanyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy S ShinkoJapan2026-06-12Rousseaux, Michael Esq UNQUALIFIED61Amy Elsner
1001Wickens N FlosiFrance2026-06-27Truhlar And Truhlar Attys RENEWAL40Amy Elsner
1002Ivar L StockhamFrance2026-06-24Commercial Press RENEWAL5Asiya Javayant
1003Alejandro P MarrierCanada2026-06-29Chapman, Ross E Esq RENEWAL59Bernardo Dominic
1004Munro E AlbaresGermany2026-06-30Rangoni Of Florence QUALIFIED93Stephen Shaw
1005Antonio W FlosiJapan2026-06-07Commercial Press PROPOSAL92Asiya Javayant
1006Antonio F WieserGermany2026-06-29Printing Dimensions RENEWAL85Xuxue Feng
1007Munro N SergiCanada2026-06-21Rousseaux, Michael Esq QUALIFIED18Bernardo Dominic
1008David F BowleyItaly2026-06-04Rangoni Of Florence NEW20Amy Elsner
1009Jefferson I DarakjyItaly2026-06-17Feiner Bros NEGOTIATION47Ioni Bowcher
1010Silvio U DilliardUnited Kingdom2026-06-28Morlong Associates RENEWAL50Xuxue Feng
1011Darci N MaletRussia2026-06-17Morlong Associates QUALIFIED73Ioni Bowcher
1012David E GlickArgentina2026-06-21Feltz Printing Service UNQUALIFIED54Elwin Sharvill
1013Clifford Y InouyeUnited Kingdom2026-06-04Printing Dimensions UNQUALIFIED58Asiya Javayant
1014Stacey C ChuiUnited Kingdom2026-06-07Rousseaux, Michael Esq UNQUALIFIED88Xuxue Feng
1015Jennifer M GlickJapan2026-06-04Chapman, Ross E Esq QUALIFIED18Elwin Sharvill
1016Chavez Z WhobreyGermany2026-06-02Truhlar And Truhlar Attys QUALIFIED25Onyama Limba
1017Octavia Z OstroskyItaly2026-06-30Morlong Associates PROPOSAL67Xuxue Feng
1018Jefferson C MaletGermany2026-06-16Printing Dimensions RENEWAL27Ioni Bowcher
1019Deepesh B GlickUnited Kingdom2026-06-25Benton, John B Jr NEW78Onyama Limba
1020Ivar F IturbideItaly2026-06-13Dorl, James J Esq PROPOSAL36Amy Elsner
1021Claire I BowleyArgentina2026-06-23Commercial Press PROPOSAL12Anna Fali
1022Murillo I MaletCanada2026-06-01Chanay, Jeffrey A Esq PROPOSAL7Stephen Shaw
1023Leon R DarakjyFrance2026-06-29Chemel, James L Cpa PROPOSAL40Anna Fali
1024Emily G MaletCanada2026-06-05Feltz Printing Service PROPOSAL70Bernardo Dominic
1025Sinclair G FerenczGermany2026-06-03King, Christopher A Esq PROPOSAL26Elwin Sharvill
1026David Q BowleyGermany2026-06-18Rangoni Of Florence NEW87Ivan Magalhaes
1027Greenwood J GauchoCanada2026-06-02Printing Dimensions UNQUALIFIED24Elwin Sharvill
1028Salvatore J WhobreyFrance2026-06-11Commercial Press QUALIFIED14Onyama Limba
1029Misaki T MorascaIndia2026-06-23Truhlar And Truhlar Attys UNQUALIFIED9Ivan Magalhaes
1030David M IturbideJapan2026-06-10Rangoni Of Florence UNQUALIFIED76Amy Elsner
1031James Q InouyeSpain2026-06-05Chemel, James L Cpa PROPOSAL88Asiya Javayant
1032Ashley A ChuiAustralia2026-06-08Commercial Press NEGOTIATION20Xuxue Feng
1033Jefferson S ShinkoFrance2026-06-06Truhlar And Truhlar Attys UNQUALIFIED96Bernardo Dominic
1034Faith Z RimItaly2026-06-24Morlong Associates QUALIFIED12Ivan Magalhaes
1035Jeanfrancois H TollnerUnited Kingdom2026-06-01Feltz Printing Service PROPOSAL67Anna Fali
1036Kaitlin J WhobreyAustralia2026-06-08Benton, John B Jr UNQUALIFIED66Amy Elsner
1037Izzy Y NestleFrance2026-06-10Printing Dimensions UNQUALIFIED89Xuxue Feng
1038Francesco E KuskoCanada2026-06-24Chemel, James L Cpa RENEWAL87Asiya Javayant
1039Murillo N FlosiSpain2026-06-02Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1040Antonio N SergiItaly2026-06-17Commercial Press QUALIFIED21Anna Fali
1041Aika V SaylorsJapan2026-06-02Morlong Associates PROPOSAL82Elwin Sharvill
1042Ashley O InouyeAustralia2026-06-27Chapman, Ross E Esq RENEWAL9Anna Fali
1043Isabel D SergiJapan2026-06-23Dorl, James J Esq UNQUALIFIED38Xuxue Feng
1044Salvatore X RutaRussia2026-06-26Morlong Associates RENEWAL39Onyama Limba
1045Deepesh B CaudyGermany2026-06-15Commercial Press NEGOTIATION63Bernardo Dominic
1046Arvin Q DilliardSpain2026-06-25Chemel, James L Cpa PROPOSAL31Ivan Magalhaes
1047Kadeem W FollerBrazil2026-06-23Commercial Press NEGOTIATION7Elwin Sharvill
1048Jeanfrancois P VocelkaIndia2026-06-18Chanay, Jeffrey A Esq PROPOSAL21Xuxue Feng
1049Wickens X AlbaresAustralia2026-06-27Chemel, James L Cpa NEW56Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika Q BowleyJapanAsiya Javayant NEGOTIATION
Izzy G GarufiIndiaXuxue Feng PROPOSAL
Ricardo P VenereBrazilIvan Magalhaes QUALIFIED
Maisha R VenereCanadaIvan Magalhaes QUALIFIED
Juan B OstroskyGermanyIoni Bowcher QUALIFIED
Izzy R StockhamAustraliaOnyama Limba NEW
Sinclair S PerinAustraliaStephen Shaw NEW
Murillo J ChuiAustraliaStephen Shaw QUALIFIED
Aditya K ShinkoArgentinaXuxue Feng PROPOSAL
Ashley A WaycottItalyXuxue Feng PROPOSAL
Ivar X OldroydCanadaAmy Elsner PROPOSAL
Antonio V KuskoBrazilXuxue Feng NEW
Rodrigues X MaletAustraliaAsiya Javayant UNQUALIFIED
Leon H WhobreyRussiaOnyama Limba NEW
Ivar K AlbaresFranceBernardo Dominic QUALIFIED
Maria Y VocelkaCanadaAnna Fali NEGOTIATION
Costa T SchemmerItalyXuxue Feng QUALIFIED
Izzy I DoeCanadaBernardo Dominic NEW
Leja Q BowleyGermanyOnyama Limba NEW
Kaitlin U CampainFranceBernardo Dominic PROPOSAL
Kadeem H KolmetzBrazilElwin Sharvill NEGOTIATION
Jeanfrancois B PerinAustraliaOnyama Limba QUALIFIED
Aditya J FollerFranceOnyama Limba NEGOTIATION
Maisha W PaprockiItalyXuxue Feng UNQUALIFIED
Costa I AmigonFranceStephen Shaw NEW
Antonio E InouyeGermanyOnyama Limba RENEWAL
Izzy S AmigonJapanElwin Sharvill QUALIFIED
Aruna F MaletItalyIoni Bowcher UNQUALIFIED
Antonio S MacleadGermanyAsiya Javayant UNQUALIFIED
Murillo D GillianItalyAmy Elsner NEW
Adams B RulapaughRussiaBernardo Dominic RENEWAL
Maria T ButtSpainIvan Magalhaes NEW
Deepesh V VocelkaGermanyAnna Fali NEW
Faith K BriddickUnited KingdomIoni Bowcher PROPOSAL
Jones P RimFranceStephen Shaw QUALIFIED
Kaitlin J DoeArgentinaAnna Fali RENEWAL
Arvin O MarrierFranceAsiya Javayant QUALIFIED
Ricardo X OldroydIndiaAsiya Javayant QUALIFIED
Costa U ShinkoJapanXuxue Feng RENEWAL
Jennifer N BriddickAustraliaElwin Sharvill RENEWAL
Chavez W StensethJapanIvan Magalhaes PROPOSAL
Cody E RoysterUnited KingdomAmy Elsner RENEWAL
Ricardo L TollnerBrazilStephen Shaw RENEWAL
Smith N RimCanadaStephen Shaw RENEWAL
Smith X SchemmerAustraliaElwin Sharvill NEW
Munro V FlosiSpainElwin Sharvill RENEWAL
Silvio Q MacleadArgentinaAmy Elsner PROPOSAL
Leja E BowleyBrazilIvan Magalhaes NEGOTIATION
Alejandro N RimAustraliaOnyama Limba RENEWAL
James V ChuiJapanElwin Sharvill NEW
Frozen Columns
Name
Maisha K Bolognia
Alejandro D Foller
Sinclair D Poquette
Francesco G Nicka
Jeanfrancois T Briddick
Ashley A Venere
Johnson N Albares
Julie A Stenseth
Silvio C Vocelka
Misaki P Nestle
Salvatore M Iturbide
Chavez T Caudy
Deepesh H Saylors
Kadeem L Saylors
Nicolas Z Bolognia
Johnson N Malet
Antonio S Darakjy
Alejandro B Doe
Stacey N Nestle
Julie X Amigon
David X Oldroyd
Smith K Venere
Kaitlin R Doe
Mayumi D Marrier
Misaki V Nestle
Francesco M Nestle
Juan P Royster
Izzy R Briddick
Aruna A Whobrey
Stacey M Saylors
Octavia Y Darakjy
Aika A Butt
Alejandro M Nicka
Jeanfrancois U Dilliard
James X Figeroa
Maria D Whobrey
Mujtaba J Garufi
Julie K Inouye
Misaki F Glick
Tony G Iturbide
Salvatore E Perin
David Z Ferencz
Nicolas V Ostrosky
Ashley B Stenseth
Smith U Glick
Jefferson S Perin
Wickens Q Ostrosky
Johnson Q Rim
Nicolas B Briddick
Chavez B Darakjy
IdCountryDate
1000Australia2026-06-18
1001Russia2026-06-22
1002Australia2026-06-05
1003Japan2026-06-03
1004Brazil2026-06-19
1005France2026-06-17
1006Italy2026-06-10
1007Russia2026-06-30
1008United Kingdom2026-06-29
1009Australia2026-06-26
1010Japan2026-06-30
1011United Kingdom2026-06-11
1012Japan2026-06-18
1013Spain2026-06-17
1014France2026-06-25
1015Canada2026-06-15
1016Germany2026-06-21
1017Japan2026-06-10
1018Australia2026-06-04
1019Russia2026-06-28
1020Argentina2026-06-01
1021France2026-06-04
1022Argentina2026-06-28
1023Russia2026-06-13
1024Russia2026-06-06
1025Russia2026-06-13
1026United Kingdom2026-06-17
1027Japan2026-06-22
1028Argentina2026-06-23
1029Italy2026-06-07
1030Spain2026-06-14
1031Brazil2026-06-16
1032Brazil2026-06-11
1033Italy2026-06-15
1034United Kingdom2026-06-09
1035India2026-06-10
1036Brazil2026-06-26
1037Russia2026-06-21
1038United Kingdom2026-06-25
1039Canada2026-06-23
1040France2026-06-15
1041Spain2026-06-27
1042Germany2026-06-06
1043Australia2026-06-18
1044Spain2026-06-24
1045Brazil2026-06-15
1046Italy2026-06-04
1047Australia2026-06-16
1048France2026-06-02
1049France2026-06-25

On-Demand Data

NameIdCountryDate
Claire O Oldroyd1000Italy2026-06-13
Cody P Bolognia1001Germany2026-06-10
Leja J Malet1002Spain2026-06-17
Nicolas C Marrier1003Russia2026-06-24
Rodrigues C Sergi1004Germany2026-06-03
Salvatore Z Royster1005Japan2026-06-29
Faith N Perin1006Australia2026-06-25
Rodrigues P Maclead1007Italy2026-06-03
Jeanfrancois F Ferencz1008United Kingdom2026-06-17
Sinclair G Malet1009United Kingdom2026-06-12
Jones Z Iturbide1010Japan2026-06-19
Ashley P Doe1011Australia2026-06-03
Jeanfrancois M Marrier1012Germany2026-06-07
Greenwood A Caudy1013Australia2026-06-20
Maisha U Venere1014United Kingdom2026-06-24
Smith A Iturbide1015Spain2026-06-13
Francesco D Oldroyd1016Russia2026-06-23
Smith L Vocelka1017India2026-06-02
Arvin S Inouye1018Germany2026-06-02
Silvio H Waycott1019Italy2026-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo W StensethFranceAmy Elsner RENEWAL
Smith V BriddickCanadaAmy Elsner NEGOTIATION
Jennifer I GlickIndiaAmy Elsner QUALIFIED
Greenwood H StockhamJapanBernardo Dominic NEGOTIATION
Francesco W KolmetzFranceElwin Sharvill PROPOSAL
Emily G OstroskyArgentinaElwin Sharvill UNQUALIFIED
Maria X MacleadIndiaBernardo Dominic UNQUALIFIED
Kaitlin O VenereRussiaStephen Shaw RENEWAL
Salvatore S SchemmerFranceStephen Shaw NEGOTIATION
Alejandro M SlusarskiSpainXuxue Feng UNQUALIFIED
Aruna L SergiJapanStephen Shaw PROPOSAL
Aika Z InouyeGermanyAmy Elsner QUALIFIED
Izzy O RulapaughBrazilStephen Shaw PROPOSAL
Wickens L DarakjySpainAmy Elsner NEGOTIATION
Clifford D OldroydAustraliaElwin Sharvill NEGOTIATION
Jefferson Q GauchoRussiaStephen Shaw NEW
Juan E OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Claire S FlosiCanadaOnyama Limba UNQUALIFIED
Emily A GauchoAustraliaIoni Bowcher UNQUALIFIED
Salvatore S SergiRussiaIvan Magalhaes NEGOTIATION
Mayumi M NickaCanadaElwin Sharvill NEW
Isabel A AmigonFranceOnyama Limba NEGOTIATION
Jennifer D WieserRussiaOnyama Limba QUALIFIED
Jennifer E MaletAustraliaAnna Fali RENEWAL
James X MacleadGermanyIoni Bowcher UNQUALIFIED
Stacey K IturbideArgentinaIvan Magalhaes NEW
Kaitlin P BologniaItalyAmy Elsner NEGOTIATION
Misaki W GauchoAustraliaXuxue Feng UNQUALIFIED
Mayumi D MaletJapanStephen Shaw QUALIFIED
Francesco G FigeroaFranceIvan Magalhaes QUALIFIED
David N FerenczJapanOnyama Limba NEW
Cody X BriddickUnited KingdomAmy Elsner RENEWAL
Morrow S AmigonSpainBernardo Dominic RENEWAL
Wickens P SlusarskiJapanElwin Sharvill QUALIFIED
Jones V RoysterRussiaAmy Elsner NEW
Maria H VenereUnited KingdomOnyama Limba QUALIFIED
David D BriddickCanadaElwin Sharvill NEGOTIATION
Salvatore G MacleadCanadaElwin Sharvill NEGOTIATION
Jennifer I MarrierSpainAnna Fali QUALIFIED
Maisha V KolmetzIndiaElwin Sharvill UNQUALIFIED

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