Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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 M CampainCanadaXuxue Feng NEGOTIATION
Maisha F IturbideItalyElwin Sharvill PROPOSAL
Francesco A ButtAustraliaBernardo Dominic UNQUALIFIED
Rodrigues U BologniaFranceStephen Shaw UNQUALIFIED
Francesco B SaylorsCanadaIoni Bowcher RENEWAL
Wickens Q AlbaresAustraliaOnyama Limba UNQUALIFIED
Murillo K FlosiFranceOnyama Limba QUALIFIED
Chavez C GillianUnited KingdomBernardo Dominic PROPOSAL
Ivar U SaylorsUnited KingdomOnyama Limba QUALIFIED
Smith A MorascaGermanyIvan Magalhaes PROPOSAL
Munro A SergiAustraliaBernardo Dominic RENEWAL
Nicolas J DilliardUnited KingdomBernardo Dominic RENEWAL
Cody R GarufiJapanAmy Elsner QUALIFIED
Maisha S NickaAustraliaAnna Fali RENEWAL
Misaki M GarufiCanadaAmy Elsner QUALIFIED
Ivar X WieserFranceAmy Elsner QUALIFIED
Salvatore G MacleadJapanAnna Fali QUALIFIED
Cody G MacleadGermanyAnna Fali UNQUALIFIED
Alejandro T CaudyUnited KingdomAsiya Javayant PROPOSAL
Alejandro L NestleIndiaElwin Sharvill NEW
Misaki N PoquetteArgentinaElwin Sharvill NEGOTIATION
Adams Y DoeJapanIoni Bowcher NEW
Salvatore U MarrierJapanAsiya Javayant NEW
Tony I RoysterGermanyBernardo Dominic NEGOTIATION
Arvin U FerenczUnited KingdomIoni Bowcher PROPOSAL
Maria V KuskoCanadaElwin Sharvill QUALIFIED
Aika E WhobreyIndiaAsiya Javayant RENEWAL
Mayumi B BriddickFranceStephen Shaw QUALIFIED
Johnson X AmigonUnited KingdomIvan Magalhaes RENEWAL
Claire D VocelkaFranceOnyama Limba UNQUALIFIED
Kadeem K ButtItalyAsiya Javayant UNQUALIFIED
Faith C RimJapanAmy Elsner RENEWAL
David V AlbaresRussiaAmy Elsner PROPOSAL
Murillo Q DoeBrazilOnyama Limba NEGOTIATION
Maria E AmigonRussiaXuxue Feng UNQUALIFIED
Chavez X MaletBrazilIvan Magalhaes RENEWAL
Maria M MacleadJapanAsiya Javayant NEW
Murillo Q AlbaresFranceStephen Shaw NEGOTIATION
Maria D GauchoSpainAnna Fali NEW
Greenwood B DarakjyArgentinaAnna Fali UNQUALIFIED
Adams V RulapaughJapanBernardo Dominic NEGOTIATION
Sinclair P MarrierFranceXuxue Feng NEGOTIATION
Silvio V RoysterCanadaStephen Shaw RENEWAL
Misaki T MorascaBrazilAmy Elsner QUALIFIED
Clifford I GauchoBrazilIvan Magalhaes QUALIFIED
Murillo J DilliardSpainAmy Elsner NEGOTIATION
Jeanfrancois M MarrierSpainXuxue Feng RENEWAL
Francesco V StockhamArgentinaStephen Shaw NEW
Salvatore E CaldareraJapanAsiya Javayant PROPOSAL
Cody E DarakjyJapanAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens N ShinkoJapanOnyama Limba NEW
Maisha M StockhamSpainOnyama Limba RENEWAL
Munro J AmigonCanadaElwin Sharvill QUALIFIED
Munro N StensethSpainBernardo Dominic RENEWAL
Maria D BologniaIndiaOnyama Limba RENEWAL
Cody I SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Octavia P DarakjyArgentinaAmy Elsner NEGOTIATION
Leja H AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Chavez N FlosiGermanyIvan Magalhaes NEGOTIATION
Rodrigues S GlickSpainStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois H PaprockiFrance2025-08-06Morlong Associates RENEWAL37Stephen Shaw
1001Maria L ShinkoCanada2025-08-28Rangoni Of Florence NEW3Xuxue Feng
1002Aika T InouyeSpain2025-08-26King, Christopher A Esq PROPOSAL47Asiya Javayant
1003Kadeem J TollnerCanada2025-08-01Truhlar And Truhlar Attys RENEWAL97Xuxue Feng
1004James X VenereRussia2025-08-08Commercial Press UNQUALIFIED69Bernardo Dominic
1005Mayumi R TollnerAustralia2025-08-05Chemel, James L Cpa UNQUALIFIED56Asiya Javayant
1006Wickens I WieserCanada2025-08-21Buckley Miller Wright NEW67Ivan Magalhaes
1007Maria U GauchoArgentina2025-08-07Truhlar And Truhlar Attys QUALIFIED61Onyama Limba
1008Isabel D CampainUnited Kingdom2025-08-08Chapman, Ross E Esq RENEWAL35Elwin Sharvill
1009Juan N WhobreyIndia2025-08-07Chemel, James L Cpa PROPOSAL1Amy Elsner
1010Leon S GillianGermany2025-08-02Truhlar And Truhlar Attys NEW73Amy Elsner
1011Izzy B WaycottBrazil2025-08-13Feiner Bros PROPOSAL52Asiya Javayant
1012Mayumi K DarakjyArgentina2025-08-04Chemel, James L Cpa UNQUALIFIED4Onyama Limba
1013Jeanfrancois P ChuiGermany2025-08-09King, Christopher A Esq PROPOSAL76Anna Fali
1014Adams S CampainRussia2025-08-24Rousseaux, Michael Esq UNQUALIFIED61Xuxue Feng
1015Aika U RoysterGermany2025-08-23Chanay, Jeffrey A Esq RENEWAL26Asiya Javayant
1016James G WhobreyIndia2025-08-23Rangoni Of Florence RENEWAL39Bernardo Dominic
1017Cody V MarrierIndia2025-08-08Dorl, James J Esq RENEWAL29Stephen Shaw
1018Salvatore E OldroydAustralia2025-08-16Truhlar And Truhlar Attys QUALIFIED87Bernardo Dominic
1019Darci M FigeroaItaly2025-08-19Printing Dimensions QUALIFIED48Ivan Magalhaes
1020Antonio X BowleyCanada2025-08-25Feltz Printing Service NEGOTIATION16Onyama Limba
1021Nicolas I SlusarskiItaly2025-08-28Dorl, James J Esq QUALIFIED70Elwin Sharvill
1022Francesco D MaletRussia2025-08-02Morlong Associates RENEWAL74Ivan Magalhaes
1023Wickens Q MorascaCanada2025-08-11Rousseaux, Michael Esq UNQUALIFIED87Onyama Limba
1024Maria J DarakjyJapan2025-08-18Buckley Miller Wright PROPOSAL11Elwin Sharvill
1025David V SaylorsFrance2025-07-31Dorl, James J Esq QUALIFIED84Onyama Limba
1026Juan Z DilliardAustralia2025-08-04Dorl, James J Esq RENEWAL75Bernardo Dominic
1027Stacey N BriddickSpain2025-08-18Truhlar And Truhlar Attys NEGOTIATION35Anna Fali
1028Deepesh B ShinkoIndia2025-08-19King, Christopher A Esq UNQUALIFIED39Asiya Javayant
1029Francesco G RimItaly2025-08-03Chemel, James L Cpa QUALIFIED40Ivan Magalhaes
1030Maria D InouyeIndia2025-08-24Commercial Press NEW87Asiya Javayant
1031Jennifer P RutaCanada2025-08-14Rousseaux, Michael Esq PROPOSAL42Onyama Limba
1032Ivar T BriddickFrance2025-08-14Chemel, James L Cpa NEGOTIATION84Bernardo Dominic
1033Octavia E AlbaresItaly2025-08-22Rousseaux, Michael Esq RENEWAL97Anna Fali
1034Salvatore F NestleBrazil2025-08-26Truhlar And Truhlar Attys NEGOTIATION28Ivan Magalhaes
1035James W CaudyIndia2025-08-29Chanay, Jeffrey A Esq NEW9Anna Fali
1036Jefferson Z FollerCanada2025-08-25Feiner Bros NEW18Ivan Magalhaes
1037Smith N FollerUnited Kingdom2025-08-12Benton, John B Jr PROPOSAL68Anna Fali
1038Jefferson X BologniaArgentina2025-08-29Morlong Associates NEW88Stephen Shaw
1039Greenwood Z RulapaughCanada2025-08-18King, Christopher A Esq NEGOTIATION49Elwin Sharvill
1040Alejandro D RoysterRussia2025-08-06Benton, John B Jr QUALIFIED5Stephen Shaw
1041Isabel L GauchoGermany2025-08-11King, Christopher A Esq QUALIFIED27Anna Fali
1042Claire U OstroskyUnited Kingdom2025-08-25Buckley Miller Wright QUALIFIED68Bernardo Dominic
1043Faith H GillianFrance2025-08-06Morlong Associates NEGOTIATION37Anna Fali
1044Isabel Y CaldareraBrazil2025-08-29Chemel, James L Cpa RENEWAL62Bernardo Dominic
1045Adams M SergiArgentina2025-08-02Morlong Associates UNQUALIFIED60Xuxue Feng
1046Maria Z MarrierItaly2025-08-23Commercial Press UNQUALIFIED66Onyama Limba
1047Kadeem A BowleyJapan2025-08-03Commercial Press NEGOTIATION9Ioni Bowcher
1048David T IturbideCanada2025-08-07Morlong Associates UNQUALIFIED31Anna Fali
1049Juan N RulapaughFrance2025-07-31Chemel, James L Cpa NEW69Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Octavia D ShinkoAustraliaAsiya Javayant PROPOSAL
Adams C BologniaJapanAmy Elsner UNQUALIFIED
Sinclair S VenereJapanXuxue Feng UNQUALIFIED
Kaitlin H KuskoJapanOnyama Limba NEW
Misaki P GauchoArgentinaAsiya Javayant NEW
Maisha U SergiCanadaBernardo Dominic NEGOTIATION
Isabel S OldroydItalyElwin Sharvill QUALIFIED
Jeanfrancois E GlickArgentinaIoni Bowcher NEGOTIATION
Mujtaba B SergiBrazilAnna Fali NEGOTIATION
Mayumi Q WaycottJapanAmy Elsner PROPOSAL
Mayumi C ChuiItalyElwin Sharvill NEGOTIATION
Adams S GlickRussiaBernardo Dominic RENEWAL
Maria Y FlosiFranceXuxue Feng UNQUALIFIED
Smith Z KuskoUnited KingdomOnyama Limba PROPOSAL
Smith D CampainGermanyElwin Sharvill NEW
Ivar H WaycottFranceOnyama Limba NEW
Emily D ShinkoCanadaXuxue Feng QUALIFIED
Leon G InouyeAustraliaStephen Shaw NEW
Misaki W OldroydAustraliaXuxue Feng UNQUALIFIED
James D OldroydFranceOnyama Limba PROPOSAL
Ricardo S OldroydJapanIvan Magalhaes UNQUALIFIED
Nicolas W RutaArgentinaStephen Shaw QUALIFIED
James D GarufiJapanElwin Sharvill UNQUALIFIED
Greenwood T RimItalyIoni Bowcher UNQUALIFIED
Leon T MorascaItalyXuxue Feng UNQUALIFIED
Faith M FigeroaUnited KingdomStephen Shaw PROPOSAL
Stacey P NestleAustraliaOnyama Limba PROPOSAL
Silvio Y CampainFranceIoni Bowcher NEGOTIATION
Arvin X IturbideUnited KingdomAnna Fali NEGOTIATION
Cody C FollerGermanyAsiya Javayant QUALIFIED
Octavia K MorascaIndiaAsiya Javayant NEW
Cody V RimJapanAnna Fali RENEWAL
Julie R PaprockiJapanXuxue Feng UNQUALIFIED
Francesco G PerinFranceBernardo Dominic RENEWAL
Salvatore L SlusarskiBrazilXuxue Feng NEW
Silvio L CaldareraArgentinaIvan Magalhaes NEGOTIATION
James Z OstroskyCanadaAmy Elsner UNQUALIFIED
Isabel J KolmetzBrazilIoni Bowcher RENEWAL
Leon D BologniaIndiaIvan Magalhaes NEGOTIATION
Leon T CampainAustraliaOnyama Limba PROPOSAL
Mayumi D IturbideBrazilXuxue Feng PROPOSAL
Murillo L PaprockiRussiaElwin Sharvill UNQUALIFIED
Francesco V WaycottBrazilStephen Shaw RENEWAL
Misaki J MacleadFranceIoni Bowcher UNQUALIFIED
Juan U ButtSpainIvan Magalhaes RENEWAL
Clifford Y MorascaArgentinaIoni Bowcher QUALIFIED
Francesco L BriddickBrazilBernardo Dominic QUALIFIED
Kadeem T PoquetteGermanyIoni Bowcher NEW
Claire P ButtSpainStephen Shaw NEGOTIATION
Sinclair M RimSpainOnyama Limba UNQUALIFIED
Frozen Columns
Name
Kadeem U Caudy
Smith I Inouye
Munro Q Wieser
Morrow K Butt
Aditya U Figeroa
Aika O Venere
Juan V Flosi
Greenwood P Kusko
Aruna X Malet
Jefferson G Stenseth
Antonio Z Albares
Chavez Q Glick
Kadeem P Saylors
Aruna P Tollner
Clifford R Rulapaugh
Mujtaba K Waycott
Leja K Rulapaugh
Misaki A Royster
Francesco F Morasca
Alejandro D Nicka
Silvio G Glick
Claire P Doe
Antonio B Waycott
Jeanfrancois O Maclead
Antonio H Ostrosky
Clifford O Maclead
Mayumi B Marrier
Leja V Garufi
Leon H Venere
Leja X Sergi
Claire C Ruta
Adams D Slusarski
Deepesh J Maclead
Mayumi F Bolognia
Murillo Z Glick
Leja V Chui
Jennifer K Oldroyd
Leon P Bowley
Smith H Albares
Francesco R Flosi
Ashley C Wieser
Alejandro L Iturbide
Maria X Gaucho
Chavez D Malet
Deepesh Q Iturbide
Ashley E Gillian
Stacey D Caldarera
Maria G Royster
Octavia H Butt
David E Kolmetz
IdCountryDate
1000Brazil2025-08-05
1001United Kingdom2025-08-07
1002India2025-08-22
1003Russia2025-08-05
1004Italy2025-08-18
1005India2025-08-29
1006India2025-08-07
1007France2025-07-31
1008France2025-08-14
1009Argentina2025-08-13
1010Brazil2025-08-26
1011Italy2025-08-09
1012Russia2025-08-21
1013Russia2025-08-11
1014Australia2025-08-17
1015Argentina2025-08-27
1016United Kingdom2025-08-19
1017Brazil2025-08-25
1018India2025-08-04
1019Argentina2025-08-29
1020India2025-08-21
1021Germany2025-08-19
1022France2025-08-12
1023United Kingdom2025-08-08
1024France2025-08-15
1025Germany2025-08-10
1026Brazil2025-08-08
1027Spain2025-08-22
1028Japan2025-08-18
1029Japan2025-08-20
1030India2025-08-05
1031Russia2025-08-06
1032Russia2025-08-12
1033Japan2025-08-05
1034Germany2025-08-26
1035Brazil2025-08-10
1036India2025-08-11
1037Brazil2025-08-07
1038France2025-08-27
1039Canada2025-08-15
1040Russia2025-08-14
1041Spain2025-08-12
1042Japan2025-08-18
1043Italy2025-08-27
1044Canada2025-08-11
1045Australia2025-08-22
1046Italy2025-08-29
1047Canada2025-08-21
1048Brazil2025-08-08
1049Japan2025-08-01

On-Demand Data

NameIdCountryDate
Morrow I Gillian1000United Kingdom2025-08-26
Munro P Ferencz1001Japan2025-08-10
Aruna V Rim1002Spain2025-08-21
Murillo B Campain1003Argentina2025-08-19
Greenwood O Morasca1004Germany2025-08-19
Isabel H Perin1005Italy2025-08-01
Alejandro T Rulapaugh1006India2025-08-10
Francesco S Nicka1007Australia2025-08-03
Mayumi L Caldarera1008United Kingdom2025-08-09
Aruna I Perin1009Argentina2025-08-26
Claire L Paprocki1010United Kingdom2025-08-17
Antonio D Marrier1011Italy2025-08-11
Aika E Glick1012Argentina2025-08-24
Octavia Y Iturbide1013Russia2025-08-28
Rodrigues C Stenseth1014Russia2025-08-29
Clifford L Slusarski1015India2025-08-06
Jefferson H Caldarera1016Germany2025-08-05
Aditya E Whobrey1017United Kingdom2025-08-01
Silvio H Oldroyd1018India2025-08-24
Leon J Kolmetz1019Italy2025-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley L AlbaresGermanyBernardo Dominic RENEWAL
Stacey K AmigonCanadaOnyama Limba PROPOSAL
Maria T NestleFranceAsiya Javayant NEW
Leon I WhobreyUnited KingdomAmy Elsner NEW
Maisha N CampainUnited KingdomBernardo Dominic RENEWAL
Alejandro Q VenereArgentinaIoni Bowcher NEGOTIATION
Ricardo D GillianSpainAmy Elsner QUALIFIED
Faith T BowleyGermanyBernardo Dominic NEGOTIATION
Octavia P InouyeIndiaStephen Shaw NEGOTIATION
Maria B MaletItalyStephen Shaw QUALIFIED
Jefferson B FlosiGermanyAnna Fali UNQUALIFIED
Leja X IturbideIndiaAnna Fali RENEWAL
Isabel M CaldareraAustraliaXuxue Feng QUALIFIED
Ashley E MorascaGermanyElwin Sharvill NEW
Francesco H GlickItalyAnna Fali RENEWAL
Nicolas P VenereBrazilIvan Magalhaes QUALIFIED
Octavia A ShinkoGermanyIvan Magalhaes NEW
Isabel W VenereGermanyStephen Shaw UNQUALIFIED
Aditya B WhobreyAustraliaIvan Magalhaes NEGOTIATION
Rodrigues J KolmetzAustraliaXuxue Feng NEGOTIATION
Sinclair O TollnerRussiaStephen Shaw NEGOTIATION
Stacey X SaylorsAustraliaIvan Magalhaes NEGOTIATION
Costa F DoeAustraliaIoni Bowcher NEW
Ricardo X RulapaughIndiaAnna Fali NEGOTIATION
Isabel Y PaprockiJapanOnyama Limba UNQUALIFIED
Misaki Y OstroskyUnited KingdomOnyama Limba NEW
Sinclair V BologniaAustraliaBernardo Dominic RENEWAL
Aruna T KuskoBrazilAmy Elsner NEW
Aika Q OstroskyAustraliaElwin Sharvill UNQUALIFIED
Faith M AlbaresCanadaAmy Elsner NEGOTIATION
Clifford E InouyeIndiaStephen Shaw NEW
David Z FlosiSpainBernardo Dominic QUALIFIED
Nicolas E CampainSpainStephen Shaw UNQUALIFIED
Darci D WaycottFranceIoni Bowcher RENEWAL
Munro V NickaJapanXuxue Feng PROPOSAL
Ashley O DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Leon V FerenczCanadaAsiya Javayant PROPOSAL
Chavez M CampainCanadaAsiya Javayant QUALIFIED
Darci N FerenczUnited KingdomOnyama Limba NEW
Alejandro S CampainIndiaAnna Fali 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>