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
Ashley R GillianBrazilIoni Bowcher UNQUALIFIED
Leja I StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer W OldroydItalyXuxue Feng UNQUALIFIED
Emily A MorascaCanadaElwin Sharvill UNQUALIFIED
Leon I AmigonUnited KingdomIvan Magalhaes NEW
Julie N FlosiUnited KingdomIoni Bowcher PROPOSAL
Mayumi P StensethRussiaAnna Fali NEW
Kadeem X DilliardGermanyAmy Elsner QUALIFIED
James W GlickFranceIvan Magalhaes UNQUALIFIED
Aruna M MorascaFranceElwin Sharvill RENEWAL
Clifford A VocelkaJapanXuxue Feng NEW
Darci C PerinSpainAnna Fali UNQUALIFIED
Jeanfrancois Y ShinkoJapanBernardo Dominic NEGOTIATION
Claire F RimIndiaOnyama Limba NEW
Stacey K RulapaughRussiaStephen Shaw PROPOSAL
Deepesh R BriddickBrazilElwin Sharvill NEW
Alejandro Z SlusarskiIndiaIvan Magalhaes UNQUALIFIED
Leon H TollnerArgentinaBernardo Dominic UNQUALIFIED
Stacey Y GlickFranceAmy Elsner RENEWAL
Faith K ButtBrazilElwin Sharvill NEGOTIATION
James T OldroydSpainBernardo Dominic RENEWAL
Mujtaba W SergiRussiaXuxue Feng NEGOTIATION
Stacey Q GillianJapanAsiya Javayant RENEWAL
Leja N FollerIndiaElwin Sharvill RENEWAL
Deepesh G MaletFranceAnna Fali QUALIFIED
Jones D PerinCanadaBernardo Dominic UNQUALIFIED
Smith F NestleIndiaIoni Bowcher PROPOSAL
Rodrigues Y WaycottFranceAnna Fali QUALIFIED
Morrow J OstroskySpainXuxue Feng NEGOTIATION
Morrow R CaldareraIndiaAmy Elsner UNQUALIFIED
Costa N VocelkaIndiaElwin Sharvill NEGOTIATION
Jeanfrancois M VenereRussiaAsiya Javayant RENEWAL
Jeanfrancois F OstroskySpainElwin Sharvill QUALIFIED
Stacey L GauchoRussiaIvan Magalhaes RENEWAL
Jennifer O MacleadGermanyXuxue Feng PROPOSAL
Stacey T PaprockiSpainOnyama Limba UNQUALIFIED
Adams K GillianSpainAnna Fali QUALIFIED
Salvatore A GillianCanadaElwin Sharvill PROPOSAL
Tony M GlickBrazilAsiya Javayant RENEWAL
Aditya C NickaUnited KingdomElwin Sharvill NEGOTIATION
Julie C TollnerAustraliaStephen Shaw QUALIFIED
Mayumi T DoeCanadaStephen Shaw QUALIFIED
Wickens I NestleRussiaIoni Bowcher RENEWAL
Sinclair Y CampainBrazilAmy Elsner UNQUALIFIED
Clifford W OstroskyCanadaStephen Shaw PROPOSAL
Jennifer W WhobreyItalyBernardo Dominic NEGOTIATION
Adams V NickaCanadaAnna Fali QUALIFIED
Misaki C MacleadCanadaIoni Bowcher UNQUALIFIED
Leon J AmigonJapanIoni Bowcher UNQUALIFIED
Munro V SergiItalyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Faith K ShinkoItalyAsiya Javayant NEGOTIATION
Jefferson Q SlusarskiUnited KingdomOnyama Limba PROPOSAL
Salvatore O RulapaughGermanyStephen Shaw QUALIFIED
Aika Y RimAustraliaElwin Sharvill NEGOTIATION
Wickens K ChuiGermanyIvan Magalhaes NEW
Nicolas D MacleadRussiaOnyama Limba RENEWAL
Stacey W MaletCanadaIoni Bowcher UNQUALIFIED
Aditya I GlickBrazilStephen Shaw NEGOTIATION
Aika I GarufiFranceElwin Sharvill NEGOTIATION
Ashley M ButtUnited KingdomIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford I MacleadSpain2026-07-07Morlong Associates RENEWAL89Bernardo Dominic
1001Kaitlin C GillianJapan2026-07-07Commercial Press NEW94Ioni Bowcher
1002Julie V WhobreyJapan2026-06-17Dorl, James J Esq NEGOTIATION81Asiya Javayant
1003Claire F SchemmerAustralia2026-06-18Rangoni Of Florence PROPOSAL52Bernardo Dominic
1004Leon M RulapaughArgentina2026-07-03Chemel, James L Cpa UNQUALIFIED76Bernardo Dominic
1005Julie J GarufiUnited Kingdom2026-06-11Chanay, Jeffrey A Esq NEGOTIATION31Elwin Sharvill
1006Adams U FlosiGermany2026-07-07Morlong Associates NEGOTIATION62Elwin Sharvill
1007Nicolas C GauchoJapan2026-06-24Feiner Bros PROPOSAL75Stephen Shaw
1008Smith K AlbaresItaly2026-07-04Dorl, James J Esq RENEWAL27Ioni Bowcher
1009Misaki Z RulapaughRussia2026-06-14Feiner Bros QUALIFIED54Asiya Javayant
1010Salvatore P GauchoAustralia2026-07-10Rangoni Of Florence RENEWAL38Amy Elsner
1011Isabel T FigeroaCanada2026-06-16Dorl, James J Esq UNQUALIFIED60Ioni Bowcher
1012Salvatore N InouyeAustralia2026-06-25Chapman, Ross E Esq NEGOTIATION7Asiya Javayant
1013Jefferson Y StockhamItaly2026-07-08King, Christopher A Esq NEW5Elwin Sharvill
1014Chavez W TollnerJapan2026-06-25Chemel, James L Cpa NEGOTIATION2Amy Elsner
1015Aika Z PaprockiSpain2026-06-16Truhlar And Truhlar Attys UNQUALIFIED10Ioni Bowcher
1016Maisha C ButtCanada2026-07-07Rangoni Of Florence QUALIFIED6Onyama Limba
1017Ivar J DilliardIndia2026-06-20Chemel, James L Cpa NEGOTIATION46Xuxue Feng
1018Antonio R FollerBrazil2026-07-03Benton, John B Jr QUALIFIED68Xuxue Feng
1019Munro G DoeAustralia2026-06-23Rangoni Of Florence NEGOTIATION83Elwin Sharvill
1020Antonio N NestleArgentina2026-06-12Truhlar And Truhlar Attys RENEWAL18Bernardo Dominic
1021Ashley F AmigonCanada2026-07-06Rangoni Of Florence QUALIFIED12Amy Elsner
1022Murillo S InouyeRussia2026-06-16Truhlar And Truhlar Attys RENEWAL18Stephen Shaw
1023Smith S MaletArgentina2026-06-26Truhlar And Truhlar Attys UNQUALIFIED66Stephen Shaw
1024Tony L PoquetteIndia2026-06-27Buckley Miller Wright UNQUALIFIED25Asiya Javayant
1025Kadeem O FerenczGermany2026-06-23King, Christopher A Esq UNQUALIFIED28Ivan Magalhaes
1026Faith M KuskoUnited Kingdom2026-07-04Chanay, Jeffrey A Esq NEW85Stephen Shaw
1027Misaki Q BowleyFrance2026-06-18Printing Dimensions UNQUALIFIED63Ioni Bowcher
1028Kaitlin V BologniaFrance2026-07-04Morlong Associates UNQUALIFIED48Asiya Javayant
1029Kadeem F StensethAustralia2026-07-03Commercial Press RENEWAL50Xuxue Feng
1030Maisha S OstroskyIndia2026-06-11Chemel, James L Cpa NEW39Onyama Limba
1031Silvio X PaprockiSpain2026-07-09Chanay, Jeffrey A Esq NEGOTIATION93Asiya Javayant
1032Aditya H FlosiJapan2026-06-24Morlong Associates QUALIFIED56Ivan Magalhaes
1033Arvin H SaylorsUnited Kingdom2026-06-21Feltz Printing Service UNQUALIFIED11Ioni Bowcher
1034Adams H PoquetteRussia2026-06-22Feiner Bros PROPOSAL32Xuxue Feng
1035Aditya Q PoquetteGermany2026-06-23Feltz Printing Service QUALIFIED78Anna Fali
1036Chavez J KolmetzRussia2026-06-26Commercial Press PROPOSAL70Ivan Magalhaes
1037Greenwood G VocelkaCanada2026-07-10Chapman, Ross E Esq UNQUALIFIED67Ioni Bowcher
1038Stacey R AmigonItaly2026-07-10King, Christopher A Esq PROPOSAL94Ioni Bowcher
1039Chavez J MaletIndia2026-07-04Chapman, Ross E Esq UNQUALIFIED71Asiya Javayant
1040David H SlusarskiIndia2026-06-19King, Christopher A Esq UNQUALIFIED92Ioni Bowcher
1041Cody W AmigonJapan2026-07-03Chanay, Jeffrey A Esq RENEWAL40Onyama Limba
1042Octavia P CaldareraIndia2026-07-05Feiner Bros NEW79Amy Elsner
1043Sinclair O BriddickCanada2026-06-21Benton, John B Jr PROPOSAL47Ivan Magalhaes
1044Jefferson T CaldareraJapan2026-06-20Feiner Bros PROPOSAL83Asiya Javayant
1045Salvatore P RulapaughUnited Kingdom2026-07-01Chanay, Jeffrey A Esq QUALIFIED55Amy Elsner
1046Julie E DoeFrance2026-06-30Dorl, James J Esq UNQUALIFIED83Anna Fali
1047Murillo N RoysterCanada2026-06-18Rangoni Of Florence NEGOTIATION36Onyama Limba
1048Cody M KolmetzAustralia2026-06-29Chemel, James L Cpa RENEWAL25Onyama Limba
1049Clifford J MorascaFrance2026-06-21Chemel, James L Cpa UNQUALIFIED78Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika I RulapaughJapanBernardo Dominic NEW
Greenwood J MorascaJapanAnna Fali PROPOSAL
Greenwood A SaylorsAustraliaAsiya Javayant PROPOSAL
Wickens Y RimIndiaAnna Fali RENEWAL
James A GillianSpainAmy Elsner NEGOTIATION
Claire U ButtArgentinaStephen Shaw UNQUALIFIED
Jeanfrancois H CaldareraAustraliaOnyama Limba NEGOTIATION
Smith B AmigonBrazilAsiya Javayant UNQUALIFIED
Greenwood B KuskoCanadaAnna Fali UNQUALIFIED
Jeanfrancois C FerenczItalyStephen Shaw RENEWAL
Cody T CaldareraRussiaXuxue Feng NEGOTIATION
Emily J MacleadBrazilElwin Sharvill NEGOTIATION
Aruna D KuskoRussiaAmy Elsner NEGOTIATION
Jennifer D RulapaughRussiaOnyama Limba NEGOTIATION
Clifford Z RutaRussiaIvan Magalhaes QUALIFIED
Wickens U MacleadGermanyAmy Elsner RENEWAL
Jefferson H ChuiIndiaXuxue Feng QUALIFIED
Juan E VocelkaFranceAmy Elsner QUALIFIED
Johnson Q AmigonSpainStephen Shaw PROPOSAL
Maria J BowleyGermanyAmy Elsner NEW
Costa P InouyeItalyIvan Magalhaes NEW
Arvin Q BriddickGermanyAsiya Javayant PROPOSAL
Izzy H TollnerBrazilXuxue Feng PROPOSAL
Deepesh S SaylorsBrazilXuxue Feng NEGOTIATION
Wickens K ButtItalyElwin Sharvill NEGOTIATION
Stacey E SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Adams K NestleJapanElwin Sharvill UNQUALIFIED
Adams P RimArgentinaBernardo Dominic UNQUALIFIED
Jefferson E WaycottArgentinaBernardo Dominic PROPOSAL
David P FerenczCanadaAnna Fali QUALIFIED
James F SergiBrazilAmy Elsner NEW
Silvio X TollnerArgentinaIvan Magalhaes QUALIFIED
Aruna F VocelkaIndiaStephen Shaw NEGOTIATION
Mayumi U SergiRussiaAnna Fali RENEWAL
Murillo S OstroskyBrazilAmy Elsner UNQUALIFIED
Octavia L PoquetteCanadaStephen Shaw NEW
Deepesh F VocelkaSpainIoni Bowcher PROPOSAL
Adams E MacleadBrazilAmy Elsner RENEWAL
Jefferson N FigeroaArgentinaOnyama Limba PROPOSAL
Jones P ButtSpainOnyama Limba UNQUALIFIED
Wickens O MaletRussiaAnna Fali NEGOTIATION
Jennifer J MacleadSpainOnyama Limba NEW
Chavez H VenereItalyStephen Shaw NEGOTIATION
Mayumi V MacleadGermanyBernardo Dominic PROPOSAL
Tony O SergiIndiaIvan Magalhaes NEGOTIATION
Leon Q DoeJapanAsiya Javayant NEGOTIATION
Clifford Q NestleUnited KingdomIvan Magalhaes NEW
Wickens D PerinCanadaAsiya Javayant RENEWAL
Silvio C CaldareraSpainXuxue Feng NEW
Mujtaba Y SchemmerRussiaStephen Shaw NEW
Frozen Columns
Name
Leja V Nicka
Aditya K Inouye
Rodrigues L Whobrey
Jeanfrancois D Foller
Adams K Ruta
Wickens E Dilliard
Deepesh I Caudy
Rodrigues N Figeroa
Jeanfrancois H Ostrosky
Arvin V Figeroa
Jefferson D Vocelka
Alejandro S Sergi
Jefferson K Nicka
Jefferson K Paprocki
Cody A Poquette
Faith P Glick
Munro K Butt
Kadeem T Marrier
Adams X Malet
Aditya L Slusarski
Arvin A Inouye
Ashley K Royster
Ashley A Schemmer
Emily P Rim
Munro U Tollner
Arvin A Kolmetz
Aditya V Nicka
Jefferson R Paprocki
Maisha J Perin
Jeanfrancois V Stenseth
Misaki V Gaucho
Munro I Rim
James D Saylors
Kaitlin Z Morasca
Isabel H Ostrosky
Aruna V Garufi
Stacey U Briddick
Emily K Caudy
Kaitlin Y Oldroyd
Nicolas H Saylors
Isabel W Morasca
Leon A Tollner
Aika A Stenseth
Ricardo J Gillian
Alejandro U Iturbide
Costa Z Glick
Francesco N Garufi
Ricardo Y Whobrey
Ricardo F Venere
Costa M Kusko
IdCountryDate
1000Italy2026-06-14
1001Brazil2026-06-19
1002Argentina2026-07-05
1003India2026-06-19
1004Australia2026-06-13
1005France2026-06-29
1006India2026-07-01
1007Germany2026-07-05
1008Argentina2026-06-26
1009Japan2026-06-25
1010United Kingdom2026-06-22
1011Australia2026-06-28
1012Australia2026-06-14
1013Japan2026-06-23
1014India2026-06-24
1015Argentina2026-07-08
1016Brazil2026-06-19
1017Brazil2026-06-29
1018Japan2026-07-09
1019Spain2026-06-23
1020Canada2026-06-25
1021United Kingdom2026-06-12
1022Germany2026-06-29
1023France2026-07-10
1024Spain2026-06-24
1025United Kingdom2026-07-09
1026Italy2026-06-25
1027Brazil2026-07-10
1028Russia2026-07-10
1029France2026-06-22
1030Brazil2026-06-13
1031Australia2026-07-05
1032Italy2026-06-14
1033Canada2026-07-02
1034Russia2026-07-09
1035United Kingdom2026-07-09
1036Japan2026-06-19
1037Australia2026-07-07
1038India2026-06-28
1039United Kingdom2026-06-20
1040France2026-07-03
1041France2026-06-30
1042United Kingdom2026-07-02
1043Australia2026-07-07
1044India2026-06-29
1045United Kingdom2026-06-17
1046Japan2026-07-08
1047France2026-06-26
1048Russia2026-06-21
1049United Kingdom2026-06-23

On-Demand Data

NameIdCountryDate
Nicolas A Poquette1000Brazil2026-06-13
Darci M Waycott1001Japan2026-07-10
Mayumi I Schemmer1002Argentina2026-06-25
Murillo F Rim1003Japan2026-06-22
Jefferson C Caudy1004Brazil2026-07-08
Jones T Venere1005Brazil2026-07-02
Sinclair H Inouye1006India2026-07-04
Juan H Malet1007Italy2026-06-21
Leon N Oldroyd1008United Kingdom2026-06-24
Maisha A Stockham1009Italy2026-06-26
Isabel A Ostrosky1010Canada2026-07-05
Leja C Foller1011Australia2026-07-04
Jeanfrancois I Flosi1012France2026-07-01
Sinclair C Garufi1013Australia2026-07-03
Alejandro T Campain1014Japan2026-06-29
Leja U Butt1015Australia2026-07-03
Greenwood P Nestle1016Russia2026-07-04
Murillo T Slusarski1017India2026-07-09
Salvatore J Sergi1018Brazil2026-07-08
Kadeem A Chui1019Australia2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan P VocelkaCanadaXuxue Feng RENEWAL
Johnson M FollerAustraliaIoni Bowcher RENEWAL
Silvio S VocelkaRussiaBernardo Dominic UNQUALIFIED
Aika V RoysterSpainOnyama Limba QUALIFIED
Juan K AmigonItalyOnyama Limba RENEWAL
Deepesh P KolmetzSpainAnna Fali NEW
Francesco O FerenczUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba U IturbideBrazilIvan Magalhaes NEGOTIATION
Antonio Z CaldareraGermanyIoni Bowcher NEGOTIATION
Kaitlin D KolmetzArgentinaIvan Magalhaes RENEWAL
Deepesh S RulapaughUnited KingdomIoni Bowcher NEGOTIATION
Aditya B GauchoItalyAmy Elsner PROPOSAL
Leon U OstroskyIndiaAnna Fali QUALIFIED
Ricardo B BologniaSpainAnna Fali PROPOSAL
Munro L ChuiCanadaElwin Sharvill NEW
Aditya A MacleadFranceAnna Fali QUALIFIED
Sinclair Y AmigonFranceOnyama Limba QUALIFIED
Clifford T BowleyRussiaOnyama Limba QUALIFIED
Arvin Y MarrierSpainOnyama Limba PROPOSAL
Darci K KolmetzSpainXuxue Feng UNQUALIFIED
Adams R MacleadUnited KingdomStephen Shaw NEW
Jeanfrancois O RoysterCanadaXuxue Feng RENEWAL
James P ChuiSpainBernardo Dominic NEGOTIATION
Tony N FigeroaGermanyOnyama Limba UNQUALIFIED
Cody D PoquetteAustraliaIvan Magalhaes NEGOTIATION
David V GauchoBrazilAnna Fali RENEWAL
Cody C AmigonFranceXuxue Feng RENEWAL
Murillo D CaldareraBrazilStephen Shaw QUALIFIED
Smith F MaletBrazilAsiya Javayant RENEWAL
Faith D FerenczItalyXuxue Feng NEGOTIATION
Costa Z MaletItalyOnyama Limba QUALIFIED
Francesco Y AlbaresUnited KingdomStephen Shaw QUALIFIED
Maisha F PoquetteGermanyOnyama Limba PROPOSAL
Murillo F WieserSpainAsiya Javayant UNQUALIFIED
Julie L KolmetzSpainIoni Bowcher NEW
Ivar F PaprockiFranceElwin Sharvill UNQUALIFIED
Ivar C MacleadJapanAsiya Javayant QUALIFIED
Greenwood N StensethFranceXuxue Feng NEGOTIATION
Claire D AlbaresItalyIvan Magalhaes RENEWAL
Kaitlin N VenereItalyOnyama Limba QUALIFIED

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