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
Mayumi Y SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Faith L FigeroaRussiaBernardo Dominic NEGOTIATION
Nicolas J WaycottRussiaAsiya Javayant QUALIFIED
Leja V DoeGermanyIoni Bowcher UNQUALIFIED
Juan J WieserJapanAnna Fali RENEWAL
Mujtaba L FollerRussiaAnna Fali PROPOSAL
Juan D SaylorsGermanyStephen Shaw PROPOSAL
Ivar Q AlbaresBrazilAsiya Javayant NEW
Juan U AlbaresIndiaOnyama Limba NEW
Faith H RulapaughIndiaStephen Shaw PROPOSAL
Kadeem Z CampainItalyBernardo Dominic PROPOSAL
Cody H MorascaCanadaAnna Fali UNQUALIFIED
Maria B WieserAustraliaAsiya Javayant QUALIFIED
James J GillianCanadaElwin Sharvill UNQUALIFIED
Costa J AlbaresItalyAmy Elsner NEGOTIATION
Munro O MacleadGermanyIoni Bowcher PROPOSAL
Jeanfrancois S StockhamRussiaIvan Magalhaes QUALIFIED
Ivar W SlusarskiGermanyAnna Fali UNQUALIFIED
Antonio W KuskoSpainElwin Sharvill RENEWAL
Juan T ShinkoItalyElwin Sharvill NEW
Cody Y DarakjyUnited KingdomAnna Fali NEW
Francesco J RutaGermanyBernardo Dominic NEW
Cody A NickaUnited KingdomXuxue Feng NEW
Julie O MorascaArgentinaAmy Elsner PROPOSAL
Sinclair D TollnerJapanIvan Magalhaes UNQUALIFIED
Faith C ShinkoJapanOnyama Limba QUALIFIED
Isabel R NickaItalyElwin Sharvill NEGOTIATION
Jones G OstroskyFranceStephen Shaw NEGOTIATION
Jones C VocelkaArgentinaElwin Sharvill PROPOSAL
Jeanfrancois G KolmetzFranceOnyama Limba NEGOTIATION
Jefferson A OldroydCanadaIvan Magalhaes UNQUALIFIED
Jones N BriddickIndiaAmy Elsner QUALIFIED
Chavez L MaletBrazilOnyama Limba NEGOTIATION
Jeanfrancois K FollerIndiaIoni Bowcher QUALIFIED
Kadeem D DarakjySpainStephen Shaw NEW
Adams X NickaIndiaIvan Magalhaes PROPOSAL
Jeanfrancois J AmigonSpainAnna Fali NEGOTIATION
Emily O MaletAustraliaOnyama Limba QUALIFIED
Octavia U PoquetteIndiaAnna Fali QUALIFIED
Alejandro X AlbaresBrazilIvan Magalhaes NEW
Izzy L TollnerSpainBernardo Dominic UNQUALIFIED
Leon I ButtBrazilIvan Magalhaes NEGOTIATION
Ashley I CampainJapanElwin Sharvill NEW
Nicolas E OldroydIndiaIoni Bowcher RENEWAL
Arvin N BowleySpainElwin Sharvill NEGOTIATION
Francesco S FlosiGermanyAnna Fali PROPOSAL
Stacey J SaylorsAustraliaElwin Sharvill RENEWAL
Clifford A FigeroaCanadaAsiya Javayant PROPOSAL
Ricardo E GarufiUnited KingdomAmy Elsner NEW
Kaitlin C SlusarskiUnited KingdomStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya W CaldareraUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois S SaylorsCanadaBernardo Dominic NEGOTIATION
Jefferson Z ChuiRussiaBernardo Dominic RENEWAL
Jefferson N GlickGermanyAmy Elsner RENEWAL
Isabel A FlosiBrazilAsiya Javayant NEW
Stacey Z RoysterGermanyElwin Sharvill NEW
Leja O InouyeFranceAsiya Javayant NEW
Jennifer Q SergiAustraliaStephen Shaw RENEWAL
Salvatore R DilliardRussiaAnna Fali UNQUALIFIED
Izzy O NestleJapanBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois P WhobreyBrazil2026-07-17Rousseaux, Michael Esq PROPOSAL79Amy Elsner
1001Alejandro H OstroskyJapan2026-07-14Chemel, James L Cpa PROPOSAL92Ioni Bowcher
1002Maria A KolmetzItaly2026-06-26Rangoni Of Florence NEGOTIATION58Amy Elsner
1003Costa F MarrierArgentina2026-07-11Morlong Associates PROPOSAL41Stephen Shaw
1004Clifford O VocelkaIndia2026-07-16Buckley Miller Wright NEW36Ivan Magalhaes
1005Ricardo R OstroskyArgentina2026-07-18Dorl, James J Esq UNQUALIFIED31Asiya Javayant
1006Darci E RulapaughBrazil2026-07-10Morlong Associates PROPOSAL29Xuxue Feng
1007Johnson A ShinkoAustralia2026-06-26Dorl, James J Esq NEGOTIATION63Elwin Sharvill
1008Juan N PoquetteGermany2026-07-07Commercial Press NEGOTIATION63Bernardo Dominic
1009Stacey A WieserGermany2026-06-28Benton, John B Jr NEW6Onyama Limba
1010James G BriddickAustralia2026-07-14Chemel, James L Cpa PROPOSAL11Ioni Bowcher
1011David C ChuiIndia2026-07-03King, Christopher A Esq NEGOTIATION96Ivan Magalhaes
1012Stacey Q InouyeAustralia2026-07-19Rousseaux, Michael Esq PROPOSAL19Stephen Shaw
1013Morrow T MacleadGermany2026-07-16Rousseaux, Michael Esq PROPOSAL67Onyama Limba
1014Izzy B AmigonUnited Kingdom2026-07-01Rangoni Of Florence RENEWAL31Bernardo Dominic
1015Kadeem U DilliardGermany2026-06-28Dorl, James J Esq NEW7Ivan Magalhaes
1016Rodrigues F ButtCanada2026-07-21Commercial Press NEW73Ivan Magalhaes
1017Julie D ButtBrazil2026-07-17Commercial Press UNQUALIFIED55Anna Fali
1018Claire A FigeroaUnited Kingdom2026-07-19Rangoni Of Florence UNQUALIFIED10Elwin Sharvill
1019Munro G DarakjyIndia2026-07-11Commercial Press NEW1Elwin Sharvill
1020Maisha T RutaRussia2026-07-03Rangoni Of Florence NEW96Stephen Shaw
1021Aruna D SlusarskiCanada2026-06-23Chanay, Jeffrey A Esq QUALIFIED67Amy Elsner
1022Smith H BriddickFrance2026-07-16Rousseaux, Michael Esq UNQUALIFIED11Elwin Sharvill
1023Emily J RulapaughUnited Kingdom2026-06-24Rousseaux, Michael Esq QUALIFIED3Stephen Shaw
1024Morrow P KolmetzIndia2026-07-13Rousseaux, Michael Esq NEW69Amy Elsner
1025Kadeem B VenereUnited Kingdom2026-07-04Rousseaux, Michael Esq UNQUALIFIED48Ioni Bowcher
1026Maria X GarufiUnited Kingdom2026-07-01Printing Dimensions NEW74Elwin Sharvill
1027Claire X DoeFrance2026-07-21Printing Dimensions UNQUALIFIED44Anna Fali
1028Costa D CaldareraCanada2026-07-05Rousseaux, Michael Esq PROPOSAL68Ioni Bowcher
1029Arvin U FigeroaFrance2026-07-02Printing Dimensions PROPOSAL11Onyama Limba
1030Jeanfrancois Y AmigonCanada2026-06-24King, Christopher A Esq NEGOTIATION48Onyama Limba
1031Darci R AmigonAustralia2026-07-08Morlong Associates NEW54Onyama Limba
1032Faith T PerinJapan2026-07-14Feiner Bros QUALIFIED53Xuxue Feng
1033Julie W FlosiItaly2026-06-28Chemel, James L Cpa RENEWAL96Elwin Sharvill
1034Ricardo P BologniaBrazil2026-06-24Feiner Bros RENEWAL77Onyama Limba
1035Julie B SergiArgentina2026-06-23Rousseaux, Michael Esq RENEWAL86Asiya Javayant
1036Sinclair T AmigonAustralia2026-07-14Chemel, James L Cpa NEW77Anna Fali
1037Smith J RimGermany2026-07-08Printing Dimensions QUALIFIED53Amy Elsner
1038Silvio V NickaIndia2026-07-18Rousseaux, Michael Esq UNQUALIFIED30Amy Elsner
1039Costa T ButtSpain2026-07-11Chapman, Ross E Esq NEGOTIATION91Onyama Limba
1040Julie G OldroydRussia2026-06-26Commercial Press NEW49Bernardo Dominic
1041Mayumi X VenereBrazil2026-07-08Chanay, Jeffrey A Esq QUALIFIED6Amy Elsner
1042Ashley O KolmetzAustralia2026-07-01Dorl, James J Esq UNQUALIFIED42Bernardo Dominic
1043Julie W PaprockiGermany2026-06-22Morlong Associates PROPOSAL73Xuxue Feng
1044Alejandro B BowleyBrazil2026-07-17Feltz Printing Service NEGOTIATION78Bernardo Dominic
1045Ashley N InouyeSpain2026-07-12Printing Dimensions NEGOTIATION22Elwin Sharvill
1046Antonio R FerenczJapan2026-07-08Buckley Miller Wright NEGOTIATION43Onyama Limba
1047Ashley O DarakjyFrance2026-07-15Rangoni Of Florence NEW75Anna Fali
1048Ricardo D CampainJapan2026-07-20Feiner Bros QUALIFIED90Onyama Limba
1049Deepesh B OstroskyCanada2026-07-12Chemel, James L Cpa RENEWAL75Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Wickens U CaudyFranceAsiya Javayant QUALIFIED
Jeanfrancois Q KolmetzArgentinaBernardo Dominic NEGOTIATION
Octavia S FollerCanadaElwin Sharvill PROPOSAL
Stacey W KuskoItalyStephen Shaw NEW
Jones Y DarakjyCanadaIvan Magalhaes NEGOTIATION
Ivar Y WaycottUnited KingdomAmy Elsner UNQUALIFIED
Greenwood K OldroydBrazilAmy Elsner NEGOTIATION
Octavia Q RutaFranceStephen Shaw NEW
Costa D BriddickRussiaOnyama Limba RENEWAL
Jeanfrancois Z BologniaGermanyIvan Magalhaes NEGOTIATION
Stacey E MarrierUnited KingdomOnyama Limba NEGOTIATION
Adams N NickaItalyIoni Bowcher PROPOSAL
Kadeem W VenereItalyXuxue Feng UNQUALIFIED
Cody E VocelkaRussiaAsiya Javayant RENEWAL
Claire K FlosiJapanStephen Shaw QUALIFIED
Jennifer B VenereJapanOnyama Limba NEW
Claire Q PaprockiArgentinaElwin Sharvill NEW
Munro M StensethSpainAmy Elsner NEW
Stacey Z GlickCanadaIvan Magalhaes RENEWAL
Maisha C RoysterJapanBernardo Dominic QUALIFIED
Emily A DoeSpainXuxue Feng PROPOSAL
Ricardo O DarakjyArgentinaBernardo Dominic NEGOTIATION
Tony X PoquetteFranceAnna Fali PROPOSAL
Costa G StockhamGermanyIvan Magalhaes RENEWAL
Aruna M KuskoArgentinaXuxue Feng RENEWAL
Munro C KolmetzSpainIoni Bowcher NEGOTIATION
Jones D MacleadFranceBernardo Dominic NEGOTIATION
Silvio A VocelkaSpainElwin Sharvill RENEWAL
Leon I SergiIndiaStephen Shaw UNQUALIFIED
Leon J RutaIndiaAnna Fali QUALIFIED
Arvin Y AmigonJapanAmy Elsner PROPOSAL
Rodrigues K FigeroaFranceBernardo Dominic QUALIFIED
Isabel E PerinIndiaBernardo Dominic UNQUALIFIED
Julie E BowleyIndiaElwin Sharvill NEW
Francesco M PaprockiGermanyIoni Bowcher UNQUALIFIED
Mayumi W MacleadSpainIoni Bowcher QUALIFIED
Munro Q RulapaughAustraliaStephen Shaw NEGOTIATION
Ricardo T BriddickUnited KingdomStephen Shaw UNQUALIFIED
Wickens I KolmetzSpainStephen Shaw NEGOTIATION
David L TollnerCanadaStephen Shaw UNQUALIFIED
Alejandro Q BriddickJapanAsiya Javayant RENEWAL
Kaitlin Y BriddickArgentinaIvan Magalhaes UNQUALIFIED
Ricardo L GlickGermanyElwin Sharvill RENEWAL
Leja M SchemmerItalyAmy Elsner NEW
Aditya V TollnerBrazilStephen Shaw UNQUALIFIED
James Y GlickAustraliaOnyama Limba PROPOSAL
Costa E RutaGermanyOnyama Limba NEGOTIATION
Leja W PoquetteRussiaAmy Elsner NEGOTIATION
Cody A BriddickRussiaAnna Fali NEGOTIATION
Maisha D TollnerGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Kaitlin Q Nestle
Kaitlin D Royster
Cody G Flosi
Clifford Z Kusko
Aruna R Dilliard
Alejandro N Figeroa
Tony C Waycott
Tony S Shinko
Kaitlin X Tollner
Ashley N Caudy
Mayumi Z Perin
Nicolas E Wieser
Faith M Darakjy
Claire B Marrier
Kadeem R Vocelka
Ricardo M Iturbide
Faith Q Nicka
Morrow C Nestle
Munro O Ferencz
Leon N Shinko
Arvin I Whobrey
Kaitlin Z Garufi
Rodrigues G Caldarera
Salvatore L Butt
Alejandro T Saylors
Clifford K Rulapaugh
Clifford C Campain
Tony X Rulapaugh
Alejandro E Nestle
Aditya T Vocelka
Maria U Doe
Munro R Caudy
Aika O Maclead
Ivar O Saylors
Octavia W Dilliard
Stacey V Iturbide
Isabel B Caldarera
Isabel R Glick
Aditya D Kolmetz
Cody Y Stockham
Leon T Darakjy
Murillo T Figeroa
Alejandro D Paprocki
Greenwood B Doe
Kadeem Q Bolognia
Deepesh P Venere
Wickens Z Ostrosky
Julie N Chui
Maria E Malet
Juan E Ferencz
IdCountryDate
1000Japan2026-07-17
1001France2026-07-08
1002Russia2026-07-11
1003France2026-07-17
1004France2026-06-22
1005Brazil2026-07-15
1006Russia2026-07-04
1007Japan2026-07-18
1008Canada2026-06-29
1009Brazil2026-07-20
1010Canada2026-07-05
1011Australia2026-06-24
1012India2026-06-26
1013Germany2026-06-23
1014Brazil2026-07-10
1015Brazil2026-06-23
1016Russia2026-07-09
1017Brazil2026-07-21
1018Russia2026-07-16
1019France2026-06-25
1020India2026-06-26
1021Japan2026-07-10
1022Australia2026-06-30
1023Germany2026-06-30
1024United Kingdom2026-07-21
1025Japan2026-07-11
1026Russia2026-07-17
1027Spain2026-07-20
1028Argentina2026-07-15
1029Argentina2026-06-28
1030Italy2026-07-08
1031Argentina2026-07-07
1032Canada2026-06-22
1033Germany2026-07-09
1034Australia2026-07-06
1035Canada2026-07-10
1036Russia2026-06-27
1037Australia2026-07-11
1038Canada2026-06-28
1039Canada2026-07-19
1040Australia2026-07-05
1041France2026-07-04
1042Russia2026-06-26
1043Italy2026-07-19
1044Spain2026-06-29
1045Spain2026-07-07
1046Italy2026-07-11
1047Germany2026-06-23
1048Brazil2026-07-03
1049France2026-07-18

On-Demand Data

NameIdCountryDate
Stacey V Ruta1000United Kingdom2026-07-14
Stacey Q Briddick1001India2026-06-23
Emily I Waycott1002Australia2026-06-22
Isabel R Caudy1003France2026-07-04
Munro Z Ferencz1004Argentina2026-07-12
Mayumi H Rulapaugh1005France2026-06-22
Arvin L Ruta1006United Kingdom2026-07-02
Leon J Bowley1007Argentina2026-07-02
Arvin R Chui1008Brazil2026-06-24
Salvatore J Waycott1009Italy2026-06-26
Leon A Ruta1010Spain2026-06-29
Cody Y Flosi1011France2026-06-30
Faith E Briddick1012Spain2026-07-18
Isabel G Caudy1013Russia2026-07-06
Jones P Saylors1014Brazil2026-06-26
Mujtaba O Darakjy1015India2026-06-29
Alejandro B Nestle1016France2026-07-09
Francesco L Kusko1017Italy2026-06-27
Kadeem D Maclead1018France2026-07-12
Adams K Paprocki1019India2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer C MaletJapanAsiya Javayant UNQUALIFIED
Adams G VocelkaAustraliaElwin Sharvill UNQUALIFIED
David E VocelkaJapanOnyama Limba NEW
Kaitlin F GlickBrazilOnyama Limba RENEWAL
Emily Z GarufiBrazilAsiya Javayant RENEWAL
Deepesh W SchemmerSpainOnyama Limba QUALIFIED
Aika J BriddickCanadaAsiya Javayant QUALIFIED
Leon X AlbaresIndiaIvan Magalhaes NEW
Wickens M OstroskyIndiaElwin Sharvill QUALIFIED
James E GlickJapanIvan Magalhaes NEW
Arvin X VenereGermanyAsiya Javayant UNQUALIFIED
Aika U NickaFranceAnna Fali RENEWAL
Cody N FigeroaUnited KingdomAsiya Javayant NEW
Mayumi Y NickaSpainIvan Magalhaes UNQUALIFIED
Aruna F DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh E PoquetteRussiaOnyama Limba NEW
Emily A WieserFranceAsiya Javayant UNQUALIFIED
Chavez F PoquetteSpainStephen Shaw UNQUALIFIED
Claire M DarakjyJapanAsiya Javayant PROPOSAL
Clifford C TollnerItalyAnna Fali NEGOTIATION
Leja I DarakjyGermanyBernardo Dominic PROPOSAL
Jeanfrancois Q NickaCanadaAmy Elsner UNQUALIFIED
Ashley N BologniaFranceIvan Magalhaes UNQUALIFIED
Morrow O NestleAustraliaStephen Shaw UNQUALIFIED
Costa C NickaAustraliaIvan Magalhaes QUALIFIED
Murillo R ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Faith S WaycottUnited KingdomElwin Sharvill NEGOTIATION
Octavia I SlusarskiAustraliaStephen Shaw NEGOTIATION
Tony P RimItalyAsiya Javayant PROPOSAL
Isabel A NestleArgentinaOnyama Limba NEGOTIATION
Aruna F InouyeAustraliaXuxue Feng QUALIFIED
Ricardo D MarrierBrazilAnna Fali UNQUALIFIED
James G CampainUnited KingdomAmy Elsner NEGOTIATION
Costa C InouyeIndiaOnyama Limba UNQUALIFIED
Emily A MacleadArgentinaAnna Fali UNQUALIFIED
Jefferson S MaletSpainAsiya Javayant PROPOSAL
Julie Q InouyeRussiaAmy Elsner NEW
Leon M FlosiBrazilElwin Sharvill NEGOTIATION
Arvin R AlbaresGermanyIoni Bowcher NEGOTIATION
David V InouyeFranceBernardo Dominic 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>