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
Faith B FlosiGermanyAsiya Javayant PROPOSAL
Munro A DarakjyArgentinaStephen Shaw RENEWAL
Clifford H FollerItalyStephen Shaw QUALIFIED
Alejandro W GillianItalyOnyama Limba PROPOSAL
James L OldroydFranceStephen Shaw RENEWAL
Deepesh P GlickFranceStephen Shaw PROPOSAL
Arvin J WhobreyBrazilElwin Sharvill QUALIFIED
Cody Z BriddickBrazilAsiya Javayant QUALIFIED
Izzy Q InouyeGermanyElwin Sharvill NEW
Leon J NestleRussiaStephen Shaw PROPOSAL
Leja J SlusarskiArgentinaIvan Magalhaes RENEWAL
Jones P ShinkoAustraliaElwin Sharvill QUALIFIED
Arvin K CaldareraFranceAmy Elsner RENEWAL
Munro O OstroskyGermanyIvan Magalhaes UNQUALIFIED
Munro P GarufiRussiaIoni Bowcher QUALIFIED
Salvatore A NickaRussiaAsiya Javayant NEW
Clifford X BriddickCanadaXuxue Feng UNQUALIFIED
Maria Q GarufiRussiaBernardo Dominic NEW
Alejandro R PaprockiAustraliaIoni Bowcher NEW
Smith S CaldareraJapanAmy Elsner NEGOTIATION
Deepesh T VocelkaRussiaElwin Sharvill NEGOTIATION
Leja N PerinCanadaOnyama Limba QUALIFIED
Faith C KuskoRussiaIoni Bowcher UNQUALIFIED
Ivar W CaudyUnited KingdomAmy Elsner RENEWAL
Julie E VenereGermanyAsiya Javayant NEGOTIATION
Leja G DoeItalyIoni Bowcher QUALIFIED
David Y AlbaresBrazilElwin Sharvill NEW
Cody X RimArgentinaIvan Magalhaes NEW
Faith E MacleadJapanIvan Magalhaes UNQUALIFIED
Deepesh K WaycottArgentinaOnyama Limba RENEWAL
Jones O SchemmerArgentinaAnna Fali NEW
Johnson Y OldroydAustraliaElwin Sharvill NEW
Munro W ChuiArgentinaAnna Fali RENEWAL
Deepesh V SergiFranceOnyama Limba NEGOTIATION
Nicolas E CampainIndiaIoni Bowcher NEGOTIATION
Morrow A WaycottItalyStephen Shaw NEW
Deepesh P MaletUnited KingdomElwin Sharvill QUALIFIED
Aika V ChuiAustraliaOnyama Limba QUALIFIED
Octavia R KuskoAustraliaStephen Shaw QUALIFIED
Chavez J KolmetzSpainXuxue Feng RENEWAL
Chavez S GlickRussiaElwin Sharvill UNQUALIFIED
Ivar F IturbideSpainElwin Sharvill PROPOSAL
Morrow T NickaJapanStephen Shaw UNQUALIFIED
Ricardo L SergiSpainBernardo Dominic NEW
Mayumi G KuskoFranceStephen Shaw UNQUALIFIED
Faith C CaldareraGermanyStephen Shaw NEW
Murillo O DarakjyFranceIoni Bowcher NEW
Mayumi I RulapaughJapanAnna Fali RENEWAL
Silvio X KolmetzCanadaAsiya Javayant QUALIFIED
Aika G GauchoIndiaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues D SergiFranceAnna Fali NEGOTIATION
Silvio F OldroydArgentinaIvan Magalhaes UNQUALIFIED
Kadeem O PerinCanadaXuxue Feng QUALIFIED
Izzy V BologniaSpainIvan Magalhaes NEW
Cody B FerenczArgentinaAmy Elsner NEGOTIATION
Jennifer W RimUnited KingdomAnna Fali QUALIFIED
Wickens M NickaGermanyOnyama Limba NEGOTIATION
Aika K PerinBrazilXuxue Feng NEGOTIATION
Maisha T TollnerGermanyIoni Bowcher UNQUALIFIED
Deepesh C StensethUnited KingdomAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James P FollerAustralia2026-08-08Feltz Printing Service NEW89Stephen Shaw
1001Arvin G RutaBrazil2026-09-01Commercial Press NEW39Stephen Shaw
1002Smith T MarrierGermany2026-08-04Printing Dimensions QUALIFIED43Ioni Bowcher
1003Ricardo W IturbideUnited Kingdom2026-08-25Rousseaux, Michael Esq UNQUALIFIED40Elwin Sharvill
1004Aruna I RutaRussia2026-08-07King, Christopher A Esq QUALIFIED24Stephen Shaw
1005Francesco V WaycottIndia2026-09-01Truhlar And Truhlar Attys PROPOSAL94Xuxue Feng
1006Ricardo O FigeroaCanada2026-08-18Printing Dimensions PROPOSAL58Stephen Shaw
1007Aditya H WaycottItaly2026-08-19Feltz Printing Service UNQUALIFIED27Ivan Magalhaes
1008Arvin L MaletBrazil2026-08-06Rousseaux, Michael Esq RENEWAL92Asiya Javayant
1009James U BriddickGermany2026-08-09Truhlar And Truhlar Attys QUALIFIED69Xuxue Feng
1010Silvio K ButtSpain2026-08-12Feltz Printing Service QUALIFIED94Stephen Shaw
1011Leon Z FerenczGermany2026-09-02Truhlar And Truhlar Attys UNQUALIFIED98Xuxue Feng
1012Nicolas Q AlbaresRussia2026-08-16Chanay, Jeffrey A Esq RENEWAL63Ivan Magalhaes
1013Aditya Q DilliardUnited Kingdom2026-08-30Morlong Associates NEGOTIATION78Xuxue Feng
1014Ricardo D StensethItaly2026-08-12Commercial Press NEW32Amy Elsner
1015Kaitlin S FollerUnited Kingdom2026-08-15Chapman, Ross E Esq RENEWAL94Bernardo Dominic
1016Munro V SergiIndia2026-08-31Chanay, Jeffrey A Esq UNQUALIFIED92Bernardo Dominic
1017Tony U KuskoUnited Kingdom2026-08-04Morlong Associates NEW96Elwin Sharvill
1018Stacey K BowleyBrazil2026-08-23Dorl, James J Esq NEGOTIATION61Amy Elsner
1019Misaki R FlosiJapan2026-08-12King, Christopher A Esq RENEWAL91Ivan Magalhaes
1020Jefferson L SergiSpain2026-09-02Rousseaux, Michael Esq QUALIFIED95Asiya Javayant
1021Maisha N SlusarskiBrazil2026-08-07Chapman, Ross E Esq RENEWAL37Ioni Bowcher
1022Darci A RoysterRussia2026-08-06Morlong Associates NEGOTIATION19Elwin Sharvill
1023Arvin L GarufiCanada2026-08-25Printing Dimensions UNQUALIFIED26Ioni Bowcher
1024Adams Z CaldareraBrazil2026-08-16Chanay, Jeffrey A Esq NEW50Onyama Limba
1025Rodrigues E WhobreyRussia2026-08-04Rousseaux, Michael Esq QUALIFIED60Ivan Magalhaes
1026Munro Q MacleadItaly2026-08-16Morlong Associates PROPOSAL26Stephen Shaw
1027Alejandro B VenereSpain2026-08-26Benton, John B Jr NEW47Amy Elsner
1028Julie R FerenczIndia2026-08-26King, Christopher A Esq QUALIFIED72Elwin Sharvill
1029Jones A SchemmerSpain2026-08-06Chanay, Jeffrey A Esq NEW93Stephen Shaw
1030Maisha N RulapaughBrazil2026-08-24Feiner Bros NEW36Onyama Limba
1031Nicolas I MorascaFrance2026-08-23Benton, John B Jr NEW70Elwin Sharvill
1032Mayumi Y NestleJapan2026-09-02Benton, John B Jr NEGOTIATION33Bernardo Dominic
1033Leon X PoquetteItaly2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED33Amy Elsner
1034Jefferson G FollerItaly2026-08-04Chemel, James L Cpa UNQUALIFIED84Amy Elsner
1035Arvin Y AlbaresFrance2026-08-10King, Christopher A Esq PROPOSAL41Anna Fali
1036Murillo Y FollerIndia2026-08-16Morlong Associates NEW48Elwin Sharvill
1037James Q GlickUnited Kingdom2026-08-30Feiner Bros RENEWAL97Elwin Sharvill
1038Juan A SchemmerSpain2026-08-26Morlong Associates NEGOTIATION92Bernardo Dominic
1039Jones A AlbaresArgentina2026-08-20Rangoni Of Florence NEW77Xuxue Feng
1040Sinclair P SergiRussia2026-08-27Feiner Bros QUALIFIED25Bernardo Dominic
1041Johnson M DarakjyCanada2026-08-06Commercial Press NEGOTIATION79Stephen Shaw
1042Ivar V IturbideJapan2026-08-16Chapman, Ross E Esq NEW98Onyama Limba
1043Adams H CaudyAustralia2026-08-27Chapman, Ross E Esq UNQUALIFIED96Bernardo Dominic
1044Ricardo U MaletRussia2026-08-30Rousseaux, Michael Esq UNQUALIFIED11Amy Elsner
1045Izzy H ButtRussia2026-08-12Rousseaux, Michael Esq NEGOTIATION43Amy Elsner
1046Juan U AlbaresJapan2026-08-21Truhlar And Truhlar Attys QUALIFIED63Anna Fali
1047Tony K OldroydGermany2026-08-17Buckley Miller Wright QUALIFIED43Xuxue Feng
1048Ivar D ChuiUnited Kingdom2026-08-30Buckley Miller Wright QUALIFIED70Bernardo Dominic
1049Leon C FollerFrance2026-08-13Buckley Miller Wright QUALIFIED29Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson B OstroskyCanadaIvan Magalhaes NEW
Ivar R ButtGermanyAmy Elsner RENEWAL
Morrow P RoysterAustraliaAmy Elsner PROPOSAL
Clifford V MarrierGermanyElwin Sharvill NEGOTIATION
Octavia B AmigonAustraliaElwin Sharvill RENEWAL
Jeanfrancois Z RutaSpainAmy Elsner NEGOTIATION
Leja N GlickUnited KingdomElwin Sharvill RENEWAL
Alejandro X MorascaCanadaAsiya Javayant UNQUALIFIED
Darci N ChuiArgentinaBernardo Dominic PROPOSAL
Murillo D MorascaGermanyAnna Fali NEW
Stacey C MarrierCanadaAsiya Javayant UNQUALIFIED
Ashley A TollnerAustraliaStephen Shaw RENEWAL
Octavia Q DarakjyJapanXuxue Feng NEW
Kadeem E MaletItalyAsiya Javayant RENEWAL
Misaki O CaldareraArgentinaElwin Sharvill NEW
Aditya U NestleFranceIvan Magalhaes PROPOSAL
David N AmigonAustraliaBernardo Dominic UNQUALIFIED
Adams Y BowleyArgentinaStephen Shaw RENEWAL
Emily E MarrierIndiaAsiya Javayant PROPOSAL
Deepesh S GlickJapanBernardo Dominic PROPOSAL
Munro C FerenczSpainIoni Bowcher NEGOTIATION
Silvio R FigeroaSpainXuxue Feng NEGOTIATION
Cody U FollerBrazilElwin Sharvill QUALIFIED
Aditya M FollerUnited KingdomElwin Sharvill NEGOTIATION
Mayumi N BowleySpainIvan Magalhaes PROPOSAL
Rodrigues K GauchoSpainBernardo Dominic UNQUALIFIED
Chavez Y SlusarskiBrazilIoni Bowcher NEW
Claire N AmigonGermanyStephen Shaw QUALIFIED
Maria Y MorascaBrazilElwin Sharvill QUALIFIED
James R WhobreyGermanyAnna Fali QUALIFIED
Sinclair F RimGermanyOnyama Limba NEW
Murillo A FlosiItalyAnna Fali UNQUALIFIED
James Q DilliardUnited KingdomAmy Elsner UNQUALIFIED
Darci G MaletUnited KingdomElwin Sharvill PROPOSAL
Stacey K IturbideArgentinaOnyama Limba NEGOTIATION
Cody J ShinkoSpainIoni Bowcher UNQUALIFIED
Silvio V KuskoCanadaAsiya Javayant PROPOSAL
Chavez A DarakjyAustraliaXuxue Feng PROPOSAL
Salvatore M RutaJapanAsiya Javayant QUALIFIED
Deepesh D DarakjyBrazilAnna Fali NEW
Kaitlin F MacleadGermanyIvan Magalhaes RENEWAL
Darci Y SergiFranceXuxue Feng QUALIFIED
Adams C AlbaresArgentinaAsiya Javayant QUALIFIED
Leja K WhobreyFranceIoni Bowcher RENEWAL
Ashley J BologniaSpainIvan Magalhaes QUALIFIED
Murillo Z AlbaresArgentinaStephen Shaw RENEWAL
James C DarakjyRussiaElwin Sharvill UNQUALIFIED
Kadeem O KuskoRussiaXuxue Feng RENEWAL
Adams D PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Ricardo K CaldareraJapanBernardo Dominic QUALIFIED
Frozen Columns
Name
Kaitlin N Whobrey
Ashley X Saylors
Morrow I Ruta
Juan I Tollner
Kaitlin U Garufi
Alejandro G Chui
Munro I Dilliard
Izzy F Bowley
Clifford H Garufi
Jeanfrancois I Albares
Aika J Sergi
Wickens M Tollner
Sinclair V Rim
Antonio D Iturbide
Francesco F Shinko
Ricardo X Kolmetz
Rodrigues E Vocelka
Morrow C Malet
Mujtaba J Perin
Jeanfrancois Y Malet
Nicolas W Iturbide
Tony U Perin
Maisha W Ferencz
Deepesh Q Albares
Aika A Doe
Jennifer Z Oldroyd
Leon V Inouye
Murillo S Darakjy
Leon K Inouye
Mujtaba R Inouye
James X Sergi
Greenwood W Sergi
Francesco G Gillian
Leja X Saylors
Leon T Shinko
Costa F Whobrey
Jennifer T Malet
Jefferson D Vocelka
Isabel Y Dilliard
Aditya L Shinko
Wickens R Doe
Arvin O Sergi
Claire S Schemmer
Octavia U Malet
Tony G Shinko
Jones X Bowley
Maria F Venere
Greenwood M Stockham
Julie G Glick
Jefferson U Marrier
IdCountryDate
1000France2026-08-26
1001Canada2026-08-25
1002Germany2026-08-22
1003France2026-09-01
1004Italy2026-08-17
1005Argentina2026-08-06
1006Germany2026-08-22
1007Spain2026-08-20
1008Italy2026-08-13
1009Australia2026-08-22
1010Argentina2026-08-28
1011India2026-08-12
1012Argentina2026-08-12
1013United Kingdom2026-08-04
1014Germany2026-08-17
1015United Kingdom2026-08-15
1016Spain2026-08-18
1017France2026-08-30
1018Spain2026-08-15
1019India2026-08-05
1020Canada2026-08-07
1021Australia2026-08-31
1022Argentina2026-09-02
1023Canada2026-08-06
1024Canada2026-08-26
1025United Kingdom2026-09-01
1026Australia2026-08-05
1027Brazil2026-08-30
1028Spain2026-08-27
1029Spain2026-08-21
1030France2026-08-14
1031Argentina2026-08-30
1032United Kingdom2026-08-14
1033Australia2026-08-17
1034India2026-08-15
1035Brazil2026-08-26
1036Argentina2026-08-29
1037India2026-08-13
1038Japan2026-08-09
1039Germany2026-08-26
1040India2026-09-01
1041Argentina2026-08-05
1042United Kingdom2026-08-21
1043Russia2026-08-16
1044Argentina2026-08-18
1045Russia2026-08-10
1046India2026-08-11
1047India2026-08-06
1048Australia2026-08-12
1049Brazil2026-08-17

On-Demand Data

NameIdCountryDate
Mujtaba E Dilliard1000Australia2026-08-30
Misaki G Foller1001Russia2026-08-23
Claire N Ruta1002Germany2026-08-28
Tony F Bolognia1003Argentina2026-08-23
Cody K Bowley1004Argentina2026-08-21
Mayumi L Darakjy1005United Kingdom2026-08-07
Clifford Z Nicka1006Germany2026-08-25
Kadeem Q Flosi1007Australia2026-08-21
Aika C Kolmetz1008Italy2026-08-19
Rodrigues F Stenseth1009Canada2026-08-24
Isabel R Marrier1010United Kingdom2026-08-14
Juan H Malet1011Japan2026-08-31
Jones S Glick1012Spain2026-08-07
Jefferson G Bowley1013India2026-08-24
Rodrigues U Butt1014Brazil2026-08-28
Murillo N Perin1015Japan2026-08-28
Emily U Dilliard1016United Kingdom2026-08-25
Salvatore S Flosi1017United Kingdom2026-08-28
Mujtaba P Nestle1018Germany2026-08-26
Emily S Caudy1019Japan2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo P RimCanadaElwin Sharvill UNQUALIFIED
Leja J StensethIndiaIvan Magalhaes PROPOSAL
Kaitlin G ShinkoIndiaAmy Elsner QUALIFIED
Alejandro A CaldareraJapanStephen Shaw PROPOSAL
Leja V ShinkoJapanBernardo Dominic RENEWAL
Munro Z PaprockiCanadaAnna Fali NEW
James K RutaJapanAnna Fali RENEWAL
Deepesh P CaldareraGermanyStephen Shaw RENEWAL
Alejandro V ShinkoCanadaBernardo Dominic RENEWAL
Julie T TollnerCanadaAsiya Javayant QUALIFIED
Johnson M WieserCanadaIvan Magalhaes UNQUALIFIED
Emily K KolmetzRussiaAnna Fali NEW
Julie P WaycottCanadaXuxue Feng QUALIFIED
Claire V KolmetzItalyIoni Bowcher QUALIFIED
Mayumi D PoquetteGermanyOnyama Limba UNQUALIFIED
Ivar B DarakjyRussiaStephen Shaw PROPOSAL
Mujtaba Y NestleRussiaOnyama Limba NEGOTIATION
Johnson L ChuiGermanyStephen Shaw NEGOTIATION
Faith T FerenczBrazilElwin Sharvill PROPOSAL
Silvio E KolmetzGermanyStephen Shaw RENEWAL
Antonio B BowleyIndiaAnna Fali PROPOSAL
Sinclair E SaylorsItalyIvan Magalhaes QUALIFIED
Arvin B SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Johnson G VenereJapanAsiya Javayant QUALIFIED
Leja D FlosiBrazilIoni Bowcher NEW
Francesco L VocelkaItalyAsiya Javayant UNQUALIFIED
Smith S GarufiJapanAnna Fali QUALIFIED
Greenwood J SaylorsSpainIoni Bowcher NEGOTIATION
Cody W BologniaItalyAsiya Javayant QUALIFIED
Deepesh U InouyeArgentinaAmy Elsner PROPOSAL
Claire O FerenczGermanyIvan Magalhaes RENEWAL
Smith R NestleGermanyAsiya Javayant NEW
Antonio M MacleadFranceAmy Elsner PROPOSAL
Tony V NickaItalyOnyama Limba UNQUALIFIED
Emily U RoysterRussiaAmy Elsner NEGOTIATION
James M SaylorsGermanyAmy Elsner NEW
Nicolas U FerenczBrazilIvan Magalhaes PROPOSAL
Silvio C RoysterJapanBernardo Dominic PROPOSAL
Ivar F VenereCanadaAmy Elsner UNQUALIFIED
Mayumi K GlickFranceAsiya Javayant 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>