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
Adams Z ShinkoArgentinaAnna Fali RENEWAL
Claire W MarrierCanadaBernardo Dominic RENEWAL
Jones O CampainAustraliaOnyama Limba NEW
Kaitlin D StockhamRussiaBernardo Dominic NEW
Alejandro B StensethSpainXuxue Feng PROPOSAL
Mujtaba Q PaprockiCanadaXuxue Feng UNQUALIFIED
Rodrigues D CaldareraSpainOnyama Limba NEGOTIATION
James B BowleyArgentinaXuxue Feng PROPOSAL
Chavez S DoeAustraliaIoni Bowcher NEW
Darci S CaudyAustraliaStephen Shaw PROPOSAL
Maisha L MarrierUnited KingdomIvan Magalhaes QUALIFIED
Smith L MorascaArgentinaXuxue Feng NEW
Maria F CaldareraGermanyBernardo Dominic PROPOSAL
Wickens C AlbaresArgentinaOnyama Limba NEW
Kaitlin T WhobreyGermanyAsiya Javayant PROPOSAL
Faith L VocelkaAustraliaElwin Sharvill PROPOSAL
Isabel O MarrierCanadaIvan Magalhaes PROPOSAL
Deepesh W FollerSpainIoni Bowcher UNQUALIFIED
Johnson H DilliardRussiaStephen Shaw PROPOSAL
Arvin C MarrierArgentinaAsiya Javayant NEW
James K ChuiFranceElwin Sharvill UNQUALIFIED
Mayumi C BologniaUnited KingdomOnyama Limba NEW
Jefferson M ShinkoArgentinaIoni Bowcher NEW
Kaitlin I VocelkaJapanAmy Elsner PROPOSAL
Johnson O CaldareraRussiaAmy Elsner QUALIFIED
Tony V TollnerArgentinaElwin Sharvill UNQUALIFIED
Faith Z PaprockiAustraliaAsiya Javayant RENEWAL
Francesco S RoysterJapanXuxue Feng RENEWAL
Alejandro C GarufiSpainXuxue Feng UNQUALIFIED
Darci U BriddickFranceXuxue Feng QUALIFIED
Darci M RimGermanyOnyama Limba PROPOSAL
Greenwood M MarrierGermanyAmy Elsner UNQUALIFIED
Isabel H IturbideJapanIvan Magalhaes NEW
Clifford U CaudyRussiaElwin Sharvill QUALIFIED
Rodrigues K AlbaresItalyXuxue Feng UNQUALIFIED
Aruna B StockhamSpainXuxue Feng UNQUALIFIED
Murillo Q RutaBrazilElwin Sharvill UNQUALIFIED
Julie S SaylorsIndiaAnna Fali RENEWAL
Emily H ChuiGermanyBernardo Dominic QUALIFIED
Maisha D MacleadBrazilStephen Shaw UNQUALIFIED
Smith X VenereJapanElwin Sharvill RENEWAL
Ricardo O KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna X WhobreyArgentinaXuxue Feng QUALIFIED
Antonio I GillianRussiaOnyama Limba RENEWAL
Wickens Z DoeFranceAnna Fali QUALIFIED
Claire B FollerJapanAsiya Javayant NEGOTIATION
Salvatore N BriddickIndiaElwin Sharvill RENEWAL
Misaki C MaletSpainIvan Magalhaes NEGOTIATION
Morrow L KolmetzJapanElwin Sharvill UNQUALIFIED
Clifford J MaletAustraliaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire R InouyeGermanyAnna Fali NEGOTIATION
Jennifer B OstroskyJapanIoni Bowcher NEGOTIATION
Clifford K RimBrazilAmy Elsner QUALIFIED
Aika O CaldareraBrazilOnyama Limba PROPOSAL
Jeanfrancois A NickaRussiaStephen Shaw NEGOTIATION
Julie A DarakjyJapanElwin Sharvill PROPOSAL
Johnson L ButtUnited KingdomAsiya Javayant NEW
Kadeem B DilliardJapanIoni Bowcher RENEWAL
Ricardo N CampainRussiaIoni Bowcher NEW
Juan C ButtSpainAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo M KuskoBrazil2025-10-05King, Christopher A Esq UNQUALIFIED92Amy Elsner
1001Mujtaba Q BologniaJapan2025-09-20Buckley Miller Wright NEW62Amy Elsner
1002Nicolas E FigeroaUnited Kingdom2025-09-24Chanay, Jeffrey A Esq RENEWAL38Ivan Magalhaes
1003Aika X MorascaIndia2025-09-14Rangoni Of Florence PROPOSAL98Ioni Bowcher
1004Jones T TollnerAustralia2025-09-22Dorl, James J Esq QUALIFIED22Ivan Magalhaes
1005Aika X BologniaItaly2025-09-19Buckley Miller Wright UNQUALIFIED59Anna Fali
1006Silvio R CampainCanada2025-09-27Truhlar And Truhlar Attys NEGOTIATION0Ivan Magalhaes
1007Antonio H PerinArgentina2025-10-04Rousseaux, Michael Esq QUALIFIED74Asiya Javayant
1008David D ButtSpain2025-10-09Printing Dimensions NEGOTIATION1Xuxue Feng
1009Sinclair W VocelkaArgentina2025-10-02Buckley Miller Wright UNQUALIFIED19Ivan Magalhaes
1010Francesco B NickaUnited Kingdom2025-09-14Truhlar And Truhlar Attys UNQUALIFIED48Stephen Shaw
1011Cody G VenereFrance2025-10-12Printing Dimensions UNQUALIFIED67Ioni Bowcher
1012Jones G PoquetteAustralia2025-09-26Chapman, Ross E Esq NEGOTIATION75Bernardo Dominic
1013Aika N BologniaUnited Kingdom2025-09-29Rangoni Of Florence QUALIFIED99Ivan Magalhaes
1014Francesco Q BriddickCanada2025-09-15Morlong Associates QUALIFIED13Ioni Bowcher
1015Juan M MarrierArgentina2025-09-21Chemel, James L Cpa RENEWAL93Asiya Javayant
1016Salvatore O IturbideArgentina2025-10-01Benton, John B Jr QUALIFIED79Elwin Sharvill
1017Mayumi S KuskoCanada2025-10-05Truhlar And Truhlar Attys UNQUALIFIED59Ioni Bowcher
1018Ivar I MarrierIndia2025-09-14Feiner Bros PROPOSAL90Onyama Limba
1019Deepesh Q FerenczUnited Kingdom2025-09-14Rousseaux, Michael Esq RENEWAL23Xuxue Feng
1020Johnson G IturbideJapan2025-09-21Chapman, Ross E Esq QUALIFIED67Amy Elsner
1021Deepesh H KolmetzUnited Kingdom2025-09-18Chapman, Ross E Esq NEGOTIATION26Bernardo Dominic
1022Jones H DarakjyItaly2025-09-13Feltz Printing Service PROPOSAL40Ivan Magalhaes
1023Ivar V MarrierJapan2025-10-07Truhlar And Truhlar Attys NEW91Amy Elsner
1024Maisha M IturbideGermany2025-09-15King, Christopher A Esq PROPOSAL34Elwin Sharvill
1025Isabel T BologniaRussia2025-09-17Buckley Miller Wright QUALIFIED49Elwin Sharvill
1026Antonio J FollerCanada2025-09-17Dorl, James J Esq NEGOTIATION95Amy Elsner
1027Aditya Z OstroskyItaly2025-09-27Truhlar And Truhlar Attys UNQUALIFIED74Ivan Magalhaes
1028Munro T GlickFrance2025-10-03Commercial Press NEGOTIATION80Amy Elsner
1029Aditya T FlosiSpain2025-09-29Morlong Associates NEGOTIATION56Anna Fali
1030Antonio F VenereCanada2025-09-27Buckley Miller Wright RENEWAL15Onyama Limba
1031Johnson G ShinkoJapan2025-09-13Chapman, Ross E Esq NEW13Ioni Bowcher
1032Faith W MorascaRussia2025-10-10Chapman, Ross E Esq NEW22Ivan Magalhaes
1033Antonio T NestleFrance2025-10-11Feltz Printing Service UNQUALIFIED95Asiya Javayant
1034Morrow N PaprockiItaly2025-09-19King, Christopher A Esq UNQUALIFIED5Amy Elsner
1035Maisha A ChuiFrance2025-09-19Commercial Press QUALIFIED93Elwin Sharvill
1036Deepesh I MaletJapan2025-10-12Rangoni Of Florence NEW9Onyama Limba
1037Salvatore Y MarrierArgentina2025-09-14Rangoni Of Florence UNQUALIFIED81Ivan Magalhaes
1038Silvio B BriddickItaly2025-10-01Chemel, James L Cpa QUALIFIED68Asiya Javayant
1039Arvin T InouyeCanada2025-10-06Morlong Associates NEW34Stephen Shaw
1040Murillo D CaudyItaly2025-09-14Benton, John B Jr PROPOSAL85Onyama Limba
1041Jennifer W RoysterUnited Kingdom2025-09-17Rangoni Of Florence NEGOTIATION68Stephen Shaw
1042Stacey R SlusarskiSpain2025-09-29Morlong Associates NEGOTIATION83Ioni Bowcher
1043Julie V RutaAustralia2025-09-30Buckley Miller Wright NEGOTIATION41Anna Fali
1044Smith K WhobreyCanada2025-10-05Commercial Press RENEWAL9Ioni Bowcher
1045Johnson E WieserGermany2025-09-22Dorl, James J Esq UNQUALIFIED39Elwin Sharvill
1046Morrow D GlickItaly2025-10-03King, Christopher A Esq UNQUALIFIED81Onyama Limba
1047Kaitlin J PaprockiBrazil2025-09-20Benton, John B Jr RENEWAL50Xuxue Feng
1048Ivar B RimRussia2025-09-13Chanay, Jeffrey A Esq NEGOTIATION87Ioni Bowcher
1049Francesco S InouyeArgentina2025-09-30Chanay, Jeffrey A Esq QUALIFIED14Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Y IturbideRussiaOnyama Limba NEGOTIATION
Wickens A IturbideSpainXuxue Feng QUALIFIED
Izzy T AmigonAustraliaElwin Sharvill NEW
Misaki R DilliardCanadaBernardo Dominic UNQUALIFIED
Claire Q ChuiArgentinaOnyama Limba UNQUALIFIED
Mujtaba R WaycottSpainStephen Shaw NEW
Leon F FollerRussiaAsiya Javayant NEGOTIATION
Jefferson L BowleyBrazilOnyama Limba NEGOTIATION
Arvin V ButtArgentinaOnyama Limba NEGOTIATION
Maria M BowleyAustraliaElwin Sharvill NEGOTIATION
Smith R SergiUnited KingdomBernardo Dominic NEGOTIATION
Juan B VocelkaFranceIvan Magalhaes UNQUALIFIED
Misaki B RulapaughCanadaAmy Elsner RENEWAL
Morrow P RimRussiaElwin Sharvill NEGOTIATION
Ivar B VenereIndiaElwin Sharvill NEGOTIATION
Rodrigues S KolmetzFranceStephen Shaw NEW
Aika Q OstroskyRussiaAsiya Javayant RENEWAL
Nicolas B DoeCanadaAsiya Javayant UNQUALIFIED
Jones K PoquetteUnited KingdomAmy Elsner PROPOSAL
Clifford X AlbaresIndiaAnna Fali PROPOSAL
Ashley P WhobreyUnited KingdomXuxue Feng PROPOSAL
Greenwood B InouyeJapanElwin Sharvill NEGOTIATION
James A OldroydUnited KingdomIoni Bowcher NEW
Nicolas M NestleIndiaOnyama Limba PROPOSAL
Ivar W OldroydGermanyIvan Magalhaes NEGOTIATION
Adams X FollerUnited KingdomXuxue Feng RENEWAL
Juan K GauchoSpainAsiya Javayant QUALIFIED
Jeanfrancois G BriddickRussiaStephen Shaw RENEWAL
Smith M FollerAustraliaAmy Elsner UNQUALIFIED
Deepesh Q SergiItalyOnyama Limba NEW
Cody I PerinCanadaElwin Sharvill NEGOTIATION
Octavia I StockhamIndiaAmy Elsner RENEWAL
Arvin H WaycottRussiaIvan Magalhaes NEGOTIATION
Nicolas L SergiItalyAsiya Javayant QUALIFIED
James A NickaUnited KingdomBernardo Dominic NEW
Nicolas O ButtFranceAnna Fali NEGOTIATION
Silvio Z WhobreyJapanAmy Elsner NEW
Tony M PerinCanadaBernardo Dominic QUALIFIED
Aruna I FlosiIndiaAmy Elsner RENEWAL
Munro Z MaletUnited KingdomAsiya Javayant NEGOTIATION
Johnson T ShinkoAustraliaAnna Fali NEW
Maisha O StockhamSpainIvan Magalhaes NEW
Murillo A ShinkoFranceElwin Sharvill UNQUALIFIED
Maisha H CaudyRussiaOnyama Limba NEW
Adams A MaletSpainStephen Shaw NEGOTIATION
Aruna W RimRussiaElwin Sharvill PROPOSAL
Smith B MorascaUnited KingdomAmy Elsner QUALIFIED
Aruna I StockhamJapanIvan Magalhaes NEW
Claire T CaudyRussiaAmy Elsner NEW
Sinclair C BowleyFranceIoni Bowcher NEGOTIATION
Frozen Columns
Name
Munro Y Iturbide
Ashley R Inouye
Salvatore X Slusarski
Octavia D Figeroa
Isabel M Bolognia
Kadeem L Caldarera
Smith Q Oldroyd
Aditya O Ostrosky
Clifford Y Stenseth
Ivar G Marrier
Adams S Dilliard
Antonio A Poquette
Greenwood E Morasca
Silvio T Stenseth
Jennifer B Darakjy
Izzy X Saylors
Maria G Foller
Silvio N Briddick
Jeanfrancois U Amigon
Aruna D Ferencz
Deepesh G Gillian
Antonio F Briddick
Ivar L Garufi
Clifford F Darakjy
Stacey D Bowley
Jefferson B Ferencz
Murillo S Shinko
Julie U Oldroyd
Maria D Nestle
Maria V Kolmetz
Julie W Chui
Alejandro Q Poquette
Kaitlin W Royster
Sinclair L Marrier
Juan T Caldarera
Arvin D Figeroa
Misaki T Campain
Maisha Q Garufi
Juan U Kolmetz
Greenwood T Poquette
Kadeem Z Oldroyd
Sinclair T Ferencz
Greenwood C Campain
Morrow H Maclead
Mujtaba G Tollner
Wickens K Morasca
Aditya E Schemmer
Salvatore U Stenseth
Morrow B Nestle
Rodrigues N Whobrey
IdCountryDate
1000Russia2025-09-23
1001Italy2025-10-05
1002Brazil2025-09-27
1003France2025-09-17
1004Russia2025-09-24
1005Italy2025-09-25
1006Canada2025-09-23
1007Japan2025-09-15
1008Argentina2025-10-07
1009Brazil2025-10-06
1010Spain2025-10-12
1011Brazil2025-09-20
1012Italy2025-09-29
1013Italy2025-09-26
1014Italy2025-09-30
1015Australia2025-10-08
1016Russia2025-09-25
1017Argentina2025-09-26
1018India2025-09-28
1019France2025-09-22
1020Germany2025-10-08
1021Germany2025-09-15
1022Russia2025-10-09
1023Argentina2025-09-19
1024Argentina2025-09-14
1025United Kingdom2025-09-23
1026Russia2025-10-10
1027France2025-10-12
1028Canada2025-09-22
1029India2025-10-01
1030India2025-09-26
1031Australia2025-09-24
1032Brazil2025-10-06
1033Germany2025-09-18
1034Germany2025-09-19
1035France2025-10-12
1036Canada2025-09-14
1037Germany2025-09-18
1038Brazil2025-09-28
1039Canada2025-10-04
1040Australia2025-09-22
1041Australia2025-09-21
1042Italy2025-10-08
1043Australia2025-10-01
1044Australia2025-10-05
1045India2025-10-03
1046Italy2025-09-29
1047Russia2025-09-18
1048Japan2025-09-18
1049United Kingdom2025-10-08

On-Demand Data

NameIdCountryDate
Julie Z Butt1000United Kingdom2025-10-10
Aika E Campain1001Germany2025-10-11
Alejandro J Vocelka1002Italy2025-10-03
Munro C Stockham1003Germany2025-09-27
Claire F Albares1004Japan2025-10-03
Jennifer C Campain1005United Kingdom2025-09-18
Leja P Glick1006Russia2025-09-24
Morrow W Glick1007France2025-09-20
Sinclair Q Schemmer1008Brazil2025-09-16
Chavez J Shinko1009India2025-10-09
David X Royster1010Brazil2025-09-18
Salvatore O Inouye1011Spain2025-10-12
Darci Q Foller1012Brazil2025-10-03
Antonio R Campain1013Germany2025-10-04
Arvin A Inouye1014Germany2025-09-25
Maria L Oldroyd1015Italy2025-09-23
Silvio U Bowley1016Japan2025-09-29
Johnson K Venere1017United Kingdom2025-09-19
Kadeem I Albares1018India2025-09-19
Faith L Rim1019France2025-09-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David T PaprockiIndiaXuxue Feng PROPOSAL
Johnson V SchemmerRussiaIvan Magalhaes NEW
Aika M SlusarskiFranceBernardo Dominic PROPOSAL
Chavez F MorascaAustraliaAnna Fali UNQUALIFIED
Ricardo Q RutaRussiaOnyama Limba PROPOSAL
Francesco R RulapaughIndiaElwin Sharvill UNQUALIFIED
Mujtaba T GauchoUnited KingdomIvan Magalhaes NEW
Julie J SlusarskiAustraliaAmy Elsner NEGOTIATION
Aruna I NestleCanadaBernardo Dominic NEGOTIATION
Murillo C MarrierJapanAnna Fali QUALIFIED
Kadeem B CaldareraUnited KingdomBernardo Dominic PROPOSAL
Leja W NickaBrazilAsiya Javayant PROPOSAL
Mayumi O BologniaAustraliaAsiya Javayant RENEWAL
Ivar I DilliardJapanIvan Magalhaes PROPOSAL
Stacey S FollerJapanAmy Elsner PROPOSAL
Aruna M RutaArgentinaXuxue Feng PROPOSAL
Stacey U PerinItalyAsiya Javayant NEGOTIATION
Greenwood W BologniaGermanyOnyama Limba PROPOSAL
Clifford I ButtBrazilXuxue Feng UNQUALIFIED
Costa Y GillianAustraliaElwin Sharvill PROPOSAL
Maisha M GlickAustraliaElwin Sharvill QUALIFIED
Smith Y WaycottGermanyBernardo Dominic NEW
Munro K AlbaresJapanAsiya Javayant NEGOTIATION
Chavez E WieserItalyAmy Elsner QUALIFIED
Emily Z ChuiGermanyAsiya Javayant UNQUALIFIED
Octavia R GlickGermanyBernardo Dominic NEW
Aruna B PoquetteSpainAsiya Javayant PROPOSAL
Morrow D AlbaresGermanyIvan Magalhaes UNQUALIFIED
Costa A BologniaUnited KingdomOnyama Limba RENEWAL
Wickens E FerenczBrazilBernardo Dominic PROPOSAL
Alejandro J MaletSpainAsiya Javayant PROPOSAL
Ivar F StensethAustraliaIvan Magalhaes NEGOTIATION
Johnson P MacleadArgentinaOnyama Limba UNQUALIFIED
Ashley H StockhamIndiaXuxue Feng PROPOSAL
Nicolas I OldroydRussiaStephen Shaw RENEWAL
Wickens X FigeroaJapanElwin Sharvill QUALIFIED
Salvatore F IturbideFranceOnyama Limba NEW
Nicolas C MaletJapanStephen Shaw PROPOSAL
Jones W WaycottBrazilAnna Fali NEW
Silvio X GauchoItalyAmy Elsner 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>