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 ChuiGermanyOnyama Limba QUALIFIED
Salvatore StockhamAustraliaIvan Magalhaes PROPOSAL
Ricardo GauchoSpainStephen Shaw QUALIFIED
Antonio CaudyAustraliaAsiya Javayant PROPOSAL
Costa DilliardArgentinaIoni Bowcher UNQUALIFIED
Costa DilliardBrazilElwin Sharvill NEW
Ricardo GauchoUnited KingdomAmy Elsner RENEWAL
Morrow RutaBrazilAnna Fali UNQUALIFIED
Antonio CaudyItalyIoni Bowcher RENEWAL
Maria MarrierUnited KingdomIoni Bowcher NEW
Julie StensethItalyAsiya Javayant QUALIFIED
Clifford RimArgentinaBernardo Dominic NEW
Munro FerenczRussiaXuxue Feng UNQUALIFIED
Rodrigues CampainFranceBernardo Dominic PROPOSAL
Adams MorascaBrazilIvan Magalhaes UNQUALIFIED
Ricardo GauchoSpainElwin Sharvill NEGOTIATION
Johnson SergiIndiaBernardo Dominic NEW
Adams MorascaJapanOnyama Limba RENEWAL
Arvin AlbaresArgentinaXuxue Feng NEGOTIATION
Isabel BowleyCanadaAnna Fali NEW
Faith GillianJapanAnna Fali NEW
Stacey MacleadCanadaOnyama Limba UNQUALIFIED
Adams MorascaFranceElwin Sharvill QUALIFIED
Misaki RoysterSpainIvan Magalhaes NEGOTIATION
Arvin AlbaresAustraliaIvan Magalhaes PROPOSAL
Greenwood BologniaAustraliaIvan Magalhaes NEW
Smith GlickAustraliaBernardo Dominic QUALIFIED
Ashley DoeItalyBernardo Dominic NEGOTIATION
Jones VocelkaGermanyOnyama Limba NEGOTIATION
Tony FollerSpainStephen Shaw QUALIFIED
Jones VocelkaBrazilAsiya Javayant NEW
Silvio SlusarskiBrazilIvan Magalhaes NEW
Octavia MaletAustraliaIoni Bowcher UNQUALIFIED
James ButtItalyStephen Shaw NEGOTIATION
James ButtCanadaIoni Bowcher QUALIFIED
Adams MorascaRussiaXuxue Feng NEW
Tony FollerIndiaBernardo Dominic NEGOTIATION
Aditya KuskoArgentinaAnna Fali NEGOTIATION
Clifford RimFranceAsiya Javayant UNQUALIFIED
Arvin AlbaresUnited KingdomXuxue Feng UNQUALIFIED
Claire TollnerUnited KingdomIvan Magalhaes RENEWAL
Aika InouyeArgentinaBernardo Dominic NEGOTIATION
Aruna FigeroaSpainOnyama Limba NEGOTIATION
Morrow RutaIndiaOnyama Limba NEW
David DarakjyJapanElwin Sharvill QUALIFIED
Julie StensethBrazilOnyama Limba NEW
Ashley DoeFranceBernardo Dominic PROPOSAL
James ButtAustraliaIoni Bowcher RENEWAL
Cody SaylorsBrazilOnyama Limba NEW
Adams MorascaFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereAustraliaIoni Bowcher NEGOTIATION
Darci PoquetteAustraliaAnna Fali UNQUALIFIED
Salvatore StockhamFranceOnyama Limba UNQUALIFIED
Ashley DoeItalyXuxue Feng PROPOSAL
Alejandro PerinFranceIvan Magalhaes PROPOSAL
Alejandro PerinItalyElwin Sharvill NEW
Cody SaylorsIndiaOnyama Limba NEGOTIATION
Leja CaldareraJapanAnna Fali UNQUALIFIED
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Morrow RutaJapanIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoJapan2026-05-09Chemel, James L Cpa NEW34Onyama Limba
1001Clifford RimFrance2026-05-06Truhlar And Truhlar Attys PROPOSAL39Bernardo Dominic
1002Maria MarrierCanada2026-05-07Rangoni Of Florence UNQUALIFIED88Amy Elsner
1003Maria MarrierJapan2026-05-18Chanay, Jeffrey A Esq NEGOTIATION66Amy Elsner
1004Salvatore StockhamArgentina2026-05-07Chapman, Ross E Esq PROPOSAL88Bernardo Dominic
1005Wickens NestleRussia2026-05-31Rousseaux, Michael Esq NEW96Ioni Bowcher
1006Julie StensethArgentina2026-06-01Buckley Miller Wright RENEWAL75Asiya Javayant
1007Stacey MacleadFrance2026-06-04Chapman, Ross E Esq PROPOSAL98Stephen Shaw
1008Mayumi KolmetzSpain2026-05-11Printing Dimensions PROPOSAL4Ivan Magalhaes
1009Alejandro PerinArgentina2026-05-20Benton, John B Jr QUALIFIED26Elwin Sharvill
1010Aika InouyeAustralia2026-05-12Dorl, James J Esq QUALIFIED78Stephen Shaw
1011Kadeem FlosiFrance2026-05-29Feltz Printing Service QUALIFIED97Xuxue Feng
1012Jennifer AmigonUnited Kingdom2026-05-12Commercial Press NEW4Asiya Javayant
1013Adams MorascaRussia2026-05-14Printing Dimensions NEGOTIATION2Ivan Magalhaes
1014Rodrigues CampainArgentina2026-05-25Chanay, Jeffrey A Esq RENEWAL24Anna Fali
1015Costa DilliardUnited Kingdom2026-05-26Buckley Miller Wright QUALIFIED8Ioni Bowcher
1016Ashley DoeJapan2026-05-26Morlong Associates UNQUALIFIED17Ioni Bowcher
1017Emily WhobreyAustralia2026-05-24Chanay, Jeffrey A Esq NEGOTIATION99Amy Elsner
1018Faith GillianItaly2026-05-15Buckley Miller Wright PROPOSAL24Ivan Magalhaes
1019Julie StensethAustralia2026-05-25Chemel, James L Cpa PROPOSAL55Ivan Magalhaes
1020Francesco ShinkoIndia2026-05-30Commercial Press PROPOSAL14Anna Fali
1021Aruna FigeroaRussia2026-05-12Commercial Press NEGOTIATION87Ivan Magalhaes
1022Tony FollerSpain2026-05-27Buckley Miller Wright NEW10Amy Elsner
1023Izzy GarufiSpain2026-05-06Printing Dimensions RENEWAL50Asiya Javayant
1024Mayumi KolmetzSpain2026-05-07Chanay, Jeffrey A Esq QUALIFIED34Asiya Javayant
1025Darci PoquetteArgentina2026-05-12Chemel, James L Cpa PROPOSAL18Xuxue Feng
1026Arvin AlbaresUnited Kingdom2026-05-11Dorl, James J Esq PROPOSAL10Ioni Bowcher
1027Aruna FigeroaSpain2026-06-03Morlong Associates PROPOSAL81Bernardo Dominic
1028Costa DilliardFrance2026-05-19Chemel, James L Cpa RENEWAL37Stephen Shaw
1029Sinclair WaycottSpain2026-05-30King, Christopher A Esq RENEWAL55Bernardo Dominic
1030Maisha RulapaughFrance2026-05-21Printing Dimensions UNQUALIFIED16Bernardo Dominic
1031Aditya KuskoItaly2026-05-09Buckley Miller Wright QUALIFIED50Xuxue Feng
1032Munro FerenczCanada2026-06-01Benton, John B Jr RENEWAL52Onyama Limba
1033David DarakjyIndia2026-05-20Chapman, Ross E Esq NEW62Ioni Bowcher
1034Claire TollnerSpain2026-05-31Rousseaux, Michael Esq NEW97Stephen Shaw
1035Isabel BowleyGermany2026-05-07Printing Dimensions QUALIFIED79Ivan Magalhaes
1036Mayumi KolmetzAustralia2026-05-31Benton, John B Jr NEGOTIATION21Anna Fali
1037Jennifer AmigonIndia2026-06-04Printing Dimensions RENEWAL15Asiya Javayant
1038Claire TollnerFrance2026-05-31Rangoni Of Florence UNQUALIFIED1Onyama Limba
1039Mayumi KolmetzCanada2026-05-12Chanay, Jeffrey A Esq NEGOTIATION93Onyama Limba
1040Murillo MaletCanada2026-05-31Chanay, Jeffrey A Esq QUALIFIED60Anna Fali
1041Munro FerenczJapan2026-05-29Chemel, James L Cpa PROPOSAL48Ioni Bowcher
1042Tony FollerItaly2026-05-28Chemel, James L Cpa NEGOTIATION72Amy Elsner
1043Antonio CaudyCanada2026-05-09Buckley Miller Wright QUALIFIED46Asiya Javayant
1044Munro FerenczFrance2026-05-15Truhlar And Truhlar Attys QUALIFIED36Anna Fali
1045Kadeem FlosiItaly2026-05-29Printing Dimensions PROPOSAL39Ioni Bowcher
1046Murillo MaletSpain2026-05-15Morlong Associates NEW99Stephen Shaw
1047Greenwood BologniaSpain2026-05-22Chanay, Jeffrey A Esq QUALIFIED40Asiya Javayant
1048Darci PoquetteRussia2026-06-02Feltz Printing Service QUALIFIED43Asiya Javayant
1049Juan WieserUnited Kingdom2026-05-09Chanay, Jeffrey A Esq RENEWAL52Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczBrazilStephen Shaw NEW
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Aditya KuskoIndiaAsiya Javayant UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw NEW
Emily WhobreyIndiaAsiya Javayant PROPOSAL
Darci PoquetteFranceStephen Shaw PROPOSAL
Mayumi KolmetzIndiaBernardo Dominic NEGOTIATION
Wickens NestleBrazilXuxue Feng UNQUALIFIED
Murillo MaletRussiaOnyama Limba UNQUALIFIED
Aditya KuskoCanadaAmy Elsner NEW
Julie StensethArgentinaStephen Shaw NEW
Leja CaldareraFranceIvan Magalhaes UNQUALIFIED
Jefferson SchemmerAustraliaStephen Shaw RENEWAL
Wickens NestleSpainIoni Bowcher NEGOTIATION
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Ivar PaprockiBrazilStephen Shaw RENEWAL
Julie StensethCanadaOnyama Limba QUALIFIED
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Izzy GarufiArgentinaElwin Sharvill PROPOSAL
Kadeem FlosiArgentinaIoni Bowcher NEW
Ivar PaprockiArgentinaOnyama Limba QUALIFIED
Misaki RoysterAustraliaOnyama Limba PROPOSAL
Misaki RoysterUnited KingdomElwin Sharvill QUALIFIED
Wickens NestleItalyXuxue Feng NEGOTIATION
Emily WhobreyFranceOnyama Limba NEGOTIATION
Octavia MaletIndiaIoni Bowcher UNQUALIFIED
Cody SaylorsCanadaOnyama Limba QUALIFIED
Ricardo GauchoGermanyBernardo Dominic NEW
Juan WieserUnited KingdomBernardo Dominic RENEWAL
Julie StensethUnited KingdomBernardo Dominic PROPOSAL
Ivar PaprockiGermanyAnna Fali NEW
Jones VocelkaItalyAmy Elsner UNQUALIFIED
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Jeanfrancois VenereAustraliaXuxue Feng PROPOSAL
Jones VocelkaSpainOnyama Limba QUALIFIED
Jennifer AmigonItalyAsiya Javayant UNQUALIFIED
Emily WhobreyArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois VenereJapanAmy Elsner NEGOTIATION
Leja CaldareraCanadaOnyama Limba NEW
Claire TollnerRussiaIoni Bowcher PROPOSAL
Octavia MaletIndiaOnyama Limba NEW
Jeanfrancois VenereJapanAmy Elsner UNQUALIFIED
Octavia MaletUnited KingdomAsiya Javayant QUALIFIED
Izzy GarufiUnited KingdomAsiya Javayant NEW
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Costa DilliardFranceAsiya Javayant NEGOTIATION
Cody SaylorsUnited KingdomIoni Bowcher RENEWAL
Claire TollnerSpainStephen Shaw NEW
Leon OldroydFranceAmy Elsner UNQUALIFIED
Cody SaylorsCanadaXuxue Feng PROPOSAL
Frozen Columns
Name
David Darakjy
Jefferson Schemmer
Izzy Garufi
Tony Foller
Ashley Doe
Rodrigues Campain
Wickens Nestle
Leon Oldroyd
Maisha Rulapaugh
Maisha Rulapaugh
Chavez Briddick
Izzy Garufi
Cody Saylors
Jones Vocelka
Munro Ferencz
Greenwood Bolognia
Leja Caldarera
Deepesh Chui
Johnson Sergi
Mujtaba Nicka
Arvin Albares
Stacey Maclead
Wickens Nestle
Ivar Paprocki
Smith Glick
Jennifer Amigon
Munro Ferencz
Wickens Nestle
Silvio Slusarski
Leja Caldarera
Aditya Kusko
Isabel Bowley
Izzy Garufi
Alejandro Perin
Darci Poquette
Clifford Rim
Munro Ferencz
Cody Saylors
James Butt
Greenwood Bolognia
Jefferson Schemmer
Maria Marrier
Salvatore Stockham
Ashley Doe
Deepesh Chui
Francesco Shinko
Rodrigues Campain
Murillo Malet
Ricardo Gaucho
James Butt
IdCountryDate
1000Argentina2026-05-12
1001Germany2026-05-12
1002Japan2026-05-25
1003Canada2026-05-08
1004Russia2026-05-24
1005Argentina2026-05-28
1006India2026-05-07
1007Germany2026-05-24
1008Japan2026-05-14
1009India2026-05-13
1010Australia2026-05-13
1011Russia2026-05-07
1012Japan2026-05-18
1013Spain2026-05-25
1014Argentina2026-05-15
1015India2026-06-03
1016United Kingdom2026-05-28
1017Germany2026-05-21
1018United Kingdom2026-05-29
1019Italy2026-05-18
1020Argentina2026-06-02
1021Argentina2026-06-03
1022Germany2026-06-02
1023Italy2026-05-28
1024United Kingdom2026-05-18
1025Russia2026-05-30
1026Brazil2026-06-03
1027Spain2026-05-17
1028Japan2026-05-26
1029Spain2026-05-17
1030Argentina2026-05-09
1031Japan2026-05-25
1032Argentina2026-05-16
1033Italy2026-05-16
1034Germany2026-05-21
1035Germany2026-05-13
1036Germany2026-06-04
1037Japan2026-05-13
1038Germany2026-05-13
1039Australia2026-06-01
1040Italy2026-05-22
1041France2026-05-13
1042Germany2026-05-14
1043Japan2026-05-21
1044United Kingdom2026-05-14
1045Russia2026-05-28
1046United Kingdom2026-05-07
1047Italy2026-05-09
1048Canada2026-05-13
1049Australia2026-05-18

On-Demand Data

NameIdCountryDate
Smith Glick1000France2026-05-15
Greenwood Bolognia1001Japan2026-05-30
Julie Stenseth1002Spain2026-05-22
Salvatore Stockham1003United Kingdom2026-05-16
Maisha Rulapaugh1004France2026-05-31
Salvatore Stockham1005Canada2026-05-27
Munro Ferencz1006Russia2026-05-11
Leon Oldroyd1007United Kingdom2026-05-11
Maisha Rulapaugh1008France2026-06-02
Munro Ferencz1009Germany2026-05-07
Cody Saylors1010France2026-05-06
Aditya Kusko1011Argentina2026-05-18
Johnson Sergi1012India2026-05-29
Murillo Malet1013India2026-05-08
Clifford Rim1014Brazil2026-05-08
Leja Caldarera1015France2026-05-17
Mujtaba Nicka1016Brazil2026-05-13
Greenwood Bolognia1017Argentina2026-05-30
Juan Wieser1018Argentina2026-05-27
Sinclair Waycott1019Japan2026-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoAustraliaIoni Bowcher RENEWAL
Tony FollerFranceBernardo Dominic RENEWAL
Wickens NestleUnited KingdomAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaOnyama Limba NEW
Ivar PaprockiBrazilXuxue Feng PROPOSAL
Costa DilliardBrazilXuxue Feng QUALIFIED
Aruna FigeroaFranceAmy Elsner QUALIFIED
Kadeem FlosiJapanXuxue Feng NEGOTIATION
Misaki RoysterArgentinaXuxue Feng NEGOTIATION
Faith GillianSpainOnyama Limba NEW
Sinclair WaycottJapanAmy Elsner PROPOSAL
Francesco ShinkoAustraliaIvan Magalhaes QUALIFIED
Aditya KuskoSpainIvan Magalhaes UNQUALIFIED
Mayumi KolmetzCanadaXuxue Feng NEGOTIATION
Cody SaylorsRussiaAmy Elsner QUALIFIED
Ivar PaprockiRussiaAmy Elsner RENEWAL
Ivar PaprockiArgentinaAnna Fali NEGOTIATION
Ivar PaprockiJapanXuxue Feng PROPOSAL
Juan WieserUnited KingdomAnna Fali UNQUALIFIED
Ivar PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Aika InouyeItalyIoni Bowcher QUALIFIED
Darci PoquetteItalyXuxue Feng NEGOTIATION
Cody SaylorsIndiaOnyama Limba UNQUALIFIED
Nicolas IturbideGermanyOnyama Limba QUALIFIED
Jefferson SchemmerSpainIoni Bowcher NEW
Maisha RulapaughArgentinaStephen Shaw PROPOSAL
Rodrigues CampainGermanyAmy Elsner RENEWAL
Juan WieserArgentinaOnyama Limba PROPOSAL
Silvio SlusarskiIndiaElwin Sharvill NEW
Juan WieserJapanStephen Shaw UNQUALIFIED
Aditya KuskoAustraliaIoni Bowcher RENEWAL
Aruna FigeroaRussiaAmy Elsner QUALIFIED
Aditya KuskoCanadaStephen Shaw NEGOTIATION
Faith GillianBrazilAmy Elsner UNQUALIFIED
Ivar PaprockiArgentinaAmy Elsner RENEWAL
Arvin AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Jennifer AmigonItalyStephen Shaw NEW
Francesco ShinkoCanadaXuxue Feng PROPOSAL
Tony FollerArgentinaElwin Sharvill QUALIFIED
Mujtaba NickaJapanAnna Fali RENEWAL

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