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
Ashley DoeIndiaIoni Bowcher NEW
Smith GlickUnited KingdomBernardo Dominic NEW
Mujtaba NickaArgentinaAnna Fali UNQUALIFIED
Murillo MaletArgentinaAnna Fali PROPOSAL
Emily WhobreyJapanElwin Sharvill QUALIFIED
Leon OldroydAustraliaAsiya Javayant UNQUALIFIED
Octavia MaletGermanyStephen Shaw NEW
Cody SaylorsItalyAmy Elsner NEW
Jeanfrancois VenereSpainIoni Bowcher PROPOSAL
Arvin AlbaresRussiaAsiya Javayant RENEWAL
Ricardo GauchoBrazilAmy Elsner UNQUALIFIED
Francesco ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Tony FollerFranceAsiya Javayant RENEWAL
Munro FerenczUnited KingdomXuxue Feng PROPOSAL
Salvatore StockhamBrazilAsiya Javayant UNQUALIFIED
Kaitlin OstroskyUnited KingdomElwin Sharvill QUALIFIED
Murillo MaletGermanyIoni Bowcher NEW
Juan WieserItalyXuxue Feng RENEWAL
Aruna FigeroaSpainAmy Elsner NEW
Aruna FigeroaSpainOnyama Limba RENEWAL
Munro FerenczGermanyIoni Bowcher UNQUALIFIED
Leon OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Aditya KuskoGermanyIoni Bowcher NEW
Misaki RoysterUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois VenereSpainIvan Magalhaes NEGOTIATION
Mujtaba NickaBrazilBernardo Dominic NEW
Maria MarrierJapanBernardo Dominic RENEWAL
Aruna FigeroaArgentinaIvan Magalhaes QUALIFIED
David DarakjyIndiaStephen Shaw NEGOTIATION
Salvatore StockhamArgentinaAmy Elsner QUALIFIED
Claire TollnerAustraliaIvan Magalhaes QUALIFIED
Alejandro PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore StockhamRussiaXuxue Feng UNQUALIFIED
Cody SaylorsItalyXuxue Feng NEW
Izzy GarufiAustraliaAnna Fali UNQUALIFIED
Francesco ShinkoJapanBernardo Dominic QUALIFIED
Antonio CaudyCanadaAmy Elsner PROPOSAL
Jones VocelkaRussiaBernardo Dominic QUALIFIED
Salvatore StockhamIndiaXuxue Feng UNQUALIFIED
Tony FollerRussiaBernardo Dominic QUALIFIED
Izzy GarufiAustraliaOnyama Limba NEW
Rodrigues CampainFranceAsiya Javayant RENEWAL
Isabel BowleyBrazilAsiya Javayant QUALIFIED
Cody SaylorsSpainIoni Bowcher QUALIFIED
Costa DilliardFranceAnna Fali PROPOSAL
Johnson SergiAustraliaBernardo Dominic PROPOSAL
Tony FollerBrazilAnna Fali UNQUALIFIED
Kaitlin OstroskyCanadaAsiya Javayant NEW
Silvio SlusarskiGermanyIoni Bowcher NEGOTIATION
Izzy GarufiItalyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomXuxue Feng UNQUALIFIED
Chavez BriddickJapanBernardo Dominic NEW
Maria MarrierIndiaAmy Elsner QUALIFIED
Ricardo GauchoFranceXuxue Feng RENEWAL
Aruna FigeroaCanadaAnna Fali QUALIFIED
Deepesh ChuiAustraliaAmy Elsner NEW
Smith GlickCanadaXuxue Feng UNQUALIFIED
Deepesh ChuiIndiaElwin Sharvill NEW
Alejandro PerinFranceIvan Magalhaes NEW
Adams MorascaUnited KingdomAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierBrazil2025-09-14King, Christopher A Esq QUALIFIED67Ioni Bowcher
1001Alejandro PerinJapan2025-09-14Morlong Associates UNQUALIFIED20Ioni Bowcher
1002Mayumi KolmetzCanada2025-09-10Rousseaux, Michael Esq RENEWAL99Bernardo Dominic
1003Leja CaldareraRussia2025-09-24Chemel, James L Cpa NEGOTIATION20Xuxue Feng
1004Cody SaylorsBrazil2025-09-14Buckley Miller Wright NEW27Xuxue Feng
1005Darci PoquetteGermany2025-09-21Morlong Associates NEGOTIATION86Asiya Javayant
1006Mayumi KolmetzArgentina2025-09-18Buckley Miller Wright QUALIFIED50Anna Fali
1007Arvin AlbaresGermany2025-09-06Rousseaux, Michael Esq QUALIFIED47Stephen Shaw
1008David DarakjyUnited Kingdom2025-09-18Feiner Bros NEGOTIATION6Stephen Shaw
1009Antonio CaudyAustralia2025-09-20Printing Dimensions RENEWAL88Asiya Javayant
1010Darci PoquetteItaly2025-10-02Commercial Press NEW23Anna Fali
1011Maisha RulapaughRussia2025-09-04Chemel, James L Cpa NEGOTIATION19Bernardo Dominic
1012Mayumi KolmetzFrance2025-09-08King, Christopher A Esq NEGOTIATION60Onyama Limba
1013Salvatore StockhamUnited Kingdom2025-09-15Chanay, Jeffrey A Esq PROPOSAL32Elwin Sharvill
1014Smith GlickCanada2025-09-08Chapman, Ross E Esq RENEWAL68Bernardo Dominic
1015Kadeem FlosiRussia2025-09-09Benton, John B Jr NEGOTIATION40Anna Fali
1016Jones VocelkaItaly2025-09-27Dorl, James J Esq QUALIFIED21Stephen Shaw
1017Jeanfrancois VenereJapan2025-09-17Chanay, Jeffrey A Esq UNQUALIFIED93Anna Fali
1018Leja CaldareraArgentina2025-09-21Printing Dimensions RENEWAL20Elwin Sharvill
1019Smith GlickSpain2025-09-13Chapman, Ross E Esq UNQUALIFIED83Amy Elsner
1020Julie StensethArgentina2025-09-06Chemel, James L Cpa NEGOTIATION99Amy Elsner
1021Salvatore StockhamArgentina2025-09-16Feltz Printing Service NEW93Anna Fali
1022Faith GillianCanada2025-09-16Truhlar And Truhlar Attys NEW94Onyama Limba
1023Adams MorascaAustralia2025-09-15Morlong Associates QUALIFIED68Onyama Limba
1024Ivar PaprockiGermany2025-09-14Truhlar And Truhlar Attys RENEWAL7Anna Fali
1025Claire TollnerJapan2025-09-22Chanay, Jeffrey A Esq UNQUALIFIED1Ioni Bowcher
1026Mayumi KolmetzFrance2025-10-02Buckley Miller Wright UNQUALIFIED30Asiya Javayant
1027Claire TollnerSpain2025-09-19Rousseaux, Michael Esq QUALIFIED38Onyama Limba
1028Faith GillianSpain2025-09-11King, Christopher A Esq PROPOSAL97Amy Elsner
1029Maisha RulapaughItaly2025-09-15Rousseaux, Michael Esq NEW24Ioni Bowcher
1030Ivar PaprockiGermany2025-09-15Morlong Associates RENEWAL95Anna Fali
1031Chavez BriddickBrazil2025-09-13Chemel, James L Cpa NEW0Ioni Bowcher
1032Isabel BowleyArgentina2025-09-25Printing Dimensions NEGOTIATION27Amy Elsner
1033Darci PoquetteIndia2025-09-26Feiner Bros UNQUALIFIED94Stephen Shaw
1034Rodrigues CampainBrazil2025-09-23Benton, John B Jr UNQUALIFIED81Ivan Magalhaes
1035Clifford RimIndia2025-09-22Rangoni Of Florence PROPOSAL13Asiya Javayant
1036Jeanfrancois VenereJapan2025-09-13Feiner Bros UNQUALIFIED82Asiya Javayant
1037Octavia MaletBrazil2025-09-17Feiner Bros NEGOTIATION13Elwin Sharvill
1038Izzy GarufiUnited Kingdom2025-09-14Rangoni Of Florence UNQUALIFIED35Asiya Javayant
1039Isabel BowleyArgentina2025-09-16King, Christopher A Esq NEGOTIATION92Xuxue Feng
1040Ivar PaprockiUnited Kingdom2025-09-21Morlong Associates NEW79Stephen Shaw
1041Silvio SlusarskiCanada2025-09-25Dorl, James J Esq QUALIFIED39Amy Elsner
1042Emily WhobreyFrance2025-09-04Rousseaux, Michael Esq QUALIFIED53Asiya Javayant
1043Murillo MaletUnited Kingdom2025-09-29Chemel, James L Cpa NEW3Bernardo Dominic
1044Octavia MaletItaly2025-09-29King, Christopher A Esq RENEWAL90Asiya Javayant
1045Mayumi KolmetzCanada2025-10-02Truhlar And Truhlar Attys RENEWAL13Stephen Shaw
1046Aditya KuskoUnited Kingdom2025-09-28Commercial Press NEW64Ioni Bowcher
1047Izzy GarufiAustralia2025-10-01Printing Dimensions RENEWAL91Bernardo Dominic
1048Chavez BriddickJapan2025-09-17Printing Dimensions PROPOSAL38Anna Fali
1049Maisha RulapaughFrance2025-09-26Benton, John B Jr PROPOSAL56Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiItalyBernardo Dominic NEGOTIATION
Salvatore StockhamSpainXuxue Feng PROPOSAL
Nicolas IturbideUnited KingdomAnna Fali PROPOSAL
James ButtItalyAmy Elsner PROPOSAL
Kaitlin OstroskyUnited KingdomStephen Shaw NEGOTIATION
Isabel BowleyGermanyIvan Magalhaes UNQUALIFIED
Salvatore StockhamAustraliaAmy Elsner PROPOSAL
Aditya KuskoItalyOnyama Limba PROPOSAL
Stacey MacleadBrazilAnna Fali PROPOSAL
Emily WhobreyFranceBernardo Dominic QUALIFIED
Rodrigues CampainItalyXuxue Feng QUALIFIED
Rodrigues CampainBrazilAnna Fali UNQUALIFIED
Mujtaba NickaFranceStephen Shaw RENEWAL
Greenwood BologniaFranceOnyama Limba QUALIFIED
Juan WieserBrazilBernardo Dominic NEGOTIATION
Munro FerenczSpainIoni Bowcher UNQUALIFIED
James ButtItalyIoni Bowcher QUALIFIED
Tony FollerCanadaXuxue Feng UNQUALIFIED
Maisha RulapaughAustraliaElwin Sharvill QUALIFIED
Sinclair WaycottArgentinaBernardo Dominic NEGOTIATION
Munro FerenczGermanyIoni Bowcher PROPOSAL
Octavia MaletUnited KingdomXuxue Feng NEGOTIATION
Ivar PaprockiRussiaAmy Elsner UNQUALIFIED
Juan WieserArgentinaStephen Shaw NEW
Clifford RimItalyIoni Bowcher QUALIFIED
Chavez BriddickJapanAnna Fali PROPOSAL
Jennifer AmigonRussiaBernardo Dominic NEGOTIATION
Clifford RimUnited KingdomIvan Magalhaes QUALIFIED
Murillo MaletFranceBernardo Dominic PROPOSAL
James ButtCanadaAnna Fali NEGOTIATION
Jones VocelkaJapanStephen Shaw RENEWAL
Morrow RutaFranceAsiya Javayant NEW
Aika InouyeSpainStephen Shaw NEGOTIATION
Jeanfrancois VenereArgentinaAsiya Javayant UNQUALIFIED
Maria MarrierSpainBernardo Dominic QUALIFIED
Antonio CaudyFranceElwin Sharvill PROPOSAL
Alejandro PerinArgentinaAmy Elsner UNQUALIFIED
Kadeem FlosiGermanyBernardo Dominic PROPOSAL
Salvatore StockhamArgentinaAsiya Javayant PROPOSAL
Mayumi KolmetzRussiaStephen Shaw NEW
Cody SaylorsUnited KingdomStephen Shaw QUALIFIED
Adams MorascaSpainIvan Magalhaes NEGOTIATION
Greenwood BologniaJapanIvan Magalhaes UNQUALIFIED
Maisha RulapaughBrazilOnyama Limba QUALIFIED
Mayumi KolmetzFranceAnna Fali RENEWAL
Francesco ShinkoBrazilBernardo Dominic QUALIFIED
Jeanfrancois VenereAustraliaIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaAsiya Javayant NEW
Mayumi KolmetzRussiaBernardo Dominic NEGOTIATION
Jefferson SchemmerItalyOnyama Limba NEW
Frozen Columns
Name
Salvatore Stockham
Morrow Ruta
Arvin Albares
Salvatore Stockham
Johnson Sergi
Mujtaba Nicka
Leja Caldarera
Stacey Maclead
Smith Glick
Silvio Slusarski
Jefferson Schemmer
Leon Oldroyd
Murillo Malet
Silvio Slusarski
Faith Gillian
Silvio Slusarski
Juan Wieser
Murillo Malet
Stacey Maclead
Murillo Malet
Costa Dilliard
Smith Glick
Maria Marrier
Julie Stenseth
Stacey Maclead
Murillo Malet
Faith Gillian
Wickens Nestle
Leja Caldarera
Morrow Ruta
Clifford Rim
Jones Vocelka
Cody Saylors
Arvin Albares
Antonio Caudy
Tony Foller
Aruna Figeroa
Greenwood Bolognia
Kaitlin Ostrosky
Ivar Paprocki
Murillo Malet
Alejandro Perin
Antonio Caudy
Jones Vocelka
Leja Caldarera
Clifford Rim
Darci Poquette
Stacey Maclead
Ricardo Gaucho
Chavez Briddick
IdCountryDate
1000United Kingdom2025-09-08
1001Russia2025-09-18
1002Australia2025-09-04
1003Brazil2025-09-13
1004Australia2025-09-17
1005France2025-09-10
1006Australia2025-09-15
1007India2025-09-10
1008India2025-09-30
1009Spain2025-10-01
1010Argentina2025-09-28
1011Italy2025-09-10
1012Canada2025-09-26
1013Germany2025-09-14
1014Brazil2025-09-27
1015Spain2025-09-15
1016Australia2025-09-22
1017United Kingdom2025-09-27
1018Argentina2025-09-20
1019Argentina2025-09-08
1020Australia2025-09-06
1021Argentina2025-09-22
1022India2025-09-05
1023Italy2025-09-27
1024Japan2025-09-03
1025Brazil2025-09-04
1026Russia2025-09-29
1027France2025-09-28
1028Italy2025-10-01
1029Japan2025-09-26
1030Spain2025-09-26
1031Argentina2025-09-10
1032Australia2025-09-03
1033Italy2025-09-22
1034Brazil2025-09-07
1035Germany2025-09-08
1036France2025-09-10
1037Japan2025-09-03
1038India2025-09-29
1039Germany2025-09-26
1040Argentina2025-09-11
1041Australia2025-10-01
1042Argentina2025-09-29
1043Japan2025-09-03
1044Japan2025-09-05
1045Canada2025-09-07
1046Spain2025-10-01
1047Argentina2025-09-27
1048Australia2025-09-18
1049Japan2025-09-30

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Argentina2025-09-18
Ivar Paprocki1001Germany2025-09-21
Smith Glick1002Russia2025-09-06
Francesco Shinko1003India2025-09-22
Ivar Paprocki1004Spain2025-09-19
Silvio Slusarski1005United Kingdom2025-09-14
Sinclair Waycott1006Japan2025-09-13
Aika Inouye1007Russia2025-09-12
Jones Vocelka1008Argentina2025-09-11
Faith Gillian1009Australia2025-09-23
Faith Gillian1010Canada2025-09-08
David Darakjy1011Argentina2025-09-24
Salvatore Stockham1012Germany2025-09-21
Alejandro Perin1013Germany2025-09-23
Ricardo Gaucho1014France2025-09-27
Kaitlin Ostrosky1015Australia2025-09-28
Faith Gillian1016Argentina2025-09-23
Faith Gillian1017Russia2025-09-04
Adams Morasca1018Argentina2025-09-30
Darci Poquette1019Russia2025-09-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaArgentinaOnyama Limba NEW
Francesco ShinkoAustraliaAnna Fali QUALIFIED
Francesco ShinkoJapanAmy Elsner NEW
Salvatore StockhamFranceAsiya Javayant RENEWAL
Murillo MaletJapanOnyama Limba NEW
Aruna FigeroaCanadaOnyama Limba QUALIFIED
Ricardo GauchoGermanyAnna Fali PROPOSAL
Jones VocelkaBrazilIoni Bowcher NEW
Rodrigues CampainGermanyXuxue Feng QUALIFIED
Morrow RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Juan WieserGermanyIoni Bowcher PROPOSAL
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Jeanfrancois VenereFranceAsiya Javayant PROPOSAL
Aruna FigeroaItalyIoni Bowcher UNQUALIFIED
Mayumi KolmetzFranceOnyama Limba UNQUALIFIED
Claire TollnerJapanAsiya Javayant NEGOTIATION
Faith GillianBrazilElwin Sharvill NEGOTIATION
Kadeem FlosiAustraliaBernardo Dominic QUALIFIED
Francesco ShinkoAustraliaBernardo Dominic PROPOSAL
Adams MorascaSpainElwin Sharvill QUALIFIED
Claire TollnerAustraliaXuxue Feng QUALIFIED
Rodrigues CampainJapanAsiya Javayant RENEWAL
Mayumi KolmetzGermanyElwin Sharvill UNQUALIFIED
Julie StensethAustraliaIoni Bowcher NEW
Ivar PaprockiItalyAsiya Javayant NEGOTIATION
Jones VocelkaBrazilAmy Elsner NEW
Mayumi KolmetzJapanAmy Elsner NEGOTIATION
Wickens NestleFranceElwin Sharvill PROPOSAL
Isabel BowleyBrazilIvan Magalhaes QUALIFIED
Kaitlin OstroskyBrazilXuxue Feng UNQUALIFIED
Francesco ShinkoIndiaIoni Bowcher UNQUALIFIED
Leon OldroydUnited KingdomAsiya Javayant QUALIFIED
Leon OldroydItalyBernardo Dominic NEGOTIATION
Arvin AlbaresJapanAnna Fali RENEWAL
Francesco ShinkoGermanyStephen Shaw NEW
Aditya KuskoBrazilElwin Sharvill NEW
Ivar PaprockiSpainElwin Sharvill UNQUALIFIED
Costa DilliardArgentinaAmy Elsner NEW
Ivar PaprockiItalyBernardo Dominic NEW
Smith GlickSpainIoni Bowcher 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>