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
Smith GlickBrazilIoni Bowcher UNQUALIFIED
Juan WieserCanadaAnna Fali RENEWAL
Cody SaylorsIndiaAnna Fali QUALIFIED
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Clifford RimCanadaIvan Magalhaes NEW
Mujtaba NickaGermanyBernardo Dominic NEGOTIATION
Aruna FigeroaSpainElwin Sharvill NEW
Murillo MaletGermanyBernardo Dominic PROPOSAL
Izzy GarufiCanadaBernardo Dominic NEW
Murillo MaletGermanyIoni Bowcher QUALIFIED
Juan WieserIndiaAnna Fali NEW
Juan WieserAustraliaXuxue Feng QUALIFIED
Silvio SlusarskiCanadaElwin Sharvill UNQUALIFIED
Morrow RutaCanadaOnyama Limba PROPOSAL
Ivar PaprockiSpainOnyama Limba QUALIFIED
Francesco ShinkoItalyIvan Magalhaes QUALIFIED
Ivar PaprockiRussiaXuxue Feng QUALIFIED
Emily WhobreyFranceAsiya Javayant NEW
Murillo MaletArgentinaIvan Magalhaes QUALIFIED
Deepesh ChuiIndiaOnyama Limba NEW
Deepesh ChuiGermanyElwin Sharvill UNQUALIFIED
Nicolas IturbideArgentinaXuxue Feng RENEWAL
Leon OldroydBrazilAnna Fali NEW
Darci PoquetteSpainAnna Fali RENEWAL
James ButtJapanXuxue Feng NEW
Faith GillianFranceAnna Fali NEW
Jones VocelkaUnited KingdomStephen Shaw QUALIFIED
James ButtArgentinaElwin Sharvill RENEWAL
Murillo MaletArgentinaIvan Magalhaes PROPOSAL
Salvatore StockhamItalyAsiya Javayant PROPOSAL
Morrow RutaArgentinaIvan Magalhaes NEW
James ButtGermanyAnna Fali NEW
Julie StensethFranceOnyama Limba NEW
Costa DilliardBrazilIvan Magalhaes UNQUALIFIED
Smith GlickItalyStephen Shaw QUALIFIED
Antonio CaudyCanadaOnyama Limba QUALIFIED
Ivar PaprockiAustraliaOnyama Limba RENEWAL
James ButtFranceAmy Elsner NEGOTIATION
Smith GlickArgentinaAnna Fali UNQUALIFIED
Chavez BriddickAustraliaXuxue Feng RENEWAL
Greenwood BologniaBrazilElwin Sharvill QUALIFIED
Nicolas IturbideFranceAsiya Javayant RENEWAL
Jones VocelkaArgentinaIoni Bowcher RENEWAL
Izzy GarufiUnited KingdomAnna Fali QUALIFIED
Aditya KuskoCanadaStephen Shaw UNQUALIFIED
Murillo MaletAustraliaIvan Magalhaes QUALIFIED
Sinclair WaycottGermanyIvan Magalhaes NEGOTIATION
Alejandro PerinBrazilBernardo Dominic NEW
Claire TollnerSpainBernardo Dominic UNQUALIFIED
Aika InouyeJapanElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika InouyeGermanyStephen Shaw UNQUALIFIED
Darci PoquetteItalyAnna Fali NEGOTIATION
Aruna FigeroaFranceIvan Magalhaes NEGOTIATION
Silvio SlusarskiIndiaElwin Sharvill PROPOSAL
Sinclair WaycottSpainOnyama Limba QUALIFIED
Aika InouyeGermanyElwin Sharvill RENEWAL
Stacey MacleadAustraliaAmy Elsner NEGOTIATION
James ButtIndiaOnyama Limba RENEWAL
Alejandro PerinIndiaAsiya Javayant RENEWAL
Arvin AlbaresIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoIndia2026-03-24Feiner Bros UNQUALIFIED2Ioni Bowcher
1001Murillo MaletArgentina2026-03-29Feiner Bros QUALIFIED34Xuxue Feng
1002Leja CaldareraRussia2026-03-30Chapman, Ross E Esq RENEWAL92Xuxue Feng
1003David DarakjyIndia2026-03-25Feiner Bros QUALIFIED90Ioni Bowcher
1004Kaitlin OstroskySpain2026-03-24Feltz Printing Service UNQUALIFIED39Anna Fali
1005Aika InouyeJapan2026-04-10Printing Dimensions PROPOSAL75Ioni Bowcher
1006Nicolas IturbideGermany2026-04-04Buckley Miller Wright NEGOTIATION79Ivan Magalhaes
1007Jefferson SchemmerUnited Kingdom2026-04-03King, Christopher A Esq UNQUALIFIED21Onyama Limba
1008Tony FollerSpain2026-04-05Benton, John B Jr NEW30Elwin Sharvill
1009Juan WieserFrance2026-03-27Commercial Press UNQUALIFIED34Bernardo Dominic
1010Kadeem FlosiBrazil2026-04-04Commercial Press NEW40Stephen Shaw
1011Mujtaba NickaBrazil2026-03-25Rousseaux, Michael Esq UNQUALIFIED16Amy Elsner
1012Isabel BowleyAustralia2026-04-04Chanay, Jeffrey A Esq UNQUALIFIED63Ioni Bowcher
1013Greenwood BologniaUnited Kingdom2026-04-18Feiner Bros NEGOTIATION93Elwin Sharvill
1014Claire TollnerGermany2026-04-22Rangoni Of Florence UNQUALIFIED73Xuxue Feng
1015Murillo MaletSpain2026-04-09Rangoni Of Florence UNQUALIFIED14Ioni Bowcher
1016Izzy GarufiBrazil2026-03-25Feltz Printing Service QUALIFIED14Ivan Magalhaes
1017Ricardo GauchoSpain2026-04-05Truhlar And Truhlar Attys RENEWAL73Xuxue Feng
1018Maisha RulapaughUnited Kingdom2026-04-11Buckley Miller Wright NEGOTIATION95Ioni Bowcher
1019Kadeem FlosiBrazil2026-04-08Truhlar And Truhlar Attys NEW88Asiya Javayant
1020Leja CaldareraAustralia2026-04-16Dorl, James J Esq QUALIFIED86Bernardo Dominic
1021Antonio CaudyArgentina2026-04-10Dorl, James J Esq PROPOSAL83Stephen Shaw
1022Antonio CaudyCanada2026-04-09Dorl, James J Esq PROPOSAL39Stephen Shaw
1023Francesco ShinkoGermany2026-04-19Feltz Printing Service PROPOSAL85Asiya Javayant
1024Jefferson SchemmerItaly2026-03-30Chapman, Ross E Esq PROPOSAL39Stephen Shaw
1025Greenwood BologniaGermany2026-04-18Feltz Printing Service NEW43Ivan Magalhaes
1026Misaki RoysterSpain2026-04-14Rangoni Of Florence NEW96Anna Fali
1027Maisha RulapaughArgentina2026-04-09Truhlar And Truhlar Attys RENEWAL52Xuxue Feng
1028Claire TollnerCanada2026-04-08Chapman, Ross E Esq QUALIFIED41Bernardo Dominic
1029Faith GillianItaly2026-03-25Morlong Associates UNQUALIFIED3Ivan Magalhaes
1030Tony FollerSpain2026-03-29King, Christopher A Esq RENEWAL2Asiya Javayant
1031Jefferson SchemmerUnited Kingdom2026-04-11Benton, John B Jr RENEWAL81Onyama Limba
1032Faith GillianAustralia2026-04-21Chanay, Jeffrey A Esq RENEWAL65Elwin Sharvill
1033Wickens NestleAustralia2026-04-14Benton, John B Jr PROPOSAL8Asiya Javayant
1034Arvin AlbaresFrance2026-03-29Chapman, Ross E Esq RENEWAL42Asiya Javayant
1035Leja CaldareraCanada2026-04-03Chanay, Jeffrey A Esq QUALIFIED20Asiya Javayant
1036Kaitlin OstroskyFrance2026-04-03Buckley Miller Wright PROPOSAL42Bernardo Dominic
1037Deepesh ChuiBrazil2026-03-31Rangoni Of Florence PROPOSAL53Elwin Sharvill
1038Ivar PaprockiGermany2026-03-29Chemel, James L Cpa QUALIFIED74Ioni Bowcher
1039Greenwood BologniaBrazil2026-04-04Feltz Printing Service PROPOSAL43Onyama Limba
1040Silvio SlusarskiBrazil2026-04-06Chanay, Jeffrey A Esq UNQUALIFIED5Xuxue Feng
1041Izzy GarufiUnited Kingdom2026-03-28King, Christopher A Esq NEW49Bernardo Dominic
1042Julie StensethSpain2026-04-20Benton, John B Jr NEW28Elwin Sharvill
1043Claire TollnerItaly2026-03-31Feltz Printing Service NEW75Xuxue Feng
1044Ivar PaprockiItaly2026-03-31Dorl, James J Esq PROPOSAL92Elwin Sharvill
1045Chavez BriddickIndia2026-03-27Buckley Miller Wright QUALIFIED1Onyama Limba
1046Munro FerenczGermany2026-03-29Chanay, Jeffrey A Esq NEW60Stephen Shaw
1047Morrow RutaGermany2026-04-17King, Christopher A Esq PROPOSAL85Asiya Javayant
1048Murillo MaletUnited Kingdom2026-04-03Feiner Bros NEW31Elwin Sharvill
1049David DarakjyCanada2026-03-29Printing Dimensions NEGOTIATION83Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyArgentinaElwin Sharvill NEGOTIATION
Isabel BowleyArgentinaAnna Fali NEW
Misaki RoysterFranceXuxue Feng PROPOSAL
Ashley DoeAustraliaIvan Magalhaes QUALIFIED
Greenwood BologniaIndiaIoni Bowcher QUALIFIED
Aika InouyeIndiaStephen Shaw NEGOTIATION
Aditya KuskoUnited KingdomStephen Shaw NEW
Maisha RulapaughRussiaIoni Bowcher NEW
Salvatore StockhamBrazilBernardo Dominic NEW
Izzy GarufiUnited KingdomBernardo Dominic NEGOTIATION
Aika InouyeArgentinaAnna Fali QUALIFIED
Chavez BriddickSpainIvan Magalhaes NEGOTIATION
Misaki RoysterRussiaAmy Elsner NEGOTIATION
Maria MarrierIndiaAmy Elsner UNQUALIFIED
Mayumi KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Aditya KuskoUnited KingdomOnyama Limba UNQUALIFIED
Mayumi KolmetzBrazilElwin Sharvill UNQUALIFIED
Morrow RutaSpainAnna Fali PROPOSAL
Emily WhobreyItalyBernardo Dominic PROPOSAL
Sinclair WaycottGermanyElwin Sharvill NEGOTIATION
Ashley DoeJapanBernardo Dominic QUALIFIED
Wickens NestleGermanyIoni Bowcher UNQUALIFIED
Silvio SlusarskiJapanBernardo Dominic NEGOTIATION
Emily WhobreyGermanyStephen Shaw NEGOTIATION
Morrow RutaArgentinaIoni Bowcher RENEWAL
Antonio CaudyGermanyXuxue Feng RENEWAL
Smith GlickBrazilStephen Shaw NEGOTIATION
Kadeem FlosiRussiaElwin Sharvill RENEWAL
Greenwood BologniaIndiaIoni Bowcher NEGOTIATION
Francesco ShinkoAustraliaStephen Shaw QUALIFIED
Ricardo GauchoGermanyElwin Sharvill UNQUALIFIED
Julie StensethBrazilIoni Bowcher RENEWAL
Maria MarrierFranceIoni Bowcher UNQUALIFIED
Chavez BriddickArgentinaAsiya Javayant UNQUALIFIED
Ashley DoeCanadaAsiya Javayant NEW
Jennifer AmigonItalyIoni Bowcher NEGOTIATION
Cody SaylorsItalyStephen Shaw RENEWAL
Arvin AlbaresAustraliaBernardo Dominic QUALIFIED
Faith GillianBrazilOnyama Limba NEGOTIATION
Juan WieserSpainAsiya Javayant PROPOSAL
Deepesh ChuiAustraliaXuxue Feng RENEWAL
Chavez BriddickRussiaAsiya Javayant UNQUALIFIED
Johnson SergiItalyIvan Magalhaes RENEWAL
Cody SaylorsIndiaBernardo Dominic PROPOSAL
Mujtaba NickaUnited KingdomAmy Elsner NEGOTIATION
Chavez BriddickIndiaBernardo Dominic NEGOTIATION
Chavez BriddickGermanyOnyama Limba NEGOTIATION
Tony FollerSpainXuxue Feng UNQUALIFIED
Aditya KuskoItalyIvan Magalhaes NEW
Izzy GarufiBrazilXuxue Feng NEGOTIATION
Frozen Columns
Name
Silvio Slusarski
Costa Dilliard
Leja Caldarera
Jeanfrancois Venere
Misaki Royster
Ivar Paprocki
Clifford Rim
Arvin Albares
Johnson Sergi
Salvatore Stockham
Murillo Malet
Johnson Sergi
Antonio Caudy
Greenwood Bolognia
Maria Marrier
Adams Morasca
Aditya Kusko
Jeanfrancois Venere
Maria Marrier
Kaitlin Ostrosky
Misaki Royster
Rodrigues Campain
Maisha Rulapaugh
James Butt
Murillo Malet
Alejandro Perin
Sinclair Waycott
Kaitlin Ostrosky
Octavia Malet
Maria Marrier
Nicolas Iturbide
Jefferson Schemmer
Arvin Albares
Isabel Bowley
Maisha Rulapaugh
Salvatore Stockham
James Butt
Kaitlin Ostrosky
Jefferson Schemmer
Sinclair Waycott
Ivar Paprocki
Johnson Sergi
Smith Glick
Jefferson Schemmer
Nicolas Iturbide
Ivar Paprocki
Sinclair Waycott
Mayumi Kolmetz
Alejandro Perin
Faith Gillian
IdCountryDate
1000Canada2026-04-08
1001Australia2026-04-06
1002Brazil2026-04-16
1003Canada2026-04-08
1004Germany2026-03-30
1005Germany2026-04-21
1006Russia2026-04-21
1007Argentina2026-03-25
1008Canada2026-04-15
1009Spain2026-04-05
1010Argentina2026-03-26
1011France2026-03-28
1012Germany2026-04-21
1013Brazil2026-03-28
1014Argentina2026-04-21
1015France2026-04-20
1016United Kingdom2026-04-07
1017Russia2026-04-14
1018United Kingdom2026-04-14
1019Brazil2026-03-28
1020United Kingdom2026-03-27
1021France2026-03-30
1022Australia2026-04-13
1023Russia2026-04-09
1024Australia2026-03-30
1025India2026-04-07
1026Brazil2026-04-12
1027Japan2026-04-10
1028Argentina2026-04-01
1029Canada2026-04-21
1030Japan2026-04-01
1031Argentina2026-04-15
1032Australia2026-04-17
1033United Kingdom2026-04-10
1034Japan2026-04-19
1035Brazil2026-04-14
1036France2026-04-16
1037France2026-04-12
1038Spain2026-04-15
1039United Kingdom2026-03-27
1040Argentina2026-03-30
1041Australia2026-04-15
1042Canada2026-04-22
1043Canada2026-03-30
1044Argentina2026-03-24
1045Australia2026-03-27
1046Canada2026-04-08
1047Australia2026-03-30
1048France2026-04-20
1049Germany2026-04-12

On-Demand Data

NameIdCountryDate
Johnson Sergi1000Germany2026-03-27
Tony Foller1001Spain2026-04-12
Kaitlin Ostrosky1002Japan2026-04-15
Adams Morasca1003Italy2026-04-09
Francesco Shinko1004France2026-03-28
Jeanfrancois Venere1005Argentina2026-03-26
Claire Tollner1006Japan2026-04-14
Aruna Figeroa1007Brazil2026-04-10
Maisha Rulapaugh1008Argentina2026-04-09
Morrow Ruta1009Canada2026-03-31
Adams Morasca1010Spain2026-04-07
Aika Inouye1011Germany2026-04-19
Cody Saylors1012Italy2026-04-19
Alejandro Perin1013Argentina2026-04-14
James Butt1014Italy2026-03-31
Aika Inouye1015Canada2026-03-31
Aika Inouye1016Argentina2026-04-11
Wickens Nestle1017Spain2026-04-20
Misaki Royster1018Canada2026-03-29
Isabel Bowley1019Brazil2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiCanadaIvan Magalhaes UNQUALIFIED
Munro FerenczRussiaStephen Shaw UNQUALIFIED
Maisha RulapaughItalyAmy Elsner RENEWAL
Jefferson SchemmerItalyOnyama Limba PROPOSAL
Maria MarrierCanadaAsiya Javayant UNQUALIFIED
Stacey MacleadSpainOnyama Limba UNQUALIFIED
Chavez BriddickItalyIvan Magalhaes NEW
Tony FollerIndiaOnyama Limba PROPOSAL
Nicolas IturbideBrazilXuxue Feng PROPOSAL
James ButtArgentinaStephen Shaw NEW
Emily WhobreyJapanIoni Bowcher NEGOTIATION
Nicolas IturbideSpainAnna Fali UNQUALIFIED
Silvio SlusarskiFranceAsiya Javayant NEW
Mujtaba NickaArgentinaIvan Magalhaes NEGOTIATION
James ButtArgentinaIoni Bowcher NEW
Stacey MacleadItalyStephen Shaw RENEWAL
Aika InouyeRussiaXuxue Feng RENEWAL
Costa DilliardCanadaIoni Bowcher NEGOTIATION
Jones VocelkaSpainElwin Sharvill NEW
Silvio SlusarskiBrazilStephen Shaw QUALIFIED
Costa DilliardArgentinaXuxue Feng RENEWAL
Adams MorascaJapanIvan Magalhaes PROPOSAL
Johnson SergiAustraliaIvan Magalhaes NEGOTIATION
Cody SaylorsSpainAmy Elsner QUALIFIED
Darci PoquetteIndiaOnyama Limba NEW
Jefferson SchemmerAustraliaOnyama Limba QUALIFIED
Aika InouyeFranceStephen Shaw NEGOTIATION
Leja CaldareraUnited KingdomBernardo Dominic NEGOTIATION
Morrow RutaItalyAnna Fali NEW
Murillo MaletIndiaOnyama Limba QUALIFIED
Jeanfrancois VenereAustraliaElwin Sharvill NEW
Munro FerenczCanadaAsiya Javayant NEW
Antonio CaudyGermanyIvan Magalhaes PROPOSAL
Johnson SergiAustraliaStephen Shaw NEW
Kadeem FlosiCanadaElwin Sharvill NEW
Ivar PaprockiUnited KingdomBernardo Dominic PROPOSAL
Ivar PaprockiItalyElwin Sharvill PROPOSAL
Emily WhobreyBrazilOnyama Limba RENEWAL
Arvin AlbaresItalyAnna Fali NEW
Aditya KuskoFranceIvan 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>