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
Maisha G StensethSpainAmy Elsner NEW
Tony V SchemmerJapanAmy Elsner NEGOTIATION
Claire I RoysterItalyOnyama Limba NEGOTIATION
Arvin D ButtAustraliaBernardo Dominic NEGOTIATION
Costa Y NestleJapanElwin Sharvill UNQUALIFIED
Leon V AmigonJapanBernardo Dominic UNQUALIFIED
Murillo E GillianGermanyIvan Magalhaes NEGOTIATION
Alejandro X MaletCanadaElwin Sharvill NEGOTIATION
Jeanfrancois T CaudyBrazilIvan Magalhaes QUALIFIED
Wickens P CampainCanadaIvan Magalhaes NEGOTIATION
Jefferson R PaprockiCanadaIvan Magalhaes QUALIFIED
Kaitlin T StensethSpainIoni Bowcher PROPOSAL
Munro L ShinkoRussiaXuxue Feng QUALIFIED
Leon G RutaSpainStephen Shaw QUALIFIED
Aditya G PoquetteAustraliaIoni Bowcher UNQUALIFIED
Misaki M NestleAustraliaAsiya Javayant PROPOSAL
Maria I WhobreyItalyAnna Fali UNQUALIFIED
David U BologniaSpainOnyama Limba NEGOTIATION
Clifford A SlusarskiCanadaBernardo Dominic PROPOSAL
Jones X StockhamJapanBernardo Dominic NEW
Morrow W GlickAustraliaOnyama Limba RENEWAL
Francesco Z CaldareraBrazilStephen Shaw NEGOTIATION
Francesco F DilliardCanadaIvan Magalhaes PROPOSAL
Aika C KuskoJapanAmy Elsner PROPOSAL
Silvio C BriddickUnited KingdomIoni Bowcher RENEWAL
Maria Y RoysterArgentinaOnyama Limba QUALIFIED
Alejandro U MaletRussiaOnyama Limba NEGOTIATION
Adams O DarakjyArgentinaAnna Fali RENEWAL
Maisha G SaylorsItalyIoni Bowcher PROPOSAL
Izzy D PoquetteIndiaStephen Shaw UNQUALIFIED
David Q VocelkaFranceAnna Fali NEGOTIATION
Darci H PoquetteSpainAmy Elsner RENEWAL
Faith Y OldroydItalyOnyama Limba RENEWAL
Johnson V CaudyFranceElwin Sharvill NEGOTIATION
Faith A GarufiGermanyStephen Shaw UNQUALIFIED
Tony E SchemmerFranceIoni Bowcher QUALIFIED
Munro C IturbideItalyIvan Magalhaes PROPOSAL
Claire H WaycottItalyElwin Sharvill QUALIFIED
Mujtaba E CampainUnited KingdomIoni Bowcher UNQUALIFIED
Antonio I GarufiSpainIvan Magalhaes RENEWAL
Aditya R IturbideUnited KingdomOnyama Limba NEW
Stacey Z BologniaIndiaIvan Magalhaes UNQUALIFIED
Faith K OldroydBrazilIvan Magalhaes PROPOSAL
Sinclair D FlosiJapanIvan Magalhaes UNQUALIFIED
Leon U CaudyJapanStephen Shaw NEW
Mayumi O ShinkoItalyBernardo Dominic PROPOSAL
James N VocelkaFranceElwin Sharvill NEW
Morrow T BologniaIndiaElwin Sharvill UNQUALIFIED
Arvin K BowleyUnited KingdomStephen Shaw RENEWAL
Rodrigues U OstroskyBrazilElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco G WaycottRussiaIoni Bowcher QUALIFIED
Morrow D StensethRussiaStephen Shaw QUALIFIED
Darci C AmigonCanadaStephen Shaw PROPOSAL
David K GlickIndiaOnyama Limba RENEWAL
Kaitlin V FlosiBrazilXuxue Feng NEGOTIATION
Maisha A OldroydFranceBernardo Dominic RENEWAL
Izzy C StockhamSpainOnyama Limba RENEWAL
Smith U DilliardIndiaAmy Elsner UNQUALIFIED
Silvio O NestleAustraliaAnna Fali RENEWAL
Johnson A RimBrazilAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David J WieserCanada2026-10-23Morlong Associates RENEWAL79Stephen Shaw
1001Kadeem J MorascaIndia2026-11-04King, Christopher A Esq NEGOTIATION61Stephen Shaw
1002Faith M VenereArgentina2026-10-30Chapman, Ross E Esq RENEWAL63Xuxue Feng
1003Kadeem B WieserIndia2026-11-04Rousseaux, Michael Esq NEW53Amy Elsner
1004Ricardo S NickaArgentina2026-10-12Morlong Associates PROPOSAL37Ioni Bowcher
1005Ashley J MarrierIndia2026-11-08Buckley Miller Wright QUALIFIED44Amy Elsner
1006Wickens O MarrierSpain2026-10-21Buckley Miller Wright NEGOTIATION19Asiya Javayant
1007Leja D MorascaFrance2026-10-31Rangoni Of Florence PROPOSAL89Anna Fali
1008Arvin T MacleadAustralia2026-11-05King, Christopher A Esq PROPOSAL14Xuxue Feng
1009Leon G TollnerGermany2026-10-17Rousseaux, Michael Esq NEW88Bernardo Dominic
1010Jefferson E MaletCanada2026-10-18Dorl, James J Esq QUALIFIED44Ioni Bowcher
1011Ivar Z VenereItaly2026-11-05Rangoni Of Florence NEGOTIATION89Stephen Shaw
1012Maria C ChuiCanada2026-10-15Buckley Miller Wright NEW55Xuxue Feng
1013Greenwood U GlickUnited Kingdom2026-10-21Feiner Bros UNQUALIFIED26Xuxue Feng
1014Octavia L MaletAustralia2026-11-06Rangoni Of Florence RENEWAL41Bernardo Dominic
1015Jeanfrancois G StockhamRussia2026-10-16Benton, John B Jr QUALIFIED27Amy Elsner
1016Ivar I ShinkoSpain2026-10-28King, Christopher A Esq NEGOTIATION49Asiya Javayant
1017Ashley Y NickaFrance2026-10-23Printing Dimensions QUALIFIED89Asiya Javayant
1018Salvatore E BologniaArgentina2026-10-26Morlong Associates PROPOSAL59Bernardo Dominic
1019Maisha R ChuiItaly2026-10-27Commercial Press NEGOTIATION58Amy Elsner
1020Octavia C GlickAustralia2026-11-07Commercial Press NEW46Ioni Bowcher
1021Antonio X PerinSpain2026-11-02Chemel, James L Cpa NEW88Bernardo Dominic
1022Maisha K InouyeSpain2026-10-12Commercial Press RENEWAL1Onyama Limba
1023Ivar K NestleFrance2026-10-17Rangoni Of Florence RENEWAL68Anna Fali
1024Salvatore E BowleyBrazil2026-10-24Chapman, Ross E Esq NEW33Bernardo Dominic
1025Leon S RoysterCanada2026-10-20Feiner Bros RENEWAL37Anna Fali
1026Alejandro G OstroskyArgentina2026-10-28Dorl, James J Esq RENEWAL49Ioni Bowcher
1027Stacey J RimCanada2026-11-02Chanay, Jeffrey A Esq RENEWAL74Amy Elsner
1028Isabel X MarrierArgentina2026-10-16Feltz Printing Service RENEWAL92Ivan Magalhaes
1029Maisha S CaldareraJapan2026-10-24Chanay, Jeffrey A Esq NEW65Asiya Javayant
1030Mayumi P CaldareraGermany2026-11-01Printing Dimensions RENEWAL95Stephen Shaw
1031Greenwood C ButtAustralia2026-10-28Rangoni Of Florence QUALIFIED63Ioni Bowcher
1032Salvatore J FigeroaJapan2026-10-11Buckley Miller Wright UNQUALIFIED87Elwin Sharvill
1033Claire R WaycottUnited Kingdom2026-10-16Chemel, James L Cpa RENEWAL54Elwin Sharvill
1034Maisha O MaletGermany2026-10-10Chapman, Ross E Esq NEGOTIATION74Stephen Shaw
1035Chavez M RimBrazil2026-10-20Rousseaux, Michael Esq QUALIFIED13Xuxue Feng
1036Leja Z PaprockiFrance2026-10-23Chanay, Jeffrey A Esq NEW61Xuxue Feng
1037Faith H PoquetteCanada2026-11-03King, Christopher A Esq NEW23Xuxue Feng
1038Smith V OstroskyItaly2026-10-10Feiner Bros NEW50Ivan Magalhaes
1039Jennifer N NestleJapan2026-11-08King, Christopher A Esq PROPOSAL36Stephen Shaw
1040Juan H MaletRussia2026-10-25Morlong Associates NEW96Xuxue Feng
1041Wickens W WieserCanada2026-11-04Dorl, James J Esq NEW91Elwin Sharvill
1042Isabel X KuskoFrance2026-10-14Commercial Press PROPOSAL98Anna Fali
1043Ivar R StensethItaly2026-10-17Benton, John B Jr PROPOSAL66Stephen Shaw
1044Leja Z KuskoFrance2026-10-26Morlong Associates QUALIFIED89Elwin Sharvill
1045Kaitlin Y VenereAustralia2026-11-02Dorl, James J Esq PROPOSAL50Onyama Limba
1046Jefferson G MacleadFrance2026-10-28Commercial Press UNQUALIFIED55Amy Elsner
1047Aditya I DilliardAustralia2026-11-06Commercial Press PROPOSAL79Elwin Sharvill
1048Chavez R InouyeBrazil2026-10-27Printing Dimensions NEW73Asiya Javayant
1049Julie C WaycottFrance2026-11-01Chapman, Ross E Esq PROPOSAL83Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore G CaudyBrazilOnyama Limba NEGOTIATION
Munro G BriddickRussiaElwin Sharvill UNQUALIFIED
Antonio A IturbideRussiaAsiya Javayant PROPOSAL
Jefferson J GlickRussiaXuxue Feng NEGOTIATION
Smith F MacleadIndiaAnna Fali PROPOSAL
Leon H ChuiRussiaIoni Bowcher RENEWAL
Jones G VocelkaRussiaBernardo Dominic PROPOSAL
Maria R BologniaCanadaIvan Magalhaes NEGOTIATION
Maria O SergiJapanAmy Elsner NEGOTIATION
Darci Q AmigonBrazilStephen Shaw RENEWAL
Wickens O PerinUnited KingdomAnna Fali QUALIFIED
David H OldroydIndiaOnyama Limba RENEWAL
Mayumi J VenereIndiaElwin Sharvill UNQUALIFIED
Sinclair W CaudyRussiaOnyama Limba UNQUALIFIED
Munro D PoquetteSpainAsiya Javayant NEW
Salvatore E FerenczAustraliaAmy Elsner NEGOTIATION
Aika V CampainJapanBernardo Dominic UNQUALIFIED
Stacey R SlusarskiFranceOnyama Limba UNQUALIFIED
Tony W SlusarskiGermanyBernardo Dominic RENEWAL
Morrow K DoeRussiaBernardo Dominic RENEWAL
Leon W BologniaArgentinaXuxue Feng QUALIFIED
Cody P WieserGermanyBernardo Dominic UNQUALIFIED
Arvin E NickaRussiaAmy Elsner QUALIFIED
Aditya G FlosiCanadaElwin Sharvill NEW
Mayumi D MarrierItalyAmy Elsner UNQUALIFIED
Antonio N MorascaSpainAsiya Javayant NEW
Leja X WhobreyRussiaBernardo Dominic NEGOTIATION
Wickens Q CampainBrazilIvan Magalhaes RENEWAL
Stacey M GlickIndiaIvan Magalhaes QUALIFIED
Clifford P ShinkoIndiaIoni Bowcher PROPOSAL
Costa V GauchoItalyOnyama Limba QUALIFIED
Kadeem L PerinIndiaIvan Magalhaes QUALIFIED
Greenwood X PoquetteGermanyStephen Shaw PROPOSAL
Juan Y MaletAustraliaAnna Fali NEW
Emily L FlosiUnited KingdomAmy Elsner NEW
Chavez Q FigeroaFranceIvan Magalhaes UNQUALIFIED
Claire E OstroskyIndiaAmy Elsner QUALIFIED
Jefferson P SlusarskiSpainXuxue Feng RENEWAL
Antonio Y PerinCanadaBernardo Dominic NEW
Izzy X OstroskyIndiaAsiya Javayant NEGOTIATION
Chavez G AmigonBrazilStephen Shaw NEW
Claire D CaudyIndiaOnyama Limba QUALIFIED
Smith T ButtBrazilBernardo Dominic UNQUALIFIED
Johnson Y MorascaItalyIvan Magalhaes UNQUALIFIED
James K RulapaughAustraliaStephen Shaw RENEWAL
Deepesh H FlosiCanadaIoni Bowcher NEW
Kaitlin C MaletUnited KingdomIoni Bowcher PROPOSAL
Jones Y FollerSpainAnna Fali QUALIFIED
Jennifer I WhobreyBrazilIvan Magalhaes NEGOTIATION
Wickens V WhobreyBrazilIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Aruna J Stockham
Nicolas N Paprocki
Mujtaba Q Gaucho
Smith H Schemmer
Wickens L Garufi
Emily B Morasca
Jennifer V Malet
Kadeem G Maclead
Faith P Schemmer
Morrow C Vocelka
Izzy Q Waycott
Johnson Q Poquette
Morrow L Darakjy
Francesco N Malet
Aditya P Whobrey
Kadeem W Iturbide
Isabel T Sergi
Kadeem E Slusarski
Isabel Z Slusarski
Rodrigues H Butt
Ashley B Morasca
Ivar J Rim
Murillo K Inouye
Jones X Flosi
Tony W Ostrosky
Leja C Chui
Octavia B Albares
Munro O Saylors
Ricardo D Rim
Misaki D Nestle
Darci A Venere
Chavez X Saylors
Alejandro H Stockham
Alejandro Y Royster
Smith F Waycott
Deepesh U Stockham
Jones R Poquette
Juan B Stenseth
Costa P Chui
Leon B Shinko
Munro S Bowley
Aika N Wieser
Nicolas U Ferencz
Mujtaba X Flosi
Ivar V Poquette
Jennifer G Briddick
Misaki P Ruta
James S Malet
Jefferson Q Perin
Aditya W Ruta
IdCountryDate
1000Italy2026-10-31
1001Germany2026-10-15
1002Australia2026-10-12
1003France2026-10-27
1004Argentina2026-11-07
1005Italy2026-10-31
1006Japan2026-10-15
1007Brazil2026-10-11
1008Australia2026-10-28
1009United Kingdom2026-10-16
1010India2026-10-31
1011Japan2026-10-13
1012Italy2026-10-12
1013Russia2026-10-16
1014France2026-10-11
1015Australia2026-10-28
1016Argentina2026-10-15
1017Canada2026-10-12
1018Argentina2026-10-27
1019Russia2026-10-29
1020Italy2026-10-11
1021United Kingdom2026-10-17
1022Argentina2026-11-01
1023Japan2026-10-18
1024Canada2026-10-27
1025Germany2026-10-25
1026Japan2026-10-30
1027Germany2026-10-29
1028Canada2026-10-31
1029United Kingdom2026-10-12
1030Japan2026-10-23
1031Japan2026-10-14
1032Brazil2026-10-20
1033France2026-10-24
1034France2026-11-08
1035United Kingdom2026-10-15
1036United Kingdom2026-10-17
1037Australia2026-10-26
1038Brazil2026-10-17
1039Argentina2026-10-13
1040Spain2026-10-14
1041India2026-10-20
1042Russia2026-10-29
1043Brazil2026-11-08
1044India2026-11-06
1045Spain2026-10-14
1046Russia2026-10-10
1047France2026-10-13
1048Japan2026-10-19
1049Australia2026-10-23

On-Demand Data

NameIdCountryDate
Sinclair I Marrier1000Argentina2026-11-08
Smith X Perin1001France2026-10-21
Claire S Butt1002Spain2026-10-10
Mujtaba J Rulapaugh1003India2026-10-12
Smith V Chui1004Italy2026-10-11
Rodrigues T Perin1005Russia2026-10-29
Munro G Stockham1006France2026-10-24
Jennifer A Ruta1007Spain2026-10-15
Aruna C Perin1008Russia2026-11-05
Maisha S Stenseth1009India2026-11-08
Alejandro E Sergi1010Italy2026-10-19
Emily F Foller1011Argentina2026-10-13
Maisha I Schemmer1012Brazil2026-11-01
Jeanfrancois W Doe1013Canada2026-11-03
Ashley M Slusarski1014France2026-10-16
Kadeem X Briddick1015Germany2026-10-18
Kaitlin M Slusarski1016Russia2026-11-02
Julie W Malet1017Argentina2026-10-10
Salvatore M Rim1018Australia2026-10-18
Claire B Ferencz1019Australia2026-10-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair H BowleyBrazilAmy Elsner NEW
Munro O KolmetzJapanElwin Sharvill UNQUALIFIED
Kaitlin D RimCanadaIvan Magalhaes NEW
Leja I InouyeArgentinaAmy Elsner UNQUALIFIED
Deepesh H RulapaughCanadaOnyama Limba NEGOTIATION
Juan F DoeBrazilXuxue Feng NEGOTIATION
James C SlusarskiGermanyIvan Magalhaes NEW
Silvio L DoeFranceElwin Sharvill RENEWAL
Darci W MacleadArgentinaElwin Sharvill QUALIFIED
Jones F DarakjyRussiaXuxue Feng NEW
Maria I FlosiItalyOnyama Limba NEW
Silvio Z NickaArgentinaXuxue Feng PROPOSAL
Emily A GillianIndiaIvan Magalhaes NEGOTIATION
Jefferson D SchemmerGermanyOnyama Limba NEGOTIATION
Leon H GarufiJapanStephen Shaw NEGOTIATION
Mayumi V TollnerCanadaElwin Sharvill QUALIFIED
Misaki P GillianCanadaOnyama Limba UNQUALIFIED
Chavez L CaudyJapanIvan Magalhaes QUALIFIED
Arvin R PerinSpainIoni Bowcher NEGOTIATION
Jeanfrancois U PerinIndiaAmy Elsner RENEWAL
Morrow U NickaCanadaOnyama Limba QUALIFIED
Isabel V PerinRussiaElwin Sharvill NEGOTIATION
Nicolas M InouyeIndiaIoni Bowcher PROPOSAL
Tony F StockhamGermanyAnna Fali NEW
Wickens T VenereGermanyAnna Fali RENEWAL
Maria W IturbideAustraliaAsiya Javayant RENEWAL
Izzy V GarufiCanadaAnna Fali PROPOSAL
Nicolas C FigeroaUnited KingdomAnna Fali NEW
Kaitlin G InouyeArgentinaIvan Magalhaes QUALIFIED
Julie D NickaCanadaElwin Sharvill QUALIFIED
David I AlbaresJapanStephen Shaw QUALIFIED
Maisha P RimItalyElwin Sharvill QUALIFIED
Aika Q RimGermanyAmy Elsner QUALIFIED
Aditya V StensethRussiaIvan Magalhaes RENEWAL
Isabel W SlusarskiArgentinaXuxue Feng RENEWAL
Wickens E AmigonArgentinaStephen Shaw RENEWAL
Morrow J KolmetzGermanyIvan Magalhaes NEW
Silvio E MaletSpainIvan Magalhaes RENEWAL
Maisha N DoeBrazilBernardo Dominic NEW
Arvin K GauchoFranceAsiya Javayant QUALIFIED

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