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
Kaitlin O TollnerCanadaAsiya Javayant UNQUALIFIED
Maria N MarrierCanadaElwin Sharvill UNQUALIFIED
Deepesh H GlickJapanElwin Sharvill QUALIFIED
Aika K PerinAustraliaIvan Magalhaes NEW
Isabel X VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Sinclair S AlbaresFranceAnna Fali UNQUALIFIED
Ashley N GlickFranceAnna Fali PROPOSAL
Wickens T FlosiFranceElwin Sharvill UNQUALIFIED
Chavez A RimArgentinaXuxue Feng NEGOTIATION
Ricardo B GarufiUnited KingdomOnyama Limba NEGOTIATION
Mayumi S CampainItalyIoni Bowcher PROPOSAL
Alejandro O VenereCanadaXuxue Feng QUALIFIED
Jeanfrancois P GillianGermanyElwin Sharvill RENEWAL
Silvio D RutaUnited KingdomAnna Fali UNQUALIFIED
Smith G StockhamArgentinaAsiya Javayant NEW
Mujtaba Q RimSpainAmy Elsner RENEWAL
Chavez Y MaletCanadaIoni Bowcher NEGOTIATION
Silvio X NickaCanadaStephen Shaw NEW
Darci T IturbideUnited KingdomIoni Bowcher RENEWAL
Mujtaba L WaycottRussiaAnna Fali NEGOTIATION
Cody J FlosiAustraliaOnyama Limba RENEWAL
Aika A CampainAustraliaIvan Magalhaes NEW
Deepesh Y MarrierSpainElwin Sharvill NEGOTIATION
Murillo W DarakjyFranceIvan Magalhaes PROPOSAL
Misaki B RimBrazilBernardo Dominic PROPOSAL
Costa A KolmetzSpainElwin Sharvill RENEWAL
Munro S ChuiRussiaBernardo Dominic RENEWAL
Salvatore H FlosiJapanOnyama Limba NEW
Juan L DoeAustraliaIoni Bowcher QUALIFIED
Francesco Q KuskoSpainOnyama Limba UNQUALIFIED
David M FerenczItalyStephen Shaw UNQUALIFIED
Deepesh I BriddickFranceAnna Fali UNQUALIFIED
Chavez J NickaBrazilOnyama Limba RENEWAL
Mujtaba V FigeroaBrazilBernardo Dominic RENEWAL
Alejandro C ShinkoBrazilBernardo Dominic UNQUALIFIED
Alejandro Y MaletUnited KingdomAnna Fali NEGOTIATION
Morrow M NestleAustraliaIoni Bowcher RENEWAL
Alejandro T FerenczCanadaBernardo Dominic RENEWAL
James I RimArgentinaXuxue Feng RENEWAL
Stacey U DoeSpainIoni Bowcher UNQUALIFIED
Smith G MaletUnited KingdomIvan Magalhaes QUALIFIED
Arvin O VenereBrazilStephen Shaw UNQUALIFIED
Kaitlin F WhobreySpainOnyama Limba NEGOTIATION
Octavia J WhobreyGermanyAsiya Javayant RENEWAL
Leja I PaprockiArgentinaAsiya Javayant QUALIFIED
Maisha S MaletGermanyStephen Shaw RENEWAL
Octavia A GlickGermanyBernardo Dominic UNQUALIFIED
Jefferson P MacleadJapanAnna Fali PROPOSAL
Costa O GlickJapanElwin Sharvill RENEWAL
Munro J GauchoUnited KingdomOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas C GarufiJapanAnna Fali QUALIFIED
Octavia C NestleGermanyAmy Elsner RENEWAL
Maria G WieserItalyIvan Magalhaes NEGOTIATION
Aika W CaudyCanadaAnna Fali QUALIFIED
Juan F StensethItalyAnna Fali RENEWAL
Stacey E RoysterRussiaAnna Fali NEGOTIATION
Darci N PoquetteAustraliaAsiya Javayant PROPOSAL
Mujtaba A MorascaArgentinaAnna Fali NEW
Tony X RutaGermanyElwin Sharvill NEW
Francesco L SaylorsSpainIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel N FigeroaFrance2026-07-27Rousseaux, Michael Esq UNQUALIFIED93Anna Fali
1001Cody M GillianRussia2026-07-21Morlong Associates NEGOTIATION69Asiya Javayant
1002Julie D BriddickUnited Kingdom2026-08-07Chanay, Jeffrey A Esq QUALIFIED73Ioni Bowcher
1003Murillo C RutaBrazil2026-08-04Rangoni Of Florence PROPOSAL15Elwin Sharvill
1004Stacey O FlosiArgentina2026-08-04Rangoni Of Florence NEGOTIATION30Ioni Bowcher
1005Arvin X OstroskyIndia2026-08-15Commercial Press RENEWAL57Ivan Magalhaes
1006Kaitlin X PerinAustralia2026-08-13Truhlar And Truhlar Attys UNQUALIFIED17Xuxue Feng
1007Deepesh O SchemmerCanada2026-07-24Rousseaux, Michael Esq NEGOTIATION74Ivan Magalhaes
1008Ricardo Y KolmetzIndia2026-08-08Morlong Associates NEW25Stephen Shaw
1009Salvatore A RulapaughCanada2026-08-08Rousseaux, Michael Esq RENEWAL23Elwin Sharvill
1010Aruna E CampainAustralia2026-08-12Feiner Bros UNQUALIFIED5Asiya Javayant
1011David I AlbaresGermany2026-08-13Benton, John B Jr NEGOTIATION2Ioni Bowcher
1012Jeanfrancois F SergiGermany2026-07-31Rangoni Of Florence NEW33Xuxue Feng
1013Emily I SergiIndia2026-08-18Chemel, James L Cpa NEGOTIATION1Amy Elsner
1014Juan S GauchoUnited Kingdom2026-08-06King, Christopher A Esq QUALIFIED90Anna Fali
1015Greenwood R OldroydGermany2026-08-11Feltz Printing Service PROPOSAL89Amy Elsner
1016James M GauchoUnited Kingdom2026-08-07Feltz Printing Service PROPOSAL6Anna Fali
1017Arvin K GauchoCanada2026-08-13Chapman, Ross E Esq RENEWAL84Ivan Magalhaes
1018Jeanfrancois R ChuiAustralia2026-07-23Feiner Bros NEGOTIATION66Xuxue Feng
1019Leja H ChuiFrance2026-08-04King, Christopher A Esq NEW47Amy Elsner
1020Kadeem T ChuiJapan2026-08-12Printing Dimensions NEGOTIATION21Anna Fali
1021Faith M WieserUnited Kingdom2026-08-05Buckley Miller Wright RENEWAL67Ioni Bowcher
1022Antonio O BowleyBrazil2026-08-17Benton, John B Jr UNQUALIFIED14Stephen Shaw
1023Arvin Q BowleyAustralia2026-07-27Morlong Associates NEW0Elwin Sharvill
1024Munro O InouyeIndia2026-08-07Truhlar And Truhlar Attys QUALIFIED36Amy Elsner
1025Johnson U DilliardRussia2026-08-04Chapman, Ross E Esq NEW92Stephen Shaw
1026Munro P DoeArgentina2026-08-10Rousseaux, Michael Esq PROPOSAL21Anna Fali
1027Jefferson W StensethRussia2026-08-09Printing Dimensions QUALIFIED78Ivan Magalhaes
1028Darci S MaletGermany2026-08-04Dorl, James J Esq NEW81Bernardo Dominic
1029Isabel O DilliardIndia2026-07-23Feiner Bros UNQUALIFIED10Asiya Javayant
1030Cody V StockhamAustralia2026-08-09King, Christopher A Esq RENEWAL96Stephen Shaw
1031Rodrigues T WieserUnited Kingdom2026-07-23Feltz Printing Service PROPOSAL13Asiya Javayant
1032Sinclair X FigeroaFrance2026-08-10King, Christopher A Esq NEW17Ioni Bowcher
1033Smith R OstroskyRussia2026-07-25Printing Dimensions NEGOTIATION12Elwin Sharvill
1034Isabel Y WaycottCanada2026-07-25Feiner Bros NEGOTIATION75Ivan Magalhaes
1035Antonio E VocelkaGermany2026-08-17King, Christopher A Esq QUALIFIED16Amy Elsner
1036Jennifer A FigeroaRussia2026-08-09Chapman, Ross E Esq QUALIFIED51Ioni Bowcher
1037Costa H PaprockiGermany2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED27Ioni Bowcher
1038Deepesh L MacleadIndia2026-08-05Rangoni Of Florence NEW69Asiya Javayant
1039Faith D RimAustralia2026-08-09Feltz Printing Service UNQUALIFIED48Asiya Javayant
1040Maria O NestleBrazil2026-07-27Rousseaux, Michael Esq QUALIFIED12Xuxue Feng
1041Nicolas M DarakjyIndia2026-07-24Chanay, Jeffrey A Esq NEGOTIATION98Ivan Magalhaes
1042Sinclair Z IturbideCanada2026-07-25Rousseaux, Michael Esq PROPOSAL77Stephen Shaw
1043Francesco E MaletFrance2026-08-12Morlong Associates UNQUALIFIED36Xuxue Feng
1044Leon B BriddickSpain2026-08-01Chemel, James L Cpa QUALIFIED51Ioni Bowcher
1045Leon S StockhamItaly2026-08-11King, Christopher A Esq RENEWAL5Amy Elsner
1046Kadeem N RulapaughItaly2026-08-14Chapman, Ross E Esq PROPOSAL10Ivan Magalhaes
1047Johnson S CaldareraAustralia2026-07-24Morlong Associates QUALIFIED51Ioni Bowcher
1048Deepesh R VocelkaBrazil2026-07-26Chemel, James L Cpa RENEWAL59Bernardo Dominic
1049Morrow H KolmetzItaly2026-08-02Truhlar And Truhlar Attys UNQUALIFIED90Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Octavia M GlickRussiaIoni Bowcher NEW
Mujtaba A OstroskyBrazilBernardo Dominic UNQUALIFIED
Maisha C DilliardAustraliaAsiya Javayant NEW
Adams R BriddickGermanyIoni Bowcher RENEWAL
Aditya D WieserItalyElwin Sharvill PROPOSAL
Jefferson U RoysterUnited KingdomAsiya Javayant NEW
Aruna H DarakjyGermanyAnna Fali UNQUALIFIED
Arvin M GillianItalyIoni Bowcher QUALIFIED
Alejandro D NestleBrazilBernardo Dominic NEGOTIATION
James D MorascaArgentinaStephen Shaw NEW
Sinclair D CampainUnited KingdomAsiya Javayant NEW
Leon R SchemmerIndiaBernardo Dominic PROPOSAL
Emily N FlosiRussiaBernardo Dominic PROPOSAL
Rodrigues A WieserIndiaAsiya Javayant RENEWAL
Isabel F StockhamRussiaOnyama Limba NEW
James L OldroydGermanyOnyama Limba NEGOTIATION
Smith A MarrierRussiaIoni Bowcher UNQUALIFIED
Smith Y BowleyItalyAnna Fali PROPOSAL
Nicolas F MarrierCanadaAnna Fali QUALIFIED
Alejandro K FlosiSpainAnna Fali PROPOSAL
Alejandro P ButtSpainStephen Shaw PROPOSAL
Murillo Y StensethGermanyIvan Magalhaes NEGOTIATION
Misaki A IturbideFranceAmy Elsner RENEWAL
Aditya J PaprockiCanadaElwin Sharvill PROPOSAL
Misaki L MarrierBrazilOnyama Limba NEW
Silvio N PaprockiGermanyAmy Elsner UNQUALIFIED
Faith B GauchoArgentinaAsiya Javayant NEGOTIATION
Octavia L VenereJapanElwin Sharvill UNQUALIFIED
Emily E CaldareraBrazilAmy Elsner RENEWAL
Aditya C MaletItalyOnyama Limba PROPOSAL
Emily X FlosiItalyStephen Shaw PROPOSAL
Wickens U SergiJapanElwin Sharvill NEW
Antonio G IturbideIndiaAnna Fali QUALIFIED
Maria W VocelkaRussiaAsiya Javayant NEW
Jennifer A MorascaArgentinaIoni Bowcher QUALIFIED
Clifford U GarufiIndiaOnyama Limba NEGOTIATION
Silvio B TollnerRussiaOnyama Limba QUALIFIED
Morrow L MarrierArgentinaStephen Shaw NEW
Costa U ButtJapanIvan Magalhaes UNQUALIFIED
Munro U StensethArgentinaStephen Shaw NEW
David B SlusarskiBrazilAsiya Javayant NEW
Jennifer D MacleadIndiaStephen Shaw QUALIFIED
Murillo S VenereIndiaAnna Fali NEGOTIATION
Ricardo J TollnerRussiaElwin Sharvill UNQUALIFIED
Wickens F KuskoFranceAmy Elsner UNQUALIFIED
Morrow M ShinkoFranceIoni Bowcher QUALIFIED
Aika W MaletFranceIoni Bowcher QUALIFIED
Julie R RimAustraliaAmy Elsner UNQUALIFIED
Jennifer Y NestleIndiaIvan Magalhaes NEW
Ivar X SchemmerFranceAmy Elsner PROPOSAL
Frozen Columns
Name
Munro O Caldarera
Izzy B Ferencz
Julie P Stenseth
Darci Y Nicka
James N Paprocki
Adams H Nestle
Izzy B Malet
Aika T Iturbide
Leon I Caldarera
Francesco O Royster
Izzy U Stenseth
Julie R Stenseth
Leja K Butt
Munro C Glick
Nicolas K Foller
Greenwood W Oldroyd
Johnson H Butt
Adams H Saylors
Aruna M Morasca
Maisha V Kusko
Antonio K Albares
James Q Paprocki
Misaki R Ferencz
Salvatore V Malet
Alejandro D Tollner
Adams T Gillian
Murillo O Doe
Alejandro M Poquette
Leja H Rulapaugh
James K Vocelka
Leja K Tollner
Ivar Z Figeroa
Mayumi H Sergi
Cody V Tollner
Jefferson R Poquette
Juan A Stockham
Claire G Royster
Mujtaba C Perin
Munro Y Waycott
Silvio Q Slusarski
Arvin V Butt
Jones E Shinko
Aruna F Nicka
Tony S Schemmer
Ashley N Malet
Wickens U Rulapaugh
Costa D Bowley
Greenwood L Whobrey
Ivar E Malet
Izzy C Darakjy
IdCountryDate
1000India2026-08-16
1001Germany2026-08-07
1002Canada2026-08-19
1003United Kingdom2026-08-09
1004India2026-08-09
1005Germany2026-08-10
1006India2026-07-23
1007Canada2026-08-02
1008Brazil2026-08-09
1009Germany2026-08-05
1010United Kingdom2026-08-14
1011Italy2026-07-21
1012Italy2026-07-26
1013Australia2026-08-01
1014Russia2026-07-29
1015Italy2026-08-12
1016Japan2026-07-29
1017Italy2026-08-10
1018Canada2026-07-27
1019Italy2026-07-27
1020Germany2026-08-09
1021Brazil2026-08-17
1022Canada2026-07-23
1023Australia2026-08-08
1024Japan2026-07-21
1025Argentina2026-07-21
1026Italy2026-08-13
1027India2026-08-01
1028United Kingdom2026-08-16
1029Argentina2026-07-23
1030Italy2026-08-14
1031Argentina2026-07-21
1032Japan2026-07-25
1033Japan2026-08-14
1034Spain2026-08-06
1035Germany2026-08-03
1036France2026-07-24
1037Russia2026-07-23
1038Italy2026-08-04
1039United Kingdom2026-08-16
1040Germany2026-07-26
1041Brazil2026-07-28
1042France2026-07-29
1043Spain2026-08-16
1044Australia2026-08-19
1045Australia2026-08-08
1046Spain2026-08-11
1047United Kingdom2026-08-14
1048United Kingdom2026-07-28
1049Argentina2026-08-02

On-Demand Data

NameIdCountryDate
Adams I Sergi1000Italy2026-07-31
Darci M Nicka1001Japan2026-08-04
Costa S Tollner1002Japan2026-07-21
Jefferson A Nestle1003France2026-08-03
Salvatore D Gaucho1004Italy2026-08-11
Jefferson S Figeroa1005Brazil2026-07-28
Octavia Y Amigon1006Russia2026-08-14
Smith O Slusarski1007Canada2026-08-19
Sinclair R Inouye1008India2026-07-21
Mayumi O Caldarera1009Brazil2026-08-19
Misaki T Nicka1010Canada2026-07-26
Leon H Vocelka1011Argentina2026-08-18
Aditya L Royster1012Canada2026-08-18
Darci O Bowley1013Spain2026-08-17
Johnson M Marrier1014Italy2026-07-31
Sinclair G Nestle1015Russia2026-07-31
Emily K Nestle1016Germany2026-08-17
Sinclair E Chui1017Italy2026-08-12
Jeanfrancois J Tollner1018Russia2026-07-28
Claire R Darakjy1019Argentina2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy V SchemmerGermanyAsiya Javayant RENEWAL
Johnson J OstroskyJapanStephen Shaw PROPOSAL
Mujtaba G SergiFranceElwin Sharvill RENEWAL
Sinclair I BologniaJapanElwin Sharvill NEGOTIATION
Deepesh I AmigonRussiaIoni Bowcher RENEWAL
Izzy C StensethBrazilBernardo Dominic NEW
Isabel G IturbideBrazilBernardo Dominic PROPOSAL
Nicolas P WhobreyUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois N SchemmerItalyXuxue Feng RENEWAL
Izzy V SaylorsIndiaIvan Magalhaes QUALIFIED
Jeanfrancois X SergiCanadaAmy Elsner PROPOSAL
Rodrigues S PaprockiRussiaAmy Elsner PROPOSAL
Rodrigues G WhobreyAustraliaIoni Bowcher NEW
Morrow E SergiUnited KingdomAsiya Javayant NEW
Ivar M PerinJapanAmy Elsner UNQUALIFIED
Sinclair Z KolmetzSpainAnna Fali QUALIFIED
Silvio Y VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo S RutaJapanBernardo Dominic PROPOSAL
Mayumi H CampainSpainAmy Elsner UNQUALIFIED
Adams O WhobreyUnited KingdomAsiya Javayant QUALIFIED
Rodrigues X VocelkaFranceAsiya Javayant UNQUALIFIED
Greenwood K RoysterFranceAnna Fali RENEWAL
Chavez U KuskoSpainAsiya Javayant UNQUALIFIED
Salvatore G WieserSpainAmy Elsner PROPOSAL
Jeanfrancois K MaletRussiaBernardo Dominic UNQUALIFIED
Mayumi R BriddickJapanIvan Magalhaes PROPOSAL
Deepesh L RoysterJapanAnna Fali UNQUALIFIED
Faith M GillianIndiaStephen Shaw UNQUALIFIED
Leja W GlickCanadaBernardo Dominic RENEWAL
Ivar Q CampainIndiaElwin Sharvill QUALIFIED
Aika M FlosiIndiaIvan Magalhaes NEGOTIATION
Sinclair V PoquetteBrazilElwin Sharvill NEW
Darci N SaylorsIndiaIvan Magalhaes UNQUALIFIED
Costa O GauchoRussiaIvan Magalhaes UNQUALIFIED
Isabel Q AlbaresArgentinaStephen Shaw RENEWAL
Stacey D StensethRussiaBernardo Dominic NEGOTIATION
Leja L DilliardGermanyIvan Magalhaes NEGOTIATION
Misaki F OldroydFranceXuxue Feng RENEWAL
Francesco O FigeroaBrazilAmy Elsner UNQUALIFIED
Cody X RutaFranceStephen Shaw NEW

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