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
Maria MarrierSpainElwin Sharvill RENEWAL
Ricardo GauchoBrazilElwin Sharvill NEGOTIATION
Nicolas IturbideUnited KingdomAsiya Javayant PROPOSAL
Izzy GarufiJapanBernardo Dominic NEW
Claire TollnerCanadaIoni Bowcher QUALIFIED
Jeanfrancois VenereArgentinaAnna Fali NEGOTIATION
Aditya KuskoRussiaAmy Elsner RENEWAL
Isabel BowleyRussiaAmy Elsner NEW
Morrow RutaFranceAnna Fali NEGOTIATION
Ashley DoeItalyAmy Elsner UNQUALIFIED
Aditya KuskoJapanXuxue Feng QUALIFIED
Octavia MaletIndiaBernardo Dominic PROPOSAL
Nicolas IturbideCanadaAmy Elsner PROPOSAL
Sinclair WaycottArgentinaBernardo Dominic NEW
Maria MarrierSpainAmy Elsner QUALIFIED
Francesco ShinkoSpainStephen Shaw NEW
Izzy GarufiBrazilStephen Shaw NEW
Arvin AlbaresJapanAsiya Javayant QUALIFIED
Faith GillianItalyAsiya Javayant RENEWAL
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Cody SaylorsUnited KingdomIoni Bowcher RENEWAL
Murillo MaletSpainBernardo Dominic NEW
Aruna FigeroaItalyIoni Bowcher NEW
Claire TollnerIndiaAnna Fali UNQUALIFIED
Maria MarrierUnited KingdomAnna Fali NEGOTIATION
Aika InouyeCanadaAnna Fali PROPOSAL
Jennifer AmigonItalyElwin Sharvill RENEWAL
Leon OldroydIndiaStephen Shaw NEW
Wickens NestleIndiaAsiya Javayant NEW
Morrow RutaItalyAnna Fali NEW
Aditya KuskoUnited KingdomIvan Magalhaes RENEWAL
Alejandro PerinAustraliaIvan Magalhaes NEW
Deepesh ChuiItalyAnna Fali RENEWAL
Smith GlickGermanyAnna Fali QUALIFIED
Smith GlickRussiaAmy Elsner UNQUALIFIED
Nicolas IturbideCanadaStephen Shaw NEGOTIATION
Cody SaylorsItalyElwin Sharvill NEGOTIATION
Jones VocelkaFranceIvan Magalhaes QUALIFIED
Greenwood BologniaSpainElwin Sharvill PROPOSAL
Emily WhobreyAustraliaIvan Magalhaes RENEWAL
Francesco ShinkoCanadaXuxue Feng NEW
Kadeem FlosiFranceXuxue Feng RENEWAL
Sinclair WaycottIndiaIoni Bowcher PROPOSAL
Aika InouyeFranceOnyama Limba RENEWAL
Maria MarrierBrazilIvan Magalhaes NEGOTIATION
Jefferson SchemmerSpainAsiya Javayant RENEWAL
Chavez BriddickBrazilAsiya Javayant PROPOSAL
Ivar PaprockiUnited KingdomAnna Fali QUALIFIED
Leja CaldareraSpainIvan Magalhaes RENEWAL
Jennifer AmigonUnited KingdomXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro FerenczRussiaAnna Fali NEGOTIATION
Tony FollerArgentinaOnyama Limba QUALIFIED
Chavez BriddickIndiaStephen Shaw PROPOSAL
Maria MarrierGermanyXuxue Feng NEW
Ricardo GauchoFranceXuxue Feng PROPOSAL
Nicolas IturbideIndiaAsiya Javayant UNQUALIFIED
Alejandro PerinIndiaXuxue Feng RENEWAL
Salvatore StockhamAustraliaStephen Shaw RENEWAL
Faith GillianArgentinaOnyama Limba RENEWAL
Deepesh ChuiAustraliaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyFrance2026-03-30King, Christopher A Esq RENEWAL41Stephen Shaw
1001Izzy GarufiCanada2026-04-13Chemel, James L Cpa NEW90Anna Fali
1002Clifford RimArgentina2026-04-11Rangoni Of Florence UNQUALIFIED7Amy Elsner
1003Stacey MacleadItaly2026-04-11Dorl, James J Esq NEW78Anna Fali
1004Munro FerenczRussia2026-04-10Rousseaux, Michael Esq QUALIFIED11Asiya Javayant
1005Johnson SergiGermany2026-04-02Rangoni Of Florence PROPOSAL20Bernardo Dominic
1006David DarakjySpain2026-04-01Chanay, Jeffrey A Esq NEW84Bernardo Dominic
1007Isabel BowleyGermany2026-04-06Commercial Press UNQUALIFIED80Bernardo Dominic
1008Costa DilliardAustralia2026-04-17King, Christopher A Esq PROPOSAL13Amy Elsner
1009Silvio SlusarskiSpain2026-04-04Truhlar And Truhlar Attys NEW21Elwin Sharvill
1010Francesco ShinkoCanada2026-04-18Printing Dimensions NEW75Asiya Javayant
1011Murillo MaletArgentina2026-04-18Benton, John B Jr PROPOSAL94Ivan Magalhaes
1012Aruna FigeroaCanada2026-03-28Feiner Bros RENEWAL30Stephen Shaw
1013Nicolas IturbideAustralia2026-04-25Chemel, James L Cpa NEGOTIATION81Stephen Shaw
1014Antonio CaudyRussia2026-04-12Rousseaux, Michael Esq NEGOTIATION50Elwin Sharvill
1015Antonio CaudyIndia2026-04-02Buckley Miller Wright UNQUALIFIED38Xuxue Feng
1016Greenwood BologniaGermany2026-04-22Chanay, Jeffrey A Esq UNQUALIFIED51Stephen Shaw
1017Emily WhobreyUnited Kingdom2026-04-15Chanay, Jeffrey A Esq QUALIFIED50Ioni Bowcher
1018James ButtBrazil2026-04-26Rangoni Of Florence UNQUALIFIED29Stephen Shaw
1019Jefferson SchemmerFrance2026-03-30Feltz Printing Service RENEWAL20Ivan Magalhaes
1020Leja CaldareraFrance2026-04-06Chemel, James L Cpa NEGOTIATION61Bernardo Dominic
1021Clifford RimUnited Kingdom2026-04-20Commercial Press QUALIFIED52Amy Elsner
1022Mayumi KolmetzJapan2026-04-23Dorl, James J Esq PROPOSAL79Elwin Sharvill
1023Jeanfrancois VenereFrance2026-04-21Printing Dimensions NEW94Ivan Magalhaes
1024Jones VocelkaIndia2026-04-18Feltz Printing Service QUALIFIED2Stephen Shaw
1025Claire TollnerUnited Kingdom2026-04-18Morlong Associates UNQUALIFIED78Anna Fali
1026Izzy GarufiAustralia2026-04-04Chanay, Jeffrey A Esq NEW39Amy Elsner
1027Murillo MaletJapan2026-04-03Rousseaux, Michael Esq QUALIFIED88Bernardo Dominic
1028Morrow RutaSpain2026-04-08Truhlar And Truhlar Attys QUALIFIED8Bernardo Dominic
1029Greenwood BologniaFrance2026-04-26Truhlar And Truhlar Attys NEW73Xuxue Feng
1030Maria MarrierIndia2026-04-12Feiner Bros UNQUALIFIED11Onyama Limba
1031Jefferson SchemmerAustralia2026-03-30Morlong Associates NEW15Asiya Javayant
1032Sinclair WaycottRussia2026-04-23Benton, John B Jr UNQUALIFIED43Amy Elsner
1033Kaitlin OstroskyAustralia2026-04-16Dorl, James J Esq PROPOSAL16Asiya Javayant
1034Wickens NestleRussia2026-04-23Chapman, Ross E Esq QUALIFIED53Xuxue Feng
1035Rodrigues CampainRussia2026-04-24Morlong Associates UNQUALIFIED27Bernardo Dominic
1036Leja CaldareraCanada2026-04-14Chanay, Jeffrey A Esq UNQUALIFIED84Xuxue Feng
1037Darci PoquetteGermany2026-04-17Feltz Printing Service PROPOSAL65Ivan Magalhaes
1038Murillo MaletJapan2026-03-29Printing Dimensions QUALIFIED84Elwin Sharvill
1039Leon OldroydUnited Kingdom2026-04-17Rousseaux, Michael Esq PROPOSAL77Anna Fali
1040Aditya KuskoItaly2026-04-08Commercial Press RENEWAL59Stephen Shaw
1041Darci PoquetteUnited Kingdom2026-04-25Printing Dimensions PROPOSAL25Elwin Sharvill
1042Tony FollerSpain2026-04-03Benton, John B Jr RENEWAL83Anna Fali
1043Misaki RoysterJapan2026-03-29Dorl, James J Esq UNQUALIFIED51Amy Elsner
1044Emily WhobreyIndia2026-04-15Chapman, Ross E Esq QUALIFIED88Bernardo Dominic
1045Jones VocelkaGermany2026-04-15Rangoni Of Florence UNQUALIFIED19Onyama Limba
1046Claire TollnerCanada2026-04-22Dorl, James J Esq NEW25Onyama Limba
1047Morrow RutaRussia2026-04-24Buckley Miller Wright NEW99Onyama Limba
1048Ricardo GauchoArgentina2026-04-09Chapman, Ross E Esq RENEWAL94Elwin Sharvill
1049Aruna FigeroaCanada2026-04-06Feiner Bros NEW30Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Arvin AlbaresJapanAnna Fali RENEWAL
Aruna FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Leja CaldareraIndiaElwin Sharvill RENEWAL
Chavez BriddickSpainElwin Sharvill NEW
Misaki RoysterItalyElwin Sharvill NEGOTIATION
Aruna FigeroaItalyIoni Bowcher PROPOSAL
Deepesh ChuiBrazilAmy Elsner NEGOTIATION
Stacey MacleadArgentinaAmy Elsner RENEWAL
Mayumi KolmetzSpainIoni Bowcher UNQUALIFIED
Stacey MacleadGermanyAsiya Javayant NEW
James ButtCanadaElwin Sharvill RENEWAL
Ricardo GauchoBrazilStephen Shaw QUALIFIED
Morrow RutaCanadaStephen Shaw NEGOTIATION
Isabel BowleyItalyIoni Bowcher NEW
Chavez BriddickItalyIvan Magalhaes QUALIFIED
Tony FollerRussiaXuxue Feng UNQUALIFIED
Rodrigues CampainIndiaBernardo Dominic RENEWAL
Aditya KuskoJapanAmy Elsner RENEWAL
Wickens NestleCanadaIoni Bowcher UNQUALIFIED
Misaki RoysterRussiaAsiya Javayant NEGOTIATION
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Morrow RutaUnited KingdomElwin Sharvill RENEWAL
Aruna FigeroaFranceAmy Elsner NEGOTIATION
Chavez BriddickGermanyBernardo Dominic NEW
Leon OldroydAustraliaStephen Shaw NEGOTIATION
Darci PoquetteJapanBernardo Dominic UNQUALIFIED
Aika InouyeSpainXuxue Feng UNQUALIFIED
Arvin AlbaresBrazilXuxue Feng NEW
Chavez BriddickJapanElwin Sharvill NEGOTIATION
Adams MorascaJapanBernardo Dominic NEW
Clifford RimJapanOnyama Limba RENEWAL
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Rodrigues CampainAustraliaAsiya Javayant NEGOTIATION
Clifford RimIndiaBernardo Dominic RENEWAL
Aruna FigeroaGermanyAnna Fali QUALIFIED
Izzy GarufiFranceIoni Bowcher NEW
Izzy GarufiArgentinaXuxue Feng PROPOSAL
Jefferson SchemmerBrazilStephen Shaw PROPOSAL
Mayumi KolmetzAustraliaIoni Bowcher QUALIFIED
Johnson SergiFranceBernardo Dominic NEW
Munro FerenczFranceAsiya Javayant PROPOSAL
Wickens NestleCanadaXuxue Feng NEW
Maria MarrierAustraliaAmy Elsner UNQUALIFIED
Juan WieserItalyIvan Magalhaes QUALIFIED
Murillo MaletRussiaElwin Sharvill NEW
Jeanfrancois VenereArgentinaOnyama Limba NEGOTIATION
Cody SaylorsItalyIvan Magalhaes PROPOSAL
Murillo MaletSpainIvan Magalhaes RENEWAL
Deepesh ChuiCanadaStephen Shaw QUALIFIED
Isabel BowleyItalyOnyama Limba UNQUALIFIED
Frozen Columns
Name
Aruna Figeroa
Isabel Bowley
Maria Marrier
Smith Glick
Salvatore Stockham
Leja Caldarera
Juan Wieser
Juan Wieser
Kaitlin Ostrosky
Misaki Royster
Aditya Kusko
Izzy Garufi
Adams Morasca
Emily Whobrey
Nicolas Iturbide
Alejandro Perin
Ricardo Gaucho
Faith Gillian
Silvio Slusarski
Jennifer Amigon
Clifford Rim
Emily Whobrey
Kaitlin Ostrosky
Cody Saylors
Stacey Maclead
Stacey Maclead
Johnson Sergi
Leja Caldarera
Antonio Caudy
Kaitlin Ostrosky
Faith Gillian
Faith Gillian
Izzy Garufi
Antonio Caudy
Maisha Rulapaugh
Munro Ferencz
Aruna Figeroa
Cody Saylors
Deepesh Chui
Clifford Rim
Greenwood Bolognia
Julie Stenseth
Cody Saylors
Nicolas Iturbide
Jones Vocelka
Maria Marrier
Salvatore Stockham
Rodrigues Campain
Cody Saylors
Murillo Malet
IdCountryDate
1000Argentina2026-04-12
1001Germany2026-04-19
1002Australia2026-04-17
1003India2026-04-01
1004Russia2026-04-12
1005Germany2026-04-19
1006Italy2026-04-15
1007France2026-04-25
1008Canada2026-04-21
1009United Kingdom2026-04-02
1010Italy2026-04-15
1011Russia2026-04-25
1012Canada2026-03-28
1013Argentina2026-04-04
1014Spain2026-04-08
1015Canada2026-04-19
1016India2026-03-29
1017Argentina2026-04-15
1018Australia2026-04-03
1019Spain2026-04-15
1020Brazil2026-03-31
1021Brazil2026-04-07
1022Spain2026-04-15
1023Brazil2026-04-06
1024Japan2026-04-22
1025Japan2026-04-14
1026Russia2026-04-18
1027Brazil2026-04-14
1028United Kingdom2026-04-15
1029Canada2026-03-31
1030France2026-04-03
1031Germany2026-04-09
1032France2026-04-07
1033Germany2026-03-30
1034Germany2026-04-19
1035Germany2026-04-19
1036Italy2026-04-19
1037Japan2026-03-29
1038Japan2026-04-15
1039Canada2026-04-21
1040United Kingdom2026-04-17
1041Brazil2026-03-29
1042United Kingdom2026-03-30
1043Italy2026-04-18
1044Spain2026-04-22
1045Spain2026-03-29
1046Canada2026-04-17
1047Germany2026-04-10
1048Germany2026-04-15
1049Brazil2026-04-16

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Argentina2026-04-21
Nicolas Iturbide1001France2026-04-13
Murillo Malet1002Spain2026-04-05
Mayumi Kolmetz1003Canada2026-03-30
Antonio Caudy1004Australia2026-04-15
Aruna Figeroa1005Argentina2026-04-05
Claire Tollner1006France2026-03-31
David Darakjy1007Australia2026-04-09
Salvatore Stockham1008Australia2026-04-16
Mujtaba Nicka1009Argentina2026-04-15
Adams Morasca1010Argentina2026-04-20
Costa Dilliard1011Japan2026-04-13
Clifford Rim1012Russia2026-04-18
Aruna Figeroa1013Argentina2026-04-04
Munro Ferencz1014Russia2026-04-17
Kaitlin Ostrosky1015Australia2026-04-04
Cody Saylors1016Spain2026-04-04
Mayumi Kolmetz1017Germany2026-04-08
Aruna Figeroa1018Canada2026-04-11
James Butt1019Brazil2026-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimItalyIvan Magalhaes NEW
Costa DilliardAustraliaXuxue Feng NEW
Claire TollnerSpainElwin Sharvill QUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Salvatore StockhamGermanyStephen Shaw PROPOSAL
Deepesh ChuiIndiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiRussiaIvan Magalhaes NEW
Smith GlickRussiaElwin Sharvill NEGOTIATION
Adams MorascaRussiaIoni Bowcher NEW
Faith GillianRussiaBernardo Dominic RENEWAL
Sinclair WaycottCanadaIvan Magalhaes RENEWAL
Salvatore StockhamFranceElwin Sharvill RENEWAL
Kadeem FlosiRussiaIvan Magalhaes PROPOSAL
Darci PoquetteBrazilIoni Bowcher RENEWAL
Munro FerenczItalyAsiya Javayant RENEWAL
Jennifer AmigonItalyIoni Bowcher QUALIFIED
Ashley DoeFranceStephen Shaw PROPOSAL
Jeanfrancois VenereArgentinaOnyama Limba NEGOTIATION
Isabel BowleyArgentinaXuxue Feng PROPOSAL
Ivar PaprockiArgentinaIvan Magalhaes NEGOTIATION
Leon OldroydJapanStephen Shaw QUALIFIED
Mayumi KolmetzRussiaElwin Sharvill QUALIFIED
Alejandro PerinAustraliaElwin Sharvill UNQUALIFIED
Salvatore StockhamBrazilOnyama Limba UNQUALIFIED
Aika InouyeSpainOnyama Limba RENEWAL
Octavia MaletCanadaAmy Elsner NEW
Juan WieserCanadaBernardo Dominic NEGOTIATION
James ButtUnited KingdomAsiya Javayant PROPOSAL
Octavia MaletSpainIoni Bowcher RENEWAL
Jeanfrancois VenereAustraliaOnyama Limba QUALIFIED
Aruna FigeroaRussiaIvan Magalhaes UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher NEGOTIATION
Claire TollnerFranceAsiya Javayant NEGOTIATION
Ashley DoeBrazilOnyama Limba QUALIFIED
Smith GlickCanadaAmy Elsner UNQUALIFIED
Salvatore StockhamUnited KingdomAnna Fali QUALIFIED
Morrow RutaRussiaElwin Sharvill RENEWAL
Clifford RimAustraliaAmy Elsner RENEWAL
Murillo MaletItalyElwin Sharvill UNQUALIFIED
Morrow RutaFranceBernardo Dominic 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>