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 MorascaCanadaAsiya Javayant NEGOTIATION
Adams MorascaItalyElwin Sharvill PROPOSAL
Mujtaba NickaGermanyAnna Fali NEW
Maria MarrierFranceOnyama Limba UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw RENEWAL
Aditya KuskoFranceAmy Elsner UNQUALIFIED
Ricardo GauchoAustraliaXuxue Feng NEW
Maisha RulapaughSpainOnyama Limba QUALIFIED
Jefferson SchemmerRussiaOnyama Limba QUALIFIED
Isabel BowleyBrazilAsiya Javayant RENEWAL
Emily WhobreySpainElwin Sharvill PROPOSAL
Jefferson SchemmerAustraliaElwin Sharvill PROPOSAL
Mayumi KolmetzAustraliaBernardo Dominic NEGOTIATION
Mujtaba NickaFranceStephen Shaw RENEWAL
Rodrigues CampainGermanyAmy Elsner QUALIFIED
Jeanfrancois VenereBrazilAsiya Javayant RENEWAL
Leon OldroydIndiaOnyama Limba NEW
Greenwood BologniaArgentinaIvan Magalhaes QUALIFIED
Aditya KuskoSpainElwin Sharvill PROPOSAL
Misaki RoysterSpainAsiya Javayant QUALIFIED
Greenwood BologniaIndiaOnyama Limba PROPOSAL
Aruna FigeroaAustraliaBernardo Dominic RENEWAL
Ivar PaprockiUnited KingdomStephen Shaw RENEWAL
Nicolas IturbideIndiaStephen Shaw PROPOSAL
Aika InouyeAustraliaIoni Bowcher QUALIFIED
Salvatore StockhamFranceIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomOnyama Limba PROPOSAL
Chavez BriddickFranceOnyama Limba NEW
Murillo MaletItalyAsiya Javayant NEGOTIATION
Kaitlin OstroskySpainAnna Fali NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill RENEWAL
Mujtaba NickaJapanXuxue Feng RENEWAL
Octavia MaletBrazilAnna Fali QUALIFIED
Darci PoquetteJapanOnyama Limba RENEWAL
Jennifer AmigonCanadaAmy Elsner PROPOSAL
Juan WieserUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamRussiaAmy Elsner QUALIFIED
Darci PoquetteArgentinaBernardo Dominic QUALIFIED
Clifford RimBrazilElwin Sharvill QUALIFIED
Johnson SergiFranceIvan Magalhaes UNQUALIFIED
Clifford RimBrazilBernardo Dominic UNQUALIFIED
Deepesh ChuiCanadaAsiya Javayant NEGOTIATION
Isabel BowleyBrazilStephen Shaw UNQUALIFIED
Wickens NestleBrazilIvan Magalhaes QUALIFIED
Jones VocelkaIndiaOnyama Limba UNQUALIFIED
Francesco ShinkoItalyIoni Bowcher UNQUALIFIED
Mujtaba NickaCanadaOnyama Limba RENEWAL
Maria MarrierSpainIvan Magalhaes RENEWAL
Chavez BriddickJapanStephen Shaw NEW
Ricardo GauchoJapanAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereItalyStephen Shaw UNQUALIFIED
Juan WieserSpainXuxue Feng NEW
Darci PoquetteRussiaXuxue Feng QUALIFIED
Morrow RutaGermanyIoni Bowcher QUALIFIED
Arvin AlbaresBrazilAmy Elsner RENEWAL
Antonio CaudyCanadaIoni Bowcher QUALIFIED
Maisha RulapaughIndiaBernardo Dominic NEGOTIATION
Jefferson SchemmerArgentinaStephen Shaw QUALIFIED
Julie StensethUnited KingdomOnyama Limba QUALIFIED
Julie StensethRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzRussia2025-05-19Rousseaux, Michael Esq UNQUALIFIED72Onyama Limba
1001Antonio CaudyRussia2025-05-19Buckley Miller Wright NEGOTIATION9Asiya Javayant
1002Tony FollerBrazil2025-05-19Chanay, Jeffrey A Esq PROPOSAL28Ivan Magalhaes
1003Nicolas IturbideIndia2025-05-31Printing Dimensions RENEWAL12Ioni Bowcher
1004Francesco ShinkoSpain2025-05-05Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1005Jefferson SchemmerAustralia2025-05-11Chapman, Ross E Esq RENEWAL93Elwin Sharvill
1006James ButtJapan2025-05-23Morlong Associates NEGOTIATION44Bernardo Dominic
1007Maisha RulapaughArgentina2025-05-23King, Christopher A Esq QUALIFIED17Bernardo Dominic
1008Greenwood BologniaUnited Kingdom2025-05-13Morlong Associates PROPOSAL79Anna Fali
1009Tony FollerUnited Kingdom2025-05-12Buckley Miller Wright NEW17Onyama Limba
1010David DarakjyRussia2025-05-16Buckley Miller Wright QUALIFIED57Ivan Magalhaes
1011Arvin AlbaresGermany2025-05-22Rangoni Of Florence PROPOSAL4Ivan Magalhaes
1012Jefferson SchemmerUnited Kingdom2025-05-19Truhlar And Truhlar Attys NEW49Asiya Javayant
1013Aruna FigeroaArgentina2025-05-26Feiner Bros QUALIFIED58Stephen Shaw
1014Izzy GarufiAustralia2025-05-07Dorl, James J Esq RENEWAL91Bernardo Dominic
1015Johnson SergiAustralia2025-05-30Feiner Bros NEW4Elwin Sharvill
1016Costa DilliardArgentina2025-05-11Buckley Miller Wright RENEWAL4Onyama Limba
1017Claire TollnerItaly2025-05-29Chanay, Jeffrey A Esq UNQUALIFIED73Xuxue Feng
1018Alejandro PerinJapan2025-05-18Morlong Associates RENEWAL0Onyama Limba
1019Cody SaylorsCanada2025-05-12Feltz Printing Service NEW15Asiya Javayant
1020Wickens NestleCanada2025-05-09Truhlar And Truhlar Attys PROPOSAL91Stephen Shaw
1021Clifford RimJapan2025-06-01Printing Dimensions NEW93Asiya Javayant
1022Isabel BowleyGermany2025-05-09Truhlar And Truhlar Attys QUALIFIED13Ioni Bowcher
1023Ricardo GauchoFrance2025-05-29Rousseaux, Michael Esq NEW18Ivan Magalhaes
1024Misaki RoysterArgentina2025-05-25Feiner Bros QUALIFIED24Elwin Sharvill
1025Rodrigues CampainItaly2025-05-05Benton, John B Jr UNQUALIFIED56Elwin Sharvill
1026Stacey MacleadBrazil2025-05-20Rousseaux, Michael Esq RENEWAL23Amy Elsner
1027Julie StensethUnited Kingdom2025-05-11Feltz Printing Service UNQUALIFIED4Onyama Limba
1028Isabel BowleyFrance2025-05-31King, Christopher A Esq NEW10Stephen Shaw
1029Ivar PaprockiItaly2025-05-28Chapman, Ross E Esq NEW83Amy Elsner
1030Juan WieserRussia2025-05-18Truhlar And Truhlar Attys QUALIFIED87Stephen Shaw
1031Smith GlickBrazil2025-05-08Benton, John B Jr PROPOSAL74Xuxue Feng
1032Izzy GarufiBrazil2025-06-01Feiner Bros QUALIFIED65Elwin Sharvill
1033Aditya KuskoItaly2025-05-24Feiner Bros PROPOSAL11Onyama Limba
1034Jones VocelkaArgentina2025-05-17Feltz Printing Service UNQUALIFIED67Anna Fali
1035Ricardo GauchoUnited Kingdom2025-05-10Chapman, Ross E Esq UNQUALIFIED45Amy Elsner
1036Jennifer AmigonUnited Kingdom2025-05-21Morlong Associates QUALIFIED84Bernardo Dominic
1037Jennifer AmigonCanada2025-05-14Chanay, Jeffrey A Esq RENEWAL8Bernardo Dominic
1038Clifford RimGermany2025-05-27Truhlar And Truhlar Attys PROPOSAL9Elwin Sharvill
1039Kadeem FlosiJapan2025-05-18Chanay, Jeffrey A Esq PROPOSAL15Bernardo Dominic
1040Munro FerenczRussia2025-05-26Commercial Press QUALIFIED2Onyama Limba
1041Smith GlickSpain2025-05-05Commercial Press NEGOTIATION5Xuxue Feng
1042Antonio CaudyJapan2025-05-12Rousseaux, Michael Esq NEW13Ivan Magalhaes
1043Cody SaylorsCanada2025-05-30Truhlar And Truhlar Attys RENEWAL23Xuxue Feng
1044Ashley DoeJapan2025-05-29Chapman, Ross E Esq NEGOTIATION16Ivan Magalhaes
1045Octavia MaletArgentina2025-05-13Benton, John B Jr RENEWAL12Amy Elsner
1046Salvatore StockhamFrance2025-05-13Printing Dimensions PROPOSAL86Bernardo Dominic
1047Aika InouyeArgentina2025-05-16King, Christopher A Esq NEGOTIATION81Anna Fali
1048Aruna FigeroaArgentina2025-05-18Rousseaux, Michael Esq NEW39Elwin Sharvill
1049Julie StensethSpain2025-05-09Feiner Bros RENEWAL96Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyCanadaStephen Shaw NEW
Antonio CaudyArgentinaAsiya Javayant NEGOTIATION
Clifford RimIndiaIvan Magalhaes RENEWAL
Jeanfrancois VenereBrazilBernardo Dominic PROPOSAL
Johnson SergiAustraliaIvan Magalhaes NEW
Wickens NestleFranceIvan Magalhaes PROPOSAL
Munro FerenczFranceIoni Bowcher NEW
Aika InouyeItalyIvan Magalhaes QUALIFIED
Silvio SlusarskiUnited KingdomXuxue Feng RENEWAL
Jefferson SchemmerRussiaStephen Shaw RENEWAL
Claire TollnerIndiaBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaXuxue Feng QUALIFIED
Smith GlickBrazilStephen Shaw NEW
Sinclair WaycottRussiaAnna Fali NEW
Johnson SergiGermanyElwin Sharvill PROPOSAL
Chavez BriddickBrazilXuxue Feng NEW
Sinclair WaycottJapanElwin Sharvill NEW
Deepesh ChuiIndiaBernardo Dominic PROPOSAL
Jennifer AmigonGermanyIoni Bowcher PROPOSAL
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Jefferson SchemmerRussiaBernardo Dominic QUALIFIED
Smith GlickCanadaIoni Bowcher PROPOSAL
Sinclair WaycottRussiaXuxue Feng UNQUALIFIED
Antonio CaudyGermanyOnyama Limba RENEWAL
Deepesh ChuiBrazilAnna Fali NEW
Jefferson SchemmerItalyIoni Bowcher NEGOTIATION
Murillo MaletFranceStephen Shaw PROPOSAL
Rodrigues CampainIndiaIoni Bowcher NEGOTIATION
Emily WhobreyCanadaBernardo Dominic NEGOTIATION
Wickens NestleIndiaAsiya Javayant UNQUALIFIED
Adams MorascaUnited KingdomXuxue Feng PROPOSAL
Jefferson SchemmerIndiaIvan Magalhaes NEGOTIATION
Nicolas IturbideFranceIoni Bowcher RENEWAL
Nicolas IturbideCanadaOnyama Limba UNQUALIFIED
David DarakjyCanadaAsiya Javayant QUALIFIED
Clifford RimGermanyOnyama Limba NEGOTIATION
Darci PoquetteArgentinaOnyama Limba PROPOSAL
Chavez BriddickUnited KingdomElwin Sharvill NEGOTIATION
Leon OldroydBrazilElwin Sharvill PROPOSAL
Ivar PaprockiUnited KingdomIvan Magalhaes NEW
Costa DilliardJapanStephen Shaw QUALIFIED
Murillo MaletUnited KingdomAmy Elsner PROPOSAL
Leja CaldareraJapanElwin Sharvill UNQUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaBernardo Dominic PROPOSAL
Alejandro PerinCanadaStephen Shaw RENEWAL
Morrow RutaGermanyAsiya Javayant RENEWAL
Juan WieserIndiaOnyama Limba RENEWAL
Julie StensethBrazilElwin Sharvill UNQUALIFIED
Jennifer AmigonAustraliaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Munro Ferencz
Ashley Doe
Aruna Figeroa
Isabel Bowley
Kaitlin Ostrosky
Claire Tollner
Claire Tollner
Misaki Royster
Francesco Shinko
Octavia Malet
Ricardo Gaucho
Maria Marrier
Deepesh Chui
Jeanfrancois Venere
Alejandro Perin
Arvin Albares
James Butt
Munro Ferencz
Kaitlin Ostrosky
Tony Foller
Ricardo Gaucho
Alejandro Perin
Costa Dilliard
Salvatore Stockham
Jefferson Schemmer
Juan Wieser
Wickens Nestle
Jeanfrancois Venere
Juan Wieser
Aruna Figeroa
Mayumi Kolmetz
Jones Vocelka
Aruna Figeroa
Deepesh Chui
Leon Oldroyd
Aruna Figeroa
Ashley Doe
Jones Vocelka
Mujtaba Nicka
Maisha Rulapaugh
Maria Marrier
Clifford Rim
Ashley Doe
Mayumi Kolmetz
Darci Poquette
Leja Caldarera
David Darakjy
David Darakjy
Leon Oldroyd
Jefferson Schemmer
IdCountryDate
1000France2025-05-31
1001Spain2025-05-14
1002Russia2025-05-04
1003Australia2025-05-07
1004Germany2025-05-05
1005Canada2025-06-01
1006Australia2025-05-14
1007Argentina2025-05-29
1008Germany2025-05-31
1009United Kingdom2025-05-23
1010Germany2025-05-11
1011Canada2025-05-07
1012Australia2025-05-27
1013Argentina2025-05-06
1014Japan2025-05-25
1015Argentina2025-05-06
1016France2025-05-27
1017Italy2025-05-27
1018India2025-05-09
1019India2025-05-14
1020Japan2025-05-09
1021Italy2025-05-29
1022Japan2025-05-20
1023Germany2025-05-09
1024India2025-05-19
1025France2025-05-08
1026France2025-05-31
1027Japan2025-05-19
1028India2025-05-07
1029Canada2025-05-23
1030Russia2025-05-26
1031Spain2025-05-06
1032Australia2025-05-13
1033Italy2025-05-29
1034Australia2025-05-15
1035Japan2025-05-07
1036Russia2025-05-08
1037Argentina2025-05-21
1038France2025-06-02
1039Japan2025-05-24
1040Argentina2025-05-04
1041Spain2025-05-11
1042Canada2025-05-08
1043India2025-05-05
1044United Kingdom2025-05-04
1045Italy2025-05-28
1046Spain2025-05-07
1047Argentina2025-05-31
1048Argentina2025-06-01
1049India2025-05-12

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Italy2025-05-22
Johnson Sergi1001Italy2025-05-23
Jeanfrancois Venere1002Russia2025-05-18
Aika Inouye1003India2025-06-02
Aditya Kusko1004Argentina2025-05-15
Isabel Bowley1005Spain2025-05-21
Juan Wieser1006France2025-05-13
Leon Oldroyd1007Canada2025-05-12
Misaki Royster1008United Kingdom2025-05-06
Kadeem Flosi1009Canada2025-05-16
Darci Poquette1010India2025-05-05
Aruna Figeroa1011Argentina2025-05-04
Misaki Royster1012India2025-05-29
Nicolas Iturbide1013Argentina2025-06-01
Izzy Garufi1014Spain2025-05-09
Aika Inouye1015Brazil2025-05-20
Morrow Ruta1016Russia2025-05-24
Arvin Albares1017United Kingdom2025-05-25
Stacey Maclead1018Spain2025-05-15
Jeanfrancois Venere1019Australia2025-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiUnited KingdomIvan Magalhaes NEGOTIATION
Izzy GarufiRussiaStephen Shaw NEGOTIATION
Kaitlin OstroskyRussiaAmy Elsner PROPOSAL
Isabel BowleyGermanyXuxue Feng QUALIFIED
Maria MarrierBrazilOnyama Limba UNQUALIFIED
James ButtItalyIoni Bowcher UNQUALIFIED
Claire TollnerUnited KingdomAsiya Javayant PROPOSAL
Smith GlickItalyBernardo Dominic NEW
Morrow RutaRussiaIvan Magalhaes PROPOSAL
Julie StensethIndiaAnna Fali NEW
Kadeem FlosiJapanIvan Magalhaes RENEWAL
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Alejandro PerinCanadaIoni Bowcher RENEWAL
Nicolas IturbideFranceXuxue Feng NEW
David DarakjySpainAnna Fali QUALIFIED
Faith GillianSpainIoni Bowcher NEGOTIATION
Maisha RulapaughArgentinaXuxue Feng NEW
Adams MorascaRussiaStephen Shaw RENEWAL
Leon OldroydGermanyBernardo Dominic QUALIFIED
Greenwood BologniaCanadaAnna Fali PROPOSAL
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Adams MorascaJapanStephen Shaw NEGOTIATION
Emily WhobreyItalyXuxue Feng PROPOSAL
Kadeem FlosiRussiaIoni Bowcher UNQUALIFIED
Aika InouyeCanadaStephen Shaw QUALIFIED
Francesco ShinkoFranceAnna Fali UNQUALIFIED
Francesco ShinkoRussiaAmy Elsner NEGOTIATION
Aruna FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Faith GillianGermanyElwin Sharvill RENEWAL
Mujtaba NickaUnited KingdomXuxue Feng PROPOSAL
Chavez BriddickItalyAnna Fali PROPOSAL
Leja CaldareraFranceIoni Bowcher QUALIFIED
David DarakjyIndiaAsiya Javayant PROPOSAL
Emily WhobreyBrazilStephen Shaw UNQUALIFIED
Salvatore StockhamIndiaOnyama Limba UNQUALIFIED
Wickens NestleGermanyOnyama Limba RENEWAL
Cody SaylorsRussiaElwin Sharvill RENEWAL
Juan WieserCanadaAmy Elsner RENEWAL
Jones VocelkaSpainIoni Bowcher NEW
Nicolas IturbideAustraliaIvan Magalhaes 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>