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 VenereCanadaOnyama Limba NEW
Nicolas IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Misaki RoysterFranceStephen Shaw UNQUALIFIED
Nicolas IturbideSpainAmy Elsner UNQUALIFIED
Tony FollerAustraliaStephen Shaw NEW
Rodrigues CampainBrazilAsiya Javayant RENEWAL
Salvatore StockhamGermanyStephen Shaw RENEWAL
Leon OldroydItalyAsiya Javayant PROPOSAL
Maisha RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues CampainSpainXuxue Feng NEGOTIATION
Chavez BriddickItalyElwin Sharvill RENEWAL
Aruna FigeroaSpainAnna Fali NEGOTIATION
Greenwood BologniaGermanyAsiya Javayant NEW
Julie StensethGermanyAmy Elsner NEW
Misaki RoysterJapanIvan Magalhaes NEGOTIATION
Clifford RimFranceStephen Shaw PROPOSAL
Tony FollerSpainAmy Elsner RENEWAL
Faith GillianFranceElwin Sharvill NEGOTIATION
Ivar PaprockiArgentinaElwin Sharvill UNQUALIFIED
Alejandro PerinSpainIoni Bowcher PROPOSAL
Costa DilliardJapanAsiya Javayant PROPOSAL
Silvio SlusarskiSpainElwin Sharvill RENEWAL
Aika InouyeJapanElwin Sharvill PROPOSAL
Chavez BriddickSpainIoni Bowcher QUALIFIED
Juan WieserItalyIoni Bowcher UNQUALIFIED
Jefferson SchemmerFranceElwin Sharvill NEW
Mujtaba NickaUnited KingdomStephen Shaw RENEWAL
Sinclair WaycottCanadaOnyama Limba PROPOSAL
Aditya KuskoJapanStephen Shaw UNQUALIFIED
Arvin AlbaresAustraliaIvan Magalhaes RENEWAL
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Ashley DoeItalyAnna Fali NEGOTIATION
Aditya KuskoAustraliaStephen Shaw PROPOSAL
Ivar PaprockiArgentinaBernardo Dominic RENEWAL
Ashley DoeItalyOnyama Limba PROPOSAL
Darci PoquetteCanadaAsiya Javayant NEGOTIATION
Octavia MaletRussiaStephen Shaw PROPOSAL
Johnson SergiFranceAmy Elsner QUALIFIED
Alejandro PerinGermanyIoni Bowcher NEW
David DarakjyItalyBernardo Dominic RENEWAL
Smith GlickJapanOnyama Limba PROPOSAL
Aika InouyeGermanyElwin Sharvill UNQUALIFIED
Leja CaldareraBrazilAnna Fali RENEWAL
Cody SaylorsGermanyAsiya Javayant PROPOSAL
Darci PoquetteCanadaElwin Sharvill PROPOSAL
Greenwood BologniaAustraliaElwin Sharvill QUALIFIED
Leon OldroydBrazilIoni Bowcher RENEWAL
Chavez BriddickCanadaStephen Shaw NEGOTIATION
Julie StensethArgentinaIvan Magalhaes PROPOSAL
Leon OldroydAustraliaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzFranceAnna Fali RENEWAL
Adams MorascaJapanIoni Bowcher NEGOTIATION
Kaitlin OstroskySpainIoni Bowcher NEW
Leon OldroydArgentinaAmy Elsner RENEWAL
Deepesh ChuiArgentinaAmy Elsner RENEWAL
Rodrigues CampainRussiaIoni Bowcher RENEWAL
Rodrigues CampainCanadaAsiya Javayant QUALIFIED
Faith GillianSpainOnyama Limba NEGOTIATION
Isabel BowleyItalyAnna Fali NEGOTIATION
Costa DilliardCanadaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoArgentina2026-05-07Feltz Printing Service NEGOTIATION70Xuxue Feng
1001Maisha RulapaughBrazil2026-05-20Rangoni Of Florence NEGOTIATION86Asiya Javayant
1002Aditya KuskoSpain2026-05-03Dorl, James J Esq QUALIFIED86Stephen Shaw
1003Salvatore StockhamIndia2026-05-20Chemel, James L Cpa NEW96Xuxue Feng
1004Jeanfrancois VenereJapan2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED2Onyama Limba
1005Antonio CaudyUnited Kingdom2026-05-04Chemel, James L Cpa NEGOTIATION3Onyama Limba
1006Costa DilliardArgentina2026-05-07Rousseaux, Michael Esq RENEWAL44Elwin Sharvill
1007Sinclair WaycottArgentina2026-05-09Chanay, Jeffrey A Esq NEGOTIATION21Elwin Sharvill
1008Chavez BriddickRussia2026-04-30Buckley Miller Wright QUALIFIED8Stephen Shaw
1009Aditya KuskoItaly2026-05-20Chemel, James L Cpa RENEWAL69Ioni Bowcher
1010Jennifer AmigonGermany2026-05-19Benton, John B Jr NEW78Elwin Sharvill
1011Juan WieserCanada2026-05-06Rangoni Of Florence NEGOTIATION93Xuxue Feng
1012Mujtaba NickaBrazil2026-05-01Feiner Bros NEGOTIATION33Ioni Bowcher
1013Aika InouyeUnited Kingdom2026-04-26Morlong Associates NEW43Ivan Magalhaes
1014Darci PoquetteFrance2026-05-08Buckley Miller Wright PROPOSAL48Ivan Magalhaes
1015James ButtJapan2026-05-19Rousseaux, Michael Esq RENEWAL14Ioni Bowcher
1016Silvio SlusarskiSpain2026-05-15King, Christopher A Esq QUALIFIED65Onyama Limba
1017Murillo MaletBrazil2026-05-09Rangoni Of Florence RENEWAL0Xuxue Feng
1018Wickens NestleFrance2026-05-20Feiner Bros NEGOTIATION82Xuxue Feng
1019Morrow RutaCanada2026-05-12Dorl, James J Esq PROPOSAL1Elwin Sharvill
1020Clifford RimGermany2026-05-17Commercial Press PROPOSAL75Bernardo Dominic
1021Kaitlin OstroskyAustralia2026-05-09Commercial Press NEW2Asiya Javayant
1022Smith GlickBrazil2026-04-24Buckley Miller Wright UNQUALIFIED87Amy Elsner
1023Ivar PaprockiArgentina2026-05-09King, Christopher A Esq PROPOSAL87Bernardo Dominic
1024Salvatore StockhamUnited Kingdom2026-05-22Buckley Miller Wright PROPOSAL20Elwin Sharvill
1025Tony FollerArgentina2026-04-26Commercial Press PROPOSAL96Elwin Sharvill
1026James ButtArgentina2026-04-30Rangoni Of Florence NEGOTIATION9Elwin Sharvill
1027Ivar PaprockiItaly2026-05-20King, Christopher A Esq NEW39Onyama Limba
1028Leja CaldareraItaly2026-05-20Feiner Bros UNQUALIFIED35Elwin Sharvill
1029Aika InouyeJapan2026-05-19Printing Dimensions NEW28Xuxue Feng
1030Alejandro PerinSpain2026-05-13King, Christopher A Esq RENEWAL35Bernardo Dominic
1031Tony FollerGermany2026-04-27Buckley Miller Wright NEW77Ioni Bowcher
1032Adams MorascaIndia2026-05-18Printing Dimensions UNQUALIFIED42Bernardo Dominic
1033Francesco ShinkoCanada2026-05-23Chanay, Jeffrey A Esq UNQUALIFIED35Ioni Bowcher
1034Wickens NestleArgentina2026-05-20Feiner Bros QUALIFIED99Xuxue Feng
1035Arvin AlbaresAustralia2026-05-18Feiner Bros NEW46Ivan Magalhaes
1036Faith GillianGermany2026-05-14Printing Dimensions UNQUALIFIED0Anna Fali
1037Wickens NestleArgentina2026-05-23Feltz Printing Service UNQUALIFIED7Ivan Magalhaes
1038Silvio SlusarskiAustralia2026-05-20Chapman, Ross E Esq UNQUALIFIED32Onyama Limba
1039Morrow RutaItaly2026-05-07Feiner Bros UNQUALIFIED5Ioni Bowcher
1040Munro FerenczItaly2026-04-25Dorl, James J Esq PROPOSAL84Onyama Limba
1041Francesco ShinkoJapan2026-05-01King, Christopher A Esq QUALIFIED76Bernardo Dominic
1042Misaki RoysterIndia2026-05-15Buckley Miller Wright UNQUALIFIED32Amy Elsner
1043Jones VocelkaRussia2026-04-28Chapman, Ross E Esq NEGOTIATION78Anna Fali
1044Izzy GarufiItaly2026-05-05Chemel, James L Cpa UNQUALIFIED55Anna Fali
1045Kaitlin OstroskyRussia2026-05-19Rousseaux, Michael Esq NEW64Ivan Magalhaes
1046Sinclair WaycottUnited Kingdom2026-05-19Chanay, Jeffrey A Esq UNQUALIFIED89Ivan Magalhaes
1047Stacey MacleadItaly2026-05-14Truhlar And Truhlar Attys QUALIFIED26Ioni Bowcher
1048Francesco ShinkoRussia2026-05-04Rousseaux, Michael Esq QUALIFIED77Stephen Shaw
1049Faith GillianCanada2026-05-17Rangoni Of Florence PROPOSAL66Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickFranceAnna Fali NEGOTIATION
Darci PoquetteRussiaAmy Elsner PROPOSAL
Mayumi KolmetzSpainOnyama Limba UNQUALIFIED
Nicolas IturbideJapanElwin Sharvill NEGOTIATION
Adams MorascaCanadaAsiya Javayant NEW
Cody SaylorsItalyBernardo Dominic NEW
Julie StensethGermanyAnna Fali UNQUALIFIED
Leja CaldareraArgentinaAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaAnna Fali NEW
Jefferson SchemmerGermanyAsiya Javayant NEW
Antonio CaudyIndiaStephen Shaw PROPOSAL
James ButtCanadaIoni Bowcher NEW
Ashley DoeSpainStephen Shaw PROPOSAL
James ButtIndiaXuxue Feng RENEWAL
Jones VocelkaSpainBernardo Dominic RENEWAL
Octavia MaletCanadaAmy Elsner UNQUALIFIED
Darci PoquetteRussiaStephen Shaw NEGOTIATION
Kadeem FlosiCanadaOnyama Limba NEW
David DarakjyRussiaXuxue Feng QUALIFIED
Aruna FigeroaGermanyAsiya Javayant UNQUALIFIED
Mujtaba NickaArgentinaAsiya Javayant NEGOTIATION
Kadeem FlosiSpainBernardo Dominic QUALIFIED
David DarakjySpainElwin Sharvill PROPOSAL
Mujtaba NickaJapanBernardo Dominic QUALIFIED
Deepesh ChuiRussiaIoni Bowcher NEGOTIATION
Izzy GarufiIndiaAmy Elsner PROPOSAL
Nicolas IturbideArgentinaStephen Shaw RENEWAL
Mayumi KolmetzBrazilBernardo Dominic RENEWAL
Jeanfrancois VenereBrazilXuxue Feng RENEWAL
Darci PoquetteArgentinaIvan Magalhaes NEGOTIATION
Murillo MaletGermanyStephen Shaw PROPOSAL
Sinclair WaycottAustraliaBernardo Dominic RENEWAL
Maria MarrierFranceAsiya Javayant UNQUALIFIED
Tony FollerArgentinaIvan Magalhaes QUALIFIED
Sinclair WaycottRussiaAnna Fali NEGOTIATION
Cody SaylorsAustraliaOnyama Limba PROPOSAL
Salvatore StockhamArgentinaAsiya Javayant NEGOTIATION
Kadeem FlosiRussiaBernardo Dominic UNQUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes NEGOTIATION
Morrow RutaJapanXuxue Feng NEW
Chavez BriddickItalyOnyama Limba QUALIFIED
Chavez BriddickRussiaOnyama Limba QUALIFIED
James ButtArgentinaIvan Magalhaes NEW
Kaitlin OstroskyCanadaBernardo Dominic RENEWAL
Arvin AlbaresArgentinaOnyama Limba QUALIFIED
Izzy GarufiArgentinaAnna Fali QUALIFIED
Kadeem FlosiAustraliaXuxue Feng QUALIFIED
Ashley DoeIndiaIvan Magalhaes PROPOSAL
Faith GillianFranceAsiya Javayant RENEWAL
Wickens NestleRussiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Francesco Shinko
Tony Foller
Leon Oldroyd
Wickens Nestle
Ricardo Gaucho
Johnson Sergi
David Darakjy
Ashley Doe
Smith Glick
Tony Foller
Kadeem Flosi
Octavia Malet
Nicolas Iturbide
Jeanfrancois Venere
Claire Tollner
Misaki Royster
Tony Foller
Emily Whobrey
Aika Inouye
Alejandro Perin
Isabel Bowley
Darci Poquette
Smith Glick
Murillo Malet
Maisha Rulapaugh
Misaki Royster
Kadeem Flosi
Ricardo Gaucho
Alejandro Perin
Adams Morasca
Cody Saylors
Ricardo Gaucho
Smith Glick
Chavez Briddick
Aruna Figeroa
Leon Oldroyd
Jefferson Schemmer
Emily Whobrey
Chavez Briddick
Adams Morasca
Isabel Bowley
Aruna Figeroa
Deepesh Chui
Jeanfrancois Venere
Ashley Doe
Jefferson Schemmer
Emily Whobrey
Mayumi Kolmetz
Deepesh Chui
Juan Wieser
IdCountryDate
1000Canada2026-04-26
1001France2026-05-01
1002Germany2026-05-01
1003Russia2026-05-16
1004Argentina2026-05-20
1005France2026-04-28
1006India2026-05-13
1007Spain2026-05-17
1008Spain2026-05-15
1009Argentina2026-04-25
1010Canada2026-05-04
1011United Kingdom2026-05-14
1012Italy2026-05-11
1013Canada2026-05-08
1014Russia2026-05-08
1015Japan2026-04-24
1016Russia2026-05-04
1017Australia2026-05-15
1018Brazil2026-05-19
1019Brazil2026-04-25
1020Russia2026-04-28
1021Argentina2026-05-22
1022Spain2026-04-26
1023Brazil2026-05-02
1024Russia2026-05-20
1025Brazil2026-05-17
1026Germany2026-05-11
1027United Kingdom2026-05-10
1028Russia2026-05-22
1029Italy2026-05-01
1030India2026-05-14
1031Germany2026-04-27
1032Japan2026-05-05
1033Italy2026-05-13
1034United Kingdom2026-04-26
1035France2026-05-22
1036Canada2026-05-19
1037Spain2026-05-07
1038France2026-04-28
1039France2026-04-30
1040Argentina2026-05-22
1041Italy2026-05-03
1042Germany2026-05-22
1043United Kingdom2026-05-13
1044Russia2026-04-25
1045France2026-04-25
1046Germany2026-04-30
1047Argentina2026-05-04
1048Canada2026-05-02
1049France2026-05-16

On-Demand Data

NameIdCountryDate
Costa Dilliard1000Italy2026-05-09
Maria Marrier1001Germany2026-05-07
Tony Foller1002Brazil2026-05-05
Munro Ferencz1003Brazil2026-05-01
Maisha Rulapaugh1004Spain2026-05-23
Jeanfrancois Venere1005United Kingdom2026-05-20
Munro Ferencz1006Germany2026-05-01
Jefferson Schemmer1007Germany2026-05-07
Jeanfrancois Venere1008Japan2026-04-27
Darci Poquette1009Canada2026-05-22
James Butt1010India2026-05-16
Munro Ferencz1011Italy2026-05-02
Francesco Shinko1012United Kingdom2026-05-03
Stacey Maclead1013France2026-05-04
Salvatore Stockham1014Japan2026-05-06
Murillo Malet1015Russia2026-05-15
Alejandro Perin1016Canada2026-05-07
Salvatore Stockham1017France2026-04-24
Emily Whobrey1018Argentina2026-05-22
Emily Whobrey1019Germany2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro FerenczUnited KingdomIvan Magalhaes QUALIFIED
Julie StensethFranceAmy Elsner QUALIFIED
Julie StensethBrazilElwin Sharvill PROPOSAL
Antonio CaudyIndiaElwin Sharvill RENEWAL
Jones VocelkaArgentinaXuxue Feng NEGOTIATION
Adams MorascaFranceAsiya Javayant QUALIFIED
Kaitlin OstroskyRussiaStephen Shaw PROPOSAL
Mayumi KolmetzIndiaAmy Elsner PROPOSAL
Leja CaldareraRussiaXuxue Feng NEW
Wickens NestleGermanyAnna Fali PROPOSAL
Izzy GarufiFranceIvan Magalhaes RENEWAL
Darci PoquetteItalyIvan Magalhaes PROPOSAL
Aditya KuskoIndiaXuxue Feng UNQUALIFIED
Smith GlickGermanyBernardo Dominic RENEWAL
Izzy GarufiRussiaBernardo Dominic UNQUALIFIED
Morrow RutaJapanStephen Shaw NEW
Jeanfrancois VenereGermanyBernardo Dominic QUALIFIED
Darci PoquetteAustraliaXuxue Feng RENEWAL
Stacey MacleadJapanBernardo Dominic RENEWAL
Jeanfrancois VenereAustraliaAnna Fali QUALIFIED
Kadeem FlosiSpainAsiya Javayant UNQUALIFIED
Kadeem FlosiItalyBernardo Dominic NEW
Jeanfrancois VenereFranceAnna Fali PROPOSAL
Kadeem FlosiGermanyAmy Elsner NEW
Aika InouyeAustraliaElwin Sharvill NEW
Greenwood BologniaArgentinaIoni Bowcher NEW
Greenwood BologniaBrazilElwin Sharvill UNQUALIFIED
Munro FerenczIndiaOnyama Limba RENEWAL
Jefferson SchemmerSpainXuxue Feng NEW
Adams MorascaSpainAsiya Javayant PROPOSAL
Maria MarrierSpainAsiya Javayant PROPOSAL
Kaitlin OstroskyBrazilStephen Shaw RENEWAL
Ivar PaprockiItalyAsiya Javayant NEW
Kadeem FlosiIndiaAsiya Javayant UNQUALIFIED
Costa DilliardGermanyIvan Magalhaes QUALIFIED
Stacey MacleadCanadaBernardo Dominic QUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyAustraliaStephen Shaw UNQUALIFIED
Emily WhobreyUnited KingdomAnna Fali NEW
Greenwood BologniaUnited KingdomAsiya Javayant 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>