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 H WieserAustraliaOnyama Limba PROPOSAL
Clifford E RoysterCanadaAnna Fali PROPOSAL
James X AlbaresCanadaAsiya Javayant PROPOSAL
Faith V FigeroaGermanyElwin Sharvill NEGOTIATION
Wickens Y RutaUnited KingdomAnna Fali NEGOTIATION
Mujtaba F GlickAustraliaIvan Magalhaes PROPOSAL
Adams A TollnerArgentinaAnna Fali UNQUALIFIED
Misaki B AlbaresAustraliaAnna Fali UNQUALIFIED
Adams F IturbideUnited KingdomXuxue Feng NEW
Aditya W MaletBrazilAnna Fali PROPOSAL
Murillo U SchemmerGermanyOnyama Limba QUALIFIED
Sinclair O RutaItalyXuxue Feng NEGOTIATION
Munro I DoeSpainAmy Elsner NEGOTIATION
Leon A ShinkoBrazilStephen Shaw RENEWAL
James M SaylorsCanadaBernardo Dominic NEGOTIATION
Morrow I FlosiGermanyBernardo Dominic QUALIFIED
Maisha D WaycottAustraliaAmy Elsner QUALIFIED
Greenwood E OstroskyJapanStephen Shaw PROPOSAL
Darci Z WieserArgentinaStephen Shaw NEGOTIATION
Aika M PoquetteSpainOnyama Limba NEW
Aruna I MaletArgentinaAsiya Javayant PROPOSAL
Misaki R IturbideIndiaXuxue Feng UNQUALIFIED
Arvin Z DilliardCanadaIvan Magalhaes RENEWAL
Ricardo L MorascaSpainIvan Magalhaes NEGOTIATION
Claire K MorascaArgentinaStephen Shaw NEW
Leon J GillianGermanyStephen Shaw NEW
Julie F FlosiBrazilStephen Shaw RENEWAL
Emily Y AlbaresCanadaStephen Shaw UNQUALIFIED
Arvin C OldroydCanadaStephen Shaw PROPOSAL
Morrow C PerinFranceOnyama Limba NEW
Ricardo D RoysterAustraliaOnyama Limba UNQUALIFIED
Mayumi G AmigonItalyAsiya Javayant NEGOTIATION
Leja X DilliardSpainAsiya Javayant PROPOSAL
Izzy D AmigonSpainIvan Magalhaes QUALIFIED
Emily W BowleyArgentinaAmy Elsner QUALIFIED
Jennifer M TollnerUnited KingdomIoni Bowcher NEGOTIATION
Ashley I GauchoSpainIvan Magalhaes UNQUALIFIED
Kaitlin Q VenereRussiaXuxue Feng PROPOSAL
Munro W ShinkoJapanIoni Bowcher NEW
Morrow D VocelkaJapanIoni Bowcher RENEWAL
Maisha U PaprockiCanadaAmy Elsner UNQUALIFIED
Kadeem G BriddickItalyAnna Fali QUALIFIED
Leja C PerinIndiaIvan Magalhaes UNQUALIFIED
Clifford U VenereJapanElwin Sharvill RENEWAL
Leja L StockhamArgentinaBernardo Dominic PROPOSAL
Cody F RimArgentinaAsiya Javayant RENEWAL
Ivar Z BologniaCanadaAsiya Javayant PROPOSAL
Leja U OldroydFranceXuxue Feng UNQUALIFIED
Antonio G OstroskyItalyBernardo Dominic NEW
Ivar J GlickIndiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo W MarrierArgentinaIoni Bowcher QUALIFIED
Octavia I CaudyAustraliaStephen Shaw NEW
Rodrigues X SchemmerCanadaAmy Elsner NEW
Jones M AlbaresFranceIvan Magalhaes NEW
Aditya P OstroskyJapanOnyama Limba NEW
Murillo M VocelkaSpainAmy Elsner NEW
Murillo W SchemmerRussiaIoni Bowcher NEW
Morrow S PaprockiIndiaXuxue Feng QUALIFIED
Silvio P FerenczCanadaOnyama Limba RENEWAL
Izzy X PerinJapanStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow Q SergiRussia2026-11-03Benton, John B Jr NEW43Elwin Sharvill
1001Cody T RoysterItaly2026-10-28Rousseaux, Michael Esq QUALIFIED94Asiya Javayant
1002Emily K VenereItaly2026-10-15Rangoni Of Florence UNQUALIFIED58Onyama Limba
1003Wickens L OstroskyJapan2026-10-29Chanay, Jeffrey A Esq NEGOTIATION50Ivan Magalhaes
1004Deepesh F SaylorsItaly2026-11-02King, Christopher A Esq QUALIFIED46Anna Fali
1005Aika W FerenczGermany2026-11-01King, Christopher A Esq NEW52Stephen Shaw
1006Maisha M GauchoItaly2026-10-16Benton, John B Jr RENEWAL42Ioni Bowcher
1007Nicolas W WaycottFrance2026-10-29Morlong Associates NEW45Ioni Bowcher
1008Cody H InouyeRussia2026-10-22Benton, John B Jr QUALIFIED94Amy Elsner
1009Maisha N BologniaIndia2026-10-25King, Christopher A Esq PROPOSAL36Elwin Sharvill
1010Murillo Z BriddickIndia2026-10-24Feltz Printing Service PROPOSAL88Onyama Limba
1011Smith P VocelkaIndia2026-10-30King, Christopher A Esq NEW28Stephen Shaw
1012Ivar J KuskoJapan2026-10-19Rousseaux, Michael Esq RENEWAL1Xuxue Feng
1013Izzy S CaudyCanada2026-10-21Rousseaux, Michael Esq RENEWAL7Elwin Sharvill
1014Julie P SchemmerArgentina2026-10-18Rangoni Of Florence UNQUALIFIED8Ivan Magalhaes
1015Maisha L FerenczRussia2026-10-30Chanay, Jeffrey A Esq RENEWAL48Xuxue Feng
1016Aruna Y MorascaUnited Kingdom2026-10-22Printing Dimensions UNQUALIFIED73Asiya Javayant
1017Silvio A WieserAustralia2026-11-03Chanay, Jeffrey A Esq PROPOSAL14Onyama Limba
1018Emily A KolmetzItaly2026-10-26Morlong Associates PROPOSAL60Stephen Shaw
1019Munro F StensethBrazil2026-10-14Feiner Bros QUALIFIED78Stephen Shaw
1020Smith T FigeroaAustralia2026-10-21Chemel, James L Cpa RENEWAL51Xuxue Feng
1021Silvio I WieserRussia2026-10-26Chapman, Ross E Esq NEW22Onyama Limba
1022Nicolas O CampainUnited Kingdom2026-10-28Morlong Associates NEGOTIATION48Ivan Magalhaes
1023Wickens K StockhamGermany2026-10-18Printing Dimensions RENEWAL24Bernardo Dominic
1024Murillo E OstroskyBrazil2026-10-20King, Christopher A Esq NEGOTIATION99Xuxue Feng
1025Arvin Y RutaBrazil2026-10-26Printing Dimensions QUALIFIED16Bernardo Dominic
1026Maria B NickaCanada2026-10-24Feltz Printing Service QUALIFIED64Ivan Magalhaes
1027Nicolas D OldroydCanada2026-11-11Benton, John B Jr PROPOSAL92Stephen Shaw
1028Silvio U PaprockiRussia2026-10-29Chapman, Ross E Esq NEW32Stephen Shaw
1029Faith R NickaGermany2026-10-20Feltz Printing Service RENEWAL18Stephen Shaw
1030James S VocelkaIndia2026-10-21Morlong Associates NEW95Bernardo Dominic
1031Clifford G SergiArgentina2026-11-12Truhlar And Truhlar Attys NEGOTIATION34Anna Fali
1032Ivar C SlusarskiItaly2026-11-07Chemel, James L Cpa PROPOSAL61Asiya Javayant
1033Faith K RoysterFrance2026-11-08Truhlar And Truhlar Attys NEGOTIATION57Onyama Limba
1034James W CaldareraArgentina2026-11-08Buckley Miller Wright RENEWAL55Stephen Shaw
1035Julie B RoysterRussia2026-11-11Chapman, Ross E Esq QUALIFIED72Bernardo Dominic
1036Adams B SlusarskiAustralia2026-11-10Buckley Miller Wright NEW61Asiya Javayant
1037Silvio N ShinkoSpain2026-10-14Chemel, James L Cpa NEGOTIATION98Amy Elsner
1038Juan A PerinAustralia2026-10-15King, Christopher A Esq PROPOSAL52Ioni Bowcher
1039Jeanfrancois H GauchoIndia2026-10-27Chanay, Jeffrey A Esq NEW79Bernardo Dominic
1040Clifford Z SlusarskiArgentina2026-10-16Buckley Miller Wright RENEWAL79Xuxue Feng
1041Deepesh N TollnerBrazil2026-10-31Buckley Miller Wright NEW45Stephen Shaw
1042Leon W PerinArgentina2026-10-24Benton, John B Jr RENEWAL26Onyama Limba
1043Misaki J CampainArgentina2026-10-21Buckley Miller Wright QUALIFIED92Onyama Limba
1044Wickens E KolmetzGermany2026-10-14Dorl, James J Esq PROPOSAL25Ioni Bowcher
1045Chavez L WaycottJapan2026-11-11Morlong Associates QUALIFIED81Xuxue Feng
1046David Q MaletItaly2026-10-20Truhlar And Truhlar Attys UNQUALIFIED25Ivan Magalhaes
1047Aika C NestleBrazil2026-10-22Rousseaux, Michael Esq RENEWAL25Amy Elsner
1048Leon F BologniaUnited Kingdom2026-10-24Chemel, James L Cpa UNQUALIFIED31Bernardo Dominic
1049Jennifer N KolmetzIndia2026-11-05Rangoni Of Florence QUALIFIED21Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
James S IturbideJapanStephen Shaw NEGOTIATION
Greenwood Q GlickBrazilAsiya Javayant UNQUALIFIED
James S VocelkaItalyXuxue Feng NEGOTIATION
Munro I KolmetzRussiaXuxue Feng NEW
Wickens J FerenczFranceStephen Shaw NEW
Mayumi M GarufiUnited KingdomBernardo Dominic NEGOTIATION
Darci V FlosiGermanyAmy Elsner NEW
Silvio K OldroydJapanBernardo Dominic NEGOTIATION
Julie Y AmigonGermanyAmy Elsner UNQUALIFIED
Juan E MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Morrow U ShinkoJapanIvan Magalhaes RENEWAL
Munro K VocelkaAustraliaStephen Shaw PROPOSAL
Cody O CaldareraSpainStephen Shaw PROPOSAL
Johnson H CaudyArgentinaAnna Fali QUALIFIED
Leja C MaletArgentinaIoni Bowcher UNQUALIFIED
Rodrigues D MorascaItalyXuxue Feng NEW
Emily B BriddickJapanAsiya Javayant UNQUALIFIED
Juan H SchemmerItalyOnyama Limba NEW
Morrow Z BologniaAustraliaIoni Bowcher PROPOSAL
Jones B MorascaItalyAsiya Javayant NEW
Leon V AlbaresRussiaAmy Elsner PROPOSAL
Leja H NickaAustraliaIvan Magalhaes NEW
Ashley T CampainSpainElwin Sharvill RENEWAL
Chavez W BowleyFranceAmy Elsner NEGOTIATION
Sinclair Q ChuiJapanElwin Sharvill QUALIFIED
Juan N SlusarskiFranceAmy Elsner RENEWAL
Jones T FerenczGermanyAmy Elsner NEGOTIATION
Chavez M InouyeSpainXuxue Feng RENEWAL
Ivar X RoysterSpainAnna Fali UNQUALIFIED
Murillo F PerinArgentinaStephen Shaw QUALIFIED
Costa J VenereCanadaIvan Magalhaes PROPOSAL
Wickens O MaletSpainAmy Elsner NEGOTIATION
Mayumi I VocelkaAustraliaElwin Sharvill NEW
Isabel W MaletItalyAnna Fali QUALIFIED
Faith C CaldareraFranceOnyama Limba NEW
Ivar X RoysterJapanAnna Fali NEW
Kaitlin J VocelkaBrazilAnna Fali NEGOTIATION
Arvin R WhobreyGermanyIvan Magalhaes RENEWAL
Arvin X RulapaughSpainStephen Shaw NEW
Emily T KolmetzArgentinaStephen Shaw NEGOTIATION
Jeanfrancois F DarakjyGermanyIoni Bowcher NEGOTIATION
Aditya E CaudyCanadaAmy Elsner PROPOSAL
Leon V GauchoFranceElwin Sharvill UNQUALIFIED
Smith Y MaletJapanAmy Elsner UNQUALIFIED
Darci L AmigonFranceOnyama Limba QUALIFIED
Kaitlin L SlusarskiBrazilStephen Shaw RENEWAL
Adams Z GlickRussiaStephen Shaw NEGOTIATION
Stacey B DarakjyItalyBernardo Dominic PROPOSAL
Emily N CaudySpainIoni Bowcher NEGOTIATION
Silvio W FerenczItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Claire E Caudy
Jones L Stockham
Maria H Malet
Aruna V Gillian
Munro P Schemmer
Cody H Campain
Leja R Bowley
Francesco K Amigon
Francesco G Campain
Adams W Malet
Octavia V Stockham
Chavez D Ruta
Morrow H Sergi
Juan F Rulapaugh
Johnson C Ferencz
Stacey A Doe
Nicolas N Morasca
Silvio H Gaucho
Misaki U Nestle
Faith N Shinko
Kadeem K Shinko
Salvatore X Albares
Kadeem V Malet
James V Albares
Izzy Q Royster
Aditya R Malet
Misaki M Waycott
Mayumi Y Wieser
Jones W Maclead
Julie X Malet
Alejandro G Stenseth
Faith G Wieser
Stacey B Shinko
Jefferson L Kolmetz
Izzy T Foller
David G Rim
Wickens F Albares
Tony W Darakjy
Rodrigues D Royster
Stacey V Caldarera
Claire L Perin
Juan R Shinko
Alejandro H Rim
Arvin D Briddick
Cody E Maclead
Johnson N Sergi
Clifford T Shinko
Isabel B Albares
Jones O Iturbide
Nicolas W Campain
IdCountryDate
1000Germany2026-10-16
1001Italy2026-10-29
1002Brazil2026-10-22
1003France2026-10-28
1004Brazil2026-11-12
1005Spain2026-11-09
1006India2026-10-21
1007Australia2026-10-28
1008Italy2026-11-06
1009Canada2026-11-08
1010India2026-10-18
1011France2026-10-18
1012Canada2026-10-24
1013France2026-11-12
1014Australia2026-11-03
1015India2026-10-19
1016Germany2026-10-25
1017Argentina2026-10-14
1018Canada2026-11-06
1019India2026-11-05
1020Brazil2026-10-24
1021Canada2026-10-17
1022India2026-10-18
1023Australia2026-10-27
1024Canada2026-11-08
1025Russia2026-10-20
1026Canada2026-11-09
1027Germany2026-10-27
1028Spain2026-10-31
1029Russia2026-10-26
1030India2026-10-31
1031United Kingdom2026-10-15
1032Argentina2026-10-15
1033Canada2026-10-14
1034India2026-11-12
1035France2026-11-12
1036Italy2026-10-31
1037Brazil2026-11-04
1038Brazil2026-11-06
1039Spain2026-10-14
1040Russia2026-11-02
1041France2026-10-23
1042Russia2026-11-12
1043Russia2026-11-03
1044Japan2026-11-01
1045Spain2026-11-02
1046Italy2026-10-18
1047Russia2026-11-01
1048Argentina2026-10-23
1049France2026-10-24

On-Demand Data

NameIdCountryDate
Costa N Ferencz1000Brazil2026-10-18
Stacey H Shinko1001Italy2026-11-04
Francesco K Malet1002Italy2026-10-31
Adams H Maclead1003Australia2026-11-11
Munro W Schemmer1004United Kingdom2026-11-04
Costa O Ruta1005Japan2026-11-08
Ricardo Q Slusarski1006France2026-10-27
Jennifer I Ferencz1007Australia2026-10-21
Wickens P Foller1008India2026-10-19
Misaki E Nicka1009United Kingdom2026-10-15
Aruna F Schemmer1010France2026-10-23
Arvin K Bolognia1011India2026-10-26
Octavia A Oldroyd1012Brazil2026-10-30
Leon F Garufi1013Germany2026-10-20
Maisha U Glick1014Germany2026-10-22
Arvin J Poquette1015United Kingdom2026-11-01
Claire F Marrier1016Italy2026-11-04
Kadeem R Sergi1017Japan2026-11-05
Kadeem A Rim1018Canada2026-10-31
Salvatore A Kolmetz1019Australia2026-10-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem C WaycottFranceIvan Magalhaes PROPOSAL
Tony R DoeGermanyBernardo Dominic RENEWAL
Deepesh Y DoeItalyAmy Elsner QUALIFIED
Morrow C SchemmerArgentinaXuxue Feng UNQUALIFIED
Julie K MarrierFranceAmy Elsner NEGOTIATION
Octavia T FollerRussiaAnna Fali NEW
Octavia H OstroskyAustraliaElwin Sharvill PROPOSAL
Aditya G StockhamJapanBernardo Dominic QUALIFIED
Cody F MorascaJapanAmy Elsner PROPOSAL
Aditya X TollnerJapanIoni Bowcher QUALIFIED
Clifford C SergiCanadaOnyama Limba NEW
Maria A DilliardUnited KingdomAnna Fali UNQUALIFIED
Ivar U MorascaFranceStephen Shaw NEGOTIATION
Misaki C MacleadIndiaIoni Bowcher NEGOTIATION
Costa E DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo P InouyeAustraliaAsiya Javayant NEGOTIATION
Stacey V OldroydIndiaXuxue Feng NEGOTIATION
Ashley C RoysterBrazilIvan Magalhaes RENEWAL
Jennifer D RulapaughFranceBernardo Dominic NEW
Julie E CampainSpainBernardo Dominic NEW
Aruna V BowleyBrazilBernardo Dominic PROPOSAL
Murillo Q MaletFranceStephen Shaw NEW
Octavia H WhobreyJapanBernardo Dominic PROPOSAL
Costa H DoeJapanAmy Elsner PROPOSAL
Cody J CaldareraArgentinaBernardo Dominic PROPOSAL
Jeanfrancois N GarufiSpainElwin Sharvill UNQUALIFIED
Tony R PaprockiArgentinaAsiya Javayant RENEWAL
Alejandro I InouyeArgentinaAmy Elsner QUALIFIED
Rodrigues X SlusarskiBrazilXuxue Feng NEGOTIATION
David U FlosiJapanElwin Sharvill NEGOTIATION
Ashley U DoeSpainAnna Fali QUALIFIED
Francesco C StockhamBrazilOnyama Limba UNQUALIFIED
Jefferson G BowleyCanadaStephen Shaw QUALIFIED
Julie V NickaJapanAnna Fali NEGOTIATION
Jeanfrancois E OstroskyJapanIoni Bowcher PROPOSAL
Munro H NickaSpainAsiya Javayant RENEWAL
James G SaylorsBrazilAnna Fali NEGOTIATION
Emily I DoeJapanBernardo Dominic RENEWAL
Kaitlin N NestleAustraliaIvan Magalhaes RENEWAL
Jeanfrancois M GlickJapanAmy Elsner UNQUALIFIED

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