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
Cody V FerenczBrazilOnyama Limba RENEWAL
Clifford O KolmetzJapanBernardo Dominic NEW
Arvin U InouyeGermanyAnna Fali PROPOSAL
Aruna E BologniaIndiaElwin Sharvill PROPOSAL
Claire E WieserUnited KingdomBernardo Dominic UNQUALIFIED
Juan Z StensethSpainStephen Shaw QUALIFIED
Greenwood A KuskoUnited KingdomIoni Bowcher RENEWAL
Isabel F TollnerRussiaIoni Bowcher RENEWAL
Ivar T GauchoCanadaIvan Magalhaes RENEWAL
Claire S VocelkaRussiaOnyama Limba NEGOTIATION
Arvin U BowleyGermanyOnyama Limba NEW
Tony Q WaycottCanadaBernardo Dominic NEW
David R FerenczItalyAsiya Javayant QUALIFIED
Smith W OstroskySpainAmy Elsner NEW
Juan B WaycottSpainIoni Bowcher RENEWAL
Mayumi M FlosiBrazilAnna Fali RENEWAL
Kadeem E RulapaughJapanStephen Shaw UNQUALIFIED
Jefferson G CampainBrazilAnna Fali UNQUALIFIED
Clifford B ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Chavez M GillianRussiaAnna Fali QUALIFIED
Kadeem L SergiIndiaOnyama Limba RENEWAL
Emily E BowleyRussiaAsiya Javayant RENEWAL
Aditya I InouyeSpainAmy Elsner NEGOTIATION
Faith C FigeroaAustraliaOnyama Limba QUALIFIED
Aika B FigeroaIndiaStephen Shaw UNQUALIFIED
Cody D StockhamItalyXuxue Feng NEW
Ivar O RulapaughSpainAsiya Javayant RENEWAL
Arvin M MaletCanadaAsiya Javayant QUALIFIED
Silvio Q RulapaughGermanyOnyama Limba PROPOSAL
Salvatore Y ButtRussiaIvan Magalhaes NEW
Jefferson J ShinkoBrazilBernardo Dominic NEW
Morrow N PerinIndiaAsiya Javayant RENEWAL
Izzy H SlusarskiIndiaXuxue Feng QUALIFIED
Jeanfrancois K PaprockiJapanIvan Magalhaes RENEWAL
Faith Y CampainSpainIoni Bowcher RENEWAL
Aruna Y KolmetzGermanyOnyama Limba NEW
Tony N BologniaFranceAmy Elsner QUALIFIED
Adams Q BriddickCanadaIoni Bowcher UNQUALIFIED
Antonio Z KuskoGermanyAmy Elsner QUALIFIED
James R InouyeItalyElwin Sharvill NEW
Kadeem B BologniaIndiaElwin Sharvill UNQUALIFIED
Maria N FlosiUnited KingdomAsiya Javayant NEW
Jennifer S GauchoCanadaAmy Elsner RENEWAL
Stacey T NickaCanadaXuxue Feng NEGOTIATION
Emily J SlusarskiItalyIoni Bowcher UNQUALIFIED
Morrow Y StockhamGermanyAsiya Javayant QUALIFIED
Octavia E NestleUnited KingdomAmy Elsner NEW
Sinclair B StensethIndiaBernardo Dominic PROPOSAL
Leja I DoeBrazilIoni Bowcher QUALIFIED
Munro O MacleadAustraliaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Antonio B DarakjyJapanIoni Bowcher QUALIFIED
Julie A TollnerGermanyIvan Magalhaes UNQUALIFIED
Johnson L FerenczUnited KingdomIoni Bowcher PROPOSAL
Izzy Q FlosiJapanAsiya Javayant PROPOSAL
Aditya W OstroskyBrazilBernardo Dominic RENEWAL
Jones H MaletRussiaElwin Sharvill NEW
Ashley Z BriddickUnited KingdomOnyama Limba NEW
Leon L GarufiItalyIoni Bowcher RENEWAL
Greenwood W CaudyRussiaAsiya Javayant NEGOTIATION
Juan C CaldareraCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow C DoeAustralia2025-10-03Feltz Printing Service NEW37Stephen Shaw
1001Smith M WieserBrazil2025-09-27Truhlar And Truhlar Attys NEW2Ivan Magalhaes
1002Leon R PoquetteAustralia2025-09-18Morlong Associates UNQUALIFIED37Anna Fali
1003Jennifer B MarrierUnited Kingdom2025-10-10Feltz Printing Service PROPOSAL14Bernardo Dominic
1004David V SaylorsAustralia2025-09-26Rangoni Of Florence QUALIFIED73Elwin Sharvill
1005Darci U PoquetteGermany2025-10-03Benton, John B Jr UNQUALIFIED41Anna Fali
1006Aika H KuskoJapan2025-09-18Dorl, James J Esq RENEWAL12Ivan Magalhaes
1007Jones C ButtItaly2025-09-26Chapman, Ross E Esq QUALIFIED8Onyama Limba
1008Jones D NickaCanada2025-10-11Feltz Printing Service PROPOSAL27Anna Fali
1009Aika V PerinCanada2025-10-04Truhlar And Truhlar Attys NEW33Elwin Sharvill
1010Adams Z MarrierJapan2025-10-05Chapman, Ross E Esq NEGOTIATION66Asiya Javayant
1011Stacey H KuskoSpain2025-10-10Benton, John B Jr QUALIFIED71Xuxue Feng
1012Antonio Q IturbideRussia2025-10-15Printing Dimensions UNQUALIFIED30Xuxue Feng
1013Arvin R FollerAustralia2025-09-23Buckley Miller Wright NEGOTIATION27Elwin Sharvill
1014Alejandro J StensethIndia2025-09-28Benton, John B Jr NEGOTIATION77Xuxue Feng
1015Jennifer K VenereArgentina2025-10-08Buckley Miller Wright UNQUALIFIED92Ivan Magalhaes
1016Arvin X RimItaly2025-09-24Feiner Bros QUALIFIED30Stephen Shaw
1017Wickens L MarrierCanada2025-09-30Rousseaux, Michael Esq NEW69Anna Fali
1018Alejandro S MorascaRussia2025-10-03Benton, John B Jr UNQUALIFIED39Asiya Javayant
1019Jones I VenereIndia2025-09-24Morlong Associates RENEWAL84Amy Elsner
1020Emily T WaycottRussia2025-10-08Dorl, James J Esq UNQUALIFIED88Amy Elsner
1021Murillo J NickaAustralia2025-10-05Chanay, Jeffrey A Esq QUALIFIED46Anna Fali
1022Tony O PoquetteCanada2025-10-11Truhlar And Truhlar Attys UNQUALIFIED63Anna Fali
1023Leon U InouyeFrance2025-10-11Feltz Printing Service NEW62Ioni Bowcher
1024Ashley R VocelkaBrazil2025-10-01Dorl, James J Esq UNQUALIFIED84Amy Elsner
1025Aditya H VenereFrance2025-10-01Chanay, Jeffrey A Esq PROPOSAL6Elwin Sharvill
1026Arvin F MacleadBrazil2025-09-27Chanay, Jeffrey A Esq PROPOSAL26Stephen Shaw
1027Ivar V CaudyRussia2025-10-15Feiner Bros PROPOSAL9Elwin Sharvill
1028Wickens R PaprockiItaly2025-10-02Morlong Associates UNQUALIFIED35Xuxue Feng
1029Silvio F IturbideFrance2025-10-11King, Christopher A Esq NEGOTIATION3Asiya Javayant
1030Costa G RimCanada2025-10-09Chanay, Jeffrey A Esq UNQUALIFIED66Ioni Bowcher
1031Emily I RoysterIndia2025-09-18Chapman, Ross E Esq NEGOTIATION47Ioni Bowcher
1032Munro A ShinkoGermany2025-10-05Printing Dimensions UNQUALIFIED15Amy Elsner
1033Costa K BologniaSpain2025-09-19Chapman, Ross E Esq RENEWAL19Ivan Magalhaes
1034Ashley D CaldareraArgentina2025-10-11Feiner Bros RENEWAL79Onyama Limba
1035Chavez S BowleyRussia2025-09-23Buckley Miller Wright NEW59Bernardo Dominic
1036Aika C MarrierUnited Kingdom2025-09-24Chapman, Ross E Esq NEW45Elwin Sharvill
1037Adams R FerenczCanada2025-09-29Rousseaux, Michael Esq QUALIFIED61Bernardo Dominic
1038Antonio V StockhamJapan2025-10-09Dorl, James J Esq NEW71Asiya Javayant
1039Morrow I PaprockiArgentina2025-09-28Rangoni Of Florence RENEWAL14Ioni Bowcher
1040Emily I VenereArgentina2025-10-11Commercial Press PROPOSAL92Stephen Shaw
1041Clifford X AmigonJapan2025-09-21Buckley Miller Wright UNQUALIFIED49Onyama Limba
1042Emily H InouyeFrance2025-09-23Rangoni Of Florence RENEWAL22Ioni Bowcher
1043Juan W SergiFrance2025-09-24Rangoni Of Florence NEW13Xuxue Feng
1044Aditya R RutaJapan2025-10-03Rousseaux, Michael Esq NEGOTIATION48Xuxue Feng
1045Juan U CaldareraCanada2025-09-22Commercial Press NEGOTIATION51Stephen Shaw
1046Ivar R MarrierIndia2025-09-29Chemel, James L Cpa RENEWAL25Bernardo Dominic
1047Munro C VenereBrazil2025-09-22King, Christopher A Esq UNQUALIFIED99Stephen Shaw
1048Jones G AlbaresCanada2025-10-15Chemel, James L Cpa RENEWAL42Elwin Sharvill
1049Emily Z GlickAustralia2025-10-03Rousseaux, Michael Esq NEGOTIATION60Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jones A NestleItalyStephen Shaw RENEWAL
Deepesh P KolmetzRussiaAmy Elsner NEGOTIATION
David L KuskoUnited KingdomAmy Elsner NEW
Jones M InouyeIndiaAsiya Javayant RENEWAL
Misaki X FigeroaIndiaAmy Elsner NEW
Johnson H DilliardJapanElwin Sharvill RENEWAL
Kaitlin G VocelkaItalyXuxue Feng NEGOTIATION
Murillo L SchemmerSpainStephen Shaw NEGOTIATION
Clifford T WhobreyItalyStephen Shaw QUALIFIED
Adams X StockhamIndiaIvan Magalhaes UNQUALIFIED
Mayumi N WieserJapanIvan Magalhaes NEW
Cody S MaletGermanyBernardo Dominic NEW
Maisha B RoysterArgentinaStephen Shaw UNQUALIFIED
Faith X SchemmerJapanAmy Elsner PROPOSAL
Silvio D SaylorsAustraliaOnyama Limba RENEWAL
Sinclair Q KuskoBrazilAsiya Javayant PROPOSAL
Aruna A NestleCanadaIoni Bowcher RENEWAL
David R WieserArgentinaIoni Bowcher UNQUALIFIED
Cody V OstroskyArgentinaXuxue Feng NEGOTIATION
Claire Z PerinSpainElwin Sharvill RENEWAL
Antonio H CaldareraSpainIvan Magalhaes RENEWAL
Wickens J WieserBrazilStephen Shaw PROPOSAL
Stacey Y MaletBrazilAnna Fali RENEWAL
Arvin H GarufiCanadaElwin Sharvill RENEWAL
Leon Q DoeUnited KingdomAsiya Javayant NEGOTIATION
Clifford K DilliardFranceOnyama Limba UNQUALIFIED
Julie P CaudyUnited KingdomOnyama Limba UNQUALIFIED
Kadeem M CaldareraJapanBernardo Dominic QUALIFIED
Mayumi V CampainAustraliaStephen Shaw NEGOTIATION
Claire V MarrierItalyElwin Sharvill PROPOSAL
Leja Q ShinkoJapanAmy Elsner NEGOTIATION
Jennifer D GauchoAustraliaElwin Sharvill PROPOSAL
Smith O NestleIndiaElwin Sharvill NEGOTIATION
Chavez V GlickAustraliaIvan Magalhaes PROPOSAL
Claire Q KolmetzJapanBernardo Dominic PROPOSAL
Ivar K SergiCanadaXuxue Feng RENEWAL
David C ShinkoGermanyAnna Fali UNQUALIFIED
Francesco W DilliardAustraliaIvan Magalhaes NEW
Maisha Q FlosiCanadaStephen Shaw NEW
Tony C CaudyArgentinaIoni Bowcher PROPOSAL
Misaki A FigeroaArgentinaAnna Fali UNQUALIFIED
Silvio Q RulapaughAustraliaIvan Magalhaes NEW
Smith I FlosiBrazilOnyama Limba NEGOTIATION
Aditya D MacleadBrazilAnna Fali QUALIFIED
Octavia T TollnerUnited KingdomAnna Fali NEGOTIATION
Ashley I DoeSpainAsiya Javayant RENEWAL
Cody F IturbideArgentinaAnna Fali NEW
Antonio Z KuskoJapanAsiya Javayant PROPOSAL
James M BowleyArgentinaAmy Elsner RENEWAL
Stacey Z FlosiBrazilAnna Fali UNQUALIFIED
Frozen Columns
Name
Francesco P Briddick
Misaki F Inouye
Jefferson B Nicka
Mujtaba G Gillian
Morrow M Butt
Misaki A Kusko
Emily P Glick
Mujtaba U Iturbide
Antonio S Marrier
Emily M Oldroyd
Juan E Inouye
Leon L Waycott
Alejandro G Kusko
Chavez K Nestle
Stacey H Vocelka
Mujtaba H Morasca
Silvio M Saylors
Juan U Inouye
Antonio O Kusko
Emily R Iturbide
Jefferson I Amigon
Darci V Gaucho
Arvin T Ostrosky
Clifford A Gillian
Silvio M Gaucho
Murillo L Maclead
Jefferson A Wieser
Jefferson A Caldarera
Aruna X Campain
Jones T Figeroa
Jeanfrancois O Stenseth
Leon V Darakjy
Tony I Paprocki
Sinclair V Sergi
Kadeem W Ostrosky
Nicolas Q Wieser
Clifford S Perin
Darci K Paprocki
Ashley U Caudy
Kadeem S Chui
Chavez V Paprocki
Silvio V Nestle
Adams J Vocelka
Isabel P Caudy
Julie S Caldarera
Leon I Flosi
Leja Y Doe
Maria U Bowley
Cody N Gillian
Jefferson C Ruta
IdCountryDate
1000Japan2025-10-16
1001Japan2025-09-25
1002Brazil2025-10-01
1003Germany2025-10-17
1004Australia2025-10-04
1005United Kingdom2025-09-18
1006United Kingdom2025-10-04
1007Germany2025-10-05
1008France2025-09-25
1009Argentina2025-10-17
1010Canada2025-09-18
1011Brazil2025-09-19
1012Argentina2025-09-30
1013Russia2025-09-27
1014Brazil2025-10-12
1015Germany2025-10-12
1016Australia2025-09-26
1017United Kingdom2025-10-03
1018Germany2025-09-20
1019Spain2025-10-11
1020Russia2025-10-12
1021Japan2025-10-11
1022Australia2025-09-23
1023Argentina2025-10-05
1024United Kingdom2025-09-18
1025India2025-10-03
1026United Kingdom2025-10-12
1027Canada2025-10-12
1028Japan2025-09-25
1029Australia2025-09-23
1030France2025-10-17
1031United Kingdom2025-09-18
1032France2025-10-07
1033Japan2025-10-13
1034Argentina2025-09-28
1035Japan2025-10-15
1036Brazil2025-09-26
1037Italy2025-09-27
1038Spain2025-09-24
1039India2025-10-03
1040Germany2025-09-25
1041Japan2025-09-26
1042Germany2025-09-19
1043Canada2025-10-03
1044Italy2025-10-08
1045India2025-10-12
1046Canada2025-09-21
1047Japan2025-09-27
1048Russia2025-10-07
1049Italy2025-09-29

On-Demand Data

NameIdCountryDate
Mayumi R Rim1000Argentina2025-10-03
Deepesh X Caldarera1001Italy2025-10-01
David Z Whobrey1002Italy2025-10-17
Mayumi G Poquette1003Canada2025-10-15
Antonio O Rulapaugh1004Italy2025-10-11
Costa W Kolmetz1005Germany2025-09-26
Cody U Malet1006Argentina2025-10-07
Murillo X Kusko1007Spain2025-09-21
Kaitlin S Butt1008India2025-10-11
David D Gaucho1009Italy2025-10-01
David L Dilliard1010India2025-10-17
Nicolas X Morasca1011Germany2025-09-19
Ashley W Vocelka1012Spain2025-09-28
Wickens A Venere1013India2025-10-08
Greenwood O Garufi1014France2025-09-25
Maisha D Darakjy1015Spain2025-09-20
Leon G Schemmer1016France2025-09-25
Wickens E Vocelka1017Australia2025-09-30
Greenwood T Nestle1018United Kingdom2025-10-02
David M Iturbide1019Argentina2025-09-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair F BologniaItalyIoni Bowcher QUALIFIED
Wickens U GillianSpainAmy Elsner RENEWAL
Nicolas Q InouyeFranceIvan Magalhaes NEW
Johnson O AlbaresFranceAnna Fali NEW
Smith H KuskoFranceBernardo Dominic PROPOSAL
Jeanfrancois Z FerenczCanadaAsiya Javayant PROPOSAL
Arvin T ButtGermanyIvan Magalhaes RENEWAL
Emily K FollerItalyOnyama Limba PROPOSAL
Leja S GarufiCanadaBernardo Dominic RENEWAL
Juan Q IturbideItalyAsiya Javayant NEW
Maria O KolmetzJapanAsiya Javayant NEW
Aruna E FollerFranceAsiya Javayant QUALIFIED
Salvatore X MacleadGermanyElwin Sharvill PROPOSAL
Morrow H FlosiArgentinaStephen Shaw UNQUALIFIED
Cody J ChuiIndiaBernardo Dominic PROPOSAL
David Z VocelkaGermanyElwin Sharvill NEW
Jeanfrancois G BriddickSpainIvan Magalhaes UNQUALIFIED
Octavia W ButtItalyStephen Shaw PROPOSAL
Jennifer R BriddickSpainIvan Magalhaes RENEWAL
Salvatore X MarrierIndiaBernardo Dominic UNQUALIFIED
Ivar E BriddickRussiaIoni Bowcher UNQUALIFIED
Kaitlin B DilliardIndiaIvan Magalhaes UNQUALIFIED
Aruna X AlbaresAustraliaIoni Bowcher UNQUALIFIED
Greenwood M DoeJapanXuxue Feng RENEWAL
Izzy O OstroskyAustraliaAnna Fali RENEWAL
Jeanfrancois R SlusarskiRussiaBernardo Dominic NEGOTIATION
Nicolas Z WhobreyRussiaXuxue Feng NEW
Kaitlin H WhobreyRussiaBernardo Dominic RENEWAL
Costa O MaletSpainAnna Fali NEGOTIATION
Costa Q PaprockiIndiaAsiya Javayant QUALIFIED
Darci A SchemmerBrazilAsiya Javayant NEW
Ivar B RulapaughSpainIoni Bowcher UNQUALIFIED
Salvatore L RoysterSpainElwin Sharvill NEW
Cody R KuskoJapanElwin Sharvill NEGOTIATION
Faith R MacleadItalyAsiya Javayant PROPOSAL
Mayumi X RutaRussiaIoni Bowcher UNQUALIFIED
Misaki F NestleSpainAsiya Javayant RENEWAL
Ashley F InouyeBrazilAsiya Javayant PROPOSAL
Jefferson A OldroydCanadaElwin Sharvill NEW
Francesco S DoeBrazilAmy Elsner 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>