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
Arvin B GlickUnited KingdomXuxue Feng RENEWAL
Silvio S RimAustraliaStephen Shaw NEGOTIATION
Greenwood B DoeItalyElwin Sharvill RENEWAL
Munro L MacleadIndiaXuxue Feng NEGOTIATION
Deepesh K FigeroaCanadaElwin Sharvill RENEWAL
Ashley X BowleyJapanStephen Shaw NEW
Alejandro Z DoeGermanyIoni Bowcher PROPOSAL
Murillo R TollnerCanadaAmy Elsner UNQUALIFIED
Sinclair C AlbaresJapanOnyama Limba NEW
Kadeem T GauchoBrazilAmy Elsner RENEWAL
Deepesh L DilliardIndiaElwin Sharvill PROPOSAL
Aruna A SergiArgentinaAmy Elsner PROPOSAL
David W PoquetteRussiaIvan Magalhaes RENEWAL
Rodrigues D PaprockiJapanOnyama Limba UNQUALIFIED
David G BriddickIndiaOnyama Limba RENEWAL
Kadeem A BowleyCanadaOnyama Limba NEW
Misaki N VenereSpainOnyama Limba NEGOTIATION
Kadeem E FlosiRussiaIoni Bowcher UNQUALIFIED
Ashley E AmigonIndiaAmy Elsner NEGOTIATION
Murillo M AlbaresAustraliaIvan Magalhaes PROPOSAL
Nicolas I NestleFranceStephen Shaw NEW
Nicolas I StockhamRussiaBernardo Dominic RENEWAL
Jefferson T MaletSpainStephen Shaw NEW
Jones G PoquetteSpainElwin Sharvill NEW
Alejandro H OstroskyAustraliaStephen Shaw RENEWAL
Arvin V MarrierAustraliaOnyama Limba UNQUALIFIED
Greenwood Q FollerGermanyStephen Shaw PROPOSAL
Ivar E ShinkoIndiaIoni Bowcher NEW
Isabel Z ShinkoCanadaBernardo Dominic PROPOSAL
Maria V GauchoBrazilAnna Fali NEW
Mujtaba M ButtJapanXuxue Feng NEW
Leja G WaycottFranceElwin Sharvill RENEWAL
Jefferson F GlickUnited KingdomStephen Shaw UNQUALIFIED
Kadeem N MorascaUnited KingdomIvan Magalhaes RENEWAL
Emily U FlosiBrazilIoni Bowcher PROPOSAL
Silvio Q RulapaughBrazilAnna Fali NEW
Antonio Y MaletIndiaIoni Bowcher NEW
Jeanfrancois Z FollerUnited KingdomAsiya Javayant NEW
Jones J DoeCanadaOnyama Limba NEGOTIATION
Leja Q BriddickUnited KingdomAsiya Javayant NEGOTIATION
Octavia V FlosiCanadaXuxue Feng NEW
Leja F PoquetteUnited KingdomStephen Shaw NEGOTIATION
Octavia B ChuiBrazilOnyama Limba PROPOSAL
Francesco H MaletJapanXuxue Feng UNQUALIFIED
Aika B AlbaresArgentinaAsiya Javayant NEGOTIATION
Jennifer P VenereUnited KingdomAnna Fali UNQUALIFIED
Maisha U AlbaresIndiaOnyama Limba PROPOSAL
David O SaylorsSpainBernardo Dominic NEGOTIATION
Ivar D FlosiBrazilOnyama Limba UNQUALIFIED
Murillo Z RulapaughBrazilAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya N KuskoUnited KingdomElwin Sharvill NEW
Munro K RimRussiaStephen Shaw PROPOSAL
Ivar P RoysterItalyIoni Bowcher QUALIFIED
Emily U GauchoGermanyOnyama Limba QUALIFIED
Johnson W BologniaCanadaElwin Sharvill NEGOTIATION
Murillo C PerinCanadaBernardo Dominic PROPOSAL
Adams G KolmetzBrazilBernardo Dominic RENEWAL
Aditya P FollerJapanAnna Fali NEW
Wickens J SaylorsSpainStephen Shaw RENEWAL
Mayumi R RoysterSpainIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily I BologniaSpain2025-08-17Morlong Associates NEW86Elwin Sharvill
1001James R ButtGermany2025-08-07Buckley Miller Wright UNQUALIFIED49Anna Fali
1002Johnson W CaudyBrazil2025-08-02Printing Dimensions NEW83Anna Fali
1003Ricardo D StensethAustralia2025-08-16Chemel, James L Cpa NEGOTIATION39Ivan Magalhaes
1004Silvio S CampainCanada2025-08-06Morlong Associates RENEWAL14Amy Elsner
1005Leja O FerenczAustralia2025-08-12Chemel, James L Cpa UNQUALIFIED53Bernardo Dominic
1006David H SlusarskiBrazil2025-08-09Chemel, James L Cpa NEGOTIATION64Amy Elsner
1007Ivar D MacleadCanada2025-08-15Dorl, James J Esq NEW33Amy Elsner
1008Emily B VocelkaArgentina2025-07-30Feltz Printing Service PROPOSAL97Asiya Javayant
1009Johnson T CaudyRussia2025-08-16Chanay, Jeffrey A Esq UNQUALIFIED48Ioni Bowcher
1010Ashley G KolmetzCanada2025-08-11King, Christopher A Esq RENEWAL5Xuxue Feng
1011Tony D DarakjyIndia2025-08-05Feltz Printing Service UNQUALIFIED58Onyama Limba
1012Chavez Z GarufiItaly2025-08-21Dorl, James J Esq UNQUALIFIED64Ioni Bowcher
1013James M SergiBrazil2025-08-18Commercial Press NEGOTIATION78Anna Fali
1014James B VenereSpain2025-08-27King, Christopher A Esq PROPOSAL12Amy Elsner
1015Adams F MorascaAustralia2025-08-24Buckley Miller Wright PROPOSAL81Onyama Limba
1016Wickens E GlickUnited Kingdom2025-08-22Chanay, Jeffrey A Esq UNQUALIFIED4Bernardo Dominic
1017Jefferson J InouyeAustralia2025-08-09Rangoni Of Florence UNQUALIFIED59Asiya Javayant
1018Maisha C SchemmerJapan2025-08-19Benton, John B Jr PROPOSAL34Stephen Shaw
1019Costa C KuskoAustralia2025-08-05Feltz Printing Service PROPOSAL48Ioni Bowcher
1020Tony N StensethGermany2025-08-27Chanay, Jeffrey A Esq NEGOTIATION13Ioni Bowcher
1021Mayumi F BowleyBrazil2025-08-12Rousseaux, Michael Esq RENEWAL31Ivan Magalhaes
1022Maria H CaudyGermany2025-08-19Rangoni Of Florence UNQUALIFIED64Bernardo Dominic
1023Nicolas X ButtRussia2025-08-25Rousseaux, Michael Esq QUALIFIED18Amy Elsner
1024Claire H PerinUnited Kingdom2025-08-03Chapman, Ross E Esq NEGOTIATION74Amy Elsner
1025Munro D WaycottRussia2025-08-10Printing Dimensions RENEWAL22Asiya Javayant
1026Faith F DilliardSpain2025-08-09Dorl, James J Esq RENEWAL89Asiya Javayant
1027Stacey W MaletCanada2025-08-09Buckley Miller Wright UNQUALIFIED36Ioni Bowcher
1028Mujtaba D SergiFrance2025-08-14Feltz Printing Service PROPOSAL23Bernardo Dominic
1029Maria Z ButtBrazil2025-08-27Feltz Printing Service RENEWAL67Ioni Bowcher
1030Jefferson U CaudyUnited Kingdom2025-08-12Chapman, Ross E Esq UNQUALIFIED85Ivan Magalhaes
1031Isabel C MarrierFrance2025-08-26Commercial Press NEGOTIATION2Onyama Limba
1032Cody L OstroskyItaly2025-08-18Chanay, Jeffrey A Esq UNQUALIFIED53Asiya Javayant
1033Leja U VenereUnited Kingdom2025-07-31Feiner Bros NEW84Bernardo Dominic
1034Deepesh C ShinkoGermany2025-08-08Commercial Press NEGOTIATION92Anna Fali
1035David W FollerIndia2025-08-17Feltz Printing Service NEW9Anna Fali
1036Smith V BriddickIndia2025-08-12Printing Dimensions NEW30Onyama Limba
1037Aika T CaldareraSpain2025-08-21Rangoni Of Florence PROPOSAL44Amy Elsner
1038Tony X CaldareraFrance2025-08-20King, Christopher A Esq QUALIFIED61Xuxue Feng
1039Maria G DarakjyJapan2025-08-16Printing Dimensions QUALIFIED92Anna Fali
1040Jones R FollerAustralia2025-08-15Printing Dimensions NEW80Bernardo Dominic
1041Rodrigues D RimIndia2025-08-27Buckley Miller Wright RENEWAL35Xuxue Feng
1042Izzy T FlosiJapan2025-08-18Commercial Press PROPOSAL44Ioni Bowcher
1043Maisha U DoeRussia2025-08-09Rousseaux, Michael Esq QUALIFIED27Amy Elsner
1044Rodrigues Z PerinRussia2025-08-15Morlong Associates QUALIFIED40Ioni Bowcher
1045Jones C RimJapan2025-08-03Chapman, Ross E Esq PROPOSAL33Asiya Javayant
1046Ricardo T IturbideUnited Kingdom2025-08-08King, Christopher A Esq NEW49Xuxue Feng
1047Silvio K KuskoCanada2025-08-04King, Christopher A Esq NEGOTIATION5Elwin Sharvill
1048Jefferson T SergiItaly2025-08-25Rangoni Of Florence RENEWAL78Ioni Bowcher
1049Kadeem T CaudyIndia2025-08-21Rangoni Of Florence QUALIFIED62Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Cody U KolmetzBrazilOnyama Limba NEGOTIATION
Mujtaba U ButtCanadaElwin Sharvill RENEWAL
Faith W SaylorsItalyOnyama Limba QUALIFIED
Francesco D BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Smith K DarakjyAustraliaAnna Fali QUALIFIED
Ivar C ChuiSpainAmy Elsner QUALIFIED
Aditya I MaletItalyElwin Sharvill NEW
Smith N CaldareraArgentinaAnna Fali UNQUALIFIED
Francesco O GlickCanadaAsiya Javayant RENEWAL
Izzy T ButtJapanAnna Fali QUALIFIED
James V FlosiIndiaXuxue Feng NEGOTIATION
Emily V FlosiFranceAmy Elsner QUALIFIED
Aditya O GlickUnited KingdomBernardo Dominic UNQUALIFIED
Adams G ButtItalyOnyama Limba NEW
Mujtaba L OldroydIndiaOnyama Limba QUALIFIED
Antonio V BowleySpainOnyama Limba NEGOTIATION
Arvin T DoeSpainOnyama Limba PROPOSAL
Faith K MorascaSpainOnyama Limba NEW
Smith F GillianJapanAmy Elsner QUALIFIED
Clifford O GlickUnited KingdomIvan Magalhaes NEW
Aruna Z FollerJapanBernardo Dominic NEW
Adams N DoeFranceIvan Magalhaes NEW
Sinclair I DoeUnited KingdomOnyama Limba NEW
Julie R KuskoIndiaAnna Fali RENEWAL
Wickens M PerinBrazilAmy Elsner NEW
Jones F SchemmerIndiaBernardo Dominic RENEWAL
Aditya I DarakjyItalyOnyama Limba NEW
Francesco X OldroydJapanElwin Sharvill UNQUALIFIED
Darci U AmigonRussiaBernardo Dominic NEGOTIATION
Murillo Q AmigonRussiaOnyama Limba NEW
Silvio G MorascaBrazilOnyama Limba RENEWAL
Isabel Y NickaFranceBernardo Dominic NEGOTIATION
Antonio G CaldareraIndiaAnna Fali UNQUALIFIED
Isabel I RoysterJapanOnyama Limba QUALIFIED
Wickens B FollerArgentinaOnyama Limba NEW
Octavia S ChuiUnited KingdomAnna Fali NEGOTIATION
Ricardo U NickaSpainOnyama Limba QUALIFIED
Jennifer D StockhamBrazilIvan Magalhaes PROPOSAL
Jefferson M StockhamSpainIoni Bowcher RENEWAL
Aruna I PerinCanadaIoni Bowcher QUALIFIED
Tony V DilliardGermanyBernardo Dominic QUALIFIED
Maisha D MacleadArgentinaXuxue Feng NEGOTIATION
Rodrigues P RulapaughCanadaIvan Magalhaes RENEWAL
Johnson B FlosiIndiaIvan Magalhaes RENEWAL
Tony C MaletUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba S NestleArgentinaOnyama Limba QUALIFIED
Alejandro I NestleGermanyBernardo Dominic UNQUALIFIED
Antonio C RoysterJapanStephen Shaw PROPOSAL
Cody S ShinkoJapanAsiya Javayant NEW
Francesco D PerinUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Ivar C Slusarski
Francesco E Caldarera
Kaitlin G Inouye
Salvatore C Royster
Cody L Rim
Jefferson L Poquette
Kaitlin F Amigon
Antonio F Nicka
Izzy G Bowley
Deepesh E Gaucho
Kaitlin I Maclead
Kadeem R Figeroa
Isabel M Nicka
Clifford E Glick
David N Rim
Murillo D Royster
Rodrigues I Stockham
Deepesh Z Figeroa
Johnson V Glick
Misaki W Darakjy
Deepesh R Saylors
Cody T Briddick
Mayumi I Malet
Rodrigues I Bolognia
Kadeem H Waycott
Mujtaba Z Campain
Maria P Malet
Octavia O Kolmetz
Claire I Venere
Leon F Campain
Mayumi O Whobrey
Jones V Rulapaugh
Maisha Q Saylors
Darci K Butt
Darci W Albares
Arvin E Kusko
Greenwood C Foller
Jones I Sergi
Octavia P Ostrosky
Jefferson T Nestle
Misaki N Amigon
Morrow Y Waycott
David I Foller
Murillo V Bowley
Smith W Venere
Emily O Gaucho
Maisha Z Campain
Misaki O Nestle
Leon Z Waycott
Faith I Waycott
IdCountryDate
1000Canada2025-08-16
1001Argentina2025-08-08
1002Japan2025-08-20
1003Spain2025-08-12
1004Germany2025-08-20
1005France2025-08-24
1006Canada2025-08-27
1007Japan2025-08-24
1008France2025-08-08
1009Canada2025-08-25
1010Russia2025-08-09
1011Germany2025-08-12
1012Japan2025-08-06
1013Brazil2025-08-20
1014Canada2025-08-09
1015United Kingdom2025-08-04
1016France2025-08-09
1017Argentina2025-08-21
1018Brazil2025-08-15
1019United Kingdom2025-08-06
1020France2025-08-12
1021France2025-08-04
1022India2025-08-09
1023France2025-08-19
1024Canada2025-08-15
1025Russia2025-08-25
1026Italy2025-08-04
1027Spain2025-08-06
1028France2025-08-20
1029Argentina2025-08-14
1030Australia2025-08-09
1031Australia2025-08-28
1032United Kingdom2025-08-23
1033Australia2025-08-05
1034Germany2025-08-07
1035Argentina2025-08-13
1036Australia2025-08-24
1037Australia2025-08-22
1038Russia2025-08-23
1039Brazil2025-08-26
1040Russia2025-08-25
1041Germany2025-08-28
1042Germany2025-08-06
1043Canada2025-08-09
1044India2025-08-26
1045Russia2025-08-01
1046Spain2025-08-06
1047Argentina2025-08-28
1048Germany2025-08-13
1049Australia2025-08-10

On-Demand Data

NameIdCountryDate
Ashley O Oldroyd1000Brazil2025-08-12
Aditya T Inouye1001Spain2025-08-10
Juan C Flosi1002Russia2025-07-31
Greenwood D Kusko1003Japan2025-08-23
Juan E Bolognia1004Canada2025-08-15
Ivar J Butt1005Italy2025-08-10
Jennifer F Whobrey1006India2025-08-14
Julie L Gillian1007United Kingdom2025-07-30
Mayumi W Wieser1008United Kingdom2025-08-24
Emily T Maclead1009France2025-08-05
James P Rim1010Brazil2025-08-01
Misaki D Doe1011France2025-08-07
Kaitlin X Bolognia1012Australia2025-08-21
Faith A Butt1013Canada2025-08-11
Kadeem Z Poquette1014Russia2025-08-16
Maisha P Figeroa1015Germany2025-08-27
Cody D Morasca1016Argentina2025-08-04
Kaitlin L Campain1017Argentina2025-08-03
Antonio J Rulapaugh1018France2025-07-30
Clifford M Nestle1019Russia2025-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams Z KuskoIndiaElwin Sharvill UNQUALIFIED
Ricardo S FigeroaJapanBernardo Dominic QUALIFIED
Greenwood M NickaAustraliaXuxue Feng NEGOTIATION
Aruna D KolmetzItalyAmy Elsner PROPOSAL
Johnson C SlusarskiBrazilIvan Magalhaes RENEWAL
Jefferson C BriddickItalyOnyama Limba RENEWAL
Wickens H GillianJapanElwin Sharvill RENEWAL
Adams Z IturbideItalyIvan Magalhaes RENEWAL
Adams P StensethBrazilStephen Shaw UNQUALIFIED
Clifford T PerinJapanElwin Sharvill PROPOSAL
Julie Z RoysterBrazilBernardo Dominic UNQUALIFIED
Izzy M GlickItalyBernardo Dominic QUALIFIED
Murillo E TollnerAustraliaStephen Shaw NEW
Maisha R CaudyItalyXuxue Feng PROPOSAL
Johnson O StensethItalyElwin Sharvill QUALIFIED
Ashley D VenereBrazilAsiya Javayant UNQUALIFIED
Adams G FlosiFranceIvan Magalhaes NEW
Darci M RimBrazilIoni Bowcher NEW
Morrow C FollerGermanyElwin Sharvill UNQUALIFIED
Morrow X BriddickCanadaAmy Elsner UNQUALIFIED
Mayumi M MarrierItalyAnna Fali UNQUALIFIED
Francesco A SergiSpainAsiya Javayant PROPOSAL
Julie N NestleBrazilOnyama Limba UNQUALIFIED
Jeanfrancois Z CampainAustraliaBernardo Dominic RENEWAL
Johnson G PoquetteSpainElwin Sharvill UNQUALIFIED
Nicolas Q FlosiFranceXuxue Feng QUALIFIED
Emily J MorascaItalyXuxue Feng QUALIFIED
Rodrigues Z DilliardRussiaOnyama Limba PROPOSAL
Sinclair G PerinFranceAnna Fali RENEWAL
Kadeem J RimUnited KingdomStephen Shaw QUALIFIED
Juan Y RutaItalyIoni Bowcher RENEWAL
Jeanfrancois W MaletIndiaBernardo Dominic RENEWAL
Costa M BowleyJapanOnyama Limba NEW
Misaki B KolmetzJapanElwin Sharvill PROPOSAL
Kaitlin N OstroskyArgentinaAmy Elsner PROPOSAL
Chavez Q ButtFranceStephen Shaw RENEWAL
Costa Z GarufiCanadaAnna Fali PROPOSAL
Sinclair X BriddickIndiaIvan Magalhaes UNQUALIFIED
Julie V FerenczIndiaOnyama Limba NEW
Clifford N BowleyAustraliaAmy Elsner 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>