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
Clifford RimCanadaAnna Fali PROPOSAL
Misaki RoysterGermanyOnyama Limba RENEWAL
Aika InouyeIndiaOnyama Limba UNQUALIFIED
Alejandro PerinFranceAsiya Javayant NEGOTIATION
Julie StensethGermanyOnyama Limba UNQUALIFIED
Chavez BriddickJapanElwin Sharvill RENEWAL
Sinclair WaycottCanadaIoni Bowcher NEW
Antonio CaudyRussiaStephen Shaw PROPOSAL
Alejandro PerinFranceElwin Sharvill UNQUALIFIED
Smith GlickJapanElwin Sharvill QUALIFIED
Maria MarrierCanadaAmy Elsner PROPOSAL
Aditya KuskoBrazilAnna Fali QUALIFIED
James ButtItalyElwin Sharvill NEW
Salvatore StockhamSpainIoni Bowcher RENEWAL
Mayumi KolmetzArgentinaIvan Magalhaes PROPOSAL
Antonio CaudyUnited KingdomStephen Shaw QUALIFIED
Greenwood BologniaJapanAsiya Javayant NEW
James ButtArgentinaElwin Sharvill PROPOSAL
Arvin AlbaresSpainAsiya Javayant UNQUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill PROPOSAL
Murillo MaletJapanIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomAmy Elsner PROPOSAL
Aika InouyeBrazilBernardo Dominic QUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher NEW
Francesco ShinkoRussiaOnyama Limba UNQUALIFIED
Deepesh ChuiAustraliaXuxue Feng NEW
Chavez BriddickSpainElwin Sharvill UNQUALIFIED
Ashley DoeAustraliaStephen Shaw NEGOTIATION
Jennifer AmigonJapanOnyama Limba UNQUALIFIED
Salvatore StockhamCanadaStephen Shaw PROPOSAL
Faith GillianRussiaXuxue Feng QUALIFIED
Tony FollerIndiaAsiya Javayant RENEWAL
Murillo MaletSpainIoni Bowcher NEW
Maria MarrierBrazilStephen Shaw PROPOSAL
Juan WieserJapanIvan Magalhaes UNQUALIFIED
Emily WhobreySpainStephen Shaw RENEWAL
Jones VocelkaRussiaElwin Sharvill QUALIFIED
Johnson SergiCanadaIvan Magalhaes NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill RENEWAL
Wickens NestleSpainAmy Elsner UNQUALIFIED
Julie StensethSpainElwin Sharvill QUALIFIED
James ButtBrazilStephen Shaw RENEWAL
Arvin AlbaresFranceXuxue Feng RENEWAL
Tony FollerCanadaAmy Elsner PROPOSAL
Isabel BowleyUnited KingdomAmy Elsner PROPOSAL
James ButtUnited KingdomIvan Magalhaes NEW
Wickens NestleUnited KingdomXuxue Feng PROPOSAL
Sinclair WaycottGermanyAmy Elsner PROPOSAL
Murillo MaletGermanyAmy Elsner QUALIFIED
Mujtaba NickaJapanAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraGermanyIoni Bowcher PROPOSAL
Leon OldroydUnited KingdomAsiya Javayant UNQUALIFIED
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Arvin AlbaresCanadaAnna Fali PROPOSAL
Murillo MaletCanadaAsiya Javayant QUALIFIED
Arvin AlbaresIndiaIvan Magalhaes QUALIFIED
Isabel BowleyJapanXuxue Feng PROPOSAL
David DarakjyArgentinaAnna Fali PROPOSAL
Nicolas IturbideFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaItaly2025-09-27Truhlar And Truhlar Attys PROPOSAL4Stephen Shaw
1001Izzy GarufiCanada2025-09-22Chapman, Ross E Esq UNQUALIFIED51Onyama Limba
1002Aditya KuskoUnited Kingdom2025-09-22Feiner Bros NEGOTIATION80Ioni Bowcher
1003Johnson SergiItaly2025-10-02Chapman, Ross E Esq PROPOSAL68Onyama Limba
1004Adams MorascaRussia2025-09-08Dorl, James J Esq QUALIFIED13Xuxue Feng
1005Ricardo GauchoGermany2025-09-18Dorl, James J Esq PROPOSAL84Elwin Sharvill
1006Faith GillianArgentina2025-09-16Printing Dimensions UNQUALIFIED76Xuxue Feng
1007Murillo MaletUnited Kingdom2025-09-08Chanay, Jeffrey A Esq UNQUALIFIED67Amy Elsner
1008Munro FerenczJapan2025-09-17King, Christopher A Esq RENEWAL52Onyama Limba
1009Ricardo GauchoJapan2025-09-17King, Christopher A Esq PROPOSAL14Stephen Shaw
1010Jennifer AmigonIndia2025-09-18Feltz Printing Service PROPOSAL75Stephen Shaw
1011Clifford RimFrance2025-09-22Buckley Miller Wright RENEWAL95Xuxue Feng
1012Aika InouyeBrazil2025-09-05Feiner Bros UNQUALIFIED80Stephen Shaw
1013Ashley DoeFrance2025-09-07King, Christopher A Esq QUALIFIED3Stephen Shaw
1014Faith GillianBrazil2025-09-29Morlong Associates UNQUALIFIED40Onyama Limba
1015Mayumi KolmetzArgentina2025-09-16Feiner Bros NEGOTIATION12Onyama Limba
1016Johnson SergiIndia2025-09-18Dorl, James J Esq NEGOTIATION22Ioni Bowcher
1017Leja CaldareraIndia2025-09-14Chapman, Ross E Esq RENEWAL31Ivan Magalhaes
1018Mujtaba NickaIndia2025-10-03Rangoni Of Florence RENEWAL68Anna Fali
1019Leon OldroydUnited Kingdom2025-09-08Feiner Bros UNQUALIFIED45Ioni Bowcher
1020Leja CaldareraCanada2025-10-02Commercial Press PROPOSAL67Bernardo Dominic
1021Claire TollnerFrance2025-10-02Feltz Printing Service UNQUALIFIED19Elwin Sharvill
1022Tony FollerAustralia2025-09-29Feiner Bros UNQUALIFIED47Onyama Limba
1023Maria MarrierAustralia2025-09-06Chanay, Jeffrey A Esq NEGOTIATION56Ivan Magalhaes
1024Maria MarrierCanada2025-09-21Buckley Miller Wright QUALIFIED96Asiya Javayant
1025Julie StensethSpain2025-09-15Dorl, James J Esq RENEWAL50Amy Elsner
1026Morrow RutaRussia2025-09-22Chapman, Ross E Esq NEW9Amy Elsner
1027Ricardo GauchoCanada2025-09-07Rousseaux, Michael Esq RENEWAL21Stephen Shaw
1028Clifford RimSpain2025-09-18Printing Dimensions QUALIFIED93Bernardo Dominic
1029Sinclair WaycottAustralia2025-09-13Morlong Associates RENEWAL79Xuxue Feng
1030Maria MarrierJapan2025-09-30King, Christopher A Esq PROPOSAL76Bernardo Dominic
1031Mayumi KolmetzFrance2025-09-21Buckley Miller Wright UNQUALIFIED46Ioni Bowcher
1032Antonio CaudyJapan2025-09-29Feiner Bros PROPOSAL68Elwin Sharvill
1033Kadeem FlosiArgentina2025-09-22Feltz Printing Service NEW18Asiya Javayant
1034Leja CaldareraAustralia2025-09-08Chapman, Ross E Esq NEW29Anna Fali
1035Aruna FigeroaGermany2025-09-07Rangoni Of Florence QUALIFIED35Anna Fali
1036Adams MorascaJapan2025-09-14Buckley Miller Wright NEGOTIATION10Anna Fali
1037Deepesh ChuiSpain2025-10-02Truhlar And Truhlar Attys UNQUALIFIED52Elwin Sharvill
1038Jeanfrancois VenereFrance2025-09-07Rangoni Of Florence NEW1Anna Fali
1039Julie StensethAustralia2025-09-09Feiner Bros PROPOSAL80Ivan Magalhaes
1040Sinclair WaycottCanada2025-09-20King, Christopher A Esq PROPOSAL53Elwin Sharvill
1041Leon OldroydItaly2025-09-21Feiner Bros NEGOTIATION6Ioni Bowcher
1042Francesco ShinkoJapan2025-09-15Truhlar And Truhlar Attys NEW24Bernardo Dominic
1043Maisha RulapaughRussia2025-09-07Rangoni Of Florence UNQUALIFIED84Anna Fali
1044Misaki RoysterArgentina2025-09-23Feiner Bros UNQUALIFIED7Amy Elsner
1045Jefferson SchemmerFrance2025-09-24Chapman, Ross E Esq PROPOSAL61Xuxue Feng
1046Maisha RulapaughCanada2025-09-08Chemel, James L Cpa NEW3Asiya Javayant
1047Ivar PaprockiFrance2025-09-19Rangoni Of Florence QUALIFIED83Asiya Javayant
1048Leja CaldareraFrance2025-09-07Feltz Printing Service QUALIFIED73Onyama Limba
1049Murillo MaletFrance2025-10-03Feiner Bros QUALIFIED20Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
James ButtBrazilIoni Bowcher UNQUALIFIED
Costa DilliardUnited KingdomAnna Fali QUALIFIED
Chavez BriddickItalyAnna Fali RENEWAL
Jeanfrancois VenereJapanElwin Sharvill QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill QUALIFIED
Ricardo GauchoBrazilAnna Fali UNQUALIFIED
Morrow RutaRussiaIoni Bowcher UNQUALIFIED
Nicolas IturbideItalyAnna Fali PROPOSAL
Claire TollnerItalyElwin Sharvill NEGOTIATION
Emily WhobreyIndiaAnna Fali PROPOSAL
Mayumi KolmetzItalyXuxue Feng PROPOSAL
Salvatore StockhamAustraliaAsiya Javayant NEW
Jeanfrancois VenereFranceStephen Shaw NEW
Faith GillianIndiaIoni Bowcher NEGOTIATION
Alejandro PerinItalyAsiya Javayant NEGOTIATION
Maria MarrierIndiaBernardo Dominic NEW
Chavez BriddickIndiaOnyama Limba NEGOTIATION
Faith GillianUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin OstroskyRussiaAsiya Javayant NEGOTIATION
Cody SaylorsGermanyOnyama Limba RENEWAL
Faith GillianRussiaXuxue Feng UNQUALIFIED
Clifford RimUnited KingdomAmy Elsner NEGOTIATION
Isabel BowleySpainIoni Bowcher NEW
Jefferson SchemmerSpainAsiya Javayant NEGOTIATION
Octavia MaletBrazilAmy Elsner QUALIFIED
Jeanfrancois VenereSpainIvan Magalhaes NEW
Maisha RulapaughIndiaAmy Elsner RENEWAL
Leon OldroydJapanAsiya Javayant QUALIFIED
Johnson SergiIndiaXuxue Feng PROPOSAL
Emily WhobreyFranceXuxue Feng PROPOSAL
Emily WhobreyBrazilAsiya Javayant PROPOSAL
Leon OldroydJapanBernardo Dominic QUALIFIED
Izzy GarufiAustraliaAsiya Javayant NEGOTIATION
Cody SaylorsBrazilAmy Elsner UNQUALIFIED
Smith GlickUnited KingdomXuxue Feng QUALIFIED
Isabel BowleyAustraliaOnyama Limba NEGOTIATION
Leon OldroydSpainElwin Sharvill QUALIFIED
Nicolas IturbideFranceAnna Fali QUALIFIED
Murillo MaletArgentinaAmy Elsner RENEWAL
Faith GillianItalyXuxue Feng RENEWAL
Claire TollnerIndiaIoni Bowcher PROPOSAL
Kaitlin OstroskyGermanyAnna Fali NEW
Silvio SlusarskiSpainAsiya Javayant PROPOSAL
Rodrigues CampainAustraliaOnyama Limba QUALIFIED
Leja CaldareraJapanAnna Fali NEW
Ricardo GauchoAustraliaIoni Bowcher NEW
Faith GillianAustraliaIvan Magalhaes RENEWAL
Greenwood BologniaAustraliaAnna Fali PROPOSAL
Kaitlin OstroskyAustraliaIoni Bowcher RENEWAL
Adams MorascaFranceIvan Magalhaes QUALIFIED
Frozen Columns
Name
Ricardo Gaucho
Maisha Rulapaugh
Jennifer Amigon
Kadeem Flosi
Johnson Sergi
Wickens Nestle
Isabel Bowley
Wickens Nestle
Alejandro Perin
Jefferson Schemmer
Alejandro Perin
Tony Foller
Cody Saylors
Mujtaba Nicka
Ricardo Gaucho
Mujtaba Nicka
Mujtaba Nicka
Emily Whobrey
Adams Morasca
Isabel Bowley
Costa Dilliard
Antonio Caudy
Chavez Briddick
Morrow Ruta
Francesco Shinko
Wickens Nestle
Darci Poquette
Murillo Malet
Silvio Slusarski
Adams Morasca
Nicolas Iturbide
David Darakjy
Antonio Caudy
Claire Tollner
Rodrigues Campain
Salvatore Stockham
Kaitlin Ostrosky
Jennifer Amigon
Johnson Sergi
Ashley Doe
Cody Saylors
Murillo Malet
Jeanfrancois Venere
Greenwood Bolognia
Aruna Figeroa
Munro Ferencz
Morrow Ruta
Stacey Maclead
Cody Saylors
Izzy Garufi
IdCountryDate
1000Brazil2025-09-29
1001India2025-09-10
1002Russia2025-10-01
1003India2025-09-11
1004Italy2025-10-03
1005Canada2025-10-01
1006United Kingdom2025-09-21
1007Argentina2025-09-04
1008Australia2025-10-01
1009India2025-09-04
1010Italy2025-09-12
1011Japan2025-09-20
1012Brazil2025-09-06
1013United Kingdom2025-09-23
1014Brazil2025-09-17
1015Canada2025-09-22
1016Italy2025-09-09
1017India2025-09-08
1018India2025-09-06
1019India2025-09-19
1020Australia2025-09-16
1021Argentina2025-09-09
1022Japan2025-09-09
1023Brazil2025-09-08
1024India2025-09-13
1025Australia2025-09-13
1026Japan2025-09-24
1027Spain2025-09-28
1028Japan2025-09-29
1029India2025-09-23
1030Spain2025-09-22
1031India2025-09-09
1032Argentina2025-10-01
1033Australia2025-09-23
1034Argentina2025-09-08
1035France2025-09-23
1036United Kingdom2025-09-15
1037Germany2025-09-16
1038Argentina2025-09-04
1039Australia2025-10-03
1040Germany2025-09-17
1041Canada2025-09-22
1042Argentina2025-09-10
1043Italy2025-09-19
1044United Kingdom2025-10-03
1045Germany2025-09-17
1046Canada2025-09-21
1047Argentina2025-09-22
1048United Kingdom2025-09-12
1049Germany2025-09-29

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000India2025-09-21
James Butt1001Japan2025-09-23
James Butt1002Russia2025-09-14
Chavez Briddick1003Italy2025-09-27
Mujtaba Nicka1004Spain2025-09-17
Mujtaba Nicka1005India2025-09-13
Salvatore Stockham1006Japan2025-09-15
Jefferson Schemmer1007Australia2025-09-14
Adams Morasca1008Japan2025-09-04
Aditya Kusko1009Canada2025-09-28
Ivar Paprocki1010United Kingdom2025-10-03
Smith Glick1011Spain2025-09-27
Morrow Ruta1012Canada2025-10-01
Kadeem Flosi1013Argentina2025-09-30
Johnson Sergi1014Australia2025-09-05
Murillo Malet1015France2025-09-29
Mayumi Kolmetz1016Italy2025-09-23
Chavez Briddick1017Spain2025-09-28
Wickens Nestle1018Japan2025-09-10
Alejandro Perin1019Canada2025-09-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoJapanBernardo Dominic PROPOSAL
Leon OldroydFranceBernardo Dominic RENEWAL
Arvin AlbaresCanadaOnyama Limba RENEWAL
Jeanfrancois VenereItalyBernardo Dominic QUALIFIED
Emily WhobreyBrazilIvan Magalhaes RENEWAL
Alejandro PerinItalyAsiya Javayant RENEWAL
Greenwood BologniaArgentinaAnna Fali PROPOSAL
Wickens NestleAustraliaAmy Elsner QUALIFIED
Greenwood BologniaUnited KingdomBernardo Dominic PROPOSAL
Stacey MacleadArgentinaAnna Fali RENEWAL
Greenwood BologniaArgentinaStephen Shaw NEGOTIATION
James ButtBrazilElwin Sharvill UNQUALIFIED
Tony FollerBrazilXuxue Feng PROPOSAL
Rodrigues CampainRussiaElwin Sharvill NEW
Adams MorascaUnited KingdomAsiya Javayant PROPOSAL
Aruna FigeroaGermanyXuxue Feng PROPOSAL
Aika InouyeRussiaIvan Magalhaes QUALIFIED
Ashley DoeUnited KingdomStephen Shaw UNQUALIFIED
Murillo MaletJapanStephen Shaw RENEWAL
Claire TollnerBrazilStephen Shaw RENEWAL
Nicolas IturbideJapanIoni Bowcher NEGOTIATION
Kaitlin OstroskyGermanyIvan Magalhaes NEW
Munro FerenczArgentinaBernardo Dominic RENEWAL
Aditya KuskoIndiaIoni Bowcher PROPOSAL
Murillo MaletRussiaXuxue Feng NEW
Mujtaba NickaAustraliaOnyama Limba UNQUALIFIED
Murillo MaletAustraliaAsiya Javayant PROPOSAL
Ricardo GauchoRussiaStephen Shaw QUALIFIED
Silvio SlusarskiGermanyAmy Elsner NEW
Isabel BowleyGermanyStephen Shaw NEW
Kaitlin OstroskyCanadaIoni Bowcher UNQUALIFIED
Alejandro PerinSpainIvan Magalhaes NEGOTIATION
Murillo MaletJapanAmy Elsner UNQUALIFIED
Jefferson SchemmerFranceAsiya Javayant QUALIFIED
Johnson SergiUnited KingdomStephen Shaw NEW
David DarakjyJapanElwin Sharvill RENEWAL
Smith GlickAustraliaAmy Elsner RENEWAL
Arvin AlbaresItalyAsiya Javayant QUALIFIED
Cody SaylorsFranceIoni Bowcher NEGOTIATION
Smith GlickFranceStephen Shaw 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>