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
Francesco I GauchoCanadaAsiya Javayant QUALIFIED
Deepesh S InouyeFranceIoni Bowcher UNQUALIFIED
Julie L WhobreyIndiaIvan Magalhaes UNQUALIFIED
Julie V NestleAustraliaStephen Shaw RENEWAL
Mujtaba Z OldroydFranceAsiya Javayant NEW
Claire I NestleItalyBernardo Dominic NEGOTIATION
Arvin B WaycottGermanyOnyama Limba PROPOSAL
Deepesh R GarufiBrazilIoni Bowcher NEW
James E FollerIndiaOnyama Limba RENEWAL
Izzy H DilliardAustraliaElwin Sharvill QUALIFIED
Munro A AlbaresRussiaIvan Magalhaes QUALIFIED
Ricardo L OldroydUnited KingdomAmy Elsner NEGOTIATION
Adams T MorascaSpainAmy Elsner RENEWAL
Jones Z FlosiBrazilAsiya Javayant RENEWAL
Salvatore T RutaRussiaAsiya Javayant RENEWAL
Maisha S DoeIndiaStephen Shaw PROPOSAL
Darci Y GillianBrazilElwin Sharvill PROPOSAL
Izzy J OldroydAustraliaXuxue Feng PROPOSAL
Stacey H NestleUnited KingdomXuxue Feng PROPOSAL
Mayumi D IturbideUnited KingdomOnyama Limba NEW
Mujtaba D FerenczSpainAnna Fali UNQUALIFIED
Leon H DilliardArgentinaStephen Shaw NEW
Jones X TollnerGermanyOnyama Limba PROPOSAL
Alejandro T RoysterFranceAnna Fali RENEWAL
Antonio A AlbaresIndiaAnna Fali QUALIFIED
Clifford Y AlbaresCanadaAmy Elsner UNQUALIFIED
Jefferson S SchemmerFranceAnna Fali UNQUALIFIED
Wickens R AlbaresCanadaAmy Elsner RENEWAL
Misaki W IturbideRussiaAmy Elsner NEGOTIATION
Kadeem I MacleadFranceAsiya Javayant RENEWAL
Nicolas O StensethFranceXuxue Feng NEGOTIATION
Rodrigues L DilliardRussiaElwin Sharvill UNQUALIFIED
Claire X GarufiArgentinaOnyama Limba PROPOSAL
David U VocelkaSpainIvan Magalhaes NEW
Clifford F TollnerFranceAnna Fali NEGOTIATION
Leja I RulapaughJapanAmy Elsner RENEWAL
Silvio V StensethGermanyIvan Magalhaes NEW
Arvin E NickaJapanStephen Shaw PROPOSAL
Kaitlin W ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Smith J MaletRussiaIvan Magalhaes RENEWAL
Juan C ChuiItalyAsiya Javayant QUALIFIED
Julie C MacleadJapanIoni Bowcher NEGOTIATION
Deepesh F RimUnited KingdomAnna Fali QUALIFIED
Julie S NickaGermanyAmy Elsner NEW
Octavia Q DilliardIndiaIvan Magalhaes RENEWAL
Izzy Q BologniaCanadaIoni Bowcher NEGOTIATION
Aditya K FlosiArgentinaIvan Magalhaes NEW
Francesco K WieserArgentinaXuxue Feng NEGOTIATION
Wickens R InouyeFranceIvan Magalhaes NEW
Mujtaba Q BowleyUnited KingdomBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio M AmigonFranceOnyama Limba RENEWAL
Nicolas L InouyeJapanAmy Elsner NEW
Darci T GarufiCanadaStephen Shaw NEGOTIATION
Leon X StockhamCanadaStephen Shaw NEGOTIATION
Morrow Y DoeFranceXuxue Feng UNQUALIFIED
Francesco X DoeAustraliaAsiya Javayant QUALIFIED
Jones U MarrierGermanyBernardo Dominic PROPOSAL
Greenwood B FerenczUnited KingdomXuxue Feng UNQUALIFIED
Misaki L KolmetzItalyElwin Sharvill RENEWAL
Emily D PoquetteSpainXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow V FerenczFrance2025-08-13Chemel, James L Cpa QUALIFIED68Amy Elsner
1001Jennifer N RulapaughArgentina2025-08-02Chapman, Ross E Esq QUALIFIED98Onyama Limba
1002Juan I GlickAustralia2025-07-30Dorl, James J Esq QUALIFIED73Stephen Shaw
1003Nicolas F BowleySpain2025-08-16Rousseaux, Michael Esq NEGOTIATION37Ivan Magalhaes
1004Arvin N RulapaughUnited Kingdom2025-08-21Feltz Printing Service PROPOSAL43Onyama Limba
1005Arvin C FerenczSpain2025-08-03Buckley Miller Wright UNQUALIFIED71Elwin Sharvill
1006Ashley T AmigonBrazil2025-07-28King, Christopher A Esq PROPOSAL39Amy Elsner
1007Claire F FollerArgentina2025-07-26Rousseaux, Michael Esq PROPOSAL12Elwin Sharvill
1008Cody F BologniaCanada2025-08-09Dorl, James J Esq NEGOTIATION60Onyama Limba
1009Salvatore J SchemmerSpain2025-08-11Truhlar And Truhlar Attys NEW54Onyama Limba
1010Cody Z MarrierAustralia2025-07-29Chapman, Ross E Esq NEW55Ivan Magalhaes
1011Munro G RimArgentina2025-08-18Rangoni Of Florence RENEWAL9Stephen Shaw
1012Jefferson Q RimGermany2025-08-22Buckley Miller Wright QUALIFIED64Amy Elsner
1013Jeanfrancois P FigeroaIndia2025-08-17Rousseaux, Michael Esq UNQUALIFIED90Ioni Bowcher
1014Faith L OstroskyBrazil2025-08-04Chapman, Ross E Esq RENEWAL58Amy Elsner
1015Adams L GauchoJapan2025-07-27Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1016Julie X CaudyAustralia2025-07-24Morlong Associates RENEWAL13Ivan Magalhaes
1017Arvin C MorascaJapan2025-08-08Rousseaux, Michael Esq NEW60Ivan Magalhaes
1018Clifford R AmigonArgentina2025-07-25Truhlar And Truhlar Attys NEGOTIATION11Elwin Sharvill
1019David W WaycottRussia2025-08-13Morlong Associates PROPOSAL59Ioni Bowcher
1020Aruna R MaletUnited Kingdom2025-08-13Commercial Press PROPOSAL68Ivan Magalhaes
1021Jefferson G DoeCanada2025-08-14Buckley Miller Wright UNQUALIFIED89Ioni Bowcher
1022James I MarrierArgentina2025-07-29Morlong Associates NEGOTIATION24Xuxue Feng
1023Johnson N GlickIndia2025-07-31Chapman, Ross E Esq RENEWAL54Amy Elsner
1024Aruna Y RoysterJapan2025-08-06Truhlar And Truhlar Attys RENEWAL5Anna Fali
1025Stacey Z MarrierJapan2025-08-20Rangoni Of Florence QUALIFIED50Xuxue Feng
1026Faith M CaudyIndia2025-08-12King, Christopher A Esq UNQUALIFIED13Ioni Bowcher
1027James J CaudyCanada2025-07-31Buckley Miller Wright PROPOSAL33Bernardo Dominic
1028Maisha B KuskoAustralia2025-08-01Rousseaux, Michael Esq RENEWAL79Onyama Limba
1029Misaki H VocelkaFrance2025-08-03Printing Dimensions NEW53Amy Elsner
1030Munro Z BriddickRussia2025-08-19Chanay, Jeffrey A Esq NEGOTIATION44Amy Elsner
1031Clifford N GarufiBrazil2025-08-20Buckley Miller Wright UNQUALIFIED74Ivan Magalhaes
1032Octavia J BowleyJapan2025-08-22Chemel, James L Cpa QUALIFIED18Stephen Shaw
1033Chavez C VenereAustralia2025-08-03Rangoni Of Florence PROPOSAL44Asiya Javayant
1034Stacey Z MaletGermany2025-08-18Chapman, Ross E Esq NEW37Ioni Bowcher
1035Rodrigues H TollnerGermany2025-08-11Rousseaux, Michael Esq QUALIFIED19Stephen Shaw
1036Alejandro Z ButtSpain2025-07-30Chemel, James L Cpa QUALIFIED71Onyama Limba
1037Arvin V RimRussia2025-07-25Dorl, James J Esq PROPOSAL81Ivan Magalhaes
1038Isabel W DoeFrance2025-08-19Feiner Bros PROPOSAL39Ivan Magalhaes
1039Wickens D DarakjyFrance2025-08-08Rangoni Of Florence NEGOTIATION32Onyama Limba
1040Wickens C FlosiSpain2025-08-13Buckley Miller Wright RENEWAL18Amy Elsner
1041Greenwood G VocelkaFrance2025-08-22Benton, John B Jr NEW37Elwin Sharvill
1042Tony D FigeroaArgentina2025-08-17King, Christopher A Esq PROPOSAL30Bernardo Dominic
1043Emily X MacleadCanada2025-08-03Rousseaux, Michael Esq RENEWAL5Amy Elsner
1044Ivar T FerenczGermany2025-08-11Rousseaux, Michael Esq RENEWAL45Xuxue Feng
1045Sinclair L KuskoSpain2025-08-03Rangoni Of Florence RENEWAL77Bernardo Dominic
1046Leon M FlosiGermany2025-08-06Dorl, James J Esq NEGOTIATION54Asiya Javayant
1047Salvatore L MaletCanada2025-07-30Morlong Associates RENEWAL62Ivan Magalhaes
1048Jefferson T StockhamArgentina2025-08-14Chemel, James L Cpa UNQUALIFIED92Ioni Bowcher
1049Smith W MorascaJapan2025-08-10Chanay, Jeffrey A Esq QUALIFIED57Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Morrow J SchemmerCanadaAnna Fali QUALIFIED
Smith N BologniaCanadaAnna Fali NEW
Mayumi O VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Alejandro Z ShinkoAustraliaAsiya Javayant NEW
Antonio D VenereFranceIvan Magalhaes NEGOTIATION
Smith N SlusarskiIndiaXuxue Feng UNQUALIFIED
Aditya Y SaylorsAustraliaXuxue Feng NEW
Munro J WieserCanadaIvan Magalhaes PROPOSAL
Adams O CaudyCanadaElwin Sharvill RENEWAL
Murillo F IturbideJapanElwin Sharvill NEW
Faith J MorascaFranceElwin Sharvill NEW
Ashley T RulapaughCanadaOnyama Limba NEW
Nicolas V CaldareraCanadaXuxue Feng NEW
Deepesh Y FerenczUnited KingdomElwin Sharvill QUALIFIED
David R DilliardSpainAmy Elsner PROPOSAL
Francesco F DoeCanadaXuxue Feng NEW
Murillo E ButtBrazilBernardo Dominic UNQUALIFIED
Tony U AlbaresFranceBernardo Dominic UNQUALIFIED
Ashley M WaycottRussiaElwin Sharvill NEW
Aika E DarakjyArgentinaAmy Elsner UNQUALIFIED
Antonio Q PaprockiBrazilAmy Elsner PROPOSAL
Jeanfrancois R WaycottCanadaAsiya Javayant PROPOSAL
Jones D WaycottFranceIvan Magalhaes PROPOSAL
Maria O KuskoIndiaAsiya Javayant NEW
Aditya Y StensethAustraliaAnna Fali UNQUALIFIED
Silvio E GauchoIndiaXuxue Feng NEW
Ivar Q GauchoAustraliaIvan Magalhaes NEW
Nicolas B PerinAustraliaAmy Elsner PROPOSAL
Aruna D MorascaIndiaAsiya Javayant PROPOSAL
Jeanfrancois C MaletArgentinaElwin Sharvill QUALIFIED
Adams O DilliardGermanyIoni Bowcher RENEWAL
Greenwood O DilliardCanadaElwin Sharvill RENEWAL
Silvio T VocelkaBrazilOnyama Limba PROPOSAL
Aditya H DarakjyAustraliaBernardo Dominic NEW
Misaki U MarrierRussiaElwin Sharvill PROPOSAL
Munro X OldroydAustraliaIvan Magalhaes RENEWAL
Sinclair P IturbideGermanyBernardo Dominic UNQUALIFIED
Kadeem D KuskoItalyAsiya Javayant PROPOSAL
Darci D MaletRussiaAnna Fali QUALIFIED
Clifford J SaylorsUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois S SlusarskiBrazilElwin Sharvill RENEWAL
Aruna K OstroskyFranceAsiya Javayant RENEWAL
Kadeem A BologniaUnited KingdomIvan Magalhaes QUALIFIED
Jennifer I ShinkoUnited KingdomAnna Fali NEGOTIATION
Rodrigues L VocelkaCanadaAsiya Javayant QUALIFIED
Faith E OstroskyUnited KingdomStephen Shaw RENEWAL
Salvatore A PoquetteSpainOnyama Limba PROPOSAL
Maisha R RimSpainStephen Shaw QUALIFIED
Jefferson F KuskoBrazilStephen Shaw NEW
Rodrigues S OstroskyFranceStephen Shaw QUALIFIED
Frozen Columns
Name
Silvio W Ruta
Jones F Royster
Antonio Q Marrier
Costa J Maclead
Deepesh E Kolmetz
Leja S Doe
Maria A Gaucho
Aika A Saylors
Nicolas X Paprocki
Leja V Morasca
Wickens P Saylors
Sinclair B Marrier
Aditya F Ferencz
Mayumi W Rulapaugh
Izzy I Gaucho
Nicolas O Nicka
Cody U Garufi
Sinclair K Schemmer
Morrow R Caldarera
Jones M Venere
Misaki P Flosi
Morrow J Gaucho
Johnson A Waycott
Antonio P Kolmetz
Clifford J Malet
Nicolas P Shinko
Deepesh A Paprocki
Nicolas T Dilliard
Leon X Kusko
Izzy Y Whobrey
Juan J Perin
Ricardo G Venere
Costa C Marrier
Misaki P Darakjy
Mujtaba H Amigon
Salvatore M Stockham
Maria V Marrier
Faith B Glick
Silvio J Amigon
Johnson T Rulapaugh
Jones C Glick
Munro S Bolognia
Mujtaba J Rim
Sinclair K Perin
Maria K Rim
David U Darakjy
Leja Z Ruta
Cody L Flosi
Jennifer V Malet
Francesco J Doe
IdCountryDate
1000United Kingdom2025-08-06
1001India2025-07-30
1002Germany2025-07-29
1003United Kingdom2025-07-25
1004Brazil2025-08-05
1005Australia2025-08-20
1006Spain2025-08-16
1007Germany2025-08-17
1008Brazil2025-08-12
1009India2025-07-29
1010Germany2025-08-17
1011Italy2025-08-07
1012United Kingdom2025-08-13
1013Australia2025-08-02
1014Japan2025-08-06
1015Argentina2025-08-02
1016Spain2025-08-12
1017Japan2025-07-24
1018Italy2025-08-09
1019Brazil2025-08-08
1020Italy2025-08-10
1021Brazil2025-07-30
1022Argentina2025-08-06
1023Brazil2025-07-26
1024United Kingdom2025-08-17
1025Russia2025-07-31
1026Spain2025-08-10
1027Italy2025-07-24
1028Germany2025-08-05
1029France2025-08-13
1030Germany2025-08-06
1031Canada2025-07-27
1032Brazil2025-08-03
1033Argentina2025-08-07
1034Australia2025-08-20
1035Brazil2025-07-24
1036Argentina2025-07-27
1037Spain2025-08-08
1038Italy2025-08-10
1039Italy2025-08-06
1040United Kingdom2025-08-04
1041United Kingdom2025-08-10
1042India2025-07-31
1043Argentina2025-08-15
1044United Kingdom2025-08-09
1045Spain2025-08-12
1046Russia2025-08-09
1047Spain2025-08-22
1048Russia2025-08-13
1049France2025-08-13

On-Demand Data

NameIdCountryDate
Jones V Oldroyd1000Australia2025-08-05
Darci W Wieser1001Japan2025-08-18
Emily E Caldarera1002Brazil2025-08-22
Clifford H Shinko1003Russia2025-07-30
Ashley M Dilliard1004United Kingdom2025-08-01
Isabel R Shinko1005Italy2025-08-09
Aika K Morasca1006Brazil2025-07-29
Chavez I Rim1007Brazil2025-07-31
Salvatore J Briddick1008Spain2025-08-10
Wickens N Glick1009Italy2025-07-28
Aditya X Marrier1010Italy2025-07-25
Alejandro E Royster1011Argentina2025-08-01
Deepesh C Bowley1012France2025-08-15
Clifford E Inouye1013Brazil2025-08-18
Leon H Kolmetz1014Australia2025-08-18
Kaitlin H Waycott1015United Kingdom2025-08-05
Silvio W Albares1016Germany2025-08-20
Greenwood E Iturbide1017Argentina2025-08-09
Silvio I Morasca1018Japan2025-08-15
Kadeem D Gillian1019India2025-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Z OstroskyRussiaXuxue Feng RENEWAL
Leon N DoeAustraliaElwin Sharvill NEGOTIATION
Darci O KuskoJapanBernardo Dominic RENEWAL
Stacey D DoeGermanyStephen Shaw QUALIFIED
Jones W PoquetteArgentinaIvan Magalhaes QUALIFIED
Antonio D CaldareraSpainOnyama Limba NEGOTIATION
James H CaudyFranceStephen Shaw NEGOTIATION
Silvio B RulapaughSpainAnna Fali QUALIFIED
Silvio F ButtGermanyIoni Bowcher NEW
Isabel J ShinkoBrazilAsiya Javayant UNQUALIFIED
Silvio K SergiGermanyBernardo Dominic PROPOSAL
Faith J RoysterFranceAsiya Javayant RENEWAL
Alejandro F VocelkaCanadaAmy Elsner UNQUALIFIED
Stacey A MaletItalyAnna Fali PROPOSAL
Alejandro U PaprockiCanadaIoni Bowcher UNQUALIFIED
Isabel L BriddickArgentinaOnyama Limba NEW
Smith M MorascaIndiaAmy Elsner NEGOTIATION
Cody K CaldareraRussiaStephen Shaw RENEWAL
Jefferson S DilliardRussiaStephen Shaw UNQUALIFIED
Murillo P DoeSpainIoni Bowcher QUALIFIED
Sinclair X RulapaughBrazilXuxue Feng NEGOTIATION
Misaki O IturbideCanadaAmy Elsner PROPOSAL
Sinclair L CaldareraIndiaBernardo Dominic QUALIFIED
Ashley Z KolmetzBrazilAmy Elsner PROPOSAL
Deepesh D PaprockiJapanAmy Elsner NEGOTIATION
Jeanfrancois W WaycottItalyXuxue Feng RENEWAL
Leon S GauchoArgentinaIoni Bowcher QUALIFIED
Ashley T MaletBrazilOnyama Limba PROPOSAL
Aditya G RulapaughFranceXuxue Feng UNQUALIFIED
Izzy G TollnerFranceXuxue Feng NEGOTIATION
Ivar C SergiGermanyAnna Fali RENEWAL
Ivar J WieserAustraliaAmy Elsner PROPOSAL
Emily D GauchoIndiaBernardo Dominic QUALIFIED
Kaitlin N ShinkoGermanyXuxue Feng PROPOSAL
Murillo T DoeItalyAmy Elsner NEW
Cody T OstroskyCanadaIvan Magalhaes NEGOTIATION
Faith Z KolmetzUnited KingdomBernardo Dominic PROPOSAL
Aruna X FlosiItalyIvan Magalhaes PROPOSAL
Alejandro L GillianBrazilXuxue Feng RENEWAL
Deepesh A SergiFranceAmy Elsner 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>