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
Chavez BriddickGermanyBernardo Dominic QUALIFIED
Jennifer AmigonRussiaElwin Sharvill NEGOTIATION
Wickens NestleUnited KingdomStephen Shaw QUALIFIED
Kadeem FlosiRussiaBernardo Dominic PROPOSAL
Leja CaldareraItalyAmy Elsner PROPOSAL
Emily WhobreyAustraliaXuxue Feng QUALIFIED
Munro FerenczUnited KingdomBernardo Dominic NEW
Alejandro PerinBrazilBernardo Dominic NEGOTIATION
Maria MarrierIndiaOnyama Limba NEW
Wickens NestleBrazilAnna Fali NEGOTIATION
Greenwood BologniaIndiaXuxue Feng PROPOSAL
Claire TollnerItalyStephen Shaw QUALIFIED
Jones VocelkaAustraliaBernardo Dominic NEW
Jones VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Arvin AlbaresCanadaAmy Elsner PROPOSAL
Rodrigues CampainJapanXuxue Feng QUALIFIED
Darci PoquetteJapanElwin Sharvill NEGOTIATION
Jeanfrancois VenereArgentinaOnyama Limba NEGOTIATION
Juan WieserItalyXuxue Feng UNQUALIFIED
Ricardo GauchoGermanyXuxue Feng UNQUALIFIED
Salvatore StockhamItalyOnyama Limba PROPOSAL
Jones VocelkaIndiaStephen Shaw PROPOSAL
Francesco ShinkoSpainXuxue Feng RENEWAL
Claire TollnerSpainAnna Fali QUALIFIED
Isabel BowleyItalyElwin Sharvill RENEWAL
Isabel BowleyFranceOnyama Limba RENEWAL
Aditya KuskoIndiaOnyama Limba NEW
Rodrigues CampainJapanElwin Sharvill PROPOSAL
Maria MarrierUnited KingdomAmy Elsner QUALIFIED
Aditya KuskoItalyOnyama Limba NEW
Jeanfrancois VenereRussiaElwin Sharvill RENEWAL
Aika InouyeSpainAnna Fali RENEWAL
Ricardo GauchoIndiaAmy Elsner NEGOTIATION
Emily WhobreyGermanyXuxue Feng UNQUALIFIED
Adams MorascaRussiaAmy Elsner QUALIFIED
Wickens NestleRussiaAmy Elsner UNQUALIFIED
Murillo MaletJapanAmy Elsner QUALIFIED
Murillo MaletBrazilAnna Fali NEW
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Ivar PaprockiJapanElwin Sharvill NEW
Jefferson SchemmerFranceAsiya Javayant NEW
Francesco ShinkoCanadaAmy Elsner NEGOTIATION
Faith GillianBrazilIoni Bowcher NEGOTIATION
Stacey MacleadRussiaStephen Shaw PROPOSAL
Maria MarrierItalyAmy Elsner NEW
Tony FollerGermanyAmy Elsner QUALIFIED
Nicolas IturbideIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaIndiaStephen Shaw UNQUALIFIED
Octavia MaletSpainBernardo Dominic NEW
James ButtAustraliaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterUnited KingdomIvan Magalhaes QUALIFIED
Nicolas IturbideSpainBernardo Dominic PROPOSAL
David DarakjyIndiaElwin Sharvill UNQUALIFIED
Wickens NestleBrazilStephen Shaw NEW
Rodrigues CampainRussiaIvan Magalhaes NEGOTIATION
Juan WieserUnited KingdomAmy Elsner QUALIFIED
Mayumi KolmetzJapanIvan Magalhaes QUALIFIED
Silvio SlusarskiIndiaIvan Magalhaes QUALIFIED
Claire TollnerBrazilElwin Sharvill UNQUALIFIED
Antonio CaudyItalyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeItaly2026-06-04Rangoni Of Florence PROPOSAL98Xuxue Feng
1001Jones VocelkaUnited Kingdom2026-06-02Rousseaux, Michael Esq RENEWAL9Xuxue Feng
1002James ButtArgentina2026-05-31Dorl, James J Esq RENEWAL8Onyama Limba
1003Costa DilliardGermany2026-05-27Feltz Printing Service UNQUALIFIED30Ivan Magalhaes
1004Octavia MaletIndia2026-05-29Dorl, James J Esq NEW49Elwin Sharvill
1005Johnson SergiAustralia2026-05-19Truhlar And Truhlar Attys NEGOTIATION77Ivan Magalhaes
1006Octavia MaletIndia2026-05-06King, Christopher A Esq NEGOTIATION68Ioni Bowcher
1007Ricardo GauchoFrance2026-05-14Dorl, James J Esq NEGOTIATION36Bernardo Dominic
1008Ricardo GauchoArgentina2026-05-09Feltz Printing Service RENEWAL72Ivan Magalhaes
1009Smith GlickGermany2026-05-23Feltz Printing Service UNQUALIFIED22Ioni Bowcher
1010Munro FerenczJapan2026-05-06King, Christopher A Esq NEW89Xuxue Feng
1011Darci PoquetteUnited Kingdom2026-05-14Chapman, Ross E Esq RENEWAL71Stephen Shaw
1012Morrow RutaUnited Kingdom2026-05-25Feltz Printing Service QUALIFIED92Asiya Javayant
1013Claire TollnerCanada2026-05-23Rousseaux, Michael Esq PROPOSAL18Elwin Sharvill
1014Jones VocelkaGermany2026-05-21Rangoni Of Florence UNQUALIFIED87Ioni Bowcher
1015Izzy GarufiCanada2026-06-01Rousseaux, Michael Esq UNQUALIFIED89Xuxue Feng
1016Clifford RimSpain2026-05-20Rangoni Of Florence NEW55Anna Fali
1017Chavez BriddickAustralia2026-05-31Printing Dimensions PROPOSAL6Elwin Sharvill
1018Wickens NestleBrazil2026-05-28Chanay, Jeffrey A Esq NEW73Stephen Shaw
1019Mujtaba NickaArgentina2026-06-02Feltz Printing Service NEGOTIATION48Ivan Magalhaes
1020Maisha RulapaughJapan2026-05-17Dorl, James J Esq QUALIFIED54Ioni Bowcher
1021Juan WieserAustralia2026-05-18Morlong Associates NEGOTIATION19Elwin Sharvill
1022Nicolas IturbideItaly2026-05-30Truhlar And Truhlar Attys RENEWAL51Stephen Shaw
1023Kaitlin OstroskyGermany2026-05-20Benton, John B Jr NEW16Amy Elsner
1024Jennifer AmigonFrance2026-06-02Rousseaux, Michael Esq UNQUALIFIED46Ioni Bowcher
1025Mayumi KolmetzItaly2026-05-26Feltz Printing Service NEGOTIATION12Asiya Javayant
1026Jennifer AmigonBrazil2026-05-29Rousseaux, Michael Esq PROPOSAL92Amy Elsner
1027Aika InouyeFrance2026-05-11Morlong Associates UNQUALIFIED77Xuxue Feng
1028Stacey MacleadItaly2026-06-04Rousseaux, Michael Esq PROPOSAL79Anna Fali
1029Alejandro PerinItaly2026-05-31Chemel, James L Cpa PROPOSAL95Ivan Magalhaes
1030Nicolas IturbideGermany2026-05-27King, Christopher A Esq NEW3Xuxue Feng
1031Leon OldroydGermany2026-06-02Buckley Miller Wright NEW25Anna Fali
1032Juan WieserBrazil2026-05-11Morlong Associates QUALIFIED84Ivan Magalhaes
1033Silvio SlusarskiGermany2026-05-23Chanay, Jeffrey A Esq QUALIFIED80Ioni Bowcher
1034Aditya KuskoUnited Kingdom2026-05-08King, Christopher A Esq UNQUALIFIED7Ivan Magalhaes
1035Ashley DoeRussia2026-05-11Rousseaux, Michael Esq NEW13Bernardo Dominic
1036James ButtBrazil2026-05-23Dorl, James J Esq NEGOTIATION40Bernardo Dominic
1037Izzy GarufiFrance2026-05-12Chanay, Jeffrey A Esq NEW13Bernardo Dominic
1038Clifford RimArgentina2026-05-25Benton, John B Jr QUALIFIED85Ioni Bowcher
1039Ricardo GauchoUnited Kingdom2026-06-01Chapman, Ross E Esq RENEWAL86Amy Elsner
1040Sinclair WaycottBrazil2026-05-23Commercial Press RENEWAL62Anna Fali
1041Darci PoquetteJapan2026-05-24Chemel, James L Cpa RENEWAL23Anna Fali
1042Jefferson SchemmerJapan2026-05-23Morlong Associates UNQUALIFIED26Xuxue Feng
1043Deepesh ChuiItaly2026-05-09Benton, John B Jr NEGOTIATION46Bernardo Dominic
1044Deepesh ChuiSpain2026-05-16King, Christopher A Esq PROPOSAL45Elwin Sharvill
1045Maisha RulapaughRussia2026-05-18Printing Dimensions RENEWAL72Elwin Sharvill
1046Darci PoquetteCanada2026-05-19King, Christopher A Esq PROPOSAL62Onyama Limba
1047Stacey MacleadFrance2026-05-10Commercial Press UNQUALIFIED17Stephen Shaw
1048Arvin AlbaresAustralia2026-05-09Printing Dimensions NEW10Ioni Bowcher
1049Alejandro PerinAustralia2026-05-27Printing Dimensions UNQUALIFIED75Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonGermanyXuxue Feng PROPOSAL
Jennifer AmigonSpainOnyama Limba PROPOSAL
Sinclair WaycottSpainBernardo Dominic UNQUALIFIED
Claire TollnerFranceIoni Bowcher NEGOTIATION
Cody SaylorsRussiaOnyama Limba NEW
Murillo MaletRussiaAmy Elsner NEW
Munro FerenczRussiaStephen Shaw RENEWAL
Octavia MaletArgentinaAnna Fali NEGOTIATION
Murillo MaletGermanyXuxue Feng NEW
Aditya KuskoBrazilAsiya Javayant UNQUALIFIED
Leon OldroydJapanAmy Elsner NEW
Misaki RoysterUnited KingdomElwin Sharvill PROPOSAL
Claire TollnerSpainXuxue Feng UNQUALIFIED
Salvatore StockhamJapanStephen Shaw NEW
James ButtUnited KingdomStephen Shaw NEW
Maria MarrierIndiaElwin Sharvill RENEWAL
David DarakjyGermanyOnyama Limba NEGOTIATION
Aika InouyeFranceAnna Fali QUALIFIED
Mujtaba NickaJapanAsiya Javayant PROPOSAL
Silvio SlusarskiSpainElwin Sharvill QUALIFIED
Costa DilliardItalyIoni Bowcher PROPOSAL
Juan WieserGermanyElwin Sharvill RENEWAL
Aditya KuskoBrazilXuxue Feng QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng UNQUALIFIED
Rodrigues CampainIndiaAnna Fali RENEWAL
Rodrigues CampainArgentinaBernardo Dominic NEW
Antonio CaudyBrazilElwin Sharvill NEW
Cody SaylorsBrazilStephen Shaw UNQUALIFIED
Johnson SergiAustraliaXuxue Feng RENEWAL
Stacey MacleadJapanIoni Bowcher UNQUALIFIED
Antonio CaudySpainOnyama Limba NEGOTIATION
Johnson SergiCanadaIvan Magalhaes NEW
Isabel BowleyGermanyElwin Sharvill NEGOTIATION
Kadeem FlosiFranceBernardo Dominic RENEWAL
Mujtaba NickaItalyIoni Bowcher QUALIFIED
Nicolas IturbideSpainOnyama Limba UNQUALIFIED
David DarakjyFranceOnyama Limba NEW
Costa DilliardUnited KingdomXuxue Feng UNQUALIFIED
Isabel BowleyArgentinaAmy Elsner UNQUALIFIED
Kaitlin OstroskyIndiaAmy Elsner NEW
Aika InouyeRussiaAnna Fali QUALIFIED
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Maisha RulapaughGermanyAmy Elsner RENEWAL
Wickens NestleSpainElwin Sharvill QUALIFIED
Octavia MaletArgentinaAnna Fali PROPOSAL
Ashley DoeAustraliaAnna Fali NEW
Faith GillianGermanyAsiya Javayant PROPOSAL
Rodrigues CampainGermanyAnna Fali NEGOTIATION
Jennifer AmigonJapanOnyama Limba NEGOTIATION
Smith GlickSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
Aditya Kusko
Costa Dilliard
Aika Inouye
Nicolas Iturbide
Sinclair Waycott
Morrow Ruta
Maria Marrier
Juan Wieser
Aruna Figeroa
Jones Vocelka
Nicolas Iturbide
Maria Marrier
Jefferson Schemmer
Izzy Garufi
Smith Glick
Julie Stenseth
Greenwood Bolognia
Deepesh Chui
Rodrigues Campain
Jeanfrancois Venere
Jefferson Schemmer
Mayumi Kolmetz
Juan Wieser
Greenwood Bolognia
Isabel Bowley
Kadeem Flosi
Kaitlin Ostrosky
Faith Gillian
Clifford Rim
Nicolas Iturbide
Mujtaba Nicka
James Butt
Cody Saylors
Jones Vocelka
Julie Stenseth
Isabel Bowley
Maisha Rulapaugh
Jennifer Amigon
Izzy Garufi
Ivar Paprocki
Morrow Ruta
Jeanfrancois Venere
Chavez Briddick
Maisha Rulapaugh
Johnson Sergi
Antonio Caudy
Smith Glick
Jefferson Schemmer
Isabel Bowley
Jennifer Amigon
IdCountryDate
1000Spain2026-05-08
1001Brazil2026-05-06
1002Brazil2026-05-16
1003Brazil2026-05-13
1004Spain2026-05-20
1005India2026-05-16
1006Argentina2026-05-27
1007Spain2026-05-17
1008Japan2026-05-23
1009India2026-06-03
1010Canada2026-06-03
1011Italy2026-06-02
1012Russia2026-06-03
1013Italy2026-05-21
1014Russia2026-06-01
1015Argentina2026-05-19
1016France2026-05-09
1017Italy2026-05-16
1018India2026-05-23
1019Argentina2026-05-23
1020Spain2026-05-27
1021United Kingdom2026-05-07
1022France2026-05-25
1023Italy2026-06-03
1024Japan2026-05-10
1025Australia2026-06-02
1026France2026-05-09
1027Canada2026-05-27
1028Brazil2026-06-03
1029Russia2026-05-19
1030France2026-05-12
1031Japan2026-05-10
1032Canada2026-05-07
1033Japan2026-05-08
1034United Kingdom2026-05-10
1035France2026-05-06
1036Brazil2026-05-12
1037India2026-05-22
1038United Kingdom2026-05-12
1039Spain2026-05-30
1040Canada2026-06-03
1041France2026-05-30
1042Canada2026-05-13
1043Argentina2026-05-27
1044Australia2026-05-18
1045Australia2026-06-03
1046Canada2026-05-14
1047Spain2026-06-02
1048Australia2026-06-02
1049United Kingdom2026-05-23

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Japan2026-06-02
Morrow Ruta1001France2026-05-26
Maria Marrier1002India2026-05-09
Jones Vocelka1003Canada2026-05-31
Jeanfrancois Venere1004United Kingdom2026-05-12
David Darakjy1005Italy2026-06-02
Jones Vocelka1006India2026-05-18
James Butt1007Argentina2026-05-25
James Butt1008Argentina2026-05-28
Ashley Doe1009Russia2026-05-20
Isabel Bowley1010Spain2026-05-21
Faith Gillian1011Argentina2026-05-29
David Darakjy1012France2026-06-01
Jeanfrancois Venere1013Italy2026-05-26
Silvio Slusarski1014Australia2026-05-27
Wickens Nestle1015United Kingdom2026-05-26
Deepesh Chui1016United Kingdom2026-05-15
Aruna Figeroa1017Japan2026-05-31
Jeanfrancois Venere1018India2026-05-31
Darci Poquette1019Germany2026-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley DoeCanadaStephen Shaw QUALIFIED
Ivar PaprockiBrazilAmy Elsner NEW
Leon OldroydItalyXuxue Feng NEGOTIATION
Ricardo GauchoSpainAmy Elsner QUALIFIED
Morrow RutaIndiaAnna Fali QUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill NEW
Alejandro PerinRussiaOnyama Limba RENEWAL
Morrow RutaJapanAsiya Javayant NEW
Mayumi KolmetzItalyAnna Fali RENEWAL
Kaitlin OstroskySpainBernardo Dominic UNQUALIFIED
Jennifer AmigonBrazilAsiya Javayant NEGOTIATION
Maria MarrierCanadaAnna Fali PROPOSAL
Jefferson SchemmerCanadaXuxue Feng RENEWAL
Rodrigues CampainJapanIvan Magalhaes QUALIFIED
James ButtUnited KingdomElwin Sharvill PROPOSAL
Aika InouyeIndiaAmy Elsner NEGOTIATION
Leja CaldareraUnited KingdomAmy Elsner QUALIFIED
Tony FollerFranceAmy Elsner PROPOSAL
Isabel BowleyJapanBernardo Dominic UNQUALIFIED
Alejandro PerinItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoBrazilAmy Elsner NEGOTIATION
Ivar PaprockiItalyBernardo Dominic PROPOSAL
James ButtGermanyXuxue Feng QUALIFIED
Chavez BriddickItalyIvan Magalhaes RENEWAL
Darci PoquetteBrazilOnyama Limba PROPOSAL
Kaitlin OstroskyItalyAsiya Javayant UNQUALIFIED
Mujtaba NickaBrazilBernardo Dominic RENEWAL
Stacey MacleadGermanyXuxue Feng PROPOSAL
Salvatore StockhamArgentinaAnna Fali UNQUALIFIED
Leon OldroydAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereItalyOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaIoni Bowcher NEW
David DarakjyItalyStephen Shaw QUALIFIED
Juan WieserCanadaElwin Sharvill PROPOSAL
Kadeem FlosiRussiaXuxue Feng UNQUALIFIED
Costa DilliardCanadaXuxue Feng UNQUALIFIED
Kadeem FlosiFranceAsiya Javayant RENEWAL
Ricardo GauchoUnited KingdomBernardo Dominic QUALIFIED
Leja CaldareraUnited KingdomAnna Fali QUALIFIED
Clifford RimArgentinaStephen Shaw 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>