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
Mujtaba K StockhamBrazilElwin Sharvill PROPOSAL
Greenwood Y MarrierItalyStephen Shaw NEW
Misaki Q WaycottUnited KingdomIoni Bowcher NEW
Juan H SlusarskiGermanyStephen Shaw UNQUALIFIED
Octavia W CampainIndiaIvan Magalhaes QUALIFIED
Nicolas P BowleyUnited KingdomStephen Shaw NEGOTIATION
Kadeem S WhobreyBrazilStephen Shaw UNQUALIFIED
Izzy A AmigonUnited KingdomOnyama Limba NEGOTIATION
Stacey Y MaletItalyOnyama Limba PROPOSAL
Mayumi W FerenczGermanyBernardo Dominic NEW
Mayumi N TollnerFranceAnna Fali NEW
Jones X RimJapanStephen Shaw NEGOTIATION
Francesco I VenereArgentinaAmy Elsner NEW
Kaitlin N FlosiUnited KingdomOnyama Limba QUALIFIED
Leja V WieserSpainAnna Fali NEGOTIATION
Ricardo J InouyeFranceAsiya Javayant QUALIFIED
Aruna J FerenczIndiaAnna Fali NEW
Jefferson U FollerJapanIvan Magalhaes NEGOTIATION
Johnson V GarufiFranceXuxue Feng UNQUALIFIED
Wickens T CaudyCanadaAsiya Javayant QUALIFIED
Deepesh S NestleCanadaAsiya Javayant NEW
Jones N MaletUnited KingdomAsiya Javayant UNQUALIFIED
Arvin C GillianItalyAsiya Javayant QUALIFIED
Izzy Y InouyeJapanElwin Sharvill UNQUALIFIED
Jeanfrancois L FollerSpainIoni Bowcher PROPOSAL
Alejandro U RimAustraliaAmy Elsner RENEWAL
Ricardo Z PoquetteFranceBernardo Dominic UNQUALIFIED
Mujtaba R MacleadFranceBernardo Dominic RENEWAL
Kadeem U ChuiItalyAnna Fali UNQUALIFIED
Tony W KuskoRussiaXuxue Feng QUALIFIED
Leon V AlbaresItalyStephen Shaw NEW
Jones I ChuiAustraliaXuxue Feng NEW
Chavez D RoysterAustraliaXuxue Feng NEGOTIATION
Clifford E CaldareraJapanAnna Fali PROPOSAL
Adams X FlosiFranceIvan Magalhaes UNQUALIFIED
Octavia B BowleyUnited KingdomElwin Sharvill QUALIFIED
Costa G WieserUnited KingdomIoni Bowcher NEGOTIATION
Costa M BologniaSpainAnna Fali UNQUALIFIED
Stacey U VenereFranceIvan Magalhaes NEW
Wickens R RulapaughCanadaIvan Magalhaes NEGOTIATION
Silvio K FlosiBrazilAnna Fali QUALIFIED
Antonio E WieserSpainAsiya Javayant UNQUALIFIED
Claire B SlusarskiCanadaAnna Fali QUALIFIED
Arvin H OldroydArgentinaOnyama Limba UNQUALIFIED
Smith D BologniaBrazilStephen Shaw UNQUALIFIED
Nicolas A ButtArgentinaAmy Elsner RENEWAL
Kaitlin G MaletFranceElwin Sharvill QUALIFIED
Kadeem Z DarakjyUnited KingdomBernardo Dominic RENEWAL
Jefferson T MorascaFranceAsiya Javayant NEGOTIATION
Murillo V KolmetzIndiaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody V OldroydCanadaOnyama Limba UNQUALIFIED
Ashley X GlickIndiaAsiya Javayant UNQUALIFIED
Murillo C MaletJapanBernardo Dominic UNQUALIFIED
Izzy P FollerSpainOnyama Limba PROPOSAL
Emily O GillianAustraliaAmy Elsner NEGOTIATION
Claire Q WieserIndiaElwin Sharvill PROPOSAL
Jefferson V WhobreyCanadaStephen Shaw RENEWAL
Jones U RimBrazilAsiya Javayant QUALIFIED
Leja Q AlbaresSpainAmy Elsner NEGOTIATION
Octavia T GlickArgentinaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey O RimItaly2026-07-20Buckley Miller Wright NEGOTIATION48Anna Fali
1001Julie H DoeGermany2026-07-28Chapman, Ross E Esq RENEWAL97Amy Elsner
1002Munro B SergiJapan2026-08-08Chapman, Ross E Esq RENEWAL20Elwin Sharvill
1003Clifford Y GlickUnited Kingdom2026-07-19Chemel, James L Cpa NEGOTIATION28Elwin Sharvill
1004David W MaletItaly2026-07-24Feiner Bros NEGOTIATION58Stephen Shaw
1005Johnson T DoeJapan2026-08-10Chemel, James L Cpa QUALIFIED68Onyama Limba
1006Johnson D FigeroaBrazil2026-08-07Buckley Miller Wright QUALIFIED51Stephen Shaw
1007Octavia W GarufiGermany2026-07-24Rangoni Of Florence NEW54Ivan Magalhaes
1008Stacey E KuskoRussia2026-08-02Commercial Press UNQUALIFIED52Ivan Magalhaes
1009Jefferson F SaylorsFrance2026-08-02Chemel, James L Cpa NEGOTIATION22Ivan Magalhaes
1010Cody N ChuiAustralia2026-08-08Benton, John B Jr NEW94Xuxue Feng
1011Emily W StensethCanada2026-08-12Feiner Bros QUALIFIED14Ioni Bowcher
1012Smith P MorascaJapan2026-07-16Rangoni Of Florence PROPOSAL9Stephen Shaw
1013Emily R PaprockiJapan2026-07-30Morlong Associates NEGOTIATION78Amy Elsner
1014Deepesh T RulapaughItaly2026-08-07Benton, John B Jr RENEWAL13Ioni Bowcher
1015Claire N FlosiItaly2026-08-01Printing Dimensions NEGOTIATION0Amy Elsner
1016Ricardo B ButtCanada2026-07-30Morlong Associates UNQUALIFIED10Ivan Magalhaes
1017Claire H StensethCanada2026-08-08King, Christopher A Esq PROPOSAL32Ivan Magalhaes
1018Rodrigues I InouyeIndia2026-08-10Printing Dimensions QUALIFIED63Anna Fali
1019Arvin W SaylorsUnited Kingdom2026-07-23Chapman, Ross E Esq RENEWAL45Elwin Sharvill
1020Leja A KuskoArgentina2026-07-29Chapman, Ross E Esq RENEWAL99Bernardo Dominic
1021Claire S FigeroaRussia2026-08-05Chapman, Ross E Esq RENEWAL11Ivan Magalhaes
1022Jefferson G OldroydJapan2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED95Amy Elsner
1023Salvatore M IturbideSpain2026-07-24Rousseaux, Michael Esq QUALIFIED4Anna Fali
1024Ricardo L RulapaughIndia2026-07-29Commercial Press RENEWAL17Elwin Sharvill
1025Julie X GillianArgentina2026-07-24Chapman, Ross E Esq NEGOTIATION54Asiya Javayant
1026Rodrigues R GillianItaly2026-07-27Truhlar And Truhlar Attys NEGOTIATION96Asiya Javayant
1027James X FollerIndia2026-07-28Chapman, Ross E Esq UNQUALIFIED73Ioni Bowcher
1028James W DoeArgentina2026-07-18Buckley Miller Wright UNQUALIFIED69Xuxue Feng
1029Julie V SergiAustralia2026-07-31Chapman, Ross E Esq RENEWAL36Ioni Bowcher
1030Mujtaba H FerenczIndia2026-08-10King, Christopher A Esq QUALIFIED74Asiya Javayant
1031Deepesh V WaycottRussia2026-07-15Chanay, Jeffrey A Esq QUALIFIED74Elwin Sharvill
1032Kaitlin K CaudyItaly2026-07-17Benton, John B Jr NEGOTIATION81Stephen Shaw
1033Deepesh E SaylorsBrazil2026-08-01Rangoni Of Florence NEGOTIATION59Elwin Sharvill
1034Kadeem F ShinkoBrazil2026-07-15Chemel, James L Cpa PROPOSAL75Ioni Bowcher
1035Jefferson A WhobreyUnited Kingdom2026-08-08Chanay, Jeffrey A Esq NEW71Amy Elsner
1036Alejandro W BologniaCanada2026-07-27Commercial Press UNQUALIFIED7Onyama Limba
1037Mayumi T SaylorsSpain2026-07-25Morlong Associates NEGOTIATION55Stephen Shaw
1038Sinclair H BowleyFrance2026-07-28Buckley Miller Wright RENEWAL34Asiya Javayant
1039Maisha C VenereArgentina2026-08-01Chemel, James L Cpa UNQUALIFIED1Onyama Limba
1040Ricardo R PaprockiJapan2026-07-27Morlong Associates PROPOSAL35Asiya Javayant
1041Silvio Y ShinkoJapan2026-08-03Chapman, Ross E Esq UNQUALIFIED94Amy Elsner
1042Tony Z GauchoJapan2026-07-28Feltz Printing Service RENEWAL71Elwin Sharvill
1043Cody Y CaldareraJapan2026-08-11Buckley Miller Wright NEW49Ioni Bowcher
1044Cody G PoquetteCanada2026-08-01Buckley Miller Wright PROPOSAL38Onyama Limba
1045Aditya P MaletGermany2026-08-05Buckley Miller Wright RENEWAL66Ivan Magalhaes
1046Julie A FerenczRussia2026-07-23Chanay, Jeffrey A Esq PROPOSAL40Amy Elsner
1047Maria H SlusarskiGermany2026-07-16Feiner Bros NEW92Xuxue Feng
1048Munro H FlosiCanada2026-08-01Chemel, James L Cpa RENEWAL57Stephen Shaw
1049Claire H RutaItaly2026-07-28Buckley Miller Wright NEW21Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja I SchemmerCanadaIoni Bowcher NEGOTIATION
Aditya M WaycottItalyIvan Magalhaes PROPOSAL
Aika E BriddickCanadaBernardo Dominic NEGOTIATION
Izzy X CaudyRussiaAmy Elsner PROPOSAL
Morrow V WhobreyJapanOnyama Limba RENEWAL
Francesco A VocelkaJapanAsiya Javayant NEGOTIATION
Faith P OldroydArgentinaAmy Elsner PROPOSAL
Izzy T ShinkoItalyElwin Sharvill QUALIFIED
Chavez W MaletFranceElwin Sharvill PROPOSAL
Arvin W FerenczAustraliaAnna Fali NEW
Ivar H ChuiArgentinaAsiya Javayant QUALIFIED
Emily D StensethGermanyAnna Fali PROPOSAL
Costa M MarrierCanadaAsiya Javayant PROPOSAL
Nicolas P ChuiAustraliaXuxue Feng PROPOSAL
Deepesh B FollerJapanIvan Magalhaes NEW
Aditya W FollerAustraliaBernardo Dominic UNQUALIFIED
Silvio N SaylorsCanadaIvan Magalhaes NEGOTIATION
Nicolas U MaletJapanIoni Bowcher QUALIFIED
Octavia S CampainRussiaOnyama Limba QUALIFIED
Jennifer D GillianUnited KingdomStephen Shaw QUALIFIED
Jennifer E SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Isabel C AlbaresBrazilOnyama Limba QUALIFIED
Costa D KuskoItalyXuxue Feng QUALIFIED
Tony Y SergiUnited KingdomBernardo Dominic NEW
Jennifer U OstroskySpainAnna Fali PROPOSAL
Maisha A BologniaCanadaAnna Fali RENEWAL
Isabel X CampainUnited KingdomAnna Fali NEGOTIATION
Rodrigues C OstroskyArgentinaAnna Fali QUALIFIED
Aika G BriddickFranceIvan Magalhaes RENEWAL
Stacey N KolmetzGermanyStephen Shaw RENEWAL
Claire T AlbaresIndiaAnna Fali UNQUALIFIED
Silvio O PaprockiItalyBernardo Dominic RENEWAL
Rodrigues K DoeJapanAmy Elsner NEW
Adams S SaylorsGermanyBernardo Dominic QUALIFIED
Alejandro K DoeBrazilAnna Fali RENEWAL
Antonio A MaletAustraliaIoni Bowcher NEW
Darci K WieserSpainOnyama Limba NEGOTIATION
Faith J VenereArgentinaAsiya Javayant NEGOTIATION
Deepesh A PoquetteUnited KingdomBernardo Dominic RENEWAL
Aruna L MacleadUnited KingdomStephen Shaw RENEWAL
David M KolmetzCanadaElwin Sharvill QUALIFIED
Ashley A StensethFranceIoni Bowcher QUALIFIED
James L PaprockiFranceAmy Elsner NEW
Tony V MaletFranceElwin Sharvill RENEWAL
Jefferson N StensethArgentinaElwin Sharvill NEGOTIATION
Smith M NickaArgentinaElwin Sharvill QUALIFIED
Adams U PerinGermanyOnyama Limba QUALIFIED
Mujtaba S FlosiRussiaAmy Elsner RENEWAL
Francesco B WieserBrazilOnyama Limba UNQUALIFIED
Aruna I MaletBrazilAmy Elsner RENEWAL
Frozen Columns
Name
Chavez R Caldarera
Misaki U Briddick
Cody H Bowley
Smith J Malet
Leja F Vocelka
Maisha X Figeroa
David T Whobrey
Munro W Butt
Juan J Caudy
Deepesh Y Malet
Maisha U Gaucho
Leon H Figeroa
Maisha N Gillian
James V Oldroyd
Jeanfrancois H Albares
Mayumi E Nicka
Stacey S Albares
Tony R Glick
Morrow F Garufi
Rodrigues R Oldroyd
Smith I Stockham
Francesco N Perin
David P Vocelka
Silvio Z Darakjy
Jeanfrancois D Nestle
Silvio F Marrier
Silvio Z Ostrosky
Ricardo W Gillian
Faith B Ruta
Greenwood X Nestle
Jeanfrancois B Albares
Octavia C Perin
Claire V Amigon
Greenwood J Bolognia
Costa K Vocelka
Clifford Q Royster
Francesco C Poquette
Johnson G Tollner
Smith A Tollner
Silvio C Paprocki
Wickens H Ruta
Claire F Sergi
Aruna A Iturbide
David S Dilliard
Wickens R Campain
Chavez E Figeroa
Silvio I Garufi
Salvatore E Campain
Kaitlin A Caldarera
Aditya O Oldroyd
IdCountryDate
1000Italy2026-07-26
1001Argentina2026-08-04
1002France2026-08-05
1003Brazil2026-07-15
1004Argentina2026-07-15
1005Spain2026-08-12
1006Spain2026-07-22
1007Germany2026-07-25
1008India2026-08-02
1009Argentina2026-07-20
1010United Kingdom2026-08-12
1011Argentina2026-08-08
1012Brazil2026-08-11
1013Brazil2026-07-26
1014India2026-07-15
1015Canada2026-07-14
1016Canada2026-07-17
1017Japan2026-07-16
1018Spain2026-07-19
1019Japan2026-07-30
1020Argentina2026-07-26
1021United Kingdom2026-08-03
1022Spain2026-08-11
1023Argentina2026-07-27
1024Russia2026-07-17
1025India2026-07-16
1026Spain2026-08-09
1027Argentina2026-08-11
1028France2026-07-17
1029Italy2026-07-22
1030Russia2026-07-23
1031Italy2026-07-30
1032Australia2026-07-24
1033Australia2026-07-18
1034United Kingdom2026-08-09
1035France2026-07-18
1036India2026-08-03
1037Germany2026-07-15
1038Japan2026-08-10
1039Argentina2026-08-01
1040Canada2026-07-18
1041Brazil2026-07-17
1042United Kingdom2026-07-31
1043Italy2026-07-26
1044Canada2026-08-09
1045Russia2026-07-30
1046Brazil2026-07-21
1047Argentina2026-07-26
1048Argentina2026-07-31
1049Italy2026-07-31

On-Demand Data

NameIdCountryDate
Ivar I Glick1000Australia2026-07-20
Ivar Z Briddick1001Brazil2026-08-03
Antonio X Flosi1002United Kingdom2026-08-01
Jones Q Morasca1003India2026-07-29
Murillo G Amigon1004Spain2026-07-29
Jones W Oldroyd1005Canada2026-07-30
Rodrigues M Nestle1006Brazil2026-07-19
Francesco D Foller1007Australia2026-07-22
Aditya L Oldroyd1008India2026-07-25
Rodrigues R Caudy1009Canada2026-08-06
Ivar Y Kusko1010India2026-07-31
Rodrigues H Oldroyd1011Italy2026-08-04
Kaitlin H Garufi1012Argentina2026-07-17
Johnson Y Wieser1013Japan2026-08-02
Maria F Kolmetz1014India2026-08-12
Isabel Y Perin1015Brazil2026-08-07
Stacey U Darakjy1016India2026-08-12
Julie B Foller1017Italy2026-07-15
Morrow T Rim1018Japan2026-07-24
Smith C Maclead1019United Kingdom2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh N MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba O OldroydSpainAsiya Javayant UNQUALIFIED
Maria T PoquetteArgentinaBernardo Dominic NEW
Greenwood P RulapaughUnited KingdomBernardo Dominic RENEWAL
Octavia J PaprockiBrazilIvan Magalhaes NEGOTIATION
Ashley I InouyeIndiaOnyama Limba PROPOSAL
Octavia U OldroydIndiaIvan Magalhaes PROPOSAL
Jeanfrancois N SergiJapanStephen Shaw NEGOTIATION
Arvin Y GauchoIndiaIvan Magalhaes NEGOTIATION
Murillo A KolmetzCanadaXuxue Feng UNQUALIFIED
Leja B FollerIndiaAmy Elsner NEW
Claire N FerenczIndiaOnyama Limba NEW
Aika I OldroydItalyStephen Shaw UNQUALIFIED
Jennifer I NestleRussiaIoni Bowcher UNQUALIFIED
Ricardo N SlusarskiJapanStephen Shaw NEW
Jones J NickaArgentinaStephen Shaw RENEWAL
Juan S FollerIndiaBernardo Dominic RENEWAL
Jennifer E SaylorsGermanyOnyama Limba QUALIFIED
Smith R GlickItalyOnyama Limba UNQUALIFIED
Julie P MacleadAustraliaAnna Fali PROPOSAL
Chavez W NickaArgentinaElwin Sharvill RENEWAL
Jennifer N FlosiIndiaIoni Bowcher NEGOTIATION
Rodrigues T MaletArgentinaStephen Shaw QUALIFIED
Maria U CampainJapanStephen Shaw QUALIFIED
Aditya U ButtUnited KingdomBernardo Dominic UNQUALIFIED
Izzy N RulapaughJapanAmy Elsner RENEWAL
James I MorascaJapanIoni Bowcher PROPOSAL
Kadeem G MacleadSpainAmy Elsner NEGOTIATION
Mujtaba S GlickArgentinaAnna Fali NEGOTIATION
Aruna P IturbideGermanyAsiya Javayant PROPOSAL
Aditya R ChuiItalyIvan Magalhaes NEW
Munro G VenereUnited KingdomAnna Fali QUALIFIED
Greenwood I GlickSpainXuxue Feng QUALIFIED
Jennifer W PaprockiCanadaIoni Bowcher QUALIFIED
Antonio J AmigonRussiaOnyama Limba NEGOTIATION
Jeanfrancois N DarakjyIndiaAnna Fali RENEWAL
Aika W DoeFranceIvan Magalhaes NEGOTIATION
Chavez L BriddickJapanElwin Sharvill NEW
Rodrigues W TollnerArgentinaAnna Fali PROPOSAL
Costa W CaudyIndiaBernardo Dominic UNQUALIFIED

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