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
Jones Q OstroskyBrazilXuxue Feng NEGOTIATION
Silvio I OstroskyCanadaXuxue Feng RENEWAL
Aditya Z RoysterBrazilAnna Fali RENEWAL
Claire B ChuiAustraliaBernardo Dominic QUALIFIED
Kaitlin R FerenczAustraliaIvan Magalhaes NEW
Adams H RimFranceIvan Magalhaes UNQUALIFIED
Jennifer M ButtCanadaIvan Magalhaes QUALIFIED
Juan I FollerItalyElwin Sharvill UNQUALIFIED
Salvatore C WhobreyJapanIvan Magalhaes RENEWAL
Kaitlin L MaletJapanIvan Magalhaes QUALIFIED
Nicolas M RoysterGermanyStephen Shaw NEW
Cody R MaletUnited KingdomOnyama Limba NEW
Greenwood H InouyeFranceElwin Sharvill PROPOSAL
Aditya U FollerIndiaAsiya Javayant QUALIFIED
Leon F MorascaRussiaElwin Sharvill RENEWAL
Morrow T TollnerFranceStephen Shaw QUALIFIED
Ricardo J ShinkoFranceXuxue Feng NEGOTIATION
Morrow J NestleAustraliaAmy Elsner NEW
Aruna K WieserUnited KingdomAsiya Javayant NEW
Cody S SergiGermanyAnna Fali QUALIFIED
David P SlusarskiArgentinaBernardo Dominic NEW
Octavia S DilliardJapanAmy Elsner UNQUALIFIED
Tony Z BologniaIndiaStephen Shaw RENEWAL
Jennifer Z NestleBrazilOnyama Limba PROPOSAL
Izzy U IturbideBrazilStephen Shaw PROPOSAL
Claire R FollerAustraliaBernardo Dominic NEGOTIATION
Aruna I SchemmerItalyIvan Magalhaes NEGOTIATION
Adams E VocelkaAustraliaXuxue Feng PROPOSAL
Costa T StensethGermanyOnyama Limba NEGOTIATION
Wickens R PoquetteCanadaXuxue Feng PROPOSAL
Leja T FollerRussiaOnyama Limba QUALIFIED
Emily K VocelkaGermanyOnyama Limba NEW
Nicolas H FigeroaCanadaStephen Shaw RENEWAL
Silvio A InouyeCanadaOnyama Limba PROPOSAL
David Z MaletJapanAsiya Javayant QUALIFIED
Smith B StensethSpainStephen Shaw QUALIFIED
Jeanfrancois W DoeIndiaAsiya Javayant PROPOSAL
Deepesh L MorascaGermanyAnna Fali NEGOTIATION
Mujtaba S NickaBrazilBernardo Dominic NEW
Emily I PaprockiSpainAsiya Javayant RENEWAL
Johnson Q KolmetzRussiaIvan Magalhaes PROPOSAL
Kaitlin K NickaGermanyIoni Bowcher NEW
Misaki E KuskoSpainElwin Sharvill NEW
Nicolas Y OstroskyArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois Q CampainAustraliaAsiya Javayant QUALIFIED
Jennifer S WhobreyBrazilAnna Fali RENEWAL
Francesco A VenereFranceAsiya Javayant UNQUALIFIED
Maisha P FlosiAustraliaBernardo Dominic NEGOTIATION
James B StensethItalyOnyama Limba PROPOSAL
Misaki M WaycottUnited KingdomOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez P GlickIndiaIoni Bowcher NEGOTIATION
James Q GlickRussiaAsiya Javayant QUALIFIED
Rodrigues K ShinkoFranceOnyama Limba PROPOSAL
Chavez W AmigonGermanyAsiya Javayant NEW
Claire E SchemmerBrazilStephen Shaw NEW
Emily K NickaCanadaAnna Fali NEW
Jefferson M CampainJapanElwin Sharvill PROPOSAL
James R FollerCanadaAmy Elsner NEGOTIATION
Morrow J CampainGermanyAsiya Javayant NEGOTIATION
Mujtaba S InouyeRussiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez Y CaudyFrance2025-07-23Dorl, James J Esq QUALIFIED2Xuxue Feng
1001Jones W FigeroaItaly2025-07-21Truhlar And Truhlar Attys RENEWAL4Stephen Shaw
1002Munro U SchemmerItaly2025-07-13Rangoni Of Florence PROPOSAL83Amy Elsner
1003Izzy F PoquetteFrance2025-07-31Chemel, James L Cpa RENEWAL13Ioni Bowcher
1004Greenwood X NickaIndia2025-07-20Benton, John B Jr NEGOTIATION89Ioni Bowcher
1005Claire F MorascaSpain2025-07-15Feiner Bros QUALIFIED51Asiya Javayant
1006Kaitlin K RulapaughIndia2025-07-08Truhlar And Truhlar Attys NEGOTIATION74Elwin Sharvill
1007David B VocelkaIndia2025-07-29King, Christopher A Esq QUALIFIED38Onyama Limba
1008Jennifer Y SergiRussia2025-07-14Printing Dimensions QUALIFIED7Anna Fali
1009Mujtaba G GillianRussia2025-07-31Dorl, James J Esq QUALIFIED87Onyama Limba
1010Deepesh D VenereBrazil2025-07-26Truhlar And Truhlar Attys QUALIFIED7Ivan Magalhaes
1011Leon C AmigonGermany2025-07-23Rangoni Of Florence PROPOSAL64Onyama Limba
1012Silvio S FollerJapan2025-07-18Feiner Bros UNQUALIFIED38Onyama Limba
1013Julie A RutaRussia2025-07-16Dorl, James J Esq NEGOTIATION69Stephen Shaw
1014Francesco C PaprockiItaly2025-07-27Rangoni Of Florence UNQUALIFIED81Anna Fali
1015Kadeem T ChuiRussia2025-07-28Chapman, Ross E Esq NEGOTIATION83Stephen Shaw
1016Alejandro E SlusarskiBrazil2025-08-01Dorl, James J Esq UNQUALIFIED83Asiya Javayant
1017Rodrigues G BriddickUnited Kingdom2025-07-19Rangoni Of Florence NEW91Elwin Sharvill
1018Ashley Q RulapaughItaly2025-07-23Rangoni Of Florence RENEWAL55Bernardo Dominic
1019Sinclair K CaudyIndia2025-07-29Rangoni Of Florence NEGOTIATION79Stephen Shaw
1020Smith L GauchoSpain2025-07-25Printing Dimensions RENEWAL61Xuxue Feng
1021Claire V GarufiGermany2025-08-03King, Christopher A Esq NEGOTIATION44Amy Elsner
1022Sinclair G RutaBrazil2025-08-03Truhlar And Truhlar Attys NEW46Stephen Shaw
1023Claire O PoquetteBrazil2025-07-18Chapman, Ross E Esq NEGOTIATION13Anna Fali
1024Johnson O MaletArgentina2025-07-25Feltz Printing Service NEW73Asiya Javayant
1025Ricardo F ShinkoBrazil2025-07-22Morlong Associates NEW42Stephen Shaw
1026Cody E WaycottArgentina2025-07-24Chanay, Jeffrey A Esq QUALIFIED21Anna Fali
1027Tony A NickaItaly2025-07-22Printing Dimensions NEGOTIATION3Anna Fali
1028Julie G PoquetteFrance2025-08-01Buckley Miller Wright NEGOTIATION30Asiya Javayant
1029Jennifer P RutaItaly2025-07-08Chapman, Ross E Esq UNQUALIFIED96Asiya Javayant
1030Julie Z StensethArgentina2025-07-26Rousseaux, Michael Esq PROPOSAL71Elwin Sharvill
1031Maria N OstroskyRussia2025-08-02Benton, John B Jr RENEWAL51Ioni Bowcher
1032Nicolas E MorascaSpain2025-07-17King, Christopher A Esq NEW49Ioni Bowcher
1033Julie B DarakjyIndia2025-07-24Benton, John B Jr QUALIFIED46Elwin Sharvill
1034Jeanfrancois W RoysterJapan2025-07-14Rousseaux, Michael Esq UNQUALIFIED38Stephen Shaw
1035Munro P RoysterFrance2025-07-21Buckley Miller Wright RENEWAL1Ivan Magalhaes
1036Deepesh O PoquetteUnited Kingdom2025-07-31Benton, John B Jr QUALIFIED34Xuxue Feng
1037Darci J SergiSpain2025-07-08Rousseaux, Michael Esq NEGOTIATION99Onyama Limba
1038Kaitlin D CaldareraArgentina2025-07-27King, Christopher A Esq QUALIFIED82Xuxue Feng
1039Costa A OstroskyItaly2025-07-17Rousseaux, Michael Esq NEW11Amy Elsner
1040Clifford T GlickSpain2025-07-20Printing Dimensions RENEWAL92Xuxue Feng
1041Murillo Q RimRussia2025-07-24King, Christopher A Esq UNQUALIFIED26Onyama Limba
1042Clifford D TollnerSpain2025-07-09Feiner Bros NEGOTIATION66Elwin Sharvill
1043Arvin X WieserCanada2025-07-14Chapman, Ross E Esq PROPOSAL35Anna Fali
1044Leon G DoeIndia2025-07-16Dorl, James J Esq NEW99Xuxue Feng
1045Costa Q RimFrance2025-07-31Chemel, James L Cpa QUALIFIED53Elwin Sharvill
1046Sinclair G DilliardGermany2025-07-19Chemel, James L Cpa QUALIFIED87Asiya Javayant
1047Isabel E CaudyRussia2025-07-06Feltz Printing Service RENEWAL15Bernardo Dominic
1048Cody H RoysterUnited Kingdom2025-07-17Chapman, Ross E Esq RENEWAL37Bernardo Dominic
1049Clifford M MaletSpain2025-07-14Morlong Associates QUALIFIED95Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo X OstroskyJapanIoni Bowcher PROPOSAL
Juan X VocelkaRussiaAsiya Javayant NEW
Costa V CaudyGermanyStephen Shaw NEGOTIATION
Salvatore I DarakjyFranceBernardo Dominic QUALIFIED
Wickens J DilliardJapanXuxue Feng NEW
Arvin V OldroydGermanyAsiya Javayant NEW
Leon U RimItalyIoni Bowcher NEGOTIATION
Maisha Q BowleyAustraliaStephen Shaw RENEWAL
Johnson Z FollerJapanIvan Magalhaes RENEWAL
Clifford Z BriddickFranceAnna Fali RENEWAL
Adams O GillianSpainOnyama Limba PROPOSAL
Mujtaba W BowleyItalyBernardo Dominic UNQUALIFIED
Emily N StockhamIndiaStephen Shaw RENEWAL
Morrow P KuskoGermanyAsiya Javayant UNQUALIFIED
Chavez Z CampainIndiaElwin Sharvill NEW
Chavez I MorascaIndiaIvan Magalhaes UNQUALIFIED
Rodrigues D SaylorsUnited KingdomXuxue Feng RENEWAL
Sinclair L FollerRussiaStephen Shaw NEGOTIATION
Murillo X KuskoFranceStephen Shaw NEW
Ashley W GarufiBrazilXuxue Feng UNQUALIFIED
Munro K WhobreyCanadaIoni Bowcher NEW
Clifford J AmigonUnited KingdomIoni Bowcher NEW
Arvin I MaletBrazilAmy Elsner QUALIFIED
Leon L MorascaFranceAmy Elsner RENEWAL
Stacey N MaletRussiaOnyama Limba NEW
Julie Z GlickGermanyAsiya Javayant RENEWAL
Francesco P CampainUnited KingdomIvan Magalhaes NEW
Alejandro A StockhamUnited KingdomAmy Elsner UNQUALIFIED
Tony S CaldareraItalyAsiya Javayant PROPOSAL
Ricardo Z WaycottRussiaAsiya Javayant NEGOTIATION
Mayumi N OldroydAustraliaAmy Elsner UNQUALIFIED
Morrow W SaylorsBrazilXuxue Feng NEGOTIATION
Octavia A SchemmerCanadaBernardo Dominic QUALIFIED
Mayumi C MorascaJapanXuxue Feng RENEWAL
Jefferson I RutaItalyAsiya Javayant RENEWAL
Stacey X BologniaBrazilAnna Fali QUALIFIED
Wickens T StockhamIndiaBernardo Dominic PROPOSAL
Jones D AlbaresBrazilElwin Sharvill PROPOSAL
Maisha E OstroskyUnited KingdomIoni Bowcher NEW
Silvio D ButtArgentinaAmy Elsner QUALIFIED
Jones D FlosiArgentinaStephen Shaw RENEWAL
Kaitlin J StockhamBrazilOnyama Limba NEW
Mujtaba W StockhamAustraliaAmy Elsner UNQUALIFIED
Emily P GillianUnited KingdomBernardo Dominic UNQUALIFIED
Faith Z SlusarskiSpainAmy Elsner RENEWAL
Julie H GauchoAustraliaIvan Magalhaes QUALIFIED
Greenwood J FlosiRussiaOnyama Limba QUALIFIED
Aika L SaylorsAustraliaXuxue Feng RENEWAL
David Y RoysterBrazilStephen Shaw QUALIFIED
Jennifer X BowleyArgentinaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Deepesh E Ruta
Antonio Y Foller
Antonio T Gaucho
Alejandro V Nicka
Morrow Z Poquette
Salvatore K Butt
Jennifer M Ferencz
Wickens T Perin
Aditya L Bolognia
Salvatore M Gillian
Maria G Oldroyd
Jennifer F Flosi
Silvio G Rulapaugh
Johnson P Poquette
Kaitlin S Ostrosky
Darci E Poquette
Aditya Y Nestle
Kaitlin N Stenseth
Jennifer B Oldroyd
Morrow R Saylors
James Z Saylors
Smith W Ostrosky
Claire O Bolognia
Juan E Amigon
Antonio P Bowley
Isabel Q Paprocki
Izzy W Slusarski
Leon O Inouye
Jeanfrancois S Venere
Octavia R Kolmetz
Ivar D Gaucho
Deepesh M Malet
Arvin C Glick
Wickens O Stenseth
Aika J Nestle
Maisha D Wieser
Clifford J Chui
Antonio O Kusko
Cody K Shinko
Munro W Oldroyd
Sinclair O Stockham
Kaitlin Y Stockham
Arvin J Flosi
Jones P Marrier
Johnson M Butt
Murillo P Malet
Ashley Y Garufi
Antonio T Tollner
Isabel L Slusarski
Claire B Tollner
IdCountryDate
1000Brazil2025-08-03
1001Brazil2025-07-23
1002Spain2025-07-26
1003India2025-07-20
1004France2025-07-18
1005Italy2025-07-22
1006India2025-08-01
1007Spain2025-07-17
1008India2025-07-16
1009France2025-07-11
1010Spain2025-07-23
1011Spain2025-07-14
1012Canada2025-07-30
1013India2025-07-07
1014Italy2025-07-23
1015Brazil2025-07-09
1016India2025-08-01
1017United Kingdom2025-07-12
1018Italy2025-07-09
1019Brazil2025-07-30
1020Germany2025-07-20
1021Italy2025-07-27
1022Japan2025-07-28
1023India2025-08-01
1024Germany2025-07-29
1025United Kingdom2025-07-16
1026Spain2025-08-03
1027India2025-07-30
1028India2025-07-18
1029Germany2025-07-14
1030Australia2025-07-15
1031Italy2025-07-15
1032India2025-07-30
1033United Kingdom2025-07-12
1034Italy2025-07-26
1035Canada2025-07-28
1036Russia2025-07-18
1037France2025-08-04
1038Canada2025-07-31
1039Russia2025-07-28
1040Argentina2025-07-27
1041France2025-07-26
1042France2025-07-09
1043Russia2025-07-11
1044India2025-08-02
1045Italy2025-07-17
1046Germany2025-08-04
1047Australia2025-08-02
1048France2025-07-20
1049France2025-07-08

On-Demand Data

NameIdCountryDate
Julie Y Nicka1000Canada2025-07-27
Faith M Amigon1001Australia2025-07-21
Tony T Kusko1002Italy2025-07-15
Aika Y Whobrey1003Brazil2025-07-28
Izzy B Vocelka1004Canada2025-08-01
Juan O Poquette1005Spain2025-07-21
David O Campain1006Spain2025-07-12
Silvio L Tollner1007Italy2025-07-28
Jennifer O Wieser1008Spain2025-07-24
Mayumi A Flosi1009France2025-07-23
Costa W Bowley1010Canada2025-07-14
Smith L Briddick1011Canada2025-07-22
Murillo W Oldroyd1012Japan2025-07-19
Kadeem D Whobrey1013Canada2025-07-16
Alejandro D Stenseth1014Canada2025-07-06
Jefferson G Ruta1015India2025-07-14
Rodrigues B Kusko1016United Kingdom2025-07-21
Jones L Nicka1017Germany2025-07-22
Tony C Whobrey1018India2025-08-04
Greenwood X Kolmetz1019India2025-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin A MaletAustraliaBernardo Dominic RENEWAL
Sinclair F CampainUnited KingdomIvan Magalhaes QUALIFIED
Emily N SchemmerUnited KingdomXuxue Feng RENEWAL
Maria V GauchoCanadaXuxue Feng NEGOTIATION
Francesco Q KuskoRussiaIvan Magalhaes UNQUALIFIED
Claire N RimIndiaStephen Shaw PROPOSAL
Stacey W CaudyFranceStephen Shaw UNQUALIFIED
Ivar N InouyeIndiaElwin Sharvill PROPOSAL
Jones K PoquetteBrazilAnna Fali UNQUALIFIED
Greenwood J KuskoUnited KingdomIoni Bowcher NEW
Arvin G VocelkaCanadaAsiya Javayant UNQUALIFIED
Jefferson B SlusarskiBrazilAmy Elsner NEGOTIATION
Mayumi U PoquetteArgentinaAmy Elsner RENEWAL
Aruna W CampainIndiaIoni Bowcher RENEWAL
Kaitlin I NestleGermanyStephen Shaw RENEWAL
Jones E ButtAustraliaXuxue Feng NEW
Isabel R PerinBrazilAmy Elsner UNQUALIFIED
Faith J RoysterJapanAmy Elsner UNQUALIFIED
Mujtaba A StockhamJapanIoni Bowcher RENEWAL
Octavia W MaletJapanOnyama Limba UNQUALIFIED
Claire I AlbaresArgentinaIoni Bowcher RENEWAL
Cody S FerenczAustraliaAnna Fali QUALIFIED
Aditya O PoquetteCanadaXuxue Feng QUALIFIED
Aika I WieserIndiaIoni Bowcher QUALIFIED
Sinclair I CampainCanadaOnyama Limba NEW
Jefferson W CampainRussiaAnna Fali UNQUALIFIED
Munro O GauchoItalyOnyama Limba NEW
Emily D TollnerArgentinaAsiya Javayant NEW
Emily K VocelkaSpainIoni Bowcher NEGOTIATION
Maria Y SlusarskiBrazilXuxue Feng RENEWAL
Francesco Q GillianItalyAmy Elsner QUALIFIED
Aruna Q PoquetteSpainOnyama Limba QUALIFIED
Darci C ChuiItalyAnna Fali UNQUALIFIED
Deepesh A CaldareraItalyOnyama Limba RENEWAL
Costa L BriddickJapanAnna Fali UNQUALIFIED
Aruna J SlusarskiRussiaOnyama Limba NEGOTIATION
Jennifer G RimJapanStephen Shaw NEGOTIATION
Kadeem W GlickItalyAsiya Javayant PROPOSAL
Rodrigues L GlickRussiaXuxue Feng UNQUALIFIED
Adams K WaycottSpainBernardo Dominic 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>