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
Ricardo N RulapaughAustraliaAnna Fali NEGOTIATION
Jefferson I GauchoFranceStephen Shaw UNQUALIFIED
Cody U GillianUnited KingdomElwin Sharvill NEGOTIATION
Emily B CaudySpainBernardo Dominic PROPOSAL
Leja T CaudyAustraliaElwin Sharvill QUALIFIED
Julie S SaylorsJapanAsiya Javayant QUALIFIED
James J WieserUnited KingdomXuxue Feng RENEWAL
Maria G RulapaughUnited KingdomAnna Fali RENEWAL
Maria A NickaBrazilBernardo Dominic QUALIFIED
Alejandro B RulapaughArgentinaOnyama Limba UNQUALIFIED
Nicolas Y PerinFranceXuxue Feng UNQUALIFIED
Jones B GlickCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois T PaprockiBrazilIoni Bowcher RENEWAL
Tony U WieserFranceBernardo Dominic NEGOTIATION
Claire N KuskoCanadaOnyama Limba QUALIFIED
Wickens H StockhamGermanyAnna Fali RENEWAL
Jones F RutaRussiaAsiya Javayant NEW
Aruna R StensethBrazilElwin Sharvill UNQUALIFIED
James C SlusarskiArgentinaIvan Magalhaes RENEWAL
Izzy J BologniaUnited KingdomBernardo Dominic RENEWAL
Jennifer C RutaJapanXuxue Feng UNQUALIFIED
Sinclair F VocelkaAustraliaElwin Sharvill NEGOTIATION
Ashley O SchemmerFranceBernardo Dominic QUALIFIED
Aruna X NestleIndiaXuxue Feng NEGOTIATION
Clifford O VocelkaIndiaIoni Bowcher PROPOSAL
Francesco F AmigonJapanBernardo Dominic NEW
Chavez N PoquetteFranceXuxue Feng NEW
Jefferson R MacleadUnited KingdomAsiya Javayant PROPOSAL
Francesco W PoquetteArgentinaElwin Sharvill PROPOSAL
Costa I SergiFranceBernardo Dominic RENEWAL
Francesco S MacleadIndiaXuxue Feng UNQUALIFIED
Adams A DilliardArgentinaStephen Shaw QUALIFIED
Salvatore P BriddickSpainAsiya Javayant RENEWAL
Arvin B ChuiIndiaStephen Shaw NEGOTIATION
Wickens K BowleyIndiaXuxue Feng PROPOSAL
Aruna U PaprockiUnited KingdomXuxue Feng QUALIFIED
Deepesh R MacleadCanadaIvan Magalhaes NEGOTIATION
Juan J RimBrazilAnna Fali RENEWAL
Ashley J PerinJapanBernardo Dominic RENEWAL
Leja P ChuiFranceIvan Magalhaes PROPOSAL
Ashley S VenereFranceIvan Magalhaes PROPOSAL
Maisha L OldroydJapanXuxue Feng RENEWAL
Julie R MaletRussiaAmy Elsner PROPOSAL
Silvio J NickaGermanyStephen Shaw QUALIFIED
Isabel W BriddickBrazilOnyama Limba NEW
Misaki D ShinkoCanadaXuxue Feng PROPOSAL
Clifford Z DoeUnited KingdomIvan Magalhaes RENEWAL
Darci G BologniaJapanXuxue Feng QUALIFIED
Nicolas N SergiSpainElwin Sharvill RENEWAL
Chavez J BowleyUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues J AmigonItalyStephen Shaw RENEWAL
Deepesh I WhobreyItalyOnyama Limba PROPOSAL
Octavia T AlbaresArgentinaStephen Shaw PROPOSAL
Sinclair I RoysterIndiaAmy Elsner NEW
Aruna T MorascaBrazilBernardo Dominic PROPOSAL
Murillo X VocelkaItalyIoni Bowcher PROPOSAL
Alejandro P DilliardIndiaXuxue Feng PROPOSAL
Silvio M MacleadJapanIoni Bowcher QUALIFIED
Salvatore P SaylorsItalyXuxue Feng NEW
Chavez V AlbaresBrazilAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan Q MaletItaly2026-07-11Feltz Printing Service PROPOSAL4Ivan Magalhaes
1001Leja L PoquetteIndia2026-07-06Feltz Printing Service UNQUALIFIED31Onyama Limba
1002Darci P DilliardRussia2026-07-15Truhlar And Truhlar Attys RENEWAL59Ioni Bowcher
1003Cody E DarakjyGermany2026-07-17Truhlar And Truhlar Attys PROPOSAL45Onyama Limba
1004Claire X SaylorsAustralia2026-06-21Chanay, Jeffrey A Esq UNQUALIFIED86Ivan Magalhaes
1005Cody K CampainIndia2026-06-30Feltz Printing Service RENEWAL86Ioni Bowcher
1006David Q MacleadSpain2026-07-06Chemel, James L Cpa NEGOTIATION80Anna Fali
1007David A PerinUnited Kingdom2026-07-07Dorl, James J Esq UNQUALIFIED2Ioni Bowcher
1008Faith Q RulapaughCanada2026-06-22Benton, John B Jr NEGOTIATION37Ivan Magalhaes
1009Maria U SaylorsCanada2026-07-03Commercial Press PROPOSAL25Onyama Limba
1010Kadeem U CaldareraCanada2026-06-26King, Christopher A Esq UNQUALIFIED52Ioni Bowcher
1011Leon K GauchoFrance2026-06-26Benton, John B Jr NEGOTIATION89Xuxue Feng
1012Ricardo N MaletGermany2026-06-27Chanay, Jeffrey A Esq QUALIFIED56Asiya Javayant
1013Ricardo K StensethGermany2026-07-08Benton, John B Jr UNQUALIFIED20Bernardo Dominic
1014Claire K DoeGermany2026-07-04Chanay, Jeffrey A Esq PROPOSAL82Ioni Bowcher
1015Stacey F ChuiJapan2026-06-20Chanay, Jeffrey A Esq RENEWAL30Ivan Magalhaes
1016Deepesh L PaprockiGermany2026-06-26Chapman, Ross E Esq NEW78Elwin Sharvill
1017Jones A RimUnited Kingdom2026-06-25Feltz Printing Service NEW44Stephen Shaw
1018Aruna M RoysterArgentina2026-07-15Feiner Bros QUALIFIED46Ioni Bowcher
1019Sinclair D SchemmerRussia2026-07-13Chemel, James L Cpa RENEWAL25Xuxue Feng
1020Misaki W NestleSpain2026-06-25Dorl, James J Esq UNQUALIFIED2Anna Fali
1021Costa J CaldareraItaly2026-06-18Benton, John B Jr QUALIFIED30Stephen Shaw
1022Greenwood P PaprockiItaly2026-06-25Chanay, Jeffrey A Esq NEGOTIATION28Anna Fali
1023Tony S DilliardBrazil2026-06-29Rousseaux, Michael Esq PROPOSAL33Ivan Magalhaes
1024David M GauchoFrance2026-06-22Chapman, Ross E Esq RENEWAL4Asiya Javayant
1025Smith S MarrierJapan2026-07-07Feltz Printing Service PROPOSAL68Asiya Javayant
1026Claire Q GlickRussia2026-07-06Feltz Printing Service QUALIFIED15Stephen Shaw
1027James M FigeroaJapan2026-06-19Rousseaux, Michael Esq QUALIFIED45Amy Elsner
1028Silvio V TollnerArgentina2026-06-21Commercial Press RENEWAL39Xuxue Feng
1029James J ButtUnited Kingdom2026-06-22Chanay, Jeffrey A Esq NEW62Ivan Magalhaes
1030Aruna I DoeGermany2026-06-18Chemel, James L Cpa NEW46Onyama Limba
1031Clifford M GauchoArgentina2026-07-01Feltz Printing Service RENEWAL53Asiya Javayant
1032Maria V GarufiRussia2026-07-15Morlong Associates QUALIFIED79Onyama Limba
1033Sinclair B NestleBrazil2026-07-12Dorl, James J Esq QUALIFIED65Bernardo Dominic
1034Jeanfrancois S MacleadSpain2026-07-13Morlong Associates NEW95Elwin Sharvill
1035Tony D SchemmerArgentina2026-07-15Morlong Associates RENEWAL47Asiya Javayant
1036Deepesh O WhobreyCanada2026-07-16Chemel, James L Cpa QUALIFIED19Amy Elsner
1037Mayumi S DilliardItaly2026-06-19Chapman, Ross E Esq NEGOTIATION19Asiya Javayant
1038Mujtaba V StensethGermany2026-06-21Chanay, Jeffrey A Esq NEW29Stephen Shaw
1039Maisha F RutaAustralia2026-07-12Dorl, James J Esq NEGOTIATION27Bernardo Dominic
1040Jeanfrancois O CampainJapan2026-06-24Dorl, James J Esq QUALIFIED81Asiya Javayant
1041Ricardo M OldroydCanada2026-07-17Commercial Press PROPOSAL10Anna Fali
1042Sinclair Q KolmetzFrance2026-07-05Printing Dimensions NEGOTIATION99Anna Fali
1043Misaki J StensethAustralia2026-07-01Feltz Printing Service UNQUALIFIED35Bernardo Dominic
1044Adams N FigeroaRussia2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED13Asiya Javayant
1045Alejandro G CaldareraFrance2026-06-28Feiner Bros RENEWAL60Onyama Limba
1046Isabel K SlusarskiAustralia2026-07-13Truhlar And Truhlar Attys NEW96Asiya Javayant
1047Francesco C ShinkoGermany2026-07-13Rangoni Of Florence PROPOSAL80Xuxue Feng
1048Emily G SaylorsItaly2026-06-24Feltz Printing Service UNQUALIFIED87Elwin Sharvill
1049Faith O SlusarskiArgentina2026-06-29Printing Dimensions PROPOSAL25Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Alejandro X PerinUnited KingdomElwin Sharvill NEGOTIATION
Maria S StockhamCanadaStephen Shaw NEW
Faith Z GarufiAustraliaAnna Fali PROPOSAL
Juan P GlickGermanyAnna Fali UNQUALIFIED
Deepesh D BriddickUnited KingdomXuxue Feng NEGOTIATION
Ivar T FigeroaSpainOnyama Limba QUALIFIED
Francesco A CaudyArgentinaAsiya Javayant NEGOTIATION
Cody V MorascaItalyStephen Shaw PROPOSAL
Leon Z WhobreyIndiaElwin Sharvill QUALIFIED
Claire S DilliardGermanyIvan Magalhaes QUALIFIED
Maisha R VenereAustraliaStephen Shaw RENEWAL
Adams U NickaUnited KingdomAnna Fali QUALIFIED
Sinclair B FigeroaAustraliaIvan Magalhaes PROPOSAL
Johnson W GauchoUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois L DarakjyArgentinaOnyama Limba NEW
Murillo R NickaUnited KingdomAmy Elsner QUALIFIED
Aruna W MorascaJapanOnyama Limba UNQUALIFIED
Antonio S BriddickJapanBernardo Dominic NEGOTIATION
Julie T TollnerFranceStephen Shaw NEW
Jones K CaldareraCanadaElwin Sharvill QUALIFIED
Aruna R CampainIndiaBernardo Dominic NEW
Johnson B MorascaGermanyIoni Bowcher QUALIFIED
Mujtaba X BowleyIndiaAnna Fali RENEWAL
Stacey Z FigeroaAustraliaIvan Magalhaes PROPOSAL
Juan W AlbaresBrazilIoni Bowcher RENEWAL
Sinclair Z BowleyIndiaAsiya Javayant UNQUALIFIED
Silvio R PoquetteAustraliaElwin Sharvill NEGOTIATION
Clifford C ChuiBrazilIvan Magalhaes NEW
Sinclair R VenereIndiaElwin Sharvill PROPOSAL
Ricardo E WhobreyGermanyIoni Bowcher NEGOTIATION
Francesco I ButtJapanStephen Shaw NEW
Jones Y DilliardCanadaAnna Fali UNQUALIFIED
Stacey J AmigonAustraliaBernardo Dominic RENEWAL
Chavez C MacleadIndiaXuxue Feng NEW
Izzy D SergiUnited KingdomStephen Shaw RENEWAL
Costa X VocelkaBrazilAnna Fali NEW
Arvin H PerinSpainAsiya Javayant QUALIFIED
Ivar R PoquetteItalyBernardo Dominic NEW
Jennifer X GauchoSpainBernardo Dominic UNQUALIFIED
Rodrigues N ShinkoIndiaIoni Bowcher UNQUALIFIED
Adams C AlbaresGermanyAnna Fali UNQUALIFIED
Darci H TollnerAustraliaElwin Sharvill QUALIFIED
Salvatore T FlosiBrazilIvan Magalhaes UNQUALIFIED
Adams A BologniaBrazilXuxue Feng NEGOTIATION
Isabel Y GarufiItalyXuxue Feng QUALIFIED
Silvio E WieserAustraliaAnna Fali NEGOTIATION
Francesco I VenereSpainOnyama Limba NEGOTIATION
Misaki A SaylorsArgentinaIoni Bowcher RENEWAL
Francesco U DarakjyJapanXuxue Feng RENEWAL
Rodrigues S NickaItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
Darci S Waycott
Mayumi L Kusko
Juan Q Nicka
Leja A Stockham
Murillo Y Garufi
Aruna A Garufi
Maisha F Waycott
Jones A Nicka
Nicolas L Saylors
Aditya O Stockham
Aruna E Saylors
Costa H Figeroa
David Z Inouye
Tony C Stenseth
Clifford W Tollner
Faith O Ruta
Clifford Y Schemmer
James I Briddick
Nicolas U Shinko
Francesco R Kolmetz
Ashley I Kusko
Deepesh O Caldarera
Chavez I Poquette
David M Ferencz
Aruna L Marrier
Cody S Shinko
James W Amigon
Cody B Maclead
Salvatore E Rim
David D Paprocki
Adams Z Whobrey
Darci X Garufi
Isabel K Nicka
Isabel A Ferencz
Aditya P Wieser
Jones C Foller
Kaitlin R Vocelka
Ivar G Schemmer
Stacey X Slusarski
Antonio N Vocelka
Johnson D Sergi
Emily J Whobrey
Ricardo H Iturbide
Izzy K Amigon
Cody P Perin
Chavez G Slusarski
Cody U Malet
David L Kusko
Deepesh J Flosi
Munro M Darakjy
IdCountryDate
1000Italy2026-07-14
1001United Kingdom2026-06-28
1002Canada2026-06-21
1003France2026-07-09
1004Germany2026-06-28
1005Spain2026-06-26
1006France2026-06-27
1007Germany2026-07-11
1008Brazil2026-07-02
1009India2026-06-24
1010Germany2026-07-02
1011Japan2026-07-11
1012Italy2026-07-09
1013Spain2026-07-07
1014Germany2026-07-10
1015Brazil2026-06-22
1016Brazil2026-07-03
1017Australia2026-07-14
1018Japan2026-07-04
1019France2026-06-27
1020India2026-07-13
1021Spain2026-07-09
1022United Kingdom2026-06-27
1023Australia2026-06-25
1024Canada2026-06-25
1025Japan2026-07-09
1026Canada2026-06-19
1027Argentina2026-06-23
1028Canada2026-07-11
1029Spain2026-07-01
1030United Kingdom2026-07-13
1031Italy2026-07-08
1032Australia2026-06-28
1033Italy2026-06-21
1034Canada2026-06-18
1035Italy2026-06-30
1036Spain2026-07-04
1037France2026-06-24
1038Canada2026-07-14
1039Germany2026-07-03
1040Germany2026-06-21
1041Canada2026-06-18
1042Brazil2026-07-11
1043Canada2026-07-04
1044India2026-06-28
1045India2026-07-03
1046Japan2026-06-23
1047France2026-06-29
1048Russia2026-06-28
1049United Kingdom2026-07-15

On-Demand Data

NameIdCountryDate
Morrow S Tollner1000Spain2026-07-17
Jones Y Morasca1001Australia2026-07-02
Leja J Oldroyd1002Spain2026-06-19
Smith Y Perin1003Japan2026-07-08
Leon V Doe1004France2026-07-04
Antonio E Wieser1005France2026-07-11
Alejandro A Bolognia1006Australia2026-06-20
Salvatore W Iturbide1007United Kingdom2026-06-27
Nicolas Z Schemmer1008India2026-07-16
James R Iturbide1009Germany2026-06-20
Johnson C Garufi1010Russia2026-06-19
Julie U Nicka1011Brazil2026-06-23
Tony J Ferencz1012Japan2026-07-16
Tony Z Inouye1013France2026-06-24
Jones Q Albares1014Argentina2026-07-03
Salvatore M Doe1015Argentina2026-07-09
Stacey W Vocelka1016Brazil2026-06-29
Izzy X Waycott1017Argentina2026-06-18
Isabel C Amigon1018Canada2026-07-01
Kaitlin A Nestle1019Brazil2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens E MaletGermanyBernardo Dominic PROPOSAL
Francesco B NickaRussiaIoni Bowcher UNQUALIFIED
Tony H KolmetzGermanyAsiya Javayant NEW
Mayumi I NickaBrazilIvan Magalhaes NEGOTIATION
Ivar Y ChuiRussiaXuxue Feng QUALIFIED
Alejandro O AlbaresCanadaXuxue Feng QUALIFIED
Silvio S SergiArgentinaXuxue Feng PROPOSAL
Isabel Q CaudySpainOnyama Limba UNQUALIFIED
Maisha X CampainCanadaXuxue Feng QUALIFIED
Maisha Z CaldareraBrazilIoni Bowcher NEGOTIATION
Costa U BowleyGermanyIoni Bowcher QUALIFIED
Munro G StockhamFranceAmy Elsner QUALIFIED
Ashley Q MarrierJapanOnyama Limba NEW
Mujtaba I PaprockiAustraliaElwin Sharvill RENEWAL
Juan A DilliardArgentinaStephen Shaw NEGOTIATION
Octavia E CaldareraFranceIoni Bowcher RENEWAL
Antonio K BriddickGermanyStephen Shaw UNQUALIFIED
Salvatore Q RutaRussiaBernardo Dominic QUALIFIED
Ricardo N MarrierIndiaIoni Bowcher RENEWAL
Emily P VenereCanadaElwin Sharvill RENEWAL
Clifford P PoquetteJapanOnyama Limba QUALIFIED
Jefferson S NickaItalyIvan Magalhaes UNQUALIFIED
Costa B DilliardJapanXuxue Feng NEW
Ricardo V MarrierRussiaElwin Sharvill QUALIFIED
Adams L MacleadBrazilXuxue Feng UNQUALIFIED
Francesco X PerinJapanBernardo Dominic UNQUALIFIED
Mujtaba L CaudySpainStephen Shaw RENEWAL
Jones A PerinArgentinaAmy Elsner NEW
Johnson B VenereJapanIvan Magalhaes QUALIFIED
Alejandro H SaylorsUnited KingdomAnna Fali UNQUALIFIED
Faith V ChuiGermanyElwin Sharvill UNQUALIFIED
Kadeem H DarakjyArgentinaOnyama Limba RENEWAL
Octavia V DoeSpainElwin Sharvill RENEWAL
Chavez V GauchoFranceOnyama Limba PROPOSAL
Jennifer E WaycottArgentinaAmy Elsner UNQUALIFIED
Leon H IturbideCanadaElwin Sharvill UNQUALIFIED
Salvatore W GillianJapanElwin Sharvill NEGOTIATION
Mayumi G GarufiSpainBernardo Dominic QUALIFIED
Arvin A DilliardItalyAsiya Javayant NEW
Aruna Q SchemmerCanadaStephen Shaw 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>