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
Ashley S WaycottJapanElwin Sharvill UNQUALIFIED
Aika O AlbaresIndiaAsiya Javayant PROPOSAL
Izzy W SlusarskiArgentinaAsiya Javayant NEGOTIATION
Deepesh A DilliardIndiaAnna Fali QUALIFIED
Isabel E BowleyGermanyIoni Bowcher NEGOTIATION
Leon P GarufiCanadaIoni Bowcher NEW
Leon I ShinkoAustraliaIvan Magalhaes NEW
Cody I FigeroaFranceIvan Magalhaes UNQUALIFIED
Faith Y CaldareraBrazilOnyama Limba PROPOSAL
Emily M DilliardAustraliaXuxue Feng UNQUALIFIED
Maisha N SlusarskiArgentinaAnna Fali PROPOSAL
Deepesh A PaprockiItalyAsiya Javayant PROPOSAL
Arvin W ChuiIndiaIvan Magalhaes PROPOSAL
Antonio J CampainJapanOnyama Limba UNQUALIFIED
Aditya P CaudyBrazilBernardo Dominic QUALIFIED
Darci I GillianSpainAsiya Javayant PROPOSAL
David Z StensethUnited KingdomOnyama Limba RENEWAL
Deepesh E AlbaresAustraliaIvan Magalhaes RENEWAL
Leja B SaylorsRussiaAnna Fali NEW
Juan T BowleyCanadaAsiya Javayant RENEWAL
Tony W FlosiFranceAnna Fali NEW
Clifford T PoquetteRussiaStephen Shaw NEGOTIATION
Tony W MorascaAustraliaIvan Magalhaes QUALIFIED
Morrow L RoysterRussiaAsiya Javayant PROPOSAL
Alejandro J InouyeArgentinaElwin Sharvill QUALIFIED
Jennifer Y NestleArgentinaXuxue Feng NEGOTIATION
Julie M OstroskyJapanAnna Fali QUALIFIED
Aika P IturbideJapanAmy Elsner NEW
Ivar D VocelkaGermanyAmy Elsner QUALIFIED
Juan W CaudyFranceAmy Elsner PROPOSAL
Johnson U MaletJapanIvan Magalhaes NEGOTIATION
Johnson M MacleadCanadaIvan Magalhaes UNQUALIFIED
Ricardo Y SergiCanadaAmy Elsner RENEWAL
Alejandro H CampainGermanyBernardo Dominic RENEWAL
Mayumi R DoeArgentinaAnna Fali QUALIFIED
Izzy B GillianSpainStephen Shaw UNQUALIFIED
Arvin Y WhobreyArgentinaBernardo Dominic NEW
Tony W GarufiGermanyStephen Shaw RENEWAL
Munro A RimFranceIoni Bowcher NEW
Greenwood D GillianIndiaBernardo Dominic QUALIFIED
Greenwood Y BologniaJapanAmy Elsner RENEWAL
Antonio Q AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Maisha D StensethCanadaBernardo Dominic QUALIFIED
Kadeem B PerinCanadaIvan Magalhaes RENEWAL
Kadeem E GlickFranceAmy Elsner PROPOSAL
Darci O WhobreyArgentinaIoni Bowcher NEW
Mayumi O BowleyItalyAmy Elsner UNQUALIFIED
Maria X InouyeIndiaIvan Magalhaes NEGOTIATION
Murillo B MaletItalyAnna Fali UNQUALIFIED
Rodrigues D MacleadUnited KingdomStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Claire T ButtArgentinaIvan Magalhaes PROPOSAL
Faith P FerenczJapanAsiya Javayant RENEWAL
Maria B AlbaresRussiaIvan Magalhaes PROPOSAL
Kaitlin O SlusarskiFranceXuxue Feng UNQUALIFIED
Emily F VenereRussiaAmy Elsner QUALIFIED
Ricardo R GarufiCanadaIoni Bowcher UNQUALIFIED
Faith R StensethUnited KingdomOnyama Limba PROPOSAL
Nicolas S GillianCanadaAmy Elsner UNQUALIFIED
Ricardo O StensethAustraliaAsiya Javayant UNQUALIFIED
Greenwood X AmigonCanadaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Y AmigonRussia2025-08-09Dorl, James J Esq NEGOTIATION44Xuxue Feng
1001Jefferson Z PerinCanada2025-07-30Dorl, James J Esq NEGOTIATION54Bernardo Dominic
1002Juan J DarakjyRussia2025-07-21Morlong Associates NEW75Stephen Shaw
1003Munro N FigeroaUnited Kingdom2025-08-09Buckley Miller Wright UNQUALIFIED61Elwin Sharvill
1004Mayumi T StensethCanada2025-07-31Feiner Bros PROPOSAL41Anna Fali
1005Murillo Y NestleBrazil2025-08-10Chanay, Jeffrey A Esq NEW49Asiya Javayant
1006Arvin Q MarrierBrazil2025-07-25Truhlar And Truhlar Attys RENEWAL80Stephen Shaw
1007Deepesh B VenereUnited Kingdom2025-07-16Rangoni Of Florence UNQUALIFIED1Anna Fali
1008Deepesh S AlbaresItaly2025-08-02Feiner Bros NEW93Ioni Bowcher
1009Greenwood U BriddickArgentina2025-07-24Chemel, James L Cpa UNQUALIFIED43Ivan Magalhaes
1010Jennifer J BowleyGermany2025-07-26Feiner Bros PROPOSAL77Amy Elsner
1011Isabel Z PoquetteSpain2025-08-06Benton, John B Jr NEGOTIATION71Bernardo Dominic
1012Chavez O SlusarskiBrazil2025-07-24Chemel, James L Cpa UNQUALIFIED41Bernardo Dominic
1013Tony F TollnerRussia2025-08-12Chapman, Ross E Esq NEW13Elwin Sharvill
1014Nicolas U NickaAustralia2025-07-31Feltz Printing Service NEGOTIATION89Elwin Sharvill
1015Ashley R TollnerArgentina2025-07-31Feltz Printing Service UNQUALIFIED51Bernardo Dominic
1016Emily N RoysterIndia2025-08-08Morlong Associates NEW34Ivan Magalhaes
1017Arvin I FlosiGermany2025-07-25Feiner Bros NEGOTIATION46Onyama Limba
1018Izzy N GlickUnited Kingdom2025-08-05Truhlar And Truhlar Attys NEGOTIATION40Ioni Bowcher
1019Jefferson S FollerUnited Kingdom2025-07-16Morlong Associates RENEWAL2Bernardo Dominic
1020Nicolas Y AlbaresArgentina2025-07-17Dorl, James J Esq QUALIFIED46Onyama Limba
1021Nicolas S AlbaresJapan2025-08-07Feltz Printing Service QUALIFIED37Asiya Javayant
1022Darci J DoeJapan2025-08-06Printing Dimensions NEGOTIATION54Ivan Magalhaes
1023Murillo T RulapaughUnited Kingdom2025-07-30Morlong Associates NEGOTIATION67Anna Fali
1024Juan S WhobreyCanada2025-08-12Rousseaux, Michael Esq QUALIFIED10Asiya Javayant
1025Sinclair N PerinItaly2025-08-12Feltz Printing Service QUALIFIED92Stephen Shaw
1026Murillo Z CaudyFrance2025-08-02Rousseaux, Michael Esq QUALIFIED14Anna Fali
1027James J OstroskyJapan2025-08-09Chemel, James L Cpa RENEWAL19Ivan Magalhaes
1028Costa T MarrierFrance2025-07-24Chapman, Ross E Esq RENEWAL6Stephen Shaw
1029Mujtaba R VenereGermany2025-07-17Dorl, James J Esq NEW47Asiya Javayant
1030Darci P RimFrance2025-07-15King, Christopher A Esq NEGOTIATION22Ioni Bowcher
1031Cody H BologniaAustralia2025-08-08Chemel, James L Cpa PROPOSAL11Ivan Magalhaes
1032Jefferson B WaycottFrance2025-07-22Truhlar And Truhlar Attys NEGOTIATION85Anna Fali
1033Francesco O GillianFrance2025-07-15Chemel, James L Cpa RENEWAL98Stephen Shaw
1034Darci U SergiFrance2025-07-26Buckley Miller Wright PROPOSAL8Asiya Javayant
1035Leja B BowleyBrazil2025-07-28Feiner Bros UNQUALIFIED42Elwin Sharvill
1036Julie K GlickGermany2025-07-30Feltz Printing Service NEW98Elwin Sharvill
1037Leon Q GlickFrance2025-07-24Benton, John B Jr NEW71Ivan Magalhaes
1038Adams B SaylorsArgentina2025-07-25Printing Dimensions QUALIFIED38Elwin Sharvill
1039Darci F FerenczAustralia2025-07-24Commercial Press UNQUALIFIED23Ioni Bowcher
1040Aditya S OstroskyUnited Kingdom2025-07-16Benton, John B Jr NEGOTIATION5Amy Elsner
1041Deepesh L FollerGermany2025-07-22Chapman, Ross E Esq QUALIFIED44Ivan Magalhaes
1042Mujtaba S RoysterGermany2025-07-21Chapman, Ross E Esq QUALIFIED15Ivan Magalhaes
1043Antonio Q BriddickSpain2025-08-02Benton, John B Jr NEGOTIATION39Onyama Limba
1044Deepesh T RimSpain2025-07-23Feltz Printing Service NEGOTIATION48Ivan Magalhaes
1045Jennifer Q NestleItaly2025-08-12Rousseaux, Michael Esq UNQUALIFIED1Bernardo Dominic
1046Julie E CaudyFrance2025-08-10Dorl, James J Esq RENEWAL1Stephen Shaw
1047Emily U RulapaughCanada2025-08-05Chemel, James L Cpa NEGOTIATION91Stephen Shaw
1048Julie M SchemmerSpain2025-08-10Chapman, Ross E Esq QUALIFIED58Asiya Javayant
1049Jeanfrancois L BriddickIndia2025-08-07Rousseaux, Michael Esq NEW78Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Tony T IturbideArgentinaBernardo Dominic NEW
Emily G BowleyRussiaAmy Elsner QUALIFIED
Arvin J SlusarskiBrazilAnna Fali QUALIFIED
Clifford P CaldareraFranceIvan Magalhaes RENEWAL
Clifford M FlosiJapanStephen Shaw NEGOTIATION
Isabel X PoquetteCanadaIvan Magalhaes NEGOTIATION
Jones M PerinIndiaOnyama Limba QUALIFIED
Chavez N PaprockiAustraliaIoni Bowcher PROPOSAL
Silvio U StockhamFranceAnna Fali NEGOTIATION
Kaitlin X StockhamAustraliaElwin Sharvill RENEWAL
Jennifer O OldroydCanadaIoni Bowcher NEW
Sinclair E MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba E FerenczUnited KingdomOnyama Limba RENEWAL
Claire W MaletBrazilIvan Magalhaes NEW
Stacey X MaletSpainIoni Bowcher NEGOTIATION
Claire B ShinkoSpainAmy Elsner UNQUALIFIED
Jennifer T CampainIndiaAsiya Javayant UNQUALIFIED
Munro O BowleyJapanXuxue Feng UNQUALIFIED
Clifford P CaldareraCanadaBernardo Dominic UNQUALIFIED
Juan T DarakjyFranceBernardo Dominic NEW
Mayumi N GauchoSpainElwin Sharvill RENEWAL
Adams M WieserCanadaXuxue Feng PROPOSAL
Faith P StockhamCanadaElwin Sharvill RENEWAL
Juan I FollerGermanyOnyama Limba QUALIFIED
Jones W OldroydSpainXuxue Feng UNQUALIFIED
Stacey S RulapaughCanadaOnyama Limba UNQUALIFIED
Alejandro L CaldareraArgentinaIvan Magalhaes UNQUALIFIED
Ricardo Q DoeArgentinaOnyama Limba RENEWAL
Darci E ButtFranceElwin Sharvill RENEWAL
Ricardo O MorascaItalyXuxue Feng QUALIFIED
Deepesh P KuskoFranceOnyama Limba PROPOSAL
Murillo Y DarakjySpainIoni Bowcher NEGOTIATION
Clifford B CampainJapanAsiya Javayant NEW
Faith R ShinkoItalyAsiya Javayant QUALIFIED
Adams H DilliardCanadaStephen Shaw PROPOSAL
Kadeem W NickaIndiaStephen Shaw PROPOSAL
Sinclair A NestleFranceStephen Shaw UNQUALIFIED
Chavez Z GlickArgentinaIoni Bowcher NEGOTIATION
Smith M RimSpainAsiya Javayant NEW
Aruna Y MaletItalyIvan Magalhaes QUALIFIED
Kaitlin R KolmetzSpainElwin Sharvill PROPOSAL
Aruna Y MaletGermanyBernardo Dominic UNQUALIFIED
Adams N SchemmerFranceIvan Magalhaes NEW
Greenwood Q ChuiBrazilXuxue Feng QUALIFIED
Jeanfrancois H BologniaUnited KingdomIvan Magalhaes QUALIFIED
Aika M RutaUnited KingdomXuxue Feng NEW
Smith R InouyeItalyAnna Fali NEW
James Y BologniaUnited KingdomStephen Shaw NEW
Morrow I CampainUnited KingdomAnna Fali PROPOSAL
Deepesh J RoysterFranceStephen Shaw UNQUALIFIED
Frozen Columns
Name
Kaitlin H Dilliard
Nicolas C Briddick
Kaitlin I Morasca
Smith B Tollner
David K Ostrosky
David W Iturbide
Maria S Nicka
Deepesh Y Kolmetz
Johnson M Darakjy
Ricardo Z Maclead
Ivar J Malet
Misaki J Ferencz
Francesco D Waycott
Ivar O Inouye
Francesco K Vocelka
Adams M Venere
Silvio H Poquette
Francesco O Caudy
Misaki Q Butt
Jennifer U Oldroyd
Leja G Garufi
Tony Z Garufi
Arvin I Vocelka
Murillo P Vocelka
Mujtaba Z Ruta
Clifford K Ferencz
Costa A Malet
Misaki P Stockham
Jennifer H Nicka
Stacey U Vocelka
Jennifer O Kusko
Leja C Ferencz
Smith R Figeroa
Silvio J Malet
Munro U Marrier
Jones N Glick
Claire F Stockham
Francesco Z Foller
Arvin J Rim
Jefferson M Saylors
Ivar Y Ferencz
Faith Z Poquette
Octavia V Stenseth
Stacey R Saylors
Izzy N Malet
Leja W Garufi
Alejandro O Stockham
James Z Caldarera
Costa U Shinko
Kadeem R Marrier
IdCountryDate
1000Japan2025-08-01
1001Argentina2025-08-06
1002Italy2025-08-08
1003Italy2025-07-31
1004Australia2025-07-17
1005United Kingdom2025-07-18
1006Brazil2025-07-26
1007Spain2025-07-31
1008Brazil2025-08-01
1009Brazil2025-08-04
1010Spain2025-08-01
1011Japan2025-07-27
1012Germany2025-07-31
1013Australia2025-07-20
1014Canada2025-08-05
1015Russia2025-08-11
1016Russia2025-08-02
1017Spain2025-07-18
1018Italy2025-08-12
1019United Kingdom2025-07-14
1020Russia2025-08-02
1021Italy2025-08-09
1022Argentina2025-07-28
1023Canada2025-07-16
1024Japan2025-07-16
1025Germany2025-07-25
1026Brazil2025-08-07
1027Australia2025-07-30
1028Spain2025-07-14
1029Canada2025-07-16
1030Italy2025-07-25
1031Spain2025-07-23
1032United Kingdom2025-08-02
1033Italy2025-08-08
1034United Kingdom2025-07-14
1035Canada2025-08-03
1036France2025-08-05
1037Australia2025-08-08
1038United Kingdom2025-07-22
1039Italy2025-07-14
1040Canada2025-07-21
1041Italy2025-08-02
1042Italy2025-07-24
1043Spain2025-07-20
1044Argentina2025-08-10
1045Russia2025-07-26
1046India2025-08-06
1047Spain2025-07-18
1048Argentina2025-07-28
1049Russia2025-07-23

On-Demand Data

NameIdCountryDate
Leon Z Perin1000Japan2025-08-09
Ricardo V Campain1001Australia2025-07-29
Johnson T Ferencz1002Italy2025-08-02
Kadeem R Caudy1003Brazil2025-07-29
Aika U Kusko1004Brazil2025-07-14
Octavia N Royster1005Argentina2025-07-23
Mujtaba Y Briddick1006Argentina2025-07-31
Maisha Z Malet1007Italy2025-08-05
Wickens I Marrier1008United Kingdom2025-07-23
Mujtaba Q Vocelka1009Japan2025-07-19
Julie T Inouye1010India2025-07-17
Ivar Z Figeroa1011India2025-07-28
Salvatore F Rim1012United Kingdom2025-08-01
Arvin W Malet1013Canada2025-07-15
Clifford L Stenseth1014Australia2025-08-08
Francesco E Wieser1015Germany2025-08-03
Silvio V Flosi1016Russia2025-07-25
Darci C Glick1017Japan2025-07-24
Francesco I Whobrey1018India2025-08-12
Tony D Ruta1019Russia2025-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon B PerinGermanyStephen Shaw NEGOTIATION
Stacey N SaylorsRussiaBernardo Dominic UNQUALIFIED
Antonio U VenereUnited KingdomAnna Fali QUALIFIED
Jones S FerenczItalyOnyama Limba UNQUALIFIED
Emily K GarufiJapanIvan Magalhaes QUALIFIED
Julie C NestleBrazilAnna Fali PROPOSAL
Ricardo D SchemmerRussiaBernardo Dominic PROPOSAL
Jennifer H MaletIndiaXuxue Feng NEGOTIATION
Morrow J SergiUnited KingdomOnyama Limba NEW
Adams L PaprockiUnited KingdomAnna Fali UNQUALIFIED
Costa O BriddickJapanAsiya Javayant NEGOTIATION
Maisha H OstroskyAustraliaAsiya Javayant PROPOSAL
James J ShinkoBrazilXuxue Feng PROPOSAL
Darci G InouyeCanadaXuxue Feng NEGOTIATION
Faith R MorascaSpainBernardo Dominic NEGOTIATION
Mayumi M NestleRussiaAnna Fali RENEWAL
Leja K VenereSpainStephen Shaw RENEWAL
Stacey X SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Johnson C StensethIndiaBernardo Dominic PROPOSAL
Aika C PoquetteArgentinaBernardo Dominic NEW
Misaki T WhobreySpainStephen Shaw NEGOTIATION
Jones P PaprockiFranceOnyama Limba NEW
Clifford H FerenczJapanXuxue Feng PROPOSAL
Mayumi V NickaFranceBernardo Dominic PROPOSAL
Chavez F NickaGermanyBernardo Dominic RENEWAL
Tony G InouyeUnited KingdomIoni Bowcher NEW
Julie R GillianBrazilAmy Elsner UNQUALIFIED
Cody P DoeGermanyOnyama Limba UNQUALIFIED
Emily L IturbideAustraliaAsiya Javayant NEW
Aditya V WhobreyIndiaOnyama Limba RENEWAL
Maisha W MarrierBrazilStephen Shaw QUALIFIED
Arvin J IturbideFranceAsiya Javayant RENEWAL
Alejandro A SchemmerSpainXuxue Feng UNQUALIFIED
Izzy O FlosiRussiaStephen Shaw UNQUALIFIED
Tony R RulapaughFranceElwin Sharvill NEGOTIATION
Clifford L MarrierIndiaElwin Sharvill PROPOSAL
Wickens E PoquetteArgentinaIvan Magalhaes QUALIFIED
Murillo Z FerenczFranceElwin Sharvill PROPOSAL
Tony P GauchoRussiaOnyama Limba UNQUALIFIED
Rodrigues Q RimIndiaIvan 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>