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
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
Cody SaylorsJapanIvan Magalhaes NEW
Leon OldroydBrazilAnna Fali RENEWAL
Smith GlickRussiaOnyama Limba UNQUALIFIED
David DarakjyBrazilXuxue Feng NEGOTIATION
Darci PoquetteSpainStephen Shaw NEGOTIATION
Smith GlickRussiaAmy Elsner UNQUALIFIED
David DarakjySpainElwin Sharvill NEGOTIATION
Emily WhobreyItalyBernardo Dominic UNQUALIFIED
Aditya KuskoIndiaElwin Sharvill NEGOTIATION
Kaitlin OstroskyArgentinaAnna Fali NEGOTIATION
Adams MorascaIndiaIvan Magalhaes UNQUALIFIED
Cody SaylorsFranceOnyama Limba QUALIFIED
Murillo MaletArgentinaAsiya Javayant RENEWAL
Sinclair WaycottCanadaElwin Sharvill RENEWAL
Mayumi KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Kadeem FlosiGermanyAmy Elsner RENEWAL
Aditya KuskoGermanyIvan Magalhaes NEW
Ricardo GauchoUnited KingdomIvan Magalhaes NEW
Arvin AlbaresRussiaBernardo Dominic NEGOTIATION
Kadeem FlosiFranceAmy Elsner UNQUALIFIED
Deepesh ChuiSpainBernardo Dominic QUALIFIED
Emily WhobreyFranceElwin Sharvill NEGOTIATION
Faith GillianFranceBernardo Dominic NEW
Octavia MaletItalyStephen Shaw RENEWAL
James ButtUnited KingdomXuxue Feng RENEWAL
Ashley DoeSpainBernardo Dominic NEGOTIATION
Misaki RoysterFranceOnyama Limba NEGOTIATION
Murillo MaletSpainIvan Magalhaes PROPOSAL
Wickens NestleBrazilIoni Bowcher RENEWAL
Maria MarrierGermanyBernardo Dominic UNQUALIFIED
Murillo MaletAustraliaElwin Sharvill PROPOSAL
Juan WieserRussiaAsiya Javayant PROPOSAL
Julie StensethItalyXuxue Feng UNQUALIFIED
Maria MarrierIndiaIoni Bowcher RENEWAL
Murillo MaletRussiaOnyama Limba PROPOSAL
Greenwood BologniaArgentinaAsiya Javayant NEW
Ivar PaprockiBrazilIoni Bowcher PROPOSAL
Clifford RimJapanIvan Magalhaes NEGOTIATION
Ricardo GauchoRussiaBernardo Dominic RENEWAL
Ivar PaprockiCanadaXuxue Feng NEW
Antonio CaudyGermanyAnna Fali QUALIFIED
Smith GlickCanadaXuxue Feng RENEWAL
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
Alejandro PerinIndiaStephen Shaw NEW
Stacey MacleadAustraliaAmy Elsner QUALIFIED
Morrow RutaFranceElwin Sharvill PROPOSAL
Clifford RimCanadaIoni Bowcher UNQUALIFIED
Emily WhobreyIndiaStephen Shaw QUALIFIED
Ivar PaprockiGermanyBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leja CaldareraArgentinaOnyama Limba RENEWAL
Silvio SlusarskiGermanyAmy Elsner RENEWAL
Mayumi KolmetzJapanStephen Shaw UNQUALIFIED
Rodrigues CampainFranceOnyama Limba RENEWAL
Aika InouyeIndiaOnyama Limba QUALIFIED
Munro FerenczIndiaStephen Shaw QUALIFIED
Chavez BriddickFranceXuxue Feng UNQUALIFIED
Leja CaldareraCanadaElwin Sharvill QUALIFIED
Faith GillianArgentinaIvan Magalhaes QUALIFIED
Munro FerenczGermanyAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaArgentina2026-05-14Benton, John B Jr UNQUALIFIED45Amy Elsner
1001Sinclair WaycottIndia2026-04-19Benton, John B Jr RENEWAL85Asiya Javayant
1002Ricardo GauchoItaly2026-04-28Dorl, James J Esq QUALIFIED97Ioni Bowcher
1003Jones VocelkaCanada2026-04-30Chapman, Ross E Esq QUALIFIED12Stephen Shaw
1004James ButtArgentina2026-05-12Commercial Press NEGOTIATION62Bernardo Dominic
1005Julie StensethAustralia2026-05-09Chemel, James L Cpa NEGOTIATION49Ioni Bowcher
1006Izzy GarufiRussia2026-04-21Morlong Associates QUALIFIED97Amy Elsner
1007Faith GillianAustralia2026-04-25Morlong Associates PROPOSAL97Ioni Bowcher
1008Adams MorascaBrazil2026-04-27Chanay, Jeffrey A Esq PROPOSAL35Bernardo Dominic
1009Alejandro PerinArgentina2026-04-21Chanay, Jeffrey A Esq QUALIFIED20Stephen Shaw
1010Ricardo GauchoIndia2026-05-10Benton, John B Jr QUALIFIED56Xuxue Feng
1011Sinclair WaycottIndia2026-04-25Chanay, Jeffrey A Esq PROPOSAL80Xuxue Feng
1012Cody SaylorsSpain2026-05-14Benton, John B Jr RENEWAL57Xuxue Feng
1013Darci PoquetteFrance2026-04-20Rangoni Of Florence NEW32Anna Fali
1014Izzy GarufiIndia2026-05-12Feiner Bros UNQUALIFIED54Bernardo Dominic
1015Costa DilliardBrazil2026-05-08Morlong Associates PROPOSAL16Anna Fali
1016Wickens NestleSpain2026-05-03Feltz Printing Service RENEWAL19Xuxue Feng
1017Jones VocelkaFrance2026-05-04Feltz Printing Service PROPOSAL36Ivan Magalhaes
1018Julie StensethAustralia2026-05-13Rousseaux, Michael Esq NEGOTIATION17Elwin Sharvill
1019Silvio SlusarskiCanada2026-05-12Morlong Associates RENEWAL47Ioni Bowcher
1020James ButtCanada2026-05-14Truhlar And Truhlar Attys NEGOTIATION84Amy Elsner
1021Aruna FigeroaArgentina2026-04-19Buckley Miller Wright PROPOSAL65Amy Elsner
1022Greenwood BologniaUnited Kingdom2026-05-02Chanay, Jeffrey A Esq PROPOSAL55Elwin Sharvill
1023Leon OldroydJapan2026-05-15Chanay, Jeffrey A Esq NEGOTIATION19Elwin Sharvill
1024Faith GillianJapan2026-04-25King, Christopher A Esq NEGOTIATION91Amy Elsner
1025Maria MarrierCanada2026-05-06Chemel, James L Cpa UNQUALIFIED88Bernardo Dominic
1026Rodrigues CampainRussia2026-04-21Truhlar And Truhlar Attys PROPOSAL53Elwin Sharvill
1027Arvin AlbaresGermany2026-05-05Dorl, James J Esq RENEWAL79Elwin Sharvill
1028Aditya KuskoIndia2026-05-14Feiner Bros NEW87Elwin Sharvill
1029Kadeem FlosiUnited Kingdom2026-04-21Dorl, James J Esq RENEWAL14Stephen Shaw
1030Isabel BowleyAustralia2026-05-13Morlong Associates RENEWAL58Onyama Limba
1031Nicolas IturbideBrazil2026-04-21Feiner Bros PROPOSAL20Bernardo Dominic
1032Wickens NestleRussia2026-04-25Chemel, James L Cpa QUALIFIED45Amy Elsner
1033Clifford RimJapan2026-04-29Chemel, James L Cpa NEGOTIATION96Bernardo Dominic
1034Murillo MaletAustralia2026-04-24Buckley Miller Wright PROPOSAL61Ivan Magalhaes
1035Alejandro PerinCanada2026-05-06Printing Dimensions NEW83Anna Fali
1036Jennifer AmigonIndia2026-04-16Commercial Press NEGOTIATION86Bernardo Dominic
1037Deepesh ChuiFrance2026-05-09Benton, John B Jr UNQUALIFIED11Asiya Javayant
1038Johnson SergiUnited Kingdom2026-05-02King, Christopher A Esq QUALIFIED99Anna Fali
1039Aditya KuskoRussia2026-04-26Feiner Bros UNQUALIFIED6Onyama Limba
1040Leja CaldareraFrance2026-05-14Benton, John B Jr UNQUALIFIED0Elwin Sharvill
1041Jennifer AmigonUnited Kingdom2026-05-13Chemel, James L Cpa RENEWAL56Onyama Limba
1042Francesco ShinkoIndia2026-04-29King, Christopher A Esq NEW88Anna Fali
1043Munro FerenczCanada2026-05-03King, Christopher A Esq QUALIFIED30Asiya Javayant
1044James ButtCanada2026-05-05Buckley Miller Wright RENEWAL14Anna Fali
1045Costa DilliardRussia2026-04-16Dorl, James J Esq PROPOSAL84Onyama Limba
1046Arvin AlbaresItaly2026-04-28Feiner Bros NEW37Anna Fali
1047Ricardo GauchoIndia2026-05-15Chanay, Jeffrey A Esq UNQUALIFIED91Stephen Shaw
1048Smith GlickFrance2026-04-27Chanay, Jeffrey A Esq PROPOSAL42Anna Fali
1049Juan WieserArgentina2026-04-23Buckley Miller Wright UNQUALIFIED20Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainBrazilAsiya Javayant PROPOSAL
Juan WieserItalyAnna Fali PROPOSAL
Arvin AlbaresAustraliaOnyama Limba NEGOTIATION
Nicolas IturbideIndiaStephen Shaw NEGOTIATION
Aruna FigeroaIndiaIoni Bowcher NEGOTIATION
Izzy GarufiUnited KingdomAsiya Javayant PROPOSAL
Faith GillianAustraliaElwin Sharvill UNQUALIFIED
Nicolas IturbideJapanIvan Magalhaes PROPOSAL
Greenwood BologniaBrazilStephen Shaw NEW
Morrow RutaFranceElwin Sharvill NEW
Francesco ShinkoJapanAsiya Javayant PROPOSAL
Nicolas IturbideBrazilBernardo Dominic PROPOSAL
Mujtaba NickaGermanyAmy Elsner UNQUALIFIED
Kaitlin OstroskyArgentinaIoni Bowcher RENEWAL
Julie StensethJapanAmy Elsner PROPOSAL
Chavez BriddickItalyElwin Sharvill NEW
Aditya KuskoRussiaIoni Bowcher QUALIFIED
Ivar PaprockiIndiaStephen Shaw PROPOSAL
Faith GillianItalyOnyama Limba NEGOTIATION
Mujtaba NickaItalyXuxue Feng NEGOTIATION
Faith GillianItalyElwin Sharvill NEGOTIATION
Silvio SlusarskiCanadaElwin Sharvill PROPOSAL
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Johnson SergiUnited KingdomOnyama Limba QUALIFIED
Mayumi KolmetzItalyElwin Sharvill NEW
Aruna FigeroaAustraliaStephen Shaw NEGOTIATION
Octavia MaletAustraliaElwin Sharvill UNQUALIFIED
Mayumi KolmetzJapanIoni Bowcher QUALIFIED
Rodrigues CampainSpainXuxue Feng NEW
Claire TollnerJapanElwin Sharvill NEGOTIATION
Aditya KuskoUnited KingdomIvan Magalhaes RENEWAL
Jones VocelkaJapanAsiya Javayant NEW
Jennifer AmigonArgentinaStephen Shaw QUALIFIED
Faith GillianGermanyAnna Fali RENEWAL
Aditya KuskoJapanElwin Sharvill UNQUALIFIED
Antonio CaudyIndiaStephen Shaw NEW
Deepesh ChuiBrazilOnyama Limba NEGOTIATION
Ricardo GauchoArgentinaAnna Fali PROPOSAL
Jeanfrancois VenereAustraliaIvan Magalhaes NEGOTIATION
Julie StensethFranceAmy Elsner NEGOTIATION
Francesco ShinkoArgentinaAsiya Javayant QUALIFIED
Antonio CaudyBrazilOnyama Limba RENEWAL
Antonio CaudyAustraliaIoni Bowcher NEW
Tony FollerFranceXuxue Feng PROPOSAL
Jefferson SchemmerItalyElwin Sharvill RENEWAL
Morrow RutaArgentinaAnna Fali NEW
Silvio SlusarskiRussiaAsiya Javayant PROPOSAL
Ricardo GauchoGermanyIvan Magalhaes NEGOTIATION
Jennifer AmigonAustraliaStephen Shaw UNQUALIFIED
Ivar PaprockiUnited KingdomAmy Elsner PROPOSAL
Frozen Columns
Name
Cody Saylors
Ivar Paprocki
Greenwood Bolognia
Adams Morasca
Ashley Doe
Leon Oldroyd
Jefferson Schemmer
Darci Poquette
Ricardo Gaucho
Claire Tollner
Tony Foller
Kadeem Flosi
Tony Foller
Mayumi Kolmetz
Wickens Nestle
Francesco Shinko
Nicolas Iturbide
Maisha Rulapaugh
James Butt
Chavez Briddick
Sinclair Waycott
Salvatore Stockham
Francesco Shinko
Antonio Caudy
James Butt
Morrow Ruta
Isabel Bowley
James Butt
Aruna Figeroa
Wickens Nestle
Clifford Rim
Aruna Figeroa
Kadeem Flosi
Izzy Garufi
Jefferson Schemmer
Munro Ferencz
Adams Morasca
Aika Inouye
Greenwood Bolognia
Deepesh Chui
Claire Tollner
Silvio Slusarski
Francesco Shinko
Greenwood Bolognia
Deepesh Chui
Murillo Malet
Francesco Shinko
Leja Caldarera
Ashley Doe
Ricardo Gaucho
IdCountryDate
1000India2026-04-27
1001Russia2026-04-26
1002Italy2026-05-15
1003France2026-04-24
1004Spain2026-05-02
1005United Kingdom2026-04-18
1006Argentina2026-05-13
1007Argentina2026-05-09
1008Brazil2026-05-10
1009France2026-04-19
1010Germany2026-04-24
1011France2026-04-16
1012Germany2026-05-05
1013Canada2026-04-28
1014Japan2026-05-01
1015France2026-05-03
1016Australia2026-04-22
1017France2026-05-10
1018Russia2026-04-30
1019Argentina2026-04-21
1020Russia2026-04-24
1021Japan2026-05-06
1022Australia2026-05-14
1023Italy2026-04-19
1024Spain2026-05-11
1025Australia2026-05-05
1026Russia2026-04-29
1027Argentina2026-05-07
1028Australia2026-05-03
1029Australia2026-05-07
1030Germany2026-05-07
1031Spain2026-04-19
1032Brazil2026-04-29
1033Australia2026-04-24
1034Brazil2026-05-07
1035United Kingdom2026-05-05
1036France2026-04-17
1037Argentina2026-05-01
1038Japan2026-04-28
1039United Kingdom2026-05-07
1040Japan2026-05-03
1041Brazil2026-04-20
1042Australia2026-04-17
1043Russia2026-05-13
1044United Kingdom2026-04-25
1045Japan2026-04-24
1046India2026-05-12
1047Argentina2026-04-29
1048Australia2026-05-02
1049Italy2026-05-03

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000Japan2026-04-17
Aditya Kusko1001United Kingdom2026-05-01
Aruna Figeroa1002Brazil2026-04-18
Faith Gillian1003Germany2026-05-01
Mayumi Kolmetz1004India2026-04-21
Francesco Shinko1005Russia2026-05-15
James Butt1006Canada2026-05-12
James Butt1007Spain2026-04-21
Ricardo Gaucho1008Russia2026-05-03
Smith Glick1009United Kingdom2026-05-05
Emily Whobrey1010Germany2026-04-16
Salvatore Stockham1011Spain2026-04-25
Ashley Doe1012Australia2026-05-06
Misaki Royster1013Germany2026-05-09
Clifford Rim1014Italy2026-05-15
Isabel Bowley1015France2026-04-29
Leon Oldroyd1016Argentina2026-05-09
Emily Whobrey1017Japan2026-04-17
Nicolas Iturbide1018Japan2026-05-15
Smith Glick1019United Kingdom2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethArgentinaXuxue Feng UNQUALIFIED
Francesco ShinkoAustraliaAnna Fali NEW
Kaitlin OstroskyItalyAmy Elsner NEGOTIATION
Cody SaylorsSpainStephen Shaw NEW
Rodrigues CampainFranceElwin Sharvill RENEWAL
Leon OldroydJapanOnyama Limba PROPOSAL
Smith GlickFranceBernardo Dominic PROPOSAL
Francesco ShinkoSpainIvan Magalhaes NEGOTIATION
Emily WhobreyBrazilOnyama Limba QUALIFIED
Arvin AlbaresIndiaAsiya Javayant PROPOSAL
Jennifer AmigonAustraliaStephen Shaw NEGOTIATION
Darci PoquetteUnited KingdomBernardo Dominic PROPOSAL
Ashley DoeGermanyIoni Bowcher RENEWAL
Costa DilliardJapanAmy Elsner UNQUALIFIED
Emily WhobreyArgentinaElwin Sharvill NEW
Mayumi KolmetzAustraliaIoni Bowcher NEW
Ivar PaprockiJapanStephen Shaw UNQUALIFIED
Mujtaba NickaSpainElwin Sharvill QUALIFIED
Wickens NestleItalyAnna Fali NEW
Jennifer AmigonArgentinaStephen Shaw PROPOSAL
Aika InouyeAustraliaElwin Sharvill NEGOTIATION
Jennifer AmigonRussiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiCanadaOnyama Limba NEW
Aditya KuskoItalyXuxue Feng NEW
Ashley DoeCanadaStephen Shaw NEGOTIATION
Arvin AlbaresSpainOnyama Limba NEW
Deepesh ChuiFranceStephen Shaw NEGOTIATION
Stacey MacleadRussiaStephen Shaw RENEWAL
Morrow RutaBrazilIvan Magalhaes RENEWAL
Stacey MacleadFranceAnna Fali UNQUALIFIED
Maria MarrierRussiaIoni Bowcher NEW
Jennifer AmigonCanadaAnna Fali QUALIFIED
Jennifer AmigonItalyOnyama Limba QUALIFIED
Morrow RutaAustraliaStephen Shaw RENEWAL
Murillo MaletArgentinaOnyama Limba NEW
Ashley DoeRussiaIvan Magalhaes NEGOTIATION
Isabel BowleyItalyAsiya Javayant UNQUALIFIED
Morrow RutaBrazilOnyama Limba UNQUALIFIED
Smith GlickArgentinaAnna Fali RENEWAL
Francesco ShinkoCanadaXuxue Feng 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>