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
Octavia J VocelkaAustraliaBernardo Dominic NEGOTIATION
Julie S MaletUnited KingdomXuxue Feng UNQUALIFIED
Kadeem E VenereBrazilOnyama Limba NEW
Maria D NestleIndiaIoni Bowcher PROPOSAL
Clifford S AmigonIndiaBernardo Dominic NEGOTIATION
Adams V GlickCanadaAsiya Javayant RENEWAL
Emily A OstroskyBrazilIvan Magalhaes UNQUALIFIED
Adams C AmigonGermanyIoni Bowcher RENEWAL
Izzy A CampainGermanyStephen Shaw NEW
Wickens H WhobreyCanadaBernardo Dominic NEW
Johnson A SergiItalyAnna Fali PROPOSAL
Adams E RulapaughJapanElwin Sharvill RENEWAL
Nicolas S VenereFranceElwin Sharvill RENEWAL
Costa X BologniaRussiaBernardo Dominic UNQUALIFIED
Smith O MaletAustraliaAnna Fali PROPOSAL
Ivar Q MaletJapanOnyama Limba NEGOTIATION
Julie Q FollerItalyStephen Shaw QUALIFIED
Morrow V NickaCanadaAnna Fali NEW
Alejandro S RulapaughJapanOnyama Limba PROPOSAL
Smith H SlusarskiBrazilAsiya Javayant UNQUALIFIED
Maria L CaudyBrazilIvan Magalhaes UNQUALIFIED
Munro Z StockhamGermanyElwin Sharvill UNQUALIFIED
Kadeem C SchemmerGermanyStephen Shaw RENEWAL
Maria L RutaBrazilIoni Bowcher RENEWAL
Sinclair Z FerenczRussiaBernardo Dominic NEGOTIATION
Sinclair S MorascaCanadaIoni Bowcher UNQUALIFIED
James L PoquetteRussiaXuxue Feng PROPOSAL
Silvio U FerenczSpainXuxue Feng NEGOTIATION
Isabel X SaylorsArgentinaOnyama Limba NEW
Aditya G ButtIndiaAnna Fali PROPOSAL
Kadeem V FerenczJapanBernardo Dominic NEGOTIATION
Julie T PaprockiIndiaStephen Shaw NEGOTIATION
Kadeem U FerenczBrazilIoni Bowcher QUALIFIED
Misaki S PerinFranceOnyama Limba QUALIFIED
Octavia J AlbaresFranceBernardo Dominic RENEWAL
Ricardo S RutaIndiaElwin Sharvill UNQUALIFIED
Mayumi V SlusarskiAustraliaIvan Magalhaes RENEWAL
Isabel G CaudyItalyAmy Elsner NEW
Darci S KolmetzIndiaElwin Sharvill NEGOTIATION
Cody P VenereCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois C FlosiArgentinaBernardo Dominic PROPOSAL
Aika G ButtFranceIoni Bowcher NEW
Aruna S NickaSpainIvan Magalhaes NEW
Nicolas V InouyeFranceAsiya Javayant NEW
Francesco B PoquetteUnited KingdomStephen Shaw PROPOSAL
Tony V MaletUnited KingdomAmy Elsner NEW
Murillo C FlosiFranceElwin Sharvill QUALIFIED
Wickens Z RulapaughCanadaElwin Sharvill NEW
Clifford A IturbideGermanyBernardo Dominic UNQUALIFIED
Darci D WieserUnited KingdomIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Francesco O RoysterBrazilIoni Bowcher PROPOSAL
Murillo B TollnerItalyAsiya Javayant RENEWAL
Wickens A FerenczItalyIoni Bowcher RENEWAL
Adams F RutaGermanyXuxue Feng QUALIFIED
Silvio N SlusarskiRussiaOnyama Limba PROPOSAL
Stacey C AmigonUnited KingdomStephen Shaw QUALIFIED
Tony W SaylorsUnited KingdomXuxue Feng NEW
Aika G VocelkaUnited KingdomAnna Fali NEW
Mujtaba F DarakjyArgentinaBernardo Dominic NEGOTIATION
Murillo E StensethAustraliaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson Z OstroskyAustralia2025-10-05King, Christopher A Esq UNQUALIFIED6Elwin Sharvill
1001Johnson X GauchoBrazil2025-10-02Printing Dimensions RENEWAL72Anna Fali
1002Maisha B BowleyBrazil2025-09-27Morlong Associates NEW57Onyama Limba
1003Jennifer P VocelkaGermany2025-10-09Rangoni Of Florence PROPOSAL85Onyama Limba
1004Kaitlin M WieserJapan2025-10-14Rangoni Of Florence RENEWAL52Asiya Javayant
1005Jefferson Q ChuiJapan2025-10-05Chapman, Ross E Esq UNQUALIFIED99Elwin Sharvill
1006Francesco Z GillianBrazil2025-09-25Chemel, James L Cpa QUALIFIED54Stephen Shaw
1007Deepesh T AlbaresFrance2025-10-13Buckley Miller Wright UNQUALIFIED63Elwin Sharvill
1008Morrow B IturbideBrazil2025-10-12Feiner Bros UNQUALIFIED28Stephen Shaw
1009Maisha I ChuiJapan2025-10-11Rangoni Of Florence PROPOSAL99Asiya Javayant
1010Cody R IturbideGermany2025-09-22Morlong Associates QUALIFIED45Ioni Bowcher
1011Silvio P WaycottJapan2025-09-26Chapman, Ross E Esq PROPOSAL32Asiya Javayant
1012Adams L SlusarskiBrazil2025-09-15Feltz Printing Service PROPOSAL70Xuxue Feng
1013Jones O BowleyArgentina2025-10-13Rousseaux, Michael Esq UNQUALIFIED7Xuxue Feng
1014Julie G GlickBrazil2025-10-05Chanay, Jeffrey A Esq PROPOSAL84Xuxue Feng
1015Leja J VocelkaFrance2025-10-04Dorl, James J Esq UNQUALIFIED18Xuxue Feng
1016David P OstroskyJapan2025-09-19Benton, John B Jr RENEWAL67Xuxue Feng
1017Deepesh V MaletSpain2025-10-07Buckley Miller Wright RENEWAL85Ioni Bowcher
1018Mayumi K SergiFrance2025-09-16King, Christopher A Esq UNQUALIFIED90Asiya Javayant
1019Alejandro Q StockhamIndia2025-09-22Feltz Printing Service UNQUALIFIED56Asiya Javayant
1020Adams H CampainCanada2025-10-07Rousseaux, Michael Esq NEGOTIATION66Xuxue Feng
1021Arvin F PerinJapan2025-09-19Dorl, James J Esq PROPOSAL7Anna Fali
1022Isabel J MorascaUnited Kingdom2025-09-24King, Christopher A Esq NEGOTIATION49Elwin Sharvill
1023Stacey J InouyeRussia2025-10-11Printing Dimensions NEGOTIATION95Ivan Magalhaes
1024Greenwood T VocelkaGermany2025-09-25Morlong Associates UNQUALIFIED60Onyama Limba
1025Maisha L VocelkaUnited Kingdom2025-09-15Buckley Miller Wright PROPOSAL11Xuxue Feng
1026Faith T ShinkoSpain2025-09-18Morlong Associates PROPOSAL92Stephen Shaw
1027Darci G PaprockiGermany2025-10-05Rangoni Of Florence NEGOTIATION28Xuxue Feng
1028Jeanfrancois B NickaUnited Kingdom2025-10-07Chapman, Ross E Esq UNQUALIFIED77Elwin Sharvill
1029James L MaletBrazil2025-10-08Rangoni Of Florence NEW15Asiya Javayant
1030Murillo C FerenczGermany2025-09-16Chapman, Ross E Esq NEW98Asiya Javayant
1031Nicolas O NickaAustralia2025-10-02King, Christopher A Esq NEGOTIATION4Bernardo Dominic
1032Antonio K SergiGermany2025-10-01Printing Dimensions NEGOTIATION55Amy Elsner
1033Mayumi Z MacleadFrance2025-09-24Buckley Miller Wright PROPOSAL64Anna Fali
1034Nicolas P VenereIndia2025-10-07Truhlar And Truhlar Attys NEW38Asiya Javayant
1035Costa B RoysterCanada2025-09-22Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1036Sinclair M DarakjyJapan2025-09-15Chapman, Ross E Esq RENEWAL73Ivan Magalhaes
1037Alejandro V MorascaSpain2025-10-01Feiner Bros NEW48Anna Fali
1038Jennifer S StensethCanada2025-09-16Feiner Bros UNQUALIFIED75Anna Fali
1039Ivar Q WhobreyIndia2025-09-26Chapman, Ross E Esq PROPOSAL2Elwin Sharvill
1040Chavez T PoquetteAustralia2025-09-16Dorl, James J Esq NEGOTIATION14Ioni Bowcher
1041Deepesh C WaycottJapan2025-10-04Chapman, Ross E Esq NEGOTIATION1Bernardo Dominic
1042Jefferson V InouyeItaly2025-09-28Benton, John B Jr UNQUALIFIED44Onyama Limba
1043Maria Q NestleIndia2025-10-10Chapman, Ross E Esq QUALIFIED99Elwin Sharvill
1044Costa N SchemmerJapan2025-09-19Rangoni Of Florence NEW86Stephen Shaw
1045Isabel K ShinkoItaly2025-10-09Truhlar And Truhlar Attys UNQUALIFIED31Onyama Limba
1046Morrow R FigeroaCanada2025-09-19Feltz Printing Service QUALIFIED97Amy Elsner
1047David O PoquetteUnited Kingdom2025-09-24King, Christopher A Esq NEW17Ivan Magalhaes
1048James F ShinkoArgentina2025-09-19Morlong Associates UNQUALIFIED72Stephen Shaw
1049Leon R MorascaUnited Kingdom2025-10-07Rangoni Of Florence NEGOTIATION72Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maisha F DilliardBrazilStephen Shaw PROPOSAL
Claire O MacleadGermanyIvan Magalhaes QUALIFIED
Deepesh D FollerIndiaBernardo Dominic PROPOSAL
Salvatore C FigeroaAustraliaXuxue Feng QUALIFIED
Juan S BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Maria E DoeRussiaBernardo Dominic UNQUALIFIED
Ricardo S CaldareraCanadaIoni Bowcher NEGOTIATION
Rodrigues O MorascaCanadaElwin Sharvill PROPOSAL
Faith K VocelkaCanadaAsiya Javayant QUALIFIED
Maisha I CampainAustraliaAnna Fali PROPOSAL
Kaitlin Q RoysterUnited KingdomXuxue Feng PROPOSAL
Faith X GillianUnited KingdomAsiya Javayant UNQUALIFIED
Murillo K OstroskyGermanyAmy Elsner UNQUALIFIED
Cody K StockhamJapanElwin Sharvill QUALIFIED
Cody B RimJapanAmy Elsner NEGOTIATION
Ashley B StensethArgentinaAmy Elsner UNQUALIFIED
Cody B BriddickIndiaIvan Magalhaes QUALIFIED
Smith J RoysterFranceOnyama Limba PROPOSAL
Kaitlin A SlusarskiSpainXuxue Feng UNQUALIFIED
Maisha Z PoquetteRussiaBernardo Dominic QUALIFIED
Julie X AlbaresBrazilBernardo Dominic RENEWAL
Munro B ChuiCanadaAnna Fali PROPOSAL
Jones W ShinkoBrazilXuxue Feng NEGOTIATION
Stacey H OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Maria D BowleyRussiaOnyama Limba QUALIFIED
Jennifer T WhobreyFranceIoni Bowcher NEW
Stacey F IturbideAustraliaXuxue Feng UNQUALIFIED
Murillo U GlickItalyAnna Fali NEW
Faith J CampainCanadaAmy Elsner NEGOTIATION
Jeanfrancois Q BologniaAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin S SaylorsFranceAnna Fali NEGOTIATION
Smith I BowleyJapanAsiya Javayant NEW
Stacey E IturbideUnited KingdomOnyama Limba NEW
Juan V BologniaJapanBernardo Dominic QUALIFIED
Misaki N SchemmerArgentinaAnna Fali QUALIFIED
Stacey L SchemmerCanadaBernardo Dominic RENEWAL
Isabel C OldroydAustraliaBernardo Dominic UNQUALIFIED
Ivar Y RoysterGermanyAsiya Javayant QUALIFIED
Izzy J OstroskyFranceIvan Magalhaes UNQUALIFIED
Maria S DilliardJapanBernardo Dominic QUALIFIED
Ivar A OldroydArgentinaStephen Shaw NEGOTIATION
Sinclair N VenereBrazilStephen Shaw NEGOTIATION
Ashley H CampainIndiaStephen Shaw NEW
Arvin W KuskoRussiaBernardo Dominic RENEWAL
Tony C DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Francesco Z DoeFranceIoni Bowcher UNQUALIFIED
Leon M TollnerUnited KingdomOnyama Limba PROPOSAL
Rodrigues M KuskoJapanAsiya Javayant PROPOSAL
Deepesh B MarrierAustraliaOnyama Limba PROPOSAL
Faith Z FollerIndiaIvan Magalhaes RENEWAL
Frozen Columns
Name
Smith T Rulapaugh
Johnson E Rim
Ivar J Stenseth
Greenwood Q Paprocki
Ivar Y Royster
Nicolas K Malet
Ricardo K Oldroyd
Murillo O Darakjy
Sinclair S Glick
Kaitlin Y Iturbide
Faith H Bolognia
Tony X Stenseth
Morrow I Vocelka
Leja L Shinko
Arvin B Malet
Murillo H Glick
Deepesh L Kusko
Leja X Figeroa
Wickens P Marrier
Mayumi H Butt
Leon H Malet
Greenwood N Stenseth
Sinclair S Garufi
Tony Y Iturbide
Octavia V Ostrosky
Stacey Y Kolmetz
Misaki N Marrier
Isabel Q Perin
Ricardo I Morasca
Munro V Amigon
Cody C Figeroa
Clifford L Chui
Smith E Chui
Jeanfrancois M Glick
James U Rim
Faith Z Figeroa
Smith K Kolmetz
Maisha J Saylors
Deepesh F Briddick
Octavia J Gillian
Murillo Q Garufi
Kadeem B Schemmer
Jefferson R Perin
Smith M Foller
Jones F Marrier
Kadeem O Bowley
Smith C Stockham
Morrow Q Gillian
Maria G Caudy
James W Caudy
IdCountryDate
1000Argentina2025-09-19
1001Italy2025-09-19
1002Russia2025-10-12
1003Japan2025-10-11
1004Russia2025-10-12
1005Russia2025-09-24
1006Spain2025-09-24
1007Italy2025-09-16
1008Brazil2025-10-08
1009United Kingdom2025-10-06
1010France2025-09-16
1011Germany2025-10-02
1012Japan2025-09-19
1013Germany2025-09-18
1014India2025-10-12
1015Germany2025-10-14
1016Italy2025-10-05
1017Australia2025-10-13
1018United Kingdom2025-10-09
1019Argentina2025-09-19
1020Canada2025-09-29
1021Australia2025-10-10
1022Argentina2025-10-08
1023Spain2025-09-25
1024France2025-09-23
1025Russia2025-09-23
1026Canada2025-10-14
1027Russia2025-10-13
1028India2025-10-02
1029Brazil2025-10-05
1030India2025-09-19
1031Canada2025-09-16
1032Australia2025-10-12
1033Australia2025-09-26
1034Russia2025-09-30
1035Japan2025-09-27
1036Spain2025-09-19
1037France2025-09-16
1038Canada2025-10-13
1039United Kingdom2025-10-05
1040Spain2025-10-07
1041Australia2025-09-25
1042India2025-09-16
1043Russia2025-09-18
1044France2025-09-30
1045Russia2025-09-16
1046France2025-09-15
1047France2025-10-13
1048Japan2025-09-29
1049Italy2025-10-07

On-Demand Data

NameIdCountryDate
Aditya S Perin1000Canada2025-10-08
Jennifer R Chui1001India2025-10-01
Maisha G Flosi1002France2025-09-23
Emily F Paprocki1003Argentina2025-09-18
Greenwood G Darakjy1004India2025-10-01
Faith O Slusarski1005Italy2025-09-28
Wickens Z Marrier1006Germany2025-10-12
Emily L Perin1007France2025-09-17
Aditya I Malet1008Canada2025-09-18
Antonio O Nestle1009France2025-09-15
Wickens J Amigon1010France2025-10-01
Greenwood H Saylors1011Italy2025-09-20
Jones P Foller1012France2025-10-02
David F Flosi1013France2025-10-10
James E Slusarski1014Russia2025-10-06
Misaki I Caudy1015Japan2025-09-25
Aika L Malet1016Brazil2025-10-06
Cody X Ostrosky1017India2025-09-17
Adams G Schemmer1018Argentina2025-09-30
Cody U Stenseth1019Spain2025-10-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams A TollnerBrazilIoni Bowcher NEGOTIATION
Chavez C GillianJapanIoni Bowcher NEGOTIATION
Clifford X BologniaSpainAsiya Javayant NEGOTIATION
Smith C CaudyRussiaAnna Fali PROPOSAL
Antonio S NestleIndiaIoni Bowcher PROPOSAL
Leja V VenereFranceIvan Magalhaes UNQUALIFIED
James D CaudyAustraliaAnna Fali UNQUALIFIED
Ashley G SlusarskiIndiaAmy Elsner NEW
Ricardo W NickaAustraliaAsiya Javayant UNQUALIFIED
Greenwood N ShinkoItalyAsiya Javayant UNQUALIFIED
Emily L DarakjyFranceOnyama Limba PROPOSAL
Clifford R WaycottCanadaOnyama Limba NEW
Alejandro V InouyeBrazilIoni Bowcher UNQUALIFIED
Jefferson Y WaycottJapanIoni Bowcher QUALIFIED
Alejandro S AlbaresFranceIvan Magalhaes QUALIFIED
Ivar K WaycottFranceElwin Sharvill UNQUALIFIED
Adams D PerinJapanStephen Shaw NEGOTIATION
Mujtaba V ShinkoBrazilXuxue Feng NEW
Izzy H TollnerArgentinaStephen Shaw NEW
Izzy I WieserCanadaOnyama Limba QUALIFIED
Chavez X OldroydIndiaAnna Fali NEW
Silvio N KolmetzFranceIoni Bowcher NEW
Clifford L BowleySpainOnyama Limba UNQUALIFIED
Leon M FerenczSpainBernardo Dominic NEGOTIATION
Aika K PoquetteCanadaOnyama Limba UNQUALIFIED
Wickens Y TollnerAustraliaAmy Elsner NEGOTIATION
Octavia Y InouyeAustraliaBernardo Dominic PROPOSAL
Kaitlin Q StockhamUnited KingdomAsiya Javayant QUALIFIED
Munro D VenereGermanyAnna Fali RENEWAL
David H WieserItalyBernardo Dominic QUALIFIED
Ricardo M VenereRussiaXuxue Feng NEGOTIATION
Morrow X DilliardAustraliaBernardo Dominic RENEWAL
Silvio R RimAustraliaXuxue Feng UNQUALIFIED
Emily A DoeJapanXuxue Feng PROPOSAL
Murillo T AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba L OldroydFranceXuxue Feng NEGOTIATION
Morrow V BriddickArgentinaOnyama Limba RENEWAL
Stacey F VocelkaIndiaOnyama Limba QUALIFIED
Ricardo Q SaylorsArgentinaElwin Sharvill NEGOTIATION
Isabel E VenereAustraliaStephen Shaw UNQUALIFIED

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