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
Aika InouyeRussiaElwin Sharvill NEGOTIATION
Claire TollnerItalyXuxue Feng NEW
Tony FollerIndiaBernardo Dominic NEW
Munro FerenczIndiaIoni Bowcher PROPOSAL
Mayumi KolmetzGermanyStephen Shaw NEGOTIATION
Chavez BriddickRussiaAmy Elsner RENEWAL
Julie StensethAustraliaIvan Magalhaes QUALIFIED
Sinclair WaycottAustraliaAmy Elsner NEW
Jefferson SchemmerItalyElwin Sharvill PROPOSAL
Jones VocelkaCanadaIvan Magalhaes QUALIFIED
Arvin AlbaresFranceStephen Shaw RENEWAL
James ButtItalyBernardo Dominic UNQUALIFIED
Morrow RutaAustraliaBernardo Dominic UNQUALIFIED
Isabel BowleyBrazilOnyama Limba RENEWAL
Sinclair WaycottGermanyIvan Magalhaes NEW
Arvin AlbaresSpainIvan Magalhaes UNQUALIFIED
Aditya KuskoGermanyXuxue Feng QUALIFIED
Salvatore StockhamJapanIvan Magalhaes QUALIFIED
Silvio SlusarskiRussiaIvan Magalhaes NEW
Aruna FigeroaBrazilBernardo Dominic RENEWAL
Jennifer AmigonBrazilXuxue Feng NEGOTIATION
Francesco ShinkoAustraliaAnna Fali UNQUALIFIED
Jennifer AmigonGermanyAsiya Javayant NEGOTIATION
Silvio SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Leon OldroydAustraliaBernardo Dominic NEGOTIATION
Faith GillianGermanyStephen Shaw RENEWAL
Juan WieserSpainAsiya Javayant NEGOTIATION
Izzy GarufiIndiaBernardo Dominic UNQUALIFIED
Tony FollerSpainStephen Shaw PROPOSAL
Costa DilliardFranceIoni Bowcher NEGOTIATION
Smith GlickJapanStephen Shaw PROPOSAL
Salvatore StockhamAustraliaStephen Shaw UNQUALIFIED
Claire TollnerBrazilAnna Fali NEGOTIATION
Adams MorascaJapanElwin Sharvill NEGOTIATION
Chavez BriddickItalyBernardo Dominic PROPOSAL
Munro FerenczGermanyBernardo Dominic UNQUALIFIED
Tony FollerSpainIoni Bowcher PROPOSAL
Octavia MaletIndiaIvan Magalhaes RENEWAL
Kadeem FlosiBrazilStephen Shaw NEW
Deepesh ChuiRussiaElwin Sharvill PROPOSAL
Kadeem FlosiItalyElwin Sharvill NEGOTIATION
Darci PoquetteCanadaIoni Bowcher UNQUALIFIED
Jennifer AmigonJapanXuxue Feng UNQUALIFIED
Costa DilliardJapanElwin Sharvill NEGOTIATION
Claire TollnerGermanyStephen Shaw RENEWAL
Antonio CaudyBrazilAsiya Javayant PROPOSAL
Murillo MaletIndiaIoni Bowcher UNQUALIFIED
Aika InouyeJapanOnyama Limba PROPOSAL
Mujtaba NickaJapanBernardo Dominic QUALIFIED
Smith GlickArgentinaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoArgentinaAmy Elsner UNQUALIFIED
Emily WhobreyIndiaBernardo Dominic NEGOTIATION
Juan WieserUnited KingdomElwin Sharvill NEGOTIATION
Johnson SergiFranceAsiya Javayant NEW
Leja CaldareraJapanBernardo Dominic RENEWAL
Antonio CaudyJapanAsiya Javayant NEGOTIATION
Jennifer AmigonAustraliaBernardo Dominic QUALIFIED
Morrow RutaAustraliaIvan Magalhaes NEW
Julie StensethSpainStephen Shaw QUALIFIED
Deepesh ChuiRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire TollnerSpain2026-04-14Feiner Bros RENEWAL66Asiya Javayant
1001Aika InouyeSpain2026-04-18Chemel, James L Cpa UNQUALIFIED39Onyama Limba
1002Jennifer AmigonJapan2026-04-17Commercial Press NEGOTIATION97Amy Elsner
1003James ButtBrazil2026-04-05Chanay, Jeffrey A Esq QUALIFIED5Ivan Magalhaes
1004Munro FerenczArgentina2026-04-10Chemel, James L Cpa PROPOSAL40Stephen Shaw
1005Maria MarrierItaly2026-04-25Feltz Printing Service RENEWAL82Elwin Sharvill
1006David DarakjyJapan2026-04-12Rousseaux, Michael Esq NEW47Amy Elsner
1007Aditya KuskoSpain2026-04-19Dorl, James J Esq RENEWAL53Bernardo Dominic
1008Juan WieserBrazil2026-04-05Rousseaux, Michael Esq NEGOTIATION41Elwin Sharvill
1009Wickens NestleGermany2026-04-19Morlong Associates RENEWAL26Stephen Shaw
1010Arvin AlbaresGermany2026-04-24Dorl, James J Esq UNQUALIFIED1Xuxue Feng
1011Izzy GarufiJapan2026-04-07King, Christopher A Esq RENEWAL35Bernardo Dominic
1012James ButtArgentina2026-04-17King, Christopher A Esq UNQUALIFIED56Xuxue Feng
1013Kadeem FlosiSpain2026-04-17Benton, John B Jr QUALIFIED52Onyama Limba
1014Murillo MaletCanada2026-04-18Feltz Printing Service NEW64Ioni Bowcher
1015Rodrigues CampainItaly2026-04-20Feiner Bros UNQUALIFIED59Bernardo Dominic
1016Mujtaba NickaFrance2026-04-13Chemel, James L Cpa PROPOSAL45Xuxue Feng
1017Maria MarrierAustralia2026-04-18Commercial Press NEGOTIATION13Stephen Shaw
1018Munro FerenczArgentina2026-04-05King, Christopher A Esq RENEWAL25Anna Fali
1019Maria MarrierSpain2026-04-25Morlong Associates PROPOSAL80Anna Fali
1020Tony FollerUnited Kingdom2026-04-22Chapman, Ross E Esq NEW20Elwin Sharvill
1021Ricardo GauchoBrazil2026-04-21King, Christopher A Esq RENEWAL22Asiya Javayant
1022Kadeem FlosiIndia2026-04-19Feiner Bros NEW51Elwin Sharvill
1023Kaitlin OstroskyRussia2026-04-27Truhlar And Truhlar Attys RENEWAL20Bernardo Dominic
1024Alejandro PerinJapan2026-04-20Truhlar And Truhlar Attys NEW14Ioni Bowcher
1025Costa DilliardArgentina2026-04-19Feiner Bros UNQUALIFIED59Stephen Shaw
1026Munro FerenczBrazil2026-04-06Chemel, James L Cpa UNQUALIFIED37Elwin Sharvill
1027Greenwood BologniaJapan2026-04-16Buckley Miller Wright UNQUALIFIED51Stephen Shaw
1028Maria MarrierSpain2026-04-11Printing Dimensions NEGOTIATION50Xuxue Feng
1029Stacey MacleadSpain2026-04-28Rangoni Of Florence UNQUALIFIED8Stephen Shaw
1030Mayumi KolmetzIndia2026-04-17Buckley Miller Wright PROPOSAL31Ioni Bowcher
1031Kadeem FlosiRussia2026-04-20Dorl, James J Esq QUALIFIED88Bernardo Dominic
1032Aika InouyeUnited Kingdom2026-04-08Chapman, Ross E Esq RENEWAL7Amy Elsner
1033Costa DilliardArgentina2026-04-24Rangoni Of Florence NEGOTIATION95Elwin Sharvill
1034Adams MorascaCanada2026-04-17Feiner Bros QUALIFIED93Ivan Magalhaes
1035Mayumi KolmetzArgentina2026-04-10Printing Dimensions UNQUALIFIED68Ioni Bowcher
1036Ivar PaprockiArgentina2026-04-18Feltz Printing Service PROPOSAL28Ioni Bowcher
1037Tony FollerUnited Kingdom2026-05-02Benton, John B Jr NEW94Onyama Limba
1038Kaitlin OstroskyItaly2026-04-18Chanay, Jeffrey A Esq NEGOTIATION22Xuxue Feng
1039Izzy GarufiAustralia2026-04-05Chapman, Ross E Esq PROPOSAL97Asiya Javayant
1040Ivar PaprockiRussia2026-04-12Printing Dimensions NEGOTIATION4Xuxue Feng
1041Rodrigues CampainFrance2026-04-12Chapman, Ross E Esq QUALIFIED69Onyama Limba
1042Alejandro PerinCanada2026-04-14Rousseaux, Michael Esq NEGOTIATION54Xuxue Feng
1043Jeanfrancois VenereUnited Kingdom2026-04-05Chemel, James L Cpa NEW47Stephen Shaw
1044Juan WieserRussia2026-04-27King, Christopher A Esq UNQUALIFIED30Bernardo Dominic
1045Aditya KuskoRussia2026-04-28Buckley Miller Wright QUALIFIED72Onyama Limba
1046Juan WieserArgentina2026-04-23Buckley Miller Wright NEW49Bernardo Dominic
1047Aika InouyeUnited Kingdom2026-04-27Buckley Miller Wright RENEWAL54Stephen Shaw
1048Jefferson SchemmerAustralia2026-04-08Morlong Associates NEW24Onyama Limba
1049Johnson SergiGermany2026-04-28Chapman, Ross E Esq RENEWAL70Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardItalyAsiya Javayant QUALIFIED
Mayumi KolmetzItalyIvan Magalhaes NEW
Juan WieserArgentinaIvan Magalhaes PROPOSAL
Nicolas IturbideCanadaElwin Sharvill PROPOSAL
Deepesh ChuiArgentinaXuxue Feng PROPOSAL
Maria MarrierCanadaIoni Bowcher NEW
Munro FerenczArgentinaAsiya Javayant RENEWAL
Faith GillianUnited KingdomXuxue Feng UNQUALIFIED
Julie StensethArgentinaBernardo Dominic NEGOTIATION
Mayumi KolmetzRussiaIvan Magalhaes RENEWAL
Alejandro PerinItalyAsiya Javayant NEW
Mujtaba NickaSpainXuxue Feng NEW
Maria MarrierIndiaOnyama Limba NEW
Smith GlickIndiaAnna Fali NEGOTIATION
Munro FerenczIndiaBernardo Dominic RENEWAL
Silvio SlusarskiItalyAnna Fali PROPOSAL
Murillo MaletFranceStephen Shaw PROPOSAL
Juan WieserSpainElwin Sharvill QUALIFIED
Nicolas IturbideGermanyAnna Fali UNQUALIFIED
Sinclair WaycottAustraliaBernardo Dominic NEW
Aruna FigeroaItalyIoni Bowcher UNQUALIFIED
Stacey MacleadItalyElwin Sharvill UNQUALIFIED
Jefferson SchemmerGermanyOnyama Limba RENEWAL
Morrow RutaAustraliaOnyama Limba UNQUALIFIED
Faith GillianArgentinaOnyama Limba NEGOTIATION
Salvatore StockhamArgentinaAsiya Javayant QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill PROPOSAL
Faith GillianItalyElwin Sharvill QUALIFIED
Aruna FigeroaAustraliaAmy Elsner UNQUALIFIED
Juan WieserAustraliaIoni Bowcher UNQUALIFIED
Cody SaylorsJapanAnna Fali NEW
Morrow RutaJapanElwin Sharvill QUALIFIED
Kadeem FlosiRussiaAsiya Javayant PROPOSAL
Salvatore StockhamItalyXuxue Feng NEW
Aditya KuskoIndiaXuxue Feng PROPOSAL
Morrow RutaIndiaAmy Elsner QUALIFIED
Jennifer AmigonBrazilElwin Sharvill NEW
Mayumi KolmetzArgentinaAmy Elsner NEW
Antonio CaudyJapanStephen Shaw UNQUALIFIED
Francesco ShinkoFranceElwin Sharvill NEW
Costa DilliardIndiaElwin Sharvill NEGOTIATION
Francesco ShinkoSpainAnna Fali RENEWAL
Ivar PaprockiJapanStephen Shaw RENEWAL
Clifford RimIndiaAsiya Javayant PROPOSAL
Smith GlickRussiaBernardo Dominic NEGOTIATION
Alejandro PerinCanadaXuxue Feng UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill NEW
Maria MarrierItalyIoni Bowcher UNQUALIFIED
Smith GlickItalyAmy Elsner NEGOTIATION
Cody SaylorsJapanAmy Elsner UNQUALIFIED
Frozen Columns
Name
Kaitlin Ostrosky
Greenwood Bolognia
Misaki Royster
Misaki Royster
Juan Wieser
Aika Inouye
Jefferson Schemmer
James Butt
Costa Dilliard
Isabel Bowley
Maisha Rulapaugh
Ashley Doe
Morrow Ruta
Jefferson Schemmer
Adams Morasca
Aruna Figeroa
Ivar Paprocki
Rodrigues Campain
Wickens Nestle
Costa Dilliard
Greenwood Bolognia
Aditya Kusko
Mujtaba Nicka
Jefferson Schemmer
Faith Gillian
Munro Ferencz
Misaki Royster
Juan Wieser
Julie Stenseth
Murillo Malet
Juan Wieser
Cody Saylors
Mayumi Kolmetz
Morrow Ruta
Izzy Garufi
Octavia Malet
Jennifer Amigon
Smith Glick
Leon Oldroyd
Francesco Shinko
Leja Caldarera
Darci Poquette
Clifford Rim
Adams Morasca
Smith Glick
Maria Marrier
Leja Caldarera
Kaitlin Ostrosky
Izzy Garufi
Maria Marrier
IdCountryDate
1000Russia2026-04-16
1001United Kingdom2026-04-11
1002Italy2026-04-20
1003Japan2026-04-15
1004Italy2026-04-03
1005Canada2026-04-11
1006Germany2026-04-28
1007Brazil2026-04-19
1008Brazil2026-04-21
1009Australia2026-04-21
1010United Kingdom2026-04-23
1011Germany2026-04-04
1012Canada2026-04-20
1013Canada2026-04-13
1014Canada2026-04-25
1015Australia2026-04-04
1016France2026-04-20
1017United Kingdom2026-04-08
1018Russia2026-04-07
1019Russia2026-04-16
1020France2026-04-22
1021Canada2026-04-06
1022Canada2026-04-21
1023Canada2026-04-12
1024India2026-04-15
1025Japan2026-04-24
1026France2026-04-04
1027France2026-04-18
1028Spain2026-04-29
1029Brazil2026-04-20
1030France2026-04-09
1031Spain2026-04-16
1032Argentina2026-04-15
1033Spain2026-04-06
1034France2026-04-10
1035Spain2026-04-13
1036Brazil2026-04-05
1037Japan2026-04-17
1038Spain2026-04-29
1039Spain2026-04-20
1040Germany2026-04-09
1041Canada2026-04-17
1042Australia2026-04-03
1043Australia2026-04-06
1044United Kingdom2026-04-11
1045United Kingdom2026-04-15
1046Russia2026-04-28
1047Australia2026-04-10
1048Argentina2026-04-10
1049Italy2026-05-01

On-Demand Data

NameIdCountryDate
Aika Inouye1000United Kingdom2026-04-15
Claire Tollner1001United Kingdom2026-04-27
Smith Glick1002India2026-04-04
David Darakjy1003Canada2026-04-08
Emily Whobrey1004Russia2026-04-23
Sinclair Waycott1005Australia2026-05-02
Clifford Rim1006Italy2026-04-06
Nicolas Iturbide1007Russia2026-04-03
Ashley Doe1008Germany2026-04-11
Antonio Caudy1009Russia2026-04-20
Jones Vocelka1010Australia2026-05-01
Greenwood Bolognia1011Canada2026-04-04
Aditya Kusko1012Russia2026-05-01
Aruna Figeroa1013Argentina2026-04-27
Claire Tollner1014Italy2026-04-09
Leon Oldroyd1015Spain2026-04-27
Darci Poquette1016Spain2026-04-27
James Butt1017Argentina2026-04-05
Jefferson Schemmer1018Spain2026-04-03
Cody Saylors1019Germany2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletIndiaIoni Bowcher QUALIFIED
Silvio SlusarskiArgentinaAmy Elsner NEGOTIATION
Faith GillianRussiaAsiya Javayant QUALIFIED
Nicolas IturbideFranceAnna Fali UNQUALIFIED
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Ricardo GauchoSpainIvan Magalhaes RENEWAL
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Adams MorascaSpainIvan Magalhaes NEW
Munro FerenczJapanOnyama Limba NEW
Leja CaldareraFranceOnyama Limba QUALIFIED
Aditya KuskoIndiaIoni Bowcher PROPOSAL
Mayumi KolmetzJapanElwin Sharvill UNQUALIFIED
Misaki RoysterItalyIoni Bowcher NEGOTIATION
Faith GillianBrazilIvan Magalhaes PROPOSAL
Nicolas IturbideSpainAmy Elsner NEW
Juan WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha RulapaughUnited KingdomIoni Bowcher RENEWAL
Octavia MaletItalyAmy Elsner PROPOSAL
Antonio CaudyJapanIvan Magalhaes UNQUALIFIED
Jefferson SchemmerJapanAmy Elsner NEGOTIATION
Greenwood BologniaCanadaOnyama Limba PROPOSAL
Aika InouyeSpainOnyama Limba QUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes NEGOTIATION
Aruna FigeroaArgentinaBernardo Dominic UNQUALIFIED
Munro FerenczFranceIoni Bowcher NEW
James ButtCanadaBernardo Dominic RENEWAL
Isabel BowleyGermanyOnyama Limba UNQUALIFIED
Costa DilliardSpainAnna Fali NEGOTIATION
Darci PoquetteBrazilAsiya Javayant UNQUALIFIED
Leja CaldareraSpainIoni Bowcher UNQUALIFIED
Ashley DoeFranceElwin Sharvill QUALIFIED
Murillo MaletCanadaXuxue Feng UNQUALIFIED
Izzy GarufiCanadaAsiya Javayant NEGOTIATION
Costa DilliardGermanyAmy Elsner NEGOTIATION
Greenwood BologniaBrazilAmy Elsner NEW
James ButtJapanAnna Fali NEGOTIATION
Faith GillianRussiaOnyama Limba PROPOSAL
Faith GillianAustraliaOnyama Limba PROPOSAL
Aditya KuskoItalyIoni Bowcher PROPOSAL
Rodrigues CampainRussiaOnyama Limba UNQUALIFIED

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