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
Wickens NestleItalyStephen Shaw NEGOTIATION
Kaitlin OstroskyAustraliaAsiya Javayant PROPOSAL
Johnson SergiAustraliaAsiya Javayant NEGOTIATION
Leja CaldareraIndiaAmy Elsner NEGOTIATION
James ButtUnited KingdomOnyama Limba NEGOTIATION
Emily WhobreyGermanyOnyama Limba RENEWAL
Francesco ShinkoSpainElwin Sharvill NEGOTIATION
Arvin AlbaresGermanyBernardo Dominic QUALIFIED
Claire TollnerGermanyAmy Elsner UNQUALIFIED
Aruna FigeroaGermanyAsiya Javayant QUALIFIED
Silvio SlusarskiFranceAsiya Javayant NEW
Johnson SergiItalyIoni Bowcher NEW
Maisha RulapaughFranceElwin Sharvill UNQUALIFIED
Julie StensethArgentinaAmy Elsner PROPOSAL
Kadeem FlosiUnited KingdomXuxue Feng NEGOTIATION
Faith GillianRussiaAmy Elsner NEW
Nicolas IturbideBrazilStephen Shaw NEGOTIATION
Maria MarrierItalyElwin Sharvill RENEWAL
Jennifer AmigonRussiaAnna Fali NEGOTIATION
Stacey MacleadFranceIvan Magalhaes PROPOSAL
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Darci PoquetteIndiaOnyama Limba PROPOSAL
Misaki RoysterSpainAmy Elsner QUALIFIED
Mayumi KolmetzSpainStephen Shaw QUALIFIED
Alejandro PerinRussiaElwin Sharvill QUALIFIED
Adams MorascaFranceElwin Sharvill NEGOTIATION
Kaitlin OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Francesco ShinkoGermanyStephen Shaw RENEWAL
Munro FerenczAustraliaIvan Magalhaes UNQUALIFIED
Ashley DoeUnited KingdomXuxue Feng QUALIFIED
Misaki RoysterItalyStephen Shaw NEW
Rodrigues CampainFranceAnna Fali RENEWAL
Tony FollerItalyElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomAmy Elsner QUALIFIED
Salvatore StockhamRussiaAmy Elsner RENEWAL
Tony FollerIndiaAmy Elsner NEGOTIATION
Sinclair WaycottBrazilAmy Elsner NEGOTIATION
Aditya KuskoSpainAmy Elsner NEGOTIATION
Isabel BowleyAustraliaElwin Sharvill UNQUALIFIED
Stacey MacleadJapanAnna Fali QUALIFIED
Mujtaba NickaItalyIvan Magalhaes UNQUALIFIED
Juan WieserIndiaAnna Fali NEGOTIATION
Mujtaba NickaJapanAnna Fali RENEWAL
Munro FerenczBrazilAmy Elsner PROPOSAL
Aditya KuskoCanadaXuxue Feng NEGOTIATION
Emily WhobreyArgentinaStephen Shaw NEW
Rodrigues CampainBrazilAmy Elsner QUALIFIED
Rodrigues CampainItalyXuxue Feng NEGOTIATION
Johnson SergiItalyIoni Bowcher QUALIFIED
Murillo MaletBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideCanadaOnyama Limba NEGOTIATION
Clifford RimAustraliaAsiya Javayant RENEWAL
Izzy GarufiRussiaIvan Magalhaes PROPOSAL
Claire TollnerJapanXuxue Feng UNQUALIFIED
Rodrigues CampainArgentinaAsiya Javayant QUALIFIED
Stacey MacleadFranceXuxue Feng UNQUALIFIED
Stacey MacleadUnited KingdomOnyama Limba PROPOSAL
Johnson SergiSpainIvan Magalhaes QUALIFIED
Aruna FigeroaAustraliaOnyama Limba PROPOSAL
Faith GillianCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethFrance2026-04-21Truhlar And Truhlar Attys PROPOSAL67Ivan Magalhaes
1001Julie StensethAustralia2026-04-28Feltz Printing Service NEGOTIATION35Ivan Magalhaes
1002Aika InouyeIndia2026-05-13Printing Dimensions QUALIFIED87Amy Elsner
1003Costa DilliardUnited Kingdom2026-04-25Feltz Printing Service NEGOTIATION99Elwin Sharvill
1004James ButtAustralia2026-04-30Benton, John B Jr NEGOTIATION41Xuxue Feng
1005Johnson SergiRussia2026-05-11Buckley Miller Wright NEW77Elwin Sharvill
1006Mujtaba NickaBrazil2026-05-01Rangoni Of Florence RENEWAL76Bernardo Dominic
1007Alejandro PerinBrazil2026-04-24Chanay, Jeffrey A Esq QUALIFIED45Onyama Limba
1008Johnson SergiFrance2026-04-25Morlong Associates NEGOTIATION64Stephen Shaw
1009Mayumi KolmetzArgentina2026-05-13Chapman, Ross E Esq NEGOTIATION68Onyama Limba
1010Costa DilliardGermany2026-04-16King, Christopher A Esq PROPOSAL57Elwin Sharvill
1011Cody SaylorsCanada2026-04-20Rangoni Of Florence NEGOTIATION16Amy Elsner
1012Chavez BriddickUnited Kingdom2026-04-25Benton, John B Jr QUALIFIED2Ioni Bowcher
1013Greenwood BologniaIndia2026-04-15Feltz Printing Service NEGOTIATION52Bernardo Dominic
1014Morrow RutaSpain2026-04-24Feiner Bros UNQUALIFIED2Ivan Magalhaes
1015Julie StensethUnited Kingdom2026-04-26Benton, John B Jr NEW24Asiya Javayant
1016Leon OldroydAustralia2026-05-04Rousseaux, Michael Esq QUALIFIED37Anna Fali
1017Sinclair WaycottSpain2026-05-10Feiner Bros NEGOTIATION38Elwin Sharvill
1018Alejandro PerinBrazil2026-05-02Benton, John B Jr NEW3Onyama Limba
1019Greenwood BologniaItaly2026-05-04Feiner Bros NEW95Stephen Shaw
1020Silvio SlusarskiRussia2026-04-22Rousseaux, Michael Esq QUALIFIED32Elwin Sharvill
1021Greenwood BologniaBrazil2026-04-27Truhlar And Truhlar Attys QUALIFIED9Ioni Bowcher
1022Jones VocelkaIndia2026-05-02Feltz Printing Service QUALIFIED49Xuxue Feng
1023Wickens NestleFrance2026-04-29Chemel, James L Cpa NEGOTIATION27Asiya Javayant
1024Alejandro PerinRussia2026-05-03Chemel, James L Cpa NEGOTIATION79Asiya Javayant
1025Murillo MaletSpain2026-04-18Rangoni Of Florence RENEWAL48Ioni Bowcher
1026Greenwood BologniaRussia2026-04-29Feiner Bros PROPOSAL99Elwin Sharvill
1027Deepesh ChuiItaly2026-04-18Morlong Associates NEW96Anna Fali
1028Misaki RoysterFrance2026-05-09Chemel, James L Cpa NEW25Amy Elsner
1029Jeanfrancois VenereGermany2026-04-20Rousseaux, Michael Esq NEGOTIATION10Stephen Shaw
1030James ButtRussia2026-04-26Morlong Associates PROPOSAL13Asiya Javayant
1031Leon OldroydUnited Kingdom2026-04-26Morlong Associates RENEWAL32Elwin Sharvill
1032Maisha RulapaughRussia2026-04-16Chemel, James L Cpa QUALIFIED31Stephen Shaw
1033Jones VocelkaRussia2026-04-22Chanay, Jeffrey A Esq NEW52Xuxue Feng
1034Juan WieserCanada2026-05-05King, Christopher A Esq RENEWAL57Ivan Magalhaes
1035Kaitlin OstroskyAustralia2026-05-03Truhlar And Truhlar Attys QUALIFIED96Elwin Sharvill
1036Sinclair WaycottBrazil2026-05-02Dorl, James J Esq NEGOTIATION80Ivan Magalhaes
1037Kaitlin OstroskyAustralia2026-04-25King, Christopher A Esq PROPOSAL43Ioni Bowcher
1038Francesco ShinkoArgentina2026-05-05Chapman, Ross E Esq QUALIFIED7Elwin Sharvill
1039Kadeem FlosiAustralia2026-04-18Chapman, Ross E Esq PROPOSAL45Xuxue Feng
1040Johnson SergiAustralia2026-04-23Chapman, Ross E Esq PROPOSAL21Onyama Limba
1041Julie StensethIndia2026-04-29Truhlar And Truhlar Attys QUALIFIED43Asiya Javayant
1042Tony FollerBrazil2026-05-13Buckley Miller Wright UNQUALIFIED16Anna Fali
1043Sinclair WaycottArgentina2026-05-01Morlong Associates PROPOSAL31Anna Fali
1044Faith GillianUnited Kingdom2026-04-16Chemel, James L Cpa RENEWAL83Amy Elsner
1045Juan WieserAustralia2026-04-26Chemel, James L Cpa UNQUALIFIED83Asiya Javayant
1046Jefferson SchemmerItaly2026-04-17King, Christopher A Esq QUALIFIED15Anna Fali
1047Munro FerenczBrazil2026-05-13Rangoni Of Florence PROPOSAL76Bernardo Dominic
1048Jeanfrancois VenereBrazil2026-05-13King, Christopher A Esq PROPOSAL98Onyama Limba
1049Deepesh ChuiBrazil2026-05-14Printing Dimensions RENEWAL97Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardUnited KingdomOnyama Limba UNQUALIFIED
Greenwood BologniaIndiaStephen Shaw QUALIFIED
Munro FerenczGermanyAsiya Javayant NEW
Deepesh ChuiGermanyElwin Sharvill NEW
Nicolas IturbideCanadaIvan Magalhaes QUALIFIED
Claire TollnerCanadaOnyama Limba PROPOSAL
Munro FerenczBrazilIoni Bowcher PROPOSAL
Jefferson SchemmerBrazilAmy Elsner PROPOSAL
Wickens NestleAustraliaBernardo Dominic NEGOTIATION
Leja CaldareraItalyAnna Fali PROPOSAL
Mayumi KolmetzSpainIoni Bowcher NEW
Clifford RimSpainAnna Fali PROPOSAL
Mayumi KolmetzRussiaAnna Fali PROPOSAL
Jones VocelkaGermanyIvan Magalhaes QUALIFIED
Kadeem FlosiAustraliaBernardo Dominic QUALIFIED
Aruna FigeroaUnited KingdomIoni Bowcher RENEWAL
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Sinclair WaycottSpainAnna Fali RENEWAL
Mayumi KolmetzAustraliaAnna Fali PROPOSAL
Maisha RulapaughUnited KingdomElwin Sharvill RENEWAL
Greenwood BologniaIndiaIoni Bowcher UNQUALIFIED
Costa DilliardBrazilBernardo Dominic NEW
Faith GillianRussiaIvan Magalhaes NEGOTIATION
Rodrigues CampainItalyXuxue Feng PROPOSAL
Francesco ShinkoItalyIvan Magalhaes QUALIFIED
Stacey MacleadUnited KingdomIvan Magalhaes NEW
Francesco ShinkoItalyBernardo Dominic NEW
Faith GillianArgentinaElwin Sharvill QUALIFIED
Darci PoquetteCanadaAnna Fali RENEWAL
Greenwood BologniaIndiaBernardo Dominic NEW
Munro FerenczBrazilElwin Sharvill UNQUALIFIED
Mayumi KolmetzItalyOnyama Limba RENEWAL
Deepesh ChuiUnited KingdomBernardo Dominic NEGOTIATION
Greenwood BologniaAustraliaBernardo Dominic NEGOTIATION
Maria MarrierFranceStephen Shaw UNQUALIFIED
Izzy GarufiGermanyIoni Bowcher QUALIFIED
Aruna FigeroaCanadaStephen Shaw NEGOTIATION
Isabel BowleyItalyAnna Fali PROPOSAL
Leja CaldareraJapanStephen Shaw NEW
Morrow RutaIndiaAmy Elsner NEW
Aruna FigeroaAustraliaIoni Bowcher NEW
Julie StensethAustraliaBernardo Dominic NEW
Morrow RutaBrazilIvan Magalhaes QUALIFIED
Mujtaba NickaUnited KingdomAsiya Javayant QUALIFIED
Jefferson SchemmerUnited KingdomAmy Elsner PROPOSAL
Aruna FigeroaCanadaAsiya Javayant RENEWAL
Kaitlin OstroskyRussiaElwin Sharvill RENEWAL
Morrow RutaIndiaBernardo Dominic NEW
Wickens NestleAustraliaBernardo Dominic QUALIFIED
Maria MarrierIndiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Clifford Rim
Jefferson Schemmer
Adams Morasca
Murillo Malet
Aruna Figeroa
Faith Gillian
Nicolas Iturbide
Jennifer Amigon
Aika Inouye
Emily Whobrey
Ashley Doe
Claire Tollner
Claire Tollner
Murillo Malet
Kadeem Flosi
Francesco Shinko
Antonio Caudy
Adams Morasca
Isabel Bowley
Mujtaba Nicka
Ashley Doe
Ivar Paprocki
Mujtaba Nicka
Juan Wieser
Darci Poquette
Francesco Shinko
Claire Tollner
Johnson Sergi
Izzy Garufi
Nicolas Iturbide
Salvatore Stockham
Leon Oldroyd
Maisha Rulapaugh
Salvatore Stockham
Ricardo Gaucho
Cody Saylors
Silvio Slusarski
Leon Oldroyd
Deepesh Chui
Tony Foller
Francesco Shinko
Octavia Malet
David Darakjy
Nicolas Iturbide
Aditya Kusko
Jennifer Amigon
Munro Ferencz
Antonio Caudy
Aruna Figeroa
Jeanfrancois Venere
IdCountryDate
1000Japan2026-05-12
1001France2026-05-12
1002Germany2026-05-12
1003France2026-04-19
1004Canada2026-04-20
1005Japan2026-04-21
1006Argentina2026-05-02
1007Brazil2026-05-12
1008Germany2026-04-29
1009France2026-04-16
1010Argentina2026-05-08
1011India2026-04-19
1012Australia2026-04-21
1013Australia2026-04-26
1014United Kingdom2026-05-03
1015France2026-05-11
1016Brazil2026-05-13
1017Australia2026-04-19
1018Australia2026-05-03
1019Russia2026-05-08
1020Russia2026-04-19
1021Italy2026-04-20
1022India2026-04-18
1023Spain2026-04-30
1024Canada2026-05-12
1025Italy2026-04-22
1026Italy2026-05-13
1027Spain2026-04-27
1028Russia2026-04-28
1029Russia2026-05-10
1030United Kingdom2026-05-02
1031Germany2026-04-27
1032Argentina2026-04-25
1033Spain2026-04-17
1034United Kingdom2026-04-22
1035Japan2026-04-15
1036Argentina2026-05-02
1037India2026-04-24
1038Italy2026-04-28
1039Argentina2026-04-18
1040India2026-04-20
1041Brazil2026-05-01
1042Canada2026-04-27
1043Germany2026-04-22
1044Australia2026-05-07
1045Brazil2026-04-18
1046Canada2026-05-01
1047Japan2026-04-29
1048Argentina2026-05-10
1049Germany2026-05-12

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Italy2026-04-26
Chavez Briddick1001Japan2026-05-02
Misaki Royster1002Brazil2026-05-13
Leja Caldarera1003France2026-04-24
Maria Marrier1004India2026-04-24
Alejandro Perin1005Germany2026-05-03
Leon Oldroyd1006Japan2026-04-27
Wickens Nestle1007Canada2026-05-02
Isabel Bowley1008Argentina2026-04-22
Jennifer Amigon1009Canada2026-04-24
Chavez Briddick1010Argentina2026-04-24
Aditya Kusko1011Italy2026-05-14
Arvin Albares1012Argentina2026-04-18
Antonio Caudy1013Germany2026-05-02
Ashley Doe1014Germany2026-05-08
Isabel Bowley1015Australia2026-05-10
Aika Inouye1016France2026-04-30
Octavia Malet1017India2026-05-06
Darci Poquette1018India2026-05-03
Ricardo Gaucho1019Germany2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresAustraliaStephen Shaw UNQUALIFIED
Claire TollnerArgentinaAnna Fali RENEWAL
Nicolas IturbideGermanyOnyama Limba NEW
Jefferson SchemmerAustraliaXuxue Feng RENEWAL
Isabel BowleyJapanStephen Shaw UNQUALIFIED
Octavia MaletFranceAsiya Javayant RENEWAL
Jennifer AmigonArgentinaXuxue Feng NEW
Murillo MaletRussiaElwin Sharvill QUALIFIED
Murillo MaletUnited KingdomAnna Fali RENEWAL
Julie StensethBrazilAnna Fali UNQUALIFIED
Aditya KuskoAustraliaAsiya Javayant NEW
Misaki RoysterAustraliaIoni Bowcher RENEWAL
Antonio CaudyRussiaBernardo Dominic PROPOSAL
Tony FollerFranceIoni Bowcher QUALIFIED
Leja CaldareraBrazilElwin Sharvill UNQUALIFIED
Aditya KuskoRussiaStephen Shaw RENEWAL
Jeanfrancois VenereRussiaAnna Fali NEW
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Murillo MaletUnited KingdomAnna Fali UNQUALIFIED
Antonio CaudyArgentinaIoni Bowcher PROPOSAL
Morrow RutaIndiaOnyama Limba RENEWAL
Izzy GarufiAustraliaIvan Magalhaes NEW
Leja CaldareraFranceIoni Bowcher QUALIFIED
Juan WieserFranceAnna Fali UNQUALIFIED
Morrow RutaFranceAnna Fali PROPOSAL
Faith GillianGermanyIoni Bowcher UNQUALIFIED
Murillo MaletItalyStephen Shaw PROPOSAL
Jennifer AmigonBrazilIvan Magalhaes QUALIFIED
Jones VocelkaRussiaOnyama Limba UNQUALIFIED
Aditya KuskoArgentinaOnyama Limba QUALIFIED
Jeanfrancois VenereSpainAnna Fali NEW
Kadeem FlosiUnited KingdomBernardo Dominic QUALIFIED
Deepesh ChuiCanadaStephen Shaw RENEWAL
Aditya KuskoCanadaBernardo Dominic PROPOSAL
David DarakjySpainXuxue Feng RENEWAL
Faith GillianCanadaAnna Fali NEW
Deepesh ChuiAustraliaStephen Shaw PROPOSAL
Silvio SlusarskiItalyXuxue Feng QUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba RENEWAL
Maisha RulapaughCanadaStephen Shaw 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>