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 N RoysterUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois Q AmigonItalyBernardo Dominic PROPOSAL
Maisha A AmigonItalyElwin Sharvill NEW
Izzy I DoeJapanAsiya Javayant UNQUALIFIED
Izzy R BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Juan M ButtArgentinaElwin Sharvill QUALIFIED
Misaki I SergiAustraliaAsiya Javayant UNQUALIFIED
Faith J SergiFranceIvan Magalhaes PROPOSAL
Aruna D SergiRussiaIvan Magalhaes NEW
James Y CaldareraItalyIvan Magalhaes RENEWAL
Maria T WaycottItalyXuxue Feng QUALIFIED
Tony D DoeSpainOnyama Limba NEW
Costa F GlickBrazilOnyama Limba PROPOSAL
Deepesh B GauchoArgentinaAnna Fali QUALIFIED
Izzy U OstroskyIndiaAmy Elsner NEW
Kadeem O PoquetteFranceAsiya Javayant RENEWAL
Clifford K AlbaresIndiaIoni Bowcher PROPOSAL
Jefferson F NestleFranceAsiya Javayant NEGOTIATION
Jones O InouyeAustraliaOnyama Limba UNQUALIFIED
Jeanfrancois D CaldareraAustraliaIvan Magalhaes RENEWAL
Octavia W DilliardGermanyIvan Magalhaes PROPOSAL
Antonio Z RutaAustraliaOnyama Limba PROPOSAL
Izzy C GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Ashley J GauchoSpainBernardo Dominic QUALIFIED
Cody L NestleIndiaAnna Fali RENEWAL
Johnson J RimRussiaXuxue Feng QUALIFIED
Jefferson E KolmetzRussiaAmy Elsner NEGOTIATION
Darci B PaprockiRussiaIoni Bowcher RENEWAL
Cody A DilliardJapanXuxue Feng NEW
Kaitlin S NestleArgentinaBernardo Dominic PROPOSAL
Chavez X WaycottGermanyAsiya Javayant PROPOSAL
Cody Q NestleArgentinaElwin Sharvill NEW
Aditya P DoeArgentinaOnyama Limba NEW
Kaitlin I SchemmerSpainBernardo Dominic UNQUALIFIED
Francesco U RoysterIndiaBernardo Dominic RENEWAL
Sinclair J GarufiIndiaStephen Shaw QUALIFIED
Mujtaba K PaprockiAustraliaOnyama Limba RENEWAL
Wickens Q RimUnited KingdomBernardo Dominic RENEWAL
Murillo U ShinkoFranceStephen Shaw UNQUALIFIED
Rodrigues Q GauchoBrazilAnna Fali RENEWAL
Sinclair Z PerinRussiaOnyama Limba UNQUALIFIED
Chavez O MarrierFranceStephen Shaw NEW
Leon M CaudySpainIoni Bowcher UNQUALIFIED
Clifford F BologniaIndiaOnyama Limba NEW
Greenwood S MorascaCanadaXuxue Feng NEW
Tony G IturbideAustraliaOnyama Limba PROPOSAL
Leja N DoeArgentinaOnyama Limba QUALIFIED
Munro G RoysterUnited KingdomStephen Shaw NEW
Claire T StensethBrazilXuxue Feng UNQUALIFIED
Morrow B DoeRussiaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Munro U ButtRussiaXuxue Feng NEW
Wickens K MaletUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh B RoysterGermanyStephen Shaw PROPOSAL
Clifford T BowleyJapanAmy Elsner QUALIFIED
Ricardo U SchemmerFranceIvan Magalhaes UNQUALIFIED
Julie E InouyeIndiaIoni Bowcher UNQUALIFIED
Arvin P DilliardArgentinaBernardo Dominic NEGOTIATION
Deepesh L FerenczRussiaStephen Shaw QUALIFIED
Adams M IturbideItalyOnyama Limba PROPOSAL
Claire Q WhobreyBrazilStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie G WaycottBrazil2026-08-03Buckley Miller Wright PROPOSAL70Ioni Bowcher
1001Morrow C GauchoAustralia2026-07-15Commercial Press PROPOSAL82Elwin Sharvill
1002Jones U ButtIndia2026-07-29Dorl, James J Esq RENEWAL48Asiya Javayant
1003Francesco Y ChuiCanada2026-07-19Morlong Associates NEGOTIATION4Ioni Bowcher
1004Greenwood O NickaRussia2026-08-06Feiner Bros UNQUALIFIED37Stephen Shaw
1005Jefferson M RutaUnited Kingdom2026-08-01Printing Dimensions PROPOSAL4Ivan Magalhaes
1006Munro L RutaUnited Kingdom2026-07-20Benton, John B Jr QUALIFIED57Asiya Javayant
1007Arvin L FerenczIndia2026-07-12Morlong Associates PROPOSAL31Elwin Sharvill
1008Salvatore C KolmetzGermany2026-07-09Commercial Press NEW53Anna Fali
1009Arvin P DarakjyGermany2026-08-05Feltz Printing Service UNQUALIFIED22Amy Elsner
1010Salvatore D ChuiGermany2026-07-31Rousseaux, Michael Esq NEW71Ioni Bowcher
1011Nicolas Z RulapaughArgentina2026-07-21Chanay, Jeffrey A Esq NEW89Asiya Javayant
1012Munro K FollerUnited Kingdom2026-07-10Printing Dimensions UNQUALIFIED43Stephen Shaw
1013James J NestleItaly2026-07-19Printing Dimensions NEW96Amy Elsner
1014Rodrigues N DoeGermany2026-07-11Rousseaux, Michael Esq NEGOTIATION34Bernardo Dominic
1015Jennifer K OstroskyUnited Kingdom2026-07-22Buckley Miller Wright UNQUALIFIED54Asiya Javayant
1016Murillo I WhobreyBrazil2026-08-02Benton, John B Jr NEW57Bernardo Dominic
1017Wickens M ButtJapan2026-07-22Feltz Printing Service QUALIFIED84Elwin Sharvill
1018Darci Y SlusarskiUnited Kingdom2026-07-10Chemel, James L Cpa PROPOSAL41Ivan Magalhaes
1019Chavez D InouyeUnited Kingdom2026-07-11Morlong Associates RENEWAL40Onyama Limba
1020Costa Q GauchoFrance2026-07-10King, Christopher A Esq QUALIFIED72Onyama Limba
1021Faith M NickaAustralia2026-07-09Chemel, James L Cpa NEW0Ioni Bowcher
1022Darci S SergiSpain2026-07-27Commercial Press QUALIFIED83Elwin Sharvill
1023Smith Q CaudyUnited Kingdom2026-07-14Buckley Miller Wright UNQUALIFIED91Bernardo Dominic
1024Smith V VenereAustralia2026-07-22Printing Dimensions PROPOSAL88Stephen Shaw
1025Maria X RimItaly2026-08-04Buckley Miller Wright PROPOSAL96Amy Elsner
1026Nicolas B AmigonItaly2026-07-29Feiner Bros NEW23Ioni Bowcher
1027Isabel Y RimGermany2026-08-06Morlong Associates NEGOTIATION52Elwin Sharvill
1028Francesco E OldroydArgentina2026-07-18Printing Dimensions NEGOTIATION38Amy Elsner
1029Claire A DoeBrazil2026-07-09Morlong Associates RENEWAL18Amy Elsner
1030Ashley T GarufiIndia2026-07-13Rousseaux, Michael Esq PROPOSAL55Elwin Sharvill
1031Johnson D SergiFrance2026-08-05Rangoni Of Florence RENEWAL84Asiya Javayant
1032David W TollnerUnited Kingdom2026-07-26Chapman, Ross E Esq QUALIFIED59Ivan Magalhaes
1033Smith Y RulapaughAustralia2026-07-09Dorl, James J Esq NEW82Onyama Limba
1034Rodrigues U WhobreyRussia2026-07-17Benton, John B Jr QUALIFIED25Anna Fali
1035James R RimGermany2026-07-22Feiner Bros NEW64Xuxue Feng
1036Costa X IturbideGermany2026-07-26Chemel, James L Cpa QUALIFIED63Amy Elsner
1037Morrow J TollnerCanada2026-08-03Dorl, James J Esq NEGOTIATION44Xuxue Feng
1038Murillo X DarakjyGermany2026-07-21Chanay, Jeffrey A Esq RENEWAL85Anna Fali
1039Mayumi E InouyeUnited Kingdom2026-07-29Morlong Associates NEGOTIATION0Onyama Limba
1040Ricardo T FlosiArgentina2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED89Ioni Bowcher
1041Costa C CaldareraBrazil2026-07-27Rousseaux, Michael Esq PROPOSAL41Asiya Javayant
1042Aditya M KolmetzFrance2026-08-06Commercial Press PROPOSAL50Xuxue Feng
1043Silvio K FlosiArgentina2026-07-09Commercial Press UNQUALIFIED21Amy Elsner
1044Murillo P VenereFrance2026-08-06Commercial Press RENEWAL64Asiya Javayant
1045Ricardo J FigeroaItaly2026-08-02Dorl, James J Esq NEW18Bernardo Dominic
1046Juan O RimFrance2026-07-30Buckley Miller Wright QUALIFIED4Ivan Magalhaes
1047Jones Z InouyeAustralia2026-07-28Feltz Printing Service NEGOTIATION62Ioni Bowcher
1048Leon V WaycottRussia2026-07-31Commercial Press PROPOSAL34Ivan Magalhaes
1049Morrow T BowleyJapan2026-08-01Chanay, Jeffrey A Esq QUALIFIED85Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Misaki C MacleadAustraliaElwin Sharvill NEW
Maria S MaletGermanyOnyama Limba QUALIFIED
David U BowleyBrazilBernardo Dominic PROPOSAL
Faith C BowleyCanadaIoni Bowcher NEW
Misaki S StockhamFranceAnna Fali QUALIFIED
Greenwood C CampainFranceAsiya Javayant NEGOTIATION
Jennifer F GlickItalyStephen Shaw NEGOTIATION
Costa I TollnerArgentinaIoni Bowcher RENEWAL
Stacey B IturbideJapanBernardo Dominic RENEWAL
Johnson T FollerSpainIvan Magalhaes PROPOSAL
Ivar L KuskoFranceAnna Fali QUALIFIED
Ashley J IturbideAustraliaElwin Sharvill NEGOTIATION
Sinclair N FerenczBrazilElwin Sharvill RENEWAL
Silvio U MaletIndiaAsiya Javayant QUALIFIED
Greenwood P FerenczArgentinaIvan Magalhaes NEGOTIATION
Maisha A VenereGermanyOnyama Limba QUALIFIED
Antonio R WieserAustraliaIvan Magalhaes QUALIFIED
Tony W FlosiAustraliaAsiya Javayant UNQUALIFIED
Adams S IturbideAustraliaOnyama Limba QUALIFIED
Jeanfrancois P KolmetzSpainOnyama Limba UNQUALIFIED
Stacey F VenereFranceXuxue Feng NEW
Salvatore A StensethFranceBernardo Dominic UNQUALIFIED
Leon X BologniaGermanyElwin Sharvill NEGOTIATION
Kaitlin W SlusarskiAustraliaAnna Fali NEGOTIATION
Adams L RulapaughGermanyXuxue Feng QUALIFIED
Sinclair W CaldareraRussiaIoni Bowcher PROPOSAL
Nicolas J BowleyBrazilIoni Bowcher NEW
Sinclair W ButtIndiaIvan Magalhaes NEW
Kaitlin Z WieserJapanIvan Magalhaes NEW
Jefferson M SaylorsUnited KingdomXuxue Feng NEW
Johnson V GarufiSpainIoni Bowcher NEGOTIATION
Juan U CaldareraArgentinaIoni Bowcher QUALIFIED
Ashley Q NestleAustraliaOnyama Limba UNQUALIFIED
Maisha W StockhamArgentinaAsiya Javayant RENEWAL
Mujtaba I CaldareraJapanOnyama Limba QUALIFIED
Silvio Y PoquetteJapanAnna Fali NEW
Wickens P GarufiFranceOnyama Limba UNQUALIFIED
Leja S RutaAustraliaAnna Fali NEGOTIATION
Chavez R FigeroaRussiaOnyama Limba NEW
Adams Q BowleySpainAmy Elsner PROPOSAL
Cody F NestleJapanAsiya Javayant NEW
Emily B TollnerGermanyAnna Fali NEW
Ricardo Y GauchoJapanIvan Magalhaes PROPOSAL
Ashley Z SchemmerIndiaAnna Fali UNQUALIFIED
Johnson M GauchoCanadaStephen Shaw PROPOSAL
Alejandro K RulapaughIndiaIoni Bowcher UNQUALIFIED
Johnson E KolmetzSpainAsiya Javayant PROPOSAL
Kaitlin F ButtJapanIoni Bowcher NEGOTIATION
Aruna C MorascaIndiaIoni Bowcher RENEWAL
Stacey R PerinBrazilElwin Sharvill QUALIFIED
Frozen Columns
Name
Leja Z Perin
Aika M Chui
Deepesh B Nicka
Ivar D Wieser
Adams Z Sergi
Stacey S Stenseth
Julie O Amigon
Deepesh S Dilliard
Misaki L Vocelka
Johnson D Butt
Francesco N Ferencz
Morrow T Ruta
Maria C Iturbide
Jennifer P Maclead
Johnson R Rim
Leja I Marrier
Ricardo H Campain
Chavez E Waycott
Arvin O Albares
Smith Q Morasca
Darci R Chui
Juan Z Oldroyd
Kaitlin U Foller
Julie F Paprocki
Maisha C Doe
Smith Z Figeroa
Faith B Chui
Munro F Sergi
Maria T Rim
Juan P Bowley
James R Bowley
Wickens L Ruta
Wickens T Amigon
Emily D Bowley
Adams D Campain
Octavia A Doe
Jennifer Z Ruta
David G Saylors
Nicolas V Kusko
Sinclair T Nicka
Kaitlin A Inouye
Maria C Rulapaugh
Julie G Wieser
Emily W Oldroyd
Silvio W Bolognia
James B Venere
Leja E Wieser
Izzy F Rim
Rodrigues O Briddick
James P Waycott
IdCountryDate
1000Germany2026-07-09
1001France2026-07-29
1002United Kingdom2026-07-25
1003India2026-07-30
1004India2026-07-25
1005Germany2026-07-22
1006Brazil2026-08-02
1007India2026-07-18
1008Argentina2026-08-05
1009Russia2026-07-17
1010Spain2026-07-31
1011Brazil2026-07-31
1012Russia2026-07-12
1013Brazil2026-08-05
1014Japan2026-07-16
1015Japan2026-07-17
1016Germany2026-07-13
1017Australia2026-07-30
1018Spain2026-07-25
1019India2026-07-18
1020India2026-07-13
1021Australia2026-08-06
1022India2026-07-18
1023Brazil2026-07-09
1024India2026-07-11
1025Brazil2026-08-05
1026Russia2026-08-02
1027United Kingdom2026-07-24
1028Germany2026-08-07
1029Canada2026-07-21
1030Japan2026-07-21
1031United Kingdom2026-07-24
1032Germany2026-07-10
1033France2026-07-14
1034Germany2026-07-11
1035Australia2026-07-13
1036Australia2026-07-23
1037Australia2026-08-01
1038Spain2026-07-17
1039United Kingdom2026-08-07
1040France2026-07-12
1041India2026-07-13
1042Spain2026-07-14
1043Spain2026-07-16
1044France2026-07-27
1045Germany2026-07-28
1046Spain2026-08-01
1047Spain2026-07-11
1048Australia2026-07-16
1049France2026-07-30

On-Demand Data

NameIdCountryDate
Aika L Butt1000Japan2026-07-29
Alejandro U Oldroyd1001France2026-07-15
Mayumi B Poquette1002Australia2026-08-03
Arvin G Albares1003Japan2026-07-29
Aika J Royster1004United Kingdom2026-07-29
Greenwood I Rulapaugh1005Canada2026-08-06
Ivar U Rim1006Russia2026-08-01
Jefferson A Sergi1007Germany2026-07-27
Ashley Y Butt1008United Kingdom2026-07-17
Isabel R Nestle1009Australia2026-07-25
Sinclair K Albares1010Argentina2026-07-18
Smith S Paprocki1011Australia2026-08-01
James O Tollner1012Brazil2026-07-30
Clifford N Doe1013Brazil2026-07-09
Ivar V Paprocki1014Italy2026-08-02
Greenwood D Stenseth1015Brazil2026-07-27
Jefferson T Malet1016Brazil2026-07-31
Chavez N Rulapaugh1017Italy2026-07-24
Chavez O Nestle1018Australia2026-07-09
David F Butt1019India2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Y FlosiIndiaStephen Shaw NEW
Rodrigues R GarufiSpainOnyama Limba PROPOSAL
Julie D VocelkaFranceIoni Bowcher NEGOTIATION
Octavia D FlosiBrazilStephen Shaw QUALIFIED
Stacey G MacleadRussiaBernardo Dominic PROPOSAL
Maisha L InouyeUnited KingdomOnyama Limba QUALIFIED
Faith E StockhamIndiaIvan Magalhaes UNQUALIFIED
David X GauchoAustraliaAmy Elsner NEW
Adams A GillianUnited KingdomIvan Magalhaes NEW
Kadeem T ChuiBrazilAnna Fali UNQUALIFIED
Tony U TollnerIndiaAsiya Javayant QUALIFIED
Kaitlin B MaletJapanAmy Elsner NEGOTIATION
Greenwood C WaycottUnited KingdomXuxue Feng NEGOTIATION
Leja C AlbaresAustraliaAsiya Javayant NEGOTIATION
Emily J FlosiItalyAnna Fali QUALIFIED
Izzy L RoysterAustraliaAnna Fali QUALIFIED
David V NickaFranceAmy Elsner NEGOTIATION
Faith X CaldareraAustraliaOnyama Limba NEGOTIATION
Maisha X PerinRussiaElwin Sharvill NEGOTIATION
Stacey C CaudyUnited KingdomBernardo Dominic QUALIFIED
Emily D ButtArgentinaIoni Bowcher QUALIFIED
Deepesh P DoeRussiaBernardo Dominic NEW
Nicolas R InouyeGermanyStephen Shaw PROPOSAL
James M MaletUnited KingdomAnna Fali NEGOTIATION
Salvatore G StensethItalyBernardo Dominic NEW
Wickens C PoquetteBrazilElwin Sharvill PROPOSAL
Nicolas H BowleyItalyStephen Shaw QUALIFIED
Chavez B TollnerRussiaIoni Bowcher UNQUALIFIED
Jennifer C KolmetzCanadaAnna Fali PROPOSAL
Chavez Z PerinUnited KingdomXuxue Feng PROPOSAL
Alejandro F OstroskyUnited KingdomAmy Elsner NEGOTIATION
Deepesh H PerinSpainAmy Elsner QUALIFIED
Smith P VocelkaAustraliaAnna Fali RENEWAL
Leon C NestleItalyBernardo Dominic NEW
Tony W MacleadCanadaBernardo Dominic QUALIFIED
Greenwood Y WhobreyItalyXuxue Feng PROPOSAL
Darci F AmigonItalyStephen Shaw UNQUALIFIED
Antonio G KuskoCanadaIoni Bowcher RENEWAL
Alejandro U DarakjyAustraliaAnna Fali QUALIFIED
Silvio D RutaRussiaElwin Sharvill 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>