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
Chavez R DilliardSpainAmy Elsner RENEWAL
Darci Z FigeroaSpainStephen Shaw NEGOTIATION
Darci B SlusarskiJapanAsiya Javayant PROPOSAL
Claire C FigeroaJapanIoni Bowcher PROPOSAL
Aditya E AmigonRussiaIvan Magalhaes PROPOSAL
Deepesh P SlusarskiArgentinaAnna Fali RENEWAL
Costa J KuskoSpainOnyama Limba RENEWAL
Maisha E NickaBrazilElwin Sharvill PROPOSAL
Julie U MacleadAustraliaElwin Sharvill PROPOSAL
Aika R RoysterCanadaStephen Shaw QUALIFIED
Wickens K GillianAustraliaAmy Elsner NEW
Johnson B PaprockiGermanyStephen Shaw RENEWAL
Julie J WaycottBrazilIoni Bowcher NEW
Arvin D MaletItalyIoni Bowcher NEW
Leja C AmigonJapanStephen Shaw PROPOSAL
Jeanfrancois D StensethIndiaAmy Elsner UNQUALIFIED
Arvin X PerinUnited KingdomAmy Elsner NEGOTIATION
Stacey M DoeBrazilXuxue Feng QUALIFIED
Kaitlin H MacleadAustraliaOnyama Limba NEGOTIATION
Leja G ShinkoCanadaIoni Bowcher UNQUALIFIED
David I AmigonBrazilStephen Shaw PROPOSAL
Tony F SaylorsBrazilAsiya Javayant NEGOTIATION
Jeanfrancois R SergiUnited KingdomAmy Elsner PROPOSAL
Faith W MarrierAustraliaXuxue Feng PROPOSAL
Clifford D PerinAustraliaAmy Elsner NEW
Chavez E VenereBrazilIoni Bowcher QUALIFIED
Emily U NickaArgentinaElwin Sharvill NEW
Silvio F MaletItalyStephen Shaw UNQUALIFIED
Tony P KuskoSpainAsiya Javayant UNQUALIFIED
Deepesh E ShinkoSpainIoni Bowcher UNQUALIFIED
Juan Y InouyeUnited KingdomIoni Bowcher RENEWAL
Jones J RoysterGermanyStephen Shaw NEW
Stacey R GillianAustraliaXuxue Feng RENEWAL
Ricardo A OldroydFranceIoni Bowcher NEW
Julie A CaldareraBrazilAnna Fali RENEWAL
Smith J ButtJapanStephen Shaw PROPOSAL
Silvio U GauchoBrazilOnyama Limba NEW
Leja Y MacleadRussiaAnna Fali NEW
Izzy N MacleadIndiaIoni Bowcher QUALIFIED
James V ButtCanadaXuxue Feng PROPOSAL
Kaitlin B MorascaUnited KingdomBernardo Dominic NEGOTIATION
Faith U RoysterJapanXuxue Feng UNQUALIFIED
Morrow S GillianIndiaOnyama Limba RENEWAL
Faith G CampainRussiaIoni Bowcher RENEWAL
Cody F MarrierRussiaStephen Shaw QUALIFIED
Wickens O BowleyCanadaXuxue Feng PROPOSAL
Leon Z AmigonSpainOnyama Limba NEW
Clifford G SlusarskiJapanXuxue Feng NEGOTIATION
Kadeem T PoquetteItalyXuxue Feng QUALIFIED
Ricardo L FigeroaJapanAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Emily Q AmigonGermanyElwin Sharvill UNQUALIFIED
Jefferson K BologniaGermanyAnna Fali QUALIFIED
Smith J NickaUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba E ChuiGermanyOnyama Limba NEGOTIATION
Leon K VenereGermanyOnyama Limba UNQUALIFIED
Darci G BologniaBrazilAsiya Javayant NEW
Chavez T DilliardIndiaElwin Sharvill RENEWAL
Murillo G KuskoBrazilOnyama Limba NEW
Ashley Y MorascaBrazilIvan Magalhaes NEW
Maria G InouyeIndiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio F MarrierArgentina2026-10-04Benton, John B Jr NEGOTIATION81Asiya Javayant
1001Juan B CaudyBrazil2026-10-18Chemel, James L Cpa PROPOSAL26Onyama Limba
1002Jones I MorascaJapan2026-09-24Chapman, Ross E Esq QUALIFIED97Onyama Limba
1003David Q GauchoArgentina2026-10-13Feiner Bros QUALIFIED55Stephen Shaw
1004Francesco S CaudySpain2026-10-18Commercial Press QUALIFIED64Elwin Sharvill
1005Aika C BriddickRussia2026-10-05Rousseaux, Michael Esq PROPOSAL65Onyama Limba
1006Maria J IturbideArgentina2026-10-07Chapman, Ross E Esq QUALIFIED63Elwin Sharvill
1007Silvio V FlosiRussia2026-09-25Commercial Press NEGOTIATION36Anna Fali
1008Ashley A KolmetzJapan2026-10-11King, Christopher A Esq RENEWAL80Xuxue Feng
1009Jennifer N GauchoArgentina2026-09-24Rangoni Of Florence QUALIFIED28Bernardo Dominic
1010Clifford X BologniaJapan2026-10-04Morlong Associates QUALIFIED41Amy Elsner
1011Izzy L MaletAustralia2026-10-06Feiner Bros NEGOTIATION40Stephen Shaw
1012Kaitlin E FigeroaSpain2026-10-02Feltz Printing Service RENEWAL11Ioni Bowcher
1013Kadeem V GarufiArgentina2026-10-10Chemel, James L Cpa NEGOTIATION20Xuxue Feng
1014Salvatore X DilliardUnited Kingdom2026-09-23Morlong Associates NEW99Stephen Shaw
1015David J BologniaSpain2026-10-06King, Christopher A Esq UNQUALIFIED38Ivan Magalhaes
1016Greenwood X MaletItaly2026-10-11Buckley Miller Wright NEGOTIATION59Asiya Javayant
1017Smith Y GillianGermany2026-09-27King, Christopher A Esq PROPOSAL12Bernardo Dominic
1018Aika D ButtFrance2026-09-21Feiner Bros PROPOSAL77Anna Fali
1019Stacey G DilliardGermany2026-09-25Printing Dimensions RENEWAL67Elwin Sharvill
1020Costa O MorascaRussia2026-10-09King, Christopher A Esq NEGOTIATION48Anna Fali
1021Aditya G IturbideSpain2026-10-16Benton, John B Jr PROPOSAL14Stephen Shaw
1022Costa I GillianSpain2026-10-15Printing Dimensions NEGOTIATION22Asiya Javayant
1023Octavia G MarrierCanada2026-10-09Rousseaux, Michael Esq RENEWAL78Onyama Limba
1024Deepesh H KolmetzFrance2026-10-15King, Christopher A Esq PROPOSAL20Amy Elsner
1025David S AmigonAustralia2026-10-10Rousseaux, Michael Esq UNQUALIFIED66Stephen Shaw
1026Maria B ShinkoIndia2026-09-21Rousseaux, Michael Esq QUALIFIED13Bernardo Dominic
1027Silvio X NickaBrazil2026-09-28Chemel, James L Cpa UNQUALIFIED25Ivan Magalhaes
1028Murillo N DoeItaly2026-09-21Rangoni Of Florence PROPOSAL75Anna Fali
1029Maisha A BriddickItaly2026-10-11Chemel, James L Cpa PROPOSAL58Asiya Javayant
1030Claire U MaletArgentina2026-10-09Rangoni Of Florence UNQUALIFIED40Elwin Sharvill
1031Ricardo N GarufiFrance2026-09-29King, Christopher A Esq PROPOSAL67Bernardo Dominic
1032Alejandro I RimItaly2026-10-06King, Christopher A Esq PROPOSAL5Ioni Bowcher
1033Mayumi I ButtArgentina2026-10-03Feltz Printing Service NEW57Stephen Shaw
1034Julie B DilliardItaly2026-10-04Benton, John B Jr QUALIFIED96Elwin Sharvill
1035Aruna H FigeroaJapan2026-10-17Feltz Printing Service QUALIFIED21Bernardo Dominic
1036Silvio U ButtFrance2026-10-17Commercial Press UNQUALIFIED84Onyama Limba
1037Ashley D CaudyGermany2026-09-26Dorl, James J Esq PROPOSAL82Ioni Bowcher
1038Faith L SchemmerCanada2026-09-20Commercial Press NEW30Asiya Javayant
1039Chavez X ButtRussia2026-09-25Chanay, Jeffrey A Esq NEGOTIATION74Amy Elsner
1040Adams J WieserCanada2026-10-18Feiner Bros UNQUALIFIED89Amy Elsner
1041Emily A FigeroaItaly2026-10-12Chanay, Jeffrey A Esq UNQUALIFIED85Asiya Javayant
1042Ricardo G MaletGermany2026-10-10Chemel, James L Cpa PROPOSAL5Stephen Shaw
1043Sinclair Z ChuiArgentina2026-10-15King, Christopher A Esq UNQUALIFIED27Anna Fali
1044Morrow T DarakjyFrance2026-09-25King, Christopher A Esq PROPOSAL22Ioni Bowcher
1045Arvin N NickaAustralia2026-10-11Chanay, Jeffrey A Esq PROPOSAL94Onyama Limba
1046Aika V ShinkoCanada2026-10-18Buckley Miller Wright QUALIFIED47Bernardo Dominic
1047Mayumi N FlosiAustralia2026-10-04Buckley Miller Wright NEW70Ivan Magalhaes
1048Arvin J NickaGermany2026-10-14Buckley Miller Wright PROPOSAL71Bernardo Dominic
1049Mujtaba N GlickArgentina2026-09-29King, Christopher A Esq RENEWAL18Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony S SchemmerSpainStephen Shaw RENEWAL
Ricardo L CaldareraRussiaAmy Elsner QUALIFIED
Murillo N GauchoItalyBernardo Dominic UNQUALIFIED
Leja J MaletFranceStephen Shaw RENEWAL
Cody H GarufiRussiaStephen Shaw UNQUALIFIED
Wickens O CampainSpainBernardo Dominic UNQUALIFIED
Darci Z TollnerFranceIoni Bowcher PROPOSAL
James D FlosiFranceBernardo Dominic NEW
Claire D MorascaIndiaBernardo Dominic NEGOTIATION
Octavia C ButtCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois I InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Adams U MacleadIndiaBernardo Dominic NEGOTIATION
Julie E ButtItalyXuxue Feng NEW
Kadeem B GarufiUnited KingdomBernardo Dominic RENEWAL
Morrow S RimUnited KingdomIvan Magalhaes PROPOSAL
Aruna Z GillianBrazilBernardo Dominic NEW
Mayumi P RimBrazilOnyama Limba NEGOTIATION
Octavia P ChuiIndiaAnna Fali RENEWAL
Jones G DarakjyGermanyBernardo Dominic PROPOSAL
Munro R ButtJapanStephen Shaw UNQUALIFIED
Jones E PerinBrazilIvan Magalhaes RENEWAL
James G VocelkaAustraliaIvan Magalhaes NEGOTIATION
Izzy A KolmetzJapanBernardo Dominic PROPOSAL
Ivar I AmigonBrazilOnyama Limba UNQUALIFIED
Nicolas I KuskoIndiaAnna Fali QUALIFIED
Deepesh K DarakjyIndiaBernardo Dominic RENEWAL
Tony Q BriddickItalyIvan Magalhaes NEW
Murillo A FigeroaIndiaStephen Shaw UNQUALIFIED
Aika N CaldareraJapanStephen Shaw NEW
Misaki W PoquetteUnited KingdomAsiya Javayant RENEWAL
Rodrigues P KolmetzItalyAmy Elsner RENEWAL
Stacey L PaprockiBrazilIoni Bowcher NEW
Maria R NestleAustraliaIoni Bowcher PROPOSAL
Francesco F CaudyUnited KingdomOnyama Limba NEGOTIATION
Antonio X MaletJapanAsiya Javayant NEGOTIATION
Claire Y BriddickGermanyAmy Elsner RENEWAL
Juan F GillianBrazilAsiya Javayant PROPOSAL
Smith F DilliardArgentinaAmy Elsner QUALIFIED
Alejandro R RimCanadaBernardo Dominic RENEWAL
Nicolas I FigeroaItalyStephen Shaw NEW
Ivar M WaycottBrazilOnyama Limba PROPOSAL
Ivar E GauchoFranceAmy Elsner PROPOSAL
Aruna C RulapaughUnited KingdomBernardo Dominic RENEWAL
Costa S MorascaSpainBernardo Dominic PROPOSAL
Costa Q SaylorsJapanXuxue Feng RENEWAL
Claire U VenereFranceXuxue Feng QUALIFIED
Nicolas Y VenereIndiaBernardo Dominic UNQUALIFIED
James V AmigonItalyXuxue Feng QUALIFIED
Aditya A FollerJapanIvan Magalhaes NEW
Ivar N ShinkoFranceBernardo Dominic RENEWAL
Frozen Columns
Name
Kadeem J Dilliard
Aika T Malet
Munro F Tollner
Alejandro E Darakjy
Octavia R Saylors
Juan M Oldroyd
Deepesh B Oldroyd
Cody Y Nicka
Jones B Iturbide
Cody W Inouye
Silvio R Foller
Maria E Sergi
Aruna Y Sergi
Leja A Vocelka
Maisha D Poquette
Cody P Ruta
Francesco Q Nicka
Greenwood Z Rulapaugh
Tony R Rim
Maria L Rim
Ivar C Malet
Costa J Kusko
Izzy G Doe
Sinclair O Shinko
Juan D Saylors
Maria T Kusko
Jennifer Y Bowley
Izzy H Sergi
David C Slusarski
Octavia X Bowley
Misaki A Rulapaugh
Clifford K Wieser
Greenwood W Doe
Nicolas A Kusko
Aditya C Caudy
Rodrigues B Caudy
Misaki T Ferencz
David L Ruta
Morrow K Malet
Aika G Perin
Mayumi E Albares
Aditya H Perin
Ivar Z Flosi
Morrow D Paprocki
Clifford G Ruta
Antonio K Waycott
Jones U Sergi
Darci O Whobrey
Kadeem N Slusarski
Chavez R Venere
IdCountryDate
1000Canada2026-09-20
1001Brazil2026-09-26
1002Brazil2026-09-20
1003Russia2026-10-17
1004United Kingdom2026-10-06
1005Australia2026-10-17
1006Australia2026-09-27
1007Russia2026-10-10
1008Australia2026-10-07
1009Italy2026-10-14
1010Japan2026-10-17
1011Russia2026-09-22
1012Italy2026-09-20
1013India2026-09-21
1014Spain2026-10-09
1015Brazil2026-10-03
1016Italy2026-10-10
1017Canada2026-10-12
1018Australia2026-10-15
1019Russia2026-10-18
1020Russia2026-09-28
1021France2026-10-10
1022Japan2026-09-23
1023Australia2026-10-09
1024Russia2026-10-04
1025Argentina2026-09-27
1026France2026-10-16
1027India2026-10-16
1028Italy2026-10-18
1029India2026-10-10
1030Spain2026-10-03
1031United Kingdom2026-10-11
1032United Kingdom2026-09-29
1033Spain2026-10-10
1034Argentina2026-10-14
1035Italy2026-10-14
1036Australia2026-10-07
1037Canada2026-09-23
1038Germany2026-10-16
1039Russia2026-10-03
1040Japan2026-10-05
1041Italy2026-10-01
1042Australia2026-09-20
1043United Kingdom2026-09-21
1044Canada2026-09-30
1045Brazil2026-10-17
1046India2026-10-11
1047India2026-09-29
1048Japan2026-10-03
1049Brazil2026-09-30

On-Demand Data

NameIdCountryDate
Sinclair C Inouye1000Australia2026-10-13
Costa J Tollner1001Brazil2026-10-18
Costa B Bolognia1002United Kingdom2026-10-17
Stacey X Albares1003India2026-09-24
Stacey U Malet1004France2026-10-07
Deepesh V Ostrosky1005Japan2026-10-17
Cody R Kolmetz1006India2026-10-10
Aruna U Caldarera1007Canada2026-09-23
Tony L Marrier1008Japan2026-09-24
Maria P Garufi1009Russia2026-10-16
Munro J Doe1010Spain2026-09-29
Cody C Whobrey1011Brazil2026-10-13
Emily V Nicka1012Argentina2026-10-10
Juan U Venere1013Argentina2026-09-19
Johnson F Saylors1014Argentina2026-10-06
Smith L Darakjy1015Japan2026-10-05
Nicolas L Ostrosky1016Japan2026-10-15
Mujtaba U Perin1017India2026-10-12
Claire W Dilliard1018Brazil2026-09-28
Ivar C Stockham1019Italy2026-09-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel J RutaItalyAmy Elsner NEGOTIATION
Leon F RoysterIndiaIoni Bowcher RENEWAL
Mujtaba S PoquetteItalyAsiya Javayant RENEWAL
Isabel F ShinkoArgentinaAnna Fali NEW
Darci C StensethArgentinaIoni Bowcher NEGOTIATION
Clifford B FigeroaJapanElwin Sharvill RENEWAL
Kadeem U PoquetteArgentinaAnna Fali NEGOTIATION
Smith K OldroydFranceOnyama Limba PROPOSAL
Antonio J OldroydJapanAsiya Javayant UNQUALIFIED
Cody V GarufiGermanyIoni Bowcher PROPOSAL
Juan B WhobreyItalyStephen Shaw NEGOTIATION
Alejandro X VenereCanadaOnyama Limba PROPOSAL
Octavia A GarufiArgentinaAnna Fali RENEWAL
Antonio H RimCanadaBernardo Dominic NEW
Claire N CampainSpainElwin Sharvill NEGOTIATION
Jones B FollerSpainIvan Magalhaes RENEWAL
Emily O CaudyItalyIoni Bowcher NEGOTIATION
Tony J PaprockiUnited KingdomIoni Bowcher RENEWAL
Juan Y StockhamRussiaXuxue Feng PROPOSAL
Mayumi I VenereItalyIoni Bowcher QUALIFIED
Stacey Y RoysterArgentinaIoni Bowcher UNQUALIFIED
Arvin N ButtRussiaIvan Magalhaes QUALIFIED
Clifford S IturbideJapanStephen Shaw NEW
Ivar E FlosiAustraliaXuxue Feng RENEWAL
Smith R RutaFranceAnna Fali PROPOSAL
Aika C AlbaresIndiaStephen Shaw NEGOTIATION
Costa V InouyeIndiaAnna Fali NEW
Aruna R StockhamItalyAmy Elsner NEGOTIATION
Wickens F SaylorsIndiaIvan Magalhaes PROPOSAL
Wickens G IturbideCanadaAmy Elsner NEGOTIATION
Morrow R WhobreyUnited KingdomIoni Bowcher RENEWAL
Aika E GillianCanadaBernardo Dominic NEGOTIATION
Wickens P VocelkaUnited KingdomElwin Sharvill QUALIFIED
Darci P PaprockiItalyIvan Magalhaes PROPOSAL
Izzy B WaycottJapanAmy Elsner UNQUALIFIED
Faith E DarakjyBrazilXuxue Feng RENEWAL
Jennifer V RimItalyStephen Shaw QUALIFIED
Greenwood Z CampainCanadaIvan Magalhaes RENEWAL
Maria F RimBrazilAsiya Javayant NEGOTIATION
Smith I BowleyIndiaIvan Magalhaes 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>