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
Nicolas M AmigonAustraliaIvan Magalhaes UNQUALIFIED
Jones V DilliardAustraliaElwin Sharvill NEW
Octavia F GillianBrazilAmy Elsner NEGOTIATION
Aruna Z BriddickRussiaElwin Sharvill PROPOSAL
Sinclair K WieserGermanyXuxue Feng NEGOTIATION
James M CaldareraBrazilAnna Fali NEW
Aruna S AlbaresFranceAmy Elsner NEGOTIATION
Jeanfrancois K ButtAustraliaIoni Bowcher PROPOSAL
Stacey C SaylorsBrazilIoni Bowcher RENEWAL
Ivar C CaldareraArgentinaIvan Magalhaes NEW
Aruna L FlosiItalyBernardo Dominic RENEWAL
Aruna U BologniaGermanyElwin Sharvill UNQUALIFIED
Cody V AlbaresGermanyBernardo Dominic RENEWAL
Jeanfrancois B StensethGermanyAmy Elsner QUALIFIED
Jennifer Y WieserUnited KingdomBernardo Dominic NEGOTIATION
Stacey O MaletAustraliaAsiya Javayant UNQUALIFIED
Ricardo K RutaAustraliaAsiya Javayant UNQUALIFIED
Faith T TollnerArgentinaElwin Sharvill NEGOTIATION
Ivar Z StensethItalyAnna Fali QUALIFIED
Maisha Q SchemmerBrazilStephen Shaw RENEWAL
Munro P CaldareraIndiaStephen Shaw UNQUALIFIED
Silvio X VenereItalyXuxue Feng QUALIFIED
Munro Y OstroskyUnited KingdomStephen Shaw PROPOSAL
Jefferson Q TollnerIndiaIoni Bowcher NEGOTIATION
Misaki L ChuiArgentinaOnyama Limba RENEWAL
Salvatore B SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Kadeem W InouyeAustraliaBernardo Dominic NEGOTIATION
Arvin B SaylorsJapanXuxue Feng PROPOSAL
Johnson K StensethItalyIvan Magalhaes QUALIFIED
Sinclair B SaylorsItalyBernardo Dominic NEGOTIATION
Chavez C KolmetzBrazilAmy Elsner NEGOTIATION
Juan H CampainAustraliaBernardo Dominic RENEWAL
Jones I WieserAustraliaElwin Sharvill UNQUALIFIED
Sinclair S TollnerIndiaAmy Elsner NEW
Jefferson A FerenczGermanyXuxue Feng RENEWAL
Sinclair J PerinJapanAnna Fali UNQUALIFIED
Salvatore W VocelkaAustraliaAsiya Javayant RENEWAL
Stacey F NestleItalyIvan Magalhaes RENEWAL
Isabel F AmigonCanadaAsiya Javayant UNQUALIFIED
Izzy I AlbaresBrazilElwin Sharvill UNQUALIFIED
Antonio M SaylorsUnited KingdomStephen Shaw NEGOTIATION
Kadeem L OldroydJapanOnyama Limba NEGOTIATION
Chavez C MorascaCanadaIoni Bowcher UNQUALIFIED
Francesco E SlusarskiRussiaIoni Bowcher UNQUALIFIED
Leon U RoysterFranceAmy Elsner UNQUALIFIED
Salvatore K GauchoCanadaIoni Bowcher RENEWAL
Leon V DoeUnited KingdomXuxue Feng NEGOTIATION
Morrow A PaprockiBrazilAsiya Javayant QUALIFIED
Darci V MaletBrazilAsiya Javayant NEW
Rodrigues S MorascaBrazilStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer B NestleGermanyBernardo Dominic RENEWAL
Kaitlin A VenereItalyElwin Sharvill NEW
Antonio S SchemmerCanadaIoni Bowcher RENEWAL
Smith W MaletUnited KingdomBernardo Dominic PROPOSAL
Morrow W OldroydCanadaIvan Magalhaes QUALIFIED
Aditya B CaudyAustraliaElwin Sharvill QUALIFIED
David I CampainRussiaStephen Shaw PROPOSAL
Ashley D RoysterIndiaAnna Fali NEGOTIATION
Smith K GillianArgentinaOnyama Limba PROPOSAL
Rodrigues R StensethItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody B BologniaArgentina2026-09-06Chanay, Jeffrey A Esq NEW78Elwin Sharvill
1001Costa Z BriddickBrazil2026-09-19Truhlar And Truhlar Attys RENEWAL88Ioni Bowcher
1002Munro N SchemmerAustralia2026-09-13Printing Dimensions UNQUALIFIED3Xuxue Feng
1003James Z DoeArgentina2026-09-23Printing Dimensions NEW73Onyama Limba
1004Chavez S IturbideRussia2026-09-16Rangoni Of Florence PROPOSAL3Stephen Shaw
1005Misaki Z SlusarskiGermany2026-08-30Buckley Miller Wright NEGOTIATION45Xuxue Feng
1006Chavez L BriddickGermany2026-09-14Morlong Associates PROPOSAL69Amy Elsner
1007Aditya N WaycottItaly2026-09-14Commercial Press PROPOSAL65Onyama Limba
1008Tony X RoysterIndia2026-08-27Buckley Miller Wright NEW61Amy Elsner
1009Clifford T RimGermany2026-09-17Rousseaux, Michael Esq PROPOSAL83Onyama Limba
1010Tony R GarufiBrazil2026-09-13Rousseaux, Michael Esq PROPOSAL18Bernardo Dominic
1011Morrow W MorascaSpain2026-09-13Truhlar And Truhlar Attys NEW72Ivan Magalhaes
1012Ivar Z GauchoAustralia2026-09-12Chemel, James L Cpa RENEWAL86Xuxue Feng
1013Sinclair U AmigonBrazil2026-09-05Dorl, James J Esq PROPOSAL78Stephen Shaw
1014Jones K KuskoFrance2026-08-27Rangoni Of Florence QUALIFIED62Ivan Magalhaes
1015Leja C SaylorsBrazil2026-09-04Buckley Miller Wright QUALIFIED91Stephen Shaw
1016Aruna X RimRussia2026-08-29Buckley Miller Wright PROPOSAL40Elwin Sharvill
1017Jefferson P OldroydArgentina2026-09-22Feltz Printing Service UNQUALIFIED91Elwin Sharvill
1018Stacey O CaudySpain2026-09-24Feltz Printing Service NEW94Xuxue Feng
1019Kadeem S RimGermany2026-09-01Chemel, James L Cpa QUALIFIED41Ioni Bowcher
1020Sinclair B SaylorsBrazil2026-09-15Rangoni Of Florence QUALIFIED43Amy Elsner
1021Faith K VenereJapan2026-09-17Chapman, Ross E Esq RENEWAL62Asiya Javayant
1022Izzy F MacleadRussia2026-09-03Dorl, James J Esq NEGOTIATION50Bernardo Dominic
1023Wickens O PoquetteUnited Kingdom2026-09-10Rousseaux, Michael Esq RENEWAL74Ioni Bowcher
1024Kadeem U WieserBrazil2026-09-07Commercial Press NEW76Bernardo Dominic
1025Kaitlin B SlusarskiCanada2026-09-10Chemel, James L Cpa NEGOTIATION56Ioni Bowcher
1026Cody U BowleyFrance2026-09-16Feiner Bros QUALIFIED26Onyama Limba
1027Mayumi Z VocelkaItaly2026-09-12Morlong Associates UNQUALIFIED17Onyama Limba
1028Faith L OstroskyIndia2026-09-02Feltz Printing Service RENEWAL84Onyama Limba
1029Silvio L RulapaughIndia2026-09-01Chapman, Ross E Esq UNQUALIFIED5Xuxue Feng
1030Adams T MorascaIndia2026-08-29Chapman, Ross E Esq RENEWAL4Anna Fali
1031Claire T GarufiFrance2026-09-19Truhlar And Truhlar Attys QUALIFIED78Onyama Limba
1032Kaitlin R ButtIndia2026-09-23Dorl, James J Esq NEGOTIATION17Stephen Shaw
1033David I NickaSpain2026-09-05Dorl, James J Esq RENEWAL95Amy Elsner
1034Leja N ButtJapan2026-09-15Morlong Associates RENEWAL67Amy Elsner
1035Arvin M CaudyArgentina2026-09-07Rangoni Of Florence NEGOTIATION73Amy Elsner
1036Alejandro O KuskoCanada2026-09-22Truhlar And Truhlar Attys UNQUALIFIED34Ivan Magalhaes
1037Misaki Z PaprockiCanada2026-09-11Dorl, James J Esq RENEWAL40Stephen Shaw
1038Deepesh E WaycottItaly2026-08-26Buckley Miller Wright UNQUALIFIED8Stephen Shaw
1039Wickens T NestleFrance2026-08-26Commercial Press UNQUALIFIED63Asiya Javayant
1040Alejandro A CampainIndia2026-09-06Chapman, Ross E Esq NEW94Xuxue Feng
1041Kaitlin F OstroskyIndia2026-09-24Rangoni Of Florence RENEWAL71Bernardo Dominic
1042Octavia M OldroydBrazil2026-09-14King, Christopher A Esq NEW63Xuxue Feng
1043Jones R FlosiJapan2026-09-04Buckley Miller Wright NEW31Xuxue Feng
1044Aditya B InouyeArgentina2026-09-13Chemel, James L Cpa NEW75Onyama Limba
1045Jones X PaprockiUnited Kingdom2026-09-04Dorl, James J Esq RENEWAL59Amy Elsner
1046Izzy S CaldareraArgentina2026-09-22Chapman, Ross E Esq PROPOSAL26Elwin Sharvill
1047Sinclair E AmigonCanada2026-09-15Feiner Bros NEGOTIATION53Asiya Javayant
1048Munro D StockhamBrazil2026-09-06Truhlar And Truhlar Attys NEW48Anna Fali
1049Tony U AmigonAustralia2026-09-06Printing Dimensions RENEWAL8Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Darci R AmigonIndiaAsiya Javayant QUALIFIED
Tony N KuskoJapanElwin Sharvill RENEWAL
Adams O IturbideFranceIoni Bowcher NEW
Cody X AlbaresUnited KingdomStephen Shaw QUALIFIED
Alejandro L WaycottFranceBernardo Dominic QUALIFIED
Salvatore Q OstroskyAustraliaAmy Elsner PROPOSAL
Greenwood X GillianIndiaAsiya Javayant QUALIFIED
Darci K WaycottUnited KingdomElwin Sharvill NEGOTIATION
Jones Z OstroskyUnited KingdomXuxue Feng NEW
Leon C PaprockiSpainStephen Shaw NEW
Clifford E RimAustraliaIvan Magalhaes UNQUALIFIED
Murillo G DilliardItalyIoni Bowcher RENEWAL
Claire F BologniaArgentinaIvan Magalhaes RENEWAL
Aditya V PerinRussiaBernardo Dominic PROPOSAL
Mayumi H OldroydRussiaIvan Magalhaes PROPOSAL
Rodrigues G FigeroaBrazilXuxue Feng NEW
Ivar Z BologniaFranceStephen Shaw QUALIFIED
Arvin J ButtGermanyBernardo Dominic NEW
Misaki I BriddickGermanyIoni Bowcher PROPOSAL
Mayumi E WhobreyGermanyIvan Magalhaes NEGOTIATION
Kadeem C NickaRussiaIoni Bowcher NEGOTIATION
Francesco I TollnerJapanStephen Shaw RENEWAL
Juan U InouyeCanadaIoni Bowcher RENEWAL
Wickens D GauchoAustraliaIvan Magalhaes PROPOSAL
Deepesh Y AlbaresAustraliaStephen Shaw UNQUALIFIED
Ivar T BowleyGermanyIvan Magalhaes UNQUALIFIED
Rodrigues C InouyeRussiaIoni Bowcher UNQUALIFIED
Leon W KolmetzSpainStephen Shaw NEW
Maisha M MaletUnited KingdomIvan Magalhaes QUALIFIED
Maisha J InouyeIndiaAsiya Javayant NEGOTIATION
David L VocelkaUnited KingdomOnyama Limba NEW
Costa X PerinGermanyElwin Sharvill NEGOTIATION
Leon Z BologniaArgentinaIoni Bowcher PROPOSAL
Aika E MaletUnited KingdomIvan Magalhaes NEW
Alejandro H DarakjyCanadaAnna Fali PROPOSAL
Jennifer H NestleSpainAsiya Javayant NEGOTIATION
Mayumi W OldroydAustraliaAnna Fali NEW
David I BriddickRussiaIvan Magalhaes RENEWAL
Arvin X DarakjyGermanyStephen Shaw QUALIFIED
Antonio R WhobreyJapanBernardo Dominic PROPOSAL
Ivar V RutaUnited KingdomElwin Sharvill PROPOSAL
Emily A AlbaresArgentinaIvan Magalhaes NEW
Deepesh R MaletAustraliaIvan Magalhaes PROPOSAL
Darci G PerinGermanyXuxue Feng PROPOSAL
Silvio B IturbideBrazilIoni Bowcher PROPOSAL
Mujtaba Q RulapaughUnited KingdomIvan Magalhaes NEW
Chavez A StensethGermanyOnyama Limba PROPOSAL
Salvatore M BowleyArgentinaOnyama Limba UNQUALIFIED
Cody E FerenczGermanyIvan Magalhaes RENEWAL
Francesco N WaycottItalyIvan Magalhaes NEW
Frozen Columns
Name
Aditya W Oldroyd
Tony E Rim
Darci O Nicka
Murillo Q Bolognia
Octavia C Ostrosky
Juan P Butt
Ricardo E Sergi
Maria U Iturbide
Johnson M Ostrosky
Greenwood J Rulapaugh
Julie I Maclead
Wickens X Wieser
Deepesh N Slusarski
Mayumi N Gaucho
Antonio G Royster
Isabel G Caudy
Alejandro E Perin
Isabel T Kolmetz
Tony V Vocelka
Faith K Briddick
Maria E Morasca
Chavez G Nicka
Jennifer Z Glick
Jones V Malet
Costa N Slusarski
Jones G Tollner
Mujtaba M Stockham
Juan Y Glick
Leja B Paprocki
Adams O Whobrey
Jefferson B Chui
Aditya I Slusarski
Adams Q Ruta
Rodrigues V Darakjy
Claire G Chui
Adams G Oldroyd
Murillo E Morasca
Chavez S Tollner
Greenwood T Oldroyd
Aditya S Schemmer
Murillo S Darakjy
Emily Y Ruta
Cody R Doe
Costa V Saylors
Johnson R Chui
Maria R Rim
Ivar P Dilliard
Costa J Paprocki
Morrow K Gillian
Nicolas E Rim
IdCountryDate
1000Brazil2026-09-15
1001France2026-09-17
1002Germany2026-08-27
1003Canada2026-08-29
1004India2026-09-08
1005Brazil2026-09-10
1006Italy2026-08-27
1007Spain2026-08-29
1008Australia2026-09-07
1009Spain2026-09-24
1010Argentina2026-08-27
1011United Kingdom2026-09-13
1012Japan2026-09-10
1013United Kingdom2026-09-05
1014India2026-08-27
1015Germany2026-09-14
1016United Kingdom2026-09-13
1017Italy2026-09-16
1018Italy2026-09-09
1019Italy2026-09-19
1020United Kingdom2026-09-06
1021United Kingdom2026-09-14
1022Spain2026-08-28
1023Argentina2026-09-07
1024Brazil2026-09-17
1025United Kingdom2026-09-04
1026France2026-08-27
1027Germany2026-09-17
1028Argentina2026-09-20
1029Spain2026-08-28
1030France2026-09-24
1031Italy2026-09-17
1032France2026-09-24
1033Russia2026-09-08
1034Italy2026-08-29
1035Japan2026-09-20
1036Italy2026-09-04
1037United Kingdom2026-08-27
1038Brazil2026-08-26
1039Argentina2026-09-05
1040Japan2026-09-17
1041Australia2026-09-04
1042Argentina2026-09-21
1043Italy2026-09-16
1044Russia2026-09-05
1045Russia2026-08-30
1046Germany2026-09-18
1047France2026-09-08
1048India2026-09-11
1049Italy2026-09-09

On-Demand Data

NameIdCountryDate
Alejandro V Kusko1000Australia2026-09-04
Jeanfrancois R Briddick1001France2026-09-20
Octavia E Maclead1002India2026-09-13
Kadeem S Wieser1003Canada2026-08-27
Stacey J Wieser1004Russia2026-09-09
Silvio Z Oldroyd1005Australia2026-09-21
Claire E Perin1006Spain2026-09-08
Aruna N Gaucho1007Germany2026-08-31
Ricardo J Royster1008Spain2026-08-29
Faith C Butt1009Spain2026-09-05
Emily Q Amigon1010Brazil2026-09-14
Ivar A Bolognia1011Argentina2026-08-28
Juan I Bolognia1012Canada2026-09-10
Ricardo C Oldroyd1013United Kingdom2026-09-23
Emily S Sergi1014Canada2026-09-13
Greenwood O Chui1015Canada2026-08-30
Jennifer V Poquette1016Australia2026-09-12
Mayumi U Albares1017Argentina2026-09-13
Antonio W Tollner1018Canada2026-09-18
Emily O Bowley1019France2026-09-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya W TollnerItalyXuxue Feng UNQUALIFIED
Leja H CaldareraBrazilIoni Bowcher PROPOSAL
Morrow A NestleGermanyBernardo Dominic QUALIFIED
Izzy Z TollnerSpainBernardo Dominic NEW
Munro X FerenczRussiaBernardo Dominic UNQUALIFIED
Antonio X RoysterUnited KingdomOnyama Limba UNQUALIFIED
Octavia B BologniaItalyOnyama Limba QUALIFIED
Murillo J ChuiFranceIoni Bowcher QUALIFIED
Tony O WieserAustraliaAmy Elsner PROPOSAL
Aditya J GarufiGermanyBernardo Dominic RENEWAL
Octavia K KuskoArgentinaAsiya Javayant NEW
Silvio A FigeroaCanadaXuxue Feng RENEWAL
Ashley L GauchoArgentinaElwin Sharvill PROPOSAL
Darci I ShinkoSpainElwin Sharvill QUALIFIED
Leja A GillianBrazilBernardo Dominic RENEWAL
Leon Q StockhamArgentinaIvan Magalhaes NEGOTIATION
Adams S WieserGermanyAsiya Javayant RENEWAL
Jeanfrancois L AlbaresIndiaBernardo Dominic NEW
Octavia C RoysterFranceIvan Magalhaes PROPOSAL
Adams V IturbideCanadaXuxue Feng QUALIFIED
Darci K FigeroaAustraliaIoni Bowcher NEGOTIATION
Ricardo O FlosiAustraliaOnyama Limba RENEWAL
Cody D InouyeItalyOnyama Limba NEGOTIATION
Juan C WhobreyItalyIvan Magalhaes NEW
Julie K PaprockiCanadaAsiya Javayant NEW
Aruna N MarrierGermanyAnna Fali NEGOTIATION
Greenwood J IturbideCanadaAnna Fali RENEWAL
Jefferson G NestleUnited KingdomAnna Fali NEGOTIATION
Aditya A MaletAustraliaIoni Bowcher RENEWAL
James C IturbideCanadaStephen Shaw RENEWAL
Maria O VenereArgentinaAnna Fali UNQUALIFIED
Tony Q ButtUnited KingdomStephen Shaw QUALIFIED
Claire C NestleJapanBernardo Dominic QUALIFIED
James H SchemmerIndiaBernardo Dominic NEW
Isabel B VenereAustraliaOnyama Limba UNQUALIFIED
Ashley U AlbaresJapanXuxue Feng RENEWAL
Kadeem R KuskoArgentinaAsiya Javayant RENEWAL
Claire K MacleadGermanyAsiya Javayant UNQUALIFIED
Johnson V RimCanadaIvan Magalhaes PROPOSAL
Leon T BologniaFranceElwin Sharvill RENEWAL

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