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
Faith GillianAustraliaIvan Magalhaes NEGOTIATION
Francesco ShinkoJapanIoni Bowcher NEGOTIATION
Ivar PaprockiRussiaAmy Elsner NEGOTIATION
Costa DilliardIndiaElwin Sharvill PROPOSAL
Izzy GarufiSpainAnna Fali NEW
Sinclair WaycottGermanyStephen Shaw NEGOTIATION
Jones VocelkaItalyIvan Magalhaes QUALIFIED
Deepesh ChuiItalyAnna Fali UNQUALIFIED
Isabel BowleyArgentinaAmy Elsner RENEWAL
Cody SaylorsUnited KingdomBernardo Dominic PROPOSAL
Emily WhobreySpainIoni Bowcher RENEWAL
Mayumi KolmetzIndiaElwin Sharvill NEGOTIATION
Tony FollerSpainIvan Magalhaes PROPOSAL
Maisha RulapaughSpainAsiya Javayant NEW
Isabel BowleyFranceElwin Sharvill UNQUALIFIED
Claire TollnerRussiaElwin Sharvill UNQUALIFIED
Wickens NestleArgentinaBernardo Dominic QUALIFIED
Adams MorascaIndiaAnna Fali QUALIFIED
Ashley DoeIndiaBernardo Dominic NEGOTIATION
Chavez BriddickItalyAnna Fali UNQUALIFIED
Aika InouyeCanadaAsiya Javayant UNQUALIFIED
Silvio SlusarskiJapanElwin Sharvill QUALIFIED
Aruna FigeroaCanadaAmy Elsner UNQUALIFIED
Wickens NestleJapanOnyama Limba QUALIFIED
Salvatore StockhamItalyXuxue Feng UNQUALIFIED
Emily WhobreyRussiaStephen Shaw NEGOTIATION
Clifford RimCanadaStephen Shaw NEGOTIATION
Salvatore StockhamRussiaAmy Elsner NEGOTIATION
Maisha RulapaughAustraliaXuxue Feng QUALIFIED
Wickens NestleJapanAnna Fali NEW
Silvio SlusarskiFranceAnna Fali RENEWAL
Jeanfrancois VenereFranceStephen Shaw QUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant RENEWAL
Leja CaldareraAustraliaAnna Fali RENEWAL
Misaki RoysterIndiaOnyama Limba RENEWAL
Tony FollerRussiaIvan Magalhaes QUALIFIED
Kadeem FlosiJapanXuxue Feng UNQUALIFIED
Jones VocelkaItalyIvan Magalhaes PROPOSAL
Maria MarrierRussiaStephen Shaw NEW
Sinclair WaycottSpainStephen Shaw RENEWAL
Jeanfrancois VenereArgentinaIvan Magalhaes NEGOTIATION
Kadeem FlosiBrazilAsiya Javayant NEW
Murillo MaletUnited KingdomElwin Sharvill QUALIFIED
Adams MorascaItalyIvan Magalhaes RENEWAL
Emily WhobreyIndiaOnyama Limba RENEWAL
Arvin AlbaresBrazilStephen Shaw UNQUALIFIED
Johnson SergiIndiaAsiya Javayant PROPOSAL
Sinclair WaycottIndiaAsiya Javayant PROPOSAL
Maria MarrierGermanyBernardo Dominic NEGOTIATION
Costa DilliardFranceAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresUnited KingdomAnna Fali NEW
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Deepesh ChuiJapanIvan Magalhaes PROPOSAL
Deepesh ChuiArgentinaAmy Elsner PROPOSAL
Jeanfrancois VenereFranceAsiya Javayant NEGOTIATION
Maria MarrierRussiaIvan Magalhaes NEW
Misaki RoysterRussiaAmy Elsner PROPOSAL
Leja CaldareraSpainXuxue Feng QUALIFIED
Misaki RoysterAustraliaXuxue Feng QUALIFIED
Jones VocelkaItalyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoIndia2026-06-09Printing Dimensions UNQUALIFIED40Xuxue Feng
1001James ButtJapan2026-06-18Feltz Printing Service NEGOTIATION2Ioni Bowcher
1002Silvio SlusarskiJapan2026-05-29Dorl, James J Esq UNQUALIFIED83Elwin Sharvill
1003Munro FerenczUnited Kingdom2026-06-09Commercial Press NEW15Stephen Shaw
1004Kaitlin OstroskyCanada2026-06-02Dorl, James J Esq RENEWAL20Stephen Shaw
1005Jefferson SchemmerSpain2026-05-23Chanay, Jeffrey A Esq PROPOSAL54Stephen Shaw
1006Ashley DoeGermany2026-06-16Chemel, James L Cpa UNQUALIFIED47Amy Elsner
1007Sinclair WaycottCanada2026-06-14Rangoni Of Florence QUALIFIED91Anna Fali
1008Jefferson SchemmerUnited Kingdom2026-05-28Morlong Associates RENEWAL15Stephen Shaw
1009Clifford RimRussia2026-06-08Benton, John B Jr QUALIFIED78Xuxue Feng
1010Octavia MaletFrance2026-06-17Morlong Associates RENEWAL38Onyama Limba
1011Julie StensethJapan2026-06-13Printing Dimensions NEW20Asiya Javayant
1012Tony FollerAustralia2026-06-07King, Christopher A Esq UNQUALIFIED30Anna Fali
1013Johnson SergiGermany2026-05-20Morlong Associates RENEWAL71Ioni Bowcher
1014Leon OldroydBrazil2026-05-29Benton, John B Jr NEW13Asiya Javayant
1015Julie StensethAustralia2026-05-29Buckley Miller Wright QUALIFIED81Ioni Bowcher
1016Leja CaldareraGermany2026-05-25Rousseaux, Michael Esq PROPOSAL2Onyama Limba
1017Maria MarrierAustralia2026-05-26Benton, John B Jr NEW89Asiya Javayant
1018Alejandro PerinRussia2026-06-07Benton, John B Jr RENEWAL55Elwin Sharvill
1019Darci PoquetteBrazil2026-06-07Benton, John B Jr QUALIFIED26Xuxue Feng
1020Julie StensethRussia2026-06-05Morlong Associates QUALIFIED88Amy Elsner
1021Smith GlickRussia2026-05-29Chapman, Ross E Esq QUALIFIED31Ioni Bowcher
1022Ricardo GauchoFrance2026-06-09Dorl, James J Esq QUALIFIED93Ivan Magalhaes
1023Misaki RoysterUnited Kingdom2026-05-22Feiner Bros UNQUALIFIED51Bernardo Dominic
1024Nicolas IturbideJapan2026-05-30Chanay, Jeffrey A Esq NEGOTIATION57Ioni Bowcher
1025Leon OldroydFrance2026-05-30Benton, John B Jr PROPOSAL91Stephen Shaw
1026Misaki RoysterUnited Kingdom2026-06-09Morlong Associates PROPOSAL88Elwin Sharvill
1027Maisha RulapaughIndia2026-05-22Rangoni Of Florence UNQUALIFIED22Ivan Magalhaes
1028Aditya KuskoUnited Kingdom2026-05-24Feiner Bros QUALIFIED56Onyama Limba
1029Chavez BriddickJapan2026-06-09Rousseaux, Michael Esq NEW66Bernardo Dominic
1030Kaitlin OstroskyFrance2026-05-31King, Christopher A Esq PROPOSAL50Bernardo Dominic
1031Chavez BriddickJapan2026-06-18Benton, John B Jr UNQUALIFIED4Ivan Magalhaes
1032Aika InouyeUnited Kingdom2026-06-05Feltz Printing Service PROPOSAL0Onyama Limba
1033Francesco ShinkoJapan2026-05-26Morlong Associates RENEWAL56Asiya Javayant
1034Smith GlickGermany2026-06-03King, Christopher A Esq UNQUALIFIED51Ivan Magalhaes
1035Aditya KuskoArgentina2026-06-17Buckley Miller Wright NEGOTIATION82Ivan Magalhaes
1036Isabel BowleyAustralia2026-05-31Dorl, James J Esq NEW66Asiya Javayant
1037Mujtaba NickaItaly2026-06-07Dorl, James J Esq RENEWAL2Amy Elsner
1038Johnson SergiBrazil2026-06-13Printing Dimensions QUALIFIED77Onyama Limba
1039Sinclair WaycottSpain2026-05-29King, Christopher A Esq PROPOSAL52Bernardo Dominic
1040Deepesh ChuiGermany2026-05-29Truhlar And Truhlar Attys NEGOTIATION58Elwin Sharvill
1041Wickens NestleCanada2026-06-08Commercial Press UNQUALIFIED39Amy Elsner
1042Mayumi KolmetzUnited Kingdom2026-06-01Rousseaux, Michael Esq UNQUALIFIED16Ivan Magalhaes
1043Antonio CaudyArgentina2026-06-10King, Christopher A Esq PROPOSAL59Xuxue Feng
1044Octavia MaletArgentina2026-06-13Chapman, Ross E Esq RENEWAL59Amy Elsner
1045Francesco ShinkoRussia2026-06-02Truhlar And Truhlar Attys RENEWAL19Asiya Javayant
1046James ButtGermany2026-05-30Printing Dimensions UNQUALIFIED55Stephen Shaw
1047Antonio CaudyUnited Kingdom2026-06-04Commercial Press QUALIFIED0Anna Fali
1048Rodrigues CampainJapan2026-06-02Rousseaux, Michael Esq RENEWAL35Stephen Shaw
1049Kaitlin OstroskyJapan2026-06-07Rangoni Of Florence UNQUALIFIED52Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaJapanIoni Bowcher RENEWAL
Costa DilliardSpainStephen Shaw UNQUALIFIED
Kaitlin OstroskyFranceAnna Fali PROPOSAL
Johnson SergiJapanOnyama Limba QUALIFIED
Johnson SergiUnited KingdomAmy Elsner NEGOTIATION
Claire TollnerFranceElwin Sharvill NEGOTIATION
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
Jefferson SchemmerBrazilBernardo Dominic NEGOTIATION
Ivar PaprockiRussiaAmy Elsner NEW
Johnson SergiRussiaAsiya Javayant RENEWAL
Costa DilliardAustraliaBernardo Dominic RENEWAL
Greenwood BologniaRussiaAmy Elsner UNQUALIFIED
Alejandro PerinAustraliaAmy Elsner NEW
Izzy GarufiSpainAmy Elsner NEGOTIATION
Aika InouyeItalyIoni Bowcher NEW
Isabel BowleyArgentinaElwin Sharvill RENEWAL
Chavez BriddickArgentinaIvan Magalhaes NEW
Aditya KuskoCanadaAmy Elsner PROPOSAL
Darci PoquetteGermanyOnyama Limba RENEWAL
Ricardo GauchoRussiaAsiya Javayant PROPOSAL
Aika InouyeFranceAmy Elsner NEW
Kadeem FlosiRussiaBernardo Dominic PROPOSAL
Faith GillianJapanIoni Bowcher PROPOSAL
Julie StensethIndiaAsiya Javayant QUALIFIED
Jefferson SchemmerCanadaAnna Fali NEGOTIATION
Deepesh ChuiIndiaStephen Shaw QUALIFIED
Isabel BowleyIndiaAsiya Javayant UNQUALIFIED
Antonio CaudyGermanyXuxue Feng PROPOSAL
Clifford RimArgentinaOnyama Limba RENEWAL
Aditya KuskoIndiaElwin Sharvill UNQUALIFIED
Ricardo GauchoSpainElwin Sharvill QUALIFIED
Antonio CaudyBrazilIoni Bowcher RENEWAL
Rodrigues CampainBrazilStephen Shaw NEGOTIATION
Mujtaba NickaJapanXuxue Feng NEGOTIATION
David DarakjyItalyIvan Magalhaes UNQUALIFIED
Faith GillianFranceStephen Shaw QUALIFIED
Mujtaba NickaFranceElwin Sharvill QUALIFIED
Emily WhobreyJapanAmy Elsner UNQUALIFIED
Sinclair WaycottFranceStephen Shaw UNQUALIFIED
Maria MarrierUnited KingdomXuxue Feng QUALIFIED
Ivar PaprockiIndiaAnna Fali NEGOTIATION
Adams MorascaFranceIoni Bowcher RENEWAL
Johnson SergiUnited KingdomIoni Bowcher NEGOTIATION
Greenwood BologniaRussiaBernardo Dominic NEW
Maria MarrierIndiaOnyama Limba NEGOTIATION
Greenwood BologniaCanadaOnyama Limba NEW
Stacey MacleadArgentinaAsiya Javayant NEW
Maria MarrierRussiaOnyama Limba UNQUALIFIED
Costa DilliardCanadaAsiya Javayant NEW
Costa DilliardGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Isabel Bowley
Johnson Sergi
Ivar Paprocki
David Darakjy
Francesco Shinko
Costa Dilliard
Maria Marrier
Stacey Maclead
Jeanfrancois Venere
Murillo Malet
Stacey Maclead
Ashley Doe
David Darakjy
Claire Tollner
Maria Marrier
Mayumi Kolmetz
Francesco Shinko
Morrow Ruta
Costa Dilliard
Emily Whobrey
Silvio Slusarski
Maria Marrier
Faith Gillian
Smith Glick
Izzy Garufi
Ricardo Gaucho
Aruna Figeroa
Misaki Royster
Leja Caldarera
Cody Saylors
Darci Poquette
Silvio Slusarski
Juan Wieser
Tony Foller
Alejandro Perin
Morrow Ruta
Wickens Nestle
Silvio Slusarski
Deepesh Chui
Kadeem Flosi
Salvatore Stockham
Johnson Sergi
Murillo Malet
Cody Saylors
Munro Ferencz
Leon Oldroyd
Sinclair Waycott
Emily Whobrey
Leon Oldroyd
IdCountryDate
1000Russia2026-06-18
1001India2026-06-01
1002Japan2026-06-01
1003Japan2026-05-24
1004United Kingdom2026-06-08
1005Germany2026-06-06
1006Australia2026-06-07
1007Australia2026-06-11
1008Russia2026-06-12
1009United Kingdom2026-06-15
1010Germany2026-05-31
1011Australia2026-05-31
1012Italy2026-05-20
1013Italy2026-06-07
1014Canada2026-06-10
1015Italy2026-05-31
1016Italy2026-06-16
1017Australia2026-06-18
1018Italy2026-05-24
1019Argentina2026-06-05
1020India2026-05-22
1021France2026-05-31
1022United Kingdom2026-06-06
1023Argentina2026-06-17
1024Russia2026-06-17
1025Spain2026-06-04
1026Spain2026-06-11
1027Japan2026-06-18
1028Russia2026-06-09
1029Brazil2026-05-29
1030Japan2026-06-18
1031Russia2026-05-25
1032France2026-06-08
1033France2026-05-28
1034Australia2026-05-30
1035Italy2026-05-24
1036Canada2026-05-26
1037France2026-06-05
1038Brazil2026-06-06
1039Japan2026-05-22
1040Japan2026-05-28
1041India2026-06-17
1042Japan2026-06-15
1043Brazil2026-06-15
1044Brazil2026-05-24
1045Australia2026-05-30
1046Russia2026-05-23
1047France2026-06-15
1048India2026-05-30
1049Japan2026-05-26

On-Demand Data

NameIdCountryDate
Clifford Rim1000India2026-06-17
Aika Inouye1001France2026-05-23
Jennifer Amigon1002Brazil2026-05-23
Antonio Caudy1003Japan2026-05-23
Aditya Kusko1004Brazil2026-05-23
David Darakjy1005Spain2026-06-03
David Darakjy1006Australia2026-06-11
Chavez Briddick1007United Kingdom2026-06-08
Faith Gillian1008France2026-06-17
Arvin Albares1009Australia2026-06-15
Misaki Royster1010United Kingdom2026-06-16
Costa Dilliard1011Italy2026-06-03
Deepesh Chui1012Canada2026-05-25
Arvin Albares1013Argentina2026-06-02
Francesco Shinko1014Germany2026-05-27
Faith Gillian1015Russia2026-05-22
Faith Gillian1016Canada2026-06-01
Deepesh Chui1017Spain2026-05-30
Misaki Royster1018United Kingdom2026-06-10
Darci Poquette1019Italy2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeItalyOnyama Limba NEW
Rodrigues CampainUnited KingdomAsiya Javayant RENEWAL
Johnson SergiRussiaIoni Bowcher UNQUALIFIED
Ricardo GauchoRussiaAnna Fali NEGOTIATION
Maria MarrierBrazilIvan Magalhaes NEW
Kadeem FlosiAustraliaIoni Bowcher RENEWAL
Maria MarrierItalyIoni Bowcher NEGOTIATION
Smith GlickGermanyXuxue Feng QUALIFIED
Ricardo GauchoAustraliaStephen Shaw NEGOTIATION
Ivar PaprockiGermanyOnyama Limba QUALIFIED
Julie StensethJapanAnna Fali PROPOSAL
Ivar PaprockiAustraliaAsiya Javayant PROPOSAL
Adams MorascaJapanAsiya Javayant PROPOSAL
Leja CaldareraArgentinaStephen Shaw QUALIFIED
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Maisha RulapaughGermanyIvan Magalhaes PROPOSAL
Francesco ShinkoBrazilAnna Fali QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Greenwood BologniaAustraliaStephen Shaw NEW
Greenwood BologniaFranceAnna Fali PROPOSAL
Smith GlickJapanOnyama Limba QUALIFIED
Tony FollerRussiaOnyama Limba NEGOTIATION
Juan WieserAustraliaXuxue Feng RENEWAL
Jones VocelkaJapanElwin Sharvill NEW
Adams MorascaUnited KingdomXuxue Feng NEGOTIATION
Julie StensethRussiaIoni Bowcher NEW
Salvatore StockhamUnited KingdomIvan Magalhaes RENEWAL
Leja CaldareraArgentinaXuxue Feng UNQUALIFIED
Antonio CaudyIndiaElwin Sharvill UNQUALIFIED
Adams MorascaIndiaElwin Sharvill QUALIFIED
Arvin AlbaresArgentinaAsiya Javayant QUALIFIED
Faith GillianBrazilAmy Elsner RENEWAL
Arvin AlbaresJapanAnna Fali UNQUALIFIED
Clifford RimSpainOnyama Limba NEW
Cody SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Smith GlickJapanBernardo Dominic RENEWAL
Maisha RulapaughIndiaAsiya Javayant PROPOSAL
Ivar PaprockiUnited KingdomAsiya Javayant PROPOSAL
Izzy GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Munro FerenczSpainXuxue Feng NEGOTIATION

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