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
Chavez A RutaAustraliaAnna Fali QUALIFIED
Murillo O WhobreyIndiaAmy Elsner UNQUALIFIED
Francesco M AmigonFranceElwin Sharvill PROPOSAL
Costa K SaylorsIndiaXuxue Feng QUALIFIED
Munro B StensethFranceAsiya Javayant PROPOSAL
Sinclair K FigeroaArgentinaAsiya Javayant QUALIFIED
Jones M GillianRussiaXuxue Feng NEGOTIATION
Ivar Q InouyeRussiaAnna Fali PROPOSAL
Julie A DarakjyGermanyBernardo Dominic UNQUALIFIED
Kadeem B AlbaresJapanAnna Fali PROPOSAL
Johnson P SchemmerGermanyIoni Bowcher PROPOSAL
Sinclair T RulapaughIndiaAmy Elsner UNQUALIFIED
Leja M PerinArgentinaAsiya Javayant QUALIFIED
Wickens K VocelkaArgentinaAsiya Javayant RENEWAL
Izzy U WaycottGermanyElwin Sharvill UNQUALIFIED
Leon Y WieserBrazilAnna Fali NEGOTIATION
Francesco G RutaGermanyIoni Bowcher PROPOSAL
Adams H RimIndiaOnyama Limba UNQUALIFIED
Juan V TollnerCanadaIvan Magalhaes NEW
Maisha Q RoysterUnited KingdomXuxue Feng NEGOTIATION
Costa N NestleItalyIvan Magalhaes UNQUALIFIED
Faith A AmigonRussiaIvan Magalhaes PROPOSAL
Emily Z VocelkaArgentinaOnyama Limba UNQUALIFIED
Claire A RutaAustraliaBernardo Dominic PROPOSAL
Stacey D OldroydArgentinaOnyama Limba NEW
Francesco P ShinkoSpainIvan Magalhaes QUALIFIED
Clifford C SlusarskiBrazilXuxue Feng UNQUALIFIED
Salvatore O KuskoJapanStephen Shaw QUALIFIED
Cody Q DoeIndiaAnna Fali PROPOSAL
Isabel O MaletItalyElwin Sharvill UNQUALIFIED
Mujtaba O GlickIndiaAsiya Javayant QUALIFIED
Maisha X RoysterSpainAnna Fali QUALIFIED
Darci J ChuiAustraliaStephen Shaw NEGOTIATION
Jennifer K OstroskyIndiaBernardo Dominic UNQUALIFIED
Faith K WieserItalyStephen Shaw UNQUALIFIED
Alejandro Z MaletIndiaAmy Elsner RENEWAL
Greenwood U ButtFranceAnna Fali NEGOTIATION
Faith H OldroydJapanIvan Magalhaes QUALIFIED
Nicolas O TollnerItalyAnna Fali QUALIFIED
Munro M NickaSpainStephen Shaw PROPOSAL
Nicolas X SaylorsItalyOnyama Limba UNQUALIFIED
Juan X CaldareraItalyBernardo Dominic NEW
Juan K CampainCanadaAsiya Javayant PROPOSAL
Ashley U OldroydUnited KingdomIvan Magalhaes QUALIFIED
Jones Y MacleadAustraliaAsiya Javayant QUALIFIED
Isabel K OldroydCanadaAsiya Javayant QUALIFIED
Kaitlin A KolmetzFranceAnna Fali NEGOTIATION
Leon K KolmetzSpainStephen Shaw NEW
Maisha Z IturbideAustraliaElwin Sharvill UNQUALIFIED
David W DilliardGermanyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco P NickaBrazilElwin Sharvill RENEWAL
James N VocelkaSpainIvan Magalhaes QUALIFIED
Costa D IturbideJapanElwin Sharvill PROPOSAL
Claire F FlosiIndiaAsiya Javayant NEGOTIATION
Izzy U InouyeAustraliaOnyama Limba NEW
Costa L SaylorsIndiaAmy Elsner QUALIFIED
Ricardo P ButtAustraliaElwin Sharvill QUALIFIED
Costa J MacleadBrazilIvan Magalhaes UNQUALIFIED
Adams S GarufiSpainIoni Bowcher NEGOTIATION
Leon G WhobreyArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair V CampainItaly2025-08-10Rousseaux, Michael Esq NEW14Asiya Javayant
1001Francesco Y FigeroaSpain2025-07-21Chapman, Ross E Esq NEGOTIATION61Bernardo Dominic
1002Costa Y MacleadRussia2025-07-15Morlong Associates NEGOTIATION15Stephen Shaw
1003Aika K IturbideAustralia2025-07-31Chapman, Ross E Esq NEGOTIATION70Onyama Limba
1004Salvatore X MaletIndia2025-08-07Rousseaux, Michael Esq RENEWAL12Ioni Bowcher
1005Cody A NickaCanada2025-08-07Chapman, Ross E Esq UNQUALIFIED3Ioni Bowcher
1006Misaki Y GauchoArgentina2025-07-20Morlong Associates RENEWAL52Ioni Bowcher
1007Silvio F DoeUnited Kingdom2025-08-03Benton, John B Jr NEGOTIATION73Anna Fali
1008Greenwood N StensethAustralia2025-08-08Rangoni Of Florence PROPOSAL89Bernardo Dominic
1009Emily E SchemmerRussia2025-08-07King, Christopher A Esq PROPOSAL51Elwin Sharvill
1010Kadeem B KuskoAustralia2025-08-03Commercial Press NEW88Onyama Limba
1011Chavez Z GlickAustralia2025-07-27Printing Dimensions UNQUALIFIED25Xuxue Feng
1012Ricardo J BowleyArgentina2025-08-09Benton, John B Jr PROPOSAL83Elwin Sharvill
1013Greenwood D CampainUnited Kingdom2025-08-02Feiner Bros UNQUALIFIED10Anna Fali
1014James F MorascaCanada2025-07-29Chemel, James L Cpa RENEWAL95Anna Fali
1015Salvatore A VenereAustralia2025-07-16Buckley Miller Wright NEGOTIATION40Xuxue Feng
1016Claire H MaletItaly2025-08-04Commercial Press NEGOTIATION65Elwin Sharvill
1017David U WaycottSpain2025-07-22Morlong Associates NEW93Onyama Limba
1018Wickens W FerenczJapan2025-08-04Rangoni Of Florence UNQUALIFIED46Ioni Bowcher
1019Jefferson M BriddickGermany2025-07-30Buckley Miller Wright NEGOTIATION89Onyama Limba
1020Sinclair C MacleadJapan2025-07-17Truhlar And Truhlar Attys UNQUALIFIED73Xuxue Feng
1021Greenwood L OstroskyBrazil2025-07-31Benton, John B Jr PROPOSAL22Onyama Limba
1022Kaitlin N GlickCanada2025-07-29Buckley Miller Wright PROPOSAL27Ioni Bowcher
1023Deepesh E CaldareraUnited Kingdom2025-08-12Chemel, James L Cpa PROPOSAL21Anna Fali
1024Izzy W FigeroaBrazil2025-08-03Benton, John B Jr PROPOSAL44Elwin Sharvill
1025Leja J FlosiAustralia2025-07-27Benton, John B Jr RENEWAL94Bernardo Dominic
1026Julie K KolmetzJapan2025-08-05Chemel, James L Cpa NEGOTIATION7Anna Fali
1027Arvin C FerenczArgentina2025-07-29Rangoni Of Florence PROPOSAL16Elwin Sharvill
1028James I StockhamArgentina2025-07-21Rangoni Of Florence UNQUALIFIED67Amy Elsner
1029Silvio X NestleGermany2025-07-27Rangoni Of Florence NEW50Anna Fali
1030Leon P KuskoItaly2025-08-12King, Christopher A Esq RENEWAL28Asiya Javayant
1031David Q VenereJapan2025-08-04Feltz Printing Service UNQUALIFIED55Anna Fali
1032Misaki D DilliardAustralia2025-08-06King, Christopher A Esq NEW93Asiya Javayant
1033Nicolas E KolmetzSpain2025-07-31Buckley Miller Wright UNQUALIFIED57Asiya Javayant
1034Nicolas A VenereGermany2025-08-02Rangoni Of Florence PROPOSAL62Ivan Magalhaes
1035Mayumi Q TollnerSpain2025-07-31Chemel, James L Cpa NEW5Onyama Limba
1036Cody V CaldareraItaly2025-08-02Benton, John B Jr NEW79Elwin Sharvill
1037Darci D RulapaughItaly2025-07-17King, Christopher A Esq NEGOTIATION90Amy Elsner
1038Clifford P WhobreyJapan2025-07-15Buckley Miller Wright NEW75Anna Fali
1039Jeanfrancois C FollerArgentina2025-07-24Chapman, Ross E Esq PROPOSAL52Stephen Shaw
1040Salvatore T SlusarskiIndia2025-07-17Rangoni Of Florence PROPOSAL54Stephen Shaw
1041Adams K OldroydAustralia2025-08-09Truhlar And Truhlar Attys QUALIFIED23Ivan Magalhaes
1042Faith F MarrierJapan2025-07-15Benton, John B Jr QUALIFIED17Ioni Bowcher
1043Maria H RoysterUnited Kingdom2025-08-06Printing Dimensions NEW59Xuxue Feng
1044Arvin Y RutaCanada2025-07-21Chanay, Jeffrey A Esq PROPOSAL24Anna Fali
1045Ricardo K MarrierRussia2025-07-24Truhlar And Truhlar Attys QUALIFIED81Bernardo Dominic
1046Costa N MacleadItaly2025-07-23Rousseaux, Michael Esq RENEWAL13Stephen Shaw
1047Ivar S GillianGermany2025-08-13Rangoni Of Florence RENEWAL52Ioni Bowcher
1048Kadeem A NestleItaly2025-08-08Rangoni Of Florence PROPOSAL51Stephen Shaw
1049Antonio N BologniaUnited Kingdom2025-07-26Commercial Press NEGOTIATION12Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Greenwood P WieserBrazilStephen Shaw UNQUALIFIED
Jennifer N VenereCanadaStephen Shaw UNQUALIFIED
Arvin H AlbaresBrazilOnyama Limba PROPOSAL
Sinclair U PaprockiSpainOnyama Limba NEGOTIATION
Murillo U PoquetteCanadaBernardo Dominic QUALIFIED
Maria P BowleyJapanAsiya Javayant UNQUALIFIED
Murillo S SlusarskiItalyAmy Elsner RENEWAL
Juan V SergiRussiaIoni Bowcher NEGOTIATION
Silvio U WieserArgentinaElwin Sharvill QUALIFIED
Julie V DilliardFranceElwin Sharvill QUALIFIED
Tony Y ChuiUnited KingdomStephen Shaw RENEWAL
Jeanfrancois T StensethAustraliaBernardo Dominic PROPOSAL
Murillo G GillianAustraliaStephen Shaw RENEWAL
Emily E PoquetteAustraliaIvan Magalhaes PROPOSAL
Arvin Q CampainIndiaXuxue Feng NEGOTIATION
Mujtaba N MaletIndiaStephen Shaw QUALIFIED
Maria L RutaIndiaAnna Fali NEGOTIATION
Kaitlin X RutaFranceBernardo Dominic QUALIFIED
Isabel U NestleRussiaAsiya Javayant QUALIFIED
Emily K NickaIndiaBernardo Dominic NEGOTIATION
Deepesh W CaldareraIndiaIoni Bowcher NEGOTIATION
Juan Q VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Antonio L ChuiUnited KingdomStephen Shaw QUALIFIED
Wickens C GlickFranceElwin Sharvill PROPOSAL
Emily J SlusarskiBrazilOnyama Limba NEGOTIATION
Wickens O RutaIndiaAsiya Javayant NEGOTIATION
Johnson F StockhamFranceAmy Elsner RENEWAL
Maisha Y InouyeItalyAnna Fali RENEWAL
Rodrigues Z BologniaJapanAmy Elsner PROPOSAL
Aika N FlosiArgentinaIoni Bowcher QUALIFIED
Mujtaba P FlosiIndiaIvan Magalhaes NEGOTIATION
Mujtaba V KolmetzIndiaAsiya Javayant PROPOSAL
Maria P TollnerJapanOnyama Limba RENEWAL
Isabel B StensethGermanyXuxue Feng UNQUALIFIED
Morrow W WieserUnited KingdomBernardo Dominic RENEWAL
Leja O RulapaughGermanyOnyama Limba QUALIFIED
Silvio K MaletIndiaAnna Fali PROPOSAL
Smith D PoquetteSpainAnna Fali UNQUALIFIED
Octavia E RoysterArgentinaAnna Fali QUALIFIED
Aditya C ChuiArgentinaIoni Bowcher RENEWAL
Jefferson Z MorascaArgentinaAnna Fali NEW
Kaitlin N RimUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair Q PoquetteGermanyXuxue Feng PROPOSAL
Murillo P KuskoRussiaOnyama Limba NEW
Maisha Y OstroskyItalyIoni Bowcher NEGOTIATION
Jeanfrancois O OstroskyBrazilAsiya Javayant NEGOTIATION
Greenwood J StensethSpainStephen Shaw PROPOSAL
Jeanfrancois A CampainAustraliaOnyama Limba PROPOSAL
Greenwood G OldroydArgentinaElwin Sharvill RENEWAL
Kaitlin U RimCanadaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Nicolas E Bolognia
Isabel R Darakjy
James A Campain
Wickens H Glick
Faith T Stenseth
Salvatore D Shinko
Julie P Garufi
Alejandro E Nicka
Deepesh E Shinko
Leja L Bowley
Jeanfrancois G Saylors
Faith J Gaucho
Octavia X Stockham
Darci P Nicka
Octavia S Rulapaugh
Alejandro I Saylors
Costa X Venere
Smith Z Nestle
Nicolas L Perin
Alejandro I Maclead
Stacey L Glick
Sinclair K Rim
Francesco I Saylors
Antonio V Caldarera
Rodrigues O Butt
Clifford C Kusko
Greenwood Q Ferencz
Nicolas X Morasca
Juan W Perin
Sinclair N Gillian
Maria T Gaucho
Sinclair A Gillian
Aika W Chui
Misaki D Iturbide
Mayumi N Schemmer
Jones U Shinko
Mayumi Q Briddick
Mujtaba Z Foller
Ricardo W Rim
Francesco M Vocelka
Stacey W Malet
Morrow C Foller
Jennifer Y Malet
Leon C Tollner
Sinclair P Saylors
Clifford A Caudy
James I Darakjy
Izzy T Darakjy
Costa D Malet
Nicolas L Amigon
IdCountryDate
1000Argentina2025-08-02
1001Spain2025-07-20
1002Spain2025-07-18
1003Australia2025-08-08
1004Brazil2025-07-28
1005Germany2025-08-05
1006Russia2025-08-02
1007Canada2025-08-11
1008France2025-07-16
1009Canada2025-08-09
1010Italy2025-07-19
1011Italy2025-08-07
1012United Kingdom2025-08-03
1013Spain2025-08-08
1014United Kingdom2025-07-22
1015Brazil2025-07-16
1016Italy2025-07-21
1017India2025-07-16
1018United Kingdom2025-07-27
1019Australia2025-07-28
1020India2025-08-13
1021United Kingdom2025-07-20
1022Australia2025-07-27
1023Spain2025-07-18
1024France2025-08-04
1025United Kingdom2025-08-06
1026France2025-08-05
1027Italy2025-07-20
1028Brazil2025-07-19
1029India2025-07-19
1030Australia2025-07-30
1031Russia2025-07-28
1032United Kingdom2025-08-05
1033Italy2025-07-23
1034Australia2025-08-01
1035Japan2025-07-24
1036Italy2025-08-02
1037Germany2025-08-01
1038Japan2025-08-01
1039Russia2025-07-19
1040Italy2025-07-19
1041France2025-07-27
1042Argentina2025-07-18
1043Russia2025-07-22
1044Russia2025-08-01
1045India2025-08-12
1046Russia2025-07-31
1047Argentina2025-08-08
1048Argentina2025-08-08
1049Spain2025-08-10

On-Demand Data

NameIdCountryDate
Leja D Inouye1000Japan2025-07-31
Arvin R Maclead1001Canada2025-07-25
Julie F Gillian1002Japan2025-07-27
Leja R Gaucho1003Canada2025-08-02
Ivar Q Marrier1004India2025-08-11
Salvatore P Kolmetz1005Italy2025-08-11
Leja W Sergi1006France2025-08-10
Arvin U Schemmer1007Italy2025-07-22
Johnson J Kolmetz1008Japan2025-07-15
David L Caldarera1009Spain2025-07-17
Smith P Dilliard1010Russia2025-08-01
Kadeem V Rim1011Spain2025-07-23
Mayumi I Maclead1012France2025-08-10
Murillo A Poquette1013Canada2025-08-10
Juan C Wieser1014Canada2025-07-19
Octavia Q Marrier1015Canada2025-08-13
Maisha V Ruta1016Brazil2025-07-19
Faith D Vocelka1017Japan2025-07-19
Deepesh S Malet1018Argentina2025-07-23
Leon C Malet1019France2025-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh Z PoquetteBrazilStephen Shaw NEGOTIATION
Stacey L GlickCanadaAsiya Javayant QUALIFIED
Mujtaba H AlbaresJapanXuxue Feng PROPOSAL
Antonio I KuskoUnited KingdomAmy Elsner UNQUALIFIED
Aditya G RimAustraliaBernardo Dominic NEW
David A RoysterItalyAmy Elsner QUALIFIED
Tony V CaudyIndiaAnna Fali NEGOTIATION
Isabel R DilliardArgentinaAmy Elsner NEGOTIATION
Chavez W SchemmerRussiaStephen Shaw RENEWAL
Izzy M GauchoBrazilAmy Elsner RENEWAL
Salvatore U RutaGermanyIoni Bowcher NEW
Antonio B FollerUnited KingdomStephen Shaw PROPOSAL
Jefferson E StensethFranceIvan Magalhaes UNQUALIFIED
Aika M TollnerUnited KingdomOnyama Limba RENEWAL
Morrow W NickaUnited KingdomXuxue Feng RENEWAL
Octavia C ChuiCanadaIoni Bowcher UNQUALIFIED
Ivar A FerenczArgentinaXuxue Feng UNQUALIFIED
Misaki F PerinBrazilOnyama Limba PROPOSAL
Leon T BowleyItalyXuxue Feng NEW
Isabel H BologniaUnited KingdomXuxue Feng NEGOTIATION
Smith Z GarufiIndiaAmy Elsner RENEWAL
Octavia D DilliardAustraliaXuxue Feng NEGOTIATION
Octavia B WieserJapanOnyama Limba NEW
Maisha M RoysterAustraliaOnyama Limba NEW
Mayumi C CaudyItalyAsiya Javayant QUALIFIED
Alejandro U DilliardSpainOnyama Limba PROPOSAL
Costa R ButtAustraliaIoni Bowcher NEW
Arvin Q DoeItalyElwin Sharvill UNQUALIFIED
Ashley J CaldareraFranceBernardo Dominic PROPOSAL
Claire P SchemmerGermanyXuxue Feng NEW
Morrow B NestleCanadaElwin Sharvill RENEWAL
Costa S FerenczCanadaAmy Elsner NEW
Aditya K WhobreySpainAsiya Javayant RENEWAL
Nicolas U BologniaArgentinaAsiya Javayant QUALIFIED
Rodrigues E MacleadArgentinaIoni Bowcher NEGOTIATION
Octavia V FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Tony T SchemmerJapanXuxue Feng PROPOSAL
Isabel A WhobreyArgentinaIoni Bowcher PROPOSAL
Maria D AlbaresAustraliaXuxue Feng RENEWAL
Greenwood R FerenczGermanyBernardo Dominic 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>