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
Alejandro K GauchoJapanOnyama Limba QUALIFIED
Octavia E StockhamSpainOnyama Limba UNQUALIFIED
Aditya S WieserItalyXuxue Feng RENEWAL
Maria E WaycottCanadaBernardo Dominic UNQUALIFIED
Stacey X InouyeJapanIvan Magalhaes RENEWAL
Misaki U RimFranceAnna Fali UNQUALIFIED
Misaki W GillianFranceElwin Sharvill QUALIFIED
Greenwood D FerenczIndiaElwin Sharvill RENEWAL
Izzy R DarakjyIndiaAsiya Javayant RENEWAL
Juan A WhobreyRussiaElwin Sharvill NEW
Nicolas R OldroydGermanyOnyama Limba QUALIFIED
James I KuskoCanadaIoni Bowcher NEW
Mayumi N MacleadRussiaXuxue Feng NEW
Octavia X StockhamGermanyElwin Sharvill PROPOSAL
Claire X WaycottFranceAmy Elsner PROPOSAL
Johnson C MacleadItalyAnna Fali QUALIFIED
Kaitlin J AmigonItalyXuxue Feng PROPOSAL
Jennifer M WhobreyItalyAsiya Javayant NEGOTIATION
Rodrigues B MaletFranceAmy Elsner NEW
Clifford V MaletFranceAnna Fali QUALIFIED
Octavia U GlickCanadaAsiya Javayant QUALIFIED
Izzy A AlbaresItalyAnna Fali NEW
Leon R AlbaresCanadaIvan Magalhaes NEW
Kaitlin U NestleJapanAnna Fali NEGOTIATION
Antonio X ButtSpainBernardo Dominic UNQUALIFIED
Mujtaba A FerenczGermanyOnyama Limba NEGOTIATION
Mayumi E BowleyGermanyStephen Shaw RENEWAL
Faith T MacleadItalyIoni Bowcher QUALIFIED
Murillo U GillianRussiaXuxue Feng RENEWAL
Nicolas Z RoysterArgentinaOnyama Limba PROPOSAL
Wickens E IturbideAustraliaAnna Fali NEGOTIATION
Misaki X FigeroaAustraliaIoni Bowcher QUALIFIED
Mayumi A InouyeGermanyXuxue Feng NEW
Chavez Z MaletIndiaBernardo Dominic NEGOTIATION
Leja U StensethBrazilStephen Shaw RENEWAL
Isabel Y InouyeBrazilXuxue Feng NEGOTIATION
Misaki A DilliardFranceAsiya Javayant NEW
Tony J KuskoIndiaXuxue Feng NEGOTIATION
Juan S SergiArgentinaAnna Fali QUALIFIED
Julie Y AmigonRussiaIoni Bowcher NEW
Deepesh X OstroskyCanadaOnyama Limba PROPOSAL
Rodrigues E StensethBrazilXuxue Feng NEW
Jennifer N InouyeItalyAnna Fali UNQUALIFIED
Mayumi C MaletGermanyOnyama Limba PROPOSAL
Deepesh K SlusarskiBrazilAmy Elsner NEW
Juan S VenereCanadaIoni Bowcher NEGOTIATION
Jefferson K TollnerIndiaAnna Fali NEW
Jones L MacleadArgentinaAmy Elsner PROPOSAL
Octavia N OstroskyCanadaOnyama Limba PROPOSAL
Costa E OstroskyJapanIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel T GillianCanadaElwin Sharvill UNQUALIFIED
Juan E PoquetteGermanyIvan Magalhaes PROPOSAL
Stacey F NestleCanadaAnna Fali QUALIFIED
Juan E NickaGermanyOnyama Limba NEGOTIATION
Cody S WieserIndiaIoni Bowcher NEW
Costa G OldroydArgentinaIvan Magalhaes NEGOTIATION
Emily B ButtSpainIoni Bowcher NEGOTIATION
Rodrigues N BowleyAustraliaIvan Magalhaes NEW
Jefferson U GillianArgentinaIvan Magalhaes UNQUALIFIED
Maria P ChuiFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria L GauchoRussia2026-08-20Printing Dimensions QUALIFIED89Elwin Sharvill
1001Deepesh D SlusarskiAustralia2026-08-12Rousseaux, Michael Esq NEGOTIATION90Xuxue Feng
1002Francesco H VenereFrance2026-08-01Rangoni Of Florence RENEWAL67Ioni Bowcher
1003Jennifer M AlbaresBrazil2026-08-05Chapman, Ross E Esq NEW26Ivan Magalhaes
1004Rodrigues H SaylorsArgentina2026-08-08Rousseaux, Michael Esq NEW68Asiya Javayant
1005Mujtaba N BowleyGermany2026-08-14Printing Dimensions UNQUALIFIED54Elwin Sharvill
1006Juan J FigeroaIndia2026-08-09Chanay, Jeffrey A Esq PROPOSAL71Onyama Limba
1007Sinclair Z RoysterCanada2026-07-30Rousseaux, Michael Esq NEW57Anna Fali
1008Leja J VocelkaItaly2026-07-30Dorl, James J Esq PROPOSAL70Onyama Limba
1009Isabel B ChuiArgentina2026-08-01Benton, John B Jr UNQUALIFIED30Asiya Javayant
1010Mayumi D AlbaresGermany2026-08-22Dorl, James J Esq RENEWAL46Amy Elsner
1011Octavia T RoysterArgentina2026-08-22Chemel, James L Cpa NEGOTIATION37Bernardo Dominic
1012Chavez K MaletRussia2026-08-05Rousseaux, Michael Esq PROPOSAL19Ivan Magalhaes
1013Jeanfrancois P ButtItaly2026-08-28Morlong Associates NEGOTIATION47Amy Elsner
1014Emily I RulapaughRussia2026-08-07Chapman, Ross E Esq RENEWAL18Amy Elsner
1015Arvin B SlusarskiJapan2026-08-11Chanay, Jeffrey A Esq NEW5Onyama Limba
1016Johnson N SaylorsGermany2026-08-19Chemel, James L Cpa PROPOSAL99Onyama Limba
1017Emily H RimGermany2026-08-04Chemel, James L Cpa UNQUALIFIED82Elwin Sharvill
1018Misaki X NestleJapan2026-08-26Feltz Printing Service NEGOTIATION30Bernardo Dominic
1019Maisha A CaldareraArgentina2026-08-23Dorl, James J Esq PROPOSAL4Anna Fali
1020Claire E NestleIndia2026-07-30Buckley Miller Wright QUALIFIED98Ioni Bowcher
1021Francesco V IturbideArgentina2026-08-18Morlong Associates UNQUALIFIED42Bernardo Dominic
1022Leon L PoquetteFrance2026-08-01Morlong Associates RENEWAL81Xuxue Feng
1023Stacey N BologniaArgentina2026-08-08Commercial Press PROPOSAL3Ioni Bowcher
1024Chavez O GlickFrance2026-08-15Chemel, James L Cpa RENEWAL89Asiya Javayant
1025Chavez Z MarrierUnited Kingdom2026-08-12Chapman, Ross E Esq UNQUALIFIED1Ioni Bowcher
1026Adams U VenereArgentina2026-08-18Feltz Printing Service UNQUALIFIED5Amy Elsner
1027Munro Y MacleadRussia2026-07-31Dorl, James J Esq RENEWAL98Bernardo Dominic
1028Izzy A VocelkaAustralia2026-08-16Feltz Printing Service QUALIFIED68Anna Fali
1029David D SergiUnited Kingdom2026-08-19Commercial Press UNQUALIFIED36Amy Elsner
1030Munro U RimBrazil2026-08-09Rangoni Of Florence RENEWAL47Anna Fali
1031Faith U GarufiAustralia2026-08-14Chanay, Jeffrey A Esq UNQUALIFIED75Elwin Sharvill
1032Aruna L RulapaughAustralia2026-08-24Rangoni Of Florence PROPOSAL54Ioni Bowcher
1033Octavia K CaudyCanada2026-08-09Benton, John B Jr NEGOTIATION56Onyama Limba
1034Leja O BriddickFrance2026-08-08King, Christopher A Esq NEW53Elwin Sharvill
1035Juan R SaylorsItaly2026-08-19Feiner Bros NEGOTIATION45Asiya Javayant
1036Stacey J PaprockiBrazil2026-08-03Commercial Press UNQUALIFIED36Elwin Sharvill
1037Mayumi G KolmetzUnited Kingdom2026-07-31King, Christopher A Esq NEGOTIATION28Xuxue Feng
1038Ashley X DilliardBrazil2026-08-18Commercial Press UNQUALIFIED87Xuxue Feng
1039Emily T NestleArgentina2026-08-08Chapman, Ross E Esq UNQUALIFIED74Anna Fali
1040Maria R NickaIndia2026-08-25Benton, John B Jr NEGOTIATION4Bernardo Dominic
1041Octavia P OstroskyFrance2026-08-17Chanay, Jeffrey A Esq NEGOTIATION16Ioni Bowcher
1042Smith Q GillianRussia2026-08-02Chemel, James L Cpa QUALIFIED17Elwin Sharvill
1043Alejandro U ChuiFrance2026-08-27Chemel, James L Cpa UNQUALIFIED97Xuxue Feng
1044Kaitlin I SaylorsJapan2026-08-08Buckley Miller Wright NEW51Anna Fali
1045Jeanfrancois M SergiSpain2026-08-25Morlong Associates PROPOSAL8Xuxue Feng
1046Misaki L RimUnited Kingdom2026-07-31Truhlar And Truhlar Attys NEGOTIATION1Ivan Magalhaes
1047Juan X CaldareraCanada2026-07-31Rangoni Of Florence NEGOTIATION64Amy Elsner
1048Aika F OstroskyGermany2026-08-27Truhlar And Truhlar Attys QUALIFIED73Asiya Javayant
1049Juan X KolmetzArgentina2026-08-07Buckley Miller Wright QUALIFIED63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow B IturbideItalyAmy Elsner QUALIFIED
Ricardo R BologniaIndiaAmy Elsner PROPOSAL
Adams Y MacleadCanadaXuxue Feng QUALIFIED
Nicolas R KuskoJapanIvan Magalhaes NEGOTIATION
Adams T IturbideUnited KingdomOnyama Limba QUALIFIED
Johnson D GauchoCanadaAmy Elsner NEW
Costa N NickaSpainOnyama Limba PROPOSAL
Stacey A WieserCanadaIoni Bowcher QUALIFIED
Ricardo N RoysterRussiaIoni Bowcher RENEWAL
Leja F StensethAustraliaAnna Fali NEGOTIATION
Ashley T SlusarskiFranceElwin Sharvill PROPOSAL
Darci S DoeArgentinaOnyama Limba QUALIFIED
Arvin R MaletBrazilOnyama Limba UNQUALIFIED
Maisha I AmigonAustraliaIvan Magalhaes PROPOSAL
Munro Z SlusarskiFranceOnyama Limba NEW
Juan X BowleyArgentinaAsiya Javayant QUALIFIED
Ashley R OldroydFranceAsiya Javayant NEW
Wickens W WhobreyJapanIoni Bowcher PROPOSAL
James O GarufiFranceIvan Magalhaes PROPOSAL
Morrow S BriddickIndiaIvan Magalhaes NEW
Smith L OldroydJapanIoni Bowcher NEW
Johnson Z VenereItalyAsiya Javayant QUALIFIED
Isabel V WieserItalyElwin Sharvill RENEWAL
Aika B GillianFranceOnyama Limba RENEWAL
Faith E TollnerIndiaIvan Magalhaes UNQUALIFIED
Ivar B FlosiRussiaIvan Magalhaes PROPOSAL
Ricardo X VocelkaBrazilAmy Elsner RENEWAL
Mayumi X MorascaSpainXuxue Feng UNQUALIFIED
Leon C StensethItalyAsiya Javayant UNQUALIFIED
Stacey V DilliardCanadaBernardo Dominic NEGOTIATION
Jennifer U DilliardAustraliaAmy Elsner QUALIFIED
Rodrigues W FlosiJapanIoni Bowcher NEW
Claire S VenereSpainBernardo Dominic NEGOTIATION
Leon D KuskoUnited KingdomStephen Shaw QUALIFIED
Cody F GillianArgentinaIvan Magalhaes PROPOSAL
Aruna T DarakjyGermanyAmy Elsner UNQUALIFIED
Misaki X ChuiArgentinaElwin Sharvill NEW
Stacey A NestleCanadaIoni Bowcher QUALIFIED
Stacey N GlickGermanyIoni Bowcher PROPOSAL
Cody M SlusarskiRussiaElwin Sharvill UNQUALIFIED
Arvin F CampainBrazilIoni Bowcher RENEWAL
Ashley L ButtBrazilAmy Elsner NEW
Jefferson Z CaudyUnited KingdomAnna Fali RENEWAL
Octavia S NickaCanadaElwin Sharvill NEGOTIATION
Juan H PoquetteIndiaIvan Magalhaes NEGOTIATION
Jefferson Y BologniaJapanXuxue Feng QUALIFIED
Salvatore F CaudySpainStephen Shaw QUALIFIED
James A ChuiFranceIvan Magalhaes UNQUALIFIED
Kaitlin P SergiRussiaAmy Elsner PROPOSAL
Alejandro Q BowleyGermanyIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Cody U Tollner
Alejandro V Briddick
Darci N Nicka
Jeanfrancois X Schemmer
Greenwood U Stockham
Antonio O Wieser
Adams P Nestle
Ivar K Amigon
Misaki P Nestle
David C Briddick
Jefferson B Bowley
Jefferson X Wieser
David Y Darakjy
Mujtaba X Iturbide
Faith L Darakjy
Faith P Figeroa
Stacey P Wieser
Octavia Z Foller
Aruna L Oldroyd
Deepesh M Caldarera
Nicolas U Schemmer
Stacey M Schemmer
Ivar E Tollner
Darci X Amigon
Kadeem C Perin
Jeanfrancois N Briddick
Francesco A Garufi
Kadeem B Kusko
David A Flosi
Mayumi P Inouye
Clifford K Garufi
Chavez E Ruta
Salvatore B Albares
Stacey H Wieser
Mujtaba F Gaucho
Kaitlin S Vocelka
Greenwood B Butt
Chavez A Butt
Emily F Garufi
Ivar Z Nicka
Claire M Caudy
Kadeem P Garufi
Jennifer S Kusko
Antonio G Marrier
Deepesh J Morasca
Wickens U Nestle
Faith P Butt
Johnson F Iturbide
Ivar B Schemmer
Emily J Kusko
IdCountryDate
1000Japan2026-08-27
1001Brazil2026-08-26
1002Brazil2026-08-21
1003Russia2026-08-08
1004Argentina2026-08-12
1005Japan2026-08-18
1006Canada2026-08-06
1007Japan2026-07-30
1008United Kingdom2026-08-04
1009Spain2026-08-20
1010United Kingdom2026-08-05
1011India2026-08-02
1012Brazil2026-08-04
1013France2026-08-18
1014Japan2026-08-27
1015Russia2026-08-21
1016United Kingdom2026-08-18
1017Canada2026-08-15
1018Russia2026-08-01
1019Australia2026-08-25
1020India2026-08-08
1021Italy2026-08-23
1022India2026-08-18
1023Italy2026-07-31
1024United Kingdom2026-08-09
1025India2026-08-28
1026Australia2026-08-08
1027Russia2026-07-30
1028Spain2026-08-27
1029Brazil2026-08-04
1030Argentina2026-08-08
1031United Kingdom2026-08-05
1032France2026-08-08
1033Russia2026-08-17
1034France2026-08-19
1035Argentina2026-08-22
1036United Kingdom2026-08-23
1037Japan2026-08-17
1038Spain2026-08-20
1039India2026-08-22
1040France2026-08-23
1041Canada2026-07-31
1042Germany2026-08-08
1043Russia2026-08-23
1044Canada2026-08-20
1045Argentina2026-08-16
1046Russia2026-08-08
1047Germany2026-08-09
1048Russia2026-08-08
1049Spain2026-08-27

On-Demand Data

NameIdCountryDate
Ashley G Stockham1000Germany2026-08-20
Francesco E Saylors1001Australia2026-08-11
Misaki C Slusarski1002Spain2026-08-09
James Y Schemmer1003Spain2026-08-03
Wickens F Shinko1004United Kingdom2026-08-04
Murillo Q Venere1005Canada2026-08-10
Antonio T Malet1006United Kingdom2026-08-20
Aruna A Paprocki1007Argentina2026-08-23
Morrow B Briddick1008France2026-08-26
Mujtaba Q Saylors1009Canada2026-08-18
Nicolas M Briddick1010Australia2026-08-13
James A Whobrey1011Canada2026-08-24
Stacey U Dilliard1012Russia2026-08-02
Antonio Q Schemmer1013United Kingdom2026-08-25
Kaitlin L Malet1014Brazil2026-08-25
Morrow H Dilliard1015United Kingdom2026-08-14
Jefferson I Nestle1016Spain2026-08-18
Isabel O Nestle1017Canada2026-08-02
Clifford V Kusko1018United Kingdom2026-08-20
Greenwood Y Whobrey1019Spain2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie E DoeAustraliaXuxue Feng NEGOTIATION
Cody C GillianRussiaXuxue Feng QUALIFIED
Morrow F ChuiAustraliaOnyama Limba UNQUALIFIED
Rodrigues G CampainCanadaStephen Shaw QUALIFIED
Emily G WhobreyArgentinaBernardo Dominic UNQUALIFIED
Isabel O StensethCanadaElwin Sharvill PROPOSAL
Faith V WaycottGermanyAnna Fali UNQUALIFIED
Aruna J IturbideArgentinaIoni Bowcher PROPOSAL
Francesco H BriddickSpainIoni Bowcher NEGOTIATION
Maria C IturbideAustraliaXuxue Feng NEGOTIATION
Cody N SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Arvin K AmigonCanadaBernardo Dominic NEGOTIATION
Ricardo H InouyeRussiaElwin Sharvill NEW
Chavez C InouyeGermanyIvan Magalhaes NEGOTIATION
Tony O IturbideSpainIoni Bowcher NEGOTIATION
Faith W FollerArgentinaIvan Magalhaes RENEWAL
Mayumi H GlickItalyOnyama Limba UNQUALIFIED
Faith Z MarrierSpainAmy Elsner NEW
Emily U KolmetzSpainAsiya Javayant RENEWAL
Clifford G DarakjyJapanIoni Bowcher NEW
Clifford C RoysterJapanStephen Shaw NEW
Nicolas S SergiItalyStephen Shaw RENEWAL
Aika T BowleyJapanOnyama Limba QUALIFIED
Kadeem G ChuiJapanAmy Elsner NEW
Munro F RoysterUnited KingdomAnna Fali PROPOSAL
Jennifer L GauchoJapanOnyama Limba QUALIFIED
Stacey V PerinIndiaStephen Shaw NEW
Costa R WaycottRussiaAsiya Javayant UNQUALIFIED
James O MorascaSpainAsiya Javayant NEW
Costa U InouyeItalyIvan Magalhaes NEW
Kaitlin B KolmetzRussiaElwin Sharvill RENEWAL
Aruna Q MacleadBrazilElwin Sharvill NEW
Cody R FollerCanadaAsiya Javayant NEW
Darci N CaldareraItalyStephen Shaw QUALIFIED
Aika C MacleadAustraliaStephen Shaw QUALIFIED
Ivar D BriddickJapanAsiya Javayant QUALIFIED
Adams X MacleadJapanBernardo Dominic PROPOSAL
Octavia R WaycottIndiaIoni Bowcher NEGOTIATION
Salvatore J FollerAustraliaAnna Fali RENEWAL
Leja F StensethUnited KingdomIvan Magalhaes UNQUALIFIED

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