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
Stacey N GarufiUnited KingdomBernardo Dominic NEGOTIATION
Misaki C PaprockiJapanIvan Magalhaes NEGOTIATION
Maisha T CaudyRussiaOnyama Limba RENEWAL
Deepesh F FigeroaJapanAnna Fali NEGOTIATION
Aditya J KolmetzJapanBernardo Dominic RENEWAL
Jones H BologniaIndiaIvan Magalhaes RENEWAL
Nicolas M SlusarskiFranceOnyama Limba NEW
Aruna Z AmigonGermanyElwin Sharvill NEGOTIATION
Mayumi P PoquetteRussiaAnna Fali NEW
Alejandro B PaprockiJapanIoni Bowcher NEGOTIATION
Greenwood B SergiFranceAnna Fali UNQUALIFIED
Alejandro S ButtJapanOnyama Limba QUALIFIED
Leja H DarakjySpainIvan Magalhaes PROPOSAL
Deepesh O CaudyRussiaBernardo Dominic RENEWAL
Isabel J CaldareraBrazilBernardo Dominic NEW
Silvio W StensethItalyIvan Magalhaes RENEWAL
Silvio T CaldareraCanadaStephen Shaw QUALIFIED
Munro E RoysterFranceStephen Shaw NEGOTIATION
Maria E MacleadJapanIoni Bowcher NEW
Isabel D RulapaughSpainAnna Fali NEW
Izzy B PaprockiGermanyAmy Elsner RENEWAL
Munro D ChuiUnited KingdomBernardo Dominic NEW
Greenwood F CampainArgentinaAmy Elsner NEGOTIATION
Aruna S RoysterBrazilBernardo Dominic UNQUALIFIED
Ricardo U StockhamUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois W RimAustraliaElwin Sharvill RENEWAL
Greenwood B WieserBrazilAsiya Javayant NEW
Aika X MacleadAustraliaAsiya Javayant QUALIFIED
Aruna K NestleRussiaElwin Sharvill RENEWAL
Mujtaba R DarakjyBrazilXuxue Feng RENEWAL
Chavez L PoquetteRussiaIoni Bowcher QUALIFIED
Octavia F KuskoBrazilElwin Sharvill NEW
Faith Y ButtSpainElwin Sharvill QUALIFIED
Morrow E FigeroaSpainOnyama Limba NEGOTIATION
Izzy R StensethUnited KingdomXuxue Feng UNQUALIFIED
Maisha I BriddickIndiaAsiya Javayant PROPOSAL
Jones Y GauchoIndiaOnyama Limba NEW
Mujtaba S PoquetteItalyOnyama Limba NEGOTIATION
Murillo K RulapaughGermanyBernardo Dominic NEW
James Z OstroskyJapanOnyama Limba RENEWAL
Ivar O FollerJapanAsiya Javayant RENEWAL
Leja O TollnerSpainXuxue Feng NEW
Mujtaba Y DarakjyFranceStephen Shaw PROPOSAL
Smith Q StensethSpainElwin Sharvill QUALIFIED
Ivar C VocelkaAustraliaAmy Elsner NEW
Sinclair J RoysterUnited KingdomBernardo Dominic RENEWAL
Arvin Z FollerBrazilXuxue Feng RENEWAL
Mayumi J FlosiJapanIoni Bowcher NEGOTIATION
Kaitlin V RoysterFranceStephen Shaw UNQUALIFIED
Julie S CaudyIndiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford G SlusarskiGermanyStephen Shaw NEW
Kadeem Y BowleyIndiaXuxue Feng RENEWAL
Greenwood Z GillianGermanyXuxue Feng RENEWAL
Ricardo F OldroydBrazilBernardo Dominic UNQUALIFIED
Jennifer P MacleadIndiaIvan Magalhaes QUALIFIED
Aditya S StensethGermanyIoni Bowcher NEW
Leon A InouyeItalyAsiya Javayant PROPOSAL
Sinclair L AlbaresItalyAmy Elsner PROPOSAL
Deepesh A ChuiAustraliaIoni Bowcher UNQUALIFIED
Leon R FigeroaBrazilIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci A MaletIndia2026-06-02Chanay, Jeffrey A Esq UNQUALIFIED76Ivan Magalhaes
1001Octavia S OstroskyFrance2026-06-24Chapman, Ross E Esq NEGOTIATION50Bernardo Dominic
1002Chavez Z SlusarskiItaly2026-06-26King, Christopher A Esq NEGOTIATION75Xuxue Feng
1003Nicolas I ShinkoCanada2026-06-24King, Christopher A Esq UNQUALIFIED25Bernardo Dominic
1004Emily H MaletRussia2026-06-04Buckley Miller Wright QUALIFIED86Asiya Javayant
1005Costa K PerinRussia2026-06-23Truhlar And Truhlar Attys PROPOSAL45Bernardo Dominic
1006Tony M StensethRussia2026-06-26Truhlar And Truhlar Attys PROPOSAL37Elwin Sharvill
1007Jeanfrancois V StockhamRussia2026-06-11Chapman, Ross E Esq RENEWAL20Onyama Limba
1008Faith B ShinkoBrazil2026-06-19Chapman, Ross E Esq PROPOSAL14Stephen Shaw
1009Munro C NickaJapan2026-06-06Feiner Bros RENEWAL28Elwin Sharvill
1010Emily A DilliardGermany2026-06-26Truhlar And Truhlar Attys NEW46Onyama Limba
1011Greenwood D InouyeGermany2026-06-21Chanay, Jeffrey A Esq NEGOTIATION22Elwin Sharvill
1012Mayumi L ShinkoUnited Kingdom2026-06-10King, Christopher A Esq UNQUALIFIED5Stephen Shaw
1013Julie O VenereItaly2026-06-06Morlong Associates NEGOTIATION79Onyama Limba
1014Aditya H BriddickAustralia2026-07-01Buckley Miller Wright RENEWAL82Anna Fali
1015Maria E FerenczCanada2026-06-15Rousseaux, Michael Esq QUALIFIED75Elwin Sharvill
1016Wickens D KuskoBrazil2026-06-28Feltz Printing Service RENEWAL33Stephen Shaw
1017Maisha I DarakjyJapan2026-06-11Morlong Associates QUALIFIED32Ioni Bowcher
1018David O BriddickIndia2026-06-09Dorl, James J Esq QUALIFIED1Elwin Sharvill
1019Darci R ShinkoArgentina2026-06-05Truhlar And Truhlar Attys RENEWAL29Onyama Limba
1020Wickens X ShinkoGermany2026-06-23Rousseaux, Michael Esq RENEWAL60Elwin Sharvill
1021Isabel Q DilliardArgentina2026-06-26Morlong Associates RENEWAL4Anna Fali
1022Ashley P FlosiItaly2026-06-13Commercial Press PROPOSAL15Ioni Bowcher
1023Jones C GauchoItaly2026-06-24Truhlar And Truhlar Attys NEW56Asiya Javayant
1024Izzy T RimAustralia2026-06-29Chemel, James L Cpa NEGOTIATION87Bernardo Dominic
1025Rodrigues C SaylorsJapan2026-06-06Buckley Miller Wright NEW8Xuxue Feng
1026Leja B PerinCanada2026-06-20Chapman, Ross E Esq RENEWAL41Xuxue Feng
1027Stacey A KolmetzJapan2026-06-23Dorl, James J Esq NEGOTIATION48Elwin Sharvill
1028Claire R WieserBrazil2026-06-22Benton, John B Jr PROPOSAL14Onyama Limba
1029Mayumi C KuskoRussia2026-06-27Chemel, James L Cpa NEGOTIATION16Onyama Limba
1030Salvatore L StensethJapan2026-06-03Buckley Miller Wright NEW86Elwin Sharvill
1031Ashley J AlbaresFrance2026-06-10Buckley Miller Wright NEGOTIATION75Amy Elsner
1032Clifford H MaletBrazil2026-06-29Commercial Press NEGOTIATION59Xuxue Feng
1033Misaki Y NickaAustralia2026-06-23Benton, John B Jr NEW88Anna Fali
1034Smith A BologniaArgentina2026-06-03Commercial Press UNQUALIFIED68Ivan Magalhaes
1035Aruna W BologniaAustralia2026-06-05Chapman, Ross E Esq RENEWAL1Ivan Magalhaes
1036Sinclair D SlusarskiGermany2026-06-19Benton, John B Jr NEGOTIATION61Onyama Limba
1037Stacey A MacleadSpain2026-06-21Truhlar And Truhlar Attys UNQUALIFIED2Ioni Bowcher
1038Salvatore L CaldareraRussia2026-06-16Chemel, James L Cpa NEW61Bernardo Dominic
1039Rodrigues J SergiBrazil2026-06-16Chanay, Jeffrey A Esq NEGOTIATION16Amy Elsner
1040Claire Y ButtGermany2026-06-08Chemel, James L Cpa PROPOSAL74Asiya Javayant
1041Adams L CaudyUnited Kingdom2026-06-30Rousseaux, Michael Esq NEGOTIATION96Onyama Limba
1042Julie I OldroydFrance2026-06-28Printing Dimensions NEW32Bernardo Dominic
1043Aika S GlickSpain2026-06-16Benton, John B Jr RENEWAL37Onyama Limba
1044Rodrigues F FerenczAustralia2026-06-20King, Christopher A Esq QUALIFIED51Onyama Limba
1045Leon K TollnerAustralia2026-06-17Morlong Associates NEGOTIATION9Onyama Limba
1046Julie P ShinkoRussia2026-06-05Rousseaux, Michael Esq UNQUALIFIED81Amy Elsner
1047Nicolas Z WhobreyItaly2026-06-20Buckley Miller Wright PROPOSAL79Ioni Bowcher
1048Stacey N FerenczCanada2026-06-23Chanay, Jeffrey A Esq QUALIFIED67Ivan Magalhaes
1049Alejandro N OldroydUnited Kingdom2026-06-16Chapman, Ross E Esq RENEWAL63Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Octavia T FerenczItalyIoni Bowcher PROPOSAL
Munro B SlusarskiItalyXuxue Feng PROPOSAL
Greenwood T MaletArgentinaIoni Bowcher UNQUALIFIED
Jones Y KuskoUnited KingdomXuxue Feng QUALIFIED
Kaitlin J NickaItalyAnna Fali QUALIFIED
Johnson D GillianCanadaIvan Magalhaes UNQUALIFIED
Maisha V FigeroaCanadaAnna Fali NEW
Jeanfrancois H AlbaresSpainAsiya Javayant QUALIFIED
Wickens J StensethArgentinaIoni Bowcher PROPOSAL
Wickens O RoysterRussiaElwin Sharvill QUALIFIED
Jefferson G AmigonArgentinaIvan Magalhaes UNQUALIFIED
Jones X StensethJapanBernardo Dominic PROPOSAL
Jefferson I MarrierArgentinaBernardo Dominic RENEWAL
Clifford U MarrierJapanStephen Shaw QUALIFIED
Octavia G GarufiGermanyIvan Magalhaes NEW
Smith S FlosiRussiaBernardo Dominic RENEWAL
Jefferson G RimJapanAnna Fali QUALIFIED
Izzy C BologniaRussiaXuxue Feng QUALIFIED
Arvin R MaletSpainAnna Fali UNQUALIFIED
David A InouyeArgentinaAsiya Javayant UNQUALIFIED
David O OldroydBrazilXuxue Feng PROPOSAL
Salvatore D DilliardArgentinaAsiya Javayant NEW
Jones Q GarufiIndiaAnna Fali RENEWAL
Leja U NickaItalyOnyama Limba UNQUALIFIED
Stacey X KolmetzAustraliaElwin Sharvill NEGOTIATION
Francesco P IturbideBrazilIoni Bowcher RENEWAL
Jones Y MarrierArgentinaIvan Magalhaes UNQUALIFIED
Cody V CaldareraArgentinaAsiya Javayant PROPOSAL
Johnson U ButtGermanyAnna Fali PROPOSAL
Adams V DilliardItalyStephen Shaw NEGOTIATION
Clifford Q PerinGermanyXuxue Feng RENEWAL
Emily X PaprockiItalyOnyama Limba PROPOSAL
Jeanfrancois Q GauchoItalyAnna Fali UNQUALIFIED
Arvin E SlusarskiBrazilIvan Magalhaes RENEWAL
Aditya H RulapaughRussiaOnyama Limba NEGOTIATION
Izzy O OstroskyJapanIoni Bowcher NEGOTIATION
Nicolas T ButtIndiaOnyama Limba PROPOSAL
Leon N WieserUnited KingdomIoni Bowcher RENEWAL
Alejandro N SaylorsCanadaOnyama Limba PROPOSAL
Faith L MacleadUnited KingdomOnyama Limba NEW
Octavia B GlickUnited KingdomElwin Sharvill NEW
Stacey V IturbideSpainElwin Sharvill RENEWAL
Aika P OstroskyArgentinaStephen Shaw NEGOTIATION
Munro O KolmetzUnited KingdomIoni Bowcher NEW
Ricardo O RoysterIndiaAsiya Javayant NEGOTIATION
Tony N StensethArgentinaXuxue Feng RENEWAL
Antonio Y SergiArgentinaStephen Shaw QUALIFIED
Silvio C FlosiFranceIoni Bowcher PROPOSAL
Clifford Y RoysterItalyAmy Elsner NEGOTIATION
Wickens C RutaArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Ivar W Gillian
Octavia L Nestle
Johnson L Glick
Jones X Wieser
Mujtaba V Inouye
Antonio C Tollner
Silvio B Kolmetz
Deepesh L Figeroa
Munro E Malet
Maria B Caldarera
Kadeem M Saylors
Ashley P Rulapaugh
Jeanfrancois U Gillian
Costa M Maclead
Maria X Glick
Darci M Figeroa
Aika X Stenseth
Antonio D Stenseth
Francesco O Albares
Arvin P Campain
Jeanfrancois N Malet
Jeanfrancois P Butt
Nicolas V Bolognia
Johnson Q Paprocki
Leja W Figeroa
David Q Garufi
Jones Q Oldroyd
Smith C Foller
Maria T Whobrey
Costa R Inouye
Clifford I Marrier
Adams D Gillian
Costa P Dilliard
David V Doe
Emily F Caudy
Misaki O Slusarski
Silvio S Malet
Nicolas K Malet
Murillo D Nicka
Stacey Z Nestle
Arvin V Royster
Izzy F Albares
Silvio I Ostrosky
Julie X Rulapaugh
Adams U Ruta
Aika K Inouye
Octavia K Malet
Ashley B Caudy
Emily V Vocelka
Stacey G Glick
IdCountryDate
1000Spain2026-06-24
1001Japan2026-06-11
1002United Kingdom2026-06-27
1003Russia2026-06-15
1004Italy2026-07-01
1005France2026-06-29
1006Australia2026-06-23
1007Italy2026-06-25
1008France2026-07-01
1009Australia2026-06-06
1010Italy2026-06-19
1011France2026-06-23
1012Spain2026-06-09
1013Brazil2026-06-08
1014Italy2026-06-25
1015Argentina2026-06-04
1016Spain2026-06-06
1017Spain2026-06-22
1018Japan2026-06-21
1019Germany2026-06-06
1020Brazil2026-06-27
1021Germany2026-06-03
1022India2026-06-19
1023France2026-06-24
1024Spain2026-06-26
1025Brazil2026-06-23
1026Australia2026-06-08
1027Russia2026-06-09
1028Spain2026-06-20
1029Australia2026-06-05
1030Italy2026-06-19
1031India2026-06-21
1032Brazil2026-06-30
1033Japan2026-06-21
1034Russia2026-06-06
1035United Kingdom2026-06-03
1036Spain2026-06-13
1037Japan2026-06-20
1038France2026-06-16
1039Australia2026-06-08
1040Argentina2026-06-02
1041Russia2026-06-09
1042France2026-06-05
1043Italy2026-06-29
1044France2026-06-13
1045Canada2026-06-12
1046Spain2026-06-10
1047France2026-07-01
1048United Kingdom2026-06-28
1049Australia2026-06-28

On-Demand Data

NameIdCountryDate
Isabel A Stockham1000Germany2026-06-08
Murillo K Garufi1001France2026-06-23
Morrow Y Vocelka1002Germany2026-07-01
Smith F Sergi1003United Kingdom2026-06-29
Misaki E Wieser1004India2026-06-02
Emily F Gaucho1005United Kingdom2026-06-19
Aruna T Rulapaugh1006France2026-07-01
Izzy T Butt1007Spain2026-06-08
Munro R Whobrey1008India2026-06-19
Jones U Paprocki1009Italy2026-06-20
Murillo G Caldarera1010France2026-06-19
Salvatore Z Briddick1011Australia2026-06-24
Arvin H Dilliard1012Spain2026-06-04
Ricardo P Campain1013United Kingdom2026-06-24
Aditya M Stockham1014Russia2026-06-04
Clifford N Briddick1015Brazil2026-06-06
Murillo G Tollner1016Australia2026-06-24
Julie Z Inouye1017France2026-06-25
Julie H Kusko1018United Kingdom2026-06-03
Jones D Oldroyd1019Brazil2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia X KuskoArgentinaAsiya Javayant QUALIFIED
Aika T GarufiSpainAnna Fali QUALIFIED
Aditya G FollerArgentinaXuxue Feng PROPOSAL
Jeanfrancois P MaletIndiaAsiya Javayant PROPOSAL
Jeanfrancois E SaylorsRussiaStephen Shaw RENEWAL
Costa B IturbideAustraliaIvan Magalhaes UNQUALIFIED
Leja G OstroskyJapanIoni Bowcher NEGOTIATION
Salvatore Q SergiUnited KingdomXuxue Feng QUALIFIED
Juan F RutaArgentinaBernardo Dominic RENEWAL
Claire B MaletCanadaAsiya Javayant RENEWAL
Izzy Q NestleIndiaAmy Elsner NEW
Jennifer X SergiAustraliaAnna Fali RENEWAL
Maria S MaletArgentinaElwin Sharvill NEGOTIATION
Francesco J VocelkaAustraliaElwin Sharvill PROPOSAL
Mayumi V RimCanadaIvan Magalhaes NEW
Ashley S RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Claire C GillianRussiaIoni Bowcher NEGOTIATION
Ashley M RutaArgentinaAsiya Javayant PROPOSAL
Leja T FerenczFranceElwin Sharvill UNQUALIFIED
Misaki O OstroskyItalyAmy Elsner NEW
Francesco T BriddickIndiaIvan Magalhaes PROPOSAL
Juan I BriddickRussiaBernardo Dominic UNQUALIFIED
Francesco W GlickSpainAmy Elsner NEW
Claire A RulapaughJapanBernardo Dominic UNQUALIFIED
Adams T IturbideBrazilIvan Magalhaes UNQUALIFIED
Aditya I StensethSpainAsiya Javayant NEW
Johnson K FlosiAustraliaIvan Magalhaes UNQUALIFIED
Silvio K MacleadRussiaAnna Fali QUALIFIED
Mayumi O BologniaCanadaBernardo Dominic UNQUALIFIED
Darci H InouyeFranceOnyama Limba NEGOTIATION
Clifford C StockhamFranceAmy Elsner NEGOTIATION
Ricardo Z MaletSpainAsiya Javayant PROPOSAL
Stacey T StockhamItalyElwin Sharvill PROPOSAL
Chavez M ShinkoArgentinaIvan Magalhaes RENEWAL
Ashley H OldroydCanadaOnyama Limba NEGOTIATION
Aruna L VenereBrazilIvan Magalhaes NEW
Ricardo N MaletCanadaAmy Elsner NEGOTIATION
Morrow K ButtAustraliaIoni Bowcher PROPOSAL
Juan J MarrierRussiaAnna Fali UNQUALIFIED
Jefferson X SaylorsRussiaOnyama Limba 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>