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
Deepesh ChuiJapanAmy Elsner UNQUALIFIED
Rodrigues CampainUnited KingdomIoni Bowcher RENEWAL
Munro FerenczIndiaIvan Magalhaes NEW
Maria MarrierIndiaAnna Fali NEW
Claire TollnerGermanyStephen Shaw PROPOSAL
Costa DilliardGermanyElwin Sharvill NEW
Maisha RulapaughArgentinaIvan Magalhaes PROPOSAL
Mayumi KolmetzIndiaIvan Magalhaes UNQUALIFIED
Claire TollnerSpainElwin Sharvill QUALIFIED
Antonio CaudyCanadaAnna Fali NEW
Maria MarrierUnited KingdomAnna Fali NEW
Arvin AlbaresRussiaOnyama Limba UNQUALIFIED
Salvatore StockhamJapanElwin Sharvill QUALIFIED
Alejandro PerinFranceAsiya Javayant NEW
Alejandro PerinCanadaAnna Fali NEW
Maisha RulapaughGermanyBernardo Dominic PROPOSAL
Jeanfrancois VenereCanadaStephen Shaw QUALIFIED
Wickens NestleFranceElwin Sharvill QUALIFIED
Chavez BriddickIndiaElwin Sharvill NEW
Mayumi KolmetzSpainBernardo Dominic PROPOSAL
Alejandro PerinIndiaOnyama Limba PROPOSAL
Jennifer AmigonArgentinaElwin Sharvill NEGOTIATION
Maria MarrierJapanAnna Fali PROPOSAL
Greenwood BologniaUnited KingdomAsiya Javayant NEGOTIATION
Morrow RutaCanadaBernardo Dominic NEW
Aruna FigeroaCanadaIoni Bowcher QUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
Munro FerenczCanadaAmy Elsner NEW
Cody SaylorsAustraliaOnyama Limba UNQUALIFIED
Aditya KuskoFranceAnna Fali QUALIFIED
Greenwood BologniaItalyAmy Elsner NEW
Aruna FigeroaJapanBernardo Dominic QUALIFIED
Jones VocelkaRussiaIvan Magalhaes PROPOSAL
Ashley DoeBrazilStephen Shaw QUALIFIED
Kadeem FlosiBrazilStephen Shaw RENEWAL
Clifford RimItalyOnyama Limba PROPOSAL
Salvatore StockhamFranceElwin Sharvill NEW
Silvio SlusarskiUnited KingdomStephen Shaw RENEWAL
Leon OldroydAustraliaAsiya Javayant RENEWAL
Jennifer AmigonRussiaBernardo Dominic NEGOTIATION
Munro FerenczArgentinaStephen Shaw RENEWAL
Aruna FigeroaJapanAsiya Javayant RENEWAL
Alejandro PerinCanadaAmy Elsner PROPOSAL
Mayumi KolmetzGermanyOnyama Limba RENEWAL
Deepesh ChuiCanadaAsiya Javayant PROPOSAL
Aruna FigeroaRussiaAsiya Javayant PROPOSAL
Ivar PaprockiFranceIvan Magalhaes UNQUALIFIED
David DarakjyGermanyOnyama Limba QUALIFIED
Leon OldroydGermanyXuxue Feng RENEWAL
Antonio CaudySpainAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyBrazilOnyama Limba RENEWAL
Claire TollnerCanadaStephen Shaw UNQUALIFIED
Mujtaba NickaSpainXuxue Feng NEW
James ButtBrazilAsiya Javayant NEGOTIATION
Julie StensethGermanyStephen Shaw NEGOTIATION
Mayumi KolmetzBrazilAsiya Javayant RENEWAL
David DarakjySpainXuxue Feng PROPOSAL
Leja CaldareraGermanyIoni Bowcher RENEWAL
Johnson SergiJapanAmy Elsner NEGOTIATION
Kaitlin OstroskyArgentinaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaIndia2026-04-18King, Christopher A Esq NEGOTIATION60Ivan Magalhaes
1001Wickens NestleCanada2026-03-28Chanay, Jeffrey A Esq PROPOSAL99Xuxue Feng
1002Faith GillianArgentina2026-04-12Commercial Press NEGOTIATION12Ivan Magalhaes
1003Faith GillianUnited Kingdom2026-04-07Feltz Printing Service NEW81Ioni Bowcher
1004Leja CaldareraCanada2026-04-06Rangoni Of Florence NEGOTIATION80Onyama Limba
1005Maisha RulapaughGermany2026-04-04Benton, John B Jr QUALIFIED98Onyama Limba
1006Smith GlickItaly2026-04-13Buckley Miller Wright PROPOSAL60Elwin Sharvill
1007Jeanfrancois VenereBrazil2026-04-12Truhlar And Truhlar Attys QUALIFIED38Stephen Shaw
1008Nicolas IturbideUnited Kingdom2026-04-14Truhlar And Truhlar Attys NEW34Elwin Sharvill
1009Aditya KuskoGermany2026-04-05Dorl, James J Esq QUALIFIED61Ivan Magalhaes
1010Deepesh ChuiFrance2026-03-25Feltz Printing Service UNQUALIFIED21Ivan Magalhaes
1011Alejandro PerinRussia2026-04-05Printing Dimensions QUALIFIED52Elwin Sharvill
1012Wickens NestleAustralia2026-04-14Chanay, Jeffrey A Esq NEGOTIATION66Elwin Sharvill
1013Silvio SlusarskiUnited Kingdom2026-04-14Chemel, James L Cpa NEGOTIATION36Elwin Sharvill
1014Maria MarrierCanada2026-04-07Chanay, Jeffrey A Esq NEW70Xuxue Feng
1015Darci PoquetteItaly2026-04-17Feiner Bros NEW70Asiya Javayant
1016Mujtaba NickaGermany2026-04-01King, Christopher A Esq NEW77Onyama Limba
1017Nicolas IturbideUnited Kingdom2026-03-26Buckley Miller Wright RENEWAL48Bernardo Dominic
1018Tony FollerItaly2026-03-24Benton, John B Jr QUALIFIED71Bernardo Dominic
1019Ivar PaprockiSpain2026-03-26Rousseaux, Michael Esq QUALIFIED54Elwin Sharvill
1020Izzy GarufiArgentina2026-04-02Truhlar And Truhlar Attys NEGOTIATION80Asiya Javayant
1021Rodrigues CampainFrance2026-04-07Morlong Associates NEW88Xuxue Feng
1022Greenwood BologniaAustralia2026-03-20Truhlar And Truhlar Attys UNQUALIFIED11Elwin Sharvill
1023Izzy GarufiUnited Kingdom2026-04-15Feltz Printing Service QUALIFIED43Bernardo Dominic
1024Leja CaldareraArgentina2026-04-12Benton, John B Jr PROPOSAL96Elwin Sharvill
1025Rodrigues CampainArgentina2026-04-02Rangoni Of Florence NEW45Stephen Shaw
1026Ivar PaprockiAustralia2026-03-20Commercial Press NEGOTIATION62Xuxue Feng
1027Francesco ShinkoAustralia2026-04-05Morlong Associates NEW96Ioni Bowcher
1028Ashley DoeArgentina2026-04-06Benton, John B Jr QUALIFIED70Xuxue Feng
1029Emily WhobreyIndia2026-04-06Rousseaux, Michael Esq UNQUALIFIED18Onyama Limba
1030Julie StensethItaly2026-03-31Chemel, James L Cpa RENEWAL45Stephen Shaw
1031Antonio CaudyUnited Kingdom2026-04-02Feiner Bros NEGOTIATION7Elwin Sharvill
1032Antonio CaudyItaly2026-03-29Printing Dimensions RENEWAL67Amy Elsner
1033Ashley DoeSpain2026-04-10Buckley Miller Wright NEGOTIATION67Onyama Limba
1034Rodrigues CampainBrazil2026-04-03Dorl, James J Esq NEW42Stephen Shaw
1035Isabel BowleyCanada2026-04-11Feiner Bros PROPOSAL23Amy Elsner
1036Aruna FigeroaCanada2026-04-16Dorl, James J Esq RENEWAL12Elwin Sharvill
1037Darci PoquetteJapan2026-04-07Rousseaux, Michael Esq RENEWAL79Bernardo Dominic
1038Claire TollnerArgentina2026-03-29Chapman, Ross E Esq NEGOTIATION70Elwin Sharvill
1039Salvatore StockhamCanada2026-04-17Chanay, Jeffrey A Esq RENEWAL31Asiya Javayant
1040Salvatore StockhamItaly2026-04-18King, Christopher A Esq NEW19Onyama Limba
1041Jefferson SchemmerUnited Kingdom2026-04-05Feltz Printing Service RENEWAL26Bernardo Dominic
1042Deepesh ChuiItaly2026-04-04King, Christopher A Esq QUALIFIED57Onyama Limba
1043Munro FerenczIndia2026-04-18Chapman, Ross E Esq NEGOTIATION22Xuxue Feng
1044Octavia MaletFrance2026-04-07Chanay, Jeffrey A Esq NEW65Elwin Sharvill
1045Isabel BowleyFrance2026-04-10Printing Dimensions NEGOTIATION76Amy Elsner
1046Nicolas IturbideArgentina2026-03-21Benton, John B Jr PROPOSAL26Bernardo Dominic
1047Isabel BowleyFrance2026-03-23Chapman, Ross E Esq QUALIFIED94Onyama Limba
1048Alejandro PerinUnited Kingdom2026-04-08Commercial Press NEW98Ioni Bowcher
1049Ivar PaprockiSpain2026-04-01Rangoni Of Florence QUALIFIED39Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraIndiaAnna Fali NEW
Leon OldroydFranceStephen Shaw PROPOSAL
Izzy GarufiIndiaAsiya Javayant UNQUALIFIED
Misaki RoysterAustraliaIvan Magalhaes UNQUALIFIED
Ivar PaprockiItalyBernardo Dominic QUALIFIED
Jefferson SchemmerBrazilAnna Fali NEGOTIATION
Aditya KuskoJapanAsiya Javayant PROPOSAL
Juan WieserJapanXuxue Feng UNQUALIFIED
Aika InouyeAustraliaXuxue Feng QUALIFIED
Faith GillianArgentinaAmy Elsner NEGOTIATION
Antonio CaudyJapanAnna Fali NEW
Arvin AlbaresItalyOnyama Limba PROPOSAL
Kadeem FlosiIndiaStephen Shaw UNQUALIFIED
Aditya KuskoItalyElwin Sharvill PROPOSAL
Wickens NestleGermanyIvan Magalhaes UNQUALIFIED
David DarakjyFranceIvan Magalhaes NEGOTIATION
Aditya KuskoAustraliaElwin Sharvill PROPOSAL
Francesco ShinkoFranceAmy Elsner UNQUALIFIED
Leon OldroydItalyAsiya Javayant UNQUALIFIED
Julie StensethGermanyElwin Sharvill UNQUALIFIED
Greenwood BologniaCanadaOnyama Limba UNQUALIFIED
Jeanfrancois VenereAustraliaElwin Sharvill PROPOSAL
Kadeem FlosiCanadaAmy Elsner NEW
Munro FerenczFranceIoni Bowcher RENEWAL
Kadeem FlosiIndiaIvan Magalhaes QUALIFIED
Stacey MacleadIndiaBernardo Dominic NEGOTIATION
Murillo MaletGermanyAmy Elsner RENEWAL
Isabel BowleyGermanyOnyama Limba UNQUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant NEGOTIATION
Cody SaylorsCanadaAsiya Javayant UNQUALIFIED
Leja CaldareraBrazilElwin Sharvill NEW
Adams MorascaUnited KingdomBernardo Dominic NEW
Adams MorascaSpainBernardo Dominic PROPOSAL
Nicolas IturbideBrazilXuxue Feng RENEWAL
Silvio SlusarskiSpainIvan Magalhaes QUALIFIED
Wickens NestleSpainOnyama Limba QUALIFIED
Julie StensethGermanyIvan Magalhaes PROPOSAL
Leon OldroydUnited KingdomIvan Magalhaes PROPOSAL
Clifford RimUnited KingdomAmy Elsner NEW
Juan WieserBrazilBernardo Dominic UNQUALIFIED
Tony FollerSpainAsiya Javayant NEGOTIATION
Deepesh ChuiCanadaIoni Bowcher NEW
Johnson SergiJapanOnyama Limba QUALIFIED
Ivar PaprockiUnited KingdomAnna Fali PROPOSAL
Jennifer AmigonIndiaIvan Magalhaes RENEWAL
Francesco ShinkoRussiaAnna Fali RENEWAL
Jones VocelkaItalyAnna Fali RENEWAL
Ivar PaprockiSpainIoni Bowcher QUALIFIED
Aditya KuskoUnited KingdomAmy Elsner NEGOTIATION
Tony FollerItalyAnna Fali NEW
Frozen Columns
Name
Jeanfrancois Venere
Jeanfrancois Venere
Francesco Shinko
Clifford Rim
Ricardo Gaucho
Nicolas Iturbide
Munro Ferencz
Salvatore Stockham
Wickens Nestle
Leja Caldarera
Francesco Shinko
Octavia Malet
Silvio Slusarski
Chavez Briddick
Aditya Kusko
Cody Saylors
Silvio Slusarski
Emily Whobrey
Aika Inouye
Nicolas Iturbide
Sinclair Waycott
Alejandro Perin
Maria Marrier
Maria Marrier
Darci Poquette
Jeanfrancois Venere
Ricardo Gaucho
Octavia Malet
Misaki Royster
Octavia Malet
Munro Ferencz
Cody Saylors
Johnson Sergi
Misaki Royster
Misaki Royster
Mujtaba Nicka
Arvin Albares
Claire Tollner
David Darakjy
Juan Wieser
Sinclair Waycott
Greenwood Bolognia
Aika Inouye
Rodrigues Campain
Mujtaba Nicka
Clifford Rim
Tony Foller
Rodrigues Campain
Morrow Ruta
Antonio Caudy
IdCountryDate
1000Canada2026-04-07
1001Canada2026-04-03
1002Argentina2026-03-31
1003France2026-04-05
1004Brazil2026-03-30
1005Australia2026-04-06
1006United Kingdom2026-04-14
1007Japan2026-04-16
1008Argentina2026-04-04
1009Russia2026-04-06
1010United Kingdom2026-04-04
1011Italy2026-04-16
1012Argentina2026-04-05
1013Germany2026-04-07
1014France2026-04-07
1015France2026-03-26
1016France2026-03-30
1017Italy2026-03-30
1018United Kingdom2026-04-12
1019Brazil2026-04-09
1020Australia2026-03-24
1021Argentina2026-03-26
1022Brazil2026-03-20
1023France2026-03-29
1024Australia2026-04-04
1025Japan2026-04-04
1026India2026-04-11
1027Japan2026-04-03
1028France2026-04-02
1029Spain2026-03-20
1030Canada2026-04-03
1031Canada2026-04-07
1032India2026-04-07
1033Germany2026-03-28
1034Russia2026-04-08
1035Brazil2026-04-02
1036Canada2026-03-27
1037Spain2026-03-20
1038Italy2026-03-27
1039Argentina2026-03-26
1040Brazil2026-03-30
1041Germany2026-04-01
1042France2026-03-29
1043Brazil2026-03-31
1044Australia2026-04-02
1045Australia2026-03-25
1046Spain2026-04-13
1047Germany2026-03-24
1048Canada2026-03-23
1049India2026-03-22

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000India2026-03-20
Costa Dilliard1001France2026-03-23
Mujtaba Nicka1002Brazil2026-03-24
Juan Wieser1003Brazil2026-04-01
Ashley Doe1004Japan2026-04-13
Salvatore Stockham1005Brazil2026-04-16
Emily Whobrey1006Japan2026-03-25
Nicolas Iturbide1007Russia2026-04-10
Misaki Royster1008Italy2026-04-18
Kaitlin Ostrosky1009Brazil2026-04-04
Salvatore Stockham1010United Kingdom2026-04-09
Faith Gillian1011Argentina2026-04-06
Morrow Ruta1012France2026-03-26
Clifford Rim1013Australia2026-04-08
Morrow Ruta1014Australia2026-04-14
Darci Poquette1015Australia2026-03-27
Faith Gillian1016Italy2026-04-15
Darci Poquette1017Japan2026-04-03
Greenwood Bolognia1018Brazil2026-03-29
Octavia Malet1019United Kingdom2026-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtFranceIoni Bowcher PROPOSAL
Sinclair WaycottUnited KingdomXuxue Feng RENEWAL
Clifford RimItalyAsiya Javayant NEGOTIATION
Jefferson SchemmerItalyIoni Bowcher NEW
Costa DilliardUnited KingdomAnna Fali UNQUALIFIED
Deepesh ChuiSpainOnyama Limba UNQUALIFIED
Ivar PaprockiFranceXuxue Feng RENEWAL
Sinclair WaycottFranceBernardo Dominic QUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner RENEWAL
Deepesh ChuiJapanAnna Fali NEGOTIATION
Clifford RimCanadaAsiya Javayant NEGOTIATION
Jefferson SchemmerJapanElwin Sharvill NEW
Wickens NestleSpainBernardo Dominic QUALIFIED
Mayumi KolmetzIndiaXuxue Feng NEGOTIATION
Faith GillianAustraliaIvan Magalhaes UNQUALIFIED
Francesco ShinkoJapanBernardo Dominic QUALIFIED
Mujtaba NickaAustraliaIoni Bowcher UNQUALIFIED
Izzy GarufiBrazilStephen Shaw RENEWAL
Claire TollnerCanadaOnyama Limba QUALIFIED
Clifford RimAustraliaStephen Shaw RENEWAL
Nicolas IturbideGermanyXuxue Feng NEGOTIATION
Jones VocelkaUnited KingdomIoni Bowcher PROPOSAL
Ivar PaprockiBrazilXuxue Feng NEGOTIATION
Deepesh ChuiIndiaOnyama Limba NEGOTIATION
Francesco ShinkoIndiaAnna Fali UNQUALIFIED
Aruna FigeroaBrazilOnyama Limba QUALIFIED
Rodrigues CampainGermanyAnna Fali QUALIFIED
Silvio SlusarskiSpainOnyama Limba UNQUALIFIED
Isabel BowleySpainAmy Elsner RENEWAL
Francesco ShinkoFranceStephen Shaw UNQUALIFIED
Francesco ShinkoItalyStephen Shaw RENEWAL
Ivar PaprockiAustraliaIvan Magalhaes QUALIFIED
Emily WhobreyFranceStephen Shaw PROPOSAL
Ashley DoeCanadaAnna Fali NEW
Faith GillianArgentinaBernardo Dominic UNQUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill RENEWAL
Ivar PaprockiCanadaIoni Bowcher PROPOSAL
Costa DilliardRussiaXuxue Feng NEW
Leja CaldareraIndiaAsiya Javayant NEW
Aika InouyeItalyOnyama Limba 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>