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
Isabel BowleyBrazilAmy Elsner NEGOTIATION
Alejandro PerinIndiaIoni Bowcher NEGOTIATION
Clifford RimItalyIoni Bowcher NEGOTIATION
Emily WhobreyBrazilIoni Bowcher NEW
Jeanfrancois VenereAustraliaElwin Sharvill NEW
Aruna FigeroaRussiaBernardo Dominic NEW
Munro FerenczGermanyElwin Sharvill PROPOSAL
Maisha RulapaughRussiaIvan Magalhaes UNQUALIFIED
Aditya KuskoRussiaStephen Shaw PROPOSAL
Morrow RutaSpainIoni Bowcher PROPOSAL
Faith GillianAustraliaElwin Sharvill NEW
Greenwood BologniaFranceAmy Elsner PROPOSAL
James ButtAustraliaAsiya Javayant RENEWAL
Murillo MaletRussiaStephen Shaw PROPOSAL
Nicolas IturbideItalyBernardo Dominic RENEWAL
Octavia MaletArgentinaAsiya Javayant UNQUALIFIED
Mayumi KolmetzUnited KingdomBernardo Dominic QUALIFIED
Jones VocelkaSpainIoni Bowcher RENEWAL
Tony FollerItalyIoni Bowcher NEW
Aruna FigeroaBrazilAsiya Javayant NEW
Johnson SergiItalyAmy Elsner NEW
Murillo MaletIndiaBernardo Dominic QUALIFIED
Smith GlickGermanyElwin Sharvill PROPOSAL
Sinclair WaycottUnited KingdomElwin Sharvill PROPOSAL
Rodrigues CampainBrazilAnna Fali PROPOSAL
Ricardo GauchoCanadaAnna Fali UNQUALIFIED
Misaki RoysterFranceAsiya Javayant UNQUALIFIED
David DarakjyCanadaAnna Fali RENEWAL
Izzy GarufiGermanyAsiya Javayant PROPOSAL
Isabel BowleyGermanyIvan Magalhaes RENEWAL
Smith GlickCanadaXuxue Feng NEW
Faith GillianIndiaAmy Elsner RENEWAL
Morrow RutaItalyAmy Elsner NEGOTIATION
Faith GillianCanadaIvan Magalhaes UNQUALIFIED
Mujtaba NickaIndiaBernardo Dominic RENEWAL
Ricardo GauchoAustraliaIoni Bowcher UNQUALIFIED
Tony FollerAustraliaOnyama Limba NEGOTIATION
Munro FerenczUnited KingdomAnna Fali NEGOTIATION
Costa DilliardRussiaElwin Sharvill RENEWAL
Cody SaylorsSpainAmy Elsner NEGOTIATION
Chavez BriddickIndiaAsiya Javayant RENEWAL
Cody SaylorsIndiaIoni Bowcher NEGOTIATION
Jennifer AmigonGermanyXuxue Feng UNQUALIFIED
Sinclair WaycottAustraliaIoni Bowcher QUALIFIED
Kadeem FlosiGermanyElwin Sharvill NEGOTIATION
Maisha RulapaughBrazilXuxue Feng PROPOSAL
Juan WieserJapanAnna Fali NEGOTIATION
Deepesh ChuiBrazilIoni Bowcher QUALIFIED
Francesco ShinkoSpainAmy Elsner QUALIFIED
Greenwood BologniaSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens NestleFranceIvan Magalhaes QUALIFIED
Murillo MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez BriddickFranceStephen Shaw RENEWAL
Leja CaldareraSpainAsiya Javayant PROPOSAL
Ivar PaprockiCanadaStephen Shaw RENEWAL
Kaitlin OstroskyRussiaIoni Bowcher RENEWAL
Ricardo GauchoItalyBernardo Dominic UNQUALIFIED
Jones VocelkaIndiaAnna Fali RENEWAL
Julie StensethFranceAsiya Javayant NEW
Maisha RulapaughCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickGermany2026-05-17Commercial Press NEW22Elwin Sharvill
1001Juan WieserSpain2026-04-26Commercial Press RENEWAL28Stephen Shaw
1002Kaitlin OstroskyArgentina2026-05-02Feiner Bros QUALIFIED97Elwin Sharvill
1003Leja CaldareraFrance2026-05-12King, Christopher A Esq QUALIFIED32Anna Fali
1004Morrow RutaBrazil2026-05-13Rangoni Of Florence QUALIFIED26Stephen Shaw
1005Kaitlin OstroskyGermany2026-05-03Feltz Printing Service NEW10Xuxue Feng
1006Jeanfrancois VenereUnited Kingdom2026-05-21King, Christopher A Esq PROPOSAL71Bernardo Dominic
1007Antonio CaudyRussia2026-05-20Buckley Miller Wright QUALIFIED19Amy Elsner
1008Adams MorascaJapan2026-05-08Benton, John B Jr UNQUALIFIED72Stephen Shaw
1009Stacey MacleadCanada2026-05-13Chanay, Jeffrey A Esq UNQUALIFIED13Bernardo Dominic
1010Juan WieserJapan2026-05-20Commercial Press NEGOTIATION20Bernardo Dominic
1011Silvio SlusarskiAustralia2026-05-22Feiner Bros UNQUALIFIED21Ioni Bowcher
1012Jefferson SchemmerFrance2026-04-28Feiner Bros UNQUALIFIED55Elwin Sharvill
1013Tony FollerIndia2026-05-13Morlong Associates NEW90Ioni Bowcher
1014Ivar PaprockiSpain2026-05-14Dorl, James J Esq NEW5Amy Elsner
1015Ivar PaprockiItaly2026-05-04Feiner Bros QUALIFIED95Onyama Limba
1016Maria MarrierUnited Kingdom2026-05-01Morlong Associates QUALIFIED92Anna Fali
1017Mayumi KolmetzFrance2026-05-16Morlong Associates PROPOSAL11Anna Fali
1018Jefferson SchemmerRussia2026-05-02Printing Dimensions PROPOSAL61Ioni Bowcher
1019Ricardo GauchoSpain2026-05-15Truhlar And Truhlar Attys QUALIFIED99Amy Elsner
1020Jones VocelkaArgentina2026-04-26Feltz Printing Service NEW76Anna Fali
1021Mayumi KolmetzUnited Kingdom2026-05-04Truhlar And Truhlar Attys PROPOSAL51Amy Elsner
1022David DarakjyCanada2026-05-22Dorl, James J Esq PROPOSAL51Bernardo Dominic
1023Antonio CaudyUnited Kingdom2026-05-09Chanay, Jeffrey A Esq NEGOTIATION51Ivan Magalhaes
1024Jones VocelkaUnited Kingdom2026-05-20Truhlar And Truhlar Attys NEW19Anna Fali
1025Kaitlin OstroskyRussia2026-05-20King, Christopher A Esq UNQUALIFIED29Asiya Javayant
1026Izzy GarufiJapan2026-05-21Printing Dimensions QUALIFIED2Anna Fali
1027Leja CaldareraIndia2026-05-09Morlong Associates PROPOSAL45Stephen Shaw
1028Munro FerenczSpain2026-05-14Chemel, James L Cpa UNQUALIFIED40Amy Elsner
1029Jeanfrancois VenereFrance2026-04-27Benton, John B Jr NEGOTIATION55Amy Elsner
1030Octavia MaletAustralia2026-05-15Feltz Printing Service QUALIFIED31Anna Fali
1031Smith GlickUnited Kingdom2026-05-14Printing Dimensions UNQUALIFIED68Xuxue Feng
1032Greenwood BologniaRussia2026-05-14Feiner Bros UNQUALIFIED55Ioni Bowcher
1033Antonio CaudyIndia2026-05-06Feiner Bros RENEWAL98Anna Fali
1034Jefferson SchemmerBrazil2026-04-24Truhlar And Truhlar Attys UNQUALIFIED0Xuxue Feng
1035Ivar PaprockiItaly2026-05-23Chapman, Ross E Esq RENEWAL89Anna Fali
1036Chavez BriddickIndia2026-05-18Benton, John B Jr UNQUALIFIED86Elwin Sharvill
1037Tony FollerUnited Kingdom2026-05-03Feltz Printing Service UNQUALIFIED87Ivan Magalhaes
1038Faith GillianSpain2026-05-08Buckley Miller Wright NEW57Amy Elsner
1039Isabel BowleyIndia2026-05-12Benton, John B Jr QUALIFIED5Bernardo Dominic
1040Rodrigues CampainBrazil2026-05-15Chanay, Jeffrey A Esq NEW91Elwin Sharvill
1041Claire TollnerJapan2026-05-03Chapman, Ross E Esq UNQUALIFIED74Anna Fali
1042Johnson SergiCanada2026-05-20Printing Dimensions PROPOSAL13Asiya Javayant
1043Emily WhobreyFrance2026-05-16Morlong Associates QUALIFIED39Amy Elsner
1044Isabel BowleyGermany2026-05-14Rousseaux, Michael Esq QUALIFIED92Asiya Javayant
1045Salvatore StockhamRussia2026-05-21Rangoni Of Florence PROPOSAL35Ivan Magalhaes
1046Octavia MaletBrazil2026-05-19Morlong Associates NEW49Stephen Shaw
1047Adams MorascaAustralia2026-04-27Feiner Bros RENEWAL41Stephen Shaw
1048Greenwood BologniaFrance2026-05-15Buckley Miller Wright PROPOSAL78Anna Fali
1049Izzy GarufiBrazil2026-04-29Feltz Printing Service RENEWAL63Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonUnited KingdomAsiya Javayant PROPOSAL
Sinclair WaycottIndiaBernardo Dominic RENEWAL
Aika InouyeAustraliaBernardo Dominic QUALIFIED
Aditya KuskoUnited KingdomStephen Shaw UNQUALIFIED
Alejandro PerinUnited KingdomOnyama Limba NEW
Cody SaylorsFranceIoni Bowcher QUALIFIED
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Julie StensethBrazilStephen Shaw PROPOSAL
Munro FerenczSpainIoni Bowcher NEGOTIATION
Maria MarrierCanadaIvan Magalhaes NEW
Mujtaba NickaUnited KingdomAmy Elsner NEGOTIATION
Smith GlickFranceXuxue Feng QUALIFIED
Munro FerenczRussiaElwin Sharvill NEGOTIATION
Rodrigues CampainArgentinaIoni Bowcher QUALIFIED
Ivar PaprockiArgentinaAsiya Javayant RENEWAL
Munro FerenczBrazilBernardo Dominic PROPOSAL
Izzy GarufiArgentinaIvan Magalhaes NEGOTIATION
Nicolas IturbideUnited KingdomBernardo Dominic PROPOSAL
Stacey MacleadSpainAnna Fali PROPOSAL
Claire TollnerAustraliaAnna Fali UNQUALIFIED
Wickens NestleCanadaBernardo Dominic RENEWAL
Stacey MacleadAustraliaElwin Sharvill RENEWAL
Izzy GarufiArgentinaAsiya Javayant QUALIFIED
Wickens NestleUnited KingdomIoni Bowcher PROPOSAL
Maria MarrierIndiaBernardo Dominic PROPOSAL
Smith GlickFranceElwin Sharvill UNQUALIFIED
Smith GlickItalyXuxue Feng NEGOTIATION
Greenwood BologniaCanadaAmy Elsner PROPOSAL
Leja CaldareraJapanAsiya Javayant RENEWAL
Juan WieserRussiaElwin Sharvill UNQUALIFIED
Alejandro PerinFranceBernardo Dominic UNQUALIFIED
Morrow RutaIndiaIoni Bowcher NEGOTIATION
Alejandro PerinFranceIoni Bowcher RENEWAL
Jennifer AmigonCanadaOnyama Limba PROPOSAL
Jeanfrancois VenereBrazilIvan Magalhaes UNQUALIFIED
Leja CaldareraItalyIoni Bowcher QUALIFIED
Ricardo GauchoRussiaBernardo Dominic NEW
Mujtaba NickaUnited KingdomStephen Shaw PROPOSAL
James ButtSpainBernardo Dominic QUALIFIED
Morrow RutaAustraliaBernardo Dominic NEW
Darci PoquetteBrazilIvan Magalhaes UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Mujtaba NickaAustraliaOnyama Limba NEW
Kaitlin OstroskyFranceAmy Elsner UNQUALIFIED
Julie StensethItalyXuxue Feng RENEWAL
David DarakjyGermanyAnna Fali NEW
Leon OldroydCanadaElwin Sharvill RENEWAL
Greenwood BologniaArgentinaIoni Bowcher RENEWAL
Darci PoquetteItalyBernardo Dominic UNQUALIFIED
Ashley DoeRussiaAmy Elsner QUALIFIED
Frozen Columns
Name
Chavez Briddick
Cody Saylors
Mujtaba Nicka
Tony Foller
Arvin Albares
James Butt
Leja Caldarera
Kadeem Flosi
Ricardo Gaucho
Aika Inouye
Antonio Caudy
Wickens Nestle
Salvatore Stockham
Mujtaba Nicka
Smith Glick
Greenwood Bolognia
Alejandro Perin
Clifford Rim
Deepesh Chui
Izzy Garufi
Kadeem Flosi
Darci Poquette
Darci Poquette
Aruna Figeroa
Julie Stenseth
Kadeem Flosi
Juan Wieser
Izzy Garufi
Silvio Slusarski
Wickens Nestle
Ashley Doe
Stacey Maclead
Morrow Ruta
Adams Morasca
Rodrigues Campain
Aika Inouye
Rodrigues Campain
Stacey Maclead
Nicolas Iturbide
Silvio Slusarski
Nicolas Iturbide
Faith Gillian
Isabel Bowley
Ivar Paprocki
Alejandro Perin
Chavez Briddick
Jeanfrancois Venere
Arvin Albares
Francesco Shinko
Ricardo Gaucho
IdCountryDate
1000United Kingdom2026-05-07
1001Argentina2026-04-29
1002Japan2026-05-01
1003Australia2026-04-29
1004Japan2026-05-03
1005Canada2026-05-13
1006Germany2026-05-04
1007France2026-05-10
1008Germany2026-05-15
1009Russia2026-04-29
1010Russia2026-05-22
1011Spain2026-05-16
1012India2026-05-05
1013France2026-05-20
1014Canada2026-05-03
1015France2026-05-06
1016Canada2026-05-05
1017France2026-05-19
1018Australia2026-05-17
1019Argentina2026-04-24
1020Argentina2026-05-20
1021France2026-05-22
1022Canada2026-05-21
1023France2026-04-28
1024Canada2026-05-08
1025United Kingdom2026-04-26
1026Canada2026-05-07
1027Italy2026-05-05
1028France2026-05-07
1029Japan2026-05-14
1030Australia2026-05-22
1031France2026-05-02
1032Australia2026-05-04
1033India2026-05-17
1034France2026-05-09
1035France2026-05-22
1036Brazil2026-05-04
1037Spain2026-05-14
1038Germany2026-05-09
1039Russia2026-05-05
1040United Kingdom2026-05-02
1041Germany2026-05-09
1042Brazil2026-05-20
1043Spain2026-05-05
1044Canada2026-05-11
1045Australia2026-05-07
1046Brazil2026-05-20
1047Russia2026-05-07
1048Russia2026-05-11
1049France2026-05-21

On-Demand Data

NameIdCountryDate
Jennifer Amigon1000Spain2026-04-29
Emily Whobrey1001Germany2026-04-25
James Butt1002India2026-05-21
Izzy Garufi1003Russia2026-04-30
Ricardo Gaucho1004Brazil2026-04-30
Rodrigues Campain1005Canada2026-04-24
Jones Vocelka1006Germany2026-05-16
Adams Morasca1007Germany2026-05-09
Arvin Albares1008Canada2026-05-16
Jefferson Schemmer1009Argentina2026-05-11
Francesco Shinko1010Japan2026-05-07
Julie Stenseth1011Canada2026-05-02
Nicolas Iturbide1012Italy2026-05-16
Adams Morasca1013United Kingdom2026-04-28
Misaki Royster1014Italy2026-05-23
Cody Saylors1015Germany2026-04-28
Smith Glick1016Russia2026-05-18
Wickens Nestle1017Japan2026-05-14
Wickens Nestle1018Brazil2026-05-10
Nicolas Iturbide1019Germany2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideItalyIvan Magalhaes UNQUALIFIED
Maisha RulapaughAustraliaAsiya Javayant UNQUALIFIED
Aika InouyeFranceStephen Shaw NEGOTIATION
Silvio SlusarskiFranceXuxue Feng NEGOTIATION
Salvatore StockhamItalyIvan Magalhaes RENEWAL
Octavia MaletArgentinaIoni Bowcher RENEWAL
Leon OldroydBrazilAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer AmigonFranceAsiya Javayant QUALIFIED
Izzy GarufiIndiaAmy Elsner QUALIFIED
Aika InouyeSpainIoni Bowcher NEGOTIATION
Adams MorascaCanadaIvan Magalhaes NEW
Jeanfrancois VenereAustraliaIvan Magalhaes PROPOSAL
Sinclair WaycottFranceOnyama Limba QUALIFIED
David DarakjyAustraliaAsiya Javayant RENEWAL
Aruna FigeroaGermanyIoni Bowcher RENEWAL
David DarakjyAustraliaXuxue Feng QUALIFIED
Kadeem FlosiItalyStephen Shaw NEW
Arvin AlbaresCanadaAmy Elsner PROPOSAL
Maisha RulapaughRussiaBernardo Dominic NEW
Sinclair WaycottUnited KingdomAnna Fali NEW
Emily WhobreyJapanOnyama Limba QUALIFIED
Wickens NestleUnited KingdomAnna Fali NEW
Antonio CaudyUnited KingdomIoni Bowcher RENEWAL
Tony FollerUnited KingdomAmy Elsner QUALIFIED
Maisha RulapaughSpainStephen Shaw PROPOSAL
Izzy GarufiSpainAmy Elsner NEGOTIATION
Silvio SlusarskiItalyStephen Shaw NEW
Octavia MaletBrazilStephen Shaw PROPOSAL
Johnson SergiJapanAnna Fali PROPOSAL
Julie StensethSpainAmy Elsner RENEWAL
Kaitlin OstroskySpainAmy Elsner NEGOTIATION
Salvatore StockhamGermanyElwin Sharvill NEW
Morrow RutaAustraliaAsiya Javayant QUALIFIED
Jeanfrancois VenereSpainStephen Shaw UNQUALIFIED
Emily WhobreyItalyAnna Fali PROPOSAL
Aditya KuskoSpainAnna Fali RENEWAL
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Alejandro PerinArgentinaAsiya Javayant RENEWAL
Chavez BriddickCanadaAnna Fali PROPOSAL

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