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
Misaki A PerinGermanyAmy Elsner QUALIFIED
James B CaldareraSpainStephen Shaw NEW
Morrow E PerinCanadaAmy Elsner PROPOSAL
Jeanfrancois Q KuskoItalyAsiya Javayant PROPOSAL
Smith O RutaIndiaOnyama Limba UNQUALIFIED
Juan D FerenczGermanyAnna Fali NEW
Morrow V MorascaGermanyOnyama Limba PROPOSAL
Jennifer R PoquetteBrazilElwin Sharvill NEGOTIATION
Johnson F RutaGermanyAsiya Javayant RENEWAL
Adams T AmigonGermanyOnyama Limba RENEWAL
Darci O GauchoAustraliaAnna Fali NEW
Izzy Y TollnerJapanBernardo Dominic QUALIFIED
Stacey O RoysterRussiaAsiya Javayant NEW
Ricardo S BologniaGermanyXuxue Feng RENEWAL
Salvatore U MarrierAustraliaBernardo Dominic QUALIFIED
Isabel Y KuskoIndiaIoni Bowcher QUALIFIED
Mujtaba D NestleRussiaAnna Fali PROPOSAL
Aditya S MorascaSpainIvan Magalhaes RENEWAL
Maria U NickaBrazilAmy Elsner NEW
Arvin V AlbaresRussiaStephen Shaw UNQUALIFIED
Chavez A MarrierCanadaAsiya Javayant PROPOSAL
Francesco L SlusarskiGermanyStephen Shaw NEGOTIATION
Rodrigues K WaycottGermanyAmy Elsner NEW
Arvin B RutaBrazilAnna Fali PROPOSAL
Izzy S MacleadRussiaStephen Shaw NEW
Izzy C GauchoFranceXuxue Feng RENEWAL
Deepesh Q PaprockiGermanyBernardo Dominic RENEWAL
Octavia I VocelkaCanadaIvan Magalhaes RENEWAL
Rodrigues P PerinFranceOnyama Limba UNQUALIFIED
Silvio J GarufiItalyBernardo Dominic QUALIFIED
Deepesh V BowleySpainIoni Bowcher NEW
Sinclair T ShinkoIndiaAnna Fali NEGOTIATION
Darci D OstroskyFranceAsiya Javayant QUALIFIED
Arvin Y KuskoGermanyAnna Fali RENEWAL
Antonio R CaldareraSpainStephen Shaw QUALIFIED
Cody B ShinkoAustraliaAmy Elsner NEW
Munro M BriddickJapanAmy Elsner NEW
Aditya O GillianJapanStephen Shaw NEW
Johnson I VocelkaUnited KingdomOnyama Limba UNQUALIFIED
Nicolas O RimRussiaAnna Fali PROPOSAL
Jennifer I GarufiItalyIvan Magalhaes UNQUALIFIED
Cody Z CaudyCanadaAnna Fali UNQUALIFIED
Johnson R GlickUnited KingdomAsiya Javayant QUALIFIED
Leja H VocelkaBrazilBernardo Dominic NEW
Stacey T FlosiRussiaIoni Bowcher UNQUALIFIED
James A ButtRussiaIvan Magalhaes UNQUALIFIED
James C BowleySpainAsiya Javayant PROPOSAL
Wickens Q GillianIndiaXuxue Feng QUALIFIED
Maisha K CaldareraItalyStephen Shaw RENEWAL
Costa W VocelkaArgentinaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria K NickaCanadaAmy Elsner UNQUALIFIED
Maisha O StensethSpainAsiya Javayant UNQUALIFIED
Jefferson W MarrierItalyBernardo Dominic PROPOSAL
David G PoquetteItalyAmy Elsner PROPOSAL
Izzy L WhobreyUnited KingdomIvan Magalhaes RENEWAL
Cody L WieserRussiaAnna Fali NEW
Mayumi V MorascaArgentinaAmy Elsner UNQUALIFIED
Emily J GlickIndiaElwin Sharvill NEGOTIATION
Rodrigues T PoquetteGermanyIoni Bowcher PROPOSAL
Izzy O MaletArgentinaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika N OldroydCanada2025-09-10Printing Dimensions QUALIFIED69Stephen Shaw
1001Johnson T NestleJapan2025-09-06Rangoni Of Florence NEGOTIATION3Onyama Limba
1002Kaitlin I RimItaly2025-09-06Rangoni Of Florence UNQUALIFIED26Ioni Bowcher
1003Tony Z RutaArgentina2025-09-30Feiner Bros RENEWAL63Elwin Sharvill
1004Misaki N PaprockiArgentina2025-09-20King, Christopher A Esq RENEWAL9Bernardo Dominic
1005Jefferson C StockhamGermany2025-09-06Morlong Associates RENEWAL46Onyama Limba
1006Jeanfrancois L MaletGermany2025-09-04Commercial Press QUALIFIED93Onyama Limba
1007Tony I DoeBrazil2025-09-09Printing Dimensions RENEWAL31Asiya Javayant
1008Rodrigues A FollerJapan2025-09-23King, Christopher A Esq PROPOSAL98Amy Elsner
1009Smith O RimIndia2025-09-18Rangoni Of Florence RENEWAL6Elwin Sharvill
1010Salvatore W VenereIndia2025-09-17Dorl, James J Esq NEW30Bernardo Dominic
1011Kadeem B VenereIndia2025-09-19Rousseaux, Michael Esq PROPOSAL90Ivan Magalhaes
1012Kaitlin D KuskoFrance2025-09-29Chanay, Jeffrey A Esq RENEWAL37Elwin Sharvill
1013Johnson X VocelkaArgentina2025-09-15Rangoni Of Florence NEGOTIATION69Xuxue Feng
1014Arvin G KuskoAustralia2025-09-03Feltz Printing Service NEGOTIATION99Xuxue Feng
1015Mujtaba T AmigonArgentina2025-09-22Rousseaux, Michael Esq QUALIFIED63Anna Fali
1016Jeanfrancois R MacleadAustralia2025-09-12Rangoni Of Florence PROPOSAL24Ivan Magalhaes
1017Deepesh G CampainArgentina2025-09-12Buckley Miller Wright RENEWAL73Xuxue Feng
1018Maria U PaprockiRussia2025-10-01King, Christopher A Esq NEGOTIATION71Elwin Sharvill
1019Murillo Z OstroskyJapan2025-09-29King, Christopher A Esq UNQUALIFIED51Elwin Sharvill
1020Murillo M InouyeGermany2025-09-07Dorl, James J Esq QUALIFIED25Ioni Bowcher
1021Tony C PaprockiArgentina2025-09-08King, Christopher A Esq NEW60Elwin Sharvill
1022Claire C NestleJapan2025-09-27Rousseaux, Michael Esq NEW64Amy Elsner
1023Stacey L WaycottArgentina2025-10-01Chemel, James L Cpa NEW82Amy Elsner
1024Silvio L StockhamBrazil2025-09-23Chapman, Ross E Esq NEGOTIATION60Asiya Javayant
1025Maisha I GauchoFrance2025-09-19Commercial Press RENEWAL99Onyama Limba
1026Silvio Q StockhamUnited Kingdom2025-09-29Commercial Press NEGOTIATION61Stephen Shaw
1027Francesco F MacleadAustralia2025-09-16Truhlar And Truhlar Attys NEGOTIATION53Onyama Limba
1028Alejandro P GlickAustralia2025-10-01Morlong Associates QUALIFIED96Asiya Javayant
1029Jennifer C DarakjyArgentina2025-09-22Morlong Associates PROPOSAL38Asiya Javayant
1030Ivar D GauchoRussia2025-09-12Truhlar And Truhlar Attys UNQUALIFIED38Anna Fali
1031Aruna Y RulapaughFrance2025-09-20Commercial Press RENEWAL71Ivan Magalhaes
1032Jefferson F ShinkoIndia2025-10-01Benton, John B Jr RENEWAL79Ioni Bowcher
1033Emily C VenereCanada2025-09-29Feiner Bros PROPOSAL77Amy Elsner
1034Francesco N DoeItaly2025-09-18Rousseaux, Michael Esq NEGOTIATION16Ioni Bowcher
1035Mayumi G CaudyArgentina2025-09-30Chapman, Ross E Esq UNQUALIFIED26Asiya Javayant
1036Munro L MacleadSpain2025-09-08Rousseaux, Michael Esq NEW75Onyama Limba
1037Silvio Y MarrierCanada2025-09-23Buckley Miller Wright QUALIFIED16Onyama Limba
1038Johnson X MarrierItaly2025-09-19Commercial Press NEGOTIATION30Xuxue Feng
1039Clifford M PoquetteGermany2025-09-16Printing Dimensions NEGOTIATION77Anna Fali
1040Jones T GauchoGermany2025-09-30Chemel, James L Cpa RENEWAL27Asiya Javayant
1041Kadeem L CaudyRussia2025-09-10Feiner Bros NEW0Ivan Magalhaes
1042Morrow L ButtBrazil2025-09-06Printing Dimensions UNQUALIFIED55Asiya Javayant
1043Nicolas C ShinkoAustralia2025-09-03Benton, John B Jr PROPOSAL24Ivan Magalhaes
1044Kaitlin S SaylorsRussia2025-09-27Rousseaux, Michael Esq UNQUALIFIED57Elwin Sharvill
1045Leon X KuskoUnited Kingdom2025-09-30Feltz Printing Service QUALIFIED41Ivan Magalhaes
1046Ashley B GauchoBrazil2025-09-16Commercial Press PROPOSAL69Anna Fali
1047Munro T WaycottItaly2025-09-21Buckley Miller Wright PROPOSAL56Onyama Limba
1048Isabel L NickaBrazil2025-09-17Buckley Miller Wright UNQUALIFIED23Onyama Limba
1049Cody B CaldareraSpain2025-09-05Morlong Associates NEGOTIATION75Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika J MaletRussiaAmy Elsner UNQUALIFIED
Julie V RimGermanyIoni Bowcher NEGOTIATION
Nicolas J PoquetteArgentinaStephen Shaw QUALIFIED
Salvatore W CaudyJapanBernardo Dominic PROPOSAL
Clifford G WhobreyRussiaBernardo Dominic QUALIFIED
Claire S SergiCanadaOnyama Limba NEW
Chavez Y PerinBrazilBernardo Dominic PROPOSAL
Misaki S IturbideBrazilXuxue Feng PROPOSAL
Clifford N CaldareraSpainElwin Sharvill QUALIFIED
Chavez G DarakjyUnited KingdomAsiya Javayant QUALIFIED
Chavez W SlusarskiAustraliaAmy Elsner NEGOTIATION
Wickens M FollerAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois Q WhobreyFranceIvan Magalhaes RENEWAL
Ivar A MarrierIndiaIvan Magalhaes RENEWAL
Faith O DoeJapanXuxue Feng NEW
Ashley U MaletIndiaOnyama Limba NEW
Smith T ShinkoCanadaBernardo Dominic NEGOTIATION
Clifford F RimGermanyElwin Sharvill RENEWAL
Nicolas F GillianAustraliaXuxue Feng QUALIFIED
Murillo U MaletCanadaAnna Fali NEGOTIATION
Ivar E DarakjyItalyOnyama Limba UNQUALIFIED
Murillo L RutaUnited KingdomXuxue Feng NEGOTIATION
Clifford D GarufiFranceAsiya Javayant UNQUALIFIED
Maisha Q SlusarskiGermanyIvan Magalhaes NEW
Antonio L SchemmerItalyBernardo Dominic NEW
Wickens S RutaBrazilElwin Sharvill PROPOSAL
Kaitlin I FollerAustraliaAnna Fali NEW
Costa D CampainJapanAmy Elsner NEGOTIATION
Chavez I SchemmerCanadaXuxue Feng NEW
Mujtaba N CaudyArgentinaOnyama Limba NEW
Murillo V SaylorsSpainOnyama Limba QUALIFIED
Leon B RulapaughSpainBernardo Dominic UNQUALIFIED
Claire B SaylorsAustraliaXuxue Feng PROPOSAL
Smith Y MaletGermanyElwin Sharvill QUALIFIED
Kadeem L DilliardUnited KingdomAnna Fali UNQUALIFIED
Mayumi D VocelkaArgentinaAnna Fali NEGOTIATION
Ashley V ShinkoIndiaAmy Elsner UNQUALIFIED
Costa L WhobreyIndiaAnna Fali UNQUALIFIED
Antonio T SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Alejandro Z RoysterUnited KingdomOnyama Limba PROPOSAL
Wickens O StensethArgentinaAnna Fali QUALIFIED
Rodrigues E MorascaIndiaStephen Shaw PROPOSAL
Johnson G AmigonRussiaAsiya Javayant PROPOSAL
Salvatore D NickaUnited KingdomAmy Elsner RENEWAL
Sinclair J RulapaughCanadaAsiya Javayant PROPOSAL
Munro M MaletArgentinaOnyama Limba QUALIFIED
Maisha M ShinkoSpainOnyama Limba PROPOSAL
Leon Z RoysterUnited KingdomAsiya Javayant NEW
Faith Z FlosiFranceStephen Shaw RENEWAL
Adams K CaudyItalyAmy Elsner NEW
Frozen Columns
Name
David Z Schemmer
Smith N Gillian
Isabel Y Flosi
Aditya Y Vocelka
Maria L Stockham
Faith V Slusarski
Leon L Doe
Isabel Z Ruta
Aruna D Marrier
Julie H Stenseth
Morrow V Paprocki
Jennifer U Darakjy
Emily A Sergi
Leja F Oldroyd
Clifford O Gillian
Faith F Rim
Smith W Tollner
Izzy J Malet
Juan H Ruta
Salvatore S Maclead
Faith Z Sergi
Sinclair A Gaucho
Octavia H Perin
Juan O Gillian
Ivar X Paprocki
Juan G Glick
Ricardo W Figeroa
Sinclair F Caudy
Ivar W Stockham
Salvatore B Shinko
Maria D Amigon
Isabel T Iturbide
Costa U Nestle
Greenwood P Butt
Aruna M Glick
Adams O Campain
Chavez N Shinko
Munro X Tollner
Aditya R Flosi
Antonio O Perin
Isabel B Briddick
Silvio F Rulapaugh
Ivar T Stenseth
Mujtaba X Bowley
Claire L Rim
Izzy Q Garufi
Munro M Wieser
Johnson N Malet
Sinclair C Ferencz
Morrow L Bowley
IdCountryDate
1000Japan2025-09-03
1001Russia2025-09-08
1002France2025-09-22
1003India2025-09-11
1004Russia2025-09-22
1005Italy2025-09-23
1006Canada2025-09-19
1007France2025-09-24
1008Brazil2025-09-26
1009Japan2025-09-18
1010Canada2025-09-17
1011Brazil2025-09-04
1012Italy2025-09-09
1013Russia2025-09-18
1014Japan2025-09-21
1015Argentina2025-09-07
1016Argentina2025-10-02
1017Italy2025-09-14
1018Russia2025-09-30
1019Brazil2025-10-02
1020Italy2025-09-10
1021Russia2025-09-03
1022Japan2025-09-22
1023Spain2025-09-11
1024Canada2025-09-15
1025Brazil2025-09-19
1026Germany2025-10-02
1027Canada2025-09-27
1028India2025-09-07
1029Japan2025-09-28
1030Canada2025-09-26
1031Brazil2025-10-01
1032India2025-10-02
1033United Kingdom2025-09-17
1034Argentina2025-09-30
1035Argentina2025-09-06
1036France2025-09-28
1037Australia2025-09-13
1038Brazil2025-09-26
1039United Kingdom2025-09-17
1040Canada2025-09-28
1041Argentina2025-10-02
1042Germany2025-09-12
1043Australia2025-09-06
1044Russia2025-09-29
1045Australia2025-09-04
1046Brazil2025-09-27
1047Russia2025-09-11
1048Brazil2025-09-15
1049United Kingdom2025-09-06

On-Demand Data

NameIdCountryDate
Cody G Gillian1000Brazil2025-09-06
Aika G Tollner1001Australia2025-09-25
Antonio O Royster1002United Kingdom2025-09-07
Isabel M Chui1003United Kingdom2025-09-13
Munro R Ruta1004Germany2025-09-14
Morrow J Wieser1005France2025-09-21
Sinclair H Chui1006Russia2025-09-27
Morrow A Figeroa1007Russia2025-09-25
Salvatore J Poquette1008Canada2025-10-01
Deepesh C Vocelka1009Japan2025-09-20
Costa G Vocelka1010Japan2025-09-27
Johnson F Caldarera1011France2025-09-04
Claire X Gillian1012India2025-09-21
Greenwood Q Morasca1013India2025-09-06
Octavia E Shinko1014Spain2025-09-07
Antonio B Ruta1015France2025-09-06
Aruna L Shinko1016Japan2025-09-10
Isabel E Malet1017Spain2025-09-09
Clifford P Caudy1018India2025-09-05
Silvio J Gaucho1019France2025-09-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow F PerinBrazilOnyama Limba UNQUALIFIED
Murillo Z GauchoGermanyBernardo Dominic NEW
Emily C RoysterIndiaAnna Fali NEW
Tony J WieserAustraliaOnyama Limba NEGOTIATION
Rodrigues C ChuiItalyAsiya Javayant NEGOTIATION
Stacey I CaldareraBrazilBernardo Dominic RENEWAL
Francesco D FerenczGermanyXuxue Feng RENEWAL
James N DilliardItalyAnna Fali NEW
Salvatore R WaycottUnited KingdomIoni Bowcher NEW
Leon H MaletBrazilIvan Magalhaes NEGOTIATION
Smith C SergiBrazilIvan Magalhaes NEGOTIATION
Kadeem U PerinCanadaAsiya Javayant PROPOSAL
Ashley B KuskoCanadaAnna Fali PROPOSAL
Octavia C FerenczIndiaIvan Magalhaes UNQUALIFIED
Salvatore G MaletJapanAmy Elsner NEGOTIATION
Adams G BologniaFranceXuxue Feng PROPOSAL
Juan U OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Leon D MaletJapanXuxue Feng UNQUALIFIED
Juan Y InouyeAustraliaBernardo Dominic NEGOTIATION
James R StockhamGermanyIoni Bowcher NEGOTIATION
Sinclair G WieserIndiaIvan Magalhaes NEGOTIATION
Julie R PoquetteCanadaIvan Magalhaes RENEWAL
Francesco I DarakjyJapanXuxue Feng UNQUALIFIED
Ricardo K CampainGermanyAmy Elsner UNQUALIFIED
Deepesh J CaldareraCanadaAnna Fali NEW
Salvatore B CampainAustraliaBernardo Dominic NEW
Claire K FollerFranceElwin Sharvill RENEWAL
Alejandro R BriddickUnited KingdomStephen Shaw NEGOTIATION
Maria I CaldareraGermanyIoni Bowcher QUALIFIED
Izzy K SaylorsJapanOnyama Limba NEGOTIATION
Leon F OldroydItalyIoni Bowcher RENEWAL
Maria D ChuiArgentinaIoni Bowcher NEW
Ricardo O KuskoUnited KingdomBernardo Dominic PROPOSAL
Murillo N TollnerAustraliaXuxue Feng NEGOTIATION
Wickens Y CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Costa U DilliardArgentinaIvan Magalhaes NEW
Leja U WhobreyBrazilAnna Fali QUALIFIED
Aditya M TollnerItalyOnyama Limba QUALIFIED
Jefferson G MaletUnited KingdomBernardo Dominic NEGOTIATION
Julie S PerinIndiaAmy Elsner QUALIFIED

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