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
Aruna FigeroaIndiaStephen Shaw NEGOTIATION
Salvatore StockhamAustraliaAnna Fali RENEWAL
Rodrigues CampainCanadaBernardo Dominic NEGOTIATION
Juan WieserJapanAsiya Javayant PROPOSAL
Greenwood BologniaJapanStephen Shaw UNQUALIFIED
Rodrigues CampainItalyAnna Fali NEGOTIATION
Stacey MacleadAustraliaAnna Fali NEGOTIATION
Adams MorascaJapanXuxue Feng NEGOTIATION
Clifford RimFranceAnna Fali RENEWAL
Ricardo GauchoRussiaOnyama Limba UNQUALIFIED
Ricardo GauchoIndiaAmy Elsner UNQUALIFIED
Maisha RulapaughGermanyXuxue Feng NEW
Isabel BowleyGermanyIvan Magalhaes QUALIFIED
David DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Octavia MaletJapanElwin Sharvill RENEWAL
Alejandro PerinJapanIvan Magalhaes RENEWAL
Francesco ShinkoBrazilOnyama Limba NEGOTIATION
Tony FollerBrazilAsiya Javayant UNQUALIFIED
Wickens NestleCanadaBernardo Dominic UNQUALIFIED
Ricardo GauchoIndiaXuxue Feng UNQUALIFIED
Maria MarrierSpainAmy Elsner PROPOSAL
Johnson SergiGermanyStephen Shaw PROPOSAL
Misaki RoysterItalyXuxue Feng RENEWAL
Leja CaldareraCanadaBernardo Dominic PROPOSAL
Misaki RoysterBrazilStephen Shaw RENEWAL
Izzy GarufiSpainAmy Elsner UNQUALIFIED
Adams MorascaUnited KingdomIoni Bowcher QUALIFIED
Rodrigues CampainIndiaIoni Bowcher UNQUALIFIED
Smith GlickUnited KingdomOnyama Limba QUALIFIED
Salvatore StockhamIndiaXuxue Feng PROPOSAL
Aditya KuskoFranceAsiya Javayant NEGOTIATION
Deepesh ChuiArgentinaOnyama Limba UNQUALIFIED
Ivar PaprockiSpainIoni Bowcher NEGOTIATION
David DarakjyJapanXuxue Feng RENEWAL
James ButtCanadaAmy Elsner UNQUALIFIED
Aruna FigeroaIndiaElwin Sharvill RENEWAL
Smith GlickArgentinaIoni Bowcher NEW
Wickens NestleArgentinaBernardo Dominic QUALIFIED
Rodrigues CampainIndiaAmy Elsner NEGOTIATION
Adams MorascaRussiaAmy Elsner RENEWAL
Munro FerenczIndiaElwin Sharvill PROPOSAL
Alejandro PerinArgentinaAnna Fali NEGOTIATION
Greenwood BologniaUnited KingdomAmy Elsner RENEWAL
Leja CaldareraCanadaIvan Magalhaes NEGOTIATION
Claire TollnerSpainOnyama Limba PROPOSAL
Mayumi KolmetzItalyXuxue Feng PROPOSAL
Greenwood BologniaItalyElwin Sharvill NEW
Ricardo GauchoFranceXuxue Feng UNQUALIFIED
Faith GillianSpainElwin Sharvill QUALIFIED
Emily WhobreyJapanOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiGermanyIvan Magalhaes RENEWAL
Munro FerenczAustraliaOnyama Limba PROPOSAL
Greenwood BologniaJapanAsiya Javayant RENEWAL
Octavia MaletIndiaXuxue Feng QUALIFIED
Izzy GarufiAustraliaElwin Sharvill RENEWAL
James ButtIndiaAnna Fali NEW
Stacey MacleadItalyIoni Bowcher NEGOTIATION
Mujtaba NickaUnited KingdomElwin Sharvill PROPOSAL
Aditya KuskoItalyAsiya Javayant NEGOTIATION
David DarakjyIndiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaFrance2026-04-03Feltz Printing Service UNQUALIFIED12Amy Elsner
1001Wickens NestleFrance2026-04-10Rousseaux, Michael Esq PROPOSAL25Stephen Shaw
1002Julie StensethFrance2026-03-27Commercial Press PROPOSAL93Stephen Shaw
1003Aika InouyeSpain2026-03-25Feltz Printing Service NEGOTIATION44Stephen Shaw
1004Clifford RimBrazil2026-03-24Chapman, Ross E Esq RENEWAL73Bernardo Dominic
1005Morrow RutaCanada2026-04-11Buckley Miller Wright NEW1Ioni Bowcher
1006Adams MorascaAustralia2026-04-01Feiner Bros NEGOTIATION99Ivan Magalhaes
1007Nicolas IturbideGermany2026-04-16Dorl, James J Esq NEW28Elwin Sharvill
1008Maria MarrierArgentina2026-03-29Benton, John B Jr NEGOTIATION74Onyama Limba
1009Aditya KuskoCanada2026-04-18Feltz Printing Service NEGOTIATION9Asiya Javayant
1010Darci PoquetteJapan2026-03-28Chapman, Ross E Esq RENEWAL7Xuxue Feng
1011Kadeem FlosiCanada2026-04-20Benton, John B Jr QUALIFIED64Xuxue Feng
1012Isabel BowleyArgentina2026-04-09Rangoni Of Florence UNQUALIFIED79Ioni Bowcher
1013Costa DilliardItaly2026-04-11Truhlar And Truhlar Attys PROPOSAL2Elwin Sharvill
1014Jones VocelkaArgentina2026-04-18Feiner Bros NEW87Ivan Magalhaes
1015Johnson SergiRussia2026-04-21Feltz Printing Service UNQUALIFIED53Bernardo Dominic
1016Faith GillianUnited Kingdom2026-04-11Dorl, James J Esq NEW65Anna Fali
1017Ivar PaprockiItaly2026-03-26Morlong Associates PROPOSAL35Xuxue Feng
1018Murillo MaletBrazil2026-04-08Chemel, James L Cpa RENEWAL32Onyama Limba
1019Maria MarrierFrance2026-04-15Feiner Bros NEGOTIATION12Onyama Limba
1020Johnson SergiCanada2026-04-13Morlong Associates QUALIFIED69Ioni Bowcher
1021Julie StensethRussia2026-03-28Dorl, James J Esq NEGOTIATION40Bernardo Dominic
1022Rodrigues CampainJapan2026-04-18Truhlar And Truhlar Attys NEGOTIATION36Ioni Bowcher
1023Greenwood BologniaGermany2026-04-08Morlong Associates PROPOSAL99Ivan Magalhaes
1024Aika InouyeRussia2026-03-29Morlong Associates RENEWAL45Anna Fali
1025Stacey MacleadItaly2026-03-27Chapman, Ross E Esq PROPOSAL50Ivan Magalhaes
1026Stacey MacleadAustralia2026-04-19Chemel, James L Cpa RENEWAL68Stephen Shaw
1027Rodrigues CampainCanada2026-03-31Truhlar And Truhlar Attys PROPOSAL83Asiya Javayant
1028Izzy GarufiBrazil2026-04-13Feltz Printing Service NEW64Elwin Sharvill
1029Ashley DoeJapan2026-03-24Morlong Associates PROPOSAL14Onyama Limba
1030Darci PoquetteUnited Kingdom2026-04-15Morlong Associates UNQUALIFIED48Elwin Sharvill
1031Misaki RoysterIndia2026-04-09Chanay, Jeffrey A Esq NEGOTIATION88Onyama Limba
1032Jones VocelkaSpain2026-04-06Dorl, James J Esq QUALIFIED11Stephen Shaw
1033Leon OldroydSpain2026-04-14Morlong Associates UNQUALIFIED81Onyama Limba
1034Kaitlin OstroskyItaly2026-04-19Truhlar And Truhlar Attys NEW63Anna Fali
1035Greenwood BologniaIndia2026-03-26Commercial Press NEW14Amy Elsner
1036Greenwood BologniaIndia2026-04-10Dorl, James J Esq UNQUALIFIED59Elwin Sharvill
1037Izzy GarufiSpain2026-04-04Feiner Bros PROPOSAL75Elwin Sharvill
1038Jeanfrancois VenereRussia2026-03-26Buckley Miller Wright PROPOSAL30Xuxue Feng
1039Kaitlin OstroskyItaly2026-04-18Feiner Bros NEW58Xuxue Feng
1040Tony FollerIndia2026-04-01King, Christopher A Esq NEGOTIATION58Anna Fali
1041Kadeem FlosiCanada2026-03-31King, Christopher A Esq PROPOSAL8Xuxue Feng
1042Maria MarrierCanada2026-04-20Chapman, Ross E Esq UNQUALIFIED11Stephen Shaw
1043Adams MorascaSpain2026-04-12Feiner Bros NEW40Xuxue Feng
1044Salvatore StockhamUnited Kingdom2026-04-02Rousseaux, Michael Esq RENEWAL99Bernardo Dominic
1045Francesco ShinkoGermany2026-04-01Truhlar And Truhlar Attys PROPOSAL74Elwin Sharvill
1046Silvio SlusarskiSpain2026-04-18Rangoni Of Florence NEW93Asiya Javayant
1047Octavia MaletItaly2026-04-22Commercial Press UNQUALIFIED81Stephen Shaw
1048Julie StensethArgentina2026-03-31King, Christopher A Esq UNQUALIFIED32Stephen Shaw
1049Deepesh ChuiRussia2026-04-16Rousseaux, Michael Esq QUALIFIED18Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues CampainBrazilIvan Magalhaes UNQUALIFIED
David DarakjyFranceAsiya Javayant NEW
Clifford RimSpainAsiya Javayant QUALIFIED
Costa DilliardItalyOnyama Limba PROPOSAL
Rodrigues CampainRussiaIvan Magalhaes RENEWAL
Octavia MaletIndiaBernardo Dominic PROPOSAL
Kaitlin OstroskyJapanElwin Sharvill QUALIFIED
Deepesh ChuiGermanyAnna Fali QUALIFIED
Smith GlickCanadaXuxue Feng RENEWAL
Murillo MaletFranceXuxue Feng NEGOTIATION
David DarakjyJapanAmy Elsner NEW
Ivar PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Claire TollnerAustraliaXuxue Feng UNQUALIFIED
Smith GlickJapanIvan Magalhaes UNQUALIFIED
Ashley DoeBrazilIvan Magalhaes UNQUALIFIED
Salvatore StockhamGermanyOnyama Limba NEGOTIATION
Sinclair WaycottAustraliaBernardo Dominic NEGOTIATION
Leja CaldareraArgentinaIvan Magalhaes PROPOSAL
Arvin AlbaresUnited KingdomBernardo Dominic QUALIFIED
Aruna FigeroaSpainElwin Sharvill PROPOSAL
Murillo MaletCanadaBernardo Dominic QUALIFIED
Leon OldroydIndiaOnyama Limba UNQUALIFIED
Izzy GarufiIndiaAnna Fali NEW
Alejandro PerinCanadaElwin Sharvill QUALIFIED
Aruna FigeroaJapanAmy Elsner QUALIFIED
Claire TollnerGermanyAnna Fali NEGOTIATION
Stacey MacleadAustraliaStephen Shaw NEW
Maria MarrierAustraliaIvan Magalhaes QUALIFIED
Jones VocelkaFranceXuxue Feng UNQUALIFIED
James ButtRussiaAnna Fali PROPOSAL
Aruna FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Leon OldroydFranceOnyama Limba NEW
Aruna FigeroaUnited KingdomXuxue Feng NEGOTIATION
Sinclair WaycottFranceAsiya Javayant RENEWAL
Aruna FigeroaIndiaAsiya Javayant PROPOSAL
James ButtBrazilIvan Magalhaes PROPOSAL
David DarakjyItalyIvan Magalhaes UNQUALIFIED
Morrow RutaArgentinaElwin Sharvill PROPOSAL
Aditya KuskoFranceElwin Sharvill QUALIFIED
Jefferson SchemmerAustraliaOnyama Limba RENEWAL
Darci PoquetteCanadaStephen Shaw UNQUALIFIED
Aruna FigeroaCanadaIoni Bowcher NEGOTIATION
Misaki RoysterAustraliaAsiya Javayant UNQUALIFIED
Mayumi KolmetzItalyElwin Sharvill NEW
Maria MarrierRussiaIoni Bowcher NEW
Maria MarrierJapanAnna Fali PROPOSAL
Isabel BowleyRussiaBernardo Dominic QUALIFIED
Izzy GarufiFranceIvan Magalhaes PROPOSAL
Emily WhobreyArgentinaElwin Sharvill NEW
Morrow RutaCanadaStephen Shaw PROPOSAL
Frozen Columns
Name
Claire Tollner
Ricardo Gaucho
Darci Poquette
Emily Whobrey
Jennifer Amigon
Smith Glick
Jennifer Amigon
Juan Wieser
Jefferson Schemmer
Johnson Sergi
Misaki Royster
Claire Tollner
Leon Oldroyd
Ricardo Gaucho
Tony Foller
Emily Whobrey
Rodrigues Campain
Aditya Kusko
Sinclair Waycott
Morrow Ruta
Nicolas Iturbide
Isabel Bowley
Misaki Royster
Murillo Malet
Chavez Briddick
Mayumi Kolmetz
Chavez Briddick
Leja Caldarera
Ashley Doe
Mayumi Kolmetz
Morrow Ruta
Aika Inouye
Octavia Malet
Maisha Rulapaugh
Silvio Slusarski
Deepesh Chui
Alejandro Perin
Aika Inouye
Salvatore Stockham
Kadeem Flosi
Stacey Maclead
Ivar Paprocki
Juan Wieser
Maria Marrier
Julie Stenseth
Francesco Shinko
Maisha Rulapaugh
Clifford Rim
Izzy Garufi
Kadeem Flosi
IdCountryDate
1000Spain2026-03-30
1001Argentina2026-04-10
1002Germany2026-03-24
1003France2026-03-28
1004Italy2026-04-01
1005Japan2026-04-14
1006India2026-04-11
1007Italy2026-04-06
1008Germany2026-03-27
1009Argentina2026-04-05
1010Spain2026-04-14
1011Italy2026-04-06
1012Spain2026-04-03
1013France2026-03-26
1014Italy2026-04-09
1015Italy2026-03-30
1016Russia2026-04-21
1017United Kingdom2026-04-11
1018Japan2026-04-14
1019Germany2026-04-18
1020Germany2026-04-01
1021Italy2026-03-25
1022Germany2026-03-28
1023Japan2026-04-02
1024United Kingdom2026-04-22
1025France2026-04-14
1026Spain2026-04-14
1027Spain2026-04-04
1028Australia2026-03-28
1029Australia2026-04-20
1030United Kingdom2026-04-20
1031France2026-04-19
1032Brazil2026-04-13
1033Italy2026-04-21
1034Germany2026-04-07
1035France2026-04-09
1036Australia2026-04-21
1037Germany2026-04-11
1038Italy2026-04-20
1039Italy2026-04-01
1040Germany2026-04-14
1041Brazil2026-04-20
1042Spain2026-04-08
1043France2026-03-28
1044Argentina2026-04-04
1045Australia2026-04-08
1046Canada2026-03-24
1047United Kingdom2026-03-28
1048United Kingdom2026-03-29
1049India2026-04-10

On-Demand Data

NameIdCountryDate
Claire Tollner1000Italy2026-03-31
Antonio Caudy1001Australia2026-03-26
Stacey Maclead1002India2026-04-19
Julie Stenseth1003France2026-04-09
Morrow Ruta1004Germany2026-04-20
Jeanfrancois Venere1005Canada2026-04-15
Darci Poquette1006Australia2026-03-31
Wickens Nestle1007Spain2026-04-13
Jeanfrancois Venere1008Italy2026-04-20
James Butt1009Spain2026-03-26
Emily Whobrey1010United Kingdom2026-04-14
Salvatore Stockham1011Russia2026-04-15
Misaki Royster1012United Kingdom2026-04-05
Jennifer Amigon1013Russia2026-04-19
Faith Gillian1014Italy2026-04-21
Faith Gillian1015United Kingdom2026-04-21
Mayumi Kolmetz1016Canada2026-04-16
Smith Glick1017Spain2026-03-25
Clifford Rim1018Australia2026-03-25
Darci Poquette1019Russia2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaAsiya Javayant UNQUALIFIED
Mayumi KolmetzArgentinaAsiya Javayant NEGOTIATION
Tony FollerItalyAsiya Javayant UNQUALIFIED
Kadeem FlosiIndiaBernardo Dominic UNQUALIFIED
Kadeem FlosiUnited KingdomStephen Shaw UNQUALIFIED
Aruna FigeroaItalyIoni Bowcher PROPOSAL
Mujtaba NickaJapanStephen Shaw NEW
Jefferson SchemmerGermanyAsiya Javayant NEW
Munro FerenczBrazilStephen Shaw RENEWAL
Arvin AlbaresItalyIvan Magalhaes RENEWAL
Ricardo GauchoCanadaAnna Fali UNQUALIFIED
Misaki RoysterFranceIvan Magalhaes NEGOTIATION
Greenwood BologniaFranceXuxue Feng NEW
Jefferson SchemmerArgentinaIoni Bowcher UNQUALIFIED
Faith GillianItalyStephen Shaw QUALIFIED
Kadeem FlosiAustraliaXuxue Feng NEW
Kaitlin OstroskyGermanyAnna Fali PROPOSAL
Francesco ShinkoRussiaIvan Magalhaes UNQUALIFIED
Costa DilliardGermanyElwin Sharvill RENEWAL
Johnson SergiUnited KingdomElwin Sharvill PROPOSAL
Costa DilliardArgentinaAsiya Javayant QUALIFIED
Jefferson SchemmerSpainElwin Sharvill PROPOSAL
Misaki RoysterCanadaBernardo Dominic PROPOSAL
Izzy GarufiGermanyIoni Bowcher PROPOSAL
Deepesh ChuiRussiaAmy Elsner UNQUALIFIED
Aika InouyeAustraliaIoni Bowcher NEW
Leja CaldareraAustraliaElwin Sharvill QUALIFIED
Smith GlickBrazilIvan Magalhaes PROPOSAL
Chavez BriddickBrazilAsiya Javayant UNQUALIFIED
Claire TollnerItalyIvan Magalhaes RENEWAL
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Alejandro PerinGermanyBernardo Dominic PROPOSAL
Misaki RoysterSpainAsiya Javayant NEW
Wickens NestleIndiaOnyama Limba NEW
Smith GlickJapanIoni Bowcher NEGOTIATION
Leja CaldareraUnited KingdomStephen Shaw RENEWAL
Aditya KuskoSpainAnna Fali UNQUALIFIED
Aika InouyeItalyStephen Shaw RENEWAL
Emily WhobreyArgentinaAsiya Javayant NEW
Ashley DoeArgentinaAsiya Javayant NEGOTIATION

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