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
Alejandro J InouyeCanadaIvan Magalhaes QUALIFIED
Antonio A SaylorsSpainElwin Sharvill QUALIFIED
Kadeem J NickaArgentinaOnyama Limba NEW
Juan W MorascaRussiaXuxue Feng UNQUALIFIED
Maisha Y CampainGermanyAmy Elsner RENEWAL
Emily F VenereCanadaElwin Sharvill UNQUALIFIED
Johnson B OstroskyBrazilBernardo Dominic NEGOTIATION
Aika Q MarrierFranceAsiya Javayant NEGOTIATION
Stacey F CampainIndiaAsiya Javayant QUALIFIED
Johnson Y OstroskyItalyStephen Shaw NEW
Murillo C DarakjyFranceIoni Bowcher PROPOSAL
Ivar W PerinFranceBernardo Dominic PROPOSAL
Aruna F DilliardRussiaIvan Magalhaes PROPOSAL
Johnson J InouyeIndiaAnna Fali NEW
Greenwood S GauchoGermanyAnna Fali UNQUALIFIED
Deepesh S AlbaresItalyElwin Sharvill NEGOTIATION
Aditya V OldroydItalyAmy Elsner NEGOTIATION
Cody D PerinSpainIvan Magalhaes NEGOTIATION
Stacey M BowleyAustraliaStephen Shaw QUALIFIED
Misaki V KolmetzCanadaBernardo Dominic NEW
Silvio E OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Adams T FlosiItalyStephen Shaw PROPOSAL
Chavez X VocelkaUnited KingdomOnyama Limba NEW
Alejandro Y AmigonArgentinaXuxue Feng NEGOTIATION
Faith T FlosiSpainOnyama Limba RENEWAL
Adams R NickaUnited KingdomAsiya Javayant QUALIFIED
Sinclair Y SergiAustraliaAmy Elsner UNQUALIFIED
Jefferson N CaudyGermanyBernardo Dominic NEGOTIATION
Kaitlin F RimUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood S OldroydIndiaBernardo Dominic UNQUALIFIED
Munro P WieserIndiaElwin Sharvill NEGOTIATION
Munro Z SchemmerItalyElwin Sharvill NEGOTIATION
Tony B SaylorsUnited KingdomXuxue Feng QUALIFIED
Faith H WhobreySpainAsiya Javayant PROPOSAL
Ivar I RoysterArgentinaAmy Elsner RENEWAL
Jennifer P DoeCanadaAsiya Javayant RENEWAL
Murillo C NickaArgentinaElwin Sharvill QUALIFIED
Ivar G GarufiFranceIoni Bowcher NEGOTIATION
Cody A SergiJapanElwin Sharvill UNQUALIFIED
Antonio U DilliardItalyAnna Fali QUALIFIED
Smith R SlusarskiFranceBernardo Dominic UNQUALIFIED
Morrow L CaldareraSpainStephen Shaw UNQUALIFIED
Maisha B VocelkaAustraliaIvan Magalhaes QUALIFIED
Jennifer W ChuiItalyAnna Fali QUALIFIED
Cody L FigeroaBrazilElwin Sharvill RENEWAL
Mayumi O NickaSpainIoni Bowcher QUALIFIED
Murillo G GillianItalyAmy Elsner NEGOTIATION
Antonio N FollerJapanBernardo Dominic PROPOSAL
Deepesh N GlickJapanAnna Fali RENEWAL
Aika X KuskoRussiaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio Z AlbaresSpainStephen Shaw QUALIFIED
Greenwood T GlickUnited KingdomAsiya Javayant NEW
Tony R RoysterJapanIvan Magalhaes QUALIFIED
Smith S AlbaresSpainBernardo Dominic UNQUALIFIED
Murillo J FerenczAustraliaElwin Sharvill NEW
Izzy G OldroydItalyOnyama Limba PROPOSAL
Jefferson J VocelkaCanadaElwin Sharvill UNQUALIFIED
Darci J NickaUnited KingdomAsiya Javayant NEW
Arvin C AlbaresIndiaOnyama Limba UNQUALIFIED
Munro B NickaRussiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams O BowleyFrance2025-09-27Commercial Press RENEWAL88Xuxue Feng
1001Munro A RimIndia2025-09-30Rousseaux, Michael Esq UNQUALIFIED82Anna Fali
1002Murillo U InouyeSpain2025-09-13King, Christopher A Esq NEGOTIATION78Xuxue Feng
1003Tony D MarrierFrance2025-10-06Benton, John B Jr RENEWAL33Ivan Magalhaes
1004Jennifer W RulapaughArgentina2025-09-10Feiner Bros NEGOTIATION64Anna Fali
1005Morrow I NickaGermany2025-10-05King, Christopher A Esq QUALIFIED1Amy Elsner
1006Mujtaba G KolmetzRussia2025-09-29Dorl, James J Esq NEW96Stephen Shaw
1007Leon T SlusarskiGermany2025-09-22Buckley Miller Wright NEGOTIATION6Bernardo Dominic
1008Arvin U RimUnited Kingdom2025-10-04Rousseaux, Michael Esq NEGOTIATION14Ivan Magalhaes
1009James T BriddickRussia2025-09-14Chapman, Ross E Esq PROPOSAL99Ivan Magalhaes
1010Arvin R GillianItaly2025-09-30Benton, John B Jr QUALIFIED22Stephen Shaw
1011Greenwood G WieserCanada2025-09-09Buckley Miller Wright NEW10Ioni Bowcher
1012Darci Q NestleIndia2025-09-07Chanay, Jeffrey A Esq UNQUALIFIED68Onyama Limba
1013Leja N BologniaItaly2025-09-24Chapman, Ross E Esq NEGOTIATION46Ioni Bowcher
1014Ricardo X KuskoSpain2025-09-08Commercial Press QUALIFIED81Bernardo Dominic
1015Kaitlin M PerinUnited Kingdom2025-10-02Commercial Press RENEWAL84Amy Elsner
1016Ricardo S WhobreyArgentina2025-09-18Dorl, James J Esq NEGOTIATION93Bernardo Dominic
1017Clifford D RulapaughJapan2025-09-20Chanay, Jeffrey A Esq NEGOTIATION11Elwin Sharvill
1018Rodrigues J RulapaughGermany2025-09-30King, Christopher A Esq UNQUALIFIED85Anna Fali
1019Ashley Z InouyeBrazil2025-09-09Benton, John B Jr UNQUALIFIED44Bernardo Dominic
1020Silvio G ChuiItaly2025-09-12Benton, John B Jr PROPOSAL31Elwin Sharvill
1021Emily F OldroydCanada2025-10-05Truhlar And Truhlar Attys UNQUALIFIED21Onyama Limba
1022James K BriddickAustralia2025-09-08Feltz Printing Service QUALIFIED86Asiya Javayant
1023Jones U PaprockiAustralia2025-09-14Benton, John B Jr NEGOTIATION44Anna Fali
1024Sinclair U OstroskyItaly2025-10-05Printing Dimensions RENEWAL97Onyama Limba
1025Kadeem B WieserRussia2025-09-21Chanay, Jeffrey A Esq NEW93Ioni Bowcher
1026Rodrigues S KuskoArgentina2025-09-26Printing Dimensions QUALIFIED62Ivan Magalhaes
1027Jones C SaylorsItaly2025-09-21Benton, John B Jr NEW32Ivan Magalhaes
1028Munro C DilliardBrazil2025-09-20Chapman, Ross E Esq PROPOSAL48Onyama Limba
1029Wickens C BriddickFrance2025-09-25Morlong Associates QUALIFIED71Bernardo Dominic
1030Darci P RutaUnited Kingdom2025-10-05Rousseaux, Michael Esq UNQUALIFIED37Elwin Sharvill
1031Johnson U MorascaItaly2025-09-21Feltz Printing Service RENEWAL50Ioni Bowcher
1032Ivar O WaycottGermany2025-09-11Rousseaux, Michael Esq QUALIFIED63Amy Elsner
1033Kadeem N StockhamFrance2025-09-20Benton, John B Jr UNQUALIFIED88Bernardo Dominic
1034Smith G VenereArgentina2025-10-05Truhlar And Truhlar Attys NEW73Stephen Shaw
1035Morrow X SaylorsBrazil2025-09-21Chapman, Ross E Esq NEW81Amy Elsner
1036Jones W BowleyArgentina2025-09-20Chapman, Ross E Esq NEGOTIATION88Asiya Javayant
1037Deepesh V DarakjyItaly2025-09-09Rousseaux, Michael Esq QUALIFIED3Anna Fali
1038James P StensethSpain2025-09-28Truhlar And Truhlar Attys UNQUALIFIED70Amy Elsner
1039Johnson B BriddickArgentina2025-09-26Dorl, James J Esq QUALIFIED20Bernardo Dominic
1040Ashley G OstroskyGermany2025-10-02Feiner Bros NEW99Elwin Sharvill
1041Maria M TollnerRussia2025-09-10Truhlar And Truhlar Attys NEW5Elwin Sharvill
1042Munro D VenereFrance2025-09-22Benton, John B Jr RENEWAL23Ioni Bowcher
1043Jennifer H StensethGermany2025-09-23Buckley Miller Wright NEGOTIATION61Ivan Magalhaes
1044Octavia E VocelkaBrazil2025-10-04Printing Dimensions PROPOSAL3Stephen Shaw
1045Misaki O CaldareraCanada2025-09-26King, Christopher A Esq RENEWAL0Bernardo Dominic
1046Leja Q VocelkaBrazil2025-09-16Rangoni Of Florence NEGOTIATION0Xuxue Feng
1047Smith X ButtCanada2025-09-18Chanay, Jeffrey A Esq QUALIFIED75Amy Elsner
1048Antonio T MacleadSpain2025-09-20Truhlar And Truhlar Attys RENEWAL48Xuxue Feng
1049Francesco C CaldareraFrance2025-09-11Rangoni Of Florence PROPOSAL88Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues V AmigonRussiaAnna Fali RENEWAL
Maisha H KuskoRussiaIoni Bowcher QUALIFIED
Nicolas Z FollerCanadaIoni Bowcher PROPOSAL
Ricardo K MaletAustraliaOnyama Limba NEW
Wickens X GarufiGermanyXuxue Feng UNQUALIFIED
Ricardo V WaycottSpainBernardo Dominic UNQUALIFIED
Jones N BowleyArgentinaIoni Bowcher NEGOTIATION
Salvatore V CaudyAustraliaBernardo Dominic RENEWAL
Wickens A GillianAustraliaXuxue Feng NEW
Rodrigues S MaletAustraliaAnna Fali NEW
Kadeem S WaycottCanadaAsiya Javayant PROPOSAL
Wickens C SergiIndiaStephen Shaw PROPOSAL
Stacey R TollnerGermanyIoni Bowcher PROPOSAL
Wickens A PerinCanadaXuxue Feng NEGOTIATION
Isabel S OldroydIndiaAmy Elsner NEW
Costa H BriddickAustraliaAnna Fali NEGOTIATION
Sinclair X InouyeFranceElwin Sharvill PROPOSAL
Julie J InouyeBrazilElwin Sharvill NEGOTIATION
Aruna B KolmetzBrazilStephen Shaw RENEWAL
Octavia Y VenereUnited KingdomIvan Magalhaes PROPOSAL
Darci N GarufiArgentinaAmy Elsner UNQUALIFIED
Juan Z PoquetteJapanStephen Shaw NEGOTIATION
Francesco R MaletArgentinaStephen Shaw NEGOTIATION
Kaitlin H MorascaSpainAnna Fali PROPOSAL
Aika O SlusarskiIndiaAmy Elsner NEGOTIATION
Adams A StensethAustraliaBernardo Dominic PROPOSAL
Arvin H FlosiItalyStephen Shaw QUALIFIED
Antonio X ShinkoIndiaIvan Magalhaes UNQUALIFIED
Smith F MarrierFranceIvan Magalhaes NEW
Jefferson R BriddickGermanyIvan Magalhaes NEW
David U TollnerCanadaAsiya Javayant QUALIFIED
Ricardo B DilliardCanadaStephen Shaw NEGOTIATION
Silvio I ChuiBrazilStephen Shaw NEW
James O GarufiFranceAmy Elsner RENEWAL
Leja U FerenczAustraliaIvan Magalhaes NEGOTIATION
Darci M FigeroaGermanyOnyama Limba NEGOTIATION
Arvin M MaletCanadaXuxue Feng PROPOSAL
Jefferson G AlbaresBrazilStephen Shaw NEW
Isabel V BologniaSpainIvan Magalhaes QUALIFIED
Silvio B AmigonIndiaOnyama Limba UNQUALIFIED
Claire E PoquetteRussiaBernardo Dominic RENEWAL
Aditya H WaycottFranceElwin Sharvill UNQUALIFIED
Clifford W SergiIndiaElwin Sharvill NEGOTIATION
Wickens E SaylorsCanadaXuxue Feng NEW
Deepesh T SlusarskiAustraliaElwin Sharvill NEGOTIATION
Faith S StensethArgentinaStephen Shaw PROPOSAL
Kaitlin S SlusarskiIndiaBernardo Dominic UNQUALIFIED
Darci J FollerJapanAsiya Javayant UNQUALIFIED
Costa K RoysterBrazilElwin Sharvill NEGOTIATION
Greenwood T RulapaughUnited KingdomElwin Sharvill PROPOSAL
Frozen Columns
Name
Aika P Waycott
Murillo A Gillian
Kadeem Q Malet
Maisha O Albares
Isabel W Ostrosky
Izzy W Campain
Alejandro Q Bowley
Isabel K Ostrosky
David G Doe
Mayumi C Venere
Kadeem V Stenseth
Ricardo F Vocelka
Jennifer G Kusko
Tony Y Oldroyd
Cody G Bolognia
Johnson I Gillian
Clifford D Bowley
Greenwood V Bowley
Greenwood O Oldroyd
Antonio F Morasca
Isabel I Bolognia
Antonio G Shinko
Antonio J Butt
Maisha X Albares
Antonio E Saylors
Misaki M Poquette
Sinclair Q Rim
Tony S Oldroyd
Tony A Figeroa
Maria K Butt
Aruna T Waycott
Smith A Ostrosky
Antonio P Stenseth
Aika X Ostrosky
Izzy Y Oldroyd
Wickens B Ruta
Francesco P Albares
Kadeem T Poquette
Kadeem W Wieser
Aditya S Darakjy
Clifford S Rulapaugh
Adams R Perin
Chavez V Vocelka
Rodrigues C Foller
Smith U Schemmer
Adams W Paprocki
Rodrigues V Royster
Arvin Z Foller
Adams Y Kusko
Munro Z Whobrey
IdCountryDate
1000Italy2025-10-06
1001Japan2025-09-07
1002Italy2025-10-05
1003India2025-09-10
1004India2025-10-05
1005Russia2025-09-07
1006Spain2025-09-29
1007Germany2025-09-24
1008Australia2025-10-04
1009France2025-09-28
1010Argentina2025-09-10
1011France2025-09-11
1012France2025-10-03
1013Spain2025-09-24
1014India2025-09-19
1015Germany2025-09-21
1016Italy2025-09-16
1017Japan2025-09-21
1018India2025-10-03
1019United Kingdom2025-10-03
1020Argentina2025-09-26
1021Russia2025-09-29
1022Brazil2025-10-04
1023Italy2025-09-29
1024United Kingdom2025-10-06
1025Russia2025-09-13
1026Argentina2025-10-01
1027Germany2025-09-14
1028Argentina2025-09-27
1029Russia2025-09-14
1030Canada2025-09-28
1031India2025-09-13
1032Spain2025-10-03
1033Italy2025-09-14
1034Argentina2025-09-10
1035Spain2025-09-19
1036Brazil2025-09-29
1037United Kingdom2025-09-14
1038Canada2025-09-28
1039Argentina2025-09-09
1040Argentina2025-09-15
1041Canada2025-09-17
1042Italy2025-10-05
1043Argentina2025-09-28
1044Japan2025-10-06
1045Germany2025-09-19
1046United Kingdom2025-09-07
1047Germany2025-09-21
1048India2025-10-01
1049Spain2025-10-06

On-Demand Data

NameIdCountryDate
Emily O Caudy1000Spain2025-09-13
James V Ruta1001United Kingdom2025-09-26
Mayumi J Gillian1002Russia2025-10-03
Isabel A Schemmer1003India2025-10-03
Costa L Wieser1004Brazil2025-09-14
Morrow C Paprocki1005Russia2025-09-09
Octavia J Tollner1006India2025-09-25
Ashley T Morasca1007Argentina2025-09-07
Johnson E Kolmetz1008Argentina2025-09-23
Alejandro L Maclead1009Argentina2025-10-02
Cody R Caldarera1010Spain2025-09-29
Costa A Kolmetz1011Australia2025-09-30
Tony F Royster1012Japan2025-10-06
David N Oldroyd1013Argentina2025-09-24
Tony C Malet1014Australia2025-09-21
Munro T Campain1015Japan2025-09-12
Juan P Wieser1016Germany2025-09-22
Julie U Wieser1017Germany2025-09-26
Salvatore I Inouye1018India2025-10-06
Adams U Nestle1019Japan2025-09-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia N VenereJapanElwin Sharvill NEGOTIATION
Smith E GauchoIndiaAsiya Javayant RENEWAL
Leon L IturbideItalyXuxue Feng QUALIFIED
Mayumi F CampainBrazilStephen Shaw NEGOTIATION
Maisha H RoysterBrazilElwin Sharvill QUALIFIED
Clifford R RimFranceBernardo Dominic RENEWAL
Greenwood U StockhamFranceOnyama Limba NEGOTIATION
Greenwood E MaletGermanyBernardo Dominic QUALIFIED
Ricardo Y OstroskyItalyBernardo Dominic UNQUALIFIED
Morrow W RimRussiaXuxue Feng RENEWAL
Rodrigues S RulapaughCanadaElwin Sharvill QUALIFIED
Darci V IturbideItalyElwin Sharvill NEGOTIATION
Alejandro D KolmetzAustraliaElwin Sharvill NEW
Smith O BriddickCanadaAmy Elsner NEGOTIATION
Cody N OstroskyIndiaIvan Magalhaes NEGOTIATION
Clifford A OldroydJapanIvan Magalhaes NEGOTIATION
Silvio Z DilliardItalyAnna Fali UNQUALIFIED
Rodrigues I DoeJapanAmy Elsner QUALIFIED
Deepesh C MarrierGermanyAsiya Javayant NEW
Maisha X RimCanadaAmy Elsner NEGOTIATION
Nicolas V SlusarskiSpainIoni Bowcher PROPOSAL
Cody O SlusarskiSpainAnna Fali RENEWAL
Wickens T SlusarskiFranceXuxue Feng NEGOTIATION
Jennifer P ButtCanadaXuxue Feng NEW
Clifford C SchemmerArgentinaElwin Sharvill NEGOTIATION
Munro H NestleGermanyAmy Elsner NEGOTIATION
Darci R KolmetzBrazilOnyama Limba UNQUALIFIED
Adams C StensethGermanyIvan Magalhaes NEW
Jones Q TollnerArgentinaBernardo Dominic QUALIFIED
Johnson Z RutaCanadaOnyama Limba UNQUALIFIED
Smith V VenereGermanyAsiya Javayant UNQUALIFIED
Chavez Y ShinkoBrazilIoni Bowcher PROPOSAL
Aditya G TollnerIndiaIoni Bowcher NEGOTIATION
Murillo Y WieserIndiaAmy Elsner RENEWAL
Greenwood H FollerSpainBernardo Dominic NEGOTIATION
Stacey C RoysterCanadaIvan Magalhaes RENEWAL
Ivar O WhobreyFranceOnyama Limba NEGOTIATION
Silvio P PoquetteCanadaAmy Elsner QUALIFIED
Cody N IturbideArgentinaAsiya Javayant UNQUALIFIED
Mayumi F GlickIndiaOnyama Limba QUALIFIED

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