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
Izzy GarufiJapanElwin Sharvill PROPOSAL
Julie StensethUnited KingdomBernardo Dominic RENEWAL
Ashley DoeUnited KingdomStephen Shaw QUALIFIED
Maria MarrierItalyElwin Sharvill NEW
Cody SaylorsIndiaAsiya Javayant QUALIFIED
Aika InouyeArgentinaBernardo Dominic PROPOSAL
Aruna FigeroaSpainAmy Elsner NEW
Izzy GarufiFranceElwin Sharvill UNQUALIFIED
James ButtBrazilIoni Bowcher UNQUALIFIED
Faith GillianCanadaAmy Elsner NEW
Salvatore StockhamIndiaAsiya Javayant NEW
Ricardo GauchoAustraliaIoni Bowcher NEGOTIATION
Wickens NestleGermanyBernardo Dominic NEW
James ButtRussiaBernardo Dominic NEW
Costa DilliardRussiaElwin Sharvill NEW
Nicolas IturbideAustraliaAsiya Javayant UNQUALIFIED
Aditya KuskoGermanyAnna Fali RENEWAL
Isabel BowleyRussiaXuxue Feng RENEWAL
Wickens NestleFranceAsiya Javayant RENEWAL
Darci PoquetteJapanStephen Shaw RENEWAL
Salvatore StockhamRussiaAsiya Javayant QUALIFIED
Jeanfrancois VenereAustraliaElwin Sharvill NEGOTIATION
Alejandro PerinRussiaAmy Elsner NEW
Mujtaba NickaRussiaAsiya Javayant PROPOSAL
Francesco ShinkoArgentinaElwin Sharvill PROPOSAL
Wickens NestleBrazilOnyama Limba RENEWAL
Munro FerenczBrazilAnna Fali NEGOTIATION
Jennifer AmigonGermanyBernardo Dominic PROPOSAL
Morrow RutaGermanyBernardo Dominic NEW
David DarakjyBrazilAmy Elsner NEGOTIATION
Maria MarrierIndiaBernardo Dominic RENEWAL
Kadeem FlosiSpainStephen Shaw NEW
Murillo MaletGermanyIvan Magalhaes PROPOSAL
Silvio SlusarskiJapanElwin Sharvill UNQUALIFIED
Aika InouyeItalyXuxue Feng QUALIFIED
Jones VocelkaCanadaBernardo Dominic QUALIFIED
Silvio SlusarskiSpainElwin Sharvill PROPOSAL
Octavia MaletItalyIvan Magalhaes PROPOSAL
Nicolas IturbideRussiaOnyama Limba QUALIFIED
Maisha RulapaughSpainOnyama Limba QUALIFIED
Leja CaldareraCanadaOnyama Limba PROPOSAL
Wickens NestleBrazilIoni Bowcher PROPOSAL
Mujtaba NickaGermanyStephen Shaw UNQUALIFIED
Juan WieserUnited KingdomAnna Fali RENEWAL
Ashley DoeCanadaIvan Magalhaes PROPOSAL
Maria MarrierRussiaXuxue Feng PROPOSAL
Sinclair WaycottItalyBernardo Dominic NEW
Cody SaylorsUnited KingdomXuxue Feng NEGOTIATION
Kaitlin OstroskyIndiaIoni Bowcher NEW
Munro FerenczSpainAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereAustraliaStephen Shaw PROPOSAL
Claire TollnerGermanyStephen Shaw UNQUALIFIED
Adams MorascaAustraliaStephen Shaw PROPOSAL
Munro FerenczItalyStephen Shaw NEGOTIATION
Jones VocelkaAustraliaOnyama Limba UNQUALIFIED
James ButtArgentinaElwin Sharvill NEGOTIATION
Silvio SlusarskiJapanOnyama Limba UNQUALIFIED
Aika InouyeFranceAnna Fali RENEWAL
Emily WhobreyBrazilBernardo Dominic UNQUALIFIED
Antonio CaudyJapanElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody SaylorsGermany2026-04-19Printing Dimensions NEGOTIATION39Ioni Bowcher
1001Arvin AlbaresJapan2026-04-27Dorl, James J Esq PROPOSAL45Elwin Sharvill
1002Smith GlickArgentina2026-05-05Truhlar And Truhlar Attys PROPOSAL65Elwin Sharvill
1003Smith GlickGermany2026-04-30Benton, John B Jr NEGOTIATION82Bernardo Dominic
1004Maria MarrierRussia2026-05-07Chemel, James L Cpa UNQUALIFIED27Ivan Magalhaes
1005Greenwood BologniaItaly2026-05-04Commercial Press NEW25Asiya Javayant
1006Jeanfrancois VenereAustralia2026-04-17Chemel, James L Cpa UNQUALIFIED2Stephen Shaw
1007Ashley DoeIndia2026-04-25Benton, John B Jr QUALIFIED48Elwin Sharvill
1008Wickens NestleRussia2026-04-25Printing Dimensions UNQUALIFIED47Ivan Magalhaes
1009Julie StensethUnited Kingdom2026-04-28Buckley Miller Wright QUALIFIED8Ivan Magalhaes
1010Salvatore StockhamUnited Kingdom2026-04-27Dorl, James J Esq UNQUALIFIED50Asiya Javayant
1011Costa DilliardBrazil2026-05-04Feiner Bros RENEWAL33Amy Elsner
1012Faith GillianItaly2026-05-13Printing Dimensions RENEWAL45Stephen Shaw
1013Isabel BowleyFrance2026-05-05Chemel, James L Cpa NEGOTIATION86Ivan Magalhaes
1014Jennifer AmigonIndia2026-05-05Printing Dimensions PROPOSAL22Stephen Shaw
1015Maria MarrierRussia2026-05-14Rangoni Of Florence UNQUALIFIED24Elwin Sharvill
1016Stacey MacleadGermany2026-05-02Morlong Associates NEW77Elwin Sharvill
1017Adams MorascaFrance2026-04-26Truhlar And Truhlar Attys PROPOSAL0Bernardo Dominic
1018Ricardo GauchoRussia2026-04-28Dorl, James J Esq RENEWAL33Ivan Magalhaes
1019Juan WieserArgentina2026-05-15Truhlar And Truhlar Attys NEGOTIATION49Xuxue Feng
1020Leon OldroydBrazil2026-05-03Morlong Associates UNQUALIFIED69Stephen Shaw
1021Tony FollerUnited Kingdom2026-05-10Rangoni Of Florence NEGOTIATION85Asiya Javayant
1022Morrow RutaBrazil2026-05-03Chanay, Jeffrey A Esq QUALIFIED50Onyama Limba
1023Mayumi KolmetzUnited Kingdom2026-05-14Benton, John B Jr NEW8Stephen Shaw
1024Deepesh ChuiFrance2026-05-12Rangoni Of Florence UNQUALIFIED30Asiya Javayant
1025Emily WhobreyUnited Kingdom2026-05-10Feltz Printing Service UNQUALIFIED70Ioni Bowcher
1026Darci PoquetteRussia2026-04-24Truhlar And Truhlar Attys NEW27Ioni Bowcher
1027Jefferson SchemmerAustralia2026-05-01Chanay, Jeffrey A Esq RENEWAL4Asiya Javayant
1028Silvio SlusarskiRussia2026-05-02Chemel, James L Cpa QUALIFIED97Asiya Javayant
1029Isabel BowleyIndia2026-05-01Chemel, James L Cpa UNQUALIFIED93Asiya Javayant
1030Stacey MacleadAustralia2026-05-07Benton, John B Jr PROPOSAL88Ivan Magalhaes
1031Isabel BowleyArgentina2026-05-09Morlong Associates QUALIFIED67Asiya Javayant
1032Antonio CaudyItaly2026-05-11Chemel, James L Cpa PROPOSAL66Onyama Limba
1033Mujtaba NickaIndia2026-04-20Feltz Printing Service PROPOSAL63Amy Elsner
1034Leon OldroydBrazil2026-05-04Morlong Associates NEGOTIATION6Anna Fali
1035Smith GlickRussia2026-05-04King, Christopher A Esq NEGOTIATION42Asiya Javayant
1036Maisha RulapaughBrazil2026-05-03Rangoni Of Florence QUALIFIED34Asiya Javayant
1037Sinclair WaycottAustralia2026-05-09Printing Dimensions UNQUALIFIED86Anna Fali
1038Silvio SlusarskiRussia2026-04-30Chemel, James L Cpa NEGOTIATION17Ioni Bowcher
1039Isabel BowleyFrance2026-05-06Buckley Miller Wright PROPOSAL51Amy Elsner
1040Aika InouyeUnited Kingdom2026-04-21Buckley Miller Wright QUALIFIED93Asiya Javayant
1041Julie StensethJapan2026-04-23Dorl, James J Esq UNQUALIFIED4Ioni Bowcher
1042Morrow RutaCanada2026-04-18Rousseaux, Michael Esq UNQUALIFIED29Asiya Javayant
1043Faith GillianBrazil2026-05-05Feiner Bros NEGOTIATION70Ivan Magalhaes
1044Darci PoquetteAustralia2026-04-25Dorl, James J Esq RENEWAL14Ioni Bowcher
1045Murillo MaletIndia2026-05-02Chanay, Jeffrey A Esq QUALIFIED21Anna Fali
1046Smith GlickJapan2026-05-16Rangoni Of Florence NEW71Bernardo Dominic
1047Costa DilliardGermany2026-04-26Dorl, James J Esq NEGOTIATION90Asiya Javayant
1048Isabel BowleyGermany2026-05-01Feltz Printing Service NEW22Xuxue Feng
1049Adams MorascaGermany2026-05-16Feltz Printing Service NEGOTIATION26Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterBrazilIvan Magalhaes PROPOSAL
Nicolas IturbideCanadaAsiya Javayant QUALIFIED
Francesco ShinkoCanadaIoni Bowcher PROPOSAL
Munro FerenczJapanXuxue Feng NEW
Octavia MaletBrazilIoni Bowcher QUALIFIED
Izzy GarufiJapanStephen Shaw RENEWAL
Munro FerenczFranceAmy Elsner NEW
Izzy GarufiAustraliaAsiya Javayant RENEWAL
Izzy GarufiJapanAsiya Javayant NEW
David DarakjyRussiaStephen Shaw NEW
Emily WhobreyCanadaAsiya Javayant NEGOTIATION
Faith GillianCanadaBernardo Dominic NEGOTIATION
Salvatore StockhamRussiaIoni Bowcher NEGOTIATION
David DarakjyAustraliaAmy Elsner NEW
Faith GillianGermanyAsiya Javayant NEGOTIATION
Aditya KuskoFranceIoni Bowcher PROPOSAL
Chavez BriddickArgentinaOnyama Limba UNQUALIFIED
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
Greenwood BologniaJapanIoni Bowcher RENEWAL
Murillo MaletIndiaXuxue Feng RENEWAL
Aditya KuskoUnited KingdomElwin Sharvill QUALIFIED
Clifford RimAustraliaIvan Magalhaes RENEWAL
Mayumi KolmetzGermanyAnna Fali QUALIFIED
Murillo MaletAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczSpainAsiya Javayant UNQUALIFIED
Leon OldroydAustraliaAnna Fali NEW
Clifford RimItalyStephen Shaw UNQUALIFIED
Juan WieserUnited KingdomAmy Elsner RENEWAL
Morrow RutaBrazilBernardo Dominic PROPOSAL
Octavia MaletArgentinaIvan Magalhaes QUALIFIED
Julie StensethJapanBernardo Dominic PROPOSAL
Adams MorascaItalyBernardo Dominic QUALIFIED
Jeanfrancois VenereRussiaXuxue Feng UNQUALIFIED
Costa DilliardAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoBrazilAsiya Javayant UNQUALIFIED
Maisha RulapaughIndiaElwin Sharvill NEGOTIATION
Jones VocelkaCanadaAsiya Javayant RENEWAL
Isabel BowleyCanadaXuxue Feng NEW
Aika InouyeItalyAnna Fali UNQUALIFIED
Arvin AlbaresCanadaAsiya Javayant RENEWAL
Murillo MaletFranceElwin Sharvill PROPOSAL
Deepesh ChuiRussiaAnna Fali NEW
Jeanfrancois VenereAustraliaOnyama Limba RENEWAL
Rodrigues CampainItalyOnyama Limba NEW
Smith GlickCanadaIoni Bowcher RENEWAL
Ivar PaprockiFranceAnna Fali RENEWAL
Adams MorascaIndiaBernardo Dominic PROPOSAL
Leon OldroydIndiaBernardo Dominic NEGOTIATION
Octavia MaletRussiaOnyama Limba UNQUALIFIED
Johnson SergiRussiaOnyama Limba RENEWAL
Frozen Columns
Name
Kadeem Flosi
Aditya Kusko
Leja Caldarera
Smith Glick
Juan Wieser
Arvin Albares
Mayumi Kolmetz
Faith Gillian
Stacey Maclead
Jefferson Schemmer
Jefferson Schemmer
Munro Ferencz
Ivar Paprocki
Ashley Doe
Salvatore Stockham
Arvin Albares
Munro Ferencz
Tony Foller
Tony Foller
Mujtaba Nicka
Claire Tollner
Faith Gillian
Silvio Slusarski
Misaki Royster
Jennifer Amigon
Darci Poquette
Smith Glick
Adams Morasca
Aditya Kusko
Julie Stenseth
Greenwood Bolognia
Mujtaba Nicka
Claire Tollner
Stacey Maclead
James Butt
Darci Poquette
Leja Caldarera
Octavia Malet
Leon Oldroyd
Kadeem Flosi
Munro Ferencz
Cody Saylors
Jennifer Amigon
Maria Marrier
Aika Inouye
Adams Morasca
Adams Morasca
Kaitlin Ostrosky
Munro Ferencz
Maria Marrier
IdCountryDate
1000Australia2026-05-01
1001Brazil2026-04-18
1002Brazil2026-04-25
1003Russia2026-04-22
1004Japan2026-04-18
1005Brazil2026-04-17
1006Russia2026-04-24
1007Australia2026-04-29
1008Canada2026-05-02
1009Italy2026-05-04
1010Spain2026-04-21
1011Argentina2026-04-20
1012India2026-04-28
1013Russia2026-05-09
1014Spain2026-05-01
1015Germany2026-05-11
1016India2026-04-20
1017Russia2026-04-23
1018Brazil2026-05-05
1019Argentina2026-04-18
1020India2026-05-14
1021Brazil2026-05-08
1022Spain2026-05-14
1023Spain2026-04-28
1024Australia2026-04-22
1025Canada2026-05-06
1026Japan2026-04-26
1027United Kingdom2026-05-12
1028Australia2026-04-30
1029Germany2026-05-10
1030Japan2026-04-23
1031Brazil2026-05-02
1032India2026-05-16
1033Australia2026-04-27
1034France2026-05-01
1035Spain2026-04-24
1036Canada2026-05-12
1037Canada2026-05-13
1038United Kingdom2026-05-09
1039India2026-04-26
1040Canada2026-05-02
1041Japan2026-05-07
1042United Kingdom2026-04-27
1043France2026-05-09
1044Russia2026-04-17
1045Japan2026-05-10
1046Canada2026-04-26
1047India2026-04-27
1048France2026-04-28
1049Australia2026-05-13

On-Demand Data

NameIdCountryDate
Rodrigues Campain1000United Kingdom2026-05-02
Tony Foller1001Canada2026-05-15
Nicolas Iturbide1002Russia2026-05-09
Claire Tollner1003Canada2026-04-22
Julie Stenseth1004United Kingdom2026-05-07
Sinclair Waycott1005Spain2026-04-28
Wickens Nestle1006India2026-05-11
Jones Vocelka1007India2026-05-15
Clifford Rim1008Germany2026-05-13
Chavez Briddick1009Italy2026-05-01
Antonio Caudy1010Australia2026-05-04
Maisha Rulapaugh1011Australia2026-04-17
Darci Poquette1012Argentina2026-04-19
Adams Morasca1013Brazil2026-04-17
Rodrigues Campain1014Australia2026-05-15
Murillo Malet1015Australia2026-05-13
Adams Morasca1016Italy2026-05-02
Mayumi Kolmetz1017France2026-05-10
Maria Marrier1018Canada2026-04-23
Adams Morasca1019France2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickBrazilStephen Shaw RENEWAL
Misaki RoysterBrazilOnyama Limba QUALIFIED
Salvatore StockhamCanadaOnyama Limba NEGOTIATION
Murillo MaletJapanStephen Shaw NEGOTIATION
Morrow RutaFranceAsiya Javayant UNQUALIFIED
Arvin AlbaresBrazilAmy Elsner NEW
Leja CaldareraArgentinaAnna Fali NEGOTIATION
Mayumi KolmetzArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois VenereAustraliaElwin Sharvill UNQUALIFIED
Octavia MaletJapanAsiya Javayant NEW
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Silvio SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Leon OldroydJapanAnna Fali NEGOTIATION
Adams MorascaFranceIoni Bowcher PROPOSAL
Izzy GarufiGermanyOnyama Limba NEW
Ricardo GauchoSpainIoni Bowcher PROPOSAL
Ashley DoeArgentinaAmy Elsner UNQUALIFIED
Leon OldroydCanadaIvan Magalhaes NEGOTIATION
Leon OldroydJapanElwin Sharvill NEW
Alejandro PerinRussiaIvan Magalhaes NEGOTIATION
Smith GlickIndiaIoni Bowcher PROPOSAL
Antonio CaudyItalyXuxue Feng RENEWAL
Silvio SlusarskiFranceAmy Elsner PROPOSAL
Johnson SergiFranceStephen Shaw QUALIFIED
Jennifer AmigonAustraliaAnna Fali NEGOTIATION
James ButtIndiaElwin Sharvill UNQUALIFIED
Aditya KuskoIndiaStephen Shaw PROPOSAL
Ashley DoeSpainAsiya Javayant PROPOSAL
Faith GillianAustraliaElwin Sharvill NEGOTIATION
Aruna FigeroaIndiaIoni Bowcher UNQUALIFIED
Leon OldroydBrazilOnyama Limba NEW
Leja CaldareraBrazilOnyama Limba UNQUALIFIED
Darci PoquetteRussiaBernardo Dominic NEW
Mayumi KolmetzIndiaIoni Bowcher UNQUALIFIED
Jones VocelkaAustraliaBernardo Dominic RENEWAL
Ricardo GauchoRussiaAmy Elsner NEGOTIATION
James ButtRussiaIoni Bowcher NEW
Nicolas IturbideUnited KingdomAnna Fali NEW
David DarakjyCanadaXuxue Feng NEW
Jeanfrancois VenereJapanXuxue Feng 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>