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
Chavez P ButtAustraliaStephen Shaw NEW
Alejandro M WhobreyArgentinaElwin Sharvill QUALIFIED
Ricardo T MacleadRussiaBernardo Dominic QUALIFIED
Clifford H MorascaCanadaAsiya Javayant UNQUALIFIED
Leon Q KuskoUnited KingdomOnyama Limba PROPOSAL
Munro W BriddickAustraliaAnna Fali UNQUALIFIED
Julie J DoeGermanyAsiya Javayant RENEWAL
Claire P PaprockiUnited KingdomIoni Bowcher QUALIFIED
Murillo H RoysterBrazilXuxue Feng NEGOTIATION
Faith Y ChuiFranceStephen Shaw PROPOSAL
Deepesh Y MacleadGermanyXuxue Feng UNQUALIFIED
Ashley Y NestleItalyElwin Sharvill PROPOSAL
Salvatore M NickaCanadaXuxue Feng UNQUALIFIED
Greenwood J PaprockiItalyIvan Magalhaes QUALIFIED
Stacey G OldroydItalyStephen Shaw NEGOTIATION
Aruna Q AmigonBrazilXuxue Feng UNQUALIFIED
Smith U RulapaughArgentinaAmy Elsner NEGOTIATION
Octavia W StockhamCanadaAsiya Javayant UNQUALIFIED
Ivar B ButtAustraliaAnna Fali PROPOSAL
Alejandro R MarrierArgentinaIvan Magalhaes NEGOTIATION
Ricardo I StockhamFranceAnna Fali RENEWAL
Salvatore R MacleadAustraliaStephen Shaw NEW
Izzy N TollnerArgentinaIvan Magalhaes NEGOTIATION
Morrow V StensethBrazilBernardo Dominic NEGOTIATION
Cody Q FerenczArgentinaXuxue Feng UNQUALIFIED
Ivar G AmigonCanadaIvan Magalhaes NEGOTIATION
Antonio U AlbaresFranceElwin Sharvill NEGOTIATION
Deepesh X PoquetteSpainAmy Elsner PROPOSAL
Wickens V BowleyFranceIoni Bowcher NEW
Murillo I ShinkoArgentinaIoni Bowcher PROPOSAL
Mujtaba B BologniaUnited KingdomXuxue Feng UNQUALIFIED
Murillo H RimAustraliaAsiya Javayant NEGOTIATION
Clifford D TollnerSpainIvan Magalhaes NEGOTIATION
Morrow C NestleSpainAmy Elsner NEW
Misaki Y ShinkoItalyOnyama Limba RENEWAL
Silvio X WieserArgentinaIoni Bowcher NEGOTIATION
Tony G WieserFranceAmy Elsner UNQUALIFIED
Juan U DilliardJapanElwin Sharvill NEGOTIATION
Mujtaba O BologniaGermanyIoni Bowcher UNQUALIFIED
Kadeem Y GarufiFranceAmy Elsner PROPOSAL
Smith B ChuiSpainStephen Shaw UNQUALIFIED
Isabel K SaylorsIndiaStephen Shaw RENEWAL
Murillo J MaletArgentinaBernardo Dominic RENEWAL
Octavia C RutaCanadaBernardo Dominic UNQUALIFIED
Ricardo E MarrierCanadaAnna Fali NEW
Salvatore T ChuiUnited KingdomOnyama Limba UNQUALIFIED
Faith L RimBrazilStephen Shaw NEGOTIATION
Francesco K GillianItalyElwin Sharvill PROPOSAL
Smith F CaudySpainOnyama Limba NEW
Smith L DilliardArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon X TollnerJapanIoni Bowcher UNQUALIFIED
Isabel X KolmetzUnited KingdomElwin Sharvill PROPOSAL
Cody Z PaprockiSpainElwin Sharvill UNQUALIFIED
Claire P RutaAustraliaXuxue Feng NEW
Ashley M CampainItalyOnyama Limba RENEWAL
David F RutaFranceXuxue Feng QUALIFIED
Adams J FlosiRussiaAmy Elsner QUALIFIED
Rodrigues G BowleyArgentinaElwin Sharvill UNQUALIFIED
Sinclair Y ShinkoAustraliaElwin Sharvill RENEWAL
Costa S MaletRussiaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues L IturbideUnited Kingdom2025-05-31Dorl, James J Esq NEGOTIATION57Anna Fali
1001Wickens E TollnerUnited Kingdom2025-06-14Feiner Bros NEW40Ivan Magalhaes
1002Maria I MacleadJapan2025-06-08Rousseaux, Michael Esq UNQUALIFIED34Elwin Sharvill
1003Mayumi N DarakjyJapan2025-05-17Morlong Associates RENEWAL8Stephen Shaw
1004Jennifer C FlosiFrance2025-06-08Feiner Bros PROPOSAL2Xuxue Feng
1005Francesco P AlbaresArgentina2025-05-27Feiner Bros QUALIFIED37Ioni Bowcher
1006Chavez L MarrierCanada2025-06-07Buckley Miller Wright PROPOSAL37Stephen Shaw
1007Wickens H RoysterUnited Kingdom2025-06-01Morlong Associates UNQUALIFIED51Elwin Sharvill
1008Julie P GlickBrazil2025-05-18Commercial Press QUALIFIED11Elwin Sharvill
1009Antonio M CampainRussia2025-06-05Buckley Miller Wright QUALIFIED9Anna Fali
1010Ricardo D PoquetteJapan2025-06-02Feltz Printing Service PROPOSAL81Ivan Magalhaes
1011Maria O AmigonGermany2025-05-28Dorl, James J Esq QUALIFIED56Elwin Sharvill
1012Chavez S WaycottRussia2025-06-13Feltz Printing Service RENEWAL75Bernardo Dominic
1013Juan J AmigonItaly2025-05-17Feiner Bros NEW72Ioni Bowcher
1014Sinclair W PoquetteItaly2025-05-19Rousseaux, Michael Esq QUALIFIED33Bernardo Dominic
1015Silvio Z RimSpain2025-05-22Chemel, James L Cpa QUALIFIED38Xuxue Feng
1016Aika P AlbaresItaly2025-06-08Feltz Printing Service NEGOTIATION94Ioni Bowcher
1017Julie Z VenereCanada2025-05-30Feiner Bros RENEWAL8Ioni Bowcher
1018Jefferson N RimIndia2025-06-07Chemel, James L Cpa QUALIFIED15Xuxue Feng
1019Alejandro N StockhamUnited Kingdom2025-05-21Chanay, Jeffrey A Esq QUALIFIED84Bernardo Dominic
1020Arvin O KuskoGermany2025-06-11Benton, John B Jr UNQUALIFIED98Bernardo Dominic
1021Ricardo Z ChuiIndia2025-05-25Feltz Printing Service UNQUALIFIED60Anna Fali
1022Isabel T NestleFrance2025-05-16Benton, John B Jr RENEWAL97Xuxue Feng
1023Johnson R VenereGermany2025-05-22Rousseaux, Michael Esq UNQUALIFIED23Anna Fali
1024Ashley U MaletBrazil2025-06-06Dorl, James J Esq NEGOTIATION77Onyama Limba
1025Jennifer H SchemmerUnited Kingdom2025-06-09Dorl, James J Esq NEW32Stephen Shaw
1026Adams Q FigeroaRussia2025-06-02Chemel, James L Cpa UNQUALIFIED65Bernardo Dominic
1027Jennifer U OldroydIndia2025-06-01Chemel, James L Cpa NEGOTIATION32Ivan Magalhaes
1028Isabel I CaudyIndia2025-05-29Morlong Associates NEGOTIATION11Asiya Javayant
1029Johnson C CaudyItaly2025-06-10Truhlar And Truhlar Attys RENEWAL11Ioni Bowcher
1030Jeanfrancois S FollerCanada2025-05-26King, Christopher A Esq NEW91Ivan Magalhaes
1031Ricardo C FigeroaAustralia2025-05-20Chanay, Jeffrey A Esq UNQUALIFIED99Bernardo Dominic
1032Francesco K DilliardArgentina2025-05-16Printing Dimensions QUALIFIED58Amy Elsner
1033Tony Z BowleyArgentina2025-05-26Chapman, Ross E Esq UNQUALIFIED85Xuxue Feng
1034Francesco Y WaycottBrazil2025-06-03Morlong Associates UNQUALIFIED24Asiya Javayant
1035Mayumi Z AlbaresUnited Kingdom2025-06-05Rangoni Of Florence PROPOSAL84Bernardo Dominic
1036Aruna P NickaAustralia2025-05-31Feltz Printing Service RENEWAL88Anna Fali
1037Wickens C PaprockiRussia2025-05-16Feltz Printing Service PROPOSAL67Amy Elsner
1038Aditya K FigeroaRussia2025-06-01Buckley Miller Wright UNQUALIFIED56Amy Elsner
1039Darci L SchemmerUnited Kingdom2025-05-20Buckley Miller Wright NEW36Bernardo Dominic
1040Francesco M RoysterCanada2025-06-13Morlong Associates QUALIFIED19Ioni Bowcher
1041Aika E RoysterFrance2025-05-29Chemel, James L Cpa NEGOTIATION62Ivan Magalhaes
1042Maisha N ShinkoIndia2025-05-26Chanay, Jeffrey A Esq UNQUALIFIED10Amy Elsner
1043Jefferson W PoquetteRussia2025-05-26Benton, John B Jr RENEWAL80Anna Fali
1044Juan G GlickUnited Kingdom2025-06-03King, Christopher A Esq UNQUALIFIED91Anna Fali
1045Aditya X DilliardArgentina2025-05-21Buckley Miller Wright NEGOTIATION63Ivan Magalhaes
1046Silvio Q OstroskyJapan2025-06-11Chanay, Jeffrey A Esq NEGOTIATION89Amy Elsner
1047Francesco A WaycottUnited Kingdom2025-05-17Feiner Bros NEW10Anna Fali
1048Aruna I FollerGermany2025-06-03Benton, John B Jr PROPOSAL52Ivan Magalhaes
1049Claire T CaudyAustralia2025-05-23Feltz Printing Service RENEWAL70Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo T AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Juan B RimFranceBernardo Dominic NEGOTIATION
Smith H PaprockiBrazilIoni Bowcher NEW
Aika F StockhamBrazilStephen Shaw PROPOSAL
Antonio Q NickaUnited KingdomBernardo Dominic PROPOSAL
Izzy M GillianItalyOnyama Limba PROPOSAL
Octavia B WieserUnited KingdomStephen Shaw NEW
Jefferson H SergiIndiaStephen Shaw UNQUALIFIED
Leja B SergiCanadaIoni Bowcher RENEWAL
Isabel N WaycottJapanIvan Magalhaes NEW
Salvatore S WieserSpainIoni Bowcher PROPOSAL
Salvatore O MaletArgentinaAsiya Javayant QUALIFIED
Jefferson G ButtSpainStephen Shaw NEW
Clifford U SaylorsAustraliaXuxue Feng UNQUALIFIED
Munro O GarufiFranceAmy Elsner NEW
Morrow G AlbaresJapanElwin Sharvill RENEWAL
Arvin I FigeroaIndiaXuxue Feng NEGOTIATION
Ashley M RulapaughCanadaAnna Fali NEW
Cody G NestleCanadaOnyama Limba UNQUALIFIED
Antonio Q IturbideBrazilAmy Elsner RENEWAL
Clifford O NickaIndiaAsiya Javayant RENEWAL
Alejandro V CaldareraBrazilOnyama Limba PROPOSAL
Misaki M WhobreyIndiaXuxue Feng PROPOSAL
Silvio S ShinkoBrazilBernardo Dominic RENEWAL
Maria R MacleadAustraliaAnna Fali PROPOSAL
Jennifer A StensethFranceOnyama Limba QUALIFIED
Aditya I DarakjyRussiaBernardo Dominic NEW
Morrow G MaletArgentinaIoni Bowcher RENEWAL
Costa F MaletSpainStephen Shaw NEW
Ashley Y OldroydFranceAnna Fali NEW
Mujtaba E ShinkoIndiaStephen Shaw PROPOSAL
Jennifer R BowleyGermanyAmy Elsner PROPOSAL
Sinclair D MaletGermanyAsiya Javayant UNQUALIFIED
Aditya A FlosiIndiaAmy Elsner NEW
Maisha K NestleArgentinaElwin Sharvill UNQUALIFIED
Darci W ShinkoJapanBernardo Dominic NEGOTIATION
Ivar E KuskoUnited KingdomIoni Bowcher NEGOTIATION
Aika P RimFranceAnna Fali QUALIFIED
Kadeem E CaldareraCanadaAsiya Javayant NEGOTIATION
Aditya K IturbideAustraliaBernardo Dominic NEGOTIATION
Smith X SchemmerCanadaXuxue Feng PROPOSAL
Johnson P FerenczIndiaAnna Fali RENEWAL
Aruna X WaycottAustraliaAsiya Javayant PROPOSAL
Kadeem H AmigonItalyAsiya Javayant PROPOSAL
Stacey L MorascaUnited KingdomAsiya Javayant QUALIFIED
Misaki Z DoeJapanBernardo Dominic NEW
David O RoysterSpainXuxue Feng UNQUALIFIED
Costa E PoquetteJapanBernardo Dominic UNQUALIFIED
Maisha M NestleCanadaOnyama Limba PROPOSAL
Smith D MaletItalyAsiya Javayant RENEWAL
Frozen Columns
Name
Aika A Briddick
Clifford L Caldarera
Francesco M Nestle
Alejandro F Sergi
Jones B Ostrosky
Juan J Ruta
Ivar B Amigon
Kaitlin X Doe
Emily O Briddick
Antonio L Ferencz
Chavez T Butt
Octavia M Kusko
Francesco J Figeroa
Murillo I Caldarera
Aika P Caudy
Antonio P Bowley
Claire Y Vocelka
Jefferson D Malet
David F Iturbide
Morrow X Wieser
Cody G Poquette
Darci I Paprocki
Misaki O Vocelka
Adams N Shinko
Salvatore R Garufi
Ashley G Glick
Arvin N Maclead
Faith A Bowley
David W Garufi
Alejandro L Stockham
Munro E Stenseth
Maisha H Albares
Wickens K Slusarski
Maria Q Oldroyd
Mayumi H Vocelka
Faith O Saylors
Maisha X Morasca
Smith P Caudy
Morrow I Oldroyd
Morrow E Campain
Ashley V Bolognia
Adams F Campain
Octavia W Flosi
Antonio A Iturbide
Costa F Vocelka
Ricardo Y Shinko
Stacey C Whobrey
Stacey S Malet
Aruna Q Campain
Clifford I Venere
IdCountryDate
1000Australia2025-05-26
1001Spain2025-06-08
1002Australia2025-05-25
1003Australia2025-06-13
1004Germany2025-05-21
1005Brazil2025-05-26
1006Germany2025-05-16
1007Argentina2025-06-10
1008Canada2025-05-31
1009Brazil2025-05-20
1010Spain2025-06-12
1011Canada2025-06-11
1012United Kingdom2025-05-17
1013Australia2025-05-16
1014Argentina2025-05-26
1015United Kingdom2025-05-21
1016Germany2025-06-13
1017France2025-06-01
1018Canada2025-06-01
1019India2025-05-21
1020Italy2025-06-06
1021France2025-05-27
1022Argentina2025-05-31
1023India2025-05-28
1024Australia2025-06-10
1025United Kingdom2025-05-27
1026Canada2025-05-24
1027Russia2025-05-16
1028Australia2025-05-27
1029Brazil2025-05-24
1030Brazil2025-05-22
1031Australia2025-06-09
1032Brazil2025-05-19
1033Argentina2025-06-11
1034France2025-05-23
1035Spain2025-05-30
1036Japan2025-06-11
1037Japan2025-06-12
1038India2025-05-23
1039Canada2025-06-03
1040Italy2025-05-18
1041France2025-06-06
1042United Kingdom2025-05-24
1043Italy2025-05-17
1044Canada2025-06-08
1045France2025-06-11
1046Argentina2025-06-13
1047Spain2025-05-17
1048Brazil2025-06-09
1049Japan2025-06-05

On-Demand Data

NameIdCountryDate
Faith W Kolmetz1000United Kingdom2025-06-03
Johnson L Morasca1001Japan2025-06-02
Darci U Briddick1002Brazil2025-06-08
Morrow H Ruta1003Argentina2025-06-13
Rodrigues O Rim1004Brazil2025-06-01
Isabel H Albares1005Australia2025-05-31
Ricardo T Briddick1006France2025-05-17
Morrow H Stenseth1007United Kingdom2025-06-01
Jeanfrancois I Garufi1008Australia2025-06-03
Jeanfrancois J Doe1009Brazil2025-06-09
Izzy W Campain1010Italy2025-05-25
Smith Q Albares1011India2025-05-23
Costa R Waycott1012Japan2025-05-29
Jeanfrancois W Royster1013Argentina2025-05-22
Emily I Malet1014Argentina2025-05-20
David R Dilliard1015India2025-06-11
Jefferson L Venere1016Japan2025-05-21
Jones G Gillian1017Japan2025-06-08
Leon N Paprocki1018France2025-05-26
Kaitlin F Kolmetz1019Germany2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood V MarrierRussiaStephen Shaw PROPOSAL
Smith N KuskoBrazilAsiya Javayant UNQUALIFIED
Antonio S IturbideJapanAmy Elsner NEGOTIATION
Johnson D RulapaughJapanAnna Fali UNQUALIFIED
Munro Z DoeAustraliaBernardo Dominic PROPOSAL
Leja U BriddickRussiaXuxue Feng RENEWAL
Izzy P SlusarskiBrazilOnyama Limba QUALIFIED
Claire X SergiItalyAnna Fali QUALIFIED
Leon D RulapaughFranceStephen Shaw PROPOSAL
Jennifer G RoysterItalyXuxue Feng PROPOSAL
Isabel H VenereArgentinaElwin Sharvill RENEWAL
Claire L WaycottGermanyXuxue Feng NEGOTIATION
Cody K RimSpainAnna Fali RENEWAL
Morrow L CaudyFranceXuxue Feng RENEWAL
Julie D KolmetzFranceAsiya Javayant QUALIFIED
Ashley A MacleadArgentinaIvan Magalhaes PROPOSAL
Arvin G StockhamAustraliaAsiya Javayant QUALIFIED
Murillo Z GlickUnited KingdomAmy Elsner PROPOSAL
Rodrigues P AlbaresBrazilBernardo Dominic PROPOSAL
Alejandro D MaletArgentinaAnna Fali UNQUALIFIED
Leon V KuskoCanadaAnna Fali NEW
Deepesh N RoysterAustraliaOnyama Limba PROPOSAL
Rodrigues M VenereIndiaStephen Shaw RENEWAL
Leja Q FollerAustraliaStephen Shaw UNQUALIFIED
Silvio I VocelkaArgentinaAnna Fali PROPOSAL
Ashley H TollnerAustraliaStephen Shaw NEW
Leja P WhobreyCanadaAsiya Javayant PROPOSAL
Kadeem S CaldareraCanadaElwin Sharvill UNQUALIFIED
Aditya H TollnerArgentinaBernardo Dominic UNQUALIFIED
Maisha Q AmigonAustraliaIvan Magalhaes NEGOTIATION
Kaitlin R StockhamAustraliaAsiya Javayant NEGOTIATION
Isabel O CaldareraAustraliaIvan Magalhaes NEW
Maisha I BologniaAustraliaElwin Sharvill UNQUALIFIED
Johnson F DilliardSpainAnna Fali PROPOSAL
Morrow R ButtSpainAsiya Javayant UNQUALIFIED
Ivar P FigeroaGermanyAsiya Javayant UNQUALIFIED
Alejandro Z GauchoUnited KingdomAmy Elsner NEGOTIATION
Clifford X ChuiJapanXuxue Feng RENEWAL
Emily I PerinFranceBernardo Dominic PROPOSAL
Leja A DilliardJapanAnna Fali RENEWAL

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