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
Chavez BriddickRussiaIvan Magalhaes PROPOSAL
Jones VocelkaArgentinaAmy Elsner UNQUALIFIED
David DarakjySpainStephen Shaw UNQUALIFIED
Octavia MaletUnited KingdomBernardo Dominic PROPOSAL
Deepesh ChuiBrazilAmy Elsner UNQUALIFIED
Leja CaldareraGermanyAnna Fali PROPOSAL
Mayumi KolmetzArgentinaElwin Sharvill NEW
Aruna FigeroaCanadaOnyama Limba QUALIFIED
Cody SaylorsItalyAnna Fali PROPOSAL
Jones VocelkaIndiaAmy Elsner PROPOSAL
Cody SaylorsArgentinaAsiya Javayant NEGOTIATION
Juan WieserUnited KingdomBernardo Dominic RENEWAL
Silvio SlusarskiSpainAmy Elsner UNQUALIFIED
Aruna FigeroaFranceAnna Fali RENEWAL
Salvatore StockhamGermanyOnyama Limba UNQUALIFIED
Leon OldroydUnited KingdomStephen Shaw NEW
Mujtaba NickaCanadaIoni Bowcher QUALIFIED
Octavia MaletCanadaIvan Magalhaes NEGOTIATION
Juan WieserJapanElwin Sharvill NEGOTIATION
Smith GlickIndiaIoni Bowcher NEW
Sinclair WaycottCanadaBernardo Dominic UNQUALIFIED
Greenwood BologniaSpainStephen Shaw NEGOTIATION
Ricardo GauchoBrazilStephen Shaw UNQUALIFIED
Stacey MacleadBrazilAnna Fali UNQUALIFIED
Rodrigues CampainRussiaOnyama Limba QUALIFIED
Jeanfrancois VenereRussiaBernardo Dominic NEGOTIATION
Juan WieserJapanAmy Elsner QUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher UNQUALIFIED
Mayumi KolmetzSpainOnyama Limba QUALIFIED
Misaki RoysterGermanyAsiya Javayant RENEWAL
Jefferson SchemmerSpainAnna Fali PROPOSAL
Maria MarrierBrazilBernardo Dominic QUALIFIED
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
Kadeem FlosiArgentinaOnyama Limba QUALIFIED
Maisha RulapaughCanadaElwin Sharvill RENEWAL
Aruna FigeroaItalyAmy Elsner RENEWAL
Mujtaba NickaIndiaBernardo Dominic QUALIFIED
Francesco ShinkoIndiaIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyIvan Magalhaes PROPOSAL
Ashley DoeRussiaElwin Sharvill UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner RENEWAL
Silvio SlusarskiItalyOnyama Limba NEGOTIATION
Morrow RutaAustraliaStephen Shaw UNQUALIFIED
Rodrigues CampainArgentinaIvan Magalhaes UNQUALIFIED
Stacey MacleadArgentinaXuxue Feng RENEWAL
Isabel BowleyArgentinaBernardo Dominic UNQUALIFIED
Sinclair WaycottAustraliaIoni Bowcher UNQUALIFIED
Tony FollerCanadaStephen Shaw PROPOSAL
Isabel BowleyAustraliaAmy Elsner RENEWAL
Maisha RulapaughBrazilIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire TollnerArgentinaOnyama Limba PROPOSAL
Salvatore StockhamAustraliaStephen Shaw NEW
Jones VocelkaRussiaAnna Fali QUALIFIED
Julie StensethFranceElwin Sharvill QUALIFIED
Mayumi KolmetzFranceAnna Fali NEW
Izzy GarufiItalyElwin Sharvill PROPOSAL
Darci PoquetteJapanStephen Shaw NEW
Emily WhobreyJapanXuxue Feng PROPOSAL
Clifford RimBrazilIvan Magalhaes PROPOSAL
Izzy GarufiItalyElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiRussia2025-10-05Chapman, Ross E Esq RENEWAL36Ivan Magalhaes
1001Isabel BowleyFrance2025-10-12Rangoni Of Florence PROPOSAL26Asiya Javayant
1002James ButtArgentina2025-10-22Truhlar And Truhlar Attys RENEWAL51Xuxue Feng
1003Izzy GarufiCanada2025-10-02Dorl, James J Esq RENEWAL7Onyama Limba
1004Ricardo GauchoUnited Kingdom2025-10-03Morlong Associates PROPOSAL92Bernardo Dominic
1005Salvatore StockhamBrazil2025-10-01Printing Dimensions QUALIFIED96Xuxue Feng
1006Izzy GarufiJapan2025-10-22Printing Dimensions NEGOTIATION4Xuxue Feng
1007Salvatore StockhamItaly2025-10-07Chemel, James L Cpa NEGOTIATION92Ivan Magalhaes
1008Tony FollerItaly2025-09-26Printing Dimensions NEW98Elwin Sharvill
1009Darci PoquetteRussia2025-10-18Printing Dimensions NEGOTIATION49Amy Elsner
1010Chavez BriddickCanada2025-10-09Chanay, Jeffrey A Esq QUALIFIED88Onyama Limba
1011David DarakjySpain2025-09-30Chapman, Ross E Esq RENEWAL67Elwin Sharvill
1012Aruna FigeroaGermany2025-10-07Truhlar And Truhlar Attys NEGOTIATION68Asiya Javayant
1013Sinclair WaycottRussia2025-10-09Benton, John B Jr PROPOSAL58Stephen Shaw
1014Adams MorascaItaly2025-10-15Chemel, James L Cpa UNQUALIFIED90Bernardo Dominic
1015Silvio SlusarskiFrance2025-09-30Buckley Miller Wright NEW47Elwin Sharvill
1016Juan WieserRussia2025-10-21Chapman, Ross E Esq UNQUALIFIED59Anna Fali
1017Arvin AlbaresSpain2025-10-06Chapman, Ross E Esq QUALIFIED77Anna Fali
1018Adams MorascaAustralia2025-09-28Chemel, James L Cpa QUALIFIED60Anna Fali
1019Antonio CaudyJapan2025-10-23Truhlar And Truhlar Attys UNQUALIFIED16Bernardo Dominic
1020Juan WieserBrazil2025-10-06Chanay, Jeffrey A Esq NEW43Bernardo Dominic
1021Chavez BriddickItaly2025-10-09Dorl, James J Esq UNQUALIFIED32Xuxue Feng
1022Greenwood BologniaCanada2025-10-23Rousseaux, Michael Esq QUALIFIED70Bernardo Dominic
1023Juan WieserGermany2025-09-28Dorl, James J Esq QUALIFIED4Ioni Bowcher
1024Stacey MacleadFrance2025-10-10Chemel, James L Cpa QUALIFIED41Ivan Magalhaes
1025Sinclair WaycottSpain2025-10-02Buckley Miller Wright RENEWAL87Xuxue Feng
1026Tony FollerGermany2025-10-08Chanay, Jeffrey A Esq UNQUALIFIED54Xuxue Feng
1027Izzy GarufiIndia2025-09-29Benton, John B Jr UNQUALIFIED57Ioni Bowcher
1028Francesco ShinkoGermany2025-10-15Chapman, Ross E Esq QUALIFIED83Stephen Shaw
1029Wickens NestleUnited Kingdom2025-10-07Dorl, James J Esq NEGOTIATION88Asiya Javayant
1030Arvin AlbaresIndia2025-09-30Chanay, Jeffrey A Esq RENEWAL84Onyama Limba
1031Alejandro PerinSpain2025-09-30King, Christopher A Esq NEW18Anna Fali
1032Jeanfrancois VenereArgentina2025-10-15Chemel, James L Cpa UNQUALIFIED11Asiya Javayant
1033Francesco ShinkoCanada2025-10-07Chemel, James L Cpa PROPOSAL83Anna Fali
1034David DarakjyJapan2025-10-07Morlong Associates NEW1Ioni Bowcher
1035Costa DilliardItaly2025-10-17Printing Dimensions QUALIFIED57Anna Fali
1036Leja CaldareraArgentina2025-09-28Chapman, Ross E Esq RENEWAL50Amy Elsner
1037Kadeem FlosiUnited Kingdom2025-09-25Benton, John B Jr NEGOTIATION28Elwin Sharvill
1038Munro FerenczFrance2025-10-05Chapman, Ross E Esq PROPOSAL98Onyama Limba
1039Chavez BriddickSpain2025-10-02Dorl, James J Esq PROPOSAL75Ioni Bowcher
1040Ivar PaprockiGermany2025-09-26Printing Dimensions UNQUALIFIED20Elwin Sharvill
1041Kaitlin OstroskyIndia2025-10-04Chapman, Ross E Esq UNQUALIFIED99Anna Fali
1042Sinclair WaycottAustralia2025-09-29Rousseaux, Michael Esq NEW62Asiya Javayant
1043Juan WieserGermany2025-10-02Printing Dimensions RENEWAL32Anna Fali
1044Francesco ShinkoSpain2025-10-05Feiner Bros NEW89Stephen Shaw
1045Julie StensethGermany2025-10-13Printing Dimensions QUALIFIED85Anna Fali
1046Rodrigues CampainGermany2025-10-23Buckley Miller Wright NEGOTIATION8Xuxue Feng
1047Aika InouyeSpain2025-09-25Feltz Printing Service QUALIFIED25Ivan Magalhaes
1048Kadeem FlosiIndia2025-10-04Commercial Press NEW83Ivan Magalhaes
1049Misaki RoysterItaly2025-09-28Printing Dimensions NEGOTIATION81Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerArgentinaIoni Bowcher QUALIFIED
Silvio SlusarskiFranceAsiya Javayant RENEWAL
James ButtItalyIoni Bowcher NEGOTIATION
Julie StensethAustraliaBernardo Dominic QUALIFIED
Alejandro PerinAustraliaAmy Elsner UNQUALIFIED
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Izzy GarufiItalyAmy Elsner NEW
Leon OldroydBrazilIvan Magalhaes NEW
Kaitlin OstroskySpainBernardo Dominic RENEWAL
Salvatore StockhamJapanIvan Magalhaes PROPOSAL
Julie StensethIndiaAmy Elsner UNQUALIFIED
Juan WieserRussiaAmy Elsner RENEWAL
Adams MorascaSpainStephen Shaw QUALIFIED
Tony FollerFranceXuxue Feng RENEWAL
Morrow RutaAustraliaIvan Magalhaes NEGOTIATION
Juan WieserFranceAsiya Javayant NEGOTIATION
Leon OldroydBrazilXuxue Feng NEW
Tony FollerGermanyOnyama Limba UNQUALIFIED
Ivar PaprockiSpainOnyama Limba NEGOTIATION
Aruna FigeroaItalyAsiya Javayant NEW
Antonio CaudyJapanOnyama Limba QUALIFIED
Munro FerenczItalyIvan Magalhaes NEGOTIATION
Deepesh ChuiIndiaAsiya Javayant PROPOSAL
Jennifer AmigonCanadaBernardo Dominic UNQUALIFIED
Arvin AlbaresAustraliaIoni Bowcher NEW
Antonio CaudyCanadaIvan Magalhaes UNQUALIFIED
Stacey MacleadArgentinaAsiya Javayant QUALIFIED
Octavia MaletSpainIvan Magalhaes PROPOSAL
Murillo MaletArgentinaBernardo Dominic RENEWAL
Rodrigues CampainAustraliaElwin Sharvill NEGOTIATION
Deepesh ChuiGermanyAsiya Javayant PROPOSAL
Cody SaylorsIndiaIvan Magalhaes PROPOSAL
Ashley DoeJapanXuxue Feng PROPOSAL
Jefferson SchemmerBrazilBernardo Dominic QUALIFIED
Ricardo GauchoJapanIoni Bowcher QUALIFIED
Mayumi KolmetzArgentinaXuxue Feng RENEWAL
Mayumi KolmetzCanadaAsiya Javayant NEW
Kaitlin OstroskySpainIoni Bowcher NEGOTIATION
Morrow RutaUnited KingdomBernardo Dominic QUALIFIED
Rodrigues CampainJapanAsiya Javayant UNQUALIFIED
Sinclair WaycottArgentinaIvan Magalhaes NEW
Kadeem FlosiRussiaBernardo Dominic RENEWAL
Rodrigues CampainAustraliaElwin Sharvill PROPOSAL
Maisha RulapaughFranceIoni Bowcher QUALIFIED
Claire TollnerGermanyAsiya Javayant NEGOTIATION
Tony FollerGermanyAmy Elsner NEW
Adams MorascaGermanyElwin Sharvill RENEWAL
Jennifer AmigonCanadaElwin Sharvill PROPOSAL
Chavez BriddickArgentinaIoni Bowcher NEGOTIATION
Mujtaba NickaAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Antonio Caudy
Jefferson Schemmer
Antonio Caudy
Ivar Paprocki
Silvio Slusarski
Deepesh Chui
Ricardo Gaucho
Maisha Rulapaugh
Clifford Rim
Sinclair Waycott
Ashley Doe
Wickens Nestle
Kaitlin Ostrosky
Kadeem Flosi
Faith Gillian
Leon Oldroyd
Emily Whobrey
Faith Gillian
Deepesh Chui
Cody Saylors
Wickens Nestle
Leja Caldarera
Julie Stenseth
Kadeem Flosi
Greenwood Bolognia
James Butt
Cody Saylors
Sinclair Waycott
Munro Ferencz
Kaitlin Ostrosky
Johnson Sergi
Tony Foller
James Butt
Juan Wieser
Faith Gillian
Tony Foller
Wickens Nestle
Greenwood Bolognia
Ivar Paprocki
Clifford Rim
Misaki Royster
Costa Dilliard
Octavia Malet
Alejandro Perin
Mayumi Kolmetz
Wickens Nestle
Deepesh Chui
Jennifer Amigon
Jennifer Amigon
Francesco Shinko
IdCountryDate
1000Argentina2025-10-02
1001Argentina2025-10-10
1002Spain2025-10-15
1003United Kingdom2025-10-22
1004Russia2025-09-30
1005Germany2025-10-21
1006Australia2025-09-29
1007Russia2025-10-09
1008United Kingdom2025-10-07
1009Germany2025-10-01
1010Brazil2025-10-07
1011Italy2025-10-03
1012Russia2025-10-05
1013Italy2025-10-09
1014Brazil2025-09-28
1015Australia2025-10-03
1016France2025-09-30
1017Canada2025-10-18
1018Russia2025-09-30
1019Spain2025-10-20
1020Brazil2025-10-12
1021Italy2025-09-30
1022Spain2025-10-11
1023Italy2025-10-03
1024Brazil2025-09-26
1025Canada2025-10-11
1026Spain2025-10-17
1027Canada2025-10-23
1028Brazil2025-10-14
1029Australia2025-10-13
1030Germany2025-10-01
1031United Kingdom2025-10-04
1032United Kingdom2025-10-03
1033Canada2025-09-24
1034Australia2025-10-01
1035Russia2025-10-22
1036Italy2025-10-19
1037Canada2025-10-16
1038United Kingdom2025-10-03
1039Brazil2025-10-22
1040Japan2025-09-29
1041France2025-10-18
1042Japan2025-10-11
1043France2025-10-12
1044United Kingdom2025-10-14
1045Australia2025-10-04
1046India2025-10-15
1047India2025-10-18
1048Japan2025-10-11
1049France2025-10-21

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Spain2025-10-15
Jefferson Schemmer1001Canada2025-10-04
Leon Oldroyd1002United Kingdom2025-10-04
Cody Saylors1003Russia2025-10-11
Francesco Shinko1004Russia2025-10-19
Jones Vocelka1005United Kingdom2025-10-18
Juan Wieser1006France2025-09-27
Adams Morasca1007France2025-10-11
Misaki Royster1008Australia2025-10-09
Jefferson Schemmer1009United Kingdom2025-09-28
Misaki Royster1010Spain2025-10-04
Kaitlin Ostrosky1011Russia2025-10-19
Kadeem Flosi1012India2025-10-17
Tony Foller1013France2025-10-14
Faith Gillian1014Italy2025-10-20
Clifford Rim1015Germany2025-10-10
James Butt1016Japan2025-10-13
Julie Stenseth1017United Kingdom2025-10-02
Smith Glick1018Australia2025-10-13
Antonio Caudy1019United Kingdom2025-09-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiArgentinaIvan Magalhaes PROPOSAL
Jefferson SchemmerSpainOnyama Limba QUALIFIED
Munro FerenczJapanAsiya Javayant UNQUALIFIED
Rodrigues CampainArgentinaElwin Sharvill NEGOTIATION
Tony FollerGermanyIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher QUALIFIED
Ashley DoeIndiaAnna Fali NEW
Cody SaylorsGermanyIvan Magalhaes RENEWAL
Leja CaldareraFranceXuxue Feng NEW
Maisha RulapaughAustraliaXuxue Feng RENEWAL
Jennifer AmigonJapanIvan Magalhaes QUALIFIED
Nicolas IturbideUnited KingdomBernardo Dominic QUALIFIED
Ricardo GauchoIndiaIvan Magalhaes NEW
Aditya KuskoArgentinaXuxue Feng PROPOSAL
Sinclair WaycottCanadaXuxue Feng RENEWAL
Greenwood BologniaFranceOnyama Limba RENEWAL
Leon OldroydRussiaAmy Elsner QUALIFIED
Maisha RulapaughArgentinaAnna Fali QUALIFIED
Chavez BriddickGermanyStephen Shaw NEGOTIATION
Juan WieserArgentinaAmy Elsner RENEWAL
Kaitlin OstroskyItalyStephen Shaw RENEWAL
Mujtaba NickaJapanAsiya Javayant NEW
Emily WhobreyJapanAsiya Javayant UNQUALIFIED
Maria MarrierJapanAmy Elsner QUALIFIED
Arvin AlbaresGermanyXuxue Feng NEW
Tony FollerArgentinaBernardo Dominic NEW
Mayumi KolmetzAustraliaStephen Shaw NEGOTIATION
Morrow RutaRussiaIvan Magalhaes PROPOSAL
Kadeem FlosiBrazilXuxue Feng QUALIFIED
Leon OldroydArgentinaStephen Shaw QUALIFIED
Smith GlickBrazilElwin Sharvill NEGOTIATION
Murillo MaletFranceAnna Fali RENEWAL
Alejandro PerinAustraliaXuxue Feng QUALIFIED
Ashley DoeUnited KingdomIoni Bowcher PROPOSAL
Nicolas IturbideItalyIvan Magalhaes NEW
Misaki RoysterCanadaIoni Bowcher UNQUALIFIED
Kadeem FlosiSpainElwin Sharvill UNQUALIFIED
Antonio CaudyArgentinaIvan Magalhaes UNQUALIFIED
Ivar PaprockiGermanyOnyama Limba NEW
Ivar PaprockiItalyAmy Elsner NEGOTIATION

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