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
Misaki I ChuiAustraliaOnyama Limba PROPOSAL
Emily O MaletBrazilXuxue Feng QUALIFIED
Jones L FollerCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois T GauchoIndiaAsiya Javayant QUALIFIED
Aruna G AmigonUnited KingdomOnyama Limba RENEWAL
Aditya H DilliardFranceOnyama Limba QUALIFIED
Jennifer S FigeroaIndiaBernardo Dominic NEGOTIATION
Murillo D SchemmerBrazilAnna Fali NEW
Darci R IturbideGermanyAmy Elsner RENEWAL
Misaki X MaletUnited KingdomIvan Magalhaes RENEWAL
Aika O MaletGermanyOnyama Limba NEW
Greenwood F RoysterJapanOnyama Limba PROPOSAL
Murillo B FlosiSpainAmy Elsner UNQUALIFIED
Jennifer H SaylorsRussiaBernardo Dominic UNQUALIFIED
Kadeem D CampainRussiaBernardo Dominic QUALIFIED
David X RulapaughGermanyBernardo Dominic QUALIFIED
Alejandro O DoeJapanElwin Sharvill PROPOSAL
Chavez W SaylorsBrazilBernardo Dominic NEW
Jeanfrancois H NestleJapanOnyama Limba NEW
Kaitlin Q RutaFranceElwin Sharvill UNQUALIFIED
Tony W FigeroaSpainAmy Elsner QUALIFIED
Adams O MorascaJapanBernardo Dominic QUALIFIED
Emily B BriddickAustraliaAmy Elsner UNQUALIFIED
Ivar I PoquetteJapanIoni Bowcher UNQUALIFIED
Smith E FollerSpainOnyama Limba RENEWAL
Smith R MarrierSpainIoni Bowcher RENEWAL
Smith Q BriddickFranceAmy Elsner PROPOSAL
Aruna O AlbaresSpainAmy Elsner NEGOTIATION
Greenwood Q RoysterBrazilStephen Shaw PROPOSAL
Munro V CaudyIndiaAnna Fali QUALIFIED
Adams X DoeSpainStephen Shaw NEGOTIATION
Jeanfrancois S ButtItalyXuxue Feng RENEWAL
Morrow D PerinIndiaAsiya Javayant PROPOSAL
James T NickaCanadaAnna Fali RENEWAL
Clifford V AlbaresRussiaElwin Sharvill NEGOTIATION
Smith M AmigonItalyIvan Magalhaes PROPOSAL
Mayumi M WieserItalyOnyama Limba NEGOTIATION
Salvatore F NestleArgentinaAnna Fali PROPOSAL
Maisha W DoeItalyAsiya Javayant QUALIFIED
Nicolas J SlusarskiJapanAmy Elsner NEGOTIATION
Juan T WieserCanadaElwin Sharvill QUALIFIED
Costa E AlbaresAustraliaBernardo Dominic NEW
Octavia D WhobreyArgentinaXuxue Feng NEGOTIATION
Julie B WhobreyJapanIoni Bowcher QUALIFIED
Ashley Y KuskoFranceIvan Magalhaes NEW
Deepesh T KolmetzGermanyBernardo Dominic UNQUALIFIED
Emily Q SaylorsItalyStephen Shaw RENEWAL
Alejandro M MarrierArgentinaIvan Magalhaes QUALIFIED
Ivar H VocelkaItalyStephen Shaw PROPOSAL
Mayumi Q GauchoCanadaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mayumi K RoysterArgentinaElwin Sharvill UNQUALIFIED
Maria H WhobreyGermanyAnna Fali RENEWAL
Costa Q FigeroaBrazilElwin Sharvill UNQUALIFIED
James B SlusarskiArgentinaAsiya Javayant NEW
Francesco E DoeArgentinaAsiya Javayant RENEWAL
Nicolas E MorascaArgentinaXuxue Feng PROPOSAL
Juan J PerinBrazilIoni Bowcher RENEWAL
Morrow E FerenczBrazilBernardo Dominic NEGOTIATION
Ivar P ShinkoGermanyAsiya Javayant UNQUALIFIED
Julie Q SchemmerUnited KingdomXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria R SergiFrance2025-07-31Benton, John B Jr NEW73Xuxue Feng
1001Tony R BologniaCanada2025-07-28Chapman, Ross E Esq NEW15Anna Fali
1002Aruna X MaletIndia2025-07-15Feiner Bros UNQUALIFIED11Ivan Magalhaes
1003Murillo N ButtAustralia2025-07-15Rousseaux, Michael Esq QUALIFIED26Xuxue Feng
1004Faith M MorascaIndia2025-07-23Printing Dimensions RENEWAL16Amy Elsner
1005Jennifer G DoeArgentina2025-07-22Feiner Bros NEGOTIATION22Onyama Limba
1006Clifford V DilliardSpain2025-08-09Chemel, James L Cpa PROPOSAL30Onyama Limba
1007Emily J NestleJapan2025-08-08Truhlar And Truhlar Attys NEGOTIATION89Amy Elsner
1008Wickens E MaletJapan2025-08-04Commercial Press UNQUALIFIED60Elwin Sharvill
1009Smith C RulapaughFrance2025-08-06Feiner Bros UNQUALIFIED92Xuxue Feng
1010Johnson J NickaBrazil2025-08-02King, Christopher A Esq NEGOTIATION99Ivan Magalhaes
1011Smith L WhobreyIndia2025-07-25Dorl, James J Esq RENEWAL79Onyama Limba
1012Kadeem V KuskoIndia2025-07-26Benton, John B Jr RENEWAL66Asiya Javayant
1013Jeanfrancois U BowleyCanada2025-07-26Feiner Bros NEGOTIATION93Ivan Magalhaes
1014Wickens N AlbaresBrazil2025-07-31Dorl, James J Esq PROPOSAL23Amy Elsner
1015Nicolas F KolmetzFrance2025-07-22Benton, John B Jr NEW51Xuxue Feng
1016Kaitlin P StensethBrazil2025-07-16Rousseaux, Michael Esq PROPOSAL30Bernardo Dominic
1017Isabel R StockhamJapan2025-07-20Buckley Miller Wright NEGOTIATION43Elwin Sharvill
1018Aditya H TollnerCanada2025-07-18King, Christopher A Esq QUALIFIED27Bernardo Dominic
1019Juan M CaldareraArgentina2025-07-23King, Christopher A Esq RENEWAL26Ioni Bowcher
1020Jeanfrancois P NestleAustralia2025-07-26Truhlar And Truhlar Attys RENEWAL24Amy Elsner
1021Greenwood K VocelkaItaly2025-07-18Chemel, James L Cpa PROPOSAL90Anna Fali
1022David E MacleadJapan2025-07-28Commercial Press NEGOTIATION6Stephen Shaw
1023Aika E CaldareraBrazil2025-08-03Morlong Associates RENEWAL26Onyama Limba
1024Greenwood M IturbideAustralia2025-07-15Printing Dimensions NEGOTIATION85Elwin Sharvill
1025David U SchemmerBrazil2025-07-24Dorl, James J Esq UNQUALIFIED31Stephen Shaw
1026Morrow E MarrierSpain2025-08-01Commercial Press PROPOSAL31Ivan Magalhaes
1027Aruna G AlbaresCanada2025-07-19Morlong Associates QUALIFIED91Ivan Magalhaes
1028Cody K OldroydSpain2025-08-10Commercial Press PROPOSAL65Ioni Bowcher
1029Jones G RulapaughRussia2025-08-05Chapman, Ross E Esq QUALIFIED45Ivan Magalhaes
1030Mayumi F OldroydRussia2025-07-21Commercial Press NEW77Amy Elsner
1031Faith B PerinAustralia2025-07-22Feiner Bros PROPOSAL89Onyama Limba
1032Cody A PoquetteArgentina2025-07-24Chanay, Jeffrey A Esq RENEWAL84Bernardo Dominic
1033Antonio V TollnerJapan2025-07-19Morlong Associates PROPOSAL40Anna Fali
1034Emily G GarufiBrazil2025-07-25Truhlar And Truhlar Attys QUALIFIED90Amy Elsner
1035Mayumi U DoeJapan2025-07-21Feltz Printing Service PROPOSAL16Bernardo Dominic
1036David J PaprockiArgentina2025-08-05Benton, John B Jr NEGOTIATION94Anna Fali
1037Kaitlin V MacleadIndia2025-07-21Rousseaux, Michael Esq UNQUALIFIED70Ivan Magalhaes
1038Smith P GillianBrazil2025-07-29Buckley Miller Wright PROPOSAL49Stephen Shaw
1039Mujtaba H StockhamItaly2025-07-26Commercial Press PROPOSAL1Elwin Sharvill
1040Aruna V RoysterArgentina2025-07-20Benton, John B Jr NEW35Bernardo Dominic
1041Ivar A RutaArgentina2025-08-11Feiner Bros RENEWAL85Asiya Javayant
1042Greenwood G FlosiJapan2025-07-31Chanay, Jeffrey A Esq RENEWAL79Anna Fali
1043Isabel X BowleyCanada2025-07-24Chanay, Jeffrey A Esq RENEWAL25Xuxue Feng
1044Maria I WieserCanada2025-08-13Printing Dimensions PROPOSAL76Ioni Bowcher
1045Kadeem X MaletArgentina2025-07-23Printing Dimensions PROPOSAL45Bernardo Dominic
1046Tony F MaletRussia2025-07-24Rousseaux, Michael Esq QUALIFIED83Elwin Sharvill
1047Leja R NickaBrazil2025-07-29Benton, John B Jr NEW30Xuxue Feng
1048Kaitlin G BologniaGermany2025-07-26Benton, John B Jr NEW58Bernardo Dominic
1049Misaki I FollerGermany2025-07-16Rangoni Of Florence UNQUALIFIED49Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
David E NestleRussiaAsiya Javayant PROPOSAL
James F RoysterAustraliaIoni Bowcher NEW
Jennifer Z KolmetzArgentinaAnna Fali NEGOTIATION
Tony D FigeroaGermanyAsiya Javayant NEW
Salvatore N CaldareraGermanyAmy Elsner UNQUALIFIED
Ivar R NickaSpainAnna Fali QUALIFIED
Silvio A StockhamIndiaAsiya Javayant QUALIFIED
Adams G IturbideAustraliaXuxue Feng QUALIFIED
Sinclair X RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues N NestleUnited KingdomOnyama Limba UNQUALIFIED
Ricardo V MacleadFranceAsiya Javayant PROPOSAL
Munro H VenereIndiaIvan Magalhaes QUALIFIED
Silvio Q ShinkoAustraliaAsiya Javayant NEW
Ashley C ButtArgentinaAnna Fali NEGOTIATION
Clifford O MacleadCanadaAsiya Javayant UNQUALIFIED
James X NestleIndiaXuxue Feng NEW
Mujtaba Y TollnerSpainStephen Shaw UNQUALIFIED
Isabel Y FollerCanadaAmy Elsner UNQUALIFIED
Aditya K OldroydItalyAsiya Javayant NEGOTIATION
Chavez A OstroskyArgentinaElwin Sharvill QUALIFIED
Antonio A ShinkoArgentinaIoni Bowcher PROPOSAL
Silvio Z CampainRussiaIoni Bowcher PROPOSAL
Greenwood Y InouyeUnited KingdomXuxue Feng NEGOTIATION
Aditya W VenereAustraliaAnna Fali RENEWAL
Clifford C MaletUnited KingdomOnyama Limba PROPOSAL
Costa M MarrierJapanStephen Shaw QUALIFIED
Sinclair Q RoysterFranceElwin Sharvill NEW
Deepesh T NestleBrazilIvan Magalhaes NEGOTIATION
Leon I BologniaBrazilBernardo Dominic QUALIFIED
Jeanfrancois I GarufiJapanAsiya Javayant QUALIFIED
David E RutaGermanyElwin Sharvill NEW
Darci E FlosiIndiaStephen Shaw PROPOSAL
Ashley O OldroydGermanyXuxue Feng QUALIFIED
Kadeem C BowleyUnited KingdomOnyama Limba PROPOSAL
Jefferson U GarufiGermanyIvan Magalhaes QUALIFIED
Smith T OldroydItalyXuxue Feng RENEWAL
Munro M SlusarskiItalyElwin Sharvill UNQUALIFIED
James C IturbideRussiaAsiya Javayant UNQUALIFIED
Octavia R RoysterCanadaAnna Fali RENEWAL
Munro A InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba Z StensethAustraliaAsiya Javayant NEW
Alejandro D DilliardBrazilElwin Sharvill QUALIFIED
James U OldroydIndiaIvan Magalhaes PROPOSAL
Jefferson L NickaUnited KingdomElwin Sharvill UNQUALIFIED
Kadeem S WaycottUnited KingdomStephen Shaw NEGOTIATION
Juan Z IturbideArgentinaAsiya Javayant RENEWAL
Silvio C KuskoFranceAsiya Javayant NEW
Aditya G PerinAustraliaOnyama Limba PROPOSAL
Maisha Z KuskoIndiaAnna Fali PROPOSAL
Kaitlin Q VocelkaGermanyStephen Shaw RENEWAL
Frozen Columns
Name
Johnson G Royster
Aditya C Kolmetz
Chavez I Amigon
Aruna M Slusarski
Salvatore J Briddick
Misaki G Ruta
Claire Y Briddick
Jones R Nicka
Izzy B Whobrey
Juan Z Stockham
Francesco J Glick
Jones B Amigon
Francesco Z Ruta
Adams U Doe
Jefferson O Stenseth
Salvatore K Ruta
Antonio N Ruta
Adams B Malet
Francesco U Waycott
Jennifer K Shinko
Morrow P Stenseth
Izzy I Ostrosky
Maisha R Iturbide
Jefferson W Inouye
Leja D Campain
Jeanfrancois N Waycott
Aruna O Briddick
Clifford X Rim
Ivar W Shinko
Julie Y Stockham
Munro T Nicka
Misaki Q Gaucho
Mujtaba P Dilliard
Nicolas Q Gillian
James P Bolognia
Ashley L Schemmer
Deepesh J Wieser
Ricardo V Stenseth
Aruna B Maclead
Sinclair V Stenseth
Nicolas K Butt
Antonio X Shinko
Stacey E Royster
Ivar Q Schemmer
Jefferson V Schemmer
Jeanfrancois F Albares
Jefferson H Chui
Octavia P Stenseth
Aruna P Inouye
James L Darakjy
IdCountryDate
1000Italy2025-07-25
1001France2025-08-05
1002Spain2025-08-01
1003Spain2025-07-15
1004Australia2025-07-26
1005Russia2025-08-06
1006Argentina2025-08-08
1007Germany2025-07-21
1008Brazil2025-07-29
1009France2025-07-28
1010France2025-08-06
1011Spain2025-08-04
1012Italy2025-07-31
1013Canada2025-07-20
1014Germany2025-08-05
1015Australia2025-07-29
1016Canada2025-07-26
1017United Kingdom2025-07-28
1018Italy2025-08-08
1019Canada2025-07-20
1020Brazil2025-07-18
1021United Kingdom2025-07-20
1022Canada2025-07-29
1023Germany2025-07-18
1024Spain2025-07-28
1025India2025-08-02
1026Canada2025-07-25
1027India2025-07-27
1028Italy2025-08-07
1029Australia2025-08-02
1030Argentina2025-08-08
1031Canada2025-08-12
1032Italy2025-07-23
1033Italy2025-07-25
1034India2025-08-12
1035Australia2025-07-25
1036Italy2025-07-26
1037Brazil2025-07-22
1038Argentina2025-08-09
1039Australia2025-08-05
1040Australia2025-07-26
1041India2025-08-01
1042Japan2025-07-23
1043Australia2025-08-05
1044Australia2025-08-10
1045Canada2025-08-01
1046India2025-08-03
1047Italy2025-07-28
1048Argentina2025-08-05
1049India2025-07-28

On-Demand Data

NameIdCountryDate
Silvio O Butt1000Spain2025-07-17
Emily L Slusarski1001Germany2025-08-10
Tony N Foller1002France2025-07-21
Kadeem H Tollner1003India2025-08-03
Morrow Y Ruta1004United Kingdom2025-08-10
Jennifer S Kusko1005United Kingdom2025-08-10
Munro K Slusarski1006Spain2025-08-04
James A Malet1007United Kingdom2025-07-19
Aditya Y Perin1008Brazil2025-07-19
Aika Y Inouye1009India2025-07-19
Leon G Malet1010Brazil2025-07-21
Maria U Paprocki1011Japan2025-07-25
Stacey N Sergi1012United Kingdom2025-07-24
Rodrigues M Maclead1013Spain2025-08-08
Munro T Amigon1014Japan2025-07-28
Ashley C Saylors1015India2025-07-30
Mayumi P Figeroa1016Australia2025-08-02
Stacey B Whobrey1017Argentina2025-07-17
Stacey G Shinko1018India2025-07-17
Silvio X Stockham1019Germany2025-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Y FerenczBrazilIoni Bowcher UNQUALIFIED
Ricardo A GarufiSpainBernardo Dominic NEW
Emily A BowleyFranceIvan Magalhaes NEW
Clifford E AlbaresArgentinaElwin Sharvill UNQUALIFIED
Aditya Z RulapaughGermanyAsiya Javayant RENEWAL
Greenwood D CaldareraArgentinaOnyama Limba QUALIFIED
Mujtaba T WhobreyCanadaXuxue Feng NEW
Juan J FigeroaAustraliaAsiya Javayant PROPOSAL
Greenwood I KuskoUnited KingdomAsiya Javayant UNQUALIFIED
Maisha W CaudyUnited KingdomIoni Bowcher QUALIFIED
Alejandro N IturbideJapanIoni Bowcher QUALIFIED
Antonio R GarufiUnited KingdomAnna Fali UNQUALIFIED
Stacey H RoysterIndiaAnna Fali UNQUALIFIED
Jeanfrancois G TollnerSpainAsiya Javayant PROPOSAL
Morrow H OldroydAustraliaElwin Sharvill QUALIFIED
David O SlusarskiJapanXuxue Feng NEGOTIATION
Francesco U IturbideItalyElwin Sharvill NEW
Maisha L StockhamArgentinaAmy Elsner PROPOSAL
Jeanfrancois T BowleyGermanyAsiya Javayant NEW
Munro W MarrierJapanAmy Elsner RENEWAL
Darci B DarakjyIndiaIvan Magalhaes NEGOTIATION
Cody S RoysterSpainAsiya Javayant RENEWAL
Greenwood X ChuiAustraliaElwin Sharvill NEW
Isabel D VenereSpainElwin Sharvill NEW
Jones K GarufiAustraliaOnyama Limba PROPOSAL
Maisha R CampainUnited KingdomIvan Magalhaes PROPOSAL
Jones V AmigonGermanyIvan Magalhaes RENEWAL
Ashley R GlickIndiaIvan Magalhaes RENEWAL
Adams U RimCanadaBernardo Dominic UNQUALIFIED
Nicolas E PoquetteBrazilAsiya Javayant UNQUALIFIED
Cody D MaletCanadaOnyama Limba QUALIFIED
Adams D BowleyFranceAnna Fali PROPOSAL
Jones V FerenczCanadaIoni Bowcher PROPOSAL
Tony G VenereIndiaIoni Bowcher QUALIFIED
David N PerinRussiaAsiya Javayant PROPOSAL
Leja H BriddickAustraliaAmy Elsner RENEWAL
Jeanfrancois Z ShinkoCanadaXuxue Feng UNQUALIFIED
Ivar T RimArgentinaAnna Fali RENEWAL
Maria W FerenczRussiaOnyama Limba NEW
Chavez M StensethCanadaXuxue Feng RENEWAL

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