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
Deepesh ChuiCanadaOnyama Limba RENEWAL
Octavia MaletBrazilIvan Magalhaes NEW
Mayumi KolmetzJapanIoni Bowcher NEW
Murillo MaletArgentinaBernardo Dominic QUALIFIED
Jennifer AmigonItalyAmy Elsner QUALIFIED
Morrow RutaItalyBernardo Dominic RENEWAL
Kadeem FlosiUnited KingdomBernardo Dominic RENEWAL
Costa DilliardFranceElwin Sharvill PROPOSAL
Greenwood BologniaRussiaXuxue Feng RENEWAL
Emily WhobreyUnited KingdomAmy Elsner NEW
Ricardo GauchoArgentinaBernardo Dominic PROPOSAL
Faith GillianCanadaStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomOnyama Limba NEW
Jennifer AmigonGermanyIoni Bowcher RENEWAL
Leon OldroydSpainBernardo Dominic QUALIFIED
Misaki RoysterArgentinaElwin Sharvill NEGOTIATION
Juan WieserJapanBernardo Dominic NEW
David DarakjyJapanAsiya Javayant UNQUALIFIED
Adams MorascaItalyOnyama Limba UNQUALIFIED
Maria MarrierCanadaXuxue Feng RENEWAL
Murillo MaletIndiaStephen Shaw RENEWAL
Jefferson SchemmerJapanOnyama Limba NEGOTIATION
Ivar PaprockiCanadaAnna Fali NEGOTIATION
Costa DilliardUnited KingdomBernardo Dominic PROPOSAL
Adams MorascaAustraliaBernardo Dominic NEW
Leon OldroydFranceIvan Magalhaes NEGOTIATION
Izzy GarufiAustraliaAnna Fali QUALIFIED
Mujtaba NickaItalyBernardo Dominic QUALIFIED
Aika InouyeJapanElwin Sharvill NEGOTIATION
Maria MarrierItalyBernardo Dominic RENEWAL
Jennifer AmigonBrazilAnna Fali PROPOSAL
Jones VocelkaSpainBernardo Dominic QUALIFIED
Ivar PaprockiAustraliaXuxue Feng NEW
Deepesh ChuiGermanyAnna Fali RENEWAL
Aditya KuskoRussiaXuxue Feng RENEWAL
Aruna FigeroaRussiaAsiya Javayant QUALIFIED
Clifford RimUnited KingdomIvan Magalhaes NEW
Silvio SlusarskiSpainAmy Elsner NEGOTIATION
Jennifer AmigonBrazilXuxue Feng QUALIFIED
Rodrigues CampainArgentinaOnyama Limba UNQUALIFIED
Maria MarrierBrazilAmy Elsner QUALIFIED
Octavia MaletGermanyOnyama Limba NEW
Kaitlin OstroskyBrazilXuxue Feng RENEWAL
Jones VocelkaUnited KingdomXuxue Feng NEGOTIATION
Jennifer AmigonAustraliaAnna Fali NEW
Jennifer AmigonIndiaXuxue Feng RENEWAL
Munro FerenczRussiaXuxue Feng QUALIFIED
Stacey MacleadIndiaAnna Fali NEGOTIATION
Clifford RimSpainAsiya Javayant PROPOSAL
Jeanfrancois VenereCanadaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey MacleadArgentinaAsiya Javayant UNQUALIFIED
Costa DilliardSpainStephen Shaw UNQUALIFIED
Claire TollnerGermanyAmy Elsner QUALIFIED
David DarakjyItalyIvan Magalhaes RENEWAL
Nicolas IturbideSpainStephen Shaw RENEWAL
Emily WhobreyBrazilAsiya Javayant NEGOTIATION
Aika InouyeAustraliaIoni Bowcher QUALIFIED
Murillo MaletJapanIoni Bowcher QUALIFIED
Stacey MacleadUnited KingdomAsiya Javayant QUALIFIED
Kadeem FlosiJapanIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire TollnerArgentina2026-05-14Chemel, James L Cpa UNQUALIFIED34Amy Elsner
1001Salvatore StockhamItaly2026-05-08Chemel, James L Cpa PROPOSAL55Stephen Shaw
1002Adams MorascaCanada2026-05-17King, Christopher A Esq PROPOSAL89Amy Elsner
1003Ricardo GauchoItaly2026-05-26Feiner Bros UNQUALIFIED47Stephen Shaw
1004Juan WieserArgentina2026-05-09Benton, John B Jr RENEWAL3Stephen Shaw
1005Maria MarrierArgentina2026-05-13Buckley Miller Wright PROPOSAL60Elwin Sharvill
1006Maria MarrierGermany2026-05-19Rangoni Of Florence QUALIFIED51Xuxue Feng
1007Jefferson SchemmerGermany2026-04-30Rangoni Of Florence RENEWAL88Ivan Magalhaes
1008Clifford RimJapan2026-05-25Chapman, Ross E Esq QUALIFIED32Stephen Shaw
1009Ivar PaprockiGermany2026-05-06Chanay, Jeffrey A Esq UNQUALIFIED75Ivan Magalhaes
1010Rodrigues CampainJapan2026-05-19Buckley Miller Wright RENEWAL57Bernardo Dominic
1011Jeanfrancois VenereIndia2026-04-28Dorl, James J Esq PROPOSAL3Anna Fali
1012Chavez BriddickCanada2026-05-10Morlong Associates UNQUALIFIED22Asiya Javayant
1013Stacey MacleadCanada2026-04-29Feiner Bros PROPOSAL16Ivan Magalhaes
1014David DarakjyJapan2026-05-17Benton, John B Jr UNQUALIFIED97Anna Fali
1015Rodrigues CampainItaly2026-05-23Chemel, James L Cpa NEW40Onyama Limba
1016Faith GillianRussia2026-05-20King, Christopher A Esq RENEWAL25Onyama Limba
1017Salvatore StockhamCanada2026-05-13Benton, John B Jr RENEWAL93Amy Elsner
1018Leon OldroydJapan2026-05-07Chemel, James L Cpa UNQUALIFIED29Onyama Limba
1019Juan WieserAustralia2026-05-18Commercial Press UNQUALIFIED3Asiya Javayant
1020Aika InouyeArgentina2026-04-29King, Christopher A Esq UNQUALIFIED57Asiya Javayant
1021David DarakjySpain2026-05-23Rangoni Of Florence UNQUALIFIED44Xuxue Feng
1022Clifford RimItaly2026-05-23Truhlar And Truhlar Attys RENEWAL25Elwin Sharvill
1023Leja CaldareraAustralia2026-05-06Chapman, Ross E Esq QUALIFIED17Stephen Shaw
1024Deepesh ChuiRussia2026-05-13Dorl, James J Esq UNQUALIFIED15Bernardo Dominic
1025Octavia MaletSpain2026-04-29King, Christopher A Esq QUALIFIED77Xuxue Feng
1026Johnson SergiFrance2026-05-18Printing Dimensions NEW48Asiya Javayant
1027Francesco ShinkoFrance2026-04-29Buckley Miller Wright NEW67Xuxue Feng
1028Darci PoquetteAustralia2026-05-02Chemel, James L Cpa PROPOSAL82Amy Elsner
1029Ivar PaprockiRussia2026-05-04Commercial Press NEGOTIATION46Xuxue Feng
1030Deepesh ChuiRussia2026-05-26Benton, John B Jr PROPOSAL22Ivan Magalhaes
1031Maria MarrierAustralia2026-05-08Rangoni Of Florence RENEWAL77Ioni Bowcher
1032James ButtArgentina2026-05-11Dorl, James J Esq NEW3Onyama Limba
1033Aditya KuskoJapan2026-04-28Chemel, James L Cpa UNQUALIFIED45Bernardo Dominic
1034Salvatore StockhamRussia2026-05-16Buckley Miller Wright NEGOTIATION28Elwin Sharvill
1035Ivar PaprockiGermany2026-05-18King, Christopher A Esq PROPOSAL17Ivan Magalhaes
1036Nicolas IturbideBrazil2026-05-19Chanay, Jeffrey A Esq UNQUALIFIED67Onyama Limba
1037Costa DilliardIndia2026-05-19Chanay, Jeffrey A Esq PROPOSAL50Ioni Bowcher
1038Kaitlin OstroskyArgentina2026-05-19Buckley Miller Wright NEGOTIATION22Asiya Javayant
1039Aditya KuskoSpain2026-05-19Feiner Bros UNQUALIFIED29Ivan Magalhaes
1040Salvatore StockhamRussia2026-05-16Commercial Press UNQUALIFIED11Elwin Sharvill
1041Francesco ShinkoBrazil2026-05-12Feiner Bros RENEWAL10Stephen Shaw
1042Emily WhobreyUnited Kingdom2026-05-24Feiner Bros RENEWAL95Anna Fali
1043Maria MarrierIndia2026-05-24Rangoni Of Florence UNQUALIFIED41Onyama Limba
1044Faith GillianItaly2026-05-19Chapman, Ross E Esq NEW56Elwin Sharvill
1045James ButtItaly2026-04-29Dorl, James J Esq NEW57Asiya Javayant
1046Maria MarrierCanada2026-05-15Rousseaux, Michael Esq RENEWAL75Onyama Limba
1047Jeanfrancois VenereItaly2026-05-01King, Christopher A Esq NEW47Bernardo Dominic
1048David DarakjyArgentina2026-05-14Feiner Bros NEGOTIATION17Anna Fali
1049Francesco ShinkoBrazil2026-05-14Rangoni Of Florence RENEWAL39Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleJapanAsiya Javayant NEW
Tony FollerRussiaOnyama Limba NEGOTIATION
Ricardo GauchoFranceBernardo Dominic UNQUALIFIED
Emily WhobreyCanadaBernardo Dominic QUALIFIED
Ivar PaprockiUnited KingdomAnna Fali NEW
Leja CaldareraJapanBernardo Dominic PROPOSAL
Costa DilliardRussiaOnyama Limba NEW
Clifford RimRussiaIoni Bowcher PROPOSAL
Maisha RulapaughGermanyBernardo Dominic PROPOSAL
Ivar PaprockiBrazilAmy Elsner NEW
Mayumi KolmetzFranceAsiya Javayant RENEWAL
Arvin AlbaresGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiUnited KingdomAnna Fali NEGOTIATION
Antonio CaudyGermanyIvan Magalhaes NEGOTIATION
Murillo MaletItalyStephen Shaw QUALIFIED
Claire TollnerAustraliaXuxue Feng NEGOTIATION
Emily WhobreyAustraliaOnyama Limba PROPOSAL
Tony FollerItalyAsiya Javayant NEW
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
Claire TollnerAustraliaIvan Magalhaes NEGOTIATION
Ashley DoeIndiaAmy Elsner RENEWAL
David DarakjyBrazilAmy Elsner NEW
Kadeem FlosiUnited KingdomStephen Shaw QUALIFIED
Julie StensethArgentinaStephen Shaw QUALIFIED
Salvatore StockhamUnited KingdomStephen Shaw NEW
Aruna FigeroaSpainBernardo Dominic QUALIFIED
Emily WhobreyAustraliaXuxue Feng NEGOTIATION
Greenwood BologniaFranceOnyama Limba NEGOTIATION
Stacey MacleadAustraliaElwin Sharvill QUALIFIED
Wickens NestleJapanStephen Shaw UNQUALIFIED
Faith GillianAustraliaBernardo Dominic NEW
Silvio SlusarskiAustraliaElwin Sharvill NEGOTIATION
Julie StensethUnited KingdomAmy Elsner NEGOTIATION
Darci PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson SchemmerIndiaAnna Fali QUALIFIED
Nicolas IturbideFranceAnna Fali PROPOSAL
Maria MarrierRussiaOnyama Limba QUALIFIED
Maisha RulapaughFranceStephen Shaw PROPOSAL
Deepesh ChuiCanadaXuxue Feng NEGOTIATION
Ricardo GauchoRussiaOnyama Limba PROPOSAL
Cody SaylorsGermanyAsiya Javayant NEW
Johnson SergiFranceBernardo Dominic QUALIFIED
Claire TollnerItalyStephen Shaw QUALIFIED
Morrow RutaFranceAsiya Javayant RENEWAL
Ashley DoeItalyAnna Fali RENEWAL
Aditya KuskoUnited KingdomAmy Elsner RENEWAL
Deepesh ChuiRussiaBernardo Dominic QUALIFIED
Aditya KuskoSpainAsiya Javayant QUALIFIED
Tony FollerIndiaAsiya Javayant RENEWAL
Jefferson SchemmerSpainAnna Fali NEGOTIATION
Frozen Columns
Name
Kaitlin Ostrosky
Maisha Rulapaugh
Chavez Briddick
Jennifer Amigon
Sinclair Waycott
Octavia Malet
Izzy Garufi
Greenwood Bolognia
Clifford Rim
Clifford Rim
Maisha Rulapaugh
Aditya Kusko
Kaitlin Ostrosky
Adams Morasca
Jefferson Schemmer
Wickens Nestle
Wickens Nestle
Maisha Rulapaugh
Cody Saylors
Faith Gillian
Juan Wieser
Silvio Slusarski
Leon Oldroyd
Mayumi Kolmetz
Alejandro Perin
Aditya Kusko
Aika Inouye
Sinclair Waycott
Leja Caldarera
Jefferson Schemmer
Wickens Nestle
Jones Vocelka
Morrow Ruta
Cody Saylors
Aruna Figeroa
Izzy Garufi
Munro Ferencz
Deepesh Chui
Leja Caldarera
Sinclair Waycott
Smith Glick
Isabel Bowley
Morrow Ruta
Deepesh Chui
Jeanfrancois Venere
Francesco Shinko
Cody Saylors
Tony Foller
Costa Dilliard
Aruna Figeroa
IdCountryDate
1000Italy2026-05-08
1001Argentina2026-05-15
1002Japan2026-05-06
1003Russia2026-05-07
1004Russia2026-05-09
1005Argentina2026-05-23
1006United Kingdom2026-05-10
1007United Kingdom2026-04-29
1008Canada2026-05-09
1009France2026-05-20
1010Russia2026-05-18
1011Germany2026-05-19
1012India2026-05-21
1013Spain2026-05-23
1014Argentina2026-05-22
1015United Kingdom2026-05-21
1016Russia2026-05-22
1017Australia2026-05-16
1018Brazil2026-05-04
1019Japan2026-05-14
1020Argentina2026-05-23
1021Italy2026-05-02
1022Japan2026-05-01
1023India2026-05-09
1024Brazil2026-05-10
1025United Kingdom2026-05-04
1026Italy2026-05-26
1027Russia2026-05-04
1028Spain2026-05-04
1029France2026-05-14
1030United Kingdom2026-05-03
1031Brazil2026-05-23
1032Canada2026-05-05
1033Russia2026-05-01
1034Canada2026-05-10
1035Brazil2026-05-02
1036United Kingdom2026-05-02
1037Canada2026-04-30
1038United Kingdom2026-04-28
1039Argentina2026-05-26
1040Canada2026-05-10
1041Canada2026-05-12
1042Italy2026-05-11
1043Argentina2026-05-12
1044Germany2026-05-26
1045Argentina2026-05-14
1046Germany2026-05-19
1047Germany2026-05-11
1048Australia2026-05-09
1049Argentina2026-05-06

On-Demand Data

NameIdCountryDate
Faith Gillian1000United Kingdom2026-05-21
Aruna Figeroa1001Canada2026-05-02
Greenwood Bolognia1002Russia2026-05-12
Sinclair Waycott1003United Kingdom2026-05-23
Adams Morasca1004Japan2026-05-18
Ricardo Gaucho1005Italy2026-05-24
Darci Poquette1006Italy2026-05-04
Ivar Paprocki1007Brazil2026-05-05
Maisha Rulapaugh1008Australia2026-05-23
Maisha Rulapaugh1009Spain2026-05-02
Jefferson Schemmer1010Brazil2026-05-04
Antonio Caudy1011Brazil2026-05-10
Clifford Rim1012Germany2026-05-26
Johnson Sergi1013Japan2026-05-05
Maisha Rulapaugh1014Japan2026-05-14
Julie Stenseth1015Germany2026-04-30
Alejandro Perin1016Australia2026-05-10
Emily Whobrey1017Argentina2026-04-29
Emily Whobrey1018Argentina2026-05-14
Jefferson Schemmer1019France2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaUnited KingdomIoni Bowcher NEW
Stacey MacleadUnited KingdomOnyama Limba RENEWAL
Murillo MaletCanadaAnna Fali NEGOTIATION
Antonio CaudyArgentinaAsiya Javayant RENEWAL
Adams MorascaRussiaIoni Bowcher NEW
Maisha RulapaughCanadaXuxue Feng NEW
Leon OldroydBrazilStephen Shaw NEGOTIATION
Salvatore StockhamRussiaElwin Sharvill NEGOTIATION
Sinclair WaycottRussiaStephen Shaw NEGOTIATION
Nicolas IturbideRussiaElwin Sharvill RENEWAL
Kaitlin OstroskyUnited KingdomOnyama Limba QUALIFIED
Greenwood BologniaUnited KingdomElwin Sharvill PROPOSAL
Munro FerenczSpainOnyama Limba QUALIFIED
Mujtaba NickaArgentinaOnyama Limba NEGOTIATION
Kadeem FlosiJapanIoni Bowcher UNQUALIFIED
Faith GillianIndiaOnyama Limba NEW
Francesco ShinkoItalyAsiya Javayant QUALIFIED
Maisha RulapaughGermanyAsiya Javayant UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner PROPOSAL
Isabel BowleyIndiaAsiya Javayant QUALIFIED
Juan WieserGermanyElwin Sharvill PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw NEGOTIATION
Johnson SergiRussiaStephen Shaw UNQUALIFIED
Faith GillianAustraliaBernardo Dominic NEW
Faith GillianArgentinaAnna Fali QUALIFIED
Darci PoquetteGermanyAmy Elsner UNQUALIFIED
Greenwood BologniaIndiaAmy Elsner QUALIFIED
Ivar PaprockiIndiaAnna Fali QUALIFIED
Cody SaylorsUnited KingdomBernardo Dominic NEW
Chavez BriddickFranceAmy Elsner NEW
Tony FollerBrazilAsiya Javayant RENEWAL
Claire TollnerFranceAmy Elsner NEGOTIATION
Morrow RutaGermanyStephen Shaw NEW
Juan WieserArgentinaXuxue Feng QUALIFIED
James ButtGermanyIvan Magalhaes NEGOTIATION
Alejandro PerinArgentinaBernardo Dominic NEGOTIATION
Munro FerenczCanadaStephen Shaw NEW
Aditya KuskoIndiaBernardo Dominic QUALIFIED
Misaki RoysterArgentinaXuxue Feng UNQUALIFIED
David DarakjyUnited KingdomAnna Fali PROPOSAL

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