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 PaprockiBrazilBernardo Dominic NEGOTIATION
Juan WieserArgentinaAnna Fali UNQUALIFIED
Antonio CaudyFranceAnna Fali NEW
Octavia MaletArgentinaAsiya Javayant PROPOSAL
Maria MarrierSpainStephen Shaw QUALIFIED
Nicolas IturbideCanadaAnna Fali PROPOSAL
Francesco ShinkoArgentinaXuxue Feng PROPOSAL
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Stacey MacleadGermanyIvan Magalhaes UNQUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant RENEWAL
Costa DilliardGermanyIoni Bowcher PROPOSAL
Alejandro PerinBrazilBernardo Dominic RENEWAL
Arvin AlbaresSpainXuxue Feng RENEWAL
Isabel BowleyCanadaIvan Magalhaes NEW
Sinclair WaycottRussiaElwin Sharvill NEW
Adams MorascaItalyOnyama Limba QUALIFIED
Sinclair WaycottAustraliaOnyama Limba QUALIFIED
Francesco ShinkoFranceAnna Fali RENEWAL
Smith GlickJapanOnyama Limba NEGOTIATION
Isabel BowleyCanadaOnyama Limba NEW
Nicolas IturbideBrazilIoni Bowcher PROPOSAL
Wickens NestleSpainElwin Sharvill NEGOTIATION
Aditya KuskoGermanyBernardo Dominic PROPOSAL
Octavia MaletBrazilOnyama Limba NEW
Kaitlin OstroskySpainElwin Sharvill PROPOSAL
Emily WhobreySpainAmy Elsner PROPOSAL
Wickens NestleArgentinaAsiya Javayant UNQUALIFIED
Emily WhobreyAustraliaAsiya Javayant PROPOSAL
Claire TollnerIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiIndiaAsiya Javayant PROPOSAL
Jefferson SchemmerCanadaBernardo Dominic NEGOTIATION
Costa DilliardUnited KingdomAmy Elsner NEGOTIATION
Kadeem FlosiRussiaBernardo Dominic NEW
Mujtaba NickaJapanIvan Magalhaes NEGOTIATION
James ButtArgentinaXuxue Feng NEW
Aruna FigeroaIndiaBernardo Dominic NEW
Sinclair WaycottAustraliaStephen Shaw RENEWAL
Francesco ShinkoCanadaIoni Bowcher PROPOSAL
Clifford RimArgentinaIoni Bowcher QUALIFIED
Misaki RoysterCanadaAnna Fali QUALIFIED
Mujtaba NickaSpainElwin Sharvill NEW
Silvio SlusarskiFranceBernardo Dominic PROPOSAL
Johnson SergiFranceOnyama Limba PROPOSAL
Jones VocelkaArgentinaAnna Fali QUALIFIED
David DarakjyGermanyIoni Bowcher NEGOTIATION
Julie StensethFranceOnyama Limba QUALIFIED
Munro FerenczAustraliaOnyama Limba UNQUALIFIED
Silvio SlusarskiIndiaStephen Shaw PROPOSAL
Claire TollnerCanadaAmy Elsner RENEWAL
Isabel BowleyBrazilAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiCanadaStephen Shaw UNQUALIFIED
Greenwood BologniaBrazilAsiya Javayant QUALIFIED
Adams MorascaBrazilAnna Fali QUALIFIED
Alejandro PerinGermanyIvan Magalhaes QUALIFIED
Faith GillianUnited KingdomBernardo Dominic RENEWAL
Stacey MacleadIndiaAmy Elsner PROPOSAL
Stacey MacleadCanadaAnna Fali NEGOTIATION
Faith GillianFranceIvan Magalhaes RENEWAL
Kadeem FlosiUnited KingdomAnna Fali QUALIFIED
Isabel BowleyAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterJapan2026-05-12Commercial Press NEGOTIATION78Amy Elsner
1001Tony FollerRussia2026-04-27Rangoni Of Florence NEGOTIATION64Asiya Javayant
1002Mujtaba NickaFrance2026-05-02Rangoni Of Florence NEW58Asiya Javayant
1003Francesco ShinkoUnited Kingdom2026-05-05Commercial Press RENEWAL57Anna Fali
1004Jefferson SchemmerAustralia2026-04-16Commercial Press NEW35Ivan Magalhaes
1005Arvin AlbaresIndia2026-04-14Feiner Bros QUALIFIED34Stephen Shaw
1006Ricardo GauchoFrance2026-04-15Rangoni Of Florence NEW84Stephen Shaw
1007Salvatore StockhamBrazil2026-05-09Chanay, Jeffrey A Esq UNQUALIFIED25Stephen Shaw
1008Kaitlin OstroskyUnited Kingdom2026-05-01Dorl, James J Esq NEW4Ivan Magalhaes
1009Arvin AlbaresAustralia2026-05-05Morlong Associates UNQUALIFIED79Xuxue Feng
1010Ivar PaprockiUnited Kingdom2026-05-08Commercial Press UNQUALIFIED31Asiya Javayant
1011Leon OldroydSpain2026-05-11Chanay, Jeffrey A Esq QUALIFIED43Bernardo Dominic
1012Ivar PaprockiFrance2026-04-25Benton, John B Jr NEW77Ivan Magalhaes
1013Nicolas IturbideUnited Kingdom2026-04-28Chemel, James L Cpa QUALIFIED10Ioni Bowcher
1014Wickens NestleArgentina2026-04-18Printing Dimensions NEGOTIATION21Xuxue Feng
1015Aruna FigeroaItaly2026-05-11Chanay, Jeffrey A Esq RENEWAL85Ivan Magalhaes
1016Jeanfrancois VenereIndia2026-04-18Rangoni Of Florence RENEWAL12Onyama Limba
1017Faith GillianGermany2026-05-01Feiner Bros NEW24Xuxue Feng
1018Nicolas IturbideIndia2026-04-21Chanay, Jeffrey A Esq NEW65Anna Fali
1019Faith GillianCanada2026-04-24Buckley Miller Wright PROPOSAL83Stephen Shaw
1020Adams MorascaBrazil2026-05-11Printing Dimensions NEW95Elwin Sharvill
1021Leon OldroydArgentina2026-05-12Feltz Printing Service NEW37Bernardo Dominic
1022Darci PoquetteAustralia2026-04-28Commercial Press RENEWAL96Asiya Javayant
1023Deepesh ChuiSpain2026-04-15Printing Dimensions QUALIFIED39Anna Fali
1024Misaki RoysterArgentina2026-04-28King, Christopher A Esq PROPOSAL18Asiya Javayant
1025Jefferson SchemmerGermany2026-04-27Chanay, Jeffrey A Esq NEGOTIATION29Ivan Magalhaes
1026David DarakjyUnited Kingdom2026-04-21Commercial Press QUALIFIED36Elwin Sharvill
1027Aditya KuskoGermany2026-04-23Chapman, Ross E Esq UNQUALIFIED48Stephen Shaw
1028Jennifer AmigonUnited Kingdom2026-04-28Commercial Press NEGOTIATION0Xuxue Feng
1029Ashley DoeItaly2026-05-07Chemel, James L Cpa PROPOSAL43Asiya Javayant
1030Juan WieserArgentina2026-04-28Chemel, James L Cpa UNQUALIFIED52Bernardo Dominic
1031Munro FerenczCanada2026-05-06Dorl, James J Esq PROPOSAL98Elwin Sharvill
1032Misaki RoysterJapan2026-04-27Chapman, Ross E Esq NEGOTIATION35Ioni Bowcher
1033Leon OldroydFrance2026-04-18Dorl, James J Esq RENEWAL67Amy Elsner
1034Aruna FigeroaUnited Kingdom2026-05-12Dorl, James J Esq NEGOTIATION91Ivan Magalhaes
1035Smith GlickGermany2026-05-08King, Christopher A Esq PROPOSAL34Xuxue Feng
1036Mujtaba NickaIndia2026-04-20King, Christopher A Esq RENEWAL85Onyama Limba
1037Ricardo GauchoCanada2026-05-07Chapman, Ross E Esq NEGOTIATION14Asiya Javayant
1038Mayumi KolmetzAustralia2026-05-03Chemel, James L Cpa UNQUALIFIED28Ivan Magalhaes
1039James ButtCanada2026-05-08King, Christopher A Esq RENEWAL92Ivan Magalhaes
1040Clifford RimSpain2026-04-20Morlong Associates QUALIFIED28Xuxue Feng
1041Emily WhobreyUnited Kingdom2026-04-27Rousseaux, Michael Esq NEW41Anna Fali
1042Leon OldroydArgentina2026-04-17Feiner Bros NEGOTIATION23Elwin Sharvill
1043Clifford RimJapan2026-04-24Feltz Printing Service NEW28Ivan Magalhaes
1044Francesco ShinkoSpain2026-05-06King, Christopher A Esq QUALIFIED88Onyama Limba
1045Maisha RulapaughSpain2026-04-15Chanay, Jeffrey A Esq RENEWAL91Asiya Javayant
1046Isabel BowleyJapan2026-05-01Chanay, Jeffrey A Esq NEW87Amy Elsner
1047David DarakjyFrance2026-04-21Dorl, James J Esq UNQUALIFIED17Anna Fali
1048Deepesh ChuiFrance2026-05-09Benton, John B Jr QUALIFIED73Stephen Shaw
1049Leja CaldareraCanada2026-04-30Rousseaux, Michael Esq RENEWAL53Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaArgentinaOnyama Limba NEW
Tony FollerRussiaBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaStephen Shaw QUALIFIED
Izzy GarufiAustraliaBernardo Dominic RENEWAL
Rodrigues CampainGermanyIoni Bowcher QUALIFIED
Aika InouyeFranceIoni Bowcher QUALIFIED
Nicolas IturbideIndiaAsiya Javayant NEW
Clifford RimJapanAnna Fali RENEWAL
Cody SaylorsSpainStephen Shaw NEW
Misaki RoysterGermanyBernardo Dominic PROPOSAL
Tony FollerRussiaOnyama Limba QUALIFIED
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
Jones VocelkaJapanAnna Fali NEGOTIATION
Jefferson SchemmerBrazilIvan Magalhaes RENEWAL
Isabel BowleyJapanElwin Sharvill PROPOSAL
Smith GlickRussiaIoni Bowcher RENEWAL
Maisha RulapaughRussiaAmy Elsner UNQUALIFIED
Costa DilliardUnited KingdomElwin Sharvill RENEWAL
Jeanfrancois VenereGermanyXuxue Feng PROPOSAL
Kadeem FlosiArgentinaElwin Sharvill PROPOSAL
Juan WieserAustraliaIoni Bowcher PROPOSAL
Murillo MaletSpainIoni Bowcher NEW
Emily WhobreyGermanyXuxue Feng NEGOTIATION
Morrow RutaJapanOnyama Limba NEW
Ashley DoeSpainAsiya Javayant UNQUALIFIED
Greenwood BologniaCanadaXuxue Feng UNQUALIFIED
Alejandro PerinGermanyElwin Sharvill NEW
Deepesh ChuiBrazilBernardo Dominic RENEWAL
James ButtRussiaOnyama Limba NEW
Murillo MaletIndiaElwin Sharvill NEW
Costa DilliardUnited KingdomAmy Elsner UNQUALIFIED
Darci PoquetteIndiaElwin Sharvill QUALIFIED
Misaki RoysterRussiaStephen Shaw NEGOTIATION
Costa DilliardSpainAnna Fali QUALIFIED
Munro FerenczFranceBernardo Dominic UNQUALIFIED
Leon OldroydJapanStephen Shaw UNQUALIFIED
Julie StensethAustraliaElwin Sharvill RENEWAL
Tony FollerRussiaAnna Fali PROPOSAL
Sinclair WaycottUnited KingdomAsiya Javayant NEW
Clifford RimFranceElwin Sharvill PROPOSAL
Ricardo GauchoIndiaAsiya Javayant PROPOSAL
Deepesh ChuiAustraliaAsiya Javayant NEW
Ivar PaprockiAustraliaIvan Magalhaes NEW
Jennifer AmigonGermanyStephen Shaw NEGOTIATION
Jeanfrancois VenereIndiaAmy Elsner NEW
Isabel BowleyGermanyIvan Magalhaes QUALIFIED
Murillo MaletGermanyIoni Bowcher RENEWAL
Izzy GarufiItalyAmy Elsner NEGOTIATION
Greenwood BologniaRussiaIvan Magalhaes RENEWAL
Johnson SergiUnited KingdomIoni Bowcher NEGOTIATION
Frozen Columns
Name
James Butt
Clifford Rim
Mayumi Kolmetz
Izzy Garufi
James Butt
Ricardo Gaucho
Nicolas Iturbide
Misaki Royster
Maisha Rulapaugh
Alejandro Perin
Nicolas Iturbide
Deepesh Chui
Costa Dilliard
Chavez Briddick
Juan Wieser
Smith Glick
Kadeem Flosi
Morrow Ruta
Rodrigues Campain
James Butt
Leja Caldarera
Izzy Garufi
Aika Inouye
Leja Caldarera
Claire Tollner
Jefferson Schemmer
Darci Poquette
Arvin Albares
Rodrigues Campain
Ricardo Gaucho
Leja Caldarera
Aditya Kusko
Maisha Rulapaugh
Aika Inouye
Murillo Malet
Nicolas Iturbide
Izzy Garufi
Jennifer Amigon
Cody Saylors
Stacey Maclead
Ivar Paprocki
Costa Dilliard
James Butt
Leja Caldarera
Leon Oldroyd
Kaitlin Ostrosky
Clifford Rim
Munro Ferencz
Adams Morasca
Antonio Caudy
IdCountryDate
1000Russia2026-04-28
1001United Kingdom2026-05-13
1002India2026-05-04
1003India2026-04-20
1004France2026-04-26
1005India2026-04-24
1006France2026-04-14
1007Japan2026-05-02
1008France2026-04-22
1009Japan2026-04-21
1010United Kingdom2026-04-29
1011Brazil2026-05-08
1012Russia2026-04-18
1013Canada2026-04-19
1014Australia2026-05-10
1015Spain2026-04-17
1016Canada2026-04-24
1017Germany2026-05-03
1018France2026-04-15
1019Germany2026-05-06
1020India2026-05-13
1021Argentina2026-05-10
1022United Kingdom2026-04-29
1023India2026-04-19
1024India2026-05-02
1025Canada2026-04-30
1026Germany2026-05-12
1027Argentina2026-05-09
1028France2026-04-15
1029Brazil2026-04-24
1030Italy2026-04-22
1031Canada2026-04-25
1032Japan2026-05-11
1033Australia2026-05-05
1034Spain2026-04-24
1035Japan2026-04-20
1036France2026-04-30
1037Argentina2026-05-12
1038Brazil2026-05-09
1039Canada2026-04-18
1040Italy2026-04-30
1041Germany2026-04-27
1042Brazil2026-05-03
1043France2026-04-21
1044Australia2026-04-26
1045Argentina2026-04-21
1046India2026-04-26
1047Brazil2026-04-20
1048Germany2026-05-04
1049Spain2026-05-02

On-Demand Data

NameIdCountryDate
Octavia Malet1000Canada2026-04-25
Nicolas Iturbide1001Russia2026-05-04
James Butt1002Canada2026-04-16
Darci Poquette1003Japan2026-05-11
Kadeem Flosi1004Italy2026-05-04
James Butt1005Australia2026-04-26
Aika Inouye1006Russia2026-04-22
Aditya Kusko1007France2026-05-05
Octavia Malet1008Australia2026-04-16
Maria Marrier1009United Kingdom2026-04-21
Alejandro Perin1010France2026-04-28
Kaitlin Ostrosky1011United Kingdom2026-04-27
Maria Marrier1012France2026-04-23
Juan Wieser1013Spain2026-05-10
Darci Poquette1014Germany2026-05-01
Faith Gillian1015Canada2026-04-23
James Butt1016Argentina2026-04-28
Johnson Sergi1017India2026-05-04
Izzy Garufi1018Italy2026-05-02
Adams Morasca1019Argentina2026-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreySpainAmy Elsner QUALIFIED
Aditya KuskoItalyElwin Sharvill PROPOSAL
Chavez BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens NestleRussiaOnyama Limba UNQUALIFIED
Deepesh ChuiBrazilAmy Elsner RENEWAL
Claire TollnerRussiaAmy Elsner NEW
Salvatore StockhamBrazilIoni Bowcher NEW
Alejandro PerinJapanAsiya Javayant UNQUALIFIED
Adams MorascaRussiaXuxue Feng UNQUALIFIED
Sinclair WaycottFranceIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomAmy Elsner PROPOSAL
Jeanfrancois VenereCanadaStephen Shaw QUALIFIED
Ricardo GauchoItalyAmy Elsner NEGOTIATION
Leja CaldareraAustraliaAsiya Javayant PROPOSAL
Jefferson SchemmerGermanyAnna Fali RENEWAL
Mayumi KolmetzIndiaElwin Sharvill QUALIFIED
Juan WieserAustraliaIoni Bowcher UNQUALIFIED
James ButtUnited KingdomIvan Magalhaes NEGOTIATION
Adams MorascaGermanyIoni Bowcher NEGOTIATION
Rodrigues CampainUnited KingdomIvan Magalhaes PROPOSAL
Sinclair WaycottFranceAnna Fali PROPOSAL
Isabel BowleyItalyStephen Shaw NEW
Cody SaylorsItalyStephen Shaw QUALIFIED
Rodrigues CampainFranceAmy Elsner UNQUALIFIED
Leon OldroydUnited KingdomAsiya Javayant NEW
David DarakjyArgentinaIvan Magalhaes NEW
Morrow RutaJapanElwin Sharvill QUALIFIED
Jeanfrancois VenereItalyIoni Bowcher NEW
Claire TollnerItalyIoni Bowcher NEW
Misaki RoysterGermanyAmy Elsner UNQUALIFIED
Francesco ShinkoItalyAmy Elsner NEW
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Adams MorascaGermanyAmy Elsner NEGOTIATION
Munro FerenczGermanyIvan Magalhaes NEW
Stacey MacleadRussiaIoni Bowcher NEGOTIATION
Izzy GarufiGermanyIvan Magalhaes UNQUALIFIED
Mayumi KolmetzBrazilOnyama Limba NEGOTIATION
Cody SaylorsItalyIoni Bowcher QUALIFIED
Leja CaldareraGermanyAnna Fali UNQUALIFIED
Isabel BowleyIndiaIvan Magalhaes NEGOTIATION

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