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 MarrierJapanIoni Bowcher NEGOTIATION
Murillo MaletGermanyIvan Magalhaes QUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant RENEWAL
Faith GillianGermanyAnna Fali NEGOTIATION
Darci PoquetteCanadaElwin Sharvill QUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant QUALIFIED
Izzy GarufiRussiaOnyama Limba QUALIFIED
Aruna FigeroaBrazilStephen Shaw UNQUALIFIED
Kadeem FlosiRussiaAmy Elsner NEGOTIATION
Johnson SergiFranceElwin Sharvill UNQUALIFIED
Ashley DoeSpainIvan Magalhaes RENEWAL
Jones VocelkaFranceIoni Bowcher UNQUALIFIED
Johnson SergiFranceElwin Sharvill NEGOTIATION
Mujtaba NickaBrazilAmy Elsner RENEWAL
Faith GillianRussiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiBrazilAnna Fali NEW
Munro FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Silvio SlusarskiUnited KingdomStephen Shaw QUALIFIED
Tony FollerFranceAmy Elsner RENEWAL
Ashley DoeJapanAmy Elsner UNQUALIFIED
Jennifer AmigonIndiaXuxue Feng PROPOSAL
David DarakjyGermanyAsiya Javayant PROPOSAL
Munro FerenczGermanyOnyama Limba NEW
Adams MorascaItalyAnna Fali NEGOTIATION
Mujtaba NickaIndiaOnyama Limba PROPOSAL
Kadeem FlosiAustraliaAsiya Javayant NEGOTIATION
Smith GlickBrazilElwin Sharvill PROPOSAL
Munro FerenczCanadaAsiya Javayant UNQUALIFIED
Izzy GarufiCanadaIvan Magalhaes UNQUALIFIED
Tony FollerSpainAmy Elsner RENEWAL
Wickens NestleItalyIvan Magalhaes RENEWAL
Mayumi KolmetzGermanyAsiya Javayant PROPOSAL
Silvio SlusarskiRussiaAmy Elsner QUALIFIED
Silvio SlusarskiFranceIoni Bowcher QUALIFIED
James ButtUnited KingdomOnyama Limba QUALIFIED
Aika InouyeUnited KingdomElwin Sharvill PROPOSAL
Cody SaylorsGermanyAmy Elsner NEGOTIATION
Jeanfrancois VenereUnited KingdomXuxue Feng NEW
Arvin AlbaresRussiaOnyama Limba QUALIFIED
Isabel BowleyBrazilAnna Fali NEGOTIATION
Rodrigues CampainFranceStephen Shaw RENEWAL
Maisha RulapaughSpainOnyama Limba PROPOSAL
Adams MorascaJapanAnna Fali NEGOTIATION
Alejandro PerinGermanyXuxue Feng PROPOSAL
Nicolas IturbideArgentinaAnna Fali NEGOTIATION
Julie StensethSpainXuxue Feng PROPOSAL
Jefferson SchemmerBrazilXuxue Feng RENEWAL
Maria MarrierIndiaIoni Bowcher RENEWAL
Ivar PaprockiGermanyXuxue Feng NEW
Deepesh ChuiUnited KingdomXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiGermanyAmy Elsner UNQUALIFIED
Antonio CaudyCanadaElwin Sharvill RENEWAL
Leja CaldareraAustraliaAmy Elsner RENEWAL
Octavia MaletSpainIoni Bowcher UNQUALIFIED
Kadeem FlosiSpainBernardo Dominic PROPOSAL
Misaki RoysterAustraliaAmy Elsner UNQUALIFIED
Aika InouyeItalyIvan Magalhaes UNQUALIFIED
Aditya KuskoItalyBernardo Dominic NEGOTIATION
Arvin AlbaresItalyElwin Sharvill NEGOTIATION
Kadeem FlosiCanadaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleAustralia2026-04-12Morlong Associates NEGOTIATION7Anna Fali
1001Clifford RimRussia2026-03-31Dorl, James J Esq QUALIFIED96Ivan Magalhaes
1002Johnson SergiItaly2026-04-23King, Christopher A Esq NEW58Onyama Limba
1003Ricardo GauchoCanada2026-03-31Commercial Press PROPOSAL6Bernardo Dominic
1004Francesco ShinkoArgentina2026-04-29Commercial Press NEW36Bernardo Dominic
1005Kaitlin OstroskyItaly2026-04-06Truhlar And Truhlar Attys RENEWAL47Bernardo Dominic
1006Stacey MacleadBrazil2026-04-16Rousseaux, Michael Esq RENEWAL42Bernardo Dominic
1007Salvatore StockhamSpain2026-04-20Chemel, James L Cpa UNQUALIFIED42Elwin Sharvill
1008Aditya KuskoRussia2026-04-15Feiner Bros PROPOSAL70Asiya Javayant
1009Jeanfrancois VenereBrazil2026-04-24Morlong Associates NEW53Ivan Magalhaes
1010Wickens NestleJapan2026-04-11Chapman, Ross E Esq UNQUALIFIED68Ioni Bowcher
1011Costa DilliardAustralia2026-04-17Morlong Associates NEGOTIATION49Bernardo Dominic
1012Leon OldroydBrazil2026-04-01Morlong Associates RENEWAL87Stephen Shaw
1013James ButtBrazil2026-04-07King, Christopher A Esq RENEWAL91Elwin Sharvill
1014Jones VocelkaSpain2026-04-26Morlong Associates PROPOSAL91Anna Fali
1015Emily WhobreyBrazil2026-04-02King, Christopher A Esq RENEWAL62Onyama Limba
1016Salvatore StockhamCanada2026-04-29Dorl, James J Esq RENEWAL26Amy Elsner
1017Chavez BriddickUnited Kingdom2026-04-16Chanay, Jeffrey A Esq NEW5Ioni Bowcher
1018Claire TollnerIndia2026-04-13Chanay, Jeffrey A Esq NEW60Anna Fali
1019Arvin AlbaresCanada2026-04-07Chapman, Ross E Esq RENEWAL54Xuxue Feng
1020Kadeem FlosiSpain2026-04-12Chanay, Jeffrey A Esq RENEWAL2Ivan Magalhaes
1021Silvio SlusarskiAustralia2026-04-05Benton, John B Jr NEW20Onyama Limba
1022Leja CaldareraAustralia2026-04-18Benton, John B Jr QUALIFIED86Onyama Limba
1023Izzy GarufiSpain2026-04-19Dorl, James J Esq NEW47Bernardo Dominic
1024Julie StensethAustralia2026-04-16Rousseaux, Michael Esq NEGOTIATION42Amy Elsner
1025Aika InouyeIndia2026-04-04Chanay, Jeffrey A Esq UNQUALIFIED48Asiya Javayant
1026Morrow RutaJapan2026-04-24Benton, John B Jr NEGOTIATION64Stephen Shaw
1027Jeanfrancois VenereBrazil2026-04-27Chanay, Jeffrey A Esq NEW39Elwin Sharvill
1028Octavia MaletIndia2026-04-27Morlong Associates QUALIFIED30Ioni Bowcher
1029Aruna FigeroaArgentina2026-04-15Truhlar And Truhlar Attys RENEWAL72Amy Elsner
1030Arvin AlbaresIndia2026-04-18Morlong Associates RENEWAL88Ivan Magalhaes
1031Wickens NestleArgentina2026-04-17Commercial Press PROPOSAL19Xuxue Feng
1032Clifford RimRussia2026-04-15Dorl, James J Esq QUALIFIED62Bernardo Dominic
1033Jennifer AmigonIndia2026-04-21Chemel, James L Cpa RENEWAL89Ivan Magalhaes
1034Clifford RimSpain2026-04-22Chemel, James L Cpa NEW39Ioni Bowcher
1035Octavia MaletJapan2026-04-02Feltz Printing Service UNQUALIFIED10Anna Fali
1036Francesco ShinkoBrazil2026-04-07Rousseaux, Michael Esq PROPOSAL24Ioni Bowcher
1037Kaitlin OstroskyRussia2026-04-25Rousseaux, Michael Esq QUALIFIED51Elwin Sharvill
1038Julie StensethUnited Kingdom2026-04-18Morlong Associates PROPOSAL91Onyama Limba
1039Kaitlin OstroskyRussia2026-04-07King, Christopher A Esq UNQUALIFIED97Bernardo Dominic
1040Cody SaylorsArgentina2026-04-06Buckley Miller Wright NEGOTIATION79Ivan Magalhaes
1041Kadeem FlosiGermany2026-04-06Printing Dimensions PROPOSAL17Bernardo Dominic
1042Maria MarrierSpain2026-04-14Feltz Printing Service NEGOTIATION90Stephen Shaw
1043David DarakjyJapan2026-04-19Chapman, Ross E Esq QUALIFIED2Onyama Limba
1044Claire TollnerCanada2026-04-22Benton, John B Jr PROPOSAL99Elwin Sharvill
1045Murillo MaletUnited Kingdom2026-04-07Feiner Bros UNQUALIFIED20Amy Elsner
1046Chavez BriddickUnited Kingdom2026-04-24Printing Dimensions UNQUALIFIED52Anna Fali
1047Aditya KuskoItaly2026-04-06Chanay, Jeffrey A Esq PROPOSAL23Onyama Limba
1048Leon OldroydJapan2026-04-08Feltz Printing Service UNQUALIFIED60Ivan Magalhaes
1049Izzy GarufiArgentina2026-04-28King, Christopher A Esq PROPOSAL95Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerSpainBernardo Dominic QUALIFIED
Isabel BowleyAustraliaOnyama Limba NEGOTIATION
Arvin AlbaresSpainAmy Elsner UNQUALIFIED
Munro FerenczJapanElwin Sharvill QUALIFIED
Misaki RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Julie StensethGermanyElwin Sharvill RENEWAL
Tony FollerRussiaAsiya Javayant RENEWAL
Jeanfrancois VenereRussiaIvan Magalhaes NEW
Costa DilliardJapanOnyama Limba NEW
Costa DilliardIndiaIoni Bowcher RENEWAL
Deepesh ChuiFranceOnyama Limba NEGOTIATION
Chavez BriddickGermanyXuxue Feng UNQUALIFIED
Ashley DoeAustraliaStephen Shaw PROPOSAL
Murillo MaletGermanyAsiya Javayant RENEWAL
Darci PoquetteCanadaBernardo Dominic QUALIFIED
Antonio CaudyGermanyAnna Fali PROPOSAL
Mayumi KolmetzGermanyStephen Shaw UNQUALIFIED
Faith GillianAustraliaAsiya Javayant RENEWAL
Salvatore StockhamJapanXuxue Feng NEW
Leja CaldareraItalyElwin Sharvill RENEWAL
Aruna FigeroaUnited KingdomAsiya Javayant QUALIFIED
Faith GillianBrazilIoni Bowcher NEW
Salvatore StockhamGermanyAsiya Javayant NEW
Jefferson SchemmerRussiaBernardo Dominic NEW
Maisha RulapaughRussiaBernardo Dominic NEGOTIATION
Aika InouyeRussiaAsiya Javayant NEW
Claire TollnerFranceXuxue Feng PROPOSAL
Isabel BowleyItalyIoni Bowcher NEGOTIATION
Nicolas IturbideRussiaStephen Shaw QUALIFIED
Stacey MacleadArgentinaAnna Fali UNQUALIFIED
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
James ButtArgentinaStephen Shaw RENEWAL
Smith GlickAustraliaBernardo Dominic PROPOSAL
Tony FollerItalyXuxue Feng PROPOSAL
Ashley DoeFranceAmy Elsner QUALIFIED
Cody SaylorsBrazilAnna Fali PROPOSAL
Smith GlickAustraliaAnna Fali QUALIFIED
Johnson SergiUnited KingdomBernardo Dominic QUALIFIED
Salvatore StockhamBrazilAsiya Javayant QUALIFIED
Murillo MaletBrazilIvan Magalhaes RENEWAL
Sinclair WaycottItalyAnna Fali PROPOSAL
Costa DilliardSpainIvan Magalhaes RENEWAL
James ButtIndiaAsiya Javayant NEGOTIATION
Juan WieserCanadaAsiya Javayant NEW
Jeanfrancois VenereRussiaAnna Fali NEGOTIATION
Ivar PaprockiUnited KingdomIoni Bowcher NEW
Jennifer AmigonIndiaIoni Bowcher UNQUALIFIED
Mayumi KolmetzFranceXuxue Feng NEW
Faith GillianItalyAnna Fali QUALIFIED
Morrow RutaCanadaXuxue Feng PROPOSAL
Frozen Columns
Name
Aika Inouye
Faith Gillian
Darci Poquette
Cody Saylors
Leja Caldarera
Morrow Ruta
Jeanfrancois Venere
Arvin Albares
James Butt
Isabel Bowley
Alejandro Perin
Aika Inouye
Jefferson Schemmer
Jones Vocelka
Arvin Albares
Faith Gillian
Izzy Garufi
Claire Tollner
Francesco Shinko
Costa Dilliard
Jeanfrancois Venere
Costa Dilliard
Kaitlin Ostrosky
Nicolas Iturbide
Ricardo Gaucho
David Darakjy
Faith Gillian
Chavez Briddick
Smith Glick
Sinclair Waycott
Murillo Malet
Francesco Shinko
Nicolas Iturbide
Aika Inouye
Silvio Slusarski
Adams Morasca
Jeanfrancois Venere
Misaki Royster
Octavia Malet
Izzy Garufi
Faith Gillian
Johnson Sergi
Munro Ferencz
Leja Caldarera
Arvin Albares
Darci Poquette
Costa Dilliard
Isabel Bowley
Antonio Caudy
Nicolas Iturbide
IdCountryDate
1000France2026-04-12
1001Brazil2026-04-20
1002Brazil2026-04-15
1003Japan2026-04-29
1004Italy2026-03-31
1005Italy2026-03-31
1006Argentina2026-04-12
1007Brazil2026-04-04
1008Australia2026-04-25
1009Australia2026-04-08
1010Australia2026-04-01
1011India2026-04-08
1012Japan2026-04-29
1013Italy2026-03-31
1014Canada2026-04-10
1015Australia2026-03-31
1016Italy2026-03-31
1017Argentina2026-04-21
1018Japan2026-04-25
1019India2026-04-16
1020Russia2026-04-10
1021Brazil2026-04-20
1022France2026-04-07
1023Argentina2026-04-13
1024Australia2026-04-19
1025Australia2026-04-06
1026Brazil2026-04-11
1027Spain2026-03-31
1028United Kingdom2026-04-15
1029Italy2026-04-07
1030Russia2026-04-06
1031Japan2026-04-04
1032Spain2026-04-07
1033Canada2026-04-16
1034Australia2026-04-25
1035Japan2026-04-15
1036Russia2026-04-10
1037Argentina2026-04-22
1038Russia2026-04-24
1039Japan2026-04-20
1040India2026-04-05
1041Italy2026-04-04
1042Germany2026-04-18
1043Australia2026-04-24
1044Argentina2026-04-01
1045Argentina2026-04-20
1046Brazil2026-04-01
1047Argentina2026-04-06
1048France2026-04-20
1049Spain2026-04-29

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000United Kingdom2026-04-16
Ashley Doe1001India2026-04-27
Juan Wieser1002Canada2026-04-03
Jones Vocelka1003Spain2026-04-08
Mayumi Kolmetz1004Canada2026-04-20
Rodrigues Campain1005Spain2026-04-06
Cody Saylors1006Australia2026-04-07
Emily Whobrey1007United Kingdom2026-03-31
Izzy Garufi1008Australia2026-04-09
David Darakjy1009Japan2026-04-06
Izzy Garufi1010Brazil2026-04-21
Octavia Malet1011Italy2026-03-31
Silvio Slusarski1012Germany2026-04-13
Julie Stenseth1013Brazil2026-04-02
Ashley Doe1014Brazil2026-04-07
Wickens Nestle1015Brazil2026-04-04
Juan Wieser1016India2026-04-16
Kaitlin Ostrosky1017Spain2026-04-29
Darci Poquette1018United Kingdom2026-04-15
Alejandro Perin1019Australia2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinArgentinaAmy Elsner UNQUALIFIED
Mayumi KolmetzCanadaAsiya Javayant QUALIFIED
Faith GillianCanadaXuxue Feng NEGOTIATION
Leja CaldareraFranceBernardo Dominic QUALIFIED
Deepesh ChuiIndiaXuxue Feng NEW
Faith GillianIndiaStephen Shaw RENEWAL
Leja CaldareraJapanIoni Bowcher UNQUALIFIED
Adams MorascaGermanyIoni Bowcher NEGOTIATION
Deepesh ChuiIndiaElwin Sharvill NEGOTIATION
Mujtaba NickaRussiaXuxue Feng PROPOSAL
Wickens NestleItalyAnna Fali QUALIFIED
Ricardo GauchoRussiaIvan Magalhaes RENEWAL
Jefferson SchemmerIndiaXuxue Feng NEGOTIATION
Maria MarrierFranceIoni Bowcher QUALIFIED
Misaki RoysterSpainXuxue Feng NEGOTIATION
Misaki RoysterSpainOnyama Limba NEGOTIATION
Emily WhobreyFranceAmy Elsner NEGOTIATION
Darci PoquetteUnited KingdomBernardo Dominic QUALIFIED
Darci PoquetteRussiaAnna Fali NEGOTIATION
Aika InouyeBrazilXuxue Feng NEGOTIATION
Salvatore StockhamArgentinaAsiya Javayant NEW
Faith GillianJapanElwin Sharvill PROPOSAL
Silvio SlusarskiBrazilIoni Bowcher QUALIFIED
Kadeem FlosiIndiaElwin Sharvill NEGOTIATION
Jeanfrancois VenereUnited KingdomXuxue Feng PROPOSAL
Aruna FigeroaRussiaOnyama Limba UNQUALIFIED
Darci PoquetteGermanyAmy Elsner QUALIFIED
Leja CaldareraSpainAnna Fali QUALIFIED
Francesco ShinkoSpainXuxue Feng UNQUALIFIED
Adams MorascaRussiaIoni Bowcher UNQUALIFIED
Arvin AlbaresBrazilAsiya Javayant QUALIFIED
Ashley DoeAustraliaBernardo Dominic PROPOSAL
Kaitlin OstroskyRussiaElwin Sharvill PROPOSAL
Jennifer AmigonGermanyAnna Fali QUALIFIED
Chavez BriddickSpainAsiya Javayant PROPOSAL
Salvatore StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Juan WieserAustraliaIoni Bowcher PROPOSAL
Adams MorascaIndiaStephen Shaw UNQUALIFIED
Leon OldroydFranceIoni Bowcher PROPOSAL
Misaki RoysterAustraliaBernardo Dominic NEW

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