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
Silvio C MarrierGermanyAsiya Javayant UNQUALIFIED
Isabel T ChuiBrazilXuxue Feng RENEWAL
Mujtaba E BologniaCanadaIoni Bowcher PROPOSAL
Chavez B MaletSpainStephen Shaw NEW
Aditya C MacleadGermanyXuxue Feng QUALIFIED
Aruna S AlbaresAustraliaOnyama Limba UNQUALIFIED
Deepesh Z TollnerUnited KingdomIoni Bowcher RENEWAL
Murillo J PerinSpainIvan Magalhaes PROPOSAL
Adams Y IturbideJapanAnna Fali NEW
David Y KolmetzFranceXuxue Feng NEW
Clifford U SergiSpainOnyama Limba RENEWAL
Silvio X BologniaBrazilXuxue Feng UNQUALIFIED
Adams I GlickJapanXuxue Feng QUALIFIED
Claire D MarrierFranceXuxue Feng NEGOTIATION
Alejandro V RimUnited KingdomXuxue Feng QUALIFIED
Cody Y WieserRussiaIoni Bowcher PROPOSAL
Ivar C MaletJapanAnna Fali RENEWAL
Jennifer H KuskoItalyAsiya Javayant UNQUALIFIED
Rodrigues V StockhamIndiaOnyama Limba RENEWAL
Cody I StockhamGermanyBernardo Dominic NEGOTIATION
Isabel Q NickaBrazilAsiya Javayant RENEWAL
Munro L GillianIndiaStephen Shaw QUALIFIED
Murillo M IturbideAustraliaXuxue Feng UNQUALIFIED
Jefferson B OldroydCanadaOnyama Limba NEGOTIATION
Aika S RoysterJapanBernardo Dominic QUALIFIED
David V VenereFranceAsiya Javayant NEW
Wickens K CaldareraAustraliaAmy Elsner NEGOTIATION
Leja E VenereCanadaOnyama Limba UNQUALIFIED
Johnson H MaletGermanyAsiya Javayant NEW
Ricardo R NickaGermanyAmy Elsner RENEWAL
Arvin F NickaGermanyStephen Shaw NEW
Deepesh T ShinkoFranceBernardo Dominic NEW
Salvatore P BologniaFranceIvan Magalhaes UNQUALIFIED
Greenwood F MacleadUnited KingdomAnna Fali PROPOSAL
Alejandro R KuskoCanadaStephen Shaw NEGOTIATION
Johnson R SlusarskiCanadaAsiya Javayant QUALIFIED
Tony U PoquetteCanadaAsiya Javayant RENEWAL
Maisha X KuskoCanadaOnyama Limba PROPOSAL
Maria Y PoquetteBrazilBernardo Dominic UNQUALIFIED
Faith G FollerFranceStephen Shaw PROPOSAL
Juan P WieserSpainAnna Fali NEGOTIATION
Jeanfrancois I MarrierArgentinaIoni Bowcher RENEWAL
Emily X SergiUnited KingdomAsiya Javayant NEW
Darci C GillianUnited KingdomXuxue Feng QUALIFIED
Juan I RimBrazilXuxue Feng PROPOSAL
Tony I DilliardUnited KingdomStephen Shaw UNQUALIFIED
Aditya K CampainIndiaIvan Magalhaes NEGOTIATION
Maisha W DilliardItalyAnna Fali UNQUALIFIED
Kaitlin D DoeItalyXuxue Feng NEGOTIATION
Rodrigues K VocelkaBrazilAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily A KuskoItalyStephen Shaw NEW
Ashley V PoquetteIndiaIvan Magalhaes NEGOTIATION
Kaitlin D MaletArgentinaIoni Bowcher UNQUALIFIED
Sinclair J KuskoBrazilBernardo Dominic QUALIFIED
Greenwood V OldroydFranceElwin Sharvill RENEWAL
Smith D BologniaIndiaIvan Magalhaes NEW
Mujtaba H DoeSpainAmy Elsner PROPOSAL
Jones V WhobreyItalyAnna Fali RENEWAL
Arvin O DilliardBrazilAnna Fali QUALIFIED
Isabel W GillianSpainOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa I GarufiArgentina2025-07-31Buckley Miller Wright NEGOTIATION97Onyama Limba
1001Octavia D NestleSpain2025-07-06Chemel, James L Cpa RENEWAL3Stephen Shaw
1002Octavia M SchemmerIndia2025-07-26Buckley Miller Wright PROPOSAL93Ioni Bowcher
1003Alejandro Z ShinkoJapan2025-07-11Truhlar And Truhlar Attys QUALIFIED27Xuxue Feng
1004Jeanfrancois I FollerUnited Kingdom2025-07-25Buckley Miller Wright UNQUALIFIED51Amy Elsner
1005Sinclair S NickaItaly2025-07-23Dorl, James J Esq UNQUALIFIED69Anna Fali
1006Smith N RimGermany2025-08-02Rousseaux, Michael Esq NEW71Onyama Limba
1007Maria T KolmetzGermany2025-07-12Dorl, James J Esq QUALIFIED16Ivan Magalhaes
1008Misaki G KuskoRussia2025-07-05Rangoni Of Florence UNQUALIFIED66Asiya Javayant
1009Murillo V VenereUnited Kingdom2025-07-14Rangoni Of Florence NEW30Xuxue Feng
1010Kadeem Z FlosiJapan2025-07-16Buckley Miller Wright RENEWAL69Onyama Limba
1011Murillo R MaletCanada2025-07-21Rangoni Of Florence UNQUALIFIED3Amy Elsner
1012Tony R FerenczUnited Kingdom2025-07-05Rangoni Of Florence NEGOTIATION68Xuxue Feng
1013Tony M RulapaughJapan2025-07-10Morlong Associates NEW11Ioni Bowcher
1014David U AlbaresJapan2025-07-25King, Christopher A Esq QUALIFIED0Ivan Magalhaes
1015Wickens I KolmetzJapan2025-07-27Chapman, Ross E Esq NEW53Amy Elsner
1016Ivar R GlickJapan2025-07-18Buckley Miller Wright RENEWAL74Ioni Bowcher
1017Mayumi R DilliardBrazil2025-07-25King, Christopher A Esq RENEWAL76Ioni Bowcher
1018Nicolas O KolmetzAustralia2025-07-28Commercial Press NEGOTIATION82Amy Elsner
1019Stacey G DarakjyJapan2025-07-09Benton, John B Jr PROPOSAL6Onyama Limba
1020Kaitlin G NestleUnited Kingdom2025-07-08Buckley Miller Wright NEGOTIATION75Stephen Shaw
1021Sinclair C PerinRussia2025-07-08Printing Dimensions NEW85Xuxue Feng
1022Julie S FerenczSpain2025-07-26Dorl, James J Esq QUALIFIED38Anna Fali
1023Alejandro U GauchoBrazil2025-08-03Truhlar And Truhlar Attys RENEWAL51Asiya Javayant
1024Leja Z CaldareraJapan2025-07-26Rangoni Of Florence NEGOTIATION48Stephen Shaw
1025Maria T FlosiAustralia2025-07-30Chapman, Ross E Esq RENEWAL81Bernardo Dominic
1026Julie T WhobreyBrazil2025-07-28King, Christopher A Esq RENEWAL91Stephen Shaw
1027Izzy T NickaSpain2025-07-23Feltz Printing Service QUALIFIED77Asiya Javayant
1028Arvin B AmigonCanada2025-07-24Chapman, Ross E Esq QUALIFIED94Onyama Limba
1029Mujtaba R SlusarskiArgentina2025-07-11Rangoni Of Florence PROPOSAL84Onyama Limba
1030James X KolmetzUnited Kingdom2025-07-12Chanay, Jeffrey A Esq NEW33Anna Fali
1031Deepesh F SergiSpain2025-08-03Rangoni Of Florence UNQUALIFIED15Onyama Limba
1032Stacey G DarakjyJapan2025-07-13Chanay, Jeffrey A Esq QUALIFIED84Elwin Sharvill
1033Julie L GarufiAustralia2025-07-18Chanay, Jeffrey A Esq QUALIFIED28Elwin Sharvill
1034Johnson I NickaUnited Kingdom2025-07-22Morlong Associates NEW76Ivan Magalhaes
1035Aruna J SergiArgentina2025-07-17Dorl, James J Esq RENEWAL89Stephen Shaw
1036Jones W StockhamArgentina2025-07-08Buckley Miller Wright PROPOSAL95Amy Elsner
1037Clifford J SchemmerSpain2025-07-06Morlong Associates UNQUALIFIED61Xuxue Feng
1038Leon A RimAustralia2025-07-24Chemel, James L Cpa PROPOSAL50Asiya Javayant
1039Deepesh Z RimAustralia2025-07-25Rousseaux, Michael Esq PROPOSAL72Elwin Sharvill
1040Deepesh V GarufiJapan2025-07-15Printing Dimensions UNQUALIFIED98Bernardo Dominic
1041Chavez M NestleAustralia2025-07-29Feiner Bros QUALIFIED95Ivan Magalhaes
1042Juan N SlusarskiItaly2025-08-01Commercial Press NEGOTIATION0Onyama Limba
1043Mujtaba P GlickItaly2025-07-06Dorl, James J Esq NEGOTIATION5Ioni Bowcher
1044Aditya M PoquetteRussia2025-07-29Printing Dimensions NEW0Xuxue Feng
1045Costa T FigeroaJapan2025-07-21Chanay, Jeffrey A Esq UNQUALIFIED77Anna Fali
1046Johnson I FerenczJapan2025-07-19King, Christopher A Esq NEW62Asiya Javayant
1047David G MarrierArgentina2025-07-13Chemel, James L Cpa UNQUALIFIED46Xuxue Feng
1048Stacey L NestleFrance2025-07-10Feltz Printing Service RENEWAL46Ivan Magalhaes
1049David S CampainUnited Kingdom2025-07-20Truhlar And Truhlar Attys RENEWAL38Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Morrow J VenereJapanOnyama Limba RENEWAL
Julie I MorascaAustraliaAnna Fali NEW
Cody I BowleyGermanyIoni Bowcher NEGOTIATION
Munro E PaprockiIndiaOnyama Limba UNQUALIFIED
Cody P WhobreyFranceIoni Bowcher NEW
Juan I CaldareraJapanXuxue Feng PROPOSAL
Isabel C GlickSpainStephen Shaw NEGOTIATION
Deepesh R ButtAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois Z CaudyCanadaAnna Fali RENEWAL
Tony O ChuiUnited KingdomIoni Bowcher PROPOSAL
Stacey D WhobreySpainXuxue Feng PROPOSAL
Adams D WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Arvin J StensethItalyElwin Sharvill RENEWAL
David H RimIndiaXuxue Feng PROPOSAL
Mayumi Q MarrierCanadaIoni Bowcher QUALIFIED
James Z GauchoItalyAmy Elsner NEW
Aika I FigeroaArgentinaStephen Shaw QUALIFIED
Wickens J AlbaresUnited KingdomOnyama Limba PROPOSAL
Mujtaba G DoeCanadaOnyama Limba NEGOTIATION
Rodrigues I PaprockiAustraliaXuxue Feng NEW
Faith E BologniaCanadaXuxue Feng RENEWAL
Jefferson K AmigonFranceIoni Bowcher RENEWAL
Faith W SergiArgentinaOnyama Limba PROPOSAL
Claire T GarufiAustraliaXuxue Feng NEW
James E IturbideArgentinaBernardo Dominic UNQUALIFIED
Jones Y GlickIndiaStephen Shaw NEW
Juan U IturbideJapanAnna Fali UNQUALIFIED
Maria A BowleyItalyIvan Magalhaes NEW
Adams J PoquetteAustraliaIoni Bowcher NEGOTIATION
Costa A BowleyCanadaIvan Magalhaes RENEWAL
Jeanfrancois C SchemmerGermanyIvan Magalhaes NEW
Mayumi Q AmigonGermanyAsiya Javayant RENEWAL
Aika U GarufiGermanyBernardo Dominic RENEWAL
Misaki N MacleadBrazilBernardo Dominic RENEWAL
Jeanfrancois Y KuskoRussiaXuxue Feng QUALIFIED
Izzy A DilliardItalyElwin Sharvill NEW
Mujtaba Q NickaArgentinaBernardo Dominic QUALIFIED
Alejandro G MorascaAustraliaXuxue Feng PROPOSAL
Antonio T SaylorsGermanyOnyama Limba UNQUALIFIED
Clifford C FigeroaUnited KingdomAnna Fali UNQUALIFIED
Maria T NickaFranceAnna Fali RENEWAL
Morrow L TollnerJapanIvan Magalhaes RENEWAL
Francesco D GarufiBrazilStephen Shaw PROPOSAL
Leja W ButtIndiaBernardo Dominic QUALIFIED
Chavez E TollnerIndiaAnna Fali UNQUALIFIED
Wickens N AlbaresItalyBernardo Dominic PROPOSAL
Aika C InouyeSpainElwin Sharvill NEGOTIATION
Jefferson N SergiItalyAmy Elsner PROPOSAL
Deepesh D RutaItalyAnna Fali PROPOSAL
Aruna R GillianFranceIvan Magalhaes NEW
Frozen Columns
Name
Morrow A Slusarski
Silvio M Nicka
Arvin T Malet
Jefferson J Wieser
Leon J Figeroa
Silvio S Vocelka
David K Doe
Aruna N Shinko
Kaitlin E Bolognia
Rodrigues T Briddick
Darci M Whobrey
Mujtaba G Perin
Johnson V Figeroa
Darci H Waycott
Alejandro X Dilliard
Mujtaba S Foller
Murillo M Campain
James U Doe
Mujtaba N Flosi
Juan I Bolognia
Octavia L Kusko
Ivar U Nestle
Jefferson M Foller
Izzy Z Stockham
Kadeem Y Rim
Arvin H Schemmer
Adams W Royster
Johnson M Bowley
Mayumi O Albares
Kadeem V Kusko
Leon B Ferencz
Silvio F Chui
Antonio M Ostrosky
Smith W Saylors
Maisha L Waycott
Smith F Ruta
Murillo C Marrier
Kadeem T Stockham
Tony S Gillian
Darci K Whobrey
Aditya O Gaucho
James Q Rim
Misaki G Caldarera
Mujtaba W Glick
Jennifer B Tollner
Maisha J Flosi
Wickens P Garufi
Rodrigues Y Slusarski
Wickens W Waycott
Stacey D Ferencz
IdCountryDate
1000Japan2025-07-25
1001Canada2025-07-26
1002Brazil2025-07-12
1003Russia2025-07-25
1004India2025-07-18
1005Australia2025-07-10
1006Germany2025-07-26
1007United Kingdom2025-08-02
1008Argentina2025-07-21
1009Argentina2025-07-28
1010United Kingdom2025-07-18
1011Spain2025-07-28
1012Brazil2025-07-27
1013Italy2025-07-19
1014United Kingdom2025-07-20
1015India2025-07-13
1016Spain2025-08-03
1017France2025-07-20
1018Russia2025-07-17
1019Brazil2025-07-13
1020Australia2025-07-07
1021France2025-07-09
1022Canada2025-07-23
1023France2025-07-08
1024Germany2025-07-29
1025Argentina2025-08-03
1026Brazil2025-07-30
1027Canada2025-07-06
1028Canada2025-07-23
1029Germany2025-07-24
1030Brazil2025-08-03
1031Germany2025-07-08
1032France2025-07-17
1033Russia2025-07-26
1034Spain2025-07-25
1035Canada2025-07-08
1036Italy2025-07-27
1037Spain2025-07-28
1038Argentina2025-07-21
1039Spain2025-08-02
1040Spain2025-07-07
1041Spain2025-07-29
1042Argentina2025-07-09
1043France2025-08-02
1044Spain2025-07-17
1045Russia2025-07-22
1046India2025-07-25
1047France2025-07-11
1048Germany2025-07-28
1049Spain2025-07-29

On-Demand Data

NameIdCountryDate
Aika S Iturbide1000Russia2025-07-06
Deepesh B Gaucho1001France2025-07-18
Wickens K Bowley1002Brazil2025-07-10
Claire I Albares1003Australia2025-07-29
Ricardo L Darakjy1004Spain2025-07-10
Morrow I Briddick1005France2025-07-13
Leja E Paprocki1006United Kingdom2025-07-09
Ashley F Garufi1007Germany2025-07-28
Costa Z Perin1008Canada2025-07-17
Smith K Inouye1009Argentina2025-07-07
Faith Q Gaucho1010Japan2025-07-06
Greenwood X Campain1011Germany2025-07-18
Jones Q Glick1012Japan2025-07-25
Silvio C Foller1013Germany2025-07-16
James T Paprocki1014India2025-07-25
Stacey E Gaucho1015Germany2025-07-11
Jennifer S Tollner1016Italy2025-07-19
Ivar H Vocelka1017Canada2025-07-30
Octavia K Figeroa1018France2025-07-24
Johnson A Marrier1019Argentina2025-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci I ShinkoBrazilIoni Bowcher UNQUALIFIED
Juan T BowleyIndiaAsiya Javayant NEGOTIATION
Alejandro Y WhobreyAustraliaIvan Magalhaes PROPOSAL
Jones W CampainCanadaAsiya Javayant PROPOSAL
Isabel T PaprockiJapanOnyama Limba UNQUALIFIED
Mayumi F VocelkaArgentinaBernardo Dominic UNQUALIFIED
Sinclair V NestleFranceElwin Sharvill RENEWAL
Mujtaba I MaletUnited KingdomXuxue Feng QUALIFIED
Munro X PaprockiSpainStephen Shaw PROPOSAL
Jeanfrancois Q CampainCanadaAnna Fali NEW
Ricardo L PaprockiCanadaOnyama Limba RENEWAL
Wickens J ShinkoJapanIvan Magalhaes NEGOTIATION
Chavez X ButtSpainXuxue Feng UNQUALIFIED
Silvio Q BriddickJapanOnyama Limba QUALIFIED
Arvin W SlusarskiArgentinaBernardo Dominic PROPOSAL
Francesco P AmigonUnited KingdomAnna Fali PROPOSAL
Octavia E MaletArgentinaElwin Sharvill NEGOTIATION
Wickens F AlbaresGermanyElwin Sharvill QUALIFIED
Maria F ButtAustraliaBernardo Dominic QUALIFIED
Tony E VocelkaSpainIoni Bowcher PROPOSAL
James L BologniaRussiaElwin Sharvill RENEWAL
Mujtaba I GlickItalyIvan Magalhaes PROPOSAL
Antonio G StockhamUnited KingdomAnna Fali NEW
Jeanfrancois G MacleadBrazilXuxue Feng NEW
Deepesh C RimGermanyXuxue Feng UNQUALIFIED
Sinclair T InouyeUnited KingdomBernardo Dominic RENEWAL
Darci J PaprockiFranceAmy Elsner PROPOSAL
Isabel J DoeGermanyXuxue Feng NEW
Faith R CaldareraGermanyAmy Elsner UNQUALIFIED
Morrow N MaletGermanyElwin Sharvill PROPOSAL
Izzy W MarrierRussiaIoni Bowcher QUALIFIED
Ashley R BologniaAustraliaAnna Fali NEW
Rodrigues U OldroydItalyAmy Elsner UNQUALIFIED
Mujtaba F ButtItalyAnna Fali RENEWAL
Stacey Z FerenczItalyElwin Sharvill NEGOTIATION
Rodrigues Z DilliardFranceElwin Sharvill NEGOTIATION
Leja C CaudyItalyIoni Bowcher UNQUALIFIED
Alejandro V FerenczItalyStephen Shaw UNQUALIFIED
Ricardo Q PoquetteArgentinaOnyama Limba UNQUALIFIED
Alejandro S ShinkoGermanyIvan Magalhaes NEW

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