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
Deepesh D SaylorsCanadaXuxue Feng UNQUALIFIED
Emily W VocelkaJapanAsiya Javayant NEGOTIATION
Salvatore A RimItalyXuxue Feng QUALIFIED
Octavia I KuskoUnited KingdomAmy Elsner RENEWAL
Murillo G KolmetzFranceIvan Magalhaes RENEWAL
Alejandro K InouyeBrazilOnyama Limba QUALIFIED
Adams J DarakjyArgentinaAnna Fali PROPOSAL
Maisha V OldroydBrazilIoni Bowcher PROPOSAL
Cody Y RoysterRussiaIoni Bowcher RENEWAL
Claire Y NestleAustraliaAmy Elsner UNQUALIFIED
Aika J ChuiUnited KingdomXuxue Feng RENEWAL
Silvio S MarrierBrazilStephen Shaw UNQUALIFIED
Octavia C RimAustraliaAsiya Javayant PROPOSAL
Chavez S RutaBrazilIoni Bowcher QUALIFIED
Ricardo M CaldareraSpainElwin Sharvill NEW
Maria F CaudySpainAmy Elsner NEGOTIATION
David M FlosiArgentinaStephen Shaw RENEWAL
Jeanfrancois L GarufiJapanAnna Fali NEW
Julie O WaycottItalyElwin Sharvill RENEWAL
Tony B CaldareraUnited KingdomXuxue Feng RENEWAL
Adams R VenereRussiaOnyama Limba NEW
Misaki I FigeroaGermanyIoni Bowcher UNQUALIFIED
Chavez K StensethGermanyBernardo Dominic NEGOTIATION
Mujtaba Z GlickGermanyElwin Sharvill PROPOSAL
Mujtaba L FollerItalyAmy Elsner NEGOTIATION
Silvio W NickaIndiaAsiya Javayant RENEWAL
Maria C PoquetteJapanAnna Fali RENEWAL
Cody T RulapaughGermanyIvan Magalhaes UNQUALIFIED
Octavia O VocelkaFranceIvan Magalhaes RENEWAL
Aika U KolmetzAustraliaXuxue Feng QUALIFIED
James P AlbaresBrazilStephen Shaw NEW
Faith O VenereArgentinaElwin Sharvill NEW
James R KolmetzItalyBernardo Dominic UNQUALIFIED
Claire J StockhamArgentinaBernardo Dominic NEGOTIATION
Morrow P PerinJapanIoni Bowcher NEW
Salvatore W AlbaresRussiaBernardo Dominic QUALIFIED
Costa Z FigeroaSpainBernardo Dominic QUALIFIED
Izzy Z ShinkoAustraliaOnyama Limba PROPOSAL
Aruna C KuskoIndiaAnna Fali NEGOTIATION
Ashley V StensethIndiaOnyama Limba RENEWAL
Silvio U KolmetzRussiaBernardo Dominic NEGOTIATION
Leon V FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Emily K BowleyArgentinaElwin Sharvill NEGOTIATION
Deepesh C WieserRussiaOnyama Limba QUALIFIED
Tony A PerinFranceXuxue Feng NEGOTIATION
Mayumi P DoeRussiaIoni Bowcher UNQUALIFIED
Arvin Y MorascaIndiaIoni Bowcher QUALIFIED
Faith X TollnerArgentinaOnyama Limba UNQUALIFIED
Morrow L BologniaJapanAnna Fali NEW
Costa A FollerRussiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley H StockhamItalyStephen Shaw NEW
Tony V BowleyFranceXuxue Feng UNQUALIFIED
Clifford Z WaycottIndiaXuxue Feng PROPOSAL
Adams Q DilliardArgentinaElwin Sharvill UNQUALIFIED
Deepesh S FigeroaItalyBernardo Dominic PROPOSAL
Stacey M FlosiFranceAmy Elsner NEW
Juan J RimRussiaIoni Bowcher PROPOSAL
Stacey J MaletItalyStephen Shaw UNQUALIFIED
Munro O WhobreyCanadaOnyama Limba RENEWAL
Smith S WaycottSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore Z GauchoBrazil2026-08-24Chapman, Ross E Esq PROPOSAL2Ivan Magalhaes
1001Aditya N SaylorsGermany2026-09-11Rangoni Of Florence QUALIFIED72Anna Fali
1002Nicolas D FigeroaIndia2026-08-28Rangoni Of Florence PROPOSAL59Ioni Bowcher
1003Isabel T VenereIndia2026-09-11Buckley Miller Wright QUALIFIED49Elwin Sharvill
1004Claire X StensethIndia2026-09-03Morlong Associates UNQUALIFIED69Anna Fali
1005Misaki P StockhamBrazil2026-09-05Commercial Press NEW14Bernardo Dominic
1006Costa C WaycottBrazil2026-09-14Chapman, Ross E Esq NEGOTIATION88Anna Fali
1007Smith H NestleCanada2026-08-23Rangoni Of Florence RENEWAL32Elwin Sharvill
1008Cody U ButtJapan2026-08-31Rousseaux, Michael Esq NEW80Amy Elsner
1009Antonio B IturbideItaly2026-08-31Benton, John B Jr NEGOTIATION45Elwin Sharvill
1010Kadeem D WaycottCanada2026-09-20Chemel, James L Cpa NEW51Ivan Magalhaes
1011Tony U NickaJapan2026-09-07Morlong Associates NEW82Amy Elsner
1012Munro I OstroskyFrance2026-09-15Chapman, Ross E Esq NEW2Stephen Shaw
1013Leja W CaldareraGermany2026-09-14Chanay, Jeffrey A Esq UNQUALIFIED13Anna Fali
1014Silvio O IturbideSpain2026-08-27Chanay, Jeffrey A Esq NEGOTIATION74Asiya Javayant
1015James Q MarrierSpain2026-08-26Printing Dimensions PROPOSAL19Onyama Limba
1016Chavez U DarakjyIndia2026-09-11Rangoni Of Florence RENEWAL20Stephen Shaw
1017David P GarufiSpain2026-09-06Morlong Associates NEW99Elwin Sharvill
1018Emily N NestleRussia2026-08-22Benton, John B Jr NEW58Asiya Javayant
1019Tony J MaletBrazil2026-09-15Chanay, Jeffrey A Esq RENEWAL13Anna Fali
1020Costa K WieserSpain2026-09-01Morlong Associates NEW47Anna Fali
1021Johnson Q GarufiGermany2026-09-08Chemel, James L Cpa NEGOTIATION72Bernardo Dominic
1022Mujtaba A VocelkaJapan2026-08-24Chemel, James L Cpa QUALIFIED99Onyama Limba
1023Emily H DoeUnited Kingdom2026-09-05Benton, John B Jr NEW65Amy Elsner
1024Cody F RutaItaly2026-09-03Printing Dimensions UNQUALIFIED96Ioni Bowcher
1025Alejandro C OstroskyItaly2026-09-03Printing Dimensions UNQUALIFIED93Asiya Javayant
1026Leon P OldroydRussia2026-08-30Commercial Press NEW97Anna Fali
1027Antonio J CampainSpain2026-09-20Printing Dimensions NEW33Stephen Shaw
1028Smith R KuskoItaly2026-09-13Printing Dimensions NEGOTIATION95Anna Fali
1029Cody H GauchoUnited Kingdom2026-09-17Truhlar And Truhlar Attys RENEWAL8Bernardo Dominic
1030Greenwood H TollnerAustralia2026-08-30Feiner Bros UNQUALIFIED56Stephen Shaw
1031Greenwood S MaletCanada2026-09-20Morlong Associates PROPOSAL69Asiya Javayant
1032Aditya D BowleyBrazil2026-08-22King, Christopher A Esq NEGOTIATION23Amy Elsner
1033Juan N AlbaresArgentina2026-08-29Truhlar And Truhlar Attys QUALIFIED69Xuxue Feng
1034Rodrigues V StensethIndia2026-09-04Dorl, James J Esq NEGOTIATION76Stephen Shaw
1035Julie V DarakjyBrazil2026-09-13Rangoni Of Florence NEW44Ioni Bowcher
1036Darci Z CaldareraGermany2026-09-14Rousseaux, Michael Esq QUALIFIED86Elwin Sharvill
1037Leon K WieserCanada2026-09-18Benton, John B Jr UNQUALIFIED44Amy Elsner
1038Emily Q NickaRussia2026-09-04Buckley Miller Wright UNQUALIFIED93Anna Fali
1039Jennifer N NickaBrazil2026-08-23Rousseaux, Michael Esq RENEWAL20Xuxue Feng
1040Aditya I PerinAustralia2026-09-02Chemel, James L Cpa PROPOSAL97Ioni Bowcher
1041Ivar J DilliardItaly2026-08-24Morlong Associates RENEWAL81Ivan Magalhaes
1042Ricardo T OldroydSpain2026-09-13Rousseaux, Michael Esq NEGOTIATION93Anna Fali
1043Aika U ShinkoSpain2026-08-27Feltz Printing Service RENEWAL30Amy Elsner
1044Jefferson F MorascaIndia2026-08-22Chapman, Ross E Esq PROPOSAL32Stephen Shaw
1045Mayumi K CaudyCanada2026-09-20King, Christopher A Esq RENEWAL8Xuxue Feng
1046Jeanfrancois M SchemmerIndia2026-09-08Chanay, Jeffrey A Esq RENEWAL43Onyama Limba
1047Salvatore B RutaBrazil2026-09-10Chemel, James L Cpa QUALIFIED90Anna Fali
1048Adams T PaprockiBrazil2026-09-15Truhlar And Truhlar Attys QUALIFIED14Asiya Javayant
1049Leon S WieserFrance2026-09-06Printing Dimensions NEGOTIATION15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jefferson G TollnerArgentinaStephen Shaw UNQUALIFIED
Alejandro R BowleyFranceAnna Fali UNQUALIFIED
Munro V PoquetteArgentinaXuxue Feng UNQUALIFIED
Misaki P ShinkoIndiaOnyama Limba NEW
Johnson W RimFranceAmy Elsner QUALIFIED
Clifford U ShinkoAustraliaElwin Sharvill RENEWAL
Julie V DilliardItalyAnna Fali PROPOSAL
David C BowleySpainAnna Fali NEW
Kadeem W PoquetteIndiaBernardo Dominic PROPOSAL
Sinclair U MarrierJapanAmy Elsner NEW
Wickens J AmigonGermanyIoni Bowcher UNQUALIFIED
Jennifer R PerinAustraliaAsiya Javayant NEW
Maria G MacleadBrazilAmy Elsner UNQUALIFIED
Johnson U DilliardIndiaElwin Sharvill UNQUALIFIED
Ashley L AlbaresFranceBernardo Dominic QUALIFIED
Aruna I BologniaSpainIoni Bowcher NEGOTIATION
Julie S GillianIndiaStephen Shaw NEW
Jefferson U BologniaFranceIvan Magalhaes RENEWAL
Antonio H WaycottFranceIvan Magalhaes QUALIFIED
Adams G WieserBrazilElwin Sharvill UNQUALIFIED
Smith G NickaBrazilIvan Magalhaes NEW
Maisha E SaylorsFranceBernardo Dominic NEGOTIATION
Jones L FerenczCanadaIvan Magalhaes NEW
Misaki G OstroskyAustraliaIoni Bowcher QUALIFIED
Misaki Y MorascaCanadaIvan Magalhaes NEW
Aika Y ShinkoJapanIvan Magalhaes NEW
Deepesh I BologniaSpainOnyama Limba UNQUALIFIED
Sinclair W PaprockiFranceBernardo Dominic NEW
Izzy Y CaudyUnited KingdomXuxue Feng PROPOSAL
Mujtaba X WhobreyFranceAnna Fali RENEWAL
Rodrigues W RoysterItalyXuxue Feng NEGOTIATION
Izzy Z OldroydItalyOnyama Limba QUALIFIED
Johnson T AmigonCanadaAsiya Javayant PROPOSAL
Wickens A StockhamIndiaXuxue Feng QUALIFIED
Faith J SaylorsIndiaBernardo Dominic NEW
Smith V RoysterArgentinaBernardo Dominic RENEWAL
Izzy K GarufiSpainIvan Magalhaes NEGOTIATION
Rodrigues I WhobreyItalyAsiya Javayant UNQUALIFIED
Ricardo N WhobreyJapanIoni Bowcher QUALIFIED
Aditya N CaldareraItalyXuxue Feng NEW
Julie T KuskoAustraliaXuxue Feng PROPOSAL
Maria Q RoysterCanadaElwin Sharvill UNQUALIFIED
Claire W OstroskyJapanXuxue Feng UNQUALIFIED
Julie G BologniaArgentinaIoni Bowcher NEGOTIATION
Greenwood Y ButtRussiaIoni Bowcher UNQUALIFIED
Misaki X DilliardArgentinaAmy Elsner QUALIFIED
Smith P WhobreyFranceIvan Magalhaes PROPOSAL
Aditya K GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood P MorascaFranceOnyama Limba QUALIFIED
Isabel X WhobreyRussiaOnyama Limba NEW
Frozen Columns
Name
James Y Gaucho
Silvio R Darakjy
Jones O Nicka
Johnson S Kolmetz
Aika T Waycott
Kadeem B Flosi
Ricardo N Schemmer
Clifford P Schemmer
Ivar N Tollner
Sinclair B Morasca
Stacey J Foller
Aditya T Briddick
Aika C Maclead
Izzy L Briddick
Jeanfrancois J Albares
Julie A Morasca
Ricardo A Malet
Faith C Tollner
Cody L Saylors
Ashley L Schemmer
Rodrigues O Stenseth
Antonio K Wieser
Alejandro V Morasca
Kadeem F Perin
Tony P Rulapaugh
Mayumi V Rim
Faith L Ostrosky
Leja T Nicka
Jeanfrancois E Morasca
Ricardo B Maclead
Maisha U Inouye
Misaki Y Flosi
Smith S Nicka
Smith V Royster
Chavez Q Oldroyd
Julie W Nestle
Mayumi G Doe
Darci H Amigon
Rodrigues W Foller
Costa Z Rulapaugh
Leon B Campain
Leon S Doe
Izzy Q Morasca
Jefferson P Inouye
Morrow R Flosi
Morrow P Chui
Smith G Rim
Claire R Schemmer
Arvin C Flosi
Rodrigues F Venere
IdCountryDate
1000Japan2026-08-26
1001Brazil2026-09-08
1002India2026-09-18
1003Russia2026-08-23
1004Japan2026-09-13
1005Russia2026-09-06
1006Australia2026-08-29
1007Australia2026-08-27
1008Germany2026-09-12
1009United Kingdom2026-09-06
1010Australia2026-09-10
1011Italy2026-09-07
1012France2026-09-14
1013Italy2026-09-17
1014Brazil2026-09-03
1015Argentina2026-09-10
1016Germany2026-09-13
1017Brazil2026-08-28
1018France2026-09-19
1019Germany2026-09-10
1020Japan2026-09-19
1021France2026-09-10
1022United Kingdom2026-09-08
1023United Kingdom2026-09-11
1024Spain2026-09-14
1025United Kingdom2026-09-11
1026Russia2026-08-27
1027Argentina2026-09-03
1028India2026-09-08
1029United Kingdom2026-09-04
1030Brazil2026-08-24
1031Japan2026-09-01
1032Argentina2026-08-24
1033Spain2026-09-03
1034Canada2026-09-16
1035Russia2026-09-04
1036India2026-08-23
1037Germany2026-09-01
1038Italy2026-08-27
1039Brazil2026-09-09
1040Australia2026-09-03
1041Spain2026-09-16
1042Italy2026-09-19
1043Germany2026-09-09
1044Japan2026-09-07
1045Australia2026-09-07
1046Argentina2026-09-10
1047Japan2026-09-12
1048Russia2026-09-20
1049Argentina2026-09-04

On-Demand Data

NameIdCountryDate
Leon Q Amigon1000Brazil2026-09-19
Leon J Darakjy1001Brazil2026-08-30
Stacey J Schemmer1002Spain2026-08-28
Smith L Stenseth1003India2026-08-26
Maria L Perin1004Germany2026-09-14
Clifford I Caudy1005Argentina2026-09-16
Faith I Caudy1006Argentina2026-08-24
Kadeem Z Malet1007Russia2026-08-24
Munro R Maclead1008Australia2026-09-09
David Y Butt1009Russia2026-09-12
Smith J Marrier1010United Kingdom2026-08-25
Leja L Marrier1011Germany2026-08-23
Jennifer S Perin1012Germany2026-09-17
James H Bowley1013Canada2026-08-23
Kaitlin W Bolognia1014Canada2026-09-11
Cody S Gaucho1015Brazil2026-09-13
Ricardo B Bowley1016Japan2026-08-28
Alejandro D Poquette1017Canada2026-09-07
Silvio J Iturbide1018Russia2026-08-26
Aika G Malet1019Argentina2026-09-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy W VenereGermanyAmy Elsner NEW
Salvatore E GlickGermanyIoni Bowcher NEW
Rodrigues F AlbaresFranceXuxue Feng UNQUALIFIED
Johnson F NestleCanadaIoni Bowcher NEW
Kaitlin Y NestleItalyAmy Elsner NEW
Emily P RulapaughAustraliaXuxue Feng NEGOTIATION
Julie E OstroskyItalyAnna Fali PROPOSAL
Jeanfrancois T StockhamArgentinaIvan Magalhaes NEGOTIATION
Ashley U DoeIndiaAmy Elsner NEGOTIATION
Murillo U BologniaCanadaIvan Magalhaes NEGOTIATION
Murillo K TollnerItalyAsiya Javayant RENEWAL
James Q WaycottJapanAmy Elsner NEW
Mayumi M MaletItalyIoni Bowcher RENEWAL
Aika V SlusarskiUnited KingdomBernardo Dominic NEW
Mujtaba T CaldareraAustraliaIoni Bowcher NEW
Claire C IturbideUnited KingdomOnyama Limba NEGOTIATION
David L FlosiArgentinaBernardo Dominic RENEWAL
Emily E OldroydArgentinaAmy Elsner RENEWAL
Alejandro M GarufiAustraliaIoni Bowcher RENEWAL
Kaitlin J WaycottCanadaAmy Elsner RENEWAL
Adams Q VenereSpainAmy Elsner NEW
Morrow J GlickFranceAsiya Javayant NEW
Smith F StockhamItalyAmy Elsner PROPOSAL
Nicolas J GillianArgentinaXuxue Feng PROPOSAL
Maisha P GillianIndiaElwin Sharvill UNQUALIFIED
Claire R WhobreyFranceBernardo Dominic QUALIFIED
David J WhobreyCanadaAsiya Javayant NEGOTIATION
Murillo M MaletUnited KingdomOnyama Limba NEW
Jennifer S AmigonFranceStephen Shaw NEGOTIATION
Munro P NestleJapanAmy Elsner RENEWAL
Ricardo E SergiAustraliaIoni Bowcher NEGOTIATION
Leon V FlosiAustraliaBernardo Dominic RENEWAL
Sinclair S BologniaBrazilXuxue Feng NEW
Misaki L FollerIndiaOnyama Limba RENEWAL
Costa V RimBrazilBernardo Dominic UNQUALIFIED
Aika B BriddickFranceOnyama Limba QUALIFIED
Tony E VocelkaIndiaElwin Sharvill NEW
Rodrigues T ButtCanadaBernardo Dominic QUALIFIED
Leon J FlosiAustraliaElwin Sharvill NEW
Munro E FigeroaSpainElwin Sharvill 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>