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
Adams T CaudyItalyIoni Bowcher QUALIFIED
Francesco J FlosiUnited KingdomXuxue Feng UNQUALIFIED
Silvio R OstroskyCanadaIvan Magalhaes QUALIFIED
Costa T MaletGermanyXuxue Feng PROPOSAL
Silvio L MaletBrazilAmy Elsner RENEWAL
Smith H NickaCanadaIvan Magalhaes PROPOSAL
Maisha Q InouyeJapanStephen Shaw NEW
Maisha W IturbideItalyAmy Elsner NEGOTIATION
Arvin V FlosiCanadaXuxue Feng NEW
Maria A OldroydCanadaOnyama Limba NEGOTIATION
Sinclair Q DoeBrazilAsiya Javayant NEW
Claire X RoysterCanadaStephen Shaw NEW
Rodrigues U CaldareraBrazilAsiya Javayant PROPOSAL
Claire B DilliardCanadaBernardo Dominic PROPOSAL
Maria X OldroydAustraliaXuxue Feng NEW
Maisha M NestleGermanyIvan Magalhaes UNQUALIFIED
Morrow Q ButtAustraliaAmy Elsner RENEWAL
Rodrigues X KolmetzArgentinaOnyama Limba QUALIFIED
Isabel O KolmetzAustraliaElwin Sharvill RENEWAL
Izzy A ShinkoItalyAnna Fali QUALIFIED
Silvio J VenereUnited KingdomStephen Shaw NEGOTIATION
Leon O StockhamFranceAsiya Javayant QUALIFIED
Stacey I MaletArgentinaElwin Sharvill RENEWAL
Francesco O MarrierAustraliaIvan Magalhaes UNQUALIFIED
Isabel G DilliardGermanyStephen Shaw QUALIFIED
Munro L FlosiAustraliaElwin Sharvill RENEWAL
Jennifer X KolmetzCanadaAsiya Javayant RENEWAL
Wickens Q InouyeJapanIvan Magalhaes NEW
James I OldroydFranceAnna Fali NEGOTIATION
Leon W AmigonGermanyOnyama Limba RENEWAL
Misaki C ButtRussiaStephen Shaw QUALIFIED
Sinclair I ShinkoFranceAsiya Javayant UNQUALIFIED
Izzy J BriddickItalyAsiya Javayant RENEWAL
Misaki G DoeCanadaElwin Sharvill RENEWAL
Juan H StensethGermanyElwin Sharvill QUALIFIED
Maria Y ShinkoRussiaStephen Shaw NEW
Julie F MacleadRussiaStephen Shaw QUALIFIED
Aditya S SchemmerBrazilElwin Sharvill NEGOTIATION
Ivar O DoeCanadaOnyama Limba PROPOSAL
Sinclair J KolmetzAustraliaBernardo Dominic UNQUALIFIED
Sinclair O CaudyCanadaAsiya Javayant PROPOSAL
Jefferson E CampainCanadaAsiya Javayant NEW
Jefferson H DarakjyGermanyAsiya Javayant NEGOTIATION
Maisha D WaycottAustraliaAmy Elsner UNQUALIFIED
Alejandro T FlosiJapanBernardo Dominic PROPOSAL
Claire Q AmigonItalyStephen Shaw RENEWAL
Mayumi O AlbaresCanadaOnyama Limba UNQUALIFIED
Murillo E ChuiFranceAmy Elsner RENEWAL
Greenwood D StensethItalyIoni Bowcher PROPOSAL
Ivar M BowleyRussiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Ivar V CaldareraGermanyAnna Fali UNQUALIFIED
Isabel K OldroydFranceStephen Shaw UNQUALIFIED
Wickens F DarakjySpainAsiya Javayant NEW
Mujtaba O WhobreyItalyElwin Sharvill UNQUALIFIED
Ricardo Y PerinIndiaIoni Bowcher RENEWAL
Kadeem Y FigeroaUnited KingdomIoni Bowcher QUALIFIED
Murillo P OldroydGermanyIvan Magalhaes RENEWAL
Costa R OldroydItalyStephen Shaw QUALIFIED
Clifford U OldroydArgentinaIvan Magalhaes PROPOSAL
Leon Z PoquetteUnited KingdomAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones Z OstroskyUnited Kingdom2025-08-12Rangoni Of Florence QUALIFIED66Elwin Sharvill
1001Jeanfrancois B WieserCanada2025-08-16King, Christopher A Esq UNQUALIFIED37Ioni Bowcher
1002Claire E CaldareraRussia2025-07-28Dorl, James J Esq QUALIFIED25Anna Fali
1003Emily A OstroskyCanada2025-07-24Commercial Press NEGOTIATION47Asiya Javayant
1004Jones L KolmetzBrazil2025-07-28Commercial Press UNQUALIFIED17Ivan Magalhaes
1005Ricardo L MaletAustralia2025-07-22Feltz Printing Service UNQUALIFIED62Onyama Limba
1006Juan D RimGermany2025-07-30Morlong Associates NEW71Anna Fali
1007Clifford Y VocelkaRussia2025-08-15Truhlar And Truhlar Attys NEW32Elwin Sharvill
1008Darci K ShinkoIndia2025-08-08Rousseaux, Michael Esq NEGOTIATION7Ioni Bowcher
1009Alejandro U CaudyGermany2025-07-30Chapman, Ross E Esq RENEWAL87Elwin Sharvill
1010Julie L ChuiUnited Kingdom2025-08-07Chemel, James L Cpa QUALIFIED13Stephen Shaw
1011Jeanfrancois X IturbideFrance2025-08-09Truhlar And Truhlar Attys NEGOTIATION56Stephen Shaw
1012Julie J CampainFrance2025-07-30Benton, John B Jr PROPOSAL60Xuxue Feng
1013James K NestleGermany2025-07-27Feiner Bros RENEWAL65Amy Elsner
1014Ivar Z CampainItaly2025-07-29King, Christopher A Esq NEGOTIATION76Elwin Sharvill
1015Faith Q VocelkaJapan2025-07-26Chemel, James L Cpa NEGOTIATION53Xuxue Feng
1016Chavez Z StensethRussia2025-08-08Rangoni Of Florence UNQUALIFIED99Onyama Limba
1017Clifford A NestleAustralia2025-08-10Feltz Printing Service NEGOTIATION73Asiya Javayant
1018Aditya U MacleadCanada2025-07-24Rangoni Of Florence NEGOTIATION75Bernardo Dominic
1019Kadeem F CaudyBrazil2025-08-09Chemel, James L Cpa UNQUALIFIED62Ioni Bowcher
1020Deepesh Q TollnerUnited Kingdom2025-07-25Buckley Miller Wright RENEWAL97Amy Elsner
1021Isabel O FlosiArgentina2025-08-11Chapman, Ross E Esq RENEWAL74Bernardo Dominic
1022Ricardo Q PerinFrance2025-08-14Printing Dimensions NEGOTIATION79Elwin Sharvill
1023Chavez F MarrierCanada2025-08-01Printing Dimensions UNQUALIFIED97Onyama Limba
1024Octavia I RimCanada2025-07-26Buckley Miller Wright NEGOTIATION57Xuxue Feng
1025Wickens W ChuiCanada2025-07-19Buckley Miller Wright QUALIFIED1Onyama Limba
1026Sinclair Z BriddickItaly2025-08-11Buckley Miller Wright UNQUALIFIED10Xuxue Feng
1027Nicolas V WieserFrance2025-07-20Rousseaux, Michael Esq NEW47Anna Fali
1028Costa M VenereArgentina2025-07-27Rousseaux, Michael Esq NEGOTIATION46Elwin Sharvill
1029Kaitlin E IturbideIndia2025-08-05Chanay, Jeffrey A Esq NEGOTIATION62Stephen Shaw
1030James Q SchemmerRussia2025-07-21Morlong Associates UNQUALIFIED61Bernardo Dominic
1031Emily P RulapaughIndia2025-08-15Feiner Bros NEW89Amy Elsner
1032Munro M ChuiAustralia2025-07-31Rousseaux, Michael Esq NEW35Onyama Limba
1033Smith N OldroydArgentina2025-08-11Rangoni Of Florence QUALIFIED0Asiya Javayant
1034Costa D DilliardBrazil2025-08-03Benton, John B Jr RENEWAL95Stephen Shaw
1035Jeanfrancois W VocelkaCanada2025-08-11Chanay, Jeffrey A Esq NEGOTIATION6Ioni Bowcher
1036Kaitlin C SergiItaly2025-07-19Chemel, James L Cpa RENEWAL80Onyama Limba
1037Aditya M DarakjyUnited Kingdom2025-07-28Benton, John B Jr NEW9Amy Elsner
1038Maisha Z PerinGermany2025-07-19Rousseaux, Michael Esq PROPOSAL98Elwin Sharvill
1039Francesco V RulapaughCanada2025-07-25Truhlar And Truhlar Attys NEGOTIATION93Bernardo Dominic
1040Kadeem W TollnerFrance2025-08-09Chanay, Jeffrey A Esq QUALIFIED81Onyama Limba
1041Juan L ButtAustralia2025-08-05Benton, John B Jr NEW34Onyama Limba
1042Maria K MaletJapan2025-08-09Benton, John B Jr QUALIFIED78Stephen Shaw
1043Emily Z IturbideGermany2025-08-09Feiner Bros NEW43Onyama Limba
1044Leon M CampainSpain2025-07-31Chanay, Jeffrey A Esq PROPOSAL16Anna Fali
1045Salvatore U PoquetteIndia2025-08-02Buckley Miller Wright RENEWAL91Anna Fali
1046Jennifer B VocelkaIndia2025-08-16Rousseaux, Michael Esq QUALIFIED94Asiya Javayant
1047Juan N GarufiAustralia2025-08-06Rousseaux, Michael Esq QUALIFIED12Ioni Bowcher
1048Kaitlin N ShinkoAustralia2025-08-16Rangoni Of Florence NEGOTIATION67Ivan Magalhaes
1049Smith Y VenereIndia2025-07-22Rousseaux, Michael Esq UNQUALIFIED2Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Cody V SergiCanadaXuxue Feng PROPOSAL
Jones X MorascaFranceXuxue Feng RENEWAL
Antonio U SchemmerJapanXuxue Feng NEW
Munro I WaycottRussiaIoni Bowcher NEGOTIATION
Deepesh A StensethSpainIvan Magalhaes QUALIFIED
Nicolas Y FerenczArgentinaOnyama Limba RENEWAL
Salvatore L WieserAustraliaAsiya Javayant PROPOSAL
Nicolas U FlosiCanadaOnyama Limba QUALIFIED
Claire H CampainCanadaIvan Magalhaes NEW
Adams C GlickBrazilOnyama Limba RENEWAL
Sinclair J WaycottBrazilElwin Sharvill QUALIFIED
Leja R StockhamAustraliaAsiya Javayant QUALIFIED
Munro U GarufiCanadaAnna Fali PROPOSAL
Ashley Z WaycottJapanAmy Elsner QUALIFIED
Ivar T StockhamGermanyStephen Shaw NEW
Julie J ChuiItalyStephen Shaw QUALIFIED
James R VocelkaUnited KingdomAsiya Javayant RENEWAL
Mayumi G KolmetzFranceAmy Elsner NEGOTIATION
Murillo Q MarrierArgentinaAsiya Javayant NEW
Julie S MaletUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro W FollerFranceElwin Sharvill NEW
Arvin A KolmetzBrazilAmy Elsner QUALIFIED
Emily C OstroskyFranceBernardo Dominic RENEWAL
Rodrigues Z StockhamCanadaIoni Bowcher UNQUALIFIED
Ashley D SlusarskiItalyIoni Bowcher PROPOSAL
Emily H GauchoFranceAmy Elsner UNQUALIFIED
Johnson I RutaFranceBernardo Dominic NEGOTIATION
David Y WieserItalyBernardo Dominic QUALIFIED
Aditya L IturbideUnited KingdomAsiya Javayant PROPOSAL
Silvio F MaletBrazilIoni Bowcher UNQUALIFIED
Faith O PerinArgentinaAsiya Javayant QUALIFIED
Rodrigues F FigeroaArgentinaBernardo Dominic PROPOSAL
Jefferson F DoeJapanAnna Fali QUALIFIED
Claire A GlickUnited KingdomIoni Bowcher NEGOTIATION
Jones C BriddickBrazilBernardo Dominic UNQUALIFIED
Morrow A MacleadUnited KingdomAsiya Javayant NEW
Greenwood K RoysterFranceAmy Elsner QUALIFIED
Kadeem H ShinkoRussiaXuxue Feng NEGOTIATION
Kadeem L IturbideItalyAsiya Javayant NEW
Jennifer N RimSpainElwin Sharvill NEW
Emily S MaletArgentinaAnna Fali PROPOSAL
James A WhobreyAustraliaAmy Elsner UNQUALIFIED
Alejandro L ShinkoFranceAnna Fali NEGOTIATION
Jefferson T DoeCanadaOnyama Limba PROPOSAL
Aditya J GauchoCanadaOnyama Limba NEGOTIATION
Maria P CaudyItalyIvan Magalhaes PROPOSAL
Johnson I VocelkaUnited KingdomAnna Fali QUALIFIED
Antonio A AlbaresRussiaAsiya Javayant UNQUALIFIED
Ricardo L NestleBrazilXuxue Feng RENEWAL
Rodrigues C NickaIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Costa A Darakjy
Costa G Dilliard
Antonio O Nicka
Ricardo A Rim
Leja R Ferencz
David C Sergi
David E Ferencz
Costa H Butt
Aika V Kolmetz
Salvatore G Morasca
Leon L Schemmer
James L Venere
Murillo L Stenseth
Stacey U Kusko
Leon T Marrier
Stacey J Malet
Salvatore H Rim
Julie I Garufi
Alejandro S Schemmer
Clifford T Malet
Leja T Amigon
Aditya N Sergi
Maria Z Poquette
Faith B Sergi
Arvin L Perin
Kaitlin F Slusarski
Aika I Malet
Morrow E Gaucho
Antonio D Briddick
Juan L Gaucho
Jones F Glick
Kadeem Y Darakjy
Nicolas J Chui
Aika X Royster
Deepesh E Gaucho
Emily P Iturbide
Izzy R Tollner
Greenwood V Poquette
Silvio L Tollner
Jefferson V Kolmetz
Adams N Vocelka
Adams B Whobrey
Julie U Ferencz
Leja E Ostrosky
Murillo K Ferencz
Chavez K Dilliard
Octavia L Foller
Munro L Perin
Faith M Caudy
Jeanfrancois M Tollner
IdCountryDate
1000Spain2025-07-26
1001Australia2025-08-04
1002Germany2025-08-06
1003United Kingdom2025-07-29
1004Russia2025-08-16
1005Australia2025-07-31
1006United Kingdom2025-07-21
1007Japan2025-07-23
1008Russia2025-08-03
1009Italy2025-07-23
1010Brazil2025-08-01
1011Russia2025-08-05
1012France2025-07-28
1013Italy2025-08-13
1014Japan2025-08-09
1015Argentina2025-07-28
1016France2025-07-31
1017Australia2025-08-02
1018France2025-08-15
1019Canada2025-08-04
1020India2025-07-25
1021Canada2025-08-03
1022Canada2025-07-21
1023Russia2025-07-21
1024Russia2025-08-15
1025Canada2025-07-30
1026Argentina2025-07-25
1027Canada2025-08-05
1028France2025-07-24
1029Australia2025-08-05
1030Germany2025-07-27
1031France2025-08-01
1032Brazil2025-07-22
1033United Kingdom2025-08-03
1034Canada2025-08-09
1035Germany2025-07-30
1036Canada2025-08-10
1037United Kingdom2025-07-26
1038Italy2025-08-07
1039Russia2025-07-25
1040India2025-08-05
1041Russia2025-07-18
1042India2025-08-16
1043India2025-08-06
1044Australia2025-08-08
1045Canada2025-08-10
1046Germany2025-07-26
1047Argentina2025-08-11
1048Russia2025-08-13
1049Canada2025-07-20

On-Demand Data

NameIdCountryDate
Leja Z Schemmer1000Argentina2025-08-06
Julie H Ostrosky1001Italy2025-08-12
Kaitlin T Marrier1002Germany2025-08-01
Greenwood D Venere1003Australia2025-08-02
Julie X Vocelka1004Brazil2025-08-10
Wickens M Rulapaugh1005United Kingdom2025-08-02
Nicolas E Glick1006Argentina2025-07-30
Misaki R Iturbide1007Canada2025-08-02
Kadeem M Doe1008Canada2025-07-27
Claire Q Rulapaugh1009Australia2025-08-02
Maria X Bolognia1010Australia2025-08-05
Chavez Z Foller1011Russia2025-08-01
Leon V Gaucho1012France2025-08-14
Murillo X Gaucho1013France2025-08-04
Silvio H Foller1014Spain2025-07-18
Antonio M Iturbide1015Japan2025-08-10
Kadeem H Paprocki1016India2025-07-19
Julie C Paprocki1017Spain2025-07-20
Salvatore B Dilliard1018Italy2025-07-19
Antonio C Ruta1019India2025-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford N MarrierGermanyAsiya Javayant NEW
Ashley I RoysterRussiaAmy Elsner PROPOSAL
Morrow K PoquetteIndiaAsiya Javayant RENEWAL
Octavia L AmigonAustraliaIoni Bowcher NEGOTIATION
Silvio R BowleyBrazilBernardo Dominic UNQUALIFIED
Isabel J SergiSpainXuxue Feng RENEWAL
Aditya M DilliardFranceStephen Shaw UNQUALIFIED
Claire X ShinkoCanadaAnna Fali RENEWAL
Clifford Y MarrierUnited KingdomAmy Elsner UNQUALIFIED
Rodrigues K WieserItalyXuxue Feng QUALIFIED
Faith K CampainCanadaBernardo Dominic QUALIFIED
Johnson T OldroydFranceAmy Elsner QUALIFIED
Faith U FollerJapanAnna Fali NEGOTIATION
Maisha P ChuiSpainStephen Shaw NEW
Silvio E NestleItalyAsiya Javayant UNQUALIFIED
Mujtaba B RutaUnited KingdomIoni Bowcher NEW
Aditya P GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Juan E RulapaughBrazilXuxue Feng UNQUALIFIED
David U ButtUnited KingdomStephen Shaw RENEWAL
Jeanfrancois R MorascaArgentinaIvan Magalhaes RENEWAL
Leja E WhobreyJapanOnyama Limba NEGOTIATION
Faith K WaycottCanadaBernardo Dominic UNQUALIFIED
Sinclair O KuskoIndiaStephen Shaw RENEWAL
Kadeem R GlickIndiaAnna Fali PROPOSAL
Maria K AlbaresFranceElwin Sharvill NEGOTIATION
Rodrigues J DilliardItalyElwin Sharvill NEGOTIATION
Kadeem T OstroskyGermanyOnyama Limba UNQUALIFIED
Rodrigues G AlbaresGermanyAsiya Javayant NEW
Smith P VenereUnited KingdomXuxue Feng NEGOTIATION
Aika V StensethJapanOnyama Limba NEGOTIATION
Julie P RimCanadaAsiya Javayant RENEWAL
Julie X DarakjyUnited KingdomAmy Elsner RENEWAL
Julie A MacleadGermanyStephen Shaw QUALIFIED
Clifford W BriddickSpainOnyama Limba QUALIFIED
Francesco V WieserAustraliaStephen Shaw QUALIFIED
Costa T FerenczIndiaIoni Bowcher QUALIFIED
Kadeem Z WaycottIndiaIoni Bowcher PROPOSAL
Stacey A RoysterIndiaAnna Fali PROPOSAL
Silvio B BowleyArgentinaIoni Bowcher NEGOTIATION
Ashley M SlusarskiIndiaAnna Fali 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>