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
Aika U CaldareraArgentinaAsiya Javayant PROPOSAL
Ivar X DilliardBrazilAnna Fali NEW
Maisha G AlbaresBrazilAmy Elsner PROPOSAL
Salvatore N MarrierGermanyStephen Shaw UNQUALIFIED
Mayumi Q FigeroaArgentinaStephen Shaw NEGOTIATION
Clifford D ShinkoItalyIvan Magalhaes QUALIFIED
David O DilliardGermanyAsiya Javayant NEW
Juan Q FigeroaArgentinaOnyama Limba UNQUALIFIED
Deepesh Z BriddickArgentinaOnyama Limba UNQUALIFIED
Kadeem Z MacleadAustraliaElwin Sharvill UNQUALIFIED
Tony J GillianCanadaElwin Sharvill NEW
Munro X InouyeSpainXuxue Feng PROPOSAL
Aditya K SlusarskiJapanAmy Elsner PROPOSAL
Murillo J OldroydIndiaIoni Bowcher NEW
Mayumi H SlusarskiSpainIoni Bowcher NEGOTIATION
Aika S FlosiIndiaIoni Bowcher PROPOSAL
David Z ChuiFranceElwin Sharvill NEGOTIATION
Salvatore V BriddickBrazilAsiya Javayant NEGOTIATION
James W GauchoBrazilStephen Shaw UNQUALIFIED
Morrow T KolmetzUnited KingdomElwin Sharvill QUALIFIED
Isabel Z WieserIndiaBernardo Dominic RENEWAL
Antonio I NickaBrazilOnyama Limba PROPOSAL
Leja W BowleySpainIoni Bowcher NEGOTIATION
Cody J FollerItalyIvan Magalhaes NEGOTIATION
Darci X SergiJapanAsiya Javayant NEGOTIATION
Jennifer Z MaletArgentinaBernardo Dominic RENEWAL
Ivar F SlusarskiIndiaBernardo Dominic QUALIFIED
Francesco X TollnerRussiaAmy Elsner NEGOTIATION
Greenwood G SlusarskiArgentinaStephen Shaw PROPOSAL
Arvin Q VenereUnited KingdomAsiya Javayant QUALIFIED
Greenwood N NickaItalyOnyama Limba NEGOTIATION
Cody T WieserGermanyBernardo Dominic PROPOSAL
Jones Z WaycottArgentinaStephen Shaw UNQUALIFIED
Jeanfrancois I NickaRussiaIoni Bowcher NEGOTIATION
Salvatore S DarakjyArgentinaAsiya Javayant NEGOTIATION
Arvin L CampainSpainStephen Shaw RENEWAL
Adams E PoquetteGermanyIvan Magalhaes PROPOSAL
James N PoquetteIndiaAnna Fali UNQUALIFIED
Claire K SlusarskiItalyAnna Fali UNQUALIFIED
Leja G ChuiJapanAnna Fali PROPOSAL
Jeanfrancois G MaletIndiaXuxue Feng QUALIFIED
Kadeem Q WaycottCanadaIvan Magalhaes UNQUALIFIED
Smith X GlickGermanyAsiya Javayant RENEWAL
Deepesh J KolmetzJapanAnna Fali RENEWAL
David M OldroydSpainElwin Sharvill RENEWAL
Faith R VenereAustraliaAsiya Javayant PROPOSAL
Aruna O SaylorsSpainStephen Shaw NEW
Jefferson N OstroskySpainXuxue Feng NEGOTIATION
Clifford J FerenczUnited KingdomAnna Fali RENEWAL
Jeanfrancois W KolmetzRussiaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez S GauchoUnited KingdomAmy Elsner NEW
Aditya U SlusarskiIndiaAnna Fali NEW
Jennifer Z RulapaughCanadaIoni Bowcher PROPOSAL
Ivar M BriddickCanadaOnyama Limba UNQUALIFIED
Arvin C RulapaughAustraliaAmy Elsner PROPOSAL
Leon S RulapaughRussiaIvan Magalhaes QUALIFIED
Kaitlin Q GauchoIndiaOnyama Limba QUALIFIED
Wickens M RulapaughUnited KingdomAnna Fali RENEWAL
Mujtaba P MaletAustraliaBernardo Dominic PROPOSAL
Emily S MarrierGermanyElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan P SaylorsUnited Kingdom2026-07-19Morlong Associates UNQUALIFIED26Anna Fali
1001Kaitlin S StockhamSpain2026-07-31King, Christopher A Esq NEGOTIATION91Amy Elsner
1002Jones I MaletIndia2026-08-13Truhlar And Truhlar Attys NEW46Bernardo Dominic
1003Costa T WaycottCanada2026-08-11Chanay, Jeffrey A Esq QUALIFIED32Stephen Shaw
1004Silvio J StensethCanada2026-07-24Buckley Miller Wright NEW61Onyama Limba
1005Misaki T MacleadCanada2026-07-26King, Christopher A Esq PROPOSAL37Asiya Javayant
1006Alejandro G MacleadFrance2026-08-08Morlong Associates PROPOSAL61Stephen Shaw
1007Ricardo F MaletSpain2026-08-15King, Christopher A Esq PROPOSAL23Ivan Magalhaes
1008Misaki C FlosiGermany2026-08-16Benton, John B Jr RENEWAL74Anna Fali
1009Maria I AlbaresArgentina2026-08-02Rousseaux, Michael Esq NEGOTIATION68Ioni Bowcher
1010Smith W BowleyIndia2026-08-01Morlong Associates QUALIFIED65Ioni Bowcher
1011Morrow F ButtBrazil2026-07-26Chemel, James L Cpa RENEWAL55Stephen Shaw
1012Smith O TollnerItaly2026-08-02Rousseaux, Michael Esq QUALIFIED97Elwin Sharvill
1013Aika B InouyeArgentina2026-07-18Commercial Press NEGOTIATION69Anna Fali
1014Leja F FollerArgentina2026-07-27Truhlar And Truhlar Attys UNQUALIFIED61Stephen Shaw
1015Jennifer Y RoysterBrazil2026-08-04Truhlar And Truhlar Attys NEGOTIATION93Stephen Shaw
1016Jefferson M PaprockiBrazil2026-08-11Commercial Press QUALIFIED85Ioni Bowcher
1017Aruna A RimFrance2026-08-02Feiner Bros RENEWAL93Elwin Sharvill
1018Kadeem G PoquetteSpain2026-07-28Feiner Bros NEGOTIATION94Xuxue Feng
1019Tony Z GillianIndia2026-08-02Printing Dimensions UNQUALIFIED44Bernardo Dominic
1020Silvio S GarufiUnited Kingdom2026-07-27Printing Dimensions RENEWAL23Anna Fali
1021Smith L SchemmerRussia2026-07-21Truhlar And Truhlar Attys NEW25Ioni Bowcher
1022Isabel X InouyeArgentina2026-08-04Rangoni Of Florence NEGOTIATION46Bernardo Dominic
1023Costa X MacleadIndia2026-08-13Feiner Bros NEW93Bernardo Dominic
1024Wickens A TollnerAustralia2026-07-23Printing Dimensions NEGOTIATION19Asiya Javayant
1025Mayumi D GlickArgentina2026-08-10Chemel, James L Cpa QUALIFIED68Xuxue Feng
1026Mayumi F OldroydUnited Kingdom2026-07-29Chemel, James L Cpa UNQUALIFIED35Bernardo Dominic
1027Misaki C DilliardGermany2026-07-21Benton, John B Jr RENEWAL27Amy Elsner
1028Deepesh O MorascaUnited Kingdom2026-08-10Chemel, James L Cpa QUALIFIED31Asiya Javayant
1029Faith D TollnerArgentina2026-08-09Rousseaux, Michael Esq NEGOTIATION70Xuxue Feng
1030Deepesh M WaycottItaly2026-08-12Benton, John B Jr NEW16Xuxue Feng
1031Francesco L SergiItaly2026-07-30Dorl, James J Esq UNQUALIFIED9Asiya Javayant
1032Isabel S BowleyIndia2026-07-24Chanay, Jeffrey A Esq QUALIFIED68Xuxue Feng
1033Nicolas A StensethAustralia2026-08-02King, Christopher A Esq QUALIFIED96Ivan Magalhaes
1034David M FollerFrance2026-08-14Truhlar And Truhlar Attys RENEWAL97Bernardo Dominic
1035Cody W InouyeSpain2026-08-02Rangoni Of Florence RENEWAL57Elwin Sharvill
1036Smith M InouyeGermany2026-08-12Chapman, Ross E Esq NEGOTIATION26Bernardo Dominic
1037David F FerenczRussia2026-07-24Morlong Associates QUALIFIED87Ioni Bowcher
1038Faith A OldroydItaly2026-07-24Truhlar And Truhlar Attys NEW77Ivan Magalhaes
1039Silvio A SchemmerBrazil2026-07-22Dorl, James J Esq QUALIFIED45Elwin Sharvill
1040Maria Z PoquetteJapan2026-08-15Feiner Bros QUALIFIED85Ivan Magalhaes
1041Mujtaba Y CaldareraBrazil2026-08-03King, Christopher A Esq PROPOSAL72Onyama Limba
1042Rodrigues D RutaGermany2026-08-01Commercial Press NEW84Xuxue Feng
1043Faith D GillianCanada2026-07-28Commercial Press NEW76Anna Fali
1044Wickens E NestleArgentina2026-08-06Commercial Press NEW69Asiya Javayant
1045Alejandro F PaprockiArgentina2026-08-11Commercial Press PROPOSAL96Asiya Javayant
1046Ashley Q RimArgentina2026-08-06Commercial Press NEGOTIATION43Xuxue Feng
1047Smith U FollerFrance2026-07-24Feltz Printing Service UNQUALIFIED42Xuxue Feng
1048Claire L GillianAustralia2026-08-11Printing Dimensions NEW50Ivan Magalhaes
1049David Z PoquetteBrazil2026-07-28Dorl, James J Esq PROPOSAL36Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore U FigeroaGermanyOnyama Limba RENEWAL
Deepesh S PerinIndiaAsiya Javayant NEW
Morrow F TollnerItalyStephen Shaw RENEWAL
Aika Q GillianRussiaAmy Elsner PROPOSAL
Sinclair X GillianItalyAmy Elsner QUALIFIED
Murillo W RoysterRussiaElwin Sharvill NEGOTIATION
Juan M FlosiItalyElwin Sharvill RENEWAL
Rodrigues Z MaletBrazilElwin Sharvill NEW
Ashley L CampainIndiaAnna Fali UNQUALIFIED
Mayumi J CaldareraJapanAmy Elsner NEW
Juan D DilliardSpainElwin Sharvill UNQUALIFIED
Julie B FigeroaGermanyElwin Sharvill QUALIFIED
Silvio B PerinRussiaAmy Elsner NEGOTIATION
Claire D MaletRussiaStephen Shaw PROPOSAL
Leja U CaudyIndiaIoni Bowcher PROPOSAL
Jones J SlusarskiGermanyIoni Bowcher PROPOSAL
Chavez R AlbaresGermanyOnyama Limba PROPOSAL
Mujtaba X MaletJapanBernardo Dominic NEW
Arvin K GarufiArgentinaStephen Shaw QUALIFIED
Kadeem N OldroydUnited KingdomElwin Sharvill NEW
Antonio K OldroydRussiaBernardo Dominic UNQUALIFIED
Munro M PaprockiArgentinaStephen Shaw UNQUALIFIED
Leja F VenereFranceStephen Shaw RENEWAL
Jones H RimUnited KingdomOnyama Limba RENEWAL
Misaki D PoquetteAustraliaIvan Magalhaes PROPOSAL
Mayumi P CaldareraArgentinaElwin Sharvill RENEWAL
Ricardo E GlickSpainIvan Magalhaes NEGOTIATION
Wickens H GarufiSpainElwin Sharvill UNQUALIFIED
Octavia T SergiSpainAnna Fali PROPOSAL
Ricardo L GauchoRussiaElwin Sharvill NEW
Rodrigues O PerinCanadaXuxue Feng NEW
Francesco B NestleFranceAmy Elsner RENEWAL
Ashley J GauchoJapanOnyama Limba QUALIFIED
Aruna Z MacleadBrazilOnyama Limba QUALIFIED
Costa P WhobreySpainAmy Elsner RENEWAL
Munro Z GarufiArgentinaAsiya Javayant QUALIFIED
James T BowleyCanadaElwin Sharvill PROPOSAL
Leon E MaletFranceAsiya Javayant QUALIFIED
Antonio M IturbideCanadaAnna Fali QUALIFIED
Greenwood G MacleadBrazilAmy Elsner QUALIFIED
Arvin W GillianItalyXuxue Feng NEW
Tony Z SergiBrazilBernardo Dominic UNQUALIFIED
Chavez J WieserRussiaStephen Shaw PROPOSAL
Aika G TollnerItalyElwin Sharvill NEW
Leja V SlusarskiIndiaXuxue Feng RENEWAL
Jefferson T PaprockiJapanAsiya Javayant UNQUALIFIED
Nicolas W RutaBrazilIoni Bowcher PROPOSAL
Antonio F MacleadAustraliaAsiya Javayant RENEWAL
Julie N GauchoBrazilAmy Elsner RENEWAL
Alejandro L KolmetzSpainXuxue Feng NEW
Frozen Columns
Name
Greenwood W Tollner
Greenwood W Ferencz
Jennifer T Ostrosky
Claire G Ferencz
Greenwood Q Briddick
Wickens P Whobrey
James W Caudy
Izzy L Doe
Isabel F Shinko
Sinclair I Malet
Kaitlin W Caldarera
Rodrigues D Tollner
Kadeem F Rim
Tony Y Chui
Adams J Kolmetz
Alejandro F Nicka
Jones S Rulapaugh
Jennifer A Albares
James K Doe
Arvin Q Nicka
Jennifer G Maclead
Munro N Sergi
Julie B Caudy
Maisha F Venere
Julie A Poquette
Clifford A Briddick
Johnson E Bowley
Ashley J Dilliard
Leon W Butt
Munro G Rim
Cody D Slusarski
Julie T Kusko
Julie S Vocelka
Costa B Briddick
Aditya V Tollner
Aika X Flosi
Costa X Venere
Nicolas W Inouye
Nicolas J Stenseth
Clifford L Glick
Clifford B Tollner
Kadeem U Rim
Octavia V Rulapaugh
Maria S Doe
Arvin I Foller
Ricardo R Glick
Kaitlin F Kusko
Aika N Stockham
Cody I Rim
James A Bolognia
IdCountryDate
1000Argentina2026-08-05
1001Italy2026-07-21
1002Canada2026-07-23
1003Italy2026-08-03
1004United Kingdom2026-07-20
1005Australia2026-08-05
1006Germany2026-08-11
1007United Kingdom2026-08-13
1008Australia2026-08-12
1009Brazil2026-07-27
1010Japan2026-08-13
1011India2026-08-01
1012Australia2026-08-11
1013Spain2026-08-07
1014Japan2026-08-16
1015Spain2026-08-09
1016Spain2026-07-28
1017United Kingdom2026-08-16
1018Canada2026-08-03
1019Brazil2026-07-26
1020Germany2026-07-21
1021India2026-07-21
1022United Kingdom2026-07-25
1023Brazil2026-08-16
1024Argentina2026-07-28
1025France2026-08-05
1026United Kingdom2026-08-02
1027Germany2026-08-16
1028Spain2026-07-26
1029United Kingdom2026-07-20
1030United Kingdom2026-07-22
1031Brazil2026-07-22
1032Japan2026-08-09
1033United Kingdom2026-08-10
1034France2026-07-27
1035Australia2026-08-04
1036Spain2026-07-20
1037United Kingdom2026-08-03
1038France2026-07-30
1039Japan2026-08-04
1040United Kingdom2026-08-13
1041Brazil2026-08-08
1042Brazil2026-08-05
1043Germany2026-07-31
1044France2026-07-19
1045India2026-07-22
1046Spain2026-07-21
1047United Kingdom2026-07-19
1048Italy2026-07-22
1049Germany2026-08-01

On-Demand Data

NameIdCountryDate
Mujtaba Q Perin1000Spain2026-08-02
Claire V Tollner1001Germany2026-07-28
Nicolas A Perin1002Japan2026-07-25
David Q Morasca1003Argentina2026-07-30
Wickens L Glick1004Italy2026-07-27
Jennifer G Kolmetz1005Australia2026-07-22
Francesco F Perin1006Russia2026-08-05
Salvatore U Stenseth1007Australia2026-07-24
Antonio N Malet1008Russia2026-07-30
Aika P Ruta1009Japan2026-08-14
Silvio J Shinko1010France2026-07-24
Julie U Marrier1011Argentina2026-08-03
Francesco Q Darakjy1012Germany2026-08-08
Murillo N Paprocki1013Brazil2026-08-03
Tony E Morasca1014India2026-07-30
Emily O Butt1015Japan2026-08-12
Tony R Ferencz1016Spain2026-08-15
Adams N Ostrosky1017Argentina2026-08-04
Tony C Iturbide1018Argentina2026-08-09
Rodrigues K Poquette1019Japan2026-08-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith E WaycottJapanIoni Bowcher NEGOTIATION
Arvin E BriddickArgentinaOnyama Limba PROPOSAL
Darci Q CaldareraSpainXuxue Feng PROPOSAL
Wickens R CaldareraSpainElwin Sharvill NEGOTIATION
Rodrigues J PaprockiCanadaElwin Sharvill RENEWAL
Julie Z DilliardItalyAnna Fali PROPOSAL
Leon A FlosiAustraliaBernardo Dominic PROPOSAL
Smith Q PaprockiUnited KingdomIoni Bowcher QUALIFIED
Aika N NestleAustraliaElwin Sharvill PROPOSAL
Wickens M DilliardJapanBernardo Dominic QUALIFIED
Misaki S OstroskyBrazilAmy Elsner PROPOSAL
Claire Y ChuiFranceStephen Shaw QUALIFIED
Ashley I MarrierJapanAmy Elsner PROPOSAL
Greenwood M PaprockiJapanElwin Sharvill QUALIFIED
Salvatore U ShinkoFranceIoni Bowcher PROPOSAL
Chavez W KolmetzCanadaIvan Magalhaes QUALIFIED
Ricardo R SchemmerIndiaStephen Shaw UNQUALIFIED
Isabel Q BowleySpainAnna Fali QUALIFIED
Aika O ShinkoJapanAsiya Javayant QUALIFIED
Tony M GillianArgentinaElwin Sharvill QUALIFIED
Darci T AlbaresJapanElwin Sharvill QUALIFIED
Ivar O PoquetteItalyIoni Bowcher UNQUALIFIED
Rodrigues R OldroydArgentinaAsiya Javayant QUALIFIED
Francesco U MarrierGermanyIvan Magalhaes QUALIFIED
Aditya A FollerJapanAnna Fali NEGOTIATION
Ivar L VocelkaItalyXuxue Feng RENEWAL
Faith J NickaAustraliaAmy Elsner NEW
Costa K NickaSpainXuxue Feng RENEWAL
Cody K ButtGermanyIoni Bowcher PROPOSAL
Julie P MorascaSpainOnyama Limba RENEWAL
Maisha G KuskoGermanyIoni Bowcher QUALIFIED
James Z SchemmerGermanyXuxue Feng RENEWAL
Claire R DoeRussiaAnna Fali PROPOSAL
Silvio M RoysterItalyAsiya Javayant NEW
Misaki H MaletCanadaElwin Sharvill NEW
Jennifer B FigeroaRussiaAmy Elsner NEW
Ivar R GauchoArgentinaAsiya Javayant QUALIFIED
Misaki W CaudyArgentinaAnna Fali NEGOTIATION
Arvin H WaycottUnited KingdomXuxue Feng UNQUALIFIED
Jennifer P KuskoGermanyStephen Shaw 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>