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
Chavez F PerinArgentinaElwin Sharvill NEGOTIATION
Costa B MacleadUnited KingdomElwin Sharvill NEGOTIATION
Smith R DoeBrazilIoni Bowcher RENEWAL
Izzy J SlusarskiCanadaIoni Bowcher PROPOSAL
Juan W SlusarskiSpainStephen Shaw PROPOSAL
Costa A StensethIndiaAsiya Javayant QUALIFIED
Jefferson P DarakjyIndiaIoni Bowcher NEW
Stacey F CaldareraJapanIvan Magalhaes NEW
Costa D CaldareraItalyAmy Elsner QUALIFIED
Smith G FerenczUnited KingdomAnna Fali NEGOTIATION
Sinclair Z WieserUnited KingdomBernardo Dominic RENEWAL
Wickens J BriddickUnited KingdomAsiya Javayant UNQUALIFIED
Emily D StensethGermanyElwin Sharvill NEW
Izzy G KuskoGermanyAnna Fali UNQUALIFIED
Tony B GillianItalyBernardo Dominic NEGOTIATION
Munro J PoquetteAustraliaAsiya Javayant NEGOTIATION
Faith A WieserAustraliaBernardo Dominic NEW
Silvio U BowleyItalyStephen Shaw NEGOTIATION
Alejandro T StensethBrazilElwin Sharvill RENEWAL
David O PoquetteIndiaBernardo Dominic NEGOTIATION
Ricardo D RimFranceAnna Fali RENEWAL
Cody U OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Alejandro N FollerIndiaOnyama Limba PROPOSAL
Sinclair V AlbaresArgentinaElwin Sharvill RENEWAL
Costa G InouyeGermanyElwin Sharvill RENEWAL
Murillo B GillianArgentinaBernardo Dominic UNQUALIFIED
Emily D FlosiBrazilIoni Bowcher PROPOSAL
Alejandro M ChuiCanadaAsiya Javayant UNQUALIFIED
Chavez K OstroskyAustraliaElwin Sharvill NEGOTIATION
Tony W CaudyJapanElwin Sharvill QUALIFIED
Salvatore E FlosiJapanOnyama Limba RENEWAL
Maria W TollnerUnited KingdomBernardo Dominic RENEWAL
Costa C SchemmerItalyXuxue Feng PROPOSAL
Costa T FollerCanadaIvan Magalhaes QUALIFIED
Wickens I NickaAustraliaIoni Bowcher NEW
Jefferson H FigeroaBrazilAsiya Javayant PROPOSAL
Morrow M VenereSpainStephen Shaw NEGOTIATION
Leja F DoeIndiaAmy Elsner NEGOTIATION
Aika Q RoysterItalyStephen Shaw UNQUALIFIED
Leja V MaletCanadaOnyama Limba UNQUALIFIED
Stacey K FollerJapanElwin Sharvill QUALIFIED
Misaki D VenereSpainStephen Shaw PROPOSAL
Kadeem E DarakjyBrazilAmy Elsner RENEWAL
Murillo E PerinCanadaAnna Fali QUALIFIED
Misaki O PaprockiUnited KingdomXuxue Feng NEGOTIATION
Aika E RutaArgentinaXuxue Feng UNQUALIFIED
Chavez P VenereIndiaAmy Elsner NEW
Adams Q GillianGermanyAsiya Javayant UNQUALIFIED
Jennifer A FlosiIndiaIoni Bowcher QUALIFIED
Nicolas D RutaAustraliaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maria M DoeUnited KingdomStephen Shaw PROPOSAL
Sinclair V PaprockiIndiaStephen Shaw PROPOSAL
Chavez H KuskoGermanyAsiya Javayant RENEWAL
Julie F RoysterFranceIoni Bowcher NEGOTIATION
Salvatore C RimBrazilStephen Shaw QUALIFIED
Adams Q InouyeCanadaIvan Magalhaes QUALIFIED
Aditya B KolmetzFranceElwin Sharvill QUALIFIED
Munro Z FollerUnited KingdomAsiya Javayant PROPOSAL
Mujtaba O VenereGermanyXuxue Feng PROPOSAL
Murillo P ShinkoFranceIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh W MaletArgentina2026-06-11Feltz Printing Service RENEWAL40Ivan Magalhaes
1001Munro U CaudyUnited Kingdom2026-06-28Printing Dimensions UNQUALIFIED34Amy Elsner
1002Kaitlin N DoeJapan2026-07-03Chanay, Jeffrey A Esq NEW79Ivan Magalhaes
1003Johnson O GillianArgentina2026-07-02Feiner Bros RENEWAL37Stephen Shaw
1004Smith M GlickItaly2026-06-30Chapman, Ross E Esq QUALIFIED44Asiya Javayant
1005Leon F RimUnited Kingdom2026-06-25Feiner Bros QUALIFIED3Onyama Limba
1006Maisha H AmigonUnited Kingdom2026-06-04Feiner Bros NEW97Xuxue Feng
1007Aika Y WhobreyFrance2026-06-11Feltz Printing Service PROPOSAL37Stephen Shaw
1008David Z RutaIndia2026-06-11Morlong Associates NEW45Stephen Shaw
1009Stacey J GillianArgentina2026-06-22Rousseaux, Michael Esq NEGOTIATION89Ioni Bowcher
1010Francesco X DilliardFrance2026-07-03King, Christopher A Esq RENEWAL34Ioni Bowcher
1011Aditya B DarakjyItaly2026-06-21Feiner Bros QUALIFIED13Amy Elsner
1012Morrow A SlusarskiCanada2026-06-16Chapman, Ross E Esq NEW90Xuxue Feng
1013Johnson Q AlbaresUnited Kingdom2026-07-03Rangoni Of Florence QUALIFIED93Ivan Magalhaes
1014Ricardo J WaycottFrance2026-06-23Chanay, Jeffrey A Esq NEGOTIATION1Amy Elsner
1015Arvin K VenereGermany2026-06-30Chemel, James L Cpa PROPOSAL78Ivan Magalhaes
1016Aika P NickaUnited Kingdom2026-06-25Chemel, James L Cpa UNQUALIFIED22Anna Fali
1017Izzy P GlickSpain2026-06-28Feltz Printing Service UNQUALIFIED65Ioni Bowcher
1018Antonio Y CaudyRussia2026-07-03Morlong Associates RENEWAL73Ioni Bowcher
1019Maisha H MaletSpain2026-07-02Feiner Bros UNQUALIFIED99Bernardo Dominic
1020Misaki H PoquetteJapan2026-06-18Printing Dimensions NEW31Anna Fali
1021Costa Y RoysterFrance2026-06-20Commercial Press PROPOSAL67Onyama Limba
1022Tony T WaycottJapan2026-06-25Chemel, James L Cpa RENEWAL65Ioni Bowcher
1023Costa T SaylorsRussia2026-07-01Feltz Printing Service PROPOSAL12Elwin Sharvill
1024Kaitlin G VocelkaUnited Kingdom2026-06-09Truhlar And Truhlar Attys NEGOTIATION67Anna Fali
1025Clifford W FlosiAustralia2026-07-03Chanay, Jeffrey A Esq NEW80Xuxue Feng
1026Leja M KolmetzItaly2026-06-08Rangoni Of Florence NEGOTIATION3Stephen Shaw
1027Maisha O MarrierRussia2026-06-04Chanay, Jeffrey A Esq UNQUALIFIED73Stephen Shaw
1028Julie F PerinCanada2026-06-12Buckley Miller Wright PROPOSAL40Ivan Magalhaes
1029Salvatore V VenereCanada2026-06-07Morlong Associates RENEWAL45Ioni Bowcher
1030Adams N ShinkoAustralia2026-06-20King, Christopher A Esq NEGOTIATION53Onyama Limba
1031Johnson C SchemmerUnited Kingdom2026-06-10Printing Dimensions QUALIFIED17Ivan Magalhaes
1032Aditya S WhobreyRussia2026-06-11Buckley Miller Wright RENEWAL0Bernardo Dominic
1033Leon S ChuiCanada2026-06-11Chapman, Ross E Esq NEW23Amy Elsner
1034Stacey I FigeroaFrance2026-06-04Rousseaux, Michael Esq UNQUALIFIED78Ioni Bowcher
1035Jennifer K ChuiIndia2026-06-29Feiner Bros PROPOSAL47Stephen Shaw
1036Jennifer T TollnerSpain2026-06-18Benton, John B Jr UNQUALIFIED32Xuxue Feng
1037Smith I IturbideIndia2026-06-27Feltz Printing Service NEW72Onyama Limba
1038Wickens L ButtCanada2026-06-21Chanay, Jeffrey A Esq RENEWAL60Stephen Shaw
1039Munro J GarufiAustralia2026-06-15Feltz Printing Service NEW80Stephen Shaw
1040Aika G CaldareraAustralia2026-06-06Benton, John B Jr NEW55Asiya Javayant
1041Tony O FollerGermany2026-07-01Benton, John B Jr UNQUALIFIED37Bernardo Dominic
1042Francesco H StensethAustralia2026-06-07Chanay, Jeffrey A Esq RENEWAL88Elwin Sharvill
1043Aditya H RoysterCanada2026-06-26Benton, John B Jr QUALIFIED61Bernardo Dominic
1044Darci E WhobreyArgentina2026-06-29Truhlar And Truhlar Attys RENEWAL68Bernardo Dominic
1045Aika Q ShinkoItaly2026-06-05Rousseaux, Michael Esq PROPOSAL48Elwin Sharvill
1046Kaitlin U PerinFrance2026-06-26Chemel, James L Cpa NEGOTIATION49Anna Fali
1047Rodrigues O OldroydItaly2026-06-17Commercial Press PROPOSAL73Anna Fali
1048Wickens B DilliardSpain2026-06-12Truhlar And Truhlar Attys PROPOSAL1Elwin Sharvill
1049Rodrigues Q VocelkaSpain2026-06-18Rangoni Of Florence NEGOTIATION31Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Francesco J DoeUnited KingdomAmy Elsner QUALIFIED
Izzy F InouyeCanadaStephen Shaw NEW
Kadeem S FigeroaGermanyAnna Fali RENEWAL
Aruna J BriddickJapanBernardo Dominic PROPOSAL
Kaitlin H BologniaJapanElwin Sharvill NEW
Munro W BriddickSpainOnyama Limba NEGOTIATION
Izzy M GauchoBrazilAnna Fali PROPOSAL
Stacey N MaletUnited KingdomAsiya Javayant QUALIFIED
Leon M MarrierArgentinaStephen Shaw UNQUALIFIED
Ricardo Z MaletGermanyElwin Sharvill RENEWAL
Clifford M RutaCanadaOnyama Limba NEW
Silvio T MaletCanadaIvan Magalhaes QUALIFIED
Julie G RutaCanadaAnna Fali PROPOSAL
Aika A FigeroaSpainOnyama Limba NEGOTIATION
Mayumi A TollnerBrazilOnyama Limba PROPOSAL
Ivar H CaldareraSpainAnna Fali QUALIFIED
Claire D WieserIndiaIvan Magalhaes NEGOTIATION
Ashley A StockhamRussiaAmy Elsner NEW
Rodrigues Z ChuiArgentinaAmy Elsner NEGOTIATION
Murillo M BowleyRussiaIvan Magalhaes UNQUALIFIED
Izzy D FollerCanadaElwin Sharvill NEW
Munro N GauchoIndiaElwin Sharvill NEGOTIATION
Mujtaba E ButtCanadaAnna Fali RENEWAL
Aika X PoquetteIndiaIoni Bowcher RENEWAL
Stacey P InouyeArgentinaElwin Sharvill PROPOSAL
Silvio W KolmetzCanadaBernardo Dominic UNQUALIFIED
Maria W SlusarskiGermanyBernardo Dominic QUALIFIED
Tony D BriddickItalyStephen Shaw RENEWAL
Jeanfrancois W AlbaresAustraliaStephen Shaw NEGOTIATION
Juan I DoeRussiaAsiya Javayant PROPOSAL
Smith S PoquetteArgentinaIoni Bowcher QUALIFIED
Johnson Y InouyeItalyStephen Shaw PROPOSAL
James J WieserJapanBernardo Dominic PROPOSAL
Deepesh T SergiRussiaIoni Bowcher PROPOSAL
Rodrigues X TollnerIndiaAmy Elsner NEW
Silvio T NestleAustraliaElwin Sharvill PROPOSAL
Ivar H MaletFranceElwin Sharvill RENEWAL
Johnson S MarrierGermanyIoni Bowcher NEGOTIATION
Aika Y PaprockiFranceIoni Bowcher QUALIFIED
Mujtaba L TollnerBrazilAmy Elsner NEGOTIATION
Cody Q FigeroaGermanyStephen Shaw PROPOSAL
Jeanfrancois E NickaBrazilAnna Fali UNQUALIFIED
Ivar R OstroskySpainAnna Fali NEW
Emily L CaudyFranceAnna Fali RENEWAL
Jefferson O FollerAustraliaAsiya Javayant UNQUALIFIED
Jones Q GlickIndiaAmy Elsner NEW
Ivar J VenereUnited KingdomElwin Sharvill NEGOTIATION
Cody Q VenereBrazilAsiya Javayant QUALIFIED
Juan R InouyeBrazilOnyama Limba NEW
Maria Z StockhamRussiaBernardo Dominic NEW
Frozen Columns
Name
Maisha L Tollner
Francesco J Rulapaugh
Arvin R Perin
Ashley T Ruta
Chavez F Slusarski
Octavia O Inouye
Aika T Gillian
Ricardo W Caudy
Johnson I Gaucho
Clifford N Kusko
Izzy I Wieser
Murillo V Caudy
Isabel L Malet
Maisha R Vocelka
Ashley F Inouye
Clifford Z Flosi
Clifford F Kolmetz
Jeanfrancois A Darakjy
Arvin J Stenseth
Munro B Caudy
Adams Q Saylors
Faith L Wieser
Mayumi D Perin
Murillo L Iturbide
Adams F Nestle
Misaki K Malet
Darci H Stockham
Sinclair Z Paprocki
Arvin E Wieser
Sinclair Y Butt
Cody M Ferencz
Arvin I Poquette
Cody W Butt
Jefferson Y Schemmer
Chavez J Tollner
Jennifer R Malet
Costa J Gillian
Leon S Schemmer
Sinclair W Morasca
Darci M Malet
Leja A Caldarera
Sinclair E Flosi
Mujtaba U Amigon
Maria B Nestle
Aika U Maclead
Izzy P Tollner
Antonio Y Stenseth
Julie R Venere
Aruna T Slusarski
Jefferson K Caudy
IdCountryDate
1000Spain2026-06-13
1001India2026-06-16
1002Brazil2026-06-15
1003Spain2026-06-07
1004Argentina2026-06-26
1005Germany2026-06-11
1006India2026-06-25
1007India2026-06-14
1008Canada2026-06-14
1009Argentina2026-06-07
1010Germany2026-06-28
1011France2026-06-29
1012United Kingdom2026-07-01
1013Australia2026-06-25
1014Italy2026-06-12
1015France2026-07-01
1016India2026-07-03
1017Canada2026-06-27
1018Germany2026-06-25
1019Canada2026-06-13
1020India2026-06-13
1021Australia2026-06-11
1022Brazil2026-06-28
1023United Kingdom2026-06-22
1024Spain2026-07-02
1025Argentina2026-06-21
1026Australia2026-07-03
1027Canada2026-06-05
1028India2026-06-26
1029Brazil2026-06-23
1030Argentina2026-06-29
1031United Kingdom2026-06-21
1032United Kingdom2026-06-16
1033Brazil2026-06-27
1034India2026-06-25
1035Argentina2026-06-11
1036United Kingdom2026-07-01
1037United Kingdom2026-07-02
1038United Kingdom2026-06-10
1039Spain2026-06-24
1040Australia2026-06-22
1041Australia2026-06-21
1042Japan2026-06-19
1043France2026-06-22
1044France2026-06-04
1045Brazil2026-06-27
1046Germany2026-06-13
1047Germany2026-06-15
1048United Kingdom2026-06-26
1049France2026-06-16

On-Demand Data

NameIdCountryDate
Isabel C Wieser1000Australia2026-06-04
Juan S Rulapaugh1001Brazil2026-06-11
Clifford L Flosi1002Australia2026-06-28
Salvatore A Rim1003India2026-06-23
Ricardo J Marrier1004Brazil2026-06-10
Clifford S Morasca1005Germany2026-06-08
Emily O Shinko1006Spain2026-06-12
Clifford O Darakjy1007United Kingdom2026-06-29
Nicolas I Caldarera1008Russia2026-06-14
Sinclair X Malet1009Argentina2026-06-25
Deepesh U Perin1010Argentina2026-06-04
Aditya M Kolmetz1011Australia2026-06-18
Julie Z Malet1012Japan2026-06-24
Jones O Caldarera1013Russia2026-06-26
Chavez Y Vocelka1014Russia2026-06-23
Julie U Perin1015Germany2026-06-26
Maria Q Amigon1016Germany2026-06-24
Ricardo A Perin1017Russia2026-06-17
Jones P Kolmetz1018Italy2026-06-04
Aika N Glick1019United Kingdom2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya Q IturbideAustraliaAmy Elsner RENEWAL
Juan Q DarakjyItalyBernardo Dominic QUALIFIED
Claire G DoeItalyOnyama Limba NEGOTIATION
Morrow Z PerinAustraliaIoni Bowcher QUALIFIED
Tony P VocelkaItalyIoni Bowcher PROPOSAL
Aditya G WaycottSpainElwin Sharvill NEGOTIATION
Mayumi T MaletFranceIoni Bowcher QUALIFIED
Leja V PoquetteJapanElwin Sharvill PROPOSAL
Juan H ButtGermanyIvan Magalhaes UNQUALIFIED
Aika Q KolmetzArgentinaIvan Magalhaes PROPOSAL
Mujtaba C BowleyIndiaElwin Sharvill NEGOTIATION
Ashley K RimGermanyBernardo Dominic NEW
Kaitlin Q RimIndiaXuxue Feng QUALIFIED
Darci Z BowleyCanadaXuxue Feng QUALIFIED
David M MacleadGermanyOnyama Limba NEW
Jones J BriddickGermanyAnna Fali NEW
Leon M DarakjyArgentinaIvan Magalhaes QUALIFIED
Juan T IturbideCanadaStephen Shaw QUALIFIED
Octavia P SaylorsCanadaAsiya Javayant PROPOSAL
Faith R InouyeCanadaAnna Fali PROPOSAL
Salvatore J NestleArgentinaBernardo Dominic NEGOTIATION
Johnson P OstroskyArgentinaAmy Elsner NEGOTIATION
James U WhobreyJapanXuxue Feng NEW
Silvio E NickaFranceIvan Magalhaes UNQUALIFIED
James G IturbideCanadaBernardo Dominic NEGOTIATION
Maria N GlickJapanOnyama Limba RENEWAL
Izzy T MaletJapanAnna Fali NEGOTIATION
Morrow V CaldareraBrazilIvan Magalhaes QUALIFIED
Jeanfrancois H MacleadSpainAmy Elsner UNQUALIFIED
Aika L FlosiIndiaOnyama Limba NEGOTIATION
Ivar C GillianFranceAnna Fali NEW
Munro J AmigonFranceStephen Shaw NEGOTIATION
Kaitlin X WaycottCanadaIvan Magalhaes PROPOSAL
Costa L CaldareraSpainOnyama Limba UNQUALIFIED
Arvin Q SlusarskiIndiaStephen Shaw UNQUALIFIED
Clifford N MaletIndiaStephen Shaw UNQUALIFIED
Mayumi B KolmetzCanadaBernardo Dominic UNQUALIFIED
Misaki H DoeRussiaOnyama Limba PROPOSAL
Ashley B RulapaughGermanyElwin Sharvill UNQUALIFIED
Kaitlin R SergiSpainStephen 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>