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
Claire TollnerArgentinaXuxue Feng NEW
Arvin AlbaresSpainIoni Bowcher QUALIFIED
Kaitlin OstroskyCanadaElwin Sharvill NEGOTIATION
Octavia MaletBrazilElwin Sharvill NEGOTIATION
Sinclair WaycottBrazilXuxue Feng NEW
Cody SaylorsFranceAmy Elsner PROPOSAL
Costa DilliardGermanyAsiya Javayant RENEWAL
Faith GillianIndiaStephen Shaw RENEWAL
Cody SaylorsGermanyElwin Sharvill PROPOSAL
Aika InouyeRussiaBernardo Dominic QUALIFIED
Nicolas IturbideBrazilIoni Bowcher RENEWAL
Sinclair WaycottUnited KingdomXuxue Feng RENEWAL
Mayumi KolmetzAustraliaStephen Shaw QUALIFIED
Octavia MaletBrazilAmy Elsner NEW
Mayumi KolmetzItalyAsiya Javayant UNQUALIFIED
Clifford RimJapanOnyama Limba UNQUALIFIED
Nicolas IturbideFranceAnna Fali NEGOTIATION
Misaki RoysterArgentinaAsiya Javayant QUALIFIED
Mayumi KolmetzArgentinaElwin Sharvill UNQUALIFIED
Claire TollnerBrazilStephen Shaw UNQUALIFIED
James ButtJapanAmy Elsner NEGOTIATION
Rodrigues CampainJapanElwin Sharvill NEGOTIATION
Faith GillianCanadaIvan Magalhaes PROPOSAL
Francesco ShinkoCanadaIoni Bowcher PROPOSAL
Mujtaba NickaGermanyXuxue Feng NEGOTIATION
Arvin AlbaresGermanyBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomAsiya Javayant RENEWAL
Izzy GarufiRussiaIoni Bowcher QUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues CampainJapanIvan Magalhaes PROPOSAL
Alejandro PerinSpainOnyama Limba QUALIFIED
Jennifer AmigonAustraliaIvan Magalhaes NEW
Emily WhobreyJapanBernardo Dominic QUALIFIED
Misaki RoysterGermanyAnna Fali UNQUALIFIED
Aika InouyeUnited KingdomElwin Sharvill NEW
Salvatore StockhamFranceAsiya Javayant NEW
James ButtFranceIvan Magalhaes PROPOSAL
Isabel BowleySpainOnyama Limba NEGOTIATION
Misaki RoysterBrazilIoni Bowcher PROPOSAL
Clifford RimRussiaAnna Fali PROPOSAL
Aika InouyeSpainXuxue Feng NEW
Nicolas IturbideFranceAnna Fali RENEWAL
Jefferson SchemmerFranceOnyama Limba UNQUALIFIED
Kaitlin OstroskyCanadaOnyama Limba NEGOTIATION
Claire TollnerJapanAsiya Javayant NEGOTIATION
Mayumi KolmetzFranceAmy Elsner UNQUALIFIED
Alejandro PerinArgentinaOnyama Limba NEGOTIATION
Sinclair WaycottRussiaAsiya Javayant NEGOTIATION
Mayumi KolmetzFranceAsiya Javayant NEGOTIATION
Tony FollerBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiSpainAnna Fali NEGOTIATION
Jennifer AmigonItalyIoni Bowcher NEGOTIATION
Aruna FigeroaBrazilIvan Magalhaes NEGOTIATION
Greenwood BologniaSpainBernardo Dominic PROPOSAL
Faith GillianFranceAnna Fali RENEWAL
Jefferson SchemmerFranceAsiya Javayant RENEWAL
Julie StensethItalyIvan Magalhaes PROPOSAL
Murillo MaletBrazilStephen Shaw UNQUALIFIED
Johnson SergiJapanStephen Shaw NEGOTIATION
Tony FollerJapanOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickIndia2026-04-21Feltz Printing Service PROPOSAL15Elwin Sharvill
1001Tony FollerCanada2026-04-22Chemel, James L Cpa QUALIFIED87Anna Fali
1002Ricardo GauchoJapan2026-04-22Chanay, Jeffrey A Esq NEW23Bernardo Dominic
1003Juan WieserUnited Kingdom2026-05-16Dorl, James J Esq UNQUALIFIED78Asiya Javayant
1004Smith GlickItaly2026-05-04Benton, John B Jr NEGOTIATION15Ivan Magalhaes
1005Ashley DoeIndia2026-05-02Chemel, James L Cpa QUALIFIED39Amy Elsner
1006Morrow RutaFrance2026-04-27Commercial Press NEW28Bernardo Dominic
1007Alejandro PerinSpain2026-04-21Rousseaux, Michael Esq PROPOSAL27Ioni Bowcher
1008Antonio CaudyUnited Kingdom2026-05-15Dorl, James J Esq UNQUALIFIED94Onyama Limba
1009Ivar PaprockiUnited Kingdom2026-04-29Benton, John B Jr QUALIFIED37Amy Elsner
1010Greenwood BologniaUnited Kingdom2026-04-23Feiner Bros NEW14Anna Fali
1011Kaitlin OstroskyIndia2026-04-27Feiner Bros QUALIFIED56Elwin Sharvill
1012Misaki RoysterCanada2026-05-13Truhlar And Truhlar Attys NEGOTIATION35Elwin Sharvill
1013Rodrigues CampainGermany2026-04-21Chanay, Jeffrey A Esq PROPOSAL42Elwin Sharvill
1014Arvin AlbaresItaly2026-05-13Chapman, Ross E Esq PROPOSAL78Ivan Magalhaes
1015Emily WhobreyFrance2026-05-10Commercial Press NEW81Xuxue Feng
1016Morrow RutaItaly2026-05-13Commercial Press PROPOSAL53Elwin Sharvill
1017Deepesh ChuiSpain2026-05-15Dorl, James J Esq NEGOTIATION25Anna Fali
1018James ButtArgentina2026-05-04Benton, John B Jr QUALIFIED23Ioni Bowcher
1019Ashley DoeBrazil2026-04-30Chapman, Ross E Esq RENEWAL18Anna Fali
1020Maisha RulapaughArgentina2026-05-07Dorl, James J Esq NEGOTIATION83Asiya Javayant
1021Sinclair WaycottJapan2026-04-30Feiner Bros NEW98Anna Fali
1022Leon OldroydBrazil2026-05-07Truhlar And Truhlar Attys RENEWAL72Ivan Magalhaes
1023Rodrigues CampainSpain2026-05-07Commercial Press QUALIFIED38Asiya Javayant
1024Kaitlin OstroskyCanada2026-05-15Truhlar And Truhlar Attys NEGOTIATION55Xuxue Feng
1025Clifford RimArgentina2026-05-14Chapman, Ross E Esq PROPOSAL51Ivan Magalhaes
1026Chavez BriddickBrazil2026-04-30Chapman, Ross E Esq PROPOSAL14Elwin Sharvill
1027Claire TollnerItaly2026-05-13Printing Dimensions NEGOTIATION17Amy Elsner
1028Arvin AlbaresUnited Kingdom2026-05-08Commercial Press NEW51Stephen Shaw
1029Claire TollnerRussia2026-05-15Feiner Bros NEW63Bernardo Dominic
1030Aditya KuskoArgentina2026-04-27Chanay, Jeffrey A Esq RENEWAL78Asiya Javayant
1031Wickens NestleGermany2026-04-29Truhlar And Truhlar Attys QUALIFIED23Ivan Magalhaes
1032Sinclair WaycottItaly2026-05-02Chanay, Jeffrey A Esq RENEWAL53Bernardo Dominic
1033Jeanfrancois VenereJapan2026-05-07Chanay, Jeffrey A Esq QUALIFIED11Asiya Javayant
1034Nicolas IturbideGermany2026-05-04Dorl, James J Esq QUALIFIED4Bernardo Dominic
1035Munro FerenczArgentina2026-05-05Benton, John B Jr NEW55Anna Fali
1036Kadeem FlosiUnited Kingdom2026-05-13Rangoni Of Florence UNQUALIFIED16Asiya Javayant
1037Arvin AlbaresAustralia2026-05-09Truhlar And Truhlar Attys RENEWAL50Stephen Shaw
1038Arvin AlbaresIndia2026-04-24Morlong Associates UNQUALIFIED4Xuxue Feng
1039Izzy GarufiUnited Kingdom2026-04-18Commercial Press NEW81Stephen Shaw
1040Deepesh ChuiJapan2026-05-10Chapman, Ross E Esq NEW14Anna Fali
1041Munro FerenczRussia2026-04-18Rousseaux, Michael Esq PROPOSAL89Amy Elsner
1042Aika InouyeAustralia2026-05-04King, Christopher A Esq PROPOSAL24Anna Fali
1043Jeanfrancois VenereBrazil2026-05-14Rousseaux, Michael Esq UNQUALIFIED10Asiya Javayant
1044Maisha RulapaughCanada2026-04-18Morlong Associates NEGOTIATION69Stephen Shaw
1045Nicolas IturbideCanada2026-04-22Feiner Bros UNQUALIFIED90Asiya Javayant
1046Kaitlin OstroskyJapan2026-04-22Morlong Associates UNQUALIFIED90Onyama Limba
1047James ButtCanada2026-04-27Chanay, Jeffrey A Esq RENEWAL35Asiya Javayant
1048Munro FerenczGermany2026-04-24Commercial Press RENEWAL48Bernardo Dominic
1049Ivar PaprockiUnited Kingdom2026-05-14Rangoni Of Florence NEGOTIATION93Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoItalyIvan Magalhaes NEW
Salvatore StockhamCanadaAsiya Javayant NEW
Wickens NestleArgentinaElwin Sharvill QUALIFIED
Aika InouyeArgentinaAsiya Javayant NEW
Aruna FigeroaArgentinaStephen Shaw UNQUALIFIED
Aika InouyeJapanXuxue Feng NEGOTIATION
Izzy GarufiRussiaElwin Sharvill PROPOSAL
Arvin AlbaresGermanyAnna Fali NEGOTIATION
David DarakjyUnited KingdomAsiya Javayant PROPOSAL
Mujtaba NickaFranceAmy Elsner NEW
Johnson SergiSpainXuxue Feng NEGOTIATION
Sinclair WaycottGermanyAnna Fali PROPOSAL
Claire TollnerIndiaIvan Magalhaes NEGOTIATION
David DarakjyIndiaAsiya Javayant QUALIFIED
Tony FollerUnited KingdomElwin Sharvill NEGOTIATION
Aditya KuskoSpainElwin Sharvill PROPOSAL
Antonio CaudyArgentinaAsiya Javayant NEW
Johnson SergiArgentinaAsiya Javayant NEGOTIATION
Maisha RulapaughAustraliaAmy Elsner RENEWAL
Munro FerenczIndiaAmy Elsner RENEWAL
Kaitlin OstroskyJapanElwin Sharvill QUALIFIED
Adams MorascaJapanAnna Fali RENEWAL
Ricardo GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Ivar PaprockiSpainAsiya Javayant RENEWAL
Aditya KuskoBrazilAsiya Javayant QUALIFIED
Francesco ShinkoFranceOnyama Limba PROPOSAL
Claire TollnerAustraliaAnna Fali QUALIFIED
Misaki RoysterJapanXuxue Feng RENEWAL
Aika InouyeFranceIvan Magalhaes RENEWAL
Chavez BriddickAustraliaAsiya Javayant NEW
Ivar PaprockiRussiaAmy Elsner RENEWAL
Costa DilliardGermanyXuxue Feng RENEWAL
Ashley DoeFranceBernardo Dominic NEW
Greenwood BologniaArgentinaOnyama Limba NEGOTIATION
Leon OldroydRussiaAsiya Javayant PROPOSAL
Wickens NestleBrazilAmy Elsner PROPOSAL
Juan WieserFranceXuxue Feng QUALIFIED
Jefferson SchemmerJapanIoni Bowcher NEW
Mayumi KolmetzArgentinaAsiya Javayant UNQUALIFIED
Ashley DoeUnited KingdomXuxue Feng NEGOTIATION
Johnson SergiFranceXuxue Feng NEGOTIATION
Emily WhobreyAustraliaAnna Fali RENEWAL
Costa DilliardJapanAnna Fali NEW
Kaitlin OstroskySpainElwin Sharvill RENEWAL
Kadeem FlosiUnited KingdomElwin Sharvill RENEWAL
Darci PoquetteIndiaAmy Elsner NEW
Ashley DoeRussiaIoni Bowcher NEGOTIATION
Costa DilliardUnited KingdomAnna Fali RENEWAL
Ricardo GauchoAustraliaIoni Bowcher QUALIFIED
Leon OldroydRussiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Aruna Figeroa
Julie Stenseth
Morrow Ruta
Nicolas Iturbide
Rodrigues Campain
Costa Dilliard
Chavez Briddick
Darci Poquette
Mujtaba Nicka
Aditya Kusko
Misaki Royster
Munro Ferencz
Kadeem Flosi
Jeanfrancois Venere
Deepesh Chui
Clifford Rim
Jeanfrancois Venere
Claire Tollner
Arvin Albares
Costa Dilliard
Alejandro Perin
Faith Gillian
Murillo Malet
Salvatore Stockham
Mujtaba Nicka
Munro Ferencz
Adams Morasca
Morrow Ruta
Darci Poquette
Tony Foller
Morrow Ruta
Munro Ferencz
Stacey Maclead
Francesco Shinko
Jones Vocelka
Isabel Bowley
Morrow Ruta
Isabel Bowley
Ivar Paprocki
James Butt
Morrow Ruta
Silvio Slusarski
Antonio Caudy
Darci Poquette
Alejandro Perin
Ricardo Gaucho
Chavez Briddick
Jefferson Schemmer
Smith Glick
Izzy Garufi
IdCountryDate
1000Spain2026-05-11
1001Argentina2026-05-11
1002United Kingdom2026-05-08
1003France2026-04-18
1004Argentina2026-04-26
1005Canada2026-04-21
1006Spain2026-05-11
1007Italy2026-05-03
1008Argentina2026-05-09
1009France2026-04-30
1010France2026-05-13
1011Russia2026-04-30
1012Canada2026-04-27
1013Russia2026-05-01
1014Spain2026-04-26
1015India2026-05-13
1016Spain2026-05-05
1017United Kingdom2026-05-07
1018Canada2026-05-14
1019Japan2026-05-03
1020Spain2026-04-20
1021Japan2026-05-06
1022Australia2026-05-06
1023Japan2026-04-22
1024France2026-05-14
1025Germany2026-04-20
1026United Kingdom2026-04-21
1027Australia2026-05-14
1028Italy2026-04-27
1029Russia2026-05-13
1030France2026-05-16
1031France2026-05-06
1032Argentina2026-05-12
1033Brazil2026-05-10
1034Italy2026-05-07
1035India2026-05-13
1036Italy2026-05-11
1037Germany2026-05-06
1038Italy2026-05-10
1039India2026-05-09
1040United Kingdom2026-05-08
1041United Kingdom2026-05-12
1042United Kingdom2026-05-11
1043Russia2026-04-22
1044Italy2026-04-30
1045Spain2026-05-05
1046Australia2026-04-20
1047Russia2026-05-12
1048Brazil2026-04-24
1049France2026-04-23

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000Italy2026-05-05
Julie Stenseth1001Spain2026-05-04
Alejandro Perin1002Canada2026-05-02
Jefferson Schemmer1003Germany2026-04-28
Arvin Albares1004Germany2026-05-14
Alejandro Perin1005India2026-04-27
Ricardo Gaucho1006Russia2026-05-14
Darci Poquette1007Russia2026-05-11
Leja Caldarera1008Canada2026-04-26
Greenwood Bolognia1009Italy2026-05-10
Morrow Ruta1010Japan2026-05-06
Francesco Shinko1011India2026-05-11
Murillo Malet1012Argentina2026-05-15
Alejandro Perin1013Italy2026-04-19
Jeanfrancois Venere1014Italy2026-04-27
Sinclair Waycott1015Japan2026-05-10
Jeanfrancois Venere1016India2026-05-06
Sinclair Waycott1017Canada2026-04-17
Silvio Slusarski1018France2026-05-10
Tony Foller1019United Kingdom2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzRussiaBernardo Dominic NEGOTIATION
Morrow RutaArgentinaXuxue Feng PROPOSAL
Chavez BriddickArgentinaXuxue Feng PROPOSAL
Kadeem FlosiArgentinaOnyama Limba QUALIFIED
Juan WieserArgentinaAsiya Javayant PROPOSAL
Ashley DoeAustraliaAnna Fali QUALIFIED
Cody SaylorsItalyElwin Sharvill UNQUALIFIED
Ricardo GauchoUnited KingdomElwin Sharvill QUALIFIED
Stacey MacleadItalyAnna Fali PROPOSAL
Morrow RutaCanadaIoni Bowcher NEW
Ashley DoeFranceStephen Shaw QUALIFIED
Adams MorascaAustraliaIvan Magalhaes PROPOSAL
Ricardo GauchoUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleBrazilIoni Bowcher RENEWAL
Munro FerenczRussiaAsiya Javayant RENEWAL
Leon OldroydUnited KingdomAsiya Javayant RENEWAL
Johnson SergiSpainAsiya Javayant QUALIFIED
Mayumi KolmetzRussiaBernardo Dominic QUALIFIED
Alejandro PerinIndiaOnyama Limba NEW
Greenwood BologniaAustraliaStephen Shaw NEW
Aditya KuskoSpainBernardo Dominic PROPOSAL
Costa DilliardItalyStephen Shaw NEGOTIATION
Cody SaylorsUnited KingdomBernardo Dominic PROPOSAL
Darci PoquetteIndiaOnyama Limba QUALIFIED
Kaitlin OstroskyIndiaAmy Elsner RENEWAL
Antonio CaudyFranceAnna Fali NEGOTIATION
Nicolas IturbideUnited KingdomAsiya Javayant NEW
Johnson SergiBrazilStephen Shaw RENEWAL
Cody SaylorsGermanyOnyama Limba QUALIFIED
Ashley DoeFranceStephen Shaw PROPOSAL
Kadeem FlosiSpainXuxue Feng NEW
Kadeem FlosiFranceElwin Sharvill RENEWAL
Murillo MaletAustraliaBernardo Dominic PROPOSAL
Ivar PaprockiAustraliaXuxue Feng NEGOTIATION
Wickens NestleSpainAsiya Javayant PROPOSAL
Wickens NestleFranceElwin Sharvill RENEWAL
Leon OldroydRussiaIoni Bowcher NEW
Clifford RimArgentinaIvan Magalhaes RENEWAL
Deepesh ChuiAustraliaElwin Sharvill PROPOSAL
Octavia MaletGermanyAnna Fali QUALIFIED

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