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
Rodrigues P NestleSpainIvan Magalhaes QUALIFIED
Aruna R NestleArgentinaBernardo Dominic NEGOTIATION
Ivar X DoeItalyAsiya Javayant NEGOTIATION
Chavez A CaudySpainAnna Fali NEGOTIATION
Clifford F MacleadIndiaIoni Bowcher RENEWAL
Jefferson W KolmetzJapanOnyama Limba NEW
Arvin B AlbaresArgentinaAmy Elsner PROPOSAL
Chavez G TollnerIndiaXuxue Feng NEW
Antonio X VocelkaAustraliaAsiya Javayant QUALIFIED
Clifford P MarrierGermanyOnyama Limba NEGOTIATION
Antonio T GarufiCanadaBernardo Dominic QUALIFIED
Jeanfrancois H DarakjyAustraliaStephen Shaw NEGOTIATION
Leja I SergiAustraliaAsiya Javayant PROPOSAL
David Q WhobreyAustraliaAnna Fali UNQUALIFIED
Ivar D MaletRussiaAsiya Javayant UNQUALIFIED
Isabel L PaprockiGermanyIvan Magalhaes PROPOSAL
Leja K MaletBrazilAmy Elsner NEGOTIATION
Stacey J FerenczUnited KingdomStephen Shaw PROPOSAL
Alejandro R GillianFranceElwin Sharvill UNQUALIFIED
Antonio Z WhobreyArgentinaIoni Bowcher NEGOTIATION
Nicolas X SlusarskiSpainXuxue Feng PROPOSAL
Jeanfrancois P ShinkoArgentinaXuxue Feng PROPOSAL
Chavez M RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Murillo M MaletCanadaOnyama Limba NEW
Kadeem O GauchoArgentinaElwin Sharvill QUALIFIED
Leja W WieserBrazilXuxue Feng QUALIFIED
Julie Q FigeroaIndiaIvan Magalhaes NEW
Mujtaba Q CaudyBrazilXuxue Feng NEGOTIATION
Clifford I ChuiArgentinaBernardo Dominic NEGOTIATION
Maria E PoquetteItalyAsiya Javayant UNQUALIFIED
Isabel G FerenczFranceBernardo Dominic NEW
Misaki Q WaycottArgentinaIvan Magalhaes NEW
Ivar J DoeSpainIvan Magalhaes UNQUALIFIED
Izzy V ChuiItalyStephen Shaw RENEWAL
Aruna Q PoquetteJapanStephen Shaw RENEWAL
Jennifer A OldroydUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba N AmigonSpainIoni Bowcher QUALIFIED
Misaki Z BriddickBrazilIvan Magalhaes NEW
Kadeem W CampainGermanyAnna Fali NEGOTIATION
Mujtaba A MaletCanadaStephen Shaw UNQUALIFIED
Claire P SlusarskiUnited KingdomAmy Elsner QUALIFIED
Kadeem W PaprockiJapanAnna Fali PROPOSAL
Deepesh J SergiArgentinaIoni Bowcher QUALIFIED
James E GauchoArgentinaAsiya Javayant NEGOTIATION
Kaitlin I RulapaughItalyBernardo Dominic PROPOSAL
Murillo V PoquetteAustraliaIvan Magalhaes NEGOTIATION
Juan D GauchoSpainAmy Elsner NEGOTIATION
Kaitlin R NickaGermanyOnyama Limba RENEWAL
Rodrigues L GlickCanadaXuxue Feng RENEWAL
Ivar I ShinkoAustraliaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore Q MaletUnited KingdomIoni Bowcher RENEWAL
Jefferson M AlbaresUnited KingdomXuxue Feng NEGOTIATION
Aditya Z VenereArgentinaElwin Sharvill PROPOSAL
Kadeem N RoysterArgentinaBernardo Dominic NEW
Sinclair Y GauchoSpainIoni Bowcher UNQUALIFIED
Mujtaba R TollnerAustraliaIvan Magalhaes RENEWAL
Jeanfrancois W GlickFranceBernardo Dominic PROPOSAL
Kaitlin D StensethCanadaElwin Sharvill RENEWAL
Ashley J StensethGermanyStephen Shaw QUALIFIED
Silvio O MaletAustraliaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio L StensethGermany2025-08-03King, Christopher A Esq RENEWAL93Anna Fali
1001Isabel S SlusarskiBrazil2025-08-05Dorl, James J Esq NEGOTIATION66Ioni Bowcher
1002Salvatore V MaletFrance2025-08-01Printing Dimensions NEGOTIATION22Elwin Sharvill
1003Adams B ButtAustralia2025-08-21Chapman, Ross E Esq NEGOTIATION27Ivan Magalhaes
1004Kadeem R GauchoArgentina2025-08-17Truhlar And Truhlar Attys NEGOTIATION40Stephen Shaw
1005Isabel S VocelkaUnited Kingdom2025-08-03Chemel, James L Cpa RENEWAL19Anna Fali
1006Murillo H FerenczJapan2025-08-09Printing Dimensions RENEWAL24Stephen Shaw
1007Salvatore S MaletUnited Kingdom2025-08-12King, Christopher A Esq RENEWAL40Ivan Magalhaes
1008Ashley L AlbaresSpain2025-08-05King, Christopher A Esq UNQUALIFIED72Ioni Bowcher
1009Kaitlin B FlosiBrazil2025-08-17Truhlar And Truhlar Attys QUALIFIED14Ivan Magalhaes
1010Sinclair A FigeroaFrance2025-08-27King, Christopher A Esq NEGOTIATION25Ioni Bowcher
1011Faith Q BologniaGermany2025-08-17Printing Dimensions NEW32Ivan Magalhaes
1012Chavez C GlickGermany2025-07-30Feiner Bros NEGOTIATION52Onyama Limba
1013Tony V PoquetteGermany2025-08-06Truhlar And Truhlar Attys NEGOTIATION15Onyama Limba
1014Ivar V MaletFrance2025-08-20King, Christopher A Esq QUALIFIED91Stephen Shaw
1015Rodrigues B FlosiIndia2025-08-24Truhlar And Truhlar Attys PROPOSAL72Onyama Limba
1016Misaki G FlosiBrazil2025-08-21Benton, John B Jr NEGOTIATION62Ioni Bowcher
1017Misaki N GauchoUnited Kingdom2025-08-02Chapman, Ross E Esq NEGOTIATION46Asiya Javayant
1018Isabel W CaudyJapan2025-08-10Benton, John B Jr NEW21Bernardo Dominic
1019Faith T WaycottRussia2025-08-11Buckley Miller Wright UNQUALIFIED52Bernardo Dominic
1020Aruna C ShinkoIndia2025-08-16Rangoni Of Florence RENEWAL69Ioni Bowcher
1021Octavia Z RimIndia2025-08-10Chapman, Ross E Esq PROPOSAL34Onyama Limba
1022Leja L DoeItaly2025-08-19Feiner Bros NEW27Anna Fali
1023Octavia H GarufiFrance2025-08-10Chanay, Jeffrey A Esq UNQUALIFIED10Ivan Magalhaes
1024Kaitlin P GillianRussia2025-08-23Truhlar And Truhlar Attys RENEWAL63Ivan Magalhaes
1025Nicolas Z OstroskyGermany2025-08-25Printing Dimensions UNQUALIFIED20Elwin Sharvill
1026Ashley K SlusarskiUnited Kingdom2025-08-02Printing Dimensions QUALIFIED77Ivan Magalhaes
1027Johnson P CaldareraCanada2025-08-16Feiner Bros RENEWAL99Bernardo Dominic
1028Greenwood S DarakjyCanada2025-08-26Morlong Associates NEW80Anna Fali
1029Aditya W FigeroaItaly2025-08-28Feltz Printing Service RENEWAL52Anna Fali
1030Clifford U IturbideJapan2025-07-31Buckley Miller Wright RENEWAL15Ivan Magalhaes
1031Smith L TollnerItaly2025-08-06Rangoni Of Florence UNQUALIFIED82Xuxue Feng
1032Isabel O VocelkaSpain2025-08-14Rousseaux, Michael Esq QUALIFIED34Anna Fali
1033Juan N RoysterRussia2025-08-18Chanay, Jeffrey A Esq NEGOTIATION91Anna Fali
1034Nicolas V GauchoSpain2025-08-25Morlong Associates UNQUALIFIED70Ivan Magalhaes
1035Maria R MacleadRussia2025-08-21Buckley Miller Wright UNQUALIFIED23Stephen Shaw
1036Costa E BowleyBrazil2025-08-17Morlong Associates PROPOSAL66Bernardo Dominic
1037Isabel E BriddickCanada2025-08-17Rangoni Of Florence QUALIFIED98Stephen Shaw
1038Alejandro N MacleadFrance2025-08-24Chanay, Jeffrey A Esq NEGOTIATION2Onyama Limba
1039Leon E WaycottBrazil2025-08-15Printing Dimensions QUALIFIED60Bernardo Dominic
1040Arvin L TollnerCanada2025-08-28Chapman, Ross E Esq QUALIFIED6Ioni Bowcher
1041Julie Y RimArgentina2025-08-05Rangoni Of Florence PROPOSAL22Ivan Magalhaes
1042Cody S FerenczUnited Kingdom2025-08-09Commercial Press PROPOSAL35Stephen Shaw
1043Jones U BologniaSpain2025-08-03Rousseaux, Michael Esq UNQUALIFIED65Amy Elsner
1044Ivar H SaylorsAustralia2025-08-28Morlong Associates NEW7Amy Elsner
1045Ashley X SergiIndia2025-08-17Rousseaux, Michael Esq NEW87Amy Elsner
1046Greenwood H FollerCanada2025-08-11Chemel, James L Cpa QUALIFIED5Stephen Shaw
1047Smith S PaprockiAustralia2025-08-21Buckley Miller Wright NEW79Bernardo Dominic
1048Emily B FigeroaJapan2025-08-25Rangoni Of Florence RENEWAL21Elwin Sharvill
1049Izzy T KuskoRussia2025-08-21Commercial Press QUALIFIED34Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Cody H FigeroaItalyIoni Bowcher QUALIFIED
Alejandro D StockhamAustraliaOnyama Limba RENEWAL
Deepesh X KolmetzFranceIoni Bowcher RENEWAL
James M NickaIndiaStephen Shaw NEGOTIATION
Sinclair T ShinkoAustraliaElwin Sharvill PROPOSAL
Smith G StensethRussiaAnna Fali RENEWAL
Octavia Y SaylorsJapanIvan Magalhaes QUALIFIED
Mujtaba N AlbaresFranceOnyama Limba NEW
Munro R StensethFranceAsiya Javayant UNQUALIFIED
Isabel H WaycottUnited KingdomOnyama Limba QUALIFIED
Antonio Z GlickUnited KingdomAnna Fali NEW
Jennifer B RulapaughJapanAsiya Javayant NEGOTIATION
Leon U StockhamSpainElwin Sharvill RENEWAL
Chavez D VocelkaSpainStephen Shaw PROPOSAL
Nicolas W GillianCanadaIvan Magalhaes PROPOSAL
Morrow L VenereUnited KingdomXuxue Feng NEGOTIATION
Adams F NickaFranceElwin Sharvill UNQUALIFIED
Nicolas Q FlosiIndiaBernardo Dominic QUALIFIED
Isabel O PoquetteAustraliaAsiya Javayant RENEWAL
Juan K ButtUnited KingdomAmy Elsner QUALIFIED
Silvio N AmigonFranceXuxue Feng NEGOTIATION
Ricardo N RoysterCanadaOnyama Limba RENEWAL
Isabel Y DilliardCanadaStephen Shaw RENEWAL
Jeanfrancois H SergiItalyIoni Bowcher PROPOSAL
Antonio C GarufiItalyAnna Fali NEW
Johnson Q OstroskyAustraliaBernardo Dominic QUALIFIED
James O WaycottUnited KingdomAmy Elsner NEW
Tony P SaylorsGermanyAmy Elsner RENEWAL
Faith G DilliardArgentinaElwin Sharvill UNQUALIFIED
Ashley F WaycottJapanAnna Fali NEW
Ashley L DoeIndiaAsiya Javayant NEW
Darci T MacleadIndiaAsiya Javayant PROPOSAL
Sinclair H AmigonUnited KingdomAsiya Javayant RENEWAL
Adams Z ShinkoJapanElwin Sharvill RENEWAL
Julie E CaudySpainElwin Sharvill NEW
Leon N SaylorsIndiaAmy Elsner NEGOTIATION
Murillo W GillianBrazilOnyama Limba NEGOTIATION
Ashley I RoysterIndiaStephen Shaw PROPOSAL
Maisha G MacleadArgentinaElwin Sharvill NEGOTIATION
Clifford B PoquetteItalyAmy Elsner RENEWAL
Adams X SaylorsIndiaAnna Fali UNQUALIFIED
Antonio S CampainUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois H CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro F MacleadBrazilOnyama Limba QUALIFIED
Stacey T MaletAustraliaStephen Shaw RENEWAL
Greenwood N FlosiArgentinaAmy Elsner RENEWAL
Adams I VocelkaUnited KingdomStephen Shaw QUALIFIED
Rodrigues W FerenczAustraliaOnyama Limba RENEWAL
Ricardo P PerinIndiaAnna Fali RENEWAL
Sinclair B InouyeItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Ricardo L Caldarera
Ashley W Butt
Alejandro Z Chui
Clifford X Tollner
Jefferson G Albares
Francesco N Vocelka
Darci V Royster
Morrow P Darakjy
Alejandro W Kusko
Sinclair S Albares
Julie T Maclead
Wickens G Nicka
Claire X Marrier
Stacey Z Tollner
Leon E Ostrosky
Deepesh T Morasca
Leon O Rim
Francesco X Kusko
Jennifer X Venere
Stacey H Sergi
Aditya Y Slusarski
Deepesh D Inouye
Clifford O Schemmer
Munro C Nicka
Jeanfrancois S Venere
Nicolas Y Royster
Cody F Campain
Nicolas E Malet
Leon R Rim
Misaki N Wieser
Jennifer S Stockham
Johnson Z Tollner
Jennifer T Gillian
Leja S Wieser
Cody P Chui
Kaitlin C Morasca
Mayumi A Caudy
Johnson O Vocelka
Silvio D Sergi
James O Paprocki
Morrow M Nicka
James I Caudy
Emily H Caudy
Ricardo G Rim
Stacey E Gillian
Leon Z Oldroyd
Maria B Wieser
Tony G Darakjy
Darci J Campain
David G Kusko
IdCountryDate
1000Italy2025-08-17
1001Russia2025-08-10
1002United Kingdom2025-08-27
1003France2025-08-10
1004Germany2025-08-12
1005Argentina2025-08-08
1006Brazil2025-08-24
1007Russia2025-08-16
1008Australia2025-08-13
1009Canada2025-08-03
1010Spain2025-08-11
1011Russia2025-08-17
1012France2025-08-02
1013Spain2025-08-20
1014India2025-08-05
1015Japan2025-08-07
1016Germany2025-07-30
1017Italy2025-08-01
1018United Kingdom2025-08-06
1019Germany2025-08-14
1020Russia2025-08-25
1021India2025-08-27
1022France2025-08-02
1023Italy2025-08-08
1024Italy2025-08-12
1025Germany2025-08-01
1026India2025-08-26
1027Japan2025-08-13
1028India2025-08-27
1029Canada2025-08-28
1030Japan2025-08-14
1031Canada2025-08-27
1032Brazil2025-07-31
1033Argentina2025-08-11
1034Japan2025-08-08
1035Brazil2025-08-17
1036Germany2025-08-17
1037United Kingdom2025-08-05
1038Italy2025-08-18
1039Germany2025-08-07
1040United Kingdom2025-08-07
1041Spain2025-08-03
1042Italy2025-08-27
1043Brazil2025-08-23
1044Russia2025-08-01
1045Japan2025-08-17
1046India2025-08-06
1047Germany2025-08-23
1048India2025-08-10
1049Spain2025-07-30

On-Demand Data

NameIdCountryDate
Izzy N Glick1000Canada2025-08-28
Adams X Stockham1001Russia2025-08-02
Faith C Marrier1002Spain2025-08-21
Aditya P Amigon1003United Kingdom2025-08-27
Antonio E Albares1004Brazil2025-08-24
Sinclair W Flosi1005France2025-07-30
Julie M Doe1006France2025-08-12
Jeanfrancois Y Sergi1007Canada2025-08-12
Faith X Wieser1008United Kingdom2025-08-20
Costa P Foller1009Italy2025-08-23
Kadeem O Waycott1010Japan2025-08-23
Mujtaba P Kusko1011Italy2025-08-27
Aditya L Oldroyd1012Italy2025-08-06
Maria O Caudy1013Brazil2025-08-07
Maisha F Slusarski1014Russia2025-07-31
Rodrigues O Marrier1015Italy2025-08-17
Kaitlin V Darakjy1016Australia2025-08-12
James E Marrier1017Japan2025-08-15
Stacey G Nicka1018Argentina2025-08-23
Julie T Tollner1019Argentina2025-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa U CampainItalyIoni Bowcher NEGOTIATION
Isabel Y StockhamIndiaAsiya Javayant UNQUALIFIED
Sinclair U CaldareraJapanIvan Magalhaes UNQUALIFIED
Adams Z CaldareraAustraliaStephen Shaw RENEWAL
David G AlbaresFranceXuxue Feng NEGOTIATION
Isabel R FerenczRussiaOnyama Limba UNQUALIFIED
Costa F StockhamFranceIoni Bowcher NEW
Darci U SchemmerArgentinaElwin Sharvill UNQUALIFIED
Aika Y SergiIndiaAnna Fali RENEWAL
Arvin E SergiArgentinaIoni Bowcher UNQUALIFIED
Claire M IturbideIndiaIoni Bowcher QUALIFIED
Jennifer O NickaFranceXuxue Feng PROPOSAL
Antonio G PaprockiCanadaOnyama Limba NEGOTIATION
Maria B GauchoGermanyStephen Shaw RENEWAL
Maisha K PerinGermanyAsiya Javayant NEGOTIATION
Claire E VocelkaUnited KingdomAmy Elsner NEW
Morrow W KuskoAustraliaAnna Fali QUALIFIED
Alejandro Y DoeFranceAsiya Javayant RENEWAL
Francesco C RutaItalyAmy Elsner NEW
Sinclair C VenereRussiaElwin Sharvill UNQUALIFIED
Silvio U DarakjyCanadaIvan Magalhaes PROPOSAL
Tony M FollerCanadaIoni Bowcher RENEWAL
Claire F RulapaughJapanStephen Shaw PROPOSAL
James Q FollerFranceXuxue Feng QUALIFIED
James Y SergiSpainElwin Sharvill RENEWAL
Antonio A NickaSpainAmy Elsner NEGOTIATION
Johnson R AlbaresCanadaElwin Sharvill PROPOSAL
Kadeem L DilliardRussiaAmy Elsner RENEWAL
Isabel F StockhamFranceElwin Sharvill QUALIFIED
Leon F AlbaresIndiaAnna Fali RENEWAL
Johnson U WhobreyCanadaIoni Bowcher RENEWAL
Faith G AlbaresArgentinaAmy Elsner RENEWAL
Juan U MarrierAustraliaAnna Fali NEW
Arvin D PaprockiSpainXuxue Feng NEW
Misaki P TollnerAustraliaElwin Sharvill NEW
Emily D RimItalyAnna Fali NEW
Aditya B MarrierArgentinaIoni Bowcher NEGOTIATION
Clifford G DoeGermanyOnyama Limba UNQUALIFIED
Emily T PerinJapanAsiya Javayant NEGOTIATION
Arvin J RimSpainAnna Fali PROPOSAL

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