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
Murillo MaletRussiaElwin Sharvill UNQUALIFIED
Smith GlickIndiaAmy Elsner PROPOSAL
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
Salvatore StockhamArgentinaStephen Shaw PROPOSAL
Misaki RoysterGermanyAsiya Javayant QUALIFIED
Murillo MaletSpainIvan Magalhaes RENEWAL
Sinclair WaycottArgentinaAsiya Javayant NEGOTIATION
Stacey MacleadGermanyIoni Bowcher UNQUALIFIED
Wickens NestleRussiaIvan Magalhaes PROPOSAL
Murillo MaletGermanyElwin Sharvill RENEWAL
Wickens NestleItalyBernardo Dominic NEGOTIATION
Adams MorascaUnited KingdomElwin Sharvill NEW
Mayumi KolmetzUnited KingdomElwin Sharvill RENEWAL
Cody SaylorsRussiaIvan Magalhaes RENEWAL
Leja CaldareraJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereArgentinaStephen Shaw RENEWAL
Murillo MaletGermanyAnna Fali QUALIFIED
Maisha RulapaughArgentinaIoni Bowcher RENEWAL
Morrow RutaArgentinaStephen Shaw NEW
Johnson SergiJapanIoni Bowcher QUALIFIED
Sinclair WaycottRussiaOnyama Limba UNQUALIFIED
Rodrigues CampainRussiaStephen Shaw RENEWAL
Octavia MaletFranceElwin Sharvill PROPOSAL
David DarakjyRussiaIvan Magalhaes RENEWAL
Faith GillianRussiaAsiya Javayant RENEWAL
Kaitlin OstroskyCanadaAnna Fali NEW
Morrow RutaSpainIvan Magalhaes NEW
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Juan WieserBrazilElwin Sharvill PROPOSAL
James ButtIndiaIvan Magalhaes PROPOSAL
Darci PoquetteFranceXuxue Feng RENEWAL
Jefferson SchemmerIndiaAmy Elsner NEW
Julie StensethItalyElwin Sharvill PROPOSAL
Jennifer AmigonIndiaXuxue Feng NEGOTIATION
Kaitlin OstroskyItalyAsiya Javayant QUALIFIED
Chavez BriddickBrazilAsiya Javayant UNQUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng NEGOTIATION
Francesco ShinkoGermanyIoni Bowcher QUALIFIED
Julie StensethJapanAmy Elsner NEGOTIATION
Julie StensethIndiaBernardo Dominic UNQUALIFIED
Francesco ShinkoBrazilElwin Sharvill PROPOSAL
Ricardo GauchoSpainXuxue Feng PROPOSAL
Jefferson SchemmerFranceAnna Fali NEGOTIATION
Rodrigues CampainFranceAsiya Javayant RENEWAL
Isabel BowleySpainOnyama Limba NEW
Costa DilliardAustraliaAmy Elsner QUALIFIED
Julie StensethUnited KingdomStephen Shaw UNQUALIFIED
Morrow RutaIndiaAsiya Javayant UNQUALIFIED
Morrow RutaBrazilOnyama Limba RENEWAL
Johnson SergiItalyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja CaldareraJapanOnyama Limba QUALIFIED
Ashley DoeIndiaIvan Magalhaes QUALIFIED
Misaki RoysterFranceIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilIoni Bowcher UNQUALIFIED
Chavez BriddickItalyAnna Fali QUALIFIED
Clifford RimBrazilIoni Bowcher RENEWAL
Octavia MaletBrazilXuxue Feng UNQUALIFIED
Maisha RulapaughFranceXuxue Feng NEGOTIATION
James ButtUnited KingdomXuxue Feng QUALIFIED
Costa DilliardBrazilStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczFrance2026-03-23Rangoni Of Florence UNQUALIFIED81Asiya Javayant
1001Leon OldroydBrazil2026-04-05Rangoni Of Florence QUALIFIED18Amy Elsner
1002Stacey MacleadIndia2026-04-03Chapman, Ross E Esq RENEWAL45Elwin Sharvill
1003Salvatore StockhamUnited Kingdom2026-04-15Buckley Miller Wright QUALIFIED98Ivan Magalhaes
1004Sinclair WaycottItaly2026-04-02Morlong Associates RENEWAL37Bernardo Dominic
1005Jones VocelkaIndia2026-04-13Feltz Printing Service NEW86Ivan Magalhaes
1006Kaitlin OstroskyIndia2026-04-08Chapman, Ross E Esq PROPOSAL76Bernardo Dominic
1007Clifford RimAustralia2026-04-08Dorl, James J Esq UNQUALIFIED87Elwin Sharvill
1008Maisha RulapaughItaly2026-04-04Buckley Miller Wright QUALIFIED71Anna Fali
1009Ashley DoeIndia2026-03-22King, Christopher A Esq NEGOTIATION80Onyama Limba
1010Antonio CaudySpain2026-03-30Commercial Press QUALIFIED72Stephen Shaw
1011Chavez BriddickSpain2026-04-01Commercial Press NEGOTIATION70Xuxue Feng
1012Mujtaba NickaRussia2026-04-15Truhlar And Truhlar Attys QUALIFIED91Asiya Javayant
1013Kadeem FlosiFrance2026-03-30King, Christopher A Esq PROPOSAL65Elwin Sharvill
1014Misaki RoysterRussia2026-04-10Printing Dimensions UNQUALIFIED83Ioni Bowcher
1015Jones VocelkaUnited Kingdom2026-04-15Commercial Press NEW50Asiya Javayant
1016Leon OldroydCanada2026-03-30Chanay, Jeffrey A Esq UNQUALIFIED84Xuxue Feng
1017Johnson SergiIndia2026-04-01Chemel, James L Cpa RENEWAL94Xuxue Feng
1018Johnson SergiCanada2026-03-28Chemel, James L Cpa PROPOSAL56Onyama Limba
1019Aika InouyeAustralia2026-03-23Printing Dimensions PROPOSAL2Ioni Bowcher
1020James ButtAustralia2026-04-10Rangoni Of Florence RENEWAL62Ioni Bowcher
1021David DarakjyJapan2026-03-27Benton, John B Jr QUALIFIED28Amy Elsner
1022Smith GlickBrazil2026-03-25Morlong Associates RENEWAL30Ivan Magalhaes
1023Arvin AlbaresArgentina2026-04-02Feiner Bros QUALIFIED57Ioni Bowcher
1024Mujtaba NickaJapan2026-03-25Rangoni Of Florence QUALIFIED52Ioni Bowcher
1025Jeanfrancois VenereCanada2026-04-06Chemel, James L Cpa UNQUALIFIED19Asiya Javayant
1026Kadeem FlosiArgentina2026-03-24Rousseaux, Michael Esq UNQUALIFIED89Asiya Javayant
1027Jefferson SchemmerJapan2026-04-15Truhlar And Truhlar Attys NEW74Stephen Shaw
1028Misaki RoysterBrazil2026-04-12Chapman, Ross E Esq NEW89Amy Elsner
1029Maisha RulapaughCanada2026-04-13Rangoni Of Florence RENEWAL85Xuxue Feng
1030Ivar PaprockiAustralia2026-04-13Truhlar And Truhlar Attys PROPOSAL95Onyama Limba
1031Chavez BriddickSpain2026-04-05Buckley Miller Wright QUALIFIED80Onyama Limba
1032Juan WieserSpain2026-04-20Feiner Bros PROPOSAL10Xuxue Feng
1033Arvin AlbaresJapan2026-04-04Chanay, Jeffrey A Esq NEW57Ivan Magalhaes
1034Jefferson SchemmerSpain2026-04-10Truhlar And Truhlar Attys UNQUALIFIED91Ivan Magalhaes
1035Silvio SlusarskiRussia2026-04-15Rousseaux, Michael Esq RENEWAL14Asiya Javayant
1036Johnson SergiGermany2026-04-16Benton, John B Jr UNQUALIFIED10Amy Elsner
1037Kadeem FlosiCanada2026-03-31Feiner Bros RENEWAL80Xuxue Feng
1038Leon OldroydBrazil2026-03-26King, Christopher A Esq PROPOSAL63Onyama Limba
1039Alejandro PerinRussia2026-04-11Chanay, Jeffrey A Esq PROPOSAL27Onyama Limba
1040Stacey MacleadRussia2026-04-18Commercial Press QUALIFIED27Elwin Sharvill
1041Tony FollerAustralia2026-03-22King, Christopher A Esq UNQUALIFIED72Onyama Limba
1042Johnson SergiArgentina2026-04-14Benton, John B Jr RENEWAL3Amy Elsner
1043Adams MorascaJapan2026-03-26Chapman, Ross E Esq RENEWAL68Anna Fali
1044David DarakjyItaly2026-04-10Benton, John B Jr NEW66Xuxue Feng
1045Clifford RimAustralia2026-04-04Rousseaux, Michael Esq RENEWAL44Bernardo Dominic
1046Costa DilliardBrazil2026-04-07Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1047Maria MarrierFrance2026-04-14Chanay, Jeffrey A Esq NEGOTIATION22Stephen Shaw
1048Jeanfrancois VenereBrazil2026-03-24Morlong Associates NEGOTIATION76Xuxue Feng
1049Cody SaylorsItaly2026-03-29Rousseaux, Michael Esq QUALIFIED50Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonUnited KingdomAsiya Javayant QUALIFIED
Cody SaylorsSpainStephen Shaw PROPOSAL
Leja CaldareraBrazilAmy Elsner QUALIFIED
Darci PoquetteRussiaStephen Shaw NEW
Kaitlin OstroskyJapanBernardo Dominic PROPOSAL
Isabel BowleyIndiaXuxue Feng QUALIFIED
Wickens NestleCanadaIoni Bowcher RENEWAL
Ivar PaprockiItalyElwin Sharvill NEGOTIATION
Greenwood BologniaJapanOnyama Limba UNQUALIFIED
Emily WhobreyJapanOnyama Limba QUALIFIED
Sinclair WaycottJapanIoni Bowcher UNQUALIFIED
Octavia MaletAustraliaStephen Shaw PROPOSAL
Mujtaba NickaRussiaStephen Shaw UNQUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant NEGOTIATION
Cody SaylorsUnited KingdomOnyama Limba NEGOTIATION
Maisha RulapaughSpainStephen Shaw RENEWAL
Sinclair WaycottIndiaStephen Shaw NEW
Mujtaba NickaItalyBernardo Dominic UNQUALIFIED
Alejandro PerinGermanyXuxue Feng NEW
Maisha RulapaughSpainAsiya Javayant NEGOTIATION
Chavez BriddickCanadaElwin Sharvill NEGOTIATION
Chavez BriddickUnited KingdomXuxue Feng NEW
David DarakjyIndiaOnyama Limba QUALIFIED
Silvio SlusarskiBrazilAsiya Javayant PROPOSAL
Rodrigues CampainUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair WaycottItalyElwin Sharvill NEW
Clifford RimRussiaStephen Shaw QUALIFIED
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Cody SaylorsSpainAsiya Javayant QUALIFIED
Silvio SlusarskiJapanAsiya Javayant NEGOTIATION
Emily WhobreyArgentinaStephen Shaw UNQUALIFIED
Clifford RimJapanIoni Bowcher UNQUALIFIED
Leon OldroydBrazilOnyama Limba NEGOTIATION
Alejandro PerinJapanIvan Magalhaes NEGOTIATION
David DarakjyBrazilIvan Magalhaes NEW
Tony FollerGermanyElwin Sharvill NEGOTIATION
Ivar PaprockiItalyStephen Shaw PROPOSAL
Misaki RoysterGermanyOnyama Limba RENEWAL
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Faith GillianUnited KingdomBernardo Dominic NEGOTIATION
Aruna FigeroaBrazilStephen Shaw NEW
Sinclair WaycottCanadaStephen Shaw RENEWAL
Leja CaldareraUnited KingdomStephen Shaw NEW
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Costa DilliardGermanyAnna Fali QUALIFIED
Chavez BriddickBrazilAmy Elsner QUALIFIED
Clifford RimRussiaStephen Shaw RENEWAL
Smith GlickIndiaElwin Sharvill NEGOTIATION
James ButtRussiaOnyama Limba UNQUALIFIED
Jeanfrancois VenereSpainOnyama Limba PROPOSAL
Frozen Columns
Name
Nicolas Iturbide
Kadeem Flosi
Arvin Albares
Claire Tollner
Ashley Doe
Mayumi Kolmetz
Tony Foller
Ivar Paprocki
Arvin Albares
Darci Poquette
Alejandro Perin
Jennifer Amigon
Emily Whobrey
Rodrigues Campain
Jennifer Amigon
Chavez Briddick
Sinclair Waycott
Aditya Kusko
Munro Ferencz
Chavez Briddick
Silvio Slusarski
Stacey Maclead
Aditya Kusko
Aditya Kusko
Nicolas Iturbide
Nicolas Iturbide
Maisha Rulapaugh
Jeanfrancois Venere
Darci Poquette
Jefferson Schemmer
Sinclair Waycott
Chavez Briddick
Misaki Royster
Isabel Bowley
James Butt
Mujtaba Nicka
Wickens Nestle
Misaki Royster
Ashley Doe
Maisha Rulapaugh
Misaki Royster
Wickens Nestle
Rodrigues Campain
Maisha Rulapaugh
Adams Morasca
Sinclair Waycott
Aruna Figeroa
Nicolas Iturbide
Darci Poquette
Aditya Kusko
IdCountryDate
1000Brazil2026-04-14
1001Brazil2026-04-10
1002Germany2026-03-30
1003Brazil2026-04-03
1004Italy2026-03-30
1005Brazil2026-04-14
1006Russia2026-04-08
1007Australia2026-04-10
1008Russia2026-04-10
1009United Kingdom2026-04-07
1010Germany2026-03-24
1011Brazil2026-04-18
1012France2026-04-11
1013Russia2026-03-25
1014Italy2026-04-13
1015Germany2026-04-20
1016Russia2026-04-12
1017Argentina2026-03-27
1018Russia2026-04-18
1019Russia2026-03-25
1020France2026-04-10
1021France2026-03-22
1022Italy2026-04-16
1023Spain2026-04-14
1024France2026-04-20
1025India2026-04-13
1026Argentina2026-03-22
1027Italy2026-04-06
1028Germany2026-04-10
1029India2026-03-27
1030Italy2026-04-10
1031Argentina2026-04-09
1032India2026-03-26
1033Japan2026-04-09
1034Canada2026-04-15
1035Australia2026-04-18
1036Canada2026-04-16
1037Spain2026-04-04
1038Canada2026-03-24
1039Spain2026-04-12
1040Argentina2026-04-08
1041United Kingdom2026-03-27
1042Canada2026-03-30
1043India2026-03-30
1044India2026-04-02
1045Brazil2026-04-18
1046Argentina2026-04-10
1047India2026-03-27
1048Argentina2026-04-11
1049Germany2026-04-18

On-Demand Data

NameIdCountryDate
David Darakjy1000Germany2026-04-17
Leon Oldroyd1001Japan2026-04-12
Faith Gillian1002United Kingdom2026-04-07
Aditya Kusko1003United Kingdom2026-04-19
Misaki Royster1004Germany2026-04-08
Stacey Maclead1005Italy2026-04-13
Maria Marrier1006India2026-04-13
Nicolas Iturbide1007United Kingdom2026-04-01
Nicolas Iturbide1008Brazil2026-03-26
Clifford Rim1009United Kingdom2026-04-08
Jennifer Amigon1010Japan2026-04-05
Clifford Rim1011France2026-03-25
Aditya Kusko1012France2026-04-16
Rodrigues Campain1013Russia2026-03-28
Sinclair Waycott1014Brazil2026-03-28
Costa Dilliard1015Spain2026-04-16
Mujtaba Nicka1016France2026-04-19
Darci Poquette1017Japan2026-04-17
Silvio Slusarski1018Italy2026-04-15
Ivar Paprocki1019Brazil2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeArgentinaElwin Sharvill NEW
Nicolas IturbideIndiaAnna Fali PROPOSAL
Costa DilliardIndiaOnyama Limba RENEWAL
Kaitlin OstroskyIndiaAmy Elsner NEW
Antonio CaudyRussiaXuxue Feng NEGOTIATION
Ivar PaprockiAustraliaOnyama Limba NEGOTIATION
Mujtaba NickaGermanyBernardo Dominic QUALIFIED
Maisha RulapaughItalyAnna Fali NEW
Nicolas IturbideBrazilAmy Elsner UNQUALIFIED
Aruna FigeroaArgentinaAnna Fali NEGOTIATION
Chavez BriddickCanadaAmy Elsner NEW
Morrow RutaAustraliaIoni Bowcher NEGOTIATION
Kaitlin OstroskyItalyOnyama Limba NEW
Ashley DoeUnited KingdomAmy Elsner NEW
Clifford RimAustraliaAsiya Javayant NEW
Misaki RoysterCanadaIoni Bowcher PROPOSAL
Clifford RimArgentinaAmy Elsner UNQUALIFIED
Jennifer AmigonBrazilElwin Sharvill PROPOSAL
Morrow RutaGermanyXuxue Feng QUALIFIED
Alejandro PerinSpainBernardo Dominic QUALIFIED
Mujtaba NickaJapanAmy Elsner NEGOTIATION
Clifford RimAustraliaAnna Fali RENEWAL
Faith GillianItalyBernardo Dominic QUALIFIED
Maria MarrierSpainBernardo Dominic UNQUALIFIED
Octavia MaletItalyAsiya Javayant PROPOSAL
Leon OldroydIndiaXuxue Feng QUALIFIED
Kadeem FlosiRussiaXuxue Feng NEW
Stacey MacleadJapanXuxue Feng RENEWAL
Octavia MaletJapanIvan Magalhaes UNQUALIFIED
Ivar PaprockiItalyAmy Elsner PROPOSAL
Mujtaba NickaCanadaAmy Elsner PROPOSAL
Sinclair WaycottItalyBernardo Dominic PROPOSAL
Smith GlickIndiaAnna Fali QUALIFIED
Adams MorascaArgentinaBernardo Dominic NEGOTIATION
Rodrigues CampainUnited KingdomStephen Shaw PROPOSAL
Tony FollerFranceBernardo Dominic QUALIFIED
Antonio CaudyArgentinaBernardo Dominic NEGOTIATION
Leja CaldareraAustraliaIvan Magalhaes NEW
Kadeem FlosiFranceAmy Elsner QUALIFIED
Leja CaldareraIndiaBernardo Dominic 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>