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
Francesco ShinkoBrazilBernardo Dominic PROPOSAL
Jones VocelkaSpainStephen Shaw QUALIFIED
Jeanfrancois VenereAustraliaElwin Sharvill NEGOTIATION
Salvatore StockhamRussiaIvan Magalhaes NEGOTIATION
Wickens NestleJapanAnna Fali NEGOTIATION
Julie StensethRussiaXuxue Feng NEGOTIATION
Leja CaldareraSpainAsiya Javayant PROPOSAL
Ricardo GauchoItalyAnna Fali NEW
Darci PoquetteGermanyAmy Elsner NEW
Kaitlin OstroskyArgentinaElwin Sharvill NEW
Deepesh ChuiIndiaIvan Magalhaes UNQUALIFIED
Costa DilliardBrazilStephen Shaw NEGOTIATION
Munro FerenczBrazilAmy Elsner UNQUALIFIED
Cody SaylorsJapanAmy Elsner PROPOSAL
Jefferson SchemmerBrazilAsiya Javayant NEGOTIATION
Claire TollnerItalyAsiya Javayant QUALIFIED
Clifford RimCanadaAnna Fali NEGOTIATION
Tony FollerItalyAmy Elsner PROPOSAL
Adams MorascaBrazilIvan Magalhaes UNQUALIFIED
Costa DilliardRussiaIoni Bowcher PROPOSAL
Nicolas IturbideIndiaXuxue Feng PROPOSAL
Juan WieserGermanyAmy Elsner PROPOSAL
Claire TollnerCanadaStephen Shaw PROPOSAL
Costa DilliardArgentinaAsiya Javayant UNQUALIFIED
Ashley DoeSpainStephen Shaw RENEWAL
Tony FollerGermanyAnna Fali PROPOSAL
Maisha RulapaughArgentinaAnna Fali UNQUALIFIED
Francesco ShinkoIndiaIoni Bowcher RENEWAL
Emily WhobreyArgentinaElwin Sharvill PROPOSAL
Darci PoquetteIndiaAmy Elsner RENEWAL
Wickens NestleGermanyElwin Sharvill UNQUALIFIED
Morrow RutaAustraliaStephen Shaw UNQUALIFIED
Nicolas IturbideUnited KingdomXuxue Feng UNQUALIFIED
Kadeem FlosiRussiaXuxue Feng PROPOSAL
Aika InouyeArgentinaAsiya Javayant QUALIFIED
Murillo MaletAustraliaOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomStephen Shaw QUALIFIED
Maisha RulapaughGermanyXuxue Feng NEGOTIATION
Arvin AlbaresSpainOnyama Limba NEGOTIATION
Smith GlickRussiaBernardo Dominic UNQUALIFIED
Stacey MacleadSpainOnyama Limba NEW
Chavez BriddickJapanIoni Bowcher UNQUALIFIED
Darci PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Cody SaylorsRussiaBernardo Dominic RENEWAL
Kaitlin OstroskyBrazilOnyama Limba QUALIFIED
Aditya KuskoBrazilIoni Bowcher QUALIFIED
Aditya KuskoBrazilOnyama Limba UNQUALIFIED
Maria MarrierCanadaOnyama Limba QUALIFIED
Tony FollerGermanyAmy Elsner PROPOSAL
Aditya KuskoRussiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiUnited KingdomIvan Magalhaes QUALIFIED
Juan WieserCanadaBernardo Dominic RENEWAL
Smith GlickGermanyElwin Sharvill PROPOSAL
Cody SaylorsCanadaAsiya Javayant RENEWAL
James ButtUnited KingdomOnyama Limba QUALIFIED
Darci PoquetteFranceAmy Elsner RENEWAL
Chavez BriddickArgentinaStephen Shaw NEGOTIATION
Aika InouyeArgentinaOnyama Limba RENEWAL
Emily WhobreyItalyIoni Bowcher NEGOTIATION
Jeanfrancois VenereBrazilIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeItaly2026-05-21Morlong Associates NEW32Onyama Limba
1001Izzy GarufiAustralia2026-05-26Morlong Associates NEGOTIATION35Bernardo Dominic
1002Jeanfrancois VenereFrance2026-06-10Commercial Press UNQUALIFIED50Asiya Javayant
1003Misaki RoysterRussia2026-05-21Chanay, Jeffrey A Esq UNQUALIFIED93Bernardo Dominic
1004Jones VocelkaGermany2026-06-02King, Christopher A Esq PROPOSAL48Ioni Bowcher
1005Misaki RoysterJapan2026-05-23Printing Dimensions NEW88Anna Fali
1006Jennifer AmigonRussia2026-05-28Feltz Printing Service RENEWAL89Amy Elsner
1007Clifford RimRussia2026-06-05Feiner Bros QUALIFIED18Amy Elsner
1008Isabel BowleyCanada2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED59Bernardo Dominic
1009Sinclair WaycottFrance2026-05-21Chemel, James L Cpa RENEWAL95Bernardo Dominic
1010James ButtAustralia2026-06-08Rangoni Of Florence NEW34Stephen Shaw
1011Morrow RutaJapan2026-06-06Rousseaux, Michael Esq PROPOSAL51Xuxue Feng
1012Cody SaylorsCanada2026-06-04Benton, John B Jr QUALIFIED73Bernardo Dominic
1013Clifford RimSpain2026-06-02Benton, John B Jr QUALIFIED44Elwin Sharvill
1014Mayumi KolmetzBrazil2026-05-14Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1015Stacey MacleadIndia2026-05-13Buckley Miller Wright NEW55Ivan Magalhaes
1016Izzy GarufiRussia2026-06-09Rousseaux, Michael Esq NEGOTIATION5Ivan Magalhaes
1017Morrow RutaItaly2026-05-28Printing Dimensions UNQUALIFIED55Elwin Sharvill
1018Antonio CaudyFrance2026-06-04Feltz Printing Service QUALIFIED67Anna Fali
1019Munro FerenczUnited Kingdom2026-05-29Buckley Miller Wright RENEWAL45Ivan Magalhaes
1020Faith GillianCanada2026-05-15Commercial Press QUALIFIED85Onyama Limba
1021Darci PoquetteGermany2026-05-25Buckley Miller Wright NEW29Stephen Shaw
1022Silvio SlusarskiRussia2026-05-14Rangoni Of Florence QUALIFIED74Stephen Shaw
1023Ricardo GauchoItaly2026-05-15Rousseaux, Michael Esq UNQUALIFIED55Bernardo Dominic
1024Aruna FigeroaJapan2026-05-25Printing Dimensions RENEWAL85Asiya Javayant
1025Murillo MaletJapan2026-05-30Truhlar And Truhlar Attys NEW59Asiya Javayant
1026Leja CaldareraRussia2026-05-19Truhlar And Truhlar Attys RENEWAL3Bernardo Dominic
1027Deepesh ChuiUnited Kingdom2026-06-06Buckley Miller Wright PROPOSAL28Bernardo Dominic
1028Francesco ShinkoFrance2026-06-03Commercial Press UNQUALIFIED89Amy Elsner
1029Morrow RutaBrazil2026-05-20Feiner Bros RENEWAL27Elwin Sharvill
1030Aika InouyeJapan2026-05-14Printing Dimensions RENEWAL61Elwin Sharvill
1031Jefferson SchemmerRussia2026-05-27Feltz Printing Service NEW14Asiya Javayant
1032Munro FerenczBrazil2026-05-18Truhlar And Truhlar Attys QUALIFIED6Elwin Sharvill
1033Costa DilliardRussia2026-06-03Rangoni Of Florence NEGOTIATION12Onyama Limba
1034Izzy GarufiUnited Kingdom2026-06-05Chemel, James L Cpa UNQUALIFIED6Stephen Shaw
1035Francesco ShinkoSpain2026-06-10Buckley Miller Wright RENEWAL63Amy Elsner
1036Leon OldroydCanada2026-05-24Feiner Bros PROPOSAL0Xuxue Feng
1037Aditya KuskoGermany2026-05-28Morlong Associates QUALIFIED83Anna Fali
1038Isabel BowleyIndia2026-06-07Chemel, James L Cpa NEGOTIATION15Ioni Bowcher
1039Claire TollnerGermany2026-05-14Truhlar And Truhlar Attys PROPOSAL64Xuxue Feng
1040Kadeem FlosiIndia2026-05-22Commercial Press PROPOSAL15Stephen Shaw
1041Kadeem FlosiJapan2026-05-15Rousseaux, Michael Esq PROPOSAL8Amy Elsner
1042Jefferson SchemmerBrazil2026-05-31Feltz Printing Service QUALIFIED29Amy Elsner
1043Nicolas IturbideSpain2026-06-09Rousseaux, Michael Esq NEGOTIATION34Anna Fali
1044Munro FerenczUnited Kingdom2026-05-13Feltz Printing Service QUALIFIED68Bernardo Dominic
1045Darci PoquetteBrazil2026-05-23Rousseaux, Michael Esq PROPOSAL10Asiya Javayant
1046Salvatore StockhamIndia2026-05-30Truhlar And Truhlar Attys NEW63Stephen Shaw
1047Faith GillianArgentina2026-05-28Chemel, James L Cpa UNQUALIFIED26Stephen Shaw
1048Ricardo GauchoItaly2026-06-06Dorl, James J Esq RENEWAL79Bernardo Dominic
1049Wickens NestleFrance2026-05-22Feiner Bros QUALIFIED1Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserAustraliaStephen Shaw PROPOSAL
Jefferson SchemmerUnited KingdomElwin Sharvill QUALIFIED
Ricardo GauchoAustraliaBernardo Dominic PROPOSAL
Clifford RimIndiaAmy Elsner RENEWAL
Emily WhobreyBrazilStephen Shaw PROPOSAL
Aruna FigeroaArgentinaBernardo Dominic QUALIFIED
Ashley DoeItalyStephen Shaw RENEWAL
Jones VocelkaRussiaAnna Fali NEW
Adams MorascaCanadaStephen Shaw QUALIFIED
Ricardo GauchoGermanyXuxue Feng NEGOTIATION
Julie StensethUnited KingdomStephen Shaw RENEWAL
Ashley DoeAustraliaBernardo Dominic QUALIFIED
Aditya KuskoBrazilIoni Bowcher PROPOSAL
Munro FerenczCanadaBernardo Dominic NEGOTIATION
James ButtItalyBernardo Dominic UNQUALIFIED
Nicolas IturbideRussiaAsiya Javayant RENEWAL
Kaitlin OstroskyBrazilOnyama Limba UNQUALIFIED
Stacey MacleadBrazilIoni Bowcher RENEWAL
Ricardo GauchoJapanElwin Sharvill PROPOSAL
Ashley DoeGermanyAmy Elsner RENEWAL
Izzy GarufiFranceIoni Bowcher UNQUALIFIED
Octavia MaletIndiaAnna Fali QUALIFIED
Chavez BriddickJapanIoni Bowcher RENEWAL
Kadeem FlosiItalyElwin Sharvill QUALIFIED
Arvin AlbaresJapanElwin Sharvill NEW
Silvio SlusarskiGermanyElwin Sharvill QUALIFIED
Wickens NestleRussiaIvan Magalhaes NEGOTIATION
David DarakjyFranceAnna Fali UNQUALIFIED
Munro FerenczCanadaAsiya Javayant RENEWAL
David DarakjyItalyAmy Elsner NEGOTIATION
Antonio CaudyFranceIvan Magalhaes PROPOSAL
Johnson SergiAustraliaAnna Fali NEGOTIATION
Maria MarrierItalyStephen Shaw UNQUALIFIED
Octavia MaletItalyIvan Magalhaes QUALIFIED
Julie StensethUnited KingdomStephen Shaw QUALIFIED
Cody SaylorsCanadaOnyama Limba UNQUALIFIED
Antonio CaudyUnited KingdomAnna Fali NEW
Ricardo GauchoBrazilIoni Bowcher NEGOTIATION
Ricardo GauchoIndiaAsiya Javayant UNQUALIFIED
Kaitlin OstroskyAustraliaXuxue Feng PROPOSAL
Jennifer AmigonArgentinaIoni Bowcher NEW
David DarakjyCanadaElwin Sharvill PROPOSAL
Julie StensethUnited KingdomAnna Fali PROPOSAL
Stacey MacleadCanadaElwin Sharvill PROPOSAL
Isabel BowleyCanadaIoni Bowcher QUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant NEGOTIATION
Clifford RimJapanIoni Bowcher QUALIFIED
Aruna FigeroaItalyIoni Bowcher NEW
Octavia MaletUnited KingdomAnna Fali PROPOSAL
Chavez BriddickSpainAsiya Javayant QUALIFIED
Frozen Columns
Name
David Darakjy
Jefferson Schemmer
Mayumi Kolmetz
Leja Caldarera
Kaitlin Ostrosky
Greenwood Bolognia
Maria Marrier
Emily Whobrey
Stacey Maclead
Emily Whobrey
Aruna Figeroa
Leon Oldroyd
Aruna Figeroa
Silvio Slusarski
Julie Stenseth
Claire Tollner
Smith Glick
Silvio Slusarski
Greenwood Bolognia
Smith Glick
Mujtaba Nicka
Johnson Sergi
Aika Inouye
Nicolas Iturbide
Isabel Bowley
Jones Vocelka
Francesco Shinko
Alejandro Perin
Leon Oldroyd
Jeanfrancois Venere
Aika Inouye
Alejandro Perin
Francesco Shinko
Leon Oldroyd
Jefferson Schemmer
Leja Caldarera
Stacey Maclead
Jones Vocelka
Salvatore Stockham
Jefferson Schemmer
Leon Oldroyd
Maria Marrier
Silvio Slusarski
Aruna Figeroa
Izzy Garufi
Leon Oldroyd
Leja Caldarera
Aruna Figeroa
Leon Oldroyd
Deepesh Chui
IdCountryDate
1000Italy2026-05-26
1001Canada2026-05-18
1002Russia2026-05-14
1003France2026-05-21
1004Germany2026-05-27
1005Canada2026-05-28
1006United Kingdom2026-05-29
1007Russia2026-06-07
1008Spain2026-06-04
1009Brazil2026-06-04
1010France2026-05-20
1011Germany2026-05-24
1012Argentina2026-06-02
1013India2026-06-07
1014Canada2026-05-28
1015Russia2026-05-29
1016Australia2026-05-31
1017India2026-06-07
1018Argentina2026-05-23
1019India2026-05-16
1020Japan2026-06-08
1021Italy2026-05-24
1022France2026-05-13
1023Australia2026-06-08
1024Germany2026-06-02
1025Japan2026-05-13
1026Italy2026-05-30
1027Brazil2026-05-30
1028Japan2026-06-03
1029France2026-06-06
1030Russia2026-05-18
1031Brazil2026-05-27
1032Germany2026-05-24
1033Russia2026-05-26
1034Brazil2026-06-10
1035United Kingdom2026-05-27
1036France2026-05-19
1037Russia2026-05-17
1038Canada2026-06-06
1039Spain2026-05-24
1040Italy2026-05-23
1041Italy2026-05-17
1042Japan2026-05-24
1043Brazil2026-06-01
1044United Kingdom2026-05-14
1045Russia2026-05-16
1046Canada2026-05-26
1047Italy2026-06-05
1048France2026-05-24
1049Canada2026-05-22

On-Demand Data

NameIdCountryDate
David Darakjy1000Argentina2026-05-17
Nicolas Iturbide1001Italy2026-05-22
Misaki Royster1002Australia2026-05-20
Misaki Royster1003Germany2026-05-17
Juan Wieser1004Italy2026-05-13
Leja Caldarera1005Canada2026-05-31
Munro Ferencz1006Australia2026-05-24
Juan Wieser1007India2026-05-19
Kaitlin Ostrosky1008Brazil2026-06-09
Jefferson Schemmer1009Japan2026-05-25
David Darakjy1010United Kingdom2026-05-19
Smith Glick1011Brazil2026-06-08
Kadeem Flosi1012Canada2026-05-13
Jeanfrancois Venere1013Canada2026-06-10
Francesco Shinko1014Japan2026-05-27
Silvio Slusarski1015Canada2026-06-02
Leon Oldroyd1016Argentina2026-06-08
Francesco Shinko1017Canada2026-05-14
Izzy Garufi1018India2026-05-23
Isabel Bowley1019United Kingdom2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtGermanyOnyama Limba NEGOTIATION
Smith GlickGermanyOnyama Limba QUALIFIED
Mujtaba NickaUnited KingdomAsiya Javayant RENEWAL
Jefferson SchemmerGermanyStephen Shaw RENEWAL
Jefferson SchemmerArgentinaBernardo Dominic NEW
Wickens NestleRussiaElwin Sharvill NEGOTIATION
Cody SaylorsIndiaIoni Bowcher RENEWAL
Greenwood BologniaFranceBernardo Dominic PROPOSAL
Maria MarrierCanadaAmy Elsner PROPOSAL
Greenwood BologniaRussiaIoni Bowcher NEW
Leja CaldareraUnited KingdomOnyama Limba NEGOTIATION
Morrow RutaBrazilAmy Elsner PROPOSAL
Leon OldroydAustraliaOnyama Limba UNQUALIFIED
Jones VocelkaGermanyAmy Elsner NEW
Johnson SergiSpainAnna Fali RENEWAL
Juan WieserAustraliaAnna Fali NEW
Maisha RulapaughFranceAnna Fali UNQUALIFIED
Aditya KuskoBrazilOnyama Limba QUALIFIED
Munro FerenczItalyIoni Bowcher NEGOTIATION
Jones VocelkaGermanyAsiya Javayant QUALIFIED
Ricardo GauchoItalyXuxue Feng RENEWAL
Tony FollerIndiaAsiya Javayant PROPOSAL
Kadeem FlosiRussiaAnna Fali PROPOSAL
Murillo MaletItalyAnna Fali RENEWAL
Wickens NestleCanadaElwin Sharvill NEGOTIATION
Morrow RutaCanadaAnna Fali PROPOSAL
Aruna FigeroaSpainAmy Elsner PROPOSAL
Julie StensethItalyBernardo Dominic RENEWAL
Aruna FigeroaFranceIvan Magalhaes PROPOSAL
Aika InouyeGermanyBernardo Dominic RENEWAL
Julie StensethSpainAnna Fali NEGOTIATION
Aruna FigeroaRussiaAsiya Javayant UNQUALIFIED
Misaki RoysterJapanBernardo Dominic PROPOSAL
Wickens NestleCanadaIvan Magalhaes UNQUALIFIED
Ivar PaprockiGermanyAmy Elsner QUALIFIED
Julie StensethJapanIoni Bowcher RENEWAL
Arvin AlbaresItalyIoni Bowcher RENEWAL
Izzy GarufiAustraliaIoni Bowcher RENEWAL
Clifford RimJapanStephen Shaw NEGOTIATION
Arvin AlbaresUnited KingdomAmy Elsner 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>