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
Clifford F FigeroaRussiaElwin Sharvill PROPOSAL
Ivar L TollnerRussiaAsiya Javayant PROPOSAL
Jeanfrancois D FerenczFranceOnyama Limba NEGOTIATION
Murillo Q MaletBrazilStephen Shaw PROPOSAL
Ashley R NestleAustraliaStephen Shaw NEW
Kaitlin E InouyeBrazilIvan Magalhaes RENEWAL
Munro M MaletJapanXuxue Feng RENEWAL
Clifford G AmigonUnited KingdomAmy Elsner UNQUALIFIED
Juan K MaletSpainXuxue Feng PROPOSAL
Smith M BologniaUnited KingdomIoni Bowcher NEGOTIATION
Deepesh Z BowleyArgentinaBernardo Dominic UNQUALIFIED
Maisha J ChuiArgentinaAsiya Javayant NEW
Mujtaba O DarakjyFranceIoni Bowcher NEW
Jones X RimBrazilIoni Bowcher PROPOSAL
Mujtaba N StockhamCanadaIoni Bowcher RENEWAL
Stacey A VocelkaGermanyAsiya Javayant NEW
Jennifer O MarrierIndiaAmy Elsner PROPOSAL
Faith U SergiCanadaOnyama Limba NEW
Munro U StockhamCanadaElwin Sharvill NEGOTIATION
Rodrigues D ButtRussiaBernardo Dominic NEW
Cody P MaletIndiaIoni Bowcher RENEWAL
Adams Y CaudyUnited KingdomAnna Fali UNQUALIFIED
Murillo Z TollnerArgentinaAsiya Javayant NEGOTIATION
Kaitlin U RoysterFranceBernardo Dominic NEW
Darci Z GlickSpainBernardo Dominic PROPOSAL
Isabel M MaletArgentinaIoni Bowcher NEGOTIATION
Jennifer D TollnerUnited KingdomAnna Fali QUALIFIED
Stacey M FollerGermanyAmy Elsner RENEWAL
James D KuskoJapanStephen Shaw NEGOTIATION
Jones I RulapaughCanadaIvan Magalhaes QUALIFIED
Misaki R NestleIndiaBernardo Dominic UNQUALIFIED
Antonio D ShinkoJapanIoni Bowcher NEGOTIATION
Cody Q PaprockiIndiaAsiya Javayant RENEWAL
Murillo K RoysterFranceStephen Shaw NEW
Faith V RimRussiaXuxue Feng PROPOSAL
Mayumi Z RimArgentinaElwin Sharvill NEGOTIATION
Kaitlin S GlickArgentinaElwin Sharvill QUALIFIED
Juan A SergiCanadaAsiya Javayant NEW
Munro R VenereArgentinaIoni Bowcher UNQUALIFIED
Jennifer F BowleyGermanyOnyama Limba NEW
Costa H PoquetteRussiaAmy Elsner PROPOSAL
Leja W NestleRussiaIoni Bowcher RENEWAL
Jeanfrancois N OldroydIndiaIvan Magalhaes RENEWAL
Munro R OstroskyGermanyBernardo Dominic PROPOSAL
Stacey W FollerGermanyStephen Shaw PROPOSAL
Kaitlin D MacleadAustraliaIoni Bowcher NEGOTIATION
Aditya W SlusarskiGermanyIoni Bowcher PROPOSAL
Morrow G SergiBrazilAsiya Javayant NEGOTIATION
Deepesh D NestleUnited KingdomAsiya Javayant RENEWAL
Claire D MaletIndiaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones K RimSpainAsiya Javayant UNQUALIFIED
Antonio J NestleBrazilBernardo Dominic NEW
Aruna R BowleyFranceStephen Shaw NEGOTIATION
Faith X AmigonRussiaAsiya Javayant QUALIFIED
Kaitlin O DilliardBrazilElwin Sharvill NEW
Aika S MaletJapanAmy Elsner RENEWAL
Nicolas R IturbideIndiaAnna Fali NEW
Maisha H AlbaresUnited KingdomStephen Shaw PROPOSAL
Stacey M NickaCanadaAmy Elsner RENEWAL
Smith N AmigonUnited KingdomXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore J SlusarskiSpain2026-07-28Commercial Press UNQUALIFIED47Anna Fali
1001Misaki J WhobreyBrazil2026-07-21Printing Dimensions QUALIFIED11Bernardo Dominic
1002Munro Z SlusarskiBrazil2026-07-30Buckley Miller Wright NEGOTIATION2Ioni Bowcher
1003Maisha Y StensethItaly2026-07-20Printing Dimensions NEGOTIATION57Ivan Magalhaes
1004Mayumi J AlbaresIndia2026-07-31Commercial Press QUALIFIED30Ivan Magalhaes
1005Costa X GillianJapan2026-07-22Chanay, Jeffrey A Esq NEGOTIATION76Ioni Bowcher
1006Nicolas F MarrierCanada2026-07-22Truhlar And Truhlar Attys UNQUALIFIED53Xuxue Feng
1007Alejandro M FerenczFrance2026-08-06Truhlar And Truhlar Attys UNQUALIFIED49Onyama Limba
1008Ashley P StockhamUnited Kingdom2026-07-20Truhlar And Truhlar Attys PROPOSAL18Anna Fali
1009Smith P CaudyUnited Kingdom2026-07-29Chanay, Jeffrey A Esq RENEWAL32Anna Fali
1010Salvatore G RulapaughFrance2026-08-04Dorl, James J Esq UNQUALIFIED86Anna Fali
1011Salvatore V WaycottArgentina2026-08-01Feltz Printing Service RENEWAL4Amy Elsner
1012Silvio T GlickArgentina2026-07-22Dorl, James J Esq NEW47Anna Fali
1013Nicolas W RoysterFrance2026-07-09King, Christopher A Esq UNQUALIFIED32Anna Fali
1014Francesco Q WaycottAustralia2026-07-14Printing Dimensions UNQUALIFIED1Bernardo Dominic
1015Claire F GauchoIndia2026-07-15Benton, John B Jr QUALIFIED31Xuxue Feng
1016Greenwood I CaudyArgentina2026-07-22Commercial Press NEGOTIATION27Stephen Shaw
1017Isabel I SchemmerCanada2026-07-24Morlong Associates NEGOTIATION93Asiya Javayant
1018Leja K InouyeGermany2026-07-30Printing Dimensions UNQUALIFIED69Ioni Bowcher
1019Misaki A RimUnited Kingdom2026-07-28King, Christopher A Esq QUALIFIED40Xuxue Feng
1020Isabel P SergiIndia2026-07-25King, Christopher A Esq PROPOSAL55Stephen Shaw
1021Kaitlin N WieserGermany2026-08-01Commercial Press QUALIFIED29Ioni Bowcher
1022Emily G CaudySpain2026-07-08Morlong Associates QUALIFIED36Stephen Shaw
1023Arvin X MacleadItaly2026-07-15Truhlar And Truhlar Attys NEGOTIATION98Anna Fali
1024Aruna C BologniaIndia2026-08-01Buckley Miller Wright NEW48Amy Elsner
1025Darci U FlosiItaly2026-07-16Benton, John B Jr NEGOTIATION74Ioni Bowcher
1026Emily P CampainRussia2026-08-03Benton, John B Jr PROPOSAL80Amy Elsner
1027Smith P InouyeGermany2026-07-26Chapman, Ross E Esq RENEWAL95Xuxue Feng
1028Julie Y VenereItaly2026-07-28Dorl, James J Esq NEGOTIATION46Ivan Magalhaes
1029Aika T MaletGermany2026-08-03Morlong Associates PROPOSAL75Anna Fali
1030Leon B WaycottCanada2026-07-11King, Christopher A Esq NEGOTIATION21Asiya Javayant
1031Cody B ChuiFrance2026-07-22Benton, John B Jr UNQUALIFIED71Stephen Shaw
1032Alejandro T SlusarskiIndia2026-07-30Chapman, Ross E Esq PROPOSAL70Bernardo Dominic
1033Clifford X FerenczJapan2026-07-10Benton, John B Jr NEGOTIATION48Stephen Shaw
1034Johnson H AmigonCanada2026-08-04Chemel, James L Cpa QUALIFIED38Onyama Limba
1035Maisha I GillianItaly2026-07-18Chemel, James L Cpa NEW74Onyama Limba
1036Murillo H WhobreyBrazil2026-07-13Feiner Bros NEW71Stephen Shaw
1037Leja U NestleSpain2026-07-13Feltz Printing Service NEGOTIATION35Anna Fali
1038Deepesh W SergiArgentina2026-07-18Morlong Associates NEW80Stephen Shaw
1039David V BriddickJapan2026-08-05King, Christopher A Esq QUALIFIED80Amy Elsner
1040Wickens G AmigonArgentina2026-07-13Dorl, James J Esq UNQUALIFIED72Amy Elsner
1041Francesco E StockhamSpain2026-07-21Printing Dimensions QUALIFIED30Onyama Limba
1042Costa B DoeFrance2026-08-01Truhlar And Truhlar Attys NEGOTIATION45Anna Fali
1043Chavez T BologniaSpain2026-08-05Chemel, James L Cpa QUALIFIED10Elwin Sharvill
1044Salvatore V NickaAustralia2026-07-09Dorl, James J Esq RENEWAL83Onyama Limba
1045Jennifer C AlbaresIndia2026-07-13Printing Dimensions PROPOSAL88Amy Elsner
1046Nicolas Q FollerBrazil2026-07-12Truhlar And Truhlar Attys NEGOTIATION90Ivan Magalhaes
1047Adams U BriddickUnited Kingdom2026-07-15Feiner Bros NEGOTIATION74Ivan Magalhaes
1048Morrow Q FollerSpain2026-07-18Rangoni Of Florence NEW25Ivan Magalhaes
1049Munro I NestleCanada2026-07-15Morlong Associates RENEWAL45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Johnson Z FollerRussiaOnyama Limba NEW
Antonio M ChuiItalyBernardo Dominic QUALIFIED
Morrow K SergiFranceIvan Magalhaes NEW
Octavia Z KolmetzAustraliaElwin Sharvill QUALIFIED
Silvio O ButtUnited KingdomBernardo Dominic QUALIFIED
Rodrigues K PaprockiJapanBernardo Dominic RENEWAL
Smith E MaletJapanStephen Shaw NEW
Alejandro P FigeroaGermanyAmy Elsner NEW
Darci V KolmetzArgentinaXuxue Feng RENEWAL
Ashley V WaycottUnited KingdomOnyama Limba NEW
Costa I VenereRussiaIvan Magalhaes NEGOTIATION
Rodrigues A CampainJapanIoni Bowcher PROPOSAL
Jennifer Q PerinArgentinaOnyama Limba NEGOTIATION
Ivar F OstroskyRussiaIvan Magalhaes QUALIFIED
Maria Z TollnerRussiaElwin Sharvill NEW
Leon P ShinkoBrazilElwin Sharvill NEGOTIATION
Salvatore H MarrierFranceAsiya Javayant UNQUALIFIED
Deepesh D SlusarskiIndiaElwin Sharvill NEW
Deepesh N ShinkoJapanXuxue Feng NEW
Clifford U SchemmerIndiaOnyama Limba QUALIFIED
Isabel A NickaSpainBernardo Dominic NEW
Smith Y SlusarskiArgentinaIvan Magalhaes NEW
Salvatore N RutaSpainAsiya Javayant NEW
Maisha T GillianUnited KingdomElwin Sharvill NEW
Francesco I BologniaSpainStephen Shaw NEW
Antonio F VenereIndiaElwin Sharvill PROPOSAL
Maria S VenereBrazilOnyama Limba NEGOTIATION
Tony T MorascaCanadaOnyama Limba PROPOSAL
Jeanfrancois F BriddickSpainAmy Elsner PROPOSAL
Aruna W SaylorsItalyIvan Magalhaes PROPOSAL
Arvin B BowleyCanadaIoni Bowcher RENEWAL
Aditya P OstroskyFranceIvan Magalhaes UNQUALIFIED
Leja S VenereRussiaIvan Magalhaes QUALIFIED
Rodrigues K RulapaughItalyXuxue Feng NEGOTIATION
Smith R InouyeUnited KingdomBernardo Dominic PROPOSAL
Maria E SchemmerItalyAnna Fali PROPOSAL
Nicolas L RulapaughArgentinaIvan Magalhaes NEGOTIATION
David K StockhamJapanStephen Shaw QUALIFIED
Morrow V MaletIndiaOnyama Limba UNQUALIFIED
Julie S InouyeGermanyIvan Magalhaes RENEWAL
Ashley O StockhamCanadaIoni Bowcher QUALIFIED
Sinclair J ChuiRussiaXuxue Feng NEW
Mayumi X SlusarskiSpainBernardo Dominic NEGOTIATION
Silvio Q BologniaJapanIoni Bowcher RENEWAL
Costa E DoeIndiaXuxue Feng QUALIFIED
Aika A OstroskyRussiaOnyama Limba UNQUALIFIED
Julie F FlosiIndiaStephen Shaw NEGOTIATION
Aditya M BologniaItalyAmy Elsner RENEWAL
Maisha M MorascaGermanyOnyama Limba QUALIFIED
Clifford W VocelkaItalyStephen Shaw PROPOSAL
Frozen Columns
Name
Claire H Kolmetz
Aruna X Flosi
Adams A Garufi
Rodrigues E Ruta
Ivar L Flosi
Kaitlin S Amigon
Stacey U Glick
Aditya A Rulapaugh
Stacey N Nestle
Antonio S Glick
Aditya X Amigon
Jeanfrancois L Perin
Jones M Nicka
Jennifer C Slusarski
Silvio S Stockham
Leja J Ferencz
Mayumi Q Figeroa
Greenwood V Figeroa
Salvatore H Inouye
Francesco S Morasca
Stacey W Sergi
Cody U Vocelka
Morrow H Stenseth
Faith D Malet
David N Dilliard
Kadeem A Stockham
Maisha Q Gillian
Ashley X Flosi
Salvatore V Waycott
Darci Q Paprocki
Jones Y Morasca
Cody Z Caldarera
Jones O Shinko
Mayumi E Iturbide
Octavia S Stockham
Octavia T Morasca
Aditya X Campain
Wickens T Flosi
Aditya J Rulapaugh
Alejandro F Malet
Tony Z Malet
Jennifer B Garufi
Julie G Flosi
Munro U Figeroa
Cody B Stenseth
Sinclair C Flosi
Ashley V Flosi
Aruna M Kolmetz
Adams J Wieser
Chavez S Slusarski
IdCountryDate
1000Russia2026-07-18
1001Spain2026-07-14
1002Australia2026-07-26
1003France2026-07-29
1004India2026-07-29
1005Canada2026-07-27
1006Australia2026-08-03
1007Brazil2026-08-04
1008India2026-07-26
1009Australia2026-07-27
1010Brazil2026-07-20
1011Germany2026-07-21
1012France2026-07-11
1013Germany2026-07-09
1014Australia2026-07-26
1015Spain2026-07-14
1016Japan2026-07-13
1017Spain2026-07-09
1018Argentina2026-08-02
1019India2026-07-18
1020Germany2026-08-02
1021United Kingdom2026-08-05
1022Argentina2026-07-17
1023Russia2026-08-01
1024Spain2026-07-24
1025Brazil2026-07-10
1026India2026-07-27
1027Australia2026-07-19
1028Argentina2026-07-25
1029Australia2026-07-24
1030Japan2026-07-18
1031Spain2026-07-12
1032India2026-07-29
1033France2026-07-11
1034Brazil2026-07-28
1035United Kingdom2026-07-09
1036Italy2026-07-31
1037Japan2026-07-17
1038Russia2026-07-25
1039India2026-07-11
1040Spain2026-07-23
1041Italy2026-07-23
1042Canada2026-07-16
1043Argentina2026-07-29
1044Australia2026-07-22
1045Brazil2026-07-16
1046Spain2026-07-22
1047Spain2026-07-09
1048Spain2026-07-18
1049Japan2026-07-30

On-Demand Data

NameIdCountryDate
Ricardo W Dilliard1000United Kingdom2026-07-28
Izzy X Waycott1001Brazil2026-08-02
Alejandro M Darakjy1002Canada2026-08-06
Costa N Sergi1003Japan2026-08-01
Francesco C Royster1004Australia2026-08-05
Misaki E Venere1005Australia2026-07-19
Silvio P Campain1006Australia2026-07-25
Smith B Darakjy1007India2026-07-11
Aika N Nicka1008France2026-07-20
Julie H Flosi1009Canada2026-08-04
Deepesh Q Stenseth1010Italy2026-08-03
Mayumi H Maclead1011Spain2026-08-05
Tony M Gaucho1012Argentina2026-08-01
Adams Q Oldroyd1013Germany2026-07-14
James P Vocelka1014Germany2026-07-18
Jones K Paprocki1015Italy2026-07-18
Isabel Z Schemmer1016Brazil2026-07-31
Octavia S Gaucho1017Italy2026-07-28
Ivar C Malet1018Australia2026-08-04
Chavez R Gillian1019Russia2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem J RulapaughGermanyAsiya Javayant NEW
Arvin P VenereGermanyAnna Fali QUALIFIED
Izzy I PoquetteItalyIvan Magalhaes QUALIFIED
James D KolmetzRussiaAsiya Javayant RENEWAL
Arvin P GillianRussiaStephen Shaw NEGOTIATION
Claire U MarrierSpainStephen Shaw NEGOTIATION
Cody W KuskoSpainAmy Elsner PROPOSAL
Aika Q KolmetzJapanIoni Bowcher RENEWAL
Clifford P KolmetzIndiaAnna Fali NEGOTIATION
Faith O WaycottUnited KingdomIvan Magalhaes QUALIFIED
Arvin T BriddickAustraliaXuxue Feng UNQUALIFIED
Faith X CampainBrazilAsiya Javayant NEGOTIATION
Leon O BriddickFranceAmy Elsner QUALIFIED
Julie F BowleyBrazilStephen Shaw NEGOTIATION
Jeanfrancois W ShinkoJapanBernardo Dominic NEW
Alejandro K WieserArgentinaElwin Sharvill UNQUALIFIED
Chavez D SergiJapanAsiya Javayant NEGOTIATION
Francesco I OstroskyGermanyStephen Shaw RENEWAL
Aruna Q CampainArgentinaXuxue Feng NEW
Juan Z NestleBrazilOnyama Limba NEGOTIATION
Sinclair F SlusarskiRussiaIoni Bowcher UNQUALIFIED
Silvio X IturbideArgentinaOnyama Limba QUALIFIED
Maisha M RoysterUnited KingdomOnyama Limba QUALIFIED
Emily G RulapaughIndiaXuxue Feng RENEWAL
Nicolas A FollerItalyElwin Sharvill NEGOTIATION
Octavia V AmigonFranceBernardo Dominic NEGOTIATION
Alejandro G RimRussiaStephen Shaw QUALIFIED
Aditya E MaletRussiaIoni Bowcher UNQUALIFIED
Leon E PaprockiAustraliaAmy Elsner NEGOTIATION
Leja Z MorascaUnited KingdomBernardo Dominic NEGOTIATION
Nicolas R NestleUnited KingdomAnna Fali UNQUALIFIED
Salvatore H PerinUnited KingdomAnna Fali QUALIFIED
Morrow A RutaUnited KingdomIoni Bowcher NEGOTIATION
Nicolas J SaylorsBrazilIoni Bowcher NEGOTIATION
Jeanfrancois S NestleAustraliaAmy Elsner NEGOTIATION
Adams Q MaletRussiaElwin Sharvill UNQUALIFIED
Misaki A GarufiBrazilIvan Magalhaes NEGOTIATION
Kadeem U NickaFranceElwin Sharvill UNQUALIFIED
Kaitlin Q MarrierIndiaBernardo Dominic PROPOSAL
Costa T WieserItalyIoni 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>