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
Jennifer AmigonIndiaOnyama Limba UNQUALIFIED
Sinclair WaycottArgentinaXuxue Feng PROPOSAL
Maria MarrierJapanIoni Bowcher NEGOTIATION
Darci PoquetteCanadaElwin Sharvill PROPOSAL
Ashley DoeSpainOnyama Limba UNQUALIFIED
Francesco ShinkoAustraliaElwin Sharvill UNQUALIFIED
Darci PoquetteArgentinaXuxue Feng PROPOSAL
Stacey MacleadJapanBernardo Dominic UNQUALIFIED
Jeanfrancois VenereFranceAmy Elsner QUALIFIED
Silvio SlusarskiSpainBernardo Dominic NEW
Salvatore StockhamJapanAsiya Javayant RENEWAL
Francesco ShinkoItalyOnyama Limba QUALIFIED
Kaitlin OstroskyCanadaOnyama Limba QUALIFIED
Ricardo GauchoAustraliaStephen Shaw RENEWAL
Sinclair WaycottCanadaAnna Fali UNQUALIFIED
Aditya KuskoBrazilElwin Sharvill QUALIFIED
Isabel BowleyFranceElwin Sharvill UNQUALIFIED
Kaitlin OstroskyItalyBernardo Dominic UNQUALIFIED
Alejandro PerinCanadaIvan Magalhaes PROPOSAL
Chavez BriddickRussiaOnyama Limba NEW
Rodrigues CampainBrazilAmy Elsner NEW
Smith GlickBrazilAsiya Javayant QUALIFIED
Costa DilliardItalyAsiya Javayant UNQUALIFIED
Chavez BriddickUnited KingdomIvan Magalhaes RENEWAL
Maria MarrierGermanyIvan Magalhaes QUALIFIED
Faith GillianJapanElwin Sharvill PROPOSAL
Jefferson SchemmerRussiaAsiya Javayant UNQUALIFIED
Nicolas IturbideAustraliaOnyama Limba UNQUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes RENEWAL
Juan WieserJapanAmy Elsner NEGOTIATION
Silvio SlusarskiBrazilBernardo Dominic QUALIFIED
Rodrigues CampainSpainBernardo Dominic NEGOTIATION
Munro FerenczBrazilAnna Fali NEGOTIATION
Deepesh ChuiCanadaOnyama Limba QUALIFIED
Sinclair WaycottAustraliaXuxue Feng QUALIFIED
Tony FollerArgentinaBernardo Dominic NEGOTIATION
Octavia MaletSpainOnyama Limba NEGOTIATION
Kadeem FlosiBrazilAmy Elsner QUALIFIED
Izzy GarufiSpainStephen Shaw UNQUALIFIED
Misaki RoysterAustraliaElwin Sharvill RENEWAL
Emily WhobreyUnited KingdomAmy Elsner PROPOSAL
Leja CaldareraJapanOnyama Limba RENEWAL
Mujtaba NickaJapanAnna Fali PROPOSAL
Murillo MaletRussiaStephen Shaw QUALIFIED
Ashley DoeIndiaXuxue Feng QUALIFIED
Morrow RutaAustraliaIoni Bowcher NEW
Octavia MaletArgentinaStephen Shaw NEGOTIATION
Silvio SlusarskiAustraliaAsiya Javayant RENEWAL
Mujtaba NickaAustraliaElwin Sharvill NEW
Deepesh ChuiItalyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Murillo MaletUnited KingdomXuxue Feng QUALIFIED
Adams MorascaAustraliaAnna Fali PROPOSAL
Aruna FigeroaRussiaBernardo Dominic UNQUALIFIED
Jennifer AmigonIndiaElwin Sharvill UNQUALIFIED
Stacey MacleadArgentinaAsiya Javayant RENEWAL
Leja CaldareraRussiaOnyama Limba UNQUALIFIED
Izzy GarufiBrazilAmy Elsner NEW
Salvatore StockhamCanadaBernardo Dominic NEGOTIATION
Maria MarrierSpainElwin Sharvill NEW
Stacey MacleadGermanyOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio SlusarskiFrance2026-04-14Dorl, James J Esq NEW72Xuxue Feng
1001Ashley DoeGermany2026-04-30Chemel, James L Cpa NEGOTIATION49Ivan Magalhaes
1002Octavia MaletFrance2026-04-18Printing Dimensions NEGOTIATION15Asiya Javayant
1003Costa DilliardFrance2026-04-11Dorl, James J Esq PROPOSAL36Anna Fali
1004Johnson SergiUnited Kingdom2026-04-11Feltz Printing Service RENEWAL90Elwin Sharvill
1005Arvin AlbaresAustralia2026-04-07Chanay, Jeffrey A Esq UNQUALIFIED17Elwin Sharvill
1006Jennifer AmigonJapan2026-04-03Truhlar And Truhlar Attys NEW40Bernardo Dominic
1007Izzy GarufiRussia2026-04-01Rousseaux, Michael Esq RENEWAL13Stephen Shaw
1008Francesco ShinkoAustralia2026-04-13Truhlar And Truhlar Attys NEGOTIATION37Amy Elsner
1009Clifford RimUnited Kingdom2026-04-28Morlong Associates NEGOTIATION82Ivan Magalhaes
1010David DarakjyJapan2026-04-29Chapman, Ross E Esq QUALIFIED90Onyama Limba
1011Tony FollerItaly2026-04-27Rousseaux, Michael Esq UNQUALIFIED46Asiya Javayant
1012Clifford RimArgentina2026-04-27Rangoni Of Florence NEGOTIATION70Ivan Magalhaes
1013Costa DilliardIndia2026-04-22Morlong Associates QUALIFIED81Elwin Sharvill
1014Wickens NestleBrazil2026-04-15Feiner Bros PROPOSAL85Bernardo Dominic
1015Murillo MaletArgentina2026-04-01Rangoni Of Florence QUALIFIED75Xuxue Feng
1016Murillo MaletBrazil2026-04-30Benton, John B Jr PROPOSAL69Xuxue Feng
1017Maisha RulapaughUnited Kingdom2026-04-15King, Christopher A Esq RENEWAL46Xuxue Feng
1018Jennifer AmigonGermany2026-04-03Benton, John B Jr NEW80Amy Elsner
1019Jones VocelkaCanada2026-04-19Feltz Printing Service NEGOTIATION61Stephen Shaw
1020Leja CaldareraSpain2026-04-17Feltz Printing Service UNQUALIFIED14Ioni Bowcher
1021Izzy GarufiAustralia2026-04-08Feiner Bros QUALIFIED61Bernardo Dominic
1022Octavia MaletItaly2026-04-27Chapman, Ross E Esq RENEWAL50Asiya Javayant
1023Darci PoquetteAustralia2026-04-06Morlong Associates UNQUALIFIED34Stephen Shaw
1024James ButtItaly2026-04-19Chapman, Ross E Esq NEGOTIATION43Anna Fali
1025Morrow RutaGermany2026-04-08Dorl, James J Esq NEGOTIATION35Asiya Javayant
1026Misaki RoysterJapan2026-04-03Buckley Miller Wright NEW68Elwin Sharvill
1027Jones VocelkaFrance2026-04-14King, Christopher A Esq NEGOTIATION17Xuxue Feng
1028Maisha RulapaughArgentina2026-04-23Rangoni Of Florence UNQUALIFIED14Elwin Sharvill
1029Claire TollnerArgentina2026-04-09Morlong Associates UNQUALIFIED57Bernardo Dominic
1030Smith GlickUnited Kingdom2026-04-19Benton, John B Jr UNQUALIFIED6Bernardo Dominic
1031Wickens NestleIndia2026-04-21Benton, John B Jr UNQUALIFIED67Bernardo Dominic
1032Leja CaldareraItaly2026-04-07Chemel, James L Cpa RENEWAL60Anna Fali
1033Murillo MaletArgentina2026-04-14Rousseaux, Michael Esq PROPOSAL43Bernardo Dominic
1034Salvatore StockhamItaly2026-04-03Chapman, Ross E Esq QUALIFIED35Stephen Shaw
1035Izzy GarufiCanada2026-04-01King, Christopher A Esq NEGOTIATION95Stephen Shaw
1036Leja CaldareraItaly2026-04-24Rousseaux, Michael Esq PROPOSAL90Stephen Shaw
1037Francesco ShinkoSpain2026-04-16Rangoni Of Florence QUALIFIED64Stephen Shaw
1038Aruna FigeroaAustralia2026-04-07Feltz Printing Service NEW24Ioni Bowcher
1039Alejandro PerinItaly2026-04-18King, Christopher A Esq QUALIFIED16Elwin Sharvill
1040Tony FollerSpain2026-04-10Buckley Miller Wright QUALIFIED37Xuxue Feng
1041Jefferson SchemmerCanada2026-04-27Buckley Miller Wright PROPOSAL39Stephen Shaw
1042Mujtaba NickaCanada2026-04-04Rousseaux, Michael Esq UNQUALIFIED15Bernardo Dominic
1043Jennifer AmigonUnited Kingdom2026-04-09Printing Dimensions NEGOTIATION60Amy Elsner
1044Jones VocelkaRussia2026-04-09Rangoni Of Florence RENEWAL29Anna Fali
1045Ashley DoeSpain2026-04-19Chapman, Ross E Esq PROPOSAL5Asiya Javayant
1046Kaitlin OstroskyItaly2026-04-11Chemel, James L Cpa UNQUALIFIED80Anna Fali
1047Francesco ShinkoIndia2026-04-22Feiner Bros PROPOSAL57Ioni Bowcher
1048Clifford RimAustralia2026-04-14Chanay, Jeffrey A Esq QUALIFIED14Ioni Bowcher
1049Munro FerenczIndia2026-04-29Benton, John B Jr NEGOTIATION57Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomStephen Shaw NEGOTIATION
Deepesh ChuiCanadaIoni Bowcher RENEWAL
Clifford RimIndiaStephen Shaw RENEWAL
Costa DilliardBrazilAnna Fali NEGOTIATION
Misaki RoysterCanadaAnna Fali QUALIFIED
Clifford RimUnited KingdomOnyama Limba QUALIFIED
Salvatore StockhamArgentinaAsiya Javayant NEW
Juan WieserIndiaAnna Fali QUALIFIED
Ricardo GauchoBrazilAnna Fali PROPOSAL
Leja CaldareraCanadaBernardo Dominic QUALIFIED
Murillo MaletSpainAsiya Javayant PROPOSAL
Sinclair WaycottBrazilIvan Magalhaes PROPOSAL
Leja CaldareraFranceStephen Shaw NEW
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Maisha RulapaughIndiaAsiya Javayant NEGOTIATION
Faith GillianIndiaStephen Shaw PROPOSAL
Johnson SergiJapanAmy Elsner NEW
Jennifer AmigonFranceElwin Sharvill NEW
Cody SaylorsSpainElwin Sharvill NEGOTIATION
Clifford RimAustraliaXuxue Feng NEGOTIATION
Darci PoquetteSpainElwin Sharvill QUALIFIED
Cody SaylorsIndiaIoni Bowcher UNQUALIFIED
Leja CaldareraAustraliaXuxue Feng UNQUALIFIED
Ricardo GauchoUnited KingdomBernardo Dominic QUALIFIED
Faith GillianRussiaOnyama Limba NEGOTIATION
Wickens NestleItalyIvan Magalhaes PROPOSAL
Nicolas IturbideAustraliaAnna Fali NEGOTIATION
Arvin AlbaresIndiaAnna Fali NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Deepesh ChuiArgentinaIvan Magalhaes RENEWAL
Smith GlickJapanAsiya Javayant PROPOSAL
Costa DilliardJapanIoni Bowcher PROPOSAL
Murillo MaletGermanyIvan Magalhaes NEW
Antonio CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Izzy GarufiJapanIoni Bowcher RENEWAL
Aruna FigeroaJapanIvan Magalhaes NEGOTIATION
Emily WhobreyBrazilAnna Fali NEGOTIATION
David DarakjyFranceBernardo Dominic NEGOTIATION
Claire TollnerArgentinaAnna Fali RENEWAL
Aruna FigeroaIndiaOnyama Limba NEGOTIATION
Jeanfrancois VenereSpainAsiya Javayant RENEWAL
Salvatore StockhamSpainIoni Bowcher QUALIFIED
Aika InouyeUnited KingdomXuxue Feng RENEWAL
Claire TollnerJapanIoni Bowcher PROPOSAL
Jefferson SchemmerFranceElwin Sharvill PROPOSAL
Rodrigues CampainJapanAnna Fali UNQUALIFIED
Mayumi KolmetzCanadaXuxue Feng QUALIFIED
Johnson SergiAustraliaXuxue Feng NEGOTIATION
Maria MarrierAustraliaAmy Elsner UNQUALIFIED
Kadeem FlosiItalyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Francesco Shinko
Mayumi Kolmetz
Mujtaba Nicka
Rodrigues Campain
Emily Whobrey
Smith Glick
Cody Saylors
Salvatore Stockham
Murillo Malet
Ricardo Gaucho
Antonio Caudy
Cody Saylors
David Darakjy
Ashley Doe
Salvatore Stockham
Clifford Rim
Morrow Ruta
Misaki Royster
Stacey Maclead
Darci Poquette
Aditya Kusko
Izzy Garufi
Aika Inouye
Clifford Rim
Sinclair Waycott
Costa Dilliard
Clifford Rim
Mujtaba Nicka
Arvin Albares
Nicolas Iturbide
Arvin Albares
Johnson Sergi
Darci Poquette
Maria Marrier
Ashley Doe
Ivar Paprocki
Tony Foller
Nicolas Iturbide
Aditya Kusko
Claire Tollner
Adams Morasca
Kaitlin Ostrosky
Darci Poquette
Jones Vocelka
Leja Caldarera
Jones Vocelka
Kadeem Flosi
Deepesh Chui
Ivar Paprocki
Emily Whobrey
IdCountryDate
1000Japan2026-04-12
1001Japan2026-04-04
1002Japan2026-04-15
1003France2026-04-03
1004United Kingdom2026-04-06
1005Germany2026-04-13
1006Argentina2026-04-25
1007Germany2026-04-30
1008Japan2026-04-26
1009France2026-04-29
1010United Kingdom2026-04-18
1011Australia2026-04-15
1012India2026-04-18
1013United Kingdom2026-04-11
1014Brazil2026-04-17
1015Spain2026-04-23
1016Germany2026-04-13
1017United Kingdom2026-04-25
1018France2026-04-23
1019Canada2026-04-12
1020France2026-04-09
1021Spain2026-04-22
1022Brazil2026-04-26
1023Australia2026-04-01
1024Canada2026-04-19
1025United Kingdom2026-04-04
1026Russia2026-04-08
1027India2026-04-25
1028Germany2026-04-06
1029Canada2026-04-05
1030Brazil2026-04-19
1031Australia2026-04-30
1032United Kingdom2026-04-10
1033Argentina2026-04-12
1034Australia2026-04-21
1035Spain2026-04-24
1036Spain2026-04-20
1037Argentina2026-04-18
1038Spain2026-04-09
1039Germany2026-04-01
1040Italy2026-04-14
1041Spain2026-04-11
1042Australia2026-04-04
1043Canada2026-04-14
1044Argentina2026-04-17
1045Russia2026-04-22
1046Argentina2026-04-18
1047United Kingdom2026-04-25
1048Argentina2026-04-07
1049United Kingdom2026-04-14

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Russia2026-04-04
Munro Ferencz1001Canada2026-04-30
Smith Glick1002Brazil2026-04-21
Deepesh Chui1003France2026-04-11
Cody Saylors1004Australia2026-04-15
Deepesh Chui1005India2026-04-20
Rodrigues Campain1006Australia2026-04-12
Misaki Royster1007Japan2026-04-13
Murillo Malet1008Canada2026-04-11
Maisha Rulapaugh1009Argentina2026-04-17
Alejandro Perin1010Russia2026-04-18
Mujtaba Nicka1011Germany2026-04-07
Rodrigues Campain1012Italy2026-04-12
Alejandro Perin1013Germany2026-04-29
Faith Gillian1014France2026-04-30
Leon Oldroyd1015United Kingdom2026-04-07
Francesco Shinko1016Germany2026-04-03
Clifford Rim1017Brazil2026-04-20
Isabel Bowley1018Canada2026-04-27
Ashley Doe1019Russia2026-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna FigeroaItalyAmy Elsner NEGOTIATION
Wickens NestleFranceStephen Shaw NEGOTIATION
Smith GlickAustraliaAmy Elsner PROPOSAL
Jeanfrancois VenereUnited KingdomXuxue Feng PROPOSAL
Johnson SergiItalyIvan Magalhaes NEGOTIATION
Aditya KuskoArgentinaAmy Elsner QUALIFIED
Cody SaylorsJapanElwin Sharvill NEW
Jones VocelkaBrazilElwin Sharvill PROPOSAL
Sinclair WaycottUnited KingdomElwin Sharvill QUALIFIED
Salvatore StockhamSpainAnna Fali UNQUALIFIED
Jones VocelkaAustraliaStephen Shaw RENEWAL
Maria MarrierJapanAnna Fali PROPOSAL
Morrow RutaRussiaBernardo Dominic QUALIFIED
Sinclair WaycottRussiaIvan Magalhaes NEW
Silvio SlusarskiCanadaAsiya Javayant QUALIFIED
Leon OldroydArgentinaStephen Shaw QUALIFIED
Leon OldroydJapanOnyama Limba NEW
Jeanfrancois VenereFranceAnna Fali PROPOSAL
Kaitlin OstroskyRussiaElwin Sharvill UNQUALIFIED
Darci PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson SchemmerFranceBernardo Dominic NEGOTIATION
James ButtAustraliaIvan Magalhaes NEW
Jeanfrancois VenereIndiaStephen Shaw UNQUALIFIED
Cody SaylorsAustraliaAnna Fali NEGOTIATION
Ashley DoeItalyIoni Bowcher QUALIFIED
Isabel BowleyItalyAmy Elsner NEGOTIATION
David DarakjyFranceElwin Sharvill NEW
Ashley DoeGermanyOnyama Limba UNQUALIFIED
James ButtGermanyAnna Fali PROPOSAL
Aruna FigeroaBrazilAnna Fali QUALIFIED
Morrow RutaCanadaAmy Elsner PROPOSAL
Maria MarrierIndiaBernardo Dominic PROPOSAL
Leon OldroydBrazilOnyama Limba PROPOSAL
Chavez BriddickCanadaOnyama Limba RENEWAL
Leon OldroydIndiaAnna Fali RENEWAL
Antonio CaudyJapanIvan Magalhaes RENEWAL
Julie StensethBrazilOnyama Limba NEW
Stacey MacleadIndiaXuxue Feng QUALIFIED
Chavez BriddickCanadaIoni Bowcher UNQUALIFIED
Maisha RulapaughArgentinaStephen Shaw RENEWAL

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