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
Ricardo GauchoItalyAsiya Javayant NEGOTIATION
Cody SaylorsAustraliaStephen Shaw NEW
Murillo MaletArgentinaBernardo Dominic QUALIFIED
Kadeem FlosiFranceStephen Shaw PROPOSAL
Mujtaba NickaItalyIvan Magalhaes QUALIFIED
David DarakjyAustraliaStephen Shaw PROPOSAL
Mujtaba NickaAustraliaOnyama Limba QUALIFIED
Jones VocelkaCanadaAnna Fali UNQUALIFIED
Cody SaylorsGermanyAmy Elsner QUALIFIED
Ivar PaprockiCanadaAsiya Javayant PROPOSAL
Isabel BowleyUnited KingdomElwin Sharvill NEGOTIATION
Morrow RutaSpainIvan Magalhaes NEGOTIATION
Adams MorascaFranceAnna Fali NEGOTIATION
Faith GillianIndiaOnyama Limba NEGOTIATION
Jones VocelkaItalyBernardo Dominic QUALIFIED
Maria MarrierSpainIoni Bowcher UNQUALIFIED
Silvio SlusarskiAustraliaXuxue Feng UNQUALIFIED
Maria MarrierRussiaAmy Elsner RENEWAL
Smith GlickItalyXuxue Feng PROPOSAL
Claire TollnerGermanyIoni Bowcher RENEWAL
Juan WieserIndiaAsiya Javayant RENEWAL
Mujtaba NickaFranceIvan Magalhaes UNQUALIFIED
Salvatore StockhamUnited KingdomXuxue Feng RENEWAL
Arvin AlbaresIndiaXuxue Feng NEGOTIATION
Jones VocelkaJapanAsiya Javayant UNQUALIFIED
Deepesh ChuiBrazilAsiya Javayant UNQUALIFIED
Emily WhobreyArgentinaAmy Elsner QUALIFIED
Emily WhobreyFranceElwin Sharvill UNQUALIFIED
Jones VocelkaJapanElwin Sharvill QUALIFIED
Kadeem FlosiUnited KingdomIvan Magalhaes PROPOSAL
Ricardo GauchoJapanIvan Magalhaes NEW
Aika InouyeAustraliaIoni Bowcher NEW
Kadeem FlosiFranceElwin Sharvill RENEWAL
Deepesh ChuiFranceAnna Fali RENEWAL
Izzy GarufiRussiaOnyama Limba PROPOSAL
Octavia MaletUnited KingdomIoni Bowcher QUALIFIED
Tony FollerFranceXuxue Feng PROPOSAL
Isabel BowleyUnited KingdomAsiya Javayant QUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw NEGOTIATION
Misaki RoysterIndiaElwin Sharvill UNQUALIFIED
James ButtUnited KingdomBernardo Dominic PROPOSAL
Faith GillianGermanyAnna Fali QUALIFIED
Clifford RimArgentinaAnna Fali PROPOSAL
Aruna FigeroaBrazilAsiya Javayant NEGOTIATION
Faith GillianCanadaAmy Elsner UNQUALIFIED
Aditya KuskoUnited KingdomIoni Bowcher PROPOSAL
Stacey MacleadCanadaAsiya Javayant PROPOSAL
Octavia MaletJapanOnyama Limba NEGOTIATION
Silvio SlusarskiCanadaAmy Elsner QUALIFIED
Francesco ShinkoCanadaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa DilliardIndiaIoni Bowcher PROPOSAL
Costa DilliardIndiaAsiya Javayant RENEWAL
Nicolas IturbideAustraliaXuxue Feng NEGOTIATION
Deepesh ChuiBrazilAnna Fali NEGOTIATION
Rodrigues CampainGermanyAmy Elsner RENEWAL
Leja CaldareraGermanyXuxue Feng RENEWAL
Ashley DoeGermanyAsiya Javayant RENEWAL
Izzy GarufiItalyIoni Bowcher PROPOSAL
Faith GillianBrazilAmy Elsner UNQUALIFIED
Johnson SergiItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire TollnerArgentina2026-04-26Commercial Press RENEWAL57Ioni Bowcher
1001Ashley DoeRussia2026-05-02Benton, John B Jr QUALIFIED18Xuxue Feng
1002Maria MarrierArgentina2026-04-29Rangoni Of Florence PROPOSAL2Xuxue Feng
1003Munro FerenczSpain2026-04-11Buckley Miller Wright UNQUALIFIED41Onyama Limba
1004Aika InouyeJapan2026-04-19Chemel, James L Cpa PROPOSAL23Amy Elsner
1005Jeanfrancois VenereJapan2026-04-27Printing Dimensions UNQUALIFIED6Asiya Javayant
1006Jennifer AmigonJapan2026-04-28Commercial Press NEGOTIATION51Elwin Sharvill
1007Aditya KuskoArgentina2026-04-05Chanay, Jeffrey A Esq UNQUALIFIED14Amy Elsner
1008Arvin AlbaresBrazil2026-04-22Commercial Press UNQUALIFIED72Anna Fali
1009Morrow RutaBrazil2026-04-07Rousseaux, Michael Esq RENEWAL24Stephen Shaw
1010Adams MorascaJapan2026-04-06Printing Dimensions PROPOSAL78Stephen Shaw
1011Aruna FigeroaRussia2026-04-30Rousseaux, Michael Esq RENEWAL72Stephen Shaw
1012Ashley DoeSpain2026-04-13Dorl, James J Esq RENEWAL60Amy Elsner
1013Deepesh ChuiItaly2026-04-22Benton, John B Jr NEGOTIATION30Onyama Limba
1014Julie StensethIndia2026-04-30Benton, John B Jr QUALIFIED46Anna Fali
1015Octavia MaletJapan2026-04-13Rangoni Of Florence NEW61Asiya Javayant
1016Alejandro PerinAustralia2026-04-28Printing Dimensions NEW70Ivan Magalhaes
1017Kaitlin OstroskyJapan2026-04-12Printing Dimensions QUALIFIED38Amy Elsner
1018Mujtaba NickaAustralia2026-05-04Morlong Associates PROPOSAL86Bernardo Dominic
1019Costa DilliardGermany2026-04-22Printing Dimensions UNQUALIFIED55Stephen Shaw
1020Adams MorascaBrazil2026-05-04Feltz Printing Service RENEWAL17Ioni Bowcher
1021Octavia MaletSpain2026-04-06Commercial Press RENEWAL13Elwin Sharvill
1022Antonio CaudyBrazil2026-04-11Feiner Bros PROPOSAL48Onyama Limba
1023Adams MorascaArgentina2026-04-30Chemel, James L Cpa PROPOSAL13Ioni Bowcher
1024Ivar PaprockiItaly2026-04-22Morlong Associates PROPOSAL19Onyama Limba
1025Mayumi KolmetzIndia2026-04-18Benton, John B Jr UNQUALIFIED4Anna Fali
1026Jones VocelkaBrazil2026-04-12Chapman, Ross E Esq QUALIFIED88Anna Fali
1027Kaitlin OstroskyFrance2026-04-20Feiner Bros RENEWAL62Xuxue Feng
1028Jennifer AmigonSpain2026-04-24Rousseaux, Michael Esq QUALIFIED14Onyama Limba
1029Adams MorascaIndia2026-04-25Rousseaux, Michael Esq NEGOTIATION46Ivan Magalhaes
1030Chavez BriddickRussia2026-04-27Printing Dimensions NEGOTIATION57Bernardo Dominic
1031Ivar PaprockiRussia2026-04-06King, Christopher A Esq NEGOTIATION8Bernardo Dominic
1032Ashley DoeFrance2026-04-30Rangoni Of Florence NEW82Elwin Sharvill
1033Leja CaldareraIndia2026-04-06Morlong Associates NEGOTIATION48Elwin Sharvill
1034Maisha RulapaughRussia2026-04-06Buckley Miller Wright NEW61Anna Fali
1035Stacey MacleadFrance2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED60Ioni Bowcher
1036Greenwood BologniaBrazil2026-05-01Rangoni Of Florence UNQUALIFIED70Ioni Bowcher
1037Jennifer AmigonGermany2026-04-29Dorl, James J Esq NEGOTIATION46Amy Elsner
1038Leon OldroydJapan2026-04-26Morlong Associates UNQUALIFIED14Stephen Shaw
1039Alejandro PerinJapan2026-04-20Truhlar And Truhlar Attys NEW22Amy Elsner
1040Alejandro PerinRussia2026-04-30Feiner Bros QUALIFIED79Ivan Magalhaes
1041Stacey MacleadIndia2026-04-30Rousseaux, Michael Esq QUALIFIED36Bernardo Dominic
1042Octavia MaletIndia2026-04-29Commercial Press PROPOSAL93Ioni Bowcher
1043Wickens NestleGermany2026-04-18Buckley Miller Wright UNQUALIFIED75Elwin Sharvill
1044Costa DilliardJapan2026-04-18Truhlar And Truhlar Attys NEGOTIATION31Bernardo Dominic
1045Costa DilliardSpain2026-04-10Printing Dimensions NEW48Xuxue Feng
1046Jefferson SchemmerCanada2026-05-04Dorl, James J Esq PROPOSAL24Asiya Javayant
1047Jennifer AmigonBrazil2026-04-18King, Christopher A Esq UNQUALIFIED1Elwin Sharvill
1048Deepesh ChuiCanada2026-04-22King, Christopher A Esq NEW89Anna Fali
1049Morrow RutaGermany2026-04-25Chanay, Jeffrey A Esq NEW56Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaJapanStephen Shaw RENEWAL
Sinclair WaycottFranceElwin Sharvill UNQUALIFIED
David DarakjyCanadaOnyama Limba NEW
Misaki RoysterFranceIvan Magalhaes NEW
Aditya KuskoRussiaBernardo Dominic RENEWAL
Izzy GarufiAustraliaElwin Sharvill NEW
Morrow RutaItalyElwin Sharvill PROPOSAL
Juan WieserGermanyStephen Shaw QUALIFIED
Silvio SlusarskiSpainIvan Magalhaes QUALIFIED
Mayumi KolmetzIndiaAsiya Javayant NEGOTIATION
Morrow RutaUnited KingdomElwin Sharvill PROPOSAL
Clifford RimUnited KingdomStephen Shaw PROPOSAL
Wickens NestleRussiaBernardo Dominic NEW
Jeanfrancois VenereUnited KingdomAsiya Javayant NEW
Nicolas IturbideJapanAnna Fali NEW
Arvin AlbaresItalyAnna Fali NEW
Tony FollerItalyIoni Bowcher NEGOTIATION
Maisha RulapaughUnited KingdomElwin Sharvill RENEWAL
Darci PoquetteGermanyIoni Bowcher NEW
Aruna FigeroaJapanAmy Elsner QUALIFIED
Ashley DoeIndiaXuxue Feng UNQUALIFIED
Kaitlin OstroskyAustraliaBernardo Dominic QUALIFIED
Francesco ShinkoArgentinaOnyama Limba QUALIFIED
Aruna FigeroaArgentinaStephen Shaw RENEWAL
Jefferson SchemmerBrazilBernardo Dominic PROPOSAL
Maisha RulapaughJapanIoni Bowcher PROPOSAL
Ivar PaprockiFranceElwin Sharvill RENEWAL
Claire TollnerCanadaIvan Magalhaes NEGOTIATION
Costa DilliardUnited KingdomAnna Fali QUALIFIED
Julie StensethArgentinaStephen Shaw NEW
Emily WhobreyItalyElwin Sharvill UNQUALIFIED
Leon OldroydArgentinaElwin Sharvill QUALIFIED
Sinclair WaycottRussiaStephen Shaw QUALIFIED
Rodrigues CampainBrazilAnna Fali QUALIFIED
Aruna FigeroaGermanyStephen Shaw UNQUALIFIED
Mujtaba NickaUnited KingdomBernardo Dominic NEW
Jennifer AmigonRussiaIoni Bowcher PROPOSAL
Tony FollerArgentinaAnna Fali NEGOTIATION
Aditya KuskoAustraliaAnna Fali RENEWAL
Costa DilliardUnited KingdomOnyama Limba QUALIFIED
Maisha RulapaughArgentinaStephen Shaw PROPOSAL
Octavia MaletGermanyAsiya Javayant RENEWAL
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Leja CaldareraFranceXuxue Feng PROPOSAL
Arvin AlbaresAustraliaElwin Sharvill UNQUALIFIED
Jones VocelkaUnited KingdomAnna Fali QUALIFIED
Morrow RutaJapanAnna Fali NEW
Deepesh ChuiAustraliaBernardo Dominic RENEWAL
Claire TollnerJapanIvan Magalhaes UNQUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Murillo Malet
Emily Whobrey
David Darakjy
Stacey Maclead
Francesco Shinko
Clifford Rim
Smith Glick
Aruna Figeroa
Alejandro Perin
Ivar Paprocki
Alejandro Perin
Deepesh Chui
Alejandro Perin
Costa Dilliard
Juan Wieser
Stacey Maclead
Julie Stenseth
Chavez Briddick
Aditya Kusko
David Darakjy
Isabel Bowley
Juan Wieser
Antonio Caudy
Francesco Shinko
Aruna Figeroa
Smith Glick
Chavez Briddick
Leon Oldroyd
Darci Poquette
Jeanfrancois Venere
Clifford Rim
Nicolas Iturbide
Leja Caldarera
Aruna Figeroa
Murillo Malet
Maria Marrier
Aditya Kusko
Antonio Caudy
Deepesh Chui
Sinclair Waycott
Morrow Ruta
Ivar Paprocki
Rodrigues Campain
Leon Oldroyd
Adams Morasca
Aruna Figeroa
Deepesh Chui
Nicolas Iturbide
Sinclair Waycott
Leon Oldroyd
IdCountryDate
1000Germany2026-04-06
1001Germany2026-04-06
1002Brazil2026-04-25
1003Japan2026-04-21
1004Canada2026-04-17
1005Germany2026-04-25
1006Australia2026-04-30
1007Italy2026-04-16
1008Italy2026-04-27
1009France2026-04-19
1010Argentina2026-05-04
1011Brazil2026-05-02
1012Russia2026-04-19
1013Germany2026-04-23
1014Italy2026-04-18
1015Italy2026-04-08
1016Russia2026-04-24
1017India2026-04-22
1018Brazil2026-04-08
1019Brazil2026-04-20
1020Spain2026-04-09
1021Canada2026-04-23
1022India2026-04-06
1023Russia2026-04-06
1024Brazil2026-04-27
1025Argentina2026-04-23
1026Australia2026-04-14
1027Australia2026-04-30
1028Spain2026-04-18
1029Argentina2026-04-18
1030Japan2026-04-11
1031Argentina2026-05-03
1032United Kingdom2026-04-17
1033Canada2026-04-24
1034United Kingdom2026-04-17
1035United Kingdom2026-04-28
1036Spain2026-04-21
1037Argentina2026-04-30
1038Germany2026-04-20
1039Spain2026-04-27
1040Russia2026-04-16
1041Brazil2026-04-18
1042Argentina2026-04-24
1043Australia2026-04-21
1044Australia2026-04-09
1045Spain2026-04-08
1046Spain2026-04-06
1047Australia2026-05-04
1048Russia2026-04-14
1049United Kingdom2026-04-08

On-Demand Data

NameIdCountryDate
Claire Tollner1000Japan2026-04-14
Misaki Royster1001Germany2026-04-20
Mujtaba Nicka1002United Kingdom2026-04-05
Octavia Malet1003India2026-04-14
Octavia Malet1004Germany2026-04-22
Maisha Rulapaugh1005France2026-04-07
Ashley Doe1006Germany2026-04-05
James Butt1007Italy2026-04-22
Wickens Nestle1008India2026-04-15
Smith Glick1009France2026-04-25
Jones Vocelka1010Brazil2026-04-18
Clifford Rim1011Brazil2026-04-11
Munro Ferencz1012Australia2026-04-13
Jeanfrancois Venere1013United Kingdom2026-04-27
Maria Marrier1014Canada2026-05-01
Ricardo Gaucho1015India2026-04-23
Salvatore Stockham1016Russia2026-04-23
Darci Poquette1017Italy2026-04-21
Stacey Maclead1018Russia2026-04-06
Adams Morasca1019Italy2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonRussiaIoni Bowcher QUALIFIED
Johnson SergiArgentinaAmy Elsner UNQUALIFIED
Johnson SergiFranceOnyama Limba PROPOSAL
Tony FollerJapanElwin Sharvill QUALIFIED
Alejandro PerinSpainIvan Magalhaes PROPOSAL
Tony FollerCanadaBernardo Dominic UNQUALIFIED
Juan WieserRussiaIvan Magalhaes RENEWAL
Maisha RulapaughAustraliaIoni Bowcher QUALIFIED
David DarakjyIndiaXuxue Feng PROPOSAL
Emily WhobreyArgentinaIoni Bowcher QUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Arvin AlbaresArgentinaStephen Shaw UNQUALIFIED
Rodrigues CampainAustraliaAsiya Javayant RENEWAL
Nicolas IturbideAustraliaOnyama Limba PROPOSAL
Ashley DoeGermanyIoni Bowcher NEW
Ashley DoeRussiaOnyama Limba PROPOSAL
Salvatore StockhamGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiAustraliaAnna Fali NEGOTIATION
Francesco ShinkoItalyXuxue Feng UNQUALIFIED
Mayumi KolmetzRussiaOnyama Limba RENEWAL
Smith GlickJapanOnyama Limba PROPOSAL
Leja CaldareraGermanyStephen Shaw QUALIFIED
Tony FollerGermanyAnna Fali UNQUALIFIED
Misaki RoysterCanadaIoni Bowcher QUALIFIED
Costa DilliardBrazilStephen Shaw NEW
Munro FerenczRussiaIoni Bowcher RENEWAL
Stacey MacleadRussiaAnna Fali UNQUALIFIED
Antonio CaudyBrazilXuxue Feng RENEWAL
Sinclair WaycottGermanyAsiya Javayant RENEWAL
Arvin AlbaresJapanOnyama Limba RENEWAL
Aruna FigeroaAustraliaAsiya Javayant NEGOTIATION
Darci PoquetteSpainElwin Sharvill QUALIFIED
Kadeem FlosiIndiaAsiya Javayant RENEWAL
Adams MorascaAustraliaBernardo Dominic RENEWAL
Alejandro PerinAustraliaElwin Sharvill RENEWAL
Wickens NestleRussiaAsiya Javayant NEGOTIATION
Rodrigues CampainBrazilAsiya Javayant PROPOSAL
David DarakjyFranceIvan Magalhaes PROPOSAL
Adams MorascaItalyElwin Sharvill RENEWAL
Silvio SlusarskiRussiaBernardo Dominic 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>