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
Leon OldroydArgentinaOnyama Limba NEW
Adams MorascaCanadaBernardo Dominic NEGOTIATION
Ivar PaprockiBrazilIoni Bowcher NEGOTIATION
Isabel BowleyJapanStephen Shaw QUALIFIED
Murillo MaletUnited KingdomAmy Elsner NEW
Rodrigues CampainFranceAmy Elsner UNQUALIFIED
Kaitlin OstroskyBrazilStephen Shaw UNQUALIFIED
Sinclair WaycottItalyIoni Bowcher NEW
James ButtJapanXuxue Feng NEGOTIATION
Salvatore StockhamItalyBernardo Dominic QUALIFIED
Greenwood BologniaIndiaElwin Sharvill NEGOTIATION
Chavez BriddickUnited KingdomElwin Sharvill RENEWAL
Salvatore StockhamItalyStephen Shaw UNQUALIFIED
Tony FollerJapanAmy Elsner NEW
Ivar PaprockiAustraliaAnna Fali QUALIFIED
Jennifer AmigonBrazilElwin Sharvill NEGOTIATION
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Chavez BriddickUnited KingdomAnna Fali NEGOTIATION
Johnson SergiRussiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaRussiaElwin Sharvill NEGOTIATION
Mujtaba NickaArgentinaAnna Fali PROPOSAL
Jefferson SchemmerGermanyAnna Fali QUALIFIED
Kaitlin OstroskyRussiaBernardo Dominic PROPOSAL
Mayumi KolmetzRussiaBernardo Dominic NEGOTIATION
Munro FerenczRussiaAmy Elsner UNQUALIFIED
Munro FerenczAustraliaXuxue Feng QUALIFIED
Munro FerenczSpainStephen Shaw NEW
Claire TollnerJapanIoni Bowcher UNQUALIFIED
Ivar PaprockiArgentinaAnna Fali UNQUALIFIED
Cody SaylorsSpainOnyama Limba RENEWAL
Morrow RutaRussiaOnyama Limba PROPOSAL
Smith GlickUnited KingdomXuxue Feng NEW
Misaki RoysterFranceBernardo Dominic RENEWAL
Rodrigues CampainAustraliaIoni Bowcher UNQUALIFIED
Mujtaba NickaIndiaElwin Sharvill UNQUALIFIED
Ivar PaprockiSpainStephen Shaw UNQUALIFIED
Antonio CaudyGermanyOnyama Limba NEGOTIATION
Mujtaba NickaRussiaXuxue Feng NEW
Chavez BriddickItalyStephen Shaw QUALIFIED
Wickens NestleIndiaIvan Magalhaes QUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant NEW
Ashley DoeIndiaAsiya Javayant NEW
Jones VocelkaFranceOnyama Limba NEGOTIATION
Clifford RimAustraliaAsiya Javayant RENEWAL
Deepesh ChuiSpainStephen Shaw QUALIFIED
Isabel BowleyIndiaBernardo Dominic RENEWAL
Faith GillianCanadaXuxue Feng RENEWAL
Jones VocelkaItalyElwin Sharvill NEGOTIATION
Aika InouyeIndiaXuxue Feng RENEWAL
Cody SaylorsCanadaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Julie StensethArgentinaElwin Sharvill NEGOTIATION
Isabel BowleyUnited KingdomIoni Bowcher NEGOTIATION
Johnson SergiRussiaAsiya Javayant NEW
Murillo MaletJapanStephen Shaw QUALIFIED
Smith GlickJapanStephen Shaw RENEWAL
Salvatore StockhamRussiaStephen Shaw NEW
Maria MarrierItalyElwin Sharvill NEW
Claire TollnerSpainIoni Bowcher QUALIFIED
Octavia MaletArgentinaBernardo Dominic NEGOTIATION
Munro FerenczSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeFrance2026-06-06Benton, John B Jr RENEWAL76Ivan Magalhaes
1001Stacey MacleadGermany2026-05-29Chanay, Jeffrey A Esq NEW92Ioni Bowcher
1002Kaitlin OstroskyItaly2026-05-23Truhlar And Truhlar Attys RENEWAL71Stephen Shaw
1003Octavia MaletFrance2026-05-30Feiner Bros QUALIFIED77Elwin Sharvill
1004Julie StensethArgentina2026-05-22Rangoni Of Florence QUALIFIED82Elwin Sharvill
1005Leon OldroydBrazil2026-06-11Feltz Printing Service PROPOSAL52Xuxue Feng
1006Kaitlin OstroskyBrazil2026-05-20Chemel, James L Cpa NEW17Asiya Javayant
1007Jeanfrancois VenereAustralia2026-05-31Truhlar And Truhlar Attys NEW74Ivan Magalhaes
1008Cody SaylorsRussia2026-05-28Truhlar And Truhlar Attys NEGOTIATION85Bernardo Dominic
1009Salvatore StockhamUnited Kingdom2026-06-01Feltz Printing Service NEGOTIATION70Bernardo Dominic
1010Costa DilliardBrazil2026-05-13Printing Dimensions PROPOSAL30Elwin Sharvill
1011Deepesh ChuiUnited Kingdom2026-05-22Chapman, Ross E Esq NEGOTIATION30Amy Elsner
1012Chavez BriddickAustralia2026-06-06Chanay, Jeffrey A Esq NEGOTIATION33Elwin Sharvill
1013James ButtRussia2026-05-24Feiner Bros UNQUALIFIED16Ioni Bowcher
1014Octavia MaletIndia2026-05-16Morlong Associates RENEWAL52Stephen Shaw
1015Ricardo GauchoAustralia2026-05-20Commercial Press QUALIFIED45Stephen Shaw
1016David DarakjyRussia2026-06-09Chapman, Ross E Esq QUALIFIED64Asiya Javayant
1017Misaki RoysterSpain2026-06-10Rangoni Of Florence PROPOSAL56Xuxue Feng
1018Juan WieserItaly2026-06-03Buckley Miller Wright PROPOSAL5Bernardo Dominic
1019Johnson SergiSpain2026-06-10Rangoni Of Florence NEW75Amy Elsner
1020Leon OldroydIndia2026-05-27Benton, John B Jr RENEWAL27Xuxue Feng
1021Kaitlin OstroskyJapan2026-05-30Chemel, James L Cpa NEW28Elwin Sharvill
1022Aruna FigeroaJapan2026-05-13Benton, John B Jr RENEWAL77Asiya Javayant
1023Chavez BriddickAustralia2026-05-18Printing Dimensions PROPOSAL75Xuxue Feng
1024Arvin AlbaresSpain2026-05-16Chapman, Ross E Esq PROPOSAL60Asiya Javayant
1025Jefferson SchemmerUnited Kingdom2026-05-22Printing Dimensions QUALIFIED51Ivan Magalhaes
1026Ricardo GauchoAustralia2026-06-01Chanay, Jeffrey A Esq RENEWAL63Ivan Magalhaes
1027Isabel BowleyBrazil2026-05-20Rousseaux, Michael Esq NEW77Xuxue Feng
1028Johnson SergiJapan2026-05-20Morlong Associates QUALIFIED86Amy Elsner
1029Ashley DoeFrance2026-05-29Chanay, Jeffrey A Esq UNQUALIFIED35Ioni Bowcher
1030Aditya KuskoGermany2026-05-24Buckley Miller Wright RENEWAL93Asiya Javayant
1031David DarakjyGermany2026-05-25Rangoni Of Florence QUALIFIED92Amy Elsner
1032Izzy GarufiAustralia2026-05-31Dorl, James J Esq NEW91Anna Fali
1033Wickens NestleUnited Kingdom2026-05-27Feiner Bros PROPOSAL85Xuxue Feng
1034Mujtaba NickaArgentina2026-05-17Commercial Press NEW77Stephen Shaw
1035Ricardo GauchoCanada2026-05-21King, Christopher A Esq QUALIFIED60Xuxue Feng
1036Maisha RulapaughItaly2026-05-27Rangoni Of Florence QUALIFIED80Asiya Javayant
1037Jeanfrancois VenereRussia2026-05-31Benton, John B Jr NEW16Stephen Shaw
1038Clifford RimIndia2026-06-07Rousseaux, Michael Esq NEW48Onyama Limba
1039Sinclair WaycottJapan2026-05-17Rousseaux, Michael Esq RENEWAL28Bernardo Dominic
1040Leja CaldareraFrance2026-05-16Chemel, James L Cpa PROPOSAL65Xuxue Feng
1041Jones VocelkaArgentina2026-06-03Benton, John B Jr NEGOTIATION49Xuxue Feng
1042Aika InouyeFrance2026-05-18Rangoni Of Florence PROPOSAL48Asiya Javayant
1043Ashley DoeFrance2026-05-21Dorl, James J Esq NEW59Elwin Sharvill
1044Wickens NestleJapan2026-06-06Rangoni Of Florence RENEWAL42Stephen Shaw
1045Adams MorascaSpain2026-05-29Chapman, Ross E Esq NEGOTIATION71Stephen Shaw
1046Leon OldroydSpain2026-05-27Commercial Press PROPOSAL53Bernardo Dominic
1047Salvatore StockhamIndia2026-05-14Dorl, James J Esq RENEWAL60Bernardo Dominic
1048Ricardo GauchoSpain2026-06-11Morlong Associates UNQUALIFIED5Ioni Bowcher
1049Smith GlickGermany2026-05-23Morlong Associates NEW97Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerRussiaBernardo Dominic QUALIFIED
Chavez BriddickCanadaElwin Sharvill NEGOTIATION
Antonio CaudySpainAsiya Javayant NEW
Stacey MacleadItalyOnyama Limba NEGOTIATION
James ButtAustraliaStephen Shaw NEW
Leja CaldareraGermanyIvan Magalhaes UNQUALIFIED
Costa DilliardUnited KingdomXuxue Feng UNQUALIFIED
Wickens NestleGermanyIoni Bowcher NEW
Aruna FigeroaRussiaIvan Magalhaes NEW
Ashley DoeIndiaStephen Shaw QUALIFIED
James ButtItalyAnna Fali PROPOSAL
Nicolas IturbideRussiaAsiya Javayant NEGOTIATION
Ashley DoeArgentinaIoni Bowcher RENEWAL
Darci PoquetteGermanyAmy Elsner QUALIFIED
Ashley DoeJapanElwin Sharvill PROPOSAL
Aditya KuskoAustraliaIoni Bowcher QUALIFIED
Mujtaba NickaFranceXuxue Feng NEGOTIATION
Murillo MaletCanadaIvan Magalhaes UNQUALIFIED
Munro FerenczSpainIvan Magalhaes QUALIFIED
Salvatore StockhamFranceIvan Magalhaes PROPOSAL
Maisha RulapaughAustraliaOnyama Limba NEGOTIATION
Cody SaylorsGermanyAnna Fali PROPOSAL
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Ashley DoeGermanyIvan Magalhaes QUALIFIED
Stacey MacleadFranceElwin Sharvill PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher NEGOTIATION
Jones VocelkaRussiaElwin Sharvill QUALIFIED
Izzy GarufiSpainAmy Elsner PROPOSAL
Stacey MacleadRussiaIoni Bowcher NEW
Costa DilliardItalyBernardo Dominic PROPOSAL
Francesco ShinkoGermanyBernardo Dominic NEW
Greenwood BologniaSpainOnyama Limba RENEWAL
Maria MarrierAustraliaBernardo Dominic UNQUALIFIED
Chavez BriddickIndiaAmy Elsner UNQUALIFIED
Smith GlickAustraliaBernardo Dominic PROPOSAL
Sinclair WaycottRussiaAsiya Javayant QUALIFIED
Ashley DoeFranceAnna Fali UNQUALIFIED
Claire TollnerAustraliaAsiya Javayant RENEWAL
Tony FollerItalyBernardo Dominic NEW
Aruna FigeroaIndiaOnyama Limba UNQUALIFIED
Nicolas IturbideGermanyOnyama Limba QUALIFIED
Murillo MaletUnited KingdomIoni Bowcher NEW
Emily WhobreyFranceElwin Sharvill NEGOTIATION
Faith GillianRussiaAnna Fali NEGOTIATION
Aika InouyeFranceAmy Elsner NEW
Jennifer AmigonArgentinaAmy Elsner PROPOSAL
Octavia MaletIndiaIvan Magalhaes NEGOTIATION
Sinclair WaycottIndiaIoni Bowcher PROPOSAL
Leon OldroydFranceAnna Fali NEW
Greenwood BologniaAustraliaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Munro Ferencz
Silvio Slusarski
Clifford Rim
Aditya Kusko
Murillo Malet
Julie Stenseth
Stacey Maclead
Jones Vocelka
Antonio Caudy
Silvio Slusarski
Francesco Shinko
Chavez Briddick
Ricardo Gaucho
Alejandro Perin
Faith Gillian
Aditya Kusko
Clifford Rim
Ricardo Gaucho
David Darakjy
Jones Vocelka
Chavez Briddick
Juan Wieser
Wickens Nestle
Leja Caldarera
Rodrigues Campain
Aditya Kusko
Nicolas Iturbide
Clifford Rim
Clifford Rim
Kadeem Flosi
Jefferson Schemmer
Emily Whobrey
Claire Tollner
Ashley Doe
Jennifer Amigon
Nicolas Iturbide
Aditya Kusko
Wickens Nestle
David Darakjy
Julie Stenseth
Juan Wieser
Silvio Slusarski
David Darakjy
Tony Foller
Tony Foller
Chavez Briddick
Jeanfrancois Venere
Nicolas Iturbide
Mayumi Kolmetz
Chavez Briddick
IdCountryDate
1000United Kingdom2026-05-27
1001Spain2026-06-06
1002Canada2026-05-18
1003Italy2026-05-26
1004France2026-05-22
1005United Kingdom2026-06-11
1006Japan2026-06-04
1007Spain2026-05-14
1008Brazil2026-05-14
1009United Kingdom2026-05-26
1010Brazil2026-06-08
1011Brazil2026-06-02
1012Australia2026-05-20
1013Spain2026-05-26
1014Argentina2026-05-14
1015Argentina2026-05-13
1016Spain2026-06-08
1017Australia2026-06-10
1018France2026-05-17
1019India2026-05-24
1020Canada2026-05-13
1021Spain2026-05-29
1022Australia2026-05-17
1023France2026-05-16
1024Australia2026-05-22
1025Argentina2026-05-23
1026Germany2026-05-29
1027Germany2026-05-23
1028Canada2026-05-17
1029Brazil2026-06-07
1030Japan2026-06-06
1031France2026-06-02
1032Italy2026-05-20
1033France2026-06-10
1034Brazil2026-05-27
1035Australia2026-05-20
1036Japan2026-05-14
1037Russia2026-06-01
1038Japan2026-05-30
1039Germany2026-05-28
1040Spain2026-05-22
1041France2026-05-15
1042Russia2026-06-05
1043Brazil2026-05-21
1044Russia2026-06-03
1045Germany2026-05-15
1046United Kingdom2026-06-01
1047India2026-06-07
1048Canada2026-05-30
1049Argentina2026-06-01

On-Demand Data

NameIdCountryDate
Tony Foller1000Italy2026-06-11
Johnson Sergi1001Germany2026-06-08
Leja Caldarera1002Argentina2026-05-26
Octavia Malet1003Spain2026-05-22
Ashley Doe1004Italy2026-06-11
Aruna Figeroa1005Canada2026-05-24
Antonio Caudy1006France2026-06-03
Deepesh Chui1007France2026-06-11
Darci Poquette1008Spain2026-05-27
Isabel Bowley1009United Kingdom2026-06-08
Mujtaba Nicka1010France2026-06-04
Chavez Briddick1011Italy2026-05-27
Isabel Bowley1012Brazil2026-06-01
Greenwood Bolognia1013Russia2026-05-30
Mayumi Kolmetz1014United Kingdom2026-05-16
Rodrigues Campain1015India2026-05-30
Aruna Figeroa1016Spain2026-05-23
Jones Vocelka1017Italy2026-05-14
James Butt1018Argentina2026-05-15
David Darakjy1019Japan2026-05-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethSpainStephen Shaw RENEWAL
Stacey MacleadJapanIvan Magalhaes UNQUALIFIED
Darci PoquetteIndiaAsiya Javayant NEGOTIATION
Rodrigues CampainGermanyXuxue Feng PROPOSAL
Johnson SergiRussiaElwin Sharvill UNQUALIFIED
Claire TollnerCanadaElwin Sharvill NEW
Munro FerenczAustraliaIvan Magalhaes NEW
Jones VocelkaAustraliaElwin Sharvill RENEWAL
Wickens NestleAustraliaXuxue Feng UNQUALIFIED
Ivar PaprockiIndiaAmy Elsner NEGOTIATION
Mujtaba NickaRussiaBernardo Dominic PROPOSAL
Claire TollnerSpainOnyama Limba QUALIFIED
Tony FollerBrazilAmy Elsner NEGOTIATION
Tony FollerArgentinaBernardo Dominic UNQUALIFIED
Julie StensethItalyElwin Sharvill PROPOSAL
Faith GillianSpainStephen Shaw NEW
Jones VocelkaGermanyStephen Shaw NEW
Deepesh ChuiRussiaAnna Fali RENEWAL
Faith GillianGermanyBernardo Dominic UNQUALIFIED
Ricardo GauchoIndiaStephen Shaw QUALIFIED
Munro FerenczArgentinaElwin Sharvill UNQUALIFIED
Greenwood BologniaGermanyBernardo Dominic NEGOTIATION
Misaki RoysterCanadaXuxue Feng RENEWAL
David DarakjyAustraliaAnna Fali PROPOSAL
Maisha RulapaughRussiaAnna Fali PROPOSAL
Antonio CaudyJapanElwin Sharvill RENEWAL
Maisha RulapaughRussiaElwin Sharvill RENEWAL
Francesco ShinkoCanadaAsiya Javayant NEGOTIATION
Juan WieserItalyAnna Fali UNQUALIFIED
Leja CaldareraArgentinaAnna Fali NEGOTIATION
Leja CaldareraSpainXuxue Feng PROPOSAL
Sinclair WaycottRussiaIoni Bowcher UNQUALIFIED
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Munro FerenczBrazilAmy Elsner QUALIFIED
Emily WhobreyArgentinaAsiya Javayant NEGOTIATION
Sinclair WaycottArgentinaAmy Elsner RENEWAL
Aika InouyeBrazilIoni Bowcher NEGOTIATION
Munro FerenczSpainOnyama Limba NEW
James ButtSpainElwin Sharvill RENEWAL
Arvin AlbaresItalyAnna Fali QUALIFIED

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