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
Kaitlin D DoeBrazilAsiya Javayant NEGOTIATION
Arvin Y MarrierJapanElwin Sharvill QUALIFIED
James Y SaylorsRussiaAsiya Javayant QUALIFIED
Maria H BowleyJapanAsiya Javayant RENEWAL
Leon S NickaCanadaAsiya Javayant PROPOSAL
Jones F GillianFranceStephen Shaw RENEWAL
Antonio K BriddickItalyAmy Elsner RENEWAL
Aika X NestleIndiaAsiya Javayant NEGOTIATION
Deepesh G StensethSpainOnyama Limba PROPOSAL
Morrow D CaldareraRussiaIoni Bowcher QUALIFIED
Julie W FlosiAustraliaElwin Sharvill RENEWAL
Mayumi Z KolmetzGermanyIvan Magalhaes PROPOSAL
Aruna Q GarufiRussiaElwin Sharvill NEGOTIATION
Francesco L KolmetzSpainAmy Elsner QUALIFIED
James C StensethCanadaIvan Magalhaes PROPOSAL
Arvin E IturbideAustraliaElwin Sharvill RENEWAL
Costa G BriddickRussiaIvan Magalhaes NEW
Rodrigues F ShinkoIndiaOnyama Limba NEW
Murillo U WaycottUnited KingdomXuxue Feng UNQUALIFIED
Leja O WaycottFranceIvan Magalhaes PROPOSAL
Jeanfrancois O FollerBrazilStephen Shaw RENEWAL
Jefferson N PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Misaki T CaudyGermanyElwin Sharvill PROPOSAL
Cody M AmigonGermanyXuxue Feng NEW
Munro C CaudyItalyStephen Shaw NEGOTIATION
Johnson H BriddickFranceStephen Shaw PROPOSAL
Rodrigues S PoquetteIndiaElwin Sharvill NEGOTIATION
Izzy J BriddickJapanAmy Elsner RENEWAL
Sinclair Q ChuiFranceXuxue Feng NEW
Deepesh W NickaJapanElwin Sharvill QUALIFIED
Arvin J CaudyUnited KingdomOnyama Limba RENEWAL
Ricardo W ShinkoSpainAmy Elsner NEGOTIATION
Jones Z AmigonJapanAmy Elsner UNQUALIFIED
Morrow O RulapaughJapanOnyama Limba NEGOTIATION
Leja A StockhamGermanyAnna Fali NEGOTIATION
Arvin M MacleadItalyIoni Bowcher PROPOSAL
David U NickaIndiaIvan Magalhaes UNQUALIFIED
Mayumi Q VenereIndiaOnyama Limba UNQUALIFIED
Ivar O InouyeUnited KingdomIvan Magalhaes NEW
Alejandro J BologniaJapanElwin Sharvill NEGOTIATION
Adams P AlbaresJapanIvan Magalhaes NEGOTIATION
Smith O KuskoIndiaAsiya Javayant RENEWAL
Tony D FerenczUnited KingdomAsiya Javayant QUALIFIED
Mayumi F ButtRussiaOnyama Limba QUALIFIED
Wickens B SlusarskiSpainElwin Sharvill PROPOSAL
Arvin I VenereSpainStephen Shaw QUALIFIED
Munro Y BriddickIndiaXuxue Feng NEW
Mujtaba X WieserRussiaStephen Shaw NEW
Julie G MaletGermanyOnyama Limba UNQUALIFIED
Ricardo M FigeroaCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood B GarufiArgentinaAnna Fali QUALIFIED
Smith R MaletFranceBernardo Dominic QUALIFIED
Juan I DilliardCanadaAsiya Javayant NEGOTIATION
Ashley Y BologniaItalyStephen Shaw RENEWAL
Francesco G RimJapanAnna Fali NEGOTIATION
Munro D FollerItalyAmy Elsner QUALIFIED
Antonio K VenereSpainAnna Fali RENEWAL
Ivar T GauchoItalyIvan Magalhaes UNQUALIFIED
Arvin X OstroskySpainElwin Sharvill NEW
Kadeem S RulapaughIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna I MaletIndia2026-08-14Morlong Associates UNQUALIFIED64Ioni Bowcher
1001Nicolas D PerinSpain2026-07-26Dorl, James J Esq RENEWAL93Amy Elsner
1002Jennifer M SergiSpain2026-08-17Rousseaux, Michael Esq UNQUALIFIED34Stephen Shaw
1003Ashley R MorascaArgentina2026-07-24Commercial Press UNQUALIFIED44Onyama Limba
1004Cody I CaldareraRussia2026-08-03Chemel, James L Cpa RENEWAL82Bernardo Dominic
1005Julie I WaycottUnited Kingdom2026-08-04Chanay, Jeffrey A Esq PROPOSAL29Bernardo Dominic
1006Maisha S BriddickArgentina2026-07-28Chanay, Jeffrey A Esq NEW50Elwin Sharvill
1007Morrow I RutaArgentina2026-08-15Commercial Press RENEWAL61Bernardo Dominic
1008Mujtaba T StensethArgentina2026-08-01Benton, John B Jr NEW12Ioni Bowcher
1009Isabel K SergiCanada2026-08-04Feiner Bros RENEWAL21Xuxue Feng
1010Mujtaba W CampainUnited Kingdom2026-07-26Rangoni Of Florence QUALIFIED80Onyama Limba
1011Alejandro X AlbaresIndia2026-08-17Commercial Press PROPOSAL47Elwin Sharvill
1012Leon F ButtBrazil2026-07-21Chemel, James L Cpa RENEWAL81Anna Fali
1013Clifford X ChuiAustralia2026-08-08Morlong Associates UNQUALIFIED81Asiya Javayant
1014Nicolas H ChuiFrance2026-07-24Feltz Printing Service NEGOTIATION94Asiya Javayant
1015Morrow I BriddickFrance2026-08-10Chemel, James L Cpa NEGOTIATION7Anna Fali
1016Leja M InouyeFrance2026-08-04Dorl, James J Esq NEW88Bernardo Dominic
1017Leja T IturbideCanada2026-08-17Printing Dimensions PROPOSAL95Stephen Shaw
1018Arvin V RutaJapan2026-07-23Feiner Bros NEW51Ivan Magalhaes
1019Wickens L CampainFrance2026-08-14Printing Dimensions PROPOSAL97Onyama Limba
1020Kadeem P GarufiIndia2026-08-11Chemel, James L Cpa UNQUALIFIED81Ivan Magalhaes
1021James I NickaJapan2026-08-16Chemel, James L Cpa UNQUALIFIED15Stephen Shaw
1022Cody X ChuiCanada2026-08-08Feiner Bros UNQUALIFIED4Ivan Magalhaes
1023Adams G SergiIndia2026-08-15Dorl, James J Esq NEW70Ivan Magalhaes
1024Kaitlin T SergiAustralia2026-08-12Chapman, Ross E Esq PROPOSAL64Anna Fali
1025Adams F SaylorsBrazil2026-07-24Chapman, Ross E Esq UNQUALIFIED99Anna Fali
1026Munro X FigeroaIndia2026-08-10Commercial Press RENEWAL47Bernardo Dominic
1027Rodrigues F MacleadItaly2026-08-08Buckley Miller Wright NEW74Elwin Sharvill
1028Claire B SlusarskiUnited Kingdom2026-07-26King, Christopher A Esq NEGOTIATION78Amy Elsner
1029James W IturbideIndia2026-07-30Commercial Press NEGOTIATION77Asiya Javayant
1030Arvin R GlickArgentina2026-07-31Rousseaux, Michael Esq PROPOSAL61Xuxue Feng
1031Leja V RulapaughUnited Kingdom2026-08-09Chemel, James L Cpa NEGOTIATION60Asiya Javayant
1032Octavia I RimJapan2026-07-24Buckley Miller Wright RENEWAL60Bernardo Dominic
1033Aika E FerenczGermany2026-08-06Feltz Printing Service RENEWAL88Stephen Shaw
1034Aika D PaprockiAustralia2026-08-07Chanay, Jeffrey A Esq PROPOSAL20Ivan Magalhaes
1035Julie F AlbaresArgentina2026-08-11Printing Dimensions NEGOTIATION25Elwin Sharvill
1036Leon H ChuiUnited Kingdom2026-07-25King, Christopher A Esq UNQUALIFIED38Ioni Bowcher
1037Deepesh C BologniaUnited Kingdom2026-07-20Commercial Press NEW88Xuxue Feng
1038Greenwood V NestleAustralia2026-07-30Truhlar And Truhlar Attys RENEWAL60Onyama Limba
1039Julie N BowleyGermany2026-08-04Benton, John B Jr RENEWAL6Onyama Limba
1040Sinclair B GarufiUnited Kingdom2026-08-02Chapman, Ross E Esq QUALIFIED47Amy Elsner
1041Maisha B GillianArgentina2026-07-20Benton, John B Jr UNQUALIFIED97Amy Elsner
1042Jefferson T RutaBrazil2026-08-01Chemel, James L Cpa QUALIFIED24Ioni Bowcher
1043Mujtaba F AmigonJapan2026-08-09Morlong Associates NEGOTIATION14Ioni Bowcher
1044Alejandro J MarrierItaly2026-08-16Rousseaux, Michael Esq UNQUALIFIED36Elwin Sharvill
1045Johnson K RimGermany2026-08-06Truhlar And Truhlar Attys UNQUALIFIED61Anna Fali
1046Leon G WhobreyIndia2026-08-03King, Christopher A Esq NEGOTIATION70Amy Elsner
1047Alejandro N CaldareraItaly2026-08-17Feiner Bros PROPOSAL54Xuxue Feng
1048Mayumi S NestleFrance2026-07-24Dorl, James J Esq PROPOSAL36Anna Fali
1049Murillo P RutaCanada2026-07-24Truhlar And Truhlar Attys QUALIFIED21Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Greenwood Q VenereSpainIvan Magalhaes NEGOTIATION
Cody Q StockhamJapanAmy Elsner QUALIFIED
Chavez Q ShinkoJapanIoni Bowcher PROPOSAL
Ricardo E MorascaFranceAnna Fali NEW
Stacey B DoeAustraliaAsiya Javayant UNQUALIFIED
David G RimFranceIoni Bowcher QUALIFIED
Morrow O ChuiGermanyIoni Bowcher UNQUALIFIED
James K RulapaughSpainOnyama Limba UNQUALIFIED
Faith S MorascaAustraliaAsiya Javayant PROPOSAL
Rodrigues F GillianUnited KingdomOnyama Limba RENEWAL
Jennifer V GauchoFranceAsiya Javayant NEGOTIATION
Misaki E CaudyGermanyAmy Elsner PROPOSAL
Isabel T RutaAustraliaElwin Sharvill RENEWAL
Stacey G StensethCanadaIoni Bowcher UNQUALIFIED
Wickens G ButtFranceBernardo Dominic RENEWAL
Kadeem I PerinAustraliaXuxue Feng NEW
Juan C CampainItalyIoni Bowcher NEGOTIATION
Stacey P IturbideBrazilAmy Elsner NEGOTIATION
Aika V PerinJapanOnyama Limba NEGOTIATION
Mujtaba M WieserCanadaAnna Fali PROPOSAL
Ivar K PaprockiFranceAnna Fali NEGOTIATION
Murillo E WaycottAustraliaAnna Fali PROPOSAL
James F SaylorsGermanyOnyama Limba RENEWAL
Nicolas B RutaAustraliaOnyama Limba RENEWAL
Jones P KuskoArgentinaXuxue Feng PROPOSAL
James S BowleyBrazilAmy Elsner RENEWAL
Darci A FlosiUnited KingdomAsiya Javayant RENEWAL
Ivar D FerenczGermanyIvan Magalhaes UNQUALIFIED
Stacey D InouyeFranceAsiya Javayant NEGOTIATION
Kadeem D AlbaresFranceOnyama Limba UNQUALIFIED
Aika T MarrierJapanAsiya Javayant UNQUALIFIED
Mayumi W OldroydArgentinaElwin Sharvill PROPOSAL
Costa L CampainArgentinaXuxue Feng NEGOTIATION
Jennifer L SaylorsJapanAmy Elsner NEGOTIATION
James Q WieserSpainIoni Bowcher RENEWAL
Wickens T ButtUnited KingdomAnna Fali NEW
Adams E FerenczAustraliaIvan Magalhaes RENEWAL
Juan S CaudyGermanyAsiya Javayant NEW
Nicolas P NestleCanadaAsiya Javayant NEW
Mayumi X NestleGermanyAsiya Javayant PROPOSAL
Ricardo L DilliardItalyStephen Shaw NEGOTIATION
Aditya C OldroydRussiaStephen Shaw UNQUALIFIED
Salvatore I FerenczIndiaAsiya Javayant QUALIFIED
Octavia T AlbaresBrazilIvan Magalhaes NEW
Deepesh A DilliardJapanIoni Bowcher NEGOTIATION
Chavez Q OldroydRussiaIoni Bowcher NEW
Nicolas J DarakjyBrazilOnyama Limba NEW
Mujtaba G PerinIndiaXuxue Feng NEW
Arvin O KuskoAustraliaXuxue Feng UNQUALIFIED
Maria Y AmigonJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Salvatore X Saylors
Sinclair Y Flosi
Cody W Caldarera
Greenwood B Slusarski
Juan M Schemmer
Leon Q Doe
James Q Morasca
Jennifer Q Stockham
Morrow O Malet
Jeanfrancois M Sergi
Aruna U Ruta
Cody E Kolmetz
Leja A Royster
Antonio I Campain
Aditya T Vocelka
Smith H Venere
Wickens M Stockham
Faith E Perin
Munro C Royster
Maria Q Whobrey
Johnson B Nestle
Greenwood N Dilliard
Aika N Caldarera
Jones V Poquette
Jones Z Bolognia
Julie F Doe
Deepesh M Nestle
Jones T Slusarski
Wickens X Morasca
Faith L Briddick
Maisha Z Venere
Mayumi K Rulapaugh
Clifford A Vocelka
Kaitlin D Vocelka
Johnson H Nestle
Faith W Marrier
Leja L Stockham
Misaki R Amigon
Kadeem I Tollner
Emily T Malet
Nicolas P Kusko
Tony F Ruta
Smith D Darakjy
Leja Y Tollner
James O Amigon
Maisha M Waycott
Sinclair E Inouye
Jones B Nestle
Johnson B Perin
Jeanfrancois K Kolmetz
IdCountryDate
1000Spain2026-07-22
1001Canada2026-07-27
1002Russia2026-08-10
1003United Kingdom2026-08-01
1004Germany2026-08-17
1005Italy2026-08-17
1006Italy2026-08-11
1007Spain2026-08-13
1008United Kingdom2026-07-27
1009France2026-08-02
1010Spain2026-07-21
1011India2026-08-18
1012Brazil2026-08-14
1013United Kingdom2026-08-17
1014France2026-07-25
1015Brazil2026-08-02
1016United Kingdom2026-08-14
1017Italy2026-07-27
1018Germany2026-07-27
1019Spain2026-08-16
1020Italy2026-08-13
1021Japan2026-07-28
1022Italy2026-07-24
1023Brazil2026-08-16
1024Germany2026-08-12
1025Italy2026-07-22
1026Italy2026-07-26
1027Australia2026-07-30
1028Germany2026-08-06
1029Spain2026-08-01
1030Australia2026-07-23
1031Argentina2026-08-16
1032United Kingdom2026-08-10
1033France2026-07-28
1034France2026-08-18
1035Russia2026-07-29
1036Argentina2026-08-08
1037Brazil2026-08-13
1038Italy2026-07-31
1039Russia2026-07-28
1040Brazil2026-08-15
1041Brazil2026-08-17
1042Canada2026-08-07
1043United Kingdom2026-07-27
1044France2026-08-13
1045Brazil2026-07-26
1046Spain2026-07-22
1047Japan2026-07-31
1048India2026-08-05
1049Argentina2026-08-01

On-Demand Data

NameIdCountryDate
Maria T Bowley1000Argentina2026-08-06
Ashley M Rim1001Brazil2026-08-09
Salvatore A Bolognia1002Argentina2026-07-28
Darci W Albares1003Canada2026-07-31
Maria V Dilliard1004Italy2026-07-27
Aditya G Oldroyd1005Brazil2026-07-23
Francesco S Shinko1006Russia2026-08-04
Jones W Stenseth1007Spain2026-08-09
Adams R Butt1008Germany2026-07-26
Nicolas B Paprocki1009Brazil2026-08-02
Francesco R Chui1010Germany2026-07-28
Octavia T Bolognia1011Russia2026-07-31
Jennifer O Gaucho1012Argentina2026-08-15
Alejandro Y Campain1013Japan2026-08-14
Deepesh M Figeroa1014Spain2026-08-10
Izzy C Inouye1015United Kingdom2026-07-24
Tony U Glick1016Italy2026-07-26
Misaki A Wieser1017Argentina2026-07-31
Mujtaba C Gaucho1018Russia2026-07-26
Darci W Bolognia1019Germany2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson O KuskoItalyAnna Fali NEW
Deepesh W BowleyIndiaBernardo Dominic NEW
Mujtaba Q StensethIndiaAnna Fali NEW
Jefferson G StockhamSpainStephen Shaw NEGOTIATION
Aditya K WieserIndiaElwin Sharvill NEW
Sinclair F SchemmerSpainBernardo Dominic UNQUALIFIED
Murillo V KuskoRussiaAnna Fali RENEWAL
Izzy K VocelkaRussiaBernardo Dominic RENEWAL
Cody E RutaCanadaStephen Shaw QUALIFIED
Izzy Z NestleAustraliaStephen Shaw NEGOTIATION
Isabel H VenereAustraliaBernardo Dominic NEW
Ricardo U VenereGermanyOnyama Limba NEGOTIATION
Clifford G ShinkoFranceAnna Fali PROPOSAL
Stacey V KolmetzBrazilXuxue Feng RENEWAL
Ivar N StockhamFranceXuxue Feng NEGOTIATION
Greenwood A RulapaughRussiaBernardo Dominic NEGOTIATION
Silvio W RimFranceIvan Magalhaes QUALIFIED
Leon Q ShinkoJapanBernardo Dominic UNQUALIFIED
Deepesh V ButtArgentinaAsiya Javayant QUALIFIED
Leon V NickaRussiaIvan Magalhaes PROPOSAL
Munro F KuskoRussiaAmy Elsner PROPOSAL
Stacey F PaprockiUnited KingdomIvan Magalhaes NEGOTIATION
Leon Z CampainSpainAnna Fali NEGOTIATION
Julie V StockhamAustraliaElwin Sharvill NEW
Rodrigues C SergiItalyOnyama Limba NEGOTIATION
Nicolas N MarrierItalyAmy Elsner UNQUALIFIED
Leon K SlusarskiUnited KingdomStephen Shaw NEW
Clifford D AmigonItalyAmy Elsner PROPOSAL
Faith J InouyeFranceIoni Bowcher UNQUALIFIED
Morrow S RoysterArgentinaIvan Magalhaes NEGOTIATION
Clifford X RoysterAustraliaIvan Magalhaes NEW
Ashley H MarrierBrazilAsiya Javayant UNQUALIFIED
Aruna X GillianSpainAsiya Javayant NEGOTIATION
Stacey P SergiFranceStephen Shaw UNQUALIFIED
Silvio M ShinkoUnited KingdomAsiya Javayant NEW
David X PerinGermanyAsiya Javayant NEW
Claire J SaylorsIndiaOnyama Limba NEW
Tony N OstroskyBrazilXuxue Feng RENEWAL
Greenwood R GarufiSpainOnyama Limba QUALIFIED
Morrow R WieserFranceBernardo Dominic 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>