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
Leja CaldareraSpainIoni Bowcher UNQUALIFIED
Smith GlickArgentinaAnna Fali RENEWAL
Julie StensethGermanyStephen Shaw UNQUALIFIED
Juan WieserRussiaBernardo Dominic QUALIFIED
Kadeem FlosiJapanOnyama Limba RENEWAL
Claire TollnerBrazilAnna Fali UNQUALIFIED
Chavez BriddickRussiaIvan Magalhaes QUALIFIED
Izzy GarufiArgentinaOnyama Limba NEGOTIATION
Misaki RoysterUnited KingdomBernardo Dominic PROPOSAL
Johnson SergiSpainStephen Shaw NEGOTIATION
Arvin AlbaresAustraliaAmy Elsner NEGOTIATION
Darci PoquetteIndiaElwin Sharvill QUALIFIED
Tony FollerJapanAnna Fali UNQUALIFIED
Maisha RulapaughCanadaAsiya Javayant RENEWAL
Jeanfrancois VenereSpainAsiya Javayant UNQUALIFIED
Jennifer AmigonJapanOnyama Limba RENEWAL
Aditya KuskoItalyIoni Bowcher PROPOSAL
Clifford RimBrazilAnna Fali NEGOTIATION
Cody SaylorsIndiaBernardo Dominic QUALIFIED
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
James ButtIndiaIoni Bowcher NEGOTIATION
Julie StensethGermanyElwin Sharvill PROPOSAL
Wickens NestleBrazilAmy Elsner UNQUALIFIED
Claire TollnerAustraliaStephen Shaw RENEWAL
Chavez BriddickJapanIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomOnyama Limba NEW
Ashley DoeJapanAsiya Javayant UNQUALIFIED
Alejandro PerinFranceIvan Magalhaes RENEWAL
Ricardo GauchoIndiaBernardo Dominic QUALIFIED
Jeanfrancois VenereItalyAmy Elsner RENEWAL
Octavia MaletGermanyOnyama Limba RENEWAL
Kaitlin OstroskyBrazilAmy Elsner UNQUALIFIED
Silvio SlusarskiUnited KingdomAmy Elsner NEW
Jones VocelkaIndiaAsiya Javayant NEGOTIATION
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
Morrow RutaCanadaAmy Elsner NEGOTIATION
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Adams MorascaSpainAsiya Javayant QUALIFIED
Deepesh ChuiCanadaIvan Magalhaes QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes RENEWAL
Faith GillianIndiaStephen Shaw NEGOTIATION
Faith GillianRussiaBernardo Dominic RENEWAL
Izzy GarufiUnited KingdomStephen Shaw NEW
Chavez BriddickItalyXuxue Feng UNQUALIFIED
Ashley DoeJapanAmy Elsner NEW
Rodrigues CampainAustraliaIvan Magalhaes PROPOSAL
Arvin AlbaresAustraliaStephen Shaw NEGOTIATION
Chavez BriddickAustraliaAmy Elsner NEW
Munro FerenczFranceOnyama Limba UNQUALIFIED
Deepesh ChuiFranceIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford RimRussiaBernardo Dominic NEGOTIATION
Octavia MaletSpainAnna Fali NEGOTIATION
Ivar PaprockiArgentinaElwin Sharvill RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes NEW
Smith GlickIndiaStephen Shaw PROPOSAL
Francesco ShinkoJapanElwin Sharvill RENEWAL
Nicolas IturbideArgentinaAnna Fali RENEWAL
Izzy GarufiIndiaAmy Elsner PROPOSAL
Clifford RimCanadaIoni Bowcher PROPOSAL
Deepesh ChuiCanadaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerAustralia2026-04-25King, Christopher A Esq RENEWAL32Asiya Javayant
1001Jones VocelkaJapan2026-05-17Printing Dimensions QUALIFIED18Onyama Limba
1002Clifford RimFrance2026-05-08Commercial Press RENEWAL29Anna Fali
1003Greenwood BologniaAustralia2026-05-05Printing Dimensions RENEWAL79Ioni Bowcher
1004Leon OldroydBrazil2026-05-18Rangoni Of Florence PROPOSAL44Amy Elsner
1005Stacey MacleadArgentina2026-05-01Chapman, Ross E Esq NEGOTIATION15Xuxue Feng
1006Emily WhobreyBrazil2026-05-16Benton, John B Jr RENEWAL75Onyama Limba
1007Deepesh ChuiArgentina2026-04-26Dorl, James J Esq NEW70Ioni Bowcher
1008Adams MorascaGermany2026-05-22Chemel, James L Cpa NEGOTIATION97Onyama Limba
1009Mayumi KolmetzArgentina2026-05-09Benton, John B Jr RENEWAL13Ivan Magalhaes
1010Kaitlin OstroskyFrance2026-05-15Printing Dimensions NEW82Bernardo Dominic
1011Juan WieserJapan2026-05-10Feiner Bros PROPOSAL78Bernardo Dominic
1012Smith GlickUnited Kingdom2026-05-04Printing Dimensions RENEWAL34Anna Fali
1013Kaitlin OstroskyBrazil2026-04-27King, Christopher A Esq RENEWAL3Onyama Limba
1014Kaitlin OstroskyArgentina2026-05-14Dorl, James J Esq NEW48Ioni Bowcher
1015Aruna FigeroaBrazil2026-05-17Rangoni Of Florence RENEWAL1Elwin Sharvill
1016Jones VocelkaUnited Kingdom2026-05-09Commercial Press RENEWAL53Elwin Sharvill
1017Sinclair WaycottIndia2026-05-08Truhlar And Truhlar Attys UNQUALIFIED99Elwin Sharvill
1018Deepesh ChuiAustralia2026-05-15Chapman, Ross E Esq PROPOSAL92Ioni Bowcher
1019Isabel BowleyRussia2026-05-21Feltz Printing Service RENEWAL26Elwin Sharvill
1020Murillo MaletGermany2026-04-28Truhlar And Truhlar Attys QUALIFIED78Ioni Bowcher
1021Leja CaldareraAustralia2026-04-30Chemel, James L Cpa NEGOTIATION80Xuxue Feng
1022Costa DilliardArgentina2026-04-29Feltz Printing Service RENEWAL60Ioni Bowcher
1023Murillo MaletGermany2026-05-14Rangoni Of Florence RENEWAL42Xuxue Feng
1024Arvin AlbaresCanada2026-05-16Morlong Associates PROPOSAL44Xuxue Feng
1025Claire TollnerRussia2026-05-18Morlong Associates RENEWAL15Elwin Sharvill
1026James ButtFrance2026-05-01Chemel, James L Cpa PROPOSAL84Stephen Shaw
1027Silvio SlusarskiGermany2026-05-16Chapman, Ross E Esq NEW13Elwin Sharvill
1028Octavia MaletArgentina2026-05-19Morlong Associates NEW58Ivan Magalhaes
1029Maisha RulapaughBrazil2026-05-11Dorl, James J Esq PROPOSAL6Amy Elsner
1030Maria MarrierItaly2026-05-10Truhlar And Truhlar Attys RENEWAL73Stephen Shaw
1031Salvatore StockhamItaly2026-05-10Printing Dimensions QUALIFIED23Ivan Magalhaes
1032Costa DilliardRussia2026-04-29Printing Dimensions UNQUALIFIED5Xuxue Feng
1033Rodrigues CampainSpain2026-05-07Printing Dimensions NEGOTIATION57Anna Fali
1034Ashley DoeCanada2026-05-11Buckley Miller Wright UNQUALIFIED30Bernardo Dominic
1035Octavia MaletJapan2026-05-13Buckley Miller Wright NEGOTIATION39Onyama Limba
1036Juan WieserFrance2026-04-30Truhlar And Truhlar Attys NEW28Xuxue Feng
1037Jones VocelkaRussia2026-04-28Feiner Bros QUALIFIED99Amy Elsner
1038Jennifer AmigonRussia2026-04-24Rangoni Of Florence NEW4Asiya Javayant
1039Misaki RoysterSpain2026-04-27Chapman, Ross E Esq QUALIFIED75Asiya Javayant
1040David DarakjyAustralia2026-05-12Truhlar And Truhlar Attys RENEWAL45Stephen Shaw
1041Izzy GarufiGermany2026-05-11Rangoni Of Florence RENEWAL93Elwin Sharvill
1042Juan WieserArgentina2026-04-26Chapman, Ross E Esq QUALIFIED5Amy Elsner
1043Leja CaldareraUnited Kingdom2026-05-15Rousseaux, Michael Esq QUALIFIED77Elwin Sharvill
1044Munro FerenczUnited Kingdom2026-05-22Benton, John B Jr NEW5Anna Fali
1045Sinclair WaycottGermany2026-05-18Feiner Bros QUALIFIED38Ivan Magalhaes
1046Octavia MaletSpain2026-05-05Truhlar And Truhlar Attys QUALIFIED19Ioni Bowcher
1047Chavez BriddickRussia2026-05-21King, Christopher A Esq NEW26Ioni Bowcher
1048Isabel BowleyFrance2026-05-12Rangoni Of Florence PROPOSAL69Stephen Shaw
1049Clifford RimUnited Kingdom2026-04-30Buckley Miller Wright NEGOTIATION34Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadJapanAsiya Javayant QUALIFIED
Silvio SlusarskiBrazilOnyama Limba NEW
Julie StensethIndiaBernardo Dominic RENEWAL
Maria MarrierGermanyIoni Bowcher PROPOSAL
Maisha RulapaughRussiaAsiya Javayant PROPOSAL
Munro FerenczFranceBernardo Dominic NEW
Aruna FigeroaUnited KingdomIoni Bowcher PROPOSAL
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
David DarakjyArgentinaIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomAsiya Javayant RENEWAL
Misaki RoysterCanadaXuxue Feng UNQUALIFIED
Leja CaldareraItalyStephen Shaw QUALIFIED
Kaitlin OstroskyBrazilAsiya Javayant RENEWAL
Juan WieserBrazilOnyama Limba NEW
Sinclair WaycottJapanIvan Magalhaes PROPOSAL
Munro FerenczBrazilBernardo Dominic RENEWAL
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyArgentinaXuxue Feng NEW
Nicolas IturbideAustraliaBernardo Dominic RENEWAL
Aditya KuskoIndiaElwin Sharvill NEW
David DarakjyIndiaOnyama Limba UNQUALIFIED
Chavez BriddickGermanyIvan Magalhaes UNQUALIFIED
Faith GillianBrazilStephen Shaw NEW
Jeanfrancois VenereBrazilAnna Fali PROPOSAL
Julie StensethIndiaIoni Bowcher NEW
Izzy GarufiRussiaOnyama Limba RENEWAL
Morrow RutaJapanXuxue Feng UNQUALIFIED
Chavez BriddickFranceAnna Fali PROPOSAL
Smith GlickIndiaOnyama Limba RENEWAL
Darci PoquetteFranceAmy Elsner NEW
Julie StensethJapanElwin Sharvill RENEWAL
Salvatore StockhamFranceIvan Magalhaes NEW
Maisha RulapaughRussiaAmy Elsner PROPOSAL
Alejandro PerinFranceIvan Magalhaes PROPOSAL
Jennifer AmigonUnited KingdomIvan Magalhaes PROPOSAL
Juan WieserArgentinaElwin Sharvill NEW
Costa DilliardArgentinaOnyama Limba NEGOTIATION
Mujtaba NickaArgentinaBernardo Dominic NEW
Darci PoquetteUnited KingdomElwin Sharvill QUALIFIED
Kaitlin OstroskyCanadaIoni Bowcher UNQUALIFIED
Darci PoquetteBrazilIvan Magalhaes QUALIFIED
Izzy GarufiIndiaAnna Fali NEGOTIATION
Misaki RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Maria MarrierIndiaElwin Sharvill QUALIFIED
Adams MorascaFranceAsiya Javayant NEW
Chavez BriddickArgentinaOnyama Limba NEGOTIATION
Stacey MacleadJapanBernardo Dominic NEGOTIATION
Clifford RimArgentinaBernardo Dominic NEW
Ivar PaprockiRussiaOnyama Limba RENEWAL
Emily WhobreySpainAnna Fali QUALIFIED
Frozen Columns
Name
Murillo Malet
Chavez Briddick
Aruna Figeroa
Faith Gillian
Costa Dilliard
Chavez Briddick
Adams Morasca
Kadeem Flosi
Kadeem Flosi
Kaitlin Ostrosky
Ivar Paprocki
Silvio Slusarski
Jefferson Schemmer
Johnson Sergi
Jefferson Schemmer
Darci Poquette
Sinclair Waycott
Octavia Malet
Ashley Doe
Aika Inouye
Leon Oldroyd
Kadeem Flosi
Arvin Albares
Aruna Figeroa
Stacey Maclead
Jones Vocelka
Aruna Figeroa
Leja Caldarera
Jeanfrancois Venere
Maria Marrier
Greenwood Bolognia
Leon Oldroyd
Leon Oldroyd
Emily Whobrey
James Butt
Murillo Malet
Francesco Shinko
Smith Glick
Sinclair Waycott
Ashley Doe
Cody Saylors
Johnson Sergi
Johnson Sergi
Emily Whobrey
Maisha Rulapaugh
Izzy Garufi
Rodrigues Campain
Wickens Nestle
Ashley Doe
Alejandro Perin
IdCountryDate
1000Germany2026-05-13
1001India2026-04-28
1002Australia2026-05-19
1003Italy2026-05-17
1004Canada2026-05-01
1005Argentina2026-04-29
1006Australia2026-05-19
1007Germany2026-05-07
1008Argentina2026-05-18
1009Russia2026-04-29
1010Brazil2026-05-16
1011Germany2026-05-07
1012United Kingdom2026-05-06
1013Australia2026-04-27
1014Italy2026-04-24
1015France2026-05-22
1016Spain2026-05-01
1017Australia2026-05-04
1018Canada2026-05-13
1019Argentina2026-05-18
1020Argentina2026-04-25
1021Russia2026-05-09
1022United Kingdom2026-05-06
1023France2026-05-22
1024India2026-05-11
1025Brazil2026-05-13
1026Germany2026-04-24
1027Japan2026-05-04
1028Japan2026-05-19
1029India2026-05-18
1030Argentina2026-05-12
1031France2026-05-21
1032Brazil2026-05-20
1033Canada2026-05-20
1034Brazil2026-05-12
1035Japan2026-05-13
1036Australia2026-05-16
1037Argentina2026-04-26
1038Canada2026-04-29
1039Russia2026-04-24
1040Japan2026-04-27
1041Spain2026-05-07
1042United Kingdom2026-04-29
1043Canada2026-05-03
1044Italy2026-05-17
1045France2026-05-18
1046France2026-05-14
1047Argentina2026-05-17
1048Argentina2026-05-11
1049Canada2026-05-19

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Russia2026-05-03
Costa Dilliard1001Argentina2026-04-26
James Butt1002Italy2026-05-09
Kadeem Flosi1003Brazil2026-04-23
Kaitlin Ostrosky1004Brazil2026-04-28
Chavez Briddick1005Japan2026-05-04
Juan Wieser1006United Kingdom2026-05-10
Arvin Albares1007Argentina2026-05-18
Nicolas Iturbide1008France2026-04-30
Claire Tollner1009Argentina2026-05-15
Munro Ferencz1010Australia2026-05-18
Jeanfrancois Venere1011Spain2026-05-05
Juan Wieser1012Spain2026-05-14
Aruna Figeroa1013Italy2026-04-24
Morrow Ruta1014Argentina2026-05-18
Nicolas Iturbide1015France2026-05-13
Adams Morasca1016India2026-05-15
Leon Oldroyd1017Argentina2026-05-20
Mujtaba Nicka1018Germany2026-05-20
Jeanfrancois Venere1019Australia2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Aruna FigeroaItalyAnna Fali NEGOTIATION
Maria MarrierArgentinaXuxue Feng NEW
Tony FollerArgentinaAsiya Javayant PROPOSAL
Rodrigues CampainRussiaBernardo Dominic PROPOSAL
Aruna FigeroaFranceAsiya Javayant NEW
Mayumi KolmetzSpainOnyama Limba UNQUALIFIED
Wickens NestleBrazilXuxue Feng RENEWAL
Julie StensethCanadaAsiya Javayant NEW
Aditya KuskoCanadaXuxue Feng UNQUALIFIED
Emily WhobreyBrazilAsiya Javayant QUALIFIED
Julie StensethSpainAsiya Javayant QUALIFIED
Antonio CaudyIndiaElwin Sharvill UNQUALIFIED
Aruna FigeroaRussiaOnyama Limba RENEWAL
Morrow RutaCanadaIoni Bowcher NEGOTIATION
Jones VocelkaArgentinaElwin Sharvill NEW
Claire TollnerBrazilBernardo Dominic UNQUALIFIED
Aditya KuskoArgentinaAsiya Javayant NEGOTIATION
Kadeem FlosiBrazilElwin Sharvill UNQUALIFIED
Misaki RoysterFranceAsiya Javayant NEGOTIATION
Arvin AlbaresGermanyXuxue Feng NEGOTIATION
Misaki RoysterItalyElwin Sharvill UNQUALIFIED
Octavia MaletBrazilAmy Elsner PROPOSAL
Francesco ShinkoUnited KingdomOnyama Limba RENEWAL
Jones VocelkaArgentinaElwin Sharvill RENEWAL
Juan WieserRussiaOnyama Limba NEW
Rodrigues CampainIndiaIoni Bowcher RENEWAL
Francesco ShinkoItalyOnyama Limba PROPOSAL
Isabel BowleyArgentinaIvan Magalhaes PROPOSAL
Silvio SlusarskiGermanyElwin Sharvill PROPOSAL
Arvin AlbaresUnited KingdomIoni Bowcher NEGOTIATION
David DarakjyBrazilStephen Shaw RENEWAL
Octavia MaletJapanStephen Shaw PROPOSAL
Greenwood BologniaJapanAmy Elsner NEGOTIATION
David DarakjySpainOnyama Limba NEW
Cody SaylorsFranceAmy Elsner RENEWAL
Sinclair WaycottIndiaElwin Sharvill RENEWAL
Greenwood BologniaGermanyStephen Shaw PROPOSAL
Morrow RutaCanadaBernardo Dominic QUALIFIED
Kadeem FlosiItalyAnna Fali 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>