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
Maisha M GauchoArgentinaOnyama Limba PROPOSAL
Johnson A VenereFranceAmy Elsner UNQUALIFIED
Wickens Q TollnerCanadaAnna Fali UNQUALIFIED
Julie B FlosiAustraliaOnyama Limba UNQUALIFIED
Aruna T MarrierIndiaBernardo Dominic RENEWAL
Tony U BriddickUnited KingdomElwin Sharvill RENEWAL
Morrow L GillianFranceBernardo Dominic QUALIFIED
Greenwood O AmigonUnited KingdomBernardo Dominic NEGOTIATION
Costa U BologniaGermanyAmy Elsner RENEWAL
Emily A OldroydJapanElwin Sharvill NEGOTIATION
Clifford X GlickBrazilXuxue Feng RENEWAL
Clifford R StockhamJapanIvan Magalhaes QUALIFIED
Antonio K ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Cody K RutaItalyAmy Elsner NEW
Isabel O RimIndiaIoni Bowcher UNQUALIFIED
Jones A GauchoIndiaXuxue Feng RENEWAL
Mayumi U RulapaughRussiaAsiya Javayant PROPOSAL
Rodrigues B PerinBrazilOnyama Limba QUALIFIED
Mayumi M KolmetzSpainXuxue Feng UNQUALIFIED
Aika W FollerGermanyXuxue Feng UNQUALIFIED
Aditya S GauchoGermanyAnna Fali PROPOSAL
Chavez X ChuiJapanBernardo Dominic RENEWAL
Rodrigues Q WieserJapanAsiya Javayant RENEWAL
Deepesh B StensethRussiaStephen Shaw UNQUALIFIED
Sinclair A GauchoSpainBernardo Dominic NEW
Arvin I KuskoUnited KingdomXuxue Feng NEGOTIATION
Cody A AlbaresIndiaXuxue Feng RENEWAL
Isabel H CampainJapanBernardo Dominic QUALIFIED
Arvin M BologniaBrazilBernardo Dominic NEW
David R GarufiAustraliaIvan Magalhaes NEGOTIATION
Adams B NickaJapanStephen Shaw NEGOTIATION
Jones C DilliardJapanIoni Bowcher PROPOSAL
Maisha R BowleyArgentinaElwin Sharvill PROPOSAL
Munro N SchemmerCanadaAmy Elsner NEW
David I ShinkoArgentinaElwin Sharvill PROPOSAL
Arvin C DilliardRussiaIoni Bowcher NEW
Kadeem T GauchoJapanElwin Sharvill PROPOSAL
Claire I SlusarskiGermanyStephen Shaw QUALIFIED
Leja V WhobreyAustraliaAnna Fali QUALIFIED
Juan I MaletFranceAmy Elsner NEGOTIATION
Adams P FerenczIndiaElwin Sharvill PROPOSAL
Silvio A SergiIndiaBernardo Dominic RENEWAL
Costa A MaletIndiaIvan Magalhaes QUALIFIED
Nicolas A FerenczGermanyIoni Bowcher RENEWAL
Jennifer S FigeroaSpainAmy Elsner QUALIFIED
Stacey M GlickFranceOnyama Limba QUALIFIED
Alejandro T SaylorsGermanyStephen Shaw NEGOTIATION
Alejandro V AlbaresFranceStephen Shaw NEW
Arvin D GillianUnited KingdomStephen Shaw NEGOTIATION
James J MaletRussiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore M ShinkoGermanyStephen Shaw QUALIFIED
Jefferson H StensethJapanAnna Fali RENEWAL
Jennifer E VenereUnited KingdomOnyama Limba RENEWAL
Misaki L BowleyRussiaElwin Sharvill UNQUALIFIED
James Q SaylorsFranceXuxue Feng RENEWAL
Faith D PaprockiSpainIvan Magalhaes QUALIFIED
James Y SlusarskiArgentinaStephen Shaw RENEWAL
Murillo O SlusarskiGermanyAmy Elsner RENEWAL
Julie T NestleSpainIoni Bowcher UNQUALIFIED
Alejandro W FlosiGermanyOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin Y NestleAustralia2025-08-13Buckley Miller Wright RENEWAL78Xuxue Feng
1001Stacey S StockhamBrazil2025-08-10Chanay, Jeffrey A Esq RENEWAL74Onyama Limba
1002Clifford F VocelkaRussia2025-08-21King, Christopher A Esq RENEWAL28Elwin Sharvill
1003Isabel J StensethSpain2025-07-28Buckley Miller Wright PROPOSAL84Anna Fali
1004Chavez G NickaGermany2025-08-10Dorl, James J Esq NEW35Bernardo Dominic
1005Clifford Q KolmetzGermany2025-08-18Rousseaux, Michael Esq NEW24Xuxue Feng
1006James J NickaItaly2025-08-23Rousseaux, Michael Esq RENEWAL67Ivan Magalhaes
1007Tony S CampainIndia2025-07-31Rangoni Of Florence NEGOTIATION54Asiya Javayant
1008Johnson R ChuiIndia2025-08-11Buckley Miller Wright NEW17Ioni Bowcher
1009Octavia T GauchoItaly2025-07-29Chapman, Ross E Esq PROPOSAL78Bernardo Dominic
1010James M StensethRussia2025-08-09Feltz Printing Service RENEWAL71Ivan Magalhaes
1011Alejandro J RulapaughFrance2025-08-14Morlong Associates NEGOTIATION74Amy Elsner
1012Emily C BologniaJapan2025-08-11Benton, John B Jr QUALIFIED88Anna Fali
1013Rodrigues U MaletJapan2025-08-05Truhlar And Truhlar Attys RENEWAL70Ioni Bowcher
1014Murillo A FollerBrazil2025-08-12Printing Dimensions NEGOTIATION88Ivan Magalhaes
1015Sinclair X GillianBrazil2025-08-19Truhlar And Truhlar Attys RENEWAL66Onyama Limba
1016Maria Z DilliardAustralia2025-08-17Rangoni Of Florence UNQUALIFIED21Onyama Limba
1017Jones I SaylorsItaly2025-08-15Feiner Bros UNQUALIFIED30Xuxue Feng
1018Izzy G DarakjyIndia2025-08-10Buckley Miller Wright NEW11Ivan Magalhaes
1019Jefferson U FollerBrazil2025-08-18Morlong Associates UNQUALIFIED72Asiya Javayant
1020Maisha Y GlickAustralia2025-08-15Rousseaux, Michael Esq NEW10Amy Elsner
1021Sinclair G ButtJapan2025-08-17Rousseaux, Michael Esq RENEWAL80Bernardo Dominic
1022Darci M WaycottFrance2025-08-14Commercial Press NEGOTIATION77Ivan Magalhaes
1023Jeanfrancois Q SergiFrance2025-07-28Buckley Miller Wright PROPOSAL68Xuxue Feng
1024Greenwood I RutaRussia2025-08-12Commercial Press NEGOTIATION39Ivan Magalhaes
1025Munro L WaycottJapan2025-08-13Printing Dimensions NEW71Bernardo Dominic
1026Jeanfrancois L RoysterItaly2025-07-30Feiner Bros PROPOSAL37Elwin Sharvill
1027Cody Z SchemmerCanada2025-08-02Chapman, Ross E Esq NEGOTIATION5Ivan Magalhaes
1028Faith X ShinkoItaly2025-07-28King, Christopher A Esq QUALIFIED48Elwin Sharvill
1029Darci B NestleUnited Kingdom2025-08-11Chanay, Jeffrey A Esq RENEWAL81Onyama Limba
1030David Q KuskoArgentina2025-08-24Feltz Printing Service NEW17Ioni Bowcher
1031Juan V GlickAustralia2025-08-07Chanay, Jeffrey A Esq NEGOTIATION27Elwin Sharvill
1032Ivar V RimUnited Kingdom2025-08-22Morlong Associates PROPOSAL36Elwin Sharvill
1033Mujtaba A ShinkoUnited Kingdom2025-08-20Buckley Miller Wright QUALIFIED14Ioni Bowcher
1034Aruna Q AmigonBrazil2025-08-03Printing Dimensions UNQUALIFIED83Stephen Shaw
1035Izzy Y MacleadJapan2025-08-03Printing Dimensions PROPOSAL64Stephen Shaw
1036Julie D FerenczGermany2025-07-31Benton, John B Jr QUALIFIED82Xuxue Feng
1037Alejandro P PerinJapan2025-08-07Commercial Press NEGOTIATION73Bernardo Dominic
1038Aika T FollerFrance2025-08-17Rousseaux, Michael Esq QUALIFIED28Ioni Bowcher
1039Deepesh Z PerinJapan2025-08-22Rangoni Of Florence NEGOTIATION27Amy Elsner
1040Wickens L PaprockiJapan2025-08-09Chapman, Ross E Esq PROPOSAL97Amy Elsner
1041Chavez R DilliardSpain2025-08-15Chemel, James L Cpa UNQUALIFIED68Elwin Sharvill
1042Julie Y SlusarskiItaly2025-08-04Rangoni Of Florence NEW9Bernardo Dominic
1043Chavez T CaldareraArgentina2025-08-20Chapman, Ross E Esq NEW94Bernardo Dominic
1044Adams X MaletGermany2025-08-22Rangoni Of Florence PROPOSAL11Onyama Limba
1045Aditya A RimFrance2025-07-26Buckley Miller Wright NEGOTIATION2Elwin Sharvill
1046Maria D VocelkaAustralia2025-08-02Rousseaux, Michael Esq QUALIFIED66Asiya Javayant
1047Sinclair E SaylorsSpain2025-08-21Benton, John B Jr RENEWAL57Ivan Magalhaes
1048Juan W BowleyAustralia2025-08-18Benton, John B Jr PROPOSAL9Amy Elsner
1049David Z GarufiArgentina2025-07-31Chapman, Ross E Esq QUALIFIED35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody W BologniaCanadaAnna Fali NEW
Arvin V CampainAustraliaElwin Sharvill NEW
Isabel P VocelkaBrazilXuxue Feng UNQUALIFIED
Maria Y RoysterAustraliaElwin Sharvill NEGOTIATION
Juan C DoeArgentinaStephen Shaw NEW
Silvio E PerinIndiaXuxue Feng PROPOSAL
Isabel Y GlickRussiaBernardo Dominic UNQUALIFIED
Deepesh W SaylorsItalyXuxue Feng NEGOTIATION
Maria E PoquetteFranceIoni Bowcher UNQUALIFIED
Clifford M PerinAustraliaAnna Fali PROPOSAL
Costa X AmigonIndiaElwin Sharvill UNQUALIFIED
Emily A VocelkaBrazilIoni Bowcher QUALIFIED
Morrow H GlickBrazilAmy Elsner PROPOSAL
Antonio M GauchoGermanyXuxue Feng NEW
Izzy S ChuiArgentinaOnyama Limba NEGOTIATION
Misaki Y ChuiGermanyStephen Shaw QUALIFIED
James K VocelkaJapanStephen Shaw QUALIFIED
Johnson Q MaletIndiaAmy Elsner PROPOSAL
Adams Q FigeroaAustraliaStephen Shaw QUALIFIED
Ivar T KuskoFranceXuxue Feng NEGOTIATION
Kadeem R ChuiCanadaIvan Magalhaes UNQUALIFIED
Leja E FollerGermanyElwin Sharvill QUALIFIED
Ricardo W VenereFranceStephen Shaw NEGOTIATION
Silvio G BologniaIndiaAmy Elsner RENEWAL
Clifford X PaprockiAustraliaElwin Sharvill UNQUALIFIED
Claire W WaycottRussiaStephen Shaw RENEWAL
Julie N FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Julie B BowleyBrazilAnna Fali UNQUALIFIED
Arvin K SaylorsItalyAnna Fali RENEWAL
Arvin X AmigonJapanStephen Shaw RENEWAL
Mujtaba R DilliardIndiaAmy Elsner RENEWAL
Juan C MacleadRussiaIvan Magalhaes NEGOTIATION
Rodrigues J StockhamArgentinaAnna Fali QUALIFIED
Morrow W MorascaBrazilAnna Fali QUALIFIED
Adams U MorascaItalyAnna Fali PROPOSAL
Kadeem Y KolmetzRussiaIoni Bowcher QUALIFIED
Faith P NestleFranceIoni Bowcher RENEWAL
Isabel L ButtRussiaBernardo Dominic QUALIFIED
Claire V TollnerItalyStephen Shaw NEW
Aruna L RulapaughGermanyXuxue Feng UNQUALIFIED
Greenwood O PoquetteUnited KingdomXuxue Feng RENEWAL
Kaitlin I VenereFranceIvan Magalhaes NEGOTIATION
Deepesh B SlusarskiCanadaAsiya Javayant QUALIFIED
Greenwood N GillianJapanElwin Sharvill QUALIFIED
Julie H GlickFranceStephen Shaw UNQUALIFIED
Maria O FigeroaFranceOnyama Limba QUALIFIED
Leon R MorascaArgentinaAsiya Javayant NEW
Izzy D GarufiGermanyBernardo Dominic UNQUALIFIED
Tony R SlusarskiBrazilAsiya Javayant NEW
Sinclair F SaylorsAustraliaXuxue Feng PROPOSAL
Frozen Columns
Name
Aruna Z Venere
Smith A Perin
Nicolas T Ostrosky
Jones X Malet
Smith K Campain
Morrow N Sergi
Julie S Schemmer
Aruna M Gaucho
Ashley M Caudy
Leon W Gillian
Juan Y Ferencz
Aika G Foller
Antonio Q Ruta
Ivar C Iturbide
Aruna A Slusarski
Jefferson S Doe
Mayumi H Schemmer
Claire F Slusarski
Morrow S Nicka
Claire R Flosi
Claire S Paprocki
Chavez K Sergi
Costa O Butt
Maria Z Maclead
Smith V Chui
David T Flosi
Octavia F Marrier
Mayumi G Tollner
Silvio U Bolognia
Salvatore T Malet
Jefferson W Paprocki
Ivar W Ruta
Silvio C Flosi
Jennifer Q Bolognia
Adams V Flosi
Juan G Stockham
Clifford O Venere
Silvio S Kolmetz
Arvin Y Darakjy
James H Rulapaugh
Clifford J Iturbide
Chavez X Caudy
Smith F Rulapaugh
Jones P Gaucho
Aruna M Venere
Greenwood P Wieser
Arvin W Caldarera
Greenwood F Ostrosky
Isabel K Wieser
Arvin O Briddick
IdCountryDate
1000Russia2025-08-11
1001Canada2025-08-19
1002Russia2025-08-05
1003Argentina2025-08-05
1004United Kingdom2025-07-26
1005Spain2025-08-10
1006Japan2025-08-03
1007Italy2025-08-10
1008Canada2025-08-09
1009Germany2025-08-02
1010France2025-08-22
1011Australia2025-08-17
1012Brazil2025-08-22
1013Germany2025-07-31
1014Italy2025-07-27
1015Spain2025-08-11
1016France2025-08-19
1017Russia2025-08-02
1018France2025-08-01
1019Brazil2025-08-19
1020Italy2025-08-24
1021Argentina2025-08-02
1022United Kingdom2025-08-07
1023France2025-08-04
1024Canada2025-08-19
1025Russia2025-08-11
1026Argentina2025-08-19
1027Brazil2025-08-22
1028Brazil2025-08-09
1029Australia2025-08-14
1030Russia2025-08-23
1031United Kingdom2025-08-20
1032United Kingdom2025-07-29
1033Italy2025-08-09
1034Argentina2025-08-22
1035Canada2025-07-26
1036Australia2025-07-31
1037India2025-07-29
1038India2025-08-18
1039Australia2025-08-10
1040Spain2025-08-05
1041Japan2025-08-04
1042Germany2025-08-14
1043Canada2025-08-02
1044India2025-08-08
1045Spain2025-07-29
1046Germany2025-08-24
1047India2025-08-09
1048Canada2025-07-29
1049India2025-07-26

On-Demand Data

NameIdCountryDate
Ricardo S Saylors1000India2025-08-06
Francesco T Iturbide1001Japan2025-08-05
Johnson P Schemmer1002United Kingdom2025-07-29
James H Nicka1003Spain2025-08-14
Jones M Morasca1004Australia2025-08-05
Francesco J Flosi1005United Kingdom2025-08-16
Stacey T Rulapaugh1006Russia2025-07-30
Aditya T Doe1007Italy2025-08-24
Clifford C Royster1008Spain2025-07-30
Munro T Schemmer1009Australia2025-07-29
Munro W Waycott1010Japan2025-07-29
Johnson L Vocelka1011Japan2025-08-12
Aruna Q Sergi1012Russia2025-08-07
Ashley Q Poquette1013Brazil2025-08-08
David U Tollner1014Japan2025-08-15
Munro Z Shinko1015Japan2025-08-06
Izzy V Slusarski1016Japan2025-08-07
Aditya P Garufi1017Brazil2025-07-26
Jones D Darakjy1018Spain2025-08-12
Munro R Figeroa1019Canada2025-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh A WaycottGermanyStephen Shaw QUALIFIED
Maria Q ChuiJapanElwin Sharvill PROPOSAL
Jefferson X CaldareraItalyAmy Elsner UNQUALIFIED
Aika J ButtRussiaOnyama Limba PROPOSAL
Morrow T ButtIndiaBernardo Dominic NEGOTIATION
Chavez T MarrierBrazilIoni Bowcher NEW
Jeanfrancois I SchemmerRussiaXuxue Feng UNQUALIFIED
Morrow F WhobreyIndiaAmy Elsner PROPOSAL
Mayumi T InouyeBrazilIoni Bowcher UNQUALIFIED
Silvio D IturbideUnited KingdomBernardo Dominic NEGOTIATION
Wickens Q MarrierIndiaXuxue Feng QUALIFIED
James G InouyeJapanAsiya Javayant UNQUALIFIED
Jefferson F BowleyIndiaBernardo Dominic UNQUALIFIED
Aruna E FigeroaJapanAnna Fali PROPOSAL
Silvio Q FollerItalyStephen Shaw UNQUALIFIED
Adams B SchemmerSpainOnyama Limba QUALIFIED
Chavez S IturbideIndiaOnyama Limba NEW
Aditya M PerinSpainIvan Magalhaes NEGOTIATION
Cody U KolmetzBrazilXuxue Feng QUALIFIED
Claire B SaylorsCanadaStephen Shaw RENEWAL
Jeanfrancois Z RimArgentinaBernardo Dominic UNQUALIFIED
Maisha N SchemmerSpainElwin Sharvill NEGOTIATION
Munro Y ButtFranceOnyama Limba NEGOTIATION
Greenwood G MorascaCanadaAmy Elsner UNQUALIFIED
Salvatore V SchemmerFranceOnyama Limba NEW
Isabel L StensethGermanyAsiya Javayant UNQUALIFIED
Adams J WaycottItalyAmy Elsner RENEWAL
Cody M IturbideGermanyBernardo Dominic PROPOSAL
Kaitlin M AmigonJapanXuxue Feng QUALIFIED
Kaitlin R BowleyFranceAmy Elsner UNQUALIFIED
Francesco A RulapaughItalyXuxue Feng QUALIFIED
Leja E FlosiItalyAnna Fali UNQUALIFIED
Octavia U BowleyFranceIvan Magalhaes NEW
Aika X StockhamUnited KingdomIoni Bowcher NEW
Mayumi S DilliardCanadaAsiya Javayant NEGOTIATION
Smith Z RimSpainBernardo Dominic NEGOTIATION
Rodrigues C CaldareraBrazilElwin Sharvill NEGOTIATION
Darci A PoquetteRussiaStephen Shaw UNQUALIFIED
Octavia J MaletUnited KingdomXuxue Feng QUALIFIED
Wickens L GarufiSpainElwin Sharvill 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>