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
Wickens NestleRussiaOnyama Limba UNQUALIFIED
Clifford RimIndiaAnna Fali RENEWAL
Mayumi KolmetzSpainStephen Shaw RENEWAL
Jeanfrancois VenereJapanStephen Shaw NEGOTIATION
Jones VocelkaFranceOnyama Limba NEW
Mujtaba NickaAustraliaIvan Magalhaes PROPOSAL
Leon OldroydBrazilAmy Elsner NEW
Adams MorascaItalyAmy Elsner PROPOSAL
Salvatore StockhamUnited KingdomIvan Magalhaes PROPOSAL
Jennifer AmigonArgentinaAnna Fali NEGOTIATION
Leja CaldareraAustraliaBernardo Dominic RENEWAL
Deepesh ChuiJapanIoni Bowcher RENEWAL
Kaitlin OstroskyBrazilAnna Fali NEW
Alejandro PerinArgentinaIvan Magalhaes PROPOSAL
Misaki RoysterItalyStephen Shaw NEW
Antonio CaudySpainIoni Bowcher UNQUALIFIED
Morrow RutaUnited KingdomAsiya Javayant NEGOTIATION
Aruna FigeroaUnited KingdomElwin Sharvill PROPOSAL
Alejandro PerinGermanyIoni Bowcher NEW
Julie StensethArgentinaAmy Elsner RENEWAL
Aruna FigeroaIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereArgentinaAmy Elsner NEGOTIATION
David DarakjyJapanXuxue Feng NEW
James ButtIndiaElwin Sharvill NEGOTIATION
Ricardo GauchoGermanyOnyama Limba QUALIFIED
Arvin AlbaresIndiaXuxue Feng PROPOSAL
Julie StensethIndiaStephen Shaw RENEWAL
Aruna FigeroaUnited KingdomAnna Fali RENEWAL
David DarakjyRussiaAmy Elsner NEGOTIATION
Nicolas IturbideGermanyOnyama Limba QUALIFIED
Sinclair WaycottBrazilAnna Fali NEW
Izzy GarufiRussiaElwin Sharvill NEW
Chavez BriddickGermanyStephen Shaw NEGOTIATION
Faith GillianItalyElwin Sharvill QUALIFIED
Chavez BriddickGermanyOnyama Limba RENEWAL
Silvio SlusarskiAustraliaIoni Bowcher NEGOTIATION
Aditya KuskoGermanyAsiya Javayant QUALIFIED
Aditya KuskoRussiaXuxue Feng UNQUALIFIED
Jefferson SchemmerIndiaXuxue Feng NEW
Greenwood BologniaCanadaIoni Bowcher NEGOTIATION
Chavez BriddickUnited KingdomIoni Bowcher RENEWAL
Antonio CaudyGermanyBernardo Dominic RENEWAL
Aditya KuskoBrazilIvan Magalhaes PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill PROPOSAL
Smith GlickJapanXuxue Feng QUALIFIED
Rodrigues CampainUnited KingdomIoni Bowcher UNQUALIFIED
Cody SaylorsBrazilIoni Bowcher NEGOTIATION
Julie StensethFranceElwin Sharvill UNQUALIFIED
Faith GillianItalyStephen Shaw RENEWAL
Clifford RimAustraliaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Arvin AlbaresSpainIvan Magalhaes NEW
Misaki RoysterSpainIvan Magalhaes QUALIFIED
Maria MarrierCanadaStephen Shaw PROPOSAL
Morrow RutaJapanAsiya Javayant RENEWAL
Costa DilliardJapanBernardo Dominic PROPOSAL
Salvatore StockhamCanadaAnna Fali RENEWAL
Kadeem FlosiItalyBernardo Dominic QUALIFIED
Aruna FigeroaSpainXuxue Feng NEW
Izzy GarufiArgentinaIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainIndia2026-06-06Morlong Associates RENEWAL12Ioni Bowcher
1001Chavez BriddickIndia2026-05-24Feltz Printing Service NEGOTIATION27Onyama Limba
1002Sinclair WaycottJapan2026-05-20Printing Dimensions QUALIFIED55Ioni Bowcher
1003Antonio CaudyItaly2026-06-13Chanay, Jeffrey A Esq UNQUALIFIED39Amy Elsner
1004Munro FerenczUnited Kingdom2026-06-14Chemel, James L Cpa NEW11Amy Elsner
1005Morrow RutaRussia2026-05-28Chanay, Jeffrey A Esq NEGOTIATION9Ioni Bowcher
1006Julie StensethIndia2026-05-22Truhlar And Truhlar Attys PROPOSAL46Ivan Magalhaes
1007Darci PoquetteItaly2026-06-09Feltz Printing Service RENEWAL65Elwin Sharvill
1008Murillo MaletFrance2026-06-08Printing Dimensions UNQUALIFIED61Ioni Bowcher
1009Francesco ShinkoAustralia2026-05-28Rangoni Of Florence UNQUALIFIED7Bernardo Dominic
1010Aditya KuskoItaly2026-06-06Buckley Miller Wright RENEWAL78Bernardo Dominic
1011Munro FerenczRussia2026-05-30Feiner Bros NEW26Onyama Limba
1012Leja CaldareraUnited Kingdom2026-06-10Dorl, James J Esq QUALIFIED16Stephen Shaw
1013Misaki RoysterFrance2026-06-16Truhlar And Truhlar Attys QUALIFIED90Anna Fali
1014Leja CaldareraRussia2026-05-25King, Christopher A Esq PROPOSAL62Onyama Limba
1015Maisha RulapaughFrance2026-06-05Rangoni Of Florence NEGOTIATION13Xuxue Feng
1016Silvio SlusarskiSpain2026-05-29Printing Dimensions UNQUALIFIED47Ioni Bowcher
1017Morrow RutaUnited Kingdom2026-06-10Chemel, James L Cpa PROPOSAL93Onyama Limba
1018Antonio CaudyGermany2026-06-13Chemel, James L Cpa PROPOSAL25Elwin Sharvill
1019Sinclair WaycottBrazil2026-06-09Feltz Printing Service QUALIFIED51Asiya Javayant
1020Francesco ShinkoUnited Kingdom2026-05-27Chemel, James L Cpa NEGOTIATION12Stephen Shaw
1021Sinclair WaycottRussia2026-05-21Chanay, Jeffrey A Esq NEW83Ioni Bowcher
1022Alejandro PerinItaly2026-05-27Dorl, James J Esq NEGOTIATION49Elwin Sharvill
1023James ButtSpain2026-06-13Feiner Bros NEGOTIATION3Xuxue Feng
1024Clifford RimAustralia2026-06-06Dorl, James J Esq NEW59Xuxue Feng
1025Kaitlin OstroskyIndia2026-06-17King, Christopher A Esq PROPOSAL64Elwin Sharvill
1026Wickens NestleRussia2026-05-29Truhlar And Truhlar Attys NEW94Stephen Shaw
1027Izzy GarufiCanada2026-05-24Truhlar And Truhlar Attys QUALIFIED12Stephen Shaw
1028Leon OldroydSpain2026-06-02Rousseaux, Michael Esq QUALIFIED22Elwin Sharvill
1029Aika InouyeIndia2026-05-30Chapman, Ross E Esq PROPOSAL55Bernardo Dominic
1030Deepesh ChuiAustralia2026-05-21Morlong Associates NEGOTIATION11Ioni Bowcher
1031Rodrigues CampainJapan2026-05-27Chapman, Ross E Esq RENEWAL80Asiya Javayant
1032Juan WieserSpain2026-05-27Buckley Miller Wright QUALIFIED83Ivan Magalhaes
1033Isabel BowleyRussia2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED51Xuxue Feng
1034Ricardo GauchoGermany2026-06-09Morlong Associates NEW25Xuxue Feng
1035Rodrigues CampainJapan2026-05-25Feltz Printing Service NEGOTIATION75Elwin Sharvill
1036Aditya KuskoRussia2026-05-30Morlong Associates QUALIFIED51Onyama Limba
1037Claire TollnerArgentina2026-06-15King, Christopher A Esq NEW93Amy Elsner
1038Faith GillianSpain2026-05-29Benton, John B Jr RENEWAL25Onyama Limba
1039Ricardo GauchoRussia2026-05-30Rangoni Of Florence QUALIFIED0Amy Elsner
1040Octavia MaletUnited Kingdom2026-05-30Dorl, James J Esq UNQUALIFIED47Ioni Bowcher
1041Rodrigues CampainArgentina2026-06-02Commercial Press NEGOTIATION80Ivan Magalhaes
1042Wickens NestleFrance2026-05-28Rousseaux, Michael Esq UNQUALIFIED38Ioni Bowcher
1043Tony FollerRussia2026-06-11Chemel, James L Cpa UNQUALIFIED45Ioni Bowcher
1044Salvatore StockhamSpain2026-05-24Morlong Associates PROPOSAL79Amy Elsner
1045Antonio CaudyRussia2026-05-23Chanay, Jeffrey A Esq NEGOTIATION48Amy Elsner
1046James ButtAustralia2026-06-10Dorl, James J Esq RENEWAL51Onyama Limba
1047Adams MorascaBrazil2026-06-02Feltz Printing Service NEGOTIATION96Elwin Sharvill
1048Jones VocelkaFrance2026-06-04Morlong Associates PROPOSAL96Ioni Bowcher
1049Munro FerenczIndia2026-05-19Buckley Miller Wright UNQUALIFIED81Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeSpainAnna Fali UNQUALIFIED
Juan WieserRussiaOnyama Limba PROPOSAL
Ashley DoeAustraliaAnna Fali NEW
Julie StensethArgentinaOnyama Limba PROPOSAL
Kaitlin OstroskyFranceXuxue Feng PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner RENEWAL
Tony FollerArgentinaElwin Sharvill UNQUALIFIED
Rodrigues CampainSpainAmy Elsner RENEWAL
Jennifer AmigonIndiaAnna Fali NEGOTIATION
Claire TollnerFranceAmy Elsner NEW
Greenwood BologniaGermanyAsiya Javayant NEW
David DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Chavez BriddickJapanXuxue Feng RENEWAL
Maisha RulapaughCanadaAnna Fali PROPOSAL
Kaitlin OstroskyFranceIvan Magalhaes RENEWAL
Sinclair WaycottArgentinaIoni Bowcher QUALIFIED
Darci PoquetteBrazilIvan Magalhaes QUALIFIED
Claire TollnerItalyAnna Fali RENEWAL
Ricardo GauchoBrazilAnna Fali PROPOSAL
Clifford RimBrazilIvan Magalhaes QUALIFIED
Arvin AlbaresIndiaIoni Bowcher NEW
Stacey MacleadFranceElwin Sharvill UNQUALIFIED
Jeanfrancois VenereJapanAsiya Javayant QUALIFIED
Wickens NestleJapanIoni Bowcher NEGOTIATION
Sinclair WaycottGermanyXuxue Feng NEGOTIATION
Morrow RutaCanadaAsiya Javayant UNQUALIFIED
Ivar PaprockiRussiaAmy Elsner NEW
Juan WieserArgentinaStephen Shaw RENEWAL
Jefferson SchemmerIndiaBernardo Dominic RENEWAL
Ricardo GauchoFranceIoni Bowcher NEGOTIATION
David DarakjyCanadaXuxue Feng QUALIFIED
Adams MorascaBrazilXuxue Feng UNQUALIFIED
Jeanfrancois VenereIndiaElwin Sharvill QUALIFIED
Clifford RimJapanStephen Shaw NEW
Claire TollnerRussiaAnna Fali QUALIFIED
James ButtBrazilIoni Bowcher NEGOTIATION
Ashley DoeArgentinaElwin Sharvill NEW
Julie StensethItalyIvan Magalhaes NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba RENEWAL
Cody SaylorsFranceStephen Shaw QUALIFIED
Ricardo GauchoCanadaStephen Shaw QUALIFIED
Cody SaylorsGermanyAmy Elsner RENEWAL
James ButtJapanBernardo Dominic QUALIFIED
Munro FerenczRussiaBernardo Dominic RENEWAL
Johnson SergiIndiaElwin Sharvill RENEWAL
Costa DilliardRussiaIoni Bowcher RENEWAL
Deepesh ChuiItalyIoni Bowcher PROPOSAL
Tony FollerCanadaXuxue Feng UNQUALIFIED
Izzy GarufiSpainOnyama Limba RENEWAL
Arvin AlbaresCanadaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Chavez Briddick
Nicolas Iturbide
Aika Inouye
Adams Morasca
Munro Ferencz
Leja Caldarera
Faith Gillian
Emily Whobrey
Rodrigues Campain
David Darakjy
Izzy Garufi
Alejandro Perin
Octavia Malet
James Butt
David Darakjy
Jennifer Amigon
Mayumi Kolmetz
Tony Foller
Morrow Ruta
Arvin Albares
Francesco Shinko
Darci Poquette
Maria Marrier
Aika Inouye
Claire Tollner
Ivar Paprocki
Ashley Doe
Sinclair Waycott
Arvin Albares
Salvatore Stockham
Izzy Garufi
Stacey Maclead
Jeanfrancois Venere
Sinclair Waycott
Smith Glick
Kaitlin Ostrosky
Aruna Figeroa
Leon Oldroyd
Ivar Paprocki
Smith Glick
Silvio Slusarski
Arvin Albares
Aditya Kusko
Jennifer Amigon
Leja Caldarera
Leja Caldarera
Juan Wieser
Arvin Albares
Faith Gillian
James Butt
IdCountryDate
1000Italy2026-05-27
1001United Kingdom2026-06-16
1002Canada2026-05-31
1003Germany2026-05-29
1004Japan2026-05-20
1005Canada2026-06-15
1006Spain2026-06-13
1007Brazil2026-06-03
1008Italy2026-05-20
1009Spain2026-06-14
1010Russia2026-06-09
1011Australia2026-05-26
1012Canada2026-05-26
1013Australia2026-05-26
1014Canada2026-06-01
1015Spain2026-06-14
1016Brazil2026-05-29
1017Brazil2026-06-04
1018India2026-06-12
1019Argentina2026-05-22
1020Canada2026-05-24
1021Germany2026-06-16
1022United Kingdom2026-06-05
1023United Kingdom2026-06-16
1024Canada2026-06-08
1025United Kingdom2026-06-10
1026Argentina2026-05-24
1027Australia2026-05-29
1028Japan2026-06-16
1029Russia2026-06-05
1030Canada2026-05-24
1031Canada2026-05-19
1032Canada2026-06-08
1033Germany2026-05-29
1034Russia2026-06-05
1035India2026-06-05
1036France2026-06-03
1037Argentina2026-06-16
1038Argentina2026-06-02
1039India2026-06-03
1040France2026-05-31
1041Canada2026-06-03
1042France2026-06-05
1043Russia2026-05-22
1044Brazil2026-05-24
1045Italy2026-05-20
1046United Kingdom2026-06-10
1047Australia2026-06-05
1048Spain2026-06-10
1049Russia2026-06-17

On-Demand Data

NameIdCountryDate
Darci Poquette1000India2026-06-05
Salvatore Stockham1001Canada2026-05-30
Claire Tollner1002Australia2026-06-04
Morrow Ruta1003Spain2026-06-10
Emily Whobrey1004Canada2026-06-12
Cody Saylors1005United Kingdom2026-05-29
Emily Whobrey1006India2026-06-17
Salvatore Stockham1007Canada2026-06-06
Munro Ferencz1008Germany2026-06-01
Rodrigues Campain1009Italy2026-06-06
Mujtaba Nicka1010Japan2026-05-19
Chavez Briddick1011United Kingdom2026-05-30
Smith Glick1012Japan2026-05-27
Maisha Rulapaugh1013India2026-06-13
Darci Poquette1014Italy2026-06-05
Munro Ferencz1015Italy2026-05-20
Morrow Ruta1016Argentina2026-06-05
Aditya Kusko1017Russia2026-06-04
Nicolas Iturbide1018Germany2026-06-01
Misaki Royster1019Russia2026-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaCanadaBernardo Dominic NEW
Mujtaba NickaIndiaAnna Fali PROPOSAL
Aditya KuskoArgentinaXuxue Feng UNQUALIFIED
Jefferson SchemmerIndiaAsiya Javayant QUALIFIED
Alejandro PerinIndiaIoni Bowcher NEGOTIATION
Maisha RulapaughSpainXuxue Feng RENEWAL
Costa DilliardRussiaBernardo Dominic PROPOSAL
Smith GlickAustraliaIoni Bowcher QUALIFIED
Claire TollnerAustraliaStephen Shaw QUALIFIED
David DarakjyRussiaAnna Fali RENEWAL
Ivar PaprockiIndiaXuxue Feng UNQUALIFIED
Mujtaba NickaCanadaAmy Elsner NEW
Maisha RulapaughArgentinaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba RENEWAL
Jeanfrancois VenereUnited KingdomOnyama Limba NEGOTIATION
Deepesh ChuiIndiaBernardo Dominic NEGOTIATION
Costa DilliardGermanyOnyama Limba UNQUALIFIED
Sinclair WaycottGermanyIvan Magalhaes NEGOTIATION
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Maria MarrierAustraliaAsiya Javayant NEW
Alejandro PerinBrazilElwin Sharvill RENEWAL
Chavez BriddickJapanIoni Bowcher NEGOTIATION
Tony FollerArgentinaOnyama Limba NEGOTIATION
Leon OldroydRussiaIoni Bowcher RENEWAL
Tony FollerBrazilElwin Sharvill NEGOTIATION
Cody SaylorsIndiaBernardo Dominic RENEWAL
Jones VocelkaRussiaXuxue Feng PROPOSAL
Costa DilliardArgentinaOnyama Limba PROPOSAL
David DarakjyJapanBernardo Dominic NEGOTIATION
Emily WhobreyGermanyAsiya Javayant RENEWAL
Stacey MacleadGermanyIvan Magalhaes RENEWAL
Salvatore StockhamIndiaStephen Shaw QUALIFIED
Costa DilliardJapanBernardo Dominic NEGOTIATION
Darci PoquetteSpainElwin Sharvill PROPOSAL
Kaitlin OstroskyAustraliaXuxue Feng QUALIFIED
Ivar PaprockiCanadaIvan Magalhaes NEW
Claire TollnerCanadaXuxue Feng NEGOTIATION
Salvatore StockhamJapanAsiya Javayant NEGOTIATION
Costa DilliardRussiaOnyama Limba UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner 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>