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
Ricardo Q DoeRussiaXuxue Feng PROPOSAL
Maisha N ButtBrazilStephen Shaw QUALIFIED
Jones N IturbideAustraliaAsiya Javayant NEW
Tony N CaldareraFranceAmy Elsner NEW
Leon J OldroydFranceXuxue Feng QUALIFIED
Aika N TollnerFranceAnna Fali NEGOTIATION
Antonio B IturbideItalyAsiya Javayant NEW
Alejandro K InouyeGermanyIoni Bowcher NEW
Antonio S CaldareraBrazilAmy Elsner PROPOSAL
Aditya Z PaprockiUnited KingdomXuxue Feng RENEWAL
Ashley C CaudyJapanBernardo Dominic PROPOSAL
Mayumi S TollnerIndiaIoni Bowcher NEGOTIATION
Julie F RulapaughItalyIvan Magalhaes NEW
Aika O GlickBrazilIvan Magalhaes NEGOTIATION
Maria B OstroskyBrazilAsiya Javayant RENEWAL
Mayumi Y KuskoUnited KingdomIoni Bowcher PROPOSAL
Octavia V FlosiArgentinaElwin Sharvill UNQUALIFIED
Chavez D VenereFranceAsiya Javayant NEGOTIATION
Salvatore B MacleadArgentinaOnyama Limba QUALIFIED
Isabel C RimGermanyIvan Magalhaes NEGOTIATION
Nicolas I MaletGermanyAsiya Javayant PROPOSAL
Morrow K GauchoRussiaIvan Magalhaes QUALIFIED
Mayumi G MaletAustraliaXuxue Feng PROPOSAL
Julie L KolmetzAustraliaAsiya Javayant RENEWAL
Claire H RimJapanAmy Elsner PROPOSAL
Nicolas V NestleSpainBernardo Dominic QUALIFIED
Juan P InouyeCanadaBernardo Dominic RENEWAL
Mujtaba J ChuiBrazilAsiya Javayant RENEWAL
Aruna P FlosiIndiaAmy Elsner QUALIFIED
Costa A SchemmerCanadaOnyama Limba RENEWAL
Misaki X SergiItalyXuxue Feng RENEWAL
Francesco K IturbideJapanAnna Fali UNQUALIFIED
Wickens J OstroskyArgentinaStephen Shaw NEGOTIATION
Ashley O MaletItalyIvan Magalhaes PROPOSAL
Aika H ChuiArgentinaXuxue Feng UNQUALIFIED
James Q DarakjyUnited KingdomIoni Bowcher RENEWAL
Aruna W SlusarskiBrazilAmy Elsner QUALIFIED
Sinclair D WhobreyAustraliaOnyama Limba UNQUALIFIED
Jennifer T MacleadJapanIoni Bowcher RENEWAL
Octavia C MaletAustraliaOnyama Limba NEW
Ivar D IturbideIndiaIvan Magalhaes RENEWAL
Adams D ChuiAustraliaAsiya Javayant QUALIFIED
Sinclair L BriddickIndiaStephen Shaw UNQUALIFIED
Aditya V StockhamFranceIvan Magalhaes NEW
Stacey U AmigonItalyAsiya Javayant RENEWAL
Nicolas D FlosiCanadaStephen Shaw NEW
Jefferson N BriddickArgentinaAnna Fali PROPOSAL
Darci S GillianBrazilAsiya Javayant NEGOTIATION
Antonio B RimSpainOnyama Limba PROPOSAL
Murillo N FollerGermanyAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith P GauchoArgentinaIvan Magalhaes RENEWAL
Aditya Z GillianGermanyOnyama Limba PROPOSAL
Francesco J RulapaughJapanIvan Magalhaes UNQUALIFIED
Smith A FigeroaItalyIvan Magalhaes RENEWAL
Aditya Q MaletFranceIoni Bowcher QUALIFIED
Rodrigues S RimItalyIvan Magalhaes QUALIFIED
Mujtaba Z CampainRussiaBernardo Dominic UNQUALIFIED
Isabel N CampainItalyIvan Magalhaes RENEWAL
Jennifer F OstroskyArgentinaXuxue Feng QUALIFIED
Mayumi D StensethAustraliaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens A NestleRussia2026-08-05Truhlar And Truhlar Attys UNQUALIFIED88Ioni Bowcher
1001Octavia L RimBrazil2026-08-08Rangoni Of Florence QUALIFIED63Asiya Javayant
1002Rodrigues D SchemmerItaly2026-07-23Morlong Associates NEW79Elwin Sharvill
1003Leja C GlickBrazil2026-07-15Morlong Associates QUALIFIED35Stephen Shaw
1004Aditya E FigeroaBrazil2026-07-20Truhlar And Truhlar Attys RENEWAL43Elwin Sharvill
1005Kaitlin H FollerIndia2026-08-02Benton, John B Jr NEW78Ioni Bowcher
1006Ashley U MaletSpain2026-07-15Benton, John B Jr QUALIFIED44Onyama Limba
1007Kaitlin E InouyeUnited Kingdom2026-07-30Feiner Bros NEW29Asiya Javayant
1008Izzy X CaldareraRussia2026-07-14Printing Dimensions RENEWAL82Anna Fali
1009Maisha Y FigeroaJapan2026-08-05Chemel, James L Cpa PROPOSAL71Amy Elsner
1010Julie H FollerArgentina2026-07-14Chapman, Ross E Esq PROPOSAL97Ioni Bowcher
1011James X StensethAustralia2026-07-17Rousseaux, Michael Esq NEGOTIATION97Amy Elsner
1012Mayumi I GlickBrazil2026-07-20Dorl, James J Esq PROPOSAL41Asiya Javayant
1013Ivar G IturbideJapan2026-07-18King, Christopher A Esq NEW67Bernardo Dominic
1014Maria L CaldareraUnited Kingdom2026-07-24Chapman, Ross E Esq NEW86Elwin Sharvill
1015Cody A RimJapan2026-07-13Commercial Press NEW51Amy Elsner
1016Jeanfrancois R PerinSpain2026-07-19Chapman, Ross E Esq UNQUALIFIED68Ioni Bowcher
1017Murillo X TollnerUnited Kingdom2026-08-01Rousseaux, Michael Esq QUALIFIED16Onyama Limba
1018Julie F OstroskyGermany2026-07-23Rousseaux, Michael Esq RENEWAL43Onyama Limba
1019Morrow Z BriddickUnited Kingdom2026-07-15Truhlar And Truhlar Attys UNQUALIFIED72Onyama Limba
1020Juan B MaletAustralia2026-07-25Rousseaux, Michael Esq QUALIFIED61Xuxue Feng
1021Leon P MorascaCanada2026-08-08Commercial Press RENEWAL6Onyama Limba
1022Munro E BologniaCanada2026-08-07Truhlar And Truhlar Attys RENEWAL34Elwin Sharvill
1023Clifford K BologniaJapan2026-08-03Chapman, Ross E Esq NEW9Amy Elsner
1024Costa Y BriddickIndia2026-08-01Printing Dimensions UNQUALIFIED76Anna Fali
1025Costa Z KolmetzAustralia2026-08-06Truhlar And Truhlar Attys NEW79Anna Fali
1026Silvio D PoquetteGermany2026-07-24Truhlar And Truhlar Attys PROPOSAL58Onyama Limba
1027Jennifer B TollnerFrance2026-07-27Benton, John B Jr UNQUALIFIED34Elwin Sharvill
1028Leja N CaudyJapan2026-08-03Chanay, Jeffrey A Esq RENEWAL32Ivan Magalhaes
1029Darci A NestleUnited Kingdom2026-07-15Buckley Miller Wright UNQUALIFIED77Asiya Javayant
1030Deepesh T GlickBrazil2026-07-22Rousseaux, Michael Esq UNQUALIFIED52Elwin Sharvill
1031Maisha R GarufiSpain2026-08-03Commercial Press RENEWAL81Xuxue Feng
1032Leon U SaylorsCanada2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED93Asiya Javayant
1033Greenwood Q CaldareraItaly2026-07-20Feiner Bros PROPOSAL54Xuxue Feng
1034Juan Y VenereGermany2026-07-25Dorl, James J Esq QUALIFIED3Xuxue Feng
1035Mayumi B FollerGermany2026-07-23Truhlar And Truhlar Attys RENEWAL50Anna Fali
1036Jones C KuskoItaly2026-07-20Morlong Associates PROPOSAL1Amy Elsner
1037Rodrigues V SergiFrance2026-07-17Feltz Printing Service RENEWAL2Amy Elsner
1038Octavia K ShinkoAustralia2026-07-23Morlong Associates PROPOSAL42Stephen Shaw
1039Deepesh E CaudyRussia2026-08-07Chemel, James L Cpa QUALIFIED27Bernardo Dominic
1040Morrow P MacleadGermany2026-07-23Chapman, Ross E Esq QUALIFIED50Ioni Bowcher
1041Darci Z RutaRussia2026-08-08Truhlar And Truhlar Attys NEW9Elwin Sharvill
1042Antonio C WieserJapan2026-07-30Dorl, James J Esq PROPOSAL84Anna Fali
1043Juan I PaprockiCanada2026-07-15Rousseaux, Michael Esq QUALIFIED89Bernardo Dominic
1044Smith Z StockhamRussia2026-07-14Benton, John B Jr NEW31Stephen Shaw
1045Julie Q MaletSpain2026-08-05Buckley Miller Wright QUALIFIED76Amy Elsner
1046Faith V OldroydBrazil2026-07-29Benton, John B Jr NEW45Elwin Sharvill
1047Costa P KuskoFrance2026-08-10Feltz Printing Service NEGOTIATION11Ivan Magalhaes
1048Aditya Q FigeroaItaly2026-07-28Feiner Bros QUALIFIED12Bernardo Dominic
1049Kaitlin O AlbaresItaly2026-07-22Dorl, James J Esq UNQUALIFIED83Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Isabel T KolmetzItalyIoni Bowcher RENEWAL
Emily C GillianAustraliaXuxue Feng NEW
Johnson A ChuiBrazilXuxue Feng PROPOSAL
Jennifer J ShinkoIndiaAmy Elsner NEGOTIATION
Murillo M KolmetzFranceAsiya Javayant UNQUALIFIED
Maisha J KuskoGermanyStephen Shaw UNQUALIFIED
Julie B GlickIndiaAsiya Javayant QUALIFIED
Ricardo I KuskoUnited KingdomIvan Magalhaes QUALIFIED
Juan G DilliardItalyStephen Shaw RENEWAL
Rodrigues T CaudyItalyIoni Bowcher RENEWAL
Aika N StensethRussiaElwin Sharvill PROPOSAL
Greenwood R AmigonUnited KingdomElwin Sharvill QUALIFIED
Maria Z MacleadFranceOnyama Limba UNQUALIFIED
Kaitlin P AlbaresAustraliaAmy Elsner NEGOTIATION
Leja O MarrierAustraliaAnna Fali QUALIFIED
Emily W StensethItalyBernardo Dominic NEW
Stacey V VenereAustraliaIoni Bowcher PROPOSAL
Silvio I ShinkoBrazilXuxue Feng PROPOSAL
Cody E ChuiFranceStephen Shaw RENEWAL
Alejandro M MaletIndiaStephen Shaw RENEWAL
David V AlbaresSpainIoni Bowcher NEW
Silvio D PoquetteItalyIoni Bowcher UNQUALIFIED
Ashley O NickaFranceAnna Fali RENEWAL
Johnson K VenereGermanyOnyama Limba NEGOTIATION
Salvatore W OldroydSpainOnyama Limba PROPOSAL
Nicolas A CaudyFranceBernardo Dominic UNQUALIFIED
Alejandro L RimUnited KingdomAnna Fali UNQUALIFIED
Adams E FigeroaFranceAsiya Javayant PROPOSAL
Mujtaba I AmigonItalyStephen Shaw PROPOSAL
Chavez J GlickCanadaBernardo Dominic PROPOSAL
Ivar V FerenczBrazilIvan Magalhaes QUALIFIED
Adams Y MaletBrazilIvan Magalhaes NEGOTIATION
Aruna J GauchoIndiaAmy Elsner QUALIFIED
Ricardo Y StockhamSpainAsiya Javayant QUALIFIED
Maria Q SchemmerIndiaIvan Magalhaes NEW
Isabel U InouyeItalyElwin Sharvill UNQUALIFIED
Maria I AlbaresAustraliaIoni Bowcher RENEWAL
Johnson L SchemmerGermanyStephen Shaw NEGOTIATION
Tony K OstroskyRussiaOnyama Limba RENEWAL
Maria T MorascaBrazilAmy Elsner PROPOSAL
Johnson B WaycottArgentinaBernardo Dominic UNQUALIFIED
Salvatore S RoysterBrazilAsiya Javayant NEGOTIATION
Clifford Q RoysterItalyXuxue Feng PROPOSAL
Costa J NickaIndiaAnna Fali RENEWAL
Isabel Z NestleArgentinaIvan Magalhaes UNQUALIFIED
Tony Z DarakjyBrazilBernardo Dominic NEW
Kadeem H FollerJapanOnyama Limba RENEWAL
Ricardo V VocelkaAustraliaXuxue Feng RENEWAL
Johnson A MaletBrazilOnyama Limba NEGOTIATION
Jennifer N WaycottUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Isabel O Shinko
Antonio Y Vocelka
Maisha S Rim
Silvio R Caldarera
Kadeem N Venere
Adams H Saylors
Isabel C Campain
Antonio O Kusko
Faith V Figeroa
Salvatore O Gaucho
Kaitlin M Slusarski
Octavia D Kolmetz
Leon H Bolognia
Wickens T Nicka
Murillo W Rim
Morrow V Perin
Aika L Malet
Francesco G Schemmer
Deepesh Q Chui
Claire H Figeroa
Tony I Malet
Nicolas I Poquette
Rodrigues L Amigon
David Z Albares
Jeanfrancois D Campain
Octavia B Briddick
Aruna J Ostrosky
Nicolas C Butt
Ashley B Bowley
Wickens P Chui
Murillo M Campain
Juan S Ostrosky
Octavia W Glick
James V Rim
Johnson A Sergi
Stacey S Saylors
Aruna L Flosi
Costa N Inouye
Alejandro N Ostrosky
Tony Q Gillian
Stacey Q Chui
Clifford R Sergi
Mujtaba Y Albares
Johnson K Paprocki
Jefferson N Paprocki
Mayumi E Caudy
Mujtaba Z Gillian
Munro L Marrier
Aruna I Kolmetz
Johnson L Ferencz
IdCountryDate
1000Germany2026-08-11
1001France2026-07-14
1002United Kingdom2026-08-04
1003Brazil2026-07-24
1004Russia2026-08-11
1005Argentina2026-07-16
1006Italy2026-07-15
1007Canada2026-08-01
1008Brazil2026-07-29
1009United Kingdom2026-08-09
1010Brazil2026-08-05
1011Russia2026-08-01
1012Japan2026-07-16
1013Canada2026-08-10
1014Brazil2026-08-02
1015Australia2026-07-19
1016Canada2026-08-04
1017Australia2026-08-10
1018France2026-08-11
1019Italy2026-08-09
1020Argentina2026-07-20
1021Japan2026-07-19
1022Canada2026-07-28
1023France2026-07-29
1024Brazil2026-08-01
1025Brazil2026-07-30
1026Japan2026-07-28
1027India2026-07-25
1028Canada2026-07-31
1029Brazil2026-07-28
1030Argentina2026-08-06
1031Japan2026-07-28
1032Australia2026-08-11
1033Australia2026-07-23
1034Japan2026-07-17
1035Russia2026-07-30
1036Russia2026-08-02
1037Japan2026-07-23
1038Argentina2026-07-29
1039Argentina2026-07-27
1040France2026-08-01
1041Argentina2026-07-19
1042Italy2026-08-06
1043Germany2026-07-27
1044Japan2026-08-03
1045Japan2026-07-25
1046Canada2026-07-15
1047Australia2026-07-27
1048India2026-07-16
1049Germany2026-08-01

On-Demand Data

NameIdCountryDate
Maria Q Stockham1000Germany2026-07-31
Smith O Amigon1001Spain2026-07-27
James E Perin1002Russia2026-07-29
Sinclair H Malet1003Brazil2026-07-30
Kadeem F Perin1004Russia2026-07-31
Ashley T Maclead1005Argentina2026-07-15
Faith S Oldroyd1006Canada2026-08-04
Julie G Doe1007Italy2026-08-03
Leon B Iturbide1008France2026-07-18
Maisha D Briddick1009France2026-08-01
Jeanfrancois U Caudy1010Australia2026-07-31
Maisha R Malet1011Spain2026-07-31
Emily W Nicka1012Spain2026-07-28
Costa C Foller1013India2026-07-22
Silvio T Flosi1014Germany2026-08-09
Jennifer W Gaucho1015Australia2026-08-10
Ricardo K Malet1016India2026-07-27
Jennifer D Ferencz1017Canada2026-07-15
Jefferson P Sergi1018France2026-08-07
Greenwood B Venere1019Australia2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore T BowleyItalyIvan Magalhaes PROPOSAL
Ashley Z MorascaJapanElwin Sharvill PROPOSAL
Kadeem Q WhobreyIndiaIvan Magalhaes RENEWAL
David M CampainCanadaAnna Fali NEW
Leja M FlosiBrazilStephen Shaw NEW
Salvatore K MacleadRussiaAmy Elsner RENEWAL
Chavez D FlosiBrazilBernardo Dominic PROPOSAL
Claire F ButtArgentinaStephen Shaw QUALIFIED
Rodrigues M ButtRussiaAmy Elsner PROPOSAL
Silvio V SergiFranceAnna Fali NEW
Ivar W RutaIndiaAsiya Javayant QUALIFIED
Juan C GlickBrazilIoni Bowcher QUALIFIED
Maisha J StockhamSpainAsiya Javayant QUALIFIED
Leon S SlusarskiArgentinaIvan Magalhaes NEW
Arvin U MorascaJapanXuxue Feng RENEWAL
Kaitlin X KolmetzFranceAsiya Javayant QUALIFIED
Juan P OldroydCanadaOnyama Limba RENEWAL
Deepesh P MarrierArgentinaOnyama Limba QUALIFIED
Maria I AlbaresSpainStephen Shaw QUALIFIED
Misaki Y DoeAustraliaOnyama Limba UNQUALIFIED
Mayumi W PoquetteSpainBernardo Dominic NEW
Smith M RoysterArgentinaXuxue Feng QUALIFIED
Deepesh K GarufiUnited KingdomElwin Sharvill NEW
Jones W SlusarskiSpainOnyama Limba NEW
Sinclair K MorascaFranceStephen Shaw NEW
Chavez S FigeroaItalyIoni Bowcher NEGOTIATION
Aditya I GauchoAustraliaIoni Bowcher NEW
Sinclair T NestleGermanyAsiya Javayant PROPOSAL
Rodrigues Q BriddickJapanAsiya Javayant NEW
Murillo X SergiRussiaXuxue Feng NEGOTIATION
Isabel V SchemmerBrazilIoni Bowcher NEGOTIATION
David B SaylorsFranceAnna Fali UNQUALIFIED
Arvin B WaycottBrazilOnyama Limba UNQUALIFIED
Ivar M KolmetzCanadaElwin Sharvill PROPOSAL
Antonio T BowleyUnited KingdomAmy Elsner QUALIFIED
Nicolas P FollerSpainAnna Fali NEGOTIATION
Kaitlin N ButtBrazilIoni Bowcher NEW
Maria O DarakjyRussiaIoni Bowcher NEGOTIATION
Francesco E GillianIndiaAmy Elsner NEW
Maisha W CaldareraSpainBernardo Dominic 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>