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
Isabel BowleyAustraliaStephen Shaw NEGOTIATION
James ButtIndiaAsiya Javayant NEW
Nicolas IturbideSpainXuxue Feng NEW
Maisha RulapaughGermanyAmy Elsner PROPOSAL
James ButtGermanyAmy Elsner NEGOTIATION
Claire TollnerSpainXuxue Feng NEGOTIATION
Kadeem FlosiFranceElwin Sharvill PROPOSAL
Chavez BriddickItalyBernardo Dominic QUALIFIED
Juan WieserRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaArgentinaOnyama Limba PROPOSAL
Izzy GarufiItalyBernardo Dominic NEW
Izzy GarufiRussiaStephen Shaw RENEWAL
Misaki RoysterAustraliaAsiya Javayant QUALIFIED
Leja CaldareraItalyBernardo Dominic NEGOTIATION
Clifford RimUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois VenereFranceXuxue Feng NEW
Jefferson SchemmerGermanyAsiya Javayant UNQUALIFIED
Octavia MaletItalyStephen Shaw PROPOSAL
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Kaitlin OstroskySpainAmy Elsner UNQUALIFIED
Deepesh ChuiCanadaStephen Shaw NEGOTIATION
Antonio CaudyBrazilAmy Elsner NEW
Aditya KuskoFranceElwin Sharvill RENEWAL
Francesco ShinkoIndiaAmy Elsner NEGOTIATION
Jefferson SchemmerIndiaXuxue Feng NEW
Emily WhobreyJapanXuxue Feng PROPOSAL
Emily WhobreyBrazilAmy Elsner NEGOTIATION
Francesco ShinkoUnited KingdomIvan Magalhaes NEW
Emily WhobreyArgentinaOnyama Limba NEGOTIATION
Tony FollerGermanyBernardo Dominic UNQUALIFIED
Ashley DoeArgentinaElwin Sharvill UNQUALIFIED
Cody SaylorsJapanAnna Fali NEGOTIATION
Misaki RoysterRussiaAsiya Javayant NEGOTIATION
Misaki RoysterCanadaIvan Magalhaes NEGOTIATION
Silvio SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
Julie StensethArgentinaXuxue Feng QUALIFIED
Octavia MaletAustraliaIoni Bowcher QUALIFIED
Wickens NestleUnited KingdomOnyama Limba NEGOTIATION
Deepesh ChuiGermanyBernardo Dominic RENEWAL
Maria MarrierIndiaAmy Elsner PROPOSAL
Mayumi KolmetzItalyStephen Shaw QUALIFIED
Jennifer AmigonItalyIoni Bowcher QUALIFIED
Juan WieserAustraliaIvan Magalhaes QUALIFIED
Mujtaba NickaJapanBernardo Dominic NEGOTIATION
Faith GillianUnited KingdomAmy Elsner UNQUALIFIED
Johnson SergiRussiaIoni Bowcher UNQUALIFIED
Antonio CaudySpainElwin Sharvill QUALIFIED
Francesco ShinkoIndiaBernardo Dominic NEGOTIATION
Alejandro PerinGermanyAsiya Javayant NEW
Munro FerenczFranceAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon OldroydItalyIvan Magalhaes NEGOTIATION
Salvatore StockhamJapanElwin Sharvill PROPOSAL
Francesco ShinkoAustraliaIoni Bowcher NEW
Claire TollnerJapanBernardo Dominic QUALIFIED
Juan WieserIndiaAmy Elsner NEGOTIATION
Ricardo GauchoCanadaStephen Shaw PROPOSAL
Jefferson SchemmerBrazilAmy Elsner NEGOTIATION
Chavez BriddickArgentinaIoni Bowcher NEGOTIATION
Stacey MacleadArgentinaIvan Magalhaes UNQUALIFIED
Antonio CaudyRussiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyAustralia2026-06-18Truhlar And Truhlar Attys PROPOSAL28Ioni Bowcher
1001Rodrigues CampainBrazil2026-05-26Rousseaux, Michael Esq QUALIFIED25Ioni Bowcher
1002Cody SaylorsSpain2026-06-16Dorl, James J Esq PROPOSAL38Xuxue Feng
1003Salvatore StockhamAustralia2026-06-13Chemel, James L Cpa PROPOSAL22Stephen Shaw
1004Alejandro PerinFrance2026-05-30Buckley Miller Wright NEGOTIATION36Xuxue Feng
1005Faith GillianGermany2026-05-26Benton, John B Jr PROPOSAL81Xuxue Feng
1006David DarakjyBrazil2026-05-31Printing Dimensions QUALIFIED45Onyama Limba
1007Mujtaba NickaSpain2026-05-25Truhlar And Truhlar Attys QUALIFIED94Ivan Magalhaes
1008Claire TollnerUnited Kingdom2026-06-21Commercial Press UNQUALIFIED45Xuxue Feng
1009Jeanfrancois VenereGermany2026-05-28Chapman, Ross E Esq PROPOSAL93Elwin Sharvill
1010Aditya KuskoBrazil2026-05-26King, Christopher A Esq RENEWAL64Elwin Sharvill
1011Chavez BriddickItaly2026-06-03Commercial Press QUALIFIED15Asiya Javayant
1012Aika InouyeBrazil2026-06-05Printing Dimensions UNQUALIFIED65Bernardo Dominic
1013Kadeem FlosiFrance2026-05-29Dorl, James J Esq QUALIFIED12Amy Elsner
1014Ashley DoeArgentina2026-06-10Chanay, Jeffrey A Esq QUALIFIED39Xuxue Feng
1015Cody SaylorsGermany2026-06-01Dorl, James J Esq QUALIFIED98Ivan Magalhaes
1016Jefferson SchemmerBrazil2026-06-12Dorl, James J Esq QUALIFIED68Xuxue Feng
1017Smith GlickUnited Kingdom2026-06-07Buckley Miller Wright UNQUALIFIED83Anna Fali
1018Leja CaldareraGermany2026-06-10Commercial Press UNQUALIFIED65Anna Fali
1019Ashley DoeAustralia2026-06-14Commercial Press NEGOTIATION51Ivan Magalhaes
1020Ivar PaprockiSpain2026-06-11Rousseaux, Michael Esq NEW88Bernardo Dominic
1021Jeanfrancois VenereUnited Kingdom2026-05-30Commercial Press UNQUALIFIED88Stephen Shaw
1022Greenwood BologniaAustralia2026-06-13Dorl, James J Esq NEW89Amy Elsner
1023Jeanfrancois VenereIndia2026-06-10Rangoni Of Florence RENEWAL22Elwin Sharvill
1024Adams MorascaAustralia2026-06-10Dorl, James J Esq NEW58Ioni Bowcher
1025Jennifer AmigonBrazil2026-06-21King, Christopher A Esq NEGOTIATION77Stephen Shaw
1026Kaitlin OstroskyRussia2026-06-17Rousseaux, Michael Esq RENEWAL73Xuxue Feng
1027Emily WhobreyItaly2026-06-09Feiner Bros NEGOTIATION90Asiya Javayant
1028Emily WhobreyBrazil2026-06-20Feltz Printing Service RENEWAL49Xuxue Feng
1029Leja CaldareraAustralia2026-06-21Feiner Bros RENEWAL11Onyama Limba
1030Ricardo GauchoSpain2026-06-19Dorl, James J Esq NEGOTIATION37Onyama Limba
1031Mayumi KolmetzJapan2026-06-01Feiner Bros NEW39Elwin Sharvill
1032Deepesh ChuiBrazil2026-06-05Chemel, James L Cpa RENEWAL13Ioni Bowcher
1033Silvio SlusarskiAustralia2026-06-04Benton, John B Jr PROPOSAL98Elwin Sharvill
1034Mayumi KolmetzUnited Kingdom2026-06-08Morlong Associates RENEWAL67Onyama Limba
1035Clifford RimItaly2026-06-12Chemel, James L Cpa NEW87Onyama Limba
1036Jones VocelkaAustralia2026-06-11Printing Dimensions QUALIFIED34Ivan Magalhaes
1037Ashley DoeBrazil2026-06-01Buckley Miller Wright NEW15Onyama Limba
1038Smith GlickBrazil2026-06-16Chapman, Ross E Esq QUALIFIED41Ivan Magalhaes
1039Ashley DoeCanada2026-06-04Chanay, Jeffrey A Esq NEW89Onyama Limba
1040Sinclair WaycottIndia2026-06-08Chapman, Ross E Esq NEW40Asiya Javayant
1041Cody SaylorsUnited Kingdom2026-06-16Commercial Press UNQUALIFIED19Ioni Bowcher
1042Kadeem FlosiSpain2026-06-15Commercial Press QUALIFIED51Elwin Sharvill
1043Murillo MaletAustralia2026-05-30Buckley Miller Wright PROPOSAL51Ivan Magalhaes
1044Juan WieserUnited Kingdom2026-06-14Dorl, James J Esq PROPOSAL38Elwin Sharvill
1045Silvio SlusarskiIndia2026-06-04Feiner Bros NEW21Xuxue Feng
1046Antonio CaudySpain2026-06-06Commercial Press NEGOTIATION1Ivan Magalhaes
1047Leon OldroydUnited Kingdom2026-06-07Commercial Press NEGOTIATION64Elwin Sharvill
1048Sinclair WaycottBrazil2026-06-10King, Christopher A Esq PROPOSAL23Bernardo Dominic
1049Aditya KuskoUnited Kingdom2026-06-10Chemel, James L Cpa RENEWAL76Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiRussiaOnyama Limba NEW
Sinclair WaycottGermanyXuxue Feng UNQUALIFIED
Jeanfrancois VenereUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba NickaRussiaOnyama Limba NEGOTIATION
Ivar PaprockiArgentinaAnna Fali PROPOSAL
Wickens NestleArgentinaStephen Shaw UNQUALIFIED
Rodrigues CampainRussiaIoni Bowcher PROPOSAL
Chavez BriddickSpainIoni Bowcher NEGOTIATION
James ButtCanadaElwin Sharvill UNQUALIFIED
Costa DilliardArgentinaStephen Shaw RENEWAL
Clifford RimIndiaElwin Sharvill RENEWAL
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Stacey MacleadGermanyOnyama Limba UNQUALIFIED
Kadeem FlosiItalyIvan Magalhaes UNQUALIFIED
Jefferson SchemmerCanadaStephen Shaw UNQUALIFIED
Mayumi KolmetzGermanyStephen Shaw QUALIFIED
Cody SaylorsIndiaElwin Sharvill PROPOSAL
Antonio CaudyUnited KingdomBernardo Dominic QUALIFIED
Morrow RutaCanadaIoni Bowcher RENEWAL
Misaki RoysterUnited KingdomOnyama Limba PROPOSAL
Jefferson SchemmerJapanAnna Fali PROPOSAL
Juan WieserSpainIvan Magalhaes NEGOTIATION
Darci PoquetteJapanAmy Elsner RENEWAL
Claire TollnerAustraliaIoni Bowcher QUALIFIED
Leon OldroydUnited KingdomAsiya Javayant QUALIFIED
Jefferson SchemmerIndiaStephen Shaw NEGOTIATION
Arvin AlbaresJapanIvan Magalhaes PROPOSAL
Faith GillianJapanIoni Bowcher NEW
Wickens NestleFranceStephen Shaw NEW
Ricardo GauchoCanadaOnyama Limba UNQUALIFIED
Maisha RulapaughAustraliaIvan Magalhaes QUALIFIED
James ButtFranceIvan Magalhaes QUALIFIED
Deepesh ChuiGermanyElwin Sharvill PROPOSAL
Maria MarrierCanadaIoni Bowcher QUALIFIED
Aika InouyeArgentinaOnyama Limba NEW
Leon OldroydAustraliaElwin Sharvill NEGOTIATION
Maria MarrierUnited KingdomOnyama Limba PROPOSAL
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughUnited KingdomIoni Bowcher QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant NEW
Maisha RulapaughSpainIoni Bowcher RENEWAL
Cody SaylorsJapanElwin Sharvill PROPOSAL
Leon OldroydRussiaAmy Elsner QUALIFIED
Isabel BowleyAustraliaIoni Bowcher RENEWAL
Smith GlickJapanBernardo Dominic NEW
Jennifer AmigonCanadaIvan Magalhaes NEW
Murillo MaletSpainXuxue Feng PROPOSAL
Silvio SlusarskiGermanyAmy Elsner RENEWAL
Maria MarrierRussiaElwin Sharvill UNQUALIFIED
Faith GillianItalyElwin Sharvill RENEWAL
Frozen Columns
Name
Silvio Slusarski
Salvatore Stockham
Emily Whobrey
Mujtaba Nicka
Aruna Figeroa
Deepesh Chui
Costa Dilliard
Silvio Slusarski
Izzy Garufi
Misaki Royster
Arvin Albares
Alejandro Perin
Nicolas Iturbide
Francesco Shinko
Tony Foller
Kaitlin Ostrosky
Claire Tollner
Jeanfrancois Venere
Arvin Albares
Murillo Malet
Adams Morasca
Izzy Garufi
Jefferson Schemmer
Rodrigues Campain
Jeanfrancois Venere
Clifford Rim
Stacey Maclead
Silvio Slusarski
Murillo Malet
Kadeem Flosi
Salvatore Stockham
Rodrigues Campain
Jeanfrancois Venere
Stacey Maclead
Aika Inouye
Claire Tollner
Chavez Briddick
Kadeem Flosi
Misaki Royster
Cody Saylors
Clifford Rim
James Butt
Kadeem Flosi
Adams Morasca
Aika Inouye
Izzy Garufi
Nicolas Iturbide
Jennifer Amigon
Rodrigues Campain
Silvio Slusarski
IdCountryDate
1000Italy2026-06-20
1001Germany2026-05-26
1002France2026-05-27
1003Brazil2026-06-01
1004Japan2026-06-16
1005India2026-06-14
1006United Kingdom2026-06-18
1007Japan2026-06-21
1008Canada2026-06-06
1009Russia2026-06-04
1010Brazil2026-05-27
1011United Kingdom2026-05-25
1012India2026-06-06
1013India2026-06-03
1014Italy2026-05-24
1015Russia2026-06-19
1016Canada2026-06-01
1017Argentina2026-06-01
1018France2026-06-04
1019United Kingdom2026-06-14
1020Italy2026-06-09
1021Spain2026-06-17
1022India2026-06-16
1023Spain2026-06-11
1024United Kingdom2026-06-20
1025Argentina2026-06-11
1026Australia2026-06-09
1027Brazil2026-06-14
1028United Kingdom2026-05-24
1029Argentina2026-05-24
1030France2026-06-05
1031Italy2026-06-08
1032Argentina2026-05-24
1033Japan2026-06-21
1034Japan2026-06-17
1035United Kingdom2026-06-09
1036Germany2026-06-14
1037Canada2026-06-09
1038India2026-06-03
1039Italy2026-06-01
1040Japan2026-06-15
1041Australia2026-05-25
1042Japan2026-05-26
1043France2026-06-15
1044Russia2026-06-05
1045Canada2026-06-01
1046Argentina2026-06-01
1047Argentina2026-06-11
1048India2026-06-06
1049Canada2026-06-19

On-Demand Data

NameIdCountryDate
Darci Poquette1000Japan2026-06-20
Cody Saylors1001Spain2026-05-27
Antonio Caudy1002Russia2026-06-12
Wickens Nestle1003Japan2026-06-05
Rodrigues Campain1004Germany2026-05-25
Faith Gillian1005Brazil2026-05-24
Claire Tollner1006Australia2026-05-29
Cody Saylors1007Italy2026-06-07
Kaitlin Ostrosky1008Brazil2026-06-04
Julie Stenseth1009United Kingdom2026-06-04
Johnson Sergi1010Germany2026-06-21
Francesco Shinko1011Canada2026-05-30
Arvin Albares1012Spain2026-05-31
Aditya Kusko1013Brazil2026-06-03
Munro Ferencz1014Brazil2026-06-17
Smith Glick1015India2026-06-22
Munro Ferencz1016Brazil2026-06-15
Greenwood Bolognia1017United Kingdom2026-05-24
Maria Marrier1018Canada2026-06-02
Faith Gillian1019Germany2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierJapanIvan Magalhaes NEW
Ricardo GauchoRussiaIvan Magalhaes UNQUALIFIED
Antonio CaudyItalyAsiya Javayant PROPOSAL
Clifford RimUnited KingdomBernardo Dominic PROPOSAL
Cody SaylorsIndiaBernardo Dominic PROPOSAL
Darci PoquetteAustraliaAnna Fali RENEWAL
Alejandro PerinBrazilElwin Sharvill RENEWAL
Octavia MaletGermanyAsiya Javayant PROPOSAL
Munro FerenczIndiaOnyama Limba UNQUALIFIED
Darci PoquetteGermanyAnna Fali NEW
Jennifer AmigonRussiaAnna Fali UNQUALIFIED
Maisha RulapaughSpainIoni Bowcher RENEWAL
Kaitlin OstroskyIndiaOnyama Limba NEW
Izzy GarufiJapanXuxue Feng PROPOSAL
Aditya KuskoSpainXuxue Feng NEW
Kadeem FlosiSpainStephen Shaw QUALIFIED
Aruna FigeroaCanadaXuxue Feng PROPOSAL
Ricardo GauchoArgentinaAmy Elsner QUALIFIED
Arvin AlbaresGermanyAsiya Javayant QUALIFIED
Cody SaylorsSpainAmy Elsner RENEWAL
Costa DilliardArgentinaElwin Sharvill RENEWAL
Aditya KuskoSpainElwin Sharvill QUALIFIED
Maisha RulapaughItalyOnyama Limba NEGOTIATION
Greenwood BologniaItalyOnyama Limba PROPOSAL
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Mujtaba NickaItalyAsiya Javayant RENEWAL
Nicolas IturbideItalyAsiya Javayant NEGOTIATION
Adams MorascaArgentinaIoni Bowcher NEW
Antonio CaudyUnited KingdomAnna Fali PROPOSAL
Leon OldroydCanadaOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomIoni Bowcher PROPOSAL
Antonio CaudySpainAnna Fali UNQUALIFIED
Aika InouyeUnited KingdomBernardo Dominic RENEWAL
Alejandro PerinGermanyElwin Sharvill NEW
Kadeem FlosiArgentinaIoni Bowcher NEGOTIATION
Chavez BriddickJapanAsiya Javayant RENEWAL
Smith GlickCanadaAnna Fali NEGOTIATION
Sinclair WaycottRussiaXuxue Feng UNQUALIFIED
Ivar PaprockiFranceXuxue Feng NEW
Mujtaba NickaRussiaOnyama Limba UNQUALIFIED

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