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
Morrow RutaCanadaBernardo Dominic UNQUALIFIED
Arvin AlbaresSpainOnyama Limba RENEWAL
David DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Greenwood BologniaItalyOnyama Limba RENEWAL
Darci PoquetteArgentinaAsiya Javayant QUALIFIED
Ashley DoeSpainAsiya Javayant RENEWAL
Arvin AlbaresAustraliaIvan Magalhaes RENEWAL
Antonio CaudyGermanyStephen Shaw UNQUALIFIED
Alejandro PerinGermanyXuxue Feng PROPOSAL
Ashley DoeRussiaStephen Shaw QUALIFIED
Wickens NestleAustraliaIoni Bowcher RENEWAL
Isabel BowleyFranceBernardo Dominic QUALIFIED
Jones VocelkaRussiaBernardo Dominic UNQUALIFIED
Antonio CaudyBrazilAnna Fali PROPOSAL
Wickens NestleJapanBernardo Dominic NEGOTIATION
Faith GillianItalyAsiya Javayant NEW
Isabel BowleyUnited KingdomOnyama Limba UNQUALIFIED
Aditya KuskoSpainOnyama Limba RENEWAL
Morrow RutaFranceOnyama Limba NEW
Maria MarrierGermanyBernardo Dominic PROPOSAL
Alejandro PerinSpainIvan Magalhaes NEW
Morrow RutaSpainAmy Elsner QUALIFIED
Jennifer AmigonRussiaElwin Sharvill PROPOSAL
Sinclair WaycottGermanyStephen Shaw RENEWAL
Maria MarrierAustraliaAmy Elsner RENEWAL
David DarakjyUnited KingdomXuxue Feng QUALIFIED
Clifford RimAustraliaAnna Fali RENEWAL
Maisha RulapaughGermanyXuxue Feng RENEWAL
Ashley DoeGermanyIoni Bowcher UNQUALIFIED
Kaitlin OstroskyIndiaOnyama Limba QUALIFIED
Chavez BriddickAustraliaAmy Elsner NEGOTIATION
Arvin AlbaresArgentinaAsiya Javayant UNQUALIFIED
Leja CaldareraSpainXuxue Feng UNQUALIFIED
Juan WieserFranceAnna Fali UNQUALIFIED
Ricardo GauchoRussiaAsiya Javayant QUALIFIED
Rodrigues CampainArgentinaAsiya Javayant PROPOSAL
Aruna FigeroaArgentinaAmy Elsner RENEWAL
Ashley DoeJapanXuxue Feng PROPOSAL
Emily WhobreyIndiaAmy Elsner RENEWAL
Alejandro PerinGermanyIoni Bowcher RENEWAL
Octavia MaletSpainXuxue Feng QUALIFIED
Salvatore StockhamIndiaStephen Shaw UNQUALIFIED
Leon OldroydArgentinaIoni Bowcher QUALIFIED
Francesco ShinkoSpainOnyama Limba NEW
Cody SaylorsBrazilAsiya Javayant NEW
Munro FerenczFranceAnna Fali UNQUALIFIED
Clifford RimRussiaBernardo Dominic RENEWAL
Stacey MacleadJapanAnna Fali PROPOSAL
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Aruna FigeroaAustraliaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaUnited KingdomAsiya Javayant NEGOTIATION
Morrow RutaCanadaOnyama Limba QUALIFIED
Izzy GarufiJapanAmy Elsner RENEWAL
Munro FerenczUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois VenereJapanOnyama Limba QUALIFIED
Munro FerenczGermanyBernardo Dominic PROPOSAL
Stacey MacleadCanadaIoni Bowcher UNQUALIFIED
Francesco ShinkoFranceIvan Magalhaes RENEWAL
Rodrigues CampainAustraliaBernardo Dominic QUALIFIED
Sinclair WaycottGermanyAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereCanada2026-05-24Printing Dimensions NEGOTIATION83Amy Elsner
1001Antonio CaudyJapan2026-05-02King, Christopher A Esq PROPOSAL79Anna Fali
1002Jennifer AmigonArgentina2026-05-16Dorl, James J Esq UNQUALIFIED29Asiya Javayant
1003Kadeem FlosiIndia2026-04-28Feltz Printing Service QUALIFIED39Stephen Shaw
1004Julie StensethGermany2026-05-05King, Christopher A Esq NEW35Onyama Limba
1005Izzy GarufiCanada2026-05-18Benton, John B Jr RENEWAL66Amy Elsner
1006Clifford RimSpain2026-05-16King, Christopher A Esq QUALIFIED17Onyama Limba
1007Leon OldroydAustralia2026-04-30Truhlar And Truhlar Attys RENEWAL62Ioni Bowcher
1008Deepesh ChuiIndia2026-04-27Rangoni Of Florence QUALIFIED46Bernardo Dominic
1009Ricardo GauchoGermany2026-05-16Rangoni Of Florence UNQUALIFIED35Stephen Shaw
1010Faith GillianItaly2026-05-14Morlong Associates NEGOTIATION20Bernardo Dominic
1011Isabel BowleyGermany2026-05-25Chanay, Jeffrey A Esq QUALIFIED44Elwin Sharvill
1012Stacey MacleadGermany2026-05-06Dorl, James J Esq QUALIFIED70Bernardo Dominic
1013Izzy GarufiJapan2026-05-14Printing Dimensions QUALIFIED17Asiya Javayant
1014Clifford RimCanada2026-05-23Morlong Associates PROPOSAL20Xuxue Feng
1015Izzy GarufiArgentina2026-05-11Commercial Press QUALIFIED68Xuxue Feng
1016Mayumi KolmetzJapan2026-05-21King, Christopher A Esq RENEWAL41Bernardo Dominic
1017Leja CaldareraGermany2026-05-17Feltz Printing Service QUALIFIED30Elwin Sharvill
1018Jones VocelkaJapan2026-05-14Rangoni Of Florence RENEWAL49Asiya Javayant
1019Isabel BowleyIndia2026-05-11Rousseaux, Michael Esq NEGOTIATION76Xuxue Feng
1020Deepesh ChuiBrazil2026-05-01Feltz Printing Service QUALIFIED13Elwin Sharvill
1021Darci PoquetteItaly2026-05-05Feiner Bros UNQUALIFIED47Amy Elsner
1022Murillo MaletSpain2026-05-14Chanay, Jeffrey A Esq NEW60Ivan Magalhaes
1023Sinclair WaycottItaly2026-05-01Rousseaux, Michael Esq PROPOSAL88Amy Elsner
1024Arvin AlbaresItaly2026-05-10Chanay, Jeffrey A Esq RENEWAL49Bernardo Dominic
1025Greenwood BologniaJapan2026-05-22King, Christopher A Esq UNQUALIFIED90Stephen Shaw
1026Aruna FigeroaIndia2026-05-04King, Christopher A Esq PROPOSAL61Bernardo Dominic
1027Adams MorascaItaly2026-04-28Commercial Press NEGOTIATION15Anna Fali
1028Antonio CaudyCanada2026-05-23Chemel, James L Cpa PROPOSAL22Ioni Bowcher
1029David DarakjyJapan2026-05-23Chapman, Ross E Esq NEW27Ivan Magalhaes
1030Jennifer AmigonGermany2026-05-19Feltz Printing Service PROPOSAL49Bernardo Dominic
1031Wickens NestleBrazil2026-05-22Dorl, James J Esq RENEWAL34Ivan Magalhaes
1032Darci PoquetteItaly2026-05-13Feltz Printing Service QUALIFIED83Anna Fali
1033Wickens NestleIndia2026-05-16Chemel, James L Cpa QUALIFIED44Ioni Bowcher
1034Cody SaylorsArgentina2026-05-12Truhlar And Truhlar Attys NEGOTIATION84Asiya Javayant
1035Maria MarrierItaly2026-05-20Printing Dimensions QUALIFIED97Ioni Bowcher
1036Ivar PaprockiUnited Kingdom2026-05-23Feiner Bros NEGOTIATION58Anna Fali
1037Faith GillianArgentina2026-05-18Chapman, Ross E Esq NEW70Xuxue Feng
1038Aika InouyeIndia2026-05-01Chapman, Ross E Esq UNQUALIFIED94Anna Fali
1039Maisha RulapaughBrazil2026-05-14Dorl, James J Esq QUALIFIED41Anna Fali
1040Antonio CaudyFrance2026-05-02Dorl, James J Esq RENEWAL8Onyama Limba
1041Deepesh ChuiGermany2026-05-24Morlong Associates PROPOSAL52Xuxue Feng
1042Deepesh ChuiFrance2026-05-25Commercial Press QUALIFIED34Onyama Limba
1043Wickens NestleCanada2026-05-10Rangoni Of Florence NEW33Onyama Limba
1044Rodrigues CampainRussia2026-05-20Buckley Miller Wright RENEWAL3Amy Elsner
1045Leon OldroydIndia2026-05-19Feltz Printing Service NEGOTIATION71Anna Fali
1046Isabel BowleyIndia2026-05-17Morlong Associates RENEWAL73Ivan Magalhaes
1047Morrow RutaIndia2026-05-11Benton, John B Jr NEGOTIATION19Bernardo Dominic
1048Tony FollerArgentina2026-04-29Morlong Associates RENEWAL80Ivan Magalhaes
1049Salvatore StockhamUnited Kingdom2026-05-11Commercial Press RENEWAL86Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair WaycottItalyElwin Sharvill RENEWAL
Jefferson SchemmerFranceOnyama Limba NEGOTIATION
Salvatore StockhamItalyIvan Magalhaes RENEWAL
Adams MorascaUnited KingdomBernardo Dominic NEW
David DarakjyAustraliaAnna Fali UNQUALIFIED
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Ricardo GauchoItalyXuxue Feng RENEWAL
Munro FerenczSpainXuxue Feng UNQUALIFIED
Kadeem FlosiUnited KingdomXuxue Feng NEGOTIATION
Ashley DoeArgentinaAsiya Javayant QUALIFIED
Maria MarrierSpainOnyama Limba NEW
Salvatore StockhamFranceXuxue Feng NEW
Ivar PaprockiBrazilAnna Fali RENEWAL
Nicolas IturbideFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereArgentinaOnyama Limba RENEWAL
Izzy GarufiFranceIoni Bowcher NEGOTIATION
Costa DilliardUnited KingdomAsiya Javayant NEW
Jefferson SchemmerAustraliaIoni Bowcher NEGOTIATION
Morrow RutaArgentinaOnyama Limba PROPOSAL
Leon OldroydArgentinaIoni Bowcher NEGOTIATION
Izzy GarufiFranceIoni Bowcher NEW
Cody SaylorsFranceAnna Fali QUALIFIED
David DarakjyArgentinaAmy Elsner RENEWAL
Tony FollerFranceIvan Magalhaes NEW
Nicolas IturbideSpainStephen Shaw UNQUALIFIED
David DarakjyUnited KingdomAmy Elsner NEW
Johnson SergiIndiaIoni Bowcher QUALIFIED
Aditya KuskoGermanyElwin Sharvill NEGOTIATION
Morrow RutaFranceXuxue Feng NEGOTIATION
Mujtaba NickaFranceElwin Sharvill NEGOTIATION
Murillo MaletBrazilIoni Bowcher NEGOTIATION
Johnson SergiArgentinaXuxue Feng RENEWAL
Arvin AlbaresArgentinaOnyama Limba QUALIFIED
Leja CaldareraCanadaElwin Sharvill RENEWAL
Kadeem FlosiArgentinaAsiya Javayant QUALIFIED
Mujtaba NickaGermanyBernardo Dominic UNQUALIFIED
James ButtIndiaIvan Magalhaes RENEWAL
Tony FollerRussiaOnyama Limba UNQUALIFIED
Leon OldroydBrazilElwin Sharvill NEW
Misaki RoysterGermanyStephen Shaw NEW
Smith GlickBrazilBernardo Dominic RENEWAL
Cody SaylorsAustraliaAnna Fali QUALIFIED
Costa DilliardItalyOnyama Limba NEGOTIATION
Johnson SergiFranceIoni Bowcher RENEWAL
Juan WieserFranceIoni Bowcher NEW
Murillo MaletArgentinaIoni Bowcher RENEWAL
Kaitlin OstroskyRussiaOnyama Limba RENEWAL
Francesco ShinkoUnited KingdomBernardo Dominic NEW
Adams MorascaRussiaOnyama Limba NEGOTIATION
David DarakjyBrazilBernardo Dominic PROPOSAL
Frozen Columns
Name
Kadeem Flosi
Maria Marrier
Julie Stenseth
Jefferson Schemmer
Maria Marrier
Maria Marrier
Izzy Garufi
Kadeem Flosi
Alejandro Perin
Darci Poquette
Misaki Royster
Wickens Nestle
Stacey Maclead
Faith Gillian
Aditya Kusko
Julie Stenseth
Octavia Malet
Isabel Bowley
Julie Stenseth
James Butt
Aditya Kusko
Jeanfrancois Venere
Morrow Ruta
Ricardo Gaucho
Alejandro Perin
Kaitlin Ostrosky
Munro Ferencz
Ricardo Gaucho
Ashley Doe
Stacey Maclead
Alejandro Perin
Nicolas Iturbide
Leja Caldarera
Munro Ferencz
Misaki Royster
Sinclair Waycott
Tony Foller
Mayumi Kolmetz
Silvio Slusarski
Clifford Rim
Silvio Slusarski
Salvatore Stockham
Rodrigues Campain
Kaitlin Ostrosky
Jeanfrancois Venere
Stacey Maclead
Clifford Rim
Silvio Slusarski
Ivar Paprocki
Izzy Garufi
IdCountryDate
1000United Kingdom2026-04-28
1001Canada2026-05-17
1002Brazil2026-05-12
1003Spain2026-05-12
1004Spain2026-05-07
1005Australia2026-04-28
1006Russia2026-05-12
1007Canada2026-05-07
1008Canada2026-05-17
1009Brazil2026-05-05
1010Argentina2026-04-26
1011Russia2026-04-26
1012United Kingdom2026-05-16
1013Argentina2026-04-28
1014Italy2026-04-26
1015France2026-05-23
1016Argentina2026-05-16
1017United Kingdom2026-05-19
1018United Kingdom2026-05-21
1019United Kingdom2026-05-12
1020Russia2026-05-18
1021France2026-05-02
1022United Kingdom2026-05-12
1023Germany2026-05-15
1024Brazil2026-04-26
1025Germany2026-05-14
1026Canada2026-05-21
1027Russia2026-05-13
1028Italy2026-05-02
1029Germany2026-05-07
1030Germany2026-05-04
1031Germany2026-05-06
1032Spain2026-04-27
1033Italy2026-04-26
1034Japan2026-05-09
1035Italy2026-05-05
1036Australia2026-05-20
1037Brazil2026-05-21
1038Australia2026-05-10
1039Canada2026-05-21
1040Argentina2026-05-14
1041Italy2026-04-29
1042Germany2026-05-03
1043Spain2026-05-25
1044France2026-05-04
1045Spain2026-05-09
1046Russia2026-05-15
1047Spain2026-04-28
1048Germany2026-05-25
1049Australia2026-05-07

On-Demand Data

NameIdCountryDate
Darci Poquette1000Germany2026-05-03
Chavez Briddick1001Russia2026-05-17
Deepesh Chui1002India2026-05-14
Deepesh Chui1003Argentina2026-05-07
Emily Whobrey1004Spain2026-05-06
Francesco Shinko1005Germany2026-04-27
Chavez Briddick1006Russia2026-05-21
Salvatore Stockham1007Italy2026-05-13
Jones Vocelka1008Germany2026-05-17
Greenwood Bolognia1009Spain2026-05-19
Aditya Kusko1010Germany2026-05-24
Mayumi Kolmetz1011Argentina2026-05-09
Leja Caldarera1012India2026-05-07
Deepesh Chui1013Japan2026-04-30
Morrow Ruta1014Brazil2026-04-29
Maria Marrier1015Germany2026-05-18
Darci Poquette1016United Kingdom2026-04-30
Ashley Doe1017Italy2026-05-09
Octavia Malet1018Russia2026-05-19
Morrow Ruta1019Italy2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiRussiaBernardo Dominic NEW
Antonio CaudyCanadaElwin Sharvill PROPOSAL
Darci PoquetteBrazilBernardo Dominic QUALIFIED
Ricardo GauchoCanadaIvan Magalhaes RENEWAL
Kadeem FlosiAustraliaAnna Fali NEGOTIATION
Clifford RimJapanElwin Sharvill UNQUALIFIED
James ButtAustraliaOnyama Limba QUALIFIED
Kaitlin OstroskyCanadaAmy Elsner QUALIFIED
Morrow RutaBrazilAmy Elsner NEW
Jennifer AmigonArgentinaAnna Fali UNQUALIFIED
Munro FerenczItalyBernardo Dominic RENEWAL
Silvio SlusarskiBrazilBernardo Dominic NEGOTIATION
Faith GillianJapanStephen Shaw RENEWAL
Leja CaldareraGermanyAsiya Javayant NEW
Octavia MaletUnited KingdomStephen Shaw NEGOTIATION
Aditya KuskoCanadaElwin Sharvill RENEWAL
Julie StensethBrazilAmy Elsner QUALIFIED
Chavez BriddickCanadaAsiya Javayant PROPOSAL
Arvin AlbaresSpainAmy Elsner UNQUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Murillo MaletCanadaStephen Shaw NEW
Jeanfrancois VenereIndiaElwin Sharvill NEGOTIATION
Francesco ShinkoIndiaAmy Elsner UNQUALIFIED
Leon OldroydArgentinaStephen Shaw PROPOSAL
Clifford RimUnited KingdomElwin Sharvill UNQUALIFIED
Ashley DoeJapanStephen Shaw NEW
Rodrigues CampainBrazilOnyama Limba NEGOTIATION
Alejandro PerinAustraliaAsiya Javayant UNQUALIFIED
Jennifer AmigonItalyOnyama Limba RENEWAL
Isabel BowleyUnited KingdomXuxue Feng NEW
Aika InouyeJapanIvan Magalhaes UNQUALIFIED
Deepesh ChuiCanadaXuxue Feng PROPOSAL
Francesco ShinkoUnited KingdomIoni Bowcher PROPOSAL
Cody SaylorsRussiaIvan Magalhaes PROPOSAL
Alejandro PerinUnited KingdomAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson SchemmerItalyStephen Shaw PROPOSAL
Isabel BowleyAustraliaBernardo Dominic RENEWAL
Adams MorascaArgentinaAmy Elsner PROPOSAL
Juan WieserAustraliaOnyama Limba 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>