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
Isabel K StensethAustraliaStephen Shaw QUALIFIED
Faith Z VenereItalyOnyama Limba NEW
Izzy J CaudyIndiaElwin Sharvill QUALIFIED
Silvio B MacleadIndiaBernardo Dominic QUALIFIED
Munro G ChuiArgentinaOnyama Limba QUALIFIED
Jeanfrancois U ButtJapanOnyama Limba PROPOSAL
Costa Z ShinkoRussiaStephen Shaw RENEWAL
Juan K DilliardGermanyXuxue Feng PROPOSAL
David M CaudyFranceIvan Magalhaes QUALIFIED
Silvio H MorascaJapanIvan Magalhaes NEGOTIATION
Sinclair K PerinItalyElwin Sharvill NEGOTIATION
Juan P RulapaughSpainIvan Magalhaes UNQUALIFIED
Aruna X CaudyJapanBernardo Dominic UNQUALIFIED
Silvio S BologniaGermanyIvan Magalhaes NEW
Ashley O CaudyBrazilAmy Elsner RENEWAL
Octavia I VenereArgentinaAsiya Javayant QUALIFIED
Murillo G RoysterSpainElwin Sharvill NEGOTIATION
Ivar Y WieserIndiaBernardo Dominic NEW
Leja Q SaylorsItalyElwin Sharvill NEGOTIATION
Jones A BologniaCanadaXuxue Feng RENEWAL
Jeanfrancois O WieserItalyBernardo Dominic PROPOSAL
Leon B StensethIndiaAmy Elsner QUALIFIED
Jennifer E DoeIndiaOnyama Limba NEW
Adams W SchemmerArgentinaAsiya Javayant UNQUALIFIED
Murillo T IturbideGermanyIvan Magalhaes PROPOSAL
Clifford X DoeSpainStephen Shaw NEW
Salvatore B InouyeFranceBernardo Dominic PROPOSAL
Maria D CaldareraUnited KingdomXuxue Feng NEGOTIATION
Leja M SlusarskiFranceStephen Shaw NEW
Isabel N BowleyAustraliaIoni Bowcher NEGOTIATION
Munro G KolmetzSpainOnyama Limba PROPOSAL
Johnson M MaletRussiaAsiya Javayant NEW
Morrow E KuskoArgentinaStephen Shaw NEW
Murillo X WaycottUnited KingdomElwin Sharvill NEW
Mayumi U OstroskySpainAnna Fali NEGOTIATION
Jones S AmigonIndiaStephen Shaw QUALIFIED
Aditya A GarufiAustraliaIvan Magalhaes NEGOTIATION
Juan O CaldareraIndiaIoni Bowcher UNQUALIFIED
Salvatore B ButtSpainAsiya Javayant QUALIFIED
Leon I PaprockiBrazilAnna Fali QUALIFIED
Maisha L StockhamRussiaOnyama Limba NEW
Juan T MacleadAustraliaBernardo Dominic NEGOTIATION
Leja Y VocelkaFranceStephen Shaw NEGOTIATION
Jones N MarrierArgentinaXuxue Feng PROPOSAL
Costa N AlbaresBrazilAmy Elsner PROPOSAL
James J WaycottSpainStephen Shaw RENEWAL
Julie R MacleadFranceElwin Sharvill UNQUALIFIED
Rodrigues F TollnerRussiaElwin Sharvill UNQUALIFIED
James D OldroydBrazilStephen Shaw UNQUALIFIED
Aditya L IturbideCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Leja D RutaIndiaAsiya Javayant PROPOSAL
Salvatore R SchemmerBrazilAnna Fali RENEWAL
Silvio N KuskoIndiaIoni Bowcher NEW
Kaitlin M AlbaresCanadaXuxue Feng PROPOSAL
Mayumi W SaylorsBrazilAsiya Javayant QUALIFIED
Misaki F KolmetzIndiaXuxue Feng RENEWAL
Maria D FollerFranceStephen Shaw QUALIFIED
Faith V InouyeItalyStephen Shaw QUALIFIED
Mujtaba S WaycottJapanOnyama Limba PROPOSAL
Faith R PaprockiCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith P GlickRussia2026-08-23Morlong Associates RENEWAL15Xuxue Feng
1001Leon Q AlbaresUnited Kingdom2026-08-31Buckley Miller Wright PROPOSAL1Asiya Javayant
1002Faith Y RutaSpain2026-08-04Truhlar And Truhlar Attys RENEWAL75Ioni Bowcher
1003Maisha Z StensethFrance2026-08-15Feiner Bros QUALIFIED91Elwin Sharvill
1004David W OldroydCanada2026-08-25Feiner Bros QUALIFIED86Stephen Shaw
1005Maria M FerenczGermany2026-08-18Feiner Bros NEGOTIATION78Bernardo Dominic
1006Clifford R AmigonUnited Kingdom2026-08-10Chemel, James L Cpa RENEWAL27Ioni Bowcher
1007Aika E DoeUnited Kingdom2026-09-02King, Christopher A Esq PROPOSAL83Anna Fali
1008Faith R VenereJapan2026-08-28Commercial Press QUALIFIED12Elwin Sharvill
1009Adams R WaycottSpain2026-08-27Chanay, Jeffrey A Esq NEW94Ivan Magalhaes
1010Francesco W DoeItaly2026-08-18Rangoni Of Florence NEW61Ioni Bowcher
1011Mayumi H MarrierAustralia2026-08-13Truhlar And Truhlar Attys RENEWAL41Xuxue Feng
1012Sinclair I DarakjyRussia2026-08-10Chapman, Ross E Esq QUALIFIED6Stephen Shaw
1013Munro B SlusarskiAustralia2026-08-30Chanay, Jeffrey A Esq RENEWAL61Asiya Javayant
1014Costa I WieserGermany2026-08-25Dorl, James J Esq QUALIFIED54Bernardo Dominic
1015Maria F StockhamBrazil2026-08-27King, Christopher A Esq RENEWAL62Asiya Javayant
1016Kaitlin V SaylorsArgentina2026-08-07Feltz Printing Service RENEWAL22Stephen Shaw
1017Emily Q InouyeCanada2026-08-11Feltz Printing Service NEW18Stephen Shaw
1018Arvin I InouyeAustralia2026-08-04Feiner Bros PROPOSAL1Elwin Sharvill
1019Emily U KuskoGermany2026-08-07Buckley Miller Wright NEGOTIATION94Stephen Shaw
1020Johnson D VenereRussia2026-08-25Dorl, James J Esq QUALIFIED37Stephen Shaw
1021Mayumi Y VenereItaly2026-08-18Chanay, Jeffrey A Esq UNQUALIFIED5Onyama Limba
1022Jennifer F WhobreyIndia2026-08-19Dorl, James J Esq PROPOSAL97Bernardo Dominic
1023Nicolas M ChuiAustralia2026-08-08Chapman, Ross E Esq PROPOSAL3Onyama Limba
1024Ricardo O PerinJapan2026-08-24Rousseaux, Michael Esq UNQUALIFIED10Ivan Magalhaes
1025Chavez I ShinkoRussia2026-08-07Feiner Bros NEGOTIATION35Anna Fali
1026Francesco D GillianArgentina2026-08-08Feiner Bros QUALIFIED55Ivan Magalhaes
1027Aditya B GarufiBrazil2026-08-24Rangoni Of Florence NEW21Asiya Javayant
1028Rodrigues H MorascaFrance2026-08-29Feiner Bros RENEWAL89Anna Fali
1029Rodrigues R DoeIndia2026-08-05Chemel, James L Cpa UNQUALIFIED69Amy Elsner
1030Rodrigues L FollerFrance2026-08-28Rangoni Of Florence RENEWAL89Ivan Magalhaes
1031Greenwood I InouyeBrazil2026-08-31Chanay, Jeffrey A Esq QUALIFIED41Ioni Bowcher
1032Aditya B BowleyRussia2026-08-29Truhlar And Truhlar Attys UNQUALIFIED74Anna Fali
1033Deepesh U VocelkaRussia2026-08-04Chanay, Jeffrey A Esq QUALIFIED13Ivan Magalhaes
1034Izzy A SergiGermany2026-08-18Feiner Bros NEW60Stephen Shaw
1035Maria M MarrierSpain2026-08-09Printing Dimensions QUALIFIED95Elwin Sharvill
1036Claire F VocelkaArgentina2026-08-23Feltz Printing Service QUALIFIED4Xuxue Feng
1037Maisha S WaycottBrazil2026-08-30Feiner Bros NEGOTIATION83Bernardo Dominic
1038Adams G SlusarskiIndia2026-08-30Rousseaux, Michael Esq UNQUALIFIED10Elwin Sharvill
1039Faith W DoeRussia2026-08-28Benton, John B Jr NEGOTIATION62Amy Elsner
1040Misaki R OstroskyUnited Kingdom2026-08-05Rousseaux, Michael Esq PROPOSAL53Xuxue Feng
1041Ashley X CaldareraRussia2026-08-26Commercial Press NEGOTIATION88Bernardo Dominic
1042Clifford M VocelkaRussia2026-08-09Truhlar And Truhlar Attys QUALIFIED22Stephen Shaw
1043Antonio X WaycottJapan2026-08-31Buckley Miller Wright QUALIFIED74Asiya Javayant
1044James N ShinkoSpain2026-08-14Truhlar And Truhlar Attys NEGOTIATION3Elwin Sharvill
1045Adams S WieserCanada2026-08-08Dorl, James J Esq NEW15Asiya Javayant
1046Chavez R FigeroaJapan2026-08-20Feltz Printing Service QUALIFIED61Ioni Bowcher
1047Silvio Z FerenczCanada2026-08-21Commercial Press NEGOTIATION25Anna Fali
1048Mujtaba N KuskoItaly2026-08-31Printing Dimensions NEGOTIATION4Asiya Javayant
1049Francesco B SlusarskiRussia2026-08-31Commercial Press NEGOTIATION49Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kadeem H ShinkoFranceAmy Elsner PROPOSAL
Alejandro Q DilliardGermanyAsiya Javayant UNQUALIFIED
Faith M KuskoArgentinaIoni Bowcher UNQUALIFIED
Leon S NickaRussiaAsiya Javayant NEW
Francesco B MaletBrazilElwin Sharvill UNQUALIFIED
Greenwood V DoeIndiaOnyama Limba QUALIFIED
Claire E FlosiCanadaStephen Shaw UNQUALIFIED
Antonio D GlickItalyElwin Sharvill RENEWAL
Ivar I GarufiArgentinaElwin Sharvill PROPOSAL
Deepesh N PaprockiRussiaAmy Elsner QUALIFIED
Jennifer I StensethIndiaAmy Elsner NEW
Clifford V PaprockiIndiaAnna Fali RENEWAL
Darci S BriddickItalyStephen Shaw UNQUALIFIED
Misaki N PoquetteFranceIoni Bowcher RENEWAL
Juan X KolmetzCanadaBernardo Dominic QUALIFIED
Rodrigues F SergiItalyIoni Bowcher NEGOTIATION
Ricardo J GillianUnited KingdomIvan Magalhaes NEW
Leja I StensethAustraliaXuxue Feng UNQUALIFIED
Octavia V GarufiFranceAsiya Javayant UNQUALIFIED
Murillo T IturbideRussiaAnna Fali NEGOTIATION
Antonio G VenereRussiaAnna Fali UNQUALIFIED
Stacey W VocelkaJapanIvan Magalhaes PROPOSAL
Murillo W StensethCanadaAnna Fali UNQUALIFIED
Ricardo Q MacleadGermanyIoni Bowcher PROPOSAL
Isabel M BriddickItalyIoni Bowcher QUALIFIED
Mayumi R SaylorsBrazilElwin Sharvill NEW
Sinclair M FigeroaCanadaAsiya Javayant QUALIFIED
Johnson V ButtAustraliaOnyama Limba QUALIFIED
Rodrigues N RoysterAustraliaAsiya Javayant RENEWAL
Greenwood E RoysterFranceAmy Elsner RENEWAL
Maria L BriddickGermanyStephen Shaw NEGOTIATION
Isabel Z CampainIndiaAmy Elsner RENEWAL
Faith V RoysterRussiaAsiya Javayant NEW
Sinclair K CampainFranceIvan Magalhaes QUALIFIED
Mayumi M DarakjyItalyOnyama Limba NEGOTIATION
Ivar U KuskoGermanyBernardo Dominic NEW
Darci A DoeAustraliaAsiya Javayant NEW
Darci G MacleadBrazilAsiya Javayant UNQUALIFIED
Misaki P OstroskyGermanyAsiya Javayant PROPOSAL
Adams B FlosiIndiaAnna Fali NEW
Claire P ButtRussiaStephen Shaw UNQUALIFIED
Antonio U SaylorsAustraliaAmy Elsner RENEWAL
Octavia U AlbaresBrazilIvan Magalhaes RENEWAL
Silvio F RulapaughAustraliaStephen Shaw QUALIFIED
Chavez E PerinItalyElwin Sharvill UNQUALIFIED
Morrow J ChuiFranceBernardo Dominic RENEWAL
Stacey B GlickIndiaStephen Shaw UNQUALIFIED
Rodrigues A ShinkoIndiaBernardo Dominic NEW
Munro O IturbideBrazilIoni Bowcher NEW
Alejandro O FigeroaFranceIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Adams C Waycott
Maisha J Marrier
Ricardo G Amigon
Deepesh Y Stockham
Silvio P Butt
Arvin W Ostrosky
Izzy V Whobrey
Aika B Garufi
Isabel B Venere
Wickens Y Gillian
Kadeem T Caldarera
Tony S Doe
Cody J Darakjy
Maria Q Malet
Morrow R Darakjy
Deepesh O Whobrey
Jefferson R Maclead
Clifford D Inouye
Sinclair D Vocelka
Antonio K Caldarera
Adams I Schemmer
Adams T Rulapaugh
Silvio X Foller
Silvio L Doe
Ivar T Doe
Nicolas U Morasca
Aika R Gillian
Alejandro L Rulapaugh
Silvio Q Stockham
Kaitlin G Albares
Izzy L Schemmer
Sinclair V Iturbide
Jeanfrancois E Briddick
Silvio R Royster
Arvin B Saylors
Antonio W Morasca
Stacey Q Gaucho
Antonio F Rulapaugh
Silvio G Bolognia
Tony Z Waycott
Ivar F Caudy
Jeanfrancois H Kusko
Maria G Campain
Cody J Chui
Greenwood O Butt
Silvio D Glick
Leon P Poquette
Munro U Malet
Arvin R Chui
Mujtaba P Royster
IdCountryDate
1000India2026-09-02
1001Japan2026-08-21
1002Australia2026-08-27
1003Germany2026-08-24
1004India2026-09-01
1005Australia2026-08-10
1006Germany2026-08-24
1007France2026-08-31
1008France2026-08-13
1009Argentina2026-08-25
1010Japan2026-08-28
1011Japan2026-08-26
1012Germany2026-08-13
1013Canada2026-08-22
1014Spain2026-08-20
1015United Kingdom2026-09-01
1016Russia2026-08-15
1017Australia2026-08-04
1018Brazil2026-08-29
1019Argentina2026-08-06
1020United Kingdom2026-08-14
1021Australia2026-08-05
1022France2026-08-28
1023Japan2026-08-22
1024Japan2026-08-21
1025Australia2026-08-16
1026Italy2026-08-11
1027United Kingdom2026-08-18
1028United Kingdom2026-08-16
1029United Kingdom2026-08-10
1030Germany2026-08-05
1031Italy2026-08-18
1032Australia2026-08-11
1033Germany2026-08-14
1034United Kingdom2026-08-21
1035India2026-08-15
1036France2026-08-23
1037France2026-08-21
1038India2026-08-24
1039Italy2026-08-09
1040Argentina2026-08-09
1041Spain2026-08-23
1042Russia2026-08-18
1043India2026-08-09
1044Canada2026-08-27
1045United Kingdom2026-08-31
1046Japan2026-08-09
1047United Kingdom2026-08-13
1048Canada2026-08-17
1049Japan2026-08-25

On-Demand Data

NameIdCountryDate
Octavia V Stenseth1000Japan2026-08-21
Salvatore T Nestle1001Italy2026-08-11
Leja E Saylors1002Australia2026-08-28
Antonio Y Albares1003Russia2026-08-07
Maisha C Ostrosky1004Canada2026-08-25
Munro T Briddick1005Brazil2026-08-11
Johnson V Venere1006Spain2026-08-21
Jefferson X Campain1007Brazil2026-08-10
Nicolas Q Schemmer1008Italy2026-08-04
Kaitlin P Sergi1009Brazil2026-08-30
Cody R Saylors1010Germany2026-08-16
Antonio B Caudy1011India2026-08-25
Salvatore I Perin1012Japan2026-08-05
Juan S Schemmer1013Italy2026-08-22
Maria J Figeroa1014Australia2026-08-06
Leon C Poquette1015Germany2026-08-22
Murillo F Kolmetz1016Spain2026-08-26
Jeanfrancois T Saylors1017Brazil2026-08-14
Johnson N Caldarera1018France2026-08-20
Jennifer D Tollner1019Brazil2026-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio D VenereIndiaStephen Shaw UNQUALIFIED
Aruna C WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Octavia K SaylorsFranceIvan Magalhaes NEGOTIATION
Rodrigues E MaletIndiaAsiya Javayant PROPOSAL
Nicolas R DarakjyBrazilAmy Elsner UNQUALIFIED
Jefferson C KuskoAustraliaXuxue Feng NEW
Tony H WhobreySpainStephen Shaw UNQUALIFIED
Ashley J FigeroaGermanyOnyama Limba NEGOTIATION
Maisha B RulapaughAustraliaIvan Magalhaes NEGOTIATION
James W DarakjyJapanAnna Fali UNQUALIFIED
Aditya F SchemmerBrazilOnyama Limba PROPOSAL
Aika B FerenczUnited KingdomOnyama Limba NEW
Sinclair I RimAustraliaXuxue Feng RENEWAL
Rodrigues D FlosiJapanAmy Elsner RENEWAL
Jones I DilliardFranceElwin Sharvill UNQUALIFIED
Costa K GauchoGermanyAnna Fali NEGOTIATION
Francesco U RulapaughIndiaElwin Sharvill NEW
Claire W WhobreyAustraliaXuxue Feng PROPOSAL
Johnson M PoquetteFranceAsiya Javayant UNQUALIFIED
Kadeem G OldroydGermanyIvan Magalhaes NEW
Jennifer X RoysterArgentinaAsiya Javayant NEW
Misaki J NestleCanadaAnna Fali PROPOSAL
Wickens X ChuiUnited KingdomElwin Sharvill QUALIFIED
Silvio N VocelkaItalyAsiya Javayant UNQUALIFIED
Arvin M RoysterSpainAnna Fali NEGOTIATION
Salvatore B FerenczItalyElwin Sharvill PROPOSAL
Deepesh D ShinkoGermanyAsiya Javayant NEW
Kadeem R OstroskySpainAmy Elsner QUALIFIED
Johnson R KuskoItalyStephen Shaw NEW
James I InouyeAustraliaAsiya Javayant RENEWAL
Salvatore B WhobreyCanadaIoni Bowcher PROPOSAL
Leon C OstroskyBrazilXuxue Feng UNQUALIFIED
Mujtaba O RoysterBrazilBernardo Dominic PROPOSAL
Jefferson E MaletGermanyAnna Fali QUALIFIED
Stacey F GlickCanadaAsiya Javayant NEW
Silvio R DarakjyItalyElwin Sharvill QUALIFIED
Deepesh X MorascaSpainBernardo Dominic UNQUALIFIED
Julie Z GauchoUnited KingdomIvan Magalhaes QUALIFIED
Cody O DoeFranceAnna Fali PROPOSAL
Chavez A PoquetteItalyBernardo Dominic PROPOSAL

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