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
Rodrigues C StensethItalyStephen Shaw RENEWAL
Johnson H AlbaresItalyBernardo Dominic RENEWAL
Faith V RoysterCanadaAnna Fali RENEWAL
Aruna B RimBrazilAsiya Javayant PROPOSAL
Aditya Y MaletJapanOnyama Limba PROPOSAL
Jones O SlusarskiBrazilStephen Shaw RENEWAL
Chavez K OstroskyUnited KingdomAnna Fali PROPOSAL
Kaitlin W SchemmerCanadaOnyama Limba QUALIFIED
Jones J FigeroaGermanyAmy Elsner NEW
Greenwood Z TollnerRussiaBernardo Dominic NEW
Deepesh U WhobreyFranceElwin Sharvill NEGOTIATION
Maria K WhobreyFranceAnna Fali PROPOSAL
Leon Y BologniaSpainAmy Elsner NEGOTIATION
Faith X CampainUnited KingdomAmy Elsner NEW
Murillo D NickaGermanyAsiya Javayant QUALIFIED
Claire W NickaGermanyElwin Sharvill UNQUALIFIED
Aruna V MaletBrazilAmy Elsner QUALIFIED
Julie R FerenczSpainAnna Fali PROPOSAL
Cody D RutaItalyBernardo Dominic UNQUALIFIED
Rodrigues B BriddickItalyXuxue Feng PROPOSAL
Costa W WhobreyItalyElwin Sharvill UNQUALIFIED
David Q StensethJapanAsiya Javayant RENEWAL
Kadeem A NestleIndiaXuxue Feng NEW
Mayumi W PoquetteBrazilElwin Sharvill RENEWAL
Mujtaba M InouyeGermanyAsiya Javayant NEW
Aditya J WaycottArgentinaAsiya Javayant NEW
Deepesh Z InouyeFranceElwin Sharvill PROPOSAL
Mujtaba V RulapaughSpainElwin Sharvill UNQUALIFIED
Misaki W VocelkaCanadaAmy Elsner PROPOSAL
Aika N GarufiCanadaAnna Fali QUALIFIED
Deepesh K WaycottArgentinaIoni Bowcher UNQUALIFIED
Greenwood G MaletJapanXuxue Feng PROPOSAL
Maisha I MaletCanadaAnna Fali QUALIFIED
Ricardo L KuskoFranceElwin Sharvill QUALIFIED
Munro C FlosiAustraliaIoni Bowcher UNQUALIFIED
Chavez Q MaletFranceAnna Fali PROPOSAL
Cody E DilliardCanadaElwin Sharvill UNQUALIFIED
Darci M MaletRussiaAmy Elsner PROPOSAL
Rodrigues J TollnerIndiaIoni Bowcher NEGOTIATION
Darci E FerenczUnited KingdomStephen Shaw UNQUALIFIED
Chavez T GarufiCanadaStephen Shaw RENEWAL
Alejandro B ShinkoAustraliaIoni Bowcher QUALIFIED
Isabel F VenereRussiaXuxue Feng NEGOTIATION
Salvatore F RimIndiaAsiya Javayant PROPOSAL
Misaki C BriddickFranceStephen Shaw QUALIFIED
Maisha S RutaSpainStephen Shaw RENEWAL
Juan N MarrierFranceOnyama Limba QUALIFIED
Francesco J DoeArgentinaBernardo Dominic RENEWAL
Silvio K BologniaArgentinaOnyama Limba PROPOSAL
Alejandro J MaletIndiaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Izzy J ButtCanadaIoni Bowcher PROPOSAL
Maisha P KuskoItalyStephen Shaw NEW
Misaki V NestleArgentinaAmy Elsner UNQUALIFIED
Sinclair D AlbaresIndiaOnyama Limba RENEWAL
Antonio G PoquetteFranceBernardo Dominic NEW
Murillo L FollerBrazilStephen Shaw NEW
Cody M MaletJapanAnna Fali RENEWAL
Silvio D FlosiSpainIoni Bowcher QUALIFIED
Isabel N FerenczFranceStephen Shaw NEW
Wickens W StockhamGermanyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens Y FerenczSpain2025-08-02Truhlar And Truhlar Attys UNQUALIFIED11Anna Fali
1001Sinclair U SaylorsRussia2025-08-23Commercial Press QUALIFIED91Asiya Javayant
1002Clifford K FerenczGermany2025-08-01King, Christopher A Esq NEW61Xuxue Feng
1003Antonio S OldroydBrazil2025-08-03Commercial Press QUALIFIED78Bernardo Dominic
1004Deepesh L RimArgentina2025-07-27Buckley Miller Wright UNQUALIFIED16Asiya Javayant
1005Faith L NestleArgentina2025-07-31Printing Dimensions NEGOTIATION86Ivan Magalhaes
1006Silvio A TollnerFrance2025-08-15Chemel, James L Cpa QUALIFIED50Asiya Javayant
1007Faith O PaprockiBrazil2025-08-19Truhlar And Truhlar Attys NEW13Stephen Shaw
1008Silvio H CaudyCanada2025-08-14Rangoni Of Florence NEGOTIATION77Ioni Bowcher
1009Nicolas N OldroydJapan2025-08-09Benton, John B Jr UNQUALIFIED28Ioni Bowcher
1010Silvio X GarufiGermany2025-08-23King, Christopher A Esq NEW50Onyama Limba
1011Jones E RutaIndia2025-08-03Chanay, Jeffrey A Esq QUALIFIED2Anna Fali
1012Octavia S FlosiUnited Kingdom2025-08-16Commercial Press RENEWAL83Onyama Limba
1013Leon U RimBrazil2025-08-02Dorl, James J Esq PROPOSAL56Elwin Sharvill
1014Salvatore U AmigonGermany2025-08-08Chemel, James L Cpa QUALIFIED78Ivan Magalhaes
1015Ricardo W NestleCanada2025-08-15Truhlar And Truhlar Attys UNQUALIFIED55Ivan Magalhaes
1016David K KuskoRussia2025-08-05Feiner Bros QUALIFIED47Bernardo Dominic
1017Claire Z TollnerSpain2025-08-18Chemel, James L Cpa PROPOSAL0Bernardo Dominic
1018Salvatore Y AlbaresGermany2025-07-29Buckley Miller Wright PROPOSAL54Amy Elsner
1019Arvin I KolmetzJapan2025-08-05Rousseaux, Michael Esq PROPOSAL98Xuxue Feng
1020Munro W IturbideJapan2025-08-05Feltz Printing Service QUALIFIED25Ivan Magalhaes
1021Morrow R ButtAustralia2025-08-19Chapman, Ross E Esq QUALIFIED91Ioni Bowcher
1022Aruna O ShinkoBrazil2025-08-22King, Christopher A Esq UNQUALIFIED65Onyama Limba
1023Ricardo R BowleyItaly2025-07-28King, Christopher A Esq PROPOSAL6Stephen Shaw
1024Aruna U DoeBrazil2025-08-14King, Christopher A Esq NEW63Asiya Javayant
1025Emily F DoeRussia2025-08-17Chemel, James L Cpa PROPOSAL29Elwin Sharvill
1026Smith E FerenczFrance2025-07-27Rangoni Of Florence PROPOSAL75Bernardo Dominic
1027Salvatore W WhobreyJapan2025-08-01Feiner Bros QUALIFIED97Ioni Bowcher
1028David A WieserUnited Kingdom2025-08-07Chapman, Ross E Esq UNQUALIFIED49Ivan Magalhaes
1029Sinclair N DarakjyUnited Kingdom2025-08-01Rousseaux, Michael Esq RENEWAL44Bernardo Dominic
1030Alejandro B WieserArgentina2025-08-10Rousseaux, Michael Esq NEGOTIATION39Elwin Sharvill
1031James W RutaIndia2025-08-17Rangoni Of Florence PROPOSAL72Stephen Shaw
1032Alejandro Y VenereFrance2025-07-27Chemel, James L Cpa NEW36Amy Elsner
1033Aruna U FlosiCanada2025-08-08King, Christopher A Esq QUALIFIED91Ioni Bowcher
1034Silvio K GillianItaly2025-08-04Rangoni Of Florence NEW52Asiya Javayant
1035Johnson A IturbideCanada2025-08-23Rangoni Of Florence RENEWAL85Xuxue Feng
1036Kadeem M SaylorsSpain2025-08-01Morlong Associates QUALIFIED14Ivan Magalhaes
1037Chavez E FlosiIndia2025-07-27Benton, John B Jr RENEWAL93Ivan Magalhaes
1038Nicolas V GlickArgentina2025-08-22King, Christopher A Esq NEGOTIATION30Asiya Javayant
1039Murillo P RulapaughIndia2025-08-15King, Christopher A Esq UNQUALIFIED93Amy Elsner
1040Claire N TollnerItaly2025-07-30Commercial Press PROPOSAL88Ioni Bowcher
1041Arvin Q WieserIndia2025-07-31Feiner Bros UNQUALIFIED63Anna Fali
1042Maisha D MarrierJapan2025-08-02Feiner Bros NEGOTIATION70Elwin Sharvill
1043Darci Z TollnerBrazil2025-08-02Truhlar And Truhlar Attys NEGOTIATION27Bernardo Dominic
1044Mayumi I OldroydUnited Kingdom2025-08-08Morlong Associates NEW45Bernardo Dominic
1045Jeanfrancois Z VocelkaCanada2025-07-26Printing Dimensions NEGOTIATION61Bernardo Dominic
1046Silvio V MacleadFrance2025-07-28Dorl, James J Esq PROPOSAL14Anna Fali
1047Chavez K KuskoItaly2025-08-05Buckley Miller Wright RENEWAL39Bernardo Dominic
1048Isabel F MorascaRussia2025-08-24Commercial Press PROPOSAL39Anna Fali
1049Darci K DoeBrazil2025-08-24Printing Dimensions QUALIFIED36Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Stacey S AlbaresAustraliaOnyama Limba QUALIFIED
Emily X CaldareraIndiaAsiya Javayant PROPOSAL
Kaitlin V MarrierAustraliaBernardo Dominic UNQUALIFIED
Leja O VenereArgentinaAsiya Javayant RENEWAL
James N SlusarskiAustraliaAnna Fali PROPOSAL
Smith V FlosiItalyAnna Fali NEGOTIATION
Misaki Y RutaSpainAmy Elsner NEGOTIATION
David H StensethIndiaIoni Bowcher NEW
Claire P GlickRussiaStephen Shaw PROPOSAL
Wickens E PaprockiCanadaXuxue Feng PROPOSAL
Jeanfrancois Y WhobreyAustraliaElwin Sharvill NEGOTIATION
Julie S FerenczItalyAsiya Javayant UNQUALIFIED
Jeanfrancois B GarufiJapanAnna Fali QUALIFIED
Stacey J RulapaughBrazilIoni Bowcher NEGOTIATION
Stacey P MorascaGermanyIvan Magalhaes RENEWAL
Antonio U CampainGermanyXuxue Feng QUALIFIED
Cody R SaylorsCanadaAsiya Javayant UNQUALIFIED
Juan R BowleyArgentinaElwin Sharvill PROPOSAL
Ivar M AmigonSpainXuxue Feng QUALIFIED
Juan W DoeUnited KingdomStephen Shaw UNQUALIFIED
Izzy Y SergiGermanyBernardo Dominic RENEWAL
Kadeem I VocelkaSpainXuxue Feng NEW
Alejandro N PerinSpainOnyama Limba NEGOTIATION
Kaitlin E SaylorsJapanIvan Magalhaes QUALIFIED
Aruna V CampainBrazilAnna Fali UNQUALIFIED
Rodrigues M PerinItalyOnyama Limba PROPOSAL
Izzy N RutaItalyAsiya Javayant QUALIFIED
Darci Z KuskoAustraliaXuxue Feng RENEWAL
Rodrigues K GillianSpainXuxue Feng NEW
Octavia F FerenczAustraliaElwin Sharvill NEW
Maria S SlusarskiSpainIoni Bowcher NEGOTIATION
Jefferson M GlickRussiaBernardo Dominic RENEWAL
Adams D BologniaGermanyAmy Elsner RENEWAL
Aditya F MarrierItalyOnyama Limba QUALIFIED
Alejandro Y TollnerAustraliaAnna Fali RENEWAL
Costa H MaletIndiaBernardo Dominic RENEWAL
Murillo C GarufiArgentinaIoni Bowcher QUALIFIED
Alejandro B MacleadAustraliaIoni Bowcher RENEWAL
Greenwood H WieserAustraliaOnyama Limba RENEWAL
Greenwood K ButtJapanOnyama Limba UNQUALIFIED
Deepesh K FollerRussiaAmy Elsner NEGOTIATION
Johnson D PoquetteRussiaXuxue Feng QUALIFIED
Nicolas Z SergiIndiaXuxue Feng PROPOSAL
Maisha H MarrierIndiaElwin Sharvill RENEWAL
James Z GlickJapanIoni Bowcher PROPOSAL
Costa R RimCanadaOnyama Limba PROPOSAL
Stacey N StensethItalyAmy Elsner NEGOTIATION
Julie O AmigonJapanBernardo Dominic UNQUALIFIED
Maria E PerinIndiaAsiya Javayant UNQUALIFIED
Silvio J OldroydJapanStephen Shaw NEW
Frozen Columns
Name
Sinclair I Paprocki
Stacey F Wieser
Faith I Caldarera
Costa H Stenseth
Izzy X Malet
Rodrigues W Dilliard
Arvin E Ostrosky
Jones A Perin
Ivar D Morasca
Ivar F Malet
Leja N Venere
Leja P Rim
Alejandro J Briddick
Jefferson J Glick
Juan O Stockham
Silvio H Iturbide
Clifford I Albares
Darci H Figeroa
Rodrigues P Stenseth
Ricardo D Foller
Julie L Amigon
Murillo V Ruta
Costa O Bowley
Octavia X Wieser
Sinclair C Albares
Greenwood J Ferencz
Morrow W Rim
Izzy W Gaucho
Costa J Stockham
Leja N Inouye
Morrow K Kusko
Leon T Saylors
Cody G Poquette
James K Nestle
Sinclair V Dilliard
Kaitlin V Oldroyd
Maria G Oldroyd
David E Caudy
Leja Q Tollner
Greenwood Q Stenseth
Clifford X Gillian
Cody H Ferencz
Mujtaba L Gaucho
Cody T Stockham
Isabel L Inouye
Nicolas B Butt
Leja S Venere
Francesco F Kolmetz
Maria L Malet
Aika Y Shinko
IdCountryDate
1000Brazil2025-08-19
1001United Kingdom2025-07-29
1002Germany2025-08-02
1003Canada2025-08-08
1004Australia2025-08-07
1005Australia2025-08-16
1006United Kingdom2025-08-14
1007Germany2025-08-01
1008Japan2025-08-13
1009Australia2025-08-13
1010Russia2025-08-15
1011Japan2025-08-14
1012France2025-08-11
1013Australia2025-08-13
1014Italy2025-08-21
1015Australia2025-08-02
1016United Kingdom2025-08-12
1017United Kingdom2025-08-04
1018Brazil2025-08-20
1019Germany2025-08-12
1020India2025-08-24
1021Spain2025-07-29
1022Japan2025-08-23
1023Spain2025-07-29
1024United Kingdom2025-08-10
1025Italy2025-08-11
1026Japan2025-08-12
1027Australia2025-07-29
1028Brazil2025-08-04
1029Spain2025-08-07
1030Italy2025-08-05
1031Italy2025-08-24
1032France2025-08-14
1033Argentina2025-08-12
1034Japan2025-07-29
1035Brazil2025-08-08
1036Japan2025-08-01
1037Italy2025-08-20
1038Japan2025-08-21
1039India2025-08-13
1040United Kingdom2025-08-03
1041Germany2025-08-13
1042Australia2025-08-17
1043France2025-08-13
1044United Kingdom2025-08-05
1045France2025-08-07
1046Spain2025-08-15
1047United Kingdom2025-08-20
1048United Kingdom2025-08-13
1049Italy2025-08-04

On-Demand Data

NameIdCountryDate
Morrow H Maclead1000Russia2025-07-30
Deepesh U Bolognia1001Italy2025-07-31
Leon Z Malet1002United Kingdom2025-08-08
Juan G Inouye1003Canada2025-08-11
Stacey Q Stockham1004Brazil2025-08-23
Tony W Gillian1005Australia2025-08-19
Jones I Amigon1006Canada2025-08-14
Munro Q Malet1007Argentina2025-08-21
Darci I Waycott1008France2025-08-06
Faith R Vocelka1009France2025-08-12
Jennifer T Perin1010Australia2025-08-23
Claire H Briddick1011Argentina2025-08-01
Juan H Inouye1012Russia2025-08-11
Salvatore P Foller1013United Kingdom2025-08-16
David Z Saylors1014Italy2025-08-16
Kadeem E Ostrosky1015Brazil2025-07-30
Alejandro A Inouye1016Australia2025-07-26
Rodrigues P Ferencz1017Brazil2025-07-29
Munro M Bolognia1018Japan2025-08-02
Juan K Inouye1019Germany2025-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore K ButtArgentinaBernardo Dominic NEGOTIATION
Faith I StensethUnited KingdomStephen Shaw QUALIFIED
Darci Z SchemmerIndiaOnyama Limba UNQUALIFIED
Jefferson A MaletUnited KingdomIoni Bowcher UNQUALIFIED
Aika V DilliardJapanIoni Bowcher RENEWAL
Ivar V ButtSpainElwin Sharvill NEGOTIATION
Sinclair X TollnerArgentinaElwin Sharvill NEW
Maisha X RoysterAustraliaIoni Bowcher PROPOSAL
Clifford K IturbideArgentinaXuxue Feng QUALIFIED
Johnson U OstroskyBrazilAmy Elsner RENEWAL
Claire X GlickSpainAmy Elsner QUALIFIED
Leja S PoquetteAustraliaAsiya Javayant RENEWAL
Johnson F StensethFranceOnyama Limba UNQUALIFIED
Ricardo G RimIndiaElwin Sharvill NEGOTIATION
Julie P OstroskyIndiaIoni Bowcher RENEWAL
David B OldroydUnited KingdomIvan Magalhaes PROPOSAL
Costa D CampainCanadaAmy Elsner PROPOSAL
Kaitlin H GlickJapanAmy Elsner UNQUALIFIED
Isabel V GlickUnited KingdomOnyama Limba UNQUALIFIED
Maisha S KuskoAustraliaIvan Magalhaes PROPOSAL
Ivar G TollnerRussiaOnyama Limba QUALIFIED
Wickens B VenereItalyIvan Magalhaes QUALIFIED
Leon Q CaudyAustraliaIvan Magalhaes NEW
Leja V ChuiBrazilBernardo Dominic NEGOTIATION
Stacey K AmigonJapanOnyama Limba QUALIFIED
Kaitlin U GarufiJapanBernardo Dominic RENEWAL
Nicolas J VocelkaBrazilBernardo Dominic PROPOSAL
Jones U OstroskyAustraliaBernardo Dominic NEGOTIATION
Faith Q SergiFranceBernardo Dominic NEW
Leon N GlickRussiaAnna Fali RENEWAL
Julie T MarrierGermanyXuxue Feng PROPOSAL
Adams P RimCanadaIoni Bowcher PROPOSAL
Alejandro J SergiIndiaBernardo Dominic QUALIFIED
Kadeem R RulapaughRussiaElwin Sharvill RENEWAL
Leja J RoysterFranceStephen Shaw NEW
Ashley P ButtArgentinaXuxue Feng PROPOSAL
Munro Z AlbaresRussiaOnyama Limba RENEWAL
Costa H StockhamRussiaXuxue Feng UNQUALIFIED
Izzy X VocelkaIndiaAmy Elsner UNQUALIFIED
Jefferson B TollnerFranceElwin Sharvill PROPOSAL

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