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
Faith E VocelkaAustraliaAmy Elsner NEW
Cody P ChuiFranceAnna Fali RENEWAL
Izzy B DoeCanadaElwin Sharvill UNQUALIFIED
Clifford K GillianAustraliaIoni Bowcher RENEWAL
Aditya B DoeSpainElwin Sharvill PROPOSAL
Ricardo Y ShinkoRussiaStephen Shaw PROPOSAL
Adams X WieserGermanyStephen Shaw QUALIFIED
Mayumi Z DarakjyBrazilBernardo Dominic NEGOTIATION
Johnson F SchemmerArgentinaOnyama Limba UNQUALIFIED
Leja N IturbideJapanIoni Bowcher PROPOSAL
Aruna R OldroydUnited KingdomIvan Magalhaes QUALIFIED
Costa B KolmetzGermanyIoni Bowcher QUALIFIED
James L VocelkaGermanyAnna Fali UNQUALIFIED
Mujtaba Z BowleyArgentinaIoni Bowcher NEGOTIATION
Misaki E AlbaresCanadaIvan Magalhaes PROPOSAL
Adams M TollnerBrazilAsiya Javayant UNQUALIFIED
Kadeem W MaletJapanOnyama Limba UNQUALIFIED
Jeanfrancois S ButtFranceAsiya Javayant NEGOTIATION
Juan E FollerAustraliaAsiya Javayant NEW
Alejandro Q BriddickBrazilElwin Sharvill NEGOTIATION
Claire Q AlbaresRussiaXuxue Feng QUALIFIED
Misaki G ChuiBrazilBernardo Dominic NEW
Octavia Q WhobreyFranceAsiya Javayant QUALIFIED
Wickens O SergiFranceAnna Fali NEGOTIATION
Mayumi X BologniaUnited KingdomXuxue Feng NEGOTIATION
Francesco D DoeGermanyIoni Bowcher PROPOSAL
Leja M FigeroaItalyStephen Shaw PROPOSAL
Morrow F MaletUnited KingdomAmy Elsner UNQUALIFIED
Juan R DarakjyFranceStephen Shaw NEW
Aditya P VocelkaItalyAnna Fali NEGOTIATION
Arvin L RimItalyIvan Magalhaes NEW
Faith H ButtSpainAsiya Javayant UNQUALIFIED
Alejandro M RulapaughFranceBernardo Dominic RENEWAL
Alejandro J RutaBrazilIvan Magalhaes QUALIFIED
Adams N FigeroaCanadaAmy Elsner UNQUALIFIED
Rodrigues Q VocelkaArgentinaOnyama Limba UNQUALIFIED
Munro L MarrierItalyAnna Fali NEW
Isabel U WhobreyIndiaIoni Bowcher NEGOTIATION
Mayumi U PaprockiUnited KingdomStephen Shaw PROPOSAL
Munro B OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Aruna A ButtFranceIvan Magalhaes UNQUALIFIED
Arvin E GauchoGermanyOnyama Limba UNQUALIFIED
Maria Y SergiIndiaIoni Bowcher NEGOTIATION
Aruna Q BologniaJapanAsiya Javayant RENEWAL
Francesco S MaletUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba Y RoysterCanadaBernardo Dominic RENEWAL
Chavez A GauchoArgentinaXuxue Feng UNQUALIFIED
Munro J StockhamRussiaOnyama Limba NEW
Antonio Y KolmetzAustraliaIvan Magalhaes QUALIFIED
Isabel U ChuiUnited KingdomIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily R DarakjyRussiaAsiya Javayant NEGOTIATION
Francesco M SchemmerCanadaXuxue Feng NEW
Claire W BologniaFranceIvan Magalhaes UNQUALIFIED
Jones S MorascaIndiaAmy Elsner NEGOTIATION
Munro I RutaFranceIoni Bowcher QUALIFIED
Ricardo M FerenczBrazilOnyama Limba RENEWAL
Ricardo U NickaAustraliaElwin Sharvill PROPOSAL
Leon W OstroskyArgentinaAnna Fali PROPOSAL
Chavez P MorascaArgentinaBernardo Dominic PROPOSAL
Adams U NickaGermanyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya F SaylorsFrance2025-08-08Dorl, James J Esq PROPOSAL71Onyama Limba
1001Tony Z FlosiBrazil2025-08-04Commercial Press QUALIFIED49Xuxue Feng
1002Misaki S TollnerJapan2025-08-02Printing Dimensions UNQUALIFIED61Ivan Magalhaes
1003Emily Y PerinSpain2025-07-20Truhlar And Truhlar Attys UNQUALIFIED90Anna Fali
1004Deepesh M GillianJapan2025-08-04Chanay, Jeffrey A Esq PROPOSAL9Ivan Magalhaes
1005Octavia K SergiRussia2025-07-21Rousseaux, Michael Esq NEW62Amy Elsner
1006David J FerenczUnited Kingdom2025-07-31Chemel, James L Cpa RENEWAL40Xuxue Feng
1007Murillo Y OstroskyCanada2025-08-12Printing Dimensions NEW81Ioni Bowcher
1008Arvin Y FollerCanada2025-07-17Rousseaux, Michael Esq UNQUALIFIED68Elwin Sharvill
1009Kadeem R VocelkaIndia2025-08-06King, Christopher A Esq NEGOTIATION43Xuxue Feng
1010Ashley R MacleadJapan2025-08-13Buckley Miller Wright NEGOTIATION65Anna Fali
1011Silvio Y StockhamCanada2025-07-25Chapman, Ross E Esq RENEWAL43Amy Elsner
1012Ivar P BriddickUnited Kingdom2025-08-01Benton, John B Jr RENEWAL87Ivan Magalhaes
1013Murillo S DarakjyIndia2025-07-26Buckley Miller Wright NEW20Anna Fali
1014Ashley C CaudyCanada2025-08-08Chapman, Ross E Esq NEW16Stephen Shaw
1015Sinclair P AmigonRussia2025-08-10Truhlar And Truhlar Attys PROPOSAL90Stephen Shaw
1016Ashley N IturbideArgentina2025-07-19Morlong Associates PROPOSAL86Elwin Sharvill
1017Misaki X MarrierUnited Kingdom2025-07-25Chapman, Ross E Esq PROPOSAL52Anna Fali
1018Ricardo J StockhamUnited Kingdom2025-07-21Printing Dimensions NEW44Ivan Magalhaes
1019Munro T GarufiCanada2025-08-01Chapman, Ross E Esq UNQUALIFIED79Anna Fali
1020Francesco H RimBrazil2025-07-28Feltz Printing Service PROPOSAL65Asiya Javayant
1021Jennifer E GillianAustralia2025-07-18Truhlar And Truhlar Attys NEW4Stephen Shaw
1022Izzy W VenereIndia2025-08-03Chapman, Ross E Esq UNQUALIFIED26Ioni Bowcher
1023Aika S AlbaresItaly2025-08-13Chemel, James L Cpa QUALIFIED56Amy Elsner
1024Maisha U VenereArgentina2025-07-18Printing Dimensions UNQUALIFIED47Elwin Sharvill
1025Salvatore P FlosiIndia2025-08-01Feltz Printing Service RENEWAL11Asiya Javayant
1026Arvin G GlickIndia2025-07-21Benton, John B Jr PROPOSAL2Asiya Javayant
1027Silvio Y OldroydBrazil2025-08-06Chemel, James L Cpa PROPOSAL47Ioni Bowcher
1028Deepesh P WaycottFrance2025-07-23Rangoni Of Florence NEGOTIATION18Anna Fali
1029Murillo Y GarufiItaly2025-07-22Benton, John B Jr NEGOTIATION9Bernardo Dominic
1030Cody F FlosiFrance2025-08-09Chapman, Ross E Esq NEW86Ioni Bowcher
1031Izzy K StensethJapan2025-08-12Feiner Bros NEGOTIATION11Ioni Bowcher
1032Costa B MarrierIndia2025-08-10Benton, John B Jr NEGOTIATION13Amy Elsner
1033Sinclair A BowleyBrazil2025-07-20King, Christopher A Esq NEGOTIATION15Elwin Sharvill
1034Greenwood F PerinArgentina2025-08-14Rangoni Of Florence QUALIFIED0Anna Fali
1035Maria P GlickItaly2025-08-05Buckley Miller Wright QUALIFIED28Amy Elsner
1036Silvio X DilliardIndia2025-08-08Chemel, James L Cpa QUALIFIED64Bernardo Dominic
1037Alejandro F KolmetzGermany2025-08-09Feiner Bros NEGOTIATION39Onyama Limba
1038Nicolas I RimSpain2025-07-28Chanay, Jeffrey A Esq RENEWAL5Anna Fali
1039Costa H RulapaughGermany2025-08-10Commercial Press NEGOTIATION70Stephen Shaw
1040Aruna P FollerJapan2025-08-10Commercial Press PROPOSAL44Bernardo Dominic
1041Jefferson X WaycottGermany2025-07-23Chemel, James L Cpa NEGOTIATION60Anna Fali
1042Isabel O FerenczItaly2025-08-10Chapman, Ross E Esq PROPOSAL37Xuxue Feng
1043Stacey Q MaletJapan2025-08-08Benton, John B Jr PROPOSAL85Ioni Bowcher
1044Munro W CaldareraArgentina2025-08-08Chapman, Ross E Esq QUALIFIED30Xuxue Feng
1045Salvatore X RimArgentina2025-08-11Feltz Printing Service RENEWAL81Anna Fali
1046David V OstroskyRussia2025-07-22Benton, John B Jr UNQUALIFIED25Ioni Bowcher
1047Aika N AmigonSpain2025-07-26Feltz Printing Service NEW90Xuxue Feng
1048Mayumi S TollnerBrazil2025-08-13Commercial Press UNQUALIFIED67Ioni Bowcher
1049Morrow I TollnerRussia2025-07-19Feiner Bros QUALIFIED76Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel M MaletJapanAnna Fali NEGOTIATION
Chavez O DoeFranceOnyama Limba NEGOTIATION
Jefferson L WhobreyArgentinaAmy Elsner UNQUALIFIED
Emily N VenereBrazilOnyama Limba NEW
Rodrigues K StensethItalyBernardo Dominic RENEWAL
Ashley D VocelkaFranceAnna Fali PROPOSAL
David N RoysterCanadaAnna Fali QUALIFIED
Ricardo U SchemmerSpainElwin Sharvill NEGOTIATION
Ashley B VenereJapanElwin Sharvill NEGOTIATION
Mayumi Q WaycottGermanyElwin Sharvill PROPOSAL
Johnson Z AlbaresUnited KingdomIoni Bowcher PROPOSAL
Emily O BriddickGermanyStephen Shaw QUALIFIED
Emily T ChuiJapanIvan Magalhaes NEGOTIATION
Munro K PoquetteIndiaXuxue Feng UNQUALIFIED
David P RutaArgentinaIoni Bowcher PROPOSAL
Aditya A OstroskyJapanIoni Bowcher RENEWAL
Smith Y CampainBrazilAmy Elsner UNQUALIFIED
Julie K GarufiJapanBernardo Dominic UNQUALIFIED
Misaki C BologniaIndiaElwin Sharvill UNQUALIFIED
Faith B PaprockiGermanyAsiya Javayant RENEWAL
Kaitlin D MorascaArgentinaAsiya Javayant NEW
Jennifer K SchemmerJapanIoni Bowcher NEGOTIATION
Costa G KuskoAustraliaAnna Fali UNQUALIFIED
Salvatore B WhobreyBrazilAmy Elsner PROPOSAL
Francesco G PoquetteArgentinaAsiya Javayant QUALIFIED
Ivar C GlickRussiaIvan Magalhaes UNQUALIFIED
David Z CaldareraGermanyBernardo Dominic RENEWAL
Costa I NickaGermanyXuxue Feng PROPOSAL
David E KolmetzCanadaStephen Shaw NEW
Kaitlin J PerinAustraliaElwin Sharvill NEGOTIATION
Salvatore L OstroskySpainBernardo Dominic QUALIFIED
Francesco K TollnerBrazilOnyama Limba NEGOTIATION
Salvatore O RimGermanyStephen Shaw NEGOTIATION
Nicolas Q SergiRussiaAmy Elsner QUALIFIED
Salvatore K MaletBrazilAmy Elsner NEGOTIATION
Greenwood N KolmetzJapanXuxue Feng PROPOSAL
Maisha G DarakjyItalyElwin Sharvill NEGOTIATION
Emily X AmigonAustraliaAsiya Javayant NEGOTIATION
Tony G KolmetzAustraliaStephen Shaw PROPOSAL
Cody N BowleyBrazilBernardo Dominic UNQUALIFIED
Silvio V SaylorsArgentinaIoni Bowcher QUALIFIED
Ricardo P GlickIndiaAmy Elsner PROPOSAL
Octavia Y IturbideGermanyIvan Magalhaes NEW
Jennifer K CaldareraItalyIoni Bowcher NEW
James I PoquetteGermanyIvan Magalhaes PROPOSAL
Izzy U BriddickBrazilIoni Bowcher RENEWAL
Clifford E FigeroaItalyAsiya Javayant RENEWAL
Jeanfrancois I NickaJapanAmy Elsner NEGOTIATION
Ashley V PoquetteItalyAsiya Javayant RENEWAL
Emily E NickaGermanyAnna Fali QUALIFIED
Frozen Columns
Name
Francesco Y Royster
Octavia K Marrier
Faith J Malet
Ivar A Doe
Leon L Poquette
Deepesh E Iturbide
Aditya I Ostrosky
Aditya U Dilliard
Antonio P Kolmetz
Faith I Paprocki
Emily W Amigon
Chavez F Albares
Jefferson Q Stenseth
Johnson R Schemmer
Arvin A Flosi
Izzy S Shinko
Silvio A Marrier
Francesco Z Gaucho
Mujtaba X Dilliard
Alejandro H Paprocki
Silvio K Venere
Ricardo G Stockham
Francesco F Glick
Darci T Inouye
Murillo D Tollner
Misaki D Venere
Alejandro Y Foller
Morrow W Figeroa
Jones K Butt
Clifford Z Sergi
Misaki N Stockham
Jefferson Z Marrier
Murillo E Wieser
Claire N Poquette
Nicolas L Briddick
Misaki P Foller
Misaki V Amigon
Adams M Nicka
David N Vocelka
Arvin X Stenseth
Maisha Y Rulapaugh
Ivar R Briddick
Murillo G Rim
Silvio C Chui
Deepesh V Doe
Jennifer Z Vocelka
Isabel N Paprocki
Darci Y Poquette
Chavez J Stockham
Rodrigues O Poquette
IdCountryDate
1000Japan2025-07-27
1001India2025-07-19
1002Argentina2025-07-18
1003Brazil2025-08-14
1004Germany2025-08-10
1005Canada2025-07-27
1006France2025-07-25
1007Germany2025-07-20
1008Australia2025-08-13
1009Germany2025-08-05
1010Brazil2025-08-10
1011Australia2025-07-21
1012Japan2025-08-02
1013Russia2025-07-23
1014Canada2025-07-19
1015France2025-08-13
1016Spain2025-08-10
1017Argentina2025-08-03
1018Germany2025-08-02
1019Spain2025-08-01
1020Japan2025-07-21
1021Canada2025-07-23
1022France2025-07-23
1023Argentina2025-07-25
1024Germany2025-07-29
1025Italy2025-08-13
1026Italy2025-07-26
1027Germany2025-07-24
1028Argentina2025-07-19
1029Germany2025-08-01
1030Brazil2025-07-22
1031France2025-08-09
1032United Kingdom2025-08-06
1033Germany2025-07-19
1034Germany2025-07-19
1035Italy2025-07-29
1036Japan2025-08-05
1037Japan2025-08-13
1038Brazil2025-07-28
1039Russia2025-07-18
1040Japan2025-07-21
1041Spain2025-07-29
1042United Kingdom2025-07-28
1043Spain2025-08-12
1044Japan2025-07-31
1045Russia2025-07-27
1046Japan2025-08-05
1047France2025-07-16
1048India2025-07-29
1049Germany2025-08-01

On-Demand Data

NameIdCountryDate
Tony D Figeroa1000Brazil2025-07-19
Maria J Waycott1001Australia2025-08-12
Francesco Y Stenseth1002Italy2025-07-17
Kadeem O Gillian1003Argentina2025-08-03
Maisha S Campain1004Japan2025-08-05
Julie B Stenseth1005Italy2025-07-17
David K Flosi1006India2025-07-26
Chavez B Paprocki1007Spain2025-08-14
Jones G Ferencz1008Japan2025-08-12
Francesco E Flosi1009Argentina2025-07-26
Munro T Rulapaugh1010Argentina2025-07-21
Ricardo F Sergi1011India2025-08-02
Wickens F Briddick1012Germany2025-07-22
Leon D Caldarera1013Canada2025-08-11
Murillo K Flosi1014Japan2025-08-13
Johnson M Maclead1015Brazil2025-08-03
Kaitlin F Wieser1016Japan2025-07-17
Francesco B Paprocki1017Germany2025-07-21
Ashley W Caldarera1018Brazil2025-07-28
Julie F Stockham1019France2025-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel R PoquetteFranceAsiya Javayant NEGOTIATION
Greenwood Z SchemmerRussiaBernardo Dominic UNQUALIFIED
Nicolas T MaletIndiaOnyama Limba UNQUALIFIED
Jeanfrancois Q PerinArgentinaAmy Elsner UNQUALIFIED
Francesco I BowleyRussiaIvan Magalhaes RENEWAL
Silvio D DilliardBrazilOnyama Limba PROPOSAL
Aruna C GarufiItalyXuxue Feng PROPOSAL
Adams B SergiRussiaBernardo Dominic NEW
Smith X FollerBrazilAmy Elsner QUALIFIED
Jefferson E OldroydIndiaStephen Shaw PROPOSAL
Smith R SchemmerCanadaAnna Fali NEGOTIATION
Salvatore E ShinkoCanadaIvan Magalhaes QUALIFIED
Faith R BowleyCanadaAnna Fali NEGOTIATION
Deepesh B SlusarskiArgentinaOnyama Limba QUALIFIED
Juan J PerinBrazilElwin Sharvill PROPOSAL
Claire C VocelkaIndiaOnyama Limba RENEWAL
Mujtaba P MarrierArgentinaBernardo Dominic NEGOTIATION
Kaitlin Z AlbaresAustraliaAnna Fali PROPOSAL
Munro V GillianGermanyOnyama Limba PROPOSAL
Murillo H DilliardIndiaBernardo Dominic QUALIFIED
Silvio V RoysterAustraliaXuxue Feng NEGOTIATION
Kadeem W IturbideSpainAmy Elsner UNQUALIFIED
Octavia N MorascaSpainIoni Bowcher QUALIFIED
James N WieserArgentinaIvan Magalhaes UNQUALIFIED
Clifford D DoeAustraliaElwin Sharvill PROPOSAL
Francesco Z RoysterJapanXuxue Feng PROPOSAL
Aditya W DilliardIndiaBernardo Dominic UNQUALIFIED
Mujtaba Q AmigonAustraliaStephen Shaw NEGOTIATION
Jefferson D FlosiUnited KingdomOnyama Limba NEGOTIATION
Juan U GarufiUnited KingdomAnna Fali NEGOTIATION
Stacey M FollerGermanyAsiya Javayant NEW
Deepesh I NickaUnited KingdomBernardo Dominic NEGOTIATION
Salvatore W VenereJapanStephen Shaw QUALIFIED
Maria O KolmetzRussiaOnyama Limba RENEWAL
Chavez D OstroskyFranceAnna Fali PROPOSAL
Mayumi N GlickIndiaAmy Elsner NEW
Alejandro I WieserRussiaAnna Fali QUALIFIED
Kaitlin F FerenczArgentinaBernardo Dominic UNQUALIFIED
Wickens J GauchoIndiaElwin Sharvill RENEWAL
Izzy E MorascaCanadaElwin Sharvill 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>