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
David DarakjyBrazilIvan Magalhaes QUALIFIED
Alejandro PerinFranceOnyama Limba NEW
Ivar PaprockiFranceBernardo Dominic PROPOSAL
Munro FerenczBrazilIvan Magalhaes PROPOSAL
Costa DilliardArgentinaElwin Sharvill QUALIFIED
Leja CaldareraFranceAsiya Javayant NEW
Rodrigues CampainUnited KingdomAmy Elsner UNQUALIFIED
Darci PoquetteArgentinaAnna Fali PROPOSAL
Morrow RutaSpainIvan Magalhaes NEW
Octavia MaletRussiaIoni Bowcher NEW
Tony FollerArgentinaAsiya Javayant NEGOTIATION
Johnson SergiFranceElwin Sharvill UNQUALIFIED
Jefferson SchemmerSpainStephen Shaw NEGOTIATION
Ivar PaprockiBrazilBernardo Dominic QUALIFIED
Murillo MaletJapanElwin Sharvill UNQUALIFIED
Tony FollerBrazilIoni Bowcher NEW
James ButtItalyIvan Magalhaes PROPOSAL
Misaki RoysterRussiaIoni Bowcher UNQUALIFIED
Kadeem FlosiFranceBernardo Dominic PROPOSAL
Morrow RutaArgentinaIoni Bowcher NEW
Rodrigues CampainBrazilStephen Shaw NEGOTIATION
Murillo MaletIndiaAmy Elsner UNQUALIFIED
Morrow RutaJapanStephen Shaw QUALIFIED
Wickens NestleSpainOnyama Limba NEGOTIATION
Kadeem FlosiItalyIvan Magalhaes NEW
Clifford RimItalyBernardo Dominic PROPOSAL
Deepesh ChuiGermanyOnyama Limba NEGOTIATION
Izzy GarufiItalyElwin Sharvill UNQUALIFIED
Morrow RutaIndiaXuxue Feng QUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant RENEWAL
Munro FerenczIndiaIvan Magalhaes NEGOTIATION
Ivar PaprockiBrazilOnyama Limba NEGOTIATION
Greenwood BologniaIndiaIoni Bowcher QUALIFIED
Ricardo GauchoBrazilIvan Magalhaes NEGOTIATION
Leon OldroydAustraliaAsiya Javayant QUALIFIED
Maisha RulapaughCanadaAsiya Javayant NEGOTIATION
Emily WhobreySpainIvan Magalhaes UNQUALIFIED
Aika InouyeItalyXuxue Feng RENEWAL
Clifford RimJapanAsiya Javayant QUALIFIED
Mayumi KolmetzRussiaAnna Fali UNQUALIFIED
Octavia MaletGermanyElwin Sharvill QUALIFIED
Izzy GarufiCanadaOnyama Limba QUALIFIED
Ricardo GauchoGermanyStephen Shaw UNQUALIFIED
Smith GlickAustraliaAnna Fali PROPOSAL
Stacey MacleadFranceBernardo Dominic PROPOSAL
Aika InouyeFranceElwin Sharvill UNQUALIFIED
Leja CaldareraCanadaOnyama Limba UNQUALIFIED
Faith GillianRussiaXuxue Feng PROPOSAL
James ButtCanadaBernardo Dominic QUALIFIED
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoIndiaBernardo Dominic PROPOSAL
Johnson SergiUnited KingdomOnyama Limba UNQUALIFIED
Wickens NestleFranceAnna Fali PROPOSAL
Silvio SlusarskiItalyXuxue Feng NEW
Alejandro PerinJapanElwin Sharvill NEW
Leja CaldareraArgentinaIoni Bowcher QUALIFIED
James ButtCanadaIoni Bowcher NEGOTIATION
Aditya KuskoBrazilIvan Magalhaes NEW
Greenwood BologniaBrazilStephen Shaw PROPOSAL
Stacey MacleadFranceAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianRussia2026-05-01Buckley Miller Wright NEGOTIATION85Bernardo Dominic
1001Chavez BriddickItaly2026-04-22Dorl, James J Esq NEW93Ivan Magalhaes
1002Leja CaldareraRussia2026-04-20Chapman, Ross E Esq NEW38Stephen Shaw
1003Juan WieserUnited Kingdom2026-05-03Buckley Miller Wright PROPOSAL63Ivan Magalhaes
1004Izzy GarufiUnited Kingdom2026-04-23Printing Dimensions UNQUALIFIED19Anna Fali
1005Jennifer AmigonItaly2026-04-26Rangoni Of Florence PROPOSAL45Stephen Shaw
1006Mayumi KolmetzRussia2026-04-27Chanay, Jeffrey A Esq PROPOSAL51Anna Fali
1007Stacey MacleadGermany2026-05-09Benton, John B Jr QUALIFIED59Xuxue Feng
1008Ricardo GauchoSpain2026-04-19Commercial Press NEW71Xuxue Feng
1009Darci PoquetteJapan2026-04-30Printing Dimensions PROPOSAL73Xuxue Feng
1010Jefferson SchemmerJapan2026-05-01King, Christopher A Esq RENEWAL5Anna Fali
1011Munro FerenczItaly2026-04-27Chanay, Jeffrey A Esq NEGOTIATION24Onyama Limba
1012Leon OldroydRussia2026-04-13Truhlar And Truhlar Attys RENEWAL72Elwin Sharvill
1013Aditya KuskoAustralia2026-05-08Feiner Bros PROPOSAL30Onyama Limba
1014Misaki RoysterAustralia2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED1Anna Fali
1015Cody SaylorsArgentina2026-04-16Rousseaux, Michael Esq UNQUALIFIED4Asiya Javayant
1016Claire TollnerSpain2026-04-18Chanay, Jeffrey A Esq UNQUALIFIED12Anna Fali
1017Maisha RulapaughUnited Kingdom2026-04-11Feltz Printing Service NEW46Ioni Bowcher
1018Arvin AlbaresJapan2026-04-15Printing Dimensions NEW56Anna Fali
1019Mujtaba NickaIndia2026-04-12Rousseaux, Michael Esq RENEWAL61Ivan Magalhaes
1020Costa DilliardJapan2026-04-15Chemel, James L Cpa PROPOSAL1Onyama Limba
1021Jones VocelkaRussia2026-05-07Feltz Printing Service PROPOSAL16Ioni Bowcher
1022Arvin AlbaresFrance2026-05-05Chanay, Jeffrey A Esq NEW75Elwin Sharvill
1023Mayumi KolmetzSpain2026-05-08Chapman, Ross E Esq NEGOTIATION38Amy Elsner
1024Costa DilliardIndia2026-05-01Commercial Press UNQUALIFIED98Ivan Magalhaes
1025Munro FerenczJapan2026-04-30Buckley Miller Wright NEW26Xuxue Feng
1026Silvio SlusarskiBrazil2026-04-23King, Christopher A Esq PROPOSAL95Bernardo Dominic
1027Silvio SlusarskiItaly2026-04-17Commercial Press NEGOTIATION24Bernardo Dominic
1028Misaki RoysterFrance2026-05-08Commercial Press PROPOSAL62Xuxue Feng
1029Maisha RulapaughRussia2026-04-24King, Christopher A Esq NEW86Bernardo Dominic
1030James ButtBrazil2026-04-11Chemel, James L Cpa NEW10Amy Elsner
1031Arvin AlbaresRussia2026-05-04Rangoni Of Florence RENEWAL39Stephen Shaw
1032Arvin AlbaresCanada2026-04-12Feiner Bros NEGOTIATION57Ivan Magalhaes
1033Julie StensethRussia2026-05-08Chemel, James L Cpa QUALIFIED36Ioni Bowcher
1034Juan WieserGermany2026-04-12Morlong Associates PROPOSAL45Ivan Magalhaes
1035Stacey MacleadUnited Kingdom2026-04-12Rousseaux, Michael Esq NEGOTIATION5Xuxue Feng
1036Kadeem FlosiSpain2026-04-30Benton, John B Jr NEW49Xuxue Feng
1037Deepesh ChuiItaly2026-04-23Truhlar And Truhlar Attys NEGOTIATION98Onyama Limba
1038Silvio SlusarskiSpain2026-04-13Rangoni Of Florence PROPOSAL82Xuxue Feng
1039Tony FollerBrazil2026-04-19Chemel, James L Cpa QUALIFIED36Elwin Sharvill
1040Aika InouyeAustralia2026-04-11Feiner Bros RENEWAL65Anna Fali
1041Leon OldroydArgentina2026-04-12Chanay, Jeffrey A Esq PROPOSAL95Stephen Shaw
1042Murillo MaletIndia2026-04-29Benton, John B Jr QUALIFIED64Stephen Shaw
1043Darci PoquetteItaly2026-04-22Feiner Bros QUALIFIED77Bernardo Dominic
1044Aika InouyeArgentina2026-04-13Buckley Miller Wright NEGOTIATION83Elwin Sharvill
1045Misaki RoysterCanada2026-04-12Benton, John B Jr UNQUALIFIED67Amy Elsner
1046Izzy GarufiIndia2026-05-08Buckley Miller Wright NEGOTIATION91Amy Elsner
1047Aika InouyeAustralia2026-04-11Commercial Press NEW42Ivan Magalhaes
1048Leon OldroydBrazil2026-04-29Chanay, Jeffrey A Esq PROPOSAL58Elwin Sharvill
1049Claire TollnerItaly2026-05-09Chanay, Jeffrey A Esq PROPOSAL15Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonJapanElwin Sharvill RENEWAL
Nicolas IturbideCanadaOnyama Limba PROPOSAL
Stacey MacleadSpainIvan Magalhaes RENEWAL
Silvio SlusarskiFranceBernardo Dominic QUALIFIED
Ivar PaprockiSpainIoni Bowcher UNQUALIFIED
Stacey MacleadAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoItalyAsiya Javayant UNQUALIFIED
Aruna FigeroaSpainAmy Elsner UNQUALIFIED
Nicolas IturbideGermanyIoni Bowcher NEGOTIATION
Ashley DoeJapanOnyama Limba PROPOSAL
Smith GlickAustraliaXuxue Feng PROPOSAL
Ivar PaprockiArgentinaIoni Bowcher UNQUALIFIED
Stacey MacleadFranceStephen Shaw QUALIFIED
Ricardo GauchoGermanyIoni Bowcher RENEWAL
Antonio CaudyUnited KingdomAnna Fali UNQUALIFIED
Alejandro PerinRussiaOnyama Limba RENEWAL
Jefferson SchemmerFranceXuxue Feng NEW
Misaki RoysterSpainIvan Magalhaes UNQUALIFIED
Arvin AlbaresFranceAnna Fali PROPOSAL
Ashley DoeArgentinaXuxue Feng NEGOTIATION
Rodrigues CampainAustraliaIvan Magalhaes QUALIFIED
Salvatore StockhamFranceElwin Sharvill QUALIFIED
Wickens NestleGermanyIvan Magalhaes NEW
James ButtJapanIvan Magalhaes RENEWAL
Kadeem FlosiGermanyAsiya Javayant QUALIFIED
Salvatore StockhamRussiaElwin Sharvill RENEWAL
Julie StensethBrazilAsiya Javayant NEGOTIATION
Rodrigues CampainSpainIoni Bowcher PROPOSAL
Deepesh ChuiSpainOnyama Limba UNQUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes PROPOSAL
Morrow RutaUnited KingdomAnna Fali NEGOTIATION
Aruna FigeroaCanadaElwin Sharvill RENEWAL
Salvatore StockhamAustraliaAsiya Javayant RENEWAL
Leja CaldareraItalyXuxue Feng NEW
Alejandro PerinCanadaIoni Bowcher NEGOTIATION
Cody SaylorsItalyElwin Sharvill RENEWAL
Nicolas IturbideIndiaBernardo Dominic NEW
Maria MarrierJapanOnyama Limba PROPOSAL
Maria MarrierBrazilBernardo Dominic UNQUALIFIED
James ButtGermanyStephen Shaw NEGOTIATION
Aika InouyeJapanStephen Shaw NEGOTIATION
Kadeem FlosiSpainAsiya Javayant PROPOSAL
Ashley DoeJapanIvan Magalhaes NEGOTIATION
Leon OldroydJapanOnyama Limba NEW
Cody SaylorsFranceXuxue Feng PROPOSAL
Aika InouyeSpainAmy Elsner QUALIFIED
Aruna FigeroaCanadaOnyama Limba NEGOTIATION
Faith GillianItalyOnyama Limba PROPOSAL
Mayumi KolmetzAustraliaAmy Elsner NEW
Aika InouyeIndiaStephen Shaw NEW
Frozen Columns
Name
Aruna Figeroa
Juan Wieser
Cody Saylors
Darci Poquette
Rodrigues Campain
Munro Ferencz
Antonio Caudy
Jefferson Schemmer
Jefferson Schemmer
Chavez Briddick
Misaki Royster
Johnson Sergi
Rodrigues Campain
Francesco Shinko
Ivar Paprocki
Greenwood Bolognia
Aditya Kusko
Alejandro Perin
Clifford Rim
Ivar Paprocki
Greenwood Bolognia
Mayumi Kolmetz
Darci Poquette
Leja Caldarera
Kaitlin Ostrosky
Antonio Caudy
Aruna Figeroa
David Darakjy
Arvin Albares
Tony Foller
Maisha Rulapaugh
Murillo Malet
Aika Inouye
Costa Dilliard
Octavia Malet
Francesco Shinko
Maria Marrier
Aditya Kusko
Aruna Figeroa
Aditya Kusko
Chavez Briddick
Deepesh Chui
Izzy Garufi
Misaki Royster
Smith Glick
Alejandro Perin
Adams Morasca
Leon Oldroyd
Sinclair Waycott
Maisha Rulapaugh
IdCountryDate
1000Argentina2026-04-17
1001Canada2026-05-08
1002Argentina2026-04-13
1003Canada2026-05-05
1004Germany2026-04-22
1005France2026-04-30
1006Canada2026-04-12
1007France2026-05-04
1008United Kingdom2026-05-02
1009Russia2026-05-04
1010France2026-05-09
1011Spain2026-04-26
1012Japan2026-04-11
1013France2026-04-30
1014Spain2026-04-18
1015France2026-05-05
1016Canada2026-04-26
1017Russia2026-04-10
1018Russia2026-04-15
1019Argentina2026-04-17
1020Australia2026-04-24
1021United Kingdom2026-05-02
1022Russia2026-04-16
1023Argentina2026-05-05
1024United Kingdom2026-05-01
1025Australia2026-04-28
1026Argentina2026-04-11
1027Russia2026-04-14
1028Germany2026-05-03
1029India2026-04-19
1030Canada2026-04-29
1031United Kingdom2026-04-13
1032Brazil2026-04-12
1033Japan2026-04-10
1034India2026-04-18
1035Argentina2026-04-17
1036Spain2026-04-22
1037Russia2026-04-25
1038Brazil2026-04-28
1039Brazil2026-05-04
1040United Kingdom2026-04-23
1041Canada2026-04-14
1042Spain2026-04-21
1043Russia2026-04-26
1044France2026-04-30
1045Australia2026-04-17
1046Russia2026-05-06
1047Spain2026-05-04
1048Australia2026-04-26
1049Spain2026-04-21

On-Demand Data

NameIdCountryDate
Smith Glick1000Argentina2026-04-24
Emily Whobrey1001Australia2026-05-02
Izzy Garufi1002Japan2026-04-24
Deepesh Chui1003Japan2026-04-20
Ashley Doe1004Spain2026-04-24
Cody Saylors1005Italy2026-04-27
Claire Tollner1006Brazil2026-04-25
Isabel Bowley1007France2026-04-25
Stacey Maclead1008Argentina2026-05-03
Faith Gillian1009India2026-04-15
Aika Inouye1010Argentina2026-04-14
David Darakjy1011Germany2026-04-17
Mayumi Kolmetz1012Spain2026-04-16
Ricardo Gaucho1013Argentina2026-04-23
Maisha Rulapaugh1014Germany2026-04-19
Antonio Caudy1015France2026-04-19
Munro Ferencz1016France2026-04-13
Chavez Briddick1017France2026-05-04
Ashley Doe1018Canada2026-04-15
Ivar Paprocki1019Germany2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraRussiaAnna Fali UNQUALIFIED
Aruna FigeroaJapanBernardo Dominic PROPOSAL
Ricardo GauchoGermanyAsiya Javayant NEW
Silvio SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Costa DilliardIndiaIoni Bowcher NEW
Adams MorascaBrazilAmy Elsner UNQUALIFIED
Stacey MacleadIndiaXuxue Feng PROPOSAL
Costa DilliardFranceElwin Sharvill UNQUALIFIED
Jones VocelkaItalyAnna Fali PROPOSAL
Aditya KuskoRussiaIoni Bowcher UNQUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Arvin AlbaresAustraliaBernardo Dominic QUALIFIED
Kadeem FlosiAustraliaBernardo Dominic RENEWAL
Maria MarrierAustraliaIvan Magalhaes UNQUALIFIED
Kadeem FlosiCanadaXuxue Feng QUALIFIED
David DarakjyCanadaIoni Bowcher PROPOSAL
Cody SaylorsJapanAsiya Javayant NEGOTIATION
Maisha RulapaughGermanyOnyama Limba UNQUALIFIED
Costa DilliardItalyIoni Bowcher UNQUALIFIED
Greenwood BologniaUnited KingdomAmy Elsner RENEWAL
Aditya KuskoRussiaAsiya Javayant QUALIFIED
Johnson SergiArgentinaXuxue Feng NEGOTIATION
Ricardo GauchoGermanyAmy Elsner UNQUALIFIED
Alejandro PerinBrazilAnna Fali RENEWAL
Cody SaylorsUnited KingdomAsiya Javayant QUALIFIED
Izzy GarufiGermanyOnyama Limba PROPOSAL
Leja CaldareraArgentinaXuxue Feng UNQUALIFIED
Darci PoquetteUnited KingdomIoni Bowcher NEW
Leja CaldareraGermanyXuxue Feng NEGOTIATION
Mujtaba NickaArgentinaOnyama Limba NEW
Izzy GarufiSpainOnyama Limba NEGOTIATION
James ButtItalyStephen Shaw NEGOTIATION
Kaitlin OstroskyIndiaElwin Sharvill QUALIFIED
Alejandro PerinIndiaIvan Magalhaes QUALIFIED
Morrow RutaCanadaXuxue Feng NEGOTIATION
Leon OldroydUnited KingdomXuxue Feng NEW
Juan WieserAustraliaAsiya Javayant RENEWAL
Murillo MaletSpainElwin Sharvill RENEWAL
Clifford RimBrazilAmy Elsner UNQUALIFIED
Antonio CaudyBrazilAnna Fali NEW

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