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
Aika C FerenczJapanOnyama Limba UNQUALIFIED
Morrow D OldroydBrazilStephen Shaw NEW
Sinclair C GillianUnited KingdomBernardo Dominic NEW
Claire L VocelkaGermanyAmy Elsner NEW
Clifford A DilliardAustraliaOnyama Limba NEW
Leja P GlickCanadaXuxue Feng UNQUALIFIED
Isabel R InouyeIndiaAsiya Javayant UNQUALIFIED
Darci H RutaBrazilAmy Elsner NEGOTIATION
Sinclair I FigeroaRussiaBernardo Dominic PROPOSAL
Emily F MorascaIndiaBernardo Dominic UNQUALIFIED
Greenwood D NestleIndiaElwin Sharvill RENEWAL
Arvin H IturbideAustraliaAmy Elsner NEGOTIATION
Maisha X WieserUnited KingdomElwin Sharvill NEGOTIATION
Octavia K BriddickItalyAnna Fali NEGOTIATION
Emily V BriddickItalyStephen Shaw RENEWAL
Jefferson A PerinBrazilElwin Sharvill NEGOTIATION
Johnson V PoquetteAustraliaXuxue Feng QUALIFIED
Costa B MaletBrazilAsiya Javayant NEGOTIATION
Aruna G FerenczJapanOnyama Limba NEW
Morrow P MarrierItalyAsiya Javayant NEGOTIATION
Jones V NickaBrazilIvan Magalhaes UNQUALIFIED
Cody S WieserJapanIvan Magalhaes RENEWAL
Ivar J MarrierJapanIoni Bowcher UNQUALIFIED
David T SaylorsAustraliaElwin Sharvill NEGOTIATION
Arvin R PerinJapanStephen Shaw PROPOSAL
Maria L MarrierGermanyAsiya Javayant QUALIFIED
David W ChuiBrazilIvan Magalhaes RENEWAL
James L VenereBrazilOnyama Limba PROPOSAL
Maria W VenereGermanyXuxue Feng RENEWAL
Wickens C FlosiItalyIvan Magalhaes NEGOTIATION
Murillo M VenereItalyIoni Bowcher NEGOTIATION
Ivar W ShinkoSpainAnna Fali RENEWAL
Ricardo T FlosiSpainOnyama Limba NEW
Silvio Z PoquetteIndiaAmy Elsner UNQUALIFIED
Johnson F OldroydIndiaStephen Shaw PROPOSAL
James I IturbideJapanOnyama Limba NEGOTIATION
Mayumi W RoysterIndiaStephen Shaw RENEWAL
Aruna T RoysterFranceBernardo Dominic NEW
Chavez N GlickSpainXuxue Feng NEGOTIATION
James R StockhamUnited KingdomIvan Magalhaes QUALIFIED
Jones A SaylorsIndiaXuxue Feng PROPOSAL
Alejandro Z DoeGermanyAsiya Javayant PROPOSAL
Stacey S SchemmerArgentinaAmy Elsner UNQUALIFIED
Francesco P WaycottArgentinaIvan Magalhaes QUALIFIED
Jones O WhobreyFranceIoni Bowcher RENEWAL
Salvatore A OstroskyGermanyIvan Magalhaes QUALIFIED
David I NickaSpainAmy Elsner UNQUALIFIED
Clifford X GauchoGermanyAmy Elsner QUALIFIED
Ashley C NestleAustraliaOnyama Limba NEGOTIATION
Jeanfrancois O CampainUnited KingdomXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Tony O PerinItalyOnyama Limba PROPOSAL
Mujtaba L CaudyGermanyBernardo Dominic QUALIFIED
Arvin Z GlickSpainAsiya Javayant RENEWAL
Julie M NestleBrazilBernardo Dominic NEGOTIATION
James I PerinUnited KingdomAsiya Javayant QUALIFIED
Kaitlin X StockhamFranceOnyama Limba RENEWAL
Ashley D AlbaresUnited KingdomIoni Bowcher PROPOSAL
Deepesh J TollnerGermanyIoni Bowcher NEGOTIATION
Rodrigues X GillianCanadaIvan Magalhaes PROPOSAL
Ashley I GillianIndiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow Y MaletSpain2026-07-19Benton, John B Jr QUALIFIED26Onyama Limba
1001Greenwood U OstroskyRussia2026-07-23Commercial Press NEGOTIATION53Ioni Bowcher
1002Stacey N WieserArgentina2026-07-17Printing Dimensions QUALIFIED19Anna Fali
1003Rodrigues L ShinkoJapan2026-08-06Chapman, Ross E Esq QUALIFIED94Asiya Javayant
1004Jeanfrancois D KolmetzArgentina2026-07-25Chemel, James L Cpa RENEWAL58Ioni Bowcher
1005Chavez B SaylorsRussia2026-08-08Chapman, Ross E Esq UNQUALIFIED5Stephen Shaw
1006James Z NestleGermany2026-07-31Dorl, James J Esq RENEWAL57Stephen Shaw
1007Izzy Y RoysterRussia2026-08-05Rousseaux, Michael Esq PROPOSAL97Xuxue Feng
1008Octavia N VenereRussia2026-08-13Truhlar And Truhlar Attys NEW68Bernardo Dominic
1009Jones W RoysterUnited Kingdom2026-07-25Dorl, James J Esq NEGOTIATION71Stephen Shaw
1010Kadeem X MacleadUnited Kingdom2026-08-10Rousseaux, Michael Esq NEGOTIATION18Elwin Sharvill
1011Darci W GlickRussia2026-07-24Chanay, Jeffrey A Esq QUALIFIED94Stephen Shaw
1012James X WaycottUnited Kingdom2026-08-04Rangoni Of Florence NEGOTIATION90Amy Elsner
1013Jones R GlickGermany2026-07-26Feiner Bros NEGOTIATION48Onyama Limba
1014Morrow G KuskoIndia2026-08-05Buckley Miller Wright NEGOTIATION57Amy Elsner
1015Darci A PoquetteCanada2026-07-18Morlong Associates UNQUALIFIED83Xuxue Feng
1016Adams S BriddickBrazil2026-07-16Truhlar And Truhlar Attys RENEWAL80Stephen Shaw
1017Morrow O MacleadBrazil2026-08-02Printing Dimensions RENEWAL61Ivan Magalhaes
1018Cody S FigeroaRussia2026-08-03Feltz Printing Service NEGOTIATION43Ioni Bowcher
1019Jefferson D ButtRussia2026-07-31Truhlar And Truhlar Attys RENEWAL18Anna Fali
1020Ashley Y VenereGermany2026-08-14Morlong Associates QUALIFIED61Asiya Javayant
1021Maisha Q FollerFrance2026-08-08Morlong Associates NEW13Elwin Sharvill
1022Aika F GlickGermany2026-07-22Feiner Bros UNQUALIFIED11Asiya Javayant
1023Jeanfrancois T SergiCanada2026-08-09Truhlar And Truhlar Attys NEW66Xuxue Feng
1024Faith M AmigonArgentina2026-08-07Buckley Miller Wright NEW34Elwin Sharvill
1025Ricardo U StensethArgentina2026-08-09Chemel, James L Cpa NEW89Stephen Shaw
1026Wickens H WieserArgentina2026-08-10Morlong Associates NEW48Elwin Sharvill
1027Rodrigues X FerenczRussia2026-08-10Rangoni Of Florence QUALIFIED41Amy Elsner
1028Salvatore U KuskoUnited Kingdom2026-07-23Rangoni Of Florence QUALIFIED77Xuxue Feng
1029Murillo X AlbaresCanada2026-07-17Morlong Associates RENEWAL85Amy Elsner
1030Ricardo T StockhamGermany2026-07-17Rangoni Of Florence NEW59Onyama Limba
1031Adams Y SergiGermany2026-08-03Feltz Printing Service UNQUALIFIED84Onyama Limba
1032Isabel M ChuiIndia2026-07-18Morlong Associates PROPOSAL75Anna Fali
1033Antonio P GauchoItaly2026-07-28Commercial Press RENEWAL96Amy Elsner
1034Ashley K MorascaIndia2026-08-01King, Christopher A Esq NEGOTIATION98Stephen Shaw
1035Julie J WhobreyAustralia2026-08-14Chanay, Jeffrey A Esq UNQUALIFIED48Stephen Shaw
1036Kaitlin E NestleIndia2026-08-11Rangoni Of Florence PROPOSAL32Ioni Bowcher
1037Ricardo R MacleadIndia2026-08-01Rousseaux, Michael Esq NEW44Asiya Javayant
1038Leon O MarrierSpain2026-07-22Feltz Printing Service QUALIFIED59Asiya Javayant
1039Arvin L WaycottJapan2026-07-29Benton, John B Jr PROPOSAL28Anna Fali
1040Mujtaba D ChuiItaly2026-08-05Commercial Press NEGOTIATION16Ivan Magalhaes
1041Tony V VenereItaly2026-07-19Rangoni Of Florence NEGOTIATION11Bernardo Dominic
1042Darci K DoeItaly2026-08-09Feltz Printing Service RENEWAL10Onyama Limba
1043Johnson R MaletFrance2026-07-20Feltz Printing Service UNQUALIFIED23Amy Elsner
1044Tony G PaprockiArgentina2026-07-22Feltz Printing Service QUALIFIED97Bernardo Dominic
1045Wickens J RoysterUnited Kingdom2026-08-14Truhlar And Truhlar Attys PROPOSAL67Asiya Javayant
1046Juan K NestleItaly2026-08-06Morlong Associates UNQUALIFIED63Ivan Magalhaes
1047Wickens J PerinBrazil2026-07-16Chapman, Ross E Esq PROPOSAL90Onyama Limba
1048Tony S SergiBrazil2026-07-31Chanay, Jeffrey A Esq NEGOTIATION89Bernardo Dominic
1049Aika R GlickGermany2026-07-25Chemel, James L Cpa RENEWAL43Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Wickens T OstroskyArgentinaAsiya Javayant RENEWAL
Chavez L KolmetzSpainBernardo Dominic NEGOTIATION
Isabel H RulapaughAustraliaXuxue Feng NEW
David U GillianCanadaAsiya Javayant NEGOTIATION
David C BologniaSpainBernardo Dominic PROPOSAL
Arvin L CaudyGermanyAmy Elsner UNQUALIFIED
Nicolas P MacleadFranceAnna Fali RENEWAL
Antonio M OstroskyJapanBernardo Dominic NEW
Sinclair Z RutaBrazilElwin Sharvill NEGOTIATION
Jones T RulapaughGermanyAmy Elsner RENEWAL
Salvatore C CampainArgentinaIvan Magalhaes RENEWAL
Jeanfrancois T SchemmerUnited KingdomElwin Sharvill QUALIFIED
Nicolas C GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Arvin U FigeroaGermanyAsiya Javayant PROPOSAL
Isabel N PerinItalyStephen Shaw RENEWAL
Arvin C VenereSpainAnna Fali NEW
Isabel Y ButtSpainElwin Sharvill RENEWAL
Juan Z AmigonSpainStephen Shaw NEGOTIATION
Ashley A CaldareraArgentinaBernardo Dominic QUALIFIED
Arvin I FigeroaJapanElwin Sharvill QUALIFIED
Antonio D WhobreyCanadaElwin Sharvill NEGOTIATION
Claire T FerenczRussiaAnna Fali RENEWAL
Stacey T NickaSpainAmy Elsner RENEWAL
Mayumi I MacleadRussiaIoni Bowcher RENEWAL
Smith J MaletCanadaBernardo Dominic UNQUALIFIED
Wickens B MaletGermanyElwin Sharvill QUALIFIED
Ashley R BriddickAustraliaAnna Fali UNQUALIFIED
David J BriddickBrazilIoni Bowcher NEGOTIATION
Tony O KuskoGermanyOnyama Limba NEGOTIATION
Murillo F GillianGermanyElwin Sharvill QUALIFIED
Juan P BriddickItalyIoni Bowcher NEGOTIATION
Alejandro P NickaSpainBernardo Dominic QUALIFIED
Johnson S FigeroaCanadaIoni Bowcher NEGOTIATION
Sinclair U RoysterUnited KingdomStephen Shaw QUALIFIED
Aruna A NestleRussiaIoni Bowcher NEGOTIATION
Alejandro Z FollerArgentinaElwin Sharvill NEW
Emily A WaycottBrazilXuxue Feng UNQUALIFIED
Alejandro B MarrierUnited KingdomXuxue Feng UNQUALIFIED
Greenwood P RimSpainAmy Elsner PROPOSAL
Ricardo C RulapaughGermanyStephen Shaw PROPOSAL
Leon B WieserCanadaOnyama Limba UNQUALIFIED
Izzy T OstroskyBrazilAnna Fali QUALIFIED
Darci Q AmigonRussiaAsiya Javayant NEW
Ashley Q AlbaresCanadaBernardo Dominic PROPOSAL
Darci D DarakjyIndiaAsiya Javayant NEGOTIATION
Aika R ShinkoBrazilBernardo Dominic NEGOTIATION
Clifford O ShinkoBrazilElwin Sharvill PROPOSAL
David K SaylorsIndiaBernardo Dominic NEW
Emily F RutaBrazilStephen Shaw NEW
Cody J CaudyRussiaIvan Magalhaes RENEWAL
Frozen Columns
Name
James E Poquette
Izzy Y Flosi
Ashley Y Dilliard
Rodrigues Z Briddick
David Q Kolmetz
Izzy V Morasca
Sinclair L Caudy
Jeanfrancois D Sergi
Juan D Inouye
Ashley F Vocelka
Jeanfrancois I Wieser
Maria N Ferencz
Adams K Caudy
Aruna F Tollner
Tony Y Iturbide
Kaitlin T Garufi
Salvatore K Malet
Claire X Stockham
Stacey G Bolognia
Mayumi L Morasca
Emily P Venere
Aika K Tollner
Wickens R Oldroyd
Cody E Nicka
Isabel U Tollner
Adams P Caudy
Arvin Z Bowley
Alejandro S Iturbide
Faith E Doe
Izzy U Albares
Octavia P Tollner
Maisha D Bolognia
Nicolas M Dilliard
Julie F Saylors
Jones L Figeroa
Maisha O Dilliard
Juan I Campain
Emily H Venere
Chavez U Darakjy
Maisha X Shinko
Morrow E Doe
James U Vocelka
Jeanfrancois F Inouye
Octavia O Whobrey
Kaitlin N Garufi
Juan U Kolmetz
Aika H Perin
Octavia P Garufi
Kaitlin G Kusko
Salvatore L Kusko
IdCountryDate
1000Spain2026-07-25
1001Japan2026-07-24
1002Canada2026-07-31
1003Australia2026-07-26
1004Italy2026-07-29
1005Russia2026-08-11
1006Canada2026-07-29
1007France2026-08-14
1008Germany2026-07-28
1009Brazil2026-08-04
1010United Kingdom2026-07-24
1011Russia2026-07-29
1012Spain2026-08-02
1013India2026-08-13
1014United Kingdom2026-08-11
1015Brazil2026-08-09
1016Spain2026-08-12
1017Japan2026-07-28
1018Canada2026-07-16
1019Brazil2026-08-10
1020Australia2026-07-17
1021Spain2026-07-26
1022Australia2026-08-07
1023Brazil2026-07-24
1024Italy2026-08-03
1025France2026-08-11
1026Germany2026-07-16
1027Spain2026-07-19
1028Japan2026-08-02
1029Japan2026-07-21
1030France2026-08-13
1031United Kingdom2026-07-29
1032Japan2026-08-12
1033Canada2026-07-16
1034Germany2026-07-27
1035Argentina2026-07-30
1036Russia2026-08-12
1037Australia2026-07-25
1038Italy2026-07-17
1039Canada2026-08-12
1040Australia2026-08-11
1041Germany2026-08-09
1042Japan2026-07-18
1043France2026-07-21
1044United Kingdom2026-07-31
1045Japan2026-08-11
1046France2026-07-31
1047Brazil2026-08-07
1048Russia2026-07-27
1049United Kingdom2026-07-18

On-Demand Data

NameIdCountryDate
Murillo T Campain1000Canada2026-08-05
Cody I Stockham1001France2026-08-06
Mujtaba D Paprocki1002Australia2026-07-29
Nicolas Y Ruta1003France2026-08-12
Octavia O Venere1004Germany2026-08-05
Aditya D Rulapaugh1005Russia2026-08-05
Juan X Saylors1006Italy2026-07-23
Aruna G Briddick1007Australia2026-08-11
Cody F Shinko1008Germany2026-07-30
Arvin P Malet1009Argentina2026-08-02
Faith D Venere1010Japan2026-07-29
Jeanfrancois N Rim1011Germany2026-08-08
Adams H Paprocki1012India2026-07-28
Arvin D Marrier1013Argentina2026-08-03
Maria B Morasca1014Argentina2026-07-24
Adams R Kolmetz1015Germany2026-07-17
Tony P Gaucho1016India2026-08-02
Maria E Foller1017Japan2026-07-26
Rodrigues B Marrier1018Australia2026-08-07
Maisha B Poquette1019Canada2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley T BowleyGermanyBernardo Dominic NEW
Julie U AmigonGermanyElwin Sharvill PROPOSAL
Leja T BowleyGermanyXuxue Feng QUALIFIED
Leon L StensethRussiaOnyama Limba NEGOTIATION
Mujtaba O SlusarskiIndiaBernardo Dominic NEW
Tony Z DarakjyAustraliaIvan Magalhaes RENEWAL
Claire M IturbideFranceOnyama Limba PROPOSAL
Emily G InouyeFranceAsiya Javayant NEGOTIATION
Octavia S SaylorsArgentinaIvan Magalhaes PROPOSAL
Aika P OstroskySpainXuxue Feng UNQUALIFIED
Antonio Y SergiAustraliaBernardo Dominic NEGOTIATION
Ivar F DilliardBrazilStephen Shaw QUALIFIED
Jones N VenereJapanAmy Elsner RENEWAL
Leon X FigeroaArgentinaOnyama Limba UNQUALIFIED
Smith X ButtSpainIoni Bowcher UNQUALIFIED
Julie X FlosiBrazilAmy Elsner NEW
Tony R ShinkoBrazilOnyama Limba RENEWAL
Aditya J FerenczArgentinaXuxue Feng NEGOTIATION
Ricardo S MaletCanadaAmy Elsner PROPOSAL
Leon M TollnerJapanIoni Bowcher NEW
Jeanfrancois Z GlickArgentinaAnna Fali NEGOTIATION
Ashley P RutaItalyAsiya Javayant PROPOSAL
Greenwood A FerenczSpainAnna Fali NEGOTIATION
Adams T InouyeItalyElwin Sharvill PROPOSAL
Kadeem S MorascaSpainElwin Sharvill NEGOTIATION
Antonio E DilliardFranceIvan Magalhaes RENEWAL
Johnson F WieserAustraliaElwin Sharvill PROPOSAL
Aruna S SaylorsBrazilIvan Magalhaes NEGOTIATION
Julie L MacleadItalyIoni Bowcher QUALIFIED
Sinclair A WhobreyCanadaAmy Elsner PROPOSAL
Isabel B OstroskyFranceIvan Magalhaes QUALIFIED
Rodrigues K MaletIndiaElwin Sharvill UNQUALIFIED
Mujtaba F DilliardFranceOnyama Limba QUALIFIED
Emily Z AlbaresGermanyAmy Elsner NEW
Julie Z MorascaItalyAsiya Javayant NEGOTIATION
Aruna H AmigonCanadaElwin Sharvill NEW
Isabel O KolmetzRussiaAsiya Javayant QUALIFIED
Leja F StensethIndiaXuxue Feng NEGOTIATION
Jeanfrancois J DoeRussiaXuxue Feng NEW
Misaki L BriddickItalyAsiya Javayant 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>