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
Maria MarrierGermanyAsiya Javayant QUALIFIED
Antonio CaudyItalyIoni Bowcher NEGOTIATION
Julie StensethArgentinaOnyama Limba QUALIFIED
Sinclair WaycottArgentinaBernardo Dominic RENEWAL
Morrow RutaSpainAmy Elsner QUALIFIED
Johnson SergiArgentinaAnna Fali UNQUALIFIED
Jones VocelkaJapanIoni Bowcher QUALIFIED
Deepesh ChuiIndiaElwin Sharvill RENEWAL
Kaitlin OstroskyBrazilIvan Magalhaes UNQUALIFIED
Mayumi KolmetzGermanyOnyama Limba RENEWAL
Silvio SlusarskiItalyXuxue Feng NEGOTIATION
Clifford RimRussiaAsiya Javayant UNQUALIFIED
Mayumi KolmetzJapanElwin Sharvill NEW
Mayumi KolmetzFranceElwin Sharvill QUALIFIED
Clifford RimItalyXuxue Feng RENEWAL
Deepesh ChuiIndiaOnyama Limba UNQUALIFIED
Wickens NestleCanadaAnna Fali UNQUALIFIED
Stacey MacleadBrazilBernardo Dominic QUALIFIED
Claire TollnerGermanyAnna Fali NEGOTIATION
Julie StensethItalyElwin Sharvill QUALIFIED
Antonio CaudyAustraliaAnna Fali QUALIFIED
Maria MarrierAustraliaOnyama Limba QUALIFIED
Greenwood BologniaCanadaAmy Elsner QUALIFIED
Francesco ShinkoGermanyAnna Fali NEW
Aruna FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Cody SaylorsJapanBernardo Dominic QUALIFIED
Jeanfrancois VenereFranceAmy Elsner NEW
Juan WieserBrazilOnyama Limba RENEWAL
Costa DilliardGermanyXuxue Feng NEW
David DarakjyCanadaAsiya Javayant QUALIFIED
James ButtAustraliaXuxue Feng RENEWAL
Misaki RoysterUnited KingdomStephen Shaw QUALIFIED
Juan WieserItalyAmy Elsner UNQUALIFIED
Wickens NestleCanadaAnna Fali NEW
Ivar PaprockiFranceAsiya Javayant QUALIFIED
Deepesh ChuiGermanyIoni Bowcher NEGOTIATION
Ashley DoeCanadaOnyama Limba NEW
Munro FerenczJapanIvan Magalhaes PROPOSAL
Silvio SlusarskiBrazilIvan Magalhaes UNQUALIFIED
Johnson SergiFranceAmy Elsner UNQUALIFIED
Sinclair WaycottJapanXuxue Feng PROPOSAL
Jefferson SchemmerIndiaAnna Fali NEGOTIATION
Nicolas IturbideArgentinaOnyama Limba NEW
Cody SaylorsAustraliaIvan Magalhaes NEW
Jeanfrancois VenereItalyOnyama Limba PROPOSAL
Darci PoquetteCanadaIoni Bowcher RENEWAL
Silvio SlusarskiJapanIoni Bowcher RENEWAL
Rodrigues CampainBrazilBernardo Dominic NEGOTIATION
Rodrigues CampainJapanAsiya Javayant PROPOSAL
Alejandro PerinRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyAustraliaElwin Sharvill NEGOTIATION
Morrow RutaCanadaBernardo Dominic RENEWAL
Murillo MaletUnited KingdomAsiya Javayant NEW
Salvatore StockhamItalyIoni Bowcher QUALIFIED
Kaitlin OstroskyJapanXuxue Feng NEW
Silvio SlusarskiFranceAsiya Javayant QUALIFIED
Wickens NestleCanadaBernardo Dominic PROPOSAL
Morrow RutaArgentinaBernardo Dominic NEW
Antonio CaudyRussiaIvan Magalhaes NEW
Jefferson SchemmerSpainAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtItaly2026-05-20Chapman, Ross E Esq NEGOTIATION62Anna Fali
1001Alejandro PerinBrazil2026-05-03Buckley Miller Wright RENEWAL44Ioni Bowcher
1002Kaitlin OstroskyIndia2026-04-26Feltz Printing Service QUALIFIED31Bernardo Dominic
1003Munro FerenczJapan2026-04-29Morlong Associates NEGOTIATION44Stephen Shaw
1004Smith GlickRussia2026-05-23Buckley Miller Wright NEW97Ioni Bowcher
1005David DarakjyFrance2026-05-03Printing Dimensions NEW32Amy Elsner
1006Aditya KuskoRussia2026-05-23Rousseaux, Michael Esq PROPOSAL57Ioni Bowcher
1007Rodrigues CampainArgentina2026-05-02Benton, John B Jr NEGOTIATION51Ivan Magalhaes
1008Sinclair WaycottArgentina2026-05-21Feltz Printing Service NEW55Asiya Javayant
1009Morrow RutaJapan2026-05-12Morlong Associates UNQUALIFIED8Onyama Limba
1010Alejandro PerinAustralia2026-05-06Chemel, James L Cpa NEGOTIATION55Asiya Javayant
1011Julie StensethCanada2026-05-18Buckley Miller Wright NEGOTIATION8Xuxue Feng
1012Silvio SlusarskiFrance2026-04-25Feltz Printing Service NEW1Asiya Javayant
1013Juan WieserAustralia2026-05-06Rangoni Of Florence NEGOTIATION38Ioni Bowcher
1014David DarakjyJapan2026-05-19King, Christopher A Esq PROPOSAL22Xuxue Feng
1015Kadeem FlosiRussia2026-05-04Benton, John B Jr RENEWAL61Anna Fali
1016Johnson SergiArgentina2026-04-24Feltz Printing Service NEGOTIATION14Ivan Magalhaes
1017Jefferson SchemmerSpain2026-05-14Commercial Press UNQUALIFIED75Amy Elsner
1018Salvatore StockhamAustralia2026-05-06Morlong Associates RENEWAL19Amy Elsner
1019Leja CaldareraFrance2026-05-16Printing Dimensions QUALIFIED40Anna Fali
1020Misaki RoysterFrance2026-05-10Benton, John B Jr NEW77Ioni Bowcher
1021Jennifer AmigonJapan2026-04-26King, Christopher A Esq RENEWAL34Ivan Magalhaes
1022Juan WieserRussia2026-05-15Feiner Bros NEGOTIATION14Asiya Javayant
1023Jeanfrancois VenereRussia2026-05-16Printing Dimensions UNQUALIFIED91Amy Elsner
1024Sinclair WaycottArgentina2026-04-27Chemel, James L Cpa RENEWAL3Onyama Limba
1025Juan WieserSpain2026-05-12Chapman, Ross E Esq NEW68Stephen Shaw
1026Juan WieserCanada2026-04-30Truhlar And Truhlar Attys RENEWAL62Bernardo Dominic
1027Nicolas IturbideJapan2026-04-30Morlong Associates PROPOSAL21Stephen Shaw
1028Costa DilliardBrazil2026-05-19Chanay, Jeffrey A Esq NEGOTIATION38Ivan Magalhaes
1029Aditya KuskoJapan2026-05-09Chanay, Jeffrey A Esq RENEWAL46Bernardo Dominic
1030Greenwood BologniaUnited Kingdom2026-05-18Chemel, James L Cpa PROPOSAL19Xuxue Feng
1031Mayumi KolmetzRussia2026-05-04Chapman, Ross E Esq PROPOSAL89Elwin Sharvill
1032Arvin AlbaresJapan2026-05-12Feltz Printing Service UNQUALIFIED16Amy Elsner
1033Jefferson SchemmerBrazil2026-04-25Dorl, James J Esq RENEWAL32Asiya Javayant
1034Aika InouyeGermany2026-05-06Benton, John B Jr NEW92Ivan Magalhaes
1035Salvatore StockhamArgentina2026-05-13Morlong Associates RENEWAL53Onyama Limba
1036Johnson SergiSpain2026-04-28Truhlar And Truhlar Attys PROPOSAL7Ivan Magalhaes
1037Claire TollnerArgentina2026-04-28Feltz Printing Service RENEWAL39Amy Elsner
1038Munro FerenczCanada2026-05-17Commercial Press NEGOTIATION24Ioni Bowcher
1039Aditya KuskoCanada2026-05-13Truhlar And Truhlar Attys UNQUALIFIED47Anna Fali
1040Maria MarrierBrazil2026-05-11King, Christopher A Esq RENEWAL6Ivan Magalhaes
1041Morrow RutaCanada2026-04-26Feiner Bros PROPOSAL90Elwin Sharvill
1042Aruna FigeroaGermany2026-04-28Chemel, James L Cpa NEW44Ioni Bowcher
1043Aruna FigeroaGermany2026-04-25Benton, John B Jr RENEWAL90Ioni Bowcher
1044Wickens NestleRussia2026-05-04Chemel, James L Cpa NEW51Onyama Limba
1045Aditya KuskoFrance2026-05-19Chanay, Jeffrey A Esq UNQUALIFIED55Anna Fali
1046Maisha RulapaughRussia2026-05-17Feltz Printing Service RENEWAL40Ioni Bowcher
1047Morrow RutaItaly2026-04-27Morlong Associates QUALIFIED44Stephen Shaw
1048Claire TollnerSpain2026-05-16Commercial Press NEGOTIATION2Amy Elsner
1049Aika InouyeArgentina2026-04-29Morlong Associates NEW41Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydRussiaXuxue Feng QUALIFIED
Arvin AlbaresBrazilBernardo Dominic QUALIFIED
Greenwood BologniaIndiaAnna Fali NEGOTIATION
Alejandro PerinArgentinaAmy Elsner NEGOTIATION
Deepesh ChuiRussiaStephen Shaw PROPOSAL
Sinclair WaycottSpainAnna Fali UNQUALIFIED
Arvin AlbaresArgentinaIvan Magalhaes RENEWAL
Johnson SergiJapanElwin Sharvill NEGOTIATION
Ashley DoeArgentinaAmy Elsner NEGOTIATION
Juan WieserSpainAmy Elsner NEW
Jennifer AmigonIndiaIvan Magalhaes PROPOSAL
Ricardo GauchoSpainElwin Sharvill PROPOSAL
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Aruna FigeroaFranceAmy Elsner NEGOTIATION
Kaitlin OstroskyAustraliaElwin Sharvill NEGOTIATION
Ashley DoeBrazilIvan Magalhaes NEGOTIATION
Alejandro PerinRussiaBernardo Dominic QUALIFIED
Adams MorascaFranceAsiya Javayant PROPOSAL
Jefferson SchemmerFranceOnyama Limba NEGOTIATION
Antonio CaudyCanadaAnna Fali RENEWAL
Kadeem FlosiJapanBernardo Dominic QUALIFIED
Aditya KuskoBrazilAnna Fali PROPOSAL
Emily WhobreyBrazilIvan Magalhaes NEW
Ashley DoeArgentinaIvan Magalhaes NEW
Rodrigues CampainAustraliaBernardo Dominic PROPOSAL
Chavez BriddickAustraliaAsiya Javayant NEGOTIATION
Aditya KuskoGermanyIvan Magalhaes RENEWAL
Silvio SlusarskiSpainIvan Magalhaes NEGOTIATION
Greenwood BologniaRussiaAsiya Javayant UNQUALIFIED
Nicolas IturbideJapanIvan Magalhaes UNQUALIFIED
Aika InouyeArgentinaAsiya Javayant UNQUALIFIED
Nicolas IturbideSpainElwin Sharvill PROPOSAL
Clifford RimJapanAsiya Javayant NEGOTIATION
Antonio CaudyFranceOnyama Limba RENEWAL
Julie StensethCanadaAsiya Javayant NEGOTIATION
Deepesh ChuiJapanElwin Sharvill UNQUALIFIED
Rodrigues CampainGermanyBernardo Dominic NEGOTIATION
Jones VocelkaIndiaIoni Bowcher RENEWAL
Johnson SergiFranceIvan Magalhaes UNQUALIFIED
Alejandro PerinRussiaAsiya Javayant QUALIFIED
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
Munro FerenczGermanyIvan Magalhaes NEW
Nicolas IturbideRussiaOnyama Limba QUALIFIED
Kadeem FlosiItalyOnyama Limba UNQUALIFIED
Alejandro PerinAustraliaAnna Fali NEW
Sinclair WaycottIndiaAsiya Javayant UNQUALIFIED
Izzy GarufiRussiaElwin Sharvill NEGOTIATION
Ivar PaprockiUnited KingdomXuxue Feng QUALIFIED
Cody SaylorsRussiaElwin Sharvill UNQUALIFIED
Nicolas IturbideJapanIoni Bowcher QUALIFIED
Frozen Columns
Name
James Butt
Mujtaba Nicka
Greenwood Bolognia
Mayumi Kolmetz
Mujtaba Nicka
Wickens Nestle
Alejandro Perin
Ricardo Gaucho
Aditya Kusko
Juan Wieser
Faith Gillian
Octavia Malet
Claire Tollner
Wickens Nestle
Kadeem Flosi
Leon Oldroyd
Rodrigues Campain
Nicolas Iturbide
Cody Saylors
Maisha Rulapaugh
Morrow Ruta
Jennifer Amigon
Ivar Paprocki
Aditya Kusko
Leon Oldroyd
Kadeem Flosi
James Butt
Jeanfrancois Venere
Antonio Caudy
Johnson Sergi
Costa Dilliard
Claire Tollner
Aika Inouye
Izzy Garufi
Nicolas Iturbide
Leja Caldarera
Izzy Garufi
Munro Ferencz
Chavez Briddick
Silvio Slusarski
Jennifer Amigon
Aruna Figeroa
Sinclair Waycott
Izzy Garufi
Mujtaba Nicka
Clifford Rim
Ashley Doe
Leja Caldarera
Tony Foller
Jeanfrancois Venere
IdCountryDate
1000United Kingdom2026-05-03
1001United Kingdom2026-05-20
1002France2026-04-30
1003United Kingdom2026-05-02
1004United Kingdom2026-05-13
1005France2026-05-23
1006Brazil2026-05-08
1007Canada2026-04-29
1008Brazil2026-05-14
1009Spain2026-05-18
1010Italy2026-05-20
1011Australia2026-04-24
1012Italy2026-05-19
1013United Kingdom2026-04-25
1014Spain2026-05-12
1015Brazil2026-05-09
1016United Kingdom2026-05-04
1017United Kingdom2026-05-05
1018United Kingdom2026-05-10
1019Australia2026-04-27
1020United Kingdom2026-05-21
1021Russia2026-04-29
1022Spain2026-05-15
1023Germany2026-05-02
1024India2026-04-27
1025Japan2026-05-01
1026Italy2026-05-19
1027Brazil2026-05-19
1028Brazil2026-04-24
1029France2026-05-07
1030Japan2026-05-05
1031Canada2026-05-16
1032France2026-05-18
1033Italy2026-05-20
1034Canada2026-04-25
1035France2026-05-16
1036Russia2026-05-18
1037Spain2026-05-15
1038France2026-04-28
1039India2026-04-29
1040France2026-05-19
1041Australia2026-05-01
1042Japan2026-05-20
1043Spain2026-05-15
1044Russia2026-05-22
1045Canada2026-04-26
1046Spain2026-05-05
1047Brazil2026-04-29
1048Italy2026-05-09
1049Italy2026-05-16

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000France2026-05-20
Jefferson Schemmer1001Japan2026-05-16
Juan Wieser1002Russia2026-05-13
Antonio Caudy1003India2026-05-21
Jennifer Amigon1004Italy2026-04-26
Ashley Doe1005United Kingdom2026-05-06
Nicolas Iturbide1006India2026-05-12
Silvio Slusarski1007Australia2026-05-05
Morrow Ruta1008Germany2026-05-16
Salvatore Stockham1009Argentina2026-05-16
Kaitlin Ostrosky1010United Kingdom2026-05-13
Octavia Malet1011Japan2026-04-29
Mujtaba Nicka1012Canada2026-05-20
Sinclair Waycott1013India2026-05-23
Salvatore Stockham1014Argentina2026-04-26
Faith Gillian1015Australia2026-05-16
Jennifer Amigon1016Russia2026-05-14
Claire Tollner1017Japan2026-05-17
Jeanfrancois Venere1018Spain2026-05-23
Darci Poquette1019Canada2026-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyGermanyAsiya Javayant PROPOSAL
Izzy GarufiJapanAsiya Javayant RENEWAL
Misaki RoysterCanadaIvan Magalhaes RENEWAL
Francesco ShinkoCanadaStephen Shaw QUALIFIED
Faith GillianAustraliaIoni Bowcher NEGOTIATION
James ButtGermanyAsiya Javayant NEGOTIATION
Murillo MaletAustraliaOnyama Limba QUALIFIED
Julie StensethUnited KingdomOnyama Limba RENEWAL
Salvatore StockhamGermanyOnyama Limba RENEWAL
Costa DilliardItalyElwin Sharvill NEGOTIATION
Maria MarrierGermanyIoni Bowcher NEGOTIATION
Antonio CaudyIndiaOnyama Limba PROPOSAL
Aditya KuskoCanadaOnyama Limba UNQUALIFIED
Alejandro PerinAustraliaXuxue Feng NEGOTIATION
Mayumi KolmetzItalyOnyama Limba UNQUALIFIED
Francesco ShinkoItalyXuxue Feng RENEWAL
Maria MarrierRussiaAsiya Javayant RENEWAL
Aruna FigeroaUnited KingdomIoni Bowcher QUALIFIED
Octavia MaletJapanAnna Fali PROPOSAL
Silvio SlusarskiCanadaAmy Elsner NEGOTIATION
Ricardo GauchoArgentinaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyUnited KingdomStephen Shaw QUALIFIED
Alejandro PerinBrazilStephen Shaw NEGOTIATION
Costa DilliardAustraliaAsiya Javayant RENEWAL
Johnson SergiArgentinaAsiya Javayant NEW
Darci PoquetteUnited KingdomIvan Magalhaes RENEWAL
Julie StensethIndiaBernardo Dominic QUALIFIED
Mujtaba NickaItalyIoni Bowcher RENEWAL
Aditya KuskoBrazilXuxue Feng NEGOTIATION
Emily WhobreyRussiaAsiya Javayant PROPOSAL
Clifford RimArgentinaBernardo Dominic RENEWAL
Alejandro PerinCanadaStephen Shaw QUALIFIED
Johnson SergiUnited KingdomAnna Fali NEW
Leja CaldareraFranceIvan Magalhaes RENEWAL
David DarakjyRussiaAsiya Javayant NEGOTIATION
Isabel BowleyUnited KingdomAnna Fali PROPOSAL
Francesco ShinkoBrazilOnyama Limba PROPOSAL
Chavez BriddickGermanyAmy Elsner NEGOTIATION
Jones VocelkaAustraliaIvan Magalhaes PROPOSAL
Mayumi KolmetzRussiaElwin Sharvill 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>