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
Mujtaba F ButtGermanyAmy Elsner QUALIFIED
Deepesh U InouyeArgentinaAsiya Javayant QUALIFIED
Isabel B RulapaughCanadaAmy Elsner UNQUALIFIED
Ashley F StockhamSpainStephen Shaw QUALIFIED
Leja K RutaItalyElwin Sharvill NEGOTIATION
Mayumi Z MaletFranceAmy Elsner NEW
Clifford B RutaSpainOnyama Limba UNQUALIFIED
Aika R FigeroaGermanyAsiya Javayant NEW
Tony J MorascaAustraliaAmy Elsner QUALIFIED
Ashley N VenereIndiaIoni Bowcher PROPOSAL
Aika D FlosiGermanyElwin Sharvill PROPOSAL
Smith N GillianGermanyAsiya Javayant RENEWAL
Ivar Y MorascaArgentinaElwin Sharvill QUALIFIED
Claire Q MacleadUnited KingdomXuxue Feng UNQUALIFIED
Tony C SergiArgentinaBernardo Dominic UNQUALIFIED
Deepesh C DoeAustraliaIoni Bowcher RENEWAL
Alejandro J OldroydAustraliaXuxue Feng NEW
Leon L BriddickBrazilOnyama Limba QUALIFIED
Sinclair P CaudyAustraliaStephen Shaw QUALIFIED
Mayumi T BologniaCanadaXuxue Feng QUALIFIED
Aika T BowleyUnited KingdomAnna Fali QUALIFIED
Alejandro L BowleyGermanyIvan Magalhaes UNQUALIFIED
Clifford P BologniaRussiaBernardo Dominic PROPOSAL
Darci X OldroydUnited KingdomXuxue Feng QUALIFIED
Morrow W IturbideGermanyIoni Bowcher PROPOSAL
Claire T VocelkaRussiaElwin Sharvill NEGOTIATION
Tony O RutaFranceElwin Sharvill QUALIFIED
Aditya R SergiItalyOnyama Limba PROPOSAL
Mayumi J FerenczItalyStephen Shaw PROPOSAL
Smith L VocelkaIndiaAsiya Javayant NEW
Faith R DarakjyJapanIvan Magalhaes PROPOSAL
Ashley X MarrierIndiaIoni Bowcher NEW
Deepesh V FollerRussiaAmy Elsner NEW
David Z FigeroaRussiaIoni Bowcher RENEWAL
Jennifer J WieserJapanAnna Fali PROPOSAL
Leon H RutaGermanyAnna Fali NEW
Ashley M ShinkoJapanBernardo Dominic NEW
Ricardo O ShinkoFranceAmy Elsner QUALIFIED
Darci L DarakjyCanadaAnna Fali PROPOSAL
Jefferson L InouyeIndiaIvan Magalhaes NEGOTIATION
Misaki D SergiCanadaBernardo Dominic PROPOSAL
David F MarrierCanadaStephen Shaw UNQUALIFIED
Faith T IturbideUnited KingdomStephen Shaw NEGOTIATION
Francesco A OstroskyGermanyAmy Elsner UNQUALIFIED
Tony I CaudyIndiaElwin Sharvill UNQUALIFIED
Aika F PaprockiJapanAsiya Javayant RENEWAL
Salvatore T GillianRussiaAsiya Javayant RENEWAL
Darci X KuskoIndiaBernardo Dominic QUALIFIED
Johnson W SchemmerIndiaAnna Fali NEW
Aika F AmigonAustraliaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood A PaprockiGermanyElwin Sharvill PROPOSAL
Jones J SergiIndiaXuxue Feng NEW
Chavez C PoquetteBrazilIvan Magalhaes NEGOTIATION
Greenwood T RutaItalyOnyama Limba RENEWAL
Stacey J MorascaSpainAsiya Javayant PROPOSAL
Juan S MacleadArgentinaAnna Fali UNQUALIFIED
Aruna Y DilliardFranceAnna Fali PROPOSAL
Silvio S GauchoUnited KingdomAsiya Javayant QUALIFIED
Greenwood N ChuiAustraliaElwin Sharvill QUALIFIED
Mayumi P DarakjyArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio B SchemmerRussia2025-07-19King, Christopher A Esq PROPOSAL72Anna Fali
1001James E BologniaBrazil2025-08-11Feiner Bros NEGOTIATION27Stephen Shaw
1002James X OstroskyGermany2025-08-11Chapman, Ross E Esq PROPOSAL27Anna Fali
1003Aruna B RimGermany2025-07-17Rangoni Of Florence NEW21Onyama Limba
1004Mujtaba T PoquetteBrazil2025-08-07Feltz Printing Service NEW14Stephen Shaw
1005Faith T MacleadItaly2025-07-18Rangoni Of Florence QUALIFIED43Bernardo Dominic
1006Smith X PaprockiArgentina2025-07-20Truhlar And Truhlar Attys QUALIFIED85Anna Fali
1007Cody B WhobreyCanada2025-07-22Commercial Press PROPOSAL9Ivan Magalhaes
1008Alejandro O MacleadRussia2025-08-08Chapman, Ross E Esq NEGOTIATION39Amy Elsner
1009Morrow F OstroskyGermany2025-08-09Chemel, James L Cpa QUALIFIED38Stephen Shaw
1010Mujtaba T FigeroaRussia2025-08-13Feiner Bros QUALIFIED20Ivan Magalhaes
1011Mujtaba Q MorascaItaly2025-07-17Morlong Associates RENEWAL96Bernardo Dominic
1012Jennifer B CaldareraCanada2025-08-02Chanay, Jeffrey A Esq PROPOSAL32Ioni Bowcher
1013Leon K RulapaughFrance2025-07-27Dorl, James J Esq RENEWAL34Amy Elsner
1014Octavia J IturbideIndia2025-07-18Buckley Miller Wright UNQUALIFIED45Elwin Sharvill
1015Tony X RimAustralia2025-08-13Buckley Miller Wright NEGOTIATION37Elwin Sharvill
1016Misaki R MaletSpain2025-07-17Feiner Bros UNQUALIFIED26Anna Fali
1017Leon T MorascaUnited Kingdom2025-07-15Feltz Printing Service UNQUALIFIED17Ioni Bowcher
1018Kadeem C CampainFrance2025-07-29Feltz Printing Service QUALIFIED46Elwin Sharvill
1019Kadeem D VenereIndia2025-07-27Truhlar And Truhlar Attys UNQUALIFIED82Ioni Bowcher
1020Tony L BologniaIndia2025-08-13Chemel, James L Cpa QUALIFIED70Asiya Javayant
1021Salvatore J AlbaresUnited Kingdom2025-07-27Rangoni Of Florence PROPOSAL46Xuxue Feng
1022Jefferson L MaletIndia2025-07-31Chanay, Jeffrey A Esq UNQUALIFIED24Stephen Shaw
1023Murillo Y MaletArgentina2025-07-15Feiner Bros PROPOSAL54Asiya Javayant
1024Ashley C IturbideGermany2025-08-09Chanay, Jeffrey A Esq QUALIFIED94Ioni Bowcher
1025Ricardo W MacleadJapan2025-07-27Feltz Printing Service PROPOSAL24Elwin Sharvill
1026Izzy L SaylorsAustralia2025-07-15Feltz Printing Service UNQUALIFIED60Bernardo Dominic
1027Stacey N MaletRussia2025-08-07Printing Dimensions QUALIFIED2Amy Elsner
1028Aditya X WhobreyArgentina2025-07-19Chapman, Ross E Esq PROPOSAL66Anna Fali
1029Smith X BowleyRussia2025-07-16Rousseaux, Michael Esq PROPOSAL73Stephen Shaw
1030Smith U SchemmerRussia2025-07-26Benton, John B Jr NEW61Xuxue Feng
1031Leon Q TollnerRussia2025-07-27Benton, John B Jr RENEWAL63Xuxue Feng
1032Aika C RulapaughSpain2025-08-06Buckley Miller Wright NEW1Elwin Sharvill
1033Misaki K MaletFrance2025-07-17Benton, John B Jr UNQUALIFIED69Onyama Limba
1034Kadeem S SaylorsArgentina2025-07-29Rousseaux, Michael Esq NEGOTIATION40Amy Elsner
1035Ashley P BriddickSpain2025-08-05Feiner Bros NEGOTIATION44Elwin Sharvill
1036Aika U BowleyGermany2025-08-07King, Christopher A Esq NEGOTIATION61Asiya Javayant
1037Nicolas B SchemmerUnited Kingdom2025-08-01Rousseaux, Michael Esq NEW74Bernardo Dominic
1038Aika I KolmetzBrazil2025-08-04Feltz Printing Service PROPOSAL52Xuxue Feng
1039Darci S RulapaughGermany2025-08-07Rousseaux, Michael Esq NEGOTIATION62Amy Elsner
1040Munro N MaletItaly2025-08-12Commercial Press PROPOSAL60Ioni Bowcher
1041Darci Z SaylorsFrance2025-07-26Rousseaux, Michael Esq NEGOTIATION43Amy Elsner
1042Maisha X GauchoBrazil2025-07-24Benton, John B Jr NEW91Asiya Javayant
1043Nicolas D ChuiArgentina2025-08-13Rousseaux, Michael Esq RENEWAL17Anna Fali
1044Leon R StensethIndia2025-07-25Rangoni Of Florence NEW29Amy Elsner
1045Arvin A MaletArgentina2025-08-01Chapman, Ross E Esq PROPOSAL33Elwin Sharvill
1046Mayumi Z BowleyBrazil2025-08-10Dorl, James J Esq PROPOSAL56Amy Elsner
1047Sinclair F AlbaresCanada2025-08-11Buckley Miller Wright RENEWAL50Asiya Javayant
1048Johnson J BologniaFrance2025-07-15Dorl, James J Esq NEGOTIATION33Xuxue Feng
1049Jennifer O OstroskyItaly2025-07-22Morlong Associates RENEWAL98Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin V KolmetzRussiaAnna Fali RENEWAL
Aruna J SaylorsSpainStephen Shaw RENEWAL
Smith N KuskoSpainOnyama Limba QUALIFIED
Leja U RutaArgentinaAmy Elsner UNQUALIFIED
Kadeem B SergiSpainAsiya Javayant PROPOSAL
Francesco X MaletGermanyAsiya Javayant UNQUALIFIED
Rodrigues F BriddickGermanyAnna Fali QUALIFIED
Arvin Q CaudyBrazilIoni Bowcher QUALIFIED
Aruna U OstroskyIndiaXuxue Feng NEW
Mayumi M GauchoArgentinaIvan Magalhaes QUALIFIED
Sinclair W IturbideIndiaAsiya Javayant UNQUALIFIED
Leon D SaylorsJapanAsiya Javayant RENEWAL
Julie N FigeroaSpainAmy Elsner RENEWAL
Juan F FollerUnited KingdomAmy Elsner PROPOSAL
Octavia Q TollnerCanadaStephen Shaw UNQUALIFIED
Rodrigues Y PoquetteGermanyStephen Shaw NEGOTIATION
Jeanfrancois K DoeSpainAmy Elsner PROPOSAL
Ricardo K DarakjyAustraliaAsiya Javayant PROPOSAL
Jefferson P GillianCanadaAsiya Javayant NEW
Johnson F CaldareraFranceIoni Bowcher RENEWAL
Izzy I IturbideUnited KingdomIvan Magalhaes QUALIFIED
Sinclair Q CampainGermanyAsiya Javayant UNQUALIFIED
Stacey E ChuiFranceAsiya Javayant NEW
Ashley U TollnerArgentinaXuxue Feng QUALIFIED
Octavia J RimCanadaXuxue Feng PROPOSAL
Leja I MacleadFranceAmy Elsner UNQUALIFIED
Octavia Q NickaUnited KingdomAmy Elsner QUALIFIED
Morrow C FlosiGermanyIoni Bowcher NEGOTIATION
Alejandro H TollnerFranceElwin Sharvill PROPOSAL
Chavez B SaylorsItalyStephen Shaw NEGOTIATION
Chavez P BriddickGermanyAmy Elsner RENEWAL
Aika L BologniaJapanBernardo Dominic RENEWAL
Izzy S BologniaItalyAsiya Javayant UNQUALIFIED
Rodrigues Y SaylorsJapanAsiya Javayant UNQUALIFIED
Juan Y RutaJapanXuxue Feng RENEWAL
Emily A SlusarskiCanadaStephen Shaw RENEWAL
David M DoeSpainStephen Shaw RENEWAL
Darci F KuskoSpainIoni Bowcher NEW
Munro R PaprockiRussiaIvan Magalhaes RENEWAL
Johnson S PoquetteArgentinaXuxue Feng RENEWAL
Misaki S PoquetteCanadaBernardo Dominic RENEWAL
Aditya K RutaSpainIoni Bowcher RENEWAL
Cody F BriddickJapanOnyama Limba RENEWAL
Arvin Y VenereRussiaStephen Shaw NEGOTIATION
Kadeem S GillianGermanyAsiya Javayant UNQUALIFIED
Misaki Y SlusarskiBrazilIoni Bowcher UNQUALIFIED
Chavez A VocelkaItalyStephen Shaw UNQUALIFIED
Kadeem Z SlusarskiFranceStephen Shaw PROPOSAL
Juan C GlickItalyOnyama Limba QUALIFIED
Wickens A RutaAustraliaAnna Fali QUALIFIED
Frozen Columns
Name
Murillo O Whobrey
Darci H Chui
Chavez D Shinko
Faith Q Bolognia
Johnson T Inouye
Alejandro L Slusarski
Darci F Kolmetz
Greenwood S Nicka
Adams W Bowley
Aditya A Schemmer
Octavia M Morasca
Greenwood M Waycott
Murillo B Venere
Smith S Vocelka
Antonio D Shinko
Francesco G Oldroyd
Francesco T Bowley
Jefferson T Oldroyd
Kadeem Z Ferencz
Ivar L Albares
Aika J Vocelka
Adams W Campain
Claire Y Oldroyd
Kaitlin T Nestle
Emily F Bowley
Ivar O Whobrey
Mayumi C Chui
Johnson C Gillian
Jeanfrancois Z Amigon
Kaitlin K Campain
Darci F Caudy
Jeanfrancois F Dilliard
Wickens B Dilliard
Nicolas E Royster
Misaki H Ostrosky
Stacey V Tollner
Claire E Bolognia
Cody L Whobrey
Antonio V Marrier
Stacey A Bowley
Morrow U Rulapaugh
Izzy P Stenseth
Maisha W Glick
Smith K Oldroyd
Leon Y Paprocki
Sinclair P Gillian
Arvin E Chui
Maisha E Darakjy
Julie D Briddick
Julie Q Saylors
IdCountryDate
1000Canada2025-07-20
1001India2025-08-08
1002Canada2025-07-19
1003United Kingdom2025-07-30
1004France2025-07-19
1005India2025-07-29
1006Russia2025-07-21
1007United Kingdom2025-08-09
1008United Kingdom2025-08-07
1009Japan2025-07-23
1010France2025-08-07
1011Japan2025-08-04
1012Japan2025-07-15
1013Italy2025-07-15
1014Spain2025-07-27
1015United Kingdom2025-07-17
1016France2025-08-05
1017United Kingdom2025-08-08
1018United Kingdom2025-07-30
1019Canada2025-07-20
1020Germany2025-08-12
1021Russia2025-07-27
1022Spain2025-07-31
1023Spain2025-08-13
1024Japan2025-07-28
1025Canada2025-08-12
1026Spain2025-07-17
1027Argentina2025-08-10
1028Canada2025-07-15
1029Russia2025-07-24
1030Argentina2025-07-26
1031Argentina2025-07-18
1032Russia2025-08-01
1033India2025-07-16
1034Canada2025-07-16
1035Russia2025-08-11
1036France2025-08-08
1037Japan2025-08-05
1038Argentina2025-07-31
1039France2025-08-09
1040Japan2025-07-29
1041Russia2025-08-08
1042Russia2025-08-07
1043Canada2025-08-08
1044Italy2025-07-29
1045Argentina2025-07-15
1046Germany2025-08-04
1047Spain2025-07-28
1048Italy2025-08-09
1049Brazil2025-08-05

On-Demand Data

NameIdCountryDate
Kaitlin N Malet1000Italy2025-08-03
Jefferson Y Glick1001India2025-07-31
Ricardo S Chui1002Germany2025-07-15
Ricardo F Flosi1003Japan2025-08-05
Aruna H Vocelka1004Germany2025-07-24
Izzy W Chui1005United Kingdom2025-07-31
Juan N Venere1006India2025-08-11
Francesco K Paprocki1007Russia2025-07-17
Sinclair T Albares1008Canada2025-08-10
Smith Z Marrier1009India2025-08-04
Chavez F Briddick1010India2025-08-07
Clifford R Slusarski1011Russia2025-07-22
Julie Z Nestle1012India2025-07-28
Arvin U Amigon1013France2025-08-11
Leja V Doe1014Canada2025-07-25
Morrow J Saylors1015Japan2025-08-05
Antonio C Royster1016Australia2025-07-18
Kaitlin M Slusarski1017India2025-07-28
Rodrigues Z Malet1018Canada2025-07-25
Johnson S Flosi1019Japan2025-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily S NestleIndiaIoni Bowcher UNQUALIFIED
James H NickaRussiaStephen Shaw RENEWAL
Emily D MaletItalyOnyama Limba NEW
Julie X SergiSpainBernardo Dominic UNQUALIFIED
Salvatore G WhobreyBrazilXuxue Feng QUALIFIED
Isabel N PoquetteFranceAsiya Javayant QUALIFIED
Mayumi G CampainGermanyAnna Fali RENEWAL
Juan C FigeroaAustraliaAsiya Javayant NEGOTIATION
Silvio J RulapaughCanadaIvan Magalhaes UNQUALIFIED
Ricardo N VenereUnited KingdomIoni Bowcher PROPOSAL
Wickens W KolmetzArgentinaAmy Elsner QUALIFIED
Arvin N OstroskyItalyIvan Magalhaes QUALIFIED
Greenwood W FigeroaIndiaElwin Sharvill RENEWAL
Johnson J InouyeGermanyIvan Magalhaes PROPOSAL
Adams X BriddickItalyAsiya Javayant PROPOSAL
Maisha K MorascaGermanyAnna Fali RENEWAL
Arvin Z AlbaresGermanyAnna Fali UNQUALIFIED
Ashley Q FerenczArgentinaAmy Elsner NEGOTIATION
Ashley M BologniaAustraliaBernardo Dominic NEGOTIATION
Izzy D MorascaArgentinaAsiya Javayant PROPOSAL
Claire W StensethCanadaAmy Elsner RENEWAL
Isabel K GillianAustraliaAsiya Javayant QUALIFIED
Aika K PerinAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois Q RutaUnited KingdomElwin Sharvill NEGOTIATION
Stacey Z OstroskyCanadaXuxue Feng NEW
Darci H ShinkoFranceStephen Shaw RENEWAL
Misaki S ChuiIndiaStephen Shaw NEGOTIATION
Francesco T DilliardItalyBernardo Dominic NEGOTIATION
Faith W NickaArgentinaBernardo Dominic PROPOSAL
Johnson J BowleyGermanyAsiya Javayant PROPOSAL
Aika I ButtAustraliaOnyama Limba RENEWAL
James L WhobreyUnited KingdomAnna Fali NEW
Darci D PerinFranceStephen Shaw PROPOSAL
Sinclair Y AmigonJapanBernardo Dominic RENEWAL
Francesco Y GlickIndiaElwin Sharvill NEW
Jennifer V PaprockiCanadaAsiya Javayant RENEWAL
Costa R RimItalyAnna Fali PROPOSAL
Nicolas W RutaGermanyAsiya Javayant NEGOTIATION
Julie Q FlosiJapanXuxue Feng NEW
Maisha S GarufiBrazilBernardo Dominic UNQUALIFIED

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