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
Darci PoquetteFranceIoni Bowcher RENEWAL
Francesco ShinkoBrazilAnna Fali QUALIFIED
Jones VocelkaJapanOnyama Limba UNQUALIFIED
Isabel BowleyBrazilIvan Magalhaes RENEWAL
Aditya KuskoBrazilXuxue Feng UNQUALIFIED
David DarakjySpainIoni Bowcher QUALIFIED
Morrow RutaAustraliaAsiya Javayant NEGOTIATION
Aika InouyeRussiaAsiya Javayant NEGOTIATION
Emily WhobreyBrazilXuxue Feng UNQUALIFIED
Chavez BriddickCanadaElwin Sharvill RENEWAL
Kaitlin OstroskyGermanyStephen Shaw NEGOTIATION
Chavez BriddickGermanyIoni Bowcher UNQUALIFIED
Costa DilliardGermanyIoni Bowcher UNQUALIFIED
Ivar PaprockiArgentinaIvan Magalhaes NEW
Francesco ShinkoItalyBernardo Dominic PROPOSAL
Silvio SlusarskiGermanyAsiya Javayant UNQUALIFIED
Jefferson SchemmerItalyAsiya Javayant QUALIFIED
Isabel BowleyIndiaAsiya Javayant QUALIFIED
Claire TollnerCanadaStephen Shaw PROPOSAL
Munro FerenczBrazilXuxue Feng NEW
Kaitlin OstroskyBrazilAsiya Javayant PROPOSAL
James ButtAustraliaAnna Fali NEW
Misaki RoysterJapanXuxue Feng NEW
Adams MorascaFranceAnna Fali NEGOTIATION
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
Misaki RoysterIndiaAsiya Javayant NEW
Antonio CaudyUnited KingdomOnyama Limba NEW
Johnson SergiRussiaAmy Elsner QUALIFIED
Jeanfrancois VenereFranceIoni Bowcher NEGOTIATION
Costa DilliardFranceXuxue Feng NEGOTIATION
Darci PoquetteCanadaXuxue Feng PROPOSAL
Ivar PaprockiIndiaXuxue Feng NEW
Kadeem FlosiSpainIvan Magalhaes NEW
Kadeem FlosiArgentinaOnyama Limba NEW
Emily WhobreyCanadaElwin Sharvill RENEWAL
Arvin AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Leon OldroydAustraliaOnyama Limba RENEWAL
Aruna FigeroaFranceAsiya Javayant QUALIFIED
Mayumi KolmetzArgentinaAsiya Javayant NEW
Faith GillianItalyXuxue Feng PROPOSAL
Rodrigues CampainJapanAnna Fali RENEWAL
Adams MorascaSpainAsiya Javayant RENEWAL
Isabel BowleyUnited KingdomElwin Sharvill UNQUALIFIED
David DarakjyUnited KingdomElwin Sharvill NEW
Claire TollnerUnited KingdomBernardo Dominic RENEWAL
Leon OldroydAustraliaBernardo Dominic QUALIFIED
Leon OldroydArgentinaAmy Elsner NEW
Faith GillianSpainIoni Bowcher NEW
Nicolas IturbideRussiaOnyama Limba QUALIFIED
Tony FollerGermanyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Tony FollerUnited KingdomStephen Shaw NEW
Aika InouyeArgentinaXuxue Feng RENEWAL
Francesco ShinkoArgentinaXuxue Feng UNQUALIFIED
Faith GillianIndiaXuxue Feng UNQUALIFIED
Nicolas IturbideSpainAsiya Javayant PROPOSAL
Deepesh ChuiUnited KingdomAmy Elsner UNQUALIFIED
Deepesh ChuiIndiaIvan Magalhaes NEW
Smith GlickIndiaBernardo Dominic NEGOTIATION
Rodrigues CampainGermanyBernardo Dominic RENEWAL
Wickens NestleItalyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaArgentina2026-05-13Printing Dimensions NEGOTIATION31Elwin Sharvill
1001Sinclair WaycottUnited Kingdom2026-04-25Commercial Press RENEWAL4Elwin Sharvill
1002Kadeem FlosiUnited Kingdom2026-05-14Chanay, Jeffrey A Esq NEW57Anna Fali
1003Faith GillianFrance2026-05-01Printing Dimensions NEGOTIATION24Amy Elsner
1004Emily WhobreyCanada2026-04-18Printing Dimensions PROPOSAL48Stephen Shaw
1005Kaitlin OstroskyJapan2026-05-06Rangoni Of Florence RENEWAL50Onyama Limba
1006Smith GlickCanada2026-05-13King, Christopher A Esq RENEWAL90Onyama Limba
1007Tony FollerRussia2026-04-20Chemel, James L Cpa NEW90Onyama Limba
1008Jennifer AmigonBrazil2026-04-30Dorl, James J Esq NEGOTIATION46Bernardo Dominic
1009James ButtUnited Kingdom2026-04-25Morlong Associates UNQUALIFIED75Bernardo Dominic
1010Julie StensethArgentina2026-04-17Benton, John B Jr UNQUALIFIED44Bernardo Dominic
1011Johnson SergiFrance2026-04-24Feiner Bros UNQUALIFIED43Stephen Shaw
1012James ButtItaly2026-04-17Morlong Associates NEW35Elwin Sharvill
1013Stacey MacleadGermany2026-04-30Chemel, James L Cpa UNQUALIFIED51Asiya Javayant
1014Isabel BowleyFrance2026-04-25Morlong Associates NEGOTIATION28Xuxue Feng
1015Juan WieserGermany2026-04-17Printing Dimensions QUALIFIED78Onyama Limba
1016Silvio SlusarskiUnited Kingdom2026-05-06Chanay, Jeffrey A Esq QUALIFIED98Asiya Javayant
1017Misaki RoysterSpain2026-04-25Printing Dimensions RENEWAL81Ioni Bowcher
1018Claire TollnerBrazil2026-04-30Feiner Bros RENEWAL6Ivan Magalhaes
1019Mayumi KolmetzFrance2026-05-07Truhlar And Truhlar Attys UNQUALIFIED35Ioni Bowcher
1020Salvatore StockhamIndia2026-05-08King, Christopher A Esq PROPOSAL75Bernardo Dominic
1021Julie StensethItaly2026-04-20Truhlar And Truhlar Attys PROPOSAL23Onyama Limba
1022Leon OldroydSpain2026-04-20Rangoni Of Florence RENEWAL30Elwin Sharvill
1023Stacey MacleadCanada2026-05-13Dorl, James J Esq NEW19Xuxue Feng
1024Ivar PaprockiItaly2026-05-10King, Christopher A Esq RENEWAL64Elwin Sharvill
1025Deepesh ChuiJapan2026-04-16Dorl, James J Esq RENEWAL40Elwin Sharvill
1026Aditya KuskoItaly2026-05-13Rousseaux, Michael Esq RENEWAL13Asiya Javayant
1027Ricardo GauchoCanada2026-05-14Benton, John B Jr PROPOSAL10Amy Elsner
1028Deepesh ChuiIndia2026-04-21Chemel, James L Cpa RENEWAL92Anna Fali
1029Stacey MacleadItaly2026-04-21Chemel, James L Cpa PROPOSAL43Onyama Limba
1030Salvatore StockhamBrazil2026-05-10Feltz Printing Service UNQUALIFIED82Elwin Sharvill
1031Faith GillianSpain2026-05-09Chapman, Ross E Esq UNQUALIFIED2Elwin Sharvill
1032Maria MarrierIndia2026-05-14King, Christopher A Esq PROPOSAL62Elwin Sharvill
1033James ButtJapan2026-04-26King, Christopher A Esq NEGOTIATION52Asiya Javayant
1034Murillo MaletAustralia2026-05-13Chemel, James L Cpa QUALIFIED58Ivan Magalhaes
1035Arvin AlbaresUnited Kingdom2026-04-17Buckley Miller Wright NEGOTIATION31Stephen Shaw
1036Greenwood BologniaCanada2026-05-10Chanay, Jeffrey A Esq QUALIFIED72Stephen Shaw
1037Leon OldroydFrance2026-04-17Benton, John B Jr NEW61Ioni Bowcher
1038Maria MarrierCanada2026-04-25Feiner Bros PROPOSAL8Elwin Sharvill
1039Faith GillianUnited Kingdom2026-05-09Chanay, Jeffrey A Esq QUALIFIED95Ivan Magalhaes
1040Kaitlin OstroskyGermany2026-04-26Chapman, Ross E Esq RENEWAL49Stephen Shaw
1041Wickens NestleGermany2026-04-27Benton, John B Jr QUALIFIED10Ivan Magalhaes
1042Aditya KuskoIndia2026-04-23Truhlar And Truhlar Attys NEW40Elwin Sharvill
1043Octavia MaletRussia2026-04-16Printing Dimensions RENEWAL61Onyama Limba
1044Aika InouyeCanada2026-04-30King, Christopher A Esq QUALIFIED67Xuxue Feng
1045Clifford RimIndia2026-04-28Feiner Bros NEW81Stephen Shaw
1046Ricardo GauchoUnited Kingdom2026-04-25Chemel, James L Cpa NEGOTIATION25Ioni Bowcher
1047Costa DilliardArgentina2026-05-09Rousseaux, Michael Esq NEGOTIATION47Bernardo Dominic
1048Wickens NestleJapan2026-05-02Feltz Printing Service NEGOTIATION7Asiya Javayant
1049Nicolas IturbideSpain2026-05-04Morlong Associates NEW3Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaXuxue Feng RENEWAL
Arvin AlbaresRussiaIvan Magalhaes QUALIFIED
Misaki RoysterIndiaAnna Fali RENEWAL
Leja CaldareraItalyElwin Sharvill UNQUALIFIED
Chavez BriddickArgentinaOnyama Limba QUALIFIED
Murillo MaletIndiaStephen Shaw NEW
Isabel BowleyArgentinaStephen Shaw NEW
Salvatore StockhamBrazilAmy Elsner NEGOTIATION
Greenwood BologniaRussiaXuxue Feng PROPOSAL
Ricardo GauchoJapanIoni Bowcher NEGOTIATION
Cody SaylorsAustraliaAsiya Javayant RENEWAL
Jefferson SchemmerBrazilAmy Elsner NEW
Octavia MaletRussiaAsiya Javayant NEGOTIATION
Aika InouyeJapanAnna Fali UNQUALIFIED
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Aika InouyeArgentinaIvan Magalhaes UNQUALIFIED
Greenwood BologniaAustraliaAnna Fali PROPOSAL
Chavez BriddickAustraliaOnyama Limba QUALIFIED
Chavez BriddickJapanIvan Magalhaes RENEWAL
Octavia MaletSpainIvan Magalhaes UNQUALIFIED
Costa DilliardArgentinaAmy Elsner NEW
Stacey MacleadJapanXuxue Feng NEGOTIATION
Silvio SlusarskiItalyAsiya Javayant UNQUALIFIED
Salvatore StockhamSpainAsiya Javayant NEW
Cody SaylorsSpainXuxue Feng QUALIFIED
Greenwood BologniaAustraliaStephen Shaw QUALIFIED
Alejandro PerinBrazilIoni Bowcher NEW
Misaki RoysterArgentinaXuxue Feng QUALIFIED
Morrow RutaGermanyAnna Fali UNQUALIFIED
Ricardo GauchoAustraliaStephen Shaw NEGOTIATION
Aruna FigeroaItalyIoni Bowcher UNQUALIFIED
Juan WieserGermanyAnna Fali QUALIFIED
Cody SaylorsBrazilAsiya Javayant QUALIFIED
Ashley DoeSpainAnna Fali NEGOTIATION
Maisha RulapaughJapanIoni Bowcher QUALIFIED
Leon OldroydBrazilAnna Fali NEGOTIATION
Johnson SergiSpainIoni Bowcher UNQUALIFIED
Darci PoquetteAustraliaXuxue Feng NEGOTIATION
Aika InouyeAustraliaIoni Bowcher RENEWAL
Salvatore StockhamCanadaStephen Shaw NEGOTIATION
Misaki RoysterGermanyOnyama Limba PROPOSAL
Darci PoquetteIndiaXuxue Feng PROPOSAL
Alejandro PerinSpainOnyama Limba QUALIFIED
Aditya KuskoBrazilElwin Sharvill RENEWAL
Maria MarrierBrazilOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomBernardo Dominic PROPOSAL
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Aditya KuskoIndiaAsiya Javayant UNQUALIFIED
Aditya KuskoIndiaXuxue Feng QUALIFIED
Aika InouyeArgentinaAsiya Javayant RENEWAL
Frozen Columns
Name
Smith Glick
Arvin Albares
Munro Ferencz
Francesco Shinko
Arvin Albares
Adams Morasca
Antonio Caudy
Ashley Doe
Maisha Rulapaugh
Octavia Malet
Aika Inouye
Smith Glick
Munro Ferencz
Salvatore Stockham
Johnson Sergi
Aditya Kusko
Munro Ferencz
Mujtaba Nicka
Aruna Figeroa
Cody Saylors
Greenwood Bolognia
David Darakjy
Nicolas Iturbide
Smith Glick
Aditya Kusko
Maisha Rulapaugh
Octavia Malet
Arvin Albares
Clifford Rim
Murillo Malet
Aruna Figeroa
Arvin Albares
Ashley Doe
Leon Oldroyd
Tony Foller
Smith Glick
Rodrigues Campain
Darci Poquette
Leon Oldroyd
Francesco Shinko
David Darakjy
Arvin Albares
Leon Oldroyd
Chavez Briddick
Faith Gillian
Clifford Rim
Jones Vocelka
Clifford Rim
Arvin Albares
Emily Whobrey
IdCountryDate
1000United Kingdom2026-04-29
1001Russia2026-04-23
1002Germany2026-05-11
1003Italy2026-04-16
1004India2026-05-06
1005Argentina2026-04-19
1006Brazil2026-04-19
1007Australia2026-04-23
1008Argentina2026-05-03
1009Brazil2026-04-29
1010France2026-05-04
1011Russia2026-04-18
1012Spain2026-05-09
1013United Kingdom2026-04-21
1014Brazil2026-04-27
1015France2026-04-24
1016India2026-05-13
1017Italy2026-04-17
1018Brazil2026-04-17
1019Spain2026-05-12
1020Brazil2026-05-10
1021India2026-05-01
1022Germany2026-04-27
1023Japan2026-05-13
1024Japan2026-04-20
1025Australia2026-05-04
1026Germany2026-04-25
1027United Kingdom2026-05-07
1028Spain2026-05-10
1029United Kingdom2026-05-02
1030Russia2026-05-12
1031Russia2026-04-18
1032France2026-05-14
1033Australia2026-05-14
1034Australia2026-04-17
1035Brazil2026-05-04
1036Spain2026-04-25
1037Australia2026-04-18
1038Germany2026-04-18
1039Australia2026-05-10
1040Australia2026-05-08
1041Russia2026-04-19
1042United Kingdom2026-05-03
1043Argentina2026-05-11
1044Spain2026-04-25
1045Brazil2026-05-12
1046Japan2026-04-20
1047Japan2026-05-12
1048Brazil2026-04-24
1049Japan2026-04-15

On-Demand Data

NameIdCountryDate
Juan Wieser1000Australia2026-05-03
Claire Tollner1001Canada2026-05-08
Ashley Doe1002Australia2026-05-12
Darci Poquette1003United Kingdom2026-05-05
Francesco Shinko1004Australia2026-04-15
Silvio Slusarski1005Italy2026-05-02
Ricardo Gaucho1006Spain2026-05-02
Faith Gillian1007Canada2026-04-16
Deepesh Chui1008Brazil2026-04-15
Jennifer Amigon1009Spain2026-05-09
Cody Saylors1010France2026-05-05
Wickens Nestle1011Japan2026-04-16
Darci Poquette1012Australia2026-04-17
Wickens Nestle1013Germany2026-04-25
Kadeem Flosi1014Spain2026-05-02
Clifford Rim1015Canada2026-05-06
Smith Glick1016United Kingdom2026-04-22
Murillo Malet1017India2026-05-07
Clifford Rim1018United Kingdom2026-04-28
Ivar Paprocki1019Russia2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottBrazilBernardo Dominic NEGOTIATION
Johnson SergiItalyAnna Fali QUALIFIED
James ButtGermanyBernardo Dominic UNQUALIFIED
Chavez BriddickUnited KingdomIvan Magalhaes RENEWAL
Jefferson SchemmerRussiaElwin Sharvill PROPOSAL
Jennifer AmigonCanadaBernardo Dominic UNQUALIFIED
Francesco ShinkoAustraliaIoni Bowcher NEW
Ricardo GauchoArgentinaAsiya Javayant NEW
Leja CaldareraItalyAmy Elsner UNQUALIFIED
Salvatore StockhamIndiaAsiya Javayant NEGOTIATION
Kadeem FlosiRussiaXuxue Feng QUALIFIED
Julie StensethBrazilIoni Bowcher RENEWAL
Jefferson SchemmerBrazilIoni Bowcher NEW
Murillo MaletJapanAmy Elsner UNQUALIFIED
Ricardo GauchoBrazilIoni Bowcher RENEWAL
Silvio SlusarskiFranceBernardo Dominic NEGOTIATION
Antonio CaudyCanadaStephen Shaw UNQUALIFIED
Stacey MacleadSpainIoni Bowcher UNQUALIFIED
Munro FerenczSpainAsiya Javayant QUALIFIED
Tony FollerAustraliaAnna Fali UNQUALIFIED
Julie StensethBrazilAsiya Javayant NEW
Izzy GarufiSpainIoni Bowcher PROPOSAL
Jones VocelkaArgentinaAsiya Javayant NEW
Octavia MaletCanadaAmy Elsner RENEWAL
Emily WhobreyIndiaStephen Shaw NEW
Greenwood BologniaFranceBernardo Dominic UNQUALIFIED
Arvin AlbaresJapanIoni Bowcher NEGOTIATION
Aika InouyeGermanyStephen Shaw QUALIFIED
Kadeem FlosiAustraliaElwin Sharvill RENEWAL
Darci PoquetteItalyXuxue Feng NEW
Salvatore StockhamAustraliaAsiya Javayant NEGOTIATION
Mayumi KolmetzRussiaAsiya Javayant NEGOTIATION
Octavia MaletFranceIoni Bowcher RENEWAL
Wickens NestleAustraliaBernardo Dominic PROPOSAL
Clifford RimIndiaAmy Elsner RENEWAL
Maisha RulapaughCanadaIvan Magalhaes NEGOTIATION
Kaitlin OstroskySpainStephen Shaw RENEWAL
Isabel BowleyUnited KingdomStephen Shaw RENEWAL
Faith GillianJapanAnna Fali PROPOSAL
Johnson SergiIndiaBernardo Dominic 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>