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
Cody N DilliardUnited KingdomIoni Bowcher QUALIFIED
Costa U FerenczGermanyIvan Magalhaes NEGOTIATION
Ricardo L GarufiArgentinaAmy Elsner UNQUALIFIED
Maria V PaprockiBrazilOnyama Limba NEGOTIATION
Munro R ChuiItalyAnna Fali RENEWAL
Aditya A FollerGermanyIvan Magalhaes QUALIFIED
Aruna E KuskoCanadaAsiya Javayant UNQUALIFIED
Silvio Y MaletFranceIvan Magalhaes UNQUALIFIED
Tony U PaprockiBrazilElwin Sharvill RENEWAL
Murillo F ShinkoCanadaAsiya Javayant RENEWAL
David V ShinkoAustraliaIvan Magalhaes RENEWAL
Murillo F BowleyAustraliaAnna Fali PROPOSAL
Aditya R NickaCanadaElwin Sharvill UNQUALIFIED
James W SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow Z DilliardJapanXuxue Feng PROPOSAL
Silvio C AmigonItalyAmy Elsner NEW
Kaitlin A PerinCanadaAmy Elsner PROPOSAL
Johnson G PoquetteFranceAnna Fali QUALIFIED
Aditya K BologniaIndiaAsiya Javayant NEGOTIATION
Claire V DoeRussiaStephen Shaw UNQUALIFIED
Maisha S TollnerArgentinaXuxue Feng PROPOSAL
Aditya B WaycottItalyOnyama Limba NEW
Jefferson O CampainUnited KingdomIoni Bowcher NEGOTIATION
Munro L VenereJapanAmy Elsner RENEWAL
Salvatore O FlosiItalyAsiya Javayant NEGOTIATION
Jeanfrancois V WaycottSpainIvan Magalhaes PROPOSAL
Kaitlin W BowleyFranceStephen Shaw NEGOTIATION
Rodrigues N StockhamItalyOnyama Limba UNQUALIFIED
James E ShinkoSpainBernardo Dominic QUALIFIED
Murillo F ShinkoAustraliaAnna Fali UNQUALIFIED
Alejandro E StensethGermanyIvan Magalhaes UNQUALIFIED
Alejandro A MorascaAustraliaIvan Magalhaes PROPOSAL
Julie G FigeroaUnited KingdomAmy Elsner QUALIFIED
Leon P DilliardGermanyAnna Fali QUALIFIED
Ivar K GarufiGermanyBernardo Dominic QUALIFIED
Nicolas G IturbideItalyBernardo Dominic NEGOTIATION
Isabel F WhobreyCanadaBernardo Dominic UNQUALIFIED
Stacey V MarrierGermanyElwin Sharvill UNQUALIFIED
James U TollnerItalyAsiya Javayant NEW
Kaitlin E AlbaresUnited KingdomStephen Shaw NEGOTIATION
Clifford E RulapaughFranceBernardo Dominic UNQUALIFIED
Adams J AlbaresFranceOnyama Limba UNQUALIFIED
Mayumi O InouyeRussiaAmy Elsner NEW
Kadeem Q FlosiBrazilIoni Bowcher PROPOSAL
Johnson L CampainCanadaAsiya Javayant NEGOTIATION
Arvin F MacleadItalyXuxue Feng QUALIFIED
Arvin N GlickFranceOnyama Limba PROPOSAL
Aditya S PaprockiJapanAsiya Javayant PROPOSAL
Costa V BriddickFranceIvan Magalhaes UNQUALIFIED
Izzy G RutaFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio Q TollnerArgentinaStephen Shaw QUALIFIED
Aditya Z PaprockiRussiaXuxue Feng UNQUALIFIED
Chavez G DilliardItalyElwin Sharvill RENEWAL
Antonio U AlbaresJapanOnyama Limba RENEWAL
Misaki T OldroydJapanElwin Sharvill UNQUALIFIED
Arvin J MacleadGermanyAnna Fali UNQUALIFIED
Aika B RulapaughFranceXuxue Feng NEGOTIATION
Kaitlin N WieserArgentinaXuxue Feng NEGOTIATION
Mujtaba J PaprockiRussiaOnyama Limba NEW
Deepesh J PoquetteUnited KingdomOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David M InouyeUnited Kingdom2026-10-19Buckley Miller Wright NEGOTIATION32Onyama Limba
1001Misaki S BologniaIndia2026-10-07Printing Dimensions QUALIFIED81Anna Fali
1002Wickens V MarrierAustralia2026-10-18Morlong Associates QUALIFIED77Asiya Javayant
1003Mujtaba G StockhamBrazil2026-09-27Rangoni Of Florence RENEWAL80Onyama Limba
1004Emily C RulapaughIndia2026-09-28Benton, John B Jr RENEWAL95Bernardo Dominic
1005Arvin C WaycottCanada2026-10-04King, Christopher A Esq RENEWAL30Elwin Sharvill
1006Aika U WaycottCanada2026-10-18Morlong Associates UNQUALIFIED41Onyama Limba
1007James P NickaUnited Kingdom2026-10-16Feiner Bros RENEWAL44Amy Elsner
1008Silvio V FollerSpain2026-10-12Rousseaux, Michael Esq UNQUALIFIED58Ioni Bowcher
1009Jennifer Q WieserRussia2026-10-15Feltz Printing Service UNQUALIFIED3Anna Fali
1010David D StensethSpain2026-10-06Dorl, James J Esq PROPOSAL69Anna Fali
1011Sinclair X BowleyIndia2026-10-07Rousseaux, Michael Esq NEW0Elwin Sharvill
1012Aika E RoysterArgentina2026-10-20Chapman, Ross E Esq NEGOTIATION12Onyama Limba
1013Adams K AmigonGermany2026-10-09Chanay, Jeffrey A Esq NEW79Ioni Bowcher
1014Cody J KuskoAustralia2026-10-01Morlong Associates PROPOSAL66Onyama Limba
1015Kaitlin C ShinkoSpain2026-10-07Chanay, Jeffrey A Esq RENEWAL20Xuxue Feng
1016Ricardo H DilliardSpain2026-10-12Printing Dimensions QUALIFIED39Xuxue Feng
1017Jefferson W GillianUnited Kingdom2026-10-16Dorl, James J Esq PROPOSAL59Amy Elsner
1018Izzy B CampainUnited Kingdom2026-09-29Dorl, James J Esq NEGOTIATION39Ivan Magalhaes
1019Juan E NestleGermany2026-10-09Morlong Associates QUALIFIED95Ivan Magalhaes
1020Rodrigues A BowleyIndia2026-10-16Truhlar And Truhlar Attys NEGOTIATION68Onyama Limba
1021Misaki O SchemmerItaly2026-10-02Benton, John B Jr PROPOSAL64Ivan Magalhaes
1022Ivar O FigeroaFrance2026-10-20Chapman, Ross E Esq PROPOSAL74Asiya Javayant
1023Mujtaba S PoquetteAustralia2026-09-29Feltz Printing Service UNQUALIFIED44Bernardo Dominic
1024Isabel Q RimBrazil2026-10-12Rangoni Of Florence NEGOTIATION87Bernardo Dominic
1025Costa R RimFrance2026-10-07Rousseaux, Michael Esq NEW70Xuxue Feng
1026Aditya R ShinkoItaly2026-10-13Printing Dimensions RENEWAL4Onyama Limba
1027Octavia H FlosiUnited Kingdom2026-10-16Rangoni Of Florence RENEWAL35Amy Elsner
1028Francesco C RulapaughAustralia2026-09-24Buckley Miller Wright QUALIFIED23Xuxue Feng
1029Smith R StensethSpain2026-10-05Chemel, James L Cpa QUALIFIED54Xuxue Feng
1030Cody K SaylorsIndia2026-10-05Rousseaux, Michael Esq RENEWAL40Amy Elsner
1031Clifford Z InouyeUnited Kingdom2026-09-25Printing Dimensions RENEWAL18Stephen Shaw
1032James A ChuiArgentina2026-10-14Chapman, Ross E Esq QUALIFIED65Amy Elsner
1033Julie P MaletAustralia2026-09-27Truhlar And Truhlar Attys PROPOSAL42Onyama Limba
1034Clifford Z WaycottUnited Kingdom2026-10-19Printing Dimensions NEW5Anna Fali
1035Maisha T ChuiBrazil2026-10-20Buckley Miller Wright UNQUALIFIED38Xuxue Feng
1036Nicolas P BowleyRussia2026-10-12Printing Dimensions NEGOTIATION32Anna Fali
1037Octavia G TollnerSpain2026-10-10Truhlar And Truhlar Attys RENEWAL59Ivan Magalhaes
1038Izzy L BowleyCanada2026-10-10Feltz Printing Service NEW20Stephen Shaw
1039Chavez K DilliardCanada2026-09-28Buckley Miller Wright NEW23Amy Elsner
1040Aditya G DilliardFrance2026-09-25Buckley Miller Wright PROPOSAL25Ivan Magalhaes
1041Costa O WieserItaly2026-10-14Buckley Miller Wright UNQUALIFIED31Anna Fali
1042Isabel Y GlickIndia2026-10-07Benton, John B Jr QUALIFIED60Xuxue Feng
1043Jones Y SergiRussia2026-09-26Chemel, James L Cpa RENEWAL18Onyama Limba
1044Aruna V RoysterGermany2026-09-27Dorl, James J Esq NEGOTIATION54Elwin Sharvill
1045Johnson W IturbideIndia2026-09-24Feltz Printing Service RENEWAL79Asiya Javayant
1046Clifford U NestleIndia2026-10-18Chemel, James L Cpa RENEWAL47Bernardo Dominic
1047Silvio P NestleArgentina2026-10-20Rousseaux, Michael Esq RENEWAL28Onyama Limba
1048Smith G MorascaArgentina2026-10-20Printing Dimensions PROPOSAL38Ivan Magalhaes
1049Darci L ShinkoGermany2026-10-17Printing Dimensions UNQUALIFIED97Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Clifford P ShinkoItalyStephen Shaw UNQUALIFIED
Munro R VocelkaRussiaAsiya Javayant QUALIFIED
Tony B SlusarskiRussiaAnna Fali RENEWAL
Morrow X WaycottArgentinaAsiya Javayant NEGOTIATION
Deepesh B FigeroaIndiaAsiya Javayant UNQUALIFIED
Faith A RimSpainStephen Shaw RENEWAL
Faith M CampainItalyElwin Sharvill PROPOSAL
Jones N PerinRussiaAnna Fali RENEWAL
Claire J MaletGermanyIvan Magalhaes UNQUALIFIED
Faith Q MorascaIndiaStephen Shaw RENEWAL
Mayumi V ShinkoCanadaAnna Fali NEW
Maisha K VocelkaFranceXuxue Feng QUALIFIED
Sinclair I PoquetteAustraliaAsiya Javayant PROPOSAL
David C MarrierUnited KingdomAmy Elsner PROPOSAL
Murillo D KolmetzSpainIoni Bowcher RENEWAL
Mujtaba E AmigonAustraliaAmy Elsner NEW
Mayumi Q CampainCanadaAmy Elsner NEW
Jennifer R MorascaBrazilXuxue Feng NEGOTIATION
Antonio B WaycottGermanyAmy Elsner UNQUALIFIED
Leon G BologniaItalyBernardo Dominic PROPOSAL
Leon Y MarrierJapanIvan Magalhaes RENEWAL
Adams A IturbideUnited KingdomAmy Elsner NEW
Faith Q NestleCanadaStephen Shaw NEGOTIATION
Aika O MarrierArgentinaAsiya Javayant RENEWAL
Faith J SlusarskiArgentinaIvan Magalhaes QUALIFIED
Johnson G TollnerBrazilAmy Elsner NEGOTIATION
Arvin X PoquetteCanadaAnna Fali PROPOSAL
Maria Z RoysterSpainOnyama Limba UNQUALIFIED
David H InouyeAustraliaOnyama Limba NEW
Kaitlin N RulapaughIndiaOnyama Limba NEW
Maisha W MorascaItalyIvan Magalhaes UNQUALIFIED
Greenwood F WhobreyUnited KingdomAmy Elsner RENEWAL
Murillo X ChuiIndiaStephen Shaw NEW
Kadeem Q MorascaBrazilAsiya Javayant NEGOTIATION
Johnson B BologniaBrazilStephen Shaw UNQUALIFIED
Faith J WieserFranceIvan Magalhaes QUALIFIED
Jefferson J DarakjyUnited KingdomAsiya Javayant QUALIFIED
Leja N FigeroaIndiaXuxue Feng UNQUALIFIED
Mujtaba Q ChuiCanadaXuxue Feng NEGOTIATION
Leon D DilliardRussiaAnna Fali RENEWAL
Sinclair Q ShinkoArgentinaAmy Elsner NEW
Izzy C MaletAustraliaIoni Bowcher PROPOSAL
Leja P DarakjyAustraliaElwin Sharvill UNQUALIFIED
Jones O MaletItalyXuxue Feng RENEWAL
Octavia C BowleyRussiaIvan Magalhaes NEW
Murillo L WieserSpainAnna Fali PROPOSAL
Aruna S FlosiGermanyBernardo Dominic NEGOTIATION
Salvatore D FigeroaArgentinaAnna Fali PROPOSAL
Izzy S FollerSpainIvan Magalhaes NEW
Julie D OstroskyBrazilXuxue Feng UNQUALIFIED
Frozen Columns
Name
James D Maclead
Salvatore D Darakjy
Jones L Garufi
Johnson P Royster
Maria R Caldarera
Sinclair B Vocelka
Francesco K Briddick
Mujtaba P Campain
Johnson G Darakjy
Leja R Chui
Leja G Flosi
Wickens W Butt
Clifford H Inouye
Alejandro Y Paprocki
Jennifer Z Wieser
Leja U Oldroyd
Francesco Z Venere
Stacey B Marrier
Darci V Figeroa
Juan V Briddick
Jefferson S Kolmetz
Jeanfrancois A Morasca
Faith W Inouye
Kadeem M Bolognia
Aika W Slusarski
Adams C Venere
Ricardo D Shinko
Cody C Malet
Leon B Kolmetz
Salvatore R Ostrosky
Deepesh C Saylors
Stacey B Gaucho
Stacey G Oldroyd
Mayumi A Sergi
Aika P Inouye
Morrow J Gillian
Sinclair N Stockham
Darci M Schemmer
Ricardo H Rim
Francesco O Nicka
Misaki W Whobrey
Nicolas W Stockham
Greenwood M Bowley
Jeanfrancois U Doe
Rodrigues L Vocelka
Antonio T Ferencz
Jefferson V Iturbide
Greenwood R Ferencz
Ivar Y Kusko
Sinclair Q Tollner
IdCountryDate
1000Canada2026-10-17
1001Japan2026-10-05
1002United Kingdom2026-10-10
1003United Kingdom2026-10-12
1004Spain2026-10-22
1005Australia2026-10-06
1006Australia2026-10-15
1007Russia2026-10-07
1008Brazil2026-10-10
1009Brazil2026-10-13
1010Argentina2026-10-04
1011Germany2026-10-01
1012Canada2026-10-21
1013France2026-10-20
1014Germany2026-09-27
1015Canada2026-10-19
1016Australia2026-10-12
1017Spain2026-10-05
1018Italy2026-09-26
1019United Kingdom2026-10-06
1020Brazil2026-09-28
1021Russia2026-09-26
1022France2026-09-28
1023Germany2026-09-23
1024Brazil2026-10-16
1025Germany2026-09-24
1026India2026-10-22
1027Japan2026-10-02
1028Russia2026-09-23
1029United Kingdom2026-10-07
1030France2026-09-23
1031United Kingdom2026-09-29
1032France2026-10-14
1033Brazil2026-10-17
1034Australia2026-10-15
1035Germany2026-09-28
1036Spain2026-10-21
1037Russia2026-10-20
1038India2026-10-22
1039Germany2026-10-14
1040India2026-10-02
1041Russia2026-09-29
1042Italy2026-10-22
1043Brazil2026-10-06
1044Japan2026-10-04
1045Germany2026-10-06
1046United Kingdom2026-10-02
1047Argentina2026-10-01
1048United Kingdom2026-10-12
1049United Kingdom2026-10-08

On-Demand Data

NameIdCountryDate
Morrow H Glick1000Russia2026-09-28
Tony I Kusko1001Australia2026-09-30
Costa Z Ferencz1002Spain2026-10-08
Chavez P Poquette1003Brazil2026-10-12
Clifford B Whobrey1004India2026-10-22
Nicolas X Perin1005Argentina2026-09-25
Ivar H Maclead1006Germany2026-10-18
Isabel J Kusko1007Spain2026-10-20
Stacey B Poquette1008Australia2026-10-15
Ricardo O Whobrey1009India2026-09-29
Ricardo C Nicka1010Russia2026-10-21
Murillo R Waycott1011United Kingdom2026-10-05
Aika X Morasca1012Russia2026-10-22
Juan R Flosi1013Japan2026-10-08
Maria W Rim1014Argentina2026-10-16
Ivar Z Doe1015Canada2026-10-17
Misaki I Inouye1016Italy2026-10-15
Maisha W Tollner1017Argentina2026-09-29
Wickens K Venere1018Brazil2026-09-30
Smith P Caldarera1019France2026-10-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia J WhobreyIndiaAnna Fali PROPOSAL
Mayumi N OldroydGermanyXuxue Feng PROPOSAL
Wickens W ButtIndiaIoni Bowcher PROPOSAL
Francesco P AmigonCanadaIvan Magalhaes PROPOSAL
Jefferson J VocelkaItalyAsiya Javayant NEW
Morrow U FigeroaRussiaAmy Elsner RENEWAL
Ivar G VocelkaFranceAnna Fali NEGOTIATION
Claire N PerinBrazilXuxue Feng QUALIFIED
Nicolas R TollnerAustraliaIvan Magalhaes NEGOTIATION
Wickens E DoeArgentinaXuxue Feng QUALIFIED
Leon F WieserIndiaIoni Bowcher UNQUALIFIED
Arvin K OldroydFranceIoni Bowcher PROPOSAL
Greenwood Z MarrierFranceBernardo Dominic PROPOSAL
Aika A MacleadCanadaBernardo Dominic RENEWAL
Alejandro I StensethAustraliaAsiya Javayant NEW
Juan X AmigonCanadaAmy Elsner PROPOSAL
Morrow M SchemmerIndiaIvan Magalhaes QUALIFIED
Morrow B PerinUnited KingdomIvan Magalhaes PROPOSAL
Izzy H KuskoItalyOnyama Limba RENEWAL
Maria C IturbideFranceAmy Elsner NEW
Johnson D FerenczCanadaStephen Shaw UNQUALIFIED
Rodrigues Z MacleadBrazilOnyama Limba RENEWAL
Deepesh A GlickRussiaBernardo Dominic QUALIFIED
Aditya J InouyeAustraliaAnna Fali RENEWAL
Jennifer J RoysterItalyElwin Sharvill NEGOTIATION
Claire F AlbaresUnited KingdomXuxue Feng NEW
Sinclair V IturbideCanadaElwin Sharvill NEW
Isabel H PoquetteJapanOnyama Limba RENEWAL
James Y NestleAustraliaAmy Elsner RENEWAL
Costa S ButtJapanBernardo Dominic PROPOSAL
Leon Y VocelkaBrazilAsiya Javayant UNQUALIFIED
Jones H CaudySpainIvan Magalhaes NEGOTIATION
Alejandro Z MarrierJapanStephen Shaw NEGOTIATION
Silvio T InouyeCanadaElwin Sharvill QUALIFIED
Jeanfrancois B GlickUnited KingdomAnna Fali UNQUALIFIED
David L InouyeCanadaIoni Bowcher QUALIFIED
Mujtaba Q WieserUnited KingdomAsiya Javayant NEW
Deepesh Q InouyeArgentinaElwin Sharvill RENEWAL
David M FollerRussiaXuxue Feng NEGOTIATION
Rodrigues N SlusarskiGermanyBernardo Dominic 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>