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
Smith S MaletRussiaAsiya Javayant RENEWAL
Leja S NickaIndiaStephen Shaw UNQUALIFIED
Isabel E WieserBrazilIoni Bowcher PROPOSAL
Misaki K WhobreyUnited KingdomStephen Shaw RENEWAL
Misaki D TollnerIndiaAmy Elsner UNQUALIFIED
Izzy A WieserGermanyBernardo Dominic NEW
Chavez L RutaUnited KingdomAnna Fali RENEWAL
Aditya P IturbideIndiaStephen Shaw QUALIFIED
Ivar O PaprockiArgentinaAmy Elsner PROPOSAL
Misaki P TollnerSpainAnna Fali NEGOTIATION
Arvin Z GauchoSpainIoni Bowcher NEGOTIATION
Faith N CaudyArgentinaIoni Bowcher RENEWAL
Jeanfrancois O VocelkaRussiaIvan Magalhaes QUALIFIED
Mujtaba B PoquetteJapanAnna Fali PROPOSAL
Stacey T NestleGermanyIvan Magalhaes UNQUALIFIED
Ricardo E ChuiRussiaBernardo Dominic RENEWAL
Salvatore L OstroskyGermanyIvan Magalhaes RENEWAL
Mujtaba P PaprockiSpainStephen Shaw NEGOTIATION
Mujtaba P FerenczUnited KingdomAnna Fali PROPOSAL
Ashley O SchemmerItalyXuxue Feng NEGOTIATION
Salvatore A MacleadAustraliaXuxue Feng PROPOSAL
Aruna Q RutaIndiaIoni Bowcher NEW
Stacey O GillianFranceAmy Elsner QUALIFIED
Kaitlin A RulapaughCanadaAmy Elsner NEGOTIATION
Johnson K NestleUnited KingdomOnyama Limba RENEWAL
James I MacleadBrazilAnna Fali UNQUALIFIED
Jefferson S OstroskyBrazilAmy Elsner NEW
Jeanfrancois B StockhamAustraliaBernardo Dominic PROPOSAL
Kaitlin D ShinkoRussiaXuxue Feng NEGOTIATION
David G GlickCanadaIvan Magalhaes QUALIFIED
Nicolas C TollnerAustraliaBernardo Dominic NEW
Greenwood G WaycottJapanBernardo Dominic QUALIFIED
Claire N BologniaArgentinaBernardo Dominic NEW
Misaki Q StensethBrazilStephen Shaw PROPOSAL
Jennifer Y GlickGermanyAsiya Javayant PROPOSAL
Wickens E CaudyJapanAmy Elsner NEGOTIATION
Kaitlin L WhobreyRussiaAnna Fali RENEWAL
Salvatore Y StensethFranceElwin Sharvill PROPOSAL
Munro Q PaprockiAustraliaElwin Sharvill NEGOTIATION
Misaki V CaldareraItalyAsiya Javayant PROPOSAL
Leja U WhobreyJapanAnna Fali QUALIFIED
Antonio Y NickaSpainAmy Elsner RENEWAL
Tony K ButtIndiaXuxue Feng PROPOSAL
Aika Q OstroskyBrazilBernardo Dominic NEGOTIATION
Maisha J NickaJapanIvan Magalhaes UNQUALIFIED
Octavia Z RulapaughIndiaElwin Sharvill UNQUALIFIED
Greenwood N BologniaCanadaXuxue Feng NEGOTIATION
Leja Y AlbaresSpainIoni Bowcher UNQUALIFIED
Emily X VocelkaItalyXuxue Feng QUALIFIED
Rodrigues O WaycottGermanyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez M WaycottFranceAmy Elsner NEGOTIATION
Darci S DarakjyRussiaIvan Magalhaes QUALIFIED
Alejandro C NickaSpainAsiya Javayant NEW
Arvin C OstroskyAustraliaOnyama Limba QUALIFIED
Jones T ChuiRussiaIvan Magalhaes NEGOTIATION
Arvin H GillianItalyXuxue Feng RENEWAL
Maisha T FerenczUnited KingdomElwin Sharvill NEW
Murillo H WhobreyIndiaAmy Elsner PROPOSAL
Mujtaba Q DarakjyRussiaAnna Fali UNQUALIFIED
Arvin W KolmetzSpainIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon D NickaArgentina2026-06-11Benton, John B Jr NEW71Amy Elsner
1001Mujtaba J WhobreyRussia2026-07-03Chemel, James L Cpa UNQUALIFIED80Onyama Limba
1002Ricardo E WhobreyCanada2026-06-13King, Christopher A Esq NEW52Anna Fali
1003Julie T ShinkoRussia2026-07-03Chemel, James L Cpa NEW69Asiya Javayant
1004Leon L WieserIndia2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED73Asiya Javayant
1005Stacey Z CaldareraGermany2026-06-21King, Christopher A Esq RENEWAL78Ivan Magalhaes
1006Smith B RimJapan2026-06-20Truhlar And Truhlar Attys PROPOSAL85Amy Elsner
1007Silvio E KuskoJapan2026-06-18Commercial Press RENEWAL24Bernardo Dominic
1008Aika W MorascaSpain2026-06-25Rangoni Of Florence NEGOTIATION47Amy Elsner
1009Aditya S RimRussia2026-06-17Chapman, Ross E Esq UNQUALIFIED98Xuxue Feng
1010Tony L FollerUnited Kingdom2026-07-07Buckley Miller Wright QUALIFIED24Ioni Bowcher
1011Morrow I CampainBrazil2026-07-08Benton, John B Jr QUALIFIED37Stephen Shaw
1012Nicolas N CaudyJapan2026-06-18Truhlar And Truhlar Attys QUALIFIED83Ioni Bowcher
1013Juan J MaletCanada2026-07-06Morlong Associates NEGOTIATION73Ivan Magalhaes
1014Wickens M KolmetzBrazil2026-07-10Chanay, Jeffrey A Esq QUALIFIED48Anna Fali
1015Julie V GillianSpain2026-06-22Printing Dimensions RENEWAL53Amy Elsner
1016Izzy C CaldareraJapan2026-06-22Chapman, Ross E Esq UNQUALIFIED21Elwin Sharvill
1017Stacey R OldroydJapan2026-07-03Buckley Miller Wright NEGOTIATION4Elwin Sharvill
1018Darci B GlickItaly2026-06-22Chanay, Jeffrey A Esq NEGOTIATION57Anna Fali
1019Maria I PoquetteRussia2026-07-01Benton, John B Jr QUALIFIED95Asiya Javayant
1020Nicolas U SlusarskiAustralia2026-06-12Benton, John B Jr NEGOTIATION26Xuxue Feng
1021Nicolas W SaylorsItaly2026-06-17Rangoni Of Florence QUALIFIED15Amy Elsner
1022Costa J NickaRussia2026-06-25King, Christopher A Esq NEW98Ioni Bowcher
1023Silvio S TollnerBrazil2026-07-02Rousseaux, Michael Esq NEGOTIATION93Amy Elsner
1024Tony I StensethItaly2026-06-29Feiner Bros RENEWAL67Onyama Limba
1025Sinclair N KolmetzArgentina2026-06-24Chemel, James L Cpa PROPOSAL83Anna Fali
1026Silvio M StensethGermany2026-06-13Rangoni Of Florence RENEWAL6Ioni Bowcher
1027Clifford F RoysterUnited Kingdom2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED92Onyama Limba
1028Jeanfrancois F InouyeUnited Kingdom2026-07-10Truhlar And Truhlar Attys NEW64Onyama Limba
1029Stacey B KolmetzItaly2026-07-03Chapman, Ross E Esq NEW20Ivan Magalhaes
1030Sinclair B MarrierItaly2026-06-11King, Christopher A Esq RENEWAL44Ioni Bowcher
1031Aruna U StensethJapan2026-06-30Feltz Printing Service NEW37Xuxue Feng
1032Maisha T ChuiFrance2026-07-06Truhlar And Truhlar Attys RENEWAL22Bernardo Dominic
1033David A KuskoCanada2026-06-22Dorl, James J Esq RENEWAL37Anna Fali
1034Nicolas T WaycottGermany2026-06-23King, Christopher A Esq NEGOTIATION69Stephen Shaw
1035Tony D DoeGermany2026-06-15Feiner Bros NEGOTIATION3Bernardo Dominic
1036Darci C BriddickFrance2026-06-17Buckley Miller Wright RENEWAL72Stephen Shaw
1037Chavez P KolmetzJapan2026-07-03Commercial Press RENEWAL97Stephen Shaw
1038Juan W SaylorsArgentina2026-06-12Dorl, James J Esq QUALIFIED32Amy Elsner
1039Clifford S BriddickArgentina2026-06-28Commercial Press UNQUALIFIED61Ioni Bowcher
1040Ricardo Y ShinkoRussia2026-06-12Morlong Associates UNQUALIFIED26Elwin Sharvill
1041Mujtaba C GillianCanada2026-06-12Rousseaux, Michael Esq RENEWAL63Onyama Limba
1042Faith G RoysterRussia2026-07-06Printing Dimensions QUALIFIED42Stephen Shaw
1043Julie A OldroydBrazil2026-07-04Chemel, James L Cpa NEGOTIATION22Elwin Sharvill
1044Ricardo M GlickIndia2026-06-19Dorl, James J Esq QUALIFIED76Xuxue Feng
1045Leon R MaletSpain2026-06-26King, Christopher A Esq RENEWAL46Stephen Shaw
1046Izzy N NestleSpain2026-06-16Feiner Bros NEW57Asiya Javayant
1047Leon Z GlickArgentina2026-06-24Feiner Bros QUALIFIED93Ioni Bowcher
1048Jefferson G AlbaresItaly2026-06-14Dorl, James J Esq UNQUALIFIED28Amy Elsner
1049Jefferson T TollnerFrance2026-06-22Printing Dimensions PROPOSAL6Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aruna L ButtRussiaAmy Elsner NEGOTIATION
Adams I DoeUnited KingdomBernardo Dominic NEW
Emily O PaprockiJapanAmy Elsner PROPOSAL
Ricardo V ButtUnited KingdomOnyama Limba QUALIFIED
Aika B MaletBrazilElwin Sharvill UNQUALIFIED
Mujtaba C BowleyUnited KingdomAnna Fali RENEWAL
Murillo Q KolmetzAustraliaStephen Shaw NEGOTIATION
Maisha F MaletArgentinaBernardo Dominic NEW
Aruna B MarrierItalyIvan Magalhaes NEGOTIATION
Aruna G FigeroaIndiaAsiya Javayant NEGOTIATION
Juan M MacleadBrazilElwin Sharvill RENEWAL
Morrow E KuskoJapanAsiya Javayant NEGOTIATION
Juan I OldroydUnited KingdomIoni Bowcher NEW
Jones U VenereRussiaElwin Sharvill UNQUALIFIED
Emily V RoysterArgentinaElwin Sharvill UNQUALIFIED
Leja R MaletArgentinaIoni Bowcher QUALIFIED
Jefferson P WieserFranceOnyama Limba RENEWAL
Leon P KolmetzSpainStephen Shaw QUALIFIED
Claire E MaletSpainElwin Sharvill UNQUALIFIED
Rodrigues T DoeAustraliaXuxue Feng PROPOSAL
Costa J BriddickItalyAnna Fali NEGOTIATION
Morrow B GillianCanadaXuxue Feng UNQUALIFIED
Izzy G RimSpainAnna Fali PROPOSAL
Octavia J CampainFranceAnna Fali UNQUALIFIED
Aditya S VenereJapanAnna Fali RENEWAL
Cody A MorascaArgentinaElwin Sharvill UNQUALIFIED
Aditya U StensethGermanyIoni Bowcher PROPOSAL
Ashley X MorascaGermanyXuxue Feng QUALIFIED
Jefferson Q StensethBrazilAsiya Javayant RENEWAL
Leon M FollerGermanyElwin Sharvill QUALIFIED
Juan E RimSpainAnna Fali NEGOTIATION
Emily Z FigeroaArgentinaIoni Bowcher RENEWAL
David F WieserFranceAmy Elsner QUALIFIED
Julie H IturbideItalyAnna Fali QUALIFIED
Darci P TollnerSpainAnna Fali PROPOSAL
Nicolas U IturbideSpainIvan Magalhaes QUALIFIED
Kadeem L BriddickBrazilBernardo Dominic UNQUALIFIED
Greenwood W KuskoUnited KingdomAnna Fali QUALIFIED
Johnson P DilliardItalyAnna Fali NEW
Cody J SergiSpainElwin Sharvill QUALIFIED
Cody X WieserRussiaAsiya Javayant QUALIFIED
Mayumi J AlbaresBrazilIvan Magalhaes UNQUALIFIED
Chavez M SaylorsRussiaStephen Shaw QUALIFIED
Darci S BriddickRussiaBernardo Dominic QUALIFIED
Jefferson D PaprockiFranceElwin Sharvill UNQUALIFIED
Isabel D WieserSpainIvan Magalhaes QUALIFIED
Leja K SlusarskiRussiaElwin Sharvill UNQUALIFIED
Julie S NickaItalyAsiya Javayant QUALIFIED
Tony O RimIndiaAnna Fali QUALIFIED
Arvin C VocelkaJapanBernardo Dominic RENEWAL
Frozen Columns
Name
Jones I Maclead
Octavia X Stenseth
Silvio U Doe
Nicolas Q Inouye
Leon X Vocelka
Greenwood H Stenseth
Claire A Nicka
Jefferson L Dilliard
Jefferson E Wieser
Nicolas U Oldroyd
Claire J Kusko
Leja O Oldroyd
Wickens F Ostrosky
Octavia X Malet
Maisha K Iturbide
Jefferson D Stockham
Claire O Caldarera
Maria O Kolmetz
Adams X Stenseth
Wickens W Oldroyd
Nicolas S Glick
Adams P Albares
Jeanfrancois U Doe
Antonio J Tollner
Julie E Gillian
Salvatore Y Rim
Salvatore N Foller
Jennifer M Garufi
Alejandro Y Morasca
Jefferson Q Malet
Sinclair L Stockham
Jeanfrancois J Briddick
Jefferson Y Kolmetz
Darci T Bolognia
Maria G Bolognia
Emily X Garufi
Mujtaba B Bowley
Munro O Butt
Cody K Inouye
Ricardo Q Glick
Salvatore D Kusko
Aruna O Foller
Darci D Campain
Claire L Gillian
Octavia L Albares
Francesco R Amigon
Mujtaba C Gaucho
Ivar M Wieser
Leon G Darakjy
Salvatore S Chui
IdCountryDate
1000United Kingdom2026-06-21
1001Australia2026-06-17
1002Australia2026-06-13
1003Spain2026-07-10
1004United Kingdom2026-07-06
1005France2026-06-21
1006Canada2026-07-06
1007Russia2026-07-10
1008Argentina2026-06-26
1009Germany2026-06-21
1010Argentina2026-06-27
1011India2026-06-29
1012Japan2026-07-01
1013Germany2026-06-11
1014Germany2026-06-20
1015Russia2026-06-26
1016Italy2026-07-07
1017Russia2026-07-03
1018France2026-07-02
1019Japan2026-06-27
1020Italy2026-07-09
1021Russia2026-06-14
1022Japan2026-07-05
1023Canada2026-07-08
1024Japan2026-06-13
1025Italy2026-06-29
1026India2026-06-22
1027France2026-06-17
1028Brazil2026-06-11
1029Spain2026-06-15
1030Argentina2026-06-24
1031Russia2026-06-29
1032Spain2026-07-03
1033Italy2026-06-12
1034United Kingdom2026-07-05
1035Japan2026-06-17
1036Russia2026-07-02
1037Spain2026-06-20
1038Argentina2026-06-28
1039Canada2026-06-15
1040Canada2026-06-22
1041Spain2026-07-07
1042Brazil2026-07-05
1043Japan2026-06-15
1044United Kingdom2026-07-01
1045Italy2026-06-19
1046Italy2026-06-25
1047Germany2026-06-26
1048Russia2026-06-19
1049India2026-06-24

On-Demand Data

NameIdCountryDate
Costa J Flosi1000Argentina2026-07-08
Ashley R Whobrey1001Russia2026-07-06
Johnson Z Marrier1002Canada2026-07-06
Emily X Sergi1003United Kingdom2026-06-19
Leon N Foller1004Brazil2026-07-01
Chavez A Amigon1005Australia2026-06-19
Salvatore B Rim1006United Kingdom2026-07-04
Julie Z Whobrey1007Brazil2026-06-22
Silvio H Kusko1008Argentina2026-07-09
Salvatore K Saylors1009India2026-06-25
Rodrigues X Paprocki1010United Kingdom2026-06-30
Antonio Q Campain1011France2026-06-11
Kaitlin V Royster1012India2026-06-16
Aruna B Foller1013Australia2026-06-12
Mayumi R Paprocki1014Brazil2026-06-15
Maisha P Tollner1015Australia2026-06-13
Sinclair T Rim1016Australia2026-06-16
Maria I Malet1017Australia2026-06-21
Greenwood I Paprocki1018Argentina2026-06-20
Deepesh X Poquette1019Japan2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer X GarufiItalyStephen Shaw NEW
Jefferson C RoysterRussiaIoni Bowcher NEW
Misaki Q ButtAustraliaBernardo Dominic UNQUALIFIED
Chavez I GauchoCanadaIvan Magalhaes RENEWAL
Octavia V WaycottRussiaAnna Fali PROPOSAL
Costa H ButtRussiaBernardo Dominic NEGOTIATION
Silvio O FlosiCanadaAnna Fali NEGOTIATION
Misaki G RoysterIndiaXuxue Feng UNQUALIFIED
James U VocelkaCanadaIvan Magalhaes PROPOSAL
Aika P WhobreyBrazilElwin Sharvill NEGOTIATION
Deepesh Z KuskoCanadaStephen Shaw NEGOTIATION
Kadeem U AmigonFranceAmy Elsner PROPOSAL
Mujtaba R BologniaSpainAnna Fali QUALIFIED
Johnson P MacleadSpainIvan Magalhaes NEGOTIATION
Kaitlin M IturbideGermanyIvan Magalhaes NEGOTIATION
Leon E SaylorsFranceAsiya Javayant NEGOTIATION
Rodrigues O SergiJapanIoni Bowcher QUALIFIED
Faith J OldroydArgentinaAsiya Javayant UNQUALIFIED
Deepesh M CampainRussiaIoni Bowcher NEW
Stacey W ChuiCanadaIvan Magalhaes NEW
Ashley I RutaUnited KingdomXuxue Feng PROPOSAL
Tony E MarrierRussiaXuxue Feng PROPOSAL
Antonio I SchemmerJapanAnna Fali RENEWAL
Jeanfrancois Z NestleJapanXuxue Feng PROPOSAL
Cody I KolmetzIndiaStephen Shaw QUALIFIED
Jeanfrancois S WhobreyCanadaXuxue Feng NEGOTIATION
Adams Q CaldareraRussiaBernardo Dominic UNQUALIFIED
Juan W DoeCanadaIvan Magalhaes RENEWAL
Wickens L ButtAustraliaStephen Shaw NEGOTIATION
Clifford A BologniaBrazilStephen Shaw NEW
Misaki T RoysterArgentinaElwin Sharvill RENEWAL
Rodrigues F SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Nicolas D FlosiCanadaAmy Elsner PROPOSAL
Alejandro T WhobreyJapanAmy Elsner NEGOTIATION
Morrow W PaprockiGermanyAnna Fali UNQUALIFIED
Kaitlin C SchemmerBrazilIvan Magalhaes UNQUALIFIED
Jennifer I DilliardJapanStephen Shaw UNQUALIFIED
Jones U PerinCanadaBernardo Dominic PROPOSAL
Faith M NickaBrazilIoni Bowcher NEGOTIATION
Morrow E FlosiUnited KingdomAmy Elsner 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>