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
Salvatore StockhamGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaUnited KingdomIoni Bowcher RENEWAL
Jones VocelkaAustraliaXuxue Feng NEGOTIATION
Costa DilliardArgentinaIoni Bowcher RENEWAL
Julie StensethFranceAmy Elsner NEW
Johnson SergiBrazilOnyama Limba PROPOSAL
Aditya KuskoIndiaElwin Sharvill NEW
Maisha RulapaughFranceElwin Sharvill PROPOSAL
Antonio CaudyIndiaXuxue Feng RENEWAL
Chavez BriddickIndiaOnyama Limba RENEWAL
Murillo MaletSpainAsiya Javayant QUALIFIED
James ButtUnited KingdomElwin Sharvill QUALIFIED
Greenwood BologniaSpainAnna Fali NEGOTIATION
Julie StensethJapanIvan Magalhaes QUALIFIED
Ricardo GauchoGermanyIoni Bowcher QUALIFIED
James ButtAustraliaXuxue Feng QUALIFIED
Rodrigues CampainArgentinaXuxue Feng NEW
Deepesh ChuiItalyBernardo Dominic PROPOSAL
Faith GillianCanadaOnyama Limba RENEWAL
Salvatore StockhamRussiaStephen Shaw NEW
Jeanfrancois VenereAustraliaAmy Elsner RENEWAL
Kadeem FlosiSpainIoni Bowcher PROPOSAL
Kadeem FlosiUnited KingdomElwin Sharvill RENEWAL
Cody SaylorsArgentinaStephen Shaw PROPOSAL
Chavez BriddickAustraliaAmy Elsner RENEWAL
Tony FollerBrazilXuxue Feng NEW
Ashley DoeCanadaAnna Fali QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill QUALIFIED
Costa DilliardRussiaAnna Fali NEW
Stacey MacleadSpainAsiya Javayant QUALIFIED
Maisha RulapaughCanadaOnyama Limba RENEWAL
Faith GillianArgentinaOnyama Limba PROPOSAL
Ashley DoeBrazilOnyama Limba RENEWAL
Ricardo GauchoArgentinaElwin Sharvill NEW
Aika InouyeFranceAmy Elsner UNQUALIFIED
Alejandro PerinUnited KingdomElwin Sharvill QUALIFIED
Octavia MaletIndiaStephen Shaw NEW
Smith GlickRussiaAmy Elsner PROPOSAL
Aditya KuskoCanadaIvan Magalhaes QUALIFIED
Costa DilliardGermanyBernardo Dominic QUALIFIED
Jeanfrancois VenereRussiaStephen Shaw PROPOSAL
Jeanfrancois VenereGermanyStephen Shaw NEW
Aruna FigeroaBrazilAmy Elsner QUALIFIED
Aditya KuskoFranceAmy Elsner RENEWAL
Rodrigues CampainGermanyElwin Sharvill QUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill RENEWAL
Octavia MaletAustraliaAmy Elsner PROPOSAL
Aruna FigeroaIndiaStephen Shaw RENEWAL
Sinclair WaycottAustraliaElwin Sharvill RENEWAL
Leon OldroydBrazilStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyBrazilElwin Sharvill RENEWAL
Maria MarrierIndiaAnna Fali NEW
Morrow RutaJapanXuxue Feng QUALIFIED
Ashley DoeSpainIvan Magalhaes UNQUALIFIED
Cody SaylorsSpainAsiya Javayant UNQUALIFIED
Salvatore StockhamGermanyAsiya Javayant QUALIFIED
Murillo MaletGermanyBernardo Dominic RENEWAL
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Maisha RulapaughCanadaAmy Elsner QUALIFIED
Stacey MacleadFranceOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterCanada2026-05-17Morlong Associates NEW80Xuxue Feng
1001David DarakjyArgentina2026-05-27Rousseaux, Michael Esq NEW4Onyama Limba
1002Claire TollnerBrazil2026-05-28Truhlar And Truhlar Attys NEW70Stephen Shaw
1003Leja CaldareraArgentina2026-05-20Dorl, James J Esq PROPOSAL51Ioni Bowcher
1004Ivar PaprockiIndia2026-05-16Chemel, James L Cpa PROPOSAL13Bernardo Dominic
1005Maria MarrierUnited Kingdom2026-05-08Chemel, James L Cpa RENEWAL16Amy Elsner
1006Costa DilliardRussia2026-05-06Dorl, James J Esq PROPOSAL56Asiya Javayant
1007Deepesh ChuiJapan2026-05-10King, Christopher A Esq NEW93Asiya Javayant
1008Maisha RulapaughIndia2026-05-09Benton, John B Jr NEGOTIATION62Stephen Shaw
1009Misaki RoysterIndia2026-05-24Rangoni Of Florence QUALIFIED45Ioni Bowcher
1010Chavez BriddickAustralia2026-05-16Chemel, James L Cpa QUALIFIED34Stephen Shaw
1011Deepesh ChuiCanada2026-05-05King, Christopher A Esq UNQUALIFIED17Bernardo Dominic
1012Aika InouyeFrance2026-05-12King, Christopher A Esq RENEWAL88Ioni Bowcher
1013Arvin AlbaresIndia2026-05-22Feiner Bros PROPOSAL88Ioni Bowcher
1014Greenwood BologniaFrance2026-05-17Chanay, Jeffrey A Esq PROPOSAL12Anna Fali
1015Nicolas IturbideIndia2026-05-27Commercial Press PROPOSAL67Stephen Shaw
1016Leja CaldareraJapan2026-05-08Rangoni Of Florence UNQUALIFIED69Ioni Bowcher
1017David DarakjyUnited Kingdom2026-05-28Chapman, Ross E Esq NEW47Xuxue Feng
1018Silvio SlusarskiJapan2026-05-18Morlong Associates QUALIFIED95Elwin Sharvill
1019Stacey MacleadArgentina2026-05-28Printing Dimensions QUALIFIED53Onyama Limba
1020Sinclair WaycottRussia2026-05-24Chemel, James L Cpa RENEWAL47Ivan Magalhaes
1021Deepesh ChuiUnited Kingdom2026-05-28Rousseaux, Michael Esq QUALIFIED53Ivan Magalhaes
1022Munro FerenczSpain2026-05-17Rousseaux, Michael Esq UNQUALIFIED8Elwin Sharvill
1023Misaki RoysterItaly2026-05-27Commercial Press NEW78Onyama Limba
1024Stacey MacleadRussia2026-05-23Chanay, Jeffrey A Esq NEGOTIATION82Elwin Sharvill
1025Johnson SergiUnited Kingdom2026-05-10Morlong Associates QUALIFIED36Amy Elsner
1026Smith GlickIndia2026-05-25Morlong Associates NEW71Ivan Magalhaes
1027Morrow RutaCanada2026-05-10Rousseaux, Michael Esq PROPOSAL23Amy Elsner
1028Misaki RoysterAustralia2026-05-26Benton, John B Jr UNQUALIFIED58Elwin Sharvill
1029Kaitlin OstroskyItaly2026-05-26Chapman, Ross E Esq RENEWAL44Xuxue Feng
1030Juan WieserSpain2026-05-13Printing Dimensions RENEWAL12Ioni Bowcher
1031Leja CaldareraItaly2026-05-12Truhlar And Truhlar Attys NEGOTIATION27Ioni Bowcher
1032Francesco ShinkoGermany2026-05-13Chapman, Ross E Esq UNQUALIFIED68Anna Fali
1033Antonio CaudyAustralia2026-05-06Buckley Miller Wright NEW1Amy Elsner
1034Jones VocelkaAustralia2026-05-11Truhlar And Truhlar Attys PROPOSAL42Asiya Javayant
1035Munro FerenczIndia2026-05-19Chapman, Ross E Esq RENEWAL54Elwin Sharvill
1036Francesco ShinkoArgentina2026-05-13Truhlar And Truhlar Attys NEW97Bernardo Dominic
1037Munro FerenczFrance2026-05-09Benton, John B Jr QUALIFIED7Ioni Bowcher
1038Alejandro PerinAustralia2026-05-02Feltz Printing Service NEGOTIATION86Bernardo Dominic
1039Maria MarrierAustralia2026-05-03Rousseaux, Michael Esq NEW50Amy Elsner
1040David DarakjyAustralia2026-05-22Benton, John B Jr NEGOTIATION26Ioni Bowcher
1041Morrow RutaRussia2026-05-18Chemel, James L Cpa QUALIFIED31Amy Elsner
1042Deepesh ChuiJapan2026-05-10Chapman, Ross E Esq QUALIFIED6Onyama Limba
1043Jefferson SchemmerFrance2026-05-20King, Christopher A Esq QUALIFIED4Anna Fali
1044Rodrigues CampainFrance2026-05-16Morlong Associates NEW52Ivan Magalhaes
1045Johnson SergiRussia2026-05-17Dorl, James J Esq QUALIFIED38Stephen Shaw
1046Mayumi KolmetzRussia2026-05-17Commercial Press PROPOSAL18Elwin Sharvill
1047Jefferson SchemmerBrazil2026-05-31Truhlar And Truhlar Attys NEGOTIATION84Bernardo Dominic
1048Francesco ShinkoIndia2026-05-26Benton, John B Jr NEGOTIATION53Xuxue Feng
1049Costa DilliardSpain2026-05-07Rousseaux, Michael Esq NEW63Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerFranceIvan Magalhaes RENEWAL
Faith GillianSpainXuxue Feng NEW
Clifford RimUnited KingdomStephen Shaw NEGOTIATION
Nicolas IturbideAustraliaBernardo Dominic UNQUALIFIED
Leja CaldareraJapanOnyama Limba RENEWAL
Kaitlin OstroskyArgentinaIvan Magalhaes NEW
Maisha RulapaughGermanyOnyama Limba RENEWAL
Octavia MaletGermanyIvan Magalhaes RENEWAL
Leja CaldareraRussiaXuxue Feng QUALIFIED
Ricardo GauchoAustraliaOnyama Limba PROPOSAL
Misaki RoysterCanadaOnyama Limba RENEWAL
Johnson SergiUnited KingdomAsiya Javayant RENEWAL
Leon OldroydAustraliaAnna Fali RENEWAL
Aika InouyeGermanyIoni Bowcher NEW
Juan WieserArgentinaElwin Sharvill RENEWAL
Stacey MacleadJapanAmy Elsner NEW
David DarakjyAustraliaStephen Shaw NEW
Sinclair WaycottCanadaAsiya Javayant UNQUALIFIED
Maisha RulapaughCanadaAnna Fali NEGOTIATION
Isabel BowleyArgentinaStephen Shaw PROPOSAL
Aika InouyeItalyBernardo Dominic RENEWAL
Chavez BriddickArgentinaIvan Magalhaes NEGOTIATION
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Wickens NestleRussiaElwin Sharvill NEGOTIATION
Ashley DoeIndiaXuxue Feng PROPOSAL
Tony FollerRussiaAnna Fali UNQUALIFIED
James ButtIndiaElwin Sharvill RENEWAL
Kadeem FlosiGermanyElwin Sharvill NEW
Maria MarrierIndiaAsiya Javayant UNQUALIFIED
Emily WhobreyBrazilIoni Bowcher PROPOSAL
Aruna FigeroaGermanyAmy Elsner QUALIFIED
Jefferson SchemmerSpainAsiya Javayant UNQUALIFIED
Claire TollnerBrazilOnyama Limba RENEWAL
Emily WhobreySpainStephen Shaw UNQUALIFIED
Murillo MaletGermanyAmy Elsner QUALIFIED
Ivar PaprockiRussiaBernardo Dominic UNQUALIFIED
Claire TollnerSpainIoni Bowcher RENEWAL
Isabel BowleyBrazilElwin Sharvill RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
Rodrigues CampainCanadaAsiya Javayant NEW
Leon OldroydBrazilAmy Elsner PROPOSAL
Smith GlickArgentinaIvan Magalhaes NEW
Arvin AlbaresArgentinaAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaIoni Bowcher NEGOTIATION
Wickens NestleSpainAmy Elsner UNQUALIFIED
Greenwood BologniaRussiaElwin Sharvill NEW
Juan WieserFranceElwin Sharvill QUALIFIED
Claire TollnerIndiaAmy Elsner NEGOTIATION
Ashley DoeGermanyBernardo Dominic NEGOTIATION
Izzy GarufiGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Aruna Figeroa
Emily Whobrey
Murillo Malet
Chavez Briddick
Arvin Albares
Adams Morasca
Isabel Bowley
Jeanfrancois Venere
Juan Wieser
Ashley Doe
Aditya Kusko
Ricardo Gaucho
Stacey Maclead
Maria Marrier
Morrow Ruta
Faith Gillian
Juan Wieser
Mayumi Kolmetz
Nicolas Iturbide
Misaki Royster
Deepesh Chui
Alejandro Perin
Misaki Royster
Arvin Albares
Kaitlin Ostrosky
Leja Caldarera
Adams Morasca
Smith Glick
Wickens Nestle
Chavez Briddick
Misaki Royster
Leon Oldroyd
Leja Caldarera
Costa Dilliard
Chavez Briddick
Cody Saylors
Francesco Shinko
Jefferson Schemmer
Jennifer Amigon
Jones Vocelka
Darci Poquette
Leon Oldroyd
Greenwood Bolognia
Aditya Kusko
Aruna Figeroa
Arvin Albares
Murillo Malet
Deepesh Chui
Jones Vocelka
Maisha Rulapaugh
IdCountryDate
1000Australia2026-05-06
1001Argentina2026-05-22
1002Germany2026-05-03
1003France2026-05-30
1004Australia2026-05-06
1005Australia2026-05-25
1006India2026-05-28
1007Russia2026-05-15
1008Brazil2026-05-28
1009Australia2026-05-20
1010Germany2026-05-15
1011Brazil2026-05-28
1012Argentina2026-05-11
1013Brazil2026-05-10
1014Argentina2026-05-24
1015Italy2026-05-07
1016Spain2026-05-14
1017Australia2026-05-21
1018Japan2026-05-13
1019Canada2026-05-14
1020Japan2026-05-18
1021Brazil2026-05-13
1022France2026-05-24
1023Russia2026-05-08
1024Germany2026-05-20
1025Canada2026-05-05
1026Japan2026-05-06
1027Brazil2026-05-23
1028United Kingdom2026-05-03
1029Brazil2026-05-16
1030Japan2026-05-09
1031Australia2026-05-28
1032United Kingdom2026-05-03
1033United Kingdom2026-05-30
1034Russia2026-05-11
1035Australia2026-05-30
1036Spain2026-05-16
1037Brazil2026-05-20
1038India2026-05-11
1039Spain2026-05-15
1040Spain2026-05-28
1041Brazil2026-05-16
1042United Kingdom2026-05-03
1043Brazil2026-05-27
1044Italy2026-05-22
1045France2026-05-30
1046Australia2026-05-20
1047Canada2026-05-08
1048Italy2026-05-08
1049Germany2026-05-14

On-Demand Data

NameIdCountryDate
Octavia Malet1000Canada2026-05-26
Octavia Malet1001Argentina2026-05-21
Mayumi Kolmetz1002Italy2026-05-18
Greenwood Bolognia1003United Kingdom2026-05-20
Arvin Albares1004Italy2026-05-22
Julie Stenseth1005Japan2026-05-07
Darci Poquette1006Japan2026-05-16
Munro Ferencz1007Japan2026-05-04
Cody Saylors1008Japan2026-05-10
Clifford Rim1009United Kingdom2026-05-03
Antonio Caudy1010Spain2026-05-23
Arvin Albares1011Australia2026-05-10
Kaitlin Ostrosky1012Germany2026-05-07
Mujtaba Nicka1013Japan2026-05-30
Izzy Garufi1014Germany2026-05-22
James Butt1015Italy2026-05-21
Maisha Rulapaugh1016Australia2026-05-17
Emily Whobrey1017Argentina2026-05-12
Greenwood Bolognia1018United Kingdom2026-05-26
Greenwood Bolognia1019United Kingdom2026-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaSpainAsiya Javayant QUALIFIED
Deepesh ChuiItalyAsiya Javayant QUALIFIED
Johnson SergiRussiaStephen Shaw NEW
Chavez BriddickItalyAsiya Javayant UNQUALIFIED
Costa DilliardArgentinaAnna Fali NEGOTIATION
Faith GillianJapanElwin Sharvill QUALIFIED
David DarakjySpainBernardo Dominic QUALIFIED
Munro FerenczArgentinaElwin Sharvill UNQUALIFIED
Aika InouyeUnited KingdomElwin Sharvill NEGOTIATION
Francesco ShinkoBrazilXuxue Feng RENEWAL
Ashley DoeGermanyAnna Fali QUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill PROPOSAL
Juan WieserFranceXuxue Feng UNQUALIFIED
Sinclair WaycottGermanyElwin Sharvill QUALIFIED
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Greenwood BologniaFranceAnna Fali PROPOSAL
Emily WhobreyItalyXuxue Feng QUALIFIED
Cody SaylorsGermanyBernardo Dominic UNQUALIFIED
James ButtUnited KingdomOnyama Limba UNQUALIFIED
Misaki RoysterBrazilIvan Magalhaes NEW
Costa DilliardJapanBernardo Dominic QUALIFIED
Tony FollerJapanIvan Magalhaes RENEWAL
Faith GillianUnited KingdomBernardo Dominic PROPOSAL
Claire TollnerItalyXuxue Feng NEGOTIATION
Clifford RimFranceAnna Fali NEW
Kaitlin OstroskyUnited KingdomXuxue Feng RENEWAL
Francesco ShinkoAustraliaXuxue Feng UNQUALIFIED
Costa DilliardCanadaIoni Bowcher RENEWAL
Tony FollerArgentinaXuxue Feng PROPOSAL
Costa DilliardIndiaAsiya Javayant UNQUALIFIED
Wickens NestleArgentinaAsiya Javayant NEGOTIATION
Francesco ShinkoItalyStephen Shaw QUALIFIED
Johnson SergiJapanIvan Magalhaes QUALIFIED
Wickens NestleItalyIvan Magalhaes PROPOSAL
Jennifer AmigonAustraliaElwin Sharvill RENEWAL
Wickens NestleCanadaElwin Sharvill QUALIFIED
Maisha RulapaughGermanyXuxue Feng NEGOTIATION
Johnson SergiFranceAmy Elsner PROPOSAL
Munro FerenczCanadaIoni Bowcher UNQUALIFIED
Izzy GarufiCanadaXuxue Feng 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>