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
Jennifer AmigonAustraliaAnna Fali QUALIFIED
Juan WieserRussiaBernardo Dominic RENEWAL
Sinclair WaycottCanadaAsiya Javayant QUALIFIED
Octavia MaletArgentinaIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomStephen Shaw UNQUALIFIED
Alejandro PerinRussiaElwin Sharvill UNQUALIFIED
Johnson SergiBrazilAmy Elsner NEW
Kaitlin OstroskyRussiaElwin Sharvill RENEWAL
Juan WieserBrazilStephen Shaw RENEWAL
Nicolas IturbideUnited KingdomAsiya Javayant PROPOSAL
Mayumi KolmetzItalyOnyama Limba QUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner PROPOSAL
Ivar PaprockiArgentinaAmy Elsner RENEWAL
Deepesh ChuiIndiaAsiya Javayant QUALIFIED
David DarakjyIndiaIoni Bowcher RENEWAL
Arvin AlbaresFranceIvan Magalhaes RENEWAL
Smith GlickJapanIvan Magalhaes NEGOTIATION
Kadeem FlosiArgentinaIoni Bowcher NEW
Emily WhobreyCanadaElwin Sharvill QUALIFIED
Darci PoquetteIndiaIvan Magalhaes RENEWAL
Emily WhobreyArgentinaStephen Shaw PROPOSAL
Julie StensethSpainXuxue Feng QUALIFIED
Octavia MaletItalyStephen Shaw UNQUALIFIED
Cody SaylorsJapanStephen Shaw NEGOTIATION
Claire TollnerGermanyIoni Bowcher RENEWAL
Jefferson SchemmerSpainElwin Sharvill NEW
Clifford RimArgentinaIoni Bowcher PROPOSAL
Maisha RulapaughRussiaXuxue Feng UNQUALIFIED
Arvin AlbaresRussiaIvan Magalhaes PROPOSAL
Deepesh ChuiCanadaXuxue Feng RENEWAL
Arvin AlbaresCanadaAmy Elsner QUALIFIED
Jefferson SchemmerCanadaIoni Bowcher NEW
Francesco ShinkoRussiaIvan Magalhaes PROPOSAL
Antonio CaudyItalyXuxue Feng RENEWAL
Silvio SlusarskiJapanStephen Shaw UNQUALIFIED
Greenwood BologniaGermanyOnyama Limba NEW
Kadeem FlosiArgentinaXuxue Feng NEW
Mayumi KolmetzIndiaAsiya Javayant QUALIFIED
Aditya KuskoUnited KingdomAsiya Javayant NEW
Kaitlin OstroskyAustraliaStephen Shaw RENEWAL
Jones VocelkaArgentinaAsiya Javayant RENEWAL
Jennifer AmigonCanadaIoni Bowcher RENEWAL
Adams MorascaSpainOnyama Limba NEW
Munro FerenczFranceAnna Fali NEGOTIATION
Maisha RulapaughBrazilBernardo Dominic PROPOSAL
Izzy GarufiJapanAnna Fali NEGOTIATION
Greenwood BologniaJapanXuxue Feng NEGOTIATION
Silvio SlusarskiFranceOnyama Limba QUALIFIED
Jeanfrancois VenereItalyIoni Bowcher PROPOSAL
Silvio SlusarskiBrazilAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo MaletArgentinaStephen Shaw UNQUALIFIED
Emily WhobreyBrazilAsiya Javayant UNQUALIFIED
Claire TollnerUnited KingdomStephen Shaw UNQUALIFIED
Maria MarrierAustraliaIvan Magalhaes NEW
Misaki RoysterAustraliaBernardo Dominic RENEWAL
Maria MarrierJapanIoni Bowcher NEW
Ashley DoeUnited KingdomAnna Fali QUALIFIED
Chavez BriddickRussiaXuxue Feng NEW
Darci PoquetteIndiaElwin Sharvill NEW
Kaitlin OstroskyIndiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresCanada2026-05-11Chapman, Ross E Esq UNQUALIFIED17Xuxue Feng
1001Misaki RoysterAustralia2026-04-24Buckley Miller Wright QUALIFIED68Ivan Magalhaes
1002Juan WieserItaly2026-05-18Morlong Associates PROPOSAL35Asiya Javayant
1003Ricardo GauchoSpain2026-05-18Benton, John B Jr NEW23Elwin Sharvill
1004Deepesh ChuiItaly2026-05-11Feltz Printing Service QUALIFIED75Elwin Sharvill
1005Chavez BriddickRussia2026-05-11Truhlar And Truhlar Attys NEGOTIATION84Elwin Sharvill
1006Munro FerenczBrazil2026-04-28Chapman, Ross E Esq UNQUALIFIED45Onyama Limba
1007Isabel BowleyUnited Kingdom2026-05-18King, Christopher A Esq UNQUALIFIED29Onyama Limba
1008Juan WieserUnited Kingdom2026-05-09Feltz Printing Service NEW27Ioni Bowcher
1009Julie StensethItaly2026-05-15Chanay, Jeffrey A Esq PROPOSAL58Ioni Bowcher
1010Costa DilliardAustralia2026-05-08Truhlar And Truhlar Attys NEW58Stephen Shaw
1011Antonio CaudyCanada2026-05-05Dorl, James J Esq NEW55Ioni Bowcher
1012Alejandro PerinUnited Kingdom2026-05-03Dorl, James J Esq NEW39Ivan Magalhaes
1013Chavez BriddickBrazil2026-05-20Morlong Associates NEW1Bernardo Dominic
1014Costa DilliardAustralia2026-04-29Morlong Associates NEW91Anna Fali
1015Darci PoquetteRussia2026-05-07Rousseaux, Michael Esq QUALIFIED67Amy Elsner
1016Johnson SergiGermany2026-05-14Chapman, Ross E Esq NEGOTIATION61Ivan Magalhaes
1017Jeanfrancois VenereCanada2026-05-12Feltz Printing Service QUALIFIED12Amy Elsner
1018Aruna FigeroaRussia2026-05-04Benton, John B Jr QUALIFIED39Amy Elsner
1019Nicolas IturbideUnited Kingdom2026-05-09King, Christopher A Esq RENEWAL91Bernardo Dominic
1020Maria MarrierBrazil2026-05-18Chemel, James L Cpa PROPOSAL40Ioni Bowcher
1021Maisha RulapaughRussia2026-05-20Dorl, James J Esq RENEWAL52Anna Fali
1022Mujtaba NickaCanada2026-05-16Printing Dimensions QUALIFIED74Amy Elsner
1023Francesco ShinkoItaly2026-05-13Rousseaux, Michael Esq NEW41Xuxue Feng
1024Mayumi KolmetzItaly2026-04-29Chapman, Ross E Esq QUALIFIED50Bernardo Dominic
1025Ashley DoeBrazil2026-04-30Morlong Associates RENEWAL54Asiya Javayant
1026Octavia MaletAustralia2026-04-27Dorl, James J Esq NEW4Ivan Magalhaes
1027Leja CaldareraSpain2026-05-15Feltz Printing Service NEW11Bernardo Dominic
1028Wickens NestleAustralia2026-04-30Commercial Press QUALIFIED28Ivan Magalhaes
1029Ivar PaprockiBrazil2026-04-24Commercial Press UNQUALIFIED12Onyama Limba
1030Misaki RoysterSpain2026-04-30Truhlar And Truhlar Attys UNQUALIFIED59Bernardo Dominic
1031Izzy GarufiRussia2026-05-15Chapman, Ross E Esq PROPOSAL17Onyama Limba
1032Francesco ShinkoArgentina2026-05-08Rousseaux, Michael Esq NEW15Bernardo Dominic
1033Izzy GarufiGermany2026-04-29Chemel, James L Cpa NEW64Anna Fali
1034Antonio CaudyCanada2026-05-02Feiner Bros NEGOTIATION55Amy Elsner
1035Maisha RulapaughBrazil2026-05-15Morlong Associates RENEWAL5Anna Fali
1036Stacey MacleadJapan2026-05-03Morlong Associates QUALIFIED34Ioni Bowcher
1037Morrow RutaCanada2026-04-24Benton, John B Jr RENEWAL90Ivan Magalhaes
1038Mujtaba NickaArgentina2026-04-23Rousseaux, Michael Esq NEW8Stephen Shaw
1039Jefferson SchemmerBrazil2026-04-22Commercial Press NEW72Stephen Shaw
1040Aruna FigeroaJapan2026-05-17Dorl, James J Esq PROPOSAL93Ioni Bowcher
1041Wickens NestleGermany2026-05-06Chemel, James L Cpa RENEWAL41Amy Elsner
1042Munro FerenczRussia2026-05-05Chemel, James L Cpa RENEWAL1Xuxue Feng
1043David DarakjyFrance2026-05-01King, Christopher A Esq NEGOTIATION14Asiya Javayant
1044Leja CaldareraItaly2026-05-09Dorl, James J Esq UNQUALIFIED1Amy Elsner
1045Wickens NestleIndia2026-04-23Buckley Miller Wright PROPOSAL7Onyama Limba
1046Mujtaba NickaBrazil2026-05-03Truhlar And Truhlar Attys NEW65Stephen Shaw
1047Isabel BowleySpain2026-05-19Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1048Nicolas IturbideItaly2026-05-05Truhlar And Truhlar Attys NEW5Asiya Javayant
1049Aruna FigeroaArgentina2026-05-06Chanay, Jeffrey A Esq UNQUALIFIED44Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleGermanyIvan Magalhaes RENEWAL
Salvatore StockhamIndiaOnyama Limba QUALIFIED
Munro FerenczFranceElwin Sharvill QUALIFIED
Alejandro PerinGermanyOnyama Limba PROPOSAL
Emily WhobreyFranceOnyama Limba QUALIFIED
Nicolas IturbideItalyBernardo Dominic UNQUALIFIED
Octavia MaletBrazilBernardo Dominic NEGOTIATION
Maisha RulapaughSpainBernardo Dominic QUALIFIED
Jefferson SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyIvan Magalhaes QUALIFIED
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereBrazilStephen Shaw UNQUALIFIED
Julie StensethArgentinaIvan Magalhaes QUALIFIED
Aruna FigeroaCanadaIoni Bowcher RENEWAL
Tony FollerUnited KingdomOnyama Limba NEGOTIATION
Isabel BowleyBrazilAnna Fali NEGOTIATION
Cody SaylorsSpainStephen Shaw QUALIFIED
Darci PoquetteUnited KingdomXuxue Feng PROPOSAL
Aika InouyeAustraliaAsiya Javayant QUALIFIED
Sinclair WaycottArgentinaStephen Shaw UNQUALIFIED
Francesco ShinkoSpainAsiya Javayant RENEWAL
Tony FollerArgentinaStephen Shaw RENEWAL
Johnson SergiUnited KingdomAsiya Javayant RENEWAL
Darci PoquetteIndiaAmy Elsner NEGOTIATION
Costa DilliardIndiaElwin Sharvill PROPOSAL
Clifford RimItalyXuxue Feng UNQUALIFIED
Nicolas IturbideCanadaIoni Bowcher NEGOTIATION
Misaki RoysterJapanOnyama Limba NEGOTIATION
David DarakjyItalyIoni Bowcher NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher QUALIFIED
Jennifer AmigonRussiaIoni Bowcher NEW
Darci PoquetteItalyStephen Shaw NEW
Jennifer AmigonGermanyAsiya Javayant UNQUALIFIED
Greenwood BologniaCanadaXuxue Feng NEGOTIATION
Jones VocelkaItalyIoni Bowcher NEW
Clifford RimItalyElwin Sharvill PROPOSAL
Leja CaldareraGermanyElwin Sharvill QUALIFIED
Deepesh ChuiIndiaBernardo Dominic NEGOTIATION
Leja CaldareraCanadaAsiya Javayant PROPOSAL
Wickens NestleItalyIvan Magalhaes RENEWAL
Maria MarrierArgentinaIoni Bowcher RENEWAL
Mujtaba NickaGermanyAsiya Javayant NEW
Leja CaldareraBrazilStephen Shaw NEW
Stacey MacleadCanadaElwin Sharvill UNQUALIFIED
Smith GlickIndiaAsiya Javayant QUALIFIED
Leon OldroydRussiaStephen Shaw NEGOTIATION
Jefferson SchemmerUnited KingdomOnyama Limba NEW
Misaki RoysterAustraliaIvan Magalhaes QUALIFIED
Kadeem FlosiArgentinaAmy Elsner NEGOTIATION
Frozen Columns
Name
Faith Gillian
Leon Oldroyd
Munro Ferencz
Darci Poquette
Kaitlin Ostrosky
Smith Glick
Emily Whobrey
Jennifer Amigon
Isabel Bowley
Kaitlin Ostrosky
Maria Marrier
Aditya Kusko
Ricardo Gaucho
Mujtaba Nicka
David Darakjy
Leon Oldroyd
David Darakjy
Salvatore Stockham
Arvin Albares
Morrow Ruta
Morrow Ruta
Arvin Albares
Kadeem Flosi
Antonio Caudy
Jennifer Amigon
Nicolas Iturbide
Jefferson Schemmer
Isabel Bowley
Ivar Paprocki
Arvin Albares
Silvio Slusarski
Greenwood Bolognia
Aditya Kusko
Johnson Sergi
Sinclair Waycott
Ricardo Gaucho
Smith Glick
Jeanfrancois Venere
Misaki Royster
Leon Oldroyd
Darci Poquette
Leon Oldroyd
Kaitlin Ostrosky
Mujtaba Nicka
Claire Tollner
Jefferson Schemmer
Chavez Briddick
Murillo Malet
Antonio Caudy
Munro Ferencz
IdCountryDate
1000Italy2026-05-14
1001India2026-05-14
1002Germany2026-04-29
1003India2026-05-16
1004Spain2026-05-14
1005Spain2026-05-18
1006Japan2026-05-12
1007Australia2026-05-13
1008Italy2026-04-26
1009India2026-05-08
1010Brazil2026-04-30
1011United Kingdom2026-04-26
1012Brazil2026-05-17
1013Italy2026-05-05
1014Canada2026-05-13
1015France2026-05-04
1016Canada2026-05-01
1017Germany2026-05-15
1018United Kingdom2026-05-06
1019United Kingdom2026-05-01
1020United Kingdom2026-05-04
1021France2026-04-23
1022France2026-05-14
1023Australia2026-05-17
1024Canada2026-05-05
1025Brazil2026-05-07
1026United Kingdom2026-04-24
1027Argentina2026-05-13
1028Russia2026-05-18
1029France2026-05-10
1030France2026-05-04
1031Brazil2026-05-03
1032France2026-05-12
1033Australia2026-04-30
1034Argentina2026-04-26
1035United Kingdom2026-04-22
1036Spain2026-05-12
1037India2026-05-15
1038Germany2026-04-27
1039France2026-05-03
1040Argentina2026-05-19
1041United Kingdom2026-04-23
1042Japan2026-04-27
1043France2026-05-18
1044Australia2026-05-06
1045Russia2026-05-01
1046Germany2026-05-09
1047United Kingdom2026-04-26
1048United Kingdom2026-05-15
1049Italy2026-04-26

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Argentina2026-05-15
Darci Poquette1001Russia2026-04-27
David Darakjy1002Brazil2026-04-28
Chavez Briddick1003Argentina2026-05-14
Tony Foller1004United Kingdom2026-05-10
Wickens Nestle1005Japan2026-05-21
Clifford Rim1006Canada2026-05-14
Wickens Nestle1007France2026-04-30
Jeanfrancois Venere1008Japan2026-05-14
Alejandro Perin1009Italy2026-04-27
Claire Tollner1010Germany2026-05-03
Mujtaba Nicka1011India2026-04-23
Emily Whobrey1012Germany2026-04-25
Costa Dilliard1013Australia2026-04-27
Aika Inouye1014Japan2026-05-09
Leja Caldarera1015Argentina2026-05-19
Leon Oldroyd1016Argentina2026-05-16
Antonio Caudy1017United Kingdom2026-04-24
Nicolas Iturbide1018United Kingdom2026-05-10
Aika Inouye1019Spain2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaFranceElwin Sharvill NEGOTIATION
Emily WhobreyUnited KingdomStephen Shaw NEW
Johnson SergiItalyAsiya Javayant PROPOSAL
Chavez BriddickItalyXuxue Feng NEW
Cody SaylorsBrazilOnyama Limba NEGOTIATION
Antonio CaudyCanadaStephen Shaw NEGOTIATION
Alejandro PerinAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali NEGOTIATION
Francesco ShinkoJapanOnyama Limba QUALIFIED
Johnson SergiGermanyXuxue Feng RENEWAL
Salvatore StockhamUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois VenereArgentinaIoni Bowcher UNQUALIFIED
Izzy GarufiSpainElwin Sharvill QUALIFIED
Morrow RutaCanadaAnna Fali UNQUALIFIED
Jeanfrancois VenereSpainIvan Magalhaes PROPOSAL
Murillo MaletRussiaIoni Bowcher RENEWAL
Aruna FigeroaItalyAnna Fali NEGOTIATION
Greenwood BologniaGermanyElwin Sharvill NEW
Maria MarrierIndiaAmy Elsner UNQUALIFIED
Costa DilliardFranceOnyama Limba PROPOSAL
Greenwood BologniaIndiaElwin Sharvill UNQUALIFIED
Emily WhobreyRussiaIoni Bowcher QUALIFIED
Mujtaba NickaJapanIoni Bowcher UNQUALIFIED
Leon OldroydSpainXuxue Feng RENEWAL
Costa DilliardGermanyIoni Bowcher NEGOTIATION
Darci PoquetteSpainAmy Elsner QUALIFIED
Costa DilliardBrazilBernardo Dominic RENEWAL
Ricardo GauchoUnited KingdomBernardo Dominic NEGOTIATION
Murillo MaletGermanyIvan Magalhaes RENEWAL
Sinclair WaycottGermanyAsiya Javayant NEGOTIATION
Ashley DoeAustraliaXuxue Feng PROPOSAL
Chavez BriddickItalyStephen Shaw QUALIFIED
Izzy GarufiRussiaIoni Bowcher RENEWAL
Aruna FigeroaGermanyAsiya Javayant RENEWAL
Claire TollnerUnited KingdomXuxue Feng PROPOSAL
Murillo MaletItalyAnna Fali PROPOSAL
Chavez BriddickFranceAsiya Javayant PROPOSAL
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Mayumi KolmetzItalyElwin Sharvill PROPOSAL
Mujtaba NickaItalyOnyama Limba UNQUALIFIED

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