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
Wickens NestleBrazilElwin Sharvill PROPOSAL
Rodrigues CampainJapanAmy Elsner RENEWAL
Wickens NestleBrazilOnyama Limba RENEWAL
Izzy GarufiRussiaElwin Sharvill PROPOSAL
Sinclair WaycottJapanElwin Sharvill RENEWAL
Mayumi KolmetzArgentinaElwin Sharvill QUALIFIED
Emily WhobreyItalyXuxue Feng QUALIFIED
Antonio CaudyRussiaIoni Bowcher NEW
David DarakjyJapanXuxue Feng NEGOTIATION
Clifford RimJapanAsiya Javayant NEGOTIATION
David DarakjySpainXuxue Feng QUALIFIED
Misaki RoysterFranceIvan Magalhaes PROPOSAL
Rodrigues CampainUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro PerinBrazilAmy Elsner PROPOSAL
Salvatore StockhamIndiaXuxue Feng NEGOTIATION
Ricardo GauchoAustraliaBernardo Dominic PROPOSAL
Nicolas IturbideIndiaBernardo Dominic NEGOTIATION
Aditya KuskoGermanyIvan Magalhaes NEW
Nicolas IturbideAustraliaStephen Shaw NEGOTIATION
Salvatore StockhamIndiaElwin Sharvill RENEWAL
Aruna FigeroaBrazilStephen Shaw QUALIFIED
Julie StensethItalyStephen Shaw PROPOSAL
Antonio CaudyCanadaIvan Magalhaes QUALIFIED
Francesco ShinkoAustraliaBernardo Dominic QUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw NEGOTIATION
Stacey MacleadGermanyAsiya Javayant NEW
James ButtFranceBernardo Dominic RENEWAL
Nicolas IturbideJapanXuxue Feng RENEWAL
Morrow RutaGermanyXuxue Feng NEW
Misaki RoysterUnited KingdomStephen Shaw PROPOSAL
Aruna FigeroaCanadaAmy Elsner RENEWAL
Aika InouyeJapanAsiya Javayant NEW
Cody SaylorsRussiaXuxue Feng NEW
Arvin AlbaresGermanyStephen Shaw RENEWAL
Jones VocelkaAustraliaIvan Magalhaes PROPOSAL
Deepesh ChuiAustraliaBernardo Dominic PROPOSAL
Antonio CaudyArgentinaAmy Elsner QUALIFIED
David DarakjyAustraliaAnna Fali NEW
Mujtaba NickaUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair WaycottGermanyXuxue Feng NEW
James ButtSpainOnyama Limba UNQUALIFIED
Juan WieserFranceStephen Shaw UNQUALIFIED
Murillo MaletUnited KingdomAmy Elsner NEGOTIATION
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Alejandro PerinAustraliaElwin Sharvill NEGOTIATION
Cody SaylorsJapanAsiya Javayant RENEWAL
Salvatore StockhamCanadaBernardo Dominic NEGOTIATION
Julie StensethRussiaIoni Bowcher NEW
Greenwood BologniaRussiaAmy Elsner RENEWAL
Jones VocelkaGermanyIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiRussiaAsiya Javayant PROPOSAL
Sinclair WaycottBrazilAsiya Javayant RENEWAL
Morrow RutaIndiaAmy Elsner NEW
Greenwood BologniaFranceIoni Bowcher NEW
David DarakjyArgentinaStephen Shaw NEGOTIATION
Aruna FigeroaCanadaStephen Shaw PROPOSAL
Costa DilliardUnited KingdomIoni Bowcher PROPOSAL
Jennifer AmigonArgentinaIvan Magalhaes UNQUALIFIED
Julie StensethIndiaBernardo Dominic QUALIFIED
Emily WhobreyUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyJapan2026-04-10Dorl, James J Esq UNQUALIFIED10Asiya Javayant
1001Aditya KuskoJapan2026-04-03Commercial Press UNQUALIFIED6Amy Elsner
1002Francesco ShinkoArgentina2026-04-24Feltz Printing Service QUALIFIED42Elwin Sharvill
1003Wickens NestleIndia2026-04-28Chanay, Jeffrey A Esq QUALIFIED17Ivan Magalhaes
1004Misaki RoysterIndia2026-04-13Truhlar And Truhlar Attys RENEWAL61Bernardo Dominic
1005Antonio CaudyAustralia2026-04-07Feltz Printing Service PROPOSAL45Elwin Sharvill
1006Misaki RoysterUnited Kingdom2026-04-26Morlong Associates RENEWAL24Elwin Sharvill
1007Smith GlickUnited Kingdom2026-04-05Chanay, Jeffrey A Esq QUALIFIED58Xuxue Feng
1008Leon OldroydJapan2026-04-21Dorl, James J Esq NEW79Asiya Javayant
1009Sinclair WaycottCanada2026-04-15Morlong Associates NEGOTIATION9Onyama Limba
1010Julie StensethSpain2026-04-30Dorl, James J Esq NEW49Ioni Bowcher
1011Emily WhobreyJapan2026-04-09Chemel, James L Cpa UNQUALIFIED13Onyama Limba
1012Rodrigues CampainAustralia2026-04-03Truhlar And Truhlar Attys PROPOSAL75Xuxue Feng
1013Mayumi KolmetzFrance2026-04-15Chemel, James L Cpa QUALIFIED99Ioni Bowcher
1014Wickens NestleGermany2026-04-30Buckley Miller Wright NEW22Onyama Limba
1015Chavez BriddickBrazil2026-04-09Buckley Miller Wright RENEWAL97Ioni Bowcher
1016Wickens NestleArgentina2026-04-13Printing Dimensions QUALIFIED57Asiya Javayant
1017James ButtCanada2026-04-27Printing Dimensions UNQUALIFIED75Ivan Magalhaes
1018Sinclair WaycottBrazil2026-04-21Commercial Press UNQUALIFIED46Stephen Shaw
1019Leon OldroydBrazil2026-04-15Feltz Printing Service NEGOTIATION40Amy Elsner
1020Izzy GarufiCanada2026-04-30Morlong Associates RENEWAL53Anna Fali
1021Jeanfrancois VenereSpain2026-04-18King, Christopher A Esq UNQUALIFIED84Xuxue Feng
1022Wickens NestleFrance2026-04-06Commercial Press RENEWAL54Bernardo Dominic
1023Salvatore StockhamJapan2026-04-03Rousseaux, Michael Esq PROPOSAL69Xuxue Feng
1024Greenwood BologniaItaly2026-04-13Printing Dimensions UNQUALIFIED92Anna Fali
1025Murillo MaletSpain2026-04-15Commercial Press RENEWAL66Elwin Sharvill
1026Darci PoquetteArgentina2026-04-03Morlong Associates NEGOTIATION70Xuxue Feng
1027Adams MorascaCanada2026-04-17Commercial Press QUALIFIED38Amy Elsner
1028Antonio CaudyFrance2026-04-13Printing Dimensions QUALIFIED65Xuxue Feng
1029Aditya KuskoCanada2026-04-10Feltz Printing Service PROPOSAL26Amy Elsner
1030Cody SaylorsItaly2026-04-22Benton, John B Jr QUALIFIED0Ioni Bowcher
1031Alejandro PerinItaly2026-04-14King, Christopher A Esq QUALIFIED62Onyama Limba
1032Deepesh ChuiUnited Kingdom2026-04-27Buckley Miller Wright QUALIFIED11Xuxue Feng
1033Antonio CaudyUnited Kingdom2026-04-30Truhlar And Truhlar Attys NEGOTIATION60Stephen Shaw
1034Aditya KuskoUnited Kingdom2026-04-15Truhlar And Truhlar Attys RENEWAL53Xuxue Feng
1035Leja CaldareraCanada2026-04-30Rousseaux, Michael Esq NEGOTIATION47Bernardo Dominic
1036Jeanfrancois VenereIndia2026-04-27Morlong Associates PROPOSAL50Amy Elsner
1037Smith GlickItaly2026-04-19Feltz Printing Service NEW96Amy Elsner
1038Sinclair WaycottIndia2026-04-12Commercial Press UNQUALIFIED81Anna Fali
1039David DarakjySpain2026-04-22Commercial Press RENEWAL24Anna Fali
1040Izzy GarufiGermany2026-04-25Buckley Miller Wright PROPOSAL23Amy Elsner
1041Stacey MacleadCanada2026-04-26Feiner Bros PROPOSAL60Elwin Sharvill
1042Munro FerenczArgentina2026-04-20Chanay, Jeffrey A Esq NEW16Xuxue Feng
1043Isabel BowleyArgentina2026-04-16Chanay, Jeffrey A Esq RENEWAL25Xuxue Feng
1044Maisha RulapaughArgentina2026-04-30Commercial Press QUALIFIED65Bernardo Dominic
1045Mujtaba NickaUnited Kingdom2026-04-17Feltz Printing Service RENEWAL88Elwin Sharvill
1046Aruna FigeroaAustralia2026-04-13Dorl, James J Esq NEW93Ioni Bowcher
1047Adams MorascaAustralia2026-04-11Chanay, Jeffrey A Esq QUALIFIED65Xuxue Feng
1048Salvatore StockhamRussia2026-04-09Chanay, Jeffrey A Esq NEGOTIATION9Asiya Javayant
1049Stacey MacleadArgentina2026-04-07King, Christopher A Esq NEW29Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiSpainBernardo Dominic RENEWAL
James ButtArgentinaElwin Sharvill UNQUALIFIED
Aditya KuskoItalyOnyama Limba RENEWAL
David DarakjyBrazilOnyama Limba UNQUALIFIED
Clifford RimSpainElwin Sharvill RENEWAL
Aika InouyeJapanAnna Fali UNQUALIFIED
Jones VocelkaRussiaAnna Fali UNQUALIFIED
Munro FerenczSpainAnna Fali NEGOTIATION
Julie StensethAustraliaAmy Elsner QUALIFIED
Maisha RulapaughGermanyAmy Elsner UNQUALIFIED
Costa DilliardArgentinaXuxue Feng PROPOSAL
Ricardo GauchoGermanyAmy Elsner PROPOSAL
Darci PoquetteJapanAnna Fali NEGOTIATION
Wickens NestleAustraliaOnyama Limba QUALIFIED
Faith GillianIndiaXuxue Feng RENEWAL
Adams MorascaAustraliaXuxue Feng NEW
Wickens NestleRussiaOnyama Limba NEGOTIATION
Morrow RutaRussiaAmy Elsner RENEWAL
Arvin AlbaresGermanyIoni Bowcher PROPOSAL
Leja CaldareraBrazilAmy Elsner RENEWAL
Wickens NestleAustraliaAmy Elsner UNQUALIFIED
Alejandro PerinAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczGermanyIvan Magalhaes PROPOSAL
Octavia MaletFranceStephen Shaw NEGOTIATION
Leon OldroydUnited KingdomAsiya Javayant NEGOTIATION
Clifford RimRussiaStephen Shaw QUALIFIED
Julie StensethJapanStephen Shaw UNQUALIFIED
Faith GillianSpainAmy Elsner QUALIFIED
Kadeem FlosiRussiaAmy Elsner NEGOTIATION
Jefferson SchemmerFranceStephen Shaw RENEWAL
Juan WieserGermanyStephen Shaw UNQUALIFIED
Leja CaldareraFranceXuxue Feng NEW
Stacey MacleadIndiaOnyama Limba PROPOSAL
Costa DilliardIndiaIvan Magalhaes QUALIFIED
Adams MorascaGermanyIvan Magalhaes NEW
Faith GillianRussiaAsiya Javayant NEW
Nicolas IturbideCanadaOnyama Limba UNQUALIFIED
Aditya KuskoIndiaElwin Sharvill QUALIFIED
Izzy GarufiBrazilXuxue Feng PROPOSAL
Juan WieserRussiaIvan Magalhaes NEGOTIATION
Salvatore StockhamBrazilElwin Sharvill UNQUALIFIED
Deepesh ChuiFranceStephen Shaw RENEWAL
Izzy GarufiBrazilAnna Fali UNQUALIFIED
Ivar PaprockiAustraliaXuxue Feng NEW
Clifford RimItalyIoni Bowcher NEGOTIATION
Emily WhobreyIndiaAmy Elsner NEGOTIATION
Cody SaylorsGermanyAnna Fali UNQUALIFIED
Munro FerenczRussiaAsiya Javayant NEGOTIATION
Tony FollerArgentinaXuxue Feng NEGOTIATION
Darci PoquetteGermanyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Nicolas Iturbide
Deepesh Chui
Tony Foller
Kadeem Flosi
Alejandro Perin
Antonio Caudy
Aika Inouye
Maisha Rulapaugh
David Darakjy
Kadeem Flosi
Sinclair Waycott
Ivar Paprocki
Julie Stenseth
Silvio Slusarski
Ricardo Gaucho
Antonio Caudy
Deepesh Chui
Jeanfrancois Venere
Arvin Albares
David Darakjy
Octavia Malet
Morrow Ruta
Maisha Rulapaugh
Ivar Paprocki
Sinclair Waycott
Costa Dilliard
Aditya Kusko
Greenwood Bolognia
Claire Tollner
Aika Inouye
Wickens Nestle
Aika Inouye
Ivar Paprocki
Aika Inouye
Kadeem Flosi
Kaitlin Ostrosky
Julie Stenseth
Darci Poquette
Cody Saylors
Salvatore Stockham
Stacey Maclead
Julie Stenseth
Emily Whobrey
Francesco Shinko
Silvio Slusarski
Chavez Briddick
Misaki Royster
Kadeem Flosi
Salvatore Stockham
Aditya Kusko
IdCountryDate
1000France2026-05-02
1001Germany2026-04-13
1002United Kingdom2026-04-27
1003Brazil2026-04-30
1004Russia2026-04-16
1005Italy2026-04-26
1006United Kingdom2026-04-26
1007Brazil2026-04-20
1008Canada2026-04-21
1009Spain2026-04-12
1010Japan2026-04-23
1011Australia2026-04-09
1012Russia2026-04-08
1013India2026-04-23
1014Russia2026-04-16
1015Germany2026-04-04
1016Germany2026-05-01
1017Japan2026-04-15
1018Argentina2026-04-30
1019United Kingdom2026-04-09
1020Brazil2026-04-13
1021Japan2026-04-15
1022Italy2026-04-27
1023India2026-04-15
1024Brazil2026-04-09
1025Australia2026-04-24
1026Brazil2026-05-02
1027Argentina2026-04-17
1028United Kingdom2026-04-18
1029Spain2026-04-11
1030Canada2026-04-20
1031Germany2026-04-12
1032Russia2026-04-28
1033Brazil2026-04-13
1034Germany2026-04-20
1035Australia2026-04-26
1036Italy2026-04-11
1037Brazil2026-05-01
1038Australia2026-05-02
1039Argentina2026-04-13
1040Canada2026-04-26
1041India2026-04-10
1042Australia2026-04-15
1043India2026-04-17
1044Japan2026-04-11
1045Spain2026-04-25
1046France2026-04-15
1047Japan2026-04-29
1048Brazil2026-04-16
1049Germany2026-04-08

On-Demand Data

NameIdCountryDate
Jones Vocelka1000United Kingdom2026-04-10
Tony Foller1001Canada2026-04-15
Francesco Shinko1002India2026-04-17
Murillo Malet1003Spain2026-04-29
Isabel Bowley1004Russia2026-04-09
Misaki Royster1005France2026-05-02
Salvatore Stockham1006Argentina2026-04-24
Deepesh Chui1007United Kingdom2026-04-04
Jennifer Amigon1008Japan2026-04-21
Leon Oldroyd1009Brazil2026-04-07
Maisha Rulapaugh1010Australia2026-04-28
Ricardo Gaucho1011India2026-04-03
Darci Poquette1012United Kingdom2026-04-21
Aika Inouye1013Canada2026-04-18
James Butt1014Brazil2026-04-19
James Butt1015United Kingdom2026-04-15
Johnson Sergi1016Australia2026-04-18
Mayumi Kolmetz1017Japan2026-04-04
Faith Gillian1018Australia2026-04-13
Francesco Shinko1019Germany2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideUnited KingdomAsiya Javayant QUALIFIED
Emily WhobreyFranceBernardo Dominic QUALIFIED
Maria MarrierCanadaXuxue Feng QUALIFIED
Deepesh ChuiAustraliaElwin Sharvill RENEWAL
Mayumi KolmetzItalyIvan Magalhaes NEGOTIATION
Jeanfrancois VenereSpainAnna Fali UNQUALIFIED
Murillo MaletIndiaIvan Magalhaes UNQUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill RENEWAL
Alejandro PerinArgentinaIoni Bowcher NEGOTIATION
Aika InouyeAustraliaStephen Shaw UNQUALIFIED
Stacey MacleadSpainOnyama Limba RENEWAL
Kadeem FlosiBrazilStephen Shaw PROPOSAL
Isabel BowleyBrazilAnna Fali PROPOSAL
Tony FollerSpainAmy Elsner NEGOTIATION
Antonio CaudyBrazilAnna Fali RENEWAL
James ButtJapanAnna Fali UNQUALIFIED
Arvin AlbaresRussiaBernardo Dominic RENEWAL
Cody SaylorsIndiaBernardo Dominic UNQUALIFIED
Maria MarrierGermanyAsiya Javayant UNQUALIFIED
Sinclair WaycottJapanBernardo Dominic RENEWAL
Munro FerenczSpainAnna Fali PROPOSAL
Chavez BriddickGermanyAnna Fali QUALIFIED
Rodrigues CampainUnited KingdomAnna Fali NEGOTIATION
Clifford RimArgentinaElwin Sharvill NEW
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Isabel BowleyIndiaXuxue Feng RENEWAL
Jefferson SchemmerRussiaIvan Magalhaes RENEWAL
Munro FerenczJapanAnna Fali NEGOTIATION
Costa DilliardUnited KingdomAsiya Javayant RENEWAL
Kadeem FlosiBrazilIvan Magalhaes PROPOSAL
Munro FerenczIndiaAmy Elsner RENEWAL
Leon OldroydCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydCanadaOnyama Limba NEW
Murillo MaletRussiaAsiya Javayant NEW
Tony FollerFranceXuxue Feng NEW
Antonio CaudyItalyAnna Fali NEW
Silvio SlusarskiAustraliaStephen Shaw QUALIFIED
Izzy GarufiUnited KingdomOnyama Limba PROPOSAL
Darci PoquetteFranceBernardo Dominic UNQUALIFIED
Morrow RutaCanadaElwin Sharvill 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>