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
Costa L RoysterArgentinaElwin Sharvill UNQUALIFIED
David A BowleyJapanIoni Bowcher QUALIFIED
Claire H ChuiFranceXuxue Feng PROPOSAL
Maisha E MaletUnited KingdomAnna Fali UNQUALIFIED
Aruna H MacleadSpainBernardo Dominic NEW
Darci U DilliardCanadaAsiya Javayant RENEWAL
Misaki T MarrierBrazilElwin Sharvill QUALIFIED
Alejandro N IturbideBrazilAsiya Javayant NEGOTIATION
Mayumi L IturbideJapanBernardo Dominic NEGOTIATION
Clifford P GauchoIndiaXuxue Feng RENEWAL
Cody N GauchoRussiaAsiya Javayant PROPOSAL
Isabel J WhobreyItalyAnna Fali QUALIFIED
Smith C StensethItalyBernardo Dominic NEW
Johnson Y RimFranceIvan Magalhaes RENEWAL
Ivar U AmigonBrazilAmy Elsner PROPOSAL
Smith Z ButtIndiaXuxue Feng NEW
Aika M MacleadFranceOnyama Limba NEGOTIATION
Ivar Z KuskoBrazilBernardo Dominic UNQUALIFIED
James O FerenczJapanStephen Shaw PROPOSAL
Faith C BriddickItalyStephen Shaw PROPOSAL
Jennifer C MorascaGermanyBernardo Dominic NEGOTIATION
Misaki K ChuiUnited KingdomIoni Bowcher NEGOTIATION
Claire N WhobreyFranceIvan Magalhaes QUALIFIED
Francesco J OstroskyIndiaAmy Elsner UNQUALIFIED
Johnson H StensethGermanyIoni Bowcher PROPOSAL
Johnson J FollerSpainIoni Bowcher UNQUALIFIED
Octavia J FlosiBrazilAsiya Javayant PROPOSAL
Faith V GauchoFranceIvan Magalhaes UNQUALIFIED
Johnson S SchemmerRussiaBernardo Dominic NEGOTIATION
Murillo B DarakjyJapanAnna Fali PROPOSAL
Cody O DarakjyBrazilAmy Elsner UNQUALIFIED
Maria H TollnerIndiaXuxue Feng NEW
Jones L WhobreyGermanyAsiya Javayant NEGOTIATION
Tony R MorascaArgentinaXuxue Feng QUALIFIED
Silvio L DoeAustraliaXuxue Feng UNQUALIFIED
James K WieserSpainAmy Elsner PROPOSAL
Ivar Y OstroskyIndiaAsiya Javayant QUALIFIED
Faith A GlickRussiaStephen Shaw UNQUALIFIED
Maisha R WaycottAustraliaBernardo Dominic NEW
Maisha N ShinkoAustraliaIvan Magalhaes RENEWAL
Aika P StensethRussiaXuxue Feng PROPOSAL
Aruna U PerinGermanyAsiya Javayant RENEWAL
Aditya X MarrierItalyAsiya Javayant PROPOSAL
David W GauchoGermanyAnna Fali RENEWAL
Isabel V RulapaughRussiaStephen Shaw QUALIFIED
Jennifer O RimSpainAsiya Javayant RENEWAL
Rodrigues J StockhamAustraliaIvan Magalhaes QUALIFIED
Juan H SaylorsIndiaXuxue Feng UNQUALIFIED
James K AlbaresArgentinaIvan Magalhaes PROPOSAL
Alejandro X FollerSpainStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba A StockhamJapanAnna Fali PROPOSAL
Nicolas B MorascaIndiaXuxue Feng RENEWAL
Morrow R GarufiSpainBernardo Dominic UNQUALIFIED
Izzy R WaycottUnited KingdomBernardo Dominic PROPOSAL
Mayumi X SergiGermanyXuxue Feng QUALIFIED
Darci Y NickaCanadaIvan Magalhaes NEW
Emily S FigeroaItalyElwin Sharvill RENEWAL
Maisha I RoysterUnited KingdomAnna Fali QUALIFIED
James D MaletCanadaAnna Fali PROPOSAL
Mayumi N StockhamJapanOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones X PoquetteCanada2026-07-15Chemel, James L Cpa QUALIFIED45Ioni Bowcher
1001Izzy W MaletSpain2026-07-18Morlong Associates PROPOSAL75Asiya Javayant
1002Deepesh W GarufiCanada2026-07-29Feltz Printing Service RENEWAL2Anna Fali
1003Tony T MacleadSpain2026-08-05Chemel, James L Cpa RENEWAL74Onyama Limba
1004Greenwood G CaudyGermany2026-08-04Feltz Printing Service NEW92Bernardo Dominic
1005Adams O AlbaresSpain2026-07-28Rangoni Of Florence UNQUALIFIED53Ivan Magalhaes
1006Izzy V RulapaughAustralia2026-07-30Chemel, James L Cpa RENEWAL37Onyama Limba
1007Maria B StockhamSpain2026-08-05Rousseaux, Michael Esq PROPOSAL11Stephen Shaw
1008Murillo B DilliardAustralia2026-07-09Feltz Printing Service RENEWAL44Asiya Javayant
1009Mujtaba C BowleyItaly2026-08-05Buckley Miller Wright UNQUALIFIED85Anna Fali
1010Leon F MorascaIndia2026-07-20Benton, John B Jr UNQUALIFIED36Ivan Magalhaes
1011Nicolas P VocelkaSpain2026-07-29Printing Dimensions QUALIFIED19Onyama Limba
1012Leja M FerenczGermany2026-07-31Dorl, James J Esq NEGOTIATION16Ivan Magalhaes
1013Salvatore Y IturbideJapan2026-07-24Buckley Miller Wright RENEWAL67Ivan Magalhaes
1014Leon H MacleadGermany2026-07-11Buckley Miller Wright NEW45Amy Elsner
1015Silvio S MorascaAustralia2026-07-09Benton, John B Jr NEGOTIATION35Ivan Magalhaes
1016Munro M NestleIndia2026-07-19Rangoni Of Florence UNQUALIFIED81Anna Fali
1017James J FlosiJapan2026-07-13Buckley Miller Wright NEGOTIATION51Elwin Sharvill
1018Tony W FerenczBrazil2026-08-05Rangoni Of Florence PROPOSAL53Ivan Magalhaes
1019Deepesh Z RoysterSpain2026-07-15Chanay, Jeffrey A Esq RENEWAL5Ioni Bowcher
1020Jones W NestleRussia2026-08-01Truhlar And Truhlar Attys RENEWAL17Bernardo Dominic
1021Munro G TollnerGermany2026-08-02Dorl, James J Esq PROPOSAL44Ioni Bowcher
1022Juan V FollerUnited Kingdom2026-07-25Chemel, James L Cpa QUALIFIED80Ivan Magalhaes
1023Juan W AmigonUnited Kingdom2026-08-03Chemel, James L Cpa NEGOTIATION49Onyama Limba
1024Claire H CampainArgentina2026-08-03Chemel, James L Cpa RENEWAL82Elwin Sharvill
1025Deepesh O SchemmerRussia2026-07-27Chemel, James L Cpa QUALIFIED58Xuxue Feng
1026Deepesh R GlickBrazil2026-07-26Dorl, James J Esq PROPOSAL88Bernardo Dominic
1027Aruna W MacleadJapan2026-07-28Chemel, James L Cpa UNQUALIFIED57Anna Fali
1028Aika G OstroskyJapan2026-07-21Feiner Bros RENEWAL21Ivan Magalhaes
1029David G FollerIndia2026-07-13Benton, John B Jr NEW17Anna Fali
1030Emily F ButtUnited Kingdom2026-08-01Rangoni Of Florence NEW97Amy Elsner
1031Adams S ButtFrance2026-07-27Chapman, Ross E Esq NEGOTIATION89Anna Fali
1032Jones G FlosiJapan2026-07-18King, Christopher A Esq PROPOSAL38Amy Elsner
1033Chavez T StockhamItaly2026-07-16Truhlar And Truhlar Attys RENEWAL18Ivan Magalhaes
1034Maisha L SergiSpain2026-08-06Truhlar And Truhlar Attys NEW54Stephen Shaw
1035Smith I VocelkaRussia2026-07-22Dorl, James J Esq NEW81Ioni Bowcher
1036Kaitlin G RulapaughItaly2026-07-19Morlong Associates NEGOTIATION46Amy Elsner
1037Arvin W IturbideAustralia2026-07-26Rousseaux, Michael Esq NEW52Xuxue Feng
1038Aruna W ChuiRussia2026-07-14Chanay, Jeffrey A Esq NEGOTIATION98Ioni Bowcher
1039Murillo C KolmetzIndia2026-07-29Chemel, James L Cpa RENEWAL16Anna Fali
1040Kaitlin B RimRussia2026-07-25Rangoni Of Florence RENEWAL83Ivan Magalhaes
1041Aruna X VocelkaUnited Kingdom2026-08-06Chapman, Ross E Esq QUALIFIED44Xuxue Feng
1042Darci X MaletFrance2026-07-15Chapman, Ross E Esq PROPOSAL95Ivan Magalhaes
1043Misaki B DilliardArgentina2026-08-06Chanay, Jeffrey A Esq QUALIFIED59Amy Elsner
1044David M PerinJapan2026-07-11Chapman, Ross E Esq UNQUALIFIED85Ioni Bowcher
1045David B NickaJapan2026-07-29Commercial Press UNQUALIFIED26Ivan Magalhaes
1046Jeanfrancois M OldroydCanada2026-07-10Rousseaux, Michael Esq QUALIFIED77Stephen Shaw
1047Adams J StensethRussia2026-07-21Benton, John B Jr QUALIFIED68Anna Fali
1048Morrow L WieserUnited Kingdom2026-07-29Chapman, Ross E Esq PROPOSAL69Bernardo Dominic
1049Munro E InouyeRussia2026-07-14Chanay, Jeffrey A Esq PROPOSAL96Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith X ChuiJapanElwin Sharvill PROPOSAL
Salvatore D OstroskyItalyIvan Magalhaes NEGOTIATION
Leja J MaletArgentinaAsiya Javayant UNQUALIFIED
Munro B DarakjyCanadaElwin Sharvill PROPOSAL
Murillo J CampainJapanAnna Fali RENEWAL
Chavez G ChuiAustraliaBernardo Dominic RENEWAL
Francesco N StensethAustraliaOnyama Limba RENEWAL
David S NickaItalyAnna Fali NEGOTIATION
Faith G OstroskyBrazilAnna Fali NEGOTIATION
Mujtaba F WieserUnited KingdomAsiya Javayant NEW
Leja R BologniaCanadaStephen Shaw PROPOSAL
Jefferson R DarakjyRussiaIoni Bowcher UNQUALIFIED
Isabel D RutaFranceElwin Sharvill NEGOTIATION
Jefferson Q KuskoCanadaAsiya Javayant UNQUALIFIED
Tony M KuskoArgentinaBernardo Dominic NEGOTIATION
Kadeem S PoquetteIndiaBernardo Dominic NEGOTIATION
Arvin G MaletArgentinaAnna Fali QUALIFIED
Mujtaba A NickaSpainAnna Fali NEW
Maria A FlosiArgentinaAsiya Javayant QUALIFIED
Juan G WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Jennifer H WhobreyUnited KingdomAnna Fali RENEWAL
Kadeem N PaprockiUnited KingdomIoni Bowcher QUALIFIED
Octavia I DilliardBrazilElwin Sharvill RENEWAL
Antonio G SlusarskiFranceAsiya Javayant PROPOSAL
Aruna U PaprockiIndiaStephen Shaw PROPOSAL
Jeanfrancois G DilliardSpainAnna Fali QUALIFIED
Isabel V SergiIndiaAnna Fali UNQUALIFIED
Deepesh F SlusarskiIndiaXuxue Feng UNQUALIFIED
Morrow F FerenczCanadaAsiya Javayant PROPOSAL
Maisha R RimFranceXuxue Feng NEW
Chavez F KolmetzSpainStephen Shaw QUALIFIED
Sinclair V BriddickArgentinaStephen Shaw QUALIFIED
Jennifer H WhobreyFranceIvan Magalhaes RENEWAL
Izzy L PoquetteIndiaElwin Sharvill UNQUALIFIED
Deepesh G DilliardItalyStephen Shaw NEGOTIATION
Leon U BologniaRussiaAnna Fali RENEWAL
Kadeem T ShinkoIndiaAnna Fali RENEWAL
Rodrigues C FerenczIndiaIvan Magalhaes RENEWAL
Salvatore Z GauchoCanadaOnyama Limba RENEWAL
Cody H KuskoAustraliaIvan Magalhaes NEW
Tony N OstroskyGermanyOnyama Limba UNQUALIFIED
Alejandro Q WhobreyArgentinaIoni Bowcher UNQUALIFIED
Smith J DarakjySpainIvan Magalhaes UNQUALIFIED
Murillo Z StockhamIndiaElwin Sharvill NEGOTIATION
Kaitlin M VenereArgentinaXuxue Feng PROPOSAL
Octavia F GlickUnited KingdomIvan Magalhaes NEGOTIATION
David M FigeroaIndiaBernardo Dominic QUALIFIED
Emily W OstroskySpainAsiya Javayant PROPOSAL
Clifford P FerenczUnited KingdomElwin Sharvill RENEWAL
Julie R GauchoBrazilAnna Fali NEW
Frozen Columns
Name
Ricardo S Malet
Claire Y Glick
Mujtaba Y Campain
Claire A Figeroa
Clifford X Malet
Johnson J Nestle
Jennifer F Caudy
Costa M Wieser
Emily U Marrier
Jeanfrancois A Ruta
Octavia J Caudy
Silvio N Darakjy
David I Kolmetz
Kaitlin H Malet
Izzy I Briddick
Murillo Y Caldarera
Smith T Rim
Greenwood O Wieser
Mayumi Y Bowley
Stacey Y Rim
Stacey T Saylors
Murillo I Shinko
Morrow L Shinko
Mayumi Y Caldarera
Tony Z Doe
Jones F Stenseth
Aditya V Garufi
Jeanfrancois I Perin
Ashley T Stockham
Mayumi W Whobrey
Wickens C Stockham
Cody Q Vocelka
Antonio F Stockham
Chavez F Glick
Murillo A Figeroa
Wickens X Inouye
Sinclair Y Caldarera
Aika J Ostrosky
Aika I Sergi
Nicolas M Dilliard
Misaki P Gillian
Jefferson D Amigon
Mayumi N Gillian
Smith N Stenseth
David E Royster
Deepesh R Poquette
Kaitlin E Flosi
Mujtaba G Saylors
Jennifer R Rim
Darci J Paprocki
IdCountryDate
1000Russia2026-08-01
1001Australia2026-08-03
1002Brazil2026-07-13
1003Spain2026-07-27
1004Italy2026-07-12
1005India2026-07-24
1006France2026-08-04
1007Australia2026-07-18
1008Brazil2026-07-13
1009Brazil2026-07-11
1010Brazil2026-07-14
1011Australia2026-07-29
1012France2026-07-30
1013Brazil2026-07-19
1014Australia2026-07-30
1015India2026-08-06
1016Argentina2026-07-10
1017India2026-07-25
1018France2026-07-09
1019Australia2026-07-30
1020Spain2026-07-12
1021Canada2026-08-01
1022Russia2026-07-24
1023India2026-07-24
1024Germany2026-07-24
1025Brazil2026-07-10
1026France2026-08-01
1027India2026-07-23
1028Australia2026-07-22
1029Canada2026-08-02
1030United Kingdom2026-08-01
1031United Kingdom2026-08-06
1032Canada2026-07-24
1033Argentina2026-07-26
1034Japan2026-08-04
1035Russia2026-07-12
1036Australia2026-07-12
1037Italy2026-07-13
1038Japan2026-07-11
1039Brazil2026-07-24
1040Canada2026-07-29
1041India2026-07-30
1042Canada2026-07-22
1043Japan2026-07-16
1044Argentina2026-08-05
1045Australia2026-08-04
1046Germany2026-07-24
1047Brazil2026-07-25
1048Germany2026-07-16
1049Canada2026-08-02

On-Demand Data

NameIdCountryDate
Leon V Figeroa1000Japan2026-08-06
Nicolas M Slusarski1001United Kingdom2026-07-22
Mayumi Q Nestle1002Germany2026-07-11
James B Caldarera1003Italy2026-07-12
Maria R Amigon1004France2026-07-20
Octavia K Foller1005Canada2026-07-23
Silvio B Kolmetz1006Japan2026-08-03
Wickens I Glick1007Japan2026-08-04
Kaitlin A Shinko1008Argentina2026-08-05
Ivar N Amigon1009Italy2026-07-26
Mayumi M Bolognia1010Germany2026-07-15
Octavia J Malet1011Germany2026-07-27
Leja R Butt1012Argentina2026-07-16
Morrow F Dilliard1013Brazil2026-07-12
Arvin L Campain1014Canada2026-07-15
Stacey J Rim1015France2026-07-30
Chavez D Stenseth1016Australia2026-07-11
Isabel M Garufi1017United Kingdom2026-07-27
Sinclair V Vocelka1018Australia2026-07-12
Leon X Nestle1019France2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie D BowleyCanadaIoni Bowcher RENEWAL
Octavia B FollerSpainAsiya Javayant PROPOSAL
Salvatore O AmigonUnited KingdomAnna Fali QUALIFIED
Tony F DilliardJapanStephen Shaw RENEWAL
Mujtaba S FlosiIndiaAmy Elsner QUALIFIED
Maisha W MaletArgentinaAnna Fali NEGOTIATION
Cody V BowleyGermanyBernardo Dominic RENEWAL
Johnson N GlickCanadaIvan Magalhaes QUALIFIED
Faith Q RoysterJapanXuxue Feng NEGOTIATION
Sinclair R SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Kadeem H CaudyAustraliaOnyama Limba NEW
James E BriddickCanadaOnyama Limba PROPOSAL
Aruna P CampainJapanAnna Fali RENEWAL
Aditya P GarufiRussiaElwin Sharvill NEGOTIATION
Jefferson L OldroydAustraliaAnna Fali PROPOSAL
Alejandro X RoysterItalyAnna Fali PROPOSAL
Misaki T OldroydRussiaIoni Bowcher PROPOSAL
Kadeem A PerinBrazilElwin Sharvill QUALIFIED
Jones D RutaIndiaBernardo Dominic UNQUALIFIED
Johnson Z InouyeUnited KingdomXuxue Feng NEW
Faith E GauchoBrazilXuxue Feng RENEWAL
Ashley N FollerBrazilElwin Sharvill PROPOSAL
Faith Y MacleadCanadaAnna Fali QUALIFIED
Jones G VenereItalyAnna Fali PROPOSAL
Morrow I FerenczArgentinaIoni Bowcher PROPOSAL
Alejandro M CampainIndiaElwin Sharvill NEW
Jones X FerenczSpainAmy Elsner NEW
Emily F PoquetteFranceElwin Sharvill QUALIFIED
Jefferson K InouyeJapanIvan Magalhaes PROPOSAL
Morrow Y SlusarskiRussiaAmy Elsner PROPOSAL
Jefferson C MaletBrazilAmy Elsner UNQUALIFIED
Ashley W MaletFranceStephen Shaw RENEWAL
Antonio F PerinRussiaAsiya Javayant NEGOTIATION
Juan Q GillianGermanyIvan Magalhaes PROPOSAL
Silvio Y CampainArgentinaXuxue Feng UNQUALIFIED
Rodrigues K IturbideIndiaStephen Shaw NEW
Jennifer D VocelkaBrazilOnyama Limba NEW
Munro U InouyeJapanIoni Bowcher RENEWAL
Adams F SchemmerCanadaAsiya Javayant PROPOSAL
Tony Z IturbideUnited KingdomStephen Shaw 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>