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
Sinclair WaycottUnited KingdomElwin Sharvill NEW
Kadeem FlosiBrazilIoni Bowcher RENEWAL
Smith GlickSpainAmy Elsner NEGOTIATION
Juan WieserGermanyXuxue Feng NEGOTIATION
David DarakjyUnited KingdomAnna Fali NEGOTIATION
Murillo MaletIndiaAsiya Javayant NEW
Nicolas IturbideJapanBernardo Dominic QUALIFIED
Adams MorascaIndiaAsiya Javayant NEW
Francesco ShinkoCanadaXuxue Feng PROPOSAL
James ButtAustraliaIoni Bowcher RENEWAL
David DarakjyCanadaOnyama Limba NEGOTIATION
Clifford RimSpainAnna Fali UNQUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner RENEWAL
Ivar PaprockiUnited KingdomAmy Elsner NEW
Silvio SlusarskiRussiaAmy Elsner NEW
Mujtaba NickaIndiaOnyama Limba QUALIFIED
Alejandro PerinFranceIvan Magalhaes NEGOTIATION
Jefferson SchemmerBrazilBernardo Dominic RENEWAL
Adams MorascaItalyAmy Elsner NEGOTIATION
Stacey MacleadArgentinaElwin Sharvill QUALIFIED
Jones VocelkaBrazilAnna Fali UNQUALIFIED
Alejandro PerinUnited KingdomAnna Fali RENEWAL
Jeanfrancois VenereUnited KingdomIoni Bowcher UNQUALIFIED
Silvio SlusarskiBrazilStephen Shaw NEGOTIATION
Adams MorascaBrazilAmy Elsner QUALIFIED
James ButtFranceElwin Sharvill NEW
Aditya KuskoAustraliaXuxue Feng NEW
Cody SaylorsFranceAsiya Javayant NEGOTIATION
Antonio CaudyGermanyAsiya Javayant QUALIFIED
Chavez BriddickCanadaXuxue Feng NEW
Rodrigues CampainBrazilBernardo Dominic UNQUALIFIED
David DarakjyAustraliaBernardo Dominic NEW
Adams MorascaJapanIoni Bowcher NEW
Clifford RimJapanElwin Sharvill NEGOTIATION
Aika InouyeCanadaBernardo Dominic PROPOSAL
Maisha RulapaughRussiaOnyama Limba NEGOTIATION
Antonio CaudyJapanAsiya Javayant PROPOSAL
Jefferson SchemmerArgentinaIvan Magalhaes QUALIFIED
Aditya KuskoUnited KingdomOnyama Limba QUALIFIED
Greenwood BologniaCanadaAsiya Javayant NEW
Claire TollnerSpainXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaElwin Sharvill QUALIFIED
Alejandro PerinRussiaAmy Elsner NEW
Chavez BriddickGermanyAmy Elsner RENEWAL
Aruna FigeroaIndiaIoni Bowcher NEGOTIATION
Claire TollnerCanadaAsiya Javayant NEGOTIATION
Greenwood BologniaSpainAsiya Javayant NEW
Adams MorascaFranceXuxue Feng UNQUALIFIED
Kaitlin OstroskySpainAsiya Javayant PROPOSAL
Julie StensethRussiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Clifford RimFranceStephen Shaw QUALIFIED
Murillo MaletBrazilIoni Bowcher NEW
Smith GlickCanadaXuxue Feng PROPOSAL
Mujtaba NickaAustraliaStephen Shaw UNQUALIFIED
Emily WhobreyCanadaXuxue Feng QUALIFIED
Ivar PaprockiUnited KingdomStephen Shaw NEGOTIATION
Tony FollerSpainAmy Elsner NEW
Kadeem FlosiCanadaOnyama Limba PROPOSAL
Emily WhobreyBrazilOnyama Limba UNQUALIFIED
Aruna FigeroaRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyArgentina2026-06-13Chanay, Jeffrey A Esq PROPOSAL8Anna Fali
1001Juan WieserArgentina2026-05-21Feltz Printing Service QUALIFIED43Bernardo Dominic
1002Francesco ShinkoItaly2026-06-05Morlong Associates UNQUALIFIED95Ioni Bowcher
1003Johnson SergiSpain2026-05-28Buckley Miller Wright QUALIFIED33Asiya Javayant
1004Leja CaldareraRussia2026-05-31Feiner Bros PROPOSAL93Stephen Shaw
1005Emily WhobreySpain2026-05-18Truhlar And Truhlar Attys RENEWAL8Stephen Shaw
1006Ricardo GauchoCanada2026-05-25Feltz Printing Service UNQUALIFIED3Ivan Magalhaes
1007Maria MarrierSpain2026-05-30Morlong Associates PROPOSAL33Amy Elsner
1008Greenwood BologniaUnited Kingdom2026-05-16Truhlar And Truhlar Attys UNQUALIFIED98Xuxue Feng
1009Ashley DoeUnited Kingdom2026-05-31Printing Dimensions UNQUALIFIED0Xuxue Feng
1010Izzy GarufiUnited Kingdom2026-06-14Morlong Associates RENEWAL72Xuxue Feng
1011Alejandro PerinIndia2026-05-29Buckley Miller Wright PROPOSAL30Elwin Sharvill
1012Jeanfrancois VenereRussia2026-06-05Benton, John B Jr QUALIFIED28Xuxue Feng
1013Ivar PaprockiRussia2026-05-22Rousseaux, Michael Esq NEW63Stephen Shaw
1014Alejandro PerinRussia2026-06-09Feltz Printing Service QUALIFIED64Ivan Magalhaes
1015Maisha RulapaughBrazil2026-06-11Chanay, Jeffrey A Esq QUALIFIED90Ivan Magalhaes
1016Francesco ShinkoItaly2026-05-17King, Christopher A Esq UNQUALIFIED69Asiya Javayant
1017Misaki RoysterGermany2026-06-02Dorl, James J Esq QUALIFIED62Elwin Sharvill
1018Clifford RimItaly2026-05-31Morlong Associates PROPOSAL31Stephen Shaw
1019Julie StensethGermany2026-05-29Rousseaux, Michael Esq NEGOTIATION39Ioni Bowcher
1020Leon OldroydAustralia2026-05-22King, Christopher A Esq PROPOSAL38Onyama Limba
1021Deepesh ChuiJapan2026-06-06Benton, John B Jr NEW62Asiya Javayant
1022Wickens NestleFrance2026-05-21Feiner Bros PROPOSAL14Asiya Javayant
1023Salvatore StockhamFrance2026-06-01Feltz Printing Service QUALIFIED95Onyama Limba
1024Leja CaldareraRussia2026-05-29King, Christopher A Esq RENEWAL2Stephen Shaw
1025Jefferson SchemmerUnited Kingdom2026-05-30Truhlar And Truhlar Attys UNQUALIFIED80Anna Fali
1026Tony FollerCanada2026-06-10Rangoni Of Florence QUALIFIED80Ioni Bowcher
1027Silvio SlusarskiGermany2026-06-09Printing Dimensions PROPOSAL96Asiya Javayant
1028Wickens NestleIndia2026-06-09Morlong Associates RENEWAL55Ivan Magalhaes
1029Rodrigues CampainSpain2026-05-31Dorl, James J Esq NEW5Xuxue Feng
1030Maisha RulapaughUnited Kingdom2026-05-31Chanay, Jeffrey A Esq QUALIFIED11Onyama Limba
1031Smith GlickBrazil2026-06-03King, Christopher A Esq RENEWAL20Asiya Javayant
1032Chavez BriddickCanada2026-05-23Chanay, Jeffrey A Esq QUALIFIED39Asiya Javayant
1033David DarakjyFrance2026-06-13Rangoni Of Florence NEW4Elwin Sharvill
1034Leja CaldareraRussia2026-06-13Feltz Printing Service RENEWAL55Onyama Limba
1035Mujtaba NickaBrazil2026-05-31Chapman, Ross E Esq UNQUALIFIED69Asiya Javayant
1036Ricardo GauchoSpain2026-05-20Buckley Miller Wright NEW90Ioni Bowcher
1037James ButtItaly2026-06-07King, Christopher A Esq QUALIFIED19Onyama Limba
1038Smith GlickJapan2026-05-23Chemel, James L Cpa NEGOTIATION55Bernardo Dominic
1039Johnson SergiFrance2026-06-13Benton, John B Jr PROPOSAL46Ioni Bowcher
1040Wickens NestleGermany2026-05-16Morlong Associates PROPOSAL31Bernardo Dominic
1041Silvio SlusarskiItaly2026-06-07Dorl, James J Esq UNQUALIFIED72Stephen Shaw
1042James ButtFrance2026-05-29Chapman, Ross E Esq NEW89Onyama Limba
1043Stacey MacleadAustralia2026-05-24Chapman, Ross E Esq UNQUALIFIED93Asiya Javayant
1044Antonio CaudyUnited Kingdom2026-06-09Feiner Bros NEGOTIATION48Asiya Javayant
1045Sinclair WaycottFrance2026-05-24Truhlar And Truhlar Attys NEW21Elwin Sharvill
1046Jennifer AmigonGermany2026-06-04Chapman, Ross E Esq QUALIFIED30Xuxue Feng
1047Mujtaba NickaAustralia2026-06-10Benton, John B Jr QUALIFIED71Xuxue Feng
1048Leon OldroydIndia2026-05-25Morlong Associates NEGOTIATION92Xuxue Feng
1049Jones VocelkaSpain2026-05-22Chanay, Jeffrey A Esq RENEWAL81Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Leja CaldareraCanadaXuxue Feng NEGOTIATION
Kadeem FlosiCanadaIvan Magalhaes NEW
Aika InouyeIndiaIvan Magalhaes NEW
Kaitlin OstroskyItalyIvan Magalhaes NEW
Jennifer AmigonBrazilIvan Magalhaes PROPOSAL
Ashley DoeBrazilXuxue Feng PROPOSAL
Izzy GarufiGermanyAmy Elsner PROPOSAL
Julie StensethItalyStephen Shaw QUALIFIED
Clifford RimArgentinaStephen Shaw RENEWAL
Deepesh ChuiUnited KingdomXuxue Feng PROPOSAL
Misaki RoysterRussiaBernardo Dominic RENEWAL
Ashley DoeBrazilIvan Magalhaes NEGOTIATION
Cody SaylorsIndiaElwin Sharvill RENEWAL
Leon OldroydSpainStephen Shaw UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes NEGOTIATION
Clifford RimUnited KingdomAmy Elsner UNQUALIFIED
Leon OldroydItalyAsiya Javayant QUALIFIED
Claire TollnerCanadaIvan Magalhaes QUALIFIED
Jennifer AmigonBrazilElwin Sharvill NEGOTIATION
Stacey MacleadJapanOnyama Limba UNQUALIFIED
Munro FerenczItalyAsiya Javayant RENEWAL
Smith GlickSpainOnyama Limba UNQUALIFIED
Maisha RulapaughRussiaStephen Shaw PROPOSAL
Silvio SlusarskiCanadaBernardo Dominic PROPOSAL
Maria MarrierUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonSpainBernardo Dominic NEGOTIATION
Sinclair WaycottUnited KingdomIoni Bowcher PROPOSAL
Aditya KuskoIndiaBernardo Dominic PROPOSAL
Mayumi KolmetzSpainAnna Fali RENEWAL
Stacey MacleadArgentinaAsiya Javayant PROPOSAL
Julie StensethItalyBernardo Dominic RENEWAL
Kadeem FlosiIndiaElwin Sharvill QUALIFIED
Clifford RimJapanAmy Elsner NEGOTIATION
Isabel BowleyUnited KingdomElwin Sharvill NEW
Kadeem FlosiFranceAsiya Javayant PROPOSAL
Tony FollerBrazilAsiya Javayant QUALIFIED
Misaki RoysterItalyXuxue Feng NEGOTIATION
Maria MarrierBrazilXuxue Feng NEW
Francesco ShinkoUnited KingdomBernardo Dominic PROPOSAL
Claire TollnerSpainAmy Elsner PROPOSAL
James ButtRussiaIoni Bowcher NEW
Salvatore StockhamRussiaElwin Sharvill PROPOSAL
Costa DilliardArgentinaAmy Elsner NEW
Faith GillianItalyAnna Fali QUALIFIED
Leon OldroydArgentinaStephen Shaw PROPOSAL
Stacey MacleadIndiaIvan Magalhaes UNQUALIFIED
Jones VocelkaFranceBernardo Dominic NEW
Sinclair WaycottIndiaOnyama Limba RENEWAL
Aditya KuskoArgentinaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Adams Morasca
Munro Ferencz
Silvio Slusarski
Tony Foller
Morrow Ruta
Faith Gillian
David Darakjy
Mujtaba Nicka
Faith Gillian
Alejandro Perin
Isabel Bowley
Aika Inouye
Mayumi Kolmetz
Julie Stenseth
Izzy Garufi
Aruna Figeroa
Nicolas Iturbide
Ivar Paprocki
Jeanfrancois Venere
Jennifer Amigon
Maria Marrier
Jefferson Schemmer
Misaki Royster
Aditya Kusko
Nicolas Iturbide
Juan Wieser
Misaki Royster
David Darakjy
Antonio Caudy
Aika Inouye
Jefferson Schemmer
Julie Stenseth
Sinclair Waycott
Francesco Shinko
Darci Poquette
Aditya Kusko
Misaki Royster
Deepesh Chui
Munro Ferencz
Adams Morasca
Mayumi Kolmetz
Jefferson Schemmer
Costa Dilliard
Murillo Malet
Clifford Rim
Kadeem Flosi
Aditya Kusko
Izzy Garufi
Juan Wieser
Jennifer Amigon
IdCountryDate
1000India2026-06-12
1001Germany2026-05-18
1002Canada2026-05-29
1003Argentina2026-05-27
1004Italy2026-05-21
1005Canada2026-05-28
1006Brazil2026-05-18
1007Russia2026-05-23
1008India2026-06-04
1009Argentina2026-06-03
1010Italy2026-06-13
1011Germany2026-05-22
1012India2026-05-25
1013Argentina2026-05-23
1014United Kingdom2026-05-20
1015Canada2026-05-17
1016Canada2026-06-05
1017Germany2026-06-12
1018India2026-05-20
1019United Kingdom2026-06-07
1020Japan2026-06-01
1021Spain2026-06-11
1022Italy2026-05-23
1023Spain2026-06-09
1024Australia2026-05-18
1025France2026-05-16
1026Japan2026-06-05
1027India2026-05-19
1028Spain2026-05-17
1029Australia2026-06-05
1030Canada2026-05-24
1031United Kingdom2026-05-21
1032India2026-06-03
1033Spain2026-05-19
1034France2026-06-05
1035Canada2026-06-03
1036Spain2026-06-01
1037Canada2026-06-08
1038Germany2026-05-18
1039Canada2026-05-22
1040Russia2026-06-07
1041India2026-06-13
1042France2026-06-06
1043Japan2026-06-07
1044Italy2026-05-19
1045India2026-06-07
1046Brazil2026-06-05
1047Russia2026-06-05
1048Italy2026-05-21
1049Brazil2026-05-19

On-Demand Data

NameIdCountryDate
Aditya Kusko1000Russia2026-06-05
Chavez Briddick1001Spain2026-06-12
Costa Dilliard1002Germany2026-05-25
Mayumi Kolmetz1003Australia2026-05-26
Kaitlin Ostrosky1004France2026-05-29
Jeanfrancois Venere1005Spain2026-05-25
Deepesh Chui1006United Kingdom2026-05-30
Murillo Malet1007Canada2026-05-17
Chavez Briddick1008India2026-05-17
Jeanfrancois Venere1009Germany2026-06-12
Tony Foller1010Canada2026-06-01
Kadeem Flosi1011Brazil2026-05-16
Greenwood Bolognia1012Japan2026-06-10
Tony Foller1013Germany2026-05-22
Cody Saylors1014Japan2026-05-25
Smith Glick1015Australia2026-05-27
Emily Whobrey1016Spain2026-05-27
Rodrigues Campain1017Australia2026-06-12
Kadeem Flosi1018Russia2026-06-09
Julie Stenseth1019France2026-05-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsFranceAsiya Javayant NEGOTIATION
Greenwood BologniaIndiaAsiya Javayant NEW
Alejandro PerinCanadaElwin Sharvill UNQUALIFIED
Darci PoquetteFranceIvan Magalhaes UNQUALIFIED
Leon OldroydFranceXuxue Feng NEW
Darci PoquetteAustraliaXuxue Feng NEW
Francesco ShinkoFranceIvan Magalhaes NEGOTIATION
Arvin AlbaresSpainBernardo Dominic NEGOTIATION
Murillo MaletCanadaAnna Fali NEW
Faith GillianIndiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiBrazilAnna Fali NEW
Faith GillianGermanyAnna Fali RENEWAL
Mayumi KolmetzRussiaBernardo Dominic QUALIFIED
Johnson SergiGermanyAnna Fali PROPOSAL
Silvio SlusarskiArgentinaIvan Magalhaes PROPOSAL
Adams MorascaBrazilIvan Magalhaes RENEWAL
Clifford RimCanadaAnna Fali NEGOTIATION
Wickens NestleUnited KingdomOnyama Limba NEW
Mujtaba NickaSpainAnna Fali QUALIFIED
Aruna FigeroaUnited KingdomStephen Shaw NEW
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Maria MarrierSpainOnyama Limba PROPOSAL
Nicolas IturbideJapanXuxue Feng PROPOSAL
Kaitlin OstroskyJapanAmy Elsner NEW
Nicolas IturbideFranceAmy Elsner QUALIFIED
Juan WieserAustraliaAnna Fali UNQUALIFIED
Octavia MaletArgentinaXuxue Feng RENEWAL
Leon OldroydArgentinaXuxue Feng PROPOSAL
Jones VocelkaJapanBernardo Dominic PROPOSAL
Claire TollnerSpainIoni Bowcher NEGOTIATION
Juan WieserJapanStephen Shaw UNQUALIFIED
Alejandro PerinSpainElwin Sharvill NEGOTIATION
Leja CaldareraJapanBernardo Dominic UNQUALIFIED
Faith GillianGermanyBernardo Dominic QUALIFIED
Ashley DoeCanadaAsiya Javayant NEW
Emily WhobreyAustraliaOnyama Limba NEW
Jennifer AmigonJapanElwin Sharvill NEGOTIATION
Clifford RimBrazilStephen Shaw QUALIFIED
Julie StensethFranceOnyama Limba NEW
Deepesh ChuiRussiaIoni Bowcher 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>