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
Munro FerenczCanadaElwin Sharvill QUALIFIED
Ashley DoeJapanAsiya Javayant NEW
David DarakjyItalyAsiya Javayant QUALIFIED
Julie StensethCanadaIoni Bowcher NEGOTIATION
Smith GlickFranceAsiya Javayant UNQUALIFIED
Julie StensethIndiaIvan Magalhaes NEGOTIATION
Jones VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Isabel BowleyFranceIvan Magalhaes QUALIFIED
Aika InouyeJapanIvan Magalhaes QUALIFIED
Jefferson SchemmerUnited KingdomElwin Sharvill QUALIFIED
Maria MarrierSpainElwin Sharvill QUALIFIED
Ricardo GauchoAustraliaStephen Shaw NEW
Salvatore StockhamAustraliaIvan Magalhaes NEW
Darci PoquetteUnited KingdomBernardo Dominic RENEWAL
Emily WhobreyArgentinaElwin Sharvill NEW
Maisha RulapaughFranceIoni Bowcher RENEWAL
David DarakjyUnited KingdomAnna Fali RENEWAL
Johnson SergiFranceXuxue Feng RENEWAL
Aditya KuskoRussiaIoni Bowcher NEGOTIATION
Aditya KuskoSpainAnna Fali RENEWAL
Rodrigues CampainIndiaAnna Fali RENEWAL
Aruna FigeroaJapanStephen Shaw PROPOSAL
Juan WieserUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerGermanyAmy Elsner UNQUALIFIED
Munro FerenczFranceElwin Sharvill RENEWAL
Jeanfrancois VenereArgentinaAmy Elsner UNQUALIFIED
Isabel BowleyRussiaAnna Fali PROPOSAL
Sinclair WaycottCanadaXuxue Feng NEGOTIATION
Misaki RoysterGermanyAsiya Javayant QUALIFIED
Jones VocelkaSpainElwin Sharvill NEGOTIATION
Darci PoquetteIndiaStephen Shaw PROPOSAL
Costa DilliardGermanyIvan Magalhaes RENEWAL
Antonio CaudyAustraliaStephen Shaw PROPOSAL
Greenwood BologniaItalyOnyama Limba NEGOTIATION
Mayumi KolmetzCanadaXuxue Feng NEW
Greenwood BologniaRussiaXuxue Feng QUALIFIED
Wickens NestleIndiaXuxue Feng NEW
Julie StensethCanadaElwin Sharvill RENEWAL
Kaitlin OstroskyAustraliaIvan Magalhaes QUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Jefferson SchemmerBrazilAmy Elsner UNQUALIFIED
Juan WieserSpainAmy Elsner QUALIFIED
Mujtaba NickaRussiaStephen Shaw UNQUALIFIED
Murillo MaletGermanyOnyama Limba RENEWAL
Sinclair WaycottIndiaStephen Shaw QUALIFIED
Greenwood BologniaSpainElwin Sharvill RENEWAL
Jefferson SchemmerUnited KingdomXuxue Feng NEGOTIATION
Adams MorascaCanadaIoni Bowcher PROPOSAL
Juan WieserAustraliaXuxue Feng QUALIFIED
Munro FerenczCanadaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Murillo MaletJapanIvan Magalhaes UNQUALIFIED
Maria MarrierCanadaStephen Shaw RENEWAL
Murillo MaletBrazilBernardo Dominic NEW
Costa DilliardUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleFranceIvan Magalhaes QUALIFIED
Aruna FigeroaItalyAnna Fali UNQUALIFIED
Sinclair WaycottSpainXuxue Feng NEW
Nicolas IturbideIndiaAsiya Javayant NEW
Rodrigues CampainCanadaIvan Magalhaes NEGOTIATION
Francesco ShinkoCanadaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyCanada2026-04-10Chanay, Jeffrey A Esq PROPOSAL72Xuxue Feng
1001Ricardo GauchoSpain2026-04-01Chemel, James L Cpa NEW12Asiya Javayant
1002Sinclair WaycottIndia2026-03-26Commercial Press NEGOTIATION62Anna Fali
1003Faith GillianAustralia2026-03-27Chanay, Jeffrey A Esq NEGOTIATION42Anna Fali
1004Juan WieserIndia2026-04-11Rousseaux, Michael Esq NEW9Amy Elsner
1005Costa DilliardIndia2026-04-05Benton, John B Jr RENEWAL94Stephen Shaw
1006Adams MorascaArgentina2026-03-27Buckley Miller Wright QUALIFIED73Onyama Limba
1007Octavia MaletCanada2026-04-13Commercial Press NEGOTIATION44Anna Fali
1008Salvatore StockhamArgentina2026-04-01Feltz Printing Service QUALIFIED94Xuxue Feng
1009Aika InouyeUnited Kingdom2026-04-11Printing Dimensions UNQUALIFIED71Stephen Shaw
1010Faith GillianGermany2026-04-07Benton, John B Jr QUALIFIED46Amy Elsner
1011Aruna FigeroaBrazil2026-03-25Buckley Miller Wright NEW55Anna Fali
1012Octavia MaletFrance2026-04-15Rousseaux, Michael Esq QUALIFIED18Elwin Sharvill
1013Misaki RoysterItaly2026-04-06Benton, John B Jr RENEWAL14Bernardo Dominic
1014Deepesh ChuiCanada2026-04-06King, Christopher A Esq QUALIFIED66Asiya Javayant
1015Maria MarrierJapan2026-04-13Chemel, James L Cpa RENEWAL29Ioni Bowcher
1016Octavia MaletIndia2026-03-26Rangoni Of Florence NEGOTIATION68Anna Fali
1017Maria MarrierRussia2026-04-12Rousseaux, Michael Esq RENEWAL2Xuxue Feng
1018James ButtSpain2026-04-09King, Christopher A Esq QUALIFIED24Xuxue Feng
1019Nicolas IturbideJapan2026-04-14Chanay, Jeffrey A Esq RENEWAL43Elwin Sharvill
1020Sinclair WaycottItaly2026-04-14Truhlar And Truhlar Attys NEGOTIATION31Ivan Magalhaes
1021Claire TollnerFrance2026-04-21Rangoni Of Florence RENEWAL30Xuxue Feng
1022Greenwood BologniaGermany2026-03-31Dorl, James J Esq PROPOSAL68Anna Fali
1023Claire TollnerRussia2026-04-04Chemel, James L Cpa NEW5Onyama Limba
1024Salvatore StockhamBrazil2026-04-13Rousseaux, Michael Esq UNQUALIFIED91Elwin Sharvill
1025Wickens NestleAustralia2026-03-27Printing Dimensions PROPOSAL14Amy Elsner
1026Munro FerenczIndia2026-03-31Rousseaux, Michael Esq QUALIFIED5Asiya Javayant
1027Salvatore StockhamJapan2026-04-10Benton, John B Jr NEW53Amy Elsner
1028Alejandro PerinItaly2026-04-19Rangoni Of Florence UNQUALIFIED35Bernardo Dominic
1029Johnson SergiAustralia2026-04-11Morlong Associates RENEWAL86Asiya Javayant
1030Ashley DoeJapan2026-04-07Truhlar And Truhlar Attys PROPOSAL54Elwin Sharvill
1031Antonio CaudyRussia2026-03-25Printing Dimensions NEW79Amy Elsner
1032Murillo MaletAustralia2026-04-07Feiner Bros PROPOSAL65Ivan Magalhaes
1033Julie StensethJapan2026-03-26Benton, John B Jr NEW9Ioni Bowcher
1034Julie StensethFrance2026-04-11Truhlar And Truhlar Attys UNQUALIFIED63Bernardo Dominic
1035Aika InouyeAustralia2026-04-09Feltz Printing Service PROPOSAL73Asiya Javayant
1036Juan WieserBrazil2026-03-27Dorl, James J Esq RENEWAL5Xuxue Feng
1037Jennifer AmigonArgentina2026-04-12King, Christopher A Esq NEW82Asiya Javayant
1038Sinclair WaycottJapan2026-04-11Rousseaux, Michael Esq NEGOTIATION24Amy Elsner
1039Mayumi KolmetzRussia2026-03-27Chanay, Jeffrey A Esq QUALIFIED87Ivan Magalhaes
1040Leja CaldareraRussia2026-04-06Printing Dimensions NEGOTIATION3Elwin Sharvill
1041Rodrigues CampainUnited Kingdom2026-04-19Benton, John B Jr QUALIFIED9Amy Elsner
1042Deepesh ChuiJapan2026-04-17Dorl, James J Esq NEW19Elwin Sharvill
1043Darci PoquetteCanada2026-04-01Rangoni Of Florence RENEWAL63Asiya Javayant
1044Faith GillianAustralia2026-04-11Chanay, Jeffrey A Esq NEGOTIATION60Asiya Javayant
1045Aruna FigeroaAustralia2026-04-07Feiner Bros PROPOSAL91Ivan Magalhaes
1046Ricardo GauchoGermany2026-04-03King, Christopher A Esq NEGOTIATION28Ivan Magalhaes
1047Costa DilliardFrance2026-03-24Dorl, James J Esq QUALIFIED2Elwin Sharvill
1048Aruna FigeroaFrance2026-04-10Chemel, James L Cpa PROPOSAL43Elwin Sharvill
1049Mayumi KolmetzJapan2026-04-03Printing Dimensions UNQUALIFIED23Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierRussiaElwin Sharvill RENEWAL
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Deepesh ChuiIndiaAsiya Javayant NEW
Juan WieserFranceAmy Elsner PROPOSAL
Kaitlin OstroskyArgentinaOnyama Limba PROPOSAL
Aruna FigeroaItalyBernardo Dominic NEW
Stacey MacleadBrazilOnyama Limba RENEWAL
Murillo MaletCanadaAmy Elsner NEW
Jefferson SchemmerItalyStephen Shaw UNQUALIFIED
Ricardo GauchoRussiaAmy Elsner UNQUALIFIED
James ButtRussiaAnna Fali NEGOTIATION
Ricardo GauchoGermanyIvan Magalhaes PROPOSAL
Kadeem FlosiSpainBernardo Dominic RENEWAL
Octavia MaletFranceAmy Elsner UNQUALIFIED
Morrow RutaFranceBernardo Dominic QUALIFIED
Chavez BriddickAustraliaElwin Sharvill NEGOTIATION
Octavia MaletRussiaAnna Fali UNQUALIFIED
Clifford RimUnited KingdomXuxue Feng RENEWAL
Cody SaylorsGermanyElwin Sharvill RENEWAL
Octavia MaletRussiaAnna Fali RENEWAL
Juan WieserGermanyOnyama Limba PROPOSAL
Morrow RutaJapanIvan Magalhaes RENEWAL
James ButtItalyStephen Shaw NEW
Murillo MaletRussiaStephen Shaw RENEWAL
Nicolas IturbideCanadaElwin Sharvill PROPOSAL
Clifford RimRussiaIoni Bowcher NEW
Leja CaldareraGermanyElwin Sharvill RENEWAL
Salvatore StockhamBrazilStephen Shaw PROPOSAL
Stacey MacleadCanadaIoni Bowcher QUALIFIED
Jones VocelkaSpainIvan Magalhaes QUALIFIED
Deepesh ChuiFranceBernardo Dominic PROPOSAL
Maria MarrierJapanStephen Shaw UNQUALIFIED
Leja CaldareraFranceIoni Bowcher UNQUALIFIED
Ashley DoeUnited KingdomElwin Sharvill NEGOTIATION
Alejandro PerinIndiaIoni Bowcher PROPOSAL
Salvatore StockhamArgentinaAnna Fali RENEWAL
Sinclair WaycottRussiaBernardo Dominic NEGOTIATION
Costa DilliardSpainOnyama Limba RENEWAL
Isabel BowleyUnited KingdomIoni Bowcher QUALIFIED
Misaki RoysterArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeBrazilOnyama Limba NEW
Juan WieserAustraliaAsiya Javayant PROPOSAL
Cody SaylorsIndiaBernardo Dominic NEW
Costa DilliardItalyOnyama Limba UNQUALIFIED
Darci PoquetteItalyElwin Sharvill PROPOSAL
Faith GillianSpainAnna Fali NEGOTIATION
Ivar PaprockiCanadaAnna Fali PROPOSAL
Jeanfrancois VenereAustraliaXuxue Feng UNQUALIFIED
Claire TollnerCanadaOnyama Limba RENEWAL
Adams MorascaCanadaAnna Fali RENEWAL
Frozen Columns
Name
Sinclair Waycott
Emily Whobrey
Francesco Shinko
Arvin Albares
Mayumi Kolmetz
Rodrigues Campain
Emily Whobrey
Rodrigues Campain
Sinclair Waycott
Kadeem Flosi
Nicolas Iturbide
Izzy Garufi
Jennifer Amigon
Octavia Malet
Mayumi Kolmetz
Mayumi Kolmetz
Leja Caldarera
Rodrigues Campain
Aditya Kusko
Silvio Slusarski
Antonio Caudy
Maisha Rulapaugh
Costa Dilliard
Leon Oldroyd
Faith Gillian
Maisha Rulapaugh
Munro Ferencz
Francesco Shinko
Isabel Bowley
Cody Saylors
Chavez Briddick
Costa Dilliard
Cody Saylors
James Butt
Ivar Paprocki
Ricardo Gaucho
Arvin Albares
Stacey Maclead
Ricardo Gaucho
Alejandro Perin
Mujtaba Nicka
Ashley Doe
Maisha Rulapaugh
Ashley Doe
Silvio Slusarski
Julie Stenseth
Ashley Doe
Octavia Malet
Cody Saylors
Ricardo Gaucho
IdCountryDate
1000Japan2026-04-12
1001Italy2026-04-11
1002Japan2026-03-30
1003Italy2026-04-21
1004Japan2026-04-07
1005Australia2026-04-08
1006United Kingdom2026-04-14
1007France2026-04-15
1008Brazil2026-03-28
1009India2026-04-17
1010Spain2026-03-30
1011Russia2026-03-24
1012France2026-04-21
1013Spain2026-04-12
1014Japan2026-03-27
1015Spain2026-04-06
1016Canada2026-04-01
1017Italy2026-03-31
1018Australia2026-03-30
1019Japan2026-04-06
1020Japan2026-04-04
1021Spain2026-03-27
1022Japan2026-04-19
1023Australia2026-04-16
1024Spain2026-03-30
1025Spain2026-04-03
1026Germany2026-04-06
1027Russia2026-03-27
1028Germany2026-04-13
1029United Kingdom2026-04-17
1030Australia2026-04-06
1031Spain2026-04-18
1032Australia2026-04-15
1033Brazil2026-04-16
1034France2026-03-26
1035Canada2026-04-12
1036United Kingdom2026-04-19
1037United Kingdom2026-04-03
1038Brazil2026-04-18
1039India2026-03-26
1040Argentina2026-04-06
1041Australia2026-04-19
1042Brazil2026-04-13
1043Argentina2026-04-15
1044Russia2026-04-17
1045Argentina2026-04-13
1046India2026-04-18
1047Australia2026-04-16
1048Brazil2026-04-15
1049Spain2026-03-25

On-Demand Data

NameIdCountryDate
Costa Dilliard1000Canada2026-04-14
Ivar Paprocki1001Canada2026-04-01
Kaitlin Ostrosky1002Japan2026-03-24
Stacey Maclead1003Germany2026-03-25
Costa Dilliard1004Germany2026-03-27
Wickens Nestle1005Canada2026-04-15
Izzy Garufi1006Japan2026-04-07
Morrow Ruta1007India2026-04-17
Kadeem Flosi1008United Kingdom2026-04-09
Emily Whobrey1009Japan2026-03-27
Smith Glick1010United Kingdom2026-04-01
Juan Wieser1011Argentina2026-04-07
Greenwood Bolognia1012Brazil2026-04-16
Greenwood Bolognia1013Japan2026-03-27
Ashley Doe1014Argentina2026-04-12
Nicolas Iturbide1015United Kingdom2026-04-06
Darci Poquette1016Brazil2026-03-24
Tony Foller1017United Kingdom2026-04-13
Leja Caldarera1018Australia2026-04-02
Julie Stenseth1019Italy2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserIndiaElwin Sharvill QUALIFIED
Rodrigues CampainBrazilAnna Fali PROPOSAL
Jones VocelkaJapanXuxue Feng NEGOTIATION
Ricardo GauchoArgentinaXuxue Feng PROPOSAL
Clifford RimCanadaIvan Magalhaes NEGOTIATION
Johnson SergiUnited KingdomOnyama Limba QUALIFIED
Jennifer AmigonUnited KingdomIoni Bowcher RENEWAL
Murillo MaletAustraliaAmy Elsner NEGOTIATION
Aditya KuskoBrazilXuxue Feng QUALIFIED
Tony FollerIndiaElwin Sharvill PROPOSAL
Tony FollerIndiaStephen Shaw NEW
Isabel BowleyIndiaBernardo Dominic PROPOSAL
Johnson SergiCanadaIoni Bowcher NEW
Smith GlickArgentinaOnyama Limba NEW
Greenwood BologniaRussiaAnna Fali UNQUALIFIED
Faith GillianUnited KingdomAmy Elsner NEGOTIATION
Mayumi KolmetzBrazilStephen Shaw PROPOSAL
Kaitlin OstroskyJapanIoni Bowcher NEGOTIATION
Leja CaldareraItalyBernardo Dominic QUALIFIED
Jones VocelkaGermanyXuxue Feng QUALIFIED
Sinclair WaycottFranceAmy Elsner QUALIFIED
Claire TollnerBrazilStephen Shaw RENEWAL
Rodrigues CampainJapanXuxue Feng QUALIFIED
Aditya KuskoJapanBernardo Dominic UNQUALIFIED
Antonio CaudyAustraliaIvan Magalhaes NEGOTIATION
Mayumi KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoIndiaIoni Bowcher NEW
Arvin AlbaresCanadaOnyama Limba QUALIFIED
Isabel BowleyAustraliaOnyama Limba QUALIFIED
Aika InouyeSpainIoni Bowcher QUALIFIED
Jones VocelkaFranceXuxue Feng QUALIFIED
Maisha RulapaughRussiaStephen Shaw RENEWAL
Jones VocelkaItalyXuxue Feng QUALIFIED
Ashley DoeCanadaAnna Fali QUALIFIED
Clifford RimCanadaAsiya Javayant QUALIFIED
Julie StensethIndiaElwin Sharvill RENEWAL
Murillo MaletUnited KingdomAmy Elsner UNQUALIFIED
Kadeem FlosiCanadaOnyama Limba QUALIFIED
Arvin AlbaresJapanElwin Sharvill 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>