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 H SaylorsSpainStephen Shaw RENEWAL
Arvin H CampainCanadaStephen Shaw NEGOTIATION
Adams J CampainBrazilOnyama Limba NEW
Isabel G SergiIndiaAmy Elsner UNQUALIFIED
Tony X NestleArgentinaStephen Shaw NEW
Misaki K TollnerArgentinaStephen Shaw NEW
Deepesh N OldroydJapanXuxue Feng NEGOTIATION
Smith X MaletBrazilElwin Sharvill RENEWAL
Jefferson L GillianItalyBernardo Dominic RENEWAL
Isabel G PerinUnited KingdomAnna Fali PROPOSAL
Costa A CampainRussiaStephen Shaw UNQUALIFIED
Mayumi G WhobreyAustraliaIoni Bowcher QUALIFIED
Greenwood C WaycottSpainAmy Elsner NEW
Murillo Q IturbideIndiaIvan Magalhaes RENEWAL
Jeanfrancois V StockhamIndiaIvan Magalhaes NEW
Misaki Y MarrierBrazilStephen Shaw PROPOSAL
Sinclair U ChuiBrazilAsiya Javayant RENEWAL
Izzy S GauchoGermanyIvan Magalhaes QUALIFIED
Juan B WhobreyFranceAmy Elsner UNQUALIFIED
Murillo Z GillianAustraliaBernardo Dominic PROPOSAL
Costa B CaudyFranceAsiya Javayant NEW
Aditya B KolmetzRussiaAnna Fali NEGOTIATION
Mujtaba S FollerIndiaAnna Fali PROPOSAL
Smith G WieserBrazilIvan Magalhaes UNQUALIFIED
Darci T StensethAustraliaXuxue Feng UNQUALIFIED
Maria H MacleadCanadaStephen Shaw PROPOSAL
Alejandro R CampainIndiaBernardo Dominic QUALIFIED
Jefferson N FigeroaUnited KingdomAnna Fali NEGOTIATION
Octavia V StockhamItalyStephen Shaw NEW
Murillo E DilliardJapanBernardo Dominic NEGOTIATION
Salvatore X StensethIndiaBernardo Dominic NEW
Morrow E OstroskySpainIoni Bowcher PROPOSAL
Maisha N PaprockiIndiaAmy Elsner NEGOTIATION
Arvin H KolmetzCanadaXuxue Feng PROPOSAL
Alejandro T SaylorsGermanyOnyama Limba RENEWAL
Salvatore T BriddickAustraliaIoni Bowcher NEW
Izzy D ShinkoRussiaIvan Magalhaes RENEWAL
David R BriddickItalyOnyama Limba UNQUALIFIED
Stacey F RutaUnited KingdomIoni Bowcher RENEWAL
Emily I FigeroaRussiaIoni Bowcher PROPOSAL
Francesco M OldroydRussiaElwin Sharvill PROPOSAL
Kaitlin J RulapaughUnited KingdomXuxue Feng RENEWAL
Kaitlin V WaycottSpainAsiya Javayant NEW
Darci V SchemmerIndiaAnna Fali UNQUALIFIED
Clifford A MarrierBrazilIoni Bowcher NEGOTIATION
Salvatore L SchemmerJapanBernardo Dominic QUALIFIED
Claire T CaudyItalyOnyama Limba NEGOTIATION
Tony E PerinGermanyAsiya Javayant UNQUALIFIED
Aditya O WieserJapanBernardo Dominic UNQUALIFIED
Sinclair K InouyeUnited KingdomStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
David E GillianGermanyBernardo Dominic RENEWAL
Leja X ShinkoArgentinaAnna Fali QUALIFIED
Arvin E FerenczUnited KingdomStephen Shaw QUALIFIED
Tony S MacleadBrazilAmy Elsner QUALIFIED
Izzy Z FlosiItalyIoni Bowcher NEW
Nicolas G PoquetteBrazilAmy Elsner PROPOSAL
Cody M PerinJapanIvan Magalhaes RENEWAL
Leon K CampainAustraliaXuxue Feng PROPOSAL
Nicolas P MacleadUnited KingdomStephen Shaw PROPOSAL
Deepesh V MacleadFranceAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan A InouyeGermany2026-08-04Chanay, Jeffrey A Esq NEW86Ioni Bowcher
1001Isabel F GlickGermany2026-07-17Benton, John B Jr QUALIFIED21Anna Fali
1002Adams P CampainGermany2026-08-10Printing Dimensions NEGOTIATION23Elwin Sharvill
1003Clifford X StensethGermany2026-08-04Truhlar And Truhlar Attys QUALIFIED20Anna Fali
1004Aruna R KuskoIndia2026-08-11Buckley Miller Wright RENEWAL77Xuxue Feng
1005Kadeem T RoysterGermany2026-07-19Chanay, Jeffrey A Esq NEW52Amy Elsner
1006Silvio Y CaldareraGermany2026-08-07Rousseaux, Michael Esq PROPOSAL96Bernardo Dominic
1007Jennifer P WieserUnited Kingdom2026-07-28Morlong Associates NEW63Elwin Sharvill
1008Aditya J CaudyIndia2026-07-22Dorl, James J Esq PROPOSAL7Stephen Shaw
1009Francesco U WhobreyCanada2026-07-28Commercial Press QUALIFIED76Anna Fali
1010Aditya I MaletUnited Kingdom2026-07-30Chapman, Ross E Esq NEGOTIATION36Onyama Limba
1011Greenwood G RoysterBrazil2026-07-29Benton, John B Jr PROPOSAL42Xuxue Feng
1012Alejandro X RimUnited Kingdom2026-07-28Chemel, James L Cpa UNQUALIFIED53Bernardo Dominic
1013David D MaletFrance2026-07-31Feltz Printing Service UNQUALIFIED19Amy Elsner
1014Cody H InouyeBrazil2026-08-10Dorl, James J Esq NEGOTIATION57Anna Fali
1015Octavia N FerenczSpain2026-08-10Chanay, Jeffrey A Esq NEW97Stephen Shaw
1016Aruna I SlusarskiRussia2026-07-28King, Christopher A Esq QUALIFIED21Amy Elsner
1017Mayumi F FollerIndia2026-07-28Chemel, James L Cpa QUALIFIED30Onyama Limba
1018Salvatore C MaletBrazil2026-08-12Feiner Bros NEGOTIATION88Stephen Shaw
1019Arvin W ButtGermany2026-08-01Rangoni Of Florence RENEWAL24Amy Elsner
1020Aika A ButtBrazil2026-07-17Feltz Printing Service NEW16Elwin Sharvill
1021Sinclair X MacleadUnited Kingdom2026-07-25Feltz Printing Service UNQUALIFIED24Xuxue Feng
1022Ashley J MaletUnited Kingdom2026-08-04Chanay, Jeffrey A Esq PROPOSAL17Asiya Javayant
1023Francesco P GlickRussia2026-08-05Feiner Bros NEGOTIATION72Elwin Sharvill
1024Sinclair Q DoeJapan2026-08-09Buckley Miller Wright RENEWAL4Bernardo Dominic
1025Jeanfrancois H KuskoArgentina2026-08-10Feltz Printing Service UNQUALIFIED11Asiya Javayant
1026Arvin W ButtJapan2026-07-23Feiner Bros UNQUALIFIED26Asiya Javayant
1027Juan Z RoysterGermany2026-07-30Dorl, James J Esq QUALIFIED64Onyama Limba
1028Johnson G BriddickUnited Kingdom2026-08-03Rangoni Of Florence NEW64Elwin Sharvill
1029Faith P KolmetzRussia2026-07-21Buckley Miller Wright QUALIFIED86Stephen Shaw
1030Salvatore A FlosiItaly2026-07-23Rousseaux, Michael Esq RENEWAL46Amy Elsner
1031Jefferson T SchemmerSpain2026-08-14Truhlar And Truhlar Attys RENEWAL3Ioni Bowcher
1032Misaki W RimIndia2026-08-01Morlong Associates RENEWAL34Elwin Sharvill
1033Ivar F BowleyRussia2026-08-13King, Christopher A Esq PROPOSAL74Ivan Magalhaes
1034Munro E KolmetzCanada2026-08-10Dorl, James J Esq PROPOSAL86Onyama Limba
1035Aruna V AlbaresSpain2026-08-10Commercial Press UNQUALIFIED64Asiya Javayant
1036Maria T GauchoItaly2026-07-26Chapman, Ross E Esq UNQUALIFIED18Asiya Javayant
1037Isabel U PoquetteFrance2026-08-01Feltz Printing Service NEGOTIATION1Stephen Shaw
1038Tony B StockhamItaly2026-08-14Morlong Associates QUALIFIED7Ivan Magalhaes
1039Munro P CaudyItaly2026-08-01King, Christopher A Esq RENEWAL73Amy Elsner
1040Clifford J SchemmerGermany2026-07-16Chapman, Ross E Esq QUALIFIED96Bernardo Dominic
1041Ivar B RulapaughFrance2026-07-24Rousseaux, Michael Esq NEW35Onyama Limba
1042Cody T SchemmerCanada2026-07-17Feiner Bros PROPOSAL7Asiya Javayant
1043Juan S IturbideAustralia2026-08-05Buckley Miller Wright NEW15Ivan Magalhaes
1044Claire R StockhamSpain2026-08-02Chapman, Ross E Esq RENEWAL2Stephen Shaw
1045Munro M CaldareraRussia2026-07-17Chapman, Ross E Esq UNQUALIFIED84Elwin Sharvill
1046Nicolas J SchemmerIndia2026-08-06Buckley Miller Wright PROPOSAL66Onyama Limba
1047Darci Q GauchoItaly2026-07-28Morlong Associates QUALIFIED37Xuxue Feng
1048Morrow S SlusarskiRussia2026-07-30Feiner Bros NEW41Elwin Sharvill
1049Murillo U MacleadCanada2026-07-19Feiner Bros PROPOSAL93Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Morrow I ChuiItalyStephen Shaw RENEWAL
James Z MaletGermanyAmy Elsner PROPOSAL
Claire T SergiJapanElwin Sharvill NEW
Aruna L VocelkaAustraliaBernardo Dominic NEGOTIATION
Francesco U KolmetzJapanAsiya Javayant UNQUALIFIED
Ivar I SaylorsAustraliaBernardo Dominic PROPOSAL
Octavia E GarufiUnited KingdomAnna Fali QUALIFIED
Wickens U InouyeRussiaAsiya Javayant NEW
Alejandro D ChuiGermanyIoni Bowcher NEGOTIATION
Tony X DarakjyFranceAnna Fali QUALIFIED
Izzy M DilliardRussiaIoni Bowcher RENEWAL
Juan D CaldareraSpainStephen Shaw QUALIFIED
Alejandro X CampainSpainAmy Elsner QUALIFIED
Izzy U ChuiIndiaIvan Magalhaes UNQUALIFIED
Kadeem H DarakjySpainAnna Fali PROPOSAL
Julie W DarakjyItalyXuxue Feng QUALIFIED
Cody K BriddickCanadaOnyama Limba NEGOTIATION
Sinclair Q OldroydJapanAmy Elsner NEGOTIATION
Stacey Q WhobreyRussiaIoni Bowcher PROPOSAL
Adams A KuskoRussiaIoni Bowcher NEGOTIATION
Jennifer Y CaudyItalyBernardo Dominic NEGOTIATION
Kaitlin O MarrierArgentinaOnyama Limba QUALIFIED
Deepesh D AlbaresFranceAmy Elsner UNQUALIFIED
Emily G OldroydJapanAsiya Javayant NEGOTIATION
Claire L FlosiBrazilStephen Shaw RENEWAL
Chavez I WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas D WaycottIndiaBernardo Dominic UNQUALIFIED
Jones S FerenczItalyOnyama Limba PROPOSAL
Kadeem E DoeFranceIvan Magalhaes UNQUALIFIED
Wickens K PerinRussiaAmy Elsner UNQUALIFIED
Chavez B IturbideSpainStephen Shaw RENEWAL
Antonio F BowleyAustraliaIoni Bowcher NEW
Stacey A ChuiBrazilElwin Sharvill RENEWAL
Nicolas K DarakjySpainAnna Fali NEW
Tony S DilliardGermanyAsiya Javayant NEGOTIATION
Misaki W WieserFranceOnyama Limba PROPOSAL
Ricardo T BriddickGermanyAmy Elsner UNQUALIFIED
Octavia D NickaBrazilIoni Bowcher NEGOTIATION
Costa L PoquetteFranceAmy Elsner QUALIFIED
Ivar M PaprockiBrazilIoni Bowcher NEW
Kadeem L GauchoCanadaOnyama Limba PROPOSAL
Jones B KuskoSpainXuxue Feng RENEWAL
Ricardo S MorascaArgentinaBernardo Dominic NEGOTIATION
Jones W IturbideSpainXuxue Feng UNQUALIFIED
Clifford K PaprockiUnited KingdomAnna Fali NEW
Clifford I VocelkaFranceAsiya Javayant QUALIFIED
Juan Q SaylorsBrazilXuxue Feng QUALIFIED
Maria M CampainBrazilStephen Shaw PROPOSAL
Clifford Z NestleJapanBernardo Dominic QUALIFIED
Greenwood R CaudyCanadaOnyama Limba NEGOTIATION
Frozen Columns
Name
Misaki B Inouye
James W Whobrey
Leon O Wieser
Costa A Kolmetz
Aruna Q Iturbide
Leon X Briddick
Leja B Maclead
James L Venere
Ivar U Venere
Clifford L Caudy
Mayumi E Doe
Maria M Foller
Munro K Paprocki
Deepesh E Vocelka
Chavez U Perin
Francesco B Oldroyd
Jeanfrancois B Saylors
Greenwood O Nicka
Isabel G Butt
Leon H Kolmetz
Jefferson Q Morasca
Sinclair Q Inouye
Faith S Ferencz
Murillo A Shinko
Rodrigues P Nestle
Alejandro A Flosi
Chavez F Rulapaugh
Morrow A Butt
Johnson L Stenseth
Octavia S Glick
Faith W Dilliard
Julie J Butt
Octavia I Slusarski
Francesco R Ostrosky
Isabel E Ruta
Arvin H Tollner
Maisha A Butt
Wickens B Marrier
Maria C Ruta
Juan C Stenseth
Clifford Y Marrier
James C Shinko
Mayumi B Rulapaugh
Aruna A Bolognia
Faith K Shinko
Alejandro I Bowley
Darci P Kolmetz
Chavez C Doe
Sinclair V Glick
Juan H Waycott
IdCountryDate
1000Brazil2026-08-11
1001Spain2026-07-24
1002India2026-07-30
1003Canada2026-07-26
1004Australia2026-07-25
1005Brazil2026-07-21
1006Australia2026-07-22
1007Canada2026-07-26
1008India2026-07-18
1009United Kingdom2026-07-28
1010Germany2026-08-12
1011Japan2026-07-29
1012Brazil2026-07-24
1013Spain2026-07-27
1014Russia2026-07-19
1015Russia2026-08-09
1016Germany2026-07-22
1017Italy2026-07-30
1018Japan2026-08-02
1019Australia2026-08-01
1020Brazil2026-07-17
1021India2026-08-07
1022Spain2026-08-12
1023United Kingdom2026-07-31
1024Japan2026-08-07
1025France2026-08-11
1026Argentina2026-08-13
1027France2026-07-16
1028Australia2026-08-13
1029India2026-07-31
1030Germany2026-07-29
1031Germany2026-07-29
1032Spain2026-07-31
1033Japan2026-08-11
1034Argentina2026-07-22
1035France2026-08-11
1036Canada2026-07-31
1037Russia2026-07-26
1038Russia2026-08-06
1039United Kingdom2026-08-05
1040Japan2026-08-13
1041Argentina2026-08-11
1042Spain2026-08-12
1043Germany2026-08-09
1044Argentina2026-07-22
1045Australia2026-08-14
1046United Kingdom2026-07-17
1047Japan2026-08-11
1048Brazil2026-07-27
1049Germany2026-08-14

On-Demand Data

NameIdCountryDate
Costa L Stenseth1000India2026-07-24
Jones Y Shinko1001Russia2026-07-24
Deepesh F Inouye1002France2026-08-11
Clifford Q Venere1003Japan2026-08-05
Nicolas W Dilliard1004Brazil2026-07-26
Clifford B Inouye1005Russia2026-07-19
Tony Y Royster1006Japan2026-08-08
Silvio Q Poquette1007Argentina2026-08-12
Ashley H Tollner1008Spain2026-08-02
Misaki M Saylors1009Canada2026-07-25
Octavia B Venere1010Japan2026-08-13
Julie P Wieser1011Spain2026-08-09
Stacey I Albares1012Canada2026-08-01
Mujtaba R Albares1013Russia2026-08-01
Silvio L Butt1014Japan2026-08-05
Smith A Paprocki1015Argentina2026-07-29
Rodrigues E Sergi1016Italy2026-07-30
Cody M Briddick1017Canada2026-07-24
Ricardo W Ferencz1018Brazil2026-07-21
Deepesh G Foller1019Italy2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja M OstroskyArgentinaBernardo Dominic UNQUALIFIED
Tony O StensethBrazilIvan Magalhaes RENEWAL
Costa P KuskoGermanyXuxue Feng NEW
Misaki R OstroskyIndiaXuxue Feng PROPOSAL
Leja Z NestleUnited KingdomBernardo Dominic UNQUALIFIED
Tony Q FlosiBrazilAnna Fali QUALIFIED
David E WaycottArgentinaXuxue Feng NEGOTIATION
Stacey G MaletRussiaElwin Sharvill NEGOTIATION
Jefferson N RimSpainAnna Fali QUALIFIED
Ricardo W FollerBrazilAmy Elsner QUALIFIED
Chavez T RoysterFranceXuxue Feng UNQUALIFIED
Arvin U RoysterGermanyStephen Shaw UNQUALIFIED
Francesco N PerinFranceXuxue Feng NEW
Deepesh T CaldareraGermanyIvan Magalhaes PROPOSAL
Costa X WaycottJapanAsiya Javayant PROPOSAL
Ricardo G KolmetzRussiaOnyama Limba NEW
Cody V InouyeIndiaXuxue Feng NEGOTIATION
Izzy P CampainArgentinaOnyama Limba NEGOTIATION
Jeanfrancois Z SergiBrazilStephen Shaw RENEWAL
James F DarakjyRussiaIoni Bowcher QUALIFIED
Misaki G FollerSpainOnyama Limba NEW
Leon I SchemmerRussiaAmy Elsner QUALIFIED
Morrow S NickaGermanyXuxue Feng NEW
Claire T KuskoIndiaBernardo Dominic PROPOSAL
Alejandro A RulapaughJapanBernardo Dominic NEGOTIATION
Clifford E NestleItalyAmy Elsner UNQUALIFIED
Wickens M SchemmerSpainIoni Bowcher UNQUALIFIED
Rodrigues J InouyeIndiaAnna Fali QUALIFIED
Octavia K KuskoGermanyAnna Fali PROPOSAL
Jeanfrancois D NestleFranceElwin Sharvill QUALIFIED
Juan K PerinSpainBernardo Dominic UNQUALIFIED
Kadeem E SchemmerBrazilXuxue Feng UNQUALIFIED
Arvin U OldroydBrazilOnyama Limba NEW
Juan C SchemmerArgentinaStephen Shaw QUALIFIED
Francesco G BologniaFranceElwin Sharvill NEGOTIATION
Leja M BriddickArgentinaIvan Magalhaes PROPOSAL
Maria B OstroskyIndiaElwin Sharvill NEGOTIATION
Arvin N OldroydAustraliaAmy Elsner NEGOTIATION
Izzy Z CaldareraItalyIoni Bowcher UNQUALIFIED
Kaitlin E VocelkaRussiaStephen Shaw 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>