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
Faith GillianIndiaAsiya Javayant NEW
Kaitlin OstroskySpainElwin Sharvill QUALIFIED
James ButtArgentinaBernardo Dominic PROPOSAL
Mayumi KolmetzArgentinaAnna Fali UNQUALIFIED
Emily WhobreyRussiaBernardo Dominic QUALIFIED
Adams MorascaGermanyIoni Bowcher NEW
Maria MarrierFranceBernardo Dominic NEW
Deepesh ChuiAustraliaAsiya Javayant NEW
Sinclair WaycottJapanStephen Shaw PROPOSAL
Claire TollnerAustraliaIoni Bowcher NEGOTIATION
Mayumi KolmetzRussiaStephen Shaw NEGOTIATION
Jennifer AmigonRussiaOnyama Limba NEGOTIATION
Ricardo GauchoRussiaAsiya Javayant NEW
Francesco ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Maisha RulapaughJapanOnyama Limba NEW
Misaki RoysterArgentinaElwin Sharvill NEW
Deepesh ChuiFranceAmy Elsner RENEWAL
Costa DilliardCanadaBernardo Dominic PROPOSAL
Faith GillianItalyIvan Magalhaes NEGOTIATION
Morrow RutaIndiaAnna Fali QUALIFIED
Wickens NestleArgentinaAsiya Javayant UNQUALIFIED
Wickens NestleFranceIvan Magalhaes PROPOSAL
Juan WieserBrazilStephen Shaw NEW
Munro FerenczGermanyBernardo Dominic NEW
Aditya KuskoItalyIvan Magalhaes QUALIFIED
Aika InouyeCanadaIvan Magalhaes NEW
Sinclair WaycottGermanyAnna Fali QUALIFIED
Kaitlin OstroskyArgentinaBernardo Dominic NEGOTIATION
Darci PoquetteArgentinaStephen Shaw QUALIFIED
Johnson SergiFranceOnyama Limba NEGOTIATION
Clifford RimFranceOnyama Limba QUALIFIED
Aditya KuskoRussiaAnna Fali NEW
Nicolas IturbideGermanyAsiya Javayant QUALIFIED
James ButtBrazilOnyama Limba NEW
Jennifer AmigonJapanBernardo Dominic QUALIFIED
Chavez BriddickSpainAmy Elsner UNQUALIFIED
Cody SaylorsJapanElwin Sharvill NEW
Jeanfrancois VenereAustraliaIvan Magalhaes NEW
James ButtCanadaStephen Shaw QUALIFIED
Leon OldroydRussiaAsiya Javayant NEGOTIATION
Johnson SergiBrazilElwin Sharvill UNQUALIFIED
Misaki RoysterJapanOnyama Limba RENEWAL
Rodrigues CampainArgentinaAmy Elsner NEW
Kadeem FlosiBrazilOnyama Limba QUALIFIED
Ashley DoeFranceXuxue Feng RENEWAL
Faith GillianBrazilIoni Bowcher NEGOTIATION
Octavia MaletFranceIoni Bowcher RENEWAL
Adams MorascaFranceBernardo Dominic QUALIFIED
Jefferson SchemmerIndiaBernardo Dominic NEGOTIATION
Johnson SergiCanadaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaFranceIoni Bowcher NEGOTIATION
Kadeem FlosiBrazilBernardo Dominic NEGOTIATION
Darci PoquetteAustraliaOnyama Limba PROPOSAL
Leon OldroydIndiaElwin Sharvill RENEWAL
Sinclair WaycottArgentinaAsiya Javayant QUALIFIED
Octavia MaletArgentinaStephen Shaw NEGOTIATION
Chavez BriddickJapanAmy Elsner NEGOTIATION
Ricardo GauchoItalyAsiya Javayant NEGOTIATION
Julie StensethFranceIoni Bowcher RENEWAL
Arvin AlbaresSpainStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianSpain2026-05-15Rangoni Of Florence QUALIFIED53Bernardo Dominic
1001Jefferson SchemmerIndia2026-06-09King, Christopher A Esq NEW6Elwin Sharvill
1002Arvin AlbaresBrazil2026-05-15Buckley Miller Wright RENEWAL99Bernardo Dominic
1003Isabel BowleyGermany2026-05-26King, Christopher A Esq RENEWAL23Anna Fali
1004Leja CaldareraBrazil2026-05-20Morlong Associates RENEWAL37Anna Fali
1005Juan WieserJapan2026-06-08Feltz Printing Service UNQUALIFIED38Bernardo Dominic
1006Emily WhobreyItaly2026-05-30Chapman, Ross E Esq PROPOSAL65Stephen Shaw
1007Francesco ShinkoItaly2026-06-09Truhlar And Truhlar Attys PROPOSAL66Elwin Sharvill
1008Ashley DoeAustralia2026-05-21Truhlar And Truhlar Attys NEW60Anna Fali
1009Jennifer AmigonBrazil2026-05-30Dorl, James J Esq RENEWAL61Anna Fali
1010Chavez BriddickJapan2026-05-12Chanay, Jeffrey A Esq QUALIFIED39Onyama Limba
1011Juan WieserFrance2026-06-09Feiner Bros RENEWAL12Xuxue Feng
1012Juan WieserAustralia2026-06-06Buckley Miller Wright RENEWAL37Ioni Bowcher
1013Tony FollerGermany2026-05-29Chanay, Jeffrey A Esq NEW29Amy Elsner
1014Darci PoquetteFrance2026-05-25Buckley Miller Wright PROPOSAL24Asiya Javayant
1015Mayumi KolmetzJapan2026-05-18Feiner Bros QUALIFIED83Ivan Magalhaes
1016Johnson SergiGermany2026-05-29King, Christopher A Esq QUALIFIED11Ivan Magalhaes
1017Octavia MaletItaly2026-06-06King, Christopher A Esq QUALIFIED80Asiya Javayant
1018Rodrigues CampainUnited Kingdom2026-06-05Printing Dimensions QUALIFIED70Elwin Sharvill
1019Kadeem FlosiUnited Kingdom2026-05-28Dorl, James J Esq NEW78Anna Fali
1020Aika InouyeFrance2026-06-01Feiner Bros RENEWAL80Anna Fali
1021Rodrigues CampainItaly2026-05-13Rousseaux, Michael Esq NEW60Ioni Bowcher
1022Stacey MacleadJapan2026-06-03Printing Dimensions UNQUALIFIED19Anna Fali
1023Jennifer AmigonCanada2026-05-26Printing Dimensions PROPOSAL81Anna Fali
1024Octavia MaletIndia2026-05-28King, Christopher A Esq PROPOSAL19Asiya Javayant
1025Jones VocelkaUnited Kingdom2026-06-01King, Christopher A Esq PROPOSAL69Onyama Limba
1026Costa DilliardFrance2026-05-16Printing Dimensions QUALIFIED65Ioni Bowcher
1027Maisha RulapaughRussia2026-06-02Chanay, Jeffrey A Esq NEGOTIATION83Amy Elsner
1028Kadeem FlosiJapan2026-05-19Rousseaux, Michael Esq UNQUALIFIED18Asiya Javayant
1029Nicolas IturbideJapan2026-06-01Feiner Bros UNQUALIFIED68Amy Elsner
1030Ricardo GauchoItaly2026-05-22Commercial Press NEW15Stephen Shaw
1031Darci PoquetteSpain2026-05-26Printing Dimensions RENEWAL23Ivan Magalhaes
1032Julie StensethItaly2026-05-30Rangoni Of Florence NEGOTIATION36Ivan Magalhaes
1033Arvin AlbaresAustralia2026-06-08Printing Dimensions NEW17Xuxue Feng
1034Emily WhobreyGermany2026-06-08Buckley Miller Wright PROPOSAL40Amy Elsner
1035Jefferson SchemmerUnited Kingdom2026-05-15Chemel, James L Cpa RENEWAL5Onyama Limba
1036Jeanfrancois VenereGermany2026-05-19Chanay, Jeffrey A Esq QUALIFIED16Ioni Bowcher
1037Claire TollnerAustralia2026-05-26Chapman, Ross E Esq UNQUALIFIED5Ioni Bowcher
1038Ricardo GauchoAustralia2026-06-05Chemel, James L Cpa NEGOTIATION67Bernardo Dominic
1039Juan WieserAustralia2026-05-17Truhlar And Truhlar Attys NEW28Xuxue Feng
1040Maria MarrierItaly2026-05-18Chapman, Ross E Esq PROPOSAL97Amy Elsner
1041Jeanfrancois VenereJapan2026-05-17Rangoni Of Florence UNQUALIFIED94Xuxue Feng
1042Johnson SergiFrance2026-05-31Feltz Printing Service PROPOSAL58Onyama Limba
1043Darci PoquetteRussia2026-05-15Rangoni Of Florence QUALIFIED23Xuxue Feng
1044Octavia MaletGermany2026-05-13Chemel, James L Cpa NEGOTIATION11Anna Fali
1045Isabel BowleyRussia2026-05-14Buckley Miller Wright RENEWAL90Amy Elsner
1046Darci PoquetteArgentina2026-05-29Morlong Associates NEW99Onyama Limba
1047Maria MarrierAustralia2026-05-21Buckley Miller Wright RENEWAL81Anna Fali
1048Claire TollnerUnited Kingdom2026-05-29Chanay, Jeffrey A Esq NEGOTIATION26Onyama Limba
1049Smith GlickAustralia2026-05-16Feiner Bros QUALIFIED93Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinArgentinaIoni Bowcher UNQUALIFIED
Stacey MacleadRussiaAmy Elsner RENEWAL
Chavez BriddickJapanBernardo Dominic UNQUALIFIED
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Adams MorascaIndiaElwin Sharvill UNQUALIFIED
Jones VocelkaSpainIoni Bowcher NEW
Jennifer AmigonSpainXuxue Feng NEW
Rodrigues CampainJapanIvan Magalhaes NEGOTIATION
Nicolas IturbideSpainAnna Fali PROPOSAL
Aditya KuskoIndiaAmy Elsner NEGOTIATION
Munro FerenczJapanOnyama Limba NEGOTIATION
Johnson SergiAustraliaIoni Bowcher PROPOSAL
Darci PoquetteItalyAsiya Javayant RENEWAL
Jones VocelkaAustraliaBernardo Dominic NEW
Isabel BowleyArgentinaStephen Shaw PROPOSAL
Ivar PaprockiCanadaOnyama Limba PROPOSAL
Aditya KuskoAustraliaIvan Magalhaes PROPOSAL
Adams MorascaFranceBernardo Dominic NEW
David DarakjyArgentinaXuxue Feng NEW
Ricardo GauchoGermanyOnyama Limba PROPOSAL
Jennifer AmigonSpainXuxue Feng QUALIFIED
Kaitlin OstroskyAustraliaAmy Elsner UNQUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant QUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher PROPOSAL
Murillo MaletArgentinaOnyama Limba UNQUALIFIED
Ashley DoeRussiaBernardo Dominic UNQUALIFIED
Maisha RulapaughCanadaAnna Fali NEW
Faith GillianGermanyElwin Sharvill UNQUALIFIED
Costa DilliardAustraliaElwin Sharvill PROPOSAL
Jones VocelkaItalyXuxue Feng PROPOSAL
Mujtaba NickaAustraliaXuxue Feng UNQUALIFIED
Rodrigues CampainUnited KingdomXuxue Feng PROPOSAL
Rodrigues CampainRussiaBernardo Dominic NEGOTIATION
Darci PoquetteIndiaIvan Magalhaes UNQUALIFIED
Murillo MaletFranceAmy Elsner QUALIFIED
Stacey MacleadItalyOnyama Limba RENEWAL
David DarakjyIndiaElwin Sharvill QUALIFIED
Aruna FigeroaJapanAnna Fali PROPOSAL
David DarakjyArgentinaXuxue Feng PROPOSAL
Chavez BriddickFranceElwin Sharvill NEW
Jeanfrancois VenereAustraliaAmy Elsner UNQUALIFIED
Tony FollerArgentinaBernardo Dominic PROPOSAL
Nicolas IturbideGermanyAnna Fali QUALIFIED
Alejandro PerinSpainIvan Magalhaes QUALIFIED
Emily WhobreySpainStephen Shaw NEW
Cody SaylorsGermanyElwin Sharvill PROPOSAL
James ButtRussiaAnna Fali NEW
Julie StensethItalyAmy Elsner RENEWAL
Ivar PaprockiBrazilBernardo Dominic UNQUALIFIED
Clifford RimUnited KingdomAnna Fali PROPOSAL
Frozen Columns
Name
Aruna Figeroa
Darci Poquette
Francesco Shinko
Kaitlin Ostrosky
Clifford Rim
Julie Stenseth
David Darakjy
Aditya Kusko
Misaki Royster
Jefferson Schemmer
Cody Saylors
Octavia Malet
Kadeem Flosi
Maisha Rulapaugh
Jennifer Amigon
David Darakjy
Ivar Paprocki
Nicolas Iturbide
Jennifer Amigon
Claire Tollner
Claire Tollner
David Darakjy
Costa Dilliard
Leja Caldarera
Deepesh Chui
Izzy Garufi
Misaki Royster
Maria Marrier
Leja Caldarera
Clifford Rim
Deepesh Chui
Francesco Shinko
Claire Tollner
Aditya Kusko
Maisha Rulapaugh
Arvin Albares
Kadeem Flosi
Misaki Royster
Leja Caldarera
Ashley Doe
Wickens Nestle
Ricardo Gaucho
Adams Morasca
Sinclair Waycott
Morrow Ruta
Arvin Albares
Leon Oldroyd
Kaitlin Ostrosky
Nicolas Iturbide
Arvin Albares
IdCountryDate
1000Russia2026-06-03
1001Italy2026-06-02
1002Japan2026-05-24
1003Australia2026-05-17
1004Russia2026-05-25
1005Canada2026-05-31
1006France2026-05-24
1007Russia2026-05-13
1008Japan2026-05-28
1009Germany2026-06-01
1010Italy2026-05-11
1011Spain2026-06-05
1012Russia2026-06-08
1013India2026-05-22
1014Spain2026-05-14
1015Brazil2026-05-31
1016Brazil2026-06-08
1017Japan2026-05-14
1018India2026-05-18
1019Argentina2026-06-07
1020United Kingdom2026-05-28
1021Russia2026-05-13
1022Australia2026-05-11
1023Spain2026-05-17
1024Spain2026-05-11
1025Argentina2026-05-26
1026Spain2026-05-25
1027Italy2026-06-07
1028Spain2026-05-31
1029United Kingdom2026-05-13
1030Italy2026-05-19
1031Italy2026-05-17
1032Spain2026-05-16
1033Russia2026-06-02
1034Canada2026-05-19
1035United Kingdom2026-06-04
1036United Kingdom2026-06-08
1037Russia2026-05-25
1038Italy2026-05-28
1039Spain2026-06-09
1040France2026-05-31
1041Japan2026-05-23
1042India2026-05-16
1043Italy2026-05-24
1044Australia2026-05-18
1045Argentina2026-05-13
1046Canada2026-05-25
1047Spain2026-05-15
1048United Kingdom2026-05-24
1049Brazil2026-05-13

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Brazil2026-05-21
Kadeem Flosi1001Japan2026-05-28
Nicolas Iturbide1002Canada2026-05-23
Jennifer Amigon1003France2026-05-16
Maria Marrier1004Australia2026-05-30
Claire Tollner1005Russia2026-05-13
Salvatore Stockham1006Canada2026-05-20
Jennifer Amigon1007United Kingdom2026-06-04
Jeanfrancois Venere1008Germany2026-05-19
David Darakjy1009Italy2026-06-03
Johnson Sergi1010Argentina2026-05-29
Aruna Figeroa1011United Kingdom2026-05-12
Jeanfrancois Venere1012Spain2026-06-05
David Darakjy1013Russia2026-06-05
Jennifer Amigon1014Australia2026-05-13
Maisha Rulapaugh1015Argentina2026-05-26
Jones Vocelka1016France2026-05-26
Munro Ferencz1017Italy2026-05-25
Antonio Caudy1018Germany2026-06-06
Jennifer Amigon1019Germany2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickItalyElwin Sharvill NEGOTIATION
Alejandro PerinUnited KingdomOnyama Limba NEW
Ashley DoeSpainAmy Elsner RENEWAL
Costa DilliardAustraliaAsiya Javayant NEW
Izzy GarufiJapanAsiya Javayant UNQUALIFIED
Aditya KuskoIndiaAnna Fali RENEWAL
Ivar PaprockiRussiaAsiya Javayant NEW
Chavez BriddickIndiaOnyama Limba UNQUALIFIED
Nicolas IturbideItalyXuxue Feng UNQUALIFIED
Johnson SergiArgentinaIvan Magalhaes QUALIFIED
Aruna FigeroaCanadaIoni Bowcher NEGOTIATION
Darci PoquetteFranceXuxue Feng NEW
Aruna FigeroaCanadaAsiya Javayant UNQUALIFIED
Leon OldroydIndiaIvan Magalhaes NEGOTIATION
Claire TollnerSpainOnyama Limba UNQUALIFIED
Isabel BowleyFranceIoni Bowcher NEGOTIATION
Izzy GarufiCanadaAsiya Javayant QUALIFIED
Ivar PaprockiUnited KingdomIoni Bowcher NEW
Costa DilliardRussiaElwin Sharvill NEGOTIATION
Mayumi KolmetzIndiaAnna Fali PROPOSAL
Salvatore StockhamCanadaIvan Magalhaes NEGOTIATION
Alejandro PerinGermanyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyArgentinaAnna Fali UNQUALIFIED
Munro FerenczFranceAnna Fali PROPOSAL
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Arvin AlbaresRussiaIoni Bowcher UNQUALIFIED
Kadeem FlosiItalyBernardo Dominic RENEWAL
Greenwood BologniaItalyIoni Bowcher RENEWAL
Wickens NestleUnited KingdomAsiya Javayant QUALIFIED
Misaki RoysterGermanyIvan Magalhaes UNQUALIFIED
Adams MorascaArgentinaAnna Fali NEGOTIATION
David DarakjyArgentinaElwin Sharvill PROPOSAL
Ashley DoeFranceXuxue Feng NEW
Francesco ShinkoIndiaAsiya Javayant RENEWAL
Maria MarrierJapanStephen Shaw NEW
Jefferson SchemmerCanadaElwin Sharvill PROPOSAL
Faith GillianUnited KingdomAnna Fali UNQUALIFIED
Maisha RulapaughAustraliaOnyama Limba RENEWAL
Greenwood BologniaAustraliaBernardo Dominic RENEWAL
Leja CaldareraAustraliaOnyama Limba 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>