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
Leja CaldareraFranceBernardo Dominic RENEWAL
Aruna FigeroaCanadaOnyama Limba UNQUALIFIED
Emily WhobreyItalyElwin Sharvill PROPOSAL
Chavez BriddickFranceIoni Bowcher NEW
Arvin AlbaresUnited KingdomElwin Sharvill QUALIFIED
Rodrigues CampainFranceIvan Magalhaes NEW
Leja CaldareraRussiaAnna Fali PROPOSAL
Jefferson SchemmerSpainElwin Sharvill UNQUALIFIED
Mayumi KolmetzGermanyBernardo Dominic UNQUALIFIED
Adams MorascaSpainAmy Elsner UNQUALIFIED
Izzy GarufiAustraliaIoni Bowcher PROPOSAL
Jones VocelkaAustraliaOnyama Limba PROPOSAL
Juan WieserFranceIoni Bowcher RENEWAL
Izzy GarufiGermanyElwin Sharvill UNQUALIFIED
Ricardo GauchoArgentinaBernardo Dominic NEW
Mujtaba NickaBrazilOnyama Limba QUALIFIED
Jones VocelkaGermanyOnyama Limba QUALIFIED
Aika InouyeUnited KingdomIoni Bowcher QUALIFIED
Smith GlickRussiaStephen Shaw NEGOTIATION
Jeanfrancois VenereUnited KingdomBernardo Dominic QUALIFIED
Rodrigues CampainBrazilBernardo Dominic RENEWAL
Octavia MaletSpainAsiya Javayant UNQUALIFIED
Adams MorascaUnited KingdomOnyama Limba UNQUALIFIED
Isabel BowleyArgentinaOnyama Limba QUALIFIED
Clifford RimCanadaAsiya Javayant UNQUALIFIED
Costa DilliardSpainXuxue Feng QUALIFIED
Mujtaba NickaJapanIvan Magalhaes NEW
Stacey MacleadItalyXuxue Feng PROPOSAL
James ButtSpainOnyama Limba NEW
Ivar PaprockiIndiaIoni Bowcher NEGOTIATION
Clifford RimArgentinaElwin Sharvill UNQUALIFIED
Ashley DoeJapanIoni Bowcher NEW
Ivar PaprockiRussiaIoni Bowcher PROPOSAL
Faith GillianFranceAsiya Javayant NEGOTIATION
Francesco ShinkoAustraliaBernardo Dominic UNQUALIFIED
Juan WieserGermanyOnyama Limba UNQUALIFIED
David DarakjyCanadaStephen Shaw NEGOTIATION
Chavez BriddickArgentinaXuxue Feng PROPOSAL
Maisha RulapaughRussiaAnna Fali QUALIFIED
Cody SaylorsRussiaBernardo Dominic NEW
Jennifer AmigonBrazilOnyama Limba RENEWAL
Francesco ShinkoSpainAnna Fali RENEWAL
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Silvio SlusarskiItalyAnna Fali UNQUALIFIED
Izzy GarufiFranceBernardo Dominic QUALIFIED
Julie StensethSpainAsiya Javayant QUALIFIED
Nicolas IturbideArgentinaStephen Shaw NEGOTIATION
Deepesh ChuiJapanAsiya Javayant UNQUALIFIED
Francesco ShinkoIndiaStephen Shaw NEW
Ricardo GauchoIndiaBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaFranceOnyama Limba NEGOTIATION
Costa DilliardGermanyAsiya Javayant NEW
Kadeem FlosiGermanyIoni Bowcher NEW
Murillo MaletArgentinaAsiya Javayant PROPOSAL
Murillo MaletSpainBernardo Dominic UNQUALIFIED
David DarakjyIndiaIoni Bowcher UNQUALIFIED
Francesco ShinkoSpainIvan Magalhaes NEGOTIATION
Greenwood BologniaItalyAsiya Javayant NEW
Ricardo GauchoArgentinaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyRussiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire TollnerArgentina2026-05-28Chapman, Ross E Esq NEGOTIATION81Bernardo Dominic
1001Aika InouyeFrance2026-05-25Chapman, Ross E Esq UNQUALIFIED69Onyama Limba
1002Aditya KuskoSpain2026-06-09Benton, John B Jr QUALIFIED23Onyama Limba
1003Johnson SergiArgentina2026-06-01Morlong Associates RENEWAL68Xuxue Feng
1004Arvin AlbaresUnited Kingdom2026-06-07Feiner Bros NEGOTIATION44Asiya Javayant
1005Ricardo GauchoUnited Kingdom2026-06-02Chapman, Ross E Esq NEW45Stephen Shaw
1006Aditya KuskoArgentina2026-06-04Morlong Associates QUALIFIED84Bernardo Dominic
1007Salvatore StockhamItaly2026-05-28Chemel, James L Cpa NEW12Ivan Magalhaes
1008Leja CaldareraSpain2026-06-06Truhlar And Truhlar Attys NEW26Anna Fali
1009James ButtIndia2026-05-26Truhlar And Truhlar Attys NEW27Ioni Bowcher
1010Munro FerenczAustralia2026-06-06Morlong Associates QUALIFIED88Amy Elsner
1011Francesco ShinkoRussia2026-06-11Feiner Bros PROPOSAL54Onyama Limba
1012Octavia MaletItaly2026-05-26King, Christopher A Esq RENEWAL68Bernardo Dominic
1013Arvin AlbaresGermany2026-05-29Truhlar And Truhlar Attys UNQUALIFIED35Ioni Bowcher
1014David DarakjyRussia2026-06-11Chanay, Jeffrey A Esq RENEWAL53Ivan Magalhaes
1015Antonio CaudyCanada2026-05-31Buckley Miller Wright PROPOSAL64Onyama Limba
1016Greenwood BologniaFrance2026-06-04Chapman, Ross E Esq NEW28Onyama Limba
1017Faith GillianJapan2026-06-05Feltz Printing Service QUALIFIED96Asiya Javayant
1018Chavez BriddickIndia2026-05-25Printing Dimensions NEW88Ioni Bowcher
1019Ivar PaprockiFrance2026-06-09Buckley Miller Wright QUALIFIED22Bernardo Dominic
1020Jefferson SchemmerFrance2026-06-12Truhlar And Truhlar Attys NEW51Anna Fali
1021Johnson SergiFrance2026-06-14Rousseaux, Michael Esq PROPOSAL10Onyama Limba
1022Deepesh ChuiCanada2026-05-20Morlong Associates NEW10Elwin Sharvill
1023Leja CaldareraGermany2026-06-03Benton, John B Jr RENEWAL51Anna Fali
1024Leja CaldareraGermany2026-06-14Dorl, James J Esq RENEWAL76Asiya Javayant
1025Julie StensethCanada2026-06-13King, Christopher A Esq NEGOTIATION6Stephen Shaw
1026Sinclair WaycottJapan2026-05-27Morlong Associates PROPOSAL11Xuxue Feng
1027Clifford RimSpain2026-06-18Rousseaux, Michael Esq NEW95Bernardo Dominic
1028Clifford RimSpain2026-05-28Feltz Printing Service UNQUALIFIED32Bernardo Dominic
1029Ashley DoeArgentina2026-05-25Feiner Bros UNQUALIFIED28Bernardo Dominic
1030Silvio SlusarskiSpain2026-06-06Benton, John B Jr PROPOSAL80Ivan Magalhaes
1031Jeanfrancois VenereItaly2026-05-20King, Christopher A Esq RENEWAL48Xuxue Feng
1032Sinclair WaycottBrazil2026-05-21Feiner Bros PROPOSAL38Anna Fali
1033Salvatore StockhamAustralia2026-06-05Feltz Printing Service QUALIFIED80Amy Elsner
1034Smith GlickGermany2026-05-29Feiner Bros RENEWAL68Bernardo Dominic
1035Isabel BowleyArgentina2026-05-25Commercial Press NEW49Asiya Javayant
1036Mujtaba NickaCanada2026-05-24Printing Dimensions QUALIFIED49Stephen Shaw
1037Faith GillianArgentina2026-05-23Truhlar And Truhlar Attys PROPOSAL89Xuxue Feng
1038Mayumi KolmetzCanada2026-06-03Chanay, Jeffrey A Esq NEW61Elwin Sharvill
1039Emily WhobreyGermany2026-05-29Rousseaux, Michael Esq QUALIFIED69Xuxue Feng
1040Aika InouyeCanada2026-05-29Benton, John B Jr QUALIFIED38Bernardo Dominic
1041Deepesh ChuiJapan2026-06-17Feiner Bros NEW21Elwin Sharvill
1042Aditya KuskoIndia2026-06-15Dorl, James J Esq PROPOSAL20Onyama Limba
1043Emily WhobreyCanada2026-05-23Benton, John B Jr NEGOTIATION11Xuxue Feng
1044Jennifer AmigonGermany2026-05-27Benton, John B Jr UNQUALIFIED57Asiya Javayant
1045Emily WhobreyIndia2026-06-13Chapman, Ross E Esq QUALIFIED64Ioni Bowcher
1046Ashley DoeGermany2026-06-05Rangoni Of Florence QUALIFIED11Asiya Javayant
1047Maisha RulapaughArgentina2026-06-05Chemel, James L Cpa QUALIFIED2Bernardo Dominic
1048Alejandro PerinItaly2026-05-29Truhlar And Truhlar Attys QUALIFIED59Bernardo Dominic
1049Francesco ShinkoBrazil2026-05-22Chapman, Ross E Esq QUALIFIED98Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoGermanyXuxue Feng RENEWAL
Ashley DoeFranceAsiya Javayant NEW
James ButtArgentinaIoni Bowcher UNQUALIFIED
Antonio CaudyArgentinaBernardo Dominic PROPOSAL
James ButtGermanyIoni Bowcher NEGOTIATION
Maria MarrierIndiaStephen Shaw RENEWAL
Chavez BriddickGermanyAnna Fali NEW
Leon OldroydSpainAnna Fali QUALIFIED
Aruna FigeroaCanadaAmy Elsner RENEWAL
James ButtGermanyElwin Sharvill NEW
Isabel BowleyCanadaAsiya Javayant PROPOSAL
Silvio SlusarskiJapanStephen Shaw RENEWAL
Mujtaba NickaCanadaAmy Elsner QUALIFIED
Aika InouyeAustraliaXuxue Feng UNQUALIFIED
Antonio CaudyJapanIoni Bowcher NEGOTIATION
Salvatore StockhamAustraliaIvan Magalhaes PROPOSAL
Maisha RulapaughSpainAmy Elsner NEGOTIATION
Mujtaba NickaSpainIvan Magalhaes PROPOSAL
Mayumi KolmetzGermanyAmy Elsner UNQUALIFIED
Jones VocelkaIndiaIoni Bowcher PROPOSAL
Jeanfrancois VenereCanadaIvan Magalhaes NEW
Arvin AlbaresUnited KingdomXuxue Feng RENEWAL
Ashley DoeArgentinaElwin Sharvill RENEWAL
Jones VocelkaFranceAnna Fali UNQUALIFIED
Murillo MaletBrazilStephen Shaw NEW
Julie StensethSpainOnyama Limba NEGOTIATION
Morrow RutaRussiaAmy Elsner NEGOTIATION
Cody SaylorsFranceBernardo Dominic NEW
Juan WieserAustraliaAmy Elsner NEW
Maria MarrierCanadaAsiya Javayant RENEWAL
Jones VocelkaItalyAmy Elsner QUALIFIED
Aruna FigeroaCanadaAsiya Javayant RENEWAL
Jennifer AmigonBrazilAsiya Javayant NEW
David DarakjyRussiaIvan Magalhaes PROPOSAL
Jones VocelkaBrazilIvan Magalhaes PROPOSAL
Arvin AlbaresAustraliaIvan Magalhaes RENEWAL
Aditya KuskoIndiaIoni Bowcher PROPOSAL
Aruna FigeroaArgentinaStephen Shaw PROPOSAL
Aditya KuskoIndiaXuxue Feng NEW
Murillo MaletItalyAmy Elsner PROPOSAL
Alejandro PerinItalyElwin Sharvill PROPOSAL
Aruna FigeroaRussiaXuxue Feng QUALIFIED
Stacey MacleadRussiaStephen Shaw NEGOTIATION
Stacey MacleadCanadaStephen Shaw NEGOTIATION
Nicolas IturbideSpainIoni Bowcher RENEWAL
Silvio SlusarskiBrazilOnyama Limba RENEWAL
Ricardo GauchoBrazilStephen Shaw PROPOSAL
Aruna FigeroaJapanAmy Elsner UNQUALIFIED
Juan WieserGermanyIoni Bowcher PROPOSAL
Izzy GarufiFranceIvan Magalhaes NEW
Frozen Columns
Name
Stacey Maclead
Izzy Garufi
Tony Foller
Leon Oldroyd
Darci Poquette
Kadeem Flosi
Jefferson Schemmer
Claire Tollner
Jefferson Schemmer
Tony Foller
Morrow Ruta
Chavez Briddick
Nicolas Iturbide
Kaitlin Ostrosky
Costa Dilliard
Ashley Doe
Leon Oldroyd
Darci Poquette
Jeanfrancois Venere
Johnson Sergi
Claire Tollner
Wickens Nestle
Adams Morasca
Costa Dilliard
Ivar Paprocki
Izzy Garufi
Francesco Shinko
Claire Tollner
Sinclair Waycott
Emily Whobrey
Ivar Paprocki
Morrow Ruta
Izzy Garufi
Jones Vocelka
Morrow Ruta
Greenwood Bolognia
Juan Wieser
Leon Oldroyd
Francesco Shinko
Aruna Figeroa
Ashley Doe
Misaki Royster
Alejandro Perin
James Butt
Wickens Nestle
Alejandro Perin
Isabel Bowley
Nicolas Iturbide
Kadeem Flosi
Morrow Ruta
IdCountryDate
1000Canada2026-06-12
1001India2026-06-15
1002Canada2026-06-13
1003Italy2026-05-26
1004Italy2026-06-05
1005Germany2026-05-20
1006Germany2026-05-29
1007India2026-06-18
1008Brazil2026-05-23
1009Russia2026-06-12
1010France2026-05-27
1011Argentina2026-06-05
1012Japan2026-06-06
1013India2026-06-18
1014Italy2026-05-28
1015United Kingdom2026-06-10
1016India2026-06-07
1017Canada2026-06-13
1018Russia2026-05-29
1019Spain2026-05-29
1020Canada2026-06-08
1021India2026-06-09
1022Australia2026-06-11
1023Japan2026-06-12
1024India2026-05-25
1025Brazil2026-05-23
1026Italy2026-05-31
1027Australia2026-06-10
1028Japan2026-06-06
1029Italy2026-06-12
1030Brazil2026-06-15
1031Japan2026-05-31
1032Russia2026-05-29
1033Brazil2026-05-21
1034Russia2026-06-07
1035India2026-06-06
1036India2026-05-21
1037Italy2026-05-29
1038Italy2026-06-03
1039Australia2026-05-20
1040Brazil2026-06-05
1041Germany2026-05-26
1042France2026-05-30
1043Brazil2026-06-15
1044India2026-05-28
1045Australia2026-06-03
1046Canada2026-06-14
1047Spain2026-05-28
1048India2026-06-05
1049Canada2026-06-07

On-Demand Data

NameIdCountryDate
Ricardo Gaucho1000Japan2026-06-06
Darci Poquette1001India2026-06-08
Ivar Paprocki1002United Kingdom2026-06-13
Emily Whobrey1003Japan2026-06-15
Mujtaba Nicka1004Germany2026-05-23
Greenwood Bolognia1005India2026-05-27
Alejandro Perin1006Japan2026-06-14
Darci Poquette1007Argentina2026-05-24
Juan Wieser1008Brazil2026-06-14
Darci Poquette1009Italy2026-05-31
Arvin Albares1010Brazil2026-06-03
Octavia Malet1011Argentina2026-06-17
Aditya Kusko1012United Kingdom2026-05-31
Maisha Rulapaugh1013Japan2026-06-18
Wickens Nestle1014Germany2026-05-22
Leja Caldarera1015United Kingdom2026-05-26
Misaki Royster1016Argentina2026-05-27
Emily Whobrey1017India2026-05-28
Nicolas Iturbide1018India2026-05-23
Greenwood Bolognia1019India2026-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideRussiaAmy Elsner UNQUALIFIED
Maria MarrierBrazilStephen Shaw UNQUALIFIED
Aika InouyeItalyOnyama Limba NEW
Ivar PaprockiSpainAsiya Javayant PROPOSAL
Darci PoquetteArgentinaXuxue Feng UNQUALIFIED
Adams MorascaIndiaIvan Magalhaes RENEWAL
Aditya KuskoJapanIvan Magalhaes NEW
Claire TollnerUnited KingdomStephen Shaw RENEWAL
Tony FollerItalyBernardo Dominic RENEWAL
Smith GlickBrazilAnna Fali PROPOSAL
Tony FollerCanadaIoni Bowcher UNQUALIFIED
Julie StensethAustraliaStephen Shaw NEGOTIATION
Faith GillianJapanElwin Sharvill RENEWAL
Salvatore StockhamCanadaAmy Elsner UNQUALIFIED
Jefferson SchemmerItalyBernardo Dominic RENEWAL
Munro FerenczFranceXuxue Feng QUALIFIED
Silvio SlusarskiRussiaIvan Magalhaes PROPOSAL
Deepesh ChuiJapanIoni Bowcher RENEWAL
Jennifer AmigonCanadaAnna Fali QUALIFIED
Jefferson SchemmerRussiaBernardo Dominic NEGOTIATION
Claire TollnerItalyXuxue Feng NEW
David DarakjyItalyAnna Fali RENEWAL
Jennifer AmigonArgentinaAsiya Javayant NEGOTIATION
Octavia MaletArgentinaIvan Magalhaes NEW
Aditya KuskoFranceStephen Shaw PROPOSAL
Greenwood BologniaGermanyAmy Elsner RENEWAL
Darci PoquetteIndiaAnna Fali QUALIFIED
Juan WieserFranceBernardo Dominic NEGOTIATION
Tony FollerArgentinaAnna Fali PROPOSAL
Darci PoquetteSpainAsiya Javayant UNQUALIFIED
Maria MarrierUnited KingdomAsiya Javayant PROPOSAL
Ivar PaprockiRussiaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaIvan Magalhaes RENEWAL
Tony FollerGermanyBernardo Dominic NEW
Ivar PaprockiRussiaAmy Elsner UNQUALIFIED
Ricardo GauchoArgentinaElwin Sharvill UNQUALIFIED
Deepesh ChuiBrazilXuxue Feng NEGOTIATION
Alejandro PerinGermanyIvan Magalhaes QUALIFIED
Maria MarrierJapanAmy Elsner NEW
Tony FollerCanadaOnyama Limba 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>