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
Aruna X CampainBrazilStephen Shaw NEGOTIATION
Isabel C GlickRussiaAmy Elsner NEW
Francesco A MorascaRussiaElwin Sharvill QUALIFIED
Mujtaba B DarakjyIndiaAnna Fali QUALIFIED
Morrow A GlickIndiaElwin Sharvill QUALIFIED
Juan Y NickaCanadaIoni Bowcher UNQUALIFIED
Kaitlin E DarakjyAustraliaBernardo Dominic PROPOSAL
Jennifer R SergiArgentinaAsiya Javayant RENEWAL
Mayumi V GlickArgentinaElwin Sharvill PROPOSAL
Deepesh P AlbaresArgentinaBernardo Dominic NEGOTIATION
Emily Q NestleFranceAmy Elsner NEW
Jennifer R NestleArgentinaIvan Magalhaes NEW
Sinclair M CaudyFranceAnna Fali PROPOSAL
Francesco E CaldareraCanadaIvan Magalhaes UNQUALIFIED
Ashley G WieserCanadaAsiya Javayant RENEWAL
Silvio N BriddickSpainBernardo Dominic PROPOSAL
Maria J SaylorsFranceAnna Fali RENEWAL
Julie H BologniaItalyAmy Elsner PROPOSAL
Rodrigues S InouyeArgentinaAsiya Javayant NEW
Kaitlin A MaletJapanXuxue Feng QUALIFIED
James U DarakjyUnited KingdomStephen Shaw PROPOSAL
Salvatore F ButtArgentinaIvan Magalhaes QUALIFIED
Kaitlin K RutaRussiaBernardo Dominic RENEWAL
Misaki G AlbaresArgentinaElwin Sharvill RENEWAL
David A MacleadAustraliaXuxue Feng PROPOSAL
Ivar O IturbideRussiaIvan Magalhaes RENEWAL
Chavez D RutaGermanyAsiya Javayant QUALIFIED
Alejandro D MaletUnited KingdomOnyama Limba NEW
Nicolas A NickaBrazilXuxue Feng NEW
Silvio T FerenczUnited KingdomStephen Shaw NEGOTIATION
Aruna B SlusarskiSpainAsiya Javayant NEW
Isabel D SchemmerRussiaAsiya Javayant UNQUALIFIED
Nicolas W AlbaresFranceOnyama Limba UNQUALIFIED
Misaki W RimAustraliaElwin Sharvill NEW
Ashley Z MarrierItalyElwin Sharvill QUALIFIED
Murillo X SaylorsGermanyIvan Magalhaes NEW
Clifford O MorascaIndiaAmy Elsner NEGOTIATION
Nicolas V IturbideFranceAsiya Javayant RENEWAL
Arvin Y GarufiAustraliaAsiya Javayant UNQUALIFIED
Tony D BowleyFranceAsiya Javayant NEGOTIATION
Darci T MacleadAustraliaBernardo Dominic NEW
Clifford O FigeroaJapanAnna Fali QUALIFIED
Nicolas O RimRussiaAmy Elsner RENEWAL
Wickens W StensethFranceIvan Magalhaes RENEWAL
Jefferson V RimSpainAnna Fali PROPOSAL
Nicolas D KolmetzJapanAmy Elsner PROPOSAL
Greenwood B NestleIndiaXuxue Feng QUALIFIED
Sinclair N DoeGermanyBernardo Dominic NEW
Leon T DarakjyJapanIvan Magalhaes RENEWAL
Ricardo B RulapaughSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair S MorascaBrazilBernardo Dominic NEW
Julie B FigeroaIndiaIoni Bowcher PROPOSAL
Greenwood B AmigonUnited KingdomIoni Bowcher QUALIFIED
Emily Y InouyeIndiaBernardo Dominic PROPOSAL
Alejandro A DarakjySpainAsiya Javayant RENEWAL
Faith H CaldareraCanadaIvan Magalhaes QUALIFIED
Darci D StockhamGermanyBernardo Dominic PROPOSAL
James T RimRussiaBernardo Dominic PROPOSAL
Darci S DarakjyItalyStephen Shaw NEGOTIATION
James S PoquetteSpainAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy K GillianItaly2026-07-01Commercial Press PROPOSAL0Anna Fali
1001Jeanfrancois A PerinIndia2026-06-22Dorl, James J Esq PROPOSAL84Onyama Limba
1002Ricardo Q MaletArgentina2026-06-14Dorl, James J Esq QUALIFIED1Ioni Bowcher
1003Tony Z GillianUnited Kingdom2026-06-13Rangoni Of Florence NEGOTIATION12Xuxue Feng
1004Julie T NickaAustralia2026-07-06Printing Dimensions QUALIFIED5Amy Elsner
1005Munro T BriddickArgentina2026-06-08Rousseaux, Michael Esq UNQUALIFIED6Ioni Bowcher
1006Stacey J MaletJapan2026-06-27Truhlar And Truhlar Attys NEW59Asiya Javayant
1007David G FlosiCanada2026-06-26Chemel, James L Cpa UNQUALIFIED90Ivan Magalhaes
1008Leon R PerinUnited Kingdom2026-06-23Feiner Bros UNQUALIFIED5Amy Elsner
1009Nicolas M RimBrazil2026-06-17Buckley Miller Wright NEGOTIATION29Bernardo Dominic
1010Sinclair G MarrierAustralia2026-06-09Dorl, James J Esq UNQUALIFIED30Onyama Limba
1011Murillo N RulapaughIndia2026-06-26Rangoni Of Florence RENEWAL80Amy Elsner
1012Isabel L FlosiJapan2026-06-26Rousseaux, Michael Esq UNQUALIFIED33Ivan Magalhaes
1013Francesco H NestleSpain2026-06-21Chapman, Ross E Esq NEW15Amy Elsner
1014Octavia N FlosiSpain2026-06-24Feiner Bros RENEWAL92Ioni Bowcher
1015Morrow V MaletCanada2026-06-11Chapman, Ross E Esq RENEWAL80Xuxue Feng
1016Mujtaba P StensethJapan2026-06-10Printing Dimensions NEGOTIATION95Ivan Magalhaes
1017Misaki Q BologniaAustralia2026-06-23Truhlar And Truhlar Attys RENEWAL75Bernardo Dominic
1018Juan C SchemmerAustralia2026-07-07Dorl, James J Esq NEW55Elwin Sharvill
1019Leja B NestleIndia2026-06-11Commercial Press PROPOSAL80Xuxue Feng
1020Wickens F OldroydIndia2026-06-27Feiner Bros RENEWAL26Stephen Shaw
1021Jefferson N StockhamItaly2026-06-14Feltz Printing Service RENEWAL59Stephen Shaw
1022Kaitlin L ButtAustralia2026-06-08Printing Dimensions QUALIFIED43Anna Fali
1023Izzy O GillianArgentina2026-06-18Truhlar And Truhlar Attys PROPOSAL95Amy Elsner
1024Octavia F FigeroaArgentina2026-06-22Truhlar And Truhlar Attys PROPOSAL64Anna Fali
1025Chavez W GarufiIndia2026-06-25Rousseaux, Michael Esq PROPOSAL49Anna Fali
1026Julie M SergiArgentina2026-06-20Chemel, James L Cpa QUALIFIED34Xuxue Feng
1027Ashley T NickaItaly2026-07-04Morlong Associates RENEWAL46Ioni Bowcher
1028Murillo N IturbideArgentina2026-06-08Chapman, Ross E Esq PROPOSAL88Xuxue Feng
1029Ivar J FlosiCanada2026-06-17Rousseaux, Michael Esq PROPOSAL95Stephen Shaw
1030Arvin E BowleyIndia2026-06-25Truhlar And Truhlar Attys NEGOTIATION25Xuxue Feng
1031Salvatore A BowleySpain2026-06-16Truhlar And Truhlar Attys UNQUALIFIED41Bernardo Dominic
1032Maria E GarufiRussia2026-06-28Printing Dimensions PROPOSAL78Ivan Magalhaes
1033Emily P RutaIndia2026-07-04Rousseaux, Michael Esq NEW44Elwin Sharvill
1034Johnson H GillianSpain2026-06-10Feltz Printing Service NEW75Amy Elsner
1035Aruna V BologniaSpain2026-06-10Chemel, James L Cpa RENEWAL65Bernardo Dominic
1036Salvatore C KuskoRussia2026-06-22Feltz Printing Service RENEWAL39Anna Fali
1037Ricardo W KuskoAustralia2026-07-07Morlong Associates QUALIFIED15Bernardo Dominic
1038Jones X SlusarskiIndia2026-07-01Chapman, Ross E Esq RENEWAL90Anna Fali
1039Stacey Q WaycottItaly2026-06-24Buckley Miller Wright NEW32Bernardo Dominic
1040Aruna U PaprockiAustralia2026-06-14Dorl, James J Esq RENEWAL1Ioni Bowcher
1041Jeanfrancois P SlusarskiSpain2026-07-06King, Christopher A Esq PROPOSAL47Ivan Magalhaes
1042Jefferson M MarrierGermany2026-06-14Commercial Press NEW36Ioni Bowcher
1043Faith J InouyeArgentina2026-06-27Chemel, James L Cpa RENEWAL30Ioni Bowcher
1044Morrow T SergiIndia2026-06-29Chanay, Jeffrey A Esq NEW30Stephen Shaw
1045Alejandro Y MaletFrance2026-06-17Buckley Miller Wright NEW10Ioni Bowcher
1046Darci B DarakjySpain2026-07-02Morlong Associates NEGOTIATION51Ivan Magalhaes
1047Izzy S WieserFrance2026-06-27Feiner Bros NEW97Bernardo Dominic
1048Jefferson W ChuiBrazil2026-06-18Commercial Press UNQUALIFIED94Amy Elsner
1049Maria W StensethUnited Kingdom2026-07-05King, Christopher A Esq PROPOSAL84Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ashley M BologniaGermanyIoni Bowcher UNQUALIFIED
Rodrigues B TollnerFranceIvan Magalhaes RENEWAL
Aruna V MarrierJapanElwin Sharvill UNQUALIFIED
Costa M DarakjyGermanyIvan Magalhaes NEW
Julie Q MacleadGermanyStephen Shaw NEGOTIATION
Isabel V PerinAustraliaAnna Fali NEGOTIATION
Morrow X VenereJapanAnna Fali PROPOSAL
David V SergiIndiaXuxue Feng NEGOTIATION
Cody L DoeJapanAmy Elsner UNQUALIFIED
Arvin J SergiAustraliaIvan Magalhaes PROPOSAL
Antonio O IturbideIndiaOnyama Limba NEW
Stacey S StockhamRussiaIvan Magalhaes QUALIFIED
Misaki Z RimFranceOnyama Limba PROPOSAL
Leon A DilliardRussiaOnyama Limba NEGOTIATION
Clifford Z VenereFranceAsiya Javayant QUALIFIED
Aditya F FlosiGermanyOnyama Limba PROPOSAL
Jennifer Q KuskoBrazilIoni Bowcher PROPOSAL
Arvin C StensethBrazilBernardo Dominic NEGOTIATION
Kaitlin N FlosiUnited KingdomXuxue Feng QUALIFIED
Costa W RimAustraliaBernardo Dominic QUALIFIED
Leja S PerinUnited KingdomStephen Shaw PROPOSAL
Jefferson L WieserItalyOnyama Limba NEGOTIATION
Jefferson B DilliardAustraliaElwin Sharvill NEGOTIATION
Aika M FlosiArgentinaElwin Sharvill QUALIFIED
Kadeem P MaletSpainElwin Sharvill RENEWAL
Maria T ShinkoCanadaElwin Sharvill NEGOTIATION
Kadeem M GillianFranceBernardo Dominic NEW
Adams H StensethBrazilXuxue Feng PROPOSAL
Francesco U MaletUnited KingdomIoni Bowcher UNQUALIFIED
Stacey E MarrierGermanyAsiya Javayant UNQUALIFIED
Munro E CaldareraUnited KingdomElwin Sharvill QUALIFIED
Claire E SchemmerBrazilBernardo Dominic PROPOSAL
Octavia C SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Clifford U FigeroaJapanIoni Bowcher NEW
Julie R GillianSpainIvan Magalhaes NEGOTIATION
Izzy S ShinkoSpainXuxue Feng PROPOSAL
Deepesh V SlusarskiArgentinaElwin Sharvill UNQUALIFIED
Leon O SchemmerRussiaBernardo Dominic PROPOSAL
Darci S AlbaresUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois O ButtRussiaAnna Fali NEGOTIATION
Jeanfrancois Y ChuiRussiaElwin Sharvill UNQUALIFIED
Jeanfrancois S NestleFranceXuxue Feng UNQUALIFIED
David U MarrierJapanOnyama Limba RENEWAL
Mayumi W StensethArgentinaIvan Magalhaes NEGOTIATION
Jefferson W GillianFranceStephen Shaw PROPOSAL
Misaki Q NestleIndiaIoni Bowcher UNQUALIFIED
Ivar B IturbideFranceIvan Magalhaes QUALIFIED
Jefferson U FollerCanadaStephen Shaw QUALIFIED
James S WieserAustraliaAsiya Javayant QUALIFIED
Chavez G FigeroaGermanyXuxue Feng RENEWAL
Frozen Columns
Name
Emily U Campain
Aruna N Bowley
Julie Z Gaucho
Faith J Malet
Murillo Z Venere
Stacey F Slusarski
Jefferson J Ferencz
Stacey M Briddick
Morrow O Slusarski
Julie L Campain
Smith Z Chui
Clifford Q Caldarera
Cody R Gaucho
Ricardo X Royster
Adams V Kusko
Juan M Inouye
Leon X Vocelka
Cody Z Glick
Misaki O Bolognia
Greenwood Z Gillian
Julie P Wieser
James S Rulapaugh
Aditya B Tollner
Emily W Briddick
Jones E Foller
Costa N Rulapaugh
Costa I Iturbide
Cody J Kusko
Darci M Inouye
Jefferson I Ferencz
Izzy G Garufi
Ashley T Saylors
Kaitlin K Slusarski
Jones J Flosi
Aruna R Perin
Maria D Waycott
Alejandro I Venere
Francesco U Bowley
Nicolas W Campain
Costa I Wieser
Silvio F Bowley
Isabel T Chui
Rodrigues B Gillian
Tony U Bolognia
Tony C Shinko
Ricardo J Gaucho
Alejandro A Iturbide
Morrow D Caldarera
Aruna N Inouye
Octavia H Iturbide
IdCountryDate
1000Germany2026-06-11
1001France2026-06-08
1002Russia2026-06-23
1003Russia2026-06-30
1004Italy2026-06-17
1005Brazil2026-06-22
1006Canada2026-06-27
1007Argentina2026-06-20
1008Australia2026-06-09
1009Germany2026-06-13
1010India2026-06-22
1011Brazil2026-06-18
1012Germany2026-06-08
1013Australia2026-06-19
1014France2026-06-09
1015France2026-07-06
1016United Kingdom2026-06-14
1017Canada2026-06-12
1018Australia2026-07-06
1019United Kingdom2026-07-06
1020Argentina2026-07-06
1021Spain2026-06-15
1022Germany2026-06-29
1023Argentina2026-06-12
1024Germany2026-06-24
1025United Kingdom2026-07-03
1026Germany2026-07-03
1027Canada2026-06-09
1028France2026-06-21
1029Germany2026-06-16
1030Canada2026-06-08
1031India2026-06-16
1032Russia2026-06-16
1033Canada2026-07-04
1034Brazil2026-07-04
1035Germany2026-06-17
1036Spain2026-06-30
1037Japan2026-06-12
1038Germany2026-06-11
1039Spain2026-07-07
1040France2026-06-17
1041Russia2026-06-29
1042Australia2026-06-16
1043Japan2026-06-20
1044United Kingdom2026-07-07
1045France2026-07-05
1046Argentina2026-06-30
1047France2026-06-21
1048Russia2026-06-11
1049Brazil2026-06-29

On-Demand Data

NameIdCountryDate
Ivar Q Malet1000France2026-06-20
Aditya T Campain1001Canada2026-06-25
Misaki B Tollner1002Spain2026-06-09
Ricardo K Ferencz1003Argentina2026-06-14
Claire L Glick1004Spain2026-06-16
Arvin B Royster1005Japan2026-06-28
Darci Q Kusko1006Brazil2026-07-04
Jones Z Gaucho1007France2026-06-19
Darci W Saylors1008Italy2026-06-16
Antonio T Oldroyd1009Italy2026-07-05
Tony I Oldroyd1010Canada2026-06-26
Murillo C Darakjy1011Japan2026-06-17
Nicolas B Malet1012India2026-06-17
James G Kolmetz1013United Kingdom2026-06-25
Ricardo Q Perin1014Brazil2026-06-26
Costa D Flosi1015Germany2026-06-30
Salvatore X Stockham1016Germany2026-06-09
Salvatore K Wieser1017Spain2026-06-13
Costa B Campain1018United Kingdom2026-06-25
Nicolas X Bowley1019Russia2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David O RulapaughAustraliaStephen Shaw NEGOTIATION
Jeanfrancois G RutaUnited KingdomAsiya Javayant RENEWAL
David J SchemmerItalyAnna Fali QUALIFIED
Mujtaba B GillianArgentinaIoni Bowcher PROPOSAL
Faith B RoysterJapanXuxue Feng PROPOSAL
Murillo P StockhamItalyAnna Fali QUALIFIED
Mayumi T IturbideJapanIoni Bowcher QUALIFIED
Kadeem M AlbaresFranceXuxue Feng PROPOSAL
Smith C DoeCanadaElwin Sharvill NEGOTIATION
Ivar S BologniaRussiaAnna Fali NEW
Emily O OldroydItalyAnna Fali NEGOTIATION
Rodrigues J ChuiSpainBernardo Dominic NEW
Clifford Y FerenczRussiaElwin Sharvill NEGOTIATION
Sinclair J GlickAustraliaBernardo Dominic QUALIFIED
Francesco N TollnerGermanyAmy Elsner NEGOTIATION
Izzy N AmigonJapanIoni Bowcher UNQUALIFIED
Jeanfrancois W KuskoJapanAmy Elsner RENEWAL
Aditya V SergiRussiaXuxue Feng UNQUALIFIED
Maria D DoeIndiaBernardo Dominic PROPOSAL
Rodrigues B FlosiSpainElwin Sharvill PROPOSAL
Aditya V ShinkoArgentinaAnna Fali UNQUALIFIED
Emily U ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Morrow I WieserUnited KingdomBernardo Dominic NEGOTIATION
Darci P SaylorsArgentinaBernardo Dominic NEW
Darci K NickaBrazilIvan Magalhaes UNQUALIFIED
Claire P SergiAustraliaXuxue Feng UNQUALIFIED
Deepesh Q DoeRussiaElwin Sharvill UNQUALIFIED
Leja Y FlosiBrazilXuxue Feng RENEWAL
Rodrigues P AmigonSpainIoni Bowcher NEGOTIATION
Salvatore N InouyeItalyAnna Fali QUALIFIED
Silvio T NestleGermanyIvan Magalhaes UNQUALIFIED
Jones B VocelkaItalyXuxue Feng RENEWAL
Julie M MarrierGermanyIvan Magalhaes RENEWAL
Murillo H MarrierRussiaIoni Bowcher NEW
Alejandro O MorascaUnited KingdomOnyama Limba UNQUALIFIED
Jennifer O SaylorsIndiaIoni Bowcher UNQUALIFIED
Jennifer U PoquetteBrazilXuxue Feng QUALIFIED
Kadeem U MacleadGermanyAnna Fali QUALIFIED
Octavia R StockhamSpainIoni Bowcher NEGOTIATION
Faith A FollerGermanyAmy Elsner 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>