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
Ricardo GauchoIndiaElwin Sharvill NEW
Alejandro PerinCanadaAnna Fali QUALIFIED
Greenwood BologniaGermanyXuxue Feng PROPOSAL
Jennifer AmigonBrazilIoni Bowcher RENEWAL
Silvio SlusarskiAustraliaIvan Magalhaes RENEWAL
Aruna FigeroaFranceOnyama Limba RENEWAL
Johnson SergiArgentinaAmy Elsner RENEWAL
Wickens NestleBrazilElwin Sharvill QUALIFIED
Aditya KuskoRussiaXuxue Feng PROPOSAL
Nicolas IturbideJapanStephen Shaw PROPOSAL
Misaki RoysterSpainXuxue Feng UNQUALIFIED
Jefferson SchemmerCanadaIoni Bowcher PROPOSAL
Leja CaldareraJapanElwin Sharvill PROPOSAL
Faith GillianUnited KingdomAsiya Javayant QUALIFIED
Mujtaba NickaCanadaElwin Sharvill NEGOTIATION
Leon OldroydSpainXuxue Feng NEW
Wickens NestleGermanyStephen Shaw QUALIFIED
Silvio SlusarskiIndiaStephen Shaw UNQUALIFIED
Isabel BowleySpainIvan Magalhaes PROPOSAL
Chavez BriddickRussiaOnyama Limba PROPOSAL
Ricardo GauchoSpainAmy Elsner NEW
Jefferson SchemmerJapanOnyama Limba UNQUALIFIED
Alejandro PerinBrazilBernardo Dominic UNQUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant NEW
Julie StensethUnited KingdomStephen Shaw NEGOTIATION
Ivar PaprockiCanadaXuxue Feng PROPOSAL
Antonio CaudyFranceOnyama Limba PROPOSAL
Cody SaylorsUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois VenereSpainAsiya Javayant NEW
Aruna FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Ivar PaprockiBrazilIvan Magalhaes NEGOTIATION
James ButtJapanIvan Magalhaes PROPOSAL
Jeanfrancois VenereBrazilAsiya Javayant UNQUALIFIED
Tony FollerBrazilAmy Elsner QUALIFIED
Clifford RimFranceAnna Fali RENEWAL
Salvatore StockhamRussiaOnyama Limba PROPOSAL
Maisha RulapaughJapanOnyama Limba NEGOTIATION
Salvatore StockhamFranceBernardo Dominic NEW
Silvio SlusarskiBrazilXuxue Feng QUALIFIED
Jeanfrancois VenereArgentinaOnyama Limba NEW
Ricardo GauchoUnited KingdomStephen Shaw QUALIFIED
Aruna FigeroaArgentinaOnyama Limba UNQUALIFIED
Faith GillianAustraliaXuxue Feng PROPOSAL
Ivar PaprockiJapanStephen Shaw RENEWAL
Emily WhobreyArgentinaStephen Shaw UNQUALIFIED
Faith GillianAustraliaBernardo Dominic UNQUALIFIED
James ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyRussiaBernardo Dominic UNQUALIFIED
Leja CaldareraItalyIoni Bowcher NEW
Francesco ShinkoRussiaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Ashley DoeRussiaXuxue Feng QUALIFIED
Ivar PaprockiUnited KingdomAmy Elsner NEW
Arvin AlbaresFranceAsiya Javayant NEGOTIATION
Morrow RutaGermanyStephen Shaw RENEWAL
Isabel BowleyBrazilOnyama Limba UNQUALIFIED
Claire TollnerGermanyOnyama Limba NEGOTIATION
David DarakjyRussiaAnna Fali UNQUALIFIED
Aruna FigeroaGermanyAmy Elsner PROPOSAL
Mujtaba NickaAustraliaStephen Shaw UNQUALIFIED
Cody SaylorsAustraliaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyIndia2026-04-19Morlong Associates PROPOSAL35Stephen Shaw
1001Sinclair WaycottArgentina2026-05-08Feiner Bros RENEWAL37Anna Fali
1002Maisha RulapaughJapan2026-04-29Morlong Associates QUALIFIED48Ivan Magalhaes
1003Costa DilliardRussia2026-04-15Chemel, James L Cpa PROPOSAL38Asiya Javayant
1004Greenwood BologniaItaly2026-05-01Feiner Bros UNQUALIFIED84Onyama Limba
1005Izzy GarufiRussia2026-04-17Commercial Press QUALIFIED69Ivan Magalhaes
1006Juan WieserIndia2026-04-18Rousseaux, Michael Esq NEW49Stephen Shaw
1007Jones VocelkaUnited Kingdom2026-04-28Feltz Printing Service NEGOTIATION3Ioni Bowcher
1008Sinclair WaycottIndia2026-05-03Benton, John B Jr NEGOTIATION38Ioni Bowcher
1009Tony FollerArgentina2026-04-15Truhlar And Truhlar Attys NEW57Onyama Limba
1010David DarakjyArgentina2026-05-04Benton, John B Jr PROPOSAL2Stephen Shaw
1011Isabel BowleyFrance2026-04-14Feltz Printing Service NEGOTIATION63Anna Fali
1012Wickens NestleBrazil2026-04-21King, Christopher A Esq NEGOTIATION80Anna Fali
1013Tony FollerAustralia2026-05-03Printing Dimensions RENEWAL8Xuxue Feng
1014Leja CaldareraBrazil2026-04-16Chanay, Jeffrey A Esq PROPOSAL35Asiya Javayant
1015Aika InouyeBrazil2026-05-06Rousseaux, Michael Esq RENEWAL41Asiya Javayant
1016Deepesh ChuiSpain2026-05-08Buckley Miller Wright RENEWAL53Ioni Bowcher
1017Salvatore StockhamBrazil2026-04-24Commercial Press RENEWAL78Anna Fali
1018Leon OldroydAustralia2026-04-23King, Christopher A Esq UNQUALIFIED7Elwin Sharvill
1019Silvio SlusarskiIndia2026-04-15Chapman, Ross E Esq RENEWAL81Anna Fali
1020Deepesh ChuiUnited Kingdom2026-04-30Commercial Press PROPOSAL73Elwin Sharvill
1021Izzy GarufiFrance2026-04-19Printing Dimensions UNQUALIFIED51Bernardo Dominic
1022Jennifer AmigonJapan2026-04-18Rangoni Of Florence QUALIFIED37Bernardo Dominic
1023Adams MorascaItaly2026-04-11Buckley Miller Wright UNQUALIFIED35Amy Elsner
1024Sinclair WaycottCanada2026-04-23King, Christopher A Esq UNQUALIFIED28Amy Elsner
1025Clifford RimRussia2026-05-07Chemel, James L Cpa QUALIFIED80Ivan Magalhaes
1026Deepesh ChuiItaly2026-04-27Rousseaux, Michael Esq NEW29Amy Elsner
1027Ashley DoeCanada2026-05-04Rangoni Of Florence UNQUALIFIED81Asiya Javayant
1028Mayumi KolmetzBrazil2026-04-30Rangoni Of Florence QUALIFIED39Ivan Magalhaes
1029Aditya KuskoBrazil2026-04-13Chanay, Jeffrey A Esq UNQUALIFIED10Ioni Bowcher
1030Stacey MacleadAustralia2026-04-25Feiner Bros UNQUALIFIED93Amy Elsner
1031Kaitlin OstroskyUnited Kingdom2026-05-07Commercial Press NEW56Amy Elsner
1032Aika InouyeUnited Kingdom2026-05-06Chapman, Ross E Esq PROPOSAL90Ivan Magalhaes
1033Clifford RimGermany2026-05-04Commercial Press PROPOSAL13Anna Fali
1034Johnson SergiItaly2026-04-24Benton, John B Jr QUALIFIED7Ivan Magalhaes
1035Sinclair WaycottJapan2026-04-28Chanay, Jeffrey A Esq NEW52Bernardo Dominic
1036Maria MarrierJapan2026-04-13Truhlar And Truhlar Attys PROPOSAL85Ioni Bowcher
1037Claire TollnerArgentina2026-04-27Truhlar And Truhlar Attys NEGOTIATION18Onyama Limba
1038Juan WieserAustralia2026-04-11Chemel, James L Cpa UNQUALIFIED52Amy Elsner
1039Silvio SlusarskiJapan2026-05-08Chanay, Jeffrey A Esq NEW19Ivan Magalhaes
1040Murillo MaletIndia2026-04-21Feiner Bros PROPOSAL54Elwin Sharvill
1041Nicolas IturbideGermany2026-04-15Printing Dimensions PROPOSAL98Ivan Magalhaes
1042Rodrigues CampainAustralia2026-05-05Dorl, James J Esq RENEWAL25Bernardo Dominic
1043Mayumi KolmetzGermany2026-04-24Chapman, Ross E Esq NEGOTIATION12Amy Elsner
1044Ashley DoeItaly2026-05-06Chapman, Ross E Esq QUALIFIED35Stephen Shaw
1045Greenwood BologniaIndia2026-04-11Chapman, Ross E Esq NEW43Bernardo Dominic
1046Adams MorascaFrance2026-04-15Buckley Miller Wright QUALIFIED40Asiya Javayant
1047Isabel BowleySpain2026-05-07Morlong Associates NEGOTIATION93Stephen Shaw
1048Claire TollnerAustralia2026-04-21King, Christopher A Esq PROPOSAL13Xuxue Feng
1049Cody SaylorsJapan2026-04-13Benton, John B Jr NEW53Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeGermanyAsiya Javayant PROPOSAL
Rodrigues CampainRussiaBernardo Dominic RENEWAL
Alejandro PerinBrazilAnna Fali RENEWAL
Murillo MaletItalyIoni Bowcher QUALIFIED
Adams MorascaRussiaAmy Elsner UNQUALIFIED
Darci PoquetteAustraliaStephen Shaw NEGOTIATION
Murillo MaletBrazilAnna Fali NEGOTIATION
Cody SaylorsFranceXuxue Feng NEW
Chavez BriddickArgentinaIoni Bowcher PROPOSAL
Octavia MaletAustraliaIvan Magalhaes RENEWAL
Jefferson SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Isabel BowleyIndiaIoni Bowcher UNQUALIFIED
Johnson SergiJapanBernardo Dominic NEGOTIATION
Deepesh ChuiIndiaIvan Magalhaes NEW
Isabel BowleyIndiaXuxue Feng NEW
Alejandro PerinIndiaIvan Magalhaes UNQUALIFIED
Murillo MaletGermanyAnna Fali NEGOTIATION
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Maisha RulapaughIndiaStephen Shaw QUALIFIED
Adams MorascaJapanXuxue Feng QUALIFIED
Aika InouyeBrazilAmy Elsner NEGOTIATION
Tony FollerAustraliaAnna Fali QUALIFIED
Isabel BowleyJapanXuxue Feng PROPOSAL
Ashley DoeCanadaAmy Elsner RENEWAL
Silvio SlusarskiIndiaXuxue Feng QUALIFIED
Leon OldroydAustraliaAnna Fali NEW
Salvatore StockhamItalyXuxue Feng RENEWAL
Jones VocelkaSpainAmy Elsner QUALIFIED
Maria MarrierArgentinaElwin Sharvill NEGOTIATION
Wickens NestleItalyStephen Shaw UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher PROPOSAL
Maisha RulapaughAustraliaBernardo Dominic NEW
Sinclair WaycottFranceIvan Magalhaes NEW
Costa DilliardCanadaIoni Bowcher UNQUALIFIED
Isabel BowleyJapanAmy Elsner PROPOSAL
Ashley DoeArgentinaStephen Shaw RENEWAL
Munro FerenczUnited KingdomAsiya Javayant QUALIFIED
Jones VocelkaItalyStephen Shaw NEW
Jones VocelkaBrazilAmy Elsner NEW
David DarakjyGermanyIvan Magalhaes NEW
Wickens NestleItalyIoni Bowcher PROPOSAL
James ButtUnited KingdomIoni Bowcher RENEWAL
Wickens NestleIndiaOnyama Limba UNQUALIFIED
Salvatore StockhamSpainAsiya Javayant NEGOTIATION
Costa DilliardCanadaAnna Fali UNQUALIFIED
Nicolas IturbideRussiaIvan Magalhaes UNQUALIFIED
Ricardo GauchoBrazilStephen Shaw UNQUALIFIED
Claire TollnerItalyXuxue Feng QUALIFIED
Aruna FigeroaSpainAmy Elsner UNQUALIFIED
Aruna FigeroaFranceOnyama Limba NEGOTIATION
Frozen Columns
Name
Arvin Albares
Ashley Doe
Silvio Slusarski
Aditya Kusko
Ricardo Gaucho
Aruna Figeroa
Emily Whobrey
Adams Morasca
Aditya Kusko
Mujtaba Nicka
Cody Saylors
Ashley Doe
Jennifer Amigon
Chavez Briddick
Kadeem Flosi
David Darakjy
Salvatore Stockham
Salvatore Stockham
Smith Glick
Misaki Royster
Antonio Caudy
Kaitlin Ostrosky
David Darakjy
Cody Saylors
Ricardo Gaucho
Jennifer Amigon
Leja Caldarera
Isabel Bowley
Julie Stenseth
Silvio Slusarski
Claire Tollner
Sinclair Waycott
Munro Ferencz
Leja Caldarera
Misaki Royster
Octavia Malet
Juan Wieser
Francesco Shinko
Murillo Malet
Cody Saylors
David Darakjy
Jefferson Schemmer
Greenwood Bolognia
David Darakjy
Alejandro Perin
Jefferson Schemmer
Chavez Briddick
Aika Inouye
Salvatore Stockham
Claire Tollner
IdCountryDate
1000Italy2026-04-23
1001Italy2026-04-21
1002United Kingdom2026-05-05
1003Canada2026-05-06
1004Spain2026-04-27
1005Russia2026-04-19
1006Brazil2026-05-06
1007Argentina2026-04-25
1008Italy2026-05-08
1009Germany2026-05-07
1010France2026-04-12
1011Canada2026-05-06
1012Spain2026-05-06
1013India2026-05-02
1014Australia2026-05-01
1015Russia2026-04-28
1016Brazil2026-04-26
1017France2026-04-25
1018Argentina2026-04-17
1019Canada2026-05-10
1020United Kingdom2026-05-04
1021Australia2026-04-24
1022United Kingdom2026-05-08
1023Japan2026-04-17
1024United Kingdom2026-04-17
1025France2026-05-06
1026Russia2026-04-19
1027Germany2026-05-02
1028Japan2026-05-04
1029Australia2026-04-26
1030Brazil2026-04-20
1031Canada2026-04-27
1032Japan2026-05-02
1033Germany2026-04-26
1034France2026-05-05
1035India2026-05-10
1036Spain2026-04-28
1037Italy2026-04-12
1038Russia2026-05-10
1039Germany2026-04-15
1040Argentina2026-04-23
1041Italy2026-04-22
1042Japan2026-04-28
1043Argentina2026-05-02
1044Russia2026-04-19
1045Brazil2026-04-12
1046Italy2026-04-24
1047Spain2026-04-24
1048Australia2026-04-20
1049United Kingdom2026-04-19

On-Demand Data

NameIdCountryDate
Jones Vocelka1000United Kingdom2026-04-11
Octavia Malet1001India2026-04-25
Clifford Rim1002Spain2026-04-27
Mayumi Kolmetz1003Spain2026-04-26
Izzy Garufi1004India2026-04-25
Morrow Ruta1005Canada2026-04-28
Silvio Slusarski1006Spain2026-04-24
Julie Stenseth1007Italy2026-04-22
Morrow Ruta1008Australia2026-04-24
Aruna Figeroa1009Spain2026-04-26
Wickens Nestle1010Spain2026-04-26
Jeanfrancois Venere1011United Kingdom2026-04-18
Cody Saylors1012Spain2026-04-24
Aika Inouye1013Spain2026-04-20
Jeanfrancois Venere1014France2026-04-26
Jefferson Schemmer1015India2026-04-24
Deepesh Chui1016Russia2026-04-18
Rodrigues Campain1017Italy2026-05-07
Francesco Shinko1018Italy2026-04-23
Costa Dilliard1019Brazil2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaCanadaXuxue Feng NEW
Misaki RoysterAustraliaAsiya Javayant PROPOSAL
Adams MorascaItalyIvan Magalhaes NEGOTIATION
Jennifer AmigonFranceIoni Bowcher QUALIFIED
Darci PoquetteArgentinaElwin Sharvill UNQUALIFIED
Misaki RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Leon OldroydBrazilAnna Fali NEW
Antonio CaudyRussiaAmy Elsner NEGOTIATION
Adams MorascaBrazilAmy Elsner PROPOSAL
Aika InouyeAustraliaElwin Sharvill QUALIFIED
Julie StensethGermanyAnna Fali PROPOSAL
Smith GlickCanadaAnna Fali NEW
Maisha RulapaughBrazilOnyama Limba QUALIFIED
Smith GlickGermanyIoni Bowcher PROPOSAL
Juan WieserBrazilAmy Elsner PROPOSAL
Izzy GarufiCanadaStephen Shaw RENEWAL
Jennifer AmigonArgentinaAsiya Javayant NEGOTIATION
Wickens NestleRussiaIvan Magalhaes UNQUALIFIED
Antonio CaudyBrazilAsiya Javayant UNQUALIFIED
Tony FollerIndiaAnna Fali RENEWAL
Sinclair WaycottArgentinaAnna Fali PROPOSAL
Octavia MaletArgentinaXuxue Feng QUALIFIED
Octavia MaletCanadaAnna Fali UNQUALIFIED
Stacey MacleadFranceElwin Sharvill NEGOTIATION
Murillo MaletJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughFranceIvan Magalhaes NEGOTIATION
Chavez BriddickJapanIoni Bowcher UNQUALIFIED
Misaki RoysterGermanyIoni Bowcher PROPOSAL
Wickens NestleBrazilIoni Bowcher NEGOTIATION
Johnson SergiCanadaElwin Sharvill NEGOTIATION
Clifford RimCanadaIoni Bowcher RENEWAL
Antonio CaudyIndiaXuxue Feng NEW
Morrow RutaArgentinaOnyama Limba NEW
Clifford RimUnited KingdomStephen Shaw NEGOTIATION
Clifford RimUnited KingdomXuxue Feng UNQUALIFIED
Johnson SergiRussiaAmy Elsner UNQUALIFIED
Johnson SergiCanadaAmy Elsner RENEWAL
Jeanfrancois VenereItalyAmy Elsner NEGOTIATION
Johnson SergiUnited KingdomStephen Shaw NEW
Octavia MaletIndiaXuxue Feng NEGOTIATION

<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>