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
Murillo MaletFranceOnyama Limba PROPOSAL
Aika InouyeJapanStephen Shaw NEW
Aditya KuskoJapanBernardo Dominic RENEWAL
Tony FollerJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiItalyElwin Sharvill RENEWAL
Jennifer AmigonRussiaBernardo Dominic QUALIFIED
Jones VocelkaCanadaXuxue Feng QUALIFIED
Murillo MaletFranceAnna Fali QUALIFIED
Maria MarrierArgentinaAmy Elsner PROPOSAL
Aika InouyeBrazilOnyama Limba PROPOSAL
Murillo MaletJapanIoni Bowcher UNQUALIFIED
Faith GillianArgentinaOnyama Limba QUALIFIED
Maria MarrierItalyBernardo Dominic RENEWAL
Ivar PaprockiFranceIoni Bowcher RENEWAL
Francesco ShinkoBrazilBernardo Dominic QUALIFIED
Clifford RimRussiaStephen Shaw QUALIFIED
Munro FerenczFranceXuxue Feng UNQUALIFIED
Smith GlickBrazilBernardo Dominic QUALIFIED
Salvatore StockhamFranceAmy Elsner QUALIFIED
Izzy GarufiRussiaXuxue Feng QUALIFIED
Silvio SlusarskiItalyIvan Magalhaes QUALIFIED
Julie StensethFranceOnyama Limba UNQUALIFIED
Ivar PaprockiSpainAsiya Javayant QUALIFIED
Clifford RimArgentinaIoni Bowcher PROPOSAL
Johnson SergiJapanXuxue Feng PROPOSAL
Costa DilliardItalyXuxue Feng UNQUALIFIED
Tony FollerItalyOnyama Limba RENEWAL
Costa DilliardRussiaAsiya Javayant PROPOSAL
Morrow RutaItalyXuxue Feng UNQUALIFIED
Jefferson SchemmerItalyIvan Magalhaes RENEWAL
Adams MorascaFranceAsiya Javayant NEGOTIATION
Stacey MacleadFranceAsiya Javayant PROPOSAL
Kaitlin OstroskyItalyAsiya Javayant NEW
Antonio CaudyJapanElwin Sharvill NEGOTIATION
Mujtaba NickaAustraliaAnna Fali UNQUALIFIED
Ivar PaprockiAustraliaIoni Bowcher QUALIFIED
Antonio CaudyIndiaBernardo Dominic QUALIFIED
Nicolas IturbideArgentinaIoni Bowcher UNQUALIFIED
Leon OldroydIndiaXuxue Feng NEW
Darci PoquetteBrazilElwin Sharvill UNQUALIFIED
Arvin AlbaresJapanElwin Sharvill PROPOSAL
Claire TollnerBrazilStephen Shaw RENEWAL
Morrow RutaCanadaStephen Shaw RENEWAL
Jeanfrancois VenereSpainAmy Elsner PROPOSAL
Faith GillianUnited KingdomXuxue Feng PROPOSAL
Cody SaylorsItalyXuxue Feng RENEWAL
Juan WieserFranceAmy Elsner NEGOTIATION
Cody SaylorsGermanyAmy Elsner NEW
Silvio SlusarskiFranceIvan Magalhaes RENEWAL
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel BowleyAustraliaStephen Shaw NEGOTIATION
Jones VocelkaSpainOnyama Limba QUALIFIED
Mayumi KolmetzSpainAmy Elsner NEGOTIATION
James ButtSpainXuxue Feng QUALIFIED
Stacey MacleadAustraliaIvan Magalhaes RENEWAL
Mayumi KolmetzItalyAsiya Javayant NEW
Salvatore StockhamUnited KingdomElwin Sharvill RENEWAL
Emily WhobreyRussiaStephen Shaw RENEWAL
Alejandro PerinGermanyIoni Bowcher UNQUALIFIED
Smith GlickFranceElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamAustralia2026-04-29Feltz Printing Service RENEWAL83Elwin Sharvill
1001Murillo MaletIndia2026-04-11Dorl, James J Esq NEGOTIATION78Bernardo Dominic
1002Ricardo GauchoCanada2026-04-16Chemel, James L Cpa NEGOTIATION78Stephen Shaw
1003Tony FollerRussia2026-04-22Benton, John B Jr QUALIFIED24Bernardo Dominic
1004Jennifer AmigonFrance2026-04-18Feiner Bros UNQUALIFIED6Elwin Sharvill
1005Antonio CaudySpain2026-04-02Chanay, Jeffrey A Esq NEW49Elwin Sharvill
1006Costa DilliardUnited Kingdom2026-04-30Truhlar And Truhlar Attys NEW57Amy Elsner
1007Tony FollerUnited Kingdom2026-04-29Rousseaux, Michael Esq RENEWAL97Ivan Magalhaes
1008Adams MorascaJapan2026-04-23Rangoni Of Florence PROPOSAL83Ivan Magalhaes
1009Ivar PaprockiRussia2026-04-12Rousseaux, Michael Esq NEW66Asiya Javayant
1010Rodrigues CampainItaly2026-04-20Printing Dimensions RENEWAL0Xuxue Feng
1011Jefferson SchemmerRussia2026-04-14King, Christopher A Esq PROPOSAL11Ivan Magalhaes
1012Misaki RoysterCanada2026-04-08Chapman, Ross E Esq UNQUALIFIED70Amy Elsner
1013Munro FerenczUnited Kingdom2026-04-22Commercial Press PROPOSAL95Asiya Javayant
1014Octavia MaletSpain2026-04-10Rangoni Of Florence NEGOTIATION49Xuxue Feng
1015Francesco ShinkoFrance2026-04-05Rangoni Of Florence NEW40Asiya Javayant
1016James ButtJapan2026-04-03Morlong Associates RENEWAL48Xuxue Feng
1017Ivar PaprockiIndia2026-04-10Chanay, Jeffrey A Esq UNQUALIFIED86Elwin Sharvill
1018Aditya KuskoCanada2026-04-10Chapman, Ross E Esq UNQUALIFIED12Stephen Shaw
1019Tony FollerIndia2026-04-11Truhlar And Truhlar Attys NEW81Amy Elsner
1020Johnson SergiIndia2026-04-16King, Christopher A Esq NEGOTIATION14Bernardo Dominic
1021Adams MorascaGermany2026-04-12Commercial Press UNQUALIFIED5Ivan Magalhaes
1022Murillo MaletArgentina2026-04-01Chanay, Jeffrey A Esq RENEWAL26Bernardo Dominic
1023Chavez BriddickItaly2026-04-07King, Christopher A Esq NEW1Elwin Sharvill
1024Smith GlickUnited Kingdom2026-04-08Morlong Associates NEW68Xuxue Feng
1025James ButtIndia2026-04-25Rangoni Of Florence QUALIFIED27Asiya Javayant
1026Adams MorascaAustralia2026-04-06Chemel, James L Cpa NEGOTIATION81Ivan Magalhaes
1027Greenwood BologniaBrazil2026-04-29Chapman, Ross E Esq PROPOSAL49Xuxue Feng
1028Munro FerenczGermany2026-04-05Feiner Bros UNQUALIFIED2Stephen Shaw
1029Morrow RutaCanada2026-04-29Rangoni Of Florence UNQUALIFIED8Bernardo Dominic
1030Jeanfrancois VenereAustralia2026-04-01Benton, John B Jr UNQUALIFIED19Bernardo Dominic
1031Clifford RimAustralia2026-04-10Feiner Bros UNQUALIFIED4Bernardo Dominic
1032Emily WhobreyAustralia2026-04-29Chanay, Jeffrey A Esq QUALIFIED60Bernardo Dominic
1033Leja CaldareraArgentina2026-04-01Feiner Bros RENEWAL83Stephen Shaw
1034Deepesh ChuiGermany2026-04-17Feltz Printing Service QUALIFIED22Xuxue Feng
1035Smith GlickGermany2026-04-05King, Christopher A Esq UNQUALIFIED7Stephen Shaw
1036Rodrigues CampainIndia2026-04-11Feiner Bros UNQUALIFIED48Ivan Magalhaes
1037Arvin AlbaresArgentina2026-04-01Feltz Printing Service PROPOSAL27Bernardo Dominic
1038Octavia MaletUnited Kingdom2026-04-25Rangoni Of Florence QUALIFIED53Ivan Magalhaes
1039Murillo MaletIndia2026-04-22Printing Dimensions QUALIFIED14Xuxue Feng
1040Octavia MaletAustralia2026-04-08Printing Dimensions PROPOSAL79Ioni Bowcher
1041Nicolas IturbideArgentina2026-04-16Printing Dimensions NEW71Ioni Bowcher
1042Aruna FigeroaSpain2026-04-19Commercial Press PROPOSAL95Stephen Shaw
1043Aruna FigeroaBrazil2026-04-02Buckley Miller Wright NEW87Asiya Javayant
1044Arvin AlbaresFrance2026-04-25King, Christopher A Esq QUALIFIED14Anna Fali
1045Misaki RoysterSpain2026-04-01Benton, John B Jr NEW79Ivan Magalhaes
1046Jefferson SchemmerArgentina2026-04-15Morlong Associates NEGOTIATION56Ivan Magalhaes
1047Greenwood BologniaFrance2026-04-22Rousseaux, Michael Esq NEW54Anna Fali
1048Mujtaba NickaUnited Kingdom2026-04-26Truhlar And Truhlar Attys PROPOSAL30Bernardo Dominic
1049Smith GlickFrance2026-04-02Benton, John B Jr PROPOSAL10Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughIndiaXuxue Feng PROPOSAL
Jeanfrancois VenereIndiaAsiya Javayant UNQUALIFIED
James ButtUnited KingdomBernardo Dominic UNQUALIFIED
Wickens NestleRussiaBernardo Dominic NEGOTIATION
Izzy GarufiFranceStephen Shaw QUALIFIED
Maisha RulapaughIndiaStephen Shaw UNQUALIFIED
Sinclair WaycottCanadaElwin Sharvill QUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Johnson SergiIndiaAsiya Javayant UNQUALIFIED
Maria MarrierBrazilAnna Fali NEGOTIATION
Stacey MacleadFranceBernardo Dominic RENEWAL
David DarakjyRussiaAsiya Javayant NEGOTIATION
Kadeem FlosiItalyAmy Elsner QUALIFIED
Aditya KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Ivar PaprockiFranceStephen Shaw QUALIFIED
Izzy GarufiBrazilAmy Elsner PROPOSAL
Ivar PaprockiFranceXuxue Feng RENEWAL
Octavia MaletArgentinaElwin Sharvill NEW
Juan WieserCanadaXuxue Feng NEW
Claire TollnerArgentinaXuxue Feng NEGOTIATION
Smith GlickAustraliaAsiya Javayant NEGOTIATION
Juan WieserBrazilElwin Sharvill NEGOTIATION
Chavez BriddickCanadaAnna Fali UNQUALIFIED
Adams MorascaBrazilAmy Elsner PROPOSAL
Kadeem FlosiSpainAmy Elsner QUALIFIED
Emily WhobreySpainStephen Shaw RENEWAL
Sinclair WaycottFranceOnyama Limba PROPOSAL
Antonio CaudyJapanElwin Sharvill NEW
Adams MorascaAustraliaAnna Fali PROPOSAL
Faith GillianAustraliaIvan Magalhaes NEW
Morrow RutaItalyElwin Sharvill QUALIFIED
Aditya KuskoGermanyBernardo Dominic PROPOSAL
Emily WhobreyAustraliaElwin Sharvill RENEWAL
Darci PoquetteSpainOnyama Limba RENEWAL
Aika InouyeSpainIvan Magalhaes QUALIFIED
Mayumi KolmetzIndiaOnyama Limba NEGOTIATION
Leja CaldareraJapanIvan Magalhaes UNQUALIFIED
Isabel BowleyItalyAsiya Javayant PROPOSAL
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Ivar PaprockiSpainIvan Magalhaes NEGOTIATION
Maisha RulapaughFranceElwin Sharvill NEGOTIATION
Smith GlickAustraliaIvan Magalhaes NEGOTIATION
Greenwood BologniaUnited KingdomElwin Sharvill QUALIFIED
Tony FollerSpainOnyama Limba NEW
Chavez BriddickRussiaIoni Bowcher NEW
Kadeem FlosiIndiaIvan Magalhaes NEGOTIATION
Clifford RimItalyOnyama Limba NEW
Kaitlin OstroskyJapanOnyama Limba NEW
Smith GlickArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiIndiaElwin Sharvill NEW
Frozen Columns
Name
Murillo Malet
Jennifer Amigon
Jefferson Schemmer
Ivar Paprocki
Jones Vocelka
Mujtaba Nicka
David Darakjy
Adams Morasca
Johnson Sergi
Johnson Sergi
Julie Stenseth
Aruna Figeroa
Arvin Albares
Francesco Shinko
Sinclair Waycott
James Butt
Morrow Ruta
Julie Stenseth
Ricardo Gaucho
Ashley Doe
Chavez Briddick
Rodrigues Campain
Morrow Ruta
Misaki Royster
Darci Poquette
Darci Poquette
Silvio Slusarski
Juan Wieser
Misaki Royster
Jeanfrancois Venere
Ashley Doe
Leja Caldarera
Julie Stenseth
Isabel Bowley
Jefferson Schemmer
Mujtaba Nicka
Jennifer Amigon
Maisha Rulapaugh
Aditya Kusko
Maria Marrier
Salvatore Stockham
Silvio Slusarski
Stacey Maclead
Rodrigues Campain
Claire Tollner
Johnson Sergi
Wickens Nestle
Francesco Shinko
Isabel Bowley
Adams Morasca
IdCountryDate
1000India2026-04-13
1001United Kingdom2026-04-23
1002Canada2026-04-27
1003Argentina2026-04-02
1004Argentina2026-04-04
1005Spain2026-04-21
1006Brazil2026-04-03
1007Italy2026-04-22
1008Japan2026-04-12
1009Italy2026-04-15
1010Canada2026-04-12
1011France2026-04-26
1012Japan2026-04-08
1013Italy2026-04-12
1014Italy2026-04-04
1015Argentina2026-04-02
1016United Kingdom2026-04-18
1017Russia2026-04-15
1018United Kingdom2026-04-04
1019Japan2026-04-15
1020Spain2026-04-11
1021Germany2026-04-17
1022India2026-04-05
1023United Kingdom2026-04-15
1024Germany2026-04-24
1025France2026-04-20
1026France2026-04-10
1027Brazil2026-04-27
1028Argentina2026-04-21
1029Argentina2026-04-09
1030Brazil2026-04-06
1031Brazil2026-04-02
1032United Kingdom2026-04-01
1033Brazil2026-04-01
1034Spain2026-04-03
1035Brazil2026-04-03
1036Japan2026-04-25
1037Japan2026-04-21
1038India2026-04-15
1039Japan2026-04-09
1040Argentina2026-04-27
1041Australia2026-04-19
1042Argentina2026-04-19
1043India2026-04-21
1044Brazil2026-04-26
1045Italy2026-04-22
1046Germany2026-04-19
1047Italy2026-04-29
1048Brazil2026-04-09
1049Italy2026-04-03

On-Demand Data

NameIdCountryDate
Aika Inouye1000Spain2026-04-24
Faith Gillian1001Russia2026-04-01
Munro Ferencz1002Spain2026-04-13
Rodrigues Campain1003Spain2026-04-10
Kadeem Flosi1004Spain2026-04-19
Ricardo Gaucho1005Argentina2026-04-05
Leon Oldroyd1006Argentina2026-04-03
Clifford Rim1007Argentina2026-04-19
Salvatore Stockham1008Italy2026-04-12
Francesco Shinko1009Russia2026-04-10
Francesco Shinko1010Argentina2026-04-12
Cody Saylors1011Argentina2026-04-01
Jennifer Amigon1012India2026-04-28
Stacey Maclead1013Brazil2026-04-30
Smith Glick1014Russia2026-04-29
Francesco Shinko1015Brazil2026-04-11
Ricardo Gaucho1016Russia2026-04-05
Sinclair Waycott1017Argentina2026-04-23
Emily Whobrey1018France2026-04-02
Maria Marrier1019United Kingdom2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiItalyStephen Shaw UNQUALIFIED
Salvatore StockhamJapanAnna Fali PROPOSAL
Kaitlin OstroskyRussiaIvan Magalhaes UNQUALIFIED
David DarakjyIndiaAnna Fali NEGOTIATION
Leja CaldareraSpainAsiya Javayant QUALIFIED
Deepesh ChuiFranceBernardo Dominic UNQUALIFIED
Sinclair WaycottUnited KingdomIvan Magalhaes NEW
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Tony FollerUnited KingdomOnyama Limba QUALIFIED
James ButtJapanAmy Elsner PROPOSAL
Morrow RutaCanadaOnyama Limba RENEWAL
Greenwood BologniaFranceIoni Bowcher NEW
Sinclair WaycottAustraliaAmy Elsner NEW
Costa DilliardBrazilAnna Fali UNQUALIFIED
Wickens NestleIndiaAnna Fali PROPOSAL
Deepesh ChuiBrazilStephen Shaw PROPOSAL
Maisha RulapaughSpainOnyama Limba RENEWAL
Ashley DoeUnited KingdomXuxue Feng RENEWAL
Leja CaldareraArgentinaXuxue Feng PROPOSAL
Chavez BriddickArgentinaIvan Magalhaes RENEWAL
Ivar PaprockiCanadaBernardo Dominic NEW
Johnson SergiGermanyBernardo Dominic PROPOSAL
Mayumi KolmetzGermanyOnyama Limba RENEWAL
Emily WhobreyJapanIoni Bowcher RENEWAL
Clifford RimItalyAsiya Javayant NEW
Leja CaldareraIndiaXuxue Feng QUALIFIED
Ashley DoeSpainOnyama Limba QUALIFIED
Emily WhobreyFranceIoni Bowcher UNQUALIFIED
Leja CaldareraSpainOnyama Limba UNQUALIFIED
Deepesh ChuiAustraliaBernardo Dominic UNQUALIFIED
Mujtaba NickaItalyIvan Magalhaes NEW
Wickens NestleFranceStephen Shaw NEGOTIATION
David DarakjyFranceIoni Bowcher NEGOTIATION
Emily WhobreyFranceXuxue Feng PROPOSAL
Faith GillianAustraliaOnyama Limba NEW
Jeanfrancois VenereJapanStephen Shaw NEGOTIATION
Maria MarrierSpainAsiya Javayant RENEWAL
Sinclair WaycottGermanyStephen Shaw PROPOSAL
Murillo MaletArgentinaStephen Shaw 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.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>