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
Isabel J KolmetzCanadaIvan Magalhaes PROPOSAL
Jones R IturbideJapanIoni Bowcher QUALIFIED
Costa Y MaletSpainAmy Elsner NEW
Aruna C BowleyFranceIoni Bowcher NEGOTIATION
Adams L StensethBrazilAmy Elsner NEW
Arvin E WieserBrazilXuxue Feng NEW
James Y RulapaughIndiaXuxue Feng QUALIFIED
Greenwood I PerinItalyAmy Elsner NEGOTIATION
Octavia A IturbideSpainElwin Sharvill NEW
Salvatore Z FlosiIndiaAsiya Javayant PROPOSAL
Arvin B MaletSpainAsiya Javayant QUALIFIED
Tony D GillianUnited KingdomBernardo Dominic QUALIFIED
Faith Y RulapaughItalyElwin Sharvill RENEWAL
Arvin B OldroydFranceAnna Fali RENEWAL
Faith Q DilliardArgentinaAnna Fali NEGOTIATION
Antonio W MaletArgentinaElwin Sharvill NEW
Ashley U AmigonFranceOnyama Limba NEGOTIATION
Clifford F AlbaresAustraliaAnna Fali PROPOSAL
Aika T CaldareraGermanyAnna Fali PROPOSAL
Claire V WaycottRussiaIoni Bowcher NEGOTIATION
Morrow D DilliardUnited KingdomStephen Shaw PROPOSAL
Adams U MaletCanadaOnyama Limba NEGOTIATION
Jefferson T MarrierBrazilAsiya Javayant PROPOSAL
Antonio X FlosiBrazilIvan Magalhaes NEGOTIATION
Maria E VocelkaItalyOnyama Limba RENEWAL
Adams T ButtFranceBernardo Dominic PROPOSAL
Adams A AlbaresBrazilBernardo Dominic QUALIFIED
Smith E MacleadFranceXuxue Feng NEW
Ricardo W FlosiCanadaIvan Magalhaes RENEWAL
Jeanfrancois L MaletBrazilAnna Fali NEW
Mayumi C RutaRussiaBernardo Dominic UNQUALIFIED
Nicolas B VenereFranceAmy Elsner RENEWAL
Mayumi F PoquetteBrazilAsiya Javayant PROPOSAL
Murillo M CaudyIndiaOnyama Limba PROPOSAL
Morrow H IturbideSpainIoni Bowcher RENEWAL
Clifford U SlusarskiIndiaBernardo Dominic NEGOTIATION
Nicolas X StockhamArgentinaAsiya Javayant RENEWAL
Jefferson J RutaUnited KingdomAmy Elsner QUALIFIED
Wickens Z BriddickBrazilAmy Elsner RENEWAL
Arvin J OldroydBrazilBernardo Dominic UNQUALIFIED
Julie B AlbaresRussiaXuxue Feng NEGOTIATION
Ivar C PaprockiGermanyBernardo Dominic RENEWAL
Aditya U SchemmerIndiaIoni Bowcher RENEWAL
Kaitlin A GillianFranceIvan Magalhaes NEGOTIATION
Sinclair U WieserFranceStephen Shaw NEW
Aruna L VocelkaFranceIoni Bowcher RENEWAL
Aika V FerenczUnited KingdomAsiya Javayant PROPOSAL
Munro C DoeCanadaXuxue Feng UNQUALIFIED
Adams U VocelkaCanadaIoni Bowcher QUALIFIED
Mayumi F PaprockiArgentinaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa G FerenczCanadaAsiya Javayant RENEWAL
Deepesh K GillianGermanyStephen Shaw UNQUALIFIED
Jennifer F SlusarskiItalyStephen Shaw UNQUALIFIED
Isabel T VocelkaArgentinaIoni Bowcher RENEWAL
Juan A InouyeGermanyAnna Fali RENEWAL
Maria V StockhamJapanBernardo Dominic QUALIFIED
Greenwood N RimUnited KingdomAmy Elsner QUALIFIED
Aruna X MacleadArgentinaOnyama Limba RENEWAL
Costa A OldroydRussiaAsiya Javayant RENEWAL
David N BowleyItalyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria N FlosiCanada2025-08-26Dorl, James J Esq NEGOTIATION71Amy Elsner
1001Ashley U OldroydIndia2025-08-16Chemel, James L Cpa NEW76Xuxue Feng
1002Julie L SergiItaly2025-08-24Benton, John B Jr UNQUALIFIED64Stephen Shaw
1003Rodrigues X ShinkoRussia2025-08-25Feiner Bros PROPOSAL85Xuxue Feng
1004David A BriddickJapan2025-08-03Buckley Miller Wright NEW96Amy Elsner
1005Emily A OldroydCanada2025-08-06Rangoni Of Florence NEGOTIATION20Onyama Limba
1006Ashley G PerinGermany2025-08-04Chanay, Jeffrey A Esq NEW14Xuxue Feng
1007Emily N DilliardIndia2025-08-14Feiner Bros QUALIFIED67Stephen Shaw
1008Ricardo U PerinBrazil2025-08-22Buckley Miller Wright UNQUALIFIED21Stephen Shaw
1009Aditya U GillianCanada2025-07-30Rousseaux, Michael Esq NEGOTIATION18Amy Elsner
1010Deepesh V FigeroaCanada2025-08-22Dorl, James J Esq NEGOTIATION14Ivan Magalhaes
1011Mujtaba D StensethJapan2025-08-16Feltz Printing Service NEGOTIATION2Asiya Javayant
1012Silvio W MaletItaly2025-08-21Truhlar And Truhlar Attys NEW37Anna Fali
1013Silvio M CaldareraRussia2025-08-23King, Christopher A Esq NEW58Anna Fali
1014Chavez Z StockhamArgentina2025-08-15Benton, John B Jr PROPOSAL20Anna Fali
1015Cody V FerenczRussia2025-08-13Commercial Press RENEWAL11Onyama Limba
1016Claire M PerinSpain2025-08-23Printing Dimensions UNQUALIFIED96Stephen Shaw
1017Smith J CaudyGermany2025-08-19Truhlar And Truhlar Attys UNQUALIFIED40Elwin Sharvill
1018Stacey J IturbideJapan2025-08-11Rangoni Of Florence UNQUALIFIED61Bernardo Dominic
1019Kaitlin L BowleyIndia2025-08-08Chapman, Ross E Esq NEW18Amy Elsner
1020Morrow O RimUnited Kingdom2025-07-31Printing Dimensions UNQUALIFIED74Xuxue Feng
1021Johnson C CaldareraIndia2025-08-20Feltz Printing Service UNQUALIFIED18Bernardo Dominic
1022Isabel V CaldareraFrance2025-08-18Chanay, Jeffrey A Esq NEW37Anna Fali
1023Antonio X BologniaRussia2025-08-20Commercial Press NEW23Onyama Limba
1024Aika S TollnerItaly2025-08-14Rangoni Of Florence PROPOSAL4Anna Fali
1025Smith L MarrierIndia2025-08-24Feltz Printing Service QUALIFIED30Elwin Sharvill
1026Francesco A GillianItaly2025-08-04Buckley Miller Wright UNQUALIFIED58Bernardo Dominic
1027James V CaldareraIndia2025-08-05Morlong Associates NEW81Elwin Sharvill
1028Octavia G GlickItaly2025-08-06King, Christopher A Esq QUALIFIED41Xuxue Feng
1029Tony N AmigonJapan2025-08-14Feiner Bros NEGOTIATION71Onyama Limba
1030Ivar G AlbaresIndia2025-08-16Benton, John B Jr PROPOSAL28Xuxue Feng
1031Izzy D FlosiUnited Kingdom2025-08-21Feiner Bros NEGOTIATION21Ivan Magalhaes
1032Tony I FlosiBrazil2025-07-30Chapman, Ross E Esq UNQUALIFIED60Asiya Javayant
1033Jeanfrancois R GauchoGermany2025-08-24Chanay, Jeffrey A Esq RENEWAL61Onyama Limba
1034James S MacleadCanada2025-08-03Rousseaux, Michael Esq NEW48Stephen Shaw
1035Kaitlin G NestleRussia2025-08-10Chanay, Jeffrey A Esq NEGOTIATION75Amy Elsner
1036Stacey J DilliardSpain2025-08-11King, Christopher A Esq NEGOTIATION83Elwin Sharvill
1037Clifford M PerinItaly2025-08-02Morlong Associates QUALIFIED75Ivan Magalhaes
1038Aruna J CaldareraArgentina2025-08-07Dorl, James J Esq NEGOTIATION52Stephen Shaw
1039Misaki N GauchoItaly2025-08-26Truhlar And Truhlar Attys NEW59Elwin Sharvill
1040Leja U OstroskyGermany2025-08-28Rousseaux, Michael Esq NEW85Xuxue Feng
1041Claire Z StensethArgentina2025-08-19Chemel, James L Cpa NEGOTIATION84Ivan Magalhaes
1042Leon C FlosiUnited Kingdom2025-08-10Benton, John B Jr NEW66Asiya Javayant
1043Misaki X MorascaGermany2025-07-31Chapman, Ross E Esq RENEWAL83Elwin Sharvill
1044Wickens O WieserArgentina2025-08-10Feiner Bros UNQUALIFIED65Xuxue Feng
1045Kaitlin W SergiJapan2025-08-17Dorl, James J Esq NEW39Xuxue Feng
1046Nicolas M StockhamBrazil2025-08-04Chanay, Jeffrey A Esq UNQUALIFIED72Asiya Javayant
1047Leja A AlbaresItaly2025-08-28Commercial Press PROPOSAL31Elwin Sharvill
1048Kaitlin I KolmetzAustralia2025-08-26Printing Dimensions NEW83Elwin Sharvill
1049Julie I MaletArgentina2025-08-12Chapman, Ross E Esq NEW99Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ashley C RutaRussiaIoni Bowcher NEW
Aika K GauchoJapanOnyama Limba QUALIFIED
Claire P NickaRussiaBernardo Dominic QUALIFIED
Faith F CaudyUnited KingdomElwin Sharvill NEGOTIATION
Chavez R BowleyUnited KingdomBernardo Dominic NEGOTIATION
Claire U RoysterFranceAsiya Javayant QUALIFIED
Octavia E OldroydBrazilOnyama Limba UNQUALIFIED
Cody W BowleyBrazilElwin Sharvill PROPOSAL
Ivar E FlosiGermanyOnyama Limba NEGOTIATION
Aika F AmigonRussiaAnna Fali NEW
Faith W GauchoUnited KingdomOnyama Limba UNQUALIFIED
Wickens K PoquetteItalyXuxue Feng QUALIFIED
Nicolas M CaldareraArgentinaIvan Magalhaes NEGOTIATION
Aika W VocelkaBrazilStephen Shaw PROPOSAL
Jeanfrancois H FerenczFranceAnna Fali QUALIFIED
Leon O GarufiBrazilBernardo Dominic PROPOSAL
Adams Q PerinUnited KingdomOnyama Limba RENEWAL
Isabel R SchemmerJapanStephen Shaw RENEWAL
Mujtaba Y PaprockiFranceElwin Sharvill NEGOTIATION
Nicolas U StockhamAustraliaAsiya Javayant QUALIFIED
Aruna S NickaUnited KingdomXuxue Feng QUALIFIED
David B StockhamBrazilIoni Bowcher UNQUALIFIED
Maisha O RoysterJapanAnna Fali RENEWAL
Ricardo U KuskoGermanyIvan Magalhaes UNQUALIFIED
Maisha V BriddickRussiaOnyama Limba NEGOTIATION
Jefferson P RoysterUnited KingdomIoni Bowcher RENEWAL
Julie C ChuiIndiaXuxue Feng NEW
Chavez J NickaItalyElwin Sharvill QUALIFIED
Jennifer E RimBrazilAsiya Javayant NEGOTIATION
Clifford I NickaJapanXuxue Feng PROPOSAL
Murillo Q PerinFranceBernardo Dominic QUALIFIED
Francesco P CaldareraFranceAsiya Javayant UNQUALIFIED
Wickens O AlbaresAustraliaIoni Bowcher NEGOTIATION
David A PoquetteItalyXuxue Feng NEGOTIATION
Leon D RimCanadaAsiya Javayant PROPOSAL
Kaitlin Y MorascaSpainElwin Sharvill PROPOSAL
Adams B FlosiUnited KingdomIvan Magalhaes RENEWAL
Kaitlin B ButtJapanIvan Magalhaes NEGOTIATION
Jeanfrancois Q KuskoJapanBernardo Dominic NEW
Aika J RulapaughJapanAsiya Javayant UNQUALIFIED
Jones P MacleadCanadaAsiya Javayant UNQUALIFIED
Alejandro E AlbaresFranceElwin Sharvill RENEWAL
Tony M VenereAustraliaElwin Sharvill NEGOTIATION
James M VocelkaIndiaAnna Fali PROPOSAL
Smith F OldroydBrazilAsiya Javayant PROPOSAL
Kadeem Y SchemmerItalyAmy Elsner RENEWAL
Darci M VenereCanadaOnyama Limba RENEWAL
Maria J RoysterSpainElwin Sharvill NEGOTIATION
Francesco Y ShinkoArgentinaXuxue Feng QUALIFIED
Smith P PerinCanadaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Emily P Tollner
Jennifer B Nestle
Stacey M Stenseth
Misaki I Waycott
Chavez G Caldarera
Jefferson C Tollner
Jennifer F Ferencz
Adams N Oldroyd
Kadeem L Albares
Ricardo R Oldroyd
Morrow Q Bolognia
Silvio F Waycott
Mayumi P Glick
Aruna R Oldroyd
Wickens E Waycott
Sinclair H Nestle
Aika H Sergi
Julie C Inouye
Nicolas A Iturbide
Aruna E Saylors
Aika C Glick
Misaki E Doe
Jefferson Y Venere
Ivar F Ruta
Sinclair L Morasca
Julie H Caudy
Adams T Briddick
Leja L Iturbide
Julie V Campain
Chavez U Glick
Francesco J Caldarera
Mayumi K Maclead
Silvio G Glick
Leon X Caldarera
James V Venere
David L Rulapaugh
Claire M Dilliard
Rodrigues D Briddick
Jefferson M Poquette
Antonio X Ostrosky
Julie B Amigon
Nicolas W Chui
Izzy B Waycott
Wickens E Figeroa
Wickens B Paprocki
Mujtaba I Perin
Nicolas U Wieser
Stacey O Inouye
Ivar I Poquette
Aruna T Kusko
IdCountryDate
1000India2025-08-05
1001Italy2025-08-15
1002France2025-08-09
1003United Kingdom2025-08-28
1004Brazil2025-08-13
1005Italy2025-08-15
1006Argentina2025-08-20
1007France2025-08-02
1008United Kingdom2025-08-28
1009Canada2025-08-25
1010Argentina2025-08-09
1011Australia2025-08-05
1012Russia2025-08-10
1013Argentina2025-08-15
1014Canada2025-08-18
1015Japan2025-08-23
1016Canada2025-08-01
1017United Kingdom2025-08-19
1018Brazil2025-08-27
1019Argentina2025-08-02
1020Russia2025-08-15
1021India2025-08-12
1022France2025-08-21
1023Argentina2025-08-20
1024France2025-08-21
1025Russia2025-08-16
1026United Kingdom2025-08-01
1027Germany2025-08-12
1028France2025-08-27
1029France2025-08-04
1030Australia2025-08-21
1031Australia2025-08-03
1032Australia2025-08-21
1033Argentina2025-08-15
1034Brazil2025-08-04
1035Russia2025-08-25
1036India2025-08-22
1037Germany2025-08-15
1038Australia2025-08-06
1039Canada2025-08-07
1040Germany2025-08-13
1041United Kingdom2025-08-18
1042Germany2025-08-22
1043France2025-08-22
1044Spain2025-08-20
1045Russia2025-08-01
1046Spain2025-08-08
1047Canada2025-08-16
1048India2025-08-07
1049India2025-08-28

On-Demand Data

NameIdCountryDate
Stacey A Ferencz1000Germany2025-08-28
Faith I Doe1001Italy2025-08-24
Kadeem T Tollner1002Italy2025-07-30
Costa N Nicka1003India2025-08-09
Ivar W Malet1004Russia2025-08-08
Cody R Ostrosky1005Italy2025-08-28
Leon X Rim1006Russia2025-08-11
Jeanfrancois C Perin1007Australia2025-08-23
Ivar K Vocelka1008Argentina2025-08-28
Ivar D Poquette1009Brazil2025-08-18
Arvin B Amigon1010United Kingdom2025-08-27
Aditya X Briddick1011Argentina2025-07-31
Kaitlin X Ruta1012Germany2025-08-09
Claire X Gillian1013India2025-08-08
Claire I Malet1014Canada2025-08-26
Francesco Y Ruta1015Spain2025-07-30
Alejandro H Shinko1016France2025-08-03
Murillo L Schemmer1017Italy2025-08-19
Emily Y Doe1018France2025-07-30
Leon Q Tollner1019Argentina2025-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo E MaletCanadaOnyama Limba QUALIFIED
Isabel T KuskoCanadaAsiya Javayant NEGOTIATION
Kaitlin U DoeUnited KingdomElwin Sharvill NEW
David S PoquetteRussiaBernardo Dominic NEW
Kadeem F GillianFranceStephen Shaw QUALIFIED
Stacey Q SaylorsItalyIoni Bowcher UNQUALIFIED
Clifford E SlusarskiCanadaElwin Sharvill QUALIFIED
Izzy Z BriddickIndiaAsiya Javayant UNQUALIFIED
Tony S InouyeItalyXuxue Feng PROPOSAL
Tony H FerenczCanadaAmy Elsner NEGOTIATION
Ricardo L SchemmerArgentinaAsiya Javayant NEGOTIATION
Smith N ButtGermanyAmy Elsner NEGOTIATION
Julie X WhobreySpainIvan Magalhaes NEGOTIATION
Aruna K ChuiJapanAsiya Javayant UNQUALIFIED
James Q RoysterRussiaStephen Shaw UNQUALIFIED
Munro O RutaIndiaBernardo Dominic NEW
Sinclair Z SlusarskiItalyBernardo Dominic QUALIFIED
Juan B StockhamBrazilOnyama Limba NEGOTIATION
James S SlusarskiGermanyXuxue Feng PROPOSAL
Ashley V KuskoArgentinaXuxue Feng NEGOTIATION
Aruna D IturbideCanadaIoni Bowcher NEGOTIATION
Costa Z CaudyAustraliaBernardo Dominic RENEWAL
Leja K RoysterAustraliaIvan Magalhaes RENEWAL
Silvio W OstroskySpainBernardo Dominic QUALIFIED
Wickens F PerinFranceAnna Fali NEGOTIATION
Mayumi Z GlickFranceBernardo Dominic UNQUALIFIED
Murillo M GarufiJapanIvan Magalhaes QUALIFIED
Wickens D GauchoArgentinaAmy Elsner NEGOTIATION
Francesco X FerenczGermanyOnyama Limba PROPOSAL
Octavia S MarrierSpainStephen Shaw QUALIFIED
Izzy H CaldareraItalyElwin Sharvill RENEWAL
Octavia K SlusarskiCanadaIvan Magalhaes RENEWAL
Greenwood H GauchoUnited KingdomAsiya Javayant PROPOSAL
Johnson K StockhamCanadaBernardo Dominic QUALIFIED
Francesco F WaycottArgentinaAnna Fali NEGOTIATION
Cody K FerenczGermanyStephen Shaw RENEWAL
Claire K SergiJapanAsiya Javayant NEGOTIATION
Isabel T ChuiCanadaXuxue Feng RENEWAL
Greenwood G DarakjyGermanyIvan Magalhaes NEGOTIATION
Clifford R MaletCanadaXuxue Feng 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>