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 OstroskyAustraliaIoni Bowcher RENEWAL
Izzy GarufiFranceXuxue Feng NEGOTIATION
Emily WhobreyBrazilAmy Elsner QUALIFIED
Deepesh ChuiAustraliaAmy Elsner UNQUALIFIED
Clifford RimSpainXuxue Feng NEGOTIATION
Stacey MacleadJapanAnna Fali PROPOSAL
Smith GlickFranceAsiya Javayant NEW
Murillo MaletFranceAnna Fali PROPOSAL
Nicolas IturbideItalyOnyama Limba QUALIFIED
Aditya KuskoItalyIoni Bowcher NEGOTIATION
Munro FerenczAustraliaIoni Bowcher NEGOTIATION
Cody SaylorsGermanyAnna Fali NEGOTIATION
Murillo MaletJapanElwin Sharvill RENEWAL
Morrow RutaUnited KingdomElwin Sharvill NEGOTIATION
Tony FollerRussiaBernardo Dominic QUALIFIED
Munro FerenczAustraliaElwin Sharvill RENEWAL
Jeanfrancois VenereRussiaOnyama Limba QUALIFIED
Jefferson SchemmerIndiaStephen Shaw NEW
Cody SaylorsJapanAsiya Javayant RENEWAL
Leja CaldareraArgentinaAnna Fali PROPOSAL
Ricardo GauchoAustraliaBernardo Dominic NEGOTIATION
Jones VocelkaAustraliaXuxue Feng NEW
Leon OldroydGermanyStephen Shaw RENEWAL
Murillo MaletRussiaIvan Magalhaes QUALIFIED
Julie StensethJapanAmy Elsner UNQUALIFIED
Leon OldroydItalyXuxue Feng NEW
Antonio CaudyBrazilOnyama Limba NEW
Cody SaylorsUnited KingdomIoni Bowcher PROPOSAL
Ashley DoeCanadaAmy Elsner PROPOSAL
Ashley DoeFranceIoni Bowcher NEW
Jeanfrancois VenereBrazilAmy Elsner RENEWAL
Misaki RoysterBrazilStephen Shaw UNQUALIFIED
Greenwood BologniaItalyOnyama Limba NEW
Silvio SlusarskiAustraliaAsiya Javayant QUALIFIED
Deepesh ChuiBrazilStephen Shaw PROPOSAL
Ashley DoeFranceOnyama Limba NEGOTIATION
Clifford RimItalyElwin Sharvill NEW
Maria MarrierRussiaXuxue Feng NEGOTIATION
Ashley DoeIndiaElwin Sharvill QUALIFIED
Misaki RoysterFranceElwin Sharvill RENEWAL
Maria MarrierIndiaIvan Magalhaes RENEWAL
Mayumi KolmetzArgentinaIvan Magalhaes PROPOSAL
Mayumi KolmetzGermanyAmy Elsner NEGOTIATION
Costa DilliardBrazilAnna Fali RENEWAL
Jefferson SchemmerSpainIoni Bowcher UNQUALIFIED
Claire TollnerItalyIvan Magalhaes NEGOTIATION
Adams MorascaUnited KingdomAnna Fali UNQUALIFIED
Adams MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Ivar PaprockiSpainAnna Fali PROPOSAL
Julie StensethItalyAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams MorascaBrazilOnyama Limba RENEWAL
Smith GlickCanadaStephen Shaw NEW
Kaitlin OstroskyIndiaAnna Fali PROPOSAL
Maisha RulapaughSpainIvan Magalhaes UNQUALIFIED
Smith GlickGermanyElwin Sharvill RENEWAL
Murillo MaletUnited KingdomOnyama Limba PROPOSAL
Adams MorascaCanadaIvan Magalhaes RENEWAL
Kaitlin OstroskyItalyXuxue Feng QUALIFIED
Smith GlickRussiaAsiya Javayant PROPOSAL
Stacey MacleadFranceXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethBrazil2026-05-03Chanay, Jeffrey A Esq NEGOTIATION3Stephen Shaw
1001Leon OldroydAustralia2026-05-05Dorl, James J Esq NEGOTIATION87Ioni Bowcher
1002Munro FerenczGermany2026-04-24Chemel, James L Cpa NEW44Stephen Shaw
1003Ashley DoeUnited Kingdom2026-04-18Rousseaux, Michael Esq UNQUALIFIED50Stephen Shaw
1004Jennifer AmigonUnited Kingdom2026-05-06Dorl, James J Esq PROPOSAL34Ivan Magalhaes
1005Aditya KuskoIndia2026-04-19Truhlar And Truhlar Attys QUALIFIED44Asiya Javayant
1006Jeanfrancois VenereRussia2026-04-24Morlong Associates RENEWAL15Xuxue Feng
1007Chavez BriddickUnited Kingdom2026-04-23Commercial Press QUALIFIED34Asiya Javayant
1008Costa DilliardUnited Kingdom2026-04-22Chemel, James L Cpa QUALIFIED57Ioni Bowcher
1009Jeanfrancois VenereUnited Kingdom2026-05-06Rousseaux, Michael Esq NEW45Onyama Limba
1010Octavia MaletFrance2026-05-03Chanay, Jeffrey A Esq QUALIFIED2Anna Fali
1011Greenwood BologniaJapan2026-04-23Commercial Press UNQUALIFIED62Stephen Shaw
1012Izzy GarufiIndia2026-05-06Rangoni Of Florence QUALIFIED2Ivan Magalhaes
1013Kaitlin OstroskyFrance2026-05-04Chapman, Ross E Esq QUALIFIED31Bernardo Dominic
1014Julie StensethGermany2026-04-27Chanay, Jeffrey A Esq RENEWAL67Elwin Sharvill
1015Julie StensethUnited Kingdom2026-04-24Chanay, Jeffrey A Esq UNQUALIFIED46Asiya Javayant
1016Jeanfrancois VenereFrance2026-05-12Feltz Printing Service PROPOSAL68Onyama Limba
1017Cody SaylorsCanada2026-04-20Printing Dimensions QUALIFIED59Elwin Sharvill
1018Jeanfrancois VenereAustralia2026-04-24Feltz Printing Service NEGOTIATION72Amy Elsner
1019Salvatore StockhamIndia2026-04-20King, Christopher A Esq PROPOSAL58Xuxue Feng
1020Isabel BowleyJapan2026-05-10Chapman, Ross E Esq RENEWAL40Asiya Javayant
1021Morrow RutaIndia2026-05-04Truhlar And Truhlar Attys QUALIFIED20Amy Elsner
1022Nicolas IturbideArgentina2026-05-04Commercial Press QUALIFIED89Onyama Limba
1023Izzy GarufiUnited Kingdom2026-04-17King, Christopher A Esq UNQUALIFIED47Elwin Sharvill
1024Aruna FigeroaBrazil2026-04-26Rousseaux, Michael Esq NEW10Amy Elsner
1025Wickens NestleSpain2026-05-06Chapman, Ross E Esq PROPOSAL79Ioni Bowcher
1026Ivar PaprockiArgentina2026-05-10Chapman, Ross E Esq UNQUALIFIED5Ivan Magalhaes
1027Jones VocelkaUnited Kingdom2026-04-18Dorl, James J Esq NEW62Onyama Limba
1028Chavez BriddickSpain2026-04-26Chemel, James L Cpa UNQUALIFIED25Xuxue Feng
1029Arvin AlbaresSpain2026-05-02Buckley Miller Wright NEW22Ioni Bowcher
1030Juan WieserBrazil2026-04-25Rousseaux, Michael Esq UNQUALIFIED9Asiya Javayant
1031Kaitlin OstroskyIndia2026-04-27King, Christopher A Esq NEGOTIATION0Asiya Javayant
1032Juan WieserRussia2026-04-20Chemel, James L Cpa RENEWAL37Ivan Magalhaes
1033Munro FerenczCanada2026-05-02Morlong Associates RENEWAL66Ioni Bowcher
1034Johnson SergiCanada2026-04-22Buckley Miller Wright NEW81Amy Elsner
1035Murillo MaletFrance2026-05-08Benton, John B Jr QUALIFIED37Anna Fali
1036Jennifer AmigonUnited Kingdom2026-05-02Dorl, James J Esq RENEWAL37Bernardo Dominic
1037Johnson SergiJapan2026-04-29Benton, John B Jr UNQUALIFIED47Ivan Magalhaes
1038Sinclair WaycottGermany2026-04-22Feltz Printing Service PROPOSAL3Onyama Limba
1039Claire TollnerUnited Kingdom2026-04-17Chemel, James L Cpa UNQUALIFIED97Stephen Shaw
1040Maria MarrierUnited Kingdom2026-04-23Chemel, James L Cpa NEGOTIATION88Xuxue Feng
1041Aika InouyeItaly2026-05-13Chemel, James L Cpa RENEWAL1Ivan Magalhaes
1042David DarakjyArgentina2026-04-18Dorl, James J Esq RENEWAL43Elwin Sharvill
1043Octavia MaletSpain2026-04-20Morlong Associates NEGOTIATION65Stephen Shaw
1044Smith GlickRussia2026-05-09Rangoni Of Florence UNQUALIFIED12Anna Fali
1045Ashley DoeAustralia2026-04-17Morlong Associates RENEWAL72Anna Fali
1046Wickens NestleItaly2026-05-03Rousseaux, Michael Esq NEGOTIATION93Xuxue Feng
1047Julie StensethFrance2026-04-22Buckley Miller Wright RENEWAL48Amy Elsner
1048Aditya KuskoBrazil2026-04-25Truhlar And Truhlar Attys NEW35Anna Fali
1049Claire TollnerIndia2026-04-17Morlong Associates QUALIFIED56Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickIndiaIoni Bowcher PROPOSAL
David DarakjyBrazilBernardo Dominic NEGOTIATION
Ivar PaprockiItalyIvan Magalhaes UNQUALIFIED
Arvin AlbaresCanadaOnyama Limba NEGOTIATION
Chavez BriddickItalyBernardo Dominic NEGOTIATION
Aika InouyeItalyOnyama Limba RENEWAL
Aruna FigeroaAustraliaElwin Sharvill RENEWAL
Isabel BowleyRussiaIoni Bowcher NEW
Wickens NestleFranceElwin Sharvill NEGOTIATION
Morrow RutaItalyStephen Shaw PROPOSAL
Johnson SergiJapanXuxue Feng RENEWAL
Rodrigues CampainJapanAsiya Javayant PROPOSAL
Ashley DoeSpainOnyama Limba NEW
Ivar PaprockiAustraliaBernardo Dominic NEW
Julie StensethRussiaStephen Shaw PROPOSAL
Murillo MaletArgentinaIvan Magalhaes QUALIFIED
Ashley DoeIndiaXuxue Feng QUALIFIED
Sinclair WaycottArgentinaElwin Sharvill NEGOTIATION
Darci PoquetteRussiaIvan Magalhaes NEGOTIATION
Jeanfrancois VenereUnited KingdomAmy Elsner NEGOTIATION
Claire TollnerGermanyXuxue Feng UNQUALIFIED
Aditya KuskoIndiaAmy Elsner UNQUALIFIED
Tony FollerRussiaAsiya Javayant NEW
Costa DilliardGermanyXuxue Feng QUALIFIED
Aruna FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Morrow RutaRussiaBernardo Dominic QUALIFIED
Antonio CaudyUnited KingdomBernardo Dominic PROPOSAL
Jefferson SchemmerRussiaBernardo Dominic NEW
Leon OldroydGermanyElwin Sharvill QUALIFIED
Arvin AlbaresJapanAnna Fali NEW
Jennifer AmigonSpainIoni Bowcher NEGOTIATION
Maisha RulapaughCanadaAnna Fali UNQUALIFIED
Salvatore StockhamArgentinaBernardo Dominic NEW
Silvio SlusarskiSpainAnna Fali RENEWAL
Octavia MaletSpainAsiya Javayant UNQUALIFIED
Emily WhobreyRussiaAsiya Javayant RENEWAL
Nicolas IturbideAustraliaXuxue Feng QUALIFIED
Alejandro PerinFranceStephen Shaw QUALIFIED
Juan WieserFranceElwin Sharvill UNQUALIFIED
Morrow RutaBrazilAnna Fali NEW
Rodrigues CampainJapanElwin Sharvill PROPOSAL
Isabel BowleyAustraliaStephen Shaw PROPOSAL
Arvin AlbaresArgentinaIvan Magalhaes NEW
Kaitlin OstroskyBrazilXuxue Feng NEGOTIATION
Deepesh ChuiItalyIvan Magalhaes NEW
Johnson SergiAustraliaAsiya Javayant QUALIFIED
Leon OldroydSpainStephen Shaw NEW
Arvin AlbaresBrazilStephen Shaw RENEWAL
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Morrow RutaJapanAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Stacey Maclead
James Butt
Greenwood Bolognia
Izzy Garufi
Tony Foller
Octavia Malet
Johnson Sergi
Clifford Rim
Stacey Maclead
Jefferson Schemmer
Jennifer Amigon
Alejandro Perin
Sinclair Waycott
David Darakjy
Alejandro Perin
Cody Saylors
Claire Tollner
Leon Oldroyd
Sinclair Waycott
Costa Dilliard
Smith Glick
Maria Marrier
Mujtaba Nicka
Smith Glick
Silvio Slusarski
Alejandro Perin
Ashley Doe
Morrow Ruta
Greenwood Bolognia
Misaki Royster
Salvatore Stockham
Julie Stenseth
Arvin Albares
Francesco Shinko
Costa Dilliard
Faith Gillian
Greenwood Bolognia
Stacey Maclead
Maisha Rulapaugh
Stacey Maclead
Leja Caldarera
Murillo Malet
Jennifer Amigon
Leja Caldarera
Salvatore Stockham
Silvio Slusarski
Juan Wieser
Jones Vocelka
Silvio Slusarski
Alejandro Perin
IdCountryDate
1000Argentina2026-04-17
1001Germany2026-05-15
1002Japan2026-05-06
1003Spain2026-05-02
1004Germany2026-04-17
1005Canada2026-04-30
1006Argentina2026-05-08
1007Italy2026-05-08
1008Italy2026-05-12
1009India2026-05-08
1010Argentina2026-04-20
1011Germany2026-05-04
1012Spain2026-05-15
1013Brazil2026-05-12
1014Canada2026-04-29
1015India2026-05-13
1016Spain2026-05-02
1017Japan2026-04-25
1018France2026-05-12
1019Japan2026-04-21
1020Japan2026-04-28
1021Russia2026-04-27
1022Canada2026-05-01
1023Germany2026-05-08
1024Brazil2026-04-29
1025Germany2026-04-16
1026United Kingdom2026-05-08
1027Germany2026-04-29
1028France2026-05-08
1029France2026-05-06
1030France2026-05-10
1031Russia2026-04-29
1032Russia2026-05-02
1033France2026-05-11
1034Germany2026-05-05
1035Australia2026-05-04
1036India2026-05-03
1037Russia2026-05-07
1038Germany2026-05-08
1039Russia2026-04-20
1040United Kingdom2026-04-16
1041United Kingdom2026-04-16
1042Italy2026-04-29
1043France2026-04-18
1044Australia2026-04-17
1045France2026-05-01
1046United Kingdom2026-04-24
1047Italy2026-04-24
1048France2026-05-05
1049Italy2026-04-20

On-Demand Data

NameIdCountryDate
Smith Glick1000India2026-05-06
Mujtaba Nicka1001Russia2026-05-05
Francesco Shinko1002Argentina2026-04-25
Faith Gillian1003Australia2026-04-25
Izzy Garufi1004India2026-05-07
Misaki Royster1005France2026-05-12
Wickens Nestle1006Russia2026-04-22
Kaitlin Ostrosky1007United Kingdom2026-04-19
Silvio Slusarski1008Japan2026-05-01
Silvio Slusarski1009Russia2026-05-10
Aruna Figeroa1010France2026-05-10
Sinclair Waycott1011Russia2026-04-19
Adams Morasca1012Russia2026-04-29
Izzy Garufi1013Japan2026-04-25
Jefferson Schemmer1014France2026-04-16
Maria Marrier1015India2026-05-13
Nicolas Iturbide1016Spain2026-05-06
Izzy Garufi1017Germany2026-05-07
Wickens Nestle1018Italy2026-05-02
Ricardo Gaucho1019Brazil2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaBrazilBernardo Dominic RENEWAL
Cody SaylorsItalyAsiya Javayant RENEWAL
Murillo MaletSpainBernardo Dominic NEW
Isabel BowleyAustraliaAnna Fali QUALIFIED
Smith GlickUnited KingdomElwin Sharvill UNQUALIFIED
Murillo MaletItalyBernardo Dominic NEGOTIATION
Isabel BowleyGermanyAmy Elsner PROPOSAL
Ivar PaprockiRussiaAmy Elsner NEGOTIATION
Jeanfrancois VenereIndiaAsiya Javayant QUALIFIED
James ButtCanadaElwin Sharvill NEW
Stacey MacleadUnited KingdomIoni Bowcher PROPOSAL
Faith GillianGermanyAsiya Javayant QUALIFIED
Leon OldroydUnited KingdomAsiya Javayant NEGOTIATION
Izzy GarufiArgentinaAsiya Javayant RENEWAL
Nicolas IturbideUnited KingdomAmy Elsner RENEWAL
Morrow RutaBrazilIvan Magalhaes UNQUALIFIED
Maria MarrierIndiaAmy Elsner NEGOTIATION
Chavez BriddickRussiaAmy Elsner QUALIFIED
Misaki RoysterArgentinaIvan Magalhaes NEW
Murillo MaletAustraliaIvan Magalhaes RENEWAL
Jones VocelkaCanadaXuxue Feng NEGOTIATION
Costa DilliardItalyAnna Fali QUALIFIED
Izzy GarufiAustraliaIoni Bowcher QUALIFIED
Ashley DoeGermanyXuxue Feng QUALIFIED
Wickens NestleJapanStephen Shaw NEGOTIATION
Mujtaba NickaAustraliaElwin Sharvill RENEWAL
Aika InouyeSpainOnyama Limba NEW
Alejandro PerinSpainAmy Elsner PROPOSAL
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Alejandro PerinGermanyXuxue Feng QUALIFIED
Kaitlin OstroskyIndiaIoni Bowcher QUALIFIED
Ashley DoeSpainIvan Magalhaes UNQUALIFIED
Juan WieserArgentinaBernardo Dominic NEW
Mujtaba NickaRussiaOnyama Limba PROPOSAL
Mujtaba NickaIndiaAmy Elsner QUALIFIED
Ivar PaprockiJapanIoni Bowcher QUALIFIED
Salvatore StockhamCanadaIvan Magalhaes RENEWAL
Adams MorascaItalyAsiya Javayant RENEWAL
Juan WieserCanadaAmy Elsner RENEWAL
Rodrigues CampainSpainBernardo Dominic 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>