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
Murillo C KolmetzRussiaBernardo Dominic QUALIFIED
Tony D DoeSpainIoni Bowcher NEGOTIATION
Izzy F StockhamUnited KingdomStephen Shaw PROPOSAL
Ricardo X StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo G BologniaCanadaXuxue Feng RENEWAL
Costa K PoquetteUnited KingdomOnyama Limba NEGOTIATION
Silvio N MaletGermanyXuxue Feng NEW
Francesco A GarufiCanadaBernardo Dominic RENEWAL
Aruna T GarufiJapanAnna Fali NEW
Arvin X OstroskyCanadaBernardo Dominic NEW
Maria D GauchoFranceBernardo Dominic QUALIFIED
Ivar Y BriddickBrazilOnyama Limba PROPOSAL
Octavia O NestleFranceStephen Shaw PROPOSAL
Morrow V AlbaresSpainStephen Shaw NEGOTIATION
Adams M InouyeSpainAmy Elsner NEGOTIATION
Misaki S BriddickBrazilAnna Fali NEGOTIATION
Isabel Z BowleyItalyElwin Sharvill UNQUALIFIED
Emily P FigeroaFranceBernardo Dominic NEGOTIATION
Aika J VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar T DilliardRussiaElwin Sharvill NEW
Ashley U MarrierIndiaOnyama Limba RENEWAL
Rodrigues U ShinkoJapanBernardo Dominic RENEWAL
Izzy A BowleyFranceIoni Bowcher PROPOSAL
Maria M BologniaGermanyElwin Sharvill PROPOSAL
Antonio I CaudyRussiaBernardo Dominic NEW
Darci C ShinkoGermanyAmy Elsner NEGOTIATION
Antonio O MaletRussiaElwin Sharvill UNQUALIFIED
Claire V GillianArgentinaIvan Magalhaes PROPOSAL
Darci I SergiAustraliaElwin Sharvill NEW
Costa O SchemmerCanadaStephen Shaw NEW
Cody N GillianJapanOnyama Limba NEGOTIATION
Emily G GarufiAustraliaAmy Elsner RENEWAL
Salvatore D StockhamArgentinaIvan Magalhaes NEGOTIATION
Jones J FlosiFranceBernardo Dominic NEW
Silvio P VocelkaIndiaAmy Elsner UNQUALIFIED
Greenwood C WaycottRussiaIvan Magalhaes RENEWAL
Kaitlin N PerinFranceStephen Shaw RENEWAL
Adams O SaylorsFranceAmy Elsner RENEWAL
Stacey S KolmetzFranceAmy Elsner UNQUALIFIED
Salvatore D SlusarskiJapanIvan Magalhaes NEGOTIATION
Ivar V OstroskyUnited KingdomOnyama Limba NEW
Murillo F MacleadAustraliaBernardo Dominic UNQUALIFIED
Misaki G FlosiAustraliaAsiya Javayant RENEWAL
Faith W ChuiSpainAsiya Javayant UNQUALIFIED
Darci M BriddickArgentinaIoni Bowcher NEGOTIATION
Wickens B MacleadRussiaOnyama Limba QUALIFIED
Isabel Q SchemmerArgentinaOnyama Limba QUALIFIED
Jennifer I ShinkoUnited KingdomElwin Sharvill NEW
James M BriddickBrazilAmy Elsner UNQUALIFIED
Silvio L MaletSpainOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois P DarakjyCanadaStephen Shaw QUALIFIED
Cody T RimSpainAnna Fali QUALIFIED
Juan J RulapaughItalyElwin Sharvill RENEWAL
Ivar I CaldareraFranceOnyama Limba QUALIFIED
Isabel M BologniaJapanAsiya Javayant NEW
Misaki B MaletJapanIvan Magalhaes RENEWAL
Jones A InouyeSpainAmy Elsner RENEWAL
James B VocelkaArgentinaAmy Elsner QUALIFIED
Nicolas L FollerRussiaAmy Elsner PROPOSAL
Adams O OldroydUnited KingdomBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James C CampainGermany2026-09-12Chanay, Jeffrey A Esq NEGOTIATION49Onyama Limba
1001Salvatore T ButtJapan2026-09-03Commercial Press NEGOTIATION91Ivan Magalhaes
1002Adams A DarakjyBrazil2026-09-11Chanay, Jeffrey A Esq PROPOSAL2Asiya Javayant
1003Misaki Y BowleyCanada2026-08-28Chemel, James L Cpa NEW15Onyama Limba
1004Francesco Q MacleadRussia2026-09-11Feltz Printing Service QUALIFIED70Anna Fali
1005Smith L WhobreyAustralia2026-09-04Dorl, James J Esq PROPOSAL72Bernardo Dominic
1006Ivar U FollerJapan2026-08-24Feltz Printing Service UNQUALIFIED98Ioni Bowcher
1007Alejandro Q RulapaughItaly2026-08-24King, Christopher A Esq RENEWAL22Stephen Shaw
1008Rodrigues S DilliardUnited Kingdom2026-09-18Chapman, Ross E Esq RENEWAL36Xuxue Feng
1009Wickens A FollerArgentina2026-09-19King, Christopher A Esq NEGOTIATION46Onyama Limba
1010Jefferson S NickaSpain2026-08-31Benton, John B Jr RENEWAL55Stephen Shaw
1011Kadeem B WhobreyIndia2026-09-13Dorl, James J Esq UNQUALIFIED71Ivan Magalhaes
1012Smith Z GillianUnited Kingdom2026-09-12Commercial Press UNQUALIFIED30Stephen Shaw
1013Aruna D MaletFrance2026-08-23Printing Dimensions RENEWAL48Elwin Sharvill
1014Aditya W MarrierFrance2026-09-03Feiner Bros QUALIFIED77Anna Fali
1015Ivar G ShinkoAustralia2026-09-16Morlong Associates QUALIFIED94Ivan Magalhaes
1016Mayumi W TollnerGermany2026-09-21Truhlar And Truhlar Attys QUALIFIED36Bernardo Dominic
1017Julie J OstroskyRussia2026-08-23King, Christopher A Esq NEGOTIATION64Ioni Bowcher
1018Ivar W OldroydCanada2026-09-08Buckley Miller Wright QUALIFIED35Elwin Sharvill
1019Cody K RulapaughJapan2026-09-04Chanay, Jeffrey A Esq NEW48Asiya Javayant
1020Misaki I OstroskyCanada2026-09-17Chapman, Ross E Esq UNQUALIFIED42Bernardo Dominic
1021Arvin O AmigonGermany2026-09-09Chemel, James L Cpa RENEWAL22Amy Elsner
1022Francesco V NickaAustralia2026-08-25Printing Dimensions NEW80Elwin Sharvill
1023Costa A TollnerFrance2026-09-01Benton, John B Jr NEGOTIATION27Bernardo Dominic
1024Izzy D ButtSpain2026-09-12Truhlar And Truhlar Attys RENEWAL58Ivan Magalhaes
1025Aditya S GarufiBrazil2026-09-08Chanay, Jeffrey A Esq PROPOSAL31Xuxue Feng
1026Faith K BriddickItaly2026-09-03Truhlar And Truhlar Attys UNQUALIFIED73Amy Elsner
1027Juan G RoysterAustralia2026-09-04Chemel, James L Cpa NEGOTIATION82Elwin Sharvill
1028Rodrigues T GarufiFrance2026-08-24Truhlar And Truhlar Attys UNQUALIFIED64Amy Elsner
1029Adams Y BriddickRussia2026-08-26Buckley Miller Wright QUALIFIED92Elwin Sharvill
1030Johnson Q InouyeSpain2026-08-25Chemel, James L Cpa RENEWAL71Amy Elsner
1031Smith X SaylorsGermany2026-09-08Benton, John B Jr PROPOSAL14Ivan Magalhaes
1032Antonio N DoeFrance2026-08-31Chanay, Jeffrey A Esq QUALIFIED76Bernardo Dominic
1033David O GlickItaly2026-09-12Benton, John B Jr UNQUALIFIED95Xuxue Feng
1034Jennifer W FlosiGermany2026-09-13Rousseaux, Michael Esq NEGOTIATION65Stephen Shaw
1035Wickens A GillianIndia2026-09-05Rangoni Of Florence QUALIFIED91Stephen Shaw
1036Kaitlin K GarufiBrazil2026-09-20Benton, John B Jr QUALIFIED80Ivan Magalhaes
1037Chavez E DilliardUnited Kingdom2026-09-20Morlong Associates PROPOSAL96Xuxue Feng
1038Maria J AmigonGermany2026-08-23Truhlar And Truhlar Attys RENEWAL67Ivan Magalhaes
1039Kadeem Q WaycottBrazil2026-08-27Printing Dimensions RENEWAL35Ivan Magalhaes
1040Murillo W BowleyGermany2026-09-02Buckley Miller Wright NEW95Stephen Shaw
1041Faith Y GauchoItaly2026-09-15Rousseaux, Michael Esq NEGOTIATION33Ivan Magalhaes
1042Antonio U FerenczRussia2026-09-05Rangoni Of Florence NEGOTIATION26Onyama Limba
1043Adams W CaudyJapan2026-08-24Benton, John B Jr NEGOTIATION83Xuxue Feng
1044Jeanfrancois E PaprockiRussia2026-09-15Commercial Press PROPOSAL55Anna Fali
1045Darci K RoysterIndia2026-09-21Buckley Miller Wright UNQUALIFIED29Ivan Magalhaes
1046Rodrigues D TollnerJapan2026-09-06Rangoni Of Florence NEW43Asiya Javayant
1047Claire E VenereFrance2026-09-16Benton, John B Jr NEGOTIATION2Amy Elsner
1048Greenwood A RoysterUnited Kingdom2026-09-06Truhlar And Truhlar Attys UNQUALIFIED55Anna Fali
1049Antonio D RimFrance2026-08-30Truhlar And Truhlar Attys RENEWAL11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Alejandro U SlusarskiArgentinaElwin Sharvill QUALIFIED
Chavez K RoysterBrazilOnyama Limba QUALIFIED
Smith W SergiArgentinaAsiya Javayant UNQUALIFIED
Jennifer G ChuiItalyIvan Magalhaes UNQUALIFIED
Aditya Q KolmetzRussiaAsiya Javayant NEW
Kadeem K MaletArgentinaAmy Elsner NEGOTIATION
Rodrigues E NestleIndiaAsiya Javayant UNQUALIFIED
Leja J WaycottRussiaXuxue Feng QUALIFIED
Jennifer U GillianUnited KingdomXuxue Feng NEW
Adams Y ButtUnited KingdomAmy Elsner NEGOTIATION
Emily I WhobreySpainBernardo Dominic UNQUALIFIED
Francesco N CampainRussiaXuxue Feng PROPOSAL
Maisha V DilliardRussiaBernardo Dominic UNQUALIFIED
Kaitlin Q DoeBrazilIvan Magalhaes PROPOSAL
Emily A BowleyBrazilOnyama Limba NEGOTIATION
Aruna F WhobreyCanadaAnna Fali RENEWAL
Johnson A RulapaughSpainElwin Sharvill UNQUALIFIED
Arvin E BowleyJapanIoni Bowcher UNQUALIFIED
Octavia H PoquetteArgentinaAsiya Javayant RENEWAL
Costa P ChuiAustraliaStephen Shaw NEGOTIATION
Aditya X WhobreyGermanyAnna Fali QUALIFIED
Jeanfrancois N MorascaGermanyElwin Sharvill RENEWAL
Maisha X GauchoJapanAmy Elsner QUALIFIED
Jennifer G RoysterItalyAnna Fali UNQUALIFIED
Munro V GarufiBrazilXuxue Feng QUALIFIED
Adams B GarufiJapanElwin Sharvill PROPOSAL
Ashley Y CaldareraAustraliaXuxue Feng NEW
Kaitlin P FlosiSpainAmy Elsner QUALIFIED
Arvin X DarakjyJapanStephen Shaw RENEWAL
Silvio I RutaSpainStephen Shaw QUALIFIED
Octavia N SlusarskiArgentinaIvan Magalhaes NEW
Leja B BologniaIndiaAnna Fali NEW
Maria O SlusarskiSpainBernardo Dominic UNQUALIFIED
Jefferson W BriddickGermanyBernardo Dominic UNQUALIFIED
Aruna J CampainArgentinaAsiya Javayant PROPOSAL
Johnson I ChuiCanadaAmy Elsner RENEWAL
Nicolas Q SchemmerIndiaIvan Magalhaes UNQUALIFIED
Salvatore M GillianGermanyIvan Magalhaes RENEWAL
Aruna N CampainArgentinaAnna Fali NEGOTIATION
Leon C FollerSpainXuxue Feng PROPOSAL
Jennifer C GillianArgentinaOnyama Limba QUALIFIED
Johnson K ChuiBrazilXuxue Feng NEW
Mayumi C WieserUnited KingdomElwin Sharvill NEGOTIATION
Adams A GillianRussiaIoni Bowcher QUALIFIED
Octavia M RoysterFranceAmy Elsner PROPOSAL
Mayumi N TollnerFranceOnyama Limba NEW
Ricardo Q VocelkaCanadaElwin Sharvill NEGOTIATION
Juan W VocelkaAustraliaAsiya Javayant NEGOTIATION
Murillo Z IturbideCanadaAnna Fali PROPOSAL
Mujtaba X StensethUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Kadeem P Gillian
Izzy G Gaucho
Darci W Marrier
Antonio E Ostrosky
Alejandro W Waycott
Arvin H Chui
Leon B Stenseth
Aditya M Kusko
Kadeem X Gaucho
Deepesh P Kolmetz
Izzy U Kolmetz
Aditya P Caldarera
Ivar W Slusarski
Jefferson O Malet
Kaitlin Z Bowley
James E Wieser
Alejandro X Tollner
Greenwood X Poquette
Kadeem M Caldarera
Aruna O Flosi
Tony Y Doe
Alejandro N Dilliard
Antonio D Bowley
Salvatore N Oldroyd
Jeanfrancois E Foller
Ricardo I Iturbide
Arvin Z Shinko
Morrow X Perin
Isabel H Sergi
Juan Z Ruta
Juan W Kolmetz
James O Bolognia
Misaki H Poquette
Maria B Marrier
Stacey X Doe
Kaitlin G Foller
Juan V Nicka
Isabel D Campain
Ashley R Venere
Salvatore D Foller
Jeanfrancois T Chui
Stacey U Rim
Arvin P Morasca
Ricardo B Maclead
Munro W Shinko
Deepesh M Bolognia
Munro F Rim
Costa W Garufi
Cody Y Maclead
Isabel T Kusko
IdCountryDate
1000Germany2026-08-28
1001Australia2026-08-30
1002Japan2026-09-03
1003India2026-08-24
1004Argentina2026-09-11
1005Italy2026-09-04
1006Australia2026-09-09
1007United Kingdom2026-08-29
1008Argentina2026-09-16
1009Germany2026-09-19
1010United Kingdom2026-08-27
1011Japan2026-09-04
1012Germany2026-09-21
1013Russia2026-08-24
1014Russia2026-09-19
1015Canada2026-08-27
1016Spain2026-09-12
1017France2026-08-28
1018Spain2026-08-28
1019Italy2026-09-18
1020Argentina2026-09-13
1021Russia2026-09-09
1022India2026-08-25
1023Germany2026-09-10
1024United Kingdom2026-09-05
1025Argentina2026-09-12
1026Spain2026-09-01
1027United Kingdom2026-09-15
1028Spain2026-09-14
1029United Kingdom2026-08-24
1030Canada2026-09-14
1031Spain2026-09-02
1032Japan2026-09-06
1033Brazil2026-09-17
1034Australia2026-09-18
1035Argentina2026-09-21
1036Argentina2026-09-20
1037France2026-09-07
1038United Kingdom2026-09-04
1039India2026-09-12
1040Italy2026-09-08
1041Canada2026-09-15
1042Australia2026-09-08
1043Brazil2026-08-28
1044Brazil2026-09-10
1045United Kingdom2026-08-28
1046Spain2026-09-08
1047India2026-09-05
1048Japan2026-09-10
1049Argentina2026-09-19

On-Demand Data

NameIdCountryDate
Emily Q Vocelka1000Japan2026-09-13
Ivar D Foller1001France2026-09-21
Julie I Rulapaugh1002Spain2026-09-10
Stacey F Rulapaugh1003Argentina2026-09-16
Antonio V Campain1004France2026-09-17
Claire H Stockham1005United Kingdom2026-09-13
Maria K Ruta1006Australia2026-08-26
Ricardo W Stenseth1007France2026-09-05
Rodrigues A Venere1008Japan2026-08-29
Chavez C Rulapaugh1009Japan2026-09-09
Izzy K Briddick1010Japan2026-08-31
Claire K Oldroyd1011Argentina2026-08-24
Aika V Malet1012Russia2026-08-25
Kaitlin Q Kusko1013Brazil2026-09-05
Alejandro B Tollner1014Australia2026-09-11
Claire X Vocelka1015India2026-08-24
Julie A Nicka1016France2026-09-06
Murillo F Tollner1017Australia2026-09-18
Nicolas O Stockham1018Argentina2026-09-19
Rodrigues O Flosi1019Spain2026-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem X DilliardAustraliaElwin Sharvill QUALIFIED
Julie X SchemmerIndiaAsiya Javayant UNQUALIFIED
Francesco X NestleSpainAmy Elsner PROPOSAL
Darci U CaudyItalyIvan Magalhaes RENEWAL
Juan E OstroskySpainXuxue Feng NEGOTIATION
James S CampainRussiaBernardo Dominic QUALIFIED
Jefferson M SergiUnited KingdomIvan Magalhaes PROPOSAL
Tony I DarakjyRussiaStephen Shaw PROPOSAL
Claire J BowleyIndiaIoni Bowcher NEGOTIATION
Rodrigues Y IturbideArgentinaStephen Shaw NEW
Jefferson R KolmetzJapanIoni Bowcher UNQUALIFIED
Salvatore X ChuiIndiaXuxue Feng UNQUALIFIED
Ivar K GarufiSpainXuxue Feng NEW
Aditya Y FerenczUnited KingdomXuxue Feng NEW
Clifford Y ButtIndiaElwin Sharvill RENEWAL
Smith C KuskoBrazilElwin Sharvill QUALIFIED
Johnson Z ChuiFranceIvan Magalhaes UNQUALIFIED
Costa C GarufiCanadaIoni Bowcher QUALIFIED
James X FollerArgentinaXuxue Feng NEGOTIATION
Smith G ChuiJapanIoni Bowcher NEW
Izzy S ButtItalyStephen Shaw NEW
Isabel C IturbideRussiaBernardo Dominic NEW
Jennifer L WieserArgentinaXuxue Feng NEGOTIATION
Claire J BriddickFranceBernardo Dominic PROPOSAL
Johnson U GlickBrazilOnyama Limba NEW
Izzy Z DilliardJapanAmy Elsner NEW
Tony L BowleyGermanyAmy Elsner NEW
Misaki W MacleadRussiaAnna Fali PROPOSAL
Murillo N IturbideIndiaElwin Sharvill NEGOTIATION
Maria M CampainUnited KingdomBernardo Dominic RENEWAL
Arvin S PoquetteArgentinaXuxue Feng NEGOTIATION
Misaki S FerenczGermanyStephen Shaw QUALIFIED
Izzy W DoeSpainOnyama Limba NEW
Mayumi A SlusarskiArgentinaAmy Elsner NEW
Johnson S MarrierSpainIoni Bowcher NEW
Kadeem M BriddickBrazilXuxue Feng UNQUALIFIED
Octavia V StensethIndiaAnna Fali NEW
Izzy K MarrierUnited KingdomIoni Bowcher PROPOSAL
Maria K StockhamUnited KingdomAnna Fali QUALIFIED
Kadeem Z RulapaughFranceBernardo 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>