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
Darci PoquetteBrazilIvan Magalhaes NEGOTIATION
Maria MarrierItalyOnyama Limba NEW
Claire TollnerItalyStephen Shaw QUALIFIED
Ashley DoeArgentinaIoni Bowcher UNQUALIFIED
Sinclair WaycottCanadaBernardo Dominic QUALIFIED
Morrow RutaJapanOnyama Limba UNQUALIFIED
Munro FerenczRussiaAmy Elsner PROPOSAL
Octavia MaletIndiaAsiya Javayant UNQUALIFIED
Munro FerenczArgentinaIoni Bowcher NEGOTIATION
Leja CaldareraIndiaAsiya Javayant PROPOSAL
Deepesh ChuiCanadaIoni Bowcher QUALIFIED
Murillo MaletArgentinaElwin Sharvill NEGOTIATION
Octavia MaletFranceBernardo Dominic RENEWAL
Izzy GarufiCanadaIoni Bowcher NEW
Jones VocelkaFranceAmy Elsner RENEWAL
Wickens NestleJapanElwin Sharvill UNQUALIFIED
Tony FollerRussiaElwin Sharvill RENEWAL
Clifford RimCanadaAnna Fali QUALIFIED
Rodrigues CampainArgentinaElwin Sharvill NEW
Johnson SergiFranceBernardo Dominic PROPOSAL
Arvin AlbaresSpainIvan Magalhaes NEGOTIATION
Johnson SergiGermanyStephen Shaw NEW
James ButtIndiaIvan Magalhaes NEW
Rodrigues CampainRussiaIvan Magalhaes UNQUALIFIED
Nicolas IturbideGermanyBernardo Dominic PROPOSAL
Emily WhobreyAustraliaAsiya Javayant NEGOTIATION
Clifford RimCanadaIvan Magalhaes UNQUALIFIED
Deepesh ChuiBrazilElwin Sharvill NEGOTIATION
Smith GlickJapanBernardo Dominic NEW
Jefferson SchemmerSpainIoni Bowcher QUALIFIED
Arvin AlbaresIndiaIvan Magalhaes PROPOSAL
Mayumi KolmetzItalyStephen Shaw NEW
Ivar PaprockiUnited KingdomOnyama Limba PROPOSAL
Johnson SergiFranceAmy Elsner UNQUALIFIED
David DarakjyCanadaIvan Magalhaes PROPOSAL
Octavia MaletFranceElwin Sharvill PROPOSAL
Ashley DoeSpainAsiya Javayant NEW
Antonio CaudySpainIoni Bowcher PROPOSAL
Ricardo GauchoSpainXuxue Feng NEGOTIATION
Stacey MacleadSpainXuxue Feng QUALIFIED
Maisha RulapaughGermanyElwin Sharvill RENEWAL
Deepesh ChuiCanadaAsiya Javayant QUALIFIED
Maisha RulapaughFranceIoni Bowcher NEW
Juan WieserRussiaXuxue Feng UNQUALIFIED
Morrow RutaCanadaBernardo Dominic RENEWAL
Claire TollnerFranceAnna Fali UNQUALIFIED
Mayumi KolmetzCanadaStephen Shaw NEW
Jennifer AmigonGermanyBernardo Dominic RENEWAL
Stacey MacleadJapanIoni Bowcher UNQUALIFIED
Costa DilliardBrazilXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
David DarakjyBrazilAnna Fali UNQUALIFIED
Tony FollerRussiaIoni Bowcher PROPOSAL
Octavia MaletJapanStephen Shaw UNQUALIFIED
Rodrigues CampainIndiaBernardo Dominic QUALIFIED
Munro FerenczIndiaBernardo Dominic UNQUALIFIED
Kadeem FlosiUnited KingdomAsiya Javayant NEGOTIATION
Ricardo GauchoIndiaOnyama Limba PROPOSAL
Aika InouyeUnited KingdomStephen Shaw QUALIFIED
Silvio SlusarskiArgentinaAnna Fali QUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyArgentina2026-05-17Chanay, Jeffrey A Esq NEW52Elwin Sharvill
1001Aruna FigeroaCanada2026-05-16Rousseaux, Michael Esq QUALIFIED88Ivan Magalhaes
1002Rodrigues CampainIndia2026-04-29Feiner Bros NEGOTIATION8Xuxue Feng
1003Jones VocelkaArgentina2026-05-18Printing Dimensions RENEWAL38Amy Elsner
1004Claire TollnerJapan2026-04-30Truhlar And Truhlar Attys QUALIFIED76Onyama Limba
1005Isabel BowleyBrazil2026-04-30Feltz Printing Service QUALIFIED56Onyama Limba
1006Misaki RoysterRussia2026-05-01Printing Dimensions QUALIFIED26Ioni Bowcher
1007Stacey MacleadFrance2026-05-20Truhlar And Truhlar Attys PROPOSAL50Asiya Javayant
1008Chavez BriddickGermany2026-05-08Feiner Bros UNQUALIFIED61Anna Fali
1009Isabel BowleyItaly2026-05-08Benton, John B Jr PROPOSAL56Elwin Sharvill
1010Greenwood BologniaJapan2026-05-20Chemel, James L Cpa NEGOTIATION36Stephen Shaw
1011Morrow RutaJapan2026-05-20Commercial Press PROPOSAL78Amy Elsner
1012Cody SaylorsUnited Kingdom2026-05-20Benton, John B Jr QUALIFIED9Ivan Magalhaes
1013Chavez BriddickCanada2026-04-30Chanay, Jeffrey A Esq RENEWAL17Asiya Javayant
1014Greenwood BologniaRussia2026-05-15Chemel, James L Cpa RENEWAL18Xuxue Feng
1015Emily WhobreyRussia2026-05-03Chapman, Ross E Esq NEW62Amy Elsner
1016Mujtaba NickaItaly2026-05-20King, Christopher A Esq RENEWAL97Bernardo Dominic
1017Aruna FigeroaBrazil2026-05-10Buckley Miller Wright NEGOTIATION23Elwin Sharvill
1018Mayumi KolmetzRussia2026-05-14Rousseaux, Michael Esq NEGOTIATION69Elwin Sharvill
1019Leja CaldareraFrance2026-05-10Printing Dimensions UNQUALIFIED50Onyama Limba
1020Munro FerenczBrazil2026-05-24Feiner Bros PROPOSAL35Anna Fali
1021Ashley DoeUnited Kingdom2026-05-18Benton, John B Jr RENEWAL73Amy Elsner
1022Kaitlin OstroskyArgentina2026-05-15Chanay, Jeffrey A Esq QUALIFIED55Ioni Bowcher
1023Alejandro PerinGermany2026-05-06Truhlar And Truhlar Attys RENEWAL3Ioni Bowcher
1024Maria MarrierArgentina2026-04-30Rousseaux, Michael Esq NEW39Xuxue Feng
1025Arvin AlbaresJapan2026-05-02Commercial Press UNQUALIFIED69Bernardo Dominic
1026Ashley DoeAustralia2026-05-11Morlong Associates QUALIFIED3Asiya Javayant
1027Munro FerenczCanada2026-05-16Chemel, James L Cpa QUALIFIED98Onyama Limba
1028Leon OldroydIndia2026-05-24Printing Dimensions RENEWAL97Amy Elsner
1029Clifford RimUnited Kingdom2026-04-28Morlong Associates NEGOTIATION32Stephen Shaw
1030Stacey MacleadArgentina2026-05-09Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1031Murillo MaletItaly2026-04-30Buckley Miller Wright UNQUALIFIED76Bernardo Dominic
1032Francesco ShinkoUnited Kingdom2026-05-23Dorl, James J Esq NEGOTIATION80Amy Elsner
1033Ivar PaprockiGermany2026-05-18Morlong Associates PROPOSAL69Xuxue Feng
1034Aruna FigeroaSpain2026-05-01Buckley Miller Wright RENEWAL43Stephen Shaw
1035Alejandro PerinJapan2026-04-30Commercial Press RENEWAL18Xuxue Feng
1036David DarakjyBrazil2026-05-16Rangoni Of Florence UNQUALIFIED64Elwin Sharvill
1037Salvatore StockhamJapan2026-05-25Dorl, James J Esq RENEWAL3Stephen Shaw
1038Wickens NestleAustralia2026-05-11Feiner Bros QUALIFIED41Xuxue Feng
1039Tony FollerUnited Kingdom2026-05-17Benton, John B Jr PROPOSAL98Xuxue Feng
1040Tony FollerIndia2026-05-26Printing Dimensions NEGOTIATION60Onyama Limba
1041Stacey MacleadSpain2026-05-17Buckley Miller Wright NEGOTIATION7Xuxue Feng
1042Murillo MaletBrazil2026-05-05Benton, John B Jr NEGOTIATION58Elwin Sharvill
1043Emily WhobreySpain2026-05-15Truhlar And Truhlar Attys NEGOTIATION53Ivan Magalhaes
1044Wickens NestleItaly2026-05-17Chapman, Ross E Esq NEW16Stephen Shaw
1045Tony FollerCanada2026-05-19King, Christopher A Esq PROPOSAL78Elwin Sharvill
1046Munro FerenczIndia2026-05-09Chemel, James L Cpa PROPOSAL68Xuxue Feng
1047Julie StensethRussia2026-04-28King, Christopher A Esq NEGOTIATION62Stephen Shaw
1048Greenwood BologniaBrazil2026-05-18Rousseaux, Michael Esq QUALIFIED46Amy Elsner
1049Clifford RimRussia2026-05-17Feltz Printing Service NEW4Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyAustraliaIvan Magalhaes NEGOTIATION
Isabel BowleyArgentinaStephen Shaw NEW
Stacey MacleadSpainIoni Bowcher PROPOSAL
Jones VocelkaSpainIvan Magalhaes QUALIFIED
Jeanfrancois VenereFranceXuxue Feng NEGOTIATION
David DarakjyUnited KingdomOnyama Limba NEW
David DarakjyItalyBernardo Dominic PROPOSAL
Cody SaylorsFranceOnyama Limba QUALIFIED
Faith GillianGermanyStephen Shaw QUALIFIED
Stacey MacleadJapanAnna Fali RENEWAL
Johnson SergiJapanAnna Fali UNQUALIFIED
Arvin AlbaresSpainBernardo Dominic RENEWAL
Greenwood BologniaRussiaIvan Magalhaes QUALIFIED
Jefferson SchemmerUnited KingdomOnyama Limba PROPOSAL
Aruna FigeroaJapanAmy Elsner NEGOTIATION
James ButtJapanIoni Bowcher PROPOSAL
Nicolas IturbideItalyStephen Shaw QUALIFIED
Leon OldroydJapanStephen Shaw QUALIFIED
Izzy GarufiGermanyAnna Fali NEW
Ashley DoeArgentinaAsiya Javayant NEW
Maisha RulapaughCanadaIvan Magalhaes NEGOTIATION
Wickens NestleCanadaBernardo Dominic PROPOSAL
Aditya KuskoSpainOnyama Limba NEGOTIATION
Ricardo GauchoSpainXuxue Feng UNQUALIFIED
Rodrigues CampainJapanOnyama Limba QUALIFIED
Jones VocelkaAustraliaAnna Fali QUALIFIED
Kaitlin OstroskyAustraliaAnna Fali UNQUALIFIED
Leon OldroydAustraliaIoni Bowcher NEGOTIATION
Maria MarrierFranceIoni Bowcher UNQUALIFIED
Faith GillianIndiaElwin Sharvill QUALIFIED
Murillo MaletJapanAmy Elsner RENEWAL
Leon OldroydAustraliaOnyama Limba UNQUALIFIED
Antonio CaudyGermanyXuxue Feng NEW
Emily WhobreyIndiaOnyama Limba UNQUALIFIED
Jeanfrancois VenereGermanyBernardo Dominic RENEWAL
Leja CaldareraArgentinaXuxue Feng UNQUALIFIED
Stacey MacleadIndiaAsiya Javayant PROPOSAL
Rodrigues CampainRussiaAnna Fali PROPOSAL
Maria MarrierIndiaIvan Magalhaes UNQUALIFIED
Leja CaldareraIndiaAsiya Javayant PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher PROPOSAL
Alejandro PerinArgentinaBernardo Dominic PROPOSAL
Aika InouyeIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereAustraliaAnna Fali RENEWAL
Deepesh ChuiJapanXuxue Feng QUALIFIED
Stacey MacleadSpainBernardo Dominic QUALIFIED
Antonio CaudyUnited KingdomStephen Shaw UNQUALIFIED
Ricardo GauchoCanadaOnyama Limba UNQUALIFIED
Leja CaldareraFranceBernardo Dominic NEGOTIATION
David DarakjyArgentinaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
David Darakjy
Adams Morasca
Chavez Briddick
Greenwood Bolognia
Ashley Doe
Leja Caldarera
Stacey Maclead
Leon Oldroyd
Cody Saylors
Aditya Kusko
Izzy Garufi
Jeanfrancois Venere
Ivar Paprocki
Costa Dilliard
Ashley Doe
Smith Glick
Nicolas Iturbide
Aika Inouye
Jennifer Amigon
Greenwood Bolognia
Claire Tollner
Munro Ferencz
Mujtaba Nicka
Salvatore Stockham
Juan Wieser
Leja Caldarera
Adams Morasca
Aika Inouye
Nicolas Iturbide
Juan Wieser
Silvio Slusarski
Juan Wieser
Johnson Sergi
Kaitlin Ostrosky
Claire Tollner
Aruna Figeroa
Rodrigues Campain
Nicolas Iturbide
Stacey Maclead
Greenwood Bolognia
Jeanfrancois Venere
Francesco Shinko
Antonio Caudy
Emily Whobrey
Kadeem Flosi
Nicolas Iturbide
Isabel Bowley
Tony Foller
Alejandro Perin
Faith Gillian
IdCountryDate
1000Japan2026-05-05
1001Italy2026-05-26
1002France2026-05-11
1003United Kingdom2026-05-01
1004Spain2026-05-11
1005India2026-05-14
1006India2026-05-23
1007Russia2026-04-30
1008Germany2026-04-29
1009Germany2026-05-23
1010Russia2026-05-19
1011Argentina2026-05-10
1012India2026-05-13
1013Japan2026-05-24
1014Argentina2026-04-29
1015United Kingdom2026-05-05
1016Russia2026-05-10
1017Spain2026-05-14
1018United Kingdom2026-05-16
1019France2026-05-04
1020Argentina2026-05-13
1021Spain2026-04-30
1022United Kingdom2026-05-26
1023India2026-05-08
1024Brazil2026-05-23
1025Australia2026-05-06
1026Spain2026-04-28
1027Argentina2026-05-16
1028Italy2026-04-30
1029Italy2026-05-15
1030Brazil2026-05-14
1031Russia2026-04-29
1032Russia2026-05-12
1033Argentina2026-05-12
1034Argentina2026-04-27
1035Argentina2026-05-06
1036Germany2026-05-03
1037Canada2026-05-08
1038India2026-05-12
1039Argentina2026-05-13
1040United Kingdom2026-05-08
1041Germany2026-05-12
1042Japan2026-05-11
1043Canada2026-05-13
1044Canada2026-05-15
1045Australia2026-05-01
1046United Kingdom2026-05-05
1047Australia2026-05-07
1048France2026-05-19
1049Spain2026-05-22

On-Demand Data

NameIdCountryDate
Arvin Albares1000Brazil2026-05-07
Smith Glick1001Japan2026-05-14
Aditya Kusko1002Argentina2026-05-10
Leon Oldroyd1003United Kingdom2026-05-21
Adams Morasca1004Spain2026-05-13
Salvatore Stockham1005Spain2026-05-05
Cody Saylors1006Russia2026-05-19
Jennifer Amigon1007Argentina2026-05-25
Leja Caldarera1008Argentina2026-05-26
Isabel Bowley1009Canada2026-05-01
Leon Oldroyd1010India2026-05-20
Juan Wieser1011Australia2026-05-14
Antonio Caudy1012United Kingdom2026-05-09
Murillo Malet1013Brazil2026-05-04
Tony Foller1014Germany2026-05-12
Misaki Royster1015Italy2026-05-04
Chavez Briddick1016Australia2026-05-03
Aruna Figeroa1017Russia2026-05-09
Chavez Briddick1018Germany2026-05-06
Cody Saylors1019Russia2026-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickGermanyAsiya Javayant QUALIFIED
Clifford RimBrazilStephen Shaw PROPOSAL
Izzy GarufiIndiaXuxue Feng PROPOSAL
Julie StensethJapanIoni Bowcher NEW
Murillo MaletCanadaAsiya Javayant PROPOSAL
Jennifer AmigonCanadaBernardo Dominic RENEWAL
Leja CaldareraCanadaStephen Shaw NEW
Emily WhobreySpainXuxue Feng RENEWAL
Leja CaldareraBrazilBernardo Dominic NEW
Rodrigues CampainRussiaElwin Sharvill UNQUALIFIED
Johnson SergiUnited KingdomElwin Sharvill NEW
Morrow RutaCanadaAsiya Javayant QUALIFIED
Kaitlin OstroskyCanadaStephen Shaw NEGOTIATION
Rodrigues CampainGermanyElwin Sharvill PROPOSAL
Julie StensethJapanXuxue Feng UNQUALIFIED
Maisha RulapaughJapanStephen Shaw UNQUALIFIED
Jennifer AmigonRussiaOnyama Limba NEW
Mujtaba NickaItalyIoni Bowcher NEW
Salvatore StockhamIndiaStephen Shaw NEW
Maria MarrierFranceAmy Elsner RENEWAL
Francesco ShinkoRussiaIoni Bowcher NEW
Morrow RutaSpainAmy Elsner RENEWAL
Sinclair WaycottGermanyOnyama Limba UNQUALIFIED
Claire TollnerUnited KingdomIoni Bowcher NEGOTIATION
Emily WhobreyJapanBernardo Dominic NEGOTIATION
Munro FerenczCanadaAmy Elsner NEW
Aruna FigeroaItalyIoni Bowcher NEGOTIATION
Maria MarrierIndiaOnyama Limba NEW
Wickens NestleUnited KingdomAsiya Javayant UNQUALIFIED
Morrow RutaIndiaOnyama Limba NEGOTIATION
Clifford RimRussiaBernardo Dominic NEW
Tony FollerGermanyAsiya Javayant NEW
Juan WieserIndiaIvan Magalhaes QUALIFIED
Tony FollerBrazilIvan Magalhaes NEGOTIATION
Stacey MacleadAustraliaOnyama Limba NEW
Maria MarrierSpainAsiya Javayant NEW
Izzy GarufiUnited KingdomBernardo Dominic NEW
Darci PoquetteSpainIvan Magalhaes RENEWAL
Chavez BriddickArgentinaElwin Sharvill RENEWAL
Misaki RoysterSpainXuxue Feng 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>