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
Octavia C MaletGermanyBernardo Dominic PROPOSAL
Mujtaba Y DarakjyRussiaAnna Fali UNQUALIFIED
Wickens D StensethAustraliaOnyama Limba PROPOSAL
Smith Q PaprockiSpainOnyama Limba NEGOTIATION
Maria T IturbideRussiaElwin Sharvill QUALIFIED
Kadeem R FlosiItalyIvan Magalhaes QUALIFIED
Greenwood Y OldroydIndiaAmy Elsner PROPOSAL
Clifford X SergiBrazilOnyama Limba QUALIFIED
Francesco S KuskoItalyAnna Fali NEGOTIATION
Aika B ButtFranceAmy Elsner UNQUALIFIED
Aika C VocelkaJapanAmy Elsner NEW
Deepesh M GarufiIndiaStephen Shaw RENEWAL
Salvatore D MaletIndiaXuxue Feng UNQUALIFIED
Johnson Q DarakjyItalyBernardo Dominic UNQUALIFIED
Ricardo M StockhamCanadaBernardo Dominic NEGOTIATION
Jeanfrancois U PoquetteIndiaIvan Magalhaes UNQUALIFIED
Faith Z SchemmerItalyOnyama Limba QUALIFIED
Izzy Y VenereItalyIvan Magalhaes PROPOSAL
Faith J SchemmerItalyXuxue Feng QUALIFIED
James D FollerCanadaElwin Sharvill PROPOSAL
Nicolas Q OldroydUnited KingdomIvan Magalhaes NEW
Nicolas H TollnerCanadaBernardo Dominic RENEWAL
Izzy I CampainFranceAnna Fali QUALIFIED
Leja M StockhamAustraliaElwin Sharvill RENEWAL
Darci C DarakjyAustraliaAsiya Javayant NEW
Antonio Z WhobreyIndiaIvan Magalhaes PROPOSAL
Aditya H BriddickArgentinaIoni Bowcher NEGOTIATION
Murillo Z CaldareraJapanAnna Fali NEW
Murillo Y CaldareraJapanStephen Shaw QUALIFIED
Salvatore N WhobreyJapanAsiya Javayant NEGOTIATION
Cody O IturbideUnited KingdomAmy Elsner PROPOSAL
Maisha K ChuiIndiaAsiya Javayant QUALIFIED
Greenwood K FigeroaAustraliaIoni Bowcher RENEWAL
Emily O VocelkaJapanBernardo Dominic PROPOSAL
Aruna Q SaylorsRussiaOnyama Limba PROPOSAL
Juan B DarakjyRussiaXuxue Feng RENEWAL
Ashley P BowleyCanadaOnyama Limba UNQUALIFIED
James C PoquetteFranceBernardo Dominic UNQUALIFIED
Mayumi O FlosiCanadaIvan Magalhaes UNQUALIFIED
Jennifer T WaycottIndiaIvan Magalhaes PROPOSAL
Ricardo T KuskoJapanAsiya Javayant PROPOSAL
Jefferson R SchemmerSpainAsiya Javayant RENEWAL
Claire I FigeroaJapanBernardo Dominic RENEWAL
Nicolas J FollerFranceAnna Fali QUALIFIED
Maisha Z PoquetteArgentinaXuxue Feng QUALIFIED
Leja K CaudyBrazilAsiya Javayant NEGOTIATION
Francesco G KuskoJapanAsiya Javayant UNQUALIFIED
Clifford H ButtIndiaIvan Magalhaes UNQUALIFIED
Munro Q DilliardRussiaIvan Magalhaes QUALIFIED
Chavez S OstroskyUnited KingdomAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio A MacleadJapanStephen Shaw RENEWAL
Octavia N BriddickFranceXuxue Feng PROPOSAL
Salvatore X TollnerAustraliaAnna Fali UNQUALIFIED
Kadeem E RoysterArgentinaBernardo Dominic NEW
Jennifer N DarakjyBrazilOnyama Limba RENEWAL
James Y NestleJapanAmy Elsner NEGOTIATION
Kadeem M OstroskyUnited KingdomAmy Elsner NEGOTIATION
Claire U GauchoRussiaAsiya Javayant PROPOSAL
Deepesh A KolmetzUnited KingdomAsiya Javayant NEW
Costa B NestleUnited KingdomAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois J DoeIndia2026-09-01Benton, John B Jr QUALIFIED30Ioni Bowcher
1001Chavez P WieserAustralia2026-08-31King, Christopher A Esq PROPOSAL41Xuxue Feng
1002Stacey F InouyeFrance2026-09-17Dorl, James J Esq QUALIFIED65Xuxue Feng
1003Wickens R FollerAustralia2026-09-15Chemel, James L Cpa NEW53Elwin Sharvill
1004Izzy Z VocelkaArgentina2026-09-10Feltz Printing Service UNQUALIFIED20Bernardo Dominic
1005Tony L NestleUnited Kingdom2026-08-28Rousseaux, Michael Esq UNQUALIFIED68Onyama Limba
1006Kadeem P StockhamItaly2026-09-03Buckley Miller Wright QUALIFIED34Elwin Sharvill
1007Ricardo N FerenczGermany2026-09-01King, Christopher A Esq NEGOTIATION56Stephen Shaw
1008Salvatore E OldroydFrance2026-09-08Rousseaux, Michael Esq PROPOSAL15Bernardo Dominic
1009Silvio G NestleUnited Kingdom2026-09-20Morlong Associates NEW2Anna Fali
1010Stacey Y WaycottItaly2026-08-27Benton, John B Jr NEW63Xuxue Feng
1011David Z GarufiSpain2026-09-16Dorl, James J Esq NEW48Xuxue Feng
1012Silvio T PoquetteIndia2026-08-30King, Christopher A Esq QUALIFIED40Stephen Shaw
1013Morrow U OstroskyBrazil2026-08-26Buckley Miller Wright PROPOSAL5Anna Fali
1014Stacey Q BriddickSpain2026-09-21Chapman, Ross E Esq UNQUALIFIED72Bernardo Dominic
1015Silvio X DoeItaly2026-08-25Chanay, Jeffrey A Esq NEGOTIATION8Bernardo Dominic
1016Misaki L NestleFrance2026-08-26Chanay, Jeffrey A Esq RENEWAL58Onyama Limba
1017Kaitlin O WaycottBrazil2026-09-20Rousseaux, Michael Esq PROPOSAL17Ioni Bowcher
1018Johnson B OstroskyAustralia2026-09-16Feiner Bros NEGOTIATION18Ioni Bowcher
1019Silvio X DilliardArgentina2026-09-22Chemel, James L Cpa QUALIFIED46Amy Elsner
1020David H RulapaughCanada2026-09-23Benton, John B Jr NEW72Xuxue Feng
1021Sinclair Q CaudyAustralia2026-09-13King, Christopher A Esq PROPOSAL16Ioni Bowcher
1022Francesco H VenereUnited Kingdom2026-09-03King, Christopher A Esq NEGOTIATION39Anna Fali
1023Misaki Y BriddickArgentina2026-08-26Feltz Printing Service PROPOSAL48Xuxue Feng
1024Nicolas S DarakjyUnited Kingdom2026-09-21Rangoni Of Florence RENEWAL69Xuxue Feng
1025Jefferson T PoquetteAustralia2026-08-28Feiner Bros NEW24Ioni Bowcher
1026Silvio V RutaBrazil2026-09-04Printing Dimensions PROPOSAL56Ivan Magalhaes
1027Deepesh P WhobreyIndia2026-09-06Printing Dimensions RENEWAL13Amy Elsner
1028Greenwood F GlickIndia2026-08-29Chapman, Ross E Esq NEGOTIATION45Elwin Sharvill
1029Maisha E KuskoArgentina2026-09-11Chapman, Ross E Esq RENEWAL12Amy Elsner
1030Tony I InouyeArgentina2026-09-23Chanay, Jeffrey A Esq QUALIFIED45Amy Elsner
1031Alejandro K VocelkaFrance2026-09-03Chemel, James L Cpa NEGOTIATION97Ivan Magalhaes
1032Cody G AmigonSpain2026-09-08Chanay, Jeffrey A Esq UNQUALIFIED1Asiya Javayant
1033Izzy T FigeroaSpain2026-09-16King, Christopher A Esq NEW32Elwin Sharvill
1034Nicolas I SergiAustralia2026-09-21Printing Dimensions QUALIFIED71Amy Elsner
1035Leja X AlbaresAustralia2026-08-26Chemel, James L Cpa QUALIFIED85Ioni Bowcher
1036Jeanfrancois C FollerUnited Kingdom2026-09-01Buckley Miller Wright NEGOTIATION52Asiya Javayant
1037Smith Q GillianCanada2026-09-09Dorl, James J Esq UNQUALIFIED10Asiya Javayant
1038Aika N WhobreyBrazil2026-08-29Buckley Miller Wright PROPOSAL75Xuxue Feng
1039Wickens Q ShinkoFrance2026-08-29Benton, John B Jr NEW58Stephen Shaw
1040Isabel Z GauchoCanada2026-09-18Benton, John B Jr UNQUALIFIED4Bernardo Dominic
1041Johnson G ChuiIndia2026-09-20King, Christopher A Esq UNQUALIFIED85Asiya Javayant
1042Juan A SergiGermany2026-09-12Benton, John B Jr NEW59Amy Elsner
1043Stacey W GauchoAustralia2026-09-18Benton, John B Jr UNQUALIFIED82Elwin Sharvill
1044Izzy T GlickGermany2026-09-10King, Christopher A Esq NEW96Ioni Bowcher
1045James L MaletAustralia2026-09-22Dorl, James J Esq RENEWAL3Amy Elsner
1046Adams R RulapaughGermany2026-08-25Feiner Bros QUALIFIED77Bernardo Dominic
1047Isabel Y FigeroaRussia2026-09-13Dorl, James J Esq RENEWAL88Asiya Javayant
1048Greenwood L OstroskyUnited Kingdom2026-09-09Chemel, James L Cpa RENEWAL90Ivan Magalhaes
1049Faith S KuskoCanada2026-09-04Feltz Printing Service NEGOTIATION5Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Mayumi J WaycottFranceBernardo Dominic NEW
Jefferson Z RoysterItalyAmy Elsner NEW
Octavia Z RutaFranceBernardo Dominic QUALIFIED
Silvio W SchemmerBrazilAmy Elsner PROPOSAL
Leon W KuskoGermanyAmy Elsner NEGOTIATION
Leon T PoquetteJapanStephen Shaw NEGOTIATION
Chavez P PaprockiFranceOnyama Limba NEGOTIATION
Johnson B KuskoRussiaXuxue Feng PROPOSAL
Maria G MorascaAustraliaIvan Magalhaes QUALIFIED
Misaki A ShinkoGermanyAsiya Javayant NEGOTIATION
Sinclair R CampainRussiaAmy Elsner UNQUALIFIED
Murillo M SchemmerAustraliaAmy Elsner PROPOSAL
Ashley Y RutaAustraliaElwin Sharvill PROPOSAL
Misaki Y SlusarskiBrazilIvan Magalhaes PROPOSAL
Rodrigues H CaudyBrazilBernardo Dominic UNQUALIFIED
Salvatore L FerenczArgentinaOnyama Limba PROPOSAL
Stacey P GillianArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois G StockhamCanadaAmy Elsner PROPOSAL
James X MaletCanadaIvan Magalhaes NEW
James L NickaBrazilAnna Fali PROPOSAL
Sinclair L FigeroaBrazilStephen Shaw NEGOTIATION
Aditya U MorascaItalyAnna Fali QUALIFIED
Kadeem K PerinGermanyElwin Sharvill NEW
Ricardo K SergiAustraliaAnna Fali PROPOSAL
Chavez O DilliardRussiaAmy Elsner RENEWAL
Aditya Q OstroskyCanadaIoni Bowcher PROPOSAL
Maisha P WieserItalyAsiya Javayant PROPOSAL
Johnson H FollerArgentinaElwin Sharvill NEGOTIATION
Misaki X SaylorsGermanyAsiya Javayant UNQUALIFIED
Tony E MaletJapanAmy Elsner PROPOSAL
Emily T ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Faith F FollerGermanyOnyama Limba UNQUALIFIED
Mujtaba A MaletAustraliaElwin Sharvill QUALIFIED
Darci F FlosiGermanyStephen Shaw QUALIFIED
Jeanfrancois D SchemmerRussiaAmy Elsner PROPOSAL
David P PoquetteArgentinaStephen Shaw NEGOTIATION
Alejandro M FerenczGermanyXuxue Feng NEW
Arvin Z MaletCanadaAsiya Javayant PROPOSAL
Maisha Y NickaArgentinaAmy Elsner UNQUALIFIED
Nicolas R MarrierSpainBernardo Dominic RENEWAL
Costa H ButtUnited KingdomIvan Magalhaes RENEWAL
Isabel W BowleyIndiaAmy Elsner PROPOSAL
Jefferson E PoquetteSpainOnyama Limba PROPOSAL
Mujtaba A MaletUnited KingdomAnna Fali NEGOTIATION
Aditya J ShinkoAustraliaAnna Fali NEW
Antonio Q DilliardAustraliaOnyama Limba NEW
Greenwood J MorascaCanadaStephen Shaw PROPOSAL
David Z SaylorsCanadaAmy Elsner NEW
Costa N GauchoJapanAsiya Javayant UNQUALIFIED
Leja L FerenczSpainXuxue Feng QUALIFIED
Frozen Columns
Name
Leja V Butt
Aditya S Butt
Darci H Marrier
Ricardo K Glick
Ivar D Gaucho
Munro E Perin
Johnson K Whobrey
Ashley V Inouye
Misaki X Stockham
Claire V Tollner
Adams E Briddick
Arvin O Bolognia
Octavia V Marrier
Leon E Venere
Murillo L Ruta
Ricardo I Tollner
Munro M Inouye
Ivar F Poquette
Rodrigues F Kusko
Alejandro A Waycott
Izzy L Rulapaugh
Smith S Royster
Izzy C Iturbide
Wickens Z Caldarera
Kaitlin U Saylors
Rodrigues R Whobrey
Juan G Rulapaugh
Ricardo A Oldroyd
Munro D Ostrosky
Jennifer X Waycott
Jeanfrancois U Flosi
Chavez P Ferencz
Munro K Royster
Sinclair U Ruta
Mayumi M Waycott
Ricardo K Poquette
Tony J Royster
Emily K Marrier
Mayumi D Malet
Octavia X Caudy
Mujtaba Z Glick
Maisha F Campain
Ivar T Glick
Faith A Rim
Aditya E Caldarera
Juan I Inouye
Misaki A Poquette
Nicolas I Nicka
Kaitlin V Sergi
Octavia O Foller
IdCountryDate
1000Spain2026-09-15
1001Australia2026-09-01
1002Brazil2026-09-08
1003Australia2026-09-18
1004Italy2026-08-25
1005India2026-09-12
1006Russia2026-09-22
1007Argentina2026-09-07
1008Canada2026-09-17
1009France2026-08-29
1010Russia2026-09-05
1011Japan2026-09-17
1012United Kingdom2026-09-20
1013Argentina2026-09-02
1014India2026-08-29
1015India2026-09-11
1016Germany2026-09-10
1017Russia2026-09-09
1018Australia2026-08-31
1019Italy2026-08-29
1020Australia2026-08-29
1021France2026-08-29
1022Canada2026-08-27
1023Canada2026-09-21
1024Argentina2026-09-07
1025India2026-09-12
1026Japan2026-08-28
1027India2026-09-10
1028Japan2026-09-20
1029Canada2026-09-22
1030Brazil2026-09-02
1031Spain2026-08-29
1032India2026-09-15
1033Australia2026-09-01
1034Germany2026-08-31
1035United Kingdom2026-09-04
1036Canada2026-08-30
1037Canada2026-09-21
1038Japan2026-08-29
1039Spain2026-09-07
1040Brazil2026-09-07
1041Canada2026-09-06
1042Japan2026-09-09
1043Germany2026-08-25
1044India2026-09-06
1045Japan2026-08-28
1046Australia2026-09-04
1047France2026-09-10
1048Germany2026-09-21
1049Russia2026-08-30

On-Demand Data

NameIdCountryDate
Ivar Q Campain1000Russia2026-09-16
Mayumi Q Kusko1001Japan2026-09-23
Julie V Paprocki1002Germany2026-09-12
Octavia L Ferencz1003France2026-09-08
Maisha Y Morasca1004Brazil2026-09-09
Cody X Nestle1005India2026-09-15
Smith N Slusarski1006Germany2026-09-03
Octavia Q Figeroa1007Japan2026-09-14
Jones T Malet1008Canada2026-08-27
Jefferson V Darakjy1009Canada2026-09-22
Rodrigues N Stenseth1010Russia2026-09-14
Kaitlin U Kusko1011India2026-08-25
Adams Z Glick1012Argentina2026-08-29
Deepesh X Ferencz1013France2026-09-14
Leon A Slusarski1014Argentina2026-08-28
Rodrigues G Stockham1015Australia2026-08-29
Deepesh T Marrier1016France2026-09-10
Kadeem Z Malet1017Australia2026-09-02
Johnson L Doe1018Russia2026-09-20
Maria A Vocelka1019Canada2026-09-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia T SaylorsFranceElwin Sharvill NEW
Francesco P BologniaSpainBernardo Dominic RENEWAL
Jones J BologniaGermanyXuxue Feng UNQUALIFIED
Sinclair O DilliardItalyAmy Elsner QUALIFIED
Jeanfrancois X AlbaresArgentinaXuxue Feng PROPOSAL
Smith A MacleadGermanyAmy Elsner RENEWAL
Misaki D InouyeArgentinaXuxue Feng PROPOSAL
Murillo V MaletItalyXuxue Feng PROPOSAL
Kadeem X FlosiJapanXuxue Feng UNQUALIFIED
Ashley D WaycottBrazilStephen Shaw NEGOTIATION
Alejandro U VocelkaItalyIvan Magalhaes NEW
Aruna V RoysterFranceIoni Bowcher UNQUALIFIED
Costa S ChuiRussiaAmy Elsner PROPOSAL
Izzy K DilliardGermanyIvan Magalhaes RENEWAL
Morrow G GlickFranceXuxue Feng RENEWAL
Mayumi P BologniaArgentinaOnyama Limba NEW
Francesco R RimUnited KingdomBernardo Dominic NEW
Francesco O FollerBrazilIoni Bowcher RENEWAL
Faith H KolmetzJapanOnyama Limba NEW
Isabel O DarakjyJapanIvan Magalhaes RENEWAL
Silvio L SergiJapanAmy Elsner NEGOTIATION
Tony W PoquetteFranceAmy Elsner PROPOSAL
Octavia G NickaJapanIoni Bowcher UNQUALIFIED
Costa K GillianBrazilXuxue Feng RENEWAL
Jennifer F InouyeJapanStephen Shaw NEGOTIATION
Izzy Q AmigonCanadaIvan Magalhaes NEW
Mujtaba P AmigonFranceOnyama Limba NEGOTIATION
Jeanfrancois M CaudyBrazilIvan Magalhaes PROPOSAL
Mujtaba F BriddickGermanyIvan Magalhaes PROPOSAL
Izzy G MaletArgentinaBernardo Dominic NEW
Aditya K MaletBrazilStephen Shaw NEW
Tony V StensethIndiaXuxue Feng QUALIFIED
Alejandro V InouyeSpainXuxue Feng QUALIFIED
Aika M WieserSpainBernardo Dominic QUALIFIED
Cody J CaldareraArgentinaAnna Fali RENEWAL
Izzy J StockhamIndiaXuxue Feng RENEWAL
James E MarrierBrazilAsiya Javayant NEW
Leja X VocelkaSpainAmy Elsner PROPOSAL
Sinclair L ShinkoAustraliaIoni Bowcher PROPOSAL
Misaki O SergiJapanStephen Shaw NEGOTIATION

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