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 BriddickAustraliaAmy Elsner NEW
Tony FollerItalyXuxue Feng QUALIFIED
Sinclair WaycottGermanyAsiya Javayant QUALIFIED
Murillo MaletBrazilAmy Elsner RENEWAL
Murillo MaletSpainAmy Elsner RENEWAL
Murillo MaletUnited KingdomXuxue Feng PROPOSAL
Juan WieserJapanIvan Magalhaes UNQUALIFIED
Antonio CaudyJapanElwin Sharvill PROPOSAL
Wickens NestleBrazilBernardo Dominic NEW
Jones VocelkaRussiaAmy Elsner RENEWAL
Aruna FigeroaSpainAsiya Javayant RENEWAL
Smith GlickFranceBernardo Dominic UNQUALIFIED
Ivar PaprockiArgentinaXuxue Feng NEW
Faith GillianBrazilStephen Shaw UNQUALIFIED
Ivar PaprockiArgentinaAsiya Javayant NEW
Faith GillianRussiaElwin Sharvill NEGOTIATION
Darci PoquetteArgentinaOnyama Limba NEW
Aruna FigeroaSpainIoni Bowcher NEW
Faith GillianCanadaAnna Fali PROPOSAL
David DarakjyBrazilElwin Sharvill NEGOTIATION
Ricardo GauchoItalyElwin Sharvill PROPOSAL
Antonio CaudyJapanXuxue Feng PROPOSAL
Jones VocelkaUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamIndiaAsiya Javayant UNQUALIFIED
Ricardo GauchoJapanAsiya Javayant PROPOSAL
Aika InouyeJapanAsiya Javayant NEW
Darci PoquetteGermanyAmy Elsner UNQUALIFIED
Tony FollerSpainXuxue Feng QUALIFIED
Costa DilliardAustraliaIoni Bowcher PROPOSAL
Darci PoquetteItalyAsiya Javayant QUALIFIED
Ricardo GauchoBrazilStephen Shaw QUALIFIED
Jones VocelkaBrazilIvan Magalhaes PROPOSAL
Ashley DoeAustraliaIvan Magalhaes QUALIFIED
Cody SaylorsAustraliaAmy Elsner UNQUALIFIED
Maisha RulapaughFranceAsiya Javayant NEGOTIATION
Costa DilliardGermanyXuxue Feng RENEWAL
Alejandro PerinUnited KingdomElwin Sharvill QUALIFIED
Chavez BriddickIndiaAmy Elsner NEGOTIATION
Maisha RulapaughSpainAmy Elsner RENEWAL
Alejandro PerinSpainBernardo Dominic QUALIFIED
Faith GillianJapanBernardo Dominic PROPOSAL
Kaitlin OstroskyCanadaAmy Elsner RENEWAL
James ButtBrazilAsiya Javayant NEW
Ivar PaprockiItalyBernardo Dominic UNQUALIFIED
Faith GillianArgentinaAnna Fali PROPOSAL
Silvio SlusarskiSpainAmy Elsner QUALIFIED
Francesco ShinkoCanadaOnyama Limba NEGOTIATION
Maria MarrierAustraliaAsiya Javayant UNQUALIFIED
Aruna FigeroaBrazilIoni Bowcher QUALIFIED
David DarakjyIndiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Claire TollnerCanadaBernardo Dominic NEW
Misaki RoysterRussiaBernardo Dominic QUALIFIED
Aika InouyeAustraliaOnyama Limba PROPOSAL
Sinclair WaycottCanadaStephen Shaw QUALIFIED
Jeanfrancois VenereRussiaOnyama Limba RENEWAL
Morrow RutaArgentinaAmy Elsner NEW
Deepesh ChuiJapanIoni Bowcher NEGOTIATION
Octavia MaletRussiaAmy Elsner UNQUALIFIED
Julie StensethIndiaAnna Fali PROPOSAL
Leon OldroydSpainIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethAustralia2026-04-20Printing Dimensions PROPOSAL52Elwin Sharvill
1001Francesco ShinkoArgentina2026-04-14Feiner Bros QUALIFIED40Bernardo Dominic
1002Ricardo GauchoRussia2026-04-22Printing Dimensions NEGOTIATION31Elwin Sharvill
1003Wickens NestleBrazil2026-04-16Dorl, James J Esq UNQUALIFIED33Elwin Sharvill
1004Leon OldroydGermany2026-05-05Feltz Printing Service QUALIFIED62Asiya Javayant
1005Chavez BriddickJapan2026-05-04Feltz Printing Service PROPOSAL78Bernardo Dominic
1006Chavez BriddickJapan2026-04-16Buckley Miller Wright PROPOSAL73Ioni Bowcher
1007Ivar PaprockiFrance2026-04-23Benton, John B Jr QUALIFIED11Ivan Magalhaes
1008Ivar PaprockiUnited Kingdom2026-05-03Truhlar And Truhlar Attys UNQUALIFIED11Amy Elsner
1009Murillo MaletJapan2026-04-18Feiner Bros RENEWAL3Xuxue Feng
1010Antonio CaudyFrance2026-04-18Printing Dimensions UNQUALIFIED7Elwin Sharvill
1011Kaitlin OstroskyArgentina2026-04-28Morlong Associates NEGOTIATION70Ioni Bowcher
1012Adams MorascaAustralia2026-04-24Chanay, Jeffrey A Esq PROPOSAL45Ioni Bowcher
1013Chavez BriddickAustralia2026-04-26Truhlar And Truhlar Attys RENEWAL32Elwin Sharvill
1014Aika InouyeUnited Kingdom2026-04-11Chapman, Ross E Esq PROPOSAL2Anna Fali
1015Kaitlin OstroskyBrazil2026-04-14Chanay, Jeffrey A Esq RENEWAL32Asiya Javayant
1016David DarakjyRussia2026-04-23Chapman, Ross E Esq UNQUALIFIED41Anna Fali
1017Morrow RutaAustralia2026-04-18Chanay, Jeffrey A Esq UNQUALIFIED16Bernardo Dominic
1018Silvio SlusarskiArgentina2026-04-30King, Christopher A Esq PROPOSAL11Ioni Bowcher
1019Maria MarrierBrazil2026-04-21Dorl, James J Esq PROPOSAL38Stephen Shaw
1020Mujtaba NickaGermany2026-04-19Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1021Mayumi KolmetzFrance2026-04-23Morlong Associates NEGOTIATION94Amy Elsner
1022Aditya KuskoArgentina2026-05-08Rangoni Of Florence PROPOSAL75Bernardo Dominic
1023Maisha RulapaughCanada2026-05-04Morlong Associates UNQUALIFIED16Amy Elsner
1024Francesco ShinkoArgentina2026-04-22Commercial Press UNQUALIFIED28Stephen Shaw
1025Nicolas IturbideArgentina2026-04-28Morlong Associates RENEWAL15Asiya Javayant
1026Darci PoquetteUnited Kingdom2026-04-22Truhlar And Truhlar Attys QUALIFIED37Xuxue Feng
1027Izzy GarufiBrazil2026-04-29Benton, John B Jr PROPOSAL46Amy Elsner
1028Smith GlickGermany2026-04-18Truhlar And Truhlar Attys UNQUALIFIED74Onyama Limba
1029Arvin AlbaresJapan2026-04-11Printing Dimensions NEGOTIATION73Bernardo Dominic
1030Francesco ShinkoUnited Kingdom2026-04-23Commercial Press NEW83Amy Elsner
1031Adams MorascaUnited Kingdom2026-04-22Benton, John B Jr NEGOTIATION66Elwin Sharvill
1032Mayumi KolmetzRussia2026-04-12Morlong Associates NEGOTIATION45Stephen Shaw
1033Arvin AlbaresFrance2026-05-06Buckley Miller Wright RENEWAL8Amy Elsner
1034Adams MorascaUnited Kingdom2026-04-26King, Christopher A Esq NEW71Amy Elsner
1035Jones VocelkaItaly2026-04-24Buckley Miller Wright UNQUALIFIED81Ivan Magalhaes
1036Kadeem FlosiSpain2026-05-05Morlong Associates NEGOTIATION89Stephen Shaw
1037Costa DilliardBrazil2026-04-25King, Christopher A Esq PROPOSAL72Onyama Limba
1038Deepesh ChuiJapan2026-04-15Benton, John B Jr NEW53Onyama Limba
1039Juan WieserGermany2026-04-19Chanay, Jeffrey A Esq NEGOTIATION26Elwin Sharvill
1040Leon OldroydFrance2026-05-02Feltz Printing Service PROPOSAL48Ivan Magalhaes
1041Alejandro PerinItaly2026-04-22Feltz Printing Service QUALIFIED61Xuxue Feng
1042Isabel BowleyBrazil2026-04-18Feiner Bros PROPOSAL78Bernardo Dominic
1043Deepesh ChuiAustralia2026-04-17Rousseaux, Michael Esq NEW15Amy Elsner
1044Julie StensethIndia2026-04-20Chemel, James L Cpa PROPOSAL79Asiya Javayant
1045Stacey MacleadRussia2026-04-26Morlong Associates NEGOTIATION79Ioni Bowcher
1046Clifford RimIndia2026-04-11Chemel, James L Cpa UNQUALIFIED92Elwin Sharvill
1047Jones VocelkaCanada2026-05-10Feiner Bros UNQUALIFIED12Bernardo Dominic
1048Ivar PaprockiUnited Kingdom2026-05-06Feltz Printing Service NEW3Asiya Javayant
1049Deepesh ChuiRussia2026-04-26Feltz Printing Service UNQUALIFIED17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamUnited KingdomStephen Shaw QUALIFIED
Smith GlickBrazilXuxue Feng NEW
Jones VocelkaGermanyBernardo Dominic RENEWAL
Ricardo GauchoRussiaStephen Shaw RENEWAL
Chavez BriddickGermanyStephen Shaw RENEWAL
Maisha RulapaughItalyBernardo Dominic NEW
Claire TollnerUnited KingdomOnyama Limba QUALIFIED
Kaitlin OstroskyCanadaXuxue Feng QUALIFIED
Silvio SlusarskiAustraliaAsiya Javayant RENEWAL
Misaki RoysterUnited KingdomXuxue Feng QUALIFIED
Ricardo GauchoSpainAsiya Javayant QUALIFIED
Stacey MacleadRussiaXuxue Feng QUALIFIED
Mayumi KolmetzBrazilAmy Elsner RENEWAL
Isabel BowleyUnited KingdomOnyama Limba NEW
Jones VocelkaBrazilAnna Fali NEGOTIATION
Murillo MaletSpainElwin Sharvill NEGOTIATION
Isabel BowleySpainAnna Fali NEGOTIATION
Adams MorascaGermanyAmy Elsner QUALIFIED
Costa DilliardAustraliaOnyama Limba QUALIFIED
Leja CaldareraUnited KingdomAnna Fali PROPOSAL
Salvatore StockhamUnited KingdomAsiya Javayant RENEWAL
Isabel BowleyArgentinaOnyama Limba QUALIFIED
Francesco ShinkoGermanyAmy Elsner NEGOTIATION
Nicolas IturbideAustraliaIvan Magalhaes PROPOSAL
Arvin AlbaresGermanyOnyama Limba PROPOSAL
David DarakjyCanadaXuxue Feng UNQUALIFIED
Isabel BowleyCanadaElwin Sharvill QUALIFIED
Murillo MaletFranceStephen Shaw RENEWAL
Johnson SergiGermanyStephen Shaw QUALIFIED
Claire TollnerJapanAnna Fali QUALIFIED
Aditya KuskoSpainStephen Shaw QUALIFIED
Emily WhobreyRussiaElwin Sharvill RENEWAL
Clifford RimFranceAnna Fali PROPOSAL
Ashley DoeCanadaIoni Bowcher QUALIFIED
Ricardo GauchoAustraliaBernardo Dominic NEW
Silvio SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher NEW
Octavia MaletRussiaStephen Shaw NEW
Ricardo GauchoIndiaAsiya Javayant NEW
Octavia MaletArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzAustraliaAmy Elsner QUALIFIED
Francesco ShinkoUnited KingdomAnna Fali RENEWAL
Izzy GarufiItalyStephen Shaw QUALIFIED
Leon OldroydUnited KingdomOnyama Limba NEGOTIATION
Claire TollnerSpainAsiya Javayant QUALIFIED
James ButtJapanAnna Fali PROPOSAL
Sinclair WaycottUnited KingdomBernardo Dominic QUALIFIED
Antonio CaudyAustraliaIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaIoni Bowcher UNQUALIFIED
Greenwood BologniaBrazilElwin Sharvill NEGOTIATION
Frozen Columns
Name
Greenwood Bolognia
Sinclair Waycott
Antonio Caudy
Morrow Ruta
Antonio Caudy
Maria Marrier
Adams Morasca
Julie Stenseth
Adams Morasca
James Butt
Claire Tollner
Maisha Rulapaugh
Claire Tollner
Misaki Royster
Clifford Rim
Isabel Bowley
Kadeem Flosi
David Darakjy
Julie Stenseth
Mayumi Kolmetz
Jennifer Amigon
James Butt
Nicolas Iturbide
James Butt
James Butt
Jefferson Schemmer
Clifford Rim
Leon Oldroyd
Cody Saylors
Clifford Rim
David Darakjy
Clifford Rim
Wickens Nestle
Cody Saylors
Francesco Shinko
Misaki Royster
Maisha Rulapaugh
David Darakjy
Deepesh Chui
Julie Stenseth
Morrow Ruta
Nicolas Iturbide
Clifford Rim
Jeanfrancois Venere
Faith Gillian
Kadeem Flosi
Jones Vocelka
Leon Oldroyd
Darci Poquette
Tony Foller
IdCountryDate
1000Spain2026-04-28
1001Russia2026-04-14
1002India2026-04-17
1003Canada2026-04-15
1004Russia2026-05-05
1005Brazil2026-04-30
1006France2026-05-03
1007Spain2026-04-22
1008United Kingdom2026-04-21
1009France2026-04-27
1010Argentina2026-04-29
1011France2026-04-21
1012Canada2026-04-12
1013Germany2026-04-19
1014Russia2026-05-06
1015Canada2026-05-06
1016France2026-04-29
1017Germany2026-05-05
1018France2026-04-23
1019Italy2026-05-09
1020Brazil2026-04-26
1021Russia2026-05-07
1022United Kingdom2026-04-18
1023Germany2026-04-27
1024Argentina2026-04-30
1025Brazil2026-05-04
1026Germany2026-04-22
1027France2026-05-10
1028Japan2026-05-08
1029Canada2026-04-14
1030Australia2026-05-01
1031Spain2026-05-05
1032Brazil2026-04-22
1033Brazil2026-04-17
1034Italy2026-04-28
1035Italy2026-05-04
1036India2026-04-17
1037Japan2026-04-24
1038Australia2026-04-22
1039United Kingdom2026-04-18
1040France2026-04-22
1041Italy2026-05-07
1042Italy2026-04-18
1043United Kingdom2026-04-23
1044United Kingdom2026-04-17
1045Spain2026-05-07
1046Italy2026-04-26
1047Canada2026-05-09
1048Brazil2026-05-02
1049Canada2026-05-10

On-Demand Data

NameIdCountryDate
Emily Whobrey1000Canada2026-04-25
Smith Glick1001Russia2026-04-24
Clifford Rim1002India2026-04-18
Chavez Briddick1003France2026-04-19
Mayumi Kolmetz1004Germany2026-04-24
Sinclair Waycott1005Germany2026-04-12
Rodrigues Campain1006India2026-05-10
Nicolas Iturbide1007Germany2026-04-26
Smith Glick1008India2026-05-06
Smith Glick1009Russia2026-04-28
Maisha Rulapaugh1010Russia2026-04-28
Ricardo Gaucho1011Japan2026-04-20
Jones Vocelka1012Spain2026-04-13
Francesco Shinko1013Russia2026-05-04
Aruna Figeroa1014Spain2026-04-25
Isabel Bowley1015India2026-05-03
Kadeem Flosi1016Canada2026-04-13
Ivar Paprocki1017Brazil2026-05-03
Leja Caldarera1018France2026-04-29
Johnson Sergi1019United Kingdom2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraFranceElwin Sharvill QUALIFIED
James ButtCanadaBernardo Dominic NEGOTIATION
Cody SaylorsRussiaElwin Sharvill QUALIFIED
Darci PoquetteGermanyElwin Sharvill NEGOTIATION
Wickens NestleJapanAmy Elsner UNQUALIFIED
Octavia MaletUnited KingdomOnyama Limba RENEWAL
Rodrigues CampainAustraliaOnyama Limba NEW
Ricardo GauchoIndiaXuxue Feng PROPOSAL
Maisha RulapaughGermanyXuxue Feng QUALIFIED
Greenwood BologniaCanadaAmy Elsner UNQUALIFIED
Isabel BowleyGermanyAsiya Javayant UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill PROPOSAL
Salvatore StockhamCanadaAmy Elsner RENEWAL
Stacey MacleadArgentinaStephen Shaw PROPOSAL
Julie StensethJapanBernardo Dominic NEGOTIATION
Deepesh ChuiRussiaXuxue Feng PROPOSAL
David DarakjyCanadaStephen Shaw QUALIFIED
Jeanfrancois VenereFranceIvan Magalhaes NEGOTIATION
Claire TollnerGermanyAnna Fali NEW
Mayumi KolmetzAustraliaOnyama Limba NEGOTIATION
Murillo MaletSpainIvan Magalhaes NEW
Emily WhobreyItalyIoni Bowcher PROPOSAL
Jones VocelkaSpainStephen Shaw NEGOTIATION
James ButtRussiaAsiya Javayant NEW
Tony FollerIndiaXuxue Feng UNQUALIFIED
Stacey MacleadCanadaBernardo Dominic UNQUALIFIED
Smith GlickBrazilAmy Elsner PROPOSAL
Izzy GarufiItalyOnyama Limba PROPOSAL
Jefferson SchemmerSpainAmy Elsner QUALIFIED
Misaki RoysterCanadaAsiya Javayant NEGOTIATION
Murillo MaletUnited KingdomXuxue Feng NEGOTIATION
James ButtIndiaOnyama Limba NEW
Mayumi KolmetzAustraliaAsiya Javayant PROPOSAL
Isabel BowleyAustraliaOnyama Limba RENEWAL
Misaki RoysterBrazilElwin Sharvill NEGOTIATION
James ButtRussiaElwin Sharvill NEGOTIATION
Sinclair WaycottBrazilElwin Sharvill QUALIFIED
Misaki RoysterArgentinaOnyama Limba NEGOTIATION
Aruna FigeroaGermanyStephen Shaw NEGOTIATION
Ivar PaprockiIndiaElwin Sharvill 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>