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
Ashley DoeCanadaBernardo Dominic RENEWAL
Nicolas IturbideArgentinaAmy Elsner RENEWAL
Jefferson SchemmerCanadaOnyama Limba QUALIFIED
Clifford RimJapanXuxue Feng QUALIFIED
Munro FerenczJapanIoni Bowcher QUALIFIED
Murillo MaletJapanElwin Sharvill NEGOTIATION
Greenwood BologniaFranceXuxue Feng RENEWAL
Mujtaba NickaItalyAmy Elsner NEW
David DarakjyUnited KingdomOnyama Limba NEW
Leja CaldareraAustraliaOnyama Limba RENEWAL
Aika InouyeArgentinaStephen Shaw UNQUALIFIED
Maria MarrierFranceBernardo Dominic PROPOSAL
James ButtAustraliaXuxue Feng PROPOSAL
Aditya KuskoItalyStephen Shaw NEW
Adams MorascaUnited KingdomBernardo Dominic QUALIFIED
Claire TollnerAustraliaAmy Elsner UNQUALIFIED
Salvatore StockhamSpainAmy Elsner QUALIFIED
Mayumi KolmetzIndiaOnyama Limba QUALIFIED
Aika InouyeUnited KingdomBernardo Dominic QUALIFIED
Kadeem FlosiSpainElwin Sharvill QUALIFIED
Kadeem FlosiUnited KingdomStephen Shaw PROPOSAL
Adams MorascaRussiaIvan Magalhaes NEGOTIATION
Johnson SergiSpainElwin Sharvill NEGOTIATION
Wickens NestleGermanyIoni Bowcher PROPOSAL
Jones VocelkaCanadaAnna Fali PROPOSAL
Izzy GarufiArgentinaIoni Bowcher PROPOSAL
Maria MarrierItalyAsiya Javayant UNQUALIFIED
Izzy GarufiAustraliaElwin Sharvill PROPOSAL
Misaki RoysterArgentinaAmy Elsner UNQUALIFIED
Cody SaylorsAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois VenereRussiaOnyama Limba NEGOTIATION
Alejandro PerinIndiaStephen Shaw UNQUALIFIED
Francesco ShinkoItalyIoni Bowcher QUALIFIED
Jeanfrancois VenereCanadaBernardo Dominic PROPOSAL
Wickens NestleArgentinaOnyama Limba QUALIFIED
Munro FerenczSpainBernardo Dominic RENEWAL
David DarakjySpainAmy Elsner QUALIFIED
Cody SaylorsJapanIoni Bowcher NEW
Maisha RulapaughArgentinaElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaStephen Shaw NEGOTIATION
Morrow RutaUnited KingdomAsiya Javayant PROPOSAL
Kaitlin OstroskyCanadaIoni Bowcher QUALIFIED
Darci PoquetteCanadaBernardo Dominic NEW
Jennifer AmigonArgentinaIvan Magalhaes PROPOSAL
Greenwood BologniaArgentinaAnna Fali NEW
Adams MorascaIndiaOnyama Limba UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill UNQUALIFIED
Silvio SlusarskiAustraliaOnyama Limba QUALIFIED
Ivar PaprockiBrazilElwin Sharvill RENEWAL
Rodrigues CampainFranceStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo MaletGermanyIoni Bowcher QUALIFIED
Antonio CaudyBrazilStephen Shaw QUALIFIED
Octavia MaletSpainOnyama Limba QUALIFIED
Leon OldroydUnited KingdomBernardo Dominic PROPOSAL
Leon OldroydJapanAnna Fali PROPOSAL
Antonio CaudyAustraliaIvan Magalhaes UNQUALIFIED
Murillo MaletAustraliaIoni Bowcher QUALIFIED
Ivar PaprockiCanadaBernardo Dominic QUALIFIED
Clifford RimItalyElwin Sharvill QUALIFIED
Cody SaylorsRussiaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtItaly2026-06-14Feiner Bros PROPOSAL91Ivan Magalhaes
1001Rodrigues CampainRussia2026-05-27Morlong Associates RENEWAL0Elwin Sharvill
1002David DarakjySpain2026-05-30Benton, John B Jr UNQUALIFIED74Anna Fali
1003Chavez BriddickBrazil2026-06-07Dorl, James J Esq NEGOTIATION75Stephen Shaw
1004Jennifer AmigonArgentina2026-06-01Truhlar And Truhlar Attys NEGOTIATION54Onyama Limba
1005Cody SaylorsBrazil2026-05-19Rousseaux, Michael Esq RENEWAL34Asiya Javayant
1006Juan WieserFrance2026-06-08Benton, John B Jr NEW67Amy Elsner
1007Johnson SergiAustralia2026-05-19Chemel, James L Cpa PROPOSAL74Asiya Javayant
1008Stacey MacleadRussia2026-05-29Chemel, James L Cpa PROPOSAL37Amy Elsner
1009Rodrigues CampainGermany2026-05-27King, Christopher A Esq RENEWAL95Ivan Magalhaes
1010Nicolas IturbideArgentina2026-05-19Dorl, James J Esq UNQUALIFIED30Bernardo Dominic
1011Julie StensethBrazil2026-05-22Chanay, Jeffrey A Esq PROPOSAL4Bernardo Dominic
1012Izzy GarufiFrance2026-06-09Feiner Bros RENEWAL81Bernardo Dominic
1013Ashley DoeRussia2026-06-04Feiner Bros NEW34Xuxue Feng
1014Wickens NestleCanada2026-05-30Chemel, James L Cpa RENEWAL83Xuxue Feng
1015Alejandro PerinAustralia2026-06-15Truhlar And Truhlar Attys UNQUALIFIED84Onyama Limba
1016Deepesh ChuiItaly2026-06-14Feltz Printing Service NEW3Bernardo Dominic
1017Ashley DoeIndia2026-06-02Chanay, Jeffrey A Esq QUALIFIED60Ivan Magalhaes
1018Claire TollnerAustralia2026-06-04Commercial Press RENEWAL80Bernardo Dominic
1019Arvin AlbaresFrance2026-06-06King, Christopher A Esq QUALIFIED43Anna Fali
1020Ashley DoeIndia2026-06-15Feltz Printing Service RENEWAL13Onyama Limba
1021Misaki RoysterBrazil2026-05-23Morlong Associates RENEWAL82Stephen Shaw
1022Isabel BowleyAustralia2026-05-29Dorl, James J Esq QUALIFIED83Anna Fali
1023Antonio CaudyRussia2026-06-17Printing Dimensions QUALIFIED23Elwin Sharvill
1024Claire TollnerJapan2026-05-30Truhlar And Truhlar Attys UNQUALIFIED92Bernardo Dominic
1025Maisha RulapaughIndia2026-06-14Chapman, Ross E Esq NEW90Asiya Javayant
1026Claire TollnerJapan2026-06-10Printing Dimensions UNQUALIFIED52Asiya Javayant
1027Munro FerenczFrance2026-05-23Rousseaux, Michael Esq NEGOTIATION74Xuxue Feng
1028Ashley DoeGermany2026-05-27Benton, John B Jr UNQUALIFIED81Onyama Limba
1029Faith GillianUnited Kingdom2026-05-28Chapman, Ross E Esq QUALIFIED87Anna Fali
1030Emily WhobreyIndia2026-05-27Feiner Bros QUALIFIED46Elwin Sharvill
1031Ivar PaprockiGermany2026-05-21Rangoni Of Florence PROPOSAL90Onyama Limba
1032Jones VocelkaSpain2026-06-05Benton, John B Jr PROPOSAL92Amy Elsner
1033Salvatore StockhamFrance2026-05-30Chapman, Ross E Esq PROPOSAL48Anna Fali
1034Deepesh ChuiGermany2026-05-19Dorl, James J Esq RENEWAL63Bernardo Dominic
1035Ivar PaprockiAustralia2026-06-11Truhlar And Truhlar Attys PROPOSAL50Ivan Magalhaes
1036Juan WieserArgentina2026-06-01King, Christopher A Esq QUALIFIED99Onyama Limba
1037Greenwood BologniaArgentina2026-06-03Benton, John B Jr RENEWAL75Amy Elsner
1038David DarakjyFrance2026-05-20Chanay, Jeffrey A Esq PROPOSAL43Bernardo Dominic
1039Alejandro PerinJapan2026-06-15Rousseaux, Michael Esq RENEWAL15Amy Elsner
1040Julie StensethFrance2026-05-23Chapman, Ross E Esq PROPOSAL46Onyama Limba
1041Kaitlin OstroskyItaly2026-05-27Feltz Printing Service NEGOTIATION16Bernardo Dominic
1042Chavez BriddickRussia2026-05-27Feiner Bros NEGOTIATION12Bernardo Dominic
1043Ricardo GauchoUnited Kingdom2026-05-25King, Christopher A Esq UNQUALIFIED79Elwin Sharvill
1044Smith GlickAustralia2026-05-29Buckley Miller Wright NEGOTIATION61Ioni Bowcher
1045Silvio SlusarskiJapan2026-06-05Buckley Miller Wright QUALIFIED84Elwin Sharvill
1046Costa DilliardJapan2026-06-03Printing Dimensions PROPOSAL58Anna Fali
1047Ivar PaprockiGermany2026-05-19Commercial Press NEGOTIATION60Xuxue Feng
1048Costa DilliardSpain2026-05-24Rousseaux, Michael Esq PROPOSAL23Anna Fali
1049Jennifer AmigonRussia2026-06-03King, Christopher A Esq UNQUALIFIED48Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonIndiaXuxue Feng RENEWAL
Morrow RutaJapanXuxue Feng QUALIFIED
Adams MorascaAustraliaElwin Sharvill RENEWAL
Alejandro PerinRussiaAsiya Javayant RENEWAL
Antonio CaudyJapanAmy Elsner RENEWAL
Claire TollnerJapanAnna Fali NEW
Arvin AlbaresItalyXuxue Feng RENEWAL
Antonio CaudyBrazilXuxue Feng NEGOTIATION
Murillo MaletRussiaAsiya Javayant QUALIFIED
Misaki RoysterAustraliaAnna Fali QUALIFIED
Cody SaylorsIndiaIoni Bowcher QUALIFIED
Mayumi KolmetzFranceStephen Shaw QUALIFIED
Chavez BriddickItalyStephen Shaw UNQUALIFIED
Isabel BowleyJapanXuxue Feng QUALIFIED
Costa DilliardArgentinaStephen Shaw QUALIFIED
Adams MorascaJapanBernardo Dominic PROPOSAL
Aika InouyeSpainStephen Shaw UNQUALIFIED
Smith GlickIndiaElwin Sharvill PROPOSAL
Emily WhobreyAustraliaXuxue Feng NEGOTIATION
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Leja CaldareraCanadaBernardo Dominic QUALIFIED
Arvin AlbaresIndiaIoni Bowcher NEW
Kaitlin OstroskyCanadaAnna Fali RENEWAL
Juan WieserRussiaIvan Magalhaes PROPOSAL
Cody SaylorsSpainXuxue Feng NEGOTIATION
Kadeem FlosiUnited KingdomIvan Magalhaes QUALIFIED
Darci PoquetteGermanyBernardo Dominic PROPOSAL
Arvin AlbaresArgentinaIvan Magalhaes RENEWAL
Octavia MaletSpainAmy Elsner NEGOTIATION
Deepesh ChuiFranceStephen Shaw RENEWAL
Arvin AlbaresCanadaIoni Bowcher RENEWAL
Octavia MaletAustraliaElwin Sharvill NEW
Kadeem FlosiIndiaIvan Magalhaes QUALIFIED
Sinclair WaycottItalyAnna Fali QUALIFIED
Ashley DoeJapanBernardo Dominic PROPOSAL
Ricardo GauchoJapanAmy Elsner NEGOTIATION
Ashley DoeAustraliaIvan Magalhaes NEW
Jones VocelkaCanadaXuxue Feng QUALIFIED
Chavez BriddickIndiaOnyama Limba PROPOSAL
Leja CaldareraBrazilAnna Fali NEGOTIATION
Arvin AlbaresCanadaOnyama Limba QUALIFIED
Wickens NestleUnited KingdomAsiya Javayant NEGOTIATION
Aditya KuskoArgentinaAsiya Javayant PROPOSAL
Darci PoquetteIndiaAsiya Javayant PROPOSAL
Juan WieserBrazilOnyama Limba NEW
Jones VocelkaAustraliaIoni Bowcher NEGOTIATION
Maria MarrierGermanyAnna Fali NEGOTIATION
Salvatore StockhamRussiaStephen Shaw PROPOSAL
Nicolas IturbideAustraliaElwin Sharvill UNQUALIFIED
Mujtaba NickaGermanyAnna Fali NEGOTIATION
Frozen Columns
Name
Mayumi Kolmetz
Isabel Bowley
Sinclair Waycott
Wickens Nestle
Morrow Ruta
Stacey Maclead
Jeanfrancois Venere
Silvio Slusarski
Ashley Doe
Izzy Garufi
Leon Oldroyd
Alejandro Perin
Aruna Figeroa
David Darakjy
Maria Marrier
Greenwood Bolognia
Clifford Rim
Aruna Figeroa
Alejandro Perin
Stacey Maclead
Octavia Malet
James Butt
Sinclair Waycott
Misaki Royster
Kaitlin Ostrosky
Wickens Nestle
Sinclair Waycott
Juan Wieser
Mujtaba Nicka
Leja Caldarera
Julie Stenseth
Adams Morasca
Rodrigues Campain
Julie Stenseth
Aika Inouye
Cody Saylors
Leja Caldarera
Leja Caldarera
Costa Dilliard
Kaitlin Ostrosky
Juan Wieser
Cody Saylors
Julie Stenseth
Salvatore Stockham
Morrow Ruta
Isabel Bowley
Faith Gillian
Nicolas Iturbide
Aditya Kusko
Darci Poquette
IdCountryDate
1000Russia2026-06-13
1001Japan2026-06-13
1002France2026-06-06
1003India2026-05-25
1004Australia2026-06-15
1005Japan2026-06-04
1006Russia2026-06-12
1007India2026-06-01
1008Brazil2026-06-14
1009Argentina2026-05-30
1010Argentina2026-06-03
1011Russia2026-06-17
1012Japan2026-05-23
1013Germany2026-05-29
1014Brazil2026-06-02
1015Russia2026-05-28
1016Canada2026-06-07
1017Spain2026-06-13
1018India2026-05-22
1019Germany2026-06-10
1020Japan2026-05-19
1021Australia2026-06-05
1022Italy2026-06-10
1023Canada2026-05-22
1024United Kingdom2026-05-23
1025Italy2026-05-19
1026Italy2026-05-31
1027United Kingdom2026-06-14
1028Russia2026-06-12
1029United Kingdom2026-05-20
1030France2026-06-05
1031Canada2026-06-10
1032United Kingdom2026-06-10
1033Argentina2026-05-28
1034Italy2026-06-12
1035Spain2026-05-19
1036Italy2026-06-12
1037Canada2026-06-13
1038France2026-06-16
1039Canada2026-05-25
1040Brazil2026-06-13
1041Canada2026-06-16
1042Russia2026-05-22
1043Argentina2026-06-13
1044Russia2026-05-29
1045India2026-06-13
1046Australia2026-06-07
1047Argentina2026-06-10
1048Spain2026-05-19
1049United Kingdom2026-05-30

On-Demand Data

NameIdCountryDate
Juan Wieser1000Italy2026-06-12
Leja Caldarera1001Japan2026-05-20
Francesco Shinko1002Australia2026-05-25
Aruna Figeroa1003Argentina2026-06-14
Izzy Garufi1004Japan2026-06-15
Maria Marrier1005Australia2026-05-20
Stacey Maclead1006Canada2026-06-15
Murillo Malet1007Canada2026-06-11
Smith Glick1008Russia2026-05-24
Murillo Malet1009Spain2026-06-12
Faith Gillian1010Russia2026-05-29
Morrow Ruta1011Germany2026-06-08
Jennifer Amigon1012Japan2026-06-15
Cody Saylors1013France2026-06-16
Kaitlin Ostrosky1014United Kingdom2026-06-16
Maisha Rulapaugh1015Japan2026-06-04
Faith Gillian1016Italy2026-05-23
Emily Whobrey1017United Kingdom2026-05-19
Adams Morasca1018Spain2026-06-01
Maria Marrier1019Canada2026-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoGermanyOnyama Limba QUALIFIED
Aditya KuskoSpainAmy Elsner NEGOTIATION
Sinclair WaycottIndiaXuxue Feng NEGOTIATION
Juan WieserGermanyElwin Sharvill NEGOTIATION
Claire TollnerRussiaAsiya Javayant NEW
Arvin AlbaresUnited KingdomAnna Fali NEW
Julie StensethFranceAnna Fali NEW
Aruna FigeroaSpainAmy Elsner PROPOSAL
Smith GlickArgentinaElwin Sharvill NEW
Claire TollnerFranceAsiya Javayant RENEWAL
Julie StensethUnited KingdomIoni Bowcher PROPOSAL
Juan WieserRussiaBernardo Dominic PROPOSAL
Stacey MacleadSpainAsiya Javayant PROPOSAL
Stacey MacleadUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonRussiaBernardo Dominic RENEWAL
Maria MarrierIndiaAsiya Javayant PROPOSAL
Jeanfrancois VenereJapanAnna Fali PROPOSAL
Aika InouyeIndiaElwin Sharvill NEW
Murillo MaletItalyIoni Bowcher UNQUALIFIED
Emily WhobreyFranceAmy Elsner UNQUALIFIED
Salvatore StockhamFranceIvan Magalhaes QUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill QUALIFIED
Kadeem FlosiArgentinaXuxue Feng NEW
James ButtBrazilBernardo Dominic NEGOTIATION
Jennifer AmigonJapanElwin Sharvill NEGOTIATION
Jefferson SchemmerAustraliaAmy Elsner PROPOSAL
Mayumi KolmetzItalyAnna Fali QUALIFIED
Nicolas IturbideSpainAsiya Javayant PROPOSAL
Jennifer AmigonSpainAnna Fali UNQUALIFIED
Ashley DoeItalyAmy Elsner NEGOTIATION
Wickens NestleBrazilIoni Bowcher NEW
Clifford RimRussiaIvan Magalhaes NEGOTIATION
Chavez BriddickArgentinaIvan Magalhaes QUALIFIED
Greenwood BologniaCanadaIoni Bowcher RENEWAL
Jones VocelkaFranceAnna Fali QUALIFIED
James ButtCanadaXuxue Feng QUALIFIED
Francesco ShinkoRussiaAsiya Javayant PROPOSAL
Aditya KuskoRussiaStephen Shaw RENEWAL
Arvin AlbaresFranceAmy Elsner NEW
Octavia MaletSpainIvan Magalhaes UNQUALIFIED

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