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
Tony FollerArgentinaIvan Magalhaes QUALIFIED
Johnson SergiIndiaBernardo Dominic PROPOSAL
Julie StensethBrazilXuxue Feng QUALIFIED
Johnson SergiBrazilElwin Sharvill PROPOSAL
Misaki RoysterSpainBernardo Dominic NEW
Silvio SlusarskiArgentinaXuxue Feng PROPOSAL
Munro FerenczCanadaElwin Sharvill QUALIFIED
Jones VocelkaRussiaIoni Bowcher QUALIFIED
Maria MarrierIndiaOnyama Limba NEGOTIATION
Morrow RutaJapanIvan Magalhaes PROPOSAL
Arvin AlbaresCanadaElwin Sharvill NEW
Rodrigues CampainUnited KingdomBernardo Dominic UNQUALIFIED
Ashley DoeItalyAnna Fali NEGOTIATION
Munro FerenczCanadaStephen Shaw QUALIFIED
Claire TollnerIndiaXuxue Feng RENEWAL
Deepesh ChuiBrazilBernardo Dominic NEW
Jennifer AmigonAustraliaOnyama Limba QUALIFIED
Mayumi KolmetzJapanStephen Shaw QUALIFIED
Murillo MaletArgentinaStephen Shaw NEGOTIATION
Tony FollerIndiaAmy Elsner NEGOTIATION
Aruna FigeroaFranceBernardo Dominic RENEWAL
Maria MarrierCanadaIvan Magalhaes RENEWAL
Greenwood BologniaRussiaElwin Sharvill UNQUALIFIED
Faith GillianJapanElwin Sharvill UNQUALIFIED
Leon OldroydIndiaElwin Sharvill NEGOTIATION
Ivar PaprockiUnited KingdomAmy Elsner RENEWAL
Octavia MaletItalyAnna Fali UNQUALIFIED
Julie StensethJapanBernardo Dominic NEW
Faith GillianJapanStephen Shaw NEGOTIATION
Jones VocelkaJapanAsiya Javayant RENEWAL
Leon OldroydRussiaXuxue Feng NEW
Alejandro PerinUnited KingdomAmy Elsner NEW
Izzy GarufiFranceBernardo Dominic NEGOTIATION
Morrow RutaAustraliaBernardo Dominic PROPOSAL
Leja CaldareraItalyAsiya Javayant NEW
Emily WhobreySpainElwin Sharvill UNQUALIFIED
Clifford RimUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas IturbideAustraliaAsiya Javayant NEGOTIATION
Cody SaylorsItalyStephen Shaw UNQUALIFIED
Aika InouyeGermanyIvan Magalhaes PROPOSAL
Juan WieserUnited KingdomIvan Magalhaes RENEWAL
Ashley DoeItalyOnyama Limba NEW
Antonio CaudyAustraliaBernardo Dominic QUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher RENEWAL
Aditya KuskoArgentinaXuxue Feng PROPOSAL
Juan WieserUnited KingdomOnyama Limba RENEWAL
Munro FerenczGermanyOnyama Limba RENEWAL
Arvin AlbaresAustraliaStephen Shaw UNQUALIFIED
Alejandro PerinItalyBernardo Dominic NEW
Leon OldroydCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughSpainAmy Elsner NEW
Antonio CaudyIndiaAnna Fali QUALIFIED
Adams MorascaIndiaOnyama Limba NEW
Mayumi KolmetzFranceElwin Sharvill RENEWAL
Munro FerenczUnited KingdomElwin Sharvill PROPOSAL
Darci PoquetteSpainStephen Shaw UNQUALIFIED
Alejandro PerinItalyOnyama Limba PROPOSAL
Misaki RoysterIndiaOnyama Limba NEW
Greenwood BologniaArgentinaAsiya Javayant UNQUALIFIED
Ricardo GauchoRussiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiUnited Kingdom2026-04-12Printing Dimensions RENEWAL25Stephen Shaw
1001Wickens NestleUnited Kingdom2026-04-15Feiner Bros NEGOTIATION57Stephen Shaw
1002Ashley DoeBrazil2026-04-11Chemel, James L Cpa QUALIFIED90Ioni Bowcher
1003Claire TollnerAustralia2026-04-22Chemel, James L Cpa NEGOTIATION42Elwin Sharvill
1004Adams MorascaFrance2026-04-07Commercial Press UNQUALIFIED4Asiya Javayant
1005David DarakjyRussia2026-05-01Rousseaux, Michael Esq RENEWAL8Xuxue Feng
1006Sinclair WaycottFrance2026-04-09Chanay, Jeffrey A Esq NEGOTIATION61Asiya Javayant
1007Clifford RimArgentina2026-04-10Truhlar And Truhlar Attys PROPOSAL54Bernardo Dominic
1008Stacey MacleadIndia2026-04-23Printing Dimensions NEW26Amy Elsner
1009Tony FollerJapan2026-04-29Chapman, Ross E Esq NEW52Amy Elsner
1010Salvatore StockhamGermany2026-04-13Chemel, James L Cpa QUALIFIED41Ioni Bowcher
1011Morrow RutaArgentina2026-05-03Dorl, James J Esq RENEWAL34Anna Fali
1012Sinclair WaycottAustralia2026-04-29Chanay, Jeffrey A Esq NEGOTIATION64Anna Fali
1013James ButtArgentina2026-04-19Commercial Press QUALIFIED54Amy Elsner
1014Cody SaylorsAustralia2026-04-24Truhlar And Truhlar Attys UNQUALIFIED75Onyama Limba
1015Clifford RimUnited Kingdom2026-04-07Feiner Bros PROPOSAL29Asiya Javayant
1016Jennifer AmigonSpain2026-04-12Rangoni Of Florence NEGOTIATION60Xuxue Feng
1017Salvatore StockhamRussia2026-04-24Chanay, Jeffrey A Esq PROPOSAL87Bernardo Dominic
1018Jeanfrancois VenereUnited Kingdom2026-04-07Chapman, Ross E Esq UNQUALIFIED25Bernardo Dominic
1019Isabel BowleyArgentina2026-04-08Feltz Printing Service UNQUALIFIED54Elwin Sharvill
1020Wickens NestleIndia2026-04-25Morlong Associates RENEWAL81Asiya Javayant
1021Johnson SergiItaly2026-04-08Chanay, Jeffrey A Esq QUALIFIED99Bernardo Dominic
1022Jones VocelkaBrazil2026-04-27Printing Dimensions UNQUALIFIED28Elwin Sharvill
1023Mayumi KolmetzSpain2026-04-08Printing Dimensions PROPOSAL95Asiya Javayant
1024Misaki RoysterIndia2026-04-29King, Christopher A Esq PROPOSAL30Onyama Limba
1025Alejandro PerinIndia2026-04-30Buckley Miller Wright NEGOTIATION70Stephen Shaw
1026Emily WhobreyAustralia2026-04-30Rousseaux, Michael Esq RENEWAL1Anna Fali
1027Juan WieserUnited Kingdom2026-04-10Printing Dimensions NEGOTIATION78Ioni Bowcher
1028Greenwood BologniaRussia2026-04-24Morlong Associates NEGOTIATION17Anna Fali
1029Jeanfrancois VenereUnited Kingdom2026-04-11Chapman, Ross E Esq RENEWAL50Anna Fali
1030Alejandro PerinJapan2026-04-10Feltz Printing Service RENEWAL3Anna Fali
1031Darci PoquetteCanada2026-04-12Benton, John B Jr NEGOTIATION33Asiya Javayant
1032David DarakjyBrazil2026-04-15Rangoni Of Florence QUALIFIED99Elwin Sharvill
1033James ButtJapan2026-04-22King, Christopher A Esq NEGOTIATION84Onyama Limba
1034Darci PoquetteArgentina2026-04-23Morlong Associates QUALIFIED18Ivan Magalhaes
1035Darci PoquetteIndia2026-04-20Rangoni Of Florence NEW23Ivan Magalhaes
1036Leon OldroydCanada2026-04-30Feltz Printing Service QUALIFIED16Asiya Javayant
1037Claire TollnerGermany2026-04-19Printing Dimensions NEGOTIATION3Stephen Shaw
1038Johnson SergiCanada2026-04-10Morlong Associates RENEWAL88Elwin Sharvill
1039Johnson SergiIndia2026-04-09Printing Dimensions NEW70Onyama Limba
1040Ricardo GauchoCanada2026-04-23Rousseaux, Michael Esq QUALIFIED3Amy Elsner
1041Deepesh ChuiUnited Kingdom2026-05-02Printing Dimensions UNQUALIFIED98Xuxue Feng
1042Arvin AlbaresAustralia2026-05-02Chanay, Jeffrey A Esq PROPOSAL56Elwin Sharvill
1043Wickens NestleUnited Kingdom2026-04-15Morlong Associates NEW94Ivan Magalhaes
1044James ButtAustralia2026-04-22Feltz Printing Service QUALIFIED34Anna Fali
1045Faith GillianAustralia2026-05-02Chemel, James L Cpa RENEWAL40Ivan Magalhaes
1046Costa DilliardIndia2026-04-10Commercial Press NEW71Stephen Shaw
1047Mujtaba NickaArgentina2026-04-27Commercial Press NEW9Stephen Shaw
1048Jeanfrancois VenereUnited Kingdom2026-04-12Buckley Miller Wright QUALIFIED65Asiya Javayant
1049Maisha RulapaughFrance2026-04-10Benton, John B Jr UNQUALIFIED83Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideSpainAnna Fali PROPOSAL
Sinclair WaycottCanadaAmy Elsner QUALIFIED
Juan WieserUnited KingdomAsiya Javayant PROPOSAL
Antonio CaudyCanadaBernardo Dominic NEGOTIATION
Maisha RulapaughCanadaIvan Magalhaes NEW
Johnson SergiJapanOnyama Limba RENEWAL
Kadeem FlosiJapanBernardo Dominic NEW
Salvatore StockhamCanadaIoni Bowcher PROPOSAL
Tony FollerRussiaIvan Magalhaes RENEWAL
Maria MarrierUnited KingdomElwin Sharvill NEW
Costa DilliardJapanIoni Bowcher UNQUALIFIED
Nicolas IturbideArgentinaAsiya Javayant QUALIFIED
Leja CaldareraSpainXuxue Feng UNQUALIFIED
David DarakjyRussiaIvan Magalhaes NEGOTIATION
Smith GlickFranceAmy Elsner NEW
Deepesh ChuiArgentinaIvan Magalhaes UNQUALIFIED
Leon OldroydAustraliaAsiya Javayant NEGOTIATION
Ricardo GauchoItalyXuxue Feng PROPOSAL
Costa DilliardBrazilStephen Shaw NEGOTIATION
David DarakjyAustraliaOnyama Limba RENEWAL
Aditya KuskoUnited KingdomAmy Elsner PROPOSAL
Murillo MaletUnited KingdomElwin Sharvill NEW
Nicolas IturbideArgentinaBernardo Dominic UNQUALIFIED
Claire TollnerIndiaBernardo Dominic NEW
Alejandro PerinGermanyAsiya Javayant PROPOSAL
Rodrigues CampainFranceBernardo Dominic PROPOSAL
Kaitlin OstroskyBrazilIvan Magalhaes NEGOTIATION
Ashley DoeItalyOnyama Limba UNQUALIFIED
Aditya KuskoSpainAsiya Javayant UNQUALIFIED
Francesco ShinkoUnited KingdomOnyama Limba PROPOSAL
Morrow RutaUnited KingdomIoni Bowcher NEGOTIATION
Maria MarrierSpainElwin Sharvill UNQUALIFIED
Tony FollerSpainElwin Sharvill NEGOTIATION
Darci PoquetteGermanyOnyama Limba PROPOSAL
Izzy GarufiArgentinaAsiya Javayant NEGOTIATION
Stacey MacleadItalyAnna Fali RENEWAL
Aditya KuskoUnited KingdomAmy Elsner NEGOTIATION
David DarakjyItalyAsiya Javayant RENEWAL
Alejandro PerinIndiaAnna Fali PROPOSAL
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Faith GillianGermanyAsiya Javayant NEW
Antonio CaudyArgentinaIvan Magalhaes QUALIFIED
Claire TollnerGermanyStephen Shaw QUALIFIED
Aditya KuskoUnited KingdomOnyama Limba NEW
Izzy GarufiSpainBernardo Dominic PROPOSAL
Juan WieserArgentinaIvan Magalhaes NEW
Maisha RulapaughIndiaXuxue Feng UNQUALIFIED
Johnson SergiBrazilStephen Shaw UNQUALIFIED
Aditya KuskoArgentinaIoni Bowcher RENEWAL
Isabel BowleyUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Misaki Royster
James Butt
Jefferson Schemmer
Murillo Malet
James Butt
Isabel Bowley
Izzy Garufi
Nicolas Iturbide
Maria Marrier
Octavia Malet
Deepesh Chui
Cody Saylors
Aditya Kusko
Clifford Rim
Emily Whobrey
Adams Morasca
Misaki Royster
Juan Wieser
Arvin Albares
Munro Ferencz
Claire Tollner
Ivar Paprocki
Darci Poquette
Emily Whobrey
Sinclair Waycott
Salvatore Stockham
Claire Tollner
Maisha Rulapaugh
Stacey Maclead
Mayumi Kolmetz
Maisha Rulapaugh
Ricardo Gaucho
Misaki Royster
Sinclair Waycott
Octavia Malet
Juan Wieser
Julie Stenseth
Julie Stenseth
Silvio Slusarski
Faith Gillian
Alejandro Perin
Octavia Malet
Adams Morasca
Jefferson Schemmer
Maria Marrier
Arvin Albares
Maria Marrier
Jeanfrancois Venere
Mayumi Kolmetz
Johnson Sergi
IdCountryDate
1000India2026-04-20
1001India2026-04-26
1002Japan2026-05-02
1003Brazil2026-04-12
1004United Kingdom2026-04-27
1005Italy2026-04-10
1006Spain2026-04-05
1007Japan2026-05-01
1008France2026-04-15
1009Spain2026-05-04
1010Canada2026-04-13
1011Italy2026-04-16
1012Germany2026-04-19
1013Germany2026-04-09
1014Japan2026-04-29
1015Brazil2026-04-13
1016Italy2026-04-27
1017Japan2026-04-20
1018Australia2026-04-17
1019Russia2026-04-18
1020Japan2026-04-25
1021Australia2026-04-06
1022India2026-04-27
1023Argentina2026-04-28
1024Russia2026-05-02
1025Russia2026-04-25
1026Argentina2026-04-10
1027Italy2026-04-19
1028Japan2026-04-29
1029India2026-04-22
1030France2026-04-07
1031Spain2026-04-17
1032Australia2026-04-17
1033Canada2026-04-07
1034Japan2026-04-30
1035France2026-04-07
1036United Kingdom2026-04-12
1037Germany2026-04-18
1038Spain2026-04-13
1039Russia2026-04-24
1040Brazil2026-04-30
1041Italy2026-04-18
1042Russia2026-04-20
1043Japan2026-04-08
1044Canada2026-04-06
1045Germany2026-05-04
1046Australia2026-04-06
1047France2026-04-09
1048Brazil2026-05-03
1049Australia2026-04-14

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Australia2026-04-30
Alejandro Perin1001Italy2026-04-19
Wickens Nestle1002Spain2026-05-04
David Darakjy1003India2026-04-27
Kaitlin Ostrosky1004Italy2026-04-10
Greenwood Bolognia1005Canada2026-04-11
Costa Dilliard1006India2026-04-11
Smith Glick1007Argentina2026-04-09
Leon Oldroyd1008Argentina2026-04-29
Greenwood Bolognia1009France2026-05-01
Silvio Slusarski1010Canada2026-04-26
Leon Oldroyd1011Spain2026-04-19
Sinclair Waycott1012Argentina2026-04-28
Sinclair Waycott1013India2026-04-08
Munro Ferencz1014Canada2026-04-27
Adams Morasca1015United Kingdom2026-04-21
David Darakjy1016United Kingdom2026-04-27
Rodrigues Campain1017Argentina2026-04-10
Jefferson Schemmer1018Russia2026-04-13
Jefferson Schemmer1019Australia2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaSpainBernardo Dominic NEGOTIATION
Sinclair WaycottJapanIoni Bowcher NEW
Jennifer AmigonArgentinaIvan Magalhaes NEGOTIATION
James ButtSpainXuxue Feng PROPOSAL
Antonio CaudyJapanIvan Magalhaes UNQUALIFIED
Julie StensethSpainOnyama Limba UNQUALIFIED
Cody SaylorsGermanyXuxue Feng PROPOSAL
Misaki RoysterBrazilElwin Sharvill UNQUALIFIED
Alejandro PerinSpainBernardo Dominic PROPOSAL
Antonio CaudyBrazilOnyama Limba NEGOTIATION
Juan WieserIndiaIoni Bowcher UNQUALIFIED
Smith GlickArgentinaBernardo Dominic QUALIFIED
Tony FollerRussiaElwin Sharvill RENEWAL
Chavez BriddickCanadaIoni Bowcher QUALIFIED
Mayumi KolmetzRussiaIvan Magalhaes QUALIFIED
Izzy GarufiAustraliaBernardo Dominic QUALIFIED
Nicolas IturbideJapanIoni Bowcher RENEWAL
Octavia MaletSpainElwin Sharvill QUALIFIED
Johnson SergiBrazilAmy Elsner NEGOTIATION
Leon OldroydGermanyAnna Fali UNQUALIFIED
Costa DilliardSpainAsiya Javayant RENEWAL
Johnson SergiArgentinaAmy Elsner UNQUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Octavia MaletGermanyBernardo Dominic QUALIFIED
Maria MarrierAustraliaIvan Magalhaes UNQUALIFIED
Chavez BriddickCanadaAmy Elsner PROPOSAL
Misaki RoysterIndiaAnna Fali NEGOTIATION
Jefferson SchemmerArgentinaIoni Bowcher UNQUALIFIED
Greenwood BologniaRussiaAnna Fali RENEWAL
Alejandro PerinFranceIoni Bowcher PROPOSAL
Jennifer AmigonItalyAnna Fali RENEWAL
Nicolas IturbideArgentinaXuxue Feng NEGOTIATION
Aditya KuskoAustraliaXuxue Feng RENEWAL
Nicolas IturbideCanadaIvan Magalhaes PROPOSAL
Mujtaba NickaUnited KingdomIvan Magalhaes PROPOSAL
Sinclair WaycottAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyRussiaStephen Shaw PROPOSAL
Leon OldroydItalyBernardo Dominic NEW
Adams MorascaGermanyAnna Fali UNQUALIFIED
Adams MorascaFranceIvan Magalhaes 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.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>