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
Greenwood U OstroskyJapanIoni Bowcher RENEWAL
Deepesh A ShinkoUnited KingdomBernardo Dominic UNQUALIFIED
Adams Y VocelkaUnited KingdomOnyama Limba NEGOTIATION
Salvatore L FigeroaGermanyOnyama Limba RENEWAL
Ivar D VocelkaSpainOnyama Limba QUALIFIED
Johnson B FigeroaSpainOnyama Limba RENEWAL
Morrow X CaudySpainBernardo Dominic UNQUALIFIED
Johnson E BriddickRussiaAnna Fali NEGOTIATION
Murillo D BriddickIndiaAsiya Javayant RENEWAL
Jefferson P MarrierAustraliaAsiya Javayant PROPOSAL
David C SchemmerCanadaBernardo Dominic PROPOSAL
Octavia N NickaCanadaElwin Sharvill NEW
Francesco E BowleySpainAsiya Javayant NEW
Greenwood X SergiAustraliaIoni Bowcher UNQUALIFIED
Rodrigues N FollerUnited KingdomIoni Bowcher NEW
Mujtaba M RulapaughFranceAmy Elsner QUALIFIED
Jefferson S InouyeBrazilIoni Bowcher RENEWAL
Leon K DarakjyUnited KingdomAnna Fali NEGOTIATION
Ricardo O InouyeBrazilIoni Bowcher RENEWAL
Munro B WhobreyBrazilIvan Magalhaes RENEWAL
Alejandro T GlickItalyAsiya Javayant NEW
Izzy P FollerJapanElwin Sharvill NEW
Claire C DilliardRussiaAmy Elsner PROPOSAL
Greenwood X RoysterCanadaBernardo Dominic PROPOSAL
Ashley P RoysterAustraliaIoni Bowcher RENEWAL
Morrow U CaudyIndiaAmy Elsner NEW
Kaitlin V PerinGermanyStephen Shaw NEW
Izzy Y SlusarskiBrazilAsiya Javayant NEGOTIATION
Salvatore O MorascaFranceAnna Fali QUALIFIED
Costa M WaycottIndiaStephen Shaw QUALIFIED
Jeanfrancois Z MacleadGermanyXuxue Feng UNQUALIFIED
David J VocelkaAustraliaStephen Shaw QUALIFIED
Francesco B StockhamSpainOnyama Limba UNQUALIFIED
Ricardo G RulapaughGermanyAsiya Javayant PROPOSAL
Jones P WhobreyBrazilIvan Magalhaes QUALIFIED
Octavia U CampainAustraliaAsiya Javayant NEGOTIATION
Clifford M RutaArgentinaIvan Magalhaes NEW
Jennifer M MorascaAustraliaStephen Shaw RENEWAL
Johnson S RimBrazilAnna Fali QUALIFIED
Costa B ButtFranceAmy Elsner NEGOTIATION
Claire U WieserCanadaAsiya Javayant NEW
Kadeem L SaylorsSpainAmy Elsner RENEWAL
Jefferson T AmigonAustraliaOnyama Limba RENEWAL
Clifford N MaletCanadaAmy Elsner RENEWAL
Costa M WhobreyArgentinaAnna Fali RENEWAL
Salvatore E AmigonSpainIvan Magalhaes QUALIFIED
Juan M NickaFranceStephen Shaw QUALIFIED
Clifford B MacleadGermanyIvan Magalhaes NEW
Wickens J AmigonUnited KingdomStephen Shaw NEGOTIATION
Ricardo A AmigonAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia A MarrierUnited KingdomIvan Magalhaes RENEWAL
Claire Z FlosiFranceIvan Magalhaes NEW
Morrow F VenereBrazilElwin Sharvill NEGOTIATION
Nicolas B ShinkoJapanXuxue Feng NEW
Nicolas Y MarrierJapanIoni Bowcher QUALIFIED
Chavez C AmigonSpainIvan Magalhaes NEGOTIATION
Aika G MorascaGermanyBernardo Dominic NEGOTIATION
Kaitlin Y RulapaughArgentinaElwin Sharvill PROPOSAL
Leon C SaylorsJapanElwin Sharvill NEW
Aditya K RimUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer V IturbideSpain2026-08-24Dorl, James J Esq NEW38Bernardo Dominic
1001Francesco R CaudyArgentina2026-08-15Benton, John B Jr QUALIFIED43Stephen Shaw
1002Adams S BriddickIndia2026-08-27Commercial Press NEGOTIATION5Bernardo Dominic
1003Alejandro I GauchoIndia2026-08-01Chanay, Jeffrey A Esq RENEWAL57Elwin Sharvill
1004Aditya E KuskoGermany2026-08-17Rousseaux, Michael Esq RENEWAL98Stephen Shaw
1005Arvin Q VocelkaSpain2026-08-21Truhlar And Truhlar Attys NEW83Asiya Javayant
1006Chavez P IturbideRussia2026-08-20Buckley Miller Wright UNQUALIFIED5Ioni Bowcher
1007Sinclair F CaudyRussia2026-08-20Rangoni Of Florence NEGOTIATION12Asiya Javayant
1008Claire W KolmetzGermany2026-08-25Morlong Associates NEGOTIATION52Ivan Magalhaes
1009David I GauchoCanada2026-08-08Rangoni Of Florence PROPOSAL49Asiya Javayant
1010Ricardo E FlosiFrance2026-08-27Chanay, Jeffrey A Esq PROPOSAL57Ivan Magalhaes
1011Sinclair Y SergiAustralia2026-08-12Truhlar And Truhlar Attys RENEWAL49Stephen Shaw
1012Wickens E DoeSpain2026-08-08Chemel, James L Cpa RENEWAL18Xuxue Feng
1013Antonio H GauchoRussia2026-08-20Rousseaux, Michael Esq NEW44Bernardo Dominic
1014Mujtaba Y FerenczAustralia2026-08-09Truhlar And Truhlar Attys UNQUALIFIED6Ioni Bowcher
1015Izzy Z DarakjyJapan2026-08-04Dorl, James J Esq PROPOSAL54Elwin Sharvill
1016Jones M OldroydRussia2026-08-19Chemel, James L Cpa QUALIFIED80Anna Fali
1017Jeanfrancois V GlickGermany2026-08-06Dorl, James J Esq NEW6Elwin Sharvill
1018Sinclair G InouyeAustralia2026-08-16Dorl, James J Esq NEGOTIATION14Stephen Shaw
1019Silvio Q GarufiUnited Kingdom2026-08-27Truhlar And Truhlar Attys RENEWAL31Bernardo Dominic
1020Alejandro U DilliardSpain2026-08-17Printing Dimensions PROPOSAL14Asiya Javayant
1021Tony S DilliardArgentina2026-08-13Feiner Bros RENEWAL26Anna Fali
1022Silvio Y ButtItaly2026-08-03Truhlar And Truhlar Attys NEW77Anna Fali
1023Isabel M RimArgentina2026-08-26King, Christopher A Esq UNQUALIFIED94Anna Fali
1024Greenwood N MaletGermany2026-08-21Buckley Miller Wright NEW64Xuxue Feng
1025Nicolas Y OldroydGermany2026-08-29Dorl, James J Esq NEW87Onyama Limba
1026Arvin P RoysterRussia2026-08-14Benton, John B Jr PROPOSAL96Anna Fali
1027David T FerenczUnited Kingdom2026-08-26Feiner Bros PROPOSAL7Amy Elsner
1028Jennifer C PerinAustralia2026-08-25Rangoni Of Florence QUALIFIED51Ivan Magalhaes
1029Juan O GlickFrance2026-08-21Commercial Press RENEWAL13Ivan Magalhaes
1030Alejandro Q DarakjyJapan2026-08-05Feiner Bros UNQUALIFIED44Onyama Limba
1031Octavia G NestleRussia2026-08-10Feltz Printing Service NEW62Ivan Magalhaes
1032Jeanfrancois H DoeSpain2026-08-17Chapman, Ross E Esq PROPOSAL35Bernardo Dominic
1033Murillo H RulapaughBrazil2026-08-08Printing Dimensions NEW76Stephen Shaw
1034Stacey F RimArgentina2026-08-28Morlong Associates NEGOTIATION2Ivan Magalhaes
1035Johnson Z PaprockiIndia2026-08-03Rousseaux, Michael Esq QUALIFIED46Ivan Magalhaes
1036Faith H StensethUnited Kingdom2026-08-20King, Christopher A Esq RENEWAL14Asiya Javayant
1037Greenwood U GillianItaly2026-08-04Feiner Bros PROPOSAL5Amy Elsner
1038Cody C VocelkaCanada2026-08-12King, Christopher A Esq NEGOTIATION10Elwin Sharvill
1039Clifford K VenereArgentina2026-08-10Printing Dimensions NEW81Asiya Javayant
1040Aruna V GillianUnited Kingdom2026-08-30King, Christopher A Esq PROPOSAL42Stephen Shaw
1041Faith K MaletSpain2026-08-08Morlong Associates PROPOSAL27Bernardo Dominic
1042Sinclair F RoysterIndia2026-08-27King, Christopher A Esq NEGOTIATION7Asiya Javayant
1043Arvin U NestleArgentina2026-08-10Feiner Bros RENEWAL52Anna Fali
1044Wickens A PaprockiArgentina2026-08-01Dorl, James J Esq NEW83Ioni Bowcher
1045Emily X GillianSpain2026-08-08Truhlar And Truhlar Attys QUALIFIED62Elwin Sharvill
1046Emily C PaprockiFrance2026-08-12Benton, John B Jr UNQUALIFIED63Asiya Javayant
1047Salvatore X WieserUnited Kingdom2026-08-02Commercial Press PROPOSAL32Anna Fali
1048Mayumi G MarrierGermany2026-08-26Feltz Printing Service UNQUALIFIED51Ivan Magalhaes
1049Emily V ButtRussia2026-08-24Chapman, Ross E Esq UNQUALIFIED86Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa T RulapaughSpainXuxue Feng NEGOTIATION
Mayumi V RulapaughFranceAmy Elsner RENEWAL
Costa R OstroskyIndiaAmy Elsner UNQUALIFIED
Ricardo V PerinBrazilBernardo Dominic NEW
Aditya T MacleadSpainIvan Magalhaes UNQUALIFIED
Wickens R BologniaUnited KingdomElwin Sharvill NEW
Sinclair Y KolmetzAustraliaStephen Shaw NEW
Mujtaba J BriddickItalyIoni Bowcher UNQUALIFIED
Adams I SaylorsFranceAsiya Javayant NEGOTIATION
Silvio R OldroydJapanOnyama Limba QUALIFIED
Jefferson V PaprockiAustraliaXuxue Feng PROPOSAL
Deepesh U OldroydJapanAsiya Javayant RENEWAL
Cody E RimArgentinaIvan Magalhaes PROPOSAL
Deepesh H TollnerItalyOnyama Limba UNQUALIFIED
David R DoeArgentinaElwin Sharvill QUALIFIED
Johnson J FerenczBrazilIvan Magalhaes RENEWAL
Ashley Z IturbideAustraliaIvan Magalhaes RENEWAL
Cody J GarufiRussiaAnna Fali RENEWAL
Cody P DoeAustraliaElwin Sharvill UNQUALIFIED
Nicolas C AmigonFranceOnyama Limba RENEWAL
Ivar C VenereItalyBernardo Dominic NEGOTIATION
Faith C MacleadIndiaIoni Bowcher NEW
Rodrigues Z FerenczRussiaIoni Bowcher UNQUALIFIED
Leon K OstroskyAustraliaStephen Shaw PROPOSAL
Mayumi G CampainGermanyElwin Sharvill UNQUALIFIED
Tony J CampainJapanAsiya Javayant NEW
Clifford C DoeArgentinaAmy Elsner RENEWAL
Rodrigues V CampainArgentinaXuxue Feng NEW
Sinclair R NestleSpainIvan Magalhaes RENEWAL
Tony F NestleJapanAsiya Javayant PROPOSAL
Aditya S SergiUnited KingdomIvan Magalhaes NEGOTIATION
Smith R AmigonBrazilIoni Bowcher NEGOTIATION
Francesco I FigeroaAustraliaAnna Fali NEW
Leon W InouyeSpainXuxue Feng PROPOSAL
Mayumi N IturbideGermanyStephen Shaw NEGOTIATION
Jeanfrancois Z MorascaGermanyAmy Elsner NEW
Silvio G OstroskyItalyElwin Sharvill NEGOTIATION
Adams O OldroydSpainElwin Sharvill PROPOSAL
Isabel H SchemmerRussiaAnna Fali UNQUALIFIED
Maria L KolmetzBrazilIvan Magalhaes QUALIFIED
Faith C NestleAustraliaElwin Sharvill PROPOSAL
Ivar P InouyeBrazilAmy Elsner RENEWAL
Jennifer N SergiIndiaOnyama Limba UNQUALIFIED
Nicolas E MorascaJapanElwin Sharvill NEW
Smith W CaudyRussiaOnyama Limba UNQUALIFIED
David E ButtSpainOnyama Limba UNQUALIFIED
Jefferson M RulapaughUnited KingdomAnna Fali PROPOSAL
Sinclair W BowleyJapanStephen Shaw PROPOSAL
Izzy O GauchoAustraliaAsiya Javayant QUALIFIED
Rodrigues D RoysterCanadaAmy Elsner PROPOSAL
Frozen Columns
Name
Adams A Gillian
Octavia L Oldroyd
Ricardo K Malet
Aruna S Caldarera
Stacey W Ferencz
Aika E Ruta
Nicolas E Malet
Leon G Amigon
Darci S Schemmer
Morrow R Gaucho
Octavia D Stockham
Emily G Venere
Silvio P Venere
Jennifer A Royster
Clifford D Gillian
Emily A Dilliard
Octavia I Stenseth
Ashley K Chui
Francesco I Wieser
Mujtaba A Glick
Rodrigues D Morasca
Maisha J Slusarski
Nicolas M Vocelka
Octavia P Whobrey
Chavez Q Venere
Maria V Sergi
Izzy Q Gillian
Leja P Dilliard
Aditya N Garufi
Misaki A Poquette
Aika C Stockham
Deepesh Q Campain
Maisha I Shinko
Julie X Shinko
Faith D Malet
Aika O Flosi
Kadeem U Rim
James Z Chui
Mujtaba I Flosi
Nicolas I Glick
Cody T Briddick
Johnson X Gillian
Ivar B Briddick
Greenwood M Chui
Juan K Butt
Wickens K Sergi
Johnson Q Poquette
Ricardo J Bowley
Nicolas I Foller
Adams H Bowley
IdCountryDate
1000Spain2026-08-30
1001Brazil2026-08-06
1002Italy2026-08-20
1003Russia2026-08-03
1004Russia2026-08-10
1005Japan2026-08-23
1006France2026-08-18
1007Italy2026-08-10
1008Germany2026-08-12
1009Spain2026-08-17
1010Canada2026-08-07
1011Argentina2026-08-15
1012Canada2026-08-28
1013Russia2026-08-05
1014Germany2026-08-22
1015Argentina2026-08-18
1016Italy2026-08-06
1017Spain2026-08-21
1018India2026-08-17
1019Canada2026-08-19
1020United Kingdom2026-08-16
1021Brazil2026-08-30
1022Argentina2026-08-18
1023Australia2026-08-07
1024France2026-08-26
1025Germany2026-08-07
1026Australia2026-08-14
1027Australia2026-08-03
1028France2026-08-16
1029Italy2026-08-12
1030Canada2026-08-23
1031Australia2026-08-28
1032Italy2026-08-14
1033Brazil2026-08-27
1034Canada2026-08-09
1035Japan2026-08-28
1036India2026-08-15
1037Australia2026-08-22
1038Spain2026-08-25
1039Brazil2026-08-07
1040Japan2026-08-29
1041Canada2026-08-22
1042Brazil2026-08-26
1043France2026-08-14
1044Russia2026-08-12
1045Japan2026-08-02
1046Spain2026-08-23
1047Spain2026-08-27
1048Spain2026-08-11
1049Argentina2026-08-28

On-Demand Data

NameIdCountryDate
Tony H Kolmetz1000Argentina2026-08-20
Maisha D Paprocki1001Canada2026-08-14
Mayumi U Bowley1002United Kingdom2026-08-15
Jeanfrancois P Morasca1003Australia2026-08-13
Darci X Foller1004Japan2026-08-15
Cody S Bolognia1005Canada2026-08-19
Leja G Paprocki1006India2026-08-04
Mujtaba W Kolmetz1007Australia2026-08-19
Juan H Bolognia1008Italy2026-08-21
Jefferson G Chui1009France2026-08-02
Francesco T Gaucho1010Brazil2026-08-11
Antonio H Waycott1011United Kingdom2026-08-03
Jefferson C Royster1012India2026-08-01
Claire M Tollner1013Australia2026-08-03
Silvio N Ruta1014Canada2026-08-05
Morrow V Vocelka1015Argentina2026-08-05
Jeanfrancois U Gillian1016India2026-08-14
Ivar W Nicka1017India2026-08-24
Chavez L Vocelka1018France2026-08-29
Francesco W Flosi1019Italy2026-08-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony N InouyeGermanyBernardo Dominic NEGOTIATION
Aditya M DoeArgentinaAmy Elsner RENEWAL
Clifford R DilliardCanadaOnyama Limba RENEWAL
Isabel X DoeFranceOnyama Limba QUALIFIED
Silvio T GarufiSpainOnyama Limba PROPOSAL
Wickens M TollnerAustraliaAmy Elsner RENEWAL
Izzy P WaycottSpainBernardo Dominic RENEWAL
Munro R MacleadGermanyOnyama Limba NEGOTIATION
Wickens A FlosiAustraliaAsiya Javayant PROPOSAL
Mujtaba F NickaAustraliaAsiya Javayant UNQUALIFIED
Kaitlin P StockhamSpainAsiya Javayant PROPOSAL
Costa Z DoeBrazilAmy Elsner QUALIFIED
Claire G RutaFranceAsiya Javayant QUALIFIED
Juan O OstroskyItalyAnna Fali NEW
Morrow T NickaSpainXuxue Feng NEGOTIATION
Jennifer W StensethRussiaXuxue Feng PROPOSAL
Izzy V MaletArgentinaAmy Elsner NEGOTIATION
Leon T DarakjyBrazilIvan Magalhaes QUALIFIED
David P GlickCanadaAnna Fali NEW
Arvin N FlosiItalyAnna Fali NEGOTIATION
Munro I OstroskyBrazilStephen Shaw RENEWAL
Francesco E OldroydCanadaIvan Magalhaes RENEWAL
Deepesh U StockhamSpainBernardo Dominic QUALIFIED
Darci V AmigonUnited KingdomStephen Shaw RENEWAL
Greenwood T CampainItalyAmy Elsner PROPOSAL
Silvio W MaletJapanIoni Bowcher QUALIFIED
Sinclair E GarufiUnited KingdomXuxue Feng QUALIFIED
Misaki D StockhamJapanStephen Shaw NEW
Clifford O KolmetzArgentinaXuxue Feng NEW
Izzy V RimRussiaAsiya Javayant PROPOSAL
Isabel O SlusarskiSpainOnyama Limba NEGOTIATION
Rodrigues Z DarakjyArgentinaOnyama Limba PROPOSAL
Antonio O StockhamUnited KingdomElwin Sharvill NEW
Ricardo H VocelkaCanadaIvan Magalhaes NEW
Murillo D GauchoFranceOnyama Limba RENEWAL
Francesco U BriddickGermanyAnna Fali RENEWAL
Munro M CaldareraBrazilBernardo Dominic RENEWAL
Maria N DoeIndiaIvan Magalhaes NEW
Chavez K ButtItalyBernardo Dominic UNQUALIFIED
Antonio Q OldroydUnited KingdomAmy Elsner 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>