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
Greenwood BologniaAustraliaAsiya Javayant NEGOTIATION
Munro FerenczRussiaBernardo Dominic NEGOTIATION
Clifford RimGermanyElwin Sharvill RENEWAL
Jefferson SchemmerSpainIoni Bowcher NEW
Maria MarrierItalyAnna Fali PROPOSAL
Cody SaylorsArgentinaAnna Fali QUALIFIED
Costa DilliardItalyIvan Magalhaes UNQUALIFIED
Adams MorascaUnited KingdomAmy Elsner UNQUALIFIED
Maria MarrierRussiaStephen Shaw RENEWAL
Kadeem FlosiItalyOnyama Limba PROPOSAL
Costa DilliardRussiaIoni Bowcher NEW
Ricardo GauchoIndiaIoni Bowcher UNQUALIFIED
Chavez BriddickSpainElwin Sharvill UNQUALIFIED
Darci PoquetteFranceOnyama Limba RENEWAL
Darci PoquetteCanadaXuxue Feng RENEWAL
Claire TollnerSpainAnna Fali NEW
Izzy GarufiFranceStephen Shaw UNQUALIFIED
Emily WhobreyAustraliaOnyama Limba PROPOSAL
Ricardo GauchoFranceBernardo Dominic RENEWAL
Isabel BowleyJapanElwin Sharvill UNQUALIFIED
Alejandro PerinIndiaAsiya Javayant NEW
Tony FollerCanadaBernardo Dominic RENEWAL
Ashley DoeUnited KingdomAmy Elsner RENEWAL
Adams MorascaBrazilIoni Bowcher NEW
Emily WhobreyBrazilXuxue Feng RENEWAL
Cody SaylorsBrazilXuxue Feng PROPOSAL
Francesco ShinkoRussiaAnna Fali QUALIFIED
Nicolas IturbideFranceStephen Shaw UNQUALIFIED
Darci PoquetteFranceBernardo Dominic UNQUALIFIED
Tony FollerItalyElwin Sharvill UNQUALIFIED
Jefferson SchemmerSpainAnna Fali UNQUALIFIED
Clifford RimSpainIvan Magalhaes RENEWAL
Salvatore StockhamIndiaIvan Magalhaes NEW
Emily WhobreyBrazilOnyama Limba NEW
Ashley DoeArgentinaStephen Shaw NEW
Jeanfrancois VenereRussiaBernardo Dominic RENEWAL
Morrow RutaBrazilAnna Fali PROPOSAL
Mayumi KolmetzSpainElwin Sharvill PROPOSAL
Ivar PaprockiCanadaIvan Magalhaes UNQUALIFIED
Sinclair WaycottJapanOnyama Limba RENEWAL
Rodrigues CampainBrazilXuxue Feng QUALIFIED
Smith GlickIndiaStephen Shaw PROPOSAL
Izzy GarufiIndiaStephen Shaw PROPOSAL
Faith GillianBrazilOnyama Limba NEGOTIATION
Greenwood BologniaSpainOnyama Limba NEGOTIATION
Maria MarrierSpainIvan Magalhaes PROPOSAL
Jennifer AmigonRussiaIoni Bowcher PROPOSAL
Izzy GarufiItalyXuxue Feng PROPOSAL
Kaitlin OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Aika InouyeSpainIoni Bowcher PROPOSAL
Ivar PaprockiArgentinaIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyIvan Magalhaes NEW
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Stacey MacleadCanadaStephen Shaw UNQUALIFIED
Aditya KuskoFranceOnyama Limba QUALIFIED
Tony FollerItalyAnna Fali UNQUALIFIED
Smith GlickRussiaIoni Bowcher PROPOSAL
Ivar PaprockiBrazilOnyama Limba RENEWAL
Arvin AlbaresGermanyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinUnited Kingdom2026-05-21Chapman, Ross E Esq PROPOSAL95Onyama Limba
1001Morrow RutaFrance2026-05-15Dorl, James J Esq RENEWAL77Anna Fali
1002Jefferson SchemmerItaly2026-04-30Feiner Bros NEGOTIATION92Ioni Bowcher
1003Isabel BowleyGermany2026-05-07Chapman, Ross E Esq QUALIFIED83Ivan Magalhaes
1004Chavez BriddickFrance2026-05-06Truhlar And Truhlar Attys QUALIFIED20Anna Fali
1005Misaki RoysterSpain2026-04-29King, Christopher A Esq PROPOSAL88Bernardo Dominic
1006Claire TollnerUnited Kingdom2026-05-08Chapman, Ross E Esq QUALIFIED66Stephen Shaw
1007Antonio CaudyFrance2026-05-06King, Christopher A Esq QUALIFIED26Xuxue Feng
1008Sinclair WaycottArgentina2026-05-26Printing Dimensions NEGOTIATION47Bernardo Dominic
1009Costa DilliardFrance2026-05-21Printing Dimensions NEGOTIATION20Ivan Magalhaes
1010Isabel BowleyCanada2026-04-29Chapman, Ross E Esq NEW95Bernardo Dominic
1011Smith GlickArgentina2026-05-07Chapman, Ross E Esq NEW6Stephen Shaw
1012Chavez BriddickSpain2026-05-24Truhlar And Truhlar Attys UNQUALIFIED63Stephen Shaw
1013Maria MarrierUnited Kingdom2026-05-02Chanay, Jeffrey A Esq NEW37Onyama Limba
1014Aika InouyeAustralia2026-05-02Benton, John B Jr QUALIFIED94Amy Elsner
1015Adams MorascaUnited Kingdom2026-05-24Benton, John B Jr NEGOTIATION95Stephen Shaw
1016Jeanfrancois VenereAustralia2026-05-06Chanay, Jeffrey A Esq UNQUALIFIED5Elwin Sharvill
1017Jeanfrancois VenereJapan2026-05-16Feiner Bros QUALIFIED12Asiya Javayant
1018Adams MorascaArgentina2026-05-07Buckley Miller Wright NEGOTIATION74Onyama Limba
1019Mayumi KolmetzRussia2026-05-21King, Christopher A Esq NEGOTIATION8Onyama Limba
1020Claire TollnerArgentina2026-05-11Dorl, James J Esq NEW76Elwin Sharvill
1021Salvatore StockhamIndia2026-04-27Rousseaux, Michael Esq RENEWAL50Elwin Sharvill
1022Jennifer AmigonArgentina2026-05-15Printing Dimensions RENEWAL42Elwin Sharvill
1023Faith GillianJapan2026-05-09Feltz Printing Service UNQUALIFIED13Ivan Magalhaes
1024Johnson SergiRussia2026-05-07Buckley Miller Wright PROPOSAL30Onyama Limba
1025Sinclair WaycottRussia2026-05-15Feltz Printing Service QUALIFIED99Asiya Javayant
1026James ButtCanada2026-04-30Buckley Miller Wright NEW36Anna Fali
1027Jeanfrancois VenereRussia2026-05-07Rangoni Of Florence PROPOSAL40Elwin Sharvill
1028Julie StensethItaly2026-05-07Rangoni Of Florence QUALIFIED83Elwin Sharvill
1029Jeanfrancois VenereArgentina2026-05-14Chapman, Ross E Esq RENEWAL23Onyama Limba
1030Juan WieserItaly2026-05-23Rangoni Of Florence PROPOSAL6Bernardo Dominic
1031Tony FollerAustralia2026-05-12Buckley Miller Wright NEW41Stephen Shaw
1032Julie StensethRussia2026-05-19Feltz Printing Service PROPOSAL27Xuxue Feng
1033Juan WieserUnited Kingdom2026-05-11King, Christopher A Esq NEGOTIATION19Stephen Shaw
1034Aruna FigeroaArgentina2026-05-21Dorl, James J Esq RENEWAL24Ivan Magalhaes
1035Aditya KuskoRussia2026-05-11Rousseaux, Michael Esq NEW46Amy Elsner
1036Nicolas IturbideRussia2026-05-07Buckley Miller Wright NEGOTIATION73Stephen Shaw
1037Isabel BowleyUnited Kingdom2026-05-03Chapman, Ross E Esq PROPOSAL25Ioni Bowcher
1038Rodrigues CampainFrance2026-05-03Feiner Bros NEGOTIATION85Amy Elsner
1039James ButtGermany2026-05-17Commercial Press UNQUALIFIED76Stephen Shaw
1040Mayumi KolmetzJapan2026-05-14Chapman, Ross E Esq NEW21Anna Fali
1041Mayumi KolmetzSpain2026-05-23Dorl, James J Esq PROPOSAL70Elwin Sharvill
1042James ButtGermany2026-05-09Truhlar And Truhlar Attys PROPOSAL47Asiya Javayant
1043Costa DilliardIndia2026-05-03Dorl, James J Esq PROPOSAL36Amy Elsner
1044Morrow RutaItaly2026-04-30Dorl, James J Esq UNQUALIFIED72Asiya Javayant
1045Arvin AlbaresItaly2026-04-29Truhlar And Truhlar Attys NEGOTIATION98Stephen Shaw
1046Aika InouyeIndia2026-05-15Commercial Press PROPOSAL13Ioni Bowcher
1047Mujtaba NickaUnited Kingdom2026-05-15Feiner Bros QUALIFIED4Stephen Shaw
1048James ButtAustralia2026-05-10Feltz Printing Service RENEWAL24Onyama Limba
1049Murillo MaletGermany2026-05-18Rangoni Of Florence PROPOSAL95Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem FlosiRussiaXuxue Feng NEW
Smith GlickSpainOnyama Limba NEW
Emily WhobreyArgentinaStephen Shaw QUALIFIED
Ivar PaprockiAustraliaElwin Sharvill UNQUALIFIED
James ButtSpainStephen Shaw QUALIFIED
Johnson SergiAustraliaIoni Bowcher NEGOTIATION
Maisha RulapaughFranceXuxue Feng RENEWAL
Rodrigues CampainRussiaAnna Fali QUALIFIED
Leon OldroydJapanElwin Sharvill NEW
Aditya KuskoArgentinaIoni Bowcher RENEWAL
Darci PoquetteGermanyBernardo Dominic NEW
Tony FollerJapanAsiya Javayant PROPOSAL
Alejandro PerinBrazilAnna Fali NEGOTIATION
Sinclair WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba NickaArgentinaBernardo Dominic PROPOSAL
Francesco ShinkoArgentinaElwin Sharvill NEGOTIATION
Darci PoquetteCanadaElwin Sharvill RENEWAL
Adams MorascaGermanyIoni Bowcher NEGOTIATION
Chavez BriddickIndiaIoni Bowcher PROPOSAL
Wickens NestleCanadaIvan Magalhaes QUALIFIED
Morrow RutaArgentinaAnna Fali NEW
Jones VocelkaUnited KingdomIoni Bowcher QUALIFIED
Silvio SlusarskiArgentinaOnyama Limba NEW
Leon OldroydJapanOnyama Limba UNQUALIFIED
Alejandro PerinAustraliaStephen Shaw NEW
Adams MorascaFranceXuxue Feng UNQUALIFIED
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Isabel BowleyJapanIoni Bowcher PROPOSAL
Sinclair WaycottRussiaIvan Magalhaes PROPOSAL
Francesco ShinkoFranceAmy Elsner UNQUALIFIED
Sinclair WaycottArgentinaBernardo Dominic RENEWAL
Julie StensethBrazilIoni Bowcher RENEWAL
Jones VocelkaIndiaXuxue Feng PROPOSAL
Clifford RimUnited KingdomIvan Magalhaes RENEWAL
Chavez BriddickUnited KingdomXuxue Feng NEW
Julie StensethAustraliaAsiya Javayant UNQUALIFIED
David DarakjyJapanElwin Sharvill PROPOSAL
Adams MorascaItalyIvan Magalhaes NEW
Emily WhobreyIndiaOnyama Limba NEGOTIATION
Maisha RulapaughSpainStephen Shaw RENEWAL
Kadeem FlosiBrazilXuxue Feng UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic UNQUALIFIED
Nicolas IturbideSpainIoni Bowcher RENEWAL
Morrow RutaBrazilStephen Shaw PROPOSAL
Deepesh ChuiCanadaIoni Bowcher NEW
Salvatore StockhamAustraliaAmy Elsner PROPOSAL
James ButtAustraliaAmy Elsner NEGOTIATION
Aruna FigeroaRussiaIvan Magalhaes NEGOTIATION
Costa DilliardFranceAmy Elsner NEGOTIATION
Darci PoquetteGermanyXuxue Feng NEGOTIATION
Frozen Columns
Name
Tony Foller
Ivar Paprocki
James Butt
Ricardo Gaucho
Aditya Kusko
Ashley Doe
Francesco Shinko
James Butt
Izzy Garufi
Rodrigues Campain
Isabel Bowley
Emily Whobrey
Julie Stenseth
Stacey Maclead
Maria Marrier
Leon Oldroyd
Alejandro Perin
Deepesh Chui
Cody Saylors
Emily Whobrey
Cody Saylors
Arvin Albares
Murillo Malet
Aika Inouye
Misaki Royster
Izzy Garufi
James Butt
Misaki Royster
Faith Gillian
Isabel Bowley
Sinclair Waycott
Francesco Shinko
Maisha Rulapaugh
Johnson Sergi
David Darakjy
Julie Stenseth
Kadeem Flosi
Octavia Malet
Jeanfrancois Venere
Julie Stenseth
Leon Oldroyd
Kaitlin Ostrosky
Claire Tollner
Alejandro Perin
Murillo Malet
Arvin Albares
Johnson Sergi
Misaki Royster
Aika Inouye
Ivar Paprocki
IdCountryDate
1000Canada2026-05-12
1001Spain2026-05-03
1002Argentina2026-05-11
1003France2026-05-08
1004Spain2026-04-28
1005Canada2026-05-15
1006Spain2026-05-21
1007United Kingdom2026-05-26
1008Russia2026-05-08
1009India2026-04-30
1010United Kingdom2026-05-20
1011Argentina2026-05-21
1012Australia2026-05-07
1013United Kingdom2026-05-18
1014Canada2026-05-15
1015Germany2026-05-23
1016Spain2026-05-20
1017Japan2026-04-27
1018Japan2026-05-22
1019Argentina2026-05-18
1020Italy2026-04-28
1021India2026-05-04
1022France2026-04-27
1023Brazil2026-04-29
1024France2026-05-26
1025Brazil2026-05-14
1026Brazil2026-04-28
1027Brazil2026-05-17
1028Brazil2026-05-19
1029Argentina2026-05-19
1030Germany2026-04-30
1031Australia2026-05-12
1032France2026-05-15
1033Canada2026-04-28
1034United Kingdom2026-05-06
1035Argentina2026-05-26
1036Canada2026-05-07
1037Russia2026-05-07
1038Germany2026-05-15
1039Brazil2026-05-03
1040Brazil2026-04-30
1041Canada2026-04-29
1042Russia2026-05-25
1043Australia2026-04-30
1044Germany2026-05-24
1045United Kingdom2026-05-16
1046Australia2026-05-04
1047Japan2026-04-27
1048Spain2026-05-26
1049Spain2026-05-08

On-Demand Data

NameIdCountryDate
Nicolas Iturbide1000France2026-05-11
Silvio Slusarski1001Brazil2026-05-04
Sinclair Waycott1002Canada2026-05-01
Jennifer Amigon1003Spain2026-05-21
Antonio Caudy1004Germany2026-05-07
Costa Dilliard1005Argentina2026-05-14
Mayumi Kolmetz1006Australia2026-05-06
Claire Tollner1007Brazil2026-05-23
Maisha Rulapaugh1008Argentina2026-05-05
Darci Poquette1009Spain2026-05-19
Leon Oldroyd1010India2026-05-15
Aika Inouye1011Japan2026-05-15
Misaki Royster1012Brazil2026-05-13
Octavia Malet1013France2026-05-10
Alejandro Perin1014Spain2026-05-19
Misaki Royster1015Argentina2026-05-22
Clifford Rim1016Germany2026-05-01
Aika Inouye1017Spain2026-04-30
Jennifer Amigon1018India2026-05-26
Stacey Maclead1019Argentina2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiBrazilBernardo Dominic UNQUALIFIED
Rodrigues CampainBrazilAmy Elsner NEGOTIATION
Leon OldroydBrazilXuxue Feng QUALIFIED
Misaki RoysterGermanyIoni Bowcher RENEWAL
David DarakjyItalyBernardo Dominic QUALIFIED
Jennifer AmigonGermanyAnna Fali NEW
Morrow RutaFranceBernardo Dominic PROPOSAL
Aika InouyeUnited KingdomElwin Sharvill QUALIFIED
Maisha RulapaughJapanAmy Elsner UNQUALIFIED
Cody SaylorsGermanyBernardo Dominic QUALIFIED
Sinclair WaycottJapanAsiya Javayant NEW
Stacey MacleadSpainAmy Elsner PROPOSAL
Kadeem FlosiRussiaOnyama Limba RENEWAL
Munro FerenczItalyOnyama Limba PROPOSAL
Adams MorascaUnited KingdomAsiya Javayant PROPOSAL
Costa DilliardItalyAnna Fali NEGOTIATION
Silvio SlusarskiCanadaBernardo Dominic QUALIFIED
Chavez BriddickBrazilXuxue Feng NEGOTIATION
Jones VocelkaIndiaAmy Elsner NEW
Johnson SergiGermanyIoni Bowcher NEGOTIATION
Ricardo GauchoFranceXuxue Feng NEGOTIATION
David DarakjyUnited KingdomStephen Shaw NEW
Cody SaylorsFranceAnna Fali QUALIFIED
Morrow RutaCanadaXuxue Feng QUALIFIED
Munro FerenczJapanXuxue Feng NEW
Alejandro PerinIndiaIvan Magalhaes PROPOSAL
Kaitlin OstroskyArgentinaAsiya Javayant NEGOTIATION
Wickens NestleGermanyAnna Fali QUALIFIED
Jefferson SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Darci PoquetteFranceElwin Sharvill UNQUALIFIED
Morrow RutaItalyIoni Bowcher NEGOTIATION
James ButtArgentinaAnna Fali QUALIFIED
Ashley DoeItalyAnna Fali PROPOSAL
Murillo MaletFranceIvan Magalhaes NEW
Darci PoquetteItalyOnyama Limba NEW
Munro FerenczRussiaStephen Shaw RENEWAL
Costa DilliardCanadaElwin Sharvill NEGOTIATION
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Chavez BriddickBrazilBernardo Dominic RENEWAL
Rodrigues CampainItalyOnyama Limba UNQUALIFIED

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