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
Stacey MacleadUnited KingdomAmy Elsner QUALIFIED
Silvio SlusarskiFranceOnyama Limba QUALIFIED
Francesco ShinkoBrazilStephen Shaw PROPOSAL
Costa DilliardBrazilElwin Sharvill NEW
Aditya KuskoJapanXuxue Feng UNQUALIFIED
Maria MarrierJapanIvan Magalhaes NEGOTIATION
Smith GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Leon OldroydFranceAmy Elsner RENEWAL
Deepesh ChuiArgentinaIoni Bowcher NEGOTIATION
Aditya KuskoArgentinaIvan Magalhaes QUALIFIED
Antonio CaudyBrazilAsiya Javayant NEGOTIATION
Greenwood BologniaRussiaStephen Shaw PROPOSAL
Aditya KuskoSpainIoni Bowcher NEW
David DarakjyBrazilIvan Magalhaes NEW
Adams MorascaBrazilIvan Magalhaes PROPOSAL
Mujtaba NickaItalyXuxue Feng UNQUALIFIED
Ivar PaprockiArgentinaElwin Sharvill NEGOTIATION
Munro FerenczFranceStephen Shaw QUALIFIED
Johnson SergiJapanIoni Bowcher NEW
Silvio SlusarskiItalyElwin Sharvill NEW
Izzy GarufiSpainIvan Magalhaes QUALIFIED
Leja CaldareraArgentinaXuxue Feng UNQUALIFIED
Julie StensethIndiaElwin Sharvill RENEWAL
Mayumi KolmetzSpainOnyama Limba UNQUALIFIED
Jennifer AmigonRussiaElwin Sharvill PROPOSAL
Morrow RutaArgentinaXuxue Feng RENEWAL
Nicolas IturbideAustraliaXuxue Feng QUALIFIED
Jones VocelkaItalyIvan Magalhaes RENEWAL
Murillo MaletBrazilAsiya Javayant RENEWAL
Rodrigues CampainCanadaAsiya Javayant RENEWAL
Francesco ShinkoFranceElwin Sharvill QUALIFIED
Antonio CaudySpainXuxue Feng NEW
Smith GlickBrazilAsiya Javayant PROPOSAL
Alejandro PerinBrazilOnyama Limba QUALIFIED
Jones VocelkaAustraliaStephen Shaw PROPOSAL
Morrow RutaItalyAmy Elsner QUALIFIED
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Misaki RoysterItalyAsiya Javayant NEGOTIATION
Misaki RoysterGermanyStephen Shaw PROPOSAL
Jones VocelkaBrazilAsiya Javayant UNQUALIFIED
Deepesh ChuiCanadaOnyama Limba PROPOSAL
Maria MarrierItalyIoni Bowcher PROPOSAL
Kadeem FlosiItalyOnyama Limba NEW
Aruna FigeroaSpainXuxue Feng UNQUALIFIED
Darci PoquetteRussiaOnyama Limba NEW
Julie StensethArgentinaBernardo Dominic UNQUALIFIED
Morrow RutaSpainOnyama Limba NEGOTIATION
Silvio SlusarskiAustraliaStephen Shaw NEGOTIATION
Tony FollerArgentinaBernardo Dominic RENEWAL
Jeanfrancois VenereSpainIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson SergiArgentinaIoni Bowcher QUALIFIED
Mayumi KolmetzItalyIvan Magalhaes NEW
Aika InouyeJapanOnyama Limba PROPOSAL
Adams MorascaJapanIoni Bowcher UNQUALIFIED
Octavia MaletArgentinaXuxue Feng NEGOTIATION
Chavez BriddickItalyOnyama Limba QUALIFIED
Silvio SlusarskiSpainIvan Magalhaes RENEWAL
Morrow RutaItalyAmy Elsner PROPOSAL
Clifford RimGermanyXuxue Feng QUALIFIED
Aika InouyeSpainElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianItaly2026-05-23Dorl, James J Esq NEW98Stephen Shaw
1001Cody SaylorsArgentina2026-06-04Benton, John B Jr PROPOSAL89Ioni Bowcher
1002Izzy GarufiUnited Kingdom2026-05-31Feiner Bros QUALIFIED17Anna Fali
1003Aika InouyeSpain2026-06-13Truhlar And Truhlar Attys NEGOTIATION74Ioni Bowcher
1004Ricardo GauchoUnited Kingdom2026-05-22Dorl, James J Esq RENEWAL30Asiya Javayant
1005Deepesh ChuiArgentina2026-06-07Rousseaux, Michael Esq PROPOSAL84Stephen Shaw
1006Mayumi KolmetzJapan2026-05-24Commercial Press QUALIFIED47Amy Elsner
1007Julie StensethGermany2026-05-28Feltz Printing Service QUALIFIED53Stephen Shaw
1008Murillo MaletRussia2026-05-26Chemel, James L Cpa UNQUALIFIED88Onyama Limba
1009Misaki RoysterGermany2026-06-04Chapman, Ross E Esq NEGOTIATION6Anna Fali
1010Mayumi KolmetzIndia2026-05-20Benton, John B Jr RENEWAL95Onyama Limba
1011Kadeem FlosiUnited Kingdom2026-06-16Buckley Miller Wright UNQUALIFIED77Asiya Javayant
1012Salvatore StockhamRussia2026-06-08Morlong Associates NEGOTIATION68Anna Fali
1013Deepesh ChuiItaly2026-06-01Dorl, James J Esq UNQUALIFIED40Anna Fali
1014Emily WhobreyArgentina2026-06-05Buckley Miller Wright NEW71Bernardo Dominic
1015Wickens NestleItaly2026-05-29Printing Dimensions UNQUALIFIED17Stephen Shaw
1016Francesco ShinkoJapan2026-06-06Rousseaux, Michael Esq NEW87Anna Fali
1017Kadeem FlosiArgentina2026-06-07Buckley Miller Wright QUALIFIED85Xuxue Feng
1018Rodrigues CampainUnited Kingdom2026-06-15Feiner Bros RENEWAL48Amy Elsner
1019Nicolas IturbideUnited Kingdom2026-06-11Rangoni Of Florence RENEWAL92Bernardo Dominic
1020Aditya KuskoBrazil2026-06-07Morlong Associates QUALIFIED23Stephen Shaw
1021Aika InouyeIndia2026-06-13Buckley Miller Wright PROPOSAL93Ioni Bowcher
1022Munro FerenczUnited Kingdom2026-06-17Truhlar And Truhlar Attys QUALIFIED97Xuxue Feng
1023Maria MarrierIndia2026-06-12Dorl, James J Esq UNQUALIFIED12Elwin Sharvill
1024David DarakjyAustralia2026-06-02Feltz Printing Service UNQUALIFIED81Xuxue Feng
1025Darci PoquetteArgentina2026-06-18Dorl, James J Esq PROPOSAL31Onyama Limba
1026Ricardo GauchoBrazil2026-05-30Chanay, Jeffrey A Esq PROPOSAL4Onyama Limba
1027Darci PoquetteCanada2026-06-18Benton, John B Jr NEW56Asiya Javayant
1028Emily WhobreyBrazil2026-06-11Feiner Bros UNQUALIFIED33Xuxue Feng
1029Adams MorascaFrance2026-06-13Chanay, Jeffrey A Esq QUALIFIED82Xuxue Feng
1030Morrow RutaIndia2026-05-29Truhlar And Truhlar Attys NEW0Ivan Magalhaes
1031Cody SaylorsUnited Kingdom2026-06-02Rangoni Of Florence NEW36Bernardo Dominic
1032Alejandro PerinGermany2026-06-13Chemel, James L Cpa NEGOTIATION45Stephen Shaw
1033Julie StensethAustralia2026-06-12Buckley Miller Wright RENEWAL44Onyama Limba
1034Kaitlin OstroskyFrance2026-05-21Chapman, Ross E Esq UNQUALIFIED33Asiya Javayant
1035Ivar PaprockiRussia2026-05-24Buckley Miller Wright UNQUALIFIED28Anna Fali
1036Faith GillianRussia2026-06-11Chapman, Ross E Esq NEW26Stephen Shaw
1037Ivar PaprockiCanada2026-06-06Rangoni Of Florence PROPOSAL80Amy Elsner
1038Maria MarrierArgentina2026-05-20Buckley Miller Wright UNQUALIFIED21Xuxue Feng
1039Jeanfrancois VenereItaly2026-06-07Rangoni Of Florence NEW0Bernardo Dominic
1040Ricardo GauchoSpain2026-05-26Dorl, James J Esq NEGOTIATION3Xuxue Feng
1041Deepesh ChuiSpain2026-06-07Chemel, James L Cpa UNQUALIFIED52Anna Fali
1042Murillo MaletIndia2026-06-10Truhlar And Truhlar Attys NEGOTIATION35Ivan Magalhaes
1043Sinclair WaycottAustralia2026-05-22Morlong Associates PROPOSAL63Amy Elsner
1044Jones VocelkaIndia2026-06-01Chanay, Jeffrey A Esq NEGOTIATION68Anna Fali
1045Stacey MacleadCanada2026-06-15Feiner Bros RENEWAL15Ioni Bowcher
1046Arvin AlbaresAustralia2026-05-23Chemel, James L Cpa NEGOTIATION89Elwin Sharvill
1047Maria MarrierArgentina2026-06-11Printing Dimensions NEGOTIATION41Ioni Bowcher
1048Mujtaba NickaRussia2026-05-21Rousseaux, Michael Esq QUALIFIED94Anna Fali
1049Isabel BowleyUnited Kingdom2026-05-27Printing Dimensions RENEWAL11Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Kaitlin OstroskyIndiaAnna Fali UNQUALIFIED
Aruna FigeroaCanadaStephen Shaw UNQUALIFIED
Mujtaba NickaFranceAsiya Javayant PROPOSAL
Maisha RulapaughCanadaElwin Sharvill NEGOTIATION
Kaitlin OstroskyIndiaAnna Fali RENEWAL
Costa DilliardIndiaAsiya Javayant NEGOTIATION
Salvatore StockhamIndiaAsiya Javayant NEGOTIATION
Salvatore StockhamIndiaAsiya Javayant NEW
Ricardo GauchoGermanyIvan Magalhaes PROPOSAL
Claire TollnerCanadaBernardo Dominic QUALIFIED
Arvin AlbaresUnited KingdomIvan Magalhaes NEW
Izzy GarufiCanadaIvan Magalhaes NEW
Izzy GarufiFranceAnna Fali RENEWAL
Mayumi KolmetzUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois VenereRussiaBernardo Dominic UNQUALIFIED
Octavia MaletAustraliaBernardo Dominic PROPOSAL
Isabel BowleyCanadaBernardo Dominic PROPOSAL
Aruna FigeroaIndiaElwin Sharvill NEGOTIATION
Maisha RulapaughFranceAsiya Javayant NEGOTIATION
Mujtaba NickaUnited KingdomAmy Elsner UNQUALIFIED
Aruna FigeroaItalyAmy Elsner NEW
Smith GlickAustraliaIoni Bowcher RENEWAL
Emily WhobreySpainOnyama Limba UNQUALIFIED
Isabel BowleyCanadaXuxue Feng UNQUALIFIED
Chavez BriddickIndiaIvan Magalhaes RENEWAL
Aruna FigeroaIndiaOnyama Limba RENEWAL
Izzy GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Aditya KuskoJapanXuxue Feng QUALIFIED
Ashley DoeCanadaBernardo Dominic PROPOSAL
Claire TollnerGermanyAmy Elsner PROPOSAL
Leja CaldareraCanadaIoni Bowcher PROPOSAL
Isabel BowleyItalyBernardo Dominic QUALIFIED
Jefferson SchemmerGermanyXuxue Feng NEW
Leja CaldareraSpainAsiya Javayant UNQUALIFIED
Greenwood BologniaRussiaElwin Sharvill QUALIFIED
Francesco ShinkoIndiaXuxue Feng RENEWAL
Costa DilliardGermanyAsiya Javayant QUALIFIED
Francesco ShinkoAustraliaStephen Shaw QUALIFIED
Cody SaylorsSpainAmy Elsner UNQUALIFIED
Munro FerenczCanadaIoni Bowcher NEGOTIATION
Smith GlickFranceStephen Shaw PROPOSAL
Tony FollerGermanyStephen Shaw QUALIFIED
Leja CaldareraSpainAnna Fali NEW
Jones VocelkaCanadaAmy Elsner NEW
Mujtaba NickaFranceOnyama Limba QUALIFIED
Claire TollnerItalyIvan Magalhaes NEW
Wickens NestleArgentinaIoni Bowcher NEW
Francesco ShinkoAustraliaIoni Bowcher NEW
Leja CaldareraCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Deepesh Chui
Murillo Malet
Isabel Bowley
Adams Morasca
Munro Ferencz
Antonio Caudy
Tony Foller
Sinclair Waycott
Antonio Caudy
Mayumi Kolmetz
Maria Marrier
Smith Glick
Clifford Rim
Misaki Royster
Sinclair Waycott
Clifford Rim
Salvatore Stockham
Nicolas Iturbide
Alejandro Perin
Arvin Albares
Leon Oldroyd
Clifford Rim
Misaki Royster
Adams Morasca
Ashley Doe
Arvin Albares
Mayumi Kolmetz
Costa Dilliard
Leja Caldarera
Ivar Paprocki
Izzy Garufi
Stacey Maclead
Cody Saylors
Aruna Figeroa
Clifford Rim
Jones Vocelka
Chavez Briddick
Emily Whobrey
Darci Poquette
Jennifer Amigon
Murillo Malet
Greenwood Bolognia
Jones Vocelka
Aditya Kusko
Faith Gillian
Jennifer Amigon
Stacey Maclead
Leon Oldroyd
Silvio Slusarski
Sinclair Waycott
IdCountryDate
1000United Kingdom2026-05-30
1001Brazil2026-06-18
1002France2026-05-22
1003United Kingdom2026-05-30
1004Brazil2026-06-11
1005Germany2026-06-10
1006Japan2026-06-01
1007Russia2026-05-28
1008Germany2026-05-25
1009Japan2026-06-16
1010India2026-06-01
1011Argentina2026-05-20
1012Japan2026-06-17
1013Australia2026-06-05
1014Brazil2026-06-17
1015Japan2026-06-05
1016Italy2026-06-15
1017Italy2026-06-08
1018India2026-05-28
1019Canada2026-05-26
1020France2026-05-25
1021Italy2026-05-24
1022Argentina2026-06-08
1023Argentina2026-06-01
1024Brazil2026-05-25
1025Italy2026-06-15
1026India2026-05-31
1027Argentina2026-06-11
1028India2026-06-04
1029Brazil2026-06-02
1030Germany2026-06-08
1031Italy2026-05-24
1032Argentina2026-05-23
1033Brazil2026-06-10
1034Russia2026-06-13
1035France2026-06-09
1036United Kingdom2026-05-29
1037Italy2026-05-28
1038Japan2026-06-11
1039India2026-05-21
1040Brazil2026-05-21
1041Germany2026-05-30
1042France2026-05-21
1043United Kingdom2026-06-14
1044Brazil2026-05-26
1045France2026-06-16
1046Spain2026-06-02
1047Brazil2026-06-12
1048India2026-05-27
1049Germany2026-05-25

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000Germany2026-05-28
Wickens Nestle1001Russia2026-06-04
Clifford Rim1002Japan2026-06-11
Claire Tollner1003Australia2026-06-03
Wickens Nestle1004Brazil2026-05-30
Johnson Sergi1005Brazil2026-06-17
Salvatore Stockham1006Italy2026-05-26
Leja Caldarera1007India2026-06-07
Stacey Maclead1008Canada2026-06-09
Aika Inouye1009Spain2026-06-04
Alejandro Perin1010United Kingdom2026-05-28
Stacey Maclead1011Russia2026-06-06
Juan Wieser1012Canada2026-05-30
Emily Whobrey1013Canada2026-06-18
Emily Whobrey1014Italy2026-05-25
Alejandro Perin1015United Kingdom2026-06-14
Stacey Maclead1016Germany2026-05-28
Maria Marrier1017United Kingdom2026-06-10
Jones Vocelka1018France2026-06-14
Juan Wieser1019Germany2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaFranceBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomAmy Elsner RENEWAL
Nicolas IturbideIndiaIvan Magalhaes QUALIFIED
Alejandro PerinSpainBernardo Dominic NEW
Murillo MaletSpainOnyama Limba NEGOTIATION
Juan WieserRussiaXuxue Feng QUALIFIED
Izzy GarufiSpainAsiya Javayant QUALIFIED
Julie StensethUnited KingdomStephen Shaw UNQUALIFIED
Smith GlickGermanyAnna Fali NEW
Deepesh ChuiRussiaOnyama Limba PROPOSAL
Leon OldroydSpainXuxue Feng PROPOSAL
Johnson SergiJapanIoni Bowcher QUALIFIED
Kaitlin OstroskyGermanyIoni Bowcher RENEWAL
Faith GillianItalyAsiya Javayant RENEWAL
Leja CaldareraSpainElwin Sharvill QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois VenereFranceXuxue Feng PROPOSAL
Stacey MacleadJapanAmy Elsner UNQUALIFIED
Clifford RimGermanyBernardo Dominic QUALIFIED
Aika InouyeUnited KingdomIoni Bowcher QUALIFIED
Morrow RutaBrazilIoni Bowcher PROPOSAL
Juan WieserJapanOnyama Limba RENEWAL
Adams MorascaBrazilIvan Magalhaes PROPOSAL
Aditya KuskoRussiaBernardo Dominic UNQUALIFIED
Costa DilliardGermanyBernardo Dominic RENEWAL
Emily WhobreyAustraliaAnna Fali UNQUALIFIED
Alejandro PerinUnited KingdomElwin Sharvill NEW
Deepesh ChuiFranceIvan Magalhaes UNQUALIFIED
Salvatore StockhamAustraliaStephen Shaw QUALIFIED
Aditya KuskoFranceAnna Fali NEW
Mujtaba NickaRussiaAnna Fali QUALIFIED
Chavez BriddickIndiaIoni Bowcher PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw QUALIFIED
Jeanfrancois VenereRussiaIoni Bowcher UNQUALIFIED
Rodrigues CampainBrazilAsiya Javayant NEW
Morrow RutaJapanAsiya Javayant QUALIFIED
Wickens NestleItalyElwin Sharvill QUALIFIED
Leja CaldareraJapanOnyama Limba NEW
Aruna FigeroaAustraliaStephen Shaw UNQUALIFIED
Faith GillianRussiaOnyama Limba 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>