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
Emily I CampainSpainIvan Magalhaes UNQUALIFIED
Leon V ChuiItalyBernardo Dominic NEW
Julie V StensethGermanyElwin Sharvill PROPOSAL
Jennifer X ButtRussiaBernardo Dominic QUALIFIED
Arvin T RimBrazilIoni Bowcher NEW
Aditya T SergiAustraliaStephen Shaw PROPOSAL
Alejandro G SlusarskiSpainXuxue Feng UNQUALIFIED
Aika Q ButtFranceIoni Bowcher QUALIFIED
Misaki Y SergiBrazilAmy Elsner UNQUALIFIED
Francesco I BologniaBrazilOnyama Limba NEGOTIATION
Aika H MaletUnited KingdomIoni Bowcher UNQUALIFIED
Wickens A CaldareraGermanyElwin Sharvill NEGOTIATION
Costa K MaletArgentinaStephen Shaw NEW
Jefferson T RulapaughAustraliaAmy Elsner NEGOTIATION
Isabel I FerenczSpainIvan Magalhaes NEW
James W RoysterIndiaStephen Shaw NEGOTIATION
Costa F FollerSpainIoni Bowcher NEGOTIATION
Jeanfrancois B MarrierItalyIoni Bowcher PROPOSAL
Jefferson Z RutaGermanyXuxue Feng UNQUALIFIED
Chavez X BologniaFranceElwin Sharvill PROPOSAL
Jones E DoeGermanyElwin Sharvill UNQUALIFIED
Jefferson E WieserGermanyOnyama Limba RENEWAL
Misaki L OstroskySpainAnna Fali UNQUALIFIED
Misaki X PaprockiGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois G GlickBrazilXuxue Feng NEGOTIATION
Aika U PerinAustraliaAmy Elsner NEGOTIATION
Salvatore W SlusarskiJapanOnyama Limba UNQUALIFIED
Mujtaba Q RulapaughAustraliaAnna Fali UNQUALIFIED
David O NickaCanadaAsiya Javayant RENEWAL
Tony Q WaycottGermanyAsiya Javayant NEGOTIATION
Leja S SchemmerBrazilBernardo Dominic UNQUALIFIED
Jones J PerinItalyXuxue Feng NEGOTIATION
Silvio W SlusarskiGermanyIvan Magalhaes NEGOTIATION
Emily B ShinkoJapanAsiya Javayant QUALIFIED
Rodrigues K OstroskySpainAnna Fali UNQUALIFIED
Aditya B MorascaJapanXuxue Feng RENEWAL
Stacey A PoquetteJapanXuxue Feng NEW
Julie P AmigonFranceIoni Bowcher NEGOTIATION
Jennifer L RimBrazilBernardo Dominic RENEWAL
Cody D FigeroaArgentinaAsiya Javayant PROPOSAL
Isabel E SlusarskiCanadaElwin Sharvill QUALIFIED
Arvin Y StockhamAustraliaStephen Shaw NEGOTIATION
Misaki D VenereBrazilIoni Bowcher NEW
Kadeem B DoeRussiaXuxue Feng UNQUALIFIED
Costa E SergiItalyElwin Sharvill NEW
Izzy I AmigonBrazilIvan Magalhaes NEW
Jones F RimBrazilAnna Fali UNQUALIFIED
Wickens L SergiSpainBernardo Dominic QUALIFIED
Stacey N NestleIndiaElwin Sharvill PROPOSAL
Murillo J VenereFranceIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin D MacleadUnited KingdomBernardo Dominic PROPOSAL
Kaitlin V FlosiArgentinaIoni Bowcher NEW
Leon E RoysterSpainIoni Bowcher UNQUALIFIED
Mayumi T OstroskyIndiaAsiya Javayant NEGOTIATION
Nicolas E ShinkoArgentinaOnyama Limba PROPOSAL
Silvio Q WieserJapanElwin Sharvill UNQUALIFIED
David J AlbaresRussiaAsiya Javayant NEGOTIATION
Stacey G MacleadRussiaOnyama Limba UNQUALIFIED
Murillo O NestleCanadaOnyama Limba NEGOTIATION
Emily J FlosiItalyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily S DarakjyUnited Kingdom2025-07-18Dorl, James J Esq NEGOTIATION9Onyama Limba
1001Alejandro E PaprockiAustralia2025-07-25Rangoni Of Florence NEW33Elwin Sharvill
1002Wickens S GillianSpain2025-08-07Commercial Press NEW1Onyama Limba
1003Jones L IturbideJapan2025-08-07Chapman, Ross E Esq QUALIFIED91Ioni Bowcher
1004Alejandro A GarufiAustralia2025-07-28Rangoni Of Florence PROPOSAL47Anna Fali
1005Jeanfrancois B BowleyRussia2025-07-16Commercial Press QUALIFIED14Ivan Magalhaes
1006James K CaldareraRussia2025-08-06Feiner Bros QUALIFIED26Asiya Javayant
1007Leja U GlickCanada2025-07-20Chemel, James L Cpa PROPOSAL80Xuxue Feng
1008Adams B NickaCanada2025-07-16Chanay, Jeffrey A Esq PROPOSAL31Onyama Limba
1009Julie F BriddickBrazil2025-08-04Morlong Associates NEW92Ivan Magalhaes
1010Jefferson R ShinkoCanada2025-08-07Chemel, James L Cpa RENEWAL92Amy Elsner
1011Alejandro Q PoquetteSpain2025-07-27Benton, John B Jr QUALIFIED97Onyama Limba
1012Munro I PaprockiItaly2025-08-05Dorl, James J Esq QUALIFIED15Onyama Limba
1013Aditya L PaprockiBrazil2025-07-21Truhlar And Truhlar Attys UNQUALIFIED2Stephen Shaw
1014James X PoquetteItaly2025-08-09Commercial Press NEGOTIATION2Asiya Javayant
1015Wickens B MacleadJapan2025-08-01King, Christopher A Esq RENEWAL45Xuxue Feng
1016Maria M CaldareraBrazil2025-07-30Commercial Press NEW46Stephen Shaw
1017Adams X MaletFrance2025-07-27King, Christopher A Esq NEW46Amy Elsner
1018Aika T GarufiCanada2025-08-02Printing Dimensions RENEWAL50Onyama Limba
1019Juan C IturbideBrazil2025-07-24Truhlar And Truhlar Attys NEGOTIATION73Stephen Shaw
1020Antonio Z WaycottSpain2025-07-26Rousseaux, Michael Esq PROPOSAL6Bernardo Dominic
1021Adams F PerinGermany2025-08-12Feiner Bros QUALIFIED85Stephen Shaw
1022Octavia R FerenczCanada2025-07-15Dorl, James J Esq QUALIFIED12Stephen Shaw
1023Izzy F CaudyUnited Kingdom2025-07-15Rangoni Of Florence RENEWAL55Ioni Bowcher
1024David Q FollerFrance2025-08-13Benton, John B Jr PROPOSAL6Ivan Magalhaes
1025Mujtaba Y IturbideGermany2025-08-05King, Christopher A Esq NEGOTIATION19Stephen Shaw
1026Juan S SergiIndia2025-07-19Feiner Bros UNQUALIFIED70Xuxue Feng
1027Jones H FerenczRussia2025-08-06Feiner Bros QUALIFIED36Ivan Magalhaes
1028Faith Y SlusarskiJapan2025-07-26Buckley Miller Wright PROPOSAL34Ivan Magalhaes
1029Kaitlin S SaylorsAustralia2025-07-26Truhlar And Truhlar Attys UNQUALIFIED80Elwin Sharvill
1030Nicolas V MaletRussia2025-07-21King, Christopher A Esq QUALIFIED9Stephen Shaw
1031Julie T WieserIndia2025-07-29Buckley Miller Wright PROPOSAL55Bernardo Dominic
1032Rodrigues U GauchoArgentina2025-07-23Feltz Printing Service UNQUALIFIED25Anna Fali
1033Ashley F SaylorsUnited Kingdom2025-08-05Chapman, Ross E Esq UNQUALIFIED68Xuxue Feng
1034Julie K FerenczJapan2025-08-08Rangoni Of Florence UNQUALIFIED75Stephen Shaw
1035Johnson J AmigonJapan2025-08-10Printing Dimensions RENEWAL42Anna Fali
1036Jennifer J ShinkoRussia2025-08-01Dorl, James J Esq PROPOSAL24Ivan Magalhaes
1037Nicolas S PoquetteArgentina2025-07-16Feiner Bros NEW57Elwin Sharvill
1038James V CampainUnited Kingdom2025-07-19King, Christopher A Esq NEGOTIATION31Onyama Limba
1039Ricardo R WhobreyCanada2025-07-20Chapman, Ross E Esq RENEWAL52Elwin Sharvill
1040Adams L RutaGermany2025-08-05Truhlar And Truhlar Attys NEGOTIATION49Elwin Sharvill
1041Greenwood Q DilliardIndia2025-08-01Benton, John B Jr QUALIFIED48Amy Elsner
1042Johnson R TollnerBrazil2025-08-09Rangoni Of Florence NEGOTIATION68Stephen Shaw
1043Francesco J RoysterRussia2025-07-19Truhlar And Truhlar Attys QUALIFIED65Onyama Limba
1044Ivar B MarrierJapan2025-08-08Benton, John B Jr UNQUALIFIED97Ivan Magalhaes
1045Claire O GauchoIndia2025-08-04Chemel, James L Cpa RENEWAL34Ivan Magalhaes
1046Deepesh S InouyeSpain2025-08-12Morlong Associates UNQUALIFIED87Ivan Magalhaes
1047Nicolas M KuskoSpain2025-07-29Rousseaux, Michael Esq NEGOTIATION58Bernardo Dominic
1048Nicolas L CampainBrazil2025-07-26Rousseaux, Michael Esq RENEWAL79Ioni Bowcher
1049Jennifer A FigeroaGermany2025-08-07Printing Dimensions QUALIFIED17Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois J GillianJapanAnna Fali NEW
Rodrigues I SchemmerRussiaIvan Magalhaes QUALIFIED
Greenwood M BologniaItalyAmy Elsner NEGOTIATION
Darci P IturbideRussiaStephen Shaw UNQUALIFIED
Kadeem B FerenczRussiaOnyama Limba RENEWAL
Izzy R RutaArgentinaAnna Fali NEGOTIATION
Emily U FlosiBrazilAmy Elsner PROPOSAL
Misaki M PaprockiUnited KingdomAsiya Javayant RENEWAL
Rodrigues S PoquetteAustraliaXuxue Feng QUALIFIED
Maisha G WieserJapanAnna Fali NEW
Antonio W GauchoCanadaBernardo Dominic NEGOTIATION
Ivar I WaycottAustraliaIvan Magalhaes PROPOSAL
Johnson W PerinJapanBernardo Dominic NEGOTIATION
Faith R MaletAustraliaAsiya Javayant UNQUALIFIED
Mayumi A DarakjyUnited KingdomXuxue Feng RENEWAL
Claire U GlickAustraliaStephen Shaw RENEWAL
Francesco O OstroskyCanadaBernardo Dominic UNQUALIFIED
James P GillianSpainAmy Elsner RENEWAL
James L NestleGermanyXuxue Feng NEGOTIATION
Adams C CaldareraSpainBernardo Dominic UNQUALIFIED
Ricardo C RimJapanIoni Bowcher NEGOTIATION
Munro O MarrierAustraliaIvan Magalhaes NEGOTIATION
Mayumi T PerinCanadaElwin Sharvill QUALIFIED
Wickens F GlickGermanyOnyama Limba RENEWAL
Clifford D MarrierJapanStephen Shaw QUALIFIED
Arvin G StockhamItalyIoni Bowcher NEW
Alejandro J SaylorsArgentinaStephen Shaw PROPOSAL
Faith Y GarufiGermanyOnyama Limba QUALIFIED
Nicolas F PerinUnited KingdomAmy Elsner PROPOSAL
Nicolas P WhobreyUnited KingdomIoni Bowcher RENEWAL
Maisha G MorascaAustraliaXuxue Feng RENEWAL
Salvatore L OstroskyIndiaXuxue Feng PROPOSAL
Misaki Z FigeroaBrazilStephen Shaw UNQUALIFIED
Juan M MaletJapanStephen Shaw QUALIFIED
Munro Q BriddickBrazilElwin Sharvill UNQUALIFIED
Mayumi M MarrierUnited KingdomAnna Fali PROPOSAL
Leon E MarrierItalyAnna Fali RENEWAL
Wickens W FollerArgentinaAsiya Javayant QUALIFIED
Francesco L WieserAustraliaIvan Magalhaes NEW
Misaki Z StensethRussiaOnyama Limba NEW
Antonio D PaprockiArgentinaIoni Bowcher PROPOSAL
Johnson F NestleItalyOnyama Limba PROPOSAL
Wickens H GillianIndiaAnna Fali PROPOSAL
Costa D BowleyUnited KingdomOnyama Limba RENEWAL
Ashley S RulapaughCanadaXuxue Feng UNQUALIFIED
Misaki W SlusarskiItalyIvan Magalhaes PROPOSAL
Jefferson T IturbideJapanOnyama Limba NEW
Maisha W MaletBrazilIoni Bowcher PROPOSAL
Aruna D WhobreyArgentinaIoni Bowcher UNQUALIFIED
James N ButtItalyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Smith X Nicka
Greenwood E Garufi
Arvin C Iturbide
Faith H Rulapaugh
Octavia J Poquette
David T Iturbide
Jefferson U Darakjy
Nicolas V Inouye
Aika X Waycott
Kadeem M Campain
Silvio B Briddick
Julie B Stockham
Maria B Saylors
Clifford V Waycott
Aika H Marrier
Stacey U Vocelka
James Q Bolognia
Juan M Inouye
Jefferson Q Venere
David G Slusarski
Jefferson U Albares
Leja K Poquette
Nicolas Z Foller
Aika K Kusko
Sinclair P Bowley
Morrow U Marrier
Murillo V Garufi
Clifford I Iturbide
Misaki Z Vocelka
Morrow P Glick
Clifford X Albares
Jeanfrancois D Gillian
Leon F Bowley
Francesco U Ferencz
Deepesh L Butt
Francesco W Iturbide
Clifford Y Glick
Nicolas X Gillian
Francesco D Marrier
David D Malet
Sinclair O Stenseth
Misaki T Glick
Faith E Campain
Murillo E Figeroa
Mujtaba A Morasca
Costa Z Darakjy
Smith N Royster
Kadeem O Marrier
Jeanfrancois N Sergi
Greenwood U Sergi
IdCountryDate
1000Argentina2025-08-06
1001France2025-07-16
1002Germany2025-08-08
1003Argentina2025-08-04
1004Italy2025-08-02
1005Italy2025-07-27
1006United Kingdom2025-08-12
1007India2025-07-22
1008Russia2025-08-02
1009Spain2025-08-03
1010France2025-07-26
1011Italy2025-08-06
1012Russia2025-07-19
1013Spain2025-08-07
1014Italy2025-08-03
1015India2025-07-20
1016Russia2025-08-13
1017Russia2025-07-23
1018Brazil2025-08-08
1019Argentina2025-08-04
1020Spain2025-07-26
1021Russia2025-08-11
1022Italy2025-08-06
1023Canada2025-07-19
1024Russia2025-07-21
1025United Kingdom2025-07-19
1026Australia2025-07-15
1027Russia2025-07-19
1028Canada2025-07-24
1029France2025-07-27
1030Spain2025-07-31
1031France2025-08-03
1032Spain2025-08-08
1033Russia2025-07-23
1034United Kingdom2025-07-29
1035Argentina2025-07-21
1036Canada2025-07-19
1037Germany2025-07-25
1038Russia2025-08-12
1039Italy2025-07-30
1040Italy2025-08-09
1041France2025-08-05
1042Japan2025-08-10
1043Brazil2025-07-15
1044Australia2025-07-29
1045Spain2025-08-04
1046Brazil2025-07-16
1047Brazil2025-08-03
1048Australia2025-07-23
1049Brazil2025-07-26

On-Demand Data

NameIdCountryDate
Isabel P Iturbide1000Germany2025-07-28
Murillo P Ruta1001France2025-08-11
Francesco O Maclead1002Germany2025-07-15
Greenwood W Poquette1003Germany2025-07-31
Aruna H Rim1004Germany2025-08-12
Isabel F Butt1005India2025-07-26
Rodrigues A Nestle1006Germany2025-07-22
Murillo Q Wieser1007Japan2025-07-24
Kaitlin Z Flosi1008Argentina2025-07-15
Julie Y Bolognia1009Italy2025-08-03
Wickens F Wieser1010Canada2025-08-06
Julie Q Stockham1011Italy2025-07-30
Stacey V Flosi1012United Kingdom2025-08-12
James B Royster1013Russia2025-07-16
Leja I Paprocki1014Germany2025-08-08
Alejandro T Amigon1015Brazil2025-07-31
Costa S Morasca1016Argentina2025-08-07
Aruna K Venere1017Spain2025-08-09
Maria X Inouye1018Argentina2025-07-27
Chavez N Ruta1019Australia2025-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Y FigeroaIndiaElwin Sharvill RENEWAL
Izzy Z SergiCanadaAmy Elsner QUALIFIED
David D OstroskyBrazilIvan Magalhaes RENEWAL
Jones X NickaIndiaAnna Fali QUALIFIED
James F PerinCanadaOnyama Limba NEGOTIATION
Cody M MorascaBrazilAmy Elsner RENEWAL
Leon A DoeItalyIvan Magalhaes NEGOTIATION
Jennifer U MarrierRussiaAmy Elsner NEW
Isabel L RoysterJapanBernardo Dominic UNQUALIFIED
Ashley N TollnerAustraliaBernardo Dominic NEW
Tony O PoquetteUnited KingdomOnyama Limba RENEWAL
Ivar C VenereItalyBernardo Dominic NEGOTIATION
Rodrigues O InouyeFranceElwin Sharvill PROPOSAL
Juan S OldroydArgentinaAnna Fali NEW
Jefferson M BriddickRussiaXuxue Feng NEW
Leon Q WhobreyBrazilAnna Fali UNQUALIFIED
Ricardo Y TollnerSpainAsiya Javayant NEW
Maisha C WieserItalyAmy Elsner RENEWAL
Octavia M CampainUnited KingdomAmy Elsner NEW
Jefferson V SlusarskiCanadaXuxue Feng PROPOSAL
Leja O MaletJapanAnna Fali UNQUALIFIED
Clifford O BowleyIndiaStephen Shaw NEW
Jones L MorascaCanadaAnna Fali PROPOSAL
Deepesh V AmigonArgentinaIvan Magalhaes UNQUALIFIED
Francesco R RoysterItalyStephen Shaw NEGOTIATION
Chavez Q GauchoItalyIoni Bowcher NEGOTIATION
Mayumi C DoeBrazilIvan Magalhaes QUALIFIED
Emily I InouyeItalyBernardo Dominic NEGOTIATION
Clifford P RimArgentinaElwin Sharvill NEGOTIATION
Morrow H VenereArgentinaOnyama Limba NEGOTIATION
Ricardo U KolmetzJapanIvan Magalhaes NEW
Leja Y SlusarskiArgentinaIoni Bowcher UNQUALIFIED
Salvatore A ButtFranceAsiya Javayant UNQUALIFIED
Salvatore K RoysterAustraliaBernardo Dominic RENEWAL
Jennifer Y DoeUnited KingdomXuxue Feng PROPOSAL
Morrow J PoquetteArgentinaAnna Fali NEW
Silvio R WhobreyGermanyStephen Shaw RENEWAL
Cody F BriddickRussiaElwin Sharvill NEGOTIATION
Juan H CampainAustraliaAsiya Javayant NEW
Juan U GlickAustraliaOnyama Limba PROPOSAL

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