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
Jennifer S RutaAustraliaIvan Magalhaes PROPOSAL
Misaki X NickaUnited KingdomAmy Elsner NEW
Octavia E VocelkaBrazilElwin Sharvill NEW
Aika P CaldareraGermanyIoni Bowcher QUALIFIED
Maisha P VocelkaArgentinaAsiya Javayant NEW
Aruna K StensethAustraliaAmy Elsner PROPOSAL
Maisha W ButtRussiaXuxue Feng PROPOSAL
Silvio I BriddickRussiaAnna Fali NEGOTIATION
Aditya X OldroydBrazilBernardo Dominic NEGOTIATION
Leon D AmigonJapanStephen Shaw RENEWAL
Antonio F GillianCanadaAmy Elsner RENEWAL
Rodrigues C PaprockiItalyAmy Elsner PROPOSAL
Aditya Z MaletArgentinaOnyama Limba UNQUALIFIED
Tony B AlbaresRussiaIvan Magalhaes RENEWAL
David G KuskoArgentinaStephen Shaw NEW
Salvatore H GarufiGermanyElwin Sharvill NEW
Mayumi O GauchoItalyStephen Shaw NEW
Wickens P PoquetteGermanyIvan Magalhaes PROPOSAL
Deepesh A WhobreyIndiaIvan Magalhaes PROPOSAL
Leja C RimGermanyIvan Magalhaes RENEWAL
Silvio Q MorascaGermanyXuxue Feng PROPOSAL
Tony M StensethItalyOnyama Limba PROPOSAL
Sinclair Y WieserUnited KingdomIvan Magalhaes PROPOSAL
Ashley W GarufiBrazilAmy Elsner UNQUALIFIED
Maisha T CampainUnited KingdomOnyama Limba UNQUALIFIED
Julie P SlusarskiRussiaOnyama Limba QUALIFIED
Maria S MarrierCanadaElwin Sharvill NEW
Jefferson D ShinkoItalyStephen Shaw NEW
Mujtaba Z DoeSpainElwin Sharvill QUALIFIED
Ivar C RulapaughBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois W SaylorsUnited KingdomBernardo Dominic RENEWAL
Jones N ButtSpainBernardo Dominic UNQUALIFIED
Mayumi R DoeItalyIvan Magalhaes QUALIFIED
Jefferson R SchemmerGermanyAnna Fali UNQUALIFIED
Kaitlin M FlosiAustraliaOnyama Limba PROPOSAL
Maisha W InouyeJapanBernardo Dominic UNQUALIFIED
Silvio X PaprockiAustraliaXuxue Feng UNQUALIFIED
Johnson A BologniaGermanyIoni Bowcher NEW
Antonio Y KolmetzUnited KingdomAmy Elsner NEW
James D BriddickGermanyStephen Shaw NEW
Aditya C RutaBrazilXuxue Feng PROPOSAL
Jennifer L GillianFranceStephen Shaw NEGOTIATION
Greenwood K DoeIndiaIoni Bowcher NEGOTIATION
Arvin I ShinkoBrazilElwin Sharvill PROPOSAL
Maria A MorascaItalyStephen Shaw NEGOTIATION
Clifford U RimIndiaAmy Elsner NEW
Juan F FerenczUnited KingdomElwin Sharvill NEGOTIATION
Costa Z CampainUnited KingdomIvan Magalhaes QUALIFIED
Morrow B GlickBrazilStephen Shaw QUALIFIED
Johnson O DoeFranceXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois U BowleyIndiaXuxue Feng PROPOSAL
Antonio A StensethBrazilOnyama Limba RENEWAL
Ashley N VocelkaJapanElwin Sharvill QUALIFIED
David D MorascaCanadaIoni Bowcher NEW
Cody S PerinIndiaElwin Sharvill NEGOTIATION
Claire L BologniaAustraliaElwin Sharvill PROPOSAL
Isabel S GillianUnited KingdomElwin Sharvill RENEWAL
Maria Q PerinJapanOnyama Limba NEGOTIATION
Tony D DilliardRussiaIoni Bowcher NEW
Claire M VocelkaItalyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem W InouyeBrazil2026-07-07King, Christopher A Esq PROPOSAL23Onyama Limba
1001Sinclair J CampainUnited Kingdom2026-06-27Chemel, James L Cpa UNQUALIFIED2Ioni Bowcher
1002Tony A NickaArgentina2026-07-10Morlong Associates NEW5Asiya Javayant
1003Clifford F CaldareraJapan2026-07-06Truhlar And Truhlar Attys QUALIFIED36Asiya Javayant
1004Deepesh L DoeBrazil2026-07-11Rangoni Of Florence PROPOSAL26Elwin Sharvill
1005Morrow K DoeFrance2026-07-07Rangoni Of Florence NEW68Anna Fali
1006Jones W RutaFrance2026-07-25Printing Dimensions PROPOSAL29Onyama Limba
1007Salvatore W VocelkaArgentina2026-07-17Feltz Printing Service NEW51Ioni Bowcher
1008Isabel R SlusarskiAustralia2026-06-30Chapman, Ross E Esq PROPOSAL65Onyama Limba
1009Claire J SaylorsArgentina2026-07-10Chanay, Jeffrey A Esq UNQUALIFIED99Xuxue Feng
1010Murillo R RutaRussia2026-07-06Truhlar And Truhlar Attys PROPOSAL41Xuxue Feng
1011Alejandro U WaycottRussia2026-07-12Chemel, James L Cpa PROPOSAL28Ivan Magalhaes
1012Leon C KuskoFrance2026-06-29Feltz Printing Service NEW34Asiya Javayant
1013David F KuskoUnited Kingdom2026-07-19Commercial Press NEW86Ioni Bowcher
1014James I DilliardIndia2026-07-03Dorl, James J Esq NEGOTIATION52Ivan Magalhaes
1015Aruna P VenereRussia2026-07-16Rangoni Of Florence NEGOTIATION47Ioni Bowcher
1016Jefferson O MaletItaly2026-07-15Feltz Printing Service NEGOTIATION55Ivan Magalhaes
1017Adams O WieserIndia2026-07-09Rousseaux, Michael Esq PROPOSAL91Onyama Limba
1018Nicolas P RulapaughGermany2026-07-18Rangoni Of Florence NEGOTIATION59Bernardo Dominic
1019Faith A DarakjyJapan2026-07-06Rousseaux, Michael Esq NEGOTIATION49Stephen Shaw
1020Munro T AlbaresItaly2026-06-29Commercial Press NEGOTIATION19Onyama Limba
1021Aditya V NickaBrazil2026-06-30Chapman, Ross E Esq PROPOSAL72Onyama Limba
1022Jennifer Z OldroydRussia2026-07-03Printing Dimensions QUALIFIED11Amy Elsner
1023Aika P RoysterAustralia2026-06-28Rangoni Of Florence UNQUALIFIED1Amy Elsner
1024Ricardo Y KolmetzBrazil2026-07-13Feiner Bros UNQUALIFIED83Ioni Bowcher
1025Ricardo V GillianFrance2026-07-01Rousseaux, Michael Esq NEGOTIATION28Xuxue Feng
1026Chavez W DilliardRussia2026-07-06Dorl, James J Esq RENEWAL94Xuxue Feng
1027Ricardo Z VocelkaFrance2026-07-04Benton, John B Jr PROPOSAL32Onyama Limba
1028Aruna J BriddickIndia2026-07-24Feltz Printing Service RENEWAL47Xuxue Feng
1029Jennifer Y PaprockiFrance2026-07-01Feltz Printing Service NEW4Ioni Bowcher
1030Sinclair G NickaJapan2026-06-30Rousseaux, Michael Esq NEGOTIATION42Xuxue Feng
1031Claire N KuskoFrance2026-07-22Feltz Printing Service PROPOSAL26Bernardo Dominic
1032Sinclair Q FerenczBrazil2026-07-03Morlong Associates QUALIFIED43Anna Fali
1033Aika E AmigonItaly2026-07-08Chapman, Ross E Esq RENEWAL91Xuxue Feng
1034James T FlosiSpain2026-07-16Chanay, Jeffrey A Esq RENEWAL0Xuxue Feng
1035Nicolas T CaldareraFrance2026-07-02Chanay, Jeffrey A Esq NEW15Elwin Sharvill
1036Stacey Z IturbideItaly2026-06-29Commercial Press RENEWAL67Anna Fali
1037Mayumi U MaletIndia2026-07-22Rangoni Of Florence NEGOTIATION95Bernardo Dominic
1038Antonio F WieserGermany2026-07-14Rangoni Of Florence NEGOTIATION76Stephen Shaw
1039Julie B GillianGermany2026-07-25Truhlar And Truhlar Attys RENEWAL82Amy Elsner
1040Morrow A ButtSpain2026-07-20Printing Dimensions UNQUALIFIED5Amy Elsner
1041Maisha D PoquetteIndia2026-06-28Commercial Press PROPOSAL54Ivan Magalhaes
1042Antonio R ChuiJapan2026-07-21Buckley Miller Wright RENEWAL75Ioni Bowcher
1043Juan U StensethCanada2026-07-12Chemel, James L Cpa UNQUALIFIED97Anna Fali
1044David T DarakjyIndia2026-07-14Printing Dimensions NEGOTIATION39Ioni Bowcher
1045Jeanfrancois C RutaSpain2026-06-30Morlong Associates RENEWAL24Onyama Limba
1046Clifford Z RimCanada2026-07-06Chapman, Ross E Esq QUALIFIED60Asiya Javayant
1047Nicolas S SchemmerItaly2026-07-09Feiner Bros PROPOSAL3Elwin Sharvill
1048Octavia R FollerFrance2026-07-04Feltz Printing Service PROPOSAL22Onyama Limba
1049Mujtaba O GillianRussia2026-07-21King, Christopher A Esq UNQUALIFIED35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Morrow Z ButtSpainElwin Sharvill NEW
Jennifer O OldroydSpainAmy Elsner NEGOTIATION
Stacey K PoquetteCanadaIvan Magalhaes RENEWAL
Aika Z FigeroaIndiaOnyama Limba PROPOSAL
Mujtaba Q WaycottJapanOnyama Limba UNQUALIFIED
Misaki G NickaItalyAsiya Javayant NEGOTIATION
Jefferson S GauchoFranceIoni Bowcher NEGOTIATION
Ricardo L FerenczItalyBernardo Dominic NEGOTIATION
Silvio D MarrierCanadaAsiya Javayant UNQUALIFIED
Stacey Q CaldareraArgentinaAmy Elsner NEGOTIATION
Alejandro N GarufiItalyAmy Elsner PROPOSAL
Smith H CampainBrazilIvan Magalhaes NEGOTIATION
Francesco E GauchoUnited KingdomAsiya Javayant QUALIFIED
Salvatore B RimSpainAnna Fali PROPOSAL
Leja I CaldareraCanadaAmy Elsner UNQUALIFIED
Tony L NestleAustraliaAmy Elsner RENEWAL
Clifford J GillianAustraliaIvan Magalhaes NEGOTIATION
Leon B DoeIndiaBernardo Dominic NEGOTIATION
Costa I AlbaresArgentinaStephen Shaw NEGOTIATION
Deepesh X DarakjyBrazilAnna Fali PROPOSAL
Julie T MarrierFranceElwin Sharvill QUALIFIED
James W ShinkoUnited KingdomStephen Shaw NEGOTIATION
Arvin L DarakjyArgentinaAmy Elsner QUALIFIED
Maria B MaletBrazilAmy Elsner PROPOSAL
Stacey W GillianAustraliaAsiya Javayant RENEWAL
Greenwood Q WieserUnited KingdomAmy Elsner PROPOSAL
David F WaycottFranceStephen Shaw QUALIFIED
Mujtaba L GauchoAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba P PaprockiGermanyIoni Bowcher UNQUALIFIED
Ivar M GauchoBrazilAmy Elsner QUALIFIED
Aruna M SaylorsAustraliaStephen Shaw QUALIFIED
Darci Q SlusarskiItalyElwin Sharvill PROPOSAL
Chavez E RoysterJapanXuxue Feng NEW
Francesco J InouyeCanadaStephen Shaw UNQUALIFIED
Jefferson K DoeCanadaAsiya Javayant UNQUALIFIED
Octavia B InouyeCanadaIoni Bowcher QUALIFIED
Jeanfrancois M BowleyRussiaElwin Sharvill QUALIFIED
Kaitlin N NestleAustraliaIoni Bowcher NEGOTIATION
Juan X KolmetzSpainOnyama Limba NEGOTIATION
Cody E GauchoAustraliaIoni Bowcher NEGOTIATION
Nicolas E PerinFranceElwin Sharvill NEGOTIATION
Chavez C AmigonSpainIvan Magalhaes RENEWAL
Tony R PaprockiJapanIvan Magalhaes RENEWAL
Nicolas B StockhamArgentinaIvan Magalhaes NEW
Stacey Q MacleadSpainXuxue Feng NEW
Isabel A KuskoFranceIoni Bowcher RENEWAL
Adams C RutaJapanIoni Bowcher RENEWAL
Octavia A MaletGermanyAsiya Javayant NEW
Silvio F KolmetzGermanyXuxue Feng PROPOSAL
Arvin P ButtCanadaAmy Elsner NEW
Frozen Columns
Name
Octavia I Stockham
Silvio U Stenseth
Emily W Sergi
Emily Z Shinko
Salvatore F Paprocki
Octavia Q Malet
Nicolas G Vocelka
Clifford O Stockham
Cody G Inouye
Izzy F Sergi
Greenwood N Marrier
Emily V Morasca
Octavia U Gillian
Mayumi R Rulapaugh
Isabel X Iturbide
Antonio X Ruta
Sinclair H Gaucho
Greenwood X Dilliard
Deepesh C Doe
Leon Z Rulapaugh
Silvio R Stenseth
Morrow A Sergi
Julie E Oldroyd
David B Tollner
Cody U Kolmetz
Antonio T Stenseth
Cody Y Ruta
Juan M Malet
Jennifer E Maclead
Francesco W Caldarera
Jennifer M Campain
Stacey C Waycott
James C Glick
Nicolas F Kusko
Jefferson D Malet
Antonio Z Shinko
Deepesh J Ostrosky
Wickens D Gillian
Maria I Wieser
Kadeem M Gillian
Sinclair P Wieser
Kaitlin S Stenseth
Aruna G Stockham
Johnson W Sergi
Jones Y Dilliard
Misaki X Ruta
Francesco Z Whobrey
Stacey E Dilliard
Mujtaba G Campain
Smith F Flosi
IdCountryDate
1000Italy2026-07-24
1001Italy2026-07-13
1002Argentina2026-07-05
1003Australia2026-07-14
1004Spain2026-07-19
1005Argentina2026-07-02
1006Germany2026-07-09
1007Germany2026-06-30
1008Brazil2026-07-08
1009Brazil2026-07-14
1010Germany2026-07-22
1011Russia2026-07-10
1012Russia2026-07-21
1013Argentina2026-07-24
1014France2026-07-04
1015Canada2026-07-05
1016Brazil2026-07-15
1017Brazil2026-07-02
1018Australia2026-07-03
1019Germany2026-07-21
1020Russia2026-06-27
1021United Kingdom2026-06-27
1022Canada2026-07-01
1023Spain2026-07-22
1024Argentina2026-07-04
1025Canada2026-07-07
1026Argentina2026-06-29
1027India2026-07-09
1028Brazil2026-07-07
1029Italy2026-07-16
1030Japan2026-07-09
1031Japan2026-07-22
1032Argentina2026-07-02
1033India2026-07-24
1034Italy2026-07-16
1035Germany2026-07-23
1036Germany2026-07-07
1037Spain2026-07-22
1038France2026-07-24
1039Russia2026-07-20
1040Russia2026-07-25
1041Argentina2026-06-27
1042Japan2026-07-12
1043Brazil2026-07-25
1044India2026-07-07
1045Russia2026-07-22
1046Germany2026-07-20
1047Germany2026-06-29
1048Japan2026-07-19
1049Russia2026-07-24

On-Demand Data

NameIdCountryDate
Smith V Flosi1000United Kingdom2026-07-03
Murillo O Dilliard1001Spain2026-07-06
Jeanfrancois D Bowley1002Australia2026-06-28
Silvio N Flosi1003Argentina2026-07-13
Mujtaba G Stenseth1004Japan2026-07-03
Francesco E Oldroyd1005Brazil2026-07-25
Deepesh J Oldroyd1006United Kingdom2026-07-21
Mujtaba E Slusarski1007Canada2026-06-29
Maisha H Nicka1008Japan2026-06-27
Darci R Kusko1009Russia2026-07-09
Claire M Royster1010Russia2026-07-11
Emily W Bolognia1011Japan2026-07-15
David A Shinko1012Russia2026-07-15
Claire B Poquette1013United Kingdom2026-06-30
Jones Q Stenseth1014India2026-07-15
Cody E Gaucho1015India2026-07-02
Costa B Dilliard1016Spain2026-07-08
Deepesh G Darakjy1017Argentina2026-07-19
Emily W Stockham1018Australia2026-07-05
Francesco M Stockham1019India2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro U StensethRussiaStephen Shaw NEW
Jones F DarakjyIndiaBernardo Dominic RENEWAL
Darci L PoquetteJapanAmy Elsner UNQUALIFIED
Deepesh Y ChuiGermanyBernardo Dominic QUALIFIED
Alejandro C FlosiSpainAsiya Javayant NEGOTIATION
Munro J MaletUnited KingdomIvan Magalhaes NEW
Kadeem Q RulapaughAustraliaElwin Sharvill QUALIFIED
Isabel F RoysterRussiaAsiya Javayant RENEWAL
Kaitlin Q FollerBrazilBernardo Dominic PROPOSAL
Salvatore N ButtIndiaIoni Bowcher NEW
Jones K NickaUnited KingdomStephen Shaw PROPOSAL
Chavez S VocelkaFranceBernardo Dominic UNQUALIFIED
Kadeem L OstroskyRussiaBernardo Dominic QUALIFIED
Mayumi W FollerBrazilAnna Fali QUALIFIED
Julie U GillianGermanyStephen Shaw NEW
Alejandro L RutaAustraliaAmy Elsner NEW
Silvio I TollnerJapanXuxue Feng RENEWAL
Darci M WhobreyAustraliaAmy Elsner RENEWAL
Wickens G StensethArgentinaOnyama Limba UNQUALIFIED
Izzy Y AmigonSpainAsiya Javayant QUALIFIED
Claire F RimRussiaXuxue Feng UNQUALIFIED
David H KolmetzSpainElwin Sharvill NEW
Munro E SlusarskiJapanAsiya Javayant RENEWAL
Smith Y CaldareraSpainAmy Elsner NEGOTIATION
Jeanfrancois Y NickaArgentinaIvan Magalhaes PROPOSAL
James J GlickArgentinaAnna Fali UNQUALIFIED
Ivar T TollnerIndiaXuxue Feng QUALIFIED
Clifford D KuskoItalyOnyama Limba PROPOSAL
Salvatore H OldroydJapanOnyama Limba NEGOTIATION
Cody A BriddickIndiaAmy Elsner NEGOTIATION
Maisha D KuskoArgentinaAmy Elsner RENEWAL
Jefferson D CampainGermanyBernardo Dominic QUALIFIED
Juan L CaldareraRussiaOnyama Limba PROPOSAL
Deepesh K VocelkaArgentinaAsiya Javayant NEGOTIATION
Aika E RimSpainStephen Shaw NEGOTIATION
Adams S ShinkoItalyOnyama Limba QUALIFIED
Kadeem C WhobreyAustraliaElwin Sharvill NEGOTIATION
Leon A CaudyArgentinaAsiya Javayant NEGOTIATION
Rodrigues V StockhamIndiaAnna Fali QUALIFIED
Murillo H MaletRussiaIvan Magalhaes NEGOTIATION

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