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
Costa DilliardUnited KingdomXuxue Feng UNQUALIFIED
Arvin AlbaresRussiaElwin Sharvill UNQUALIFIED
David DarakjyCanadaOnyama Limba NEW
Ricardo GauchoIndiaOnyama Limba RENEWAL
Deepesh ChuiAustraliaAmy Elsner UNQUALIFIED
Jennifer AmigonSpainStephen Shaw PROPOSAL
Juan WieserCanadaAsiya Javayant PROPOSAL
Leja CaldareraSpainAnna Fali NEGOTIATION
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Deepesh ChuiAustraliaAnna Fali PROPOSAL
Isabel BowleySpainIvan Magalhaes PROPOSAL
Clifford RimItalyAnna Fali NEGOTIATION
Ivar PaprockiGermanyXuxue Feng UNQUALIFIED
Aruna FigeroaGermanyIoni Bowcher NEW
Clifford RimRussiaAsiya Javayant PROPOSAL
Maria MarrierCanadaElwin Sharvill NEGOTIATION
David DarakjyRussiaAnna Fali PROPOSAL
Greenwood BologniaUnited KingdomAnna Fali PROPOSAL
Greenwood BologniaItalyStephen Shaw PROPOSAL
Morrow RutaArgentinaAnna Fali PROPOSAL
Greenwood BologniaItalyAmy Elsner UNQUALIFIED
Chavez BriddickArgentinaBernardo Dominic PROPOSAL
Munro FerenczUnited KingdomAmy Elsner NEW
Aditya KuskoItalyIoni Bowcher UNQUALIFIED
Jennifer AmigonAustraliaBernardo Dominic QUALIFIED
Mayumi KolmetzFranceBernardo Dominic NEW
Morrow RutaGermanyAnna Fali NEW
Kadeem FlosiArgentinaIvan Magalhaes NEGOTIATION
Smith GlickAustraliaIoni Bowcher NEW
Munro FerenczAustraliaBernardo Dominic NEGOTIATION
Kaitlin OstroskyGermanyStephen Shaw QUALIFIED
Munro FerenczIndiaElwin Sharvill PROPOSAL
Cody SaylorsBrazilIoni Bowcher RENEWAL
Misaki RoysterItalyIoni Bowcher RENEWAL
Izzy GarufiCanadaBernardo Dominic PROPOSAL
Ricardo GauchoBrazilOnyama Limba RENEWAL
Jefferson SchemmerIndiaBernardo Dominic RENEWAL
Greenwood BologniaJapanAmy Elsner NEW
Adams MorascaArgentinaStephen Shaw PROPOSAL
Julie StensethAustraliaXuxue Feng NEW
Salvatore StockhamBrazilOnyama Limba RENEWAL
Deepesh ChuiBrazilAmy Elsner NEW
Johnson SergiCanadaAmy Elsner RENEWAL
Clifford RimFranceIvan Magalhaes RENEWAL
Jennifer AmigonFranceStephen Shaw PROPOSAL
Wickens NestleBrazilAmy Elsner RENEWAL
Chavez BriddickBrazilIoni Bowcher NEGOTIATION
Smith GlickRussiaIvan Magalhaes NEW
Jennifer AmigonJapanXuxue Feng NEW
Murillo MaletJapanOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaCanadaOnyama Limba PROPOSAL
Kadeem FlosiJapanXuxue Feng QUALIFIED
Maisha RulapaughIndiaIoni Bowcher NEW
Tony FollerGermanyElwin Sharvill UNQUALIFIED
Ivar PaprockiFranceIvan Magalhaes PROPOSAL
Isabel BowleyAustraliaOnyama Limba NEW
Jones VocelkaBrazilAnna Fali NEGOTIATION
Jefferson SchemmerJapanAsiya Javayant RENEWAL
Francesco ShinkoSpainAmy Elsner NEGOTIATION
Wickens NestleRussiaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczGermany2026-05-10Rangoni Of Florence NEGOTIATION13Amy Elsner
1001Silvio SlusarskiSpain2026-05-08Rangoni Of Florence PROPOSAL96Elwin Sharvill
1002Silvio SlusarskiArgentina2026-04-22Commercial Press NEGOTIATION30Stephen Shaw
1003Maisha RulapaughAustralia2026-05-10Printing Dimensions RENEWAL35Amy Elsner
1004Stacey MacleadSpain2026-04-24Feiner Bros RENEWAL49Stephen Shaw
1005Stacey MacleadAustralia2026-05-09Commercial Press NEGOTIATION54Anna Fali
1006Francesco ShinkoArgentina2026-05-07Dorl, James J Esq UNQUALIFIED62Ioni Bowcher
1007Chavez BriddickBrazil2026-04-20Morlong Associates QUALIFIED2Onyama Limba
1008Aruna FigeroaGermany2026-04-19Morlong Associates NEW81Stephen Shaw
1009Ashley DoeIndia2026-04-18Chemel, James L Cpa RENEWAL6Onyama Limba
1010Claire TollnerBrazil2026-05-07Rousseaux, Michael Esq NEW50Asiya Javayant
1011Ricardo GauchoBrazil2026-05-15Feiner Bros UNQUALIFIED89Anna Fali
1012Leja CaldareraRussia2026-04-25Feiner Bros PROPOSAL21Amy Elsner
1013Greenwood BologniaGermany2026-04-19Feiner Bros NEGOTIATION44Anna Fali
1014Ivar PaprockiFrance2026-05-09Feiner Bros PROPOSAL83Amy Elsner
1015Morrow RutaUnited Kingdom2026-04-16Benton, John B Jr UNQUALIFIED41Bernardo Dominic
1016Faith GillianGermany2026-05-13Rousseaux, Michael Esq RENEWAL59Bernardo Dominic
1017Isabel BowleyBrazil2026-05-12Chemel, James L Cpa PROPOSAL67Xuxue Feng
1018Julie StensethIndia2026-05-01Morlong Associates QUALIFIED4Elwin Sharvill
1019Claire TollnerCanada2026-04-22Buckley Miller Wright NEGOTIATION53Anna Fali
1020Silvio SlusarskiArgentina2026-04-27Morlong Associates PROPOSAL56Stephen Shaw
1021Munro FerenczUnited Kingdom2026-05-10Rangoni Of Florence QUALIFIED96Stephen Shaw
1022Izzy GarufiFrance2026-05-06Dorl, James J Esq UNQUALIFIED80Elwin Sharvill
1023Adams MorascaCanada2026-05-04Morlong Associates RENEWAL95Bernardo Dominic
1024Juan WieserUnited Kingdom2026-04-19Feiner Bros RENEWAL48Asiya Javayant
1025Juan WieserJapan2026-04-17Rousseaux, Michael Esq PROPOSAL89Bernardo Dominic
1026Clifford RimSpain2026-05-11Truhlar And Truhlar Attys NEGOTIATION41Stephen Shaw
1027Aika InouyeArgentina2026-04-25Buckley Miller Wright NEW13Elwin Sharvill
1028Isabel BowleySpain2026-05-02Rangoni Of Florence QUALIFIED42Amy Elsner
1029Adams MorascaGermany2026-05-08King, Christopher A Esq PROPOSAL95Bernardo Dominic
1030Ashley DoeJapan2026-04-21King, Christopher A Esq NEGOTIATION79Bernardo Dominic
1031Aruna FigeroaItaly2026-04-18Chanay, Jeffrey A Esq UNQUALIFIED19Stephen Shaw
1032Leja CaldareraGermany2026-05-11Truhlar And Truhlar Attys PROPOSAL16Elwin Sharvill
1033Jones VocelkaSpain2026-04-19Rousseaux, Michael Esq RENEWAL6Xuxue Feng
1034Misaki RoysterRussia2026-04-24Truhlar And Truhlar Attys UNQUALIFIED80Anna Fali
1035Silvio SlusarskiCanada2026-04-17Truhlar And Truhlar Attys NEW17Amy Elsner
1036Sinclair WaycottCanada2026-05-04Commercial Press RENEWAL44Anna Fali
1037Darci PoquetteFrance2026-04-30Chemel, James L Cpa PROPOSAL16Bernardo Dominic
1038Julie StensethRussia2026-05-01Rousseaux, Michael Esq NEW27Elwin Sharvill
1039Murillo MaletCanada2026-04-28Commercial Press QUALIFIED70Xuxue Feng
1040Claire TollnerJapan2026-05-11Chemel, James L Cpa PROPOSAL34Anna Fali
1041Wickens NestleSpain2026-05-08Chanay, Jeffrey A Esq PROPOSAL22Elwin Sharvill
1042Sinclair WaycottItaly2026-05-10Morlong Associates UNQUALIFIED96Elwin Sharvill
1043Antonio CaudyItaly2026-04-22King, Christopher A Esq UNQUALIFIED40Asiya Javayant
1044Nicolas IturbideUnited Kingdom2026-05-05Chanay, Jeffrey A Esq UNQUALIFIED83Asiya Javayant
1045David DarakjyItaly2026-04-26Truhlar And Truhlar Attys QUALIFIED95Ioni Bowcher
1046Rodrigues CampainGermany2026-04-19Chapman, Ross E Esq PROPOSAL71Bernardo Dominic
1047Izzy GarufiAustralia2026-04-27Printing Dimensions QUALIFIED59Ioni Bowcher
1048Leon OldroydIndia2026-05-01Feiner Bros UNQUALIFIED94Asiya Javayant
1049Greenwood BologniaBrazil2026-04-18Benton, John B Jr UNQUALIFIED95Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyItalyIoni Bowcher QUALIFIED
Jennifer AmigonUnited KingdomAnna Fali UNQUALIFIED
Deepesh ChuiCanadaAnna Fali PROPOSAL
Jefferson SchemmerFranceIoni Bowcher NEGOTIATION
Cody SaylorsSpainOnyama Limba PROPOSAL
David DarakjyAustraliaXuxue Feng NEGOTIATION
Jennifer AmigonGermanyAnna Fali QUALIFIED
Ivar PaprockiRussiaIoni Bowcher PROPOSAL
Leja CaldareraItalyAnna Fali NEGOTIATION
Kadeem FlosiArgentinaIvan Magalhaes NEGOTIATION
Antonio CaudySpainStephen Shaw NEGOTIATION
Alejandro PerinRussiaAnna Fali QUALIFIED
Clifford RimGermanyBernardo Dominic QUALIFIED
Francesco ShinkoArgentinaIoni Bowcher UNQUALIFIED
Mayumi KolmetzRussiaAmy Elsner NEGOTIATION
Silvio SlusarskiArgentinaElwin Sharvill NEGOTIATION
Smith GlickBrazilIoni Bowcher QUALIFIED
Ricardo GauchoFranceAsiya Javayant UNQUALIFIED
Antonio CaudyItalyOnyama Limba RENEWAL
Faith GillianUnited KingdomElwin Sharvill NEW
Alejandro PerinGermanyAsiya Javayant UNQUALIFIED
Faith GillianGermanyElwin Sharvill PROPOSAL
Costa DilliardFranceAmy Elsner RENEWAL
Darci PoquetteCanadaStephen Shaw NEGOTIATION
Nicolas IturbideSpainAsiya Javayant NEGOTIATION
Leon OldroydCanadaAsiya Javayant QUALIFIED
Tony FollerCanadaAmy Elsner QUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Wickens NestleAustraliaAnna Fali QUALIFIED
Octavia MaletCanadaOnyama Limba RENEWAL
Mayumi KolmetzArgentinaAsiya Javayant PROPOSAL
Izzy GarufiCanadaAsiya Javayant QUALIFIED
Octavia MaletGermanyIoni Bowcher UNQUALIFIED
Clifford RimCanadaIvan Magalhaes PROPOSAL
Cody SaylorsCanadaIvan Magalhaes PROPOSAL
Maria MarrierJapanStephen Shaw PROPOSAL
David DarakjySpainElwin Sharvill RENEWAL
Emily WhobreyGermanyAmy Elsner UNQUALIFIED
Darci PoquetteCanadaOnyama Limba QUALIFIED
Leon OldroydArgentinaAsiya Javayant NEGOTIATION
Ricardo GauchoIndiaBernardo Dominic NEGOTIATION
Mujtaba NickaRussiaIoni Bowcher NEW
Misaki RoysterGermanyStephen Shaw NEGOTIATION
Smith GlickRussiaStephen Shaw NEW
Leon OldroydJapanBernardo Dominic UNQUALIFIED
Alejandro PerinRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamItalyBernardo Dominic PROPOSAL
Kadeem FlosiIndiaAsiya Javayant NEGOTIATION
Aruna FigeroaAustraliaIvan Magalhaes NEGOTIATION
Ashley DoeBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Ivar Paprocki
Isabel Bowley
Maisha Rulapaugh
Ricardo Gaucho
Antonio Caudy
Salvatore Stockham
Costa Dilliard
Octavia Malet
Aika Inouye
Faith Gillian
Johnson Sergi
Deepesh Chui
Maisha Rulapaugh
Mayumi Kolmetz
Ivar Paprocki
Murillo Malet
Maria Marrier
Jeanfrancois Venere
Faith Gillian
Jones Vocelka
Claire Tollner
Ashley Doe
Cody Saylors
Darci Poquette
Darci Poquette
Alejandro Perin
Salvatore Stockham
Jones Vocelka
Tony Foller
Arvin Albares
Alejandro Perin
Nicolas Iturbide
Stacey Maclead
Greenwood Bolognia
Faith Gillian
Faith Gillian
Greenwood Bolognia
Ivar Paprocki
Alejandro Perin
Jeanfrancois Venere
Faith Gillian
David Darakjy
Arvin Albares
Jones Vocelka
Octavia Malet
Jeanfrancois Venere
Isabel Bowley
Stacey Maclead
Ivar Paprocki
Arvin Albares
IdCountryDate
1000France2026-05-13
1001Australia2026-05-02
1002Russia2026-04-30
1003Japan2026-04-27
1004Russia2026-04-20
1005Argentina2026-05-04
1006Spain2026-05-04
1007Brazil2026-04-25
1008Argentina2026-04-28
1009Argentina2026-05-02
1010France2026-04-28
1011France2026-04-24
1012Canada2026-04-25
1013Germany2026-04-28
1014Russia2026-04-25
1015Italy2026-04-26
1016Russia2026-05-08
1017United Kingdom2026-04-25
1018Spain2026-04-23
1019India2026-05-15
1020Australia2026-05-05
1021Spain2026-05-05
1022Germany2026-04-30
1023Russia2026-04-18
1024Italy2026-04-16
1025Australia2026-04-29
1026Australia2026-05-03
1027Canada2026-04-21
1028Brazil2026-05-08
1029Canada2026-04-27
1030Spain2026-05-11
1031Italy2026-05-04
1032Germany2026-04-18
1033Spain2026-05-12
1034Brazil2026-05-03
1035Brazil2026-04-16
1036India2026-04-29
1037Japan2026-04-19
1038India2026-04-18
1039Japan2026-04-27
1040Australia2026-04-25
1041Italy2026-04-24
1042Russia2026-04-25
1043Germany2026-04-20
1044Brazil2026-04-25
1045Russia2026-04-30
1046Germany2026-05-02
1047Spain2026-05-10
1048Australia2026-04-27
1049Australia2026-05-10

On-Demand Data

NameIdCountryDate
Murillo Malet1000France2026-05-05
Salvatore Stockham1001United Kingdom2026-05-11
Misaki Royster1002Canada2026-05-14
Juan Wieser1003Canada2026-05-05
Nicolas Iturbide1004Germany2026-04-27
Maria Marrier1005Spain2026-05-15
Jennifer Amigon1006Japan2026-05-04
Leon Oldroyd1007United Kingdom2026-04-22
Aditya Kusko1008India2026-04-21
Francesco Shinko1009Spain2026-04-19
Wickens Nestle1010Japan2026-04-20
Alejandro Perin1011Argentina2026-05-05
Maria Marrier1012India2026-05-04
Kadeem Flosi1013Australia2026-04-24
Ivar Paprocki1014Spain2026-05-12
Leja Caldarera1015Japan2026-05-14
Tony Foller1016Brazil2026-05-02
Murillo Malet1017Japan2026-04-25
David Darakjy1018United Kingdom2026-05-15
Kaitlin Ostrosky1019Australia2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiAustraliaIoni Bowcher NEGOTIATION
Stacey MacleadJapanAsiya Javayant RENEWAL
Aika InouyeIndiaAmy Elsner PROPOSAL
Murillo MaletAustraliaAsiya Javayant PROPOSAL
Octavia MaletGermanyAmy Elsner PROPOSAL
Alejandro PerinCanadaAmy Elsner QUALIFIED
Jeanfrancois VenereFranceAsiya Javayant RENEWAL
Murillo MaletBrazilAsiya Javayant UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali NEW
Silvio SlusarskiBrazilAsiya Javayant PROPOSAL
Mayumi KolmetzBrazilIvan Magalhaes PROPOSAL
Faith GillianArgentinaAsiya Javayant NEGOTIATION
Adams MorascaRussiaIvan Magalhaes RENEWAL
Mayumi KolmetzFranceAmy Elsner PROPOSAL
Mayumi KolmetzAustraliaElwin Sharvill NEGOTIATION
Johnson SergiItalyAsiya Javayant UNQUALIFIED
Kaitlin OstroskyGermanyStephen Shaw UNQUALIFIED
Greenwood BologniaCanadaIvan Magalhaes UNQUALIFIED
Rodrigues CampainJapanIoni Bowcher QUALIFIED
Murillo MaletUnited KingdomElwin Sharvill NEW
Ivar PaprockiUnited KingdomElwin Sharvill QUALIFIED
Ivar PaprockiSpainBernardo Dominic NEGOTIATION
Murillo MaletGermanyOnyama Limba UNQUALIFIED
Claire TollnerJapanAsiya Javayant RENEWAL
Emily WhobreyGermanyStephen Shaw QUALIFIED
Emily WhobreyBrazilElwin Sharvill QUALIFIED
Francesco ShinkoCanadaAsiya Javayant NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill NEGOTIATION
James ButtJapanAmy Elsner QUALIFIED
Murillo MaletItalyIoni Bowcher NEGOTIATION
Costa DilliardRussiaIoni Bowcher UNQUALIFIED
Maria MarrierRussiaAsiya Javayant UNQUALIFIED
Arvin AlbaresGermanyAnna Fali QUALIFIED
Sinclair WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair WaycottGermanyBernardo Dominic UNQUALIFIED
Isabel BowleyIndiaAsiya Javayant NEW
Costa DilliardCanadaIvan Magalhaes NEW
Claire TollnerCanadaAnna Fali RENEWAL
Jones VocelkaSpainAnna Fali UNQUALIFIED
Morrow RutaJapanIvan Magalhaes RENEWAL

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