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
David Q GarufiGermanyIoni Bowcher PROPOSAL
Ivar Y RulapaughUnited KingdomElwin Sharvill PROPOSAL
Arvin K InouyeArgentinaBernardo Dominic QUALIFIED
Aditya A SchemmerRussiaStephen Shaw UNQUALIFIED
Greenwood N SchemmerCanadaElwin Sharvill NEW
Adams A ShinkoItalyAmy Elsner PROPOSAL
Alejandro K VenereBrazilXuxue Feng QUALIFIED
Morrow H RutaUnited KingdomBernardo Dominic QUALIFIED
Ivar K KuskoAustraliaOnyama Limba PROPOSAL
Kadeem I MarrierAustraliaBernardo Dominic NEW
David P WieserJapanBernardo Dominic RENEWAL
Juan B SaylorsGermanyAnna Fali NEW
Aditya E CaudyCanadaStephen Shaw NEGOTIATION
Jennifer H FlosiGermanyAnna Fali NEW
Cody E RutaAustraliaAmy Elsner QUALIFIED
Greenwood U ShinkoJapanAsiya Javayant NEW
Jefferson Y FollerItalyAsiya Javayant NEW
Munro D AlbaresItalyIoni Bowcher RENEWAL
Julie C InouyeArgentinaAmy Elsner PROPOSAL
Leja E KolmetzItalyAmy Elsner RENEWAL
Adams N RoysterFranceAsiya Javayant UNQUALIFIED
Misaki M ChuiJapanAnna Fali NEW
Smith X MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Faith K PaprockiArgentinaElwin Sharvill UNQUALIFIED
Salvatore T PerinArgentinaElwin Sharvill RENEWAL
Murillo Q KuskoRussiaIvan Magalhaes RENEWAL
Deepesh S RoysterCanadaBernardo Dominic NEW
Isabel D ButtIndiaIvan Magalhaes QUALIFIED
Maria U VenereBrazilXuxue Feng NEW
Munro P RimFranceAsiya Javayant QUALIFIED
Smith R ButtItalyOnyama Limba QUALIFIED
Murillo P PerinAustraliaAnna Fali NEW
Sinclair V ShinkoGermanyIoni Bowcher NEW
Costa E ChuiRussiaAnna Fali QUALIFIED
Francesco V CaldareraUnited KingdomIoni Bowcher RENEWAL
Wickens B OldroydCanadaBernardo Dominic QUALIFIED
Murillo K RutaGermanyAmy Elsner QUALIFIED
Ashley N GarufiAustraliaAnna Fali UNQUALIFIED
Adams E RimJapanIoni Bowcher NEW
Kaitlin F CaudySpainBernardo Dominic NEGOTIATION
Aika E CaudySpainOnyama Limba UNQUALIFIED
Jefferson Q DoeRussiaIvan Magalhaes RENEWAL
Silvio G VenereSpainIoni Bowcher PROPOSAL
Smith K ChuiCanadaStephen Shaw QUALIFIED
Jennifer W NestleFranceStephen Shaw UNQUALIFIED
Mujtaba U SlusarskiFranceAnna Fali QUALIFIED
Murillo N VocelkaSpainXuxue Feng UNQUALIFIED
Maria F SlusarskiJapanXuxue Feng PROPOSAL
Ashley Q WieserRussiaAnna Fali QUALIFIED
Stacey N ButtItalyElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin W DilliardUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois T IturbideBrazilAsiya Javayant NEGOTIATION
Alejandro L FigeroaFranceXuxue Feng QUALIFIED
Tony H WhobreyUnited KingdomOnyama Limba RENEWAL
Tony Y CaldareraGermanyIoni Bowcher UNQUALIFIED
James V StockhamArgentinaAmy Elsner PROPOSAL
Morrow O ChuiBrazilBernardo Dominic RENEWAL
Maria Z MaletRussiaElwin Sharvill PROPOSAL
Julie O GillianCanadaAnna Fali QUALIFIED
Greenwood X SchemmerBrazilOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo J OstroskyJapan2026-08-21Feltz Printing Service RENEWAL9Amy Elsner
1001Adams C AmigonBrazil2026-07-31Benton, John B Jr UNQUALIFIED8Elwin Sharvill
1002Stacey O SaylorsJapan2026-08-18Printing Dimensions RENEWAL7Stephen Shaw
1003Sinclair G CaldareraCanada2026-08-15Chapman, Ross E Esq UNQUALIFIED90Stephen Shaw
1004Nicolas O MorascaArgentina2026-08-07Printing Dimensions QUALIFIED70Anna Fali
1005Morrow P MorascaFrance2026-07-31Morlong Associates QUALIFIED76Asiya Javayant
1006Clifford V CampainIndia2026-08-12Benton, John B Jr QUALIFIED33Xuxue Feng
1007Wickens C PerinSpain2026-08-01Commercial Press RENEWAL95Bernardo Dominic
1008David J GillianRussia2026-08-04Rangoni Of Florence NEGOTIATION44Elwin Sharvill
1009Chavez F MaletCanada2026-08-05Feltz Printing Service PROPOSAL92Elwin Sharvill
1010Murillo F AmigonUnited Kingdom2026-08-01Morlong Associates UNQUALIFIED83Onyama Limba
1011Clifford Q PerinRussia2026-08-16Dorl, James J Esq NEW63Xuxue Feng
1012Tony O IturbideBrazil2026-07-28Rangoni Of Florence NEW53Stephen Shaw
1013Cody V RutaSpain2026-08-10King, Christopher A Esq QUALIFIED73Ivan Magalhaes
1014Smith X SchemmerUnited Kingdom2026-08-01Truhlar And Truhlar Attys PROPOSAL27Elwin Sharvill
1015Wickens Q DilliardIndia2026-08-12Buckley Miller Wright PROPOSAL66Amy Elsner
1016Aika E NestleJapan2026-08-25Morlong Associates QUALIFIED40Anna Fali
1017Kadeem H KolmetzAustralia2026-08-15Chapman, Ross E Esq QUALIFIED61Amy Elsner
1018Antonio E CaldareraJapan2026-08-15Morlong Associates UNQUALIFIED91Asiya Javayant
1019Darci S NickaJapan2026-08-14Commercial Press QUALIFIED42Amy Elsner
1020Jennifer V PerinGermany2026-08-19Feiner Bros PROPOSAL33Stephen Shaw
1021Murillo T GarufiGermany2026-07-27Chemel, James L Cpa RENEWAL74Xuxue Feng
1022Leon E GlickRussia2026-08-06Printing Dimensions PROPOSAL68Anna Fali
1023Jones J TollnerSpain2026-08-20Rousseaux, Michael Esq PROPOSAL50Ioni Bowcher
1024Julie Z WieserRussia2026-08-20Chapman, Ross E Esq QUALIFIED58Stephen Shaw
1025Silvio J DoeFrance2026-08-04Morlong Associates UNQUALIFIED2Xuxue Feng
1026Jeanfrancois B IturbideRussia2026-08-23Commercial Press NEW4Onyama Limba
1027Costa S OldroydUnited Kingdom2026-08-05King, Christopher A Esq UNQUALIFIED91Ioni Bowcher
1028Greenwood B MacleadCanada2026-07-31Chapman, Ross E Esq PROPOSAL72Asiya Javayant
1029Aruna S BologniaRussia2026-08-14Rousseaux, Michael Esq NEW14Elwin Sharvill
1030Munro I OstroskyAustralia2026-08-22Feltz Printing Service UNQUALIFIED46Elwin Sharvill
1031Morrow S KuskoIndia2026-08-23Morlong Associates UNQUALIFIED46Onyama Limba
1032Aditya U GarufiAustralia2026-08-09Commercial Press NEW8Stephen Shaw
1033Murillo C FigeroaJapan2026-08-22Benton, John B Jr QUALIFIED0Anna Fali
1034Tony F KuskoFrance2026-08-08Buckley Miller Wright PROPOSAL68Amy Elsner
1035Deepesh B DilliardJapan2026-08-03Chanay, Jeffrey A Esq NEW23Elwin Sharvill
1036Stacey R SchemmerBrazil2026-08-03Rangoni Of Florence NEGOTIATION66Amy Elsner
1037Darci Z MacleadBrazil2026-08-17Buckley Miller Wright NEW16Amy Elsner
1038Smith C GarufiSpain2026-08-17Truhlar And Truhlar Attys RENEWAL68Onyama Limba
1039Leja O ButtRussia2026-08-16King, Christopher A Esq PROPOSAL52Ioni Bowcher
1040David S RutaSpain2026-08-17King, Christopher A Esq QUALIFIED37Amy Elsner
1041Claire G BriddickIndia2026-07-27Chapman, Ross E Esq PROPOSAL8Amy Elsner
1042Mayumi Z VenereGermany2026-08-21Dorl, James J Esq RENEWAL4Asiya Javayant
1043Leon Z SergiItaly2026-08-07Commercial Press RENEWAL70Onyama Limba
1044Julie H SchemmerFrance2026-08-15Rousseaux, Michael Esq QUALIFIED18Ivan Magalhaes
1045Munro C NickaAustralia2026-08-24Chemel, James L Cpa PROPOSAL36Bernardo Dominic
1046Smith J DarakjySpain2026-08-02Buckley Miller Wright RENEWAL36Asiya Javayant
1047Kaitlin J FerenczItaly2026-08-03Chapman, Ross E Esq PROPOSAL52Anna Fali
1048Johnson I NestleArgentina2026-07-28Buckley Miller Wright QUALIFIED14Amy Elsner
1049Jennifer S ChuiCanada2026-08-20Feltz Printing Service NEGOTIATION21Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jones A SaylorsFranceOnyama Limba UNQUALIFIED
Aruna L GarufiFranceBernardo Dominic QUALIFIED
Aruna S RimItalyAnna Fali UNQUALIFIED
Murillo J MarrierIndiaXuxue Feng QUALIFIED
Maria B ChuiIndiaIoni Bowcher NEW
Wickens L SlusarskiUnited KingdomIoni Bowcher NEW
Leon Y PoquetteSpainAnna Fali QUALIFIED
Ivar Q MaletUnited KingdomAnna Fali NEW
Francesco R BriddickItalyBernardo Dominic NEGOTIATION
Stacey G DoeUnited KingdomIvan Magalhaes PROPOSAL
James B FerenczIndiaAmy Elsner UNQUALIFIED
Morrow Q PoquetteArgentinaElwin Sharvill RENEWAL
Greenwood Z GarufiRussiaElwin Sharvill QUALIFIED
Jeanfrancois K NickaJapanBernardo Dominic QUALIFIED
Morrow G OldroydJapanAnna Fali QUALIFIED
Costa J GarufiBrazilElwin Sharvill RENEWAL
Morrow M GillianIndiaStephen Shaw NEW
Tony G SlusarskiBrazilElwin Sharvill NEGOTIATION
Smith G WaycottArgentinaIoni Bowcher PROPOSAL
Morrow C MorascaFranceAsiya Javayant UNQUALIFIED
Smith H OldroydUnited KingdomOnyama Limba QUALIFIED
Misaki T AlbaresGermanyBernardo Dominic QUALIFIED
Faith M KuskoArgentinaAnna Fali NEGOTIATION
Kaitlin J SlusarskiCanadaIoni Bowcher NEGOTIATION
Johnson H CaudyFranceStephen Shaw PROPOSAL
Kadeem H NickaJapanAmy Elsner NEW
Darci F GlickFranceIoni Bowcher RENEWAL
Ricardo D MaletCanadaStephen Shaw RENEWAL
Maisha Q InouyeJapanStephen Shaw UNQUALIFIED
Cody R StensethAustraliaAmy Elsner NEGOTIATION
Stacey F GillianIndiaIvan Magalhaes NEGOTIATION
Silvio Z CaudyRussiaAsiya Javayant RENEWAL
Mayumi M DoeSpainOnyama Limba PROPOSAL
Francesco C DoeArgentinaIoni Bowcher RENEWAL
Mujtaba O PaprockiItalyOnyama Limba PROPOSAL
Sinclair C SlusarskiItalyBernardo Dominic UNQUALIFIED
Juan H PerinIndiaIoni Bowcher PROPOSAL
Munro R RutaAustraliaElwin Sharvill PROPOSAL
Arvin J DoeArgentinaAnna Fali QUALIFIED
Clifford T SaylorsUnited KingdomBernardo Dominic QUALIFIED
Greenwood E AlbaresBrazilAsiya Javayant UNQUALIFIED
Isabel O MacleadRussiaXuxue Feng QUALIFIED
Maisha X NestleSpainOnyama Limba QUALIFIED
Chavez M RutaCanadaOnyama Limba RENEWAL
Claire Q CaudyCanadaAmy Elsner QUALIFIED
Deepesh B KolmetzFranceOnyama Limba PROPOSAL
Julie Y SaylorsJapanStephen Shaw NEW
Johnson L WhobreyGermanyXuxue Feng NEW
Rodrigues E StockhamGermanyAsiya Javayant PROPOSAL
Darci M SlusarskiSpainIoni Bowcher PROPOSAL
Frozen Columns
Name
Ricardo F Dilliard
Salvatore N Oldroyd
Kaitlin N Stockham
David L Kusko
Aika V Garufi
Isabel U Figeroa
Jefferson P Rim
Wickens T Stenseth
Salvatore W Albares
Aika Q Paprocki
Morrow E Amigon
Munro E Dilliard
Ricardo F Venere
Greenwood T Foller
Tony T Morasca
Murillo Y Gillian
Stacey W Glick
Johnson P Whobrey
Salvatore U Waycott
Kadeem J Paprocki
Silvio Y Glick
Wickens M Nestle
Aika V Schemmer
Juan N Kolmetz
Arvin Y Oldroyd
Emily Y Chui
Chavez Z Chui
Salvatore I Oldroyd
Ashley U Poquette
Smith Q Bowley
Jennifer I Amigon
Aruna N Stockham
James G Paprocki
Deepesh L Doe
Adams K Stockham
Ashley K Maclead
Leon I Doe
Johnson Y Paprocki
Kaitlin H Ferencz
Mujtaba O Rulapaugh
Clifford V Butt
Juan I Darakjy
Antonio L Amigon
Isabel Y Venere
Ivar A Paprocki
Alejandro W Poquette
Darci N Poquette
Sinclair R Oldroyd
Jennifer V Wieser
Cody A Marrier
IdCountryDate
1000Italy2026-08-04
1001Japan2026-08-11
1002Brazil2026-08-19
1003Canada2026-08-03
1004Germany2026-08-13
1005Canada2026-08-22
1006United Kingdom2026-08-20
1007France2026-08-04
1008Russia2026-07-31
1009United Kingdom2026-08-09
1010Australia2026-08-05
1011Italy2026-07-28
1012Spain2026-08-22
1013Brazil2026-08-03
1014Germany2026-08-21
1015Spain2026-08-13
1016Brazil2026-07-28
1017India2026-08-03
1018United Kingdom2026-08-24
1019Russia2026-07-29
1020Canada2026-07-30
1021Italy2026-08-12
1022Australia2026-07-31
1023Argentina2026-08-09
1024Brazil2026-08-02
1025Japan2026-08-10
1026France2026-08-21
1027Canada2026-07-30
1028Australia2026-08-15
1029India2026-08-04
1030Italy2026-08-03
1031Argentina2026-08-22
1032Italy2026-07-30
1033India2026-08-01
1034Japan2026-08-24
1035Brazil2026-08-21
1036Spain2026-08-23
1037Spain2026-08-14
1038Italy2026-08-20
1039Brazil2026-08-02
1040United Kingdom2026-08-15
1041Argentina2026-08-20
1042Australia2026-08-24
1043Spain2026-08-24
1044United Kingdom2026-08-16
1045United Kingdom2026-07-31
1046India2026-08-09
1047Brazil2026-08-02
1048Germany2026-08-24
1049Germany2026-08-22

On-Demand Data

NameIdCountryDate
Morrow W Briddick1000Spain2026-07-31
Claire B Gaucho1001France2026-07-29
Emily E Malet1002India2026-08-04
Darci I Dilliard1003France2026-08-24
Alejandro O Ostrosky1004Italy2026-07-29
David M Inouye1005Italy2026-08-07
Claire G Kusko1006Canada2026-08-15
Ricardo M Poquette1007Canada2026-08-01
Stacey I Ostrosky1008Brazil2026-08-23
Izzy A Waycott1009Canada2026-08-01
Deepesh V Bolognia1010Italy2026-08-14
Faith O Sergi1011France2026-08-07
Adams Z Maclead1012Germany2026-08-15
Francesco F Royster1013Italy2026-08-23
Clifford I Venere1014Australia2026-08-25
Silvio U Kolmetz1015United Kingdom2026-08-02
Isabel N Flosi1016Germany2026-08-25
Mujtaba M Royster1017United Kingdom2026-08-23
Antonio X Oldroyd1018Brazil2026-07-29
Kadeem L Figeroa1019Italy2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair U FigeroaIndiaIoni Bowcher PROPOSAL
Jennifer J PerinArgentinaIoni Bowcher PROPOSAL
James Y IturbideCanadaOnyama Limba UNQUALIFIED
Aditya W BriddickAustraliaElwin Sharvill NEW
Octavia J MaletRussiaBernardo Dominic QUALIFIED
James M ChuiSpainXuxue Feng UNQUALIFIED
Ricardo G SergiItalyIoni Bowcher RENEWAL
Johnson S BriddickBrazilStephen Shaw NEW
Morrow P FerenczJapanAnna Fali NEGOTIATION
Emily G MaletJapanStephen Shaw UNQUALIFIED
Munro T BologniaUnited KingdomOnyama Limba NEGOTIATION
Misaki Q VenereSpainXuxue Feng NEGOTIATION
Adams B PoquetteRussiaIvan Magalhaes NEW
Claire E DarakjyAustraliaIvan Magalhaes QUALIFIED
Cody X CaudyJapanAnna Fali NEGOTIATION
Aruna T RulapaughFranceAsiya Javayant QUALIFIED
Claire T DarakjyFranceOnyama Limba NEGOTIATION
Aditya C GlickCanadaStephen Shaw QUALIFIED
Nicolas Y MarrierBrazilBernardo Dominic QUALIFIED
Leon T TollnerSpainIvan Magalhaes NEW
Rodrigues K MorascaCanadaXuxue Feng NEGOTIATION
Juan T PerinIndiaIoni Bowcher NEW
Stacey C PaprockiFranceOnyama Limba UNQUALIFIED
Deepesh D ShinkoBrazilAsiya Javayant PROPOSAL
Mayumi T KuskoCanadaStephen Shaw PROPOSAL
James D FerenczBrazilAsiya Javayant PROPOSAL
Salvatore A CaudyCanadaAmy Elsner RENEWAL
Greenwood X GauchoIndiaBernardo Dominic NEGOTIATION
Leja J BowleyGermanyXuxue Feng QUALIFIED
Kadeem A SaylorsIndiaAsiya Javayant NEW
David B KuskoAustraliaIvan Magalhaes NEW
James D KuskoAustraliaXuxue Feng QUALIFIED
Clifford H FigeroaArgentinaElwin Sharvill NEGOTIATION
Munro D WieserUnited KingdomAsiya Javayant QUALIFIED
James P SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Stacey Q ButtAustraliaOnyama Limba PROPOSAL
Munro E VenereBrazilXuxue Feng RENEWAL
Octavia M RoysterBrazilAsiya Javayant UNQUALIFIED
Arvin A MarrierUnited KingdomOnyama Limba NEGOTIATION
Johnson Z StensethItalyAsiya Javayant 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>