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
Julie StensethAustraliaAmy Elsner UNQUALIFIED
Cody SaylorsItalyAnna Fali PROPOSAL
Jennifer AmigonIndiaAmy Elsner RENEWAL
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Ricardo GauchoItalyAmy Elsner RENEWAL
Murillo MaletSpainElwin Sharvill UNQUALIFIED
Darci PoquetteSpainAmy Elsner RENEWAL
Wickens NestleAustraliaBernardo Dominic QUALIFIED
Silvio SlusarskiBrazilAsiya Javayant RENEWAL
Claire TollnerFranceBernardo Dominic UNQUALIFIED
Ashley DoeCanadaStephen Shaw UNQUALIFIED
Cody SaylorsAustraliaStephen Shaw RENEWAL
Arvin AlbaresAustraliaStephen Shaw QUALIFIED
Costa DilliardBrazilAnna Fali NEGOTIATION
Ivar PaprockiGermanyStephen Shaw NEGOTIATION
Maisha RulapaughBrazilAmy Elsner UNQUALIFIED
Tony FollerUnited KingdomAsiya Javayant NEW
Mayumi KolmetzItalyIvan Magalhaes NEW
Misaki RoysterCanadaElwin Sharvill PROPOSAL
Francesco ShinkoBrazilAmy Elsner PROPOSAL
Rodrigues CampainBrazilOnyama Limba QUALIFIED
David DarakjyBrazilAsiya Javayant PROPOSAL
Wickens NestleItalyOnyama Limba NEGOTIATION
Jefferson SchemmerArgentinaStephen Shaw QUALIFIED
Ricardo GauchoItalyStephen Shaw NEGOTIATION
Arvin AlbaresArgentinaOnyama Limba UNQUALIFIED
Izzy GarufiSpainElwin Sharvill UNQUALIFIED
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Deepesh ChuiFranceBernardo Dominic NEW
Jefferson SchemmerRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamJapanStephen Shaw NEW
Ashley DoeCanadaIoni Bowcher NEGOTIATION
Juan WieserCanadaStephen Shaw PROPOSAL
Aditya KuskoArgentinaOnyama Limba NEW
Chavez BriddickGermanyXuxue Feng UNQUALIFIED
Darci PoquetteItalyBernardo Dominic QUALIFIED
Octavia MaletGermanyStephen Shaw UNQUALIFIED
Ashley DoeAustraliaStephen Shaw QUALIFIED
Munro FerenczRussiaIoni Bowcher NEW
Stacey MacleadAustraliaElwin Sharvill NEGOTIATION
Cody SaylorsFranceIvan Magalhaes NEW
Deepesh ChuiItalyAnna Fali NEGOTIATION
David DarakjyGermanyAnna Fali PROPOSAL
Kaitlin OstroskyGermanyElwin Sharvill QUALIFIED
Kaitlin OstroskyBrazilBernardo Dominic UNQUALIFIED
Antonio CaudyItalyElwin Sharvill NEW
Wickens NestleAustraliaStephen Shaw QUALIFIED
Julie StensethCanadaIvan Magalhaes NEW
Leon OldroydItalyAsiya Javayant NEW
Ricardo GauchoAustraliaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyJapanElwin Sharvill NEW
Chavez BriddickFranceIoni Bowcher PROPOSAL
Sinclair WaycottItalyElwin Sharvill PROPOSAL
Nicolas IturbideSpainIvan Magalhaes PROPOSAL
Costa DilliardFranceIoni Bowcher NEGOTIATION
Maisha RulapaughBrazilXuxue Feng PROPOSAL
Costa DilliardGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereArgentinaIvan Magalhaes RENEWAL
Faith GillianArgentinaBernardo Dominic NEW
Morrow RutaRussiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody SaylorsRussia2026-04-16Truhlar And Truhlar Attys UNQUALIFIED59Stephen Shaw
1001Mujtaba NickaIndia2026-04-09Commercial Press NEGOTIATION70Ivan Magalhaes
1002James ButtIndia2026-04-09Benton, John B Jr NEGOTIATION26Amy Elsner
1003Munro FerenczFrance2026-04-10Chapman, Ross E Esq RENEWAL49Anna Fali
1004Izzy GarufiUnited Kingdom2026-04-08King, Christopher A Esq UNQUALIFIED81Onyama Limba
1005Munro FerenczJapan2026-04-13Buckley Miller Wright PROPOSAL5Asiya Javayant
1006Leja CaldareraBrazil2026-04-20King, Christopher A Esq NEW91Amy Elsner
1007Smith GlickIndia2026-04-14King, Christopher A Esq NEGOTIATION14Onyama Limba
1008Wickens NestleFrance2026-03-23Rousseaux, Michael Esq NEGOTIATION30Bernardo Dominic
1009Kadeem FlosiRussia2026-04-08Buckley Miller Wright PROPOSAL9Stephen Shaw
1010Costa DilliardIndia2026-04-14Chapman, Ross E Esq NEW80Ivan Magalhaes
1011Ashley DoeArgentina2026-04-02King, Christopher A Esq NEGOTIATION25Anna Fali
1012Jones VocelkaJapan2026-04-04Benton, John B Jr NEW22Stephen Shaw
1013Aditya KuskoGermany2026-04-04Chemel, James L Cpa NEGOTIATION33Onyama Limba
1014Antonio CaudyArgentina2026-04-14Printing Dimensions RENEWAL48Xuxue Feng
1015Aika InouyeAustralia2026-04-18Chapman, Ross E Esq RENEWAL17Asiya Javayant
1016Morrow RutaCanada2026-03-29Commercial Press PROPOSAL60Stephen Shaw
1017Costa DilliardBrazil2026-04-19Truhlar And Truhlar Attys NEW88Asiya Javayant
1018Johnson SergiBrazil2026-03-27Chapman, Ross E Esq PROPOSAL38Ivan Magalhaes
1019Ivar PaprockiIndia2026-03-28Chapman, Ross E Esq UNQUALIFIED1Ivan Magalhaes
1020Francesco ShinkoArgentina2026-03-26Benton, John B Jr UNQUALIFIED65Onyama Limba
1021Julie StensethItaly2026-03-27Rangoni Of Florence RENEWAL2Amy Elsner
1022Jennifer AmigonCanada2026-04-11Feiner Bros RENEWAL15Bernardo Dominic
1023Morrow RutaRussia2026-04-15Chapman, Ross E Esq PROPOSAL28Amy Elsner
1024Maisha RulapaughCanada2026-03-28Chemel, James L Cpa RENEWAL7Stephen Shaw
1025Murillo MaletFrance2026-04-02Chanay, Jeffrey A Esq PROPOSAL53Onyama Limba
1026Aika InouyeFrance2026-04-19Feiner Bros NEW64Asiya Javayant
1027Costa DilliardSpain2026-04-12Benton, John B Jr NEGOTIATION41Amy Elsner
1028Jeanfrancois VenereArgentina2026-04-18Benton, John B Jr PROPOSAL97Asiya Javayant
1029Izzy GarufiIndia2026-04-19Chapman, Ross E Esq NEGOTIATION5Xuxue Feng
1030Julie StensethFrance2026-03-23Chapman, Ross E Esq UNQUALIFIED53Onyama Limba
1031Aruna FigeroaArgentina2026-04-10Benton, John B Jr NEW79Asiya Javayant
1032Cody SaylorsCanada2026-03-24Truhlar And Truhlar Attys NEGOTIATION72Asiya Javayant
1033Ricardo GauchoIndia2026-03-31Truhlar And Truhlar Attys QUALIFIED11Elwin Sharvill
1034Faith GillianJapan2026-04-02Buckley Miller Wright QUALIFIED99Elwin Sharvill
1035Munro FerenczCanada2026-03-28Rousseaux, Michael Esq RENEWAL3Xuxue Feng
1036Jennifer AmigonAustralia2026-04-11Chemel, James L Cpa PROPOSAL55Xuxue Feng
1037Smith GlickAustralia2026-04-02Printing Dimensions NEGOTIATION0Ivan Magalhaes
1038Isabel BowleyUnited Kingdom2026-04-19Printing Dimensions RENEWAL12Anna Fali
1039Isabel BowleyItaly2026-04-05Rangoni Of Florence UNQUALIFIED20Stephen Shaw
1040Aditya KuskoSpain2026-04-07Morlong Associates NEW15Stephen Shaw
1041Aruna FigeroaItaly2026-04-05Rangoni Of Florence QUALIFIED95Ioni Bowcher
1042Francesco ShinkoItaly2026-03-29Dorl, James J Esq RENEWAL78Bernardo Dominic
1043Adams MorascaArgentina2026-03-26Feiner Bros UNQUALIFIED65Elwin Sharvill
1044Jennifer AmigonItaly2026-03-26Commercial Press UNQUALIFIED95Stephen Shaw
1045Silvio SlusarskiFrance2026-03-28Benton, John B Jr UNQUALIFIED92Asiya Javayant
1046Jefferson SchemmerIndia2026-04-15Printing Dimensions RENEWAL10Ivan Magalhaes
1047Aika InouyeGermany2026-03-26Feltz Printing Service NEW52Onyama Limba
1048Misaki RoysterUnited Kingdom2026-04-06Buckley Miller Wright NEGOTIATION10Stephen Shaw
1049Salvatore StockhamAustralia2026-04-20Morlong Associates PROPOSAL15Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaFranceBernardo Dominic RENEWAL
Octavia MaletArgentinaAnna Fali RENEWAL
Jeanfrancois VenereFranceXuxue Feng NEW
Salvatore StockhamBrazilBernardo Dominic RENEWAL
Octavia MaletItalyAmy Elsner QUALIFIED
Izzy GarufiArgentinaIvan Magalhaes NEW
James ButtUnited KingdomBernardo Dominic UNQUALIFIED
Ivar PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Costa DilliardBrazilAsiya Javayant UNQUALIFIED
Izzy GarufiUnited KingdomStephen Shaw QUALIFIED
Clifford RimJapanAsiya Javayant NEW
Izzy GarufiArgentinaStephen Shaw UNQUALIFIED
James ButtUnited KingdomIoni Bowcher RENEWAL
Julie StensethRussiaOnyama Limba QUALIFIED
Leja CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Faith GillianIndiaIvan Magalhaes QUALIFIED
Faith GillianArgentinaElwin Sharvill NEGOTIATION
Mujtaba NickaFranceAmy Elsner NEW
Leja CaldareraGermanyStephen Shaw QUALIFIED
James ButtUnited KingdomBernardo Dominic NEW
Claire TollnerJapanAmy Elsner RENEWAL
Morrow RutaRussiaIoni Bowcher RENEWAL
Ivar PaprockiRussiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiAustraliaAsiya Javayant NEGOTIATION
Misaki RoysterRussiaXuxue Feng PROPOSAL
Smith GlickAustraliaIoni Bowcher NEGOTIATION
Antonio CaudySpainXuxue Feng QUALIFIED
Faith GillianJapanIoni Bowcher UNQUALIFIED
Antonio CaudySpainOnyama Limba RENEWAL
Salvatore StockhamGermanyAnna Fali NEGOTIATION
Munro FerenczJapanAmy Elsner NEGOTIATION
Kadeem FlosiSpainElwin Sharvill RENEWAL
Emily WhobreyAustraliaElwin Sharvill QUALIFIED
Jeanfrancois VenereSpainOnyama Limba NEW
Adams MorascaBrazilAnna Fali PROPOSAL
Antonio CaudyUnited KingdomAmy Elsner PROPOSAL
Arvin AlbaresArgentinaXuxue Feng PROPOSAL
Wickens NestleItalyAnna Fali PROPOSAL
Munro FerenczRussiaXuxue Feng UNQUALIFIED
Stacey MacleadGermanyIvan Magalhaes NEW
Jennifer AmigonItalyStephen Shaw NEW
Jefferson SchemmerSpainStephen Shaw NEW
Wickens NestleAustraliaAmy Elsner NEW
Leon OldroydJapanXuxue Feng QUALIFIED
Johnson SergiCanadaXuxue Feng NEGOTIATION
Jones VocelkaBrazilAmy Elsner NEW
Kaitlin OstroskyBrazilBernardo Dominic PROPOSAL
Mujtaba NickaBrazilIoni Bowcher UNQUALIFIED
Kaitlin OstroskyFranceAnna Fali UNQUALIFIED
Mayumi KolmetzAustraliaStephen Shaw PROPOSAL
Frozen Columns
Name
Faith Gillian
David Darakjy
Misaki Royster
Costa Dilliard
Claire Tollner
Octavia Malet
Francesco Shinko
Rodrigues Campain
Murillo Malet
Aruna Figeroa
Ivar Paprocki
Francesco Shinko
Arvin Albares
Clifford Rim
Rodrigues Campain
Mayumi Kolmetz
Silvio Slusarski
Aika Inouye
Aika Inouye
Aditya Kusko
Alejandro Perin
Salvatore Stockham
Julie Stenseth
Leja Caldarera
Chavez Briddick
Chavez Briddick
Leja Caldarera
Munro Ferencz
Izzy Garufi
Mujtaba Nicka
Claire Tollner
Nicolas Iturbide
Salvatore Stockham
Aruna Figeroa
Kaitlin Ostrosky
Deepesh Chui
Kaitlin Ostrosky
Sinclair Waycott
Adams Morasca
Maria Marrier
Rodrigues Campain
Morrow Ruta
Maisha Rulapaugh
Aditya Kusko
Cody Saylors
Adams Morasca
Isabel Bowley
Arvin Albares
Emily Whobrey
Jennifer Amigon
IdCountryDate
1000Canada2026-04-08
1001Australia2026-03-26
1002Russia2026-04-16
1003United Kingdom2026-04-07
1004Canada2026-03-24
1005Spain2026-03-23
1006United Kingdom2026-03-27
1007Italy2026-04-05
1008Spain2026-04-04
1009Canada2026-04-08
1010India2026-04-18
1011Argentina2026-04-18
1012Japan2026-03-28
1013France2026-04-02
1014Spain2026-04-16
1015Italy2026-03-27
1016Russia2026-04-04
1017Australia2026-04-20
1018Italy2026-04-08
1019Brazil2026-04-18
1020Australia2026-04-09
1021Japan2026-04-19
1022Australia2026-04-13
1023France2026-04-09
1024Germany2026-03-31
1025United Kingdom2026-04-13
1026Brazil2026-04-04
1027Argentina2026-03-26
1028Australia2026-04-09
1029Germany2026-04-15
1030France2026-03-25
1031India2026-03-25
1032Japan2026-04-17
1033Japan2026-03-23
1034Brazil2026-03-31
1035France2026-03-29
1036Spain2026-03-24
1037Argentina2026-04-05
1038France2026-04-10
1039Japan2026-03-23
1040Argentina2026-04-16
1041Brazil2026-04-09
1042Canada2026-04-19
1043Argentina2026-03-27
1044Spain2026-04-15
1045Italy2026-04-08
1046Argentina2026-03-27
1047Brazil2026-04-01
1048United Kingdom2026-04-12
1049Spain2026-04-02

On-Demand Data

NameIdCountryDate
Ashley Doe1000United Kingdom2026-04-11
James Butt1001Germany2026-04-17
Kadeem Flosi1002India2026-04-18
Kadeem Flosi1003United Kingdom2026-03-23
Arvin Albares1004Russia2026-04-21
Wickens Nestle1005Spain2026-04-07
Mujtaba Nicka1006Italy2026-04-06
Maria Marrier1007Germany2026-04-08
Claire Tollner1008Australia2026-04-02
Wickens Nestle1009Italy2026-04-01
Aditya Kusko1010Russia2026-03-24
Deepesh Chui1011Italy2026-03-28
Maisha Rulapaugh1012Brazil2026-03-29
Ivar Paprocki1013Canada2026-04-02
David Darakjy1014Russia2026-04-01
Francesco Shinko1015Spain2026-03-26
Wickens Nestle1016Australia2026-04-14
Arvin Albares1017Canada2026-03-25
Aditya Kusko1018United Kingdom2026-03-29
Mayumi Kolmetz1019France2026-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyRussiaAsiya Javayant NEGOTIATION
Jennifer AmigonCanadaBernardo Dominic NEGOTIATION
Rodrigues CampainItalyElwin Sharvill NEW
Leja CaldareraAustraliaIvan Magalhaes QUALIFIED
Aruna FigeroaGermanyXuxue Feng UNQUALIFIED
Maisha RulapaughGermanyXuxue Feng RENEWAL
Isabel BowleyIndiaXuxue Feng PROPOSAL
Jones VocelkaRussiaOnyama Limba UNQUALIFIED
James ButtArgentinaBernardo Dominic NEW
Juan WieserCanadaOnyama Limba QUALIFIED
Claire TollnerGermanyIvan Magalhaes PROPOSAL
Morrow RutaIndiaStephen Shaw PROPOSAL
Francesco ShinkoArgentinaAmy Elsner RENEWAL
Munro FerenczAustraliaAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaBernardo Dominic RENEWAL
Smith GlickFranceOnyama Limba NEGOTIATION
Sinclair WaycottUnited KingdomXuxue Feng PROPOSAL
Darci PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Juan WieserRussiaAsiya Javayant UNQUALIFIED
Stacey MacleadUnited KingdomAnna Fali RENEWAL
James ButtFranceIoni Bowcher QUALIFIED
Claire TollnerRussiaXuxue Feng NEGOTIATION
Jeanfrancois VenereJapanIoni Bowcher RENEWAL
James ButtRussiaAsiya Javayant PROPOSAL
Aika InouyeSpainIvan Magalhaes QUALIFIED
Julie StensethItalyIvan Magalhaes RENEWAL
Morrow RutaArgentinaXuxue Feng PROPOSAL
Octavia MaletGermanyIvan Magalhaes NEGOTIATION
Izzy GarufiIndiaOnyama Limba RENEWAL
Jones VocelkaItalyAsiya Javayant QUALIFIED
Isabel BowleyRussiaIoni Bowcher PROPOSAL
Faith GillianFranceStephen Shaw QUALIFIED
Johnson SergiAustraliaAsiya Javayant NEW
Leon OldroydIndiaOnyama Limba NEGOTIATION
Smith GlickAustraliaIvan Magalhaes PROPOSAL
Tony FollerUnited KingdomIoni Bowcher NEGOTIATION
James ButtFranceBernardo Dominic PROPOSAL
Jeanfrancois VenereGermanyBernardo Dominic RENEWAL
Costa DilliardItalyAnna Fali UNQUALIFIED
Clifford RimJapanElwin Sharvill NEGOTIATION

<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>