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
Aruna R KolmetzBrazilBernardo Dominic NEGOTIATION
Darci Q AlbaresCanadaXuxue Feng PROPOSAL
Emily T RulapaughSpainAmy Elsner UNQUALIFIED
Chavez X GauchoAustraliaOnyama Limba PROPOSAL
Ashley C RoysterBrazilBernardo Dominic RENEWAL
Johnson S BologniaUnited KingdomOnyama Limba PROPOSAL
Aruna J ChuiJapanStephen Shaw RENEWAL
Wickens X KolmetzRussiaIvan Magalhaes NEGOTIATION
Kadeem B DarakjyCanadaAsiya Javayant RENEWAL
Silvio N SlusarskiGermanyAnna Fali NEW
Jennifer B MarrierSpainXuxue Feng NEW
Mayumi D DilliardUnited KingdomOnyama Limba NEW
Ivar S DoeJapanAnna Fali RENEWAL
Munro Y MaletRussiaAmy Elsner RENEWAL
Deepesh B CaldareraArgentinaAmy Elsner NEW
Arvin M NestleArgentinaBernardo Dominic NEW
Morrow T MaletUnited KingdomOnyama Limba NEGOTIATION
Cody D CaldareraItalyAsiya Javayant NEW
Jefferson P VenereJapanStephen Shaw NEGOTIATION
Smith L DarakjyCanadaStephen Shaw NEGOTIATION
Darci H AlbaresCanadaAsiya Javayant UNQUALIFIED
Octavia C SlusarskiRussiaElwin Sharvill RENEWAL
Murillo Y VenereCanadaBernardo Dominic NEW
David Q IturbideSpainElwin Sharvill PROPOSAL
Arvin O SchemmerJapanElwin Sharvill QUALIFIED
Wickens O FigeroaJapanBernardo Dominic NEGOTIATION
Cody Q KuskoFranceAmy Elsner NEGOTIATION
Sinclair C RoysterJapanOnyama Limba UNQUALIFIED
Morrow E GauchoAustraliaAmy Elsner UNQUALIFIED
Jones D DilliardArgentinaElwin Sharvill UNQUALIFIED
Costa Q NestleUnited KingdomAnna Fali PROPOSAL
Greenwood E GarufiBrazilBernardo Dominic NEW
Nicolas I VenereFranceBernardo Dominic RENEWAL
Chavez L PaprockiBrazilIvan Magalhaes NEW
Claire Y MaletGermanyXuxue Feng PROPOSAL
Maisha Q CampainFranceIvan Magalhaes UNQUALIFIED
Maisha W FollerBrazilOnyama Limba QUALIFIED
Darci J FlosiFranceBernardo Dominic NEW
Antonio E StockhamBrazilStephen Shaw UNQUALIFIED
Alejandro W MarrierArgentinaXuxue Feng NEW
Jennifer C MarrierJapanStephen Shaw QUALIFIED
Alejandro U PoquetteRussiaBernardo Dominic NEW
Kaitlin P WaycottBrazilAnna Fali QUALIFIED
David Z GillianFranceOnyama Limba QUALIFIED
Octavia Z TollnerAustraliaOnyama Limba NEW
Isabel A MacleadSpainStephen Shaw UNQUALIFIED
Johnson J InouyeSpainElwin Sharvill UNQUALIFIED
Ivar D AlbaresJapanAnna Fali UNQUALIFIED
Nicolas I FollerJapanIvan Magalhaes RENEWAL
Jennifer S SaylorsIndiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley K WhobreyGermanyAnna Fali NEW
Ivar S CaldareraFranceXuxue Feng QUALIFIED
Tony Z OstroskyFranceStephen Shaw NEGOTIATION
Faith F StockhamJapanOnyama Limba QUALIFIED
Arvin I SchemmerRussiaOnyama Limba PROPOSAL
Tony V BowleyAustraliaXuxue Feng NEGOTIATION
Antonio T GauchoGermanyStephen Shaw UNQUALIFIED
Stacey Q DilliardAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba N IturbideIndiaAnna Fali NEGOTIATION
Aditya S NestleGermanyAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams G CaudyIndia2025-08-09Dorl, James J Esq QUALIFIED76Xuxue Feng
1001Jefferson M MarrierArgentina2025-08-03Rousseaux, Michael Esq UNQUALIFIED57Anna Fali
1002Munro B NestleArgentina2025-07-31Feltz Printing Service PROPOSAL11Stephen Shaw
1003Silvio T CaudyAustralia2025-08-17Rangoni Of Florence NEW72Stephen Shaw
1004Adams O SergiFrance2025-08-04Truhlar And Truhlar Attys RENEWAL54Ioni Bowcher
1005Morrow N DilliardItaly2025-07-30Benton, John B Jr PROPOSAL61Asiya Javayant
1006Maisha Z IturbideFrance2025-08-13Chanay, Jeffrey A Esq UNQUALIFIED6Onyama Limba
1007Stacey B GillianItaly2025-08-10Morlong Associates PROPOSAL2Ioni Bowcher
1008Jones W DilliardSpain2025-08-15King, Christopher A Esq NEW9Xuxue Feng
1009Murillo T OstroskyIndia2025-08-26Truhlar And Truhlar Attys QUALIFIED3Stephen Shaw
1010Alejandro O OstroskyUnited Kingdom2025-07-31Printing Dimensions NEGOTIATION80Ivan Magalhaes
1011Greenwood P NestleGermany2025-08-09Feiner Bros NEW87Amy Elsner
1012Murillo K NickaBrazil2025-08-19Morlong Associates UNQUALIFIED97Onyama Limba
1013Salvatore P SergiArgentina2025-08-24Morlong Associates PROPOSAL35Elwin Sharvill
1014Maisha P MacleadItaly2025-08-19Chanay, Jeffrey A Esq RENEWAL63Elwin Sharvill
1015Wickens O AlbaresItaly2025-08-03Benton, John B Jr RENEWAL13Xuxue Feng
1016Emily J GillianSpain2025-08-27Dorl, James J Esq QUALIFIED34Ioni Bowcher
1017Aruna F RulapaughCanada2025-08-25Chanay, Jeffrey A Esq UNQUALIFIED48Ioni Bowcher
1018Stacey H RoysterAustralia2025-08-10Commercial Press UNQUALIFIED69Elwin Sharvill
1019Octavia O GlickGermany2025-08-21Feiner Bros NEGOTIATION86Xuxue Feng
1020Sinclair Q KuskoIndia2025-08-18Rousseaux, Michael Esq QUALIFIED70Asiya Javayant
1021Alejandro Y CampainRussia2025-08-27Chanay, Jeffrey A Esq QUALIFIED54Xuxue Feng
1022Costa A NickaAustralia2025-08-23Printing Dimensions NEW8Ivan Magalhaes
1023Mujtaba M RoysterUnited Kingdom2025-08-09Truhlar And Truhlar Attys PROPOSAL87Asiya Javayant
1024Maria T KuskoCanada2025-08-21Buckley Miller Wright UNQUALIFIED34Asiya Javayant
1025Costa E InouyeBrazil2025-08-18Commercial Press NEW48Asiya Javayant
1026Kaitlin C PoquetteIndia2025-07-31Rousseaux, Michael Esq QUALIFIED46Ioni Bowcher
1027Jefferson F VenereGermany2025-08-22Chanay, Jeffrey A Esq UNQUALIFIED22Asiya Javayant
1028Johnson I MorascaFrance2025-07-30Benton, John B Jr QUALIFIED31Amy Elsner
1029Silvio I RulapaughGermany2025-08-01Chanay, Jeffrey A Esq NEW37Onyama Limba
1030Ashley Y RimItaly2025-08-12Morlong Associates NEW98Elwin Sharvill
1031Morrow O OstroskyGermany2025-08-24Buckley Miller Wright UNQUALIFIED85Anna Fali
1032Jefferson W FigeroaBrazil2025-08-02Buckley Miller Wright QUALIFIED45Elwin Sharvill
1033Ivar U WhobreyUnited Kingdom2025-08-14Commercial Press UNQUALIFIED21Amy Elsner
1034Salvatore B FerenczJapan2025-08-17Chapman, Ross E Esq RENEWAL47Stephen Shaw
1035Kadeem Z OldroydBrazil2025-08-12Rangoni Of Florence UNQUALIFIED62Stephen Shaw
1036Stacey L DarakjyBrazil2025-08-14Commercial Press QUALIFIED79Stephen Shaw
1037Nicolas M VenereGermany2025-08-21Commercial Press NEW78Ioni Bowcher
1038Murillo H FlosiArgentina2025-08-07Chapman, Ross E Esq PROPOSAL75Ioni Bowcher
1039Leon A RoysterSpain2025-08-23Chanay, Jeffrey A Esq NEW54Anna Fali
1040Maisha V SchemmerAustralia2025-08-11Printing Dimensions UNQUALIFIED16Bernardo Dominic
1041Murillo Z AlbaresCanada2025-08-21Feltz Printing Service PROPOSAL24Asiya Javayant
1042Ashley K KuskoFrance2025-08-10Chemel, James L Cpa NEGOTIATION15Asiya Javayant
1043Misaki Z ChuiAustralia2025-08-27Rousseaux, Michael Esq QUALIFIED79Bernardo Dominic
1044Silvio D WhobreyBrazil2025-08-03Feiner Bros QUALIFIED82Ivan Magalhaes
1045Chavez K VenereArgentina2025-08-22Benton, John B Jr PROPOSAL80Asiya Javayant
1046Octavia K RulapaughArgentina2025-08-08King, Christopher A Esq UNQUALIFIED26Onyama Limba
1047Maria N PoquetteJapan2025-08-05Commercial Press NEGOTIATION18Anna Fali
1048Johnson X WaycottFrance2025-08-18Rangoni Of Florence NEW2Anna Fali
1049Jennifer M IturbideArgentina2025-08-08Chemel, James L Cpa RENEWAL43Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Salvatore X RimJapanStephen Shaw PROPOSAL
Johnson B GauchoFranceAnna Fali NEGOTIATION
Aditya G BowleyRussiaIoni Bowcher UNQUALIFIED
Salvatore L FerenczAustraliaAsiya Javayant QUALIFIED
Silvio I RulapaughArgentinaAmy Elsner QUALIFIED
Misaki U MaletAustraliaXuxue Feng NEGOTIATION
Emily U VocelkaIndiaElwin Sharvill QUALIFIED
Arvin V StensethAustraliaXuxue Feng RENEWAL
Mayumi B RimJapanIvan Magalhaes RENEWAL
Morrow F MarrierJapanAnna Fali UNQUALIFIED
Sinclair Q VocelkaRussiaBernardo Dominic NEW
Stacey O PerinGermanyElwin Sharvill NEGOTIATION
Rodrigues P GarufiItalyXuxue Feng RENEWAL
Francesco G BowleyItalyAsiya Javayant PROPOSAL
Wickens X GillianIndiaAmy Elsner NEGOTIATION
Costa B BologniaSpainBernardo Dominic RENEWAL
Isabel F RutaJapanIvan Magalhaes QUALIFIED
David D BriddickFranceIvan Magalhaes UNQUALIFIED
Tony B CampainSpainOnyama Limba NEGOTIATION
Mujtaba T AlbaresAustraliaAnna Fali PROPOSAL
Antonio N WieserUnited KingdomAsiya Javayant RENEWAL
Aditya L SaylorsRussiaStephen Shaw NEW
Jeanfrancois H OldroydBrazilOnyama Limba NEGOTIATION
Jeanfrancois Z CampainFranceStephen Shaw RENEWAL
Aruna E FigeroaRussiaIoni Bowcher NEGOTIATION
Faith G SchemmerRussiaElwin Sharvill UNQUALIFIED
Chavez I AlbaresAustraliaStephen Shaw QUALIFIED
David J MorascaRussiaXuxue Feng UNQUALIFIED
Mayumi N MacleadBrazilBernardo Dominic QUALIFIED
Arvin E CaldareraFranceBernardo Dominic UNQUALIFIED
Ricardo Q SaylorsArgentinaIoni Bowcher QUALIFIED
Silvio V RoysterGermanyAmy Elsner NEW
Sinclair P NestleArgentinaBernardo Dominic RENEWAL
Julie Y KuskoSpainAmy Elsner QUALIFIED
Munro I RoysterRussiaIvan Magalhaes QUALIFIED
Octavia P FlosiGermanyAmy Elsner NEGOTIATION
David U DilliardFranceElwin Sharvill NEW
Costa I SlusarskiArgentinaIoni Bowcher NEGOTIATION
Morrow M RimIndiaAmy Elsner PROPOSAL
Ivar D MaletItalyAmy Elsner UNQUALIFIED
Izzy X StensethItalyIvan Magalhaes PROPOSAL
Morrow Q GarufiSpainAmy Elsner RENEWAL
Izzy C DilliardJapanBernardo Dominic NEW
Octavia U DilliardItalyStephen Shaw PROPOSAL
Antonio J GillianRussiaAmy Elsner QUALIFIED
Mujtaba W GarufiArgentinaAsiya Javayant UNQUALIFIED
Kaitlin I MorascaItalyAsiya Javayant RENEWAL
Octavia X RoysterBrazilAsiya Javayant NEW
Antonio K MacleadCanadaStephen Shaw UNQUALIFIED
Jones Q DoeGermanyAsiya Javayant QUALIFIED
Frozen Columns
Name
Maisha P Stockham
Mujtaba F Nicka
Isabel U Saylors
Octavia P Doe
Rodrigues C Nestle
Sinclair T Paprocki
Jefferson H Kusko
Aruna O Saylors
Jones K Tollner
Juan L Saylors
Misaki N Kolmetz
Kaitlin J Malet
Murillo U Campain
Greenwood P Inouye
Johnson C Rim
Arvin T Royster
Ricardo B Garufi
Aruna R Stockham
Ricardo R Bolognia
Ivar Z Vocelka
Julie D Campain
Leja A Bolognia
Jones M Kolmetz
Silvio M Nestle
Ivar L Kusko
Cody M Marrier
Misaki X Shinko
Silvio T Waycott
Stacey H Poquette
Maisha U Glick
Jefferson R Campain
Leja E Royster
Tony T Tollner
Nicolas L Slusarski
Munro J Stenseth
Mujtaba F Marrier
Stacey O Wieser
Julie T Stenseth
Alejandro E Vocelka
Tony C Saylors
Alejandro R Chui
Faith T Ruta
Johnson D Waycott
Murillo K Bolognia
Faith D Morasca
Aditya E Caldarera
Stacey D Inouye
Greenwood Q Nicka
Johnson F Malet
Francesco E Ostrosky
IdCountryDate
1000Russia2025-08-17
1001Canada2025-08-23
1002Argentina2025-08-15
1003India2025-08-03
1004Canada2025-08-18
1005United Kingdom2025-07-31
1006Australia2025-08-13
1007Spain2025-08-14
1008India2025-08-24
1009Australia2025-08-28
1010Germany2025-07-30
1011Italy2025-08-07
1012Italy2025-08-21
1013Germany2025-08-25
1014Brazil2025-08-17
1015Brazil2025-08-19
1016Italy2025-08-28
1017France2025-08-24
1018Germany2025-08-24
1019Russia2025-08-04
1020Russia2025-08-27
1021Italy2025-08-27
1022India2025-08-20
1023Australia2025-08-19
1024Spain2025-07-31
1025Argentina2025-08-11
1026Germany2025-08-19
1027Australia2025-08-02
1028Australia2025-08-10
1029Russia2025-08-24
1030Spain2025-08-12
1031Brazil2025-08-18
1032Germany2025-08-05
1033Brazil2025-08-02
1034Australia2025-08-27
1035Italy2025-08-25
1036India2025-08-20
1037Germany2025-08-13
1038France2025-08-27
1039Spain2025-08-23
1040Russia2025-08-08
1041India2025-08-15
1042Russia2025-08-22
1043Germany2025-08-19
1044Canada2025-07-31
1045India2025-08-23
1046Italy2025-07-31
1047India2025-08-05
1048Germany2025-08-10
1049India2025-08-18

On-Demand Data

NameIdCountryDate
Nicolas O Figeroa1000France2025-08-18
David B Doe1001Russia2025-08-15
Deepesh E Albares1002Italy2025-08-19
Murillo E Stockham1003Germany2025-08-28
Octavia Q Kusko1004France2025-08-28
Arvin H Caldarera1005Australia2025-08-08
Francesco U Stenseth1006Germany2025-08-24
Adams H Slusarski1007Spain2025-08-10
Mayumi D Garufi1008India2025-08-13
Cody K Rim1009France2025-08-09
Chavez D Slusarski1010Spain2025-08-20
Johnson V Nicka1011Australia2025-08-20
Mujtaba P Shinko1012Spain2025-08-12
Johnson Y Bowley1013Brazil2025-08-26
Alejandro R Saylors1014Germany2025-08-25
Ivar G Schemmer1015Australia2025-08-21
Johnson V Slusarski1016Canada2025-08-27
Chavez S Kusko1017India2025-07-31
Octavia V Butt1018United Kingdom2025-08-03
Costa U Ostrosky1019Italy2025-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel M RutaSpainAmy Elsner RENEWAL
James L GauchoBrazilOnyama Limba UNQUALIFIED
Adams F NickaCanadaStephen Shaw UNQUALIFIED
Juan P RutaSpainXuxue Feng QUALIFIED
Rodrigues I ButtItalyElwin Sharvill UNQUALIFIED
Clifford M WaycottJapanOnyama Limba UNQUALIFIED
Antonio B GlickAustraliaIoni Bowcher RENEWAL
Tony H AlbaresFranceElwin Sharvill RENEWAL
James Q ShinkoJapanAsiya Javayant UNQUALIFIED
Clifford S RulapaughUnited KingdomStephen Shaw NEW
Aditya J FigeroaIndiaIoni Bowcher PROPOSAL
Aditya M IturbideUnited KingdomIoni Bowcher NEW
Leja X DilliardIndiaIoni Bowcher PROPOSAL
Jeanfrancois U MorascaArgentinaXuxue Feng QUALIFIED
Adams S SchemmerJapanXuxue Feng RENEWAL
Adams P VenereAustraliaElwin Sharvill UNQUALIFIED
Tony X KuskoArgentinaXuxue Feng PROPOSAL
Smith J DilliardFranceIoni Bowcher PROPOSAL
Claire L SlusarskiFranceAmy Elsner NEW
Francesco R MorascaUnited KingdomXuxue Feng QUALIFIED
Maria I FollerRussiaIoni Bowcher PROPOSAL
James L MorascaJapanStephen Shaw UNQUALIFIED
Ivar C OldroydRussiaAsiya Javayant QUALIFIED
Costa C CaudyAustraliaOnyama Limba PROPOSAL
Clifford G FollerArgentinaBernardo Dominic NEGOTIATION
Greenwood L SlusarskiAustraliaElwin Sharvill PROPOSAL
Leja U BologniaJapanStephen Shaw QUALIFIED
Stacey H DoeJapanIvan Magalhaes QUALIFIED
Juan K FigeroaItalyElwin Sharvill UNQUALIFIED
Maria Q AmigonIndiaElwin Sharvill NEW
Francesco C OldroydUnited KingdomIoni Bowcher NEGOTIATION
Murillo J AlbaresJapanElwin Sharvill PROPOSAL
Izzy K VocelkaFranceElwin Sharvill RENEWAL
Jeanfrancois F NestleGermanyElwin Sharvill QUALIFIED
Ricardo H IturbideJapanIoni Bowcher NEW
Adams S GlickAustraliaIoni Bowcher NEW
Jefferson C AmigonAustraliaElwin Sharvill NEGOTIATION
Julie R DilliardSpainElwin Sharvill NEGOTIATION
Octavia A DilliardSpainAsiya Javayant RENEWAL
Wickens I RulapaughSpainOnyama Limba UNQUALIFIED

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