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 ShinkoJapanXuxue Feng QUALIFIED
Jones VocelkaIndiaIoni Bowcher UNQUALIFIED
Aditya KuskoItalyAsiya Javayant RENEWAL
Nicolas IturbideAustraliaAnna Fali RENEWAL
Johnson SergiArgentinaXuxue Feng PROPOSAL
Mujtaba NickaAustraliaElwin Sharvill NEGOTIATION
Costa DilliardArgentinaAmy Elsner QUALIFIED
Morrow RutaAustraliaStephen Shaw RENEWAL
Jeanfrancois VenereCanadaOnyama Limba NEGOTIATION
Deepesh ChuiRussiaXuxue Feng NEGOTIATION
Leja CaldareraArgentinaStephen Shaw UNQUALIFIED
Clifford RimSpainIoni Bowcher NEGOTIATION
Rodrigues CampainItalyAmy Elsner UNQUALIFIED
Kaitlin OstroskyArgentinaIvan Magalhaes PROPOSAL
Salvatore StockhamIndiaIvan Magalhaes RENEWAL
Misaki RoysterRussiaStephen Shaw NEW
Maisha RulapaughAustraliaBernardo Dominic QUALIFIED
Jones VocelkaGermanyElwin Sharvill NEGOTIATION
David DarakjyGermanyStephen Shaw PROPOSAL
Juan WieserItalyOnyama Limba RENEWAL
Tony FollerItalyAnna Fali PROPOSAL
Stacey MacleadCanadaAnna Fali RENEWAL
Silvio SlusarskiBrazilAsiya Javayant NEW
Johnson SergiUnited KingdomXuxue Feng PROPOSAL
David DarakjyAustraliaAmy Elsner QUALIFIED
Leja CaldareraFranceAnna Fali RENEWAL
Octavia MaletGermanyAsiya Javayant RENEWAL
Kaitlin OstroskyAustraliaXuxue Feng RENEWAL
Aditya KuskoRussiaAmy Elsner NEW
Alejandro PerinFranceAsiya Javayant NEW
Tony FollerGermanyAsiya Javayant PROPOSAL
Wickens NestleItalyElwin Sharvill NEW
Francesco ShinkoGermanyAmy Elsner QUALIFIED
Izzy GarufiCanadaIoni Bowcher PROPOSAL
Salvatore StockhamGermanyAsiya Javayant NEGOTIATION
Mayumi KolmetzAustraliaOnyama Limba PROPOSAL
Mayumi KolmetzCanadaElwin Sharvill PROPOSAL
Greenwood BologniaIndiaAmy Elsner QUALIFIED
Aika InouyeUnited KingdomStephen Shaw UNQUALIFIED
Aditya KuskoRussiaBernardo Dominic PROPOSAL
Ivar PaprockiCanadaStephen Shaw UNQUALIFIED
Stacey MacleadJapanOnyama Limba PROPOSAL
Greenwood BologniaJapanAmy Elsner NEW
Silvio SlusarskiIndiaIoni Bowcher RENEWAL
Tony FollerRussiaIvan Magalhaes QUALIFIED
Salvatore StockhamFranceBernardo Dominic PROPOSAL
Tony FollerSpainXuxue Feng PROPOSAL
Johnson SergiBrazilAnna Fali QUALIFIED
Clifford RimArgentinaAsiya Javayant QUALIFIED
Arvin AlbaresSpainAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel BowleyGermanyOnyama Limba UNQUALIFIED
Johnson SergiArgentinaAsiya Javayant NEGOTIATION
Chavez BriddickAustraliaXuxue Feng UNQUALIFIED
Costa DilliardJapanAsiya Javayant RENEWAL
Aruna FigeroaCanadaAsiya Javayant RENEWAL
Murillo MaletArgentinaStephen Shaw RENEWAL
Munro FerenczGermanyStephen Shaw QUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant NEW
Aruna FigeroaAustraliaOnyama Limba PROPOSAL
Nicolas IturbideCanadaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraUnited Kingdom2026-04-06Benton, John B Jr QUALIFIED43Ioni Bowcher
1001Emily WhobreySpain2026-03-31Commercial Press NEGOTIATION39Anna Fali
1002Cody SaylorsArgentina2026-04-15King, Christopher A Esq QUALIFIED97Anna Fali
1003Johnson SergiFrance2026-04-22Chapman, Ross E Esq RENEWAL35Amy Elsner
1004Juan WieserGermany2026-04-16Rousseaux, Michael Esq RENEWAL22Anna Fali
1005Kadeem FlosiSpain2026-04-23Dorl, James J Esq NEW82Ivan Magalhaes
1006Sinclair WaycottAustralia2026-04-02Chanay, Jeffrey A Esq UNQUALIFIED86Bernardo Dominic
1007Mujtaba NickaBrazil2026-04-03Dorl, James J Esq RENEWAL26Amy Elsner
1008Octavia MaletAustralia2026-04-15Feltz Printing Service UNQUALIFIED23Bernardo Dominic
1009Aditya KuskoGermany2026-04-14Rangoni Of Florence PROPOSAL72Xuxue Feng
1010Costa DilliardArgentina2026-04-17Chanay, Jeffrey A Esq QUALIFIED37Anna Fali
1011Jones VocelkaGermany2026-03-27Printing Dimensions QUALIFIED71Asiya Javayant
1012Deepesh ChuiBrazil2026-03-30Truhlar And Truhlar Attys NEGOTIATION82Amy Elsner
1013Arvin AlbaresFrance2026-04-21Buckley Miller Wright PROPOSAL94Anna Fali
1014Greenwood BologniaRussia2026-04-03Chapman, Ross E Esq RENEWAL67Bernardo Dominic
1015Johnson SergiItaly2026-04-21King, Christopher A Esq PROPOSAL63Asiya Javayant
1016James ButtJapan2026-04-08Dorl, James J Esq NEGOTIATION71Ivan Magalhaes
1017Munro FerenczArgentina2026-04-24Feltz Printing Service QUALIFIED78Bernardo Dominic
1018Munro FerenczUnited Kingdom2026-03-27Truhlar And Truhlar Attys PROPOSAL2Ioni Bowcher
1019Isabel BowleyGermany2026-04-17King, Christopher A Esq PROPOSAL86Bernardo Dominic
1020Adams MorascaFrance2026-04-16Printing Dimensions PROPOSAL20Elwin Sharvill
1021Jones VocelkaUnited Kingdom2026-04-04Commercial Press RENEWAL73Elwin Sharvill
1022Cody SaylorsJapan2026-03-28Buckley Miller Wright UNQUALIFIED44Anna Fali
1023Mujtaba NickaItaly2026-04-02Commercial Press UNQUALIFIED51Ioni Bowcher
1024Wickens NestleUnited Kingdom2026-04-25Chapman, Ross E Esq RENEWAL89Bernardo Dominic
1025Aditya KuskoGermany2026-04-02Feltz Printing Service NEW23Ioni Bowcher
1026Jones VocelkaRussia2026-04-08Morlong Associates PROPOSAL77Stephen Shaw
1027Maisha RulapaughBrazil2026-04-23King, Christopher A Esq QUALIFIED56Ivan Magalhaes
1028Isabel BowleySpain2026-04-24Buckley Miller Wright NEGOTIATION32Ioni Bowcher
1029Smith GlickUnited Kingdom2026-03-31Commercial Press NEGOTIATION12Bernardo Dominic
1030Ivar PaprockiIndia2026-03-29Dorl, James J Esq RENEWAL28Asiya Javayant
1031Leja CaldareraJapan2026-04-25King, Christopher A Esq RENEWAL92Asiya Javayant
1032Aika InouyeSpain2026-04-07Commercial Press RENEWAL16Elwin Sharvill
1033Nicolas IturbideJapan2026-04-16King, Christopher A Esq NEW89Bernardo Dominic
1034Nicolas IturbideGermany2026-04-10King, Christopher A Esq NEW34Onyama Limba
1035Greenwood BologniaItaly2026-04-01Chapman, Ross E Esq NEW74Asiya Javayant
1036Greenwood BologniaCanada2026-04-25Benton, John B Jr UNQUALIFIED64Amy Elsner
1037Greenwood BologniaBrazil2026-04-17King, Christopher A Esq UNQUALIFIED43Stephen Shaw
1038Francesco ShinkoAustralia2026-03-28Morlong Associates UNQUALIFIED73Asiya Javayant
1039David DarakjySpain2026-04-21Morlong Associates NEGOTIATION72Bernardo Dominic
1040Octavia MaletAustralia2026-04-06Chemel, James L Cpa NEGOTIATION91Anna Fali
1041Mayumi KolmetzItaly2026-04-07Morlong Associates PROPOSAL94Amy Elsner
1042Jefferson SchemmerCanada2026-04-22Chemel, James L Cpa PROPOSAL28Ivan Magalhaes
1043Ashley DoeItaly2026-04-01Printing Dimensions NEW27Asiya Javayant
1044Tony FollerFrance2026-04-11Benton, John B Jr NEW73Xuxue Feng
1045Deepesh ChuiJapan2026-03-30Chemel, James L Cpa RENEWAL76Stephen Shaw
1046Nicolas IturbideUnited Kingdom2026-04-25Commercial Press QUALIFIED42Xuxue Feng
1047Munro FerenczArgentina2026-04-23Morlong Associates NEW52Ivan Magalhaes
1048Wickens NestleSpain2026-03-31Commercial Press NEW1Asiya Javayant
1049David DarakjyAustralia2026-04-05Benton, John B Jr NEW71Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickItalyAnna Fali NEGOTIATION
Maria MarrierAustraliaElwin Sharvill NEW
Rodrigues CampainAustraliaStephen Shaw NEGOTIATION
Johnson SergiIndiaIvan Magalhaes NEW
Wickens NestleBrazilIvan Magalhaes NEW
Isabel BowleyJapanOnyama Limba RENEWAL
Stacey MacleadItalyIvan Magalhaes UNQUALIFIED
Juan WieserJapanElwin Sharvill QUALIFIED
Salvatore StockhamGermanyXuxue Feng NEW
Clifford RimIndiaOnyama Limba NEW
Izzy GarufiCanadaElwin Sharvill NEW
Rodrigues CampainIndiaXuxue Feng PROPOSAL
Aditya KuskoRussiaStephen Shaw QUALIFIED
David DarakjyBrazilAmy Elsner NEGOTIATION
Silvio SlusarskiSpainXuxue Feng RENEWAL
Alejandro PerinJapanAnna Fali PROPOSAL
Leon OldroydBrazilAmy Elsner NEW
Emily WhobreyCanadaAsiya Javayant UNQUALIFIED
Emily WhobreyAustraliaBernardo Dominic RENEWAL
Jennifer AmigonFranceXuxue Feng UNQUALIFIED
Julie StensethUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin OstroskyItalyAmy Elsner RENEWAL
Claire TollnerFranceAnna Fali NEW
Ricardo GauchoAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyAustraliaOnyama Limba PROPOSAL
Jeanfrancois VenereUnited KingdomXuxue Feng NEGOTIATION
Johnson SergiArgentinaElwin Sharvill NEW
Jennifer AmigonIndiaOnyama Limba QUALIFIED
Julie StensethBrazilOnyama Limba QUALIFIED
Cody SaylorsIndiaAnna Fali PROPOSAL
Salvatore StockhamArgentinaIoni Bowcher PROPOSAL
Leon OldroydGermanyIvan Magalhaes QUALIFIED
Morrow RutaGermanyOnyama Limba RENEWAL
Deepesh ChuiIndiaXuxue Feng PROPOSAL
Munro FerenczGermanyIoni Bowcher PROPOSAL
Ashley DoeJapanIoni Bowcher PROPOSAL
Julie StensethBrazilStephen Shaw NEGOTIATION
Misaki RoysterBrazilAnna Fali RENEWAL
Claire TollnerBrazilBernardo Dominic NEW
Nicolas IturbideCanadaXuxue Feng RENEWAL
Ricardo GauchoAustraliaStephen Shaw NEGOTIATION
Ashley DoeBrazilAsiya Javayant QUALIFIED
Mayumi KolmetzRussiaStephen Shaw PROPOSAL
Smith GlickBrazilStephen Shaw QUALIFIED
Antonio CaudyJapanAnna Fali UNQUALIFIED
Alejandro PerinItalyIvan Magalhaes RENEWAL
Murillo MaletArgentinaAnna Fali QUALIFIED
Tony FollerItalyStephen Shaw UNQUALIFIED
Morrow RutaAustraliaIvan Magalhaes NEW
Mujtaba NickaBrazilOnyama Limba RENEWAL
Frozen Columns
Name
Mujtaba Nicka
Leon Oldroyd
Jones Vocelka
Mujtaba Nicka
Munro Ferencz
Salvatore Stockham
Leon Oldroyd
Jefferson Schemmer
Faith Gillian
Wickens Nestle
Emily Whobrey
Munro Ferencz
Octavia Malet
Greenwood Bolognia
Francesco Shinko
Leon Oldroyd
Mayumi Kolmetz
Kadeem Flosi
Smith Glick
Leja Caldarera
Leon Oldroyd
Izzy Garufi
Chavez Briddick
Tony Foller
Misaki Royster
Adams Morasca
Darci Poquette
Alejandro Perin
Clifford Rim
Emily Whobrey
Alejandro Perin
Smith Glick
Leja Caldarera
Faith Gillian
Mayumi Kolmetz
Alejandro Perin
Isabel Bowley
Darci Poquette
Jefferson Schemmer
Arvin Albares
Jefferson Schemmer
Antonio Caudy
Jones Vocelka
Cody Saylors
Jones Vocelka
Ivar Paprocki
Greenwood Bolognia
Emily Whobrey
Ricardo Gaucho
Francesco Shinko
IdCountryDate
1000Germany2026-04-20
1001Brazil2026-03-30
1002Brazil2026-04-09
1003Canada2026-04-25
1004Brazil2026-04-12
1005Australia2026-04-10
1006Canada2026-04-11
1007Spain2026-03-29
1008Japan2026-04-13
1009United Kingdom2026-04-25
1010Argentina2026-04-13
1011India2026-04-05
1012France2026-04-10
1013Spain2026-03-31
1014Russia2026-04-22
1015Argentina2026-03-27
1016France2026-04-04
1017Canada2026-04-19
1018Japan2026-04-01
1019Germany2026-03-30
1020Germany2026-04-10
1021France2026-04-03
1022Spain2026-04-12
1023Brazil2026-04-13
1024Brazil2026-04-12
1025Australia2026-04-09
1026Russia2026-04-02
1027Japan2026-04-22
1028Argentina2026-04-11
1029Spain2026-04-11
1030Brazil2026-04-10
1031Argentina2026-04-14
1032Brazil2026-04-22
1033France2026-03-27
1034Italy2026-04-08
1035Brazil2026-04-06
1036Canada2026-04-15
1037Russia2026-04-21
1038India2026-04-14
1039Argentina2026-04-25
1040Argentina2026-04-17
1041Russia2026-04-24
1042Brazil2026-04-03
1043Spain2026-03-27
1044Japan2026-04-12
1045United Kingdom2026-03-30
1046France2026-03-30
1047France2026-04-20
1048Russia2026-04-03
1049France2026-03-31

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Italy2026-04-13
Silvio Slusarski1001Italy2026-04-19
Chavez Briddick1002Spain2026-04-15
Silvio Slusarski1003Germany2026-04-06
Costa Dilliard1004Australia2026-04-21
Kaitlin Ostrosky1005Argentina2026-04-22
Alejandro Perin1006Australia2026-04-09
Maria Marrier1007Germany2026-04-17
Sinclair Waycott1008Argentina2026-04-15
Emily Whobrey1009Japan2026-04-11
Mayumi Kolmetz1010Japan2026-04-23
Arvin Albares1011Argentina2026-04-07
Silvio Slusarski1012Japan2026-04-19
Aditya Kusko1013France2026-04-21
Faith Gillian1014Spain2026-04-19
Nicolas Iturbide1015Russia2026-04-07
Francesco Shinko1016India2026-04-08
Julie Stenseth1017Japan2026-04-06
Wickens Nestle1018Italy2026-04-13
Morrow Ruta1019Australia2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresAustraliaIoni Bowcher NEW
Salvatore StockhamCanadaXuxue Feng PROPOSAL
Jeanfrancois VenereCanadaAnna Fali NEGOTIATION
Maisha RulapaughGermanyXuxue Feng UNQUALIFIED
Julie StensethArgentinaIvan Magalhaes PROPOSAL
James ButtJapanIvan Magalhaes RENEWAL
Johnson SergiSpainXuxue Feng QUALIFIED
Adams MorascaBrazilStephen Shaw PROPOSAL
Aditya KuskoGermanyIoni Bowcher RENEWAL
David DarakjyBrazilStephen Shaw QUALIFIED
Morrow RutaItalyAnna Fali NEW
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainIndiaIoni Bowcher NEGOTIATION
Salvatore StockhamAustraliaAnna Fali RENEWAL
Jefferson SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Morrow RutaIndiaOnyama Limba PROPOSAL
Leja CaldareraGermanyBernardo Dominic NEW
Chavez BriddickFranceIoni Bowcher NEW
Murillo MaletGermanyStephen Shaw NEGOTIATION
Octavia MaletGermanyIvan Magalhaes NEGOTIATION
Emily WhobreyArgentinaStephen Shaw UNQUALIFIED
Maisha RulapaughBrazilXuxue Feng NEGOTIATION
Misaki RoysterItalyElwin Sharvill RENEWAL
Mujtaba NickaCanadaElwin Sharvill PROPOSAL
Aditya KuskoSpainOnyama Limba NEGOTIATION
Alejandro PerinCanadaIoni Bowcher UNQUALIFIED
Arvin AlbaresSpainAnna Fali UNQUALIFIED
Leon OldroydRussiaElwin Sharvill NEW
Jeanfrancois VenereGermanyIvan Magalhaes PROPOSAL
Salvatore StockhamFranceOnyama Limba NEGOTIATION
Aruna FigeroaAustraliaAsiya Javayant UNQUALIFIED
Jones VocelkaArgentinaElwin Sharvill UNQUALIFIED
Nicolas IturbideGermanyAnna Fali UNQUALIFIED
Wickens NestleUnited KingdomStephen Shaw NEGOTIATION
Deepesh ChuiIndiaAsiya Javayant NEW
Silvio SlusarskiAustraliaIoni Bowcher RENEWAL
Cody SaylorsIndiaIoni Bowcher QUALIFIED
Isabel BowleyIndiaXuxue Feng QUALIFIED
Faith GillianAustraliaAsiya Javayant NEW
Smith GlickFranceIoni Bowcher 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>