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
Mujtaba NickaIndiaXuxue Feng RENEWAL
Ricardo GauchoCanadaOnyama Limba NEGOTIATION
Mujtaba NickaCanadaIoni Bowcher UNQUALIFIED
Murillo MaletJapanAnna Fali QUALIFIED
Silvio SlusarskiJapanAmy Elsner PROPOSAL
Maisha RulapaughBrazilAsiya Javayant RENEWAL
Smith GlickItalyOnyama Limba UNQUALIFIED
Ashley DoeItalyAnna Fali NEW
Deepesh ChuiBrazilElwin Sharvill NEGOTIATION
Ashley DoeRussiaAsiya Javayant NEW
Misaki RoysterJapanIoni Bowcher RENEWAL
Leja CaldareraArgentinaStephen Shaw PROPOSAL
Misaki RoysterSpainIoni Bowcher QUALIFIED
Chavez BriddickFranceStephen Shaw PROPOSAL
Ivar PaprockiBrazilIoni Bowcher RENEWAL
Silvio SlusarskiFranceOnyama Limba NEGOTIATION
Murillo MaletArgentinaIoni Bowcher PROPOSAL
Aditya KuskoFranceAsiya Javayant RENEWAL
Adams MorascaUnited KingdomOnyama Limba NEGOTIATION
Ivar PaprockiFranceAsiya Javayant RENEWAL
Jefferson SchemmerRussiaIoni Bowcher PROPOSAL
Isabel BowleyIndiaAsiya Javayant PROPOSAL
Isabel BowleyRussiaIvan Magalhaes NEW
Jeanfrancois VenereCanadaAmy Elsner RENEWAL
Smith GlickBrazilAmy Elsner RENEWAL
Arvin AlbaresGermanyAmy Elsner NEGOTIATION
Alejandro PerinJapanStephen Shaw PROPOSAL
Greenwood BologniaItalyXuxue Feng NEGOTIATION
Darci PoquetteRussiaOnyama Limba PROPOSAL
Ivar PaprockiBrazilAmy Elsner PROPOSAL
Murillo MaletJapanAmy Elsner UNQUALIFIED
Wickens NestleJapanAmy Elsner RENEWAL
Francesco ShinkoCanadaAnna Fali RENEWAL
Maria MarrierAustraliaElwin Sharvill NEGOTIATION
Jefferson SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Juan WieserFranceElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Aika InouyeSpainIoni Bowcher QUALIFIED
Claire TollnerItalyIoni Bowcher NEW
Ricardo GauchoCanadaBernardo Dominic RENEWAL
Francesco ShinkoGermanyAsiya Javayant QUALIFIED
Mayumi KolmetzCanadaOnyama Limba QUALIFIED
Ricardo GauchoCanadaIoni Bowcher NEGOTIATION
Misaki RoysterAustraliaIvan Magalhaes NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng NEGOTIATION
Julie StensethFranceStephen Shaw NEGOTIATION
Leon OldroydAustraliaAmy Elsner RENEWAL
Emily WhobreyAustraliaBernardo Dominic RENEWAL
Maisha RulapaughIndiaIoni Bowcher QUALIFIED
Faith GillianJapanStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardItalyIoni Bowcher RENEWAL
Mujtaba NickaUnited KingdomOnyama Limba NEW
Darci PoquetteSpainAsiya Javayant NEW
Kaitlin OstroskyAustraliaOnyama Limba RENEWAL
Morrow RutaAustraliaAsiya Javayant NEW
Francesco ShinkoFranceIoni Bowcher NEW
Aika InouyeUnited KingdomAsiya Javayant NEW
Emily WhobreyBrazilAmy Elsner RENEWAL
Jennifer AmigonCanadaAnna Fali RENEWAL
Mayumi KolmetzItalyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianSpain2026-04-16Feltz Printing Service PROPOSAL28Onyama Limba
1001Arvin AlbaresBrazil2026-04-15Rousseaux, Michael Esq RENEWAL45Amy Elsner
1002Jennifer AmigonIndia2026-05-14King, Christopher A Esq QUALIFIED64Ioni Bowcher
1003Murillo MaletBrazil2026-05-06Benton, John B Jr NEW36Amy Elsner
1004Johnson SergiCanada2026-04-18Printing Dimensions NEW6Onyama Limba
1005Stacey MacleadGermany2026-05-03Dorl, James J Esq QUALIFIED30Elwin Sharvill
1006Julie StensethBrazil2026-04-15Commercial Press RENEWAL41Anna Fali
1007Mujtaba NickaJapan2026-04-20Feltz Printing Service UNQUALIFIED72Onyama Limba
1008Munro FerenczArgentina2026-04-26Chapman, Ross E Esq RENEWAL52Xuxue Feng
1009Clifford RimBrazil2026-04-23Morlong Associates PROPOSAL55Onyama Limba
1010Kadeem FlosiRussia2026-05-04Rangoni Of Florence RENEWAL80Bernardo Dominic
1011Ashley DoeCanada2026-04-30Chemel, James L Cpa RENEWAL2Anna Fali
1012Leja CaldareraRussia2026-04-17Commercial Press NEW59Ivan Magalhaes
1013Tony FollerCanada2026-05-10Chemel, James L Cpa QUALIFIED12Bernardo Dominic
1014James ButtFrance2026-05-01Commercial Press PROPOSAL70Ivan Magalhaes
1015Johnson SergiArgentina2026-04-19King, Christopher A Esq PROPOSAL75Ivan Magalhaes
1016Chavez BriddickUnited Kingdom2026-04-16Feltz Printing Service NEW5Anna Fali
1017Jones VocelkaCanada2026-05-07Dorl, James J Esq PROPOSAL59Bernardo Dominic
1018Cody SaylorsRussia2026-05-13Rangoni Of Florence RENEWAL26Asiya Javayant
1019Leja CaldareraCanada2026-05-02Morlong Associates QUALIFIED92Stephen Shaw
1020Adams MorascaJapan2026-05-08Chapman, Ross E Esq QUALIFIED37Bernardo Dominic
1021Juan WieserBrazil2026-05-02Dorl, James J Esq NEW93Xuxue Feng
1022Smith GlickCanada2026-04-27Truhlar And Truhlar Attys PROPOSAL33Elwin Sharvill
1023Silvio SlusarskiBrazil2026-05-12Chapman, Ross E Esq NEW69Amy Elsner
1024Maisha RulapaughJapan2026-04-24Rousseaux, Michael Esq NEGOTIATION44Stephen Shaw
1025Adams MorascaIndia2026-05-13King, Christopher A Esq PROPOSAL41Xuxue Feng
1026Wickens NestleItaly2026-05-09Rousseaux, Michael Esq NEGOTIATION2Bernardo Dominic
1027Mayumi KolmetzItaly2026-05-09Dorl, James J Esq RENEWAL12Ioni Bowcher
1028Munro FerenczUnited Kingdom2026-05-12King, Christopher A Esq PROPOSAL50Bernardo Dominic
1029Clifford RimGermany2026-04-24Morlong Associates PROPOSAL77Elwin Sharvill
1030Ricardo GauchoCanada2026-04-22Benton, John B Jr RENEWAL87Asiya Javayant
1031Cody SaylorsSpain2026-04-19Chemel, James L Cpa NEGOTIATION59Amy Elsner
1032Leja CaldareraAustralia2026-05-14Commercial Press NEW10Asiya Javayant
1033Alejandro PerinSpain2026-05-11Buckley Miller Wright NEGOTIATION59Xuxue Feng
1034Nicolas IturbideSpain2026-04-27Buckley Miller Wright NEGOTIATION49Ioni Bowcher
1035Jennifer AmigonFrance2026-05-01King, Christopher A Esq QUALIFIED73Ioni Bowcher
1036Adams MorascaBrazil2026-05-09King, Christopher A Esq NEGOTIATION8Amy Elsner
1037Kaitlin OstroskyArgentina2026-04-25Chanay, Jeffrey A Esq PROPOSAL81Stephen Shaw
1038Nicolas IturbideArgentina2026-04-26Buckley Miller Wright PROPOSAL8Onyama Limba
1039Misaki RoysterItaly2026-05-08Chapman, Ross E Esq RENEWAL77Asiya Javayant
1040Murillo MaletUnited Kingdom2026-05-13Benton, John B Jr PROPOSAL82Xuxue Feng
1041James ButtBrazil2026-04-29Truhlar And Truhlar Attys NEW64Ivan Magalhaes
1042Munro FerenczUnited Kingdom2026-05-13Truhlar And Truhlar Attys NEW61Ivan Magalhaes
1043Maisha RulapaughUnited Kingdom2026-05-06Benton, John B Jr RENEWAL0Xuxue Feng
1044Jefferson SchemmerCanada2026-05-05King, Christopher A Esq UNQUALIFIED49Ivan Magalhaes
1045Alejandro PerinCanada2026-04-15Buckley Miller Wright RENEWAL84Asiya Javayant
1046Izzy GarufiGermany2026-04-30Feiner Bros NEGOTIATION82Elwin Sharvill
1047Aditya KuskoArgentina2026-05-13Dorl, James J Esq PROPOSAL82Ioni Bowcher
1048Tony FollerSpain2026-04-18Chemel, James L Cpa NEGOTIATION11Bernardo Dominic
1049Kaitlin OstroskyIndia2026-05-13Rousseaux, Michael Esq QUALIFIED15Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiSpainStephen Shaw PROPOSAL
Leja CaldareraBrazilAsiya Javayant NEGOTIATION
Maisha RulapaughSpainAnna Fali NEW
Alejandro PerinBrazilAmy Elsner NEW
Wickens NestleArgentinaAmy Elsner UNQUALIFIED
Clifford RimAustraliaAmy Elsner NEW
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Munro FerenczRussiaAmy Elsner NEGOTIATION
Antonio CaudyCanadaAnna Fali NEGOTIATION
Murillo MaletCanadaBernardo Dominic RENEWAL
Maisha RulapaughCanadaStephen Shaw NEGOTIATION
Maria MarrierAustraliaIoni Bowcher NEGOTIATION
Maisha RulapaughJapanAnna Fali PROPOSAL
Faith GillianRussiaAsiya Javayant NEW
Morrow RutaAustraliaXuxue Feng NEW
Silvio SlusarskiIndiaStephen Shaw NEGOTIATION
Smith GlickItalyAsiya Javayant PROPOSAL
Antonio CaudyAustraliaStephen Shaw RENEWAL
Claire TollnerItalyIoni Bowcher NEGOTIATION
Maisha RulapaughItalyXuxue Feng UNQUALIFIED
Octavia MaletIndiaAsiya Javayant UNQUALIFIED
Aika InouyeFranceAmy Elsner NEW
Juan WieserBrazilXuxue Feng NEW
Faith GillianItalyOnyama Limba RENEWAL
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Deepesh ChuiArgentinaElwin Sharvill NEW
Kadeem FlosiItalyIvan Magalhaes QUALIFIED
Jennifer AmigonItalyAmy Elsner RENEWAL
Leja CaldareraJapanBernardo Dominic RENEWAL
Ricardo GauchoGermanyAsiya Javayant UNQUALIFIED
David DarakjyUnited KingdomXuxue Feng PROPOSAL
Antonio CaudyAustraliaOnyama Limba UNQUALIFIED
Jennifer AmigonJapanIoni Bowcher RENEWAL
Ivar PaprockiUnited KingdomXuxue Feng NEW
Stacey MacleadIndiaAsiya Javayant UNQUALIFIED
Mayumi KolmetzArgentinaAsiya Javayant RENEWAL
Adams MorascaArgentinaElwin Sharvill NEW
Jennifer AmigonRussiaAnna Fali QUALIFIED
Aika InouyeItalyStephen Shaw QUALIFIED
Ivar PaprockiCanadaXuxue Feng NEGOTIATION
Adams MorascaUnited KingdomElwin Sharvill QUALIFIED
Francesco ShinkoItalyAnna Fali NEGOTIATION
David DarakjySpainOnyama Limba UNQUALIFIED
Mayumi KolmetzAustraliaIvan Magalhaes NEGOTIATION
Chavez BriddickItalyElwin Sharvill PROPOSAL
James ButtBrazilAnna Fali PROPOSAL
Izzy GarufiArgentinaXuxue Feng NEGOTIATION
Clifford RimGermanyIvan Magalhaes NEW
Nicolas IturbideRussiaOnyama Limba UNQUALIFIED
Morrow RutaItalyAmy Elsner PROPOSAL
Frozen Columns
Name
Julie Stenseth
Maria Marrier
Alejandro Perin
Wickens Nestle
Leon Oldroyd
Jefferson Schemmer
Aditya Kusko
Sinclair Waycott
Chavez Briddick
Tony Foller
Alejandro Perin
Antonio Caudy
Jennifer Amigon
Arvin Albares
Jones Vocelka
Ashley Doe
Leja Caldarera
Juan Wieser
Salvatore Stockham
Costa Dilliard
Darci Poquette
Clifford Rim
Jones Vocelka
Wickens Nestle
Adams Morasca
Misaki Royster
Jones Vocelka
James Butt
Maisha Rulapaugh
Emily Whobrey
Izzy Garufi
Jennifer Amigon
Juan Wieser
Antonio Caudy
Emily Whobrey
David Darakjy
Aika Inouye
Munro Ferencz
Ivar Paprocki
Izzy Garufi
Francesco Shinko
Aika Inouye
Stacey Maclead
Aditya Kusko
Leja Caldarera
Tony Foller
Cody Saylors
Jennifer Amigon
Adams Morasca
James Butt
IdCountryDate
1000Brazil2026-04-27
1001Australia2026-04-21
1002United Kingdom2026-05-10
1003India2026-05-02
1004Canada2026-05-04
1005France2026-05-03
1006Canada2026-05-09
1007Spain2026-05-03
1008Canada2026-04-21
1009Germany2026-05-07
1010Germany2026-05-10
1011Brazil2026-05-06
1012Canada2026-05-05
1013Japan2026-04-22
1014United Kingdom2026-04-26
1015France2026-04-22
1016Japan2026-04-17
1017France2026-05-03
1018Japan2026-04-21
1019Italy2026-05-08
1020United Kingdom2026-04-16
1021India2026-05-05
1022Brazil2026-04-25
1023Argentina2026-04-22
1024Italy2026-04-28
1025India2026-04-24
1026Italy2026-04-27
1027India2026-04-23
1028France2026-04-23
1029Spain2026-04-28
1030Japan2026-04-15
1031Argentina2026-04-26
1032India2026-05-09
1033Japan2026-04-21
1034Canada2026-05-07
1035Italy2026-05-13
1036Argentina2026-05-05
1037United Kingdom2026-05-10
1038Canada2026-05-06
1039Spain2026-04-25
1040India2026-05-14
1041Italy2026-05-07
1042India2026-05-08
1043Spain2026-05-04
1044Italy2026-05-05
1045France2026-04-26
1046Canada2026-05-04
1047Germany2026-05-14
1048United Kingdom2026-04-27
1049Canada2026-04-22

On-Demand Data

NameIdCountryDate
Aika Inouye1000Canada2026-05-06
Julie Stenseth1001Brazil2026-05-11
Morrow Ruta1002Germany2026-04-27
Mayumi Kolmetz1003Spain2026-04-23
Nicolas Iturbide1004United Kingdom2026-04-17
Morrow Ruta1005Brazil2026-04-29
Julie Stenseth1006Argentina2026-05-07
Jefferson Schemmer1007India2026-04-17
Murillo Malet1008Spain2026-05-14
Leja Caldarera1009Australia2026-05-02
Julie Stenseth1010Russia2026-05-01
Jennifer Amigon1011United Kingdom2026-05-01
Chavez Briddick1012Germany2026-05-06
Izzy Garufi1013Canada2026-04-21
Juan Wieser1014Spain2026-04-20
Arvin Albares1015Canada2026-04-22
Ashley Doe1016Italy2026-05-09
Jones Vocelka1017Italy2026-05-03
Maria Marrier1018Spain2026-05-02
Kaitlin Ostrosky1019Spain2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Ivar PaprockiJapanXuxue Feng UNQUALIFIED
Emily WhobreyJapanXuxue Feng PROPOSAL
Isabel BowleyJapanXuxue Feng UNQUALIFIED
Kadeem FlosiUnited KingdomAsiya Javayant RENEWAL
Kaitlin OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Stacey MacleadFranceIoni Bowcher UNQUALIFIED
Deepesh ChuiFranceBernardo Dominic NEGOTIATION
Claire TollnerAustraliaBernardo Dominic QUALIFIED
Chavez BriddickItalyAmy Elsner RENEWAL
Murillo MaletCanadaIvan Magalhaes PROPOSAL
Jefferson SchemmerCanadaOnyama Limba NEW
Darci PoquetteRussiaAmy Elsner QUALIFIED
Nicolas IturbideArgentinaXuxue Feng NEW
Smith GlickFranceStephen Shaw NEGOTIATION
Arvin AlbaresSpainAnna Fali PROPOSAL
Adams MorascaGermanyElwin Sharvill QUALIFIED
Aditya KuskoItalyXuxue Feng QUALIFIED
Greenwood BologniaBrazilAnna Fali QUALIFIED
Jeanfrancois VenereCanadaIoni Bowcher RENEWAL
Kaitlin OstroskyBrazilIvan Magalhaes NEGOTIATION
Jones VocelkaFranceOnyama Limba RENEWAL
Isabel BowleyItalyXuxue Feng RENEWAL
Clifford RimGermanyAmy Elsner QUALIFIED
Darci PoquetteUnited KingdomOnyama Limba RENEWAL
Aruna FigeroaBrazilIoni Bowcher UNQUALIFIED
Izzy GarufiJapanAmy Elsner NEGOTIATION
Emily WhobreyUnited KingdomAnna Fali PROPOSAL
Salvatore StockhamFranceIvan Magalhaes PROPOSAL
Johnson SergiIndiaStephen Shaw RENEWAL
Jeanfrancois VenereBrazilIoni Bowcher NEW
Antonio CaudyFranceBernardo Dominic NEW
Smith GlickArgentinaOnyama Limba PROPOSAL
Clifford RimIndiaOnyama Limba NEGOTIATION
Claire TollnerArgentinaBernardo Dominic NEGOTIATION
David DarakjyCanadaIoni Bowcher PROPOSAL
Leon OldroydGermanyElwin Sharvill RENEWAL
Aika InouyeSpainAsiya Javayant PROPOSAL
Sinclair WaycottCanadaAmy Elsner NEGOTIATION
Faith GillianJapanIoni Bowcher 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>