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
Nicolas P DilliardFranceIvan Magalhaes NEW
Sinclair G PaprockiArgentinaElwin Sharvill UNQUALIFIED
Claire L VenereSpainStephen Shaw PROPOSAL
Jones Z RoysterIndiaElwin Sharvill NEW
Maisha B OldroydArgentinaIvan Magalhaes PROPOSAL
Alejandro A CaldareraIndiaStephen Shaw NEGOTIATION
Izzy K MorascaJapanAmy Elsner NEGOTIATION
Deepesh C WieserItalyIoni Bowcher RENEWAL
Faith F BologniaIndiaIoni Bowcher NEGOTIATION
Chavez Z GauchoCanadaStephen Shaw PROPOSAL
Ivar C FollerIndiaAmy Elsner NEW
Nicolas R MaletAustraliaIoni Bowcher RENEWAL
Chavez N FerenczCanadaAmy Elsner RENEWAL
Misaki P WhobreyBrazilBernardo Dominic QUALIFIED
Kaitlin G GlickFranceBernardo Dominic RENEWAL
Aika Z VocelkaArgentinaOnyama Limba QUALIFIED
Faith Q MacleadIndiaAnna Fali NEGOTIATION
Jefferson O RoysterFranceIvan Magalhaes NEGOTIATION
Misaki J CaldareraJapanAnna Fali UNQUALIFIED
Julie H KolmetzArgentinaIoni Bowcher QUALIFIED
Tony O CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Maria J FlosiBrazilStephen Shaw PROPOSAL
Rodrigues C SergiUnited KingdomXuxue Feng PROPOSAL
Darci T VocelkaItalyXuxue Feng RENEWAL
Salvatore D CaudyGermanyAsiya Javayant NEGOTIATION
Emily H InouyeFranceAsiya Javayant RENEWAL
Francesco R StensethArgentinaIvan Magalhaes PROPOSAL
Deepesh O VenereUnited KingdomAnna Fali RENEWAL
Stacey W MaletGermanyIvan Magalhaes NEGOTIATION
Jefferson Z DoeArgentinaOnyama Limba NEW
Aika Y PoquetteItalyAmy Elsner NEGOTIATION
Aditya G MacleadSpainXuxue Feng NEGOTIATION
Costa D CaldareraFranceXuxue Feng QUALIFIED
Darci R RoysterIndiaAsiya Javayant PROPOSAL
Johnson A AmigonJapanBernardo Dominic NEGOTIATION
Juan V SchemmerRussiaBernardo Dominic RENEWAL
Claire R CaudyCanadaOnyama Limba NEGOTIATION
Alejandro M DilliardIndiaIoni Bowcher UNQUALIFIED
Darci V CaldareraCanadaIvan Magalhaes QUALIFIED
Mujtaba V MacleadRussiaAmy Elsner UNQUALIFIED
Leja M WieserAustraliaIvan Magalhaes QUALIFIED
Aika K MarrierCanadaIvan Magalhaes NEGOTIATION
Izzy E WieserBrazilAsiya Javayant NEGOTIATION
Julie W VocelkaSpainStephen Shaw RENEWAL
Salvatore B RimAustraliaAnna Fali PROPOSAL
Darci N ShinkoRussiaIoni Bowcher UNQUALIFIED
Jefferson Q SlusarskiItalyAsiya Javayant QUALIFIED
Leja G AlbaresJapanAmy Elsner RENEWAL
Julie A DarakjyUnited KingdomOnyama Limba RENEWAL
James I VocelkaSpainBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Darci F WaycottGermanyElwin Sharvill RENEWAL
Nicolas X VocelkaCanadaAnna Fali NEGOTIATION
Julie I GarufiIndiaStephen Shaw NEGOTIATION
Jones N BriddickRussiaIoni Bowcher QUALIFIED
Ashley L FerenczUnited KingdomOnyama Limba UNQUALIFIED
Emily B GlickItalyIoni Bowcher UNQUALIFIED
Faith R RulapaughSpainAsiya Javayant PROPOSAL
Izzy B AlbaresRussiaElwin Sharvill NEGOTIATION
Kadeem A OldroydItalyOnyama Limba PROPOSAL
Izzy J CaudyJapanXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore P GlickGermany2026-08-02Commercial Press NEGOTIATION87Ioni Bowcher
1001Izzy K RutaAustralia2026-08-04Chapman, Ross E Esq UNQUALIFIED51Bernardo Dominic
1002Claire I NickaIndia2026-08-11Chapman, Ross E Esq NEGOTIATION27Xuxue Feng
1003Wickens E NestleJapan2026-07-28Dorl, James J Esq NEW31Xuxue Feng
1004Julie Q DarakjyCanada2026-07-21Feltz Printing Service NEGOTIATION13Ivan Magalhaes
1005Faith U VocelkaRussia2026-07-21Chapman, Ross E Esq RENEWAL88Bernardo Dominic
1006Jeanfrancois T ChuiBrazil2026-08-01Commercial Press NEW2Elwin Sharvill
1007Silvio X GarufiCanada2026-07-25Rangoni Of Florence NEGOTIATION76Ivan Magalhaes
1008Stacey W OstroskySpain2026-07-18Rousseaux, Michael Esq PROPOSAL6Ivan Magalhaes
1009Octavia Z RoysterGermany2026-07-22Rousseaux, Michael Esq NEW67Amy Elsner
1010Claire U StockhamArgentina2026-07-17Benton, John B Jr PROPOSAL0Amy Elsner
1011Misaki J RulapaughFrance2026-08-10Feiner Bros NEW16Elwin Sharvill
1012Clifford N PoquetteIndia2026-07-18Buckley Miller Wright UNQUALIFIED76Ivan Magalhaes
1013Cody K PerinCanada2026-07-17King, Christopher A Esq NEW81Ivan Magalhaes
1014Mayumi V SlusarskiItaly2026-07-27Feiner Bros UNQUALIFIED29Elwin Sharvill
1015James G PaprockiBrazil2026-07-31Morlong Associates NEGOTIATION15Amy Elsner
1016Deepesh O AmigonArgentina2026-07-23Buckley Miller Wright UNQUALIFIED44Anna Fali
1017Emily U StockhamUnited Kingdom2026-08-04Commercial Press QUALIFIED94Stephen Shaw
1018Claire B OstroskyRussia2026-07-21Feltz Printing Service PROPOSAL16Xuxue Feng
1019Sinclair H RimItaly2026-07-27Morlong Associates RENEWAL52Asiya Javayant
1020Emily D SaylorsBrazil2026-07-21Printing Dimensions UNQUALIFIED93Ioni Bowcher
1021Francesco Z FigeroaCanada2026-07-16Morlong Associates NEW8Amy Elsner
1022Jennifer A GlickGermany2026-07-23Chemel, James L Cpa NEW49Elwin Sharvill
1023Kadeem I StensethRussia2026-07-22King, Christopher A Esq RENEWAL82Xuxue Feng
1024Faith B TollnerArgentina2026-07-20Chanay, Jeffrey A Esq NEW52Xuxue Feng
1025Darci J AmigonArgentina2026-07-24Rangoni Of Florence QUALIFIED22Anna Fali
1026Aika Y BriddickCanada2026-07-19Benton, John B Jr RENEWAL38Bernardo Dominic
1027Julie L OstroskySpain2026-07-20Dorl, James J Esq QUALIFIED33Anna Fali
1028Aika A DoeSpain2026-07-14Printing Dimensions PROPOSAL51Asiya Javayant
1029Isabel E GlickFrance2026-07-23Benton, John B Jr RENEWAL87Bernardo Dominic
1030Jones S MorascaArgentina2026-08-07Printing Dimensions NEGOTIATION99Xuxue Feng
1031Julie F DarakjyFrance2026-08-10Commercial Press NEW84Ivan Magalhaes
1032Murillo T InouyeJapan2026-07-21Chapman, Ross E Esq NEW66Ioni Bowcher
1033Alejandro C GlickArgentina2026-07-27Feltz Printing Service PROPOSAL66Onyama Limba
1034Jennifer G RulapaughAustralia2026-07-16Commercial Press PROPOSAL23Xuxue Feng
1035Adams Z DoeSpain2026-07-20Morlong Associates PROPOSAL2Asiya Javayant
1036Jeanfrancois C SlusarskiRussia2026-08-04Rousseaux, Michael Esq NEW67Ivan Magalhaes
1037Costa S FigeroaGermany2026-08-08Printing Dimensions NEGOTIATION49Stephen Shaw
1038Murillo U GauchoCanada2026-07-22Feiner Bros QUALIFIED59Amy Elsner
1039James J VocelkaUnited Kingdom2026-07-15Commercial Press NEGOTIATION81Xuxue Feng
1040Mayumi A ButtCanada2026-08-07Morlong Associates QUALIFIED83Asiya Javayant
1041Misaki Q RimRussia2026-07-22Buckley Miller Wright QUALIFIED12Stephen Shaw
1042Juan U PaprockiArgentina2026-08-03Chemel, James L Cpa PROPOSAL99Ioni Bowcher
1043Morrow T CaudySpain2026-07-27Truhlar And Truhlar Attys UNQUALIFIED56Anna Fali
1044Alejandro C ShinkoCanada2026-08-06Chanay, Jeffrey A Esq NEGOTIATION33Amy Elsner
1045Morrow G MaletFrance2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED7Elwin Sharvill
1046Juan R WaycottArgentina2026-08-05Chapman, Ross E Esq NEW42Amy Elsner
1047Leja K ChuiAustralia2026-08-02Truhlar And Truhlar Attys NEGOTIATION83Ioni Bowcher
1048Octavia D VocelkaItaly2026-07-17Feiner Bros UNQUALIFIED29Ivan Magalhaes
1049Morrow U BowleyGermany2026-07-21Rousseaux, Michael Esq NEGOTIATION64Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon P RoysterArgentinaAsiya Javayant RENEWAL
Kadeem X IturbideSpainIoni Bowcher RENEWAL
Jennifer K FlosiGermanyIoni Bowcher RENEWAL
Clifford M MaletCanadaBernardo Dominic PROPOSAL
Octavia H CaudyAustraliaStephen Shaw RENEWAL
Jennifer H GarufiCanadaStephen Shaw QUALIFIED
Antonio H CaldareraItalyAnna Fali NEGOTIATION
Aruna W InouyeBrazilElwin Sharvill NEGOTIATION
Stacey B TollnerItalyIoni Bowcher NEW
Faith F WieserJapanElwin Sharvill RENEWAL
Wickens D PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Morrow Y VocelkaCanadaAnna Fali NEW
Arvin N FlosiCanadaAnna Fali QUALIFIED
Stacey C RutaFranceOnyama Limba UNQUALIFIED
Jones I RimItalyIvan Magalhaes NEW
Emily C VenereCanadaXuxue Feng NEGOTIATION
Chavez P InouyeArgentinaElwin Sharvill NEGOTIATION
Kaitlin T FollerAustraliaBernardo Dominic RENEWAL
Deepesh I DoeBrazilXuxue Feng UNQUALIFIED
Rodrigues O AlbaresCanadaStephen Shaw QUALIFIED
Arvin T AmigonFranceOnyama Limba NEGOTIATION
Faith E GauchoCanadaStephen Shaw RENEWAL
Deepesh J AlbaresRussiaXuxue Feng PROPOSAL
Francesco S GlickAustraliaElwin Sharvill RENEWAL
Salvatore D RulapaughCanadaXuxue Feng NEW
Jefferson P MacleadRussiaElwin Sharvill UNQUALIFIED
Maria W MaletAustraliaOnyama Limba NEGOTIATION
Julie B OldroydFranceIvan Magalhaes NEW
Alejandro T ShinkoAustraliaIoni Bowcher NEGOTIATION
Maisha M DilliardRussiaAnna Fali QUALIFIED
Ricardo K MarrierBrazilAmy Elsner QUALIFIED
Clifford W SchemmerAustraliaAmy Elsner PROPOSAL
Munro V DilliardRussiaIvan Magalhaes QUALIFIED
Izzy N PerinFranceIvan Magalhaes RENEWAL
Clifford Z DarakjyIndiaIoni Bowcher NEW
Cody C CaudyAustraliaBernardo Dominic NEGOTIATION
Juan A GlickFranceBernardo Dominic RENEWAL
Kadeem G GillianBrazilStephen Shaw RENEWAL
Murillo U SergiRussiaOnyama Limba RENEWAL
Izzy X FigeroaAustraliaIvan Magalhaes NEW
Jefferson A KuskoRussiaIvan Magalhaes QUALIFIED
Arvin C ShinkoFranceIoni Bowcher RENEWAL
Aruna Z SchemmerIndiaElwin Sharvill NEW
Munro T KuskoJapanAmy Elsner NEGOTIATION
Darci N MaletUnited KingdomIoni Bowcher NEGOTIATION
Jennifer N ShinkoItalyOnyama Limba UNQUALIFIED
Arvin A TollnerGermanyXuxue Feng QUALIFIED
Aditya S KuskoUnited KingdomElwin Sharvill RENEWAL
Aditya W GillianGermanyElwin Sharvill PROPOSAL
David J BriddickBrazilBernardo Dominic NEGOTIATION
Frozen Columns
Name
Jones N Saylors
Aika X Caldarera
David W Stockham
Antonio K Malet
Nicolas S Chui
Juan I Gaucho
Wickens Y Gillian
Chavez M Malet
Aditya Z Whobrey
Faith A Flosi
David Y Nicka
Kadeem O Ruta
Adams P Venere
Johnson X Figeroa
Stacey L Shinko
Adams K Ferencz
Sinclair T Oldroyd
Antonio O Briddick
Emily L Flosi
David D Iturbide
Ricardo V Chui
Clifford S Chui
Mujtaba C Ruta
Juan R Morasca
Julie W Malet
James N Whobrey
Ashley I Ruta
Jeanfrancois J Kusko
Silvio N Nicka
Leja V Oldroyd
Julie S Bolognia
Kaitlin R Poquette
Sinclair P Briddick
Mayumi K Caudy
Ricardo N Morasca
Jeanfrancois G Malet
Alejandro X Inouye
Rodrigues F Sergi
Rodrigues V Albares
James Y Nestle
Claire N Venere
Mujtaba O Bolognia
Ivar X Oldroyd
Nicolas O Briddick
Greenwood I Amigon
David X Kusko
Aruna J Figeroa
Stacey M Royster
Chavez F Marrier
Kadeem B Wieser
IdCountryDate
1000India2026-07-20
1001Australia2026-08-01
1002Italy2026-07-14
1003Russia2026-07-14
1004Germany2026-07-14
1005Spain2026-08-04
1006Germany2026-07-22
1007France2026-08-12
1008Brazil2026-08-02
1009Japan2026-08-03
1010France2026-08-11
1011Brazil2026-08-07
1012Spain2026-08-09
1013Japan2026-08-01
1014Germany2026-08-10
1015Germany2026-07-18
1016Spain2026-08-06
1017Japan2026-07-28
1018Argentina2026-07-17
1019Russia2026-08-09
1020Germany2026-08-05
1021Japan2026-08-08
1022Spain2026-07-17
1023Spain2026-07-24
1024United Kingdom2026-07-29
1025Russia2026-07-26
1026India2026-08-01
1027Australia2026-07-25
1028Canada2026-07-18
1029Russia2026-08-09
1030Spain2026-08-08
1031Spain2026-08-10
1032United Kingdom2026-07-26
1033Germany2026-08-11
1034Japan2026-08-11
1035Brazil2026-08-08
1036India2026-08-05
1037Australia2026-07-25
1038Russia2026-07-21
1039Japan2026-08-03
1040Australia2026-07-20
1041Australia2026-08-01
1042United Kingdom2026-07-29
1043United Kingdom2026-08-10
1044Argentina2026-08-12
1045Germany2026-08-09
1046United Kingdom2026-07-28
1047Russia2026-08-07
1048Italy2026-07-24
1049Argentina2026-08-02

On-Demand Data

NameIdCountryDate
Sinclair Y Garufi1000Japan2026-07-22
Julie Y Schemmer1001United Kingdom2026-07-19
Deepesh M Kusko1002France2026-07-26
Rodrigues I Gaucho1003Canada2026-07-18
Arvin J Briddick1004Argentina2026-07-31
Rodrigues E Inouye1005Germany2026-08-01
Mayumi A Caldarera1006Spain2026-08-08
Kadeem B Wieser1007Brazil2026-08-01
Tony S Glick1008India2026-07-16
Silvio K Ruta1009Japan2026-07-14
Deepesh R Campain1010Germany2026-07-21
Cody W Garufi1011Russia2026-07-22
Cody E Sergi1012Germany2026-07-18
Emily O Malet1013Spain2026-08-02
Misaki F Maclead1014India2026-07-26
Wickens A Ferencz1015Russia2026-07-25
Smith Z Ostrosky1016United Kingdom2026-08-02
Francesco C Rim1017France2026-07-31
Silvio O Slusarski1018United Kingdom2026-08-01
Arvin D Oldroyd1019United Kingdom2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire M AmigonAustraliaBernardo Dominic NEW
Claire Y FerenczItalyOnyama Limba NEW
Deepesh F AmigonItalyElwin Sharvill PROPOSAL
Ricardo L WaycottRussiaIoni Bowcher PROPOSAL
Sinclair S ButtSpainIoni Bowcher UNQUALIFIED
Izzy K DilliardJapanAmy Elsner PROPOSAL
David R AlbaresItalyAsiya Javayant UNQUALIFIED
Clifford O DoeJapanIvan Magalhaes PROPOSAL
Emily D TollnerArgentinaOnyama Limba RENEWAL
Nicolas B OstroskyGermanyAnna Fali QUALIFIED
Costa X VocelkaCanadaStephen Shaw RENEWAL
Cody Y MaletFranceAsiya Javayant UNQUALIFIED
James X OldroydAustraliaIoni Bowcher RENEWAL
Chavez M KuskoIndiaStephen Shaw NEW
Mayumi O FigeroaIndiaIoni Bowcher UNQUALIFIED
Leon Z SaylorsUnited KingdomAnna Fali UNQUALIFIED
Izzy C OstroskyBrazilOnyama Limba NEW
Arvin H SchemmerUnited KingdomAsiya Javayant QUALIFIED
Deepesh E MarrierCanadaBernardo Dominic RENEWAL
Juan U DoeJapanAmy Elsner RENEWAL
Aika M MaletAustraliaElwin Sharvill RENEWAL
Antonio C DoeUnited KingdomIvan Magalhaes NEW
David Z IturbideArgentinaXuxue Feng QUALIFIED
Jefferson J SlusarskiJapanXuxue Feng NEW
Octavia Z FlosiRussiaElwin Sharvill NEW
Munro G GlickAustraliaAsiya Javayant NEGOTIATION
Aditya H SergiIndiaStephen Shaw NEGOTIATION
Ricardo D MacleadIndiaElwin Sharvill QUALIFIED
Leja L PoquetteIndiaStephen Shaw QUALIFIED
Adams T CaudyAustraliaIvan Magalhaes NEGOTIATION
Adams V MacleadItalyAsiya Javayant PROPOSAL
James U CaudySpainAmy Elsner UNQUALIFIED
Ivar K RimAustraliaStephen Shaw NEGOTIATION
Jeanfrancois C MacleadAustraliaOnyama Limba PROPOSAL
Deepesh R MorascaUnited KingdomOnyama Limba NEW
Aika I BowleyRussiaXuxue Feng PROPOSAL
Deepesh I CaudySpainStephen Shaw UNQUALIFIED
Rodrigues X VenereSpainStephen Shaw NEGOTIATION
Julie Z MaletGermanyIvan Magalhaes QUALIFIED
Isabel N MacleadGermanyAnna Fali 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>