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
Sinclair WaycottRussiaIoni Bowcher QUALIFIED
Mujtaba NickaUnited KingdomXuxue Feng RENEWAL
Greenwood BologniaIndiaStephen Shaw NEW
David DarakjyBrazilStephen Shaw RENEWAL
Salvatore StockhamUnited KingdomElwin Sharvill QUALIFIED
Juan WieserGermanyBernardo Dominic PROPOSAL
Jeanfrancois VenereFranceIvan Magalhaes NEGOTIATION
Chavez BriddickJapanOnyama Limba PROPOSAL
Maisha RulapaughArgentinaStephen Shaw NEW
Deepesh ChuiFranceXuxue Feng RENEWAL
Munro FerenczFranceIoni Bowcher UNQUALIFIED
Misaki RoysterItalyElwin Sharvill NEW
Chavez BriddickItalyOnyama Limba RENEWAL
Cody SaylorsJapanStephen Shaw NEGOTIATION
Ivar PaprockiAustraliaElwin Sharvill NEGOTIATION
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Costa DilliardItalyXuxue Feng RENEWAL
James ButtRussiaIoni Bowcher QUALIFIED
Stacey MacleadAustraliaIoni Bowcher UNQUALIFIED
Juan WieserAustraliaXuxue Feng NEW
Isabel BowleyFranceOnyama Limba RENEWAL
Silvio SlusarskiRussiaXuxue Feng PROPOSAL
Cody SaylorsUnited KingdomAsiya Javayant QUALIFIED
Arvin AlbaresItalyAsiya Javayant NEW
Johnson SergiGermanyBernardo Dominic NEGOTIATION
Costa DilliardItalyElwin Sharvill QUALIFIED
Greenwood BologniaGermanyIoni Bowcher QUALIFIED
Leon OldroydSpainAmy Elsner UNQUALIFIED
Jeanfrancois VenereJapanAmy Elsner UNQUALIFIED
Claire TollnerAustraliaXuxue Feng PROPOSAL
Aruna FigeroaBrazilAsiya Javayant QUALIFIED
Deepesh ChuiFranceAsiya Javayant NEGOTIATION
Aruna FigeroaSpainXuxue Feng NEW
David DarakjyFranceXuxue Feng NEGOTIATION
Kadeem FlosiRussiaOnyama Limba NEW
Costa DilliardItalyIvan Magalhaes NEGOTIATION
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Adams MorascaItalyElwin Sharvill PROPOSAL
Nicolas IturbideSpainIvan Magalhaes UNQUALIFIED
Morrow RutaItalyIoni Bowcher UNQUALIFIED
Aika InouyeRussiaAnna Fali NEGOTIATION
Murillo MaletFranceIvan Magalhaes QUALIFIED
Kaitlin OstroskySpainIoni Bowcher UNQUALIFIED
Aditya KuskoIndiaAnna Fali NEGOTIATION
Kadeem FlosiIndiaIvan Magalhaes UNQUALIFIED
Misaki RoysterCanadaElwin Sharvill QUALIFIED
Juan WieserCanadaElwin Sharvill RENEWAL
Juan WieserUnited KingdomXuxue Feng NEGOTIATION
Izzy GarufiItalyAsiya Javayant NEGOTIATION
Cody SaylorsRussiaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoGermanyIvan Magalhaes NEGOTIATION
Mujtaba NickaArgentinaAnna Fali NEW
Darci PoquetteItalyStephen Shaw NEW
Ashley DoeIndiaElwin Sharvill NEGOTIATION
Costa DilliardFranceIoni Bowcher QUALIFIED
Stacey MacleadGermanyAsiya Javayant RENEWAL
Ricardo GauchoCanadaIvan Magalhaes NEGOTIATION
Costa DilliardIndiaAsiya Javayant NEW
David DarakjyCanadaAmy Elsner NEW
Ricardo GauchoAustraliaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierAustralia2026-06-10Feiner Bros PROPOSAL71Anna Fali
1001Tony FollerIndia2026-06-15Truhlar And Truhlar Attys RENEWAL53Stephen Shaw
1002Sinclair WaycottGermany2026-06-12Benton, John B Jr RENEWAL25Stephen Shaw
1003Aika InouyeGermany2026-05-28Chapman, Ross E Esq NEGOTIATION96Onyama Limba
1004Maisha RulapaughFrance2026-06-18Chapman, Ross E Esq NEGOTIATION21Ivan Magalhaes
1005Sinclair WaycottGermany2026-06-12Rousseaux, Michael Esq NEW51Ioni Bowcher
1006Ricardo GauchoAustralia2026-05-28Feltz Printing Service QUALIFIED50Asiya Javayant
1007Aditya KuskoArgentina2026-06-04Feiner Bros RENEWAL33Anna Fali
1008Chavez BriddickArgentina2026-06-07King, Christopher A Esq QUALIFIED30Elwin Sharvill
1009Kadeem FlosiIndia2026-06-19King, Christopher A Esq PROPOSAL23Asiya Javayant
1010Antonio CaudyFrance2026-06-07Dorl, James J Esq NEW79Ivan Magalhaes
1011Claire TollnerArgentina2026-06-01Rangoni Of Florence UNQUALIFIED98Bernardo Dominic
1012Morrow RutaSpain2026-06-18Chapman, Ross E Esq PROPOSAL97Ivan Magalhaes
1013Isabel BowleySpain2026-05-24Printing Dimensions PROPOSAL92Anna Fali
1014Clifford RimRussia2026-06-06Truhlar And Truhlar Attys NEGOTIATION5Onyama Limba
1015Tony FollerSpain2026-06-15Morlong Associates QUALIFIED48Ioni Bowcher
1016Arvin AlbaresBrazil2026-06-10Rousseaux, Michael Esq NEGOTIATION14Elwin Sharvill
1017Clifford RimIndia2026-06-21Rangoni Of Florence PROPOSAL56Ivan Magalhaes
1018Isabel BowleyGermany2026-06-14Commercial Press UNQUALIFIED80Onyama Limba
1019Nicolas IturbideBrazil2026-06-15Truhlar And Truhlar Attys UNQUALIFIED89Bernardo Dominic
1020Sinclair WaycottItaly2026-06-20Feltz Printing Service RENEWAL56Amy Elsner
1021Francesco ShinkoAustralia2026-06-16Rousseaux, Michael Esq NEGOTIATION36Ivan Magalhaes
1022Aruna FigeroaRussia2026-06-12Dorl, James J Esq NEGOTIATION13Ivan Magalhaes
1023Jeanfrancois VenereRussia2026-06-17Dorl, James J Esq NEW86Bernardo Dominic
1024Izzy GarufiUnited Kingdom2026-05-30King, Christopher A Esq NEW25Elwin Sharvill
1025Tony FollerRussia2026-06-14Chanay, Jeffrey A Esq RENEWAL60Asiya Javayant
1026Jennifer AmigonJapan2026-05-28Feltz Printing Service PROPOSAL42Bernardo Dominic
1027Kaitlin OstroskyRussia2026-06-19Feiner Bros PROPOSAL47Anna Fali
1028Greenwood BologniaAustralia2026-06-19Truhlar And Truhlar Attys NEW58Asiya Javayant
1029Leon OldroydArgentina2026-06-14Morlong Associates NEW82Stephen Shaw
1030Johnson SergiSpain2026-06-20Dorl, James J Esq RENEWAL50Ioni Bowcher
1031Mujtaba NickaRussia2026-06-05Dorl, James J Esq NEGOTIATION86Stephen Shaw
1032Costa DilliardSpain2026-06-08Chemel, James L Cpa QUALIFIED3Elwin Sharvill
1033Morrow RutaJapan2026-05-28Chapman, Ross E Esq NEGOTIATION27Ivan Magalhaes
1034Chavez BriddickFrance2026-05-25Feltz Printing Service PROPOSAL13Elwin Sharvill
1035Octavia MaletItaly2026-06-20Benton, John B Jr QUALIFIED30Elwin Sharvill
1036Nicolas IturbideJapan2026-06-15Rousseaux, Michael Esq PROPOSAL64Amy Elsner
1037Aruna FigeroaArgentina2026-06-15Feltz Printing Service QUALIFIED7Onyama Limba
1038Clifford RimCanada2026-05-26Chanay, Jeffrey A Esq PROPOSAL28Asiya Javayant
1039Darci PoquetteGermany2026-06-14Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1040Cody SaylorsBrazil2026-06-16Chanay, Jeffrey A Esq NEGOTIATION62Stephen Shaw
1041Aruna FigeroaFrance2026-06-03Buckley Miller Wright RENEWAL23Anna Fali
1042Deepesh ChuiFrance2026-05-24Buckley Miller Wright PROPOSAL93Xuxue Feng
1043Claire TollnerRussia2026-06-04Commercial Press NEGOTIATION50Xuxue Feng
1044Murillo MaletAustralia2026-06-14Printing Dimensions PROPOSAL27Xuxue Feng
1045Adams MorascaSpain2026-06-21Rousseaux, Michael Esq NEW55Ioni Bowcher
1046Johnson SergiGermany2026-06-08King, Christopher A Esq QUALIFIED33Ivan Magalhaes
1047Aditya KuskoCanada2026-06-16Commercial Press NEGOTIATION42Onyama Limba
1048Murillo MaletIndia2026-05-28Dorl, James J Esq QUALIFIED7Anna Fali
1049Aika InouyeCanada2026-05-25Commercial Press QUALIFIED25Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiUnited KingdomStephen Shaw PROPOSAL
Kadeem FlosiFranceAsiya Javayant NEW
Sinclair WaycottIndiaStephen Shaw PROPOSAL
Arvin AlbaresFranceStephen Shaw UNQUALIFIED
Tony FollerBrazilBernardo Dominic PROPOSAL
Julie StensethJapanBernardo Dominic NEGOTIATION
Jennifer AmigonGermanyOnyama Limba NEGOTIATION
Faith GillianJapanIoni Bowcher NEW
Salvatore StockhamCanadaOnyama Limba PROPOSAL
James ButtIndiaElwin Sharvill UNQUALIFIED
Silvio SlusarskiAustraliaBernardo Dominic NEW
Ricardo GauchoFranceOnyama Limba RENEWAL
Tony FollerGermanyElwin Sharvill QUALIFIED
Faith GillianCanadaIoni Bowcher UNQUALIFIED
Cody SaylorsJapanStephen Shaw UNQUALIFIED
Francesco ShinkoUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo GauchoBrazilXuxue Feng NEGOTIATION
Chavez BriddickRussiaBernardo Dominic RENEWAL
Kadeem FlosiItalyIvan Magalhaes PROPOSAL
Maisha RulapaughJapanAnna Fali NEW
David DarakjyItalyIoni Bowcher QUALIFIED
Rodrigues CampainCanadaIoni Bowcher RENEWAL
Octavia MaletAustraliaIvan Magalhaes PROPOSAL
Misaki RoysterSpainIoni Bowcher NEGOTIATION
Antonio CaudyAustraliaElwin Sharvill RENEWAL
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Julie StensethBrazilElwin Sharvill PROPOSAL
Claire TollnerIndiaAmy Elsner RENEWAL
Isabel BowleyAustraliaBernardo Dominic RENEWAL
Rodrigues CampainItalyXuxue Feng NEGOTIATION
Mayumi KolmetzItalyXuxue Feng NEGOTIATION
Chavez BriddickJapanAsiya Javayant NEGOTIATION
Johnson SergiArgentinaOnyama Limba RENEWAL
Aika InouyeGermanyElwin Sharvill NEGOTIATION
Jefferson SchemmerJapanElwin Sharvill PROPOSAL
Chavez BriddickCanadaBernardo Dominic UNQUALIFIED
Ivar PaprockiItalyElwin Sharvill UNQUALIFIED
Aruna FigeroaAustraliaIvan Magalhaes QUALIFIED
Maisha RulapaughIndiaAmy Elsner UNQUALIFIED
Claire TollnerRussiaBernardo Dominic RENEWAL
Aika InouyeAustraliaStephen Shaw QUALIFIED
James ButtArgentinaIoni Bowcher QUALIFIED
Costa DilliardBrazilXuxue Feng RENEWAL
Silvio SlusarskiJapanStephen Shaw UNQUALIFIED
Julie StensethItalyStephen Shaw NEW
Johnson SergiIndiaIoni Bowcher PROPOSAL
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Alejandro PerinIndiaBernardo Dominic UNQUALIFIED
Jones VocelkaGermanyAmy Elsner NEGOTIATION
Aditya KuskoIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Adams Morasca
Murillo Malet
Isabel Bowley
Silvio Slusarski
Silvio Slusarski
Jones Vocelka
Ashley Doe
James Butt
Antonio Caudy
Francesco Shinko
Smith Glick
Chavez Briddick
Maisha Rulapaugh
Murillo Malet
Clifford Rim
Morrow Ruta
Munro Ferencz
Misaki Royster
Aika Inouye
Leon Oldroyd
Leja Caldarera
Claire Tollner
Chavez Briddick
Antonio Caudy
Isabel Bowley
Ivar Paprocki
Jefferson Schemmer
Rodrigues Campain
Clifford Rim
Morrow Ruta
Jefferson Schemmer
Mujtaba Nicka
Sinclair Waycott
Isabel Bowley
Francesco Shinko
Faith Gillian
Jeanfrancois Venere
Costa Dilliard
Claire Tollner
Francesco Shinko
Ashley Doe
David Darakjy
Julie Stenseth
Darci Poquette
Ashley Doe
Juan Wieser
Leon Oldroyd
David Darakjy
Leja Caldarera
Alejandro Perin
IdCountryDate
1000France2026-06-05
1001Japan2026-06-08
1002Spain2026-05-26
1003Brazil2026-06-14
1004Russia2026-06-06
1005India2026-06-13
1006Russia2026-06-13
1007Spain2026-05-25
1008Spain2026-06-18
1009India2026-06-16
1010Canada2026-05-27
1011India2026-06-13
1012Russia2026-06-15
1013France2026-06-09
1014Brazil2026-06-13
1015Brazil2026-06-12
1016Canada2026-06-08
1017Australia2026-05-29
1018Russia2026-05-28
1019Russia2026-06-10
1020Germany2026-06-10
1021France2026-06-10
1022Australia2026-06-07
1023Argentina2026-05-24
1024Australia2026-06-16
1025United Kingdom2026-06-10
1026Canada2026-06-21
1027United Kingdom2026-05-29
1028Canada2026-06-20
1029Spain2026-06-13
1030Spain2026-05-28
1031Brazil2026-05-30
1032Russia2026-05-24
1033Germany2026-06-12
1034France2026-06-05
1035Russia2026-06-15
1036India2026-06-03
1037Argentina2026-06-13
1038Russia2026-06-18
1039France2026-06-02
1040United Kingdom2026-06-17
1041Italy2026-06-18
1042United Kingdom2026-05-26
1043Japan2026-06-04
1044Australia2026-06-13
1045India2026-05-30
1046Argentina2026-06-03
1047United Kingdom2026-06-04
1048Italy2026-05-24
1049Russia2026-05-31

On-Demand Data

NameIdCountryDate
Smith Glick1000India2026-06-06
Isabel Bowley1001United Kingdom2026-06-20
Faith Gillian1002Spain2026-06-03
Antonio Caudy1003Japan2026-06-18
Ashley Doe1004Brazil2026-06-18
Isabel Bowley1005Brazil2026-06-03
Jeanfrancois Venere1006Japan2026-06-22
Ricardo Gaucho1007Australia2026-06-11
Maria Marrier1008India2026-05-30
Faith Gillian1009India2026-06-17
Francesco Shinko1010Italy2026-06-18
Emily Whobrey1011Japan2026-06-09
Mujtaba Nicka1012United Kingdom2026-05-27
Isabel Bowley1013Italy2026-06-01
Faith Gillian1014Italy2026-05-30
Chavez Briddick1015France2026-06-17
Alejandro Perin1016Italy2026-05-26
Octavia Malet1017Russia2026-06-19
Morrow Ruta1018India2026-05-28
Wickens Nestle1019Canada2026-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyJapanAsiya Javayant NEGOTIATION
Octavia MaletBrazilAmy Elsner NEW
Izzy GarufiBrazilBernardo Dominic NEW
Salvatore StockhamRussiaElwin Sharvill QUALIFIED
Greenwood BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Maria MarrierFranceIoni Bowcher PROPOSAL
Aditya KuskoSpainIoni Bowcher RENEWAL
Jennifer AmigonUnited KingdomXuxue Feng PROPOSAL
Jones VocelkaItalyBernardo Dominic RENEWAL
Misaki RoysterBrazilAmy Elsner PROPOSAL
Kadeem FlosiIndiaStephen Shaw RENEWAL
Emily WhobreyFranceIvan Magalhaes RENEWAL
Kadeem FlosiJapanElwin Sharvill RENEWAL
Isabel BowleyUnited KingdomXuxue Feng NEW
Salvatore StockhamAustraliaAsiya Javayant UNQUALIFIED
Emily WhobreyAustraliaElwin Sharvill PROPOSAL
Izzy GarufiArgentinaOnyama Limba RENEWAL
Ivar PaprockiUnited KingdomAmy Elsner RENEWAL
Cody SaylorsAustraliaOnyama Limba NEGOTIATION
Alejandro PerinAustraliaAmy Elsner NEW
Jeanfrancois VenereAustraliaIvan Magalhaes NEGOTIATION
Antonio CaudyUnited KingdomIoni Bowcher QUALIFIED
Jones VocelkaGermanyAsiya Javayant UNQUALIFIED
Mayumi KolmetzJapanStephen Shaw RENEWAL
Sinclair WaycottBrazilElwin Sharvill UNQUALIFIED
Octavia MaletSpainOnyama Limba QUALIFIED
Sinclair WaycottIndiaBernardo Dominic NEGOTIATION
Salvatore StockhamCanadaAmy Elsner RENEWAL
Jeanfrancois VenereSpainStephen Shaw RENEWAL
Salvatore StockhamSpainOnyama Limba PROPOSAL
Mujtaba NickaBrazilBernardo Dominic PROPOSAL
Darci PoquetteItalyBernardo Dominic PROPOSAL
Sinclair WaycottBrazilXuxue Feng RENEWAL
James ButtIndiaAmy Elsner RENEWAL
Johnson SergiUnited KingdomStephen Shaw QUALIFIED
Adams MorascaSpainAmy Elsner NEW
Munro FerenczUnited KingdomIoni Bowcher NEGOTIATION
Jennifer AmigonItalyBernardo Dominic NEW
Leon OldroydAustraliaXuxue Feng NEW
Aditya KuskoArgentinaElwin Sharvill 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>