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
Kadeem A SaylorsGermanyStephen Shaw NEGOTIATION
Leja G KolmetzJapanElwin Sharvill QUALIFIED
Jones W SchemmerJapanElwin Sharvill QUALIFIED
Mujtaba Q NestleJapanIvan Magalhaes PROPOSAL
Salvatore I MorascaCanadaAsiya Javayant UNQUALIFIED
Ricardo O GauchoSpainAsiya Javayant UNQUALIFIED
Isabel G AmigonBrazilIoni Bowcher QUALIFIED
James R SaylorsJapanAsiya Javayant QUALIFIED
Wickens F DilliardRussiaStephen Shaw UNQUALIFIED
Munro Q RoysterArgentinaAnna Fali QUALIFIED
Antonio V MorascaSpainIvan Magalhaes PROPOSAL
Kaitlin B VocelkaFranceElwin Sharvill NEGOTIATION
Kaitlin J OldroydRussiaIvan Magalhaes PROPOSAL
Nicolas R VenereFranceIoni Bowcher NEW
Aika O ButtGermanyAmy Elsner RENEWAL
Isabel K GauchoCanadaIvan Magalhaes PROPOSAL
Isabel J NickaAustraliaBernardo Dominic UNQUALIFIED
Emily O FigeroaBrazilOnyama Limba NEW
Clifford O SaylorsRussiaIoni Bowcher QUALIFIED
David M DarakjyFranceAmy Elsner NEGOTIATION
Silvio D MarrierAustraliaXuxue Feng QUALIFIED
Isabel X OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Faith Z WieserItalyAnna Fali RENEWAL
Cody S CaudyGermanyAsiya Javayant NEW
Ashley E NickaIndiaAsiya Javayant QUALIFIED
Chavez B DarakjyFranceAnna Fali NEW
Mayumi Q MarrierRussiaBernardo Dominic UNQUALIFIED
Julie I SchemmerGermanyXuxue Feng NEGOTIATION
Faith D RoysterGermanyAsiya Javayant UNQUALIFIED
Leja Q NickaSpainIvan Magalhaes NEW
Tony P OldroydCanadaAsiya Javayant PROPOSAL
Leon R MacleadBrazilIvan Magalhaes PROPOSAL
Sinclair R CaudyCanadaOnyama Limba NEW
Adams S FerenczArgentinaOnyama Limba RENEWAL
Leon T PerinIndiaAmy Elsner UNQUALIFIED
David K GarufiSpainBernardo Dominic UNQUALIFIED
Jones C GauchoFranceStephen Shaw NEW
Aika U SaylorsGermanyXuxue Feng UNQUALIFIED
Ivar K BriddickCanadaStephen Shaw NEW
Julie E DilliardAustraliaXuxue Feng NEW
Misaki I FerenczUnited KingdomElwin Sharvill NEW
Johnson L SaylorsSpainIvan Magalhaes PROPOSAL
Salvatore U BowleyRussiaAnna Fali PROPOSAL
Aruna I MarrierRussiaBernardo Dominic QUALIFIED
Adams S FollerBrazilAnna Fali PROPOSAL
Ricardo J MaletFranceElwin Sharvill NEW
Jones B RulapaughUnited KingdomAnna Fali QUALIFIED
Julie O CaldareraJapanAsiya Javayant RENEWAL
Mujtaba H WaycottIndiaIoni Bowcher PROPOSAL
Jeanfrancois S WhobreyCanadaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki K FlosiJapanAsiya Javayant NEW
Murillo V WhobreySpainIoni Bowcher NEW
Jennifer K OstroskyRussiaAmy Elsner NEW
Mujtaba Z WieserIndiaElwin Sharvill QUALIFIED
Cody D FigeroaBrazilElwin Sharvill UNQUALIFIED
Isabel U OstroskyJapanBernardo Dominic QUALIFIED
Arvin G DoeRussiaIvan Magalhaes RENEWAL
Stacey B SchemmerRussiaIoni Bowcher NEGOTIATION
Aditya W VenereArgentinaOnyama Limba PROPOSAL
Izzy G MarrierAustraliaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon W GauchoSpain2025-07-28Commercial Press QUALIFIED61Onyama Limba
1001Kaitlin Q RulapaughGermany2025-08-15Dorl, James J Esq NEGOTIATION10Onyama Limba
1002Ivar M StockhamUnited Kingdom2025-07-29King, Christopher A Esq PROPOSAL22Ivan Magalhaes
1003Ricardo E MaletIndia2025-08-15King, Christopher A Esq RENEWAL1Xuxue Feng
1004Ivar Y NestleFrance2025-07-31Buckley Miller Wright RENEWAL32Asiya Javayant
1005Aditya Z SlusarskiIndia2025-08-17Feltz Printing Service RENEWAL68Stephen Shaw
1006Isabel Y FollerCanada2025-08-17Feltz Printing Service NEGOTIATION9Anna Fali
1007Leon O ButtGermany2025-08-10Buckley Miller Wright UNQUALIFIED53Anna Fali
1008Leja X SchemmerUnited Kingdom2025-07-29Commercial Press NEW85Bernardo Dominic
1009Rodrigues I NestleArgentina2025-08-04Feiner Bros PROPOSAL45Bernardo Dominic
1010Misaki B InouyeRussia2025-08-22Commercial Press NEGOTIATION50Stephen Shaw
1011Leja T VocelkaRussia2025-08-10Dorl, James J Esq QUALIFIED28Ivan Magalhaes
1012Chavez O ButtAustralia2025-07-26Commercial Press PROPOSAL1Elwin Sharvill
1013Leon N WieserAustralia2025-08-14Chemel, James L Cpa RENEWAL67Stephen Shaw
1014Smith Z WaycottAustralia2025-08-05Printing Dimensions NEGOTIATION84Stephen Shaw
1015Stacey S RutaCanada2025-08-03Printing Dimensions NEW40Ivan Magalhaes
1016Ivar Y GarufiCanada2025-07-28Feiner Bros NEGOTIATION82Amy Elsner
1017Salvatore O FigeroaIndia2025-08-01Buckley Miller Wright NEGOTIATION89Stephen Shaw
1018Morrow Q KuskoJapan2025-08-06Truhlar And Truhlar Attys PROPOSAL69Elwin Sharvill
1019Adams P RoysterCanada2025-08-09Benton, John B Jr PROPOSAL31Ioni Bowcher
1020Jennifer Z MacleadArgentina2025-08-14Rousseaux, Michael Esq PROPOSAL10Elwin Sharvill
1021Silvio R AlbaresItaly2025-08-15Rousseaux, Michael Esq NEGOTIATION50Stephen Shaw
1022Emily B PerinAustralia2025-08-01Buckley Miller Wright RENEWAL45Bernardo Dominic
1023Aruna P GarufiItaly2025-08-15Dorl, James J Esq QUALIFIED71Elwin Sharvill
1024Juan K FerenczArgentina2025-08-14King, Christopher A Esq NEW92Anna Fali
1025Claire A CampainCanada2025-08-07Rousseaux, Michael Esq QUALIFIED60Onyama Limba
1026Tony W SlusarskiUnited Kingdom2025-07-27Truhlar And Truhlar Attys QUALIFIED87Anna Fali
1027Julie Q BologniaIndia2025-08-21Benton, John B Jr QUALIFIED81Amy Elsner
1028Antonio Z GauchoAustralia2025-08-21Chapman, Ross E Esq PROPOSAL71Amy Elsner
1029Morrow L KolmetzArgentina2025-08-22Truhlar And Truhlar Attys NEW7Onyama Limba
1030Cody G GauchoRussia2025-07-30Rangoni Of Florence PROPOSAL69Amy Elsner
1031Antonio H SergiCanada2025-08-20Feiner Bros NEGOTIATION45Onyama Limba
1032Maisha B GillianRussia2025-08-04Buckley Miller Wright NEGOTIATION43Ioni Bowcher
1033Alejandro F VenereAustralia2025-08-17Feltz Printing Service QUALIFIED52Bernardo Dominic
1034James V NickaFrance2025-08-02Printing Dimensions UNQUALIFIED56Xuxue Feng
1035Maisha Y DarakjyJapan2025-08-20Buckley Miller Wright RENEWAL84Stephen Shaw
1036Francesco Q MorascaArgentina2025-08-01Buckley Miller Wright UNQUALIFIED46Ivan Magalhaes
1037Stacey P CaldareraRussia2025-07-27Buckley Miller Wright QUALIFIED67Onyama Limba
1038Ashley J VocelkaUnited Kingdom2025-08-01Benton, John B Jr NEGOTIATION24Stephen Shaw
1039Ashley K WhobreyGermany2025-08-09Rangoni Of Florence NEGOTIATION42Asiya Javayant
1040Mujtaba N MorascaUnited Kingdom2025-07-31Chemel, James L Cpa NEGOTIATION54Bernardo Dominic
1041Murillo Q DoeGermany2025-07-28Chapman, Ross E Esq NEW0Xuxue Feng
1042Arvin X CaudyUnited Kingdom2025-07-29Feltz Printing Service QUALIFIED56Asiya Javayant
1043Leon V RoysterRussia2025-08-21Benton, John B Jr NEGOTIATION10Bernardo Dominic
1044David V WieserIndia2025-08-13Chanay, Jeffrey A Esq PROPOSAL35Ivan Magalhaes
1045Jefferson T DilliardGermany2025-08-15Feltz Printing Service QUALIFIED16Ioni Bowcher
1046Stacey D FlosiAustralia2025-08-13Buckley Miller Wright PROPOSAL37Asiya Javayant
1047Ricardo C PerinJapan2025-07-26Benton, John B Jr NEGOTIATION74Onyama Limba
1048Ivar Y OldroydJapan2025-08-24Benton, John B Jr NEGOTIATION31Bernardo Dominic
1049Darci S FollerBrazil2025-08-04Truhlar And Truhlar Attys NEGOTIATION40Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin S PoquetteIndiaAmy Elsner NEGOTIATION
Antonio G WaycottFranceStephen Shaw NEW
Johnson Z ShinkoArgentinaAsiya Javayant NEW
Antonio T OstroskyArgentinaOnyama Limba RENEWAL
Munro Z RulapaughSpainAmy Elsner UNQUALIFIED
Octavia D PoquetteBrazilElwin Sharvill NEW
Leja Y MaletUnited KingdomStephen Shaw UNQUALIFIED
Jennifer E GillianBrazilBernardo Dominic QUALIFIED
Chavez F CampainIndiaElwin Sharvill UNQUALIFIED
Jefferson K MaletAustraliaElwin Sharvill UNQUALIFIED
Arvin G WieserRussiaStephen Shaw NEGOTIATION
Smith L KolmetzBrazilAmy Elsner NEGOTIATION
Clifford H CaudyBrazilIoni Bowcher UNQUALIFIED
Arvin Y BriddickGermanyIvan Magalhaes RENEWAL
Misaki K GillianCanadaBernardo Dominic QUALIFIED
Faith U FlosiJapanIoni Bowcher PROPOSAL
Kadeem U MacleadCanadaElwin Sharvill PROPOSAL
Salvatore A ChuiFranceXuxue Feng QUALIFIED
Chavez R OldroydItalyIvan Magalhaes UNQUALIFIED
Morrow F FollerFranceOnyama Limba RENEWAL
Arvin L AlbaresBrazilAsiya Javayant QUALIFIED
Chavez Q BriddickCanadaAmy Elsner NEW
Stacey A DarakjyBrazilIoni Bowcher NEGOTIATION
Jeanfrancois K BowleyArgentinaAnna Fali QUALIFIED
Jennifer N BologniaGermanyElwin Sharvill NEW
Jennifer K NickaAustraliaElwin Sharvill PROPOSAL
Stacey F WaycottGermanyStephen Shaw NEW
Tony C NickaGermanyStephen Shaw NEGOTIATION
Deepesh P DarakjySpainIvan Magalhaes NEGOTIATION
Isabel U WieserSpainXuxue Feng PROPOSAL
Juan R PaprockiBrazilOnyama Limba NEW
Izzy I InouyeBrazilIvan Magalhaes UNQUALIFIED
Aditya Y VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Chavez M PerinItalyAsiya Javayant RENEWAL
Alejandro T GauchoUnited KingdomAnna Fali QUALIFIED
Deepesh C GlickIndiaBernardo Dominic UNQUALIFIED
Tony E KolmetzAustraliaStephen Shaw UNQUALIFIED
Antonio O ButtCanadaAnna Fali QUALIFIED
Francesco J BriddickBrazilXuxue Feng NEW
Jones Y CampainSpainXuxue Feng RENEWAL
Ashley J NestleCanadaBernardo Dominic RENEWAL
Greenwood Y DoeAustraliaOnyama Limba PROPOSAL
Julie J RutaUnited KingdomBernardo Dominic RENEWAL
Leja K DilliardBrazilIoni Bowcher UNQUALIFIED
Cody U RoysterAustraliaOnyama Limba UNQUALIFIED
Francesco R RulapaughAustraliaAsiya Javayant RENEWAL
Deepesh V WieserJapanAmy Elsner NEW
Mujtaba F RutaAustraliaStephen Shaw NEW
Salvatore W DoeFranceAnna Fali NEGOTIATION
Nicolas X SergiJapanStephen Shaw NEGOTIATION
Frozen Columns
Name
Aruna Z Morasca
Mayumi G Ruta
James T Oldroyd
Greenwood P Amigon
Misaki I Slusarski
Ricardo K Rulapaugh
Faith O Garufi
Jennifer K Campain
Jeanfrancois R Perin
Nicolas T Caldarera
Octavia Q Morasca
Ashley D Perin
Salvatore Q Butt
Octavia N Briddick
Mujtaba W Rim
Salvatore R Slusarski
Misaki N Flosi
Wickens U Briddick
Tony X Bolognia
Ricardo W Briddick
Wickens K Doe
Izzy T Saylors
Aika L Inouye
Octavia K Tollner
Aika F Albares
Leon M Campain
Mujtaba Y Figeroa
Ricardo S Caldarera
Misaki S Inouye
Leja N Nicka
Leja G Vocelka
James R Glick
Arvin S Rulapaugh
Ricardo P Butt
Silvio I Maclead
Emily U Dilliard
Nicolas F Venere
Kadeem V Bowley
Claire Q Kolmetz
Clifford Y Whobrey
Octavia T Vocelka
Mayumi I Butt
Sinclair J Figeroa
Murillo C Caldarera
Adams A Kusko
Julie O Malet
Silvio N Tollner
Aika W Paprocki
Faith B Dilliard
Greenwood N Caudy
IdCountryDate
1000United Kingdom2025-08-12
1001United Kingdom2025-08-12
1002Spain2025-08-15
1003Spain2025-08-11
1004France2025-08-03
1005Argentina2025-08-19
1006India2025-08-14
1007Russia2025-08-18
1008Germany2025-08-05
1009France2025-08-17
1010Brazil2025-08-02
1011Russia2025-08-18
1012Italy2025-08-23
1013Spain2025-08-22
1014Germany2025-08-19
1015Japan2025-07-30
1016Canada2025-08-05
1017Japan2025-08-10
1018Japan2025-08-07
1019Argentina2025-08-05
1020Australia2025-08-01
1021France2025-08-10
1022Canada2025-08-17
1023Russia2025-08-04
1024Italy2025-08-02
1025Australia2025-07-27
1026Germany2025-07-27
1027Argentina2025-08-22
1028Russia2025-08-02
1029Brazil2025-08-03
1030Canada2025-08-22
1031Italy2025-08-14
1032Spain2025-08-08
1033Argentina2025-08-15
1034Spain2025-08-19
1035Brazil2025-07-26
1036Russia2025-08-23
1037Argentina2025-07-31
1038Argentina2025-08-14
1039Australia2025-08-05
1040Spain2025-08-05
1041Spain2025-08-18
1042United Kingdom2025-07-31
1043Argentina2025-08-11
1044Australia2025-08-13
1045India2025-08-12
1046India2025-08-24
1047Australia2025-08-07
1048Russia2025-07-28
1049Canada2025-07-31

On-Demand Data

NameIdCountryDate
Mayumi S Nicka1000Brazil2025-08-24
Aika E Garufi1001United Kingdom2025-08-01
Nicolas U Garufi1002France2025-07-27
Greenwood X Albares1003Argentina2025-08-22
Ivar X Garufi1004Australia2025-08-17
Darci E Waycott1005India2025-08-05
Maisha D Caudy1006Australia2025-08-01
Octavia W Rulapaugh1007Canada2025-07-30
Faith S Vocelka1008United Kingdom2025-08-06
Claire C Rulapaugh1009Russia2025-08-04
Jones I Iturbide1010Argentina2025-08-09
Juan H Paprocki1011United Kingdom2025-08-04
Jennifer O Rulapaugh1012United Kingdom2025-07-30
Ivar U Poquette1013Italy2025-08-09
Izzy Q Royster1014Japan2025-08-13
Julie L Amigon1015Argentina2025-08-02
Ashley K Darakjy1016Argentina2025-08-20
Julie B Bolognia1017Canada2025-08-18
Munro R Rim1018Russia2025-07-26
Mayumi R Stockham1019Germany2025-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy S CampainCanadaAsiya Javayant UNQUALIFIED
Greenwood F DoeItalyAsiya Javayant NEW
Darci Z OldroydIndiaOnyama Limba QUALIFIED
Izzy J WieserIndiaAnna Fali RENEWAL
Kaitlin V KuskoIndiaOnyama Limba UNQUALIFIED
Ricardo G IturbideRussiaIvan Magalhaes QUALIFIED
Nicolas W ChuiItalyElwin Sharvill RENEWAL
Salvatore W RimIndiaElwin Sharvill UNQUALIFIED
Alejandro C ButtBrazilStephen Shaw QUALIFIED
Nicolas A StensethArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois D MarrierCanadaBernardo Dominic NEW
Ricardo Q NickaAustraliaOnyama Limba NEW
Aruna L RutaUnited KingdomAsiya Javayant QUALIFIED
Salvatore C GlickJapanAnna Fali UNQUALIFIED
Francesco T FerenczJapanBernardo Dominic UNQUALIFIED
Salvatore P OstroskyJapanIoni Bowcher PROPOSAL
Wickens P VenereCanadaIvan Magalhaes NEW
Ricardo M CaldareraCanadaIvan Magalhaes UNQUALIFIED
Wickens W AmigonAustraliaAmy Elsner UNQUALIFIED
Ivar A KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair R FigeroaSpainBernardo Dominic RENEWAL
Leon D BriddickAustraliaIoni Bowcher NEW
Silvio V FigeroaGermanyIvan Magalhaes NEGOTIATION
Kadeem I RoysterCanadaAmy Elsner NEW
Alejandro Z WieserIndiaOnyama Limba NEW
Clifford Z DoeSpainAsiya Javayant NEW
Octavia G BriddickFranceStephen Shaw RENEWAL
Sinclair H IturbideJapanAsiya Javayant NEGOTIATION
Munro S OstroskyItalyXuxue Feng PROPOSAL
Morrow S KuskoSpainBernardo Dominic NEGOTIATION
Maria E CaldareraRussiaStephen Shaw QUALIFIED
Aruna Z PerinFranceElwin Sharvill UNQUALIFIED
Mujtaba B DoeUnited KingdomAsiya Javayant QUALIFIED
Murillo Y StensethBrazilStephen Shaw UNQUALIFIED
Kaitlin K MorascaAustraliaBernardo Dominic NEGOTIATION
Clifford N MorascaSpainAmy Elsner QUALIFIED
Mayumi R MorascaArgentinaElwin Sharvill RENEWAL
Maria S MarrierBrazilAmy Elsner PROPOSAL
Alejandro V DilliardRussiaAmy Elsner NEW
Leja M BriddickBrazilStephen Shaw 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>