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
Morrow RutaItalyOnyama Limba RENEWAL
James ButtGermanyAnna Fali PROPOSAL
Munro FerenczUnited KingdomAnna Fali UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw UNQUALIFIED
Jennifer AmigonItalyIvan Magalhaes NEW
Ivar PaprockiGermanyIvan Magalhaes PROPOSAL
Maisha RulapaughGermanyStephen Shaw NEGOTIATION
Sinclair WaycottItalyAsiya Javayant RENEWAL
Francesco ShinkoBrazilAmy Elsner NEGOTIATION
Ricardo GauchoJapanIvan Magalhaes RENEWAL
Claire TollnerUnited KingdomElwin Sharvill NEGOTIATION
Johnson SergiAustraliaStephen Shaw NEGOTIATION
Nicolas IturbideItalyAsiya Javayant PROPOSAL
Adams MorascaIndiaOnyama Limba UNQUALIFIED
Greenwood BologniaGermanyElwin Sharvill PROPOSAL
Jeanfrancois VenereJapanAmy Elsner NEW
Arvin AlbaresFranceAmy Elsner NEGOTIATION
Tony FollerAustraliaBernardo Dominic QUALIFIED
Greenwood BologniaFranceOnyama Limba RENEWAL
Isabel BowleyItalyBernardo Dominic NEW
Salvatore StockhamCanadaAnna Fali RENEWAL
Kaitlin OstroskyArgentinaXuxue Feng PROPOSAL
Leja CaldareraRussiaAnna Fali PROPOSAL
Maisha RulapaughGermanyXuxue Feng RENEWAL
Mujtaba NickaRussiaAmy Elsner QUALIFIED
Murillo MaletRussiaAnna Fali QUALIFIED
Adams MorascaFranceElwin Sharvill RENEWAL
Maisha RulapaughArgentinaAmy Elsner RENEWAL
Antonio CaudyBrazilIoni Bowcher NEW
Cody SaylorsIndiaElwin Sharvill NEW
James ButtGermanyOnyama Limba QUALIFIED
Aika InouyeItalyXuxue Feng NEW
Jones VocelkaSpainElwin Sharvill NEGOTIATION
Cody SaylorsFranceAnna Fali NEW
Aruna FigeroaGermanyXuxue Feng RENEWAL
Octavia MaletAustraliaElwin Sharvill PROPOSAL
Salvatore StockhamJapanBernardo Dominic UNQUALIFIED
Costa DilliardSpainXuxue Feng NEGOTIATION
Morrow RutaBrazilStephen Shaw QUALIFIED
Jennifer AmigonAustraliaAnna Fali PROPOSAL
Antonio CaudyRussiaXuxue Feng NEW
James ButtFranceXuxue Feng NEGOTIATION
Isabel BowleyItalyStephen Shaw NEGOTIATION
Munro FerenczGermanyIvan Magalhaes RENEWAL
David DarakjyAustraliaStephen Shaw RENEWAL
Chavez BriddickBrazilElwin Sharvill NEGOTIATION
Claire TollnerIndiaBernardo Dominic NEW
Izzy GarufiCanadaAnna Fali PROPOSAL
Maria MarrierRussiaXuxue Feng UNQUALIFIED
Julie StensethItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterBrazilXuxue Feng NEGOTIATION
Jefferson SchemmerUnited KingdomIoni Bowcher QUALIFIED
Clifford RimCanadaIoni Bowcher QUALIFIED
Jones VocelkaBrazilStephen Shaw NEGOTIATION
Faith GillianIndiaAsiya Javayant NEW
Misaki RoysterCanadaAnna Fali NEGOTIATION
Mayumi KolmetzUnited KingdomStephen Shaw NEGOTIATION
Ivar PaprockiFranceOnyama Limba UNQUALIFIED
Juan WieserArgentinaIvan Magalhaes NEGOTIATION
Ricardo GauchoCanadaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletArgentina2025-10-10Chemel, James L Cpa RENEWAL89Xuxue Feng
1001Sinclair WaycottJapan2025-10-05Printing Dimensions QUALIFIED46Xuxue Feng
1002Cody SaylorsItaly2025-09-17Commercial Press PROPOSAL74Anna Fali
1003Jeanfrancois VenereGermany2025-09-15Chemel, James L Cpa NEGOTIATION53Ivan Magalhaes
1004Isabel BowleyUnited Kingdom2025-09-28Morlong Associates QUALIFIED91Bernardo Dominic
1005Jeanfrancois VenereSpain2025-10-09Rousseaux, Michael Esq UNQUALIFIED33Stephen Shaw
1006Maria MarrierUnited Kingdom2025-09-16Chapman, Ross E Esq UNQUALIFIED99Ivan Magalhaes
1007Deepesh ChuiJapan2025-09-29Commercial Press PROPOSAL76Amy Elsner
1008Kadeem FlosiSpain2025-10-13Chapman, Ross E Esq PROPOSAL77Ioni Bowcher
1009Deepesh ChuiBrazil2025-09-23Chemel, James L Cpa NEW27Elwin Sharvill
1010Maria MarrierItaly2025-09-30Truhlar And Truhlar Attys NEW73Xuxue Feng
1011Jeanfrancois VenereGermany2025-09-27Benton, John B Jr PROPOSAL34Ivan Magalhaes
1012Darci PoquetteFrance2025-10-11Benton, John B Jr QUALIFIED47Elwin Sharvill
1013Aruna FigeroaRussia2025-10-08Printing Dimensions NEGOTIATION70Xuxue Feng
1014Kadeem FlosiJapan2025-09-15Buckley Miller Wright NEW97Amy Elsner
1015Sinclair WaycottArgentina2025-09-29Morlong Associates QUALIFIED44Elwin Sharvill
1016Morrow RutaGermany2025-10-14Chanay, Jeffrey A Esq NEGOTIATION48Elwin Sharvill
1017Francesco ShinkoArgentina2025-10-14Printing Dimensions UNQUALIFIED11Bernardo Dominic
1018Rodrigues CampainCanada2025-09-29Feltz Printing Service QUALIFIED0Ivan Magalhaes
1019Greenwood BologniaIndia2025-09-27Rousseaux, Michael Esq UNQUALIFIED39Ivan Magalhaes
1020Izzy GarufiArgentina2025-10-11Chemel, James L Cpa RENEWAL51Bernardo Dominic
1021Misaki RoysterSpain2025-10-04Dorl, James J Esq PROPOSAL24Stephen Shaw
1022Leon OldroydBrazil2025-09-17Dorl, James J Esq UNQUALIFIED9Elwin Sharvill
1023Sinclair WaycottRussia2025-09-27Chemel, James L Cpa QUALIFIED31Xuxue Feng
1024Mujtaba NickaItaly2025-09-21Morlong Associates PROPOSAL88Ioni Bowcher
1025Kadeem FlosiGermany2025-10-14Feltz Printing Service RENEWAL98Xuxue Feng
1026Antonio CaudyUnited Kingdom2025-10-11King, Christopher A Esq UNQUALIFIED1Bernardo Dominic
1027Claire TollnerItaly2025-10-02Commercial Press RENEWAL50Ioni Bowcher
1028Cody SaylorsSpain2025-10-06Dorl, James J Esq UNQUALIFIED12Onyama Limba
1029Silvio SlusarskiJapan2025-09-26Feltz Printing Service UNQUALIFIED32Xuxue Feng
1030Maria MarrierBrazil2025-09-21Truhlar And Truhlar Attys RENEWAL40Xuxue Feng
1031Misaki RoysterFrance2025-09-25Benton, John B Jr RENEWAL57Bernardo Dominic
1032Clifford RimSpain2025-10-14Chanay, Jeffrey A Esq PROPOSAL59Stephen Shaw
1033Ashley DoeGermany2025-10-01Rousseaux, Michael Esq NEGOTIATION23Anna Fali
1034Mayumi KolmetzBrazil2025-09-21Morlong Associates NEW34Ivan Magalhaes
1035Jones VocelkaUnited Kingdom2025-09-20Printing Dimensions NEW87Asiya Javayant
1036James ButtRussia2025-09-22Truhlar And Truhlar Attys NEGOTIATION61Anna Fali
1037Smith GlickAustralia2025-09-25Rangoni Of Florence UNQUALIFIED39Stephen Shaw
1038Cody SaylorsJapan2025-10-13Truhlar And Truhlar Attys RENEWAL27Ioni Bowcher
1039Morrow RutaArgentina2025-10-10Printing Dimensions RENEWAL89Amy Elsner
1040Chavez BriddickUnited Kingdom2025-10-02Chemel, James L Cpa NEGOTIATION49Onyama Limba
1041Munro FerenczArgentina2025-09-20Feiner Bros QUALIFIED46Amy Elsner
1042Juan WieserUnited Kingdom2025-09-24King, Christopher A Esq QUALIFIED93Asiya Javayant
1043Munro FerenczBrazil2025-09-16Commercial Press NEGOTIATION63Amy Elsner
1044Ricardo GauchoUnited Kingdom2025-09-15Chanay, Jeffrey A Esq UNQUALIFIED86Asiya Javayant
1045Silvio SlusarskiFrance2025-10-04Commercial Press QUALIFIED40Anna Fali
1046Jones VocelkaSpain2025-10-05Feiner Bros QUALIFIED55Ioni Bowcher
1047Isabel BowleyRussia2025-09-28Chapman, Ross E Esq NEW21Elwin Sharvill
1048Faith GillianGermany2025-09-21King, Christopher A Esq NEW43Ioni Bowcher
1049Kadeem FlosiJapan2025-10-11Benton, John B Jr PROPOSAL55Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerFranceAmy Elsner UNQUALIFIED
Kadeem FlosiAustraliaAnna Fali QUALIFIED
Claire TollnerAustraliaXuxue Feng UNQUALIFIED
Julie StensethGermanyAnna Fali PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic PROPOSAL
Kaitlin OstroskyItalyAnna Fali UNQUALIFIED
Maria MarrierIndiaOnyama Limba NEW
Adams MorascaFranceElwin Sharvill NEW
Maisha RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Morrow RutaCanadaXuxue Feng RENEWAL
Kaitlin OstroskyItalyAnna Fali RENEWAL
Mayumi KolmetzRussiaOnyama Limba PROPOSAL
Aditya KuskoUnited KingdomIvan Magalhaes PROPOSAL
Jennifer AmigonJapanAsiya Javayant RENEWAL
Johnson SergiUnited KingdomStephen Shaw RENEWAL
Juan WieserBrazilAsiya Javayant QUALIFIED
Ricardo GauchoArgentinaIoni Bowcher NEW
Stacey MacleadGermanyBernardo Dominic NEW
Darci PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Wickens NestleItalyBernardo Dominic PROPOSAL
Salvatore StockhamFranceIoni Bowcher NEW
Leon OldroydCanadaOnyama Limba NEGOTIATION
Salvatore StockhamArgentinaBernardo Dominic PROPOSAL
Ashley DoeBrazilIoni Bowcher NEGOTIATION
Stacey MacleadFranceXuxue Feng PROPOSAL
Maisha RulapaughArgentinaAsiya Javayant UNQUALIFIED
Silvio SlusarskiSpainAmy Elsner NEW
Deepesh ChuiSpainBernardo Dominic UNQUALIFIED
Emily WhobreyRussiaXuxue Feng QUALIFIED
James ButtSpainStephen Shaw RENEWAL
Clifford RimFranceAsiya Javayant PROPOSAL
Mayumi KolmetzItalyIvan Magalhaes NEGOTIATION
Jeanfrancois VenereItalyStephen Shaw UNQUALIFIED
Leja CaldareraArgentinaOnyama Limba QUALIFIED
Salvatore StockhamBrazilXuxue Feng NEW
David DarakjyCanadaAnna Fali QUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes NEGOTIATION
Rodrigues CampainIndiaAmy Elsner UNQUALIFIED
Mayumi KolmetzIndiaIoni Bowcher NEGOTIATION
Alejandro PerinJapanIoni Bowcher NEGOTIATION
Jones VocelkaFranceStephen Shaw NEGOTIATION
Nicolas IturbideItalyElwin Sharvill PROPOSAL
David DarakjyItalyAmy Elsner QUALIFIED
Kaitlin OstroskyRussiaAnna Fali RENEWAL
Antonio CaudyGermanyBernardo Dominic RENEWAL
Greenwood BologniaItalyAmy Elsner NEW
Octavia MaletRussiaStephen Shaw NEW
Stacey MacleadGermanyIoni Bowcher UNQUALIFIED
Julie StensethUnited KingdomBernardo Dominic QUALIFIED
Leon OldroydGermanyAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Jones Vocelka
Aika Inouye
Octavia Malet
Arvin Albares
Tony Foller
Murillo Malet
Ivar Paprocki
Leon Oldroyd
Salvatore Stockham
Julie Stenseth
Morrow Ruta
Costa Dilliard
Isabel Bowley
Julie Stenseth
Silvio Slusarski
Aruna Figeroa
Ivar Paprocki
Jefferson Schemmer
Munro Ferencz
Munro Ferencz
Julie Stenseth
Johnson Sergi
Aditya Kusko
Arvin Albares
Greenwood Bolognia
Murillo Malet
Kaitlin Ostrosky
Smith Glick
Deepesh Chui
Costa Dilliard
Francesco Shinko
Jefferson Schemmer
Claire Tollner
Faith Gillian
Juan Wieser
David Darakjy
Sinclair Waycott
Jennifer Amigon
Greenwood Bolognia
Wickens Nestle
Munro Ferencz
Silvio Slusarski
Francesco Shinko
Chavez Briddick
Faith Gillian
Adams Morasca
Sinclair Waycott
Deepesh Chui
Ashley Doe
Jeanfrancois Venere
IdCountryDate
1000Italy2025-10-02
1001Russia2025-09-22
1002Argentina2025-09-17
1003Russia2025-09-17
1004France2025-09-22
1005Brazil2025-10-02
1006India2025-09-21
1007Russia2025-10-01
1008Italy2025-10-06
1009Japan2025-09-22
1010Italy2025-09-26
1011United Kingdom2025-09-29
1012Spain2025-09-19
1013India2025-10-12
1014India2025-09-28
1015United Kingdom2025-10-04
1016France2025-09-22
1017Italy2025-10-10
1018Spain2025-09-25
1019Italy2025-10-08
1020Spain2025-09-15
1021Canada2025-09-29
1022France2025-10-05
1023Germany2025-10-03
1024United Kingdom2025-10-10
1025United Kingdom2025-10-03
1026Japan2025-10-08
1027Germany2025-09-20
1028Brazil2025-10-04
1029Australia2025-09-29
1030Italy2025-09-26
1031Germany2025-10-11
1032Italy2025-09-20
1033India2025-10-04
1034Argentina2025-10-06
1035Italy2025-09-18
1036Japan2025-10-11
1037Argentina2025-10-06
1038United Kingdom2025-09-27
1039France2025-10-04
1040Germany2025-09-30
1041Japan2025-10-08
1042Germany2025-10-08
1043Australia2025-09-19
1044Australia2025-09-27
1045Japan2025-10-10
1046France2025-09-30
1047Canada2025-10-02
1048United Kingdom2025-10-01
1049Argentina2025-09-22

On-Demand Data

NameIdCountryDate
Arvin Albares1000Japan2025-10-09
Chavez Briddick1001Brazil2025-10-10
Aika Inouye1002India2025-10-05
Ricardo Gaucho1003United Kingdom2025-10-08
Smith Glick1004Germany2025-10-09
Jones Vocelka1005Italy2025-10-12
Claire Tollner1006Spain2025-10-01
Maria Marrier1007Spain2025-10-12
Isabel Bowley1008Brazil2025-10-09
Stacey Maclead1009Japan2025-10-13
Aditya Kusko1010Italy2025-10-05
Ashley Doe1011Canada2025-10-13
Nicolas Iturbide1012India2025-09-27
Mujtaba Nicka1013Japan2025-09-16
Munro Ferencz1014Australia2025-09-17
Jeanfrancois Venere1015Argentina2025-09-18
Murillo Malet1016Spain2025-10-12
Maria Marrier1017Russia2025-10-02
Francesco Shinko1018Australia2025-09-26
Tony Foller1019Spain2025-09-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereBrazilAmy Elsner PROPOSAL
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Alejandro PerinUnited KingdomAmy Elsner NEW
Isabel BowleyCanadaElwin Sharvill UNQUALIFIED
Izzy GarufiIndiaOnyama Limba RENEWAL
Francesco ShinkoSpainElwin Sharvill PROPOSAL
Maria MarrierArgentinaAmy Elsner PROPOSAL
Aditya KuskoItalyOnyama Limba PROPOSAL
Julie StensethGermanyBernardo Dominic QUALIFIED
Misaki RoysterFranceOnyama Limba UNQUALIFIED
Stacey MacleadIndiaAnna Fali PROPOSAL
Ashley DoeArgentinaBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba QUALIFIED
Francesco ShinkoBrazilAsiya Javayant QUALIFIED
Ricardo GauchoSpainAnna Fali RENEWAL
Isabel BowleySpainXuxue Feng UNQUALIFIED
Emily WhobreyJapanElwin Sharvill UNQUALIFIED
Leon OldroydItalyStephen Shaw QUALIFIED
Claire TollnerBrazilXuxue Feng RENEWAL
Ricardo GauchoJapanXuxue Feng NEGOTIATION
Maisha RulapaughItalyBernardo Dominic UNQUALIFIED
Misaki RoysterGermanyElwin Sharvill NEGOTIATION
Stacey MacleadGermanyAsiya Javayant UNQUALIFIED
Jefferson SchemmerAustraliaAnna Fali UNQUALIFIED
Murillo MaletItalyIoni Bowcher QUALIFIED
Ivar PaprockiJapanIoni Bowcher PROPOSAL
Nicolas IturbideArgentinaOnyama Limba PROPOSAL
Chavez BriddickArgentinaAnna Fali UNQUALIFIED
Stacey MacleadArgentinaBernardo Dominic RENEWAL
Silvio SlusarskiItalyXuxue Feng NEGOTIATION
Octavia MaletUnited KingdomBernardo Dominic UNQUALIFIED
Kaitlin OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Ricardo GauchoUnited KingdomAnna Fali QUALIFIED
Deepesh ChuiFranceBernardo Dominic PROPOSAL
Alejandro PerinAustraliaAmy Elsner QUALIFIED
Silvio SlusarskiSpainBernardo Dominic RENEWAL
Darci PoquetteFranceElwin Sharvill PROPOSAL
Francesco ShinkoCanadaAsiya Javayant PROPOSAL
Costa DilliardItalyOnyama Limba RENEWAL
Greenwood BologniaArgentinaIoni Bowcher RENEWAL

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