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
Costa DilliardSpainAsiya Javayant PROPOSAL
Julie StensethArgentinaAmy Elsner QUALIFIED
Tony FollerIndiaBernardo Dominic PROPOSAL
Sinclair WaycottJapanStephen Shaw RENEWAL
Murillo MaletBrazilElwin Sharvill NEW
Claire TollnerFranceXuxue Feng PROPOSAL
Aika InouyeRussiaAnna Fali UNQUALIFIED
Kaitlin OstroskyFranceElwin Sharvill UNQUALIFIED
Ashley DoeSpainElwin Sharvill UNQUALIFIED
Salvatore StockhamSpainAsiya Javayant NEW
Mayumi KolmetzIndiaBernardo Dominic UNQUALIFIED
Leja CaldareraAustraliaXuxue Feng UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant NEW
Munro FerenczUnited KingdomStephen Shaw NEGOTIATION
David DarakjyIndiaAmy Elsner PROPOSAL
Alejandro PerinJapanIvan Magalhaes NEW
Julie StensethRussiaBernardo Dominic QUALIFIED
Jennifer AmigonIndiaAsiya Javayant QUALIFIED
Murillo MaletCanadaIvan Magalhaes QUALIFIED
Aruna FigeroaSpainBernardo Dominic NEGOTIATION
Rodrigues CampainUnited KingdomOnyama Limba NEGOTIATION
Arvin AlbaresRussiaBernardo Dominic RENEWAL
Ivar PaprockiJapanAnna Fali NEW
Aruna FigeroaArgentinaIoni Bowcher NEW
Tony FollerArgentinaAsiya Javayant NEW
Aditya KuskoIndiaBernardo Dominic RENEWAL
Ashley DoeArgentinaAsiya Javayant NEW
Alejandro PerinGermanyBernardo Dominic UNQUALIFIED
Isabel BowleyIndiaIoni Bowcher NEGOTIATION
Aika InouyeIndiaIoni Bowcher UNQUALIFIED
Morrow RutaRussiaXuxue Feng NEW
Cody SaylorsJapanIvan Magalhaes NEW
Cody SaylorsGermanyStephen Shaw PROPOSAL
Antonio CaudySpainIoni Bowcher RENEWAL
Faith GillianItalyXuxue Feng QUALIFIED
Aditya KuskoArgentinaOnyama Limba NEGOTIATION
Aika InouyeGermanyStephen Shaw NEGOTIATION
Ashley DoeGermanyXuxue Feng NEW
Kaitlin OstroskyJapanOnyama Limba RENEWAL
Tony FollerGermanyAsiya Javayant NEGOTIATION
Jennifer AmigonGermanyBernardo Dominic NEW
Misaki RoysterRussiaIoni Bowcher NEGOTIATION
Francesco ShinkoFranceElwin Sharvill NEW
Aditya KuskoRussiaXuxue Feng PROPOSAL
Octavia MaletCanadaIvan Magalhaes NEW
Aika InouyeIndiaOnyama Limba NEGOTIATION
Kadeem FlosiIndiaAsiya Javayant NEW
Morrow RutaBrazilAmy Elsner QUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Tony FollerArgentinaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Tony FollerIndiaElwin Sharvill NEW
Darci PoquetteAustraliaBernardo Dominic UNQUALIFIED
Johnson SergiUnited KingdomIvan Magalhaes UNQUALIFIED
David DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Cody SaylorsSpainStephen Shaw UNQUALIFIED
Sinclair WaycottSpainIoni Bowcher PROPOSAL
Leon OldroydUnited KingdomOnyama Limba PROPOSAL
Mujtaba NickaIndiaAsiya Javayant UNQUALIFIED
Mujtaba NickaRussiaOnyama Limba PROPOSAL
Rodrigues CampainIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaItaly2025-10-04Buckley Miller Wright NEW84Ivan Magalhaes
1001Leja CaldareraSpain2025-09-19Chapman, Ross E Esq RENEWAL52Elwin Sharvill
1002Kadeem FlosiBrazil2025-09-25Chanay, Jeffrey A Esq QUALIFIED56Ivan Magalhaes
1003Leja CaldareraArgentina2025-09-22King, Christopher A Esq QUALIFIED30Ioni Bowcher
1004Jones VocelkaJapan2025-10-02Rousseaux, Michael Esq QUALIFIED63Asiya Javayant
1005Maisha RulapaughGermany2025-09-16Feltz Printing Service RENEWAL34Ivan Magalhaes
1006Leon OldroydArgentina2025-09-17Rangoni Of Florence RENEWAL13Asiya Javayant
1007Jefferson SchemmerCanada2025-09-30Commercial Press UNQUALIFIED47Anna Fali
1008Maisha RulapaughRussia2025-09-22Buckley Miller Wright QUALIFIED25Anna Fali
1009Cody SaylorsUnited Kingdom2025-09-20Rousseaux, Michael Esq NEGOTIATION66Amy Elsner
1010Kadeem FlosiJapan2025-09-27Chemel, James L Cpa QUALIFIED83Elwin Sharvill
1011Kaitlin OstroskyAustralia2025-10-09Dorl, James J Esq NEGOTIATION34Ivan Magalhaes
1012Aika InouyeRussia2025-10-07Feiner Bros QUALIFIED27Bernardo Dominic
1013Izzy GarufiItaly2025-09-19Feltz Printing Service RENEWAL26Amy Elsner
1014Juan WieserGermany2025-09-16Dorl, James J Esq NEW89Elwin Sharvill
1015Julie StensethUnited Kingdom2025-09-19Truhlar And Truhlar Attys QUALIFIED86Amy Elsner
1016Antonio CaudyBrazil2025-10-03Rousseaux, Michael Esq PROPOSAL85Xuxue Feng
1017Leon OldroydIndia2025-10-09Dorl, James J Esq QUALIFIED57Ioni Bowcher
1018Faith GillianCanada2025-09-24Buckley Miller Wright RENEWAL60Ioni Bowcher
1019Jefferson SchemmerIndia2025-09-19Printing Dimensions UNQUALIFIED46Asiya Javayant
1020Clifford RimBrazil2025-09-24Chanay, Jeffrey A Esq PROPOSAL43Anna Fali
1021Kadeem FlosiJapan2025-10-10Morlong Associates NEW23Xuxue Feng
1022Leja CaldareraGermany2025-09-18King, Christopher A Esq NEGOTIATION5Bernardo Dominic
1023Arvin AlbaresCanada2025-09-18Benton, John B Jr QUALIFIED86Elwin Sharvill
1024Isabel BowleyUnited Kingdom2025-09-16Morlong Associates NEW14Elwin Sharvill
1025Faith GillianGermany2025-09-25Benton, John B Jr NEW44Asiya Javayant
1026Jeanfrancois VenereCanada2025-10-03Buckley Miller Wright RENEWAL81Ivan Magalhaes
1027Deepesh ChuiBrazil2025-09-26Benton, John B Jr PROPOSAL4Amy Elsner
1028Clifford RimCanada2025-09-20Rangoni Of Florence NEW2Elwin Sharvill
1029Ashley DoeBrazil2025-09-15Chemel, James L Cpa UNQUALIFIED74Amy Elsner
1030Chavez BriddickCanada2025-09-14Truhlar And Truhlar Attys QUALIFIED65Ioni Bowcher
1031Deepesh ChuiBrazil2025-10-12Feiner Bros RENEWAL61Xuxue Feng
1032Kaitlin OstroskySpain2025-09-21Chemel, James L Cpa UNQUALIFIED37Stephen Shaw
1033Salvatore StockhamCanada2025-09-17Printing Dimensions PROPOSAL88Asiya Javayant
1034Salvatore StockhamRussia2025-10-05Commercial Press NEGOTIATION0Elwin Sharvill
1035Leon OldroydItaly2025-09-20Printing Dimensions NEW2Onyama Limba
1036Kadeem FlosiRussia2025-10-10Chapman, Ross E Esq NEGOTIATION58Stephen Shaw
1037Jennifer AmigonGermany2025-09-15Printing Dimensions PROPOSAL63Asiya Javayant
1038Tony FollerRussia2025-10-07Truhlar And Truhlar Attys NEW63Bernardo Dominic
1039Emily WhobreyGermany2025-10-06Truhlar And Truhlar Attys NEGOTIATION74Elwin Sharvill
1040Clifford RimCanada2025-10-10Feltz Printing Service QUALIFIED59Ioni Bowcher
1041Izzy GarufiGermany2025-09-15King, Christopher A Esq PROPOSAL26Amy Elsner
1042Misaki RoysterCanada2025-09-16Commercial Press NEGOTIATION20Bernardo Dominic
1043Adams MorascaUnited Kingdom2025-10-07Rousseaux, Michael Esq PROPOSAL76Asiya Javayant
1044Misaki RoysterAustralia2025-09-14Printing Dimensions NEGOTIATION5Asiya Javayant
1045Francesco ShinkoIndia2025-09-13Chanay, Jeffrey A Esq RENEWAL94Bernardo Dominic
1046Tony FollerRussia2025-09-25Morlong Associates NEGOTIATION78Bernardo Dominic
1047Aruna FigeroaFrance2025-09-25King, Christopher A Esq NEW49Ioni Bowcher
1048Juan WieserRussia2025-10-03Dorl, James J Esq QUALIFIED18Amy Elsner
1049Mujtaba NickaUnited Kingdom2025-09-16Chapman, Ross E Esq PROPOSAL59Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem FlosiGermanyAsiya Javayant UNQUALIFIED
Salvatore StockhamFranceOnyama Limba NEW
Izzy GarufiItalyElwin Sharvill QUALIFIED
Francesco ShinkoCanadaAnna Fali RENEWAL
Stacey MacleadSpainAmy Elsner RENEWAL
Rodrigues CampainAustraliaIoni Bowcher RENEWAL
Darci PoquetteGermanyStephen Shaw RENEWAL
Morrow RutaGermanyOnyama Limba UNQUALIFIED
Kadeem FlosiAustraliaAnna Fali RENEWAL
Jones VocelkaArgentinaIvan Magalhaes PROPOSAL
Salvatore StockhamBrazilAsiya Javayant NEGOTIATION
Deepesh ChuiGermanyIoni Bowcher UNQUALIFIED
Ivar PaprockiGermanyAmy Elsner NEGOTIATION
Aditya KuskoArgentinaAnna Fali NEGOTIATION
Stacey MacleadRussiaAnna Fali UNQUALIFIED
Mujtaba NickaFranceElwin Sharvill UNQUALIFIED
Arvin AlbaresAustraliaBernardo Dominic NEGOTIATION
Francesco ShinkoBrazilElwin Sharvill RENEWAL
Darci PoquetteGermanyElwin Sharvill NEGOTIATION
Murillo MaletArgentinaAsiya Javayant NEGOTIATION
Jones VocelkaRussiaXuxue Feng NEW
Faith GillianRussiaAmy Elsner RENEWAL
Johnson SergiGermanyStephen Shaw RENEWAL
Maria MarrierGermanyBernardo Dominic NEGOTIATION
Julie StensethArgentinaBernardo Dominic RENEWAL
Antonio CaudyBrazilAmy Elsner QUALIFIED
Murillo MaletCanadaAsiya Javayant QUALIFIED
Ivar PaprockiFranceIvan Magalhaes NEGOTIATION
Arvin AlbaresJapanAsiya Javayant NEW
Wickens NestleArgentinaIoni Bowcher PROPOSAL
Silvio SlusarskiSpainOnyama Limba UNQUALIFIED
Jeanfrancois VenereSpainBernardo Dominic UNQUALIFIED
Mayumi KolmetzArgentinaIvan Magalhaes RENEWAL
Costa DilliardGermanyAnna Fali QUALIFIED
Misaki RoysterIndiaAnna Fali PROPOSAL
Wickens NestleFranceStephen Shaw NEW
James ButtArgentinaIoni Bowcher QUALIFIED
David DarakjyArgentinaXuxue Feng UNQUALIFIED
Francesco ShinkoRussiaAsiya Javayant PROPOSAL
Julie StensethAustraliaIoni Bowcher NEGOTIATION
Leon OldroydAustraliaOnyama Limba UNQUALIFIED
Tony FollerCanadaIoni Bowcher PROPOSAL
Leja CaldareraAustraliaIvan Magalhaes QUALIFIED
Jennifer AmigonAustraliaAsiya Javayant UNQUALIFIED
Aika InouyeBrazilAmy Elsner UNQUALIFIED
Arvin AlbaresCanadaElwin Sharvill UNQUALIFIED
Munro FerenczGermanyStephen Shaw NEW
Jefferson SchemmerAustraliaXuxue Feng PROPOSAL
Izzy GarufiIndiaAsiya Javayant UNQUALIFIED
Jennifer AmigonGermanyAnna Fali RENEWAL
Frozen Columns
Name
Munro Ferencz
Jeanfrancois Venere
Clifford Rim
Jefferson Schemmer
Maria Marrier
Aika Inouye
Wickens Nestle
Julie Stenseth
Deepesh Chui
Morrow Ruta
Adams Morasca
Arvin Albares
Ivar Paprocki
Munro Ferencz
Costa Dilliard
Adams Morasca
Stacey Maclead
Adams Morasca
Salvatore Stockham
Alejandro Perin
Octavia Malet
Stacey Maclead
Silvio Slusarski
Mujtaba Nicka
Faith Gillian
Chavez Briddick
Salvatore Stockham
Arvin Albares
Octavia Malet
Silvio Slusarski
James Butt
Salvatore Stockham
Misaki Royster
Misaki Royster
Tony Foller
Antonio Caudy
Morrow Ruta
Costa Dilliard
Chavez Briddick
Francesco Shinko
Izzy Garufi
Nicolas Iturbide
Octavia Malet
Mayumi Kolmetz
Cody Saylors
Smith Glick
Nicolas Iturbide
Sinclair Waycott
Julie Stenseth
Leja Caldarera
IdCountryDate
1000Germany2025-10-04
1001France2025-09-24
1002United Kingdom2025-09-30
1003Japan2025-10-04
1004Japan2025-09-26
1005Australia2025-10-02
1006India2025-10-03
1007Spain2025-09-25
1008Japan2025-09-16
1009Spain2025-10-08
1010United Kingdom2025-09-23
1011India2025-09-23
1012Brazil2025-09-14
1013Spain2025-09-23
1014Canada2025-10-12
1015Argentina2025-09-21
1016Japan2025-10-05
1017Italy2025-09-24
1018Germany2025-10-11
1019Spain2025-09-24
1020France2025-09-24
1021Japan2025-09-16
1022Italy2025-10-03
1023Spain2025-10-11
1024Russia2025-10-01
1025Canada2025-10-11
1026Australia2025-10-04
1027Spain2025-10-09
1028Japan2025-09-25
1029United Kingdom2025-09-13
1030India2025-09-18
1031Germany2025-09-16
1032Argentina2025-09-15
1033Italy2025-10-09
1034Canada2025-09-18
1035Italy2025-09-29
1036Australia2025-09-20
1037Germany2025-09-24
1038United Kingdom2025-10-02
1039Brazil2025-10-08
1040Japan2025-09-19
1041Canada2025-10-12
1042Canada2025-09-15
1043Australia2025-10-05
1044India2025-09-14
1045Russia2025-10-08
1046Argentina2025-09-20
1047Russia2025-10-10
1048Italy2025-09-21
1049Russia2025-10-01

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Japan2025-09-21
Maisha Rulapaugh1001Japan2025-09-29
Costa Dilliard1002Australia2025-09-29
Maisha Rulapaugh1003Argentina2025-10-01
Aruna Figeroa1004Japan2025-09-30
Ashley Doe1005Germany2025-10-05
Stacey Maclead1006France2025-09-30
David Darakjy1007Russia2025-09-13
Munro Ferencz1008Canada2025-09-18
Deepesh Chui1009Australia2025-09-14
Adams Morasca1010Germany2025-09-30
Cody Saylors1011Canada2025-09-22
Isabel Bowley1012Canada2025-10-02
Izzy Garufi1013Japan2025-10-09
Aruna Figeroa1014Argentina2025-10-10
Arvin Albares1015Canada2025-09-29
Chavez Briddick1016Canada2025-09-23
Maisha Rulapaugh1017Australia2025-09-20
Aditya Kusko1018Brazil2025-09-29
Claire Tollner1019India2025-09-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaAustraliaXuxue Feng NEW
Maisha RulapaughGermanyStephen Shaw UNQUALIFIED
Francesco ShinkoGermanyAnna Fali NEW
Ricardo GauchoArgentinaElwin Sharvill PROPOSAL
Kaitlin OstroskyRussiaIoni Bowcher RENEWAL
Maisha RulapaughUnited KingdomIoni Bowcher NEW
Deepesh ChuiIndiaIvan Magalhaes RENEWAL
Julie StensethCanadaOnyama Limba PROPOSAL
Adams MorascaJapanElwin Sharvill UNQUALIFIED
Octavia MaletSpainIoni Bowcher QUALIFIED
Jennifer AmigonFranceAmy Elsner UNQUALIFIED
Emily WhobreyCanadaIvan Magalhaes NEGOTIATION
Chavez BriddickJapanIoni Bowcher UNQUALIFIED
Greenwood BologniaJapanElwin Sharvill NEGOTIATION
Francesco ShinkoBrazilXuxue Feng PROPOSAL
Kadeem FlosiRussiaElwin Sharvill NEW
Clifford RimAustraliaStephen Shaw NEGOTIATION
Sinclair WaycottBrazilBernardo Dominic PROPOSAL
Julie StensethAustraliaAnna Fali NEGOTIATION
Adams MorascaCanadaIoni Bowcher RENEWAL
Claire TollnerJapanStephen Shaw PROPOSAL
David DarakjyAustraliaAnna Fali QUALIFIED
Murillo MaletAustraliaAmy Elsner UNQUALIFIED
Isabel BowleyUnited KingdomAmy Elsner UNQUALIFIED
Maria MarrierGermanyAnna Fali QUALIFIED
Jefferson SchemmerIndiaElwin Sharvill UNQUALIFIED
Aditya KuskoAustraliaStephen Shaw NEW
Cody SaylorsIndiaElwin Sharvill UNQUALIFIED
Juan WieserItalyIvan Magalhaes NEGOTIATION
Aruna FigeroaIndiaStephen Shaw UNQUALIFIED
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Claire TollnerRussiaAsiya Javayant QUALIFIED
Maria MarrierItalyIvan Magalhaes UNQUALIFIED
David DarakjyGermanyStephen Shaw QUALIFIED
James ButtJapanAsiya Javayant NEW
Morrow RutaIndiaStephen Shaw QUALIFIED
Jones VocelkaGermanyStephen Shaw RENEWAL
Jones VocelkaSpainAnna Fali QUALIFIED
Clifford RimArgentinaIvan Magalhaes UNQUALIFIED
Juan WieserArgentinaOnyama Limba 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>