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
Salvatore H SaylorsBrazilXuxue Feng NEW
Jeanfrancois P MorascaItalyElwin Sharvill PROPOSAL
Jones I StockhamCanadaAnna Fali NEW
Wickens D OldroydAustraliaXuxue Feng UNQUALIFIED
Tony V VocelkaSpainElwin Sharvill UNQUALIFIED
Juan A MaletRussiaIoni Bowcher UNQUALIFIED
Morrow C OldroydItalyAmy Elsner NEW
Alejandro Q RutaUnited KingdomAmy Elsner PROPOSAL
Emily Q SchemmerBrazilAsiya Javayant NEW
Jeanfrancois E OldroydBrazilAmy Elsner QUALIFIED
Clifford F KuskoItalyAnna Fali PROPOSAL
Cody K KuskoIndiaIoni Bowcher PROPOSAL
Costa J GillianSpainBernardo Dominic PROPOSAL
Antonio C WaycottItalyIoni Bowcher RENEWAL
Chavez G OldroydArgentinaBernardo Dominic UNQUALIFIED
Tony I BowleyIndiaElwin Sharvill RENEWAL
Maisha C ButtGermanyOnyama Limba NEW
Rodrigues A DoeItalyIoni Bowcher QUALIFIED
Costa I MaletBrazilElwin Sharvill NEGOTIATION
Leon P SchemmerFranceStephen Shaw PROPOSAL
David G GlickJapanXuxue Feng UNQUALIFIED
Adams U WaycottGermanyBernardo Dominic UNQUALIFIED
Mayumi Q MacleadAustraliaIvan Magalhaes NEW
Aika P SaylorsCanadaElwin Sharvill PROPOSAL
Deepesh F OldroydGermanyElwin Sharvill PROPOSAL
Octavia P DarakjyGermanyElwin Sharvill QUALIFIED
Mayumi F ShinkoGermanyXuxue Feng UNQUALIFIED
Francesco S ShinkoUnited KingdomIvan Magalhaes NEW
Arvin M NestleGermanyIvan Magalhaes PROPOSAL
Adams L MorascaSpainAnna Fali NEW
Maria P KolmetzRussiaElwin Sharvill UNQUALIFIED
Silvio T CaudySpainAsiya Javayant UNQUALIFIED
Octavia O VenereCanadaBernardo Dominic NEW
Leon B FlosiJapanIoni Bowcher PROPOSAL
Julie R RulapaughIndiaIvan Magalhaes NEW
Deepesh B InouyeItalyStephen Shaw NEGOTIATION
Salvatore F OstroskyFranceAnna Fali QUALIFIED
Darci T KolmetzJapanBernardo Dominic UNQUALIFIED
Mayumi J WieserArgentinaAmy Elsner UNQUALIFIED
Octavia S MarrierCanadaAmy Elsner RENEWAL
Sinclair Q FlosiCanadaElwin Sharvill UNQUALIFIED
Aruna G OstroskyRussiaIoni Bowcher NEW
Silvio Y MaletJapanIvan Magalhaes PROPOSAL
Wickens O StockhamRussiaAmy Elsner QUALIFIED
Jeanfrancois G SchemmerCanadaIoni Bowcher UNQUALIFIED
David M FollerRussiaOnyama Limba PROPOSAL
Maria Y MarrierBrazilIvan Magalhaes PROPOSAL
Emily X ButtGermanyElwin Sharvill QUALIFIED
David H MaletFranceAnna Fali PROPOSAL
Octavia W OldroydArgentinaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin U KuskoUnited KingdomXuxue Feng PROPOSAL
Silvio U TollnerArgentinaIoni Bowcher PROPOSAL
Isabel V SlusarskiFranceIoni Bowcher NEGOTIATION
Faith D NickaUnited KingdomIoni Bowcher UNQUALIFIED
Emily K RutaCanadaBernardo Dominic RENEWAL
Ivar R KolmetzItalyIvan Magalhaes PROPOSAL
Aditya X FigeroaCanadaIoni Bowcher RENEWAL
Ivar R NestleFranceOnyama Limba NEGOTIATION
Silvio X MacleadFranceAnna Fali PROPOSAL
Maisha F FlosiItalyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo A RulapaughUnited Kingdom2025-08-06Chapman, Ross E Esq PROPOSAL84Ivan Magalhaes
1001Clifford M RulapaughJapan2025-08-04Chemel, James L Cpa RENEWAL55Amy Elsner
1002Nicolas H ButtIndia2025-07-22Chapman, Ross E Esq NEGOTIATION8Asiya Javayant
1003Kaitlin B MacleadSpain2025-08-09Commercial Press QUALIFIED52Bernardo Dominic
1004Arvin K WaycottSpain2025-08-14Chanay, Jeffrey A Esq RENEWAL63Stephen Shaw
1005Aika W SergiBrazil2025-08-15Rousseaux, Michael Esq RENEWAL34Ioni Bowcher
1006Emily J RutaGermany2025-08-11King, Christopher A Esq QUALIFIED97Elwin Sharvill
1007Leon J PoquetteFrance2025-07-31Feltz Printing Service RENEWAL75Ivan Magalhaes
1008Claire P ChuiFrance2025-08-03Rousseaux, Michael Esq UNQUALIFIED2Ioni Bowcher
1009Jefferson K FerenczCanada2025-08-13Benton, John B Jr UNQUALIFIED43Xuxue Feng
1010Costa A OldroydGermany2025-08-13Truhlar And Truhlar Attys NEGOTIATION42Ivan Magalhaes
1011Costa X KolmetzFrance2025-08-07Chapman, Ross E Esq QUALIFIED91Stephen Shaw
1012Maisha F WhobreyAustralia2025-08-03Morlong Associates QUALIFIED59Anna Fali
1013Mayumi O StockhamJapan2025-08-01Chanay, Jeffrey A Esq NEGOTIATION31Asiya Javayant
1014Antonio D BologniaJapan2025-07-23Chemel, James L Cpa NEW9Elwin Sharvill
1015Maisha S MaletIndia2025-08-16Truhlar And Truhlar Attys NEGOTIATION28Onyama Limba
1016Juan D PoquetteUnited Kingdom2025-08-02Dorl, James J Esq NEGOTIATION91Amy Elsner
1017Greenwood G SergiFrance2025-08-12Rousseaux, Michael Esq RENEWAL95Ivan Magalhaes
1018Maisha H FigeroaArgentina2025-08-04Feltz Printing Service NEGOTIATION47Ioni Bowcher
1019Morrow V VocelkaFrance2025-08-15Rousseaux, Michael Esq QUALIFIED27Xuxue Feng
1020Sinclair O WaycottCanada2025-08-06Chapman, Ross E Esq RENEWAL46Stephen Shaw
1021Kadeem F BriddickCanada2025-07-22Chemel, James L Cpa QUALIFIED30Ioni Bowcher
1022Aditya B MorascaArgentina2025-08-15Morlong Associates PROPOSAL81Amy Elsner
1023Isabel W BowleyItaly2025-07-22Feltz Printing Service NEGOTIATION24Ioni Bowcher
1024Aditya S GillianGermany2025-08-17Chemel, James L Cpa UNQUALIFIED66Asiya Javayant
1025Ashley G VenereArgentina2025-07-19Dorl, James J Esq UNQUALIFIED39Xuxue Feng
1026Juan B StockhamRussia2025-08-04Chapman, Ross E Esq RENEWAL61Onyama Limba
1027Emily I FollerGermany2025-07-28Benton, John B Jr PROPOSAL26Onyama Limba
1028Jeanfrancois W MorascaIndia2025-08-14Chapman, Ross E Esq RENEWAL39Onyama Limba
1029Smith T BologniaCanada2025-08-16Chemel, James L Cpa NEGOTIATION71Anna Fali
1030Octavia A PoquetteJapan2025-08-17Chanay, Jeffrey A Esq NEW91Elwin Sharvill
1031Octavia I OldroydJapan2025-07-23Feltz Printing Service RENEWAL0Asiya Javayant
1032Leon X CaldareraItaly2025-08-12Truhlar And Truhlar Attys PROPOSAL45Stephen Shaw
1033Stacey C BriddickJapan2025-08-10Morlong Associates RENEWAL47Anna Fali
1034Emily J RutaBrazil2025-08-15Feiner Bros NEW16Bernardo Dominic
1035Salvatore Z WaycottIndia2025-08-03Dorl, James J Esq UNQUALIFIED40Bernardo Dominic
1036Rodrigues I TollnerGermany2025-07-31Chapman, Ross E Esq RENEWAL98Amy Elsner
1037Morrow I MacleadRussia2025-08-01Chemel, James L Cpa NEGOTIATION59Ivan Magalhaes
1038Smith N BowleyItaly2025-08-10Chanay, Jeffrey A Esq QUALIFIED40Xuxue Feng
1039Deepesh M ChuiAustralia2025-07-24Chanay, Jeffrey A Esq NEW31Onyama Limba
1040Leon M BriddickAustralia2025-07-26Commercial Press QUALIFIED1Amy Elsner
1041Claire I CampainFrance2025-08-04Rangoni Of Florence UNQUALIFIED48Anna Fali
1042Octavia E IturbideUnited Kingdom2025-07-24Printing Dimensions QUALIFIED73Ivan Magalhaes
1043Faith Q SergiSpain2025-07-22Chanay, Jeffrey A Esq NEGOTIATION66Xuxue Feng
1044Wickens M MaletFrance2025-08-15Printing Dimensions QUALIFIED43Stephen Shaw
1045Deepesh Z FollerSpain2025-07-30Chanay, Jeffrey A Esq PROPOSAL35Bernardo Dominic
1046Faith V PaprockiAustralia2025-08-04Rousseaux, Michael Esq NEGOTIATION65Xuxue Feng
1047Cody M RutaCanada2025-08-17Chemel, James L Cpa UNQUALIFIED56Anna Fali
1048Isabel N RoysterAustralia2025-07-31Rangoni Of Florence NEGOTIATION26Ioni Bowcher
1049Darci K OldroydArgentina2025-07-24Truhlar And Truhlar Attys QUALIFIED85Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Juan K OldroydGermanyBernardo Dominic UNQUALIFIED
Costa I SchemmerGermanyIvan Magalhaes NEGOTIATION
Munro S RutaItalyIoni Bowcher NEGOTIATION
Smith O FlosiCanadaAnna Fali NEGOTIATION
David D GillianGermanyBernardo Dominic NEW
Aditya R FollerRussiaAnna Fali UNQUALIFIED
Mayumi V MacleadJapanOnyama Limba NEW
Leja P DoeAustraliaAsiya Javayant RENEWAL
Ivar U GillianGermanyAmy Elsner RENEWAL
Salvatore Z ShinkoBrazilElwin Sharvill NEGOTIATION
Arvin T AlbaresIndiaStephen Shaw NEGOTIATION
Murillo W MorascaBrazilAnna Fali PROPOSAL
Emily C VenereIndiaOnyama Limba UNQUALIFIED
Clifford M MaletCanadaBernardo Dominic NEGOTIATION
Arvin J FollerUnited KingdomAsiya Javayant NEGOTIATION
Costa J WhobreyGermanyElwin Sharvill UNQUALIFIED
Munro R ShinkoJapanBernardo Dominic NEGOTIATION
Arvin C GlickItalyAnna Fali UNQUALIFIED
Munro L RutaIndiaIoni Bowcher UNQUALIFIED
James I SchemmerCanadaAsiya Javayant PROPOSAL
Munro W NickaRussiaOnyama Limba NEGOTIATION
Juan Z PaprockiCanadaXuxue Feng NEGOTIATION
Jones M MacleadBrazilElwin Sharvill UNQUALIFIED
Munro X KuskoArgentinaAsiya Javayant QUALIFIED
Aruna J CaldareraGermanyBernardo Dominic RENEWAL
Jeanfrancois N GlickGermanyIvan Magalhaes NEGOTIATION
Ashley F ShinkoIndiaAmy Elsner PROPOSAL
Chavez P IturbideAustraliaOnyama Limba NEGOTIATION
Izzy T GlickIndiaAmy Elsner PROPOSAL
Jones H BriddickUnited KingdomStephen Shaw PROPOSAL
Aditya E OldroydArgentinaStephen Shaw UNQUALIFIED
Francesco W PerinCanadaXuxue Feng UNQUALIFIED
Jeanfrancois T FollerUnited KingdomOnyama Limba NEW
Rodrigues Y RimSpainIoni Bowcher PROPOSAL
Jones P MaletSpainBernardo Dominic UNQUALIFIED
Rodrigues B FlosiBrazilAnna Fali UNQUALIFIED
Nicolas O VenereAustraliaElwin Sharvill PROPOSAL
Antonio C FerenczBrazilAmy Elsner QUALIFIED
Adams F TollnerJapanElwin Sharvill QUALIFIED
David J FlosiArgentinaBernardo Dominic UNQUALIFIED
Murillo I GlickItalyStephen Shaw NEGOTIATION
David X WieserUnited KingdomIoni Bowcher RENEWAL
Clifford K SchemmerSpainAnna Fali RENEWAL
James I CampainItalyBernardo Dominic PROPOSAL
Sinclair K FigeroaCanadaBernardo Dominic NEGOTIATION
Munro G MacleadIndiaElwin Sharvill UNQUALIFIED
Nicolas T MorascaFranceIoni Bowcher QUALIFIED
Ashley A RimSpainStephen Shaw UNQUALIFIED
Claire M AlbaresIndiaElwin Sharvill PROPOSAL
Ricardo C KuskoRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Wickens Y Gaucho
Juan O Vocelka
Maisha V Kusko
Aruna T Bolognia
Francesco V Rim
Maria R Waycott
Silvio H Wieser
Johnson L Dilliard
Leon Y Venere
Izzy Y Poquette
Arvin L Slusarski
Munro Z Oldroyd
Munro S Kolmetz
Jones K Venere
Deepesh H Butt
Octavia B Butt
Ashley U Doe
Salvatore Z Doe
Silvio S Kusko
Mayumi J Garufi
Francesco J Bolognia
Arvin R Paprocki
Maisha P Caldarera
Stacey M Paprocki
Nicolas F Darakjy
Mayumi B Perin
Mujtaba Q Perin
Alejandro S Figeroa
Ricardo E Ostrosky
Rodrigues W Chui
Nicolas E Waycott
Morrow E Gaucho
Kaitlin F Ruta
Salvatore S Rim
Greenwood J Rulapaugh
Leja T Marrier
Ricardo W Sergi
Wickens D Vocelka
Misaki Z Malet
Claire A Amigon
Maria H Tollner
Clifford Q Caldarera
Kaitlin B Stockham
Ricardo J Darakjy
Sinclair V Perin
Aditya E Sergi
Antonio B Chui
Jennifer U Ruta
Aruna N Rulapaugh
Antonio I Royster
IdCountryDate
1000Germany2025-07-28
1001Italy2025-08-08
1002Argentina2025-08-07
1003Spain2025-08-14
1004Italy2025-07-30
1005United Kingdom2025-07-22
1006Italy2025-08-03
1007Germany2025-08-16
1008France2025-08-17
1009Spain2025-08-06
1010Spain2025-07-20
1011Canada2025-08-09
1012Germany2025-07-30
1013Brazil2025-08-06
1014Australia2025-07-30
1015Japan2025-08-10
1016Spain2025-08-14
1017Germany2025-08-08
1018Brazil2025-07-30
1019Germany2025-08-03
1020India2025-07-22
1021Russia2025-08-14
1022Spain2025-08-06
1023Argentina2025-07-27
1024Italy2025-08-06
1025United Kingdom2025-08-16
1026Italy2025-08-13
1027Japan2025-08-03
1028Italy2025-07-24
1029France2025-07-23
1030Australia2025-08-11
1031Japan2025-08-05
1032Argentina2025-08-17
1033United Kingdom2025-08-10
1034Australia2025-07-30
1035Argentina2025-08-15
1036Japan2025-07-21
1037Spain2025-08-05
1038France2025-08-09
1039Germany2025-07-26
1040Spain2025-07-23
1041Argentina2025-08-16
1042Argentina2025-08-16
1043India2025-08-17
1044India2025-08-05
1045India2025-08-10
1046Australia2025-08-02
1047Japan2025-08-13
1048Canada2025-08-15
1049Italy2025-08-02

On-Demand Data

NameIdCountryDate
Mujtaba K Kolmetz1000Canada2025-07-31
Leja H Dilliard1001Canada2025-08-05
Francesco G Nicka1002Germany2025-08-05
Aditya R Kusko1003Spain2025-08-08
Jennifer R Briddick1004Brazil2025-07-21
Costa F Kusko1005France2025-08-05
Mujtaba P Bolognia1006Australia2025-08-09
Jeanfrancois G Paprocki1007Australia2025-07-19
Adams R Dilliard1008Italy2025-07-25
Francesco A Doe1009Argentina2025-08-14
Francesco B Kolmetz1010Germany2025-07-23
Costa O Shinko1011India2025-07-20
Darci S Poquette1012Canada2025-08-01
Aruna S Garufi1013France2025-08-05
Clifford F Shinko1014Australia2025-07-29
Silvio U Iturbide1015Germany2025-08-06
Darci A Butt1016France2025-08-14
Kadeem Q Tollner1017Brazil2025-08-09
Stacey Q Foller1018India2025-08-13
Aditya Q Marrier1019Spain2025-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey N OstroskyArgentinaAmy Elsner QUALIFIED
Ivar I VenereBrazilIvan Magalhaes NEW
Aditya H IturbideItalyIoni Bowcher UNQUALIFIED
Ashley J ChuiArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois F VenereFranceAsiya Javayant QUALIFIED
Adams W StockhamAustraliaAnna Fali PROPOSAL
Leja C WhobreyFranceAmy Elsner NEGOTIATION
Aditya W GillianIndiaXuxue Feng RENEWAL
Cody A ChuiArgentinaXuxue Feng NEGOTIATION
Emily H OldroydSpainIvan Magalhaes UNQUALIFIED
Kaitlin K AlbaresArgentinaIvan Magalhaes RENEWAL
Murillo C NickaGermanyIoni Bowcher UNQUALIFIED
Cody O RoysterFranceAmy Elsner RENEWAL
Antonio G SaylorsJapanOnyama Limba PROPOSAL
Cody K GillianJapanAmy Elsner NEGOTIATION
Antonio K FerenczGermanyElwin Sharvill NEW
Kadeem I MacleadGermanyBernardo Dominic RENEWAL
Cody V BologniaBrazilElwin Sharvill NEGOTIATION
Octavia F VenereRussiaIoni Bowcher UNQUALIFIED
Mujtaba H KuskoJapanOnyama Limba UNQUALIFIED
Aditya Q GillianIndiaIvan Magalhaes NEGOTIATION
Tony E MorascaSpainIoni Bowcher QUALIFIED
Mayumi J BowleyJapanAnna Fali UNQUALIFIED
Darci M FerenczIndiaElwin Sharvill PROPOSAL
David C SergiUnited KingdomOnyama Limba UNQUALIFIED
James H SlusarskiRussiaStephen Shaw UNQUALIFIED
Izzy P WieserCanadaOnyama Limba NEW
Mayumi W CaudyItalyAsiya Javayant PROPOSAL
Johnson U AlbaresCanadaOnyama Limba PROPOSAL
Darci V CaudyRussiaElwin Sharvill NEGOTIATION
Adams D SaylorsCanadaAmy Elsner PROPOSAL
Antonio W MorascaRussiaOnyama Limba NEGOTIATION
Kaitlin X TollnerIndiaStephen Shaw RENEWAL
Misaki O ChuiCanadaAnna Fali QUALIFIED
David L SergiIndiaBernardo Dominic QUALIFIED
Emily D ButtCanadaXuxue Feng UNQUALIFIED
Jennifer F CaldareraAustraliaOnyama Limba NEW
Wickens P BologniaUnited KingdomXuxue Feng QUALIFIED
Deepesh B CaudyAustraliaElwin Sharvill NEGOTIATION
Julie W GlickAustraliaBernardo Dominic 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>