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
Costa DilliardRussiaOnyama Limba NEW
Darci PoquetteUnited KingdomAmy Elsner NEGOTIATION
Antonio CaudyJapanAmy Elsner NEGOTIATION
Aditya KuskoCanadaOnyama Limba QUALIFIED
Isabel BowleyRussiaIvan Magalhaes NEW
Maria MarrierJapanBernardo Dominic PROPOSAL
Ricardo GauchoCanadaBernardo Dominic UNQUALIFIED
Stacey MacleadAustraliaOnyama Limba UNQUALIFIED
David DarakjySpainElwin Sharvill RENEWAL
Kadeem FlosiCanadaAnna Fali PROPOSAL
Kaitlin OstroskyGermanyStephen Shaw NEW
James ButtJapanAnna Fali PROPOSAL
Leon OldroydJapanElwin Sharvill NEW
Julie StensethJapanOnyama Limba UNQUALIFIED
Ivar PaprockiIndiaIvan Magalhaes NEGOTIATION
Smith GlickJapanAmy Elsner RENEWAL
Maisha RulapaughFranceIoni Bowcher NEW
Mujtaba NickaItalyElwin Sharvill NEGOTIATION
David DarakjyFranceElwin Sharvill UNQUALIFIED
Kadeem FlosiAustraliaStephen Shaw PROPOSAL
Ivar PaprockiAustraliaXuxue Feng NEGOTIATION
Tony FollerFranceElwin Sharvill NEW
James ButtArgentinaAsiya Javayant NEW
Antonio CaudyJapanOnyama Limba PROPOSAL
Chavez BriddickUnited KingdomElwin Sharvill NEGOTIATION
Darci PoquetteJapanStephen Shaw UNQUALIFIED
Claire TollnerItalyAmy Elsner PROPOSAL
Aruna FigeroaFranceOnyama Limba UNQUALIFIED
David DarakjyFranceElwin Sharvill QUALIFIED
Julie StensethGermanyXuxue Feng NEGOTIATION
Kaitlin OstroskyFranceBernardo Dominic NEGOTIATION
Munro FerenczUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleItalyAnna Fali NEW
Julie StensethGermanyOnyama Limba QUALIFIED
Wickens NestleAustraliaOnyama Limba UNQUALIFIED
Kadeem FlosiIndiaOnyama Limba QUALIFIED
Misaki RoysterRussiaAsiya Javayant NEW
Jeanfrancois VenereCanadaAmy Elsner NEW
Wickens NestleJapanAsiya Javayant UNQUALIFIED
Kaitlin OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Faith GillianIndiaAnna Fali PROPOSAL
Greenwood BologniaCanadaStephen Shaw PROPOSAL
Isabel BowleySpainElwin Sharvill QUALIFIED
Johnson SergiFranceElwin Sharvill QUALIFIED
Arvin AlbaresCanadaIvan Magalhaes RENEWAL
Greenwood BologniaItalyBernardo Dominic QUALIFIED
Deepesh ChuiBrazilBernardo Dominic NEGOTIATION
Rodrigues CampainGermanyElwin Sharvill RENEWAL
Jones VocelkaGermanyXuxue Feng NEGOTIATION
Aika InouyeIndiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiAustraliaIvan Magalhaes PROPOSAL
Adams MorascaFranceElwin Sharvill QUALIFIED
Stacey MacleadGermanyAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaIvan Magalhaes NEW
Izzy GarufiArgentinaXuxue Feng NEGOTIATION
James ButtIndiaOnyama Limba NEW
Francesco ShinkoArgentinaStephen Shaw PROPOSAL
Jennifer AmigonRussiaXuxue Feng NEW
Jeanfrancois VenereArgentinaIoni Bowcher NEGOTIATION
Aditya KuskoIndiaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleFrance2026-04-24Benton, John B Jr NEGOTIATION93Xuxue Feng
1001Rodrigues CampainJapan2026-05-03Chemel, James L Cpa QUALIFIED14Elwin Sharvill
1002Jefferson SchemmerIndia2026-05-11Buckley Miller Wright UNQUALIFIED18Amy Elsner
1003Aruna FigeroaCanada2026-05-13Dorl, James J Esq NEW69Asiya Javayant
1004Nicolas IturbideJapan2026-05-14Feltz Printing Service RENEWAL11Onyama Limba
1005Juan WieserRussia2026-04-27Feltz Printing Service NEW23Onyama Limba
1006Smith GlickJapan2026-05-15Dorl, James J Esq NEGOTIATION80Ivan Magalhaes
1007Aruna FigeroaJapan2026-04-26Chanay, Jeffrey A Esq RENEWAL27Elwin Sharvill
1008Izzy GarufiUnited Kingdom2026-05-09Benton, John B Jr QUALIFIED36Asiya Javayant
1009Costa DilliardArgentina2026-05-13Rangoni Of Florence RENEWAL5Elwin Sharvill
1010Mayumi KolmetzArgentina2026-05-05Morlong Associates PROPOSAL13Xuxue Feng
1011Claire TollnerAustralia2026-05-20Printing Dimensions UNQUALIFIED2Ivan Magalhaes
1012Claire TollnerFrance2026-05-09Rousseaux, Michael Esq NEW80Asiya Javayant
1013Misaki RoysterAustralia2026-04-29Truhlar And Truhlar Attys RENEWAL52Stephen Shaw
1014Munro FerenczAustralia2026-05-09Rangoni Of Florence UNQUALIFIED24Bernardo Dominic
1015Jones VocelkaBrazil2026-05-13Feiner Bros NEW46Asiya Javayant
1016Rodrigues CampainIndia2026-05-06Benton, John B Jr NEW84Bernardo Dominic
1017Juan WieserIndia2026-05-09Rangoni Of Florence NEGOTIATION91Ivan Magalhaes
1018Johnson SergiUnited Kingdom2026-05-16Rousseaux, Michael Esq NEGOTIATION71Xuxue Feng
1019Tony FollerCanada2026-05-17Feltz Printing Service NEGOTIATION84Ivan Magalhaes
1020Smith GlickItaly2026-05-10Rangoni Of Florence NEGOTIATION12Onyama Limba
1021Claire TollnerArgentina2026-04-21Morlong Associates UNQUALIFIED35Stephen Shaw
1022Misaki RoysterArgentina2026-05-19Buckley Miller Wright QUALIFIED79Onyama Limba
1023Johnson SergiSpain2026-04-29Feltz Printing Service RENEWAL33Amy Elsner
1024Aika InouyeCanada2026-04-27King, Christopher A Esq UNQUALIFIED71Amy Elsner
1025Juan WieserJapan2026-05-12Morlong Associates QUALIFIED37Anna Fali
1026Emily WhobreyArgentina2026-04-24Rangoni Of Florence NEGOTIATION30Bernardo Dominic
1027Isabel BowleyIndia2026-05-16King, Christopher A Esq PROPOSAL79Xuxue Feng
1028Ivar PaprockiFrance2026-05-17Buckley Miller Wright RENEWAL1Elwin Sharvill
1029Costa DilliardBrazil2026-05-10Rangoni Of Florence NEGOTIATION82Asiya Javayant
1030Octavia MaletGermany2026-05-02Benton, John B Jr QUALIFIED66Ioni Bowcher
1031Izzy GarufiAustralia2026-05-05Dorl, James J Esq RENEWAL81Amy Elsner
1032Izzy GarufiItaly2026-05-09Rousseaux, Michael Esq RENEWAL97Anna Fali
1033Smith GlickUnited Kingdom2026-04-30King, Christopher A Esq UNQUALIFIED81Elwin Sharvill
1034Aditya KuskoAustralia2026-05-18Dorl, James J Esq UNQUALIFIED4Amy Elsner
1035Cody SaylorsAustralia2026-05-02Chemel, James L Cpa NEW29Bernardo Dominic
1036Deepesh ChuiJapan2026-05-15Benton, John B Jr UNQUALIFIED20Ivan Magalhaes
1037Ashley DoeJapan2026-04-28Morlong Associates RENEWAL42Elwin Sharvill
1038Aika InouyeGermany2026-05-11Commercial Press NEGOTIATION39Asiya Javayant
1039Darci PoquetteGermany2026-04-30Printing Dimensions PROPOSAL3Stephen Shaw
1040Sinclair WaycottFrance2026-04-30Printing Dimensions NEGOTIATION47Ioni Bowcher
1041Costa DilliardJapan2026-05-15Benton, John B Jr RENEWAL41Bernardo Dominic
1042Jennifer AmigonAustralia2026-04-25Feltz Printing Service UNQUALIFIED9Ioni Bowcher
1043Jeanfrancois VenereRussia2026-04-21Commercial Press NEGOTIATION22Ioni Bowcher
1044Deepesh ChuiUnited Kingdom2026-05-06Chanay, Jeffrey A Esq PROPOSAL51Stephen Shaw
1045Adams MorascaCanada2026-05-14Dorl, James J Esq QUALIFIED11Amy Elsner
1046Ivar PaprockiItaly2026-05-19Feltz Printing Service QUALIFIED40Ivan Magalhaes
1047Jones VocelkaFrance2026-05-03Chemel, James L Cpa PROPOSAL29Asiya Javayant
1048Antonio CaudySpain2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED57Asiya Javayant
1049Costa DilliardArgentina2026-05-06Feltz Printing Service NEW45Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyGermanyBernardo Dominic NEGOTIATION
Nicolas IturbideBrazilAmy Elsner UNQUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher NEW
Leon OldroydRussiaAnna Fali NEGOTIATION
Isabel BowleyItalyBernardo Dominic NEW
Leon OldroydCanadaOnyama Limba PROPOSAL
Julie StensethUnited KingdomAsiya Javayant NEGOTIATION
Emily WhobreyUnited KingdomElwin Sharvill RENEWAL
Maisha RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Jeanfrancois VenereIndiaElwin Sharvill QUALIFIED
Maria MarrierIndiaBernardo Dominic PROPOSAL
James ButtGermanyIvan Magalhaes NEW
Francesco ShinkoGermanyOnyama Limba UNQUALIFIED
Morrow RutaIndiaOnyama Limba NEW
Leja CaldareraJapanOnyama Limba UNQUALIFIED
David DarakjyAustraliaStephen Shaw NEW
James ButtCanadaStephen Shaw NEW
Jennifer AmigonUnited KingdomAnna Fali NEGOTIATION
Cody SaylorsBrazilAsiya Javayant NEW
Salvatore StockhamSpainAnna Fali NEGOTIATION
Misaki RoysterIndiaXuxue Feng NEGOTIATION
Antonio CaudyIndiaAnna Fali QUALIFIED
Stacey MacleadSpainAnna Fali NEGOTIATION
Juan WieserUnited KingdomAmy Elsner PROPOSAL
Jennifer AmigonFranceBernardo Dominic NEGOTIATION
Maisha RulapaughGermanyXuxue Feng QUALIFIED
Leja CaldareraItalyIvan Magalhaes QUALIFIED
Juan WieserGermanyStephen Shaw PROPOSAL
Greenwood BologniaJapanAnna Fali RENEWAL
Mujtaba NickaSpainStephen Shaw RENEWAL
Tony FollerRussiaIvan Magalhaes NEGOTIATION
Emily WhobreyFranceXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyJapanXuxue Feng NEGOTIATION
Chavez BriddickUnited KingdomElwin Sharvill PROPOSAL
Jefferson SchemmerGermanyXuxue Feng NEGOTIATION
Munro FerenczItalyElwin Sharvill UNQUALIFIED
Morrow RutaRussiaIoni Bowcher QUALIFIED
Ivar PaprockiIndiaBernardo Dominic RENEWAL
Arvin AlbaresRussiaBernardo Dominic NEW
Wickens NestleAustraliaIvan Magalhaes QUALIFIED
Leja CaldareraRussiaAnna Fali NEW
Mujtaba NickaBrazilOnyama Limba QUALIFIED
Murillo MaletUnited KingdomElwin Sharvill UNQUALIFIED
Claire TollnerUnited KingdomStephen Shaw NEW
Izzy GarufiItalyIoni Bowcher PROPOSAL
Jones VocelkaRussiaAsiya Javayant NEW
Arvin AlbaresArgentinaAmy Elsner NEGOTIATION
Mujtaba NickaSpainAmy Elsner PROPOSAL
Maria MarrierSpainAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Leon Oldroyd
Aruna Figeroa
Arvin Albares
Kaitlin Ostrosky
Mayumi Kolmetz
Arvin Albares
Salvatore Stockham
Kaitlin Ostrosky
James Butt
Faith Gillian
Munro Ferencz
Jeanfrancois Venere
Jefferson Schemmer
Maisha Rulapaugh
Kadeem Flosi
Wickens Nestle
Claire Tollner
Aika Inouye
Johnson Sergi
Clifford Rim
Johnson Sergi
Octavia Malet
James Butt
Jennifer Amigon
Mayumi Kolmetz
Francesco Shinko
Isabel Bowley
Salvatore Stockham
Maisha Rulapaugh
Aika Inouye
Smith Glick
Chavez Briddick
Cody Saylors
Smith Glick
Aditya Kusko
David Darakjy
Kadeem Flosi
Kadeem Flosi
Juan Wieser
Antonio Caudy
Aruna Figeroa
Johnson Sergi
Ricardo Gaucho
Jennifer Amigon
James Butt
Leon Oldroyd
Ricardo Gaucho
Ricardo Gaucho
Jennifer Amigon
Antonio Caudy
IdCountryDate
1000Australia2026-05-19
1001Brazil2026-05-02
1002Japan2026-05-09
1003Italy2026-04-21
1004Spain2026-05-18
1005France2026-05-18
1006Russia2026-05-08
1007Japan2026-05-15
1008Australia2026-05-16
1009India2026-05-04
1010Japan2026-05-17
1011United Kingdom2026-05-14
1012Australia2026-04-29
1013India2026-04-28
1014Japan2026-05-03
1015Brazil2026-05-08
1016Australia2026-05-02
1017Australia2026-04-22
1018Japan2026-04-27
1019Japan2026-05-19
1020Germany2026-05-17
1021United Kingdom2026-04-21
1022Spain2026-05-06
1023United Kingdom2026-05-03
1024United Kingdom2026-05-12
1025Brazil2026-05-04
1026Australia2026-05-11
1027United Kingdom2026-04-22
1028Japan2026-05-04
1029United Kingdom2026-05-17
1030Germany2026-05-01
1031Australia2026-04-30
1032Brazil2026-05-12
1033Russia2026-05-09
1034Spain2026-05-10
1035Spain2026-05-07
1036Argentina2026-05-12
1037Argentina2026-04-26
1038Germany2026-05-16
1039France2026-05-02
1040Brazil2026-05-10
1041Australia2026-04-29
1042France2026-04-24
1043Brazil2026-05-09
1044Spain2026-04-27
1045Japan2026-05-09
1046Germany2026-05-11
1047Russia2026-05-04
1048Spain2026-04-30
1049Brazil2026-05-14

On-Demand Data

NameIdCountryDate
Aika Inouye1000Argentina2026-05-16
Antonio Caudy1001France2026-05-18
Octavia Malet1002United Kingdom2026-05-05
Aruna Figeroa1003Canada2026-05-17
Rodrigues Campain1004United Kingdom2026-04-22
Ivar Paprocki1005Spain2026-05-02
Nicolas Iturbide1006Italy2026-04-28
Leja Caldarera1007India2026-05-15
Kadeem Flosi1008Russia2026-04-26
Murillo Malet1009France2026-05-03
Francesco Shinko1010India2026-05-17
Leja Caldarera1011Canada2026-04-29
Francesco Shinko1012Italy2026-05-17
Misaki Royster1013Brazil2026-04-22
James Butt1014Japan2026-05-14
Arvin Albares1015Canada2026-05-11
Munro Ferencz1016France2026-04-26
Leon Oldroyd1017Canada2026-05-17
Aditya Kusko1018United Kingdom2026-04-22
Darci Poquette1019Brazil2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresSpainElwin Sharvill NEW
Jeanfrancois VenereAustraliaIvan Magalhaes NEGOTIATION
Aika InouyeBrazilIoni Bowcher NEGOTIATION
Octavia MaletFranceBernardo Dominic NEGOTIATION
Isabel BowleyJapanIoni Bowcher PROPOSAL
Morrow RutaArgentinaIvan Magalhaes NEW
Rodrigues CampainGermanyOnyama Limba NEGOTIATION
Maisha RulapaughAustraliaStephen Shaw NEW
Cody SaylorsUnited KingdomXuxue Feng RENEWAL
Johnson SergiRussiaAnna Fali PROPOSAL
Isabel BowleyAustraliaXuxue Feng QUALIFIED
Chavez BriddickSpainOnyama Limba RENEWAL
Nicolas IturbideArgentinaBernardo Dominic NEW
Chavez BriddickIndiaAnna Fali QUALIFIED
Mayumi KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Mayumi KolmetzJapanIvan Magalhaes RENEWAL
Izzy GarufiUnited KingdomOnyama Limba RENEWAL
Greenwood BologniaJapanOnyama Limba QUALIFIED
Antonio CaudyCanadaAnna Fali QUALIFIED
Leon OldroydItalyIvan Magalhaes RENEWAL
Arvin AlbaresCanadaAnna Fali QUALIFIED
Jefferson SchemmerIndiaElwin Sharvill NEGOTIATION
Ivar PaprockiRussiaBernardo Dominic QUALIFIED
Juan WieserSpainAsiya Javayant NEGOTIATION
Claire TollnerJapanAnna Fali QUALIFIED
Salvatore StockhamItalyElwin Sharvill UNQUALIFIED
Morrow RutaArgentinaOnyama Limba NEW
Claire TollnerRussiaIoni Bowcher PROPOSAL
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Wickens NestleItalyAnna Fali PROPOSAL
Jefferson SchemmerCanadaAmy Elsner NEW
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Stacey MacleadBrazilStephen Shaw PROPOSAL
Kaitlin OstroskyBrazilIvan Magalhaes QUALIFIED
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Munro FerenczAustraliaOnyama Limba PROPOSAL
Kadeem FlosiCanadaElwin Sharvill RENEWAL
Darci PoquetteCanadaOnyama Limba QUALIFIED
Ricardo GauchoUnited KingdomBernardo Dominic RENEWAL
Murillo MaletArgentinaIvan Magalhaes QUALIFIED

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