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
Tony C BriddickFranceIoni Bowcher PROPOSAL
Smith S BowleyUnited KingdomAsiya Javayant QUALIFIED
Nicolas F NestleSpainIvan Magalhaes NEGOTIATION
Smith H CampainUnited KingdomIvan Magalhaes QUALIFIED
Aruna Z SlusarskiAustraliaXuxue Feng RENEWAL
Jeanfrancois S GlickAustraliaXuxue Feng RENEWAL
Stacey P MaletAustraliaAnna Fali PROPOSAL
Mujtaba U MaletIndiaAsiya Javayant RENEWAL
Johnson O BologniaBrazilAnna Fali PROPOSAL
Julie E GauchoFranceAnna Fali PROPOSAL
Aika U GillianSpainIoni Bowcher RENEWAL
Morrow I PerinUnited KingdomOnyama Limba NEGOTIATION
Francesco B BowleyCanadaOnyama Limba NEGOTIATION
Jones W DilliardSpainAnna Fali RENEWAL
Arvin Z AmigonFranceIoni Bowcher UNQUALIFIED
Francesco J WhobreyRussiaAsiya Javayant UNQUALIFIED
Maria X MaletArgentinaAmy Elsner NEGOTIATION
Murillo Q InouyeRussiaAmy Elsner QUALIFIED
Maria R SaylorsUnited KingdomStephen Shaw NEGOTIATION
Izzy J InouyeIndiaStephen Shaw RENEWAL
Antonio M FlosiArgentinaStephen Shaw PROPOSAL
Jones J WieserBrazilIoni Bowcher PROPOSAL
Maisha Q MacleadBrazilIvan Magalhaes UNQUALIFIED
Emily D AmigonCanadaAsiya Javayant UNQUALIFIED
Stacey B WaycottGermanyAnna Fali NEGOTIATION
Munro W RoysterArgentinaElwin Sharvill NEGOTIATION
Juan A KuskoGermanyIvan Magalhaes UNQUALIFIED
Faith B PoquetteGermanyXuxue Feng NEW
Darci B MorascaAustraliaStephen Shaw NEGOTIATION
Francesco U RulapaughBrazilBernardo Dominic NEW
Misaki W KolmetzGermanyStephen Shaw RENEWAL
Salvatore V CaudyAustraliaOnyama Limba QUALIFIED
Silvio K GauchoGermanyBernardo Dominic QUALIFIED
Morrow I FigeroaRussiaOnyama Limba UNQUALIFIED
Isabel K GillianItalyElwin Sharvill RENEWAL
Salvatore E InouyeRussiaIvan Magalhaes NEGOTIATION
Ashley X SchemmerBrazilElwin Sharvill QUALIFIED
Deepesh B MaletFranceXuxue Feng NEW
Chavez K MaletAustraliaIvan Magalhaes PROPOSAL
Tony L MorascaRussiaAnna Fali UNQUALIFIED
Murillo Y ShinkoAustraliaOnyama Limba RENEWAL
Salvatore G VocelkaAustraliaAnna Fali UNQUALIFIED
Aditya J AlbaresJapanAsiya Javayant RENEWAL
Ricardo Z KuskoItalyOnyama Limba QUALIFIED
Smith P MacleadUnited KingdomIoni Bowcher RENEWAL
Clifford K SergiItalyAnna Fali RENEWAL
Mujtaba F GlickBrazilBernardo Dominic NEW
Octavia R KuskoSpainAmy Elsner QUALIFIED
Francesco B MorascaIndiaBernardo Dominic NEW
Octavia W CaldareraArgentinaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Izzy Z KuskoGermanyOnyama Limba PROPOSAL
Arvin F GillianUnited KingdomOnyama Limba RENEWAL
Ricardo W MaletJapanOnyama Limba RENEWAL
David V RoysterSpainOnyama Limba PROPOSAL
Rodrigues E OstroskyArgentinaAmy Elsner RENEWAL
Sinclair J NestleAustraliaBernardo Dominic UNQUALIFIED
Faith A InouyeArgentinaElwin Sharvill NEGOTIATION
Rodrigues K FlosiCanadaElwin Sharvill QUALIFIED
Leja D MaletGermanyElwin Sharvill UNQUALIFIED
Izzy G NestleCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens D GarufiAustralia2025-08-08Chemel, James L Cpa QUALIFIED95Elwin Sharvill
1001Costa D MaletJapan2025-08-15King, Christopher A Esq RENEWAL32Ioni Bowcher
1002Claire F KuskoIndia2025-07-29Dorl, James J Esq RENEWAL30Anna Fali
1003Faith U MaletBrazil2025-08-21Feiner Bros RENEWAL34Bernardo Dominic
1004Smith G DarakjyFrance2025-07-31Feiner Bros RENEWAL64Bernardo Dominic
1005Jones V OstroskyUnited Kingdom2025-08-23King, Christopher A Esq RENEWAL81Elwin Sharvill
1006Antonio L FollerCanada2025-08-05Benton, John B Jr UNQUALIFIED85Amy Elsner
1007Julie D RimAustralia2025-08-19Chemel, James L Cpa PROPOSAL31Xuxue Feng
1008Stacey N MorascaRussia2025-08-11Chapman, Ross E Esq NEGOTIATION75Amy Elsner
1009Nicolas L SergiSpain2025-08-14Rousseaux, Michael Esq PROPOSAL57Asiya Javayant
1010Arvin H NickaArgentina2025-08-16Morlong Associates QUALIFIED59Anna Fali
1011Nicolas N OldroydSpain2025-08-06Dorl, James J Esq RENEWAL95Ioni Bowcher
1012Sinclair X KolmetzJapan2025-08-04Chapman, Ross E Esq NEGOTIATION97Elwin Sharvill
1013Octavia V MacleadCanada2025-08-10Rangoni Of Florence NEGOTIATION70Elwin Sharvill
1014Antonio P RoysterBrazil2025-07-25Commercial Press PROPOSAL52Elwin Sharvill
1015Maisha M BriddickAustralia2025-08-16King, Christopher A Esq RENEWAL36Ivan Magalhaes
1016Jeanfrancois W DoeFrance2025-08-08Rangoni Of Florence QUALIFIED41Stephen Shaw
1017Chavez T VocelkaArgentina2025-08-16Chanay, Jeffrey A Esq PROPOSAL35Stephen Shaw
1018Ivar R FerenczItaly2025-08-02Morlong Associates QUALIFIED21Elwin Sharvill
1019Kadeem M StockhamAustralia2025-08-21Rangoni Of Florence PROPOSAL26Anna Fali
1020Francesco Z BowleyRussia2025-08-15Feltz Printing Service QUALIFIED77Ivan Magalhaes
1021Johnson H OstroskyCanada2025-08-11Chemel, James L Cpa QUALIFIED3Xuxue Feng
1022Ricardo L VocelkaIndia2025-08-11Printing Dimensions NEW90Elwin Sharvill
1023Deepesh S GauchoItaly2025-08-14Commercial Press NEW26Asiya Javayant
1024Maisha B SaylorsCanada2025-08-16Rangoni Of Florence RENEWAL77Ivan Magalhaes
1025Aruna S DilliardCanada2025-07-28Benton, John B Jr PROPOSAL98Bernardo Dominic
1026Sinclair O PerinItaly2025-08-09Rousseaux, Michael Esq QUALIFIED88Stephen Shaw
1027Ashley O DarakjyArgentina2025-08-06Morlong Associates NEGOTIATION86Ivan Magalhaes
1028Johnson W IturbideJapan2025-08-16Printing Dimensions RENEWAL72Elwin Sharvill
1029Murillo L TollnerJapan2025-08-16Buckley Miller Wright NEW40Ivan Magalhaes
1030Cody Y FerenczCanada2025-07-29Chanay, Jeffrey A Esq NEW12Ivan Magalhaes
1031Alejandro A CaldareraArgentina2025-08-20Feiner Bros RENEWAL86Anna Fali
1032Octavia O VenereArgentina2025-08-03Feiner Bros PROPOSAL87Ivan Magalhaes
1033Morrow V CaudyJapan2025-08-07Chemel, James L Cpa UNQUALIFIED56Xuxue Feng
1034Emily Z SchemmerRussia2025-07-27Benton, John B Jr NEGOTIATION93Anna Fali
1035Johnson B NickaJapan2025-08-22Chanay, Jeffrey A Esq PROPOSAL45Elwin Sharvill
1036Smith F AlbaresJapan2025-07-31Chemel, James L Cpa NEW33Elwin Sharvill
1037Kadeem A MaletIndia2025-07-27Rangoni Of Florence NEW57Elwin Sharvill
1038Mayumi D VenereIndia2025-08-23Truhlar And Truhlar Attys NEW73Asiya Javayant
1039Smith R RoysterJapan2025-07-29Truhlar And Truhlar Attys QUALIFIED97Ioni Bowcher
1040Darci C VenereCanada2025-07-31Truhlar And Truhlar Attys UNQUALIFIED51Amy Elsner
1041Jeanfrancois Z InouyeFrance2025-08-13Printing Dimensions QUALIFIED25Bernardo Dominic
1042Jefferson I BriddickUnited Kingdom2025-08-20Morlong Associates RENEWAL53Amy Elsner
1043Kaitlin F DilliardItaly2025-07-29Chapman, Ross E Esq PROPOSAL26Onyama Limba
1044Alejandro D SchemmerIndia2025-07-30Feiner Bros PROPOSAL25Onyama Limba
1045Ivar T WieserArgentina2025-08-14Dorl, James J Esq UNQUALIFIED13Elwin Sharvill
1046Faith M MaletItaly2025-08-10Chemel, James L Cpa QUALIFIED86Stephen Shaw
1047Kaitlin V NestleIndia2025-08-20Rangoni Of Florence PROPOSAL33Ioni Bowcher
1048Kaitlin F BriddickCanada2025-07-31Commercial Press NEGOTIATION68Stephen Shaw
1049Francesco K GarufiSpain2025-07-27Morlong Associates QUALIFIED78Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Leon O ChuiUnited KingdomStephen Shaw NEGOTIATION
David W KuskoBrazilElwin Sharvill NEGOTIATION
Darci Y PerinFranceIvan Magalhaes QUALIFIED
Julie H GillianJapanAsiya Javayant QUALIFIED
Silvio W TollnerArgentinaBernardo Dominic RENEWAL
Wickens H MaletGermanyAnna Fali NEGOTIATION
Jennifer X FollerArgentinaOnyama Limba PROPOSAL
Kadeem O SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Johnson Z AlbaresItalyAmy Elsner PROPOSAL
Wickens Q FlosiFranceAmy Elsner NEGOTIATION
Julie O MarrierArgentinaXuxue Feng NEW
Jones U KuskoRussiaOnyama Limba NEW
James O MorascaBrazilXuxue Feng NEGOTIATION
Arvin F KolmetzIndiaXuxue Feng NEGOTIATION
Nicolas K BowleyIndiaAmy Elsner RENEWAL
Salvatore O MarrierFranceXuxue Feng NEGOTIATION
Clifford H VocelkaGermanyXuxue Feng RENEWAL
Mayumi D SlusarskiItalyStephen Shaw UNQUALIFIED
Francesco J GillianAustraliaIvan Magalhaes UNQUALIFIED
Faith N NestleAustraliaIvan Magalhaes PROPOSAL
Clifford Z ChuiUnited KingdomXuxue Feng RENEWAL
Darci P FerenczGermanyAnna Fali UNQUALIFIED
Juan K VocelkaRussiaAnna Fali UNQUALIFIED
Antonio E CampainAustraliaElwin Sharvill PROPOSAL
Faith H InouyeCanadaAnna Fali RENEWAL
Ashley V NickaSpainAmy Elsner NEGOTIATION
Jeanfrancois G SaylorsRussiaAmy Elsner NEGOTIATION
Sinclair J GauchoJapanXuxue Feng RENEWAL
Jennifer F AlbaresFranceAnna Fali PROPOSAL
Darci K ButtJapanIvan Magalhaes UNQUALIFIED
Julie P DarakjyItalyIoni Bowcher RENEWAL
Ricardo S RoysterUnited KingdomBernardo Dominic NEW
Aika E DarakjyIndiaBernardo Dominic RENEWAL
Juan W KuskoBrazilAnna Fali UNQUALIFIED
Juan P BologniaSpainAmy Elsner QUALIFIED
Stacey E ShinkoFranceOnyama Limba PROPOSAL
Antonio N SaylorsUnited KingdomXuxue Feng QUALIFIED
James M CaudyJapanOnyama Limba NEGOTIATION
Clifford X RulapaughAustraliaOnyama Limba UNQUALIFIED
Adams Y CampainBrazilAnna Fali RENEWAL
Morrow F DoeAustraliaStephen Shaw UNQUALIFIED
Clifford L WhobreyAustraliaAnna Fali NEGOTIATION
Mujtaba E WaycottFranceOnyama Limba QUALIFIED
Arvin O DilliardArgentinaAsiya Javayant NEGOTIATION
Leja Z MaletItalyOnyama Limba NEW
Adams K WaycottRussiaStephen Shaw QUALIFIED
Sinclair A FlosiIndiaElwin Sharvill PROPOSAL
Smith G MarrierItalyStephen Shaw NEW
Deepesh A TollnerGermanyXuxue Feng NEW
Isabel A AlbaresCanadaAsiya Javayant RENEWAL
Frozen Columns
Name
Greenwood E Waycott
Alejandro A Gaucho
Munro D Paprocki
Aditya Q Butt
Alejandro Y Slusarski
Salvatore R Figeroa
Jennifer B Chui
Antonio B Ostrosky
Jones S Inouye
James C Nestle
Julie D Venere
Arvin Z Amigon
Jennifer S Maclead
Adams D Caudy
Claire K Royster
Adams B Kusko
Smith H Sergi
Rodrigues O Ostrosky
Misaki J Schemmer
Julie O Kusko
Isabel C Schemmer
Nicolas B Ostrosky
Arvin W Shinko
Stacey V Malet
Jennifer Z Saylors
Alejandro S Morasca
Darci R Slusarski
Leja M Campain
Aditya W Ferencz
Alejandro Z Stockham
Francesco X Oldroyd
Juan O Glick
Ivar W Rulapaugh
Aditya T Schemmer
Juan J Dilliard
Antonio N Vocelka
Maisha W Malet
Francesco R Wieser
Faith X Nicka
Jennifer J Bowley
Murillo M Paprocki
Sinclair Z Venere
Kaitlin I Glick
Mujtaba Q Waycott
Adams D Venere
Antonio T Briddick
Deepesh J Slusarski
Cody O Slusarski
Munro Q Perin
Claire S Foller
IdCountryDate
1000Brazil2025-07-25
1001Russia2025-08-06
1002Spain2025-08-04
1003Japan2025-07-27
1004Japan2025-07-29
1005Canada2025-07-31
1006Germany2025-07-27
1007Russia2025-08-08
1008Russia2025-08-11
1009India2025-08-05
1010Spain2025-08-16
1011Italy2025-08-06
1012Australia2025-08-09
1013India2025-08-10
1014United Kingdom2025-08-07
1015Russia2025-08-14
1016Argentina2025-08-20
1017Australia2025-08-13
1018Brazil2025-08-23
1019Germany2025-08-14
1020France2025-08-05
1021Canada2025-08-13
1022Brazil2025-08-19
1023United Kingdom2025-08-17
1024Italy2025-08-13
1025India2025-08-04
1026Brazil2025-08-06
1027Australia2025-08-03
1028United Kingdom2025-08-12
1029Russia2025-08-12
1030Australia2025-08-17
1031Russia2025-08-12
1032Italy2025-07-31
1033Japan2025-08-15
1034Brazil2025-08-23
1035Brazil2025-08-15
1036Germany2025-08-06
1037United Kingdom2025-08-07
1038Japan2025-08-10
1039Canada2025-08-16
1040Italy2025-08-05
1041Japan2025-07-27
1042Germany2025-08-07
1043Canada2025-07-30
1044Japan2025-07-31
1045France2025-07-27
1046Brazil2025-08-08
1047Brazil2025-08-19
1048India2025-08-11
1049Brazil2025-08-22

On-Demand Data

NameIdCountryDate
Silvio Q Flosi1000Canada2025-08-01
Clifford H Campain1001United Kingdom2025-07-25
Jeanfrancois Z Foller1002Australia2025-08-12
Aruna Y Dilliard1003United Kingdom2025-08-03
Murillo H Garufi1004United Kingdom2025-08-07
Johnson V Caudy1005United Kingdom2025-08-13
Isabel G Rulapaugh1006France2025-07-25
Smith W Iturbide1007United Kingdom2025-08-21
Aruna Q Amigon1008Canada2025-08-20
Antonio R Slusarski1009Australia2025-08-18
Jennifer G Bolognia1010Australia2025-08-17
Ricardo L Vocelka1011Japan2025-08-16
David E Nicka1012France2025-08-02
Maisha Y Doe1013Russia2025-08-17
Alejandro X Ruta1014Brazil2025-08-17
Jennifer H Gillian1015Brazil2025-08-10
Isabel T Butt1016Russia2025-08-11
Smith W Ferencz1017Japan2025-08-20
Jefferson R Ferencz1018France2025-08-19
Claire L Nicka1019France2025-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio A SlusarskiAustraliaOnyama Limba RENEWAL
Ashley J BowleyItalyBernardo Dominic NEW
Aruna L MacleadArgentinaXuxue Feng UNQUALIFIED
Ivar T PerinAustraliaAsiya Javayant NEGOTIATION
Wickens D TollnerGermanyBernardo Dominic UNQUALIFIED
Adams T GauchoGermanyIoni Bowcher UNQUALIFIED
Octavia F GauchoIndiaBernardo Dominic NEGOTIATION
Aruna L AlbaresItalyAmy Elsner UNQUALIFIED
Nicolas G VocelkaIndiaIvan Magalhaes NEW
Ashley S RulapaughRussiaAsiya Javayant NEW
Costa D KolmetzSpainAsiya Javayant UNQUALIFIED
Jeanfrancois P CaldareraItalyXuxue Feng NEW
Jennifer A WhobreyRussiaIvan Magalhaes NEGOTIATION
Aika X FigeroaBrazilAsiya Javayant RENEWAL
Johnson W GlickCanadaIvan Magalhaes QUALIFIED
Faith L NestleUnited KingdomAsiya Javayant QUALIFIED
Aruna R MaletAustraliaStephen Shaw RENEWAL
Maisha Q MorascaSpainIoni Bowcher NEGOTIATION
Kadeem Z CaudyUnited KingdomIoni Bowcher PROPOSAL
Misaki T FlosiIndiaIvan Magalhaes PROPOSAL
Misaki Z NestleRussiaBernardo Dominic PROPOSAL
Ashley F FerenczCanadaXuxue Feng QUALIFIED
Tony F StensethIndiaBernardo Dominic RENEWAL
Darci W AmigonUnited KingdomStephen Shaw PROPOSAL
Sinclair H ButtGermanyIvan Magalhaes QUALIFIED
Johnson E FigeroaCanadaIoni Bowcher QUALIFIED
Francesco J BriddickRussiaIoni Bowcher PROPOSAL
Francesco G ShinkoItalyStephen Shaw RENEWAL
Cody G GlickArgentinaStephen Shaw NEGOTIATION
Jones L KolmetzJapanAnna Fali NEGOTIATION
Rodrigues H RulapaughAustraliaAnna Fali NEW
Ricardo L PerinIndiaAnna Fali QUALIFIED
Maria K ChuiItalyAmy Elsner RENEWAL
Cody R TollnerRussiaIvan Magalhaes RENEWAL
Greenwood Q RimSpainAsiya Javayant PROPOSAL
Alejandro S NestleBrazilIoni Bowcher NEGOTIATION
Claire S RoysterSpainBernardo Dominic RENEWAL
Julie S VenereCanadaBernardo Dominic QUALIFIED
Munro I BowleyRussiaOnyama Limba NEGOTIATION
Costa N MarrierJapanAmy Elsner 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>