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
Darci PoquetteRussiaAsiya Javayant UNQUALIFIED
Ashley DoeCanadaIoni Bowcher PROPOSAL
Julie StensethItalyAnna Fali NEGOTIATION
Jones VocelkaRussiaXuxue Feng NEGOTIATION
Claire TollnerItalyIvan Magalhaes UNQUALIFIED
Rodrigues CampainJapanAnna Fali PROPOSAL
Mayumi KolmetzAustraliaBernardo Dominic PROPOSAL
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic QUALIFIED
Cody SaylorsArgentinaAnna Fali QUALIFIED
Rodrigues CampainIndiaIvan Magalhaes QUALIFIED
Jeanfrancois VenereUnited KingdomAmy Elsner PROPOSAL
Mayumi KolmetzIndiaIoni Bowcher NEGOTIATION
Tony FollerItalyElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaAnna Fali NEGOTIATION
Maisha RulapaughJapanElwin Sharvill UNQUALIFIED
Ricardo GauchoAustraliaAmy Elsner RENEWAL
Murillo MaletUnited KingdomIoni Bowcher RENEWAL
Kadeem FlosiArgentinaStephen Shaw QUALIFIED
Cody SaylorsUnited KingdomBernardo Dominic QUALIFIED
Tony FollerFranceStephen Shaw UNQUALIFIED
Aditya KuskoBrazilOnyama Limba NEGOTIATION
Mayumi KolmetzRussiaIoni Bowcher UNQUALIFIED
Izzy GarufiIndiaAnna Fali UNQUALIFIED
Kaitlin OstroskyBrazilXuxue Feng NEW
Rodrigues CampainArgentinaIvan Magalhaes PROPOSAL
Murillo MaletSpainXuxue Feng NEGOTIATION
Isabel BowleyAustraliaBernardo Dominic NEW
Leon OldroydIndiaIvan Magalhaes QUALIFIED
Stacey MacleadRussiaElwin Sharvill UNQUALIFIED
Claire TollnerCanadaAnna Fali PROPOSAL
Aika InouyeBrazilAnna Fali RENEWAL
James ButtIndiaIoni Bowcher NEGOTIATION
David DarakjyUnited KingdomIoni Bowcher PROPOSAL
Morrow RutaAustraliaBernardo Dominic RENEWAL
Ashley DoeItalyOnyama Limba NEW
David DarakjyBrazilElwin Sharvill PROPOSAL
Maria MarrierUnited KingdomIoni Bowcher PROPOSAL
Leja CaldareraJapanElwin Sharvill NEGOTIATION
Deepesh ChuiBrazilAnna Fali UNQUALIFIED
Ivar PaprockiArgentinaIoni Bowcher QUALIFIED
Johnson SergiItalyBernardo Dominic NEGOTIATION
Stacey MacleadArgentinaElwin Sharvill UNQUALIFIED
Greenwood BologniaGermanyElwin Sharvill PROPOSAL
Cody SaylorsIndiaIoni Bowcher RENEWAL
Johnson SergiRussiaAsiya Javayant RENEWAL
Izzy GarufiSpainAmy Elsner NEGOTIATION
Salvatore StockhamRussiaBernardo Dominic RENEWAL
Leon OldroydBrazilXuxue Feng NEGOTIATION
Murillo MaletUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens NestleCanadaAmy Elsner PROPOSAL
Silvio SlusarskiRussiaIoni Bowcher NEGOTIATION
Stacey MacleadArgentinaBernardo Dominic NEW
Mujtaba NickaBrazilElwin Sharvill UNQUALIFIED
Kadeem FlosiRussiaXuxue Feng NEW
Kaitlin OstroskyJapanOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaAnna Fali NEW
Jeanfrancois VenereAustraliaAnna Fali PROPOSAL
Alejandro PerinBrazilStephen Shaw QUALIFIED
Kadeem FlosiBrazilOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaJapan2026-04-24Truhlar And Truhlar Attys UNQUALIFIED15Onyama Limba
1001Aditya KuskoSpain2026-04-25Rangoni Of Florence PROPOSAL38Xuxue Feng
1002Aika InouyeBrazil2026-04-23King, Christopher A Esq RENEWAL29Anna Fali
1003Faith GillianSpain2026-04-07Buckley Miller Wright QUALIFIED92Onyama Limba
1004Adams MorascaArgentina2026-04-19Printing Dimensions PROPOSAL32Xuxue Feng
1005David DarakjyJapan2026-04-03King, Christopher A Esq RENEWAL85Onyama Limba
1006Nicolas IturbideUnited Kingdom2026-04-15Benton, John B Jr NEGOTIATION65Elwin Sharvill
1007Johnson SergiCanada2026-04-25Buckley Miller Wright NEGOTIATION16Ivan Magalhaes
1008Aruna FigeroaBrazil2026-04-11Morlong Associates RENEWAL47Ioni Bowcher
1009Deepesh ChuiCanada2026-04-01Chanay, Jeffrey A Esq NEW95Ioni Bowcher
1010Chavez BriddickArgentina2026-04-19Chanay, Jeffrey A Esq UNQUALIFIED39Ivan Magalhaes
1011Aditya KuskoCanada2026-04-06Feiner Bros UNQUALIFIED1Anna Fali
1012Deepesh ChuiUnited Kingdom2026-03-30King, Christopher A Esq PROPOSAL67Anna Fali
1013Johnson SergiIndia2026-04-18Morlong Associates RENEWAL68Bernardo Dominic
1014Rodrigues CampainFrance2026-04-16Buckley Miller Wright NEGOTIATION89Amy Elsner
1015Juan WieserSpain2026-03-29Chemel, James L Cpa NEW74Ioni Bowcher
1016Adams MorascaUnited Kingdom2026-04-07Printing Dimensions PROPOSAL11Stephen Shaw
1017Juan WieserJapan2026-04-10Chanay, Jeffrey A Esq NEGOTIATION36Onyama Limba
1018Faith GillianIndia2026-03-31Truhlar And Truhlar Attys NEW91Ivan Magalhaes
1019Juan WieserIndia2026-03-27Rangoni Of Florence NEGOTIATION58Stephen Shaw
1020Silvio SlusarskiGermany2026-04-24Dorl, James J Esq NEGOTIATION12Ivan Magalhaes
1021Faith GillianCanada2026-04-15Chanay, Jeffrey A Esq NEGOTIATION69Onyama Limba
1022Maisha RulapaughRussia2026-04-22Rangoni Of Florence PROPOSAL61Anna Fali
1023Jennifer AmigonJapan2026-04-11Chemel, James L Cpa QUALIFIED43Anna Fali
1024Darci PoquetteJapan2026-04-07Truhlar And Truhlar Attys NEGOTIATION39Ioni Bowcher
1025Munro FerenczBrazil2026-03-31Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1026Claire TollnerGermany2026-04-22Feltz Printing Service UNQUALIFIED91Xuxue Feng
1027Maria MarrierBrazil2026-03-31Commercial Press NEW27Asiya Javayant
1028Stacey MacleadFrance2026-04-02Rousseaux, Michael Esq UNQUALIFIED80Bernardo Dominic
1029Aika InouyeRussia2026-04-20Rangoni Of Florence RENEWAL17Stephen Shaw
1030Antonio CaudyBrazil2026-04-15Rangoni Of Florence NEGOTIATION33Asiya Javayant
1031Jeanfrancois VenereIndia2026-04-14Feiner Bros NEGOTIATION86Onyama Limba
1032Antonio CaudyJapan2026-04-07Dorl, James J Esq QUALIFIED29Amy Elsner
1033Kadeem FlosiSpain2026-03-29King, Christopher A Esq NEW72Amy Elsner
1034Deepesh ChuiFrance2026-03-30Truhlar And Truhlar Attys PROPOSAL37Amy Elsner
1035Costa DilliardCanada2026-03-28Dorl, James J Esq NEGOTIATION31Bernardo Dominic
1036Greenwood BologniaItaly2026-04-14Morlong Associates QUALIFIED0Amy Elsner
1037Jefferson SchemmerBrazil2026-04-07Commercial Press UNQUALIFIED91Amy Elsner
1038Izzy GarufiFrance2026-03-28Printing Dimensions UNQUALIFIED68Amy Elsner
1039Jennifer AmigonArgentina2026-04-02Feltz Printing Service UNQUALIFIED0Stephen Shaw
1040James ButtBrazil2026-04-03King, Christopher A Esq QUALIFIED42Bernardo Dominic
1041Jennifer AmigonItaly2026-03-27Dorl, James J Esq NEGOTIATION93Elwin Sharvill
1042Silvio SlusarskiBrazil2026-04-23Chapman, Ross E Esq PROPOSAL35Ioni Bowcher
1043Leon OldroydGermany2026-04-18Chanay, Jeffrey A Esq NEW65Ivan Magalhaes
1044Maria MarrierBrazil2026-04-22Dorl, James J Esq NEW92Xuxue Feng
1045Emily WhobreyBrazil2026-04-07Truhlar And Truhlar Attys QUALIFIED59Amy Elsner
1046Emily WhobreyBrazil2026-04-08Chemel, James L Cpa QUALIFIED38Asiya Javayant
1047Stacey MacleadBrazil2026-04-06Benton, John B Jr QUALIFIED18Xuxue Feng
1048Sinclair WaycottRussia2026-04-16Printing Dimensions UNQUALIFIED71Onyama Limba
1049Arvin AlbaresSpain2026-04-24Chapman, Ross E Esq UNQUALIFIED7Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydSpainOnyama Limba NEW
Isabel BowleyItalyIvan Magalhaes NEGOTIATION
Greenwood BologniaUnited KingdomIoni Bowcher NEGOTIATION
Nicolas IturbideSpainOnyama Limba PROPOSAL
Isabel BowleySpainStephen Shaw NEGOTIATION
Jeanfrancois VenereSpainOnyama Limba RENEWAL
Jones VocelkaArgentinaBernardo Dominic RENEWAL
Munro FerenczSpainIoni Bowcher NEGOTIATION
Sinclair WaycottUnited KingdomElwin Sharvill NEW
Aruna FigeroaIndiaXuxue Feng RENEWAL
David DarakjyJapanAmy Elsner NEGOTIATION
Morrow RutaArgentinaIoni Bowcher UNQUALIFIED
Jennifer AmigonJapanStephen Shaw RENEWAL
Ricardo GauchoArgentinaOnyama Limba PROPOSAL
Maria MarrierArgentinaAsiya Javayant NEGOTIATION
Emily WhobreyCanadaXuxue Feng NEGOTIATION
Mujtaba NickaItalyAsiya Javayant PROPOSAL
Jennifer AmigonIndiaXuxue Feng UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali QUALIFIED
Ivar PaprockiFranceAnna Fali PROPOSAL
Mujtaba NickaJapanAsiya Javayant PROPOSAL
Claire TollnerIndiaIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomAnna Fali RENEWAL
Claire TollnerFranceXuxue Feng UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic QUALIFIED
Ricardo GauchoCanadaXuxue Feng PROPOSAL
Smith GlickIndiaElwin Sharvill PROPOSAL
Julie StensethItalyElwin Sharvill RENEWAL
Tony FollerSpainIvan Magalhaes RENEWAL
Juan WieserRussiaAsiya Javayant PROPOSAL
Leja CaldareraGermanyElwin Sharvill UNQUALIFIED
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Claire TollnerGermanyIoni Bowcher PROPOSAL
Tony FollerIndiaIvan Magalhaes QUALIFIED
Jennifer AmigonGermanyXuxue Feng PROPOSAL
Kaitlin OstroskyItalyElwin Sharvill UNQUALIFIED
Alejandro PerinFranceXuxue Feng QUALIFIED
Darci PoquetteBrazilStephen Shaw UNQUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher NEGOTIATION
Misaki RoysterUnited KingdomElwin Sharvill NEW
Misaki RoysterRussiaBernardo Dominic UNQUALIFIED
Arvin AlbaresBrazilIvan Magalhaes PROPOSAL
Clifford RimIndiaIoni Bowcher PROPOSAL
Tony FollerArgentinaIvan Magalhaes RENEWAL
Rodrigues CampainUnited KingdomBernardo Dominic QUALIFIED
Munro FerenczBrazilAnna Fali NEW
Sinclair WaycottCanadaXuxue Feng NEW
Aika InouyeFranceIvan Magalhaes UNQUALIFIED
Jennifer AmigonFranceAnna Fali NEGOTIATION
Chavez BriddickFranceIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Wickens Nestle
Alejandro Perin
Octavia Malet
Claire Tollner
Morrow Ruta
Izzy Garufi
Darci Poquette
Ricardo Gaucho
Maria Marrier
Cody Saylors
Mujtaba Nicka
Silvio Slusarski
David Darakjy
Deepesh Chui
Izzy Garufi
Ivar Paprocki
Leja Caldarera
Juan Wieser
Faith Gillian
David Darakjy
Claire Tollner
Jennifer Amigon
Faith Gillian
Rodrigues Campain
Darci Poquette
Izzy Garufi
Greenwood Bolognia
Antonio Caudy
Aruna Figeroa
Maisha Rulapaugh
Jefferson Schemmer
Johnson Sergi
Chavez Briddick
Jeanfrancois Venere
Jones Vocelka
Octavia Malet
Jefferson Schemmer
Adams Morasca
Juan Wieser
Misaki Royster
Smith Glick
Jeanfrancois Venere
Tony Foller
Mayumi Kolmetz
Munro Ferencz
Ricardo Gaucho
Misaki Royster
Misaki Royster
Sinclair Waycott
Clifford Rim
IdCountryDate
1000Spain2026-04-16
1001Italy2026-04-04
1002Brazil2026-04-22
1003Argentina2026-04-07
1004Russia2026-04-02
1005Australia2026-04-03
1006Japan2026-04-25
1007Italy2026-04-14
1008United Kingdom2026-04-11
1009United Kingdom2026-04-17
1010Russia2026-03-27
1011India2026-04-19
1012Germany2026-03-29
1013United Kingdom2026-04-01
1014France2026-03-29
1015Japan2026-04-10
1016France2026-04-14
1017Russia2026-04-06
1018Russia2026-04-22
1019Australia2026-04-14
1020United Kingdom2026-04-12
1021Canada2026-04-03
1022Australia2026-04-17
1023Japan2026-04-20
1024Japan2026-03-31
1025Spain2026-04-06
1026Brazil2026-04-07
1027Canada2026-04-25
1028Russia2026-04-16
1029Russia2026-04-15
1030Germany2026-04-23
1031Australia2026-04-17
1032Russia2026-04-16
1033Japan2026-04-23
1034Japan2026-04-01
1035Brazil2026-04-08
1036France2026-04-14
1037Australia2026-04-09
1038Argentina2026-04-20
1039Brazil2026-04-12
1040Brazil2026-04-20
1041Italy2026-04-11
1042Russia2026-04-04
1043India2026-04-24
1044Japan2026-03-27
1045Argentina2026-03-30
1046Germany2026-04-22
1047Brazil2026-04-10
1048Spain2026-04-08
1049Australia2026-03-28

On-Demand Data

NameIdCountryDate
Costa Dilliard1000Germany2026-04-08
Ivar Paprocki1001Canada2026-03-30
Tony Foller1002Russia2026-04-15
Deepesh Chui1003Australia2026-04-22
Ricardo Gaucho1004Brazil2026-04-18
Jennifer Amigon1005Japan2026-04-22
Cody Saylors1006Germany2026-04-06
David Darakjy1007Germany2026-04-25
Misaki Royster1008Australia2026-03-27
Tony Foller1009France2026-03-30
Izzy Garufi1010Australia2026-04-23
Isabel Bowley1011United Kingdom2026-04-12
Mayumi Kolmetz1012India2026-04-02
Francesco Shinko1013Italy2026-04-13
Jones Vocelka1014Argentina2026-04-13
Jones Vocelka1015Argentina2026-04-25
James Butt1016Germany2026-04-05
Jennifer Amigon1017Spain2026-03-27
Stacey Maclead1018Argentina2026-04-10
Claire Tollner1019Canada2026-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottRussiaAsiya Javayant PROPOSAL
Costa DilliardFranceAsiya Javayant NEW
Arvin AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Leja CaldareraGermanyOnyama Limba RENEWAL
Leja CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore StockhamSpainElwin Sharvill NEGOTIATION
David DarakjySpainAmy Elsner NEW
Jefferson SchemmerArgentinaAmy Elsner PROPOSAL
Morrow RutaIndiaAsiya Javayant NEGOTIATION
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
James ButtAustraliaAsiya Javayant UNQUALIFIED
Alejandro PerinIndiaBernardo Dominic PROPOSAL
Ricardo GauchoAustraliaIoni Bowcher QUALIFIED
Salvatore StockhamSpainAmy Elsner PROPOSAL
Antonio CaudyGermanyIvan Magalhaes QUALIFIED
Faith GillianCanadaStephen Shaw RENEWAL
Juan WieserUnited KingdomXuxue Feng NEGOTIATION
James ButtIndiaXuxue Feng RENEWAL
Jeanfrancois VenereIndiaElwin Sharvill UNQUALIFIED
Juan WieserIndiaIoni Bowcher RENEWAL
Kadeem FlosiJapanIvan Magalhaes NEGOTIATION
Mayumi KolmetzIndiaBernardo Dominic UNQUALIFIED
Mayumi KolmetzBrazilAsiya Javayant QUALIFIED
Jefferson SchemmerSpainElwin Sharvill QUALIFIED
Munro FerenczGermanyStephen Shaw PROPOSAL
Aditya KuskoIndiaAmy Elsner RENEWAL
Kadeem FlosiFranceXuxue Feng UNQUALIFIED
David DarakjyCanadaStephen Shaw PROPOSAL
Nicolas IturbideSpainOnyama Limba PROPOSAL
Munro FerenczItalyXuxue Feng QUALIFIED
Ricardo GauchoGermanyXuxue Feng NEGOTIATION
Sinclair WaycottArgentinaBernardo Dominic NEGOTIATION
Juan WieserIndiaOnyama Limba QUALIFIED
Chavez BriddickIndiaAnna Fali NEGOTIATION
Juan WieserUnited KingdomBernardo Dominic NEW
Francesco ShinkoJapanStephen Shaw UNQUALIFIED
Kaitlin OstroskyRussiaAmy Elsner RENEWAL
Ricardo GauchoAustraliaStephen Shaw UNQUALIFIED
Rodrigues CampainUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson SchemmerGermanyBernardo Dominic UNQUALIFIED

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