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
Mayumi Q VocelkaFranceXuxue Feng RENEWAL
Aruna Q FollerArgentinaBernardo Dominic PROPOSAL
Maisha B RutaUnited KingdomElwin Sharvill NEW
Leja P PerinItalyAsiya Javayant UNQUALIFIED
Leon D StensethArgentinaIoni Bowcher UNQUALIFIED
Arvin V CaldareraAustraliaElwin Sharvill QUALIFIED
Faith Q RoysterItalyIoni Bowcher PROPOSAL
Jeanfrancois F SergiCanadaAnna Fali UNQUALIFIED
Claire W AmigonJapanIoni Bowcher NEGOTIATION
Francesco A WhobreyBrazilAsiya Javayant UNQUALIFIED
Claire O PoquetteUnited KingdomElwin Sharvill PROPOSAL
Jones I PerinArgentinaAsiya Javayant NEW
Kaitlin Z StensethCanadaAnna Fali QUALIFIED
Cody K OstroskyFranceElwin Sharvill PROPOSAL
Chavez E OstroskyGermanyElwin Sharvill PROPOSAL
Greenwood X GlickJapanAsiya Javayant QUALIFIED
Morrow B PerinFranceXuxue Feng UNQUALIFIED
Aika Z VocelkaSpainAsiya Javayant RENEWAL
Darci B StockhamAustraliaIvan Magalhaes NEGOTIATION
Stacey X BowleyBrazilIvan Magalhaes UNQUALIFIED
Maria D MaletIndiaIvan Magalhaes QUALIFIED
Isabel F VenereArgentinaBernardo Dominic PROPOSAL
Murillo G WhobreyArgentinaXuxue Feng NEW
Ivar M KolmetzAustraliaIoni Bowcher RENEWAL
Misaki W PerinArgentinaAnna Fali RENEWAL
Aditya Q MarrierIndiaBernardo Dominic QUALIFIED
Julie J PoquetteAustraliaOnyama Limba NEW
Aditya E RutaBrazilXuxue Feng RENEWAL
Munro P AmigonCanadaElwin Sharvill QUALIFIED
Leon I DoeItalyBernardo Dominic NEW
Jeanfrancois P SlusarskiGermanyIvan Magalhaes NEW
James S NestleRussiaIoni Bowcher UNQUALIFIED
Smith D VenereJapanAmy Elsner NEW
Cody O ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Silvio U MacleadBrazilBernardo Dominic NEW
Wickens C MarrierAustraliaAmy Elsner PROPOSAL
Francesco E WhobreyAustraliaBernardo Dominic NEW
Juan V IturbideFranceStephen Shaw UNQUALIFIED
Rodrigues J ChuiBrazilAsiya Javayant PROPOSAL
Wickens O TollnerRussiaStephen Shaw QUALIFIED
Kaitlin D PaprockiIndiaAmy Elsner NEW
Maria W VocelkaArgentinaXuxue Feng NEW
Octavia L PaprockiArgentinaElwin Sharvill UNQUALIFIED
Antonio U RutaSpainIoni Bowcher UNQUALIFIED
Kadeem S PerinBrazilAsiya Javayant UNQUALIFIED
David E MarrierBrazilXuxue Feng NEGOTIATION
Leja Z MaletBrazilBernardo Dominic NEW
Emily Z SergiRussiaIoni Bowcher QUALIFIED
Kadeem S ChuiBrazilXuxue Feng RENEWAL
David R CampainFranceAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Francesco X MaletFranceOnyama Limba UNQUALIFIED
Mayumi O SchemmerArgentinaOnyama Limba NEGOTIATION
Aditya S PoquetteJapanAmy Elsner NEW
Greenwood P MaletItalyBernardo Dominic PROPOSAL
Chavez D OldroydGermanyXuxue Feng RENEWAL
Salvatore C MaletCanadaAsiya Javayant NEW
Rodrigues E RoysterBrazilElwin Sharvill NEW
Salvatore F WhobreyCanadaBernardo Dominic NEGOTIATION
Munro K RulapaughArgentinaAmy Elsner UNQUALIFIED
James D MaletJapanStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba G CaudyAustralia2026-09-06Feiner Bros NEGOTIATION51Anna Fali
1001Morrow H IturbideSpain2026-09-14Truhlar And Truhlar Attys PROPOSAL46Bernardo Dominic
1002Emily I GlickCanada2026-09-10Rangoni Of Florence QUALIFIED24Ioni Bowcher
1003Jeanfrancois V ButtRussia2026-08-29Morlong Associates NEW58Amy Elsner
1004Darci Z MacleadGermany2026-09-05Morlong Associates UNQUALIFIED0Onyama Limba
1005Aika F RimRussia2026-09-01Buckley Miller Wright PROPOSAL21Ioni Bowcher
1006Ricardo G GillianSpain2026-09-01Dorl, James J Esq UNQUALIFIED36Stephen Shaw
1007Stacey K AmigonSpain2026-09-09Feiner Bros NEGOTIATION62Xuxue Feng
1008Arvin E BologniaGermany2026-09-17King, Christopher A Esq NEW43Anna Fali
1009Jefferson Y GlickGermany2026-09-05Chanay, Jeffrey A Esq RENEWAL25Stephen Shaw
1010Jones G FollerGermany2026-09-23Chapman, Ross E Esq UNQUALIFIED74Onyama Limba
1011Ivar S MarrierJapan2026-08-28Printing Dimensions NEGOTIATION96Asiya Javayant
1012Chavez T PerinArgentina2026-08-30Printing Dimensions RENEWAL41Elwin Sharvill
1013Kaitlin Q FollerFrance2026-09-14Rangoni Of Florence UNQUALIFIED81Anna Fali
1014David L AlbaresGermany2026-09-23Chapman, Ross E Esq RENEWAL42Amy Elsner
1015Isabel S OstroskyAustralia2026-09-03Rangoni Of Florence NEGOTIATION9Bernardo Dominic
1016Cody S GlickArgentina2026-09-05Printing Dimensions QUALIFIED46Stephen Shaw
1017David H BowleyArgentina2026-09-19King, Christopher A Esq NEW78Amy Elsner
1018Adams U FollerFrance2026-09-02Feiner Bros UNQUALIFIED49Asiya Javayant
1019Johnson Q OldroydAustralia2026-09-09Feiner Bros NEGOTIATION35Anna Fali
1020Aditya X FollerItaly2026-09-01Dorl, James J Esq UNQUALIFIED20Amy Elsner
1021Deepesh R BowleyArgentina2026-09-01Rousseaux, Michael Esq PROPOSAL90Bernardo Dominic
1022Izzy K BowleyGermany2026-09-06Commercial Press RENEWAL19Anna Fali
1023Stacey B DarakjyFrance2026-09-06Truhlar And Truhlar Attys UNQUALIFIED46Elwin Sharvill
1024Leja O ButtBrazil2026-09-18King, Christopher A Esq UNQUALIFIED4Anna Fali
1025Aditya R KuskoArgentina2026-09-15Printing Dimensions NEGOTIATION91Ivan Magalhaes
1026Silvio C IturbideCanada2026-09-02Feltz Printing Service UNQUALIFIED89Ivan Magalhaes
1027Octavia R ShinkoCanada2026-09-24Rangoni Of Florence NEGOTIATION78Asiya Javayant
1028Juan N CampainBrazil2026-09-03Chanay, Jeffrey A Esq NEW85Amy Elsner
1029Adams S CampainAustralia2026-09-11King, Christopher A Esq NEW45Elwin Sharvill
1030Mujtaba Z StensethArgentina2026-09-17Chapman, Ross E Esq PROPOSAL99Ioni Bowcher
1031James K SergiFrance2026-09-07Rangoni Of Florence QUALIFIED48Amy Elsner
1032Antonio G RutaFrance2026-09-24Benton, John B Jr NEW73Bernardo Dominic
1033Rodrigues Y AlbaresJapan2026-09-04Buckley Miller Wright UNQUALIFIED2Xuxue Feng
1034Clifford G WieserJapan2026-08-27Morlong Associates RENEWAL36Stephen Shaw
1035Johnson T WieserFrance2026-09-20Rangoni Of Florence QUALIFIED47Bernardo Dominic
1036Rodrigues U GlickBrazil2026-09-23Truhlar And Truhlar Attys UNQUALIFIED50Stephen Shaw
1037Jefferson V NestleCanada2026-09-14Dorl, James J Esq RENEWAL31Elwin Sharvill
1038Salvatore F StensethUnited Kingdom2026-09-24Rangoni Of Florence RENEWAL34Elwin Sharvill
1039Leon K MarrierGermany2026-09-24Feltz Printing Service NEGOTIATION63Onyama Limba
1040Jeanfrancois I CaudyArgentina2026-08-28Printing Dimensions RENEWAL45Elwin Sharvill
1041Claire V BowleyFrance2026-08-29Printing Dimensions PROPOSAL43Xuxue Feng
1042Izzy U OldroydItaly2026-09-25Chemel, James L Cpa QUALIFIED98Ioni Bowcher
1043Salvatore N GarufiBrazil2026-09-21Feiner Bros PROPOSAL34Stephen Shaw
1044Aika C ShinkoSpain2026-09-10King, Christopher A Esq UNQUALIFIED12Onyama Limba
1045Isabel L IturbideArgentina2026-09-22Chemel, James L Cpa NEGOTIATION62Elwin Sharvill
1046Ashley S VenereGermany2026-09-08Morlong Associates PROPOSAL13Onyama Limba
1047Maisha J DilliardFrance2026-09-11Printing Dimensions UNQUALIFIED92Asiya Javayant
1048Murillo L ButtAustralia2026-09-07Dorl, James J Esq PROPOSAL44Onyama Limba
1049Mujtaba G PerinArgentina2026-08-27Dorl, James J Esq NEGOTIATION10Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues E InouyeFranceAsiya Javayant NEGOTIATION
Jeanfrancois Q FigeroaJapanAmy Elsner NEGOTIATION
David T ButtSpainOnyama Limba NEGOTIATION
Juan M AmigonItalyAnna Fali NEGOTIATION
Arvin J DilliardAustraliaIoni Bowcher RENEWAL
Greenwood N KolmetzRussiaAnna Fali UNQUALIFIED
Kaitlin S StensethRussiaIoni Bowcher RENEWAL
Jennifer A SlusarskiItalyAsiya Javayant NEW
Costa U GlickSpainOnyama Limba NEW
Jennifer Y RoysterJapanIvan Magalhaes UNQUALIFIED
David N SergiGermanyXuxue Feng QUALIFIED
Misaki J OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Aruna N FerenczCanadaIvan Magalhaes PROPOSAL
Kaitlin E RutaJapanAsiya Javayant NEW
Leon E KuskoSpainAnna Fali QUALIFIED
Maisha I BowleyBrazilIoni Bowcher QUALIFIED
Faith E MarrierJapanAnna Fali UNQUALIFIED
Jennifer G NickaAustraliaBernardo Dominic NEGOTIATION
Emily L CaudyItalyIvan Magalhaes QUALIFIED
Wickens C PerinUnited KingdomIoni Bowcher NEW
Leon K GarufiCanadaBernardo Dominic UNQUALIFIED
Morrow P SaylorsFranceStephen Shaw UNQUALIFIED
Salvatore T GillianSpainAmy Elsner PROPOSAL
James Y GauchoFranceStephen Shaw QUALIFIED
Juan Z DilliardBrazilStephen Shaw QUALIFIED
Greenwood Q DilliardCanadaBernardo Dominic QUALIFIED
Wickens L OldroydJapanBernardo Dominic QUALIFIED
Ivar F RoysterAustraliaIoni Bowcher UNQUALIFIED
Leja E ShinkoItalyElwin Sharvill RENEWAL
David K FlosiJapanStephen Shaw NEGOTIATION
James Y StockhamUnited KingdomXuxue Feng PROPOSAL
Leon K FlosiArgentinaXuxue Feng UNQUALIFIED
Rodrigues Y SergiFranceIvan Magalhaes UNQUALIFIED
Leon P DoeIndiaIoni Bowcher QUALIFIED
Nicolas R SergiItalyElwin Sharvill PROPOSAL
Arvin Q RoysterSpainAsiya Javayant NEGOTIATION
Juan X DoeCanadaIoni Bowcher QUALIFIED
Murillo C PerinBrazilXuxue Feng RENEWAL
Juan U MaletGermanyBernardo Dominic QUALIFIED
Isabel N GillianJapanElwin Sharvill RENEWAL
Morrow F GillianIndiaAmy Elsner NEW
Isabel S PerinBrazilIoni Bowcher RENEWAL
Maisha H GarufiItalyAsiya Javayant PROPOSAL
Cody R CaldareraFranceOnyama Limba UNQUALIFIED
Aruna V FerenczGermanyElwin Sharvill NEW
Francesco E GlickUnited KingdomIoni Bowcher PROPOSAL
Salvatore K RutaAustraliaAnna Fali NEW
Tony Z IturbideIndiaStephen Shaw UNQUALIFIED
Chavez P InouyeRussiaBernardo Dominic UNQUALIFIED
Isabel S RutaJapanIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Arvin W Stockham
Aika L Ruta
Silvio A Gillian
Kaitlin O Foller
Mujtaba X Morasca
Aruna K Kusko
Sinclair H Caldarera
Munro E Ruta
Aruna F Caudy
Julie S Perin
Kadeem A Maclead
Cody X Inouye
Tony T Whobrey
Juan C Caudy
Leja H Tollner
Rodrigues U Gillian
Mujtaba E Nestle
Faith S Shinko
Sinclair D Malet
Chavez H Butt
Alejandro I Royster
Leja M Kolmetz
Francesco N Figeroa
Jennifer H Wieser
Alejandro M Caudy
Izzy E Tollner
Francesco S Ostrosky
Maisha S Stockham
Costa S Kolmetz
Chavez Q Waycott
Octavia Y Ruta
Jones H Iturbide
Silvio A Gaucho
Nicolas R Glick
Jefferson U Butt
Mayumi U Chui
Julie J Slusarski
Jeanfrancois M Marrier
Johnson K Sergi
Cody V Rulapaugh
Arvin J Gaucho
Morrow N Poquette
Aditya B Perin
Faith F Rim
Maisha T Slusarski
Claire F Shinko
Mayumi L Flosi
Stacey C Tollner
Julie H Doe
Ashley F Chui
IdCountryDate
1000Spain2026-09-13
1001Spain2026-09-06
1002United Kingdom2026-09-05
1003Russia2026-09-04
1004Australia2026-09-10
1005Japan2026-09-03
1006Canada2026-09-18
1007Australia2026-09-06
1008Japan2026-09-20
1009Brazil2026-09-24
1010United Kingdom2026-09-11
1011France2026-09-20
1012Russia2026-08-27
1013Brazil2026-09-16
1014Canada2026-09-08
1015Germany2026-09-25
1016Australia2026-09-24
1017Russia2026-08-28
1018Canada2026-08-28
1019Italy2026-09-14
1020United Kingdom2026-09-16
1021Argentina2026-08-31
1022Russia2026-09-24
1023Russia2026-09-09
1024Canada2026-09-02
1025Australia2026-09-14
1026Spain2026-09-22
1027Australia2026-09-19
1028Germany2026-08-28
1029Germany2026-09-05
1030Australia2026-09-20
1031United Kingdom2026-09-06
1032Japan2026-09-04
1033Japan2026-09-18
1034Italy2026-09-03
1035India2026-09-17
1036Brazil2026-09-15
1037France2026-09-04
1038India2026-09-03
1039France2026-09-04
1040Argentina2026-09-23
1041Canada2026-08-31
1042Spain2026-09-11
1043Japan2026-09-19
1044Italy2026-09-13
1045Australia2026-09-03
1046India2026-09-08
1047Canada2026-09-09
1048Germany2026-09-08
1049France2026-09-08

On-Demand Data

NameIdCountryDate
Octavia U Bowley1000India2026-09-04
Leon T Oldroyd1001United Kingdom2026-09-18
Silvio M Amigon1002Argentina2026-09-21
Leja O Ferencz1003India2026-09-01
Costa U Gaucho1004Australia2026-09-08
Rodrigues E Kolmetz1005Brazil2026-09-08
Tony Q Malet1006Italy2026-09-22
Jeanfrancois J Schemmer1007Australia2026-09-16
Nicolas E Kusko1008Russia2026-08-27
Alejandro K Figeroa1009Spain2026-08-29
Aruna L Malet1010United Kingdom2026-09-02
Jennifer G Shinko1011Spain2026-09-14
Faith U Ferencz1012United Kingdom2026-09-18
Adams K Poquette1013Japan2026-09-24
Stacey J Oldroyd1014Japan2026-09-03
Cody Q Chui1015India2026-09-18
Alejandro S Venere1016United Kingdom2026-09-09
Kaitlin K Wieser1017Australia2026-09-11
Ricardo I Poquette1018Argentina2026-08-28
Jennifer M Kolmetz1019Australia2026-09-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja L CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Costa P VenereFranceOnyama Limba RENEWAL
Arvin S CaldareraFranceOnyama Limba RENEWAL
Jefferson L WieserArgentinaBernardo Dominic RENEWAL
Mujtaba H CampainSpainIvan Magalhaes NEGOTIATION
Salvatore X KolmetzSpainAmy Elsner QUALIFIED
Deepesh H PerinItalyAsiya Javayant NEW
Misaki I SlusarskiSpainElwin Sharvill PROPOSAL
Clifford G FollerGermanyElwin Sharvill NEW
Maria B DilliardBrazilOnyama Limba RENEWAL
Chavez Y GillianRussiaAnna Fali QUALIFIED
Julie A MorascaJapanElwin Sharvill RENEWAL
Julie D WhobreyRussiaStephen Shaw NEW
Aika K VenereIndiaIoni Bowcher QUALIFIED
Aika F FigeroaGermanyBernardo Dominic RENEWAL
Claire B MarrierItalyAsiya Javayant NEW
James U PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Julie Z RoysterSpainIvan Magalhaes RENEWAL
Cody V ButtGermanyElwin Sharvill QUALIFIED
Sinclair F FlosiArgentinaXuxue Feng UNQUALIFIED
Leon M VenereSpainIoni Bowcher RENEWAL
Costa A StensethIndiaAnna Fali NEGOTIATION
Claire H NickaJapanOnyama Limba UNQUALIFIED
Salvatore W NestleFranceStephen Shaw RENEWAL
Ivar V MarrierAustraliaAsiya Javayant UNQUALIFIED
Francesco Y NickaJapanIoni Bowcher PROPOSAL
Izzy P MaletBrazilOnyama Limba PROPOSAL
Greenwood M AmigonRussiaIvan Magalhaes NEGOTIATION
Murillo Q KolmetzArgentinaElwin Sharvill QUALIFIED
Maisha O OstroskyUnited KingdomElwin Sharvill NEW
Aditya L InouyeBrazilOnyama Limba RENEWAL
Juan S MacleadItalyAnna Fali RENEWAL
Cody R PaprockiBrazilElwin Sharvill NEGOTIATION
Jeanfrancois G BowleyAustraliaIoni Bowcher NEW
Maria E CampainJapanIvan Magalhaes PROPOSAL
Jeanfrancois Y KuskoAustraliaElwin Sharvill NEGOTIATION
Jefferson S MacleadGermanyAsiya Javayant NEW
Ashley E FlosiArgentinaStephen Shaw PROPOSAL
Morrow D KuskoGermanyAmy Elsner NEW
Emily A SergiArgentinaAnna Fali PROPOSAL

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