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
Nicolas IturbideCanadaAnna Fali QUALIFIED
Johnson SergiJapanIvan Magalhaes PROPOSAL
Maria MarrierItalyIvan Magalhaes PROPOSAL
Silvio SlusarskiFranceStephen Shaw RENEWAL
Greenwood BologniaUnited KingdomOnyama Limba RENEWAL
Murillo MaletCanadaAnna Fali RENEWAL
Leon OldroydUnited KingdomStephen Shaw NEGOTIATION
Ivar PaprockiGermanyElwin Sharvill NEGOTIATION
Greenwood BologniaRussiaAmy Elsner QUALIFIED
Mayumi KolmetzIndiaAmy Elsner RENEWAL
Smith GlickFranceIvan Magalhaes RENEWAL
Emily WhobreyArgentinaIvan Magalhaes RENEWAL
Stacey MacleadUnited KingdomAnna Fali NEW
Munro FerenczSpainElwin Sharvill UNQUALIFIED
David DarakjyItalyAnna Fali UNQUALIFIED
Maisha RulapaughBrazilAsiya Javayant UNQUALIFIED
Maisha RulapaughItalyStephen Shaw NEW
Leon OldroydFranceAsiya Javayant NEW
Claire TollnerUnited KingdomBernardo Dominic NEW
Murillo MaletArgentinaAnna Fali NEGOTIATION
Ashley DoeRussiaAnna Fali NEGOTIATION
Morrow RutaSpainIvan Magalhaes RENEWAL
Wickens NestleJapanIoni Bowcher PROPOSAL
Mayumi KolmetzAustraliaXuxue Feng QUALIFIED
Salvatore StockhamSpainIoni Bowcher RENEWAL
Misaki RoysterFranceElwin Sharvill PROPOSAL
Greenwood BologniaItalyBernardo Dominic QUALIFIED
Murillo MaletSpainAnna Fali QUALIFIED
Alejandro PerinAustraliaIvan Magalhaes NEW
Salvatore StockhamBrazilIvan Magalhaes NEW
Wickens NestleItalyIoni Bowcher UNQUALIFIED
Cody SaylorsSpainElwin Sharvill RENEWAL
Wickens NestleUnited KingdomXuxue Feng NEGOTIATION
Arvin AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Deepesh ChuiCanadaBernardo Dominic NEGOTIATION
Ashley DoeAustraliaBernardo Dominic PROPOSAL
Chavez BriddickBrazilAnna Fali PROPOSAL
Julie StensethItalyOnyama Limba UNQUALIFIED
Aditya KuskoUnited KingdomAsiya Javayant RENEWAL
Jennifer AmigonCanadaElwin Sharvill RENEWAL
Jones VocelkaUnited KingdomXuxue Feng QUALIFIED
Ashley DoeAustraliaXuxue Feng UNQUALIFIED
David DarakjyArgentinaAnna Fali RENEWAL
Claire TollnerArgentinaElwin Sharvill RENEWAL
Adams MorascaJapanElwin Sharvill QUALIFIED
Kadeem FlosiAustraliaOnyama Limba QUALIFIED
Darci PoquetteCanadaIoni Bowcher RENEWAL
Adams MorascaAustraliaAmy Elsner QUALIFIED
Tony FollerBrazilElwin Sharvill PROPOSAL
Deepesh ChuiSpainAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Munro FerenczArgentinaXuxue Feng NEW
Deepesh ChuiSpainAsiya Javayant NEGOTIATION
Leja CaldareraGermanyStephen Shaw QUALIFIED
Clifford RimArgentinaAsiya Javayant QUALIFIED
Silvio SlusarskiUnited KingdomAmy Elsner PROPOSAL
Leon OldroydAustraliaStephen Shaw QUALIFIED
Tony FollerUnited KingdomStephen Shaw PROPOSAL
Kadeem FlosiSpainBernardo Dominic NEGOTIATION
Arvin AlbaresBrazilAnna Fali PROPOSAL
Mujtaba NickaItalyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskySpain2026-04-17Chanay, Jeffrey A Esq RENEWAL4Onyama Limba
1001Costa DilliardItaly2026-04-10Rangoni Of Florence NEGOTIATION25Onyama Limba
1002Misaki RoysterUnited Kingdom2026-04-12Rousseaux, Michael Esq RENEWAL3Stephen Shaw
1003Costa DilliardGermany2026-04-29Benton, John B Jr QUALIFIED45Ioni Bowcher
1004Murillo MaletUnited Kingdom2026-04-05Feiner Bros NEW36Xuxue Feng
1005Ivar PaprockiItaly2026-04-10Chanay, Jeffrey A Esq NEGOTIATION69Ivan Magalhaes
1006Smith GlickItaly2026-04-02Truhlar And Truhlar Attys QUALIFIED48Xuxue Feng
1007Salvatore StockhamArgentina2026-04-10Rangoni Of Florence RENEWAL3Asiya Javayant
1008Cody SaylorsGermany2026-04-10Chanay, Jeffrey A Esq NEW78Stephen Shaw
1009Mujtaba NickaArgentina2026-04-11Printing Dimensions RENEWAL82Bernardo Dominic
1010Clifford RimItaly2026-04-20Printing Dimensions NEGOTIATION59Onyama Limba
1011Maria MarrierJapan2026-04-13Printing Dimensions PROPOSAL93Ivan Magalhaes
1012Costa DilliardBrazil2026-04-26Rousseaux, Michael Esq RENEWAL93Ivan Magalhaes
1013James ButtArgentina2026-04-07Rousseaux, Michael Esq RENEWAL28Stephen Shaw
1014Tony FollerRussia2026-04-21Feltz Printing Service RENEWAL65Anna Fali
1015Antonio CaudyIndia2026-04-22Rousseaux, Michael Esq NEGOTIATION97Stephen Shaw
1016Aditya KuskoAustralia2026-04-03Commercial Press NEW87Xuxue Feng
1017Emily WhobreyFrance2026-04-23Truhlar And Truhlar Attys QUALIFIED87Stephen Shaw
1018Smith GlickJapan2026-04-28Feltz Printing Service NEGOTIATION62Ivan Magalhaes
1019Ivar PaprockiItaly2026-04-25Rousseaux, Michael Esq QUALIFIED42Xuxue Feng
1020Leon OldroydGermany2026-04-11Rangoni Of Florence PROPOSAL34Anna Fali
1021Nicolas IturbideAustralia2026-04-09Buckley Miller Wright QUALIFIED94Stephen Shaw
1022Aditya KuskoBrazil2026-04-04Feiner Bros RENEWAL75Ivan Magalhaes
1023Arvin AlbaresItaly2026-04-05Chemel, James L Cpa NEGOTIATION74Anna Fali
1024Octavia MaletBrazil2026-04-08Morlong Associates RENEWAL94Asiya Javayant
1025Aruna FigeroaRussia2026-04-08Printing Dimensions PROPOSAL41Elwin Sharvill
1026Faith GillianRussia2026-04-20Chanay, Jeffrey A Esq RENEWAL15Anna Fali
1027Kadeem FlosiItaly2026-04-16Printing Dimensions RENEWAL94Stephen Shaw
1028Ivar PaprockiItaly2026-04-18Benton, John B Jr QUALIFIED96Bernardo Dominic
1029Claire TollnerSpain2026-04-14Truhlar And Truhlar Attys QUALIFIED79Ivan Magalhaes
1030Ricardo GauchoSpain2026-04-11Morlong Associates PROPOSAL29Bernardo Dominic
1031Stacey MacleadUnited Kingdom2026-04-28Feiner Bros UNQUALIFIED76Onyama Limba
1032Claire TollnerJapan2026-04-28Benton, John B Jr UNQUALIFIED77Ivan Magalhaes
1033Kadeem FlosiUnited Kingdom2026-04-10Truhlar And Truhlar Attys RENEWAL43Ivan Magalhaes
1034Salvatore StockhamBrazil2026-04-17Dorl, James J Esq RENEWAL54Amy Elsner
1035Misaki RoysterIndia2026-04-26Morlong Associates PROPOSAL44Stephen Shaw
1036Smith GlickRussia2026-04-29Rousseaux, Michael Esq PROPOSAL93Elwin Sharvill
1037Izzy GarufiJapan2026-04-15Dorl, James J Esq RENEWAL7Anna Fali
1038Jefferson SchemmerCanada2026-04-18Benton, John B Jr QUALIFIED86Ivan Magalhaes
1039Jeanfrancois VenereItaly2026-04-23Benton, John B Jr QUALIFIED80Anna Fali
1040Costa DilliardSpain2026-04-21Buckley Miller Wright QUALIFIED56Stephen Shaw
1041Aruna FigeroaFrance2026-04-06Commercial Press RENEWAL92Xuxue Feng
1042Ricardo GauchoCanada2026-04-03Chanay, Jeffrey A Esq PROPOSAL1Onyama Limba
1043Darci PoquetteSpain2026-04-21Commercial Press UNQUALIFIED72Ivan Magalhaes
1044Murillo MaletGermany2026-04-27Commercial Press UNQUALIFIED70Anna Fali
1045Johnson SergiGermany2026-04-13Benton, John B Jr NEW92Asiya Javayant
1046Octavia MaletBrazil2026-04-03King, Christopher A Esq NEGOTIATION2Stephen Shaw
1047Maria MarrierSpain2026-04-29Rousseaux, Michael Esq NEGOTIATION31Bernardo Dominic
1048Maria MarrierGermany2026-04-16Commercial Press NEW79Elwin Sharvill
1049Jennifer AmigonFrance2026-04-19Chemel, James L Cpa QUALIFIED93Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianGermanyElwin Sharvill NEGOTIATION
Rodrigues CampainItalyIvan Magalhaes QUALIFIED
Antonio CaudyArgentinaIvan Magalhaes UNQUALIFIED
Murillo MaletJapanIoni Bowcher NEGOTIATION
Nicolas IturbideAustraliaXuxue Feng NEGOTIATION
Morrow RutaSpainXuxue Feng QUALIFIED
Juan WieserBrazilIvan Magalhaes NEGOTIATION
Jefferson SchemmerIndiaBernardo Dominic NEGOTIATION
Kaitlin OstroskyAustraliaAmy Elsner PROPOSAL
Silvio SlusarskiBrazilBernardo Dominic NEW
Antonio CaudyAustraliaOnyama Limba QUALIFIED
Smith GlickRussiaXuxue Feng PROPOSAL
Salvatore StockhamArgentinaAsiya Javayant UNQUALIFIED
Aika InouyeAustraliaIvan Magalhaes UNQUALIFIED
Morrow RutaIndiaElwin Sharvill RENEWAL
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Isabel BowleyItalyOnyama Limba UNQUALIFIED
Nicolas IturbideJapanXuxue Feng RENEWAL
Smith GlickAustraliaAnna Fali QUALIFIED
Jones VocelkaBrazilAnna Fali UNQUALIFIED
Aditya KuskoJapanIvan Magalhaes NEGOTIATION
Costa DilliardArgentinaAnna Fali RENEWAL
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Aditya KuskoBrazilIoni Bowcher NEGOTIATION
Silvio SlusarskiBrazilAmy Elsner UNQUALIFIED
Munro FerenczGermanyIoni Bowcher NEW
Isabel BowleyJapanBernardo Dominic PROPOSAL
Francesco ShinkoBrazilStephen Shaw NEW
Emily WhobreyAustraliaAmy Elsner NEGOTIATION
Sinclair WaycottItalyAsiya Javayant NEW
Tony FollerAustraliaOnyama Limba UNQUALIFIED
Wickens NestleFranceElwin Sharvill NEGOTIATION
Mujtaba NickaItalyAmy Elsner RENEWAL
Jennifer AmigonCanadaAsiya Javayant UNQUALIFIED
Clifford RimGermanyAsiya Javayant PROPOSAL
Mujtaba NickaGermanyOnyama Limba PROPOSAL
Munro FerenczCanadaElwin Sharvill QUALIFIED
Maisha RulapaughIndiaOnyama Limba NEW
Mujtaba NickaBrazilStephen Shaw NEGOTIATION
Aika InouyeSpainStephen Shaw NEGOTIATION
Juan WieserArgentinaAnna Fali PROPOSAL
Smith GlickSpainIoni Bowcher RENEWAL
Greenwood BologniaBrazilElwin Sharvill NEW
Sinclair WaycottFranceAmy Elsner UNQUALIFIED
James ButtBrazilIoni Bowcher RENEWAL
Kaitlin OstroskyArgentinaStephen Shaw QUALIFIED
Francesco ShinkoCanadaStephen Shaw NEW
Morrow RutaSpainIoni Bowcher NEGOTIATION
Ivar PaprockiGermanyAsiya Javayant PROPOSAL
Octavia MaletCanadaAnna Fali QUALIFIED
Frozen Columns
Name
Maria Marrier
Silvio Slusarski
Kaitlin Ostrosky
Jones Vocelka
Izzy Garufi
Maisha Rulapaugh
Francesco Shinko
Salvatore Stockham
Jeanfrancois Venere
Ivar Paprocki
Arvin Albares
Mujtaba Nicka
Jeanfrancois Venere
Sinclair Waycott
Wickens Nestle
Morrow Ruta
Aditya Kusko
Tony Foller
Mujtaba Nicka
Alejandro Perin
James Butt
Tony Foller
Stacey Maclead
Murillo Malet
Munro Ferencz
Jennifer Amigon
Maria Marrier
Greenwood Bolognia
Claire Tollner
Maisha Rulapaugh
Jefferson Schemmer
Misaki Royster
Jones Vocelka
Maisha Rulapaugh
Clifford Rim
Ashley Doe
Emily Whobrey
Misaki Royster
Jeanfrancois Venere
Adams Morasca
Izzy Garufi
Tony Foller
Murillo Malet
Jefferson Schemmer
Sinclair Waycott
David Darakjy
Sinclair Waycott
Francesco Shinko
Francesco Shinko
Aruna Figeroa
IdCountryDate
1000Germany2026-04-11
1001Germany2026-04-05
1002India2026-04-12
1003Spain2026-04-05
1004Japan2026-04-13
1005Canada2026-03-31
1006Japan2026-04-29
1007India2026-04-02
1008India2026-04-10
1009Brazil2026-04-05
1010Australia2026-04-21
1011Japan2026-04-11
1012France2026-04-03
1013Brazil2026-04-07
1014Italy2026-04-12
1015France2026-04-06
1016France2026-04-12
1017Australia2026-04-15
1018Italy2026-04-14
1019France2026-04-18
1020Argentina2026-04-12
1021Australia2026-04-06
1022Canada2026-04-13
1023Argentina2026-04-13
1024Germany2026-04-05
1025Italy2026-04-05
1026Canada2026-04-08
1027Brazil2026-04-17
1028Japan2026-04-02
1029Spain2026-04-16
1030France2026-04-25
1031Russia2026-04-20
1032Australia2026-04-25
1033Spain2026-04-19
1034Brazil2026-04-17
1035Germany2026-04-08
1036United Kingdom2026-04-22
1037Brazil2026-04-27
1038Brazil2026-04-14
1039France2026-04-10
1040Japan2026-04-26
1041Russia2026-04-28
1042Russia2026-04-23
1043France2026-04-05
1044Argentina2026-04-20
1045India2026-04-12
1046Canada2026-04-24
1047Australia2026-04-19
1048Russia2026-04-14
1049Argentina2026-04-16

On-Demand Data

NameIdCountryDate
Misaki Royster1000Russia2026-04-04
Antonio Caudy1001France2026-04-17
Jeanfrancois Venere1002Australia2026-04-29
Octavia Malet1003Australia2026-04-05
Mayumi Kolmetz1004United Kingdom2026-04-13
Julie Stenseth1005France2026-04-06
Chavez Briddick1006India2026-04-23
Francesco Shinko1007Australia2026-04-11
Juan Wieser1008Brazil2026-04-01
Jennifer Amigon1009India2026-04-26
Faith Gillian1010India2026-04-29
Leja Caldarera1011Japan2026-04-18
Aruna Figeroa1012Brazil2026-04-25
Ashley Doe1013France2026-04-15
Wickens Nestle1014Argentina2026-04-24
Antonio Caudy1015Australia2026-04-23
Kadeem Flosi1016United Kingdom2026-04-03
Francesco Shinko1017Spain2026-04-14
Julie Stenseth1018France2026-04-02
Maria Marrier1019United Kingdom2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethCanadaIoni Bowcher NEW
Murillo MaletArgentinaIvan Magalhaes PROPOSAL
Izzy GarufiArgentinaOnyama Limba UNQUALIFIED
James ButtRussiaIoni Bowcher UNQUALIFIED
Kaitlin OstroskySpainElwin Sharvill NEGOTIATION
Ivar PaprockiArgentinaAsiya Javayant PROPOSAL
Maria MarrierJapanAsiya Javayant PROPOSAL
Jeanfrancois VenereRussiaIvan Magalhaes PROPOSAL
Wickens NestleAustraliaIoni Bowcher PROPOSAL
Jennifer AmigonRussiaIoni Bowcher PROPOSAL
Maisha RulapaughJapanAmy Elsner RENEWAL
Clifford RimRussiaOnyama Limba QUALIFIED
Leon OldroydArgentinaAnna Fali PROPOSAL
Salvatore StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Ivar PaprockiRussiaIoni Bowcher NEGOTIATION
Antonio CaudyRussiaXuxue Feng NEW
Nicolas IturbideUnited KingdomXuxue Feng QUALIFIED
Sinclair WaycottIndiaXuxue Feng NEW
Ricardo GauchoRussiaAmy Elsner RENEWAL
Antonio CaudyArgentinaAsiya Javayant UNQUALIFIED
Rodrigues CampainArgentinaElwin Sharvill UNQUALIFIED
Nicolas IturbideIndiaElwin Sharvill UNQUALIFIED
David DarakjyCanadaAnna Fali PROPOSAL
Darci PoquetteJapanXuxue Feng NEW
Jennifer AmigonBrazilAnna Fali NEW
Adams MorascaCanadaXuxue Feng PROPOSAL
Tony FollerRussiaAmy Elsner QUALIFIED
Ivar PaprockiItalyOnyama Limba UNQUALIFIED
Costa DilliardArgentinaXuxue Feng RENEWAL
Cody SaylorsBrazilStephen Shaw NEW
Cody SaylorsBrazilAmy Elsner NEGOTIATION
Adams MorascaItalyIvan Magalhaes RENEWAL
Chavez BriddickAustraliaIvan Magalhaes NEGOTIATION
James ButtJapanIoni Bowcher QUALIFIED
Sinclair WaycottItalyBernardo Dominic NEGOTIATION
Munro FerenczSpainXuxue Feng QUALIFIED
Leja CaldareraAustraliaIoni Bowcher NEW
Jefferson SchemmerRussiaStephen Shaw NEW
Izzy GarufiBrazilIoni Bowcher NEGOTIATION
Claire TollnerJapanAmy Elsner NEW

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