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
Kaitlin V TollnerItalyAsiya Javayant PROPOSAL
Mayumi H GarufiIndiaXuxue Feng QUALIFIED
Jefferson E PaprockiCanadaAsiya Javayant RENEWAL
Faith H ButtFranceIoni Bowcher NEW
Murillo R GauchoArgentinaXuxue Feng QUALIFIED
Murillo X SchemmerFranceAnna Fali NEGOTIATION
Sinclair G KuskoArgentinaIoni Bowcher NEGOTIATION
Jones P IturbideItalyAmy Elsner NEW
Jones U PerinItalyAsiya Javayant UNQUALIFIED
Kadeem G CaldareraUnited KingdomAmy Elsner RENEWAL
Kaitlin N GauchoArgentinaBernardo Dominic NEGOTIATION
Antonio V MacleadJapanAnna Fali NEGOTIATION
Misaki G KuskoGermanyAmy Elsner NEGOTIATION
Jennifer V RutaGermanyIoni Bowcher PROPOSAL
Wickens P AmigonFranceStephen Shaw NEGOTIATION
Aika R StockhamCanadaIvan Magalhaes RENEWAL
Julie V AmigonItalyBernardo Dominic UNQUALIFIED
Alejandro G AmigonUnited KingdomAsiya Javayant RENEWAL
Adams E CampainBrazilIvan Magalhaes PROPOSAL
Wickens K PerinGermanyAmy Elsner RENEWAL
Greenwood L TollnerAustraliaIoni Bowcher NEW
Ivar P SchemmerRussiaOnyama Limba UNQUALIFIED
Ashley X FollerArgentinaAmy Elsner PROPOSAL
Cody G DilliardUnited KingdomXuxue Feng PROPOSAL
Ashley C WieserJapanBernardo Dominic RENEWAL
Deepesh P MaletCanadaAnna Fali UNQUALIFIED
Rodrigues M NickaArgentinaStephen Shaw QUALIFIED
Ivar X RimGermanyIoni Bowcher UNQUALIFIED
Johnson P RoysterFranceAsiya Javayant RENEWAL
Darci A VocelkaRussiaAmy Elsner PROPOSAL
Jones K WhobreyIndiaElwin Sharvill UNQUALIFIED
Aditya X ShinkoIndiaIvan Magalhaes QUALIFIED
Izzy A DoeItalyAnna Fali UNQUALIFIED
Costa V VenereSpainAnna Fali NEGOTIATION
Ashley S FigeroaFranceXuxue Feng RENEWAL
Aruna L FlosiRussiaStephen Shaw PROPOSAL
Antonio R GauchoFranceStephen Shaw RENEWAL
Cody Y StensethArgentinaAmy Elsner UNQUALIFIED
Kaitlin Q GarufiFranceOnyama Limba NEGOTIATION
Isabel A PerinGermanyStephen Shaw RENEWAL
James E SergiJapanAnna Fali NEW
Tony B StockhamGermanyIvan Magalhaes QUALIFIED
Aika U SchemmerAustraliaStephen Shaw PROPOSAL
Deepesh B GauchoSpainOnyama Limba QUALIFIED
Nicolas C BologniaFranceOnyama Limba NEW
Ricardo R DarakjyItalyStephen Shaw RENEWAL
Francesco Q CampainUnited KingdomAmy Elsner NEW
Maisha N RimGermanyStephen Shaw NEW
Aditya B TollnerCanadaIoni Bowcher RENEWAL
Antonio Q RulapaughRussiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Silvio Z CaldareraBrazilOnyama Limba UNQUALIFIED
Francesco J BriddickGermanyAnna Fali UNQUALIFIED
Darci O MaletUnited KingdomIvan Magalhaes NEW
Misaki P FigeroaBrazilXuxue Feng NEGOTIATION
Silvio S SchemmerFranceAsiya Javayant NEW
Ivar Q ButtGermanyAnna Fali PROPOSAL
Kaitlin A StockhamIndiaStephen Shaw QUALIFIED
David C WhobreySpainBernardo Dominic QUALIFIED
Mujtaba R DilliardIndiaBernardo Dominic NEW
Francesco R FerenczIndiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya P MaletFrance2025-10-03Feltz Printing Service RENEWAL52Stephen Shaw
1001Aika T MaletArgentina2025-09-30Truhlar And Truhlar Attys UNQUALIFIED64Amy Elsner
1002Antonio K BriddickGermany2025-10-15Dorl, James J Esq NEGOTIATION58Xuxue Feng
1003Maisha R KolmetzBrazil2025-09-20Feiner Bros QUALIFIED28Asiya Javayant
1004Aditya F KolmetzJapan2025-10-04Morlong Associates NEW32Onyama Limba
1005Octavia B VenereUnited Kingdom2025-10-11Feiner Bros QUALIFIED20Elwin Sharvill
1006Isabel H StensethItaly2025-10-14Rousseaux, Michael Esq NEW96Amy Elsner
1007Ivar W CaudyFrance2025-10-16Morlong Associates QUALIFIED98Stephen Shaw
1008Arvin Y GarufiSpain2025-10-17Rangoni Of Florence NEGOTIATION36Ivan Magalhaes
1009Wickens Y WieserJapan2025-10-11Feltz Printing Service PROPOSAL6Ivan Magalhaes
1010Stacey X MarrierItaly2025-09-28Feiner Bros QUALIFIED19Asiya Javayant
1011Arvin A SlusarskiItaly2025-09-30Dorl, James J Esq QUALIFIED37Stephen Shaw
1012Chavez G DoeIndia2025-10-06Buckley Miller Wright UNQUALIFIED82Stephen Shaw
1013Aditya E GarufiUnited Kingdom2025-09-22Buckley Miller Wright PROPOSAL15Amy Elsner
1014Ivar I GlickItaly2025-10-19Truhlar And Truhlar Attys NEGOTIATION53Stephen Shaw
1015Greenwood A ChuiSpain2025-09-29Feltz Printing Service NEGOTIATION30Xuxue Feng
1016Kadeem W CaldareraIndia2025-10-16Commercial Press UNQUALIFIED84Xuxue Feng
1017Antonio M KolmetzItaly2025-10-02King, Christopher A Esq RENEWAL8Onyama Limba
1018Jefferson U KolmetzBrazil2025-10-06Morlong Associates NEW44Asiya Javayant
1019Munro P SergiRussia2025-10-09Benton, John B Jr NEGOTIATION85Xuxue Feng
1020Antonio L MarrierBrazil2025-09-20Commercial Press UNQUALIFIED80Amy Elsner
1021Misaki O MorascaGermany2025-10-05Printing Dimensions NEGOTIATION47Bernardo Dominic
1022Costa K ButtBrazil2025-10-17Benton, John B Jr PROPOSAL8Bernardo Dominic
1023Salvatore W CaldareraGermany2025-09-20Printing Dimensions NEW28Elwin Sharvill
1024Leon X DilliardArgentina2025-10-11Chemel, James L Cpa PROPOSAL52Xuxue Feng
1025Jefferson T BowleyAustralia2025-10-04Buckley Miller Wright NEW37Onyama Limba
1026Tony U GlickSpain2025-10-18Commercial Press QUALIFIED44Onyama Limba
1027Claire M GauchoUnited Kingdom2025-10-08Rangoni Of Florence NEGOTIATION41Bernardo Dominic
1028Greenwood O MacleadIndia2025-09-21King, Christopher A Esq UNQUALIFIED82Elwin Sharvill
1029Emily R GillianFrance2025-10-12King, Christopher A Esq NEGOTIATION6Onyama Limba
1030Jennifer Q CaldareraUnited Kingdom2025-10-04Dorl, James J Esq NEGOTIATION25Ivan Magalhaes
1031Arvin E AmigonGermany2025-10-02Chemel, James L Cpa NEW46Anna Fali
1032Tony U RulapaughArgentina2025-10-17Chapman, Ross E Esq NEW43Ivan Magalhaes
1033Faith T PaprockiCanada2025-10-12Morlong Associates RENEWAL53Xuxue Feng
1034Chavez L CaldareraBrazil2025-09-26Buckley Miller Wright PROPOSAL42Asiya Javayant
1035Julie G ChuiRussia2025-10-14Chemel, James L Cpa PROPOSAL87Onyama Limba
1036Emily M RulapaughGermany2025-10-13Rousseaux, Michael Esq PROPOSAL87Ioni Bowcher
1037Jennifer F MaletJapan2025-09-20Printing Dimensions NEGOTIATION23Ivan Magalhaes
1038Rodrigues P VocelkaRussia2025-10-04Chemel, James L Cpa RENEWAL20Bernardo Dominic
1039Isabel I FerenczGermany2025-10-19Dorl, James J Esq NEGOTIATION57Anna Fali
1040Munro M MarrierAustralia2025-10-19Chemel, James L Cpa QUALIFIED7Bernardo Dominic
1041Aditya I PaprockiAustralia2025-10-18Rangoni Of Florence NEGOTIATION79Asiya Javayant
1042Izzy D PoquetteCanada2025-10-03Feiner Bros NEW84Bernardo Dominic
1043Kaitlin W StockhamBrazil2025-10-17Rangoni Of Florence PROPOSAL98Anna Fali
1044Julie S StensethJapan2025-10-05King, Christopher A Esq RENEWAL78Amy Elsner
1045Stacey X VenereRussia2025-10-04Morlong Associates PROPOSAL87Bernardo Dominic
1046Faith U TollnerArgentina2025-09-30Commercial Press RENEWAL50Ivan Magalhaes
1047Smith W VenereGermany2025-09-29Chanay, Jeffrey A Esq RENEWAL24Anna Fali
1048Mayumi D ChuiIndia2025-10-13Feiner Bros NEW80Ivan Magalhaes
1049Costa P PoquetteFrance2025-10-09Benton, John B Jr PROPOSAL79Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Johnson K SaylorsUnited KingdomOnyama Limba PROPOSAL
Tony J WaycottFranceXuxue Feng QUALIFIED
Salvatore U BologniaJapanAmy Elsner UNQUALIFIED
Ricardo Z RimUnited KingdomAnna Fali QUALIFIED
Adams N StockhamBrazilAsiya Javayant RENEWAL
Ricardo V OstroskyGermanyOnyama Limba UNQUALIFIED
Faith S GillianUnited KingdomXuxue Feng UNQUALIFIED
Julie Z WieserBrazilOnyama Limba PROPOSAL
Leon A OldroydIndiaAsiya Javayant NEW
Ashley N BriddickAustraliaIoni Bowcher UNQUALIFIED
Alejandro H IturbideAustraliaIoni Bowcher QUALIFIED
Salvatore L RulapaughCanadaIvan Magalhaes RENEWAL
Ivar I NestleItalyElwin Sharvill RENEWAL
Salvatore Q AlbaresArgentinaBernardo Dominic NEGOTIATION
Kaitlin Q InouyeIndiaXuxue Feng NEW
Aruna R WaycottSpainXuxue Feng PROPOSAL
Clifford T ChuiRussiaStephen Shaw RENEWAL
Clifford U ButtBrazilOnyama Limba QUALIFIED
Mujtaba O BologniaUnited KingdomXuxue Feng QUALIFIED
Salvatore K GillianIndiaAmy Elsner NEW
Misaki U DarakjyCanadaAmy Elsner QUALIFIED
Claire D VocelkaArgentinaIoni Bowcher PROPOSAL
Leon L PerinFranceIvan Magalhaes RENEWAL
Faith B TollnerGermanyIoni Bowcher RENEWAL
Maria S StensethRussiaOnyama Limba NEW
Salvatore W AmigonJapanIvan Magalhaes NEW
Rodrigues Y ChuiItalyAnna Fali NEW
Maria R ChuiRussiaElwin Sharvill UNQUALIFIED
Munro A RimCanadaStephen Shaw UNQUALIFIED
Leon B MaletUnited KingdomBernardo Dominic NEGOTIATION
Leja L WieserSpainElwin Sharvill RENEWAL
Murillo C GarufiJapanIoni Bowcher NEW
Ivar A MacleadArgentinaAnna Fali RENEWAL
Aruna M FerenczBrazilIvan Magalhaes NEW
Johnson F FlosiArgentinaAmy Elsner QUALIFIED
Antonio U ButtAustraliaXuxue Feng NEGOTIATION
Leon Q ButtJapanAmy Elsner UNQUALIFIED
Isabel H CampainBrazilAmy Elsner PROPOSAL
Julie W StockhamGermanyElwin Sharvill UNQUALIFIED
Costa A SlusarskiGermanyAmy Elsner NEW
Ricardo Z MaletArgentinaIvan Magalhaes NEGOTIATION
Misaki K StensethCanadaIvan Magalhaes UNQUALIFIED
Emily R MaletArgentinaIvan Magalhaes NEW
Cody Y MacleadBrazilBernardo Dominic NEW
Emily X StensethItalyAsiya Javayant UNQUALIFIED
Nicolas R OldroydJapanBernardo Dominic NEW
Rodrigues X AlbaresRussiaAmy Elsner RENEWAL
Ashley S ButtUnited KingdomOnyama Limba QUALIFIED
Munro H ChuiSpainOnyama Limba PROPOSAL
Mayumi Q StensethUnited KingdomBernardo Dominic PROPOSAL
Frozen Columns
Name
Rodrigues J Dilliard
Misaki U Albares
Greenwood J Bowley
Isabel U Tollner
Clifford U Kolmetz
Maisha K Albares
Misaki J Iturbide
Munro C Amigon
Leon M Vocelka
Izzy H Figeroa
Leja Y Waycott
Mayumi P Briddick
Leja M Whobrey
Johnson P Inouye
Stacey E Doe
Ivar R Sergi
Jeanfrancois Z Perin
Emily Y Shinko
Cody V Ostrosky
Emily R Rim
Juan G Dilliard
Misaki W Malet
Alejandro I Nestle
Izzy U Ferencz
Aika R Campain
Mujtaba H Shinko
Leja E Albares
Ashley K Rim
Juan Q Butt
Aruna F Caudy
Ivar L Rim
Rodrigues J Nicka
Cody F Paprocki
Mujtaba V Slusarski
Faith W Stockham
Maisha G Dilliard
Salvatore H Iturbide
Ricardo X Sergi
Munro X Nicka
Sinclair A Shinko
Clifford Z Bolognia
James G Vocelka
Smith I Marrier
Izzy J Doe
Tony L Waycott
Sinclair D Oldroyd
Alejandro F Dilliard
Francesco F Glick
Julie G Briddick
Cody O Slusarski
IdCountryDate
1000Brazil2025-09-27
1001India2025-09-23
1002Canada2025-10-06
1003Russia2025-10-16
1004Argentina2025-10-04
1005Argentina2025-10-15
1006Japan2025-10-08
1007Argentina2025-09-24
1008United Kingdom2025-10-01
1009Russia2025-10-16
1010United Kingdom2025-09-22
1011France2025-10-08
1012Germany2025-09-29
1013Spain2025-09-26
1014Spain2025-10-06
1015United Kingdom2025-10-12
1016France2025-09-20
1017France2025-10-12
1018Spain2025-09-23
1019Australia2025-10-14
1020Brazil2025-10-07
1021Japan2025-09-29
1022Spain2025-10-01
1023Brazil2025-10-17
1024India2025-09-22
1025Australia2025-10-19
1026Spain2025-10-15
1027Canada2025-09-25
1028Germany2025-10-03
1029Canada2025-10-10
1030France2025-10-07
1031United Kingdom2025-10-06
1032Italy2025-09-25
1033Brazil2025-09-27
1034Australia2025-09-27
1035Argentina2025-10-05
1036Argentina2025-10-06
1037Brazil2025-09-29
1038India2025-10-12
1039Russia2025-10-05
1040Russia2025-10-12
1041Argentina2025-09-28
1042Argentina2025-10-04
1043Canada2025-10-11
1044Russia2025-10-06
1045Germany2025-10-19
1046India2025-09-22
1047Canada2025-09-25
1048Spain2025-10-02
1049Italy2025-10-14

On-Demand Data

NameIdCountryDate
Maria G Morasca1000Russia2025-10-01
Smith Z Briddick1001India2025-09-27
Wickens M Slusarski1002Brazil2025-09-30
Kadeem Y Briddick1003Germany2025-09-29
Wickens N Shinko1004Italy2025-10-15
Kadeem T Kusko1005Japan2025-10-15
Jennifer E Dilliard1006Spain2025-10-02
Jones Z Sergi1007United Kingdom2025-10-17
Jennifer C Whobrey1008India2025-09-21
Octavia Y Tollner1009Japan2025-09-23
Jeanfrancois M Kusko1010Brazil2025-09-20
Maria H Ostrosky1011Argentina2025-10-19
Izzy P Stenseth1012United Kingdom2025-10-13
Jeanfrancois J Whobrey1013France2025-10-09
Alejandro K Royster1014Germany2025-10-12
Jennifer P Rim1015Japan2025-10-17
Ivar H Kolmetz1016United Kingdom2025-10-13
Izzy D Briddick1017Brazil2025-09-21
Arvin L Ruta1018Brazil2025-10-19
Clifford T Nicka1019France2025-10-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki P IturbideFranceAnna Fali NEGOTIATION
Ricardo R RoysterUnited KingdomOnyama Limba NEGOTIATION
Isabel L MacleadItalyStephen Shaw UNQUALIFIED
David K PaprockiFranceIoni Bowcher QUALIFIED
Faith L DilliardArgentinaElwin Sharvill NEGOTIATION
Octavia R MacleadBrazilXuxue Feng UNQUALIFIED
Deepesh D CampainJapanAsiya Javayant RENEWAL
Sinclair O InouyeItalyStephen Shaw RENEWAL
Kadeem E AmigonRussiaAmy Elsner NEGOTIATION
Antonio W RimArgentinaAmy Elsner NEW
Stacey K CampainAustraliaElwin Sharvill PROPOSAL
Chavez R AmigonGermanyAmy Elsner PROPOSAL
David I GauchoArgentinaBernardo Dominic QUALIFIED
Costa U RutaIndiaStephen Shaw RENEWAL
Tony F RoysterRussiaAsiya Javayant NEGOTIATION
Faith Q MaletSpainAsiya Javayant PROPOSAL
Munro F CaudyFranceIoni Bowcher NEGOTIATION
David P DoeAustraliaAsiya Javayant RENEWAL
Greenwood T KuskoJapanAsiya Javayant RENEWAL
Munro G FollerItalyOnyama Limba UNQUALIFIED
Francesco W ShinkoGermanyAsiya Javayant RENEWAL
Rodrigues I MorascaIndiaIvan Magalhaes NEGOTIATION
Adams O BowleyCanadaAsiya Javayant QUALIFIED
Julie T KolmetzFranceIvan Magalhaes QUALIFIED
James E ButtJapanAsiya Javayant QUALIFIED
Johnson Z StensethJapanStephen Shaw RENEWAL
David V OldroydAustraliaIoni Bowcher NEW
Jennifer I FerenczGermanyAmy Elsner QUALIFIED
Kadeem G WhobreyIndiaAsiya Javayant RENEWAL
Johnson B BologniaUnited KingdomXuxue Feng QUALIFIED
Juan V MaletAustraliaBernardo Dominic NEW
Greenwood Y FollerAustraliaElwin Sharvill UNQUALIFIED
Francesco X StensethGermanyStephen Shaw RENEWAL
Isabel B OstroskySpainElwin Sharvill PROPOSAL
Darci O MacleadBrazilOnyama Limba RENEWAL
Morrow M DoeIndiaAnna Fali PROPOSAL
Claire Q WaycottBrazilAnna Fali QUALIFIED
Antonio O DoeJapanAmy Elsner QUALIFIED
Ashley C IturbideBrazilElwin Sharvill QUALIFIED
Sinclair A AlbaresIndiaBernardo Dominic NEGOTIATION

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