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
Aruna FigeroaSpainXuxue Feng NEW
Morrow RutaCanadaBernardo Dominic NEGOTIATION
Arvin AlbaresUnited KingdomXuxue Feng UNQUALIFIED
Stacey MacleadGermanyBernardo Dominic NEW
Emily WhobreySpainIoni Bowcher PROPOSAL
Silvio SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Sinclair WaycottBrazilBernardo Dominic UNQUALIFIED
Cody SaylorsAustraliaIvan Magalhaes NEW
Clifford RimUnited KingdomOnyama Limba UNQUALIFIED
Claire TollnerCanadaAnna Fali RENEWAL
Mujtaba NickaCanadaIoni Bowcher NEW
Isabel BowleyArgentinaStephen Shaw PROPOSAL
Emily WhobreyCanadaBernardo Dominic PROPOSAL
Clifford RimRussiaAnna Fali RENEWAL
Clifford RimCanadaXuxue Feng UNQUALIFIED
Sinclair WaycottAustraliaOnyama Limba NEGOTIATION
Jennifer AmigonBrazilXuxue Feng RENEWAL
Nicolas IturbideArgentinaElwin Sharvill UNQUALIFIED
Sinclair WaycottGermanyAsiya Javayant UNQUALIFIED
Stacey MacleadSpainIvan Magalhaes NEW
Aruna FigeroaRussiaElwin Sharvill UNQUALIFIED
Rodrigues CampainIndiaAsiya Javayant UNQUALIFIED
Aditya KuskoSpainAmy Elsner PROPOSAL
Salvatore StockhamSpainAmy Elsner NEW
Emily WhobreyJapanXuxue Feng PROPOSAL
Ivar PaprockiBrazilElwin Sharvill RENEWAL
Alejandro PerinFranceStephen Shaw PROPOSAL
Ivar PaprockiUnited KingdomIvan Magalhaes RENEWAL
Chavez BriddickRussiaXuxue Feng UNQUALIFIED
Sinclair WaycottFranceAnna Fali UNQUALIFIED
Chavez BriddickCanadaElwin Sharvill NEGOTIATION
Leja CaldareraSpainStephen Shaw UNQUALIFIED
Smith GlickCanadaStephen Shaw RENEWAL
Ricardo GauchoItalyAnna Fali RENEWAL
Sinclair WaycottAustraliaXuxue Feng RENEWAL
Tony FollerItalyIoni Bowcher PROPOSAL
Maisha RulapaughRussiaBernardo Dominic NEW
Clifford RimUnited KingdomAmy Elsner PROPOSAL
Munro FerenczArgentinaAmy Elsner NEW
Silvio SlusarskiUnited KingdomIoni Bowcher NEW
Mayumi KolmetzIndiaXuxue Feng QUALIFIED
Jones VocelkaAustraliaAmy Elsner NEW
Octavia MaletArgentinaIoni Bowcher QUALIFIED
Salvatore StockhamGermanyBernardo Dominic QUALIFIED
Kadeem FlosiFranceStephen Shaw NEGOTIATION
Antonio CaudyJapanAnna Fali QUALIFIED
Juan WieserUnited KingdomIvan Magalhaes RENEWAL
Adams MorascaBrazilAnna Fali NEGOTIATION
Costa DilliardIndiaElwin Sharvill RENEWAL
Faith GillianItalyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteGermanyIvan Magalhaes QUALIFIED
Mayumi KolmetzAustraliaXuxue Feng QUALIFIED
Greenwood BologniaFranceAnna Fali RENEWAL
Ashley DoeCanadaStephen Shaw NEW
Greenwood BologniaArgentinaElwin Sharvill UNQUALIFIED
Stacey MacleadArgentinaXuxue Feng NEW
Emily WhobreyJapanElwin Sharvill NEGOTIATION
Costa DilliardSpainOnyama Limba NEGOTIATION
James ButtItalyAmy Elsner PROPOSAL
Aika InouyeBrazilBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson SergiRussia2026-04-14Morlong Associates NEGOTIATION88Anna Fali
1001Julie StensethAustralia2026-04-23Chanay, Jeffrey A Esq QUALIFIED72Stephen Shaw
1002Deepesh ChuiSpain2026-04-16Benton, John B Jr NEGOTIATION60Anna Fali
1003Johnson SergiFrance2026-04-13Feltz Printing Service NEW28Anna Fali
1004Sinclair WaycottFrance2026-04-02Rangoni Of Florence PROPOSAL99Ivan Magalhaes
1005Isabel BowleyUnited Kingdom2026-04-21Dorl, James J Esq RENEWAL56Amy Elsner
1006Maria MarrierItaly2026-04-17Rousseaux, Michael Esq NEGOTIATION96Bernardo Dominic
1007Julie StensethUnited Kingdom2026-04-23Rangoni Of Florence QUALIFIED33Onyama Limba
1008Jennifer AmigonSpain2026-04-20Morlong Associates NEW68Bernardo Dominic
1009Chavez BriddickBrazil2026-04-10Rangoni Of Florence NEW96Xuxue Feng
1010Rodrigues CampainIndia2026-04-08King, Christopher A Esq QUALIFIED55Ioni Bowcher
1011David DarakjyIndia2026-04-08Printing Dimensions NEGOTIATION25Bernardo Dominic
1012Ricardo GauchoUnited Kingdom2026-04-09Truhlar And Truhlar Attys QUALIFIED22Elwin Sharvill
1013Greenwood BologniaArgentina2026-04-05Feiner Bros UNQUALIFIED11Onyama Limba
1014Alejandro PerinFrance2026-04-01King, Christopher A Esq NEW31Ivan Magalhaes
1015Juan WieserCanada2026-04-14Truhlar And Truhlar Attys PROPOSAL30Elwin Sharvill
1016Emily WhobreyCanada2026-03-30Feltz Printing Service RENEWAL64Ioni Bowcher
1017Ashley DoeUnited Kingdom2026-04-02Benton, John B Jr UNQUALIFIED35Elwin Sharvill
1018Mayumi KolmetzItaly2026-04-23Commercial Press NEW51Elwin Sharvill
1019Greenwood BologniaRussia2026-04-12Truhlar And Truhlar Attys NEGOTIATION70Bernardo Dominic
1020Emily WhobreyItaly2026-04-05Rangoni Of Florence UNQUALIFIED61Xuxue Feng
1021David DarakjyIndia2026-04-04Printing Dimensions QUALIFIED83Amy Elsner
1022Leja CaldareraCanada2026-04-22Truhlar And Truhlar Attys RENEWAL69Ivan Magalhaes
1023Deepesh ChuiJapan2026-04-26Dorl, James J Esq PROPOSAL20Xuxue Feng
1024Tony FollerFrance2026-04-25Printing Dimensions QUALIFIED57Xuxue Feng
1025Tony FollerRussia2026-04-07Dorl, James J Esq RENEWAL2Anna Fali
1026Morrow RutaArgentina2026-04-04Morlong Associates NEW78Bernardo Dominic
1027Johnson SergiUnited Kingdom2026-04-03Feiner Bros RENEWAL76Ivan Magalhaes
1028Aruna FigeroaJapan2026-04-10Feltz Printing Service NEW99Onyama Limba
1029Munro FerenczSpain2026-04-12Feltz Printing Service RENEWAL11Asiya Javayant
1030Octavia MaletUnited Kingdom2026-04-16Feltz Printing Service PROPOSAL0Ioni Bowcher
1031Silvio SlusarskiIndia2026-04-10Morlong Associates PROPOSAL10Asiya Javayant
1032Misaki RoysterAustralia2026-04-05Truhlar And Truhlar Attys NEW42Ivan Magalhaes
1033Tony FollerSpain2026-04-01Commercial Press PROPOSAL36Ivan Magalhaes
1034Costa DilliardRussia2026-04-24King, Christopher A Esq RENEWAL72Xuxue Feng
1035Greenwood BologniaBrazil2026-04-27Buckley Miller Wright RENEWAL66Anna Fali
1036Alejandro PerinArgentina2026-04-08Dorl, James J Esq NEW69Asiya Javayant
1037David DarakjySpain2026-04-04Rousseaux, Michael Esq UNQUALIFIED95Asiya Javayant
1038Alejandro PerinFrance2026-04-14Buckley Miller Wright UNQUALIFIED8Stephen Shaw
1039Emily WhobreyUnited Kingdom2026-04-12Dorl, James J Esq RENEWAL83Ivan Magalhaes
1040David DarakjyUnited Kingdom2026-04-04Chanay, Jeffrey A Esq NEGOTIATION59Anna Fali
1041Johnson SergiUnited Kingdom2026-04-20Dorl, James J Esq NEW71Elwin Sharvill
1042Octavia MaletItaly2026-04-03Chanay, Jeffrey A Esq QUALIFIED41Anna Fali
1043Tony FollerUnited Kingdom2026-04-06Feltz Printing Service NEW1Stephen Shaw
1044David DarakjyFrance2026-04-11Chapman, Ross E Esq NEGOTIATION32Bernardo Dominic
1045Rodrigues CampainArgentina2026-04-19Feltz Printing Service NEW45Stephen Shaw
1046Juan WieserGermany2026-04-12Feltz Printing Service RENEWAL56Asiya Javayant
1047Sinclair WaycottItaly2026-04-27Benton, John B Jr NEW13Ioni Bowcher
1048Johnson SergiIndia2026-04-26Chapman, Ross E Esq QUALIFIED37Ioni Bowcher
1049Jeanfrancois VenereCanada2026-04-25Printing Dimensions NEW10Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainAustraliaAmy Elsner UNQUALIFIED
Kaitlin OstroskySpainAsiya Javayant QUALIFIED
Kaitlin OstroskyGermanyStephen Shaw RENEWAL
Nicolas IturbideItalyOnyama Limba QUALIFIED
Ashley DoeIndiaIoni Bowcher RENEWAL
Stacey MacleadSpainXuxue Feng RENEWAL
Claire TollnerGermanyBernardo Dominic QUALIFIED
Faith GillianUnited KingdomElwin Sharvill NEW
Stacey MacleadArgentinaIvan Magalhaes NEW
Nicolas IturbideItalyAmy Elsner NEW
Darci PoquetteRussiaStephen Shaw QUALIFIED
Sinclair WaycottCanadaAnna Fali NEGOTIATION
Greenwood BologniaJapanAnna Fali RENEWAL
Octavia MaletFranceAsiya Javayant QUALIFIED
Arvin AlbaresAustraliaAnna Fali NEW
Ashley DoeUnited KingdomIoni Bowcher NEGOTIATION
Clifford RimIndiaAsiya Javayant UNQUALIFIED
Murillo MaletAustraliaElwin Sharvill QUALIFIED
Faith GillianJapanXuxue Feng NEGOTIATION
Ivar PaprockiItalyAsiya Javayant NEGOTIATION
Ivar PaprockiRussiaIoni Bowcher PROPOSAL
Chavez BriddickCanadaAnna Fali UNQUALIFIED
Ricardo GauchoRussiaIoni Bowcher PROPOSAL
Jennifer AmigonGermanyElwin Sharvill PROPOSAL
Julie StensethUnited KingdomIvan Magalhaes UNQUALIFIED
James ButtSpainXuxue Feng NEGOTIATION
Kadeem FlosiFranceStephen Shaw RENEWAL
Kaitlin OstroskyItalyOnyama Limba QUALIFIED
Aditya KuskoItalyBernardo Dominic QUALIFIED
Octavia MaletSpainElwin Sharvill PROPOSAL
Antonio CaudyAustraliaAsiya Javayant PROPOSAL
Clifford RimSpainStephen Shaw UNQUALIFIED
Jefferson SchemmerCanadaStephen Shaw PROPOSAL
Mujtaba NickaJapanIvan Magalhaes NEGOTIATION
Stacey MacleadArgentinaAmy Elsner PROPOSAL
Salvatore StockhamItalyXuxue Feng UNQUALIFIED
David DarakjyJapanIoni Bowcher UNQUALIFIED
Silvio SlusarskiRussiaXuxue Feng NEGOTIATION
Mayumi KolmetzUnited KingdomElwin Sharvill RENEWAL
Salvatore StockhamJapanIoni Bowcher PROPOSAL
Aruna FigeroaAustraliaAsiya Javayant QUALIFIED
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Leja CaldareraArgentinaAnna Fali QUALIFIED
Greenwood BologniaIndiaIvan Magalhaes PROPOSAL
Mujtaba NickaSpainOnyama Limba NEW
Deepesh ChuiItalyXuxue Feng QUALIFIED
Francesco ShinkoIndiaIvan Magalhaes NEW
Juan WieserArgentinaElwin Sharvill UNQUALIFIED
Juan WieserAustraliaElwin Sharvill NEW
Wickens NestleJapanIoni Bowcher RENEWAL
Frozen Columns
Name
Tony Foller
Arvin Albares
Antonio Caudy
Emily Whobrey
Ricardo Gaucho
Aditya Kusko
Mayumi Kolmetz
Mayumi Kolmetz
Rodrigues Campain
Ashley Doe
Arvin Albares
David Darakjy
Wickens Nestle
Smith Glick
Leja Caldarera
Kaitlin Ostrosky
Alejandro Perin
Misaki Royster
Jefferson Schemmer
Maisha Rulapaugh
Octavia Malet
Kaitlin Ostrosky
Ivar Paprocki
Chavez Briddick
Francesco Shinko
Darci Poquette
Smith Glick
Ricardo Gaucho
Aditya Kusko
Nicolas Iturbide
Jones Vocelka
Munro Ferencz
Darci Poquette
Francesco Shinko
Octavia Malet
Ricardo Gaucho
Johnson Sergi
Juan Wieser
Kadeem Flosi
Claire Tollner
Julie Stenseth
Salvatore Stockham
Faith Gillian
Sinclair Waycott
Salvatore Stockham
Maisha Rulapaugh
Izzy Garufi
Nicolas Iturbide
Leon Oldroyd
Ivar Paprocki
IdCountryDate
1000Australia2026-04-20
1001Canada2026-04-05
1002Argentina2026-04-21
1003Russia2026-04-18
1004Brazil2026-04-22
1005Spain2026-03-29
1006Russia2026-04-07
1007Italy2026-04-26
1008Canada2026-04-14
1009Italy2026-04-26
1010Italy2026-04-14
1011Australia2026-04-04
1012Italy2026-04-13
1013Italy2026-04-25
1014Australia2026-04-24
1015Japan2026-04-21
1016India2026-04-12
1017Germany2026-04-23
1018Russia2026-04-18
1019Italy2026-04-10
1020Australia2026-04-14
1021Spain2026-04-22
1022Spain2026-04-09
1023Germany2026-04-15
1024Argentina2026-04-25
1025Russia2026-04-19
1026Canada2026-04-21
1027United Kingdom2026-04-26
1028Brazil2026-04-07
1029Australia2026-04-02
1030United Kingdom2026-04-06
1031Germany2026-04-27
1032Russia2026-04-22
1033Japan2026-04-04
1034Italy2026-04-09
1035Argentina2026-04-03
1036India2026-04-21
1037India2026-04-06
1038Japan2026-04-23
1039Germany2026-04-09
1040Germany2026-04-10
1041Germany2026-04-08
1042Russia2026-03-30
1043Australia2026-04-03
1044India2026-04-20
1045India2026-04-24
1046Australia2026-04-08
1047Russia2026-04-04
1048Brazil2026-04-18
1049India2026-04-25

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000India2026-04-18
Morrow Ruta1001United Kingdom2026-04-24
Mujtaba Nicka1002Russia2026-04-25
Nicolas Iturbide1003Canada2026-04-12
Maisha Rulapaugh1004Germany2026-04-16
Cody Saylors1005Canada2026-04-06
Aditya Kusko1006Spain2026-04-14
Sinclair Waycott1007Spain2026-04-21
Leon Oldroyd1008Japan2026-04-23
Ivar Paprocki1009France2026-04-24
Emily Whobrey1010France2026-04-10
Ivar Paprocki1011United Kingdom2026-04-05
Antonio Caudy1012Japan2026-03-30
Aruna Figeroa1013Italy2026-04-01
Aika Inouye1014Spain2026-04-02
Maria Marrier1015Italy2026-04-21
Aika Inouye1016Spain2026-04-26
Faith Gillian1017India2026-04-14
Ivar Paprocki1018India2026-04-11
Tony Foller1019United Kingdom2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyJapanBernardo Dominic NEGOTIATION
Tony FollerUnited KingdomXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaBernardo Dominic PROPOSAL
Leja CaldareraIndiaIoni Bowcher NEGOTIATION
Ashley DoeIndiaElwin Sharvill QUALIFIED
Smith GlickArgentinaXuxue Feng NEW
Misaki RoysterGermanyAnna Fali NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic NEGOTIATION
Morrow RutaCanadaElwin Sharvill PROPOSAL
Munro FerenczBrazilAnna Fali RENEWAL
Octavia MaletFranceAmy Elsner PROPOSAL
Arvin AlbaresBrazilStephen Shaw RENEWAL
Costa DilliardGermanyXuxue Feng NEW
Murillo MaletRussiaXuxue Feng RENEWAL
Faith GillianJapanIoni Bowcher NEW
Sinclair WaycottIndiaXuxue Feng NEGOTIATION
Misaki RoysterGermanyIoni Bowcher NEW
Darci PoquetteItalyIvan Magalhaes QUALIFIED
Juan WieserArgentinaIoni Bowcher NEGOTIATION
Claire TollnerRussiaElwin Sharvill QUALIFIED
Morrow RutaArgentinaIvan Magalhaes PROPOSAL
Francesco ShinkoGermanyElwin Sharvill NEW
Francesco ShinkoJapanXuxue Feng UNQUALIFIED
Octavia MaletIndiaElwin Sharvill RENEWAL
Morrow RutaCanadaAnna Fali QUALIFIED
Clifford RimJapanAnna Fali PROPOSAL
Misaki RoysterIndiaAmy Elsner RENEWAL
Morrow RutaFranceStephen Shaw RENEWAL
Ivar PaprockiIndiaAmy Elsner UNQUALIFIED
Leja CaldareraGermanyAsiya Javayant NEW
Jefferson SchemmerFranceAmy Elsner RENEWAL
Alejandro PerinCanadaElwin Sharvill NEW
Arvin AlbaresJapanAsiya Javayant NEW
Aruna FigeroaArgentinaAnna Fali NEGOTIATION
Chavez BriddickItalyStephen Shaw UNQUALIFIED
Antonio CaudyUnited KingdomIoni Bowcher NEGOTIATION
Cody SaylorsAustraliaElwin Sharvill NEGOTIATION
Maisha RulapaughArgentinaXuxue Feng NEW
Clifford RimAustraliaAsiya Javayant RENEWAL
Wickens NestleAustraliaXuxue Feng QUALIFIED

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