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
Ricardo P NestleAustraliaAsiya Javayant RENEWAL
Francesco J PerinUnited KingdomAsiya Javayant UNQUALIFIED
Faith S StensethItalyBernardo Dominic PROPOSAL
Jones O FigeroaCanadaAmy Elsner UNQUALIFIED
Misaki P WieserUnited KingdomAsiya Javayant UNQUALIFIED
Izzy D VenereArgentinaBernardo Dominic NEW
Chavez O BowleyAustraliaOnyama Limba NEW
Emily K CaudyRussiaIvan Magalhaes NEGOTIATION
James K CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Murillo N BologniaAustraliaOnyama Limba NEGOTIATION
James F ChuiFranceElwin Sharvill NEW
Smith J AmigonArgentinaXuxue Feng QUALIFIED
Chavez V SchemmerFranceElwin Sharvill RENEWAL
Claire A StensethJapanElwin Sharvill UNQUALIFIED
Kaitlin Y DoeIndiaIvan Magalhaes NEW
Sinclair N SergiSpainAsiya Javayant RENEWAL
Claire Q WaycottBrazilAnna Fali QUALIFIED
Ashley P CaldareraIndiaAsiya Javayant RENEWAL
Maisha G BowleySpainIvan Magalhaes RENEWAL
Maria Z AlbaresGermanyBernardo Dominic PROPOSAL
Darci W CampainAustraliaIoni Bowcher NEW
Deepesh G FollerAustraliaAsiya Javayant QUALIFIED
Stacey J RulapaughBrazilXuxue Feng NEW
Antonio J CampainArgentinaAmy Elsner PROPOSAL
Greenwood R VenereItalyElwin Sharvill RENEWAL
Juan D CaudyUnited KingdomAnna Fali NEGOTIATION
Maria G DoeFranceStephen Shaw NEGOTIATION
Claire V RutaUnited KingdomIoni Bowcher RENEWAL
Antonio V ButtCanadaIoni Bowcher RENEWAL
Kaitlin W SlusarskiBrazilAsiya Javayant NEGOTIATION
Tony J WieserUnited KingdomStephen Shaw NEGOTIATION
James K DarakjyJapanBernardo Dominic RENEWAL
Johnson V MacleadIndiaAnna Fali QUALIFIED
Greenwood Q WhobreyUnited KingdomAsiya Javayant NEW
James Y PerinArgentinaIoni Bowcher RENEWAL
Murillo L MorascaUnited KingdomStephen Shaw UNQUALIFIED
Ashley X SaylorsRussiaAnna Fali UNQUALIFIED
Izzy H DarakjyBrazilElwin Sharvill NEW
Tony K WhobreyFranceAmy Elsner RENEWAL
Sinclair V GillianCanadaStephen Shaw RENEWAL
Smith R VocelkaSpainAmy Elsner RENEWAL
Francesco F SaylorsFranceAsiya Javayant QUALIFIED
Misaki F PaprockiSpainIoni Bowcher NEW
Faith R MaletAustraliaIvan Magalhaes RENEWAL
Alejandro D AlbaresCanadaIvan Magalhaes NEGOTIATION
Claire D FollerCanadaBernardo Dominic PROPOSAL
Misaki L BologniaUnited KingdomAmy Elsner RENEWAL
Adams B GlickItalyXuxue Feng UNQUALIFIED
Octavia B MaletGermanyOnyama Limba PROPOSAL
Julie M ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon A GarufiFranceStephen Shaw RENEWAL
Greenwood G RimIndiaStephen Shaw PROPOSAL
Alejandro U BowleyBrazilOnyama Limba UNQUALIFIED
Munro S MarrierBrazilIoni Bowcher NEGOTIATION
Misaki G FerenczBrazilIoni Bowcher QUALIFIED
Nicolas L FlosiGermanyBernardo Dominic PROPOSAL
Leja Z RulapaughIndiaBernardo Dominic NEW
Aditya C WaycottSpainBernardo Dominic QUALIFIED
Izzy W WaycottAustraliaElwin Sharvill UNQUALIFIED
Stacey P ChuiItalyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo A PerinGermany2026-07-30Chapman, Ross E Esq UNQUALIFIED93Stephen Shaw
1001Silvio B KuskoArgentina2026-07-21Commercial Press NEW75Amy Elsner
1002Cody L DoeIndia2026-07-31Printing Dimensions NEW0Onyama Limba
1003Juan P InouyeItaly2026-07-27Chanay, Jeffrey A Esq RENEWAL97Ioni Bowcher
1004Ricardo Q RulapaughCanada2026-07-17Printing Dimensions UNQUALIFIED40Anna Fali
1005Jefferson R InouyeRussia2026-07-23Rangoni Of Florence UNQUALIFIED31Anna Fali
1006Leon B AmigonArgentina2026-08-02Dorl, James J Esq QUALIFIED30Elwin Sharvill
1007Rodrigues O MorascaArgentina2026-07-26Printing Dimensions NEGOTIATION9Xuxue Feng
1008Darci G PoquetteGermany2026-07-20Truhlar And Truhlar Attys RENEWAL31Amy Elsner
1009Ivar L RutaIndia2026-08-02Feltz Printing Service NEW90Stephen Shaw
1010Costa D NickaFrance2026-07-23Feiner Bros NEGOTIATION51Elwin Sharvill
1011Jones V StensethJapan2026-08-08Benton, John B Jr RENEWAL28Elwin Sharvill
1012Ashley K BriddickSpain2026-07-28Feiner Bros NEW78Onyama Limba
1013Francesco L MacleadSpain2026-08-12Chapman, Ross E Esq NEGOTIATION83Ioni Bowcher
1014Johnson H CampainRussia2026-07-22Rousseaux, Michael Esq UNQUALIFIED63Amy Elsner
1015Claire J NestleRussia2026-08-01Feltz Printing Service RENEWAL38Onyama Limba
1016Maria C OldroydUnited Kingdom2026-07-15Feltz Printing Service NEW82Ivan Magalhaes
1017Emily O SaylorsCanada2026-08-07Buckley Miller Wright NEW4Ioni Bowcher
1018Aika G FigeroaItaly2026-08-05Feiner Bros NEGOTIATION11Bernardo Dominic
1019David P ChuiArgentina2026-07-14Morlong Associates PROPOSAL72Anna Fali
1020Jefferson G KolmetzRussia2026-07-21Chapman, Ross E Esq QUALIFIED31Stephen Shaw
1021Cody V GillianCanada2026-07-22Dorl, James J Esq UNQUALIFIED58Xuxue Feng
1022Clifford W MarrierItaly2026-08-05Chemel, James L Cpa NEGOTIATION71Amy Elsner
1023Cody H MacleadGermany2026-08-03Dorl, James J Esq UNQUALIFIED70Ioni Bowcher
1024Maria L WhobreyRussia2026-07-22Benton, John B Jr NEGOTIATION58Amy Elsner
1025Rodrigues L WieserAustralia2026-08-01Feiner Bros NEGOTIATION22Onyama Limba
1026Kaitlin T NestleItaly2026-08-01Rangoni Of Florence QUALIFIED40Ioni Bowcher
1027Alejandro S KuskoUnited Kingdom2026-08-05Rangoni Of Florence UNQUALIFIED90Stephen Shaw
1028Johnson V FerenczAustralia2026-07-22King, Christopher A Esq NEW84Xuxue Feng
1029James Q DarakjyJapan2026-08-06Dorl, James J Esq QUALIFIED34Onyama Limba
1030Deepesh Z OldroydBrazil2026-08-06Chemel, James L Cpa QUALIFIED90Ioni Bowcher
1031Mujtaba H MaletAustralia2026-08-02Printing Dimensions PROPOSAL32Xuxue Feng
1032Octavia H OstroskyArgentina2026-07-14Feltz Printing Service NEGOTIATION53Asiya Javayant
1033Darci L StockhamArgentina2026-07-17Feiner Bros NEW63Asiya Javayant
1034Adams Q GauchoGermany2026-08-12Chanay, Jeffrey A Esq NEGOTIATION28Ivan Magalhaes
1035Costa A PoquetteItaly2026-07-30Chanay, Jeffrey A Esq NEW89Bernardo Dominic
1036Smith M MaletIndia2026-07-30Morlong Associates UNQUALIFIED43Anna Fali
1037Claire V VenereSpain2026-08-05Commercial Press NEGOTIATION56Xuxue Feng
1038Leon B BowleyItaly2026-07-26King, Christopher A Esq PROPOSAL8Xuxue Feng
1039Maria Q SlusarskiUnited Kingdom2026-07-25King, Christopher A Esq NEGOTIATION19Anna Fali
1040Jeanfrancois P ButtSpain2026-08-10King, Christopher A Esq UNQUALIFIED61Ivan Magalhaes
1041Rodrigues O OstroskyCanada2026-07-19Buckley Miller Wright RENEWAL82Stephen Shaw
1042Izzy C GauchoCanada2026-07-18Chemel, James L Cpa RENEWAL85Onyama Limba
1043Juan N PoquetteFrance2026-08-12Buckley Miller Wright PROPOSAL25Elwin Sharvill
1044Claire Y AlbaresAustralia2026-07-20Buckley Miller Wright NEW59Amy Elsner
1045Kaitlin G GlickItaly2026-07-31Feltz Printing Service NEW1Xuxue Feng
1046Silvio L RutaIndia2026-07-30Chemel, James L Cpa NEGOTIATION92Ivan Magalhaes
1047Julie X GauchoUnited Kingdom2026-07-29Dorl, James J Esq QUALIFIED60Ivan Magalhaes
1048Chavez M StensethArgentina2026-07-27Chemel, James L Cpa QUALIFIED88Amy Elsner
1049Sinclair J ButtFrance2026-07-20Rousseaux, Michael Esq QUALIFIED72Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh E KuskoCanadaXuxue Feng RENEWAL
Morrow A KolmetzRussiaAsiya Javayant RENEWAL
Julie K WhobreyGermanyBernardo Dominic QUALIFIED
Salvatore P BriddickFranceAsiya Javayant NEW
Faith S KuskoGermanyXuxue Feng NEW
Munro I AmigonBrazilOnyama Limba RENEWAL
Rodrigues L GauchoAustraliaElwin Sharvill RENEWAL
Isabel F WaycottGermanyAsiya Javayant PROPOSAL
Emily T MorascaUnited KingdomIvan Magalhaes RENEWAL
Aditya I DarakjyJapanAnna Fali RENEWAL
Jeanfrancois O VocelkaGermanyAsiya Javayant NEW
Izzy T ShinkoAustraliaIoni Bowcher UNQUALIFIED
Antonio V BowleyRussiaIvan Magalhaes NEGOTIATION
Leja M MarrierItalyStephen Shaw QUALIFIED
Murillo Y IturbideItalyAsiya Javayant PROPOSAL
Francesco I DarakjyAustraliaAmy Elsner PROPOSAL
Jones V SaylorsItalyOnyama Limba RENEWAL
Aruna J MaletSpainStephen Shaw NEGOTIATION
Ricardo T BologniaRussiaIoni Bowcher UNQUALIFIED
Johnson W TollnerIndiaXuxue Feng NEGOTIATION
Deepesh P RoysterUnited KingdomAsiya Javayant PROPOSAL
Francesco T CaldareraAustraliaIvan Magalhaes QUALIFIED
Maria F SergiSpainIvan Magalhaes UNQUALIFIED
Morrow U FigeroaJapanXuxue Feng UNQUALIFIED
James T BriddickAustraliaOnyama Limba UNQUALIFIED
Jefferson Y MarrierItalyStephen Shaw QUALIFIED
Smith Q ChuiJapanIoni Bowcher NEW
Jeanfrancois G SaylorsFranceAmy Elsner PROPOSAL
Adams S KuskoUnited KingdomStephen Shaw PROPOSAL
Murillo K ChuiGermanyIoni Bowcher PROPOSAL
Alejandro J DoeGermanyAnna Fali RENEWAL
Morrow D MorascaRussiaXuxue Feng NEW
Jones Q OldroydRussiaAnna Fali PROPOSAL
Juan V MorascaBrazilAsiya Javayant QUALIFIED
Ashley J SaylorsItalyIoni Bowcher RENEWAL
Stacey S GillianUnited KingdomElwin Sharvill PROPOSAL
Claire B MaletRussiaAsiya Javayant RENEWAL
Misaki O RutaAustraliaIvan Magalhaes NEGOTIATION
Greenwood W GauchoCanadaXuxue Feng NEW
Maria M ButtRussiaBernardo Dominic RENEWAL
Jeanfrancois F RoysterAustraliaBernardo Dominic UNQUALIFIED
Jones J IturbideCanadaIoni Bowcher NEGOTIATION
Ricardo B BologniaCanadaAsiya Javayant NEGOTIATION
Cody I KuskoJapanAmy Elsner NEW
Smith Y PoquetteRussiaXuxue Feng PROPOSAL
Kadeem S GauchoArgentinaAsiya Javayant RENEWAL
Murillo A IturbideRussiaAmy Elsner RENEWAL
Sinclair B GlickRussiaElwin Sharvill PROPOSAL
Mujtaba N MaletIndiaStephen Shaw NEGOTIATION
Maria U RimAustraliaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Maisha E Bowley
Ashley I Figeroa
Wickens V Butt
Chavez Y Poquette
Stacey V Wieser
Alejandro X Ruta
Silvio W Nestle
Nicolas V Royster
David B Venere
David Q Albares
Aruna A Doe
Murillo T Foller
Isabel G Rulapaugh
Claire W Amigon
Emily P Waycott
Maisha W Briddick
Leja Y Perin
Greenwood C Foller
Darci R Marrier
Smith Y Albares
Faith M Inouye
Izzy P Gillian
Arvin F Foller
Juan R Slusarski
Smith C Garufi
Mayumi V Rulapaugh
Ricardo U Albares
Emily G Caudy
Murillo W Vocelka
Aditya S Amigon
Claire L Caldarera
Alejandro N Darakjy
Murillo F Saylors
Aditya L Ostrosky
Darci R Ferencz
Aditya N Gillian
Ricardo L Marrier
Mujtaba S Malet
James G Royster
Kaitlin H Stenseth
Ricardo L Malet
Deepesh X Rulapaugh
Rodrigues I Oldroyd
Ashley A Slusarski
Cody I Royster
Alejandro I Briddick
Maisha F Sergi
Jones A Morasca
Clifford Z Butt
Murillo V Paprocki
IdCountryDate
1000Spain2026-07-14
1001Brazil2026-07-25
1002France2026-07-23
1003Brazil2026-07-14
1004Spain2026-08-04
1005Germany2026-07-27
1006France2026-07-31
1007Japan2026-08-07
1008Germany2026-07-25
1009Argentina2026-07-28
1010Australia2026-07-19
1011Australia2026-07-25
1012Russia2026-07-28
1013Spain2026-07-20
1014Russia2026-07-30
1015Japan2026-07-28
1016Russia2026-08-02
1017Japan2026-07-24
1018Canada2026-07-26
1019Brazil2026-08-07
1020Argentina2026-08-07
1021Russia2026-08-10
1022Russia2026-08-01
1023Germany2026-08-02
1024Japan2026-07-23
1025France2026-08-07
1026Argentina2026-07-21
1027Japan2026-07-18
1028Australia2026-07-27
1029India2026-08-12
1030Japan2026-08-03
1031Russia2026-08-02
1032Canada2026-07-28
1033Canada2026-08-01
1034United Kingdom2026-07-22
1035Italy2026-07-18
1036Germany2026-07-14
1037Russia2026-07-18
1038Italy2026-07-14
1039Argentina2026-08-07
1040Germany2026-08-09
1041India2026-07-16
1042Italy2026-08-06
1043India2026-08-04
1044India2026-07-24
1045Italy2026-08-01
1046Australia2026-07-17
1047Spain2026-07-26
1048Canada2026-08-09
1049Italy2026-08-05

On-Demand Data

NameIdCountryDate
Leon R Amigon1000United Kingdom2026-07-31
Jennifer I Butt1001Japan2026-07-14
Darci P Iturbide1002Germany2026-07-25
Stacey I Iturbide1003Germany2026-07-29
Julie G Royster1004Spain2026-08-11
Jennifer H Whobrey1005Canada2026-08-01
Juan C Rulapaugh1006United Kingdom2026-07-29
Jefferson D Glick1007Russia2026-07-21
Leon Z Caudy1008United Kingdom2026-08-10
Darci N Royster1009Australia2026-07-22
Tony G Gillian1010Germany2026-08-04
Aruna R Gaucho1011Spain2026-08-04
Leja F Waycott1012Argentina2026-07-20
Francesco A Nicka1013France2026-08-12
Rodrigues A Flosi1014Brazil2026-07-24
Ashley A Venere1015Argentina2026-08-03
Deepesh C Campain1016Italy2026-07-26
Munro T Slusarski1017Brazil2026-08-05
Salvatore Q Marrier1018Spain2026-08-10
Arvin I Kusko1019France2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria F TollnerSpainElwin Sharvill UNQUALIFIED
Ivar G OstroskyRussiaBernardo Dominic PROPOSAL
Claire S WhobreyAustraliaBernardo Dominic UNQUALIFIED
Jennifer M ShinkoUnited KingdomBernardo Dominic PROPOSAL
Aditya K KolmetzCanadaStephen Shaw PROPOSAL
Jeanfrancois J CaudyFranceOnyama Limba NEW
Salvatore M StockhamAustraliaIvan Magalhaes UNQUALIFIED
Wickens C RimCanadaAnna Fali QUALIFIED
Juan C CampainAustraliaElwin Sharvill PROPOSAL
Kadeem C MaletSpainAnna Fali NEW
James K PaprockiIndiaOnyama Limba QUALIFIED
James T GarufiUnited KingdomAmy Elsner QUALIFIED
Costa F VenereItalyIvan Magalhaes RENEWAL
Jeanfrancois G RimGermanyAmy Elsner QUALIFIED
Johnson J RimGermanyOnyama Limba UNQUALIFIED
Leon Z MacleadBrazilAnna Fali NEGOTIATION
Ashley X RutaItalyAmy Elsner QUALIFIED
Aruna P NestleBrazilXuxue Feng NEW
Claire T CampainRussiaAsiya Javayant RENEWAL
Aika D StockhamUnited KingdomAnna Fali QUALIFIED
Ricardo H MaletCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois Y ShinkoItalyAsiya Javayant PROPOSAL
Aruna N AlbaresItalyIoni Bowcher PROPOSAL
Ashley Q PoquetteCanadaXuxue Feng NEGOTIATION
Darci J TollnerBrazilOnyama Limba NEW
Ivar F FigeroaJapanBernardo Dominic PROPOSAL
Octavia B FigeroaFranceAmy Elsner UNQUALIFIED
Aruna D SchemmerBrazilAmy Elsner NEW
Silvio V CaudyRussiaAmy Elsner UNQUALIFIED
Rodrigues J RulapaughCanadaIvan Magalhaes PROPOSAL
Emily T AlbaresRussiaXuxue Feng RENEWAL
Leja G MorascaBrazilAnna Fali PROPOSAL
James G MorascaFranceIoni Bowcher NEGOTIATION
Julie T GlickSpainIvan Magalhaes RENEWAL
Stacey A FerenczUnited KingdomAmy Elsner QUALIFIED
Stacey Y MarrierGermanyXuxue Feng RENEWAL
Izzy F KolmetzItalyElwin Sharvill PROPOSAL
David R NestleArgentinaIoni Bowcher NEW
Ashley I TollnerAustraliaAmy Elsner RENEWAL
Wickens W DarakjyUnited KingdomElwin Sharvill QUALIFIED

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