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
Deepesh ChuiCanadaAnna Fali RENEWAL
Alejandro PerinUnited KingdomStephen Shaw PROPOSAL
Stacey MacleadJapanIvan Magalhaes PROPOSAL
Ivar PaprockiUnited KingdomXuxue Feng PROPOSAL
James ButtRussiaIoni Bowcher UNQUALIFIED
Johnson SergiRussiaIoni Bowcher PROPOSAL
Mujtaba NickaUnited KingdomElwin Sharvill QUALIFIED
Claire TollnerJapanIvan Magalhaes UNQUALIFIED
Maria MarrierUnited KingdomAmy Elsner UNQUALIFIED
Deepesh ChuiSpainIoni Bowcher NEW
Mayumi KolmetzBrazilIvan Magalhaes RENEWAL
Stacey MacleadBrazilAnna Fali NEW
Darci PoquetteUnited KingdomAmy Elsner NEGOTIATION
Rodrigues CampainBrazilAsiya Javayant UNQUALIFIED
Aditya KuskoAustraliaStephen Shaw NEGOTIATION
David DarakjyAustraliaAnna Fali UNQUALIFIED
Leon OldroydItalyElwin Sharvill NEGOTIATION
Leon OldroydBrazilAnna Fali RENEWAL
Ivar PaprockiRussiaAnna Fali PROPOSAL
Leon OldroydArgentinaAnna Fali NEGOTIATION
Greenwood BologniaAustraliaIoni Bowcher QUALIFIED
Morrow RutaIndiaAsiya Javayant NEW
Juan WieserAustraliaOnyama Limba QUALIFIED
Tony FollerSpainIvan Magalhaes RENEWAL
Arvin AlbaresJapanElwin Sharvill QUALIFIED
Adams MorascaUnited KingdomElwin Sharvill NEGOTIATION
Sinclair WaycottAustraliaStephen Shaw PROPOSAL
Kadeem FlosiUnited KingdomOnyama Limba RENEWAL
Munro FerenczUnited KingdomBernardo Dominic NEW
Sinclair WaycottBrazilXuxue Feng RENEWAL
Arvin AlbaresJapanXuxue Feng RENEWAL
Wickens NestleItalyIvan Magalhaes NEW
Tony FollerIndiaAmy Elsner UNQUALIFIED
Sinclair WaycottIndiaElwin Sharvill QUALIFIED
Murillo MaletCanadaIoni Bowcher RENEWAL
Johnson SergiIndiaAmy Elsner PROPOSAL
David DarakjyUnited KingdomXuxue Feng PROPOSAL
Stacey MacleadItalyAsiya Javayant NEGOTIATION
Darci PoquetteUnited KingdomAsiya Javayant RENEWAL
Leja CaldareraIndiaStephen Shaw UNQUALIFIED
Faith GillianBrazilElwin Sharvill NEW
Rodrigues CampainArgentinaXuxue Feng PROPOSAL
Smith GlickFranceIvan Magalhaes QUALIFIED
Ashley DoeAustraliaBernardo Dominic PROPOSAL
Aika InouyeSpainBernardo Dominic NEW
Nicolas IturbideUnited KingdomIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaAnna Fali NEW
Clifford RimUnited KingdomIoni Bowcher RENEWAL
Misaki RoysterSpainIoni Bowcher PROPOSAL
Tony FollerItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughItalyOnyama Limba NEW
Wickens NestleItalyStephen Shaw RENEWAL
Murillo MaletRussiaIoni Bowcher NEGOTIATION
Leon OldroydGermanyIoni Bowcher NEW
Nicolas IturbideSpainAmy Elsner NEGOTIATION
Chavez BriddickGermanyIoni Bowcher PROPOSAL
Aditya KuskoBrazilStephen Shaw NEW
Arvin AlbaresItalyAnna Fali PROPOSAL
Greenwood BologniaJapanIoni Bowcher RENEWAL
Nicolas IturbideRussiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo GauchoIndia2026-04-19Rangoni Of Florence QUALIFIED69Stephen Shaw
1001Stacey MacleadRussia2026-04-16Buckley Miller Wright UNQUALIFIED88Ivan Magalhaes
1002Nicolas IturbideIndia2026-04-19Morlong Associates UNQUALIFIED32Stephen Shaw
1003Kadeem FlosiIndia2026-04-01King, Christopher A Esq QUALIFIED13Onyama Limba
1004Ashley DoeIndia2026-04-14Commercial Press UNQUALIFIED95Ivan Magalhaes
1005Wickens NestleFrance2026-04-17Dorl, James J Esq RENEWAL93Amy Elsner
1006Adams MorascaGermany2026-04-13Printing Dimensions UNQUALIFIED73Amy Elsner
1007Cody SaylorsFrance2026-04-01Feiner Bros RENEWAL23Stephen Shaw
1008Silvio SlusarskiUnited Kingdom2026-04-05Dorl, James J Esq PROPOSAL17Bernardo Dominic
1009Morrow RutaBrazil2026-04-22Chemel, James L Cpa QUALIFIED84Stephen Shaw
1010Faith GillianItaly2026-04-03Feiner Bros RENEWAL35Asiya Javayant
1011Nicolas IturbideArgentina2026-04-20Truhlar And Truhlar Attys RENEWAL12Stephen Shaw
1012Alejandro PerinSpain2026-04-17Rousseaux, Michael Esq RENEWAL54Elwin Sharvill
1013Morrow RutaGermany2026-04-19Dorl, James J Esq RENEWAL60Ivan Magalhaes
1014David DarakjyIndia2026-04-01Truhlar And Truhlar Attys NEW80Ioni Bowcher
1015Jefferson SchemmerUnited Kingdom2026-04-06Dorl, James J Esq PROPOSAL88Anna Fali
1016Jones VocelkaUnited Kingdom2026-04-13Printing Dimensions UNQUALIFIED3Ivan Magalhaes
1017Ivar PaprockiIndia2026-04-17Morlong Associates QUALIFIED42Onyama Limba
1018Ricardo GauchoGermany2026-04-11Rousseaux, Michael Esq PROPOSAL29Elwin Sharvill
1019Leon OldroydIndia2026-03-31Benton, John B Jr RENEWAL66Bernardo Dominic
1020Johnson SergiGermany2026-04-25Chemel, James L Cpa UNQUALIFIED87Stephen Shaw
1021Darci PoquetteBrazil2026-04-15Feltz Printing Service NEGOTIATION79Ioni Bowcher
1022Ashley DoeAustralia2026-04-25Chemel, James L Cpa PROPOSAL16Xuxue Feng
1023Chavez BriddickUnited Kingdom2026-04-19Feltz Printing Service UNQUALIFIED61Ivan Magalhaes
1024Munro FerenczArgentina2026-03-27Morlong Associates PROPOSAL5Asiya Javayant
1025Aruna FigeroaJapan2026-04-05Morlong Associates PROPOSAL27Ioni Bowcher
1026Ashley DoeBrazil2026-04-22King, Christopher A Esq UNQUALIFIED21Amy Elsner
1027Julie StensethBrazil2026-04-10Rangoni Of Florence PROPOSAL58Anna Fali
1028Murillo MaletFrance2026-04-08Feiner Bros RENEWAL50Asiya Javayant
1029Francesco ShinkoArgentina2026-04-21Rousseaux, Michael Esq NEW36Amy Elsner
1030Octavia MaletRussia2026-04-09Chanay, Jeffrey A Esq PROPOSAL27Stephen Shaw
1031Jennifer AmigonJapan2026-04-18Truhlar And Truhlar Attys NEGOTIATION96Bernardo Dominic
1032David DarakjyJapan2026-04-04Buckley Miller Wright PROPOSAL9Amy Elsner
1033Sinclair WaycottGermany2026-03-29Rousseaux, Michael Esq RENEWAL45Stephen Shaw
1034Faith GillianSpain2026-04-11Benton, John B Jr UNQUALIFIED2Ioni Bowcher
1035Emily WhobreyRussia2026-04-09Chapman, Ross E Esq RENEWAL55Elwin Sharvill
1036James ButtSpain2026-04-23Commercial Press UNQUALIFIED80Onyama Limba
1037Arvin AlbaresJapan2026-04-08Printing Dimensions RENEWAL25Bernardo Dominic
1038Cody SaylorsJapan2026-03-30Chapman, Ross E Esq QUALIFIED79Onyama Limba
1039Jones VocelkaArgentina2026-04-18Morlong Associates QUALIFIED29Bernardo Dominic
1040Chavez BriddickAustralia2026-04-19Truhlar And Truhlar Attys NEGOTIATION0Anna Fali
1041Jeanfrancois VenereSpain2026-04-11Printing Dimensions QUALIFIED80Amy Elsner
1042Antonio CaudyGermany2026-04-03Truhlar And Truhlar Attys QUALIFIED5Ioni Bowcher
1043Wickens NestleCanada2026-03-29Chemel, James L Cpa QUALIFIED32Anna Fali
1044Leon OldroydBrazil2026-04-16Feiner Bros NEGOTIATION50Amy Elsner
1045Leon OldroydRussia2026-04-02Commercial Press UNQUALIFIED15Stephen Shaw
1046Deepesh ChuiBrazil2026-04-21Chanay, Jeffrey A Esq PROPOSAL31Ivan Magalhaes
1047Jeanfrancois VenereUnited Kingdom2026-04-03Chanay, Jeffrey A Esq RENEWAL7Xuxue Feng
1048Ricardo GauchoItaly2026-04-08Buckley Miller Wright PROPOSAL9Asiya Javayant
1049Ricardo GauchoJapan2026-03-31Rangoni Of Florence PROPOSAL53Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerRussiaBernardo Dominic NEW
Mujtaba NickaJapanElwin Sharvill PROPOSAL
David DarakjySpainOnyama Limba UNQUALIFIED
Maria MarrierBrazilOnyama Limba RENEWAL
Sinclair WaycottItalyAsiya Javayant NEW
Chavez BriddickArgentinaIoni Bowcher NEW
Francesco ShinkoUnited KingdomIoni Bowcher QUALIFIED
Clifford RimAustraliaBernardo Dominic RENEWAL
Misaki RoysterGermanyXuxue Feng QUALIFIED
Darci PoquetteIndiaAnna Fali QUALIFIED
Silvio SlusarskiCanadaIoni Bowcher PROPOSAL
Alejandro PerinJapanAsiya Javayant UNQUALIFIED
Chavez BriddickFranceBernardo Dominic NEW
Aruna FigeroaUnited KingdomAnna Fali NEW
Jefferson SchemmerArgentinaAnna Fali PROPOSAL
Claire TollnerSpainOnyama Limba PROPOSAL
Kaitlin OstroskyAustraliaXuxue Feng RENEWAL
Johnson SergiUnited KingdomAmy Elsner RENEWAL
Chavez BriddickAustraliaBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaXuxue Feng NEW
Octavia MaletArgentinaOnyama Limba PROPOSAL
Wickens NestleUnited KingdomAsiya Javayant NEW
James ButtAustraliaStephen Shaw RENEWAL
Jones VocelkaGermanyStephen Shaw UNQUALIFIED
Greenwood BologniaUnited KingdomStephen Shaw UNQUALIFIED
Silvio SlusarskiItalyAsiya Javayant NEW
James ButtBrazilElwin Sharvill RENEWAL
Leon OldroydItalyBernardo Dominic PROPOSAL
David DarakjyUnited KingdomXuxue Feng QUALIFIED
Misaki RoysterRussiaAmy Elsner RENEWAL
James ButtBrazilAsiya Javayant UNQUALIFIED
Greenwood BologniaSpainAsiya Javayant QUALIFIED
James ButtRussiaIoni Bowcher RENEWAL
Greenwood BologniaAustraliaOnyama Limba NEGOTIATION
Deepesh ChuiRussiaBernardo Dominic RENEWAL
Octavia MaletArgentinaOnyama Limba QUALIFIED
Stacey MacleadFranceIoni Bowcher PROPOSAL
Johnson SergiIndiaAsiya Javayant PROPOSAL
Clifford RimIndiaAsiya Javayant QUALIFIED
Aditya KuskoBrazilStephen Shaw PROPOSAL
Rodrigues CampainItalyIvan Magalhaes QUALIFIED
Morrow RutaSpainAnna Fali UNQUALIFIED
Jones VocelkaSpainXuxue Feng RENEWAL
Smith GlickUnited KingdomAmy Elsner NEW
Johnson SergiRussiaBernardo Dominic PROPOSAL
Aika InouyeItalyElwin Sharvill NEW
Jefferson SchemmerFranceIvan Magalhaes NEGOTIATION
Mayumi KolmetzAustraliaAnna Fali NEW
Arvin AlbaresAustraliaAmy Elsner UNQUALIFIED
Ashley DoeUnited KingdomBernardo Dominic NEGOTIATION
Frozen Columns
Name
Chavez Briddick
Tony Foller
James Butt
Chavez Briddick
Darci Poquette
Maria Marrier
Stacey Maclead
Emily Whobrey
Kaitlin Ostrosky
Julie Stenseth
Isabel Bowley
Smith Glick
Claire Tollner
Rodrigues Campain
Aruna Figeroa
Costa Dilliard
Adams Morasca
Jeanfrancois Venere
Wickens Nestle
Kaitlin Ostrosky
Ashley Doe
Tony Foller
Aditya Kusko
Costa Dilliard
Ashley Doe
David Darakjy
Morrow Ruta
Jones Vocelka
Jeanfrancois Venere
Maisha Rulapaugh
Sinclair Waycott
Kaitlin Ostrosky
Cody Saylors
Nicolas Iturbide
Izzy Garufi
Francesco Shinko
Greenwood Bolognia
Izzy Garufi
Chavez Briddick
Julie Stenseth
Rodrigues Campain
Costa Dilliard
Deepesh Chui
Kaitlin Ostrosky
Johnson Sergi
James Butt
Munro Ferencz
Darci Poquette
Salvatore Stockham
Salvatore Stockham
IdCountryDate
1000Japan2026-04-09
1001United Kingdom2026-04-09
1002Japan2026-04-20
1003France2026-04-18
1004Japan2026-04-14
1005Canada2026-04-11
1006India2026-04-15
1007Brazil2026-04-12
1008Australia2026-04-10
1009India2026-04-01
1010India2026-04-11
1011Japan2026-03-29
1012India2026-04-04
1013United Kingdom2026-04-18
1014Brazil2026-03-28
1015Germany2026-03-31
1016Australia2026-04-19
1017Australia2026-04-07
1018Russia2026-04-16
1019Australia2026-03-27
1020Japan2026-04-06
1021Italy2026-04-15
1022Germany2026-04-11
1023Brazil2026-04-09
1024France2026-04-03
1025Germany2026-03-28
1026India2026-03-30
1027Italy2026-04-07
1028Italy2026-04-02
1029Spain2026-04-06
1030Germany2026-04-20
1031Canada2026-04-18
1032Argentina2026-04-02
1033France2026-04-20
1034Spain2026-04-19
1035Russia2026-04-24
1036Argentina2026-04-20
1037Russia2026-03-27
1038Australia2026-03-30
1039United Kingdom2026-04-14
1040Russia2026-03-31
1041Canada2026-03-27
1042Japan2026-04-09
1043France2026-04-05
1044Italy2026-04-17
1045Australia2026-04-08
1046India2026-04-06
1047India2026-04-09
1048Australia2026-04-15
1049India2026-04-08

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Brazil2026-04-16
Darci Poquette1001Australia2026-04-16
Misaki Royster1002Spain2026-04-04
Stacey Maclead1003Japan2026-04-08
Nicolas Iturbide1004Argentina2026-04-23
Claire Tollner1005France2026-04-04
Smith Glick1006Australia2026-04-12
Aruna Figeroa1007Germany2026-03-31
Francesco Shinko1008Russia2026-04-03
Mujtaba Nicka1009Japan2026-03-31
Tony Foller1010United Kingdom2026-03-30
Greenwood Bolognia1011Italy2026-04-12
Clifford Rim1012Argentina2026-04-25
Mujtaba Nicka1013Russia2026-04-16
Maria Marrier1014Brazil2026-04-20
Jennifer Amigon1015Italy2026-04-05
Leja Caldarera1016India2026-04-17
Izzy Garufi1017Australia2026-04-16
Munro Ferencz1018Australia2026-04-25
Smith Glick1019India2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiBrazilAnna Fali PROPOSAL
Clifford RimSpainIoni Bowcher PROPOSAL
Greenwood BologniaIndiaStephen Shaw NEGOTIATION
Ricardo GauchoRussiaStephen Shaw UNQUALIFIED
David DarakjyJapanAnna Fali PROPOSAL
Chavez BriddickRussiaAmy Elsner NEGOTIATION
Sinclair WaycottFranceAnna Fali RENEWAL
Smith GlickItalyIoni Bowcher RENEWAL
Murillo MaletFranceElwin Sharvill QUALIFIED
Wickens NestleIndiaAnna Fali PROPOSAL
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Salvatore StockhamArgentinaBernardo Dominic QUALIFIED
Greenwood BologniaItalyBernardo Dominic RENEWAL
Juan WieserItalyStephen Shaw NEW
Sinclair WaycottItalyXuxue Feng PROPOSAL
David DarakjyArgentinaElwin Sharvill RENEWAL
Jeanfrancois VenereRussiaAnna Fali NEGOTIATION
Sinclair WaycottAustraliaXuxue Feng PROPOSAL
Smith GlickArgentinaIoni Bowcher PROPOSAL
Isabel BowleySpainAnna Fali QUALIFIED
Stacey MacleadRussiaBernardo Dominic QUALIFIED
Mayumi KolmetzUnited KingdomAnna Fali UNQUALIFIED
Izzy GarufiGermanyAnna Fali NEGOTIATION
Isabel BowleyRussiaAsiya Javayant PROPOSAL
Ricardo GauchoIndiaAmy Elsner QUALIFIED
Sinclair WaycottAustraliaXuxue Feng RENEWAL
Isabel BowleyFranceStephen Shaw UNQUALIFIED
Aditya KuskoJapanOnyama Limba QUALIFIED
Julie StensethSpainAnna Fali UNQUALIFIED
Claire TollnerIndiaIoni Bowcher RENEWAL
Chavez BriddickItalyElwin Sharvill PROPOSAL
Morrow RutaItalyElwin Sharvill NEGOTIATION
Leon OldroydArgentinaAnna Fali RENEWAL
Murillo MaletIndiaAnna Fali RENEWAL
Sinclair WaycottCanadaElwin Sharvill NEGOTIATION
Izzy GarufiIndiaStephen Shaw PROPOSAL
Johnson SergiUnited KingdomIvan Magalhaes RENEWAL
Ashley DoeBrazilIoni Bowcher NEGOTIATION
Francesco ShinkoIndiaAsiya Javayant UNQUALIFIED
Arvin AlbaresArgentinaXuxue 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>