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
Faith U GillianSpainBernardo Dominic NEGOTIATION
Smith L RutaFranceAsiya Javayant RENEWAL
David Q AmigonSpainOnyama Limba RENEWAL
James D OldroydGermanyIoni Bowcher NEGOTIATION
Rodrigues X InouyeBrazilIoni Bowcher NEGOTIATION
Deepesh U MaletBrazilAnna Fali QUALIFIED
Ashley G GillianRussiaStephen Shaw NEGOTIATION
Cody S RutaFranceOnyama Limba NEW
Sinclair O FollerIndiaXuxue Feng RENEWAL
Faith X ChuiSpainIvan Magalhaes RENEWAL
James X PaprockiJapanBernardo Dominic NEGOTIATION
Aruna R TollnerGermanyIoni Bowcher NEW
Faith A ButtFranceIvan Magalhaes NEGOTIATION
Jennifer Z MaletGermanyIvan Magalhaes UNQUALIFIED
Murillo Z ShinkoJapanOnyama Limba QUALIFIED
Jeanfrancois P VocelkaJapanOnyama Limba NEW
Antonio H FerenczBrazilXuxue Feng RENEWAL
Chavez H CaudyRussiaAmy Elsner RENEWAL
James D SchemmerJapanXuxue Feng NEW
Wickens T DarakjySpainOnyama Limba NEW
Greenwood X SaylorsIndiaBernardo Dominic PROPOSAL
Adams H VocelkaIndiaXuxue Feng QUALIFIED
Francesco K PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Claire L SlusarskiCanadaAnna Fali NEGOTIATION
Kaitlin X StensethFranceStephen Shaw RENEWAL
Ivar K IturbideArgentinaAmy Elsner PROPOSAL
Aruna D BologniaJapanIoni Bowcher PROPOSAL
Arvin H PoquetteAustraliaBernardo Dominic PROPOSAL
Izzy Z GillianGermanyBernardo Dominic NEGOTIATION
James K BowleyAustraliaAmy Elsner PROPOSAL
Octavia I TollnerCanadaOnyama Limba RENEWAL
Jeanfrancois T AmigonJapanOnyama Limba NEGOTIATION
Munro J StockhamFranceIvan Magalhaes NEGOTIATION
Claire R FollerCanadaAmy Elsner PROPOSAL
Aditya D NestleUnited KingdomIvan Magalhaes NEGOTIATION
Claire R BowleyBrazilAsiya Javayant UNQUALIFIED
Ivar H CaudyGermanyAmy Elsner QUALIFIED
Juan P WaycottArgentinaAmy Elsner QUALIFIED
Chavez G ChuiAustraliaAsiya Javayant QUALIFIED
James V FerenczGermanyStephen Shaw UNQUALIFIED
Leja U RutaSpainIvan Magalhaes NEW
Leon U CaldareraSpainAmy Elsner NEGOTIATION
Morrow S NestleAustraliaIvan Magalhaes NEGOTIATION
Octavia P SergiUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin E AmigonRussiaOnyama Limba NEW
Ivar P DilliardAustraliaXuxue Feng NEW
Kadeem H MarrierJapanXuxue Feng NEW
David C CampainAustraliaBernardo Dominic NEW
Leja X FerenczArgentinaStephen Shaw NEW
Silvio N PaprockiBrazilOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna H StockhamGermanyAnna Fali UNQUALIFIED
Silvio U GlickItalyIoni Bowcher QUALIFIED
Antonio H NestleItalyAnna Fali PROPOSAL
Antonio A SergiRussiaAnna Fali NEW
Juan R SchemmerBrazilIoni Bowcher UNQUALIFIED
Johnson Q SergiGermanyXuxue Feng NEGOTIATION
Jeanfrancois P GauchoJapanIoni Bowcher NEW
Jennifer J NickaItalyIvan Magalhaes UNQUALIFIED
Leon H KolmetzRussiaIoni Bowcher NEGOTIATION
Tony E GarufiUnited KingdomAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair G GauchoRussia2026-06-24Truhlar And Truhlar Attys UNQUALIFIED25Elwin Sharvill
1001Mujtaba N SlusarskiCanada2026-06-20Chanay, Jeffrey A Esq RENEWAL23Bernardo Dominic
1002Deepesh R BologniaRussia2026-07-16Morlong Associates QUALIFIED48Amy Elsner
1003Smith R RoysterItaly2026-06-27Feltz Printing Service NEW24Elwin Sharvill
1004Mujtaba W TollnerSpain2026-06-17Buckley Miller Wright QUALIFIED63Ivan Magalhaes
1005Alejandro U SchemmerArgentina2026-06-25Chemel, James L Cpa UNQUALIFIED48Amy Elsner
1006Chavez G TollnerJapan2026-07-11King, Christopher A Esq PROPOSAL48Onyama Limba
1007Leon X CaldareraArgentina2026-06-28Morlong Associates NEGOTIATION42Elwin Sharvill
1008Sinclair D IturbideRussia2026-06-27Printing Dimensions RENEWAL87Xuxue Feng
1009Adams S RutaGermany2026-07-05Rangoni Of Florence UNQUALIFIED37Stephen Shaw
1010Emily D TollnerIndia2026-07-07Rangoni Of Florence QUALIFIED1Amy Elsner
1011Munro B MaletItaly2026-07-14Commercial Press RENEWAL60Ioni Bowcher
1012Nicolas J GauchoArgentina2026-06-22Rangoni Of Florence PROPOSAL29Ioni Bowcher
1013Emily N GillianUnited Kingdom2026-07-13Printing Dimensions UNQUALIFIED49Ivan Magalhaes
1014Clifford M WaycottItaly2026-07-13Chemel, James L Cpa RENEWAL11Ioni Bowcher
1015Clifford G AlbaresArgentina2026-07-03Buckley Miller Wright PROPOSAL9Anna Fali
1016Murillo O BologniaGermany2026-07-16Benton, John B Jr QUALIFIED2Stephen Shaw
1017Adams R NickaItaly2026-06-24Feiner Bros UNQUALIFIED36Ivan Magalhaes
1018Leja N NickaFrance2026-07-16Morlong Associates RENEWAL14Onyama Limba
1019Costa G RulapaughCanada2026-07-13Feiner Bros UNQUALIFIED12Amy Elsner
1020Stacey H SaylorsArgentina2026-06-17Benton, John B Jr UNQUALIFIED59Stephen Shaw
1021Aika Z ChuiIndia2026-07-16Buckley Miller Wright NEGOTIATION19Onyama Limba
1022Stacey Q OldroydItaly2026-06-28Chemel, James L Cpa PROPOSAL17Xuxue Feng
1023Jefferson D InouyeCanada2026-06-18King, Christopher A Esq UNQUALIFIED64Ioni Bowcher
1024Francesco T AlbaresFrance2026-07-16Rousseaux, Michael Esq QUALIFIED33Ivan Magalhaes
1025Maria W WhobreyIndia2026-07-10Morlong Associates NEW0Stephen Shaw
1026Ashley G KolmetzBrazil2026-07-15Chemel, James L Cpa NEW71Onyama Limba
1027Smith E GlickJapan2026-07-05Buckley Miller Wright QUALIFIED89Ioni Bowcher
1028Nicolas V BologniaFrance2026-06-29Feiner Bros UNQUALIFIED1Amy Elsner
1029Ricardo E SaylorsFrance2026-07-01Commercial Press PROPOSAL14Onyama Limba
1030David L StensethArgentina2026-07-13Feltz Printing Service NEW28Ioni Bowcher
1031James Q NestleIndia2026-06-25Rangoni Of Florence UNQUALIFIED49Elwin Sharvill
1032Alejandro U PaprockiJapan2026-06-29Morlong Associates NEGOTIATION8Ivan Magalhaes
1033Salvatore W InouyeCanada2026-07-03Morlong Associates NEW92Ivan Magalhaes
1034David W SergiItaly2026-07-10Benton, John B Jr NEGOTIATION85Asiya Javayant
1035Smith S NickaUnited Kingdom2026-06-28Buckley Miller Wright QUALIFIED40Asiya Javayant
1036Nicolas N PoquetteSpain2026-07-10Benton, John B Jr PROPOSAL21Xuxue Feng
1037Adams F ButtUnited Kingdom2026-06-23Chanay, Jeffrey A Esq NEW48Elwin Sharvill
1038Ashley Y PerinAustralia2026-06-28Dorl, James J Esq UNQUALIFIED74Bernardo Dominic
1039Sinclair H CampainJapan2026-07-01Chapman, Ross E Esq NEW89Anna Fali
1040Kaitlin N OstroskyFrance2026-06-28Buckley Miller Wright NEW53Anna Fali
1041Nicolas H RoysterFrance2026-07-09King, Christopher A Esq UNQUALIFIED99Asiya Javayant
1042Faith P CaudyFrance2026-07-08Chapman, Ross E Esq RENEWAL71Anna Fali
1043Misaki I WhobreyFrance2026-06-30Chapman, Ross E Esq RENEWAL16Stephen Shaw
1044Arvin V SergiCanada2026-06-29Rangoni Of Florence UNQUALIFIED98Ivan Magalhaes
1045Adams E AlbaresUnited Kingdom2026-07-07Chanay, Jeffrey A Esq QUALIFIED29Anna Fali
1046Emily O SaylorsUnited Kingdom2026-07-10Buckley Miller Wright NEGOTIATION65Xuxue Feng
1047Wickens S MacleadAustralia2026-06-29King, Christopher A Esq NEGOTIATION73Ivan Magalhaes
1048Costa G KolmetzUnited Kingdom2026-07-14Rousseaux, Michael Esq NEGOTIATION45Bernardo Dominic
1049James N WieserAustralia2026-06-29Buckley Miller Wright NEW52Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Maisha K WaycottRussiaIoni Bowcher NEGOTIATION
Faith O NickaCanadaXuxue Feng PROPOSAL
Deepesh F AmigonJapanIvan Magalhaes QUALIFIED
Leja N BowleyIndiaXuxue Feng NEW
Smith H RimFranceOnyama Limba RENEWAL
Sinclair L BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Aruna F DilliardItalyOnyama Limba NEW
Leja U FerenczBrazilAnna Fali NEW
Emily Z OldroydCanadaIvan Magalhaes NEGOTIATION
Octavia F BowleyBrazilAnna Fali RENEWAL
Faith N WhobreyGermanyAmy Elsner PROPOSAL
Mayumi F GarufiSpainAsiya Javayant NEW
Morrow L DilliardFranceStephen Shaw NEW
Jennifer V ChuiFranceOnyama Limba UNQUALIFIED
Emily M DilliardCanadaIvan Magalhaes NEW
Octavia P ButtAustraliaXuxue Feng RENEWAL
Faith J AlbaresCanadaAnna Fali NEW
Aditya R SergiGermanyOnyama Limba RENEWAL
Misaki O RimItalyIvan Magalhaes PROPOSAL
Adams O OldroydIndiaAsiya Javayant UNQUALIFIED
David J BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Aika Q GauchoAustraliaIvan Magalhaes NEW
Cody G SaylorsSpainStephen Shaw QUALIFIED
Adams Y PoquetteFranceIvan Magalhaes RENEWAL
Greenwood Z RulapaughIndiaIvan Magalhaes PROPOSAL
Stacey Y GlickSpainIoni Bowcher NEGOTIATION
Francesco S FollerIndiaOnyama Limba PROPOSAL
Smith I BowleyAustraliaOnyama Limba PROPOSAL
Leja X KuskoAustraliaIvan Magalhaes RENEWAL
Cody O CaldareraItalyIvan Magalhaes QUALIFIED
Maria V StensethRussiaElwin Sharvill QUALIFIED
Ashley S RutaSpainElwin Sharvill PROPOSAL
Smith H PaprockiIndiaBernardo Dominic NEW
Jeanfrancois G CampainBrazilAmy Elsner PROPOSAL
Leon H FlosiRussiaIvan Magalhaes NEW
Aruna F VenereRussiaAnna Fali RENEWAL
Darci H DoeIndiaXuxue Feng RENEWAL
Antonio D GauchoItalyIoni Bowcher QUALIFIED
Maria P WhobreySpainElwin Sharvill UNQUALIFIED
Mayumi B CaudyUnited KingdomOnyama Limba RENEWAL
Alejandro B CampainFranceAsiya Javayant RENEWAL
Morrow Z PoquetteIndiaAsiya Javayant RENEWAL
Wickens F NestleUnited KingdomStephen Shaw QUALIFIED
Aditya U WaycottIndiaStephen Shaw UNQUALIFIED
Maria F OldroydItalyIoni Bowcher QUALIFIED
David H TollnerCanadaElwin Sharvill UNQUALIFIED
Costa Y CaldareraJapanElwin Sharvill RENEWAL
Leja L OstroskySpainIvan Magalhaes PROPOSAL
Deepesh C VocelkaAustraliaIoni Bowcher RENEWAL
Octavia S SaylorsGermanyOnyama Limba RENEWAL
Frozen Columns
Name
Johnson P Darakjy
Kaitlin N Campain
Munro Y Kusko
Francesco R Sergi
Leja U Malet
Antonio E Shinko
Adams D Paprocki
Izzy C Oldroyd
Leon C Kusko
Rodrigues C Figeroa
Maisha S Kusko
Aditya T Stockham
Octavia M Whobrey
Julie R Rim
Antonio F Perin
Izzy A Foller
Morrow X Venere
Antonio M Dilliard
Kaitlin C Malet
Emily G Whobrey
David Y Figeroa
Maria B Ferencz
Costa T Sergi
Leja D Saylors
Aika U Morasca
Stacey R Maclead
Jennifer U Dilliard
Jones Q Kolmetz
Salvatore E Stockham
Deepesh K Iturbide
Claire X Iturbide
Salvatore F Albares
Ricardo X Vocelka
Mayumi M Rulapaugh
Jeanfrancois L Gillian
Jeanfrancois A Ferencz
Octavia R Kolmetz
Adams L Slusarski
Clifford X Gaucho
Greenwood L Glick
Smith B Campain
Mujtaba P Schemmer
Ricardo S Campain
Claire X Paprocki
Isabel O Oldroyd
Alejandro K Foller
Octavia R Dilliard
Chavez Y Bolognia
Leon W Kusko
Arvin F Tollner
IdCountryDate
1000Australia2026-06-22
1001France2026-06-18
1002Argentina2026-07-02
1003France2026-07-03
1004Spain2026-06-20
1005Russia2026-07-14
1006United Kingdom2026-07-05
1007Argentina2026-06-17
1008Australia2026-06-17
1009Canada2026-06-30
1010Japan2026-07-11
1011Spain2026-06-27
1012India2026-07-14
1013Japan2026-07-07
1014Spain2026-06-28
1015France2026-07-13
1016Australia2026-07-01
1017India2026-07-14
1018France2026-06-25
1019Canada2026-07-09
1020Russia2026-06-24
1021Argentina2026-07-02
1022Canada2026-06-18
1023Russia2026-07-02
1024France2026-06-24
1025Argentina2026-07-12
1026Argentina2026-07-01
1027Canada2026-06-23
1028Argentina2026-07-11
1029United Kingdom2026-07-09
1030Germany2026-06-27
1031France2026-06-30
1032France2026-07-02
1033France2026-07-11
1034Australia2026-06-30
1035Argentina2026-07-13
1036France2026-07-10
1037Argentina2026-06-25
1038Japan2026-06-30
1039United Kingdom2026-07-09
1040Russia2026-07-09
1041Brazil2026-07-14
1042Japan2026-07-03
1043Russia2026-07-02
1044United Kingdom2026-07-11
1045Australia2026-07-11
1046Spain2026-06-23
1047Brazil2026-06-22
1048India2026-06-18
1049Russia2026-07-03

On-Demand Data

NameIdCountryDate
Maria P Bowley1000Italy2026-07-03
Salvatore Q Iturbide1001France2026-06-23
Ashley D Gillian1002Australia2026-06-24
Sinclair Q Chui1003Argentina2026-07-07
Jeanfrancois W Ruta1004Spain2026-06-24
Cody H Malet1005Italy2026-06-20
Adams E Ruta1006France2026-07-01
Deepesh B Vocelka1007France2026-07-12
Julie W Nestle1008Spain2026-07-13
Wickens L Caldarera1009Australia2026-06-28
Leja T Paprocki1010Argentina2026-07-15
Costa E Bowley1011Brazil2026-06-27
Costa D Tollner1012France2026-07-10
Maisha A Stockham1013India2026-07-12
Morrow F Stenseth1014Canada2026-07-05
Claire V Kolmetz1015Germany2026-07-03
David M Nestle1016Argentina2026-06-27
Arvin D Saylors1017Germany2026-07-09
Greenwood S Ferencz1018Canada2026-07-15
Clifford V Malet1019Australia2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams A MarrierAustraliaAmy Elsner NEW
Jennifer P RulapaughJapanElwin Sharvill PROPOSAL
Julie K BriddickSpainBernardo Dominic NEGOTIATION
Mujtaba G GarufiRussiaElwin Sharvill PROPOSAL
Wickens F BowleyAustraliaOnyama Limba RENEWAL
Francesco X ShinkoBrazilXuxue Feng NEGOTIATION
Sinclair I SergiCanadaAsiya Javayant QUALIFIED
Tony G MacleadGermanyAnna Fali UNQUALIFIED
Johnson W MaletBrazilIvan Magalhaes RENEWAL
Rodrigues V PoquetteItalyElwin Sharvill NEW
Izzy D FerenczBrazilStephen Shaw UNQUALIFIED
Antonio G PerinSpainIvan Magalhaes PROPOSAL
Salvatore D SergiSpainXuxue Feng NEGOTIATION
Julie V FerenczGermanyAsiya Javayant PROPOSAL
Murillo D SaylorsSpainAsiya Javayant NEGOTIATION
Kadeem B InouyeAustraliaOnyama Limba NEW
Ivar J NickaAustraliaStephen Shaw PROPOSAL
Tony U DilliardFranceOnyama Limba NEGOTIATION
Juan H ChuiAustraliaXuxue Feng QUALIFIED
Nicolas I BowleyFranceIvan Magalhaes PROPOSAL
Murillo X IturbideGermanyStephen Shaw RENEWAL
Tony O GlickJapanBernardo Dominic NEW
David A StockhamCanadaAmy Elsner NEW
Sinclair G VocelkaBrazilXuxue Feng NEW
Clifford L ShinkoSpainElwin Sharvill NEW
Ivar Q FerenczAustraliaStephen Shaw QUALIFIED
Smith I WaycottFranceElwin Sharvill NEGOTIATION
Costa F FigeroaBrazilXuxue Feng QUALIFIED
Stacey P KuskoFranceAsiya Javayant UNQUALIFIED
Jones G StockhamBrazilAnna Fali RENEWAL
Costa T OstroskyUnited KingdomOnyama Limba NEGOTIATION
Salvatore N ShinkoAustraliaAnna Fali PROPOSAL
Julie P DoeUnited KingdomStephen Shaw UNQUALIFIED
Nicolas D NestleFranceElwin Sharvill RENEWAL
Silvio Q WhobreyJapanElwin Sharvill NEW
Octavia M ShinkoJapanAmy Elsner UNQUALIFIED
Aika V FerenczUnited KingdomStephen Shaw QUALIFIED
Isabel Q WieserItalyOnyama Limba PROPOSAL
Greenwood A SergiItalyStephen Shaw UNQUALIFIED
Aika J ShinkoIndiaAsiya Javayant 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>