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
Francesco ShinkoArgentinaIoni Bowcher RENEWAL
Jefferson SchemmerUnited KingdomAmy Elsner NEGOTIATION
Chavez BriddickUnited KingdomXuxue Feng QUALIFIED
Clifford RimArgentinaIoni Bowcher NEW
Alejandro PerinBrazilBernardo Dominic NEGOTIATION
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Wickens NestleUnited KingdomAnna Fali NEGOTIATION
Morrow RutaRussiaStephen Shaw UNQUALIFIED
Maria MarrierSpainBernardo Dominic PROPOSAL
Clifford RimIndiaElwin Sharvill RENEWAL
Kaitlin OstroskyCanadaAnna Fali QUALIFIED
Rodrigues CampainJapanAmy Elsner RENEWAL
Isabel BowleyFranceElwin Sharvill NEW
Silvio SlusarskiAustraliaXuxue Feng NEW
Francesco ShinkoRussiaStephen Shaw QUALIFIED
Jones VocelkaIndiaStephen Shaw PROPOSAL
Aruna FigeroaSpainOnyama Limba NEW
Salvatore StockhamArgentinaStephen Shaw PROPOSAL
James ButtRussiaIoni Bowcher NEW
Julie StensethFranceBernardo Dominic QUALIFIED
Kadeem FlosiAustraliaStephen Shaw QUALIFIED
Aditya KuskoUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois VenereRussiaOnyama Limba QUALIFIED
Smith GlickSpainStephen Shaw UNQUALIFIED
Tony FollerAustraliaAnna Fali QUALIFIED
Darci PoquetteItalyIvan Magalhaes PROPOSAL
Cody SaylorsRussiaBernardo Dominic NEGOTIATION
Arvin AlbaresRussiaElwin Sharvill PROPOSAL
Kadeem FlosiUnited KingdomIoni Bowcher NEW
Francesco ShinkoUnited KingdomIoni Bowcher PROPOSAL
Jones VocelkaGermanyAmy Elsner QUALIFIED
Smith GlickIndiaAmy Elsner NEGOTIATION
Alejandro PerinSpainAsiya Javayant NEGOTIATION
Leon OldroydArgentinaAmy Elsner PROPOSAL
Kadeem FlosiSpainAnna Fali RENEWAL
Smith GlickJapanIvan Magalhaes NEW
Murillo MaletCanadaIoni Bowcher PROPOSAL
Smith GlickArgentinaAsiya Javayant PROPOSAL
Costa DilliardFranceAsiya Javayant NEW
Ricardo GauchoRussiaOnyama Limba PROPOSAL
Alejandro PerinJapanAnna Fali NEGOTIATION
Mujtaba NickaJapanElwin Sharvill PROPOSAL
Izzy GarufiJapanIoni Bowcher QUALIFIED
Aruna FigeroaSpainElwin Sharvill PROPOSAL
Johnson SergiUnited KingdomXuxue Feng NEGOTIATION
Alejandro PerinFranceAmy Elsner PROPOSAL
Emily WhobreySpainAmy Elsner NEW
Ashley DoeCanadaIoni Bowcher NEGOTIATION
Tony FollerBrazilIoni Bowcher QUALIFIED
Octavia MaletGermanyIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maria MarrierUnited KingdomXuxue Feng PROPOSAL
Wickens NestleItalyAsiya Javayant NEGOTIATION
Izzy GarufiRussiaStephen Shaw NEW
Chavez BriddickItalyIoni Bowcher NEW
Ivar PaprockiFranceAnna Fali NEW
Kadeem FlosiBrazilXuxue Feng NEW
Juan WieserRussiaIoni Bowcher QUALIFIED
Adams MorascaRussiaIvan Magalhaes PROPOSAL
Rodrigues CampainSpainAmy Elsner NEGOTIATION
Stacey MacleadGermanyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinJapan2026-05-09King, Christopher A Esq NEGOTIATION80Xuxue Feng
1001Antonio CaudyRussia2026-06-01Commercial Press NEGOTIATION56Xuxue Feng
1002Faith GillianUnited Kingdom2026-05-16Morlong Associates QUALIFIED17Asiya Javayant
1003David DarakjyArgentina2026-05-05Printing Dimensions NEW74Asiya Javayant
1004Faith GillianArgentina2026-05-26Benton, John B Jr NEGOTIATION74Onyama Limba
1005Jennifer AmigonCanada2026-05-06King, Christopher A Esq RENEWAL65Bernardo Dominic
1006Maisha RulapaughFrance2026-05-25Truhlar And Truhlar Attys UNQUALIFIED79Amy Elsner
1007Claire TollnerAustralia2026-05-07Rangoni Of Florence NEGOTIATION45Ivan Magalhaes
1008Kaitlin OstroskySpain2026-05-11Printing Dimensions QUALIFIED20Elwin Sharvill
1009Aditya KuskoJapan2026-05-14Feltz Printing Service RENEWAL23Elwin Sharvill
1010Mujtaba NickaJapan2026-05-15Dorl, James J Esq NEW94Onyama Limba
1011Smith GlickJapan2026-05-31Dorl, James J Esq QUALIFIED72Bernardo Dominic
1012Chavez BriddickIndia2026-05-07Truhlar And Truhlar Attys PROPOSAL26Stephen Shaw
1013Alejandro PerinGermany2026-05-07Chemel, James L Cpa QUALIFIED27Elwin Sharvill
1014Misaki RoysterGermany2026-05-04Morlong Associates NEGOTIATION78Ivan Magalhaes
1015Juan WieserIndia2026-05-28Chanay, Jeffrey A Esq RENEWAL81Onyama Limba
1016Claire TollnerGermany2026-05-10Printing Dimensions NEW89Stephen Shaw
1017Octavia MaletCanada2026-05-04King, Christopher A Esq NEW37Xuxue Feng
1018Munro FerenczAustralia2026-06-01Chapman, Ross E Esq UNQUALIFIED75Onyama Limba
1019Julie StensethSpain2026-05-06Chapman, Ross E Esq QUALIFIED8Onyama Limba
1020Cody SaylorsJapan2026-05-22Rousseaux, Michael Esq RENEWAL62Xuxue Feng
1021Arvin AlbaresJapan2026-05-30Chanay, Jeffrey A Esq QUALIFIED45Bernardo Dominic
1022Clifford RimCanada2026-05-19Commercial Press UNQUALIFIED14Anna Fali
1023Chavez BriddickArgentina2026-05-10Commercial Press PROPOSAL4Stephen Shaw
1024David DarakjySpain2026-05-22Rangoni Of Florence PROPOSAL43Xuxue Feng
1025Leon OldroydGermany2026-05-23Feiner Bros RENEWAL74Asiya Javayant
1026Maisha RulapaughFrance2026-05-25Feiner Bros NEGOTIATION78Onyama Limba
1027Costa DilliardUnited Kingdom2026-05-31Printing Dimensions UNQUALIFIED55Ioni Bowcher
1028Stacey MacleadJapan2026-05-07Dorl, James J Esq UNQUALIFIED15Onyama Limba
1029Kadeem FlosiItaly2026-05-21Rangoni Of Florence PROPOSAL26Elwin Sharvill
1030Ivar PaprockiFrance2026-05-15Feltz Printing Service UNQUALIFIED59Ivan Magalhaes
1031Ricardo GauchoCanada2026-05-27Buckley Miller Wright QUALIFIED23Anna Fali
1032Chavez BriddickUnited Kingdom2026-05-29Chapman, Ross E Esq QUALIFIED15Elwin Sharvill
1033Chavez BriddickRussia2026-05-13Rangoni Of Florence QUALIFIED66Ivan Magalhaes
1034Morrow RutaRussia2026-05-26Commercial Press RENEWAL68Elwin Sharvill
1035Costa DilliardGermany2026-05-30Rousseaux, Michael Esq UNQUALIFIED56Ioni Bowcher
1036Sinclair WaycottAustralia2026-05-06Chapman, Ross E Esq UNQUALIFIED43Asiya Javayant
1037David DarakjyGermany2026-05-10Chanay, Jeffrey A Esq PROPOSAL65Amy Elsner
1038Leon OldroydJapan2026-05-16King, Christopher A Esq PROPOSAL4Amy Elsner
1039Ashley DoeItaly2026-05-14Chemel, James L Cpa UNQUALIFIED43Elwin Sharvill
1040Mujtaba NickaSpain2026-06-02Rangoni Of Florence PROPOSAL16Xuxue Feng
1041Silvio SlusarskiSpain2026-05-08Morlong Associates RENEWAL99Ioni Bowcher
1042David DarakjyAustralia2026-05-15Feltz Printing Service QUALIFIED99Bernardo Dominic
1043Ivar PaprockiGermany2026-05-31Feltz Printing Service QUALIFIED37Xuxue Feng
1044Mayumi KolmetzFrance2026-05-31Chemel, James L Cpa PROPOSAL76Elwin Sharvill
1045Jennifer AmigonCanada2026-05-26Rousseaux, Michael Esq RENEWAL71Bernardo Dominic
1046Ivar PaprockiAustralia2026-05-23Chemel, James L Cpa NEGOTIATION71Stephen Shaw
1047Chavez BriddickBrazil2026-05-10Chanay, Jeffrey A Esq PROPOSAL86Onyama Limba
1048Rodrigues CampainAustralia2026-06-02Dorl, James J Esq UNQUALIFIED82Bernardo Dominic
1049Octavia MaletBrazil2026-05-04Buckley Miller Wright NEGOTIATION45Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainRussiaAnna Fali RENEWAL
Mayumi KolmetzFranceAmy Elsner PROPOSAL
Jefferson SchemmerItalyXuxue Feng RENEWAL
Stacey MacleadJapanElwin Sharvill NEGOTIATION
Wickens NestleBrazilOnyama Limba UNQUALIFIED
Stacey MacleadJapanAsiya Javayant RENEWAL
Francesco ShinkoAustraliaAnna Fali RENEWAL
Mujtaba NickaBrazilAnna Fali QUALIFIED
Arvin AlbaresItalyIvan Magalhaes RENEWAL
Aditya KuskoJapanIvan Magalhaes UNQUALIFIED
Cody SaylorsJapanBernardo Dominic UNQUALIFIED
Kadeem FlosiItalyIoni Bowcher NEGOTIATION
Claire TollnerUnited KingdomAmy Elsner QUALIFIED
Misaki RoysterItalyIvan Magalhaes QUALIFIED
Jones VocelkaItalyAnna Fali NEW
Silvio SlusarskiItalyOnyama Limba NEGOTIATION
Jeanfrancois VenereUnited KingdomAmy Elsner NEW
Rodrigues CampainFranceIvan Magalhaes PROPOSAL
Stacey MacleadUnited KingdomXuxue Feng UNQUALIFIED
Ricardo GauchoJapanOnyama Limba NEGOTIATION
Rodrigues CampainArgentinaXuxue Feng NEGOTIATION
Leja CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Ivar PaprockiFranceXuxue Feng QUALIFIED
Julie StensethAustraliaIoni Bowcher UNQUALIFIED
Claire TollnerFranceIoni Bowcher PROPOSAL
Morrow RutaRussiaAmy Elsner QUALIFIED
Nicolas IturbideCanadaOnyama Limba UNQUALIFIED
Aruna FigeroaGermanyAsiya Javayant PROPOSAL
Chavez BriddickUnited KingdomBernardo Dominic NEW
Antonio CaudyJapanAsiya Javayant UNQUALIFIED
Adams MorascaItalyAnna Fali PROPOSAL
Johnson SergiSpainAnna Fali QUALIFIED
Jennifer AmigonJapanIvan Magalhaes PROPOSAL
Ashley DoeArgentinaXuxue Feng RENEWAL
Octavia MaletGermanyAsiya Javayant PROPOSAL
Mujtaba NickaIndiaXuxue Feng NEGOTIATION
Francesco ShinkoCanadaAsiya Javayant PROPOSAL
Cody SaylorsAustraliaIvan Magalhaes NEGOTIATION
Octavia MaletUnited KingdomXuxue Feng NEW
Sinclair WaycottJapanOnyama Limba QUALIFIED
Cody SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Cody SaylorsCanadaIvan Magalhaes NEW
Sinclair WaycottAustraliaAnna Fali NEW
Cody SaylorsGermanyAnna Fali UNQUALIFIED
Ashley DoeBrazilAnna Fali NEW
Arvin AlbaresIndiaOnyama Limba NEGOTIATION
Mayumi KolmetzIndiaIvan Magalhaes UNQUALIFIED
Misaki RoysterSpainStephen Shaw UNQUALIFIED
Darci PoquetteArgentinaXuxue Feng PROPOSAL
Aruna FigeroaArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Alejandro Perin
Leja Caldarera
Darci Poquette
Misaki Royster
Misaki Royster
Rodrigues Campain
Maria Marrier
Ivar Paprocki
Greenwood Bolognia
Jennifer Amigon
Mayumi Kolmetz
Sinclair Waycott
Leon Oldroyd
Maisha Rulapaugh
Alejandro Perin
Faith Gillian
Ashley Doe
Ricardo Gaucho
Aditya Kusko
Jones Vocelka
Smith Glick
Silvio Slusarski
Johnson Sergi
Murillo Malet
Leja Caldarera
Darci Poquette
Adams Morasca
Clifford Rim
Leja Caldarera
Jennifer Amigon
Chavez Briddick
Alejandro Perin
Tony Foller
Darci Poquette
David Darakjy
Smith Glick
Stacey Maclead
Leja Caldarera
Salvatore Stockham
Ricardo Gaucho
Jennifer Amigon
Julie Stenseth
Aditya Kusko
Kadeem Flosi
Izzy Garufi
Darci Poquette
Emily Whobrey
Mujtaba Nicka
James Butt
Costa Dilliard
IdCountryDate
1000France2026-05-11
1001Italy2026-05-13
1002Italy2026-05-20
1003Brazil2026-05-17
1004Spain2026-05-23
1005Italy2026-05-14
1006Argentina2026-05-16
1007Argentina2026-05-27
1008India2026-05-22
1009Russia2026-05-12
1010Argentina2026-05-30
1011United Kingdom2026-05-07
1012France2026-05-22
1013Italy2026-05-30
1014Argentina2026-05-17
1015Russia2026-05-21
1016Japan2026-05-31
1017Japan2026-05-15
1018Italy2026-05-31
1019Japan2026-05-09
1020United Kingdom2026-05-21
1021Argentina2026-05-20
1022Germany2026-05-13
1023Italy2026-06-02
1024India2026-05-28
1025Japan2026-05-14
1026Japan2026-05-25
1027United Kingdom2026-05-12
1028Italy2026-05-28
1029Italy2026-05-06
1030Japan2026-05-06
1031Russia2026-05-21
1032Japan2026-05-09
1033Spain2026-05-29
1034Canada2026-05-05
1035Russia2026-05-23
1036Germany2026-05-14
1037France2026-05-31
1038France2026-05-22
1039Australia2026-06-02
1040Spain2026-05-21
1041Australia2026-05-29
1042Russia2026-05-20
1043United Kingdom2026-05-13
1044Japan2026-05-21
1045Brazil2026-05-11
1046United Kingdom2026-05-12
1047United Kingdom2026-06-02
1048France2026-05-13
1049Italy2026-05-08

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Canada2026-05-11
Leon Oldroyd1001France2026-05-30
Francesco Shinko1002Spain2026-05-21
Alejandro Perin1003Australia2026-06-01
Jennifer Amigon1004France2026-05-18
Alejandro Perin1005Spain2026-05-13
Chavez Briddick1006India2026-05-21
Sinclair Waycott1007Japan2026-05-24
Leja Caldarera1008Brazil2026-05-20
Emily Whobrey1009Spain2026-05-14
Kadeem Flosi1010Japan2026-05-11
Mujtaba Nicka1011France2026-05-10
Ivar Paprocki1012Germany2026-05-16
Jefferson Schemmer1013Spain2026-05-25
Costa Dilliard1014United Kingdom2026-05-11
Cody Saylors1015Russia2026-05-30
Morrow Ruta1016United Kingdom2026-05-15
Maria Marrier1017Russia2026-05-10
Aika Inouye1018Brazil2026-05-21
Kadeem Flosi1019United Kingdom2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoArgentinaOnyama Limba QUALIFIED
Aruna FigeroaSpainAnna Fali PROPOSAL
Mujtaba NickaGermanyBernardo Dominic RENEWAL
James ButtFranceStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaXuxue Feng RENEWAL
Antonio CaudyUnited KingdomAnna Fali UNQUALIFIED
Wickens NestleArgentinaBernardo Dominic NEW
Faith GillianAustraliaAsiya Javayant PROPOSAL
Jones VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Deepesh ChuiItalyIoni Bowcher PROPOSAL
Antonio CaudyFranceXuxue Feng RENEWAL
Izzy GarufiGermanyOnyama Limba NEW
Claire TollnerJapanStephen Shaw UNQUALIFIED
Octavia MaletFranceBernardo Dominic PROPOSAL
Ashley DoeFranceIvan Magalhaes NEGOTIATION
Mayumi KolmetzGermanyAnna Fali QUALIFIED
Clifford RimAustraliaAsiya Javayant UNQUALIFIED
Jones VocelkaAustraliaBernardo Dominic NEGOTIATION
Tony FollerJapanIoni Bowcher NEW
Izzy GarufiIndiaElwin Sharvill PROPOSAL
Faith GillianUnited KingdomAmy Elsner NEGOTIATION
Francesco ShinkoBrazilOnyama Limba PROPOSAL
Antonio CaudyItalyElwin Sharvill RENEWAL
Claire TollnerItalyAsiya Javayant RENEWAL
Leja CaldareraCanadaOnyama Limba UNQUALIFIED
Alejandro PerinSpainAmy Elsner RENEWAL
Arvin AlbaresRussiaAnna Fali PROPOSAL
Aika InouyeCanadaStephen Shaw NEGOTIATION
Jefferson SchemmerUnited KingdomIvan Magalhaes RENEWAL
Leon OldroydBrazilElwin Sharvill NEGOTIATION
Johnson SergiSpainElwin Sharvill UNQUALIFIED
Ricardo GauchoCanadaBernardo Dominic QUALIFIED
Aditya KuskoArgentinaXuxue Feng RENEWAL
Misaki RoysterSpainBernardo Dominic PROPOSAL
Greenwood BologniaRussiaAnna Fali QUALIFIED
Aruna FigeroaBrazilElwin Sharvill NEW
Rodrigues CampainAustraliaIvan Magalhaes QUALIFIED
Izzy GarufiAustraliaAmy Elsner NEGOTIATION
Ashley DoeSpainAnna Fali NEW
Francesco ShinkoUnited KingdomAsiya Javayant 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>