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
Maria E ShinkoItalyAmy Elsner UNQUALIFIED
Francesco E ChuiAustraliaIoni Bowcher QUALIFIED
Aruna P AmigonItalyAnna Fali NEGOTIATION
Murillo P ShinkoItalyAnna Fali NEW
Ashley E ButtFranceIoni Bowcher UNQUALIFIED
Mujtaba T BowleyItalyStephen Shaw RENEWAL
Silvio M DarakjyBrazilElwin Sharvill NEW
Jeanfrancois R OstroskyGermanyAsiya Javayant RENEWAL
Aruna D FerenczCanadaAmy Elsner PROPOSAL
Morrow V FigeroaBrazilIvan Magalhaes RENEWAL
Mujtaba Y WaycottGermanyIvan Magalhaes NEGOTIATION
Jennifer C FerenczSpainBernardo Dominic PROPOSAL
Sinclair H PerinJapanOnyama Limba NEGOTIATION
Jones H OstroskyJapanAnna Fali QUALIFIED
Maria I TollnerJapanIoni Bowcher RENEWAL
Aika O DilliardCanadaIoni Bowcher PROPOSAL
Alejandro X RulapaughUnited KingdomStephen Shaw NEW
Johnson A MaletCanadaIoni Bowcher QUALIFIED
Maria Y RulapaughBrazilIoni Bowcher QUALIFIED
Faith P SchemmerRussiaIvan Magalhaes PROPOSAL
Darci A StockhamAustraliaAmy Elsner RENEWAL
Jones U DilliardFranceXuxue Feng PROPOSAL
Munro M WieserFranceStephen Shaw NEW
Izzy P GauchoIndiaAmy Elsner QUALIFIED
Munro G KolmetzUnited KingdomOnyama Limba RENEWAL
Silvio M NestleCanadaIvan Magalhaes PROPOSAL
Johnson F GillianJapanAsiya Javayant NEW
Mayumi R KolmetzGermanyIvan Magalhaes NEGOTIATION
Francesco Y PaprockiBrazilXuxue Feng UNQUALIFIED
Morrow Y SchemmerJapanBernardo Dominic PROPOSAL
Clifford P GillianBrazilStephen Shaw PROPOSAL
Smith Q VocelkaBrazilBernardo Dominic PROPOSAL
Stacey U ShinkoSpainBernardo Dominic NEW
Ashley Y ChuiItalyAsiya Javayant NEW
Chavez Y VenereGermanyAsiya Javayant NEGOTIATION
Johnson C StockhamIndiaIvan Magalhaes UNQUALIFIED
Murillo V WhobreyBrazilAmy Elsner UNQUALIFIED
Faith M MaletJapanIvan Magalhaes PROPOSAL
Rodrigues Y RoysterFranceElwin Sharvill RENEWAL
Munro W SlusarskiGermanyXuxue Feng QUALIFIED
David K DilliardArgentinaOnyama Limba NEW
Jefferson O WieserJapanIoni Bowcher UNQUALIFIED
Antonio D NestleIndiaAnna Fali PROPOSAL
Aruna Z GarufiFranceAsiya Javayant NEW
Ivar F WaycottFranceAnna Fali NEGOTIATION
Jones D DilliardArgentinaAnna Fali PROPOSAL
Salvatore L GarufiJapanBernardo Dominic RENEWAL
Mujtaba I PoquetteJapanAsiya Javayant PROPOSAL
Morrow Q GlickUnited KingdomOnyama Limba NEGOTIATION
Darci D SlusarskiRussiaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Aditya Q CaldareraRussiaIoni Bowcher UNQUALIFIED
Murillo J BologniaArgentinaXuxue Feng PROPOSAL
Antonio W CaldareraRussiaElwin Sharvill PROPOSAL
Ashley J FollerAustraliaIvan Magalhaes NEGOTIATION
Leon L OldroydRussiaOnyama Limba NEW
James P VenereAustraliaStephen Shaw UNQUALIFIED
Ricardo K AlbaresIndiaAnna Fali NEW
Stacey T KolmetzIndiaAsiya Javayant RENEWAL
Wickens P RimCanadaAnna Fali RENEWAL
Julie N PoquetteAustraliaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa U CaldareraRussia2026-08-13Chemel, James L Cpa UNQUALIFIED43Ioni Bowcher
1001Morrow F VocelkaUnited Kingdom2026-08-21Morlong Associates RENEWAL84Elwin Sharvill
1002Clifford L OldroydSpain2026-08-20Printing Dimensions QUALIFIED48Onyama Limba
1003Antonio I TollnerSpain2026-08-12Feiner Bros UNQUALIFIED69Xuxue Feng
1004Izzy L RoysterGermany2026-08-25Chanay, Jeffrey A Esq RENEWAL84Xuxue Feng
1005Maria C MaletAustralia2026-08-19Commercial Press PROPOSAL97Bernardo Dominic
1006Costa P WieserRussia2026-08-11Chapman, Ross E Esq PROPOSAL82Ivan Magalhaes
1007Misaki V CampainUnited Kingdom2026-08-13Benton, John B Jr QUALIFIED36Onyama Limba
1008Maisha O BowleyAustralia2026-08-20Commercial Press PROPOSAL26Amy Elsner
1009Sinclair H CaudyBrazil2026-08-31Chanay, Jeffrey A Esq PROPOSAL76Stephen Shaw
1010Izzy L WaycottRussia2026-08-08Buckley Miller Wright QUALIFIED8Anna Fali
1011Julie V GarufiUnited Kingdom2026-08-26Truhlar And Truhlar Attys NEGOTIATION54Xuxue Feng
1012Faith X CaudyCanada2026-08-16Printing Dimensions NEGOTIATION63Asiya Javayant
1013Tony S FollerUnited Kingdom2026-08-21Chanay, Jeffrey A Esq PROPOSAL73Elwin Sharvill
1014Sinclair Y SergiSpain2026-08-16Morlong Associates RENEWAL23Ioni Bowcher
1015Greenwood N PoquetteSpain2026-08-24Commercial Press RENEWAL8Elwin Sharvill
1016Emily N BowleySpain2026-08-20Morlong Associates PROPOSAL40Stephen Shaw
1017Leja I OstroskySpain2026-08-25Chemel, James L Cpa QUALIFIED82Onyama Limba
1018Faith X PerinAustralia2026-09-01Feiner Bros QUALIFIED16Ivan Magalhaes
1019Claire V OldroydBrazil2026-08-11Feltz Printing Service RENEWAL74Anna Fali
1020Rodrigues V WhobreyAustralia2026-08-15Buckley Miller Wright RENEWAL26Xuxue Feng
1021Ashley L WieserSpain2026-09-03Chemel, James L Cpa RENEWAL49Stephen Shaw
1022Smith S BologniaGermany2026-08-28Benton, John B Jr PROPOSAL17Asiya Javayant
1023Izzy R GillianSpain2026-08-23Commercial Press UNQUALIFIED81Amy Elsner
1024Salvatore K DarakjyIndia2026-08-16Commercial Press PROPOSAL4Ioni Bowcher
1025James P PaprockiGermany2026-08-27Commercial Press NEGOTIATION25Stephen Shaw
1026Johnson L VocelkaItaly2026-08-31Dorl, James J Esq RENEWAL21Ivan Magalhaes
1027Wickens P ButtIndia2026-08-26Benton, John B Jr RENEWAL8Anna Fali
1028Morrow V RutaItaly2026-08-25Chapman, Ross E Esq NEGOTIATION95Amy Elsner
1029Antonio E PaprockiSpain2026-08-18Feiner Bros RENEWAL74Onyama Limba
1030Darci P WaycottUnited Kingdom2026-08-24Morlong Associates UNQUALIFIED0Amy Elsner
1031Morrow A PoquetteRussia2026-08-18Feiner Bros UNQUALIFIED83Amy Elsner
1032James T KuskoGermany2026-08-30Chapman, Ross E Esq QUALIFIED31Stephen Shaw
1033Adams W FigeroaIndia2026-08-31Feltz Printing Service UNQUALIFIED29Ivan Magalhaes
1034Isabel U RutaArgentina2026-09-02Rousseaux, Michael Esq PROPOSAL25Anna Fali
1035Leon S OstroskyCanada2026-08-25Buckley Miller Wright NEGOTIATION37Bernardo Dominic
1036Octavia X MarrierGermany2026-08-21Feltz Printing Service RENEWAL21Anna Fali
1037Greenwood X IturbideBrazil2026-08-10Truhlar And Truhlar Attys NEGOTIATION18Amy Elsner
1038Juan Z CaudyItaly2026-08-31Commercial Press RENEWAL34Anna Fali
1039Jones L CaudyArgentina2026-08-24Morlong Associates RENEWAL74Onyama Limba
1040Francesco Z AlbaresSpain2026-08-17Chemel, James L Cpa RENEWAL80Ioni Bowcher
1041Leon P SaylorsRussia2026-08-24Chanay, Jeffrey A Esq UNQUALIFIED69Ioni Bowcher
1042Costa S DarakjyGermany2026-08-14Morlong Associates UNQUALIFIED76Amy Elsner
1043Rodrigues A GillianRussia2026-08-18Morlong Associates PROPOSAL26Elwin Sharvill
1044Maisha F FigeroaItaly2026-08-29Feltz Printing Service QUALIFIED3Ivan Magalhaes
1045David O FlosiSpain2026-08-06Commercial Press UNQUALIFIED1Amy Elsner
1046Morrow B RutaCanada2026-08-24Dorl, James J Esq RENEWAL6Anna Fali
1047Leon K OldroydBrazil2026-08-19Printing Dimensions NEGOTIATION46Asiya Javayant
1048Arvin X DoeFrance2026-08-15King, Christopher A Esq NEW59Ioni Bowcher
1049Emily E RimBrazil2026-08-28Commercial Press PROPOSAL13Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi A WhobreyAustraliaAmy Elsner PROPOSAL
Arvin Y BowleyBrazilIoni Bowcher UNQUALIFIED
Mujtaba F WhobreyJapanOnyama Limba UNQUALIFIED
Aika O MorascaBrazilAnna Fali NEW
Julie H IturbideSpainElwin Sharvill QUALIFIED
Ashley B FerenczCanadaStephen Shaw NEGOTIATION
Wickens Q SaylorsFranceAsiya Javayant QUALIFIED
Smith C FigeroaAustraliaBernardo Dominic PROPOSAL
David N CaudyFranceXuxue Feng RENEWAL
Silvio E BologniaIndiaIvan Magalhaes QUALIFIED
Ricardo Z WhobreyAustraliaBernardo Dominic QUALIFIED
Ivar C DilliardIndiaXuxue Feng UNQUALIFIED
Morrow Q KolmetzGermanyAnna Fali QUALIFIED
David V ShinkoItalyXuxue Feng QUALIFIED
Adams F WhobreyArgentinaIoni Bowcher PROPOSAL
Julie N InouyeCanadaAnna Fali NEGOTIATION
Julie W BologniaUnited KingdomElwin Sharvill QUALIFIED
Izzy X StensethFranceElwin Sharvill UNQUALIFIED
Jeanfrancois Q WieserRussiaElwin Sharvill UNQUALIFIED
Misaki B RoysterRussiaStephen Shaw PROPOSAL
Octavia D StensethGermanyAmy Elsner PROPOSAL
Costa R ShinkoBrazilAnna Fali QUALIFIED
Mayumi H MarrierArgentinaIoni Bowcher NEGOTIATION
Leon I FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Isabel J CaldareraIndiaAnna Fali NEGOTIATION
Nicolas R TollnerRussiaElwin Sharvill NEGOTIATION
Rodrigues D DarakjySpainAmy Elsner RENEWAL
Jennifer Q SaylorsJapanXuxue Feng NEGOTIATION
Morrow N CaldareraFranceIvan Magalhaes PROPOSAL
David A DarakjyBrazilIvan Magalhaes QUALIFIED
Maria E OldroydGermanyBernardo Dominic NEGOTIATION
Jeanfrancois X RoysterAustraliaAnna Fali NEW
Ivar G RimJapanAnna Fali PROPOSAL
Kadeem I InouyeSpainXuxue Feng NEGOTIATION
Murillo P MarrierCanadaAnna Fali PROPOSAL
Isabel L DoeSpainIvan Magalhaes QUALIFIED
James U ShinkoCanadaBernardo Dominic NEGOTIATION
Mayumi J OstroskyAustraliaOnyama Limba UNQUALIFIED
Leon Z AmigonSpainIvan Magalhaes NEW
Salvatore P KuskoJapanElwin Sharvill PROPOSAL
Deepesh K DarakjyAustraliaIoni Bowcher QUALIFIED
Deepesh Q NickaUnited KingdomAnna Fali NEW
David S OldroydFranceBernardo Dominic RENEWAL
Sinclair M GlickRussiaIoni Bowcher UNQUALIFIED
Izzy V VocelkaIndiaXuxue Feng UNQUALIFIED
Silvio S OldroydArgentinaElwin Sharvill RENEWAL
Mujtaba S VocelkaArgentinaAmy Elsner RENEWAL
Munro W GillianIndiaElwin Sharvill UNQUALIFIED
Costa T RoysterItalyBernardo Dominic UNQUALIFIED
Jefferson O IturbideUnited KingdomAsiya Javayant NEGOTIATION
Frozen Columns
Name
Greenwood T Slusarski
Claire M Wieser
Cody U Albares
Antonio X Gillian
Claire B Waycott
Tony N Foller
Jennifer G Foller
Misaki K Rim
Emily I Rim
Mayumi G Caudy
Costa F Maclead
Jefferson W Shinko
Leon K Paprocki
Maria V Caudy
Costa L Wieser
Salvatore M Chui
Ivar J Nestle
Jeanfrancois Z Ruta
Chavez L Iturbide
Adams U Waycott
Mayumi I Caudy
Jefferson A Paprocki
Faith Z Flosi
Ashley L Malet
Francesco Z Gaucho
Maisha I Campain
Maria Y Albares
Murillo S Waycott
Mayumi X Kusko
Jefferson I Maclead
Juan W Amigon
Isabel B Marrier
Maria Y Morasca
Jennifer E Bolognia
Ashley N Garufi
Salvatore H Oldroyd
Rodrigues R Ostrosky
Aruna T Ferencz
Murillo A Gillian
Isabel R Foller
Emily P Slusarski
Julie D Stockham
Izzy U Inouye
Mujtaba P Paprocki
Johnson A Doe
Ricardo P Ostrosky
Jeanfrancois P Garufi
Aruna N Gillian
Deepesh C Gillian
Aruna L Kolmetz
IdCountryDate
1000Brazil2026-08-12
1001Brazil2026-08-07
1002Italy2026-08-22
1003France2026-08-05
1004Argentina2026-08-13
1005Italy2026-08-10
1006Australia2026-08-12
1007Australia2026-08-06
1008France2026-08-29
1009Spain2026-08-10
1010Australia2026-08-31
1011Russia2026-08-31
1012Italy2026-08-23
1013Japan2026-08-12
1014Brazil2026-08-23
1015France2026-08-21
1016United Kingdom2026-08-31
1017Argentina2026-08-07
1018Brazil2026-08-06
1019Italy2026-08-09
1020Australia2026-08-31
1021Japan2026-08-11
1022Brazil2026-08-27
1023Argentina2026-08-24
1024Australia2026-08-24
1025Spain2026-08-11
1026Argentina2026-08-22
1027India2026-08-19
1028Australia2026-08-30
1029United Kingdom2026-08-15
1030Spain2026-08-12
1031Brazil2026-08-21
1032Argentina2026-08-11
1033Spain2026-08-30
1034Japan2026-08-21
1035Japan2026-08-28
1036Italy2026-08-17
1037Australia2026-08-29
1038Italy2026-08-29
1039India2026-08-10
1040France2026-08-05
1041Canada2026-08-11
1042Russia2026-08-07
1043Argentina2026-08-17
1044Brazil2026-08-24
1045United Kingdom2026-08-10
1046Argentina2026-08-28
1047France2026-08-25
1048France2026-09-02
1049Italy2026-08-28

On-Demand Data

NameIdCountryDate
Clifford K Gaucho1000Canada2026-08-25
Alejandro P Garufi1001France2026-08-23
Jefferson S Gaucho1002Spain2026-08-08
Deepesh F Nestle1003Italy2026-08-07
Maria Y Poquette1004Australia2026-08-12
Aruna H Nicka1005Japan2026-08-07
Rodrigues I Amigon1006Germany2026-08-16
Aruna N Ruta1007Brazil2026-08-13
Alejandro P Waycott1008France2026-08-16
Aditya K Ostrosky1009Australia2026-08-25
Aika Y Marrier1010India2026-09-03
Sinclair L Sergi1011Spain2026-08-21
Aruna G Kusko1012Germany2026-08-24
Chavez N Tollner1013Spain2026-08-31
Munro Q Iturbide1014Australia2026-08-22
Jefferson U Oldroyd1015France2026-08-10
Arvin Q Doe1016Brazil2026-08-07
Mujtaba Q Poquette1017Japan2026-08-27
Salvatore H Inouye1018Russia2026-08-23
Leon S Briddick1019Japan2026-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro V OldroydBrazilStephen Shaw QUALIFIED
David G TollnerRussiaIvan Magalhaes NEW
Silvio Q TollnerGermanyElwin Sharvill NEW
Alejandro G SlusarskiSpainAnna Fali UNQUALIFIED
Leja A RoysterGermanyIoni Bowcher NEGOTIATION
Sinclair V InouyeCanadaAnna Fali UNQUALIFIED
Octavia A OldroydGermanyIvan Magalhaes NEW
Stacey F GauchoArgentinaAnna Fali NEGOTIATION
Munro W PerinIndiaOnyama Limba RENEWAL
Greenwood U DilliardIndiaElwin Sharvill RENEWAL
Munro E WaycottGermanyElwin Sharvill NEW
Salvatore Y BowleyArgentinaOnyama Limba NEW
Alejandro B PoquetteRussiaOnyama Limba QUALIFIED
Munro N FigeroaSpainBernardo Dominic QUALIFIED
Mayumi L FigeroaBrazilIoni Bowcher PROPOSAL
Sinclair S RimGermanyIoni Bowcher PROPOSAL
Mayumi U CaudyIndiaBernardo Dominic NEGOTIATION
Murillo U StockhamRussiaXuxue Feng NEGOTIATION
Munro Q DoeGermanyIoni Bowcher UNQUALIFIED
Emily Q TollnerAustraliaXuxue Feng PROPOSAL
Isabel K SergiIndiaStephen Shaw NEW
Cody R PaprockiUnited KingdomAsiya Javayant QUALIFIED
Silvio Z NickaBrazilElwin Sharvill NEW
Jefferson N PerinBrazilAnna Fali PROPOSAL
Isabel Z CampainFranceStephen Shaw QUALIFIED
Julie P WhobreyBrazilOnyama Limba PROPOSAL
Jeanfrancois I IturbideGermanyBernardo Dominic NEGOTIATION
Maria L ShinkoRussiaXuxue Feng PROPOSAL
Leon Y CaldareraItalyAmy Elsner QUALIFIED
Aditya F AlbaresUnited KingdomStephen Shaw QUALIFIED
Isabel S ButtIndiaXuxue Feng UNQUALIFIED
Salvatore N FerenczArgentinaStephen Shaw RENEWAL
Clifford Y PaprockiRussiaAsiya Javayant QUALIFIED
Sinclair Q MaletSpainAsiya Javayant UNQUALIFIED
David X KuskoItalyStephen Shaw NEGOTIATION
Adams N ButtGermanyXuxue Feng UNQUALIFIED
Tony F CaudyArgentinaAsiya Javayant NEW
Emily T KuskoSpainElwin Sharvill NEGOTIATION
Kaitlin E SaylorsBrazilElwin Sharvill NEW
Smith C RutaUnited KingdomAsiya Javayant RENEWAL

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