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
Adams MorascaItalyOnyama Limba PROPOSAL
Smith GlickSpainBernardo Dominic QUALIFIED
Maisha RulapaughIndiaStephen Shaw NEGOTIATION
Darci PoquetteJapanBernardo Dominic QUALIFIED
Cody SaylorsJapanElwin Sharvill NEGOTIATION
Antonio CaudySpainXuxue Feng QUALIFIED
Maisha RulapaughItalyAnna Fali UNQUALIFIED
Silvio SlusarskiIndiaAnna Fali RENEWAL
Stacey MacleadRussiaOnyama Limba PROPOSAL
Claire TollnerSpainAsiya Javayant NEGOTIATION
Mujtaba NickaCanadaIoni Bowcher NEGOTIATION
Maria MarrierArgentinaIvan Magalhaes NEGOTIATION
Maria MarrierBrazilOnyama Limba NEW
Wickens NestleItalyStephen Shaw QUALIFIED
Greenwood BologniaRussiaXuxue Feng QUALIFIED
Tony FollerSpainBernardo Dominic RENEWAL
Jennifer AmigonCanadaXuxue Feng UNQUALIFIED
Nicolas IturbideRussiaStephen Shaw NEW
Maria MarrierItalyAsiya Javayant NEW
Kadeem FlosiFranceXuxue Feng QUALIFIED
Jennifer AmigonItalyXuxue Feng NEW
Isabel BowleyGermanyAmy Elsner NEGOTIATION
Aditya KuskoItalyAnna Fali NEGOTIATION
David DarakjyJapanBernardo Dominic PROPOSAL
Izzy GarufiCanadaBernardo Dominic PROPOSAL
Arvin AlbaresSpainStephen Shaw NEGOTIATION
Salvatore StockhamAustraliaXuxue Feng PROPOSAL
Ivar PaprockiArgentinaIvan Magalhaes NEW
David DarakjyIndiaXuxue Feng NEGOTIATION
Greenwood BologniaGermanyAsiya Javayant NEGOTIATION
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Jennifer AmigonArgentinaXuxue Feng QUALIFIED
Johnson SergiJapanAnna Fali PROPOSAL
Wickens NestleCanadaOnyama Limba RENEWAL
Sinclair WaycottArgentinaAmy Elsner RENEWAL
Maisha RulapaughFranceAmy Elsner QUALIFIED
Johnson SergiAustraliaStephen Shaw QUALIFIED
Ivar PaprockiSpainBernardo Dominic RENEWAL
Costa DilliardGermanyIoni Bowcher RENEWAL
Silvio SlusarskiCanadaIoni Bowcher NEGOTIATION
Chavez BriddickSpainAsiya Javayant RENEWAL
Tony FollerRussiaElwin Sharvill NEGOTIATION
Alejandro PerinJapanElwin Sharvill PROPOSAL
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Jefferson SchemmerGermanyIvan Magalhaes UNQUALIFIED
Smith GlickGermanyBernardo Dominic QUALIFIED
Antonio CaudySpainElwin Sharvill PROPOSAL
Ivar PaprockiBrazilIoni Bowcher RENEWAL
Wickens NestleItalyAnna Fali NEW
Francesco ShinkoAustraliaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiBrazilAmy Elsner PROPOSAL
Faith GillianFranceBernardo Dominic UNQUALIFIED
Mayumi KolmetzJapanBernardo Dominic NEW
Kaitlin OstroskyJapanAmy Elsner QUALIFIED
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Costa DilliardUnited KingdomIvan Magalhaes NEW
Mujtaba NickaRussiaOnyama Limba UNQUALIFIED
Kadeem FlosiSpainOnyama Limba RENEWAL
Morrow RutaCanadaAnna Fali NEGOTIATION
Francesco ShinkoAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamSpain2026-04-21King, Christopher A Esq NEW44Onyama Limba
1001Cody SaylorsArgentina2026-05-06Benton, John B Jr NEW92Onyama Limba
1002Isabel BowleyGermany2026-04-23Morlong Associates PROPOSAL80Xuxue Feng
1003Deepesh ChuiJapan2026-04-13Commercial Press UNQUALIFIED68Amy Elsner
1004Mayumi KolmetzArgentina2026-04-18Rangoni Of Florence NEW76Elwin Sharvill
1005Alejandro PerinFrance2026-05-06Feiner Bros PROPOSAL6Onyama Limba
1006Nicolas IturbideGermany2026-04-23Feiner Bros NEGOTIATION55Anna Fali
1007Darci PoquetteIndia2026-04-29Feiner Bros NEGOTIATION45Asiya Javayant
1008Murillo MaletRussia2026-04-27Morlong Associates UNQUALIFIED98Ivan Magalhaes
1009Salvatore StockhamRussia2026-04-23Benton, John B Jr UNQUALIFIED35Stephen Shaw
1010Chavez BriddickItaly2026-04-19Chemel, James L Cpa NEW41Xuxue Feng
1011Aika InouyeRussia2026-05-04Commercial Press RENEWAL87Amy Elsner
1012Kadeem FlosiCanada2026-05-01Feiner Bros QUALIFIED67Asiya Javayant
1013Stacey MacleadFrance2026-05-06Dorl, James J Esq PROPOSAL43Bernardo Dominic
1014Antonio CaudyCanada2026-04-12Truhlar And Truhlar Attys QUALIFIED92Elwin Sharvill
1015Kaitlin OstroskyRussia2026-04-20Buckley Miller Wright UNQUALIFIED80Anna Fali
1016Francesco ShinkoUnited Kingdom2026-04-11Dorl, James J Esq PROPOSAL82Stephen Shaw
1017Julie StensethJapan2026-04-20Chemel, James L Cpa UNQUALIFIED13Xuxue Feng
1018Ivar PaprockiAustralia2026-04-14Truhlar And Truhlar Attys QUALIFIED79Ivan Magalhaes
1019Murillo MaletJapan2026-05-03Chapman, Ross E Esq UNQUALIFIED19Bernardo Dominic
1020Costa DilliardCanada2026-05-05Commercial Press PROPOSAL28Elwin Sharvill
1021Mujtaba NickaSpain2026-05-04Feiner Bros PROPOSAL6Anna Fali
1022Mujtaba NickaAustralia2026-05-07Morlong Associates UNQUALIFIED71Stephen Shaw
1023Aruna FigeroaUnited Kingdom2026-05-01Feiner Bros NEW9Asiya Javayant
1024Cody SaylorsUnited Kingdom2026-05-03Morlong Associates NEGOTIATION37Elwin Sharvill
1025Jeanfrancois VenereItaly2026-04-09Chapman, Ross E Esq QUALIFIED6Ioni Bowcher
1026Ricardo GauchoIndia2026-04-29Chanay, Jeffrey A Esq NEGOTIATION36Ivan Magalhaes
1027Arvin AlbaresItaly2026-05-08Chemel, James L Cpa NEGOTIATION2Asiya Javayant
1028Ivar PaprockiGermany2026-05-04King, Christopher A Esq NEGOTIATION77Xuxue Feng
1029Adams MorascaCanada2026-04-22Chemel, James L Cpa PROPOSAL10Ioni Bowcher
1030Jefferson SchemmerIndia2026-04-21Buckley Miller Wright RENEWAL74Ivan Magalhaes
1031Antonio CaudyItaly2026-04-26Rangoni Of Florence UNQUALIFIED36Onyama Limba
1032Aruna FigeroaJapan2026-04-15Feiner Bros PROPOSAL44Onyama Limba
1033Arvin AlbaresCanada2026-04-21Benton, John B Jr RENEWAL97Elwin Sharvill
1034Izzy GarufiIndia2026-04-30Buckley Miller Wright QUALIFIED47Asiya Javayant
1035Salvatore StockhamUnited Kingdom2026-05-02Buckley Miller Wright NEW9Onyama Limba
1036Misaki RoysterGermany2026-05-08Commercial Press QUALIFIED3Asiya Javayant
1037Octavia MaletItaly2026-04-29Chapman, Ross E Esq NEGOTIATION92Anna Fali
1038Salvatore StockhamArgentina2026-04-23Buckley Miller Wright QUALIFIED69Amy Elsner
1039Claire TollnerAustralia2026-05-06Truhlar And Truhlar Attys QUALIFIED34Onyama Limba
1040Octavia MaletItaly2026-04-25Commercial Press UNQUALIFIED47Onyama Limba
1041Aruna FigeroaIndia2026-04-14Benton, John B Jr NEW28Onyama Limba
1042Alejandro PerinRussia2026-04-23Commercial Press PROPOSAL5Ioni Bowcher
1043Smith GlickSpain2026-05-04Rangoni Of Florence NEGOTIATION3Bernardo Dominic
1044Rodrigues CampainFrance2026-04-23Chanay, Jeffrey A Esq PROPOSAL66Stephen Shaw
1045Tony FollerCanada2026-04-17Commercial Press RENEWAL92Elwin Sharvill
1046Chavez BriddickSpain2026-05-04King, Christopher A Esq UNQUALIFIED7Elwin Sharvill
1047Jeanfrancois VenereItaly2026-05-05Commercial Press RENEWAL12Bernardo Dominic
1048Antonio CaudyJapan2026-05-07Printing Dimensions NEGOTIATION98Stephen Shaw
1049Mayumi KolmetzJapan2026-04-29Chemel, James L Cpa PROPOSAL17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerArgentinaXuxue Feng PROPOSAL
Maisha RulapaughGermanyAsiya Javayant NEW
Deepesh ChuiIndiaAsiya Javayant UNQUALIFIED
Aditya KuskoArgentinaAnna Fali QUALIFIED
Aika InouyeBrazilIvan Magalhaes PROPOSAL
Cody SaylorsRussiaElwin Sharvill NEW
Isabel BowleyIndiaAnna Fali NEW
Ivar PaprockiIndiaXuxue Feng PROPOSAL
Isabel BowleyIndiaOnyama Limba UNQUALIFIED
Kadeem FlosiItalyStephen Shaw NEW
Deepesh ChuiRussiaStephen Shaw RENEWAL
Francesco ShinkoItalyBernardo Dominic QUALIFIED
David DarakjyItalyIoni Bowcher PROPOSAL
Rodrigues CampainCanadaAsiya Javayant NEGOTIATION
Emily WhobreyArgentinaXuxue Feng NEW
Ivar PaprockiAustraliaBernardo Dominic PROPOSAL
Francesco ShinkoItalyIvan Magalhaes UNQUALIFIED
Costa DilliardSpainIvan Magalhaes PROPOSAL
Wickens NestleJapanXuxue Feng NEW
Ivar PaprockiFranceIvan Magalhaes NEGOTIATION
Nicolas IturbideIndiaIvan Magalhaes RENEWAL
Julie StensethIndiaAsiya Javayant QUALIFIED
Cody SaylorsSpainBernardo Dominic QUALIFIED
Misaki RoysterFranceXuxue Feng QUALIFIED
Kaitlin OstroskyCanadaStephen Shaw PROPOSAL
Kadeem FlosiGermanyBernardo Dominic PROPOSAL
Leja CaldareraCanadaXuxue Feng NEW
Emily WhobreyJapanStephen Shaw NEGOTIATION
Sinclair WaycottSpainBernardo Dominic PROPOSAL
James ButtSpainStephen Shaw QUALIFIED
Maria MarrierAustraliaAmy Elsner RENEWAL
Darci PoquetteBrazilXuxue Feng NEW
Jeanfrancois VenereFranceOnyama Limba QUALIFIED
Kaitlin OstroskyFranceXuxue Feng NEGOTIATION
Maisha RulapaughAustraliaAnna Fali PROPOSAL
Clifford RimAustraliaBernardo Dominic QUALIFIED
Maisha RulapaughIndiaAsiya Javayant PROPOSAL
Clifford RimArgentinaAsiya Javayant RENEWAL
Francesco ShinkoJapanAsiya Javayant NEGOTIATION
Mayumi KolmetzSpainIvan Magalhaes NEGOTIATION
Cody SaylorsAustraliaElwin Sharvill RENEWAL
Murillo MaletItalyBernardo Dominic RENEWAL
Adams MorascaJapanAmy Elsner NEGOTIATION
Misaki RoysterFranceIoni Bowcher QUALIFIED
Greenwood BologniaBrazilStephen Shaw NEW
Rodrigues CampainSpainIoni Bowcher PROPOSAL
Munro FerenczFranceAsiya Javayant PROPOSAL
Kadeem FlosiRussiaIvan Magalhaes NEGOTIATION
Juan WieserArgentinaIvan Magalhaes QUALIFIED
Izzy GarufiCanadaOnyama Limba PROPOSAL
Frozen Columns
Name
Arvin Albares
Leja Caldarera
Salvatore Stockham
Jeanfrancois Venere
Greenwood Bolognia
Murillo Malet
Tony Foller
Ricardo Gaucho
Maisha Rulapaugh
Jennifer Amigon
Cody Saylors
Adams Morasca
Aika Inouye
Jones Vocelka
David Darakjy
Isabel Bowley
Jones Vocelka
Ricardo Gaucho
Mujtaba Nicka
Tony Foller
Stacey Maclead
Emily Whobrey
Isabel Bowley
Sinclair Waycott
Kadeem Flosi
Costa Dilliard
Smith Glick
Jones Vocelka
Adams Morasca
Greenwood Bolognia
Greenwood Bolognia
Kaitlin Ostrosky
Cody Saylors
James Butt
Aruna Figeroa
Deepesh Chui
Ricardo Gaucho
Stacey Maclead
Rodrigues Campain
Ashley Doe
Octavia Malet
Claire Tollner
Greenwood Bolognia
Kadeem Flosi
Johnson Sergi
Ivar Paprocki
Costa Dilliard
Jennifer Amigon
Munro Ferencz
Mujtaba Nicka
IdCountryDate
1000United Kingdom2026-04-21
1001Brazil2026-04-21
1002India2026-04-09
1003Australia2026-05-03
1004France2026-04-09
1005Germany2026-05-06
1006India2026-04-11
1007United Kingdom2026-05-07
1008Spain2026-04-28
1009India2026-04-11
1010Italy2026-05-06
1011Argentina2026-04-22
1012Germany2026-04-12
1013Argentina2026-05-05
1014India2026-04-17
1015Australia2026-04-17
1016France2026-05-05
1017Canada2026-05-03
1018Brazil2026-04-13
1019Germany2026-04-27
1020Spain2026-04-21
1021Italy2026-04-13
1022Italy2026-04-28
1023United Kingdom2026-05-01
1024Canada2026-04-09
1025Argentina2026-04-17
1026Australia2026-04-14
1027Argentina2026-05-05
1028India2026-04-23
1029United Kingdom2026-05-03
1030Australia2026-05-07
1031Japan2026-04-13
1032Spain2026-04-19
1033Brazil2026-04-14
1034Japan2026-05-08
1035Argentina2026-04-10
1036Brazil2026-04-19
1037Germany2026-04-24
1038Australia2026-05-01
1039Germany2026-04-12
1040Spain2026-04-23
1041Spain2026-04-23
1042Spain2026-04-29
1043India2026-04-21
1044Brazil2026-04-30
1045Australia2026-04-11
1046Russia2026-05-03
1047Russia2026-04-28
1048Germany2026-05-01
1049Italy2026-04-29

On-Demand Data

NameIdCountryDate
Rodrigues Campain1000Italy2026-04-21
Alejandro Perin1001France2026-04-12
Darci Poquette1002Germany2026-05-07
Isabel Bowley1003Spain2026-04-12
Rodrigues Campain1004France2026-04-09
Rodrigues Campain1005Australia2026-05-06
Isabel Bowley1006Argentina2026-04-10
Juan Wieser1007United Kingdom2026-04-20
Jones Vocelka1008Japan2026-04-19
Leon Oldroyd1009Brazil2026-04-30
Jennifer Amigon1010France2026-05-02
Leon Oldroyd1011Brazil2026-04-30
Octavia Malet1012United Kingdom2026-05-08
Antonio Caudy1013Germany2026-05-05
Maisha Rulapaugh1014Brazil2026-04-29
Mayumi Kolmetz1015Brazil2026-05-06
Jennifer Amigon1016United Kingdom2026-04-18
Jennifer Amigon1017Russia2026-05-06
Izzy Garufi1018Australia2026-05-02
Munro Ferencz1019France2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiItalyAnna Fali RENEWAL
Nicolas IturbideItalyAsiya Javayant PROPOSAL
Izzy GarufiRussiaElwin Sharvill NEGOTIATION
Jeanfrancois VenereCanadaIvan Magalhaes RENEWAL
Chavez BriddickFranceXuxue Feng PROPOSAL
Jennifer AmigonBrazilStephen Shaw NEW
Salvatore StockhamCanadaIoni Bowcher NEW
Silvio SlusarskiGermanyAnna Fali NEW
Cody SaylorsJapanAnna Fali QUALIFIED
Smith GlickJapanStephen Shaw NEW
Ricardo GauchoArgentinaStephen Shaw NEGOTIATION
Octavia MaletArgentinaAsiya Javayant NEGOTIATION
Julie StensethArgentinaOnyama Limba QUALIFIED
Aruna FigeroaGermanyIvan Magalhaes UNQUALIFIED
Murillo MaletAustraliaIoni Bowcher UNQUALIFIED
Kadeem FlosiUnited KingdomOnyama Limba RENEWAL
Sinclair WaycottGermanyElwin Sharvill NEGOTIATION
Aruna FigeroaJapanIvan Magalhaes UNQUALIFIED
Leon OldroydUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore StockhamCanadaAnna Fali UNQUALIFIED
Stacey MacleadCanadaAnna Fali QUALIFIED
Wickens NestleGermanyOnyama Limba NEW
Octavia MaletGermanyXuxue Feng NEGOTIATION
Jennifer AmigonBrazilStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomStephen Shaw NEW
Leon OldroydSpainIvan Magalhaes UNQUALIFIED
Faith GillianUnited KingdomXuxue Feng QUALIFIED
Adams MorascaBrazilIoni Bowcher UNQUALIFIED
Octavia MaletRussiaIvan Magalhaes PROPOSAL
Johnson SergiSpainIoni Bowcher PROPOSAL
Ashley DoeAustraliaAsiya Javayant UNQUALIFIED
Jones VocelkaSpainElwin Sharvill QUALIFIED
Deepesh ChuiBrazilAmy Elsner NEGOTIATION
Izzy GarufiCanadaIoni Bowcher NEGOTIATION
Ricardo GauchoBrazilAsiya Javayant UNQUALIFIED
Maria MarrierItalyIvan Magalhaes NEGOTIATION
Isabel BowleyBrazilIoni Bowcher NEGOTIATION
Ricardo GauchoSpainAsiya Javayant RENEWAL
Nicolas IturbideArgentinaStephen Shaw RENEWAL
James ButtItalyElwin Sharvill PROPOSAL

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