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
Jeanfrancois VenereAustraliaIoni Bowcher RENEWAL
Emily WhobreyIndiaElwin Sharvill RENEWAL
Darci PoquetteSpainIvan Magalhaes QUALIFIED
Smith GlickRussiaOnyama Limba RENEWAL
Clifford RimAustraliaStephen Shaw PROPOSAL
Wickens NestleUnited KingdomAsiya Javayant PROPOSAL
Claire TollnerArgentinaIoni Bowcher NEGOTIATION
Munro FerenczAustraliaAnna Fali UNQUALIFIED
Deepesh ChuiCanadaStephen Shaw UNQUALIFIED
Leon OldroydRussiaBernardo Dominic PROPOSAL
Stacey MacleadArgentinaOnyama Limba NEW
Munro FerenczIndiaAmy Elsner NEGOTIATION
Aditya KuskoFranceIvan Magalhaes NEW
Greenwood BologniaUnited KingdomElwin Sharvill PROPOSAL
Julie StensethIndiaIoni Bowcher UNQUALIFIED
Munro FerenczUnited KingdomXuxue Feng RENEWAL
Jeanfrancois VenereArgentinaBernardo Dominic NEGOTIATION
Claire TollnerJapanBernardo Dominic UNQUALIFIED
Tony FollerGermanyIoni Bowcher PROPOSAL
David DarakjyCanadaXuxue Feng RENEWAL
Deepesh ChuiUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba NickaRussiaIvan Magalhaes RENEWAL
Adams MorascaBrazilAnna Fali RENEWAL
Sinclair WaycottIndiaElwin Sharvill NEW
Cody SaylorsGermanyIvan Magalhaes QUALIFIED
Morrow RutaRussiaIvan Magalhaes QUALIFIED
Leja CaldareraArgentinaIoni Bowcher UNQUALIFIED
Julie StensethAustraliaStephen Shaw RENEWAL
Octavia MaletBrazilElwin Sharvill NEW
Silvio SlusarskiIndiaAsiya Javayant NEGOTIATION
Kadeem FlosiBrazilStephen Shaw NEW
David DarakjyCanadaBernardo Dominic RENEWAL
Munro FerenczRussiaBernardo Dominic QUALIFIED
Nicolas IturbideFranceOnyama Limba RENEWAL
Morrow RutaFranceXuxue Feng UNQUALIFIED
Antonio CaudyBrazilElwin Sharvill QUALIFIED
Costa DilliardArgentinaBernardo Dominic PROPOSAL
Francesco ShinkoArgentinaAnna Fali UNQUALIFIED
David DarakjyGermanyXuxue Feng QUALIFIED
Wickens NestleFranceAsiya Javayant NEW
Izzy GarufiBrazilElwin Sharvill QUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois VenereIndiaStephen Shaw UNQUALIFIED
Juan WieserFranceElwin Sharvill NEGOTIATION
Johnson SergiUnited KingdomElwin Sharvill PROPOSAL
Alejandro PerinSpainStephen Shaw QUALIFIED
Deepesh ChuiArgentinaAnna Fali RENEWAL
Izzy GarufiCanadaElwin Sharvill QUALIFIED
Stacey MacleadCanadaIoni Bowcher PROPOSAL
Darci PoquetteFranceXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaGermanyStephen Shaw NEW
Greenwood BologniaItalyIoni Bowcher UNQUALIFIED
Cody SaylorsAustraliaOnyama Limba UNQUALIFIED
Sinclair WaycottAustraliaXuxue Feng NEW
Alejandro PerinCanadaIvan Magalhaes PROPOSAL
Arvin AlbaresGermanyOnyama Limba QUALIFIED
Izzy GarufiArgentinaIoni Bowcher RENEWAL
Alejandro PerinItalyAnna Fali NEW
Leja CaldareraAustraliaOnyama Limba PROPOSAL
Jeanfrancois VenereRussiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainItaly2026-05-18Chapman, Ross E Esq NEW46Elwin Sharvill
1001Mujtaba NickaAustralia2026-05-24Truhlar And Truhlar Attys UNQUALIFIED33Xuxue Feng
1002Murillo MaletArgentina2026-05-29Chapman, Ross E Esq RENEWAL58Xuxue Feng
1003Johnson SergiCanada2026-05-31Chemel, James L Cpa NEW9Elwin Sharvill
1004Antonio CaudyIndia2026-06-08Feltz Printing Service UNQUALIFIED1Onyama Limba
1005Izzy GarufiArgentina2026-05-23Buckley Miller Wright NEW81Ivan Magalhaes
1006Chavez BriddickAustralia2026-05-20Truhlar And Truhlar Attys UNQUALIFIED40Xuxue Feng
1007Tony FollerRussia2026-05-21Truhlar And Truhlar Attys QUALIFIED25Bernardo Dominic
1008Mayumi KolmetzArgentina2026-05-30Printing Dimensions PROPOSAL46Ioni Bowcher
1009Misaki RoysterIndia2026-06-10Benton, John B Jr UNQUALIFIED1Amy Elsner
1010Isabel BowleyCanada2026-05-28Dorl, James J Esq RENEWAL11Elwin Sharvill
1011Rodrigues CampainBrazil2026-06-02Morlong Associates NEGOTIATION93Amy Elsner
1012Maria MarrierIndia2026-05-25Dorl, James J Esq QUALIFIED19Elwin Sharvill
1013Misaki RoysterSpain2026-06-04Buckley Miller Wright RENEWAL84Bernardo Dominic
1014Aika InouyeSpain2026-06-05Commercial Press NEW50Bernardo Dominic
1015Smith GlickFrance2026-05-28Rangoni Of Florence NEGOTIATION72Xuxue Feng
1016Leon OldroydIndia2026-05-29Dorl, James J Esq UNQUALIFIED82Amy Elsner
1017Sinclair WaycottRussia2026-05-22Buckley Miller Wright UNQUALIFIED36Bernardo Dominic
1018Nicolas IturbideGermany2026-05-20Commercial Press NEGOTIATION55Anna Fali
1019Silvio SlusarskiIndia2026-06-02Feiner Bros QUALIFIED58Bernardo Dominic
1020Murillo MaletCanada2026-05-13Chanay, Jeffrey A Esq PROPOSAL11Xuxue Feng
1021Julie StensethAustralia2026-05-18Chemel, James L Cpa NEGOTIATION50Asiya Javayant
1022Izzy GarufiUnited Kingdom2026-05-20Morlong Associates UNQUALIFIED21Amy Elsner
1023Ashley DoeFrance2026-05-21Feltz Printing Service QUALIFIED77Elwin Sharvill
1024Leja CaldareraAustralia2026-05-31Buckley Miller Wright QUALIFIED15Bernardo Dominic
1025Leon OldroydJapan2026-05-23Commercial Press NEW22Bernardo Dominic
1026Emily WhobreyBrazil2026-05-31Dorl, James J Esq UNQUALIFIED63Xuxue Feng
1027Julie StensethBrazil2026-06-01Buckley Miller Wright UNQUALIFIED64Asiya Javayant
1028Silvio SlusarskiArgentina2026-06-01Printing Dimensions NEGOTIATION49Ivan Magalhaes
1029Ivar PaprockiItaly2026-06-01Chemel, James L Cpa NEGOTIATION55Amy Elsner
1030Johnson SergiGermany2026-05-17Chemel, James L Cpa RENEWAL35Asiya Javayant
1031Silvio SlusarskiItaly2026-05-30Rousseaux, Michael Esq QUALIFIED50Stephen Shaw
1032Misaki RoysterItaly2026-05-25Feltz Printing Service NEW33Anna Fali
1033Leja CaldareraRussia2026-06-10Feltz Printing Service RENEWAL31Asiya Javayant
1034Darci PoquetteItaly2026-06-09Chapman, Ross E Esq NEGOTIATION95Ioni Bowcher
1035Misaki RoysterCanada2026-06-09Chemel, James L Cpa UNQUALIFIED66Asiya Javayant
1036Aditya KuskoBrazil2026-05-18Chapman, Ross E Esq QUALIFIED25Elwin Sharvill
1037Greenwood BologniaAustralia2026-05-14Chanay, Jeffrey A Esq UNQUALIFIED38Anna Fali
1038Maisha RulapaughRussia2026-05-25Chanay, Jeffrey A Esq NEGOTIATION27Stephen Shaw
1039Isabel BowleyBrazil2026-06-09Chapman, Ross E Esq PROPOSAL0Elwin Sharvill
1040Octavia MaletUnited Kingdom2026-06-02Feltz Printing Service NEGOTIATION19Ivan Magalhaes
1041Smith GlickCanada2026-05-27Truhlar And Truhlar Attys RENEWAL2Ivan Magalhaes
1042Ashley DoeRussia2026-05-30Truhlar And Truhlar Attys PROPOSAL97Ivan Magalhaes
1043Emily WhobreyGermany2026-05-15Chemel, James L Cpa NEW15Bernardo Dominic
1044Alejandro PerinBrazil2026-06-01Feiner Bros PROPOSAL9Asiya Javayant
1045Faith GillianCanada2026-06-10Chapman, Ross E Esq NEGOTIATION49Elwin Sharvill
1046Cody SaylorsBrazil2026-06-10Chanay, Jeffrey A Esq UNQUALIFIED33Ioni Bowcher
1047Aruna FigeroaFrance2026-06-05Rousseaux, Michael Esq NEGOTIATION96Stephen Shaw
1048Adams MorascaAustralia2026-06-02Rangoni Of Florence UNQUALIFIED60Onyama Limba
1049Leja CaldareraRussia2026-05-28Printing Dimensions QUALIFIED42Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeItalyAsiya Javayant RENEWAL
Chavez BriddickAustraliaIvan Magalhaes RENEWAL
Izzy GarufiArgentinaAmy Elsner PROPOSAL
Adams MorascaJapanIoni Bowcher RENEWAL
Smith GlickGermanyElwin Sharvill QUALIFIED
Julie StensethGermanyAnna Fali RENEWAL
Jones VocelkaSpainBernardo Dominic NEGOTIATION
Juan WieserSpainXuxue Feng PROPOSAL
Clifford RimIndiaBernardo Dominic UNQUALIFIED
Smith GlickBrazilStephen Shaw RENEWAL
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Munro FerenczItalyIoni Bowcher UNQUALIFIED
Mayumi KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Ricardo GauchoUnited KingdomElwin Sharvill UNQUALIFIED
Smith GlickRussiaAsiya Javayant PROPOSAL
Juan WieserRussiaBernardo Dominic UNQUALIFIED
Kadeem FlosiSpainStephen Shaw NEW
Jeanfrancois VenereGermanyIvan Magalhaes RENEWAL
Antonio CaudySpainIvan Magalhaes QUALIFIED
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Aruna FigeroaUnited KingdomOnyama Limba NEW
Darci PoquetteBrazilAnna Fali NEW
Antonio CaudyAustraliaElwin Sharvill QUALIFIED
Arvin AlbaresBrazilOnyama Limba NEGOTIATION
Leon OldroydSpainOnyama Limba NEGOTIATION
Kaitlin OstroskyFranceStephen Shaw UNQUALIFIED
Darci PoquetteBrazilXuxue Feng NEW
Cody SaylorsIndiaOnyama Limba UNQUALIFIED
Greenwood BologniaItalyIoni Bowcher PROPOSAL
Adams MorascaAustraliaAsiya Javayant UNQUALIFIED
Alejandro PerinItalyStephen Shaw QUALIFIED
Octavia MaletJapanAsiya Javayant UNQUALIFIED
Darci PoquetteAustraliaElwin Sharvill NEW
Francesco ShinkoGermanyAmy Elsner QUALIFIED
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
James ButtAustraliaStephen Shaw QUALIFIED
Munro FerenczRussiaOnyama Limba QUALIFIED
Wickens NestleRussiaStephen Shaw UNQUALIFIED
Greenwood BologniaAustraliaAmy Elsner RENEWAL
Johnson SergiGermanyAnna Fali QUALIFIED
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
Costa DilliardRussiaAsiya Javayant QUALIFIED
David DarakjyIndiaStephen Shaw RENEWAL
Munro FerenczUnited KingdomAnna Fali NEGOTIATION
Kaitlin OstroskyGermanyIoni Bowcher NEGOTIATION
Rodrigues CampainRussiaIoni Bowcher NEW
James ButtUnited KingdomXuxue Feng PROPOSAL
Clifford RimSpainAsiya Javayant PROPOSAL
Misaki RoysterRussiaBernardo Dominic UNQUALIFIED
Rodrigues CampainIndiaElwin Sharvill PROPOSAL
Frozen Columns
Name
Alejandro Perin
Jefferson Schemmer
Claire Tollner
Jennifer Amigon
Salvatore Stockham
Arvin Albares
Jeanfrancois Venere
Chavez Briddick
Jennifer Amigon
Ricardo Gaucho
Salvatore Stockham
Leon Oldroyd
Jones Vocelka
Cody Saylors
Sinclair Waycott
Isabel Bowley
David Darakjy
Ricardo Gaucho
Alejandro Perin
Deepesh Chui
Smith Glick
Kaitlin Ostrosky
Ivar Paprocki
Chavez Briddick
Emily Whobrey
Ricardo Gaucho
Emily Whobrey
David Darakjy
Munro Ferencz
Ricardo Gaucho
Tony Foller
Salvatore Stockham
Smith Glick
Costa Dilliard
Ricardo Gaucho
Leja Caldarera
Adams Morasca
Antonio Caudy
Darci Poquette
Aditya Kusko
Alejandro Perin
Aditya Kusko
Rodrigues Campain
Aditya Kusko
Faith Gillian
Julie Stenseth
Ashley Doe
Maisha Rulapaugh
Ricardo Gaucho
Faith Gillian
IdCountryDate
1000Australia2026-06-02
1001Russia2026-06-04
1002Japan2026-06-08
1003Canada2026-05-13
1004Italy2026-06-04
1005United Kingdom2026-05-23
1006Japan2026-05-15
1007Russia2026-06-01
1008Australia2026-06-01
1009India2026-05-20
1010Canada2026-05-14
1011Australia2026-05-13
1012Spain2026-05-17
1013United Kingdom2026-06-05
1014Brazil2026-06-07
1015Australia2026-05-12
1016India2026-05-30
1017India2026-06-08
1018Germany2026-06-08
1019Germany2026-06-05
1020France2026-05-14
1021Japan2026-05-28
1022Brazil2026-06-03
1023Russia2026-05-27
1024Germany2026-05-20
1025India2026-05-16
1026India2026-05-21
1027Canada2026-05-29
1028France2026-05-18
1029Australia2026-05-24
1030Brazil2026-05-14
1031Canada2026-06-05
1032United Kingdom2026-06-08
1033Germany2026-05-13
1034Spain2026-05-14
1035United Kingdom2026-06-05
1036Brazil2026-05-12
1037Italy2026-05-18
1038Canada2026-05-16
1039Canada2026-06-02
1040Argentina2026-05-19
1041France2026-05-20
1042Spain2026-05-25
1043Germany2026-06-05
1044United Kingdom2026-06-08
1045Germany2026-05-27
1046United Kingdom2026-05-12
1047Germany2026-06-06
1048Argentina2026-05-15
1049France2026-05-16

On-Demand Data

NameIdCountryDate
Juan Wieser1000Germany2026-05-23
Faith Gillian1001Italy2026-05-25
Clifford Rim1002Italy2026-05-14
Salvatore Stockham1003India2026-06-07
Francesco Shinko1004Canada2026-05-19
Francesco Shinko1005Canada2026-05-23
Alejandro Perin1006Russia2026-05-18
Maisha Rulapaugh1007Spain2026-05-16
Mayumi Kolmetz1008Russia2026-06-09
Munro Ferencz1009Argentina2026-05-16
Jennifer Amigon1010Argentina2026-05-28
Salvatore Stockham1011India2026-06-02
Misaki Royster1012Japan2026-06-06
Maria Marrier1013Germany2026-05-13
Maria Marrier1014Argentina2026-06-09
Aruna Figeroa1015Australia2026-05-14
Leon Oldroyd1016United Kingdom2026-05-24
Juan Wieser1017Australia2026-05-23
Nicolas Iturbide1018Brazil2026-06-09
Leja Caldarera1019Germany2026-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoCanadaElwin Sharvill PROPOSAL
Greenwood BologniaCanadaOnyama Limba QUALIFIED
Greenwood BologniaSpainXuxue Feng RENEWAL
Rodrigues CampainSpainXuxue Feng UNQUALIFIED
Nicolas IturbideArgentinaAsiya Javayant NEW
Salvatore StockhamCanadaOnyama Limba RENEWAL
Misaki RoysterItalyXuxue Feng RENEWAL
Chavez BriddickFranceAmy Elsner RENEWAL
Isabel BowleyJapanOnyama Limba RENEWAL
Emily WhobreyItalyXuxue Feng QUALIFIED
David DarakjyBrazilAmy Elsner UNQUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson SchemmerIndiaAnna Fali NEW
Aika InouyeSpainOnyama Limba NEGOTIATION
Antonio CaudyRussiaAnna Fali PROPOSAL
Costa DilliardCanadaAmy Elsner UNQUALIFIED
Stacey MacleadBrazilElwin Sharvill RENEWAL
Adams MorascaUnited KingdomBernardo Dominic NEGOTIATION
Murillo MaletIndiaAmy Elsner UNQUALIFIED
Johnson SergiAustraliaAmy Elsner UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes QUALIFIED
Darci PoquetteIndiaXuxue Feng NEGOTIATION
Ivar PaprockiItalyOnyama Limba UNQUALIFIED
Jones VocelkaRussiaAmy Elsner UNQUALIFIED
Izzy GarufiGermanyStephen Shaw QUALIFIED
Morrow RutaGermanyAsiya Javayant NEGOTIATION
Wickens NestleFranceBernardo Dominic UNQUALIFIED
Wickens NestleArgentinaBernardo Dominic PROPOSAL
Arvin AlbaresBrazilElwin Sharvill NEGOTIATION
Claire TollnerAustraliaIvan Magalhaes PROPOSAL
Jennifer AmigonArgentinaXuxue Feng UNQUALIFIED
Ivar PaprockiRussiaIoni Bowcher RENEWAL
Aika InouyeRussiaIvan Magalhaes PROPOSAL
David DarakjyGermanyXuxue Feng PROPOSAL
Mujtaba NickaBrazilIoni Bowcher RENEWAL
Faith GillianGermanyAsiya Javayant QUALIFIED
Jones VocelkaCanadaBernardo Dominic NEGOTIATION
Isabel BowleyFranceElwin Sharvill NEGOTIATION
Ivar PaprockiItalyStephen Shaw NEGOTIATION
Salvatore StockhamSpainOnyama Limba 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>