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
Claire TollnerItalyXuxue Feng UNQUALIFIED
Clifford RimItalyAmy Elsner NEGOTIATION
Jennifer AmigonSpainIvan Magalhaes UNQUALIFIED
Arvin AlbaresAustraliaAnna Fali PROPOSAL
Francesco ShinkoJapanAmy Elsner NEW
Stacey MacleadRussiaIvan Magalhaes RENEWAL
Nicolas IturbideArgentinaAmy Elsner QUALIFIED
Maisha RulapaughArgentinaAmy Elsner NEW
Kadeem FlosiBrazilAmy Elsner PROPOSAL
Kadeem FlosiCanadaAnna Fali PROPOSAL
Julie StensethIndiaElwin Sharvill NEW
Emily WhobreyGermanyBernardo Dominic UNQUALIFIED
Stacey MacleadFranceIoni Bowcher UNQUALIFIED
Juan WieserArgentinaAsiya Javayant PROPOSAL
Rodrigues CampainFranceIoni Bowcher NEW
James ButtJapanIvan Magalhaes NEW
Leon OldroydJapanAsiya Javayant NEGOTIATION
Deepesh ChuiIndiaStephen Shaw PROPOSAL
Silvio SlusarskiSpainAnna Fali RENEWAL
Adams MorascaUnited KingdomAsiya Javayant NEGOTIATION
James ButtFranceIoni Bowcher UNQUALIFIED
Ashley DoeFranceAnna Fali UNQUALIFIED
Deepesh ChuiJapanStephen Shaw NEW
Kaitlin OstroskyUnited KingdomAnna Fali QUALIFIED
Smith GlickFranceStephen Shaw PROPOSAL
Jeanfrancois VenereRussiaXuxue Feng NEW
Alejandro PerinIndiaOnyama Limba PROPOSAL
Salvatore StockhamUnited KingdomOnyama Limba PROPOSAL
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Munro FerenczUnited KingdomAsiya Javayant PROPOSAL
Wickens NestleRussiaElwin Sharvill NEW
Wickens NestleSpainOnyama Limba NEW
Jefferson SchemmerArgentinaAnna Fali QUALIFIED
Mayumi KolmetzFranceAmy Elsner NEGOTIATION
Silvio SlusarskiIndiaIoni Bowcher UNQUALIFIED
Faith GillianIndiaAnna Fali QUALIFIED
Octavia MaletGermanyAnna Fali RENEWAL
Aditya KuskoIndiaIvan Magalhaes RENEWAL
Darci PoquetteItalyAmy Elsner NEW
Julie StensethSpainAnna Fali NEGOTIATION
Jefferson SchemmerArgentinaOnyama Limba QUALIFIED
Clifford RimBrazilOnyama Limba PROPOSAL
David DarakjyFranceOnyama Limba NEW
Izzy GarufiJapanBernardo Dominic RENEWAL
Stacey MacleadJapanStephen Shaw NEGOTIATION
Maria MarrierItalyStephen Shaw NEGOTIATION
Silvio SlusarskiSpainAnna Fali NEGOTIATION
Stacey MacleadCanadaXuxue Feng UNQUALIFIED
Aruna FigeroaAustraliaIoni Bowcher NEGOTIATION
Murillo MaletSpainStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresCanadaXuxue Feng NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamItalyAnna Fali NEW
Aruna FigeroaAustraliaAnna Fali UNQUALIFIED
Rodrigues CampainRussiaElwin Sharvill NEW
Clifford RimSpainXuxue Feng UNQUALIFIED
James ButtGermanyAnna Fali NEGOTIATION
Claire TollnerArgentinaIvan Magalhaes NEGOTIATION
Silvio SlusarskiAustraliaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletRussia2026-04-27Morlong Associates NEGOTIATION27Stephen Shaw
1001Aruna FigeroaGermany2026-04-23Dorl, James J Esq PROPOSAL96Ivan Magalhaes
1002Sinclair WaycottIndia2026-05-01King, Christopher A Esq UNQUALIFIED2Amy Elsner
1003Aruna FigeroaAustralia2026-05-04Dorl, James J Esq NEW30Xuxue Feng
1004Morrow RutaBrazil2026-05-07Benton, John B Jr QUALIFIED82Asiya Javayant
1005Ricardo GauchoBrazil2026-04-29Rangoni Of Florence UNQUALIFIED4Ioni Bowcher
1006Kaitlin OstroskyGermany2026-05-04Commercial Press PROPOSAL60Ivan Magalhaes
1007Ricardo GauchoUnited Kingdom2026-05-10Dorl, James J Esq NEW84Xuxue Feng
1008Kadeem FlosiRussia2026-05-01Rousseaux, Michael Esq QUALIFIED19Stephen Shaw
1009Jennifer AmigonGermany2026-04-17Feltz Printing Service PROPOSAL15Xuxue Feng
1010Aika InouyeGermany2026-04-21Commercial Press RENEWAL82Elwin Sharvill
1011Rodrigues CampainSpain2026-04-25Feltz Printing Service QUALIFIED99Ioni Bowcher
1012Greenwood BologniaIndia2026-05-03Printing Dimensions PROPOSAL40Bernardo Dominic
1013Claire TollnerArgentina2026-04-13Feiner Bros NEGOTIATION94Ivan Magalhaes
1014Johnson SergiRussia2026-04-23Rousseaux, Michael Esq RENEWAL17Onyama Limba
1015Francesco ShinkoBrazil2026-05-04Chemel, James L Cpa PROPOSAL35Onyama Limba
1016Octavia MaletRussia2026-04-16Printing Dimensions PROPOSAL78Onyama Limba
1017Jennifer AmigonGermany2026-04-22King, Christopher A Esq UNQUALIFIED83Ioni Bowcher
1018Nicolas IturbideAustralia2026-04-20Printing Dimensions UNQUALIFIED1Amy Elsner
1019David DarakjyArgentina2026-05-11Truhlar And Truhlar Attys NEGOTIATION30Stephen Shaw
1020Francesco ShinkoCanada2026-05-12Dorl, James J Esq RENEWAL80Asiya Javayant
1021Aditya KuskoGermany2026-05-05Feltz Printing Service NEW75Amy Elsner
1022James ButtItaly2026-05-01Commercial Press NEGOTIATION22Elwin Sharvill
1023Kadeem FlosiItaly2026-05-08Rangoni Of Florence NEW63Xuxue Feng
1024Faith GillianAustralia2026-05-04Commercial Press QUALIFIED32Stephen Shaw
1025Jefferson SchemmerFrance2026-05-09Chemel, James L Cpa UNQUALIFIED56Bernardo Dominic
1026Alejandro PerinRussia2026-04-18King, Christopher A Esq RENEWAL39Elwin Sharvill
1027Maria MarrierGermany2026-04-20Rousseaux, Michael Esq QUALIFIED8Bernardo Dominic
1028Darci PoquetteRussia2026-04-18Benton, John B Jr NEW11Onyama Limba
1029Johnson SergiGermany2026-04-17Truhlar And Truhlar Attys RENEWAL66Amy Elsner
1030Costa DilliardBrazil2026-04-24Truhlar And Truhlar Attys QUALIFIED29Onyama Limba
1031James ButtArgentina2026-05-04Dorl, James J Esq RENEWAL10Elwin Sharvill
1032Leon OldroydJapan2026-05-08Benton, John B Jr RENEWAL26Asiya Javayant
1033Jefferson SchemmerUnited Kingdom2026-04-16Chemel, James L Cpa RENEWAL26Ivan Magalhaes
1034Emily WhobreyBrazil2026-05-05Chanay, Jeffrey A Esq QUALIFIED3Xuxue Feng
1035David DarakjyGermany2026-05-02Commercial Press QUALIFIED34Stephen Shaw
1036Rodrigues CampainJapan2026-04-15Feltz Printing Service RENEWAL14Elwin Sharvill
1037Adams MorascaItaly2026-05-01Chapman, Ross E Esq QUALIFIED98Onyama Limba
1038Jones VocelkaIndia2026-04-19Feltz Printing Service NEW30Anna Fali
1039Salvatore StockhamFrance2026-04-14Commercial Press NEGOTIATION4Anna Fali
1040Cody SaylorsAustralia2026-05-03Chapman, Ross E Esq NEGOTIATION95Xuxue Feng
1041Nicolas IturbideSpain2026-04-27Rangoni Of Florence QUALIFIED88Bernardo Dominic
1042Ivar PaprockiSpain2026-04-30Buckley Miller Wright QUALIFIED94Elwin Sharvill
1043Ricardo GauchoBrazil2026-05-09Chemel, James L Cpa QUALIFIED53Asiya Javayant
1044Isabel BowleyGermany2026-04-17Morlong Associates UNQUALIFIED27Anna Fali
1045Octavia MaletJapan2026-04-22Feltz Printing Service UNQUALIFIED83Onyama Limba
1046David DarakjyJapan2026-05-12Chanay, Jeffrey A Esq UNQUALIFIED20Ioni Bowcher
1047Jennifer AmigonSpain2026-04-24Chanay, Jeffrey A Esq NEW39Anna Fali
1048James ButtArgentina2026-04-20Chapman, Ross E Esq QUALIFIED99Bernardo Dominic
1049Maria MarrierBrazil2026-05-03Rousseaux, Michael Esq NEW3Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterFranceXuxue Feng QUALIFIED
Faith GillianJapanOnyama Limba QUALIFIED
Sinclair WaycottCanadaElwin Sharvill NEGOTIATION
Mayumi KolmetzArgentinaAnna Fali UNQUALIFIED
Mayumi KolmetzAustraliaIvan Magalhaes QUALIFIED
Silvio SlusarskiGermanyIoni Bowcher PROPOSAL
Rodrigues CampainRussiaAmy Elsner PROPOSAL
Wickens NestleItalyOnyama Limba PROPOSAL
Rodrigues CampainCanadaXuxue Feng NEGOTIATION
Smith GlickFranceBernardo Dominic NEGOTIATION
Jefferson SchemmerUnited KingdomStephen Shaw RENEWAL
Sinclair WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Maria MarrierGermanyXuxue Feng NEW
Salvatore StockhamItalyStephen Shaw RENEWAL
Kadeem FlosiJapanBernardo Dominic RENEWAL
Jennifer AmigonSpainOnyama Limba PROPOSAL
Darci PoquetteItalyAmy Elsner QUALIFIED
Ricardo GauchoJapanStephen Shaw NEW
Deepesh ChuiRussiaIoni Bowcher RENEWAL
Greenwood BologniaRussiaAmy Elsner NEGOTIATION
Rodrigues CampainRussiaOnyama Limba NEGOTIATION
Izzy GarufiRussiaStephen Shaw NEGOTIATION
Antonio CaudyArgentinaIvan Magalhaes RENEWAL
Clifford RimArgentinaStephen Shaw RENEWAL
Silvio SlusarskiFranceElwin Sharvill RENEWAL
Maisha RulapaughRussiaXuxue Feng PROPOSAL
Tony FollerUnited KingdomAmy Elsner PROPOSAL
Jennifer AmigonUnited KingdomAsiya Javayant PROPOSAL
Aika InouyeAustraliaIoni Bowcher RENEWAL
Tony FollerItalyAmy Elsner PROPOSAL
Rodrigues CampainJapanOnyama Limba QUALIFIED
Cody SaylorsFranceStephen Shaw UNQUALIFIED
Maisha RulapaughFranceAsiya Javayant NEW
Mayumi KolmetzCanadaOnyama Limba QUALIFIED
Smith GlickRussiaXuxue Feng QUALIFIED
Mayumi KolmetzItalyXuxue Feng NEW
Jones VocelkaRussiaIoni Bowcher RENEWAL
Jeanfrancois VenereCanadaElwin Sharvill NEW
Jefferson SchemmerGermanyOnyama Limba RENEWAL
Johnson SergiGermanyBernardo Dominic NEGOTIATION
Julie StensethFranceStephen Shaw RENEWAL
Darci PoquetteArgentinaElwin Sharvill RENEWAL
Ricardo GauchoSpainBernardo Dominic QUALIFIED
David DarakjyAustraliaAmy Elsner UNQUALIFIED
Clifford RimGermanyStephen Shaw PROPOSAL
Mujtaba NickaItalyAsiya Javayant NEGOTIATION
Tony FollerRussiaIoni Bowcher RENEWAL
Murillo MaletAustraliaIvan Magalhaes QUALIFIED
Mujtaba NickaSpainOnyama Limba RENEWAL
Morrow RutaUnited KingdomAmy Elsner PROPOSAL
Frozen Columns
Name
Stacey Maclead
Leja Caldarera
Wickens Nestle
Ivar Paprocki
Juan Wieser
Juan Wieser
Emily Whobrey
Francesco Shinko
Ricardo Gaucho
Faith Gillian
Darci Poquette
James Butt
Aruna Figeroa
Aika Inouye
Jeanfrancois Venere
Octavia Malet
Costa Dilliard
Rodrigues Campain
Francesco Shinko
Aditya Kusko
James Butt
Morrow Ruta
Wickens Nestle
Costa Dilliard
Mujtaba Nicka
Morrow Ruta
Julie Stenseth
Antonio Caudy
Mujtaba Nicka
Smith Glick
Johnson Sergi
Salvatore Stockham
Chavez Briddick
Chavez Briddick
Emily Whobrey
Alejandro Perin
Deepesh Chui
James Butt
Deepesh Chui
Tony Foller
Octavia Malet
Aditya Kusko
James Butt
Francesco Shinko
Antonio Caudy
Julie Stenseth
Mayumi Kolmetz
Arvin Albares
Leon Oldroyd
Maria Marrier
IdCountryDate
1000Canada2026-04-23
1001Japan2026-04-26
1002France2026-04-24
1003United Kingdom2026-05-01
1004Canada2026-04-22
1005Canada2026-04-15
1006Italy2026-04-16
1007Canada2026-05-05
1008Japan2026-05-10
1009Russia2026-05-04
1010United Kingdom2026-04-20
1011France2026-05-10
1012Italy2026-04-18
1013Spain2026-04-15
1014Japan2026-05-08
1015India2026-04-23
1016Italy2026-05-09
1017United Kingdom2026-05-07
1018Canada2026-04-25
1019Spain2026-05-07
1020Argentina2026-04-17
1021Germany2026-04-27
1022United Kingdom2026-04-13
1023Italy2026-05-08
1024Japan2026-04-15
1025Canada2026-04-15
1026Japan2026-05-09
1027Italy2026-04-24
1028Russia2026-04-26
1029Japan2026-04-29
1030Russia2026-05-04
1031Brazil2026-05-02
1032Brazil2026-05-12
1033India2026-05-03
1034Italy2026-04-23
1035Italy2026-04-16
1036Japan2026-04-26
1037Canada2026-04-28
1038India2026-05-10
1039Argentina2026-05-09
1040Japan2026-04-29
1041India2026-05-07
1042Italy2026-04-23
1043Italy2026-05-02
1044Japan2026-04-27
1045Argentina2026-04-30
1046Japan2026-05-02
1047Argentina2026-05-06
1048Japan2026-05-01
1049Russia2026-04-18

On-Demand Data

NameIdCountryDate
Ivar Paprocki1000Germany2026-05-09
Octavia Malet1001France2026-05-03
Julie Stenseth1002India2026-04-28
Mujtaba Nicka1003Japan2026-05-03
Silvio Slusarski1004Spain2026-04-25
Francesco Shinko1005Argentina2026-05-03
Kaitlin Ostrosky1006Argentina2026-05-09
Mujtaba Nicka1007United Kingdom2026-04-18
Arvin Albares1008India2026-04-17
Rodrigues Campain1009Canada2026-04-24
Aditya Kusko1010Spain2026-05-06
Claire Tollner1011Spain2026-04-23
Francesco Shinko1012Russia2026-04-27
Wickens Nestle1013Argentina2026-05-10
Rodrigues Campain1014Germany2026-04-26
Rodrigues Campain1015Russia2026-04-26
Emily Whobrey1016Italy2026-05-05
Stacey Maclead1017France2026-05-10
Jeanfrancois Venere1018Italy2026-04-19
Leja Caldarera1019Canada2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerRussiaAsiya Javayant RENEWAL
Jennifer AmigonIndiaIvan Magalhaes QUALIFIED
Maisha RulapaughJapanAnna Fali PROPOSAL
Julie StensethAustraliaStephen Shaw NEW
Clifford RimSpainAsiya Javayant QUALIFIED
Costa DilliardUnited KingdomAnna Fali UNQUALIFIED
Julie StensethGermanyElwin Sharvill UNQUALIFIED
Chavez BriddickFranceIvan Magalhaes NEGOTIATION
Jones VocelkaCanadaIoni Bowcher RENEWAL
Silvio SlusarskiIndiaBernardo Dominic NEW
Arvin AlbaresRussiaXuxue Feng NEW
Julie StensethRussiaAsiya Javayant UNQUALIFIED
Alejandro PerinBrazilXuxue Feng RENEWAL
Deepesh ChuiUnited KingdomAnna Fali NEW
Ashley DoeItalyAsiya Javayant RENEWAL
Izzy GarufiGermanyOnyama Limba PROPOSAL
Maria MarrierArgentinaStephen Shaw NEW
Cody SaylorsJapanIvan Magalhaes UNQUALIFIED
Leon OldroydItalyBernardo Dominic PROPOSAL
Francesco ShinkoArgentinaStephen Shaw NEGOTIATION
Ashley DoeBrazilAsiya Javayant PROPOSAL
Faith GillianCanadaAnna Fali NEGOTIATION
Ivar PaprockiBrazilBernardo Dominic NEGOTIATION
Morrow RutaRussiaOnyama Limba QUALIFIED
Sinclair WaycottAustraliaStephen Shaw NEW
Adams MorascaSpainAsiya Javayant RENEWAL
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczUnited KingdomAsiya Javayant PROPOSAL
Julie StensethAustraliaAsiya Javayant RENEWAL
Aika InouyeRussiaBernardo Dominic RENEWAL
Morrow RutaUnited KingdomOnyama Limba UNQUALIFIED
Aruna FigeroaSpainIoni Bowcher PROPOSAL
Nicolas IturbideFranceElwin Sharvill RENEWAL
Darci PoquetteCanadaStephen Shaw QUALIFIED
Clifford RimArgentinaIoni Bowcher UNQUALIFIED
Emily WhobreyIndiaIoni Bowcher UNQUALIFIED
Aditya KuskoIndiaAsiya Javayant RENEWAL
Silvio SlusarskiArgentinaBernardo Dominic NEW
Chavez BriddickRussiaOnyama Limba RENEWAL
Julie StensethItalyAsiya Javayant 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>