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
Mayumi KolmetzAustraliaXuxue Feng RENEWAL
Cody SaylorsCanadaXuxue Feng RENEWAL
Faith GillianGermanyXuxue Feng UNQUALIFIED
Leja CaldareraUnited KingdomAmy Elsner RENEWAL
Isabel BowleyJapanStephen Shaw NEGOTIATION
Cody SaylorsAustraliaAmy Elsner NEW
Jefferson SchemmerItalyAsiya Javayant RENEWAL
Greenwood BologniaUnited KingdomAnna Fali PROPOSAL
Leja CaldareraIndiaIoni Bowcher NEGOTIATION
Jennifer AmigonSpainIoni Bowcher PROPOSAL
James ButtSpainElwin Sharvill QUALIFIED
Mayumi KolmetzItalyElwin Sharvill NEW
Ricardo GauchoIndiaStephen Shaw NEGOTIATION
David DarakjyArgentinaAsiya Javayant RENEWAL
Stacey MacleadAustraliaAsiya Javayant QUALIFIED
Sinclair WaycottArgentinaBernardo Dominic NEGOTIATION
Sinclair WaycottAustraliaAmy Elsner NEW
Julie StensethIndiaOnyama Limba PROPOSAL
Sinclair WaycottUnited KingdomElwin Sharvill NEW
Sinclair WaycottArgentinaIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaIvan Magalhaes NEW
David DarakjyAustraliaStephen Shaw UNQUALIFIED
Aruna FigeroaFranceStephen Shaw QUALIFIED
Wickens NestleRussiaXuxue Feng NEW
Misaki RoysterFranceAsiya Javayant UNQUALIFIED
Octavia MaletFranceOnyama Limba QUALIFIED
Cody SaylorsFranceAnna Fali QUALIFIED
Mujtaba NickaSpainAnna Fali RENEWAL
Emily WhobreyBrazilIvan Magalhaes QUALIFIED
Deepesh ChuiArgentinaIvan Magalhaes RENEWAL
Rodrigues CampainCanadaIoni Bowcher NEGOTIATION
Ivar PaprockiArgentinaOnyama Limba UNQUALIFIED
Tony FollerCanadaIoni Bowcher NEGOTIATION
Darci PoquetteSpainIvan Magalhaes RENEWAL
Wickens NestleArgentinaAnna Fali QUALIFIED
Munro FerenczArgentinaElwin Sharvill RENEWAL
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Aditya KuskoCanadaIoni Bowcher RENEWAL
Isabel BowleyFranceIvan Magalhaes NEGOTIATION
Munro FerenczRussiaOnyama Limba QUALIFIED
Clifford RimItalyStephen Shaw NEGOTIATION
Julie StensethJapanAmy Elsner PROPOSAL
Cody SaylorsJapanElwin Sharvill QUALIFIED
Greenwood BologniaUnited KingdomAmy Elsner RENEWAL
Clifford RimRussiaIvan Magalhaes NEGOTIATION
Alejandro PerinGermanyElwin Sharvill PROPOSAL
Faith GillianArgentinaAmy Elsner UNQUALIFIED
Cody SaylorsArgentinaAnna Fali PROPOSAL
Stacey MacleadItalyIoni Bowcher RENEWAL
Munro FerenczBrazilAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoFranceOnyama Limba UNQUALIFIED
Ivar PaprockiGermanyIoni Bowcher NEW
Ricardo GauchoJapanAsiya Javayant UNQUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes QUALIFIED
Morrow RutaSpainStephen Shaw UNQUALIFIED
Kadeem FlosiItalyIvan Magalhaes NEGOTIATION
Emily WhobreyGermanyIoni Bowcher UNQUALIFIED
Leon OldroydFranceIoni Bowcher RENEWAL
Wickens NestleAustraliaIvan Magalhaes UNQUALIFIED
Leja CaldareraJapanAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyUnited Kingdom2026-05-23Printing Dimensions QUALIFIED61Elwin Sharvill
1001Maria MarrierFrance2026-05-31Chemel, James L Cpa QUALIFIED62Bernardo Dominic
1002Chavez BriddickGermany2026-05-28Feiner Bros NEGOTIATION84Ioni Bowcher
1003Smith GlickBrazil2026-06-05Morlong Associates NEGOTIATION23Anna Fali
1004Kadeem FlosiArgentina2026-06-03Chapman, Ross E Esq UNQUALIFIED74Amy Elsner
1005Rodrigues CampainBrazil2026-06-01Buckley Miller Wright UNQUALIFIED21Anna Fali
1006Clifford RimSpain2026-05-29Feltz Printing Service NEW57Elwin Sharvill
1007Jones VocelkaRussia2026-05-20Chemel, James L Cpa UNQUALIFIED24Elwin Sharvill
1008Juan WieserFrance2026-06-01King, Christopher A Esq PROPOSAL21Onyama Limba
1009Mujtaba NickaUnited Kingdom2026-06-04Rangoni Of Florence NEW96Anna Fali
1010Ivar PaprockiBrazil2026-05-21Dorl, James J Esq PROPOSAL15Anna Fali
1011Salvatore StockhamBrazil2026-05-21Morlong Associates QUALIFIED38Anna Fali
1012Izzy GarufiIndia2026-06-04Buckley Miller Wright UNQUALIFIED98Xuxue Feng
1013Arvin AlbaresAustralia2026-05-24King, Christopher A Esq QUALIFIED97Elwin Sharvill
1014Jefferson SchemmerCanada2026-06-04Chapman, Ross E Esq PROPOSAL98Xuxue Feng
1015Jones VocelkaGermany2026-05-20Feiner Bros UNQUALIFIED27Ivan Magalhaes
1016Darci PoquetteAustralia2026-05-28Printing Dimensions RENEWAL39Amy Elsner
1017Mayumi KolmetzGermany2026-05-16Buckley Miller Wright NEW90Stephen Shaw
1018Wickens NestleAustralia2026-05-20Truhlar And Truhlar Attys NEW5Xuxue Feng
1019Maria MarrierIndia2026-05-27Feiner Bros NEW73Stephen Shaw
1020Jones VocelkaRussia2026-05-16Truhlar And Truhlar Attys NEW95Ivan Magalhaes
1021Leja CaldareraItaly2026-06-03Rangoni Of Florence UNQUALIFIED45Xuxue Feng
1022Cody SaylorsItaly2026-06-11Feiner Bros NEGOTIATION78Bernardo Dominic
1023Octavia MaletItaly2026-05-20Chemel, James L Cpa NEW60Amy Elsner
1024Chavez BriddickUnited Kingdom2026-06-08Truhlar And Truhlar Attys NEW31Amy Elsner
1025Salvatore StockhamUnited Kingdom2026-06-05Rousseaux, Michael Esq RENEWAL84Ioni Bowcher
1026Chavez BriddickAustralia2026-06-09Morlong Associates NEGOTIATION69Stephen Shaw
1027Deepesh ChuiFrance2026-05-25Truhlar And Truhlar Attys NEGOTIATION67Elwin Sharvill
1028Claire TollnerAustralia2026-05-15Feiner Bros NEGOTIATION16Bernardo Dominic
1029Juan WieserGermany2026-06-03Dorl, James J Esq NEGOTIATION36Ivan Magalhaes
1030Ashley DoeGermany2026-06-13Rousseaux, Michael Esq RENEWAL76Ioni Bowcher
1031Mayumi KolmetzGermany2026-06-09Buckley Miller Wright NEW15Anna Fali
1032Jeanfrancois VenereGermany2026-05-18Commercial Press RENEWAL42Onyama Limba
1033Ashley DoeIndia2026-06-13Buckley Miller Wright UNQUALIFIED60Ivan Magalhaes
1034Jeanfrancois VenereSpain2026-05-17Printing Dimensions UNQUALIFIED89Anna Fali
1035Nicolas IturbideBrazil2026-05-24Dorl, James J Esq NEW84Amy Elsner
1036Nicolas IturbideSpain2026-06-04King, Christopher A Esq QUALIFIED64Amy Elsner
1037Cody SaylorsSpain2026-05-27Chemel, James L Cpa QUALIFIED52Amy Elsner
1038Greenwood BologniaGermany2026-05-27Feltz Printing Service UNQUALIFIED76Onyama Limba
1039Antonio CaudyItaly2026-05-17Dorl, James J Esq QUALIFIED17Xuxue Feng
1040Jeanfrancois VenereItaly2026-05-20Chapman, Ross E Esq RENEWAL60Onyama Limba
1041Maria MarrierSpain2026-06-02Benton, John B Jr QUALIFIED89Ivan Magalhaes
1042Morrow RutaRussia2026-06-09Feltz Printing Service NEW63Asiya Javayant
1043Munro FerenczItaly2026-05-15Feltz Printing Service NEW23Stephen Shaw
1044Sinclair WaycottBrazil2026-06-09Dorl, James J Esq RENEWAL14Elwin Sharvill
1045Costa DilliardUnited Kingdom2026-06-05King, Christopher A Esq RENEWAL61Stephen Shaw
1046Aika InouyeUnited Kingdom2026-05-30Feltz Printing Service NEGOTIATION34Xuxue Feng
1047Clifford RimArgentina2026-05-31Rousseaux, Michael Esq PROPOSAL85Stephen Shaw
1048Mujtaba NickaCanada2026-05-15Chanay, Jeffrey A Esq PROPOSAL9Xuxue Feng
1049Kadeem FlosiIndia2026-05-20Dorl, James J Esq NEW64Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaUnited KingdomXuxue Feng UNQUALIFIED
Murillo MaletItalyIoni Bowcher RENEWAL
Maisha RulapaughAustraliaAnna Fali UNQUALIFIED
Maisha RulapaughFranceAsiya Javayant NEGOTIATION
Tony FollerUnited KingdomBernardo Dominic PROPOSAL
Misaki RoysterFranceAmy Elsner NEGOTIATION
Clifford RimGermanyBernardo Dominic QUALIFIED
Alejandro PerinUnited KingdomAsiya Javayant NEW
Antonio CaudySpainElwin Sharvill PROPOSAL
Mayumi KolmetzRussiaOnyama Limba NEGOTIATION
Arvin AlbaresUnited KingdomStephen Shaw RENEWAL
Tony FollerArgentinaXuxue Feng RENEWAL
Morrow RutaBrazilAnna Fali NEGOTIATION
Mujtaba NickaAustraliaAsiya Javayant RENEWAL
Deepesh ChuiAustraliaBernardo Dominic QUALIFIED
Stacey MacleadFranceXuxue Feng PROPOSAL
Cody SaylorsIndiaElwin Sharvill RENEWAL
Wickens NestleBrazilElwin Sharvill UNQUALIFIED
Chavez BriddickGermanyIvan Magalhaes RENEWAL
Kaitlin OstroskyAustraliaAmy Elsner NEGOTIATION
Jeanfrancois VenereArgentinaXuxue Feng NEW
Ashley DoeArgentinaAnna Fali QUALIFIED
Kadeem FlosiGermanyElwin Sharvill NEW
Octavia MaletSpainAsiya Javayant NEGOTIATION
Emily WhobreyItalyStephen Shaw NEW
David DarakjyItalyElwin Sharvill UNQUALIFIED
Kadeem FlosiItalyXuxue Feng NEW
Octavia MaletBrazilIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaAsiya Javayant RENEWAL
Ivar PaprockiFranceElwin Sharvill QUALIFIED
Greenwood BologniaItalyIvan Magalhaes NEGOTIATION
Mayumi KolmetzSpainElwin Sharvill UNQUALIFIED
Mujtaba NickaItalyAsiya Javayant PROPOSAL
Maria MarrierUnited KingdomElwin Sharvill QUALIFIED
Munro FerenczItalyAmy Elsner PROPOSAL
Tony FollerItalyIoni Bowcher QUALIFIED
Aruna FigeroaArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeSpainIoni Bowcher QUALIFIED
Darci PoquetteIndiaAnna Fali UNQUALIFIED
Jefferson SchemmerFranceXuxue Feng PROPOSAL
James ButtRussiaStephen Shaw NEGOTIATION
Clifford RimJapanElwin Sharvill NEW
Isabel BowleyArgentinaXuxue Feng NEW
Faith GillianAustraliaIvan Magalhaes UNQUALIFIED
Antonio CaudyGermanyIvan Magalhaes QUALIFIED
Arvin AlbaresIndiaXuxue Feng NEGOTIATION
Ricardo GauchoSpainOnyama Limba NEW
Jeanfrancois VenereUnited KingdomAsiya Javayant NEW
Claire TollnerCanadaBernardo Dominic RENEWAL
Sinclair WaycottArgentinaXuxue Feng QUALIFIED
Frozen Columns
Name
Stacey Maclead
James Butt
Antonio Caudy
Faith Gillian
Ivar Paprocki
Ricardo Gaucho
Jones Vocelka
Mayumi Kolmetz
Deepesh Chui
Tony Foller
Tony Foller
Kaitlin Ostrosky
Aruna Figeroa
Leja Caldarera
Nicolas Iturbide
Costa Dilliard
Octavia Malet
Izzy Garufi
Salvatore Stockham
Johnson Sergi
Smith Glick
Claire Tollner
Alejandro Perin
Kadeem Flosi
James Butt
Sinclair Waycott
Isabel Bowley
Leon Oldroyd
Rodrigues Campain
Cody Saylors
Greenwood Bolognia
Izzy Garufi
Smith Glick
Maisha Rulapaugh
Antonio Caudy
Johnson Sergi
Smith Glick
Morrow Ruta
Ashley Doe
Sinclair Waycott
Arvin Albares
Ivar Paprocki
Cody Saylors
Aditya Kusko
Kadeem Flosi
Leja Caldarera
Sinclair Waycott
Sinclair Waycott
Kaitlin Ostrosky
Ivar Paprocki
IdCountryDate
1000United Kingdom2026-05-16
1001Italy2026-05-27
1002India2026-06-13
1003India2026-05-21
1004Argentina2026-05-31
1005France2026-06-03
1006Japan2026-05-27
1007Australia2026-06-10
1008Australia2026-05-28
1009Australia2026-06-06
1010France2026-06-10
1011Australia2026-06-13
1012India2026-05-24
1013France2026-05-18
1014Japan2026-06-09
1015Japan2026-06-06
1016France2026-06-06
1017Japan2026-06-05
1018Canada2026-06-02
1019Germany2026-06-01
1020United Kingdom2026-06-05
1021Canada2026-06-08
1022Argentina2026-05-15
1023France2026-05-28
1024Japan2026-06-13
1025Germany2026-05-19
1026Brazil2026-05-29
1027France2026-05-28
1028Canada2026-05-28
1029India2026-06-05
1030Germany2026-06-03
1031France2026-05-24
1032Australia2026-05-22
1033Argentina2026-05-27
1034Italy2026-05-27
1035Japan2026-06-05
1036Germany2026-05-16
1037France2026-06-02
1038India2026-06-04
1039Japan2026-06-03
1040United Kingdom2026-05-22
1041India2026-06-10
1042Spain2026-05-15
1043France2026-06-01
1044India2026-05-18
1045Spain2026-06-11
1046Brazil2026-05-23
1047France2026-05-25
1048Italy2026-05-21
1049India2026-05-26

On-Demand Data

NameIdCountryDate
Juan Wieser1000Germany2026-06-02
Sinclair Waycott1001Russia2026-05-17
Isabel Bowley1002Italy2026-05-29
Silvio Slusarski1003Canada2026-05-22
Ricardo Gaucho1004Australia2026-05-25
Mayumi Kolmetz1005France2026-06-11
Adams Morasca1006Australia2026-06-03
Wickens Nestle1007United Kingdom2026-06-10
David Darakjy1008Russia2026-05-31
Darci Poquette1009Germany2026-05-17
Munro Ferencz1010Russia2026-05-27
Smith Glick1011Canada2026-05-16
Julie Stenseth1012Argentina2026-05-15
Wickens Nestle1013Australia2026-06-09
Isabel Bowley1014United Kingdom2026-06-01
Arvin Albares1015Japan2026-05-30
Aditya Kusko1016Brazil2026-05-19
Nicolas Iturbide1017India2026-05-16
Octavia Malet1018Germany2026-06-05
Jones Vocelka1019Australia2026-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiCanadaAnna Fali RENEWAL
Chavez BriddickSpainXuxue Feng RENEWAL
Octavia MaletRussiaIvan Magalhaes NEGOTIATION
Emily WhobreyCanadaAnna Fali NEGOTIATION
Adams MorascaRussiaOnyama Limba RENEWAL
Aika InouyeCanadaIoni Bowcher PROPOSAL
Jennifer AmigonBrazilBernardo Dominic PROPOSAL
Morrow RutaRussiaAsiya Javayant NEGOTIATION
Misaki RoysterFranceAsiya Javayant NEGOTIATION
Juan WieserJapanIoni Bowcher NEGOTIATION
Ashley DoeGermanyIoni Bowcher UNQUALIFIED
Adams MorascaGermanyAnna Fali PROPOSAL
Juan WieserUnited KingdomIvan Magalhaes PROPOSAL
Julie StensethRussiaXuxue Feng UNQUALIFIED
Salvatore StockhamGermanyOnyama Limba QUALIFIED
Smith GlickSpainIoni Bowcher QUALIFIED
Costa DilliardGermanyXuxue Feng PROPOSAL
Mayumi KolmetzRussiaIvan Magalhaes PROPOSAL
Chavez BriddickBrazilBernardo Dominic QUALIFIED
Jennifer AmigonJapanStephen Shaw NEW
Silvio SlusarskiJapanAnna Fali RENEWAL
Smith GlickAustraliaAsiya Javayant QUALIFIED
Greenwood BologniaAustraliaOnyama Limba UNQUALIFIED
Aruna FigeroaGermanyOnyama Limba QUALIFIED
Clifford RimGermanyOnyama Limba UNQUALIFIED
Ivar PaprockiJapanIoni Bowcher PROPOSAL
Stacey MacleadUnited KingdomAmy Elsner NEW
Smith GlickSpainIvan Magalhaes UNQUALIFIED
Aika InouyeJapanBernardo Dominic QUALIFIED
Ashley DoeJapanStephen Shaw UNQUALIFIED
Smith GlickItalyIvan Magalhaes UNQUALIFIED
Chavez BriddickItalyIvan Magalhaes PROPOSAL
Stacey MacleadAustraliaBernardo Dominic NEGOTIATION
Darci PoquetteCanadaAmy Elsner PROPOSAL
Wickens NestleAustraliaAnna Fali NEGOTIATION
Kadeem FlosiRussiaAnna Fali NEW
Isabel BowleySpainBernardo Dominic QUALIFIED
Ivar PaprockiGermanyAsiya Javayant NEW
Ricardo GauchoAustraliaXuxue Feng QUALIFIED
Antonio CaudyGermanyIoni Bowcher 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>