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
Aditya F SchemmerAustraliaBernardo Dominic RENEWAL
Ashley G VocelkaIndiaIvan Magalhaes NEW
Clifford S ChuiFranceAnna Fali NEW
Adams E FigeroaUnited KingdomElwin Sharvill NEW
David F VocelkaUnited KingdomStephen Shaw PROPOSAL
Julie S RimCanadaAsiya Javayant RENEWAL
Leon K StensethRussiaAnna Fali RENEWAL
Chavez V ChuiBrazilBernardo Dominic NEW
Deepesh M PaprockiUnited KingdomAnna Fali UNQUALIFIED
Misaki F BologniaJapanElwin Sharvill UNQUALIFIED
Claire W MaletUnited KingdomXuxue Feng NEW
Izzy W NestleJapanAnna Fali PROPOSAL
Kaitlin S OstroskyUnited KingdomXuxue Feng NEGOTIATION
Adams M RulapaughFranceIvan Magalhaes NEW
Silvio P DoeRussiaAsiya Javayant RENEWAL
Clifford Y CaudyJapanOnyama Limba NEW
Chavez F MorascaCanadaOnyama Limba UNQUALIFIED
Chavez F WieserSpainAsiya Javayant NEGOTIATION
Alejandro R SlusarskiIndiaIoni Bowcher NEGOTIATION
Aditya W OldroydFranceBernardo Dominic PROPOSAL
Deepesh B InouyeRussiaAsiya Javayant NEW
Ricardo Y RimSpainAnna Fali QUALIFIED
Jefferson A SchemmerIndiaOnyama Limba QUALIFIED
Antonio K BriddickRussiaIvan Magalhaes NEW
Octavia E FlosiUnited KingdomIvan Magalhaes PROPOSAL
Misaki H FerenczGermanyIvan Magalhaes NEW
Faith B FerenczItalyAnna Fali NEW
Antonio G TollnerJapanOnyama Limba NEW
Clifford J NickaIndiaIvan Magalhaes QUALIFIED
Chavez W AlbaresSpainIoni Bowcher PROPOSAL
Leon D AmigonCanadaAsiya Javayant UNQUALIFIED
Octavia B OstroskyJapanIoni Bowcher PROPOSAL
Aruna D KolmetzIndiaIvan Magalhaes UNQUALIFIED
Kadeem P IturbideCanadaXuxue Feng NEW
Cody V SlusarskiArgentinaIoni Bowcher RENEWAL
Stacey S FollerBrazilAmy Elsner QUALIFIED
Smith N SergiBrazilAnna Fali RENEWAL
Silvio Y FlosiArgentinaAsiya Javayant NEGOTIATION
Arvin Y AmigonItalyStephen Shaw NEW
Maisha H MaletAustraliaElwin Sharvill UNQUALIFIED
Maria J DilliardItalyOnyama Limba QUALIFIED
Juan X ChuiCanadaOnyama Limba PROPOSAL
Francesco U SlusarskiIndiaXuxue Feng RENEWAL
Cody K FlosiGermanyAsiya Javayant NEW
David C NickaArgentinaIoni Bowcher RENEWAL
Kaitlin T ChuiItalyAsiya Javayant RENEWAL
Jones D SchemmerFranceAsiya Javayant PROPOSAL
Wickens Z CaudyAustraliaIvan Magalhaes UNQUALIFIED
Octavia I GlickSpainAmy Elsner NEGOTIATION
Darci A MarrierIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Alejandro H MorascaUnited KingdomXuxue Feng UNQUALIFIED
Francesco D WaycottFranceXuxue Feng NEW
Jeanfrancois O MarrierIndiaAsiya Javayant PROPOSAL
Aika K PoquetteSpainOnyama Limba UNQUALIFIED
Isabel R SergiBrazilAnna Fali RENEWAL
Julie Y MorascaBrazilAnna Fali RENEWAL
Aditya N OstroskyRussiaBernardo Dominic PROPOSAL
Mayumi L ShinkoArgentinaBernardo Dominic UNQUALIFIED
Costa U VenereJapanIoni Bowcher NEGOTIATION
Arvin G TollnerCanadaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy X SaylorsUnited Kingdom2026-08-25Printing Dimensions NEW48Ivan Magalhaes
1001Francesco T NestleSpain2026-08-20Buckley Miller Wright NEW53Stephen Shaw
1002Clifford H CaldareraJapan2026-08-24Benton, John B Jr QUALIFIED0Ivan Magalhaes
1003Julie J MarrierGermany2026-08-01Printing Dimensions RENEWAL3Asiya Javayant
1004James Y WieserSpain2026-08-23Chanay, Jeffrey A Esq NEGOTIATION40Asiya Javayant
1005Juan N RoysterArgentina2026-08-20Benton, John B Jr UNQUALIFIED97Anna Fali
1006Ivar Q OldroydCanada2026-08-19Dorl, James J Esq PROPOSAL57Elwin Sharvill
1007Mayumi Z WaycottGermany2026-08-19Benton, John B Jr RENEWAL20Elwin Sharvill
1008Juan P RoysterItaly2026-08-20Feiner Bros NEW62Ioni Bowcher
1009Sinclair X VenereGermany2026-08-06Commercial Press NEGOTIATION50Elwin Sharvill
1010Kaitlin W OstroskyBrazil2026-08-30Chanay, Jeffrey A Esq NEW4Onyama Limba
1011Greenwood L OldroydUnited Kingdom2026-08-30Benton, John B Jr NEGOTIATION3Elwin Sharvill
1012Aruna P FollerRussia2026-08-05Morlong Associates NEW78Asiya Javayant
1013Francesco G MorascaJapan2026-08-05Commercial Press NEW39Onyama Limba
1014Aika Y CaudyRussia2026-08-17Chemel, James L Cpa UNQUALIFIED92Asiya Javayant
1015Antonio C BologniaCanada2026-08-09Chemel, James L Cpa NEW28Ivan Magalhaes
1016Ashley X ButtSpain2026-08-05Benton, John B Jr UNQUALIFIED21Stephen Shaw
1017Aika L SlusarskiJapan2026-08-25Morlong Associates QUALIFIED85Bernardo Dominic
1018Aika V FerenczGermany2026-08-20Feltz Printing Service NEGOTIATION93Anna Fali
1019Clifford N NestleUnited Kingdom2026-08-01King, Christopher A Esq NEW56Onyama Limba
1020Tony V InouyeFrance2026-08-15Feiner Bros RENEWAL86Asiya Javayant
1021Darci N ButtGermany2026-08-22Commercial Press NEGOTIATION81Ioni Bowcher
1022Maisha A PerinArgentina2026-08-19Benton, John B Jr PROPOSAL87Ivan Magalhaes
1023Ricardo K DarakjyCanada2026-08-30Dorl, James J Esq PROPOSAL30Onyama Limba
1024Tony K RimIndia2026-08-28Rousseaux, Michael Esq QUALIFIED4Ivan Magalhaes
1025Julie V MaletSpain2026-08-03King, Christopher A Esq UNQUALIFIED88Asiya Javayant
1026Arvin L NestleCanada2026-08-02Printing Dimensions NEGOTIATION78Xuxue Feng
1027Aditya D BowleySpain2026-08-20King, Christopher A Esq PROPOSAL43Asiya Javayant
1028Smith U PoquetteGermany2026-08-23King, Christopher A Esq PROPOSAL94Ivan Magalhaes
1029Aditya T BologniaAustralia2026-08-29Rousseaux, Michael Esq UNQUALIFIED41Xuxue Feng
1030Stacey C MaletAustralia2026-08-26Benton, John B Jr PROPOSAL55Asiya Javayant
1031Jennifer W ButtJapan2026-08-26Benton, John B Jr QUALIFIED98Amy Elsner
1032Morrow K GillianSpain2026-08-10Rangoni Of Florence UNQUALIFIED45Ivan Magalhaes
1033Silvio C MaletJapan2026-08-19Rangoni Of Florence NEGOTIATION61Anna Fali
1034Johnson B PerinArgentina2026-08-17Feiner Bros PROPOSAL52Anna Fali
1035Chavez Q ShinkoSpain2026-08-29Truhlar And Truhlar Attys PROPOSAL64Asiya Javayant
1036Johnson T MorascaAustralia2026-08-17Chanay, Jeffrey A Esq QUALIFIED32Anna Fali
1037David E MacleadUnited Kingdom2026-08-05Printing Dimensions QUALIFIED49Elwin Sharvill
1038Jefferson F KuskoJapan2026-08-23Chapman, Ross E Esq QUALIFIED83Bernardo Dominic
1039Tony K VocelkaAustralia2026-08-08King, Christopher A Esq UNQUALIFIED17Asiya Javayant
1040Alejandro D RoysterRussia2026-08-26Feiner Bros NEW33Amy Elsner
1041Claire B OstroskyJapan2026-08-08Feltz Printing Service UNQUALIFIED99Anna Fali
1042Julie D VocelkaGermany2026-08-02Chanay, Jeffrey A Esq PROPOSAL50Ivan Magalhaes
1043Deepesh H MaletCanada2026-08-22Feiner Bros NEW18Xuxue Feng
1044Antonio V PerinSpain2026-08-12Buckley Miller Wright UNQUALIFIED98Ivan Magalhaes
1045Silvio X WaycottIndia2026-08-23Commercial Press QUALIFIED22Bernardo Dominic
1046Ricardo G MacleadCanada2026-08-13Benton, John B Jr NEGOTIATION20Amy Elsner
1047Morrow D FigeroaSpain2026-08-16Benton, John B Jr RENEWAL30Anna Fali
1048Stacey W MarrierUnited Kingdom2026-08-05Dorl, James J Esq RENEWAL9Elwin Sharvill
1049Isabel G GlickFrance2026-08-09King, Christopher A Esq NEGOTIATION98Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Alejandro I ShinkoItalyElwin Sharvill NEGOTIATION
Silvio B KuskoItalyOnyama Limba NEGOTIATION
Misaki U MarrierIndiaOnyama Limba PROPOSAL
Silvio B RimAustraliaStephen Shaw QUALIFIED
Misaki I BologniaAustraliaElwin Sharvill RENEWAL
Alejandro M MaletGermanyIoni Bowcher RENEWAL
Izzy H InouyeBrazilIoni Bowcher RENEWAL
Jennifer A PaprockiItalyOnyama Limba NEW
Claire V KolmetzItalyAmy Elsner PROPOSAL
James A ButtRussiaIoni Bowcher NEGOTIATION
Deepesh C WhobreyAustraliaXuxue Feng QUALIFIED
Julie N CampainArgentinaIvan Magalhaes NEGOTIATION
James O KolmetzAustraliaAnna Fali UNQUALIFIED
Clifford S FerenczRussiaElwin Sharvill UNQUALIFIED
Aika E BriddickItalyAnna Fali NEGOTIATION
Kadeem L RimAustraliaIvan Magalhaes NEGOTIATION
Smith H GillianGermanyAmy Elsner UNQUALIFIED
Sinclair H OldroydAustraliaIvan Magalhaes NEGOTIATION
Leon K DarakjyBrazilAsiya Javayant RENEWAL
David B SchemmerUnited KingdomAmy Elsner QUALIFIED
Greenwood Z SergiIndiaAsiya Javayant PROPOSAL
Costa D FigeroaItalyElwin Sharvill QUALIFIED
Leon O DarakjyCanadaAmy Elsner RENEWAL
Costa K PerinBrazilBernardo Dominic PROPOSAL
Misaki O FigeroaBrazilElwin Sharvill RENEWAL
Stacey W SlusarskiIndiaAmy Elsner QUALIFIED
Adams F KolmetzIndiaIoni Bowcher PROPOSAL
Maisha B SergiUnited KingdomElwin Sharvill QUALIFIED
Tony T PoquetteGermanyStephen Shaw PROPOSAL
Emily W SchemmerArgentinaElwin Sharvill PROPOSAL
Johnson K PerinUnited KingdomIvan Magalhaes QUALIFIED
Isabel G OldroydArgentinaAsiya Javayant NEW
Arvin H BowleySpainAmy Elsner QUALIFIED
Costa W AmigonRussiaAsiya Javayant UNQUALIFIED
Chavez T OldroydCanadaIvan Magalhaes PROPOSAL
Costa L GlickIndiaIoni Bowcher PROPOSAL
Nicolas C GauchoIndiaStephen Shaw UNQUALIFIED
Antonio E KolmetzRussiaElwin Sharvill UNQUALIFIED
Ricardo G ChuiAustraliaElwin Sharvill QUALIFIED
Chavez D FigeroaGermanyOnyama Limba QUALIFIED
Adams G SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Adams K BowleyIndiaOnyama Limba NEW
Julie D KolmetzAustraliaElwin Sharvill QUALIFIED
Chavez V PoquetteRussiaAmy Elsner UNQUALIFIED
Sinclair P CampainIndiaXuxue Feng UNQUALIFIED
Smith X WieserCanadaXuxue Feng NEW
Jennifer Z InouyeGermanyXuxue Feng UNQUALIFIED
Jennifer L CampainCanadaAmy Elsner PROPOSAL
Ricardo Z MacleadGermanyIoni Bowcher NEGOTIATION
Faith R FollerArgentinaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Silvio S Sergi
Francesco E Rulapaugh
Murillo I Nicka
Mayumi Y Shinko
Leja M Bolognia
Emily F Vocelka
Cody C Poquette
Izzy V Rulapaugh
Ashley C Butt
David X Tollner
David D Gillian
Octavia B Slusarski
Jones L Whobrey
Johnson C Figeroa
Leon U Ruta
Francesco K Ferencz
Adams E Whobrey
Alejandro E Waycott
Salvatore M Ruta
Izzy O Marrier
Misaki O Caldarera
Costa U Briddick
Kadeem M Gillian
Isabel I Paprocki
Arvin C Bowley
Cody C Rulapaugh
Ricardo H Amigon
Stacey R Rim
Isabel P Garufi
Isabel C Schemmer
Costa T Iturbide
Stacey K Kolmetz
Leja G Poquette
Leon W Malet
James R Saylors
Kaitlin E Slusarski
Julie F Ostrosky
Leon D Malet
Isabel V Caudy
Murillo P Marrier
Isabel N Stockham
Morrow A Ostrosky
Jeanfrancois V Schemmer
Aika C Rulapaugh
Jones B Bolognia
Silvio N Saylors
Silvio Q Ferencz
Stacey B Caudy
Darci I Marrier
Mayumi Z Iturbide
IdCountryDate
1000India2026-08-05
1001Canada2026-08-07
1002India2026-08-06
1003Canada2026-08-28
1004Canada2026-08-19
1005France2026-08-13
1006Canada2026-08-05
1007Canada2026-08-22
1008Italy2026-08-09
1009France2026-08-09
1010Spain2026-08-18
1011United Kingdom2026-08-19
1012United Kingdom2026-08-07
1013Australia2026-08-23
1014Germany2026-08-27
1015Brazil2026-08-30
1016Australia2026-08-10
1017Japan2026-08-11
1018France2026-08-07
1019Italy2026-08-18
1020United Kingdom2026-08-23
1021Japan2026-08-22
1022Japan2026-08-17
1023Russia2026-08-28
1024France2026-08-02
1025Japan2026-08-28
1026Italy2026-08-24
1027Brazil2026-08-22
1028Russia2026-08-16
1029Spain2026-08-09
1030Canada2026-08-25
1031India2026-08-04
1032France2026-08-29
1033France2026-08-12
1034France2026-08-27
1035United Kingdom2026-08-19
1036Australia2026-08-06
1037Australia2026-08-21
1038Brazil2026-08-16
1039United Kingdom2026-08-13
1040Russia2026-08-22
1041Spain2026-08-15
1042Germany2026-08-22
1043Japan2026-08-10
1044Japan2026-08-09
1045Germany2026-08-08
1046Argentina2026-08-08
1047United Kingdom2026-08-04
1048Germany2026-08-25
1049Brazil2026-08-18

On-Demand Data

NameIdCountryDate
Sinclair Q Kusko1000Japan2026-08-19
Mayumi G Ruta1001Argentina2026-08-20
Munro V Oldroyd1002Italy2026-08-06
Maria G Stockham1003Russia2026-08-10
Francesco J Briddick1004Brazil2026-08-02
Mayumi J Malet1005United Kingdom2026-08-01
Tony S Campain1006Canada2026-08-25
Juan V Nestle1007Italy2026-08-23
Alejandro F Oldroyd1008India2026-08-25
Leja V Ruta1009Italy2026-08-08
Octavia N Maclead1010Italy2026-08-24
David U Vocelka1011Argentina2026-08-06
Leon T Shinko1012Argentina2026-08-18
Ivar N Glick1013Italy2026-08-10
Deepesh B Paprocki1014France2026-08-01
Jefferson W Nestle1015France2026-08-03
Chavez R Gillian1016Japan2026-08-27
Octavia U Shinko1017Germany2026-08-10
Francesco I Rim1018United Kingdom2026-08-27
Cody H Maclead1019Japan2026-08-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James B GarufiFranceStephen Shaw NEW
Mujtaba G MacleadBrazilIoni Bowcher NEW
Darci J InouyeGermanyIoni Bowcher UNQUALIFIED
Antonio M DarakjyCanadaStephen Shaw RENEWAL
Claire R BriddickCanadaIvan Magalhaes NEW
Aruna X VocelkaBrazilOnyama Limba NEGOTIATION
Clifford V GauchoBrazilAsiya Javayant RENEWAL
Wickens M GarufiArgentinaElwin Sharvill NEW
Leon T GauchoItalyStephen Shaw UNQUALIFIED
Ricardo J FigeroaJapanStephen Shaw NEW
Antonio Y RimJapanAmy Elsner NEGOTIATION
Tony Y InouyeBrazilAnna Fali NEGOTIATION
Misaki H WaycottArgentinaXuxue Feng PROPOSAL
Alejandro I NestleArgentinaBernardo Dominic RENEWAL
Juan Z GlickCanadaAnna Fali NEW
Claire J MaletArgentinaElwin Sharvill RENEWAL
Murillo C WhobreyJapanStephen Shaw NEW
Munro X DarakjySpainBernardo Dominic RENEWAL
Mayumi N SlusarskiBrazilOnyama Limba RENEWAL
Antonio A SchemmerSpainElwin Sharvill PROPOSAL
Sinclair G AmigonGermanyAmy Elsner UNQUALIFIED
Misaki N DilliardFranceIvan Magalhaes NEW
Smith C SaylorsFranceXuxue Feng UNQUALIFIED
Stacey A SaylorsIndiaIoni Bowcher QUALIFIED
Maisha Z IturbideGermanyAnna Fali NEGOTIATION
Silvio G RimGermanyAsiya Javayant UNQUALIFIED
Izzy U NestleArgentinaIoni Bowcher NEGOTIATION
Smith B MarrierSpainStephen Shaw RENEWAL
Mayumi X AmigonGermanyIoni Bowcher NEW
Ricardo Q NestleBrazilBernardo Dominic NEW
Juan C VenereFranceAnna Fali QUALIFIED
Mayumi E WieserArgentinaOnyama Limba NEGOTIATION
Isabel L StockhamGermanyStephen Shaw UNQUALIFIED
Faith Y GarufiGermanyAmy Elsner NEGOTIATION
Deepesh I RoysterItalyAnna Fali QUALIFIED
Claire X RoysterCanadaElwin Sharvill QUALIFIED
Stacey W DoeIndiaOnyama Limba RENEWAL
Faith Z MaletSpainElwin Sharvill UNQUALIFIED
Misaki Y SaylorsJapanStephen Shaw NEW
Leon U ChuiSpainStephen Shaw QUALIFIED

<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>