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
Leja X VocelkaSpainBernardo Dominic UNQUALIFIED
Mujtaba Z DarakjyAustraliaAsiya Javayant NEW
Aika X SaylorsJapanStephen Shaw QUALIFIED
Salvatore Z RimJapanAmy Elsner PROPOSAL
Munro B VocelkaItalyStephen Shaw QUALIFIED
Salvatore G OldroydAustraliaOnyama Limba RENEWAL
James W StensethSpainAmy Elsner NEGOTIATION
Faith P WieserArgentinaOnyama Limba PROPOSAL
Mujtaba U ChuiItalyBernardo Dominic QUALIFIED
Aruna V StensethSpainAmy Elsner UNQUALIFIED
Deepesh T MacleadUnited KingdomAsiya Javayant QUALIFIED
Tony H WhobreyItalyIvan Magalhaes PROPOSAL
Maisha V KuskoItalyAnna Fali RENEWAL
Darci E PaprockiBrazilAsiya Javayant RENEWAL
Tony Q ShinkoUnited KingdomOnyama Limba NEW
Faith V DilliardSpainIvan Magalhaes QUALIFIED
Munro B RutaJapanAmy Elsner PROPOSAL
James D MacleadJapanOnyama Limba QUALIFIED
Mujtaba Q SergiJapanBernardo Dominic PROPOSAL
Smith L DoeCanadaXuxue Feng NEGOTIATION
Nicolas C TollnerUnited KingdomBernardo Dominic PROPOSAL
Nicolas J CaldareraBrazilIoni Bowcher PROPOSAL
Emily W InouyeItalyAsiya Javayant UNQUALIFIED
Ivar V WieserRussiaXuxue Feng UNQUALIFIED
Smith Z CaldareraAustraliaXuxue Feng UNQUALIFIED
Antonio U SlusarskiAustraliaAmy Elsner QUALIFIED
Deepesh T InouyeGermanyAmy Elsner PROPOSAL
Maria N OstroskySpainAnna Fali RENEWAL
Cody V NestleGermanyAnna Fali PROPOSAL
Kadeem C SergiRussiaBernardo Dominic QUALIFIED
Salvatore M FerenczAustraliaAnna Fali NEGOTIATION
Isabel P SlusarskiFranceXuxue Feng NEGOTIATION
Jefferson V RoysterIndiaAmy Elsner PROPOSAL
Stacey D MorascaJapanStephen Shaw RENEWAL
Darci W ChuiJapanElwin Sharvill NEGOTIATION
David I WhobreyJapanOnyama Limba RENEWAL
Izzy G RutaCanadaAsiya Javayant UNQUALIFIED
Cody O OstroskyGermanyAsiya Javayant NEW
Munro I ButtGermanyIvan Magalhaes UNQUALIFIED
Emily S BologniaUnited KingdomAnna Fali RENEWAL
Ricardo C AlbaresJapanBernardo Dominic NEGOTIATION
Juan B NickaItalyAnna Fali NEW
Jeanfrancois P CaldareraCanadaAsiya Javayant UNQUALIFIED
Aika J DilliardSpainIvan Magalhaes UNQUALIFIED
Jennifer K BowleyGermanyXuxue Feng NEGOTIATION
Jennifer V RoysterAustraliaIoni Bowcher NEW
Leon I NestleArgentinaOnyama Limba NEW
Emily Y SchemmerJapanStephen Shaw QUALIFIED
Aruna E FerenczSpainAnna Fali PROPOSAL
Jeanfrancois R BriddickUnited KingdomAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja K RutaFranceStephen Shaw NEGOTIATION
Octavia M GauchoIndiaIoni Bowcher UNQUALIFIED
Misaki K GlickBrazilXuxue Feng UNQUALIFIED
Kaitlin Y SaylorsGermanyAsiya Javayant PROPOSAL
Rodrigues T GlickAustraliaIvan Magalhaes QUALIFIED
James M VenereRussiaElwin Sharvill RENEWAL
Smith J MorascaItalyXuxue Feng UNQUALIFIED
Jones R FollerAustraliaAnna Fali QUALIFIED
Claire V MarrierJapanXuxue Feng QUALIFIED
Cody V NestleAustraliaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci P FlosiSpain2025-08-19Printing Dimensions QUALIFIED9Ivan Magalhaes
1001Octavia Q NickaAustralia2025-08-19Printing Dimensions RENEWAL54Xuxue Feng
1002Salvatore P VocelkaRussia2025-08-08Buckley Miller Wright PROPOSAL90Bernardo Dominic
1003Isabel V NestleJapan2025-08-19Rousseaux, Michael Esq RENEWAL44Ivan Magalhaes
1004Aditya L VocelkaBrazil2025-08-09Rangoni Of Florence NEW79Ivan Magalhaes
1005Jones T StockhamIndia2025-08-22Rousseaux, Michael Esq PROPOSAL96Ivan Magalhaes
1006Morrow U OldroydItaly2025-08-13Truhlar And Truhlar Attys QUALIFIED71Asiya Javayant
1007Aika K CampainAustralia2025-08-05Chemel, James L Cpa PROPOSAL41Bernardo Dominic
1008Morrow L BologniaUnited Kingdom2025-08-14Commercial Press QUALIFIED85Anna Fali
1009Wickens P RutaAustralia2025-08-11Feltz Printing Service RENEWAL38Ivan Magalhaes
1010Alejandro O TollnerUnited Kingdom2025-08-20Printing Dimensions NEW72Xuxue Feng
1011Octavia D NestleUnited Kingdom2025-08-02Morlong Associates NEGOTIATION79Anna Fali
1012Costa W PaprockiSpain2025-08-26Rousseaux, Michael Esq UNQUALIFIED73Asiya Javayant
1013Juan D WieserFrance2025-08-17Feiner Bros PROPOSAL29Stephen Shaw
1014Ashley U CampainBrazil2025-08-13Morlong Associates PROPOSAL9Elwin Sharvill
1015Octavia Y KuskoJapan2025-08-26Chemel, James L Cpa QUALIFIED21Asiya Javayant
1016Alejandro W PerinIndia2025-08-05Commercial Press NEW84Ioni Bowcher
1017Chavez L DoeRussia2025-08-07Truhlar And Truhlar Attys NEW7Anna Fali
1018Deepesh T WhobreyCanada2025-08-23Truhlar And Truhlar Attys PROPOSAL21Stephen Shaw
1019Octavia R AlbaresJapan2025-08-02Rousseaux, Michael Esq NEGOTIATION27Bernardo Dominic
1020Faith M ShinkoItaly2025-08-16Chemel, James L Cpa RENEWAL63Amy Elsner
1021Costa S TollnerFrance2025-08-11Rousseaux, Michael Esq UNQUALIFIED69Amy Elsner
1022Ricardo D WhobreyBrazil2025-08-19Chapman, Ross E Esq RENEWAL71Elwin Sharvill
1023Salvatore X OstroskyItaly2025-07-30Truhlar And Truhlar Attys NEGOTIATION52Asiya Javayant
1024Sinclair X FigeroaFrance2025-08-07Rousseaux, Michael Esq RENEWAL79Ioni Bowcher
1025Costa D PaprockiSpain2025-08-23King, Christopher A Esq PROPOSAL19Stephen Shaw
1026Ivar I GarufiIndia2025-08-26Benton, John B Jr PROPOSAL95Ivan Magalhaes
1027Aditya T FollerAustralia2025-08-21Feltz Printing Service RENEWAL48Stephen Shaw
1028Munro F WhobreyFrance2025-08-07Dorl, James J Esq RENEWAL54Ioni Bowcher
1029Octavia O FlosiUnited Kingdom2025-08-07Commercial Press QUALIFIED58Anna Fali
1030Greenwood Y CaudyGermany2025-08-16Dorl, James J Esq QUALIFIED66Anna Fali
1031Aruna L MorascaAustralia2025-08-08Dorl, James J Esq QUALIFIED19Onyama Limba
1032Kadeem P FigeroaSpain2025-08-13Benton, John B Jr NEGOTIATION99Ivan Magalhaes
1033Johnson K PerinJapan2025-08-25Feltz Printing Service UNQUALIFIED72Ioni Bowcher
1034Leon X InouyeAustralia2025-08-21King, Christopher A Esq RENEWAL25Stephen Shaw
1035Wickens W MaletCanada2025-08-01Rangoni Of Florence NEGOTIATION74Elwin Sharvill
1036Wickens T GlickBrazil2025-08-26King, Christopher A Esq NEW17Onyama Limba
1037Francesco T ButtIndia2025-08-08Rousseaux, Michael Esq RENEWAL8Anna Fali
1038Cody Q SchemmerSpain2025-08-17Rangoni Of Florence NEW63Stephen Shaw
1039Juan I CaudyUnited Kingdom2025-08-03Morlong Associates NEGOTIATION86Elwin Sharvill
1040Mujtaba T FigeroaJapan2025-08-27Truhlar And Truhlar Attys QUALIFIED35Asiya Javayant
1041Clifford D FigeroaSpain2025-08-20Feiner Bros QUALIFIED96Elwin Sharvill
1042Jeanfrancois F StockhamRussia2025-08-26Morlong Associates NEW28Stephen Shaw
1043Cody B WhobreyGermany2025-08-28Rangoni Of Florence NEGOTIATION53Asiya Javayant
1044Darci P OldroydAustralia2025-08-16Rousseaux, Michael Esq QUALIFIED8Bernardo Dominic
1045Aditya W MacleadFrance2025-08-28Dorl, James J Esq QUALIFIED6Stephen Shaw
1046Aditya F FlosiBrazil2025-08-24Rousseaux, Michael Esq NEGOTIATION2Asiya Javayant
1047Cody Y MarrierJapan2025-08-23Rangoni Of Florence PROPOSAL36Amy Elsner
1048Claire X MaletItaly2025-08-25Chanay, Jeffrey A Esq RENEWAL17Bernardo Dominic
1049David T CaldareraItaly2025-08-21Rousseaux, Michael Esq NEW1Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues G BowleyCanadaXuxue Feng NEGOTIATION
Izzy Q PoquetteArgentinaAmy Elsner RENEWAL
Leon M MaletAustraliaAmy Elsner RENEWAL
Morrow I AlbaresJapanAsiya Javayant NEGOTIATION
Smith A RulapaughRussiaAsiya Javayant UNQUALIFIED
Francesco C MaletFranceElwin Sharvill PROPOSAL
Misaki H WieserIndiaOnyama Limba UNQUALIFIED
Costa C WaycottFranceAmy Elsner RENEWAL
Ashley F VenereAustraliaAsiya Javayant UNQUALIFIED
Kaitlin O WaycottCanadaAnna Fali NEW
Greenwood L WaycottItalyAnna Fali RENEWAL
Darci F PaprockiGermanyBernardo Dominic QUALIFIED
Juan C BowleyFranceIvan Magalhaes UNQUALIFIED
Jefferson P WhobreyAustraliaIoni Bowcher RENEWAL
Kadeem Y NickaRussiaIvan Magalhaes QUALIFIED
Nicolas Q PaprockiBrazilXuxue Feng NEW
Morrow I GillianRussiaAmy Elsner NEGOTIATION
Jennifer Q FerenczSpainAsiya Javayant PROPOSAL
Nicolas I InouyeIndiaIvan Magalhaes NEW
Misaki G PaprockiRussiaAsiya Javayant PROPOSAL
Darci C PoquetteFranceIoni Bowcher NEGOTIATION
Greenwood V DoeAustraliaAmy Elsner RENEWAL
Ricardo F RutaSpainBernardo Dominic NEW
Rodrigues B FerenczGermanyStephen Shaw NEW
Antonio Q MaletSpainAmy Elsner QUALIFIED
Deepesh N TollnerArgentinaIoni Bowcher NEGOTIATION
Ivar G KolmetzArgentinaElwin Sharvill QUALIFIED
Alejandro C BologniaJapanAsiya Javayant NEGOTIATION
Antonio H SchemmerUnited KingdomElwin Sharvill PROPOSAL
Antonio Z SaylorsUnited KingdomIoni Bowcher PROPOSAL
Kadeem K MacleadItalyAmy Elsner PROPOSAL
Emily M BriddickIndiaAnna Fali QUALIFIED
Nicolas N MacleadItalyAsiya Javayant PROPOSAL
Jennifer N VenereSpainAmy Elsner QUALIFIED
Salvatore W DarakjySpainBernardo Dominic RENEWAL
Maria Y RutaRussiaElwin Sharvill NEW
Greenwood Q CaldareraGermanyOnyama Limba NEGOTIATION
Costa T BologniaJapanAsiya Javayant RENEWAL
Greenwood Y ChuiRussiaBernardo Dominic UNQUALIFIED
Kaitlin L WhobreyCanadaAsiya Javayant RENEWAL
Smith F MaletJapanElwin Sharvill UNQUALIFIED
Munro M SlusarskiItalyAmy Elsner NEW
Alejandro T TollnerUnited KingdomIvan Magalhaes NEW
Aditya V ButtItalyAsiya Javayant NEGOTIATION
Aruna F GillianBrazilAmy Elsner RENEWAL
Jennifer J NestleJapanOnyama Limba RENEWAL
Claire W SlusarskiAustraliaXuxue Feng PROPOSAL
Aruna S MorascaGermanyOnyama Limba QUALIFIED
Leja U MaletRussiaAmy Elsner UNQUALIFIED
Isabel Z WaycottGermanyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Kaitlin T Nicka
Rodrigues M Waycott
Darci R Doe
Mujtaba P Inouye
Ivar Q Ostrosky
Kaitlin E Stockham
James F Doe
Jones Q Bowley
Octavia D Rulapaugh
Maria O Nestle
Francesco K Marrier
Sinclair O Rim
Rodrigues Z Kolmetz
Darci N Sergi
Aruna C Stenseth
Octavia S Bolognia
Octavia B Figeroa
Alejandro L Shinko
Aika M Kolmetz
Aditya N Waycott
Adams L Stenseth
Jennifer R Butt
Darci J Saylors
Murillo S Slusarski
Costa L Vocelka
Costa P Shinko
Isabel I Shinko
Morrow B Morasca
Darci A Tollner
Kadeem S Figeroa
Stacey B Flosi
Julie R Gaucho
Ashley R Poquette
Ashley Q Campain
Izzy R Bolognia
Darci Q Albares
Leon E Iturbide
Costa N Flosi
Isabel L Waycott
Greenwood O Venere
Nicolas X Stockham
Rodrigues L Kolmetz
Izzy O Dilliard
Aditya Y Morasca
Chavez Y Whobrey
Nicolas M Malet
Maria X Venere
Maria E Poquette
Smith A Shinko
Mujtaba T Campain
IdCountryDate
1000Italy2025-08-17
1001United Kingdom2025-08-15
1002Russia2025-08-20
1003France2025-08-16
1004Italy2025-08-04
1005Italy2025-07-31
1006Japan2025-08-23
1007United Kingdom2025-08-06
1008France2025-08-13
1009Argentina2025-08-18
1010Argentina2025-07-31
1011Italy2025-08-08
1012Russia2025-08-21
1013France2025-07-30
1014Canada2025-08-24
1015Italy2025-08-09
1016Brazil2025-08-17
1017Argentina2025-08-25
1018Canada2025-08-26
1019Spain2025-08-23
1020Brazil2025-08-24
1021United Kingdom2025-07-31
1022Canada2025-07-31
1023Canada2025-08-21
1024Germany2025-08-23
1025United Kingdom2025-08-17
1026Argentina2025-07-30
1027Russia2025-08-17
1028Germany2025-07-30
1029Canada2025-08-25
1030Australia2025-07-31
1031Brazil2025-08-26
1032Germany2025-08-19
1033Japan2025-07-31
1034India2025-08-17
1035France2025-08-15
1036United Kingdom2025-07-31
1037India2025-08-14
1038Japan2025-08-17
1039Spain2025-08-05
1040Australia2025-08-25
1041Brazil2025-08-12
1042Germany2025-08-28
1043Argentina2025-08-04
1044France2025-08-17
1045Italy2025-08-28
1046Russia2025-08-24
1047United Kingdom2025-08-24
1048Argentina2025-08-09
1049Japan2025-08-25

On-Demand Data

NameIdCountryDate
Aika D Ruta1000India2025-08-03
Claire G Briddick1001Australia2025-08-28
David H Briddick1002Canada2025-08-27
Mujtaba V Venere1003Italy2025-08-02
Aruna N Saylors1004France2025-07-30
Jeanfrancois P Marrier1005Spain2025-08-08
Juan X Marrier1006Argentina2025-08-22
Misaki H Kolmetz1007Russia2025-08-03
Antonio N Nicka1008United Kingdom2025-08-16
Maisha R Tollner1009Germany2025-08-21
Darci G Inouye1010Italy2025-08-12
Rodrigues S Darakjy1011Brazil2025-08-13
Rodrigues T Ostrosky1012Brazil2025-08-02
Tony Q Doe1013Italy2025-08-01
Juan S Chui1014Germany2025-08-04
Ricardo K Maclead1015Russia2025-07-31
Leja O Perin1016France2025-08-04
Murillo M Venere1017Argentina2025-08-10
Ashley W Doe1018United Kingdom2025-08-21
Aika X Sergi1019India2025-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika Q BowleySpainAnna Fali UNQUALIFIED
Francesco I WieserAustraliaAmy Elsner RENEWAL
Emily T OstroskyCanadaIoni Bowcher PROPOSAL
Ashley P IturbideJapanAnna Fali RENEWAL
Ivar B NickaAustraliaXuxue Feng RENEWAL
Stacey B DilliardSpainElwin Sharvill NEGOTIATION
Deepesh E ButtItalyIoni Bowcher PROPOSAL
Maisha W MaletItalyIvan Magalhaes PROPOSAL
Octavia Y WieserSpainAmy Elsner UNQUALIFIED
Emily W NestleItalyIoni Bowcher RENEWAL
Johnson Q TollnerJapanElwin Sharvill NEGOTIATION
Adams V VenereFranceAmy Elsner PROPOSAL
Antonio G OstroskyJapanElwin Sharvill QUALIFIED
Kaitlin N AlbaresFranceElwin Sharvill NEW
Adams Z BologniaCanadaElwin Sharvill NEW
Aika P RutaArgentinaAsiya Javayant RENEWAL
Alejandro M BriddickRussiaXuxue Feng PROPOSAL
Alejandro K StockhamJapanIoni Bowcher UNQUALIFIED
Claire F MorascaBrazilBernardo Dominic QUALIFIED
Stacey B FerenczBrazilAnna Fali PROPOSAL
Kadeem J WieserIndiaXuxue Feng PROPOSAL
Stacey W WaycottAustraliaOnyama Limba RENEWAL
Adams V VenereArgentinaIoni Bowcher PROPOSAL
Leon A SergiBrazilOnyama Limba UNQUALIFIED
Leja R RutaAustraliaAsiya Javayant NEW
Aruna S BriddickAustraliaAsiya Javayant PROPOSAL
Kaitlin Q StockhamSpainOnyama Limba PROPOSAL
Maisha V RutaIndiaIvan Magalhaes UNQUALIFIED
Maisha O DilliardUnited KingdomOnyama Limba UNQUALIFIED
Stacey H ShinkoItalyXuxue Feng UNQUALIFIED
Maria Y KuskoSpainIoni Bowcher UNQUALIFIED
Darci U SchemmerAustraliaAnna Fali QUALIFIED
James X AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Chavez A CaldareraFranceOnyama Limba NEGOTIATION
Kadeem O MacleadArgentinaAsiya Javayant NEGOTIATION
Jones N KolmetzFranceAsiya Javayant RENEWAL
Aditya A RoysterRussiaStephen Shaw RENEWAL
Stacey E VenereArgentinaIoni Bowcher QUALIFIED
James I DarakjyRussiaElwin Sharvill RENEWAL
Stacey D ButtCanadaAmy Elsner 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>