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
Jones VocelkaFranceXuxue Feng QUALIFIED
Deepesh ChuiIndiaOnyama Limba NEW
Kaitlin OstroskyCanadaOnyama Limba QUALIFIED
Misaki RoysterJapanIoni Bowcher RENEWAL
Darci PoquetteRussiaOnyama Limba NEGOTIATION
Octavia MaletItalyAsiya Javayant UNQUALIFIED
Aruna FigeroaIndiaStephen Shaw QUALIFIED
Clifford RimGermanyIoni Bowcher PROPOSAL
Kadeem FlosiGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaCanadaElwin Sharvill QUALIFIED
Mujtaba NickaIndiaElwin Sharvill RENEWAL
Aruna FigeroaCanadaElwin Sharvill PROPOSAL
Misaki RoysterJapanAnna Fali RENEWAL
Murillo MaletArgentinaXuxue Feng NEW
Aika InouyeSpainStephen Shaw NEGOTIATION
Leja CaldareraArgentinaIoni Bowcher UNQUALIFIED
Kadeem FlosiBrazilAsiya Javayant NEGOTIATION
Ivar PaprockiItalyAmy Elsner QUALIFIED
Sinclair WaycottCanadaStephen Shaw NEGOTIATION
Alejandro PerinBrazilAsiya Javayant UNQUALIFIED
Aditya KuskoJapanElwin Sharvill QUALIFIED
Julie StensethGermanyAmy Elsner NEGOTIATION
Antonio CaudyUnited KingdomIvan Magalhaes PROPOSAL
Wickens NestleArgentinaOnyama Limba RENEWAL
Deepesh ChuiUnited KingdomStephen Shaw NEW
Jefferson SchemmerUnited KingdomIoni Bowcher PROPOSAL
Ricardo GauchoGermanyAmy Elsner QUALIFIED
Wickens NestleCanadaIvan Magalhaes UNQUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant NEW
Jefferson SchemmerGermanyElwin Sharvill QUALIFIED
Wickens NestleRussiaIvan Magalhaes QUALIFIED
Aika InouyeItalyStephen Shaw NEGOTIATION
Jeanfrancois VenereFranceAmy Elsner QUALIFIED
Kadeem FlosiGermanyIoni Bowcher PROPOSAL
Emily WhobreyAustraliaIvan Magalhaes NEGOTIATION
Francesco ShinkoAustraliaAnna Fali PROPOSAL
Sinclair WaycottSpainIvan Magalhaes NEGOTIATION
Leja CaldareraJapanBernardo Dominic QUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiSpainBernardo Dominic QUALIFIED
Munro FerenczUnited KingdomBernardo Dominic NEW
Leja CaldareraIndiaIvan Magalhaes QUALIFIED
Aditya KuskoFranceStephen Shaw NEGOTIATION
Munro FerenczFranceXuxue Feng QUALIFIED
Smith GlickUnited KingdomAsiya Javayant NEW
Costa DilliardUnited KingdomAmy Elsner RENEWAL
Francesco ShinkoBrazilStephen Shaw NEGOTIATION
Rodrigues CampainAustraliaAmy Elsner NEGOTIATION
James ButtAustraliaAnna Fali UNQUALIFIED
Juan WieserAustraliaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Wickens NestleArgentinaAnna Fali QUALIFIED
Ivar PaprockiFranceAmy Elsner RENEWAL
Jones VocelkaRussiaBernardo Dominic PROPOSAL
Kadeem FlosiItalyXuxue Feng QUALIFIED
James ButtJapanBernardo Dominic NEW
Silvio SlusarskiIndiaIvan Magalhaes NEW
Tony FollerRussiaAmy Elsner NEGOTIATION
Johnson SergiGermanyStephen Shaw PROPOSAL
Faith GillianUnited KingdomAnna Fali NEGOTIATION
Jefferson SchemmerArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaGermany2026-04-23Rangoni Of Florence QUALIFIED70Elwin Sharvill
1001Chavez BriddickGermany2026-05-01Rangoni Of Florence NEGOTIATION69Asiya Javayant
1002Munro FerenczRussia2026-04-29Benton, John B Jr PROPOSAL66Stephen Shaw
1003Aruna FigeroaItaly2026-04-25Dorl, James J Esq RENEWAL13Bernardo Dominic
1004Rodrigues CampainArgentina2026-05-08Benton, John B Jr NEW2Onyama Limba
1005Ashley DoeCanada2026-05-06King, Christopher A Esq QUALIFIED40Asiya Javayant
1006Leon OldroydCanada2026-05-09Chapman, Ross E Esq PROPOSAL33Ivan Magalhaes
1007Tony FollerGermany2026-04-26Feltz Printing Service QUALIFIED18Asiya Javayant
1008Mujtaba NickaAustralia2026-05-11Feiner Bros RENEWAL43Xuxue Feng
1009Leja CaldareraRussia2026-04-14Printing Dimensions PROPOSAL74Bernardo Dominic
1010Isabel BowleyFrance2026-05-03Morlong Associates NEGOTIATION17Stephen Shaw
1011Stacey MacleadGermany2026-04-29Buckley Miller Wright NEW94Stephen Shaw
1012Maisha RulapaughFrance2026-05-03Morlong Associates RENEWAL22Amy Elsner
1013David DarakjyItaly2026-04-23Chemel, James L Cpa PROPOSAL68Elwin Sharvill
1014Deepesh ChuiJapan2026-04-15Benton, John B Jr NEW58Xuxue Feng
1015Rodrigues CampainAustralia2026-05-04Dorl, James J Esq UNQUALIFIED80Xuxue Feng
1016Aruna FigeroaBrazil2026-04-17Chapman, Ross E Esq NEGOTIATION2Stephen Shaw
1017Misaki RoysterUnited Kingdom2026-05-02King, Christopher A Esq QUALIFIED18Ioni Bowcher
1018Izzy GarufiCanada2026-04-18Chapman, Ross E Esq NEW26Xuxue Feng
1019Deepesh ChuiJapan2026-04-25Benton, John B Jr QUALIFIED69Elwin Sharvill
1020Mujtaba NickaGermany2026-04-25Chemel, James L Cpa UNQUALIFIED44Amy Elsner
1021Juan WieserSpain2026-05-01Feiner Bros NEW22Anna Fali
1022Ashley DoeGermany2026-04-27Rousseaux, Michael Esq QUALIFIED3Amy Elsner
1023Maria MarrierRussia2026-04-18Chapman, Ross E Esq RENEWAL30Ioni Bowcher
1024Jeanfrancois VenereAustralia2026-05-01Benton, John B Jr UNQUALIFIED64Ioni Bowcher
1025Wickens NestleJapan2026-04-30Buckley Miller Wright NEW15Amy Elsner
1026Antonio CaudyGermany2026-04-29Feiner Bros NEGOTIATION78Onyama Limba
1027Munro FerenczGermany2026-05-02Benton, John B Jr NEGOTIATION11Xuxue Feng
1028Jeanfrancois VenereAustralia2026-04-19Dorl, James J Esq QUALIFIED86Asiya Javayant
1029Aditya KuskoGermany2026-04-28Chemel, James L Cpa PROPOSAL64Onyama Limba
1030Izzy GarufiUnited Kingdom2026-04-17Chemel, James L Cpa NEGOTIATION7Onyama Limba
1031Smith GlickIndia2026-04-25Feltz Printing Service PROPOSAL71Elwin Sharvill
1032Claire TollnerFrance2026-05-07Buckley Miller Wright QUALIFIED13Xuxue Feng
1033Claire TollnerBrazil2026-05-08Dorl, James J Esq RENEWAL61Stephen Shaw
1034Mujtaba NickaJapan2026-04-20Chanay, Jeffrey A Esq QUALIFIED62Asiya Javayant
1035Smith GlickUnited Kingdom2026-05-04Chemel, James L Cpa QUALIFIED40Ivan Magalhaes
1036Julie StensethJapan2026-05-01Buckley Miller Wright NEGOTIATION69Ioni Bowcher
1037Leja CaldareraIndia2026-05-10Buckley Miller Wright NEGOTIATION75Asiya Javayant
1038Darci PoquetteRussia2026-05-09Rangoni Of Florence PROPOSAL81Onyama Limba
1039Smith GlickIndia2026-05-02Buckley Miller Wright NEW15Elwin Sharvill
1040Isabel BowleyGermany2026-05-11Chanay, Jeffrey A Esq NEW70Onyama Limba
1041Claire TollnerArgentina2026-05-05Chemel, James L Cpa UNQUALIFIED37Ivan Magalhaes
1042Mayumi KolmetzFrance2026-04-22King, Christopher A Esq NEW22Asiya Javayant
1043Aruna FigeroaSpain2026-04-28Printing Dimensions NEW19Stephen Shaw
1044Aruna FigeroaItaly2026-04-14Truhlar And Truhlar Attys NEGOTIATION18Ioni Bowcher
1045Mujtaba NickaFrance2026-04-22Morlong Associates PROPOSAL79Xuxue Feng
1046Jeanfrancois VenereGermany2026-04-29Feltz Printing Service UNQUALIFIED87Amy Elsner
1047Arvin AlbaresIndia2026-04-29Feiner Bros UNQUALIFIED24Bernardo Dominic
1048Aditya KuskoAustralia2026-05-08Truhlar And Truhlar Attys PROPOSAL27Elwin Sharvill
1049Alejandro PerinArgentina2026-05-06Truhlar And Truhlar Attys NEGOTIATION71Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterAustraliaAsiya Javayant UNQUALIFIED
Maria MarrierAustraliaStephen Shaw UNQUALIFIED
Julie StensethAustraliaElwin Sharvill RENEWAL
Mayumi KolmetzArgentinaOnyama Limba NEW
Isabel BowleyCanadaOnyama Limba PROPOSAL
Antonio CaudySpainIvan Magalhaes RENEWAL
Murillo MaletArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyArgentinaAmy Elsner PROPOSAL
Arvin AlbaresFranceXuxue Feng NEW
James ButtIndiaOnyama Limba UNQUALIFIED
Claire TollnerJapanIvan Magalhaes PROPOSAL
Emily WhobreyGermanyAnna Fali NEW
Octavia MaletIndiaAmy Elsner RENEWAL
Aruna FigeroaFranceXuxue Feng NEGOTIATION
Deepesh ChuiBrazilXuxue Feng RENEWAL
Emily WhobreyBrazilAsiya Javayant QUALIFIED
Sinclair WaycottCanadaIvan Magalhaes NEGOTIATION
Murillo MaletSpainAsiya Javayant QUALIFIED
Mayumi KolmetzArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyFranceAsiya Javayant RENEWAL
Ricardo GauchoJapanAsiya Javayant UNQUALIFIED
Salvatore StockhamCanadaAsiya Javayant NEGOTIATION
Rodrigues CampainBrazilBernardo Dominic NEW
Jennifer AmigonArgentinaOnyama Limba UNQUALIFIED
Isabel BowleyFranceAsiya Javayant QUALIFIED
Jennifer AmigonSpainAnna Fali QUALIFIED
Alejandro PerinArgentinaElwin Sharvill RENEWAL
Rodrigues CampainJapanStephen Shaw NEGOTIATION
Claire TollnerCanadaAsiya Javayant RENEWAL
Faith GillianBrazilBernardo Dominic QUALIFIED
Adams MorascaFranceIoni Bowcher NEGOTIATION
Leon OldroydIndiaOnyama Limba NEGOTIATION
Alejandro PerinFranceBernardo Dominic RENEWAL
Francesco ShinkoSpainOnyama Limba QUALIFIED
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Misaki RoysterJapanAnna Fali UNQUALIFIED
Jefferson SchemmerRussiaXuxue Feng NEGOTIATION
Emily WhobreyRussiaAsiya Javayant NEW
Costa DilliardUnited KingdomElwin Sharvill NEW
Antonio CaudyFranceOnyama Limba QUALIFIED
Maisha RulapaughItalyElwin Sharvill PROPOSAL
Aruna FigeroaBrazilAnna Fali PROPOSAL
Francesco ShinkoSpainXuxue Feng QUALIFIED
Maria MarrierGermanyAmy Elsner QUALIFIED
David DarakjyFranceIoni Bowcher UNQUALIFIED
David DarakjyGermanyIoni Bowcher NEW
Ivar PaprockiAustraliaBernardo Dominic NEW
Aditya KuskoGermanyIvan Magalhaes NEGOTIATION
Costa DilliardFranceElwin Sharvill PROPOSAL
Mayumi KolmetzUnited KingdomIoni Bowcher QUALIFIED
Frozen Columns
Name
Julie Stenseth
Arvin Albares
Wickens Nestle
Jefferson Schemmer
Costa Dilliard
Faith Gillian
Jones Vocelka
David Darakjy
Clifford Rim
Wickens Nestle
Ashley Doe
Aruna Figeroa
Antonio Caudy
Morrow Ruta
Arvin Albares
Jones Vocelka
Ashley Doe
James Butt
Claire Tollner
Maria Marrier
Arvin Albares
Aruna Figeroa
Kadeem Flosi
Faith Gillian
Antonio Caudy
Darci Poquette
Stacey Maclead
Octavia Malet
Claire Tollner
Ivar Paprocki
Jeanfrancois Venere
Antonio Caudy
Ivar Paprocki
Wickens Nestle
Alejandro Perin
Clifford Rim
Costa Dilliard
Juan Wieser
Johnson Sergi
Wickens Nestle
Claire Tollner
Smith Glick
Izzy Garufi
Ashley Doe
Johnson Sergi
Jones Vocelka
Kaitlin Ostrosky
Rodrigues Campain
David Darakjy
Aruna Figeroa
IdCountryDate
1000India2026-04-12
1001Argentina2026-04-19
1002Australia2026-04-17
1003Brazil2026-04-16
1004Argentina2026-04-21
1005Japan2026-05-08
1006United Kingdom2026-05-11
1007Germany2026-05-08
1008Canada2026-05-03
1009Argentina2026-04-23
1010Spain2026-05-07
1011Spain2026-04-19
1012India2026-05-02
1013Japan2026-05-09
1014Canada2026-04-28
1015India2026-04-29
1016India2026-04-24
1017India2026-04-21
1018Australia2026-05-03
1019Russia2026-05-03
1020Brazil2026-04-29
1021Russia2026-05-06
1022Spain2026-05-03
1023Argentina2026-04-28
1024Australia2026-04-29
1025United Kingdom2026-05-11
1026Australia2026-04-27
1027France2026-05-01
1028Spain2026-05-10
1029United Kingdom2026-04-14
1030Japan2026-05-01
1031United Kingdom2026-04-24
1032United Kingdom2026-05-03
1033Japan2026-05-05
1034Italy2026-05-10
1035Canada2026-04-13
1036Italy2026-05-09
1037Italy2026-04-19
1038Canada2026-04-29
1039India2026-04-16
1040France2026-04-27
1041Germany2026-05-01
1042Italy2026-04-12
1043Argentina2026-04-18
1044Argentina2026-04-22
1045Argentina2026-04-17
1046Japan2026-04-16
1047Brazil2026-05-09
1048Brazil2026-04-25
1049United Kingdom2026-04-13

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Italy2026-04-14
Jeanfrancois Venere1001India2026-04-12
Alejandro Perin1002Argentina2026-04-12
Jeanfrancois Venere1003Spain2026-04-15
Maisha Rulapaugh1004Italy2026-05-04
Chavez Briddick1005United Kingdom2026-04-24
Misaki Royster1006United Kingdom2026-04-17
Nicolas Iturbide1007Italy2026-05-03
Ashley Doe1008Australia2026-04-19
Isabel Bowley1009India2026-04-16
Ivar Paprocki1010Argentina2026-04-27
Antonio Caudy1011United Kingdom2026-05-03
Maisha Rulapaugh1012India2026-04-22
Clifford Rim1013Argentina2026-04-30
Tony Foller1014Russia2026-04-14
Octavia Malet1015India2026-04-16
Chavez Briddick1016Argentina2026-04-23
Ivar Paprocki1017Argentina2026-04-24
Murillo Malet1018Italy2026-04-16
Francesco Shinko1019Brazil2026-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerIndiaIoni Bowcher NEGOTIATION
Leon OldroydItalyElwin Sharvill NEW
Aika InouyeItalyAmy Elsner NEGOTIATION
Julie StensethArgentinaAnna Fali PROPOSAL
Greenwood BologniaArgentinaElwin Sharvill NEW
Leja CaldareraAustraliaOnyama Limba QUALIFIED
Aruna FigeroaGermanyAnna Fali NEW
Emily WhobreyGermanyAmy Elsner NEW
Maisha RulapaughItalyAsiya Javayant UNQUALIFIED
Claire TollnerRussiaAmy Elsner QUALIFIED
Sinclair WaycottCanadaElwin Sharvill NEGOTIATION
James ButtIndiaIoni Bowcher NEGOTIATION
Adams MorascaAustraliaAsiya Javayant NEGOTIATION
Octavia MaletUnited KingdomOnyama Limba QUALIFIED
Deepesh ChuiFranceAmy Elsner PROPOSAL
Maisha RulapaughAustraliaAmy Elsner PROPOSAL
Clifford RimCanadaAsiya Javayant NEW
Leon OldroydAustraliaAnna Fali RENEWAL
Isabel BowleyRussiaElwin Sharvill QUALIFIED
Misaki RoysterItalyIvan Magalhaes NEW
Antonio CaudyAustraliaIvan Magalhaes NEW
Johnson SergiBrazilStephen Shaw PROPOSAL
Munro FerenczGermanyOnyama Limba PROPOSAL
Jones VocelkaAustraliaIoni Bowcher QUALIFIED
Aditya KuskoBrazilElwin Sharvill NEGOTIATION
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Kadeem FlosiArgentinaOnyama Limba PROPOSAL
Wickens NestleCanadaIoni Bowcher PROPOSAL
Stacey MacleadIndiaIvan Magalhaes QUALIFIED
Murillo MaletJapanOnyama Limba QUALIFIED
Misaki RoysterCanadaOnyama Limba NEW
Arvin AlbaresFranceElwin Sharvill NEW
Emily WhobreyCanadaAnna Fali UNQUALIFIED
Chavez BriddickFranceIoni Bowcher RENEWAL
Aditya KuskoAustraliaAsiya Javayant QUALIFIED
Ricardo GauchoCanadaBernardo Dominic RENEWAL
Tony FollerItalyAnna Fali PROPOSAL
Antonio CaudyArgentinaXuxue Feng UNQUALIFIED
Mujtaba NickaBrazilXuxue Feng 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>