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 Y OstroskyAustraliaAsiya Javayant UNQUALIFIED
Jones A MacleadBrazilElwin Sharvill QUALIFIED
Costa Y WaycottFranceStephen Shaw PROPOSAL
Aika N RimArgentinaAmy Elsner UNQUALIFIED
Leja O VenereUnited KingdomBernardo Dominic NEW
Tony G WieserGermanyStephen Shaw NEGOTIATION
Kaitlin O SchemmerCanadaIvan Magalhaes PROPOSAL
Leja V DoeArgentinaStephen Shaw RENEWAL
Darci G GillianRussiaAmy Elsner PROPOSAL
Deepesh H RoysterRussiaElwin Sharvill RENEWAL
Claire T CaldareraGermanyElwin Sharvill NEGOTIATION
Leon H MorascaIndiaElwin Sharvill RENEWAL
Jones N PoquetteRussiaBernardo Dominic QUALIFIED
Kadeem K OldroydSpainOnyama Limba UNQUALIFIED
Maria K NestleUnited KingdomAmy Elsner PROPOSAL
Octavia P BriddickAustraliaBernardo Dominic RENEWAL
Cody O OldroydGermanyAsiya Javayant PROPOSAL
Emily A RoysterArgentinaAmy Elsner PROPOSAL
Adams V DarakjyBrazilElwin Sharvill NEGOTIATION
Maria W ChuiRussiaIvan Magalhaes RENEWAL
Kadeem C WhobreySpainIvan Magalhaes QUALIFIED
Francesco X RulapaughGermanyIvan Magalhaes UNQUALIFIED
Octavia V SchemmerGermanyElwin Sharvill QUALIFIED
Tony E StockhamUnited KingdomIoni Bowcher NEW
Arvin O AmigonCanadaIoni Bowcher NEGOTIATION
Wickens N KuskoRussiaXuxue Feng PROPOSAL
Greenwood B NestleUnited KingdomAmy Elsner QUALIFIED
Clifford A PerinJapanStephen Shaw NEGOTIATION
Mujtaba X BriddickAustraliaAmy Elsner NEGOTIATION
Aika D ShinkoItalyAsiya Javayant PROPOSAL
Greenwood V MorascaBrazilIvan Magalhaes PROPOSAL
Aruna O ChuiIndiaIoni Bowcher NEW
Adams U GlickIndiaAnna Fali UNQUALIFIED
Kaitlin M DilliardBrazilIoni Bowcher QUALIFIED
Darci N BowleyAustraliaElwin Sharvill RENEWAL
Mujtaba Y PerinGermanyXuxue Feng NEGOTIATION
Faith C SaylorsJapanXuxue Feng RENEWAL
Leja O OldroydGermanyElwin Sharvill NEGOTIATION
Kadeem U WieserRussiaAmy Elsner QUALIFIED
Aditya L FlosiSpainXuxue Feng RENEWAL
Greenwood X GauchoFranceElwin Sharvill NEW
Ashley H ShinkoIndiaElwin Sharvill UNQUALIFIED
Jennifer Z GauchoCanadaAsiya Javayant QUALIFIED
Wickens A DilliardRussiaStephen Shaw UNQUALIFIED
Sinclair L AmigonCanadaBernardo Dominic UNQUALIFIED
Kadeem N BologniaItalyAnna Fali RENEWAL
Ricardo K StensethRussiaStephen Shaw PROPOSAL
Leon E FollerSpainAmy Elsner PROPOSAL
Silvio M AlbaresJapanStephen Shaw RENEWAL
Ashley M AlbaresArgentinaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika D PoquetteRussiaAsiya Javayant RENEWAL
Salvatore Q GillianItalyIvan Magalhaes RENEWAL
Aditya U RutaArgentinaElwin Sharvill NEGOTIATION
Julie Q DilliardArgentinaStephen Shaw UNQUALIFIED
Julie T RimJapanOnyama Limba RENEWAL
Ricardo I RutaUnited KingdomXuxue Feng RENEWAL
Faith R PerinAustraliaAmy Elsner QUALIFIED
Tony F PerinArgentinaStephen Shaw RENEWAL
Misaki T AlbaresGermanyAmy Elsner RENEWAL
Antonio R TollnerItalyElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley K GillianFrance2025-06-06Commercial Press QUALIFIED66Asiya Javayant
1001Morrow A WaycottBrazil2025-05-22Feltz Printing Service UNQUALIFIED60Anna Fali
1002Greenwood G RutaJapan2025-06-12Buckley Miller Wright RENEWAL90Asiya Javayant
1003Murillo M WhobreySpain2025-06-08Feltz Printing Service UNQUALIFIED55Asiya Javayant
1004Deepesh V SlusarskiRussia2025-05-28Chapman, Ross E Esq RENEWAL33Bernardo Dominic
1005Emily I MorascaRussia2025-06-13Commercial Press NEGOTIATION64Elwin Sharvill
1006Jeanfrancois U MaletBrazil2025-06-15Buckley Miller Wright NEW34Asiya Javayant
1007Mayumi H PerinIndia2025-05-28Rangoni Of Florence UNQUALIFIED61Xuxue Feng
1008Jefferson L SergiItaly2025-06-10King, Christopher A Esq RENEWAL25Asiya Javayant
1009Julie E DilliardSpain2025-06-11Commercial Press UNQUALIFIED70Bernardo Dominic
1010Julie T SchemmerArgentina2025-05-30Chapman, Ross E Esq PROPOSAL31Amy Elsner
1011Sinclair B FigeroaCanada2025-06-03Feltz Printing Service NEW69Amy Elsner
1012Munro I FerenczItaly2025-05-27Chapman, Ross E Esq NEGOTIATION7Ioni Bowcher
1013Jones Z StensethRussia2025-06-01King, Christopher A Esq NEW25Onyama Limba
1014Johnson S ButtGermany2025-06-10Rousseaux, Michael Esq NEW46Onyama Limba
1015Ricardo T WieserBrazil2025-05-18Printing Dimensions PROPOSAL22Asiya Javayant
1016David Z SergiItaly2025-06-03Feiner Bros UNQUALIFIED22Xuxue Feng
1017Aika A WaycottCanada2025-05-24Chanay, Jeffrey A Esq NEW77Onyama Limba
1018Costa C IturbideSpain2025-06-11Printing Dimensions NEW48Ivan Magalhaes
1019Deepesh S MaletItaly2025-05-21Benton, John B Jr RENEWAL90Asiya Javayant
1020Silvio F GillianRussia2025-06-06Printing Dimensions NEGOTIATION29Bernardo Dominic
1021Maria N StensethCanada2025-06-06Commercial Press RENEWAL52Stephen Shaw
1022Morrow Y RoysterArgentina2025-05-31Rousseaux, Michael Esq UNQUALIFIED86Stephen Shaw
1023Ricardo W BriddickAustralia2025-06-05Commercial Press PROPOSAL31Bernardo Dominic
1024Clifford K IturbideIndia2025-05-28Chanay, Jeffrey A Esq RENEWAL48Stephen Shaw
1025Claire R GillianRussia2025-06-12Chapman, Ross E Esq UNQUALIFIED68Asiya Javayant
1026Jefferson H MorascaRussia2025-06-05Rousseaux, Michael Esq UNQUALIFIED52Bernardo Dominic
1027Ricardo Z PoquetteRussia2025-06-02Chemel, James L Cpa PROPOSAL13Amy Elsner
1028Tony F ButtAustralia2025-05-18Benton, John B Jr QUALIFIED84Anna Fali
1029Isabel X BologniaJapan2025-05-28Feltz Printing Service RENEWAL4Bernardo Dominic
1030Kadeem D FerenczSpain2025-06-11Chemel, James L Cpa PROPOSAL86Elwin Sharvill
1031Ivar H FollerCanada2025-06-13Feiner Bros UNQUALIFIED28Amy Elsner
1032Jennifer U DarakjyUnited Kingdom2025-05-28Feiner Bros NEGOTIATION7Anna Fali
1033Aruna B FollerUnited Kingdom2025-06-15Chanay, Jeffrey A Esq UNQUALIFIED75Bernardo Dominic
1034Claire K MarrierAustralia2025-05-18Feiner Bros UNQUALIFIED33Ioni Bowcher
1035Julie I ChuiJapan2025-05-23Chanay, Jeffrey A Esq UNQUALIFIED56Ioni Bowcher
1036Antonio E FigeroaJapan2025-05-28Feiner Bros NEW8Stephen Shaw
1037Clifford E FlosiRussia2025-05-18Benton, John B Jr RENEWAL82Ivan Magalhaes
1038Ashley G VenereCanada2025-05-20Printing Dimensions RENEWAL58Xuxue Feng
1039Claire O VenereIndia2025-06-13Buckley Miller Wright NEW1Onyama Limba
1040Ricardo Y GauchoGermany2025-05-29Morlong Associates UNQUALIFIED63Elwin Sharvill
1041Jefferson S IturbideAustralia2025-06-04Chemel, James L Cpa NEGOTIATION52Ivan Magalhaes
1042Ivar L StockhamAustralia2025-05-23Chemel, James L Cpa RENEWAL34Onyama Limba
1043Aditya U PoquetteArgentina2025-06-06Buckley Miller Wright RENEWAL92Stephen Shaw
1044Ivar R SlusarskiArgentina2025-05-20Chapman, Ross E Esq UNQUALIFIED24Bernardo Dominic
1045Claire J CampainGermany2025-06-09Chemel, James L Cpa UNQUALIFIED86Asiya Javayant
1046Juan P SlusarskiIndia2025-06-03Truhlar And Truhlar Attys NEGOTIATION44Amy Elsner
1047Aika G SchemmerIndia2025-05-20Morlong Associates QUALIFIED83Stephen Shaw
1048Wickens S KuskoIndia2025-06-06Feiner Bros UNQUALIFIED98Stephen Shaw
1049Izzy Z VenereCanada2025-06-04Benton, John B Jr NEW52Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Francesco E BologniaUnited KingdomElwin Sharvill NEW
Sinclair G GarufiCanadaIoni Bowcher UNQUALIFIED
Morrow T SaylorsItalyBernardo Dominic UNQUALIFIED
Munro B MaletGermanyXuxue Feng RENEWAL
Silvio S StensethJapanAmy Elsner RENEWAL
Johnson G NickaArgentinaOnyama Limba NEW
Antonio I MaletJapanBernardo Dominic UNQUALIFIED
Maria O FigeroaCanadaStephen Shaw QUALIFIED
Silvio L MacleadItalyStephen Shaw NEW
Leja C PoquetteBrazilXuxue Feng RENEWAL
Wickens S SaylorsBrazilAsiya Javayant NEGOTIATION
Murillo B CaudyFranceXuxue Feng RENEWAL
Munro L MorascaRussiaIoni Bowcher RENEWAL
Greenwood L KolmetzRussiaElwin Sharvill NEGOTIATION
Rodrigues R WhobreyRussiaIvan Magalhaes NEGOTIATION
Ivar G TollnerRussiaXuxue Feng PROPOSAL
Kadeem V MacleadIndiaIvan Magalhaes QUALIFIED
Aruna Z VenereIndiaOnyama Limba PROPOSAL
Izzy W CampainIndiaElwin Sharvill PROPOSAL
Adams J GillianGermanyIvan Magalhaes PROPOSAL
Julie K VocelkaJapanAnna Fali NEGOTIATION
Munro V VocelkaCanadaStephen Shaw QUALIFIED
Clifford K AmigonUnited KingdomIoni Bowcher QUALIFIED
Chavez Z CaudyUnited KingdomBernardo Dominic QUALIFIED
Clifford Z ButtIndiaStephen Shaw UNQUALIFIED
Tony F KuskoBrazilStephen Shaw NEGOTIATION
Kaitlin N StensethArgentinaOnyama Limba QUALIFIED
Faith S TollnerArgentinaElwin Sharvill RENEWAL
Ivar I NestleSpainAnna Fali UNQUALIFIED
Darci H CaldareraSpainBernardo Dominic NEGOTIATION
Ivar R NickaGermanyXuxue Feng QUALIFIED
Ivar P GlickSpainAmy Elsner PROPOSAL
Sinclair Y KolmetzJapanIvan Magalhaes PROPOSAL
Sinclair C PoquetteBrazilAsiya Javayant QUALIFIED
Emily P BowleyCanadaOnyama Limba QUALIFIED
Smith K InouyeIndiaAnna Fali RENEWAL
Emily F KolmetzArgentinaIvan Magalhaes PROPOSAL
Antonio Z DarakjyItalyAmy Elsner NEGOTIATION
Ricardo Q FerenczJapanAnna Fali QUALIFIED
Murillo I FlosiArgentinaAsiya Javayant RENEWAL
Morrow B AlbaresCanadaIvan Magalhaes UNQUALIFIED
Stacey R FerenczBrazilBernardo Dominic UNQUALIFIED
David X BowleyGermanyStephen Shaw UNQUALIFIED
Alejandro U SlusarskiFranceAmy Elsner QUALIFIED
Alejandro T ShinkoFranceAsiya Javayant QUALIFIED
Octavia D FollerFranceStephen Shaw PROPOSAL
Claire O ChuiAustraliaAmy Elsner NEW
Ricardo S OstroskyBrazilOnyama Limba RENEWAL
Kaitlin A CaudyItalyAsiya Javayant PROPOSAL
Emily O FlosiFranceBernardo Dominic UNQUALIFIED
Frozen Columns
Name
James I Vocelka
James O Kolmetz
Julie I Ostrosky
Maisha P Malet
Salvatore C Gaucho
Rodrigues H Bowley
Mayumi Q Morasca
Mayumi Z Doe
Claire T Nestle
Maisha A Ostrosky
Salvatore O Marrier
Murillo I Gillian
Wickens C Albares
Clifford N Chui
Clifford W Whobrey
Maria M Wieser
Aditya R Maclead
Ivar J Oldroyd
Rodrigues J Shinko
Sinclair I Stenseth
Stacey O Briddick
Smith W Paprocki
Nicolas A Nestle
Stacey M Marrier
Ashley M Schemmer
Emily M Rim
Nicolas Y Stockham
Jennifer Z Royster
Juan Q Ruta
Izzy T Venere
Ashley Y Foller
Maisha X Albares
Ivar X Maclead
Arvin O Maclead
Isabel Y Caldarera
Aruna F Royster
Murillo V Sergi
Aika R Oldroyd
Clifford P Maclead
David K Whobrey
Jones G Schemmer
Maisha H Darakjy
Ivar M Sergi
Mujtaba I Maclead
James Z Glick
Ricardo Q Rulapaugh
Johnson K Ruta
Aika T Stockham
Jones A Sergi
Munro J Saylors
IdCountryDate
1000India2025-06-11
1001Italy2025-05-24
1002Spain2025-06-07
1003Russia2025-06-14
1004Russia2025-06-11
1005India2025-06-05
1006Russia2025-05-21
1007India2025-06-06
1008Japan2025-06-08
1009Italy2025-05-24
1010Argentina2025-05-21
1011Brazil2025-06-12
1012India2025-06-09
1013Germany2025-06-06
1014Japan2025-06-13
1015Brazil2025-06-01
1016Japan2025-06-07
1017Germany2025-05-22
1018Argentina2025-05-24
1019Brazil2025-06-11
1020Italy2025-05-22
1021Italy2025-05-23
1022Spain2025-06-05
1023Japan2025-06-09
1024Italy2025-06-09
1025Germany2025-06-04
1026Spain2025-06-10
1027Russia2025-06-01
1028Russia2025-05-27
1029Germany2025-05-24
1030Germany2025-05-31
1031United Kingdom2025-05-24
1032Spain2025-05-21
1033Brazil2025-05-22
1034Canada2025-06-12
1035Australia2025-05-25
1036Argentina2025-06-09
1037Brazil2025-05-18
1038France2025-06-14
1039Australia2025-06-02
1040United Kingdom2025-06-05
1041Russia2025-05-25
1042United Kingdom2025-05-21
1043Argentina2025-05-20
1044Argentina2025-05-25
1045Australia2025-06-12
1046Argentina2025-06-04
1047Russia2025-06-09
1048India2025-05-28
1049France2025-06-10

On-Demand Data

NameIdCountryDate
Octavia T Nicka1000Spain2025-06-08
Izzy F Nicka1001France2025-06-10
Johnson Q Iturbide1002France2025-06-04
Antonio D Kolmetz1003Australia2025-06-05
Morrow P Dilliard1004Canada2025-06-03
Kadeem L Bowley1005Germany2025-05-19
Jeanfrancois F Garufi1006Russia2025-06-08
Ashley Q Caldarera1007Spain2025-05-29
Wickens L Butt1008Germany2025-06-04
Aditya F Caldarera1009Japan2025-06-13
Deepesh A Briddick1010Russia2025-05-25
Claire B Paprocki1011Canada2025-06-09
Darci C Bolognia1012France2025-05-24
Cody D Malet1013Argentina2025-06-11
Adams S Vocelka1014Germany2025-05-29
Smith Y Bolognia1015France2025-06-11
Wickens R Kolmetz1016India2025-06-11
Leja H Figeroa1017Japan2025-05-19
Chavez Q Marrier1018Canada2025-06-05
Claire C Caldarera1019Argentina2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro W BologniaSpainXuxue Feng UNQUALIFIED
Alejandro O OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Isabel U ButtJapanAnna Fali PROPOSAL
Tony S OstroskyGermanyAnna Fali NEW
Jeanfrancois Z KuskoFranceOnyama Limba UNQUALIFIED
David K CaudyUnited KingdomIoni Bowcher NEGOTIATION
Jones S NickaBrazilStephen Shaw PROPOSAL
Antonio K OldroydUnited KingdomAmy Elsner NEGOTIATION
Kaitlin M RutaJapanStephen Shaw RENEWAL
Silvio U BologniaJapanAsiya Javayant QUALIFIED
Alejandro H BriddickItalyBernardo Dominic NEW
Antonio C ShinkoFranceAnna Fali NEGOTIATION
Leon N SchemmerItalyAmy Elsner NEGOTIATION
Rodrigues V RutaUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh N NickaCanadaElwin Sharvill QUALIFIED
Alejandro H OstroskyAustraliaElwin Sharvill NEGOTIATION
James Y BowleyItalyStephen Shaw QUALIFIED
Juan A KolmetzArgentinaStephen Shaw NEW
Ivar I WhobreyRussiaElwin Sharvill RENEWAL
Jones I MaletItalyAnna Fali RENEWAL
Cody M NestleRussiaIvan Magalhaes RENEWAL
Ashley E TollnerSpainAnna Fali PROPOSAL
Julie F InouyeFranceAmy Elsner PROPOSAL
Greenwood F SchemmerGermanyIoni Bowcher NEW
Nicolas I GarufiArgentinaIoni Bowcher UNQUALIFIED
Smith X BriddickBrazilXuxue Feng RENEWAL
Morrow A StockhamArgentinaXuxue Feng PROPOSAL
Greenwood J TollnerSpainIoni Bowcher RENEWAL
Maisha O ChuiGermanyAnna Fali QUALIFIED
Morrow C TollnerJapanStephen Shaw PROPOSAL
Ashley H GarufiAustraliaIvan Magalhaes NEW
Arvin Q GlickFranceAmy Elsner UNQUALIFIED
Costa C PaprockiArgentinaXuxue Feng QUALIFIED
Ivar Q RimArgentinaOnyama Limba RENEWAL
Octavia Y BologniaAustraliaAnna Fali QUALIFIED
Faith A MarrierIndiaOnyama Limba NEGOTIATION
Murillo V RimJapanAsiya Javayant QUALIFIED
Chavez B SlusarskiArgentinaElwin Sharvill NEW
Jones Q SlusarskiFranceAnna Fali NEGOTIATION
Murillo G ShinkoUnited KingdomIvan 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>