Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Aditya G NestleItalyAmy Elsner UNQUALIFIED
Mayumi H DarakjyRussiaAmy Elsner PROPOSAL
Leja U NickaUnited KingdomAsiya Javayant RENEWAL
Ashley Y StensethFranceIoni Bowcher UNQUALIFIED
Tony S ChuiRussiaXuxue Feng UNQUALIFIED
Clifford K RulapaughSpainBernardo Dominic QUALIFIED
Darci H PerinCanadaBernardo Dominic RENEWAL
Aika B SchemmerJapanAmy Elsner UNQUALIFIED
Silvio Y CampainFranceAmy Elsner QUALIFIED
Silvio R PoquetteSpainIoni Bowcher UNQUALIFIED
Faith D AlbaresGermanyAsiya Javayant QUALIFIED
Jones E DarakjyArgentinaOnyama Limba RENEWAL
Costa X RimBrazilIvan Magalhaes NEGOTIATION
Leon V NickaSpainXuxue Feng RENEWAL
Claire S ShinkoSpainAmy Elsner UNQUALIFIED
Ricardo Y RutaAustraliaBernardo Dominic QUALIFIED
Tony V GlickItalyAmy Elsner UNQUALIFIED
Leon W RutaRussiaOnyama Limba UNQUALIFIED
Francesco K KuskoSpainAsiya Javayant NEGOTIATION
Rodrigues W GlickGermanyAmy Elsner NEGOTIATION
Mujtaba N ShinkoCanadaStephen Shaw RENEWAL
Ivar G MarrierJapanIoni Bowcher QUALIFIED
Darci R WhobreyFranceAsiya Javayant UNQUALIFIED
Deepesh G PoquetteJapanAmy Elsner UNQUALIFIED
Sinclair G GillianUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba A FlosiIndiaIoni Bowcher UNQUALIFIED
Deepesh K FlosiAustraliaOnyama Limba QUALIFIED
Maria T MaletGermanyElwin Sharvill PROPOSAL
Wickens L MacleadArgentinaOnyama Limba PROPOSAL
Munro D VocelkaSpainBernardo Dominic NEGOTIATION
Francesco P RoysterArgentinaElwin Sharvill QUALIFIED
Jefferson Z BowleyArgentinaBernardo Dominic UNQUALIFIED
Morrow O OldroydItalyBernardo Dominic NEGOTIATION
Ricardo F MaletUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois U WhobreyJapanIvan Magalhaes NEW
Nicolas S FerenczRussiaXuxue Feng PROPOSAL
Maisha Z VenereArgentinaIvan Magalhaes NEW
Juan M SlusarskiSpainElwin Sharvill RENEWAL
Leon O AlbaresAustraliaXuxue Feng NEW
Salvatore F CampainArgentinaAmy Elsner QUALIFIED
Jefferson X RutaUnited KingdomStephen Shaw UNQUALIFIED
Morrow S NestleJapanAmy Elsner NEGOTIATION
Octavia D RoysterJapanStephen Shaw NEGOTIATION
Claire H ButtGermanyIvan Magalhaes NEGOTIATION
Jennifer W FerenczUnited KingdomStephen Shaw QUALIFIED
Maisha S StensethItalyAnna Fali NEW
Rodrigues I SergiIndiaIoni Bowcher NEGOTIATION
Francesco W MaletAustraliaXuxue Feng NEW
Maria I IturbideAustraliaElwin Sharvill QUALIFIED
Clifford U NickaJapanOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi A DoeCanadaIvan Magalhaes PROPOSAL
Chavez I GlickFranceBernardo Dominic UNQUALIFIED
Faith A SchemmerArgentinaIvan Magalhaes NEGOTIATION
Maria K SergiJapanAmy Elsner QUALIFIED
Deepesh H KolmetzFranceOnyama Limba RENEWAL
Izzy C VocelkaArgentinaElwin Sharvill NEW
Leja N ChuiFranceIoni Bowcher PROPOSAL
Deepesh O StensethIndiaIvan Magalhaes UNQUALIFIED
James D RulapaughAustraliaStephen Shaw NEGOTIATION
Mayumi F WieserCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi V SergiAustralia2025-08-22Feltz Printing Service UNQUALIFIED81Xuxue Feng
1001Salvatore Z MacleadIndia2025-07-27Rousseaux, Michael Esq QUALIFIED45Asiya Javayant
1002Julie G SlusarskiBrazil2025-08-20Chemel, James L Cpa QUALIFIED4Amy Elsner
1003Aditya W CaudyCanada2025-08-20Chapman, Ross E Esq UNQUALIFIED17Xuxue Feng
1004Aika G SlusarskiJapan2025-08-20Dorl, James J Esq NEGOTIATION34Stephen Shaw
1005Arvin G GarufiCanada2025-07-29Truhlar And Truhlar Attys PROPOSAL58Xuxue Feng
1006Mayumi N MaletFrance2025-08-15Dorl, James J Esq NEGOTIATION77Onyama Limba
1007Smith B WieserArgentina2025-07-29Rousseaux, Michael Esq PROPOSAL50Ivan Magalhaes
1008Salvatore B GauchoAustralia2025-08-24Chemel, James L Cpa NEW64Xuxue Feng
1009Murillo Y ChuiJapan2025-08-23Benton, John B Jr QUALIFIED2Stephen Shaw
1010Deepesh B RulapaughCanada2025-08-05Feiner Bros UNQUALIFIED92Elwin Sharvill
1011Aika I SlusarskiAustralia2025-08-25Morlong Associates PROPOSAL74Bernardo Dominic
1012Leon Y ChuiGermany2025-08-12Buckley Miller Wright RENEWAL37Ivan Magalhaes
1013Deepesh R TollnerGermany2025-08-12Commercial Press PROPOSAL20Onyama Limba
1014Clifford S OldroydArgentina2025-08-06Truhlar And Truhlar Attys UNQUALIFIED47Elwin Sharvill
1015Cody K WaycottCanada2025-08-05Rousseaux, Michael Esq QUALIFIED66Ioni Bowcher
1016Francesco H TollnerFrance2025-08-14Chemel, James L Cpa QUALIFIED7Ioni Bowcher
1017Misaki U MorascaArgentina2025-08-02Buckley Miller Wright UNQUALIFIED85Bernardo Dominic
1018Rodrigues K AmigonGermany2025-08-19Buckley Miller Wright UNQUALIFIED70Stephen Shaw
1019Darci X GlickFrance2025-08-08Benton, John B Jr RENEWAL22Bernardo Dominic
1020Deepesh J SlusarskiItaly2025-08-25Chanay, Jeffrey A Esq QUALIFIED96Asiya Javayant
1021Morrow Y BologniaAustralia2025-08-25Chapman, Ross E Esq QUALIFIED40Elwin Sharvill
1022Julie S SlusarskiItaly2025-08-04Chapman, Ross E Esq NEGOTIATION54Ioni Bowcher
1023Aika D ShinkoSpain2025-07-30Rousseaux, Michael Esq NEW98Elwin Sharvill
1024Misaki B FlosiUnited Kingdom2025-08-07Buckley Miller Wright PROPOSAL62Ioni Bowcher
1025Sinclair S SaylorsSpain2025-08-08Dorl, James J Esq NEW41Xuxue Feng
1026Antonio U DoeJapan2025-08-12Buckley Miller Wright RENEWAL37Xuxue Feng
1027Leja A FigeroaSpain2025-08-12King, Christopher A Esq RENEWAL18Ivan Magalhaes
1028Arvin P BriddickAustralia2025-08-10Benton, John B Jr PROPOSAL18Onyama Limba
1029Kaitlin B MaletItaly2025-08-17Truhlar And Truhlar Attys UNQUALIFIED64Elwin Sharvill
1030Adams P FerenczIndia2025-08-21King, Christopher A Esq NEGOTIATION95Asiya Javayant
1031Kadeem A ChuiSpain2025-08-02Chanay, Jeffrey A Esq PROPOSAL97Onyama Limba
1032Juan T WieserGermany2025-08-04Buckley Miller Wright NEW83Amy Elsner
1033Darci X DarakjySpain2025-08-20Printing Dimensions RENEWAL14Stephen Shaw
1034Sinclair L RulapaughItaly2025-08-22Rousseaux, Michael Esq RENEWAL79Amy Elsner
1035Leon O FlosiSpain2025-07-27Dorl, James J Esq NEGOTIATION92Xuxue Feng
1036Misaki Z StockhamItaly2025-08-01Printing Dimensions QUALIFIED9Ioni Bowcher
1037Stacey R DoeItaly2025-08-08Chapman, Ross E Esq UNQUALIFIED8Asiya Javayant
1038Jones T PerinGermany2025-08-06Dorl, James J Esq NEW65Ioni Bowcher
1039David E PerinIndia2025-08-13Chemel, James L Cpa NEGOTIATION74Xuxue Feng
1040Sinclair B SlusarskiItaly2025-08-02King, Christopher A Esq NEGOTIATION33Ivan Magalhaes
1041Greenwood F NickaItaly2025-08-24Feltz Printing Service RENEWAL59Anna Fali
1042Kaitlin X TollnerIndia2025-07-31Dorl, James J Esq RENEWAL81Onyama Limba
1043Costa T PaprockiItaly2025-08-11Commercial Press UNQUALIFIED46Asiya Javayant
1044Munro F RulapaughJapan2025-07-27Benton, John B Jr QUALIFIED51Onyama Limba
1045Aruna E PerinBrazil2025-08-07Chapman, Ross E Esq RENEWAL88Asiya Javayant
1046Murillo H SchemmerJapan2025-08-11Dorl, James J Esq UNQUALIFIED93Bernardo Dominic
1047Isabel K GillianFrance2025-08-09Chemel, James L Cpa QUALIFIED77Xuxue Feng
1048Nicolas W ShinkoIndia2025-08-20Chanay, Jeffrey A Esq RENEWAL67Anna Fali
1049Clifford G BologniaSpain2025-08-21Morlong Associates QUALIFIED3Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson R VenereBrazilAmy Elsner UNQUALIFIED
Ivar M PoquetteCanadaIoni Bowcher NEW
Mujtaba Y VenereItalyBernardo Dominic NEW
Antonio R PaprockiRussiaAnna Fali NEGOTIATION
Jefferson I ButtRussiaOnyama Limba QUALIFIED
Aditya R MaletFranceBernardo Dominic UNQUALIFIED
David C NickaItalyOnyama Limba NEGOTIATION
Jennifer H WieserRussiaElwin Sharvill QUALIFIED
Johnson Z RimRussiaAnna Fali RENEWAL
Silvio D PerinBrazilAmy Elsner RENEWAL
Jefferson U CaldareraArgentinaOnyama Limba RENEWAL
Aruna M SchemmerBrazilBernardo Dominic PROPOSAL
Nicolas C RimBrazilBernardo Dominic RENEWAL
Emily P FerenczBrazilElwin Sharvill QUALIFIED
Emily B MaletItalyOnyama Limba PROPOSAL
Sinclair D FlosiUnited KingdomXuxue Feng QUALIFIED
Jones G BowleyArgentinaOnyama Limba UNQUALIFIED
Munro L FollerCanadaStephen Shaw RENEWAL
Misaki D SaylorsAustraliaAmy Elsner PROPOSAL
Jennifer T MorascaJapanIoni Bowcher NEW
Johnson L GauchoArgentinaAnna Fali UNQUALIFIED
Silvio A RoysterGermanyAnna Fali NEGOTIATION
Emily Z RutaGermanyIvan Magalhaes NEW
Nicolas A MaletAustraliaAmy Elsner RENEWAL
Murillo O ShinkoBrazilStephen Shaw NEW
Chavez H MorascaIndiaXuxue Feng NEW
Aditya L AmigonArgentinaStephen Shaw PROPOSAL
Emily J WhobreySpainIoni Bowcher PROPOSAL
Izzy S RoysterAustraliaAmy Elsner QUALIFIED
Munro H BowleyArgentinaIvan Magalhaes NEW
Wickens E RulapaughGermanyXuxue Feng NEGOTIATION
Morrow B PoquetteIndiaIvan Magalhaes NEW
Ashley O AlbaresArgentinaElwin Sharvill QUALIFIED
Greenwood N ShinkoSpainElwin Sharvill RENEWAL
Smith N BriddickGermanyAnna Fali RENEWAL
James C DilliardFranceElwin Sharvill PROPOSAL
Nicolas O SergiUnited KingdomIoni Bowcher PROPOSAL
Octavia V ShinkoFranceElwin Sharvill NEW
Silvio L RulapaughIndiaAmy Elsner RENEWAL
James G ShinkoFranceBernardo Dominic QUALIFIED
Mujtaba D StensethSpainIoni Bowcher NEGOTIATION
Maisha D MaletGermanyOnyama Limba NEGOTIATION
Costa K MacleadCanadaStephen Shaw RENEWAL
Cody Y RutaIndiaBernardo Dominic UNQUALIFIED
Ashley B MaletArgentinaStephen Shaw RENEWAL
Murillo B MaletBrazilStephen Shaw QUALIFIED
Chavez W OldroydFranceIoni Bowcher QUALIFIED
Leon K RulapaughAustraliaIoni Bowcher UNQUALIFIED
Isabel S RulapaughGermanyBernardo Dominic RENEWAL
Stacey F SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Sinclair M Maclead
Faith Z Shinko
Johnson C Royster
Nicolas E Briddick
Munro X Venere
Juan J Glick
Jennifer P Ostrosky
Munro X Caldarera
Nicolas K Dilliard
Smith S Gaucho
Aruna R Stenseth
Juan N Morasca
Aditya G Morasca
Juan P Venere
Emily R Poquette
Salvatore V Saylors
Aruna J Perin
Murillo H Marrier
Francesco L Stenseth
Kaitlin O Sergi
Darci V Schemmer
Nicolas J Kusko
Jeanfrancois J Tollner
Nicolas F Slusarski
Emily Q Venere
Morrow J Tollner
Francesco J Flosi
Maria F Wieser
Wickens G Kusko
Claire F Iturbide
Isabel T Sergi
Silvio V Saylors
Smith P Bolognia
Maria C Royster
Salvatore L Foller
Juan V Garufi
Leja L Caldarera
Silvio U Nestle
Tony R Oldroyd
Munro G Chui
Mayumi Z Royster
Claire T Maclead
Stacey S Albares
Murillo O Malet
Salvatore Y Foller
Julie Y Butt
Smith I Malet
Johnson K Figeroa
Adams B Kusko
Chavez P Chui
IdCountryDate
1000India2025-08-25
1001Germany2025-08-25
1002India2025-08-25
1003Australia2025-08-14
1004Argentina2025-08-22
1005Russia2025-08-09
1006Japan2025-08-07
1007Canada2025-08-17
1008India2025-08-05
1009India2025-08-04
1010United Kingdom2025-08-25
1011Brazil2025-08-02
1012Canada2025-08-09
1013Canada2025-07-28
1014Canada2025-08-12
1015Japan2025-08-18
1016Canada2025-08-07
1017Russia2025-08-24
1018France2025-08-19
1019United Kingdom2025-08-23
1020Canada2025-08-06
1021Canada2025-08-17
1022Spain2025-08-01
1023Canada2025-08-22
1024France2025-08-02
1025Canada2025-07-30
1026Argentina2025-08-25
1027Germany2025-08-24
1028Italy2025-08-03
1029Australia2025-08-23
1030France2025-07-29
1031Spain2025-08-25
1032Brazil2025-08-11
1033Italy2025-08-05
1034India2025-08-04
1035Brazil2025-08-15
1036Australia2025-08-19
1037Australia2025-08-24
1038Germany2025-07-28
1039Canada2025-08-18
1040Brazil2025-07-28
1041France2025-08-08
1042United Kingdom2025-08-01
1043Russia2025-07-31
1044India2025-07-30
1045Japan2025-08-12
1046United Kingdom2025-08-03
1047Italy2025-08-16
1048Italy2025-08-11
1049Argentina2025-08-20

On-Demand Data

NameIdCountryDate
Aruna I Kusko1000Argentina2025-07-31
Ricardo I Caldarera1001Argentina2025-08-14
Julie D Amigon1002Brazil2025-08-18
Antonio C Flosi1003Canada2025-08-07
Greenwood A Doe1004France2025-08-02
Isabel C Iturbide1005Australia2025-08-22
Juan T Shinko1006Russia2025-08-14
Aditya M Schemmer1007Germany2025-08-23
Clifford G Iturbide1008France2025-08-01
Aditya S Inouye1009Spain2025-08-12
Darci Z Darakjy1010Japan2025-08-10
Clifford W Foller1011Brazil2025-08-04
Octavia X Inouye1012India2025-08-21
Julie V Venere1013Italy2025-08-21
Maisha F Ostrosky1014Brazil2025-08-22
Juan Z Ostrosky1015Australia2025-08-02
Darci U Bowley1016France2025-08-07
Leon J Oldroyd1017India2025-08-02
Aruna N Malet1018Japan2025-08-20
Aika B Waycott1019Germany2025-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar J FigeroaFranceIoni Bowcher NEGOTIATION
Izzy B StensethUnited KingdomStephen Shaw PROPOSAL
Mujtaba H FerenczIndiaAnna Fali QUALIFIED
Munro F RimGermanyElwin Sharvill NEGOTIATION
Jeanfrancois Y PaprockiSpainOnyama Limba UNQUALIFIED
Salvatore H MarrierIndiaIoni Bowcher QUALIFIED
Darci N KolmetzCanadaAnna Fali NEGOTIATION
Jennifer H PoquetteGermanyAmy Elsner UNQUALIFIED
Isabel K MorascaBrazilAmy Elsner NEGOTIATION
Johnson E ChuiAustraliaIvan Magalhaes UNQUALIFIED
Clifford O ChuiUnited KingdomOnyama Limba QUALIFIED
Misaki G GlickIndiaAmy Elsner NEW
Adams U DilliardRussiaXuxue Feng QUALIFIED
Greenwood Z SaylorsUnited KingdomOnyama Limba RENEWAL
Silvio H InouyeAustraliaElwin Sharvill RENEWAL
Clifford J SlusarskiItalyOnyama Limba QUALIFIED
Faith A DarakjyRussiaOnyama Limba RENEWAL
Leon J FerenczCanadaElwin Sharvill PROPOSAL
Claire P MaletAustraliaXuxue Feng QUALIFIED
Ashley K SchemmerCanadaAmy Elsner UNQUALIFIED
Aika N GlickRussiaAmy Elsner PROPOSAL
Faith W FigeroaFranceAnna Fali NEW
Adams B RoysterAustraliaOnyama Limba UNQUALIFIED
Jennifer X SergiCanadaIvan Magalhaes UNQUALIFIED
Maisha P DoeCanadaBernardo Dominic UNQUALIFIED
Ashley T OldroydItalyStephen Shaw PROPOSAL
Sinclair V PaprockiUnited KingdomIoni Bowcher NEW
Salvatore A SergiArgentinaAmy Elsner QUALIFIED
Isabel P GillianAustraliaStephen Shaw PROPOSAL
Clifford T PerinBrazilAmy Elsner QUALIFIED
Mujtaba X NickaRussiaAnna Fali UNQUALIFIED
Ricardo D DarakjyBrazilAsiya Javayant NEGOTIATION
Deepesh Y FollerIndiaStephen Shaw RENEWAL
Francesco G PerinRussiaBernardo Dominic UNQUALIFIED
Leja X WaycottItalyElwin Sharvill NEW
Julie B GarufiArgentinaIvan Magalhaes RENEWAL
Adams Y WhobreyIndiaIoni Bowcher NEW
Misaki M SaylorsArgentinaBernardo Dominic UNQUALIFIED
Tony H MaletCanadaXuxue Feng UNQUALIFIED
Emily I PerinGermanyAsiya Javayant NEGOTIATION

<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" frozenColumnsAlignment="left">
            <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>