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
Alejandro PerinItalyOnyama Limba UNQUALIFIED
Morrow RutaCanadaStephen Shaw UNQUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant PROPOSAL
Misaki RoysterArgentinaOnyama Limba RENEWAL
Cody SaylorsSpainElwin Sharvill UNQUALIFIED
Silvio SlusarskiSpainAnna Fali UNQUALIFIED
Cody SaylorsJapanStephen Shaw QUALIFIED
Silvio SlusarskiCanadaOnyama Limba PROPOSAL
Julie StensethItalyElwin Sharvill QUALIFIED
Leja CaldareraGermanyXuxue Feng QUALIFIED
Ricardo GauchoIndiaIoni Bowcher RENEWAL
Claire TollnerArgentinaOnyama Limba NEGOTIATION
Ashley DoeItalyIvan Magalhaes NEW
Aditya KuskoGermanyIoni Bowcher UNQUALIFIED
Claire TollnerUnited KingdomXuxue Feng NEGOTIATION
Stacey MacleadArgentinaXuxue Feng QUALIFIED
Jeanfrancois VenereArgentinaOnyama Limba QUALIFIED
Salvatore StockhamCanadaAmy Elsner NEW
Mujtaba NickaAustraliaIoni Bowcher RENEWAL
Emily WhobreyBrazilIvan Magalhaes NEGOTIATION
James ButtSpainAnna Fali NEGOTIATION
Julie StensethCanadaAmy Elsner NEW
Emily WhobreyIndiaElwin Sharvill RENEWAL
Maria MarrierAustraliaBernardo Dominic NEGOTIATION
Claire TollnerJapanAsiya Javayant PROPOSAL
Smith GlickJapanAnna Fali UNQUALIFIED
Ashley DoeFranceIvan Magalhaes NEW
Wickens NestleBrazilStephen Shaw PROPOSAL
Mayumi KolmetzGermanyAmy Elsner NEW
Ricardo GauchoItalyAmy Elsner UNQUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant RENEWAL
Alejandro PerinJapanIvan Magalhaes NEW
Faith GillianIndiaElwin Sharvill PROPOSAL
Juan WieserArgentinaXuxue Feng PROPOSAL
Aruna FigeroaRussiaIoni Bowcher NEW
Juan WieserSpainBernardo Dominic PROPOSAL
Leja CaldareraJapanOnyama Limba PROPOSAL
Johnson SergiJapanStephen Shaw UNQUALIFIED
Leon OldroydJapanAmy Elsner NEW
Octavia MaletUnited KingdomElwin Sharvill QUALIFIED
Deepesh ChuiRussiaAmy Elsner UNQUALIFIED
Cody SaylorsItalyStephen Shaw NEW
Costa DilliardArgentinaAmy Elsner NEW
Kadeem FlosiGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereGermanyIvan Magalhaes RENEWAL
Greenwood BologniaGermanyOnyama Limba UNQUALIFIED
Chavez BriddickCanadaBernardo Dominic PROPOSAL
Maisha RulapaughItalyElwin Sharvill NEW
Ricardo GauchoSpainIoni Bowcher PROPOSAL
Silvio SlusarskiArgentinaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jefferson SchemmerAustraliaBernardo Dominic UNQUALIFIED
Emily WhobreySpainIoni Bowcher RENEWAL
Greenwood BologniaBrazilIoni Bowcher RENEWAL
Antonio CaudyIndiaIvan Magalhaes NEGOTIATION
Cody SaylorsCanadaStephen Shaw PROPOSAL
Maria MarrierIndiaIvan Magalhaes RENEWAL
Clifford RimGermanyXuxue Feng RENEWAL
Leon OldroydIndiaStephen Shaw RENEWAL
Costa DilliardItalyAsiya Javayant NEGOTIATION
Nicolas IturbideJapanAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleUnited Kingdom2026-05-12Printing Dimensions RENEWAL12Elwin Sharvill
1001Jones VocelkaFrance2026-05-29Rangoni Of Florence NEW9Stephen Shaw
1002Adams MorascaSpain2026-05-27Printing Dimensions NEW1Elwin Sharvill
1003David DarakjyItaly2026-06-02Benton, John B Jr PROPOSAL53Onyama Limba
1004Morrow RutaJapan2026-05-11King, Christopher A Esq PROPOSAL0Elwin Sharvill
1005Kaitlin OstroskyBrazil2026-05-09Chanay, Jeffrey A Esq NEW31Ivan Magalhaes
1006Arvin AlbaresGermany2026-05-24Rousseaux, Michael Esq QUALIFIED37Elwin Sharvill
1007Claire TollnerGermany2026-06-01Chanay, Jeffrey A Esq RENEWAL40Asiya Javayant
1008Clifford RimIndia2026-05-28Printing Dimensions PROPOSAL5Asiya Javayant
1009Tony FollerCanada2026-05-07Truhlar And Truhlar Attys UNQUALIFIED83Ioni Bowcher
1010Jeanfrancois VenereRussia2026-05-20King, Christopher A Esq PROPOSAL97Anna Fali
1011Arvin AlbaresUnited Kingdom2026-05-17Printing Dimensions NEGOTIATION86Amy Elsner
1012Jefferson SchemmerIndia2026-05-26Benton, John B Jr QUALIFIED47Ioni Bowcher
1013Isabel BowleyUnited Kingdom2026-05-19Benton, John B Jr RENEWAL2Ioni Bowcher
1014Darci PoquetteAustralia2026-05-19Morlong Associates NEW41Stephen Shaw
1015Nicolas IturbideSpain2026-05-22Commercial Press UNQUALIFIED80Stephen Shaw
1016Mujtaba NickaAustralia2026-05-29Chapman, Ross E Esq RENEWAL65Ivan Magalhaes
1017James ButtUnited Kingdom2026-05-23Feltz Printing Service NEGOTIATION38Onyama Limba
1018Jennifer AmigonArgentina2026-06-02Feiner Bros RENEWAL29Anna Fali
1019Jefferson SchemmerFrance2026-05-26Feiner Bros NEW72Asiya Javayant
1020Antonio CaudyGermany2026-06-03Morlong Associates RENEWAL49Stephen Shaw
1021Jeanfrancois VenereAustralia2026-05-07Morlong Associates RENEWAL20Amy Elsner
1022Murillo MaletAustralia2026-05-15Feltz Printing Service NEW87Asiya Javayant
1023Ivar PaprockiGermany2026-05-12Commercial Press NEGOTIATION53Xuxue Feng
1024Mayumi KolmetzBrazil2026-05-15Truhlar And Truhlar Attys QUALIFIED85Onyama Limba
1025Deepesh ChuiUnited Kingdom2026-05-31Rangoni Of Florence NEW48Ioni Bowcher
1026Antonio CaudyAustralia2026-05-05Benton, John B Jr PROPOSAL28Anna Fali
1027Murillo MaletArgentina2026-05-30Truhlar And Truhlar Attys NEGOTIATION8Stephen Shaw
1028Deepesh ChuiSpain2026-05-06Chemel, James L Cpa NEW85Amy Elsner
1029Greenwood BologniaUnited Kingdom2026-05-12Dorl, James J Esq PROPOSAL73Bernardo Dominic
1030Francesco ShinkoGermany2026-05-06Morlong Associates RENEWAL93Asiya Javayant
1031Isabel BowleyBrazil2026-06-01Printing Dimensions NEGOTIATION13Stephen Shaw
1032Sinclair WaycottArgentina2026-05-23Chapman, Ross E Esq UNQUALIFIED68Amy Elsner
1033Salvatore StockhamUnited Kingdom2026-05-28Feiner Bros NEGOTIATION22Asiya Javayant
1034Misaki RoysterArgentina2026-05-20Morlong Associates UNQUALIFIED31Xuxue Feng
1035Deepesh ChuiUnited Kingdom2026-05-26Feltz Printing Service NEGOTIATION81Anna Fali
1036Faith GillianJapan2026-05-21Printing Dimensions UNQUALIFIED71Onyama Limba
1037Misaki RoysterItaly2026-05-21King, Christopher A Esq NEW87Onyama Limba
1038Aruna FigeroaCanada2026-05-10Buckley Miller Wright RENEWAL63Asiya Javayant
1039James ButtSpain2026-05-11Feltz Printing Service RENEWAL98Amy Elsner
1040Munro FerenczUnited Kingdom2026-05-18Feiner Bros NEW78Amy Elsner
1041Jeanfrancois VenereRussia2026-05-05Feltz Printing Service RENEWAL54Bernardo Dominic
1042Leja CaldareraJapan2026-05-28King, Christopher A Esq PROPOSAL46Ivan Magalhaes
1043David DarakjyItaly2026-05-25Rousseaux, Michael Esq UNQUALIFIED70Anna Fali
1044Ricardo GauchoUnited Kingdom2026-06-02Feiner Bros PROPOSAL50Bernardo Dominic
1045Rodrigues CampainSpain2026-05-08Benton, John B Jr NEW71Xuxue Feng
1046Clifford RimUnited Kingdom2026-05-24Feltz Printing Service NEGOTIATION53Asiya Javayant
1047Murillo MaletGermany2026-05-08Chanay, Jeffrey A Esq RENEWAL1Asiya Javayant
1048Misaki RoysterCanada2026-05-21Chemel, James L Cpa NEW69Elwin Sharvill
1049Wickens NestleUnited Kingdom2026-05-23Rangoni Of Florence PROPOSAL48Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaBrazilXuxue Feng UNQUALIFIED
Jones VocelkaFranceIoni Bowcher PROPOSAL
Chavez BriddickJapanAsiya Javayant NEW
Salvatore StockhamIndiaElwin Sharvill NEW
Rodrigues CampainCanadaOnyama Limba NEW
Maria MarrierRussiaBernardo Dominic RENEWAL
Leja CaldareraUnited KingdomAsiya Javayant NEGOTIATION
Murillo MaletUnited KingdomAnna Fali PROPOSAL
Silvio SlusarskiArgentinaElwin Sharvill PROPOSAL
Cody SaylorsArgentinaIoni Bowcher NEGOTIATION
David DarakjyGermanyIoni Bowcher RENEWAL
Faith GillianAustraliaIvan Magalhaes UNQUALIFIED
Costa DilliardCanadaAsiya Javayant NEW
Jefferson SchemmerGermanyStephen Shaw RENEWAL
Jefferson SchemmerSpainAmy Elsner UNQUALIFIED
Izzy GarufiCanadaAsiya Javayant NEGOTIATION
Misaki RoysterItalyAmy Elsner NEW
Silvio SlusarskiIndiaAsiya Javayant NEW
Mujtaba NickaAustraliaAsiya Javayant NEGOTIATION
Leja CaldareraSpainXuxue Feng NEW
Munro FerenczGermanyOnyama Limba UNQUALIFIED
Deepesh ChuiSpainIoni Bowcher NEGOTIATION
Misaki RoysterIndiaElwin Sharvill PROPOSAL
Jefferson SchemmerItalyIvan Magalhaes RENEWAL
Leja CaldareraRussiaAmy Elsner NEGOTIATION
Julie StensethSpainAnna Fali UNQUALIFIED
Julie StensethFranceXuxue Feng UNQUALIFIED
Morrow RutaAustraliaBernardo Dominic NEW
Morrow RutaIndiaBernardo Dominic NEW
Alejandro PerinArgentinaOnyama Limba RENEWAL
Sinclair WaycottArgentinaAnna Fali UNQUALIFIED
Deepesh ChuiFranceIvan Magalhaes UNQUALIFIED
Tony FollerSpainBernardo Dominic PROPOSAL
Kadeem FlosiItalyOnyama Limba NEW
Jeanfrancois VenereGermanyAmy Elsner NEW
Sinclair WaycottIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaSpainOnyama Limba RENEWAL
Kadeem FlosiArgentinaAsiya Javayant RENEWAL
Claire TollnerCanadaAsiya Javayant PROPOSAL
Ivar PaprockiJapanAnna Fali NEGOTIATION
Stacey MacleadJapanAmy Elsner RENEWAL
Mayumi KolmetzJapanIvan Magalhaes PROPOSAL
Wickens NestleSpainIoni Bowcher NEGOTIATION
Mujtaba NickaItalyIoni Bowcher UNQUALIFIED
Maisha RulapaughJapanXuxue Feng PROPOSAL
Jeanfrancois VenereAustraliaElwin Sharvill PROPOSAL
Emily WhobreyJapanAmy Elsner UNQUALIFIED
Ivar PaprockiAustraliaAmy Elsner QUALIFIED
Smith GlickRussiaBernardo Dominic NEW
James ButtJapanStephen Shaw UNQUALIFIED
Frozen Columns
Name
Cody Saylors
Octavia Malet
Julie Stenseth
Stacey Maclead
David Darakjy
Leja Caldarera
Salvatore Stockham
Smith Glick
Deepesh Chui
Costa Dilliard
Octavia Malet
Izzy Garufi
Jefferson Schemmer
Misaki Royster
Deepesh Chui
Costa Dilliard
David Darakjy
Wickens Nestle
Tony Foller
Munro Ferencz
Maria Marrier
Maisha Rulapaugh
Rodrigues Campain
Darci Poquette
Aika Inouye
Smith Glick
Kadeem Flosi
Mayumi Kolmetz
Aika Inouye
Smith Glick
Jones Vocelka
Cody Saylors
Maria Marrier
Maisha Rulapaugh
Jeanfrancois Venere
Nicolas Iturbide
Kadeem Flosi
Deepesh Chui
Chavez Briddick
Emily Whobrey
Aditya Kusko
Silvio Slusarski
Costa Dilliard
Salvatore Stockham
Sinclair Waycott
Nicolas Iturbide
Morrow Ruta
Ivar Paprocki
Jeanfrancois Venere
Greenwood Bolognia
IdCountryDate
1000Argentina2026-05-11
1001Japan2026-05-06
1002France2026-05-08
1003Germany2026-05-05
1004Italy2026-05-06
1005Brazil2026-05-15
1006Italy2026-05-22
1007Brazil2026-06-03
1008Spain2026-05-14
1009Germany2026-05-27
1010India2026-05-19
1011Russia2026-05-25
1012India2026-05-08
1013Germany2026-06-01
1014Canada2026-05-18
1015Brazil2026-06-01
1016Japan2026-05-31
1017France2026-05-17
1018Italy2026-05-08
1019Brazil2026-05-17
1020United Kingdom2026-05-17
1021Canada2026-05-21
1022France2026-05-25
1023Italy2026-05-15
1024Australia2026-05-17
1025Russia2026-05-18
1026Canada2026-05-10
1027France2026-05-24
1028Spain2026-05-09
1029Australia2026-05-05
1030Brazil2026-05-18
1031Canada2026-06-02
1032Italy2026-05-24
1033Russia2026-05-28
1034Canada2026-05-15
1035India2026-05-06
1036Argentina2026-05-21
1037Russia2026-05-11
1038Australia2026-05-14
1039Germany2026-05-11
1040Italy2026-05-24
1041United Kingdom2026-05-10
1042Argentina2026-05-12
1043Canada2026-05-24
1044United Kingdom2026-05-10
1045Brazil2026-05-25
1046Spain2026-05-28
1047Argentina2026-05-25
1048France2026-05-25
1049India2026-06-03

On-Demand Data

NameIdCountryDate
Smith Glick1000United Kingdom2026-05-17
Jefferson Schemmer1001Germany2026-05-31
Jones Vocelka1002United Kingdom2026-05-10
James Butt1003India2026-05-25
Maria Marrier1004Japan2026-05-17
Jeanfrancois Venere1005Spain2026-05-31
Aruna Figeroa1006France2026-05-15
Sinclair Waycott1007Spain2026-05-08
Ricardo Gaucho1008Argentina2026-05-20
Jefferson Schemmer1009Australia2026-05-13
Nicolas Iturbide1010Japan2026-05-14
Clifford Rim1011Japan2026-05-31
Sinclair Waycott1012France2026-06-02
Jennifer Amigon1013India2026-05-30
Leon Oldroyd1014Russia2026-05-29
Salvatore Stockham1015Russia2026-05-29
Murillo Malet1016Argentina2026-05-09
Murillo Malet1017Japan2026-05-05
Maisha Rulapaugh1018Japan2026-05-29
Ashley Doe1019Spain2026-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoItalyAnna Fali NEGOTIATION
Johnson SergiUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanXuxue Feng NEW
Rodrigues CampainBrazilIvan Magalhaes NEW
Salvatore StockhamArgentinaAnna Fali RENEWAL
James ButtItalyElwin Sharvill RENEWAL
Jefferson SchemmerAustraliaIoni Bowcher QUALIFIED
Arvin AlbaresIndiaAsiya Javayant RENEWAL
Silvio SlusarskiRussiaElwin Sharvill PROPOSAL
Faith GillianAustraliaAsiya Javayant NEW
Aruna FigeroaAustraliaElwin Sharvill QUALIFIED
Kaitlin OstroskyFranceElwin Sharvill NEGOTIATION
Isabel BowleyCanadaOnyama Limba NEGOTIATION
Munro FerenczItalyXuxue Feng NEW
Jones VocelkaAustraliaXuxue Feng RENEWAL
Morrow RutaArgentinaOnyama Limba NEW
Chavez BriddickGermanyAsiya Javayant PROPOSAL
Deepesh ChuiFranceXuxue Feng NEW
Mujtaba NickaIndiaAmy Elsner QUALIFIED
Kaitlin OstroskySpainAmy Elsner QUALIFIED
Leon OldroydAustraliaAmy Elsner PROPOSAL
Leja CaldareraUnited KingdomElwin Sharvill QUALIFIED
Jefferson SchemmerGermanyIvan Magalhaes NEW
Maria MarrierIndiaXuxue Feng PROPOSAL
Adams MorascaItalyAmy Elsner QUALIFIED
Aditya KuskoCanadaOnyama Limba RENEWAL
Jefferson SchemmerSpainStephen Shaw RENEWAL
Mayumi KolmetzUnited KingdomIvan Magalhaes RENEWAL
Mayumi KolmetzBrazilXuxue Feng UNQUALIFIED
Jeanfrancois VenereFranceElwin Sharvill NEGOTIATION
Murillo MaletJapanIvan Magalhaes RENEWAL
Julie StensethIndiaElwin Sharvill NEGOTIATION
Jones VocelkaUnited KingdomElwin Sharvill PROPOSAL
Morrow RutaAustraliaOnyama Limba UNQUALIFIED
Leja CaldareraUnited KingdomBernardo Dominic PROPOSAL
Francesco ShinkoAustraliaAsiya Javayant PROPOSAL
Stacey MacleadRussiaAmy Elsner UNQUALIFIED
Leon OldroydRussiaAsiya Javayant RENEWAL
Salvatore StockhamSpainOnyama Limba RENEWAL
Morrow RutaCanadaXuxue Feng 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>