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
Munro FerenczUnited KingdomBernardo Dominic NEW
Chavez BriddickFranceElwin Sharvill UNQUALIFIED
Julie StensethArgentinaOnyama Limba NEW
Claire TollnerCanadaAsiya Javayant QUALIFIED
Julie StensethIndiaAsiya Javayant NEGOTIATION
Clifford RimJapanElwin Sharvill UNQUALIFIED
Francesco ShinkoFranceXuxue Feng RENEWAL
Smith GlickBrazilStephen Shaw QUALIFIED
Leja CaldareraSpainAmy Elsner NEGOTIATION
Maisha RulapaughSpainIoni Bowcher QUALIFIED
Aditya KuskoIndiaAnna Fali NEGOTIATION
Ivar PaprockiIndiaIvan Magalhaes UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Mayumi KolmetzSpainStephen Shaw NEGOTIATION
Aruna FigeroaBrazilXuxue Feng RENEWAL
Maria MarrierGermanyOnyama Limba NEW
Ivar PaprockiItalyStephen Shaw PROPOSAL
Misaki RoysterGermanyIvan Magalhaes NEW
Emily WhobreyItalyAmy Elsner RENEWAL
Aditya KuskoRussiaIoni Bowcher NEGOTIATION
Johnson SergiArgentinaAnna Fali PROPOSAL
Salvatore StockhamBrazilAmy Elsner NEGOTIATION
Ricardo GauchoAustraliaBernardo Dominic UNQUALIFIED
Aditya KuskoIndiaBernardo Dominic NEGOTIATION
Chavez BriddickAustraliaIvan Magalhaes RENEWAL
Jennifer AmigonSpainBernardo Dominic RENEWAL
Faith GillianGermanyAnna Fali NEGOTIATION
Ashley DoeRussiaIvan Magalhaes NEGOTIATION
Rodrigues CampainJapanStephen Shaw PROPOSAL
Mujtaba NickaFranceIvan Magalhaes RENEWAL
Cody SaylorsGermanyStephen Shaw NEGOTIATION
Munro FerenczFranceBernardo Dominic NEGOTIATION
Claire TollnerItalyAnna Fali RENEWAL
Jones VocelkaJapanIvan Magalhaes PROPOSAL
Munro FerenczFranceAnna Fali NEGOTIATION
Chavez BriddickCanadaElwin Sharvill QUALIFIED
Antonio CaudyBrazilElwin Sharvill PROPOSAL
Clifford RimUnited KingdomBernardo Dominic UNQUALIFIED
Costa DilliardGermanyAnna Fali NEGOTIATION
Munro FerenczJapanBernardo Dominic NEW
Jennifer AmigonArgentinaAsiya Javayant NEW
Leon OldroydIndiaOnyama Limba UNQUALIFIED
Jeanfrancois VenereSpainElwin Sharvill RENEWAL
James ButtJapanElwin Sharvill NEW
Darci PoquetteArgentinaIvan Magalhaes NEGOTIATION
Julie StensethRussiaXuxue Feng NEW
Juan WieserCanadaOnyama Limba NEGOTIATION
Alejandro PerinArgentinaOnyama Limba RENEWAL
Mayumi KolmetzIndiaElwin Sharvill PROPOSAL
Stacey MacleadCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickFranceAnna Fali UNQUALIFIED
Darci PoquetteAustraliaAsiya Javayant UNQUALIFIED
Salvatore StockhamBrazilIvan Magalhaes NEGOTIATION
Greenwood BologniaGermanyIoni Bowcher NEGOTIATION
Isabel BowleyCanadaAsiya Javayant QUALIFIED
Jefferson SchemmerSpainAsiya Javayant NEW
Antonio CaudyGermanyIvan Magalhaes RENEWAL
Faith GillianBrazilOnyama Limba QUALIFIED
Murillo MaletGermanyBernardo Dominic PROPOSAL
Aditya KuskoSpainAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson SchemmerBrazil2026-05-09Buckley Miller Wright PROPOSAL0Stephen Shaw
1001Nicolas IturbideUnited Kingdom2026-04-20Chanay, Jeffrey A Esq NEW82Anna Fali
1002Morrow RutaArgentina2026-04-26Dorl, James J Esq UNQUALIFIED77Ivan Magalhaes
1003Ivar PaprockiIndia2026-04-18Chanay, Jeffrey A Esq NEGOTIATION0Ioni Bowcher
1004Deepesh ChuiItaly2026-04-24Rangoni Of Florence QUALIFIED39Anna Fali
1005Jennifer AmigonUnited Kingdom2026-04-20Truhlar And Truhlar Attys RENEWAL89Xuxue Feng
1006Aika InouyeAustralia2026-04-29Rangoni Of Florence RENEWAL39Stephen Shaw
1007Morrow RutaIndia2026-05-03Truhlar And Truhlar Attys UNQUALIFIED78Elwin Sharvill
1008Murillo MaletItaly2026-05-02Benton, John B Jr UNQUALIFIED81Ioni Bowcher
1009Maisha RulapaughAustralia2026-04-17Chemel, James L Cpa NEGOTIATION99Elwin Sharvill
1010Greenwood BologniaJapan2026-04-20Benton, John B Jr NEW36Onyama Limba
1011Johnson SergiFrance2026-04-15Rangoni Of Florence QUALIFIED73Onyama Limba
1012James ButtArgentina2026-05-02Feltz Printing Service NEW44Ivan Magalhaes
1013Jeanfrancois VenereItaly2026-04-27Feiner Bros UNQUALIFIED33Anna Fali
1014Tony FollerAustralia2026-04-19Rangoni Of Florence NEGOTIATION97Stephen Shaw
1015Aditya KuskoSpain2026-04-15King, Christopher A Esq NEGOTIATION10Anna Fali
1016Jefferson SchemmerArgentina2026-04-29Rangoni Of Florence UNQUALIFIED80Onyama Limba
1017Leon OldroydBrazil2026-04-14Benton, John B Jr PROPOSAL40Onyama Limba
1018Johnson SergiCanada2026-04-23Feltz Printing Service QUALIFIED22Anna Fali
1019Smith GlickItaly2026-05-06Buckley Miller Wright NEGOTIATION89Bernardo Dominic
1020Aika InouyeItaly2026-05-01Buckley Miller Wright UNQUALIFIED75Onyama Limba
1021Clifford RimIndia2026-05-05Dorl, James J Esq RENEWAL95Stephen Shaw
1022Morrow RutaAustralia2026-04-17Commercial Press RENEWAL63Onyama Limba
1023Salvatore StockhamSpain2026-04-25Commercial Press NEGOTIATION37Xuxue Feng
1024Chavez BriddickArgentina2026-05-07Feltz Printing Service PROPOSAL51Ioni Bowcher
1025Morrow RutaSpain2026-04-21Rousseaux, Michael Esq NEGOTIATION45Amy Elsner
1026Aditya KuskoArgentina2026-05-03Chapman, Ross E Esq UNQUALIFIED61Asiya Javayant
1027Misaki RoysterUnited Kingdom2026-05-11Buckley Miller Wright NEW52Asiya Javayant
1028Sinclair WaycottArgentina2026-04-24Chanay, Jeffrey A Esq PROPOSAL30Elwin Sharvill
1029Sinclair WaycottGermany2026-05-05Buckley Miller Wright UNQUALIFIED7Ioni Bowcher
1030Salvatore StockhamSpain2026-04-25Truhlar And Truhlar Attys UNQUALIFIED90Amy Elsner
1031Rodrigues CampainSpain2026-04-29Rangoni Of Florence PROPOSAL40Amy Elsner
1032Maisha RulapaughJapan2026-04-15Rousseaux, Michael Esq PROPOSAL27Anna Fali
1033Octavia MaletAustralia2026-04-18Rangoni Of Florence NEGOTIATION48Amy Elsner
1034Francesco ShinkoUnited Kingdom2026-04-27Chapman, Ross E Esq UNQUALIFIED98Anna Fali
1035Greenwood BologniaCanada2026-04-29Feltz Printing Service RENEWAL40Ioni Bowcher
1036Nicolas IturbideIndia2026-04-25Rangoni Of Florence PROPOSAL57Bernardo Dominic
1037Costa DilliardJapan2026-04-30Rangoni Of Florence PROPOSAL98Ivan Magalhaes
1038Aruna FigeroaBrazil2026-04-22Benton, John B Jr RENEWAL48Anna Fali
1039Faith GillianFrance2026-05-01Truhlar And Truhlar Attys NEW52Anna Fali
1040Chavez BriddickArgentina2026-05-05King, Christopher A Esq PROPOSAL32Ivan Magalhaes
1041Claire TollnerJapan2026-04-30Buckley Miller Wright NEW43Bernardo Dominic
1042Mujtaba NickaBrazil2026-05-03Feltz Printing Service PROPOSAL61Xuxue Feng
1043Izzy GarufiFrance2026-05-11Rousseaux, Michael Esq QUALIFIED8Ioni Bowcher
1044Tony FollerSpain2026-05-04Rousseaux, Michael Esq PROPOSAL60Onyama Limba
1045Aruna FigeroaUnited Kingdom2026-04-20Rousseaux, Michael Esq NEW91Amy Elsner
1046Jefferson SchemmerAustralia2026-05-04Benton, John B Jr RENEWAL55Ioni Bowcher
1047Morrow RutaUnited Kingdom2026-04-18Dorl, James J Esq NEW30Anna Fali
1048Jeanfrancois VenereFrance2026-04-28Morlong Associates QUALIFIED59Anna Fali
1049Cody SaylorsArgentina2026-04-14Buckley Miller Wright NEGOTIATION79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydSpainIoni Bowcher PROPOSAL
Smith GlickAustraliaOnyama Limba NEGOTIATION
Aika InouyeJapanBernardo Dominic UNQUALIFIED
Aditya KuskoAustraliaOnyama Limba QUALIFIED
Izzy GarufiSpainAsiya Javayant PROPOSAL
Sinclair WaycottAustraliaAmy Elsner NEW
Mayumi KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Francesco ShinkoCanadaOnyama Limba PROPOSAL
Wickens NestleIndiaBernardo Dominic PROPOSAL
Juan WieserSpainAmy Elsner QUALIFIED
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Izzy GarufiGermanyIvan Magalhaes NEW
Silvio SlusarskiCanadaOnyama Limba UNQUALIFIED
David DarakjyGermanyAnna Fali RENEWAL
Izzy GarufiArgentinaXuxue Feng QUALIFIED
Wickens NestleItalyIoni Bowcher NEGOTIATION
Faith GillianItalyAnna Fali QUALIFIED
Emily WhobreyCanadaAsiya Javayant NEW
Clifford RimArgentinaAsiya Javayant NEGOTIATION
Aika InouyeGermanyStephen Shaw RENEWAL
Misaki RoysterCanadaBernardo Dominic PROPOSAL
Smith GlickBrazilAmy Elsner PROPOSAL
Jefferson SchemmerBrazilAsiya Javayant RENEWAL
Silvio SlusarskiBrazilAmy Elsner RENEWAL
Kaitlin OstroskyFranceAsiya Javayant QUALIFIED
Misaki RoysterItalyStephen Shaw NEGOTIATION
Ashley DoeRussiaAsiya Javayant RENEWAL
Jones VocelkaFranceBernardo Dominic QUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill QUALIFIED
Octavia MaletUnited KingdomBernardo Dominic UNQUALIFIED
Francesco ShinkoBrazilAsiya Javayant QUALIFIED
Mujtaba NickaGermanyOnyama Limba RENEWAL
Claire TollnerItalyXuxue Feng NEW
Stacey MacleadJapanAmy Elsner NEGOTIATION
Jennifer AmigonIndiaBernardo Dominic NEGOTIATION
Ivar PaprockiSpainAnna Fali NEGOTIATION
Faith GillianAustraliaIvan Magalhaes RENEWAL
Darci PoquetteUnited KingdomBernardo Dominic NEW
Francesco ShinkoAustraliaAmy Elsner PROPOSAL
Arvin AlbaresBrazilElwin Sharvill RENEWAL
Jeanfrancois VenereCanadaAnna Fali NEGOTIATION
Ashley DoeRussiaOnyama Limba NEW
Julie StensethArgentinaAnna Fali UNQUALIFIED
Chavez BriddickCanadaOnyama Limba QUALIFIED
Mujtaba NickaCanadaIoni Bowcher NEGOTIATION
Jones VocelkaIndiaAnna Fali QUALIFIED
Morrow RutaAustraliaOnyama Limba NEW
Izzy GarufiSpainIoni Bowcher RENEWAL
Tony FollerUnited KingdomElwin Sharvill RENEWAL
Darci PoquetteArgentinaBernardo Dominic RENEWAL
Frozen Columns
Name
Mujtaba Nicka
Mujtaba Nicka
Mujtaba Nicka
Francesco Shinko
Sinclair Waycott
Darci Poquette
Salvatore Stockham
Antonio Caudy
Murillo Malet
Emily Whobrey
Alejandro Perin
Maisha Rulapaugh
Faith Gillian
Jefferson Schemmer
Ashley Doe
Aika Inouye
Deepesh Chui
Juan Wieser
Maisha Rulapaugh
Jones Vocelka
Salvatore Stockham
Tony Foller
Costa Dilliard
Maisha Rulapaugh
Aditya Kusko
Octavia Malet
David Darakjy
Nicolas Iturbide
Rodrigues Campain
Nicolas Iturbide
Darci Poquette
Jones Vocelka
Mayumi Kolmetz
Sinclair Waycott
Maria Marrier
Deepesh Chui
Alejandro Perin
Jeanfrancois Venere
Chavez Briddick
Claire Tollner
Misaki Royster
Ashley Doe
Mujtaba Nicka
Sinclair Waycott
Isabel Bowley
Morrow Ruta
Rodrigues Campain
Jennifer Amigon
Izzy Garufi
Leon Oldroyd
IdCountryDate
1000Italy2026-05-07
1001United Kingdom2026-05-10
1002Argentina2026-05-06
1003United Kingdom2026-04-14
1004Spain2026-04-26
1005India2026-04-21
1006Brazil2026-05-04
1007Russia2026-04-26
1008Spain2026-05-07
1009France2026-04-17
1010Argentina2026-04-24
1011Brazil2026-05-01
1012Japan2026-05-01
1013United Kingdom2026-04-20
1014Australia2026-05-01
1015United Kingdom2026-05-10
1016Germany2026-04-27
1017United Kingdom2026-04-29
1018Brazil2026-05-04
1019France2026-04-19
1020India2026-05-11
1021Argentina2026-05-07
1022Brazil2026-05-05
1023Spain2026-04-16
1024Japan2026-05-06
1025Argentina2026-05-10
1026Japan2026-05-05
1027Japan2026-05-10
1028Japan2026-04-20
1029United Kingdom2026-04-28
1030France2026-04-16
1031Canada2026-05-08
1032Australia2026-04-19
1033Argentina2026-05-04
1034Australia2026-05-07
1035Canada2026-04-21
1036Australia2026-05-12
1037Germany2026-04-16
1038Argentina2026-04-18
1039France2026-05-11
1040Brazil2026-04-30
1041Spain2026-05-04
1042Canada2026-04-27
1043Japan2026-04-25
1044Italy2026-04-24
1045Germany2026-05-11
1046Russia2026-04-22
1047Japan2026-05-06
1048Japan2026-04-25
1049Germany2026-05-03

On-Demand Data

NameIdCountryDate
Arvin Albares1000India2026-04-19
Wickens Nestle1001United Kingdom2026-05-08
Faith Gillian1002Spain2026-04-15
Jeanfrancois Venere1003Brazil2026-04-15
Faith Gillian1004Spain2026-04-16
Greenwood Bolognia1005Spain2026-04-15
Rodrigues Campain1006Japan2026-04-21
Alejandro Perin1007France2026-05-10
Francesco Shinko1008United Kingdom2026-04-20
Francesco Shinko1009Japan2026-04-14
Jeanfrancois Venere1010United Kingdom2026-05-01
David Darakjy1011Argentina2026-05-03
Aditya Kusko1012Spain2026-04-17
Ashley Doe1013Brazil2026-05-05
Leja Caldarera1014Australia2026-05-03
Mayumi Kolmetz1015Canada2026-04-20
Jones Vocelka1016Spain2026-04-23
Alejandro Perin1017Japan2026-04-25
Leja Caldarera1018Argentina2026-04-19
David Darakjy1019United Kingdom2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaFranceIvan Magalhaes RENEWAL
Chavez BriddickRussiaXuxue Feng PROPOSAL
Jones VocelkaUnited KingdomAsiya Javayant QUALIFIED
Arvin AlbaresBrazilBernardo Dominic RENEWAL
Antonio CaudySpainAmy Elsner NEW
David DarakjyAustraliaAsiya Javayant NEW
Misaki RoysterArgentinaAnna Fali UNQUALIFIED
Leja CaldareraUnited KingdomStephen Shaw RENEWAL
Jeanfrancois VenereCanadaAnna Fali UNQUALIFIED
Kaitlin OstroskyItalyElwin Sharvill QUALIFIED
Chavez BriddickItalyBernardo Dominic NEGOTIATION
Salvatore StockhamIndiaAnna Fali NEGOTIATION
Clifford RimIndiaBernardo Dominic PROPOSAL
Kaitlin OstroskyRussiaAnna Fali NEW
Jones VocelkaIndiaXuxue Feng RENEWAL
Wickens NestleGermanyIoni Bowcher RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher RENEWAL
Aika InouyeCanadaStephen Shaw RENEWAL
Ivar PaprockiIndiaIvan Magalhaes NEGOTIATION
Leja CaldareraRussiaXuxue Feng UNQUALIFIED
David DarakjyJapanOnyama Limba RENEWAL
Arvin AlbaresItalyIvan Magalhaes RENEWAL
Leja CaldareraRussiaAnna Fali NEW
Silvio SlusarskiJapanIvan Magalhaes QUALIFIED
Deepesh ChuiCanadaAsiya Javayant NEGOTIATION
Arvin AlbaresJapanElwin Sharvill RENEWAL
Greenwood BologniaUnited KingdomIvan Magalhaes RENEWAL
Antonio CaudyRussiaStephen Shaw PROPOSAL
Leon OldroydGermanyAsiya Javayant UNQUALIFIED
Jefferson SchemmerSpainIvan Magalhaes NEW
Cody SaylorsItalyOnyama Limba UNQUALIFIED
Ashley DoeGermanyElwin Sharvill NEW
Clifford RimRussiaStephen Shaw RENEWAL
Jennifer AmigonSpainAmy Elsner QUALIFIED
Silvio SlusarskiCanadaAnna Fali UNQUALIFIED
Leon OldroydArgentinaAmy Elsner NEGOTIATION
Jefferson SchemmerJapanAmy Elsner RENEWAL
Izzy GarufiFranceAnna Fali UNQUALIFIED
Smith GlickItalyAmy Elsner NEGOTIATION
Ricardo GauchoIndiaAmy Elsner 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>