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
Claire B RoysterAustraliaElwin Sharvill NEGOTIATION
Rodrigues J IturbideJapanIoni Bowcher PROPOSAL
Mayumi B DilliardGermanyIoni Bowcher UNQUALIFIED
Stacey D ShinkoItalyIvan Magalhaes RENEWAL
Izzy F PerinCanadaBernardo Dominic QUALIFIED
Nicolas R VocelkaGermanyIoni Bowcher UNQUALIFIED
Wickens Z MaletArgentinaIvan Magalhaes NEW
Sinclair K RimIndiaXuxue Feng UNQUALIFIED
Sinclair A VenereFranceOnyama Limba RENEWAL
Izzy O InouyeItalyStephen Shaw NEW
Jefferson F PoquetteSpainAmy Elsner QUALIFIED
Alejandro A DoeIndiaXuxue Feng QUALIFIED
Izzy G VocelkaJapanAsiya Javayant NEW
Munro Z KolmetzGermanyXuxue Feng NEGOTIATION
Wickens E VocelkaIndiaAmy Elsner RENEWAL
Aruna F KolmetzAustraliaOnyama Limba NEW
Rodrigues N OldroydCanadaElwin Sharvill PROPOSAL
Juan T StockhamArgentinaAsiya Javayant NEW
Ivar X NickaJapanXuxue Feng UNQUALIFIED
Aika W BowleyCanadaXuxue Feng NEW
Stacey L MarrierAustraliaStephen Shaw NEGOTIATION
Ivar Y GarufiJapanAmy Elsner PROPOSAL
Costa R StensethIndiaAnna Fali QUALIFIED
Antonio M GarufiFranceIoni Bowcher NEW
Aditya F StensethIndiaAmy Elsner UNQUALIFIED
Julie F PerinArgentinaXuxue Feng NEW
Rodrigues W NestleItalyStephen Shaw RENEWAL
Cody F ButtJapanBernardo Dominic RENEWAL
Smith A ShinkoArgentinaAsiya Javayant PROPOSAL
Ricardo L FerenczGermanyOnyama Limba UNQUALIFIED
Maria W BologniaRussiaAnna Fali NEW
Sinclair T ButtItalyAsiya Javayant NEGOTIATION
Jennifer P FollerIndiaIvan Magalhaes NEW
Jefferson A ButtItalyIvan Magalhaes NEW
Clifford N WieserBrazilIvan Magalhaes QUALIFIED
Alejandro U GillianJapanAsiya Javayant QUALIFIED
Aruna X GlickItalyBernardo Dominic RENEWAL
Mujtaba Y SlusarskiSpainAsiya Javayant PROPOSAL
Jones C FerenczRussiaIvan Magalhaes UNQUALIFIED
Alejandro C CaudySpainIvan Magalhaes PROPOSAL
Salvatore T ShinkoIndiaAmy Elsner QUALIFIED
Costa H CaudyFranceStephen Shaw RENEWAL
Greenwood E CaldareraJapanElwin Sharvill UNQUALIFIED
Alejandro X BowleyJapanStephen Shaw UNQUALIFIED
Kaitlin D DarakjyBrazilBernardo Dominic UNQUALIFIED
Murillo Y FerenczCanadaIoni Bowcher NEW
Maria P GauchoIndiaIvan Magalhaes RENEWAL
Leon J SaylorsCanadaXuxue Feng UNQUALIFIED
Silvio A BowleyArgentinaStephen Shaw RENEWAL
Claire Y BriddickItalyOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio C FollerGermanyOnyama Limba RENEWAL
Antonio Q GillianArgentinaBernardo Dominic NEGOTIATION
Ricardo D AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Emily E PaprockiAustraliaAnna Fali PROPOSAL
Juan S SlusarskiIndiaIvan Magalhaes RENEWAL
Faith X StensethCanadaAnna Fali UNQUALIFIED
Francesco E FlosiUnited KingdomXuxue Feng NEGOTIATION
Mayumi A DilliardFranceBernardo Dominic NEW
Misaki Q SchemmerCanadaIoni Bowcher UNQUALIFIED
Jennifer U WaycottIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio B TollnerAustralia2025-08-17Buckley Miller Wright NEW61Asiya Javayant
1001Morrow F PoquetteCanada2025-08-08Feiner Bros PROPOSAL83Elwin Sharvill
1002Jefferson O FigeroaGermany2025-08-09Chemel, James L Cpa RENEWAL95Amy Elsner
1003Leja V ShinkoSpain2025-08-09Benton, John B Jr QUALIFIED47Amy Elsner
1004Deepesh I FollerCanada2025-07-23Truhlar And Truhlar Attys RENEWAL80Ivan Magalhaes
1005David A SchemmerRussia2025-08-09Commercial Press PROPOSAL92Ioni Bowcher
1006Aruna P FigeroaItaly2025-07-21Feiner Bros RENEWAL56Anna Fali
1007Alejandro D MaletSpain2025-07-24Feiner Bros PROPOSAL7Anna Fali
1008Jennifer L AlbaresItaly2025-08-17Feiner Bros QUALIFIED53Amy Elsner
1009Antonio Y KolmetzBrazil2025-08-02Truhlar And Truhlar Attys UNQUALIFIED95Bernardo Dominic
1010Murillo P CaudyRussia2025-08-09Commercial Press QUALIFIED72Ioni Bowcher
1011Leja B SaylorsRussia2025-08-06Benton, John B Jr PROPOSAL51Anna Fali
1012Salvatore P CampainCanada2025-08-12Commercial Press NEW37Onyama Limba
1013Silvio O RimRussia2025-07-20Chapman, Ross E Esq NEW66Elwin Sharvill
1014Murillo Y SergiCanada2025-08-02Rangoni Of Florence PROPOSAL75Onyama Limba
1015Maisha S PerinAustralia2025-07-21Buckley Miller Wright NEW71Anna Fali
1016David P DilliardGermany2025-08-13Chanay, Jeffrey A Esq UNQUALIFIED60Onyama Limba
1017Ashley K IturbideGermany2025-08-10Printing Dimensions PROPOSAL66Ioni Bowcher
1018Kadeem M GlickAustralia2025-07-28Rousseaux, Michael Esq RENEWAL20Onyama Limba
1019Antonio M DarakjyAustralia2025-08-05Chanay, Jeffrey A Esq UNQUALIFIED20Bernardo Dominic
1020Darci H MarrierArgentina2025-07-19Chemel, James L Cpa NEW99Elwin Sharvill
1021Tony O FlosiFrance2025-07-27Rangoni Of Florence RENEWAL39Stephen Shaw
1022Arvin B SergiItaly2025-08-05Rousseaux, Michael Esq NEGOTIATION64Anna Fali
1023Jennifer Z SchemmerArgentina2025-08-02Benton, John B Jr UNQUALIFIED72Bernardo Dominic
1024Antonio A BologniaFrance2025-08-10Chanay, Jeffrey A Esq QUALIFIED14Asiya Javayant
1025Jeanfrancois A BologniaItaly2025-07-30Chapman, Ross E Esq NEW2Xuxue Feng
1026Octavia V VocelkaJapan2025-08-12Morlong Associates NEW20Xuxue Feng
1027Kadeem G SergiGermany2025-07-20Rousseaux, Michael Esq PROPOSAL88Stephen Shaw
1028Leja S ChuiFrance2025-08-05Chemel, James L Cpa NEGOTIATION49Bernardo Dominic
1029Maisha E ButtItaly2025-08-08Truhlar And Truhlar Attys RENEWAL11Amy Elsner
1030David H GillianGermany2025-08-10Benton, John B Jr NEGOTIATION54Bernardo Dominic
1031Johnson J GarufiFrance2025-08-16Dorl, James J Esq NEW42Ivan Magalhaes
1032Jeanfrancois E WieserBrazil2025-07-27Truhlar And Truhlar Attys NEW98Stephen Shaw
1033Octavia V OldroydCanada2025-07-25Truhlar And Truhlar Attys NEGOTIATION13Ioni Bowcher
1034Aika I GlickCanada2025-08-17Rangoni Of Florence PROPOSAL3Ioni Bowcher
1035Mujtaba P NestleCanada2025-07-29Chemel, James L Cpa PROPOSAL11Ivan Magalhaes
1036Stacey Q CaldareraBrazil2025-07-21King, Christopher A Esq UNQUALIFIED39Onyama Limba
1037Leja P PaprockiGermany2025-08-14Rangoni Of Florence QUALIFIED89Anna Fali
1038Chavez E StockhamUnited Kingdom2025-07-22Benton, John B Jr NEW55Ivan Magalhaes
1039Leon T GlickCanada2025-07-28Feiner Bros PROPOSAL92Xuxue Feng
1040Misaki J WieserCanada2025-08-08Morlong Associates UNQUALIFIED35Anna Fali
1041Kadeem H ChuiAustralia2025-08-12King, Christopher A Esq QUALIFIED57Anna Fali
1042Leon X PerinUnited Kingdom2025-08-03Rousseaux, Michael Esq PROPOSAL7Ivan Magalhaes
1043Misaki N VocelkaFrance2025-08-04Chapman, Ross E Esq NEW43Bernardo Dominic
1044Jefferson O AmigonGermany2025-08-01Chanay, Jeffrey A Esq NEGOTIATION77Onyama Limba
1045Mujtaba A FlosiCanada2025-07-20Printing Dimensions RENEWAL47Elwin Sharvill
1046Greenwood B MaletBrazil2025-08-01Truhlar And Truhlar Attys QUALIFIED21Xuxue Feng
1047Ashley A BologniaAustralia2025-08-06Morlong Associates QUALIFIED39Anna Fali
1048Kaitlin I SchemmerArgentina2025-07-28Printing Dimensions UNQUALIFIED57Ioni Bowcher
1049Murillo T AmigonArgentina2025-07-28Feltz Printing Service NEGOTIATION74Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith K DoeItalyBernardo Dominic RENEWAL
Salvatore T MacleadItalyBernardo Dominic NEGOTIATION
Kaitlin L WaycottItalyIoni Bowcher NEW
James J WieserCanadaOnyama Limba RENEWAL
Costa H PaprockiArgentinaAsiya Javayant NEW
Salvatore R PaprockiRussiaElwin Sharvill QUALIFIED
Claire F SergiJapanIvan Magalhaes PROPOSAL
Misaki L WaycottIndiaOnyama Limba RENEWAL
Rodrigues J FollerCanadaBernardo Dominic NEGOTIATION
Chavez C CaudyItalyAsiya Javayant QUALIFIED
Wickens M SchemmerGermanyIoni Bowcher RENEWAL
Kadeem V TollnerUnited KingdomElwin Sharvill PROPOSAL
Kadeem P MaletIndiaXuxue Feng UNQUALIFIED
Nicolas S CampainSpainOnyama Limba QUALIFIED
Jones J SchemmerItalyOnyama Limba PROPOSAL
Aditya J AlbaresAustraliaAsiya Javayant QUALIFIED
Aruna P MaletAustraliaAmy Elsner NEW
Morrow X GlickSpainXuxue Feng PROPOSAL
Darci Y OldroydItalyAnna Fali UNQUALIFIED
Jones J MaletGermanyAsiya Javayant RENEWAL
Mayumi S VenereBrazilBernardo Dominic NEW
Jennifer G MaletFranceXuxue Feng RENEWAL
Jones S DilliardJapanAsiya Javayant QUALIFIED
Silvio D PaprockiCanadaStephen Shaw UNQUALIFIED
Costa V FlosiArgentinaBernardo Dominic RENEWAL
Aika U FerenczArgentinaXuxue Feng RENEWAL
Adams L MarrierJapanAsiya Javayant NEW
Alejandro R AlbaresAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois A StensethJapanXuxue Feng UNQUALIFIED
Johnson T VocelkaJapanElwin Sharvill QUALIFIED
Maria N FerenczRussiaOnyama Limba RENEWAL
Leja O WieserIndiaOnyama Limba QUALIFIED
Morrow L KuskoItalyAnna Fali UNQUALIFIED
Maisha A MorascaRussiaAsiya Javayant NEGOTIATION
Antonio A WieserUnited KingdomBernardo Dominic PROPOSAL
Julie P WieserItalyBernardo Dominic PROPOSAL
Ricardo Y BowleyRussiaAnna Fali UNQUALIFIED
Jennifer S ChuiGermanyAmy Elsner UNQUALIFIED
Darci Q RoysterFranceOnyama Limba UNQUALIFIED
Cody X PaprockiUnited KingdomAnna Fali RENEWAL
Julie R MacleadFranceBernardo Dominic QUALIFIED
Arvin X WhobreyIndiaIvan Magalhaes UNQUALIFIED
Jefferson G FigeroaItalyElwin Sharvill NEW
Darci S PerinGermanyStephen Shaw RENEWAL
Stacey X AlbaresArgentinaAsiya Javayant RENEWAL
Wickens O DoeCanadaOnyama Limba RENEWAL
Antonio R FerenczCanadaAsiya Javayant NEW
Ivar H FerenczFranceAsiya Javayant NEW
Leja R TollnerAustraliaIvan Magalhaes NEGOTIATION
Ricardo L OldroydBrazilIvan Magalhaes RENEWAL
Frozen Columns
Name
Francesco L Ostrosky
Stacey Q Marrier
Arvin U Maclead
Rodrigues B Marrier
Jones T Morasca
Leon T Caldarera
Emily O Whobrey
Aditya I Poquette
Jones Z Figeroa
Jennifer A Marrier
Nicolas M Nicka
Deepesh D Tollner
Nicolas H Shinko
Costa V Waycott
Jeanfrancois U Inouye
Jennifer K Bowley
Claire Z Inouye
Misaki G Nicka
Kadeem A Malet
Octavia F Sergi
David V Venere
Faith B Kusko
Murillo N Albares
Aditya N Butt
Chavez Z Poquette
Nicolas Z Morasca
Mujtaba U Nestle
Rodrigues K Garufi
Octavia Q Perin
Sinclair L Ostrosky
Chavez L Stenseth
Arvin Y Malet
Leja H Iturbide
Jeanfrancois Q Vocelka
Munro X Nicka
Costa O Dilliard
Silvio G Stenseth
Francesco I Rim
Ricardo Q Malet
Misaki W Gaucho
Leon P Iturbide
Stacey U Darakjy
Maisha J Schemmer
Maria G Briddick
Octavia M Poquette
Sinclair V Marrier
Maria F Amigon
Deepesh Y Inouye
Jefferson O Bowley
Claire U Nestle
IdCountryDate
1000Russia2025-07-24
1001Spain2025-08-11
1002India2025-08-15
1003Canada2025-08-09
1004France2025-08-02
1005India2025-08-06
1006Italy2025-07-26
1007France2025-07-31
1008Spain2025-08-08
1009Canada2025-08-12
1010India2025-08-03
1011Japan2025-07-29
1012Russia2025-07-19
1013United Kingdom2025-07-26
1014Japan2025-07-21
1015France2025-07-29
1016Germany2025-08-13
1017Spain2025-08-07
1018Australia2025-07-28
1019Australia2025-08-11
1020Japan2025-08-07
1021Argentina2025-08-09
1022United Kingdom2025-08-13
1023Japan2025-08-10
1024Spain2025-08-05
1025France2025-08-17
1026Germany2025-07-27
1027Italy2025-08-12
1028Argentina2025-08-11
1029India2025-08-06
1030Brazil2025-08-16
1031India2025-08-05
1032Japan2025-08-08
1033Italy2025-08-06
1034Germany2025-08-13
1035United Kingdom2025-08-15
1036Canada2025-08-06
1037Argentina2025-07-29
1038Japan2025-07-28
1039Germany2025-07-29
1040United Kingdom2025-07-19
1041Japan2025-07-22
1042Argentina2025-07-27
1043Italy2025-08-09
1044Spain2025-08-17
1045Germany2025-07-20
1046Italy2025-08-05
1047Italy2025-07-25
1048Canada2025-08-14
1049Argentina2025-07-30

On-Demand Data

NameIdCountryDate
Misaki M Doe1000Spain2025-07-25
Deepesh F Doe1001India2025-08-02
Alejandro M Kolmetz1002Brazil2025-07-27
Francesco S Shinko1003Russia2025-08-07
Munro V Rulapaugh1004Canada2025-07-19
Jefferson L Marrier1005Germany2025-07-29
Jeanfrancois Y Bowley1006Argentina2025-07-29
Salvatore X Tollner1007Spain2025-08-09
Isabel P Poquette1008Spain2025-08-13
Jennifer S Slusarski1009Germany2025-08-12
Antonio G Butt1010Japan2025-08-07
Deepesh I Glick1011Australia2025-08-05
Kadeem U Maclead1012Canada2025-08-08
Ricardo G Inouye1013Australia2025-08-02
Silvio R Gillian1014Argentina2025-07-31
Juan M Malet1015France2025-07-22
Ricardo Z Saylors1016India2025-08-11
Alejandro Y Rim1017Brazil2025-08-14
Jeanfrancois X Nicka1018Brazil2025-07-22
Costa K Inouye1019India2025-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki U KolmetzItalyBernardo Dominic RENEWAL
Kaitlin F MaletFranceAnna Fali UNQUALIFIED
Stacey R SergiBrazilIvan Magalhaes UNQUALIFIED
Rodrigues A StockhamFranceStephen Shaw NEW
Morrow U SergiBrazilBernardo Dominic NEW
Kaitlin P KuskoCanadaAmy Elsner PROPOSAL
Misaki V MaletItalyOnyama Limba NEW
Maria I SchemmerJapanBernardo Dominic RENEWAL
Arvin R VenereFranceIvan Magalhaes NEGOTIATION
Arvin H TollnerFranceIoni Bowcher UNQUALIFIED
Salvatore S RutaJapanIoni Bowcher UNQUALIFIED
Darci R RulapaughUnited KingdomOnyama Limba PROPOSAL
Tony L VocelkaItalyAmy Elsner NEW
Jones Q MarrierUnited KingdomAmy Elsner NEW
Jefferson I DarakjySpainIoni Bowcher UNQUALIFIED
Jeanfrancois X BologniaIndiaAnna Fali NEGOTIATION
Cody F CaudyCanadaAsiya Javayant UNQUALIFIED
Isabel F SlusarskiFranceIvan Magalhaes RENEWAL
Salvatore O KolmetzFranceIvan Magalhaes NEGOTIATION
Aditya I StockhamItalyAsiya Javayant QUALIFIED
Julie T MaletUnited KingdomIoni Bowcher QUALIFIED
Kaitlin P SergiJapanAnna Fali QUALIFIED
Sinclair C BriddickItalyXuxue Feng QUALIFIED
Cody T WhobreyItalyIvan Magalhaes NEGOTIATION
Juan R DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Jennifer C GarufiSpainIoni Bowcher UNQUALIFIED
Isabel P VocelkaIndiaAmy Elsner NEW
Aruna P FlosiCanadaIvan Magalhaes QUALIFIED
Jefferson F MaletRussiaOnyama Limba PROPOSAL
Aruna B SergiRussiaAnna Fali RENEWAL
Wickens K ShinkoArgentinaAmy Elsner RENEWAL
Greenwood W InouyeJapanElwin Sharvill UNQUALIFIED
Faith I CaudySpainElwin Sharvill RENEWAL
Juan J FerenczIndiaOnyama Limba NEW
Juan Y KolmetzJapanStephen Shaw NEW
Izzy Z GillianCanadaBernardo Dominic NEW
Kaitlin D GillianArgentinaStephen Shaw PROPOSAL
Kadeem D DilliardCanadaStephen Shaw NEGOTIATION
Ivar W BologniaJapanBernardo Dominic NEGOTIATION
Julie D FlosiBrazilBernardo Dominic 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>