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
Cody SaylorsRussiaAnna Fali PROPOSAL
Alejandro PerinItalyOnyama Limba PROPOSAL
Maria MarrierGermanyOnyama Limba NEGOTIATION
Jones VocelkaItalyStephen Shaw QUALIFIED
Nicolas IturbideUnited KingdomIoni Bowcher RENEWAL
Maria MarrierFranceBernardo Dominic NEW
Smith GlickIndiaOnyama Limba RENEWAL
David DarakjyFranceAsiya Javayant UNQUALIFIED
Claire TollnerBrazilStephen Shaw NEGOTIATION
Chavez BriddickAustraliaAnna Fali UNQUALIFIED
Julie StensethItalyIvan Magalhaes NEGOTIATION
Jeanfrancois VenereFranceOnyama Limba RENEWAL
Darci PoquetteAustraliaAnna Fali RENEWAL
Emily WhobreyItalyAnna Fali UNQUALIFIED
Johnson SergiBrazilAmy Elsner PROPOSAL
Jennifer AmigonJapanXuxue Feng NEW
Arvin AlbaresFranceXuxue Feng RENEWAL
Adams MorascaUnited KingdomXuxue Feng NEW
Clifford RimSpainIoni Bowcher PROPOSAL
Greenwood BologniaCanadaBernardo Dominic UNQUALIFIED
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Ivar PaprockiAustraliaBernardo Dominic QUALIFIED
Ricardo GauchoJapanAmy Elsner RENEWAL
Jones VocelkaCanadaAnna Fali UNQUALIFIED
Isabel BowleyIndiaXuxue Feng RENEWAL
Ivar PaprockiUnited KingdomBernardo Dominic NEW
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Aruna FigeroaItalyIoni Bowcher RENEWAL
Aika InouyeJapanOnyama Limba NEGOTIATION
Emily WhobreyUnited KingdomAnna Fali PROPOSAL
Kaitlin OstroskyFranceBernardo Dominic QUALIFIED
Juan WieserArgentinaIoni Bowcher NEW
Claire TollnerJapanAnna Fali PROPOSAL
Emily WhobreyRussiaBernardo Dominic RENEWAL
Julie StensethCanadaIoni Bowcher UNQUALIFIED
Leon OldroydGermanyXuxue Feng NEW
Maisha RulapaughFranceStephen Shaw RENEWAL
Jones VocelkaArgentinaOnyama Limba NEGOTIATION
Mayumi KolmetzFranceIvan Magalhaes NEW
Maria MarrierItalyAsiya Javayant QUALIFIED
Izzy GarufiGermanyAnna Fali NEW
Rodrigues CampainSpainXuxue Feng RENEWAL
Mujtaba NickaBrazilOnyama Limba NEW
Silvio SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
James ButtFranceAsiya Javayant RENEWAL
Jefferson SchemmerFranceBernardo Dominic RENEWAL
Julie StensethIndiaAsiya Javayant UNQUALIFIED
Octavia MaletGermanyAnna Fali NEW
Claire TollnerUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiFranceXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo MaletFranceIoni Bowcher PROPOSAL
Aika InouyeFranceStephen Shaw NEGOTIATION
Ricardo GauchoFranceElwin Sharvill NEGOTIATION
Ivar PaprockiSpainBernardo Dominic QUALIFIED
Deepesh ChuiUnited KingdomAmy Elsner UNQUALIFIED
Wickens NestleGermanyIoni Bowcher UNQUALIFIED
Rodrigues CampainFranceAsiya Javayant RENEWAL
Ivar PaprockiBrazilAsiya Javayant NEGOTIATION
Morrow RutaGermanyAsiya Javayant RENEWAL
Ricardo GauchoSpainXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire TollnerBrazil2026-04-26Feiner Bros NEW86Elwin Sharvill
1001Kadeem FlosiFrance2026-04-16Morlong Associates QUALIFIED31Asiya Javayant
1002Adams MorascaSpain2026-05-07Chanay, Jeffrey A Esq UNQUALIFIED5Stephen Shaw
1003Tony FollerIndia2026-04-28Chemel, James L Cpa UNQUALIFIED45Ivan Magalhaes
1004Ricardo GauchoAustralia2026-04-19Rousseaux, Michael Esq UNQUALIFIED4Asiya Javayant
1005David DarakjyItaly2026-04-18Commercial Press NEGOTIATION96Anna Fali
1006James ButtArgentina2026-05-02Feiner Bros UNQUALIFIED99Xuxue Feng
1007Munro FerenczRussia2026-04-15Rousseaux, Michael Esq QUALIFIED87Amy Elsner
1008Morrow RutaUnited Kingdom2026-04-11Morlong Associates NEGOTIATION73Amy Elsner
1009Munro FerenczJapan2026-04-21Feiner Bros UNQUALIFIED87Onyama Limba
1010Octavia MaletCanada2026-04-25Truhlar And Truhlar Attys PROPOSAL48Xuxue Feng
1011Emily WhobreyArgentina2026-04-25Commercial Press RENEWAL93Xuxue Feng
1012Morrow RutaAustralia2026-04-12Printing Dimensions UNQUALIFIED6Ivan Magalhaes
1013Wickens NestleIndia2026-04-29Rangoni Of Florence PROPOSAL75Xuxue Feng
1014Silvio SlusarskiBrazil2026-04-22Truhlar And Truhlar Attys PROPOSAL88Stephen Shaw
1015Francesco ShinkoUnited Kingdom2026-04-27Chemel, James L Cpa RENEWAL81Ioni Bowcher
1016Juan WieserSpain2026-04-30Rousseaux, Michael Esq PROPOSAL36Asiya Javayant
1017Adams MorascaIndia2026-04-18Chanay, Jeffrey A Esq RENEWAL82Anna Fali
1018Tony FollerRussia2026-05-04Truhlar And Truhlar Attys NEW81Elwin Sharvill
1019Jeanfrancois VenereAustralia2026-04-17Rangoni Of Florence UNQUALIFIED68Anna Fali
1020Adams MorascaGermany2026-04-14Feiner Bros UNQUALIFIED49Ivan Magalhaes
1021Wickens NestleRussia2026-05-05Rousseaux, Michael Esq QUALIFIED42Bernardo Dominic
1022Isabel BowleyAustralia2026-05-08Printing Dimensions NEGOTIATION47Onyama Limba
1023Darci PoquetteArgentina2026-04-26Rousseaux, Michael Esq UNQUALIFIED79Asiya Javayant
1024Aruna FigeroaItaly2026-04-19Rangoni Of Florence PROPOSAL54Stephen Shaw
1025Alejandro PerinAustralia2026-04-30King, Christopher A Esq RENEWAL1Elwin Sharvill
1026Silvio SlusarskiItaly2026-05-03Benton, John B Jr RENEWAL26Ioni Bowcher
1027Aika InouyeArgentina2026-05-04Benton, John B Jr NEGOTIATION88Ioni Bowcher
1028Kaitlin OstroskyAustralia2026-04-24Chapman, Ross E Esq QUALIFIED62Ioni Bowcher
1029Mayumi KolmetzRussia2026-04-23Chapman, Ross E Esq PROPOSAL3Asiya Javayant
1030Leon OldroydSpain2026-05-07Feltz Printing Service NEW58Stephen Shaw
1031Nicolas IturbideCanada2026-04-11Chapman, Ross E Esq NEGOTIATION93Elwin Sharvill
1032Julie StensethAustralia2026-05-02Dorl, James J Esq NEW90Stephen Shaw
1033Ivar PaprockiJapan2026-05-08Chemel, James L Cpa NEGOTIATION29Onyama Limba
1034Salvatore StockhamItaly2026-05-02Chapman, Ross E Esq QUALIFIED99Ivan Magalhaes
1035Antonio CaudyFrance2026-04-22Buckley Miller Wright NEW18Anna Fali
1036Cody SaylorsAustralia2026-04-27Chapman, Ross E Esq PROPOSAL44Asiya Javayant
1037Johnson SergiItaly2026-05-01Chemel, James L Cpa PROPOSAL15Elwin Sharvill
1038David DarakjyGermany2026-05-03Truhlar And Truhlar Attys QUALIFIED0Asiya Javayant
1039Sinclair WaycottUnited Kingdom2026-05-08Benton, John B Jr QUALIFIED42Anna Fali
1040Aruna FigeroaArgentina2026-04-11Chemel, James L Cpa NEW98Elwin Sharvill
1041Silvio SlusarskiSpain2026-04-21Feiner Bros QUALIFIED35Anna Fali
1042Adams MorascaAustralia2026-04-16Printing Dimensions NEGOTIATION32Asiya Javayant
1043Smith GlickArgentina2026-04-29Morlong Associates QUALIFIED93Stephen Shaw
1044Ivar PaprockiCanada2026-04-09Truhlar And Truhlar Attys NEW80Bernardo Dominic
1045Antonio CaudyFrance2026-04-24King, Christopher A Esq RENEWAL96Asiya Javayant
1046Sinclair WaycottUnited Kingdom2026-04-09Morlong Associates QUALIFIED53Amy Elsner
1047Misaki RoysterRussia2026-04-09Feiner Bros PROPOSAL79Ivan Magalhaes
1048Maisha RulapaughArgentina2026-05-06Feltz Printing Service NEGOTIATION80Ioni Bowcher
1049Aruna FigeroaSpain2026-04-18Chemel, James L Cpa QUALIFIED65Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleFranceIvan Magalhaes NEW
Rodrigues CampainItalyIoni Bowcher NEGOTIATION
Maisha RulapaughSpainAsiya Javayant RENEWAL
Ashley DoeAustraliaAmy Elsner PROPOSAL
Murillo MaletGermanyAsiya Javayant UNQUALIFIED
Misaki RoysterArgentinaAmy Elsner QUALIFIED
Jones VocelkaJapanAmy Elsner NEGOTIATION
Sinclair WaycottJapanAmy Elsner PROPOSAL
Murillo MaletSpainIvan Magalhaes PROPOSAL
Leon OldroydRussiaOnyama Limba UNQUALIFIED
Stacey MacleadArgentinaStephen Shaw QUALIFIED
Munro FerenczJapanAsiya Javayant RENEWAL
Murillo MaletCanadaOnyama Limba NEGOTIATION
Adams MorascaRussiaIoni Bowcher NEGOTIATION
Chavez BriddickBrazilBernardo Dominic NEGOTIATION
Claire TollnerGermanyIoni Bowcher QUALIFIED
Munro FerenczJapanElwin Sharvill NEW
Leja CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Darci PoquetteCanadaStephen Shaw UNQUALIFIED
Kaitlin OstroskyJapanAmy Elsner PROPOSAL
Adams MorascaIndiaXuxue Feng PROPOSAL
Leja CaldareraBrazilXuxue Feng RENEWAL
Jefferson SchemmerGermanyStephen Shaw NEW
Isabel BowleyJapanBernardo Dominic UNQUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill QUALIFIED
Juan WieserRussiaAsiya Javayant QUALIFIED
Isabel BowleyItalyBernardo Dominic NEW
Kadeem FlosiIndiaIvan Magalhaes RENEWAL
David DarakjySpainOnyama Limba NEW
Jefferson SchemmerBrazilAmy Elsner PROPOSAL
Smith GlickUnited KingdomBernardo Dominic PROPOSAL
Arvin AlbaresArgentinaAmy Elsner NEW
Stacey MacleadUnited KingdomAsiya Javayant QUALIFIED
Antonio CaudyBrazilIoni Bowcher NEGOTIATION
Chavez BriddickArgentinaBernardo Dominic NEW
Chavez BriddickBrazilAnna Fali NEGOTIATION
Aditya KuskoIndiaElwin Sharvill NEW
Jennifer AmigonSpainAnna Fali PROPOSAL
Isabel BowleyItalyXuxue Feng PROPOSAL
Salvatore StockhamRussiaBernardo Dominic NEW
Mujtaba NickaArgentinaAnna Fali RENEWAL
Greenwood BologniaGermanyElwin Sharvill NEW
Juan WieserJapanIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaAnna Fali UNQUALIFIED
Murillo MaletCanadaIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomAsiya Javayant PROPOSAL
Rodrigues CampainAustraliaStephen Shaw RENEWAL
Deepesh ChuiSpainAnna Fali QUALIFIED
Johnson SergiBrazilElwin Sharvill RENEWAL
James ButtSpainOnyama Limba UNQUALIFIED
Frozen Columns
Name
Wickens Nestle
Emily Whobrey
Johnson Sergi
Salvatore Stockham
Emily Whobrey
Maria Marrier
Silvio Slusarski
Octavia Malet
Aruna Figeroa
Juan Wieser
Adams Morasca
Aruna Figeroa
Ashley Doe
Wickens Nestle
Arvin Albares
Costa Dilliard
Francesco Shinko
Leon Oldroyd
Jones Vocelka
Adams Morasca
Ashley Doe
Murillo Malet
Cody Saylors
Stacey Maclead
Sinclair Waycott
Jefferson Schemmer
Cody Saylors
Julie Stenseth
Maria Marrier
David Darakjy
Greenwood Bolognia
Francesco Shinko
Antonio Caudy
Smith Glick
Stacey Maclead
Sinclair Waycott
Munro Ferencz
Adams Morasca
Kadeem Flosi
Smith Glick
Aditya Kusko
Ivar Paprocki
Salvatore Stockham
Aika Inouye
Munro Ferencz
Ashley Doe
Wickens Nestle
Greenwood Bolognia
Cody Saylors
Aditya Kusko
IdCountryDate
1000Australia2026-04-19
1001Japan2026-04-10
1002Japan2026-04-12
1003Russia2026-04-15
1004Germany2026-05-04
1005India2026-04-16
1006Argentina2026-04-22
1007Australia2026-04-16
1008Australia2026-04-18
1009Australia2026-04-14
1010France2026-05-08
1011Japan2026-04-28
1012France2026-04-14
1013Argentina2026-04-24
1014Russia2026-04-16
1015Australia2026-04-19
1016Spain2026-05-02
1017Argentina2026-04-16
1018Italy2026-04-30
1019Argentina2026-05-04
1020Russia2026-04-13
1021Canada2026-04-22
1022Germany2026-04-19
1023India2026-04-29
1024France2026-04-14
1025Japan2026-05-04
1026Germany2026-05-01
1027Japan2026-04-27
1028Italy2026-05-03
1029Japan2026-04-25
1030India2026-04-28
1031Russia2026-04-20
1032Russia2026-04-10
1033India2026-04-22
1034Japan2026-04-21
1035Germany2026-04-12
1036Spain2026-05-04
1037Australia2026-04-28
1038Argentina2026-04-30
1039Brazil2026-04-30
1040Spain2026-04-23
1041Italy2026-04-16
1042Brazil2026-05-07
1043Japan2026-04-12
1044Argentina2026-05-02
1045Italy2026-04-18
1046France2026-05-06
1047France2026-04-11
1048Canada2026-05-02
1049Brazil2026-04-15

On-Demand Data

NameIdCountryDate
Ricardo Gaucho1000Spain2026-04-24
Leja Caldarera1001Canada2026-04-24
Darci Poquette1002Brazil2026-04-26
Mujtaba Nicka1003United Kingdom2026-05-02
Cody Saylors1004Australia2026-04-18
Jefferson Schemmer1005Germany2026-04-30
Jefferson Schemmer1006Japan2026-05-01
Deepesh Chui1007United Kingdom2026-04-13
Murillo Malet1008Brazil2026-04-16
Francesco Shinko1009Canada2026-04-17
Murillo Malet1010Japan2026-04-11
Aruna Figeroa1011Germany2026-05-07
Alejandro Perin1012Germany2026-04-17
Mujtaba Nicka1013France2026-04-22
Julie Stenseth1014France2026-04-27
Salvatore Stockham1015Canada2026-05-08
Ricardo Gaucho1016India2026-05-02
Ricardo Gaucho1017Germany2026-05-06
Isabel Bowley1018Russia2026-04-20
Jones Vocelka1019Canada2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereAustraliaAnna Fali NEW
Kaitlin OstroskyAustraliaAsiya Javayant NEW
Antonio CaudyArgentinaIvan Magalhaes UNQUALIFIED
Adams MorascaSpainOnyama Limba PROPOSAL
James ButtCanadaIoni Bowcher NEGOTIATION
Claire TollnerJapanAnna Fali PROPOSAL
Murillo MaletArgentinaIoni Bowcher RENEWAL
Jennifer AmigonIndiaStephen Shaw QUALIFIED
Julie StensethIndiaOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomIoni Bowcher PROPOSAL
Aika InouyeUnited KingdomIvan Magalhaes RENEWAL
Julie StensethBrazilOnyama Limba PROPOSAL
Costa DilliardBrazilIvan Magalhaes UNQUALIFIED
Smith GlickSpainAmy Elsner RENEWAL
Munro FerenczFranceOnyama Limba UNQUALIFIED
Leon OldroydFranceIvan Magalhaes NEGOTIATION
Costa DilliardSpainIvan Magalhaes PROPOSAL
Rodrigues CampainCanadaIvan Magalhaes RENEWAL
Maisha RulapaughCanadaStephen Shaw PROPOSAL
Adams MorascaIndiaAmy Elsner QUALIFIED
Jennifer AmigonArgentinaOnyama Limba RENEWAL
Sinclair WaycottAustraliaXuxue Feng RENEWAL
Clifford RimArgentinaStephen Shaw NEGOTIATION
Greenwood BologniaBrazilElwin Sharvill UNQUALIFIED
Mayumi KolmetzAustraliaBernardo Dominic PROPOSAL
Maisha RulapaughJapanStephen Shaw QUALIFIED
Cody SaylorsRussiaAnna Fali UNQUALIFIED
Smith GlickArgentinaElwin Sharvill QUALIFIED
Kadeem FlosiFranceStephen Shaw PROPOSAL
Juan WieserBrazilStephen Shaw UNQUALIFIED
Stacey MacleadFranceBernardo Dominic NEW
Smith GlickUnited KingdomElwin Sharvill RENEWAL
Ivar PaprockiGermanyElwin Sharvill UNQUALIFIED
Murillo MaletAustraliaOnyama Limba NEGOTIATION
Adams MorascaSpainAnna Fali QUALIFIED
Salvatore StockhamUnited KingdomAmy Elsner PROPOSAL
Mujtaba NickaIndiaBernardo Dominic PROPOSAL
James ButtAustraliaBernardo Dominic UNQUALIFIED
Maria MarrierFranceOnyama Limba PROPOSAL
Misaki RoysterArgentinaStephen Shaw 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>