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
Cody C SergiRussiaBernardo Dominic PROPOSAL
Mujtaba Q BowleySpainAmy Elsner UNQUALIFIED
Wickens E MorascaSpainBernardo Dominic NEGOTIATION
Arvin O RimAustraliaStephen Shaw PROPOSAL
Ivar V PaprockiSpainAsiya Javayant NEGOTIATION
Ivar L RimUnited KingdomAmy Elsner NEW
Rodrigues R FerenczSpainIvan Magalhaes PROPOSAL
Nicolas E MacleadCanadaBernardo Dominic QUALIFIED
Wickens L AmigonGermanyAnna Fali QUALIFIED
Jennifer I RutaFranceIvan Magalhaes UNQUALIFIED
Stacey F OstroskyJapanAnna Fali NEW
Deepesh B OstroskyGermanyOnyama Limba NEGOTIATION
Nicolas O PerinAustraliaStephen Shaw QUALIFIED
Johnson L DilliardFranceIvan Magalhaes PROPOSAL
Aruna D GlickCanadaElwin Sharvill QUALIFIED
Rodrigues O GlickFranceXuxue Feng QUALIFIED
Kadeem E MarrierIndiaAnna Fali QUALIFIED
Mayumi W CaudySpainElwin Sharvill NEGOTIATION
Aika M FerenczCanadaOnyama Limba PROPOSAL
Aruna K MaletItalyAnna Fali PROPOSAL
James Y MarrierGermanyElwin Sharvill UNQUALIFIED
Nicolas J RimUnited KingdomOnyama Limba QUALIFIED
Munro J TollnerAustraliaAnna Fali QUALIFIED
Aditya Q PoquetteUnited KingdomAsiya Javayant QUALIFIED
Alejandro Z ButtJapanXuxue Feng RENEWAL
Aika H SchemmerItalyAnna Fali PROPOSAL
Alejandro V IturbideAustraliaAsiya Javayant RENEWAL
Arvin Y GarufiJapanAnna Fali PROPOSAL
Izzy K GlickItalyAmy Elsner PROPOSAL
Francesco G PerinIndiaAsiya Javayant NEW
Francesco M WieserFranceOnyama Limba QUALIFIED
Aruna Y KuskoGermanyElwin Sharvill NEGOTIATION
Sinclair Y IturbideCanadaAmy Elsner QUALIFIED
Costa Q MorascaArgentinaOnyama Limba QUALIFIED
Alejandro G BowleyIndiaOnyama Limba NEGOTIATION
Wickens I MaletGermanyElwin Sharvill RENEWAL
Silvio U RoysterFranceAnna Fali UNQUALIFIED
Emily Y DoeBrazilBernardo Dominic NEGOTIATION
Mujtaba F FerenczRussiaIoni Bowcher NEGOTIATION
Mayumi N KuskoGermanyIvan Magalhaes QUALIFIED
Isabel V OldroydRussiaBernardo Dominic PROPOSAL
Costa J KuskoGermanyIvan Magalhaes NEGOTIATION
Julie N AmigonItalyIvan Magalhaes NEW
Antonio B OstroskyAustraliaOnyama Limba QUALIFIED
Juan R NestleArgentinaAnna Fali PROPOSAL
Jefferson S PerinUnited KingdomAmy Elsner NEGOTIATION
Leon F GauchoFranceAnna Fali NEW
Mayumi F StensethItalyXuxue Feng NEW
Maria E CampainItalyAnna Fali QUALIFIED
Aika A MorascaAustraliaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa I GarufiAustraliaOnyama Limba NEW
Francesco J CampainBrazilAsiya Javayant PROPOSAL
Sinclair C FollerFranceAsiya Javayant RENEWAL
Leja F DoeUnited KingdomXuxue Feng QUALIFIED
Aditya K ChuiSpainAsiya Javayant NEGOTIATION
Ivar H FigeroaBrazilIvan Magalhaes UNQUALIFIED
Nicolas O RutaCanadaIoni Bowcher QUALIFIED
Salvatore J GlickGermanyElwin Sharvill RENEWAL
Emily U OldroydItalyBernardo Dominic PROPOSAL
Arvin U FigeroaCanadaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas Y MacleadGermany2025-10-05King, Christopher A Esq PROPOSAL82Ivan Magalhaes
1001Izzy W WhobreyRussia2025-09-21Feiner Bros NEGOTIATION41Bernardo Dominic
1002Arvin Z BologniaCanada2025-09-22Commercial Press NEW74Xuxue Feng
1003Morrow E FlosiRussia2025-09-13Dorl, James J Esq NEW42Onyama Limba
1004James P VocelkaSpain2025-10-04King, Christopher A Esq NEGOTIATION99Amy Elsner
1005Arvin A WhobreyCanada2025-09-16Rousseaux, Michael Esq PROPOSAL86Bernardo Dominic
1006Aika G PoquetteArgentina2025-10-01Feiner Bros RENEWAL20Ioni Bowcher
1007Adams W AmigonItaly2025-10-06Chemel, James L Cpa UNQUALIFIED24Elwin Sharvill
1008Cody H StensethCanada2025-10-12King, Christopher A Esq PROPOSAL7Asiya Javayant
1009Nicolas L IturbideItaly2025-09-13Rangoni Of Florence PROPOSAL68Xuxue Feng
1010Deepesh S AmigonArgentina2025-09-30Chanay, Jeffrey A Esq NEW99Anna Fali
1011Sinclair V PerinFrance2025-09-17Commercial Press PROPOSAL36Ivan Magalhaes
1012Maisha W VenereJapan2025-09-25Commercial Press UNQUALIFIED10Elwin Sharvill
1013Emily B GlickItaly2025-10-02Rousseaux, Michael Esq PROPOSAL36Ioni Bowcher
1014Tony G OstroskyCanada2025-10-11Printing Dimensions UNQUALIFIED92Ioni Bowcher
1015Deepesh Y MacleadIndia2025-10-09Chanay, Jeffrey A Esq RENEWAL25Ivan Magalhaes
1016Tony U RulapaughIndia2025-09-13Buckley Miller Wright QUALIFIED90Ivan Magalhaes
1017Izzy R VocelkaBrazil2025-09-27Chapman, Ross E Esq NEGOTIATION25Onyama Limba
1018Jefferson K IturbideGermany2025-09-15Printing Dimensions RENEWAL7Stephen Shaw
1019Emily N RimCanada2025-09-22Benton, John B Jr PROPOSAL24Asiya Javayant
1020Ashley L RulapaughBrazil2025-09-20Rangoni Of Florence NEW71Asiya Javayant
1021Aika E SergiIndia2025-09-26Printing Dimensions RENEWAL77Asiya Javayant
1022Emily G FlosiGermany2025-09-24Chemel, James L Cpa NEGOTIATION24Stephen Shaw
1023Costa U FollerFrance2025-09-13Commercial Press QUALIFIED28Ivan Magalhaes
1024Cody A GillianAustralia2025-09-28Rousseaux, Michael Esq QUALIFIED7Amy Elsner
1025Emily F WhobreyUnited Kingdom2025-10-12King, Christopher A Esq UNQUALIFIED28Bernardo Dominic
1026Leon C SlusarskiArgentina2025-09-26Rangoni Of Florence RENEWAL57Bernardo Dominic
1027Antonio D WaycottAustralia2025-09-15Morlong Associates UNQUALIFIED35Bernardo Dominic
1028Jefferson G OldroydBrazil2025-09-18King, Christopher A Esq NEGOTIATION77Amy Elsner
1029Arvin W SchemmerSpain2025-10-06Feltz Printing Service NEGOTIATION97Asiya Javayant
1030Adams G DoeBrazil2025-09-29Commercial Press PROPOSAL99Xuxue Feng
1031Julie Q SchemmerSpain2025-09-29Buckley Miller Wright RENEWAL83Elwin Sharvill
1032Silvio U BowleyIndia2025-10-01Chapman, Ross E Esq PROPOSAL6Stephen Shaw
1033Salvatore I CampainGermany2025-09-13King, Christopher A Esq RENEWAL67Onyama Limba
1034Ivar L OldroydIndia2025-09-22Benton, John B Jr UNQUALIFIED19Asiya Javayant
1035Jennifer O VenereAustralia2025-09-24Feiner Bros RENEWAL98Xuxue Feng
1036Adams F WaycottGermany2025-10-02Benton, John B Jr RENEWAL56Stephen Shaw
1037Leon H KolmetzFrance2025-09-13Commercial Press NEGOTIATION78Onyama Limba
1038Claire I FigeroaArgentina2025-10-05Morlong Associates QUALIFIED83Ivan Magalhaes
1039Chavez N PerinFrance2025-10-12Morlong Associates PROPOSAL33Ioni Bowcher
1040Sinclair C WhobreyAustralia2025-09-25Morlong Associates NEW83Anna Fali
1041Isabel A RoysterAustralia2025-09-28Rangoni Of Florence UNQUALIFIED98Stephen Shaw
1042Munro Q SlusarskiBrazil2025-10-09Rousseaux, Michael Esq NEGOTIATION9Onyama Limba
1043Aika O DilliardFrance2025-10-12Feiner Bros UNQUALIFIED18Asiya Javayant
1044Maisha Z MaletGermany2025-10-04Chapman, Ross E Esq RENEWAL82Amy Elsner
1045Claire U PoquetteCanada2025-10-07Printing Dimensions UNQUALIFIED52Amy Elsner
1046Mayumi O OldroydGermany2025-10-02Buckley Miller Wright RENEWAL53Amy Elsner
1047Murillo E CaldareraJapan2025-10-08Dorl, James J Esq QUALIFIED89Xuxue Feng
1048Leon X MarrierJapan2025-10-12Chemel, James L Cpa NEW82Stephen Shaw
1049Leon X GarufiUnited Kingdom2025-10-12Feiner Bros QUALIFIED32Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Julie O RimFranceAnna Fali QUALIFIED
Munro U BologniaIndiaBernardo Dominic NEGOTIATION
Maisha J CaldareraFranceXuxue Feng RENEWAL
Greenwood B BowleyRussiaIvan Magalhaes RENEWAL
Silvio I RoysterCanadaBernardo Dominic PROPOSAL
Jefferson E BologniaFranceAmy Elsner PROPOSAL
Jones A WaycottGermanyXuxue Feng NEGOTIATION
Leon C MarrierBrazilIvan Magalhaes UNQUALIFIED
Munro E FollerAustraliaIoni Bowcher NEGOTIATION
Johnson Z BowleyAustraliaIvan Magalhaes UNQUALIFIED
Claire O ShinkoJapanOnyama Limba RENEWAL
Izzy L BowleyIndiaIoni Bowcher NEGOTIATION
Faith J WaycottFranceElwin Sharvill NEGOTIATION
Ricardo G MaletAustraliaStephen Shaw NEGOTIATION
Mayumi Q GillianGermanyAsiya Javayant NEW
Emily B AmigonFranceXuxue Feng NEGOTIATION
Greenwood O NickaArgentinaXuxue Feng NEGOTIATION
Leon U TollnerBrazilBernardo Dominic NEW
Maisha Y ButtRussiaAsiya Javayant NEGOTIATION
Jones P BriddickFranceXuxue Feng QUALIFIED
Deepesh R CaldareraBrazilAnna Fali RENEWAL
Isabel V SlusarskiItalyIvan Magalhaes QUALIFIED
Adams W GarufiCanadaBernardo Dominic NEW
Stacey X TollnerFranceAnna Fali QUALIFIED
Alejandro Y OldroydAustraliaStephen Shaw PROPOSAL
Aruna A FlosiSpainAnna Fali RENEWAL
Greenwood K CaudyAustraliaStephen Shaw PROPOSAL
Claire I GauchoFranceIoni Bowcher QUALIFIED
Antonio V SlusarskiItalyElwin Sharvill QUALIFIED
Wickens J AlbaresUnited KingdomOnyama Limba QUALIFIED
Costa H CampainIndiaAsiya Javayant PROPOSAL
Emily H MarrierGermanyElwin Sharvill UNQUALIFIED
Silvio P AmigonItalyIvan Magalhaes NEW
Jones H AlbaresSpainXuxue Feng UNQUALIFIED
Arvin N MaletCanadaIoni Bowcher NEGOTIATION
Ashley R CaldareraUnited KingdomAsiya Javayant QUALIFIED
Francesco R OldroydCanadaBernardo Dominic PROPOSAL
Costa S NestleAustraliaOnyama Limba UNQUALIFIED
Cody I GillianUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer V PoquetteArgentinaBernardo Dominic QUALIFIED
Aika A RutaRussiaOnyama Limba PROPOSAL
Leon J RimUnited KingdomStephen Shaw UNQUALIFIED
Mayumi A ChuiSpainStephen Shaw UNQUALIFIED
Costa B MaletCanadaAmy Elsner PROPOSAL
David Z DoeGermanyAmy Elsner QUALIFIED
Tony N ShinkoGermanyElwin Sharvill RENEWAL
Mujtaba Z ButtAustraliaAsiya Javayant PROPOSAL
Misaki H KuskoJapanIvan Magalhaes RENEWAL
David E RimGermanyXuxue Feng UNQUALIFIED
Adams P MorascaGermanyAmy Elsner NEW
Frozen Columns
Name
Faith L Nestle
Clifford M Gaucho
Jennifer M Bolognia
Aruna M Waycott
Kadeem R Chui
Johnson W Royster
Leja E Maclead
Isabel B Rim
Sinclair L Inouye
Aruna G Marrier
Kaitlin B Saylors
Munro K Shinko
Maisha C Perin
Ashley P Caudy
Mayumi Y Amigon
Antonio P Kusko
Mujtaba G Bolognia
Tony O Rim
Johnson P Stockham
Chavez P Doe
Kaitlin F Oldroyd
Clifford O Slusarski
Clifford K Ostrosky
Arvin H Royster
Alejandro Y Dilliard
Rodrigues B Ostrosky
Ashley Z Foller
Munro V Darakjy
Smith X Malet
Jennifer Q Rim
Ivar C Saylors
Kadeem C Foller
Jones D Waycott
Wickens I Bolognia
Munro L Foller
Murillo R Amigon
Jennifer G Royster
Clifford W Vocelka
Salvatore H Perin
Wickens J Chui
Sinclair I Kusko
Juan C Wieser
Silvio Y Glick
Arvin I Morasca
Aika B Ruta
Cody F Whobrey
Ivar I Wieser
Octavia B Schemmer
Chavez U Wieser
Claire I Caldarera
IdCountryDate
1000United Kingdom2025-09-24
1001Italy2025-10-07
1002Italy2025-10-10
1003France2025-10-07
1004France2025-10-01
1005India2025-09-28
1006United Kingdom2025-09-20
1007Brazil2025-10-04
1008France2025-10-04
1009India2025-10-08
1010Spain2025-09-14
1011Argentina2025-09-18
1012Canada2025-10-03
1013Japan2025-10-04
1014Spain2025-10-11
1015Brazil2025-09-28
1016Japan2025-10-09
1017Russia2025-09-14
1018Brazil2025-09-27
1019Spain2025-09-30
1020Japan2025-09-22
1021Argentina2025-10-08
1022Japan2025-09-15
1023Japan2025-09-13
1024Spain2025-09-21
1025Japan2025-10-01
1026Australia2025-09-21
1027Japan2025-09-13
1028Argentina2025-09-20
1029France2025-09-23
1030France2025-10-12
1031Japan2025-09-13
1032India2025-09-13
1033United Kingdom2025-10-05
1034France2025-09-21
1035Japan2025-09-13
1036Japan2025-09-29
1037Germany2025-10-07
1038India2025-10-02
1039France2025-10-12
1040United Kingdom2025-10-05
1041India2025-09-22
1042Spain2025-09-25
1043India2025-09-20
1044Spain2025-09-26
1045Canada2025-09-26
1046United Kingdom2025-09-20
1047Germany2025-09-19
1048Argentina2025-09-23
1049India2025-09-16

On-Demand Data

NameIdCountryDate
Maria W Stockham1000Argentina2025-09-29
James H Ostrosky1001Canada2025-09-23
Julie F Venere1002Japan2025-09-24
Kadeem Q Ostrosky1003Japan2025-10-09
Costa P Gillian1004Italy2025-09-29
Silvio Y Shinko1005Russia2025-09-27
Claire D Foller1006France2025-10-12
Stacey T Chui1007Canada2025-10-11
Aika F Iturbide1008Canada2025-09-19
Emily B Briddick1009Australia2025-09-22
Smith D Maclead1010United Kingdom2025-09-27
Misaki C Flosi1011Spain2025-09-16
Rodrigues Z Campain1012Brazil2025-09-30
Izzy H Briddick1013Spain2025-10-09
Mayumi C Poquette1014Italy2025-09-22
Adams T Gillian1015Spain2025-09-17
Misaki P Caldarera1016Australia2025-09-21
Faith I Rim1017Russia2025-10-06
Maisha M Bowley1018Argentina2025-09-21
Izzy P Tollner1019Australia2025-09-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem I ChuiFranceXuxue Feng RENEWAL
Kadeem W FollerCanadaStephen Shaw NEW
Jennifer E GlickUnited KingdomXuxue Feng RENEWAL
Ashley V NickaGermanyElwin Sharvill UNQUALIFIED
Nicolas K CaudyBrazilOnyama Limba UNQUALIFIED
Antonio S SaylorsItalyAmy Elsner NEW
Darci C ButtUnited KingdomIoni Bowcher NEGOTIATION
Darci E FerenczSpainBernardo Dominic UNQUALIFIED
Jennifer P WaycottJapanAsiya Javayant UNQUALIFIED
Leja Z PerinJapanIvan Magalhaes UNQUALIFIED
Ivar R FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Salvatore J WieserBrazilBernardo Dominic PROPOSAL
Kadeem D BologniaCanadaIoni Bowcher QUALIFIED
Leja B SchemmerUnited KingdomOnyama Limba RENEWAL
Isabel A MaletCanadaOnyama Limba UNQUALIFIED
Murillo T StensethCanadaIvan Magalhaes UNQUALIFIED
Morrow U FerenczCanadaIoni Bowcher RENEWAL
Murillo N DilliardFranceOnyama Limba NEGOTIATION
Arvin G StockhamFranceAsiya Javayant UNQUALIFIED
Murillo W KuskoItalyStephen Shaw QUALIFIED
David J GillianUnited KingdomAmy Elsner RENEWAL
Faith M KuskoAustraliaIvan Magalhaes PROPOSAL
Francesco X GauchoItalyAnna Fali UNQUALIFIED
Kaitlin Y CaldareraRussiaElwin Sharvill UNQUALIFIED
Silvio B DoeItalyElwin Sharvill RENEWAL
Arvin P FlosiIndiaBernardo Dominic NEGOTIATION
Adams D NestleItalyAsiya Javayant NEGOTIATION
Claire D SergiBrazilOnyama Limba PROPOSAL
Johnson E VocelkaArgentinaIvan Magalhaes QUALIFIED
Claire R FollerCanadaElwin Sharvill NEGOTIATION
Murillo A RulapaughBrazilIvan Magalhaes NEW
Emily Q FollerGermanyIvan Magalhaes NEGOTIATION
Greenwood D AmigonGermanyXuxue Feng QUALIFIED
Leon B StockhamFranceIoni Bowcher PROPOSAL
Emily D AlbaresAustraliaXuxue Feng NEW
Silvio A PoquetteArgentinaAsiya Javayant NEGOTIATION
Ivar R MarrierBrazilAmy Elsner NEGOTIATION
Isabel A GauchoArgentinaBernardo Dominic QUALIFIED
Maria W NestleArgentinaIoni Bowcher RENEWAL
Silvio M ShinkoJapanAsiya Javayant 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>