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
Izzy T DilliardUnited KingdomStephen Shaw PROPOSAL
Alejandro P VenereCanadaIvan Magalhaes UNQUALIFIED
Julie N AlbaresItalyIoni Bowcher NEW
Maria J IturbideArgentinaAmy Elsner NEW
Adams B MarrierCanadaOnyama Limba PROPOSAL
Cody E NickaIndiaStephen Shaw NEGOTIATION
Darci Z RulapaughIndiaXuxue Feng NEGOTIATION
Antonio W KuskoFranceIoni Bowcher UNQUALIFIED
Silvio D ButtIndiaBernardo Dominic NEGOTIATION
Kadeem V MorascaAustraliaBernardo Dominic RENEWAL
Clifford X AmigonItalyOnyama Limba UNQUALIFIED
Jennifer P FigeroaRussiaBernardo Dominic RENEWAL
Stacey C SchemmerSpainOnyama Limba PROPOSAL
Arvin P SaylorsBrazilStephen Shaw RENEWAL
Emily M MacleadJapanAmy Elsner NEW
Antonio W FigeroaJapanElwin Sharvill RENEWAL
Kaitlin D GauchoJapanAnna Fali PROPOSAL
Ivar S NestleJapanIvan Magalhaes NEW
Kadeem X ChuiAustraliaXuxue Feng UNQUALIFIED
Stacey Y OldroydFranceIvan Magalhaes RENEWAL
Alejandro L StensethArgentinaElwin Sharvill NEGOTIATION
Sinclair U StensethItalyStephen Shaw NEW
Greenwood V DarakjyIndiaElwin Sharvill NEGOTIATION
Emily I FerenczFranceXuxue Feng UNQUALIFIED
David B GarufiAustraliaIvan Magalhaes QUALIFIED
Nicolas V FerenczArgentinaStephen Shaw RENEWAL
Jennifer N FigeroaItalyOnyama Limba UNQUALIFIED
Maria L AmigonBrazilStephen Shaw NEGOTIATION
James W OldroydFranceIoni Bowcher NEW
Nicolas F DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Kadeem P MacleadCanadaOnyama Limba UNQUALIFIED
Tony I AmigonIndiaBernardo Dominic NEGOTIATION
Maisha J SaylorsCanadaStephen Shaw NEW
Kaitlin G RutaSpainBernardo Dominic NEGOTIATION
Sinclair A AmigonRussiaIoni Bowcher NEGOTIATION
Jones R WieserSpainBernardo Dominic NEW
Claire E SaylorsItalyXuxue Feng QUALIFIED
Julie E BowleyJapanAnna Fali PROPOSAL
Jeanfrancois T DilliardFranceIoni Bowcher RENEWAL
Jeanfrancois O RoysterUnited KingdomStephen Shaw PROPOSAL
Alejandro E DoeGermanyBernardo Dominic PROPOSAL
Francesco R BriddickAustraliaXuxue Feng RENEWAL
Aruna N FollerSpainXuxue Feng RENEWAL
Salvatore K WhobreyArgentinaStephen Shaw RENEWAL
Adams Q RutaSpainAnna Fali PROPOSAL
Deepesh Y StensethUnited KingdomXuxue Feng PROPOSAL
Stacey R MaletSpainAmy Elsner QUALIFIED
Munro W DilliardJapanStephen Shaw NEGOTIATION
Adams Z FlosiJapanIoni Bowcher QUALIFIED
Jeanfrancois W KuskoJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Smith Z DoeRussiaXuxue Feng NEGOTIATION
Misaki S SergiArgentinaIoni Bowcher NEW
Emily A FlosiSpainIoni Bowcher QUALIFIED
Silvio S ChuiJapanAnna Fali NEGOTIATION
Salvatore K MaletArgentinaOnyama Limba PROPOSAL
Isabel U RoysterItalyXuxue Feng NEGOTIATION
Leja K DarakjyItalyStephen Shaw NEGOTIATION
Clifford L KuskoItalyAmy Elsner NEW
Francesco J DilliardJapanAsiya Javayant PROPOSAL
David O VenereGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily O NickaAustralia2025-07-17Printing Dimensions QUALIFIED98Anna Fali
1001Jefferson I MacleadIndia2025-07-15Feltz Printing Service UNQUALIFIED44Amy Elsner
1002Juan Z GillianRussia2025-07-24Rangoni Of Florence NEW32Xuxue Feng
1003Morrow N VocelkaRussia2025-07-18Benton, John B Jr NEW17Ioni Bowcher
1004Faith L FlosiBrazil2025-07-12Morlong Associates NEGOTIATION45Anna Fali
1005Aditya X GauchoFrance2025-07-11Buckley Miller Wright PROPOSAL7Ioni Bowcher
1006Jefferson L PoquetteFrance2025-08-04Rousseaux, Michael Esq NEGOTIATION82Xuxue Feng
1007Adams D TollnerArgentina2025-07-08Buckley Miller Wright PROPOSAL0Ivan Magalhaes
1008Mayumi X GauchoFrance2025-07-14King, Christopher A Esq NEGOTIATION11Ivan Magalhaes
1009Salvatore X SergiGermany2025-07-13Truhlar And Truhlar Attys PROPOSAL49Elwin Sharvill
1010Munro S GillianFrance2025-08-03Morlong Associates UNQUALIFIED50Xuxue Feng
1011Juan C BologniaAustralia2025-07-07Chapman, Ross E Esq RENEWAL6Bernardo Dominic
1012Adams I AmigonAustralia2025-07-21Dorl, James J Esq PROPOSAL62Xuxue Feng
1013Johnson E KolmetzBrazil2025-07-14Buckley Miller Wright NEGOTIATION12Ioni Bowcher
1014Francesco H NestleIndia2025-07-07Chanay, Jeffrey A Esq PROPOSAL25Asiya Javayant
1015Arvin J CampainSpain2025-07-22Rangoni Of Florence QUALIFIED50Amy Elsner
1016Aditya V RoysterItaly2025-08-01Truhlar And Truhlar Attys PROPOSAL87Bernardo Dominic
1017Stacey Y KuskoFrance2025-07-29Chapman, Ross E Esq PROPOSAL31Onyama Limba
1018Aika L GlickRussia2025-07-21Chanay, Jeffrey A Esq NEW77Xuxue Feng
1019Chavez G KuskoAustralia2025-07-30Truhlar And Truhlar Attys NEGOTIATION54Onyama Limba
1020James K StockhamSpain2025-07-26Commercial Press RENEWAL0Stephen Shaw
1021Emily U RulapaughIndia2025-07-11Buckley Miller Wright QUALIFIED80Elwin Sharvill
1022Greenwood E StockhamItaly2025-08-04Benton, John B Jr NEGOTIATION79Ivan Magalhaes
1023Kadeem L CampainUnited Kingdom2025-08-02Feiner Bros QUALIFIED95Ivan Magalhaes
1024Mayumi W MacleadBrazil2025-07-22Rangoni Of Florence UNQUALIFIED90Anna Fali
1025Cody Q GlickFrance2025-07-06Rangoni Of Florence QUALIFIED60Elwin Sharvill
1026Costa T BriddickSpain2025-07-08Chapman, Ross E Esq NEW60Xuxue Feng
1027Antonio M InouyeCanada2025-07-20Rousseaux, Michael Esq UNQUALIFIED60Onyama Limba
1028Maisha N BologniaRussia2025-07-28Chapman, Ross E Esq NEGOTIATION8Elwin Sharvill
1029Aruna I BriddickJapan2025-07-25Chapman, Ross E Esq QUALIFIED97Onyama Limba
1030Kadeem B SaylorsJapan2025-07-28Chanay, Jeffrey A Esq NEGOTIATION59Asiya Javayant
1031Octavia Q WieserUnited Kingdom2025-07-13Feiner Bros RENEWAL98Asiya Javayant
1032Leon U BriddickFrance2025-07-10Benton, John B Jr RENEWAL57Onyama Limba
1033Misaki H CaldareraFrance2025-07-27Chapman, Ross E Esq PROPOSAL29Xuxue Feng
1034Mayumi S PaprockiGermany2025-08-02Rangoni Of Florence PROPOSAL33Stephen Shaw
1035Salvatore F IturbideCanada2025-07-12Benton, John B Jr NEGOTIATION13Ioni Bowcher
1036Munro C MacleadGermany2025-07-31Rangoni Of Florence UNQUALIFIED1Asiya Javayant
1037James W GlickArgentina2025-07-07Morlong Associates NEW8Asiya Javayant
1038Greenwood J ShinkoGermany2025-07-21Printing Dimensions UNQUALIFIED40Amy Elsner
1039Maria J AmigonGermany2025-07-23King, Christopher A Esq PROPOSAL5Anna Fali
1040Cody V VenereItaly2025-07-25Printing Dimensions NEGOTIATION76Amy Elsner
1041Mayumi C DoeIndia2025-07-30Benton, John B Jr QUALIFIED72Amy Elsner
1042Ricardo K CampainGermany2025-07-30Printing Dimensions NEW44Elwin Sharvill
1043Maria M ShinkoAustralia2025-07-29Rangoni Of Florence NEGOTIATION13Ivan Magalhaes
1044Morrow C WhobreyArgentina2025-07-11Rousseaux, Michael Esq NEW1Stephen Shaw
1045Jennifer M DarakjyJapan2025-07-16Buckley Miller Wright PROPOSAL47Ivan Magalhaes
1046Aditya R IturbideFrance2025-07-31Rousseaux, Michael Esq NEGOTIATION91Ioni Bowcher
1047Jennifer V IturbideRussia2025-07-07Rangoni Of Florence RENEWAL25Xuxue Feng
1048Faith K ChuiJapan2025-07-09Truhlar And Truhlar Attys QUALIFIED15Xuxue Feng
1049Aika K MorascaGermany2025-07-06Feltz Printing Service QUALIFIED72Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony V InouyeIndiaIvan Magalhaes NEGOTIATION
Claire F DoeItalyAnna Fali NEGOTIATION
Misaki U InouyeSpainStephen Shaw QUALIFIED
Emily G VocelkaCanadaIoni Bowcher NEW
David P OstroskyItalyIvan Magalhaes UNQUALIFIED
Alejandro E WieserBrazilStephen Shaw QUALIFIED
Maisha U SchemmerItalyAmy Elsner QUALIFIED
Misaki X IturbideUnited KingdomElwin Sharvill NEGOTIATION
Clifford L SlusarskiSpainBernardo Dominic PROPOSAL
Salvatore O StockhamJapanAsiya Javayant PROPOSAL
Tony C PoquetteUnited KingdomAsiya Javayant NEW
Ivar C NickaFranceXuxue Feng UNQUALIFIED
Julie D AmigonBrazilIvan Magalhaes UNQUALIFIED
Francesco N MorascaCanadaStephen Shaw QUALIFIED
Nicolas Y BowleyJapanOnyama Limba NEW
Smith B MarrierArgentinaOnyama Limba UNQUALIFIED
Murillo L KolmetzAustraliaAnna Fali NEW
Kaitlin N MarrierSpainAsiya Javayant QUALIFIED
Ivar R DoeAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin A KolmetzUnited KingdomStephen Shaw RENEWAL
Stacey K RoysterItalyIvan Magalhaes RENEWAL
Morrow X PaprockiJapanStephen Shaw UNQUALIFIED
Jones O MaletGermanyIoni Bowcher RENEWAL
Mujtaba G RutaJapanIvan Magalhaes QUALIFIED
Isabel P StensethCanadaElwin Sharvill QUALIFIED
Alejandro W CaldareraFranceAnna Fali QUALIFIED
Ashley T WieserArgentinaElwin Sharvill NEGOTIATION
Cody B BriddickItalyAsiya Javayant PROPOSAL
Maria I WhobreyGermanyBernardo Dominic UNQUALIFIED
Leja I OldroydIndiaIoni Bowcher UNQUALIFIED
Ivar M RimIndiaBernardo Dominic RENEWAL
Antonio N AlbaresCanadaAnna Fali NEGOTIATION
Chavez Q RulapaughItalyStephen Shaw QUALIFIED
Murillo A GlickJapanAmy Elsner NEGOTIATION
Ashley H AmigonArgentinaIoni Bowcher RENEWAL
Misaki O PoquetteSpainIoni Bowcher NEW
Misaki L MarrierArgentinaElwin Sharvill NEGOTIATION
Kaitlin H ButtJapanOnyama Limba RENEWAL
Mujtaba F AlbaresIndiaAsiya Javayant PROPOSAL
Murillo F MarrierGermanyIoni Bowcher RENEWAL
Aruna Q CaldareraRussiaAmy Elsner UNQUALIFIED
Alejandro R InouyeJapanAnna Fali RENEWAL
Rodrigues M VenereRussiaOnyama Limba NEW
Darci S GlickJapanXuxue Feng QUALIFIED
Adams Q VocelkaIndiaOnyama Limba PROPOSAL
Sinclair S PaprockiBrazilBernardo Dominic NEW
Mujtaba Z CaudyArgentinaAsiya Javayant NEW
Jennifer Y VenereArgentinaIvan Magalhaes UNQUALIFIED
Antonio A RoysterArgentinaBernardo Dominic RENEWAL
Alejandro F FlosiIndiaIoni Bowcher NEW
Frozen Columns
Name
Emily T Poquette
Maisha A Iturbide
Jefferson I Paprocki
Murillo G Venere
Cody D Glick
Emily B Briddick
Leon Y Ostrosky
Murillo C Wieser
James D Kusko
Silvio G Briddick
Munro O Stockham
Stacey Z Rim
Maisha A Darakjy
Isabel S Perin
Silvio R Bolognia
Faith Z Doe
James V Campain
Deepesh A Slusarski
Maisha N Gaucho
Izzy O Iturbide
Jones S Glick
Stacey B Slusarski
Kaitlin Y Venere
David Z Poquette
Murillo W Nestle
Mujtaba P Nicka
Munro B Wieser
David X Chui
David D Bowley
Jones T Briddick
Ricardo J Venere
Ricardo U Kusko
Jones U Poquette
Smith Q Ferencz
Jeanfrancois W Paprocki
Leja Z Chui
Octavia S Figeroa
Juan N Shinko
Emily I Poquette
Jefferson M Garufi
David H Wieser
Deepesh Y Paprocki
Alejandro O Waycott
Munro X Ostrosky
Arvin C Stockham
Aditya A Ruta
Antonio Y Flosi
Misaki Y Poquette
Jones G Marrier
Jeanfrancois Q Ostrosky
IdCountryDate
1000India2025-07-30
1001Italy2025-07-06
1002Brazil2025-07-29
1003Argentina2025-07-06
1004Germany2025-07-10
1005Germany2025-07-07
1006Russia2025-07-07
1007Brazil2025-07-24
1008Australia2025-07-18
1009United Kingdom2025-07-08
1010Spain2025-07-21
1011Spain2025-07-14
1012Russia2025-07-12
1013Russia2025-07-31
1014Brazil2025-07-15
1015Russia2025-07-30
1016Russia2025-07-18
1017Japan2025-07-23
1018France2025-07-31
1019France2025-07-12
1020Russia2025-08-01
1021Italy2025-07-06
1022Canada2025-07-22
1023Germany2025-07-30
1024Brazil2025-07-09
1025Canada2025-07-19
1026Japan2025-07-27
1027Argentina2025-07-12
1028France2025-07-21
1029Canada2025-07-12
1030Canada2025-07-26
1031Argentina2025-07-31
1032Brazil2025-08-04
1033Argentina2025-08-02
1034Australia2025-07-15
1035Japan2025-07-23
1036Russia2025-07-18
1037Brazil2025-07-27
1038Russia2025-07-29
1039Spain2025-07-17
1040Russia2025-08-02
1041Japan2025-07-13
1042Japan2025-08-02
1043India2025-07-16
1044Brazil2025-08-03
1045Russia2025-07-25
1046Italy2025-07-13
1047Japan2025-07-20
1048Argentina2025-07-15
1049Russia2025-07-23

On-Demand Data

NameIdCountryDate
Jefferson G Campain1000Japan2025-07-15
Leja J Ruta1001Germany2025-07-23
Arvin I Morasca1002Canada2025-07-24
Faith G Bolognia1003Brazil2025-07-25
Mujtaba N Royster1004Australia2025-07-12
Cody P Royster1005Spain2025-07-13
Emily O Doe1006India2025-07-22
Aditya M Amigon1007Germany2025-07-28
Leon P Caldarera1008Australia2025-07-15
Emily K Caldarera1009Russia2025-07-06
Darci A Maclead1010India2025-08-01
Wickens H Briddick1011France2025-07-23
Mayumi R Oldroyd1012Italy2025-08-04
Aditya H Glick1013United Kingdom2025-07-26
Greenwood A Whobrey1014France2025-07-23
Wickens P Flosi1015Australia2025-07-15
Alejandro Z Campain1016Australia2025-08-03
Salvatore B Sergi1017France2025-07-14
James D Butt1018Spain2025-07-20
Alejandro R Marrier1019Italy2025-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair L StensethItalyOnyama Limba NEGOTIATION
Izzy K StensethGermanyAsiya Javayant PROPOSAL
Jeanfrancois X DilliardFranceElwin Sharvill UNQUALIFIED
Maisha K GillianUnited KingdomIvan Magalhaes QUALIFIED
Maria X GarufiUnited KingdomStephen Shaw QUALIFIED
Silvio M SlusarskiAustraliaAsiya Javayant QUALIFIED
Salvatore Q AmigonIndiaOnyama Limba RENEWAL
Johnson Q MarrierItalyOnyama Limba NEW
Murillo E WhobreyArgentinaAnna Fali PROPOSAL
Johnson A FerenczFranceElwin Sharvill PROPOSAL
Smith C WhobreyJapanIvan Magalhaes NEW
Kadeem Z CampainFranceAmy Elsner QUALIFIED
Greenwood F IturbideItalyElwin Sharvill UNQUALIFIED
Darci W MacleadItalyIvan Magalhaes NEGOTIATION
James G AlbaresJapanAmy Elsner NEGOTIATION
Darci Q FollerCanadaIoni Bowcher PROPOSAL
Francesco Y OldroydSpainStephen Shaw NEGOTIATION
David T SchemmerSpainElwin Sharvill UNQUALIFIED
Francesco V BowleyAustraliaStephen Shaw PROPOSAL
Maisha T ChuiUnited KingdomXuxue Feng UNQUALIFIED
Maria N InouyeAustraliaAmy Elsner PROPOSAL
Octavia Z WaycottRussiaStephen Shaw NEGOTIATION
Misaki C WieserBrazilAmy Elsner RENEWAL
David K ChuiGermanyStephen Shaw NEW
James B BriddickCanadaBernardo Dominic NEW
Octavia U InouyeItalyAsiya Javayant NEGOTIATION
Clifford T WieserFranceXuxue Feng PROPOSAL
Kaitlin L SlusarskiIndiaElwin Sharvill UNQUALIFIED
Arvin C MaletFranceBernardo Dominic NEW
Aditya T MacleadBrazilIvan Magalhaes QUALIFIED
Francesco E GlickGermanyAsiya Javayant NEGOTIATION
Rodrigues W BologniaIndiaAsiya Javayant NEW
Octavia Z FerenczRussiaStephen Shaw UNQUALIFIED
Silvio A WieserArgentinaAmy Elsner PROPOSAL
Kadeem W KuskoGermanyAmy Elsner UNQUALIFIED
Johnson K GauchoFranceAnna Fali PROPOSAL
Smith W PaprockiIndiaXuxue Feng RENEWAL
Costa F GauchoArgentinaAmy Elsner QUALIFIED
Salvatore J InouyeJapanAnna Fali NEW
Misaki T FlosiArgentinaBernardo 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>