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
Silvio SlusarskiArgentinaIoni Bowcher QUALIFIED
Chavez BriddickArgentinaStephen Shaw RENEWAL
Murillo MaletIndiaStephen Shaw PROPOSAL
Stacey MacleadAustraliaXuxue Feng QUALIFIED
Leja CaldareraGermanyIoni Bowcher PROPOSAL
Costa DilliardSpainAsiya Javayant RENEWAL
Isabel BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Juan WieserItalyXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaAmy Elsner NEW
Aika InouyeCanadaAnna Fali NEGOTIATION
Juan WieserFranceIvan Magalhaes QUALIFIED
Jones VocelkaAustraliaStephen Shaw RENEWAL
Wickens NestleIndiaXuxue Feng UNQUALIFIED
Ashley DoeIndiaAnna Fali UNQUALIFIED
Ashley DoeGermanyIoni Bowcher NEGOTIATION
David DarakjyBrazilBernardo Dominic NEGOTIATION
Octavia MaletFranceAsiya Javayant PROPOSAL
Greenwood BologniaArgentinaElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaAmy Elsner NEW
Julie StensethBrazilAmy Elsner QUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Deepesh ChuiJapanBernardo Dominic UNQUALIFIED
Arvin AlbaresBrazilIvan Magalhaes NEW
Darci PoquetteIndiaIoni Bowcher RENEWAL
Munro FerenczArgentinaIvan Magalhaes QUALIFIED
Octavia MaletArgentinaBernardo Dominic NEW
Munro FerenczItalyAmy Elsner RENEWAL
Julie StensethSpainAnna Fali NEGOTIATION
Jeanfrancois VenereAustraliaOnyama Limba NEW
Chavez BriddickItalyOnyama Limba RENEWAL
Arvin AlbaresFranceOnyama Limba PROPOSAL
Jones VocelkaSpainStephen Shaw PROPOSAL
Jefferson SchemmerIndiaXuxue Feng QUALIFIED
Kaitlin OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Jones VocelkaIndiaOnyama Limba UNQUALIFIED
Nicolas IturbideItalyBernardo Dominic NEW
Julie StensethUnited KingdomStephen Shaw NEW
Isabel BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Juan WieserRussiaIoni Bowcher QUALIFIED
Leja CaldareraGermanyBernardo Dominic UNQUALIFIED
Faith GillianBrazilAsiya Javayant NEGOTIATION
Leon OldroydItalyAnna Fali RENEWAL
Costa DilliardBrazilAmy Elsner PROPOSAL
Ivar PaprockiGermanyElwin Sharvill NEGOTIATION
Nicolas IturbideJapanXuxue Feng NEGOTIATION
Greenwood BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson SchemmerItalyAnna Fali PROPOSAL
Faith GillianAustraliaStephen Shaw PROPOSAL
Francesco ShinkoArgentinaAmy Elsner PROPOSAL
Johnson SergiArgentinaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith GillianAustraliaAmy Elsner RENEWAL
Maisha RulapaughBrazilStephen Shaw QUALIFIED
Darci PoquetteRussiaAmy Elsner NEGOTIATION
Murillo MaletJapanIvan Magalhaes NEW
Leon OldroydIndiaIvan Magalhaes NEW
Ricardo GauchoItalyXuxue Feng NEGOTIATION
Julie StensethItalyXuxue Feng QUALIFIED
Aditya KuskoUnited KingdomOnyama Limba QUALIFIED
Clifford RimFranceAnna Fali NEW
Maria MarrierGermanyXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeSpain2026-05-02King, Christopher A Esq NEW29Amy Elsner
1001Juan WieserCanada2026-05-05Feiner Bros UNQUALIFIED3Stephen Shaw
1002Wickens NestleBrazil2026-05-06Feiner Bros NEW93Bernardo Dominic
1003Jones VocelkaBrazil2026-05-14Rousseaux, Michael Esq NEGOTIATION58Bernardo Dominic
1004Greenwood BologniaArgentina2026-04-30King, Christopher A Esq NEGOTIATION81Xuxue Feng
1005Wickens NestleJapan2026-05-01Chapman, Ross E Esq QUALIFIED25Onyama Limba
1006Kadeem FlosiGermany2026-05-22Chanay, Jeffrey A Esq PROPOSAL67Stephen Shaw
1007Juan WieserJapan2026-05-22Chanay, Jeffrey A Esq QUALIFIED39Amy Elsner
1008Chavez BriddickGermany2026-04-23Feltz Printing Service NEGOTIATION80Xuxue Feng
1009Costa DilliardItaly2026-05-05Printing Dimensions RENEWAL68Bernardo Dominic
1010Kadeem FlosiItaly2026-05-07King, Christopher A Esq PROPOSAL62Amy Elsner
1011Faith GillianAustralia2026-05-09Feiner Bros QUALIFIED43Amy Elsner
1012Faith GillianFrance2026-05-01Truhlar And Truhlar Attys PROPOSAL76Anna Fali
1013Julie StensethRussia2026-04-24Printing Dimensions QUALIFIED11Anna Fali
1014Sinclair WaycottBrazil2026-05-08Buckley Miller Wright NEGOTIATION82Xuxue Feng
1015Mujtaba NickaJapan2026-05-16Commercial Press UNQUALIFIED95Onyama Limba
1016Ashley DoeIndia2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED34Xuxue Feng
1017Munro FerenczJapan2026-04-23Rousseaux, Michael Esq QUALIFIED81Bernardo Dominic
1018Salvatore StockhamAustralia2026-05-13Chemel, James L Cpa QUALIFIED97Ioni Bowcher
1019Emily WhobreyFrance2026-05-13Chanay, Jeffrey A Esq RENEWAL28Elwin Sharvill
1020Greenwood BologniaRussia2026-04-28Dorl, James J Esq RENEWAL6Onyama Limba
1021Tony FollerUnited Kingdom2026-05-14Commercial Press UNQUALIFIED4Elwin Sharvill
1022Aruna FigeroaBrazil2026-05-03Rangoni Of Florence NEGOTIATION43Bernardo Dominic
1023Kadeem FlosiCanada2026-04-24Morlong Associates NEW64Elwin Sharvill
1024Munro FerenczUnited Kingdom2026-05-12Benton, John B Jr NEW49Onyama Limba
1025Darci PoquetteGermany2026-05-11Truhlar And Truhlar Attys PROPOSAL38Ioni Bowcher
1026Deepesh ChuiSpain2026-04-29Printing Dimensions QUALIFIED97Ivan Magalhaes
1027Stacey MacleadCanada2026-05-20Chanay, Jeffrey A Esq NEGOTIATION91Bernardo Dominic
1028Jefferson SchemmerGermany2026-05-07Benton, John B Jr QUALIFIED93Ivan Magalhaes
1029Isabel BowleyCanada2026-05-17Morlong Associates RENEWAL10Xuxue Feng
1030Francesco ShinkoItaly2026-04-27Benton, John B Jr PROPOSAL2Elwin Sharvill
1031Morrow RutaFrance2026-04-24Chapman, Ross E Esq PROPOSAL63Xuxue Feng
1032Leja CaldareraFrance2026-05-14Feiner Bros RENEWAL99Asiya Javayant
1033Clifford RimCanada2026-04-27King, Christopher A Esq QUALIFIED13Ioni Bowcher
1034Salvatore StockhamJapan2026-04-30Rangoni Of Florence PROPOSAL86Stephen Shaw
1035Antonio CaudySpain2026-05-20Chemel, James L Cpa UNQUALIFIED57Asiya Javayant
1036Kadeem FlosiAustralia2026-05-11Buckley Miller Wright UNQUALIFIED92Xuxue Feng
1037James ButtAustralia2026-05-10Feltz Printing Service QUALIFIED3Ioni Bowcher
1038Stacey MacleadItaly2026-05-10Printing Dimensions UNQUALIFIED76Bernardo Dominic
1039Aditya KuskoArgentina2026-05-15Feltz Printing Service NEW43Elwin Sharvill
1040Maisha RulapaughIndia2026-05-01Morlong Associates PROPOSAL34Elwin Sharvill
1041Morrow RutaRussia2026-05-12Commercial Press NEW30Elwin Sharvill
1042Jefferson SchemmerFrance2026-05-11Feiner Bros RENEWAL92Asiya Javayant
1043Stacey MacleadSpain2026-04-24Dorl, James J Esq PROPOSAL71Amy Elsner
1044Clifford RimRussia2026-04-29Dorl, James J Esq QUALIFIED11Stephen Shaw
1045Leja CaldareraFrance2026-05-16Commercial Press UNQUALIFIED54Stephen Shaw
1046Stacey MacleadCanada2026-04-30Truhlar And Truhlar Attys UNQUALIFIED79Elwin Sharvill
1047Adams MorascaJapan2026-04-29Chanay, Jeffrey A Esq PROPOSAL51Onyama Limba
1048Leja CaldareraIndia2026-05-11Commercial Press UNQUALIFIED72Xuxue Feng
1049David DarakjyRussia2026-05-22Buckley Miller Wright QUALIFIED59Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiRussiaBernardo Dominic NEGOTIATION
Aruna FigeroaFranceAnna Fali NEGOTIATION
Alejandro PerinSpainElwin Sharvill RENEWAL
Mayumi KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Munro FerenczCanadaAsiya Javayant PROPOSAL
Antonio CaudyIndiaBernardo Dominic PROPOSAL
Mujtaba NickaIndiaIoni Bowcher UNQUALIFIED
Juan WieserJapanXuxue Feng RENEWAL
Stacey MacleadArgentinaIoni Bowcher QUALIFIED
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Emily WhobreyJapanIvan Magalhaes UNQUALIFIED
David DarakjyAustraliaBernardo Dominic NEW
Salvatore StockhamIndiaOnyama Limba PROPOSAL
Isabel BowleyItalyBernardo Dominic PROPOSAL
Faith GillianFranceBernardo Dominic RENEWAL
Alejandro PerinIndiaOnyama Limba NEGOTIATION
Ashley DoeSpainAmy Elsner NEW
Aditya KuskoCanadaIoni Bowcher PROPOSAL
Maria MarrierItalyXuxue Feng QUALIFIED
Mayumi KolmetzItalyOnyama Limba NEGOTIATION
Jefferson SchemmerGermanyBernardo Dominic RENEWAL
Jeanfrancois VenereRussiaElwin Sharvill RENEWAL
Francesco ShinkoSpainAsiya Javayant QUALIFIED
Francesco ShinkoCanadaIvan Magalhaes PROPOSAL
Murillo MaletIndiaXuxue Feng UNQUALIFIED
Faith GillianAustraliaStephen Shaw NEGOTIATION
Octavia MaletUnited KingdomBernardo Dominic UNQUALIFIED
Izzy GarufiRussiaOnyama Limba PROPOSAL
Smith GlickSpainAsiya Javayant UNQUALIFIED
David DarakjyCanadaElwin Sharvill QUALIFIED
Tony FollerSpainAmy Elsner UNQUALIFIED
Leja CaldareraJapanXuxue Feng QUALIFIED
Kaitlin OstroskyBrazilBernardo Dominic NEW
Ashley DoeFranceAmy Elsner PROPOSAL
Maria MarrierCanadaAmy Elsner NEGOTIATION
Cody SaylorsFranceBernardo Dominic NEGOTIATION
Cody SaylorsJapanIoni Bowcher QUALIFIED
Francesco ShinkoFranceStephen Shaw NEGOTIATION
Jeanfrancois VenereCanadaIoni Bowcher PROPOSAL
Cody SaylorsUnited KingdomStephen Shaw NEGOTIATION
Maisha RulapaughFranceIvan Magalhaes NEGOTIATION
Ashley DoeJapanElwin Sharvill NEGOTIATION
Juan WieserAustraliaAsiya Javayant RENEWAL
Aika InouyeSpainStephen Shaw NEGOTIATION
Maisha RulapaughArgentinaIoni Bowcher QUALIFIED
Wickens NestleRussiaElwin Sharvill NEW
Kaitlin OstroskySpainAsiya Javayant QUALIFIED
Leja CaldareraSpainStephen Shaw QUALIFIED
Ricardo GauchoAustraliaAsiya Javayant NEW
Salvatore StockhamRussiaAmy Elsner PROPOSAL
Frozen Columns
Name
Cody Saylors
Kadeem Flosi
David Darakjy
Adams Morasca
Jefferson Schemmer
Ashley Doe
Isabel Bowley
David Darakjy
Chavez Briddick
Rodrigues Campain
Leja Caldarera
Jennifer Amigon
Munro Ferencz
Darci Poquette
Munro Ferencz
Salvatore Stockham
Wickens Nestle
Izzy Garufi
Adams Morasca
Kaitlin Ostrosky
Jones Vocelka
Tony Foller
Aruna Figeroa
Maria Marrier
Jefferson Schemmer
Jones Vocelka
Stacey Maclead
Maisha Rulapaugh
Julie Stenseth
Leja Caldarera
Johnson Sergi
Deepesh Chui
Leon Oldroyd
Wickens Nestle
Emily Whobrey
Silvio Slusarski
Leja Caldarera
Ricardo Gaucho
Munro Ferencz
Silvio Slusarski
Julie Stenseth
Arvin Albares
Sinclair Waycott
James Butt
Munro Ferencz
Silvio Slusarski
Jones Vocelka
Misaki Royster
Izzy Garufi
Rodrigues Campain
IdCountryDate
1000Argentina2026-04-26
1001Canada2026-05-11
1002Italy2026-05-19
1003Russia2026-05-16
1004Russia2026-05-22
1005Australia2026-05-22
1006Brazil2026-04-30
1007Argentina2026-05-16
1008Canada2026-05-01
1009France2026-05-18
1010Brazil2026-05-03
1011Brazil2026-05-21
1012Brazil2026-04-28
1013Argentina2026-05-02
1014India2026-05-09
1015Japan2026-05-10
1016United Kingdom2026-05-17
1017Argentina2026-05-22
1018India2026-05-03
1019India2026-04-30
1020Italy2026-04-23
1021Brazil2026-04-30
1022Argentina2026-05-02
1023United Kingdom2026-05-01
1024Japan2026-05-01
1025Japan2026-05-08
1026France2026-05-03
1027Russia2026-05-11
1028Japan2026-05-05
1029India2026-04-29
1030Germany2026-05-07
1031United Kingdom2026-04-27
1032Germany2026-04-30
1033Spain2026-05-08
1034Australia2026-05-02
1035Russia2026-05-06
1036Japan2026-05-08
1037Italy2026-05-12
1038Canada2026-05-06
1039Japan2026-04-28
1040United Kingdom2026-05-03
1041Canada2026-04-24
1042Argentina2026-05-13
1043France2026-05-02
1044United Kingdom2026-05-09
1045Italy2026-05-08
1046Canada2026-05-22
1047France2026-05-15
1048Australia2026-05-10
1049Australia2026-05-02

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000Germany2026-05-20
Jefferson Schemmer1001France2026-04-26
Nicolas Iturbide1002Italy2026-05-19
Jeanfrancois Venere1003United Kingdom2026-05-03
Misaki Royster1004Australia2026-05-09
Stacey Maclead1005Brazil2026-04-23
Stacey Maclead1006Japan2026-05-15
Tony Foller1007Argentina2026-05-08
Clifford Rim1008Spain2026-04-25
Antonio Caudy1009Argentina2026-04-29
Faith Gillian1010Japan2026-05-01
Ivar Paprocki1011France2026-05-17
Emily Whobrey1012Australia2026-05-01
Smith Glick1013Germany2026-05-01
Stacey Maclead1014Argentina2026-05-10
Adams Morasca1015Russia2026-05-07
Ricardo Gaucho1016Canada2026-05-16
Sinclair Waycott1017Russia2026-05-02
Sinclair Waycott1018Germany2026-04-30
Murillo Malet1019France2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserCanadaOnyama Limba PROPOSAL
Salvatore StockhamArgentinaIoni Bowcher QUALIFIED
Octavia MaletGermanyIvan Magalhaes QUALIFIED
Ashley DoeJapanOnyama Limba RENEWAL
Kadeem FlosiRussiaAmy Elsner UNQUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng PROPOSAL
Chavez BriddickGermanyElwin Sharvill NEW
Emily WhobreyFranceAsiya Javayant NEGOTIATION
Aditya KuskoBrazilXuxue Feng NEW
Ashley DoeFranceElwin Sharvill NEW
Rodrigues CampainJapanAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaStephen Shaw UNQUALIFIED
Deepesh ChuiRussiaAsiya Javayant PROPOSAL
Emily WhobreyJapanElwin Sharvill PROPOSAL
Silvio SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Tony FollerCanadaXuxue Feng NEGOTIATION
Julie StensethFranceStephen Shaw QUALIFIED
Jennifer AmigonCanadaIvan Magalhaes UNQUALIFIED
Maisha RulapaughBrazilIoni Bowcher QUALIFIED
Misaki RoysterArgentinaAnna Fali UNQUALIFIED
Ricardo GauchoArgentinaAnna Fali NEGOTIATION
Rodrigues CampainGermanyIvan Magalhaes PROPOSAL
Isabel BowleyItalyStephen Shaw NEW
Johnson SergiFranceXuxue Feng QUALIFIED
Ricardo GauchoBrazilIvan Magalhaes UNQUALIFIED
Silvio SlusarskiAustraliaAmy Elsner QUALIFIED
Izzy GarufiRussiaStephen Shaw PROPOSAL
Faith GillianUnited KingdomAsiya Javayant NEW
Alejandro PerinCanadaXuxue Feng UNQUALIFIED
Adams MorascaUnited KingdomAsiya Javayant RENEWAL
Cody SaylorsAustraliaAmy Elsner RENEWAL
Misaki RoysterRussiaIvan Magalhaes RENEWAL
Clifford RimGermanyIoni Bowcher QUALIFIED
Aditya KuskoSpainOnyama Limba NEW
Antonio CaudyItalyStephen Shaw NEGOTIATION
Aruna FigeroaArgentinaBernardo Dominic UNQUALIFIED
Johnson SergiArgentinaElwin Sharvill UNQUALIFIED
Deepesh ChuiUnited KingdomIoni Bowcher PROPOSAL
Aika InouyeBrazilAmy Elsner NEW
Salvatore StockhamBrazilElwin Sharvill 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>