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
Salvatore V WaycottBrazilIoni Bowcher QUALIFIED
Tony G TollnerRussiaBernardo Dominic NEGOTIATION
Juan A IturbideSpainIvan Magalhaes NEW
Francesco V FerenczCanadaStephen Shaw NEW
Octavia V NestleBrazilXuxue Feng QUALIFIED
Wickens S InouyeFranceBernardo Dominic UNQUALIFIED
Maria T AlbaresSpainIvan Magalhaes NEW
Misaki I MaletJapanAmy Elsner UNQUALIFIED
Cody N InouyeRussiaIvan Magalhaes PROPOSAL
Kadeem V TollnerFranceStephen Shaw RENEWAL
Mujtaba R GlickIndiaAnna Fali NEGOTIATION
Nicolas M BowleyUnited KingdomStephen Shaw NEGOTIATION
Smith D NickaSpainXuxue Feng NEW
Maisha V RoysterBrazilStephen Shaw NEGOTIATION
James R RimRussiaOnyama Limba UNQUALIFIED
Adams H NestleSpainIvan Magalhaes PROPOSAL
Ivar D ChuiGermanyIvan Magalhaes NEGOTIATION
Munro S RimSpainElwin Sharvill QUALIFIED
Julie J PaprockiFranceStephen Shaw NEGOTIATION
Stacey T MarrierRussiaAnna Fali UNQUALIFIED
Isabel V BriddickBrazilStephen Shaw UNQUALIFIED
Ashley O GarufiItalyElwin Sharvill RENEWAL
Alejandro W AlbaresIndiaOnyama Limba UNQUALIFIED
Isabel U SergiIndiaIoni Bowcher RENEWAL
Nicolas N WhobreyItalyAsiya Javayant RENEWAL
James U FlosiFranceAmy Elsner RENEWAL
Misaki J GlickAustraliaBernardo Dominic UNQUALIFIED
Alejandro S MorascaItalyOnyama Limba RENEWAL
Isabel B PoquetteAustraliaIvan Magalhaes RENEWAL
Kaitlin N MaletRussiaBernardo Dominic NEW
Julie A CaudyIndiaIoni Bowcher NEW
Munro U OldroydItalyElwin Sharvill PROPOSAL
Murillo H BriddickJapanOnyama Limba UNQUALIFIED
Adams F FerenczGermanyAmy Elsner UNQUALIFIED
Salvatore H MarrierArgentinaOnyama Limba RENEWAL
Deepesh C StockhamRussiaStephen Shaw RENEWAL
Morrow Z DilliardGermanyAsiya Javayant NEGOTIATION
Aruna I MorascaAustraliaBernardo Dominic QUALIFIED
Stacey B ButtJapanAmy Elsner NEGOTIATION
Sinclair J AmigonItalyAmy Elsner UNQUALIFIED
Arvin M SaylorsItalyIoni Bowcher PROPOSAL
Deepesh D NestleCanadaIvan Magalhaes NEGOTIATION
Francesco J BriddickCanadaAnna Fali UNQUALIFIED
Jefferson A CampainJapanAmy Elsner PROPOSAL
Ricardo L AlbaresSpainIvan Magalhaes PROPOSAL
Silvio W BriddickCanadaAsiya Javayant PROPOSAL
Johnson F OstroskySpainAmy Elsner NEGOTIATION
David E BriddickFranceAmy Elsner PROPOSAL
Johnson I KolmetzFranceElwin Sharvill UNQUALIFIED
James O SaylorsIndiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois C GlickBrazilIoni Bowcher RENEWAL
Cody Y SergiIndiaAmy Elsner NEW
Darci E MacleadCanadaIoni Bowcher QUALIFIED
Isabel K FerenczIndiaElwin Sharvill PROPOSAL
Juan T GillianAustraliaAsiya Javayant NEW
Adams V SaylorsIndiaStephen Shaw UNQUALIFIED
Maisha S BowleyFranceXuxue Feng RENEWAL
Jones F GlickItalyIvan Magalhaes NEGOTIATION
Tony N WhobreyAustraliaIoni Bowcher NEW
Munro W StensethAustraliaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire O ButtAustralia2025-10-04King, Christopher A Esq NEW34Amy Elsner
1001Aditya D SaylorsSpain2025-09-25Feltz Printing Service QUALIFIED46Xuxue Feng
1002Octavia A VocelkaJapan2025-09-20Truhlar And Truhlar Attys QUALIFIED10Onyama Limba
1003Deepesh E OstroskyGermany2025-10-17Chanay, Jeffrey A Esq RENEWAL49Ivan Magalhaes
1004Jeanfrancois T WieserGermany2025-10-08Truhlar And Truhlar Attys NEW24Asiya Javayant
1005Juan W DoeCanada2025-10-07Feiner Bros NEW10Elwin Sharvill
1006Maisha Z IturbideIndia2025-10-16Buckley Miller Wright NEW78Xuxue Feng
1007Rodrigues Z FlosiAustralia2025-10-05Morlong Associates NEW57Onyama Limba
1008Maria W AlbaresBrazil2025-10-13Rousseaux, Michael Esq NEW53Ivan Magalhaes
1009Alejandro X CaudyCanada2025-10-01Chemel, James L Cpa QUALIFIED17Bernardo Dominic
1010Salvatore Y FigeroaUnited Kingdom2025-10-15Feltz Printing Service QUALIFIED21Bernardo Dominic
1011Costa Y SchemmerGermany2025-10-17King, Christopher A Esq NEW27Asiya Javayant
1012Aruna Y NickaRussia2025-09-28Feiner Bros PROPOSAL63Ivan Magalhaes
1013Wickens N BologniaArgentina2025-10-05Chapman, Ross E Esq UNQUALIFIED54Bernardo Dominic
1014Maria S DilliardGermany2025-10-09Chanay, Jeffrey A Esq QUALIFIED5Xuxue Feng
1015Nicolas V NickaFrance2025-10-09Truhlar And Truhlar Attys UNQUALIFIED20Xuxue Feng
1016Isabel P GarufiIndia2025-10-11Chanay, Jeffrey A Esq NEGOTIATION72Onyama Limba
1017Costa W CaldareraFrance2025-10-17Morlong Associates NEW78Asiya Javayant
1018Mujtaba P PaprockiIndia2025-10-09Buckley Miller Wright UNQUALIFIED47Asiya Javayant
1019Leja T PoquetteFrance2025-10-05Rangoni Of Florence UNQUALIFIED99Anna Fali
1020Deepesh L GillianUnited Kingdom2025-10-14Truhlar And Truhlar Attys PROPOSAL7Anna Fali
1021Mayumi T SchemmerCanada2025-10-03Dorl, James J Esq UNQUALIFIED26Amy Elsner
1022Alejandro I WieserRussia2025-10-16Feiner Bros PROPOSAL85Asiya Javayant
1023Morrow V NickaRussia2025-10-13Morlong Associates PROPOSAL63Stephen Shaw
1024Sinclair G VocelkaBrazil2025-09-24Truhlar And Truhlar Attys NEW7Bernardo Dominic
1025Francesco Y InouyeItaly2025-10-02Feltz Printing Service NEGOTIATION29Ivan Magalhaes
1026James D MaletSpain2025-10-11Chanay, Jeffrey A Esq NEW0Xuxue Feng
1027Darci P OldroydSpain2025-10-02Buckley Miller Wright NEGOTIATION90Anna Fali
1028Murillo S BriddickItaly2025-10-16Benton, John B Jr QUALIFIED83Ivan Magalhaes
1029Claire C PaprockiIndia2025-10-11Rousseaux, Michael Esq QUALIFIED12Anna Fali
1030Nicolas Q OstroskyFrance2025-09-27Benton, John B Jr NEGOTIATION85Bernardo Dominic
1031Mayumi S NestleSpain2025-10-15Rousseaux, Michael Esq QUALIFIED27Xuxue Feng
1032Adams Q StockhamArgentina2025-09-18Buckley Miller Wright QUALIFIED70Stephen Shaw
1033Julie K SaylorsCanada2025-10-17Feiner Bros NEGOTIATION9Ioni Bowcher
1034Jennifer H OstroskySpain2025-09-23King, Christopher A Esq NEW37Anna Fali
1035Deepesh A WieserAustralia2025-10-09King, Christopher A Esq RENEWAL38Xuxue Feng
1036Misaki J RimCanada2025-09-30Feltz Printing Service NEGOTIATION46Bernardo Dominic
1037Wickens D RutaGermany2025-09-19Dorl, James J Esq NEGOTIATION48Ioni Bowcher
1038Aditya X GillianBrazil2025-10-14Rangoni Of Florence QUALIFIED54Ioni Bowcher
1039Tony M TollnerRussia2025-09-18Printing Dimensions PROPOSAL4Elwin Sharvill
1040Aika M DoeIndia2025-10-07Morlong Associates NEW82Amy Elsner
1041Ashley N PerinUnited Kingdom2025-10-06Chapman, Ross E Esq QUALIFIED51Ivan Magalhaes
1042Johnson D PoquetteCanada2025-10-09Feltz Printing Service NEW9Asiya Javayant
1043Aika Q RutaSpain2025-10-01Feiner Bros UNQUALIFIED22Ioni Bowcher
1044Jefferson M SaylorsUnited Kingdom2025-10-11Rangoni Of Florence NEGOTIATION38Anna Fali
1045Greenwood B RoysterGermany2025-10-09Truhlar And Truhlar Attys QUALIFIED16Elwin Sharvill
1046Francesco B VocelkaItaly2025-10-04Chapman, Ross E Esq RENEWAL35Onyama Limba
1047Costa V AlbaresItaly2025-10-11Truhlar And Truhlar Attys PROPOSAL66Stephen Shaw
1048Jones T MaletAustralia2025-10-17Commercial Press UNQUALIFIED18Elwin Sharvill
1049Stacey L AlbaresGermany2025-10-04Feltz Printing Service QUALIFIED90Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Darci X ChuiJapanAsiya Javayant NEGOTIATION
Jones P MacleadJapanOnyama Limba UNQUALIFIED
Smith Y BriddickIndiaIoni Bowcher RENEWAL
Adams L PerinItalyAmy Elsner PROPOSAL
Greenwood Z MarrierArgentinaStephen Shaw UNQUALIFIED
Chavez V OldroydArgentinaAmy Elsner NEGOTIATION
Kadeem A PoquetteRussiaIoni Bowcher RENEWAL
Kadeem H GarufiCanadaStephen Shaw NEW
Faith J GlickIndiaIoni Bowcher UNQUALIFIED
Maisha U DilliardIndiaIvan Magalhaes UNQUALIFIED
Aika A GarufiUnited KingdomIvan Magalhaes NEW
Izzy G BologniaRussiaXuxue Feng QUALIFIED
Johnson S VenereIndiaStephen Shaw UNQUALIFIED
Johnson M KuskoItalyXuxue Feng NEW
Darci H GillianItalyElwin Sharvill QUALIFIED
Deepesh G RoysterBrazilAmy Elsner QUALIFIED
Morrow L ShinkoBrazilXuxue Feng RENEWAL
Antonio G PerinArgentinaAsiya Javayant PROPOSAL
Octavia O RimJapanIvan Magalhaes NEW
Kaitlin K PerinRussiaOnyama Limba NEGOTIATION
James U WaycottRussiaBernardo Dominic NEGOTIATION
Julie X RimIndiaIvan Magalhaes RENEWAL
Morrow P WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Claire I ButtCanadaStephen Shaw QUALIFIED
Maisha Q PaprockiItalyAnna Fali PROPOSAL
Isabel Z ButtRussiaOnyama Limba QUALIFIED
Chavez D StensethItalyIoni Bowcher UNQUALIFIED
Sinclair D RoysterUnited KingdomAmy Elsner PROPOSAL
Arvin S SchemmerUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois E FlosiSpainAmy Elsner UNQUALIFIED
Izzy U SaylorsItalyOnyama Limba NEGOTIATION
Morrow K KolmetzBrazilBernardo Dominic RENEWAL
Leja W BowleyUnited KingdomStephen Shaw QUALIFIED
Stacey P WaycottSpainBernardo Dominic NEGOTIATION
Emily S RulapaughCanadaIvan Magalhaes UNQUALIFIED
Leja E RutaJapanAmy Elsner NEGOTIATION
Stacey P FollerGermanyAsiya Javayant UNQUALIFIED
Ashley B SaylorsSpainStephen Shaw QUALIFIED
Ashley O GillianUnited KingdomBernardo Dominic UNQUALIFIED
Clifford B ButtRussiaAmy Elsner RENEWAL
Salvatore W CaudyIndiaIvan Magalhaes UNQUALIFIED
Leja G AlbaresGermanyOnyama Limba RENEWAL
Greenwood V RoysterItalyElwin Sharvill QUALIFIED
Jennifer D IturbideArgentinaIvan Magalhaes QUALIFIED
Jones Y FlosiGermanyOnyama Limba PROPOSAL
Misaki E BowleyUnited KingdomAmy Elsner RENEWAL
Misaki I GillianIndiaXuxue Feng NEGOTIATION
Maria C FerenczItalyStephen Shaw UNQUALIFIED
Munro W RoysterRussiaBernardo Dominic UNQUALIFIED
Ivar Y TollnerRussiaIvan Magalhaes NEW
Frozen Columns
Name
Costa J Stockham
Maria H Marrier
Salvatore K Caldarera
Aditya O Kusko
Octavia W Inouye
Murillo G Saylors
Faith E Stenseth
Leon N Figeroa
Cody L Stenseth
Smith T Caldarera
Darci E Saylors
Arvin J Butt
Jennifer D Saylors
Johnson C Iturbide
James W Glick
Antonio P Ferencz
Jones O Kusko
Aika Z Slusarski
Octavia I Vocelka
Greenwood W Malet
Aika Y Albares
Aika I Schemmer
Maria H Gaucho
Aika Q Morasca
Ashley Z Amigon
Mujtaba O Nestle
Faith B Royster
Jeanfrancois S Marrier
Adams R Ferencz
Rodrigues R Briddick
Leja U Rim
Chavez X Waycott
Mayumi U Butt
Octavia L Venere
Leja U Stockham
Leon V Glick
Francesco E Garufi
Alejandro B Bowley
Arvin Q Saylors
Deepesh W Malet
Emily X Gaucho
Darci N Royster
Maria E Garufi
Smith S Inouye
James M Foller
Juan Q Rim
Smith F Caudy
Silvio G Iturbide
Mujtaba Z Morasca
Emily Q Royster
IdCountryDate
1000Japan2025-09-25
1001Argentina2025-10-15
1002United Kingdom2025-10-09
1003United Kingdom2025-09-27
1004Australia2025-10-16
1005Brazil2025-10-04
1006Australia2025-10-12
1007United Kingdom2025-09-24
1008Australia2025-10-02
1009Italy2025-10-14
1010Argentina2025-09-19
1011Canada2025-10-14
1012Argentina2025-10-13
1013Italy2025-09-29
1014Italy2025-10-14
1015Australia2025-10-11
1016France2025-10-08
1017Japan2025-09-19
1018Germany2025-10-04
1019France2025-09-29
1020Italy2025-09-29
1021Italy2025-10-07
1022Argentina2025-10-04
1023Russia2025-10-02
1024United Kingdom2025-10-16
1025India2025-10-09
1026India2025-10-01
1027Brazil2025-10-02
1028Brazil2025-09-24
1029United Kingdom2025-10-08
1030India2025-10-12
1031Spain2025-09-18
1032Spain2025-10-05
1033Japan2025-09-29
1034Brazil2025-10-10
1035Italy2025-10-03
1036Italy2025-09-22
1037Italy2025-10-01
1038Argentina2025-10-11
1039Argentina2025-10-10
1040Canada2025-10-02
1041Australia2025-09-27
1042Brazil2025-10-07
1043India2025-09-30
1044France2025-09-18
1045Russia2025-09-19
1046Brazil2025-10-02
1047India2025-10-03
1048Russia2025-09-26
1049India2025-10-13

On-Demand Data

NameIdCountryDate
Jeanfrancois N Gillian1000Spain2025-09-22
Costa B Gillian1001Italy2025-10-12
Jennifer O Royster1002France2025-09-19
Aika Q Tollner1003Australia2025-10-06
Izzy R Figeroa1004India2025-09-23
Tony A Bowley1005United Kingdom2025-10-03
Darci F Doe1006Australia2025-10-01
Jefferson Y Rulapaugh1007Italy2025-10-04
Chavez K Bowley1008Germany2025-10-06
Jones P Morasca1009Spain2025-10-13
Aruna F Marrier1010France2025-10-02
Claire A Schemmer1011Japan2025-09-21
Mayumi A Perin1012Canada2025-10-13
Silvio A Ruta1013Canada2025-10-16
Antonio G Oldroyd1014India2025-09-18
Smith I Gillian1015Canada2025-10-15
Octavia P Poquette1016Japan2025-10-17
Wickens A Perin1017Argentina2025-10-08
Maisha N Tollner1018France2025-10-01
Darci U Kolmetz1019Canada2025-10-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa J OldroydArgentinaElwin Sharvill PROPOSAL
Salvatore X RulapaughBrazilIvan Magalhaes NEGOTIATION
Tony K ChuiFranceXuxue Feng NEW
Kadeem P WieserFranceIvan Magalhaes NEGOTIATION
Leon V RulapaughRussiaOnyama Limba UNQUALIFIED
Isabel M WieserFranceAmy Elsner NEW
Johnson G MaletJapanIoni Bowcher RENEWAL
Ricardo I RutaBrazilIvan Magalhaes PROPOSAL
Salvatore K InouyeRussiaXuxue Feng PROPOSAL
David U RutaAustraliaAsiya Javayant RENEWAL
Darci Q CaudyIndiaIvan Magalhaes PROPOSAL
Darci N RulapaughArgentinaIoni Bowcher NEW
Octavia Y GarufiCanadaOnyama Limba NEGOTIATION
Mayumi P BologniaUnited KingdomAmy Elsner PROPOSAL
Aditya F IturbideRussiaStephen Shaw NEW
Cody R StensethArgentinaElwin Sharvill NEW
Arvin Y KolmetzRussiaIvan Magalhaes PROPOSAL
Leon L MacleadArgentinaStephen Shaw QUALIFIED
Jones H FerenczAustraliaStephen Shaw NEW
Mayumi J SergiUnited KingdomIoni Bowcher NEW
Claire B GauchoRussiaIoni Bowcher QUALIFIED
Isabel L FollerGermanyStephen Shaw QUALIFIED
Ivar V MorascaJapanAmy Elsner UNQUALIFIED
Aruna G WhobreyRussiaAmy Elsner NEGOTIATION
Silvio A StensethCanadaOnyama Limba QUALIFIED
David Y MaletItalyStephen Shaw NEGOTIATION
Arvin U AlbaresUnited KingdomXuxue Feng QUALIFIED
Chavez O WaycottRussiaStephen Shaw PROPOSAL
Antonio F PerinRussiaAsiya Javayant PROPOSAL
Clifford V AmigonItalyStephen Shaw NEW
Tony X FigeroaItalyBernardo Dominic UNQUALIFIED
Morrow D GarufiItalyStephen Shaw UNQUALIFIED
Misaki W MaletGermanyIvan Magalhaes QUALIFIED
Johnson W DoeCanadaIvan Magalhaes NEGOTIATION
Murillo T NickaIndiaOnyama Limba RENEWAL
Cody C SlusarskiAustraliaStephen Shaw PROPOSAL
Aruna X RoysterItalyElwin Sharvill NEW
Adams S FerenczAustraliaIoni Bowcher NEW
Claire T RutaJapanIoni Bowcher PROPOSAL
Jeanfrancois H DoeSpainAmy Elsner RENEWAL

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