Locale

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Bangla
Bosnian
Czech
Greek
Estonian
Persian
Finnish
Danish
Hindi
Indonesian
Icelandic
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

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

Saga Saga
Vela Vela
Arya Arya

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Smith GlickBrazilAnna Fali RENEWAL
Jeanfrancois VenereRussiaBernardo Dominic NEGOTIATION
Jones VocelkaJapanElwin Sharvill PROPOSAL
Juan WieserArgentinaAsiya Javayant PROPOSAL
Darci PoquetteIndiaStephen Shaw RENEWAL
Darci PoquetteJapanOnyama Limba UNQUALIFIED
Francesco ShinkoUnited KingdomBernardo Dominic NEGOTIATION
Aika InouyeRussiaAsiya Javayant QUALIFIED
Kadeem FlosiArgentinaStephen Shaw NEW
Maria MarrierFranceIvan Magalhaes NEGOTIATION
Isabel BowleyGermanyIoni Bowcher QUALIFIED
Alejandro PerinCanadaElwin Sharvill UNQUALIFIED
Emily WhobreySpainBernardo Dominic QUALIFIED
Cody SaylorsFranceIoni Bowcher RENEWAL
Juan WieserRussiaAnna Fali NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng NEW
Ivar PaprockiJapanIvan Magalhaes RENEWAL
Ashley DoeGermanyXuxue Feng NEGOTIATION
Maria MarrierFranceElwin Sharvill PROPOSAL
Cody SaylorsCanadaStephen Shaw PROPOSAL
Francesco ShinkoRussiaIvan Magalhaes RENEWAL
Aika InouyeJapanElwin Sharvill NEW
Kaitlin OstroskySpainIoni Bowcher NEW
Johnson SergiBrazilXuxue Feng UNQUALIFIED
Stacey MacleadFranceElwin Sharvill NEW
Ashley DoeFranceIoni Bowcher NEW
Morrow RutaAustraliaIoni Bowcher RENEWAL
Isabel BowleyBrazilElwin Sharvill RENEWAL
Faith GillianCanadaAsiya Javayant PROPOSAL
Smith GlickFranceBernardo Dominic PROPOSAL
Kaitlin OstroskyAustraliaBernardo Dominic PROPOSAL
Salvatore StockhamArgentinaAnna Fali PROPOSAL
Chavez BriddickItalyAsiya Javayant PROPOSAL
Aditya KuskoArgentinaXuxue Feng NEGOTIATION
Leja CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Darci PoquetteBrazilIvan Magalhaes NEGOTIATION
Maria MarrierRussiaOnyama Limba UNQUALIFIED
Leja CaldareraRussiaAmy Elsner RENEWAL
Greenwood BologniaItalyIoni Bowcher UNQUALIFIED
Murillo MaletGermanyIvan Magalhaes PROPOSAL
Darci PoquetteIndiaAmy Elsner NEW
Kadeem FlosiCanadaOnyama Limba NEW
Faith GillianIndiaOnyama Limba NEGOTIATION
Clifford RimUnited KingdomAmy Elsner NEGOTIATION
Antonio CaudyJapanIoni Bowcher NEGOTIATION
Mujtaba NickaIndiaIoni Bowcher QUALIFIED
Johnson SergiRussiaIoni Bowcher QUALIFIED
Kaitlin OstroskyArgentinaAmy Elsner NEW
Stacey MacleadSpainBernardo Dominic RENEWAL
James ButtIndiaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams MorascaItalyAnna Fali UNQUALIFIED
Costa DilliardAustraliaBernardo Dominic RENEWAL
Claire TollnerArgentinaElwin Sharvill NEW
Leja CaldareraBrazilXuxue Feng PROPOSAL
Kaitlin OstroskyUnited KingdomXuxue Feng RENEWAL
Juan WieserFranceStephen Shaw PROPOSAL
Darci PoquetteGermanyElwin Sharvill QUALIFIED
Tony FollerItalyElwin Sharvill UNQUALIFIED
Octavia MaletSpainIoni Bowcher NEGOTIATION
Munro FerenczSpainXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaSpain2026-06-10Feltz Printing Service NEGOTIATION52Ivan Magalhaes
1001Kadeem FlosiBrazil2026-05-22Rousseaux, Michael Esq QUALIFIED75Elwin Sharvill
1002Faith GillianGermany2026-06-02Dorl, James J Esq UNQUALIFIED59Onyama Limba
1003Ashley DoeArgentina2026-05-27Buckley Miller Wright PROPOSAL69Amy Elsner
1004Kaitlin OstroskyGermany2026-05-13Dorl, James J Esq NEGOTIATION9Ioni Bowcher
1005Clifford RimFrance2026-05-20Benton, John B Jr NEGOTIATION37Elwin Sharvill
1006Jones VocelkaAustralia2026-06-07Benton, John B Jr NEW41Elwin Sharvill
1007Leon OldroydRussia2026-05-19Dorl, James J Esq NEGOTIATION43Onyama Limba
1008Juan WieserBrazil2026-06-04Rangoni Of Florence RENEWAL83Ioni Bowcher
1009Murillo MaletJapan2026-05-29Dorl, James J Esq QUALIFIED72Ioni Bowcher
1010Alejandro PerinIndia2026-05-21Chapman, Ross E Esq PROPOSAL12Stephen Shaw
1011Clifford RimAustralia2026-05-29Chemel, James L Cpa PROPOSAL13Anna Fali
1012Misaki RoysterSpain2026-06-05King, Christopher A Esq NEW57Anna Fali
1013Cody SaylorsRussia2026-05-18Feiner Bros PROPOSAL10Elwin Sharvill
1014David DarakjyIndia2026-06-06Dorl, James J Esq RENEWAL16Elwin Sharvill
1015Maria MarrierIndia2026-05-25Benton, John B Jr NEW74Stephen Shaw
1016Mayumi KolmetzIndia2026-06-06Feltz Printing Service RENEWAL30Elwin Sharvill
1017Claire TollnerAustralia2026-05-19Chemel, James L Cpa NEGOTIATION99Elwin Sharvill
1018Emily WhobreySpain2026-05-26Chemel, James L Cpa RENEWAL23Stephen Shaw
1019Nicolas IturbideItaly2026-05-17Truhlar And Truhlar Attys PROPOSAL65Ivan Magalhaes
1020Aditya KuskoAustralia2026-05-27Chapman, Ross E Esq PROPOSAL87Stephen Shaw
1021Salvatore StockhamGermany2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED68Onyama Limba
1022Costa DilliardUnited Kingdom2026-06-03Chemel, James L Cpa QUALIFIED19Amy Elsner
1023Jeanfrancois VenereArgentina2026-05-25Printing Dimensions UNQUALIFIED93Elwin Sharvill
1024Kaitlin OstroskyGermany2026-05-21Dorl, James J Esq UNQUALIFIED57Anna Fali
1025Stacey MacleadGermany2026-05-28Benton, John B Jr UNQUALIFIED13Asiya Javayant
1026Ivar PaprockiFrance2026-05-19Chanay, Jeffrey A Esq RENEWAL93Ioni Bowcher
1027Octavia MaletItaly2026-05-27Feltz Printing Service NEW49Stephen Shaw
1028Rodrigues CampainGermany2026-06-11Dorl, James J Esq NEW31Bernardo Dominic
1029Jeanfrancois VenereJapan2026-05-16Morlong Associates PROPOSAL86Onyama Limba
1030Greenwood BologniaFrance2026-05-31Truhlar And Truhlar Attys RENEWAL79Anna Fali
1031Julie StensethSpain2026-05-17Commercial Press QUALIFIED22Asiya Javayant
1032David DarakjyJapan2026-06-07Commercial Press PROPOSAL29Stephen Shaw
1033Jefferson SchemmerGermany2026-06-05Chanay, Jeffrey A Esq RENEWAL75Ioni Bowcher
1034Leja CaldareraJapan2026-05-14Morlong Associates NEGOTIATION59Anna Fali
1035Adams MorascaIndia2026-06-05Dorl, James J Esq QUALIFIED69Amy Elsner
1036Francesco ShinkoArgentina2026-05-17Dorl, James J Esq PROPOSAL79Stephen Shaw
1037Ivar PaprockiAustralia2026-05-15Benton, John B Jr NEW30Amy Elsner
1038Tony FollerIndia2026-05-18King, Christopher A Esq RENEWAL22Anna Fali
1039Kadeem FlosiUnited Kingdom2026-05-17Buckley Miller Wright RENEWAL36Asiya Javayant
1040Kaitlin OstroskyIndia2026-06-06Rangoni Of Florence NEGOTIATION46Elwin Sharvill
1041Stacey MacleadItaly2026-05-27King, Christopher A Esq RENEWAL89Amy Elsner
1042Chavez BriddickUnited Kingdom2026-05-13Chanay, Jeffrey A Esq NEGOTIATION63Xuxue Feng
1043Clifford RimAustralia2026-06-11Chapman, Ross E Esq PROPOSAL25Stephen Shaw
1044Sinclair WaycottAustralia2026-05-15Buckley Miller Wright PROPOSAL88Ioni Bowcher
1045Alejandro PerinJapan2026-06-04Benton, John B Jr NEGOTIATION15Elwin Sharvill
1046Munro FerenczAustralia2026-05-20Morlong Associates PROPOSAL74Amy Elsner
1047Jefferson SchemmerFrance2026-05-17Chapman, Ross E Esq PROPOSAL92Ivan Magalhaes
1048Ivar PaprockiCanada2026-06-06Dorl, James J Esq QUALIFIED49Ioni Bowcher
1049Deepesh ChuiRussia2026-05-15Dorl, James J Esq QUALIFIED70Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilOnyama Limba NEW
Maisha RulapaughItalyOnyama Limba NEW
Maisha RulapaughFranceElwin Sharvill UNQUALIFIED
Costa DilliardJapanStephen Shaw NEGOTIATION
Francesco ShinkoArgentinaElwin Sharvill NEGOTIATION
Salvatore StockhamSpainBernardo Dominic NEGOTIATION
Jeanfrancois VenereSpainIoni Bowcher RENEWAL
David DarakjyBrazilXuxue Feng NEGOTIATION
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Francesco ShinkoJapanIvan Magalhaes QUALIFIED
Mayumi KolmetzUnited KingdomAsiya Javayant RENEWAL
Juan WieserItalyElwin Sharvill QUALIFIED
Julie StensethItalyIvan Magalhaes RENEWAL
Faith GillianUnited KingdomElwin Sharvill PROPOSAL
Mujtaba NickaAustraliaXuxue Feng NEGOTIATION
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Ricardo GauchoUnited KingdomOnyama Limba UNQUALIFIED
Salvatore StockhamItalyIoni Bowcher UNQUALIFIED
David DarakjySpainIoni Bowcher PROPOSAL
Ashley DoeFranceXuxue Feng UNQUALIFIED
Juan WieserGermanyOnyama Limba RENEWAL
Kaitlin OstroskyArgentinaXuxue Feng QUALIFIED
Silvio SlusarskiAustraliaStephen Shaw NEGOTIATION
Greenwood BologniaGermanyStephen Shaw NEW
Maisha RulapaughUnited KingdomElwin Sharvill RENEWAL
Salvatore StockhamJapanAnna Fali NEGOTIATION
Nicolas IturbideIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaIvan Magalhaes QUALIFIED
James ButtSpainStephen Shaw NEW
Maisha RulapaughSpainElwin Sharvill RENEWAL
Misaki RoysterJapanStephen Shaw RENEWAL
Chavez BriddickItalyIvan Magalhaes RENEWAL
Munro FerenczRussiaAnna Fali UNQUALIFIED
Julie StensethUnited KingdomAnna Fali NEW
Morrow RutaAustraliaOnyama Limba NEW
Chavez BriddickFranceXuxue Feng PROPOSAL
Chavez BriddickCanadaOnyama Limba NEGOTIATION
Maria MarrierFranceBernardo Dominic RENEWAL
Isabel BowleyJapanAnna Fali NEGOTIATION
Nicolas IturbideUnited KingdomAnna Fali UNQUALIFIED
Costa DilliardJapanXuxue Feng NEGOTIATION
Jeanfrancois VenereBrazilIoni Bowcher QUALIFIED
Adams MorascaRussiaOnyama Limba QUALIFIED
Wickens NestleFranceBernardo Dominic NEW
Aruna FigeroaJapanAmy Elsner RENEWAL
Wickens NestleArgentinaAsiya Javayant RENEWAL
Kadeem FlosiSpainAsiya Javayant UNQUALIFIED
David DarakjyBrazilStephen Shaw QUALIFIED
Antonio CaudyBrazilBernardo Dominic PROPOSAL
Rodrigues CampainAustraliaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jennifer Amigon
Adams Morasca
Juan Wieser
Mujtaba Nicka
Mayumi Kolmetz
Greenwood Bolognia
Ricardo Gaucho
Rodrigues Campain
Isabel Bowley
Jones Vocelka
Sinclair Waycott
James Butt
Tony Foller
Leon Oldroyd
Kadeem Flosi
Morrow Ruta
Clifford Rim
Tony Foller
Mujtaba Nicka
Julie Stenseth
Faith Gillian
Isabel Bowley
Jennifer Amigon
Wickens Nestle
Tony Foller
Alejandro Perin
Tony Foller
Morrow Ruta
Greenwood Bolognia
Greenwood Bolognia
Octavia Malet
Isabel Bowley
Darci Poquette
Maria Marrier
Munro Ferencz
Jefferson Schemmer
James Butt
David Darakjy
Stacey Maclead
Kaitlin Ostrosky
Arvin Albares
Murillo Malet
Francesco Shinko
Costa Dilliard
Silvio Slusarski
Jennifer Amigon
Claire Tollner
Julie Stenseth
Stacey Maclead
Maisha Rulapaugh
IdCountryDate
1000United Kingdom2026-06-10
1001Canada2026-05-31
1002Russia2026-05-18
1003Russia2026-05-17
1004United Kingdom2026-06-07
1005United Kingdom2026-05-26
1006Australia2026-05-31
1007Brazil2026-06-02
1008India2026-06-04
1009Brazil2026-05-23
1010Brazil2026-06-01
1011Spain2026-05-15
1012Brazil2026-05-14
1013Australia2026-05-25
1014Italy2026-05-17
1015Brazil2026-05-27
1016Spain2026-05-27
1017Italy2026-06-06
1018Australia2026-05-23
1019France2026-05-19
1020Spain2026-05-22
1021Canada2026-06-02
1022Canada2026-06-08
1023Italy2026-05-18
1024France2026-05-13
1025Argentina2026-05-28
1026Russia2026-05-22
1027Germany2026-06-06
1028Russia2026-05-16
1029United Kingdom2026-06-02
1030Germany2026-05-31
1031India2026-06-08
1032India2026-06-03
1033France2026-05-18
1034Russia2026-05-28
1035Argentina2026-06-03
1036Canada2026-05-17
1037Brazil2026-05-19
1038Argentina2026-06-09
1039Argentina2026-06-08
1040Italy2026-05-13
1041France2026-05-18
1042Germany2026-06-09
1043Japan2026-06-09
1044Italy2026-06-08
1045Canada2026-06-08
1046Russia2026-05-26
1047Australia2026-06-04
1048Germany2026-05-13
1049Australia2026-05-16

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Germany2026-06-07
Claire Tollner1001Russia2026-05-18
Aruna Figeroa1002Argentina2026-05-14
Murillo Malet1003Australia2026-06-05
Clifford Rim1004Japan2026-05-14
Costa Dilliard1005Italy2026-06-02
Faith Gillian1006Italy2026-06-08
Clifford Rim1007Russia2026-05-24
Claire Tollner1008Japan2026-05-20
Kadeem Flosi1009Argentina2026-05-28
Mujtaba Nicka1010Italy2026-05-21
Ricardo Gaucho1011Argentina2026-06-11
Salvatore Stockham1012Argentina2026-06-08
Ricardo Gaucho1013Japan2026-05-20
David Darakjy1014Canada2026-06-06
Morrow Ruta1015United Kingdom2026-05-19
Faith Gillian1016Russia2026-06-10
Clifford Rim1017Italy2026-06-09
Kaitlin Ostrosky1018France2026-05-28
Kadeem Flosi1019France2026-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiFranceElwin Sharvill NEGOTIATION
Chavez BriddickBrazilAnna Fali NEGOTIATION
Greenwood BologniaAustraliaAnna Fali QUALIFIED
Johnson SergiJapanIvan Magalhaes NEGOTIATION
Jones VocelkaRussiaXuxue Feng UNQUALIFIED
Clifford RimUnited KingdomAsiya Javayant RENEWAL
Maria MarrierJapanBernardo Dominic RENEWAL
Darci PoquetteUnited KingdomAnna Fali RENEWAL
Stacey MacleadRussiaIoni Bowcher NEGOTIATION
Kadeem FlosiRussiaElwin Sharvill RENEWAL
Aika InouyeCanadaStephen Shaw NEGOTIATION
Alejandro PerinItalyBernardo Dominic QUALIFIED
Emily WhobreyCanadaIoni Bowcher NEW
Greenwood BologniaRussiaBernardo Dominic PROPOSAL
James ButtUnited KingdomIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaOnyama Limba PROPOSAL
Wickens NestleUnited KingdomOnyama Limba NEW
Jeanfrancois VenereCanadaIoni Bowcher QUALIFIED
Izzy GarufiBrazilAnna Fali NEW
Munro FerenczCanadaBernardo Dominic UNQUALIFIED
Wickens NestleJapanElwin Sharvill UNQUALIFIED
Cody SaylorsUnited KingdomAsiya Javayant PROPOSAL
Arvin AlbaresJapanAsiya Javayant UNQUALIFIED
Smith GlickJapanXuxue Feng QUALIFIED
Stacey MacleadJapanStephen Shaw QUALIFIED
James ButtSpainXuxue Feng NEW
Octavia MaletSpainBernardo Dominic PROPOSAL
Nicolas IturbideRussiaBernardo Dominic PROPOSAL
Cody SaylorsAustraliaIvan Magalhaes NEGOTIATION
Darci PoquetteJapanIvan Magalhaes NEW
Jennifer AmigonIndiaElwin Sharvill NEGOTIATION
Octavia MaletAustraliaOnyama Limba RENEWAL
Octavia MaletItalyIoni Bowcher QUALIFIED
Deepesh ChuiCanadaElwin Sharvill QUALIFIED
Aditya KuskoArgentinaAsiya Javayant NEW
Morrow RutaGermanyIoni Bowcher PROPOSAL
Wickens NestleSpainOnyama Limba RENEWAL
Isabel BowleyCanadaOnyama Limba NEW
Stacey MacleadItalyStephen Shaw RENEWAL
Izzy GarufiFranceOnyama Limba NEW

<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.statusName}">#{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.statusName}">#{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.statusName}">#{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.statusName}">#{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">
            <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.statusName}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>