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
Aruna U PoquetteFranceAmy Elsner PROPOSAL
Izzy N GlickFranceAmy Elsner PROPOSAL
Sinclair Z MaletItalyBernardo Dominic PROPOSAL
Octavia D SchemmerBrazilAnna Fali UNQUALIFIED
Faith O CaudyCanadaOnyama Limba RENEWAL
Morrow L DoeIndiaElwin Sharvill QUALIFIED
Mujtaba O DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Salvatore F FerenczRussiaAmy Elsner PROPOSAL
Jeanfrancois H IturbideItalyAnna Fali NEW
Wickens F MaletJapanAsiya Javayant QUALIFIED
Misaki I WaycottArgentinaElwin Sharvill RENEWAL
David R DoeSpainXuxue Feng QUALIFIED
Chavez A OstroskySpainBernardo Dominic NEGOTIATION
Adams U VocelkaItalyOnyama Limba NEW
James P DarakjyItalyAnna Fali UNQUALIFIED
Greenwood X SlusarskiRussiaXuxue Feng QUALIFIED
Kadeem Q IturbideSpainOnyama Limba RENEWAL
Ashley W OldroydArgentinaAsiya Javayant UNQUALIFIED
Sinclair X ShinkoFranceBernardo Dominic NEGOTIATION
Tony D PerinAustraliaStephen Shaw RENEWAL
Aruna O StockhamGermanyIoni Bowcher QUALIFIED
Francesco K CaudyGermanyElwin Sharvill RENEWAL
Kadeem L GauchoRussiaXuxue Feng QUALIFIED
Stacey L CampainCanadaStephen Shaw QUALIFIED
Munro M MacleadBrazilAsiya Javayant NEGOTIATION
Jones C AmigonRussiaOnyama Limba QUALIFIED
Salvatore J AlbaresArgentinaStephen Shaw UNQUALIFIED
Chavez Q ButtSpainElwin Sharvill UNQUALIFIED
Nicolas D KolmetzArgentinaXuxue Feng UNQUALIFIED
Tony P FerenczFranceAnna Fali RENEWAL
Morrow C DoeFranceStephen Shaw PROPOSAL
Costa Y CaudyArgentinaAmy Elsner NEGOTIATION
Aruna S SlusarskiRussiaAnna Fali QUALIFIED
Emily D GillianArgentinaStephen Shaw PROPOSAL
Antonio X GlickFranceStephen Shaw PROPOSAL
Nicolas W VenereIndiaOnyama Limba UNQUALIFIED
Antonio G RimSpainElwin Sharvill UNQUALIFIED
Emily W FigeroaItalyAnna Fali UNQUALIFIED
Jennifer J RutaSpainIoni Bowcher QUALIFIED
Ivar G WaycottItalyAsiya Javayant QUALIFIED
Francesco D BriddickGermanyIvan Magalhaes NEW
Jennifer E StockhamArgentinaAmy Elsner UNQUALIFIED
Johnson C MarrierJapanAmy Elsner UNQUALIFIED
Johnson I GarufiBrazilAnna Fali PROPOSAL
Francesco V MaletFranceElwin Sharvill NEGOTIATION
Aruna F SergiJapanOnyama Limba RENEWAL
Deepesh B ShinkoArgentinaOnyama Limba QUALIFIED
Costa C GillianArgentinaIoni Bowcher QUALIFIED
Ashley B GillianFranceAnna Fali QUALIFIED
Misaki T FlosiBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore L RutaArgentinaIvan Magalhaes NEW
David S FollerGermanyOnyama Limba QUALIFIED
Deepesh I MaletGermanyOnyama Limba NEGOTIATION
Wickens B WieserItalyAmy Elsner QUALIFIED
Maria Z RoysterFranceAmy Elsner NEW
James F SergiJapanAsiya Javayant PROPOSAL
Faith Y OldroydUnited KingdomOnyama Limba NEGOTIATION
Isabel I CampainRussiaStephen Shaw NEW
Izzy D KolmetzGermanyElwin Sharvill RENEWAL
James X ShinkoCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow C OldroydItaly2025-07-23King, Christopher A Esq NEGOTIATION62Stephen Shaw
1001Stacey N FerenczCanada2025-07-27Buckley Miller Wright NEW69Ivan Magalhaes
1002Rodrigues O RutaArgentina2025-07-31Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1003Alejandro H KolmetzRussia2025-08-01Chemel, James L Cpa NEW92Elwin Sharvill
1004Emily R AmigonFrance2025-07-25Dorl, James J Esq UNQUALIFIED54Ivan Magalhaes
1005Octavia K AmigonItaly2025-08-01Feiner Bros NEW34Ivan Magalhaes
1006Jones O OstroskyItaly2025-07-21Feiner Bros RENEWAL60Ivan Magalhaes
1007Jennifer N DoeRussia2025-07-14Dorl, James J Esq QUALIFIED8Stephen Shaw
1008Izzy N DilliardSpain2025-08-07Feltz Printing Service UNQUALIFIED33Elwin Sharvill
1009Claire F VenereItaly2025-07-25Feiner Bros NEW22Ioni Bowcher
1010Darci Q DarakjyIndia2025-07-27Chanay, Jeffrey A Esq UNQUALIFIED5Bernardo Dominic
1011Julie P RimSpain2025-07-21King, Christopher A Esq NEGOTIATION80Onyama Limba
1012Antonio Y RoysterIndia2025-07-22Feiner Bros NEGOTIATION15Anna Fali
1013Jefferson T OstroskyArgentina2025-07-30Printing Dimensions PROPOSAL19Ivan Magalhaes
1014Ricardo O OstroskyBrazil2025-07-20Feiner Bros QUALIFIED46Xuxue Feng
1015Deepesh W RoysterCanada2025-07-16Feiner Bros UNQUALIFIED77Stephen Shaw
1016Stacey G FollerCanada2025-08-12Dorl, James J Esq QUALIFIED32Ioni Bowcher
1017Nicolas F MorascaIndia2025-07-25Rangoni Of Florence PROPOSAL39Onyama Limba
1018Smith R WhobreySpain2025-08-03Truhlar And Truhlar Attys NEGOTIATION14Ioni Bowcher
1019Rodrigues K RimFrance2025-07-22Rousseaux, Michael Esq NEW16Onyama Limba
1020Mayumi G InouyeFrance2025-08-11Buckley Miller Wright RENEWAL94Elwin Sharvill
1021Misaki C ButtBrazil2025-07-16Benton, John B Jr NEW55Xuxue Feng
1022Juan C StockhamRussia2025-07-26Chanay, Jeffrey A Esq UNQUALIFIED51Amy Elsner
1023Leja T VocelkaBrazil2025-08-04Dorl, James J Esq NEW51Anna Fali
1024Maisha K ShinkoIndia2025-08-11Morlong Associates UNQUALIFIED64Amy Elsner
1025David R VocelkaFrance2025-07-18Morlong Associates PROPOSAL46Onyama Limba
1026Isabel C ButtIndia2025-07-29Chemel, James L Cpa NEW94Ivan Magalhaes
1027Aditya E InouyeBrazil2025-07-18Buckley Miller Wright PROPOSAL43Xuxue Feng
1028Antonio Y KuskoUnited Kingdom2025-07-14Chapman, Ross E Esq QUALIFIED4Ivan Magalhaes
1029Ricardo R RulapaughUnited Kingdom2025-08-10Commercial Press NEW41Anna Fali
1030Jefferson P VenereIndia2025-08-06Truhlar And Truhlar Attys QUALIFIED17Xuxue Feng
1031Francesco S SchemmerGermany2025-07-26Rangoni Of Florence NEGOTIATION31Elwin Sharvill
1032Adams E VocelkaAustralia2025-07-24Dorl, James J Esq UNQUALIFIED91Stephen Shaw
1033Deepesh K WhobreyBrazil2025-08-01Truhlar And Truhlar Attys RENEWAL23Ivan Magalhaes
1034Jones O GlickIndia2025-08-09Dorl, James J Esq RENEWAL57Bernardo Dominic
1035Ashley M DoeItaly2025-07-16Feiner Bros QUALIFIED3Amy Elsner
1036Stacey O FigeroaItaly2025-07-20Rousseaux, Michael Esq UNQUALIFIED61Stephen Shaw
1037Smith W PoquetteItaly2025-08-12Dorl, James J Esq NEGOTIATION54Stephen Shaw
1038Antonio V BowleySpain2025-07-25Rousseaux, Michael Esq NEGOTIATION97Amy Elsner
1039Ricardo X WaycottFrance2025-07-29Chapman, Ross E Esq NEGOTIATION98Amy Elsner
1040Adams S SaylorsUnited Kingdom2025-07-20Rousseaux, Michael Esq UNQUALIFIED49Onyama Limba
1041Emily X InouyeUnited Kingdom2025-07-21Printing Dimensions UNQUALIFIED51Ivan Magalhaes
1042Faith N RutaJapan2025-07-27King, Christopher A Esq NEW0Stephen Shaw
1043Deepesh L PoquetteIndia2025-07-29Commercial Press RENEWAL98Elwin Sharvill
1044Alejandro D FollerAustralia2025-07-27Commercial Press RENEWAL91Amy Elsner
1045Nicolas U StensethAustralia2025-08-05Chemel, James L Cpa NEW37Asiya Javayant
1046Maria C TollnerIndia2025-08-01Commercial Press UNQUALIFIED75Elwin Sharvill
1047Johnson E GlickCanada2025-08-06King, Christopher A Esq UNQUALIFIED35Bernardo Dominic
1048Kadeem N SchemmerItaly2025-07-25Chapman, Ross E Esq QUALIFIED58Amy Elsner
1049Salvatore Z FerenczAustralia2025-07-20Rangoni Of Florence NEW98Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kadeem O FigeroaItalyStephen Shaw QUALIFIED
Clifford P OldroydArgentinaAnna Fali PROPOSAL
Maria I KuskoBrazilElwin Sharvill NEW
Emily H RoysterUnited KingdomStephen Shaw UNQUALIFIED
Sinclair K InouyeJapanAnna Fali UNQUALIFIED
Aruna G ChuiIndiaAmy Elsner PROPOSAL
Kaitlin M OstroskyIndiaAmy Elsner PROPOSAL
Julie H PerinUnited KingdomOnyama Limba PROPOSAL
Jennifer Y StensethAustraliaIvan Magalhaes NEW
Jennifer N MacleadItalyElwin Sharvill NEGOTIATION
Adams M SergiSpainBernardo Dominic RENEWAL
Mujtaba S InouyeUnited KingdomXuxue Feng NEW
Adams W OstroskyItalyElwin Sharvill QUALIFIED
Aditya M WhobreySpainAsiya Javayant NEGOTIATION
Jones M OldroydSpainStephen Shaw UNQUALIFIED
Arvin Y KuskoJapanBernardo Dominic NEW
Johnson H RoysterItalyIvan Magalhaes UNQUALIFIED
Silvio O MarrierRussiaIoni Bowcher RENEWAL
Stacey Q BriddickIndiaStephen Shaw PROPOSAL
Nicolas C FlosiAustraliaStephen Shaw QUALIFIED
Emily Z PaprockiArgentinaIoni Bowcher NEW
Stacey Y SchemmerSpainOnyama Limba PROPOSAL
Nicolas F DarakjyBrazilAnna Fali NEW
Mujtaba C MorascaItalyIoni Bowcher QUALIFIED
Emily S GarufiIndiaElwin Sharvill QUALIFIED
Jefferson J GarufiFranceAmy Elsner UNQUALIFIED
Ricardo D GarufiJapanStephen Shaw PROPOSAL
Isabel Q VenereUnited KingdomOnyama Limba UNQUALIFIED
Aika U ChuiIndiaBernardo Dominic UNQUALIFIED
Smith T WhobreyIndiaOnyama Limba NEW
Darci Z RulapaughGermanyIoni Bowcher UNQUALIFIED
Emily X OldroydSpainAsiya Javayant UNQUALIFIED
Mujtaba D FollerAustraliaAnna Fali QUALIFIED
Jeanfrancois Y CaldareraArgentinaIvan Magalhaes NEW
Jeanfrancois O GillianSpainElwin Sharvill NEGOTIATION
Arvin P AlbaresCanadaAsiya Javayant NEW
Greenwood M KuskoItalyOnyama Limba RENEWAL
James T RulapaughArgentinaAnna Fali UNQUALIFIED
Mayumi I InouyeJapanXuxue Feng UNQUALIFIED
Maisha V TollnerBrazilAnna Fali NEGOTIATION
Munro I WaycottAustraliaBernardo Dominic RENEWAL
Deepesh P IturbideArgentinaXuxue Feng NEW
Cody D CaudyBrazilAnna Fali NEGOTIATION
Greenwood U StockhamSpainIoni Bowcher UNQUALIFIED
Antonio B StockhamIndiaAmy Elsner UNQUALIFIED
Greenwood N NestleSpainElwin Sharvill RENEWAL
Darci X StensethSpainOnyama Limba QUALIFIED
Sinclair G MorascaSpainBernardo Dominic RENEWAL
David W BowleyItalyAmy Elsner NEGOTIATION
Morrow B GillianItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Greenwood V Doe
Rodrigues Y Royster
Arvin X Stenseth
Sinclair Q Kolmetz
Julie V Foller
James D Slusarski
Salvatore F Ostrosky
Misaki N Iturbide
Misaki S Garufi
Johnson D Maclead
Mayumi C Tollner
Salvatore Q Figeroa
Smith K Iturbide
Julie Y Shinko
Greenwood U Kolmetz
Greenwood N Caudy
Juan O Caldarera
Silvio T Amigon
Sinclair E Malet
Francesco E Stenseth
Murillo V Rim
Maria V Albares
Aditya W Venere
Jefferson B Dilliard
Isabel O Caldarera
Izzy I Iturbide
Aditya M Doe
Mujtaba O Sergi
Aruna I Kolmetz
Ashley X Ostrosky
Cody W Ostrosky
Jones X Venere
Mujtaba O Paprocki
Arvin D Caldarera
Mujtaba K Nestle
James I Kusko
Kaitlin Z Ruta
Aruna N Malet
Darci G Glick
Ashley Y Venere
Smith I Venere
Maisha J Stenseth
Aika O Poquette
Isabel M Wieser
Francesco K Nicka
Faith W Kusko
Smith W Ferencz
Isabel Y Wieser
James T Malet
Julie R Stenseth
IdCountryDate
1000Italy2025-07-17
1001Russia2025-08-04
1002Argentina2025-08-11
1003France2025-07-19
1004Australia2025-07-21
1005United Kingdom2025-07-20
1006Japan2025-07-29
1007Canada2025-08-10
1008Canada2025-07-29
1009United Kingdom2025-08-07
1010United Kingdom2025-08-08
1011Spain2025-07-17
1012Brazil2025-08-01
1013Italy2025-08-12
1014France2025-07-31
1015Italy2025-07-15
1016United Kingdom2025-07-17
1017Russia2025-07-28
1018Australia2025-07-19
1019Australia2025-07-14
1020Spain2025-08-05
1021Australia2025-08-09
1022Japan2025-08-09
1023India2025-07-29
1024Argentina2025-07-24
1025India2025-08-03
1026Italy2025-07-30
1027Brazil2025-08-04
1028India2025-07-19
1029Brazil2025-07-20
1030Canada2025-08-11
1031Germany2025-07-30
1032India2025-07-15
1033Canada2025-08-08
1034Canada2025-08-09
1035France2025-08-10
1036Spain2025-08-12
1037Germany2025-07-29
1038Germany2025-08-08
1039Germany2025-08-12
1040France2025-08-04
1041Spain2025-08-10
1042Spain2025-07-25
1043Canada2025-08-01
1044Brazil2025-07-29
1045Argentina2025-07-17
1046Spain2025-07-15
1047Brazil2025-08-01
1048Spain2025-07-15
1049Argentina2025-08-10

On-Demand Data

NameIdCountryDate
Maria B Maclead1000India2025-07-20
Aika G Gaucho1001Australia2025-08-07
Wickens U Butt1002Italy2025-07-29
Darci N Caudy1003Germany2025-07-28
David M Campain1004France2025-07-30
Adams L Briddick1005Spain2025-08-03
Mayumi S Caldarera1006Italy2025-08-04
Salvatore Y Inouye1007Spain2025-07-27
Stacey H Royster1008India2025-08-07
Maisha Y Saylors1009Australia2025-08-09
Emily Q Garufi1010Japan2025-07-30
Salvatore Y Campain1011Canada2025-08-12
Rodrigues B Chui1012Russia2025-07-28
Leja Y Gillian1013United Kingdom2025-07-14
Smith H Ferencz1014Australia2025-07-21
Costa N Tollner1015United Kingdom2025-07-23
Greenwood V Venere1016Italy2025-08-10
Jeanfrancois T Bowley1017Argentina2025-08-07
David Y Darakjy1018Japan2025-08-09
Claire B Royster1019Italy2025-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin N MaletCanadaOnyama Limba UNQUALIFIED
Greenwood G StockhamUnited KingdomIvan Magalhaes PROPOSAL
Cody D FerenczArgentinaAmy Elsner NEGOTIATION
Mujtaba S RimJapanAnna Fali NEW
Chavez Y FollerAustraliaOnyama Limba NEW
Ivar P RutaFranceOnyama Limba QUALIFIED
Jefferson Q VocelkaBrazilIvan Magalhaes NEGOTIATION
Smith D NestleBrazilIvan Magalhaes UNQUALIFIED
Sinclair R DilliardFranceAnna Fali QUALIFIED
Alejandro N SaylorsArgentinaIvan Magalhaes NEGOTIATION
James H OstroskyJapanElwin Sharvill RENEWAL
Smith Z CampainIndiaAsiya Javayant QUALIFIED
Jennifer F MarrierUnited KingdomAsiya Javayant UNQUALIFIED
David G OldroydAustraliaOnyama Limba QUALIFIED
Clifford N SergiAustraliaXuxue Feng QUALIFIED
Aruna K MorascaSpainIvan Magalhaes QUALIFIED
Maisha H CaudyAustraliaIvan Magalhaes QUALIFIED
Greenwood S ButtCanadaXuxue Feng QUALIFIED
Juan T WhobreyItalyIoni Bowcher RENEWAL
Ricardo F GauchoCanadaElwin Sharvill RENEWAL
Kaitlin G DarakjyFranceAnna Fali RENEWAL
Leja U VenereItalyBernardo Dominic UNQUALIFIED
Sinclair W GarufiIndiaAnna Fali QUALIFIED
Emily U InouyeAustraliaAsiya Javayant PROPOSAL
Kadeem A VocelkaIndiaElwin Sharvill RENEWAL
Stacey X MaletSpainBernardo Dominic RENEWAL
Julie N FerenczUnited KingdomAnna Fali QUALIFIED
Misaki M CaudyIndiaBernardo Dominic UNQUALIFIED
Wickens I OldroydAustraliaBernardo Dominic QUALIFIED
Faith V OldroydSpainOnyama Limba UNQUALIFIED
Izzy D ChuiUnited KingdomOnyama Limba NEW
David E BologniaItalyIvan Magalhaes NEGOTIATION
Cody D CaldareraRussiaBernardo Dominic NEGOTIATION
Aditya L FlosiBrazilOnyama Limba UNQUALIFIED
Munro G CampainArgentinaAmy Elsner PROPOSAL
Nicolas E MacleadRussiaAmy Elsner PROPOSAL
Nicolas U BowleyItalyElwin Sharvill NEW
Silvio K KuskoSpainIvan Magalhaes NEW
Julie E CampainArgentinaOnyama Limba PROPOSAL
Jones F VocelkaBrazilAnna Fali 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>