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
Deepesh T PerinUnited KingdomAmy Elsner QUALIFIED
Wickens O InouyeBrazilOnyama Limba NEGOTIATION
Kaitlin M KolmetzIndiaAnna Fali QUALIFIED
David G MacleadBrazilOnyama Limba RENEWAL
Silvio V SaylorsGermanyOnyama Limba RENEWAL
Salvatore V WhobreyAustraliaBernardo Dominic NEGOTIATION
Darci E DoeFranceBernardo Dominic UNQUALIFIED
Emily N VenereGermanyElwin Sharvill NEW
Claire G MaletGermanyBernardo Dominic UNQUALIFIED
Jones K AlbaresUnited KingdomStephen Shaw PROPOSAL
Wickens L PaprockiSpainXuxue Feng NEGOTIATION
Antonio T AmigonItalyXuxue Feng NEGOTIATION
Leon F VenereCanadaAmy Elsner NEGOTIATION
Jones O AlbaresIndiaAsiya Javayant QUALIFIED
Kaitlin C TollnerItalyIvan Magalhaes NEGOTIATION
Faith X VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Greenwood M AmigonFranceIoni Bowcher QUALIFIED
Alejandro B OldroydSpainIvan Magalhaes QUALIFIED
Jennifer N BriddickArgentinaIvan Magalhaes NEW
Morrow I GillianUnited KingdomElwin Sharvill NEW
Kaitlin N FollerUnited KingdomStephen Shaw RENEWAL
Alejandro N BriddickBrazilXuxue Feng RENEWAL
Adams G KuskoItalyOnyama Limba NEW
Nicolas P FlosiAustraliaIoni Bowcher PROPOSAL
Leja B CampainUnited KingdomIvan Magalhaes NEW
Sinclair A CampainBrazilIoni Bowcher NEW
Julie O IturbideCanadaBernardo Dominic PROPOSAL
Silvio A AmigonCanadaAnna Fali UNQUALIFIED
Ashley P PerinGermanyAmy Elsner QUALIFIED
Emily W RoysterItalyIvan Magalhaes RENEWAL
Murillo N PaprockiArgentinaXuxue Feng UNQUALIFIED
Johnson V IturbideItalyElwin Sharvill NEW
Jeanfrancois Q RulapaughIndiaIoni Bowcher RENEWAL
Ricardo N DilliardGermanyXuxue Feng UNQUALIFIED
Aruna I StensethFranceAmy Elsner PROPOSAL
Adams E FerenczArgentinaOnyama Limba RENEWAL
Tony O PerinIndiaIvan Magalhaes QUALIFIED
Murillo B WieserCanadaElwin Sharvill NEGOTIATION
Morrow D WhobreyJapanBernardo Dominic PROPOSAL
Jefferson U RoysterAustraliaAmy Elsner UNQUALIFIED
Aditya I OstroskyItalyOnyama Limba UNQUALIFIED
Ricardo D OstroskySpainOnyama Limba NEGOTIATION
Greenwood T MaletJapanAmy Elsner NEW
Jennifer D OstroskyCanadaBernardo Dominic NEW
Jeanfrancois L FigeroaJapanIvan Magalhaes NEGOTIATION
Julie Z InouyeItalyOnyama Limba RENEWAL
James G WieserJapanBernardo Dominic QUALIFIED
Isabel Y FerenczJapanOnyama Limba PROPOSAL
Nicolas N NickaCanadaAnna Fali QUALIFIED
Isabel N RimIndiaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo K PerinRussiaElwin Sharvill RENEWAL
Wickens F BowleyBrazilAsiya Javayant QUALIFIED
Maisha C ChuiArgentinaAmy Elsner UNQUALIFIED
Alejandro S RoysterCanadaStephen Shaw NEW
Isabel B StensethGermanyBernardo Dominic UNQUALIFIED
Aika T SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Faith P ShinkoBrazilElwin Sharvill NEW
Wickens S KuskoGermanyAmy Elsner PROPOSAL
Salvatore A NestleItalyOnyama Limba NEGOTIATION
Jennifer D KuskoIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio F RimItaly2025-08-19Morlong Associates NEW1Ioni Bowcher
1001Maria J VocelkaJapan2025-08-09Chemel, James L Cpa QUALIFIED91Onyama Limba
1002Chavez T RimGermany2025-08-15Chapman, Ross E Esq RENEWAL98Anna Fali
1003Smith C MaletGermany2025-08-16Feltz Printing Service UNQUALIFIED45Onyama Limba
1004Deepesh K GlickSpain2025-08-10Rangoni Of Florence NEGOTIATION39Stephen Shaw
1005Ivar J WhobreySpain2025-08-01Feiner Bros PROPOSAL84Anna Fali
1006Silvio F GlickGermany2025-08-19Printing Dimensions RENEWAL34Onyama Limba
1007Stacey L MacleadBrazil2025-07-29Morlong Associates RENEWAL11Amy Elsner
1008Nicolas F OstroskyAustralia2025-08-01Buckley Miller Wright QUALIFIED13Elwin Sharvill
1009Alejandro X PaprockiFrance2025-08-15Buckley Miller Wright PROPOSAL8Bernardo Dominic
1010Greenwood L CaldareraIndia2025-07-27Dorl, James J Esq RENEWAL93Elwin Sharvill
1011Antonio J KolmetzGermany2025-08-04Buckley Miller Wright UNQUALIFIED29Stephen Shaw
1012Izzy T GlickGermany2025-07-26Feltz Printing Service RENEWAL6Ivan Magalhaes
1013Greenwood Q GauchoRussia2025-08-11Buckley Miller Wright QUALIFIED2Anna Fali
1014Ashley L OldroydItaly2025-08-15Rousseaux, Michael Esq PROPOSAL77Ivan Magalhaes
1015Cody Y MaletGermany2025-08-20Chapman, Ross E Esq NEGOTIATION10Onyama Limba
1016Munro J SlusarskiBrazil2025-08-15King, Christopher A Esq NEW58Asiya Javayant
1017Clifford Q VocelkaRussia2025-07-30Commercial Press NEW66Ivan Magalhaes
1018Adams M MacleadFrance2025-08-05Chapman, Ross E Esq NEW37Anna Fali
1019Alejandro A OldroydArgentina2025-07-25Commercial Press NEGOTIATION18Anna Fali
1020Mujtaba A WieserSpain2025-08-20Feltz Printing Service UNQUALIFIED59Amy Elsner
1021Octavia W PaprockiJapan2025-08-14Morlong Associates NEW71Anna Fali
1022Jones N CaldareraAustralia2025-08-19Dorl, James J Esq NEW84Amy Elsner
1023Tony N VocelkaFrance2025-08-04Printing Dimensions NEGOTIATION6Elwin Sharvill
1024Misaki U GlickRussia2025-08-14Chemel, James L Cpa NEW1Onyama Limba
1025Izzy U WaycottItaly2025-08-13Chemel, James L Cpa PROPOSAL61Anna Fali
1026Juan B ButtItaly2025-07-25Benton, John B Jr UNQUALIFIED98Anna Fali
1027Isabel M KolmetzGermany2025-08-18Commercial Press NEW4Xuxue Feng
1028Johnson L DilliardCanada2025-08-15Chapman, Ross E Esq UNQUALIFIED0Onyama Limba
1029Cody X DilliardSpain2025-08-01Rousseaux, Michael Esq PROPOSAL79Asiya Javayant
1030Costa V IturbideRussia2025-08-08Chemel, James L Cpa PROPOSAL12Anna Fali
1031Alejandro N CaudyBrazil2025-08-12Feltz Printing Service NEW70Amy Elsner
1032Mujtaba T MaletJapan2025-08-18Morlong Associates UNQUALIFIED53Stephen Shaw
1033Silvio U StockhamCanada2025-08-06Feltz Printing Service UNQUALIFIED33Asiya Javayant
1034Isabel L FlosiBrazil2025-08-16King, Christopher A Esq PROPOSAL68Bernardo Dominic
1035Leja K FollerSpain2025-07-31Benton, John B Jr UNQUALIFIED74Ioni Bowcher
1036Morrow W MaletCanada2025-07-28Commercial Press PROPOSAL45Xuxue Feng
1037Stacey U SaylorsSpain2025-07-28Printing Dimensions PROPOSAL28Xuxue Feng
1038Jeanfrancois L RulapaughIndia2025-07-25Chanay, Jeffrey A Esq UNQUALIFIED27Bernardo Dominic
1039Jefferson J PoquetteIndia2025-08-13Chemel, James L Cpa PROPOSAL5Bernardo Dominic
1040Ivar W GillianCanada2025-08-14Dorl, James J Esq NEGOTIATION79Bernardo Dominic
1041Misaki L GarufiJapan2025-07-28Dorl, James J Esq RENEWAL63Bernardo Dominic
1042Jefferson F BologniaIndia2025-08-22Commercial Press QUALIFIED41Bernardo Dominic
1043Munro A VenereJapan2025-08-21Rousseaux, Michael Esq RENEWAL95Onyama Limba
1044Jennifer P MaletIndia2025-07-26Benton, John B Jr NEGOTIATION92Anna Fali
1045Chavez R PerinAustralia2025-08-03King, Christopher A Esq QUALIFIED45Amy Elsner
1046Aruna D GlickCanada2025-08-10Chemel, James L Cpa NEW69Ioni Bowcher
1047Silvio L GillianUnited Kingdom2025-07-31Chapman, Ross E Esq QUALIFIED87Elwin Sharvill
1048Claire V CaldareraUnited Kingdom2025-08-23Chemel, James L Cpa QUALIFIED54Elwin Sharvill
1049Cody B AlbaresIndia2025-08-19Rangoni Of Florence NEW22Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jefferson N TollnerItalyElwin Sharvill NEGOTIATION
Stacey U FollerItalyOnyama Limba RENEWAL
Jennifer Q StensethRussiaIvan Magalhaes UNQUALIFIED
Faith G RulapaughBrazilAsiya Javayant NEGOTIATION
Alejandro U WhobreyCanadaOnyama Limba QUALIFIED
Arvin V BriddickGermanyAnna Fali PROPOSAL
Isabel M MorascaArgentinaAsiya Javayant NEW
Aditya F FerenczItalyAsiya Javayant UNQUALIFIED
James D IturbideAustraliaStephen Shaw PROPOSAL
Adams Q RoysterCanadaIvan Magalhaes RENEWAL
Misaki J GauchoSpainOnyama Limba NEW
Emily H GarufiRussiaOnyama Limba NEW
James A FollerBrazilAnna Fali NEW
Tony L MarrierBrazilOnyama Limba QUALIFIED
Aika V WhobreyIndiaAnna Fali PROPOSAL
Ricardo S DoeJapanAsiya Javayant NEGOTIATION
Morrow Y BowleyIndiaAnna Fali QUALIFIED
Ashley O SergiAustraliaElwin Sharvill NEGOTIATION
Deepesh F StensethUnited KingdomAsiya Javayant UNQUALIFIED
Ivar C TollnerAustraliaAsiya Javayant QUALIFIED
Costa V DarakjyBrazilXuxue Feng UNQUALIFIED
Morrow S RimRussiaStephen Shaw PROPOSAL
Aika Z FerenczGermanyIvan Magalhaes QUALIFIED
Wickens R MorascaIndiaAmy Elsner QUALIFIED
Jones S FerenczRussiaIvan Magalhaes NEGOTIATION
Rodrigues R KuskoSpainAmy Elsner PROPOSAL
Murillo P SlusarskiCanadaBernardo Dominic PROPOSAL
Silvio Y RoysterBrazilAmy Elsner NEGOTIATION
Ivar Z MaletRussiaBernardo Dominic QUALIFIED
Aika A MaletItalyAmy Elsner NEW
Smith F BologniaItalyIvan Magalhaes PROPOSAL
Julie I RutaFranceAmy Elsner QUALIFIED
Aruna Y SergiFranceStephen Shaw UNQUALIFIED
James V WieserUnited KingdomStephen Shaw QUALIFIED
Salvatore X RutaArgentinaOnyama Limba RENEWAL
Chavez W TollnerCanadaXuxue Feng UNQUALIFIED
Jones N DarakjyItalyIvan Magalhaes NEW
Ricardo M KolmetzGermanyElwin Sharvill NEW
Kaitlin T MaletUnited KingdomIoni Bowcher NEGOTIATION
Salvatore Z MarrierSpainElwin Sharvill PROPOSAL
Jennifer I ShinkoAustraliaBernardo Dominic NEGOTIATION
Chavez D VocelkaSpainAnna Fali QUALIFIED
Leon B GillianAustraliaAnna Fali NEW
Deepesh H StockhamBrazilAsiya Javayant UNQUALIFIED
Cody D DarakjyIndiaAsiya Javayant PROPOSAL
James D CaldareraSpainAsiya Javayant NEGOTIATION
Ricardo W PaprockiAustraliaOnyama Limba UNQUALIFIED
Aika S AlbaresAustraliaAmy Elsner QUALIFIED
Misaki X FerenczCanadaStephen Shaw PROPOSAL
Smith K RulapaughAustraliaIoni Bowcher NEW
Frozen Columns
Name
Sinclair D Malet
Aditya W Iturbide
Izzy X Foller
Greenwood T Gaucho
Alejandro J Kusko
Kaitlin S Marrier
Murillo D Briddick
Aditya M Malet
Adams R Vocelka
Jones Z Gaucho
Darci A Foller
Misaki Z Malet
Salvatore L Waycott
Salvatore N Maclead
Faith X Tollner
Mayumi L Morasca
Stacey N Whobrey
Munro D Maclead
Salvatore C Ruta
Sinclair C Tollner
Ricardo J Nicka
Ashley H Poquette
Claire I Malet
Ashley G Ruta
Chavez G Shinko
Stacey M Briddick
Julie B Stockham
Francesco W Kusko
Jennifer O Malet
Morrow A Caldarera
Kaitlin N Kusko
Kaitlin Q Marrier
Aruna S Malet
Misaki I Gaucho
Jeanfrancois R Nicka
Claire J Perin
Munro L Rulapaugh
Rodrigues M Saylors
Kaitlin F Figeroa
Chavez V Caldarera
Emily Y Chui
Jefferson D Paprocki
Silvio Q Marrier
Emily A Sergi
Morrow C Ostrosky
Izzy Q Chui
Adams S Doe
Morrow D Ostrosky
Kadeem P Glick
Tony Y Oldroyd
IdCountryDate
1000India2025-08-08
1001United Kingdom2025-08-10
1002Italy2025-08-23
1003Canada2025-07-28
1004Italy2025-07-26
1005Germany2025-08-23
1006Italy2025-08-06
1007Italy2025-08-20
1008Japan2025-07-25
1009Spain2025-08-09
1010Brazil2025-08-03
1011Germany2025-07-27
1012Australia2025-08-19
1013India2025-08-04
1014Argentina2025-07-29
1015Spain2025-07-31
1016Argentina2025-08-06
1017Brazil2025-08-06
1018India2025-08-21
1019Argentina2025-08-03
1020United Kingdom2025-08-14
1021Spain2025-08-11
1022Italy2025-07-30
1023Australia2025-08-13
1024Italy2025-08-16
1025France2025-08-03
1026Italy2025-08-21
1027Spain2025-07-27
1028Spain2025-08-18
1029United Kingdom2025-07-26
1030Canada2025-08-09
1031India2025-08-21
1032Germany2025-07-27
1033Russia2025-08-10
1034France2025-08-06
1035Canada2025-08-08
1036Russia2025-08-19
1037Japan2025-08-17
1038United Kingdom2025-08-03
1039Brazil2025-07-26
1040Australia2025-08-10
1041Spain2025-08-09
1042United Kingdom2025-08-05
1043Japan2025-08-17
1044Russia2025-08-06
1045France2025-07-31
1046Australia2025-08-21
1047Australia2025-08-07
1048Argentina2025-08-05
1049France2025-08-13

On-Demand Data

NameIdCountryDate
Smith A Ruta1000India2025-08-18
Emily A Stenseth1001Australia2025-08-15
Clifford B Royster1002France2025-07-29
Morrow V Morasca1003United Kingdom2025-08-22
Aika X Glick1004France2025-08-11
Alejandro U Iturbide1005India2025-08-11
Darci K Kusko1006Australia2025-08-06
Aruna I Glick1007Russia2025-08-17
Antonio I Albares1008Argentina2025-07-30
Emily F Glick1009Italy2025-08-12
Maisha M Figeroa1010Russia2025-08-03
Rodrigues O Slusarski1011Russia2025-07-25
Chavez G Oldroyd1012Russia2025-08-02
Kadeem M Flosi1013Spain2025-08-18
Francesco M Rim1014Spain2025-08-02
Jones E Flosi1015Australia2025-08-14
Faith Z Figeroa1016Spain2025-08-01
Chavez L Marrier1017Russia2025-08-22
Adams J Malet1018Spain2025-08-19
Izzy M Flosi1019Argentina2025-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow X ChuiItalyIvan Magalhaes PROPOSAL
Chavez K MorascaJapanAmy Elsner UNQUALIFIED
Aditya F KuskoAustraliaXuxue Feng PROPOSAL
Nicolas Y StensethFranceIvan Magalhaes NEGOTIATION
Deepesh R RutaArgentinaElwin Sharvill NEW
Francesco C InouyeFranceIvan Magalhaes PROPOSAL
Darci D DilliardIndiaElwin Sharvill NEGOTIATION
Leon O BowleyFranceBernardo Dominic QUALIFIED
Sinclair I KuskoUnited KingdomAnna Fali RENEWAL
Wickens M FerenczSpainIoni Bowcher NEGOTIATION
Kadeem X BriddickCanadaXuxue Feng QUALIFIED
Jennifer T OstroskySpainOnyama Limba NEGOTIATION
Wickens V KolmetzBrazilAnna Fali QUALIFIED
Maisha F ChuiArgentinaAsiya Javayant QUALIFIED
Cody N IturbideUnited KingdomElwin Sharvill NEW
Antonio N VenereItalyElwin Sharvill NEW
Tony E DoeRussiaBernardo Dominic PROPOSAL
Claire E MorascaArgentinaStephen Shaw NEW
Greenwood O RimGermanyIvan Magalhaes NEW
Ivar B GillianArgentinaXuxue Feng RENEWAL
Julie S SergiRussiaIvan Magalhaes QUALIFIED
Sinclair Z StensethCanadaBernardo Dominic PROPOSAL
Ricardo E PerinUnited KingdomElwin Sharvill RENEWAL
Maisha Z CaldareraUnited KingdomElwin Sharvill RENEWAL
Tony G AmigonJapanIvan Magalhaes QUALIFIED
Octavia K MaletSpainXuxue Feng NEW
Mujtaba P StensethSpainAnna Fali PROPOSAL
Smith J FollerGermanyBernardo Dominic QUALIFIED
Deepesh V VocelkaGermanyAsiya Javayant UNQUALIFIED
Maria R AlbaresJapanAmy Elsner QUALIFIED
Salvatore F ButtCanadaElwin Sharvill UNQUALIFIED
David V ButtUnited KingdomStephen Shaw PROPOSAL
Juan E AlbaresRussiaAnna Fali NEGOTIATION
Greenwood F RimRussiaIvan Magalhaes NEW
Mujtaba Y BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer A ChuiAustraliaAmy Elsner UNQUALIFIED
Izzy S KuskoFranceIoni Bowcher NEGOTIATION
Mujtaba Y CampainSpainStephen Shaw NEGOTIATION
Emily G NestleBrazilXuxue Feng NEGOTIATION
Sinclair H CampainSpainAnna Fali 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>