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 X DilliardBrazilIvan Magalhaes NEW
Clifford I RoysterIndiaXuxue Feng UNQUALIFIED
Isabel P SaylorsGermanyOnyama Limba PROPOSAL
Juan K InouyeJapanBernardo Dominic QUALIFIED
Stacey P MorascaRussiaBernardo Dominic QUALIFIED
Smith N DarakjyGermanyOnyama Limba QUALIFIED
David K AmigonCanadaOnyama Limba QUALIFIED
James P MaletArgentinaAnna Fali NEGOTIATION
Stacey N FlosiIndiaAnna Fali NEW
Darci X ButtJapanIvan Magalhaes UNQUALIFIED
Nicolas R BowleyItalyStephen Shaw QUALIFIED
Kaitlin Z GarufiIndiaAsiya Javayant PROPOSAL
Tony X MaletAustraliaXuxue Feng PROPOSAL
Darci P SchemmerRussiaStephen Shaw NEGOTIATION
Izzy J MacleadIndiaStephen Shaw RENEWAL
Arvin L GauchoArgentinaAsiya Javayant NEW
Tony W FigeroaJapanBernardo Dominic NEGOTIATION
Isabel G SergiSpainOnyama Limba PROPOSAL
Adams B VocelkaIndiaBernardo Dominic NEW
Greenwood Z SlusarskiFranceIoni Bowcher NEW
Adams C TollnerBrazilAsiya Javayant QUALIFIED
Faith K MaletBrazilXuxue Feng NEW
Francesco L OldroydAustraliaIoni Bowcher UNQUALIFIED
Leja F BowleyUnited KingdomIvan Magalhaes NEW
Emily O CaldareraIndiaAnna Fali NEW
Sinclair J BologniaBrazilStephen Shaw RENEWAL
Aditya B AmigonBrazilBernardo Dominic PROPOSAL
Izzy F MacleadJapanAmy Elsner RENEWAL
Mujtaba P CampainItalyStephen Shaw QUALIFIED
Misaki L VocelkaArgentinaStephen Shaw PROPOSAL
Rodrigues O FlosiUnited KingdomElwin Sharvill NEGOTIATION
Cody J RimGermanyBernardo Dominic QUALIFIED
Maria G FerenczRussiaIvan Magalhaes NEGOTIATION
Aditya C SaylorsFranceAnna Fali RENEWAL
Kadeem M IturbideSpainXuxue Feng QUALIFIED
Jennifer N MaletUnited KingdomIoni Bowcher NEGOTIATION
Munro P VocelkaBrazilIvan Magalhaes QUALIFIED
Rodrigues A RoysterBrazilOnyama Limba PROPOSAL
Izzy U ChuiGermanyIvan Magalhaes QUALIFIED
Aruna W GarufiSpainOnyama Limba PROPOSAL
Leja J StockhamIndiaAnna Fali PROPOSAL
Munro V NestleUnited KingdomOnyama Limba UNQUALIFIED
Clifford N PerinRussiaBernardo Dominic UNQUALIFIED
Salvatore Q VenereRussiaIoni Bowcher NEW
Maria G CampainJapanIvan Magalhaes NEGOTIATION
Salvatore N PoquetteIndiaAmy Elsner PROPOSAL
Kadeem B CampainJapanBernardo Dominic NEGOTIATION
Isabel L BologniaBrazilElwin Sharvill UNQUALIFIED
Smith V DilliardIndiaXuxue Feng NEGOTIATION
Aditya P PerinItalyAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James G SchemmerRussiaAsiya Javayant PROPOSAL
Faith J GauchoIndiaStephen Shaw NEW
Izzy P NestleIndiaBernardo Dominic NEGOTIATION
Kadeem O GillianSpainIoni Bowcher UNQUALIFIED
Smith Y KuskoBrazilIoni Bowcher QUALIFIED
Costa Y SlusarskiRussiaIvan Magalhaes NEGOTIATION
Misaki P SlusarskiUnited KingdomOnyama Limba RENEWAL
Sinclair P InouyeArgentinaAsiya Javayant UNQUALIFIED
Darci L MaletBrazilXuxue Feng PROPOSAL
Darci V ShinkoAustraliaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin E MaletSpain2025-08-01Morlong Associates RENEWAL1Bernardo Dominic
1001Deepesh C BologniaArgentina2025-08-06King, Christopher A Esq QUALIFIED10Xuxue Feng
1002Julie U SergiIndia2025-08-07Buckley Miller Wright UNQUALIFIED20Asiya Javayant
1003Juan Q MorascaAustralia2025-08-12Rousseaux, Michael Esq NEGOTIATION49Bernardo Dominic
1004Salvatore L VenereIndia2025-07-28Feltz Printing Service NEGOTIATION49Asiya Javayant
1005Claire A FigeroaAustralia2025-08-22Benton, John B Jr RENEWAL51Amy Elsner
1006Wickens L GillianBrazil2025-08-05Benton, John B Jr PROPOSAL53Onyama Limba
1007Costa F ShinkoIndia2025-08-17Buckley Miller Wright NEW37Xuxue Feng
1008Costa Z VocelkaSpain2025-08-19Chanay, Jeffrey A Esq NEGOTIATION34Bernardo Dominic
1009Chavez R OstroskyJapan2025-08-17Rangoni Of Florence NEGOTIATION6Stephen Shaw
1010Kadeem M CaldareraFrance2025-08-15Dorl, James J Esq PROPOSAL9Stephen Shaw
1011Stacey J NestleFrance2025-08-11Chanay, Jeffrey A Esq NEGOTIATION37Onyama Limba
1012Rodrigues D VenereAustralia2025-07-31King, Christopher A Esq QUALIFIED99Elwin Sharvill
1013Tony F BowleyGermany2025-08-12Benton, John B Jr RENEWAL80Elwin Sharvill
1014Alejandro W RulapaughRussia2025-08-04Dorl, James J Esq RENEWAL36Amy Elsner
1015Rodrigues Q CampainIndia2025-07-31Chapman, Ross E Esq QUALIFIED68Amy Elsner
1016Aika P VenereBrazil2025-08-08Chanay, Jeffrey A Esq PROPOSAL34Xuxue Feng
1017Darci H OldroydAustralia2025-08-22Dorl, James J Esq UNQUALIFIED77Bernardo Dominic
1018Clifford K GarufiGermany2025-08-22Truhlar And Truhlar Attys PROPOSAL97Xuxue Feng
1019Arvin Z BriddickJapan2025-08-04Rangoni Of Florence NEGOTIATION44Amy Elsner
1020Antonio P RutaItaly2025-08-09Commercial Press PROPOSAL6Anna Fali
1021Silvio K KolmetzBrazil2025-08-02King, Christopher A Esq RENEWAL63Onyama Limba
1022Jennifer W GauchoJapan2025-07-28Feiner Bros RENEWAL80Ioni Bowcher
1023Isabel B OldroydIndia2025-08-10Chapman, Ross E Esq UNQUALIFIED32Onyama Limba
1024Aika T PoquetteJapan2025-07-30Dorl, James J Esq UNQUALIFIED79Stephen Shaw
1025Leon T GarufiSpain2025-07-31Feiner Bros NEW97Ioni Bowcher
1026Octavia G SchemmerIndia2025-08-07Rangoni Of Florence QUALIFIED37Ivan Magalhaes
1027Smith K KolmetzItaly2025-08-19Feltz Printing Service PROPOSAL84Elwin Sharvill
1028Leon J VocelkaGermany2025-08-06Chanay, Jeffrey A Esq QUALIFIED31Elwin Sharvill
1029Julie H BowleyBrazil2025-08-19Feltz Printing Service NEGOTIATION69Ivan Magalhaes
1030Ashley Y CaldareraJapan2025-08-12Commercial Press RENEWAL11Asiya Javayant
1031Aruna T RimItaly2025-08-14Dorl, James J Esq UNQUALIFIED20Ioni Bowcher
1032Leon H WaycottFrance2025-08-14Commercial Press QUALIFIED21Anna Fali
1033Alejandro S MorascaUnited Kingdom2025-08-09Feiner Bros RENEWAL9Elwin Sharvill
1034Silvio R ChuiBrazil2025-08-01Chapman, Ross E Esq NEW24Anna Fali
1035Izzy V MorascaJapan2025-08-06Morlong Associates NEW74Stephen Shaw
1036Jefferson L PoquetteUnited Kingdom2025-08-14Chanay, Jeffrey A Esq NEW90Bernardo Dominic
1037Claire F GlickCanada2025-08-03King, Christopher A Esq UNQUALIFIED88Amy Elsner
1038Munro G BriddickUnited Kingdom2025-08-05Printing Dimensions UNQUALIFIED81Anna Fali
1039David B FigeroaIndia2025-08-05Chapman, Ross E Esq PROPOSAL28Stephen Shaw
1040Costa F RulapaughSpain2025-08-15Buckley Miller Wright RENEWAL64Xuxue Feng
1041Kadeem T VenereSpain2025-07-31Buckley Miller Wright PROPOSAL67Bernardo Dominic
1042Misaki F CaldareraGermany2025-08-06Buckley Miller Wright NEGOTIATION93Amy Elsner
1043Antonio S SlusarskiBrazil2025-08-05Chanay, Jeffrey A Esq NEGOTIATION60Ioni Bowcher
1044Murillo B FerenczGermany2025-08-05Truhlar And Truhlar Attys RENEWAL33Xuxue Feng
1045Aruna W CampainCanada2025-08-11Buckley Miller Wright PROPOSAL26Ioni Bowcher
1046Jefferson S GillianUnited Kingdom2025-07-28Morlong Associates NEW87Ivan Magalhaes
1047Costa W DoeBrazil2025-08-18Morlong Associates NEGOTIATION94Amy Elsner
1048Nicolas D RimFrance2025-07-31Commercial Press UNQUALIFIED50Elwin Sharvill
1049Alejandro T MaletItaly2025-08-10Chemel, James L Cpa PROPOSAL4Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith D MorascaRussiaXuxue Feng PROPOSAL
Chavez N FlosiItalyIvan Magalhaes PROPOSAL
Emily L WhobreyJapanAnna Fali RENEWAL
Munro H ButtIndiaStephen Shaw UNQUALIFIED
Wickens S WaycottAustraliaIoni Bowcher NEGOTIATION
Maisha L SaylorsFranceStephen Shaw RENEWAL
Francesco O VocelkaItalyAnna Fali PROPOSAL
Ricardo I StockhamCanadaIvan Magalhaes UNQUALIFIED
Arvin L AmigonGermanyXuxue Feng NEGOTIATION
Ricardo I MorascaRussiaAmy Elsner NEW
Stacey T RutaUnited KingdomOnyama Limba RENEWAL
Aditya W AmigonItalyIoni Bowcher NEGOTIATION
Maria O MacleadIndiaIoni Bowcher NEGOTIATION
Smith R CaldareraUnited KingdomAnna Fali PROPOSAL
Maria F PaprockiArgentinaBernardo Dominic PROPOSAL
Faith W FerenczIndiaIvan Magalhaes RENEWAL
Octavia S SergiAustraliaXuxue Feng NEGOTIATION
Mujtaba H FlosiBrazilAsiya Javayant RENEWAL
Claire A ButtBrazilAsiya Javayant RENEWAL
Aditya K BologniaRussiaAsiya Javayant PROPOSAL
Maisha I PerinFranceXuxue Feng QUALIFIED
Antonio D InouyeJapanIoni Bowcher RENEWAL
Clifford I SaylorsUnited KingdomAmy Elsner UNQUALIFIED
Juan Q KolmetzCanadaIoni Bowcher NEGOTIATION
Costa I OstroskyIndiaElwin Sharvill NEW
Ricardo E PaprockiUnited KingdomOnyama Limba NEGOTIATION
Julie M NestleSpainBernardo Dominic NEGOTIATION
Antonio C SchemmerIndiaAsiya Javayant NEW
Rodrigues Y NickaGermanyBernardo Dominic QUALIFIED
Chavez U NestleBrazilXuxue Feng RENEWAL
Juan X SergiAustraliaIoni Bowcher UNQUALIFIED
Tony Y SaylorsRussiaElwin Sharvill QUALIFIED
Antonio G IturbideJapanXuxue Feng RENEWAL
Isabel V FollerArgentinaAnna Fali NEW
Misaki Y MacleadRussiaOnyama Limba NEW
Julie Z ButtSpainAnna Fali NEW
Munro W FlosiFranceAsiya Javayant NEW
Ashley Z GarufiCanadaAmy Elsner NEGOTIATION
Salvatore I CampainIndiaAsiya Javayant NEW
Kaitlin C DoeArgentinaAnna Fali NEW
Ivar S MacleadCanadaAmy Elsner PROPOSAL
Mujtaba L MaletJapanIoni Bowcher PROPOSAL
Sinclair F ButtItalyAnna Fali NEW
Mujtaba Q StensethGermanyIvan Magalhaes PROPOSAL
Ivar D GarufiAustraliaXuxue Feng NEGOTIATION
Tony B WhobreyCanadaAmy Elsner NEGOTIATION
Jennifer K MorascaRussiaXuxue Feng PROPOSAL
Aika P WaycottArgentinaElwin Sharvill QUALIFIED
Jeanfrancois J KuskoRussiaElwin Sharvill RENEWAL
Wickens Z KolmetzArgentinaAsiya Javayant RENEWAL
Frozen Columns
Name
Isabel D Waycott
Claire O Chui
Leja R Foller
Rodrigues W Kusko
Kaitlin K Whobrey
Deepesh M Ostrosky
Claire H Waycott
Tony G Foller
Greenwood O Gillian
Mayumi C Marrier
Chavez N Kolmetz
Kaitlin W Glick
Nicolas N Stockham
Wickens E Albares
Greenwood Z Ruta
Salvatore G Oldroyd
Izzy Z Venere
James M Oldroyd
Aruna C Dilliard
Sinclair C Waycott
Misaki P Caudy
Ricardo F Vocelka
Leja O Gaucho
Francesco S Albares
Murillo G Garufi
Costa M Rulapaugh
Misaki M Paprocki
Kadeem W Waycott
David R Gillian
Juan F Rim
Morrow T Schemmer
Murillo T Rulapaugh
David B Rim
Maisha Y Gaucho
Salvatore Z Malet
Jeanfrancois R Malet
Emily Z Amigon
Jefferson T Ferencz
Octavia M Doe
Aika G Dilliard
Faith W Malet
Deepesh K Ruta
Aruna I Flosi
Isabel Z Ferencz
Morrow J Oldroyd
Darci S Doe
Jennifer A Nestle
Arvin G Briddick
Kadeem Y Kusko
Greenwood R Butt
IdCountryDate
1000Argentina2025-08-21
1001Spain2025-08-22
1002Russia2025-08-21
1003Canada2025-08-04
1004Australia2025-07-30
1005Australia2025-08-15
1006Japan2025-08-21
1007Argentina2025-08-14
1008Italy2025-08-21
1009Japan2025-08-13
1010Canada2025-08-13
1011Argentina2025-08-04
1012Canada2025-08-03
1013Germany2025-07-28
1014Argentina2025-07-29
1015Argentina2025-08-05
1016Spain2025-07-29
1017Germany2025-08-24
1018France2025-08-10
1019France2025-08-12
1020Australia2025-08-16
1021Italy2025-07-30
1022France2025-08-01
1023Russia2025-07-29
1024United Kingdom2025-08-01
1025Canada2025-08-06
1026Australia2025-08-16
1027Brazil2025-08-15
1028Spain2025-08-12
1029Germany2025-08-26
1030Spain2025-08-09
1031Argentina2025-08-10
1032Russia2025-08-05
1033Italy2025-08-20
1034Italy2025-08-24
1035Australia2025-08-20
1036Australia2025-08-09
1037Russia2025-08-19
1038Germany2025-08-20
1039Argentina2025-08-06
1040Brazil2025-08-21
1041Italy2025-08-08
1042France2025-08-24
1043France2025-07-28
1044France2025-08-18
1045United Kingdom2025-08-08
1046Australia2025-08-22
1047Italy2025-08-21
1048France2025-08-14
1049Italy2025-08-18

On-Demand Data

NameIdCountryDate
Isabel C Ostrosky1000Spain2025-07-29
Rodrigues L Waycott1001Spain2025-08-11
Claire L Gillian1002Japan2025-08-09
Misaki I Dilliard1003Canada2025-08-11
Silvio P Caldarera1004United Kingdom2025-08-18
Emily V Waycott1005Brazil2025-08-24
Chavez E Sergi1006Spain2025-08-04
Ricardo H Inouye1007Australia2025-08-23
Jennifer D Stenseth1008Japan2025-08-12
David T Kolmetz1009United Kingdom2025-08-08
Salvatore R Nicka1010United Kingdom2025-08-14
Izzy S Amigon1011Argentina2025-08-14
Isabel C Poquette1012Argentina2025-08-05
Cody L Gaucho1013Japan2025-08-05
Isabel J Nicka1014Germany2025-08-15
Leja C Rulapaugh1015Argentina2025-08-22
Emily J Oldroyd1016Japan2025-08-25
Claire I Caldarera1017India2025-08-11
Kadeem I Ostrosky1018Canada2025-08-19
Deepesh X Butt1019Canada2025-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore H RulapaughAustraliaIvan Magalhaes NEGOTIATION
Adams F IturbideRussiaStephen Shaw QUALIFIED
Arvin Z DilliardFranceIoni Bowcher NEW
Wickens U WaycottBrazilAmy Elsner PROPOSAL
Izzy I AmigonCanadaStephen Shaw QUALIFIED
Jeanfrancois U NestleCanadaIoni Bowcher RENEWAL
Costa I GarufiAustraliaBernardo Dominic UNQUALIFIED
Leon J PerinArgentinaIoni Bowcher PROPOSAL
Leja F StockhamItalyOnyama Limba NEGOTIATION
Tony A ShinkoIndiaAmy Elsner RENEWAL
Smith T MaletArgentinaIoni Bowcher QUALIFIED
Juan B InouyeBrazilStephen Shaw NEGOTIATION
Aika X RulapaughCanadaAsiya Javayant PROPOSAL
Deepesh H BologniaFranceAnna Fali RENEWAL
Arvin Y WhobreyAustraliaElwin Sharvill RENEWAL
Julie U CampainFranceBernardo Dominic UNQUALIFIED
Arvin X FlosiUnited KingdomAsiya Javayant NEGOTIATION
Silvio Y DarakjyIndiaIoni Bowcher RENEWAL
Darci W KuskoArgentinaOnyama Limba QUALIFIED
Jennifer K MaletArgentinaAsiya Javayant RENEWAL
Salvatore O PerinRussiaElwin Sharvill UNQUALIFIED
Murillo O FollerArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois Z FollerCanadaAsiya Javayant QUALIFIED
Murillo B DilliardBrazilAsiya Javayant UNQUALIFIED
Cody J GarufiFranceStephen Shaw UNQUALIFIED
Deepesh G MacleadFranceOnyama Limba NEGOTIATION
Clifford R PerinJapanAmy Elsner PROPOSAL
Claire O TollnerBrazilAnna Fali PROPOSAL
Faith S NestleGermanyElwin Sharvill NEGOTIATION
Cody B BowleyArgentinaBernardo Dominic UNQUALIFIED
Alejandro D PaprockiRussiaStephen Shaw NEGOTIATION
James Y NickaSpainStephen Shaw RENEWAL
Cody X WaycottRussiaAnna Fali PROPOSAL
Morrow J PoquetteAustraliaAmy Elsner PROPOSAL
Kaitlin R CampainBrazilIvan Magalhaes RENEWAL
Juan J WhobreyCanadaIoni Bowcher RENEWAL
Jeanfrancois P SergiIndiaAsiya Javayant QUALIFIED
Ivar B NestleItalyIvan Magalhaes PROPOSAL
Sinclair J KolmetzAustraliaAsiya Javayant PROPOSAL
Claire U ButtBrazilAsiya Javayant 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>