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
Francesco B BologniaItalyAmy Elsner UNQUALIFIED
Isabel S FollerIndiaBernardo Dominic QUALIFIED
Francesco T SlusarskiUnited KingdomElwin Sharvill RENEWAL
Octavia S RoysterUnited KingdomElwin Sharvill RENEWAL
Izzy Z SergiAustraliaBernardo Dominic RENEWAL
Mayumi U FerenczArgentinaOnyama Limba RENEWAL
Jones T FerenczArgentinaAmy Elsner UNQUALIFIED
Aruna F FollerGermanyXuxue Feng PROPOSAL
Maria Z ButtIndiaStephen Shaw QUALIFIED
Greenwood V ChuiSpainBernardo Dominic QUALIFIED
Deepesh B WhobreyUnited KingdomAnna Fali PROPOSAL
Alejandro U PoquetteRussiaAnna Fali NEW
Johnson C WhobreyRussiaAsiya Javayant NEGOTIATION
Chavez J AlbaresBrazilOnyama Limba UNQUALIFIED
Sinclair A ChuiUnited KingdomAsiya Javayant NEGOTIATION
Ricardo T OldroydArgentinaOnyama Limba QUALIFIED
Izzy B CaldareraSpainXuxue Feng QUALIFIED
James G IturbideFranceIoni Bowcher PROPOSAL
Cody D WaycottIndiaElwin Sharvill UNQUALIFIED
Wickens J RutaBrazilBernardo Dominic UNQUALIFIED
David Q MaletFranceStephen Shaw PROPOSAL
Octavia W PoquetteArgentinaXuxue Feng QUALIFIED
Misaki S StensethUnited KingdomOnyama Limba NEGOTIATION
Izzy O PerinUnited KingdomIvan Magalhaes RENEWAL
Sinclair J DilliardJapanStephen Shaw NEGOTIATION
Johnson C GlickBrazilIvan Magalhaes QUALIFIED
Chavez C OldroydItalyStephen Shaw QUALIFIED
Jones Z FlosiSpainOnyama Limba NEGOTIATION
Darci R DoeBrazilBernardo Dominic NEW
Juan K MacleadItalyOnyama Limba UNQUALIFIED
Ivar V KuskoSpainAnna Fali UNQUALIFIED
Jeanfrancois I MaletAustraliaIvan Magalhaes PROPOSAL
Nicolas E AmigonCanadaBernardo Dominic NEW
Costa H RulapaughIndiaAmy Elsner PROPOSAL
Adams O SlusarskiAustraliaXuxue Feng PROPOSAL
Arvin E GarufiBrazilIoni Bowcher NEGOTIATION
Murillo Z BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem G WaycottAustraliaIoni Bowcher NEGOTIATION
Maisha M WieserItalyOnyama Limba QUALIFIED
Aika H CaldareraArgentinaOnyama Limba RENEWAL
Chavez E RutaIndiaBernardo Dominic UNQUALIFIED
Nicolas Q GauchoItalyElwin Sharvill UNQUALIFIED
Mayumi J AmigonBrazilIoni Bowcher NEW
James E OldroydUnited KingdomOnyama Limba UNQUALIFIED
Greenwood G WieserUnited KingdomIoni Bowcher PROPOSAL
Aruna X WhobreyItalyAsiya Javayant RENEWAL
Aruna F FlosiIndiaIoni Bowcher PROPOSAL
Aika N SlusarskiGermanyAsiya Javayant PROPOSAL
Leja W ShinkoIndiaAmy Elsner UNQUALIFIED
Leja J FlosiAustraliaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer E VenereAustraliaAmy Elsner NEW
Francesco L CaldareraBrazilAnna Fali QUALIFIED
Mujtaba K DilliardCanadaAsiya Javayant PROPOSAL
Smith B FollerJapanIoni Bowcher RENEWAL
Juan Y SlusarskiRussiaXuxue Feng NEGOTIATION
Francesco J RutaGermanyAmy Elsner PROPOSAL
Misaki D PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
James Z RoysterBrazilBernardo Dominic NEW
Juan T OldroydCanadaXuxue Feng NEGOTIATION
Maisha B SaylorsArgentinaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja F KolmetzUnited Kingdom2026-10-07Rangoni Of Florence UNQUALIFIED73Ivan Magalhaes
1001Johnson K CaudyArgentina2026-10-24Morlong Associates NEW45Xuxue Feng
1002Alejandro A GauchoCanada2026-10-06Chanay, Jeffrey A Esq QUALIFIED72Amy Elsner
1003Tony P FollerRussia2026-10-23Morlong Associates QUALIFIED22Ivan Magalhaes
1004Claire Y VocelkaUnited Kingdom2026-10-28Buckley Miller Wright QUALIFIED5Amy Elsner
1005Aditya Z WieserUnited Kingdom2026-10-15King, Christopher A Esq NEGOTIATION61Bernardo Dominic
1006Greenwood C ButtRussia2026-10-24Rousseaux, Michael Esq NEW12Stephen Shaw
1007Jones E VenereBrazil2026-10-11Truhlar And Truhlar Attys PROPOSAL81Elwin Sharvill
1008Greenwood W WaycottGermany2026-10-20Morlong Associates NEGOTIATION43Amy Elsner
1009Deepesh L FlosiIndia2026-10-29Feltz Printing Service NEW31Xuxue Feng
1010Francesco F RutaFrance2026-10-15Truhlar And Truhlar Attys UNQUALIFIED19Amy Elsner
1011Adams U BriddickBrazil2026-10-19Rangoni Of Florence UNQUALIFIED56Asiya Javayant
1012Salvatore X OldroydRussia2026-10-09Feltz Printing Service QUALIFIED14Stephen Shaw
1013Jones D DoeIndia2026-10-04Truhlar And Truhlar Attys QUALIFIED45Anna Fali
1014Antonio X CampainItaly2026-10-13Benton, John B Jr QUALIFIED73Amy Elsner
1015Morrow L MaletJapan2026-10-10Dorl, James J Esq NEW36Amy Elsner
1016Arvin D RulapaughArgentina2026-10-19Rousseaux, Michael Esq RENEWAL8Asiya Javayant
1017Aruna F IturbideGermany2026-10-26Buckley Miller Wright RENEWAL56Ivan Magalhaes
1018Claire W ButtSpain2026-10-13Commercial Press RENEWAL8Onyama Limba
1019Francesco H BriddickFrance2026-10-14Dorl, James J Esq UNQUALIFIED12Ivan Magalhaes
1020Johnson I FigeroaCanada2026-10-26Printing Dimensions PROPOSAL96Stephen Shaw
1021Adams F SlusarskiArgentina2026-11-01King, Christopher A Esq RENEWAL87Amy Elsner
1022Tony K FollerFrance2026-10-27Feltz Printing Service NEW50Amy Elsner
1023Aika E WhobreyGermany2026-10-08Chapman, Ross E Esq PROPOSAL32Ivan Magalhaes
1024Isabel U StensethGermany2026-10-21Truhlar And Truhlar Attys PROPOSAL65Stephen Shaw
1025Maisha N WieserUnited Kingdom2026-10-10Chanay, Jeffrey A Esq RENEWAL40Asiya Javayant
1026Smith R CaudyGermany2026-10-18Rousseaux, Michael Esq QUALIFIED53Onyama Limba
1027Leja D MaletArgentina2026-10-05Rousseaux, Michael Esq PROPOSAL5Bernardo Dominic
1028Morrow N PerinItaly2026-10-12Buckley Miller Wright QUALIFIED29Onyama Limba
1029Nicolas U IturbideFrance2026-10-23Feiner Bros UNQUALIFIED30Amy Elsner
1030Munro C MorascaArgentina2026-10-26Buckley Miller Wright NEGOTIATION91Onyama Limba
1031Izzy N WaycottAustralia2026-10-19Chanay, Jeffrey A Esq NEW54Elwin Sharvill
1032Aditya O GarufiAustralia2026-10-15Truhlar And Truhlar Attys QUALIFIED51Stephen Shaw
1033James R WhobreyFrance2026-10-20Feiner Bros NEGOTIATION5Ivan Magalhaes
1034Johnson Q BowleySpain2026-10-30Truhlar And Truhlar Attys QUALIFIED1Asiya Javayant
1035Leja X AmigonGermany2026-10-18Commercial Press NEW51Ivan Magalhaes
1036Mujtaba F RutaFrance2026-10-26Morlong Associates PROPOSAL5Onyama Limba
1037Ivar H FigeroaCanada2026-10-30Printing Dimensions RENEWAL93Ivan Magalhaes
1038Maisha F OstroskyAustralia2026-10-11Buckley Miller Wright NEGOTIATION42Ioni Bowcher
1039Mayumi G MarrierAustralia2026-10-30Rangoni Of Florence QUALIFIED54Bernardo Dominic
1040Morrow B NestleSpain2026-10-23Chanay, Jeffrey A Esq RENEWAL92Anna Fali
1041Aika O DarakjyAustralia2026-10-16Chapman, Ross E Esq NEGOTIATION64Elwin Sharvill
1042Maisha L FlosiGermany2026-10-07King, Christopher A Esq PROPOSAL52Stephen Shaw
1043Aditya H PerinArgentina2026-10-15Truhlar And Truhlar Attys QUALIFIED83Bernardo Dominic
1044Antonio D FollerArgentina2026-10-16King, Christopher A Esq UNQUALIFIED80Onyama Limba
1045Sinclair E MorascaArgentina2026-10-25Chemel, James L Cpa NEGOTIATION41Amy Elsner
1046Ricardo M BologniaIndia2026-10-20Chanay, Jeffrey A Esq NEW43Bernardo Dominic
1047Emily F StockhamItaly2026-10-27Feiner Bros RENEWAL86Stephen Shaw
1048Mayumi Q MarrierJapan2026-10-06Buckley Miller Wright PROPOSAL83Asiya Javayant
1049Wickens D RoysterJapan2026-10-19Dorl, James J Esq UNQUALIFIED87Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba K AlbaresIndiaStephen Shaw QUALIFIED
Octavia Q PoquetteSpainStephen Shaw QUALIFIED
Stacey G AlbaresAustraliaAnna Fali PROPOSAL
Greenwood C MacleadIndiaAmy Elsner UNQUALIFIED
Jones A StensethCanadaXuxue Feng RENEWAL
Faith K RimSpainAsiya Javayant UNQUALIFIED
Murillo E DoeUnited KingdomStephen Shaw QUALIFIED
Juan C KolmetzIndiaIvan Magalhaes QUALIFIED
Kaitlin A SaylorsJapanOnyama Limba PROPOSAL
Wickens E DarakjyBrazilOnyama Limba NEGOTIATION
Francesco G IturbideArgentinaXuxue Feng NEW
Faith V NickaRussiaAmy Elsner RENEWAL
Claire X ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Aruna S BologniaFranceIvan Magalhaes NEGOTIATION
Murillo M GlickGermanyBernardo Dominic QUALIFIED
Cody U CampainCanadaXuxue Feng RENEWAL
Maria M MaletAustraliaBernardo Dominic UNQUALIFIED
Leja M MacleadArgentinaXuxue Feng NEGOTIATION
Izzy X GauchoGermanyIoni Bowcher NEGOTIATION
Morrow H KolmetzIndiaBernardo Dominic QUALIFIED
Nicolas M CaudyArgentinaAmy Elsner QUALIFIED
Mujtaba Y FerenczSpainOnyama Limba RENEWAL
Octavia O IturbideBrazilAsiya Javayant NEW
Izzy R CaudyIndiaIoni Bowcher UNQUALIFIED
Kaitlin D WhobreyItalyOnyama Limba PROPOSAL
Chavez T PaprockiUnited KingdomXuxue Feng NEGOTIATION
Francesco J ButtJapanElwin Sharvill NEGOTIATION
Clifford T SaylorsGermanyAmy Elsner NEGOTIATION
Maria X NestleIndiaOnyama Limba RENEWAL
Rodrigues C SaylorsJapanXuxue Feng QUALIFIED
Sinclair W KolmetzUnited KingdomXuxue Feng NEW
Aika C WaycottSpainBernardo Dominic UNQUALIFIED
Maria E ChuiGermanyAnna Fali RENEWAL
Mayumi Z PerinUnited KingdomOnyama Limba UNQUALIFIED
Claire Z GarufiUnited KingdomXuxue Feng UNQUALIFIED
Johnson Y MaletAustraliaXuxue Feng PROPOSAL
Darci X VocelkaRussiaAsiya Javayant PROPOSAL
Chavez A RulapaughRussiaAsiya Javayant NEGOTIATION
Rodrigues W KolmetzCanadaAmy Elsner UNQUALIFIED
Ricardo U WaycottArgentinaIoni Bowcher QUALIFIED
Misaki U GlickAustraliaOnyama Limba NEW
Claire U InouyeJapanAmy Elsner NEW
Faith G NestleIndiaAmy Elsner RENEWAL
Arvin W OstroskyArgentinaOnyama Limba RENEWAL
Costa O BologniaArgentinaIvan Magalhaes UNQUALIFIED
James M AlbaresArgentinaElwin Sharvill QUALIFIED
Francesco N GillianFranceBernardo Dominic NEW
Murillo J RoysterSpainElwin Sharvill UNQUALIFIED
Misaki M MaletFranceAsiya Javayant NEGOTIATION
Tony P RoysterRussiaIoni Bowcher QUALIFIED
Frozen Columns
Name
Munro T Iturbide
Leja O Malet
Rodrigues G Whobrey
Aditya K Schemmer
Mayumi X Figeroa
Salvatore G Rulapaugh
Wickens M Briddick
David V Iturbide
Alejandro R Stockham
Aika J Whobrey
Tony G Maclead
Mayumi U Kusko
Ivar A Campain
Nicolas O Nicka
Aditya J Albares
Stacey F Waycott
Clifford R Malet
Leon A Whobrey
Deepesh L Malet
Isabel S Rim
Kaitlin R Marrier
Clifford E Chui
Aruna C Briddick
Emily B Glick
Maria G Maclead
Rodrigues O Stockham
Wickens Z Malet
Mujtaba H Rim
Darci N Rim
Ricardo P Doe
Antonio M Briddick
Misaki N Sergi
David T Bolognia
Jones A Sergi
Misaki L Schemmer
Kadeem C Albares
James B Marrier
Antonio U Campain
Maisha Y Ruta
Ivar W Oldroyd
Julie X Shinko
Greenwood H Doe
Jones D Poquette
James O Nestle
Alejandro H Oldroyd
Nicolas U Nicka
Murillo D Wieser
Aditya L Shinko
Emily W Sergi
Jeanfrancois H Ruta
IdCountryDate
1000Australia2026-10-11
1001Japan2026-10-06
1002Japan2026-10-18
1003India2026-10-05
1004France2026-10-22
1005Australia2026-10-06
1006Spain2026-10-25
1007France2026-10-08
1008United Kingdom2026-10-10
1009Argentina2026-10-10
1010United Kingdom2026-10-27
1011Italy2026-10-12
1012United Kingdom2026-10-25
1013Australia2026-10-13
1014Canada2026-10-27
1015Italy2026-10-27
1016Italy2026-10-22
1017Argentina2026-10-06
1018Italy2026-10-07
1019United Kingdom2026-10-13
1020Argentina2026-10-13
1021Argentina2026-10-06
1022France2026-10-25
1023Canada2026-10-12
1024Japan2026-10-28
1025Argentina2026-10-15
1026Australia2026-10-28
1027United Kingdom2026-10-24
1028Spain2026-10-17
1029France2026-10-25
1030United Kingdom2026-10-29
1031Spain2026-10-17
1032United Kingdom2026-10-18
1033Japan2026-10-13
1034India2026-10-29
1035Australia2026-11-01
1036Brazil2026-10-14
1037United Kingdom2026-10-26
1038Australia2026-10-08
1039Russia2026-10-21
1040Brazil2026-10-18
1041Japan2026-10-11
1042United Kingdom2026-10-04
1043Australia2026-10-12
1044France2026-10-26
1045Germany2026-10-15
1046Italy2026-10-30
1047Germany2026-10-22
1048Germany2026-10-10
1049Russia2026-10-15

On-Demand Data

NameIdCountryDate
Maisha Q Gillian1000India2026-10-29
Salvatore A Chui1001Italy2026-10-11
Alejandro A Tollner1002Germany2026-10-10
Isabel Y Poquette1003Brazil2026-10-07
Wickens L Chui1004Italy2026-10-10
Leja J Shinko1005Canada2026-10-28
James X Butt1006United Kingdom2026-10-18
Francesco C Paprocki1007Japan2026-10-08
Costa V Iturbide1008Russia2026-10-05
Kadeem O Caudy1009United Kingdom2026-10-19
Greenwood U Glick1010Germany2026-10-11
Kadeem A Oldroyd1011Russia2026-10-05
Mujtaba Z Gaucho1012Japan2026-10-21
David R Foller1013Brazil2026-10-24
Ashley E Darakjy1014Germany2026-11-01
Claire L Figeroa1015France2026-10-31
Greenwood K Paprocki1016Argentina2026-10-18
James U Nestle1017Spain2026-10-11
Darci G Figeroa1018Canada2026-10-05
Silvio P Kusko1019Canada2026-10-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith E PoquetteJapanAsiya Javayant NEW
Jeanfrancois U NickaAustraliaElwin Sharvill QUALIFIED
Deepesh F ShinkoAustraliaAnna Fali PROPOSAL
Adams Z SergiSpainAnna Fali NEGOTIATION
Francesco R RulapaughBrazilStephen Shaw NEGOTIATION
Stacey I InouyeBrazilAnna Fali NEW
Cody Y PoquetteSpainOnyama Limba PROPOSAL
Izzy E FigeroaIndiaIoni Bowcher NEGOTIATION
Chavez G AlbaresIndiaXuxue Feng PROPOSAL
Stacey B SaylorsIndiaAmy Elsner PROPOSAL
Ivar H IturbideFranceAsiya Javayant UNQUALIFIED
Morrow C SchemmerAustraliaOnyama Limba NEGOTIATION
Smith C NestleItalyAmy Elsner UNQUALIFIED
Kaitlin A VocelkaItalyBernardo Dominic NEGOTIATION
Costa O SergiCanadaAnna Fali RENEWAL
Maria B InouyeAustraliaElwin Sharvill RENEWAL
James A InouyeItalyAsiya Javayant NEW
Isabel T GauchoSpainStephen Shaw NEW
Smith R OstroskyAustraliaXuxue Feng UNQUALIFIED
Isabel X MaletCanadaAsiya Javayant NEGOTIATION
Mayumi V InouyeSpainElwin Sharvill UNQUALIFIED
Stacey A OstroskyItalyAsiya Javayant PROPOSAL
David K NickaFranceOnyama Limba PROPOSAL
Emily L SchemmerArgentinaBernardo Dominic RENEWAL
Mayumi K GlickCanadaAmy Elsner PROPOSAL
Costa X DilliardAustraliaAsiya Javayant PROPOSAL
Aruna U NickaSpainOnyama Limba NEGOTIATION
Nicolas Z FollerGermanyAnna Fali NEGOTIATION
Mujtaba U FlosiJapanAnna Fali NEGOTIATION
Aruna B RutaCanadaAnna Fali QUALIFIED
Mayumi D MarrierItalyStephen Shaw UNQUALIFIED
Morrow A StensethUnited KingdomIoni Bowcher RENEWAL
Sinclair Y WieserGermanyAmy Elsner NEW
Cody H NestleRussiaElwin Sharvill UNQUALIFIED
Claire S BriddickAustraliaAmy Elsner QUALIFIED
Kaitlin W NestleUnited KingdomStephen Shaw RENEWAL
Cody O ButtUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin E SaylorsRussiaBernardo Dominic UNQUALIFIED
Munro R BriddickFranceXuxue Feng QUALIFIED
Juan A SchemmerBrazilAnna Fali 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>