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
Salvatore M WaycottUnited KingdomAsiya Javayant PROPOSAL
Greenwood N StockhamItalyXuxue Feng NEGOTIATION
Adams U TollnerArgentinaElwin Sharvill NEW
Maria G NickaJapanIvan Magalhaes NEGOTIATION
Leon Z DilliardCanadaIvan Magalhaes RENEWAL
Stacey S MaletArgentinaElwin Sharvill QUALIFIED
Munro R WaycottAustraliaStephen Shaw PROPOSAL
Leon T VenereSpainAnna Fali UNQUALIFIED
Maisha Y MarrierGermanyIoni Bowcher NEW
Cody D BowleyRussiaAsiya Javayant PROPOSAL
Aditya P FlosiIndiaIoni Bowcher RENEWAL
Mayumi K ChuiRussiaAsiya Javayant PROPOSAL
Clifford C ShinkoItalyStephen Shaw RENEWAL
James C StensethAustraliaBernardo Dominic UNQUALIFIED
Julie Z RutaBrazilXuxue Feng NEGOTIATION
Kaitlin M MaletIndiaIoni Bowcher QUALIFIED
Misaki Q PoquetteSpainAmy Elsner RENEWAL
Octavia E BologniaJapanXuxue Feng UNQUALIFIED
Sinclair V PerinItalyIvan Magalhaes NEGOTIATION
Clifford I DoeRussiaAmy Elsner UNQUALIFIED
Salvatore V FlosiFranceIoni Bowcher NEGOTIATION
Isabel M BriddickItalyXuxue Feng NEW
Alejandro L CampainCanadaAnna Fali UNQUALIFIED
Stacey B RulapaughBrazilElwin Sharvill PROPOSAL
Smith A FlosiFranceIvan Magalhaes RENEWAL
Arvin X SchemmerIndiaElwin Sharvill UNQUALIFIED
Antonio Y OldroydCanadaXuxue Feng QUALIFIED
Sinclair D MacleadCanadaAnna Fali NEGOTIATION
Juan T SchemmerCanadaAnna Fali RENEWAL
Murillo Q WieserArgentinaBernardo Dominic PROPOSAL
Aruna L CampainSpainAnna Fali RENEWAL
Kadeem R FigeroaArgentinaStephen Shaw UNQUALIFIED
Faith R ButtArgentinaAsiya Javayant NEW
Alejandro K WaycottCanadaXuxue Feng PROPOSAL
Julie Z DarakjyUnited KingdomAsiya Javayant PROPOSAL
Morrow D TollnerItalyIvan Magalhaes UNQUALIFIED
David J InouyeUnited KingdomIoni Bowcher QUALIFIED
Mujtaba X IturbideArgentinaBernardo Dominic PROPOSAL
Tony K BologniaItalyAmy Elsner UNQUALIFIED
Antonio B BowleyCanadaBernardo Dominic RENEWAL
Juan F PoquetteJapanAnna Fali QUALIFIED
Sinclair M VocelkaIndiaElwin Sharvill NEGOTIATION
Aika O DarakjyRussiaElwin Sharvill NEGOTIATION
Jefferson X ChuiUnited KingdomAmy Elsner PROPOSAL
Antonio V FollerFranceAmy Elsner RENEWAL
Leon M DilliardGermanyOnyama Limba NEW
Aika Z ChuiAustraliaAsiya Javayant NEGOTIATION
Tony E ButtGermanyStephen Shaw QUALIFIED
Smith S RutaJapanStephen Shaw PROPOSAL
Aditya E DoeSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kadeem I WaycottCanadaAnna Fali RENEWAL
Julie S AmigonIndiaBernardo Dominic NEW
Misaki V GarufiGermanyElwin Sharvill UNQUALIFIED
Stacey K MacleadArgentinaStephen Shaw QUALIFIED
Johnson W VocelkaAustraliaElwin Sharvill UNQUALIFIED
David H GillianBrazilElwin Sharvill QUALIFIED
Jennifer S RoysterGermanyStephen Shaw PROPOSAL
Stacey G FlosiBrazilIvan Magalhaes RENEWAL
Darci U VocelkaGermanyOnyama Limba NEW
Francesco J VocelkaUnited KingdomIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria G GauchoIndia2025-05-28King, Christopher A Esq UNQUALIFIED69Xuxue Feng
1001Alejandro X BriddickSpain2025-05-21Chapman, Ross E Esq NEGOTIATION16Ivan Magalhaes
1002Stacey D OstroskyRussia2025-05-21Buckley Miller Wright PROPOSAL24Stephen Shaw
1003Isabel E FigeroaIndia2025-05-21Printing Dimensions PROPOSAL71Amy Elsner
1004Ricardo Y CampainAustralia2025-06-10Feiner Bros NEW42Ioni Bowcher
1005Johnson A WieserIndia2025-05-18Chapman, Ross E Esq NEW78Xuxue Feng
1006Faith Z CaudyArgentina2025-06-10King, Christopher A Esq RENEWAL62Ioni Bowcher
1007Misaki T SchemmerCanada2025-05-30Morlong Associates QUALIFIED1Elwin Sharvill
1008Maisha Z RutaCanada2025-06-10Morlong Associates RENEWAL67Onyama Limba
1009Leja K FerenczUnited Kingdom2025-05-23Rousseaux, Michael Esq NEGOTIATION51Asiya Javayant
1010Morrow T DoeBrazil2025-05-31Benton, John B Jr QUALIFIED53Ivan Magalhaes
1011Tony Q SchemmerSpain2025-06-07Buckley Miller Wright PROPOSAL69Elwin Sharvill
1012Emily C DoeItaly2025-06-07Morlong Associates PROPOSAL68Ioni Bowcher
1013Aditya W StockhamJapan2025-06-07Feltz Printing Service NEGOTIATION83Xuxue Feng
1014Isabel O ShinkoBrazil2025-05-17Benton, John B Jr RENEWAL73Onyama Limba
1015Julie E CaldareraBrazil2025-06-12Benton, John B Jr UNQUALIFIED74Amy Elsner
1016Isabel R DilliardIndia2025-06-15King, Christopher A Esq PROPOSAL2Onyama Limba
1017Silvio B MorascaArgentina2025-06-04Morlong Associates PROPOSAL36Ivan Magalhaes
1018Faith N RulapaughIndia2025-06-15Chapman, Ross E Esq PROPOSAL1Asiya Javayant
1019Adams Y InouyeIndia2025-05-19Printing Dimensions NEW11Stephen Shaw
1020Nicolas F MacleadGermany2025-05-22Rousseaux, Michael Esq RENEWAL68Onyama Limba
1021Cody T BowleyJapan2025-06-04Chapman, Ross E Esq PROPOSAL25Ioni Bowcher
1022Aika M MarrierBrazil2025-05-25Chapman, Ross E Esq UNQUALIFIED34Anna Fali
1023Jones P StockhamArgentina2025-06-06Buckley Miller Wright RENEWAL32Onyama Limba
1024Jennifer L TollnerFrance2025-05-31King, Christopher A Esq UNQUALIFIED71Amy Elsner
1025Greenwood Q FlosiUnited Kingdom2025-06-13Rangoni Of Florence RENEWAL66Xuxue Feng
1026Jones Z AmigonIndia2025-06-10Benton, John B Jr PROPOSAL63Elwin Sharvill
1027Francesco M FerenczIndia2025-06-05Printing Dimensions PROPOSAL7Anna Fali
1028Jeanfrancois A MacleadIndia2025-05-19Buckley Miller Wright PROPOSAL10Xuxue Feng
1029Arvin F TollnerIndia2025-05-22Chanay, Jeffrey A Esq UNQUALIFIED80Anna Fali
1030Maria A BologniaFrance2025-06-15Benton, John B Jr NEGOTIATION84Ivan Magalhaes
1031Greenwood P WaycottAustralia2025-05-31Benton, John B Jr RENEWAL27Onyama Limba
1032Costa A SergiGermany2025-05-17Truhlar And Truhlar Attys NEW79Amy Elsner
1033Mujtaba J ButtAustralia2025-05-20Printing Dimensions NEGOTIATION38Elwin Sharvill
1034Aruna K CaudyBrazil2025-05-20Chanay, Jeffrey A Esq NEGOTIATION89Ioni Bowcher
1035Ashley A BologniaBrazil2025-06-03Chapman, Ross E Esq NEGOTIATION85Amy Elsner
1036Sinclair J BriddickRussia2025-05-30Feiner Bros NEW70Elwin Sharvill
1037Maria C KuskoUnited Kingdom2025-06-03Chapman, Ross E Esq UNQUALIFIED67Amy Elsner
1038Leja P CampainAustralia2025-05-28Commercial Press NEGOTIATION46Amy Elsner
1039Francesco F PerinUnited Kingdom2025-06-12Rangoni Of Florence RENEWAL32Onyama Limba
1040Juan A FigeroaAustralia2025-05-17Benton, John B Jr QUALIFIED8Asiya Javayant
1041Darci M InouyeGermany2025-05-18Feiner Bros QUALIFIED24Bernardo Dominic
1042Jones Q TollnerRussia2025-05-18Benton, John B Jr PROPOSAL58Xuxue Feng
1043Salvatore K CaldareraCanada2025-06-13Rangoni Of Florence NEGOTIATION31Bernardo Dominic
1044Jones X RoysterUnited Kingdom2025-05-29King, Christopher A Esq PROPOSAL34Bernardo Dominic
1045Wickens Y CaudyItaly2025-06-15Printing Dimensions UNQUALIFIED62Asiya Javayant
1046Jeanfrancois D RulapaughRussia2025-06-14Printing Dimensions NEW62Elwin Sharvill
1047Antonio J NestleGermany2025-05-19Chapman, Ross E Esq PROPOSAL44Elwin Sharvill
1048James F VenereFrance2025-05-25Chanay, Jeffrey A Esq NEW32Ioni Bowcher
1049Jeanfrancois F NickaJapan2025-05-31Chanay, Jeffrey A Esq UNQUALIFIED27Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki I CampainCanadaAsiya Javayant NEGOTIATION
Cody A MaletItalyElwin Sharvill NEGOTIATION
Wickens X DilliardFranceXuxue Feng NEGOTIATION
Kadeem N FigeroaRussiaOnyama Limba NEW
Antonio N KolmetzGermanyAnna Fali RENEWAL
Aruna U CaudyCanadaXuxue Feng RENEWAL
Tony Z WhobreyFranceStephen Shaw UNQUALIFIED
Francesco U MarrierSpainAmy Elsner NEW
Darci J RoysterArgentinaElwin Sharvill RENEWAL
Sinclair N GarufiItalyBernardo Dominic NEW
Claire O GlickFranceIoni Bowcher UNQUALIFIED
Jennifer F RulapaughCanadaStephen Shaw PROPOSAL
Faith I SaylorsCanadaAsiya Javayant NEW
Leja T RutaAustraliaXuxue Feng NEGOTIATION
Faith O RutaItalyIvan Magalhaes QUALIFIED
Maria J StensethUnited KingdomOnyama Limba PROPOSAL
Nicolas W CaldareraFranceBernardo Dominic NEW
Sinclair Z MaletIndiaAnna Fali QUALIFIED
Mujtaba M OstroskyCanadaXuxue Feng NEGOTIATION
Juan V AmigonItalyStephen Shaw PROPOSAL
Aika Z KolmetzJapanBernardo Dominic RENEWAL
Octavia T CaudyCanadaAsiya Javayant NEGOTIATION
Emily Z SergiJapanAmy Elsner RENEWAL
Maria W SlusarskiArgentinaAsiya Javayant NEW
Misaki M SlusarskiAustraliaAmy Elsner UNQUALIFIED
Jones K TollnerAustraliaXuxue Feng UNQUALIFIED
Aditya V GauchoAustraliaAnna Fali RENEWAL
Arvin E AlbaresCanadaElwin Sharvill PROPOSAL
Deepesh Z OldroydBrazilXuxue Feng RENEWAL
Arvin V GarufiBrazilStephen Shaw RENEWAL
Ashley P NestleUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois V MaletArgentinaIoni Bowcher UNQUALIFIED
Maisha J GarufiUnited KingdomOnyama Limba NEW
Aditya H WieserJapanElwin Sharvill QUALIFIED
Izzy H CaudyCanadaIoni Bowcher NEGOTIATION
Aika L RimArgentinaIoni Bowcher RENEWAL
Kaitlin B ChuiSpainBernardo Dominic UNQUALIFIED
Adams S OldroydAustraliaAnna Fali PROPOSAL
David Q OstroskyCanadaAnna Fali PROPOSAL
Leja H WaycottIndiaOnyama Limba UNQUALIFIED
Sinclair T IturbideIndiaIoni Bowcher PROPOSAL
Smith W SergiArgentinaBernardo Dominic RENEWAL
Mujtaba U OstroskyRussiaBernardo Dominic UNQUALIFIED
Isabel X VocelkaGermanyOnyama Limba NEW
James W ShinkoSpainOnyama Limba RENEWAL
Aditya K StockhamSpainAmy Elsner UNQUALIFIED
Kadeem W OstroskyCanadaIvan Magalhaes NEW
Morrow O VocelkaJapanBernardo Dominic QUALIFIED
Kaitlin I PoquetteItalyBernardo Dominic QUALIFIED
Munro O CaldareraSpainBernardo Dominic PROPOSAL
Frozen Columns
Name
Mayumi H Glick
Faith J Marrier
Rodrigues Z Ruta
Jennifer J Marrier
Jeanfrancois Y Shinko
Greenwood J Waycott
Antonio U Kusko
Ashley B Wieser
Rodrigues X Slusarski
Rodrigues X Bowley
Silvio O Slusarski
Morrow G Amigon
Ricardo H Nicka
Johnson A Venere
Deepesh C Morasca
Darci B Marrier
Wickens D Slusarski
Munro J Flosi
Arvin T Sergi
Leon B Doe
Wickens T Bolognia
Maria L Royster
Jeanfrancois I Whobrey
Ricardo C Doe
James V Maclead
Silvio R Malet
Jeanfrancois L Bolognia
Aditya Y Paprocki
Jones E Rim
Leon Y Ostrosky
Jeanfrancois A Bolognia
Maria D Butt
Silvio E Stockham
Nicolas Q Figeroa
Francesco H Doe
Claire Z Maclead
Johnson H Rim
Claire Q Slusarski
Rodrigues E Ruta
Salvatore D Darakjy
Wickens H Gaucho
Faith A Glick
Isabel M Royster
Munro D Ferencz
Costa D Briddick
Octavia A Briddick
Tony Z Shinko
Aika N Shinko
Morrow A Nicka
Tony X Stockham
IdCountryDate
1000Argentina2025-05-20
1001Australia2025-06-08
1002France2025-05-27
1003France2025-06-12
1004France2025-05-17
1005Australia2025-05-27
1006Germany2025-05-24
1007Spain2025-06-11
1008Spain2025-06-07
1009Spain2025-06-01
1010India2025-06-03
1011France2025-06-08
1012Canada2025-05-21
1013Australia2025-05-21
1014Australia2025-05-31
1015Russia2025-05-24
1016Germany2025-05-29
1017Spain2025-06-11
1018France2025-05-30
1019France2025-05-28
1020Canada2025-05-21
1021Canada2025-05-30
1022France2025-06-09
1023Canada2025-05-27
1024Australia2025-06-10
1025Russia2025-06-08
1026United Kingdom2025-06-04
1027India2025-06-02
1028Canada2025-06-10
1029Spain2025-05-19
1030Brazil2025-06-13
1031Argentina2025-05-30
1032India2025-05-24
1033Australia2025-05-30
1034France2025-05-30
1035India2025-05-17
1036Germany2025-06-15
1037Germany2025-06-13
1038Canada2025-05-29
1039Italy2025-06-12
1040Australia2025-05-21
1041India2025-06-14
1042France2025-05-29
1043Italy2025-05-30
1044Spain2025-05-21
1045Japan2025-05-17
1046France2025-06-12
1047Australia2025-06-11
1048Australia2025-05-19
1049Germany2025-05-18

On-Demand Data

NameIdCountryDate
Cody X Iturbide1000Australia2025-06-13
Jennifer C Bowley1001Japan2025-05-23
Wickens Z Flosi1002Japan2025-06-12
Murillo V Ostrosky1003Argentina2025-05-27
Jones E Doe1004France2025-06-05
Clifford N Ferencz1005Germany2025-05-31
Morrow H Butt1006Russia2025-05-20
Juan P Venere1007Italy2025-05-31
Octavia P Waycott1008Italy2025-05-31
Ivar T Glick1009Australia2025-06-15
Isabel N Stockham1010United Kingdom2025-05-22
Darci J Glick1011United Kingdom2025-05-30
Morrow U Sergi1012France2025-06-13
Octavia A Butt1013France2025-05-20
Claire A Kolmetz1014Argentina2025-06-02
Ricardo U Perin1015Russia2025-05-23
Greenwood F Albares1016Spain2025-06-11
Greenwood G Malet1017Argentina2025-05-30
Costa T Wieser1018Canada2025-05-25
Alejandro F Stockham1019Australia2025-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro F IturbideUnited KingdomStephen Shaw RENEWAL
Julie W PaprockiRussiaIoni Bowcher NEGOTIATION
Sinclair V DoeAustraliaBernardo Dominic NEGOTIATION
Leon M IturbideJapanStephen Shaw RENEWAL
Aika I NestleArgentinaIvan Magalhaes UNQUALIFIED
Alejandro V WaycottRussiaAmy Elsner RENEWAL
Claire U GlickRussiaIvan Magalhaes NEW
Aruna D FollerSpainAmy Elsner QUALIFIED
Morrow V MaletBrazilStephen Shaw NEGOTIATION
Faith O WaycottArgentinaBernardo Dominic RENEWAL
David D KuskoIndiaAmy Elsner QUALIFIED
Darci I AmigonFranceAsiya Javayant NEGOTIATION
Antonio U MarrierUnited KingdomBernardo Dominic NEW
Costa H NickaCanadaAmy Elsner PROPOSAL
Smith B VenereIndiaElwin Sharvill QUALIFIED
Leon H WaycottItalyAsiya Javayant NEGOTIATION
Rodrigues J VocelkaGermanyAmy Elsner QUALIFIED
Aruna O AlbaresBrazilXuxue Feng UNQUALIFIED
Arvin K GarufiGermanyOnyama Limba UNQUALIFIED
Greenwood O RutaArgentinaXuxue Feng QUALIFIED
Chavez I RimIndiaIvan Magalhaes NEW
Stacey L OstroskyRussiaXuxue Feng QUALIFIED
Ricardo U NestleIndiaIoni Bowcher NEW
Emily W PerinBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois Y DarakjyItalyAmy Elsner NEW
Jefferson H PoquetteSpainIvan Magalhaes NEGOTIATION
Emily U RulapaughBrazilAsiya Javayant QUALIFIED
Mayumi M ButtUnited KingdomOnyama Limba RENEWAL
Maisha A PoquetteRussiaBernardo Dominic NEW
Octavia J VocelkaSpainIoni Bowcher PROPOSAL
Jennifer B DilliardRussiaIvan Magalhaes NEGOTIATION
Jefferson Z NestleCanadaStephen Shaw NEGOTIATION
Francesco Q DilliardFranceIoni Bowcher QUALIFIED
Murillo Y DilliardRussiaAsiya Javayant PROPOSAL
David K SlusarskiFranceIoni Bowcher UNQUALIFIED
Isabel X DilliardCanadaOnyama Limba PROPOSAL
Ricardo H GlickIndiaOnyama Limba NEGOTIATION
Aditya K GillianSpainOnyama Limba PROPOSAL
Emily Z NestleArgentinaStephen Shaw QUALIFIED
Johnson W FollerAustraliaAsiya Javayant 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>