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
Antonio M MarrierAustraliaOnyama Limba NEW
Misaki X PoquetteJapanXuxue Feng NEGOTIATION
Izzy D KolmetzJapanIoni Bowcher NEW
James U KuskoFranceStephen Shaw UNQUALIFIED
Rodrigues Y WaycottGermanyAmy Elsner UNQUALIFIED
Emily O MorascaUnited KingdomStephen Shaw QUALIFIED
Maisha Q RimGermanyStephen Shaw PROPOSAL
Kaitlin Z MacleadAustraliaIvan Magalhaes QUALIFIED
Arvin S NickaItalyOnyama Limba UNQUALIFIED
Clifford B WhobreyBrazilXuxue Feng NEW
Alejandro E AlbaresCanadaXuxue Feng UNQUALIFIED
Greenwood L RimCanadaStephen Shaw UNQUALIFIED
Greenwood T IturbideItalyAmy Elsner QUALIFIED
Aruna H FlosiFranceElwin Sharvill QUALIFIED
Adams S VocelkaFranceBernardo Dominic UNQUALIFIED
Emily P OstroskyCanadaStephen Shaw RENEWAL
Claire L ButtUnited KingdomOnyama Limba NEGOTIATION
Tony D SergiUnited KingdomElwin Sharvill QUALIFIED
Leja E DoeArgentinaXuxue Feng NEW
Ivar V DilliardArgentinaAsiya Javayant QUALIFIED
Sinclair T FigeroaArgentinaElwin Sharvill NEW
Jeanfrancois T BowleyBrazilAmy Elsner NEW
Morrow Q SlusarskiAustraliaElwin Sharvill PROPOSAL
Kaitlin W NickaIndiaElwin Sharvill NEW
Emily N VenereItalyAmy Elsner PROPOSAL
Jones L PoquetteIndiaStephen Shaw NEW
Salvatore Y FollerSpainStephen Shaw UNQUALIFIED
Wickens G BologniaAustraliaIoni Bowcher QUALIFIED
Emily A GarufiJapanBernardo Dominic RENEWAL
Silvio O RutaFranceBernardo Dominic NEW
Jennifer F KolmetzRussiaBernardo Dominic QUALIFIED
Smith S PaprockiFranceIvan Magalhaes RENEWAL
Munro C SlusarskiJapanAsiya Javayant RENEWAL
Cody S GlickCanadaIoni Bowcher UNQUALIFIED
Alejandro G MarrierSpainBernardo Dominic NEW
Kaitlin D FigeroaJapanIoni Bowcher QUALIFIED
Isabel B MarrierJapanAnna Fali QUALIFIED
Aditya N SergiJapanAmy Elsner RENEWAL
Kadeem X VenereRussiaIoni Bowcher NEGOTIATION
Jones Y AlbaresAustraliaAsiya Javayant UNQUALIFIED
Darci Z OldroydCanadaIoni Bowcher NEW
Maisha E PaprockiBrazilElwin Sharvill QUALIFIED
Jefferson Q AlbaresUnited KingdomXuxue Feng PROPOSAL
Johnson B CampainCanadaElwin Sharvill UNQUALIFIED
Jefferson Y AmigonJapanIoni Bowcher QUALIFIED
Faith P BowleyAustraliaXuxue Feng NEW
Leon S DarakjyBrazilElwin Sharvill PROPOSAL
Ricardo G BologniaAustraliaXuxue Feng QUALIFIED
Kaitlin C RimIndiaAnna Fali UNQUALIFIED
Greenwood D InouyeBrazilAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa V TollnerJapanStephen Shaw NEGOTIATION
Jones R RutaSpainXuxue Feng NEGOTIATION
Greenwood X FigeroaGermanyAnna Fali NEGOTIATION
Octavia Z StockhamIndiaIvan Magalhaes RENEWAL
Aika V SergiUnited KingdomXuxue Feng PROPOSAL
Leja O DilliardItalyAnna Fali NEW
Munro K AlbaresAustraliaIoni Bowcher NEW
Smith C OldroydFranceIvan Magalhaes UNQUALIFIED
Salvatore S PaprockiItalyBernardo Dominic RENEWAL
Silvio A ChuiJapanElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer J MacleadCanada2026-06-18Feltz Printing Service PROPOSAL99Bernardo Dominic
1001Sinclair P MacleadSpain2026-06-17Dorl, James J Esq QUALIFIED98Elwin Sharvill
1002Deepesh W PerinIndia2026-06-11Benton, John B Jr QUALIFIED27Bernardo Dominic
1003Ivar P KuskoGermany2026-06-19Dorl, James J Esq NEGOTIATION81Asiya Javayant
1004Ricardo Q WieserFrance2026-06-17Morlong Associates PROPOSAL75Asiya Javayant
1005Ricardo E RutaJapan2026-06-17Buckley Miller Wright NEW63Xuxue Feng
1006Greenwood G WhobreySpain2026-07-05Truhlar And Truhlar Attys PROPOSAL0Bernardo Dominic
1007Deepesh K AmigonUnited Kingdom2026-07-03Printing Dimensions QUALIFIED87Ivan Magalhaes
1008Nicolas J MorascaAustralia2026-06-23Truhlar And Truhlar Attys QUALIFIED46Asiya Javayant
1009Jones W BriddickBrazil2026-06-11Printing Dimensions NEW34Ivan Magalhaes
1010Smith U IturbideFrance2026-07-04Truhlar And Truhlar Attys PROPOSAL91Ivan Magalhaes
1011Juan V SchemmerBrazil2026-06-13Benton, John B Jr UNQUALIFIED92Amy Elsner
1012Juan X ButtFrance2026-06-24Chapman, Ross E Esq NEGOTIATION94Ivan Magalhaes
1013Izzy S ShinkoFrance2026-07-05Chanay, Jeffrey A Esq NEGOTIATION67Xuxue Feng
1014Chavez P InouyeRussia2026-06-25Feiner Bros RENEWAL73Amy Elsner
1015Antonio R SergiAustralia2026-06-30Printing Dimensions UNQUALIFIED0Amy Elsner
1016Octavia Y NestleRussia2026-06-16Chemel, James L Cpa UNQUALIFIED96Amy Elsner
1017Darci C GillianFrance2026-06-27Rousseaux, Michael Esq QUALIFIED36Anna Fali
1018Costa J RimGermany2026-06-25Commercial Press RENEWAL90Elwin Sharvill
1019Nicolas L FerenczItaly2026-06-12Benton, John B Jr RENEWAL62Onyama Limba
1020Deepesh U InouyeSpain2026-06-15Chanay, Jeffrey A Esq QUALIFIED49Ivan Magalhaes
1021Darci B PerinJapan2026-06-10Truhlar And Truhlar Attys NEGOTIATION93Ioni Bowcher
1022Claire W SchemmerArgentina2026-06-26Dorl, James J Esq RENEWAL49Xuxue Feng
1023Antonio C InouyeAustralia2026-06-12Feiner Bros PROPOSAL98Xuxue Feng
1024Francesco J IturbideJapan2026-06-10Chanay, Jeffrey A Esq PROPOSAL60Stephen Shaw
1025Leon A PaprockiAustralia2026-06-19Feltz Printing Service NEGOTIATION30Ioni Bowcher
1026James H RulapaughUnited Kingdom2026-06-25Buckley Miller Wright QUALIFIED71Ivan Magalhaes
1027Maisha X RutaArgentina2026-06-17Feltz Printing Service UNQUALIFIED63Anna Fali
1028Ashley D PaprockiGermany2026-06-11Chapman, Ross E Esq UNQUALIFIED31Xuxue Feng
1029Misaki I MorascaIndia2026-06-17Truhlar And Truhlar Attys NEGOTIATION69Onyama Limba
1030James H RulapaughArgentina2026-06-26Rousseaux, Michael Esq NEW97Ioni Bowcher
1031Rodrigues H FigeroaArgentina2026-06-18Buckley Miller Wright NEGOTIATION79Ivan Magalhaes
1032Jones M VenereIndia2026-06-10Commercial Press NEGOTIATION88Xuxue Feng
1033Ricardo M MarrierFrance2026-06-08Morlong Associates RENEWAL57Stephen Shaw
1034Smith B InouyeSpain2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED99Bernardo Dominic
1035David G TollnerBrazil2026-06-12Printing Dimensions NEGOTIATION71Onyama Limba
1036Maisha W MaletFrance2026-06-25Benton, John B Jr PROPOSAL78Ioni Bowcher
1037Ivar X InouyeIndia2026-06-29Feltz Printing Service RENEWAL22Bernardo Dominic
1038Francesco K CaldareraRussia2026-07-07Feltz Printing Service NEGOTIATION51Elwin Sharvill
1039Clifford H AmigonItaly2026-07-04Commercial Press UNQUALIFIED69Asiya Javayant
1040Claire N DilliardIndia2026-06-16Dorl, James J Esq PROPOSAL0Asiya Javayant
1041Jeanfrancois D InouyeRussia2026-06-26Printing Dimensions NEGOTIATION35Bernardo Dominic
1042Adams D WaycottSpain2026-06-11Morlong Associates QUALIFIED1Elwin Sharvill
1043Wickens S CaudyItaly2026-06-26Feltz Printing Service RENEWAL56Onyama Limba
1044Chavez X MarrierAustralia2026-06-17Chemel, James L Cpa NEGOTIATION52Anna Fali
1045Juan S KolmetzArgentina2026-06-09Commercial Press QUALIFIED10Onyama Limba
1046Darci B MaletAustralia2026-06-09Chemel, James L Cpa NEW88Asiya Javayant
1047Faith J WieserBrazil2026-06-26Commercial Press NEW95Elwin Sharvill
1048Octavia K MarrierItaly2026-06-09Benton, John B Jr NEGOTIATION78Asiya Javayant
1049Ivar H CampainCanada2026-06-08Printing Dimensions PROPOSAL40Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba H NickaFranceAsiya Javayant RENEWAL
Jefferson N BriddickUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois Z VocelkaArgentinaOnyama Limba RENEWAL
Faith Z KolmetzArgentinaIoni Bowcher NEGOTIATION
Jefferson A BriddickJapanAnna Fali UNQUALIFIED
Aditya T DarakjyJapanBernardo Dominic NEW
Murillo M ButtIndiaBernardo Dominic NEW
Johnson Y MaletAustraliaStephen Shaw UNQUALIFIED
James Q BriddickRussiaStephen Shaw NEW
Misaki X RoysterFranceAsiya Javayant NEGOTIATION
Greenwood K RoysterArgentinaIvan Magalhaes NEGOTIATION
Greenwood J MarrierUnited KingdomOnyama Limba PROPOSAL
Tony D CampainGermanyXuxue Feng PROPOSAL
Jennifer Y CaldareraCanadaOnyama Limba NEGOTIATION
Nicolas D SlusarskiAustraliaXuxue Feng PROPOSAL
Ashley A SaylorsAustraliaIvan Magalhaes PROPOSAL
Emily O RoysterIndiaOnyama Limba RENEWAL
Chavez S CampainFranceElwin Sharvill QUALIFIED
Clifford B FerenczRussiaAsiya Javayant NEW
Jones X PerinJapanElwin Sharvill NEGOTIATION
Darci U VocelkaGermanyAnna Fali NEW
Izzy S RulapaughBrazilElwin Sharvill QUALIFIED
Leja G MaletRussiaStephen Shaw QUALIFIED
Claire P CampainIndiaAmy Elsner NEW
Octavia Q BowleyCanadaStephen Shaw NEW
Wickens N GillianAustraliaAsiya Javayant RENEWAL
Izzy V SaylorsItalyOnyama Limba QUALIFIED
Aika L MarrierGermanyXuxue Feng PROPOSAL
Faith K MarrierJapanIoni Bowcher NEGOTIATION
Antonio Q PoquetteRussiaAnna Fali PROPOSAL
Octavia U OldroydItalyElwin Sharvill RENEWAL
Clifford K FlosiUnited KingdomAnna Fali RENEWAL
Emily C WaycottBrazilBernardo Dominic NEW
Jones H ChuiArgentinaElwin Sharvill NEGOTIATION
Jennifer F SlusarskiCanadaIvan Magalhaes RENEWAL
Misaki H MarrierCanadaStephen Shaw QUALIFIED
Stacey F MaletSpainAnna Fali RENEWAL
Salvatore V CampainItalyStephen Shaw NEGOTIATION
James R NestleGermanyBernardo Dominic NEW
Octavia J BowleyItalyOnyama Limba RENEWAL
Tony Y GlickGermanyBernardo Dominic NEW
Maisha S VenereRussiaAnna Fali RENEWAL
Darci B GillianJapanStephen Shaw RENEWAL
Sinclair P NickaUnited KingdomXuxue Feng UNQUALIFIED
Ricardo T CampainRussiaBernardo Dominic QUALIFIED
Stacey G RulapaughCanadaIvan Magalhaes PROPOSAL
Julie K MacleadUnited KingdomXuxue Feng QUALIFIED
Murillo N KuskoItalyIvan Magalhaes PROPOSAL
Rodrigues X WaycottArgentinaStephen Shaw NEW
Nicolas A PerinSpainAmy Elsner PROPOSAL
Frozen Columns
Name
Greenwood L Garufi
Leja H Ferencz
Ashley W Caudy
Julie E Vocelka
Silvio B Tollner
Munro W Slusarski
Juan R Stockham
Alejandro X Chui
Sinclair N Campain
Misaki C Marrier
Ashley G Maclead
Morrow Q Perin
Ashley B Caldarera
Isabel N Saylors
Julie E Bowley
Rodrigues F Royster
Rodrigues M Ferencz
Izzy B Poquette
Cody J Foller
Clifford D Wieser
Kadeem T Shinko
Deepesh F Garufi
Faith L Gillian
Jennifer Y Bolognia
Alejandro F Iturbide
Ricardo G Poquette
Alejandro L Kusko
Rodrigues P Figeroa
Antonio C Royster
Jeanfrancois D Shinko
Munro D Oldroyd
Isabel E Ferencz
Tony P Bolognia
Jones Q Nicka
Leon Z Schemmer
Murillo L Butt
Sinclair W Albares
Ivar E Amigon
Aika Z Wieser
Isabel D Ruta
Alejandro G Stenseth
Alejandro S Malet
Leon V Ferencz
Silvio T Ostrosky
Johnson S Kolmetz
Claire E Bolognia
David W Darakjy
Jennifer O Ostrosky
Kaitlin M Nicka
Claire Z Oldroyd
IdCountryDate
1000Russia2026-06-24
1001Australia2026-06-10
1002Germany2026-06-17
1003Canada2026-06-27
1004Argentina2026-07-04
1005Italy2026-06-12
1006United Kingdom2026-07-01
1007Canada2026-06-17
1008Argentina2026-06-22
1009Spain2026-06-21
1010Italy2026-06-09
1011Germany2026-06-17
1012Australia2026-06-24
1013Japan2026-06-17
1014Germany2026-06-18
1015Canada2026-06-08
1016Australia2026-06-27
1017Canada2026-06-21
1018Brazil2026-07-05
1019Spain2026-06-09
1020Germany2026-07-01
1021Italy2026-07-06
1022Australia2026-06-22
1023Germany2026-06-15
1024India2026-06-21
1025Brazil2026-07-02
1026Japan2026-06-24
1027Brazil2026-06-13
1028Canada2026-06-27
1029Brazil2026-06-27
1030Argentina2026-07-05
1031Argentina2026-06-25
1032Japan2026-06-26
1033United Kingdom2026-06-12
1034Argentina2026-07-05
1035United Kingdom2026-06-08
1036France2026-07-07
1037France2026-06-29
1038Argentina2026-07-05
1039United Kingdom2026-06-18
1040France2026-06-11
1041Russia2026-06-19
1042Germany2026-06-24
1043Russia2026-06-12
1044Spain2026-06-25
1045Canada2026-06-16
1046Germany2026-06-29
1047Canada2026-06-22
1048India2026-06-28
1049Spain2026-06-11

On-Demand Data

NameIdCountryDate
Arvin G Doe1000Spain2026-06-27
Johnson H Waycott1001Canada2026-06-20
Silvio B Rulapaugh1002United Kingdom2026-06-18
Arvin B Oldroyd1003Japan2026-06-14
Darci G Caudy1004India2026-06-15
Adams J Perin1005Germany2026-06-23
Rodrigues J Dilliard1006Australia2026-06-13
Arvin S Iturbide1007Argentina2026-06-16
Adams B Gillian1008India2026-06-24
Julie V Doe1009Canada2026-06-27
Murillo H Shinko1010France2026-06-27
Mayumi O Garufi1011Japan2026-07-02
Jennifer E Whobrey1012Germany2026-06-25
Silvio E Morasca1013Russia2026-07-02
Juan L Campain1014Italy2026-07-02
Octavia U Marrier1015France2026-06-09
Rodrigues N Briddick1016Brazil2026-06-08
Aruna T Schemmer1017India2026-06-17
David F Foller1018Russia2026-06-14
Octavia A Nicka1019Germany2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James C StensethSpainIvan Magalhaes NEGOTIATION
Kadeem R TollnerBrazilBernardo Dominic QUALIFIED
Silvio T GillianArgentinaAsiya Javayant RENEWAL
Arvin O FerenczGermanyIoni Bowcher RENEWAL
Tony W OstroskyJapanAsiya Javayant PROPOSAL
Leon J RutaItalyAnna Fali NEW
Arvin K DoeGermanyIoni Bowcher RENEWAL
Misaki H BowleyJapanAnna Fali UNQUALIFIED
Aruna T MaletSpainBernardo Dominic NEGOTIATION
Tony V MacleadFranceXuxue Feng PROPOSAL
Juan K OldroydIndiaXuxue Feng NEW
Rodrigues V OstroskyBrazilOnyama Limba RENEWAL
Maisha P FerenczCanadaBernardo Dominic PROPOSAL
Aditya U MarrierFranceIoni Bowcher RENEWAL
Kadeem O MacleadIndiaElwin Sharvill QUALIFIED
Silvio J VenereIndiaIvan Magalhaes QUALIFIED
Morrow X StensethCanadaOnyama Limba NEW
Munro S RulapaughCanadaElwin Sharvill UNQUALIFIED
Ricardo U RutaSpainAsiya Javayant NEGOTIATION
Aika N WieserFranceXuxue Feng PROPOSAL
Nicolas C SlusarskiFranceAmy Elsner PROPOSAL
Murillo N RulapaughGermanyBernardo Dominic PROPOSAL
Adams U GillianRussiaAnna Fali NEGOTIATION
Aruna M StockhamIndiaBernardo Dominic NEGOTIATION
Kadeem C PerinUnited KingdomAnna Fali UNQUALIFIED
Emily H VenereCanadaIvan Magalhaes QUALIFIED
Costa V BriddickGermanyIvan Magalhaes RENEWAL
Adams H WieserItalyBernardo Dominic PROPOSAL
Smith N PoquetteGermanyOnyama Limba PROPOSAL
Claire Q WieserRussiaIoni Bowcher UNQUALIFIED
Cody J GauchoArgentinaBernardo Dominic NEGOTIATION
Cody V RoysterJapanOnyama Limba NEGOTIATION
Greenwood P StockhamItalyAsiya Javayant PROPOSAL
Ashley K KuskoCanadaBernardo Dominic QUALIFIED
Stacey X IturbideRussiaIoni Bowcher UNQUALIFIED
Mayumi N CampainItalyElwin Sharvill NEGOTIATION
Ivar R StensethIndiaIvan Magalhaes QUALIFIED
James N ShinkoIndiaAsiya Javayant QUALIFIED
David E PerinArgentinaAmy Elsner UNQUALIFIED
Antonio V SlusarskiBrazilStephen Shaw QUALIFIED

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