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
Aruna Y MarrierFranceElwin Sharvill NEGOTIATION
Chavez I CaudyUnited KingdomXuxue Feng UNQUALIFIED
Darci A MacleadSpainBernardo Dominic NEGOTIATION
Clifford P GillianCanadaIvan Magalhaes NEW
Deepesh U MaletJapanStephen Shaw NEGOTIATION
Aika N StensethFranceAnna Fali NEW
Misaki H CaudyCanadaAnna Fali PROPOSAL
Murillo Q ShinkoBrazilStephen Shaw NEGOTIATION
Leja C RulapaughArgentinaIvan Magalhaes QUALIFIED
Octavia E ShinkoGermanyAnna Fali NEW
Mayumi X CaldareraUnited KingdomIoni Bowcher PROPOSAL
Sinclair S TollnerCanadaStephen Shaw NEGOTIATION
Johnson S RutaAustraliaIvan Magalhaes NEW
Kaitlin H DarakjyAustraliaAmy Elsner NEW
Antonio U GillianFranceAnna Fali PROPOSAL
Salvatore D RutaRussiaBernardo Dominic RENEWAL
Juan I MacleadItalyIoni Bowcher UNQUALIFIED
Costa O GauchoItalyElwin Sharvill NEGOTIATION
Morrow K DarakjyItalyAmy Elsner QUALIFIED
Emily Z PoquetteArgentinaStephen Shaw UNQUALIFIED
Francesco B WieserCanadaXuxue Feng QUALIFIED
Jeanfrancois S ChuiFranceIoni Bowcher UNQUALIFIED
Jennifer C BologniaUnited KingdomOnyama Limba PROPOSAL
Darci H IturbideAustraliaBernardo Dominic NEW
Julie Q ShinkoUnited KingdomStephen Shaw PROPOSAL
Emily T CampainBrazilIoni Bowcher UNQUALIFIED
Aditya C NickaCanadaAsiya Javayant NEGOTIATION
Deepesh J MaletGermanyStephen Shaw RENEWAL
Adams F StensethCanadaAnna Fali NEW
Costa S DarakjyFranceAnna Fali QUALIFIED
Jefferson B GillianIndiaAmy Elsner RENEWAL
Jones E GillianJapanAmy Elsner RENEWAL
Leon H FigeroaCanadaBernardo Dominic UNQUALIFIED
Smith P RulapaughFranceBernardo Dominic NEGOTIATION
Chavez Y OstroskyRussiaElwin Sharvill RENEWAL
Mayumi J RimSpainIvan Magalhaes NEW
Maisha U RimRussiaElwin Sharvill PROPOSAL
Claire S RutaIndiaElwin Sharvill RENEWAL
Johnson Y FigeroaRussiaXuxue Feng RENEWAL
Claire K GlickIndiaBernardo Dominic UNQUALIFIED
Jennifer D WaycottRussiaXuxue Feng UNQUALIFIED
Antonio O SergiItalyStephen Shaw NEW
Aditya R WieserFranceAsiya Javayant PROPOSAL
James G CaudyCanadaAsiya Javayant RENEWAL
Aruna G MacleadAustraliaIoni Bowcher NEW
Deepesh J SaylorsUnited KingdomBernardo Dominic RENEWAL
Stacey S FlosiAustraliaOnyama Limba RENEWAL
Francesco F NickaJapanAmy Elsner NEW
Smith E SergiArgentinaStephen Shaw NEGOTIATION
Jennifer S AmigonJapanIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
David Y AlbaresItalyStephen Shaw UNQUALIFIED
Isabel M SaylorsSpainAsiya Javayant QUALIFIED
Julie A OstroskyCanadaXuxue Feng NEW
Izzy B MaletUnited KingdomXuxue Feng NEGOTIATION
Clifford D OldroydRussiaStephen Shaw QUALIFIED
Johnson G RimFranceBernardo Dominic NEW
Ashley Q PoquetteAustraliaElwin Sharvill NEGOTIATION
Aruna O RulapaughItalyAnna Fali NEGOTIATION
Mujtaba H CaudyIndiaStephen Shaw NEGOTIATION
Mayumi O PaprockiRussiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones L MarrierGermany2025-07-28Chanay, Jeffrey A Esq NEGOTIATION51Amy Elsner
1001Cody T KuskoFrance2025-08-19Chapman, Ross E Esq NEGOTIATION79Asiya Javayant
1002Clifford G PoquetteAustralia2025-07-31Chanay, Jeffrey A Esq QUALIFIED48Elwin Sharvill
1003Cody Q DilliardUnited Kingdom2025-08-07Dorl, James J Esq QUALIFIED18Elwin Sharvill
1004Juan U BowleyFrance2025-08-09Dorl, James J Esq UNQUALIFIED91Onyama Limba
1005Clifford Q DarakjyArgentina2025-07-28Printing Dimensions NEGOTIATION65Ioni Bowcher
1006Jeanfrancois D AmigonJapan2025-08-13Buckley Miller Wright RENEWAL64Ivan Magalhaes
1007Johnson C MacleadBrazil2025-08-24King, Christopher A Esq UNQUALIFIED76Bernardo Dominic
1008Jeanfrancois M WhobreyArgentina2025-08-17Morlong Associates PROPOSAL73Ioni Bowcher
1009Aruna N OldroydSpain2025-08-24Rousseaux, Michael Esq PROPOSAL77Stephen Shaw
1010Salvatore P GauchoUnited Kingdom2025-08-07Feiner Bros RENEWAL77Asiya Javayant
1011Clifford O GauchoUnited Kingdom2025-08-16Chanay, Jeffrey A Esq RENEWAL88Anna Fali
1012Aruna O StensethAustralia2025-08-13Truhlar And Truhlar Attys NEGOTIATION77Asiya Javayant
1013Ashley P MorascaArgentina2025-08-04Rousseaux, Michael Esq PROPOSAL63Amy Elsner
1014Darci Q ChuiArgentina2025-08-21Buckley Miller Wright PROPOSAL12Anna Fali
1015Johnson M NickaItaly2025-08-18Feltz Printing Service NEGOTIATION9Anna Fali
1016Salvatore E ButtRussia2025-08-12Truhlar And Truhlar Attys UNQUALIFIED67Onyama Limba
1017Nicolas W RutaFrance2025-08-03Rousseaux, Michael Esq NEW57Bernardo Dominic
1018Jefferson K BologniaCanada2025-08-24King, Christopher A Esq NEGOTIATION45Ivan Magalhaes
1019Greenwood U PoquetteItaly2025-08-11Chemel, James L Cpa PROPOSAL13Elwin Sharvill
1020Ricardo X CaudyCanada2025-08-15Dorl, James J Esq PROPOSAL27Asiya Javayant
1021Jennifer D DarakjySpain2025-08-19Commercial Press NEW10Ioni Bowcher
1022Isabel K NickaSpain2025-08-03Buckley Miller Wright NEGOTIATION67Asiya Javayant
1023Ashley L AlbaresRussia2025-08-11Benton, John B Jr NEGOTIATION58Amy Elsner
1024Juan M OstroskyUnited Kingdom2025-08-23Chemel, James L Cpa QUALIFIED28Bernardo Dominic
1025Leja P PoquetteSpain2025-08-07Rousseaux, Michael Esq PROPOSAL82Onyama Limba
1026Deepesh P TollnerIndia2025-08-24Dorl, James J Esq NEGOTIATION88Ivan Magalhaes
1027Darci M FerenczIndia2025-07-30Commercial Press QUALIFIED4Anna Fali
1028Mayumi F AmigonItaly2025-08-05Chemel, James L Cpa PROPOSAL93Amy Elsner
1029Aika A WhobreyIndia2025-08-05Feiner Bros PROPOSAL3Stephen Shaw
1030James D DarakjyFrance2025-08-10Feltz Printing Service RENEWAL88Asiya Javayant
1031Aruna F RoysterCanada2025-08-20Printing Dimensions QUALIFIED13Anna Fali
1032Adams T VenereArgentina2025-08-16Feiner Bros PROPOSAL57Amy Elsner
1033Leon U ShinkoFrance2025-08-22Truhlar And Truhlar Attys QUALIFIED37Onyama Limba
1034Aika C CampainItaly2025-08-21Morlong Associates NEGOTIATION47Onyama Limba
1035Jennifer L NestleUnited Kingdom2025-08-11Chemel, James L Cpa RENEWAL30Ioni Bowcher
1036Maisha K RutaSpain2025-08-20Morlong Associates RENEWAL57Xuxue Feng
1037Nicolas S IturbideArgentina2025-07-29Commercial Press RENEWAL94Ivan Magalhaes
1038Francesco K FollerRussia2025-08-08Truhlar And Truhlar Attys NEGOTIATION41Elwin Sharvill
1039Murillo P GillianFrance2025-08-10Benton, John B Jr PROPOSAL76Anna Fali
1040Sinclair R FlosiJapan2025-08-18Feltz Printing Service RENEWAL22Xuxue Feng
1041Johnson V NickaSpain2025-08-11Printing Dimensions RENEWAL11Elwin Sharvill
1042Ashley V VocelkaAustralia2025-07-30Rangoni Of Florence PROPOSAL83Onyama Limba
1043Misaki W CaudyArgentina2025-08-04Rangoni Of Florence PROPOSAL16Anna Fali
1044Stacey T StensethGermany2025-08-13Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1045Smith Z DilliardCanada2025-08-19Commercial Press NEW53Onyama Limba
1046Silvio Q MorascaItaly2025-08-11Feltz Printing Service QUALIFIED44Stephen Shaw
1047Juan O WieserCanada2025-07-27Truhlar And Truhlar Attys NEGOTIATION60Stephen Shaw
1048Smith O RoysterAustralia2025-08-24Chemel, James L Cpa PROPOSAL8Asiya Javayant
1049Jennifer N WieserCanada2025-08-02Rangoni Of Florence QUALIFIED86Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Deepesh Q BologniaItalyElwin Sharvill QUALIFIED
Aika O PerinIndiaIoni Bowcher QUALIFIED
Francesco F TollnerIndiaAnna Fali RENEWAL
Arvin M PerinUnited KingdomElwin Sharvill RENEWAL
Leja E TollnerSpainAnna Fali QUALIFIED
Jeanfrancois R FollerFranceAmy Elsner NEGOTIATION
Sinclair D ChuiGermanyIvan Magalhaes NEW
Smith N PoquetteRussiaAnna Fali UNQUALIFIED
Wickens G ChuiIndiaStephen Shaw QUALIFIED
Jefferson G AmigonGermanyBernardo Dominic NEW
Faith F FigeroaBrazilXuxue Feng NEW
Julie Q TollnerAustraliaAsiya Javayant QUALIFIED
Costa Q WaycottSpainStephen Shaw PROPOSAL
Murillo D IturbideBrazilElwin Sharvill NEGOTIATION
Greenwood Y CampainSpainBernardo Dominic NEGOTIATION
Adams K OstroskyArgentinaElwin Sharvill NEW
Emily R BologniaFranceIoni Bowcher UNQUALIFIED
Morrow R AmigonGermanyAmy Elsner RENEWAL
Alejandro Y GlickIndiaAsiya Javayant QUALIFIED
Alejandro M GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh R InouyeAustraliaBernardo Dominic NEGOTIATION
Munro V SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Munro P InouyeJapanElwin Sharvill NEW
James W ButtIndiaAmy Elsner RENEWAL
Jones J IturbideFranceBernardo Dominic PROPOSAL
Salvatore F PaprockiItalyXuxue Feng NEGOTIATION
Ivar X GlickJapanXuxue Feng QUALIFIED
Smith I PerinUnited KingdomBernardo Dominic UNQUALIFIED
Izzy D WhobreyIndiaOnyama Limba NEGOTIATION
Nicolas O BriddickAustraliaStephen Shaw NEGOTIATION
Isabel M BologniaFranceAsiya Javayant PROPOSAL
Maisha Z SergiUnited KingdomAmy Elsner NEW
Stacey F FollerArgentinaIvan Magalhaes UNQUALIFIED
Jennifer I RulapaughJapanAnna Fali RENEWAL
Leja B CampainItalyAmy Elsner PROPOSAL
Maisha S GillianUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois S DarakjySpainIoni Bowcher RENEWAL
Juan O SlusarskiRussiaBernardo Dominic UNQUALIFIED
Morrow X SaylorsGermanyStephen Shaw QUALIFIED
Nicolas V CaldareraFranceIvan Magalhaes RENEWAL
Cody P OldroydIndiaAmy Elsner UNQUALIFIED
Murillo C FerenczGermanyBernardo Dominic NEGOTIATION
Deepesh P MorascaItalyIvan Magalhaes UNQUALIFIED
Izzy D PoquetteCanadaAsiya Javayant UNQUALIFIED
Kadeem G PerinCanadaAmy Elsner PROPOSAL
Emily J VocelkaItalyAmy Elsner RENEWAL
Sinclair Z InouyeGermanyAmy Elsner NEGOTIATION
Mujtaba L NestleFranceIoni Bowcher NEGOTIATION
Rodrigues Z NestleRussiaBernardo Dominic PROPOSAL
Leja A AlbaresRussiaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Aruna S Perin
Alejandro C Schemmer
Sinclair O Tollner
Clifford C Amigon
Jeanfrancois K Bolognia
Jones M Ostrosky
Morrow D Garufi
Octavia T Royster
Alejandro G Saylors
Francesco F Inouye
Juan J Sergi
Silvio B Oldroyd
Maria P Glick
David L Royster
Adams C Caldarera
Munro R Rim
Jones N Kolmetz
Kaitlin X Marrier
Murillo G Ostrosky
Leja Q Poquette
Costa O Darakjy
Clifford O Wieser
Juan M Inouye
Leja O Kolmetz
David N Bowley
Emily J Marrier
Nicolas L Malet
Misaki X Vocelka
Johnson X Vocelka
Maisha N Tollner
Maisha N Slusarski
Rodrigues P Tollner
Darci L Gillian
Costa V Oldroyd
Mujtaba F Maclead
Ricardo F Marrier
Antonio H Rulapaugh
Salvatore D Foller
Cody D Caudy
Munro Q Nicka
Cody V Poquette
Stacey X Foller
Julie V Doe
Deepesh Q Dilliard
Morrow A Butt
Chavez U Maclead
Kadeem A Caudy
Ricardo Z Paprocki
Arvin D Waycott
Aruna B Slusarski
IdCountryDate
1000Argentina2025-07-30
1001Canada2025-08-13
1002United Kingdom2025-08-03
1003Russia2025-07-31
1004Spain2025-08-07
1005Argentina2025-08-19
1006India2025-07-26
1007Japan2025-07-27
1008India2025-08-14
1009Germany2025-08-21
1010Canada2025-08-02
1011France2025-08-03
1012France2025-08-04
1013Canada2025-07-29
1014Germany2025-08-13
1015Germany2025-07-30
1016Japan2025-08-19
1017Australia2025-08-07
1018Brazil2025-08-03
1019Russia2025-08-13
1020United Kingdom2025-08-20
1021Argentina2025-07-31
1022Italy2025-07-31
1023Brazil2025-08-16
1024Canada2025-08-24
1025United Kingdom2025-08-11
1026India2025-08-08
1027Australia2025-08-18
1028Argentina2025-08-05
1029Russia2025-08-04
1030Italy2025-08-22
1031United Kingdom2025-08-21
1032India2025-08-23
1033Spain2025-08-21
1034Canada2025-08-19
1035Germany2025-08-06
1036Japan2025-08-05
1037Brazil2025-08-09
1038France2025-08-21
1039France2025-08-07
1040Brazil2025-08-15
1041Japan2025-08-17
1042Italy2025-08-16
1043Brazil2025-07-31
1044Australia2025-08-24
1045United Kingdom2025-08-19
1046Italy2025-08-23
1047France2025-07-28
1048Australia2025-08-01
1049Australia2025-08-04

On-Demand Data

NameIdCountryDate
Arvin R Schemmer1000Argentina2025-08-11
Salvatore Z Bowley1001Spain2025-08-05
Chavez C Dilliard1002United Kingdom2025-08-15
Maisha R Paprocki1003Australia2025-08-23
Alejandro L Shinko1004United Kingdom2025-08-21
Emily U Oldroyd1005Canada2025-07-29
David O Kolmetz1006Germany2025-08-16
Morrow C Chui1007India2025-08-11
Mayumi E Stockham1008Brazil2025-08-13
Darci R Ruta1009Brazil2025-08-09
Munro O Figeroa1010Italy2025-08-22
Wickens B Amigon1011Brazil2025-08-05
Emily J Schemmer1012Spain2025-08-16
Costa A Kusko1013France2025-08-24
Chavez Q Sergi1014Argentina2025-08-24
Salvatore R Royster1015Russia2025-08-04
Jennifer R Morasca1016Russia2025-08-15
Stacey R Whobrey1017Australia2025-08-21
Salvatore W Kolmetz1018India2025-08-21
Adams I Amigon1019Brazil2025-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair L KolmetzAustraliaBernardo Dominic RENEWAL
Jennifer B BologniaIndiaAnna Fali PROPOSAL
Rodrigues E SchemmerGermanyAnna Fali UNQUALIFIED
Clifford J SergiItalyXuxue Feng UNQUALIFIED
Arvin O RoysterItalyAnna Fali UNQUALIFIED
Ricardo Y WaycottUnited KingdomAmy Elsner NEW
Tony J CaldareraIndiaIoni Bowcher QUALIFIED
Julie K KuskoAustraliaOnyama Limba NEW
Izzy G FlosiItalyAsiya Javayant RENEWAL
Julie L FigeroaCanadaIoni Bowcher RENEWAL
Leja V BologniaCanadaBernardo Dominic NEW
Claire R BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Smith Q ShinkoUnited KingdomAsiya Javayant RENEWAL
David T KuskoGermanyOnyama Limba UNQUALIFIED
Wickens X VocelkaItalyOnyama Limba NEGOTIATION
Mayumi D MaletFranceIoni Bowcher QUALIFIED
Emily N GauchoFranceOnyama Limba NEGOTIATION
Kadeem Z FigeroaItalyXuxue Feng NEGOTIATION
Leja S CaldareraRussiaAnna Fali UNQUALIFIED
Jones B GillianBrazilIoni Bowcher NEW
Leja U CampainItalyElwin Sharvill RENEWAL
Silvio R StockhamItalyIoni Bowcher UNQUALIFIED
Kaitlin C DoeItalyElwin Sharvill PROPOSAL
Jefferson Q BowleyFranceAsiya Javayant QUALIFIED
Arvin X RutaGermanyOnyama Limba NEW
Ricardo P StensethBrazilIoni Bowcher UNQUALIFIED
Juan Y VocelkaIndiaAnna Fali NEW
Mujtaba U PoquetteUnited KingdomXuxue Feng QUALIFIED
Murillo V FerenczCanadaAsiya Javayant UNQUALIFIED
Silvio J GauchoJapanBernardo Dominic UNQUALIFIED
Darci Z BowleyBrazilBernardo Dominic NEW
Aika L ShinkoBrazilIoni Bowcher QUALIFIED
Aruna T NickaUnited KingdomElwin Sharvill PROPOSAL
Kadeem H BriddickIndiaOnyama Limba UNQUALIFIED
Stacey E PaprockiBrazilBernardo Dominic PROPOSAL
Clifford W IturbideBrazilStephen Shaw PROPOSAL
David K ChuiJapanAsiya Javayant NEW
Claire T FollerItalyStephen Shaw QUALIFIED
Morrow W BriddickGermanyAsiya Javayant NEGOTIATION
Leon S PaprockiUnited KingdomOnyama Limba 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>