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
Greenwood I ButtIndiaAnna Fali UNQUALIFIED
Alejandro X FerenczUnited KingdomOnyama Limba NEW
Jefferson T RulapaughRussiaXuxue Feng UNQUALIFIED
Costa O RutaUnited KingdomIvan Magalhaes QUALIFIED
Maria Z OldroydItalyAnna Fali NEGOTIATION
Maria Y SergiAustraliaIvan Magalhaes QUALIFIED
Silvio Z GarufiCanadaStephen Shaw NEGOTIATION
Mujtaba O VenereAustraliaBernardo Dominic RENEWAL
Jeanfrancois R FerenczUnited KingdomOnyama Limba RENEWAL
Salvatore I GillianGermanyAnna Fali PROPOSAL
Clifford U PerinGermanyXuxue Feng NEW
Misaki G ButtFranceBernardo Dominic PROPOSAL
Wickens F PerinFranceAnna Fali QUALIFIED
Ivar Q RoysterUnited KingdomStephen Shaw NEGOTIATION
Mujtaba K CampainJapanIvan Magalhaes PROPOSAL
Jennifer C CampainBrazilAmy Elsner RENEWAL
Cody A RimItalyXuxue Feng RENEWAL
Kaitlin Q SchemmerArgentinaAnna Fali QUALIFIED
Kaitlin E BologniaGermanyStephen Shaw RENEWAL
Mayumi D SergiGermanyStephen Shaw QUALIFIED
Aruna H GillianCanadaIvan Magalhaes UNQUALIFIED
Octavia C TollnerAustraliaIvan Magalhaes NEW
Kaitlin K CaldareraRussiaXuxue Feng UNQUALIFIED
Jefferson Y MarrierArgentinaAnna Fali NEW
Smith I MaletRussiaIvan Magalhaes NEGOTIATION
Smith T MarrierBrazilAmy Elsner NEW
Francesco B FollerArgentinaIvan Magalhaes UNQUALIFIED
Leon G StensethCanadaAsiya Javayant RENEWAL
Izzy W ButtAustraliaElwin Sharvill UNQUALIFIED
Smith Z WhobreyFranceElwin Sharvill NEGOTIATION
Faith F RoysterSpainBernardo Dominic RENEWAL
Mayumi O MacleadCanadaXuxue Feng NEGOTIATION
Stacey Z InouyeUnited KingdomBernardo Dominic PROPOSAL
Wickens D RoysterSpainOnyama Limba RENEWAL
Cody C PoquetteArgentinaIvan Magalhaes PROPOSAL
Emily Q CampainGermanyIvan Magalhaes NEW
Costa P AlbaresCanadaOnyama Limba NEGOTIATION
Clifford E WhobreySpainElwin Sharvill RENEWAL
Wickens S ShinkoArgentinaStephen Shaw PROPOSAL
Nicolas J FerenczBrazilAsiya Javayant RENEWAL
Clifford R BowleyJapanBernardo Dominic PROPOSAL
Leon Q RimUnited KingdomAnna Fali QUALIFIED
James K GillianBrazilIvan Magalhaes NEGOTIATION
Izzy A AlbaresBrazilElwin Sharvill NEGOTIATION
Stacey E WaycottAustraliaXuxue Feng QUALIFIED
Silvio J CaldareraJapanXuxue Feng NEGOTIATION
Salvatore W TollnerItalyAnna Fali NEW
Darci E IturbideFranceAnna Fali PROPOSAL
Claire R RoysterArgentinaAmy Elsner PROPOSAL
Maria R FlosiUnited KingdomIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith L ChuiJapanAnna Fali PROPOSAL
Misaki Y PoquetteUnited KingdomOnyama Limba NEGOTIATION
Adams Y OldroydBrazilAmy Elsner NEGOTIATION
Julie I RoysterJapanElwin Sharvill NEW
Aditya X NickaArgentinaOnyama Limba PROPOSAL
Murillo K InouyeBrazilIoni Bowcher NEW
Emily T RulapaughItalyOnyama Limba PROPOSAL
Ivar G KuskoBrazilBernardo Dominic NEW
Munro I DoeArgentinaIvan Magalhaes UNQUALIFIED
Arvin N RutaRussiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh Y WieserCanada2025-08-11Commercial Press PROPOSAL75Amy Elsner
1001Maria Y StockhamCanada2025-08-20King, Christopher A Esq NEGOTIATION72Onyama Limba
1002David A FollerFrance2025-08-10Rousseaux, Michael Esq RENEWAL89Asiya Javayant
1003Aruna O BologniaFrance2025-08-13King, Christopher A Esq QUALIFIED37Elwin Sharvill
1004Cody R WaycottBrazil2025-07-31Feiner Bros RENEWAL67Anna Fali
1005Adams O ChuiGermany2025-08-09Rousseaux, Michael Esq UNQUALIFIED94Onyama Limba
1006Leon E BowleySpain2025-08-06Chemel, James L Cpa QUALIFIED16Amy Elsner
1007Octavia L CampainUnited Kingdom2025-08-22Chanay, Jeffrey A Esq RENEWAL48Bernardo Dominic
1008Maria W RutaIndia2025-08-01Commercial Press UNQUALIFIED43Asiya Javayant
1009Faith L SergiRussia2025-08-28Chapman, Ross E Esq NEGOTIATION84Anna Fali
1010Morrow F WhobreyBrazil2025-08-04Rousseaux, Michael Esq UNQUALIFIED59Asiya Javayant
1011Jones M SchemmerSpain2025-08-28Feltz Printing Service UNQUALIFIED96Amy Elsner
1012Aika Y InouyeBrazil2025-08-19Feltz Printing Service NEW56Ivan Magalhaes
1013Stacey Q DilliardUnited Kingdom2025-08-01Rousseaux, Michael Esq UNQUALIFIED22Amy Elsner
1014Greenwood D MarrierArgentina2025-08-24Chanay, Jeffrey A Esq NEGOTIATION98Bernardo Dominic
1015Rodrigues Y VocelkaIndia2025-08-23Benton, John B Jr RENEWAL76Anna Fali
1016Aika J MaletSpain2025-08-11Printing Dimensions QUALIFIED4Anna Fali
1017Ricardo Z KuskoArgentina2025-07-30Buckley Miller Wright RENEWAL51Elwin Sharvill
1018Mayumi Y ButtFrance2025-08-13Rangoni Of Florence RENEWAL37Onyama Limba
1019Emily I RulapaughIndia2025-08-16Chanay, Jeffrey A Esq UNQUALIFIED39Bernardo Dominic
1020Jefferson Y MaletGermany2025-08-20Buckley Miller Wright PROPOSAL23Elwin Sharvill
1021Mayumi J OstroskyUnited Kingdom2025-08-12Morlong Associates QUALIFIED23Ioni Bowcher
1022Mayumi N GarufiJapan2025-08-12Rousseaux, Michael Esq QUALIFIED30Ivan Magalhaes
1023Maria Y NickaGermany2025-08-22Feltz Printing Service QUALIFIED54Xuxue Feng
1024Jones U GauchoRussia2025-08-10Rousseaux, Michael Esq NEGOTIATION84Xuxue Feng
1025Adams I OldroydJapan2025-07-30Truhlar And Truhlar Attys QUALIFIED64Xuxue Feng
1026Aditya F SlusarskiRussia2025-08-14Rousseaux, Michael Esq PROPOSAL49Ioni Bowcher
1027Deepesh Q CaudyAustralia2025-08-12Rangoni Of Florence NEGOTIATION19Amy Elsner
1028Faith Z RoysterUnited Kingdom2025-08-03Truhlar And Truhlar Attys RENEWAL23Xuxue Feng
1029Ricardo B PaprockiItaly2025-08-28Morlong Associates UNQUALIFIED42Elwin Sharvill
1030Mayumi E RoysterIndia2025-08-26Feltz Printing Service UNQUALIFIED41Onyama Limba
1031Mujtaba T CampainRussia2025-08-03Rousseaux, Michael Esq PROPOSAL9Elwin Sharvill
1032Deepesh S GarufiGermany2025-08-21Commercial Press NEGOTIATION55Elwin Sharvill
1033Claire N CaldareraBrazil2025-08-21Printing Dimensions NEW70Bernardo Dominic
1034David I SchemmerIndia2025-08-14Feltz Printing Service NEW24Anna Fali
1035Jennifer M PaprockiIndia2025-08-25Benton, John B Jr NEGOTIATION89Stephen Shaw
1036Leon R MaletItaly2025-08-14Rousseaux, Michael Esq NEGOTIATION32Ivan Magalhaes
1037Julie W DarakjyBrazil2025-08-02Rousseaux, Michael Esq NEW57Onyama Limba
1038Nicolas I IturbideItaly2025-08-06Benton, John B Jr QUALIFIED85Xuxue Feng
1039Stacey H WaycottItaly2025-08-27Commercial Press UNQUALIFIED89Bernardo Dominic
1040Jeanfrancois T OstroskyArgentina2025-08-17Chemel, James L Cpa PROPOSAL56Amy Elsner
1041Tony Z BriddickFrance2025-08-04Commercial Press QUALIFIED4Ioni Bowcher
1042Octavia Y FigeroaFrance2025-08-18Commercial Press PROPOSAL70Onyama Limba
1043Arvin B FigeroaRussia2025-08-07Buckley Miller Wright UNQUALIFIED67Stephen Shaw
1044Juan X CampainIndia2025-08-15Buckley Miller Wright NEGOTIATION4Stephen Shaw
1045Jeanfrancois I FlosiUnited Kingdom2025-08-20Chanay, Jeffrey A Esq NEW16Ioni Bowcher
1046Deepesh E WhobreyCanada2025-07-31Buckley Miller Wright RENEWAL5Onyama Limba
1047Jefferson Z FollerIndia2025-08-17Feiner Bros UNQUALIFIED94Amy Elsner
1048Rodrigues W ChuiSpain2025-08-08Feiner Bros UNQUALIFIED0Stephen Shaw
1049Octavia C KolmetzArgentina2025-08-13Buckley Miller Wright PROPOSAL93Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Wickens R MaletItalyElwin Sharvill UNQUALIFIED
Chavez M NickaItalyStephen Shaw NEW
Aika Y DilliardArgentinaAnna Fali NEW
Johnson T AmigonFranceAmy Elsner PROPOSAL
Octavia Z PerinArgentinaXuxue Feng NEGOTIATION
Leon Q CaldareraBrazilIvan Magalhaes RENEWAL
Arvin N KolmetzArgentinaElwin Sharvill NEGOTIATION
Rodrigues B KolmetzUnited KingdomOnyama Limba RENEWAL
Smith V CaldareraUnited KingdomAnna Fali NEGOTIATION
Ricardo A CaldareraCanadaAnna Fali QUALIFIED
Wickens C FerenczAustraliaXuxue Feng QUALIFIED
Faith G DoeAustraliaBernardo Dominic RENEWAL
Alejandro C DarakjyItalyAnna Fali RENEWAL
Isabel I GarufiSpainIoni Bowcher NEGOTIATION
Leja N DoeGermanyAsiya Javayant NEW
Sinclair K AlbaresJapanBernardo Dominic QUALIFIED
Maisha T SaylorsRussiaAmy Elsner NEGOTIATION
Sinclair T BriddickAustraliaStephen Shaw NEW
Kadeem V FlosiBrazilAmy Elsner PROPOSAL
Octavia P ChuiCanadaAnna Fali NEGOTIATION
Juan G WieserAustraliaStephen Shaw NEGOTIATION
Kadeem K SaylorsJapanAmy Elsner UNQUALIFIED
Izzy E BowleyFranceBernardo Dominic PROPOSAL
Izzy C GarufiIndiaIoni Bowcher UNQUALIFIED
Deepesh W RoysterGermanyIvan Magalhaes NEGOTIATION
James E CaudyJapanBernardo Dominic UNQUALIFIED
Leja J KolmetzIndiaAmy Elsner UNQUALIFIED
Maria T CampainIndiaStephen Shaw NEGOTIATION
Jones U AlbaresJapanXuxue Feng NEGOTIATION
Isabel M ChuiUnited KingdomAnna Fali UNQUALIFIED
Ivar N NestleBrazilOnyama Limba NEGOTIATION
Ashley W IturbideCanadaIvan Magalhaes UNQUALIFIED
Claire M BriddickJapanIoni Bowcher RENEWAL
Jones X RoysterJapanIvan Magalhaes NEGOTIATION
Clifford L StensethRussiaAnna Fali RENEWAL
Aika K NickaJapanIoni Bowcher UNQUALIFIED
Costa O SaylorsIndiaIvan Magalhaes NEGOTIATION
Emily A PaprockiArgentinaXuxue Feng NEW
Kaitlin F WaycottCanadaAsiya Javayant NEW
Murillo K KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba Q RimUnited KingdomBernardo Dominic NEW
Aditya K SaylorsCanadaElwin Sharvill PROPOSAL
Salvatore Q AmigonCanadaBernardo Dominic NEW
Sinclair L MaletBrazilElwin Sharvill QUALIFIED
Leja A RutaCanadaAmy Elsner NEW
Deepesh Y DilliardIndiaAmy Elsner UNQUALIFIED
Munro Z ShinkoIndiaStephen Shaw QUALIFIED
Mujtaba M BriddickCanadaOnyama Limba NEW
Maria B SaylorsIndiaAsiya Javayant PROPOSAL
Ashley W FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Maisha J Marrier
Tony U Garufi
Jones Q Vocelka
Kaitlin T Nicka
Jennifer G Morasca
Alejandro R Nestle
Maria M Ostrosky
Stacey R Tollner
David E Amigon
Jefferson X Flosi
Isabel U Slusarski
Mayumi S Dilliard
Nicolas G Wieser
Alejandro F Bowley
Leon T Briddick
Darci G Poquette
Faith Q Kusko
Claire O Royster
Leja G Glick
Sinclair I Dilliard
Juan Y Gillian
Izzy D Dilliard
Francesco F Dilliard
Aditya D Malet
Alejandro D Gillian
Silvio F Malet
Leon J Slusarski
Cody O Wieser
Johnson X Oldroyd
Jones A Vocelka
Ashley R Poquette
James B Nestle
Tony G Poquette
Maria P Slusarski
Tony A Maclead
Jefferson V Vocelka
Clifford U Malet
Wickens C Kolmetz
Darci H Shinko
Maisha Z Gaucho
Maria O Amigon
Maria F Bowley
Ashley B Malet
Isabel D Whobrey
Cody H Albares
Mayumi S Flosi
Johnson L Ostrosky
Tony M Inouye
Izzy U Garufi
Ivar V Bowley
IdCountryDate
1000Brazil2025-08-24
1001Russia2025-08-23
1002Brazil2025-08-01
1003Australia2025-08-25
1004Germany2025-07-31
1005Italy2025-08-23
1006Australia2025-08-27
1007United Kingdom2025-08-17
1008Australia2025-08-17
1009France2025-08-28
1010Australia2025-08-18
1011Japan2025-08-17
1012Canada2025-08-01
1013Russia2025-08-09
1014Russia2025-07-31
1015Germany2025-08-06
1016France2025-08-15
1017Italy2025-08-21
1018Spain2025-08-02
1019Canada2025-08-07
1020Russia2025-08-17
1021Germany2025-08-04
1022Canada2025-08-06
1023Japan2025-08-15
1024France2025-08-28
1025Russia2025-08-05
1026United Kingdom2025-08-17
1027Russia2025-08-22
1028France2025-08-22
1029Australia2025-07-30
1030India2025-08-01
1031Italy2025-08-21
1032Brazil2025-08-07
1033Japan2025-08-14
1034Russia2025-08-17
1035India2025-08-02
1036Canada2025-08-06
1037Australia2025-08-02
1038Brazil2025-07-31
1039United Kingdom2025-08-06
1040Russia2025-08-07
1041Russia2025-08-26
1042Australia2025-08-16
1043India2025-08-21
1044Germany2025-08-19
1045Brazil2025-08-06
1046Argentina2025-08-14
1047France2025-08-15
1048United Kingdom2025-08-03
1049Japan2025-08-16

On-Demand Data

NameIdCountryDate
Morrow Z Gaucho1000France2025-08-17
Maria E Flosi1001India2025-08-22
James A Bowley1002Japan2025-08-19
Maria N Tollner1003Russia2025-08-11
Francesco V Whobrey1004Australia2025-08-18
Chavez U Schemmer1005Russia2025-08-01
Arvin T Iturbide1006Canada2025-08-10
Aruna M Gillian1007Russia2025-08-23
Mujtaba Z Doe1008United Kingdom2025-07-31
Sinclair G Marrier1009Russia2025-08-24
Kaitlin X Schemmer1010Italy2025-08-25
Cody Q Nestle1011Germany2025-08-16
Jones K Garufi1012Australia2025-08-26
Cody R Royster1013Russia2025-08-26
Maria A Glick1014Japan2025-08-22
Aruna N Doe1015United Kingdom2025-08-21
Chavez X Rulapaugh1016Russia2025-08-20
Isabel D Malet1017Italy2025-08-23
Silvio K Stockham1018Russia2025-08-03
Kaitlin R Stockham1019Spain2025-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow O ShinkoUnited KingdomAnna Fali UNQUALIFIED
Aika Q DoeJapanAsiya Javayant QUALIFIED
Darci N OstroskyBrazilBernardo Dominic PROPOSAL
Leon M WaycottUnited KingdomXuxue Feng NEW
Emily G NestleItalyElwin Sharvill RENEWAL
Rodrigues C OldroydCanadaStephen Shaw UNQUALIFIED
Silvio Y MarrierIndiaElwin Sharvill RENEWAL
Adams H KuskoCanadaAmy Elsner UNQUALIFIED
Darci J NickaJapanIvan Magalhaes PROPOSAL
Johnson W GillianAustraliaBernardo Dominic PROPOSAL
Cody M MarrierAustraliaAmy Elsner NEW
Smith Q WaycottSpainIoni Bowcher PROPOSAL
Maisha E DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin K CaldareraArgentinaElwin Sharvill RENEWAL
Adams T RoysterItalyElwin Sharvill PROPOSAL
David M FlosiSpainIoni Bowcher RENEWAL
Darci Z OstroskyArgentinaIvan Magalhaes PROPOSAL
Mujtaba J WieserSpainAnna Fali PROPOSAL
Morrow S TollnerBrazilElwin Sharvill QUALIFIED
Francesco G FigeroaSpainIvan Magalhaes NEGOTIATION
Julie T NestleItalyIvan Magalhaes QUALIFIED
Sinclair R StockhamSpainXuxue Feng QUALIFIED
Leon V CampainFranceElwin Sharvill PROPOSAL
Emily U BriddickBrazilOnyama Limba NEW
Francesco V FlosiSpainAsiya Javayant NEW
Darci O RimAustraliaIoni Bowcher NEGOTIATION
Aruna V CampainItalyIvan Magalhaes NEGOTIATION
Deepesh O BologniaFranceOnyama Limba PROPOSAL
Jones P SchemmerBrazilAsiya Javayant QUALIFIED
Jones J IturbideCanadaElwin Sharvill UNQUALIFIED
Francesco M AmigonBrazilStephen Shaw PROPOSAL
Rodrigues P BowleyUnited KingdomStephen Shaw PROPOSAL
Morrow C MaletArgentinaAmy Elsner QUALIFIED
Stacey R GarufiCanadaElwin Sharvill QUALIFIED
Maisha F DarakjyArgentinaAmy Elsner QUALIFIED
Aruna Q MacleadRussiaAsiya Javayant QUALIFIED
Leon K RutaAustraliaAmy Elsner NEGOTIATION
Maisha Z GlickBrazilOnyama Limba NEGOTIATION
Nicolas H AlbaresItalyXuxue Feng PROPOSAL
Faith S BowleyArgentinaAsiya Javayant 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>