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
Leja L NestleFranceBernardo Dominic NEGOTIATION
James E MaletCanadaAsiya Javayant PROPOSAL
Emily D RulapaughBrazilAsiya Javayant QUALIFIED
Chavez J CaldareraAustraliaAnna Fali QUALIFIED
Kadeem H FlosiAustraliaIvan Magalhaes NEW
Murillo O PoquetteCanadaAnna Fali NEW
Deepesh S RutaFranceStephen Shaw NEW
Jeanfrancois W WhobreyJapanOnyama Limba NEGOTIATION
Jeanfrancois M DoeItalyElwin Sharvill UNQUALIFIED
Leon X WaycottCanadaStephen Shaw PROPOSAL
Deepesh I FlosiItalyAmy Elsner PROPOSAL
Claire K KolmetzGermanyIvan Magalhaes QUALIFIED
Silvio W CaldareraIndiaXuxue Feng NEW
Octavia Z SlusarskiArgentinaOnyama Limba QUALIFIED
Tony N CampainBrazilAsiya Javayant UNQUALIFIED
Leon H ButtCanadaIoni Bowcher UNQUALIFIED
Jefferson A MorascaFranceAmy Elsner NEW
Maisha S CaldareraRussiaBernardo Dominic UNQUALIFIED
Aika V CampainBrazilIvan Magalhaes UNQUALIFIED
Ricardo W MaletCanadaElwin Sharvill UNQUALIFIED
Johnson P GillianGermanyStephen Shaw PROPOSAL
Jones G IturbideSpainIvan Magalhaes RENEWAL
Kadeem Q SchemmerSpainIvan Magalhaes UNQUALIFIED
Aika Z DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Isabel S InouyeCanadaElwin Sharvill NEGOTIATION
Jennifer Q FollerAustraliaIoni Bowcher NEW
Mayumi G CaudyAustraliaElwin Sharvill NEGOTIATION
Morrow C MaletArgentinaAsiya Javayant QUALIFIED
Izzy U ShinkoAustraliaBernardo Dominic RENEWAL
Julie P ButtCanadaAsiya Javayant RENEWAL
Jefferson D MaletGermanyXuxue Feng RENEWAL
Clifford V MarrierGermanyAmy Elsner NEGOTIATION
Claire Y VocelkaItalyStephen Shaw NEGOTIATION
Octavia U SergiBrazilBernardo Dominic QUALIFIED
Jones Z CaudyJapanIoni Bowcher RENEWAL
Deepesh I OldroydUnited KingdomAnna Fali NEGOTIATION
Aruna G VocelkaItalyAmy Elsner NEW
Alejandro U GarufiArgentinaAmy Elsner UNQUALIFIED
Alejandro U NestleCanadaAsiya Javayant UNQUALIFIED
Octavia I MacleadUnited KingdomStephen Shaw UNQUALIFIED
Stacey Y PoquetteItalyAmy Elsner RENEWAL
Maisha F RoysterItalyIoni Bowcher UNQUALIFIED
Leon Q KuskoRussiaAmy Elsner NEGOTIATION
Isabel C CampainJapanOnyama Limba NEW
Isabel M VenereGermanyBernardo Dominic PROPOSAL
Mayumi P WhobreyJapanBernardo Dominic UNQUALIFIED
Arvin J TollnerItalyAmy Elsner NEW
Julie V RutaRussiaAmy Elsner UNQUALIFIED
Leon I BologniaSpainXuxue Feng NEGOTIATION
Wickens L AmigonAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Tony T MaletCanadaIoni Bowcher PROPOSAL
James W GlickGermanyXuxue Feng QUALIFIED
Chavez T AmigonUnited KingdomAmy Elsner NEW
Johnson Q PoquetteRussiaIoni Bowcher RENEWAL
David L NickaUnited KingdomIvan Magalhaes NEW
Faith Y GarufiJapanElwin Sharvill PROPOSAL
Wickens V DilliardJapanAmy Elsner NEW
Ashley N TollnerFranceXuxue Feng QUALIFIED
Clifford L GlickGermanyElwin Sharvill NEGOTIATION
Octavia E DarakjySpainStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem V BologniaFrance2026-09-08Rangoni Of Florence NEW48Amy Elsner
1001Johnson U OstroskyRussia2026-09-17Rangoni Of Florence NEW99Stephen Shaw
1002Chavez N DilliardIndia2026-09-17Commercial Press PROPOSAL99Asiya Javayant
1003Ricardo G BologniaArgentina2026-08-30Rousseaux, Michael Esq RENEWAL2Bernardo Dominic
1004Misaki V RoysterRussia2026-09-18Commercial Press NEGOTIATION55Amy Elsner
1005Izzy L GauchoFrance2026-09-13Truhlar And Truhlar Attys QUALIFIED89Amy Elsner
1006Salvatore D StensethItaly2026-09-04Feltz Printing Service PROPOSAL93Amy Elsner
1007Silvio Q SlusarskiGermany2026-09-28Commercial Press NEGOTIATION88Amy Elsner
1008Leon M OstroskyJapan2026-09-09Feltz Printing Service NEGOTIATION1Anna Fali
1009Kaitlin N RimArgentina2026-09-18Chanay, Jeffrey A Esq UNQUALIFIED1Asiya Javayant
1010Darci D SaylorsUnited Kingdom2026-09-19Commercial Press NEW82Onyama Limba
1011Julie M VenereFrance2026-09-05Rousseaux, Michael Esq UNQUALIFIED75Amy Elsner
1012Jennifer U FerenczUnited Kingdom2026-09-10Dorl, James J Esq RENEWAL22Stephen Shaw
1013Octavia F ShinkoArgentina2026-09-27Chemel, James L Cpa RENEWAL19Anna Fali
1014Munro E RimRussia2026-09-05Chapman, Ross E Esq NEGOTIATION26Amy Elsner
1015Kaitlin C MaletItaly2026-09-22Rousseaux, Michael Esq PROPOSAL57Asiya Javayant
1016Mayumi G PerinFrance2026-09-21Commercial Press UNQUALIFIED45Ivan Magalhaes
1017Smith A RulapaughFrance2026-09-07Morlong Associates RENEWAL6Elwin Sharvill
1018Aruna W FerenczItaly2026-09-20Benton, John B Jr RENEWAL77Anna Fali
1019Faith Z BriddickArgentina2026-09-07Morlong Associates UNQUALIFIED25Anna Fali
1020Faith X WaycottAustralia2026-09-03Benton, John B Jr NEW54Amy Elsner
1021Maria O OstroskyJapan2026-09-03Truhlar And Truhlar Attys UNQUALIFIED96Amy Elsner
1022James W GillianBrazil2026-09-24Chapman, Ross E Esq UNQUALIFIED98Bernardo Dominic
1023Leon R StockhamBrazil2026-09-05Rousseaux, Michael Esq RENEWAL97Anna Fali
1024Nicolas F BowleyIndia2026-09-03Chapman, Ross E Esq UNQUALIFIED61Xuxue Feng
1025Jones K WhobreyBrazil2026-09-06Chapman, Ross E Esq NEGOTIATION76Amy Elsner
1026Cody I StockhamItaly2026-09-25Feiner Bros UNQUALIFIED25Elwin Sharvill
1027Jeanfrancois Z GauchoGermany2026-09-09Commercial Press NEW76Bernardo Dominic
1028Claire A FigeroaSpain2026-09-12Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1029Rodrigues C PerinFrance2026-09-21Truhlar And Truhlar Attys NEGOTIATION55Elwin Sharvill
1030Clifford R FollerIndia2026-09-04Printing Dimensions UNQUALIFIED68Ivan Magalhaes
1031Antonio J VenereUnited Kingdom2026-09-03King, Christopher A Esq RENEWAL32Bernardo Dominic
1032Wickens Q KolmetzBrazil2026-08-30Chanay, Jeffrey A Esq NEGOTIATION98Bernardo Dominic
1033Silvio K GarufiGermany2026-09-06Benton, John B Jr NEGOTIATION65Anna Fali
1034Murillo V PaprockiFrance2026-09-18Rousseaux, Michael Esq NEGOTIATION46Elwin Sharvill
1035Nicolas Q StensethCanada2026-09-06Chemel, James L Cpa UNQUALIFIED43Ivan Magalhaes
1036Maria A NickaArgentina2026-09-12Feltz Printing Service NEW44Ivan Magalhaes
1037Smith U StockhamUnited Kingdom2026-09-02Morlong Associates UNQUALIFIED5Anna Fali
1038Silvio Z OstroskyAustralia2026-09-27Feltz Printing Service RENEWAL21Elwin Sharvill
1039Morrow W CaudyJapan2026-09-09Truhlar And Truhlar Attys RENEWAL25Anna Fali
1040Tony S MorascaArgentina2026-09-15Rangoni Of Florence PROPOSAL52Ioni Bowcher
1041Ricardo I TollnerGermany2026-09-17Truhlar And Truhlar Attys NEGOTIATION59Ioni Bowcher
1042Jeanfrancois L InouyeFrance2026-09-18Commercial Press NEGOTIATION37Bernardo Dominic
1043James C NestleSpain2026-09-28Truhlar And Truhlar Attys UNQUALIFIED74Xuxue Feng
1044Silvio C SchemmerCanada2026-09-18Truhlar And Truhlar Attys NEGOTIATION47Amy Elsner
1045Salvatore X OstroskyArgentina2026-09-07Benton, John B Jr RENEWAL62Asiya Javayant
1046James Y CaldareraBrazil2026-09-01Chanay, Jeffrey A Esq UNQUALIFIED89Xuxue Feng
1047Julie A FigeroaFrance2026-09-22Chanay, Jeffrey A Esq RENEWAL35Amy Elsner
1048Maisha A ButtArgentina2026-09-22Feltz Printing Service NEGOTIATION79Asiya Javayant
1049Rodrigues S GauchoArgentina2026-09-24Feiner Bros QUALIFIED21Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily W GauchoRussiaIvan Magalhaes PROPOSAL
Faith Z PaprockiRussiaBernardo Dominic PROPOSAL
Jeanfrancois O FollerUnited KingdomAmy Elsner UNQUALIFIED
Octavia P CampainAustraliaElwin Sharvill QUALIFIED
Ricardo D BowleyItalyAnna Fali UNQUALIFIED
Nicolas Z SaylorsUnited KingdomIvan Magalhaes NEW
Jefferson F CaldareraArgentinaAnna Fali NEGOTIATION
Ricardo F ButtRussiaIvan Magalhaes UNQUALIFIED
Mujtaba O GauchoJapanStephen Shaw NEGOTIATION
Tony C OldroydFranceAmy Elsner NEW
Arvin Q VocelkaJapanOnyama Limba QUALIFIED
Kaitlin U RulapaughBrazilAsiya Javayant NEGOTIATION
Darci M IturbideJapanIvan Magalhaes UNQUALIFIED
Adams P GillianArgentinaOnyama Limba RENEWAL
Mayumi T PaprockiCanadaIvan Magalhaes NEGOTIATION
Aditya H MaletUnited KingdomAmy Elsner NEGOTIATION
Antonio U DilliardFranceIvan Magalhaes RENEWAL
Stacey K PaprockiCanadaAmy Elsner UNQUALIFIED
Munro B CampainBrazilStephen Shaw NEW
Misaki E CaudyCanadaAsiya Javayant PROPOSAL
Silvio T SergiRussiaElwin Sharvill QUALIFIED
Murillo D SergiCanadaXuxue Feng QUALIFIED
Juan M KolmetzRussiaIvan Magalhaes NEW
Morrow V SchemmerFranceIvan Magalhaes PROPOSAL
Chavez A WaycottGermanyBernardo Dominic QUALIFIED
Aika D AmigonIndiaElwin Sharvill QUALIFIED
Clifford W RoysterGermanyStephen Shaw NEGOTIATION
Izzy H KuskoCanadaAsiya Javayant UNQUALIFIED
Mayumi P StensethCanadaAmy Elsner PROPOSAL
Silvio B ChuiArgentinaAnna Fali PROPOSAL
Isabel N WhobreyFranceAnna Fali PROPOSAL
Alejandro R ButtItalyAmy Elsner UNQUALIFIED
Kadeem C AmigonArgentinaAmy Elsner QUALIFIED
Mujtaba M MacleadSpainAmy Elsner NEGOTIATION
Murillo P MaletAustraliaStephen Shaw NEW
Chavez L CaudyUnited KingdomAmy Elsner RENEWAL
Silvio J StockhamArgentinaStephen Shaw QUALIFIED
James F NestleFranceBernardo Dominic PROPOSAL
Ricardo V DoeJapanXuxue Feng PROPOSAL
Wickens I RutaCanadaAnna Fali NEW
Sinclair C WieserBrazilAmy Elsner UNQUALIFIED
Costa J PerinItalyAmy Elsner QUALIFIED
Aditya M MarrierSpainStephen Shaw UNQUALIFIED
Aditya Q GlickSpainOnyama Limba PROPOSAL
Jeanfrancois J GarufiSpainStephen Shaw NEGOTIATION
Francesco D VocelkaCanadaStephen Shaw UNQUALIFIED
Jennifer A ShinkoIndiaXuxue Feng NEW
Arvin W WaycottJapanXuxue Feng NEGOTIATION
Ricardo W RutaCanadaXuxue Feng UNQUALIFIED
Ivar D TollnerCanadaAsiya Javayant NEW
Frozen Columns
Name
Izzy E Doe
David Y Darakjy
Wickens Q Morasca
Clifford X Amigon
Kaitlin L Chui
Costa U Vocelka
Ashley F Paprocki
Kadeem Z Paprocki
Ashley T Garufi
Octavia X Ostrosky
Leon S Glick
Tony X Garufi
Mayumi O Whobrey
Isabel N Foller
Johnson W Schemmer
Claire V Bowley
Misaki D Foller
Adams V Stenseth
Mujtaba B Foller
Julie S Inouye
Alejandro T Stockham
Stacey L Bolognia
Leon Z Nestle
Darci K Bowley
Ivar T Poquette
Julie N Iturbide
Maria L Sergi
Adams P Perin
Smith L Foller
Cody H Caudy
Emily I Whobrey
Aruna A Kusko
Misaki P Nicka
Aditya J Stockham
Jeanfrancois G Stenseth
Sinclair G Vocelka
Misaki Q Flosi
Smith Z Marrier
Julie J Morasca
Jennifer J Malet
Juan C Inouye
Wickens I Flosi
Cody T Venere
Munro L Iturbide
Munro S Rulapaugh
Rodrigues Z Flosi
Murillo B Marrier
Kadeem J Wieser
Ricardo Y Stockham
Maria X Darakjy
IdCountryDate
1000Argentina2026-09-23
1001Brazil2026-09-14
1002Canada2026-08-31
1003Argentina2026-08-30
1004Brazil2026-09-10
1005Germany2026-09-15
1006Australia2026-09-25
1007Germany2026-09-17
1008France2026-09-11
1009Japan2026-09-14
1010France2026-09-22
1011Italy2026-09-21
1012Brazil2026-09-19
1013Australia2026-09-04
1014Canada2026-09-11
1015Argentina2026-09-18
1016United Kingdom2026-09-08
1017Italy2026-09-28
1018Germany2026-09-09
1019Italy2026-09-19
1020Canada2026-09-26
1021United Kingdom2026-09-08
1022France2026-09-27
1023Brazil2026-09-04
1024Canada2026-08-31
1025Australia2026-09-12
1026Argentina2026-09-15
1027Germany2026-09-12
1028Brazil2026-09-22
1029Australia2026-09-03
1030India2026-09-05
1031Australia2026-09-21
1032Australia2026-09-09
1033Russia2026-09-02
1034Canada2026-09-06
1035Germany2026-09-09
1036Japan2026-09-24
1037Japan2026-09-01
1038Canada2026-09-22
1039India2026-09-05
1040Russia2026-08-30
1041United Kingdom2026-09-10
1042Brazil2026-09-13
1043Australia2026-09-23
1044India2026-09-06
1045Germany2026-09-03
1046United Kingdom2026-09-10
1047Australia2026-09-20
1048Brazil2026-09-09
1049France2026-09-22

On-Demand Data

NameIdCountryDate
Deepesh P Wieser1000Argentina2026-09-16
Johnson W Malet1001Japan2026-09-27
Maria Q Marrier1002Italy2026-09-13
Kadeem H Oldroyd1003Italy2026-09-21
Jeanfrancois F Paprocki1004Canada2026-09-23
Rodrigues Z Royster1005Spain2026-09-22
Isabel O Garufi1006Canada2026-09-17
Claire N Paprocki1007Argentina2026-09-02
Maria X Foller1008Canada2026-09-27
Salvatore U Schemmer1009Australia2026-08-31
Chavez I Stockham1010United Kingdom2026-09-26
Kaitlin M Shinko1011Argentina2026-09-09
Salvatore U Tollner1012Germany2026-09-01
Ivar O Morasca1013France2026-09-20
Ivar O Perin1014Russia2026-09-06
Stacey T Gillian1015Australia2026-09-08
Morrow W Doe1016Italy2026-09-09
Kadeem I Amigon1017India2026-09-17
Costa N Waycott1018Spain2026-09-12
Ricardo O Tollner1019France2026-09-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin H FollerUnited KingdomIvan Magalhaes RENEWAL
Kaitlin S WieserFranceAsiya Javayant PROPOSAL
Costa H BowleyJapanStephen Shaw UNQUALIFIED
Jones T StockhamAustraliaBernardo Dominic NEGOTIATION
Sinclair V VenereGermanyAsiya Javayant PROPOSAL
Murillo M MaletAustraliaAmy Elsner NEGOTIATION
Munro D RutaArgentinaAsiya Javayant NEGOTIATION
Clifford L DarakjyArgentinaOnyama Limba UNQUALIFIED
Aditya G PerinFranceStephen Shaw UNQUALIFIED
Deepesh Q GlickIndiaBernardo Dominic NEW
Greenwood V CampainItalyIoni Bowcher UNQUALIFIED
Ashley G NestleJapanBernardo Dominic QUALIFIED
Jeanfrancois A ButtSpainAsiya Javayant QUALIFIED
Emily P SergiRussiaAmy Elsner RENEWAL
Aika G FigeroaGermanyAnna Fali NEW
Wickens Q AmigonSpainAsiya Javayant NEW
Arvin C NickaSpainBernardo Dominic NEW
Murillo R GlickGermanyOnyama Limba RENEWAL
Izzy D VenereIndiaIvan Magalhaes UNQUALIFIED
Ivar S VocelkaJapanIoni Bowcher NEGOTIATION
Ricardo D RoysterGermanyStephen Shaw PROPOSAL
Nicolas E MorascaSpainAnna Fali UNQUALIFIED
Mayumi Z RimFranceOnyama Limba RENEWAL
Munro G BologniaArgentinaAsiya Javayant NEGOTIATION
Rodrigues N WaycottUnited KingdomXuxue Feng PROPOSAL
Greenwood V WieserFranceIvan Magalhaes NEW
Morrow Q StockhamArgentinaStephen Shaw PROPOSAL
Octavia Z ButtRussiaIoni Bowcher NEW
Greenwood A SergiAustraliaAnna Fali NEGOTIATION
Murillo T BologniaAustraliaStephen Shaw PROPOSAL
Kadeem Y WhobreyBrazilAmy Elsner NEW
Jefferson M InouyeJapanBernardo Dominic RENEWAL
Leon Z CampainBrazilBernardo Dominic QUALIFIED
Maria A SlusarskiBrazilIvan Magalhaes QUALIFIED
Clifford I NestleCanadaOnyama Limba NEGOTIATION
Murillo S InouyeBrazilAmy Elsner QUALIFIED
Isabel G MacleadArgentinaAsiya Javayant QUALIFIED
Misaki W GillianIndiaIoni Bowcher PROPOSAL
Greenwood O SaylorsItalyAmy Elsner RENEWAL
Sinclair S OstroskyItalyAmy Elsner PROPOSAL

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