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
Mayumi A ChuiRussiaStephen Shaw NEGOTIATION
Kadeem B FerenczArgentinaAsiya Javayant NEW
Emily C StensethRussiaAsiya Javayant NEW
Jefferson Y RutaGermanyIvan Magalhaes UNQUALIFIED
David R RoysterItalyAnna Fali NEW
Kaitlin V MaletBrazilIvan Magalhaes UNQUALIFIED
Adams X StockhamSpainIoni Bowcher QUALIFIED
Arvin J BologniaFranceAmy Elsner QUALIFIED
Jones R StensethUnited KingdomAmy Elsner NEW
Francesco F ButtUnited KingdomAnna Fali RENEWAL
James H FollerItalyIoni Bowcher PROPOSAL
Mayumi W PaprockiArgentinaBernardo Dominic NEW
Murillo R NestleJapanStephen Shaw NEGOTIATION
Tony P PerinIndiaIvan Magalhaes QUALIFIED
Silvio V CampainGermanyAsiya Javayant NEW
Mujtaba M VenereBrazilElwin Sharvill NEW
Kadeem N SergiRussiaElwin Sharvill NEW
Jeanfrancois M SlusarskiItalyXuxue Feng UNQUALIFIED
Smith Y TollnerAustraliaOnyama Limba NEW
Alejandro I CaldareraAustraliaIvan Magalhaes RENEWAL
Morrow J StensethRussiaXuxue Feng UNQUALIFIED
Kadeem M FigeroaIndiaElwin Sharvill UNQUALIFIED
Wickens E FigeroaAustraliaElwin Sharvill NEGOTIATION
Octavia R WhobreyGermanyIoni Bowcher NEW
Ivar V DilliardJapanIvan Magalhaes UNQUALIFIED
Arvin I AlbaresBrazilAsiya Javayant QUALIFIED
Rodrigues K SaylorsCanadaBernardo Dominic PROPOSAL
Rodrigues J SaylorsBrazilXuxue Feng NEW
David Z GauchoItalyAsiya Javayant UNQUALIFIED
Claire L CaudyArgentinaAmy Elsner RENEWAL
Isabel U DoeIndiaAsiya Javayant NEW
Aika L AmigonUnited KingdomAnna Fali NEW
Sinclair U GillianArgentinaAsiya Javayant RENEWAL
Smith Z PaprockiBrazilIvan Magalhaes UNQUALIFIED
Silvio L FerenczUnited KingdomAnna Fali NEGOTIATION
Mujtaba J ChuiAustraliaIoni Bowcher RENEWAL
Izzy L KuskoFranceIvan Magalhaes PROPOSAL
Silvio N MaletSpainAmy Elsner PROPOSAL
Jeanfrancois P PerinJapanOnyama Limba NEW
Izzy L NickaArgentinaIvan Magalhaes UNQUALIFIED
Kadeem M GillianArgentinaXuxue Feng NEGOTIATION
Izzy I StockhamArgentinaIoni Bowcher UNQUALIFIED
Claire F StockhamJapanBernardo Dominic RENEWAL
Sinclair K OldroydArgentinaAsiya Javayant UNQUALIFIED
Rodrigues T SaylorsGermanyElwin Sharvill NEW
Alejandro Q WaycottArgentinaBernardo Dominic UNQUALIFIED
Costa U MaletSpainAmy Elsner RENEWAL
Emily Q CampainFranceAnna Fali PROPOSAL
Munro G OstroskyGermanyAnna Fali NEGOTIATION
Murillo H RulapaughSpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Darci E ShinkoCanadaStephen Shaw NEW
Ricardo A KolmetzJapanAsiya Javayant NEW
Aika S SlusarskiBrazilBernardo Dominic QUALIFIED
Emily X VocelkaRussiaIoni Bowcher QUALIFIED
Silvio U NickaIndiaAmy Elsner PROPOSAL
James J RimIndiaBernardo Dominic QUALIFIED
David F IturbideRussiaElwin Sharvill RENEWAL
Jones U StensethGermanyAmy Elsner RENEWAL
Silvio X GauchoCanadaAmy Elsner PROPOSAL
Johnson H MarrierItalyElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria Y MorascaAustralia2025-08-05Printing Dimensions NEGOTIATION50Elwin Sharvill
1001Silvio Q MarrierItaly2025-08-07Buckley Miller Wright UNQUALIFIED55Onyama Limba
1002Claire Z ButtAustralia2025-08-06Feltz Printing Service NEGOTIATION20Anna Fali
1003Faith D GillianArgentina2025-08-22Chapman, Ross E Esq QUALIFIED85Xuxue Feng
1004Stacey Q OldroydFrance2025-08-07Rangoni Of Florence RENEWAL62Stephen Shaw
1005Salvatore F VenereGermany2025-07-29Benton, John B Jr RENEWAL26Ioni Bowcher
1006Rodrigues Q VocelkaItaly2025-08-02Dorl, James J Esq NEW45Asiya Javayant
1007Sinclair G SaylorsRussia2025-08-18Feltz Printing Service QUALIFIED25Asiya Javayant
1008Darci D InouyeAustralia2025-08-15Rousseaux, Michael Esq NEGOTIATION71Asiya Javayant
1009Alejandro A TollnerArgentina2025-08-21Morlong Associates PROPOSAL59Bernardo Dominic
1010Arvin S WieserGermany2025-08-15Chemel, James L Cpa NEGOTIATION52Xuxue Feng
1011Leon F GauchoBrazil2025-07-25Morlong Associates RENEWAL12Ivan Magalhaes
1012Chavez Q MaletAustralia2025-08-11Printing Dimensions RENEWAL35Elwin Sharvill
1013Adams T MarrierJapan2025-08-07Chemel, James L Cpa NEW93Ioni Bowcher
1014Murillo X FollerBrazil2025-07-29Chemel, James L Cpa QUALIFIED4Ivan Magalhaes
1015Jeanfrancois G MaletGermany2025-08-12Buckley Miller Wright RENEWAL14Xuxue Feng
1016Greenwood B VenereGermany2025-07-28Truhlar And Truhlar Attys UNQUALIFIED47Bernardo Dominic
1017Octavia Y FlosiItaly2025-07-28Truhlar And Truhlar Attys RENEWAL65Xuxue Feng
1018Deepesh B AlbaresGermany2025-08-05Printing Dimensions UNQUALIFIED47Amy Elsner
1019Clifford M AmigonIndia2025-08-14Truhlar And Truhlar Attys PROPOSAL54Anna Fali
1020Izzy A FollerUnited Kingdom2025-07-28Truhlar And Truhlar Attys NEGOTIATION94Amy Elsner
1021Ivar S DilliardFrance2025-08-13Chapman, Ross E Esq PROPOSAL53Ivan Magalhaes
1022Costa H RimCanada2025-08-22Chanay, Jeffrey A Esq NEGOTIATION19Asiya Javayant
1023Kadeem Q InouyeItaly2025-08-20King, Christopher A Esq PROPOSAL10Bernardo Dominic
1024Salvatore Y OstroskyBrazil2025-08-06Buckley Miller Wright PROPOSAL99Stephen Shaw
1025Juan V ShinkoIndia2025-08-14Benton, John B Jr PROPOSAL78Amy Elsner
1026Julie O GauchoBrazil2025-08-16Benton, John B Jr PROPOSAL1Onyama Limba
1027Morrow O FlosiSpain2025-07-27Printing Dimensions NEGOTIATION43Elwin Sharvill
1028Wickens U GlickSpain2025-08-09Benton, John B Jr NEW38Bernardo Dominic
1029Nicolas X AmigonGermany2025-07-29Chemel, James L Cpa QUALIFIED67Ioni Bowcher
1030Emily E InouyeGermany2025-07-29Rousseaux, Michael Esq QUALIFIED4Bernardo Dominic
1031David Q WhobreyIndia2025-08-06Morlong Associates RENEWAL97Elwin Sharvill
1032Mujtaba E DilliardAustralia2025-08-09Feiner Bros NEW72Ivan Magalhaes
1033Misaki E ButtJapan2025-07-24Benton, John B Jr NEGOTIATION84Bernardo Dominic
1034Adams M AmigonIndia2025-08-04Feiner Bros UNQUALIFIED55Bernardo Dominic
1035Francesco A FlosiRussia2025-07-25Chapman, Ross E Esq NEW65Bernardo Dominic
1036Claire D RoysterCanada2025-08-08Rangoni Of Florence PROPOSAL82Ivan Magalhaes
1037Arvin L DilliardCanada2025-08-17Chapman, Ross E Esq NEGOTIATION97Asiya Javayant
1038Jefferson T MacleadFrance2025-08-15Morlong Associates PROPOSAL15Asiya Javayant
1039Kaitlin B FollerIndia2025-08-20Chapman, Ross E Esq QUALIFIED58Anna Fali
1040Chavez I DilliardArgentina2025-07-31Chapman, Ross E Esq UNQUALIFIED79Elwin Sharvill
1041Cody C PoquetteCanada2025-08-10Morlong Associates NEGOTIATION41Onyama Limba
1042Sinclair D AmigonIndia2025-08-21Feltz Printing Service QUALIFIED98Elwin Sharvill
1043David N BowleyIndia2025-07-25Benton, John B Jr QUALIFIED89Asiya Javayant
1044Adams D CampainJapan2025-08-05Printing Dimensions PROPOSAL86Asiya Javayant
1045Misaki M CaldareraIndia2025-08-14Feiner Bros RENEWAL91Elwin Sharvill
1046Aditya O BologniaJapan2025-08-02Rangoni Of Florence RENEWAL8Bernardo Dominic
1047Juan J BowleySpain2025-08-02Chanay, Jeffrey A Esq RENEWAL81Ioni Bowcher
1048Nicolas F CampainRussia2025-07-31Feiner Bros UNQUALIFIED33Xuxue Feng
1049Silvio Z ButtFrance2025-08-04Feiner Bros RENEWAL79Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ricardo A BologniaUnited KingdomAmy Elsner UNQUALIFIED
Claire T PoquetteItalyXuxue Feng NEGOTIATION
Salvatore B PerinGermanyIvan Magalhaes NEW
Silvio V SaylorsItalyAmy Elsner PROPOSAL
Alejandro T GauchoItalyAsiya Javayant NEW
Sinclair S DilliardJapanOnyama Limba UNQUALIFIED
Deepesh T GarufiIndiaStephen Shaw RENEWAL
Isabel M CaudyAustraliaAnna Fali PROPOSAL
Misaki V DoeGermanyIoni Bowcher NEW
Greenwood J DoeUnited KingdomStephen Shaw NEW
Darci C AlbaresRussiaAsiya Javayant PROPOSAL
Murillo K WieserCanadaIvan Magalhaes RENEWAL
Kaitlin K FlosiCanadaAnna Fali RENEWAL
Jennifer O VenereBrazilElwin Sharvill PROPOSAL
Izzy H ChuiIndiaAnna Fali PROPOSAL
Jeanfrancois C NickaRussiaAnna Fali UNQUALIFIED
Smith K GillianCanadaAnna Fali PROPOSAL
Aditya M GillianSpainIoni Bowcher NEGOTIATION
Aruna U FollerUnited KingdomIoni Bowcher RENEWAL
Morrow B RoysterGermanyAnna Fali NEGOTIATION
Greenwood P BowleyRussiaXuxue Feng UNQUALIFIED
Kaitlin Y FigeroaBrazilElwin Sharvill RENEWAL
Darci O RutaItalyAnna Fali NEW
David J TollnerArgentinaIvan Magalhaes QUALIFIED
Leon V KolmetzFranceOnyama Limba UNQUALIFIED
Silvio E RutaCanadaBernardo Dominic NEW
Misaki Z NestleFranceIoni Bowcher QUALIFIED
James A AlbaresUnited KingdomAmy Elsner NEGOTIATION
Misaki L SergiArgentinaElwin Sharvill NEW
Aditya A MaletAustraliaAnna Fali UNQUALIFIED
Antonio A OstroskyGermanyAsiya Javayant NEGOTIATION
James N VocelkaFranceIoni Bowcher UNQUALIFIED
Nicolas E AlbaresGermanyBernardo Dominic PROPOSAL
Ashley H WaycottJapanStephen Shaw UNQUALIFIED
Julie X MarrierRussiaIvan Magalhaes NEW
Stacey Q BriddickBrazilBernardo Dominic RENEWAL
Alejandro O FlosiItalyStephen Shaw NEW
Emily E BowleyUnited KingdomOnyama Limba UNQUALIFIED
Ivar N MarrierUnited KingdomAsiya Javayant NEW
Leja F DoeAustraliaXuxue Feng NEGOTIATION
Smith Y PerinUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba M RulapaughItalyAsiya Javayant QUALIFIED
Clifford Q SlusarskiJapanIoni Bowcher RENEWAL
Julie K IturbideItalyAmy Elsner NEW
Sinclair X WhobreyJapanIoni Bowcher NEW
Kaitlin D MaletGermanyStephen Shaw QUALIFIED
Smith A AmigonAustraliaAnna Fali NEGOTIATION
Stacey O SaylorsSpainIvan Magalhaes RENEWAL
Leon D SlusarskiCanadaAsiya Javayant RENEWAL
Francesco H NickaAustraliaAsiya Javayant PROPOSAL
Frozen Columns
Name
Jeanfrancois D Paprocki
Munro Q Tollner
Rodrigues Y Perin
Jefferson D Kusko
Salvatore P Sergi
Darci R Inouye
Emily B Vocelka
Chavez G Stenseth
Octavia F Inouye
Faith Y Royster
Mayumi N Rulapaugh
Julie N Poquette
Morrow A Malet
Cody A Chui
Darci E Albares
Greenwood Y Stenseth
Adams G Dilliard
Juan K Malet
Leon J Maclead
Smith K Inouye
Jefferson M Slusarski
David E Doe
Aruna J Caldarera
Izzy V Campain
Misaki Q Paprocki
Aruna U Briddick
Ivar Z Ruta
James Q Tollner
Stacey N Nestle
Izzy E Chui
Claire M Inouye
Octavia X Caldarera
Kaitlin G Marrier
David F Rulapaugh
Jeanfrancois R Garufi
Faith T Shinko
Aruna G Bowley
Nicolas S Iturbide
Antonio G Ruta
Aditya U Sergi
Maria Y Caudy
Misaki O Gillian
David B Venere
Arvin T Venere
Greenwood N Vocelka
Maisha X Shinko
Maria L Venere
Emily B Maclead
Kaitlin Z Briddick
Leon L Darakjy
IdCountryDate
1000Argentina2025-08-07
1001Japan2025-08-01
1002Italy2025-08-09
1003Canada2025-07-25
1004Spain2025-08-09
1005France2025-07-30
1006Italy2025-08-13
1007United Kingdom2025-08-07
1008Canada2025-08-17
1009Canada2025-07-31
1010Australia2025-08-21
1011Spain2025-08-01
1012France2025-08-07
1013Australia2025-08-22
1014Japan2025-07-24
1015India2025-08-16
1016India2025-08-05
1017Germany2025-08-09
1018India2025-07-29
1019Germany2025-08-07
1020France2025-08-08
1021Argentina2025-08-02
1022Russia2025-08-21
1023Germany2025-08-14
1024France2025-08-09
1025Brazil2025-07-29
1026Italy2025-07-26
1027United Kingdom2025-07-25
1028France2025-08-18
1029Argentina2025-07-26
1030Italy2025-08-17
1031United Kingdom2025-08-04
1032Russia2025-07-27
1033Brazil2025-08-06
1034Australia2025-08-02
1035Brazil2025-08-05
1036Argentina2025-08-22
1037Australia2025-08-01
1038India2025-08-15
1039Spain2025-08-12
1040France2025-08-21
1041Australia2025-08-11
1042Brazil2025-08-05
1043Argentina2025-08-16
1044Japan2025-08-10
1045Italy2025-08-17
1046Italy2025-08-03
1047United Kingdom2025-08-09
1048Spain2025-08-22
1049Italy2025-08-13

On-Demand Data

NameIdCountryDate
Emily H Marrier1000Australia2025-08-17
Kadeem E Ruta1001Australia2025-08-12
Alejandro R Iturbide1002Brazil2025-08-07
Ashley N Ferencz1003Canada2025-08-04
Costa I Schemmer1004Argentina2025-08-10
Misaki T Nicka1005Italy2025-08-18
Julie U Gaucho1006India2025-08-08
Octavia D Flosi1007Japan2025-08-03
Costa Z Schemmer1008Russia2025-08-05
David T Inouye1009France2025-08-08
Ashley H Royster1010Brazil2025-07-26
Wickens P Saylors1011Russia2025-08-13
Maisha Z Kolmetz1012Germany2025-08-12
Jeanfrancois X Figeroa1013Russia2025-08-02
Chavez R Chui1014Japan2025-08-15
Aditya X Whobrey1015Spain2025-08-13
Morrow N Rulapaugh1016Brazil2025-08-07
Jennifer M Kusko1017United Kingdom2025-07-31
Francesco V Doe1018Italy2025-07-28
Julie L Iturbide1019Spain2025-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa V DoeCanadaAmy Elsner NEGOTIATION
Wickens C MarrierItalyXuxue Feng QUALIFIED
Munro J GarufiIndiaAnna Fali UNQUALIFIED
Mujtaba B VocelkaBrazilBernardo Dominic PROPOSAL
Silvio L AmigonJapanAmy Elsner PROPOSAL
Costa C VenereCanadaAmy Elsner RENEWAL
Stacey Z SergiSpainStephen Shaw UNQUALIFIED
Chavez R DarakjyCanadaIvan Magalhaes RENEWAL
Kaitlin R FerenczAustraliaAmy Elsner QUALIFIED
Izzy J IturbideRussiaAsiya Javayant UNQUALIFIED
Maria L RimIndiaXuxue Feng UNQUALIFIED
Julie E SlusarskiCanadaBernardo Dominic QUALIFIED
Arvin Z FollerJapanAnna Fali NEGOTIATION
Johnson S IturbideCanadaIoni Bowcher RENEWAL
Claire X RoysterAustraliaAnna Fali NEW
Emily A InouyeGermanyBernardo Dominic RENEWAL
Morrow G SaylorsArgentinaXuxue Feng NEGOTIATION
Stacey X OldroydRussiaIvan Magalhaes NEGOTIATION
Adams F FerenczItalyBernardo Dominic NEGOTIATION
Kadeem M RutaFranceAnna Fali UNQUALIFIED
Ricardo K SlusarskiGermanyStephen Shaw NEGOTIATION
Ivar P GauchoAustraliaAnna Fali UNQUALIFIED
Arvin I KuskoAustraliaAsiya Javayant QUALIFIED
Adams N OstroskyUnited KingdomOnyama Limba NEW
Rodrigues Y DarakjyUnited KingdomAsiya Javayant NEW
Cody X RutaGermanyAsiya Javayant NEGOTIATION
Nicolas B FerenczFranceXuxue Feng PROPOSAL
Aika G FigeroaRussiaIvan Magalhaes UNQUALIFIED
Mujtaba Z SaylorsGermanyAmy Elsner NEW
Izzy T SchemmerJapanAmy Elsner RENEWAL
Alejandro E NestleJapanElwin Sharvill QUALIFIED
Misaki C OstroskyFranceIoni Bowcher UNQUALIFIED
Ashley S PoquetteArgentinaStephen Shaw QUALIFIED
Chavez I FlosiJapanIoni Bowcher QUALIFIED
Mujtaba W PoquetteItalyXuxue Feng PROPOSAL
Costa J GauchoRussiaAnna Fali PROPOSAL
Aika D MarrierJapanBernardo Dominic NEW
Juan Z OldroydBrazilIoni Bowcher PROPOSAL
Claire T InouyeRussiaIoni Bowcher NEW
Aika P VocelkaAustraliaIvan Magalhaes 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>