November Deals: Limited Coupons Available! 🎁 Claim Your Coupon

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
Maria S NestleCanadaAmy Elsner RENEWAL
Isabel Y GillianGermanyElwin Sharvill UNQUALIFIED
Greenwood G SlusarskiUnited KingdomIoni Bowcher NEW
Arvin C FerenczGermanyIoni Bowcher QUALIFIED
Emily W MaletJapanBernardo Dominic UNQUALIFIED
Ivar G SchemmerItalyAnna Fali NEGOTIATION
Deepesh X MorascaIndiaOnyama Limba RENEWAL
Misaki Z MorascaCanadaAmy Elsner RENEWAL
Jennifer V FerenczUnited KingdomElwin Sharvill QUALIFIED
Silvio F BologniaJapanElwin Sharvill NEW
Kadeem P ChuiBrazilIvan Magalhaes NEW
Izzy W DoeItalyBernardo Dominic NEW
Aika G DilliardSpainIvan Magalhaes NEW
Misaki D GauchoCanadaElwin Sharvill NEGOTIATION
Adams Y ChuiFranceStephen Shaw PROPOSAL
Jennifer P OstroskyArgentinaIoni Bowcher QUALIFIED
Rodrigues U ButtAustraliaXuxue Feng QUALIFIED
Alejandro A RoysterIndiaStephen Shaw NEGOTIATION
Claire S ShinkoUnited KingdomAnna Fali UNQUALIFIED
Leja V FerenczRussiaIvan Magalhaes RENEWAL
Claire H MaletCanadaAmy Elsner NEGOTIATION
Misaki G StensethSpainIvan Magalhaes QUALIFIED
Jennifer R GauchoArgentinaIoni Bowcher QUALIFIED
Greenwood J GauchoAustraliaStephen Shaw RENEWAL
Munro P ShinkoGermanyOnyama Limba NEGOTIATION
Maria H NickaArgentinaBernardo Dominic UNQUALIFIED
Octavia W SlusarskiArgentinaAnna Fali PROPOSAL
Nicolas Q IturbideSpainAsiya Javayant QUALIFIED
Emily X FigeroaGermanyXuxue Feng UNQUALIFIED
Kadeem V KolmetzIndiaIvan Magalhaes QUALIFIED
David G NickaJapanAmy Elsner RENEWAL
Antonio S AmigonArgentinaStephen Shaw UNQUALIFIED
Maria H RimGermanyXuxue Feng PROPOSAL
Alejandro F AmigonRussiaIoni Bowcher UNQUALIFIED
Adams F CaudyCanadaIvan Magalhaes UNQUALIFIED
Jennifer F RutaJapanAmy Elsner RENEWAL
David A SaylorsArgentinaElwin Sharvill RENEWAL
Chavez B RulapaughIndiaXuxue Feng NEGOTIATION
Stacey L SlusarskiSpainElwin Sharvill UNQUALIFIED
Maisha C CampainArgentinaAnna Fali PROPOSAL
Aruna X VocelkaBrazilElwin Sharvill NEGOTIATION
Kadeem M GauchoJapanIvan Magalhaes NEW
Aruna O PoquetteSpainAmy Elsner UNQUALIFIED
Octavia L GauchoIndiaElwin Sharvill PROPOSAL
Silvio I NickaSpainStephen Shaw UNQUALIFIED
Juan H WieserItalyOnyama Limba RENEWAL
Cody C GillianGermanyIvan Magalhaes NEW
Claire F PerinSpainXuxue Feng RENEWAL
Emily V FerenczRussiaAnna Fali NEW
Murillo Z CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin R PaprockiIndiaBernardo Dominic NEW
Sinclair W OldroydRussiaOnyama Limba NEW
Kaitlin T AmigonBrazilStephen Shaw PROPOSAL
Julie F MacleadBrazilAmy Elsner QUALIFIED
Adams U SchemmerJapanXuxue Feng UNQUALIFIED
Juan H DilliardSpainAsiya Javayant RENEWAL
Julie G RimCanadaIoni Bowcher NEGOTIATION
Costa N WaycottJapanIvan Magalhaes PROPOSAL
Deepesh P GauchoIndiaIvan Magalhaes QUALIFIED
Aruna M ChuiIndiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony S GillianRussia2026-08-28Rousseaux, Michael Esq PROPOSAL11Anna Fali
1001Ricardo M BologniaUnited Kingdom2026-09-08Chemel, James L Cpa PROPOSAL23Elwin Sharvill
1002Murillo P SlusarskiAustralia2026-09-14Truhlar And Truhlar Attys UNQUALIFIED2Ioni Bowcher
1003Isabel K DarakjyIndia2026-09-09Truhlar And Truhlar Attys PROPOSAL69Xuxue Feng
1004Maria S MaletBrazil2026-08-24Feltz Printing Service UNQUALIFIED0Elwin Sharvill
1005Kadeem H GauchoIndia2026-09-01Chanay, Jeffrey A Esq PROPOSAL94Elwin Sharvill
1006Antonio I WaycottUnited Kingdom2026-09-03Benton, John B Jr NEW36Ivan Magalhaes
1007Tony C MacleadIndia2026-09-09Morlong Associates NEW55Anna Fali
1008Antonio P ButtRussia2026-09-10Buckley Miller Wright NEGOTIATION37Elwin Sharvill
1009Emily Z SergiUnited Kingdom2026-08-29Dorl, James J Esq PROPOSAL44Amy Elsner
1010Chavez K MorascaCanada2026-09-12King, Christopher A Esq PROPOSAL10Stephen Shaw
1011Ivar A WieserAustralia2026-08-24Morlong Associates RENEWAL47Stephen Shaw
1012Claire L ChuiBrazil2026-09-12Printing Dimensions UNQUALIFIED47Anna Fali
1013Ivar U GlickJapan2026-09-04Chanay, Jeffrey A Esq PROPOSAL99Ioni Bowcher
1014Aruna W KuskoAustralia2026-08-29Rangoni Of Florence NEGOTIATION27Onyama Limba
1015Silvio R CaudyUnited Kingdom2026-09-19Buckley Miller Wright NEGOTIATION81Onyama Limba
1016Deepesh M MacleadItaly2026-08-29Dorl, James J Esq NEW65Elwin Sharvill
1017Kadeem J MarrierBrazil2026-08-23Morlong Associates PROPOSAL4Amy Elsner
1018David E RoysterBrazil2026-09-18Chemel, James L Cpa RENEWAL99Bernardo Dominic
1019Costa V InouyeArgentina2026-09-19Chemel, James L Cpa UNQUALIFIED98Amy Elsner
1020Nicolas B FollerGermany2026-08-22Chemel, James L Cpa UNQUALIFIED79Anna Fali
1021Francesco E ChuiUnited Kingdom2026-09-04Feltz Printing Service RENEWAL97Anna Fali
1022Francesco N WieserCanada2026-09-19Chemel, James L Cpa PROPOSAL28Amy Elsner
1023Smith F GarufiItaly2026-08-23Truhlar And Truhlar Attys QUALIFIED79Ivan Magalhaes
1024James F CaldareraCanada2026-08-30King, Christopher A Esq NEW66Anna Fali
1025Ivar V ShinkoAustralia2026-09-18Chemel, James L Cpa PROPOSAL65Onyama Limba
1026Maria A WhobreyArgentina2026-09-16Morlong Associates RENEWAL82Bernardo Dominic
1027Nicolas Y MorascaRussia2026-09-06Rangoni Of Florence RENEWAL83Bernardo Dominic
1028Maisha L RoysterArgentina2026-09-07Feltz Printing Service NEGOTIATION53Onyama Limba
1029Munro Q WhobreyJapan2026-09-14Feiner Bros UNQUALIFIED39Onyama Limba
1030Jeanfrancois M PerinUnited Kingdom2026-08-29Rousseaux, Michael Esq QUALIFIED91Onyama Limba
1031Jeanfrancois J WieserArgentina2026-09-02Printing Dimensions NEW90Onyama Limba
1032James C CampainArgentina2026-08-27Rangoni Of Florence QUALIFIED4Ivan Magalhaes
1033Wickens V AlbaresArgentina2026-09-02King, Christopher A Esq QUALIFIED46Ivan Magalhaes
1034Greenwood U RutaItaly2026-09-11Truhlar And Truhlar Attys QUALIFIED41Onyama Limba
1035Octavia X TollnerGermany2026-09-06Printing Dimensions PROPOSAL64Elwin Sharvill
1036Julie R SergiArgentina2026-09-09Chapman, Ross E Esq QUALIFIED2Elwin Sharvill
1037Jefferson Y InouyeGermany2026-09-17Rangoni Of Florence QUALIFIED33Asiya Javayant
1038Clifford D PaprockiCanada2026-08-27Chapman, Ross E Esq UNQUALIFIED70Ivan Magalhaes
1039Salvatore Z VocelkaArgentina2026-09-18Truhlar And Truhlar Attys RENEWAL79Elwin Sharvill
1040Faith U NickaIndia2026-09-04Chapman, Ross E Esq UNQUALIFIED53Elwin Sharvill
1041Chavez U WaycottItaly2026-09-11Feltz Printing Service QUALIFIED52Anna Fali
1042Maisha K SergiBrazil2026-08-31Truhlar And Truhlar Attys NEW86Onyama Limba
1043Jefferson J RimGermany2026-08-29Feiner Bros RENEWAL88Bernardo Dominic
1044Costa U AmigonFrance2026-09-06Chanay, Jeffrey A Esq NEW19Onyama Limba
1045Murillo Q RimFrance2026-08-24Rousseaux, Michael Esq NEGOTIATION62Bernardo Dominic
1046Stacey I AmigonJapan2026-09-19Dorl, James J Esq NEW20Elwin Sharvill
1047Claire F ShinkoAustralia2026-08-25Chanay, Jeffrey A Esq PROPOSAL85Ioni Bowcher
1048Maisha U BriddickFrance2026-09-11Rangoni Of Florence NEGOTIATION55Elwin Sharvill
1049Leja T WieserIndia2026-09-15Chanay, Jeffrey A Esq NEW82Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba A FlosiIndiaAnna Fali QUALIFIED
Murillo Q WhobreyCanadaIvan Magalhaes QUALIFIED
Jennifer P IturbideBrazilIvan Magalhaes QUALIFIED
Tony Q MaletCanadaXuxue Feng UNQUALIFIED
Jeanfrancois W MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Darci B FlosiFranceElwin Sharvill NEGOTIATION
Octavia K NickaAustraliaIvan Magalhaes QUALIFIED
Murillo S GillianCanadaStephen Shaw UNQUALIFIED
Kadeem W PerinArgentinaStephen Shaw NEW
Emily J TollnerArgentinaElwin Sharvill UNQUALIFIED
Costa U KuskoIndiaElwin Sharvill NEGOTIATION
Adams A MacleadAustraliaAsiya Javayant QUALIFIED
Clifford Q BologniaItalyStephen Shaw NEW
Mayumi O SlusarskiBrazilAmy Elsner NEGOTIATION
Kaitlin J AmigonCanadaXuxue Feng QUALIFIED
Emily Z ChuiFranceElwin Sharvill RENEWAL
Ricardo K PerinGermanyIoni Bowcher QUALIFIED
Juan H DarakjyFranceAsiya Javayant NEGOTIATION
Smith P AlbaresBrazilAsiya Javayant UNQUALIFIED
Clifford K ChuiArgentinaXuxue Feng NEW
Darci Y KolmetzJapanAsiya Javayant QUALIFIED
Kadeem D InouyeBrazilStephen Shaw RENEWAL
Jeanfrancois Y NestleRussiaAsiya Javayant UNQUALIFIED
Munro M GillianUnited KingdomAnna Fali UNQUALIFIED
Aditya H MacleadGermanyIvan Magalhaes QUALIFIED
Jefferson M FlosiRussiaAsiya Javayant NEW
Jeanfrancois S FlosiUnited KingdomBernardo Dominic NEGOTIATION
Jennifer M BologniaIndiaAnna Fali RENEWAL
Deepesh O DarakjyGermanyAnna Fali QUALIFIED
Costa B ChuiAustraliaAmy Elsner PROPOSAL
Stacey R VenereItalyAsiya Javayant NEGOTIATION
Adams W FigeroaFranceAmy Elsner PROPOSAL
Claire I GlickItalyIoni Bowcher UNQUALIFIED
Smith G AlbaresCanadaIvan Magalhaes NEW
Faith E NestleSpainBernardo Dominic QUALIFIED
Kadeem O AmigonJapanAmy Elsner RENEWAL
Jeanfrancois Q BowleyFranceAnna Fali RENEWAL
Stacey B RimItalyAnna Fali UNQUALIFIED
Costa E BriddickIndiaIvan Magalhaes NEW
Aika T SlusarskiCanadaIoni Bowcher NEW
Costa T IturbideJapanXuxue Feng QUALIFIED
Kadeem K ButtArgentinaIoni Bowcher PROPOSAL
Johnson A MorascaIndiaOnyama Limba PROPOSAL
Jennifer E DilliardBrazilElwin Sharvill PROPOSAL
Maria F MaletAustraliaIoni Bowcher RENEWAL
Deepesh K BowleyIndiaOnyama Limba RENEWAL
Wickens Z TollnerUnited KingdomOnyama Limba NEW
Clifford G RutaItalyIvan Magalhaes PROPOSAL
Kaitlin A IturbideIndiaXuxue Feng NEGOTIATION
Clifford T GlickItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Sinclair C Bolognia
Murillo R Malet
Kadeem X Ruta
Emily L Stenseth
Izzy N Schemmer
Johnson D Malet
Johnson W Rulapaugh
Julie N Tollner
Tony G Vocelka
Cody T Dilliard
Emily M Vocelka
Isabel D Nestle
Greenwood Z Paprocki
Costa V Shinko
Faith B Iturbide
Rodrigues H Tollner
Jefferson C Iturbide
Rodrigues T Foller
Arvin L Waycott
Sinclair S Gaucho
Cody X Waycott
Alejandro S Flosi
Misaki J Gillian
Maisha E Saylors
Octavia B Foller
Faith O Darakjy
Murillo A Campain
Ashley G Malet
Claire H Chui
Munro A Flosi
Isabel V Caldarera
Munro T Iturbide
Ashley D Shinko
Kaitlin A Inouye
Leon H Gaucho
Johnson C Flosi
Aika F Poquette
Kaitlin N Poquette
Kadeem W Royster
Mujtaba H Bowley
Tony Z Tollner
Kadeem G Sergi
Leon I Ostrosky
Johnson G Flosi
Leon D Saylors
Sinclair Y Whobrey
Johnson I Rulapaugh
Aruna V Stenseth
Juan E Bolognia
Julie V Nicka
IdCountryDate
1000Brazil2026-08-30
1001United Kingdom2026-09-03
1002Argentina2026-08-30
1003India2026-09-19
1004Brazil2026-09-08
1005India2026-09-04
1006Russia2026-09-03
1007United Kingdom2026-08-23
1008Japan2026-08-28
1009Brazil2026-09-05
1010Germany2026-09-08
1011Canada2026-09-19
1012Japan2026-09-14
1013Brazil2026-09-03
1014Australia2026-09-05
1015France2026-08-25
1016France2026-09-09
1017Canada2026-08-25
1018Germany2026-09-03
1019Argentina2026-08-22
1020Argentina2026-09-05
1021Argentina2026-09-07
1022Australia2026-08-21
1023Argentina2026-08-21
1024France2026-08-23
1025France2026-09-06
1026France2026-09-03
1027Russia2026-09-19
1028Spain2026-08-29
1029Germany2026-09-17
1030Russia2026-08-27
1031France2026-09-01
1032Spain2026-09-01
1033Australia2026-09-15
1034India2026-08-25
1035Japan2026-09-10
1036Italy2026-09-04
1037Brazil2026-08-30
1038Japan2026-09-06
1039Russia2026-09-10
1040India2026-08-26
1041Brazil2026-09-17
1042India2026-09-11
1043Japan2026-08-31
1044United Kingdom2026-09-01
1045Brazil2026-08-22
1046Australia2026-08-28
1047United Kingdom2026-09-17
1048Japan2026-09-13
1049India2026-08-24

On-Demand Data

NameIdCountryDate
Morrow A Stenseth1000Italy2026-09-08
Maria S Chui1001Brazil2026-09-12
Antonio M Vocelka1002Australia2026-09-01
Alejandro T Albares1003Argentina2026-09-03
Johnson U Amigon1004Germany2026-09-18
Wickens A Tollner1005Japan2026-09-11
Kaitlin Z Poquette1006Canada2026-09-02
Jones N Doe1007Germany2026-09-05
Ivar F Sergi1008United Kingdom2026-09-19
Julie O Ruta1009Japan2026-09-07
Deepesh R Amigon1010United Kingdom2026-09-13
Morrow G Campain1011Australia2026-08-21
Mujtaba U Darakjy1012India2026-09-02
Morrow W Malet1013Brazil2026-08-25
Johnson Q Malet1014Spain2026-08-30
Adams T Garufi1015Australia2026-08-25
Emily R Garufi1016Russia2026-09-03
Silvio G Ostrosky1017United Kingdom2026-09-05
Leon P Rulapaugh1018Brazil2026-08-23
Murillo W Wieser1019India2026-09-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio C BriddickAustraliaAsiya Javayant NEW
Octavia N OldroydArgentinaStephen Shaw NEGOTIATION
Jefferson R DoeJapanAnna Fali PROPOSAL
Smith S ChuiRussiaXuxue Feng PROPOSAL
Emily I IturbideAustraliaAnna Fali NEW
Nicolas Y PoquetteItalyAnna Fali PROPOSAL
James R MaletJapanBernardo Dominic NEW
Jones I SchemmerArgentinaOnyama Limba RENEWAL
Leon B AlbaresSpainIvan Magalhaes RENEWAL
Misaki L VenereBrazilAnna Fali NEGOTIATION
Mayumi I KolmetzGermanyIvan Magalhaes QUALIFIED
Francesco I ButtItalyBernardo Dominic UNQUALIFIED
Antonio T ButtArgentinaXuxue Feng UNQUALIFIED
Greenwood V OldroydAustraliaOnyama Limba PROPOSAL
Wickens G GlickAustraliaAmy Elsner RENEWAL
Johnson D KolmetzJapanAnna Fali UNQUALIFIED
Antonio P InouyeItalyOnyama Limba QUALIFIED
Maisha I SergiFranceBernardo Dominic RENEWAL
Izzy P FigeroaIndiaBernardo Dominic UNQUALIFIED
Jennifer D VenereAustraliaIoni Bowcher UNQUALIFIED
Kaitlin E WaycottCanadaAsiya Javayant UNQUALIFIED
Ashley L OstroskyGermanyAsiya Javayant RENEWAL
Munro Y VenereBrazilElwin Sharvill NEGOTIATION
Leon B InouyeBrazilAsiya Javayant NEW
Johnson G DoeUnited KingdomOnyama Limba RENEWAL
Chavez U NickaSpainXuxue Feng QUALIFIED
Adams B GauchoCanadaAsiya Javayant UNQUALIFIED
Johnson P MaletBrazilIoni Bowcher PROPOSAL
Kadeem X StensethGermanyElwin Sharvill RENEWAL
Tony U RutaGermanyBernardo Dominic RENEWAL
Julie M BowleyItalyAnna Fali NEGOTIATION
Kaitlin X BriddickUnited KingdomStephen Shaw NEW
Maisha L FigeroaUnited KingdomIoni Bowcher NEW
Octavia G TollnerJapanBernardo Dominic UNQUALIFIED
Aika N MarrierBrazilBernardo Dominic QUALIFIED
Morrow G AlbaresItalyIoni Bowcher QUALIFIED
Leon B BologniaSpainAmy Elsner NEGOTIATION
Octavia I RimJapanStephen Shaw QUALIFIED
Tony Q KuskoUnited KingdomXuxue Feng UNQUALIFIED
Jennifer X FigeroaArgentinaAnna Fali NEW

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