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
Kaitlin OstroskySpainIoni Bowcher QUALIFIED
Greenwood BologniaFranceOnyama Limba PROPOSAL
Alejandro PerinGermanyAsiya Javayant PROPOSAL
Kadeem FlosiCanadaAnna Fali UNQUALIFIED
Faith GillianBrazilElwin Sharvill QUALIFIED
Jennifer AmigonJapanElwin Sharvill QUALIFIED
Alejandro PerinArgentinaXuxue Feng PROPOSAL
Jennifer AmigonArgentinaStephen Shaw QUALIFIED
Smith GlickGermanyBernardo Dominic NEW
Juan WieserRussiaXuxue Feng PROPOSAL
Misaki RoysterGermanyIvan Magalhaes RENEWAL
Munro FerenczJapanStephen Shaw NEW
Morrow RutaBrazilAmy Elsner QUALIFIED
Greenwood BologniaBrazilAsiya Javayant UNQUALIFIED
Nicolas IturbideSpainIvan Magalhaes UNQUALIFIED
Rodrigues CampainSpainBernardo Dominic RENEWAL
Johnson SergiBrazilElwin Sharvill PROPOSAL
Smith GlickArgentinaElwin Sharvill RENEWAL
Mayumi KolmetzBrazilOnyama Limba QUALIFIED
Kaitlin OstroskyJapanAnna Fali QUALIFIED
Rodrigues CampainIndiaElwin Sharvill RENEWAL
Darci PoquetteIndiaXuxue Feng NEGOTIATION
Leja CaldareraAustraliaBernardo Dominic QUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher NEGOTIATION
Mayumi KolmetzFranceElwin Sharvill PROPOSAL
Murillo MaletAustraliaStephen Shaw NEGOTIATION
Silvio SlusarskiIndiaOnyama Limba UNQUALIFIED
Cody SaylorsArgentinaElwin Sharvill NEW
Deepesh ChuiGermanyXuxue Feng NEW
Chavez BriddickAustraliaIvan Magalhaes NEGOTIATION
Chavez BriddickCanadaIoni Bowcher QUALIFIED
David DarakjySpainAmy Elsner UNQUALIFIED
Leja CaldareraItalyStephen Shaw RENEWAL
Mujtaba NickaJapanIoni Bowcher NEGOTIATION
Clifford RimArgentinaStephen Shaw QUALIFIED
Cody SaylorsRussiaXuxue Feng PROPOSAL
Murillo MaletJapanXuxue Feng NEW
Aruna FigeroaAustraliaBernardo Dominic QUALIFIED
Octavia MaletFranceXuxue Feng NEW
Greenwood BologniaFranceAnna Fali PROPOSAL
Juan WieserJapanBernardo Dominic NEW
Stacey MacleadBrazilIoni Bowcher RENEWAL
Izzy GarufiRussiaAmy Elsner UNQUALIFIED
Salvatore StockhamArgentinaStephen Shaw NEGOTIATION
Costa DilliardGermanyBernardo Dominic NEW
Juan WieserSpainElwin Sharvill PROPOSAL
Aruna FigeroaBrazilIvan Magalhaes NEGOTIATION
Johnson SergiUnited KingdomBernardo Dominic RENEWAL
Leja CaldareraSpainAmy Elsner RENEWAL
Cody SaylorsFranceBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow RutaJapanOnyama Limba NEW
Salvatore StockhamRussiaBernardo Dominic NEGOTIATION
Cody SaylorsGermanyStephen Shaw RENEWAL
Greenwood BologniaJapanAnna Fali QUALIFIED
Jennifer AmigonSpainStephen Shaw UNQUALIFIED
Aditya KuskoGermanyOnyama Limba RENEWAL
Kaitlin OstroskyBrazilBernardo Dominic QUALIFIED
Sinclair WaycottGermanyAmy Elsner UNQUALIFIED
Wickens NestleRussiaXuxue Feng RENEWAL
Kaitlin OstroskyRussiaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczCanada2026-04-27Feiner Bros UNQUALIFIED61Ivan Magalhaes
1001Ricardo GauchoGermany2026-04-25Truhlar And Truhlar Attys QUALIFIED81Ioni Bowcher
1002Stacey MacleadUnited Kingdom2026-04-18King, Christopher A Esq UNQUALIFIED11Stephen Shaw
1003Adams MorascaArgentina2026-04-21Chapman, Ross E Esq RENEWAL69Xuxue Feng
1004Johnson SergiArgentina2026-04-01King, Christopher A Esq PROPOSAL60Bernardo Dominic
1005Darci PoquetteGermany2026-04-01Rousseaux, Michael Esq PROPOSAL6Amy Elsner
1006Salvatore StockhamArgentina2026-04-17Chemel, James L Cpa QUALIFIED82Bernardo Dominic
1007Kaitlin OstroskyAustralia2026-04-03Commercial Press RENEWAL17Bernardo Dominic
1008Murillo MaletCanada2026-04-15Dorl, James J Esq PROPOSAL99Anna Fali
1009Greenwood BologniaFrance2026-04-29Commercial Press RENEWAL35Onyama Limba
1010Leja CaldareraBrazil2026-04-08Dorl, James J Esq RENEWAL93Xuxue Feng
1011Johnson SergiIndia2026-04-24Feiner Bros NEGOTIATION87Anna Fali
1012Mayumi KolmetzArgentina2026-04-13Feiner Bros QUALIFIED88Elwin Sharvill
1013Maria MarrierCanada2026-04-21King, Christopher A Esq QUALIFIED68Asiya Javayant
1014Julie StensethBrazil2026-04-10Dorl, James J Esq NEW19Amy Elsner
1015Ivar PaprockiFrance2026-04-20Buckley Miller Wright PROPOSAL93Asiya Javayant
1016Juan WieserGermany2026-04-03Chemel, James L Cpa RENEWAL33Onyama Limba
1017Stacey MacleadRussia2026-04-14Dorl, James J Esq NEW8Anna Fali
1018Mujtaba NickaBrazil2026-04-11Feltz Printing Service NEW22Bernardo Dominic
1019Smith GlickGermany2026-04-20Truhlar And Truhlar Attys QUALIFIED21Stephen Shaw
1020Arvin AlbaresJapan2026-04-03Dorl, James J Esq QUALIFIED41Onyama Limba
1021Arvin AlbaresArgentina2026-04-13Chanay, Jeffrey A Esq NEGOTIATION62Anna Fali
1022Ivar PaprockiItaly2026-04-26Chanay, Jeffrey A Esq QUALIFIED40Ivan Magalhaes
1023Stacey MacleadBrazil2026-04-06Chapman, Ross E Esq NEGOTIATION34Bernardo Dominic
1024Mujtaba NickaItaly2026-04-09Rousseaux, Michael Esq NEW74Stephen Shaw
1025Johnson SergiJapan2026-04-28Chanay, Jeffrey A Esq NEW28Ioni Bowcher
1026Wickens NestleArgentina2026-04-21Dorl, James J Esq PROPOSAL49Ivan Magalhaes
1027Darci PoquetteAustralia2026-04-08Chapman, Ross E Esq QUALIFIED59Anna Fali
1028Salvatore StockhamIndia2026-04-25Rousseaux, Michael Esq NEGOTIATION85Ivan Magalhaes
1029Alejandro PerinBrazil2026-04-29Truhlar And Truhlar Attys NEW16Amy Elsner
1030Sinclair WaycottJapan2026-04-01Truhlar And Truhlar Attys PROPOSAL31Amy Elsner
1031Aruna FigeroaFrance2026-04-16Printing Dimensions UNQUALIFIED4Anna Fali
1032Alejandro PerinAustralia2026-03-31Rousseaux, Michael Esq QUALIFIED2Amy Elsner
1033Isabel BowleyCanada2026-04-18Dorl, James J Esq NEGOTIATION73Asiya Javayant
1034Ricardo GauchoCanada2026-04-05Morlong Associates RENEWAL26Onyama Limba
1035Costa DilliardFrance2026-04-08Benton, John B Jr NEGOTIATION88Ivan Magalhaes
1036Juan WieserItaly2026-04-12Buckley Miller Wright NEW28Bernardo Dominic
1037Aruna FigeroaJapan2026-04-24Chapman, Ross E Esq QUALIFIED4Xuxue Feng
1038Deepesh ChuiJapan2026-04-02Feiner Bros NEGOTIATION81Anna Fali
1039Rodrigues CampainCanada2026-04-19Morlong Associates NEGOTIATION90Onyama Limba
1040Octavia MaletRussia2026-04-08Buckley Miller Wright RENEWAL48Elwin Sharvill
1041Aika InouyeGermany2026-04-24Rousseaux, Michael Esq NEGOTIATION72Bernardo Dominic
1042Maisha RulapaughJapan2026-04-04Commercial Press QUALIFIED75Stephen Shaw
1043Tony FollerFrance2026-04-21Feltz Printing Service NEGOTIATION68Onyama Limba
1044Jeanfrancois VenereIndia2026-04-16Chemel, James L Cpa QUALIFIED79Amy Elsner
1045Tony FollerGermany2026-04-02King, Christopher A Esq NEW8Xuxue Feng
1046Antonio CaudySpain2026-04-02Commercial Press NEGOTIATION7Bernardo Dominic
1047Chavez BriddickGermany2026-04-23Chapman, Ross E Esq QUALIFIED9Ioni Bowcher
1048Murillo MaletGermany2026-04-22Chanay, Jeffrey A Esq NEGOTIATION81Xuxue Feng
1049Jones VocelkaIndia2026-04-12Chapman, Ross E Esq UNQUALIFIED84Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsFranceIoni Bowcher UNQUALIFIED
Stacey MacleadArgentinaIvan Magalhaes RENEWAL
Morrow RutaBrazilAsiya Javayant QUALIFIED
Deepesh ChuiBrazilStephen Shaw UNQUALIFIED
Claire TollnerFranceAsiya Javayant UNQUALIFIED
Deepesh ChuiCanadaAnna Fali RENEWAL
Sinclair WaycottIndiaOnyama Limba UNQUALIFIED
Ricardo GauchoArgentinaIoni Bowcher NEW
Johnson SergiRussiaXuxue Feng NEGOTIATION
Kaitlin OstroskyUnited KingdomAmy Elsner NEW
Julie StensethBrazilOnyama Limba QUALIFIED
Deepesh ChuiBrazilStephen Shaw QUALIFIED
Morrow RutaUnited KingdomIoni Bowcher PROPOSAL
Chavez BriddickGermanyBernardo Dominic NEGOTIATION
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Morrow RutaArgentinaOnyama Limba QUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng UNQUALIFIED
Leon OldroydRussiaIvan Magalhaes PROPOSAL
Isabel BowleyBrazilOnyama Limba NEGOTIATION
Adams MorascaFranceIoni Bowcher PROPOSAL
Wickens NestleCanadaAsiya Javayant QUALIFIED
Deepesh ChuiUnited KingdomIoni Bowcher RENEWAL
Antonio CaudyArgentinaIvan Magalhaes RENEWAL
Ashley DoeRussiaAnna Fali RENEWAL
Rodrigues CampainFranceXuxue Feng UNQUALIFIED
Stacey MacleadRussiaAnna Fali NEGOTIATION
Cody SaylorsJapanIvan Magalhaes NEW
Mayumi KolmetzAustraliaAmy Elsner PROPOSAL
Jennifer AmigonBrazilStephen Shaw PROPOSAL
Misaki RoysterArgentinaAsiya Javayant UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba QUALIFIED
Claire TollnerBrazilStephen Shaw UNQUALIFIED
Chavez BriddickItalyXuxue Feng UNQUALIFIED
Jefferson SchemmerJapanXuxue Feng RENEWAL
Jones VocelkaBrazilOnyama Limba NEGOTIATION
Jeanfrancois VenereFranceAsiya Javayant UNQUALIFIED
Johnson SergiBrazilStephen Shaw RENEWAL
Jennifer AmigonBrazilAmy Elsner NEW
Antonio CaudyRussiaAmy Elsner NEGOTIATION
Greenwood BologniaItalyXuxue Feng NEW
Jeanfrancois VenereCanadaBernardo Dominic NEW
Adams MorascaUnited KingdomElwin Sharvill RENEWAL
Emily WhobreyRussiaAsiya Javayant NEW
Munro FerenczFranceAmy Elsner NEW
Julie StensethAustraliaXuxue Feng UNQUALIFIED
Aika InouyeGermanyIvan Magalhaes RENEWAL
David DarakjyUnited KingdomAmy Elsner NEGOTIATION
Ashley DoeCanadaIvan Magalhaes QUALIFIED
Izzy GarufiItalyAnna Fali PROPOSAL
Maisha RulapaughJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Smith Glick
Leon Oldroyd
Aruna Figeroa
Alejandro Perin
Aika Inouye
Octavia Malet
Jefferson Schemmer
Julie Stenseth
Aditya Kusko
Silvio Slusarski
Jefferson Schemmer
Rodrigues Campain
Aruna Figeroa
Aika Inouye
Chavez Briddick
Darci Poquette
Greenwood Bolognia
Smith Glick
Francesco Shinko
Maisha Rulapaugh
Kaitlin Ostrosky
Juan Wieser
Ashley Doe
Stacey Maclead
Rodrigues Campain
Darci Poquette
Julie Stenseth
Morrow Ruta
James Butt
Johnson Sergi
Misaki Royster
Mujtaba Nicka
Sinclair Waycott
Aditya Kusko
Munro Ferencz
Juan Wieser
Mujtaba Nicka
Greenwood Bolognia
Jefferson Schemmer
Morrow Ruta
Maisha Rulapaugh
Kaitlin Ostrosky
Emily Whobrey
David Darakjy
Leon Oldroyd
Antonio Caudy
Mujtaba Nicka
Francesco Shinko
Tony Foller
Arvin Albares
IdCountryDate
1000Australia2026-04-28
1001Spain2026-04-17
1002Japan2026-04-28
1003France2026-04-22
1004Japan2026-04-13
1005France2026-04-04
1006Brazil2026-04-22
1007Argentina2026-04-04
1008Russia2026-04-18
1009Argentina2026-04-26
1010Germany2026-04-01
1011France2026-04-24
1012India2026-04-06
1013Brazil2026-04-27
1014India2026-04-17
1015Russia2026-04-06
1016India2026-04-11
1017France2026-03-31
1018Argentina2026-04-29
1019India2026-04-05
1020Brazil2026-04-09
1021Japan2026-04-27
1022Russia2026-04-10
1023Germany2026-04-06
1024India2026-04-29
1025United Kingdom2026-04-12
1026France2026-04-02
1027Russia2026-04-03
1028Germany2026-04-25
1029Argentina2026-04-24
1030Spain2026-04-26
1031Canada2026-03-31
1032India2026-04-09
1033Italy2026-04-17
1034Germany2026-04-10
1035Argentina2026-04-25
1036Russia2026-04-22
1037Canada2026-04-06
1038Canada2026-04-14
1039Italy2026-04-16
1040Italy2026-04-20
1041India2026-04-19
1042Spain2026-04-08
1043Australia2026-04-06
1044Italy2026-04-04
1045Canada2026-04-21
1046Spain2026-04-05
1047United Kingdom2026-04-26
1048United Kingdom2026-04-21
1049Canada2026-04-17

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Canada2026-04-14
Ricardo Gaucho1001Japan2026-04-15
Jones Vocelka1002Italy2026-04-01
Leja Caldarera1003France2026-04-13
Francesco Shinko1004Italy2026-04-10
Jones Vocelka1005Spain2026-04-09
Costa Dilliard1006Italy2026-04-08
Nicolas Iturbide1007Argentina2026-03-31
Cody Saylors1008France2026-04-20
Leon Oldroyd1009Spain2026-04-14
Jefferson Schemmer1010Japan2026-04-02
Ashley Doe1011Brazil2026-04-16
Claire Tollner1012Canada2026-04-04
Silvio Slusarski1013Spain2026-04-14
Ricardo Gaucho1014Brazil2026-04-28
Wickens Nestle1015India2026-04-25
Faith Gillian1016Australia2026-04-28
Jennifer Amigon1017Canada2026-04-23
Silvio Slusarski1018Japan2026-04-22
David Darakjy1019United Kingdom2026-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterIndiaElwin Sharvill NEGOTIATION
Julie StensethItalyIoni Bowcher NEW
Clifford RimRussiaStephen Shaw RENEWAL
Munro FerenczArgentinaBernardo Dominic NEW
Francesco ShinkoRussiaAnna Fali UNQUALIFIED
Cody SaylorsItalyXuxue Feng RENEWAL
Misaki RoysterFranceStephen Shaw NEGOTIATION
Morrow RutaGermanyBernardo Dominic RENEWAL
Leja CaldareraArgentinaBernardo Dominic RENEWAL
Isabel BowleyArgentinaBernardo Dominic QUALIFIED
Jeanfrancois VenereAustraliaIoni Bowcher UNQUALIFIED
Nicolas IturbideItalyAnna Fali UNQUALIFIED
Morrow RutaSpainBernardo Dominic NEGOTIATION
Munro FerenczArgentinaBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali PROPOSAL
Aika InouyeJapanIoni Bowcher QUALIFIED
Munro FerenczAustraliaOnyama Limba QUALIFIED
Maisha RulapaughFranceBernardo Dominic NEGOTIATION
Mayumi KolmetzSpainIoni Bowcher RENEWAL
Claire TollnerItalyIvan Magalhaes QUALIFIED
Francesco ShinkoJapanAmy Elsner RENEWAL
Jennifer AmigonBrazilIvan Magalhaes UNQUALIFIED
Jennifer AmigonRussiaIoni Bowcher PROPOSAL
Faith GillianArgentinaOnyama Limba RENEWAL
Kaitlin OstroskyFranceIvan Magalhaes NEW
Izzy GarufiArgentinaIoni Bowcher NEW
Faith GillianBrazilIvan Magalhaes NEGOTIATION
Stacey MacleadGermanyBernardo Dominic PROPOSAL
Jeanfrancois VenereArgentinaIoni Bowcher RENEWAL
Murillo MaletIndiaAmy Elsner QUALIFIED
Leon OldroydRussiaBernardo Dominic PROPOSAL
Mayumi KolmetzArgentinaAmy Elsner NEW
Costa DilliardJapanXuxue Feng QUALIFIED
Greenwood BologniaIndiaIoni Bowcher PROPOSAL
Ashley DoeCanadaXuxue Feng NEGOTIATION
Maisha RulapaughAustraliaAnna Fali NEGOTIATION
Emily WhobreyFranceAmy Elsner RENEWAL
Smith GlickIndiaIvan Magalhaes NEW
Johnson SergiArgentinaBernardo Dominic UNQUALIFIED
Johnson SergiSpainStephen 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>