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
Izzy Z SlusarskiGermanyAsiya Javayant QUALIFIED
Mayumi S KolmetzItalyIoni Bowcher NEGOTIATION
Francesco J CaldareraRussiaAnna Fali NEW
Isabel A StensethRussiaStephen Shaw QUALIFIED
Ricardo C TollnerGermanyIvan Magalhaes NEGOTIATION
Jefferson S DilliardArgentinaXuxue Feng UNQUALIFIED
Johnson D CaldareraGermanyAmy Elsner NEW
Arvin O CaudyArgentinaAnna Fali RENEWAL
Ashley D WaycottItalyStephen Shaw QUALIFIED
Jennifer J NestleBrazilXuxue Feng RENEWAL
Kadeem T DarakjyCanadaIoni Bowcher UNQUALIFIED
Munro C StensethBrazilAnna Fali NEW
Misaki B PerinUnited KingdomAnna Fali RENEWAL
Deepesh Z SaylorsFranceBernardo Dominic RENEWAL
Jefferson V KolmetzAustraliaXuxue Feng NEGOTIATION
Murillo F PaprockiSpainXuxue Feng PROPOSAL
Maria S ButtUnited KingdomBernardo Dominic QUALIFIED
Rodrigues E WaycottFranceAsiya Javayant QUALIFIED
Izzy J ButtItalyAsiya Javayant NEW
Ricardo M CaldareraArgentinaAmy Elsner NEGOTIATION
Jennifer B OstroskyItalyElwin Sharvill NEW
Kaitlin E AmigonSpainElwin Sharvill QUALIFIED
Izzy F FigeroaIndiaXuxue Feng UNQUALIFIED
Juan O SergiIndiaAnna Fali PROPOSAL
Nicolas S InouyeSpainOnyama Limba PROPOSAL
Silvio V GillianUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois X StockhamAustraliaAsiya Javayant PROPOSAL
James R CaudyBrazilAnna Fali PROPOSAL
Costa C AlbaresFranceAsiya Javayant QUALIFIED
Julie H GillianRussiaAmy Elsner NEGOTIATION
Greenwood F ButtIndiaAsiya Javayant RENEWAL
Jennifer G GarufiJapanIvan Magalhaes RENEWAL
Aditya L MacleadFranceXuxue Feng UNQUALIFIED
Ashley M VocelkaArgentinaIvan Magalhaes RENEWAL
Leja Y GlickAustraliaOnyama Limba RENEWAL
Antonio V RimAustraliaBernardo Dominic NEW
Chavez L ChuiJapanAmy Elsner NEGOTIATION
Francesco L SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Misaki A FigeroaJapanStephen Shaw PROPOSAL
Leja K StockhamJapanElwin Sharvill QUALIFIED
Cody H GlickAustraliaIoni Bowcher UNQUALIFIED
Leja L PaprockiCanadaBernardo Dominic PROPOSAL
Arvin G InouyeRussiaStephen Shaw UNQUALIFIED
Julie X WieserIndiaBernardo Dominic RENEWAL
Jefferson D MorascaIndiaStephen Shaw RENEWAL
Antonio D DilliardAustraliaAsiya Javayant UNQUALIFIED
Nicolas N ChuiFranceAmy Elsner PROPOSAL
Salvatore A PaprockiUnited KingdomStephen Shaw RENEWAL
Salvatore U MaletArgentinaAsiya Javayant UNQUALIFIED
Aditya G MaletFranceXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley G AmigonAustraliaAmy Elsner PROPOSAL
Arvin T SchemmerItalyIoni Bowcher QUALIFIED
Alejandro W SchemmerSpainOnyama Limba NEW
Jennifer F MacleadGermanyAsiya Javayant RENEWAL
Jennifer C MarrierArgentinaIoni Bowcher QUALIFIED
Mujtaba A CaldareraAustraliaStephen Shaw RENEWAL
Morrow G MacleadArgentinaBernardo Dominic NEGOTIATION
Aditya U RoysterItalyStephen Shaw QUALIFIED
Jennifer O AmigonGermanyElwin Sharvill NEGOTIATION
Francesco H MacleadGermanyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood W DarakjyGermany2026-10-17Feiner Bros NEGOTIATION18Amy Elsner
1001Tony H GarufiSpain2026-10-08Benton, John B Jr NEGOTIATION34Asiya Javayant
1002Claire W InouyeArgentina2026-10-14Chemel, James L Cpa PROPOSAL41Asiya Javayant
1003Stacey I PoquetteJapan2026-09-28Rangoni Of Florence RENEWAL85Onyama Limba
1004Murillo Z WieserUnited Kingdom2026-10-14Rousseaux, Michael Esq NEGOTIATION94Amy Elsner
1005Alejandro Q SaylorsAustralia2026-09-29Benton, John B Jr QUALIFIED2Stephen Shaw
1006Chavez W AlbaresArgentina2026-10-18Morlong Associates RENEWAL78Stephen Shaw
1007Maria H BowleyCanada2026-09-28Chemel, James L Cpa NEGOTIATION41Ioni Bowcher
1008David T StensethBrazil2026-10-01Commercial Press QUALIFIED38Anna Fali
1009Sinclair G StensethSpain2026-10-05Buckley Miller Wright UNQUALIFIED57Ioni Bowcher
1010Jennifer T NickaArgentina2026-10-18Benton, John B Jr PROPOSAL56Stephen Shaw
1011Jennifer P BriddickSpain2026-10-07Commercial Press PROPOSAL72Stephen Shaw
1012Kadeem D ShinkoAustralia2026-10-20Printing Dimensions UNQUALIFIED9Anna Fali
1013Jones U BowleyUnited Kingdom2026-10-18Rangoni Of Florence UNQUALIFIED28Asiya Javayant
1014Maisha K StensethJapan2026-10-10Rangoni Of Florence NEGOTIATION68Ivan Magalhaes
1015Ashley K GlickCanada2026-10-01Chanay, Jeffrey A Esq UNQUALIFIED99Ivan Magalhaes
1016Nicolas P DilliardUnited Kingdom2026-10-03King, Christopher A Esq PROPOSAL48Onyama Limba
1017Johnson T FlosiCanada2026-10-19Benton, John B Jr RENEWAL16Ioni Bowcher
1018Jones E TollnerBrazil2026-10-16Chanay, Jeffrey A Esq NEW20Ivan Magalhaes
1019Mayumi R BowleyItaly2026-10-22Dorl, James J Esq NEW48Elwin Sharvill
1020Maria L MaletIndia2026-10-24Morlong Associates NEGOTIATION77Bernardo Dominic
1021Costa W DilliardUnited Kingdom2026-10-14Commercial Press QUALIFIED99Ivan Magalhaes
1022Wickens Y AlbaresSpain2026-09-30Feltz Printing Service PROPOSAL37Bernardo Dominic
1023Clifford T WieserUnited Kingdom2026-10-22King, Christopher A Esq RENEWAL32Stephen Shaw
1024Wickens K PoquetteItaly2026-10-06Truhlar And Truhlar Attys NEW7Ivan Magalhaes
1025Aruna T FigeroaCanada2026-10-05Rangoni Of Florence NEW68Ivan Magalhaes
1026Salvatore W BowleyFrance2026-10-18Commercial Press NEW27Amy Elsner
1027Clifford L MaletArgentina2026-09-27Truhlar And Truhlar Attys NEW7Anna Fali
1028Johnson C MaletUnited Kingdom2026-10-23Chemel, James L Cpa UNQUALIFIED31Elwin Sharvill
1029Octavia Z DilliardItaly2026-10-01King, Christopher A Esq NEW63Anna Fali
1030Jones E PoquetteCanada2026-10-17Chanay, Jeffrey A Esq NEGOTIATION77Ivan Magalhaes
1031Julie P DilliardJapan2026-10-26Truhlar And Truhlar Attys RENEWAL92Anna Fali
1032Jennifer A GarufiSpain2026-09-28Commercial Press RENEWAL26Amy Elsner
1033James H FlosiBrazil2026-10-12Printing Dimensions NEGOTIATION52Ivan Magalhaes
1034Morrow S ShinkoSpain2026-09-29Commercial Press UNQUALIFIED83Onyama Limba
1035Julie L GauchoFrance2026-09-27King, Christopher A Esq NEGOTIATION72Ivan Magalhaes
1036Aditya Q FerenczAustralia2026-09-30King, Christopher A Esq PROPOSAL45Amy Elsner
1037Octavia E BriddickBrazil2026-10-01Buckley Miller Wright RENEWAL20Amy Elsner
1038Wickens I TollnerJapan2026-10-04Feiner Bros PROPOSAL61Bernardo Dominic
1039Mayumi T TollnerUnited Kingdom2026-10-13Truhlar And Truhlar Attys RENEWAL68Ivan Magalhaes
1040Arvin A MaletBrazil2026-10-18Truhlar And Truhlar Attys NEW15Elwin Sharvill
1041Francesco V MarrierJapan2026-10-15Buckley Miller Wright PROPOSAL86Ivan Magalhaes
1042James L VocelkaRussia2026-10-21Commercial Press UNQUALIFIED41Bernardo Dominic
1043Johnson T GarufiAustralia2026-10-26Benton, John B Jr RENEWAL56Amy Elsner
1044Maisha O SaylorsAustralia2026-09-27Feiner Bros QUALIFIED60Anna Fali
1045Ashley X WieserItaly2026-09-27King, Christopher A Esq PROPOSAL5Bernardo Dominic
1046Rodrigues N VocelkaRussia2026-10-04Truhlar And Truhlar Attys RENEWAL68Xuxue Feng
1047Kaitlin J PoquetteFrance2026-10-13Chanay, Jeffrey A Esq RENEWAL46Ioni Bowcher
1048Chavez W GillianCanada2026-09-28Rousseaux, Michael Esq PROPOSAL63Bernardo Dominic
1049Wickens C MaletJapan2026-10-05Chanay, Jeffrey A Esq UNQUALIFIED60Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leja S ButtArgentinaXuxue Feng PROPOSAL
Salvatore C RulapaughJapanElwin Sharvill NEW
Leon C FerenczUnited KingdomBernardo Dominic QUALIFIED
Murillo T RimBrazilBernardo Dominic NEW
Leon F MacleadCanadaElwin Sharvill UNQUALIFIED
Mujtaba I GarufiAustraliaBernardo Dominic RENEWAL
Tony Q BowleyFranceBernardo Dominic UNQUALIFIED
Octavia S BriddickUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba K MacleadBrazilAmy Elsner NEGOTIATION
Nicolas B GauchoJapanAnna Fali RENEWAL
Munro Z ButtIndiaIoni Bowcher NEW
Isabel O NestleUnited KingdomOnyama Limba PROPOSAL
Emily V NickaBrazilAnna Fali RENEWAL
Misaki I IturbideJapanXuxue Feng NEGOTIATION
Maisha Z CaudyArgentinaIoni Bowcher NEW
David T GlickCanadaXuxue Feng NEW
Aditya D FlosiArgentinaAmy Elsner NEGOTIATION
Jones L SergiRussiaElwin Sharvill NEW
Murillo H BriddickFranceElwin Sharvill PROPOSAL
Aditya L PerinAustraliaIoni Bowcher QUALIFIED
Darci G MaletRussiaAmy Elsner QUALIFIED
Francesco U InouyeRussiaOnyama Limba QUALIFIED
Izzy P BowleyBrazilAmy Elsner NEGOTIATION
Julie B NickaItalyAsiya Javayant PROPOSAL
Cody X DarakjyArgentinaAnna Fali QUALIFIED
Arvin R SaylorsFranceOnyama Limba NEGOTIATION
Jeanfrancois R MacleadSpainIoni Bowcher NEGOTIATION
Costa J AmigonIndiaOnyama Limba NEGOTIATION
Alejandro K AlbaresGermanyElwin Sharvill QUALIFIED
Julie E BologniaFranceOnyama Limba QUALIFIED
Maisha O FigeroaRussiaElwin Sharvill QUALIFIED
Morrow D RulapaughItalyStephen Shaw QUALIFIED
Maria E RulapaughGermanyAsiya Javayant NEGOTIATION
Izzy R FollerGermanyXuxue Feng PROPOSAL
Izzy X SchemmerGermanyAmy Elsner UNQUALIFIED
Salvatore Q CaudySpainElwin Sharvill NEW
Nicolas R MaletGermanyXuxue Feng UNQUALIFIED
Misaki R SlusarskiRussiaBernardo Dominic RENEWAL
Johnson S ButtRussiaOnyama Limba NEGOTIATION
Faith B IturbideIndiaBernardo Dominic NEW
Silvio S VocelkaBrazilIoni Bowcher RENEWAL
Misaki J BriddickIndiaIoni Bowcher NEW
Munro X SchemmerSpainXuxue Feng RENEWAL
Smith S WieserGermanyOnyama Limba NEGOTIATION
Ashley I CaudyUnited KingdomBernardo Dominic PROPOSAL
Wickens W CaudyFranceAsiya Javayant PROPOSAL
Ricardo Y ShinkoArgentinaAsiya Javayant NEW
Jennifer U CaldareraUnited KingdomOnyama Limba PROPOSAL
Jefferson Y CampainIndiaOnyama Limba UNQUALIFIED
Costa Q VocelkaFranceAnna Fali NEW
Frozen Columns
Name
Johnson A Ostrosky
Costa H Chui
Greenwood X Garufi
Clifford P Kusko
Alejandro Y Glick
Leja W Malet
Aditya K Iturbide
Aruna V Flosi
Maria B Saylors
Ashley N Flosi
Mayumi Y Wieser
Wickens F Gaucho
Faith U Butt
Rodrigues H Gaucho
Morrow L Stockham
Julie Q Foller
Cody V Flosi
Alejandro B Tollner
Faith Y Nestle
Ivar R Gillian
Nicolas K Foller
Maria C Figeroa
Nicolas G Chui
Adams D Kolmetz
Claire C Ruta
Isabel Q Caudy
Arvin N Campain
Nicolas N Caudy
Arvin M Shinko
Jeanfrancois G Maclead
Julie G Royster
Mujtaba D Campain
Adams M Albares
Mayumi F Ostrosky
Jennifer N Wieser
Sinclair Z Rim
Jeanfrancois C Saylors
Sinclair R Morasca
Stacey T Stockham
Smith F Whobrey
Aditya N Stenseth
Mayumi D Morasca
Stacey L Caldarera
David H Garufi
Arvin G Nestle
Maria W Amigon
Claire M Caldarera
Clifford H Glick
Antonio Q Foller
Claire P Iturbide
IdCountryDate
1000Spain2026-10-02
1001Canada2026-10-17
1002United Kingdom2026-10-15
1003Brazil2026-10-22
1004Italy2026-10-19
1005France2026-10-24
1006Australia2026-10-23
1007United Kingdom2026-09-30
1008Australia2026-10-23
1009India2026-10-22
1010India2026-10-20
1011Canada2026-10-14
1012Australia2026-10-11
1013Canada2026-10-18
1014France2026-10-12
1015Australia2026-10-12
1016Argentina2026-09-28
1017Spain2026-10-23
1018India2026-09-29
1019United Kingdom2026-10-14
1020Canada2026-10-12
1021France2026-09-30
1022Russia2026-10-23
1023Germany2026-10-26
1024Italy2026-10-12
1025Russia2026-10-20
1026France2026-10-12
1027Brazil2026-10-12
1028Brazil2026-10-13
1029Canada2026-09-29
1030Russia2026-09-29
1031Germany2026-10-18
1032United Kingdom2026-10-06
1033Argentina2026-09-28
1034Canada2026-10-25
1035Spain2026-10-17
1036Brazil2026-10-26
1037Germany2026-10-21
1038India2026-10-21
1039India2026-10-04
1040Spain2026-10-23
1041Germany2026-10-18
1042France2026-10-13
1043France2026-10-21
1044Spain2026-10-24
1045Canada2026-10-06
1046United Kingdom2026-10-17
1047Canada2026-10-11
1048Japan2026-10-16
1049Brazil2026-10-16

On-Demand Data

NameIdCountryDate
Jones A Caldarera1000Spain2026-10-20
Costa M Perin1001India2026-10-12
Alejandro T Campain1002United Kingdom2026-10-12
Johnson Q Caldarera1003Australia2026-09-30
Salvatore O Rulapaugh1004Italy2026-10-21
James M Nestle1005India2026-10-09
Octavia R Malet1006Italy2026-10-25
Murillo Q Malet1007France2026-10-14
Aruna M Paprocki1008Spain2026-09-28
Alejandro B Flosi1009Spain2026-09-30
Munro H Butt1010India2026-10-26
Isabel Q Iturbide1011Germany2026-10-02
Clifford Z Foller1012Spain2026-09-29
Sinclair F Vocelka1013Russia2026-10-07
Mayumi W Glick1014India2026-10-20
Ivar J Bowley1015Japan2026-10-11
Aruna A Bolognia1016Argentina2026-09-30
Jennifer O Bolognia1017Brazil2026-10-16
Julie U Morasca1018Argentina2026-10-24
Maria X Nestle1019United Kingdom2026-09-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood K MaletCanadaAnna Fali RENEWAL
Aditya M GarufiArgentinaIvan Magalhaes NEW
Emily C CaudyUnited KingdomXuxue Feng QUALIFIED
Mujtaba N GillianIndiaOnyama Limba NEW
Stacey B DoeUnited KingdomAsiya Javayant NEGOTIATION
Jefferson T IturbideAustraliaBernardo Dominic NEGOTIATION
Ivar F PaprockiItalyOnyama Limba PROPOSAL
Salvatore Y RimSpainOnyama Limba UNQUALIFIED
Clifford Q FlosiUnited KingdomXuxue Feng QUALIFIED
Munro U AmigonIndiaOnyama Limba QUALIFIED
Ashley Y PaprockiSpainAsiya Javayant NEW
Stacey E OldroydFranceOnyama Limba UNQUALIFIED
Ricardo W OldroydIndiaAsiya Javayant UNQUALIFIED
Jefferson K PaprockiSpainIvan Magalhaes NEGOTIATION
Mayumi X SaylorsGermanyElwin Sharvill PROPOSAL
Chavez Y ButtItalyAnna Fali UNQUALIFIED
Juan M ChuiUnited KingdomIoni Bowcher RENEWAL
Maria W WieserArgentinaAsiya Javayant PROPOSAL
Mayumi Z MorascaAustraliaOnyama Limba UNQUALIFIED
Isabel Z RoysterJapanAnna Fali RENEWAL
Salvatore W StockhamCanadaBernardo Dominic QUALIFIED
Morrow C StockhamBrazilOnyama Limba QUALIFIED
Claire E MarrierRussiaOnyama Limba RENEWAL
Rodrigues I RutaGermanyXuxue Feng QUALIFIED
Jeanfrancois Q CampainJapanAsiya Javayant RENEWAL
Ricardo G AmigonJapanAnna Fali NEGOTIATION
Sinclair K BriddickBrazilAnna Fali QUALIFIED
Ashley K FollerItalyIoni Bowcher NEW
Johnson L MaletJapanIoni Bowcher NEGOTIATION
Aruna H FlosiItalyStephen Shaw NEGOTIATION
Leja T RulapaughFranceStephen Shaw NEW
Francesco Q WieserItalyOnyama Limba UNQUALIFIED
Smith S CaldareraIndiaStephen Shaw RENEWAL
James G VenereArgentinaAmy Elsner RENEWAL
Nicolas R DarakjyAustraliaIoni Bowcher UNQUALIFIED
Ashley Z OldroydJapanIoni Bowcher PROPOSAL
Mujtaba I AlbaresAustraliaStephen Shaw PROPOSAL
Izzy Y WhobreyAustraliaIvan Magalhaes NEGOTIATION
Adams B KolmetzGermanyAmy Elsner UNQUALIFIED
Salvatore Q SlusarskiCanadaAsiya Javayant 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" 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>