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
Johnson SergiFranceAmy Elsner NEGOTIATION
Mayumi KolmetzJapanOnyama Limba UNQUALIFIED
Mayumi KolmetzBrazilStephen Shaw UNQUALIFIED
Tony FollerJapanXuxue Feng UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill PROPOSAL
Greenwood BologniaFranceIvan Magalhaes NEW
Jennifer AmigonAustraliaAmy Elsner PROPOSAL
Aruna FigeroaAustraliaAsiya Javayant QUALIFIED
Smith GlickSpainAsiya Javayant RENEWAL
Octavia MaletCanadaAnna Fali NEW
Leja CaldareraIndiaIvan Magalhaes RENEWAL
Ivar PaprockiFranceIoni Bowcher UNQUALIFIED
Isabel BowleyIndiaXuxue Feng NEW
Julie StensethGermanyOnyama Limba PROPOSAL
Wickens NestleAustraliaAmy Elsner NEW
Murillo MaletUnited KingdomAnna Fali NEGOTIATION
Jennifer AmigonJapanIoni Bowcher NEW
Kadeem FlosiAustraliaStephen Shaw NEW
Leon OldroydAustraliaIvan Magalhaes RENEWAL
Alejandro PerinRussiaOnyama Limba UNQUALIFIED
Jennifer AmigonItalyAnna Fali NEGOTIATION
Mujtaba NickaGermanyAmy Elsner PROPOSAL
Aditya KuskoItalyAsiya Javayant PROPOSAL
Aruna FigeroaSpainElwin Sharvill RENEWAL
Clifford RimItalyXuxue Feng RENEWAL
Salvatore StockhamAustraliaAsiya Javayant RENEWAL
Arvin AlbaresItalyBernardo Dominic NEW
Sinclair WaycottAustraliaAsiya Javayant PROPOSAL
Emily WhobreyGermanyElwin Sharvill RENEWAL
Leon OldroydUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois VenereItalyAsiya Javayant UNQUALIFIED
Aditya KuskoItalyIoni Bowcher NEW
Sinclair WaycottBrazilAsiya Javayant QUALIFIED
Faith GillianItalyIvan Magalhaes RENEWAL
James ButtUnited KingdomIvan Magalhaes PROPOSAL
Maisha RulapaughCanadaIvan Magalhaes PROPOSAL
Murillo MaletIndiaAsiya Javayant RENEWAL
Leja CaldareraSpainIoni Bowcher PROPOSAL
Stacey MacleadArgentinaStephen Shaw QUALIFIED
Isabel BowleyFranceAsiya Javayant NEW
Rodrigues CampainBrazilElwin Sharvill RENEWAL
James ButtGermanyBernardo Dominic RENEWAL
Antonio CaudySpainAnna Fali RENEWAL
Jones VocelkaArgentinaIoni Bowcher NEGOTIATION
Clifford RimUnited KingdomIvan Magalhaes UNQUALIFIED
Claire TollnerAustraliaXuxue Feng RENEWAL
Morrow RutaIndiaAmy Elsner QUALIFIED
Francesco ShinkoArgentinaAsiya Javayant RENEWAL
Johnson SergiSpainBernardo Dominic NEW
Alejandro PerinCanadaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiBrazilXuxue Feng QUALIFIED
David DarakjyFranceAmy Elsner NEW
Alejandro PerinSpainElwin Sharvill PROPOSAL
Antonio CaudySpainBernardo Dominic NEW
Rodrigues CampainGermanyAsiya Javayant RENEWAL
Isabel BowleyFranceBernardo Dominic UNQUALIFIED
Sinclair WaycottSpainIvan Magalhaes RENEWAL
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
Morrow RutaGermanyXuxue Feng RENEWAL
Adams MorascaIndiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskyJapan2026-04-17Feltz Printing Service NEGOTIATION22Anna Fali
1001Leon OldroydCanada2026-04-22Chemel, James L Cpa RENEWAL38Ivan Magalhaes
1002Costa DilliardSpain2026-04-12Feltz Printing Service NEGOTIATION32Ioni Bowcher
1003Costa DilliardItaly2026-04-30Rousseaux, Michael Esq RENEWAL21Onyama Limba
1004Stacey MacleadBrazil2026-04-16Benton, John B Jr NEGOTIATION96Stephen Shaw
1005Octavia MaletGermany2026-05-04Benton, John B Jr UNQUALIFIED86Elwin Sharvill
1006Chavez BriddickBrazil2026-04-22Chanay, Jeffrey A Esq QUALIFIED57Bernardo Dominic
1007Jefferson SchemmerGermany2026-05-03Rangoni Of Florence PROPOSAL82Stephen Shaw
1008Faith GillianUnited Kingdom2026-04-18Commercial Press PROPOSAL1Stephen Shaw
1009Smith GlickUnited Kingdom2026-04-16Buckley Miller Wright RENEWAL48Onyama Limba
1010Kaitlin OstroskyCanada2026-04-14Buckley Miller Wright NEW11Xuxue Feng
1011Antonio CaudySpain2026-05-04Benton, John B Jr QUALIFIED26Stephen Shaw
1012Juan WieserGermany2026-05-02Benton, John B Jr QUALIFIED53Ioni Bowcher
1013James ButtFrance2026-04-06Feltz Printing Service NEW99Ivan Magalhaes
1014Johnson SergiArgentina2026-04-23Morlong Associates QUALIFIED45Amy Elsner
1015Tony FollerItaly2026-04-08Rangoni Of Florence NEGOTIATION2Stephen Shaw
1016Aika InouyeBrazil2026-04-30King, Christopher A Esq UNQUALIFIED56Ivan Magalhaes
1017Octavia MaletSpain2026-04-19Dorl, James J Esq NEW82Ivan Magalhaes
1018James ButtBrazil2026-04-06Buckley Miller Wright NEGOTIATION11Bernardo Dominic
1019Alejandro PerinBrazil2026-04-30Buckley Miller Wright NEGOTIATION59Anna Fali
1020Octavia MaletGermany2026-04-27Rousseaux, Michael Esq NEGOTIATION41Xuxue Feng
1021David DarakjyRussia2026-04-16Buckley Miller Wright QUALIFIED52Ivan Magalhaes
1022Sinclair WaycottSpain2026-04-10Commercial Press NEGOTIATION44Ivan Magalhaes
1023Salvatore StockhamRussia2026-05-01Buckley Miller Wright NEW64Ioni Bowcher
1024Faith GillianItaly2026-04-14Feiner Bros NEGOTIATION70Asiya Javayant
1025Greenwood BologniaArgentina2026-04-25Feltz Printing Service RENEWAL2Ioni Bowcher
1026Cody SaylorsGermany2026-04-09Truhlar And Truhlar Attys NEGOTIATION88Xuxue Feng
1027Leja CaldareraJapan2026-05-05Printing Dimensions NEGOTIATION15Stephen Shaw
1028Alejandro PerinArgentina2026-04-06Printing Dimensions PROPOSAL91Amy Elsner
1029Salvatore StockhamJapan2026-04-13Rousseaux, Michael Esq RENEWAL97Amy Elsner
1030Antonio CaudyBrazil2026-04-23King, Christopher A Esq NEW26Anna Fali
1031Salvatore StockhamBrazil2026-04-22Chemel, James L Cpa PROPOSAL89Asiya Javayant
1032Aika InouyeSpain2026-04-18Feiner Bros UNQUALIFIED0Amy Elsner
1033Mujtaba NickaUnited Kingdom2026-04-14Printing Dimensions NEW24Amy Elsner
1034Clifford RimBrazil2026-04-19Feltz Printing Service QUALIFIED30Xuxue Feng
1035Nicolas IturbideItaly2026-04-26Chemel, James L Cpa NEGOTIATION98Stephen Shaw
1036Jeanfrancois VenereSpain2026-04-30Chemel, James L Cpa NEGOTIATION9Anna Fali
1037Jennifer AmigonSpain2026-04-23Chemel, James L Cpa UNQUALIFIED88Ioni Bowcher
1038Arvin AlbaresBrazil2026-04-23Truhlar And Truhlar Attys NEW13Onyama Limba
1039Chavez BriddickIndia2026-04-18Printing Dimensions NEGOTIATION68Bernardo Dominic
1040Stacey MacleadAustralia2026-04-13Chemel, James L Cpa QUALIFIED20Ioni Bowcher
1041Leja CaldareraGermany2026-04-29Commercial Press PROPOSAL84Xuxue Feng
1042Greenwood BologniaUnited Kingdom2026-04-06Truhlar And Truhlar Attys NEGOTIATION11Anna Fali
1043Aruna FigeroaFrance2026-04-12Printing Dimensions QUALIFIED93Ivan Magalhaes
1044Salvatore StockhamJapan2026-05-01Feiner Bros RENEWAL60Stephen Shaw
1045Jones VocelkaCanada2026-04-12Chemel, James L Cpa RENEWAL79Ioni Bowcher
1046Salvatore StockhamUnited Kingdom2026-04-11Dorl, James J Esq NEGOTIATION96Bernardo Dominic
1047Jefferson SchemmerUnited Kingdom2026-04-15Rangoni Of Florence NEW51Ivan Magalhaes
1048Izzy GarufiBrazil2026-04-11Rousseaux, Michael Esq UNQUALIFIED98Ioni Bowcher
1049Sinclair WaycottUnited Kingdom2026-04-12Chapman, Ross E Esq NEGOTIATION1Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo MaletCanadaAnna Fali NEGOTIATION
Costa DilliardIndiaElwin Sharvill NEW
Salvatore StockhamGermanyAmy Elsner QUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic RENEWAL
James ButtJapanStephen Shaw NEGOTIATION
Jeanfrancois VenereGermanyBernardo Dominic NEW
Salvatore StockhamIndiaElwin Sharvill QUALIFIED
Isabel BowleyItalyIoni Bowcher PROPOSAL
Aditya KuskoSpainStephen Shaw NEGOTIATION
Maisha RulapaughArgentinaAmy Elsner QUALIFIED
Sinclair WaycottBrazilStephen Shaw PROPOSAL
David DarakjyGermanyElwin Sharvill NEGOTIATION
Silvio SlusarskiSpainAmy Elsner UNQUALIFIED
Julie StensethItalyXuxue Feng RENEWAL
Ashley DoeItalyIvan Magalhaes NEGOTIATION
Antonio CaudyArgentinaXuxue Feng NEGOTIATION
Costa DilliardItalyAnna Fali NEW
Jeanfrancois VenereFranceXuxue Feng NEW
Adams MorascaCanadaAnna Fali UNQUALIFIED
Jennifer AmigonCanadaBernardo Dominic NEGOTIATION
Octavia MaletBrazilAmy Elsner NEW
Silvio SlusarskiRussiaIvan Magalhaes QUALIFIED
Juan WieserFranceAmy Elsner PROPOSAL
Jeanfrancois VenereBrazilXuxue Feng RENEWAL
Kaitlin OstroskyJapanOnyama Limba UNQUALIFIED
Alejandro PerinArgentinaAsiya Javayant UNQUALIFIED
Emily WhobreySpainElwin Sharvill QUALIFIED
James ButtJapanXuxue Feng QUALIFIED
Rodrigues CampainFranceAnna Fali QUALIFIED
Izzy GarufiCanadaOnyama Limba NEGOTIATION
Clifford RimAustraliaOnyama Limba RENEWAL
Stacey MacleadFranceIvan Magalhaes NEGOTIATION
Octavia MaletCanadaElwin Sharvill PROPOSAL
Leja CaldareraGermanyIvan Magalhaes NEGOTIATION
Smith GlickIndiaAmy Elsner QUALIFIED
Clifford RimGermanyAsiya Javayant NEGOTIATION
Clifford RimFranceXuxue Feng PROPOSAL
Isabel BowleyRussiaIoni Bowcher RENEWAL
Tony FollerFranceStephen Shaw NEGOTIATION
Emily WhobreyGermanyXuxue Feng QUALIFIED
Silvio SlusarskiRussiaXuxue Feng QUALIFIED
Costa DilliardItalyBernardo Dominic RENEWAL
Murillo MaletRussiaElwin Sharvill RENEWAL
Munro FerenczSpainAmy Elsner PROPOSAL
Stacey MacleadFranceOnyama Limba NEGOTIATION
Jennifer AmigonAustraliaAnna Fali NEW
Mujtaba NickaItalyIvan Magalhaes RENEWAL
Nicolas IturbideJapanXuxue Feng QUALIFIED
Claire TollnerRussiaBernardo Dominic QUALIFIED
Murillo MaletBrazilIvan Magalhaes NEW
Frozen Columns
Name
Claire Tollner
Johnson Sergi
Octavia Malet
Greenwood Bolognia
Morrow Ruta
Smith Glick
Jeanfrancois Venere
Izzy Garufi
Silvio Slusarski
Deepesh Chui
Faith Gillian
Izzy Garufi
Octavia Malet
Jefferson Schemmer
Emily Whobrey
Costa Dilliard
Cody Saylors
Munro Ferencz
Leja Caldarera
Antonio Caudy
Sinclair Waycott
Ricardo Gaucho
Salvatore Stockham
Maria Marrier
Misaki Royster
Ricardo Gaucho
Mayumi Kolmetz
Chavez Briddick
Kadeem Flosi
Morrow Ruta
Stacey Maclead
Clifford Rim
Greenwood Bolognia
Costa Dilliard
Wickens Nestle
Antonio Caudy
Alejandro Perin
Jefferson Schemmer
David Darakjy
Smith Glick
Maisha Rulapaugh
Wickens Nestle
Claire Tollner
Jones Vocelka
Ricardo Gaucho
Deepesh Chui
Ashley Doe
Morrow Ruta
Silvio Slusarski
Aditya Kusko
IdCountryDate
1000France2026-04-07
1001Argentina2026-05-03
1002Argentina2026-04-07
1003Russia2026-04-28
1004India2026-04-11
1005Italy2026-04-29
1006Japan2026-04-26
1007Canada2026-04-19
1008Argentina2026-04-16
1009Russia2026-05-05
1010Japan2026-04-14
1011India2026-04-18
1012Spain2026-04-16
1013Italy2026-04-08
1014Italy2026-04-06
1015France2026-04-13
1016Australia2026-04-14
1017India2026-04-12
1018Japan2026-04-17
1019Germany2026-04-14
1020Russia2026-04-21
1021India2026-04-06
1022United Kingdom2026-04-09
1023Argentina2026-05-02
1024Canada2026-04-17
1025Italy2026-05-04
1026Spain2026-05-02
1027Japan2026-04-30
1028Germany2026-04-11
1029Canada2026-04-20
1030Italy2026-04-28
1031Spain2026-05-02
1032Germany2026-04-20
1033Japan2026-04-10
1034Canada2026-04-07
1035Italy2026-05-03
1036Italy2026-04-16
1037Argentina2026-04-09
1038Spain2026-04-15
1039Italy2026-04-23
1040Germany2026-04-24
1041Canada2026-04-07
1042France2026-04-11
1043Italy2026-05-03
1044Italy2026-04-19
1045Germany2026-04-07
1046Spain2026-04-27
1047India2026-04-20
1048Italy2026-05-03
1049Canada2026-04-29

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000India2026-04-14
Octavia Malet1001Japan2026-05-01
Octavia Malet1002Argentina2026-05-01
Claire Tollner1003India2026-04-11
Maisha Rulapaugh1004Australia2026-04-29
Darci Poquette1005Spain2026-04-15
Jones Vocelka1006Italy2026-04-16
Wickens Nestle1007United Kingdom2026-04-29
Aditya Kusko1008Brazil2026-04-27
Arvin Albares1009Japan2026-05-01
Juan Wieser1010Germany2026-04-29
Kadeem Flosi1011India2026-04-09
Sinclair Waycott1012Italy2026-04-30
Isabel Bowley1013France2026-05-01
Rodrigues Campain1014Brazil2026-04-23
Clifford Rim1015Italy2026-05-05
Wickens Nestle1016Russia2026-04-20
Murillo Malet1017India2026-04-10
Smith Glick1018Brazil2026-04-18
Aika Inouye1019Canada2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiCanadaStephen Shaw PROPOSAL
Tony FollerSpainIvan Magalhaes QUALIFIED
Octavia MaletIndiaAsiya Javayant NEGOTIATION
Cody SaylorsArgentinaElwin Sharvill RENEWAL
Maria MarrierFranceElwin Sharvill NEW
Jeanfrancois VenereFranceStephen Shaw NEGOTIATION
Darci PoquetteSpainBernardo Dominic NEGOTIATION
Smith GlickCanadaElwin Sharvill UNQUALIFIED
Jones VocelkaItalyXuxue Feng RENEWAL
Emily WhobreyFranceOnyama Limba NEW
James ButtItalyStephen Shaw PROPOSAL
Mayumi KolmetzSpainOnyama Limba PROPOSAL
Francesco ShinkoItalyXuxue Feng QUALIFIED
Izzy GarufiUnited KingdomElwin Sharvill NEGOTIATION
Maria MarrierJapanXuxue Feng PROPOSAL
Darci PoquetteGermanyBernardo Dominic PROPOSAL
Cody SaylorsGermanyAsiya Javayant UNQUALIFIED
Isabel BowleySpainAmy Elsner UNQUALIFIED
Mayumi KolmetzArgentinaAmy Elsner UNQUALIFIED
Jefferson SchemmerUnited KingdomAmy Elsner NEW
Ricardo GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Cody SaylorsArgentinaXuxue Feng QUALIFIED
Izzy GarufiCanadaBernardo Dominic NEGOTIATION
Silvio SlusarskiIndiaAnna Fali UNQUALIFIED
Leon OldroydJapanAnna Fali RENEWAL
Murillo MaletItalyIvan Magalhaes NEW
Rodrigues CampainUnited KingdomBernardo Dominic PROPOSAL
Chavez BriddickItalyAmy Elsner UNQUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes RENEWAL
Darci PoquetteSpainAmy Elsner UNQUALIFIED
Antonio CaudyIndiaIvan Magalhaes PROPOSAL
Jennifer AmigonGermanyBernardo Dominic RENEWAL
Mayumi KolmetzGermanyOnyama Limba NEW
Leon OldroydItalyAmy Elsner UNQUALIFIED
Clifford RimJapanElwin Sharvill QUALIFIED
Tony FollerBrazilIoni Bowcher QUALIFIED
Mayumi KolmetzGermanyAsiya Javayant PROPOSAL
Aika InouyeFranceAnna Fali QUALIFIED
Aruna FigeroaArgentinaIoni Bowcher RENEWAL
Leon OldroydCanadaAsiya Javayant 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>