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
Aruna FigeroaArgentinaOnyama Limba UNQUALIFIED
Izzy GarufiFranceAmy Elsner NEGOTIATION
Adams MorascaItalyElwin Sharvill UNQUALIFIED
Deepesh ChuiJapanAmy Elsner NEGOTIATION
Aruna FigeroaAustraliaStephen Shaw NEGOTIATION
Juan WieserSpainIvan Magalhaes UNQUALIFIED
Julie StensethRussiaIvan Magalhaes NEW
Chavez BriddickRussiaAsiya Javayant NEGOTIATION
Emily WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Octavia MaletJapanOnyama Limba QUALIFIED
Aditya KuskoGermanyBernardo Dominic PROPOSAL
Deepesh ChuiGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteGermanyAsiya Javayant QUALIFIED
Alejandro PerinGermanyBernardo Dominic PROPOSAL
Antonio CaudyItalyAsiya Javayant UNQUALIFIED
Izzy GarufiItalyXuxue Feng RENEWAL
Tony FollerJapanIoni Bowcher NEGOTIATION
Greenwood BologniaItalyOnyama Limba QUALIFIED
Munro FerenczRussiaElwin Sharvill RENEWAL
Aruna FigeroaRussiaElwin Sharvill NEW
Wickens NestleJapanElwin Sharvill NEW
Wickens NestleAustraliaStephen Shaw NEGOTIATION
Mujtaba NickaRussiaStephen Shaw PROPOSAL
Maria MarrierBrazilElwin Sharvill NEW
Misaki RoysterArgentinaOnyama Limba NEW
Cody SaylorsIndiaElwin Sharvill UNQUALIFIED
Ashley DoeSpainIoni Bowcher NEGOTIATION
Ashley DoeGermanyAnna Fali UNQUALIFIED
Johnson SergiJapanIvan Magalhaes UNQUALIFIED
Antonio CaudyAustraliaIvan Magalhaes NEW
Clifford RimItalyIoni Bowcher UNQUALIFIED
Salvatore StockhamRussiaIvan Magalhaes PROPOSAL
Silvio SlusarskiArgentinaBernardo Dominic NEGOTIATION
Wickens NestleItalyElwin Sharvill RENEWAL
Jennifer AmigonBrazilIvan Magalhaes NEW
Deepesh ChuiRussiaXuxue Feng NEGOTIATION
Alejandro PerinJapanAmy Elsner NEGOTIATION
Francesco ShinkoBrazilAsiya Javayant RENEWAL
Wickens NestleAustraliaAsiya Javayant NEGOTIATION
David DarakjyJapanElwin Sharvill NEW
James ButtIndiaBernardo Dominic NEW
Sinclair WaycottIndiaBernardo Dominic UNQUALIFIED
Deepesh ChuiGermanyOnyama Limba NEW
Ashley DoeUnited KingdomElwin Sharvill NEW
Francesco ShinkoRussiaIvan Magalhaes NEGOTIATION
Tony FollerGermanyXuxue Feng RENEWAL
David DarakjyGermanyElwin Sharvill PROPOSAL
Murillo MaletIndiaStephen Shaw UNQUALIFIED
Leon OldroydAustraliaOnyama Limba NEW
Chavez BriddickRussiaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Smith GlickAustraliaIvan Magalhaes PROPOSAL
Stacey MacleadFranceElwin Sharvill PROPOSAL
Claire TollnerBrazilXuxue Feng QUALIFIED
Costa DilliardItalyElwin Sharvill UNQUALIFIED
Jefferson SchemmerCanadaXuxue Feng NEW
Tony FollerJapanXuxue Feng NEGOTIATION
Ivar PaprockiFranceStephen Shaw UNQUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher NEGOTIATION
Isabel BowleySpainXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickIndia2026-05-13King, Christopher A Esq UNQUALIFIED29Anna Fali
1001Ashley DoeItaly2026-04-23Commercial Press UNQUALIFIED16Ioni Bowcher
1002Mujtaba NickaItaly2026-04-28Chemel, James L Cpa RENEWAL89Xuxue Feng
1003Ashley DoeIndia2026-04-30Chanay, Jeffrey A Esq NEGOTIATION13Xuxue Feng
1004Ricardo GauchoUnited Kingdom2026-04-20Buckley Miller Wright NEW32Ivan Magalhaes
1005Izzy GarufiIndia2026-05-14Feiner Bros PROPOSAL61Amy Elsner
1006Salvatore StockhamSpain2026-05-07Dorl, James J Esq NEW76Anna Fali
1007Maisha RulapaughIndia2026-05-12Buckley Miller Wright NEW3Elwin Sharvill
1008Johnson SergiRussia2026-05-12Truhlar And Truhlar Attys RENEWAL2Onyama Limba
1009Munro FerenczArgentina2026-05-11Rangoni Of Florence PROPOSAL6Bernardo Dominic
1010Clifford RimRussia2026-05-14Printing Dimensions PROPOSAL46Bernardo Dominic
1011Ashley DoeSpain2026-05-07Chanay, Jeffrey A Esq NEW57Ioni Bowcher
1012Cody SaylorsGermany2026-05-08Truhlar And Truhlar Attys NEW14Amy Elsner
1013Stacey MacleadJapan2026-05-06Printing Dimensions PROPOSAL28Onyama Limba
1014Francesco ShinkoIndia2026-05-08Buckley Miller Wright UNQUALIFIED51Xuxue Feng
1015Jones VocelkaSpain2026-04-30Commercial Press QUALIFIED96Bernardo Dominic
1016Leon OldroydAustralia2026-05-04King, Christopher A Esq NEGOTIATION5Bernardo Dominic
1017Sinclair WaycottAustralia2026-05-05Benton, John B Jr NEW38Xuxue Feng
1018Arvin AlbaresItaly2026-05-04Commercial Press RENEWAL0Asiya Javayant
1019Mayumi KolmetzAustralia2026-04-16Buckley Miller Wright NEW82Stephen Shaw
1020Isabel BowleyArgentina2026-05-06Commercial Press UNQUALIFIED31Xuxue Feng
1021Ricardo GauchoGermany2026-05-01Benton, John B Jr PROPOSAL91Elwin Sharvill
1022Greenwood BologniaArgentina2026-04-21King, Christopher A Esq RENEWAL55Ioni Bowcher
1023Claire TollnerFrance2026-05-08Morlong Associates RENEWAL64Elwin Sharvill
1024Mujtaba NickaItaly2026-04-22Printing Dimensions NEW27Ivan Magalhaes
1025Octavia MaletBrazil2026-04-24Feltz Printing Service QUALIFIED18Onyama Limba
1026Tony FollerRussia2026-04-23Feiner Bros NEW52Ivan Magalhaes
1027Claire TollnerRussia2026-05-01Chemel, James L Cpa UNQUALIFIED63Ivan Magalhaes
1028Rodrigues CampainUnited Kingdom2026-04-25Dorl, James J Esq RENEWAL41Xuxue Feng
1029Silvio SlusarskiSpain2026-04-17Dorl, James J Esq QUALIFIED54Elwin Sharvill
1030Chavez BriddickUnited Kingdom2026-05-14Rangoni Of Florence NEW0Ioni Bowcher
1031David DarakjySpain2026-05-05Rousseaux, Michael Esq QUALIFIED96Elwin Sharvill
1032Jefferson SchemmerJapan2026-05-08Benton, John B Jr RENEWAL80Onyama Limba
1033Octavia MaletSpain2026-04-18Morlong Associates NEW0Ivan Magalhaes
1034Morrow RutaJapan2026-04-15Buckley Miller Wright RENEWAL45Ivan Magalhaes
1035Deepesh ChuiJapan2026-04-17Commercial Press UNQUALIFIED2Amy Elsner
1036Jennifer AmigonArgentina2026-04-24Chapman, Ross E Esq QUALIFIED65Asiya Javayant
1037Mujtaba NickaGermany2026-04-22Rangoni Of Florence NEW92Amy Elsner
1038Claire TollnerItaly2026-04-17Buckley Miller Wright QUALIFIED26Ivan Magalhaes
1039Darci PoquetteArgentina2026-04-27Truhlar And Truhlar Attys NEW79Xuxue Feng
1040Chavez BriddickGermany2026-04-15Dorl, James J Esq UNQUALIFIED34Elwin Sharvill
1041Johnson SergiAustralia2026-04-25Chemel, James L Cpa QUALIFIED89Bernardo Dominic
1042Izzy GarufiUnited Kingdom2026-04-15Buckley Miller Wright PROPOSAL15Xuxue Feng
1043Salvatore StockhamBrazil2026-05-11Benton, John B Jr UNQUALIFIED95Ivan Magalhaes
1044Smith GlickUnited Kingdom2026-04-24Morlong Associates QUALIFIED28Bernardo Dominic
1045Ricardo GauchoJapan2026-04-18Chanay, Jeffrey A Esq NEW86Ivan Magalhaes
1046Arvin AlbaresSpain2026-05-03Printing Dimensions NEW75Xuxue Feng
1047Clifford RimFrance2026-04-16Commercial Press PROPOSAL91Ioni Bowcher
1048Jefferson SchemmerItaly2026-05-14Chanay, Jeffrey A Esq QUALIFIED23Stephen Shaw
1049Aika InouyeUnited Kingdom2026-04-22King, Christopher A Esq NEW55Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiFranceStephen Shaw QUALIFIED
Silvio SlusarskiGermanyElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanBernardo Dominic RENEWAL
Arvin AlbaresCanadaAnna Fali UNQUALIFIED
Aika InouyeCanadaIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw QUALIFIED
Faith GillianAustraliaBernardo Dominic QUALIFIED
Silvio SlusarskiAustraliaXuxue Feng UNQUALIFIED
Aruna FigeroaBrazilAsiya Javayant RENEWAL
Johnson SergiFranceAnna Fali RENEWAL
Clifford RimIndiaXuxue Feng RENEWAL
Claire TollnerGermanyOnyama Limba NEW
Jeanfrancois VenereAustraliaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiAustraliaAmy Elsner PROPOSAL
Mayumi KolmetzItalyOnyama Limba NEW
Mayumi KolmetzSpainIvan Magalhaes UNQUALIFIED
Maisha RulapaughFranceIvan Magalhaes NEGOTIATION
David DarakjyBrazilOnyama Limba QUALIFIED
Johnson SergiAustraliaElwin Sharvill RENEWAL
Darci PoquetteRussiaIoni Bowcher NEW
Aika InouyeJapanAsiya Javayant RENEWAL
Aditya KuskoItalyXuxue Feng PROPOSAL
Jennifer AmigonSpainAsiya Javayant NEW
David DarakjyFranceElwin Sharvill PROPOSAL
Ashley DoeSpainIoni Bowcher UNQUALIFIED
Alejandro PerinFranceIoni Bowcher NEGOTIATION
Maria MarrierItalyStephen Shaw NEGOTIATION
Jennifer AmigonArgentinaStephen Shaw NEW
Chavez BriddickUnited KingdomOnyama Limba NEW
Jeanfrancois VenereUnited KingdomAnna Fali PROPOSAL
Jefferson SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Aditya KuskoGermanyAsiya Javayant RENEWAL
Murillo MaletGermanyIvan Magalhaes PROPOSAL
Deepesh ChuiIndiaAnna Fali PROPOSAL
Aditya KuskoRussiaAnna Fali QUALIFIED
Jefferson SchemmerIndiaAnna Fali NEW
Juan WieserCanadaAnna Fali NEW
Kaitlin OstroskySpainAsiya Javayant UNQUALIFIED
Ashley DoeGermanyBernardo Dominic PROPOSAL
Leja CaldareraGermanyElwin Sharvill UNQUALIFIED
Greenwood BologniaGermanyBernardo Dominic NEGOTIATION
Smith GlickArgentinaOnyama Limba NEGOTIATION
Nicolas IturbideIndiaStephen Shaw NEGOTIATION
Costa DilliardUnited KingdomStephen Shaw NEGOTIATION
Jefferson SchemmerSpainIvan Magalhaes RENEWAL
Ivar PaprockiUnited KingdomAsiya Javayant NEGOTIATION
Alejandro PerinJapanIoni Bowcher QUALIFIED
Claire TollnerArgentinaOnyama Limba UNQUALIFIED
Aditya KuskoAustraliaElwin Sharvill PROPOSAL
Frozen Columns
Name
Aika Inouye
Salvatore Stockham
Deepesh Chui
Aruna Figeroa
Mayumi Kolmetz
Mujtaba Nicka
Sinclair Waycott
Misaki Royster
Smith Glick
Isabel Bowley
Salvatore Stockham
Antonio Caudy
Costa Dilliard
Costa Dilliard
James Butt
Izzy Garufi
Leja Caldarera
Clifford Rim
Leon Oldroyd
Maria Marrier
Darci Poquette
Maria Marrier
Maria Marrier
Kadeem Flosi
Emily Whobrey
Chavez Briddick
Aruna Figeroa
Jones Vocelka
Octavia Malet
Julie Stenseth
Deepesh Chui
Mayumi Kolmetz
Francesco Shinko
Misaki Royster
Francesco Shinko
Sinclair Waycott
Jefferson Schemmer
Claire Tollner
Clifford Rim
David Darakjy
Silvio Slusarski
Jefferson Schemmer
Ricardo Gaucho
Deepesh Chui
Silvio Slusarski
Adams Morasca
Juan Wieser
Mayumi Kolmetz
Cody Saylors
James Butt
IdCountryDate
1000Japan2026-04-25
1001United Kingdom2026-04-24
1002Russia2026-04-22
1003Italy2026-05-07
1004Spain2026-04-16
1005Japan2026-04-20
1006Italy2026-04-16
1007Italy2026-04-30
1008Australia2026-04-26
1009Australia2026-04-20
1010Italy2026-05-02
1011Japan2026-04-29
1012Australia2026-04-23
1013India2026-05-01
1014Japan2026-05-03
1015Germany2026-05-02
1016Japan2026-05-07
1017Germany2026-04-21
1018Argentina2026-05-02
1019Canada2026-05-06
1020Germany2026-04-17
1021Brazil2026-04-18
1022France2026-04-19
1023France2026-05-03
1024United Kingdom2026-04-21
1025France2026-05-12
1026Brazil2026-04-23
1027Australia2026-04-28
1028Argentina2026-05-09
1029Japan2026-05-08
1030Spain2026-05-11
1031Spain2026-05-08
1032Japan2026-04-29
1033Canada2026-04-17
1034Canada2026-04-25
1035United Kingdom2026-05-03
1036Brazil2026-05-08
1037Argentina2026-05-14
1038Russia2026-05-10
1039Australia2026-05-02
1040India2026-05-08
1041France2026-05-05
1042France2026-04-15
1043Brazil2026-05-03
1044India2026-05-09
1045Japan2026-04-29
1046Australia2026-05-09
1047Spain2026-05-01
1048Argentina2026-04-16
1049France2026-05-09

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Japan2026-04-20
Aruna Figeroa1001France2026-05-14
Maria Marrier1002Italy2026-05-13
Alejandro Perin1003Argentina2026-05-07
Jones Vocelka1004Australia2026-04-19
Ricardo Gaucho1005Germany2026-04-18
David Darakjy1006India2026-04-27
Rodrigues Campain1007Italy2026-04-25
Maisha Rulapaugh1008Australia2026-05-01
Julie Stenseth1009Italy2026-05-14
Morrow Ruta1010Japan2026-05-12
Stacey Maclead1011India2026-05-04
James Butt1012Italy2026-05-10
Rodrigues Campain1013Germany2026-05-11
Jeanfrancois Venere1014France2026-05-14
Salvatore Stockham1015Spain2026-05-11
Sinclair Waycott1016India2026-04-18
Sinclair Waycott1017United Kingdom2026-05-11
Jeanfrancois Venere1018Australia2026-04-19
Clifford Rim1019United Kingdom2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyGermanyElwin Sharvill RENEWAL
Emily WhobreyGermanyBernardo Dominic NEW
Jeanfrancois VenereGermanyIvan Magalhaes NEW
Adams MorascaRussiaAnna Fali RENEWAL
Arvin AlbaresRussiaStephen Shaw NEW
Wickens NestleCanadaIoni Bowcher PROPOSAL
Claire TollnerArgentinaIoni Bowcher UNQUALIFIED
Sinclair WaycottGermanyAsiya Javayant NEW
Silvio SlusarskiUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois VenereFranceBernardo Dominic QUALIFIED
Leon OldroydGermanyElwin Sharvill UNQUALIFIED
Kadeem FlosiGermanyAsiya Javayant QUALIFIED
Stacey MacleadSpainIoni Bowcher NEW
Greenwood BologniaAustraliaElwin Sharvill RENEWAL
Ashley DoeCanadaIoni Bowcher QUALIFIED
Francesco ShinkoBrazilAsiya Javayant QUALIFIED
Chavez BriddickIndiaBernardo Dominic QUALIFIED
Leon OldroydUnited KingdomBernardo Dominic NEW
James ButtBrazilXuxue Feng RENEWAL
Maisha RulapaughUnited KingdomAnna Fali NEW
Mujtaba NickaCanadaOnyama Limba NEW
Emily WhobreyJapanIoni Bowcher RENEWAL
Nicolas IturbideIndiaXuxue Feng QUALIFIED
Emily WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Wickens NestleItalyAsiya Javayant UNQUALIFIED
Antonio CaudyUnited KingdomBernardo Dominic NEW
Misaki RoysterIndiaIvan Magalhaes PROPOSAL
Kaitlin OstroskyFranceIoni Bowcher PROPOSAL
Murillo MaletRussiaOnyama Limba PROPOSAL
Octavia MaletUnited KingdomOnyama Limba PROPOSAL
Alejandro PerinBrazilAmy Elsner NEW
Claire TollnerSpainStephen Shaw NEW
Nicolas IturbideFranceStephen Shaw PROPOSAL
Aika InouyeAustraliaIvan Magalhaes UNQUALIFIED
Sinclair WaycottIndiaOnyama Limba QUALIFIED
David DarakjyFranceBernardo Dominic NEGOTIATION
Kadeem FlosiSpainBernardo Dominic QUALIFIED
Ivar PaprockiGermanyElwin Sharvill NEW
Nicolas IturbideJapanStephen Shaw PROPOSAL
Sinclair WaycottUnited KingdomOnyama Limba 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>