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
Francesco ShinkoUnited KingdomStephen Shaw UNQUALIFIED
James ButtUnited KingdomAsiya Javayant UNQUALIFIED
Maria MarrierGermanyAnna Fali NEGOTIATION
Mayumi KolmetzIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinBrazilElwin Sharvill UNQUALIFIED
Clifford RimJapanStephen Shaw PROPOSAL
Julie StensethAustraliaElwin Sharvill NEGOTIATION
Leon OldroydIndiaAmy Elsner QUALIFIED
Alejandro PerinFranceAnna Fali QUALIFIED
Aruna FigeroaCanadaXuxue Feng PROPOSAL
Francesco ShinkoIndiaAsiya Javayant RENEWAL
Ashley DoeIndiaAmy Elsner NEW
Misaki RoysterRussiaAnna Fali PROPOSAL
Mujtaba NickaAustraliaAnna Fali PROPOSAL
Darci PoquetteIndiaStephen Shaw UNQUALIFIED
Leja CaldareraCanadaIvan Magalhaes PROPOSAL
Misaki RoysterIndiaAsiya Javayant PROPOSAL
Aditya KuskoRussiaStephen Shaw PROPOSAL
Isabel BowleyFranceAsiya Javayant PROPOSAL
Izzy GarufiRussiaOnyama Limba UNQUALIFIED
Aruna FigeroaIndiaAnna Fali QUALIFIED
Johnson SergiItalyIvan Magalhaes QUALIFIED
Costa DilliardGermanyAsiya Javayant NEGOTIATION
Maisha RulapaughUnited KingdomStephen Shaw NEW
Maria MarrierJapanAnna Fali NEW
Jefferson SchemmerCanadaOnyama Limba RENEWAL
Aditya KuskoSpainIoni Bowcher UNQUALIFIED
Claire TollnerIndiaOnyama Limba PROPOSAL
David DarakjySpainAsiya Javayant NEGOTIATION
Ivar PaprockiItalyStephen Shaw UNQUALIFIED
Cody SaylorsGermanyStephen Shaw NEW
Cody SaylorsItalyAnna Fali UNQUALIFIED
Smith GlickUnited KingdomAmy Elsner NEGOTIATION
Jones VocelkaRussiaOnyama Limba NEW
Stacey MacleadItalyIoni Bowcher NEW
Alejandro PerinCanadaAnna Fali QUALIFIED
Misaki RoysterSpainIoni Bowcher RENEWAL
Aika InouyeBrazilBernardo Dominic QUALIFIED
Francesco ShinkoRussiaOnyama Limba NEGOTIATION
Nicolas IturbideItalyStephen Shaw PROPOSAL
Clifford RimUnited KingdomElwin Sharvill RENEWAL
Antonio CaudyArgentinaStephen Shaw UNQUALIFIED
Misaki RoysterJapanXuxue Feng NEW
Octavia MaletArgentinaElwin Sharvill NEW
Aika InouyeJapanAmy Elsner QUALIFIED
Aruna FigeroaRussiaOnyama Limba NEW
Murillo MaletBrazilStephen Shaw PROPOSAL
Jennifer AmigonJapanXuxue Feng QUALIFIED
Claire TollnerIndiaAmy Elsner QUALIFIED
Jones VocelkaArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ashley DoeRussiaIoni Bowcher PROPOSAL
James ButtGermanyOnyama Limba RENEWAL
Isabel BowleyBrazilElwin Sharvill NEGOTIATION
Alejandro PerinRussiaIvan Magalhaes RENEWAL
Maria MarrierCanadaElwin Sharvill QUALIFIED
Greenwood BologniaRussiaAmy Elsner NEW
Chavez BriddickItalyXuxue Feng PROPOSAL
Smith GlickJapanElwin Sharvill UNQUALIFIED
Francesco ShinkoBrazilElwin Sharvill RENEWAL
Darci PoquetteItalyXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyIndia2026-04-04Buckley Miller Wright PROPOSAL4Amy Elsner
1001Alejandro PerinAustralia2026-03-28Printing Dimensions NEGOTIATION94Anna Fali
1002Emily WhobreyItaly2026-04-09Feltz Printing Service QUALIFIED42Stephen Shaw
1003Jefferson SchemmerRussia2026-04-13Truhlar And Truhlar Attys UNQUALIFIED45Stephen Shaw
1004Maisha RulapaughUnited Kingdom2026-03-24Rangoni Of Florence QUALIFIED88Onyama Limba
1005Arvin AlbaresItaly2026-03-29Chapman, Ross E Esq RENEWAL92Stephen Shaw
1006Morrow RutaAustralia2026-04-15Morlong Associates UNQUALIFIED96Bernardo Dominic
1007Greenwood BologniaUnited Kingdom2026-03-28Chemel, James L Cpa RENEWAL32Onyama Limba
1008Ashley DoeJapan2026-03-27Rousseaux, Michael Esq QUALIFIED69Bernardo Dominic
1009Clifford RimItaly2026-04-12Truhlar And Truhlar Attys QUALIFIED70Stephen Shaw
1010Maisha RulapaughUnited Kingdom2026-03-31Morlong Associates NEGOTIATION81Ioni Bowcher
1011Deepesh ChuiArgentina2026-04-19Buckley Miller Wright PROPOSAL1Anna Fali
1012Claire TollnerBrazil2026-04-09Truhlar And Truhlar Attys NEGOTIATION69Amy Elsner
1013Francesco ShinkoCanada2026-04-11Morlong Associates NEGOTIATION32Bernardo Dominic
1014Antonio CaudyIndia2026-04-10Benton, John B Jr PROPOSAL16Amy Elsner
1015Leon OldroydBrazil2026-04-13Buckley Miller Wright NEGOTIATION48Anna Fali
1016Stacey MacleadBrazil2026-04-15Chemel, James L Cpa QUALIFIED92Amy Elsner
1017Octavia MaletRussia2026-04-09Chanay, Jeffrey A Esq QUALIFIED20Ioni Bowcher
1018Nicolas IturbideRussia2026-04-13Chemel, James L Cpa NEW64Bernardo Dominic
1019Clifford RimFrance2026-04-10Chanay, Jeffrey A Esq NEGOTIATION94Bernardo Dominic
1020Misaki RoysterItaly2026-04-16Printing Dimensions UNQUALIFIED31Xuxue Feng
1021Kadeem FlosiUnited Kingdom2026-04-22Feltz Printing Service NEW23Ivan Magalhaes
1022Sinclair WaycottArgentina2026-03-26Benton, John B Jr NEGOTIATION96Xuxue Feng
1023Jefferson SchemmerSpain2026-03-25Chapman, Ross E Esq RENEWAL70Ioni Bowcher
1024Claire TollnerItaly2026-03-26Printing Dimensions UNQUALIFIED55Ioni Bowcher
1025Murillo MaletSpain2026-04-17Rousseaux, Michael Esq NEGOTIATION65Stephen Shaw
1026Maria MarrierAustralia2026-04-20Buckley Miller Wright RENEWAL89Elwin Sharvill
1027Leon OldroydGermany2026-04-19Feltz Printing Service PROPOSAL0Onyama Limba
1028Stacey MacleadCanada2026-03-27Buckley Miller Wright PROPOSAL11Ioni Bowcher
1029Arvin AlbaresAustralia2026-03-24Rangoni Of Florence PROPOSAL81Asiya Javayant
1030Kaitlin OstroskyUnited Kingdom2026-04-22Chemel, James L Cpa RENEWAL86Ioni Bowcher
1031Mayumi KolmetzSpain2026-04-22Benton, John B Jr QUALIFIED67Anna Fali
1032Sinclair WaycottSpain2026-04-14Chapman, Ross E Esq RENEWAL91Amy Elsner
1033Ivar PaprockiIndia2026-03-30Chapman, Ross E Esq NEGOTIATION7Ivan Magalhaes
1034Clifford RimArgentina2026-03-25Chemel, James L Cpa PROPOSAL69Onyama Limba
1035James ButtCanada2026-03-28Buckley Miller Wright NEW11Anna Fali
1036Misaki RoysterSpain2026-04-05Buckley Miller Wright RENEWAL63Xuxue Feng
1037Greenwood BologniaCanada2026-04-03Truhlar And Truhlar Attys PROPOSAL35Amy Elsner
1038Tony FollerIndia2026-03-28Chanay, Jeffrey A Esq NEW11Ivan Magalhaes
1039Octavia MaletRussia2026-03-31Morlong Associates UNQUALIFIED79Ioni Bowcher
1040Chavez BriddickRussia2026-03-31Chemel, James L Cpa PROPOSAL50Elwin Sharvill
1041James ButtRussia2026-03-31Dorl, James J Esq NEW23Elwin Sharvill
1042Ricardo GauchoUnited Kingdom2026-04-14Chanay, Jeffrey A Esq PROPOSAL39Elwin Sharvill
1043Tony FollerGermany2026-04-18Dorl, James J Esq RENEWAL11Elwin Sharvill
1044Faith GillianIndia2026-04-15Dorl, James J Esq NEGOTIATION78Stephen Shaw
1045Morrow RutaCanada2026-04-11Rangoni Of Florence RENEWAL93Xuxue Feng
1046Jones VocelkaGermany2026-03-25Printing Dimensions PROPOSAL70Ioni Bowcher
1047Nicolas IturbideBrazil2026-04-11Chanay, Jeffrey A Esq PROPOSAL95Amy Elsner
1048Darci PoquetteGermany2026-04-12Truhlar And Truhlar Attys NEW80Elwin Sharvill
1049Johnson SergiUnited Kingdom2026-04-19Printing Dimensions NEW45Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaFranceOnyama Limba NEW
Juan WieserFranceXuxue Feng NEGOTIATION
Jennifer AmigonSpainElwin Sharvill NEGOTIATION
Isabel BowleyBrazilElwin Sharvill NEW
Izzy GarufiUnited KingdomAsiya Javayant QUALIFIED
Cody SaylorsJapanAsiya Javayant PROPOSAL
Jones VocelkaFranceXuxue Feng RENEWAL
Aika InouyeRussiaIoni Bowcher QUALIFIED
Darci PoquetteFranceXuxue Feng NEW
Octavia MaletAustraliaXuxue Feng RENEWAL
Julie StensethIndiaXuxue Feng UNQUALIFIED
Adams MorascaBrazilElwin Sharvill NEW
Leja CaldareraBrazilOnyama Limba RENEWAL
Wickens NestleJapanBernardo Dominic RENEWAL
Salvatore StockhamRussiaXuxue Feng PROPOSAL
Mayumi KolmetzRussiaAmy Elsner NEGOTIATION
Deepesh ChuiItalyOnyama Limba QUALIFIED
Mayumi KolmetzRussiaOnyama Limba NEGOTIATION
Octavia MaletCanadaOnyama Limba NEW
Jeanfrancois VenereIndiaElwin Sharvill PROPOSAL
Octavia MaletArgentinaXuxue Feng NEW
Aika InouyeIndiaAsiya Javayant NEGOTIATION
Claire TollnerJapanElwin Sharvill NEW
Antonio CaudyBrazilAnna Fali NEW
Maria MarrierItalyElwin Sharvill NEW
James ButtFranceOnyama Limba QUALIFIED
Adams MorascaCanadaAmy Elsner UNQUALIFIED
Jennifer AmigonFranceBernardo Dominic QUALIFIED
Aditya KuskoIndiaAmy Elsner PROPOSAL
Jennifer AmigonAustraliaAsiya Javayant PROPOSAL
Mayumi KolmetzArgentinaAnna Fali RENEWAL
Darci PoquetteBrazilAmy Elsner UNQUALIFIED
Emily WhobreyJapanBernardo Dominic NEW
Greenwood BologniaRussiaIvan Magalhaes PROPOSAL
Aika InouyeArgentinaOnyama Limba RENEWAL
Stacey MacleadAustraliaIoni Bowcher NEGOTIATION
Mayumi KolmetzSpainAnna Fali QUALIFIED
Alejandro PerinUnited KingdomStephen Shaw UNQUALIFIED
Emily WhobreyGermanyBernardo Dominic PROPOSAL
David DarakjyCanadaElwin Sharvill NEW
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Maria MarrierBrazilBernardo Dominic UNQUALIFIED
Chavez BriddickFranceAmy Elsner UNQUALIFIED
Antonio CaudyRussiaBernardo Dominic RENEWAL
Jeanfrancois VenereItalyAsiya Javayant RENEWAL
Leja CaldareraFranceOnyama Limba NEW
Munro FerenczJapanAsiya Javayant NEGOTIATION
Leon OldroydAustraliaAnna Fali QUALIFIED
Adams MorascaBrazilAsiya Javayant NEW
Morrow RutaAustraliaXuxue Feng RENEWAL
Frozen Columns
Name
Maria Marrier
Adams Morasca
Silvio Slusarski
Mayumi Kolmetz
Rodrigues Campain
Ivar Paprocki
Ivar Paprocki
Claire Tollner
Isabel Bowley
Adams Morasca
Faith Gillian
Stacey Maclead
Juan Wieser
Jennifer Amigon
Julie Stenseth
Francesco Shinko
Alejandro Perin
Ivar Paprocki
Jennifer Amigon
Ivar Paprocki
Alejandro Perin
Isabel Bowley
Greenwood Bolognia
Munro Ferencz
Munro Ferencz
Wickens Nestle
Aditya Kusko
Salvatore Stockham
Isabel Bowley
Leon Oldroyd
Maisha Rulapaugh
Jennifer Amigon
Leon Oldroyd
Julie Stenseth
Nicolas Iturbide
Adams Morasca
Kadeem Flosi
Ashley Doe
Jones Vocelka
Sinclair Waycott
Wickens Nestle
Maisha Rulapaugh
Stacey Maclead
Jones Vocelka
Arvin Albares
Tony Foller
Emily Whobrey
Adams Morasca
Aika Inouye
Murillo Malet
IdCountryDate
1000Brazil2026-03-25
1001Canada2026-03-27
1002France2026-04-11
1003Brazil2026-04-21
1004Germany2026-04-01
1005France2026-04-07
1006Australia2026-03-25
1007Brazil2026-04-10
1008Argentina2026-04-01
1009Australia2026-04-04
1010Argentina2026-04-10
1011Germany2026-04-15
1012India2026-03-26
1013Germany2026-04-20
1014Italy2026-04-21
1015Russia2026-04-20
1016Japan2026-04-16
1017France2026-04-04
1018Argentina2026-04-02
1019Russia2026-04-13
1020Spain2026-03-24
1021Spain2026-04-10
1022India2026-04-14
1023Russia2026-04-07
1024India2026-03-31
1025United Kingdom2026-04-02
1026France2026-03-24
1027Germany2026-03-25
1028Spain2026-03-30
1029Italy2026-04-19
1030Canada2026-03-30
1031France2026-03-27
1032Germany2026-03-25
1033Germany2026-03-31
1034Australia2026-04-04
1035India2026-04-18
1036Canada2026-04-01
1037Brazil2026-04-18
1038France2026-04-10
1039India2026-04-08
1040Germany2026-04-11
1041Japan2026-03-28
1042Spain2026-04-16
1043Spain2026-04-09
1044Canada2026-04-21
1045Argentina2026-04-03
1046Italy2026-04-18
1047Canada2026-04-06
1048Argentina2026-04-13
1049Japan2026-03-26

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000United Kingdom2026-04-03
Octavia Malet1001Italy2026-03-31
Adams Morasca1002Russia2026-04-05
Salvatore Stockham1003Brazil2026-04-19
Munro Ferencz1004Russia2026-04-16
Mayumi Kolmetz1005Spain2026-04-19
Chavez Briddick1006Argentina2026-04-09
Johnson Sergi1007Canada2026-04-03
Izzy Garufi1008Brazil2026-04-13
Antonio Caudy1009Germany2026-04-06
Francesco Shinko1010France2026-04-14
Salvatore Stockham1011India2026-03-30
Aditya Kusko1012Russia2026-04-19
Alejandro Perin1013Germany2026-04-12
Mayumi Kolmetz1014Australia2026-04-20
Ivar Paprocki1015Australia2026-04-20
Darci Poquette1016Argentina2026-04-11
Smith Glick1017Brazil2026-04-20
Maisha Rulapaugh1018United Kingdom2026-04-10
Juan Wieser1019Brazil2026-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaItalyAsiya Javayant QUALIFIED
Alejandro PerinItalyStephen Shaw QUALIFIED
Julie StensethGermanyBernardo Dominic UNQUALIFIED
Emily WhobreySpainXuxue Feng UNQUALIFIED
Francesco ShinkoCanadaAmy Elsner NEW
Rodrigues CampainAustraliaAmy Elsner PROPOSAL
Greenwood BologniaGermanyElwin Sharvill PROPOSAL
Claire TollnerJapanAmy Elsner PROPOSAL
Jefferson SchemmerFranceElwin Sharvill PROPOSAL
Leja CaldareraRussiaBernardo Dominic NEGOTIATION
Clifford RimFranceAnna Fali PROPOSAL
Leja CaldareraItalyStephen Shaw UNQUALIFIED
Misaki RoysterIndiaIoni Bowcher PROPOSAL
Wickens NestleItalyAmy Elsner PROPOSAL
Kadeem FlosiArgentinaIvan Magalhaes PROPOSAL
Izzy GarufiRussiaAmy Elsner PROPOSAL
Faith GillianFranceIoni Bowcher PROPOSAL
Deepesh ChuiSpainXuxue Feng QUALIFIED
Silvio SlusarskiItalyAmy Elsner PROPOSAL
Ivar PaprockiBrazilXuxue Feng QUALIFIED
Julie StensethIndiaStephen Shaw NEGOTIATION
Kaitlin OstroskyUnited KingdomXuxue Feng QUALIFIED
Jones VocelkaGermanyOnyama Limba NEW
Mayumi KolmetzCanadaBernardo Dominic NEW
Kadeem FlosiBrazilIoni Bowcher UNQUALIFIED
Tony FollerBrazilOnyama Limba NEW
Francesco ShinkoUnited KingdomAnna Fali UNQUALIFIED
Izzy GarufiIndiaIvan Magalhaes NEGOTIATION
Octavia MaletItalyAmy Elsner RENEWAL
Murillo MaletRussiaAnna Fali QUALIFIED
Darci PoquetteBrazilAnna Fali NEGOTIATION
Cody SaylorsSpainIvan Magalhaes NEGOTIATION
Jeanfrancois VenereCanadaIoni Bowcher NEGOTIATION
Morrow RutaSpainAsiya Javayant NEGOTIATION
Murillo MaletGermanyStephen Shaw NEW
Ivar PaprockiItalyBernardo Dominic QUALIFIED
Salvatore StockhamIndiaAmy Elsner QUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw NEGOTIATION
Kadeem FlosiIndiaAsiya Javayant NEW
Aruna FigeroaCanadaStephen Shaw 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>