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
Aditya KuskoAustraliaElwin Sharvill NEW
Claire TollnerFranceAnna Fali RENEWAL
Ivar PaprockiItalyBernardo Dominic NEGOTIATION
James ButtAustraliaXuxue Feng QUALIFIED
Jones VocelkaItalyBernardo Dominic RENEWAL
Wickens NestleRussiaAmy Elsner NEGOTIATION
Deepesh ChuiFranceAmy Elsner NEGOTIATION
Stacey MacleadArgentinaAmy Elsner UNQUALIFIED
Wickens NestleArgentinaIoni Bowcher PROPOSAL
Misaki RoysterUnited KingdomElwin Sharvill QUALIFIED
Costa DilliardSpainElwin Sharvill PROPOSAL
Mayumi KolmetzJapanIoni Bowcher RENEWAL
Sinclair WaycottUnited KingdomAnna Fali QUALIFIED
Costa DilliardItalyXuxue Feng NEW
Deepesh ChuiItalyIvan Magalhaes QUALIFIED
Francesco ShinkoJapanOnyama Limba NEGOTIATION
Stacey MacleadSpainOnyama Limba RENEWAL
Kaitlin OstroskyCanadaElwin Sharvill QUALIFIED
Costa DilliardJapanAmy Elsner NEGOTIATION
Maisha RulapaughIndiaIoni Bowcher NEW
Maria MarrierFranceAmy Elsner UNQUALIFIED
Misaki RoysterItalyBernardo Dominic PROPOSAL
Deepesh ChuiJapanXuxue Feng PROPOSAL
Izzy GarufiFranceIoni Bowcher UNQUALIFIED
Munro FerenczCanadaOnyama Limba UNQUALIFIED
Emily WhobreyRussiaAnna Fali NEGOTIATION
Sinclair WaycottIndiaIoni Bowcher UNQUALIFIED
Deepesh ChuiFranceOnyama Limba NEW
Alejandro PerinIndiaAsiya Javayant RENEWAL
Ashley DoeSpainElwin Sharvill QUALIFIED
James ButtIndiaXuxue Feng QUALIFIED
Munro FerenczCanadaOnyama Limba NEGOTIATION
Nicolas IturbideBrazilOnyama Limba RENEWAL
Faith GillianGermanyStephen Shaw QUALIFIED
Johnson SergiCanadaAnna Fali PROPOSAL
Maisha RulapaughRussiaIvan Magalhaes NEGOTIATION
Morrow RutaUnited KingdomAnna Fali QUALIFIED
Nicolas IturbideJapanAsiya Javayant QUALIFIED
Jeanfrancois VenereRussiaAnna Fali QUALIFIED
Johnson SergiRussiaElwin Sharvill UNQUALIFIED
Murillo MaletItalyElwin Sharvill QUALIFIED
Aika InouyeJapanXuxue Feng QUALIFIED
Faith GillianRussiaIvan Magalhaes PROPOSAL
Claire TollnerGermanyAsiya Javayant NEGOTIATION
Wickens NestleFranceIoni Bowcher UNQUALIFIED
Jennifer AmigonSpainAsiya Javayant UNQUALIFIED
Juan WieserArgentinaElwin Sharvill RENEWAL
Maisha RulapaughArgentinaBernardo Dominic NEW
Ricardo GauchoGermanyIvan Magalhaes RENEWAL
Ashley DoeArgentinaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Wickens NestleSpainIvan Magalhaes QUALIFIED
Misaki RoysterAustraliaAmy Elsner QUALIFIED
Julie StensethSpainXuxue Feng UNQUALIFIED
Costa DilliardGermanyAsiya Javayant PROPOSAL
Clifford RimUnited KingdomIvan Magalhaes PROPOSAL
Jennifer AmigonIndiaBernardo Dominic RENEWAL
Jennifer AmigonGermanyIoni Bowcher UNQUALIFIED
Emily WhobreyJapanOnyama Limba UNQUALIFIED
Sinclair WaycottSpainOnyama Limba QUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody SaylorsJapan2026-04-07Rousseaux, Michael Esq NEW82Asiya Javayant
1001Chavez BriddickIndia2026-04-02Morlong Associates RENEWAL96Elwin Sharvill
1002Julie StensethUnited Kingdom2026-04-21Commercial Press RENEWAL98Bernardo Dominic
1003Darci PoquetteRussia2026-04-18Feiner Bros RENEWAL87Amy Elsner
1004Emily WhobreyFrance2026-04-14Chanay, Jeffrey A Esq NEGOTIATION99Asiya Javayant
1005Misaki RoysterIndia2026-03-25Buckley Miller Wright RENEWAL25Elwin Sharvill
1006Leon OldroydAustralia2026-04-04Rangoni Of Florence RENEWAL94Amy Elsner
1007Wickens NestleBrazil2026-04-15Dorl, James J Esq UNQUALIFIED74Asiya Javayant
1008Ricardo GauchoFrance2026-03-31Feiner Bros RENEWAL16Bernardo Dominic
1009Murillo MaletFrance2026-03-25Chapman, Ross E Esq RENEWAL20Asiya Javayant
1010Ivar PaprockiUnited Kingdom2026-04-07Rangoni Of Florence PROPOSAL79Amy Elsner
1011Aruna FigeroaGermany2026-04-03Dorl, James J Esq UNQUALIFIED20Ivan Magalhaes
1012Kaitlin OstroskyRussia2026-03-25Printing Dimensions NEGOTIATION11Elwin Sharvill
1013Costa DilliardJapan2026-04-09Benton, John B Jr PROPOSAL86Ivan Magalhaes
1014Johnson SergiArgentina2026-04-14Commercial Press QUALIFIED45Onyama Limba
1015Morrow RutaArgentina2026-04-01Dorl, James J Esq NEW29Xuxue Feng
1016Jeanfrancois VenereFrance2026-03-31Rousseaux, Michael Esq RENEWAL90Ioni Bowcher
1017Faith GillianBrazil2026-04-02Morlong Associates UNQUALIFIED65Anna Fali
1018Chavez BriddickIndia2026-04-14Feltz Printing Service PROPOSAL24Anna Fali
1019Aika InouyeCanada2026-04-19Morlong Associates NEW44Anna Fali
1020Ricardo GauchoBrazil2026-04-07Chemel, James L Cpa NEGOTIATION80Asiya Javayant
1021Nicolas IturbideRussia2026-03-30Commercial Press QUALIFIED76Onyama Limba
1022Misaki RoysterIndia2026-03-31Morlong Associates UNQUALIFIED61Stephen Shaw
1023Adams MorascaIndia2026-04-15Buckley Miller Wright NEGOTIATION30Bernardo Dominic
1024Ricardo GauchoCanada2026-04-20King, Christopher A Esq RENEWAL42Elwin Sharvill
1025Ivar PaprockiAustralia2026-03-26Chapman, Ross E Esq PROPOSAL49Onyama Limba
1026Claire TollnerItaly2026-04-08Feiner Bros QUALIFIED46Stephen Shaw
1027Leja CaldareraCanada2026-04-10Feiner Bros NEW80Asiya Javayant
1028Antonio CaudyCanada2026-03-26Morlong Associates UNQUALIFIED46Asiya Javayant
1029Sinclair WaycottAustralia2026-04-12Rangoni Of Florence UNQUALIFIED10Onyama Limba
1030Rodrigues CampainCanada2026-04-17Feltz Printing Service UNQUALIFIED9Ivan Magalhaes
1031Aditya KuskoSpain2026-03-27Benton, John B Jr PROPOSAL57Asiya Javayant
1032Ricardo GauchoItaly2026-04-09King, Christopher A Esq NEW24Bernardo Dominic
1033Stacey MacleadArgentina2026-04-14Rousseaux, Michael Esq PROPOSAL30Stephen Shaw
1034Munro FerenczJapan2026-04-05Feltz Printing Service UNQUALIFIED73Ioni Bowcher
1035Maisha RulapaughRussia2026-03-26Printing Dimensions NEW30Elwin Sharvill
1036Wickens NestleUnited Kingdom2026-03-29Chemel, James L Cpa PROPOSAL7Ivan Magalhaes
1037Arvin AlbaresRussia2026-04-03Rangoni Of Florence NEGOTIATION40Xuxue Feng
1038Izzy GarufiItaly2026-04-15King, Christopher A Esq PROPOSAL12Anna Fali
1039Emily WhobreyIndia2026-03-29Printing Dimensions RENEWAL59Anna Fali
1040Mujtaba NickaJapan2026-04-20King, Christopher A Esq PROPOSAL11Asiya Javayant
1041Octavia MaletFrance2026-04-14Morlong Associates QUALIFIED1Elwin Sharvill
1042Kadeem FlosiJapan2026-03-29Chemel, James L Cpa QUALIFIED10Onyama Limba
1043Clifford RimAustralia2026-04-15Feiner Bros PROPOSAL56Bernardo Dominic
1044Francesco ShinkoJapan2026-03-23King, Christopher A Esq PROPOSAL14Anna Fali
1045Claire TollnerSpain2026-04-06Feiner Bros NEGOTIATION39Ioni Bowcher
1046Deepesh ChuiGermany2026-04-02Truhlar And Truhlar Attys QUALIFIED93Anna Fali
1047Jennifer AmigonIndia2026-04-04Chapman, Ross E Esq UNQUALIFIED64Stephen Shaw
1048Morrow RutaBrazil2026-04-07Feltz Printing Service PROPOSAL6Stephen Shaw
1049Emily WhobreyIndia2026-04-14Morlong Associates PROPOSAL71Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierCanadaAnna Fali RENEWAL
Munro FerenczArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeItalyAmy Elsner UNQUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic RENEWAL
Leon OldroydBrazilIvan Magalhaes NEGOTIATION
Ashley DoeAustraliaAnna Fali RENEWAL
Costa DilliardUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues CampainFranceAmy Elsner NEGOTIATION
Nicolas IturbideUnited KingdomAsiya Javayant NEW
Costa DilliardArgentinaOnyama Limba RENEWAL
Antonio CaudyJapanAmy Elsner NEW
Antonio CaudyIndiaBernardo Dominic RENEWAL
Costa DilliardJapanAnna Fali NEGOTIATION
Morrow RutaBrazilAmy Elsner QUALIFIED
Jeanfrancois VenereFranceAmy Elsner RENEWAL
Salvatore StockhamBrazilAsiya Javayant UNQUALIFIED
Mujtaba NickaFranceStephen Shaw UNQUALIFIED
Aruna FigeroaAustraliaIvan Magalhaes RENEWAL
Aika InouyeArgentinaBernardo Dominic NEW
Claire TollnerSpainAnna Fali RENEWAL
Costa DilliardItalyXuxue Feng NEW
Aruna FigeroaFranceAsiya Javayant QUALIFIED
Ricardo GauchoFranceXuxue Feng UNQUALIFIED
Chavez BriddickItalyAnna Fali PROPOSAL
Francesco ShinkoAustraliaIvan Magalhaes RENEWAL
Smith GlickBrazilStephen Shaw PROPOSAL
Izzy GarufiBrazilAsiya Javayant UNQUALIFIED
Smith GlickAustraliaAnna Fali PROPOSAL
Claire TollnerIndiaElwin Sharvill NEGOTIATION
Johnson SergiJapanBernardo Dominic RENEWAL
Maria MarrierGermanyIvan Magalhaes QUALIFIED
James ButtFranceElwin Sharvill NEGOTIATION
Maisha RulapaughFranceStephen Shaw NEW
Isabel BowleyUnited KingdomXuxue Feng QUALIFIED
Alejandro PerinCanadaXuxue Feng UNQUALIFIED
Smith GlickItalyOnyama Limba UNQUALIFIED
Leon OldroydArgentinaAmy Elsner NEGOTIATION
Chavez BriddickFranceOnyama Limba QUALIFIED
Darci PoquetteIndiaIoni Bowcher RENEWAL
Ricardo GauchoCanadaIoni Bowcher QUALIFIED
Mayumi KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer AmigonGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteUnited KingdomStephen Shaw NEW
Clifford RimCanadaIvan Magalhaes UNQUALIFIED
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Ashley DoeItalyStephen Shaw RENEWAL
Tony FollerFranceXuxue Feng NEW
Aika InouyeAustraliaIvan Magalhaes NEGOTIATION
Francesco ShinkoGermanyAmy Elsner NEW
Francesco ShinkoFranceAnna Fali NEW
Frozen Columns
Name
Jefferson Schemmer
Morrow Ruta
Nicolas Iturbide
Misaki Royster
Kaitlin Ostrosky
Leon Oldroyd
Misaki Royster
Mujtaba Nicka
Rodrigues Campain
Antonio Caudy
Kaitlin Ostrosky
Antonio Caudy
Jones Vocelka
Greenwood Bolognia
Clifford Rim
Ivar Paprocki
Silvio Slusarski
Maisha Rulapaugh
Aruna Figeroa
Arvin Albares
Morrow Ruta
Cody Saylors
Kadeem Flosi
Antonio Caudy
Jeanfrancois Venere
Octavia Malet
Maisha Rulapaugh
Jeanfrancois Venere
Jones Vocelka
Silvio Slusarski
Faith Gillian
Ivar Paprocki
Francesco Shinko
Murillo Malet
Munro Ferencz
Greenwood Bolognia
Chavez Briddick
David Darakjy
Silvio Slusarski
Silvio Slusarski
Sinclair Waycott
Aruna Figeroa
Octavia Malet
Arvin Albares
Darci Poquette
Clifford Rim
Izzy Garufi
Ricardo Gaucho
Maria Marrier
Maria Marrier
IdCountryDate
1000United Kingdom2026-03-28
1001Germany2026-03-29
1002Australia2026-04-15
1003Italy2026-04-10
1004Spain2026-04-21
1005India2026-03-30
1006France2026-04-05
1007Spain2026-04-17
1008Japan2026-04-16
1009Spain2026-04-21
1010Italy2026-04-16
1011Spain2026-04-20
1012Canada2026-04-09
1013Australia2026-04-13
1014Russia2026-04-21
1015France2026-04-16
1016Argentina2026-04-08
1017Italy2026-03-28
1018Japan2026-04-11
1019France2026-04-03
1020Italy2026-04-12
1021India2026-04-10
1022Australia2026-03-30
1023Japan2026-04-17
1024Brazil2026-03-24
1025Italy2026-03-23
1026Argentina2026-03-23
1027Spain2026-03-25
1028Spain2026-03-31
1029Russia2026-04-15
1030Italy2026-04-13
1031Canada2026-04-12
1032Italy2026-04-02
1033Brazil2026-04-07
1034Brazil2026-04-09
1035Argentina2026-03-28
1036Canada2026-03-25
1037Australia2026-04-11
1038Brazil2026-04-11
1039Argentina2026-04-11
1040Germany2026-04-19
1041United Kingdom2026-04-03
1042Canada2026-03-30
1043India2026-04-08
1044Canada2026-04-11
1045Australia2026-04-18
1046Australia2026-03-30
1047Italy2026-03-30
1048Brazil2026-04-10
1049United Kingdom2026-03-24

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Spain2026-04-17
Emily Whobrey1001Spain2026-03-29
Maisha Rulapaugh1002Argentina2026-04-10
Maisha Rulapaugh1003United Kingdom2026-04-19
Francesco Shinko1004Argentina2026-04-17
Deepesh Chui1005Russia2026-04-11
Claire Tollner1006France2026-03-30
Deepesh Chui1007Germany2026-04-19
Munro Ferencz1008Japan2026-03-23
Adams Morasca1009France2026-03-27
Munro Ferencz1010Italy2026-04-01
Arvin Albares1011Spain2026-04-09
Octavia Malet1012India2026-04-02
Morrow Ruta1013Spain2026-04-21
Kaitlin Ostrosky1014Japan2026-04-01
Stacey Maclead1015Argentina2026-04-14
Francesco Shinko1016France2026-03-30
Jefferson Schemmer1017Australia2026-03-29
Octavia Malet1018Japan2026-03-26
Julie Stenseth1019Canada2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaIndiaBernardo Dominic PROPOSAL
Chavez BriddickJapanXuxue Feng UNQUALIFIED
Tony FollerJapanIoni Bowcher PROPOSAL
James ButtItalyIoni Bowcher PROPOSAL
Maisha RulapaughAustraliaAnna Fali QUALIFIED
Costa DilliardCanadaIvan Magalhaes NEW
Ashley DoeBrazilIoni Bowcher QUALIFIED
Francesco ShinkoGermanyElwin Sharvill UNQUALIFIED
Munro FerenczSpainStephen Shaw PROPOSAL
Kadeem FlosiCanadaStephen Shaw NEW
Stacey MacleadBrazilBernardo Dominic QUALIFIED
Murillo MaletBrazilIvan Magalhaes NEW
Munro FerenczGermanyIvan Magalhaes PROPOSAL
Jeanfrancois VenereBrazilXuxue Feng QUALIFIED
Salvatore StockhamIndiaIoni Bowcher NEGOTIATION
Arvin AlbaresCanadaAmy Elsner NEGOTIATION
Jeanfrancois VenereGermanyElwin Sharvill NEGOTIATION
Octavia MaletJapanXuxue Feng QUALIFIED
Leon OldroydSpainElwin Sharvill NEW
Johnson SergiIndiaXuxue Feng NEGOTIATION
Jones VocelkaArgentinaIvan Magalhaes PROPOSAL
Aditya KuskoGermanyIvan Magalhaes NEW
Tony FollerRussiaOnyama Limba NEW
Aruna FigeroaRussiaOnyama Limba NEW
Aruna FigeroaCanadaAnna Fali PROPOSAL
Ashley DoeItalyOnyama Limba NEW
Cody SaylorsItalyOnyama Limba UNQUALIFIED
Stacey MacleadArgentinaAsiya Javayant QUALIFIED
Murillo MaletRussiaAnna Fali RENEWAL
Maria MarrierAustraliaAmy Elsner UNQUALIFIED
Ashley DoeItalyElwin Sharvill NEW
Jefferson SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Leja CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Clifford RimSpainAsiya Javayant NEGOTIATION
Alejandro PerinSpainStephen Shaw RENEWAL
Murillo MaletGermanyBernardo Dominic NEW
Maria MarrierRussiaStephen Shaw RENEWAL
Darci PoquetteFranceXuxue Feng NEW
Stacey MacleadItalyStephen Shaw PROPOSAL
Leon OldroydBrazilIoni Bowcher RENEWAL

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