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
Ivar PaprockiJapanElwin Sharvill RENEWAL
Silvio SlusarskiIndiaOnyama Limba NEGOTIATION
Clifford RimItalyIoni Bowcher RENEWAL
Wickens NestleUnited KingdomElwin Sharvill RENEWAL
Leon OldroydUnited KingdomStephen Shaw UNQUALIFIED
Cody SaylorsAustraliaAnna Fali NEW
Faith GillianSpainAnna Fali RENEWAL
Julie StensethGermanyAsiya Javayant PROPOSAL
Alejandro PerinCanadaIvan Magalhaes UNQUALIFIED
Clifford RimItalyAmy Elsner UNQUALIFIED
Ricardo GauchoUnited KingdomIvan Magalhaes QUALIFIED
Ivar PaprockiUnited KingdomOnyama Limba NEW
Ivar PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Silvio SlusarskiRussiaStephen Shaw RENEWAL
Smith GlickAustraliaStephen Shaw RENEWAL
Francesco ShinkoArgentinaAnna Fali RENEWAL
James ButtGermanyOnyama Limba RENEWAL
Aika InouyeCanadaIvan Magalhaes RENEWAL
Kadeem FlosiFranceAnna Fali UNQUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes PROPOSAL
Isabel BowleyItalyStephen Shaw NEW
Faith GillianGermanyAsiya Javayant PROPOSAL
Smith GlickFranceAsiya Javayant NEW
Antonio CaudySpainStephen Shaw NEGOTIATION
Emily WhobreyIndiaAnna Fali PROPOSAL
Nicolas IturbideIndiaStephen Shaw NEW
Smith GlickUnited KingdomIvan Magalhaes NEW
Leja CaldareraArgentinaBernardo Dominic NEW
Isabel BowleyRussiaAsiya Javayant NEGOTIATION
Maisha RulapaughFranceAmy Elsner QUALIFIED
Aruna FigeroaFranceAsiya Javayant QUALIFIED
David DarakjyUnited KingdomStephen Shaw NEW
Stacey MacleadArgentinaElwin Sharvill NEW
Nicolas IturbideBrazilAnna Fali RENEWAL
Deepesh ChuiAustraliaIoni Bowcher RENEWAL
Julie StensethFranceOnyama Limba NEW
Mujtaba NickaIndiaElwin Sharvill RENEWAL
Jefferson SchemmerRussiaAnna Fali NEGOTIATION
Clifford RimCanadaAmy Elsner UNQUALIFIED
Morrow RutaIndiaBernardo Dominic NEW
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Greenwood BologniaJapanAnna Fali UNQUALIFIED
Juan WieserFranceOnyama Limba NEGOTIATION
Nicolas IturbideUnited KingdomXuxue Feng QUALIFIED
Clifford RimAustraliaStephen Shaw PROPOSAL
Antonio CaudyRussiaIvan Magalhaes QUALIFIED
Sinclair WaycottFranceIoni Bowcher NEW
Mujtaba NickaFranceElwin Sharvill UNQUALIFIED
David DarakjyGermanyStephen Shaw QUALIFIED
Tony FollerUnited KingdomOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia MaletBrazilXuxue Feng UNQUALIFIED
Leon OldroydFranceXuxue Feng NEGOTIATION
Ashley DoeRussiaIvan Magalhaes QUALIFIED
Maisha RulapaughJapanStephen Shaw PROPOSAL
Jennifer AmigonAustraliaIvan Magalhaes RENEWAL
Adams MorascaArgentinaStephen Shaw QUALIFIED
Francesco ShinkoArgentinaElwin Sharvill RENEWAL
Wickens NestleItalyAmy Elsner NEGOTIATION
Ashley DoeUnited KingdomOnyama Limba QUALIFIED
Aditya KuskoSpainIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaBrazil2026-04-29King, Christopher A Esq PROPOSAL62Ioni Bowcher
1001Ricardo GauchoBrazil2026-05-14King, Christopher A Esq PROPOSAL78Onyama Limba
1002Mujtaba NickaUnited Kingdom2026-05-20Chanay, Jeffrey A Esq RENEWAL72Asiya Javayant
1003Rodrigues CampainFrance2026-05-01Buckley Miller Wright NEW55Amy Elsner
1004Ivar PaprockiAustralia2026-05-05Rousseaux, Michael Esq QUALIFIED56Anna Fali
1005Ashley DoeGermany2026-05-08Buckley Miller Wright RENEWAL33Onyama Limba
1006Jefferson SchemmerBrazil2026-05-07Feltz Printing Service NEW67Onyama Limba
1007Claire TollnerBrazil2026-05-11King, Christopher A Esq NEW49Ioni Bowcher
1008Ashley DoeAustralia2026-05-01Dorl, James J Esq RENEWAL42Asiya Javayant
1009James ButtGermany2026-05-04Feiner Bros UNQUALIFIED8Amy Elsner
1010Clifford RimBrazil2026-05-16Buckley Miller Wright NEW2Onyama Limba
1011Smith GlickJapan2026-04-25Rousseaux, Michael Esq RENEWAL62Anna Fali
1012Johnson SergiBrazil2026-05-05Feiner Bros NEGOTIATION49Asiya Javayant
1013Alejandro PerinJapan2026-05-21Dorl, James J Esq UNQUALIFIED20Stephen Shaw
1014Mayumi KolmetzItaly2026-04-23Chapman, Ross E Esq UNQUALIFIED11Stephen Shaw
1015Deepesh ChuiSpain2026-05-13Printing Dimensions QUALIFIED60Elwin Sharvill
1016Morrow RutaRussia2026-05-21Rangoni Of Florence UNQUALIFIED27Ivan Magalhaes
1017Maisha RulapaughRussia2026-05-06Chemel, James L Cpa RENEWAL22Anna Fali
1018Aika InouyeGermany2026-05-21Benton, John B Jr QUALIFIED99Elwin Sharvill
1019Adams MorascaAustralia2026-05-02Feltz Printing Service QUALIFIED10Anna Fali
1020David DarakjyRussia2026-05-10Morlong Associates UNQUALIFIED29Onyama Limba
1021Sinclair WaycottCanada2026-05-10Chapman, Ross E Esq NEW80Xuxue Feng
1022Arvin AlbaresArgentina2026-04-27Buckley Miller Wright PROPOSAL20Asiya Javayant
1023Adams MorascaIndia2026-04-26Benton, John B Jr NEGOTIATION90Anna Fali
1024Antonio CaudyBrazil2026-05-18Rousseaux, Michael Esq NEGOTIATION74Ioni Bowcher
1025James ButtIndia2026-05-22Rangoni Of Florence RENEWAL67Onyama Limba
1026Aika InouyeArgentina2026-05-07Feltz Printing Service PROPOSAL23Ioni Bowcher
1027Darci PoquetteGermany2026-05-12Rangoni Of Florence PROPOSAL83Xuxue Feng
1028Smith GlickAustralia2026-05-16Truhlar And Truhlar Attys NEW57Elwin Sharvill
1029Nicolas IturbideAustralia2026-04-25Chanay, Jeffrey A Esq UNQUALIFIED16Amy Elsner
1030Francesco ShinkoCanada2026-05-05King, Christopher A Esq NEGOTIATION94Amy Elsner
1031Jefferson SchemmerBrazil2026-04-24Morlong Associates UNQUALIFIED77Xuxue Feng
1032Arvin AlbaresItaly2026-05-11Chanay, Jeffrey A Esq PROPOSAL33Amy Elsner
1033Maria MarrierIndia2026-05-21Dorl, James J Esq NEGOTIATION54Elwin Sharvill
1034Francesco ShinkoArgentina2026-05-21Commercial Press QUALIFIED17Stephen Shaw
1035Nicolas IturbideCanada2026-05-15Rangoni Of Florence PROPOSAL0Asiya Javayant
1036Greenwood BologniaIndia2026-04-24King, Christopher A Esq NEW24Amy Elsner
1037Kadeem FlosiBrazil2026-05-11Chanay, Jeffrey A Esq NEGOTIATION5Asiya Javayant
1038Costa DilliardIndia2026-05-10Chanay, Jeffrey A Esq PROPOSAL14Asiya Javayant
1039Darci PoquetteGermany2026-05-14Dorl, James J Esq PROPOSAL19Amy Elsner
1040Misaki RoysterIndia2026-04-26Chanay, Jeffrey A Esq PROPOSAL22Stephen Shaw
1041Cody SaylorsFrance2026-05-04Buckley Miller Wright NEW13Ioni Bowcher
1042Cody SaylorsSpain2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED14Elwin Sharvill
1043Aruna FigeroaJapan2026-05-09Morlong Associates NEGOTIATION53Asiya Javayant
1044Leja CaldareraAustralia2026-05-02Commercial Press UNQUALIFIED59Amy Elsner
1045Faith GillianIndia2026-04-25Chanay, Jeffrey A Esq PROPOSAL32Bernardo Dominic
1046Juan WieserFrance2026-05-05Feiner Bros NEGOTIATION46Asiya Javayant
1047Ashley DoeUnited Kingdom2026-05-07Rousseaux, Michael Esq NEW59Amy Elsner
1048Octavia MaletRussia2026-05-04Rousseaux, Michael Esq UNQUALIFIED48Xuxue Feng
1049Kadeem FlosiBrazil2026-04-25Buckley Miller Wright NEGOTIATION81Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiAustraliaIoni Bowcher PROPOSAL
Mujtaba NickaIndiaBernardo Dominic QUALIFIED
Salvatore StockhamArgentinaStephen Shaw RENEWAL
Sinclair WaycottAustraliaBernardo Dominic RENEWAL
James ButtRussiaOnyama Limba QUALIFIED
Jefferson SchemmerSpainXuxue Feng PROPOSAL
Misaki RoysterIndiaAsiya Javayant NEW
Izzy GarufiFranceBernardo Dominic RENEWAL
Darci PoquetteGermanyAsiya Javayant NEGOTIATION
Juan WieserArgentinaAnna Fali QUALIFIED
Stacey MacleadRussiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiSpainAnna Fali UNQUALIFIED
Aika InouyeAustraliaOnyama Limba QUALIFIED
Juan WieserArgentinaStephen Shaw QUALIFIED
Ricardo GauchoUnited KingdomOnyama Limba QUALIFIED
Izzy GarufiUnited KingdomAmy Elsner PROPOSAL
James ButtFranceBernardo Dominic NEGOTIATION
Costa DilliardCanadaStephen Shaw PROPOSAL
Antonio CaudyCanadaIvan Magalhaes PROPOSAL
Greenwood BologniaGermanyIvan Magalhaes PROPOSAL
Aditya KuskoFranceAnna Fali PROPOSAL
Octavia MaletIndiaAsiya Javayant NEGOTIATION
Deepesh ChuiRussiaOnyama Limba UNQUALIFIED
James ButtCanadaStephen Shaw PROPOSAL
Munro FerenczFranceElwin Sharvill NEGOTIATION
Munro FerenczGermanyStephen Shaw QUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant RENEWAL
Arvin AlbaresIndiaAnna Fali UNQUALIFIED
Silvio SlusarskiJapanIvan Magalhaes NEGOTIATION
Aruna FigeroaItalyXuxue Feng QUALIFIED
Salvatore StockhamGermanyOnyama Limba NEGOTIATION
Emily WhobreyArgentinaXuxue Feng RENEWAL
Silvio SlusarskiGermanyBernardo Dominic NEW
Jeanfrancois VenereRussiaBernardo Dominic NEW
Ivar PaprockiSpainIvan Magalhaes QUALIFIED
Clifford RimRussiaElwin Sharvill RENEWAL
Deepesh ChuiUnited KingdomAnna Fali UNQUALIFIED
Mayumi KolmetzCanadaAnna Fali NEGOTIATION
Munro FerenczGermanyStephen Shaw PROPOSAL
David DarakjyJapanAnna Fali RENEWAL
Leja CaldareraFranceOnyama Limba PROPOSAL
Clifford RimIndiaAnna Fali RENEWAL
Salvatore StockhamSpainXuxue Feng RENEWAL
Arvin AlbaresSpainAnna Fali NEGOTIATION
Faith GillianUnited KingdomXuxue Feng RENEWAL
Emily WhobreyAustraliaElwin Sharvill NEW
Leja CaldareraFranceAmy Elsner PROPOSAL
Julie StensethAustraliaIoni Bowcher RENEWAL
Maisha RulapaughRussiaOnyama Limba UNQUALIFIED
Morrow RutaArgentinaAnna Fali QUALIFIED
Frozen Columns
Name
Jones Vocelka
Rodrigues Campain
Antonio Caudy
Aika Inouye
James Butt
Aika Inouye
James Butt
Chavez Briddick
Morrow Ruta
James Butt
Nicolas Iturbide
Munro Ferencz
Jennifer Amigon
Wickens Nestle
Leon Oldroyd
James Butt
Maria Marrier
Morrow Ruta
Aruna Figeroa
Leon Oldroyd
Francesco Shinko
Antonio Caudy
Aditya Kusko
Julie Stenseth
Ashley Doe
Alejandro Perin
Ivar Paprocki
Maisha Rulapaugh
Sinclair Waycott
Mujtaba Nicka
Morrow Ruta
Jones Vocelka
Antonio Caudy
James Butt
Deepesh Chui
Jefferson Schemmer
Aika Inouye
Greenwood Bolognia
Ashley Doe
Isabel Bowley
Leja Caldarera
James Butt
Ricardo Gaucho
Mayumi Kolmetz
Cody Saylors
Jennifer Amigon
Nicolas Iturbide
Munro Ferencz
Salvatore Stockham
Juan Wieser
IdCountryDate
1000France2026-05-10
1001India2026-05-19
1002United Kingdom2026-05-05
1003United Kingdom2026-04-25
1004Australia2026-05-04
1005Australia2026-04-29
1006Germany2026-05-10
1007Australia2026-05-09
1008Canada2026-05-07
1009Germany2026-05-17
1010Germany2026-05-02
1011India2026-05-01
1012Argentina2026-04-27
1013India2026-05-16
1014Russia2026-05-10
1015Brazil2026-04-29
1016Italy2026-04-26
1017Argentina2026-05-18
1018Germany2026-05-03
1019Australia2026-05-11
1020Spain2026-05-03
1021France2026-05-22
1022India2026-05-19
1023Argentina2026-04-24
1024India2026-05-13
1025United Kingdom2026-05-15
1026France2026-05-13
1027Australia2026-05-09
1028Argentina2026-05-16
1029India2026-05-17
1030Italy2026-04-24
1031Argentina2026-04-26
1032United Kingdom2026-04-28
1033Italy2026-05-21
1034Canada2026-05-04
1035Italy2026-05-22
1036Argentina2026-04-24
1037France2026-05-03
1038India2026-05-20
1039United Kingdom2026-05-08
1040Australia2026-05-15
1041Brazil2026-05-14
1042Russia2026-04-25
1043Japan2026-05-21
1044Canada2026-05-08
1045Russia2026-05-21
1046India2026-05-21
1047India2026-05-09
1048Germany2026-05-07
1049United Kingdom2026-05-16

On-Demand Data

NameIdCountryDate
Arvin Albares1000Germany2026-05-22
Rodrigues Campain1001Russia2026-05-07
Juan Wieser1002India2026-05-13
Nicolas Iturbide1003Germany2026-05-07
Arvin Albares1004United Kingdom2026-04-27
Misaki Royster1005United Kingdom2026-05-10
Aika Inouye1006Italy2026-05-17
Cody Saylors1007Canada2026-05-05
Rodrigues Campain1008Brazil2026-05-14
Arvin Albares1009France2026-05-09
Darci Poquette1010France2026-05-11
Juan Wieser1011Italy2026-05-14
Smith Glick1012United Kingdom2026-05-21
Claire Tollner1013Spain2026-04-28
Kadeem Flosi1014Canada2026-05-06
Adams Morasca1015Japan2026-05-18
Aruna Figeroa1016Russia2026-05-03
Nicolas Iturbide1017France2026-04-23
Alejandro Perin1018Germany2026-05-14
Aruna Figeroa1019Australia2026-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardArgentinaIoni Bowcher NEW
Nicolas IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Leon OldroydArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiSpainElwin Sharvill RENEWAL
Mayumi KolmetzUnited KingdomStephen Shaw NEGOTIATION
Kaitlin OstroskyBrazilXuxue Feng PROPOSAL
Salvatore StockhamAustraliaIoni Bowcher NEGOTIATION
Stacey MacleadCanadaStephen Shaw UNQUALIFIED
Mayumi KolmetzAustraliaAnna Fali PROPOSAL
Jefferson SchemmerJapanBernardo Dominic QUALIFIED
Octavia MaletRussiaOnyama Limba PROPOSAL
Adams MorascaItalyBernardo Dominic QUALIFIED
Emily WhobreySpainIvan Magalhaes NEGOTIATION
Maisha RulapaughCanadaIoni Bowcher NEGOTIATION
Salvatore StockhamAustraliaIoni Bowcher PROPOSAL
Smith GlickItalyAnna Fali NEGOTIATION
Jennifer AmigonUnited KingdomStephen Shaw UNQUALIFIED
Darci PoquetteCanadaOnyama Limba QUALIFIED
Ricardo GauchoJapanAnna Fali UNQUALIFIED
Ricardo GauchoSpainOnyama Limba QUALIFIED
Chavez BriddickUnited KingdomAsiya Javayant PROPOSAL
Salvatore StockhamAustraliaAnna Fali PROPOSAL
Ivar PaprockiSpainBernardo Dominic RENEWAL
Isabel BowleyIndiaIoni Bowcher UNQUALIFIED
Aika InouyeIndiaAsiya Javayant QUALIFIED
Jeanfrancois VenereAustraliaAsiya Javayant QUALIFIED
Jeanfrancois VenereItalyElwin Sharvill PROPOSAL
Isabel BowleyItalyXuxue Feng NEGOTIATION
Ivar PaprockiAustraliaOnyama Limba PROPOSAL
Adams MorascaGermanyStephen Shaw NEW
Darci PoquetteJapanAnna Fali UNQUALIFIED
Mujtaba NickaFranceOnyama Limba PROPOSAL
Silvio SlusarskiFranceAmy Elsner PROPOSAL
Alejandro PerinJapanOnyama Limba QUALIFIED
Adams MorascaFranceAnna Fali QUALIFIED
Maisha RulapaughRussiaXuxue Feng PROPOSAL
Maria MarrierFranceElwin Sharvill NEW
Salvatore StockhamItalyElwin Sharvill NEW
Jones VocelkaCanadaOnyama Limba QUALIFIED
Maisha RulapaughIndiaBernardo Dominic 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>