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
Cody SaylorsFranceXuxue Feng PROPOSAL
Greenwood BologniaGermanyIvan Magalhaes PROPOSAL
Ricardo GauchoItalyAnna Fali NEW
Salvatore StockhamAustraliaStephen Shaw NEW
Silvio SlusarskiJapanAmy Elsner RENEWAL
Clifford RimGermanyIoni Bowcher QUALIFIED
Smith GlickSpainIvan Magalhaes NEW
James ButtItalyAsiya Javayant UNQUALIFIED
Faith GillianIndiaAsiya Javayant RENEWAL
Deepesh ChuiBrazilXuxue Feng PROPOSAL
James ButtBrazilElwin Sharvill QUALIFIED
Sinclair WaycottSpainElwin Sharvill PROPOSAL
Isabel BowleyIndiaAmy Elsner NEW
Ricardo GauchoArgentinaOnyama Limba RENEWAL
Leja CaldareraUnited KingdomAnna Fali QUALIFIED
Ricardo GauchoUnited KingdomIoni Bowcher NEW
Mayumi KolmetzUnited KingdomAnna Fali QUALIFIED
Maria MarrierAustraliaElwin Sharvill QUALIFIED
Maria MarrierFranceOnyama Limba NEGOTIATION
Ricardo GauchoIndiaIoni Bowcher NEGOTIATION
Misaki RoysterGermanyIoni Bowcher NEW
Ashley DoeRussiaElwin Sharvill NEGOTIATION
Tony FollerAustraliaElwin Sharvill NEW
Jennifer AmigonAustraliaIvan Magalhaes QUALIFIED
Faith GillianBrazilIoni Bowcher UNQUALIFIED
Juan WieserUnited KingdomAmy Elsner RENEWAL
Arvin AlbaresItalyIoni Bowcher PROPOSAL
Kadeem FlosiItalyElwin Sharvill UNQUALIFIED
Cody SaylorsArgentinaStephen Shaw RENEWAL
Stacey MacleadSpainElwin Sharvill PROPOSAL
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Kaitlin OstroskyBrazilAnna Fali UNQUALIFIED
Ivar PaprockiJapanXuxue Feng QUALIFIED
Smith GlickAustraliaIoni Bowcher UNQUALIFIED
Ashley DoeJapanAnna Fali NEGOTIATION
Stacey MacleadGermanyIvan Magalhaes QUALIFIED
Jeanfrancois VenereFranceIoni Bowcher NEW
David DarakjyRussiaBernardo Dominic UNQUALIFIED
Leja CaldareraIndiaStephen Shaw RENEWAL
Ivar PaprockiItalyOnyama Limba PROPOSAL
Kadeem FlosiRussiaBernardo Dominic NEW
Jefferson SchemmerUnited KingdomXuxue Feng NEGOTIATION
Izzy GarufiJapanXuxue Feng NEW
James ButtFranceAsiya Javayant NEGOTIATION
Greenwood BologniaArgentinaAsiya Javayant QUALIFIED
Kaitlin OstroskyItalyAsiya Javayant PROPOSAL
Misaki RoysterUnited KingdomStephen Shaw RENEWAL
Jones VocelkaBrazilXuxue Feng QUALIFIED
Deepesh ChuiRussiaAmy Elsner QUALIFIED
Sinclair WaycottArgentinaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyRussiaAnna Fali UNQUALIFIED
Leja CaldareraJapanAmy Elsner NEW
Mayumi KolmetzArgentinaOnyama Limba RENEWAL
Chavez BriddickGermanyOnyama Limba UNQUALIFIED
Mayumi KolmetzUnited KingdomOnyama Limba PROPOSAL
Wickens NestleBrazilBernardo Dominic UNQUALIFIED
Leja CaldareraArgentinaIvan Magalhaes NEGOTIATION
Rodrigues CampainRussiaIoni Bowcher QUALIFIED
Kadeem FlosiCanadaAmy Elsner PROPOSAL
Murillo MaletArgentinaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyUnited Kingdom2026-04-29Chemel, James L Cpa NEW62Bernardo Dominic
1001Darci PoquetteBrazil2026-04-06Chapman, Ross E Esq RENEWAL36Elwin Sharvill
1002Jennifer AmigonRussia2026-04-11King, Christopher A Esq UNQUALIFIED88Elwin Sharvill
1003Cody SaylorsGermany2026-04-10Buckley Miller Wright UNQUALIFIED76Onyama Limba
1004Adams MorascaIndia2026-04-20Printing Dimensions QUALIFIED58Asiya Javayant
1005Cody SaylorsSpain2026-04-27Printing Dimensions QUALIFIED8Ioni Bowcher
1006David DarakjySpain2026-04-28Printing Dimensions PROPOSAL86Anna Fali
1007Cody SaylorsRussia2026-04-25Chapman, Ross E Esq NEGOTIATION86Elwin Sharvill
1008Mayumi KolmetzGermany2026-04-17Truhlar And Truhlar Attys QUALIFIED15Xuxue Feng
1009Izzy GarufiFrance2026-04-01Benton, John B Jr PROPOSAL37Stephen Shaw
1010Maisha RulapaughBrazil2026-04-01Printing Dimensions NEW40Ioni Bowcher
1011Faith GillianBrazil2026-04-25Rangoni Of Florence QUALIFIED99Elwin Sharvill
1012Johnson SergiCanada2026-03-31Rousseaux, Michael Esq UNQUALIFIED52Anna Fali
1013Maria MarrierSpain2026-04-07Rangoni Of Florence NEW96Asiya Javayant
1014James ButtArgentina2026-04-06Chanay, Jeffrey A Esq NEGOTIATION82Bernardo Dominic
1015Leon OldroydBrazil2026-04-23Buckley Miller Wright RENEWAL64Xuxue Feng
1016Maisha RulapaughRussia2026-04-04Printing Dimensions RENEWAL99Ivan Magalhaes
1017Kaitlin OstroskyItaly2026-04-15Morlong Associates UNQUALIFIED9Xuxue Feng
1018Leon OldroydUnited Kingdom2026-04-07Commercial Press QUALIFIED55Amy Elsner
1019Maisha RulapaughArgentina2026-04-27Rangoni Of Florence RENEWAL6Amy Elsner
1020Nicolas IturbideCanada2026-04-08Buckley Miller Wright QUALIFIED92Amy Elsner
1021Sinclair WaycottJapan2026-04-21Printing Dimensions UNQUALIFIED87Onyama Limba
1022Ivar PaprockiIndia2026-04-15Chanay, Jeffrey A Esq QUALIFIED9Xuxue Feng
1023Maisha RulapaughUnited Kingdom2026-04-16Rousseaux, Michael Esq PROPOSAL68Elwin Sharvill
1024Antonio CaudyBrazil2026-04-11Morlong Associates UNQUALIFIED55Elwin Sharvill
1025Johnson SergiIndia2026-04-29Feltz Printing Service NEGOTIATION16Ioni Bowcher
1026Jeanfrancois VenereBrazil2026-04-14Buckley Miller Wright NEGOTIATION59Stephen Shaw
1027Claire TollnerUnited Kingdom2026-04-09Morlong Associates RENEWAL19Amy Elsner
1028Ricardo GauchoFrance2026-04-20Chapman, Ross E Esq NEGOTIATION91Bernardo Dominic
1029Chavez BriddickSpain2026-04-16Rousseaux, Michael Esq RENEWAL95Amy Elsner
1030Morrow RutaArgentina2026-04-05King, Christopher A Esq RENEWAL51Ioni Bowcher
1031Francesco ShinkoGermany2026-04-04King, Christopher A Esq RENEWAL0Anna Fali
1032Antonio CaudyUnited Kingdom2026-04-02Commercial Press PROPOSAL96Onyama Limba
1033Tony FollerSpain2026-04-13Commercial Press PROPOSAL49Stephen Shaw
1034Emily WhobreyCanada2026-04-07Chemel, James L Cpa UNQUALIFIED7Asiya Javayant
1035Maisha RulapaughRussia2026-04-16Rousseaux, Michael Esq QUALIFIED46Ioni Bowcher
1036Ashley DoeJapan2026-04-03Printing Dimensions NEW30Ioni Bowcher
1037Jeanfrancois VenereUnited Kingdom2026-04-09Rousseaux, Michael Esq PROPOSAL13Bernardo Dominic
1038Aruna FigeroaRussia2026-04-19Buckley Miller Wright UNQUALIFIED34Asiya Javayant
1039Johnson SergiItaly2026-04-04Morlong Associates NEGOTIATION56Onyama Limba
1040James ButtAustralia2026-04-12Feltz Printing Service QUALIFIED68Elwin Sharvill
1041Rodrigues CampainSpain2026-04-08Benton, John B Jr PROPOSAL37Elwin Sharvill
1042Jennifer AmigonItaly2026-04-25Chapman, Ross E Esq RENEWAL72Elwin Sharvill
1043Kadeem FlosiSpain2026-04-01Chapman, Ross E Esq NEW44Bernardo Dominic
1044Juan WieserCanada2026-04-28Benton, John B Jr QUALIFIED51Amy Elsner
1045Chavez BriddickFrance2026-04-15Truhlar And Truhlar Attys UNQUALIFIED97Asiya Javayant
1046James ButtJapan2026-04-15Rangoni Of Florence NEW22Stephen Shaw
1047Tony FollerAustralia2026-04-17Commercial Press NEW6Amy Elsner
1048Stacey MacleadUnited Kingdom2026-04-16Commercial Press UNQUALIFIED87Anna Fali
1049Aruna FigeroaUnited Kingdom2026-04-13Chapman, Ross E Esq QUALIFIED5Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianUnited KingdomBernardo Dominic PROPOSAL
Costa DilliardCanadaIoni Bowcher NEW
Costa DilliardJapanIoni Bowcher NEW
Stacey MacleadIndiaElwin Sharvill NEW
Kaitlin OstroskyCanadaIoni Bowcher NEGOTIATION
Costa DilliardSpainAsiya Javayant UNQUALIFIED
Wickens NestleJapanIvan Magalhaes RENEWAL
Smith GlickCanadaAnna Fali UNQUALIFIED
Juan WieserGermanyIvan Magalhaes NEGOTIATION
Tony FollerUnited KingdomStephen Shaw RENEWAL
Sinclair WaycottAustraliaIoni Bowcher NEGOTIATION
Nicolas IturbideRussiaAnna Fali UNQUALIFIED
Leon OldroydSpainIvan Magalhaes QUALIFIED
Jones VocelkaBrazilAnna Fali QUALIFIED
Leon OldroydBrazilIvan Magalhaes PROPOSAL
Costa DilliardFranceXuxue Feng NEW
Izzy GarufiBrazilOnyama Limba NEW
Cody SaylorsAustraliaIvan Magalhaes QUALIFIED
Misaki RoysterJapanAnna Fali NEGOTIATION
Darci PoquetteUnited KingdomIvan Magalhaes NEGOTIATION
Adams MorascaSpainIoni Bowcher PROPOSAL
Aruna FigeroaFranceStephen Shaw QUALIFIED
Kadeem FlosiJapanBernardo Dominic PROPOSAL
Mujtaba NickaFranceAmy Elsner UNQUALIFIED
Maria MarrierAustraliaAmy Elsner RENEWAL
Kaitlin OstroskyArgentinaAnna Fali NEW
Ivar PaprockiIndiaIoni Bowcher QUALIFIED
Alejandro PerinCanadaStephen Shaw UNQUALIFIED
Ivar PaprockiItalyAnna Fali NEGOTIATION
Jennifer AmigonUnited KingdomBernardo Dominic RENEWAL
Greenwood BologniaAustraliaAnna Fali QUALIFIED
David DarakjyRussiaAsiya Javayant NEGOTIATION
Aika InouyeSpainIoni Bowcher NEGOTIATION
Leon OldroydAustraliaIoni Bowcher PROPOSAL
Sinclair WaycottFranceElwin Sharvill NEW
Stacey MacleadArgentinaBernardo Dominic RENEWAL
Maisha RulapaughCanadaStephen Shaw PROPOSAL
Sinclair WaycottJapanAsiya Javayant NEGOTIATION
Chavez BriddickArgentinaXuxue Feng PROPOSAL
Arvin AlbaresUnited KingdomAnna Fali NEW
Ashley DoeUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerBrazilIvan Magalhaes NEGOTIATION
Murillo MaletAustraliaStephen Shaw UNQUALIFIED
Darci PoquetteGermanyAsiya Javayant QUALIFIED
Deepesh ChuiArgentinaIoni Bowcher PROPOSAL
Maisha RulapaughSpainAmy Elsner NEGOTIATION
Isabel BowleyItalyAsiya Javayant QUALIFIED
Arvin AlbaresJapanIvan Magalhaes PROPOSAL
Munro FerenczAustraliaIoni Bowcher UNQUALIFIED
Aika InouyeFranceStephen Shaw UNQUALIFIED
Frozen Columns
Name
Ivar Paprocki
Darci Poquette
Adams Morasca
Salvatore Stockham
Rodrigues Campain
Murillo Malet
James Butt
Nicolas Iturbide
Antonio Caudy
Munro Ferencz
Maisha Rulapaugh
Rodrigues Campain
Jefferson Schemmer
Jefferson Schemmer
Kadeem Flosi
Maria Marrier
Aditya Kusko
Claire Tollner
Chavez Briddick
Stacey Maclead
Octavia Malet
Kadeem Flosi
Julie Stenseth
David Darakjy
Francesco Shinko
Chavez Briddick
Mujtaba Nicka
Faith Gillian
Aruna Figeroa
Deepesh Chui
Morrow Ruta
Cody Saylors
Kaitlin Ostrosky
Cody Saylors
Sinclair Waycott
Antonio Caudy
Antonio Caudy
Alejandro Perin
Izzy Garufi
Morrow Ruta
Izzy Garufi
Alejandro Perin
Julie Stenseth
Juan Wieser
Misaki Royster
Maisha Rulapaugh
Costa Dilliard
Johnson Sergi
Misaki Royster
Costa Dilliard
IdCountryDate
1000United Kingdom2026-04-21
1001Germany2026-04-08
1002United Kingdom2026-04-06
1003Germany2026-04-27
1004Argentina2026-04-20
1005Japan2026-04-17
1006Spain2026-04-07
1007Australia2026-04-03
1008Canada2026-04-25
1009Canada2026-04-16
1010Argentina2026-04-27
1011Argentina2026-04-07
1012Canada2026-04-20
1013India2026-04-28
1014India2026-04-07
1015India2026-04-11
1016Brazil2026-04-24
1017United Kingdom2026-04-29
1018Argentina2026-04-19
1019India2026-04-15
1020Brazil2026-04-09
1021Brazil2026-04-05
1022Japan2026-04-12
1023Australia2026-04-23
1024Argentina2026-04-15
1025Spain2026-04-18
1026Australia2026-04-25
1027Spain2026-04-05
1028Germany2026-04-11
1029Russia2026-04-03
1030Italy2026-04-17
1031Spain2026-04-25
1032Spain2026-04-05
1033Brazil2026-04-13
1034Japan2026-04-08
1035United Kingdom2026-04-19
1036Australia2026-04-08
1037Canada2026-04-02
1038Spain2026-04-23
1039Argentina2026-04-28
1040Germany2026-04-06
1041Italy2026-03-31
1042Argentina2026-04-22
1043Argentina2026-04-16
1044Canada2026-04-05
1045Russia2026-04-18
1046United Kingdom2026-04-06
1047Argentina2026-04-23
1048India2026-04-28
1049Argentina2026-04-04

On-Demand Data

NameIdCountryDate
Aditya Kusko1000Russia2026-04-12
Aika Inouye1001Italy2026-04-07
Leon Oldroyd1002Germany2026-04-28
Nicolas Iturbide1003Canada2026-04-17
Adams Morasca1004India2026-04-16
Costa Dilliard1005United Kingdom2026-04-25
Maisha Rulapaugh1006India2026-04-28
Salvatore Stockham1007Canada2026-04-22
Izzy Garufi1008India2026-04-26
Smith Glick1009Canada2026-04-09
Isabel Bowley1010Russia2026-04-15
Mayumi Kolmetz1011Germany2026-04-12
Murillo Malet1012Russia2026-04-04
Jones Vocelka1013Spain2026-04-24
Claire Tollner1014Spain2026-04-06
Mujtaba Nicka1015France2026-04-10
Kaitlin Ostrosky1016Canada2026-04-23
Cody Saylors1017Spain2026-04-17
Chavez Briddick1018Canada2026-04-15
David Darakjy1019Australia2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerItalyElwin Sharvill QUALIFIED
Maisha RulapaughArgentinaAsiya Javayant QUALIFIED
Nicolas IturbideItalyElwin Sharvill RENEWAL
Arvin AlbaresIndiaOnyama Limba UNQUALIFIED
Sinclair WaycottGermanyAmy Elsner PROPOSAL
Isabel BowleyJapanAsiya Javayant PROPOSAL
Costa DilliardCanadaAsiya Javayant NEW
Smith GlickAustraliaXuxue Feng UNQUALIFIED
Murillo MaletIndiaElwin Sharvill RENEWAL
David DarakjyIndiaAnna Fali NEGOTIATION
Tony FollerUnited KingdomElwin Sharvill PROPOSAL
Greenwood BologniaGermanyElwin Sharvill PROPOSAL
Chavez BriddickItalyOnyama Limba NEGOTIATION
Isabel BowleyJapanBernardo Dominic PROPOSAL
Mujtaba NickaJapanAmy Elsner NEGOTIATION
Salvatore StockhamArgentinaIvan Magalhaes PROPOSAL
Juan WieserUnited KingdomXuxue Feng PROPOSAL
Murillo MaletCanadaIvan Magalhaes NEGOTIATION
Ricardo GauchoJapanElwin Sharvill QUALIFIED
David DarakjyJapanAsiya Javayant QUALIFIED
Juan WieserAustraliaOnyama Limba QUALIFIED
Jennifer AmigonIndiaIvan Magalhaes QUALIFIED
Mayumi KolmetzItalyIoni Bowcher NEGOTIATION
Alejandro PerinItalyAnna Fali NEW
Johnson SergiSpainOnyama Limba NEGOTIATION
Morrow RutaCanadaIoni Bowcher UNQUALIFIED
Tony FollerGermanyOnyama Limba PROPOSAL
Jefferson SchemmerJapanIoni Bowcher NEW
Cody SaylorsBrazilBernardo Dominic QUALIFIED
Stacey MacleadBrazilXuxue Feng PROPOSAL
Isabel BowleyFranceElwin Sharvill NEW
Mujtaba NickaUnited KingdomAnna Fali UNQUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic RENEWAL
Jeanfrancois VenereRussiaAmy Elsner RENEWAL
Greenwood BologniaCanadaAnna Fali PROPOSAL
Ricardo GauchoUnited KingdomElwin Sharvill NEGOTIATION
Jefferson SchemmerRussiaIvan Magalhaes NEW
Deepesh ChuiGermanyBernardo Dominic NEGOTIATION
Isabel BowleyRussiaStephen Shaw NEGOTIATION
Julie StensethIndiaXuxue 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>