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
Morrow RutaCanadaBernardo Dominic NEGOTIATION
Kaitlin OstroskySpainAsiya Javayant PROPOSAL
Ricardo GauchoIndiaAsiya Javayant RENEWAL
David DarakjyCanadaAmy Elsner RENEWAL
Adams MorascaFranceBernardo Dominic PROPOSAL
Julie StensethAustraliaElwin Sharvill PROPOSAL
Aruna FigeroaBrazilAmy Elsner NEGOTIATION
Mujtaba NickaArgentinaIoni Bowcher UNQUALIFIED
Izzy GarufiAustraliaIvan Magalhaes NEGOTIATION
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Rodrigues CampainIndiaElwin Sharvill PROPOSAL
Faith GillianBrazilOnyama Limba QUALIFIED
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Jefferson SchemmerBrazilAmy Elsner NEW
Francesco ShinkoFranceAmy Elsner NEGOTIATION
Jefferson SchemmerJapanIoni Bowcher NEW
Juan WieserAustraliaBernardo Dominic PROPOSAL
Faith GillianGermanyOnyama Limba RENEWAL
Izzy GarufiRussiaOnyama Limba PROPOSAL
James ButtSpainAsiya Javayant PROPOSAL
Greenwood BologniaFranceIoni Bowcher RENEWAL
Silvio SlusarskiItalyAsiya Javayant PROPOSAL
Clifford RimGermanyElwin Sharvill RENEWAL
Misaki RoysterCanadaAsiya Javayant PROPOSAL
Emily WhobreyGermanyXuxue Feng RENEWAL
Emily WhobreyFranceXuxue Feng RENEWAL
Emily WhobreyJapanElwin Sharvill NEGOTIATION
Johnson SergiFranceBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba NEW
James ButtItalyXuxue Feng RENEWAL
Emily WhobreySpainIvan Magalhaes QUALIFIED
Antonio CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Cody SaylorsFranceIoni Bowcher NEW
Tony FollerGermanyIoni Bowcher NEGOTIATION
Jennifer AmigonArgentinaAmy Elsner NEGOTIATION
Ivar PaprockiSpainAmy Elsner RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher RENEWAL
Ashley DoeArgentinaOnyama Limba QUALIFIED
Stacey MacleadGermanyAsiya Javayant NEW
Kadeem FlosiGermanyStephen Shaw UNQUALIFIED
Leon OldroydItalyIvan Magalhaes NEW
Wickens NestleCanadaAmy Elsner NEW
Sinclair WaycottRussiaOnyama Limba RENEWAL
David DarakjyRussiaXuxue Feng PROPOSAL
Darci PoquetteJapanAsiya Javayant RENEWAL
Aruna FigeroaSpainIoni Bowcher NEGOTIATION
Francesco ShinkoGermanyElwin Sharvill NEGOTIATION
Tony FollerFranceXuxue Feng PROPOSAL
Darci PoquetteArgentinaStephen Shaw NEGOTIATION
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaRussiaOnyama Limba RENEWAL
Costa DilliardFranceElwin Sharvill QUALIFIED
Julie StensethBrazilAnna Fali PROPOSAL
Munro FerenczBrazilAnna Fali PROPOSAL
Misaki RoysterIndiaAnna Fali NEW
Adams MorascaArgentinaAnna Fali UNQUALIFIED
Nicolas IturbideSpainBernardo Dominic PROPOSAL
Morrow RutaFranceAsiya Javayant UNQUALIFIED
Stacey MacleadJapanStephen Shaw NEGOTIATION
Leon OldroydFranceAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideJapan2026-04-05Benton, John B Jr NEW60Xuxue Feng
1001Rodrigues CampainJapan2026-04-02Feiner Bros QUALIFIED54Bernardo Dominic
1002Isabel BowleyBrazil2026-04-03Benton, John B Jr NEW0Elwin Sharvill
1003Deepesh ChuiItaly2026-04-06Morlong Associates UNQUALIFIED10Ivan Magalhaes
1004Ivar PaprockiAustralia2026-04-08Rangoni Of Florence PROPOSAL30Asiya Javayant
1005Salvatore StockhamSpain2026-04-01Commercial Press NEGOTIATION17Asiya Javayant
1006Morrow RutaArgentina2026-04-09Morlong Associates QUALIFIED33Bernardo Dominic
1007Emily WhobreyAustralia2026-04-14Morlong Associates RENEWAL11Xuxue Feng
1008Jones VocelkaAustralia2026-04-21Commercial Press QUALIFIED89Asiya Javayant
1009Claire TollnerSpain2026-04-23Feiner Bros QUALIFIED14Elwin Sharvill
1010Alejandro PerinAustralia2026-04-19Rousseaux, Michael Esq PROPOSAL36Ioni Bowcher
1011Deepesh ChuiItaly2026-04-14Benton, John B Jr NEGOTIATION22Bernardo Dominic
1012Faith GillianCanada2026-04-15Chanay, Jeffrey A Esq NEW59Bernardo Dominic
1013Greenwood BologniaRussia2026-03-26Morlong Associates UNQUALIFIED3Amy Elsner
1014Kadeem FlosiItaly2026-03-28Truhlar And Truhlar Attys NEW32Stephen Shaw
1015Greenwood BologniaFrance2026-04-14Chapman, Ross E Esq PROPOSAL1Stephen Shaw
1016Jones VocelkaBrazil2026-04-11Commercial Press NEW79Asiya Javayant
1017Arvin AlbaresIndia2026-04-01Feltz Printing Service NEW27Xuxue Feng
1018James ButtCanada2026-03-27Benton, John B Jr UNQUALIFIED83Bernardo Dominic
1019Morrow RutaUnited Kingdom2026-04-22Chapman, Ross E Esq NEW78Elwin Sharvill
1020Tony FollerGermany2026-04-18Rangoni Of Florence PROPOSAL98Stephen Shaw
1021Jennifer AmigonRussia2026-04-23Chapman, Ross E Esq NEW38Ioni Bowcher
1022Deepesh ChuiBrazil2026-04-19Printing Dimensions RENEWAL52Onyama Limba
1023Mayumi KolmetzBrazil2026-04-12Rangoni Of Florence NEW77Anna Fali
1024Aika InouyeArgentina2026-03-27King, Christopher A Esq NEGOTIATION94Asiya Javayant
1025Ivar PaprockiBrazil2026-04-03Buckley Miller Wright PROPOSAL42Elwin Sharvill
1026Alejandro PerinBrazil2026-04-02Benton, John B Jr UNQUALIFIED80Anna Fali
1027Smith GlickBrazil2026-04-07Chemel, James L Cpa UNQUALIFIED39Amy Elsner
1028David DarakjyIndia2026-04-16Rangoni Of Florence PROPOSAL60Ivan Magalhaes
1029Adams MorascaIndia2026-03-26Dorl, James J Esq UNQUALIFIED86Amy Elsner
1030Adams MorascaFrance2026-04-11Truhlar And Truhlar Attys NEGOTIATION63Xuxue Feng
1031Munro FerenczItaly2026-03-26Rangoni Of Florence PROPOSAL62Asiya Javayant
1032Maisha RulapaughIndia2026-04-10Rangoni Of Florence QUALIFIED13Elwin Sharvill
1033Silvio SlusarskiIndia2026-04-13Rousseaux, Michael Esq PROPOSAL34Anna Fali
1034Silvio SlusarskiIndia2026-04-03Dorl, James J Esq NEGOTIATION58Elwin Sharvill
1035Nicolas IturbideRussia2026-04-12Chanay, Jeffrey A Esq QUALIFIED5Ioni Bowcher
1036David DarakjySpain2026-04-08Feiner Bros PROPOSAL41Asiya Javayant
1037Jones VocelkaCanada2026-04-03Morlong Associates NEW6Amy Elsner
1038Leon OldroydIndia2026-04-02Rousseaux, Michael Esq NEW58Ioni Bowcher
1039Leon OldroydArgentina2026-03-29Chemel, James L Cpa QUALIFIED74Elwin Sharvill
1040Alejandro PerinItaly2026-04-08Rousseaux, Michael Esq QUALIFIED67Bernardo Dominic
1041Emily WhobreyArgentina2026-04-17Feiner Bros QUALIFIED41Onyama Limba
1042Costa DilliardSpain2026-04-24Printing Dimensions PROPOSAL86Bernardo Dominic
1043Francesco ShinkoSpain2026-03-28King, Christopher A Esq RENEWAL33Asiya Javayant
1044Aruna FigeroaAustralia2026-04-24King, Christopher A Esq NEW73Bernardo Dominic
1045Munro FerenczArgentina2026-04-04King, Christopher A Esq QUALIFIED75Anna Fali
1046Wickens NestleCanada2026-04-14Truhlar And Truhlar Attys PROPOSAL48Bernardo Dominic
1047Faith GillianGermany2026-04-24Rangoni Of Florence QUALIFIED32Ivan Magalhaes
1048Francesco ShinkoRussia2026-04-22Chemel, James L Cpa QUALIFIED37Xuxue Feng
1049Jones VocelkaSpain2026-04-17Rangoni Of Florence UNQUALIFIED84Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaJapanAsiya Javayant NEW
Ivar PaprockiBrazilElwin Sharvill NEW
Julie StensethBrazilBernardo Dominic PROPOSAL
Ricardo GauchoSpainOnyama Limba PROPOSAL
Sinclair WaycottCanadaIoni Bowcher PROPOSAL
Alejandro PerinUnited KingdomStephen Shaw PROPOSAL
Ricardo GauchoItalyAnna Fali NEW
Jennifer AmigonCanadaIvan Magalhaes UNQUALIFIED
Aika InouyeItalyAsiya Javayant NEGOTIATION
Kadeem FlosiSpainElwin Sharvill PROPOSAL
Morrow RutaFranceXuxue Feng UNQUALIFIED
Jeanfrancois VenereUnited KingdomIvan Magalhaes NEGOTIATION
Rodrigues CampainRussiaAmy Elsner RENEWAL
Darci PoquetteBrazilAsiya Javayant NEGOTIATION
Misaki RoysterUnited KingdomIvan Magalhaes RENEWAL
Jennifer AmigonArgentinaXuxue Feng NEGOTIATION
Clifford RimJapanIvan Magalhaes NEGOTIATION
Arvin AlbaresCanadaAsiya Javayant NEGOTIATION
Aruna FigeroaUnited KingdomElwin Sharvill RENEWAL
Faith GillianJapanStephen Shaw QUALIFIED
Greenwood BologniaItalyXuxue Feng RENEWAL
Sinclair WaycottArgentinaXuxue Feng NEGOTIATION
James ButtFranceAnna Fali QUALIFIED
Wickens NestleFranceIvan Magalhaes NEGOTIATION
Cody SaylorsArgentinaXuxue Feng UNQUALIFIED
Stacey MacleadBrazilAmy Elsner QUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng QUALIFIED
Murillo MaletCanadaAnna Fali PROPOSAL
Kadeem FlosiCanadaAnna Fali UNQUALIFIED
Francesco ShinkoBrazilStephen Shaw NEW
Munro FerenczSpainBernardo Dominic NEGOTIATION
Wickens NestleArgentinaOnyama Limba RENEWAL
Maisha RulapaughIndiaAnna Fali UNQUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Jones VocelkaCanadaAnna Fali RENEWAL
Chavez BriddickBrazilBernardo Dominic RENEWAL
David DarakjyCanadaElwin Sharvill UNQUALIFIED
Jennifer AmigonJapanStephen Shaw NEGOTIATION
Jefferson SchemmerFranceAsiya Javayant NEW
Jefferson SchemmerBrazilAnna Fali RENEWAL
Aditya KuskoJapanIvan Magalhaes NEGOTIATION
Ricardo GauchoUnited KingdomBernardo Dominic RENEWAL
Chavez BriddickGermanyStephen Shaw UNQUALIFIED
Leja CaldareraIndiaIoni Bowcher NEW
Francesco ShinkoAustraliaOnyama Limba NEGOTIATION
Greenwood BologniaIndiaBernardo Dominic PROPOSAL
Tony FollerUnited KingdomOnyama Limba PROPOSAL
Juan WieserSpainIvan Magalhaes UNQUALIFIED
Antonio CaudyUnited KingdomIoni Bowcher RENEWAL
Smith GlickRussiaAmy Elsner NEGOTIATION
Frozen Columns
Name
Jefferson Schemmer
Stacey Maclead
James Butt
Antonio Caudy
Rodrigues Campain
Aika Inouye
Faith Gillian
Jeanfrancois Venere
Salvatore Stockham
Kadeem Flosi
Maria Marrier
Kaitlin Ostrosky
Jefferson Schemmer
Morrow Ruta
Misaki Royster
Rodrigues Campain
Adams Morasca
Kaitlin Ostrosky
Misaki Royster
Octavia Malet
Isabel Bowley
Mujtaba Nicka
Izzy Garufi
Cody Saylors
Adams Morasca
Mayumi Kolmetz
Alejandro Perin
Antonio Caudy
James Butt
Arvin Albares
Ivar Paprocki
Aika Inouye
Smith Glick
Morrow Ruta
Alejandro Perin
Leja Caldarera
Salvatore Stockham
Arvin Albares
Johnson Sergi
Salvatore Stockham
David Darakjy
Cody Saylors
Wickens Nestle
Isabel Bowley
Silvio Slusarski
Kadeem Flosi
Faith Gillian
Antonio Caudy
Emily Whobrey
Maria Marrier
IdCountryDate
1000India2026-04-07
1001United Kingdom2026-04-12
1002Brazil2026-04-14
1003Australia2026-04-13
1004United Kingdom2026-03-26
1005Australia2026-03-29
1006Japan2026-04-01
1007Russia2026-04-03
1008Brazil2026-04-20
1009Brazil2026-04-11
1010Canada2026-04-11
1011Brazil2026-03-27
1012Canada2026-04-02
1013Russia2026-04-20
1014Spain2026-04-21
1015Argentina2026-04-24
1016Argentina2026-04-19
1017Brazil2026-03-30
1018Russia2026-04-07
1019Russia2026-04-14
1020United Kingdom2026-03-29
1021Germany2026-04-08
1022Russia2026-04-17
1023France2026-04-19
1024Australia2026-04-08
1025Canada2026-04-17
1026Spain2026-03-28
1027France2026-03-30
1028Australia2026-03-26
1029Canada2026-04-11
1030Italy2026-04-20
1031Russia2026-04-11
1032Japan2026-04-16
1033Germany2026-03-29
1034Canada2026-03-28
1035Brazil2026-04-13
1036Australia2026-04-23
1037Russia2026-04-21
1038Italy2026-04-16
1039Italy2026-04-05
1040Italy2026-03-28
1041Italy2026-04-03
1042France2026-04-22
1043Italy2026-04-03
1044Canada2026-03-26
1045Spain2026-04-23
1046Brazil2026-04-03
1047France2026-04-22
1048India2026-04-05
1049Italy2026-04-08

On-Demand Data

NameIdCountryDate
Clifford Rim1000United Kingdom2026-04-20
Antonio Caudy1001Spain2026-04-11
Deepesh Chui1002Australia2026-04-06
Cody Saylors1003India2026-04-24
Aruna Figeroa1004Italy2026-04-06
Claire Tollner1005Brazil2026-04-21
Maria Marrier1006France2026-04-16
Wickens Nestle1007France2026-04-19
Adams Morasca1008Germany2026-04-04
Jennifer Amigon1009United Kingdom2026-04-15
Greenwood Bolognia1010Spain2026-04-01
Jeanfrancois Venere1011United Kingdom2026-04-14
Silvio Slusarski1012Italy2026-04-06
Sinclair Waycott1013Japan2026-03-29
Tony Foller1014Spain2026-04-24
Cody Saylors1015Japan2026-04-07
Aditya Kusko1016France2026-03-27
Stacey Maclead1017Russia2026-04-20
Munro Ferencz1018Spain2026-04-13
Claire Tollner1019Canada2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaBrazilBernardo Dominic NEW
Isabel BowleyBrazilAmy Elsner NEW
Stacey MacleadUnited KingdomOnyama Limba NEGOTIATION
Cody SaylorsIndiaIoni Bowcher RENEWAL
Salvatore StockhamBrazilAnna Fali NEW
Alejandro PerinUnited KingdomIoni Bowcher PROPOSAL
Costa DilliardItalyStephen Shaw NEW
Aika InouyeFranceAsiya Javayant QUALIFIED
Tony FollerArgentinaAnna Fali RENEWAL
Cody SaylorsItalyIoni Bowcher NEW
Clifford RimFranceAnna Fali UNQUALIFIED
Mayumi KolmetzCanadaBernardo Dominic PROPOSAL
Izzy GarufiArgentinaAnna Fali PROPOSAL
Sinclair WaycottIndiaElwin Sharvill RENEWAL
Greenwood BologniaJapanIvan Magalhaes QUALIFIED
Isabel BowleyBrazilIoni Bowcher NEGOTIATION
Alejandro PerinUnited KingdomAmy Elsner NEGOTIATION
Ricardo GauchoUnited KingdomElwin Sharvill NEGOTIATION
Ashley DoeCanadaAsiya Javayant UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali NEGOTIATION
Aruna FigeroaCanadaXuxue Feng QUALIFIED
Chavez BriddickItalyStephen Shaw UNQUALIFIED
Ivar PaprockiItalyXuxue Feng RENEWAL
Aruna FigeroaIndiaStephen Shaw RENEWAL
Darci PoquetteUnited KingdomIoni Bowcher QUALIFIED
Mayumi KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Francesco ShinkoSpainStephen Shaw PROPOSAL
Octavia MaletAustraliaAnna Fali PROPOSAL
Deepesh ChuiSpainXuxue Feng RENEWAL
Claire TollnerItalyStephen Shaw UNQUALIFIED
Francesco ShinkoIndiaStephen Shaw RENEWAL
Ashley DoeItalyIoni Bowcher NEW
Greenwood BologniaItalyXuxue Feng QUALIFIED
Chavez BriddickArgentinaAmy Elsner RENEWAL
Darci PoquetteAustraliaOnyama Limba PROPOSAL
Leja CaldareraAustraliaStephen Shaw RENEWAL
Salvatore StockhamBrazilAmy Elsner UNQUALIFIED
Francesco ShinkoArgentinaOnyama Limba UNQUALIFIED
Sinclair WaycottJapanIvan Magalhaes UNQUALIFIED
Julie StensethItalyBernardo Dominic 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>