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
James W BologniaItalyStephen Shaw QUALIFIED
James S InouyeGermanyAsiya Javayant PROPOSAL
Morrow K KuskoBrazilAmy Elsner NEW
Costa G MorascaIndiaBernardo Dominic NEW
Clifford W DilliardCanadaAsiya Javayant UNQUALIFIED
Chavez R GauchoCanadaIvan Magalhaes NEW
Stacey M RimSpainStephen Shaw RENEWAL
Greenwood L ChuiSpainIvan Magalhaes QUALIFIED
Claire B OldroydRussiaIvan Magalhaes NEGOTIATION
Aruna T GlickGermanyOnyama Limba QUALIFIED
Alejandro A ButtJapanAsiya Javayant NEW
Clifford X IturbideRussiaOnyama Limba NEGOTIATION
Morrow H RulapaughBrazilXuxue Feng UNQUALIFIED
Mayumi A MaletArgentinaElwin Sharvill QUALIFIED
Faith X DoeRussiaBernardo Dominic QUALIFIED
Deepesh I CampainJapanIvan Magalhaes UNQUALIFIED
Misaki O GlickUnited KingdomIvan Magalhaes PROPOSAL
Antonio M OldroydUnited KingdomIoni Bowcher NEGOTIATION
Octavia H AlbaresItalyStephen Shaw NEW
Izzy L SaylorsGermanyOnyama Limba QUALIFIED
Jennifer X BowleyArgentinaIoni Bowcher RENEWAL
Aruna T WieserJapanXuxue Feng QUALIFIED
Izzy M AmigonBrazilBernardo Dominic PROPOSAL
Nicolas W MaletArgentinaOnyama Limba RENEWAL
Isabel E MorascaAustraliaBernardo Dominic NEGOTIATION
Isabel D RimGermanyBernardo Dominic PROPOSAL
Francesco S GillianRussiaAsiya Javayant PROPOSAL
Claire J DoeRussiaIvan Magalhaes UNQUALIFIED
Salvatore O WhobreyJapanAmy Elsner NEGOTIATION
Faith A RoysterSpainIoni Bowcher NEW
Jeanfrancois X NickaItalyOnyama Limba UNQUALIFIED
Deepesh I BriddickJapanAsiya Javayant NEW
Jones Q SaylorsGermanyIoni Bowcher PROPOSAL
Misaki Z MorascaItalyIoni Bowcher QUALIFIED
Cody J NestleAustraliaIoni Bowcher UNQUALIFIED
Murillo L PoquetteSpainIvan Magalhaes PROPOSAL
Julie D WhobreyBrazilIoni Bowcher PROPOSAL
David D ShinkoCanadaBernardo Dominic NEW
Isabel I DilliardArgentinaAmy Elsner RENEWAL
Izzy A RulapaughGermanyBernardo Dominic PROPOSAL
Greenwood R CaldareraIndiaElwin Sharvill NEGOTIATION
Maisha J DarakjyAustraliaAmy Elsner RENEWAL
Leon D VocelkaItalyStephen Shaw PROPOSAL
Kaitlin D GlickCanadaAnna Fali NEGOTIATION
Adams D StockhamRussiaAnna Fali UNQUALIFIED
Jefferson L GarufiAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois D PoquetteSpainIvan Magalhaes NEW
Jefferson C ShinkoIndiaBernardo Dominic QUALIFIED
Faith F AmigonSpainAsiya Javayant RENEWAL
Jefferson D BriddickItalyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aruna A StockhamGermanyOnyama Limba QUALIFIED
David W MarrierSpainIoni Bowcher UNQUALIFIED
Smith J GlickUnited KingdomElwin Sharvill NEGOTIATION
Leja R GlickArgentinaIoni Bowcher PROPOSAL
Leja N GillianAustraliaElwin Sharvill PROPOSAL
James I SlusarskiFranceOnyama Limba NEGOTIATION
Deepesh D MaletBrazilAnna Fali NEGOTIATION
Mujtaba S GlickFranceAmy Elsner NEGOTIATION
Deepesh D GauchoAustraliaOnyama Limba PROPOSAL
Isabel K GarufiSpainStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy Z FlosiJapan2025-08-16Printing Dimensions RENEWAL12Elwin Sharvill
1001Ivar Q InouyeItaly2025-08-03Morlong Associates RENEWAL61Ioni Bowcher
1002Jennifer M MaletRussia2025-08-07Rousseaux, Michael Esq NEGOTIATION90Anna Fali
1003Izzy D KolmetzSpain2025-08-07Truhlar And Truhlar Attys NEGOTIATION25Anna Fali
1004Costa G FerenczIndia2025-08-06Chapman, Ross E Esq NEGOTIATION72Ivan Magalhaes
1005Morrow J ShinkoJapan2025-08-07Feltz Printing Service QUALIFIED66Asiya Javayant
1006Isabel P SergiJapan2025-08-08Truhlar And Truhlar Attys UNQUALIFIED51Xuxue Feng
1007Johnson E SchemmerRussia2025-08-06Chanay, Jeffrey A Esq UNQUALIFIED46Amy Elsner
1008Wickens E SchemmerAustralia2025-08-20Printing Dimensions PROPOSAL28Asiya Javayant
1009Claire I BologniaUnited Kingdom2025-08-24Feltz Printing Service QUALIFIED21Onyama Limba
1010Sinclair E SergiArgentina2025-08-26King, Christopher A Esq NEGOTIATION54Bernardo Dominic
1011Aruna G GarufiGermany2025-08-12Feiner Bros QUALIFIED22Stephen Shaw
1012Jeanfrancois T InouyeRussia2025-08-11Benton, John B Jr UNQUALIFIED97Ivan Magalhaes
1013Aruna K MaletSpain2025-08-25Truhlar And Truhlar Attys QUALIFIED23Xuxue Feng
1014Adams O WhobreyCanada2025-08-14Rousseaux, Michael Esq QUALIFIED82Xuxue Feng
1015Mayumi P FigeroaBrazil2025-08-23Chapman, Ross E Esq QUALIFIED80Bernardo Dominic
1016Johnson C DoeUnited Kingdom2025-08-17Commercial Press PROPOSAL3Ivan Magalhaes
1017Juan X FollerBrazil2025-07-28Rangoni Of Florence UNQUALIFIED14Amy Elsner
1018Faith X VenereCanada2025-08-09Truhlar And Truhlar Attys PROPOSAL96Onyama Limba
1019Ricardo V FlosiItaly2025-08-03Printing Dimensions NEW49Asiya Javayant
1020Leja K WhobreyJapan2025-08-05Rangoni Of Florence PROPOSAL56Amy Elsner
1021Antonio D OldroydCanada2025-08-13Dorl, James J Esq UNQUALIFIED26Amy Elsner
1022Octavia G CampainIndia2025-07-30Chemel, James L Cpa NEGOTIATION1Asiya Javayant
1023Leon B DilliardUnited Kingdom2025-08-16Rangoni Of Florence UNQUALIFIED57Stephen Shaw
1024Morrow E DoeJapan2025-08-20Commercial Press RENEWAL77Anna Fali
1025Clifford G IturbideGermany2025-07-30Benton, John B Jr PROPOSAL46Amy Elsner
1026Morrow Z TollnerAustralia2025-08-17Printing Dimensions UNQUALIFIED22Asiya Javayant
1027Maria O FlosiIndia2025-07-30Benton, John B Jr NEW88Elwin Sharvill
1028Mayumi E PoquetteUnited Kingdom2025-08-25Truhlar And Truhlar Attys RENEWAL18Amy Elsner
1029Aruna D PoquetteCanada2025-08-16Feltz Printing Service NEGOTIATION87Ivan Magalhaes
1030Kadeem C MaletFrance2025-08-18Rousseaux, Michael Esq NEGOTIATION2Asiya Javayant
1031Alejandro J StockhamItaly2025-08-07Benton, John B Jr RENEWAL35Elwin Sharvill
1032Izzy W SchemmerFrance2025-08-06Chapman, Ross E Esq RENEWAL22Elwin Sharvill
1033Octavia S ButtItaly2025-08-08Feltz Printing Service QUALIFIED27Bernardo Dominic
1034Wickens M AlbaresSpain2025-08-03Chemel, James L Cpa PROPOSAL84Bernardo Dominic
1035Maria I ChuiBrazil2025-08-22Chemel, James L Cpa PROPOSAL24Anna Fali
1036David N AmigonArgentina2025-08-19Commercial Press RENEWAL62Anna Fali
1037Salvatore A MorascaCanada2025-08-13Benton, John B Jr NEGOTIATION33Stephen Shaw
1038Greenwood P WhobreyArgentina2025-08-17Commercial Press NEW80Bernardo Dominic
1039Darci Z SchemmerIndia2025-08-03King, Christopher A Esq NEW81Amy Elsner
1040Cody R RutaArgentina2025-08-18Feiner Bros RENEWAL46Onyama Limba
1041Leon N BriddickFrance2025-08-06Dorl, James J Esq NEW4Elwin Sharvill
1042Faith Z MorascaArgentina2025-08-09Chanay, Jeffrey A Esq RENEWAL33Ivan Magalhaes
1043Maisha W AlbaresGermany2025-08-22Feltz Printing Service NEW69Amy Elsner
1044Ricardo O WhobreyUnited Kingdom2025-08-09Dorl, James J Esq QUALIFIED23Bernardo Dominic
1045Maria X VenereArgentina2025-08-20Truhlar And Truhlar Attys NEW72Ivan Magalhaes
1046Tony I OldroydIndia2025-08-09Buckley Miller Wright NEW2Xuxue Feng
1047Jefferson S RimFrance2025-08-12Dorl, James J Esq NEGOTIATION55Xuxue Feng
1048Alejandro R ChuiItaly2025-08-14Commercial Press QUALIFIED43Asiya Javayant
1049Rodrigues Y RulapaughUnited Kingdom2025-08-18King, Christopher A Esq NEGOTIATION35Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
James F DilliardIndiaBernardo Dominic PROPOSAL
Aika W RulapaughIndiaOnyama Limba PROPOSAL
Greenwood O AlbaresAustraliaElwin Sharvill NEGOTIATION
Antonio Y BologniaFranceXuxue Feng RENEWAL
Jefferson V AlbaresBrazilIvan Magalhaes NEGOTIATION
Octavia B AmigonFranceBernardo Dominic UNQUALIFIED
Jefferson P SchemmerSpainIvan Magalhaes RENEWAL
Kaitlin H BowleyRussiaAmy Elsner NEGOTIATION
Maisha K PaprockiItalyAsiya Javayant QUALIFIED
Izzy D MaletCanadaAmy Elsner UNQUALIFIED
Aditya Q AlbaresArgentinaElwin Sharvill PROPOSAL
Octavia I RimBrazilAnna Fali RENEWAL
Mayumi T MacleadSpainElwin Sharvill PROPOSAL
Nicolas I InouyeSpainStephen Shaw RENEWAL
Ivar T CaudyRussiaAsiya Javayant PROPOSAL
Arvin H RulapaughArgentinaIvan Magalhaes QUALIFIED
Smith C FollerAustraliaAnna Fali UNQUALIFIED
Izzy A DilliardItalyIoni Bowcher RENEWAL
Julie T AlbaresRussiaAnna Fali PROPOSAL
Sinclair D SergiSpainElwin Sharvill NEGOTIATION
Ashley J CaudyBrazilOnyama Limba QUALIFIED
Nicolas E OstroskyAustraliaAnna Fali NEGOTIATION
James U BriddickSpainIoni Bowcher QUALIFIED
Greenwood I DilliardFranceAmy Elsner RENEWAL
Ricardo K FigeroaUnited KingdomAsiya Javayant RENEWAL
Kadeem X PaprockiUnited KingdomIoni Bowcher NEW
Francesco Y ButtSpainAnna Fali NEGOTIATION
Darci F PerinFranceIoni Bowcher UNQUALIFIED
Jeanfrancois J InouyeRussiaXuxue Feng NEW
Tony T AlbaresCanadaIoni Bowcher PROPOSAL
Antonio J KuskoCanadaXuxue Feng NEW
Greenwood K BologniaJapanAsiya Javayant PROPOSAL
Wickens E MorascaItalyAsiya Javayant NEGOTIATION
Aruna B SergiIndiaOnyama Limba NEW
Cody N PaprockiCanadaOnyama Limba QUALIFIED
Stacey Y BologniaBrazilOnyama Limba PROPOSAL
Rodrigues I OldroydIndiaAmy Elsner RENEWAL
Kaitlin G GarufiBrazilBernardo Dominic UNQUALIFIED
Ashley I WieserFranceAsiya Javayant PROPOSAL
Deepesh A CaudyBrazilElwin Sharvill UNQUALIFIED
Jefferson I SergiArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois J FerenczJapanStephen Shaw RENEWAL
Munro M MorascaBrazilBernardo Dominic QUALIFIED
Antonio G KuskoBrazilIvan Magalhaes UNQUALIFIED
Johnson O MorascaIndiaStephen Shaw UNQUALIFIED
Jones Z FerenczBrazilElwin Sharvill NEGOTIATION
Isabel R MacleadArgentinaAsiya Javayant PROPOSAL
Julie Q OstroskyUnited KingdomXuxue Feng NEW
David Y ButtAustraliaAsiya Javayant NEGOTIATION
Leja Q FerenczIndiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Deepesh C Malet
Sinclair A Schemmer
Arvin C Shinko
James C Bolognia
Juan L Marrier
Alejandro E Maclead
Deepesh Q Nicka
Smith S Tollner
Silvio H Waycott
Costa Q Vocelka
Emily O Foller
Aika R Rim
Murillo N Butt
Alejandro A Paprocki
Murillo S Maclead
Rodrigues J Doe
Ashley L Malet
Octavia M Waycott
James I Stenseth
Kadeem D Wieser
Arvin X Royster
Isabel Y Gaucho
Darci D Amigon
Smith E Garufi
Deepesh G Caudy
Julie P Caldarera
Wickens R Albares
Cody F Stockham
Aditya K Figeroa
Jones B Glick
Costa K Rulapaugh
Aruna U Caudy
Mayumi P Slusarski
Juan S Iturbide
Silvio C Caudy
Nicolas U Wieser
Maisha O Slusarski
Alejandro X Chui
Misaki D Campain
David J Paprocki
Morrow D Nestle
Maria N Ferencz
Jennifer L Gaucho
Faith L Flosi
Darci C Glick
James W Butt
David A Darakjy
Rodrigues T Campain
Tony Y Iturbide
Mayumi M Royster
IdCountryDate
1000Italy2025-08-24
1001United Kingdom2025-08-06
1002Argentina2025-08-03
1003Italy2025-08-12
1004France2025-08-03
1005Japan2025-08-19
1006Brazil2025-08-07
1007Italy2025-08-26
1008Russia2025-07-30
1009France2025-08-12
1010Spain2025-08-15
1011Italy2025-08-21
1012Argentina2025-08-23
1013Japan2025-08-07
1014Spain2025-08-26
1015Brazil2025-08-06
1016Germany2025-08-12
1017Italy2025-08-10
1018Argentina2025-08-16
1019Spain2025-08-08
1020France2025-08-11
1021Spain2025-08-16
1022Italy2025-08-25
1023India2025-08-18
1024Japan2025-08-17
1025Germany2025-08-15
1026India2025-08-01
1027Spain2025-08-10
1028Australia2025-08-10
1029Argentina2025-07-31
1030Germany2025-08-09
1031France2025-07-28
1032Italy2025-07-29
1033Russia2025-07-31
1034Australia2025-08-19
1035France2025-08-19
1036Brazil2025-08-24
1037Australia2025-08-03
1038Argentina2025-08-15
1039France2025-08-09
1040France2025-08-14
1041Brazil2025-08-14
1042France2025-08-13
1043United Kingdom2025-07-31
1044Russia2025-08-05
1045Spain2025-08-19
1046Italy2025-07-29
1047Australia2025-08-17
1048Australia2025-08-17
1049Australia2025-08-05

On-Demand Data

NameIdCountryDate
Julie X Campain1000Spain2025-08-03
Mayumi D Sergi1001Spain2025-08-02
Sinclair C Bowley1002Italy2025-08-11
Kaitlin J Flosi1003United Kingdom2025-08-06
Aditya C Nestle1004Germany2025-08-15
Octavia J Butt1005Japan2025-08-21
Murillo O Bowley1006Germany2025-08-03
Arvin C Maclead1007Japan2025-08-22
Octavia W Nicka1008Germany2025-08-05
Nicolas I Inouye1009Brazil2025-08-01
Johnson M Poquette1010Spain2025-08-14
Emily Q Campain1011Brazil2025-08-25
Munro K Campain1012Japan2025-08-12
Smith G Stockham1013Australia2025-08-19
Aruna F Iturbide1014Italy2025-08-05
Leja Q Slusarski1015Germany2025-08-06
Smith Z Slusarski1016Germany2025-08-20
Arvin R Amigon1017Russia2025-08-05
Wickens E Nestle1018Germany2025-08-20
Arvin W Caudy1019Spain2025-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro G VocelkaCanadaIvan Magalhaes PROPOSAL
Emily D WieserItalyIvan Magalhaes PROPOSAL
David Y WaycottSpainAmy Elsner PROPOSAL
Ricardo K BriddickJapanXuxue Feng QUALIFIED
Johnson K GillianGermanyAmy Elsner PROPOSAL
Mayumi N CaudyItalyStephen Shaw NEGOTIATION
Octavia G PaprockiAustraliaAnna Fali UNQUALIFIED
Tony G IturbideGermanyAmy Elsner NEW
Adams I PerinGermanyOnyama Limba QUALIFIED
Misaki X WhobreyJapanElwin Sharvill PROPOSAL
Greenwood T ShinkoRussiaXuxue Feng PROPOSAL
Juan N BriddickJapanXuxue Feng RENEWAL
Jones Z SchemmerIndiaAsiya Javayant QUALIFIED
Aruna O InouyeUnited KingdomStephen Shaw QUALIFIED
Jefferson J GillianCanadaBernardo Dominic QUALIFIED
Rodrigues K CampainArgentinaBernardo Dominic QUALIFIED
Jeanfrancois S MaletBrazilBernardo Dominic NEW
Jones X DarakjyItalyOnyama Limba UNQUALIFIED
Aruna O OstroskyRussiaIvan Magalhaes QUALIFIED
Greenwood T MacleadIndiaBernardo Dominic UNQUALIFIED
Stacey Z VenereJapanAnna Fali PROPOSAL
Stacey E KuskoIndiaStephen Shaw RENEWAL
Julie J WhobreyRussiaAmy Elsner UNQUALIFIED
Faith D KuskoBrazilAsiya Javayant QUALIFIED
Ivar L OldroydCanadaXuxue Feng QUALIFIED
Mayumi M MorascaGermanyIoni Bowcher NEGOTIATION
Isabel J MorascaRussiaAsiya Javayant NEW
Sinclair O MaletCanadaXuxue Feng UNQUALIFIED
Clifford E KolmetzItalyIoni Bowcher UNQUALIFIED
Ricardo V ChuiUnited KingdomBernardo Dominic PROPOSAL
Julie I VocelkaItalyXuxue Feng RENEWAL
Maisha V VocelkaBrazilIvan Magalhaes NEW
Jeanfrancois S GillianAustraliaElwin Sharvill QUALIFIED
Octavia U GauchoBrazilAmy Elsner NEGOTIATION
Kadeem G NickaBrazilBernardo Dominic NEW
Leja D MaletSpainElwin Sharvill UNQUALIFIED
Francesco W SlusarskiRussiaOnyama Limba PROPOSAL
Kaitlin O VocelkaRussiaIvan Magalhaes NEW
Misaki Q ShinkoArgentinaIoni Bowcher RENEWAL
Ashley X DoeSpainAsiya Javayant RENEWAL

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