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
Ivar PaprockiSpainIoni Bowcher NEW
Maisha RulapaughArgentinaXuxue Feng RENEWAL
Julie StensethSpainElwin Sharvill PROPOSAL
Julie StensethJapanAnna Fali PROPOSAL
James ButtFranceAsiya Javayant UNQUALIFIED
Wickens NestleGermanyBernardo Dominic QUALIFIED
Isabel BowleyBrazilBernardo Dominic NEGOTIATION
James ButtArgentinaBernardo Dominic NEGOTIATION
Juan WieserItalyXuxue Feng RENEWAL
Morrow RutaUnited KingdomOnyama Limba NEW
Salvatore StockhamRussiaStephen Shaw QUALIFIED
Sinclair WaycottSpainElwin Sharvill UNQUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic RENEWAL
Salvatore StockhamGermanyIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyIvan Magalhaes QUALIFIED
Salvatore StockhamSpainIvan Magalhaes RENEWAL
Johnson SergiJapanElwin Sharvill QUALIFIED
Aruna FigeroaBrazilStephen Shaw NEW
Arvin AlbaresFranceIvan Magalhaes QUALIFIED
Francesco ShinkoCanadaElwin Sharvill PROPOSAL
Chavez BriddickSpainElwin Sharvill NEW
Chavez BriddickCanadaXuxue Feng PROPOSAL
Salvatore StockhamItalyStephen Shaw PROPOSAL
Stacey MacleadSpainAsiya Javayant RENEWAL
Jeanfrancois VenereFranceAnna Fali NEW
Silvio SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Darci PoquetteUnited KingdomOnyama Limba PROPOSAL
Aditya KuskoFranceOnyama Limba QUALIFIED
Jennifer AmigonItalyAsiya Javayant PROPOSAL
Costa DilliardSpainIvan Magalhaes PROPOSAL
Kaitlin OstroskyAustraliaBernardo Dominic NEW
David DarakjyCanadaStephen Shaw NEGOTIATION
Ivar PaprockiCanadaAnna Fali UNQUALIFIED
Claire TollnerJapanIoni Bowcher UNQUALIFIED
Leja CaldareraAustraliaStephen Shaw PROPOSAL
Aditya KuskoFranceAnna Fali NEGOTIATION
Salvatore StockhamArgentinaAmy Elsner NEGOTIATION
Ivar PaprockiGermanyAnna Fali NEW
Clifford RimIndiaXuxue Feng RENEWAL
Mujtaba NickaSpainAmy Elsner PROPOSAL
Rodrigues CampainJapanXuxue Feng UNQUALIFIED
Aika InouyeJapanOnyama Limba NEW
Clifford RimItalyElwin Sharvill PROPOSAL
Aruna FigeroaBrazilAmy Elsner NEW
Greenwood BologniaAustraliaAsiya Javayant PROPOSAL
Stacey MacleadSpainAnna Fali QUALIFIED
Leon OldroydItalyElwin Sharvill UNQUALIFIED
Emily WhobreyAustraliaOnyama Limba NEGOTIATION
Aditya KuskoItalyOnyama Limba RENEWAL
Adams MorascaArgentinaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo MaletIndiaAnna Fali RENEWAL
Clifford RimRussiaXuxue Feng QUALIFIED
Julie StensethSpainAmy Elsner RENEWAL
Juan WieserRussiaStephen Shaw NEW
Leon OldroydIndiaXuxue Feng NEW
Murillo MaletRussiaXuxue Feng RENEWAL
Morrow RutaUnited KingdomAnna Fali QUALIFIED
Maria MarrierGermanyAnna Fali PROPOSAL
James ButtFranceIoni Bowcher UNQUALIFIED
Clifford RimGermanyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickIndia2026-05-05Rangoni Of Florence PROPOSAL54Stephen Shaw
1001Sinclair WaycottGermany2026-04-29Chapman, Ross E Esq NEGOTIATION53Ivan Magalhaes
1002Isabel BowleyItaly2026-04-23King, Christopher A Esq RENEWAL17Elwin Sharvill
1003Ricardo GauchoBrazil2026-04-25Rousseaux, Michael Esq QUALIFIED90Asiya Javayant
1004Ivar PaprockiAustralia2026-04-24Benton, John B Jr UNQUALIFIED14Amy Elsner
1005Morrow RutaArgentina2026-04-17Chapman, Ross E Esq RENEWAL66Xuxue Feng
1006Mayumi KolmetzItaly2026-04-21Buckley Miller Wright RENEWAL37Ioni Bowcher
1007Leja CaldareraUnited Kingdom2026-04-15Feltz Printing Service NEGOTIATION68Onyama Limba
1008Leon OldroydFrance2026-05-01Dorl, James J Esq PROPOSAL8Bernardo Dominic
1009Octavia MaletCanada2026-04-29Dorl, James J Esq PROPOSAL18Elwin Sharvill
1010Ashley DoeSpain2026-04-19Dorl, James J Esq NEGOTIATION63Asiya Javayant
1011Nicolas IturbideIndia2026-04-15Morlong Associates QUALIFIED86Asiya Javayant
1012Ashley DoeIndia2026-04-30Chanay, Jeffrey A Esq NEGOTIATION90Stephen Shaw
1013Izzy GarufiAustralia2026-05-06Rousseaux, Michael Esq QUALIFIED77Onyama Limba
1014Maisha RulapaughCanada2026-05-10Truhlar And Truhlar Attys NEW57Ivan Magalhaes
1015Cody SaylorsItaly2026-05-12Dorl, James J Esq RENEWAL94Ivan Magalhaes
1016Octavia MaletGermany2026-04-26Chapman, Ross E Esq NEGOTIATION81Ioni Bowcher
1017Alejandro PerinAustralia2026-05-02Feiner Bros NEGOTIATION11Anna Fali
1018Smith GlickRussia2026-04-16Feiner Bros UNQUALIFIED42Elwin Sharvill
1019Antonio CaudyItaly2026-05-08Buckley Miller Wright NEGOTIATION38Xuxue Feng
1020Jones VocelkaUnited Kingdom2026-04-16Chapman, Ross E Esq NEGOTIATION73Amy Elsner
1021Rodrigues CampainSpain2026-05-08Morlong Associates PROPOSAL91Asiya Javayant
1022Deepesh ChuiFrance2026-05-08Feltz Printing Service UNQUALIFIED74Asiya Javayant
1023Deepesh ChuiUnited Kingdom2026-04-17King, Christopher A Esq NEGOTIATION84Amy Elsner
1024Maria MarrierFrance2026-04-26Commercial Press PROPOSAL77Ivan Magalhaes
1025Wickens NestleUnited Kingdom2026-05-05Commercial Press PROPOSAL82Asiya Javayant
1026Julie StensethIndia2026-04-15Rangoni Of Florence NEW80Amy Elsner
1027Salvatore StockhamSpain2026-05-08Feiner Bros NEW25Stephen Shaw
1028Munro FerenczItaly2026-04-17Feltz Printing Service QUALIFIED18Ivan Magalhaes
1029Maisha RulapaughSpain2026-05-14King, Christopher A Esq NEGOTIATION22Amy Elsner
1030Julie StensethArgentina2026-05-01Benton, John B Jr QUALIFIED95Ivan Magalhaes
1031Alejandro PerinRussia2026-05-07Morlong Associates UNQUALIFIED7Asiya Javayant
1032Kaitlin OstroskyBrazil2026-04-16Feiner Bros NEW99Stephen Shaw
1033Stacey MacleadArgentina2026-04-23Commercial Press NEGOTIATION66Xuxue Feng
1034Faith GillianGermany2026-05-10Printing Dimensions NEGOTIATION57Ivan Magalhaes
1035David DarakjyCanada2026-05-06Morlong Associates PROPOSAL56Anna Fali
1036Adams MorascaFrance2026-05-09Benton, John B Jr PROPOSAL47Bernardo Dominic
1037Octavia MaletItaly2026-04-15Chanay, Jeffrey A Esq RENEWAL63Bernardo Dominic
1038Claire TollnerCanada2026-05-11Rousseaux, Michael Esq QUALIFIED90Ioni Bowcher
1039Tony FollerArgentina2026-05-10Feltz Printing Service NEGOTIATION44Xuxue Feng
1040Mujtaba NickaAustralia2026-05-07King, Christopher A Esq UNQUALIFIED25Asiya Javayant
1041Jeanfrancois VenereAustralia2026-04-23Truhlar And Truhlar Attys PROPOSAL29Onyama Limba
1042Tony FollerCanada2026-05-09Benton, John B Jr NEGOTIATION13Ioni Bowcher
1043Wickens NestleFrance2026-05-08King, Christopher A Esq NEW75Amy Elsner
1044Deepesh ChuiIndia2026-05-08Printing Dimensions NEGOTIATION38Elwin Sharvill
1045Kaitlin OstroskyIndia2026-04-18Chanay, Jeffrey A Esq RENEWAL90Anna Fali
1046Silvio SlusarskiIndia2026-05-10Buckley Miller Wright RENEWAL8Amy Elsner
1047Aika InouyeFrance2026-05-04Buckley Miller Wright NEW64Amy Elsner
1048Maisha RulapaughRussia2026-05-04Feiner Bros PROPOSAL95Anna Fali
1049Octavia MaletArgentina2026-05-09Buckley Miller Wright NEW26Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerAustraliaBernardo Dominic RENEWAL
Wickens NestleUnited KingdomAsiya Javayant QUALIFIED
Maria MarrierIndiaIoni Bowcher UNQUALIFIED
Ricardo GauchoArgentinaStephen Shaw RENEWAL
Smith GlickBrazilAsiya Javayant RENEWAL
Clifford RimAustraliaIoni Bowcher NEGOTIATION
Kaitlin OstroskyItalyOnyama Limba QUALIFIED
Alejandro PerinBrazilStephen Shaw PROPOSAL
Johnson SergiArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyJapanIoni Bowcher NEW
Ivar PaprockiRussiaIvan Magalhaes PROPOSAL
Ashley DoeCanadaXuxue Feng QUALIFIED
James ButtAustraliaElwin Sharvill NEW
David DarakjyFranceXuxue Feng RENEWAL
Darci PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Cody SaylorsGermanyXuxue Feng UNQUALIFIED
Alejandro PerinIndiaBernardo Dominic NEW
Greenwood BologniaCanadaStephen Shaw RENEWAL
Murillo MaletArgentinaOnyama Limba UNQUALIFIED
Mayumi KolmetzIndiaBernardo Dominic NEW
Silvio SlusarskiAustraliaElwin Sharvill NEGOTIATION
Rodrigues CampainAustraliaAsiya Javayant NEW
Stacey MacleadUnited KingdomOnyama Limba UNQUALIFIED
Juan WieserAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereIndiaOnyama Limba QUALIFIED
Arvin AlbaresFranceXuxue Feng PROPOSAL
Sinclair WaycottArgentinaOnyama Limba RENEWAL
Mujtaba NickaBrazilAmy Elsner RENEWAL
Francesco ShinkoAustraliaBernardo Dominic PROPOSAL
Arvin AlbaresArgentinaBernardo Dominic UNQUALIFIED
Sinclair WaycottItalyBernardo Dominic UNQUALIFIED
Julie StensethAustraliaStephen Shaw RENEWAL
Jefferson SchemmerJapanAnna Fali PROPOSAL
Jennifer AmigonUnited KingdomAsiya Javayant NEGOTIATION
Maisha RulapaughSpainXuxue Feng RENEWAL
Murillo MaletAustraliaElwin Sharvill NEW
Sinclair WaycottBrazilAnna Fali NEW
Ivar PaprockiUnited KingdomAmy Elsner PROPOSAL
Aika InouyeSpainXuxue Feng QUALIFIED
Clifford RimBrazilAnna Fali UNQUALIFIED
Murillo MaletIndiaIoni Bowcher NEW
Clifford RimItalyElwin Sharvill RENEWAL
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Mujtaba NickaCanadaIvan Magalhaes NEW
Ricardo GauchoArgentinaAsiya Javayant NEW
Mujtaba NickaAustraliaBernardo Dominic RENEWAL
Salvatore StockhamAustraliaAsiya Javayant NEGOTIATION
Faith GillianJapanIvan Magalhaes RENEWAL
Salvatore StockhamIndiaXuxue Feng NEGOTIATION
Murillo MaletFranceIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Arvin Albares
Chavez Briddick
Mujtaba Nicka
Aika Inouye
Nicolas Iturbide
Aika Inouye
Jennifer Amigon
Mayumi Kolmetz
Morrow Ruta
Chavez Briddick
Adams Morasca
Ashley Doe
Claire Tollner
Wickens Nestle
Ivar Paprocki
Clifford Rim
Izzy Garufi
Adams Morasca
Ivar Paprocki
Murillo Malet
Ricardo Gaucho
Mujtaba Nicka
Johnson Sergi
Kadeem Flosi
Jeanfrancois Venere
Darci Poquette
Francesco Shinko
Francesco Shinko
Claire Tollner
Jennifer Amigon
Chavez Briddick
Julie Stenseth
Greenwood Bolognia
Kadeem Flosi
Claire Tollner
Octavia Malet
Jennifer Amigon
Tony Foller
Isabel Bowley
Juan Wieser
Aditya Kusko
Chavez Briddick
Faith Gillian
Nicolas Iturbide
Jones Vocelka
Arvin Albares
Misaki Royster
Faith Gillian
Silvio Slusarski
Francesco Shinko
IdCountryDate
1000France2026-04-19
1001Italy2026-04-16
1002Japan2026-04-30
1003Spain2026-05-11
1004Canada2026-05-02
1005Germany2026-05-09
1006Italy2026-04-16
1007United Kingdom2026-05-03
1008Australia2026-05-13
1009Italy2026-04-17
1010Japan2026-05-05
1011Argentina2026-05-09
1012Australia2026-05-12
1013France2026-05-14
1014Italy2026-04-23
1015Russia2026-04-25
1016Japan2026-05-06
1017Japan2026-05-11
1018Canada2026-05-08
1019India2026-05-06
1020Australia2026-05-11
1021France2026-05-09
1022Russia2026-05-10
1023United Kingdom2026-05-08
1024Russia2026-04-29
1025Australia2026-04-22
1026France2026-05-12
1027Japan2026-04-23
1028Canada2026-04-28
1029Russia2026-04-27
1030Brazil2026-04-21
1031Australia2026-05-07
1032Spain2026-04-19
1033Germany2026-04-22
1034Japan2026-05-08
1035India2026-05-08
1036India2026-04-29
1037Japan2026-05-13
1038Australia2026-05-01
1039Spain2026-04-24
1040Japan2026-05-11
1041India2026-04-21
1042Russia2026-04-15
1043Italy2026-05-12
1044Germany2026-04-29
1045Russia2026-05-07
1046Argentina2026-05-12
1047Germany2026-04-15
1048Russia2026-04-16
1049Italy2026-04-15

On-Demand Data

NameIdCountryDate
Clifford Rim1000United Kingdom2026-05-01
Stacey Maclead1001Argentina2026-04-19
Jeanfrancois Venere1002Japan2026-05-14
Maria Marrier1003India2026-04-19
Smith Glick1004Brazil2026-05-14
Faith Gillian1005Argentina2026-05-02
Arvin Albares1006Germany2026-05-01
Costa Dilliard1007Spain2026-04-16
Maria Marrier1008Italy2026-05-13
Stacey Maclead1009Australia2026-04-28
Mayumi Kolmetz1010Japan2026-04-18
Johnson Sergi1011Spain2026-04-21
Aika Inouye1012India2026-05-03
Izzy Garufi1013Australia2026-04-20
Johnson Sergi1014Japan2026-05-06
Ivar Paprocki1015Australia2026-04-30
Adams Morasca1016Russia2026-04-25
Francesco Shinko1017Spain2026-05-04
Julie Stenseth1018Argentina2026-04-15
Kadeem Flosi1019Australia2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
Misaki RoysterUnited KingdomBernardo Dominic NEGOTIATION
Maria MarrierCanadaAsiya Javayant PROPOSAL
Adams MorascaJapanXuxue Feng UNQUALIFIED
Isabel BowleyJapanElwin Sharvill QUALIFIED
Sinclair WaycottCanadaAnna Fali PROPOSAL
Deepesh ChuiItalyAsiya Javayant RENEWAL
Smith GlickGermanyIvan Magalhaes NEW
Octavia MaletArgentinaBernardo Dominic UNQUALIFIED
Jones VocelkaFranceAmy Elsner QUALIFIED
Faith GillianFranceBernardo Dominic QUALIFIED
Emily WhobreyCanadaIvan Magalhaes QUALIFIED
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Emily WhobreyBrazilAnna Fali NEW
Octavia MaletUnited KingdomAnna Fali RENEWAL
Costa DilliardUnited KingdomXuxue Feng NEGOTIATION
Darci PoquetteCanadaAmy Elsner UNQUALIFIED
Antonio CaudyCanadaBernardo Dominic NEGOTIATION
Sinclair WaycottItalyStephen Shaw QUALIFIED
Aruna FigeroaRussiaAsiya Javayant UNQUALIFIED
Jefferson SchemmerRussiaElwin Sharvill PROPOSAL
Mujtaba NickaItalyAmy Elsner NEGOTIATION
Julie StensethRussiaIvan Magalhaes RENEWAL
Ricardo GauchoIndiaAsiya Javayant RENEWAL
Claire TollnerAustraliaStephen Shaw UNQUALIFIED
Greenwood BologniaSpainBernardo Dominic QUALIFIED
Isabel BowleyRussiaOnyama Limba NEW
Munro FerenczAustraliaAnna Fali NEW
Sinclair WaycottGermanyAmy Elsner RENEWAL
Clifford RimRussiaXuxue Feng PROPOSAL
Kadeem FlosiCanadaXuxue Feng NEW
Wickens NestleAustraliaIvan Magalhaes RENEWAL
Rodrigues CampainIndiaBernardo Dominic NEGOTIATION
Maisha RulapaughCanadaAnna Fali UNQUALIFIED
Aruna FigeroaRussiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresSpainAnna Fali PROPOSAL
Maria MarrierGermanyElwin Sharvill UNQUALIFIED
Costa DilliardRussiaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaIvan Magalhaes 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>