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
Darci W RutaSpainIvan Magalhaes NEW
Jones P StockhamArgentinaXuxue Feng PROPOSAL
Leon K AmigonJapanElwin Sharvill NEGOTIATION
Clifford J BriddickJapanAmy Elsner QUALIFIED
Arvin C RoysterItalyStephen Shaw QUALIFIED
Juan C RoysterSpainAnna Fali UNQUALIFIED
Silvio M DarakjyFranceIoni Bowcher NEW
Morrow J MaletAustraliaStephen Shaw QUALIFIED
Izzy N StensethItalyBernardo Dominic NEGOTIATION
Antonio S FerenczIndiaElwin Sharvill UNQUALIFIED
Morrow X FigeroaFranceXuxue Feng NEGOTIATION
Kaitlin V KuskoItalyIoni Bowcher RENEWAL
Maisha O GlickFranceOnyama Limba PROPOSAL
Silvio L StockhamIndiaIvan Magalhaes NEGOTIATION
Jones E MaletSpainBernardo Dominic NEW
Morrow S PerinGermanyXuxue Feng NEGOTIATION
Leja J SlusarskiSpainXuxue Feng NEW
Wickens W RoysterJapanOnyama Limba NEW
Emily G OldroydArgentinaIvan Magalhaes NEW
David I FigeroaUnited KingdomOnyama Limba PROPOSAL
Kaitlin L IturbideUnited KingdomIoni Bowcher NEW
Claire I BologniaIndiaIoni Bowcher QUALIFIED
Emily K GlickUnited KingdomBernardo Dominic NEW
Wickens T RutaItalyAnna Fali UNQUALIFIED
Izzy Q WaycottJapanAmy Elsner NEGOTIATION
Octavia Q InouyeJapanElwin Sharvill QUALIFIED
Ricardo D CaudyGermanyOnyama Limba RENEWAL
Isabel D MaletAustraliaXuxue Feng QUALIFIED
Misaki S MarrierIndiaOnyama Limba QUALIFIED
Aditya G PaprockiJapanStephen Shaw NEW
Greenwood Y BologniaCanadaAnna Fali NEW
Arvin O CaldareraFranceAmy Elsner NEGOTIATION
David J ButtAustraliaAmy Elsner UNQUALIFIED
Kadeem W AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh G TollnerRussiaAmy Elsner NEW
Jeanfrancois K VocelkaBrazilAsiya Javayant RENEWAL
Sinclair D InouyeUnited KingdomOnyama Limba NEW
Jennifer G BowleyAustraliaAsiya Javayant UNQUALIFIED
Ivar T OldroydJapanAmy Elsner QUALIFIED
Silvio Z ShinkoCanadaXuxue Feng NEGOTIATION
Isabel F MaletRussiaAmy Elsner RENEWAL
Octavia R InouyeAustraliaXuxue Feng QUALIFIED
Julie A WaycottRussiaXuxue Feng RENEWAL
Deepesh E IturbideArgentinaIvan Magalhaes NEW
James S RoysterUnited KingdomAsiya Javayant NEW
Jones X RimRussiaBernardo Dominic UNQUALIFIED
Murillo E PerinItalyIoni Bowcher RENEWAL
Kadeem A ChuiFranceIvan Magalhaes QUALIFIED
Mayumi A KolmetzFranceIvan Magalhaes NEGOTIATION
Francesco Z PoquetteIndiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Tony O SlusarskiArgentinaXuxue Feng RENEWAL
Jefferson U GillianIndiaXuxue Feng NEW
Leja G FerenczRussiaXuxue Feng QUALIFIED
Smith N VocelkaSpainAnna Fali RENEWAL
Ivar U ButtUnited KingdomIvan Magalhaes QUALIFIED
Maria J NickaJapanBernardo Dominic UNQUALIFIED
Antonio G RimFranceAmy Elsner NEGOTIATION
Aika H ChuiAustraliaBernardo Dominic RENEWAL
Jefferson O FlosiUnited KingdomBernardo Dominic QUALIFIED
David G VocelkaUnited KingdomOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa M FlosiIndia2025-08-11Morlong Associates QUALIFIED92Amy Elsner
1001Aditya H NickaCanada2025-07-31Truhlar And Truhlar Attys NEW19Anna Fali
1002Munro R WaycottItaly2025-08-17Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1003Chavez O GauchoUnited Kingdom2025-08-05Benton, John B Jr PROPOSAL89Bernardo Dominic
1004Rodrigues R ShinkoJapan2025-08-22Commercial Press PROPOSAL82Asiya Javayant
1005Kaitlin X SaylorsCanada2025-08-09Rangoni Of Florence RENEWAL79Onyama Limba
1006Chavez S RoysterAustralia2025-08-28Buckley Miller Wright QUALIFIED19Stephen Shaw
1007Darci W SaylorsBrazil2025-08-13Rousseaux, Michael Esq NEGOTIATION53Xuxue Feng
1008Deepesh P RoysterJapan2025-08-19Commercial Press NEGOTIATION30Anna Fali
1009Maisha U WhobreyArgentina2025-08-01Commercial Press NEGOTIATION1Asiya Javayant
1010Murillo A VocelkaBrazil2025-08-18Feiner Bros UNQUALIFIED85Anna Fali
1011Morrow S ChuiCanada2025-08-27Feltz Printing Service QUALIFIED94Stephen Shaw
1012Octavia U DarakjyGermany2025-08-15Feiner Bros QUALIFIED33Onyama Limba
1013Ricardo L MarrierUnited Kingdom2025-08-05Feltz Printing Service UNQUALIFIED13Asiya Javayant
1014Aika N OldroydItaly2025-08-23Feiner Bros NEGOTIATION16Ivan Magalhaes
1015Ivar T ButtBrazil2025-08-10Dorl, James J Esq NEW47Anna Fali
1016David I DilliardAustralia2025-08-09Truhlar And Truhlar Attys UNQUALIFIED10Stephen Shaw
1017Francesco Y KolmetzArgentina2025-08-27Chapman, Ross E Esq QUALIFIED7Bernardo Dominic
1018Johnson T SergiSpain2025-08-28Buckley Miller Wright PROPOSAL3Amy Elsner
1019Morrow N DarakjySpain2025-08-07Rousseaux, Michael Esq NEW64Asiya Javayant
1020Isabel X FlosiIndia2025-08-22Chapman, Ross E Esq UNQUALIFIED96Onyama Limba
1021Salvatore J PaprockiGermany2025-08-02Commercial Press UNQUALIFIED11Anna Fali
1022Mayumi Y FerenczRussia2025-08-24King, Christopher A Esq NEGOTIATION81Xuxue Feng
1023Jefferson U RutaBrazil2025-08-23Morlong Associates NEW35Anna Fali
1024Jefferson T ShinkoGermany2025-08-08Morlong Associates NEW48Stephen Shaw
1025Stacey K ShinkoSpain2025-08-03Buckley Miller Wright UNQUALIFIED95Ivan Magalhaes
1026Aruna E GillianBrazil2025-08-13Buckley Miller Wright UNQUALIFIED66Xuxue Feng
1027David E FollerFrance2025-08-14Chanay, Jeffrey A Esq UNQUALIFIED30Elwin Sharvill
1028Jefferson E CampainAustralia2025-08-22Truhlar And Truhlar Attys NEGOTIATION62Asiya Javayant
1029David C MacleadJapan2025-08-20Printing Dimensions UNQUALIFIED72Ivan Magalhaes
1030Darci Z RutaFrance2025-08-24Chemel, James L Cpa NEGOTIATION83Elwin Sharvill
1031Smith R TollnerAustralia2025-08-10Feiner Bros PROPOSAL86Stephen Shaw
1032Stacey N PerinJapan2025-08-15Chapman, Ross E Esq QUALIFIED74Amy Elsner
1033Kaitlin X VenereAustralia2025-08-10Feltz Printing Service UNQUALIFIED61Anna Fali
1034Maisha B GlickJapan2025-08-12King, Christopher A Esq NEGOTIATION22Ioni Bowcher
1035Leon O SlusarskiJapan2025-08-05Morlong Associates PROPOSAL20Amy Elsner
1036Smith Y DilliardAustralia2025-08-07King, Christopher A Esq QUALIFIED70Ioni Bowcher
1037Ricardo K VenereGermany2025-08-15Feiner Bros NEGOTIATION27Ioni Bowcher
1038Jones I ChuiAustralia2025-08-09Buckley Miller Wright UNQUALIFIED7Anna Fali
1039Cody G GarufiSpain2025-08-18Buckley Miller Wright UNQUALIFIED18Bernardo Dominic
1040Nicolas U BologniaIndia2025-08-07King, Christopher A Esq PROPOSAL7Xuxue Feng
1041Jones B WieserItaly2025-08-21Feltz Printing Service RENEWAL38Elwin Sharvill
1042Ivar U WhobreyBrazil2025-08-05Chanay, Jeffrey A Esq PROPOSAL32Elwin Sharvill
1043Ricardo S FollerCanada2025-08-19Buckley Miller Wright UNQUALIFIED91Anna Fali
1044Isabel D GillianFrance2025-08-04Truhlar And Truhlar Attys RENEWAL88Elwin Sharvill
1045Darci I WieserArgentina2025-08-23Rangoni Of Florence UNQUALIFIED61Ioni Bowcher
1046Silvio C CaudyGermany2025-08-24Commercial Press UNQUALIFIED12Ioni Bowcher
1047Mujtaba G KuskoBrazil2025-08-10Chanay, Jeffrey A Esq PROPOSAL87Xuxue Feng
1048Chavez S VocelkaSpain2025-08-27Rousseaux, Michael Esq QUALIFIED96Stephen Shaw
1049Octavia P RulapaughJapan2025-08-16Dorl, James J Esq NEW22Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Francesco C SergiIndiaBernardo Dominic PROPOSAL
Maria B OldroydSpainIoni Bowcher UNQUALIFIED
Mayumi M StockhamAustraliaAmy Elsner NEW
Maisha K NestleArgentinaAmy Elsner NEW
Faith P ChuiBrazilAmy Elsner UNQUALIFIED
Costa P SaylorsArgentinaIoni Bowcher NEW
Mujtaba A MaletAustraliaAsiya Javayant PROPOSAL
Faith N MarrierGermanyAnna Fali QUALIFIED
Leja H AmigonSpainXuxue Feng UNQUALIFIED
Leja T MarrierArgentinaElwin Sharvill NEW
Octavia O RulapaughBrazilIoni Bowcher PROPOSAL
Mayumi Y InouyeItalyIvan Magalhaes RENEWAL
Jefferson Q NestleCanadaIvan Magalhaes NEW
Julie C InouyeAustraliaAmy Elsner NEGOTIATION
Clifford R WieserFranceIoni Bowcher PROPOSAL
Juan O StensethGermanyIvan Magalhaes PROPOSAL
Rodrigues Q FlosiFranceAnna Fali UNQUALIFIED
Kaitlin O RoysterFranceStephen Shaw PROPOSAL
Octavia J IturbideAustraliaElwin Sharvill NEGOTIATION
Jennifer B BriddickIndiaOnyama Limba NEW
Ivar Z SaylorsCanadaOnyama Limba NEGOTIATION
Julie T CampainItalyIoni Bowcher PROPOSAL
Octavia E GillianBrazilStephen Shaw NEGOTIATION
Adams R SergiIndiaAmy Elsner NEGOTIATION
Francesco C SlusarskiBrazilIoni Bowcher NEGOTIATION
Greenwood J RutaIndiaAsiya Javayant UNQUALIFIED
Adams C SergiArgentinaAnna Fali NEW
Munro L InouyeBrazilAnna Fali NEW
Isabel L FerenczSpainAmy Elsner NEW
Clifford E DilliardIndiaBernardo Dominic PROPOSAL
Alejandro U KolmetzJapanOnyama Limba NEW
Misaki C KuskoGermanyAnna Fali PROPOSAL
Adams M GarufiAustraliaOnyama Limba NEGOTIATION
Nicolas I CaldareraRussiaAsiya Javayant NEGOTIATION
Murillo Y GlickIndiaIoni Bowcher QUALIFIED
Wickens U SaylorsAustraliaIoni Bowcher UNQUALIFIED
Leon I BowleyItalyBernardo Dominic QUALIFIED
Cody E RimJapanIoni Bowcher NEW
Salvatore V RimIndiaStephen Shaw QUALIFIED
Ivar H SergiArgentinaXuxue Feng NEW
Kadeem A VocelkaAustraliaIvan Magalhaes PROPOSAL
Tony I FigeroaFranceIvan Magalhaes NEW
Antonio F OstroskyArgentinaIoni Bowcher UNQUALIFIED
Munro J GlickFranceAmy Elsner QUALIFIED
Juan R DilliardAustraliaXuxue Feng RENEWAL
Misaki L RoysterCanadaAmy Elsner NEW
Juan M CaldareraUnited KingdomElwin Sharvill QUALIFIED
Cody F OstroskyIndiaIvan Magalhaes PROPOSAL
Murillo S ButtJapanIvan Magalhaes NEGOTIATION
Rodrigues P TollnerArgentinaIoni Bowcher PROPOSAL
Frozen Columns
Name
Kadeem J Stenseth
Murillo G Perin
Costa N Vocelka
Ricardo B Bowley
Johnson U Garufi
Salvatore T Kolmetz
Ashley G Royster
David P Gaucho
Jones H Caudy
Ricardo X Bolognia
Ricardo X Stenseth
Murillo W Kolmetz
Jennifer T Butt
Jeanfrancois R Malet
Antonio D Foller
Aditya Z Slusarski
Chavez V Bolognia
Adams K Marrier
Aika V Venere
Aika J Oldroyd
Ashley Y Stockham
Stacey W Nestle
Munro W Waycott
Ashley G Rim
Costa N Nestle
Greenwood G Flosi
Juan R Inouye
Silvio T Tollner
David S Glick
Stacey L Morasca
Chavez P Slusarski
Aika A Paprocki
Aditya G Stockham
Tony Z Oldroyd
Aruna M Bowley
Jefferson B Schemmer
Mayumi U Tollner
Costa E Ostrosky
Morrow E Butt
Aruna Z Iturbide
Cody Z Doe
Antonio R Malet
Ivar Q Ruta
Alejandro S Gaucho
Arvin S Perin
Darci H Rulapaugh
Salvatore Q Stenseth
Smith B Stenseth
Deepesh E Caudy
Isabel P Ostrosky
IdCountryDate
1000United Kingdom2025-08-27
1001Spain2025-08-16
1002Argentina2025-08-23
1003United Kingdom2025-08-07
1004France2025-08-09
1005Brazil2025-08-23
1006Spain2025-08-23
1007Argentina2025-08-12
1008India2025-08-14
1009India2025-08-09
1010Brazil2025-08-20
1011France2025-08-21
1012Spain2025-08-01
1013Italy2025-08-03
1014Brazil2025-08-10
1015Australia2025-08-22
1016Germany2025-08-09
1017Russia2025-08-03
1018Italy2025-08-02
1019Japan2025-08-17
1020Germany2025-08-06
1021Brazil2025-08-09
1022United Kingdom2025-08-16
1023India2025-08-20
1024Russia2025-08-15
1025Germany2025-08-17
1026United Kingdom2025-07-31
1027United Kingdom2025-08-23
1028Australia2025-08-10
1029Canada2025-08-01
1030Canada2025-08-16
1031Japan2025-08-01
1032India2025-08-19
1033Japan2025-08-15
1034Brazil2025-08-07
1035Australia2025-08-24
1036India2025-08-07
1037France2025-08-23
1038Australia2025-08-13
1039Spain2025-08-13
1040Brazil2025-08-19
1041Italy2025-08-18
1042Australia2025-07-31
1043India2025-08-02
1044Russia2025-08-03
1045Brazil2025-08-03
1046Italy2025-07-31
1047France2025-08-16
1048India2025-08-12
1049Japan2025-08-23

On-Demand Data

NameIdCountryDate
Antonio P Sergi1000Canada2025-07-31
Silvio Q Caudy1001Australia2025-08-18
Antonio N Kusko1002Argentina2025-08-22
Kaitlin A Schemmer1003India2025-08-27
Mujtaba Y Ruta1004Australia2025-08-28
Ivar J Ostrosky1005Russia2025-08-06
Jefferson U Caudy1006Argentina2025-08-11
Murillo L Gaucho1007Argentina2025-07-31
James X Sergi1008Spain2025-08-19
Emily J Inouye1009Spain2025-08-09
Izzy O Flosi1010Japan2025-07-30
Johnson L Gaucho1011Italy2025-08-08
David L Kusko1012Australia2025-08-26
Leja H Paprocki1013Brazil2025-08-13
Izzy V Bowley1014Spain2025-08-05
Claire U Figeroa1015Canada2025-07-30
Morrow U Kusko1016India2025-08-10
Julie S Paprocki1017Brazil2025-08-28
Francesco Q Campain1018Italy2025-08-27
Tony U Paprocki1019Japan2025-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki L VenereCanadaAnna Fali NEW
Stacey L OldroydBrazilOnyama Limba NEGOTIATION
Octavia M KolmetzSpainAsiya Javayant PROPOSAL
Misaki C DoeArgentinaOnyama Limba QUALIFIED
Kaitlin I DoeItalyOnyama Limba PROPOSAL
Stacey W MaletAustraliaAnna Fali NEGOTIATION
Kadeem E PerinItalyAmy Elsner PROPOSAL
Morrow H AmigonIndiaIoni Bowcher NEW
Silvio N BologniaCanadaAnna Fali PROPOSAL
Leon S IturbideItalyStephen Shaw QUALIFIED
Juan M ChuiCanadaAsiya Javayant PROPOSAL
David I RutaGermanyElwin Sharvill PROPOSAL
Greenwood U DarakjyJapanIoni Bowcher QUALIFIED
Rodrigues Q SergiIndiaAmy Elsner QUALIFIED
Maria L GillianArgentinaOnyama Limba QUALIFIED
Emily E MacleadSpainStephen Shaw PROPOSAL
Rodrigues H OstroskyRussiaStephen Shaw NEW
Jones G NickaIndiaAnna Fali NEW
Ashley W SergiAustraliaIvan Magalhaes NEGOTIATION
Isabel U GarufiJapanStephen Shaw PROPOSAL
Maisha G FigeroaSpainAnna Fali PROPOSAL
Adams Y FerenczArgentinaIoni Bowcher UNQUALIFIED
Ricardo D MacleadAustraliaStephen Shaw PROPOSAL
Salvatore J NickaFranceAsiya Javayant RENEWAL
Jefferson J RutaFranceAmy Elsner PROPOSAL
Ashley Y WaycottSpainXuxue Feng QUALIFIED
Ricardo K StockhamSpainIoni Bowcher PROPOSAL
Salvatore Z ButtAustraliaAsiya Javayant QUALIFIED
Faith R PoquetteAustraliaAmy Elsner NEW
Claire Q StensethIndiaAmy Elsner RENEWAL
Claire L VocelkaArgentinaAmy Elsner NEGOTIATION
Faith P ShinkoUnited KingdomXuxue Feng RENEWAL
Leja C CaldareraJapanAsiya Javayant UNQUALIFIED
Jones L OldroydFranceOnyama Limba NEW
Tony O SlusarskiCanadaAsiya Javayant UNQUALIFIED
David D GauchoFranceBernardo Dominic UNQUALIFIED
Arvin D SaylorsGermanyElwin Sharvill QUALIFIED
Arvin I WieserJapanIoni Bowcher QUALIFIED
Greenwood P SaylorsAustraliaAnna Fali RENEWAL
Kaitlin C AmigonGermanyBernardo 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>