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
Mayumi B PerinCanadaIoni Bowcher RENEWAL
Claire T KuskoFranceAnna Fali PROPOSAL
Salvatore C ShinkoUnited KingdomAnna Fali NEGOTIATION
Arvin A WieserJapanXuxue Feng UNQUALIFIED
Mayumi K GillianArgentinaXuxue Feng UNQUALIFIED
Maria F VenereFranceIoni Bowcher NEGOTIATION
Deepesh H DoeGermanyAnna Fali NEW
Mayumi G StockhamGermanyIoni Bowcher NEW
Antonio E RoysterItalyElwin Sharvill RENEWAL
Claire D ChuiGermanyIvan Magalhaes NEGOTIATION
Nicolas C KolmetzCanadaXuxue Feng QUALIFIED
Izzy U BologniaBrazilIvan Magalhaes RENEWAL
Rodrigues Q PerinRussiaOnyama Limba QUALIFIED
Kaitlin O RutaBrazilIoni Bowcher RENEWAL
Faith P OstroskyRussiaElwin Sharvill RENEWAL
Arvin S OldroydBrazilBernardo Dominic PROPOSAL
Jeanfrancois V FerenczIndiaIoni Bowcher PROPOSAL
Aruna K StockhamBrazilAnna Fali NEW
Arvin W ChuiItalyStephen Shaw QUALIFIED
Adams X NickaArgentinaAmy Elsner NEGOTIATION
Julie E ButtItalyBernardo Dominic QUALIFIED
Kadeem Y OldroydUnited KingdomStephen Shaw RENEWAL
Kaitlin G GillianArgentinaIvan Magalhaes NEW
Nicolas Y OstroskyRussiaIvan Magalhaes NEGOTIATION
James B GauchoBrazilXuxue Feng QUALIFIED
Faith K VocelkaItalyIoni Bowcher RENEWAL
Kaitlin B CaldareraIndiaElwin Sharvill RENEWAL
Rodrigues P GauchoCanadaAmy Elsner NEW
Arvin Z BologniaIndiaAmy Elsner NEGOTIATION
Aika X InouyeJapanAsiya Javayant QUALIFIED
Salvatore U GlickRussiaStephen Shaw PROPOSAL
Jefferson C PaprockiGermanyIoni Bowcher NEW
Chavez C RutaAustraliaBernardo Dominic PROPOSAL
Smith L SchemmerSpainElwin Sharvill UNQUALIFIED
Alejandro H ButtCanadaIvan Magalhaes UNQUALIFIED
Octavia Y TollnerSpainAnna Fali NEW
Francesco Z FigeroaGermanyIvan Magalhaes NEGOTIATION
Jones K MarrierSpainStephen Shaw RENEWAL
Misaki A MacleadJapanBernardo Dominic NEGOTIATION
Leja H BologniaCanadaIoni Bowcher QUALIFIED
Jeanfrancois E CaudyBrazilAnna Fali UNQUALIFIED
Arvin U MaletSpainBernardo Dominic UNQUALIFIED
Sinclair H ChuiArgentinaXuxue Feng NEW
Wickens C TollnerSpainAmy Elsner RENEWAL
Julie A WieserGermanyAnna Fali RENEWAL
Francesco F RulapaughIndiaAnna Fali UNQUALIFIED
Wickens Z GlickUnited KingdomAmy Elsner PROPOSAL
Wickens G DoeArgentinaElwin Sharvill NEW
Leon M PerinAustraliaIvan Magalhaes NEGOTIATION
Leon H BologniaIndiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore V StensethFranceBernardo Dominic UNQUALIFIED
Faith N NickaIndiaStephen Shaw QUALIFIED
Francesco Q GarufiAustraliaStephen Shaw NEGOTIATION
Munro Q PoquetteBrazilIoni Bowcher PROPOSAL
Ashley M FerenczIndiaXuxue Feng UNQUALIFIED
Izzy N FerenczIndiaIvan Magalhaes RENEWAL
Kadeem Z PerinUnited KingdomOnyama Limba PROPOSAL
Stacey X ButtItalyOnyama Limba QUALIFIED
Ivar J WaycottGermanyStephen Shaw QUALIFIED
Ashley C PerinSpainIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy Z StockhamItaly2025-08-08Feiner Bros NEW99Onyama Limba
1001Greenwood C DarakjyAustralia2025-08-11Chanay, Jeffrey A Esq RENEWAL56Elwin Sharvill
1002Murillo Y AmigonSpain2025-08-06Rousseaux, Michael Esq UNQUALIFIED57Onyama Limba
1003Salvatore U MarrierRussia2025-07-26King, Christopher A Esq NEW81Ioni Bowcher
1004Misaki A GarufiAustralia2025-08-03Benton, John B Jr UNQUALIFIED29Amy Elsner
1005Darci V DarakjyAustralia2025-08-12King, Christopher A Esq RENEWAL38Anna Fali
1006Isabel C StockhamJapan2025-08-23Chanay, Jeffrey A Esq QUALIFIED72Ivan Magalhaes
1007Kaitlin D CampainRussia2025-08-06Printing Dimensions QUALIFIED42Bernardo Dominic
1008Wickens U SlusarskiCanada2025-08-17Printing Dimensions NEGOTIATION0Amy Elsner
1009Johnson X ShinkoSpain2025-08-05Chanay, Jeffrey A Esq NEW81Ivan Magalhaes
1010Mayumi W RoysterJapan2025-08-11Feltz Printing Service NEGOTIATION76Anna Fali
1011Chavez P OstroskySpain2025-07-27Morlong Associates NEGOTIATION51Stephen Shaw
1012Greenwood T PaprockiGermany2025-08-23Benton, John B Jr QUALIFIED86Amy Elsner
1013Silvio Q BowleyAustralia2025-08-11Truhlar And Truhlar Attys PROPOSAL16Bernardo Dominic
1014Johnson D RoysterSpain2025-08-17Morlong Associates PROPOSAL63Amy Elsner
1015Silvio U DarakjyCanada2025-07-25Rousseaux, Michael Esq NEGOTIATION24Stephen Shaw
1016Morrow J TollnerUnited Kingdom2025-08-07Truhlar And Truhlar Attys NEGOTIATION63Onyama Limba
1017Costa E DoeArgentina2025-08-21Commercial Press NEGOTIATION78Xuxue Feng
1018Leja F AlbaresSpain2025-08-08King, Christopher A Esq NEGOTIATION16Ivan Magalhaes
1019Silvio N DoeIndia2025-08-06Commercial Press NEGOTIATION55Elwin Sharvill
1020Ricardo A WaycottFrance2025-08-18Rousseaux, Michael Esq UNQUALIFIED87Elwin Sharvill
1021Emily H OstroskyItaly2025-08-05Commercial Press QUALIFIED50Onyama Limba
1022Maria G MarrierAustralia2025-08-01Truhlar And Truhlar Attys NEGOTIATION54Xuxue Feng
1023Tony T SchemmerItaly2025-08-16Feiner Bros NEW26Elwin Sharvill
1024Jones H SaylorsUnited Kingdom2025-08-03King, Christopher A Esq NEW4Xuxue Feng
1025Ricardo M KolmetzGermany2025-08-05Rousseaux, Michael Esq QUALIFIED8Elwin Sharvill
1026Maisha J TollnerAustralia2025-08-15Rousseaux, Michael Esq PROPOSAL79Amy Elsner
1027David Y GarufiRussia2025-08-19Morlong Associates NEGOTIATION73Bernardo Dominic
1028Munro Q MaletAustralia2025-07-28Truhlar And Truhlar Attys RENEWAL17Bernardo Dominic
1029Ivar T CaldareraFrance2025-08-17Feiner Bros NEW2Stephen Shaw
1030Jones D GauchoItaly2025-08-03Buckley Miller Wright UNQUALIFIED49Bernardo Dominic
1031Stacey W BowleyUnited Kingdom2025-08-12Morlong Associates UNQUALIFIED79Stephen Shaw
1032David A StensethArgentina2025-08-17Printing Dimensions UNQUALIFIED64Elwin Sharvill
1033Julie T DilliardIndia2025-07-28Feiner Bros QUALIFIED5Elwin Sharvill
1034Claire B MorascaSpain2025-08-19Chapman, Ross E Esq PROPOSAL70Bernardo Dominic
1035Jones S RimArgentina2025-08-23Dorl, James J Esq NEW50Xuxue Feng
1036Tony Y BowleyItaly2025-08-15Printing Dimensions QUALIFIED37Xuxue Feng
1037David P FollerSpain2025-08-18Chemel, James L Cpa PROPOSAL24Anna Fali
1038Misaki V FlosiBrazil2025-08-02King, Christopher A Esq NEGOTIATION59Anna Fali
1039Faith S OstroskySpain2025-07-25King, Christopher A Esq UNQUALIFIED59Anna Fali
1040Maisha Y FollerUnited Kingdom2025-08-07Morlong Associates NEGOTIATION68Elwin Sharvill
1041Wickens F StockhamSpain2025-08-16Benton, John B Jr NEW3Stephen Shaw
1042Emily A SergiRussia2025-08-03Feiner Bros RENEWAL34Stephen Shaw
1043Nicolas V NestleArgentina2025-08-09Truhlar And Truhlar Attys NEW92Elwin Sharvill
1044Cody R KuskoIndia2025-08-05Rousseaux, Michael Esq NEGOTIATION64Elwin Sharvill
1045Silvio K ButtGermany2025-08-15Printing Dimensions NEW27Bernardo Dominic
1046Juan U ButtGermany2025-07-30Benton, John B Jr NEW88Ioni Bowcher
1047Ashley X WieserArgentina2025-08-14Rangoni Of Florence RENEWAL18Elwin Sharvill
1048Johnson T RutaArgentina2025-08-13King, Christopher A Esq NEW51Amy Elsner
1049Aruna K VocelkaGermany2025-08-15Dorl, James J Esq RENEWAL31Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David Y ShinkoSpainAnna Fali RENEWAL
Silvio C DarakjyItalyIvan Magalhaes NEGOTIATION
Nicolas L CampainAustraliaBernardo Dominic NEGOTIATION
Octavia C KuskoUnited KingdomIoni Bowcher QUALIFIED
Greenwood H SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Juan S PerinArgentinaElwin Sharvill QUALIFIED
Alejandro S PoquetteRussiaIoni Bowcher UNQUALIFIED
Arvin J ChuiUnited KingdomElwin Sharvill NEW
Munro F CaldareraGermanyIvan Magalhaes NEGOTIATION
Rodrigues T SlusarskiArgentinaAnna Fali RENEWAL
Morrow E RulapaughAustraliaIvan Magalhaes PROPOSAL
Julie R MaletBrazilBernardo Dominic NEGOTIATION
Johnson F RulapaughItalyAsiya Javayant NEGOTIATION
Clifford J FlosiArgentinaBernardo Dominic RENEWAL
Greenwood Q PaprockiIndiaBernardo Dominic NEW
Clifford C DarakjySpainAsiya Javayant QUALIFIED
Kadeem L WhobreyUnited KingdomAsiya Javayant QUALIFIED
Aruna Y PerinCanadaAsiya Javayant NEW
Murillo B MaletGermanyAmy Elsner PROPOSAL
Octavia B GillianItalyStephen Shaw PROPOSAL
Nicolas S WaycottIndiaBernardo Dominic QUALIFIED
Arvin H IturbideFranceXuxue Feng QUALIFIED
Jeanfrancois M NickaIndiaAnna Fali QUALIFIED
Maisha M CaudyAustraliaBernardo Dominic QUALIFIED
Izzy D DoeFranceStephen Shaw UNQUALIFIED
Ashley E CaudyArgentinaIoni Bowcher NEGOTIATION
Julie X RulapaughRussiaAnna Fali NEGOTIATION
Ricardo P PoquetteRussiaAmy Elsner PROPOSAL
Greenwood D OstroskyUnited KingdomXuxue Feng NEGOTIATION
Ashley H OldroydGermanyStephen Shaw RENEWAL
Alejandro R PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio I GillianFranceAnna Fali QUALIFIED
Kadeem M DoeItalyAnna Fali QUALIFIED
Silvio D RoysterIndiaIvan Magalhaes UNQUALIFIED
Alejandro B FlosiAustraliaAsiya Javayant RENEWAL
Kadeem P RulapaughItalyAmy Elsner PROPOSAL
Silvio Y DilliardIndiaElwin Sharvill QUALIFIED
Cody B ShinkoItalyOnyama Limba RENEWAL
Isabel P InouyeJapanIvan Magalhaes NEW
Alejandro O SlusarskiIndiaAnna Fali PROPOSAL
Misaki V SergiItalyXuxue Feng UNQUALIFIED
Kadeem M MaletAustraliaIvan Magalhaes RENEWAL
Morrow A DarakjyBrazilAnna Fali PROPOSAL
Maria F CampainAustraliaIvan Magalhaes NEW
Octavia K WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Munro C NickaIndiaIvan Magalhaes QUALIFIED
David V RoysterAustraliaOnyama Limba PROPOSAL
Jennifer Y GarufiSpainAsiya Javayant QUALIFIED
Claire I GlickFranceBernardo Dominic RENEWAL
David V OstroskyIndiaBernardo Dominic NEW
Frozen Columns
Name
Tony Z Campain
Leon A Schemmer
Octavia H Saylors
Leja W Garufi
Adams A Albares
Julie W Caudy
Jeanfrancois M Dilliard
Sinclair Y Bowley
Chavez N Bolognia
Aditya N Foller
Julie U Stenseth
Clifford D Doe
Leja R Butt
Aruna X Nestle
Chavez L Morasca
Claire M Darakjy
Kadeem H Butt
Jones U Venere
Cody U Ostrosky
Adams Z Tollner
Jones S Figeroa
Claire G Kusko
Aditya N Oldroyd
Ricardo P Shinko
Cody R Tollner
Misaki D Whobrey
Smith U Vocelka
James Q Nicka
Kadeem M Kusko
James L Bowley
Silvio X Rulapaugh
Cody M Marrier
Jeanfrancois L Sergi
Sinclair U Wieser
Emily G Bolognia
Clifford K Sergi
Izzy R Foller
Francesco T Morasca
Izzy D Foller
James Z Malet
Cody Y Nestle
Mayumi P Albares
James U Darakjy
Rodrigues C Wieser
Izzy P Malet
Aruna V Inouye
Ricardo N Waycott
Morrow T Perin
Francesco Q Stockham
Nicolas N Stockham
IdCountryDate
1000India2025-08-01
1001Spain2025-08-22
1002Argentina2025-08-11
1003Germany2025-08-12
1004United Kingdom2025-08-18
1005Canada2025-08-07
1006Canada2025-07-25
1007United Kingdom2025-08-16
1008Italy2025-07-31
1009Canada2025-08-22
1010Argentina2025-07-27
1011France2025-08-15
1012United Kingdom2025-07-28
1013India2025-08-16
1014Australia2025-08-05
1015Brazil2025-08-04
1016Spain2025-08-21
1017Spain2025-08-03
1018Canada2025-08-12
1019Germany2025-08-03
1020Japan2025-08-12
1021United Kingdom2025-07-26
1022Japan2025-08-23
1023United Kingdom2025-07-30
1024Canada2025-07-28
1025Argentina2025-08-10
1026Spain2025-08-22
1027Russia2025-08-23
1028Japan2025-07-25
1029United Kingdom2025-08-20
1030India2025-07-29
1031Brazil2025-08-21
1032France2025-08-20
1033Japan2025-08-08
1034Italy2025-08-06
1035Australia2025-08-19
1036India2025-08-01
1037France2025-08-19
1038Italy2025-08-01
1039India2025-08-03
1040Japan2025-07-25
1041Spain2025-08-10
1042Canada2025-07-27
1043Russia2025-07-26
1044Russia2025-08-15
1045India2025-08-06
1046United Kingdom2025-07-29
1047United Kingdom2025-08-14
1048Russia2025-08-04
1049Japan2025-07-31

On-Demand Data

NameIdCountryDate
Johnson T Malet1000France2025-08-15
Emily D Wieser1001Brazil2025-08-20
Antonio A Briddick1002India2025-08-03
Maisha Z Malet1003France2025-08-21
Francesco B Butt1004Japan2025-08-02
Wickens O Kusko1005Argentina2025-08-06
Wickens H Flosi1006Japan2025-08-21
Juan B Sergi1007Argentina2025-08-03
Munro I Bolognia1008India2025-08-14
Aditya Z Gillian1009Canada2025-08-03
Claire B Kolmetz1010Italy2025-08-11
Antonio P Doe1011India2025-08-19
Julie Y Doe1012India2025-08-05
Wickens Y Albares1013United Kingdom2025-08-02
Kaitlin O Gillian1014Russia2025-08-13
Rodrigues O Rulapaugh1015Canada2025-08-02
Aruna E Marrier1016Japan2025-08-01
Misaki F Maclead1017Australia2025-07-28
Clifford P Shinko1018Spain2025-08-20
Darci T Poquette1019Germany2025-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire H PerinIndiaAsiya Javayant PROPOSAL
Jones T FlosiBrazilXuxue Feng QUALIFIED
James Q ButtIndiaIoni Bowcher PROPOSAL
Kadeem N NestleBrazilIoni Bowcher PROPOSAL
Juan J FlosiFranceIvan Magalhaes RENEWAL
Johnson U WaycottItalyIvan Magalhaes PROPOSAL
Clifford F BowleyUnited KingdomXuxue Feng NEW
Kadeem V PoquetteJapanBernardo Dominic NEGOTIATION
James L SchemmerRussiaIoni Bowcher QUALIFIED
Costa E VenereRussiaBernardo Dominic NEW
Darci A DoeCanadaOnyama Limba QUALIFIED
Aditya R OstroskyJapanIoni Bowcher RENEWAL
Claire D GlickRussiaBernardo Dominic NEW
Juan X StockhamCanadaIvan Magalhaes RENEWAL
Antonio C GarufiIndiaBernardo Dominic PROPOSAL
Sinclair S AmigonIndiaElwin Sharvill PROPOSAL
Octavia S RutaJapanXuxue Feng NEW
Alejandro Z GillianSpainXuxue Feng QUALIFIED
Alejandro B ChuiFranceAmy Elsner PROPOSAL
Silvio F RimAustraliaStephen Shaw QUALIFIED
Salvatore G NestleGermanyBernardo Dominic UNQUALIFIED
Mujtaba A InouyeFranceStephen Shaw NEW
Mujtaba I AlbaresItalyXuxue Feng NEGOTIATION
Morrow M PaprockiUnited KingdomElwin Sharvill PROPOSAL
Leon O MorascaIndiaElwin Sharvill NEGOTIATION
Sinclair P IturbideBrazilBernardo Dominic RENEWAL
Jefferson C ButtBrazilBernardo Dominic QUALIFIED
Murillo S FlosiUnited KingdomIoni Bowcher PROPOSAL
Mujtaba N BriddickIndiaElwin Sharvill NEGOTIATION
Kadeem X VocelkaBrazilStephen Shaw NEGOTIATION
Octavia M BologniaRussiaIvan Magalhaes NEGOTIATION
Costa O MaletCanadaAmy Elsner NEGOTIATION
Silvio P PerinArgentinaIvan Magalhaes RENEWAL
Clifford S GarufiJapanXuxue Feng NEW
Salvatore J MaletItalyStephen Shaw UNQUALIFIED
Leon P MaletSpainAsiya Javayant RENEWAL
David A FerenczItalyAmy Elsner PROPOSAL
Ivar H GlickArgentinaAsiya Javayant NEW
Mujtaba H GarufiJapanStephen Shaw RENEWAL
Aika E GarufiBrazilOnyama Limba 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>