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
Leja CaldareraAustraliaAmy Elsner RENEWAL
Kadeem FlosiJapanAnna Fali RENEWAL
Antonio CaudyRussiaXuxue Feng RENEWAL
Maisha RulapaughUnited KingdomIoni Bowcher QUALIFIED
Wickens NestleFranceBernardo Dominic NEW
Juan WieserFranceIoni Bowcher NEGOTIATION
Aruna FigeroaItalyAsiya Javayant PROPOSAL
Aruna FigeroaItalyOnyama Limba QUALIFIED
Faith GillianRussiaAnna Fali NEW
Ivar PaprockiIndiaAmy Elsner RENEWAL
Greenwood BologniaIndiaAnna Fali QUALIFIED
Jones VocelkaItalyStephen Shaw NEGOTIATION
Francesco ShinkoFranceStephen Shaw PROPOSAL
Ashley DoeCanadaAmy Elsner QUALIFIED
Clifford RimItalyElwin Sharvill NEGOTIATION
Murillo MaletBrazilElwin Sharvill RENEWAL
Costa DilliardRussiaIvan Magalhaes PROPOSAL
Johnson SergiUnited KingdomOnyama Limba NEW
Leja CaldareraGermanyOnyama Limba UNQUALIFIED
Smith GlickSpainAmy Elsner NEW
Leja CaldareraSpainStephen Shaw QUALIFIED
Kadeem FlosiCanadaXuxue Feng UNQUALIFIED
Maria MarrierRussiaElwin Sharvill NEW
James ButtFranceOnyama Limba PROPOSAL
Mujtaba NickaRussiaElwin Sharvill PROPOSAL
Julie StensethRussiaOnyama Limba UNQUALIFIED
Leja CaldareraGermanyAsiya Javayant NEW
Misaki RoysterItalyAsiya Javayant PROPOSAL
Julie StensethJapanElwin Sharvill RENEWAL
Emily WhobreyItalyOnyama Limba QUALIFIED
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Octavia MaletFranceAnna Fali RENEWAL
Faith GillianArgentinaOnyama Limba RENEWAL
Kadeem FlosiJapanAsiya Javayant PROPOSAL
Cody SaylorsSpainElwin Sharvill NEW
Leja CaldareraSpainAmy Elsner PROPOSAL
Kaitlin OstroskyRussiaIoni Bowcher NEW
Greenwood BologniaGermanyElwin Sharvill PROPOSAL
Nicolas IturbideGermanyBernardo Dominic QUALIFIED
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Aika InouyeBrazilStephen Shaw PROPOSAL
Kaitlin OstroskyCanadaAmy Elsner PROPOSAL
Silvio SlusarskiItalyStephen Shaw RENEWAL
Jeanfrancois VenereRussiaBernardo Dominic QUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes UNQUALIFIED
Leon OldroydFranceElwin Sharvill RENEWAL
Aruna FigeroaJapanIoni Bowcher UNQUALIFIED
Clifford RimCanadaIvan Magalhaes NEGOTIATION
Mayumi KolmetzFranceIoni Bowcher NEGOTIATION
Claire TollnerUnited KingdomAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideRussiaBernardo Dominic UNQUALIFIED
Aika InouyeBrazilBernardo Dominic NEW
Aruna FigeroaSpainAsiya Javayant NEGOTIATION
Smith GlickJapanIvan Magalhaes NEGOTIATION
Antonio CaudyItalyIoni Bowcher NEW
Jennifer AmigonAustraliaBernardo Dominic PROPOSAL
Deepesh ChuiCanadaXuxue Feng NEGOTIATION
Maisha RulapaughGermanyStephen Shaw NEGOTIATION
Jones VocelkaBrazilIoni Bowcher NEW
Aditya KuskoArgentinaStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadCanada2026-05-04Chanay, Jeffrey A Esq NEGOTIATION14Stephen Shaw
1001Munro FerenczRussia2026-05-12Feltz Printing Service UNQUALIFIED40Amy Elsner
1002Mujtaba NickaCanada2026-04-29Truhlar And Truhlar Attys RENEWAL92Ioni Bowcher
1003Misaki RoysterIndia2026-05-21Rousseaux, Michael Esq PROPOSAL32Bernardo Dominic
1004James ButtGermany2026-05-10Rangoni Of Florence NEW45Xuxue Feng
1005Antonio CaudyItaly2026-05-12Printing Dimensions NEW83Amy Elsner
1006Jones VocelkaUnited Kingdom2026-05-11Rangoni Of Florence NEGOTIATION9Stephen Shaw
1007Faith GillianAustralia2026-05-03King, Christopher A Esq UNQUALIFIED52Onyama Limba
1008Arvin AlbaresAustralia2026-05-13Commercial Press NEGOTIATION83Stephen Shaw
1009Maria MarrierGermany2026-05-18Rousseaux, Michael Esq QUALIFIED90Elwin Sharvill
1010David DarakjyArgentina2026-04-30Truhlar And Truhlar Attys NEGOTIATION39Elwin Sharvill
1011Clifford RimIndia2026-05-21Chemel, James L Cpa NEGOTIATION75Onyama Limba
1012Julie StensethAustralia2026-05-09Chemel, James L Cpa NEGOTIATION50Ivan Magalhaes
1013Jones VocelkaItaly2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED32Ivan Magalhaes
1014Jennifer AmigonAustralia2026-04-30Truhlar And Truhlar Attys QUALIFIED79Anna Fali
1015Isabel BowleyJapan2026-05-02Chemel, James L Cpa NEGOTIATION1Xuxue Feng
1016Tony FollerSpain2026-05-20Printing Dimensions NEW51Ioni Bowcher
1017Sinclair WaycottUnited Kingdom2026-05-01Feiner Bros NEW56Anna Fali
1018Wickens NestleJapan2026-04-30Benton, John B Jr NEW31Amy Elsner
1019Murillo MaletUnited Kingdom2026-05-13Chemel, James L Cpa RENEWAL0Ioni Bowcher
1020Smith GlickCanada2026-05-23Truhlar And Truhlar Attys UNQUALIFIED0Ioni Bowcher
1021Kaitlin OstroskyAustralia2026-05-11Morlong Associates NEW95Onyama Limba
1022Deepesh ChuiArgentina2026-05-07Chanay, Jeffrey A Esq NEGOTIATION94Xuxue Feng
1023Julie StensethUnited Kingdom2026-05-06Buckley Miller Wright PROPOSAL14Anna Fali
1024Juan WieserSpain2026-04-27Chanay, Jeffrey A Esq UNQUALIFIED43Onyama Limba
1025Smith GlickIndia2026-04-28King, Christopher A Esq NEW59Stephen Shaw
1026Salvatore StockhamUnited Kingdom2026-05-19Chanay, Jeffrey A Esq RENEWAL20Xuxue Feng
1027James ButtArgentina2026-05-09King, Christopher A Esq UNQUALIFIED55Bernardo Dominic
1028Emily WhobreyJapan2026-04-29Chapman, Ross E Esq UNQUALIFIED30Anna Fali
1029Arvin AlbaresSpain2026-05-12Chemel, James L Cpa NEGOTIATION19Xuxue Feng
1030Nicolas IturbideGermany2026-05-25King, Christopher A Esq RENEWAL56Ioni Bowcher
1031Darci PoquetteUnited Kingdom2026-05-08Feiner Bros UNQUALIFIED15Onyama Limba
1032Faith GillianItaly2026-05-04Chapman, Ross E Esq QUALIFIED12Anna Fali
1033Jefferson SchemmerFrance2026-04-27Rangoni Of Florence UNQUALIFIED93Amy Elsner
1034Jennifer AmigonFrance2026-05-25Rangoni Of Florence NEW25Ioni Bowcher
1035Greenwood BologniaItaly2026-05-08Chanay, Jeffrey A Esq NEGOTIATION20Ivan Magalhaes
1036David DarakjyGermany2026-05-10Rousseaux, Michael Esq NEGOTIATION8Stephen Shaw
1037Izzy GarufiGermany2026-05-23Chemel, James L Cpa QUALIFIED17Anna Fali
1038Silvio SlusarskiItaly2026-05-24Chanay, Jeffrey A Esq RENEWAL85Bernardo Dominic
1039Costa DilliardArgentina2026-05-22Truhlar And Truhlar Attys RENEWAL67Elwin Sharvill
1040Leja CaldareraUnited Kingdom2026-04-28Truhlar And Truhlar Attys RENEWAL86Ivan Magalhaes
1041Darci PoquetteRussia2026-05-21Buckley Miller Wright QUALIFIED96Asiya Javayant
1042Jones VocelkaJapan2026-05-21Printing Dimensions UNQUALIFIED81Asiya Javayant
1043Mujtaba NickaUnited Kingdom2026-05-23Buckley Miller Wright QUALIFIED65Asiya Javayant
1044Sinclair WaycottGermany2026-05-05Chapman, Ross E Esq NEW29Asiya Javayant
1045Deepesh ChuiSpain2026-05-20Rousseaux, Michael Esq UNQUALIFIED13Xuxue Feng
1046Sinclair WaycottIndia2026-05-14Rousseaux, Michael Esq NEW52Stephen Shaw
1047Greenwood BologniaItaly2026-05-04Chapman, Ross E Esq QUALIFIED57Amy Elsner
1048Kadeem FlosiCanada2026-05-21Truhlar And Truhlar Attys NEW89Elwin Sharvill
1049Morrow RutaJapan2026-05-23Dorl, James J Esq QUALIFIED70Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerBrazilIvan Magalhaes NEGOTIATION
Jefferson SchemmerBrazilAmy Elsner NEGOTIATION
Chavez BriddickJapanXuxue Feng UNQUALIFIED
Alejandro PerinArgentinaIvan Magalhaes PROPOSAL
Darci PoquetteUnited KingdomAnna Fali RENEWAL
Arvin AlbaresGermanyOnyama Limba UNQUALIFIED
Morrow RutaArgentinaStephen Shaw QUALIFIED
Morrow RutaArgentinaAsiya Javayant PROPOSAL
Leon OldroydItalyBernardo Dominic NEW
Salvatore StockhamIndiaAnna Fali PROPOSAL
Munro FerenczJapanStephen Shaw NEGOTIATION
Isabel BowleyJapanStephen Shaw RENEWAL
Mayumi KolmetzGermanyIoni Bowcher UNQUALIFIED
Maria MarrierGermanyAmy Elsner RENEWAL
Ricardo GauchoAustraliaXuxue Feng RENEWAL
Julie StensethGermanyStephen Shaw NEGOTIATION
David DarakjySpainAmy Elsner UNQUALIFIED
Darci PoquetteItalyElwin Sharvill UNQUALIFIED
Munro FerenczCanadaStephen Shaw QUALIFIED
Nicolas IturbideBrazilAsiya Javayant UNQUALIFIED
Aika InouyeJapanAnna Fali NEGOTIATION
Mujtaba NickaUnited KingdomAsiya Javayant QUALIFIED
Cody SaylorsBrazilXuxue Feng NEGOTIATION
Nicolas IturbideArgentinaXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill NEGOTIATION
Kaitlin OstroskyIndiaXuxue Feng NEW
Leon OldroydCanadaXuxue Feng QUALIFIED
Kadeem FlosiGermanyOnyama Limba QUALIFIED
Smith GlickRussiaAmy Elsner NEW
Jones VocelkaBrazilElwin Sharvill UNQUALIFIED
Johnson SergiRussiaAmy Elsner RENEWAL
Morrow RutaRussiaAsiya Javayant QUALIFIED
Maisha RulapaughBrazilStephen Shaw PROPOSAL
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Jones VocelkaUnited KingdomBernardo Dominic QUALIFIED
Juan WieserIndiaBernardo Dominic NEGOTIATION
Chavez BriddickFranceAsiya Javayant NEGOTIATION
Wickens NestleGermanyElwin Sharvill NEGOTIATION
Julie StensethUnited KingdomAmy Elsner RENEWAL
Smith GlickRussiaStephen Shaw NEW
Kadeem FlosiFranceXuxue Feng NEGOTIATION
Francesco ShinkoAustraliaElwin Sharvill UNQUALIFIED
Chavez BriddickSpainAsiya Javayant PROPOSAL
Maria MarrierArgentinaStephen Shaw NEGOTIATION
Chavez BriddickSpainStephen Shaw NEW
Arvin AlbaresGermanyAnna Fali PROPOSAL
Cody SaylorsArgentinaStephen Shaw UNQUALIFIED
Ivar PaprockiGermanyElwin Sharvill QUALIFIED
James ButtGermanyBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Leon Oldroyd
Leja Caldarera
Jefferson Schemmer
Misaki Royster
Morrow Ruta
Jeanfrancois Venere
Izzy Garufi
Johnson Sergi
Darci Poquette
Johnson Sergi
Jefferson Schemmer
Ricardo Gaucho
Leja Caldarera
Arvin Albares
Arvin Albares
Cody Saylors
Greenwood Bolognia
Jones Vocelka
Sinclair Waycott
Murillo Malet
Octavia Malet
Ashley Doe
Clifford Rim
Chavez Briddick
Tony Foller
Leja Caldarera
Aika Inouye
Morrow Ruta
Maria Marrier
Jennifer Amigon
Aika Inouye
Morrow Ruta
Salvatore Stockham
Aruna Figeroa
Ashley Doe
Salvatore Stockham
Antonio Caudy
Chavez Briddick
Cody Saylors
Claire Tollner
Rodrigues Campain
Arvin Albares
Faith Gillian
Morrow Ruta
Maria Marrier
Jefferson Schemmer
Stacey Maclead
Kadeem Flosi
Maria Marrier
Wickens Nestle
IdCountryDate
1000Australia2026-05-12
1001United Kingdom2026-05-18
1002Argentina2026-05-19
1003Argentina2026-04-29
1004Argentina2026-05-17
1005Australia2026-05-12
1006Spain2026-05-23
1007Japan2026-04-28
1008Spain2026-05-11
1009India2026-05-04
1010France2026-05-17
1011Spain2026-04-27
1012France2026-05-18
1013United Kingdom2026-05-03
1014Canada2026-05-06
1015Australia2026-05-02
1016Russia2026-05-20
1017Spain2026-05-04
1018India2026-05-15
1019Italy2026-05-23
1020Russia2026-05-20
1021Brazil2026-05-16
1022Australia2026-05-13
1023Canada2026-04-28
1024Canada2026-05-18
1025Russia2026-05-14
1026Germany2026-05-11
1027Australia2026-05-14
1028Germany2026-05-13
1029Russia2026-05-03
1030France2026-05-08
1031Germany2026-05-13
1032France2026-05-14
1033Australia2026-05-16
1034Canada2026-05-13
1035Japan2026-05-11
1036Italy2026-05-21
1037India2026-05-10
1038Germany2026-05-26
1039Australia2026-05-08
1040Spain2026-05-05
1041Canada2026-05-14
1042Italy2026-05-19
1043Germany2026-05-10
1044Argentina2026-05-16
1045Italy2026-05-26
1046Japan2026-05-06
1047Canada2026-05-03
1048Japan2026-05-25
1049Russia2026-05-25

On-Demand Data

NameIdCountryDate
Murillo Malet1000Australia2026-05-21
Costa Dilliard1001Argentina2026-05-09
Ivar Paprocki1002Spain2026-05-09
Jennifer Amigon1003Brazil2026-05-02
Murillo Malet1004Japan2026-05-07
Octavia Malet1005Germany2026-05-10
Nicolas Iturbide1006Spain2026-05-07
Stacey Maclead1007Argentina2026-05-23
Ivar Paprocki1008Japan2026-05-21
Alejandro Perin1009Italy2026-05-14
Kaitlin Ostrosky1010Spain2026-05-01
Jennifer Amigon1011United Kingdom2026-05-05
Kaitlin Ostrosky1012Russia2026-05-15
Francesco Shinko1013Spain2026-04-28
Deepesh Chui1014Canada2026-05-26
Tony Foller1015Japan2026-05-10
Johnson Sergi1016France2026-05-13
Aruna Figeroa1017Argentina2026-04-30
Stacey Maclead1018Argentina2026-04-30
Mujtaba Nicka1019Japan2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaItalyXuxue Feng PROPOSAL
Wickens NestleIndiaAsiya Javayant NEW
Nicolas IturbideSpainAsiya Javayant RENEWAL
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
Wickens NestleSpainIoni Bowcher UNQUALIFIED
Kaitlin OstroskyItalyAnna Fali NEW
Mayumi KolmetzIndiaAnna Fali NEW
Smith GlickBrazilStephen Shaw NEGOTIATION
Mujtaba NickaCanadaAnna Fali PROPOSAL
Nicolas IturbideRussiaAnna Fali NEW
Smith GlickIndiaOnyama Limba UNQUALIFIED
Arvin AlbaresJapanElwin Sharvill UNQUALIFIED
Jennifer AmigonCanadaIvan Magalhaes QUALIFIED
Aditya KuskoAustraliaXuxue Feng UNQUALIFIED
Rodrigues CampainUnited KingdomStephen Shaw NEW
Mayumi KolmetzUnited KingdomOnyama Limba NEGOTIATION
Greenwood BologniaSpainAsiya Javayant RENEWAL
Izzy GarufiAustraliaElwin Sharvill UNQUALIFIED
Tony FollerItalyElwin Sharvill NEGOTIATION
Cody SaylorsFranceElwin Sharvill RENEWAL
Misaki RoysterIndiaAsiya Javayant QUALIFIED
Adams MorascaFranceOnyama Limba NEGOTIATION
Aruna FigeroaAustraliaAsiya Javayant PROPOSAL
Kadeem FlosiRussiaElwin Sharvill RENEWAL
Julie StensethAustraliaElwin Sharvill PROPOSAL
Claire TollnerJapanAsiya Javayant UNQUALIFIED
Darci PoquetteFranceIvan Magalhaes QUALIFIED
Francesco ShinkoFranceAmy Elsner NEGOTIATION
Johnson SergiCanadaAsiya Javayant QUALIFIED
Murillo MaletUnited KingdomIvan Magalhaes QUALIFIED
Octavia MaletJapanAmy Elsner QUALIFIED
Smith GlickRussiaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyFranceElwin Sharvill NEW
Ashley DoeAustraliaBernardo Dominic QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill RENEWAL
Deepesh ChuiIndiaAsiya Javayant PROPOSAL
Greenwood BologniaIndiaIvan Magalhaes NEW
Clifford RimFranceAnna Fali QUALIFIED
Morrow RutaArgentinaBernardo Dominic QUALIFIED
Arvin AlbaresFranceIvan 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>