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
Jefferson W DarakjyJapanIvan Magalhaes NEGOTIATION
Costa I GillianJapanAmy Elsner RENEWAL
Maisha I SergiItalyAnna Fali PROPOSAL
Silvio E ButtArgentinaIoni Bowcher NEGOTIATION
Mujtaba D FlosiJapanIvan Magalhaes RENEWAL
David Q MorascaArgentinaElwin Sharvill QUALIFIED
Maisha W InouyeItalyIoni Bowcher PROPOSAL
Faith V PoquetteSpainAsiya Javayant NEGOTIATION
Ivar L VocelkaItalyXuxue Feng PROPOSAL
Ricardo P FerenczCanadaAsiya Javayant NEW
Julie T SaylorsJapanElwin Sharvill NEGOTIATION
Munro C AmigonCanadaAsiya Javayant QUALIFIED
Ivar Y StensethJapanStephen Shaw QUALIFIED
Adams M WieserFranceBernardo Dominic UNQUALIFIED
Ricardo G DilliardFranceAmy Elsner RENEWAL
Costa B RulapaughFranceXuxue Feng UNQUALIFIED
Chavez S DoeGermanyIoni Bowcher NEGOTIATION
Maisha R PoquetteIndiaAsiya Javayant NEGOTIATION
Sinclair T ChuiGermanyIvan Magalhaes RENEWAL
Ashley P OldroydFranceXuxue Feng PROPOSAL
Munro G AlbaresItalyXuxue Feng UNQUALIFIED
Kaitlin O AlbaresAustraliaAsiya Javayant UNQUALIFIED
Jefferson F ChuiJapanAmy Elsner UNQUALIFIED
Stacey O OldroydFranceAnna Fali NEGOTIATION
Jennifer Y MarrierFranceElwin Sharvill NEGOTIATION
Leja D NestleBrazilOnyama Limba UNQUALIFIED
Faith N CampainRussiaXuxue Feng QUALIFIED
Aruna L GillianAustraliaXuxue Feng NEW
Deepesh O StockhamIndiaOnyama Limba RENEWAL
Arvin G PoquetteRussiaBernardo Dominic UNQUALIFIED
Aruna O KuskoUnited KingdomBernardo Dominic UNQUALIFIED
David T WaycottJapanElwin Sharvill NEGOTIATION
Jefferson H ButtBrazilAsiya Javayant NEGOTIATION
Kaitlin D WieserJapanIoni Bowcher UNQUALIFIED
Ricardo T WhobreyAustraliaIoni Bowcher NEGOTIATION
Aditya W StensethGermanyAnna Fali NEGOTIATION
Salvatore Q NickaItalyXuxue Feng PROPOSAL
Izzy K PaprockiBrazilElwin Sharvill PROPOSAL
Leon G RimArgentinaAsiya Javayant RENEWAL
Aruna K FlosiGermanyXuxue Feng RENEWAL
Faith N KolmetzIndiaStephen Shaw NEW
Nicolas M TollnerJapanBernardo Dominic NEW
Izzy E GlickRussiaAmy Elsner UNQUALIFIED
Faith P AmigonRussiaXuxue Feng RENEWAL
Jones Q CaldareraFranceAmy Elsner NEGOTIATION
Chavez T IturbideCanadaElwin Sharvill NEW
Jeanfrancois S NestleIndiaAmy Elsner UNQUALIFIED
Ricardo L MarrierItalyIoni Bowcher UNQUALIFIED
Juan F BologniaItalyIoni Bowcher UNQUALIFIED
Isabel X AlbaresCanadaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja Y ShinkoItalyIoni Bowcher UNQUALIFIED
Leja N MaletUnited KingdomElwin Sharvill NEGOTIATION
Ricardo B TollnerAustraliaXuxue Feng NEGOTIATION
Julie R DoeUnited KingdomAmy Elsner RENEWAL
Rodrigues Q StensethSpainElwin Sharvill QUALIFIED
Deepesh C NickaAustraliaXuxue Feng PROPOSAL
Darci D AlbaresFranceElwin Sharvill PROPOSAL
Aika A DoeRussiaXuxue Feng RENEWAL
Jones U ChuiFranceIoni Bowcher RENEWAL
Ashley C RulapaughFranceOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson T OldroydRussia2025-08-02Truhlar And Truhlar Attys NEGOTIATION12Ivan Magalhaes
1001Arvin R RoysterArgentina2025-07-31Chemel, James L Cpa NEGOTIATION1Bernardo Dominic
1002James M InouyeJapan2025-08-17Feltz Printing Service NEW65Xuxue Feng
1003Smith Z CampainSpain2025-08-07Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1004Jeanfrancois K MaletRussia2025-08-01Buckley Miller Wright NEW49Asiya Javayant
1005Alejandro W GauchoSpain2025-08-20Printing Dimensions UNQUALIFIED21Onyama Limba
1006Salvatore D AmigonArgentina2025-07-29King, Christopher A Esq PROPOSAL76Asiya Javayant
1007Ivar K InouyeUnited Kingdom2025-07-27King, Christopher A Esq UNQUALIFIED5Onyama Limba
1008Octavia A MaletSpain2025-07-29Feltz Printing Service UNQUALIFIED95Stephen Shaw
1009Francesco O IturbideItaly2025-08-02Printing Dimensions PROPOSAL56Ivan Magalhaes
1010Leon Z PerinBrazil2025-08-21King, Christopher A Esq NEW20Ivan Magalhaes
1011Tony F ShinkoArgentina2025-08-10Chemel, James L Cpa PROPOSAL87Asiya Javayant
1012Jennifer J SchemmerSpain2025-08-10Buckley Miller Wright QUALIFIED46Ivan Magalhaes
1013David L FlosiUnited Kingdom2025-08-18Dorl, James J Esq RENEWAL57Bernardo Dominic
1014Arvin X BriddickJapan2025-07-30Feltz Printing Service NEGOTIATION43Asiya Javayant
1015Deepesh W BologniaGermany2025-08-10King, Christopher A Esq RENEWAL31Amy Elsner
1016Johnson A NestleArgentina2025-08-09Buckley Miller Wright PROPOSAL93Ioni Bowcher
1017Costa C RoysterCanada2025-08-22Chapman, Ross E Esq PROPOSAL60Amy Elsner
1018Octavia T CaudyArgentina2025-08-02Morlong Associates NEGOTIATION7Onyama Limba
1019Sinclair T CampainCanada2025-08-03King, Christopher A Esq RENEWAL52Elwin Sharvill
1020Smith L KolmetzSpain2025-07-30Chemel, James L Cpa NEGOTIATION73Elwin Sharvill
1021Jones K OstroskyIndia2025-07-28Commercial Press RENEWAL51Onyama Limba
1022Salvatore M GarufiJapan2025-08-12Buckley Miller Wright NEGOTIATION40Elwin Sharvill
1023Sinclair V DilliardCanada2025-08-12Commercial Press RENEWAL95Xuxue Feng
1024Jefferson D RoysterCanada2025-07-25Dorl, James J Esq PROPOSAL42Stephen Shaw
1025Greenwood D PoquetteIndia2025-08-12Feiner Bros PROPOSAL82Bernardo Dominic
1026Silvio V TollnerRussia2025-07-25Buckley Miller Wright RENEWAL90Anna Fali
1027Misaki T NestleIndia2025-08-14Chemel, James L Cpa NEW71Stephen Shaw
1028Francesco W GauchoSpain2025-08-09King, Christopher A Esq QUALIFIED60Ivan Magalhaes
1029Francesco D WaycottIndia2025-08-17Printing Dimensions QUALIFIED14Onyama Limba
1030Misaki C KuskoItaly2025-08-03Feiner Bros NEW37Ioni Bowcher
1031Emily U WaycottUnited Kingdom2025-08-21Rangoni Of Florence UNQUALIFIED85Anna Fali
1032Jones S InouyeIndia2025-08-08Commercial Press NEW64Stephen Shaw
1033Darci E FerenczGermany2025-08-04King, Christopher A Esq QUALIFIED92Bernardo Dominic
1034Deepesh Y OldroydBrazil2025-08-10Rangoni Of Florence NEGOTIATION67Elwin Sharvill
1035Kadeem K SergiIndia2025-08-07Chapman, Ross E Esq QUALIFIED95Stephen Shaw
1036Rodrigues I SlusarskiArgentina2025-08-06Rangoni Of Florence RENEWAL1Bernardo Dominic
1037Jennifer W FollerCanada2025-08-14Rousseaux, Michael Esq NEW18Stephen Shaw
1038Stacey H CaudySpain2025-07-25Feiner Bros NEGOTIATION44Asiya Javayant
1039Ricardo T NickaItaly2025-07-27Chanay, Jeffrey A Esq QUALIFIED99Onyama Limba
1040Emily Z BriddickJapan2025-08-06Commercial Press RENEWAL95Onyama Limba
1041Rodrigues A OldroydIndia2025-08-09Feltz Printing Service QUALIFIED87Bernardo Dominic
1042Johnson B MorascaBrazil2025-08-17Rangoni Of Florence UNQUALIFIED89Onyama Limba
1043Tony A SlusarskiArgentina2025-08-18Chanay, Jeffrey A Esq PROPOSAL21Xuxue Feng
1044Aruna D WieserUnited Kingdom2025-08-12Chapman, Ross E Esq PROPOSAL57Anna Fali
1045Leja A KuskoAustralia2025-08-05Feiner Bros RENEWAL14Elwin Sharvill
1046Julie X VenereCanada2025-07-31Truhlar And Truhlar Attys NEW46Xuxue Feng
1047Rodrigues B MacleadFrance2025-08-14Rousseaux, Michael Esq NEW57Onyama Limba
1048Darci J CaldareraGermany2025-08-14Chapman, Ross E Esq PROPOSAL1Ivan Magalhaes
1049Mayumi S DarakjyRussia2025-08-07Commercial Press PROPOSAL31Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Julie Y InouyeItalyAsiya Javayant RENEWAL
Tony N CampainCanadaXuxue Feng RENEWAL
Aruna B SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Maisha O RulapaughSpainIvan Magalhaes PROPOSAL
Juan S DilliardIndiaXuxue Feng UNQUALIFIED
Kaitlin J StensethIndiaAnna Fali UNQUALIFIED
Jefferson Z CampainGermanyXuxue Feng QUALIFIED
Arvin Q ShinkoGermanyOnyama Limba PROPOSAL
Aditya N FollerSpainBernardo Dominic UNQUALIFIED
Kadeem N DoeRussiaAsiya Javayant NEW
Jeanfrancois Z NickaIndiaIoni Bowcher RENEWAL
Rodrigues B StensethCanadaAmy Elsner PROPOSAL
Darci Z VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Clifford U RutaAustraliaAnna Fali UNQUALIFIED
Silvio B MorascaIndiaBernardo Dominic QUALIFIED
Leja O VenereArgentinaIoni Bowcher NEGOTIATION
James R CaldareraAustraliaOnyama Limba RENEWAL
Claire Y RulapaughFranceAmy Elsner NEW
Antonio F WhobreyBrazilAmy Elsner NEGOTIATION
Juan N KolmetzFranceBernardo Dominic PROPOSAL
Emily K PaprockiAustraliaBernardo Dominic PROPOSAL
Ricardo E ButtIndiaBernardo Dominic PROPOSAL
Leon U NestleItalyIoni Bowcher PROPOSAL
Jefferson J FlosiAustraliaXuxue Feng UNQUALIFIED
Julie D MorascaArgentinaAnna Fali NEGOTIATION
Deepesh H RimJapanOnyama Limba NEGOTIATION
Costa K SchemmerIndiaAsiya Javayant RENEWAL
Sinclair H OldroydGermanyAnna Fali NEW
Kaitlin C SaylorsUnited KingdomStephen Shaw NEGOTIATION
Arvin Q SlusarskiFranceAmy Elsner UNQUALIFIED
Julie R SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Leja N OldroydBrazilStephen Shaw NEW
Johnson A CaldareraGermanyAmy Elsner UNQUALIFIED
Alejandro Z ButtAustraliaXuxue Feng NEGOTIATION
Maisha F OstroskyArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois D StockhamArgentinaStephen Shaw PROPOSAL
Stacey S CampainRussiaXuxue Feng RENEWAL
Johnson G OldroydUnited KingdomStephen Shaw UNQUALIFIED
Jones J InouyeBrazilIoni Bowcher UNQUALIFIED
Wickens Q OldroydJapanOnyama Limba UNQUALIFIED
Stacey I PerinItalyAmy Elsner PROPOSAL
Morrow G ShinkoArgentinaElwin Sharvill QUALIFIED
Aditya Z OstroskyArgentinaIvan Magalhaes PROPOSAL
Cody A BowleyItalyBernardo Dominic QUALIFIED
Morrow D VenereIndiaIvan Magalhaes QUALIFIED
Smith A BowleyGermanyBernardo Dominic PROPOSAL
Deepesh E CampainAustraliaElwin Sharvill RENEWAL
Adams J PaprockiBrazilAnna Fali NEW
Darci S VocelkaAustraliaStephen Shaw NEGOTIATION
Antonio B ButtRussiaStephen Shaw NEGOTIATION
Frozen Columns
Name
Leon J Rulapaugh
Rodrigues G Malet
Silvio O Sergi
David I Caldarera
Munro C Bolognia
David N Albares
Alejandro X Tollner
Leja K Rulapaugh
Jennifer O Saylors
Murillo S Gaucho
Claire R Rim
Wickens O Saylors
Jeanfrancois S Kusko
Leja E Caudy
Juan O Marrier
James O Kusko
Misaki K Garufi
Jeanfrancois Q Figeroa
Clifford Q Perin
Wickens V Malet
Kadeem T Ruta
Antonio K Briddick
Jones A Gaucho
Ashley H Caudy
Isabel A Gaucho
Alejandro J Garufi
Alejandro V Schemmer
Adams F Perin
Morrow A Morasca
Ivar U Malet
Claire H Caudy
Ricardo U Saylors
Jefferson W Butt
Antonio Q Iturbide
Claire A Butt
Octavia M Garufi
Leon Y Bolognia
Izzy Y Maclead
Jones G Ruta
Maisha Y Waycott
Mujtaba J Nestle
Morrow Y Butt
Mujtaba I Iturbide
Maisha P Oldroyd
Nicolas T Marrier
Stacey W Ferencz
Kadeem T Bowley
Clifford O Gillian
Julie O Poquette
Francesco M Dilliard
IdCountryDate
1000Russia2025-07-27
1001Italy2025-08-12
1002Spain2025-08-01
1003Russia2025-08-01
1004Russia2025-08-22
1005Canada2025-08-15
1006Germany2025-08-01
1007India2025-08-09
1008Japan2025-08-03
1009Argentina2025-08-07
1010Japan2025-08-01
1011Spain2025-07-27
1012Germany2025-07-30
1013France2025-08-14
1014France2025-07-30
1015Russia2025-08-05
1016Brazil2025-08-11
1017United Kingdom2025-08-20
1018Japan2025-08-07
1019Italy2025-08-05
1020Canada2025-08-06
1021Canada2025-08-04
1022Spain2025-07-27
1023Brazil2025-08-06
1024Italy2025-07-28
1025Canada2025-08-21
1026India2025-07-29
1027Argentina2025-07-26
1028Russia2025-08-14
1029Australia2025-08-11
1030Germany2025-08-23
1031France2025-07-31
1032Brazil2025-08-16
1033Russia2025-08-06
1034Italy2025-08-09
1035Spain2025-08-16
1036Russia2025-08-14
1037France2025-07-26
1038United Kingdom2025-08-17
1039France2025-08-05
1040United Kingdom2025-08-18
1041United Kingdom2025-08-17
1042Canada2025-08-01
1043Italy2025-08-05
1044Italy2025-08-17
1045France2025-08-21
1046India2025-08-05
1047Brazil2025-08-19
1048United Kingdom2025-08-03
1049France2025-08-03

On-Demand Data

NameIdCountryDate
Isabel Z Kolmetz1000Brazil2025-08-10
Mayumi X Butt1001Russia2025-08-02
Kadeem S Saylors1002France2025-08-21
Mujtaba Y Poquette1003Argentina2025-08-20
Morrow H Caudy1004Australia2025-07-25
Johnson T Kolmetz1005Australia2025-07-30
Deepesh O Albares1006Japan2025-08-08
Silvio V Bolognia1007Spain2025-08-13
Ricardo D Poquette1008Argentina2025-08-09
Aditya O Schemmer1009Germany2025-08-14
David B Amigon1010Canada2025-07-25
Wickens V Briddick1011Spain2025-07-30
Rodrigues O Kolmetz1012Russia2025-08-08
Maisha N Perin1013Australia2025-08-07
Deepesh D Briddick1014France2025-08-20
Misaki F Nicka1015Spain2025-08-07
Munro Q Malet1016Italy2025-07-26
Jeanfrancois C Glick1017Canada2025-07-31
Tony B Bolognia1018Spain2025-07-30
Mujtaba H Chui1019Italy2025-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi T AlbaresJapanXuxue Feng PROPOSAL
Izzy W OldroydGermanyBernardo Dominic RENEWAL
Salvatore R NickaIndiaBernardo Dominic NEGOTIATION
James S StensethIndiaBernardo Dominic PROPOSAL
Aditya M PoquetteRussiaBernardo Dominic NEW
Costa J FlosiAustraliaBernardo Dominic UNQUALIFIED
Aika O ShinkoGermanyIoni Bowcher QUALIFIED
Leja D GarufiJapanBernardo Dominic UNQUALIFIED
Clifford C SergiArgentinaBernardo Dominic UNQUALIFIED
Cody F SaylorsJapanElwin Sharvill RENEWAL
Mujtaba N StensethBrazilAmy Elsner NEGOTIATION
Clifford Q SchemmerBrazilStephen Shaw NEGOTIATION
Alejandro K GlickJapanBernardo Dominic UNQUALIFIED
Chavez X DarakjyIndiaIvan Magalhaes PROPOSAL
Greenwood O GlickSpainXuxue Feng QUALIFIED
Julie W WaycottIndiaIoni Bowcher UNQUALIFIED
Izzy L WaycottBrazilXuxue Feng NEGOTIATION
Jennifer Y PaprockiSpainAsiya Javayant QUALIFIED
Stacey J MorascaBrazilAsiya Javayant RENEWAL
Cody K MaletBrazilBernardo Dominic QUALIFIED
Ashley B SergiBrazilOnyama Limba UNQUALIFIED
Jefferson D WieserArgentinaIvan Magalhaes NEW
Antonio E RimIndiaElwin Sharvill NEGOTIATION
Sinclair C ShinkoIndiaAmy Elsner RENEWAL
Antonio M CaudyAustraliaAsiya Javayant PROPOSAL
Greenwood Y KuskoCanadaAnna Fali UNQUALIFIED
Maria C PoquetteAustraliaAnna Fali QUALIFIED
Faith M AlbaresCanadaAsiya Javayant PROPOSAL
Adams T StensethJapanBernardo Dominic UNQUALIFIED
Faith N WhobreyUnited KingdomXuxue Feng PROPOSAL
Octavia G WhobreyFranceBernardo Dominic UNQUALIFIED
Sinclair K ChuiItalyAsiya Javayant UNQUALIFIED
Clifford Y StensethArgentinaAnna Fali RENEWAL
Julie H StockhamFranceXuxue Feng NEGOTIATION
David C IturbideFranceAmy Elsner NEW
Kadeem J NickaItalyAnna Fali NEW
Costa Z BologniaFranceBernardo Dominic NEW
Antonio V FlosiRussiaBernardo Dominic UNQUALIFIED
Smith X PerinSpainIvan Magalhaes RENEWAL
Antonio O DarakjyAustraliaIoni Bowcher 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>