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
Cody SaylorsCanadaAsiya Javayant PROPOSAL
Murillo MaletAustraliaElwin Sharvill QUALIFIED
Alejandro PerinFranceAsiya Javayant UNQUALIFIED
Leja CaldareraArgentinaElwin Sharvill NEGOTIATION
Chavez BriddickSpainXuxue Feng UNQUALIFIED
Misaki RoysterCanadaIvan Magalhaes QUALIFIED
Misaki RoysterArgentinaStephen Shaw NEW
Aruna FigeroaGermanyBernardo Dominic NEGOTIATION
Jefferson SchemmerItalyIoni Bowcher RENEWAL
Maisha RulapaughFranceIoni Bowcher PROPOSAL
Francesco ShinkoUnited KingdomElwin Sharvill RENEWAL
Antonio CaudyAustraliaXuxue Feng QUALIFIED
Mayumi KolmetzArgentinaOnyama Limba UNQUALIFIED
Aditya KuskoArgentinaBernardo Dominic UNQUALIFIED
Morrow RutaRussiaStephen Shaw NEW
Ashley DoeJapanStephen Shaw UNQUALIFIED
Morrow RutaFranceStephen Shaw QUALIFIED
Greenwood BologniaUnited KingdomBernardo Dominic NEW
Johnson SergiGermanyXuxue Feng NEGOTIATION
Julie StensethArgentinaAmy Elsner NEGOTIATION
Cody SaylorsArgentinaAmy Elsner QUALIFIED
Aika InouyeAustraliaIoni Bowcher RENEWAL
Smith GlickUnited KingdomIvan Magalhaes PROPOSAL
Alejandro PerinAustraliaAmy Elsner NEW
Clifford RimBrazilIoni Bowcher NEGOTIATION
Darci PoquetteCanadaOnyama Limba NEW
Izzy GarufiArgentinaAsiya Javayant RENEWAL
Deepesh ChuiCanadaIvan Magalhaes UNQUALIFIED
Kadeem FlosiCanadaElwin Sharvill NEW
Costa DilliardJapanElwin Sharvill PROPOSAL
Cody SaylorsFranceAmy Elsner UNQUALIFIED
Aika InouyeGermanyOnyama Limba NEW
Kadeem FlosiGermanyStephen Shaw QUALIFIED
Arvin AlbaresFranceOnyama Limba QUALIFIED
Greenwood BologniaItalyBernardo Dominic QUALIFIED
Juan WieserRussiaIoni Bowcher NEW
Antonio CaudyIndiaAsiya Javayant RENEWAL
Murillo MaletCanadaElwin Sharvill UNQUALIFIED
James ButtIndiaAnna Fali QUALIFIED
Francesco ShinkoRussiaStephen Shaw QUALIFIED
Aika InouyeItalyBernardo Dominic PROPOSAL
Izzy GarufiRussiaIvan Magalhaes NEGOTIATION
Smith GlickUnited KingdomAnna Fali RENEWAL
Tony FollerFranceBernardo Dominic NEGOTIATION
Francesco ShinkoItalyIvan Magalhaes PROPOSAL
Aditya KuskoRussiaAmy Elsner QUALIFIED
Julie StensethArgentinaStephen Shaw NEW
Mujtaba NickaFranceIvan Magalhaes NEGOTIATION
Izzy GarufiUnited KingdomElwin Sharvill PROPOSAL
Morrow RutaGermanyAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja CaldareraCanadaAnna Fali QUALIFIED
Cody SaylorsBrazilIvan Magalhaes QUALIFIED
Isabel BowleyUnited KingdomXuxue Feng RENEWAL
Wickens NestleSpainAmy Elsner QUALIFIED
Jennifer AmigonArgentinaAmy Elsner RENEWAL
Murillo MaletItalyElwin Sharvill UNQUALIFIED
Murillo MaletBrazilXuxue Feng UNQUALIFIED
Morrow RutaIndiaIoni Bowcher RENEWAL
David DarakjySpainAnna Fali NEW
Claire TollnerSpainIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterFrance2026-06-05Printing Dimensions NEGOTIATION39Onyama Limba
1001Arvin AlbaresGermany2026-05-09Feltz Printing Service NEGOTIATION24Stephen Shaw
1002Ivar PaprockiSpain2026-05-17Commercial Press UNQUALIFIED32Bernardo Dominic
1003Leon OldroydCanada2026-05-27Chemel, James L Cpa RENEWAL29Ioni Bowcher
1004Aika InouyeIndia2026-05-25Rangoni Of Florence PROPOSAL49Asiya Javayant
1005Tony FollerItaly2026-06-03King, Christopher A Esq PROPOSAL70Stephen Shaw
1006Murillo MaletArgentina2026-05-29Printing Dimensions NEGOTIATION66Ivan Magalhaes
1007Aditya KuskoCanada2026-05-27Truhlar And Truhlar Attys PROPOSAL57Elwin Sharvill
1008Aika InouyeRussia2026-05-27King, Christopher A Esq RENEWAL76Xuxue Feng
1009Sinclair WaycottIndia2026-05-15Rousseaux, Michael Esq RENEWAL93Xuxue Feng
1010Ashley DoeFrance2026-06-05Buckley Miller Wright UNQUALIFIED83Onyama Limba
1011Salvatore StockhamFrance2026-06-03Rangoni Of Florence QUALIFIED57Ivan Magalhaes
1012Murillo MaletRussia2026-05-21Commercial Press NEW24Ioni Bowcher
1013Greenwood BologniaGermany2026-05-30Truhlar And Truhlar Attys UNQUALIFIED43Stephen Shaw
1014Aruna FigeroaBrazil2026-06-03Chemel, James L Cpa UNQUALIFIED71Anna Fali
1015Clifford RimUnited Kingdom2026-05-18Truhlar And Truhlar Attys UNQUALIFIED73Ioni Bowcher
1016Clifford RimGermany2026-05-24Chemel, James L Cpa RENEWAL15Stephen Shaw
1017Darci PoquetteSpain2026-05-31Rousseaux, Michael Esq NEW30Xuxue Feng
1018Deepesh ChuiUnited Kingdom2026-05-09Truhlar And Truhlar Attys NEGOTIATION89Onyama Limba
1019Izzy GarufiGermany2026-05-21Chemel, James L Cpa NEW88Bernardo Dominic
1020Ashley DoeSpain2026-06-03Printing Dimensions NEW82Bernardo Dominic
1021Kadeem FlosiFrance2026-05-15Buckley Miller Wright QUALIFIED98Onyama Limba
1022Jeanfrancois VenereAustralia2026-06-05Rousseaux, Michael Esq NEW6Xuxue Feng
1023Maria MarrierJapan2026-06-01Feltz Printing Service RENEWAL92Anna Fali
1024Mujtaba NickaJapan2026-05-27Chapman, Ross E Esq QUALIFIED49Asiya Javayant
1025Aika InouyeItaly2026-05-16Dorl, James J Esq UNQUALIFIED60Asiya Javayant
1026Deepesh ChuiJapan2026-05-22Commercial Press NEW75Asiya Javayant
1027Sinclair WaycottGermany2026-05-08Benton, John B Jr NEW79Onyama Limba
1028Sinclair WaycottRussia2026-05-29Benton, John B Jr PROPOSAL11Anna Fali
1029David DarakjyCanada2026-05-10Buckley Miller Wright NEGOTIATION46Amy Elsner
1030Julie StensethBrazil2026-05-30King, Christopher A Esq NEW26Amy Elsner
1031Emily WhobreyIndia2026-05-11Chemel, James L Cpa QUALIFIED79Ioni Bowcher
1032Misaki RoysterBrazil2026-06-05King, Christopher A Esq NEGOTIATION14Asiya Javayant
1033Alejandro PerinFrance2026-05-19Chemel, James L Cpa NEW30Onyama Limba
1034Kaitlin OstroskyUnited Kingdom2026-05-15Dorl, James J Esq NEGOTIATION92Xuxue Feng
1035Misaki RoysterSpain2026-05-18Chemel, James L Cpa PROPOSAL77Onyama Limba
1036Leon OldroydArgentina2026-05-26Chapman, Ross E Esq NEW70Ioni Bowcher
1037Izzy GarufiBrazil2026-05-23Buckley Miller Wright UNQUALIFIED54Xuxue Feng
1038James ButtItaly2026-05-13Rousseaux, Michael Esq QUALIFIED35Elwin Sharvill
1039Greenwood BologniaCanada2026-05-09Rousseaux, Michael Esq NEGOTIATION69Elwin Sharvill
1040Jeanfrancois VenereIndia2026-05-10Truhlar And Truhlar Attys PROPOSAL94Stephen Shaw
1041Misaki RoysterArgentina2026-05-31Chemel, James L Cpa RENEWAL91Onyama Limba
1042Aruna FigeroaRussia2026-06-03King, Christopher A Esq NEW1Elwin Sharvill
1043Rodrigues CampainCanada2026-06-03Feltz Printing Service NEW92Ioni Bowcher
1044Faith GillianIndia2026-06-01King, Christopher A Esq PROPOSAL44Xuxue Feng
1045Adams MorascaGermany2026-06-04Dorl, James J Esq NEW52Ivan Magalhaes
1046David DarakjyRussia2026-06-04Commercial Press RENEWAL87Onyama Limba
1047Tony FollerFrance2026-05-14Feltz Printing Service NEW3Ivan Magalhaes
1048Izzy GarufiRussia2026-05-24Dorl, James J Esq QUALIFIED39Xuxue Feng
1049David DarakjyJapan2026-05-28Dorl, James J Esq PROPOSAL79Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaArgentinaIoni Bowcher NEW
David DarakjyBrazilAmy Elsner RENEWAL
Misaki RoysterUnited KingdomXuxue Feng NEW
Ivar PaprockiAustraliaXuxue Feng QUALIFIED
Mayumi KolmetzAustraliaAsiya Javayant PROPOSAL
Clifford RimAustraliaIvan Magalhaes QUALIFIED
Stacey MacleadFranceAmy Elsner QUALIFIED
Alejandro PerinBrazilAmy Elsner NEW
Greenwood BologniaArgentinaElwin Sharvill NEGOTIATION
Maisha RulapaughIndiaAnna Fali PROPOSAL
Chavez BriddickAustraliaIvan Magalhaes NEGOTIATION
Emily WhobreyArgentinaAnna Fali NEW
Julie StensethAustraliaXuxue Feng RENEWAL
Mayumi KolmetzGermanyXuxue Feng NEGOTIATION
Maisha RulapaughItalyAsiya Javayant PROPOSAL
Aika InouyeFranceAsiya Javayant NEW
Ashley DoeFranceBernardo Dominic NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng QUALIFIED
Clifford RimCanadaXuxue Feng UNQUALIFIED
Jefferson SchemmerGermanyAnna Fali QUALIFIED
Juan WieserIndiaBernardo Dominic RENEWAL
Darci PoquetteGermanyOnyama Limba NEGOTIATION
Salvatore StockhamSpainAnna Fali NEW
Maria MarrierGermanyAnna Fali QUALIFIED
Mujtaba NickaItalyElwin Sharvill PROPOSAL
Antonio CaudyGermanyIvan Magalhaes QUALIFIED
Johnson SergiItalyOnyama Limba PROPOSAL
Jennifer AmigonJapanAnna Fali PROPOSAL
Rodrigues CampainAustraliaAsiya Javayant PROPOSAL
Stacey MacleadUnited KingdomXuxue Feng PROPOSAL
Mayumi KolmetzUnited KingdomIoni Bowcher NEW
Ivar PaprockiFranceBernardo Dominic NEGOTIATION
Chavez BriddickIndiaIoni Bowcher NEGOTIATION
Murillo MaletIndiaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill RENEWAL
Salvatore StockhamCanadaAmy Elsner NEW
Octavia MaletJapanAnna Fali PROPOSAL
David DarakjyArgentinaElwin Sharvill UNQUALIFIED
David DarakjyGermanyStephen Shaw NEW
David DarakjyCanadaElwin Sharvill NEW
Juan WieserGermanyAsiya Javayant PROPOSAL
Jones VocelkaRussiaAsiya Javayant PROPOSAL
Jefferson SchemmerRussiaIoni Bowcher RENEWAL
Murillo MaletArgentinaIvan Magalhaes NEW
Francesco ShinkoAustraliaStephen Shaw UNQUALIFIED
David DarakjyFranceElwin Sharvill UNQUALIFIED
Johnson SergiCanadaXuxue Feng PROPOSAL
Antonio CaudyItalyIoni Bowcher PROPOSAL
Silvio SlusarskiAustraliaElwin Sharvill RENEWAL
Munro FerenczCanadaAmy Elsner NEGOTIATION
Frozen Columns
Name
Misaki Royster
Ashley Doe
Smith Glick
Arvin Albares
Stacey Maclead
Mujtaba Nicka
Juan Wieser
Aika Inouye
Stacey Maclead
Cody Saylors
Darci Poquette
Maisha Rulapaugh
Clifford Rim
Julie Stenseth
Antonio Caudy
Kadeem Flosi
Aditya Kusko
Leon Oldroyd
Adams Morasca
Ashley Doe
Kaitlin Ostrosky
David Darakjy
Claire Tollner
Murillo Malet
Clifford Rim
Costa Dilliard
Ricardo Gaucho
Jefferson Schemmer
Maisha Rulapaugh
Cody Saylors
Jefferson Schemmer
Smith Glick
Deepesh Chui
Silvio Slusarski
Silvio Slusarski
Emily Whobrey
Maria Marrier
Ivar Paprocki
Wickens Nestle
Ivar Paprocki
Tony Foller
Leja Caldarera
Wickens Nestle
Chavez Briddick
Claire Tollner
Cody Saylors
Cody Saylors
Costa Dilliard
Isabel Bowley
Leon Oldroyd
IdCountryDate
1000United Kingdom2026-05-19
1001Japan2026-05-31
1002Australia2026-05-11
1003Russia2026-05-12
1004Germany2026-06-01
1005Germany2026-06-05
1006Canada2026-05-26
1007Germany2026-05-10
1008Italy2026-05-29
1009Canada2026-05-08
1010Germany2026-06-05
1011Japan2026-06-03
1012India2026-05-31
1013France2026-05-10
1014Australia2026-05-21
1015Japan2026-05-30
1016Canada2026-06-03
1017Russia2026-06-04
1018Russia2026-05-18
1019France2026-05-10
1020United Kingdom2026-05-27
1021Italy2026-05-28
1022Japan2026-05-23
1023Japan2026-05-09
1024France2026-05-15
1025India2026-05-27
1026Australia2026-05-25
1027Brazil2026-06-01
1028India2026-05-14
1029India2026-05-14
1030Argentina2026-05-10
1031Spain2026-05-17
1032Russia2026-05-23
1033Japan2026-05-22
1034Russia2026-05-18
1035Japan2026-05-26
1036India2026-05-21
1037United Kingdom2026-05-07
1038Australia2026-05-10
1039Spain2026-05-24
1040Russia2026-06-02
1041Germany2026-06-04
1042France2026-05-24
1043United Kingdom2026-05-14
1044Canada2026-05-12
1045Spain2026-05-19
1046Canada2026-05-18
1047Russia2026-05-25
1048India2026-05-30
1049United Kingdom2026-06-03

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Brazil2026-05-19
Aruna Figeroa1001Japan2026-05-12
James Butt1002France2026-05-25
Morrow Ruta1003Germany2026-05-21
Clifford Rim1004United Kingdom2026-05-30
Arvin Albares1005Spain2026-05-15
Nicolas Iturbide1006Brazil2026-05-12
Costa Dilliard1007Japan2026-05-23
Maria Marrier1008Brazil2026-05-22
Ashley Doe1009Canada2026-05-20
Maria Marrier1010Germany2026-05-16
Maria Marrier1011Germany2026-05-29
Antonio Caudy1012United Kingdom2026-05-31
Aditya Kusko1013Argentina2026-05-19
Alejandro Perin1014Canada2026-05-19
Chavez Briddick1015Australia2026-05-08
Salvatore Stockham1016Australia2026-05-22
Kaitlin Ostrosky1017Australia2026-05-21
Jeanfrancois Venere1018Germany2026-05-25
Maisha Rulapaugh1019Canada2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserSpainElwin Sharvill QUALIFIED
Chavez BriddickBrazilAmy Elsner UNQUALIFIED
Deepesh ChuiBrazilOnyama Limba NEW
Maisha RulapaughIndiaIvan Magalhaes QUALIFIED
James ButtCanadaStephen Shaw NEW
Jefferson SchemmerBrazilOnyama Limba RENEWAL
Emily WhobreyJapanAnna Fali NEW
Kadeem FlosiIndiaStephen Shaw QUALIFIED
Francesco ShinkoGermanyAmy Elsner QUALIFIED
Maria MarrierCanadaStephen Shaw NEW
Rodrigues CampainJapanAsiya Javayant NEGOTIATION
Sinclair WaycottArgentinaStephen Shaw PROPOSAL
Misaki RoysterCanadaXuxue Feng NEGOTIATION
Jeanfrancois VenereItalyElwin Sharvill UNQUALIFIED
Stacey MacleadUnited KingdomAnna Fali NEGOTIATION
Clifford RimUnited KingdomAmy Elsner NEW
Jennifer AmigonSpainStephen Shaw PROPOSAL
Kaitlin OstroskyAustraliaBernardo Dominic NEGOTIATION
Jennifer AmigonSpainAnna Fali NEW
Mujtaba NickaJapanStephen Shaw UNQUALIFIED
Darci PoquetteAustraliaAmy Elsner PROPOSAL
Chavez BriddickArgentinaBernardo Dominic PROPOSAL
Sinclair WaycottJapanAnna Fali QUALIFIED
Smith GlickSpainOnyama Limba RENEWAL
Salvatore StockhamIndiaXuxue Feng NEW
David DarakjyCanadaAmy Elsner QUALIFIED
Maria MarrierCanadaBernardo Dominic NEGOTIATION
Maisha RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Aruna FigeroaBrazilOnyama Limba QUALIFIED
Aruna FigeroaBrazilIoni Bowcher NEGOTIATION
Costa DilliardAustraliaOnyama Limba PROPOSAL
Arvin AlbaresRussiaOnyama Limba RENEWAL
Nicolas IturbideItalyElwin Sharvill NEGOTIATION
Deepesh ChuiAustraliaElwin Sharvill QUALIFIED
Jones VocelkaCanadaAsiya Javayant UNQUALIFIED
James ButtArgentinaStephen Shaw QUALIFIED
Aditya KuskoIndiaIoni Bowcher NEGOTIATION
Morrow RutaAustraliaAmy Elsner NEW
Emily WhobreyFranceXuxue Feng RENEWAL
Mujtaba NickaCanadaXuxue Feng 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>