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
Rodrigues T VocelkaAustraliaElwin Sharvill NEW
Munro Y VenereIndiaIvan Magalhaes NEGOTIATION
Rodrigues Z MaletIndiaIvan Magalhaes PROPOSAL
Jeanfrancois Q RimGermanyAmy Elsner NEW
Silvio B GillianIndiaIoni Bowcher NEW
Wickens N RutaFranceStephen Shaw QUALIFIED
Chavez C CaudySpainOnyama Limba RENEWAL
Ashley J DarakjyGermanyIoni Bowcher UNQUALIFIED
Mujtaba C InouyeJapanBernardo Dominic UNQUALIFIED
Smith F CaudyRussiaIoni Bowcher NEGOTIATION
Rodrigues R WieserJapanAmy Elsner UNQUALIFIED
Salvatore W VenereFranceOnyama Limba NEGOTIATION
Izzy L FigeroaBrazilAmy Elsner RENEWAL
Faith L PaprockiBrazilAsiya Javayant NEGOTIATION
Sinclair U StensethUnited KingdomStephen Shaw QUALIFIED
Wickens E ShinkoRussiaElwin Sharvill QUALIFIED
Smith T AmigonBrazilStephen Shaw NEW
Murillo J MacleadArgentinaIoni Bowcher QUALIFIED
Mujtaba V BologniaSpainIvan Magalhaes UNQUALIFIED
Wickens U SergiUnited KingdomElwin Sharvill NEW
David D FigeroaAustraliaXuxue Feng PROPOSAL
Morrow K CaldareraFranceIvan Magalhaes PROPOSAL
James B GarufiCanadaElwin Sharvill RENEWAL
Wickens Y VocelkaSpainXuxue Feng UNQUALIFIED
Rodrigues X PaprockiSpainXuxue Feng QUALIFIED
Juan L PoquetteRussiaOnyama Limba UNQUALIFIED
Maria D PoquetteItalyIvan Magalhaes RENEWAL
Jeanfrancois W CampainArgentinaBernardo Dominic RENEWAL
Faith H AmigonArgentinaStephen Shaw NEGOTIATION
Greenwood J GauchoRussiaAmy Elsner NEGOTIATION
Johnson L MaletBrazilElwin Sharvill NEGOTIATION
Jefferson K VenereCanadaIvan Magalhaes UNQUALIFIED
Greenwood D MacleadCanadaElwin Sharvill UNQUALIFIED
Arvin Y FlosiRussiaAsiya Javayant RENEWAL
Maria T NestleSpainElwin Sharvill PROPOSAL
Murillo S FollerIndiaAmy Elsner PROPOSAL
Claire U ButtAustraliaXuxue Feng PROPOSAL
David U DoeIndiaAnna Fali RENEWAL
Jennifer D DoeJapanXuxue Feng NEGOTIATION
Jefferson T GarufiJapanOnyama Limba UNQUALIFIED
Emily F SlusarskiAustraliaBernardo Dominic UNQUALIFIED
Wickens B RimUnited KingdomOnyama Limba RENEWAL
Octavia Y BriddickSpainIoni Bowcher RENEWAL
James O VenereCanadaAnna Fali PROPOSAL
Chavez B OldroydBrazilAmy Elsner UNQUALIFIED
Chavez F SaylorsGermanyBernardo Dominic NEGOTIATION
Juan F RutaGermanyAnna Fali QUALIFIED
Sinclair C FigeroaBrazilIvan Magalhaes QUALIFIED
Deepesh H AlbaresBrazilOnyama Limba NEGOTIATION
Misaki H BowleyFranceBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Adams Z NestleCanadaAnna Fali RENEWAL
Wickens P FigeroaBrazilAnna Fali NEW
Costa I MarrierIndiaOnyama Limba NEW
Mayumi W FollerFranceOnyama Limba NEGOTIATION
Mayumi C StensethItalyOnyama Limba NEW
Aika I MaletSpainOnyama Limba RENEWAL
Silvio Z RutaGermanyBernardo Dominic NEW
James U SlusarskiItalyElwin Sharvill UNQUALIFIED
Johnson N SlusarskiArgentinaAsiya Javayant QUALIFIED
Maria S VocelkaUnited KingdomIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley O NestleAustralia2025-08-09Chapman, Ross E Esq RENEWAL13Amy Elsner
1001Francesco T RoysterSpain2025-08-09Rousseaux, Michael Esq RENEWAL64Asiya Javayant
1002Rodrigues S CampainRussia2025-08-10Chemel, James L Cpa NEGOTIATION8Stephen Shaw
1003Aruna P PerinCanada2025-08-04Benton, John B Jr UNQUALIFIED10Elwin Sharvill
1004Ivar R PaprockiCanada2025-08-10Rangoni Of Florence QUALIFIED65Anna Fali
1005Kadeem R PoquetteItaly2025-08-11Morlong Associates UNQUALIFIED24Amy Elsner
1006Smith Z WhobreyGermany2025-08-28Truhlar And Truhlar Attys NEGOTIATION83Onyama Limba
1007Sinclair P GillianUnited Kingdom2025-08-20Feltz Printing Service RENEWAL3Amy Elsner
1008Francesco M WieserSpain2025-07-30Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1009Misaki Y PerinIndia2025-08-14King, Christopher A Esq NEGOTIATION44Bernardo Dominic
1010James B VenereFrance2025-08-11Rousseaux, Michael Esq RENEWAL48Elwin Sharvill
1011Ricardo W WhobreyIndia2025-08-13Dorl, James J Esq PROPOSAL35Anna Fali
1012Maria K CaudyFrance2025-07-31Chapman, Ross E Esq NEGOTIATION41Stephen Shaw
1013Arvin U VenereArgentina2025-08-27Feiner Bros QUALIFIED38Xuxue Feng
1014Adams B SlusarskiUnited Kingdom2025-08-09Chanay, Jeffrey A Esq NEW45Onyama Limba
1015Maria Y PoquetteCanada2025-08-17Feiner Bros UNQUALIFIED35Amy Elsner
1016Tony M KuskoGermany2025-08-16Chemel, James L Cpa PROPOSAL25Bernardo Dominic
1017Alejandro T BologniaJapan2025-08-06King, Christopher A Esq PROPOSAL39Ivan Magalhaes
1018Francesco N AlbaresAustralia2025-08-04Truhlar And Truhlar Attys NEW79Amy Elsner
1019Smith P DilliardAustralia2025-08-17Chapman, Ross E Esq QUALIFIED77Asiya Javayant
1020Jeanfrancois N FigeroaArgentina2025-08-05Dorl, James J Esq PROPOSAL21Ivan Magalhaes
1021Mayumi U MacleadItaly2025-08-05Chemel, James L Cpa PROPOSAL10Bernardo Dominic
1022Sinclair G StensethSpain2025-08-18Benton, John B Jr NEW73Ioni Bowcher
1023Jefferson X ButtGermany2025-08-03Feiner Bros NEGOTIATION57Ioni Bowcher
1024Salvatore V FigeroaCanada2025-08-15Truhlar And Truhlar Attys NEW87Anna Fali
1025Isabel J OstroskyItaly2025-08-08King, Christopher A Esq NEW23Ivan Magalhaes
1026Aruna H PoquetteIndia2025-08-08Feiner Bros RENEWAL88Ivan Magalhaes
1027Morrow P StockhamGermany2025-08-04Chanay, Jeffrey A Esq NEGOTIATION5Ioni Bowcher
1028David Y ChuiSpain2025-08-23Printing Dimensions UNQUALIFIED0Asiya Javayant
1029Kaitlin F OstroskyIndia2025-08-18Dorl, James J Esq RENEWAL32Bernardo Dominic
1030Morrow P FigeroaIndia2025-08-05Feiner Bros NEGOTIATION94Elwin Sharvill
1031Stacey H GillianCanada2025-08-22Feiner Bros NEGOTIATION83Ioni Bowcher
1032Nicolas Z WaycottJapan2025-08-14Commercial Press RENEWAL56Ioni Bowcher
1033Munro O ButtFrance2025-08-04Feltz Printing Service NEW35Asiya Javayant
1034Johnson E MacleadAustralia2025-08-09Chemel, James L Cpa NEGOTIATION25Bernardo Dominic
1035Silvio G VocelkaIndia2025-07-31King, Christopher A Esq NEW94Ivan Magalhaes
1036Isabel W ChuiArgentina2025-08-19Dorl, James J Esq QUALIFIED74Onyama Limba
1037Jennifer O PoquetteRussia2025-08-27Chapman, Ross E Esq NEGOTIATION87Anna Fali
1038Wickens O PoquetteUnited Kingdom2025-08-05Dorl, James J Esq NEGOTIATION93Elwin Sharvill
1039Clifford W MacleadCanada2025-08-14King, Christopher A Esq RENEWAL4Xuxue Feng
1040Emily Y StensethBrazil2025-08-27Benton, John B Jr NEGOTIATION30Amy Elsner
1041Nicolas Z RutaCanada2025-08-13Commercial Press NEW40Amy Elsner
1042Izzy L BowleyIndia2025-08-26Morlong Associates UNQUALIFIED39Asiya Javayant
1043Claire P WhobreyItaly2025-08-22Truhlar And Truhlar Attys NEW80Asiya Javayant
1044Stacey U KuskoGermany2025-08-06Feltz Printing Service PROPOSAL69Onyama Limba
1045Francesco G GarufiAustralia2025-08-18Morlong Associates PROPOSAL67Xuxue Feng
1046Morrow P DoeRussia2025-07-31Buckley Miller Wright RENEWAL47Xuxue Feng
1047Izzy B AmigonIndia2025-08-03Benton, John B Jr NEGOTIATION12Asiya Javayant
1048Ashley D WhobreyBrazil2025-08-10Truhlar And Truhlar Attys RENEWAL0Ivan Magalhaes
1049Costa U AlbaresIndia2025-08-18King, Christopher A Esq NEGOTIATION7Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon H OldroydUnited KingdomAsiya Javayant QUALIFIED
Cody E AlbaresIndiaAmy Elsner RENEWAL
Izzy A DarakjyUnited KingdomOnyama Limba NEW
Alejandro X StensethArgentinaAsiya Javayant PROPOSAL
Rodrigues L DarakjyCanadaIoni Bowcher NEGOTIATION
Ivar Q FollerCanadaBernardo Dominic NEW
Munro V FigeroaGermanyElwin Sharvill NEW
Costa Q GauchoBrazilElwin Sharvill NEGOTIATION
David Y PaprockiArgentinaAsiya Javayant RENEWAL
Isabel S IturbideCanadaAsiya Javayant NEGOTIATION
Clifford U WieserUnited KingdomStephen Shaw RENEWAL
Alejandro L SlusarskiItalyIvan Magalhaes NEW
Misaki X VenereFranceElwin Sharvill NEW
Mayumi A SergiIndiaBernardo Dominic QUALIFIED
Stacey I SchemmerItalyXuxue Feng RENEWAL
Adams J SlusarskiGermanyIoni Bowcher NEW
James C MarrierGermanyElwin Sharvill RENEWAL
Octavia O ShinkoIndiaOnyama Limba QUALIFIED
Silvio E ButtGermanyStephen Shaw QUALIFIED
Julie G SchemmerBrazilOnyama Limba NEGOTIATION
Munro P MacleadCanadaElwin Sharvill UNQUALIFIED
Tony W NestleJapanBernardo Dominic RENEWAL
David K ShinkoJapanBernardo Dominic UNQUALIFIED
Izzy H FollerJapanIoni Bowcher QUALIFIED
Ashley P IturbideArgentinaXuxue Feng NEW
Jones A ShinkoIndiaElwin Sharvill PROPOSAL
Tony K SchemmerBrazilIoni Bowcher RENEWAL
Stacey W AlbaresGermanyAsiya Javayant NEGOTIATION
Juan Y SchemmerGermanyAsiya Javayant PROPOSAL
Faith Y WieserJapanOnyama Limba RENEWAL
Leja J RimBrazilOnyama Limba NEGOTIATION
James R BowleyBrazilIvan Magalhaes PROPOSAL
Emily J SaylorsUnited KingdomAsiya Javayant RENEWAL
Faith H NestleRussiaElwin Sharvill QUALIFIED
Greenwood B RimItalyIvan Magalhaes QUALIFIED
Leja L MacleadJapanIoni Bowcher NEW
Izzy E ShinkoRussiaOnyama Limba NEW
Misaki V SergiUnited KingdomElwin Sharvill PROPOSAL
Antonio J KuskoRussiaAmy Elsner UNQUALIFIED
Salvatore F VocelkaCanadaAmy Elsner NEGOTIATION
Jennifer K WhobreyUnited KingdomBernardo Dominic NEW
Rodrigues L NestleSpainIoni Bowcher NEGOTIATION
Ricardo V VocelkaArgentinaBernardo Dominic NEGOTIATION
Leja Z GlickFranceIvan Magalhaes NEW
Nicolas S RoysterAustraliaIoni Bowcher UNQUALIFIED
Ashley C MorascaCanadaAnna Fali QUALIFIED
Deepesh C MaletBrazilAmy Elsner PROPOSAL
Jeanfrancois V ShinkoIndiaAmy Elsner NEGOTIATION
Julie E BowleyIndiaAnna Fali QUALIFIED
Claire K DarakjyAustraliaXuxue Feng NEW
Frozen Columns
Name
Ivar O Iturbide
Smith X Ostrosky
Aruna T Inouye
Johnson G Butt
Faith T Malet
Maria G Caudy
Maria H Nicka
Munro Q Inouye
Cody M Marrier
Greenwood H Poquette
Wickens D Royster
Costa Q Garufi
Darci D Malet
Sinclair F Slusarski
Nicolas S Garufi
Tony V Venere
David Q Caudy
Tony Y Rim
Kadeem R Foller
Aika K Flosi
Nicolas M Wieser
Aditya L Kusko
Octavia G Rulapaugh
Aruna Z Iturbide
Jennifer A Bolognia
Julie W Bolognia
Salvatore Z Rim
Murillo F Morasca
Emily D Shinko
Julie U Caudy
Mayumi D Tollner
Jeanfrancois D Doe
Maisha H Campain
James D Marrier
Izzy F Caudy
Darci U Maclead
Juan W Kusko
James T Whobrey
Clifford D Bowley
Julie W Darakjy
Aika Q Malet
Murillo M Ferencz
Silvio T Slusarski
Cody K Malet
Alejandro Y Kolmetz
Maisha D Maclead
Kadeem V Dilliard
Deepesh R Shinko
James E Paprocki
Juan U Rim
IdCountryDate
1000Germany2025-08-25
1001Russia2025-08-02
1002Russia2025-08-22
1003Canada2025-08-01
1004Germany2025-08-23
1005Germany2025-08-11
1006United Kingdom2025-08-13
1007Spain2025-08-02
1008Russia2025-08-02
1009Argentina2025-08-04
1010United Kingdom2025-08-06
1011Argentina2025-08-26
1012Italy2025-08-12
1013Spain2025-08-02
1014France2025-08-07
1015Canada2025-08-04
1016Italy2025-08-21
1017Japan2025-08-14
1018Russia2025-08-07
1019Argentina2025-08-07
1020Australia2025-08-17
1021Canada2025-08-06
1022Russia2025-08-11
1023Brazil2025-08-17
1024Spain2025-08-08
1025Japan2025-08-10
1026India2025-08-04
1027Russia2025-08-07
1028Argentina2025-08-23
1029United Kingdom2025-08-04
1030France2025-08-10
1031Germany2025-08-18
1032Germany2025-07-31
1033Japan2025-08-23
1034Australia2025-08-05
1035Russia2025-08-11
1036India2025-08-09
1037Canada2025-08-15
1038Spain2025-08-22
1039Argentina2025-08-27
1040Germany2025-08-16
1041Australia2025-07-30
1042Spain2025-08-12
1043United Kingdom2025-07-31
1044Germany2025-08-04
1045Canada2025-08-12
1046Brazil2025-08-27
1047India2025-08-13
1048Russia2025-08-21
1049France2025-08-24

On-Demand Data

NameIdCountryDate
Antonio O Ferencz1000United Kingdom2025-08-28
Jefferson E Paprocki1001France2025-08-02
Emily R Rulapaugh1002Russia2025-08-03
Alejandro S Flosi1003Russia2025-08-02
Jefferson Y Rulapaugh1004Argentina2025-08-17
Misaki I Waycott1005Germany2025-08-23
Chavez L Chui1006Australia2025-08-19
Juan Z Malet1007Germany2025-08-08
Ivar L Rim1008Spain2025-08-14
Jefferson Q Wieser1009Italy2025-08-06
Ashley W Ruta1010India2025-07-31
Isabel E Shinko1011Canada2025-08-06
Deepesh W Bolognia1012United Kingdom2025-08-26
Alejandro W Campain1013Australia2025-07-30
Wickens L Iturbide1014Spain2025-08-28
Maisha E Malet1015Brazil2025-08-11
Adams K Foller1016Australia2025-08-06
Greenwood Y Nicka1017Spain2025-08-04
Maisha X Garufi1018Argentina2025-08-03
Greenwood T Briddick1019France2025-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily M KolmetzAustraliaIoni Bowcher NEW
Claire K AmigonGermanyOnyama Limba PROPOSAL
Aditya S PoquetteSpainAnna Fali QUALIFIED
James Q KuskoItalyAmy Elsner NEW
Mujtaba F StensethBrazilIoni Bowcher PROPOSAL
Maria B GlickItalyOnyama Limba QUALIFIED
Munro N BriddickSpainAnna Fali UNQUALIFIED
Maria A PerinArgentinaBernardo Dominic NEGOTIATION
Maisha H GarufiBrazilAsiya Javayant QUALIFIED
Ivar V CaudyGermanyOnyama Limba RENEWAL
Izzy Q WaycottBrazilAmy Elsner UNQUALIFIED
Nicolas R MaletAustraliaStephen Shaw NEW
Johnson J SergiCanadaOnyama Limba NEW
Isabel H InouyeIndiaAnna Fali QUALIFIED
Morrow R FerenczJapanIoni Bowcher UNQUALIFIED
Tony Q GarufiRussiaStephen Shaw UNQUALIFIED
Jones R SlusarskiBrazilIoni Bowcher RENEWAL
Leon A DilliardRussiaStephen Shaw PROPOSAL
Julie K DarakjyAustraliaOnyama Limba NEW
Rodrigues U IturbideJapanAnna Fali NEGOTIATION
Octavia G CaudyGermanyIoni Bowcher RENEWAL
Julie N InouyeSpainIoni Bowcher PROPOSAL
Morrow Z KuskoAustraliaElwin Sharvill UNQUALIFIED
Ricardo Q SergiSpainBernardo Dominic QUALIFIED
Salvatore L OldroydFranceOnyama Limba QUALIFIED
Aruna D PaprockiArgentinaBernardo Dominic NEW
Tony L GlickArgentinaOnyama Limba NEGOTIATION
Juan Y CaudyAustraliaIoni Bowcher RENEWAL
Misaki M SaylorsBrazilBernardo Dominic UNQUALIFIED
Ivar J BriddickCanadaOnyama Limba NEGOTIATION
Deepesh E GlickRussiaOnyama Limba RENEWAL
Salvatore W MorascaBrazilElwin Sharvill NEW
Adams U SaylorsIndiaOnyama Limba PROPOSAL
Adams N MorascaGermanyOnyama Limba NEGOTIATION
Alejandro Z PoquetteBrazilXuxue Feng UNQUALIFIED
Greenwood G ButtJapanIvan Magalhaes QUALIFIED
Smith C PerinFranceIoni Bowcher NEGOTIATION
Chavez Z BologniaBrazilAsiya Javayant NEGOTIATION
Rodrigues N AmigonGermanyStephen Shaw NEGOTIATION
Chavez G RutaAustraliaElwin Sharvill 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>