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
David X OstroskyCanadaAnna Fali PROPOSAL
Leja L AmigonBrazilAmy Elsner UNQUALIFIED
Alejandro R CampainItalyElwin Sharvill RENEWAL
Maria J BriddickUnited KingdomIoni Bowcher NEGOTIATION
Arvin T MaletUnited KingdomIvan Magalhaes NEW
Costa O OstroskyAustraliaStephen Shaw PROPOSAL
Jefferson J RulapaughIndiaIoni Bowcher RENEWAL
Adams M MacleadJapanIoni Bowcher NEW
Alejandro E VocelkaIndiaAnna Fali UNQUALIFIED
Juan A GillianFranceAmy Elsner NEW
James I OldroydJapanOnyama Limba NEW
Chavez Q RimUnited KingdomAmy Elsner UNQUALIFIED
Francesco N AlbaresCanadaOnyama Limba PROPOSAL
Murillo C GillianArgentinaAnna Fali NEW
Smith Y DoeAustraliaOnyama Limba NEW
Kaitlin A GauchoArgentinaAnna Fali UNQUALIFIED
Ivar F RimAustraliaIvan Magalhaes RENEWAL
Tony N NickaIndiaAnna Fali NEW
Francesco L PerinArgentinaIvan Magalhaes QUALIFIED
Silvio Q PoquetteItalyOnyama Limba NEGOTIATION
James W KolmetzCanadaAsiya Javayant NEW
Leon D MarrierBrazilOnyama Limba QUALIFIED
Alejandro D GillianArgentinaAsiya Javayant PROPOSAL
Julie D GarufiItalyBernardo Dominic PROPOSAL
Salvatore V SchemmerJapanIvan Magalhaes NEGOTIATION
Morrow H GauchoIndiaAsiya Javayant QUALIFIED
Wickens R DarakjyBrazilOnyama Limba NEGOTIATION
Maria E MorascaIndiaAmy Elsner RENEWAL
Leon Y WieserSpainOnyama Limba NEW
Cody F SaylorsGermanyAnna Fali NEW
Julie G RutaIndiaElwin Sharvill UNQUALIFIED
Chavez F WhobreyAustraliaStephen Shaw PROPOSAL
Claire T DoeCanadaIoni Bowcher PROPOSAL
Silvio W PerinCanadaIvan Magalhaes PROPOSAL
James Z NickaGermanyAmy Elsner NEW
Antonio N MacleadGermanyXuxue Feng NEW
Sinclair O RulapaughItalyAmy Elsner NEGOTIATION
Johnson U KuskoFranceAmy Elsner NEGOTIATION
Adams J OstroskyUnited KingdomBernardo Dominic PROPOSAL
Kaitlin S KolmetzFranceIoni Bowcher NEW
Chavez C KuskoCanadaAmy Elsner UNQUALIFIED
Jefferson R AmigonBrazilOnyama Limba UNQUALIFIED
Murillo F AlbaresAustraliaAmy Elsner UNQUALIFIED
Faith T SaylorsJapanBernardo Dominic PROPOSAL
Maisha J FigeroaIndiaElwin Sharvill NEGOTIATION
Costa B ButtJapanXuxue Feng PROPOSAL
Misaki X BologniaIndiaBernardo Dominic RENEWAL
Aika M MaletJapanElwin Sharvill PROPOSAL
Cody N RimUnited KingdomElwin Sharvill NEGOTIATION
Ashley P TollnerItalyIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mayumi Z GarufiJapanOnyama Limba QUALIFIED
Octavia G PaprockiIndiaAsiya Javayant NEW
Kadeem E OstroskyFranceAsiya Javayant QUALIFIED
Johnson A VenereRussiaBernardo Dominic NEGOTIATION
Faith I MacleadJapanBernardo Dominic RENEWAL
Munro W SaylorsAustraliaXuxue Feng UNQUALIFIED
Emily H MarrierSpainIoni Bowcher RENEWAL
Jeanfrancois E GlickItalyOnyama Limba PROPOSAL
Maria L RulapaughAustraliaAmy Elsner RENEWAL
Wickens I ButtUnited KingdomBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily Y SchemmerAustralia2026-08-14Benton, John B Jr QUALIFIED51Anna Fali
1001James V GillianGermany2026-08-20Rangoni Of Florence NEGOTIATION35Bernardo Dominic
1002Octavia S ShinkoArgentina2026-08-19Truhlar And Truhlar Attys PROPOSAL96Amy Elsner
1003Adams N GauchoUnited Kingdom2026-08-01Dorl, James J Esq NEW19Amy Elsner
1004Ivar Z RulapaughAustralia2026-08-16Feltz Printing Service NEGOTIATION36Asiya Javayant
1005Deepesh Z PaprockiJapan2026-07-25Chapman, Ross E Esq NEGOTIATION29Stephen Shaw
1006Clifford O VenereGermany2026-08-07Chapman, Ross E Esq NEW42Ivan Magalhaes
1007Mayumi P MacleadRussia2026-07-31Benton, John B Jr QUALIFIED58Onyama Limba
1008Johnson L PerinGermany2026-07-24Dorl, James J Esq QUALIFIED5Ioni Bowcher
1009James X GillianSpain2026-08-14Chanay, Jeffrey A Esq RENEWAL90Bernardo Dominic
1010Faith K CampainRussia2026-07-23Morlong Associates UNQUALIFIED12Ivan Magalhaes
1011Leon V WaycottFrance2026-08-16Benton, John B Jr NEGOTIATION37Amy Elsner
1012Aruna K FerenczItaly2026-08-09King, Christopher A Esq RENEWAL0Stephen Shaw
1013Jones P OldroydAustralia2026-08-15Dorl, James J Esq NEW96Ivan Magalhaes
1014Leon A OstroskySpain2026-08-16Feltz Printing Service UNQUALIFIED5Anna Fali
1015Sinclair R PoquetteSpain2026-07-31Feiner Bros QUALIFIED43Asiya Javayant
1016Isabel X WaycottItaly2026-07-28Rangoni Of Florence RENEWAL36Anna Fali
1017Leja P WaycottArgentina2026-08-18Dorl, James J Esq NEW21Amy Elsner
1018Salvatore F SchemmerArgentina2026-08-08Chemel, James L Cpa RENEWAL77Ioni Bowcher
1019Faith D KuskoUnited Kingdom2026-08-18Benton, John B Jr QUALIFIED13Elwin Sharvill
1020Smith F ButtAustralia2026-08-03Rousseaux, Michael Esq NEGOTIATION32Stephen Shaw
1021James C DilliardItaly2026-08-10Chanay, Jeffrey A Esq QUALIFIED96Ioni Bowcher
1022Wickens G RulapaughRussia2026-08-06Rangoni Of Florence PROPOSAL80Ivan Magalhaes
1023Ashley J BowleyIndia2026-08-17Rangoni Of Florence PROPOSAL47Elwin Sharvill
1024Julie C NickaCanada2026-08-12Rangoni Of Florence RENEWAL56Anna Fali
1025Salvatore E SergiSpain2026-08-13Commercial Press UNQUALIFIED77Ivan Magalhaes
1026Faith Z AmigonGermany2026-08-19Chanay, Jeffrey A Esq RENEWAL22Onyama Limba
1027Mayumi J WieserFrance2026-08-17Feiner Bros NEGOTIATION21Stephen Shaw
1028Jeanfrancois L TollnerUnited Kingdom2026-08-07Commercial Press PROPOSAL61Stephen Shaw
1029Arvin J KuskoAustralia2026-08-12Rousseaux, Michael Esq QUALIFIED92Xuxue Feng
1030Jennifer G StensethArgentina2026-08-07Chapman, Ross E Esq PROPOSAL50Ioni Bowcher
1031Arvin E FigeroaItaly2026-08-02Chanay, Jeffrey A Esq QUALIFIED25Stephen Shaw
1032Tony H SlusarskiBrazil2026-08-03Rousseaux, Michael Esq PROPOSAL27Onyama Limba
1033Leon N GillianFrance2026-08-15Printing Dimensions UNQUALIFIED71Xuxue Feng
1034Deepesh B KolmetzRussia2026-07-30Truhlar And Truhlar Attys RENEWAL74Ivan Magalhaes
1035Cody R FerenczAustralia2026-08-20King, Christopher A Esq NEW30Bernardo Dominic
1036Mujtaba S DilliardRussia2026-07-30Chanay, Jeffrey A Esq NEGOTIATION25Bernardo Dominic
1037Cody Z FlosiUnited Kingdom2026-08-14Feiner Bros RENEWAL40Amy Elsner
1038Jennifer D PoquetteAustralia2026-08-15Chapman, Ross E Esq PROPOSAL42Elwin Sharvill
1039Darci L ShinkoArgentina2026-08-11Commercial Press QUALIFIED1Stephen Shaw
1040Jennifer Z ButtAustralia2026-07-26Dorl, James J Esq RENEWAL67Anna Fali
1041Murillo Y ButtSpain2026-07-22Benton, John B Jr NEGOTIATION97Xuxue Feng
1042Octavia J FlosiUnited Kingdom2026-08-07Chanay, Jeffrey A Esq PROPOSAL15Bernardo Dominic
1043Morrow O SaylorsArgentina2026-08-03Buckley Miller Wright NEW12Amy Elsner
1044Johnson I ChuiRussia2026-07-26Commercial Press NEW80Asiya Javayant
1045Johnson Y MorascaItaly2026-08-13Feiner Bros UNQUALIFIED34Asiya Javayant
1046Ricardo C KolmetzArgentina2026-08-19Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1047Ivar H RimRussia2026-08-18Commercial Press NEW27Asiya Javayant
1048Smith N RoysterCanada2026-08-10Buckley Miller Wright NEW59Ioni Bowcher
1049Wickens A CampainUnited Kingdom2026-08-14Feltz Printing Service UNQUALIFIED66Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Darci K ChuiBrazilBernardo Dominic PROPOSAL
Izzy P WieserAustraliaOnyama Limba PROPOSAL
Johnson R CaudyFranceBernardo Dominic NEW
Octavia M StensethIndiaXuxue Feng UNQUALIFIED
Ashley B TollnerBrazilIoni Bowcher NEGOTIATION
Clifford G NestleArgentinaElwin Sharvill RENEWAL
Smith B ChuiItalyXuxue Feng RENEWAL
Misaki R GillianIndiaBernardo Dominic NEGOTIATION
Johnson V MorascaJapanIoni Bowcher RENEWAL
Isabel Y FollerAustraliaOnyama Limba NEW
Mayumi O InouyeBrazilXuxue Feng QUALIFIED
Alejandro Q GlickArgentinaIvan Magalhaes NEW
Ivar S BologniaUnited KingdomAnna Fali NEW
Kaitlin D KuskoSpainIoni Bowcher UNQUALIFIED
Claire W InouyeSpainStephen Shaw QUALIFIED
Maisha Y AlbaresGermanyAnna Fali NEW
David X ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba P ShinkoBrazilElwin Sharvill RENEWAL
Julie J KolmetzItalyOnyama Limba PROPOSAL
Isabel T RoysterFranceOnyama Limba UNQUALIFIED
Costa W GauchoGermanyAnna Fali QUALIFIED
Munro T SaylorsSpainXuxue Feng UNQUALIFIED
Izzy M AlbaresFranceAsiya Javayant QUALIFIED
Chavez G AlbaresItalyAnna Fali RENEWAL
Isabel Q BologniaSpainAsiya Javayant PROPOSAL
Jones X GillianRussiaIvan Magalhaes RENEWAL
Emily Z AlbaresFranceXuxue Feng NEW
Juan E KolmetzBrazilOnyama Limba UNQUALIFIED
Salvatore A MaletIndiaIvan Magalhaes NEGOTIATION
Smith R PaprockiItalyStephen Shaw RENEWAL
Darci X IturbideUnited KingdomElwin Sharvill RENEWAL
Aditya A CampainAustraliaIoni Bowcher UNQUALIFIED
Sinclair X VenereArgentinaAmy Elsner NEGOTIATION
Deepesh R PoquetteGermanyElwin Sharvill PROPOSAL
Misaki F WaycottArgentinaIoni Bowcher QUALIFIED
Julie V MaletUnited KingdomIvan Magalhaes NEW
Rodrigues C AmigonSpainXuxue Feng UNQUALIFIED
Tony E GarufiCanadaElwin Sharvill PROPOSAL
Sinclair N InouyeFranceOnyama Limba UNQUALIFIED
Murillo J InouyeItalyIvan Magalhaes UNQUALIFIED
Johnson V MorascaFranceXuxue Feng QUALIFIED
Ricardo L GlickSpainAnna Fali RENEWAL
Deepesh B PoquetteJapanAnna Fali NEW
Jennifer J MaletItalyAnna Fali UNQUALIFIED
Adams Y CaldareraGermanyAmy Elsner UNQUALIFIED
Rodrigues I SergiUnited KingdomAmy Elsner PROPOSAL
Claire S CaldareraGermanyOnyama Limba PROPOSAL
Kadeem E IturbideSpainIoni Bowcher PROPOSAL
Arvin X BologniaAustraliaOnyama Limba QUALIFIED
Clifford W RoysterUnited KingdomXuxue Feng RENEWAL
Frozen Columns
Name
Jennifer M Dilliard
Emily R Ruta
Aika P Darakjy
Morrow M Figeroa
Murillo B Tollner
Murillo J Nestle
Alejandro V Chui
Ricardo Q Slusarski
Rodrigues P Foller
Juan P Vocelka
Juan W Kolmetz
Cody V Inouye
Darci S Foller
Ashley P Shinko
Maisha Q Dilliard
Costa J Gaucho
Julie I Perin
Mayumi J Marrier
Murillo C Poquette
Faith I Whobrey
Aika F Venere
Rodrigues M Venere
Maisha X Gillian
Morrow I Gillian
Kadeem Q Briddick
Aruna O Oldroyd
James R Gillian
Isabel L Gillian
Mujtaba O Bowley
Leon V Nicka
Emily O Stockham
Faith R Ostrosky
Jones Y Saylors
Maria M Tollner
Kaitlin Q Perin
Ricardo U Ostrosky
Darci S Gaucho
Jennifer V Bowley
Rodrigues H Ruta
David I Slusarski
Adams X Rim
Darci K Gaucho
Jeanfrancois Z Morasca
James B Paprocki
Maria P Morasca
Claire J Caldarera
Izzy O Briddick
David O Paprocki
Mujtaba H Stockham
Claire O Shinko
IdCountryDate
1000Canada2026-08-13
1001United Kingdom2026-08-17
1002Italy2026-08-15
1003Germany2026-08-11
1004Germany2026-08-03
1005Brazil2026-07-27
1006Japan2026-08-08
1007Brazil2026-08-10
1008Brazil2026-08-15
1009Brazil2026-07-30
1010France2026-08-09
1011Germany2026-08-02
1012Brazil2026-08-06
1013Brazil2026-07-28
1014Argentina2026-08-03
1015Japan2026-08-11
1016Australia2026-08-03
1017Russia2026-08-02
1018Brazil2026-08-09
1019France2026-08-18
1020Brazil2026-08-06
1021Canada2026-08-16
1022Germany2026-08-13
1023Russia2026-07-25
1024France2026-07-22
1025India2026-08-04
1026Spain2026-08-18
1027Spain2026-08-17
1028Argentina2026-08-06
1029Italy2026-08-05
1030Japan2026-08-08
1031Australia2026-08-14
1032United Kingdom2026-08-02
1033United Kingdom2026-07-31
1034Canada2026-07-30
1035Canada2026-08-12
1036Russia2026-07-30
1037France2026-08-18
1038Spain2026-08-11
1039Brazil2026-08-01
1040Canada2026-08-20
1041Italy2026-08-19
1042Russia2026-08-07
1043Brazil2026-07-22
1044Spain2026-07-25
1045Australia2026-07-31
1046Japan2026-08-19
1047Russia2026-08-09
1048Russia2026-08-06
1049Russia2026-07-27

On-Demand Data

NameIdCountryDate
Johnson G Ostrosky1000France2026-08-11
Kaitlin X Maclead1001France2026-08-17
Sinclair D Butt1002Canada2026-08-07
Aditya S Nestle1003Argentina2026-08-03
Clifford Y Waycott1004France2026-07-23
Kaitlin K Stockham1005Germany2026-07-30
Jennifer J Amigon1006Argentina2026-07-31
Aruna T Nestle1007United Kingdom2026-07-28
Tony R Wieser1008Spain2026-07-22
Aditya R Slusarski1009Germany2026-08-03
Johnson T Foller1010Argentina2026-08-05
Costa Q Caldarera1011Australia2026-07-31
Darci F Bowley1012India2026-08-19
Isabel D Ferencz1013India2026-08-15
Aika I Briddick1014Argentina2026-07-22
Stacey U Darakjy1015Spain2026-08-08
Octavia C Caudy1016Germany2026-07-25
Nicolas S Garufi1017Italy2026-08-18
Antonio M Figeroa1018Japan2026-08-07
Murillo S Figeroa1019India2026-08-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy E WaycottSpainAsiya Javayant NEGOTIATION
Leja E WhobreyRussiaIoni Bowcher RENEWAL
Stacey P DarakjyCanadaElwin Sharvill QUALIFIED
Murillo I DoeSpainOnyama Limba NEW
Salvatore V InouyeAustraliaElwin Sharvill RENEWAL
Mayumi U CaudyBrazilBernardo Dominic UNQUALIFIED
Jeanfrancois X ShinkoFranceIoni Bowcher PROPOSAL
Ashley L MaletFranceOnyama Limba QUALIFIED
Mujtaba Y BriddickJapanIoni Bowcher NEW
Munro A IturbideAustraliaOnyama Limba RENEWAL
Smith D PerinRussiaStephen Shaw PROPOSAL
Maisha P MorascaBrazilAmy Elsner NEGOTIATION
Chavez Q BriddickAustraliaAsiya Javayant NEW
Faith E ChuiGermanyIvan Magalhaes UNQUALIFIED
Ashley S PaprockiJapanIoni Bowcher PROPOSAL
Greenwood A MarrierIndiaIvan Magalhaes RENEWAL
Francesco R OldroydItalyIvan Magalhaes NEW
Deepesh Y RulapaughArgentinaOnyama Limba NEGOTIATION
Clifford Y RulapaughJapanElwin Sharvill NEW
Wickens G OstroskyAustraliaIvan Magalhaes PROPOSAL
Nicolas W MaletRussiaBernardo Dominic PROPOSAL
Maisha A DoeRussiaAsiya Javayant QUALIFIED
Sinclair B RimAustraliaOnyama Limba UNQUALIFIED
Isabel H MarrierCanadaAsiya Javayant UNQUALIFIED
Cody V PerinGermanyIvan Magalhaes QUALIFIED
Claire Y CaudyUnited KingdomXuxue Feng RENEWAL
Salvatore A CaudyJapanIoni Bowcher NEGOTIATION
Julie O SlusarskiRussiaBernardo Dominic RENEWAL
Mayumi L RulapaughItalyXuxue Feng QUALIFIED
Murillo G SlusarskiBrazilAnna Fali NEGOTIATION
Salvatore K TollnerRussiaAmy Elsner QUALIFIED
Arvin I GauchoBrazilAsiya Javayant NEGOTIATION
Jones T SaylorsRussiaElwin Sharvill UNQUALIFIED
Deepesh K FigeroaBrazilElwin Sharvill NEW
Silvio H FigeroaCanadaIvan Magalhaes NEW
Aditya B BowleyCanadaStephen Shaw UNQUALIFIED
Emily E ButtBrazilElwin Sharvill UNQUALIFIED
Octavia S AlbaresAustraliaStephen Shaw RENEWAL
Mujtaba Z BologniaItalyBernardo Dominic UNQUALIFIED
Ricardo O NestleBrazilBernardo Dominic 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>