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 R MorascaSpainIoni Bowcher NEW
Aika B NickaArgentinaAmy Elsner NEW
Smith U FollerRussiaStephen Shaw NEW
Chavez D OstroskyGermanyStephen Shaw NEGOTIATION
Aika T ChuiIndiaIvan Magalhaes NEW
Faith B MaletFranceBernardo Dominic NEGOTIATION
Jeanfrancois Q FerenczBrazilAmy Elsner QUALIFIED
Arvin B VocelkaJapanAsiya Javayant QUALIFIED
Antonio S PerinIndiaAsiya Javayant NEGOTIATION
Kaitlin T BriddickJapanIvan Magalhaes NEW
Ivar Z MarrierAustraliaStephen Shaw NEGOTIATION
Maria G FollerArgentinaBernardo Dominic NEGOTIATION
Misaki C AlbaresUnited KingdomAmy Elsner QUALIFIED
Silvio X VocelkaItalyAmy Elsner QUALIFIED
Tony X KuskoIndiaAsiya Javayant NEGOTIATION
Nicolas I GauchoSpainBernardo Dominic PROPOSAL
Chavez Q StensethGermanyStephen Shaw QUALIFIED
Murillo H KolmetzAustraliaStephen Shaw RENEWAL
Silvio Y MaletFranceStephen Shaw PROPOSAL
Aruna C FlosiRussiaElwin Sharvill QUALIFIED
Nicolas Z RoysterAustraliaAsiya Javayant UNQUALIFIED
Misaki D IturbideGermanyElwin Sharvill QUALIFIED
Salvatore A OstroskySpainAnna Fali QUALIFIED
Deepesh W SergiCanadaXuxue Feng RENEWAL
Alejandro N NestleCanadaOnyama Limba UNQUALIFIED
Tony N TollnerCanadaStephen Shaw PROPOSAL
James C StensethIndiaIoni Bowcher NEGOTIATION
Kaitlin C MorascaFranceElwin Sharvill PROPOSAL
Kadeem F SchemmerCanadaXuxue Feng PROPOSAL
Deepesh Y AlbaresItalyElwin Sharvill QUALIFIED
Mujtaba F RimUnited KingdomXuxue Feng UNQUALIFIED
Tony I VenereIndiaIoni Bowcher UNQUALIFIED
Julie S BowleyRussiaAnna Fali QUALIFIED
Jeanfrancois V MacleadSpainAnna Fali UNQUALIFIED
Maria N KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Alejandro R MaletFranceOnyama Limba PROPOSAL
Stacey E TollnerRussiaIvan Magalhaes RENEWAL
Leon R GauchoFranceAmy Elsner RENEWAL
Greenwood O VocelkaBrazilIvan Magalhaes UNQUALIFIED
Faith Z DarakjyBrazilAnna Fali NEW
Emily N TollnerJapanXuxue Feng NEW
Aditya X BowleySpainBernardo Dominic PROPOSAL
Antonio D TollnerCanadaElwin Sharvill QUALIFIED
Jeanfrancois P NickaSpainOnyama Limba RENEWAL
Izzy T AlbaresGermanyAmy Elsner NEW
Juan E FerenczAustraliaIoni Bowcher NEGOTIATION
Morrow G MacleadCanadaXuxue Feng QUALIFIED
Antonio R FigeroaUnited KingdomBernardo Dominic PROPOSAL
Misaki W CampainFranceAsiya Javayant RENEWAL
Ricardo Q SchemmerRussiaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Juan O WhobreyFranceOnyama Limba RENEWAL
Chavez E WaycottBrazilAsiya Javayant PROPOSAL
Jennifer U VocelkaRussiaAmy Elsner NEGOTIATION
Jeanfrancois P PoquetteBrazilIvan Magalhaes NEGOTIATION
Leon J DilliardSpainIvan Magalhaes NEGOTIATION
Stacey M MaletItalyXuxue Feng NEGOTIATION
James F GauchoUnited KingdomXuxue Feng UNQUALIFIED
Deepesh O AmigonAustraliaXuxue Feng UNQUALIFIED
Cody Q RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya K GarufiIndiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco K MaletUnited Kingdom2025-07-15Truhlar And Truhlar Attys RENEWAL78Anna Fali
1001Faith Y WhobreyItaly2025-07-25Chapman, Ross E Esq NEW30Anna Fali
1002Cody C VenereArgentina2025-07-24Commercial Press UNQUALIFIED10Xuxue Feng
1003Claire K NickaSpain2025-07-30Commercial Press QUALIFIED20Xuxue Feng
1004Morrow I CaldareraItaly2025-07-19Truhlar And Truhlar Attys QUALIFIED58Stephen Shaw
1005Munro B MaletUnited Kingdom2025-07-21Benton, John B Jr NEW12Xuxue Feng
1006Kaitlin D StensethIndia2025-07-04Morlong Associates RENEWAL58Ioni Bowcher
1007Darci V KolmetzAustralia2025-07-05King, Christopher A Esq NEW4Bernardo Dominic
1008Silvio O WieserGermany2025-07-29Chemel, James L Cpa NEGOTIATION4Asiya Javayant
1009Leja D PoquetteAustralia2025-07-24Feiner Bros NEGOTIATION0Bernardo Dominic
1010Jennifer F SaylorsCanada2025-07-13Feiner Bros QUALIFIED79Bernardo Dominic
1011Leja C PoquetteJapan2025-07-22Truhlar And Truhlar Attys NEGOTIATION67Ioni Bowcher
1012Ashley X SaylorsSpain2025-07-22Rousseaux, Michael Esq PROPOSAL48Stephen Shaw
1013Adams H NestleFrance2025-07-10Chanay, Jeffrey A Esq RENEWAL39Amy Elsner
1014Clifford L RutaArgentina2025-07-13Printing Dimensions PROPOSAL35Bernardo Dominic
1015Maria F DilliardFrance2025-07-24Chapman, Ross E Esq NEW0Bernardo Dominic
1016Darci U CaudyItaly2025-07-29Benton, John B Jr QUALIFIED85Xuxue Feng
1017Jennifer S WieserUnited Kingdom2025-07-14Truhlar And Truhlar Attys NEW13Amy Elsner
1018Juan H RimSpain2025-07-27Chanay, Jeffrey A Esq NEGOTIATION35Ioni Bowcher
1019Faith Q WhobreyRussia2025-08-01Rangoni Of Florence NEGOTIATION70Elwin Sharvill
1020Costa M GauchoSpain2025-07-16Rangoni Of Florence QUALIFIED23Asiya Javayant
1021Aditya X SlusarskiJapan2025-07-22King, Christopher A Esq NEW60Ivan Magalhaes
1022Kaitlin D PaprockiAustralia2025-07-10Buckley Miller Wright NEGOTIATION45Bernardo Dominic
1023Leon X DoeSpain2025-07-14Chanay, Jeffrey A Esq RENEWAL35Ivan Magalhaes
1024Stacey O DarakjyItaly2025-07-11Morlong Associates PROPOSAL46Asiya Javayant
1025Johnson C SergiBrazil2025-07-10Morlong Associates NEGOTIATION55Bernardo Dominic
1026Ivar H MaletAustralia2025-07-07Chanay, Jeffrey A Esq PROPOSAL18Asiya Javayant
1027Isabel Y TollnerFrance2025-07-21Printing Dimensions RENEWAL96Bernardo Dominic
1028Emily M WieserArgentina2025-07-06Commercial Press NEW50Bernardo Dominic
1029Murillo O MorascaItaly2025-07-12Dorl, James J Esq QUALIFIED47Elwin Sharvill
1030Costa S StensethSpain2025-07-10Rousseaux, Michael Esq NEW63Anna Fali
1031Cody V SergiGermany2025-07-17Truhlar And Truhlar Attys NEGOTIATION64Elwin Sharvill
1032Nicolas W DoeGermany2025-07-12Chapman, Ross E Esq UNQUALIFIED24Ioni Bowcher
1033Maria R MorascaJapan2025-07-15Chanay, Jeffrey A Esq RENEWAL8Bernardo Dominic
1034Rodrigues E AlbaresUnited Kingdom2025-07-11Dorl, James J Esq NEGOTIATION38Onyama Limba
1035Smith H StockhamArgentina2025-07-16Benton, John B Jr NEW64Anna Fali
1036Deepesh T GlickItaly2025-07-14Benton, John B Jr RENEWAL56Bernardo Dominic
1037Jeanfrancois O DarakjyArgentina2025-07-27Commercial Press PROPOSAL82Ioni Bowcher
1038Emily F ShinkoItaly2025-07-14Buckley Miller Wright QUALIFIED97Amy Elsner
1039Aruna B BologniaCanada2025-07-20Rousseaux, Michael Esq PROPOSAL75Amy Elsner
1040David N FerenczSpain2025-07-15Rousseaux, Michael Esq PROPOSAL53Anna Fali
1041Ricardo H RulapaughJapan2025-07-15Printing Dimensions UNQUALIFIED25Amy Elsner
1042Julie T CampainUnited Kingdom2025-08-02Buckley Miller Wright NEW10Ivan Magalhaes
1043Sinclair Q IturbideGermany2025-07-19Feltz Printing Service RENEWAL22Ivan Magalhaes
1044Kadeem G VocelkaSpain2025-07-17Morlong Associates PROPOSAL41Bernardo Dominic
1045Aika O StensethItaly2025-07-30Rangoni Of Florence UNQUALIFIED49Onyama Limba
1046Sinclair R NickaItaly2025-07-23Chapman, Ross E Esq NEW47Onyama Limba
1047Mujtaba C VocelkaJapan2025-08-02Feltz Printing Service UNQUALIFIED70Asiya Javayant
1048Kadeem G WaycottSpain2025-07-13Rousseaux, Michael Esq NEGOTIATION15Anna Fali
1049Antonio P FerenczArgentina2025-07-30Commercial Press PROPOSAL68Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Alejandro X ShinkoAustraliaIoni Bowcher RENEWAL
Greenwood I IturbideUnited KingdomAsiya Javayant RENEWAL
Jones V BriddickAustraliaElwin Sharvill NEGOTIATION
Greenwood S SlusarskiAustraliaBernardo Dominic NEW
Deepesh R BologniaSpainElwin Sharvill NEGOTIATION
Ivar V TollnerSpainAmy Elsner RENEWAL
Maria R AmigonFranceXuxue Feng PROPOSAL
Chavez I BologniaIndiaIvan Magalhaes UNQUALIFIED
Aika J AlbaresAustraliaIvan Magalhaes NEGOTIATION
Antonio P TollnerGermanyAmy Elsner NEGOTIATION
Adams Q IturbideBrazilStephen Shaw RENEWAL
Kaitlin E VocelkaRussiaStephen Shaw RENEWAL
Misaki T PaprockiIndiaBernardo Dominic NEGOTIATION
Misaki N WieserSpainAnna Fali PROPOSAL
Munro G GillianSpainOnyama Limba RENEWAL
Juan M TollnerIndiaIoni Bowcher PROPOSAL
Jeanfrancois A CampainRussiaElwin Sharvill NEW
Leon L PerinItalyIoni Bowcher PROPOSAL
Jones S PerinSpainOnyama Limba UNQUALIFIED
Ricardo J BowleyIndiaAsiya Javayant NEGOTIATION
Octavia E RimArgentinaIvan Magalhaes QUALIFIED
Isabel U KuskoGermanyStephen Shaw RENEWAL
Darci W PerinSpainIvan Magalhaes RENEWAL
Juan F BologniaAustraliaIoni Bowcher UNQUALIFIED
Jones Y FigeroaAustraliaBernardo Dominic NEW
Johnson B OldroydCanadaIoni Bowcher NEGOTIATION
Juan N GauchoCanadaXuxue Feng RENEWAL
Sinclair D BowleySpainIvan Magalhaes PROPOSAL
Johnson E NestleIndiaElwin Sharvill PROPOSAL
Ivar W KuskoAustraliaAsiya Javayant NEW
Ivar K ChuiJapanStephen Shaw UNQUALIFIED
Aika Z AlbaresItalyStephen Shaw UNQUALIFIED
Clifford W BologniaGermanyBernardo Dominic PROPOSAL
Maria K StockhamJapanOnyama Limba UNQUALIFIED
Ricardo E WaycottCanadaBernardo Dominic NEGOTIATION
Maria Q GlickFranceAsiya Javayant UNQUALIFIED
Jefferson E MorascaRussiaXuxue Feng RENEWAL
Jones O AmigonItalyOnyama Limba PROPOSAL
Jennifer B AmigonSpainAnna Fali PROPOSAL
Darci W RimGermanyIoni Bowcher NEGOTIATION
Chavez Z FlosiAustraliaAmy Elsner RENEWAL
Ashley A RutaCanadaOnyama Limba UNQUALIFIED
Silvio X ChuiCanadaBernardo Dominic QUALIFIED
Wickens G GlickJapanAnna Fali NEW
Leja L VocelkaCanadaIoni Bowcher QUALIFIED
Francesco U MaletUnited KingdomAmy Elsner QUALIFIED
Silvio B BriddickIndiaBernardo Dominic QUALIFIED
Wickens F KolmetzAustraliaAsiya Javayant QUALIFIED
Cody O TollnerCanadaStephen Shaw NEGOTIATION
Antonio N NickaIndiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Mayumi W Poquette
Clifford G Perin
Cody L Morasca
James L Campain
Julie S Venere
Silvio P Perin
Greenwood D Oldroyd
Aika A Stenseth
Ricardo U Caldarera
Murillo I Glick
Mujtaba R Nicka
Murillo Q Waycott
Kadeem O Rulapaugh
Francesco R Darakjy
Costa V Stenseth
Wickens U Paprocki
Leja A Rulapaugh
Wickens O Dilliard
Leja N Waycott
Rodrigues T Caldarera
Octavia Z Campain
Sinclair R Inouye
Tony C Garufi
Maisha I Malet
Sinclair H Briddick
Faith U Bolognia
Deepesh C Tollner
Francesco Q Amigon
Johnson M Garufi
Arvin D Shinko
Clifford C Chui
Nicolas F Marrier
Aruna D Foller
Costa W Gillian
Johnson D Shinko
Johnson X Figeroa
Greenwood Q Shinko
David H Ferencz
Tony I Stenseth
Munro O Malet
Leja J Kusko
Costa A Campain
Nicolas G Schemmer
Wickens I Maclead
Greenwood B Butt
Faith U Nicka
Mayumi Y Caldarera
Costa C Nicka
Arvin L Stenseth
Francesco Z Poquette
IdCountryDate
1000Japan2025-07-19
1001Australia2025-07-04
1002Argentina2025-07-31
1003Australia2025-07-20
1004Japan2025-08-02
1005Spain2025-07-14
1006France2025-07-11
1007Australia2025-07-27
1008Brazil2025-07-24
1009France2025-07-14
1010Spain2025-07-23
1011Spain2025-07-20
1012Japan2025-07-15
1013Canada2025-07-13
1014Spain2025-07-29
1015Brazil2025-07-13
1016Germany2025-07-13
1017France2025-07-29
1018Italy2025-07-12
1019United Kingdom2025-08-01
1020Germany2025-07-19
1021Australia2025-07-19
1022Spain2025-07-18
1023Spain2025-07-13
1024Japan2025-08-01
1025Argentina2025-07-30
1026Russia2025-07-25
1027Brazil2025-07-12
1028Argentina2025-07-11
1029Italy2025-07-25
1030Italy2025-07-09
1031United Kingdom2025-07-25
1032Australia2025-07-12
1033United Kingdom2025-07-09
1034India2025-07-25
1035Argentina2025-07-20
1036Australia2025-07-19
1037India2025-07-08
1038Russia2025-07-29
1039Germany2025-07-31
1040Brazil2025-07-12
1041Spain2025-07-30
1042Brazil2025-07-27
1043Spain2025-07-25
1044Canada2025-07-14
1045Russia2025-08-02
1046India2025-07-10
1047Germany2025-07-07
1048Japan2025-07-09
1049Canada2025-07-29

On-Demand Data

NameIdCountryDate
Munro J Stenseth1000United Kingdom2025-07-27
Isabel O Campain1001Italy2025-08-02
Rodrigues X Bowley1002Germany2025-07-13
Aditya S Maclead1003Germany2025-07-06
Antonio C Dilliard1004Germany2025-07-24
Cody T Poquette1005India2025-07-25
Kaitlin E Malet1006India2025-07-05
Aruna E Campain1007United Kingdom2025-07-15
Stacey D Nicka1008India2025-07-16
Stacey A Tollner1009Brazil2025-07-12
Mayumi E Inouye1010Russia2025-07-27
Smith F Saylors1011Canada2025-07-19
Nicolas Q Wieser1012France2025-07-30
Munro C Figeroa1013United Kingdom2025-07-07
Tony E Bolognia1014Italy2025-07-22
Murillo Q Maclead1015India2025-08-02
Nicolas Z Iturbide1016Germany2025-07-08
Antonio U Stockham1017Italy2025-07-17
Salvatore B Albares1018United Kingdom2025-07-09
Leja K Tollner1019Russia2025-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James X RulapaughJapanAnna Fali NEW
Silvio C StockhamSpainStephen Shaw NEW
Johnson G BriddickCanadaElwin Sharvill RENEWAL
Ivar N GauchoCanadaOnyama Limba UNQUALIFIED
Aika H RimSpainXuxue Feng UNQUALIFIED
James Y GillianUnited KingdomAmy Elsner NEW
Izzy Q GlickCanadaOnyama Limba NEW
Johnson U MarrierFranceAnna Fali PROPOSAL
Jefferson G TollnerAustraliaBernardo Dominic UNQUALIFIED
Aditya W RulapaughBrazilAmy Elsner NEGOTIATION
Nicolas G WieserGermanyAmy Elsner NEGOTIATION
Stacey R OstroskyGermanyXuxue Feng NEGOTIATION
Stacey O BologniaAustraliaIvan Magalhaes QUALIFIED
Antonio T MaletUnited KingdomElwin Sharvill QUALIFIED
Ricardo L GauchoUnited KingdomAmy Elsner NEGOTIATION
Mayumi K NickaBrazilOnyama Limba QUALIFIED
Juan N DoeIndiaXuxue Feng NEW
Juan M SlusarskiIndiaIoni Bowcher QUALIFIED
Octavia B PoquetteGermanyOnyama Limba NEGOTIATION
Sinclair M MaletGermanyAmy Elsner RENEWAL
Rodrigues B StockhamJapanIvan Magalhaes NEGOTIATION
Ivar I RulapaughItalyOnyama Limba RENEWAL
Mayumi N TollnerIndiaIvan Magalhaes NEGOTIATION
Leja S BowleyRussiaIoni Bowcher RENEWAL
Darci P StensethRussiaAmy Elsner QUALIFIED
Costa F StensethGermanyOnyama Limba UNQUALIFIED
Aditya B PaprockiRussiaElwin Sharvill RENEWAL
Adams Y FollerUnited KingdomAsiya Javayant RENEWAL
David F FigeroaCanadaElwin Sharvill RENEWAL
Kadeem C AmigonItalyIvan Magalhaes PROPOSAL
Chavez D GillianItalyIoni Bowcher QUALIFIED
Antonio C RimUnited KingdomIvan Magalhaes UNQUALIFIED
Juan F RulapaughIndiaXuxue Feng NEGOTIATION
Maria S NestleItalyIoni Bowcher NEGOTIATION
Leja H IturbideCanadaStephen Shaw NEGOTIATION
Ashley T RulapaughFranceBernardo Dominic RENEWAL
Deepesh Q PerinFranceAsiya Javayant NEW
Mujtaba O GillianSpainXuxue Feng RENEWAL
Ricardo P WhobreyFranceXuxue Feng UNQUALIFIED
Wickens Y SlusarskiJapanStephen Shaw 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>