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
Silvio V IturbideItalyXuxue Feng PROPOSAL
Maisha A RutaJapanIoni Bowcher NEW
Maria X KolmetzSpainAsiya Javayant QUALIFIED
Cody J AmigonUnited KingdomXuxue Feng UNQUALIFIED
Nicolas A DarakjyFranceXuxue Feng PROPOSAL
Cody H VocelkaArgentinaIvan Magalhaes NEGOTIATION
Ricardo D CaudyUnited KingdomAsiya Javayant RENEWAL
Munro K NickaGermanyAmy Elsner QUALIFIED
Deepesh K CaldareraGermanyOnyama Limba UNQUALIFIED
Munro E BologniaItalyIoni Bowcher PROPOSAL
Aditya P TollnerSpainAnna Fali PROPOSAL
Misaki L WieserCanadaOnyama Limba NEGOTIATION
Costa W WhobreyArgentinaStephen Shaw NEW
Clifford O BriddickUnited KingdomAmy Elsner QUALIFIED
Ashley J StensethRussiaAmy Elsner UNQUALIFIED
Octavia Y DilliardGermanyIoni Bowcher QUALIFIED
Mujtaba T DilliardCanadaIoni Bowcher PROPOSAL
Octavia J NickaGermanyXuxue Feng NEGOTIATION
Clifford B PerinBrazilElwin Sharvill NEW
Arvin Q RulapaughArgentinaIvan Magalhaes QUALIFIED
Mujtaba V WhobreyItalyStephen Shaw PROPOSAL
Adams O VocelkaIndiaElwin Sharvill UNQUALIFIED
Jones M OldroydSpainIvan Magalhaes QUALIFIED
Silvio H RimAustraliaOnyama Limba NEW
Nicolas H CaldareraBrazilIvan Magalhaes UNQUALIFIED
Morrow N ButtSpainAmy Elsner QUALIFIED
Leon E BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Ivar L WhobreyBrazilStephen Shaw RENEWAL
Morrow C FlosiSpainElwin Sharvill NEGOTIATION
Rodrigues Y CampainIndiaStephen Shaw RENEWAL
Arvin Y GarufiItalyBernardo Dominic RENEWAL
Arvin I RoysterGermanyIoni Bowcher QUALIFIED
Mayumi X FigeroaBrazilOnyama Limba QUALIFIED
Morrow A DilliardItalyAnna Fali PROPOSAL
David W ChuiBrazilIvan Magalhaes NEW
Maria J GillianUnited KingdomOnyama Limba RENEWAL
Faith W SergiRussiaAmy Elsner PROPOSAL
Maria F DilliardFranceAsiya Javayant PROPOSAL
Ricardo F StockhamCanadaStephen Shaw RENEWAL
Kaitlin Z WhobreyIndiaXuxue Feng NEW
Kaitlin R BowleyIndiaStephen Shaw UNQUALIFIED
Ivar B StensethItalyAmy Elsner UNQUALIFIED
Aditya F MorascaCanadaAmy Elsner NEGOTIATION
Adams Q VenereAustraliaAmy Elsner RENEWAL
Juan W DarakjyBrazilAnna Fali UNQUALIFIED
Isabel S PoquetteAustraliaXuxue Feng UNQUALIFIED
Aruna Z InouyeSpainAsiya Javayant UNQUALIFIED
Murillo S SaylorsIndiaBernardo Dominic NEGOTIATION
Morrow U FollerIndiaIoni Bowcher RENEWAL
Emily N FlosiItalyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues L MacleadRussiaIoni Bowcher QUALIFIED
Aruna F AlbaresGermanyBernardo Dominic QUALIFIED
Arvin M FerenczArgentinaBernardo Dominic RENEWAL
Stacey P PaprockiSpainAnna Fali RENEWAL
Julie Y PerinItalyAsiya Javayant UNQUALIFIED
Leon W MacleadGermanyIoni Bowcher UNQUALIFIED
Nicolas N StensethIndiaAmy Elsner NEGOTIATION
David W NickaSpainOnyama Limba QUALIFIED
Jones B CaudyGermanyAsiya Javayant NEGOTIATION
James C MacleadBrazilAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas I MaletItaly2025-10-14Benton, John B Jr NEW56Onyama Limba
1001Julie N RulapaughCanada2025-10-11Rousseaux, Michael Esq NEW52Anna Fali
1002Maria X BologniaGermany2025-10-10Printing Dimensions NEW35Ioni Bowcher
1003David A WieserFrance2025-10-20Morlong Associates NEW94Onyama Limba
1004Smith U PaprockiRussia2025-10-15Rangoni Of Florence NEW61Amy Elsner
1005Antonio J AmigonRussia2025-09-29Truhlar And Truhlar Attys PROPOSAL47Elwin Sharvill
1006Cody H OldroydItaly2025-09-25Dorl, James J Esq NEGOTIATION41Anna Fali
1007Misaki L ShinkoArgentina2025-09-23Printing Dimensions NEGOTIATION56Xuxue Feng
1008Sinclair V MorascaIndia2025-09-27Truhlar And Truhlar Attys PROPOSAL10Ivan Magalhaes
1009Clifford A RoysterGermany2025-10-20Printing Dimensions RENEWAL82Asiya Javayant
1010Rodrigues V DilliardUnited Kingdom2025-09-24Chapman, Ross E Esq QUALIFIED79Ivan Magalhaes
1011Silvio Q FlosiGermany2025-10-12Chanay, Jeffrey A Esq UNQUALIFIED69Ivan Magalhaes
1012Johnson Q MorascaCanada2025-10-12Printing Dimensions NEW99Anna Fali
1013Rodrigues D SlusarskiJapan2025-10-20Chanay, Jeffrey A Esq PROPOSAL92Xuxue Feng
1014Darci W PaprockiBrazil2025-10-20Rangoni Of Florence UNQUALIFIED41Onyama Limba
1015Wickens S BowleyArgentina2025-10-09Rousseaux, Michael Esq UNQUALIFIED69Bernardo Dominic
1016Mayumi R NickaUnited Kingdom2025-10-07Chapman, Ross E Esq RENEWAL57Xuxue Feng
1017Julie T ShinkoBrazil2025-10-09Rangoni Of Florence QUALIFIED63Stephen Shaw
1018Arvin Y CaudyRussia2025-09-24Rangoni Of Florence QUALIFIED82Ivan Magalhaes
1019Clifford R WhobreyBrazil2025-10-21Morlong Associates RENEWAL22Onyama Limba
1020Julie K MaletGermany2025-10-16King, Christopher A Esq NEW57Anna Fali
1021Johnson H MacleadJapan2025-09-23Printing Dimensions RENEWAL13Amy Elsner
1022Arvin Z GarufiCanada2025-09-28Benton, John B Jr PROPOSAL49Bernardo Dominic
1023Juan Y OstroskyArgentina2025-10-09Benton, John B Jr NEGOTIATION91Bernardo Dominic
1024Ricardo G RimSpain2025-09-25Rousseaux, Michael Esq UNQUALIFIED74Anna Fali
1025Mujtaba W VocelkaArgentina2025-10-14Chemel, James L Cpa NEGOTIATION10Elwin Sharvill
1026Jefferson U ChuiCanada2025-10-21Commercial Press RENEWAL2Elwin Sharvill
1027Jeanfrancois S RutaCanada2025-10-10Chemel, James L Cpa QUALIFIED21Asiya Javayant
1028Rodrigues F RutaSpain2025-09-24Chemel, James L Cpa QUALIFIED62Elwin Sharvill
1029Jeanfrancois O GlickIndia2025-09-28Commercial Press NEW88Onyama Limba
1030Munro Z FlosiRussia2025-10-02Benton, John B Jr RENEWAL8Stephen Shaw
1031Antonio M GlickJapan2025-09-25Chanay, Jeffrey A Esq UNQUALIFIED65Bernardo Dominic
1032Chavez M MaletArgentina2025-10-01Buckley Miller Wright NEW65Ioni Bowcher
1033Morrow H GillianItaly2025-10-04Chapman, Ross E Esq NEGOTIATION79Stephen Shaw
1034Stacey I SaylorsBrazil2025-10-10King, Christopher A Esq RENEWAL97Onyama Limba
1035Francesco R IturbideIndia2025-10-21Chapman, Ross E Esq UNQUALIFIED91Xuxue Feng
1036Johnson L FerenczItaly2025-10-14King, Christopher A Esq QUALIFIED38Amy Elsner
1037Adams R CampainSpain2025-10-20Feltz Printing Service RENEWAL15Elwin Sharvill
1038Darci V AmigonCanada2025-10-12Feltz Printing Service UNQUALIFIED97Elwin Sharvill
1039Aruna N OstroskyJapan2025-10-01Morlong Associates PROPOSAL32Ivan Magalhaes
1040Isabel I ChuiUnited Kingdom2025-10-02Dorl, James J Esq NEGOTIATION79Stephen Shaw
1041Clifford N ButtIndia2025-10-19Chemel, James L Cpa QUALIFIED52Anna Fali
1042Costa X FollerFrance2025-10-22Chapman, Ross E Esq RENEWAL39Amy Elsner
1043Tony E CampainJapan2025-10-20Dorl, James J Esq PROPOSAL51Anna Fali
1044Arvin Z GauchoSpain2025-10-22Rangoni Of Florence RENEWAL81Bernardo Dominic
1045Wickens Q PerinRussia2025-10-21Chemel, James L Cpa UNQUALIFIED43Asiya Javayant
1046Deepesh T CampainAustralia2025-10-15Rousseaux, Michael Esq NEW56Ioni Bowcher
1047Kadeem H ButtArgentina2025-09-23Chanay, Jeffrey A Esq QUALIFIED48Ioni Bowcher
1048James V VenereAustralia2025-10-16Dorl, James J Esq PROPOSAL12Anna Fali
1049Murillo S RulapaughRussia2025-10-08Benton, John B Jr RENEWAL36Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Tony Z CampainItalyAmy Elsner PROPOSAL
Ricardo C DarakjySpainBernardo Dominic PROPOSAL
Greenwood H MarrierRussiaIvan Magalhaes QUALIFIED
Ivar S TollnerCanadaIoni Bowcher UNQUALIFIED
Maria F MacleadCanadaAnna Fali RENEWAL
Ashley O KuskoJapanIvan Magalhaes QUALIFIED
Tony Y MacleadAustraliaIoni Bowcher QUALIFIED
Jefferson X OldroydAustraliaElwin Sharvill PROPOSAL
Murillo K RoysterGermanyIvan Magalhaes UNQUALIFIED
Claire E CaldareraIndiaOnyama Limba UNQUALIFIED
Misaki R IturbideFranceIoni Bowcher NEW
Kadeem Q FigeroaFranceXuxue Feng QUALIFIED
Francesco N CampainSpainStephen Shaw UNQUALIFIED
Aika E AmigonBrazilAmy Elsner NEGOTIATION
Emily H RulapaughCanadaIvan Magalhaes QUALIFIED
Claire S OldroydBrazilStephen Shaw NEW
Johnson K SaylorsJapanAnna Fali QUALIFIED
Ashley S RutaFranceIvan Magalhaes UNQUALIFIED
Antonio M OldroydFranceAmy Elsner UNQUALIFIED
Antonio C SlusarskiJapanStephen Shaw RENEWAL
Sinclair Z FlosiSpainElwin Sharvill NEGOTIATION
Mayumi P RoysterUnited KingdomAnna Fali UNQUALIFIED
Emily K MaletRussiaStephen Shaw NEW
Jones S DoeIndiaIoni Bowcher UNQUALIFIED
Morrow L CampainIndiaAnna Fali NEGOTIATION
Kadeem T GauchoAustraliaIvan Magalhaes QUALIFIED
Alejandro I VocelkaSpainOnyama Limba NEW
Faith S MarrierAustraliaAnna Fali NEW
Ricardo M CaudyUnited KingdomIoni Bowcher NEW
Adams H GillianArgentinaAmy Elsner NEGOTIATION
Tony L BologniaIndiaOnyama Limba NEW
Francesco J WhobreyJapanXuxue Feng PROPOSAL
Stacey V BriddickGermanyElwin Sharvill NEW
Jeanfrancois N TollnerAustraliaAmy Elsner NEGOTIATION
Ivar F MaletCanadaIoni Bowcher PROPOSAL
Rodrigues H PaprockiSpainAsiya Javayant RENEWAL
Tony K WaycottJapanAnna Fali RENEWAL
James Q DilliardArgentinaOnyama Limba NEW
Ashley L GauchoItalyElwin Sharvill NEGOTIATION
Arvin C SchemmerBrazilXuxue Feng RENEWAL
Juan W KolmetzFranceAsiya Javayant UNQUALIFIED
Murillo V OldroydAustraliaIoni Bowcher NEW
Kaitlin D MaletCanadaXuxue Feng QUALIFIED
Cody W StensethCanadaAmy Elsner UNQUALIFIED
Clifford F ButtFranceOnyama Limba PROPOSAL
James F AlbaresJapanXuxue Feng RENEWAL
Nicolas G StockhamArgentinaStephen Shaw PROPOSAL
Darci I MacleadIndiaXuxue Feng RENEWAL
Stacey K MacleadBrazilStephen Shaw RENEWAL
Nicolas S BriddickJapanElwin Sharvill PROPOSAL
Frozen Columns
Name
Johnson L Inouye
Maria W Butt
Greenwood A Malet
Wickens A Ferencz
Antonio V Poquette
Smith L Caudy
Ricardo C Campain
Leon Z Flosi
Costa H Ferencz
Costa G Bolognia
Mayumi G Stenseth
James S Malet
Mayumi Y Nicka
Stacey L Maclead
Silvio Z Campain
Misaki I Ruta
Cody Z Stenseth
Smith Q Schemmer
Aika Y Stockham
Jefferson J Wieser
Claire U Poquette
Izzy N Vocelka
Aika X Sergi
Alejandro N Malet
Misaki P Schemmer
Nicolas Z Marrier
Jefferson O Malet
Cody S Albares
Morrow B Paprocki
Salvatore Z Oldroyd
Alejandro X Saylors
Murillo Q Morasca
Chavez A Caudy
Sinclair V Wieser
Jones K Rim
Juan X Kusko
Chavez N Campain
Ivar G Morasca
Misaki R Butt
Misaki Z Rulapaugh
Wickens S Venere
Claire X Marrier
Maria M Figeroa
Mayumi Y Nestle
Mayumi V Garufi
Mujtaba T Ferencz
Aika B Waycott
Faith M Waycott
Maisha L Tollner
Maria V Ruta
IdCountryDate
1000India2025-10-11
1001Brazil2025-10-06
1002Australia2025-09-29
1003Canada2025-09-24
1004France2025-10-07
1005United Kingdom2025-10-16
1006Spain2025-09-26
1007Spain2025-10-13
1008Australia2025-10-05
1009Australia2025-10-09
1010India2025-09-25
1011Argentina2025-10-02
1012Australia2025-10-03
1013Spain2025-10-16
1014Canada2025-10-22
1015Argentina2025-10-16
1016Russia2025-09-27
1017Australia2025-10-20
1018India2025-09-26
1019India2025-09-26
1020India2025-10-15
1021India2025-10-15
1022India2025-10-15
1023Japan2025-10-15
1024France2025-10-02
1025Japan2025-09-27
1026Germany2025-10-20
1027Australia2025-10-20
1028Spain2025-10-19
1029Spain2025-10-17
1030Australia2025-09-24
1031Spain2025-09-25
1032Australia2025-09-23
1033India2025-10-18
1034Australia2025-10-01
1035Russia2025-10-09
1036Russia2025-09-27
1037Brazil2025-10-18
1038Japan2025-09-30
1039France2025-09-30
1040France2025-10-07
1041Russia2025-09-29
1042France2025-10-01
1043Brazil2025-10-21
1044Germany2025-10-13
1045Russia2025-10-13
1046United Kingdom2025-09-30
1047Italy2025-10-15
1048France2025-10-07
1049Brazil2025-10-08

On-Demand Data

NameIdCountryDate
Silvio W Flosi1000India2025-10-03
Alejandro X Chui1001Japan2025-10-09
Kadeem C Kolmetz1002Germany2025-10-10
Smith G Vocelka1003Russia2025-10-21
Munro L Ruta1004United Kingdom2025-10-07
Stacey Q Rulapaugh1005United Kingdom2025-09-29
Jeanfrancois N Nicka1006Germany2025-10-08
Jones A Royster1007Russia2025-10-04
Maria B Marrier1008Japan2025-10-06
Claire M Sergi1009Italy2025-09-24
Claire L Maclead1010Brazil2025-09-30
Johnson N Rim1011Brazil2025-10-01
Juan C Briddick1012Japan2025-09-29
Deepesh W Rim1013Japan2025-10-15
Maria D Doe1014Argentina2025-10-14
Smith F Iturbide1015Japan2025-10-19
Jones R Royster1016Australia2025-10-03
Mayumi Z Rim1017Canada2025-09-28
James M Ostrosky1018India2025-10-20
Misaki Y Inouye1019Spain2025-10-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James H MaletJapanIoni Bowcher RENEWAL
Wickens M FlosiItalyXuxue Feng QUALIFIED
Clifford V RoysterFranceOnyama Limba NEGOTIATION
Greenwood B NickaRussiaAsiya Javayant NEGOTIATION
Julie S DarakjyUnited KingdomStephen Shaw RENEWAL
Maria T FerenczRussiaStephen Shaw NEGOTIATION
Arvin L MacleadFranceElwin Sharvill NEGOTIATION
Jeanfrancois F MaletGermanyIoni Bowcher RENEWAL
Costa G KuskoIndiaBernardo Dominic NEW
Aika L NickaRussiaAnna Fali QUALIFIED
Antonio Y DoeJapanElwin Sharvill NEGOTIATION
Antonio M ShinkoFranceIoni Bowcher QUALIFIED
Arvin I MaletCanadaAsiya Javayant RENEWAL
Aika D DoeArgentinaAsiya Javayant NEGOTIATION
Leja K ButtSpainStephen Shaw UNQUALIFIED
Kaitlin A OstroskyIndiaOnyama Limba QUALIFIED
David L RutaItalyAmy Elsner QUALIFIED
Arvin L OldroydCanadaBernardo Dominic RENEWAL
Kaitlin B AmigonAustraliaOnyama Limba NEW
James N RoysterBrazilXuxue Feng QUALIFIED
Antonio B SchemmerArgentinaAmy Elsner NEW
Rodrigues A SaylorsItalyIoni Bowcher NEGOTIATION
Francesco X MorascaIndiaAmy Elsner QUALIFIED
Jennifer G GauchoJapanStephen Shaw PROPOSAL
Jefferson J ShinkoIndiaIvan Magalhaes NEW
Jennifer J TollnerFranceStephen Shaw PROPOSAL
Wickens N DarakjyFranceIoni Bowcher UNQUALIFIED
Silvio Q SlusarskiRussiaAmy Elsner QUALIFIED
Claire Z SlusarskiFranceAnna Fali NEGOTIATION
Jeanfrancois O VenereAustraliaAmy Elsner PROPOSAL
Rodrigues I InouyeArgentinaAmy Elsner QUALIFIED
James T CampainAustraliaAsiya Javayant RENEWAL
Clifford E BriddickIndiaIvan Magalhaes NEW
Octavia M BriddickGermanyAsiya Javayant UNQUALIFIED
Alejandro Q StensethFranceOnyama Limba QUALIFIED
Salvatore H BologniaFranceElwin Sharvill UNQUALIFIED
James V CaldareraGermanyIvan Magalhaes NEGOTIATION
Costa R FollerJapanAmy Elsner UNQUALIFIED
Emily Q FollerCanadaStephen Shaw QUALIFIED
Arvin Z BologniaRussiaAmy Elsner UNQUALIFIED

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