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
Faith GillianItalyIoni Bowcher QUALIFIED
Arvin AlbaresCanadaStephen Shaw NEW
Arvin AlbaresIndiaStephen Shaw UNQUALIFIED
Antonio CaudySpainStephen Shaw UNQUALIFIED
Antonio CaudyBrazilAmy Elsner PROPOSAL
Jeanfrancois VenereAustraliaBernardo Dominic QUALIFIED
Octavia MaletArgentinaStephen Shaw PROPOSAL
Kadeem FlosiJapanStephen Shaw NEGOTIATION
Jones VocelkaJapanElwin Sharvill UNQUALIFIED
Clifford RimBrazilIvan Magalhaes UNQUALIFIED
Cody SaylorsFranceElwin Sharvill RENEWAL
Francesco ShinkoRussiaAmy Elsner QUALIFIED
Arvin AlbaresIndiaOnyama Limba QUALIFIED
Aditya KuskoRussiaOnyama Limba NEW
Tony FollerArgentinaBernardo Dominic NEGOTIATION
Kaitlin OstroskyFranceElwin Sharvill RENEWAL
Costa DilliardCanadaStephen Shaw PROPOSAL
Salvatore StockhamBrazilAsiya Javayant RENEWAL
James ButtCanadaIvan Magalhaes QUALIFIED
Stacey MacleadUnited KingdomAnna Fali NEW
Chavez BriddickBrazilAmy Elsner RENEWAL
Juan WieserIndiaIvan Magalhaes NEW
Faith GillianItalyOnyama Limba RENEWAL
Izzy GarufiItalyAnna Fali PROPOSAL
Francesco ShinkoFranceElwin Sharvill QUALIFIED
Stacey MacleadIndiaAsiya Javayant QUALIFIED
Ashley DoeRussiaStephen Shaw PROPOSAL
Ivar PaprockiItalyAnna Fali NEW
Claire TollnerBrazilStephen Shaw NEW
Jefferson SchemmerArgentinaBernardo Dominic PROPOSAL
Claire TollnerJapanElwin Sharvill PROPOSAL
Smith GlickUnited KingdomStephen Shaw NEW
Wickens NestleFranceOnyama Limba NEW
Juan WieserGermanyOnyama Limba NEW
Ricardo GauchoRussiaIoni Bowcher UNQUALIFIED
Kadeem FlosiUnited KingdomAnna Fali NEGOTIATION
Jefferson SchemmerBrazilAmy Elsner NEGOTIATION
Morrow RutaItalyIvan Magalhaes NEW
Octavia MaletJapanAmy Elsner NEGOTIATION
Faith GillianSpainOnyama Limba QUALIFIED
Salvatore StockhamArgentinaOnyama Limba UNQUALIFIED
Smith GlickJapanStephen Shaw UNQUALIFIED
Murillo MaletArgentinaElwin Sharvill PROPOSAL
David DarakjyGermanyElwin Sharvill NEW
Darci PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois VenereCanadaAsiya Javayant RENEWAL
Antonio CaudyCanadaOnyama Limba RENEWAL
Morrow RutaUnited KingdomStephen Shaw RENEWAL
Jones VocelkaIndiaElwin Sharvill NEW
James ButtGermanyIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiGermanyBernardo Dominic QUALIFIED
Cody SaylorsUnited KingdomXuxue Feng PROPOSAL
Johnson SergiUnited KingdomStephen Shaw UNQUALIFIED
Leja CaldareraCanadaIoni Bowcher NEGOTIATION
Leja CaldareraIndiaStephen Shaw NEW
Alejandro PerinAustraliaAsiya Javayant PROPOSAL
Murillo MaletRussiaAmy Elsner QUALIFIED
Ashley DoeUnited KingdomElwin Sharvill NEGOTIATION
Adams MorascaArgentinaXuxue Feng RENEWAL
Greenwood BologniaCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeFrance2025-09-03Rangoni Of Florence RENEWAL23Stephen Shaw
1001Aditya KuskoUnited Kingdom2025-08-29Buckley Miller Wright NEGOTIATION34Anna Fali
1002Deepesh ChuiIndia2025-08-15Chanay, Jeffrey A Esq UNQUALIFIED36Amy Elsner
1003Francesco ShinkoItaly2025-09-07Truhlar And Truhlar Attys QUALIFIED53Xuxue Feng
1004Maisha RulapaughGermany2025-08-19Chanay, Jeffrey A Esq PROPOSAL29Amy Elsner
1005Ivar PaprockiSpain2025-08-22Truhlar And Truhlar Attys PROPOSAL74Amy Elsner
1006Costa DilliardAustralia2025-09-09Chanay, Jeffrey A Esq UNQUALIFIED90Stephen Shaw
1007Claire TollnerSpain2025-08-12Printing Dimensions PROPOSAL64Ioni Bowcher
1008Francesco ShinkoArgentina2025-09-03Chapman, Ross E Esq NEGOTIATION97Ivan Magalhaes
1009Aruna FigeroaArgentina2025-08-11Rangoni Of Florence RENEWAL57Elwin Sharvill
1010Ivar PaprockiArgentina2025-08-13Benton, John B Jr UNQUALIFIED49Xuxue Feng
1011Claire TollnerFrance2025-08-29Rousseaux, Michael Esq QUALIFIED92Stephen Shaw
1012Salvatore StockhamAustralia2025-08-27Feiner Bros RENEWAL40Asiya Javayant
1013Murillo MaletBrazil2025-08-15Chemel, James L Cpa UNQUALIFIED96Asiya Javayant
1014Misaki RoysterArgentina2025-08-20Rousseaux, Michael Esq PROPOSAL81Onyama Limba
1015Clifford RimRussia2025-08-25Rousseaux, Michael Esq NEGOTIATION72Asiya Javayant
1016Wickens NestleIndia2025-09-08Feltz Printing Service QUALIFIED25Anna Fali
1017Murillo MaletUnited Kingdom2025-09-03Printing Dimensions UNQUALIFIED7Asiya Javayant
1018Sinclair WaycottUnited Kingdom2025-08-30King, Christopher A Esq NEW70Amy Elsner
1019Kadeem FlosiAustralia2025-08-31Rousseaux, Michael Esq RENEWAL26Elwin Sharvill
1020Leja CaldareraJapan2025-08-26Buckley Miller Wright NEW24Ivan Magalhaes
1021Johnson SergiGermany2025-09-04Rousseaux, Michael Esq NEGOTIATION21Xuxue Feng
1022Wickens NestleItaly2025-08-28Chemel, James L Cpa QUALIFIED28Stephen Shaw
1023Munro FerenczJapan2025-08-30Rangoni Of Florence PROPOSAL30Ivan Magalhaes
1024Kaitlin OstroskyUnited Kingdom2025-08-11Feltz Printing Service QUALIFIED97Anna Fali
1025Leja CaldareraCanada2025-08-18Chanay, Jeffrey A Esq QUALIFIED74Ioni Bowcher
1026Claire TollnerItaly2025-08-22Feltz Printing Service NEGOTIATION25Xuxue Feng
1027Jeanfrancois VenereAustralia2025-08-21Benton, John B Jr UNQUALIFIED1Xuxue Feng
1028Rodrigues CampainItaly2025-09-06Commercial Press UNQUALIFIED51Asiya Javayant
1029Leon OldroydCanada2025-08-20Commercial Press UNQUALIFIED47Amy Elsner
1030Ashley DoeItaly2025-08-25Chemel, James L Cpa PROPOSAL26Bernardo Dominic
1031Salvatore StockhamGermany2025-08-15Printing Dimensions NEW83Asiya Javayant
1032Leja CaldareraBrazil2025-08-18Buckley Miller Wright PROPOSAL46Xuxue Feng
1033Mayumi KolmetzIndia2025-09-07Rangoni Of Florence RENEWAL94Anna Fali
1034Johnson SergiIndia2025-08-15Feiner Bros PROPOSAL1Asiya Javayant
1035Octavia MaletArgentina2025-08-25Feltz Printing Service RENEWAL15Bernardo Dominic
1036Darci PoquetteIndia2025-08-20Buckley Miller Wright RENEWAL42Onyama Limba
1037Kadeem FlosiFrance2025-08-24Truhlar And Truhlar Attys UNQUALIFIED22Ioni Bowcher
1038Nicolas IturbideSpain2025-08-14Buckley Miller Wright RENEWAL81Bernardo Dominic
1039Cody SaylorsUnited Kingdom2025-08-21Benton, John B Jr QUALIFIED82Asiya Javayant
1040Aruna FigeroaArgentina2025-09-07Rousseaux, Michael Esq UNQUALIFIED89Ivan Magalhaes
1041Leja CaldareraIndia2025-08-29Commercial Press UNQUALIFIED12Ioni Bowcher
1042Aruna FigeroaArgentina2025-08-14Truhlar And Truhlar Attys PROPOSAL70Xuxue Feng
1043Isabel BowleyGermany2025-08-20Dorl, James J Esq NEW33Amy Elsner
1044Morrow RutaFrance2025-08-23Benton, John B Jr UNQUALIFIED68Asiya Javayant
1045Aika InouyeBrazil2025-08-17Morlong Associates NEGOTIATION4Bernardo Dominic
1046Jeanfrancois VenereSpain2025-09-03Rangoni Of Florence UNQUALIFIED13Ioni Bowcher
1047Deepesh ChuiGermany2025-08-17Rousseaux, Michael Esq QUALIFIED64Anna Fali
1048Juan WieserAustralia2025-08-14Feiner Bros UNQUALIFIED93Bernardo Dominic
1049Aruna FigeroaArgentina2025-08-25Buckley Miller Wright PROPOSAL33Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeCanadaIvan Magalhaes QUALIFIED
Chavez BriddickFranceStephen Shaw RENEWAL
Kaitlin OstroskySpainOnyama Limba RENEWAL
Kaitlin OstroskyArgentinaAnna Fali QUALIFIED
Jefferson SchemmerUnited KingdomXuxue Feng QUALIFIED
Munro FerenczBrazilOnyama Limba UNQUALIFIED
Kaitlin OstroskyCanadaIoni Bowcher NEW
Stacey MacleadAustraliaOnyama Limba NEW
Isabel BowleyGermanyBernardo Dominic NEGOTIATION
Murillo MaletJapanAnna Fali NEW
Alejandro PerinAustraliaIvan Magalhaes PROPOSAL
Greenwood BologniaUnited KingdomXuxue Feng NEGOTIATION
Mujtaba NickaSpainOnyama Limba NEW
Leja CaldareraIndiaAsiya Javayant UNQUALIFIED
Smith GlickArgentinaIvan Magalhaes UNQUALIFIED
Clifford RimItalyStephen Shaw QUALIFIED
Maria MarrierCanadaBernardo Dominic NEW
Misaki RoysterUnited KingdomAnna Fali NEGOTIATION
Salvatore StockhamRussiaXuxue Feng QUALIFIED
Stacey MacleadSpainXuxue Feng QUALIFIED
Ashley DoeAustraliaIoni Bowcher UNQUALIFIED
Smith GlickSpainBernardo Dominic RENEWAL
Adams MorascaSpainIoni Bowcher QUALIFIED
Ashley DoeRussiaXuxue Feng PROPOSAL
Nicolas IturbideFranceXuxue Feng QUALIFIED
Munro FerenczFranceStephen Shaw RENEWAL
Misaki RoysterJapanOnyama Limba UNQUALIFIED
Smith GlickFranceAnna Fali RENEWAL
Morrow RutaFranceElwin Sharvill UNQUALIFIED
Aruna FigeroaCanadaXuxue Feng NEGOTIATION
Emily WhobreyArgentinaAmy Elsner RENEWAL
Silvio SlusarskiFranceXuxue Feng NEGOTIATION
Tony FollerUnited KingdomAnna Fali RENEWAL
Francesco ShinkoGermanyIoni Bowcher PROPOSAL
Jones VocelkaBrazilAnna Fali NEGOTIATION
Maisha RulapaughBrazilIoni Bowcher QUALIFIED
Smith GlickSpainOnyama Limba QUALIFIED
Jeanfrancois VenereCanadaOnyama Limba UNQUALIFIED
Greenwood BologniaCanadaAmy Elsner RENEWAL
Chavez BriddickIndiaElwin Sharvill UNQUALIFIED
Greenwood BologniaUnited KingdomBernardo Dominic UNQUALIFIED
Juan WieserGermanyAsiya Javayant RENEWAL
Claire TollnerUnited KingdomIvan Magalhaes QUALIFIED
Mayumi KolmetzSpainBernardo Dominic PROPOSAL
Greenwood BologniaItalyAmy Elsner PROPOSAL
Maria MarrierBrazilAmy Elsner PROPOSAL
Morrow RutaArgentinaAmy Elsner UNQUALIFIED
Munro FerenczCanadaIoni Bowcher NEW
Ashley DoeSpainAsiya Javayant PROPOSAL
Smith GlickAustraliaBernardo Dominic NEW
Frozen Columns
Name
Jennifer Amigon
Clifford Rim
Tony Foller
Clifford Rim
Costa Dilliard
Murillo Malet
Octavia Malet
Emily Whobrey
Maria Marrier
Morrow Ruta
Johnson Sergi
Octavia Malet
Murillo Malet
Octavia Malet
Claire Tollner
Kaitlin Ostrosky
Jeanfrancois Venere
Murillo Malet
Jeanfrancois Venere
Arvin Albares
Francesco Shinko
Misaki Royster
Cody Saylors
Deepesh Chui
Claire Tollner
Misaki Royster
Deepesh Chui
Jeanfrancois Venere
Antonio Caudy
Jefferson Schemmer
Leja Caldarera
Cody Saylors
Tony Foller
Jefferson Schemmer
Mujtaba Nicka
Leon Oldroyd
James Butt
Kaitlin Ostrosky
Stacey Maclead
Ashley Doe
James Butt
Tony Foller
Leja Caldarera
Stacey Maclead
Morrow Ruta
Aditya Kusko
Adams Morasca
Faith Gillian
Julie Stenseth
Johnson Sergi
IdCountryDate
1000Spain2025-09-05
1001India2025-09-09
1002Germany2025-08-15
1003Italy2025-09-09
1004Germany2025-08-16
1005Japan2025-09-02
1006Russia2025-08-11
1007United Kingdom2025-09-07
1008Germany2025-08-17
1009United Kingdom2025-08-27
1010Australia2025-08-22
1011Russia2025-09-04
1012Australia2025-08-23
1013Japan2025-08-19
1014Italy2025-08-28
1015France2025-08-27
1016France2025-09-05
1017Japan2025-08-21
1018Russia2025-08-17
1019Spain2025-09-08
1020Russia2025-09-09
1021Spain2025-08-17
1022Brazil2025-09-05
1023India2025-08-15
1024Italy2025-08-28
1025Spain2025-09-06
1026India2025-09-03
1027Japan2025-08-11
1028Argentina2025-09-01
1029France2025-08-21
1030Canada2025-08-22
1031Argentina2025-08-31
1032United Kingdom2025-08-22
1033Germany2025-08-26
1034Japan2025-08-27
1035Spain2025-08-27
1036France2025-08-21
1037Canada2025-08-21
1038Australia2025-08-20
1039Argentina2025-08-15
1040United Kingdom2025-08-20
1041France2025-09-06
1042Germany2025-09-05
1043Russia2025-09-03
1044Italy2025-08-22
1045Spain2025-09-07
1046Brazil2025-08-19
1047India2025-08-15
1048Spain2025-08-11
1049Spain2025-08-19

On-Demand Data

NameIdCountryDate
Nicolas Iturbide1000Russia2025-08-16
Costa Dilliard1001Brazil2025-09-09
Jennifer Amigon1002Australia2025-09-08
Morrow Ruta1003Australia2025-08-15
Kaitlin Ostrosky1004Italy2025-09-05
Mayumi Kolmetz1005Argentina2025-08-17
Arvin Albares1006Brazil2025-09-06
Jones Vocelka1007Russia2025-08-29
Kaitlin Ostrosky1008India2025-09-05
Izzy Garufi1009Spain2025-08-28
Johnson Sergi1010Italy2025-08-14
James Butt1011Russia2025-09-03
Wickens Nestle1012Spain2025-09-08
Alejandro Perin1013Brazil2025-08-22
Mujtaba Nicka1014Brazil2025-09-09
Tony Foller1015Argentina2025-08-14
Ricardo Gaucho1016Japan2025-08-20
Ashley Doe1017France2025-09-06
Wickens Nestle1018Russia2025-08-20
Jefferson Schemmer1019Australia2025-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickBrazilAmy Elsner RENEWAL
Rodrigues CampainCanadaStephen Shaw NEGOTIATION
Ivar PaprockiAustraliaXuxue Feng RENEWAL
Aika InouyeItalyAnna Fali PROPOSAL
Jones VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Darci PoquetteIndiaIvan Magalhaes QUALIFIED
Aruna FigeroaCanadaOnyama Limba NEW
Munro FerenczSpainOnyama Limba QUALIFIED
Claire TollnerFranceOnyama Limba QUALIFIED
Costa DilliardBrazilAnna Fali RENEWAL
Juan WieserBrazilAnna Fali NEGOTIATION
Jeanfrancois VenereRussiaAmy Elsner NEGOTIATION
Tony FollerSpainStephen Shaw QUALIFIED
Ivar PaprockiItalyBernardo Dominic PROPOSAL
Clifford RimRussiaStephen Shaw RENEWAL
Munro FerenczJapanBernardo Dominic UNQUALIFIED
Jefferson SchemmerAustraliaAnna Fali PROPOSAL
Costa DilliardBrazilAmy Elsner PROPOSAL
Sinclair WaycottFranceStephen Shaw NEGOTIATION
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Silvio SlusarskiSpainElwin Sharvill PROPOSAL
Chavez BriddickCanadaBernardo Dominic QUALIFIED
Sinclair WaycottItalyAmy Elsner PROPOSAL
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Juan WieserJapanElwin Sharvill NEGOTIATION
Juan WieserJapanAsiya Javayant NEW
Murillo MaletItalyIvan Magalhaes QUALIFIED
Emily WhobreyCanadaIvan Magalhaes RENEWAL
Jefferson SchemmerSpainAmy Elsner NEGOTIATION
Isabel BowleyAustraliaStephen Shaw NEGOTIATION
Francesco ShinkoSpainElwin Sharvill PROPOSAL
Greenwood BologniaSpainBernardo Dominic NEGOTIATION
Octavia MaletRussiaStephen Shaw QUALIFIED
Ashley DoeGermanyStephen Shaw NEW
Antonio CaudyItalyAsiya Javayant NEGOTIATION
Smith GlickSpainStephen Shaw NEGOTIATION
Maisha RulapaughItalyStephen Shaw NEW
Isabel BowleyItalyElwin Sharvill QUALIFIED
Aruna FigeroaSpainIvan Magalhaes QUALIFIED
Tony FollerAustraliaOnyama Limba PROPOSAL

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