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
Stacey MacleadFranceAsiya Javayant UNQUALIFIED
Murillo MaletAustraliaIoni Bowcher QUALIFIED
Tony FollerArgentinaOnyama Limba PROPOSAL
Arvin AlbaresArgentinaElwin Sharvill RENEWAL
Murillo MaletAustraliaIoni Bowcher NEGOTIATION
Munro FerenczBrazilIoni Bowcher NEW
Faith GillianAustraliaAnna Fali NEGOTIATION
Chavez BriddickArgentinaAmy Elsner NEGOTIATION
Faith GillianGermanyAnna Fali RENEWAL
Rodrigues CampainBrazilIvan Magalhaes QUALIFIED
Isabel BowleyBrazilIoni Bowcher PROPOSAL
David DarakjyRussiaStephen Shaw QUALIFIED
Salvatore StockhamCanadaStephen Shaw UNQUALIFIED
Misaki RoysterGermanyIoni Bowcher NEGOTIATION
Antonio CaudySpainAmy Elsner NEW
Maisha RulapaughAustraliaBernardo Dominic NEGOTIATION
Leja CaldareraJapanElwin Sharvill NEW
Antonio CaudyAustraliaXuxue Feng UNQUALIFIED
David DarakjyAustraliaElwin Sharvill NEGOTIATION
Sinclair WaycottUnited KingdomXuxue Feng NEW
Aruna FigeroaArgentinaStephen Shaw NEW
Emily WhobreyArgentinaAmy Elsner RENEWAL
Murillo MaletItalyStephen Shaw NEGOTIATION
Julie StensethFranceAsiya Javayant UNQUALIFIED
Jones VocelkaSpainAmy Elsner QUALIFIED
Murillo MaletJapanIoni Bowcher NEGOTIATION
Antonio CaudyGermanyAmy Elsner NEW
Aditya KuskoIndiaBernardo Dominic NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw RENEWAL
Darci PoquetteItalyAnna Fali QUALIFIED
Faith GillianGermanyIoni Bowcher RENEWAL
David DarakjyIndiaElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceAmy Elsner UNQUALIFIED
Deepesh ChuiUnited KingdomBernardo Dominic PROPOSAL
Maisha RulapaughCanadaAmy Elsner UNQUALIFIED
Murillo MaletIndiaAsiya Javayant PROPOSAL
Leja CaldareraAustraliaElwin Sharvill NEW
Maisha RulapaughSpainXuxue Feng RENEWAL
Stacey MacleadBrazilIoni Bowcher QUALIFIED
James ButtSpainBernardo Dominic PROPOSAL
Francesco ShinkoFranceElwin Sharvill UNQUALIFIED
Jeanfrancois VenereItalyOnyama Limba QUALIFIED
Smith GlickFranceIoni Bowcher UNQUALIFIED
Kaitlin OstroskyBrazilAnna Fali PROPOSAL
Maria MarrierGermanyAnna Fali NEW
Maisha RulapaughGermanyAsiya Javayant NEW
Jones VocelkaGermanyBernardo Dominic RENEWAL
Silvio SlusarskiCanadaAsiya Javayant PROPOSAL
Cody SaylorsGermanyOnyama Limba UNQUALIFIED
Johnson SergiArgentinaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoFranceIoni Bowcher PROPOSAL
Cody SaylorsAustraliaIoni Bowcher RENEWAL
Sinclair WaycottBrazilIvan Magalhaes NEW
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Ricardo GauchoSpainIoni Bowcher NEW
Emily WhobreyUnited KingdomXuxue Feng PROPOSAL
Darci PoquetteGermanyXuxue Feng UNQUALIFIED
Leon OldroydArgentinaBernardo Dominic UNQUALIFIED
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Claire TollnerItalyElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaCanada2026-04-03Rousseaux, Michael Esq PROPOSAL21Amy Elsner
1001Johnson SergiJapan2026-03-31Dorl, James J Esq UNQUALIFIED95Elwin Sharvill
1002Rodrigues CampainAustralia2026-04-26Benton, John B Jr QUALIFIED95Anna Fali
1003Adams MorascaUnited Kingdom2026-04-20Printing Dimensions QUALIFIED56Amy Elsner
1004Claire TollnerBrazil2026-04-23Printing Dimensions NEGOTIATION17Ioni Bowcher
1005Wickens NestleItaly2026-04-14Dorl, James J Esq NEW57Anna Fali
1006Leon OldroydArgentina2026-04-04Rousseaux, Michael Esq NEGOTIATION54Stephen Shaw
1007Ivar PaprockiCanada2026-04-19Morlong Associates NEW72Amy Elsner
1008Costa DilliardBrazil2026-04-08Chapman, Ross E Esq NEW83Ioni Bowcher
1009Greenwood BologniaBrazil2026-04-22Dorl, James J Esq QUALIFIED53Onyama Limba
1010Wickens NestleFrance2026-04-21Printing Dimensions PROPOSAL93Ivan Magalhaes
1011Smith GlickArgentina2026-04-09Dorl, James J Esq NEGOTIATION67Onyama Limba
1012Costa DilliardFrance2026-04-18Benton, John B Jr PROPOSAL37Bernardo Dominic
1013Silvio SlusarskiGermany2026-04-16Feltz Printing Service RENEWAL33Amy Elsner
1014Munro FerenczRussia2026-03-29Chapman, Ross E Esq NEGOTIATION35Ioni Bowcher
1015Sinclair WaycottRussia2026-04-03Truhlar And Truhlar Attys NEW28Onyama Limba
1016Cody SaylorsUnited Kingdom2026-04-21King, Christopher A Esq UNQUALIFIED4Amy Elsner
1017Ivar PaprockiIndia2026-04-09Printing Dimensions PROPOSAL31Bernardo Dominic
1018Ashley DoeItaly2026-04-03Dorl, James J Esq UNQUALIFIED97Onyama Limba
1019Stacey MacleadRussia2026-03-30Chemel, James L Cpa NEGOTIATION81Amy Elsner
1020Emily WhobreySpain2026-04-16King, Christopher A Esq RENEWAL17Elwin Sharvill
1021Ricardo GauchoRussia2026-04-18Rousseaux, Michael Esq NEGOTIATION95Elwin Sharvill
1022Alejandro PerinUnited Kingdom2026-04-03King, Christopher A Esq NEGOTIATION34Amy Elsner
1023Leon OldroydAustralia2026-04-10Rousseaux, Michael Esq PROPOSAL0Anna Fali
1024Arvin AlbaresRussia2026-03-30Rousseaux, Michael Esq NEGOTIATION14Ioni Bowcher
1025Julie StensethJapan2026-03-29Feltz Printing Service RENEWAL29Elwin Sharvill
1026Greenwood BologniaItaly2026-04-13Chanay, Jeffrey A Esq QUALIFIED58Ivan Magalhaes
1027Jefferson SchemmerSpain2026-03-28Dorl, James J Esq NEGOTIATION60Amy Elsner
1028Maisha RulapaughFrance2026-04-10Rangoni Of Florence PROPOSAL56Onyama Limba
1029Darci PoquetteIndia2026-04-09Dorl, James J Esq RENEWAL56Onyama Limba
1030Francesco ShinkoUnited Kingdom2026-04-17Truhlar And Truhlar Attys QUALIFIED7Anna Fali
1031Leja CaldareraUnited Kingdom2026-04-26Morlong Associates NEW62Elwin Sharvill
1032Aditya KuskoAustralia2026-04-05Chanay, Jeffrey A Esq UNQUALIFIED39Bernardo Dominic
1033Maria MarrierAustralia2026-04-01Benton, John B Jr NEW90Asiya Javayant
1034Greenwood BologniaFrance2026-04-21Chapman, Ross E Esq QUALIFIED99Anna Fali
1035Emily WhobreyItaly2026-04-26Chanay, Jeffrey A Esq RENEWAL41Anna Fali
1036Mayumi KolmetzBrazil2026-03-30Feiner Bros RENEWAL36Xuxue Feng
1037Chavez BriddickAustralia2026-04-05Chapman, Ross E Esq NEW32Stephen Shaw
1038Silvio SlusarskiCanada2026-03-28King, Christopher A Esq UNQUALIFIED18Ivan Magalhaes
1039Aruna FigeroaGermany2026-04-11Chapman, Ross E Esq UNQUALIFIED43Xuxue Feng
1040Clifford RimAustralia2026-04-08Chemel, James L Cpa NEGOTIATION15Ioni Bowcher
1041David DarakjyItaly2026-04-16Chemel, James L Cpa NEGOTIATION81Bernardo Dominic
1042Munro FerenczUnited Kingdom2026-04-25Dorl, James J Esq RENEWAL39Stephen Shaw
1043Claire TollnerSpain2026-04-02Chanay, Jeffrey A Esq NEGOTIATION9Bernardo Dominic
1044Aruna FigeroaItaly2026-04-01Dorl, James J Esq NEGOTIATION58Xuxue Feng
1045Ivar PaprockiCanada2026-04-22Feiner Bros NEGOTIATION13Amy Elsner
1046Emily WhobreyArgentina2026-04-23King, Christopher A Esq PROPOSAL56Anna Fali
1047Leja CaldareraRussia2026-04-06Commercial Press PROPOSAL74Amy Elsner
1048Wickens NestleJapan2026-04-02King, Christopher A Esq QUALIFIED63Ivan Magalhaes
1049Aditya KuskoUnited Kingdom2026-04-10Benton, John B Jr PROPOSAL10Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimFranceAsiya Javayant RENEWAL
Alejandro PerinRussiaIoni Bowcher QUALIFIED
Juan WieserSpainStephen Shaw NEGOTIATION
Isabel BowleyRussiaAmy Elsner PROPOSAL
Arvin AlbaresItalyIoni Bowcher RENEWAL
Aika InouyeJapanAnna Fali NEGOTIATION
Claire TollnerArgentinaAmy Elsner RENEWAL
Alejandro PerinBrazilIvan Magalhaes QUALIFIED
Nicolas IturbideCanadaBernardo Dominic RENEWAL
Nicolas IturbideAustraliaStephen Shaw NEW
Jefferson SchemmerIndiaElwin Sharvill NEGOTIATION
Kaitlin OstroskyAustraliaStephen Shaw NEW
Greenwood BologniaCanadaBernardo Dominic NEGOTIATION
Mayumi KolmetzArgentinaAsiya Javayant RENEWAL
Salvatore StockhamJapanBernardo Dominic PROPOSAL
Kadeem FlosiArgentinaStephen Shaw UNQUALIFIED
Leon OldroydUnited KingdomAsiya Javayant RENEWAL
Julie StensethItalyOnyama Limba QUALIFIED
David DarakjyArgentinaElwin Sharvill RENEWAL
Mayumi KolmetzIndiaIoni Bowcher RENEWAL
Wickens NestleItalyOnyama Limba RENEWAL
Isabel BowleySpainBernardo Dominic QUALIFIED
Adams MorascaUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson SchemmerFranceXuxue Feng RENEWAL
Misaki RoysterBrazilXuxue Feng RENEWAL
Isabel BowleyUnited KingdomAmy Elsner NEW
Izzy GarufiSpainAnna Fali NEW
Arvin AlbaresIndiaIoni Bowcher UNQUALIFIED
David DarakjyCanadaAnna Fali RENEWAL
Leja CaldareraCanadaOnyama Limba PROPOSAL
Antonio CaudyBrazilOnyama Limba NEW
Aika InouyeGermanyIvan Magalhaes PROPOSAL
Leon OldroydRussiaIvan Magalhaes RENEWAL
Jeanfrancois VenereIndiaElwin Sharvill UNQUALIFIED
Rodrigues CampainJapanXuxue Feng NEW
Antonio CaudyIndiaIoni Bowcher RENEWAL
Ivar PaprockiGermanyStephen Shaw NEW
Darci PoquetteAustraliaXuxue Feng QUALIFIED
Stacey MacleadBrazilBernardo Dominic RENEWAL
Ricardo GauchoFranceElwin Sharvill NEW
Murillo MaletRussiaOnyama Limba NEW
Morrow RutaCanadaIvan Magalhaes NEW
Chavez BriddickRussiaBernardo Dominic UNQUALIFIED
Julie StensethItalyXuxue Feng NEGOTIATION
Darci PoquetteIndiaIoni Bowcher RENEWAL
Nicolas IturbideAustraliaAmy Elsner RENEWAL
Arvin AlbaresSpainBernardo Dominic NEW
Misaki RoysterRussiaXuxue Feng PROPOSAL
Alejandro PerinAustraliaStephen Shaw RENEWAL
Sinclair WaycottJapanElwin Sharvill PROPOSAL
Frozen Columns
Name
Chavez Briddick
Aika Inouye
Jefferson Schemmer
Ivar Paprocki
Alejandro Perin
Arvin Albares
Nicolas Iturbide
Chavez Briddick
Jennifer Amigon
Nicolas Iturbide
Ivar Paprocki
Johnson Sergi
Aruna Figeroa
Jefferson Schemmer
Claire Tollner
Rodrigues Campain
Jones Vocelka
Murillo Malet
Johnson Sergi
Aditya Kusko
Morrow Ruta
Jeanfrancois Venere
Maisha Rulapaugh
Silvio Slusarski
Wickens Nestle
Aruna Figeroa
Silvio Slusarski
David Darakjy
Maisha Rulapaugh
Jeanfrancois Venere
Isabel Bowley
Faith Gillian
Maria Marrier
Ivar Paprocki
Juan Wieser
Deepesh Chui
Rodrigues Campain
Emily Whobrey
Deepesh Chui
Mayumi Kolmetz
Mayumi Kolmetz
Johnson Sergi
Munro Ferencz
David Darakjy
Arvin Albares
Clifford Rim
Ivar Paprocki
Kadeem Flosi
Smith Glick
Wickens Nestle
IdCountryDate
1000Canada2026-03-28
1001United Kingdom2026-04-08
1002Canada2026-04-05
1003Japan2026-03-29
1004Spain2026-04-03
1005Spain2026-03-30
1006Canada2026-04-19
1007Argentina2026-04-16
1008France2026-04-10
1009Italy2026-04-09
1010India2026-04-23
1011Italy2026-04-17
1012Italy2026-04-24
1013Australia2026-04-10
1014Brazil2026-04-20
1015Germany2026-04-13
1016Russia2026-04-04
1017Russia2026-04-05
1018Brazil2026-04-21
1019Argentina2026-04-01
1020Argentina2026-03-29
1021Spain2026-04-14
1022Germany2026-04-11
1023Australia2026-04-07
1024Australia2026-04-02
1025Germany2026-04-13
1026Brazil2026-04-04
1027India2026-04-13
1028Canada2026-04-14
1029Canada2026-04-11
1030Brazil2026-04-08
1031France2026-03-31
1032Brazil2026-04-01
1033Canada2026-04-17
1034Germany2026-04-11
1035India2026-04-10
1036Japan2026-04-03
1037Italy2026-04-22
1038France2026-04-09
1039Canada2026-04-22
1040Russia2026-04-14
1041Japan2026-04-16
1042Spain2026-03-29
1043Italy2026-04-19
1044Canada2026-04-13
1045Germany2026-04-12
1046Brazil2026-04-02
1047Germany2026-04-11
1048United Kingdom2026-03-31
1049Japan2026-04-13

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Spain2026-04-13
Darci Poquette1001United Kingdom2026-04-08
Greenwood Bolognia1002Argentina2026-04-19
Aruna Figeroa1003Spain2026-04-06
Ivar Paprocki1004United Kingdom2026-04-18
Darci Poquette1005Italy2026-04-21
Ricardo Gaucho1006Canada2026-04-22
Alejandro Perin1007Argentina2026-04-23
Mayumi Kolmetz1008India2026-04-09
Costa Dilliard1009Japan2026-04-11
David Darakjy1010Germany2026-04-24
Mujtaba Nicka1011Australia2026-04-23
Silvio Slusarski1012India2026-04-04
Kaitlin Ostrosky1013Russia2026-04-17
Kadeem Flosi1014Russia2026-03-29
Silvio Slusarski1015Spain2026-04-23
Mayumi Kolmetz1016Canada2026-04-10
Jones Vocelka1017Argentina2026-04-20
Emily Whobrey1018Germany2026-04-26
Tony Foller1019Spain2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamArgentinaAsiya Javayant NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoBrazilIvan Magalhaes RENEWAL
Kadeem FlosiUnited KingdomAsiya Javayant RENEWAL
Emily WhobreySpainIvan Magalhaes PROPOSAL
Mujtaba NickaAustraliaStephen Shaw QUALIFIED
Antonio CaudySpainStephen Shaw PROPOSAL
Aika InouyeSpainIvan Magalhaes NEGOTIATION
Smith GlickFranceOnyama Limba NEGOTIATION
Clifford RimSpainAmy Elsner QUALIFIED
Alejandro PerinBrazilStephen Shaw UNQUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes PROPOSAL
Ashley DoeJapanElwin Sharvill RENEWAL
Sinclair WaycottCanadaIoni Bowcher QUALIFIED
Maisha RulapaughBrazilAmy Elsner NEW
Jefferson SchemmerFranceXuxue Feng PROPOSAL
Alejandro PerinCanadaOnyama Limba PROPOSAL
Darci PoquetteIndiaXuxue Feng QUALIFIED
Francesco ShinkoFranceAnna Fali RENEWAL
Francesco ShinkoIndiaIvan Magalhaes NEW
Ricardo GauchoAustraliaAnna Fali UNQUALIFIED
Adams MorascaFranceElwin Sharvill RENEWAL
Arvin AlbaresJapanAsiya Javayant NEGOTIATION
Mujtaba NickaGermanyOnyama Limba UNQUALIFIED
Aika InouyeUnited KingdomAnna Fali NEGOTIATION
Sinclair WaycottCanadaAmy Elsner RENEWAL
Claire TollnerJapanIvan Magalhaes QUALIFIED
Kadeem FlosiSpainIvan Magalhaes NEGOTIATION
Francesco ShinkoCanadaXuxue Feng RENEWAL
Juan WieserArgentinaOnyama Limba UNQUALIFIED
Ricardo GauchoGermanyBernardo Dominic NEGOTIATION
Stacey MacleadAustraliaBernardo Dominic NEGOTIATION
Emily WhobreyFranceXuxue Feng UNQUALIFIED
Aruna FigeroaSpainStephen Shaw NEGOTIATION
Antonio CaudyFranceIvan Magalhaes NEGOTIATION
Juan WieserItalyStephen Shaw RENEWAL
Morrow RutaRussiaIoni Bowcher QUALIFIED
Leja CaldareraAustraliaStephen Shaw QUALIFIED
Faith GillianUnited KingdomElwin Sharvill QUALIFIED
Cody SaylorsGermanyXuxue Feng RENEWAL

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