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
Cody SaylorsArgentinaAmy Elsner RENEWAL
Morrow RutaJapanXuxue Feng NEW
Costa DilliardRussiaAmy Elsner RENEWAL
Mayumi KolmetzGermanyBernardo Dominic QUALIFIED
Wickens NestleJapanXuxue Feng NEW
David DarakjyBrazilAsiya Javayant RENEWAL
Stacey MacleadItalyAsiya Javayant UNQUALIFIED
Claire TollnerSpainOnyama Limba UNQUALIFIED
Costa DilliardUnited KingdomOnyama Limba PROPOSAL
David DarakjyFranceOnyama Limba RENEWAL
Emily WhobreyRussiaElwin Sharvill NEGOTIATION
Cody SaylorsCanadaElwin Sharvill NEGOTIATION
Jennifer AmigonFranceAsiya Javayant PROPOSAL
Ivar PaprockiCanadaAnna Fali RENEWAL
Adams MorascaUnited KingdomElwin Sharvill NEGOTIATION
Kadeem FlosiCanadaAsiya Javayant NEGOTIATION
Deepesh ChuiRussiaAnna Fali UNQUALIFIED
Wickens NestleAustraliaAmy Elsner UNQUALIFIED
Francesco ShinkoIndiaIoni Bowcher QUALIFIED
Greenwood BologniaItalyAnna Fali NEGOTIATION
Maisha RulapaughItalyOnyama Limba QUALIFIED
Wickens NestleUnited KingdomXuxue Feng NEW
Faith GillianJapanElwin Sharvill QUALIFIED
Mayumi KolmetzArgentinaOnyama Limba PROPOSAL
Rodrigues CampainBrazilIoni Bowcher UNQUALIFIED
Ivar PaprockiArgentinaOnyama Limba RENEWAL
Ivar PaprockiGermanyIoni Bowcher NEGOTIATION
Salvatore StockhamSpainAmy Elsner PROPOSAL
Julie StensethCanadaBernardo Dominic NEW
Silvio SlusarskiAustraliaAmy Elsner NEGOTIATION
Octavia MaletGermanyXuxue Feng UNQUALIFIED
David DarakjyIndiaXuxue Feng PROPOSAL
Clifford RimBrazilOnyama Limba UNQUALIFIED
Ricardo GauchoItalyAnna Fali QUALIFIED
Claire TollnerIndiaElwin Sharvill RENEWAL
Mujtaba NickaBrazilBernardo Dominic QUALIFIED
Mayumi KolmetzUnited KingdomIoni Bowcher QUALIFIED
Ricardo GauchoCanadaAsiya Javayant NEW
Jennifer AmigonCanadaStephen Shaw QUALIFIED
Salvatore StockhamCanadaOnyama Limba RENEWAL
Izzy GarufiArgentinaBernardo Dominic QUALIFIED
Leon OldroydIndiaOnyama Limba QUALIFIED
Alejandro PerinRussiaBernardo Dominic NEGOTIATION
Aditya KuskoSpainAnna Fali PROPOSAL
Ricardo GauchoSpainIoni Bowcher RENEWAL
Julie StensethSpainAmy Elsner PROPOSAL
Octavia MaletAustraliaAsiya Javayant NEGOTIATION
Alejandro PerinSpainBernardo Dominic QUALIFIED
Chavez BriddickAustraliaAnna Fali PROPOSAL
Aditya KuskoSpainAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson SergiSpainStephen Shaw NEW
Emily WhobreyRussiaElwin Sharvill UNQUALIFIED
Ivar PaprockiGermanyOnyama Limba UNQUALIFIED
Chavez BriddickCanadaIoni Bowcher NEGOTIATION
Aika InouyeItalyElwin Sharvill UNQUALIFIED
Maisha RulapaughItalyOnyama Limba QUALIFIED
Maisha RulapaughRussiaIvan Magalhaes NEGOTIATION
Maria MarrierSpainIvan Magalhaes RENEWAL
Ricardo GauchoIndiaIvan Magalhaes RENEWAL
Murillo MaletJapanAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereUnited Kingdom2026-04-14Commercial Press RENEWAL10Elwin Sharvill
1001Nicolas IturbideIndia2026-04-29Benton, John B Jr PROPOSAL24Elwin Sharvill
1002Mayumi KolmetzAustralia2026-04-17Chemel, James L Cpa RENEWAL54Xuxue Feng
1003Jones VocelkaGermany2026-05-04Morlong Associates QUALIFIED19Ivan Magalhaes
1004Wickens NestleItaly2026-04-17King, Christopher A Esq NEW47Amy Elsner
1005Leja CaldareraCanada2026-05-02Rangoni Of Florence PROPOSAL90Onyama Limba
1006Ashley DoeIndia2026-04-24Printing Dimensions UNQUALIFIED43Asiya Javayant
1007Emily WhobreyFrance2026-05-06Morlong Associates QUALIFIED65Xuxue Feng
1008Smith GlickGermany2026-05-01Rousseaux, Michael Esq PROPOSAL46Ivan Magalhaes
1009Maisha RulapaughAustralia2026-05-07Benton, John B Jr PROPOSAL58Anna Fali
1010Munro FerenczCanada2026-04-20Chemel, James L Cpa UNQUALIFIED52Elwin Sharvill
1011Maria MarrierUnited Kingdom2026-05-12Commercial Press NEGOTIATION84Onyama Limba
1012Alejandro PerinFrance2026-04-16Benton, John B Jr QUALIFIED55Ivan Magalhaes
1013Tony FollerBrazil2026-05-09Feltz Printing Service NEW70Elwin Sharvill
1014Maisha RulapaughBrazil2026-04-19Buckley Miller Wright UNQUALIFIED44Amy Elsner
1015Isabel BowleyGermany2026-04-13Chanay, Jeffrey A Esq PROPOSAL41Onyama Limba
1016Jones VocelkaArgentina2026-04-14Commercial Press QUALIFIED44Ioni Bowcher
1017Munro FerenczArgentina2026-04-14Chapman, Ross E Esq NEGOTIATION43Amy Elsner
1018Wickens NestleFrance2026-05-10King, Christopher A Esq UNQUALIFIED11Asiya Javayant
1019Julie StensethBrazil2026-04-17Commercial Press NEGOTIATION21Ivan Magalhaes
1020Sinclair WaycottFrance2026-04-26Feiner Bros NEGOTIATION5Onyama Limba
1021Aditya KuskoFrance2026-04-24Printing Dimensions NEW80Xuxue Feng
1022Nicolas IturbideCanada2026-05-06King, Christopher A Esq NEW1Amy Elsner
1023David DarakjyCanada2026-04-28Truhlar And Truhlar Attys UNQUALIFIED65Xuxue Feng
1024Kadeem FlosiGermany2026-05-03Chapman, Ross E Esq NEGOTIATION89Anna Fali
1025Aditya KuskoAustralia2026-04-29Chapman, Ross E Esq PROPOSAL99Xuxue Feng
1026Leja CaldareraSpain2026-04-27Chemel, James L Cpa PROPOSAL17Elwin Sharvill
1027Ashley DoeFrance2026-05-03Truhlar And Truhlar Attys PROPOSAL37Onyama Limba
1028Chavez BriddickFrance2026-04-24Truhlar And Truhlar Attys QUALIFIED0Bernardo Dominic
1029Ricardo GauchoAustralia2026-04-20Benton, John B Jr NEW56Anna Fali
1030Murillo MaletIndia2026-04-26King, Christopher A Esq NEGOTIATION6Ivan Magalhaes
1031Adams MorascaJapan2026-04-22Chemel, James L Cpa RENEWAL24Xuxue Feng
1032Alejandro PerinIndia2026-04-28King, Christopher A Esq RENEWAL75Elwin Sharvill
1033Jeanfrancois VenereAustralia2026-05-04Truhlar And Truhlar Attys NEW97Elwin Sharvill
1034Ivar PaprockiCanada2026-04-15King, Christopher A Esq NEGOTIATION2Ioni Bowcher
1035Sinclair WaycottAustralia2026-05-08Chemel, James L Cpa UNQUALIFIED8Onyama Limba
1036Maria MarrierCanada2026-04-22Dorl, James J Esq RENEWAL39Onyama Limba
1037Munro FerenczSpain2026-04-14Commercial Press RENEWAL67Ioni Bowcher
1038Stacey MacleadIndia2026-04-27Feiner Bros RENEWAL41Ivan Magalhaes
1039Jeanfrancois VenereRussia2026-05-07Rangoni Of Florence UNQUALIFIED79Stephen Shaw
1040Julie StensethUnited Kingdom2026-05-07Chapman, Ross E Esq QUALIFIED17Anna Fali
1041Kaitlin OstroskyRussia2026-04-19Printing Dimensions RENEWAL55Ivan Magalhaes
1042Adams MorascaArgentina2026-05-09Dorl, James J Esq NEGOTIATION44Xuxue Feng
1043Isabel BowleyUnited Kingdom2026-05-12Chemel, James L Cpa UNQUALIFIED15Ivan Magalhaes
1044Misaki RoysterIndia2026-04-20Chemel, James L Cpa RENEWAL65Anna Fali
1045Smith GlickArgentina2026-05-09Printing Dimensions QUALIFIED93Elwin Sharvill
1046Kaitlin OstroskyGermany2026-05-04Benton, John B Jr RENEWAL69Onyama Limba
1047Sinclair WaycottAustralia2026-04-29Feiner Bros QUALIFIED1Asiya Javayant
1048Maria MarrierBrazil2026-04-20Truhlar And Truhlar Attys PROPOSAL61Ivan Magalhaes
1049Jennifer AmigonUnited Kingdom2026-04-27Commercial Press UNQUALIFIED30Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleRussiaStephen Shaw PROPOSAL
Cody SaylorsArgentinaAnna Fali RENEWAL
Chavez BriddickUnited KingdomAsiya Javayant PROPOSAL
Maisha RulapaughIndiaAsiya Javayant NEGOTIATION
Ashley DoeAustraliaStephen Shaw NEGOTIATION
Misaki RoysterBrazilXuxue Feng NEW
Costa DilliardGermanyStephen Shaw RENEWAL
Smith GlickFranceBernardo Dominic NEW
Leon OldroydBrazilAmy Elsner UNQUALIFIED
Clifford RimArgentinaElwin Sharvill NEGOTIATION
Maisha RulapaughCanadaAsiya Javayant RENEWAL
Clifford RimJapanBernardo Dominic PROPOSAL
Sinclair WaycottAustraliaOnyama Limba NEGOTIATION
Francesco ShinkoJapanIvan Magalhaes NEGOTIATION
Jones VocelkaItalyAnna Fali PROPOSAL
Salvatore StockhamIndiaAnna Fali UNQUALIFIED
Julie StensethUnited KingdomAsiya Javayant UNQUALIFIED
Julie StensethIndiaStephen Shaw PROPOSAL
Aditya KuskoAustraliaElwin Sharvill PROPOSAL
Maisha RulapaughSpainAsiya Javayant QUALIFIED
Octavia MaletSpainAmy Elsner RENEWAL
Aditya KuskoAustraliaOnyama Limba UNQUALIFIED
Kadeem FlosiAustraliaIvan Magalhaes RENEWAL
Mayumi KolmetzRussiaAsiya Javayant PROPOSAL
Stacey MacleadItalyIvan Magalhaes PROPOSAL
Juan WieserAustraliaBernardo Dominic PROPOSAL
Kaitlin OstroskySpainXuxue Feng NEW
Kaitlin OstroskyArgentinaAmy Elsner NEW
Claire TollnerCanadaAsiya Javayant QUALIFIED
Johnson SergiAustraliaIvan Magalhaes RENEWAL
Salvatore StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Kaitlin OstroskyGermanyXuxue Feng UNQUALIFIED
Maria MarrierBrazilOnyama Limba RENEWAL
Izzy GarufiFranceOnyama Limba NEGOTIATION
Antonio CaudyRussiaAsiya Javayant NEGOTIATION
Arvin AlbaresArgentinaXuxue Feng PROPOSAL
Aditya KuskoItalyIvan Magalhaes RENEWAL
Juan WieserJapanBernardo Dominic RENEWAL
Mujtaba NickaBrazilBernardo Dominic NEGOTIATION
Leja CaldareraJapanBernardo Dominic NEGOTIATION
Salvatore StockhamAustraliaAnna Fali QUALIFIED
Munro FerenczUnited KingdomXuxue Feng QUALIFIED
Stacey MacleadRussiaIoni Bowcher QUALIFIED
James ButtJapanIvan Magalhaes PROPOSAL
Isabel BowleyUnited KingdomOnyama Limba QUALIFIED
Cody SaylorsUnited KingdomStephen Shaw PROPOSAL
Smith GlickUnited KingdomOnyama Limba NEW
Alejandro PerinAustraliaXuxue Feng PROPOSAL
Tony FollerIndiaXuxue Feng NEW
Stacey MacleadCanadaStephen Shaw QUALIFIED
Frozen Columns
Name
Tony Foller
James Butt
Julie Stenseth
Leon Oldroyd
Claire Tollner
Cody Saylors
Sinclair Waycott
Mayumi Kolmetz
Alejandro Perin
Leja Caldarera
Sinclair Waycott
Leja Caldarera
Stacey Maclead
Isabel Bowley
Antonio Caudy
Octavia Malet
Chavez Briddick
Ashley Doe
Deepesh Chui
Kaitlin Ostrosky
Munro Ferencz
Aika Inouye
Darci Poquette
Morrow Ruta
Kadeem Flosi
Francesco Shinko
Maisha Rulapaugh
Darci Poquette
Deepesh Chui
Misaki Royster
Emily Whobrey
Tony Foller
David Darakjy
Sinclair Waycott
Leja Caldarera
Arvin Albares
Rodrigues Campain
Izzy Garufi
Johnson Sergi
Isabel Bowley
Silvio Slusarski
Isabel Bowley
Jennifer Amigon
Faith Gillian
Isabel Bowley
Leja Caldarera
Jefferson Schemmer
Aruna Figeroa
Jefferson Schemmer
Cody Saylors
IdCountryDate
1000Australia2026-04-19
1001Australia2026-04-17
1002Canada2026-05-09
1003Brazil2026-05-08
1004Spain2026-04-25
1005Australia2026-04-20
1006Spain2026-04-20
1007Canada2026-05-05
1008Australia2026-05-11
1009India2026-04-18
1010Japan2026-05-11
1011Russia2026-04-23
1012France2026-05-10
1013Spain2026-05-09
1014United Kingdom2026-04-30
1015Canada2026-04-13
1016Brazil2026-04-28
1017Australia2026-04-14
1018Russia2026-04-13
1019France2026-05-07
1020Argentina2026-04-22
1021Australia2026-04-26
1022Germany2026-04-25
1023Germany2026-04-27
1024Germany2026-05-04
1025Italy2026-04-17
1026Russia2026-05-02
1027India2026-04-24
1028France2026-04-19
1029Spain2026-04-15
1030Brazil2026-05-12
1031France2026-05-02
1032United Kingdom2026-04-25
1033United Kingdom2026-04-14
1034Argentina2026-05-04
1035Brazil2026-04-22
1036Brazil2026-05-09
1037France2026-04-20
1038Spain2026-05-03
1039Japan2026-04-18
1040Russia2026-04-25
1041Japan2026-05-01
1042United Kingdom2026-04-25
1043Australia2026-05-01
1044Australia2026-04-23
1045United Kingdom2026-04-30
1046Canada2026-05-04
1047Argentina2026-04-23
1048Canada2026-04-27
1049France2026-04-21

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Russia2026-04-26
Claire Tollner1001France2026-04-27
Greenwood Bolognia1002Spain2026-05-05
Leon Oldroyd1003Brazil2026-04-14
Maisha Rulapaugh1004France2026-04-13
Morrow Ruta1005Argentina2026-04-18
Francesco Shinko1006India2026-05-05
Isabel Bowley1007Australia2026-04-25
Aditya Kusko1008Brazil2026-05-12
Julie Stenseth1009France2026-05-12
Izzy Garufi1010Australia2026-04-19
Costa Dilliard1011Russia2026-05-03
Wickens Nestle1012Japan2026-04-20
Chavez Briddick1013Spain2026-05-02
Salvatore Stockham1014France2026-04-24
Chavez Briddick1015France2026-04-17
Emily Whobrey1016Brazil2026-04-23
Darci Poquette1017Brazil2026-04-23
David Darakjy1018Japan2026-04-28
David Darakjy1019Canada2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaArgentinaAnna Fali UNQUALIFIED
Leon OldroydGermanyIvan Magalhaes NEW
Ivar PaprockiSpainOnyama Limba QUALIFIED
James ButtJapanXuxue Feng UNQUALIFIED
Greenwood BologniaFranceAnna Fali NEGOTIATION
Wickens NestleArgentinaAsiya Javayant RENEWAL
David DarakjyRussiaOnyama Limba PROPOSAL
Alejandro PerinJapanAnna Fali QUALIFIED
Murillo MaletBrazilOnyama Limba PROPOSAL
Jennifer AmigonSpainIvan Magalhaes QUALIFIED
Arvin AlbaresBrazilOnyama Limba PROPOSAL
Maria MarrierFranceAsiya Javayant QUALIFIED
Deepesh ChuiItalyStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw PROPOSAL
Nicolas IturbideGermanyStephen Shaw NEW
Kadeem FlosiAustraliaIvan Magalhaes QUALIFIED
Stacey MacleadFranceAnna Fali UNQUALIFIED
Aruna FigeroaCanadaAsiya Javayant RENEWAL
Izzy GarufiGermanyXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaIvan Magalhaes RENEWAL
Cody SaylorsRussiaOnyama Limba PROPOSAL
Leja CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Wickens NestleRussiaAmy Elsner QUALIFIED
Julie StensethRussiaOnyama Limba QUALIFIED
Francesco ShinkoItalyAsiya Javayant QUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Francesco ShinkoSpainElwin Sharvill RENEWAL
Kaitlin OstroskyBrazilStephen Shaw UNQUALIFIED
David DarakjyRussiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiArgentinaAsiya Javayant PROPOSAL
Aruna FigeroaSpainOnyama Limba PROPOSAL
Ivar PaprockiBrazilXuxue Feng QUALIFIED
Aditya KuskoItalyAsiya Javayant RENEWAL
Chavez BriddickBrazilXuxue Feng NEGOTIATION
Cody SaylorsGermanyStephen Shaw NEW
Emily WhobreyArgentinaStephen Shaw NEW
Wickens NestleSpainAmy Elsner RENEWAL
Faith GillianSpainXuxue Feng NEW
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
Aditya KuskoGermanyAsiya Javayant 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>