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
Sinclair K RoysterBrazilAsiya Javayant QUALIFIED
Octavia R BriddickCanadaOnyama Limba NEGOTIATION
Smith Q GauchoGermanyAnna Fali UNQUALIFIED
Julie P MacleadFranceElwin Sharvill RENEWAL
Stacey M BologniaRussiaAmy Elsner UNQUALIFIED
Rodrigues I WaycottBrazilElwin Sharvill NEW
Faith I FerenczAustraliaIoni Bowcher NEGOTIATION
Misaki T OstroskyJapanAmy Elsner PROPOSAL
Misaki M SaylorsArgentinaElwin Sharvill QUALIFIED
Antonio A GlickJapanIoni Bowcher UNQUALIFIED
Chavez L AlbaresJapanElwin Sharvill RENEWAL
Emily K InouyeIndiaAsiya Javayant QUALIFIED
Juan W StockhamRussiaAmy Elsner NEW
Tony Q PaprockiArgentinaIoni Bowcher UNQUALIFIED
Claire Q KolmetzFranceElwin Sharvill NEW
Juan W SaylorsJapanOnyama Limba NEGOTIATION
Jeanfrancois V VocelkaBrazilAmy Elsner NEW
Murillo V GauchoBrazilIoni Bowcher PROPOSAL
Nicolas W MarrierCanadaStephen Shaw NEGOTIATION
Mayumi F RutaCanadaIvan Magalhaes RENEWAL
Clifford X AlbaresCanadaStephen Shaw RENEWAL
Arvin X WaycottArgentinaXuxue Feng NEGOTIATION
Adams J FlosiRussiaAsiya Javayant NEGOTIATION
Smith W AmigonArgentinaAmy Elsner QUALIFIED
Rodrigues R KolmetzUnited KingdomAmy Elsner NEGOTIATION
Darci C FigeroaFranceBernardo Dominic UNQUALIFIED
Deepesh Y RimItalyBernardo Dominic NEGOTIATION
Antonio P InouyeSpainElwin Sharvill RENEWAL
Izzy B GlickUnited KingdomIvan Magalhaes PROPOSAL
Emily B SaylorsFranceAmy Elsner UNQUALIFIED
Sinclair O RoysterJapanAnna Fali RENEWAL
Jefferson Z GauchoSpainElwin Sharvill NEGOTIATION
Julie I MaletCanadaAnna Fali QUALIFIED
Misaki B CaldareraRussiaBernardo Dominic PROPOSAL
Jeanfrancois J FlosiJapanIoni Bowcher NEGOTIATION
Smith J PerinRussiaElwin Sharvill UNQUALIFIED
Mujtaba C ButtUnited KingdomElwin Sharvill RENEWAL
Maria H NickaAustraliaAsiya Javayant QUALIFIED
Sinclair T DilliardSpainIoni Bowcher QUALIFIED
Alejandro Q CampainFranceXuxue Feng PROPOSAL
Nicolas C RulapaughItalyOnyama Limba UNQUALIFIED
Adams W AlbaresSpainIoni Bowcher UNQUALIFIED
Silvio E SchemmerAustraliaAsiya Javayant PROPOSAL
Clifford Z BologniaFranceAsiya Javayant QUALIFIED
Aruna B MaletGermanyXuxue Feng NEW
Kaitlin D RimRussiaStephen Shaw PROPOSAL
Emily P PerinArgentinaOnyama Limba NEW
Aika N MarrierGermanyElwin Sharvill NEGOTIATION
Faith H IturbideJapanAsiya Javayant NEW
Mayumi Y BriddickAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro A GarufiCanadaElwin Sharvill PROPOSAL
Maria W StensethCanadaAnna Fali PROPOSAL
Sinclair Z GarufiAustraliaOnyama Limba NEW
Arvin W CaudyUnited KingdomAmy Elsner PROPOSAL
Mujtaba H MarrierSpainIvan Magalhaes PROPOSAL
Darci K NestleFranceAmy Elsner RENEWAL
Nicolas I FerenczBrazilElwin Sharvill UNQUALIFIED
Jennifer E OldroydSpainElwin Sharvill PROPOSAL
Munro M SergiFranceIoni Bowcher UNQUALIFIED
Aika E DoeArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair C NickaFrance2026-07-29Rousseaux, Michael Esq PROPOSAL78Ioni Bowcher
1001Ivar Y PaprockiAustralia2026-07-12Rousseaux, Michael Esq NEW41Ioni Bowcher
1002Adams J BriddickUnited Kingdom2026-07-22King, Christopher A Esq UNQUALIFIED88Stephen Shaw
1003Kadeem N CaldareraAustralia2026-07-26Chemel, James L Cpa NEW5Xuxue Feng
1004Arvin T SergiGermany2026-07-30Rangoni Of Florence QUALIFIED54Anna Fali
1005Ivar E VocelkaSpain2026-07-23Benton, John B Jr QUALIFIED71Asiya Javayant
1006Isabel D PaprockiRussia2026-07-20Truhlar And Truhlar Attys NEW26Ivan Magalhaes
1007Nicolas L DoeSpain2026-07-11Commercial Press NEGOTIATION12Elwin Sharvill
1008Izzy B KolmetzJapan2026-07-23Dorl, James J Esq UNQUALIFIED69Amy Elsner
1009Leon S OstroskySpain2026-07-21Printing Dimensions UNQUALIFIED88Ioni Bowcher
1010Emily H CaudyGermany2026-08-03Rangoni Of Florence QUALIFIED91Onyama Limba
1011Salvatore L AmigonIndia2026-07-15Benton, John B Jr PROPOSAL95Amy Elsner
1012Clifford M ShinkoRussia2026-07-16Chanay, Jeffrey A Esq NEGOTIATION14Stephen Shaw
1013Kadeem X AmigonItaly2026-07-11Morlong Associates PROPOSAL85Amy Elsner
1014Octavia L SchemmerCanada2026-07-13Rousseaux, Michael Esq QUALIFIED76Ioni Bowcher
1015Juan V VocelkaFrance2026-07-13Rousseaux, Michael Esq PROPOSAL3Amy Elsner
1016Antonio V SlusarskiRussia2026-07-23Chapman, Ross E Esq NEW10Stephen Shaw
1017Antonio W InouyeItaly2026-07-08Buckley Miller Wright NEW66Ivan Magalhaes
1018Leja W TollnerIndia2026-07-08Printing Dimensions NEW70Elwin Sharvill
1019Rodrigues A ButtArgentina2026-07-30Chanay, Jeffrey A Esq NEGOTIATION51Amy Elsner
1020Darci U MaletGermany2026-07-11Rangoni Of Florence PROPOSAL86Amy Elsner
1021Rodrigues L TollnerBrazil2026-08-04Benton, John B Jr NEGOTIATION43Amy Elsner
1022Wickens R StockhamJapan2026-07-23Feiner Bros PROPOSAL84Onyama Limba
1023Clifford I GauchoUnited Kingdom2026-07-19Chapman, Ross E Esq RENEWAL50Ioni Bowcher
1024Claire L VocelkaRussia2026-07-10Printing Dimensions QUALIFIED8Amy Elsner
1025Wickens F IturbideGermany2026-07-27Rousseaux, Michael Esq QUALIFIED30Stephen Shaw
1026Ricardo Q AlbaresRussia2026-07-30Benton, John B Jr PROPOSAL42Anna Fali
1027Ricardo L SaylorsBrazil2026-07-29Chanay, Jeffrey A Esq RENEWAL11Onyama Limba
1028Faith G FerenczIndia2026-07-12Chapman, Ross E Esq NEGOTIATION93Amy Elsner
1029Sinclair M FlosiArgentina2026-08-01Rousseaux, Michael Esq UNQUALIFIED67Amy Elsner
1030Morrow D VocelkaIndia2026-07-10Rangoni Of Florence NEW49Ioni Bowcher
1031Francesco O VocelkaUnited Kingdom2026-08-04Morlong Associates NEW85Xuxue Feng
1032Nicolas L DilliardBrazil2026-07-25Printing Dimensions RENEWAL50Elwin Sharvill
1033Julie V SergiJapan2026-08-03Commercial Press QUALIFIED47Bernardo Dominic
1034Rodrigues Q MaletRussia2026-07-15Rangoni Of Florence RENEWAL90Anna Fali
1035Julie X InouyeUnited Kingdom2026-07-19Morlong Associates RENEWAL68Stephen Shaw
1036Tony E IturbideCanada2026-07-06Feiner Bros NEGOTIATION51Elwin Sharvill
1037Morrow L KolmetzArgentina2026-08-02Rousseaux, Michael Esq NEGOTIATION65Onyama Limba
1038Jefferson N RoysterCanada2026-07-06King, Christopher A Esq NEGOTIATION24Ioni Bowcher
1039Isabel A RutaBrazil2026-07-06Rousseaux, Michael Esq NEW92Amy Elsner
1040Misaki D WaycottFrance2026-07-13Rousseaux, Michael Esq NEW79Bernardo Dominic
1041Rodrigues D BologniaItaly2026-08-03Commercial Press PROPOSAL94Stephen Shaw
1042Alejandro D ShinkoAustralia2026-07-30Morlong Associates UNQUALIFIED50Onyama Limba
1043Ashley D AmigonArgentina2026-08-03Printing Dimensions RENEWAL36Elwin Sharvill
1044Sinclair D CaudyUnited Kingdom2026-07-13Chapman, Ross E Esq UNQUALIFIED11Onyama Limba
1045Wickens P VocelkaIndia2026-07-13Benton, John B Jr NEW60Ivan Magalhaes
1046Johnson H WieserAustralia2026-07-14Chanay, Jeffrey A Esq QUALIFIED51Ioni Bowcher
1047Greenwood Y GarufiSpain2026-07-23Benton, John B Jr NEW89Anna Fali
1048Faith B ShinkoGermany2026-07-14King, Christopher A Esq RENEWAL56Elwin Sharvill
1049Alejandro P ShinkoFrance2026-07-23King, Christopher A Esq UNQUALIFIED45Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Leon D FollerArgentinaBernardo Dominic NEGOTIATION
Chavez B BriddickBrazilAsiya Javayant UNQUALIFIED
Ivar M ShinkoFranceIoni Bowcher NEGOTIATION
Aruna M RulapaughFranceAnna Fali NEGOTIATION
Morrow O MacleadFranceIvan Magalhaes PROPOSAL
Nicolas P DoeIndiaStephen Shaw NEW
Rodrigues I WaycottRussiaStephen Shaw NEGOTIATION
Chavez X RulapaughGermanyIoni Bowcher QUALIFIED
Silvio D DoeAustraliaIoni Bowcher UNQUALIFIED
Leja O MaletCanadaAsiya Javayant UNQUALIFIED
Morrow B SergiItalyAsiya Javayant QUALIFIED
Morrow R OstroskyBrazilIvan Magalhaes QUALIFIED
Leja T FerenczGermanyAnna Fali QUALIFIED
Morrow H MaletUnited KingdomBernardo Dominic PROPOSAL
Stacey I OldroydCanadaStephen Shaw PROPOSAL
Deepesh K VocelkaBrazilIvan Magalhaes QUALIFIED
Francesco V ChuiGermanyBernardo Dominic NEGOTIATION
Jefferson W PaprockiCanadaAmy Elsner UNQUALIFIED
Arvin Q AlbaresBrazilElwin Sharvill RENEWAL
Cody D WaycottCanadaAnna Fali RENEWAL
Salvatore G MacleadGermanyAnna Fali QUALIFIED
Izzy Q ButtCanadaElwin Sharvill NEW
Emily J DilliardBrazilOnyama Limba NEW
Murillo O RimGermanyOnyama Limba PROPOSAL
Kaitlin F BriddickBrazilElwin Sharvill RENEWAL
Leon N WieserUnited KingdomXuxue Feng UNQUALIFIED
Isabel G CaudyGermanyXuxue Feng QUALIFIED
Silvio A OldroydRussiaAmy Elsner RENEWAL
Maria A PaprockiFranceAmy Elsner PROPOSAL
Isabel B SlusarskiItalyAsiya Javayant QUALIFIED
Jefferson A NickaBrazilAsiya Javayant RENEWAL
Stacey I AmigonRussiaIoni Bowcher NEW
Alejandro E WhobreyBrazilOnyama Limba NEW
Costa Z ButtRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois B SergiGermanyAsiya Javayant RENEWAL
Jones D StensethCanadaBernardo Dominic NEW
Izzy J FollerSpainBernardo Dominic PROPOSAL
Stacey R PaprockiFranceAmy Elsner QUALIFIED
Johnson U BowleyRussiaOnyama Limba NEGOTIATION
Maria V VenereSpainStephen Shaw PROPOSAL
Antonio Z SergiItalyIoni Bowcher RENEWAL
Maisha F PerinRussiaAnna Fali UNQUALIFIED
Julie K BologniaCanadaElwin Sharvill PROPOSAL
Johnson Q WaycottArgentinaIoni Bowcher QUALIFIED
Clifford W StensethSpainAsiya Javayant RENEWAL
Wickens E MaletIndiaElwin Sharvill PROPOSAL
Smith G WaycottUnited KingdomBernardo Dominic QUALIFIED
Aika M NickaBrazilAmy Elsner NEGOTIATION
Clifford R WieserFranceAnna Fali NEGOTIATION
Sinclair S CampainGermanyElwin Sharvill QUALIFIED
Frozen Columns
Name
Ashley Z Poquette
Leja T Briddick
Emily W Butt
Aditya F Waycott
David Q Marrier
Clifford Y Briddick
Julie M Dilliard
Leja L Bowley
Claire C Slusarski
Deepesh J Briddick
Misaki X Chui
Isabel F Malet
Rodrigues O Doe
Aditya B Marrier
Clifford G Venere
Smith Y Vocelka
Mujtaba P Morasca
Izzy X Venere
Arvin T Rim
Salvatore K Maclead
Isabel S Malet
Darci P Perin
Clifford Z Butt
Ricardo K Bolognia
Sinclair K Oldroyd
Silvio M Kolmetz
Smith D Royster
Jennifer S Marrier
Sinclair L Gillian
Johnson Q Glick
Kaitlin Z Ferencz
Leon E Nestle
Morrow O Dilliard
Octavia K Nestle
Smith S Doe
Maria M Ostrosky
Jefferson Z Campain
Darci A Morasca
Costa E Iturbide
Maisha J Wieser
Maisha T Albares
Aruna V Nicka
Francesco U Foller
Jones Y Flosi
Johnson Z Schemmer
Aditya E Tollner
Greenwood A Ferencz
Nicolas M Stockham
Kadeem D Poquette
Costa R Whobrey
IdCountryDate
1000Spain2026-07-30
1001Japan2026-07-27
1002Germany2026-07-30
1003Germany2026-07-13
1004United Kingdom2026-07-09
1005Italy2026-08-01
1006Russia2026-07-14
1007Brazil2026-07-12
1008Australia2026-08-01
1009Canada2026-07-08
1010Germany2026-07-21
1011Brazil2026-07-12
1012Germany2026-07-28
1013India2026-07-06
1014Australia2026-07-30
1015India2026-07-12
1016United Kingdom2026-07-09
1017Brazil2026-07-19
1018Brazil2026-07-13
1019Canada2026-07-26
1020Japan2026-07-26
1021India2026-07-31
1022Japan2026-07-18
1023Russia2026-07-09
1024Russia2026-07-28
1025Argentina2026-07-07
1026Argentina2026-07-10
1027United Kingdom2026-07-20
1028Australia2026-08-01
1029Brazil2026-07-27
1030Germany2026-07-25
1031India2026-07-11
1032Japan2026-08-04
1033France2026-07-23
1034Australia2026-07-13
1035United Kingdom2026-07-12
1036United Kingdom2026-08-03
1037Germany2026-07-10
1038Argentina2026-07-30
1039Australia2026-07-10
1040Japan2026-07-20
1041India2026-07-24
1042Spain2026-07-09
1043Germany2026-07-23
1044Russia2026-07-12
1045Germany2026-07-15
1046Italy2026-07-09
1047Argentina2026-07-15
1048Germany2026-07-09
1049Brazil2026-07-20

On-Demand Data

NameIdCountryDate
Emily G Vocelka1000Japan2026-07-31
Ivar R Venere1001Spain2026-07-24
Isabel I Oldroyd1002India2026-07-06
Claire Q Caudy1003Germany2026-07-13
Adams J Nicka1004Canada2026-07-23
Antonio D Glick1005India2026-07-16
Claire P Kusko1006France2026-07-27
Greenwood G Flosi1007France2026-07-09
Sinclair Q Sergi1008Italy2026-07-16
Juan X Marrier1009India2026-07-28
Ricardo F Saylors1010Argentina2026-07-27
Jefferson U Sergi1011Australia2026-07-06
Izzy X Nicka1012India2026-07-29
Julie F Bowley1013France2026-08-04
Jefferson X Darakjy1014Japan2026-08-02
Francesco C Malet1015India2026-07-06
Faith G Venere1016Spain2026-08-03
Ivar V Waycott1017Germany2026-07-09
Jeanfrancois U Caudy1018Australia2026-07-29
Aika E Saylors1019Brazil2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna C MarrierFranceElwin Sharvill NEW
Faith M SergiCanadaAsiya Javayant RENEWAL
Ashley Q FollerRussiaXuxue Feng NEGOTIATION
Silvio R KolmetzFranceElwin Sharvill RENEWAL
Leon T DilliardCanadaBernardo Dominic UNQUALIFIED
Tony K RimUnited KingdomAnna Fali UNQUALIFIED
James B SlusarskiFranceAsiya Javayant UNQUALIFIED
Jeanfrancois I CaldareraCanadaAnna Fali UNQUALIFIED
Izzy H GillianSpainAmy Elsner NEGOTIATION
Stacey W BowleyArgentinaBernardo Dominic NEW
Clifford J CaldareraRussiaAnna Fali UNQUALIFIED
Costa C RulapaughGermanyAmy Elsner RENEWAL
Ivar R PaprockiRussiaAsiya Javayant NEW
Darci E BowleyCanadaOnyama Limba UNQUALIFIED
Mujtaba V VocelkaIndiaAmy Elsner UNQUALIFIED
Deepesh Q BriddickArgentinaAsiya Javayant NEGOTIATION
Isabel Q BowleyAustraliaIoni Bowcher PROPOSAL
Jefferson U MorascaGermanyXuxue Feng UNQUALIFIED
David C SchemmerItalyAsiya Javayant NEW
Ricardo U WaycottArgentinaAsiya Javayant QUALIFIED
Antonio S MorascaAustraliaIvan Magalhaes NEGOTIATION
David L KolmetzJapanXuxue Feng PROPOSAL
David X MacleadItalyStephen Shaw QUALIFIED
Kaitlin C BowleyFranceElwin Sharvill UNQUALIFIED
Francesco N MarrierAustraliaXuxue Feng NEGOTIATION
Murillo H SaylorsRussiaXuxue Feng NEW
Maisha Y BowleyUnited KingdomAmy Elsner NEGOTIATION
Julie U AmigonAustraliaAsiya Javayant UNQUALIFIED
Maria X MarrierBrazilElwin Sharvill RENEWAL
Greenwood T FerenczCanadaStephen Shaw RENEWAL
Murillo Y ShinkoUnited KingdomAmy Elsner NEGOTIATION
Morrow K DilliardGermanyElwin Sharvill PROPOSAL
Jeanfrancois C DarakjyItalyOnyama Limba PROPOSAL
Stacey T CaldareraJapanIvan Magalhaes NEGOTIATION
Darci Y GlickAustraliaElwin Sharvill NEW
Faith A VenereBrazilXuxue Feng QUALIFIED
Clifford T CampainUnited KingdomStephen Shaw UNQUALIFIED
Wickens P RulapaughItalyElwin Sharvill UNQUALIFIED
Maisha P BriddickAustraliaElwin Sharvill UNQUALIFIED
Francesco I StockhamItalyIoni Bowcher RENEWAL

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