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 E CaldareraAustraliaXuxue Feng RENEWAL
Juan P StensethAustraliaAmy Elsner NEGOTIATION
Jeanfrancois O FerenczIndiaAsiya Javayant QUALIFIED
Antonio F RulapaughRussiaBernardo Dominic NEW
Rodrigues Z FlosiCanadaOnyama Limba RENEWAL
Deepesh E MorascaArgentinaAsiya Javayant NEGOTIATION
David Y DarakjyAustraliaAnna Fali UNQUALIFIED
Smith Q SaylorsItalyStephen Shaw PROPOSAL
Ashley F RutaUnited KingdomAmy Elsner UNQUALIFIED
Jefferson L FlosiItalyAsiya Javayant NEW
Mujtaba Q ChuiIndiaOnyama Limba NEW
Munro H SaylorsIndiaAsiya Javayant PROPOSAL
Silvio E CaldareraJapanAsiya Javayant PROPOSAL
Murillo Q CaldareraSpainAnna Fali NEGOTIATION
Tony U DarakjyItalyAmy Elsner NEGOTIATION
Emily F RutaBrazilXuxue Feng UNQUALIFIED
Costa G RoysterSpainElwin Sharvill PROPOSAL
Aditya A SchemmerJapanStephen Shaw PROPOSAL
David X CampainFranceAsiya Javayant QUALIFIED
Jennifer N DoeAustraliaAnna Fali NEGOTIATION
Wickens K IturbideBrazilIoni Bowcher PROPOSAL
Mujtaba B RutaSpainAnna Fali NEW
Maria E OstroskyGermanyAnna Fali PROPOSAL
Francesco V ChuiUnited KingdomBernardo Dominic PROPOSAL
Stacey B MorascaBrazilBernardo Dominic PROPOSAL
Octavia N AlbaresJapanIoni Bowcher PROPOSAL
Maria U PerinAustraliaBernardo Dominic PROPOSAL
Francesco B VenereIndiaIvan Magalhaes UNQUALIFIED
Mayumi L VocelkaJapanIoni Bowcher PROPOSAL
James Q KolmetzItalyAnna Fali PROPOSAL
Aika T WhobreyIndiaStephen Shaw QUALIFIED
Jennifer K WhobreyCanadaAsiya Javayant NEGOTIATION
Mujtaba Z TollnerIndiaAnna Fali UNQUALIFIED
Aika S PoquetteBrazilAmy Elsner NEGOTIATION
Aditya U FollerUnited KingdomAsiya Javayant PROPOSAL
Costa H DilliardCanadaAnna Fali NEW
Stacey F BriddickFranceOnyama Limba PROPOSAL
Kadeem E CaudyArgentinaBernardo Dominic RENEWAL
Greenwood B CaudyJapanXuxue Feng UNQUALIFIED
Deepesh F AlbaresArgentinaAsiya Javayant PROPOSAL
Maisha U RutaIndiaXuxue Feng UNQUALIFIED
Jeanfrancois W StensethGermanyBernardo Dominic NEGOTIATION
Nicolas I FlosiGermanyAnna Fali RENEWAL
Antonio V MaletAustraliaOnyama Limba NEW
Tony N GlickAustraliaIvan Magalhaes UNQUALIFIED
Jennifer F MaletUnited KingdomOnyama Limba NEW
Nicolas Q AmigonItalyStephen Shaw RENEWAL
Silvio E ChuiItalyAmy Elsner PROPOSAL
Sinclair O FerenczAustraliaAmy Elsner RENEWAL
Mujtaba J VocelkaIndiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo W DoeUnited KingdomBernardo Dominic NEW
Juan B ShinkoAustraliaElwin Sharvill UNQUALIFIED
Ivar X NestleArgentinaIoni Bowcher RENEWAL
Aditya Z ButtGermanyXuxue Feng PROPOSAL
Cody T TollnerAustraliaStephen Shaw UNQUALIFIED
Faith D SergiBrazilIvan Magalhaes NEW
Octavia B RimUnited KingdomXuxue Feng UNQUALIFIED
Leon H KuskoItalyXuxue Feng PROPOSAL
Alejandro A WhobreyAustraliaOnyama Limba NEGOTIATION
Juan X PaprockiUnited KingdomElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony K BriddickGermany2026-08-01Feltz Printing Service PROPOSAL87Ivan Magalhaes
1001Jennifer O PoquetteRussia2026-07-28Chapman, Ross E Esq PROPOSAL40Ioni Bowcher
1002Deepesh S StensethAustralia2026-07-09Truhlar And Truhlar Attys RENEWAL61Onyama Limba
1003Sinclair G VenereIndia2026-07-11Dorl, James J Esq PROPOSAL47Amy Elsner
1004Rodrigues L PaprockiGermany2026-07-14Benton, John B Jr NEGOTIATION22Bernardo Dominic
1005Johnson I WhobreyAustralia2026-07-31Commercial Press NEW99Anna Fali
1006Claire X DoeItaly2026-08-03King, Christopher A Esq NEGOTIATION32Ioni Bowcher
1007Emily S TollnerItaly2026-07-30Morlong Associates NEW52Asiya Javayant
1008Leja H InouyeCanada2026-07-29Rousseaux, Michael Esq QUALIFIED3Xuxue Feng
1009Ricardo W CampainIndia2026-07-13Chemel, James L Cpa NEGOTIATION14Elwin Sharvill
1010Ricardo W GarufiFrance2026-07-28Rangoni Of Florence PROPOSAL21Anna Fali
1011Jeanfrancois R GauchoBrazil2026-08-07Chanay, Jeffrey A Esq NEW40Amy Elsner
1012Kadeem R VenereCanada2026-07-12Commercial Press RENEWAL9Stephen Shaw
1013Ashley I GauchoJapan2026-07-21Morlong Associates PROPOSAL75Onyama Limba
1014Izzy N CaldareraFrance2026-07-16Truhlar And Truhlar Attys RENEWAL85Xuxue Feng
1015Isabel V BowleyUnited Kingdom2026-07-24Truhlar And Truhlar Attys PROPOSAL63Onyama Limba
1016Julie N AmigonItaly2026-07-09Commercial Press PROPOSAL55Stephen Shaw
1017Chavez C WieserFrance2026-07-25Truhlar And Truhlar Attys NEGOTIATION9Anna Fali
1018Costa C NestleItaly2026-07-29King, Christopher A Esq NEGOTIATION32Onyama Limba
1019Leja J SchemmerItaly2026-07-21Truhlar And Truhlar Attys NEGOTIATION81Stephen Shaw
1020Stacey I VenereUnited Kingdom2026-08-01Dorl, James J Esq NEGOTIATION47Anna Fali
1021Kadeem L RulapaughSpain2026-07-24Feiner Bros UNQUALIFIED2Asiya Javayant
1022Costa N CaldareraItaly2026-07-26Morlong Associates PROPOSAL88Ivan Magalhaes
1023Murillo N OstroskyGermany2026-07-21Commercial Press QUALIFIED55Ioni Bowcher
1024Salvatore L MaletBrazil2026-07-19Feiner Bros QUALIFIED45Ioni Bowcher
1025Adams M SlusarskiArgentina2026-08-03Morlong Associates PROPOSAL37Xuxue Feng
1026Salvatore J WieserFrance2026-07-20Chapman, Ross E Esq RENEWAL37Ivan Magalhaes
1027Kadeem Q RimCanada2026-07-24Chemel, James L Cpa PROPOSAL74Stephen Shaw
1028Alejandro F NickaUnited Kingdom2026-07-26Benton, John B Jr PROPOSAL91Anna Fali
1029Jennifer P OldroydBrazil2026-07-29Feltz Printing Service RENEWAL29Ivan Magalhaes
1030David R KolmetzFrance2026-08-01Feiner Bros NEGOTIATION58Amy Elsner
1031Claire V VenereJapan2026-07-30Feiner Bros RENEWAL30Anna Fali
1032Faith V DoeJapan2026-07-31Printing Dimensions PROPOSAL45Ioni Bowcher
1033Kaitlin U CampainArgentina2026-07-10Dorl, James J Esq QUALIFIED95Ivan Magalhaes
1034Tony X BologniaItaly2026-08-03Morlong Associates NEGOTIATION80Xuxue Feng
1035Chavez T MacleadRussia2026-07-17Feltz Printing Service NEW41Onyama Limba
1036Deepesh H CaudyFrance2026-08-03Rangoni Of Florence NEGOTIATION49Elwin Sharvill
1037Smith K NickaGermany2026-07-10Rousseaux, Michael Esq NEGOTIATION40Amy Elsner
1038Jeanfrancois G VenereAustralia2026-08-01Commercial Press NEW50Stephen Shaw
1039Jeanfrancois G GillianUnited Kingdom2026-07-28Chemel, James L Cpa NEGOTIATION23Ivan Magalhaes
1040Ivar H MorascaBrazil2026-07-17Truhlar And Truhlar Attys NEGOTIATION9Elwin Sharvill
1041Salvatore I ButtArgentina2026-08-02Morlong Associates RENEWAL41Bernardo Dominic
1042Morrow I NestleGermany2026-07-30Commercial Press RENEWAL18Ivan Magalhaes
1043Johnson Z TollnerArgentina2026-08-06Chemel, James L Cpa PROPOSAL91Amy Elsner
1044Antonio V AlbaresRussia2026-08-04Printing Dimensions PROPOSAL46Elwin Sharvill
1045Alejandro X WhobreyFrance2026-07-30Commercial Press NEGOTIATION0Ioni Bowcher
1046Nicolas B CaudyAustralia2026-07-10Chanay, Jeffrey A Esq NEGOTIATION0Elwin Sharvill
1047Julie R OstroskyArgentina2026-07-16Rousseaux, Michael Esq QUALIFIED18Elwin Sharvill
1048Jones L MaletGermany2026-07-19Printing Dimensions NEGOTIATION13Xuxue Feng
1049Jones Z MaletRussia2026-08-06Chapman, Ross E Esq NEW84Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Alejandro S CaldareraGermanyAmy Elsner RENEWAL
Cody G ChuiArgentinaOnyama Limba NEW
Kaitlin F GauchoCanadaOnyama Limba NEGOTIATION
Adams V PerinCanadaBernardo Dominic PROPOSAL
Francesco G MorascaAustraliaBernardo Dominic QUALIFIED
Costa T TollnerItalyAsiya Javayant NEW
Greenwood G FerenczIndiaAsiya Javayant PROPOSAL
Kadeem H WaycottUnited KingdomStephen Shaw NEW
David D FigeroaGermanyIoni Bowcher NEW
Misaki J MorascaCanadaAmy Elsner UNQUALIFIED
Mayumi H WhobreyGermanyIvan Magalhaes QUALIFIED
Aditya A VocelkaFranceOnyama Limba PROPOSAL
Wickens L MaletIndiaAnna Fali NEW
Clifford D MaletItalyElwin Sharvill UNQUALIFIED
Octavia Y NickaIndiaElwin Sharvill UNQUALIFIED
Juan A SchemmerGermanyElwin Sharvill NEGOTIATION
Claire W FollerArgentinaXuxue Feng NEGOTIATION
Kadeem B InouyeGermanyBernardo Dominic QUALIFIED
Mayumi J WhobreyArgentinaBernardo Dominic UNQUALIFIED
Mujtaba R GillianIndiaBernardo Dominic NEGOTIATION
Rodrigues Y GarufiArgentinaIvan Magalhaes PROPOSAL
Darci X GauchoItalyAmy Elsner RENEWAL
Aditya W CampainSpainAsiya Javayant RENEWAL
Munro V VenereJapanAsiya Javayant PROPOSAL
Costa X NickaUnited KingdomIoni Bowcher NEGOTIATION
Adams V SchemmerRussiaAnna Fali PROPOSAL
Octavia F WaycottArgentinaIvan Magalhaes RENEWAL
James V FollerArgentinaOnyama Limba PROPOSAL
Faith P KuskoFranceAsiya Javayant UNQUALIFIED
Mayumi X RulapaughGermanyBernardo Dominic QUALIFIED
Claire F MarrierFranceBernardo Dominic QUALIFIED
Izzy Z VenereBrazilAmy Elsner NEW
Munro W RoysterAustraliaAsiya Javayant NEW
Kadeem S RoysterCanadaStephen Shaw RENEWAL
Arvin Q RulapaughItalyAsiya Javayant NEW
Salvatore M SlusarskiArgentinaAsiya Javayant QUALIFIED
Morrow M FigeroaIndiaAmy Elsner PROPOSAL
Sinclair N WhobreyItalyAnna Fali QUALIFIED
Aditya K GauchoBrazilOnyama Limba NEW
Cody G KolmetzAustraliaIoni Bowcher QUALIFIED
Jefferson M KuskoJapanIoni Bowcher RENEWAL
Sinclair F OstroskyItalyIoni Bowcher QUALIFIED
James N SaylorsRussiaAnna Fali NEGOTIATION
David V BologniaFranceIoni Bowcher NEW
Rodrigues G PaprockiBrazilBernardo Dominic NEGOTIATION
Chavez C DoeAustraliaAmy Elsner QUALIFIED
Munro X CampainGermanyXuxue Feng NEW
Morrow G RutaBrazilIoni Bowcher UNQUALIFIED
Aditya I StockhamRussiaOnyama Limba PROPOSAL
Misaki M MorascaItalyElwin Sharvill QUALIFIED
Frozen Columns
Name
James S Sergi
Ivar O Campain
Wickens H Vocelka
Tony H Bowley
Aruna A Bolognia
Rodrigues C Shinko
Aika U Saylors
Julie U Bowley
Deepesh S Darakjy
Leon P Campain
Antonio F Royster
Tony T Saylors
Aditya P Foller
Jones J Vocelka
Faith V Briddick
Wickens O Saylors
Silvio U Malet
Darci U Caudy
Jones F Chui
Murillo V Rim
Darci V Iturbide
James Y Oldroyd
Leon Z Dilliard
Munro W Inouye
Rodrigues S Rim
Salvatore E Caudy
Smith W Amigon
Aruna A Rim
Arvin A Dilliard
Clifford Z Waycott
Misaki K Whobrey
Nicolas L Ruta
Arvin C Schemmer
Jones K Slusarski
Munro V Saylors
Clifford A Gillian
Wickens Z Paprocki
Ashley D Ferencz
Chavez U Stenseth
Aruna O Wieser
Cody P Venere
Stacey X Oldroyd
Darci Q Morasca
Tony Q Stockham
Johnson E Whobrey
Izzy J Bowley
Munro J Albares
Mujtaba Y Tollner
Octavia X Malet
Smith Q Whobrey
IdCountryDate
1000Canada2026-07-21
1001United Kingdom2026-07-20
1002Japan2026-07-10
1003Russia2026-08-06
1004France2026-07-11
1005Germany2026-08-06
1006Brazil2026-08-01
1007Argentina2026-07-09
1008United Kingdom2026-07-10
1009Japan2026-07-19
1010India2026-07-19
1011France2026-07-28
1012Argentina2026-07-18
1013India2026-07-26
1014Canada2026-07-10
1015Australia2026-07-23
1016India2026-07-26
1017Australia2026-07-16
1018United Kingdom2026-07-23
1019Brazil2026-07-09
1020United Kingdom2026-07-17
1021Australia2026-07-18
1022Japan2026-07-24
1023India2026-08-02
1024Italy2026-07-21
1025France2026-07-23
1026Japan2026-07-30
1027Australia2026-08-04
1028France2026-07-22
1029Canada2026-07-22
1030Japan2026-07-13
1031Japan2026-07-18
1032United Kingdom2026-07-30
1033Germany2026-07-26
1034Spain2026-08-06
1035Argentina2026-07-30
1036United Kingdom2026-07-20
1037Australia2026-07-29
1038Argentina2026-07-23
1039Japan2026-08-06
1040Australia2026-07-25
1041Italy2026-07-22
1042Germany2026-07-27
1043Japan2026-07-19
1044Italy2026-08-03
1045Canada2026-07-11
1046United Kingdom2026-07-10
1047Spain2026-07-23
1048Italy2026-08-06
1049Australia2026-07-27

On-Demand Data

NameIdCountryDate
Mayumi E Dilliard1000Brazil2026-07-18
Deepesh L Kusko1001France2026-07-23
Leja X Caudy1002Spain2026-08-03
Leon M Tollner1003Russia2026-07-19
Leon Y Rim1004Canada2026-08-07
Ivar E Perin1005Russia2026-07-11
Murillo Z Slusarski1006United Kingdom2026-07-14
Kadeem U Rim1007Brazil2026-07-26
Francesco T Bolognia1008Canada2026-07-13
Silvio H Vocelka1009Japan2026-08-03
Octavia N Marrier1010Brazil2026-07-12
Maria T Morasca1011France2026-07-27
Leon R Campain1012Japan2026-08-02
Salvatore E Dilliard1013Spain2026-07-15
Aditya K Saylors1014Spain2026-07-23
Kaitlin X Maclead1015Japan2026-07-28
Ricardo P Glick1016United Kingdom2026-07-28
Kaitlin H Kolmetz1017Argentina2026-08-04
David E Ostrosky1018France2026-07-12
Aika M Amigon1019France2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez F DarakjyBrazilXuxue Feng PROPOSAL
Smith M SchemmerJapanBernardo Dominic UNQUALIFIED
Greenwood G PaprockiIndiaXuxue Feng NEW
Salvatore N SaylorsCanadaIoni Bowcher NEGOTIATION
Jones U BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Antonio V WaycottUnited KingdomElwin Sharvill RENEWAL
Rodrigues J SchemmerGermanyIvan Magalhaes NEW
Antonio V WieserIndiaStephen Shaw UNQUALIFIED
Aruna X MacleadCanadaXuxue Feng PROPOSAL
Silvio E StensethFranceIoni Bowcher PROPOSAL
Kaitlin R WaycottBrazilAsiya Javayant NEW
Chavez R GarufiGermanyIvan Magalhaes NEGOTIATION
Emily K MaletCanadaElwin Sharvill NEGOTIATION
David G WhobreySpainAsiya Javayant QUALIFIED
Emily T MorascaCanadaXuxue Feng NEW
Salvatore Q GauchoUnited KingdomIoni Bowcher PROPOSAL
Munro J RulapaughUnited KingdomElwin Sharvill NEGOTIATION
Alejandro K PoquetteFranceAmy Elsner RENEWAL
Sinclair M FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Murillo N StockhamRussiaAmy Elsner QUALIFIED
Jeanfrancois R VenereItalyOnyama Limba QUALIFIED
Murillo G FlosiSpainAmy Elsner QUALIFIED
Costa S AmigonAustraliaXuxue Feng QUALIFIED
Kadeem K WaycottUnited KingdomAmy Elsner NEGOTIATION
Cody R RutaCanadaBernardo Dominic NEGOTIATION
Faith O AlbaresJapanElwin Sharvill NEGOTIATION
Nicolas K NestleRussiaAmy Elsner UNQUALIFIED
Kaitlin K OldroydIndiaElwin Sharvill NEW
Adams J StensethGermanyBernardo Dominic NEGOTIATION
Adams Z PoquetteGermanyStephen Shaw QUALIFIED
Faith I WieserUnited KingdomAsiya Javayant NEW
Sinclair L WhobreySpainXuxue Feng UNQUALIFIED
Mujtaba J MarrierRussiaIoni Bowcher RENEWAL
Nicolas J MarrierCanadaElwin Sharvill PROPOSAL
Murillo J DarakjyRussiaElwin Sharvill NEW
Aruna C WieserItalyStephen Shaw NEGOTIATION
Wickens X GauchoIndiaAnna Fali UNQUALIFIED
Isabel F SchemmerRussiaAnna Fali UNQUALIFIED
Adams U FlosiFranceIvan Magalhaes RENEWAL
Kaitlin X FollerArgentinaAsiya Javayant 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>