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
Chavez BriddickSpainXuxue Feng PROPOSAL
Ivar PaprockiJapanBernardo Dominic NEW
Clifford RimSpainOnyama Limba RENEWAL
Tony FollerIndiaAmy Elsner NEW
David DarakjyGermanyElwin Sharvill QUALIFIED
Francesco ShinkoRussiaIvan Magalhaes RENEWAL
James ButtGermanyXuxue Feng NEGOTIATION
Arvin AlbaresSpainStephen Shaw RENEWAL
Chavez BriddickBrazilElwin Sharvill NEGOTIATION
Alejandro PerinRussiaXuxue Feng RENEWAL
Ivar PaprockiItalyAmy Elsner NEGOTIATION
Morrow RutaUnited KingdomAsiya Javayant QUALIFIED
Jefferson SchemmerAustraliaIvan Magalhaes NEW
Leon OldroydSpainAnna Fali QUALIFIED
Johnson SergiCanadaBernardo Dominic NEGOTIATION
Jefferson SchemmerSpainAmy Elsner NEW
Salvatore StockhamBrazilStephen Shaw NEGOTIATION
Arvin AlbaresArgentinaAmy Elsner RENEWAL
Darci PoquetteUnited KingdomStephen Shaw NEGOTIATION
Arvin AlbaresFranceAnna Fali RENEWAL
Clifford RimJapanOnyama Limba NEGOTIATION
Leja CaldareraItalyBernardo Dominic PROPOSAL
Mujtaba NickaUnited KingdomAnna Fali QUALIFIED
Ashley DoeUnited KingdomAsiya Javayant QUALIFIED
Leja CaldareraJapanAmy Elsner NEW
Clifford RimIndiaOnyama Limba PROPOSAL
Cody SaylorsCanadaOnyama Limba NEW
Cody SaylorsSpainElwin Sharvill PROPOSAL
Misaki RoysterRussiaStephen Shaw NEW
David DarakjyAustraliaAsiya Javayant NEW
Costa DilliardSpainElwin Sharvill NEGOTIATION
James ButtJapanStephen Shaw QUALIFIED
Kaitlin OstroskyArgentinaAmy Elsner NEW
Leon OldroydIndiaElwin Sharvill NEGOTIATION
Jennifer AmigonArgentinaElwin Sharvill QUALIFIED
Silvio SlusarskiFranceIoni Bowcher NEW
Jefferson SchemmerArgentinaBernardo Dominic RENEWAL
Mayumi KolmetzCanadaAsiya Javayant NEGOTIATION
Jennifer AmigonItalyStephen Shaw UNQUALIFIED
Julie StensethIndiaAmy Elsner NEW
Izzy GarufiGermanyIvan Magalhaes NEW
Jeanfrancois VenereCanadaOnyama Limba QUALIFIED
Julie StensethSpainAmy Elsner QUALIFIED
Clifford RimArgentinaElwin Sharvill PROPOSAL
Aruna FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Jennifer AmigonJapanOnyama Limba RENEWAL
Octavia MaletGermanyElwin Sharvill NEW
Deepesh ChuiJapanAnna Fali RENEWAL
David DarakjyFranceAsiya Javayant QUALIFIED
Faith GillianCanadaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereBrazilAnna Fali UNQUALIFIED
Maisha RulapaughAustraliaElwin Sharvill RENEWAL
Sinclair WaycottGermanyIoni Bowcher QUALIFIED
Nicolas IturbideAustraliaElwin Sharvill RENEWAL
Mayumi KolmetzAustraliaIvan Magalhaes PROPOSAL
Leja CaldareraItalyAsiya Javayant NEGOTIATION
Arvin AlbaresJapanStephen Shaw PROPOSAL
Alejandro PerinAustraliaElwin Sharvill PROPOSAL
Smith GlickItalyIoni Bowcher QUALIFIED
Izzy GarufiCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereRussia2026-05-23Chemel, James L Cpa RENEWAL37Ioni Bowcher
1001Silvio SlusarskiItaly2026-05-20Printing Dimensions NEGOTIATION98Anna Fali
1002Ivar PaprockiArgentina2026-05-15Printing Dimensions QUALIFIED84Ivan Magalhaes
1003Salvatore StockhamAustralia2026-05-12Feiner Bros UNQUALIFIED24Elwin Sharvill
1004Jeanfrancois VenereSpain2026-05-13Benton, John B Jr NEW30Amy Elsner
1005Alejandro PerinSpain2026-05-17Dorl, James J Esq NEGOTIATION13Amy Elsner
1006Munro FerenczGermany2026-05-13Commercial Press NEGOTIATION58Amy Elsner
1007Greenwood BologniaUnited Kingdom2026-05-12Commercial Press QUALIFIED85Elwin Sharvill
1008Kaitlin OstroskyCanada2026-05-26Rousseaux, Michael Esq PROPOSAL64Xuxue Feng
1009Claire TollnerSpain2026-05-15Chemel, James L Cpa UNQUALIFIED37Amy Elsner
1010Chavez BriddickBrazil2026-05-22Feiner Bros UNQUALIFIED50Bernardo Dominic
1011Jefferson SchemmerGermany2026-05-22Morlong Associates NEW44Asiya Javayant
1012Francesco ShinkoAustralia2026-05-26Chapman, Ross E Esq QUALIFIED40Bernardo Dominic
1013Faith GillianJapan2026-05-31Chemel, James L Cpa NEW60Ivan Magalhaes
1014Stacey MacleadSpain2026-05-07Commercial Press QUALIFIED98Anna Fali
1015Munro FerenczRussia2026-05-12Feltz Printing Service RENEWAL99Elwin Sharvill
1016Salvatore StockhamAustralia2026-05-22Rangoni Of Florence RENEWAL34Anna Fali
1017Julie StensethBrazil2026-05-04Rousseaux, Michael Esq RENEWAL41Ivan Magalhaes
1018Silvio SlusarskiIndia2026-05-30Feltz Printing Service RENEWAL43Asiya Javayant
1019Smith GlickIndia2026-05-02Buckley Miller Wright NEGOTIATION45Asiya Javayant
1020Clifford RimArgentina2026-05-16Rangoni Of Florence QUALIFIED89Asiya Javayant
1021Chavez BriddickItaly2026-05-21Feiner Bros NEW40Onyama Limba
1022Ricardo GauchoFrance2026-05-30King, Christopher A Esq NEGOTIATION86Ioni Bowcher
1023Alejandro PerinCanada2026-05-24Chanay, Jeffrey A Esq NEW13Bernardo Dominic
1024Emily WhobreyAustralia2026-05-19Dorl, James J Esq PROPOSAL96Asiya Javayant
1025Julie StensethRussia2026-05-08Dorl, James J Esq QUALIFIED32Anna Fali
1026Munro FerenczItaly2026-05-30Morlong Associates UNQUALIFIED70Bernardo Dominic
1027Aditya KuskoAustralia2026-05-25Buckley Miller Wright QUALIFIED78Ioni Bowcher
1028Johnson SergiIndia2026-05-10Commercial Press UNQUALIFIED28Asiya Javayant
1029Antonio CaudyIndia2026-05-20Feiner Bros UNQUALIFIED9Ioni Bowcher
1030Salvatore StockhamJapan2026-05-25King, Christopher A Esq NEGOTIATION44Anna Fali
1031Julie StensethCanada2026-05-02Rangoni Of Florence UNQUALIFIED88Bernardo Dominic
1032Kadeem FlosiJapan2026-05-24Chanay, Jeffrey A Esq PROPOSAL8Onyama Limba
1033Greenwood BologniaBrazil2026-05-09Morlong Associates RENEWAL4Amy Elsner
1034Kadeem FlosiItaly2026-05-11Feiner Bros RENEWAL94Anna Fali
1035Mayumi KolmetzUnited Kingdom2026-05-09King, Christopher A Esq QUALIFIED5Anna Fali
1036Misaki RoysterItaly2026-05-30Chanay, Jeffrey A Esq NEW91Ivan Magalhaes
1037Silvio SlusarskiBrazil2026-05-13Buckley Miller Wright PROPOSAL21Anna Fali
1038Misaki RoysterUnited Kingdom2026-05-19Rousseaux, Michael Esq NEW73Stephen Shaw
1039Adams MorascaIndia2026-05-02Chapman, Ross E Esq NEGOTIATION59Amy Elsner
1040Aruna FigeroaItaly2026-05-29Chapman, Ross E Esq PROPOSAL83Asiya Javayant
1041Octavia MaletUnited Kingdom2026-05-08Feiner Bros PROPOSAL86Amy Elsner
1042Aruna FigeroaFrance2026-05-06Rousseaux, Michael Esq NEGOTIATION63Onyama Limba
1043Isabel BowleyUnited Kingdom2026-05-29Rousseaux, Michael Esq NEGOTIATION86Ioni Bowcher
1044David DarakjyIndia2026-05-25Truhlar And Truhlar Attys NEGOTIATION91Elwin Sharvill
1045Clifford RimUnited Kingdom2026-05-05Chapman, Ross E Esq NEW21Anna Fali
1046Ivar PaprockiGermany2026-05-26King, Christopher A Esq NEW24Anna Fali
1047Leon OldroydGermany2026-05-07Benton, John B Jr PROPOSAL27Xuxue Feng
1048Alejandro PerinBrazil2026-05-21Morlong Associates RENEWAL44Elwin Sharvill
1049Rodrigues CampainAustralia2026-05-26King, Christopher A Esq UNQUALIFIED49Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyBrazilStephen Shaw RENEWAL
Rodrigues CampainSpainAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaAsiya Javayant NEGOTIATION
Murillo MaletRussiaElwin Sharvill RENEWAL
Johnson SergiUnited KingdomXuxue Feng PROPOSAL
Maria MarrierBrazilAsiya Javayant QUALIFIED
Claire TollnerFranceXuxue Feng PROPOSAL
Mayumi KolmetzFranceIoni Bowcher NEGOTIATION
Octavia MaletBrazilAnna Fali NEGOTIATION
Clifford RimCanadaXuxue Feng NEGOTIATION
Antonio CaudyIndiaStephen Shaw RENEWAL
Tony FollerGermanyXuxue Feng UNQUALIFIED
Clifford RimJapanIoni Bowcher RENEWAL
Wickens NestleJapanBernardo Dominic NEGOTIATION
James ButtArgentinaAmy Elsner QUALIFIED
Mayumi KolmetzAustraliaBernardo Dominic NEGOTIATION
Munro FerenczAustraliaElwin Sharvill RENEWAL
Morrow RutaGermanyStephen Shaw NEW
Mayumi KolmetzBrazilAmy Elsner PROPOSAL
Jeanfrancois VenereFranceIvan Magalhaes NEW
Rodrigues CampainFranceAnna Fali UNQUALIFIED
Leon OldroydItalyAnna Fali QUALIFIED
Jeanfrancois VenereAustraliaXuxue Feng NEW
Nicolas IturbideIndiaIoni Bowcher NEGOTIATION
Deepesh ChuiRussiaStephen Shaw QUALIFIED
Jefferson SchemmerFranceXuxue Feng RENEWAL
Johnson SergiUnited KingdomBernardo Dominic NEGOTIATION
Cody SaylorsBrazilXuxue Feng PROPOSAL
Morrow RutaCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereGermanyAnna Fali RENEWAL
Adams MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Aditya KuskoJapanIoni Bowcher PROPOSAL
Nicolas IturbideIndiaAmy Elsner PROPOSAL
Costa DilliardIndiaXuxue Feng UNQUALIFIED
Cody SaylorsGermanyIoni Bowcher PROPOSAL
Nicolas IturbideCanadaOnyama Limba PROPOSAL
Morrow RutaAustraliaIoni Bowcher NEW
Kaitlin OstroskyGermanyIoni Bowcher QUALIFIED
Cody SaylorsSpainBernardo Dominic NEW
Smith GlickFranceElwin Sharvill PROPOSAL
Mujtaba NickaUnited KingdomAnna Fali NEGOTIATION
Kadeem FlosiRussiaElwin Sharvill RENEWAL
Costa DilliardBrazilOnyama Limba NEGOTIATION
Tony FollerAustraliaAmy Elsner NEGOTIATION
Aruna FigeroaIndiaIoni Bowcher QUALIFIED
Wickens NestleCanadaAsiya Javayant NEGOTIATION
Arvin AlbaresCanadaIoni Bowcher QUALIFIED
Izzy GarufiBrazilAsiya Javayant NEW
Murillo MaletItalyAmy Elsner UNQUALIFIED
Octavia MaletArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Salvatore Stockham
Sinclair Waycott
Ricardo Gaucho
Claire Tollner
Kadeem Flosi
Faith Gillian
Chavez Briddick
Julie Stenseth
Alejandro Perin
Wickens Nestle
James Butt
Aditya Kusko
Aditya Kusko
Alejandro Perin
Juan Wieser
Mujtaba Nicka
Faith Gillian
Clifford Rim
Greenwood Bolognia
Leon Oldroyd
Rodrigues Campain
Munro Ferencz
Tony Foller
Aditya Kusko
Kaitlin Ostrosky
Jennifer Amigon
Johnson Sergi
Stacey Maclead
Jennifer Amigon
Maria Marrier
Aruna Figeroa
Ivar Paprocki
Kadeem Flosi
Octavia Malet
Leon Oldroyd
Jones Vocelka
Jennifer Amigon
Alejandro Perin
Sinclair Waycott
Julie Stenseth
Claire Tollner
Claire Tollner
Murillo Malet
Johnson Sergi
Julie Stenseth
Ivar Paprocki
Johnson Sergi
Jones Vocelka
Leon Oldroyd
Nicolas Iturbide
IdCountryDate
1000Spain2026-05-08
1001Japan2026-05-15
1002Australia2026-05-25
1003France2026-05-28
1004Argentina2026-05-12
1005Germany2026-05-10
1006United Kingdom2026-05-03
1007Russia2026-05-24
1008Spain2026-05-22
1009Italy2026-05-26
1010Italy2026-05-04
1011Australia2026-05-02
1012Canada2026-05-23
1013India2026-05-13
1014Canada2026-05-06
1015Japan2026-05-23
1016India2026-05-21
1017France2026-05-17
1018Australia2026-05-12
1019Italy2026-05-09
1020Australia2026-05-13
1021Germany2026-05-19
1022Brazil2026-05-31
1023Italy2026-05-26
1024Japan2026-05-22
1025Russia2026-05-05
1026Canada2026-05-11
1027Germany2026-05-16
1028Germany2026-05-17
1029Brazil2026-05-07
1030Argentina2026-05-28
1031Italy2026-05-06
1032United Kingdom2026-05-12
1033Argentina2026-05-08
1034Australia2026-05-04
1035Japan2026-05-31
1036India2026-05-19
1037Canada2026-05-16
1038India2026-05-25
1039France2026-05-26
1040India2026-05-08
1041United Kingdom2026-05-30
1042Germany2026-05-09
1043Japan2026-05-08
1044Brazil2026-05-08
1045France2026-05-15
1046Japan2026-05-02
1047India2026-05-04
1048France2026-05-30
1049Germany2026-05-15

On-Demand Data

NameIdCountryDate
Clifford Rim1000Argentina2026-05-09
Arvin Albares1001United Kingdom2026-05-27
Morrow Ruta1002Germany2026-05-13
Smith Glick1003Japan2026-05-08
Greenwood Bolognia1004Japan2026-05-02
Kaitlin Ostrosky1005United Kingdom2026-05-19
Sinclair Waycott1006India2026-05-21
Antonio Caudy1007Brazil2026-05-06
Costa Dilliard1008Italy2026-05-06
Misaki Royster1009Japan2026-05-25
Sinclair Waycott1010Germany2026-05-14
Munro Ferencz1011Brazil2026-05-15
Maisha Rulapaugh1012Argentina2026-05-20
Darci Poquette1013Japan2026-05-29
Tony Foller1014Brazil2026-05-08
Emily Whobrey1015Brazil2026-05-29
Sinclair Waycott1016Brazil2026-05-23
Mujtaba Nicka1017Canada2026-05-12
Julie Stenseth1018United Kingdom2026-05-24
Johnson Sergi1019France2026-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserSpainAmy Elsner PROPOSAL
Tony FollerSpainAsiya Javayant QUALIFIED
Kaitlin OstroskyIndiaStephen Shaw NEGOTIATION
Cody SaylorsArgentinaBernardo Dominic QUALIFIED
Alejandro PerinGermanyIoni Bowcher PROPOSAL
Alejandro PerinIndiaIoni Bowcher RENEWAL
Ashley DoeArgentinaAnna Fali UNQUALIFIED
Nicolas IturbideCanadaBernardo Dominic QUALIFIED
Cody SaylorsFranceOnyama Limba RENEWAL
Emily WhobreyGermanyElwin Sharvill PROPOSAL
Leon OldroydFranceXuxue Feng PROPOSAL
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Francesco ShinkoSpainAnna Fali PROPOSAL
Emily WhobreySpainIoni Bowcher UNQUALIFIED
Francesco ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh ChuiFranceIoni Bowcher UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic UNQUALIFIED
Smith GlickRussiaStephen Shaw NEGOTIATION
Jefferson SchemmerArgentinaBernardo Dominic PROPOSAL
Ashley DoeAustraliaElwin Sharvill RENEWAL
Smith GlickSpainBernardo Dominic NEGOTIATION
Greenwood BologniaItalyOnyama Limba UNQUALIFIED
Isabel BowleyBrazilElwin Sharvill QUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant PROPOSAL
Aditya KuskoUnited KingdomXuxue Feng QUALIFIED
Alejandro PerinBrazilIvan Magalhaes NEW
Francesco ShinkoJapanStephen Shaw NEGOTIATION
Adams MorascaIndiaStephen Shaw RENEWAL
Ivar PaprockiItalyStephen Shaw PROPOSAL
Alejandro PerinSpainXuxue Feng NEW
Julie StensethUnited KingdomAmy Elsner UNQUALIFIED
Murillo MaletBrazilAmy Elsner NEW
Ricardo GauchoArgentinaElwin Sharvill PROPOSAL
Tony FollerUnited KingdomAmy Elsner NEGOTIATION
Adams MorascaCanadaIoni Bowcher NEW
Wickens NestleItalyAnna Fali QUALIFIED
Izzy GarufiGermanyXuxue Feng RENEWAL
Claire TollnerSpainBernardo Dominic PROPOSAL
Munro FerenczArgentinaAsiya Javayant 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>