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
Johnson P PoquetteSpainAnna Fali NEGOTIATION
Wickens J ButtArgentinaStephen Shaw QUALIFIED
Maria S MaletAustraliaAsiya Javayant PROPOSAL
Ricardo U VenereUnited KingdomAmy Elsner RENEWAL
Johnson R AmigonFranceIoni Bowcher RENEWAL
Leja W PaprockiRussiaAsiya Javayant UNQUALIFIED
Mayumi T DarakjyArgentinaBernardo Dominic NEGOTIATION
Leja R MaletFranceOnyama Limba NEGOTIATION
Wickens A TollnerArgentinaAnna Fali QUALIFIED
Clifford Q BologniaUnited KingdomAnna Fali NEW
Juan E ChuiRussiaStephen Shaw NEGOTIATION
Murillo G RutaFranceAsiya Javayant NEW
Nicolas T MarrierArgentinaAmy Elsner NEW
Misaki H AlbaresArgentinaStephen Shaw QUALIFIED
Sinclair O RimItalyElwin Sharvill NEW
Jennifer X SlusarskiJapanStephen Shaw UNQUALIFIED
Francesco C IturbideCanadaBernardo Dominic RENEWAL
Emily R OldroydSpainAnna Fali UNQUALIFIED
Clifford W GlickArgentinaOnyama Limba NEW
Chavez Z KuskoRussiaAmy Elsner NEW
Octavia T MorascaSpainAmy Elsner PROPOSAL
Faith M AmigonArgentinaElwin Sharvill NEGOTIATION
Deepesh G MarrierArgentinaElwin Sharvill NEGOTIATION
Nicolas M GauchoItalyIvan Magalhaes QUALIFIED
James K StockhamGermanyAnna Fali NEGOTIATION
Stacey D SchemmerCanadaBernardo Dominic PROPOSAL
Jennifer R WieserUnited KingdomOnyama Limba NEGOTIATION
Johnson B CampainItalyIoni Bowcher PROPOSAL
Jefferson C SchemmerAustraliaElwin Sharvill NEW
Alejandro S RoysterItalyElwin Sharvill PROPOSAL
Salvatore Y ChuiFranceElwin Sharvill UNQUALIFIED
Jefferson N GauchoItalyIvan Magalhaes PROPOSAL
Jeanfrancois E SergiFranceIvan Magalhaes PROPOSAL
Johnson A OldroydRussiaAsiya Javayant RENEWAL
Chavez V FlosiRussiaXuxue Feng RENEWAL
Izzy J GlickArgentinaOnyama Limba NEW
Leja S MacleadCanadaOnyama Limba QUALIFIED
Juan O RulapaughRussiaAsiya Javayant NEW
Faith I BologniaFranceIoni Bowcher NEW
Morrow W MacleadGermanyIoni Bowcher UNQUALIFIED
Nicolas S FigeroaArgentinaAnna Fali NEGOTIATION
Munro M SlusarskiCanadaAnna Fali PROPOSAL
Jeanfrancois V MaletFranceAmy Elsner NEW
Mayumi A OldroydFranceOnyama Limba UNQUALIFIED
Murillo W BologniaAustraliaAnna Fali NEGOTIATION
Cody D RulapaughCanadaAnna Fali RENEWAL
Ricardo U KolmetzFranceXuxue Feng QUALIFIED
James I MacleadSpainAsiya Javayant QUALIFIED
Ricardo Q AmigonArgentinaIvan Magalhaes UNQUALIFIED
Kadeem N NickaRussiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas E OldroydCanadaIoni Bowcher NEGOTIATION
Jefferson I StockhamRussiaBernardo Dominic PROPOSAL
Jefferson D StockhamFranceBernardo Dominic NEGOTIATION
Leja W SlusarskiItalyAmy Elsner UNQUALIFIED
Ivar D MaletItalyElwin Sharvill UNQUALIFIED
Izzy P NickaUnited KingdomIoni Bowcher QUALIFIED
Ashley F ButtUnited KingdomAnna Fali UNQUALIFIED
Clifford U GarufiIndiaElwin Sharvill PROPOSAL
Maisha H MacleadBrazilIoni Bowcher UNQUALIFIED
Rodrigues Z DilliardArgentinaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie K OstroskyItaly2025-07-26Truhlar And Truhlar Attys UNQUALIFIED62Amy Elsner
1001Alejandro D MacleadRussia2025-08-11Feiner Bros QUALIFIED58Ivan Magalhaes
1002Smith K VenereUnited Kingdom2025-08-05Commercial Press PROPOSAL55Onyama Limba
1003Adams I GillianFrance2025-08-21Chanay, Jeffrey A Esq NEW6Elwin Sharvill
1004Jones Y AlbaresIndia2025-08-22Rousseaux, Michael Esq NEW0Ivan Magalhaes
1005Octavia C OldroydItaly2025-08-05King, Christopher A Esq QUALIFIED47Stephen Shaw
1006Johnson Q StensethGermany2025-08-13Dorl, James J Esq NEGOTIATION54Ioni Bowcher
1007Darci Q MaletUnited Kingdom2025-08-10Printing Dimensions QUALIFIED17Xuxue Feng
1008Maria G BologniaArgentina2025-07-26Rousseaux, Michael Esq NEGOTIATION73Xuxue Feng
1009Johnson R FlosiUnited Kingdom2025-08-07Feltz Printing Service UNQUALIFIED13Ivan Magalhaes
1010Kadeem L OldroydIndia2025-08-17Feiner Bros UNQUALIFIED60Ioni Bowcher
1011Antonio G FollerItaly2025-08-23Benton, John B Jr NEW73Amy Elsner
1012Jones O AmigonGermany2025-08-03Rangoni Of Florence NEW62Onyama Limba
1013Chavez G SergiCanada2025-08-03Feiner Bros QUALIFIED25Ioni Bowcher
1014Kaitlin Q StockhamFrance2025-08-21Benton, John B Jr RENEWAL97Ioni Bowcher
1015Clifford M MarrierRussia2025-07-29Truhlar And Truhlar Attys QUALIFIED12Onyama Limba
1016Aika Z FollerAustralia2025-08-09Commercial Press NEGOTIATION38Amy Elsner
1017Mayumi D CaldareraCanada2025-07-28Chanay, Jeffrey A Esq QUALIFIED43Ivan Magalhaes
1018Antonio F FollerRussia2025-08-12Chanay, Jeffrey A Esq PROPOSAL84Anna Fali
1019James G BriddickIndia2025-07-28Printing Dimensions NEW52Amy Elsner
1020Jennifer W KolmetzBrazil2025-07-30Chanay, Jeffrey A Esq QUALIFIED52Ivan Magalhaes
1021Costa M SaylorsFrance2025-08-13Rangoni Of Florence UNQUALIFIED39Ivan Magalhaes
1022Cody L VocelkaRussia2025-08-19Feiner Bros PROPOSAL87Xuxue Feng
1023Morrow N GarufiIndia2025-07-27Morlong Associates UNQUALIFIED54Ioni Bowcher
1024Leon I GillianCanada2025-07-25Chapman, Ross E Esq NEGOTIATION15Xuxue Feng
1025Mayumi S RulapaughCanada2025-08-04Rousseaux, Michael Esq NEGOTIATION69Bernardo Dominic
1026Octavia G RoysterIndia2025-08-05King, Christopher A Esq QUALIFIED38Anna Fali
1027Deepesh J StensethItaly2025-07-28Buckley Miller Wright NEW57Amy Elsner
1028Nicolas A FollerBrazil2025-08-04Dorl, James J Esq PROPOSAL88Xuxue Feng
1029Juan A DarakjyCanada2025-08-23Feiner Bros NEGOTIATION38Elwin Sharvill
1030Salvatore J NickaRussia2025-08-11Feltz Printing Service RENEWAL34Bernardo Dominic
1031Johnson I MaletFrance2025-07-25Rousseaux, Michael Esq PROPOSAL73Anna Fali
1032Murillo C RulapaughRussia2025-08-09Feiner Bros PROPOSAL15Xuxue Feng
1033Jones B OstroskyFrance2025-08-12Feiner Bros NEW23Onyama Limba
1034Morrow H BowleyRussia2025-07-30Dorl, James J Esq NEW36Ioni Bowcher
1035Izzy C PaprockiUnited Kingdom2025-08-03Benton, John B Jr NEGOTIATION19Ivan Magalhaes
1036Morrow S PaprockiItaly2025-08-12Rangoni Of Florence NEGOTIATION93Ivan Magalhaes
1037Octavia I GarufiBrazil2025-08-04Benton, John B Jr PROPOSAL78Onyama Limba
1038Claire M FlosiUnited Kingdom2025-08-03Commercial Press RENEWAL3Anna Fali
1039Leja R DoeCanada2025-07-29Chemel, James L Cpa UNQUALIFIED3Asiya Javayant
1040Aditya N RimCanada2025-08-14Feiner Bros UNQUALIFIED14Xuxue Feng
1041Greenwood Q RoysterGermany2025-07-27Buckley Miller Wright NEW41Asiya Javayant
1042Jefferson B NestleGermany2025-08-15Morlong Associates PROPOSAL17Ivan Magalhaes
1043Rodrigues F AmigonCanada2025-08-11Morlong Associates UNQUALIFIED89Xuxue Feng
1044Leja R GillianItaly2025-08-01Chemel, James L Cpa UNQUALIFIED82Xuxue Feng
1045David Z OstroskyItaly2025-08-13King, Christopher A Esq QUALIFIED54Ivan Magalhaes
1046Smith D RulapaughFrance2025-08-18Rangoni Of Florence NEGOTIATION80Ivan Magalhaes
1047Mayumi M SlusarskiBrazil2025-08-21Rangoni Of Florence QUALIFIED12Anna Fali
1048Maisha I MarrierIndia2025-08-20Commercial Press QUALIFIED93Elwin Sharvill
1049Aditya U MaletJapan2025-07-25King, Christopher A Esq QUALIFIED24Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Deepesh F RulapaughRussiaIoni Bowcher PROPOSAL
Salvatore A GauchoBrazilAsiya Javayant QUALIFIED
Stacey Z NestleJapanAsiya Javayant PROPOSAL
Murillo D GauchoUnited KingdomAmy Elsner UNQUALIFIED
Wickens O StockhamBrazilBernardo Dominic QUALIFIED
Jefferson B NickaGermanyAsiya Javayant QUALIFIED
Rodrigues Y ChuiBrazilElwin Sharvill QUALIFIED
Isabel W VocelkaGermanyStephen Shaw NEW
Arvin U WaycottFranceAnna Fali NEW
Francesco U BriddickSpainElwin Sharvill NEGOTIATION
Jones V RimUnited KingdomAnna Fali UNQUALIFIED
Mujtaba U MorascaArgentinaXuxue Feng NEGOTIATION
David J GarufiFranceOnyama Limba NEW
James L VenereGermanyAmy Elsner NEW
Murillo L AmigonArgentinaAnna Fali RENEWAL
Greenwood D MorascaRussiaStephen Shaw QUALIFIED
Claire O BriddickArgentinaAsiya Javayant PROPOSAL
Silvio U IturbideCanadaBernardo Dominic RENEWAL
Salvatore C RimArgentinaAnna Fali NEW
Murillo E DarakjySpainStephen Shaw NEGOTIATION
Cody J FlosiAustraliaXuxue Feng UNQUALIFIED
Jennifer Z PerinFranceElwin Sharvill QUALIFIED
Jennifer F ChuiItalyOnyama Limba PROPOSAL
Leon L KolmetzJapanAsiya Javayant NEGOTIATION
Leon G FerenczJapanAsiya Javayant NEGOTIATION
Murillo O FerenczIndiaAnna Fali PROPOSAL
Greenwood N OldroydUnited KingdomXuxue Feng NEGOTIATION
Arvin E KuskoAustraliaStephen Shaw UNQUALIFIED
Aika R FollerIndiaIoni Bowcher NEGOTIATION
Silvio X FigeroaAustraliaAnna Fali PROPOSAL
David X CampainJapanStephen Shaw RENEWAL
Aika E IturbideJapanElwin Sharvill RENEWAL
Arvin K MaletGermanyStephen Shaw UNQUALIFIED
Faith W PaprockiAustraliaOnyama Limba RENEWAL
Leja V ShinkoRussiaOnyama Limba PROPOSAL
Jennifer L OldroydAustraliaOnyama Limba PROPOSAL
Maria T BologniaArgentinaStephen Shaw NEW
Leon C WhobreySpainOnyama Limba NEW
Aditya Q VenereItalyAnna Fali RENEWAL
Aditya I MorascaIndiaXuxue Feng NEW
Isabel E FollerGermanyAsiya Javayant NEGOTIATION
Cody N RimFranceBernardo Dominic QUALIFIED
Leja A SergiSpainXuxue Feng PROPOSAL
Jennifer X PaprockiArgentinaStephen Shaw UNQUALIFIED
Maisha S CaldareraFranceAnna Fali NEGOTIATION
Francesco O GarufiCanadaAmy Elsner QUALIFIED
Munro D ButtUnited KingdomBernardo Dominic NEGOTIATION
Sinclair F GarufiAustraliaStephen Shaw PROPOSAL
David V DilliardRussiaAnna Fali RENEWAL
Ivar Y GlickBrazilElwin Sharvill NEW
Frozen Columns
Name
James P Doe
Jones D Garufi
Johnson N Campain
Isabel E Rim
Jeanfrancois O Kusko
Clifford I Stenseth
Greenwood Y Shinko
Costa S Vocelka
Morrow R Caudy
Wickens Q Rim
Octavia N Paprocki
Adams X Waycott
Ashley U Sergi
Chavez P Saylors
Murillo X Saylors
Leon N Paprocki
Mujtaba P Dilliard
Stacey Z Slusarski
Cody B Doe
Deepesh Q Malet
Greenwood F Maclead
Clifford D Venere
Izzy F Royster
Stacey Z Campain
David U Waycott
Wickens V Ferencz
Mayumi P Nicka
Antonio Y Saylors
Alejandro P Flosi
Deepesh L Chui
Isabel J Poquette
Kadeem Y Malet
Ivar Z Royster
Ricardo G Waycott
Aditya Q Nestle
Mujtaba C Glick
Leon M Iturbide
Munro Y Iturbide
Leja R Malet
Chavez N Gillian
Aditya G Albares
Aika Y Rim
Leja M Rim
Salvatore R Maclead
Salvatore D Gaucho
Greenwood L Wieser
Francesco P Venere
Faith E Stockham
Julie I Bolognia
Leon F Bowley
IdCountryDate
1000Germany2025-08-21
1001Germany2025-08-14
1002United Kingdom2025-08-02
1003Japan2025-08-19
1004Russia2025-08-16
1005United Kingdom2025-08-12
1006France2025-08-02
1007Germany2025-08-23
1008Argentina2025-07-28
1009United Kingdom2025-08-17
1010Canada2025-08-18
1011Italy2025-08-07
1012Spain2025-08-15
1013United Kingdom2025-08-20
1014Argentina2025-08-15
1015Germany2025-07-28
1016France2025-08-05
1017Spain2025-08-15
1018Japan2025-07-25
1019Argentina2025-08-11
1020Spain2025-07-29
1021Australia2025-08-20
1022Italy2025-07-30
1023Canada2025-08-16
1024Australia2025-08-17
1025Germany2025-08-21
1026India2025-08-19
1027Australia2025-08-23
1028Brazil2025-08-09
1029Germany2025-08-04
1030Spain2025-08-06
1031Spain2025-08-02
1032Germany2025-08-11
1033Japan2025-08-19
1034France2025-07-25
1035Australia2025-07-25
1036Canada2025-08-20
1037France2025-08-15
1038Argentina2025-08-14
1039United Kingdom2025-08-10
1040Russia2025-08-04
1041United Kingdom2025-08-07
1042France2025-07-27
1043France2025-08-01
1044Brazil2025-08-20
1045India2025-08-19
1046Australia2025-08-21
1047India2025-07-29
1048Canada2025-08-19
1049Russia2025-07-27

On-Demand Data

NameIdCountryDate
Mujtaba X Bolognia1000Spain2025-08-13
Aika B Inouye1001Argentina2025-07-26
Octavia U Glick1002Spain2025-08-01
Adams B Ostrosky1003Spain2025-08-23
Isabel T Gillian1004Japan2025-08-14
Salvatore K Venere1005Japan2025-08-08
James T Oldroyd1006Argentina2025-07-30
Francesco J Stenseth1007Japan2025-08-08
Leja A Ostrosky1008Argentina2025-07-25
Antonio W Figeroa1009Spain2025-08-13
Jones I Caudy1010Russia2025-08-18
Emily G Foller1011Argentina2025-08-15
Juan W Garufi1012Australia2025-07-27
Johnson T Sergi1013France2025-08-18
Rodrigues C Chui1014Canada2025-08-21
Rodrigues M Maclead1015Spain2025-08-05
James E Bolognia1016India2025-08-16
Jones B Paprocki1017India2025-07-31
Aruna N Tollner1018Italy2025-08-01
Smith H Doe1019Japan2025-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie T ShinkoBrazilAnna Fali UNQUALIFIED
Cody M NickaGermanyBernardo Dominic PROPOSAL
Salvatore E BriddickIndiaXuxue Feng RENEWAL
Darci P OstroskyGermanyIoni Bowcher RENEWAL
Faith E CaldareraRussiaIvan Magalhaes UNQUALIFIED
David P WhobreyGermanyIoni Bowcher PROPOSAL
Darci D SergiIndiaAmy Elsner RENEWAL
Smith Q DoeRussiaAsiya Javayant QUALIFIED
Adams M GauchoFranceAmy Elsner NEW
Sinclair Y AlbaresIndiaAnna Fali NEGOTIATION
Isabel I AlbaresArgentinaAmy Elsner RENEWAL
Jefferson Y DarakjyIndiaAnna Fali QUALIFIED
Tony L AlbaresSpainIvan Magalhaes RENEWAL
David O StockhamCanadaXuxue Feng QUALIFIED
Izzy E IturbideItalyStephen Shaw NEW
Izzy N SlusarskiRussiaOnyama Limba QUALIFIED
Nicolas F KolmetzItalyXuxue Feng UNQUALIFIED
Costa K StockhamCanadaOnyama Limba RENEWAL
Maria X RutaSpainBernardo Dominic NEGOTIATION
Leon K GillianFranceBernardo Dominic NEW
Greenwood T TollnerUnited KingdomOnyama Limba NEW
Silvio D RimRussiaXuxue Feng PROPOSAL
Silvio V BowleyAustraliaAmy Elsner QUALIFIED
Maria Y DoeGermanyIvan Magalhaes UNQUALIFIED
Deepesh Z ShinkoItalyIoni Bowcher QUALIFIED
Adams I KuskoSpainIoni Bowcher NEW
Sinclair K BriddickItalyXuxue Feng QUALIFIED
Aruna I PaprockiCanadaBernardo Dominic UNQUALIFIED
Wickens P KolmetzBrazilAnna Fali UNQUALIFIED
Rodrigues N TollnerArgentinaStephen Shaw NEGOTIATION
Johnson Y StensethSpainAnna Fali QUALIFIED
Leja A PerinCanadaStephen Shaw PROPOSAL
Adams B GlickItalyStephen Shaw RENEWAL
Smith X WaycottFranceAnna Fali QUALIFIED
Maisha E MaletIndiaAmy Elsner PROPOSAL
Octavia K RimSpainElwin Sharvill QUALIFIED
Jefferson T ShinkoFranceXuxue Feng PROPOSAL
Julie G NickaItalyXuxue Feng NEW
James D PoquetteFranceAmy Elsner PROPOSAL
Leon P BologniaFranceStephen Shaw NEGOTIATION

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