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
Ivar R NestleRussiaIoni Bowcher QUALIFIED
Octavia F TollnerCanadaBernardo Dominic RENEWAL
Kadeem F SchemmerItalyIvan Magalhaes NEW
Ashley A FerenczSpainStephen Shaw NEW
Ashley F CaldareraCanadaElwin Sharvill NEW
Murillo L MaletCanadaXuxue Feng RENEWAL
Aruna C MacleadSpainAsiya Javayant RENEWAL
David K BriddickGermanyBernardo Dominic NEGOTIATION
Jeanfrancois B NickaJapanStephen Shaw NEGOTIATION
Murillo U BriddickBrazilIoni Bowcher NEW
Salvatore O SaylorsCanadaAmy Elsner UNQUALIFIED
Faith G DilliardAustraliaOnyama Limba UNQUALIFIED
Kaitlin Q NickaUnited KingdomXuxue Feng QUALIFIED
Costa W CampainGermanyAmy Elsner RENEWAL
Emily N SaylorsAustraliaAnna Fali PROPOSAL
Francesco N KolmetzUnited KingdomAnna Fali NEGOTIATION
Kadeem Q SaylorsIndiaStephen Shaw NEW
Leon E NestleAustraliaBernardo Dominic QUALIFIED
James F SchemmerSpainAsiya Javayant RENEWAL
Jeanfrancois S InouyeFranceStephen Shaw PROPOSAL
Murillo A WaycottArgentinaIvan Magalhaes PROPOSAL
Jones K MaletBrazilXuxue Feng QUALIFIED
Maisha W DilliardSpainElwin Sharvill RENEWAL
Antonio M MarrierArgentinaElwin Sharvill RENEWAL
Arvin M RulapaughUnited KingdomAnna Fali NEW
Nicolas P GarufiBrazilIoni Bowcher QUALIFIED
Claire W FerenczRussiaAmy Elsner RENEWAL
Aditya F AlbaresArgentinaOnyama Limba QUALIFIED
Octavia X MaletJapanXuxue Feng PROPOSAL
Octavia J FerenczCanadaStephen Shaw UNQUALIFIED
Ivar I DarakjyJapanIoni Bowcher PROPOSAL
Ricardo Z RoysterIndiaAsiya Javayant QUALIFIED
Kadeem D AmigonCanadaOnyama Limba PROPOSAL
Silvio M StockhamCanadaAsiya Javayant UNQUALIFIED
Munro O StensethBrazilIvan Magalhaes PROPOSAL
Kadeem J RimArgentinaIoni Bowcher RENEWAL
Antonio W BologniaCanadaIvan Magalhaes QUALIFIED
Alejandro L RutaFranceIoni Bowcher NEGOTIATION
Clifford R FollerAustraliaAsiya Javayant QUALIFIED
Aditya L SlusarskiGermanyOnyama Limba RENEWAL
Alejandro R ChuiIndiaIvan Magalhaes PROPOSAL
Claire F ShinkoIndiaStephen Shaw PROPOSAL
Antonio Z NestleItalyAnna Fali RENEWAL
Ivar N GlickUnited KingdomAnna Fali NEW
Cody A SergiItalyAsiya Javayant PROPOSAL
Leon W BowleyUnited KingdomOnyama Limba RENEWAL
Leja Z RoysterRussiaStephen Shaw NEGOTIATION
Faith I TollnerCanadaAnna Fali RENEWAL
Kaitlin J InouyeSpainAsiya Javayant PROPOSAL
Greenwood H BriddickUnited KingdomAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow Y PaprockiFranceBernardo Dominic NEGOTIATION
Misaki L GlickGermanyIvan Magalhaes NEGOTIATION
Ricardo J RulapaughSpainAnna Fali PROPOSAL
Silvio B FigeroaGermanyElwin Sharvill QUALIFIED
Greenwood K MaletArgentinaXuxue Feng NEGOTIATION
Jeanfrancois V IturbideFranceAmy Elsner NEW
Emily V TollnerFranceAsiya Javayant UNQUALIFIED
Isabel G FlosiItalyOnyama Limba NEW
Misaki O DoeAustraliaAmy Elsner RENEWAL
Rodrigues E KolmetzCanadaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna G MaletRussia2026-10-08Rousseaux, Michael Esq QUALIFIED50Xuxue Feng
1001Antonio D ChuiUnited Kingdom2026-09-28Truhlar And Truhlar Attys QUALIFIED33Stephen Shaw
1002Greenwood F TollnerJapan2026-10-19Feiner Bros RENEWAL80Anna Fali
1003Jennifer X ShinkoBrazil2026-10-16Morlong Associates QUALIFIED18Ioni Bowcher
1004Maria M NestleBrazil2026-10-09Rousseaux, Michael Esq NEW30Ioni Bowcher
1005Leja Q WieserJapan2026-09-24Chemel, James L Cpa NEGOTIATION0Bernardo Dominic
1006David V FollerUnited Kingdom2026-09-30King, Christopher A Esq NEGOTIATION62Xuxue Feng
1007Nicolas Q KolmetzUnited Kingdom2026-10-14Chanay, Jeffrey A Esq UNQUALIFIED69Ioni Bowcher
1008Silvio K StockhamIndia2026-10-09Dorl, James J Esq NEW40Stephen Shaw
1009Claire W AlbaresSpain2026-10-08Chanay, Jeffrey A Esq NEW54Amy Elsner
1010Mujtaba Y CaudyCanada2026-10-05Benton, John B Jr NEGOTIATION54Onyama Limba
1011Jones Q WaycottCanada2026-09-29Rousseaux, Michael Esq RENEWAL73Ivan Magalhaes
1012Smith U InouyeCanada2026-10-04Truhlar And Truhlar Attys PROPOSAL98Amy Elsner
1013Silvio V DoeAustralia2026-09-23King, Christopher A Esq UNQUALIFIED65Ioni Bowcher
1014Isabel P MorascaArgentina2026-10-06Rangoni Of Florence UNQUALIFIED28Amy Elsner
1015Morrow H MacleadUnited Kingdom2026-10-03Rousseaux, Michael Esq NEGOTIATION71Elwin Sharvill
1016Aditya W CaldareraSpain2026-10-15Chapman, Ross E Esq PROPOSAL21Asiya Javayant
1017Rodrigues M RutaCanada2026-09-30Buckley Miller Wright UNQUALIFIED37Bernardo Dominic
1018Aditya S GillianRussia2026-09-25Printing Dimensions RENEWAL42Anna Fali
1019David F AmigonBrazil2026-10-20Benton, John B Jr NEGOTIATION0Xuxue Feng
1020Aika G NickaBrazil2026-10-05Printing Dimensions UNQUALIFIED43Bernardo Dominic
1021Wickens S SlusarskiJapan2026-10-18Chemel, James L Cpa NEW37Asiya Javayant
1022David F FerenczUnited Kingdom2026-10-02Chapman, Ross E Esq RENEWAL78Amy Elsner
1023Antonio H OstroskyUnited Kingdom2026-09-23Benton, John B Jr RENEWAL55Xuxue Feng
1024Misaki G BowleyCanada2026-10-20Feltz Printing Service QUALIFIED81Bernardo Dominic
1025Faith E ChuiAustralia2026-09-27Chemel, James L Cpa NEGOTIATION63Ioni Bowcher
1026Smith K CampainCanada2026-10-17Dorl, James J Esq NEGOTIATION90Asiya Javayant
1027Chavez I SlusarskiUnited Kingdom2026-10-12Rousseaux, Michael Esq QUALIFIED62Elwin Sharvill
1028Francesco I DilliardSpain2026-10-03King, Christopher A Esq NEGOTIATION85Amy Elsner
1029Stacey L FollerRussia2026-10-20Chanay, Jeffrey A Esq QUALIFIED66Xuxue Feng
1030Kaitlin N WaycottBrazil2026-10-07Rangoni Of Florence NEW22Ioni Bowcher
1031Ivar V FollerFrance2026-10-02Dorl, James J Esq RENEWAL63Ioni Bowcher
1032Nicolas T VenereIndia2026-10-08Commercial Press QUALIFIED23Xuxue Feng
1033Leon A SlusarskiRussia2026-10-05Dorl, James J Esq UNQUALIFIED69Stephen Shaw
1034Ashley U VenereCanada2026-10-10Feltz Printing Service NEW16Anna Fali
1035Francesco G NickaJapan2026-09-22Feltz Printing Service RENEWAL77Onyama Limba
1036Costa P TollnerAustralia2026-10-21Rousseaux, Michael Esq NEGOTIATION90Stephen Shaw
1037Julie V MacleadGermany2026-10-11Commercial Press NEGOTIATION21Xuxue Feng
1038Aruna N GarufiGermany2026-10-04Commercial Press NEW56Amy Elsner
1039Cody E SlusarskiJapan2026-10-03Commercial Press UNQUALIFIED21Bernardo Dominic
1040Adams G GarufiRussia2026-09-26Buckley Miller Wright RENEWAL69Ioni Bowcher
1041Misaki J CaldareraCanada2026-10-04Feiner Bros NEGOTIATION35Ivan Magalhaes
1042Aika D KuskoIndia2026-10-13Chanay, Jeffrey A Esq NEW40Ioni Bowcher
1043Salvatore O GauchoItaly2026-10-07Feltz Printing Service UNQUALIFIED10Anna Fali
1044Octavia Q PerinArgentina2026-09-28Dorl, James J Esq NEGOTIATION48Anna Fali
1045Leon G RutaUnited Kingdom2026-10-10King, Christopher A Esq NEW13Stephen Shaw
1046Deepesh B WhobreyGermany2026-10-19Chapman, Ross E Esq UNQUALIFIED78Elwin Sharvill
1047Aika L GillianBrazil2026-10-05Chemel, James L Cpa NEGOTIATION66Ivan Magalhaes
1048Johnson D GauchoArgentina2026-10-13Commercial Press PROPOSAL88Anna Fali
1049Aika E OldroydFrance2026-10-11Rousseaux, Michael Esq PROPOSAL46Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Tony M OstroskyItalyIoni Bowcher QUALIFIED
Maria R MarrierCanadaAmy Elsner QUALIFIED
Kaitlin Z BologniaIndiaIvan Magalhaes RENEWAL
Jones O ButtBrazilAmy Elsner UNQUALIFIED
Munro O DarakjyGermanyAsiya Javayant UNQUALIFIED
James H GarufiIndiaAmy Elsner PROPOSAL
David O VenereAustraliaXuxue Feng NEW
Adams G StockhamArgentinaBernardo Dominic NEGOTIATION
Ricardo M BologniaFranceIvan Magalhaes UNQUALIFIED
Stacey R OstroskyGermanyOnyama Limba QUALIFIED
Salvatore W TollnerCanadaAsiya Javayant QUALIFIED
Ivar A StensethSpainOnyama Limba NEGOTIATION
James H KolmetzItalyStephen Shaw UNQUALIFIED
Leja I CampainItalyIoni Bowcher NEW
Mayumi C MaletCanadaOnyama Limba RENEWAL
Mayumi V BologniaArgentinaBernardo Dominic PROPOSAL
Kaitlin Y SchemmerSpainElwin Sharvill UNQUALIFIED
Darci C CaldareraRussiaIvan Magalhaes NEW
Izzy W StockhamIndiaXuxue Feng RENEWAL
Arvin R BowleyJapanStephen Shaw QUALIFIED
Misaki G InouyeSpainOnyama Limba UNQUALIFIED
Kadeem G GillianAustraliaIoni Bowcher NEGOTIATION
Deepesh Y InouyeCanadaBernardo Dominic PROPOSAL
Mujtaba W ButtCanadaOnyama Limba NEW
Maisha H DarakjyBrazilElwin Sharvill RENEWAL
Chavez D TollnerJapanIvan Magalhaes PROPOSAL
Octavia R RimJapanAmy Elsner PROPOSAL
Kadeem T BowleySpainStephen Shaw NEW
Claire O VenereCanadaElwin Sharvill RENEWAL
Jones E OstroskyArgentinaAmy Elsner PROPOSAL
Leon N GauchoBrazilIoni Bowcher RENEWAL
Silvio E PoquetteIndiaIvan Magalhaes QUALIFIED
Julie J InouyeJapanIvan Magalhaes NEW
Maisha P MorascaArgentinaElwin Sharvill NEW
Mujtaba F KuskoArgentinaStephen Shaw NEW
Smith B KolmetzAustraliaBernardo Dominic UNQUALIFIED
Izzy B AlbaresAustraliaAnna Fali NEW
Jefferson Y PoquetteBrazilXuxue Feng RENEWAL
Izzy W RutaCanadaOnyama Limba RENEWAL
Misaki P ButtIndiaIvan Magalhaes RENEWAL
Mujtaba E BologniaItalyBernardo Dominic RENEWAL
Ivar M BowleyUnited KingdomAmy Elsner NEW
Leon L BriddickBrazilAsiya Javayant NEW
Alejandro I PerinUnited KingdomOnyama Limba NEW
Kaitlin T CaudyCanadaOnyama Limba NEW
Jones R DoeRussiaIvan Magalhaes UNQUALIFIED
Costa I MacleadBrazilOnyama Limba NEW
Ivar H ButtSpainIvan Magalhaes PROPOSAL
Jones W SlusarskiSpainBernardo Dominic PROPOSAL
Deepesh I BowleyBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Maisha X Perin
Mayumi B Stockham
Aditya R Perin
Jefferson M Bolognia
Ivar K Stenseth
Costa S Dilliard
David O Sergi
Leon B Wieser
Jennifer N Amigon
Aruna O Stockham
Jennifer D Ferencz
Sinclair E Albares
Antonio A Kusko
Adams R Vocelka
Aditya C Flosi
Leja E Gaucho
Tony O Bowley
Faith K Doe
Salvatore X Oldroyd
Alejandro I Kolmetz
Aditya M Malet
Sinclair S Bowley
Greenwood T Slusarski
Ivar T Stockham
Arvin R Kusko
Izzy Y Schemmer
Jones C Figeroa
Smith J Waycott
Aditya U Waycott
Emily A Gaucho
Ricardo D Maclead
Silvio S Nestle
Julie Q Sergi
Aditya C Bowley
Juan R Rim
Octavia S Saylors
Antonio G Royster
Wickens O Vocelka
Rodrigues W Waycott
Sinclair C Figeroa
Ashley K Oldroyd
Wickens Z Chui
Maria D Bowley
Johnson H Waycott
Ricardo Q Vocelka
Ricardo W Maclead
Chavez H Caudy
Deepesh N Gaucho
David E Waycott
Maisha Y Figeroa
IdCountryDate
1000Russia2026-10-19
1001India2026-10-19
1002Italy2026-10-03
1003Germany2026-09-27
1004Argentina2026-09-25
1005United Kingdom2026-10-15
1006Russia2026-10-20
1007Australia2026-10-08
1008Spain2026-10-04
1009Italy2026-09-30
1010Canada2026-10-01
1011United Kingdom2026-10-18
1012Brazil2026-10-15
1013Italy2026-09-28
1014Germany2026-10-16
1015United Kingdom2026-10-11
1016United Kingdom2026-10-12
1017Germany2026-10-07
1018Canada2026-10-07
1019Argentina2026-10-10
1020India2026-10-20
1021United Kingdom2026-10-06
1022United Kingdom2026-10-01
1023Spain2026-09-27
1024Italy2026-09-27
1025France2026-10-19
1026Italy2026-10-10
1027Australia2026-10-14
1028Japan2026-10-16
1029Italy2026-10-20
1030France2026-09-26
1031France2026-09-30
1032Japan2026-10-17
1033Italy2026-09-25
1034India2026-10-01
1035Germany2026-10-19
1036Japan2026-10-14
1037Japan2026-09-22
1038Russia2026-10-14
1039Brazil2026-10-02
1040Australia2026-09-28
1041Italy2026-10-15
1042Spain2026-10-18
1043Italy2026-10-13
1044Spain2026-09-30
1045India2026-09-29
1046Spain2026-10-17
1047India2026-10-07
1048France2026-09-27
1049Argentina2026-10-16

On-Demand Data

NameIdCountryDate
Octavia X Vocelka1000Russia2026-09-23
Munro A Amigon1001Brazil2026-10-12
Smith A Stenseth1002United Kingdom2026-09-23
Jones N Campain1003Canada2026-10-07
Jennifer I Morasca1004France2026-10-21
Munro V Malet1005Germany2026-10-03
Leon X Butt1006Argentina2026-10-14
Nicolas Z Vocelka1007Spain2026-10-08
Claire W Royster1008United Kingdom2026-09-22
Salvatore L Nicka1009Spain2026-10-20
Costa X Malet1010Argentina2026-09-24
Salvatore N Saylors1011United Kingdom2026-10-11
Isabel B Amigon1012Australia2026-09-26
Darci B Caldarera1013Italy2026-10-11
Cody R Ostrosky1014Canada2026-10-08
Salvatore N Kusko1015United Kingdom2026-09-26
Ricardo V Poquette1016Spain2026-10-18
Ivar L Garufi1017Brazil2026-09-23
Salvatore H Ruta1018Argentina2026-09-25
Munro R Tollner1019Spain2026-09-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas F NestleFranceAnna Fali NEGOTIATION
Mujtaba M DoeAustraliaElwin Sharvill PROPOSAL
Isabel X PaprockiJapanAsiya Javayant UNQUALIFIED
Morrow P FollerAustraliaBernardo Dominic NEW
Kaitlin O BologniaRussiaAmy Elsner RENEWAL
Francesco V PerinSpainElwin Sharvill QUALIFIED
Maria I IturbideBrazilAnna Fali PROPOSAL
Morrow A PaprockiCanadaAnna Fali NEW
Ivar B DarakjyAustraliaAsiya Javayant NEW
Izzy B SaylorsFranceIoni Bowcher NEGOTIATION
Aditya V AlbaresItalyBernardo Dominic RENEWAL
Costa M TollnerItalyAsiya Javayant UNQUALIFIED
Johnson V FollerJapanBernardo Dominic RENEWAL
Francesco B DarakjyArgentinaXuxue Feng UNQUALIFIED
Leon J GauchoRussiaIoni Bowcher QUALIFIED
Darci U MaletSpainOnyama Limba RENEWAL
Adams N IturbideRussiaAmy Elsner QUALIFIED
Murillo R MarrierItalyStephen Shaw NEW
Aditya X SaylorsArgentinaElwin Sharvill QUALIFIED
Wickens R RutaAustraliaElwin Sharvill UNQUALIFIED
David D RulapaughSpainAsiya Javayant UNQUALIFIED
Julie V WieserRussiaElwin Sharvill NEGOTIATION
Claire K MacleadRussiaXuxue Feng NEW
Izzy G FigeroaArgentinaAnna Fali QUALIFIED
Leja X WhobreyGermanyOnyama Limba RENEWAL
Mujtaba U SaylorsSpainIvan Magalhaes UNQUALIFIED
Rodrigues I PaprockiSpainBernardo Dominic NEGOTIATION
Chavez W WieserFranceAmy Elsner UNQUALIFIED
Misaki Q SergiItalyAmy Elsner NEGOTIATION
Morrow K GlickRussiaIvan Magalhaes UNQUALIFIED
Antonio Y RimJapanIoni Bowcher NEW
Maria G FlosiBrazilBernardo Dominic PROPOSAL
David N KolmetzSpainAnna Fali NEGOTIATION
Sinclair Y WieserBrazilIvan Magalhaes UNQUALIFIED
Johnson J InouyeIndiaAsiya Javayant QUALIFIED
Octavia X AlbaresBrazilStephen Shaw PROPOSAL
Aruna M TollnerJapanOnyama Limba PROPOSAL
Misaki Q RulapaughSpainIoni Bowcher NEGOTIATION
Murillo L WieserBrazilIoni Bowcher NEGOTIATION
Arvin F CampainItalyBernardo Dominic 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>