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
Aruna B NickaItalyAsiya Javayant UNQUALIFIED
Ashley N RulapaughAustraliaXuxue Feng NEGOTIATION
Sinclair Q GlickUnited KingdomIvan Magalhaes NEW
Rodrigues D WieserFranceElwin Sharvill QUALIFIED
Cody K VocelkaGermanyElwin Sharvill QUALIFIED
Misaki M AlbaresItalyOnyama Limba NEGOTIATION
Emily U WieserItalyAsiya Javayant UNQUALIFIED
Tony I IturbideJapanIvan Magalhaes RENEWAL
Smith X NestleRussiaXuxue Feng RENEWAL
Isabel Q InouyeBrazilIvan Magalhaes NEGOTIATION
Julie M RimItalyAnna Fali NEW
Chavez D SergiBrazilAsiya Javayant RENEWAL
Misaki G MaletUnited KingdomAnna Fali RENEWAL
Johnson W DarakjySpainAnna Fali NEW
Mayumi M VocelkaArgentinaAsiya Javayant PROPOSAL
Murillo D MaletUnited KingdomAmy Elsner QUALIFIED
Izzy C BologniaJapanIoni Bowcher QUALIFIED
Maria Q MacleadBrazilAsiya Javayant NEGOTIATION
Cody G NickaItalyXuxue Feng QUALIFIED
David M GarufiJapanElwin Sharvill PROPOSAL
Arvin H GarufiFranceXuxue Feng UNQUALIFIED
Clifford B VenereCanadaXuxue Feng UNQUALIFIED
Jones T GillianCanadaAmy Elsner PROPOSAL
Murillo P RutaUnited KingdomOnyama Limba UNQUALIFIED
Sinclair Q KolmetzArgentinaOnyama Limba RENEWAL
Morrow R VenereSpainAsiya Javayant NEW
Jones E MorascaGermanyOnyama Limba QUALIFIED
Francesco M SchemmerAustraliaStephen Shaw NEW
Wickens X BowleyCanadaIoni Bowcher QUALIFIED
Izzy R MarrierGermanyIvan Magalhaes RENEWAL
Aditya W GauchoSpainXuxue Feng NEW
Aruna A RutaJapanAnna Fali NEW
Francesco W MacleadSpainOnyama Limba UNQUALIFIED
Claire E FollerUnited KingdomAmy Elsner NEW
Cody O DoeSpainAnna Fali UNQUALIFIED
Jefferson U CampainGermanyIvan Magalhaes PROPOSAL
Silvio O PoquetteUnited KingdomAnna Fali PROPOSAL
Izzy I GlickArgentinaIoni Bowcher UNQUALIFIED
Faith G OldroydGermanyIoni Bowcher RENEWAL
Arvin X InouyeGermanyAnna Fali QUALIFIED
Octavia M IturbideUnited KingdomAnna Fali RENEWAL
Adams E SlusarskiIndiaXuxue Feng PROPOSAL
Tony G SaylorsAustraliaOnyama Limba UNQUALIFIED
Murillo N NestleFranceAnna Fali UNQUALIFIED
Antonio K NestleBrazilAnna Fali NEGOTIATION
Ricardo X RimItalyElwin Sharvill NEGOTIATION
Izzy T ShinkoAustraliaAnna Fali NEGOTIATION
Johnson V PoquetteRussiaBernardo Dominic PROPOSAL
Tony V GillianCanadaBernardo Dominic NEW
Aruna Y TollnerItalyStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci O DoeAustraliaElwin Sharvill PROPOSAL
James A KuskoSpainIoni Bowcher NEW
Juan J PaprockiFranceStephen Shaw NEGOTIATION
Greenwood I BowleyBrazilAnna Fali NEW
Jeanfrancois A IturbideItalyStephen Shaw QUALIFIED
Nicolas F OldroydGermanyBernardo Dominic NEW
Ricardo B WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Arvin H MaletArgentinaElwin Sharvill NEW
Arvin Z RulapaughFranceIoni Bowcher NEW
Maisha M FigeroaBrazilAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson F DoeJapan2026-10-13Commercial Press RENEWAL81Onyama Limba
1001Arvin T PerinCanada2026-10-20Chapman, Ross E Esq NEW78Ivan Magalhaes
1002Johnson J MaletJapan2026-10-25Buckley Miller Wright RENEWAL85Asiya Javayant
1003David Y InouyeRussia2026-10-15Morlong Associates NEW48Anna Fali
1004Costa P PerinUnited Kingdom2026-10-25Chapman, Ross E Esq NEW85Xuxue Feng
1005Salvatore S ButtAustralia2026-10-19Benton, John B Jr QUALIFIED15Xuxue Feng
1006Morrow F SaylorsFrance2026-10-12Printing Dimensions PROPOSAL43Asiya Javayant
1007Maisha V WieserRussia2026-10-15Feiner Bros UNQUALIFIED44Asiya Javayant
1008Misaki E DarakjyBrazil2026-10-24Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1009Alejandro F StensethJapan2026-10-25King, Christopher A Esq RENEWAL45Xuxue Feng
1010Alejandro Z NestleSpain2026-10-18Feiner Bros NEW42Anna Fali
1011Mujtaba A PerinUnited Kingdom2026-10-09King, Christopher A Esq QUALIFIED64Onyama Limba
1012Alejandro Z RoysterCanada2026-10-18Printing Dimensions NEGOTIATION3Xuxue Feng
1013Misaki X NickaAustralia2026-10-28Feiner Bros PROPOSAL23Onyama Limba
1014Emily R KuskoRussia2026-10-12Benton, John B Jr UNQUALIFIED13Ivan Magalhaes
1015Juan B CampainRussia2026-10-18Printing Dimensions QUALIFIED44Stephen Shaw
1016Kadeem S TollnerItaly2026-10-28Feltz Printing Service NEGOTIATION66Stephen Shaw
1017Chavez J VocelkaCanada2026-10-08Rousseaux, Michael Esq NEW90Xuxue Feng
1018Antonio V BriddickUnited Kingdom2026-10-13Printing Dimensions UNQUALIFIED62Bernardo Dominic
1019Arvin V GauchoIndia2026-10-23Printing Dimensions QUALIFIED24Stephen Shaw
1020Nicolas T VenereJapan2026-10-19Rangoni Of Florence NEW0Onyama Limba
1021Claire W MaletSpain2026-10-08Rangoni Of Florence RENEWAL83Onyama Limba
1022Antonio N RutaGermany2026-10-13Morlong Associates NEGOTIATION3Amy Elsner
1023Misaki I OldroydUnited Kingdom2026-10-30Chemel, James L Cpa NEGOTIATION73Amy Elsner
1024Francesco W StensethFrance2026-10-27King, Christopher A Esq PROPOSAL14Bernardo Dominic
1025Julie D RutaAustralia2026-10-20Chanay, Jeffrey A Esq RENEWAL85Amy Elsner
1026Aika G RoysterUnited Kingdom2026-10-22Buckley Miller Wright UNQUALIFIED90Ivan Magalhaes
1027Chavez H SlusarskiCanada2026-10-24Commercial Press UNQUALIFIED96Bernardo Dominic
1028David O VenereAustralia2026-10-11Buckley Miller Wright NEGOTIATION61Xuxue Feng
1029Leja T RoysterSpain2026-10-08Chapman, Ross E Esq PROPOSAL77Onyama Limba
1030Murillo F FigeroaItaly2026-10-15Chapman, Ross E Esq RENEWAL62Asiya Javayant
1031James S AmigonItaly2026-10-08Truhlar And Truhlar Attys NEW23Xuxue Feng
1032Ashley I MarrierUnited Kingdom2026-10-26Truhlar And Truhlar Attys NEW93Onyama Limba
1033Leja Y VenereJapan2026-10-26Buckley Miller Wright PROPOSAL73Bernardo Dominic
1034Juan J FollerSpain2026-10-08Chemel, James L Cpa PROPOSAL78Xuxue Feng
1035Octavia A BowleyRussia2026-10-22Buckley Miller Wright QUALIFIED21Stephen Shaw
1036Aditya C OldroydItaly2026-10-30Benton, John B Jr NEW93Ivan Magalhaes
1037Alejandro E MaletUnited Kingdom2026-11-01Feiner Bros QUALIFIED63Onyama Limba
1038Wickens U StensethRussia2026-10-20King, Christopher A Esq UNQUALIFIED46Elwin Sharvill
1039Mayumi I CaudyAustralia2026-10-19Benton, John B Jr UNQUALIFIED61Anna Fali
1040Claire C FlosiArgentina2026-10-31Commercial Press QUALIFIED12Xuxue Feng
1041Faith X OstroskySpain2026-11-02Truhlar And Truhlar Attys PROPOSAL95Xuxue Feng
1042James C FigeroaSpain2026-10-09Printing Dimensions QUALIFIED69Ioni Bowcher
1043Stacey L VocelkaCanada2026-11-04Rangoni Of Florence QUALIFIED15Stephen Shaw
1044Clifford A GarufiIndia2026-10-27Chanay, Jeffrey A Esq PROPOSAL5Ivan Magalhaes
1045Rodrigues R DarakjyRussia2026-10-21Buckley Miller Wright NEW70Onyama Limba
1046Greenwood M CampainBrazil2026-10-16Morlong Associates PROPOSAL72Ivan Magalhaes
1047Kaitlin N WieserBrazil2026-10-17Buckley Miller Wright NEW25Stephen Shaw
1048Murillo I DoeRussia2026-10-30Feltz Printing Service QUALIFIED53Ivan Magalhaes
1049Maria U BologniaBrazil2026-10-25Chapman, Ross E Esq UNQUALIFIED89Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony R MarrierArgentinaIvan Magalhaes NEGOTIATION
Smith P GlickSpainXuxue Feng QUALIFIED
Aditya F PerinSpainXuxue Feng NEGOTIATION
Arvin E ChuiFranceIvan Magalhaes NEGOTIATION
Aika D BowleyJapanBernardo Dominic UNQUALIFIED
Jones N StensethUnited KingdomBernardo Dominic RENEWAL
Maria L BowleyFranceElwin Sharvill UNQUALIFIED
Maisha A ChuiSpainIoni Bowcher QUALIFIED
Claire Q BriddickBrazilAnna Fali UNQUALIFIED
Munro G InouyeIndiaElwin Sharvill QUALIFIED
Ivar K FerenczIndiaIoni Bowcher PROPOSAL
Jefferson D OldroydCanadaBernardo Dominic UNQUALIFIED
Emily I MacleadItalyXuxue Feng NEGOTIATION
Maisha Q InouyeFranceAmy Elsner NEGOTIATION
Maisha J RulapaughGermanyAnna Fali QUALIFIED
Clifford Z GlickItalyAmy Elsner NEGOTIATION
Chavez V TollnerBrazilAsiya Javayant RENEWAL
David B RulapaughCanadaAsiya Javayant QUALIFIED
Maria C VocelkaUnited KingdomAnna Fali QUALIFIED
Leon H StockhamGermanyIoni Bowcher PROPOSAL
Aika B CaudyRussiaAsiya Javayant NEGOTIATION
Isabel P AlbaresArgentinaElwin Sharvill PROPOSAL
Murillo Q SlusarskiIndiaXuxue Feng NEGOTIATION
Adams Q InouyeJapanIvan Magalhaes QUALIFIED
Murillo I GlickArgentinaXuxue Feng PROPOSAL
Mujtaba Y NestleSpainOnyama Limba NEGOTIATION
Darci T TollnerArgentinaAsiya Javayant RENEWAL
Deepesh Q MarrierIndiaOnyama Limba NEGOTIATION
Silvio G WhobreyCanadaElwin Sharvill NEW
Mayumi Z GlickRussiaAmy Elsner QUALIFIED
Aika B KolmetzBrazilElwin Sharvill RENEWAL
Emily M NickaSpainAmy Elsner UNQUALIFIED
Munro D InouyeJapanIvan Magalhaes RENEWAL
Julie P RutaFranceAmy Elsner NEW
Maria U RulapaughSpainAnna Fali NEW
Smith R WieserArgentinaIoni Bowcher NEGOTIATION
Faith N InouyeRussiaStephen Shaw RENEWAL
Sinclair F PoquetteSpainElwin Sharvill QUALIFIED
Claire M MaletBrazilIoni Bowcher UNQUALIFIED
Misaki X WaycottRussiaBernardo Dominic PROPOSAL
Ricardo Z RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Misaki O NickaCanadaAmy Elsner NEW
Arvin X CampainJapanBernardo Dominic NEW
David Y DilliardIndiaXuxue Feng UNQUALIFIED
Leon W MacleadFranceOnyama Limba RENEWAL
Isabel X NestleUnited KingdomAsiya Javayant UNQUALIFIED
Morrow C RulapaughCanadaIoni Bowcher NEW
Stacey P RutaAustraliaIoni Bowcher UNQUALIFIED
Julie Q TollnerIndiaIvan Magalhaes UNQUALIFIED
Jones I FollerFranceIoni Bowcher PROPOSAL
Frozen Columns
Name
Leon K Caudy
Silvio G Dilliard
Deepesh Z Marrier
James B Malet
Wickens O Caldarera
Kaitlin W Albares
Johnson G Albares
Maria F Schemmer
Kaitlin Q Shinko
Maisha E Caudy
Claire X Nestle
Silvio Y Butt
Wickens D Butt
Izzy U Foller
Izzy L Waycott
Rodrigues J Gaucho
Ivar T Rim
Deepesh Z Marrier
Emily S Oldroyd
Kaitlin H Rulapaugh
Izzy K Paprocki
Clifford P Rim
Clifford L Doe
Maisha A Darakjy
Mujtaba M Caldarera
Murillo O Saylors
Maria M Schemmer
Julie U Vocelka
Adams D Oldroyd
Antonio N Nicka
Ivar I Sergi
Maria S Bowley
Nicolas D Marrier
Murillo E Caldarera
Jefferson E Ferencz
Deepesh I Rulapaugh
Darci O Nestle
Chavez N Kolmetz
Maria T Saylors
Cody J Amigon
Darci W Venere
Maria L Darakjy
Faith F Schemmer
Murillo N Waycott
Antonio H Saylors
Leon T Stenseth
Smith C Bolognia
Maria L Bowley
Clifford B Royster
Cody Z Garufi
IdCountryDate
1000France2026-10-28
1001Japan2026-10-10
1002United Kingdom2026-11-01
1003Italy2026-10-15
1004United Kingdom2026-10-23
1005Canada2026-10-15
1006Australia2026-10-10
1007Japan2026-10-15
1008United Kingdom2026-10-14
1009United Kingdom2026-10-17
1010Italy2026-10-18
1011Spain2026-11-01
1012Brazil2026-10-18
1013Russia2026-10-22
1014France2026-10-12
1015Italy2026-10-19
1016France2026-10-12
1017United Kingdom2026-11-02
1018Italy2026-10-28
1019Argentina2026-10-31
1020Japan2026-11-03
1021Argentina2026-10-18
1022Australia2026-10-13
1023Japan2026-10-27
1024Germany2026-10-17
1025Australia2026-10-16
1026Spain2026-10-17
1027Italy2026-10-18
1028Russia2026-11-03
1029Spain2026-10-10
1030Japan2026-10-31
1031Spain2026-10-17
1032Spain2026-11-02
1033Russia2026-10-23
1034United Kingdom2026-10-20
1035Brazil2026-10-07
1036Argentina2026-10-14
1037Italy2026-10-06
1038Australia2026-10-09
1039Argentina2026-10-29
1040Russia2026-10-20
1041Australia2026-10-17
1042Argentina2026-10-11
1043India2026-10-28
1044Australia2026-10-29
1045United Kingdom2026-10-09
1046Japan2026-10-22
1047France2026-10-09
1048Japan2026-10-26
1049United Kingdom2026-10-18

On-Demand Data

NameIdCountryDate
Izzy E Inouye1000Spain2026-10-16
Kaitlin K Poquette1001Germany2026-10-13
David A Malet1002Russia2026-10-14
Misaki E Sergi1003Canada2026-10-26
Alejandro R Chui1004India2026-10-13
Ricardo X Nicka1005Germany2026-10-15
Misaki X Gillian1006France2026-10-06
Misaki B Campain1007Canada2026-10-13
Alejandro T Maclead1008France2026-11-02
Cody Y Nicka1009United Kingdom2026-10-27
Munro J Foller1010Japan2026-11-04
Maria E Doe1011Argentina2026-10-06
Jennifer S Butt1012Australia2026-10-30
Leon O Stockham1013Japan2026-10-31
Isabel I Morasca1014Brazil2026-10-26
Greenwood Q Stockham1015Germany2026-10-23
Silvio O Stockham1016United Kingdom2026-10-11
Mujtaba N Malet1017India2026-11-01
Leon P Shinko1018Argentina2026-10-07
Wickens A Bowley1019Australia2026-10-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams W SchemmerGermanyIoni Bowcher PROPOSAL
Johnson T GillianCanadaAsiya Javayant NEGOTIATION
Rodrigues U NestleSpainStephen Shaw RENEWAL
Francesco F WieserSpainStephen Shaw NEW
Jeanfrancois A SlusarskiFranceBernardo Dominic NEGOTIATION
James A MarrierFranceAmy Elsner PROPOSAL
Leja V GillianSpainXuxue Feng RENEWAL
Alejandro W FollerBrazilXuxue Feng NEW
Adams W ShinkoBrazilAmy Elsner QUALIFIED
Darci G MorascaUnited KingdomAnna Fali NEW
Cody H GarufiJapanElwin Sharvill RENEWAL
James H PoquetteArgentinaOnyama Limba RENEWAL
Aruna G BologniaGermanyIvan Magalhaes NEW
Jennifer E InouyeSpainStephen Shaw RENEWAL
Deepesh N InouyeAustraliaAmy Elsner PROPOSAL
Faith Q DoeAustraliaElwin Sharvill RENEWAL
Juan X BowleySpainIoni Bowcher RENEWAL
Salvatore W NestleGermanyIoni Bowcher NEW
Claire R KolmetzArgentinaAnna Fali RENEWAL
Murillo O MaletBrazilAsiya Javayant RENEWAL
Deepesh F MaletJapanAnna Fali NEGOTIATION
Aika X SaylorsJapanAmy Elsner NEGOTIATION
Clifford M PerinCanadaOnyama Limba NEGOTIATION
Izzy O MacleadFranceXuxue Feng NEW
Nicolas U IturbideGermanyAmy Elsner PROPOSAL
Izzy K GarufiBrazilBernardo Dominic NEGOTIATION
David D WaycottGermanyXuxue Feng RENEWAL
Tony P SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Izzy W RimJapanStephen Shaw UNQUALIFIED
Ivar D AmigonUnited KingdomOnyama Limba UNQUALIFIED
Leon F ShinkoSpainOnyama Limba NEW
Sinclair W AmigonItalyBernardo Dominic NEW
Izzy H OldroydSpainAmy Elsner NEGOTIATION
Aika L DarakjyJapanIoni Bowcher NEGOTIATION
Juan L DilliardUnited KingdomStephen Shaw NEGOTIATION
Adams S GlickRussiaIvan Magalhaes NEW
Wickens S MaletFranceXuxue Feng RENEWAL
Arvin R CampainAustraliaStephen Shaw UNQUALIFIED
Jones Z WhobreyArgentinaOnyama Limba NEGOTIATION
Juan N WieserUnited KingdomStephen Shaw 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>