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
Leon OldroydCanadaXuxue Feng QUALIFIED
David DarakjyUnited KingdomStephen Shaw NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic QUALIFIED
Ricardo GauchoFranceIoni Bowcher NEW
Mayumi KolmetzUnited KingdomXuxue Feng QUALIFIED
Clifford RimIndiaAsiya Javayant PROPOSAL
Alejandro PerinArgentinaIoni Bowcher QUALIFIED
Munro FerenczIndiaAsiya Javayant UNQUALIFIED
Ashley DoeGermanyElwin Sharvill PROPOSAL
Julie StensethBrazilAnna Fali QUALIFIED
Kaitlin OstroskyFranceAmy Elsner UNQUALIFIED
Claire TollnerBrazilElwin Sharvill NEGOTIATION
Tony FollerJapanBernardo Dominic UNQUALIFIED
Aika InouyeJapanAmy Elsner QUALIFIED
Johnson SergiCanadaAmy Elsner PROPOSAL
Aditya KuskoCanadaIoni Bowcher QUALIFIED
Aditya KuskoSpainIvan Magalhaes NEGOTIATION
Nicolas IturbideRussiaBernardo Dominic RENEWAL
Tony FollerItalyXuxue Feng RENEWAL
Aruna FigeroaBrazilIvan Magalhaes PROPOSAL
Mayumi KolmetzUnited KingdomAmy Elsner NEGOTIATION
Francesco ShinkoUnited KingdomAnna Fali UNQUALIFIED
Alejandro PerinSpainStephen Shaw RENEWAL
Francesco ShinkoRussiaOnyama Limba PROPOSAL
Cody SaylorsAustraliaAmy Elsner NEW
Clifford RimFranceIvan Magalhaes NEGOTIATION
Leon OldroydSpainBernardo Dominic RENEWAL
Arvin AlbaresCanadaIvan Magalhaes PROPOSAL
Smith GlickFranceBernardo Dominic PROPOSAL
Juan WieserItalyAnna Fali PROPOSAL
Silvio SlusarskiRussiaXuxue Feng NEGOTIATION
Juan WieserAustraliaAmy Elsner RENEWAL
Deepesh ChuiCanadaIvan Magalhaes NEW
Ivar PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba NickaArgentinaStephen Shaw PROPOSAL
James ButtFranceIvan Magalhaes NEW
Aditya KuskoIndiaAsiya Javayant PROPOSAL
James ButtCanadaBernardo Dominic PROPOSAL
Mayumi KolmetzRussiaStephen Shaw PROPOSAL
Johnson SergiCanadaAnna Fali QUALIFIED
Juan WieserBrazilBernardo Dominic UNQUALIFIED
Adams MorascaSpainBernardo Dominic RENEWAL
Francesco ShinkoCanadaAnna Fali NEW
Chavez BriddickSpainAsiya Javayant NEW
Jennifer AmigonSpainIoni Bowcher NEGOTIATION
Sinclair WaycottSpainAmy Elsner NEGOTIATION
Kadeem FlosiArgentinaAsiya Javayant UNQUALIFIED
Smith GlickIndiaStephen Shaw RENEWAL
Maria MarrierAustraliaStephen Shaw QUALIFIED
Ashley DoeBrazilAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzArgentinaIoni Bowcher RENEWAL
James ButtJapanStephen Shaw NEGOTIATION
Ashley DoeBrazilBernardo Dominic NEW
Deepesh ChuiItalyElwin Sharvill UNQUALIFIED
Aika InouyeArgentinaIoni Bowcher UNQUALIFIED
Sinclair WaycottGermanyAnna Fali NEW
Juan WieserItalyAmy Elsner PROPOSAL
Clifford RimSpainBernardo Dominic NEGOTIATION
Costa DilliardGermanyElwin Sharvill QUALIFIED
Deepesh ChuiJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickRussia2026-04-13Morlong Associates RENEWAL67Onyama Limba
1001Jeanfrancois VenereUnited Kingdom2026-04-28Printing Dimensions RENEWAL61Ivan Magalhaes
1002Jones VocelkaIndia2026-04-06Feltz Printing Service PROPOSAL83Onyama Limba
1003Leja CaldareraBrazil2026-04-29Benton, John B Jr QUALIFIED7Asiya Javayant
1004Chavez BriddickSpain2026-04-13Benton, John B Jr UNQUALIFIED67Amy Elsner
1005Chavez BriddickAustralia2026-04-10Rousseaux, Michael Esq QUALIFIED10Bernardo Dominic
1006Ashley DoeGermany2026-04-24Buckley Miller Wright RENEWAL12Ivan Magalhaes
1007Maria MarrierItaly2026-04-17Truhlar And Truhlar Attys NEGOTIATION47Bernardo Dominic
1008Smith GlickCanada2026-04-18Rousseaux, Michael Esq QUALIFIED35Elwin Sharvill
1009Ashley DoeCanada2026-04-10Commercial Press NEW14Bernardo Dominic
1010Clifford RimSpain2026-04-02King, Christopher A Esq RENEWAL98Asiya Javayant
1011Isabel BowleyFrance2026-04-14Truhlar And Truhlar Attys RENEWAL97Anna Fali
1012Aruna FigeroaFrance2026-04-16Morlong Associates NEW41Anna Fali
1013Kaitlin OstroskyGermany2026-04-12Benton, John B Jr QUALIFIED67Bernardo Dominic
1014Arvin AlbaresRussia2026-05-01Commercial Press QUALIFIED2Elwin Sharvill
1015Leon OldroydCanada2026-04-03Chemel, James L Cpa RENEWAL11Onyama Limba
1016Maisha RulapaughRussia2026-04-05Rangoni Of Florence UNQUALIFIED56Anna Fali
1017Jones VocelkaArgentina2026-04-05Printing Dimensions PROPOSAL41Amy Elsner
1018Mayumi KolmetzRussia2026-04-22Dorl, James J Esq UNQUALIFIED23Ivan Magalhaes
1019Adams MorascaFrance2026-04-13Chemel, James L Cpa UNQUALIFIED3Ivan Magalhaes
1020Salvatore StockhamArgentina2026-04-27Feiner Bros NEW95Onyama Limba
1021Nicolas IturbideFrance2026-04-29Rangoni Of Florence UNQUALIFIED24Anna Fali
1022Aditya KuskoBrazil2026-04-21Feiner Bros UNQUALIFIED18Ivan Magalhaes
1023Kaitlin OstroskyArgentina2026-04-19Rousseaux, Michael Esq NEGOTIATION15Ioni Bowcher
1024Jefferson SchemmerFrance2026-04-08Buckley Miller Wright QUALIFIED77Bernardo Dominic
1025Aditya KuskoBrazil2026-04-26Buckley Miller Wright NEGOTIATION78Asiya Javayant
1026Silvio SlusarskiRussia2026-04-30Rousseaux, Michael Esq UNQUALIFIED13Anna Fali
1027Leon OldroydSpain2026-04-19Printing Dimensions QUALIFIED9Elwin Sharvill
1028Smith GlickJapan2026-04-21Feltz Printing Service UNQUALIFIED91Elwin Sharvill
1029Sinclair WaycottRussia2026-04-08Chapman, Ross E Esq QUALIFIED8Xuxue Feng
1030Aruna FigeroaIndia2026-04-09Commercial Press QUALIFIED79Elwin Sharvill
1031Munro FerenczFrance2026-04-12Dorl, James J Esq RENEWAL24Xuxue Feng
1032Silvio SlusarskiRussia2026-04-07Chanay, Jeffrey A Esq UNQUALIFIED10Xuxue Feng
1033Ricardo GauchoAustralia2026-04-26Morlong Associates PROPOSAL90Ivan Magalhaes
1034Smith GlickJapan2026-04-07Dorl, James J Esq PROPOSAL94Anna Fali
1035Misaki RoysterItaly2026-04-15Printing Dimensions UNQUALIFIED29Onyama Limba
1036Johnson SergiRussia2026-04-13Truhlar And Truhlar Attys NEGOTIATION76Ioni Bowcher
1037Tony FollerAustralia2026-04-27Buckley Miller Wright QUALIFIED40Amy Elsner
1038Juan WieserIndia2026-04-29Benton, John B Jr RENEWAL45Ioni Bowcher
1039Maisha RulapaughUnited Kingdom2026-04-28Commercial Press UNQUALIFIED93Xuxue Feng
1040Kaitlin OstroskyJapan2026-04-20Printing Dimensions NEGOTIATION18Elwin Sharvill
1041Alejandro PerinArgentina2026-04-26Chanay, Jeffrey A Esq PROPOSAL9Bernardo Dominic
1042Silvio SlusarskiGermany2026-04-12Chanay, Jeffrey A Esq PROPOSAL4Amy Elsner
1043Francesco ShinkoGermany2026-04-02Morlong Associates NEW33Asiya Javayant
1044Faith GillianIndia2026-04-29Chapman, Ross E Esq PROPOSAL45Anna Fali
1045Juan WieserArgentina2026-05-01Chapman, Ross E Esq PROPOSAL65Xuxue Feng
1046Aditya KuskoFrance2026-04-12Truhlar And Truhlar Attys RENEWAL42Anna Fali
1047Murillo MaletGermany2026-04-05Feltz Printing Service NEGOTIATION56Anna Fali
1048Munro FerenczJapan2026-04-29Feltz Printing Service NEW28Xuxue Feng
1049Munro FerenczFrance2026-04-07Rangoni Of Florence NEGOTIATION87Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickAustraliaBernardo Dominic NEGOTIATION
Silvio SlusarskiAustraliaXuxue Feng QUALIFIED
Ashley DoeArgentinaIoni Bowcher NEGOTIATION
Isabel BowleyRussiaOnyama Limba PROPOSAL
Jefferson SchemmerFranceAmy Elsner PROPOSAL
Maisha RulapaughFranceIvan Magalhaes QUALIFIED
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaXuxue Feng PROPOSAL
Costa DilliardBrazilXuxue Feng NEW
Adams MorascaGermanyXuxue Feng RENEWAL
Kadeem FlosiItalyAmy Elsner QUALIFIED
Silvio SlusarskiRussiaStephen Shaw NEW
James ButtGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Stacey MacleadJapanAsiya Javayant QUALIFIED
Misaki RoysterArgentinaIoni Bowcher RENEWAL
Deepesh ChuiIndiaAmy Elsner NEGOTIATION
Clifford RimUnited KingdomAnna Fali NEW
James ButtSpainIvan Magalhaes NEW
Morrow RutaUnited KingdomAmy Elsner NEW
Aruna FigeroaSpainAsiya Javayant PROPOSAL
Cody SaylorsSpainIoni Bowcher NEGOTIATION
Isabel BowleyBrazilAsiya Javayant QUALIFIED
Greenwood BologniaRussiaBernardo Dominic UNQUALIFIED
Adams MorascaItalyIvan Magalhaes NEGOTIATION
Alejandro PerinItalyAmy Elsner NEGOTIATION
Jeanfrancois VenereItalyOnyama Limba NEW
Ricardo GauchoGermanyIoni Bowcher NEGOTIATION
Munro FerenczArgentinaBernardo Dominic QUALIFIED
Johnson SergiAustraliaAnna Fali QUALIFIED
Kaitlin OstroskyFranceIvan Magalhaes RENEWAL
Sinclair WaycottSpainOnyama Limba QUALIFIED
Leon OldroydGermanyStephen Shaw NEGOTIATION
Leon OldroydIndiaIvan Magalhaes NEGOTIATION
Jefferson SchemmerCanadaAnna Fali NEGOTIATION
Tony FollerFranceElwin Sharvill UNQUALIFIED
Arvin AlbaresIndiaBernardo Dominic PROPOSAL
Jennifer AmigonAustraliaXuxue Feng RENEWAL
Nicolas IturbideBrazilAmy Elsner NEGOTIATION
Misaki RoysterUnited KingdomAmy Elsner QUALIFIED
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Morrow RutaGermanyStephen Shaw NEGOTIATION
Wickens NestleCanadaBernardo Dominic QUALIFIED
Izzy GarufiSpainAnna Fali PROPOSAL
Ricardo GauchoJapanIoni Bowcher PROPOSAL
Izzy GarufiJapanAsiya Javayant NEW
Maisha RulapaughRussiaAsiya Javayant UNQUALIFIED
Aruna FigeroaSpainOnyama Limba PROPOSAL
Aditya KuskoIndiaElwin Sharvill RENEWAL
Jefferson SchemmerFranceIoni Bowcher NEGOTIATION
Frozen Columns
Name
Mujtaba Nicka
Cody Saylors
James Butt
Jennifer Amigon
Wickens Nestle
Juan Wieser
Adams Morasca
Aruna Figeroa
Juan Wieser
Maria Marrier
Leja Caldarera
Leja Caldarera
Julie Stenseth
David Darakjy
Claire Tollner
Cody Saylors
Faith Gillian
Chavez Briddick
Adams Morasca
Sinclair Waycott
Kaitlin Ostrosky
Sinclair Waycott
Isabel Bowley
Mayumi Kolmetz
Leja Caldarera
Murillo Malet
Ricardo Gaucho
Darci Poquette
Aika Inouye
Octavia Malet
Antonio Caudy
Salvatore Stockham
Faith Gillian
James Butt
Sinclair Waycott
Stacey Maclead
Stacey Maclead
Maisha Rulapaugh
Aditya Kusko
Morrow Ruta
Aika Inouye
Costa Dilliard
Mujtaba Nicka
Kadeem Flosi
Murillo Malet
Munro Ferencz
Misaki Royster
Greenwood Bolognia
Jefferson Schemmer
Ivar Paprocki
IdCountryDate
1000Russia2026-04-23
1001Spain2026-04-11
1002Spain2026-04-20
1003Germany2026-04-27
1004Spain2026-04-25
1005Russia2026-04-27
1006Russia2026-04-19
1007France2026-04-12
1008Brazil2026-04-05
1009United Kingdom2026-04-13
1010France2026-04-24
1011Canada2026-04-14
1012Argentina2026-04-13
1013Japan2026-04-29
1014Brazil2026-04-16
1015Canada2026-04-22
1016Germany2026-04-07
1017Japan2026-04-02
1018Japan2026-04-10
1019United Kingdom2026-04-04
1020Japan2026-04-04
1021Japan2026-04-21
1022Canada2026-04-12
1023Spain2026-04-03
1024United Kingdom2026-04-04
1025Australia2026-04-02
1026Brazil2026-04-17
1027Brazil2026-04-09
1028Russia2026-05-01
1029Germany2026-04-28
1030Germany2026-04-03
1031Argentina2026-04-08
1032India2026-04-27
1033Russia2026-04-21
1034France2026-04-11
1035Spain2026-04-18
1036Canada2026-04-16
1037Brazil2026-04-20
1038United Kingdom2026-04-02
1039France2026-04-25
1040India2026-04-12
1041Italy2026-04-19
1042Japan2026-04-04
1043Spain2026-04-21
1044Japan2026-04-12
1045Italy2026-04-11
1046Australia2026-04-13
1047France2026-04-30
1048Brazil2026-04-20
1049Brazil2026-04-23

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Canada2026-04-20
Izzy Garufi1001Canada2026-04-11
Ricardo Gaucho1002Argentina2026-04-21
Clifford Rim1003Australia2026-04-25
Clifford Rim1004United Kingdom2026-05-01
Adams Morasca1005Australia2026-04-08
Silvio Slusarski1006India2026-04-02
Ricardo Gaucho1007Brazil2026-04-24
Maria Marrier1008Japan2026-04-20
Stacey Maclead1009India2026-04-22
Munro Ferencz1010France2026-04-29
Murillo Malet1011India2026-04-23
Arvin Albares1012United Kingdom2026-04-17
Smith Glick1013India2026-04-13
Leon Oldroyd1014Japan2026-04-25
Jennifer Amigon1015Italy2026-04-23
Alejandro Perin1016France2026-04-14
Leon Oldroyd1017Argentina2026-04-09
Aruna Figeroa1018Argentina2026-04-07
Ricardo Gaucho1019Spain2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiFranceElwin Sharvill QUALIFIED
Tony FollerGermanyOnyama Limba RENEWAL
Francesco ShinkoCanadaAsiya Javayant UNQUALIFIED
Francesco ShinkoGermanyStephen Shaw RENEWAL
Johnson SergiItalyAmy Elsner NEW
Antonio CaudyItalyAmy Elsner NEW
Jefferson SchemmerFranceOnyama Limba PROPOSAL
Maisha RulapaughFranceAmy Elsner NEGOTIATION
Chavez BriddickRussiaAmy Elsner QUALIFIED
Kaitlin OstroskyIndiaAnna Fali RENEWAL
Octavia MaletBrazilAnna Fali NEW
Emily WhobreyIndiaBernardo Dominic NEGOTIATION
Deepesh ChuiBrazilBernardo Dominic NEW
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
Stacey MacleadItalyIoni Bowcher NEGOTIATION
Stacey MacleadGermanyAnna Fali RENEWAL
Misaki RoysterJapanXuxue Feng RENEWAL
Alejandro PerinArgentinaBernardo Dominic QUALIFIED
Ricardo GauchoItalyIvan Magalhaes RENEWAL
Jennifer AmigonArgentinaOnyama Limba RENEWAL
Munro FerenczCanadaElwin Sharvill QUALIFIED
Misaki RoysterAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereArgentinaStephen Shaw QUALIFIED
Aika InouyeCanadaIvan Magalhaes PROPOSAL
Greenwood BologniaBrazilElwin Sharvill RENEWAL
Munro FerenczArgentinaXuxue Feng NEGOTIATION
Salvatore StockhamJapanXuxue Feng NEW
Johnson SergiCanadaAsiya Javayant RENEWAL
Murillo MaletCanadaOnyama Limba UNQUALIFIED
Kaitlin OstroskyJapanXuxue Feng PROPOSAL
Jeanfrancois VenereArgentinaElwin Sharvill NEW
David DarakjyRussiaXuxue Feng RENEWAL
Wickens NestleUnited KingdomElwin Sharvill NEGOTIATION
Jennifer AmigonArgentinaXuxue Feng QUALIFIED
Morrow RutaRussiaAsiya Javayant UNQUALIFIED
Nicolas IturbideIndiaBernardo Dominic NEW
Izzy GarufiBrazilStephen Shaw QUALIFIED
James ButtJapanIvan Magalhaes UNQUALIFIED
Stacey MacleadCanadaXuxue Feng QUALIFIED
Stacey MacleadFranceAnna Fali NEW

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