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
Octavia MaletJapanBernardo Dominic QUALIFIED
Alejandro PerinCanadaIvan Magalhaes QUALIFIED
Costa DilliardBrazilOnyama Limba PROPOSAL
Antonio CaudyIndiaElwin Sharvill PROPOSAL
Smith GlickGermanyAnna Fali PROPOSAL
David DarakjySpainAsiya Javayant NEW
Ricardo GauchoRussiaElwin Sharvill RENEWAL
Ricardo GauchoIndiaIvan Magalhaes NEGOTIATION
Francesco ShinkoUnited KingdomIoni Bowcher PROPOSAL
Murillo MaletRussiaElwin Sharvill QUALIFIED
Munro FerenczIndiaAmy Elsner QUALIFIED
Julie StensethArgentinaIoni Bowcher RENEWAL
Misaki RoysterJapanStephen Shaw PROPOSAL
Wickens NestleItalyBernardo Dominic UNQUALIFIED
Murillo MaletIndiaXuxue Feng QUALIFIED
Smith GlickArgentinaOnyama Limba NEGOTIATION
Jefferson SchemmerIndiaBernardo Dominic NEW
Kaitlin OstroskyGermanyStephen Shaw NEW
Cody SaylorsAustraliaElwin Sharvill NEW
Munro FerenczAustraliaStephen Shaw RENEWAL
Adams MorascaBrazilAnna Fali RENEWAL
Maria MarrierItalyElwin Sharvill NEGOTIATION
Salvatore StockhamFranceOnyama Limba NEW
Munro FerenczJapanXuxue Feng QUALIFIED
Jennifer AmigonIndiaIvan Magalhaes QUALIFIED
Costa DilliardJapanElwin Sharvill NEGOTIATION
Adams MorascaSpainOnyama Limba UNQUALIFIED
Faith GillianSpainAnna Fali PROPOSAL
Murillo MaletItalyAsiya Javayant NEGOTIATION
Munro FerenczItalyBernardo Dominic NEGOTIATION
Johnson SergiJapanIvan Magalhaes PROPOSAL
Murillo MaletAustraliaAmy Elsner NEGOTIATION
Johnson SergiRussiaOnyama Limba QUALIFIED
Kadeem FlosiSpainXuxue Feng RENEWAL
Ricardo GauchoFranceIvan Magalhaes NEGOTIATION
Ricardo GauchoBrazilAmy Elsner NEGOTIATION
Ricardo GauchoIndiaElwin Sharvill RENEWAL
Aika InouyeFranceIoni Bowcher NEGOTIATION
Misaki RoysterArgentinaIoni Bowcher PROPOSAL
Wickens NestleUnited KingdomOnyama Limba QUALIFIED
Rodrigues CampainSpainIvan Magalhaes NEGOTIATION
Aruna FigeroaUnited KingdomAnna Fali RENEWAL
Jones VocelkaIndiaAmy Elsner NEW
Smith GlickSpainAsiya Javayant UNQUALIFIED
Jeanfrancois VenereAustraliaStephen Shaw NEGOTIATION
Rodrigues CampainSpainAnna Fali NEW
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Jones VocelkaIndiaElwin Sharvill QUALIFIED
Ashley DoeCanadaAnna Fali NEGOTIATION
Smith GlickArgentinaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Claire TollnerBrazilAnna Fali NEGOTIATION
Jones VocelkaUnited KingdomStephen Shaw QUALIFIED
Maria MarrierCanadaXuxue Feng NEGOTIATION
Wickens NestleSpainBernardo Dominic QUALIFIED
Antonio CaudyAustraliaIoni Bowcher NEW
Maria MarrierCanadaAsiya Javayant UNQUALIFIED
Maria MarrierAustraliaXuxue Feng NEGOTIATION
Costa DilliardGermanyBernardo Dominic UNQUALIFIED
Clifford RimAustraliaOnyama Limba NEW
Juan WieserUnited KingdomAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreySpain2025-08-12Dorl, James J Esq RENEWAL85Stephen Shaw
1001Arvin AlbaresJapan2025-08-05Feltz Printing Service PROPOSAL85Onyama Limba
1002Jefferson SchemmerJapan2025-08-01Dorl, James J Esq PROPOSAL92Ivan Magalhaes
1003Arvin AlbaresArgentina2025-08-17Benton, John B Jr PROPOSAL7Onyama Limba
1004Leon OldroydUnited Kingdom2025-07-26Morlong Associates QUALIFIED80Stephen Shaw
1005Johnson SergiIndia2025-08-08Buckley Miller Wright NEGOTIATION42Amy Elsner
1006Stacey MacleadItaly2025-07-30Morlong Associates PROPOSAL42Bernardo Dominic
1007James ButtGermany2025-08-12Commercial Press UNQUALIFIED15Stephen Shaw
1008Leon OldroydIndia2025-07-27Rangoni Of Florence PROPOSAL89Anna Fali
1009Clifford RimItaly2025-08-14Buckley Miller Wright RENEWAL2Ivan Magalhaes
1010Octavia MaletGermany2025-07-28Rangoni Of Florence UNQUALIFIED69Anna Fali
1011Stacey MacleadIndia2025-08-13Dorl, James J Esq PROPOSAL89Xuxue Feng
1012Johnson SergiRussia2025-07-21Truhlar And Truhlar Attys UNQUALIFIED97Asiya Javayant
1013Izzy GarufiArgentina2025-07-30Rousseaux, Michael Esq NEGOTIATION47Elwin Sharvill
1014Smith GlickRussia2025-07-29Morlong Associates NEGOTIATION34Amy Elsner
1015Aruna FigeroaGermany2025-07-28Feiner Bros NEW65Bernardo Dominic
1016Darci PoquetteAustralia2025-07-24Chanay, Jeffrey A Esq NEGOTIATION91Anna Fali
1017David DarakjyIndia2025-08-15Truhlar And Truhlar Attys QUALIFIED75Asiya Javayant
1018Adams MorascaAustralia2025-08-01Chanay, Jeffrey A Esq NEGOTIATION14Ioni Bowcher
1019Ivar PaprockiUnited Kingdom2025-08-10Feltz Printing Service UNQUALIFIED79Amy Elsner
1020Rodrigues CampainItaly2025-07-24Truhlar And Truhlar Attys QUALIFIED99Anna Fali
1021James ButtItaly2025-08-01Chemel, James L Cpa RENEWAL47Ivan Magalhaes
1022Jeanfrancois VenereArgentina2025-08-08Commercial Press QUALIFIED25Ioni Bowcher
1023Johnson SergiUnited Kingdom2025-07-26Dorl, James J Esq UNQUALIFIED49Bernardo Dominic
1024Nicolas IturbideAustralia2025-08-14Benton, John B Jr UNQUALIFIED98Bernardo Dominic
1025Ivar PaprockiArgentina2025-08-06Rousseaux, Michael Esq UNQUALIFIED88Onyama Limba
1026Emily WhobreyUnited Kingdom2025-07-25King, Christopher A Esq QUALIFIED1Stephen Shaw
1027Octavia MaletJapan2025-07-29Benton, John B Jr NEW27Anna Fali
1028Rodrigues CampainGermany2025-07-28Morlong Associates NEW41Ivan Magalhaes
1029Sinclair WaycottJapan2025-07-26Buckley Miller Wright PROPOSAL3Onyama Limba
1030Leon OldroydFrance2025-08-02Rangoni Of Florence RENEWAL56Onyama Limba
1031Chavez BriddickUnited Kingdom2025-08-08Chemel, James L Cpa RENEWAL15Asiya Javayant
1032Julie StensethIndia2025-08-14Feltz Printing Service NEW25Ivan Magalhaes
1033Ricardo GauchoIndia2025-07-20Morlong Associates NEW13Bernardo Dominic
1034Octavia MaletSpain2025-07-28Truhlar And Truhlar Attys PROPOSAL86Anna Fali
1035Octavia MaletBrazil2025-08-04Chemel, James L Cpa UNQUALIFIED58Bernardo Dominic
1036Kaitlin OstroskyArgentina2025-08-08Rousseaux, Michael Esq QUALIFIED9Ivan Magalhaes
1037Jennifer AmigonItaly2025-07-24Truhlar And Truhlar Attys RENEWAL32Bernardo Dominic
1038Kaitlin OstroskyBrazil2025-08-09Truhlar And Truhlar Attys UNQUALIFIED66Amy Elsner
1039Deepesh ChuiIndia2025-07-20King, Christopher A Esq QUALIFIED75Amy Elsner
1040Nicolas IturbideUnited Kingdom2025-07-26Morlong Associates RENEWAL37Xuxue Feng
1041Alejandro PerinAustralia2025-08-16Commercial Press NEGOTIATION23Elwin Sharvill
1042Isabel BowleyIndia2025-08-02Chanay, Jeffrey A Esq QUALIFIED12Amy Elsner
1043Adams MorascaItaly2025-08-13Buckley Miller Wright NEW59Ioni Bowcher
1044Ricardo GauchoCanada2025-08-14Chanay, Jeffrey A Esq NEW20Ioni Bowcher
1045Sinclair WaycottFrance2025-07-27King, Christopher A Esq QUALIFIED7Anna Fali
1046Maria MarrierFrance2025-07-22Truhlar And Truhlar Attys NEGOTIATION59Xuxue Feng
1047Munro FerenczJapan2025-08-15Rousseaux, Michael Esq NEW57Onyama Limba
1048Kadeem FlosiArgentina2025-08-08Rousseaux, Michael Esq QUALIFIED19Elwin Sharvill
1049Kaitlin OstroskyCanada2025-08-13Feltz Printing Service RENEWAL45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaIoni Bowcher UNQUALIFIED
Tony FollerItalyXuxue Feng QUALIFIED
Izzy GarufiSpainIvan Magalhaes QUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant PROPOSAL
Costa DilliardGermanyIvan Magalhaes NEW
Cody SaylorsAustraliaIvan Magalhaes QUALIFIED
Ricardo GauchoUnited KingdomAnna Fali RENEWAL
Adams MorascaGermanyOnyama Limba QUALIFIED
Adams MorascaRussiaElwin Sharvill NEGOTIATION
Ricardo GauchoItalyAmy Elsner RENEWAL
Cody SaylorsRussiaBernardo Dominic RENEWAL
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Mujtaba NickaCanadaAnna Fali QUALIFIED
Costa DilliardJapanElwin Sharvill PROPOSAL
Kaitlin OstroskyIndiaXuxue Feng PROPOSAL
Costa DilliardFranceElwin Sharvill PROPOSAL
David DarakjyAustraliaStephen Shaw RENEWAL
Nicolas IturbideAustraliaOnyama Limba UNQUALIFIED
Jones VocelkaUnited KingdomXuxue Feng QUALIFIED
Ashley DoeSpainIoni Bowcher RENEWAL
Arvin AlbaresGermanyAmy Elsner NEW
Juan WieserJapanIoni Bowcher NEGOTIATION
Munro FerenczIndiaAmy Elsner QUALIFIED
Maisha RulapaughBrazilAsiya Javayant NEW
Antonio CaudyRussiaOnyama Limba NEW
Morrow RutaCanadaOnyama Limba NEW
Adams MorascaGermanyOnyama Limba PROPOSAL
Aruna FigeroaAustraliaElwin Sharvill NEW
Munro FerenczUnited KingdomIoni Bowcher RENEWAL
Aika InouyeCanadaIvan Magalhaes QUALIFIED
Clifford RimBrazilAsiya Javayant NEW
Adams MorascaBrazilAmy Elsner PROPOSAL
Francesco ShinkoCanadaIoni Bowcher NEW
Darci PoquetteFranceAsiya Javayant NEW
Adams MorascaUnited KingdomAnna Fali UNQUALIFIED
Aika InouyeArgentinaElwin Sharvill NEW
Jeanfrancois VenereGermanyOnyama Limba NEGOTIATION
Chavez BriddickAustraliaXuxue Feng NEW
James ButtGermanyElwin Sharvill UNQUALIFIED
Mayumi KolmetzArgentinaIvan Magalhaes NEGOTIATION
Aditya KuskoFranceAsiya Javayant QUALIFIED
Smith GlickRussiaBernardo Dominic PROPOSAL
Deepesh ChuiBrazilIvan Magalhaes NEGOTIATION
Emily WhobreyCanadaBernardo Dominic QUALIFIED
Tony FollerCanadaXuxue Feng PROPOSAL
Nicolas IturbideSpainIvan Magalhaes RENEWAL
Faith GillianJapanIvan Magalhaes RENEWAL
Chavez BriddickRussiaBernardo Dominic NEGOTIATION
Aika InouyeItalyIvan Magalhaes NEW
Frozen Columns
Name
Antonio Caudy
Stacey Maclead
Aruna Figeroa
Aika Inouye
Wickens Nestle
Faith Gillian
Izzy Garufi
Deepesh Chui
Nicolas Iturbide
Ricardo Gaucho
Jeanfrancois Venere
Adams Morasca
Jefferson Schemmer
Sinclair Waycott
Munro Ferencz
Munro Ferencz
Alejandro Perin
Maria Marrier
Tony Foller
Jefferson Schemmer
Deepesh Chui
Costa Dilliard
Ricardo Gaucho
Jennifer Amigon
Nicolas Iturbide
Costa Dilliard
Chavez Briddick
Leja Caldarera
Sinclair Waycott
Clifford Rim
Antonio Caudy
Aika Inouye
Wickens Nestle
Jones Vocelka
Stacey Maclead
Munro Ferencz
Aika Inouye
Julie Stenseth
Smith Glick
Sinclair Waycott
Johnson Sergi
Ricardo Gaucho
James Butt
Aruna Figeroa
Sinclair Waycott
Smith Glick
Costa Dilliard
Deepesh Chui
Sinclair Waycott
Sinclair Waycott
IdCountryDate
1000Australia2025-08-04
1001India2025-07-25
1002Argentina2025-07-30
1003United Kingdom2025-08-01
1004France2025-08-02
1005France2025-08-08
1006Brazil2025-08-01
1007Germany2025-07-21
1008Italy2025-08-14
1009Argentina2025-08-03
1010India2025-07-25
1011Australia2025-07-20
1012Australia2025-07-27
1013United Kingdom2025-08-13
1014Germany2025-08-07
1015India2025-08-12
1016France2025-08-17
1017Argentina2025-08-07
1018Germany2025-07-26
1019Canada2025-08-15
1020Canada2025-07-20
1021France2025-07-29
1022Brazil2025-08-05
1023Brazil2025-07-26
1024Brazil2025-08-06
1025France2025-08-17
1026India2025-08-05
1027France2025-08-05
1028Japan2025-07-31
1029France2025-08-14
1030Japan2025-08-17
1031United Kingdom2025-08-06
1032Argentina2025-07-21
1033France2025-07-19
1034Australia2025-08-16
1035Italy2025-08-13
1036France2025-07-31
1037Italy2025-08-15
1038Australia2025-08-04
1039Spain2025-07-28
1040Italy2025-07-30
1041Brazil2025-08-02
1042Russia2025-08-01
1043Italy2025-08-11
1044Germany2025-08-10
1045Spain2025-08-10
1046Canada2025-07-19
1047United Kingdom2025-07-24
1048Canada2025-08-08
1049Japan2025-08-12

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Russia2025-08-07
James Butt1001Spain2025-08-16
David Darakjy1002Spain2025-08-07
Claire Tollner1003Russia2025-08-09
Jefferson Schemmer1004France2025-08-14
Maisha Rulapaugh1005Spain2025-07-26
Maisha Rulapaugh1006India2025-07-30
Nicolas Iturbide1007Brazil2025-07-22
Nicolas Iturbide1008Spain2025-07-25
Antonio Caudy1009Italy2025-07-20
Jeanfrancois Venere1010Argentina2025-07-30
Izzy Garufi1011Germany2025-08-15
Morrow Ruta1012Australia2025-08-17
Juan Wieser1013Argentina2025-07-30
Sinclair Waycott1014Spain2025-07-27
Jefferson Schemmer1015United Kingdom2025-07-24
Arvin Albares1016Brazil2025-08-09
Isabel Bowley1017Spain2025-07-25
Maria Marrier1018Japan2025-08-13
Stacey Maclead1019Canada2025-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinJapanIoni Bowcher UNQUALIFIED
Mujtaba NickaJapanAnna Fali NEW
David DarakjyGermanyIvan Magalhaes QUALIFIED
Francesco ShinkoItalyAsiya Javayant NEW
Cody SaylorsItalyIvan Magalhaes RENEWAL
Faith GillianAustraliaIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaAsiya Javayant UNQUALIFIED
Greenwood BologniaIndiaXuxue Feng RENEWAL
Francesco ShinkoGermanyIvan Magalhaes QUALIFIED
Antonio CaudyBrazilAnna Fali UNQUALIFIED
Aditya KuskoBrazilAnna Fali UNQUALIFIED
Aruna FigeroaFranceAnna Fali UNQUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes QUALIFIED
David DarakjySpainOnyama Limba NEW
David DarakjyBrazilStephen Shaw UNQUALIFIED
Stacey MacleadAustraliaAmy Elsner NEGOTIATION
Maria MarrierFranceOnyama Limba NEW
Darci PoquetteCanadaAsiya Javayant UNQUALIFIED
Ashley DoeBrazilIvan Magalhaes QUALIFIED
Darci PoquetteItalyOnyama Limba NEGOTIATION
Alejandro PerinGermanyXuxue Feng NEW
Jeanfrancois VenereUnited KingdomElwin Sharvill NEGOTIATION
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Jeanfrancois VenereArgentinaXuxue Feng UNQUALIFIED
Octavia MaletGermanyAnna Fali NEW
Clifford RimAustraliaIoni Bowcher NEW
Antonio CaudyGermanyAmy Elsner NEGOTIATION
Silvio SlusarskiBrazilElwin Sharvill NEW
Cody SaylorsCanadaIvan Magalhaes NEW
David DarakjyCanadaAmy Elsner QUALIFIED
Ivar PaprockiArgentinaAmy Elsner RENEWAL
Jennifer AmigonUnited KingdomAnna Fali QUALIFIED
Leon OldroydJapanElwin Sharvill NEGOTIATION
Juan WieserFranceOnyama Limba NEW
Julie StensethSpainElwin Sharvill NEGOTIATION
Izzy GarufiUnited KingdomElwin Sharvill RENEWAL
Darci PoquetteArgentinaAnna Fali QUALIFIED
Salvatore StockhamBrazilStephen Shaw NEW
Tony FollerItalyElwin Sharvill NEGOTIATION
Ashley DoeCanadaIoni Bowcher 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>