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
Tony Q NestleFranceAmy Elsner RENEWAL
Mayumi G IturbideArgentinaAmy Elsner UNQUALIFIED
Clifford M StensethFranceXuxue Feng UNQUALIFIED
Jones N WaycottItalyAsiya Javayant NEW
Kaitlin X InouyeAustraliaXuxue Feng PROPOSAL
David H GarufiItalyOnyama Limba RENEWAL
Sinclair Y InouyeIndiaAnna Fali NEGOTIATION
Salvatore P FlosiUnited KingdomStephen Shaw NEW
Julie Z GauchoGermanyIoni Bowcher NEGOTIATION
Ricardo M MarrierAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois M KuskoSpainOnyama Limba NEGOTIATION
Rodrigues J SchemmerUnited KingdomBernardo Dominic PROPOSAL
Morrow Q ShinkoJapanXuxue Feng UNQUALIFIED
Ricardo B SergiGermanyOnyama Limba UNQUALIFIED
Aditya T VenereGermanyStephen Shaw PROPOSAL
Francesco C FollerBrazilAnna Fali QUALIFIED
Rodrigues Y ChuiRussiaXuxue Feng PROPOSAL
Sinclair F PaprockiBrazilAsiya Javayant PROPOSAL
Munro R MaletGermanyIoni Bowcher PROPOSAL
Emily D SaylorsBrazilIoni Bowcher RENEWAL
Jefferson W FlosiAustraliaElwin Sharvill NEGOTIATION
Clifford W KolmetzGermanyXuxue Feng UNQUALIFIED
Cody D RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Maisha Z DarakjyArgentinaAsiya Javayant NEGOTIATION
Francesco S IturbideIndiaAnna Fali PROPOSAL
Jeanfrancois M KuskoGermanyIoni Bowcher RENEWAL
Jennifer M NickaJapanIoni Bowcher QUALIFIED
Nicolas I ChuiRussiaOnyama Limba NEGOTIATION
Clifford P DilliardGermanyXuxue Feng UNQUALIFIED
Tony C GillianArgentinaStephen Shaw PROPOSAL
Leja Y FollerRussiaStephen Shaw UNQUALIFIED
Maisha U DarakjyItalyXuxue Feng NEW
Jeanfrancois E RulapaughItalyAmy Elsner UNQUALIFIED
Aruna M OstroskyAustraliaElwin Sharvill NEGOTIATION
Rodrigues L CaldareraJapanAnna Fali RENEWAL
Adams R KuskoItalyXuxue Feng QUALIFIED
Aika T BriddickJapanAnna Fali RENEWAL
Tony B GlickUnited KingdomStephen Shaw PROPOSAL
Tony F SchemmerItalyIvan Magalhaes RENEWAL
David Q BowleyCanadaStephen Shaw PROPOSAL
Faith J GarufiBrazilOnyama Limba NEW
Emily R RulapaughAustraliaBernardo Dominic PROPOSAL
Tony C RoysterJapanIvan Magalhaes PROPOSAL
Leja F BologniaFranceIvan Magalhaes UNQUALIFIED
Nicolas F PerinBrazilAnna Fali QUALIFIED
Wickens N VocelkaArgentinaBernardo Dominic NEGOTIATION
Octavia X GauchoAustraliaOnyama Limba NEGOTIATION
Misaki R GlickItalyAmy Elsner PROPOSAL
Ricardo K VenereItalyIoni Bowcher RENEWAL
Antonio M FerenczItalyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo G FerenczGermanyAmy Elsner UNQUALIFIED
Mujtaba C OldroydIndiaBernardo Dominic NEW
Octavia X ShinkoCanadaBernardo Dominic NEW
Maisha W FlosiFranceXuxue Feng RENEWAL
Morrow C IturbideFranceXuxue Feng QUALIFIED
Silvio D FigeroaBrazilElwin Sharvill RENEWAL
Smith K PaprockiItalyXuxue Feng NEW
Silvio Q WhobreyUnited KingdomOnyama Limba NEGOTIATION
Darci E MacleadGermanyIvan Magalhaes NEGOTIATION
David Y KolmetzItalyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Q SergiJapan2025-08-20Truhlar And Truhlar Attys UNQUALIFIED28Bernardo Dominic
1001Alejandro A BologniaBrazil2025-08-22Rangoni Of Florence RENEWAL29Ioni Bowcher
1002Leon K BriddickRussia2025-08-15Chanay, Jeffrey A Esq UNQUALIFIED6Bernardo Dominic
1003Clifford B GillianArgentina2025-08-04Truhlar And Truhlar Attys UNQUALIFIED40Bernardo Dominic
1004Sinclair F ShinkoSpain2025-08-20Chemel, James L Cpa PROPOSAL38Ioni Bowcher
1005Maisha X PoquetteCanada2025-08-14Morlong Associates PROPOSAL56Ioni Bowcher
1006Ivar P MacleadJapan2025-08-04Truhlar And Truhlar Attys RENEWAL4Bernardo Dominic
1007Chavez U KuskoRussia2025-08-05Truhlar And Truhlar Attys NEW87Anna Fali
1008David A MacleadAustralia2025-08-26Rousseaux, Michael Esq UNQUALIFIED45Asiya Javayant
1009Ivar A GauchoCanada2025-08-28Chanay, Jeffrey A Esq RENEWAL40Xuxue Feng
1010James B GauchoIndia2025-08-16Rousseaux, Michael Esq UNQUALIFIED27Onyama Limba
1011Munro S OldroydUnited Kingdom2025-08-26Feltz Printing Service QUALIFIED37Amy Elsner
1012Leon Q PaprockiFrance2025-08-07Rangoni Of Florence NEW24Stephen Shaw
1013Deepesh Q OstroskyAustralia2025-08-17Chanay, Jeffrey A Esq NEW16Ioni Bowcher
1014Faith G NickaItaly2025-08-15Feiner Bros RENEWAL46Bernardo Dominic
1015Stacey Y RutaAustralia2025-08-04Rangoni Of Florence NEGOTIATION63Asiya Javayant
1016Mujtaba M ButtUnited Kingdom2025-08-09Rousseaux, Michael Esq QUALIFIED93Stephen Shaw
1017Tony H DarakjyBrazil2025-08-28Chanay, Jeffrey A Esq NEW28Elwin Sharvill
1018Isabel G MaletFrance2025-08-02Rangoni Of Florence QUALIFIED15Ivan Magalhaes
1019Mujtaba Y WieserItaly2025-08-20Rangoni Of Florence PROPOSAL2Xuxue Feng
1020Cody B OldroydGermany2025-08-18Benton, John B Jr NEW82Elwin Sharvill
1021Jeanfrancois L StockhamBrazil2025-08-23Benton, John B Jr PROPOSAL77Onyama Limba
1022Jennifer W ShinkoArgentina2025-08-26King, Christopher A Esq NEW94Bernardo Dominic
1023Morrow O ButtSpain2025-08-21Rangoni Of Florence UNQUALIFIED30Elwin Sharvill
1024Silvio J RulapaughCanada2025-08-23Rangoni Of Florence RENEWAL63Anna Fali
1025Ivar G GlickIndia2025-08-28Chanay, Jeffrey A Esq RENEWAL5Anna Fali
1026Silvio Q TollnerUnited Kingdom2025-08-23Morlong Associates NEW10Anna Fali
1027Francesco R WhobreyJapan2025-08-23Dorl, James J Esq QUALIFIED89Ioni Bowcher
1028Juan G ShinkoAustralia2025-08-25Truhlar And Truhlar Attys NEGOTIATION54Onyama Limba
1029Kaitlin J CaldareraItaly2025-08-20Chanay, Jeffrey A Esq QUALIFIED52Elwin Sharvill
1030Faith Q WaycottAustralia2025-08-06Morlong Associates RENEWAL66Anna Fali
1031Kadeem E FlosiJapan2025-08-23Morlong Associates RENEWAL34Stephen Shaw
1032Jennifer Q MarrierGermany2025-08-13Rousseaux, Michael Esq NEW51Bernardo Dominic
1033Alejandro X BologniaItaly2025-08-19Commercial Press RENEWAL40Bernardo Dominic
1034James A WaycottIndia2025-08-08Rousseaux, Michael Esq UNQUALIFIED28Elwin Sharvill
1035Faith B InouyeRussia2025-08-05King, Christopher A Esq UNQUALIFIED39Onyama Limba
1036Wickens W ButtIndia2025-08-11Buckley Miller Wright UNQUALIFIED74Amy Elsner
1037Misaki T PoquetteArgentina2025-08-13Buckley Miller Wright PROPOSAL21Onyama Limba
1038Maisha O WieserGermany2025-08-22Buckley Miller Wright NEGOTIATION21Xuxue Feng
1039Maisha F DilliardUnited Kingdom2025-08-18Rangoni Of Florence UNQUALIFIED38Elwin Sharvill
1040Jeanfrancois W FigeroaAustralia2025-08-09Rousseaux, Michael Esq RENEWAL80Xuxue Feng
1041Faith J AlbaresRussia2025-08-11Chanay, Jeffrey A Esq QUALIFIED66Asiya Javayant
1042Misaki L MarrierArgentina2025-08-15Rousseaux, Michael Esq UNQUALIFIED20Elwin Sharvill
1043Jennifer H RulapaughBrazil2025-08-22Chemel, James L Cpa PROPOSAL73Amy Elsner
1044Maria V NickaItaly2025-08-21Chemel, James L Cpa PROPOSAL58Anna Fali
1045Misaki A PoquetteAustralia2025-08-01Dorl, James J Esq NEW67Onyama Limba
1046Maria P MarrierGermany2025-08-10Benton, John B Jr NEGOTIATION50Ivan Magalhaes
1047Aika I StockhamUnited Kingdom2025-08-27King, Christopher A Esq NEW86Stephen Shaw
1048Maisha W StockhamSpain2025-08-04Feiner Bros RENEWAL47Xuxue Feng
1049James Z AmigonItaly2025-07-31Rangoni Of Florence RENEWAL50Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Nicolas U CaudyCanadaIoni Bowcher QUALIFIED
Greenwood X KolmetzItalyIoni Bowcher NEGOTIATION
Sinclair N FerenczArgentinaAnna Fali UNQUALIFIED
Antonio V MaletRussiaBernardo Dominic RENEWAL
David D MaletUnited KingdomXuxue Feng UNQUALIFIED
Alejandro E StensethBrazilIoni Bowcher UNQUALIFIED
Kadeem N ShinkoRussiaStephen Shaw NEGOTIATION
Sinclair J RoysterUnited KingdomOnyama Limba QUALIFIED
Wickens K ButtFranceXuxue Feng UNQUALIFIED
Alejandro F GillianItalyAsiya Javayant QUALIFIED
Isabel H OstroskyRussiaIoni Bowcher QUALIFIED
Ivar D FerenczJapanOnyama Limba PROPOSAL
Claire K TollnerBrazilIvan Magalhaes RENEWAL
Arvin K MarrierSpainOnyama Limba NEGOTIATION
Juan U OldroydJapanOnyama Limba PROPOSAL
Kaitlin X FerenczFranceAsiya Javayant PROPOSAL
Kaitlin L GarufiJapanElwin Sharvill NEGOTIATION
Johnson Z RutaRussiaAsiya Javayant RENEWAL
Salvatore Y BriddickSpainAmy Elsner QUALIFIED
Aruna U KuskoAustraliaIoni Bowcher RENEWAL
Jones N GauchoJapanIoni Bowcher UNQUALIFIED
Leja Z GauchoRussiaBernardo Dominic QUALIFIED
Leja V PoquetteFranceStephen Shaw PROPOSAL
Adams S SaylorsJapanOnyama Limba NEW
Smith Y SchemmerSpainStephen Shaw UNQUALIFIED
Ivar Z OstroskyAustraliaIoni Bowcher PROPOSAL
Cody E MaletGermanyOnyama Limba UNQUALIFIED
Maisha E BologniaBrazilIoni Bowcher NEW
Clifford J RoysterBrazilIoni Bowcher NEGOTIATION
Deepesh O SergiFranceIoni Bowcher NEW
Mujtaba H BowleyIndiaAsiya Javayant QUALIFIED
Antonio X VocelkaJapanIoni Bowcher QUALIFIED
Alejandro X OstroskyArgentinaOnyama Limba UNQUALIFIED
Claire Z AlbaresFranceElwin Sharvill UNQUALIFIED
Julie L BowleyAustraliaIvan Magalhaes UNQUALIFIED
Murillo G VocelkaSpainElwin Sharvill UNQUALIFIED
Stacey E ButtCanadaBernardo Dominic PROPOSAL
Tony Q BologniaArgentinaStephen Shaw QUALIFIED
Julie I NickaArgentinaBernardo Dominic UNQUALIFIED
Kaitlin L VenereCanadaElwin Sharvill RENEWAL
Mayumi U OstroskyArgentinaAsiya Javayant RENEWAL
Alejandro H CampainIndiaXuxue Feng UNQUALIFIED
Arvin N WhobreyRussiaAmy Elsner QUALIFIED
Aika C InouyeSpainBernardo Dominic PROPOSAL
Tony S GauchoRussiaBernardo Dominic PROPOSAL
Leon D CampainArgentinaIoni Bowcher UNQUALIFIED
Adams U GarufiArgentinaAsiya Javayant NEGOTIATION
Ashley P NestleArgentinaIvan Magalhaes NEGOTIATION
Mujtaba I CaldareraCanadaOnyama Limba UNQUALIFIED
Ivar B BriddickSpainElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Leja H Shinko
Maria B Malet
Rodrigues P Nestle
Greenwood H Foller
Maria V Perin
Nicolas P Waycott
Aditya G Malet
Alejandro Z Morasca
Alejandro Z Caudy
Juan P Glick
Maisha F Bolognia
Aika C Nestle
Mayumi J Malet
Jeanfrancois J Amigon
Silvio X Royster
Aika V Kolmetz
Claire A Maclead
Octavia Q Tollner
Smith W Saylors
Juan G Oldroyd
Leja T Nicka
Morrow Z Maclead
Clifford S Sergi
Maria Z Stenseth
Jeanfrancois A Garufi
Chavez I Butt
Aika I Amigon
Rodrigues L Malet
Tony N Flosi
Kadeem M Nestle
Chavez A Sergi
Ivar Q Bowley
Nicolas P Campain
Antonio Y Chui
Leja A Nicka
Emily P Amigon
Aditya H Darakjy
Juan F Figeroa
Clifford Q Shinko
Tony N Bowley
Antonio W Oldroyd
Isabel F Butt
Ricardo F Caudy
Chavez J Iturbide
Octavia R Perin
Johnson O Wieser
Deepesh X Stockham
Isabel M Kolmetz
Jennifer X Butt
Maisha Q Slusarski
IdCountryDate
1000Russia2025-08-19
1001Russia2025-07-30
1002Germany2025-08-06
1003Russia2025-08-18
1004Italy2025-08-16
1005Brazil2025-08-22
1006Argentina2025-08-02
1007Canada2025-08-14
1008Germany2025-08-03
1009Japan2025-08-27
1010Russia2025-08-25
1011Brazil2025-08-26
1012India2025-08-12
1013India2025-08-21
1014Germany2025-08-26
1015Argentina2025-08-22
1016United Kingdom2025-08-21
1017India2025-08-11
1018Canada2025-08-01
1019United Kingdom2025-08-15
1020Brazil2025-07-31
1021Brazil2025-08-16
1022Russia2025-08-16
1023Italy2025-08-28
1024United Kingdom2025-08-22
1025Australia2025-08-06
1026Argentina2025-08-07
1027Italy2025-08-17
1028Japan2025-08-03
1029India2025-07-31
1030Argentina2025-07-31
1031Germany2025-08-16
1032Italy2025-08-26
1033Brazil2025-08-25
1034Spain2025-08-22
1035Germany2025-08-08
1036Brazil2025-08-20
1037Canada2025-08-11
1038Canada2025-08-23
1039Canada2025-08-01
1040Japan2025-08-25
1041India2025-08-16
1042Germany2025-08-19
1043Germany2025-08-10
1044United Kingdom2025-08-08
1045Spain2025-08-01
1046Japan2025-08-12
1047France2025-08-24
1048Australia2025-08-20
1049Canada2025-08-26

On-Demand Data

NameIdCountryDate
Aditya G Saylors1000Russia2025-08-09
Leon E Chui1001United Kingdom2025-08-24
Chavez M Vocelka1002Japan2025-08-22
Greenwood Y Ostrosky1003France2025-08-09
Silvio Z Saylors1004Russia2025-08-18
Alejandro S Caldarera1005Canada2025-08-26
Nicolas V Venere1006Italy2025-08-19
Silvio V Inouye1007Argentina2025-07-31
Jeanfrancois V Bolognia1008Germany2025-07-31
Cody H Vocelka1009Russia2025-08-06
Jefferson L Rulapaugh1010France2025-08-20
Nicolas G Figeroa1011Japan2025-08-12
Mayumi H Albares1012Spain2025-08-15
David R Figeroa1013India2025-08-04
Claire O Campain1014Brazil2025-08-05
Julie I Ostrosky1015Brazil2025-08-08
Tony P Foller1016Italy2025-08-09
Cody Z Tollner1017Germany2025-08-11
Maisha J Paprocki1018Canada2025-07-31
Claire T Waycott1019Japan2025-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie P NickaSpainAsiya Javayant RENEWAL
Darci I PoquetteIndiaAmy Elsner NEW
Mujtaba T RutaItalyOnyama Limba PROPOSAL
Emily W WieserItalyBernardo Dominic QUALIFIED
Maria T PaprockiBrazilIvan Magalhaes UNQUALIFIED
Leja Q NickaUnited KingdomAsiya Javayant PROPOSAL
Sinclair P BowleyBrazilAnna Fali QUALIFIED
Wickens H SlusarskiSpainIoni Bowcher UNQUALIFIED
Smith R FlosiCanadaIoni Bowcher NEW
Smith M CaldareraBrazilXuxue Feng RENEWAL
Rodrigues L StensethUnited KingdomAsiya Javayant QUALIFIED
Smith U BriddickBrazilAmy Elsner NEW
Alejandro Q IturbideItalyAsiya Javayant UNQUALIFIED
Aruna U SchemmerAustraliaBernardo Dominic RENEWAL
Salvatore U IturbideJapanAmy Elsner NEW
Ricardo X CaudyAustraliaStephen Shaw UNQUALIFIED
David U PaprockiBrazilBernardo Dominic NEGOTIATION
Clifford L SchemmerItalyXuxue Feng NEW
Mujtaba Z RutaAustraliaStephen Shaw PROPOSAL
Arvin M SlusarskiSpainBernardo Dominic NEW
Claire Z GillianUnited KingdomAsiya Javayant NEGOTIATION
Morrow B StockhamArgentinaOnyama Limba NEW
Izzy I WieserAustraliaXuxue Feng PROPOSAL
Chavez P AlbaresGermanyBernardo Dominic QUALIFIED
Alejandro Y RulapaughIndiaBernardo Dominic RENEWAL
Emily X SlusarskiJapanXuxue Feng PROPOSAL
James Z IturbideArgentinaAsiya Javayant RENEWAL
Darci Z SchemmerJapanBernardo Dominic NEW
Mujtaba U AmigonUnited KingdomBernardo Dominic NEGOTIATION
Maria X DilliardFranceAnna Fali UNQUALIFIED
Nicolas B WhobreyRussiaAmy Elsner RENEWAL
Kaitlin Y DilliardAustraliaIvan Magalhaes PROPOSAL
Aika R InouyeGermanyAmy Elsner RENEWAL
Jefferson H DarakjySpainIvan Magalhaes QUALIFIED
Aditya Y ShinkoItalyStephen Shaw NEW
Francesco T FigeroaUnited KingdomIvan Magalhaes NEW
Morrow Y IturbideRussiaIoni Bowcher PROPOSAL
Sinclair R NestleBrazilBernardo Dominic RENEWAL
Morrow X SlusarskiSpainIoni Bowcher NEW
Aditya I BriddickCanadaIvan 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>