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
Emily E WieserJapanAnna Fali QUALIFIED
James D RimSpainAmy Elsner PROPOSAL
Octavia C GlickBrazilOnyama Limba NEGOTIATION
Octavia E DoeSpainStephen Shaw NEGOTIATION
Darci Y NestleArgentinaIoni Bowcher PROPOSAL
Silvio W RoysterAustraliaIvan Magalhaes RENEWAL
Arvin H SlusarskiAustraliaXuxue Feng QUALIFIED
Smith H TollnerFranceAsiya Javayant NEW
Aika V AlbaresIndiaElwin Sharvill UNQUALIFIED
Cody S MacleadJapanOnyama Limba UNQUALIFIED
Rodrigues D ChuiUnited KingdomXuxue Feng RENEWAL
Antonio T OldroydGermanyIvan Magalhaes PROPOSAL
Aruna R DoeFranceXuxue Feng RENEWAL
Murillo C FigeroaGermanyAsiya Javayant RENEWAL
Wickens F BriddickGermanyOnyama Limba UNQUALIFIED
Stacey E DilliardIndiaElwin Sharvill RENEWAL
Tony E FerenczItalyOnyama Limba NEW
Darci O WieserSpainElwin Sharvill NEW
James H SchemmerGermanyIoni Bowcher RENEWAL
Aditya M KuskoRussiaAnna Fali UNQUALIFIED
Ricardo W StensethItalyIoni Bowcher PROPOSAL
Darci T IturbideBrazilAmy Elsner NEGOTIATION
Kadeem K OldroydJapanAmy Elsner NEGOTIATION
Tony T WhobreyJapanAmy Elsner QUALIFIED
Juan R DilliardUnited KingdomAsiya Javayant NEW
Arvin U RimIndiaElwin Sharvill RENEWAL
Adams J MacleadBrazilAnna Fali NEW
Claire T SergiSpainIvan Magalhaes UNQUALIFIED
Chavez U SergiArgentinaAnna Fali QUALIFIED
Smith Q BologniaUnited KingdomOnyama Limba UNQUALIFIED
Smith S OldroydUnited KingdomAnna Fali UNQUALIFIED
Emily T InouyeRussiaOnyama Limba RENEWAL
Jefferson F GillianUnited KingdomIoni Bowcher RENEWAL
Tony N MaletSpainAmy Elsner NEGOTIATION
Aditya Q GauchoRussiaBernardo Dominic RENEWAL
Francesco N ChuiSpainAmy Elsner NEW
Aruna G DilliardItalyIoni Bowcher RENEWAL
Isabel Y KolmetzGermanyElwin Sharvill UNQUALIFIED
Jefferson S InouyeRussiaXuxue Feng UNQUALIFIED
Cody B MarrierCanadaOnyama Limba QUALIFIED
Maria S WaycottBrazilIvan Magalhaes PROPOSAL
Juan H VocelkaBrazilIoni Bowcher UNQUALIFIED
Mayumi V SlusarskiSpainAmy Elsner NEGOTIATION
Jeanfrancois V MorascaJapanOnyama Limba NEGOTIATION
Munro I WieserFranceIvan Magalhaes QUALIFIED
Jennifer P GillianFranceOnyama Limba NEGOTIATION
Aika Q OldroydIndiaXuxue Feng UNQUALIFIED
Chavez F CaudyUnited KingdomAsiya Javayant NEGOTIATION
Ricardo G SaylorsAustraliaElwin Sharvill NEGOTIATION
Emily A InouyeCanadaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco A CaudyArgentinaAmy Elsner NEGOTIATION
Smith R GlickCanadaAsiya Javayant NEW
Ivar F RoysterBrazilBernardo Dominic NEGOTIATION
Isabel P ButtAustraliaXuxue Feng NEGOTIATION
Julie K WhobreyBrazilBernardo Dominic RENEWAL
Tony H GillianSpainAmy Elsner NEW
Alejandro A WaycottFranceStephen Shaw RENEWAL
Aruna D ButtAustraliaIvan Magalhaes QUALIFIED
Ivar Y RutaItalyOnyama Limba RENEWAL
Emily U FerenczFranceIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa V SergiJapan2026-10-06Chemel, James L Cpa UNQUALIFIED74Bernardo Dominic
1001Francesco C PerinRussia2026-10-07Morlong Associates RENEWAL60Asiya Javayant
1002Ivar C StensethUnited Kingdom2026-10-11Printing Dimensions NEGOTIATION40Anna Fali
1003Juan H SergiArgentina2026-10-07Printing Dimensions NEW18Onyama Limba
1004Darci I MaletFrance2026-10-31Rangoni Of Florence NEW60Onyama Limba
1005Costa D VocelkaCanada2026-10-20Rangoni Of Florence RENEWAL20Xuxue Feng
1006Adams V RutaUnited Kingdom2026-10-20Morlong Associates UNQUALIFIED36Ivan Magalhaes
1007Salvatore U FlosiAustralia2026-10-16Rangoni Of Florence RENEWAL30Ivan Magalhaes
1008Tony K AlbaresCanada2026-10-19Truhlar And Truhlar Attys UNQUALIFIED43Stephen Shaw
1009Aruna U SchemmerBrazil2026-10-17Chanay, Jeffrey A Esq QUALIFIED46Asiya Javayant
1010Maria E FollerGermany2026-10-27Chemel, James L Cpa UNQUALIFIED23Ivan Magalhaes
1011Deepesh W OldroydFrance2026-10-10Buckley Miller Wright PROPOSAL87Stephen Shaw
1012Jennifer V CaudyIndia2026-10-02Rousseaux, Michael Esq NEW78Amy Elsner
1013Munro O PoquetteArgentina2026-10-07Chapman, Ross E Esq NEGOTIATION9Stephen Shaw
1014Greenwood J AlbaresArgentina2026-10-27Rangoni Of Florence NEW93Asiya Javayant
1015Leja Z StockhamRussia2026-10-24Chanay, Jeffrey A Esq UNQUALIFIED13Bernardo Dominic
1016Alejandro T NickaAustralia2026-10-22Rangoni Of Florence QUALIFIED46Anna Fali
1017Stacey I WhobreyAustralia2026-10-04Chemel, James L Cpa QUALIFIED58Onyama Limba
1018Francesco B SergiSpain2026-10-23Feiner Bros RENEWAL42Ioni Bowcher
1019David I KuskoItaly2026-10-31Dorl, James J Esq QUALIFIED41Ioni Bowcher
1020Clifford Z VocelkaAustralia2026-10-16Chapman, Ross E Esq QUALIFIED27Bernardo Dominic
1021Darci V SchemmerFrance2026-10-07Chemel, James L Cpa NEW56Ivan Magalhaes
1022Smith C FollerSpain2026-10-29Chanay, Jeffrey A Esq NEW86Asiya Javayant
1023Smith X TollnerIndia2026-10-24Rousseaux, Michael Esq NEGOTIATION92Stephen Shaw
1024Darci Q VenereJapan2026-10-30Feltz Printing Service QUALIFIED53Asiya Javayant
1025Aruna D MacleadItaly2026-10-11Chanay, Jeffrey A Esq RENEWAL69Amy Elsner
1026Morrow H SchemmerUnited Kingdom2026-10-21Commercial Press UNQUALIFIED15Ioni Bowcher
1027Adams J AlbaresBrazil2026-10-10Benton, John B Jr NEGOTIATION5Xuxue Feng
1028Tony Z SlusarskiRussia2026-10-31Benton, John B Jr UNQUALIFIED44Onyama Limba
1029Maisha R PaprockiFrance2026-10-26Chanay, Jeffrey A Esq UNQUALIFIED57Xuxue Feng
1030Ivar W StensethRussia2026-10-09Rangoni Of Florence PROPOSAL96Stephen Shaw
1031Ivar X CaudyFrance2026-10-15Printing Dimensions PROPOSAL34Bernardo Dominic
1032Leja X GauchoBrazil2026-10-27Feiner Bros UNQUALIFIED50Ioni Bowcher
1033Salvatore W FigeroaBrazil2026-10-19Truhlar And Truhlar Attys NEGOTIATION70Bernardo Dominic
1034Antonio N PaprockiSpain2026-10-03Dorl, James J Esq RENEWAL76Xuxue Feng
1035James O ChuiGermany2026-10-10Truhlar And Truhlar Attys UNQUALIFIED16Ivan Magalhaes
1036Misaki F PaprockiItaly2026-10-03Chapman, Ross E Esq NEW20Elwin Sharvill
1037Greenwood Q PoquetteUnited Kingdom2026-10-19Commercial Press PROPOSAL89Anna Fali
1038Wickens J RulapaughAustralia2026-10-30Commercial Press NEW56Bernardo Dominic
1039Emily A GlickCanada2026-10-25Feltz Printing Service RENEWAL8Elwin Sharvill
1040Jennifer O KuskoGermany2026-10-26Benton, John B Jr NEGOTIATION32Ivan Magalhaes
1041Costa W FlosiCanada2026-10-19Benton, John B Jr QUALIFIED86Elwin Sharvill
1042Aika J WieserArgentina2026-10-18Feltz Printing Service NEGOTIATION70Ivan Magalhaes
1043Julie H NestleItaly2026-10-22Chanay, Jeffrey A Esq PROPOSAL85Ivan Magalhaes
1044Francesco K StockhamFrance2026-10-26Truhlar And Truhlar Attys QUALIFIED0Elwin Sharvill
1045Silvio Z BologniaGermany2026-10-14Commercial Press UNQUALIFIED19Ivan Magalhaes
1046Kaitlin S MaletAustralia2026-10-12Chemel, James L Cpa UNQUALIFIED3Bernardo Dominic
1047Misaki C VenereCanada2026-10-02Truhlar And Truhlar Attys NEW0Elwin Sharvill
1048Kaitlin M PoquetteUnited Kingdom2026-10-30Benton, John B Jr UNQUALIFIED41Bernardo Dominic
1049Deepesh Q GillianItaly2026-10-09Chanay, Jeffrey A Esq NEGOTIATION73Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Clifford K CampainJapanIoni Bowcher UNQUALIFIED
Cody W SaylorsRussiaIoni Bowcher RENEWAL
Cody D BologniaBrazilBernardo Dominic UNQUALIFIED
Munro J FerenczIndiaIvan Magalhaes QUALIFIED
David P ButtSpainIvan Magalhaes NEGOTIATION
David R NickaIndiaIoni Bowcher UNQUALIFIED
James N InouyeRussiaIoni Bowcher RENEWAL
Mayumi Y CaldareraBrazilBernardo Dominic UNQUALIFIED
Jeanfrancois B GlickRussiaAnna Fali PROPOSAL
Chavez K MorascaBrazilElwin Sharvill NEW
Jeanfrancois T InouyeArgentinaAsiya Javayant RENEWAL
Juan L ButtUnited KingdomAnna Fali PROPOSAL
Mujtaba Q WieserRussiaElwin Sharvill QUALIFIED
Darci E ShinkoIndiaIvan Magalhaes NEW
Faith R IturbideFranceAmy Elsner UNQUALIFIED
Aika E VenereGermanyStephen Shaw NEGOTIATION
Emily Y DoeItalyXuxue Feng RENEWAL
Leja E GillianIndiaAnna Fali PROPOSAL
Jeanfrancois C RutaItalyStephen Shaw NEGOTIATION
Emily X StockhamAustraliaOnyama Limba RENEWAL
Izzy E RulapaughRussiaIoni Bowcher PROPOSAL
Silvio Y PaprockiSpainIoni Bowcher NEGOTIATION
Maria V PaprockiItalyOnyama Limba NEGOTIATION
Emily P StensethJapanIvan Magalhaes NEW
Tony S CampainUnited KingdomIoni Bowcher NEW
Misaki O GillianItalyElwin Sharvill UNQUALIFIED
Claire V SchemmerItalyIoni Bowcher PROPOSAL
James G MarrierJapanElwin Sharvill QUALIFIED
Nicolas D FlosiAustraliaIvan Magalhaes QUALIFIED
Jefferson V BologniaRussiaAmy Elsner UNQUALIFIED
Tony H PerinJapanIvan Magalhaes NEW
Smith A ShinkoArgentinaStephen Shaw QUALIFIED
Murillo Z MarrierArgentinaOnyama Limba PROPOSAL
Maria H StensethRussiaIvan Magalhaes RENEWAL
Ivar U NickaAustraliaIvan Magalhaes NEW
Isabel J TollnerBrazilBernardo Dominic NEGOTIATION
Octavia F DoeRussiaAnna Fali RENEWAL
Leja I BologniaBrazilAmy Elsner UNQUALIFIED
Morrow R NestleUnited KingdomXuxue Feng PROPOSAL
Mayumi V SaylorsBrazilBernardo Dominic RENEWAL
Ivar D ChuiIndiaIoni Bowcher RENEWAL
Aruna V GarufiUnited KingdomBernardo Dominic NEGOTIATION
Alejandro M MaletFranceAmy Elsner QUALIFIED
Darci Q PerinSpainIoni Bowcher RENEWAL
Juan I GillianUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro X RutaGermanyAsiya Javayant UNQUALIFIED
Morrow Q KuskoSpainIvan Magalhaes UNQUALIFIED
Leon L MaletSpainStephen Shaw UNQUALIFIED
Salvatore T GlickArgentinaIoni Bowcher UNQUALIFIED
Darci L DilliardGermanyXuxue Feng PROPOSAL
Frozen Columns
Name
Ricardo C Rim
Francesco Z Paprocki
Sinclair P Ferencz
Arvin X Venere
Silvio Y Gillian
Adams S Foller
Kaitlin D Dilliard
Antonio P Albares
Arvin C Sergi
Kadeem W Ruta
Jeanfrancois C Briddick
Ashley P Oldroyd
Claire V Kolmetz
Misaki B Butt
Claire L Malet
Maria A Ferencz
Ricardo H Inouye
Sinclair P Kusko
Silvio K Shinko
Jones B Figeroa
Maisha U Vocelka
Adams R Oldroyd
Ricardo P Foller
Munro A Glick
Aditya L Sergi
James E Marrier
Arvin K Tollner
Maisha X Campain
Stacey V Rulapaugh
Maisha Z Gillian
Murillo C Garufi
Ivar K Wieser
Leon G Butt
Ivar C Gillian
Rodrigues F Stenseth
Cody N Foller
Kaitlin G Slusarski
Faith L Figeroa
Jennifer P Tollner
Jeanfrancois R Venere
Leon U Gaucho
Murillo U Ferencz
Costa O Morasca
Aditya H Sergi
Aika U Malet
Chavez B Wieser
Alejandro B Chui
Claire S Slusarski
Misaki K Poquette
Kaitlin B Figeroa
IdCountryDate
1000Australia2026-10-10
1001Canada2026-10-06
1002Japan2026-10-04
1003Brazil2026-10-20
1004Japan2026-10-06
1005United Kingdom2026-10-08
1006Brazil2026-10-11
1007Canada2026-10-12
1008Germany2026-10-24
1009Australia2026-10-31
1010United Kingdom2026-10-10
1011Japan2026-10-24
1012Russia2026-10-19
1013Australia2026-10-23
1014Argentina2026-10-14
1015Spain2026-10-08
1016Germany2026-10-23
1017Canada2026-10-22
1018Canada2026-10-29
1019France2026-10-02
1020Brazil2026-10-16
1021Germany2026-10-27
1022Germany2026-10-22
1023Canada2026-10-17
1024Italy2026-10-23
1025France2026-10-08
1026Spain2026-10-11
1027Spain2026-10-19
1028India2026-10-12
1029Italy2026-10-09
1030Japan2026-10-15
1031Australia2026-10-06
1032Australia2026-10-23
1033Argentina2026-10-04
1034Brazil2026-10-26
1035Canada2026-10-24
1036Japan2026-10-07
1037Brazil2026-10-20
1038Brazil2026-10-17
1039Spain2026-10-26
1040United Kingdom2026-10-07
1041Brazil2026-10-22
1042Russia2026-10-25
1043United Kingdom2026-10-30
1044France2026-10-19
1045Australia2026-10-21
1046Italy2026-10-11
1047Spain2026-10-08
1048Japan2026-10-22
1049France2026-10-10

On-Demand Data

NameIdCountryDate
Misaki K Dilliard1000India2026-10-27
Jennifer Y Bolognia1001Australia2026-10-13
Smith E Garufi1002Germany2026-10-31
Morrow P Chui1003Italy2026-10-22
Arvin C Amigon1004Canada2026-10-06
Mujtaba T Perin1005Germany2026-10-17
Darci H Dilliard1006United Kingdom2026-10-19
Sinclair I Stockham1007India2026-10-05
Ricardo Q Waycott1008India2026-10-13
David B Doe1009United Kingdom2026-10-31
Murillo A Foller1010Canada2026-10-15
Sinclair D Maclead1011United Kingdom2026-10-21
Greenwood M Iturbide1012Brazil2026-10-29
Salvatore E Dilliard1013Australia2026-10-31
Jennifer R Waycott1014Spain2026-10-06
Morrow O Amigon1015Canada2026-10-31
Octavia Q Kusko1016Italy2026-10-07
Chavez C Marrier1017United Kingdom2026-10-24
Misaki T Stenseth1018Russia2026-10-28
Leon Q Slusarski1019Spain2026-10-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi T FigeroaIndiaAnna Fali RENEWAL
Kaitlin F IturbideJapanIvan Magalhaes RENEWAL
Ricardo D IturbideArgentinaStephen Shaw NEW
Kaitlin D BriddickItalyElwin Sharvill PROPOSAL
Ashley Q SlusarskiRussiaAmy Elsner QUALIFIED
Johnson K GlickGermanyIvan Magalhaes NEGOTIATION
Clifford G InouyeAustraliaAnna Fali RENEWAL
Jennifer G KuskoUnited KingdomAsiya Javayant PROPOSAL
Munro H RimUnited KingdomAnna Fali NEW
Smith H SergiCanadaAmy Elsner PROPOSAL
Adams E IturbideBrazilElwin Sharvill NEGOTIATION
Claire F PaprockiBrazilAnna Fali PROPOSAL
Kadeem K NestleGermanyAsiya Javayant QUALIFIED
Smith U BriddickJapanIoni Bowcher PROPOSAL
Chavez V FigeroaCanadaStephen Shaw PROPOSAL
Silvio W SchemmerJapanElwin Sharvill UNQUALIFIED
Jones D SergiUnited KingdomElwin Sharvill NEW
Chavez D RulapaughArgentinaOnyama Limba PROPOSAL
Rodrigues M WhobreyGermanyAmy Elsner RENEWAL
Alejandro B MacleadJapanAsiya Javayant PROPOSAL
Alejandro P KuskoJapanIoni Bowcher NEW
Munro B BologniaItalyIvan Magalhaes NEW
Kadeem Q WhobreyCanadaBernardo Dominic UNQUALIFIED
Costa J MorascaAustraliaIoni Bowcher RENEWAL
Wickens C PoquetteGermanyOnyama Limba UNQUALIFIED
Morrow D SlusarskiJapanAsiya Javayant NEGOTIATION
Misaki M IturbideRussiaAnna Fali NEW
Kaitlin S WieserUnited KingdomStephen Shaw PROPOSAL
Aika H GlickArgentinaBernardo Dominic RENEWAL
Leja I ButtFranceBernardo Dominic RENEWAL
Jeanfrancois E BologniaFranceXuxue Feng RENEWAL
Mujtaba L RoysterAustraliaIvan Magalhaes UNQUALIFIED
Clifford A KolmetzIndiaXuxue Feng NEGOTIATION
Jennifer Q AlbaresItalyStephen Shaw NEW
James R GillianCanadaXuxue Feng RENEWAL
Francesco G GlickArgentinaIvan Magalhaes NEW
Ricardo U PoquetteItalyStephen Shaw RENEWAL
Costa F ShinkoSpainStephen Shaw PROPOSAL
Stacey J RutaFranceIoni Bowcher QUALIFIED
Alejandro J GlickArgentinaXuxue Feng 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>