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
Rodrigues CampainItalyIoni Bowcher PROPOSAL
Sinclair WaycottJapanBernardo Dominic RENEWAL
Costa DilliardItalyAmy Elsner UNQUALIFIED
Alejandro PerinUnited KingdomAnna Fali PROPOSAL
Emily WhobreyRussiaIvan Magalhaes UNQUALIFIED
Wickens NestleIndiaElwin Sharvill RENEWAL
Kadeem FlosiGermanyStephen Shaw NEGOTIATION
Chavez BriddickGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereUnited KingdomElwin Sharvill QUALIFIED
Nicolas IturbideRussiaAmy Elsner PROPOSAL
Jennifer AmigonRussiaXuxue Feng PROPOSAL
Mayumi KolmetzFranceElwin Sharvill QUALIFIED
Faith GillianFranceBernardo Dominic PROPOSAL
Isabel BowleyArgentinaIoni Bowcher NEW
Ivar PaprockiAustraliaElwin Sharvill QUALIFIED
Faith GillianSpainAsiya Javayant QUALIFIED
Ivar PaprockiBrazilAnna Fali NEW
Darci PoquetteSpainElwin Sharvill NEGOTIATION
Emily WhobreyAustraliaAsiya Javayant RENEWAL
David DarakjyIndiaIoni Bowcher UNQUALIFIED
Jefferson SchemmerAustraliaOnyama Limba UNQUALIFIED
Johnson SergiRussiaBernardo Dominic UNQUALIFIED
David DarakjySpainAsiya Javayant RENEWAL
Mujtaba NickaSpainAnna Fali NEW
Chavez BriddickIndiaIvan Magalhaes RENEWAL
Kadeem FlosiBrazilStephen Shaw UNQUALIFIED
Julie StensethArgentinaXuxue Feng PROPOSAL
Antonio CaudyGermanyIoni Bowcher UNQUALIFIED
Juan WieserArgentinaAnna Fali PROPOSAL
Salvatore StockhamIndiaAmy Elsner UNQUALIFIED
Smith GlickBrazilOnyama Limba QUALIFIED
Darci PoquetteCanadaStephen Shaw QUALIFIED
Rodrigues CampainFranceIvan Magalhaes NEW
Johnson SergiItalyAnna Fali NEW
Mayumi KolmetzBrazilElwin Sharvill QUALIFIED
Tony FollerRussiaElwin Sharvill NEW
Alejandro PerinCanadaElwin Sharvill RENEWAL
Sinclair WaycottBrazilStephen Shaw NEGOTIATION
Kadeem FlosiRussiaOnyama Limba NEW
Izzy GarufiIndiaStephen Shaw QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba NEW
Jennifer AmigonBrazilXuxue Feng PROPOSAL
Munro FerenczRussiaElwin Sharvill PROPOSAL
Johnson SergiJapanXuxue Feng NEW
Rodrigues CampainFranceIoni Bowcher PROPOSAL
Izzy GarufiAustraliaElwin Sharvill RENEWAL
Morrow RutaAustraliaBernardo Dominic NEW
Kadeem FlosiSpainAsiya Javayant NEW
Aditya KuskoArgentinaStephen Shaw UNQUALIFIED
Misaki RoysterJapanBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainItalyAnna Fali RENEWAL
Salvatore StockhamBrazilAsiya Javayant NEW
Antonio CaudyItalyBernardo Dominic NEW
Julie StensethGermanyAnna Fali UNQUALIFIED
Claire TollnerAustraliaElwin Sharvill PROPOSAL
Antonio CaudyUnited KingdomBernardo Dominic RENEWAL
Leja CaldareraCanadaOnyama Limba RENEWAL
Greenwood BologniaBrazilAmy Elsner UNQUALIFIED
Julie StensethAustraliaIoni Bowcher UNQUALIFIED
Mujtaba NickaGermanyAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamJapan2026-04-30Rousseaux, Michael Esq RENEWAL69Ioni Bowcher
1001Mujtaba NickaCanada2026-04-23Buckley Miller Wright NEGOTIATION91Amy Elsner
1002Aditya KuskoGermany2026-05-10Feltz Printing Service UNQUALIFIED29Elwin Sharvill
1003Sinclair WaycottUnited Kingdom2026-05-05King, Christopher A Esq PROPOSAL74Ivan Magalhaes
1004Cody SaylorsIndia2026-04-25Chemel, James L Cpa QUALIFIED21Stephen Shaw
1005Maisha RulapaughGermany2026-05-13Chanay, Jeffrey A Esq RENEWAL9Elwin Sharvill
1006Emily WhobreyArgentina2026-05-13Truhlar And Truhlar Attys NEW74Onyama Limba
1007Murillo MaletSpain2026-05-14Dorl, James J Esq UNQUALIFIED19Ivan Magalhaes
1008Mujtaba NickaSpain2026-05-17Rangoni Of Florence QUALIFIED49Stephen Shaw
1009Misaki RoysterGermany2026-04-25Dorl, James J Esq NEW63Amy Elsner
1010Mayumi KolmetzIndia2026-05-10Chemel, James L Cpa UNQUALIFIED35Xuxue Feng
1011Izzy GarufiRussia2026-05-11Dorl, James J Esq UNQUALIFIED23Anna Fali
1012Rodrigues CampainSpain2026-05-20Chapman, Ross E Esq QUALIFIED79Stephen Shaw
1013David DarakjyRussia2026-05-21King, Christopher A Esq RENEWAL24Stephen Shaw
1014Morrow RutaAustralia2026-05-07Feiner Bros NEGOTIATION21Ioni Bowcher
1015Smith GlickGermany2026-04-24Feiner Bros NEGOTIATION43Asiya Javayant
1016Wickens NestleSpain2026-05-04Chemel, James L Cpa PROPOSAL14Stephen Shaw
1017Aruna FigeroaRussia2026-05-12Chemel, James L Cpa QUALIFIED86Xuxue Feng
1018Ivar PaprockiGermany2026-05-04Chapman, Ross E Esq QUALIFIED7Stephen Shaw
1019Arvin AlbaresJapan2026-04-29Morlong Associates PROPOSAL51Anna Fali
1020Munro FerenczGermany2026-04-26Commercial Press UNQUALIFIED35Stephen Shaw
1021Kadeem FlosiUnited Kingdom2026-05-04Chapman, Ross E Esq UNQUALIFIED39Elwin Sharvill
1022Mujtaba NickaArgentina2026-05-21Printing Dimensions RENEWAL48Stephen Shaw
1023Stacey MacleadGermany2026-04-29Chapman, Ross E Esq NEGOTIATION88Anna Fali
1024Alejandro PerinAustralia2026-04-23Chemel, James L Cpa RENEWAL88Asiya Javayant
1025Mujtaba NickaBrazil2026-05-09Feiner Bros PROPOSAL41Amy Elsner
1026James ButtIndia2026-05-08Chanay, Jeffrey A Esq NEGOTIATION59Amy Elsner
1027Isabel BowleyBrazil2026-04-27Chanay, Jeffrey A Esq QUALIFIED24Anna Fali
1028Johnson SergiUnited Kingdom2026-04-25Feiner Bros RENEWAL40Amy Elsner
1029Aruna FigeroaFrance2026-04-30Chanay, Jeffrey A Esq RENEWAL88Asiya Javayant
1030Faith GillianJapan2026-05-07King, Christopher A Esq PROPOSAL27Asiya Javayant
1031Claire TollnerUnited Kingdom2026-05-11Rangoni Of Florence PROPOSAL33Elwin Sharvill
1032Francesco ShinkoBrazil2026-04-30Chemel, James L Cpa UNQUALIFIED37Asiya Javayant
1033Francesco ShinkoGermany2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED88Onyama Limba
1034Nicolas IturbideCanada2026-05-16King, Christopher A Esq RENEWAL48Anna Fali
1035Sinclair WaycottBrazil2026-05-05Feiner Bros QUALIFIED3Asiya Javayant
1036Claire TollnerIndia2026-05-11Rangoni Of Florence UNQUALIFIED46Amy Elsner
1037Cody SaylorsCanada2026-04-27Commercial Press NEGOTIATION66Anna Fali
1038Jefferson SchemmerRussia2026-05-21Truhlar And Truhlar Attys NEW76Bernardo Dominic
1039Ivar PaprockiFrance2026-05-15Buckley Miller Wright RENEWAL59Elwin Sharvill
1040Morrow RutaCanada2026-05-02Chanay, Jeffrey A Esq QUALIFIED96Anna Fali
1041Aruna FigeroaCanada2026-05-11Commercial Press PROPOSAL15Amy Elsner
1042Deepesh ChuiSpain2026-04-30King, Christopher A Esq PROPOSAL98Ioni Bowcher
1043Clifford RimIndia2026-04-30Rangoni Of Florence NEGOTIATION43Amy Elsner
1044James ButtItaly2026-05-18Truhlar And Truhlar Attys NEGOTIATION2Anna Fali
1045Aika InouyeItaly2026-05-02Feiner Bros UNQUALIFIED11Elwin Sharvill
1046Mujtaba NickaJapan2026-05-02Dorl, James J Esq QUALIFIED55Onyama Limba
1047Greenwood BologniaRussia2026-04-25Chemel, James L Cpa QUALIFIED29Amy Elsner
1048Salvatore StockhamUnited Kingdom2026-04-24Buckley Miller Wright NEW2Anna Fali
1049Darci PoquetteGermany2026-05-12Chemel, James L Cpa NEGOTIATION19Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyAustraliaOnyama Limba QUALIFIED
Salvatore StockhamCanadaXuxue Feng QUALIFIED
Maria MarrierUnited KingdomXuxue Feng NEGOTIATION
Izzy GarufiArgentinaXuxue Feng UNQUALIFIED
Izzy GarufiSpainAsiya Javayant NEW
Maisha RulapaughIndiaElwin Sharvill NEW
Mayumi KolmetzIndiaXuxue Feng QUALIFIED
Munro FerenczJapanAmy Elsner RENEWAL
Mujtaba NickaArgentinaBernardo Dominic PROPOSAL
Emily WhobreyCanadaAsiya Javayant NEGOTIATION
Kaitlin OstroskyGermanyOnyama Limba NEW
Rodrigues CampainBrazilAmy Elsner RENEWAL
Adams MorascaBrazilXuxue Feng NEGOTIATION
Silvio SlusarskiUnited KingdomElwin Sharvill RENEWAL
Cody SaylorsCanadaXuxue Feng NEGOTIATION
Jones VocelkaUnited KingdomXuxue Feng NEW
Jennifer AmigonRussiaBernardo Dominic QUALIFIED
James ButtBrazilElwin Sharvill RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
Ivar PaprockiAustraliaBernardo Dominic UNQUALIFIED
Rodrigues CampainIndiaOnyama Limba NEGOTIATION
David DarakjyAustraliaBernardo Dominic PROPOSAL
Leja CaldareraRussiaAmy Elsner RENEWAL
Julie StensethCanadaElwin Sharvill UNQUALIFIED
Adams MorascaArgentinaAnna Fali RENEWAL
Morrow RutaItalyIvan Magalhaes QUALIFIED
Deepesh ChuiIndiaAnna Fali NEGOTIATION
Arvin AlbaresSpainBernardo Dominic NEGOTIATION
Wickens NestleJapanIoni Bowcher RENEWAL
Ashley DoeJapanBernardo Dominic NEW
Claire TollnerRussiaIoni Bowcher QUALIFIED
Jennifer AmigonJapanAsiya Javayant UNQUALIFIED
Antonio CaudyFranceXuxue Feng NEGOTIATION
Ivar PaprockiSpainAsiya Javayant PROPOSAL
Octavia MaletGermanyElwin Sharvill PROPOSAL
Emily WhobreySpainStephen Shaw NEW
Jefferson SchemmerSpainElwin Sharvill PROPOSAL
Leon OldroydCanadaXuxue Feng NEGOTIATION
Emily WhobreyGermanyElwin Sharvill UNQUALIFIED
Mujtaba NickaCanadaIvan Magalhaes NEGOTIATION
Salvatore StockhamBrazilOnyama Limba QUALIFIED
Munro FerenczSpainIoni Bowcher RENEWAL
Misaki RoysterArgentinaAmy Elsner RENEWAL
Isabel BowleyRussiaIvan Magalhaes QUALIFIED
Aditya KuskoItalyStephen Shaw RENEWAL
Maria MarrierGermanyOnyama Limba PROPOSAL
Rodrigues CampainFranceElwin Sharvill NEW
Nicolas IturbideFranceElwin Sharvill QUALIFIED
Greenwood BologniaItalyElwin Sharvill QUALIFIED
Jennifer AmigonFranceIoni Bowcher NEW
Frozen Columns
Name
Costa Dilliard
Julie Stenseth
Greenwood Bolognia
Mayumi Kolmetz
Tony Foller
Julie Stenseth
Leon Oldroyd
Silvio Slusarski
Rodrigues Campain
Clifford Rim
Francesco Shinko
David Darakjy
Rodrigues Campain
Tony Foller
Maria Marrier
James Butt
Wickens Nestle
Cody Saylors
Alejandro Perin
Mujtaba Nicka
Deepesh Chui
David Darakjy
Jeanfrancois Venere
Claire Tollner
Izzy Garufi
Costa Dilliard
Antonio Caudy
Johnson Sergi
Tony Foller
Misaki Royster
Morrow Ruta
Darci Poquette
Maisha Rulapaugh
Jefferson Schemmer
Izzy Garufi
Deepesh Chui
Greenwood Bolognia
Francesco Shinko
James Butt
Nicolas Iturbide
Misaki Royster
Costa Dilliard
Salvatore Stockham
Jones Vocelka
Maria Marrier
Ashley Doe
Smith Glick
Aruna Figeroa
Alejandro Perin
Munro Ferencz
IdCountryDate
1000Italy2026-05-17
1001Germany2026-04-28
1002India2026-04-26
1003Russia2026-05-05
1004France2026-04-28
1005Argentina2026-05-01
1006Germany2026-05-06
1007Argentina2026-05-14
1008United Kingdom2026-05-18
1009Germany2026-05-16
1010Japan2026-05-20
1011Australia2026-05-15
1012Spain2026-05-06
1013Russia2026-04-26
1014Spain2026-04-25
1015Japan2026-05-21
1016Russia2026-05-16
1017India2026-04-29
1018Japan2026-05-21
1019Australia2026-05-11
1020Argentina2026-04-28
1021France2026-05-22
1022Italy2026-05-02
1023United Kingdom2026-05-08
1024Italy2026-05-21
1025Italy2026-04-25
1026Italy2026-05-04
1027Argentina2026-04-24
1028Russia2026-04-23
1029Italy2026-05-18
1030France2026-04-23
1031Argentina2026-05-18
1032France2026-05-22
1033Russia2026-05-15
1034United Kingdom2026-05-20
1035United Kingdom2026-04-26
1036Canada2026-05-19
1037Australia2026-04-27
1038Australia2026-05-13
1039Brazil2026-04-30
1040Argentina2026-05-03
1041Italy2026-05-13
1042France2026-04-28
1043India2026-05-09
1044France2026-05-17
1045Brazil2026-04-30
1046Spain2026-05-08
1047Germany2026-04-28
1048Italy2026-05-02
1049Russia2026-05-19

On-Demand Data

NameIdCountryDate
Tony Foller1000Russia2026-05-18
Morrow Ruta1001Spain2026-04-26
Cody Saylors1002Spain2026-05-11
Adams Morasca1003Germany2026-05-10
Adams Morasca1004Japan2026-05-16
Tony Foller1005India2026-05-16
Leja Caldarera1006France2026-04-23
James Butt1007Russia2026-04-24
Maria Marrier1008Russia2026-05-09
Greenwood Bolognia1009Russia2026-04-23
Smith Glick1010Italy2026-05-02
Tony Foller1011Argentina2026-04-26
Aika Inouye1012Spain2026-04-30
Alejandro Perin1013Italy2026-05-11
James Butt1014Brazil2026-05-22
Jeanfrancois Venere1015Australia2026-05-01
Chavez Briddick1016Canada2026-05-07
Murillo Malet1017United Kingdom2026-05-01
Isabel Bowley1018Australia2026-05-12
Aika Inouye1019Australia2026-05-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerJapanOnyama Limba PROPOSAL
Francesco ShinkoFranceAnna Fali RENEWAL
Arvin AlbaresGermanyIvan Magalhaes NEGOTIATION
Stacey MacleadSpainBernardo Dominic PROPOSAL
Antonio CaudyIndiaXuxue Feng NEW
Ivar PaprockiJapanElwin Sharvill NEGOTIATION
Smith GlickJapanAmy Elsner NEW
James ButtItalyOnyama Limba NEW
Isabel BowleyJapanAnna Fali RENEWAL
Nicolas IturbideUnited KingdomAsiya Javayant PROPOSAL
Costa DilliardBrazilXuxue Feng RENEWAL
Morrow RutaArgentinaIoni Bowcher NEW
Cody SaylorsGermanyBernardo Dominic QUALIFIED
Clifford RimArgentinaIvan Magalhaes NEGOTIATION
Aika InouyeAustraliaStephen Shaw NEGOTIATION
Darci PoquetteIndiaXuxue Feng PROPOSAL
Tony FollerArgentinaAmy Elsner PROPOSAL
Maria MarrierIndiaBernardo Dominic NEW
Johnson SergiAustraliaOnyama Limba QUALIFIED
Cody SaylorsBrazilOnyama Limba RENEWAL
Nicolas IturbideIndiaAnna Fali UNQUALIFIED
Greenwood BologniaFranceIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaIoni Bowcher RENEWAL
Mujtaba NickaFranceBernardo Dominic PROPOSAL
Kaitlin OstroskyUnited KingdomOnyama Limba PROPOSAL
Ivar PaprockiArgentinaIvan Magalhaes RENEWAL
Arvin AlbaresSpainAsiya Javayant UNQUALIFIED
Francesco ShinkoRussiaBernardo Dominic NEW
Murillo MaletSpainBernardo Dominic NEW
Leon OldroydCanadaElwin Sharvill UNQUALIFIED
Ricardo GauchoBrazilIoni Bowcher RENEWAL
Aika InouyeItalyAmy Elsner QUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher NEGOTIATION
Rodrigues CampainUnited KingdomStephen Shaw NEGOTIATION
Aditya KuskoArgentinaIoni Bowcher UNQUALIFIED
Chavez BriddickIndiaAnna Fali UNQUALIFIED
Jeanfrancois VenereSpainStephen Shaw UNQUALIFIED
Aditya KuskoFranceElwin Sharvill PROPOSAL
Francesco ShinkoSpainOnyama Limba UNQUALIFIED
Antonio CaudyArgentinaAnna Fali RENEWAL

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