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
Aditya KuskoFranceAsiya Javayant NEW
Julie StensethRussiaAsiya Javayant UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher UNQUALIFIED
Kaitlin OstroskyGermanyBernardo Dominic RENEWAL
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughRussiaIvan Magalhaes RENEWAL
Chavez BriddickArgentinaIvan Magalhaes UNQUALIFIED
Chavez BriddickSpainElwin Sharvill PROPOSAL
Cody SaylorsFranceStephen Shaw PROPOSAL
Johnson SergiFranceBernardo Dominic QUALIFIED
Chavez BriddickFranceAnna Fali UNQUALIFIED
Morrow RutaRussiaElwin Sharvill NEGOTIATION
Tony FollerIndiaOnyama Limba RENEWAL
Adams MorascaUnited KingdomIvan Magalhaes RENEWAL
Octavia MaletJapanAsiya Javayant QUALIFIED
Faith GillianItalyBernardo Dominic QUALIFIED
Jennifer AmigonUnited KingdomAnna Fali RENEWAL
Kadeem FlosiCanadaStephen Shaw UNQUALIFIED
Wickens NestleAustraliaStephen Shaw RENEWAL
Mayumi KolmetzFranceXuxue Feng PROPOSAL
Aruna FigeroaAustraliaBernardo Dominic PROPOSAL
Ricardo GauchoJapanIvan Magalhaes NEW
Octavia MaletCanadaStephen Shaw RENEWAL
Johnson SergiSpainXuxue Feng UNQUALIFIED
Isabel BowleyCanadaIvan Magalhaes UNQUALIFIED
Antonio CaudyAustraliaIvan Magalhaes RENEWAL
Leon OldroydFranceOnyama Limba QUALIFIED
James ButtItalyAsiya Javayant UNQUALIFIED
David DarakjyAustraliaElwin Sharvill NEGOTIATION
Leon OldroydJapanAmy Elsner NEW
Octavia MaletFranceOnyama Limba NEGOTIATION
Stacey MacleadBrazilAsiya Javayant NEGOTIATION
Alejandro PerinUnited KingdomAmy Elsner PROPOSAL
Adams MorascaGermanyIoni Bowcher NEGOTIATION
Adams MorascaItalyAnna Fali NEW
Rodrigues CampainUnited KingdomIoni Bowcher QUALIFIED
Mayumi KolmetzIndiaAsiya Javayant NEW
Alejandro PerinCanadaXuxue Feng QUALIFIED
Ricardo GauchoCanadaIoni Bowcher NEW
Arvin AlbaresSpainOnyama Limba UNQUALIFIED
Cody SaylorsGermanyBernardo Dominic NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill PROPOSAL
Aditya KuskoBrazilXuxue Feng RENEWAL
Wickens NestleBrazilIvan Magalhaes UNQUALIFIED
Greenwood BologniaSpainOnyama Limba NEGOTIATION
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Isabel BowleyJapanAsiya Javayant NEGOTIATION
Deepesh ChuiBrazilBernardo Dominic PROPOSAL
Leja CaldareraSpainStephen Shaw NEGOTIATION
Isabel BowleyIndiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzArgentinaAsiya Javayant PROPOSAL
Deepesh ChuiRussiaStephen Shaw UNQUALIFIED
Ashley DoeAustraliaBernardo Dominic RENEWAL
James ButtJapanXuxue Feng PROPOSAL
Francesco ShinkoUnited KingdomAnna Fali UNQUALIFIED
Ricardo GauchoItalyAsiya Javayant QUALIFIED
Arvin AlbaresJapanAnna Fali QUALIFIED
Darci PoquetteArgentinaStephen Shaw UNQUALIFIED
Misaki RoysterGermanyStephen Shaw NEGOTIATION
Aditya KuskoAustraliaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtUnited Kingdom2026-04-29Chanay, Jeffrey A Esq PROPOSAL84Elwin Sharvill
1001Greenwood BologniaAustralia2026-04-27Chemel, James L Cpa RENEWAL65Asiya Javayant
1002Ivar PaprockiSpain2026-04-29Chemel, James L Cpa QUALIFIED69Xuxue Feng
1003Silvio SlusarskiIndia2026-05-10Benton, John B Jr QUALIFIED80Anna Fali
1004Murillo MaletFrance2026-05-24Dorl, James J Esq QUALIFIED13Ivan Magalhaes
1005Smith GlickSpain2026-05-22Rangoni Of Florence UNQUALIFIED98Stephen Shaw
1006Jones VocelkaGermany2026-05-21Benton, John B Jr RENEWAL57Elwin Sharvill
1007Sinclair WaycottAustralia2026-05-20King, Christopher A Esq NEW18Anna Fali
1008Kaitlin OstroskyAustralia2026-05-15Dorl, James J Esq RENEWAL77Elwin Sharvill
1009Leja CaldareraAustralia2026-05-02Truhlar And Truhlar Attys NEW77Xuxue Feng
1010Claire TollnerJapan2026-05-09Chemel, James L Cpa PROPOSAL72Onyama Limba
1011Adams MorascaAustralia2026-04-27Benton, John B Jr NEW97Ivan Magalhaes
1012Isabel BowleyIndia2026-05-14Chapman, Ross E Esq QUALIFIED57Asiya Javayant
1013Deepesh ChuiArgentina2026-04-28Feiner Bros PROPOSAL45Asiya Javayant
1014Sinclair WaycottItaly2026-05-05Printing Dimensions PROPOSAL26Ivan Magalhaes
1015Sinclair WaycottAustralia2026-05-15King, Christopher A Esq UNQUALIFIED70Asiya Javayant
1016Aditya KuskoCanada2026-05-25Feltz Printing Service NEW30Amy Elsner
1017Jeanfrancois VenereGermany2026-05-13Commercial Press QUALIFIED71Asiya Javayant
1018Ricardo GauchoIndia2026-05-15Benton, John B Jr QUALIFIED9Xuxue Feng
1019Francesco ShinkoBrazil2026-05-03Dorl, James J Esq NEW64Ivan Magalhaes
1020Misaki RoysterAustralia2026-05-24Rangoni Of Florence RENEWAL8Onyama Limba
1021Costa DilliardSpain2026-05-19Rousseaux, Michael Esq RENEWAL11Ivan Magalhaes
1022Kadeem FlosiItaly2026-05-09Dorl, James J Esq RENEWAL51Asiya Javayant
1023Francesco ShinkoGermany2026-05-18Commercial Press PROPOSAL96Asiya Javayant
1024Nicolas IturbideFrance2026-05-17Buckley Miller Wright NEGOTIATION79Elwin Sharvill
1025Octavia MaletSpain2026-04-30Chemel, James L Cpa NEW83Asiya Javayant
1026Maisha RulapaughArgentina2026-05-16Commercial Press QUALIFIED47Bernardo Dominic
1027Antonio CaudyFrance2026-05-09Feltz Printing Service NEW18Bernardo Dominic
1028Nicolas IturbideArgentina2026-05-16Rousseaux, Michael Esq NEW17Amy Elsner
1029Maisha RulapaughItaly2026-05-03Commercial Press NEGOTIATION30Anna Fali
1030Emily WhobreyRussia2026-04-27Benton, John B Jr RENEWAL98Bernardo Dominic
1031Darci PoquetteRussia2026-05-08Buckley Miller Wright NEGOTIATION71Onyama Limba
1032Alejandro PerinArgentina2026-04-27King, Christopher A Esq NEGOTIATION26Stephen Shaw
1033Costa DilliardUnited Kingdom2026-05-19King, Christopher A Esq NEGOTIATION7Ioni Bowcher
1034Kadeem FlosiRussia2026-04-28Rangoni Of Florence NEW32Asiya Javayant
1035Murillo MaletBrazil2026-05-15Dorl, James J Esq NEGOTIATION36Bernardo Dominic
1036Jefferson SchemmerSpain2026-05-25Chanay, Jeffrey A Esq PROPOSAL37Onyama Limba
1037Mayumi KolmetzRussia2026-05-16Rangoni Of Florence UNQUALIFIED80Amy Elsner
1038Kadeem FlosiIndia2026-05-14Rangoni Of Florence NEGOTIATION84Elwin Sharvill
1039Tony FollerItaly2026-05-08Rangoni Of Florence UNQUALIFIED48Amy Elsner
1040Misaki RoysterSpain2026-05-05Chanay, Jeffrey A Esq QUALIFIED34Ivan Magalhaes
1041Misaki RoysterItaly2026-05-06Truhlar And Truhlar Attys NEW53Amy Elsner
1042Faith GillianIndia2026-05-05Rangoni Of Florence NEGOTIATION51Xuxue Feng
1043Tony FollerArgentina2026-05-11Benton, John B Jr QUALIFIED44Anna Fali
1044Francesco ShinkoArgentina2026-05-09Buckley Miller Wright PROPOSAL95Elwin Sharvill
1045Emily WhobreyRussia2026-05-03Printing Dimensions PROPOSAL40Anna Fali
1046Isabel BowleyAustralia2026-05-01Morlong Associates NEGOTIATION9Stephen Shaw
1047Jones VocelkaCanada2026-04-29Morlong Associates QUALIFIED88Elwin Sharvill
1048Maisha RulapaughRussia2026-05-21Dorl, James J Esq NEGOTIATION43Asiya Javayant
1049Aditya KuskoBrazil2026-05-11Feiner Bros QUALIFIED17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonGermanyIoni Bowcher NEW
Cody SaylorsSpainStephen Shaw NEGOTIATION
Jefferson SchemmerCanadaOnyama Limba QUALIFIED
Aruna FigeroaIndiaAsiya Javayant NEW
Rodrigues CampainIndiaElwin Sharvill RENEWAL
Octavia MaletAustraliaAmy Elsner QUALIFIED
Alejandro PerinCanadaAsiya Javayant PROPOSAL
Alejandro PerinGermanyIoni Bowcher NEW
Wickens NestleCanadaAmy Elsner UNQUALIFIED
David DarakjySpainStephen Shaw PROPOSAL
Morrow RutaGermanyAsiya Javayant RENEWAL
Aditya KuskoFranceElwin Sharvill NEW
Deepesh ChuiRussiaAnna Fali UNQUALIFIED
Ashley DoeArgentinaAmy Elsner UNQUALIFIED
Mujtaba NickaIndiaStephen Shaw NEGOTIATION
Clifford RimItalyAnna Fali RENEWAL
Jeanfrancois VenereRussiaAnna Fali RENEWAL
Salvatore StockhamItalyIoni Bowcher PROPOSAL
Aruna FigeroaUnited KingdomStephen Shaw RENEWAL
Julie StensethAustraliaStephen Shaw NEW
Costa DilliardUnited KingdomBernardo Dominic NEW
Jennifer AmigonArgentinaBernardo Dominic NEW
Sinclair WaycottAustraliaIoni Bowcher QUALIFIED
Kadeem FlosiArgentinaStephen Shaw NEW
Cody SaylorsCanadaAmy Elsner NEGOTIATION
Ricardo GauchoIndiaAsiya Javayant QUALIFIED
Smith GlickFranceIvan Magalhaes RENEWAL
Jefferson SchemmerAustraliaIvan Magalhaes RENEWAL
Maria MarrierAustraliaIvan Magalhaes QUALIFIED
Murillo MaletJapanOnyama Limba RENEWAL
Deepesh ChuiAustraliaBernardo Dominic QUALIFIED
Stacey MacleadFranceXuxue Feng QUALIFIED
Maisha RulapaughGermanyXuxue Feng QUALIFIED
Deepesh ChuiArgentinaIvan Magalhaes NEGOTIATION
Adams MorascaCanadaStephen Shaw NEW
Kadeem FlosiItalyElwin Sharvill UNQUALIFIED
Morrow RutaGermanyBernardo Dominic NEW
Claire TollnerItalyStephen Shaw PROPOSAL
Mujtaba NickaIndiaElwin Sharvill RENEWAL
Jefferson SchemmerItalyOnyama Limba NEGOTIATION
James ButtFranceStephen Shaw QUALIFIED
David DarakjyJapanXuxue Feng NEGOTIATION
Antonio CaudyAustraliaAsiya Javayant PROPOSAL
Smith GlickJapanElwin Sharvill UNQUALIFIED
Greenwood BologniaGermanyIoni Bowcher UNQUALIFIED
Arvin AlbaresSpainAnna Fali PROPOSAL
Johnson SergiBrazilAmy Elsner NEW
Ivar PaprockiRussiaOnyama Limba UNQUALIFIED
Nicolas IturbideUnited KingdomBernardo Dominic PROPOSAL
Costa DilliardUnited KingdomAnna Fali UNQUALIFIED
Frozen Columns
Name
Stacey Maclead
Izzy Garufi
Ivar Paprocki
Octavia Malet
Aruna Figeroa
Nicolas Iturbide
Nicolas Iturbide
Aditya Kusko
Chavez Briddick
Octavia Malet
Aruna Figeroa
Aruna Figeroa
Izzy Garufi
Clifford Rim
Claire Tollner
Antonio Caudy
Leja Caldarera
Jefferson Schemmer
Salvatore Stockham
Antonio Caudy
Julie Stenseth
James Butt
Wickens Nestle
James Butt
Jeanfrancois Venere
Deepesh Chui
Juan Wieser
Jefferson Schemmer
Jeanfrancois Venere
Izzy Garufi
Faith Gillian
Mujtaba Nicka
Leja Caldarera
Jefferson Schemmer
Arvin Albares
Izzy Garufi
Adams Morasca
Ricardo Gaucho
Claire Tollner
Leon Oldroyd
Jennifer Amigon
Sinclair Waycott
Kadeem Flosi
Kaitlin Ostrosky
Darci Poquette
Rodrigues Campain
Julie Stenseth
Leon Oldroyd
Misaki Royster
Costa Dilliard
IdCountryDate
1000France2026-04-30
1001Japan2026-05-11
1002Spain2026-05-01
1003India2026-05-20
1004France2026-04-30
1005United Kingdom2026-05-02
1006Japan2026-05-04
1007India2026-05-17
1008Canada2026-05-04
1009Germany2026-05-22
1010Germany2026-05-20
1011Japan2026-05-06
1012Japan2026-05-07
1013Argentina2026-04-29
1014Russia2026-05-17
1015India2026-04-30
1016Japan2026-05-12
1017Spain2026-05-05
1018Canada2026-05-08
1019Japan2026-05-17
1020India2026-05-08
1021Japan2026-05-06
1022Spain2026-05-13
1023Spain2026-05-24
1024Russia2026-05-20
1025Argentina2026-05-16
1026Germany2026-05-08
1027United Kingdom2026-05-18
1028Japan2026-05-04
1029Italy2026-05-23
1030India2026-05-06
1031Germany2026-05-01
1032Australia2026-05-20
1033Japan2026-05-11
1034Russia2026-05-09
1035Italy2026-05-02
1036Brazil2026-04-28
1037Russia2026-04-27
1038Australia2026-04-29
1039Russia2026-05-04
1040Brazil2026-05-16
1041United Kingdom2026-05-07
1042United Kingdom2026-05-06
1043Spain2026-05-08
1044Brazil2026-05-04
1045Canada2026-05-05
1046United Kingdom2026-05-26
1047Russia2026-05-02
1048Canada2026-05-13
1049Canada2026-04-30

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Canada2026-05-03
Sinclair Waycott1001Germany2026-05-03
Leon Oldroyd1002Japan2026-05-23
James Butt1003Australia2026-04-29
Morrow Ruta1004India2026-05-09
Wickens Nestle1005Italy2026-05-26
Ashley Doe1006India2026-05-05
Claire Tollner1007Brazil2026-05-14
Sinclair Waycott1008Australia2026-05-01
Mayumi Kolmetz1009United Kingdom2026-05-02
Greenwood Bolognia1010Spain2026-05-16
Ashley Doe1011Australia2026-05-04
Wickens Nestle1012Spain2026-05-13
Jefferson Schemmer1013France2026-04-29
Misaki Royster1014Japan2026-05-15
David Darakjy1015Russia2026-05-01
Arvin Albares1016Brazil2026-05-04
Deepesh Chui1017Canada2026-05-13
Ashley Doe1018India2026-05-22
James Butt1019Japan2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Sinclair WaycottBrazilOnyama Limba PROPOSAL
Stacey MacleadGermanyIvan Magalhaes RENEWAL
Octavia MaletCanadaXuxue Feng NEW
Ivar PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Ashley DoeAustraliaBernardo Dominic UNQUALIFIED
Stacey MacleadJapanIvan Magalhaes PROPOSAL
Darci PoquetteSpainAnna Fali RENEWAL
Mayumi KolmetzFranceElwin Sharvill QUALIFIED
Wickens NestleIndiaOnyama Limba NEGOTIATION
Darci PoquetteIndiaAnna Fali PROPOSAL
Maisha RulapaughArgentinaAnna Fali RENEWAL
Darci PoquetteIndiaElwin Sharvill RENEWAL
Mayumi KolmetzSpainBernardo Dominic QUALIFIED
Tony FollerItalyAsiya Javayant RENEWAL
Arvin AlbaresIndiaIvan Magalhaes UNQUALIFIED
Isabel BowleyIndiaAsiya Javayant RENEWAL
Izzy GarufiBrazilAnna Fali QUALIFIED
Adams MorascaItalyAnna Fali NEW
Maria MarrierJapanIvan Magalhaes NEGOTIATION
Ashley DoeFranceAmy Elsner QUALIFIED
Adams MorascaArgentinaIvan Magalhaes QUALIFIED
Isabel BowleySpainAsiya Javayant NEGOTIATION
Aika InouyeGermanyBernardo Dominic UNQUALIFIED
Alejandro PerinAustraliaAsiya Javayant NEGOTIATION
Jefferson SchemmerIndiaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiArgentinaAmy Elsner PROPOSAL
Maisha RulapaughAustraliaXuxue Feng PROPOSAL
Jones VocelkaItalyAsiya Javayant PROPOSAL
Jefferson SchemmerSpainBernardo Dominic NEGOTIATION
Cody SaylorsBrazilAsiya Javayant PROPOSAL
David DarakjyRussiaOnyama Limba NEW
Morrow RutaUnited KingdomOnyama Limba RENEWAL
Johnson SergiIndiaIvan Magalhaes UNQUALIFIED
Chavez BriddickFranceAsiya Javayant PROPOSAL
Mujtaba NickaFranceAsiya Javayant PROPOSAL
Chavez BriddickCanadaAnna Fali NEW
Jeanfrancois VenereUnited KingdomElwin Sharvill PROPOSAL
Darci PoquetteGermanyAnna Fali NEW
Munro FerenczGermanyXuxue Feng NEW

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