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
Cody R FollerSpainBernardo Dominic RENEWAL
Ivar K KolmetzSpainElwin Sharvill PROPOSAL
Maria V VenereCanadaElwin Sharvill NEW
Mayumi O StensethSpainElwin Sharvill QUALIFIED
Rodrigues Y ButtItalyXuxue Feng UNQUALIFIED
Murillo F DoeUnited KingdomIoni Bowcher UNQUALIFIED
Misaki F BologniaItalyElwin Sharvill QUALIFIED
Johnson W VocelkaArgentinaAnna Fali NEW
Morrow O CaudySpainXuxue Feng PROPOSAL
Misaki F InouyeRussiaOnyama Limba NEW
Faith I WhobreyIndiaAmy Elsner UNQUALIFIED
Greenwood H OldroydJapanBernardo Dominic NEW
Juan M SergiRussiaElwin Sharvill PROPOSAL
Adams O MorascaFranceElwin Sharvill QUALIFIED
Adams P CampainBrazilAmy Elsner QUALIFIED
Mujtaba B TollnerAustraliaIvan Magalhaes RENEWAL
Juan K RimItalyOnyama Limba RENEWAL
Ivar X MaletRussiaXuxue Feng NEGOTIATION
Faith Y StensethSpainIoni Bowcher QUALIFIED
Greenwood L FlosiRussiaAmy Elsner QUALIFIED
Deepesh T ButtArgentinaIvan Magalhaes UNQUALIFIED
Isabel O StensethFranceOnyama Limba QUALIFIED
Misaki B RimIndiaStephen Shaw PROPOSAL
Tony R RoysterArgentinaElwin Sharvill RENEWAL
Murillo H CampainRussiaIoni Bowcher UNQUALIFIED
Francesco A CaudyAustraliaXuxue Feng QUALIFIED
Juan V OldroydFranceIvan Magalhaes QUALIFIED
Morrow Z MaletJapanIoni Bowcher NEGOTIATION
Johnson F CaudyIndiaAnna Fali QUALIFIED
Juan Q AlbaresCanadaXuxue Feng UNQUALIFIED
Darci P FerenczAustraliaAmy Elsner QUALIFIED
Jennifer J CaudyRussiaBernardo Dominic NEGOTIATION
Aditya X FigeroaAustraliaAsiya Javayant PROPOSAL
Wickens W CaudyIndiaIvan Magalhaes NEW
Arvin Q AmigonJapanAsiya Javayant PROPOSAL
Julie V ChuiArgentinaAmy Elsner UNQUALIFIED
Isabel V ShinkoIndiaBernardo Dominic PROPOSAL
Smith F GlickSpainAnna Fali RENEWAL
Leja L GillianBrazilAnna Fali UNQUALIFIED
Adams W FerenczGermanyStephen Shaw UNQUALIFIED
Claire M FollerJapanIvan Magalhaes RENEWAL
Kadeem B NestleFranceIoni Bowcher UNQUALIFIED
Rodrigues T NickaArgentinaOnyama Limba NEW
Ashley T GlickGermanyAmy Elsner NEW
Mujtaba C WaycottFranceIvan Magalhaes PROPOSAL
Leja R WhobreySpainAsiya Javayant RENEWAL
Smith N GauchoGermanyAnna Fali NEGOTIATION
Tony B RutaSpainOnyama Limba RENEWAL
Darci H KolmetzFranceIvan Magalhaes PROPOSAL
Misaki Q VenereUnited KingdomOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro V PoquetteArgentinaElwin Sharvill QUALIFIED
Stacey V MacleadArgentinaAmy Elsner PROPOSAL
Deepesh R PaprockiCanadaStephen Shaw PROPOSAL
Julie J CaudyArgentinaOnyama Limba NEGOTIATION
Tony M MaletRussiaIoni Bowcher PROPOSAL
Smith K DilliardUnited KingdomAnna Fali NEW
Johnson Z WhobreyCanadaElwin Sharvill PROPOSAL
Rodrigues T MacleadIndiaAsiya Javayant QUALIFIED
Leja D InouyeJapanAsiya Javayant QUALIFIED
Leon Z AmigonFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez T CaldareraSpain2025-07-18Feltz Printing Service QUALIFIED54Asiya Javayant
1001Maria N OldroydGermany2025-07-24Feiner Bros RENEWAL1Elwin Sharvill
1002Smith H ChuiCanada2025-07-21Feltz Printing Service QUALIFIED9Anna Fali
1003Cody D PaprockiGermany2025-07-26Benton, John B Jr UNQUALIFIED35Ivan Magalhaes
1004Ricardo Q VenereBrazil2025-07-23Chemel, James L Cpa RENEWAL75Onyama Limba
1005Tony X CaudyItaly2025-07-25Chemel, James L Cpa PROPOSAL66Xuxue Feng
1006Ricardo J AlbaresGermany2025-08-05Benton, John B Jr PROPOSAL79Ivan Magalhaes
1007Misaki A MarrierGermany2025-07-26Commercial Press PROPOSAL43Elwin Sharvill
1008Octavia O InouyeAustralia2025-07-24Buckley Miller Wright UNQUALIFIED92Elwin Sharvill
1009Tony D DilliardBrazil2025-08-11Commercial Press NEW41Ioni Bowcher
1010David C ChuiFrance2025-08-09Dorl, James J Esq NEGOTIATION93Xuxue Feng
1011Emily L ShinkoFrance2025-08-09Commercial Press PROPOSAL24Asiya Javayant
1012David N TollnerItaly2025-07-15Chemel, James L Cpa NEGOTIATION68Xuxue Feng
1013Maria H RoysterUnited Kingdom2025-08-08Truhlar And Truhlar Attys PROPOSAL59Ioni Bowcher
1014Faith X SergiIndia2025-07-19Printing Dimensions PROPOSAL56Ivan Magalhaes
1015Arvin E SergiAustralia2025-08-07Buckley Miller Wright QUALIFIED99Elwin Sharvill
1016Adams Q FerenczJapan2025-07-17Printing Dimensions RENEWAL98Anna Fali
1017Ricardo Z PerinGermany2025-07-26Feiner Bros PROPOSAL71Anna Fali
1018Antonio X AlbaresAustralia2025-07-29Morlong Associates NEW7Amy Elsner
1019Juan S DarakjyUnited Kingdom2025-07-30Rousseaux, Michael Esq PROPOSAL91Stephen Shaw
1020Rodrigues W SaylorsGermany2025-07-27Rangoni Of Florence UNQUALIFIED75Stephen Shaw
1021Octavia L StockhamCanada2025-07-27Rangoni Of Florence UNQUALIFIED74Bernardo Dominic
1022Faith W BologniaSpain2025-07-29Benton, John B Jr RENEWAL74Onyama Limba
1023Cody C MacleadCanada2025-08-13Commercial Press PROPOSAL89Bernardo Dominic
1024Francesco G RimBrazil2025-07-20Rangoni Of Florence NEGOTIATION47Ivan Magalhaes
1025Clifford L PaprockiArgentina2025-07-30Rangoni Of Florence PROPOSAL89Anna Fali
1026Kaitlin R SlusarskiBrazil2025-07-31Dorl, James J Esq QUALIFIED97Amy Elsner
1027Smith N MaletJapan2025-07-22King, Christopher A Esq PROPOSAL33Anna Fali
1028Nicolas K MorascaArgentina2025-07-27Buckley Miller Wright UNQUALIFIED17Ioni Bowcher
1029Stacey K GlickCanada2025-07-16Dorl, James J Esq NEW12Ivan Magalhaes
1030Aruna B PaprockiCanada2025-07-29Benton, John B Jr NEW88Onyama Limba
1031Claire T OldroydSpain2025-07-21Printing Dimensions UNQUALIFIED3Ioni Bowcher
1032Aruna N RoysterCanada2025-07-15Chapman, Ross E Esq PROPOSAL92Xuxue Feng
1033Octavia I MacleadGermany2025-08-04Rangoni Of Florence PROPOSAL47Amy Elsner
1034Kadeem Z RimFrance2025-07-15Chapman, Ross E Esq QUALIFIED29Onyama Limba
1035Johnson A RoysterArgentina2025-07-16Printing Dimensions NEGOTIATION86Asiya Javayant
1036Greenwood S MorascaGermany2025-07-20Chapman, Ross E Esq UNQUALIFIED92Xuxue Feng
1037Jefferson W NestleAustralia2025-08-13Chapman, Ross E Esq QUALIFIED88Asiya Javayant
1038Mujtaba S GauchoBrazil2025-08-05Chapman, Ross E Esq PROPOSAL72Ivan Magalhaes
1039Kadeem C StockhamItaly2025-08-11King, Christopher A Esq QUALIFIED18Bernardo Dominic
1040Munro H VocelkaCanada2025-07-16Benton, John B Jr PROPOSAL17Onyama Limba
1041David D GlickArgentina2025-07-29Buckley Miller Wright NEW78Amy Elsner
1042Adams A GarufiCanada2025-08-08Chanay, Jeffrey A Esq NEW96Xuxue Feng
1043Smith E MaletItaly2025-07-25Buckley Miller Wright UNQUALIFIED24Stephen Shaw
1044Smith E ChuiCanada2025-07-30Feltz Printing Service PROPOSAL73Asiya Javayant
1045Clifford D BriddickIndia2025-07-21Chapman, Ross E Esq QUALIFIED58Asiya Javayant
1046Jones K DarakjyGermany2025-08-05Printing Dimensions NEGOTIATION23Anna Fali
1047Ivar C SergiBrazil2025-07-17Printing Dimensions NEGOTIATION3Anna Fali
1048Antonio D PoquetteItaly2025-08-01King, Christopher A Esq RENEWAL67Bernardo Dominic
1049Morrow M MaletCanada2025-08-12Rousseaux, Michael Esq RENEWAL73Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson H AmigonUnited KingdomIvan Magalhaes QUALIFIED
Arvin R RulapaughSpainIvan Magalhaes NEGOTIATION
Salvatore W DoeSpainAnna Fali NEGOTIATION
Ivar C StensethIndiaAmy Elsner QUALIFIED
Stacey O StockhamSpainAsiya Javayant UNQUALIFIED
Jennifer T PerinBrazilAnna Fali PROPOSAL
Octavia F GillianUnited KingdomAmy Elsner NEW
Misaki M BriddickRussiaXuxue Feng RENEWAL
Costa K RulapaughGermanyXuxue Feng QUALIFIED
Faith B RutaUnited KingdomAsiya Javayant NEW
Francesco Y PoquetteSpainAmy Elsner NEGOTIATION
Silvio A PaprockiBrazilIvan Magalhaes NEGOTIATION
Murillo Y KuskoBrazilElwin Sharvill NEGOTIATION
Morrow Z VenereUnited KingdomStephen Shaw NEGOTIATION
Kaitlin O InouyeRussiaStephen Shaw PROPOSAL
Clifford C CaudyArgentinaAnna Fali UNQUALIFIED
Aika F PerinItalyIvan Magalhaes PROPOSAL
Tony O VenereCanadaStephen Shaw RENEWAL
Salvatore X GlickCanadaXuxue Feng NEW
Stacey V KuskoSpainElwin Sharvill PROPOSAL
Smith H MaletFranceIvan Magalhaes RENEWAL
Ricardo N WaycottIndiaAmy Elsner UNQUALIFIED
Chavez V CampainCanadaBernardo Dominic NEGOTIATION
Stacey J BowleyGermanyAnna Fali UNQUALIFIED
Cody V MaletCanadaStephen Shaw QUALIFIED
Kadeem Z WhobreyGermanyStephen Shaw RENEWAL
Claire M DoeJapanIoni Bowcher PROPOSAL
Arvin M PerinRussiaXuxue Feng NEW
Darci K VocelkaFranceXuxue Feng NEW
Jefferson N KuskoSpainXuxue Feng UNQUALIFIED
Emily O RimBrazilElwin Sharvill UNQUALIFIED
Nicolas X PaprockiBrazilStephen Shaw NEGOTIATION
Jennifer A DarakjyBrazilAmy Elsner RENEWAL
Aika P OldroydFranceIvan Magalhaes NEW
Maria U GillianFranceStephen Shaw PROPOSAL
Stacey N FigeroaUnited KingdomIoni Bowcher QUALIFIED
Aruna Z NestleSpainIoni Bowcher NEGOTIATION
Sinclair Z ShinkoIndiaOnyama Limba NEGOTIATION
Jones H SaylorsBrazilIvan Magalhaes RENEWAL
Mayumi S BowleySpainIvan Magalhaes RENEWAL
Jeanfrancois C BowleyBrazilAsiya Javayant QUALIFIED
Juan R InouyeIndiaAnna Fali UNQUALIFIED
Ivar E RimSpainIoni Bowcher NEW
Aruna Q KolmetzBrazilAmy Elsner QUALIFIED
Murillo M BriddickCanadaAnna Fali QUALIFIED
Smith R TollnerAustraliaAnna Fali NEW
Adams H WhobreyCanadaStephen Shaw QUALIFIED
Johnson D CaudyBrazilAmy Elsner NEGOTIATION
Antonio M AmigonAustraliaAnna Fali RENEWAL
Tony Y FerenczBrazilAnna Fali QUALIFIED
Frozen Columns
Name
Ricardo P Royster
Aruna X Bolognia
Izzy Q Kolmetz
Ivar E Stockham
Jeanfrancois L Flosi
Juan L Amigon
James G Schemmer
Izzy C Kolmetz
Deepesh M Stenseth
Johnson E Campain
Clifford Q Caudy
Deepesh G Waycott
Izzy A Ferencz
Aruna O Gillian
Clifford U Ferencz
Costa M Rim
Aruna X Saylors
Maisha I Briddick
Smith N Rulapaugh
Cody N Gillian
Nicolas M Maclead
Arvin Q Doe
Aika N Gillian
Murillo J Figeroa
Arvin H Nicka
Murillo R Campain
Jefferson N Ferencz
Chavez Z Schemmer
Munro A Malet
Juan R Garufi
Jones Y Briddick
Alejandro U Rim
Faith G Chui
Rodrigues J Bowley
Claire F Ferencz
Faith A Kusko
Ricardo K Nicka
Jones G Ostrosky
Kadeem V Royster
Maisha I Dilliard
Jennifer W Albares
Izzy V Schemmer
Deepesh T Malet
Kaitlin T Nestle
Murillo L Figeroa
Murillo I Tollner
Isabel A Flosi
Octavia X Rim
Kaitlin Z Ostrosky
Ricardo V Ostrosky
IdCountryDate
1000Italy2025-07-22
1001Australia2025-08-11
1002Germany2025-07-31
1003Canada2025-08-06
1004Germany2025-08-11
1005Canada2025-07-28
1006India2025-08-11
1007France2025-08-12
1008Germany2025-08-09
1009Russia2025-08-03
1010France2025-07-21
1011India2025-08-01
1012Canada2025-07-29
1013Russia2025-08-11
1014Italy2025-07-22
1015Spain2025-08-05
1016Spain2025-08-10
1017Argentina2025-07-26
1018United Kingdom2025-07-16
1019Italy2025-08-02
1020Spain2025-08-08
1021Italy2025-07-21
1022Argentina2025-08-10
1023Italy2025-08-04
1024France2025-08-08
1025Japan2025-07-31
1026Canada2025-08-05
1027Argentina2025-08-09
1028Australia2025-07-24
1029United Kingdom2025-07-17
1030Russia2025-08-11
1031India2025-07-23
1032Japan2025-08-09
1033Germany2025-08-07
1034Germany2025-08-07
1035Spain2025-07-26
1036United Kingdom2025-08-08
1037Spain2025-07-27
1038Italy2025-07-30
1039Russia2025-07-19
1040France2025-07-15
1041Spain2025-08-13
1042Russia2025-07-26
1043Russia2025-08-03
1044Canada2025-07-21
1045Germany2025-07-19
1046Australia2025-07-27
1047Germany2025-08-07
1048Russia2025-08-12
1049Brazil2025-07-31

On-Demand Data

NameIdCountryDate
Misaki B Albares1000Japan2025-08-08
Faith E Chui1001Spain2025-07-21
Julie Y Nicka1002Japan2025-08-06
Costa K Nicka1003France2025-07-16
David L Bowley1004Canada2025-07-29
Jones E Ferencz1005Russia2025-08-05
Sinclair A Darakjy1006Australia2025-08-02
Nicolas C Ruta1007Spain2025-07-31
Darci W Kolmetz1008India2025-08-01
Isabel C Flosi1009France2025-07-22
Ricardo H Briddick1010Argentina2025-07-20
Octavia K Flosi1011United Kingdom2025-08-03
Mujtaba J Figeroa1012Brazil2025-08-10
Salvatore P Doe1013Russia2025-08-08
Adams G Malet1014Russia2025-08-03
Chavez S Amigon1015France2025-08-08
Stacey D Foller1016Germany2025-08-09
Aditya S Kolmetz1017India2025-08-12
Darci F Malet1018Brazil2025-08-11
Sinclair O Glick1019Argentina2025-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio K AmigonFranceStephen Shaw NEW
Ivar Z GauchoAustraliaOnyama Limba RENEWAL
Aruna L SergiIndiaXuxue Feng RENEWAL
Aika C VenereJapanBernardo Dominic QUALIFIED
Jennifer O StensethJapanAnna Fali NEW
Tony H GlickRussiaAmy Elsner RENEWAL
Wickens F AlbaresSpainBernardo Dominic QUALIFIED
Nicolas Q RimGermanyStephen Shaw UNQUALIFIED
Izzy S PerinAustraliaIvan Magalhaes NEW
Munro Y KolmetzRussiaBernardo Dominic NEGOTIATION
Kadeem F DilliardIndiaXuxue Feng QUALIFIED
Smith G BriddickGermanyIoni Bowcher NEW
Octavia T PerinRussiaStephen Shaw UNQUALIFIED
Smith W SchemmerBrazilIvan Magalhaes QUALIFIED
Maria C ChuiItalyAnna Fali NEW
Johnson J StockhamBrazilIvan Magalhaes QUALIFIED
Jefferson M OldroydRussiaXuxue Feng UNQUALIFIED
Ivar B BologniaBrazilStephen Shaw PROPOSAL
Salvatore D VenereBrazilElwin Sharvill UNQUALIFIED
Mujtaba V BowleyRussiaAsiya Javayant NEW
Clifford J StensethRussiaBernardo Dominic UNQUALIFIED
Maria P WieserArgentinaBernardo Dominic UNQUALIFIED
Darci E SaylorsAustraliaAmy Elsner QUALIFIED
Leon A PaprockiSpainXuxue Feng UNQUALIFIED
Wickens E IturbideIndiaElwin Sharvill NEGOTIATION
Murillo N PoquetteSpainXuxue Feng NEGOTIATION
Munro L OstroskyRussiaBernardo Dominic QUALIFIED
Nicolas X AmigonGermanyAnna Fali PROPOSAL
Mayumi E AmigonSpainAnna Fali NEGOTIATION
Johnson Q WaycottSpainIvan Magalhaes NEW
Salvatore B RoysterSpainStephen Shaw QUALIFIED
Emily Q KuskoFranceOnyama Limba PROPOSAL
David P FollerIndiaXuxue Feng PROPOSAL
Maria S WieserRussiaIoni Bowcher NEW
Arvin G PaprockiAustraliaIoni Bowcher UNQUALIFIED
Mayumi I WieserBrazilElwin Sharvill UNQUALIFIED
Jefferson X MarrierBrazilAmy Elsner NEGOTIATION
Sinclair O StockhamUnited KingdomAmy Elsner UNQUALIFIED
Antonio O WaycottFranceOnyama Limba QUALIFIED
Ivar C StockhamBrazilAmy Elsner 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>