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
Arvin S FerenczFranceStephen Shaw UNQUALIFIED
Darci I CaudyAustraliaAnna Fali NEW
Juan S DarakjyUnited KingdomStephen Shaw RENEWAL
Adams X MorascaJapanIvan Magalhaes UNQUALIFIED
Ashley V CampainFranceIoni Bowcher UNQUALIFIED
Silvio X DoeCanadaXuxue Feng PROPOSAL
Morrow V FlosiFranceBernardo Dominic RENEWAL
Aika U RoysterFranceIoni Bowcher NEW
Juan L PoquetteAustraliaAmy Elsner NEGOTIATION
Sinclair A DilliardIndiaBernardo Dominic NEGOTIATION
Julie S StockhamBrazilOnyama Limba UNQUALIFIED
Cody K KolmetzGermanyIvan Magalhaes NEGOTIATION
Francesco R MarrierFranceIvan Magalhaes NEGOTIATION
Clifford D WieserBrazilAnna Fali RENEWAL
Rodrigues S PoquetteFranceIvan Magalhaes PROPOSAL
Jefferson Z BowleyUnited KingdomOnyama Limba QUALIFIED
Kaitlin X MaletGermanyXuxue Feng RENEWAL
Aika J WaycottIndiaBernardo Dominic UNQUALIFIED
Kaitlin B PerinArgentinaElwin Sharvill UNQUALIFIED
Silvio D SergiRussiaXuxue Feng QUALIFIED
Misaki G SchemmerRussiaIoni Bowcher QUALIFIED
Kadeem W IturbideArgentinaAnna Fali NEGOTIATION
Costa I RutaUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood B CampainBrazilIoni Bowcher RENEWAL
Emily U PoquetteFranceBernardo Dominic RENEWAL
Ricardo N FlosiJapanXuxue Feng UNQUALIFIED
Wickens Y OstroskyIndiaAnna Fali NEGOTIATION
Sinclair O GauchoUnited KingdomStephen Shaw QUALIFIED
Francesco R RulapaughItalyXuxue Feng RENEWAL
Stacey Z OldroydItalyXuxue Feng UNQUALIFIED
Emily V MaletRussiaAnna Fali UNQUALIFIED
Wickens U RimUnited KingdomOnyama Limba NEW
Aditya E GarufiJapanAmy Elsner NEW
Mayumi A DoeJapanOnyama Limba NEGOTIATION
Faith X FlosiAustraliaAmy Elsner NEW
Costa P PerinGermanyAnna Fali QUALIFIED
Aika R SchemmerUnited KingdomOnyama Limba QUALIFIED
Darci J ButtUnited KingdomAmy Elsner PROPOSAL
Kadeem B PaprockiJapanAsiya Javayant UNQUALIFIED
Murillo S ShinkoIndiaAnna Fali NEW
Julie Q OldroydIndiaOnyama Limba NEGOTIATION
Greenwood P TollnerFranceBernardo Dominic NEGOTIATION
Ivar O PaprockiSpainOnyama Limba RENEWAL
Jefferson Y InouyeItalyOnyama Limba NEW
Julie I FerenczSpainElwin Sharvill NEW
Jennifer K KuskoGermanyElwin Sharvill NEW
Sinclair G SlusarskiCanadaAnna Fali PROPOSAL
Murillo Z KuskoFranceOnyama Limba QUALIFIED
Maisha L GlickJapanAsiya Javayant NEGOTIATION
Kaitlin C PoquetteSpainStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo T MaletItalyXuxue Feng PROPOSAL
Stacey M InouyeGermanyElwin Sharvill RENEWAL
Aika K SlusarskiBrazilAsiya Javayant UNQUALIFIED
David Q SlusarskiItalyAsiya Javayant QUALIFIED
Aditya U StockhamRussiaElwin Sharvill UNQUALIFIED
James Y MacleadItalyIvan Magalhaes NEW
Deepesh Q InouyeUnited KingdomIvan Magalhaes RENEWAL
Leja L ButtIndiaElwin Sharvill UNQUALIFIED
Rodrigues S RutaCanadaElwin Sharvill RENEWAL
Mujtaba X NickaUnited KingdomAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy D CaudySpain2026-06-29Rousseaux, Michael Esq RENEWAL7Ioni Bowcher
1001Claire T BologniaBrazil2026-07-22Chemel, James L Cpa RENEWAL71Ioni Bowcher
1002Antonio N FerenczUnited Kingdom2026-07-24Printing Dimensions RENEWAL6Bernardo Dominic
1003Emily P StockhamJapan2026-07-21Benton, John B Jr PROPOSAL9Amy Elsner
1004Munro U KolmetzCanada2026-07-09Rangoni Of Florence NEGOTIATION54Stephen Shaw
1005Alejandro Z StensethArgentina2026-07-10Feiner Bros NEGOTIATION52Ioni Bowcher
1006Francesco H GlickCanada2026-06-29Feltz Printing Service NEW73Xuxue Feng
1007Johnson B RoysterGermany2026-07-13King, Christopher A Esq NEW52Onyama Limba
1008Arvin P MaletSpain2026-07-20Chemel, James L Cpa QUALIFIED38Amy Elsner
1009Maisha B MaletSpain2026-07-05King, Christopher A Esq NEW39Asiya Javayant
1010Darci T PerinFrance2026-07-10King, Christopher A Esq UNQUALIFIED91Onyama Limba
1011Rodrigues Q PaprockiIndia2026-07-06King, Christopher A Esq NEGOTIATION48Bernardo Dominic
1012Alejandro F CaldareraIndia2026-07-08Rangoni Of Florence NEW48Xuxue Feng
1013Jennifer Y RoysterItaly2026-07-01Commercial Press UNQUALIFIED84Stephen Shaw
1014Nicolas Y FerenczAustralia2026-07-24Feiner Bros UNQUALIFIED36Ioni Bowcher
1015Smith Q CaldareraArgentina2026-07-21Feiner Bros UNQUALIFIED96Amy Elsner
1016Tony I MarrierJapan2026-07-21Benton, John B Jr PROPOSAL83Amy Elsner
1017Leja F PoquetteSpain2026-07-16Rousseaux, Michael Esq PROPOSAL1Xuxue Feng
1018Antonio W WaycottAustralia2026-06-29Rousseaux, Michael Esq NEGOTIATION97Amy Elsner
1019Jefferson E ShinkoCanada2026-07-08Rangoni Of Florence QUALIFIED80Ioni Bowcher
1020Johnson F NestleIndia2026-07-20Chapman, Ross E Esq UNQUALIFIED51Asiya Javayant
1021Salvatore N DilliardGermany2026-07-18Feiner Bros QUALIFIED85Anna Fali
1022Juan U WhobreyRussia2026-07-09Benton, John B Jr UNQUALIFIED97Amy Elsner
1023Juan G StensethSpain2026-07-14Dorl, James J Esq NEGOTIATION30Bernardo Dominic
1024Emily C RoysterIndia2026-07-15Chanay, Jeffrey A Esq NEGOTIATION90Elwin Sharvill
1025Silvio Q IturbideIndia2026-07-06Dorl, James J Esq PROPOSAL94Elwin Sharvill
1026Misaki Z MaletSpain2026-06-27Rangoni Of Florence QUALIFIED54Elwin Sharvill
1027Ashley G ShinkoFrance2026-07-09Commercial Press PROPOSAL44Asiya Javayant
1028Isabel Q RimJapan2026-07-19King, Christopher A Esq UNQUALIFIED4Ivan Magalhaes
1029David G PaprockiCanada2026-07-01King, Christopher A Esq QUALIFIED24Stephen Shaw
1030Murillo I CaldareraAustralia2026-07-19Printing Dimensions UNQUALIFIED70Bernardo Dominic
1031Misaki E CaudyRussia2026-07-14Chemel, James L Cpa NEW38Onyama Limba
1032Ivar N GarufiArgentina2026-07-01Benton, John B Jr PROPOSAL86Stephen Shaw
1033Jefferson H AlbaresBrazil2026-06-28Chemel, James L Cpa NEW55Xuxue Feng
1034Jennifer U ButtItaly2026-07-11Rangoni Of Florence PROPOSAL95Stephen Shaw
1035Isabel W GarufiCanada2026-07-23Feiner Bros PROPOSAL52Bernardo Dominic
1036Johnson Q KolmetzUnited Kingdom2026-07-13King, Christopher A Esq PROPOSAL47Anna Fali
1037Sinclair S OstroskyAustralia2026-07-07Truhlar And Truhlar Attys PROPOSAL15Anna Fali
1038Maisha Z GillianFrance2026-07-25Benton, John B Jr PROPOSAL80Ioni Bowcher
1039Leja E TollnerAustralia2026-07-18Chemel, James L Cpa NEGOTIATION37Anna Fali
1040Morrow W IturbideJapan2026-06-26Rousseaux, Michael Esq NEGOTIATION91Elwin Sharvill
1041Smith X RoysterArgentina2026-07-21Rousseaux, Michael Esq NEW9Asiya Javayant
1042Silvio L OldroydRussia2026-06-30Truhlar And Truhlar Attys RENEWAL44Stephen Shaw
1043Aika K MaletRussia2026-07-20Chapman, Ross E Esq NEW62Ioni Bowcher
1044Costa D MacleadGermany2026-07-15King, Christopher A Esq NEGOTIATION71Onyama Limba
1045Ashley N NestleSpain2026-07-18Truhlar And Truhlar Attys QUALIFIED53Amy Elsner
1046David N StockhamRussia2026-07-04Feiner Bros RENEWAL6Bernardo Dominic
1047Greenwood I FlosiItaly2026-07-06King, Christopher A Esq NEGOTIATION10Anna Fali
1048Claire G FigeroaGermany2026-07-04Dorl, James J Esq QUALIFIED67Anna Fali
1049Octavia Q StockhamArgentina2026-07-10Morlong Associates QUALIFIED33Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar W RimItalyAsiya Javayant RENEWAL
Tony S GlickFranceIvan Magalhaes RENEWAL
Munro E AmigonIndiaElwin Sharvill NEW
Julie H GillianRussiaOnyama Limba NEW
Tony O DilliardFranceXuxue Feng NEGOTIATION
Arvin Q VocelkaCanadaXuxue Feng UNQUALIFIED
Maisha V AmigonArgentinaElwin Sharvill NEGOTIATION
Leja N MarrierIndiaAsiya Javayant NEW
Costa U InouyeArgentinaIoni Bowcher PROPOSAL
Maria R ChuiGermanyBernardo Dominic NEW
Murillo Y DoeCanadaElwin Sharvill NEGOTIATION
Faith C OldroydGermanyIvan Magalhaes RENEWAL
Izzy Y SergiCanadaIvan Magalhaes QUALIFIED
Izzy G NickaJapanIoni Bowcher RENEWAL
Munro N NestleArgentinaOnyama Limba RENEWAL
Misaki K RoysterIndiaOnyama Limba QUALIFIED
Rodrigues S CampainCanadaAsiya Javayant NEGOTIATION
Kaitlin T InouyeFranceElwin Sharvill QUALIFIED
Alejandro K GarufiGermanyBernardo Dominic RENEWAL
Munro D VocelkaRussiaIoni Bowcher QUALIFIED
Julie T IturbideJapanAmy Elsner PROPOSAL
Johnson Y DarakjyGermanyAmy Elsner NEW
Alejandro O PoquetteRussiaAmy Elsner RENEWAL
Ivar S WhobreyGermanyOnyama Limba NEW
Isabel X RoysterUnited KingdomAsiya Javayant NEW
Mayumi A ChuiRussiaOnyama Limba RENEWAL
Ivar T FlosiCanadaIoni Bowcher UNQUALIFIED
Isabel W KuskoSpainOnyama Limba RENEWAL
Jefferson C SlusarskiSpainIvan Magalhaes NEGOTIATION
Rodrigues W AlbaresArgentinaAsiya Javayant QUALIFIED
Salvatore G InouyeCanadaXuxue Feng RENEWAL
Kaitlin X DilliardUnited KingdomXuxue Feng RENEWAL
Ricardo I CampainAustraliaBernardo Dominic PROPOSAL
Antonio O SaylorsArgentinaAsiya Javayant PROPOSAL
Greenwood V SlusarskiAustraliaIoni Bowcher PROPOSAL
Silvio X ShinkoIndiaAmy Elsner PROPOSAL
Costa Q MorascaUnited KingdomIoni Bowcher PROPOSAL
Claire K PoquetteItalyAnna Fali PROPOSAL
Francesco J MaletRussiaStephen Shaw NEW
Murillo C RoysterCanadaAmy Elsner NEW
Morrow N NickaBrazilIoni Bowcher NEGOTIATION
Maria R WaycottBrazilIvan Magalhaes RENEWAL
Jones K VocelkaFranceAmy Elsner UNQUALIFIED
Silvio H GauchoJapanXuxue Feng QUALIFIED
Claire Y GillianGermanyIoni Bowcher NEW
Maisha A FigeroaSpainElwin Sharvill NEGOTIATION
James A VenereUnited KingdomBernardo Dominic RENEWAL
Aika S BologniaUnited KingdomOnyama Limba NEW
Aditya L InouyeJapanAsiya Javayant UNQUALIFIED
Claire Q FigeroaItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Jeanfrancois Z Perin
Murillo G Shinko
Jeanfrancois N Perin
Clifford R Bolognia
David Y Stockham
Leon Q Ruta
Alejandro E Waycott
Jeanfrancois W Stockham
Octavia G Bolognia
Costa L Bowley
Juan Q Foller
Francesco K Dilliard
Wickens R Caldarera
Maria L Albares
Smith E Malet
Sinclair I Wieser
Wickens E Albares
Juan U Iturbide
Smith O Kusko
Ashley H Sergi
Munro U Sergi
Deepesh G Amigon
Aika L Bolognia
Aditya Z Rim
Izzy L Wieser
Aruna R Flosi
Rodrigues O Garufi
Chavez P Rulapaugh
Chavez L Glick
Adams M Inouye
Cody R Nicka
Jennifer I Butt
Faith G Flosi
Sinclair P Malet
Alejandro Q Oldroyd
Aruna M Caldarera
Claire Q Sergi
Jeanfrancois R Briddick
Ricardo E Gillian
Greenwood N Darakjy
Murillo L Gillian
Misaki H Royster
Munro V Shinko
Francesco A Saylors
Deepesh H Gillian
Juan P Marrier
Antonio L Whobrey
Leon S Poquette
Aditya N Vocelka
Kaitlin J Albares
IdCountryDate
1000Japan2026-06-30
1001India2026-06-27
1002India2026-06-28
1003Spain2026-06-27
1004India2026-07-25
1005Japan2026-07-03
1006Russia2026-06-30
1007Spain2026-07-13
1008Russia2026-07-20
1009Japan2026-07-20
1010Germany2026-06-28
1011Canada2026-07-20
1012Australia2026-07-19
1013Canada2026-07-20
1014Australia2026-07-07
1015Argentina2026-07-22
1016Canada2026-06-26
1017Germany2026-07-12
1018France2026-07-01
1019Canada2026-07-20
1020Australia2026-06-28
1021France2026-07-06
1022Canada2026-06-29
1023Italy2026-07-06
1024Australia2026-07-08
1025United Kingdom2026-07-04
1026Argentina2026-06-30
1027United Kingdom2026-07-07
1028Japan2026-06-26
1029United Kingdom2026-07-12
1030United Kingdom2026-06-29
1031Canada2026-06-26
1032Brazil2026-07-15
1033Argentina2026-07-07
1034India2026-07-01
1035Japan2026-07-11
1036India2026-07-22
1037Japan2026-07-17
1038United Kingdom2026-07-18
1039Germany2026-07-08
1040Canada2026-07-22
1041France2026-07-04
1042Brazil2026-07-10
1043Brazil2026-07-07
1044Russia2026-07-06
1045Spain2026-07-12
1046India2026-07-14
1047United Kingdom2026-06-26
1048Spain2026-07-18
1049Spain2026-07-09

On-Demand Data

NameIdCountryDate
Arvin J Garufi1000France2026-06-28
Chavez Q Caldarera1001Germany2026-06-28
Munro K Maclead1002India2026-07-03
Rodrigues H Malet1003Russia2026-06-29
Murillo S Dilliard1004Brazil2026-07-10
Jones S Doe1005Canada2026-07-01
Silvio X Waycott1006Australia2026-06-29
Jones G Nicka1007Australia2026-07-08
Misaki P Flosi1008Japan2026-07-01
Kaitlin I Nestle1009Spain2026-07-05
Misaki X Bowley1010Brazil2026-07-21
Alejandro J Kolmetz1011Russia2026-07-18
Rodrigues G Shinko1012Argentina2026-07-07
Cody R Dilliard1013Argentina2026-07-17
Greenwood N Vocelka1014Brazil2026-06-29
Mayumi V Venere1015France2026-07-06
Ricardo O Caldarera1016Brazil2026-07-07
Stacey Q Iturbide1017Japan2026-07-05
Cody I Slusarski1018France2026-07-24
Morrow K Doe1019Germany2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey J AlbaresArgentinaAmy Elsner RENEWAL
Mujtaba F TollnerRussiaElwin Sharvill QUALIFIED
Chavez R PaprockiGermanyOnyama Limba UNQUALIFIED
Mujtaba P ButtRussiaBernardo Dominic NEW
Ashley M OldroydBrazilXuxue Feng PROPOSAL
Aditya I FigeroaArgentinaAmy Elsner QUALIFIED
Smith O CaudyRussiaOnyama Limba NEW
Cody U FerenczIndiaAnna Fali QUALIFIED
Julie G GarufiIndiaStephen Shaw QUALIFIED
Salvatore K RulapaughRussiaIoni Bowcher NEGOTIATION
Wickens U SchemmerGermanyOnyama Limba QUALIFIED
Adams H RulapaughSpainBernardo Dominic NEGOTIATION
Deepesh P OstroskyItalyBernardo Dominic PROPOSAL
Leja M KolmetzCanadaElwin Sharvill NEGOTIATION
Maisha B GauchoGermanyAmy Elsner RENEWAL
Maisha U SaylorsBrazilStephen Shaw NEGOTIATION
Nicolas X ChuiGermanyAnna Fali QUALIFIED
Ivar U VocelkaCanadaElwin Sharvill QUALIFIED
Adams S PaprockiArgentinaStephen Shaw UNQUALIFIED
Wickens T AmigonRussiaAnna Fali QUALIFIED
Izzy F RutaJapanAmy Elsner QUALIFIED
Mujtaba I GarufiBrazilAsiya Javayant UNQUALIFIED
Leja E PaprockiRussiaStephen Shaw NEW
Misaki I RulapaughBrazilStephen Shaw RENEWAL
Faith A TollnerIndiaAnna Fali RENEWAL
James U AlbaresSpainElwin Sharvill PROPOSAL
Antonio X KolmetzUnited KingdomIoni Bowcher NEW
Mujtaba I IturbideJapanBernardo Dominic NEGOTIATION
Maria H GauchoAustraliaBernardo Dominic NEW
Antonio J MarrierFranceAsiya Javayant UNQUALIFIED
Emily F PerinArgentinaAmy Elsner NEGOTIATION
Maria Z FigeroaBrazilIoni Bowcher QUALIFIED
Johnson X KuskoRussiaBernardo Dominic RENEWAL
Leon W KuskoSpainXuxue Feng PROPOSAL
Mujtaba S MorascaSpainStephen Shaw RENEWAL
Aruna L KolmetzSpainStephen Shaw RENEWAL
Julie T MaletGermanyAmy Elsner UNQUALIFIED
Izzy K RutaBrazilBernardo Dominic NEW
Antonio N ChuiSpainStephen Shaw PROPOSAL
Kadeem G AmigonBrazilAnna Fali 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>