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
Darci PoquetteBrazilStephen Shaw PROPOSAL
Jones VocelkaUnited KingdomAnna Fali UNQUALIFIED
Leja CaldareraUnited KingdomElwin Sharvill PROPOSAL
Silvio SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Jennifer AmigonFranceAsiya Javayant QUALIFIED
Isabel BowleyUnited KingdomBernardo Dominic PROPOSAL
Adams MorascaBrazilBernardo Dominic NEW
Leon OldroydJapanAmy Elsner QUALIFIED
Misaki RoysterJapanIvan Magalhaes RENEWAL
Chavez BriddickFranceBernardo Dominic QUALIFIED
Jeanfrancois VenereFranceAsiya Javayant NEGOTIATION
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Kaitlin OstroskyJapanAnna Fali QUALIFIED
Maisha RulapaughSpainOnyama Limba RENEWAL
Munro FerenczSpainXuxue Feng NEW
Mayumi KolmetzGermanyElwin Sharvill UNQUALIFIED
Costa DilliardGermanyXuxue Feng UNQUALIFIED
Chavez BriddickFranceAmy Elsner NEW
Murillo MaletUnited KingdomIvan Magalhaes RENEWAL
Cody SaylorsUnited KingdomAnna Fali NEW
Stacey MacleadFranceAsiya Javayant QUALIFIED
James ButtBrazilStephen Shaw RENEWAL
Maisha RulapaughGermanyElwin Sharvill QUALIFIED
Emily WhobreyJapanElwin Sharvill NEGOTIATION
Ashley DoeIndiaAmy Elsner NEW
Ashley DoeUnited KingdomStephen Shaw NEGOTIATION
Nicolas IturbideIndiaAnna Fali NEW
Johnson SergiItalyAmy Elsner UNQUALIFIED
Jennifer AmigonItalyAnna Fali PROPOSAL
Ivar PaprockiJapanXuxue Feng PROPOSAL
Smith GlickUnited KingdomIvan Magalhaes QUALIFIED
Izzy GarufiFranceAsiya Javayant QUALIFIED
Ricardo GauchoGermanyAsiya Javayant NEGOTIATION
Jeanfrancois VenereAustraliaStephen Shaw PROPOSAL
Ricardo GauchoAustraliaIoni Bowcher NEGOTIATION
Ricardo GauchoRussiaBernardo Dominic NEW
Murillo MaletArgentinaOnyama Limba NEGOTIATION
Munro FerenczUnited KingdomElwin Sharvill QUALIFIED
Juan WieserFranceIoni Bowcher PROPOSAL
Wickens NestleUnited KingdomAsiya Javayant PROPOSAL
Alejandro PerinGermanyXuxue Feng PROPOSAL
Leon OldroydFranceAmy Elsner PROPOSAL
Jeanfrancois VenereAustraliaXuxue Feng PROPOSAL
Leja CaldareraItalyOnyama Limba UNQUALIFIED
James ButtUnited KingdomAsiya Javayant UNQUALIFIED
Morrow RutaItalyAnna Fali QUALIFIED
Mujtaba NickaUnited KingdomAmy Elsner UNQUALIFIED
Juan WieserGermanyElwin Sharvill RENEWAL
Rodrigues CampainIndiaIvan Magalhaes UNQUALIFIED
David DarakjyBrazilElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottJapanAsiya Javayant PROPOSAL
Rodrigues CampainItalyBernardo Dominic NEW
Tony FollerFranceElwin Sharvill UNQUALIFIED
Nicolas IturbideJapanIvan Magalhaes QUALIFIED
Stacey MacleadSpainAnna Fali PROPOSAL
Stacey MacleadAustraliaAmy Elsner NEW
Darci PoquetteUnited KingdomIoni Bowcher UNQUALIFIED
Aika InouyeItalyIoni Bowcher PROPOSAL
Smith GlickUnited KingdomIoni Bowcher NEW
Mayumi KolmetzArgentinaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleItaly2026-05-16Chanay, Jeffrey A Esq RENEWAL8Ioni Bowcher
1001Izzy GarufiCanada2026-04-27Feltz Printing Service NEW93Elwin Sharvill
1002Morrow RutaSpain2026-05-26Chapman, Ross E Esq NEW71Anna Fali
1003Costa DilliardGermany2026-05-13Commercial Press PROPOSAL60Ioni Bowcher
1004Jones VocelkaUnited Kingdom2026-05-16Chanay, Jeffrey A Esq NEGOTIATION99Bernardo Dominic
1005Clifford RimUnited Kingdom2026-05-23Commercial Press UNQUALIFIED59Amy Elsner
1006Chavez BriddickCanada2026-05-23Dorl, James J Esq NEW32Elwin Sharvill
1007Smith GlickFrance2026-05-13Truhlar And Truhlar Attys PROPOSAL32Elwin Sharvill
1008Jennifer AmigonFrance2026-05-11Feiner Bros UNQUALIFIED61Elwin Sharvill
1009Rodrigues CampainIndia2026-05-25Morlong Associates QUALIFIED80Stephen Shaw
1010Kaitlin OstroskySpain2026-04-29Morlong Associates NEW89Onyama Limba
1011Greenwood BologniaGermany2026-04-29King, Christopher A Esq UNQUALIFIED63Amy Elsner
1012Stacey MacleadSpain2026-05-11Feltz Printing Service QUALIFIED20Onyama Limba
1013Jennifer AmigonFrance2026-05-22Chemel, James L Cpa NEGOTIATION60Bernardo Dominic
1014Faith GillianUnited Kingdom2026-05-12Morlong Associates UNQUALIFIED51Bernardo Dominic
1015Misaki RoysterFrance2026-05-06Morlong Associates NEGOTIATION46Bernardo Dominic
1016Johnson SergiIndia2026-05-04Rousseaux, Michael Esq QUALIFIED35Bernardo Dominic
1017Jeanfrancois VenereGermany2026-05-08Dorl, James J Esq QUALIFIED93Ioni Bowcher
1018Costa DilliardGermany2026-05-16Truhlar And Truhlar Attys UNQUALIFIED82Asiya Javayant
1019Leja CaldareraCanada2026-05-25Feiner Bros NEGOTIATION16Stephen Shaw
1020Mayumi KolmetzArgentina2026-05-07Dorl, James J Esq RENEWAL21Elwin Sharvill
1021Greenwood BologniaBrazil2026-05-06Benton, John B Jr RENEWAL67Asiya Javayant
1022Mujtaba NickaJapan2026-05-08Commercial Press NEW80Ioni Bowcher
1023Izzy GarufiFrance2026-05-13Rangoni Of Florence QUALIFIED26Elwin Sharvill
1024Chavez BriddickAustralia2026-05-11Feltz Printing Service RENEWAL68Ivan Magalhaes
1025Misaki RoysterFrance2026-05-03Rangoni Of Florence RENEWAL14Xuxue Feng
1026Cody SaylorsGermany2026-04-29Buckley Miller Wright RENEWAL59Asiya Javayant
1027Kaitlin OstroskyBrazil2026-05-21Dorl, James J Esq NEGOTIATION92Amy Elsner
1028Nicolas IturbideUnited Kingdom2026-05-12Rousseaux, Michael Esq PROPOSAL25Bernardo Dominic
1029Johnson SergiSpain2026-05-08Feltz Printing Service NEGOTIATION82Bernardo Dominic
1030Aditya KuskoCanada2026-05-21Buckley Miller Wright RENEWAL17Xuxue Feng
1031Juan WieserArgentina2026-05-07Benton, John B Jr RENEWAL19Elwin Sharvill
1032Clifford RimRussia2026-05-22Printing Dimensions NEW10Ioni Bowcher
1033Faith GillianSpain2026-04-27King, Christopher A Esq RENEWAL55Xuxue Feng
1034Johnson SergiUnited Kingdom2026-05-20Truhlar And Truhlar Attys NEW91Elwin Sharvill
1035Misaki RoysterItaly2026-05-07Buckley Miller Wright PROPOSAL26Amy Elsner
1036Nicolas IturbideRussia2026-05-22Morlong Associates UNQUALIFIED34Ioni Bowcher
1037Juan WieserGermany2026-05-16Printing Dimensions QUALIFIED24Stephen Shaw
1038Greenwood BologniaSpain2026-05-24Rousseaux, Michael Esq UNQUALIFIED29Bernardo Dominic
1039Aruna FigeroaUnited Kingdom2026-05-10Benton, John B Jr RENEWAL34Elwin Sharvill
1040Faith GillianFrance2026-04-29Morlong Associates PROPOSAL69Xuxue Feng
1041Murillo MaletAustralia2026-04-30Dorl, James J Esq QUALIFIED20Xuxue Feng
1042Jennifer AmigonItaly2026-05-19Printing Dimensions NEW51Elwin Sharvill
1043Mujtaba NickaItaly2026-05-11Dorl, James J Esq UNQUALIFIED43Amy Elsner
1044Johnson SergiArgentina2026-05-20Chanay, Jeffrey A Esq NEGOTIATION28Anna Fali
1045Antonio CaudyGermany2026-05-03Printing Dimensions QUALIFIED75Anna Fali
1046Tony FollerBrazil2026-05-16Chemel, James L Cpa NEGOTIATION0Xuxue Feng
1047Johnson SergiGermany2026-05-17King, Christopher A Esq RENEWAL80Onyama Limba
1048Aika InouyeItaly2026-04-29Dorl, James J Esq UNQUALIFIED3Anna Fali
1049Maria MarrierJapan2026-05-17King, Christopher A Esq QUALIFIED24Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardBrazilAmy Elsner NEW
Jones VocelkaArgentinaIvan Magalhaes PROPOSAL
Ashley DoeSpainElwin Sharvill PROPOSAL
Julie StensethCanadaAsiya Javayant QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng NEGOTIATION
Clifford RimCanadaOnyama Limba NEGOTIATION
Murillo MaletJapanIvan Magalhaes PROPOSAL
Emily WhobreyItalyBernardo Dominic PROPOSAL
Nicolas IturbideJapanBernardo Dominic PROPOSAL
Smith GlickRussiaStephen Shaw RENEWAL
Jeanfrancois VenereGermanyBernardo Dominic UNQUALIFIED
Chavez BriddickItalyXuxue Feng NEW
Rodrigues CampainSpainIvan Magalhaes NEGOTIATION
Murillo MaletSpainBernardo Dominic RENEWAL
James ButtAustraliaIvan Magalhaes NEW
Julie StensethUnited KingdomIvan Magalhaes NEW
Aika InouyeUnited KingdomIoni Bowcher NEW
Jones VocelkaAustraliaAmy Elsner UNQUALIFIED
Murillo MaletJapanAmy Elsner NEW
Johnson SergiRussiaAsiya Javayant PROPOSAL
Ricardo GauchoBrazilAnna Fali NEW
Misaki RoysterAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoIndiaBernardo Dominic RENEWAL
Wickens NestleSpainStephen Shaw RENEWAL
James ButtGermanyAnna Fali PROPOSAL
David DarakjySpainIoni Bowcher NEGOTIATION
David DarakjyAustraliaAnna Fali UNQUALIFIED
Chavez BriddickBrazilStephen Shaw PROPOSAL
Arvin AlbaresBrazilOnyama Limba QUALIFIED
Aruna FigeroaItalyOnyama Limba QUALIFIED
Adams MorascaBrazilStephen Shaw UNQUALIFIED
Rodrigues CampainCanadaAmy Elsner UNQUALIFIED
Isabel BowleyJapanAsiya Javayant NEW
Francesco ShinkoFranceOnyama Limba NEW
Octavia MaletSpainXuxue Feng UNQUALIFIED
Johnson SergiSpainOnyama Limba PROPOSAL
Adams MorascaJapanAmy Elsner UNQUALIFIED
Tony FollerSpainXuxue Feng UNQUALIFIED
Johnson SergiFranceIvan Magalhaes NEGOTIATION
Antonio CaudyJapanBernardo Dominic PROPOSAL
Jefferson SchemmerArgentinaAmy Elsner NEGOTIATION
Leja CaldareraGermanyAmy Elsner UNQUALIFIED
Jones VocelkaItalyStephen Shaw RENEWAL
Kaitlin OstroskyAustraliaAmy Elsner NEGOTIATION
Munro FerenczIndiaAmy Elsner NEW
Maria MarrierRussiaXuxue Feng NEW
Maria MarrierAustraliaElwin Sharvill NEGOTIATION
Greenwood BologniaRussiaAsiya Javayant RENEWAL
James ButtArgentinaXuxue Feng RENEWAL
Kaitlin OstroskyCanadaOnyama Limba RENEWAL
Frozen Columns
Name
Leon Oldroyd
Maisha Rulapaugh
Claire Tollner
Munro Ferencz
Wickens Nestle
Mayumi Kolmetz
Darci Poquette
Juan Wieser
Tony Foller
Arvin Albares
Jones Vocelka
Claire Tollner
Isabel Bowley
Juan Wieser
Silvio Slusarski
Leon Oldroyd
Aika Inouye
Mayumi Kolmetz
Alejandro Perin
Faith Gillian
Ivar Paprocki
Munro Ferencz
Kadeem Flosi
Mayumi Kolmetz
Misaki Royster
Octavia Malet
Alejandro Perin
Tony Foller
Kaitlin Ostrosky
Juan Wieser
Nicolas Iturbide
Faith Gillian
Julie Stenseth
Leon Oldroyd
Cody Saylors
Leon Oldroyd
Francesco Shinko
Juan Wieser
Claire Tollner
Jones Vocelka
Misaki Royster
James Butt
Faith Gillian
Jones Vocelka
Maria Marrier
James Butt
Wickens Nestle
Munro Ferencz
Leon Oldroyd
Morrow Ruta
IdCountryDate
1000Germany2026-04-29
1001Brazil2026-05-25
1002Spain2026-05-20
1003United Kingdom2026-05-02
1004United Kingdom2026-05-08
1005Spain2026-05-23
1006Australia2026-05-18
1007Japan2026-04-29
1008India2026-05-21
1009Brazil2026-05-07
1010Spain2026-05-02
1011India2026-05-19
1012Russia2026-05-17
1013Argentina2026-05-10
1014Canada2026-05-06
1015Spain2026-05-20
1016Australia2026-05-26
1017Brazil2026-05-19
1018Italy2026-05-25
1019India2026-05-18
1020Germany2026-05-04
1021Australia2026-05-05
1022Argentina2026-05-08
1023Argentina2026-05-02
1024Germany2026-05-20
1025Japan2026-05-20
1026Russia2026-05-09
1027Spain2026-05-19
1028France2026-05-15
1029Russia2026-05-06
1030Canada2026-05-25
1031Japan2026-05-22
1032Brazil2026-05-06
1033France2026-05-10
1034Brazil2026-05-10
1035Japan2026-05-05
1036India2026-05-02
1037Argentina2026-04-30
1038United Kingdom2026-04-28
1039India2026-05-13
1040Brazil2026-05-25
1041United Kingdom2026-05-07
1042Argentina2026-05-20
1043Brazil2026-05-07
1044United Kingdom2026-05-08
1045Spain2026-05-04
1046Spain2026-05-16
1047Germany2026-05-18
1048Australia2026-05-25
1049Spain2026-05-16

On-Demand Data

NameIdCountryDate
Ivar Paprocki1000Brazil2026-04-27
Silvio Slusarski1001Brazil2026-05-13
Claire Tollner1002France2026-05-05
Wickens Nestle1003Brazil2026-05-16
Tony Foller1004Japan2026-05-21
Maria Marrier1005Canada2026-05-10
Mujtaba Nicka1006Italy2026-05-15
Deepesh Chui1007France2026-05-09
Kadeem Flosi1008United Kingdom2026-05-16
Smith Glick1009Japan2026-05-05
Misaki Royster1010Canada2026-05-04
Murillo Malet1011Germany2026-05-22
Francesco Shinko1012Brazil2026-05-26
Kaitlin Ostrosky1013Germany2026-05-06
Alejandro Perin1014France2026-04-27
Ricardo Gaucho1015Brazil2026-05-16
Aruna Figeroa1016Russia2026-05-04
Leon Oldroyd1017Australia2026-05-22
Julie Stenseth1018India2026-04-30
Tony Foller1019Italy2026-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinJapanElwin Sharvill RENEWAL
Adams MorascaFranceIoni Bowcher NEW
Morrow RutaUnited KingdomElwin Sharvill UNQUALIFIED
Silvio SlusarskiItalyIvan Magalhaes PROPOSAL
Smith GlickItalyAnna Fali UNQUALIFIED
Costa DilliardUnited KingdomBernardo Dominic RENEWAL
Leja CaldareraCanadaXuxue Feng QUALIFIED
Jefferson SchemmerArgentinaAsiya Javayant UNQUALIFIED
Mujtaba NickaAustraliaBernardo Dominic PROPOSAL
Mujtaba NickaRussiaElwin Sharvill RENEWAL
Isabel BowleyArgentinaIoni Bowcher RENEWAL
Maria MarrierAustraliaXuxue Feng NEGOTIATION
Jennifer AmigonFranceBernardo Dominic PROPOSAL
Claire TollnerCanadaOnyama Limba NEW
Rodrigues CampainBrazilOnyama Limba NEW
Mujtaba NickaItalyElwin Sharvill QUALIFIED
Adams MorascaItalyAsiya Javayant NEGOTIATION
Maisha RulapaughJapanAmy Elsner PROPOSAL
Maisha RulapaughArgentinaXuxue Feng QUALIFIED
Aika InouyeBrazilStephen Shaw RENEWAL
Izzy GarufiCanadaIvan Magalhaes UNQUALIFIED
Misaki RoysterJapanIvan Magalhaes UNQUALIFIED
Sinclair WaycottFranceOnyama Limba PROPOSAL
Silvio SlusarskiRussiaIvan Magalhaes PROPOSAL
Chavez BriddickJapanXuxue Feng NEGOTIATION
Morrow RutaSpainIoni Bowcher NEW
Leja CaldareraRussiaAsiya Javayant UNQUALIFIED
Kadeem FlosiArgentinaAsiya Javayant PROPOSAL
Aditya KuskoSpainXuxue Feng PROPOSAL
Izzy GarufiIndiaAnna Fali PROPOSAL
Aruna FigeroaJapanIoni Bowcher NEW
Nicolas IturbideItalyIvan Magalhaes NEW
Alejandro PerinUnited KingdomElwin Sharvill NEW
Smith GlickRussiaIoni Bowcher PROPOSAL
Munro FerenczGermanyAnna Fali UNQUALIFIED
Smith GlickGermanyAnna Fali NEW
Jennifer AmigonArgentinaOnyama Limba NEGOTIATION
Greenwood BologniaAustraliaIoni Bowcher UNQUALIFIED
Munro FerenczIndiaIvan Magalhaes QUALIFIED
Maisha RulapaughJapanElwin Sharvill QUALIFIED

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