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
Mujtaba NickaSpainAmy Elsner RENEWAL
Jefferson SchemmerIndiaIoni Bowcher RENEWAL
Morrow RutaCanadaIoni Bowcher PROPOSAL
Misaki RoysterRussiaXuxue Feng NEW
Izzy GarufiArgentinaIoni Bowcher QUALIFIED
James ButtArgentinaElwin Sharvill NEGOTIATION
Misaki RoysterGermanyIvan Magalhaes PROPOSAL
David DarakjySpainAmy Elsner NEW
Morrow RutaFranceBernardo Dominic UNQUALIFIED
Maisha RulapaughGermanyIvan Magalhaes NEGOTIATION
Aika InouyeArgentinaAmy Elsner NEGOTIATION
Wickens NestleBrazilAsiya Javayant PROPOSAL
Munro FerenczSpainElwin Sharvill QUALIFIED
Salvatore StockhamAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba NickaSpainAmy Elsner NEGOTIATION
Chavez BriddickJapanElwin Sharvill NEGOTIATION
Aruna FigeroaItalyIvan Magalhaes NEGOTIATION
Kadeem FlosiAustraliaXuxue Feng NEGOTIATION
Ashley DoeArgentinaElwin Sharvill NEGOTIATION
Julie StensethSpainIvan Magalhaes NEW
Jones VocelkaFranceElwin Sharvill PROPOSAL
Clifford RimCanadaStephen Shaw NEW
Faith GillianIndiaAmy Elsner RENEWAL
Cody SaylorsRussiaAmy Elsner NEGOTIATION
Rodrigues CampainFranceOnyama Limba PROPOSAL
Leja CaldareraAustraliaAnna Fali PROPOSAL
Alejandro PerinFranceBernardo Dominic PROPOSAL
Antonio CaudyRussiaAmy Elsner PROPOSAL
Deepesh ChuiFranceAsiya Javayant NEW
Ashley DoeAustraliaStephen Shaw NEW
Leja CaldareraJapanStephen Shaw PROPOSAL
Maisha RulapaughArgentinaIoni Bowcher RENEWAL
Jennifer AmigonCanadaOnyama Limba PROPOSAL
Claire TollnerGermanyIvan Magalhaes RENEWAL
Darci PoquetteGermanyIvan Magalhaes QUALIFIED
Munro FerenczAustraliaAnna Fali NEGOTIATION
Murillo MaletJapanAsiya Javayant NEW
Costa DilliardJapanXuxue Feng QUALIFIED
Antonio CaudySpainAsiya Javayant NEGOTIATION
Jones VocelkaCanadaXuxue Feng RENEWAL
Maria MarrierItalyIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomElwin Sharvill NEGOTIATION
Arvin AlbaresItalyElwin Sharvill NEW
Wickens NestleIndiaElwin Sharvill NEW
Morrow RutaCanadaAsiya Javayant RENEWAL
Salvatore StockhamAustraliaXuxue Feng NEGOTIATION
Arvin AlbaresRussiaOnyama Limba QUALIFIED
Cody SaylorsBrazilAnna Fali UNQUALIFIED
Juan WieserRussiaXuxue Feng UNQUALIFIED
Smith GlickArgentinaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoFranceOnyama Limba NEGOTIATION
Tony FollerAustraliaIoni Bowcher QUALIFIED
Faith GillianFranceBernardo Dominic QUALIFIED
Kadeem FlosiRussiaAsiya Javayant PROPOSAL
Faith GillianCanadaIoni Bowcher RENEWAL
Maisha RulapaughItalyBernardo Dominic NEGOTIATION
Darci PoquetteGermanyStephen Shaw NEGOTIATION
Kadeem FlosiGermanyOnyama Limba QUALIFIED
James ButtFranceElwin Sharvill PROPOSAL
Octavia MaletGermanyElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh ChuiGermany2025-09-14Chemel, James L Cpa NEW22Xuxue Feng
1001Johnson SergiJapan2025-09-18Truhlar And Truhlar Attys NEW71Bernardo Dominic
1002Smith GlickBrazil2025-09-10Commercial Press NEW22Anna Fali
1003Silvio SlusarskiCanada2025-09-17Feltz Printing Service NEW48Bernardo Dominic
1004Smith GlickIndia2025-09-06Truhlar And Truhlar Attys UNQUALIFIED12Xuxue Feng
1005Jones VocelkaJapan2025-08-31Buckley Miller Wright PROPOSAL90Onyama Limba
1006Aika InouyeRussia2025-09-28Morlong Associates UNQUALIFIED95Amy Elsner
1007Greenwood BologniaItaly2025-09-12Commercial Press QUALIFIED36Xuxue Feng
1008Faith GillianItaly2025-09-13Feltz Printing Service PROPOSAL91Anna Fali
1009Darci PoquetteIndia2025-09-01Buckley Miller Wright NEGOTIATION13Stephen Shaw
1010Kadeem FlosiRussia2025-09-18Feiner Bros UNQUALIFIED76Elwin Sharvill
1011Morrow RutaJapan2025-09-13Chemel, James L Cpa PROPOSAL81Amy Elsner
1012Juan WieserItaly2025-09-13Chanay, Jeffrey A Esq QUALIFIED39Anna Fali
1013Darci PoquetteRussia2025-09-28Chemel, James L Cpa QUALIFIED7Onyama Limba
1014Murillo MaletAustralia2025-09-01Chemel, James L Cpa RENEWAL56Elwin Sharvill
1015Johnson SergiCanada2025-09-16Commercial Press NEW64Elwin Sharvill
1016Kaitlin OstroskyItaly2025-09-05Dorl, James J Esq NEW86Anna Fali
1017Adams MorascaBrazil2025-09-18Rousseaux, Michael Esq NEGOTIATION86Bernardo Dominic
1018Aika InouyeJapan2025-09-06Chapman, Ross E Esq RENEWAL84Amy Elsner
1019Deepesh ChuiItaly2025-09-17King, Christopher A Esq NEGOTIATION69Ioni Bowcher
1020Octavia MaletAustralia2025-09-15King, Christopher A Esq NEGOTIATION2Stephen Shaw
1021Wickens NestleCanada2025-09-22Feiner Bros UNQUALIFIED21Ivan Magalhaes
1022Adams MorascaRussia2025-09-20King, Christopher A Esq RENEWAL15Ivan Magalhaes
1023Sinclair WaycottAustralia2025-09-29Rangoni Of Florence NEGOTIATION47Stephen Shaw
1024Jefferson SchemmerCanada2025-09-02Benton, John B Jr UNQUALIFIED57Ioni Bowcher
1025Rodrigues CampainItaly2025-09-04Chanay, Jeffrey A Esq RENEWAL18Ivan Magalhaes
1026Silvio SlusarskiRussia2025-09-16Rangoni Of Florence NEGOTIATION76Amy Elsner
1027Francesco ShinkoIndia2025-09-25Rousseaux, Michael Esq UNQUALIFIED59Ivan Magalhaes
1028Adams MorascaAustralia2025-08-31Benton, John B Jr NEGOTIATION30Onyama Limba
1029Octavia MaletRussia2025-09-02Benton, John B Jr NEGOTIATION14Ioni Bowcher
1030Greenwood BologniaArgentina2025-09-02King, Christopher A Esq PROPOSAL31Amy Elsner
1031Juan WieserArgentina2025-09-22Chanay, Jeffrey A Esq PROPOSAL26Anna Fali
1032Salvatore StockhamAustralia2025-09-23Buckley Miller Wright QUALIFIED86Ioni Bowcher
1033Emily WhobreyFrance2025-09-12Chemel, James L Cpa UNQUALIFIED62Anna Fali
1034Octavia MaletUnited Kingdom2025-09-28King, Christopher A Esq UNQUALIFIED18Onyama Limba
1035Munro FerenczRussia2025-09-24Chanay, Jeffrey A Esq NEGOTIATION75Ivan Magalhaes
1036Costa DilliardBrazil2025-09-21Buckley Miller Wright RENEWAL31Elwin Sharvill
1037Salvatore StockhamRussia2025-08-31Dorl, James J Esq QUALIFIED33Asiya Javayant
1038Arvin AlbaresIndia2025-09-02Dorl, James J Esq UNQUALIFIED96Amy Elsner
1039Ricardo GauchoAustralia2025-09-14Chemel, James L Cpa NEGOTIATION14Amy Elsner
1040Rodrigues CampainRussia2025-09-17Rangoni Of Florence NEW70Amy Elsner
1041Jennifer AmigonBrazil2025-09-17Chanay, Jeffrey A Esq PROPOSAL46Ivan Magalhaes
1042Sinclair WaycottSpain2025-09-12Dorl, James J Esq PROPOSAL20Xuxue Feng
1043Emily WhobreyIndia2025-09-01Benton, John B Jr UNQUALIFIED36Ioni Bowcher
1044Faith GillianAustralia2025-09-22Benton, John B Jr RENEWAL74Stephen Shaw
1045Izzy GarufiCanada2025-09-20Rangoni Of Florence PROPOSAL77Xuxue Feng
1046Ricardo GauchoIndia2025-09-26Morlong Associates QUALIFIED28Bernardo Dominic
1047Darci PoquetteBrazil2025-09-01Rangoni Of Florence PROPOSAL0Amy Elsner
1048Wickens NestleJapan2025-09-08Rousseaux, Michael Esq PROPOSAL15Elwin Sharvill
1049Maria MarrierAustralia2025-08-31Chanay, Jeffrey A Esq QUALIFIED74Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaRussiaStephen Shaw NEGOTIATION
Mayumi KolmetzSpainStephen Shaw RENEWAL
Kadeem FlosiAustraliaIoni Bowcher UNQUALIFIED
Francesco ShinkoIndiaXuxue Feng RENEWAL
Mujtaba NickaJapanIvan Magalhaes PROPOSAL
Jones VocelkaItalyBernardo Dominic RENEWAL
Isabel BowleyIndiaBernardo Dominic RENEWAL
Munro FerenczRussiaXuxue Feng QUALIFIED
Kadeem FlosiAustraliaAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomBernardo Dominic RENEWAL
Julie StensethGermanyIoni Bowcher NEW
Greenwood BologniaItalyXuxue Feng PROPOSAL
Clifford RimArgentinaOnyama Limba QUALIFIED
Jones VocelkaItalyAsiya Javayant PROPOSAL
Aruna FigeroaRussiaOnyama Limba RENEWAL
Juan WieserSpainXuxue Feng QUALIFIED
Deepesh ChuiSpainElwin Sharvill RENEWAL
Morrow RutaBrazilStephen Shaw QUALIFIED
Francesco ShinkoRussiaAnna Fali UNQUALIFIED
Silvio SlusarskiFranceAmy Elsner QUALIFIED
Aditya KuskoGermanyAsiya Javayant PROPOSAL
Silvio SlusarskiItalyElwin Sharvill NEGOTIATION
David DarakjyJapanIoni Bowcher UNQUALIFIED
Alejandro PerinItalyIoni Bowcher UNQUALIFIED
Chavez BriddickAustraliaAnna Fali PROPOSAL
Silvio SlusarskiArgentinaOnyama Limba RENEWAL
Emily WhobreyUnited KingdomBernardo Dominic PROPOSAL
Munro FerenczGermanyXuxue Feng QUALIFIED
Maria MarrierFranceIvan Magalhaes QUALIFIED
Aruna FigeroaArgentinaStephen Shaw UNQUALIFIED
Chavez BriddickCanadaElwin Sharvill PROPOSAL
Salvatore StockhamAustraliaElwin Sharvill UNQUALIFIED
Francesco ShinkoBrazilAsiya Javayant NEGOTIATION
Silvio SlusarskiAustraliaOnyama Limba PROPOSAL
Kadeem FlosiJapanOnyama Limba RENEWAL
Clifford RimUnited KingdomAnna Fali UNQUALIFIED
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Deepesh ChuiItalyAsiya Javayant QUALIFIED
Salvatore StockhamRussiaAnna Fali UNQUALIFIED
Chavez BriddickCanadaXuxue Feng QUALIFIED
Mayumi KolmetzJapanStephen Shaw QUALIFIED
Salvatore StockhamJapanAnna Fali RENEWAL
Maria MarrierArgentinaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyGermanyXuxue Feng QUALIFIED
Wickens NestleUnited KingdomElwin Sharvill PROPOSAL
Aditya KuskoIndiaAnna Fali QUALIFIED
Rodrigues CampainCanadaBernardo Dominic UNQUALIFIED
James ButtIndiaBernardo Dominic RENEWAL
Kadeem FlosiGermanyAmy Elsner PROPOSAL
Antonio CaudyIndiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Deepesh Chui
Misaki Royster
Clifford Rim
Ashley Doe
Jennifer Amigon
Octavia Malet
Costa Dilliard
Misaki Royster
Julie Stenseth
Claire Tollner
Isabel Bowley
Faith Gillian
Chavez Briddick
Greenwood Bolognia
Leon Oldroyd
Leja Caldarera
Morrow Ruta
Clifford Rim
Jennifer Amigon
Maria Marrier
Silvio Slusarski
Claire Tollner
Kadeem Flosi
Izzy Garufi
Aruna Figeroa
Sinclair Waycott
Greenwood Bolognia
Julie Stenseth
Tony Foller
Ricardo Gaucho
Faith Gillian
Alejandro Perin
David Darakjy
Silvio Slusarski
Chavez Briddick
Costa Dilliard
Alejandro Perin
Misaki Royster
James Butt
Ivar Paprocki
Izzy Garufi
Greenwood Bolognia
Juan Wieser
Costa Dilliard
Cody Saylors
Rodrigues Campain
Greenwood Bolognia
Misaki Royster
Mujtaba Nicka
IdCountryDate
1000Japan2025-09-06
1001India2025-09-17
1002Russia2025-08-31
1003Germany2025-09-12
1004Australia2025-09-16
1005United Kingdom2025-09-27
1006India2025-09-25
1007United Kingdom2025-09-06
1008Italy2025-09-11
1009Canada2025-08-31
1010United Kingdom2025-09-26
1011Argentina2025-09-28
1012Germany2025-09-23
1013France2025-09-26
1014United Kingdom2025-09-19
1015Canada2025-09-28
1016Australia2025-09-01
1017Canada2025-09-16
1018Spain2025-09-09
1019India2025-09-29
1020India2025-09-16
1021Italy2025-09-21
1022United Kingdom2025-09-25
1023Japan2025-09-13
1024Russia2025-09-11
1025Italy2025-09-10
1026France2025-09-03
1027Brazil2025-09-14
1028Japan2025-09-26
1029Germany2025-09-13
1030Japan2025-09-24
1031United Kingdom2025-09-21
1032United Kingdom2025-09-17
1033Japan2025-09-14
1034Spain2025-09-23
1035France2025-09-06
1036Germany2025-09-16
1037Italy2025-09-10
1038Italy2025-09-29
1039Germany2025-09-21
1040India2025-09-02
1041Canada2025-09-15
1042Germany2025-09-28
1043Spain2025-09-23
1044Australia2025-09-13
1045Australia2025-09-29
1046Canada2025-09-11
1047Canada2025-09-02
1048India2025-09-27
1049France2025-09-09

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000United Kingdom2025-09-14
Chavez Briddick1001Spain2025-09-23
Emily Whobrey1002India2025-09-05
Alejandro Perin1003Italy2025-09-24
Aditya Kusko1004Australia2025-09-14
Julie Stenseth1005Brazil2025-09-24
Aditya Kusko1006France2025-09-22
Deepesh Chui1007Argentina2025-09-14
Faith Gillian1008Spain2025-09-25
Jeanfrancois Venere1009Germany2025-09-12
Alejandro Perin1010Germany2025-09-11
Jeanfrancois Venere1011Australia2025-09-11
Chavez Briddick1012Argentina2025-09-27
Aditya Kusko1013Russia2025-09-12
Aika Inouye1014Germany2025-09-17
Leja Caldarera1015India2025-09-11
Arvin Albares1016Canada2025-09-05
Faith Gillian1017Canada2025-09-02
Darci Poquette1018Russia2025-09-01
Munro Ferencz1019Australia2025-09-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyIndiaAsiya Javayant UNQUALIFIED
Clifford RimSpainOnyama Limba RENEWAL
Emily WhobreyArgentinaBernardo Dominic RENEWAL
Emily WhobreyItalyIvan Magalhaes PROPOSAL
Jones VocelkaBrazilBernardo Dominic UNQUALIFIED
Adams MorascaUnited KingdomAnna Fali PROPOSAL
Izzy GarufiJapanAsiya Javayant NEGOTIATION
Mujtaba NickaIndiaOnyama Limba RENEWAL
Izzy GarufiArgentinaIvan Magalhaes NEW
Octavia MaletBrazilStephen Shaw NEW
Tony FollerCanadaStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilOnyama Limba PROPOSAL
Chavez BriddickFranceIvan Magalhaes NEW
Silvio SlusarskiGermanyAsiya Javayant RENEWAL
Mujtaba NickaArgentinaAmy Elsner PROPOSAL
Silvio SlusarskiItalyAnna Fali RENEWAL
Antonio CaudyGermanyBernardo Dominic QUALIFIED
Johnson SergiCanadaOnyama Limba QUALIFIED
James ButtAustraliaBernardo Dominic NEW
Cody SaylorsRussiaAsiya Javayant NEW
Sinclair WaycottJapanAnna Fali NEGOTIATION
Aika InouyeCanadaAsiya Javayant UNQUALIFIED
Leon OldroydUnited KingdomOnyama Limba RENEWAL
Greenwood BologniaRussiaAsiya Javayant RENEWAL
Munro FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng PROPOSAL
Chavez BriddickArgentinaAmy Elsner NEGOTIATION
Juan WieserRussiaIvan Magalhaes NEW
Tony FollerIndiaXuxue Feng RENEWAL
Murillo MaletGermanyStephen Shaw QUALIFIED
Stacey MacleadFranceIvan Magalhaes QUALIFIED
Aika InouyeCanadaAmy Elsner RENEWAL
Leja CaldareraGermanyXuxue Feng UNQUALIFIED
Ashley DoeSpainAmy Elsner RENEWAL
Johnson SergiItalyIoni Bowcher NEGOTIATION
Maisha RulapaughCanadaIoni Bowcher NEGOTIATION
Kaitlin OstroskyArgentinaOnyama Limba QUALIFIED
Ashley DoeCanadaAsiya Javayant NEGOTIATION
Jennifer AmigonGermanyStephen Shaw QUALIFIED
Faith GillianCanadaAnna Fali NEGOTIATION

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