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
Juan WieserRussiaOnyama Limba RENEWAL
Juan WieserSpainAsiya Javayant UNQUALIFIED
Smith GlickUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas IturbideRussiaElwin Sharvill QUALIFIED
Izzy GarufiSpainStephen Shaw NEW
Mayumi KolmetzCanadaIoni Bowcher NEGOTIATION
Smith GlickUnited KingdomAnna Fali RENEWAL
Isabel BowleyCanadaStephen Shaw QUALIFIED
James ButtSpainAnna Fali RENEWAL
Kaitlin OstroskyItalyOnyama Limba RENEWAL
Wickens NestleAustraliaOnyama Limba PROPOSAL
Tony FollerIndiaOnyama Limba NEGOTIATION
Leja CaldareraBrazilOnyama Limba UNQUALIFIED
Julie StensethGermanyIvan Magalhaes QUALIFIED
Alejandro PerinFranceAnna Fali RENEWAL
Maisha RulapaughSpainAnna Fali NEGOTIATION
Ivar PaprockiRussiaIvan Magalhaes UNQUALIFIED
Stacey MacleadSpainXuxue Feng RENEWAL
Stacey MacleadJapanBernardo Dominic NEW
Darci PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Isabel BowleySpainIvan Magalhaes UNQUALIFIED
James ButtCanadaBernardo Dominic QUALIFIED
Kadeem FlosiJapanIoni Bowcher RENEWAL
Mujtaba NickaItalyAsiya Javayant RENEWAL
Wickens NestleItalyBernardo Dominic QUALIFIED
Chavez BriddickBrazilElwin Sharvill RENEWAL
Jeanfrancois VenereFranceAnna Fali NEGOTIATION
Smith GlickBrazilIoni Bowcher PROPOSAL
Cody SaylorsSpainAsiya Javayant PROPOSAL
Izzy GarufiFranceXuxue Feng RENEWAL
Murillo MaletCanadaStephen Shaw NEW
Johnson SergiArgentinaXuxue Feng NEGOTIATION
Juan WieserAustraliaStephen Shaw QUALIFIED
Faith GillianIndiaIvan Magalhaes UNQUALIFIED
Rodrigues CampainRussiaOnyama Limba NEW
Alejandro PerinSpainStephen Shaw QUALIFIED
Silvio SlusarskiCanadaAsiya Javayant RENEWAL
Sinclair WaycottArgentinaIvan Magalhaes NEGOTIATION
Clifford RimJapanAnna Fali RENEWAL
Clifford RimCanadaIoni Bowcher NEW
Francesco ShinkoSpainXuxue Feng PROPOSAL
Wickens NestleRussiaElwin Sharvill NEW
Arvin AlbaresRussiaAsiya Javayant NEW
Isabel BowleyGermanyAsiya Javayant QUALIFIED
Cody SaylorsFranceAnna Fali UNQUALIFIED
Alejandro PerinCanadaBernardo Dominic PROPOSAL
Jefferson SchemmerUnited KingdomStephen Shaw NEGOTIATION
Salvatore StockhamArgentinaAnna Fali RENEWAL
Stacey MacleadAustraliaAmy Elsner QUALIFIED
Claire TollnerItalyAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteAustraliaIvan Magalhaes RENEWAL
Emily WhobreyCanadaBernardo Dominic PROPOSAL
Nicolas IturbideAustraliaOnyama Limba RENEWAL
Jefferson SchemmerIndiaAsiya Javayant NEGOTIATION
Maisha RulapaughItalyAnna Fali NEW
Leon OldroydItalyAsiya Javayant QUALIFIED
Kadeem FlosiFranceAsiya Javayant UNQUALIFIED
Smith GlickCanadaElwin Sharvill NEW
Antonio CaudySpainAsiya Javayant PROPOSAL
Murillo MaletJapanAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaAustralia2026-05-05Benton, John B Jr PROPOSAL54Bernardo Dominic
1001Ashley DoeIndia2026-05-04Truhlar And Truhlar Attys NEW77Elwin Sharvill
1002Isabel BowleyItaly2026-05-18Rangoni Of Florence NEGOTIATION99Ioni Bowcher
1003Munro FerenczGermany2026-04-30Printing Dimensions PROPOSAL92Asiya Javayant
1004Ricardo GauchoUnited Kingdom2026-05-24Chapman, Ross E Esq NEGOTIATION29Anna Fali
1005Izzy GarufiItaly2026-04-30Chapman, Ross E Esq UNQUALIFIED15Anna Fali
1006Greenwood BologniaRussia2026-05-13Commercial Press PROPOSAL32Onyama Limba
1007Julie StensethCanada2026-05-12Rangoni Of Florence NEW83Stephen Shaw
1008Octavia MaletRussia2026-05-24Chapman, Ross E Esq QUALIFIED17Anna Fali
1009Tony FollerUnited Kingdom2026-05-18Rousseaux, Michael Esq UNQUALIFIED83Amy Elsner
1010Ricardo GauchoGermany2026-04-26Chemel, James L Cpa NEGOTIATION92Stephen Shaw
1011Izzy GarufiAustralia2026-04-25Dorl, James J Esq PROPOSAL61Bernardo Dominic
1012Aruna FigeroaFrance2026-04-26Rousseaux, Michael Esq NEGOTIATION7Bernardo Dominic
1013Arvin AlbaresAustralia2026-05-03Buckley Miller Wright NEW30Asiya Javayant
1014Jefferson SchemmerIndia2026-05-19Feiner Bros PROPOSAL65Amy Elsner
1015Tony FollerRussia2026-05-04Feltz Printing Service QUALIFIED29Xuxue Feng
1016Aika InouyeUnited Kingdom2026-04-25Buckley Miller Wright NEW59Onyama Limba
1017Claire TollnerIndia2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED25Elwin Sharvill
1018Jeanfrancois VenereBrazil2026-05-11Feltz Printing Service QUALIFIED47Xuxue Feng
1019Misaki RoysterAustralia2026-05-22Rangoni Of Florence NEW4Amy Elsner
1020Tony FollerSpain2026-05-05Dorl, James J Esq NEW68Anna Fali
1021Murillo MaletGermany2026-05-22Buckley Miller Wright QUALIFIED54Bernardo Dominic
1022Misaki RoysterCanada2026-04-28Benton, John B Jr UNQUALIFIED39Elwin Sharvill
1023Julie StensethSpain2026-05-18Rousseaux, Michael Esq PROPOSAL59Amy Elsner
1024Nicolas IturbideAustralia2026-05-11Printing Dimensions PROPOSAL66Elwin Sharvill
1025Clifford RimIndia2026-05-16Dorl, James J Esq RENEWAL2Anna Fali
1026Chavez BriddickCanada2026-05-10Rousseaux, Michael Esq QUALIFIED1Bernardo Dominic
1027Ricardo GauchoAustralia2026-05-05Feiner Bros NEW57Xuxue Feng
1028Darci PoquetteFrance2026-05-09King, Christopher A Esq PROPOSAL36Amy Elsner
1029Chavez BriddickIndia2026-05-16Truhlar And Truhlar Attys NEGOTIATION18Onyama Limba
1030Jennifer AmigonJapan2026-05-16Truhlar And Truhlar Attys NEW57Onyama Limba
1031Isabel BowleyUnited Kingdom2026-05-24Feltz Printing Service PROPOSAL9Xuxue Feng
1032Octavia MaletUnited Kingdom2026-05-18Chemel, James L Cpa PROPOSAL87Asiya Javayant
1033Alejandro PerinAustralia2026-05-21Dorl, James J Esq QUALIFIED97Elwin Sharvill
1034Ivar PaprockiFrance2026-05-21Feltz Printing Service NEGOTIATION43Xuxue Feng
1035David DarakjyJapan2026-05-15Rousseaux, Michael Esq RENEWAL92Bernardo Dominic
1036Rodrigues CampainIndia2026-05-06Feltz Printing Service RENEWAL21Elwin Sharvill
1037Leja CaldareraUnited Kingdom2026-05-20Benton, John B Jr QUALIFIED62Xuxue Feng
1038Faith GillianIndia2026-04-29Dorl, James J Esq NEGOTIATION12Elwin Sharvill
1039Jefferson SchemmerIndia2026-05-12Morlong Associates NEW32Stephen Shaw
1040Emily WhobreyFrance2026-05-20Chemel, James L Cpa NEW77Stephen Shaw
1041Jeanfrancois VenereCanada2026-04-26Commercial Press NEGOTIATION32Asiya Javayant
1042Greenwood BologniaBrazil2026-05-24Benton, John B Jr PROPOSAL16Stephen Shaw
1043James ButtCanada2026-04-27Chapman, Ross E Esq QUALIFIED60Bernardo Dominic
1044Maria MarrierCanada2026-05-10Commercial Press RENEWAL30Bernardo Dominic
1045Claire TollnerRussia2026-04-26Printing Dimensions PROPOSAL90Onyama Limba
1046Munro FerenczItaly2026-05-14Feiner Bros PROPOSAL0Asiya Javayant
1047Stacey MacleadGermany2026-05-06Truhlar And Truhlar Attys PROPOSAL69Anna Fali
1048Rodrigues CampainUnited Kingdom2026-05-16Buckley Miller Wright QUALIFIED10Stephen Shaw
1049Leja CaldareraItaly2026-05-09Rousseaux, Michael Esq UNQUALIFIED82Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
James ButtSpainElwin Sharvill NEGOTIATION
Jones VocelkaAustraliaXuxue Feng PROPOSAL
Jeanfrancois VenereJapanIvan Magalhaes PROPOSAL
Costa DilliardBrazilIvan Magalhaes QUALIFIED
Rodrigues CampainIndiaStephen Shaw NEGOTIATION
Isabel BowleyUnited KingdomIoni Bowcher NEGOTIATION
Adams MorascaRussiaAnna Fali RENEWAL
Adams MorascaGermanyXuxue Feng UNQUALIFIED
Izzy GarufiGermanyAsiya Javayant PROPOSAL
Faith GillianFranceBernardo Dominic RENEWAL
Jeanfrancois VenereGermanyBernardo Dominic RENEWAL
Julie StensethIndiaAmy Elsner UNQUALIFIED
Kaitlin OstroskyBrazilAnna Fali RENEWAL
Misaki RoysterUnited KingdomAmy Elsner PROPOSAL
Stacey MacleadUnited KingdomIvan Magalhaes NEW
Maisha RulapaughAustraliaXuxue Feng PROPOSAL
Jones VocelkaItalyIoni Bowcher UNQUALIFIED
Adams MorascaCanadaElwin Sharvill UNQUALIFIED
Johnson SergiRussiaXuxue Feng RENEWAL
Adams MorascaArgentinaAsiya Javayant UNQUALIFIED
Stacey MacleadRussiaAmy Elsner NEGOTIATION
Leja CaldareraIndiaAnna Fali RENEWAL
Costa DilliardRussiaAnna Fali UNQUALIFIED
Murillo MaletGermanyAmy Elsner UNQUALIFIED
Kaitlin OstroskyUnited KingdomElwin Sharvill QUALIFIED
Juan WieserFranceStephen Shaw RENEWAL
Chavez BriddickUnited KingdomAmy Elsner UNQUALIFIED
Clifford RimItalyAmy Elsner QUALIFIED
Francesco ShinkoGermanyXuxue Feng NEGOTIATION
Tony FollerCanadaIoni Bowcher NEGOTIATION
Alejandro PerinFranceAsiya Javayant PROPOSAL
Johnson SergiSpainElwin Sharvill NEW
Faith GillianCanadaAnna Fali RENEWAL
Chavez BriddickIndiaElwin Sharvill PROPOSAL
Aruna FigeroaFranceIoni Bowcher NEGOTIATION
James ButtAustraliaElwin Sharvill NEGOTIATION
Johnson SergiRussiaAsiya Javayant RENEWAL
Darci PoquetteRussiaAmy Elsner UNQUALIFIED
Smith GlickFranceIoni Bowcher NEGOTIATION
Greenwood BologniaJapanIoni Bowcher UNQUALIFIED
Greenwood BologniaIndiaAnna Fali UNQUALIFIED
Maria MarrierGermanyAnna Fali RENEWAL
Ricardo GauchoUnited KingdomAnna Fali NEGOTIATION
Costa DilliardFranceStephen Shaw NEGOTIATION
Leon OldroydCanadaElwin Sharvill RENEWAL
Deepesh ChuiGermanyBernardo Dominic PROPOSAL
James ButtSpainElwin Sharvill PROPOSAL
Silvio SlusarskiIndiaAnna Fali RENEWAL
Ricardo GauchoFranceIvan Magalhaes NEW
Clifford RimUnited KingdomXuxue Feng RENEWAL
Frozen Columns
Name
Silvio Slusarski
Munro Ferencz
Isabel Bowley
Octavia Malet
Nicolas Iturbide
Cody Saylors
Ashley Doe
Jeanfrancois Venere
Octavia Malet
Maisha Rulapaugh
Arvin Albares
Ivar Paprocki
Ashley Doe
Izzy Garufi
Ricardo Gaucho
Aika Inouye
Emily Whobrey
Clifford Rim
Costa Dilliard
Morrow Ruta
Izzy Garufi
James Butt
Johnson Sergi
Mujtaba Nicka
Aditya Kusko
Darci Poquette
Jeanfrancois Venere
Leja Caldarera
Clifford Rim
Francesco Shinko
Chavez Briddick
Greenwood Bolognia
Izzy Garufi
Maisha Rulapaugh
Francesco Shinko
Aruna Figeroa
David Darakjy
Ashley Doe
Antonio Caudy
Murillo Malet
Julie Stenseth
David Darakjy
Isabel Bowley
Claire Tollner
Arvin Albares
Silvio Slusarski
Jones Vocelka
Leon Oldroyd
Octavia Malet
Claire Tollner
IdCountryDate
1000Italy2026-05-17
1001Australia2026-05-16
1002Germany2026-05-23
1003Japan2026-05-21
1004Japan2026-04-29
1005Canada2026-05-06
1006Australia2026-05-19
1007Argentina2026-05-11
1008Australia2026-05-22
1009France2026-05-22
1010Canada2026-05-20
1011Argentina2026-05-07
1012United Kingdom2026-05-14
1013Argentina2026-05-01
1014United Kingdom2026-04-26
1015Spain2026-05-08
1016Russia2026-05-08
1017Japan2026-05-18
1018Brazil2026-05-11
1019Russia2026-04-25
1020Canada2026-05-21
1021Russia2026-05-11
1022Argentina2026-05-15
1023United Kingdom2026-05-13
1024France2026-05-15
1025Italy2026-05-13
1026Japan2026-05-09
1027Russia2026-05-12
1028Argentina2026-05-24
1029Russia2026-05-17
1030Brazil2026-05-22
1031Brazil2026-05-18
1032Italy2026-04-28
1033Argentina2026-05-05
1034Argentina2026-05-24
1035Russia2026-05-08
1036Russia2026-05-16
1037Germany2026-05-08
1038Russia2026-05-05
1039United Kingdom2026-05-01
1040Spain2026-05-21
1041Argentina2026-05-11
1042Canada2026-05-21
1043Spain2026-05-15
1044Brazil2026-05-02
1045United Kingdom2026-05-20
1046India2026-05-03
1047Germany2026-05-13
1048France2026-05-09
1049India2026-05-10

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000Australia2026-05-14
Ricardo Gaucho1001Canada2026-05-12
Aditya Kusko1002United Kingdom2026-05-22
Tony Foller1003Argentina2026-05-16
Murillo Malet1004Canada2026-05-21
Mayumi Kolmetz1005Italy2026-05-06
Salvatore Stockham1006India2026-05-05
Jeanfrancois Venere1007Argentina2026-04-26
Jeanfrancois Venere1008United Kingdom2026-05-09
Izzy Garufi1009India2026-05-09
Aruna Figeroa1010Japan2026-05-19
Nicolas Iturbide1011Russia2026-05-14
Antonio Caudy1012Argentina2026-05-06
Greenwood Bolognia1013Russia2026-05-14
Aditya Kusko1014India2026-04-25
Greenwood Bolognia1015India2026-04-28
Ivar Paprocki1016India2026-04-25
Wickens Nestle1017Germany2026-05-17
Aika Inouye1018France2026-05-14
Chavez Briddick1019France2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterSpainOnyama Limba RENEWAL
Murillo MaletRussiaStephen Shaw RENEWAL
Arvin AlbaresJapanStephen Shaw RENEWAL
Aika InouyeIndiaXuxue Feng QUALIFIED
Juan WieserItalyAnna Fali QUALIFIED
Claire TollnerGermanyAmy Elsner RENEWAL
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Emily WhobreyCanadaAmy Elsner PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner NEGOTIATION
Munro FerenczRussiaOnyama Limba NEW
Antonio CaudyGermanyXuxue Feng PROPOSAL
Cody SaylorsJapanStephen Shaw NEW
Jeanfrancois VenereUnited KingdomAnna Fali QUALIFIED
Faith GillianArgentinaIvan Magalhaes RENEWAL
Cody SaylorsRussiaBernardo Dominic RENEWAL
Ricardo GauchoCanadaElwin Sharvill QUALIFIED
Ashley DoeFranceAnna Fali NEW
Misaki RoysterCanadaOnyama Limba PROPOSAL
Adams MorascaJapanOnyama Limba QUALIFIED
Leja CaldareraCanadaXuxue Feng QUALIFIED
Cody SaylorsUnited KingdomXuxue Feng NEGOTIATION
Leon OldroydFranceElwin Sharvill UNQUALIFIED
Silvio SlusarskiArgentinaXuxue Feng NEW
Mayumi KolmetzGermanyStephen Shaw NEGOTIATION
Nicolas IturbideFranceStephen Shaw QUALIFIED
Smith GlickSpainIvan Magalhaes PROPOSAL
Adams MorascaSpainIvan Magalhaes NEGOTIATION
Julie StensethIndiaAmy Elsner PROPOSAL
Faith GillianCanadaStephen Shaw NEGOTIATION
Morrow RutaIndiaAmy Elsner RENEWAL
Morrow RutaAustraliaAnna Fali NEW
Jennifer AmigonGermanyOnyama Limba UNQUALIFIED
Salvatore StockhamCanadaAsiya Javayant UNQUALIFIED
Rodrigues CampainGermanyBernardo Dominic NEGOTIATION
Nicolas IturbideUnited KingdomIoni Bowcher RENEWAL
Chavez BriddickIndiaStephen Shaw NEGOTIATION
Clifford RimCanadaAnna Fali NEW
Emily WhobreyUnited KingdomAnna Fali QUALIFIED
Leja CaldareraBrazilBernardo Dominic QUALIFIED
Darci PoquetteSpainIvan Magalhaes 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>