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
Ashley S BriddickBrazilAsiya Javayant UNQUALIFIED
Sinclair S SlusarskiJapanOnyama Limba RENEWAL
Wickens H IturbideIndiaIoni Bowcher NEGOTIATION
Sinclair G FerenczArgentinaAmy Elsner RENEWAL
Juan E RutaBrazilAnna Fali PROPOSAL
Nicolas G RulapaughGermanyAmy Elsner PROPOSAL
Cody H NestleIndiaXuxue Feng PROPOSAL
Salvatore R PerinSpainElwin Sharvill RENEWAL
Octavia H NickaUnited KingdomAnna Fali RENEWAL
Jones K WaycottGermanyElwin Sharvill NEW
Claire K ButtJapanBernardo Dominic RENEWAL
Nicolas U RoysterIndiaXuxue Feng QUALIFIED
Tony I MacleadFranceIoni Bowcher PROPOSAL
Stacey K RimItalyAnna Fali NEGOTIATION
Misaki A NestleSpainXuxue Feng UNQUALIFIED
Nicolas Z KolmetzAustraliaIoni Bowcher UNQUALIFIED
Aruna A DilliardFranceXuxue Feng NEGOTIATION
Nicolas G MacleadGermanyAmy Elsner PROPOSAL
Wickens Z WaycottGermanyAnna Fali QUALIFIED
Ricardo T CaudySpainBernardo Dominic PROPOSAL
Jones U FlosiGermanyAsiya Javayant PROPOSAL
Rodrigues W DoeGermanyElwin Sharvill NEGOTIATION
Smith I KuskoSpainIoni Bowcher QUALIFIED
Silvio R MaletItalyIoni Bowcher PROPOSAL
Tony F SlusarskiFranceElwin Sharvill NEGOTIATION
James K BologniaCanadaIoni Bowcher QUALIFIED
Jefferson Y WaycottJapanAsiya Javayant QUALIFIED
Julie J FollerIndiaBernardo Dominic NEW
Costa G AlbaresAustraliaOnyama Limba QUALIFIED
Arvin I BriddickAustraliaIoni Bowcher UNQUALIFIED
Aika I GillianBrazilOnyama Limba UNQUALIFIED
Julie G MacleadAustraliaAmy Elsner QUALIFIED
Izzy N WieserGermanyElwin Sharvill NEGOTIATION
Izzy O NestleCanadaIoni Bowcher NEW
Ricardo V FigeroaFranceBernardo Dominic UNQUALIFIED
Aruna Y RimGermanyOnyama Limba RENEWAL
Maisha T CampainArgentinaElwin Sharvill QUALIFIED
Mayumi M VenereItalyOnyama Limba RENEWAL
Johnson M InouyeIndiaStephen Shaw NEGOTIATION
Maria F FigeroaJapanAmy Elsner UNQUALIFIED
Jeanfrancois Z CaudyJapanIvan Magalhaes RENEWAL
Claire K MacleadSpainIoni Bowcher UNQUALIFIED
Emily K GillianAustraliaIoni Bowcher QUALIFIED
Claire Y MarrierRussiaXuxue Feng RENEWAL
Octavia D TollnerBrazilBernardo Dominic PROPOSAL
David T NickaRussiaElwin Sharvill QUALIFIED
Deepesh O SlusarskiItalyElwin Sharvill RENEWAL
Jefferson P FollerAustraliaIoni Bowcher NEGOTIATION
Kaitlin G PaprockiUnited KingdomStephen Shaw QUALIFIED
Wickens K NestleIndiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Maria I FlosiCanadaStephen Shaw NEGOTIATION
Octavia Y ShinkoAustraliaOnyama Limba NEW
Greenwood B GauchoItalyAmy Elsner NEW
Morrow O NestleUnited KingdomAnna Fali NEW
Costa I DoeFranceAsiya Javayant UNQUALIFIED
Chavez G CampainItalyIoni Bowcher PROPOSAL
Munro C StockhamFranceIoni Bowcher NEGOTIATION
Isabel H RimGermanyStephen Shaw PROPOSAL
Ricardo L ChuiJapanElwin Sharvill RENEWAL
Isabel I StensethIndiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer Y VenereSpain2026-10-02Morlong Associates PROPOSAL29Onyama Limba
1001Jones B NickaJapan2026-10-08Dorl, James J Esq NEGOTIATION23Bernardo Dominic
1002Izzy B RoysterIndia2026-10-19Chanay, Jeffrey A Esq RENEWAL33Elwin Sharvill
1003Greenwood J NestleCanada2026-09-30Buckley Miller Wright UNQUALIFIED68Elwin Sharvill
1004Ivar I MarrierFrance2026-09-30Chapman, Ross E Esq PROPOSAL19Onyama Limba
1005Kaitlin X DilliardSpain2026-10-01Chemel, James L Cpa NEGOTIATION51Onyama Limba
1006Aruna X OstroskyItaly2026-10-03Feltz Printing Service NEGOTIATION6Elwin Sharvill
1007Rodrigues J SlusarskiGermany2026-10-16Commercial Press PROPOSAL4Bernardo Dominic
1008Jennifer P WieserRussia2026-10-05Commercial Press NEGOTIATION39Ioni Bowcher
1009Cody H KuskoJapan2026-10-11Feiner Bros UNQUALIFIED21Stephen Shaw
1010Tony J DilliardBrazil2026-10-01Buckley Miller Wright RENEWAL52Ioni Bowcher
1011Aika X PoquetteSpain2026-10-01Commercial Press UNQUALIFIED30Ivan Magalhaes
1012Ivar Y ShinkoFrance2026-10-01Chapman, Ross E Esq RENEWAL21Onyama Limba
1013Mujtaba M GlickCanada2026-10-23Truhlar And Truhlar Attys UNQUALIFIED55Elwin Sharvill
1014Maria R PerinArgentina2026-10-18Morlong Associates NEW18Onyama Limba
1015Kadeem G RoysterArgentina2026-10-04Truhlar And Truhlar Attys RENEWAL1Anna Fali
1016Jeanfrancois L DoeFrance2026-10-02Feiner Bros PROPOSAL82Elwin Sharvill
1017Stacey Z RoysterAustralia2026-10-26Chapman, Ross E Esq UNQUALIFIED86Xuxue Feng
1018Kadeem Z MaletGermany2026-10-22Rangoni Of Florence NEW24Xuxue Feng
1019Claire M RoysterSpain2026-10-28Dorl, James J Esq UNQUALIFIED85Onyama Limba
1020Kaitlin S GillianJapan2026-10-20Rousseaux, Michael Esq NEGOTIATION9Onyama Limba
1021Jeanfrancois F DoeFrance2026-10-26Dorl, James J Esq NEW2Bernardo Dominic
1022Claire D DoeJapan2026-10-13Chemel, James L Cpa UNQUALIFIED32Ivan Magalhaes
1023Murillo N RimCanada2026-10-01Feltz Printing Service UNQUALIFIED68Elwin Sharvill
1024Aika K NickaBrazil2026-10-04Rousseaux, Michael Esq RENEWAL83Elwin Sharvill
1025Sinclair W SlusarskiGermany2026-10-01Rousseaux, Michael Esq NEGOTIATION49Onyama Limba
1026Johnson S WhobreyAustralia2026-10-18Dorl, James J Esq UNQUALIFIED57Ivan Magalhaes
1027Francesco A CampainGermany2026-10-26Feltz Printing Service UNQUALIFIED41Anna Fali
1028Morrow H OstroskyGermany2026-10-04Morlong Associates NEW61Elwin Sharvill
1029Salvatore X MaletJapan2026-10-01Truhlar And Truhlar Attys QUALIFIED24Anna Fali
1030Leja W GarufiJapan2026-10-06Buckley Miller Wright NEW37Asiya Javayant
1031Emily J GlickArgentina2026-10-06Benton, John B Jr RENEWAL30Onyama Limba
1032Tony S GlickJapan2026-10-24Truhlar And Truhlar Attys RENEWAL24Ivan Magalhaes
1033Octavia U DilliardCanada2026-10-21King, Christopher A Esq QUALIFIED42Anna Fali
1034Aika G ChuiUnited Kingdom2026-10-22Morlong Associates PROPOSAL17Anna Fali
1035Isabel H MaletJapan2026-10-26King, Christopher A Esq NEGOTIATION88Xuxue Feng
1036Murillo F CaudySpain2026-10-12Rousseaux, Michael Esq RENEWAL49Amy Elsner
1037Nicolas V CaudyGermany2026-10-24Rangoni Of Florence UNQUALIFIED28Anna Fali
1038James A IturbideGermany2026-10-14Chapman, Ross E Esq NEW15Elwin Sharvill
1039Francesco S AmigonItaly2026-10-21Benton, John B Jr UNQUALIFIED68Elwin Sharvill
1040Jefferson H GarufiAustralia2026-10-08Feiner Bros UNQUALIFIED92Elwin Sharvill
1041Francesco N InouyeAustralia2026-10-01Rousseaux, Michael Esq NEW68Elwin Sharvill
1042Emily O ShinkoArgentina2026-10-05Truhlar And Truhlar Attys NEW11Onyama Limba
1043Maisha A OstroskyJapan2026-10-26King, Christopher A Esq PROPOSAL66Stephen Shaw
1044Adams O StockhamBrazil2026-10-04Chemel, James L Cpa QUALIFIED25Elwin Sharvill
1045Darci M GauchoUnited Kingdom2026-10-22Dorl, James J Esq NEW95Onyama Limba
1046Ivar A BologniaFrance2026-10-10Chemel, James L Cpa RENEWAL15Xuxue Feng
1047Jefferson Q RulapaughFrance2026-10-17Feltz Printing Service RENEWAL96Stephen Shaw
1048Alejandro Z BowleyJapan2026-10-19Benton, John B Jr UNQUALIFIED45Anna Fali
1049Ashley D ButtGermany2026-10-03Chapman, Ross E Esq RENEWAL2Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues J ButtArgentinaAsiya Javayant NEW
Johnson K WaycottJapanBernardo Dominic PROPOSAL
Leon E AmigonBrazilAnna Fali PROPOSAL
Antonio P CampainJapanStephen Shaw NEW
Rodrigues Y MaletIndiaAmy Elsner UNQUALIFIED
Alejandro H MacleadSpainElwin Sharvill PROPOSAL
Aditya H OldroydBrazilXuxue Feng QUALIFIED
Maria O WhobreyRussiaAnna Fali RENEWAL
Nicolas D ButtSpainIoni Bowcher NEW
Juan Q OldroydGermanyXuxue Feng NEGOTIATION
Salvatore R MaletUnited KingdomAnna Fali NEW
Mujtaba H CampainSpainStephen Shaw UNQUALIFIED
Clifford C PerinFranceAmy Elsner NEW
Murillo K SergiCanadaIoni Bowcher NEW
James W VocelkaCanadaElwin Sharvill NEGOTIATION
Morrow J NickaBrazilIvan Magalhaes NEW
Murillo P GlickItalyXuxue Feng RENEWAL
Jeanfrancois G GauchoAustraliaStephen Shaw QUALIFIED
Jefferson X ShinkoArgentinaElwin Sharvill RENEWAL
Smith L PerinJapanStephen Shaw NEGOTIATION
Leon I GarufiBrazilElwin Sharvill PROPOSAL
Octavia X SlusarskiGermanyBernardo Dominic NEW
Rodrigues Z BowleyFranceXuxue Feng NEGOTIATION
Ashley J MacleadItalyXuxue Feng UNQUALIFIED
Mujtaba A DarakjyFranceAnna Fali NEGOTIATION
Leja E OldroydSpainOnyama Limba RENEWAL
Ricardo F GauchoJapanElwin Sharvill QUALIFIED
Mujtaba K OldroydItalyStephen Shaw PROPOSAL
Mujtaba W MacleadRussiaAsiya Javayant NEW
James L PerinGermanyStephen Shaw NEGOTIATION
Alejandro H OldroydCanadaBernardo Dominic UNQUALIFIED
Sinclair Z SaylorsItalyOnyama Limba NEGOTIATION
Jennifer D ChuiRussiaStephen Shaw NEW
Rodrigues E OstroskyCanadaIvan Magalhaes NEW
Julie Y PoquetteBrazilAsiya Javayant PROPOSAL
Isabel G GarufiRussiaElwin Sharvill UNQUALIFIED
Deepesh F VocelkaSpainOnyama Limba NEGOTIATION
Arvin G RulapaughArgentinaElwin Sharvill RENEWAL
Aika L IturbideIndiaIoni Bowcher PROPOSAL
Deepesh K GlickAustraliaOnyama Limba PROPOSAL
Greenwood K BriddickRussiaElwin Sharvill QUALIFIED
Munro A VocelkaRussiaAmy Elsner PROPOSAL
Antonio T GillianRussiaAnna Fali RENEWAL
Alejandro K MorascaFranceIoni Bowcher UNQUALIFIED
Emily S NestleRussiaElwin Sharvill NEGOTIATION
Salvatore X CaudyFranceAsiya Javayant PROPOSAL
Arvin H VenereIndiaIvan Magalhaes QUALIFIED
Antonio D VenereGermanyAmy Elsner NEGOTIATION
James S RoysterFranceIoni Bowcher NEGOTIATION
Sinclair G RulapaughIndiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Octavia H Royster
Alejandro H Glick
Maisha T Dilliard
Tony R Garufi
Arvin H Rim
Silvio I Schemmer
David T Kusko
Leon J Maclead
Jennifer A Oldroyd
Antonio M Dilliard
Morrow Q Nicka
Aditya J Tollner
Claire S Shinko
Ashley S Schemmer
Jeanfrancois P Marrier
Chavez B Malet
Aruna T Rim
Emily E Maclead
Maria D Gaucho
Clifford C Gillian
Sinclair I Ruta
Silvio P Caldarera
Kaitlin N Briddick
Ricardo Y Whobrey
Darci K Malet
Misaki G Perin
Stacey E Marrier
Silvio X Gaucho
Aditya F Malet
Juan W Bowley
Aditya K Doe
Nicolas L Briddick
Juan P Caudy
Aika U Rulapaugh
Aika D Tollner
Rodrigues J Rim
Claire C Bolognia
Leja R Maclead
Jefferson Y Rim
Maria K Waycott
Jones O Ostrosky
Cody I Wieser
Mujtaba N Tollner
Salvatore R Venere
Ashley S Malet
Aika O Doe
Darci A Whobrey
Misaki R Venere
Julie F Albares
Smith C Paprocki
IdCountryDate
1000Brazil2026-10-13
1001Brazil2026-10-20
1002France2026-10-02
1003Australia2026-10-06
1004Australia2026-10-09
1005Japan2026-10-27
1006India2026-09-30
1007Argentina2026-10-23
1008Italy2026-10-18
1009Russia2026-10-05
1010United Kingdom2026-10-13
1011Canada2026-10-11
1012Japan2026-10-08
1013United Kingdom2026-10-03
1014Brazil2026-10-24
1015Italy2026-10-04
1016Germany2026-10-10
1017Canada2026-10-21
1018Argentina2026-10-20
1019Germany2026-10-05
1020Argentina2026-10-01
1021Spain2026-10-08
1022Spain2026-10-26
1023Canada2026-10-14
1024Russia2026-10-16
1025France2026-10-04
1026Argentina2026-09-30
1027United Kingdom2026-10-12
1028Italy2026-10-10
1029Japan2026-09-29
1030Italy2026-10-16
1031Argentina2026-10-01
1032Germany2026-10-07
1033Australia2026-10-26
1034United Kingdom2026-10-27
1035Japan2026-10-13
1036Russia2026-10-10
1037India2026-10-04
1038Spain2026-09-29
1039Brazil2026-10-22
1040Russia2026-10-22
1041Spain2026-10-18
1042France2026-10-11
1043India2026-10-13
1044India2026-10-26
1045Russia2026-10-06
1046Spain2026-10-11
1047India2026-10-27
1048Canada2026-10-06
1049Italy2026-10-05

On-Demand Data

NameIdCountryDate
Juan Y Kolmetz1000India2026-10-01
Kaitlin J Iturbide1001Canada2026-09-29
James D Morasca1002Australia2026-09-30
Jones U Kolmetz1003Canada2026-10-19
Johnson Y Ostrosky1004Russia2026-10-16
Leon W Caudy1005Italy2026-10-24
Antonio G Vocelka1006Canada2026-09-30
Isabel X Stockham1007United Kingdom2026-10-01
Maisha U Marrier1008India2026-10-13
Leon H Stockham1009Canada2026-10-25
Emily J Albares1010Australia2026-10-26
Aditya Y Stockham1011India2026-10-15
Leon N Figeroa1012India2026-10-14
Greenwood C Vocelka1013France2026-10-02
Ricardo N Inouye1014Italy2026-09-30
Claire D Bolognia1015Italy2026-10-11
Salvatore Z Kusko1016United Kingdom2026-10-20
Wickens F Stenseth1017Spain2026-10-13
Francesco F Kusko1018United Kingdom2026-10-11
Leja B Gaucho1019United Kingdom2026-10-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco H ButtCanadaAmy Elsner RENEWAL
Ricardo N ChuiBrazilXuxue Feng PROPOSAL
Costa S StensethJapanXuxue Feng UNQUALIFIED
Aditya Q FollerCanadaOnyama Limba UNQUALIFIED
Darci N TollnerBrazilStephen Shaw PROPOSAL
Munro C BriddickGermanyIvan Magalhaes NEGOTIATION
Mayumi T DoeGermanyXuxue Feng QUALIFIED
Chavez Y FlosiSpainAnna Fali NEGOTIATION
Nicolas N SchemmerJapanIvan Magalhaes NEW
Kaitlin W MaletGermanyStephen Shaw NEGOTIATION
Francesco G AmigonAustraliaIoni Bowcher NEW
Emily W GillianItalyIvan Magalhaes NEGOTIATION
Ivar S GillianIndiaElwin Sharvill NEGOTIATION
Tony J AlbaresBrazilIvan Magalhaes QUALIFIED
Salvatore U StockhamAustraliaAnna Fali UNQUALIFIED
Francesco E BowleyUnited KingdomBernardo Dominic PROPOSAL
Jennifer E WhobreyFranceAsiya Javayant NEW
Rodrigues W KolmetzJapanBernardo Dominic RENEWAL
Faith T VenereArgentinaAsiya Javayant QUALIFIED
Jennifer F BowleyIndiaOnyama Limba PROPOSAL
Julie T CampainCanadaElwin Sharvill QUALIFIED
Wickens L WieserUnited KingdomOnyama Limba NEW
Antonio D ShinkoJapanOnyama Limba QUALIFIED
Deepesh G FlosiFranceBernardo Dominic QUALIFIED
Leon B WaycottAustraliaAnna Fali UNQUALIFIED
Isabel V SlusarskiBrazilIvan Magalhaes RENEWAL
Alejandro G FollerBrazilIvan Magalhaes PROPOSAL
Deepesh M FlosiFranceIoni Bowcher RENEWAL
Antonio T ShinkoIndiaAsiya Javayant RENEWAL
Ivar Q NestleFranceIoni Bowcher QUALIFIED
Antonio L CampainSpainStephen Shaw RENEWAL
Mayumi N NestleSpainAsiya Javayant RENEWAL
Murillo O StockhamAustraliaBernardo Dominic PROPOSAL
Francesco F StockhamFranceAsiya Javayant QUALIFIED
Aika V ButtItalyAnna Fali QUALIFIED
Salvatore L GauchoJapanAnna Fali NEGOTIATION
Salvatore T StockhamSpainStephen Shaw QUALIFIED
Greenwood Z WieserAustraliaBernardo Dominic UNQUALIFIED
Darci W GarufiSpainAsiya Javayant NEGOTIATION
Johnson G WaycottFranceStephen Shaw 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>