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
Jennifer AmigonJapanIvan Magalhaes QUALIFIED
Cody SaylorsBrazilBernardo Dominic UNQUALIFIED
Izzy GarufiJapanIvan Magalhaes QUALIFIED
Antonio CaudyJapanBernardo Dominic PROPOSAL
Maria MarrierJapanOnyama Limba UNQUALIFIED
Clifford RimGermanyElwin Sharvill QUALIFIED
Morrow RutaJapanElwin Sharvill NEW
Cody SaylorsBrazilIoni Bowcher RENEWAL
Misaki RoysterIndiaStephen Shaw RENEWAL
David DarakjyRussiaIoni Bowcher RENEWAL
Silvio SlusarskiSpainAmy Elsner PROPOSAL
Munro FerenczSpainOnyama Limba QUALIFIED
Salvatore StockhamIndiaBernardo Dominic PROPOSAL
Arvin AlbaresIndiaAnna Fali QUALIFIED
Johnson SergiArgentinaIvan Magalhaes NEW
James ButtSpainStephen Shaw NEGOTIATION
Alejandro PerinItalyAmy Elsner NEW
Deepesh ChuiAustraliaAmy Elsner PROPOSAL
Ivar PaprockiArgentinaOnyama Limba QUALIFIED
Ashley DoeRussiaOnyama Limba PROPOSAL
Izzy GarufiCanadaIvan Magalhaes QUALIFIED
Aditya KuskoAustraliaAsiya Javayant UNQUALIFIED
Arvin AlbaresBrazilAmy Elsner RENEWAL
Kaitlin OstroskyGermanyElwin Sharvill UNQUALIFIED
Isabel BowleyRussiaAsiya Javayant UNQUALIFIED
Stacey MacleadItalyIoni Bowcher PROPOSAL
James ButtUnited KingdomXuxue Feng RENEWAL
Murillo MaletAustraliaBernardo Dominic NEGOTIATION
Costa DilliardUnited KingdomAmy Elsner NEGOTIATION
Wickens NestleJapanAsiya Javayant QUALIFIED
Emily WhobreyCanadaStephen Shaw NEW
Greenwood BologniaUnited KingdomOnyama Limba QUALIFIED
Kadeem FlosiJapanAmy Elsner NEGOTIATION
Munro FerenczCanadaStephen Shaw NEW
Ashley DoeUnited KingdomStephen Shaw NEW
Morrow RutaRussiaAnna Fali QUALIFIED
Jefferson SchemmerItalyStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaBernardo Dominic NEGOTIATION
Nicolas IturbideRussiaAmy Elsner QUALIFIED
Juan WieserSpainBernardo Dominic RENEWAL
Aruna FigeroaUnited KingdomAsiya Javayant NEW
Stacey MacleadBrazilOnyama Limba NEW
Kadeem FlosiSpainXuxue Feng RENEWAL
Nicolas IturbideItalyElwin Sharvill UNQUALIFIED
Antonio CaudyAustraliaElwin Sharvill RENEWAL
Deepesh ChuiCanadaOnyama Limba UNQUALIFIED
Maisha RulapaughRussiaXuxue Feng NEGOTIATION
Aruna FigeroaSpainXuxue Feng PROPOSAL
Chavez BriddickCanadaIvan Magalhaes RENEWAL
Jennifer AmigonUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonJapanOnyama Limba NEW
Jennifer AmigonGermanyIoni Bowcher NEGOTIATION
Isabel BowleyIndiaIvan Magalhaes UNQUALIFIED
Antonio CaudyGermanyStephen Shaw UNQUALIFIED
Izzy GarufiCanadaAmy Elsner NEGOTIATION
Sinclair WaycottItalyOnyama Limba NEW
Smith GlickRussiaOnyama Limba PROPOSAL
Clifford RimRussiaElwin Sharvill PROPOSAL
Julie StensethArgentinaStephen Shaw QUALIFIED
Murillo MaletAustraliaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeSpain2025-08-19Rangoni Of Florence QUALIFIED43Amy Elsner
1001Jones VocelkaSpain2025-08-30Chapman, Ross E Esq UNQUALIFIED97Ivan Magalhaes
1002Francesco ShinkoRussia2025-09-06Rangoni Of Florence NEW33Asiya Javayant
1003Morrow RutaGermany2025-09-09Chemel, James L Cpa UNQUALIFIED91Amy Elsner
1004Juan WieserIndia2025-09-14Feiner Bros PROPOSAL82Asiya Javayant
1005Chavez BriddickAustralia2025-08-21Commercial Press QUALIFIED81Elwin Sharvill
1006Aditya KuskoRussia2025-08-22Feiner Bros RENEWAL36Elwin Sharvill
1007Darci PoquetteJapan2025-09-04Dorl, James J Esq UNQUALIFIED40Asiya Javayant
1008Mujtaba NickaBrazil2025-08-31Printing Dimensions NEW10Ivan Magalhaes
1009Wickens NestleBrazil2025-08-19Commercial Press PROPOSAL81Stephen Shaw
1010David DarakjySpain2025-08-18Truhlar And Truhlar Attys PROPOSAL16Onyama Limba
1011Cody SaylorsBrazil2025-09-02Commercial Press NEGOTIATION28Bernardo Dominic
1012Octavia MaletArgentina2025-09-03King, Christopher A Esq UNQUALIFIED27Ivan Magalhaes
1013Ashley DoeUnited Kingdom2025-08-21Feltz Printing Service QUALIFIED32Amy Elsner
1014Leja CaldareraArgentina2025-09-02Dorl, James J Esq PROPOSAL92Bernardo Dominic
1015Arvin AlbaresCanada2025-09-10Chemel, James L Cpa PROPOSAL95Elwin Sharvill
1016Arvin AlbaresItaly2025-08-27Chapman, Ross E Esq PROPOSAL86Asiya Javayant
1017Rodrigues CampainCanada2025-09-07Chanay, Jeffrey A Esq NEW11Onyama Limba
1018Costa DilliardUnited Kingdom2025-08-19Feltz Printing Service UNQUALIFIED78Anna Fali
1019Arvin AlbaresArgentina2025-08-18Truhlar And Truhlar Attys RENEWAL27Xuxue Feng
1020Ashley DoeRussia2025-08-19Dorl, James J Esq PROPOSAL4Amy Elsner
1021Ashley DoeRussia2025-09-07Dorl, James J Esq NEGOTIATION81Stephen Shaw
1022Aruna FigeroaFrance2025-09-09Rangoni Of Florence NEW80Amy Elsner
1023Nicolas IturbideAustralia2025-08-23Feiner Bros NEW55Elwin Sharvill
1024Ricardo GauchoIndia2025-08-31King, Christopher A Esq QUALIFIED0Anna Fali
1025Murillo MaletGermany2025-09-11Benton, John B Jr UNQUALIFIED57Xuxue Feng
1026Antonio CaudyCanada2025-08-17Buckley Miller Wright QUALIFIED40Asiya Javayant
1027Faith GillianAustralia2025-08-26Buckley Miller Wright QUALIFIED5Asiya Javayant
1028Mayumi KolmetzItaly2025-08-22King, Christopher A Esq RENEWAL98Ioni Bowcher
1029Silvio SlusarskiCanada2025-09-14Morlong Associates NEW86Asiya Javayant
1030Octavia MaletSpain2025-09-11Benton, John B Jr NEW12Asiya Javayant
1031Emily WhobreyUnited Kingdom2025-08-22Benton, John B Jr QUALIFIED44Elwin Sharvill
1032Wickens NestleGermany2025-08-30Feltz Printing Service QUALIFIED12Asiya Javayant
1033Sinclair WaycottJapan2025-09-11Chanay, Jeffrey A Esq NEGOTIATION50Onyama Limba
1034Antonio CaudyBrazil2025-09-02Rousseaux, Michael Esq PROPOSAL15Asiya Javayant
1035Octavia MaletCanada2025-09-02Buckley Miller Wright NEGOTIATION96Ivan Magalhaes
1036Deepesh ChuiArgentina2025-08-26Rousseaux, Michael Esq UNQUALIFIED92Stephen Shaw
1037Kadeem FlosiArgentina2025-09-15Morlong Associates PROPOSAL16Onyama Limba
1038Leon OldroydArgentina2025-08-27Feiner Bros RENEWAL82Ioni Bowcher
1039Isabel BowleyCanada2025-09-01Truhlar And Truhlar Attys NEW26Stephen Shaw
1040David DarakjyBrazil2025-09-04Chapman, Ross E Esq NEW95Ivan Magalhaes
1041Rodrigues CampainAustralia2025-08-18Morlong Associates NEW47Anna Fali
1042Stacey MacleadSpain2025-08-23Printing Dimensions PROPOSAL64Amy Elsner
1043Jefferson SchemmerBrazil2025-08-26Rousseaux, Michael Esq NEGOTIATION68Ivan Magalhaes
1044Mujtaba NickaUnited Kingdom2025-08-30Commercial Press QUALIFIED5Amy Elsner
1045Julie StensethCanada2025-08-27Chemel, James L Cpa QUALIFIED69Anna Fali
1046Chavez BriddickGermany2025-09-08Chanay, Jeffrey A Esq UNQUALIFIED12Amy Elsner
1047David DarakjyAustralia2025-08-17Commercial Press QUALIFIED44Ioni Bowcher
1048Kadeem FlosiRussia2025-08-24Rousseaux, Michael Esq UNQUALIFIED14Stephen Shaw
1049Maisha RulapaughAustralia2025-09-09Benton, John B Jr PROPOSAL87Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoRussiaXuxue Feng PROPOSAL
Nicolas IturbideGermanyBernardo Dominic NEW
Francesco ShinkoCanadaAsiya Javayant QUALIFIED
Adams MorascaSpainAmy Elsner PROPOSAL
Stacey MacleadJapanAsiya Javayant UNQUALIFIED
Silvio SlusarskiFranceStephen Shaw NEGOTIATION
Alejandro PerinGermanyOnyama Limba NEW
Faith GillianUnited KingdomStephen Shaw RENEWAL
Mayumi KolmetzSpainOnyama Limba PROPOSAL
Wickens NestleFranceAsiya Javayant PROPOSAL
Silvio SlusarskiUnited KingdomOnyama Limba PROPOSAL
Faith GillianGermanyElwin Sharvill PROPOSAL
Leja CaldareraFranceAmy Elsner UNQUALIFIED
Antonio CaudyBrazilElwin Sharvill NEGOTIATION
Isabel BowleyItalyBernardo Dominic QUALIFIED
Chavez BriddickFranceIvan Magalhaes PROPOSAL
Chavez BriddickBrazilIvan Magalhaes UNQUALIFIED
Cody SaylorsUnited KingdomBernardo Dominic RENEWAL
Alejandro PerinIndiaAsiya Javayant NEGOTIATION
Cody SaylorsArgentinaIoni Bowcher UNQUALIFIED
Leja CaldareraBrazilAnna Fali QUALIFIED
Clifford RimIndiaIoni Bowcher PROPOSAL
Mujtaba NickaItalyIvan Magalhaes NEGOTIATION
Jeanfrancois VenereFranceOnyama Limba QUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes QUALIFIED
Jennifer AmigonJapanBernardo Dominic RENEWAL
Rodrigues CampainBrazilAsiya Javayant NEGOTIATION
Kadeem FlosiBrazilAmy Elsner PROPOSAL
Jones VocelkaCanadaAsiya Javayant NEW
Rodrigues CampainGermanyXuxue Feng NEW
Cody SaylorsIndiaOnyama Limba NEGOTIATION
Jefferson SchemmerArgentinaOnyama Limba RENEWAL
Jennifer AmigonRussiaAnna Fali NEGOTIATION
Chavez BriddickIndiaStephen Shaw NEW
Nicolas IturbideJapanOnyama Limba NEW
Jennifer AmigonArgentinaStephen Shaw UNQUALIFIED
Morrow RutaBrazilXuxue Feng UNQUALIFIED
Kadeem FlosiCanadaIoni Bowcher UNQUALIFIED
Tony FollerAustraliaXuxue Feng NEW
Munro FerenczUnited KingdomIvan Magalhaes RENEWAL
Misaki RoysterCanadaBernardo Dominic NEW
Leja CaldareraArgentinaElwin Sharvill PROPOSAL
Jefferson SchemmerAustraliaStephen Shaw NEW
Aika InouyeUnited KingdomElwin Sharvill NEW
Jennifer AmigonFranceOnyama Limba UNQUALIFIED
Kadeem FlosiAustraliaOnyama Limba NEGOTIATION
Wickens NestleCanadaAnna Fali UNQUALIFIED
Kaitlin OstroskyJapanAmy Elsner NEW
Jeanfrancois VenereItalyAmy Elsner QUALIFIED
Antonio CaudyGermanyAnna Fali NEW
Frozen Columns
Name
Deepesh Chui
Julie Stenseth
Ivar Paprocki
Maria Marrier
Maisha Rulapaugh
Wickens Nestle
Murillo Malet
Maisha Rulapaugh
David Darakjy
Maisha Rulapaugh
Morrow Ruta
Cody Saylors
Leja Caldarera
Aruna Figeroa
Jeanfrancois Venere
Leon Oldroyd
Leon Oldroyd
Maria Marrier
James Butt
Morrow Ruta
Deepesh Chui
Leon Oldroyd
Darci Poquette
Mujtaba Nicka
David Darakjy
Silvio Slusarski
Izzy Garufi
Salvatore Stockham
Emily Whobrey
Murillo Malet
Maisha Rulapaugh
Claire Tollner
Johnson Sergi
Darci Poquette
Faith Gillian
Chavez Briddick
Silvio Slusarski
Alejandro Perin
Alejandro Perin
Wickens Nestle
Maisha Rulapaugh
James Butt
Izzy Garufi
Juan Wieser
Jefferson Schemmer
Morrow Ruta
Costa Dilliard
Tony Foller
Jennifer Amigon
James Butt
IdCountryDate
1000Australia2025-09-02
1001Russia2025-09-09
1002Brazil2025-08-31
1003Italy2025-09-04
1004Italy2025-09-09
1005Japan2025-09-15
1006France2025-09-05
1007Canada2025-09-02
1008India2025-08-27
1009Germany2025-09-04
1010Spain2025-08-20
1011Germany2025-09-02
1012United Kingdom2025-08-31
1013United Kingdom2025-09-10
1014Australia2025-08-27
1015Canada2025-09-11
1016Canada2025-08-30
1017Brazil2025-08-26
1018Canada2025-08-29
1019India2025-09-08
1020India2025-09-12
1021Argentina2025-09-11
1022Argentina2025-09-01
1023Brazil2025-09-11
1024India2025-09-07
1025Argentina2025-08-21
1026Argentina2025-09-12
1027Germany2025-09-03
1028Argentina2025-08-29
1029Japan2025-09-06
1030Argentina2025-09-12
1031India2025-08-20
1032Japan2025-09-08
1033Australia2025-09-07
1034France2025-08-18
1035France2025-09-10
1036India2025-08-18
1037Canada2025-08-20
1038Argentina2025-08-22
1039Argentina2025-08-29
1040Argentina2025-08-20
1041United Kingdom2025-08-18
1042Russia2025-08-20
1043Brazil2025-09-11
1044France2025-08-23
1045Spain2025-08-25
1046India2025-09-05
1047India2025-08-26
1048Argentina2025-08-31
1049Argentina2025-09-04

On-Demand Data

NameIdCountryDate
Smith Glick1000India2025-08-30
Murillo Malet1001India2025-08-17
Kaitlin Ostrosky1002Germany2025-09-12
Kadeem Flosi1003Russia2025-09-12
Julie Stenseth1004Spain2025-09-12
Morrow Ruta1005Spain2025-09-12
Murillo Malet1006Germany2025-08-21
Adams Morasca1007Canada2025-08-17
Sinclair Waycott1008Brazil2025-08-27
Aruna Figeroa1009United Kingdom2025-09-14
Greenwood Bolognia1010Russia2025-09-02
Leja Caldarera1011Russia2025-08-24
Maisha Rulapaugh1012Japan2025-09-15
Jeanfrancois Venere1013Spain2025-08-27
Octavia Malet1014Australia2025-09-01
Leja Caldarera1015Spain2025-09-09
Maria Marrier1016Australia2025-09-02
Julie Stenseth1017Russia2025-09-15
Misaki Royster1018United Kingdom2025-09-12
Morrow Ruta1019United Kingdom2025-09-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeUnited KingdomAsiya Javayant QUALIFIED
Tony FollerJapanXuxue Feng QUALIFIED
Faith GillianGermanyAmy Elsner NEGOTIATION
Isabel BowleyRussiaElwin Sharvill QUALIFIED
Emily WhobreyRussiaXuxue Feng PROPOSAL
Ivar PaprockiGermanyBernardo Dominic PROPOSAL
Greenwood BologniaBrazilElwin Sharvill RENEWAL
Aruna FigeroaJapanAsiya Javayant PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant RENEWAL
Silvio SlusarskiRussiaStephen Shaw NEW
Alejandro PerinBrazilAnna Fali NEW
Ivar PaprockiAustraliaOnyama Limba NEW
Aditya KuskoRussiaOnyama Limba QUALIFIED
Cody SaylorsUnited KingdomElwin Sharvill QUALIFIED
Johnson SergiGermanyBernardo Dominic NEW
Wickens NestleBrazilOnyama Limba PROPOSAL
Wickens NestleAustraliaBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaAsiya Javayant RENEWAL
Salvatore StockhamRussiaElwin Sharvill PROPOSAL
Stacey MacleadRussiaOnyama Limba RENEWAL
Francesco ShinkoItalyElwin Sharvill UNQUALIFIED
James ButtArgentinaBernardo Dominic RENEWAL
Deepesh ChuiRussiaIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaXuxue Feng RENEWAL
Ricardo GauchoSpainAnna Fali RENEWAL
Munro FerenczUnited KingdomOnyama Limba PROPOSAL
Tony FollerItalyXuxue Feng NEW
Johnson SergiRussiaAnna Fali NEGOTIATION
Ashley DoeIndiaElwin Sharvill RENEWAL
Antonio CaudyItalyStephen Shaw PROPOSAL
Johnson SergiBrazilAmy Elsner RENEWAL
Tony FollerBrazilOnyama Limba UNQUALIFIED
Ivar PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Isabel BowleyFranceXuxue Feng UNQUALIFIED
Tony FollerFranceStephen Shaw NEW
Jones VocelkaRussiaStephen Shaw QUALIFIED
Morrow RutaIndiaBernardo Dominic QUALIFIED
Emily WhobreyArgentinaStephen Shaw RENEWAL
Clifford RimSpainIoni Bowcher PROPOSAL
Aika InouyeGermanyAnna Fali 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>