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
Kadeem Q AmigonBrazilIvan Magalhaes UNQUALIFIED
Julie T RimFranceElwin Sharvill RENEWAL
Murillo N PoquetteItalyElwin Sharvill UNQUALIFIED
Jefferson L GarufiArgentinaOnyama Limba RENEWAL
Murillo B NickaAustraliaIvan Magalhaes QUALIFIED
Mujtaba E CaudyAustraliaIvan Magalhaes UNQUALIFIED
Julie B MacleadBrazilAsiya Javayant UNQUALIFIED
Jennifer H SaylorsCanadaAsiya Javayant RENEWAL
Octavia K OldroydArgentinaIvan Magalhaes QUALIFIED
Alejandro H BologniaSpainAmy Elsner QUALIFIED
Misaki X NestleUnited KingdomBernardo Dominic RENEWAL
Aruna B FlosiGermanyIoni Bowcher NEGOTIATION
Leon T GarufiBrazilIvan Magalhaes NEGOTIATION
Ivar K WaycottFranceElwin Sharvill NEGOTIATION
Rodrigues Z GauchoSpainStephen Shaw NEW
Isabel R GillianIndiaAmy Elsner UNQUALIFIED
Wickens R StockhamJapanIvan Magalhaes RENEWAL
Deepesh B IturbideCanadaBernardo Dominic QUALIFIED
Tony F GarufiCanadaXuxue Feng UNQUALIFIED
James N SchemmerItalyBernardo Dominic PROPOSAL
Mujtaba I BriddickUnited KingdomAmy Elsner NEGOTIATION
Kaitlin P NickaIndiaXuxue Feng NEGOTIATION
David M CaldareraFranceBernardo Dominic NEW
Mayumi I IturbideBrazilElwin Sharvill UNQUALIFIED
Nicolas X TollnerRussiaXuxue Feng QUALIFIED
Izzy F DarakjyBrazilStephen Shaw NEW
Tony X GillianRussiaBernardo Dominic QUALIFIED
David O NestleCanadaIoni Bowcher NEW
Deepesh N NestleGermanyBernardo Dominic QUALIFIED
Greenwood F KolmetzSpainAnna Fali NEW
Mujtaba V CaudySpainStephen Shaw UNQUALIFIED
Antonio K VenereUnited KingdomIoni Bowcher RENEWAL
Chavez E WaycottAustraliaAnna Fali NEW
David N SlusarskiBrazilIoni Bowcher RENEWAL
Sinclair C AlbaresAustraliaAnna Fali QUALIFIED
Arvin T MaletFranceIvan Magalhaes QUALIFIED
Nicolas N StensethCanadaAnna Fali NEGOTIATION
Leon P BriddickBrazilAmy Elsner QUALIFIED
Kaitlin O StockhamJapanAmy Elsner RENEWAL
Antonio Q GauchoBrazilOnyama Limba QUALIFIED
Tony T RutaBrazilOnyama Limba RENEWAL
Jones A BowleyBrazilBernardo Dominic PROPOSAL
Leon Z MarrierFranceAsiya Javayant RENEWAL
Antonio R GauchoCanadaXuxue Feng NEGOTIATION
Leja Y WaycottSpainElwin Sharvill UNQUALIFIED
Adams W WieserCanadaAmy Elsner QUALIFIED
Francesco M StensethUnited KingdomXuxue Feng RENEWAL
Emily U RutaBrazilAsiya Javayant QUALIFIED
Wickens I SergiItalyBernardo Dominic PROPOSAL
Arvin J BriddickGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues U BologniaBrazilAnna Fali PROPOSAL
Julie T AmigonFranceOnyama Limba QUALIFIED
Maria A WaycottRussiaAnna Fali QUALIFIED
Ivar L DoeFranceIvan Magalhaes RENEWAL
Kaitlin H KolmetzFranceAnna Fali NEW
Cody O CaudyBrazilIvan Magalhaes RENEWAL
Deepesh G InouyeItalyXuxue Feng RENEWAL
Deepesh V DarakjyArgentinaAmy Elsner QUALIFIED
Misaki X SaylorsSpainXuxue Feng PROPOSAL
Silvio E WhobreySpainOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy U GlickItaly2025-10-04Truhlar And Truhlar Attys RENEWAL2Anna Fali
1001Wickens M StockhamGermany2025-10-07Benton, John B Jr UNQUALIFIED51Elwin Sharvill
1002Kaitlin O VocelkaArgentina2025-09-15Morlong Associates UNQUALIFIED13Ioni Bowcher
1003David C RutaItaly2025-09-13Buckley Miller Wright UNQUALIFIED44Ivan Magalhaes
1004Stacey Y TollnerSpain2025-09-23Buckley Miller Wright NEGOTIATION69Ivan Magalhaes
1005Morrow E RimJapan2025-09-13Buckley Miller Wright RENEWAL91Ioni Bowcher
1006Isabel L FigeroaAustralia2025-09-19Rousseaux, Michael Esq RENEWAL19Ioni Bowcher
1007Tony S MarrierIndia2025-09-20Rangoni Of Florence NEGOTIATION78Elwin Sharvill
1008Antonio Q VocelkaIndia2025-09-14Benton, John B Jr UNQUALIFIED66Asiya Javayant
1009Misaki Q WaycottFrance2025-10-07Truhlar And Truhlar Attys QUALIFIED50Asiya Javayant
1010Clifford L VenereCanada2025-09-24Dorl, James J Esq NEGOTIATION43Ivan Magalhaes
1011Stacey G RoysterJapan2025-10-05Rousseaux, Michael Esq NEGOTIATION29Xuxue Feng
1012Munro F SlusarskiFrance2025-09-16Truhlar And Truhlar Attys QUALIFIED41Xuxue Feng
1013Smith N AlbaresFrance2025-09-22Feiner Bros QUALIFIED30Onyama Limba
1014Nicolas S DarakjyJapan2025-09-22Morlong Associates RENEWAL66Ivan Magalhaes
1015Julie H WhobreyArgentina2025-09-27Printing Dimensions PROPOSAL92Bernardo Dominic
1016Cody O WhobreyJapan2025-09-15Printing Dimensions PROPOSAL70Ivan Magalhaes
1017Costa X RutaArgentina2025-09-21Rousseaux, Michael Esq RENEWAL34Ioni Bowcher
1018Sinclair Y OldroydIndia2025-09-13Buckley Miller Wright NEW59Amy Elsner
1019Aruna V InouyeItaly2025-09-30Benton, John B Jr NEW68Anna Fali
1020Morrow A DoeArgentina2025-09-21Chanay, Jeffrey A Esq PROPOSAL36Amy Elsner
1021Emily Y WaycottRussia2025-10-04Benton, John B Jr NEW51Xuxue Feng
1022Jefferson X FerenczAustralia2025-09-11Benton, John B Jr RENEWAL32Onyama Limba
1023Greenwood U IturbideRussia2025-09-15Rousseaux, Michael Esq RENEWAL78Amy Elsner
1024Clifford D SlusarskiBrazil2025-09-09Chanay, Jeffrey A Esq UNQUALIFIED0Elwin Sharvill
1025Deepesh N FigeroaBrazil2025-10-03Morlong Associates UNQUALIFIED51Bernardo Dominic
1026Aruna H StensethRussia2025-10-04Chapman, Ross E Esq PROPOSAL4Anna Fali
1027Smith V AlbaresItaly2025-09-27King, Christopher A Esq UNQUALIFIED2Bernardo Dominic
1028Leja I NickaArgentina2025-10-06Benton, John B Jr NEGOTIATION49Onyama Limba
1029James Z GauchoSpain2025-10-02King, Christopher A Esq PROPOSAL85Elwin Sharvill
1030Mujtaba H AlbaresSpain2025-09-15Feiner Bros NEGOTIATION96Stephen Shaw
1031Aditya T WaycottItaly2025-09-16Feltz Printing Service NEGOTIATION86Stephen Shaw
1032Munro X RoysterIndia2025-09-08Rangoni Of Florence RENEWAL83Onyama Limba
1033Ivar L MarrierRussia2025-09-30Chanay, Jeffrey A Esq QUALIFIED40Ivan Magalhaes
1034Francesco G PoquetteFrance2025-10-03Rangoni Of Florence RENEWAL55Bernardo Dominic
1035Ricardo U SergiBrazil2025-10-07King, Christopher A Esq NEW5Asiya Javayant
1036Jeanfrancois P ChuiBrazil2025-09-09Benton, John B Jr PROPOSAL99Amy Elsner
1037Jennifer D MaletItaly2025-09-24Rangoni Of Florence QUALIFIED20Anna Fali
1038Kadeem J BowleyIndia2025-09-17Feltz Printing Service UNQUALIFIED60Stephen Shaw
1039Johnson O FollerArgentina2025-09-27Chapman, Ross E Esq RENEWAL52Asiya Javayant
1040Mujtaba U BowleyGermany2025-10-05Chapman, Ross E Esq NEGOTIATION99Bernardo Dominic
1041Julie Z MorascaGermany2025-10-01Feiner Bros RENEWAL10Elwin Sharvill
1042Mujtaba J BriddickItaly2025-10-04King, Christopher A Esq QUALIFIED83Onyama Limba
1043David K GarufiUnited Kingdom2025-09-20Commercial Press UNQUALIFIED79Asiya Javayant
1044Leja A RutaFrance2025-09-10Rangoni Of Florence RENEWAL32Asiya Javayant
1045Smith S SlusarskiArgentina2025-09-11Chemel, James L Cpa NEGOTIATION50Anna Fali
1046Ivar S KuskoRussia2025-09-28Rangoni Of Florence PROPOSAL99Asiya Javayant
1047Mujtaba K GarufiCanada2025-09-23Rousseaux, Michael Esq RENEWAL40Bernardo Dominic
1048Maisha G NickaJapan2025-09-30Rangoni Of Florence RENEWAL91Amy Elsner
1049Faith P NestleUnited Kingdom2025-10-03Chapman, Ross E Esq UNQUALIFIED97Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria J MacleadAustraliaAnna Fali PROPOSAL
Octavia Z ShinkoRussiaBernardo Dominic RENEWAL
Aika Q WhobreyFranceStephen Shaw NEW
Chavez N GlickBrazilAmy Elsner UNQUALIFIED
Wickens P RoysterSpainAmy Elsner QUALIFIED
Mujtaba D CaldareraFranceAnna Fali PROPOSAL
Isabel D StensethGermanyAsiya Javayant QUALIFIED
Antonio R ButtCanadaStephen Shaw PROPOSAL
Johnson B AlbaresSpainOnyama Limba PROPOSAL
Izzy F GillianCanadaOnyama Limba QUALIFIED
Ivar O ButtAustraliaIoni Bowcher RENEWAL
Isabel R CaldareraItalyXuxue Feng QUALIFIED
Maria I MorascaAustraliaOnyama Limba UNQUALIFIED
James I RulapaughArgentinaXuxue Feng NEW
Smith A TollnerCanadaBernardo Dominic QUALIFIED
Kadeem W MaletBrazilIoni Bowcher UNQUALIFIED
Morrow I SlusarskiAustraliaIoni Bowcher PROPOSAL
Francesco O GarufiSpainXuxue Feng PROPOSAL
Nicolas O SlusarskiArgentinaStephen Shaw NEW
Murillo Z SlusarskiBrazilIoni Bowcher PROPOSAL
Mayumi B ButtFranceIoni Bowcher NEGOTIATION
Greenwood C PaprockiSpainBernardo Dominic NEW
Izzy C WhobreyJapanBernardo Dominic QUALIFIED
Juan U ButtRussiaOnyama Limba NEW
Isabel Q FlosiJapanAnna Fali NEGOTIATION
James J ShinkoUnited KingdomBernardo Dominic RENEWAL
James F GillianGermanyXuxue Feng UNQUALIFIED
Clifford O MaletSpainIvan Magalhaes PROPOSAL
Arvin Q RoysterSpainAsiya Javayant QUALIFIED
Kaitlin Z CampainUnited KingdomAmy Elsner NEW
Ricardo L FlosiUnited KingdomIoni Bowcher NEGOTIATION
Mayumi E PoquetteArgentinaStephen Shaw RENEWAL
Tony M WieserFranceAsiya Javayant UNQUALIFIED
Isabel Y CaldareraIndiaBernardo Dominic UNQUALIFIED
Maisha H ButtArgentinaAmy Elsner NEW
Munro T RutaBrazilOnyama Limba UNQUALIFIED
Jones S SergiAustraliaElwin Sharvill RENEWAL
Ricardo P VocelkaSpainAmy Elsner QUALIFIED
Ricardo C MaletFranceElwin Sharvill UNQUALIFIED
Jeanfrancois P DarakjyIndiaXuxue Feng QUALIFIED
Claire X FlosiIndiaElwin Sharvill RENEWAL
Leon G CaldareraBrazilAmy Elsner NEW
Emily S VenereIndiaOnyama Limba QUALIFIED
Smith W FerenczArgentinaBernardo Dominic QUALIFIED
Salvatore A FerenczSpainBernardo Dominic NEGOTIATION
Claire F StockhamFranceBernardo Dominic QUALIFIED
Silvio G GillianFranceIvan Magalhaes RENEWAL
Ricardo P GillianIndiaOnyama Limba NEGOTIATION
Aruna U GarufiItalyAnna Fali PROPOSAL
Morrow F OstroskyUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Isabel C Vocelka
Mayumi R Kolmetz
Clifford A Whobrey
Sinclair I Venere
Faith Q Iturbide
Misaki K Royster
Sinclair Y Briddick
Juan E Dilliard
Sinclair Y Venere
Salvatore U Wieser
Nicolas N Malet
Jeanfrancois D Perin
Aika Z Stockham
Ashley A Ferencz
Deepesh B Nestle
Claire S Bolognia
Deepesh P Royster
Salvatore C Kusko
Tony Q Amigon
Izzy X Oldroyd
Misaki E Albares
Juan X Stenseth
Ivar A Caudy
Munro T Iturbide
Ricardo T Figeroa
Wickens T Malet
Jefferson A Maclead
Costa R Perin
Nicolas G Slusarski
Jones E Inouye
Munro B Malet
Clifford A Kusko
Nicolas R Foller
Wickens O Iturbide
Misaki J Inouye
Kaitlin Z Rulapaugh
Jennifer L Caudy
Juan E Glick
Morrow L Campain
Deepesh A Perin
Salvatore D Darakjy
Jennifer P Glick
Chavez K Schemmer
Wickens X Inouye
Salvatore N Albares
Arvin K Kolmetz
Ashley P Oldroyd
Wickens L Morasca
Maria N Amigon
Ashley U Darakjy
IdCountryDate
1000Germany2025-09-25
1001Spain2025-09-20
1002Canada2025-10-02
1003India2025-09-24
1004Germany2025-09-30
1005Germany2025-09-08
1006Canada2025-09-17
1007Italy2025-09-24
1008Spain2025-09-26
1009Australia2025-09-09
1010Germany2025-09-19
1011Germany2025-09-30
1012France2025-09-13
1013Russia2025-09-12
1014Brazil2025-09-29
1015Germany2025-09-11
1016Brazil2025-09-22
1017Germany2025-09-21
1018India2025-09-17
1019United Kingdom2025-09-15
1020Brazil2025-09-26
1021Spain2025-10-02
1022Brazil2025-09-22
1023United Kingdom2025-09-23
1024Spain2025-09-19
1025Brazil2025-09-09
1026Canada2025-09-23
1027France2025-10-01
1028India2025-09-27
1029Australia2025-09-25
1030France2025-09-18
1031Australia2025-09-23
1032Canada2025-09-24
1033Italy2025-09-24
1034India2025-09-26
1035Spain2025-09-27
1036France2025-09-12
1037Italy2025-09-18
1038Spain2025-10-06
1039Australia2025-09-10
1040Argentina2025-09-10
1041Germany2025-09-24
1042United Kingdom2025-09-30
1043United Kingdom2025-09-16
1044United Kingdom2025-09-21
1045Russia2025-10-03
1046India2025-09-27
1047Italy2025-09-24
1048France2025-10-03
1049Spain2025-09-11

On-Demand Data

NameIdCountryDate
Maria S Kusko1000Germany2025-09-13
Aika Y Slusarski1001Argentina2025-09-11
Sinclair K Ruta1002India2025-09-17
Aruna U Glick1003Brazil2025-09-28
Nicolas I Wieser1004Japan2025-09-23
Jeanfrancois I Chui1005India2025-09-08
Chavez I Flosi1006Brazil2025-09-08
Emily B Glick1007India2025-10-01
Leon R Briddick1008Australia2025-09-25
Costa M Chui1009Brazil2025-09-27
Jones H Inouye1010Brazil2025-09-16
Juan U Malet1011Brazil2025-09-12
Adams D Saylors1012Australia2025-09-13
Clifford R Bolognia1013India2025-09-15
Claire G Sergi1014Italy2025-09-20
Maria E Bowley1015India2025-09-27
Claire H Paprocki1016Japan2025-09-21
Leon R Doe1017Canada2025-09-22
Jennifer L Royster1018Australia2025-09-27
Jefferson V Saylors1019France2025-09-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood I GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Maisha D PerinBrazilIoni Bowcher NEGOTIATION
Arvin W OldroydGermanyAsiya Javayant NEW
Greenwood J ButtRussiaIoni Bowcher NEGOTIATION
Tony T AlbaresAustraliaIoni Bowcher PROPOSAL
Aruna D VocelkaItalyAnna Fali QUALIFIED
Kaitlin P GlickCanadaBernardo Dominic QUALIFIED
Mujtaba S GlickUnited KingdomXuxue Feng NEGOTIATION
Smith B NestleIndiaAnna Fali RENEWAL
David L ChuiAustraliaBernardo Dominic PROPOSAL
Morrow S ButtCanadaIvan Magalhaes PROPOSAL
Ricardo F WieserItalyStephen Shaw PROPOSAL
Munro D BowleyAustraliaAnna Fali QUALIFIED
Ricardo X SlusarskiFranceIoni Bowcher QUALIFIED
Izzy Z RoysterAustraliaStephen Shaw QUALIFIED
Johnson U IturbideItalyOnyama Limba NEGOTIATION
Mujtaba T OldroydItalyAsiya Javayant QUALIFIED
Antonio A BologniaUnited KingdomAmy Elsner UNQUALIFIED
Aditya W ShinkoJapanOnyama Limba NEW
Tony Y PerinUnited KingdomStephen Shaw QUALIFIED
Kadeem K DilliardBrazilAsiya Javayant PROPOSAL
Faith C StockhamBrazilIvan Magalhaes NEGOTIATION
Salvatore F SergiBrazilIoni Bowcher RENEWAL
Silvio E MaletBrazilAmy Elsner RENEWAL
Costa A PaprockiAustraliaAmy Elsner NEW
Sinclair O VocelkaBrazilAnna Fali PROPOSAL
Clifford H InouyeSpainAsiya Javayant QUALIFIED
Murillo Z WhobreyCanadaStephen Shaw NEGOTIATION
Leja N AlbaresFranceAsiya Javayant UNQUALIFIED
Adams O FerenczAustraliaIvan Magalhaes PROPOSAL
Leon V CaldareraGermanyBernardo Dominic UNQUALIFIED
Ashley X FollerSpainIvan Magalhaes RENEWAL
Kaitlin B PaprockiUnited KingdomAnna Fali UNQUALIFIED
Kadeem X CaldareraItalyBernardo Dominic NEGOTIATION
Maisha R RoysterCanadaAnna Fali QUALIFIED
Darci X PerinIndiaBernardo Dominic QUALIFIED
Antonio S WaycottGermanyOnyama Limba RENEWAL
Leon R VocelkaGermanyOnyama Limba NEGOTIATION
Maisha J FollerBrazilIoni Bowcher PROPOSAL
Silvio J MarrierBrazilBernardo Dominic 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>