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
Clifford RimRussiaOnyama Limba NEW
Aruna FigeroaAustraliaElwin Sharvill NEW
Claire TollnerSpainIvan Magalhaes NEGOTIATION
Faith GillianFranceAnna Fali QUALIFIED
Julie StensethCanadaAmy Elsner NEW
Deepesh ChuiGermanyBernardo Dominic NEGOTIATION
Arvin AlbaresItalyElwin Sharvill NEW
Alejandro PerinBrazilAsiya Javayant NEW
Juan WieserGermanyXuxue Feng NEW
Smith GlickRussiaIoni Bowcher NEW
Kaitlin OstroskyArgentinaAnna Fali NEGOTIATION
Kaitlin OstroskySpainAmy Elsner UNQUALIFIED
Deepesh ChuiRussiaOnyama Limba RENEWAL
David DarakjyItalyAmy Elsner UNQUALIFIED
Leja CaldareraJapanIvan Magalhaes PROPOSAL
Jennifer AmigonIndiaAsiya Javayant NEW
Isabel BowleyArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois VenereAustraliaStephen Shaw UNQUALIFIED
Octavia MaletRussiaElwin Sharvill NEGOTIATION
Stacey MacleadRussiaIoni Bowcher NEW
Francesco ShinkoArgentinaXuxue Feng NEGOTIATION
Johnson SergiUnited KingdomAnna Fali UNQUALIFIED
Silvio SlusarskiSpainXuxue Feng UNQUALIFIED
Maria MarrierIndiaAnna Fali QUALIFIED
Silvio SlusarskiSpainStephen Shaw NEW
Jefferson SchemmerIndiaStephen Shaw RENEWAL
Chavez BriddickRussiaAmy Elsner QUALIFIED
Leja CaldareraBrazilAnna Fali NEW
Cody SaylorsBrazilIoni Bowcher NEW
Ivar PaprockiGermanyIoni Bowcher PROPOSAL
Jones VocelkaRussiaIoni Bowcher NEW
Izzy GarufiJapanXuxue Feng NEGOTIATION
Leja CaldareraRussiaElwin Sharvill NEGOTIATION
Greenwood BologniaCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraJapanElwin Sharvill RENEWAL
Nicolas IturbideArgentinaStephen Shaw RENEWAL
Cody SaylorsIndiaAnna Fali PROPOSAL
Mujtaba NickaRussiaStephen Shaw QUALIFIED
Jeanfrancois VenereItalyOnyama Limba QUALIFIED
Francesco ShinkoUnited KingdomAnna Fali UNQUALIFIED
Kadeem FlosiFranceIvan Magalhaes QUALIFIED
Jefferson SchemmerCanadaIoni Bowcher UNQUALIFIED
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
David DarakjyCanadaXuxue Feng QUALIFIED
Johnson SergiRussiaIvan Magalhaes RENEWAL
Aditya KuskoArgentinaAmy Elsner RENEWAL
David DarakjySpainBernardo Dominic NEW
Antonio CaudyUnited KingdomOnyama Limba NEGOTIATION
Leja CaldareraGermanyBernardo Dominic RENEWAL
Francesco ShinkoAustraliaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia MaletAustraliaIoni Bowcher NEW
James ButtRussiaIvan Magalhaes NEW
Leja CaldareraAustraliaXuxue Feng QUALIFIED
Octavia MaletFranceElwin Sharvill QUALIFIED
Claire TollnerRussiaBernardo Dominic UNQUALIFIED
Adams MorascaFranceStephen Shaw UNQUALIFIED
Adams MorascaGermanyXuxue Feng QUALIFIED
Chavez BriddickUnited KingdomOnyama Limba QUALIFIED
Jones VocelkaRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamGermanyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiBrazil2026-04-04Buckley Miller Wright NEW39Elwin Sharvill
1001Adams MorascaSpain2026-04-09Chapman, Ross E Esq PROPOSAL45Anna Fali
1002Sinclair WaycottBrazil2026-03-29Printing Dimensions NEW10Stephen Shaw
1003Sinclair WaycottArgentina2026-04-20Truhlar And Truhlar Attys PROPOSAL99Amy Elsner
1004Ivar PaprockiBrazil2026-04-21Buckley Miller Wright RENEWAL6Ioni Bowcher
1005Ashley DoeBrazil2026-04-15Dorl, James J Esq NEGOTIATION91Xuxue Feng
1006Rodrigues CampainGermany2026-04-06Feltz Printing Service NEGOTIATION94Asiya Javayant
1007Sinclair WaycottRussia2026-04-20Printing Dimensions PROPOSAL95Bernardo Dominic
1008Deepesh ChuiJapan2026-04-20Buckley Miller Wright RENEWAL88Bernardo Dominic
1009Chavez BriddickRussia2026-04-27Morlong Associates RENEWAL15Stephen Shaw
1010Kadeem FlosiBrazil2026-04-04Rousseaux, Michael Esq UNQUALIFIED85Ioni Bowcher
1011Rodrigues CampainBrazil2026-04-23Buckley Miller Wright NEGOTIATION91Onyama Limba
1012Darci PoquetteSpain2026-04-01Truhlar And Truhlar Attys RENEWAL33Xuxue Feng
1013Julie StensethUnited Kingdom2026-04-24Buckley Miller Wright QUALIFIED13Bernardo Dominic
1014Costa DilliardAustralia2026-04-22Morlong Associates NEGOTIATION72Asiya Javayant
1015Izzy GarufiGermany2026-04-09Truhlar And Truhlar Attys RENEWAL0Bernardo Dominic
1016Ashley DoeRussia2026-04-14Feiner Bros QUALIFIED4Amy Elsner
1017Costa DilliardIndia2026-04-16Dorl, James J Esq RENEWAL55Xuxue Feng
1018Stacey MacleadSpain2026-04-24Truhlar And Truhlar Attys QUALIFIED67Bernardo Dominic
1019Morrow RutaCanada2026-04-06Chanay, Jeffrey A Esq NEW72Amy Elsner
1020Tony FollerFrance2026-04-02Truhlar And Truhlar Attys QUALIFIED73Stephen Shaw
1021Leon OldroydUnited Kingdom2026-04-05Chemel, James L Cpa PROPOSAL82Bernardo Dominic
1022Kaitlin OstroskyItaly2026-04-14Buckley Miller Wright UNQUALIFIED48Anna Fali
1023Salvatore StockhamGermany2026-04-17Chanay, Jeffrey A Esq RENEWAL99Stephen Shaw
1024Kadeem FlosiCanada2026-04-04Commercial Press QUALIFIED95Asiya Javayant
1025Emily WhobreyCanada2026-04-12King, Christopher A Esq NEW21Ioni Bowcher
1026Jones VocelkaAustralia2026-04-24Commercial Press RENEWAL30Ioni Bowcher
1027Morrow RutaArgentina2026-04-06Commercial Press QUALIFIED13Anna Fali
1028Leon OldroydArgentina2026-03-29Feiner Bros QUALIFIED2Bernardo Dominic
1029Ricardo GauchoJapan2026-04-15Truhlar And Truhlar Attys NEGOTIATION89Amy Elsner
1030Maria MarrierJapan2026-03-29Dorl, James J Esq NEW55Asiya Javayant
1031Cody SaylorsRussia2026-04-08Buckley Miller Wright NEGOTIATION30Onyama Limba
1032Leon OldroydUnited Kingdom2026-04-02Commercial Press NEGOTIATION50Elwin Sharvill
1033Ashley DoeUnited Kingdom2026-04-02Dorl, James J Esq NEW97Asiya Javayant
1034Emily WhobreyJapan2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED95Bernardo Dominic
1035Johnson SergiJapan2026-04-15Chapman, Ross E Esq NEW90Onyama Limba
1036Jeanfrancois VenereSpain2026-04-06Feltz Printing Service NEGOTIATION76Elwin Sharvill
1037Sinclair WaycottRussia2026-04-06Rousseaux, Michael Esq UNQUALIFIED18Bernardo Dominic
1038Salvatore StockhamRussia2026-04-18Printing Dimensions NEW42Stephen Shaw
1039Maisha RulapaughCanada2026-04-19Printing Dimensions RENEWAL24Ivan Magalhaes
1040Greenwood BologniaBrazil2026-04-22Buckley Miller Wright PROPOSAL67Xuxue Feng
1041Adams MorascaRussia2026-04-02Chanay, Jeffrey A Esq PROPOSAL33Onyama Limba
1042Aruna FigeroaFrance2026-04-10Chapman, Ross E Esq QUALIFIED22Stephen Shaw
1043Tony FollerJapan2026-03-31Rousseaux, Michael Esq PROPOSAL11Stephen Shaw
1044Jennifer AmigonGermany2026-03-29Feiner Bros NEW74Xuxue Feng
1045Silvio SlusarskiSpain2026-04-06Chapman, Ross E Esq RENEWAL63Elwin Sharvill
1046Darci PoquetteJapan2026-04-25Truhlar And Truhlar Attys PROPOSAL54Ioni Bowcher
1047Wickens NestleGermany2026-03-30Printing Dimensions NEGOTIATION87Asiya Javayant
1048Jennifer AmigonItaly2026-04-10Printing Dimensions QUALIFIED32Anna Fali
1049Smith GlickItaly2026-04-06Chapman, Ross E Esq NEGOTIATION90Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaStephen Shaw RENEWAL
Nicolas IturbideGermanyAmy Elsner RENEWAL
Arvin AlbaresGermanyAnna Fali NEGOTIATION
Kadeem FlosiAustraliaStephen Shaw PROPOSAL
Juan WieserUnited KingdomIvan Magalhaes RENEWAL
Leja CaldareraArgentinaBernardo Dominic NEW
Clifford RimCanadaXuxue Feng PROPOSAL
Maria MarrierJapanStephen Shaw NEGOTIATION
Octavia MaletGermanyOnyama Limba QUALIFIED
Clifford RimJapanIoni Bowcher NEW
Leja CaldareraGermanyAsiya Javayant NEW
Juan WieserRussiaElwin Sharvill PROPOSAL
Sinclair WaycottArgentinaIoni Bowcher NEGOTIATION
Ricardo GauchoGermanyIvan Magalhaes UNQUALIFIED
Stacey MacleadJapanAsiya Javayant UNQUALIFIED
Greenwood BologniaCanadaAsiya Javayant RENEWAL
Jefferson SchemmerBrazilIoni Bowcher PROPOSAL
Cody SaylorsJapanOnyama Limba NEW
Isabel BowleySpainBernardo Dominic UNQUALIFIED
Deepesh ChuiUnited KingdomStephen Shaw NEW
David DarakjyBrazilBernardo Dominic UNQUALIFIED
Mujtaba NickaRussiaAnna Fali QUALIFIED
Aditya KuskoSpainBernardo Dominic NEW
Tony FollerItalyAnna Fali PROPOSAL
Leon OldroydUnited KingdomBernardo Dominic NEGOTIATION
Aditya KuskoJapanOnyama Limba NEGOTIATION
Claire TollnerIndiaOnyama Limba QUALIFIED
Misaki RoysterJapanXuxue Feng RENEWAL
Mujtaba NickaFranceBernardo Dominic NEW
Alejandro PerinAustraliaBernardo Dominic RENEWAL
Nicolas IturbideIndiaBernardo Dominic NEW
Claire TollnerJapanAnna Fali QUALIFIED
Greenwood BologniaJapanAsiya Javayant RENEWAL
Claire TollnerArgentinaBernardo Dominic UNQUALIFIED
Misaki RoysterFranceStephen Shaw NEGOTIATION
Jennifer AmigonArgentinaXuxue Feng PROPOSAL
Octavia MaletIndiaIoni Bowcher PROPOSAL
Johnson SergiUnited KingdomIvan Magalhaes PROPOSAL
James ButtArgentinaStephen Shaw RENEWAL
Wickens NestleJapanAnna Fali PROPOSAL
Claire TollnerArgentinaElwin Sharvill PROPOSAL
Isabel BowleyJapanIvan Magalhaes QUALIFIED
Stacey MacleadGermanyXuxue Feng NEW
Kadeem FlosiAustraliaElwin Sharvill QUALIFIED
Stacey MacleadBrazilAnna Fali UNQUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher RENEWAL
Aika InouyeBrazilAnna Fali NEW
Claire TollnerRussiaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Jefferson Schemmer
Greenwood Bolognia
Greenwood Bolognia
Mujtaba Nicka
Maisha Rulapaugh
Morrow Ruta
Alejandro Perin
Misaki Royster
Faith Gillian
Stacey Maclead
Chavez Briddick
Antonio Caudy
Greenwood Bolognia
Leja Caldarera
Ricardo Gaucho
Ricardo Gaucho
James Butt
Ashley Doe
Emily Whobrey
James Butt
Ashley Doe
Maisha Rulapaugh
Izzy Garufi
Adams Morasca
Chavez Briddick
Darci Poquette
Jeanfrancois Venere
Maria Marrier
Cody Saylors
Aditya Kusko
Isabel Bowley
Silvio Slusarski
Izzy Garufi
Claire Tollner
Deepesh Chui
David Darakjy
Ashley Doe
Johnson Sergi
Kaitlin Ostrosky
Murillo Malet
Nicolas Iturbide
Cody Saylors
Adams Morasca
Isabel Bowley
Leja Caldarera
Wickens Nestle
Clifford Rim
Johnson Sergi
Morrow Ruta
Maisha Rulapaugh
IdCountryDate
1000India2026-04-26
1001Canada2026-03-30
1002Canada2026-04-13
1003Russia2026-04-22
1004Russia2026-04-25
1005Spain2026-04-08
1006Russia2026-03-29
1007Japan2026-04-20
1008Spain2026-04-12
1009France2026-04-25
1010Argentina2026-04-16
1011France2026-04-24
1012Australia2026-04-19
1013Argentina2026-03-30
1014Germany2026-04-21
1015Germany2026-04-24
1016Italy2026-04-22
1017Canada2026-04-23
1018Italy2026-04-10
1019Germany2026-04-25
1020India2026-04-19
1021Germany2026-04-06
1022Italy2026-04-25
1023Australia2026-04-08
1024Russia2026-04-10
1025Argentina2026-04-25
1026India2026-04-18
1027Russia2026-04-13
1028Australia2026-04-01
1029Italy2026-04-02
1030Brazil2026-04-19
1031Argentina2026-04-06
1032France2026-03-31
1033United Kingdom2026-04-22
1034United Kingdom2026-04-09
1035Italy2026-04-06
1036France2026-04-05
1037Russia2026-04-23
1038Japan2026-03-31
1039Italy2026-04-27
1040Spain2026-04-13
1041United Kingdom2026-04-24
1042Japan2026-04-22
1043Russia2026-04-08
1044Argentina2026-04-09
1045Russia2026-03-31
1046India2026-04-20
1047United Kingdom2026-04-17
1048Brazil2026-04-25
1049Spain2026-04-25

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Spain2026-04-25
Kaitlin Ostrosky1001Brazil2026-04-10
Salvatore Stockham1002Argentina2026-04-02
Arvin Albares1003Germany2026-04-04
Nicolas Iturbide1004Japan2026-04-02
Kadeem Flosi1005France2026-04-19
Mayumi Kolmetz1006Brazil2026-04-09
Alejandro Perin1007Japan2026-03-31
James Butt1008France2026-04-08
Isabel Bowley1009Canada2026-04-27
Mayumi Kolmetz1010Russia2026-04-03
Isabel Bowley1011Canada2026-04-09
Wickens Nestle1012France2026-04-20
David Darakjy1013Japan2026-04-27
Aika Inouye1014Canada2026-03-29
Deepesh Chui1015Japan2026-04-24
Mujtaba Nicka1016Italy2026-04-20
Tony Foller1017Argentina2026-04-02
Faith Gillian1018Italy2026-04-22
Francesco Shinko1019Japan2026-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyBrazilOnyama Limba UNQUALIFIED
Salvatore StockhamSpainElwin Sharvill RENEWAL
Munro FerenczIndiaElwin Sharvill QUALIFIED
Emily WhobreyAustraliaStephen Shaw NEGOTIATION
Ivar PaprockiIndiaAmy Elsner NEGOTIATION
Ivar PaprockiItalyOnyama Limba PROPOSAL
Misaki RoysterIndiaXuxue Feng UNQUALIFIED
Julie StensethAustraliaStephen Shaw NEGOTIATION
Cody SaylorsSpainIoni Bowcher PROPOSAL
Antonio CaudyFranceOnyama Limba UNQUALIFIED
Mayumi KolmetzIndiaAnna Fali NEW
Smith GlickJapanElwin Sharvill NEW
Ivar PaprockiRussiaXuxue Feng NEGOTIATION
Misaki RoysterItalyAmy Elsner RENEWAL
Julie StensethGermanyIvan Magalhaes NEW
Faith GillianAustraliaAsiya Javayant RENEWAL
Julie StensethGermanyElwin Sharvill UNQUALIFIED
Misaki RoysterSpainAmy Elsner NEW
Jefferson SchemmerBrazilXuxue Feng PROPOSAL
Jennifer AmigonItalyAnna Fali RENEWAL
Morrow RutaArgentinaXuxue Feng QUALIFIED
Arvin AlbaresBrazilBernardo Dominic PROPOSAL
Costa DilliardGermanyOnyama Limba PROPOSAL
Julie StensethIndiaIoni Bowcher RENEWAL
David DarakjyItalyElwin Sharvill RENEWAL
Misaki RoysterArgentinaAnna Fali RENEWAL
Juan WieserCanadaXuxue Feng UNQUALIFIED
Costa DilliardFranceIvan Magalhaes PROPOSAL
Aruna FigeroaSpainBernardo Dominic NEW
Deepesh ChuiArgentinaAnna Fali NEGOTIATION
Leon OldroydGermanyXuxue Feng RENEWAL
Morrow RutaCanadaAsiya Javayant NEW
Leja CaldareraItalyXuxue Feng PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher UNQUALIFIED
Aditya KuskoBrazilAnna Fali RENEWAL
Antonio CaudyRussiaStephen Shaw RENEWAL
Francesco ShinkoRussiaAnna Fali QUALIFIED
Ivar PaprockiItalyXuxue Feng PROPOSAL
Maria MarrierJapanBernardo Dominic QUALIFIED
James ButtArgentinaBernardo Dominic NEW

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