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
Izzy V CaudyRussiaIvan Magalhaes NEGOTIATION
Deepesh G MacleadBrazilXuxue Feng NEGOTIATION
Juan Q CampainItalyStephen Shaw PROPOSAL
David C InouyeBrazilElwin Sharvill RENEWAL
Claire V DilliardFranceIoni Bowcher NEW
Emily V PaprockiCanadaStephen Shaw NEW
Isabel L StensethRussiaAsiya Javayant NEW
James C VenereArgentinaBernardo Dominic NEGOTIATION
Faith K DilliardArgentinaAnna Fali NEW
Emily X OstroskyArgentinaAsiya Javayant QUALIFIED
Julie M GlickIndiaOnyama Limba PROPOSAL
Jeanfrancois Y VenereAustraliaIvan Magalhaes UNQUALIFIED
Leja M RoysterJapanStephen Shaw QUALIFIED
Alejandro G TollnerBrazilXuxue Feng NEGOTIATION
Claire Y SchemmerSpainAnna Fali PROPOSAL
Julie V MaletUnited KingdomAnna Fali PROPOSAL
Ashley O GlickRussiaOnyama Limba RENEWAL
Tony F StockhamGermanyStephen Shaw QUALIFIED
Faith E MarrierRussiaIvan Magalhaes UNQUALIFIED
Mujtaba Z TollnerItalyAsiya Javayant NEGOTIATION
Francesco V SlusarskiItalyIoni Bowcher UNQUALIFIED
Leon I ChuiSpainElwin Sharvill QUALIFIED
Claire G DarakjyIndiaElwin Sharvill NEGOTIATION
Faith R MarrierSpainBernardo Dominic RENEWAL
Isabel M KolmetzGermanyStephen Shaw UNQUALIFIED
Alejandro S MorascaItalyOnyama Limba QUALIFIED
Leon L FlosiBrazilXuxue Feng PROPOSAL
Tony F BriddickFranceAsiya Javayant QUALIFIED
Antonio X ShinkoRussiaBernardo Dominic NEW
Adams I MorascaFranceOnyama Limba RENEWAL
Misaki A MorascaGermanyAnna Fali PROPOSAL
Aditya O WieserBrazilIoni Bowcher NEGOTIATION
Ashley W GillianItalyAnna Fali NEGOTIATION
Mayumi A KolmetzCanadaAmy Elsner NEW
Cody V SchemmerBrazilAnna Fali PROPOSAL
Darci N WaycottIndiaXuxue Feng RENEWAL
Stacey T VenereItalyIoni Bowcher UNQUALIFIED
Cody G KolmetzSpainIoni Bowcher UNQUALIFIED
Adams D BologniaSpainIvan Magalhaes NEGOTIATION
Sinclair H BowleyUnited KingdomAnna Fali NEW
Nicolas R KolmetzJapanIoni Bowcher NEW
Clifford N RimGermanyAnna Fali NEGOTIATION
Murillo A MarrierGermanyAmy Elsner NEW
Jeanfrancois F RulapaughIndiaOnyama Limba UNQUALIFIED
Tony O PoquetteFranceIvan Magalhaes UNQUALIFIED
Kaitlin Z PaprockiCanadaXuxue Feng RENEWAL
Francesco T GillianGermanyIvan Magalhaes PROPOSAL
Costa E InouyeBrazilXuxue Feng NEW
Claire V StensethCanadaOnyama Limba NEGOTIATION
Mayumi W CaldareraJapanIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Aditya C PaprockiIndiaAsiya Javayant NEGOTIATION
Francesco K ShinkoAustraliaOnyama Limba RENEWAL
Kadeem X WieserBrazilXuxue Feng NEW
Nicolas Y BologniaArgentinaIoni Bowcher RENEWAL
Ivar J ShinkoBrazilIoni Bowcher PROPOSAL
Mujtaba O PerinBrazilIoni Bowcher RENEWAL
Darci C GauchoGermanyAmy Elsner UNQUALIFIED
Aditya K ButtSpainAmy Elsner UNQUALIFIED
Izzy Q MaletFranceIvan Magalhaes PROPOSAL
Costa I MacleadArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams F KolmetzItaly2025-07-16King, Christopher A Esq NEGOTIATION99Ioni Bowcher
1001Sinclair U BriddickAustralia2025-08-11Chemel, James L Cpa PROPOSAL7Onyama Limba
1002Deepesh D TollnerCanada2025-08-12Feltz Printing Service PROPOSAL0Elwin Sharvill
1003David G VenereBrazil2025-08-01King, Christopher A Esq QUALIFIED49Ioni Bowcher
1004Ashley K AlbaresBrazil2025-08-01Buckley Miller Wright NEGOTIATION71Ioni Bowcher
1005Julie U SergiGermany2025-07-23Printing Dimensions QUALIFIED59Amy Elsner
1006Aditya O BologniaItaly2025-08-10Commercial Press RENEWAL49Elwin Sharvill
1007Costa E AlbaresRussia2025-08-09Feiner Bros PROPOSAL59Asiya Javayant
1008Stacey P StensethJapan2025-07-23Morlong Associates NEGOTIATION27Onyama Limba
1009Aika O SergiAustralia2025-08-13Rousseaux, Michael Esq RENEWAL45Bernardo Dominic
1010Adams D SchemmerUnited Kingdom2025-07-18Printing Dimensions QUALIFIED35Onyama Limba
1011Ivar P SergiIndia2025-08-13Rangoni Of Florence NEGOTIATION13Amy Elsner
1012David Z OldroydIndia2025-08-13Commercial Press NEW17Asiya Javayant
1013Faith V ButtJapan2025-07-18Feiner Bros QUALIFIED9Bernardo Dominic
1014Mujtaba C BowleyItaly2025-07-22King, Christopher A Esq RENEWAL70Bernardo Dominic
1015Faith W ButtJapan2025-07-16Truhlar And Truhlar Attys RENEWAL21Bernardo Dominic
1016Smith C GillianArgentina2025-08-03Chanay, Jeffrey A Esq UNQUALIFIED67Asiya Javayant
1017Stacey C CaudyBrazil2025-08-09Chemel, James L Cpa NEGOTIATION6Amy Elsner
1018Darci F MorascaArgentina2025-07-16Rousseaux, Michael Esq PROPOSAL62Elwin Sharvill
1019Johnson M PoquetteAustralia2025-07-27Dorl, James J Esq UNQUALIFIED96Anna Fali
1020Munro F AmigonArgentina2025-07-18Benton, John B Jr UNQUALIFIED57Bernardo Dominic
1021James M AmigonBrazil2025-07-29Benton, John B Jr NEW58Asiya Javayant
1022James I SergiSpain2025-07-19Buckley Miller Wright RENEWAL78Ivan Magalhaes
1023Deepesh F MaletRussia2025-07-19Morlong Associates QUALIFIED53Anna Fali
1024Cody Y DoeItaly2025-07-28Feltz Printing Service PROPOSAL65Stephen Shaw
1025Leon I IturbideItaly2025-07-29Feltz Printing Service QUALIFIED10Xuxue Feng
1026Arvin Q OldroydItaly2025-07-23Chanay, Jeffrey A Esq NEGOTIATION19Ioni Bowcher
1027Chavez D BologniaAustralia2025-08-09Rangoni Of Florence PROPOSAL49Asiya Javayant
1028Stacey S FlosiItaly2025-08-03Chemel, James L Cpa UNQUALIFIED9Xuxue Feng
1029Nicolas P WhobreyGermany2025-07-16Morlong Associates RENEWAL10Bernardo Dominic
1030Leon G WaycottAustralia2025-08-09Printing Dimensions QUALIFIED67Asiya Javayant
1031Aditya K KuskoRussia2025-08-10Printing Dimensions NEGOTIATION51Ivan Magalhaes
1032Cody O SlusarskiBrazil2025-08-03Buckley Miller Wright UNQUALIFIED90Elwin Sharvill
1033Costa C GauchoFrance2025-07-16Commercial Press NEGOTIATION94Ioni Bowcher
1034Leja W DilliardItaly2025-07-28Printing Dimensions QUALIFIED23Bernardo Dominic
1035Adams E DarakjyFrance2025-07-27Buckley Miller Wright UNQUALIFIED64Ioni Bowcher
1036Kadeem K ButtRussia2025-07-28Rousseaux, Michael Esq PROPOSAL17Asiya Javayant
1037Nicolas X FlosiJapan2025-07-30Feiner Bros PROPOSAL52Ivan Magalhaes
1038Aruna O OstroskySpain2025-07-26Rousseaux, Michael Esq QUALIFIED98Asiya Javayant
1039Wickens Y WaycottUnited Kingdom2025-08-04Chanay, Jeffrey A Esq UNQUALIFIED44Ioni Bowcher
1040Mayumi Q FerenczSpain2025-08-09Truhlar And Truhlar Attys PROPOSAL43Amy Elsner
1041Aditya N RutaArgentina2025-08-06Feiner Bros RENEWAL12Stephen Shaw
1042James N SergiUnited Kingdom2025-08-06Commercial Press NEGOTIATION42Ivan Magalhaes
1043Francesco T CaudyCanada2025-07-23Truhlar And Truhlar Attys NEGOTIATION79Ioni Bowcher
1044Cody L ButtSpain2025-07-29Commercial Press QUALIFIED40Bernardo Dominic
1045Ashley Y DilliardBrazil2025-08-04Commercial Press PROPOSAL83Stephen Shaw
1046Emily Q NickaUnited Kingdom2025-08-09Feltz Printing Service NEW58Anna Fali
1047Jefferson H NickaCanada2025-07-22Chapman, Ross E Esq NEGOTIATION32Ioni Bowcher
1048Darci P RimIndia2025-07-18King, Christopher A Esq UNQUALIFIED13Xuxue Feng
1049Maria U WieserFrance2025-07-23Rangoni Of Florence RENEWAL83Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Emily J OstroskyGermanyOnyama Limba UNQUALIFIED
Jefferson F WieserItalyOnyama Limba NEGOTIATION
Jefferson V StockhamArgentinaStephen Shaw NEW
Mujtaba H RoysterRussiaIoni Bowcher NEW
Aruna W OstroskyRussiaIoni Bowcher NEW
Ricardo L MarrierRussiaBernardo Dominic PROPOSAL
Deepesh F MarrierSpainAsiya Javayant NEGOTIATION
Ashley K WieserGermanyAnna Fali QUALIFIED
David K OstroskyUnited KingdomXuxue Feng RENEWAL
Leon D GarufiSpainAnna Fali NEW
Johnson T FollerJapanElwin Sharvill NEGOTIATION
Julie Y WaycottFranceAsiya Javayant QUALIFIED
Mayumi I GarufiCanadaAsiya Javayant UNQUALIFIED
Ivar L OstroskyFranceAmy Elsner UNQUALIFIED
Smith D BologniaCanadaOnyama Limba NEW
Jennifer X SchemmerAustraliaBernardo Dominic NEW
Munro J InouyeAustraliaStephen Shaw UNQUALIFIED
Deepesh L RulapaughUnited KingdomElwin Sharvill QUALIFIED
Smith J MacleadJapanIvan Magalhaes NEGOTIATION
Jennifer N GlickUnited KingdomElwin Sharvill NEW
Mayumi D RoysterArgentinaAmy Elsner UNQUALIFIED
Salvatore I RoysterJapanXuxue Feng RENEWAL
Emily F GillianJapanXuxue Feng NEW
Morrow H KuskoSpainStephen Shaw QUALIFIED
Jefferson X AmigonFranceElwin Sharvill QUALIFIED
Juan P ChuiBrazilAsiya Javayant NEW
Mujtaba H MaletIndiaAnna Fali NEW
Arvin A VenereItalyOnyama Limba RENEWAL
Smith N NestleCanadaAnna Fali QUALIFIED
Morrow J MacleadItalyBernardo Dominic NEGOTIATION
Maisha Q VocelkaUnited KingdomAnna Fali PROPOSAL
Wickens S StensethCanadaXuxue Feng RENEWAL
Johnson V RoysterIndiaIoni Bowcher UNQUALIFIED
Stacey S ButtSpainBernardo Dominic NEGOTIATION
James C ButtCanadaStephen Shaw NEGOTIATION
Arvin V GarufiUnited KingdomAmy Elsner NEW
Stacey T SergiRussiaOnyama Limba UNQUALIFIED
Antonio N WaycottRussiaIvan Magalhaes NEGOTIATION
Leon Q MorascaCanadaIvan Magalhaes UNQUALIFIED
Mayumi Q SaylorsArgentinaAsiya Javayant RENEWAL
Tony Q PerinAustraliaStephen Shaw NEW
Sinclair Q GauchoUnited KingdomIoni Bowcher QUALIFIED
Claire X PaprockiFranceAnna Fali PROPOSAL
Jeanfrancois M TollnerRussiaElwin Sharvill NEW
Maria M KuskoGermanyXuxue Feng PROPOSAL
Stacey J OldroydIndiaIvan Magalhaes PROPOSAL
Deepesh O ShinkoAustraliaXuxue Feng RENEWAL
Aditya H BologniaGermanyAsiya Javayant QUALIFIED
Jones X FollerItalyStephen Shaw RENEWAL
Deepesh G GarufiGermanyStephen Shaw RENEWAL
Frozen Columns
Name
Cody M Royster
Tony M Nestle
Juan J Amigon
Leja K Sergi
Francesco P Figeroa
Izzy T Paprocki
Leja Z Waycott
Aruna A Poquette
Rodrigues Y Waycott
Mayumi R Darakjy
Juan W Chui
Darci N Ostrosky
Francesco Z Figeroa
Julie V Poquette
Salvatore X Inouye
Tony F Stockham
Octavia I Albares
Nicolas T Kolmetz
Nicolas Q Kolmetz
Julie Q Chui
Mujtaba N Garufi
Ricardo F Amigon
Cody U Glick
David E Doe
Tony R Doe
Leon O Dilliard
Salvatore F Rim
Morrow B Figeroa
Rodrigues W Malet
Sinclair L Inouye
Kaitlin V Foller
Adams N Wieser
Stacey W Venere
Aruna S Glick
Smith A Morasca
Francesco S Poquette
Silvio H Ostrosky
Costa D Foller
Claire H Rim
Chavez X Shinko
Faith X Garufi
Mayumi C Maclead
Clifford W Amigon
Cody H Foller
Alejandro H Inouye
Smith D Amigon
Maria A Paprocki
Juan I Butt
Misaki U Chui
Aditya D Poquette
IdCountryDate
1000Italy2025-08-06
1001Australia2025-08-05
1002Australia2025-07-28
1003Japan2025-08-02
1004Brazil2025-07-30
1005India2025-07-16
1006Argentina2025-08-09
1007Russia2025-07-22
1008Argentina2025-08-06
1009Argentina2025-08-06
1010Germany2025-08-06
1011United Kingdom2025-07-23
1012Japan2025-08-09
1013Russia2025-07-27
1014Germany2025-07-24
1015Russia2025-08-01
1016Spain2025-08-11
1017Argentina2025-08-12
1018Russia2025-08-05
1019Australia2025-07-28
1020France2025-08-07
1021Spain2025-08-05
1022India2025-08-11
1023France2025-08-10
1024Argentina2025-08-10
1025Germany2025-07-15
1026Russia2025-08-12
1027France2025-08-04
1028Japan2025-07-23
1029Canada2025-08-04
1030Italy2025-08-09
1031Italy2025-07-26
1032Germany2025-07-29
1033Japan2025-07-18
1034Canada2025-08-06
1035Argentina2025-08-08
1036France2025-08-11
1037Germany2025-07-19
1038Russia2025-08-12
1039France2025-07-31
1040Brazil2025-07-29
1041Japan2025-08-04
1042Japan2025-07-29
1043Germany2025-08-04
1044Russia2025-07-21
1045United Kingdom2025-08-08
1046India2025-07-16
1047Russia2025-08-05
1048France2025-07-22
1049France2025-07-29

On-Demand Data

NameIdCountryDate
Claire U Oldroyd1000United Kingdom2025-07-29
Mayumi D Figeroa1001France2025-07-17
Mujtaba S Kolmetz1002Japan2025-08-01
Kaitlin M Tollner1003India2025-07-22
Leja I Royster1004Spain2025-07-17
Chavez E Schemmer1005India2025-08-04
Maisha N Waycott1006Argentina2025-08-06
Jeanfrancois E Paprocki1007Brazil2025-08-05
Jeanfrancois N Butt1008India2025-07-29
Mujtaba V Saylors1009United Kingdom2025-07-27
Kaitlin W Foller1010Japan2025-07-21
Jennifer C Wieser1011United Kingdom2025-07-24
Salvatore C Glick1012Italy2025-07-19
Aika J Sergi1013Brazil2025-07-28
Aditya D Flosi1014Japan2025-08-07
Kaitlin R Rulapaugh1015United Kingdom2025-07-24
Emily F Albares1016Canada2025-08-03
Smith S Rim1017Spain2025-07-19
Murillo K Bowley1018Brazil2025-07-29
Clifford I Vocelka1019Italy2025-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi I MarrierUnited KingdomBernardo Dominic NEGOTIATION
Izzy O VenereSpainOnyama Limba NEW
Emily G PerinFranceIvan Magalhaes NEW
Adams W InouyeFranceAnna Fali PROPOSAL
Chavez L GlickUnited KingdomBernardo Dominic QUALIFIED
Munro F PoquetteItalyElwin Sharvill QUALIFIED
Johnson U SchemmerFranceXuxue Feng NEGOTIATION
Alejandro P AmigonRussiaBernardo Dominic RENEWAL
Ivar N CaudyUnited KingdomBernardo Dominic PROPOSAL
Emily Q PerinGermanyAnna Fali NEGOTIATION
Emily K OstroskyArgentinaAsiya Javayant PROPOSAL
Jennifer K CaldareraItalyAmy Elsner QUALIFIED
Smith E CaldareraJapanElwin Sharvill QUALIFIED
Claire K SlusarskiJapanIoni Bowcher QUALIFIED
Munro R TollnerJapanBernardo Dominic PROPOSAL
Arvin J DarakjyCanadaAmy Elsner RENEWAL
Deepesh V MaletArgentinaIoni Bowcher UNQUALIFIED
Stacey J MorascaCanadaOnyama Limba QUALIFIED
Johnson X MaletIndiaOnyama Limba NEW
Isabel H ShinkoItalyOnyama Limba RENEWAL
Smith Z MarrierGermanyBernardo Dominic UNQUALIFIED
Clifford A BowleyJapanAmy Elsner UNQUALIFIED
Nicolas N FollerAustraliaXuxue Feng RENEWAL
Deepesh I NickaJapanXuxue Feng UNQUALIFIED
Leon F MacleadSpainAnna Fali PROPOSAL
Adams A FigeroaArgentinaBernardo Dominic PROPOSAL
Aditya O BriddickCanadaAmy Elsner NEGOTIATION
Kadeem F BriddickSpainElwin Sharvill UNQUALIFIED
Leon R MacleadJapanXuxue Feng NEGOTIATION
Mayumi F AmigonAustraliaAmy Elsner UNQUALIFIED
Maisha U GarufiAustraliaIoni Bowcher QUALIFIED
Ricardo O BriddickCanadaAmy Elsner PROPOSAL
Jefferson Z IturbideBrazilOnyama Limba PROPOSAL
Deepesh T ButtItalyAmy Elsner UNQUALIFIED
Arvin C RulapaughAustraliaBernardo Dominic NEW
Jefferson I VenereBrazilIoni Bowcher PROPOSAL
Leon L ChuiSpainAnna Fali PROPOSAL
Maria X MarrierArgentinaAnna Fali QUALIFIED
Rodrigues E CampainArgentinaBernardo Dominic UNQUALIFIED
Jefferson Y GillianCanadaIvan Magalhaes QUALIFIED

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