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
Leon OldroydCanadaIoni Bowcher NEGOTIATION
Salvatore StockhamBrazilAnna Fali RENEWAL
Adams MorascaBrazilIvan Magalhaes QUALIFIED
Salvatore StockhamGermanyIvan Magalhaes RENEWAL
David DarakjyItalyIvan Magalhaes RENEWAL
Antonio CaudyJapanAmy Elsner UNQUALIFIED
Leon OldroydGermanyBernardo Dominic UNQUALIFIED
Salvatore StockhamFranceOnyama Limba UNQUALIFIED
Murillo MaletArgentinaOnyama Limba NEGOTIATION
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Antonio CaudyGermanyStephen Shaw PROPOSAL
Arvin AlbaresAustraliaXuxue Feng UNQUALIFIED
Ivar PaprockiGermanyStephen Shaw QUALIFIED
Aika InouyeUnited KingdomAsiya Javayant NEGOTIATION
Maria MarrierFranceElwin Sharvill QUALIFIED
Juan WieserGermanyOnyama Limba PROPOSAL
Cody SaylorsFranceStephen Shaw NEGOTIATION
Francesco ShinkoAustraliaXuxue Feng PROPOSAL
Salvatore StockhamJapanAmy Elsner QUALIFIED
Costa DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Clifford RimBrazilAmy Elsner NEW
Jeanfrancois VenereFranceIvan Magalhaes UNQUALIFIED
Aika InouyeFranceIvan Magalhaes NEGOTIATION
Aditya KuskoFranceBernardo Dominic NEW
Francesco ShinkoRussiaElwin Sharvill PROPOSAL
Deepesh ChuiIndiaOnyama Limba PROPOSAL
Alejandro PerinBrazilIoni Bowcher PROPOSAL
Maria MarrierItalyAsiya Javayant RENEWAL
Tony FollerUnited KingdomXuxue Feng RENEWAL
Isabel BowleySpainIvan Magalhaes UNQUALIFIED
Mayumi KolmetzGermanyStephen Shaw PROPOSAL
Antonio CaudyIndiaStephen Shaw NEGOTIATION
Smith GlickCanadaAsiya Javayant QUALIFIED
Mujtaba NickaGermanyXuxue Feng NEGOTIATION
Faith GillianRussiaStephen Shaw NEW
Maria MarrierSpainXuxue Feng QUALIFIED
Jennifer AmigonJapanAnna Fali RENEWAL
Salvatore StockhamIndiaXuxue Feng PROPOSAL
Munro FerenczSpainIoni Bowcher NEW
Nicolas IturbideArgentinaAsiya Javayant NEGOTIATION
Rodrigues CampainFranceIoni Bowcher UNQUALIFIED
Salvatore StockhamCanadaAnna Fali NEW
Kaitlin OstroskyJapanOnyama Limba NEW
Leja CaldareraCanadaElwin Sharvill NEW
Costa DilliardSpainAnna Fali NEGOTIATION
Salvatore StockhamFranceAmy Elsner UNQUALIFIED
Costa DilliardFranceElwin Sharvill NEW
Darci PoquetteItalyAnna Fali NEW
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleFranceAnna Fali QUALIFIED
Aika InouyeJapanOnyama Limba UNQUALIFIED
Adams MorascaIndiaStephen Shaw QUALIFIED
Alejandro PerinGermanyOnyama Limba RENEWAL
Arvin AlbaresRussiaIvan Magalhaes NEW
Antonio CaudyCanadaIvan Magalhaes QUALIFIED
Nicolas IturbideRussiaOnyama Limba PROPOSAL
Arvin AlbaresBrazilXuxue Feng NEGOTIATION
Salvatore StockhamJapanElwin Sharvill PROPOSAL
Cody SaylorsRussiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaJapan2026-06-06Buckley Miller Wright RENEWAL48Bernardo Dominic
1001Ashley DoeRussia2026-06-13Buckley Miller Wright UNQUALIFIED53Ioni Bowcher
1002Morrow RutaAustralia2026-06-02Chemel, James L Cpa RENEWAL7Onyama Limba
1003Emily WhobreyItaly2026-06-03Printing Dimensions NEGOTIATION18Stephen Shaw
1004Aditya KuskoAustralia2026-06-11Rousseaux, Michael Esq UNQUALIFIED43Ioni Bowcher
1005Cody SaylorsItaly2026-05-30Chemel, James L Cpa RENEWAL96Elwin Sharvill
1006Nicolas IturbideBrazil2026-05-27Chemel, James L Cpa RENEWAL40Bernardo Dominic
1007Murillo MaletBrazil2026-05-28Rangoni Of Florence PROPOSAL12Ioni Bowcher
1008Clifford RimSpain2026-05-15Printing Dimensions UNQUALIFIED87Ivan Magalhaes
1009Costa DilliardRussia2026-05-26Buckley Miller Wright PROPOSAL2Ivan Magalhaes
1010Faith GillianRussia2026-06-05Rousseaux, Michael Esq NEW94Xuxue Feng
1011Adams MorascaRussia2026-05-15Morlong Associates RENEWAL41Ivan Magalhaes
1012Salvatore StockhamUnited Kingdom2026-05-16Benton, John B Jr NEW77Onyama Limba
1013Adams MorascaAustralia2026-06-01Commercial Press UNQUALIFIED48Onyama Limba
1014Arvin AlbaresGermany2026-06-06Buckley Miller Wright RENEWAL75Anna Fali
1015Izzy GarufiCanada2026-05-28Rangoni Of Florence NEGOTIATION37Stephen Shaw
1016Aruna FigeroaSpain2026-06-08Feltz Printing Service RENEWAL39Ioni Bowcher
1017Morrow RutaUnited Kingdom2026-05-31Rousseaux, Michael Esq UNQUALIFIED62Bernardo Dominic
1018Jeanfrancois VenereAustralia2026-05-22Benton, John B Jr NEGOTIATION84Ivan Magalhaes
1019Rodrigues CampainRussia2026-05-15Chanay, Jeffrey A Esq NEGOTIATION1Anna Fali
1020Ricardo GauchoGermany2026-05-30King, Christopher A Esq RENEWAL18Onyama Limba
1021Isabel BowleyItaly2026-05-19Truhlar And Truhlar Attys UNQUALIFIED68Onyama Limba
1022Clifford RimCanada2026-05-18Benton, John B Jr QUALIFIED16Bernardo Dominic
1023Jefferson SchemmerRussia2026-05-24Chemel, James L Cpa QUALIFIED34Xuxue Feng
1024Nicolas IturbideSpain2026-05-31Buckley Miller Wright UNQUALIFIED96Bernardo Dominic
1025Munro FerenczRussia2026-05-16Truhlar And Truhlar Attys NEGOTIATION42Stephen Shaw
1026Aika InouyeUnited Kingdom2026-06-06King, Christopher A Esq PROPOSAL19Bernardo Dominic
1027Leja CaldareraIndia2026-05-31King, Christopher A Esq NEW71Onyama Limba
1028Juan WieserCanada2026-05-16Printing Dimensions UNQUALIFIED1Stephen Shaw
1029Izzy GarufiArgentina2026-06-08Printing Dimensions NEGOTIATION26Xuxue Feng
1030Ricardo GauchoArgentina2026-06-13Dorl, James J Esq RENEWAL91Ioni Bowcher
1031Francesco ShinkoFrance2026-05-16Rousseaux, Michael Esq NEGOTIATION99Elwin Sharvill
1032Julie StensethUnited Kingdom2026-05-20Buckley Miller Wright QUALIFIED4Elwin Sharvill
1033Mujtaba NickaArgentina2026-06-06Feiner Bros QUALIFIED74Anna Fali
1034Octavia MaletBrazil2026-05-27Rangoni Of Florence NEW20Xuxue Feng
1035Jennifer AmigonArgentina2026-05-21Chapman, Ross E Esq RENEWAL25Elwin Sharvill
1036Antonio CaudyCanada2026-05-28Chemel, James L Cpa NEW41Onyama Limba
1037Greenwood BologniaAustralia2026-06-09Printing Dimensions UNQUALIFIED94Asiya Javayant
1038Kadeem FlosiFrance2026-05-16King, Christopher A Esq NEGOTIATION31Asiya Javayant
1039Kadeem FlosiCanada2026-05-24Printing Dimensions QUALIFIED27Ivan Magalhaes
1040Alejandro PerinRussia2026-05-19Rousseaux, Michael Esq PROPOSAL11Asiya Javayant
1041James ButtFrance2026-06-10Rangoni Of Florence NEW67Asiya Javayant
1042Tony FollerGermany2026-05-22King, Christopher A Esq QUALIFIED80Ivan Magalhaes
1043Nicolas IturbideIndia2026-05-29Feiner Bros UNQUALIFIED80Asiya Javayant
1044Maria MarrierAustralia2026-05-16Buckley Miller Wright QUALIFIED74Asiya Javayant
1045Misaki RoysterItaly2026-05-26Truhlar And Truhlar Attys NEW40Asiya Javayant
1046Sinclair WaycottBrazil2026-06-01Chapman, Ross E Esq NEGOTIATION82Asiya Javayant
1047Clifford RimIndia2026-05-21Buckley Miller Wright PROPOSAL51Amy Elsner
1048Leja CaldareraGermany2026-06-07Feltz Printing Service UNQUALIFIED73Stephen Shaw
1049Julie StensethFrance2026-05-22Buckley Miller Wright NEGOTIATION76Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Antonio CaudyRussiaBernardo Dominic UNQUALIFIED
Juan WieserCanadaAmy Elsner UNQUALIFIED
Aditya KuskoSpainAmy Elsner PROPOSAL
Maria MarrierGermanyElwin Sharvill PROPOSAL
Darci PoquetteFranceOnyama Limba UNQUALIFIED
Mujtaba NickaCanadaOnyama Limba UNQUALIFIED
Jones VocelkaFranceBernardo Dominic QUALIFIED
Morrow RutaCanadaElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomIvan Magalhaes NEGOTIATION
Ashley DoeFranceElwin Sharvill RENEWAL
Smith GlickGermanyAsiya Javayant PROPOSAL
Kadeem FlosiGermanyXuxue Feng PROPOSAL
Kaitlin OstroskyArgentinaElwin Sharvill PROPOSAL
Julie StensethItalyElwin Sharvill NEGOTIATION
Kadeem FlosiBrazilAnna Fali PROPOSAL
Jefferson SchemmerFranceXuxue Feng RENEWAL
Murillo MaletJapanXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaOnyama Limba NEGOTIATION
Johnson SergiRussiaStephen Shaw NEW
Arvin AlbaresGermanyAnna Fali RENEWAL
Stacey MacleadRussiaOnyama Limba QUALIFIED
Nicolas IturbideArgentinaXuxue Feng NEGOTIATION
Jennifer AmigonUnited KingdomXuxue Feng NEGOTIATION
Munro FerenczAustraliaElwin Sharvill RENEWAL
Emily WhobreyAustraliaElwin Sharvill NEW
Munro FerenczFranceXuxue Feng PROPOSAL
James ButtItalyXuxue Feng PROPOSAL
Silvio SlusarskiGermanyAmy Elsner PROPOSAL
Ricardo GauchoRussiaIoni Bowcher NEGOTIATION
Jones VocelkaRussiaBernardo Dominic PROPOSAL
Aruna FigeroaGermanyAmy Elsner NEW
Maria MarrierUnited KingdomOnyama Limba QUALIFIED
Emily WhobreyAustraliaBernardo Dominic NEGOTIATION
Johnson SergiBrazilStephen Shaw UNQUALIFIED
Isabel BowleyItalyAmy Elsner QUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Jones VocelkaArgentinaXuxue Feng PROPOSAL
Maisha RulapaughArgentinaOnyama Limba QUALIFIED
Juan WieserGermanyIvan Magalhaes UNQUALIFIED
Ashley DoeItalyAnna Fali PROPOSAL
Arvin AlbaresItalyOnyama Limba UNQUALIFIED
Maria MarrierFranceStephen Shaw NEGOTIATION
Alejandro PerinCanadaStephen Shaw RENEWAL
Octavia MaletCanadaElwin Sharvill RENEWAL
Smith GlickJapanElwin Sharvill QUALIFIED
Maria MarrierBrazilXuxue Feng UNQUALIFIED
Jones VocelkaJapanOnyama Limba RENEWAL
Julie StensethIndiaBernardo Dominic NEGOTIATION
Chavez BriddickSpainIoni Bowcher NEW
Jeanfrancois VenereItalyElwin Sharvill NEGOTIATION
Frozen Columns
Name
Alejandro Perin
Arvin Albares
Morrow Ruta
Wickens Nestle
Francesco Shinko
Salvatore Stockham
Alejandro Perin
Clifford Rim
Clifford Rim
Salvatore Stockham
Chavez Briddick
Munro Ferencz
Adams Morasca
Jefferson Schemmer
Darci Poquette
Murillo Malet
Leon Oldroyd
Wickens Nestle
Jefferson Schemmer
Mujtaba Nicka
Jennifer Amigon
Leja Caldarera
Misaki Royster
Ricardo Gaucho
Wickens Nestle
Deepesh Chui
Jeanfrancois Venere
Ivar Paprocki
Antonio Caudy
Stacey Maclead
Kadeem Flosi
Aika Inouye
Murillo Malet
Darci Poquette
Wickens Nestle
Claire Tollner
Isabel Bowley
Deepesh Chui
Ashley Doe
Silvio Slusarski
Rodrigues Campain
Antonio Caudy
Juan Wieser
Izzy Garufi
Aruna Figeroa
David Darakjy
Alejandro Perin
Adams Morasca
James Butt
Faith Gillian
IdCountryDate
1000Japan2026-05-16
1001Russia2026-06-01
1002Australia2026-06-05
1003Australia2026-05-31
1004United Kingdom2026-05-15
1005United Kingdom2026-05-15
1006Italy2026-05-19
1007Japan2026-06-04
1008Italy2026-06-03
1009India2026-05-23
1010Italy2026-06-05
1011Spain2026-06-10
1012India2026-05-26
1013Italy2026-06-05
1014Italy2026-05-29
1015Brazil2026-05-30
1016Argentina2026-06-05
1017Russia2026-05-21
1018Australia2026-05-24
1019Germany2026-05-26
1020United Kingdom2026-06-12
1021Brazil2026-05-22
1022Italy2026-06-01
1023Japan2026-05-26
1024Germany2026-05-21
1025Japan2026-05-31
1026Australia2026-05-15
1027Brazil2026-05-21
1028Spain2026-05-30
1029India2026-06-08
1030United Kingdom2026-06-11
1031France2026-06-10
1032France2026-05-18
1033India2026-06-09
1034Germany2026-05-29
1035Japan2026-06-03
1036Germany2026-05-22
1037India2026-05-24
1038United Kingdom2026-05-28
1039Germany2026-05-25
1040Italy2026-06-05
1041Japan2026-05-19
1042United Kingdom2026-05-31
1043Japan2026-05-31
1044Germany2026-05-26
1045United Kingdom2026-05-31
1046Canada2026-05-30
1047Australia2026-05-22
1048India2026-05-22
1049Italy2026-06-06

On-Demand Data

NameIdCountryDate
Chavez Briddick1000India2026-05-27
Costa Dilliard1001Germany2026-05-16
Smith Glick1002Germany2026-05-27
David Darakjy1003Argentina2026-06-13
Julie Stenseth1004Germany2026-05-15
Julie Stenseth1005India2026-06-11
Julie Stenseth1006Italy2026-05-18
Maisha Rulapaugh1007Italy2026-05-29
Misaki Royster1008Russia2026-05-16
Adams Morasca1009India2026-05-23
Aika Inouye1010France2026-06-05
Kadeem Flosi1011Canada2026-05-16
Silvio Slusarski1012Japan2026-05-26
Faith Gillian1013Germany2026-05-21
Deepesh Chui1014Canada2026-06-09
Julie Stenseth1015Argentina2026-05-23
Aruna Figeroa1016Australia2026-06-06
Costa Dilliard1017Italy2026-06-13
Cody Saylors1018Brazil2026-05-26
Aika Inouye1019Japan2026-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiArgentinaBernardo Dominic NEGOTIATION
Darci PoquetteUnited KingdomOnyama Limba RENEWAL
Munro FerenczCanadaBernardo Dominic RENEWAL
Costa DilliardUnited KingdomAmy Elsner NEGOTIATION
Costa DilliardGermanyIoni Bowcher UNQUALIFIED
Jefferson SchemmerFranceBernardo Dominic NEW
Deepesh ChuiCanadaIoni Bowcher UNQUALIFIED
Ivar PaprockiCanadaStephen Shaw NEGOTIATION
Silvio SlusarskiAustraliaStephen Shaw PROPOSAL
Ricardo GauchoItalyAmy Elsner NEGOTIATION
Adams MorascaBrazilAmy Elsner NEW
Murillo MaletGermanyAsiya Javayant PROPOSAL
James ButtBrazilAmy Elsner RENEWAL
James ButtArgentinaBernardo Dominic QUALIFIED
Aika InouyeBrazilIvan Magalhaes NEW
Emily WhobreySpainIvan Magalhaes RENEWAL
Juan WieserAustraliaElwin Sharvill UNQUALIFIED
Maria MarrierRussiaAmy Elsner UNQUALIFIED
Chavez BriddickGermanyXuxue Feng NEGOTIATION
Deepesh ChuiAustraliaIoni Bowcher QUALIFIED
Salvatore StockhamBrazilIoni Bowcher PROPOSAL
Adams MorascaCanadaStephen Shaw RENEWAL
Kadeem FlosiAustraliaXuxue Feng NEGOTIATION
Ricardo GauchoBrazilIoni Bowcher UNQUALIFIED
Leon OldroydIndiaXuxue Feng PROPOSAL
Ashley DoeAustraliaOnyama Limba RENEWAL
Wickens NestleAustraliaIoni Bowcher NEGOTIATION
Ashley DoeJapanAsiya Javayant UNQUALIFIED
Aika InouyeArgentinaIoni Bowcher NEW
Adams MorascaAustraliaIvan Magalhaes UNQUALIFIED
Octavia MaletJapanIoni Bowcher UNQUALIFIED
Ivar PaprockiRussiaAsiya Javayant PROPOSAL
Adams MorascaItalyOnyama Limba NEW
Ashley DoeSpainXuxue Feng QUALIFIED
Jones VocelkaJapanElwin Sharvill RENEWAL
David DarakjyArgentinaXuxue Feng UNQUALIFIED
Salvatore StockhamIndiaElwin Sharvill UNQUALIFIED
James ButtSpainIoni Bowcher RENEWAL
Morrow RutaFranceStephen Shaw QUALIFIED
Cody SaylorsFranceIoni Bowcher NEGOTIATION

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