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
Maisha I SchemmerJapanStephen Shaw NEGOTIATION
Alejandro J MarrierRussiaOnyama Limba QUALIFIED
David O NestleItalyAnna Fali NEGOTIATION
Mujtaba L SlusarskiItalyAnna Fali UNQUALIFIED
Faith M BologniaGermanyElwin Sharvill QUALIFIED
Cody A KuskoBrazilStephen Shaw NEW
Salvatore O DarakjyArgentinaIoni Bowcher QUALIFIED
Tony V GillianBrazilAmy Elsner QUALIFIED
Deepesh L BologniaItalyStephen Shaw NEGOTIATION
Silvio Q DoeGermanyIoni Bowcher PROPOSAL
Clifford F FerenczUnited KingdomXuxue Feng PROPOSAL
Misaki B StensethItalyXuxue Feng PROPOSAL
Rodrigues V KolmetzJapanAnna Fali NEW
Jeanfrancois R AlbaresArgentinaXuxue Feng RENEWAL
Rodrigues V RutaCanadaIvan Magalhaes NEW
Arvin J RimCanadaAnna Fali NEGOTIATION
Leja O MaletIndiaBernardo Dominic UNQUALIFIED
Nicolas J CaudyAustraliaAmy Elsner NEW
Emily M FerenczIndiaIvan Magalhaes PROPOSAL
Aika C WaycottArgentinaXuxue Feng QUALIFIED
Maisha Y RoysterItalyOnyama Limba NEW
Claire W FlosiUnited KingdomAsiya Javayant NEW
Jefferson X WhobreyRussiaAnna Fali PROPOSAL
Murillo O FollerJapanIoni Bowcher PROPOSAL
Cody I SaylorsArgentinaAsiya Javayant QUALIFIED
Costa K NickaSpainElwin Sharvill RENEWAL
Johnson O OstroskyItalyElwin Sharvill UNQUALIFIED
Rodrigues R WhobreyRussiaOnyama Limba QUALIFIED
Chavez R BowleySpainElwin Sharvill RENEWAL
Johnson L GillianUnited KingdomIoni Bowcher RENEWAL
Jennifer D IturbideGermanyIvan Magalhaes NEW
Smith R GarufiJapanOnyama Limba NEGOTIATION
Jones R OldroydGermanyStephen Shaw NEW
Stacey V RoysterCanadaElwin Sharvill UNQUALIFIED
Cody W SlusarskiArgentinaStephen Shaw NEGOTIATION
Emily S InouyeItalyIvan Magalhaes RENEWAL
Leja H GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Maria K DoeSpainAmy Elsner NEW
Jefferson A RoysterBrazilAsiya Javayant NEW
Deepesh F DilliardCanadaStephen Shaw RENEWAL
Francesco A BologniaCanadaIvan Magalhaes RENEWAL
James J NickaGermanyElwin Sharvill RENEWAL
Salvatore O ShinkoRussiaOnyama Limba PROPOSAL
Ashley H FigeroaAustraliaIoni Bowcher QUALIFIED
Smith T SchemmerItalyIvan Magalhaes NEGOTIATION
Aruna T StockhamAustraliaIoni Bowcher NEGOTIATION
Isabel D NickaBrazilAnna Fali NEW
Antonio V CaudyItalyXuxue Feng QUALIFIED
Kaitlin Z CampainRussiaIvan Magalhaes NEW
Rodrigues K RoysterJapanXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith H CampainCanadaIvan Magalhaes UNQUALIFIED
Claire Z BowleyUnited KingdomAnna Fali NEGOTIATION
Faith Y DilliardRussiaStephen Shaw UNQUALIFIED
Murillo J VocelkaItalyIvan Magalhaes PROPOSAL
Mayumi M StensethCanadaXuxue Feng RENEWAL
Aditya J CaldareraSpainOnyama Limba PROPOSAL
Faith P AlbaresSpainAsiya Javayant QUALIFIED
Stacey N OstroskyJapanIoni Bowcher PROPOSAL
Aruna C GillianAustraliaAmy Elsner NEGOTIATION
Ashley L MaletSpainBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin T GarufiItaly2026-07-25Feltz Printing Service QUALIFIED41Xuxue Feng
1001Wickens P ChuiItaly2026-08-08Printing Dimensions QUALIFIED58Xuxue Feng
1002Sinclair Z GillianBrazil2026-08-16Printing Dimensions UNQUALIFIED36Elwin Sharvill
1003James T WhobreyBrazil2026-07-23Buckley Miller Wright NEW22Ivan Magalhaes
1004Morrow A RimSpain2026-08-09Truhlar And Truhlar Attys RENEWAL75Ioni Bowcher
1005Nicolas A MorascaRussia2026-08-08King, Christopher A Esq NEGOTIATION13Ioni Bowcher
1006Alejandro X CaldareraFrance2026-08-02Morlong Associates NEW72Anna Fali
1007Leon K DoeFrance2026-08-08Dorl, James J Esq QUALIFIED7Ivan Magalhaes
1008Juan P CampainIndia2026-08-04Truhlar And Truhlar Attys NEGOTIATION47Bernardo Dominic
1009David J TollnerSpain2026-08-18Feiner Bros RENEWAL7Anna Fali
1010Arvin G StockhamJapan2026-08-03Feiner Bros RENEWAL64Bernardo Dominic
1011Aika F NickaIndia2026-07-23Chemel, James L Cpa PROPOSAL6Amy Elsner
1012Salvatore B StockhamArgentina2026-07-20Benton, John B Jr RENEWAL65Onyama Limba
1013Jefferson H FigeroaGermany2026-07-23Chapman, Ross E Esq NEGOTIATION51Ioni Bowcher
1014Ashley B BowleyAustralia2026-08-17Buckley Miller Wright RENEWAL42Ivan Magalhaes
1015Munro M GarufiAustralia2026-07-31Truhlar And Truhlar Attys RENEWAL11Xuxue Feng
1016Stacey A TollnerUnited Kingdom2026-07-30Chanay, Jeffrey A Esq RENEWAL30Amy Elsner
1017Leja K SergiItaly2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED88Ioni Bowcher
1018Faith Z BriddickArgentina2026-07-22Chapman, Ross E Esq UNQUALIFIED15Elwin Sharvill
1019Misaki V AlbaresIndia2026-07-30Chanay, Jeffrey A Esq RENEWAL69Ioni Bowcher
1020Misaki D GarufiBrazil2026-08-01Chapman, Ross E Esq QUALIFIED46Ivan Magalhaes
1021Mujtaba T FerenczBrazil2026-08-16Commercial Press NEW99Onyama Limba
1022Antonio K WhobreyBrazil2026-08-08Commercial Press RENEWAL81Stephen Shaw
1023Silvio E FerenczCanada2026-08-16Dorl, James J Esq NEGOTIATION42Anna Fali
1024Wickens I PerinUnited Kingdom2026-08-18Buckley Miller Wright QUALIFIED5Ioni Bowcher
1025Aditya H GauchoItaly2026-08-04Buckley Miller Wright UNQUALIFIED85Anna Fali
1026Mayumi J WhobreyArgentina2026-07-21Truhlar And Truhlar Attys RENEWAL14Xuxue Feng
1027Costa Z StensethJapan2026-08-14Chapman, Ross E Esq PROPOSAL24Anna Fali
1028James T ShinkoGermany2026-07-29Feltz Printing Service QUALIFIED35Asiya Javayant
1029Munro J FigeroaJapan2026-08-08Commercial Press QUALIFIED5Onyama Limba
1030Smith O GlickSpain2026-08-11Dorl, James J Esq PROPOSAL85Onyama Limba
1031Maria X OldroydIndia2026-08-11Feiner Bros PROPOSAL8Amy Elsner
1032Greenwood S FlosiJapan2026-08-10Truhlar And Truhlar Attys UNQUALIFIED31Elwin Sharvill
1033Rodrigues Z SlusarskiFrance2026-08-07Printing Dimensions UNQUALIFIED7Elwin Sharvill
1034Salvatore S SchemmerGermany2026-08-10Chemel, James L Cpa UNQUALIFIED2Onyama Limba
1035Faith D GauchoGermany2026-07-20Chemel, James L Cpa NEGOTIATION87Anna Fali
1036Misaki R VenereSpain2026-07-24Chanay, Jeffrey A Esq NEGOTIATION51Onyama Limba
1037Silvio Z SchemmerBrazil2026-08-14Printing Dimensions QUALIFIED96Elwin Sharvill
1038Izzy P PaprockiCanada2026-08-01Buckley Miller Wright RENEWAL11Ioni Bowcher
1039Francesco M IturbideArgentina2026-08-04King, Christopher A Esq UNQUALIFIED5Ivan Magalhaes
1040Sinclair S FlosiAustralia2026-08-10Feiner Bros QUALIFIED18Ivan Magalhaes
1041Faith N GillianAustralia2026-08-13Rangoni Of Florence NEGOTIATION98Ioni Bowcher
1042Isabel A RimAustralia2026-07-30Buckley Miller Wright NEGOTIATION47Ivan Magalhaes
1043Aruna P MacleadItaly2026-07-20Buckley Miller Wright QUALIFIED19Bernardo Dominic
1044Costa F CaudyUnited Kingdom2026-07-30Feltz Printing Service UNQUALIFIED54Stephen Shaw
1045Mujtaba T DilliardAustralia2026-08-04Buckley Miller Wright PROPOSAL83Amy Elsner
1046Nicolas Z GarufiGermany2026-07-23Benton, John B Jr QUALIFIED52Amy Elsner
1047Jefferson B InouyeBrazil2026-07-23Rousseaux, Michael Esq UNQUALIFIED35Stephen Shaw
1048Kadeem E WieserItaly2026-08-16Commercial Press PROPOSAL62Xuxue Feng
1049Arvin D InouyeSpain2026-07-23Benton, John B Jr NEW66Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Tony L BologniaCanadaAmy Elsner NEW
Tony T RimJapanStephen Shaw NEGOTIATION
Mujtaba O BowleyArgentinaAsiya Javayant UNQUALIFIED
Emily C BriddickItalyStephen Shaw RENEWAL
Johnson X OstroskyItalyAmy Elsner NEGOTIATION
Leja G DarakjyUnited KingdomStephen Shaw NEGOTIATION
David L MacleadJapanAmy Elsner PROPOSAL
Smith G InouyeSpainXuxue Feng NEW
Mujtaba M KolmetzSpainStephen Shaw UNQUALIFIED
James U WhobreyIndiaAmy Elsner NEW
Clifford N NestleUnited KingdomAmy Elsner PROPOSAL
Johnson W NestleGermanyElwin Sharvill QUALIFIED
Francesco C MarrierArgentinaElwin Sharvill RENEWAL
Nicolas X MaletFranceBernardo Dominic NEW
Jones C VenereFranceElwin Sharvill RENEWAL
Mayumi Y StockhamItalyIoni Bowcher NEGOTIATION
Leon N KolmetzBrazilBernardo Dominic QUALIFIED
Munro P GillianGermanyXuxue Feng PROPOSAL
Emily T KolmetzItalyBernardo Dominic QUALIFIED
Greenwood K OldroydSpainAnna Fali NEW
Isabel D KolmetzBrazilXuxue Feng UNQUALIFIED
Julie T PerinGermanyBernardo Dominic NEGOTIATION
Nicolas I NickaIndiaStephen Shaw PROPOSAL
Tony H KolmetzIndiaXuxue Feng UNQUALIFIED
Faith P OldroydArgentinaAmy Elsner RENEWAL
Francesco X DilliardRussiaXuxue Feng NEGOTIATION
Ricardo E PaprockiRussiaOnyama Limba UNQUALIFIED
Mujtaba T BologniaArgentinaStephen Shaw QUALIFIED
Leja Q GauchoIndiaAmy Elsner PROPOSAL
Greenwood C StensethRussiaIvan Magalhaes NEGOTIATION
James L DilliardSpainStephen Shaw QUALIFIED
David V PaprockiFranceAsiya Javayant RENEWAL
Octavia Q RimFranceStephen Shaw UNQUALIFIED
Mayumi F MorascaCanadaElwin Sharvill NEW
Emily M CaudyGermanyElwin Sharvill RENEWAL
Aruna L StensethItalyAmy Elsner UNQUALIFIED
Leja R GauchoFranceXuxue Feng NEGOTIATION
Greenwood E InouyeIndiaElwin Sharvill QUALIFIED
Salvatore T InouyeSpainStephen Shaw NEGOTIATION
Maisha D SchemmerRussiaIvan Magalhaes QUALIFIED
Jeanfrancois H MaletIndiaAmy Elsner RENEWAL
Cody I NickaIndiaOnyama Limba PROPOSAL
James X KolmetzGermanyStephen Shaw NEW
Octavia Q FerenczArgentinaBernardo Dominic PROPOSAL
Ivar B InouyeBrazilIoni Bowcher NEW
Faith N DoeAustraliaAsiya Javayant UNQUALIFIED
Emily O RimJapanIoni Bowcher NEW
Mayumi A PoquetteFranceIoni Bowcher RENEWAL
Smith W InouyeIndiaBernardo Dominic PROPOSAL
Stacey Z KuskoJapanAmy Elsner RENEWAL
Frozen Columns
Name
Smith J Slusarski
Aika Y Garufi
Mujtaba T Caudy
Antonio D Rim
Cody U Stenseth
Murillo F Shinko
Ivar O Waycott
Morrow O Chui
Maria B Flosi
Jeanfrancois W Gaucho
Aika F Ostrosky
Julie V Slusarski
Jennifer R Gillian
Kadeem S Chui
Maria C Slusarski
Darci L Maclead
Jones K Foller
Ashley L Figeroa
Maria P Stenseth
Greenwood L Bowley
David I Paprocki
Wickens P Oldroyd
Isabel F Bowley
David V Paprocki
Greenwood O Ostrosky
Johnson K Butt
James C Caudy
Kadeem V Garufi
Chavez L Venere
Adams I Caudy
Salvatore G Marrier
Tony C Whobrey
Tony S Flosi
Sinclair Z Venere
Claire H Tollner
Ricardo Z Kusko
Nicolas J Sergi
Deepesh B Nestle
Emily I Ostrosky
Ricardo J Bowley
Arvin C Doe
Maisha A Butt
Cody K Vocelka
Sinclair P Amigon
Murillo E Malet
Jones Q Amigon
Nicolas H Flosi
Maria H Slusarski
Murillo I Butt
Misaki D Gillian
IdCountryDate
1000Russia2026-08-06
1001Russia2026-08-04
1002Russia2026-07-30
1003Brazil2026-08-17
1004Japan2026-08-05
1005Italy2026-08-02
1006Japan2026-08-16
1007France2026-07-26
1008Germany2026-07-29
1009Italy2026-07-27
1010Argentina2026-08-15
1011Australia2026-07-27
1012Italy2026-07-21
1013France2026-07-26
1014Spain2026-08-15
1015Australia2026-07-28
1016United Kingdom2026-08-17
1017Argentina2026-08-08
1018Australia2026-07-22
1019Canada2026-07-21
1020Italy2026-08-14
1021France2026-08-16
1022Spain2026-07-23
1023France2026-08-01
1024Australia2026-08-07
1025Canada2026-08-13
1026Germany2026-08-02
1027Canada2026-07-26
1028Brazil2026-08-15
1029Russia2026-07-25
1030Argentina2026-07-27
1031France2026-08-12
1032Italy2026-07-31
1033Spain2026-08-12
1034Germany2026-08-02
1035Italy2026-08-11
1036Italy2026-07-24
1037Japan2026-08-16
1038France2026-08-10
1039France2026-07-25
1040Italy2026-07-20
1041Australia2026-07-29
1042Brazil2026-07-20
1043Argentina2026-08-18
1044Australia2026-07-30
1045Russia2026-08-17
1046Japan2026-08-14
1047Australia2026-07-22
1048Australia2026-07-31
1049France2026-07-20

On-Demand Data

NameIdCountryDate
Morrow R Vocelka1000Argentina2026-08-09
Kaitlin P Tollner1001United Kingdom2026-07-31
Deepesh I Marrier1002Japan2026-08-17
Antonio J Venere1003Australia2026-07-31
Munro P Kolmetz1004Argentina2026-07-26
Ivar J Ruta1005Canada2026-08-04
Leon P Nestle1006Japan2026-07-26
Octavia S Saylors1007Italy2026-07-22
Aditya E Gaucho1008Australia2026-07-23
Silvio U Foller1009Russia2026-08-18
Darci G Flosi1010Germany2026-08-18
Johnson J Rim1011Japan2026-07-29
Ricardo Z Ferencz1012Russia2026-08-17
Clifford D Ferencz1013Australia2026-08-03
Alejandro W Figeroa1014Argentina2026-08-13
Juan S Oldroyd1015Germany2026-07-26
Mayumi F Flosi1016India2026-07-31
Kadeem A Inouye1017Canada2026-08-16
Jones X Waycott1018Argentina2026-07-29
Ashley O Perin1019Germany2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily X TollnerRussiaAnna Fali NEGOTIATION
Leja U BologniaItalyStephen Shaw RENEWAL
Morrow Q PaprockiJapanAmy Elsner NEW
Costa T DarakjySpainIvan Magalhaes UNQUALIFIED
Francesco F SlusarskiCanadaAmy Elsner RENEWAL
Maria U AmigonBrazilBernardo Dominic NEW
Nicolas O IturbideItalyAnna Fali QUALIFIED
Mujtaba J FerenczFranceAmy Elsner UNQUALIFIED
Alejandro E DilliardSpainOnyama Limba RENEWAL
Leja L CaudyIndiaStephen Shaw QUALIFIED
Emily L StockhamSpainXuxue Feng RENEWAL
Aditya A SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Octavia S MaletUnited KingdomAmy Elsner PROPOSAL
Tony E BowleyItalyAmy Elsner PROPOSAL
Octavia B CampainArgentinaIvan Magalhaes UNQUALIFIED
Francesco T MarrierSpainAnna Fali QUALIFIED
Tony V MorascaIndiaXuxue Feng UNQUALIFIED
Alejandro H FerenczCanadaXuxue Feng UNQUALIFIED
James P GauchoRussiaBernardo Dominic PROPOSAL
Jennifer K FollerItalyXuxue Feng PROPOSAL
Nicolas L CampainGermanyAnna Fali NEGOTIATION
Izzy Z MaletAustraliaStephen Shaw UNQUALIFIED
Claire H FollerAustraliaIvan Magalhaes NEGOTIATION
Aruna C DoeAustraliaOnyama Limba UNQUALIFIED
Costa B FollerArgentinaXuxue Feng QUALIFIED
Jeanfrancois Q ButtGermanyElwin Sharvill QUALIFIED
Cody S SchemmerArgentinaIoni Bowcher RENEWAL
David I PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Munro J FlosiRussiaStephen Shaw QUALIFIED
Ivar C OstroskyCanadaAnna Fali PROPOSAL
Izzy H CampainArgentinaElwin Sharvill NEW
Smith H SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Jones H OstroskyFranceStephen Shaw NEGOTIATION
Mujtaba A OldroydCanadaXuxue Feng RENEWAL
Isabel Y DilliardIndiaStephen Shaw UNQUALIFIED
Claire W GlickJapanOnyama Limba NEGOTIATION
Maria N PerinIndiaBernardo Dominic QUALIFIED
Jefferson V KolmetzItalyIoni Bowcher NEGOTIATION
Leja Q InouyeUnited KingdomAsiya Javayant NEW
Smith C SchemmerGermanyIoni Bowcher 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>