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
Jennifer AmigonUnited KingdomOnyama Limba NEW
Ricardo GauchoItalyOnyama Limba NEW
Costa DilliardItalyIoni Bowcher RENEWAL
Clifford RimSpainOnyama Limba NEW
Izzy GarufiBrazilIvan Magalhaes RENEWAL
James ButtArgentinaElwin Sharvill UNQUALIFIED
Murillo MaletArgentinaStephen Shaw NEGOTIATION
Aditya KuskoItalyStephen Shaw UNQUALIFIED
Octavia MaletJapanBernardo Dominic NEW
Juan WieserIndiaElwin Sharvill UNQUALIFIED
Rodrigues CampainFranceBernardo Dominic RENEWAL
Faith GillianAustraliaStephen Shaw PROPOSAL
Johnson SergiGermanyStephen Shaw NEGOTIATION
Ashley DoeIndiaOnyama Limba QUALIFIED
Deepesh ChuiIndiaAnna Fali UNQUALIFIED
David DarakjyGermanyIvan Magalhaes RENEWAL
Greenwood BologniaFranceBernardo Dominic UNQUALIFIED
Johnson SergiSpainElwin Sharvill NEGOTIATION
Ricardo GauchoRussiaBernardo Dominic QUALIFIED
Silvio SlusarskiIndiaIoni Bowcher PROPOSAL
Tony FollerItalyBernardo Dominic NEGOTIATION
Ricardo GauchoIndiaAmy Elsner NEW
Chavez BriddickRussiaAsiya Javayant NEW
Aika InouyeGermanyAnna Fali RENEWAL
Ivar PaprockiArgentinaIvan Magalhaes PROPOSAL
Tony FollerAustraliaAmy Elsner QUALIFIED
Alejandro PerinArgentinaElwin Sharvill NEW
Julie StensethIndiaIoni Bowcher RENEWAL
Ricardo GauchoSpainStephen Shaw QUALIFIED
Aditya KuskoAustraliaBernardo Dominic PROPOSAL
Kaitlin OstroskyAustraliaBernardo Dominic QUALIFIED
Sinclair WaycottFranceAnna Fali PROPOSAL
Munro FerenczCanadaOnyama Limba RENEWAL
Munro FerenczJapanOnyama Limba PROPOSAL
Kaitlin OstroskyGermanyOnyama Limba RENEWAL
Kaitlin OstroskyArgentinaXuxue Feng UNQUALIFIED
Nicolas IturbideUnited KingdomOnyama Limba QUALIFIED
Ashley DoeJapanIoni Bowcher QUALIFIED
Aika InouyeSpainElwin Sharvill NEW
Isabel BowleyAustraliaIvan Magalhaes UNQUALIFIED
Costa DilliardIndiaAnna Fali NEW
Tony FollerArgentinaXuxue Feng UNQUALIFIED
Isabel BowleyIndiaIvan Magalhaes RENEWAL
Aika InouyeFranceAnna Fali QUALIFIED
Costa DilliardGermanyBernardo Dominic NEW
Isabel BowleyIndiaBernardo Dominic NEGOTIATION
Maria MarrierArgentinaOnyama Limba NEW
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Munro FerenczFranceAmy Elsner PROPOSAL
Jennifer AmigonRussiaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterFranceStephen Shaw NEGOTIATION
Cody SaylorsJapanElwin Sharvill NEGOTIATION
Munro FerenczSpainOnyama Limba NEGOTIATION
Claire TollnerIndiaAmy Elsner NEGOTIATION
Emily WhobreyAustraliaXuxue Feng QUALIFIED
Smith GlickRussiaAsiya Javayant RENEWAL
Antonio CaudyBrazilElwin Sharvill NEGOTIATION
Maria MarrierRussiaElwin Sharvill RENEWAL
Kadeem FlosiArgentinaXuxue Feng RENEWAL
Clifford RimCanadaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardJapan2026-05-19Benton, John B Jr NEW28Bernardo Dominic
1001Maisha RulapaughItaly2026-05-08Rangoni Of Florence PROPOSAL83Ivan Magalhaes
1002Mujtaba NickaArgentina2026-05-01King, Christopher A Esq UNQUALIFIED70Xuxue Feng
1003Rodrigues CampainArgentina2026-05-08Chapman, Ross E Esq NEW64Xuxue Feng
1004Salvatore StockhamAustralia2026-04-26Feltz Printing Service NEGOTIATION24Xuxue Feng
1005Faith GillianAustralia2026-05-17Morlong Associates NEGOTIATION9Stephen Shaw
1006Julie StensethIndia2026-05-01Benton, John B Jr RENEWAL44Ivan Magalhaes
1007Juan WieserRussia2026-04-28Morlong Associates PROPOSAL26Ioni Bowcher
1008Francesco ShinkoBrazil2026-05-21Morlong Associates NEGOTIATION63Amy Elsner
1009Silvio SlusarskiRussia2026-05-17Dorl, James J Esq NEW63Xuxue Feng
1010Cody SaylorsGermany2026-04-28Chanay, Jeffrey A Esq UNQUALIFIED50Anna Fali
1011Greenwood BologniaFrance2026-05-17Rangoni Of Florence RENEWAL68Ivan Magalhaes
1012Jennifer AmigonUnited Kingdom2026-05-04Rangoni Of Florence PROPOSAL75Asiya Javayant
1013Leja CaldareraCanada2026-05-05Dorl, James J Esq NEW0Bernardo Dominic
1014Izzy GarufiAustralia2026-05-15Dorl, James J Esq PROPOSAL36Onyama Limba
1015Cody SaylorsCanada2026-05-04Chapman, Ross E Esq PROPOSAL29Asiya Javayant
1016Sinclair WaycottArgentina2026-04-28King, Christopher A Esq NEW66Amy Elsner
1017Ivar PaprockiIndia2026-05-23Chapman, Ross E Esq UNQUALIFIED42Stephen Shaw
1018Juan WieserSpain2026-04-25Rousseaux, Michael Esq UNQUALIFIED95Ivan Magalhaes
1019Jennifer AmigonIndia2026-05-09Benton, John B Jr RENEWAL41Bernardo Dominic
1020Izzy GarufiJapan2026-05-12Feiner Bros RENEWAL4Xuxue Feng
1021Emily WhobreyItaly2026-05-11Printing Dimensions PROPOSAL72Asiya Javayant
1022Claire TollnerCanada2026-05-13Dorl, James J Esq QUALIFIED83Ivan Magalhaes
1023Rodrigues CampainFrance2026-05-11Benton, John B Jr UNQUALIFIED34Bernardo Dominic
1024Aruna FigeroaIndia2026-05-17Benton, John B Jr PROPOSAL64Anna Fali
1025Deepesh ChuiSpain2026-05-13Rangoni Of Florence RENEWAL61Ioni Bowcher
1026Maisha RulapaughIndia2026-05-13Feiner Bros NEW90Anna Fali
1027Jennifer AmigonJapan2026-05-09Truhlar And Truhlar Attys RENEWAL34Anna Fali
1028Salvatore StockhamGermany2026-05-20Rangoni Of Florence QUALIFIED14Elwin Sharvill
1029Ashley DoeUnited Kingdom2026-05-05Benton, John B Jr QUALIFIED72Anna Fali
1030Antonio CaudyIndia2026-05-12Chemel, James L Cpa PROPOSAL57Anna Fali
1031Claire TollnerRussia2026-05-01Feltz Printing Service PROPOSAL76Asiya Javayant
1032Kaitlin OstroskySpain2026-04-28Truhlar And Truhlar Attys PROPOSAL45Amy Elsner
1033Izzy GarufiRussia2026-04-29Buckley Miller Wright QUALIFIED81Ioni Bowcher
1034Cody SaylorsArgentina2026-05-05Chemel, James L Cpa QUALIFIED50Asiya Javayant
1035Ricardo GauchoRussia2026-04-27Buckley Miller Wright PROPOSAL23Stephen Shaw
1036Nicolas IturbideRussia2026-05-23Commercial Press PROPOSAL48Elwin Sharvill
1037Munro FerenczUnited Kingdom2026-05-18Benton, John B Jr QUALIFIED73Asiya Javayant
1038David DarakjyGermany2026-04-25Feiner Bros PROPOSAL83Xuxue Feng
1039Jennifer AmigonRussia2026-04-24Morlong Associates NEGOTIATION37Amy Elsner
1040Claire TollnerGermany2026-05-11Chemel, James L Cpa PROPOSAL42Bernardo Dominic
1041Johnson SergiRussia2026-05-10King, Christopher A Esq UNQUALIFIED14Ivan Magalhaes
1042Sinclair WaycottSpain2026-04-26Rousseaux, Michael Esq QUALIFIED64Elwin Sharvill
1043Francesco ShinkoItaly2026-05-02Benton, John B Jr NEGOTIATION60Amy Elsner
1044Deepesh ChuiJapan2026-04-25Buckley Miller Wright NEGOTIATION0Asiya Javayant
1045Juan WieserBrazil2026-05-22Chemel, James L Cpa RENEWAL89Stephen Shaw
1046Salvatore StockhamArgentina2026-05-20Chapman, Ross E Esq UNQUALIFIED97Elwin Sharvill
1047Faith GillianUnited Kingdom2026-04-28Commercial Press PROPOSAL79Stephen Shaw
1048Johnson SergiIndia2026-05-22Chemel, James L Cpa NEGOTIATION46Ivan Magalhaes
1049Johnson SergiAustralia2026-05-15Commercial Press RENEWAL75Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyIndiaElwin Sharvill RENEWAL
Izzy GarufiRussiaElwin Sharvill NEW
Jennifer AmigonBrazilElwin Sharvill NEGOTIATION
Stacey MacleadAustraliaXuxue Feng UNQUALIFIED
Leon OldroydFranceAnna Fali NEGOTIATION
Juan WieserUnited KingdomAsiya Javayant PROPOSAL
Isabel BowleyGermanyXuxue Feng RENEWAL
Alejandro PerinJapanXuxue Feng RENEWAL
Ivar PaprockiFranceXuxue Feng NEGOTIATION
Aditya KuskoItalyBernardo Dominic UNQUALIFIED
Chavez BriddickCanadaStephen Shaw NEW
Stacey MacleadItalyBernardo Dominic QUALIFIED
Claire TollnerUnited KingdomBernardo Dominic RENEWAL
Greenwood BologniaBrazilOnyama Limba PROPOSAL
Julie StensethFranceBernardo Dominic NEGOTIATION
Jennifer AmigonJapanAsiya Javayant NEW
Claire TollnerRussiaAmy Elsner QUALIFIED
Sinclair WaycottSpainStephen Shaw NEGOTIATION
Kadeem FlosiIndiaStephen Shaw UNQUALIFIED
David DarakjyIndiaAnna Fali UNQUALIFIED
Emily WhobreyAustraliaElwin Sharvill RENEWAL
Faith GillianAustraliaStephen Shaw NEW
Jefferson SchemmerItalyAsiya Javayant RENEWAL
Clifford RimAustraliaAsiya Javayant RENEWAL
Deepesh ChuiUnited KingdomAmy Elsner NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill PROPOSAL
Izzy GarufiAustraliaBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Julie StensethGermanyAmy Elsner NEGOTIATION
Nicolas IturbideBrazilOnyama Limba NEW
Ashley DoeArgentinaElwin Sharvill QUALIFIED
Aditya KuskoFranceOnyama Limba NEW
Greenwood BologniaBrazilAmy Elsner NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes NEGOTIATION
Kadeem FlosiGermanyIvan Magalhaes RENEWAL
Ricardo GauchoBrazilElwin Sharvill NEW
Greenwood BologniaJapanBernardo Dominic NEW
Julie StensethRussiaAsiya Javayant RENEWAL
Claire TollnerRussiaAnna Fali RENEWAL
Izzy GarufiCanadaElwin Sharvill RENEWAL
Ricardo GauchoBrazilStephen Shaw QUALIFIED
Nicolas IturbideRussiaAsiya Javayant UNQUALIFIED
Adams MorascaFranceXuxue Feng NEW
Morrow RutaCanadaAsiya Javayant PROPOSAL
Johnson SergiArgentinaOnyama Limba RENEWAL
Leon OldroydFranceIvan Magalhaes NEW
Smith GlickJapanStephen Shaw NEW
Greenwood BologniaUnited KingdomAsiya Javayant NEW
Francesco ShinkoAustraliaStephen Shaw NEGOTIATION
Kaitlin OstroskyJapanAsiya Javayant NEW
Frozen Columns
Name
Salvatore Stockham
Greenwood Bolognia
Morrow Ruta
Johnson Sergi
Aruna Figeroa
Leon Oldroyd
Kadeem Flosi
Maisha Rulapaugh
Jones Vocelka
Jefferson Schemmer
Ivar Paprocki
Julie Stenseth
Leja Caldarera
Ashley Doe
Johnson Sergi
Julie Stenseth
Aika Inouye
Claire Tollner
Tony Foller
Jefferson Schemmer
Mujtaba Nicka
Leon Oldroyd
Juan Wieser
Salvatore Stockham
Chavez Briddick
Nicolas Iturbide
Jeanfrancois Venere
Silvio Slusarski
Claire Tollner
Chavez Briddick
Aika Inouye
Claire Tollner
Adams Morasca
Greenwood Bolognia
David Darakjy
Jefferson Schemmer
Nicolas Iturbide
Ricardo Gaucho
Jennifer Amigon
Greenwood Bolognia
Rodrigues Campain
Deepesh Chui
Costa Dilliard
Jennifer Amigon
Silvio Slusarski
Adams Morasca
Sinclair Waycott
James Butt
Arvin Albares
Misaki Royster
IdCountryDate
1000Australia2026-05-02
1001Argentina2026-05-23
1002Russia2026-04-30
1003Spain2026-04-28
1004Australia2026-05-08
1005Spain2026-05-02
1006Italy2026-04-25
1007Japan2026-05-21
1008Spain2026-05-13
1009Spain2026-05-06
1010Japan2026-05-01
1011Brazil2026-04-26
1012United Kingdom2026-05-15
1013Russia2026-05-22
1014Australia2026-05-06
1015Canada2026-04-30
1016Russia2026-05-10
1017India2026-05-03
1018Spain2026-05-08
1019Brazil2026-05-15
1020Spain2026-05-02
1021Russia2026-05-02
1022Argentina2026-05-18
1023Russia2026-05-07
1024Spain2026-04-28
1025United Kingdom2026-04-25
1026Spain2026-05-17
1027Brazil2026-05-08
1028Russia2026-05-22
1029Japan2026-05-16
1030United Kingdom2026-05-04
1031Russia2026-05-10
1032Russia2026-05-06
1033Spain2026-05-12
1034United Kingdom2026-05-20
1035Italy2026-05-10
1036Japan2026-04-28
1037Italy2026-04-27
1038India2026-05-05
1039Canada2026-05-06
1040Spain2026-05-19
1041Canada2026-05-02
1042Japan2026-04-25
1043Japan2026-05-05
1044Argentina2026-05-13
1045Argentina2026-05-03
1046Germany2026-05-02
1047Canada2026-04-30
1048Germany2026-04-28
1049Argentina2026-04-28

On-Demand Data

NameIdCountryDate
Arvin Albares1000Russia2026-05-20
Jefferson Schemmer1001Germany2026-05-18
Maria Marrier1002France2026-05-02
Munro Ferencz1003Russia2026-05-13
Tony Foller1004Germany2026-05-04
Jones Vocelka1005Germany2026-05-09
Maria Marrier1006Russia2026-05-10
Kaitlin Ostrosky1007Germany2026-05-05
Juan Wieser1008Canada2026-05-03
Costa Dilliard1009India2026-05-10
Munro Ferencz1010Japan2026-04-26
Claire Tollner1011India2026-04-24
Morrow Ruta1012Canada2026-04-28
Aika Inouye1013Brazil2026-05-05
Costa Dilliard1014Italy2026-05-17
Emily Whobrey1015Spain2026-05-19
Leja Caldarera1016Italy2026-05-22
Smith Glick1017Russia2026-05-18
Aika Inouye1018Canada2026-04-29
Jefferson Schemmer1019Italy2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerIndiaOnyama Limba NEGOTIATION
Izzy GarufiJapanStephen Shaw QUALIFIED
Greenwood BologniaSpainIoni Bowcher UNQUALIFIED
Maria MarrierArgentinaAnna Fali NEW
Cody SaylorsItalyAnna Fali RENEWAL
Izzy GarufiUnited KingdomAsiya Javayant NEGOTIATION
Salvatore StockhamUnited KingdomIoni Bowcher NEGOTIATION
Jones VocelkaItalyAnna Fali RENEWAL
Claire TollnerUnited KingdomOnyama Limba NEGOTIATION
Francesco ShinkoSpainAsiya Javayant RENEWAL
Darci PoquetteAustraliaXuxue Feng NEW
Rodrigues CampainItalyBernardo Dominic NEGOTIATION
Jones VocelkaAustraliaOnyama Limba NEGOTIATION
Isabel BowleySpainOnyama Limba QUALIFIED
Aruna FigeroaFranceAnna Fali QUALIFIED
Kadeem FlosiBrazilBernardo Dominic NEW
Deepesh ChuiSpainIoni Bowcher NEW
Ivar PaprockiCanadaAmy Elsner RENEWAL
Maisha RulapaughAustraliaAmy Elsner NEW
Julie StensethJapanOnyama Limba RENEWAL
Cody SaylorsGermanyElwin Sharvill RENEWAL
Salvatore StockhamIndiaBernardo Dominic NEW
Mujtaba NickaIndiaAmy Elsner UNQUALIFIED
Francesco ShinkoCanadaAnna Fali NEGOTIATION
Jefferson SchemmerFranceAsiya Javayant UNQUALIFIED
Izzy GarufiArgentinaXuxue Feng NEW
Kaitlin OstroskyBrazilElwin Sharvill UNQUALIFIED
Jones VocelkaJapanAnna Fali RENEWAL
Munro FerenczUnited KingdomIoni Bowcher NEW
Maria MarrierRussiaStephen Shaw PROPOSAL
Salvatore StockhamCanadaXuxue Feng NEW
Darci PoquetteUnited KingdomAmy Elsner QUALIFIED
Alejandro PerinUnited KingdomAnna Fali RENEWAL
Greenwood BologniaItalyAnna Fali UNQUALIFIED
Ashley DoeFranceXuxue Feng UNQUALIFIED
Mujtaba NickaIndiaAmy Elsner PROPOSAL
Ricardo GauchoItalyAmy Elsner PROPOSAL
Chavez BriddickFranceAnna Fali RENEWAL
Sinclair WaycottArgentinaIvan Magalhaes RENEWAL
Maisha RulapaughCanadaAmy Elsner 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>