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
Chavez L RutaArgentinaStephen Shaw QUALIFIED
Juan Q ShinkoSpainAsiya Javayant RENEWAL
Faith C MaletItalyAnna Fali QUALIFIED
Arvin E StensethUnited KingdomStephen Shaw RENEWAL
Cody A OldroydBrazilAsiya Javayant NEW
Antonio S NestleRussiaAmy Elsner NEGOTIATION
Francesco S NickaUnited KingdomXuxue Feng RENEWAL
Murillo U OstroskyAustraliaStephen Shaw QUALIFIED
Misaki E GarufiArgentinaElwin Sharvill PROPOSAL
Misaki D SlusarskiJapanIvan Magalhaes RENEWAL
Darci Q DoeFranceStephen Shaw UNQUALIFIED
David R DoeCanadaXuxue Feng QUALIFIED
Juan L DoeArgentinaXuxue Feng QUALIFIED
Nicolas W PaprockiSpainIoni Bowcher PROPOSAL
Deepesh I MarrierJapanAmy Elsner NEW
Stacey G RulapaughFranceXuxue Feng QUALIFIED
Leja I RimFranceElwin Sharvill UNQUALIFIED
Maisha E MarrierAustraliaAmy Elsner QUALIFIED
Juan J DoeBrazilAmy Elsner PROPOSAL
Smith C ShinkoSpainAsiya Javayant UNQUALIFIED
Cody K CampainGermanyXuxue Feng UNQUALIFIED
Smith X NestleCanadaXuxue Feng PROPOSAL
Faith Z StensethSpainIoni Bowcher RENEWAL
Faith F ButtFranceElwin Sharvill NEW
James A NickaJapanAnna Fali RENEWAL
Aika M FlosiBrazilIoni Bowcher UNQUALIFIED
Arvin D SaylorsRussiaIvan Magalhaes UNQUALIFIED
Johnson R FigeroaAustraliaXuxue Feng QUALIFIED
Maisha N FigeroaItalyOnyama Limba QUALIFIED
Adams A NestleBrazilAnna Fali QUALIFIED
Isabel Y InouyeCanadaBernardo Dominic NEGOTIATION
Julie U InouyeFranceAnna Fali NEGOTIATION
Adams T KolmetzItalyAmy Elsner QUALIFIED
Cody U PerinJapanStephen Shaw NEGOTIATION
Faith W CaudyCanadaIvan Magalhaes NEW
Nicolas C RutaArgentinaXuxue Feng RENEWAL
Emily S SaylorsItalyBernardo Dominic RENEWAL
Arvin N SaylorsBrazilIvan Magalhaes NEW
Alejandro J DoeJapanXuxue Feng UNQUALIFIED
Johnson O RulapaughBrazilBernardo Dominic UNQUALIFIED
Salvatore T OldroydSpainIoni Bowcher NEGOTIATION
Kadeem V PerinFranceXuxue Feng NEGOTIATION
Maisha K VocelkaArgentinaBernardo Dominic NEW
Maisha I ShinkoArgentinaOnyama Limba NEW
Aika J FollerBrazilIvan Magalhaes NEGOTIATION
Jennifer J RulapaughJapanBernardo Dominic NEGOTIATION
Claire F SlusarskiGermanyElwin Sharvill RENEWAL
Munro P MaletFranceStephen Shaw NEW
Jennifer F CaudyRussiaStephen Shaw NEGOTIATION
Nicolas O WieserRussiaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois L SaylorsRussiaIvan Magalhaes QUALIFIED
Ivar K FerenczIndiaAsiya Javayant QUALIFIED
Jennifer H GarufiUnited KingdomIvan Magalhaes QUALIFIED
Mayumi O RulapaughFranceIoni Bowcher UNQUALIFIED
Claire D ButtGermanyStephen Shaw RENEWAL
Rodrigues R GillianAustraliaAnna Fali NEGOTIATION
Alejandro Z TollnerRussiaAsiya Javayant UNQUALIFIED
Izzy X SergiIndiaIvan Magalhaes UNQUALIFIED
Munro B WhobreyBrazilIvan Magalhaes PROPOSAL
Cody N VenereRussiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson V ChuiBrazil2025-08-25Dorl, James J Esq RENEWAL52Asiya Javayant
1001Silvio M ShinkoAustralia2025-09-13Commercial Press NEW41Stephen Shaw
1002Morrow O MorascaItaly2025-08-30Rousseaux, Michael Esq UNQUALIFIED88Anna Fali
1003Julie X MorascaSpain2025-09-01Feltz Printing Service QUALIFIED28Asiya Javayant
1004Cody U SergiAustralia2025-09-05Chemel, James L Cpa UNQUALIFIED81Anna Fali
1005Julie C AmigonBrazil2025-09-02Rangoni Of Florence PROPOSAL84Xuxue Feng
1006Chavez S RimIndia2025-08-22King, Christopher A Esq UNQUALIFIED25Onyama Limba
1007Kadeem V DoeBrazil2025-09-04Morlong Associates NEGOTIATION41Bernardo Dominic
1008Stacey U ButtIndia2025-09-09Chapman, Ross E Esq PROPOSAL23Ivan Magalhaes
1009Claire M GarufiGermany2025-08-25King, Christopher A Esq NEW52Ivan Magalhaes
1010Isabel P WhobreyBrazil2025-08-28Feiner Bros RENEWAL87Onyama Limba
1011Alejandro Z AmigonCanada2025-08-20Commercial Press QUALIFIED90Ivan Magalhaes
1012Claire M RutaArgentina2025-08-25Morlong Associates QUALIFIED27Asiya Javayant
1013Salvatore J SergiArgentina2025-09-02Commercial Press UNQUALIFIED69Xuxue Feng
1014Misaki S StensethIndia2025-08-18Rangoni Of Florence RENEWAL76Anna Fali
1015Tony Z CampainSpain2025-09-04King, Christopher A Esq UNQUALIFIED52Elwin Sharvill
1016Darci P RimAustralia2025-09-14Feiner Bros RENEWAL1Asiya Javayant
1017Claire G KolmetzUnited Kingdom2025-08-23Buckley Miller Wright NEGOTIATION59Ioni Bowcher
1018Deepesh O ShinkoItaly2025-08-22Commercial Press PROPOSAL83Asiya Javayant
1019Isabel K AlbaresAustralia2025-08-22Truhlar And Truhlar Attys UNQUALIFIED35Stephen Shaw
1020Arvin J WaycottItaly2025-09-07Feltz Printing Service NEGOTIATION92Elwin Sharvill
1021Clifford P RoysterIndia2025-08-20Chemel, James L Cpa UNQUALIFIED0Ivan Magalhaes
1022Tony F MaletRussia2025-08-20Buckley Miller Wright NEGOTIATION84Onyama Limba
1023Darci S SergiAustralia2025-09-12Chapman, Ross E Esq NEW62Amy Elsner
1024Smith G BriddickJapan2025-08-16King, Christopher A Esq PROPOSAL61Xuxue Feng
1025Clifford O VenereAustralia2025-08-31Benton, John B Jr QUALIFIED85Asiya Javayant
1026Octavia E SergiSpain2025-09-02Truhlar And Truhlar Attys NEGOTIATION55Ivan Magalhaes
1027Darci U SchemmerArgentina2025-09-06Chemel, James L Cpa NEGOTIATION30Bernardo Dominic
1028Costa W MaletJapan2025-08-21Chemel, James L Cpa NEW80Anna Fali
1029Greenwood F CampainGermany2025-08-21Rangoni Of Florence UNQUALIFIED57Asiya Javayant
1030Francesco M MarrierGermany2025-09-04Chemel, James L Cpa RENEWAL59Bernardo Dominic
1031Stacey W InouyeUnited Kingdom2025-08-26Chemel, James L Cpa UNQUALIFIED5Xuxue Feng
1032Deepesh H VenereSpain2025-09-10Rangoni Of Florence QUALIFIED68Stephen Shaw
1033Francesco O MarrierItaly2025-08-31Buckley Miller Wright QUALIFIED7Anna Fali
1034Maria T AmigonIndia2025-09-07Benton, John B Jr PROPOSAL60Ivan Magalhaes
1035Smith T ChuiCanada2025-08-30Rangoni Of Florence NEGOTIATION97Stephen Shaw
1036Nicolas Y MaletArgentina2025-08-22Commercial Press PROPOSAL84Anna Fali
1037Francesco A TollnerRussia2025-08-23Dorl, James J Esq RENEWAL49Ioni Bowcher
1038Cody L GillianArgentina2025-09-10Buckley Miller Wright QUALIFIED1Bernardo Dominic
1039Nicolas D IturbideGermany2025-08-27Feltz Printing Service QUALIFIED64Elwin Sharvill
1040Aika Z GarufiCanada2025-08-23Chanay, Jeffrey A Esq QUALIFIED41Ivan Magalhaes
1041Jeanfrancois S BowleyRussia2025-09-04Truhlar And Truhlar Attys PROPOSAL22Xuxue Feng
1042Johnson L AmigonJapan2025-08-23Chapman, Ross E Esq NEGOTIATION1Elwin Sharvill
1043Faith L MorascaCanada2025-08-20Commercial Press NEW84Onyama Limba
1044Mayumi P MaletSpain2025-09-02Feiner Bros QUALIFIED71Onyama Limba
1045Jefferson T NestleFrance2025-08-16Chanay, Jeffrey A Esq UNQUALIFIED66Onyama Limba
1046Izzy F MorascaCanada2025-08-28Rangoni Of Florence QUALIFIED43Amy Elsner
1047Juan P RimArgentina2025-08-28Dorl, James J Esq RENEWAL25Xuxue Feng
1048Antonio C MacleadJapan2025-09-08Benton, John B Jr NEW49Ivan Magalhaes
1049Octavia A BowleyJapan2025-08-22Truhlar And Truhlar Attys NEGOTIATION94Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody Q ChuiUnited KingdomAsiya Javayant RENEWAL
Kadeem D CampainBrazilAmy Elsner NEGOTIATION
Julie Z MacleadArgentinaAmy Elsner RENEWAL
Jefferson U DarakjyUnited KingdomOnyama Limba UNQUALIFIED
Adams R AlbaresIndiaXuxue Feng UNQUALIFIED
James Y ChuiBrazilIoni Bowcher RENEWAL
Octavia J AmigonGermanyBernardo Dominic NEGOTIATION
Johnson W CampainAustraliaIoni Bowcher UNQUALIFIED
Silvio Y ChuiAustraliaOnyama Limba NEGOTIATION
Aika R DoeGermanyElwin Sharvill RENEWAL
Claire H FerenczSpainAsiya Javayant UNQUALIFIED
Tony R MorascaCanadaIvan Magalhaes UNQUALIFIED
Maisha F DoeCanadaBernardo Dominic UNQUALIFIED
Mayumi S BologniaFranceAnna Fali RENEWAL
Greenwood L SlusarskiGermanyAmy Elsner RENEWAL
Adams H KuskoArgentinaXuxue Feng NEW
Emily G ChuiJapanAmy Elsner RENEWAL
Munro T RulapaughSpainOnyama Limba QUALIFIED
Ivar Z MaletIndiaXuxue Feng RENEWAL
Munro Q AmigonRussiaAsiya Javayant UNQUALIFIED
Mujtaba L GarufiAustraliaStephen Shaw PROPOSAL
Kaitlin J DarakjySpainIoni Bowcher NEW
Chavez P RimArgentinaOnyama Limba NEGOTIATION
Chavez G CaldareraCanadaIvan Magalhaes UNQUALIFIED
Jefferson O PaprockiRussiaStephen Shaw PROPOSAL
Ivar I PoquetteBrazilElwin Sharvill NEGOTIATION
Kadeem R MacleadSpainAsiya Javayant PROPOSAL
Misaki U NestleRussiaAmy Elsner NEGOTIATION
James B WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Maria L WieserRussiaIvan Magalhaes RENEWAL
Smith D BologniaIndiaStephen Shaw PROPOSAL
Aruna M MacleadSpainBernardo Dominic NEGOTIATION
Sinclair C MaletGermanyXuxue Feng QUALIFIED
Kadeem Y GarufiRussiaIoni Bowcher RENEWAL
Mayumi A MacleadRussiaIoni Bowcher UNQUALIFIED
Adams O GarufiJapanXuxue Feng NEW
Leja J TollnerBrazilStephen Shaw NEGOTIATION
Octavia V GarufiAustraliaElwin Sharvill UNQUALIFIED
Nicolas X BriddickItalyBernardo Dominic NEW
Aditya W FerenczUnited KingdomIoni Bowcher PROPOSAL
James O SchemmerItalyXuxue Feng NEGOTIATION
Chavez X WieserArgentinaOnyama Limba QUALIFIED
Kadeem M FlosiArgentinaBernardo Dominic PROPOSAL
David Z DilliardRussiaIvan Magalhaes QUALIFIED
Nicolas V InouyeSpainAsiya Javayant QUALIFIED
Maria S CampainSpainStephen Shaw PROPOSAL
Juan J BologniaItalyBernardo Dominic PROPOSAL
Faith D RimRussiaOnyama Limba QUALIFIED
Arvin R WaycottSpainXuxue Feng RENEWAL
Juan D KuskoRussiaAnna Fali NEW
Frozen Columns
Name
Murillo D Malet
Alejandro S Oldroyd
Costa N Doe
Leon J Darakjy
Kadeem H Chui
Silvio I Slusarski
Aruna X Malet
Rodrigues X Waycott
Nicolas D Doe
Misaki E Shinko
Julie R Malet
Stacey Y Flosi
Tony J Gillian
Munro E Paprocki
Johnson K Gillian
Aruna W Nicka
David W Slusarski
Aruna Z Chui
Salvatore V Ruta
Jennifer T Shinko
Wickens H Perin
Wickens Z Saylors
Kaitlin G Vocelka
Aika S Wieser
Mayumi P Kolmetz
Tony I Royster
Jefferson X Waycott
Aditya G Butt
Darci D Shinko
Mujtaba K Maclead
David V Bowley
Tony Y Rim
Kadeem U Gaucho
Isabel Z Bowley
Faith P Ostrosky
Chavez I Morasca
Morrow O Rim
Maisha L Campain
Jennifer R Royster
Arvin M Chui
Murillo A Rim
Leon H Gaucho
Greenwood V Paprocki
Cody G Kolmetz
Sinclair A Ferencz
Isabel Q Caldarera
Jeanfrancois K Saylors
Mayumi Z Briddick
Rodrigues O Gillian
Ricardo I Maclead
IdCountryDate
1000Argentina2025-09-05
1001Italy2025-09-13
1002Canada2025-08-30
1003Italy2025-08-19
1004Australia2025-08-17
1005Russia2025-08-18
1006France2025-08-20
1007Canada2025-09-10
1008Germany2025-09-04
1009Germany2025-08-20
1010Russia2025-08-19
1011Argentina2025-09-05
1012Germany2025-08-24
1013Argentina2025-09-14
1014United Kingdom2025-08-23
1015Spain2025-08-29
1016India2025-09-05
1017India2025-08-21
1018India2025-09-11
1019Brazil2025-08-28
1020India2025-09-06
1021Spain2025-08-20
1022Germany2025-09-01
1023Italy2025-08-16
1024Australia2025-09-08
1025Australia2025-08-20
1026Italy2025-08-27
1027France2025-08-27
1028United Kingdom2025-08-21
1029France2025-09-04
1030France2025-08-26
1031Spain2025-08-17
1032Australia2025-08-18
1033Russia2025-08-20
1034Australia2025-08-19
1035Germany2025-08-16
1036Germany2025-08-18
1037India2025-09-06
1038Australia2025-08-23
1039Italy2025-09-02
1040Brazil2025-09-09
1041India2025-09-10
1042Brazil2025-09-08
1043Brazil2025-09-11
1044Brazil2025-08-30
1045Japan2025-08-26
1046United Kingdom2025-08-16
1047Japan2025-08-28
1048United Kingdom2025-08-29
1049Brazil2025-09-10

On-Demand Data

NameIdCountryDate
Izzy A Poquette1000Australia2025-08-17
Izzy M Royster1001India2025-08-20
James U Amigon1002Australia2025-08-19
Greenwood Z Venere1003Germany2025-08-27
Aditya G Vocelka1004Argentina2025-08-25
Tony J Gillian1005Canada2025-08-29
Smith Y Foller1006Italy2025-09-13
Munro S Tollner1007United Kingdom2025-09-09
Mujtaba B Malet1008Spain2025-08-21
Murillo S Inouye1009Brazil2025-08-16
Maria T Stenseth1010Germany2025-08-25
Maria R Stockham1011Germany2025-08-30
Jones G Doe1012Germany2025-08-30
Adams R Whobrey1013Spain2025-09-09
Deepesh N Gaucho1014Argentina2025-09-05
Sinclair S Foller1015Canada2025-09-07
Nicolas A Garufi1016Germany2025-08-17
James D Gaucho1017France2025-08-23
Aruna Y Campain1018Australia2025-09-11
Salvatore N Ruta1019France2025-08-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro G VenereFranceElwin Sharvill UNQUALIFIED
Leon R DilliardGermanyAmy Elsner QUALIFIED
Leja Q SaylorsItalyOnyama Limba QUALIFIED
Tony R CampainJapanIvan Magalhaes NEGOTIATION
Ashley V GlickBrazilStephen Shaw QUALIFIED
Antonio R SchemmerJapanAnna Fali PROPOSAL
Kaitlin C CampainRussiaOnyama Limba PROPOSAL
Tony Y TollnerItalyAsiya Javayant NEGOTIATION
Arvin X GillianFranceElwin Sharvill PROPOSAL
Cody U MorascaArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues G MaletCanadaElwin Sharvill RENEWAL
Jones Q MaletCanadaAmy Elsner PROPOSAL
Murillo J MacleadFranceXuxue Feng UNQUALIFIED
Murillo A MorascaUnited KingdomStephen Shaw NEW
Francesco E FlosiIndiaIoni Bowcher NEGOTIATION
Silvio I BologniaBrazilBernardo Dominic RENEWAL
Jefferson M RutaIndiaElwin Sharvill RENEWAL
Misaki A ChuiSpainAnna Fali PROPOSAL
Smith Y RimGermanyAnna Fali NEGOTIATION
Kadeem J SchemmerBrazilIoni Bowcher RENEWAL
Rodrigues I NickaJapanXuxue Feng PROPOSAL
Julie N SchemmerRussiaAsiya Javayant QUALIFIED
Kaitlin T SaylorsItalyAnna Fali NEW
Ashley K SchemmerAustraliaAsiya Javayant NEW
Izzy I TollnerCanadaIvan Magalhaes NEGOTIATION
Darci N InouyeFranceOnyama Limba PROPOSAL
Maria P MarrierCanadaIvan Magalhaes QUALIFIED
Isabel U WieserArgentinaAsiya Javayant NEW
Johnson J SaylorsSpainIoni Bowcher QUALIFIED
Claire V RulapaughItalyOnyama Limba NEW
Misaki M GillianCanadaXuxue Feng UNQUALIFIED
Misaki M InouyeBrazilXuxue Feng RENEWAL
Kadeem I BowleyJapanIvan Magalhaes QUALIFIED
Kadeem Q PaprockiArgentinaXuxue Feng NEW
Costa X WieserItalyElwin Sharvill RENEWAL
Johnson C VocelkaUnited KingdomIvan Magalhaes NEW
Kadeem C CaldareraAustraliaAsiya Javayant NEW
Isabel J WhobreySpainIoni Bowcher UNQUALIFIED
Smith Q GarufiAustraliaStephen Shaw UNQUALIFIED
Octavia B DarakjyIndiaIoni Bowcher NEW

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