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
Maria Q ChuiGermanyStephen Shaw QUALIFIED
Tony Z AmigonSpainXuxue Feng RENEWAL
Isabel Z RutaAustraliaBernardo Dominic RENEWAL
Leja U KuskoAustraliaIvan Magalhaes QUALIFIED
Stacey I VocelkaIndiaIoni Bowcher QUALIFIED
Aditya Y GauchoAustraliaIoni Bowcher RENEWAL
Alejandro A SaylorsFranceAsiya Javayant PROPOSAL
Faith F RutaBrazilAnna Fali PROPOSAL
Misaki S GillianSpainIvan Magalhaes RENEWAL
Kadeem O OldroydFranceBernardo Dominic QUALIFIED
Costa B RutaRussiaOnyama Limba NEGOTIATION
Jeanfrancois P RutaUnited KingdomIoni Bowcher RENEWAL
Adams B MorascaArgentinaAsiya Javayant RENEWAL
Antonio F MacleadRussiaXuxue Feng QUALIFIED
Silvio Q GlickBrazilIvan Magalhaes UNQUALIFIED
Mujtaba G SergiAustraliaAsiya Javayant RENEWAL
Rodrigues U StockhamSpainBernardo Dominic RENEWAL
Octavia X PoquetteArgentinaOnyama Limba PROPOSAL
Kaitlin D DarakjyGermanyAsiya Javayant UNQUALIFIED
Johnson L PaprockiItalyStephen Shaw RENEWAL
Alejandro I OldroydSpainAmy Elsner UNQUALIFIED
Wickens E ShinkoFranceAsiya Javayant RENEWAL
Antonio H PerinUnited KingdomAnna Fali NEW
Deepesh N PerinCanadaAsiya Javayant NEW
Adams A ShinkoArgentinaAnna Fali UNQUALIFIED
David G DoeCanadaAsiya Javayant UNQUALIFIED
Smith G DarakjyBrazilStephen Shaw NEGOTIATION
Francesco Z MacleadFranceAnna Fali PROPOSAL
Aditya C NestleFranceStephen Shaw NEGOTIATION
Wickens F SchemmerCanadaAmy Elsner RENEWAL
Emily E FollerJapanAsiya Javayant NEW
Izzy R WaycottItalyStephen Shaw UNQUALIFIED
Jones T MorascaCanadaOnyama Limba PROPOSAL
Ivar O FlosiBrazilXuxue Feng QUALIFIED
Jeanfrancois U RutaBrazilStephen Shaw UNQUALIFIED
Antonio Z FlosiUnited KingdomIvan Magalhaes PROPOSAL
Izzy L AlbaresRussiaIvan Magalhaes UNQUALIFIED
Kaitlin Z MorascaAustraliaBernardo Dominic RENEWAL
Mayumi K BowleyIndiaOnyama Limba QUALIFIED
Julie K IturbideGermanyAmy Elsner NEGOTIATION
Leon X SaylorsFranceAmy Elsner QUALIFIED
Faith X FlosiCanadaAmy Elsner RENEWAL
Silvio N KolmetzIndiaOnyama Limba NEGOTIATION
Octavia Q ButtArgentinaStephen Shaw NEGOTIATION
Maria B IturbideArgentinaAmy Elsner UNQUALIFIED
Stacey T PerinAustraliaElwin Sharvill NEW
Silvio Y GillianJapanAmy Elsner NEGOTIATION
Tony R GlickGermanyIoni Bowcher PROPOSAL
Aika A ShinkoIndiaAsiya Javayant NEW
Adams U WaycottRussiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones W RulapaughAustraliaOnyama Limba QUALIFIED
Stacey R FollerUnited KingdomAsiya Javayant NEW
Izzy J KuskoSpainStephen Shaw UNQUALIFIED
Salvatore W RoysterGermanyXuxue Feng NEW
Ricardo U FlosiUnited KingdomAsiya Javayant QUALIFIED
Chavez X VenereFranceAsiya Javayant RENEWAL
Ashley B SergiArgentinaStephen Shaw PROPOSAL
Stacey F NestleArgentinaAsiya Javayant PROPOSAL
Ashley X RimArgentinaIoni Bowcher NEGOTIATION
Octavia W SaylorsArgentinaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas R KolmetzIndia2025-10-08Commercial Press UNQUALIFIED53Asiya Javayant
1001Darci C KolmetzSpain2025-10-11Rousseaux, Michael Esq RENEWAL22Anna Fali
1002Misaki O RoysterFrance2025-10-04Morlong Associates QUALIFIED19Bernardo Dominic
1003Deepesh A SlusarskiItaly2025-10-01Chapman, Ross E Esq NEW61Ivan Magalhaes
1004Munro O SaylorsFrance2025-09-29Rousseaux, Michael Esq NEGOTIATION38Ivan Magalhaes
1005Aruna B GillianRussia2025-10-10Chapman, Ross E Esq NEGOTIATION48Amy Elsner
1006Kadeem Y PerinFrance2025-10-02Dorl, James J Esq PROPOSAL52Bernardo Dominic
1007Misaki K NickaUnited Kingdom2025-09-30Chemel, James L Cpa UNQUALIFIED29Amy Elsner
1008Sinclair G DilliardArgentina2025-09-22Buckley Miller Wright QUALIFIED65Asiya Javayant
1009Juan R SaylorsUnited Kingdom2025-10-20Feiner Bros UNQUALIFIED82Anna Fali
1010Faith P PoquetteIndia2025-10-08Truhlar And Truhlar Attys PROPOSAL82Amy Elsner
1011Ashley J DarakjyItaly2025-10-11Rangoni Of Florence NEGOTIATION85Ioni Bowcher
1012Emily E RulapaughItaly2025-10-11Commercial Press NEW37Stephen Shaw
1013Alejandro F AmigonIndia2025-10-20Chanay, Jeffrey A Esq RENEWAL94Amy Elsner
1014Maisha V VocelkaRussia2025-10-09Feiner Bros NEW67Onyama Limba
1015Jones Y MaletFrance2025-10-02Benton, John B Jr NEW96Amy Elsner
1016Deepesh E WieserRussia2025-10-08Chanay, Jeffrey A Esq NEGOTIATION15Asiya Javayant
1017Morrow M MarrierIndia2025-10-20Chapman, Ross E Esq QUALIFIED31Elwin Sharvill
1018Aika W OstroskyItaly2025-09-23Rangoni Of Florence RENEWAL45Amy Elsner
1019Stacey J KolmetzGermany2025-10-05Printing Dimensions UNQUALIFIED33Bernardo Dominic
1020Ricardo F SaylorsJapan2025-09-26Rousseaux, Michael Esq NEW90Ivan Magalhaes
1021Stacey S CampainJapan2025-09-21Feltz Printing Service NEW50Asiya Javayant
1022Darci C ChuiFrance2025-10-16Chapman, Ross E Esq UNQUALIFIED12Onyama Limba
1023Munro P WieserSpain2025-10-20Dorl, James J Esq QUALIFIED17Ioni Bowcher
1024Rodrigues I AlbaresItaly2025-09-28Feltz Printing Service PROPOSAL44Amy Elsner
1025Mayumi H BowleySpain2025-10-11Buckley Miller Wright RENEWAL15Bernardo Dominic
1026Ashley K RulapaughSpain2025-10-19Commercial Press PROPOSAL77Ivan Magalhaes
1027Juan A KuskoAustralia2025-10-16Chapman, Ross E Esq UNQUALIFIED92Asiya Javayant
1028Stacey T OldroydItaly2025-10-19Benton, John B Jr PROPOSAL26Ivan Magalhaes
1029Aika D PaprockiItaly2025-10-08Benton, John B Jr PROPOSAL46Ivan Magalhaes
1030Jones A FlosiRussia2025-09-27Rousseaux, Michael Esq RENEWAL58Onyama Limba
1031Aditya L RutaIndia2025-09-25Morlong Associates NEW43Elwin Sharvill
1032Arvin B GarufiUnited Kingdom2025-10-14Rangoni Of Florence PROPOSAL89Stephen Shaw
1033Cody H MaletAustralia2025-10-19Feiner Bros UNQUALIFIED76Bernardo Dominic
1034Ricardo J AlbaresJapan2025-10-06Benton, John B Jr NEW98Anna Fali
1035James S GillianItaly2025-10-08Chapman, Ross E Esq RENEWAL29Xuxue Feng
1036Morrow V TollnerAustralia2025-10-08King, Christopher A Esq NEW79Bernardo Dominic
1037Ashley A AlbaresIndia2025-10-01Chanay, Jeffrey A Esq PROPOSAL75Stephen Shaw
1038Faith X FigeroaSpain2025-10-04Buckley Miller Wright NEGOTIATION84Bernardo Dominic
1039Francesco E RutaAustralia2025-10-06King, Christopher A Esq QUALIFIED30Onyama Limba
1040Stacey L WhobreyGermany2025-10-04Dorl, James J Esq UNQUALIFIED63Anna Fali
1041Costa E InouyeIndia2025-09-28Truhlar And Truhlar Attys NEW11Bernardo Dominic
1042Stacey V GillianJapan2025-10-20Dorl, James J Esq QUALIFIED20Xuxue Feng
1043James K MaletIndia2025-10-14Feltz Printing Service PROPOSAL53Ivan Magalhaes
1044Ricardo Y KolmetzCanada2025-10-19Benton, John B Jr UNQUALIFIED5Ioni Bowcher
1045Greenwood W WhobreyBrazil2025-10-20Commercial Press NEGOTIATION52Amy Elsner
1046Johnson X StockhamAustralia2025-10-05Rangoni Of Florence PROPOSAL79Bernardo Dominic
1047Mujtaba Z DoeArgentina2025-10-12Printing Dimensions NEW21Stephen Shaw
1048Murillo I ShinkoItaly2025-10-07Truhlar And Truhlar Attys PROPOSAL70Stephen Shaw
1049Francesco Z MaletCanada2025-10-14Morlong Associates NEW5Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Isabel X DarakjyItalyXuxue Feng NEGOTIATION
Smith K PerinFranceAmy Elsner RENEWAL
Julie M DilliardRussiaIoni Bowcher RENEWAL
Arvin W CampainRussiaIoni Bowcher PROPOSAL
Kadeem Z SaylorsItalyStephen Shaw NEW
Smith Y OldroydArgentinaBernardo Dominic PROPOSAL
David Q SaylorsItalyAmy Elsner UNQUALIFIED
Johnson M GlickItalyAsiya Javayant PROPOSAL
Aditya C RimSpainBernardo Dominic RENEWAL
Munro I CaudyJapanXuxue Feng RENEWAL
Munro E PerinItalyAnna Fali NEGOTIATION
Octavia H OstroskyCanadaAmy Elsner PROPOSAL
Murillo J KuskoGermanyAnna Fali PROPOSAL
Tony N RulapaughSpainStephen Shaw UNQUALIFIED
Clifford V KolmetzIndiaIoni Bowcher UNQUALIFIED
Costa T AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson I NestleBrazilIvan Magalhaes QUALIFIED
Julie N DilliardRussiaIvan Magalhaes NEGOTIATION
Costa J SaylorsUnited KingdomAnna Fali NEW
Ashley D SlusarskiIndiaBernardo Dominic UNQUALIFIED
Ivar U AlbaresGermanyAmy Elsner NEGOTIATION
Deepesh E BriddickUnited KingdomAnna Fali RENEWAL
Emily E WaycottAustraliaAnna Fali RENEWAL
Kadeem U FollerSpainStephen Shaw PROPOSAL
Leja I SergiJapanElwin Sharvill UNQUALIFIED
Tony U PaprockiArgentinaAnna Fali QUALIFIED
Izzy W StensethCanadaElwin Sharvill RENEWAL
Ivar S VenereRussiaAsiya Javayant NEGOTIATION
Greenwood Q SergiUnited KingdomAmy Elsner NEW
Mujtaba X RimArgentinaStephen Shaw RENEWAL
Ivar H CaldareraRussiaIvan Magalhaes NEW
Salvatore U RoysterCanadaAmy Elsner NEW
Isabel H SchemmerSpainOnyama Limba UNQUALIFIED
Salvatore G MacleadRussiaAmy Elsner NEGOTIATION
Francesco S MacleadIndiaIvan Magalhaes PROPOSAL
Darci I SlusarskiBrazilAsiya Javayant NEGOTIATION
Murillo L RoysterSpainXuxue Feng UNQUALIFIED
Aruna U InouyeItalyIvan Magalhaes RENEWAL
Morrow J FollerIndiaAmy Elsner RENEWAL
Rodrigues X SergiIndiaAsiya Javayant RENEWAL
Isabel G RimRussiaAsiya Javayant NEGOTIATION
Ricardo G RoysterJapanIvan Magalhaes NEW
Silvio U MarrierItalyStephen Shaw NEW
Tony X SaylorsFranceAsiya Javayant NEGOTIATION
Munro V GillianFranceBernardo Dominic NEGOTIATION
Munro F CaudyBrazilBernardo Dominic PROPOSAL
Tony C FigeroaRussiaXuxue Feng NEGOTIATION
Sinclair H IturbideIndiaAsiya Javayant NEGOTIATION
Aditya M SaylorsIndiaAmy Elsner NEGOTIATION
Jeanfrancois S CaudyItalyIoni Bowcher NEGOTIATION
Frozen Columns
Name
Leon C Nestle
Morrow I Tollner
Nicolas S Maclead
Octavia C Tollner
Adams L Darakjy
Isabel S Gillian
Leja O Rim
Maria K Foller
Jeanfrancois G Stenseth
Ashley E Poquette
Alejandro O Albares
Kadeem B Waycott
Antonio A Inouye
Octavia J Vocelka
Smith W Campain
Cody M Stockham
Aika V Wieser
Darci F Perin
Aruna P Darakjy
Aruna L Vocelka
Tony C Slusarski
Alejandro M Nestle
Francesco H Foller
Sinclair C Waycott
Faith V Campain
Sinclair L Royster
Johnson F Ferencz
Greenwood Y Gillian
Munro M Royster
Maria H Stockham
Sinclair P Butt
Jeanfrancois D Maclead
Jennifer Q Perin
Wickens E Morasca
Maria P Kusko
Deepesh N Ferencz
Isabel M Figeroa
Mujtaba Q Marrier
Kaitlin H Sergi
Octavia Y Kusko
Ivar N Flosi
Izzy O Nestle
Mayumi P Oldroyd
Morrow U Sergi
Leja J Vocelka
James M Iturbide
Stacey K Garufi
Ashley X Chui
Izzy I Waycott
Ricardo N Oldroyd
IdCountryDate
1000Argentina2025-10-06
1001Germany2025-09-26
1002United Kingdom2025-10-07
1003Spain2025-09-24
1004Argentina2025-10-18
1005Spain2025-10-16
1006Australia2025-09-29
1007Spain2025-10-19
1008Brazil2025-09-21
1009Brazil2025-10-01
1010France2025-10-01
1011Australia2025-10-09
1012Japan2025-09-26
1013Japan2025-10-17
1014France2025-10-08
1015Australia2025-10-11
1016Brazil2025-09-25
1017Brazil2025-10-11
1018India2025-10-04
1019India2025-10-05
1020Russia2025-10-18
1021Australia2025-10-06
1022France2025-09-28
1023Argentina2025-10-02
1024Germany2025-10-16
1025Canada2025-10-08
1026India2025-10-14
1027Argentina2025-10-04
1028India2025-09-23
1029Italy2025-10-04
1030Argentina2025-09-22
1031Argentina2025-10-09
1032Spain2025-09-23
1033Canada2025-10-14
1034Argentina2025-10-19
1035Brazil2025-10-03
1036Germany2025-10-04
1037Japan2025-10-08
1038Australia2025-10-18
1039Spain2025-09-25
1040Italy2025-10-03
1041United Kingdom2025-09-24
1042Japan2025-10-09
1043France2025-10-06
1044Russia2025-10-01
1045Italy2025-10-03
1046France2025-09-21
1047India2025-09-28
1048Japan2025-10-02
1049Canada2025-10-02

On-Demand Data

NameIdCountryDate
Sinclair W Waycott1000Germany2025-10-11
Sinclair C Bowley1001Japan2025-10-08
Chavez Z Foller1002Argentina2025-09-22
Silvio W Malet1003Germany2025-09-28
Morrow A Wieser1004Australia2025-10-16
Mayumi X Stockham1005Germany2025-10-06
Kaitlin Z Malet1006United Kingdom2025-10-01
Adams N Rim1007Australia2025-10-10
Octavia R Ruta1008India2025-09-23
Misaki A Royster1009Brazil2025-09-21
Jeanfrancois Z Campain1010France2025-10-18
James B Albares1011Argentina2025-10-07
Jennifer N Briddick1012Japan2025-10-01
Leon B Malet1013Russia2025-10-07
Maisha D Nestle1014Germany2025-10-10
Emily T Caudy1015India2025-09-23
Aika S Glick1016Brazil2025-09-29
Darci J Campain1017Argentina2025-10-19
Ricardo G Wieser1018Japan2025-09-26
Darci E Doe1019Brazil2025-10-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas L GauchoIndiaXuxue Feng PROPOSAL
Kadeem F SlusarskiCanadaXuxue Feng NEW
Maria K OstroskyCanadaIvan Magalhaes UNQUALIFIED
James H CaudyGermanyAsiya Javayant QUALIFIED
Kadeem N PaprockiRussiaXuxue Feng UNQUALIFIED
Aditya B AmigonIndiaIvan Magalhaes UNQUALIFIED
Tony U PaprockiSpainOnyama Limba NEGOTIATION
Ivar C OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Aditya H StockhamAustraliaAmy Elsner NEGOTIATION
Mujtaba B OldroydAustraliaOnyama Limba RENEWAL
Salvatore O RoysterArgentinaAsiya Javayant RENEWAL
Kaitlin K AmigonArgentinaAsiya Javayant PROPOSAL
Johnson U GauchoFranceAsiya Javayant RENEWAL
Jones B RoysterUnited KingdomAmy Elsner QUALIFIED
Murillo T GillianSpainIoni Bowcher UNQUALIFIED
Leon J PerinGermanyOnyama Limba PROPOSAL
Leja T ChuiSpainIoni Bowcher NEGOTIATION
Alejandro X SchemmerFranceAsiya Javayant RENEWAL
Mujtaba F GarufiItalyAmy Elsner UNQUALIFIED
Misaki N SaylorsRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois D NestleArgentinaIvan Magalhaes QUALIFIED
Nicolas L WieserFranceElwin Sharvill NEW
Silvio T RulapaughGermanyOnyama Limba PROPOSAL
Leja G StockhamCanadaXuxue Feng QUALIFIED
Jennifer R FlosiCanadaBernardo Dominic QUALIFIED
Arvin I SergiGermanyBernardo Dominic UNQUALIFIED
Stacey E GillianBrazilIoni Bowcher UNQUALIFIED
Smith R FigeroaFranceBernardo Dominic UNQUALIFIED
Smith E OldroydCanadaXuxue Feng QUALIFIED
Stacey F GarufiAustraliaIoni Bowcher RENEWAL
Greenwood R TollnerSpainIoni Bowcher RENEWAL
Misaki A InouyeSpainIoni Bowcher RENEWAL
Maisha M ShinkoIndiaAnna Fali PROPOSAL
Kadeem R TollnerSpainIoni Bowcher RENEWAL
Antonio C MaletFranceIoni Bowcher NEGOTIATION
Mujtaba Z KolmetzFranceIvan Magalhaes UNQUALIFIED
Octavia W NickaArgentinaIvan Magalhaes UNQUALIFIED
David G WieserRussiaAnna Fali PROPOSAL
Cody Q RoysterIndiaAmy Elsner UNQUALIFIED
Jefferson K WieserJapanAmy Elsner PROPOSAL

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