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
Arvin AlbaresGermanyAnna Fali PROPOSAL
Stacey MacleadCanadaAnna Fali PROPOSAL
Ivar PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Salvatore StockhamBrazilIoni Bowcher RENEWAL
Adams MorascaRussiaBernardo Dominic NEGOTIATION
Jennifer AmigonGermanyOnyama Limba RENEWAL
Greenwood BologniaUnited KingdomAnna Fali PROPOSAL
Faith GillianUnited KingdomElwin Sharvill QUALIFIED
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
David DarakjyUnited KingdomAsiya Javayant NEGOTIATION
Munro FerenczCanadaAmy Elsner NEGOTIATION
Aika InouyeCanadaElwin Sharvill NEGOTIATION
James ButtArgentinaOnyama Limba RENEWAL
Silvio SlusarskiSpainOnyama Limba NEGOTIATION
Aruna FigeroaCanadaIvan Magalhaes NEGOTIATION
Deepesh ChuiItalyAmy Elsner NEW
Faith GillianAustraliaIvan Magalhaes NEGOTIATION
Kadeem FlosiGermanyStephen Shaw QUALIFIED
Murillo MaletCanadaBernardo Dominic QUALIFIED
Jennifer AmigonArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois VenereIndiaAsiya Javayant NEGOTIATION
Alejandro PerinCanadaXuxue Feng PROPOSAL
Ricardo GauchoUnited KingdomAmy Elsner UNQUALIFIED
Maisha RulapaughItalyXuxue Feng UNQUALIFIED
James ButtItalyAnna Fali UNQUALIFIED
Jennifer AmigonArgentinaAmy Elsner PROPOSAL
Jefferson SchemmerFranceStephen Shaw NEW
Ashley DoeBrazilAnna Fali QUALIFIED
Ricardo GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Aruna FigeroaGermanyXuxue Feng RENEWAL
David DarakjyFranceIvan Magalhaes QUALIFIED
Claire TollnerJapanElwin Sharvill UNQUALIFIED
Leon OldroydJapanIvan Magalhaes NEGOTIATION
Darci PoquetteItalyOnyama Limba NEGOTIATION
Aruna FigeroaCanadaIoni Bowcher PROPOSAL
Costa DilliardItalyIvan Magalhaes QUALIFIED
Francesco ShinkoFranceIoni Bowcher UNQUALIFIED
Rodrigues CampainSpainIvan Magalhaes NEGOTIATION
Izzy GarufiFranceStephen Shaw NEW
Jones VocelkaRussiaAsiya Javayant QUALIFIED
Misaki RoysterItalyOnyama Limba RENEWAL
Greenwood BologniaAustraliaStephen Shaw PROPOSAL
Morrow RutaCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraGermanyIoni Bowcher UNQUALIFIED
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Deepesh ChuiSpainElwin Sharvill NEW
Arvin AlbaresArgentinaAmy Elsner NEGOTIATION
Juan WieserAustraliaOnyama Limba PROPOSAL
Kaitlin OstroskyGermanyOnyama Limba NEW
Murillo MaletGermanyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leon OldroydItalyIoni Bowcher UNQUALIFIED
Aika InouyeGermanyOnyama Limba QUALIFIED
Francesco ShinkoJapanElwin Sharvill QUALIFIED
Ivar PaprockiRussiaStephen Shaw PROPOSAL
Greenwood BologniaBrazilIvan Magalhaes NEGOTIATION
Rodrigues CampainArgentinaStephen Shaw NEW
Claire TollnerSpainOnyama Limba UNQUALIFIED
Faith GillianFranceIoni Bowcher QUALIFIED
Isabel BowleyFranceXuxue Feng NEGOTIATION
Kaitlin OstroskyAustraliaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyBrazil2026-06-16Dorl, James J Esq RENEWAL25Bernardo Dominic
1001David DarakjyGermany2026-06-07Feiner Bros UNQUALIFIED40Ioni Bowcher
1002Adams MorascaAustralia2026-06-09Feltz Printing Service NEW93Elwin Sharvill
1003Smith GlickIndia2026-06-18Rangoni Of Florence NEGOTIATION3Onyama Limba
1004Jeanfrancois VenereArgentina2026-06-07Morlong Associates QUALIFIED38Anna Fali
1005Tony FollerCanada2026-06-03King, Christopher A Esq PROPOSAL36Elwin Sharvill
1006Costa DilliardAustralia2026-06-06Morlong Associates RENEWAL72Ivan Magalhaes
1007Ivar PaprockiFrance2026-06-07Feiner Bros NEW55Onyama Limba
1008Darci PoquetteAustralia2026-06-01Buckley Miller Wright NEGOTIATION96Onyama Limba
1009Darci PoquetteItaly2026-06-15Rangoni Of Florence UNQUALIFIED90Ioni Bowcher
1010Greenwood BologniaArgentina2026-05-25King, Christopher A Esq PROPOSAL62Anna Fali
1011Salvatore StockhamFrance2026-05-22Buckley Miller Wright UNQUALIFIED55Ioni Bowcher
1012Stacey MacleadArgentina2026-06-12Feltz Printing Service RENEWAL65Ioni Bowcher
1013James ButtGermany2026-06-08Chapman, Ross E Esq PROPOSAL61Stephen Shaw
1014Francesco ShinkoSpain2026-05-23Buckley Miller Wright QUALIFIED52Onyama Limba
1015Silvio SlusarskiCanada2026-05-23Dorl, James J Esq NEW29Bernardo Dominic
1016Munro FerenczFrance2026-06-04Chemel, James L Cpa PROPOSAL91Anna Fali
1017Mayumi KolmetzItaly2026-06-19Benton, John B Jr NEGOTIATION96Xuxue Feng
1018Nicolas IturbideGermany2026-06-01Rangoni Of Florence UNQUALIFIED26Onyama Limba
1019Juan WieserItaly2026-06-06Morlong Associates QUALIFIED32Ioni Bowcher
1020Alejandro PerinJapan2026-06-10King, Christopher A Esq UNQUALIFIED6Ioni Bowcher
1021Johnson SergiUnited Kingdom2026-06-14Chanay, Jeffrey A Esq QUALIFIED39Stephen Shaw
1022Misaki RoysterUnited Kingdom2026-06-19Benton, John B Jr PROPOSAL97Onyama Limba
1023Jefferson SchemmerFrance2026-06-02Rousseaux, Michael Esq QUALIFIED97Stephen Shaw
1024Aika InouyeArgentina2026-06-05King, Christopher A Esq NEW70Anna Fali
1025Salvatore StockhamItaly2026-06-09Chemel, James L Cpa PROPOSAL95Ioni Bowcher
1026Morrow RutaBrazil2026-05-26Rousseaux, Michael Esq PROPOSAL97Stephen Shaw
1027Aditya KuskoSpain2026-06-12Morlong Associates PROPOSAL32Xuxue Feng
1028Sinclair WaycottUnited Kingdom2026-06-10Buckley Miller Wright NEGOTIATION51Ioni Bowcher
1029Salvatore StockhamUnited Kingdom2026-05-27Printing Dimensions NEGOTIATION69Bernardo Dominic
1030Francesco ShinkoGermany2026-05-22Dorl, James J Esq RENEWAL69Ioni Bowcher
1031Aika InouyeItaly2026-06-12Feiner Bros QUALIFIED22Xuxue Feng
1032Jefferson SchemmerJapan2026-05-26Chanay, Jeffrey A Esq QUALIFIED95Anna Fali
1033Greenwood BologniaItaly2026-06-01Buckley Miller Wright NEGOTIATION42Onyama Limba
1034Deepesh ChuiJapan2026-05-22Feiner Bros UNQUALIFIED96Stephen Shaw
1035Julie StensethSpain2026-06-09Chemel, James L Cpa RENEWAL50Asiya Javayant
1036Johnson SergiIndia2026-06-18Chanay, Jeffrey A Esq NEW3Xuxue Feng
1037Julie StensethSpain2026-05-24Dorl, James J Esq RENEWAL35Stephen Shaw
1038James ButtIndia2026-05-23Benton, John B Jr QUALIFIED49Stephen Shaw
1039Faith GillianFrance2026-06-01Feltz Printing Service QUALIFIED30Onyama Limba
1040James ButtSpain2026-06-13Rangoni Of Florence UNQUALIFIED59Ioni Bowcher
1041Mayumi KolmetzFrance2026-06-19Morlong Associates NEGOTIATION40Bernardo Dominic
1042Francesco ShinkoJapan2026-06-14Buckley Miller Wright RENEWAL27Onyama Limba
1043Aditya KuskoIndia2026-06-12Benton, John B Jr PROPOSAL63Onyama Limba
1044Leja CaldareraSpain2026-06-05Chapman, Ross E Esq QUALIFIED67Ivan Magalhaes
1045Smith GlickGermany2026-06-03Morlong Associates RENEWAL72Amy Elsner
1046Morrow RutaBrazil2026-06-01Rousseaux, Michael Esq QUALIFIED23Ioni Bowcher
1047Juan WieserJapan2026-05-31Feltz Printing Service UNQUALIFIED78Bernardo Dominic
1048Salvatore StockhamIndia2026-06-20Chapman, Ross E Esq RENEWAL57Anna Fali
1049Aruna FigeroaJapan2026-05-23Morlong Associates UNQUALIFIED3Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydFranceAsiya Javayant PROPOSAL
Clifford RimAustraliaAnna Fali RENEWAL
Adams MorascaArgentinaXuxue Feng NEW
Isabel BowleyFranceStephen Shaw NEW
Morrow RutaItalyIoni Bowcher PROPOSAL
Isabel BowleyRussiaAnna Fali NEGOTIATION
Jones VocelkaAustraliaElwin Sharvill NEW
Silvio SlusarskiIndiaStephen Shaw RENEWAL
David DarakjyItalyAsiya Javayant NEGOTIATION
Salvatore StockhamIndiaAnna Fali PROPOSAL
Munro FerenczFranceBernardo Dominic NEW
Isabel BowleyBrazilXuxue Feng PROPOSAL
Misaki RoysterAustraliaAmy Elsner NEGOTIATION
Izzy GarufiSpainOnyama Limba QUALIFIED
Jennifer AmigonBrazilAsiya Javayant NEW
Mujtaba NickaFranceOnyama Limba QUALIFIED
Emily WhobreyBrazilAsiya Javayant NEGOTIATION
Adams MorascaIndiaXuxue Feng RENEWAL
Morrow RutaSpainAsiya Javayant PROPOSAL
Faith GillianJapanAsiya Javayant NEW
Nicolas IturbideUnited KingdomBernardo Dominic RENEWAL
Jones VocelkaJapanIoni Bowcher NEGOTIATION
Leja CaldareraGermanyElwin Sharvill RENEWAL
Misaki RoysterUnited KingdomIvan Magalhaes RENEWAL
Ricardo GauchoRussiaAnna Fali QUALIFIED
Nicolas IturbideArgentinaAnna Fali QUALIFIED
Emily WhobreyFranceIoni Bowcher UNQUALIFIED
Aditya KuskoItalyAsiya Javayant UNQUALIFIED
Munro FerenczUnited KingdomIoni Bowcher PROPOSAL
Julie StensethSpainXuxue Feng QUALIFIED
Murillo MaletSpainIvan Magalhaes RENEWAL
Alejandro PerinGermanyIoni Bowcher QUALIFIED
Izzy GarufiFranceAnna Fali QUALIFIED
Salvatore StockhamGermanyBernardo Dominic RENEWAL
Sinclair WaycottAustraliaIvan Magalhaes NEGOTIATION
Murillo MaletJapanOnyama Limba NEGOTIATION
Munro FerenczGermanyIvan Magalhaes PROPOSAL
James ButtArgentinaIoni Bowcher RENEWAL
Mayumi KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Juan WieserGermanyStephen Shaw QUALIFIED
Kadeem FlosiItalyXuxue Feng RENEWAL
David DarakjyBrazilElwin Sharvill UNQUALIFIED
Rodrigues CampainIndiaStephen Shaw PROPOSAL
Deepesh ChuiUnited KingdomIoni Bowcher NEW
Faith GillianCanadaStephen Shaw NEW
Arvin AlbaresRussiaXuxue Feng RENEWAL
Jennifer AmigonGermanyElwin Sharvill NEGOTIATION
David DarakjyArgentinaElwin Sharvill QUALIFIED
Smith GlickJapanIvan Magalhaes PROPOSAL
Juan WieserUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
Izzy Garufi
Murillo Malet
Jeanfrancois Venere
Aruna Figeroa
Mayumi Kolmetz
Mujtaba Nicka
Antonio Caudy
Ricardo Gaucho
Rodrigues Campain
Smith Glick
Isabel Bowley
Jennifer Amigon
Claire Tollner
Aditya Kusko
Maisha Rulapaugh
Murillo Malet
Munro Ferencz
Aika Inouye
Octavia Malet
Maria Marrier
Jones Vocelka
Tony Foller
Leon Oldroyd
Leja Caldarera
Kadeem Flosi
Clifford Rim
Faith Gillian
Mujtaba Nicka
Darci Poquette
Cody Saylors
Salvatore Stockham
Arvin Albares
Smith Glick
Maisha Rulapaugh
Kadeem Flosi
David Darakjy
Jeanfrancois Venere
Rodrigues Campain
Leja Caldarera
Kaitlin Ostrosky
Costa Dilliard
Jefferson Schemmer
Izzy Garufi
Mujtaba Nicka
Leon Oldroyd
Adams Morasca
Mayumi Kolmetz
Faith Gillian
Mujtaba Nicka
Maria Marrier
IdCountryDate
1000Germany2026-06-15
1001Australia2026-06-12
1002France2026-05-29
1003Spain2026-05-28
1004United Kingdom2026-06-01
1005Argentina2026-05-25
1006Canada2026-06-13
1007Russia2026-06-16
1008Japan2026-06-19
1009Russia2026-06-20
1010Russia2026-06-13
1011Australia2026-06-09
1012Australia2026-06-14
1013Russia2026-06-01
1014France2026-05-29
1015Italy2026-05-22
1016Australia2026-05-25
1017United Kingdom2026-05-29
1018France2026-06-18
1019United Kingdom2026-06-10
1020France2026-05-27
1021Brazil2026-06-09
1022United Kingdom2026-05-25
1023Italy2026-06-18
1024Germany2026-05-26
1025Argentina2026-06-16
1026France2026-05-31
1027Germany2026-06-03
1028Japan2026-06-15
1029Brazil2026-05-28
1030Italy2026-05-30
1031United Kingdom2026-05-23
1032Russia2026-06-16
1033Germany2026-06-08
1034Spain2026-05-31
1035India2026-06-15
1036Spain2026-06-16
1037France2026-06-05
1038Canada2026-06-14
1039Italy2026-06-18
1040India2026-06-03
1041India2026-06-08
1042Brazil2026-06-05
1043France2026-06-19
1044United Kingdom2026-06-16
1045Argentina2026-06-06
1046Argentina2026-06-03
1047United Kingdom2026-06-16
1048Germany2026-05-27
1049Japan2026-05-30

On-Demand Data

NameIdCountryDate
Adams Morasca1000Argentina2026-05-31
Nicolas Iturbide1001India2026-05-22
Deepesh Chui1002Canada2026-06-03
Aruna Figeroa1003Germany2026-05-27
Johnson Sergi1004Spain2026-06-14
Silvio Slusarski1005Spain2026-05-26
Aditya Kusko1006Japan2026-06-08
Mayumi Kolmetz1007Japan2026-05-24
Faith Gillian1008Canada2026-06-03
Salvatore Stockham1009Canada2026-05-24
Jones Vocelka1010Spain2026-05-29
Jennifer Amigon1011France2026-05-29
Maria Marrier1012United Kingdom2026-05-22
Murillo Malet1013Italy2026-06-13
Mujtaba Nicka1014Russia2026-06-18
Cody Saylors1015Germany2026-05-28
Greenwood Bolognia1016Germany2026-05-26
Silvio Slusarski1017United Kingdom2026-06-18
Antonio Caudy1018Spain2026-06-18
Ricardo Gaucho1019France2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerRussiaIvan Magalhaes QUALIFIED
Misaki RoysterRussiaBernardo Dominic PROPOSAL
Tony FollerSpainElwin Sharvill NEGOTIATION
Rodrigues CampainJapanOnyama Limba NEGOTIATION
Nicolas IturbideAustraliaAnna Fali UNQUALIFIED
Deepesh ChuiUnited KingdomAnna Fali UNQUALIFIED
Leon OldroydArgentinaBernardo Dominic NEW
David DarakjyBrazilAnna Fali NEW
Costa DilliardGermanyAmy Elsner QUALIFIED
Maria MarrierAustraliaXuxue Feng PROPOSAL
Darci PoquetteArgentinaElwin Sharvill UNQUALIFIED
Costa DilliardCanadaOnyama Limba NEW
Leon OldroydBrazilAnna Fali NEW
Aika InouyeGermanyOnyama Limba UNQUALIFIED
Stacey MacleadFranceBernardo Dominic QUALIFIED
Ivar PaprockiItalyAmy Elsner NEGOTIATION
Claire TollnerUnited KingdomAnna Fali PROPOSAL
Adams MorascaJapanOnyama Limba QUALIFIED
Stacey MacleadFranceAsiya Javayant UNQUALIFIED
Leon OldroydBrazilAnna Fali UNQUALIFIED
Darci PoquetteRussiaIvan Magalhaes PROPOSAL
Deepesh ChuiArgentinaAmy Elsner RENEWAL
Antonio CaudyUnited KingdomElwin Sharvill PROPOSAL
Chavez BriddickJapanIvan Magalhaes UNQUALIFIED
Misaki RoysterSpainXuxue Feng PROPOSAL
Faith GillianSpainXuxue Feng NEW
Arvin AlbaresIndiaAnna Fali QUALIFIED
Johnson SergiGermanyElwin Sharvill PROPOSAL
Maria MarrierGermanyAmy Elsner QUALIFIED
Cody SaylorsRussiaStephen Shaw PROPOSAL
Aditya KuskoBrazilAmy Elsner NEGOTIATION
Francesco ShinkoFranceIvan Magalhaes QUALIFIED
Deepesh ChuiSpainAmy Elsner RENEWAL
Cody SaylorsJapanElwin Sharvill QUALIFIED
Smith GlickJapanStephen Shaw PROPOSAL
Rodrigues CampainJapanIvan Magalhaes NEW
Ricardo GauchoAustraliaAsiya Javayant RENEWAL
Mayumi KolmetzIndiaXuxue Feng NEW
Maisha RulapaughItalyElwin Sharvill QUALIFIED
Jennifer AmigonAustraliaIvan Magalhaes 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>