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
Octavia T MorascaFranceBernardo Dominic RENEWAL
Salvatore A GillianSpainBernardo Dominic PROPOSAL
Emily A MarrierGermanyAsiya Javayant NEGOTIATION
Costa A AmigonSpainIoni Bowcher NEW
Emily J RulapaughBrazilOnyama Limba UNQUALIFIED
Munro J InouyeAustraliaAsiya Javayant NEGOTIATION
Johnson P FigeroaCanadaStephen Shaw PROPOSAL
Nicolas X MarrierBrazilIoni Bowcher NEW
Antonio Z CaldareraJapanIoni Bowcher NEW
Salvatore J IturbideFranceXuxue Feng QUALIFIED
Ashley H MorascaFranceXuxue Feng QUALIFIED
Kadeem I VocelkaAustraliaStephen Shaw NEGOTIATION
Greenwood N ShinkoRussiaElwin Sharvill QUALIFIED
Misaki G SlusarskiRussiaStephen Shaw UNQUALIFIED
Salvatore E BologniaUnited KingdomAsiya Javayant RENEWAL
Francesco T MarrierCanadaOnyama Limba PROPOSAL
Silvio Q SaylorsSpainAnna Fali NEW
Ricardo V VenereGermanyAnna Fali RENEWAL
Ricardo F AlbaresItalyStephen Shaw QUALIFIED
Murillo E FlosiArgentinaIvan Magalhaes RENEWAL
Ivar P WieserFranceOnyama Limba QUALIFIED
Munro X NickaAustraliaElwin Sharvill NEGOTIATION
Aika M VenereArgentinaAsiya Javayant NEW
Leon J RoysterFranceAsiya Javayant RENEWAL
Maisha J DoeCanadaStephen Shaw RENEWAL
Arvin H NickaUnited KingdomElwin Sharvill NEW
Jennifer D BowleyIndiaAmy Elsner RENEWAL
Mayumi C StensethUnited KingdomAnna Fali QUALIFIED
Juan T StensethFranceBernardo Dominic NEW
Leon D GarufiAustraliaElwin Sharvill NEW
Sinclair H MaletSpainAsiya Javayant RENEWAL
Juan D PoquetteSpainIoni Bowcher QUALIFIED
Aruna C NestleUnited KingdomIvan Magalhaes NEW
Maisha S SlusarskiRussiaIvan Magalhaes NEGOTIATION
Mujtaba X CampainFranceAsiya Javayant PROPOSAL
Tony O RimIndiaIoni Bowcher NEW
Maria X NickaAustraliaStephen Shaw UNQUALIFIED
Jennifer T SlusarskiArgentinaOnyama Limba QUALIFIED
Izzy J KolmetzIndiaXuxue Feng NEGOTIATION
Deepesh F ShinkoCanadaOnyama Limba RENEWAL
Ivar P StockhamRussiaStephen Shaw NEGOTIATION
Ricardo Z OstroskyRussiaStephen Shaw UNQUALIFIED
Octavia P FerenczRussiaIoni Bowcher PROPOSAL
Cody N RulapaughAustraliaAmy Elsner PROPOSAL
Chavez G ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Maria Y SaylorsJapanElwin Sharvill NEW
Octavia X RulapaughCanadaBernardo Dominic RENEWAL
Isabel T GarufiRussiaAsiya Javayant QUALIFIED
Maisha Z MaletGermanyAnna Fali NEGOTIATION
Faith P MarrierUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith C SergiSpainIvan Magalhaes NEW
Juan U SaylorsSpainIvan Magalhaes RENEWAL
Clifford G GauchoIndiaIoni Bowcher NEGOTIATION
Kadeem E SaylorsArgentinaAnna Fali NEGOTIATION
Morrow D DarakjyUnited KingdomElwin Sharvill RENEWAL
Kaitlin I SaylorsCanadaElwin Sharvill NEW
Leja W OldroydGermanyBernardo Dominic NEGOTIATION
Leon O FollerRussiaIvan Magalhaes RENEWAL
Aika J FerenczUnited KingdomElwin Sharvill RENEWAL
Aruna O KolmetzArgentinaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James G WieserRussia2026-07-06Commercial Press NEW34Ioni Bowcher
1001Juan Q OstroskyAustralia2026-06-19Morlong Associates RENEWAL39Xuxue Feng
1002Antonio P PerinGermany2026-06-23Commercial Press PROPOSAL7Amy Elsner
1003Aruna K BowleyGermany2026-06-21Chemel, James L Cpa UNQUALIFIED32Anna Fali
1004Clifford F FlosiAustralia2026-06-13Morlong Associates PROPOSAL52Ioni Bowcher
1005Leon C StensethCanada2026-06-23Feltz Printing Service QUALIFIED26Stephen Shaw
1006Ivar L TollnerUnited Kingdom2026-07-02Printing Dimensions UNQUALIFIED78Elwin Sharvill
1007Jeanfrancois P StockhamRussia2026-06-26Commercial Press QUALIFIED49Asiya Javayant
1008Julie O StensethIndia2026-06-13Benton, John B Jr UNQUALIFIED48Onyama Limba
1009Darci H DilliardSpain2026-07-04Buckley Miller Wright QUALIFIED80Asiya Javayant
1010Murillo U DoeItaly2026-06-28Commercial Press RENEWAL2Elwin Sharvill
1011Smith G MarrierGermany2026-06-17Feiner Bros PROPOSAL49Asiya Javayant
1012Smith O DoeCanada2026-06-16Feiner Bros PROPOSAL18Anna Fali
1013Deepesh F OstroskyIndia2026-07-04Chanay, Jeffrey A Esq NEGOTIATION14Ivan Magalhaes
1014Misaki E SlusarskiRussia2026-07-03Printing Dimensions PROPOSAL7Elwin Sharvill
1015Ivar P RulapaughArgentina2026-07-05King, Christopher A Esq PROPOSAL2Ivan Magalhaes
1016Chavez N AlbaresSpain2026-06-09Printing Dimensions NEW18Amy Elsner
1017Julie A ButtIndia2026-06-30Commercial Press PROPOSAL67Ioni Bowcher
1018Isabel Y InouyeRussia2026-06-19Benton, John B Jr NEW22Onyama Limba
1019Ashley A FigeroaItaly2026-06-10Chapman, Ross E Esq RENEWAL44Anna Fali
1020Nicolas I ChuiAustralia2026-07-01Feiner Bros NEW55Elwin Sharvill
1021Faith P SaylorsArgentina2026-07-05Printing Dimensions UNQUALIFIED71Onyama Limba
1022Sinclair D GauchoJapan2026-06-14Truhlar And Truhlar Attys PROPOSAL12Xuxue Feng
1023Tony J RulapaughUnited Kingdom2026-06-08Buckley Miller Wright PROPOSAL31Elwin Sharvill
1024Costa J WieserAustralia2026-06-29King, Christopher A Esq UNQUALIFIED46Ioni Bowcher
1025Alejandro G OstroskyItaly2026-07-02Truhlar And Truhlar Attys RENEWAL44Ioni Bowcher
1026Isabel Q FigeroaItaly2026-06-20Buckley Miller Wright RENEWAL91Anna Fali
1027Alejandro A OldroydArgentina2026-06-22Rangoni Of Florence NEW71Amy Elsner
1028Isabel D ButtRussia2026-07-03Morlong Associates UNQUALIFIED41Stephen Shaw
1029Jeanfrancois C PerinBrazil2026-06-21Chapman, Ross E Esq PROPOSAL9Ioni Bowcher
1030Aruna V DarakjyJapan2026-06-25Truhlar And Truhlar Attys NEGOTIATION16Stephen Shaw
1031Sinclair W KuskoAustralia2026-06-12Rousseaux, Michael Esq NEW96Ioni Bowcher
1032Deepesh Z PerinAustralia2026-06-14Rangoni Of Florence PROPOSAL31Amy Elsner
1033Clifford J FerenczJapan2026-07-06Benton, John B Jr PROPOSAL81Xuxue Feng
1034Salvatore H BologniaArgentina2026-07-03Benton, John B Jr NEGOTIATION28Bernardo Dominic
1035Smith L CaudyUnited Kingdom2026-07-06Chanay, Jeffrey A Esq PROPOSAL24Anna Fali
1036Silvio M SchemmerAustralia2026-06-21Chemel, James L Cpa UNQUALIFIED60Amy Elsner
1037Morrow B RimSpain2026-06-17Rangoni Of Florence NEW37Asiya Javayant
1038Octavia N GarufiBrazil2026-06-29Commercial Press PROPOSAL2Amy Elsner
1039Arvin K TollnerAustralia2026-06-27Chapman, Ross E Esq RENEWAL29Bernardo Dominic
1040Deepesh C IturbideArgentina2026-07-03Chemel, James L Cpa PROPOSAL32Ivan Magalhaes
1041Cody X AlbaresJapan2026-07-03Morlong Associates RENEWAL37Elwin Sharvill
1042Ricardo D MarrierRussia2026-06-25Dorl, James J Esq QUALIFIED28Stephen Shaw
1043Chavez Z IturbideFrance2026-07-06Buckley Miller Wright PROPOSAL8Ioni Bowcher
1044Misaki A FollerIndia2026-06-12Morlong Associates NEW11Ioni Bowcher
1045Francesco J ButtAustralia2026-06-30Benton, John B Jr RENEWAL46Ioni Bowcher
1046Leja D WieserBrazil2026-06-13Buckley Miller Wright RENEWAL57Xuxue Feng
1047Aika G BologniaArgentina2026-06-15Benton, John B Jr UNQUALIFIED53Onyama Limba
1048Cody M VocelkaJapan2026-06-17Commercial Press NEGOTIATION1Bernardo Dominic
1049Ivar L RimJapan2026-06-12Rousseaux, Michael Esq UNQUALIFIED96Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi U MarrierGermanyElwin Sharvill NEW
Tony H NestleGermanyAmy Elsner UNQUALIFIED
Octavia W SaylorsBrazilAnna Fali QUALIFIED
Salvatore D FigeroaCanadaAsiya Javayant RENEWAL
James X FerenczSpainAmy Elsner PROPOSAL
Mayumi F CampainArgentinaIvan Magalhaes UNQUALIFIED
Johnson Z StensethSpainIvan Magalhaes RENEWAL
Munro I StockhamFranceAmy Elsner NEGOTIATION
Tony Q OstroskyAustraliaAmy Elsner RENEWAL
Antonio U WhobreyItalyIoni Bowcher NEW
Costa K MacleadUnited KingdomOnyama Limba QUALIFIED
Ivar Q VenereBrazilAmy Elsner NEW
Arvin P AlbaresCanadaBernardo Dominic NEGOTIATION
Aruna R DarakjyIndiaIoni Bowcher PROPOSAL
Ivar J PoquetteRussiaStephen Shaw PROPOSAL
Isabel P MacleadIndiaAsiya Javayant RENEWAL
Juan K WaycottCanadaAnna Fali RENEWAL
Jones M PerinIndiaIvan Magalhaes PROPOSAL
Wickens X GarufiGermanyBernardo Dominic QUALIFIED
Emily E ButtCanadaElwin Sharvill QUALIFIED
Mujtaba T StensethAustraliaStephen Shaw PROPOSAL
Smith H CaldareraJapanAsiya Javayant NEGOTIATION
James U GarufiUnited KingdomElwin Sharvill NEW
Antonio Q KolmetzRussiaAnna Fali NEGOTIATION
Kaitlin O WhobreyFranceBernardo Dominic PROPOSAL
Ricardo X RulapaughRussiaElwin Sharvill QUALIFIED
Antonio U SlusarskiGermanyAmy Elsner UNQUALIFIED
Morrow E RulapaughUnited KingdomOnyama Limba NEW
Stacey E TollnerBrazilBernardo Dominic UNQUALIFIED
Isabel M PoquetteFranceAsiya Javayant PROPOSAL
Octavia D SchemmerJapanXuxue Feng NEGOTIATION
Aika C RimAustraliaStephen Shaw RENEWAL
Leja L PaprockiJapanIvan Magalhaes UNQUALIFIED
Aditya H FerenczIndiaAmy Elsner NEW
James F IturbideArgentinaIoni Bowcher QUALIFIED
James E OstroskySpainOnyama Limba UNQUALIFIED
Wickens G MarrierBrazilStephen Shaw UNQUALIFIED
Darci C MorascaAustraliaIoni Bowcher NEW
Jones N MaletRussiaStephen Shaw NEGOTIATION
Kadeem B MaletItalyIoni Bowcher RENEWAL
Francesco K RutaGermanyIvan Magalhaes UNQUALIFIED
Sinclair E VenereFranceAsiya Javayant NEW
Emily Q TollnerRussiaAsiya Javayant RENEWAL
Clifford S WieserJapanIoni Bowcher PROPOSAL
Kadeem D PaprockiCanadaElwin Sharvill QUALIFIED
Jennifer I DarakjyArgentinaIvan Magalhaes NEW
Octavia I FigeroaItalyOnyama Limba UNQUALIFIED
Smith C VocelkaSpainElwin Sharvill NEW
Munro H RutaCanadaAsiya Javayant RENEWAL
Misaki R MacleadGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Darci J Malet
Jeanfrancois Z Ostrosky
Smith Q Foller
Ricardo H Gaucho
Leon N Stenseth
Nicolas E Royster
Costa F Malet
Munro F Campain
Aruna C Vocelka
James A Chui
Leja F Caudy
Mujtaba H Slusarski
Antonio L Venere
Izzy S Gaucho
Mujtaba J Saylors
Morrow U Schemmer
Costa O Butt
Costa W Rim
Octavia N Perin
Jones B Campain
Salvatore K Paprocki
David D Vocelka
Jones Z Schemmer
Jefferson S Tollner
Arvin B Saylors
Kadeem K Venere
Darci S Chui
Johnson A Gillian
Ivar D Oldroyd
Jennifer J Butt
Cody J Briddick
Chavez F Amigon
Izzy L Malet
Johnson R Schemmer
Octavia M Wieser
Sinclair D Gillian
Darci J Shinko
James I Gaucho
James I Ruta
Leon A Royster
Murillo I Malet
Greenwood K Ferencz
Arvin T Glick
Kaitlin V Flosi
Munro F Caldarera
Nicolas F Sergi
Claire O Malet
Octavia G Malet
James M Foller
Antonio R Marrier
IdCountryDate
1000India2026-07-05
1001Russia2026-06-11
1002Japan2026-06-21
1003Italy2026-06-24
1004Australia2026-06-13
1005Russia2026-06-09
1006Spain2026-06-17
1007Germany2026-06-30
1008Spain2026-07-05
1009India2026-06-26
1010Germany2026-06-21
1011Australia2026-07-03
1012Australia2026-06-10
1013France2026-06-09
1014Italy2026-07-01
1015Italy2026-06-10
1016Spain2026-06-14
1017Brazil2026-06-15
1018Spain2026-06-25
1019Russia2026-06-29
1020Germany2026-06-27
1021Spain2026-06-29
1022Japan2026-06-14
1023Argentina2026-07-01
1024Japan2026-06-28
1025Japan2026-07-03
1026France2026-07-01
1027Brazil2026-07-06
1028Argentina2026-06-20
1029Russia2026-06-17
1030Italy2026-06-21
1031Australia2026-06-13
1032United Kingdom2026-06-20
1033Canada2026-06-16
1034Spain2026-06-13
1035France2026-07-07
1036Brazil2026-06-19
1037Japan2026-06-29
1038Canada2026-06-12
1039Argentina2026-06-17
1040Germany2026-06-09
1041India2026-06-09
1042India2026-06-25
1043Germany2026-06-30
1044Australia2026-06-14
1045Germany2026-06-30
1046Australia2026-06-10
1047United Kingdom2026-06-13
1048United Kingdom2026-06-16
1049France2026-06-10

On-Demand Data

NameIdCountryDate
Arvin K Gillian1000Japan2026-06-13
Aruna F Caldarera1001Japan2026-06-15
Maria J Morasca1002United Kingdom2026-07-04
Isabel E Kusko1003Argentina2026-06-20
Adams L Butt1004Argentina2026-06-11
Jefferson V Venere1005Russia2026-06-23
Nicolas S Vocelka1006Australia2026-06-30
Julie X Inouye1007Japan2026-07-07
Francesco S Chui1008United Kingdom2026-06-09
Kadeem K Ferencz1009Australia2026-06-25
Darci H Iturbide1010France2026-06-25
Ricardo T Dilliard1011Germany2026-06-16
Alejandro F Caldarera1012Russia2026-07-04
Clifford O Ruta1013Germany2026-06-14
Arvin R Malet1014Spain2026-06-08
Clifford R Flosi1015Spain2026-07-04
Tony G Ferencz1016Italy2026-06-22
Munro J Dilliard1017Canada2026-06-10
Juan W Wieser1018France2026-06-28
Isabel Z Poquette1019United Kingdom2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey O GillianFranceAnna Fali NEGOTIATION
Mujtaba N DilliardBrazilXuxue Feng PROPOSAL
Julie H RutaItalyAnna Fali NEW
Juan D MaletCanadaIoni Bowcher NEGOTIATION
Jefferson C IturbideAustraliaXuxue Feng QUALIFIED
Maria T SergiArgentinaIvan Magalhaes QUALIFIED
Sinclair Q OldroydGermanyAmy Elsner RENEWAL
Francesco V FerenczItalyIvan Magalhaes RENEWAL
Isabel A MarrierAustraliaOnyama Limba NEGOTIATION
Stacey E DilliardCanadaElwin Sharvill NEW
Kadeem Y SergiGermanyIoni Bowcher PROPOSAL
Leja K FlosiUnited KingdomAnna Fali UNQUALIFIED
Misaki B VenereBrazilIvan Magalhaes QUALIFIED
Maria J NickaGermanyAmy Elsner NEGOTIATION
Nicolas B ShinkoCanadaIoni Bowcher RENEWAL
Sinclair Y ShinkoItalyElwin Sharvill QUALIFIED
Jeanfrancois D WieserUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh W RulapaughIndiaAsiya Javayant QUALIFIED
Sinclair G BowleyAustraliaIoni Bowcher NEW
Johnson M GillianUnited KingdomStephen Shaw NEGOTIATION
Ivar S WaycottIndiaAnna Fali NEGOTIATION
Julie G SchemmerGermanyBernardo Dominic RENEWAL
Darci B GillianJapanElwin Sharvill NEGOTIATION
Silvio O MaletUnited KingdomAsiya Javayant QUALIFIED
Costa R RulapaughArgentinaElwin Sharvill RENEWAL
Mayumi Z CaudyGermanyIoni Bowcher UNQUALIFIED
Juan V KuskoSpainElwin Sharvill PROPOSAL
Ricardo C NickaIndiaStephen Shaw RENEWAL
Tony I KolmetzArgentinaAnna Fali NEW
Isabel N OldroydCanadaBernardo Dominic NEW
Ivar I BriddickRussiaOnyama Limba PROPOSAL
Darci V MaletRussiaAnna Fali NEGOTIATION
Clifford J ShinkoUnited KingdomIvan Magalhaes RENEWAL
Nicolas I SlusarskiAustraliaAsiya Javayant RENEWAL
Aika Y VenereItalyIvan Magalhaes QUALIFIED
Ivar W GauchoSpainStephen Shaw PROPOSAL
Ivar F DilliardArgentinaIvan Magalhaes QUALIFIED
Mujtaba Z CampainSpainAnna Fali UNQUALIFIED
Leja O ButtSpainElwin Sharvill UNQUALIFIED
Octavia T VocelkaFranceAmy Elsner NEW

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