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
Salvatore G NickaSpainXuxue Feng RENEWAL
Ricardo K AlbaresGermanyBernardo Dominic UNQUALIFIED
Jones K StockhamArgentinaXuxue Feng NEGOTIATION
David K GarufiJapanOnyama Limba NEW
Darci T StensethRussiaXuxue Feng UNQUALIFIED
Arvin N StockhamSpainAmy Elsner UNQUALIFIED
Kadeem A MorascaArgentinaAmy Elsner NEW
Leja J CaldareraCanadaOnyama Limba PROPOSAL
Nicolas R NestleIndiaAsiya Javayant RENEWAL
Mujtaba T FerenczGermanyIvan Magalhaes PROPOSAL
Kaitlin Y CampainFranceStephen Shaw PROPOSAL
Chavez X RutaFranceAmy Elsner QUALIFIED
Munro Z ButtCanadaElwin Sharvill UNQUALIFIED
Antonio W MaletGermanyIoni Bowcher NEW
Maria D SchemmerItalyAnna Fali QUALIFIED
Arvin H RulapaughArgentinaStephen Shaw QUALIFIED
Aruna L RoysterItalyXuxue Feng NEW
Francesco D RulapaughCanadaXuxue Feng QUALIFIED
Aruna X GauchoAustraliaBernardo Dominic NEW
Aditya I SlusarskiUnited KingdomAsiya Javayant NEW
Darci D KuskoItalyIvan Magalhaes PROPOSAL
Costa P NickaIndiaIoni Bowcher NEGOTIATION
Johnson K PerinBrazilOnyama Limba PROPOSAL
Silvio D SchemmerItalyXuxue Feng QUALIFIED
Antonio C NestleSpainElwin Sharvill RENEWAL
Maisha R CampainSpainStephen Shaw RENEWAL
Leon H MaletRussiaIvan Magalhaes PROPOSAL
Costa U DilliardAustraliaBernardo Dominic RENEWAL
Maisha B BriddickGermanyBernardo Dominic UNQUALIFIED
Mujtaba F BowleyAustraliaOnyama Limba NEGOTIATION
Wickens X BriddickJapanStephen Shaw QUALIFIED
Sinclair X BologniaBrazilStephen Shaw NEW
Clifford B TollnerAustraliaIoni Bowcher RENEWAL
Emily J GlickRussiaElwin Sharvill PROPOSAL
Claire G WaycottJapanXuxue Feng NEGOTIATION
Antonio C PerinIndiaAnna Fali PROPOSAL
Murillo R AlbaresGermanyElwin Sharvill NEW
Rodrigues U DilliardBrazilOnyama Limba RENEWAL
Misaki T GillianJapanIoni Bowcher UNQUALIFIED
Aika L FlosiGermanyAmy Elsner UNQUALIFIED
Ivar V WieserSpainBernardo Dominic QUALIFIED
Jones A CampainJapanAnna Fali UNQUALIFIED
Isabel O GarufiJapanStephen Shaw UNQUALIFIED
Wickens U FollerIndiaOnyama Limba QUALIFIED
Sinclair N CaudyArgentinaOnyama Limba PROPOSAL
Leon D StockhamBrazilStephen Shaw NEGOTIATION
Chavez T MorascaUnited KingdomIoni Bowcher QUALIFIED
Antonio H PerinFranceIvan Magalhaes PROPOSAL
Deepesh I MorascaFranceAmy Elsner NEGOTIATION
James Q ShinkoRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson T RutaFranceBernardo Dominic PROPOSAL
Morrow O PaprockiRussiaStephen Shaw NEGOTIATION
Emily K AlbaresSpainOnyama Limba NEGOTIATION
Claire P MaletArgentinaIoni Bowcher RENEWAL
Sinclair U AlbaresUnited KingdomXuxue Feng QUALIFIED
Kaitlin S BologniaCanadaAmy Elsner NEW
Morrow K ButtUnited KingdomAmy Elsner RENEWAL
Jennifer W GarufiRussiaAnna Fali NEW
Octavia M RoysterCanadaAsiya Javayant QUALIFIED
Rodrigues S TollnerIndiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony M AmigonJapan2025-08-21Benton, John B Jr PROPOSAL23Stephen Shaw
1001Mayumi H FerenczArgentina2025-08-20Buckley Miller Wright UNQUALIFIED25Asiya Javayant
1002Silvio F GauchoBrazil2025-08-15King, Christopher A Esq NEGOTIATION72Xuxue Feng
1003Silvio G NestleFrance2025-08-12Chanay, Jeffrey A Esq QUALIFIED23Ioni Bowcher
1004Sinclair E FigeroaSpain2025-08-16Benton, John B Jr PROPOSAL81Amy Elsner
1005Mayumi V CampainIndia2025-07-30Benton, John B Jr QUALIFIED88Ivan Magalhaes
1006Rodrigues N AmigonIndia2025-08-20Commercial Press QUALIFIED3Xuxue Feng
1007Faith A DilliardBrazil2025-08-25Rangoni Of Florence UNQUALIFIED72Elwin Sharvill
1008Octavia K BologniaFrance2025-08-25Printing Dimensions UNQUALIFIED30Amy Elsner
1009Aika M NickaGermany2025-07-31King, Christopher A Esq NEW15Amy Elsner
1010David E VenereIndia2025-08-01King, Christopher A Esq NEGOTIATION50Onyama Limba
1011Leja N SlusarskiItaly2025-08-06Buckley Miller Wright RENEWAL24Amy Elsner
1012Jefferson G RutaBrazil2025-08-11Buckley Miller Wright PROPOSAL48Onyama Limba
1013Maria V SlusarskiItaly2025-08-23Buckley Miller Wright RENEWAL73Onyama Limba
1014Mayumi I OldroydItaly2025-08-24Truhlar And Truhlar Attys QUALIFIED29Elwin Sharvill
1015Salvatore E ChuiSpain2025-08-19Chapman, Ross E Esq QUALIFIED31Ivan Magalhaes
1016Ricardo O FerenczArgentina2025-07-31Rangoni Of Florence RENEWAL7Elwin Sharvill
1017Wickens Z AmigonAustralia2025-08-09Chanay, Jeffrey A Esq NEGOTIATION36Ioni Bowcher
1018Nicolas T MaletIndia2025-08-06Commercial Press UNQUALIFIED97Asiya Javayant
1019Juan O DarakjyBrazil2025-08-16Chanay, Jeffrey A Esq NEW53Onyama Limba
1020Leja U MorascaUnited Kingdom2025-08-15Rangoni Of Florence NEW46Xuxue Feng
1021Nicolas X NickaItaly2025-08-19Chemel, James L Cpa NEW28Bernardo Dominic
1022Emily P RoysterItaly2025-08-05Printing Dimensions UNQUALIFIED20Amy Elsner
1023Silvio F CampainIndia2025-08-24Chanay, Jeffrey A Esq QUALIFIED49Onyama Limba
1024Kadeem P FlosiGermany2025-08-22King, Christopher A Esq NEGOTIATION29Xuxue Feng
1025Misaki H MaletIndia2025-08-05Chapman, Ross E Esq UNQUALIFIED85Onyama Limba
1026Ricardo K SchemmerFrance2025-08-03Chapman, Ross E Esq QUALIFIED76Amy Elsner
1027Aruna R CaldareraGermany2025-08-20Feltz Printing Service QUALIFIED85Elwin Sharvill
1028James R ButtRussia2025-08-12Morlong Associates RENEWAL20Stephen Shaw
1029Jefferson N OldroydUnited Kingdom2025-08-03Dorl, James J Esq UNQUALIFIED51Onyama Limba
1030Arvin K RimArgentina2025-08-17Commercial Press UNQUALIFIED17Ioni Bowcher
1031Octavia C NickaRussia2025-08-19Feiner Bros NEGOTIATION75Anna Fali
1032Arvin D OstroskyArgentina2025-08-22Printing Dimensions NEW37Elwin Sharvill
1033Faith V CaldareraCanada2025-08-09Chapman, Ross E Esq RENEWAL83Ioni Bowcher
1034Adams W InouyeAustralia2025-08-06Commercial Press QUALIFIED4Onyama Limba
1035Tony K MaletBrazil2025-08-08Dorl, James J Esq NEW75Asiya Javayant
1036Salvatore X ButtIndia2025-08-27Chemel, James L Cpa PROPOSAL39Ioni Bowcher
1037Johnson B BologniaJapan2025-08-02Feltz Printing Service NEGOTIATION85Elwin Sharvill
1038Smith T FigeroaFrance2025-08-18Dorl, James J Esq NEW44Asiya Javayant
1039Francesco U IturbideGermany2025-08-20Buckley Miller Wright PROPOSAL70Onyama Limba
1040Greenwood B ChuiRussia2025-08-14Dorl, James J Esq NEGOTIATION8Ioni Bowcher
1041Munro M SchemmerAustralia2025-08-04King, Christopher A Esq NEW47Bernardo Dominic
1042Emily R DilliardArgentina2025-08-24Dorl, James J Esq NEGOTIATION35Onyama Limba
1043Mayumi E NestleIndia2025-08-09Feltz Printing Service QUALIFIED68Ivan Magalhaes
1044Wickens N NickaAustralia2025-08-11Rousseaux, Michael Esq NEW91Xuxue Feng
1045Alejandro B GarufiIndia2025-08-09Truhlar And Truhlar Attys PROPOSAL85Onyama Limba
1046James P ShinkoUnited Kingdom2025-08-14Buckley Miller Wright NEW76Asiya Javayant
1047Kadeem A CaldareraItaly2025-08-07King, Christopher A Esq UNQUALIFIED34Anna Fali
1048Chavez X PaprockiGermany2025-08-14Rangoni Of Florence UNQUALIFIED13Asiya Javayant
1049Salvatore G DarakjyBrazil2025-08-16Buckley Miller Wright UNQUALIFIED75Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Leja Z CampainSpainIvan Magalhaes UNQUALIFIED
Greenwood X MarrierArgentinaStephen Shaw PROPOSAL
Greenwood Z CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Izzy Z RimCanadaIvan Magalhaes UNQUALIFIED
Misaki F ShinkoIndiaIvan Magalhaes NEW
Adams G WaycottBrazilAmy Elsner QUALIFIED
Aruna G WaycottGermanyAsiya Javayant UNQUALIFIED
Sinclair D SergiJapanXuxue Feng UNQUALIFIED
Alejandro X CaldareraIndiaIvan Magalhaes UNQUALIFIED
Izzy B BriddickBrazilBernardo Dominic RENEWAL
Cody Z MorascaSpainAsiya Javayant PROPOSAL
Johnson Q RoysterSpainAsiya Javayant NEW
Ricardo L GarufiFranceIvan Magalhaes QUALIFIED
Johnson E ChuiArgentinaIvan Magalhaes QUALIFIED
Ashley F OldroydCanadaAnna Fali NEGOTIATION
Leja N StensethItalyAnna Fali RENEWAL
Munro J WieserAustraliaElwin Sharvill RENEWAL
Johnson E ShinkoRussiaBernardo Dominic NEGOTIATION
Kaitlin F RutaFranceXuxue Feng UNQUALIFIED
Costa D SchemmerAustraliaIvan Magalhaes NEW
Tony K StensethCanadaOnyama Limba NEW
Octavia D SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba A NestleIndiaAsiya Javayant QUALIFIED
Aruna F DarakjyJapanAmy Elsner UNQUALIFIED
Jones U CaudyIndiaAnna Fali RENEWAL
Jeanfrancois I PoquetteIndiaAnna Fali PROPOSAL
Leja W WieserCanadaAmy Elsner QUALIFIED
Adams N MaletBrazilAnna Fali RENEWAL
Leon P PoquetteJapanElwin Sharvill NEW
Johnson E CaudyJapanAnna Fali NEGOTIATION
Clifford K CaldareraRussiaAmy Elsner PROPOSAL
Chavez R InouyeBrazilStephen Shaw NEGOTIATION
Maria H SaylorsBrazilBernardo Dominic QUALIFIED
Maisha T IturbideCanadaElwin Sharvill QUALIFIED
Smith V FerenczGermanyIvan Magalhaes NEW
Sinclair Z WieserBrazilAnna Fali PROPOSAL
Chavez A SaylorsJapanElwin Sharvill QUALIFIED
Clifford R RoysterArgentinaIoni Bowcher NEW
Aditya S WhobreyJapanBernardo Dominic QUALIFIED
Ricardo L FollerGermanyAmy Elsner UNQUALIFIED
Ivar G GauchoSpainBernardo Dominic NEW
Kadeem W GarufiJapanAnna Fali UNQUALIFIED
Greenwood K SaylorsFranceElwin Sharvill UNQUALIFIED
Octavia Q PerinItalyIvan Magalhaes UNQUALIFIED
Misaki N SlusarskiIndiaIvan Magalhaes QUALIFIED
Deepesh K OstroskyGermanyAsiya Javayant NEW
Deepesh O SlusarskiArgentinaElwin Sharvill RENEWAL
Johnson I SlusarskiArgentinaElwin Sharvill RENEWAL
Rodrigues K CaudyBrazilIvan Magalhaes NEGOTIATION
Julie I AlbaresFranceIoni Bowcher QUALIFIED
Frozen Columns
Name
Aruna B Caldarera
Arvin B Chui
Jeanfrancois T Schemmer
Ashley M Slusarski
Ivar K Figeroa
Kadeem A Stockham
Alejandro V Paprocki
Salvatore J Sergi
Stacey W Malet
Aika K Royster
Octavia D Glick
Kaitlin L Amigon
David F Bowley
Misaki G Nicka
Murillo C Rulapaugh
Tony E Vocelka
Tony I Bowley
Murillo X Whobrey
Leon M Foller
Leja L Glick
Jennifer Q Rim
Rodrigues J Marrier
Faith O Darakjy
Smith N Poquette
Maria X Caudy
Ricardo X Stenseth
Maria E Stockham
Munro U Kusko
Tony Q Gillian
Julie L Kusko
Johnson M Vocelka
Chavez P Venere
Jeanfrancois J Rim
Maisha K Caldarera
Arvin Z Gillian
Stacey U Gillian
Greenwood Z Ostrosky
Francesco H Oldroyd
Mayumi L Venere
Faith E Schemmer
Antonio F Poquette
Stacey C Nicka
David H Ostrosky
Rodrigues W Nicka
Antonio J Schemmer
Nicolas T Maclead
Jennifer U Glick
Francesco I Chui
Leja G Malet
Smith O Campain
IdCountryDate
1000Brazil2025-08-19
1001Australia2025-08-06
1002Australia2025-08-19
1003Argentina2025-08-20
1004Germany2025-08-25
1005Spain2025-08-02
1006Russia2025-08-18
1007Argentina2025-08-14
1008Japan2025-08-14
1009Russia2025-08-20
1010France2025-08-16
1011Canada2025-08-11
1012Italy2025-08-08
1013Germany2025-08-20
1014Australia2025-08-09
1015United Kingdom2025-08-06
1016India2025-08-07
1017United Kingdom2025-08-05
1018Brazil2025-08-01
1019France2025-08-14
1020Brazil2025-08-09
1021Canada2025-08-17
1022Germany2025-08-14
1023Canada2025-08-18
1024Russia2025-08-17
1025Canada2025-08-12
1026France2025-07-30
1027Spain2025-08-20
1028India2025-07-30
1029United Kingdom2025-08-28
1030France2025-08-22
1031United Kingdom2025-08-22
1032Argentina2025-08-27
1033Russia2025-08-01
1034United Kingdom2025-08-21
1035Canada2025-07-30
1036Japan2025-08-06
1037Spain2025-08-22
1038Japan2025-08-19
1039Italy2025-08-03
1040Brazil2025-08-27
1041Argentina2025-08-11
1042Spain2025-08-06
1043Argentina2025-08-11
1044France2025-08-17
1045Italy2025-08-27
1046United Kingdom2025-08-24
1047Japan2025-08-02
1048India2025-07-30
1049Argentina2025-07-31

On-Demand Data

NameIdCountryDate
Leon W Darakjy1000Italy2025-08-16
Jeanfrancois T Tollner1001Canada2025-08-12
Kadeem W Nestle1002Brazil2025-08-18
Isabel B Briddick1003India2025-08-26
Octavia E Malet1004Germany2025-08-24
Ashley Z Butt1005Italy2025-08-20
Aika Z Ostrosky1006Canada2025-08-03
Arvin R Rim1007India2025-08-12
Claire B Butt1008Argentina2025-08-19
Aruna I Caudy1009United Kingdom2025-08-02
Murillo R Wieser1010France2025-08-10
Isabel N Morasca1011Germany2025-08-07
Faith W Poquette1012France2025-08-05
Faith H Albares1013Argentina2025-08-07
Faith M Ruta1014France2025-08-22
Munro U Campain1015Argentina2025-08-01
Cody J Stenseth1016France2025-08-11
Ricardo N Maclead1017Australia2025-08-06
Leja U Paprocki1018United Kingdom2025-08-13
Silvio Y Amigon1019Brazil2025-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan E GlickItalyBernardo Dominic NEW
Deepesh M KuskoIndiaIvan Magalhaes QUALIFIED
Silvio G InouyeArgentinaElwin Sharvill NEGOTIATION
Greenwood L OstroskyFranceBernardo Dominic RENEWAL
Ashley Y FigeroaJapanAsiya Javayant QUALIFIED
Chavez Z KuskoSpainOnyama Limba RENEWAL
Smith I SaylorsJapanOnyama Limba NEW
Costa Q WieserIndiaOnyama Limba QUALIFIED
Johnson A ButtIndiaAmy Elsner PROPOSAL
Arvin K NestleBrazilIvan Magalhaes NEW
Jennifer V MorascaJapanAmy Elsner NEW
Tony Z PoquetteSpainOnyama Limba NEGOTIATION
Cody J KuskoJapanAsiya Javayant NEGOTIATION
Kaitlin E RimFranceIvan Magalhaes NEW
Smith P ShinkoFranceIvan Magalhaes RENEWAL
Arvin H SergiItalyIvan Magalhaes RENEWAL
Cody T DoeAustraliaElwin Sharvill PROPOSAL
Emily C MaletItalyAnna Fali NEW
Misaki D SaylorsBrazilOnyama Limba UNQUALIFIED
Jennifer R OstroskyJapanIvan Magalhaes NEGOTIATION
Alejandro D BriddickUnited KingdomAmy Elsner QUALIFIED
Alejandro O CaudyAustraliaElwin Sharvill NEW
Deepesh K RoysterSpainIoni Bowcher NEGOTIATION
Silvio E MaletBrazilStephen Shaw UNQUALIFIED
Cody O BriddickIndiaElwin Sharvill UNQUALIFIED
Leon Q OstroskyCanadaElwin Sharvill QUALIFIED
Adams O SlusarskiRussiaStephen Shaw RENEWAL
Claire F RutaFranceIvan Magalhaes PROPOSAL
Greenwood L RutaIndiaAnna Fali NEW
Ivar W RulapaughAustraliaIvan Magalhaes QUALIFIED
Johnson F MarrierSpainOnyama Limba PROPOSAL
Ivar P RoysterJapanAmy Elsner PROPOSAL
Silvio M AlbaresBrazilIoni Bowcher RENEWAL
Aika E SaylorsIndiaIoni Bowcher QUALIFIED
Claire O AmigonAustraliaAsiya Javayant PROPOSAL
Wickens U RutaCanadaBernardo Dominic PROPOSAL
Greenwood U WieserBrazilAnna Fali RENEWAL
Wickens O PoquetteCanadaIoni Bowcher UNQUALIFIED
Jones H KolmetzJapanAsiya Javayant UNQUALIFIED
Misaki U IturbideBrazilStephen Shaw NEGOTIATION

<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>