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
Alejandro PerinFranceIoni Bowcher NEW
Misaki RoysterJapanAnna Fali PROPOSAL
Mujtaba NickaArgentinaAmy Elsner UNQUALIFIED
Jones VocelkaJapanElwin Sharvill UNQUALIFIED
David DarakjyGermanyOnyama Limba NEW
Aruna FigeroaFranceStephen Shaw RENEWAL
Juan WieserBrazilXuxue Feng RENEWAL
James ButtItalyElwin Sharvill UNQUALIFIED
Claire TollnerBrazilElwin Sharvill NEW
Johnson SergiRussiaElwin Sharvill PROPOSAL
Smith GlickArgentinaBernardo Dominic QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Maisha RulapaughArgentinaAsiya Javayant PROPOSAL
Clifford RimUnited KingdomOnyama Limba QUALIFIED
Morrow RutaGermanyIoni Bowcher PROPOSAL
Emily WhobreyRussiaXuxue Feng QUALIFIED
David DarakjyGermanyAnna Fali QUALIFIED
Stacey MacleadIndiaAsiya Javayant NEW
Chavez BriddickBrazilOnyama Limba NEW
Kadeem FlosiAustraliaXuxue Feng PROPOSAL
Johnson SergiUnited KingdomBernardo Dominic PROPOSAL
Stacey MacleadGermanyAnna Fali RENEWAL
Wickens NestleFranceXuxue Feng QUALIFIED
Murillo MaletFranceXuxue Feng NEW
Leja CaldareraJapanAnna Fali NEW
Maria MarrierJapanAmy Elsner NEGOTIATION
Kadeem FlosiJapanAmy Elsner UNQUALIFIED
Deepesh ChuiArgentinaStephen Shaw NEGOTIATION
James ButtArgentinaIoni Bowcher UNQUALIFIED
James ButtBrazilAmy Elsner RENEWAL
Munro FerenczAustraliaAnna Fali QUALIFIED
James ButtCanadaIvan Magalhaes QUALIFIED
Juan WieserGermanyAmy Elsner NEGOTIATION
Maisha RulapaughUnited KingdomIoni Bowcher NEGOTIATION
Maisha RulapaughFranceIoni Bowcher NEGOTIATION
Misaki RoysterSpainXuxue Feng NEW
Antonio CaudyArgentinaOnyama Limba RENEWAL
Sinclair WaycottBrazilAmy Elsner NEGOTIATION
Ashley DoeBrazilAsiya Javayant QUALIFIED
Ivar PaprockiCanadaElwin Sharvill PROPOSAL
Cody SaylorsSpainAsiya Javayant NEGOTIATION
Tony FollerGermanyAmy Elsner QUALIFIED
Faith GillianArgentinaIoni Bowcher QUALIFIED
Juan WieserAustraliaBernardo Dominic PROPOSAL
Kadeem FlosiGermanyIvan Magalhaes UNQUALIFIED
Munro FerenczIndiaAmy Elsner QUALIFIED
Murillo MaletFranceAmy Elsner UNQUALIFIED
Aditya KuskoGermanyXuxue Feng RENEWAL
Maisha RulapaughGermanyIoni Bowcher PROPOSAL
Maria MarrierUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaFranceAsiya Javayant NEW
Clifford RimBrazilAnna Fali PROPOSAL
Sinclair WaycottJapanAmy Elsner NEGOTIATION
Leja CaldareraArgentinaXuxue Feng NEGOTIATION
Leon OldroydIndiaAnna Fali NEW
Salvatore StockhamArgentinaOnyama Limba NEW
Ricardo GauchoJapanStephen Shaw NEGOTIATION
Isabel BowleyCanadaElwin Sharvill QUALIFIED
Tony FollerSpainIvan Magalhaes PROPOSAL
Mayumi KolmetzUnited KingdomXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletBrazil2026-06-05Commercial Press NEGOTIATION82Anna Fali
1001Alejandro PerinFrance2026-06-16Chemel, James L Cpa RENEWAL61Elwin Sharvill
1002Claire TollnerJapan2026-06-10King, Christopher A Esq RENEWAL48Ioni Bowcher
1003Kaitlin OstroskyCanada2026-06-15Chanay, Jeffrey A Esq RENEWAL55Ioni Bowcher
1004Munro FerenczIndia2026-06-09Morlong Associates RENEWAL75Anna Fali
1005Rodrigues CampainCanada2026-06-12Dorl, James J Esq RENEWAL32Amy Elsner
1006Munro FerenczCanada2026-05-22Chapman, Ross E Esq RENEWAL21Anna Fali
1007Misaki RoysterGermany2026-06-07Chanay, Jeffrey A Esq NEW86Xuxue Feng
1008Antonio CaudyRussia2026-06-10Buckley Miller Wright UNQUALIFIED42Bernardo Dominic
1009Claire TollnerIndia2026-06-05Buckley Miller Wright UNQUALIFIED10Ioni Bowcher
1010Maisha RulapaughGermany2026-06-01Rousseaux, Michael Esq RENEWAL75Anna Fali
1011Nicolas IturbideArgentina2026-05-24Chapman, Ross E Esq NEGOTIATION88Onyama Limba
1012Deepesh ChuiBrazil2026-05-29Chanay, Jeffrey A Esq RENEWAL61Elwin Sharvill
1013Cody SaylorsUnited Kingdom2026-06-14Printing Dimensions UNQUALIFIED47Elwin Sharvill
1014Salvatore StockhamRussia2026-05-19King, Christopher A Esq QUALIFIED43Amy Elsner
1015Emily WhobreyCanada2026-05-25Rangoni Of Florence QUALIFIED24Xuxue Feng
1016Kadeem FlosiFrance2026-06-08Truhlar And Truhlar Attys NEW64Amy Elsner
1017Antonio CaudyGermany2026-06-13Feiner Bros UNQUALIFIED74Onyama Limba
1018Jones VocelkaJapan2026-06-08Rousseaux, Michael Esq PROPOSAL72Onyama Limba
1019Costa DilliardSpain2026-05-26Truhlar And Truhlar Attys RENEWAL22Xuxue Feng
1020Aditya KuskoBrazil2026-06-08Chanay, Jeffrey A Esq RENEWAL52Onyama Limba
1021Maria MarrierCanada2026-06-17Truhlar And Truhlar Attys RENEWAL55Bernardo Dominic
1022Kadeem FlosiIndia2026-06-15Chanay, Jeffrey A Esq RENEWAL13Onyama Limba
1023David DarakjyItaly2026-05-23Chapman, Ross E Esq QUALIFIED52Ioni Bowcher
1024Murillo MaletAustralia2026-06-13Printing Dimensions PROPOSAL0Bernardo Dominic
1025Maria MarrierGermany2026-05-20Commercial Press RENEWAL76Elwin Sharvill
1026Smith GlickArgentina2026-05-25Rangoni Of Florence PROPOSAL80Stephen Shaw
1027Darci PoquetteItaly2026-06-17Morlong Associates RENEWAL61Anna Fali
1028Leon OldroydGermany2026-06-09Commercial Press NEW87Ioni Bowcher
1029Leon OldroydJapan2026-06-15Truhlar And Truhlar Attys NEGOTIATION67Xuxue Feng
1030Salvatore StockhamArgentina2026-06-11Morlong Associates NEW39Asiya Javayant
1031Ricardo GauchoGermany2026-05-28Rangoni Of Florence PROPOSAL54Stephen Shaw
1032Johnson SergiIndia2026-06-07Commercial Press NEGOTIATION43Elwin Sharvill
1033Munro FerenczSpain2026-06-04Benton, John B Jr RENEWAL87Stephen Shaw
1034Deepesh ChuiUnited Kingdom2026-05-22Feltz Printing Service NEW18Xuxue Feng
1035Wickens NestleBrazil2026-06-03Printing Dimensions NEW48Bernardo Dominic
1036Francesco ShinkoSpain2026-06-07Chapman, Ross E Esq NEGOTIATION84Anna Fali
1037Costa DilliardIndia2026-05-31Morlong Associates UNQUALIFIED26Stephen Shaw
1038Antonio CaudyArgentina2026-06-07Truhlar And Truhlar Attys QUALIFIED9Xuxue Feng
1039Francesco ShinkoCanada2026-06-03King, Christopher A Esq PROPOSAL13Amy Elsner
1040Rodrigues CampainSpain2026-05-19Truhlar And Truhlar Attys RENEWAL45Ioni Bowcher
1041Greenwood BologniaItaly2026-05-30Buckley Miller Wright NEW30Ioni Bowcher
1042Francesco ShinkoFrance2026-06-14Dorl, James J Esq UNQUALIFIED78Elwin Sharvill
1043Mujtaba NickaGermany2026-06-02Rousseaux, Michael Esq NEGOTIATION58Asiya Javayant
1044Wickens NestleArgentina2026-06-13Morlong Associates PROPOSAL59Stephen Shaw
1045Jeanfrancois VenereCanada2026-06-13King, Christopher A Esq NEGOTIATION84Elwin Sharvill
1046Tony FollerCanada2026-06-11King, Christopher A Esq NEW70Onyama Limba
1047Adams MorascaCanada2026-05-21Dorl, James J Esq NEGOTIATION7Anna Fali
1048James ButtSpain2026-06-09Chemel, James L Cpa PROPOSAL34Xuxue Feng
1049Faith GillianUnited Kingdom2026-06-16Rangoni Of Florence NEGOTIATION53Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraAustraliaOnyama Limba RENEWAL
Costa DilliardItalyIvan Magalhaes UNQUALIFIED
Nicolas IturbideUnited KingdomStephen Shaw NEGOTIATION
Aditya KuskoFranceBernardo Dominic PROPOSAL
Cody SaylorsUnited KingdomAmy Elsner NEGOTIATION
Murillo MaletIndiaElwin Sharvill NEGOTIATION
Francesco ShinkoIndiaOnyama Limba UNQUALIFIED
Morrow RutaFranceStephen Shaw UNQUALIFIED
Murillo MaletSpainXuxue Feng RENEWAL
Morrow RutaCanadaAnna Fali NEW
Deepesh ChuiArgentinaElwin Sharvill NEGOTIATION
Johnson SergiIndiaStephen Shaw NEW
Munro FerenczAustraliaStephen Shaw QUALIFIED
Morrow RutaGermanyElwin Sharvill PROPOSAL
Cody SaylorsSpainIoni Bowcher QUALIFIED
Clifford RimUnited KingdomOnyama Limba RENEWAL
Aditya KuskoUnited KingdomStephen Shaw PROPOSAL
Nicolas IturbideCanadaBernardo Dominic UNQUALIFIED
Salvatore StockhamUnited KingdomAsiya Javayant QUALIFIED
Munro FerenczSpainAmy Elsner RENEWAL
Faith GillianGermanyElwin Sharvill NEW
Rodrigues CampainJapanAnna Fali QUALIFIED
Murillo MaletCanadaIoni Bowcher QUALIFIED
Arvin AlbaresIndiaXuxue Feng NEW
Jeanfrancois VenereCanadaIvan Magalhaes RENEWAL
Rodrigues CampainJapanAmy Elsner NEW
Costa DilliardAustraliaOnyama Limba PROPOSAL
Ashley DoeCanadaStephen Shaw RENEWAL
Julie StensethUnited KingdomStephen Shaw NEW
Aika InouyeBrazilOnyama Limba NEGOTIATION
Johnson SergiBrazilOnyama Limba NEGOTIATION
Claire TollnerGermanyElwin Sharvill NEW
Arvin AlbaresJapanElwin Sharvill PROPOSAL
Deepesh ChuiArgentinaXuxue Feng QUALIFIED
Mujtaba NickaSpainIoni Bowcher QUALIFIED
Mayumi KolmetzCanadaStephen Shaw NEW
Antonio CaudyIndiaAmy Elsner NEGOTIATION
Rodrigues CampainAustraliaAmy Elsner UNQUALIFIED
Maria MarrierFranceAnna Fali RENEWAL
Faith GillianIndiaIvan Magalhaes NEGOTIATION
Jennifer AmigonItalyOnyama Limba NEGOTIATION
Adams MorascaJapanBernardo Dominic NEGOTIATION
Misaki RoysterCanadaIoni Bowcher PROPOSAL
Arvin AlbaresArgentinaAmy Elsner RENEWAL
Cody SaylorsIndiaAsiya Javayant UNQUALIFIED
Octavia MaletAustraliaIoni Bowcher NEGOTIATION
Isabel BowleyRussiaBernardo Dominic RENEWAL
Maria MarrierBrazilAsiya Javayant UNQUALIFIED
Salvatore StockhamJapanXuxue Feng RENEWAL
David DarakjyFranceIvan Magalhaes PROPOSAL
Frozen Columns
Name
Nicolas Iturbide
Wickens Nestle
Deepesh Chui
Costa Dilliard
Aruna Figeroa
Kaitlin Ostrosky
Aditya Kusko
Maisha Rulapaugh
Munro Ferencz
Kadeem Flosi
Silvio Slusarski
Leja Caldarera
Costa Dilliard
Sinclair Waycott
Tony Foller
Izzy Garufi
Chavez Briddick
Costa Dilliard
Francesco Shinko
Sinclair Waycott
Salvatore Stockham
Isabel Bowley
Chavez Briddick
Darci Poquette
Johnson Sergi
Morrow Ruta
Munro Ferencz
Isabel Bowley
Rodrigues Campain
Antonio Caudy
Smith Glick
Costa Dilliard
Greenwood Bolognia
Aditya Kusko
Salvatore Stockham
Aditya Kusko
Julie Stenseth
Maria Marrier
Salvatore Stockham
Alejandro Perin
Munro Ferencz
Ashley Doe
Leja Caldarera
Jennifer Amigon
Mujtaba Nicka
Maria Marrier
Sinclair Waycott
Maisha Rulapaugh
Antonio Caudy
Izzy Garufi
IdCountryDate
1000Canada2026-06-02
1001Canada2026-05-23
1002Russia2026-06-04
1003Argentina2026-06-16
1004Canada2026-06-05
1005Japan2026-05-21
1006Germany2026-05-20
1007United Kingdom2026-05-30
1008Italy2026-06-15
1009Spain2026-05-25
1010France2026-05-20
1011United Kingdom2026-05-28
1012India2026-06-05
1013Russia2026-06-16
1014France2026-06-15
1015Japan2026-06-02
1016Spain2026-06-16
1017United Kingdom2026-06-13
1018Germany2026-05-21
1019Russia2026-06-17
1020Japan2026-06-08
1021France2026-06-11
1022United Kingdom2026-06-03
1023Spain2026-06-13
1024Italy2026-05-27
1025Canada2026-06-04
1026Japan2026-05-23
1027Germany2026-06-09
1028Japan2026-05-29
1029Russia2026-06-07
1030Germany2026-05-21
1031Italy2026-06-15
1032Germany2026-06-09
1033Argentina2026-05-24
1034France2026-05-30
1035Argentina2026-05-20
1036United Kingdom2026-05-28
1037Canada2026-05-21
1038Japan2026-05-21
1039Italy2026-06-06
1040Japan2026-06-10
1041United Kingdom2026-06-01
1042United Kingdom2026-06-08
1043France2026-05-20
1044Germany2026-05-29
1045Canada2026-05-27
1046India2026-06-11
1047Italy2026-06-06
1048Russia2026-06-16
1049Argentina2026-06-09

On-Demand Data

NameIdCountryDate
Clifford Rim1000Germany2026-06-06
Wickens Nestle1001Australia2026-05-25
Morrow Ruta1002India2026-06-13
Aruna Figeroa1003Australia2026-06-01
Nicolas Iturbide1004Japan2026-06-02
Morrow Ruta1005Australia2026-05-23
David Darakjy1006Spain2026-05-28
Stacey Maclead1007India2026-06-13
Octavia Malet1008Japan2026-05-27
Stacey Maclead1009Russia2026-05-19
Mujtaba Nicka1010Brazil2026-06-01
Greenwood Bolognia1011Japan2026-05-31
Sinclair Waycott1012Spain2026-06-15
James Butt1013Australia2026-06-13
Jennifer Amigon1014France2026-06-03
Ricardo Gaucho1015Italy2026-06-04
Tony Foller1016Germany2026-06-01
Munro Ferencz1017United Kingdom2026-06-05
Octavia Malet1018France2026-06-09
Chavez Briddick1019Japan2026-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletJapanBernardo Dominic PROPOSAL
Juan WieserBrazilIvan Magalhaes PROPOSAL
Nicolas IturbideJapanXuxue Feng NEW
Leja CaldareraRussiaAsiya Javayant PROPOSAL
Jefferson SchemmerRussiaAnna Fali NEGOTIATION
Maisha RulapaughItalyAnna Fali NEGOTIATION
Kadeem FlosiItalyXuxue Feng UNQUALIFIED
Isabel BowleySpainAsiya Javayant NEW
Aruna FigeroaBrazilAmy Elsner NEGOTIATION
Faith GillianBrazilIvan Magalhaes UNQUALIFIED
Kadeem FlosiUnited KingdomBernardo Dominic QUALIFIED
Costa DilliardCanadaAsiya Javayant NEW
Deepesh ChuiAustraliaStephen Shaw RENEWAL
Sinclair WaycottCanadaXuxue Feng PROPOSAL
Aika InouyeRussiaStephen Shaw NEGOTIATION
Costa DilliardAustraliaIvan Magalhaes UNQUALIFIED
Munro FerenczCanadaAsiya Javayant NEGOTIATION
Mujtaba NickaGermanyAsiya Javayant QUALIFIED
Faith GillianJapanIvan Magalhaes QUALIFIED
Izzy GarufiAustraliaElwin Sharvill RENEWAL
Rodrigues CampainRussiaIvan Magalhaes QUALIFIED
Leon OldroydRussiaAsiya Javayant UNQUALIFIED
Murillo MaletRussiaIoni Bowcher NEW
Isabel BowleyBrazilElwin Sharvill NEW
Silvio SlusarskiArgentinaXuxue Feng NEGOTIATION
Izzy GarufiAustraliaStephen Shaw NEGOTIATION
Wickens NestleIndiaAmy Elsner PROPOSAL
Mayumi KolmetzSpainOnyama Limba QUALIFIED
Silvio SlusarskiFranceAmy Elsner NEW
Kaitlin OstroskyRussiaXuxue Feng PROPOSAL
Izzy GarufiCanadaAnna Fali QUALIFIED
Nicolas IturbideBrazilBernardo Dominic UNQUALIFIED
Juan WieserJapanAsiya Javayant PROPOSAL
Salvatore StockhamBrazilStephen Shaw QUALIFIED
Adams MorascaUnited KingdomElwin Sharvill PROPOSAL
Mayumi KolmetzUnited KingdomOnyama Limba NEGOTIATION
Rodrigues CampainUnited KingdomAmy Elsner RENEWAL
Francesco ShinkoJapanAnna Fali RENEWAL
Costa DilliardIndiaElwin Sharvill UNQUALIFIED
Adams MorascaJapanBernardo Dominic RENEWAL

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