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
Leja CaldareraGermanyAnna Fali NEGOTIATION
Maria MarrierJapanStephen Shaw RENEWAL
Cody SaylorsItalyBernardo Dominic PROPOSAL
Morrow RutaItalyAmy Elsner PROPOSAL
Morrow RutaBrazilIoni Bowcher QUALIFIED
Murillo MaletItalyElwin Sharvill QUALIFIED
Francesco ShinkoSpainStephen Shaw QUALIFIED
Jennifer AmigonGermanyAmy Elsner QUALIFIED
Jefferson SchemmerIndiaStephen Shaw NEGOTIATION
Jennifer AmigonAustraliaOnyama Limba NEGOTIATION
Adams MorascaUnited KingdomAnna Fali RENEWAL
Aruna FigeroaItalyIoni Bowcher QUALIFIED
Clifford RimArgentinaElwin Sharvill QUALIFIED
Octavia MaletFranceAmy Elsner RENEWAL
Mayumi KolmetzSpainIvan Magalhaes PROPOSAL
Munro FerenczIndiaIvan Magalhaes RENEWAL
Faith GillianFranceIoni Bowcher UNQUALIFIED
Izzy GarufiFranceAmy Elsner RENEWAL
Johnson SergiFranceIvan Magalhaes RENEWAL
Wickens NestleUnited KingdomBernardo Dominic PROPOSAL
Ivar PaprockiSpainXuxue Feng RENEWAL
Murillo MaletSpainStephen Shaw NEW
Aika InouyeFranceAsiya Javayant UNQUALIFIED
Claire TollnerArgentinaStephen Shaw NEW
Leja CaldareraGermanyOnyama Limba UNQUALIFIED
Nicolas IturbideBrazilAsiya Javayant RENEWAL
Murillo MaletFranceOnyama Limba RENEWAL
Tony FollerJapanBernardo Dominic UNQUALIFIED
Adams MorascaRussiaAsiya Javayant QUALIFIED
Isabel BowleyCanadaAmy Elsner UNQUALIFIED
Darci PoquetteAustraliaIoni Bowcher UNQUALIFIED
Leon OldroydBrazilAmy Elsner QUALIFIED
Izzy GarufiFranceAsiya Javayant PROPOSAL
Ashley DoeAustraliaIvan Magalhaes NEW
Izzy GarufiCanadaElwin Sharvill NEW
Mujtaba NickaArgentinaAnna Fali QUALIFIED
Sinclair WaycottRussiaXuxue Feng RENEWAL
Silvio SlusarskiFranceIvan Magalhaes PROPOSAL
Leja CaldareraIndiaStephen Shaw PROPOSAL
Leon OldroydUnited KingdomIvan Magalhaes QUALIFIED
Faith GillianCanadaIvan Magalhaes UNQUALIFIED
Aruna FigeroaArgentinaIvan Magalhaes PROPOSAL
Deepesh ChuiRussiaIvan Magalhaes QUALIFIED
Claire TollnerJapanAsiya Javayant NEW
James ButtUnited KingdomAnna Fali PROPOSAL
Ivar PaprockiItalyBernardo Dominic UNQUALIFIED
Salvatore StockhamRussiaAmy Elsner UNQUALIFIED
Octavia MaletRussiaElwin Sharvill NEGOTIATION
Francesco ShinkoAustraliaOnyama Limba UNQUALIFIED
Ricardo GauchoUnited KingdomOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughJapanElwin Sharvill UNQUALIFIED
Smith GlickSpainAmy Elsner QUALIFIED
Ivar PaprockiArgentinaIvan Magalhaes PROPOSAL
Misaki RoysterJapanAsiya Javayant RENEWAL
Faith GillianIndiaStephen Shaw QUALIFIED
Julie StensethRussiaStephen Shaw NEW
Jones VocelkaSpainXuxue Feng QUALIFIED
Aika InouyeAustraliaIoni Bowcher UNQUALIFIED
Maisha RulapaughCanadaElwin Sharvill RENEWAL
Francesco ShinkoUnited KingdomStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtFrance2026-04-08Morlong Associates UNQUALIFIED67Amy Elsner
1001Misaki RoysterSpain2026-04-29King, Christopher A Esq NEGOTIATION46Stephen Shaw
1002Isabel BowleyJapan2026-04-10Chanay, Jeffrey A Esq RENEWAL73Anna Fali
1003Chavez BriddickBrazil2026-04-02Rousseaux, Michael Esq NEW46Xuxue Feng
1004Sinclair WaycottJapan2026-04-22Chapman, Ross E Esq RENEWAL20Stephen Shaw
1005Aika InouyeBrazil2026-04-19Buckley Miller Wright UNQUALIFIED88Stephen Shaw
1006Ashley DoeAustralia2026-04-20Feiner Bros NEGOTIATION90Ioni Bowcher
1007Ivar PaprockiCanada2026-04-08Chanay, Jeffrey A Esq RENEWAL16Onyama Limba
1008Aruna FigeroaItaly2026-04-17Feltz Printing Service QUALIFIED25Bernardo Dominic
1009Aruna FigeroaJapan2026-04-18Feiner Bros NEGOTIATION73Bernardo Dominic
1010Alejandro PerinRussia2026-04-23King, Christopher A Esq UNQUALIFIED59Anna Fali
1011Francesco ShinkoIndia2026-04-06Dorl, James J Esq NEW77Ioni Bowcher
1012Jeanfrancois VenereCanada2026-04-25Benton, John B Jr PROPOSAL33Onyama Limba
1013Darci PoquetteRussia2026-04-12King, Christopher A Esq NEW56Asiya Javayant
1014Antonio CaudyFrance2026-04-07Truhlar And Truhlar Attys NEGOTIATION70Elwin Sharvill
1015Aruna FigeroaGermany2026-04-22Chanay, Jeffrey A Esq UNQUALIFIED36Xuxue Feng
1016Cody SaylorsSpain2026-04-04Chapman, Ross E Esq UNQUALIFIED63Anna Fali
1017Julie StensethGermany2026-04-07Printing Dimensions QUALIFIED71Onyama Limba
1018Costa DilliardSpain2026-04-29Feltz Printing Service PROPOSAL5Onyama Limba
1019Ivar PaprockiBrazil2026-04-25Chapman, Ross E Esq QUALIFIED41Ioni Bowcher
1020Jeanfrancois VenereJapan2026-04-24Feiner Bros NEGOTIATION37Elwin Sharvill
1021Octavia MaletRussia2026-04-02Dorl, James J Esq QUALIFIED31Asiya Javayant
1022Maisha RulapaughArgentina2026-04-08Truhlar And Truhlar Attys UNQUALIFIED41Bernardo Dominic
1023Antonio CaudyAustralia2026-04-21Truhlar And Truhlar Attys PROPOSAL19Ioni Bowcher
1024Greenwood BologniaItaly2026-04-29Feltz Printing Service NEW86Ivan Magalhaes
1025Deepesh ChuiItaly2026-04-24Dorl, James J Esq NEW9Ivan Magalhaes
1026Aruna FigeroaIndia2026-04-20Chanay, Jeffrey A Esq NEW13Ioni Bowcher
1027Emily WhobreyUnited Kingdom2026-04-26Buckley Miller Wright QUALIFIED96Ivan Magalhaes
1028Mayumi KolmetzGermany2026-04-14King, Christopher A Esq QUALIFIED72Ivan Magalhaes
1029Wickens NestleIndia2026-04-22Benton, John B Jr NEGOTIATION51Xuxue Feng
1030Deepesh ChuiRussia2026-04-04Feiner Bros RENEWAL2Stephen Shaw
1031Ashley DoeBrazil2026-04-18Rangoni Of Florence NEW84Elwin Sharvill
1032Ashley DoeSpain2026-04-23Commercial Press QUALIFIED96Onyama Limba
1033Ivar PaprockiGermany2026-04-17Rousseaux, Michael Esq PROPOSAL47Xuxue Feng
1034Misaki RoysterFrance2026-04-10Chemel, James L Cpa UNQUALIFIED7Amy Elsner
1035Aruna FigeroaCanada2026-04-15Feltz Printing Service NEGOTIATION99Onyama Limba
1036Julie StensethCanada2026-04-07Truhlar And Truhlar Attys RENEWAL89Amy Elsner
1037Jennifer AmigonFrance2026-04-07Morlong Associates UNQUALIFIED85Anna Fali
1038Ashley DoeBrazil2026-04-08Morlong Associates PROPOSAL39Xuxue Feng
1039Maisha RulapaughJapan2026-04-30Benton, John B Jr PROPOSAL37Asiya Javayant
1040Costa DilliardBrazil2026-04-21Dorl, James J Esq PROPOSAL82Elwin Sharvill
1041Greenwood BologniaBrazil2026-04-16Rousseaux, Michael Esq RENEWAL93Ivan Magalhaes
1042Izzy GarufiRussia2026-04-19Buckley Miller Wright NEGOTIATION58Xuxue Feng
1043Greenwood BologniaRussia2026-04-16Chanay, Jeffrey A Esq RENEWAL53Stephen Shaw
1044Smith GlickRussia2026-04-30Benton, John B Jr PROPOSAL20Xuxue Feng
1045Leon OldroydRussia2026-04-11Feiner Bros PROPOSAL31Xuxue Feng
1046Leja CaldareraItaly2026-04-07Printing Dimensions NEGOTIATION53Onyama Limba
1047Clifford RimGermany2026-04-17Printing Dimensions NEW50Xuxue Feng
1048Francesco ShinkoItaly2026-04-08Chanay, Jeffrey A Esq NEGOTIATION9Bernardo Dominic
1049Faith GillianCanada2026-04-04Morlong Associates NEGOTIATION64Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimArgentinaXuxue Feng PROPOSAL
Darci PoquetteAustraliaElwin Sharvill UNQUALIFIED
Isabel BowleyArgentinaBernardo Dominic NEW
Jennifer AmigonBrazilIoni Bowcher RENEWAL
Leon OldroydFranceXuxue Feng QUALIFIED
Costa DilliardIndiaAmy Elsner NEW
Kaitlin OstroskyGermanyElwin Sharvill UNQUALIFIED
Ricardo GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyElwin Sharvill QUALIFIED
Jeanfrancois VenereJapanAmy Elsner NEW
David DarakjyIndiaIvan Magalhaes RENEWAL
Smith GlickItalyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereFranceAnna Fali PROPOSAL
Jones VocelkaFranceStephen Shaw UNQUALIFIED
Emily WhobreyIndiaAmy Elsner QUALIFIED
Kadeem FlosiGermanyBernardo Dominic RENEWAL
Aruna FigeroaGermanyIvan Magalhaes NEGOTIATION
Chavez BriddickGermanyXuxue Feng QUALIFIED
Jones VocelkaIndiaStephen Shaw QUALIFIED
Murillo MaletFranceBernardo Dominic UNQUALIFIED
David DarakjyGermanyStephen Shaw PROPOSAL
Munro FerenczIndiaIvan Magalhaes QUALIFIED
Ashley DoeUnited KingdomElwin Sharvill QUALIFIED
Mujtaba NickaGermanyXuxue Feng PROPOSAL
Maisha RulapaughSpainAsiya Javayant PROPOSAL
Munro FerenczAustraliaAmy Elsner PROPOSAL
Silvio SlusarskiGermanyStephen Shaw NEGOTIATION
Sinclair WaycottCanadaAnna Fali QUALIFIED
Leja CaldareraSpainAnna Fali PROPOSAL
Arvin AlbaresItalyIvan Magalhaes NEW
Salvatore StockhamSpainIoni Bowcher QUALIFIED
Clifford RimIndiaAnna Fali UNQUALIFIED
Johnson SergiItalyAsiya Javayant NEGOTIATION
Kadeem FlosiArgentinaIvan Magalhaes PROPOSAL
Morrow RutaAustraliaElwin Sharvill RENEWAL
Munro FerenczUnited KingdomElwin Sharvill PROPOSAL
Mujtaba NickaFranceXuxue Feng PROPOSAL
Kaitlin OstroskyGermanyElwin Sharvill RENEWAL
Jefferson SchemmerRussiaXuxue Feng QUALIFIED
Rodrigues CampainRussiaXuxue Feng PROPOSAL
Deepesh ChuiUnited KingdomXuxue Feng UNQUALIFIED
Darci PoquetteAustraliaOnyama Limba RENEWAL
Francesco ShinkoCanadaIvan Magalhaes QUALIFIED
Emily WhobreyBrazilIoni Bowcher QUALIFIED
Faith GillianUnited KingdomBernardo Dominic NEW
Alejandro PerinFranceIoni Bowcher NEW
Jefferson SchemmerArgentinaBernardo Dominic NEW
James ButtSpainIoni Bowcher NEW
Jones VocelkaIndiaStephen Shaw UNQUALIFIED
Ricardo GauchoSpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Chavez Briddick
Aika Inouye
Ricardo Gaucho
Wickens Nestle
Aika Inouye
James Butt
Tony Foller
Juan Wieser
Salvatore Stockham
Greenwood Bolognia
Aditya Kusko
Nicolas Iturbide
Alejandro Perin
Mayumi Kolmetz
Emily Whobrey
Silvio Slusarski
Kadeem Flosi
Adams Morasca
Wickens Nestle
Cody Saylors
Ashley Doe
Jones Vocelka
Sinclair Waycott
Murillo Malet
Ashley Doe
Nicolas Iturbide
Aika Inouye
Salvatore Stockham
Emily Whobrey
Leja Caldarera
Silvio Slusarski
Maria Marrier
Arvin Albares
Leja Caldarera
Nicolas Iturbide
Mujtaba Nicka
Cody Saylors
Leon Oldroyd
Aika Inouye
Aika Inouye
Silvio Slusarski
Darci Poquette
Sinclair Waycott
Rodrigues Campain
Jones Vocelka
Adams Morasca
Ricardo Gaucho
Nicolas Iturbide
Costa Dilliard
Adams Morasca
IdCountryDate
1000Brazil2026-04-06
1001Canada2026-04-02
1002Japan2026-04-23
1003Japan2026-04-16
1004Russia2026-04-23
1005Australia2026-04-14
1006Spain2026-04-14
1007Spain2026-04-06
1008Argentina2026-04-15
1009United Kingdom2026-04-20
1010Russia2026-04-22
1011France2026-04-10
1012Spain2026-04-16
1013Canada2026-04-07
1014Australia2026-04-21
1015Spain2026-04-15
1016Germany2026-04-06
1017United Kingdom2026-04-02
1018France2026-04-26
1019Canada2026-04-17
1020Germany2026-04-27
1021Brazil2026-04-18
1022United Kingdom2026-04-02
1023India2026-04-21
1024Argentina2026-04-11
1025Spain2026-04-05
1026Australia2026-04-29
1027Brazil2026-04-03
1028United Kingdom2026-04-09
1029India2026-04-15
1030Russia2026-04-30
1031France2026-04-09
1032Italy2026-05-01
1033Germany2026-04-28
1034Spain2026-04-24
1035Japan2026-04-23
1036Brazil2026-04-11
1037Canada2026-04-20
1038Italy2026-04-27
1039India2026-04-24
1040Australia2026-04-17
1041India2026-04-29
1042United Kingdom2026-04-09
1043Japan2026-04-17
1044Germany2026-04-14
1045United Kingdom2026-04-19
1046Spain2026-04-16
1047Russia2026-04-07
1048Argentina2026-04-05
1049United Kingdom2026-04-26

On-Demand Data

NameIdCountryDate
Juan Wieser1000France2026-04-20
Leon Oldroyd1001India2026-04-03
Faith Gillian1002Canada2026-05-01
Maria Marrier1003Russia2026-04-28
Deepesh Chui1004Canada2026-04-05
Deepesh Chui1005Italy2026-04-20
Sinclair Waycott1006Australia2026-04-29
Jefferson Schemmer1007India2026-04-28
Mujtaba Nicka1008Russia2026-05-01
Aditya Kusko1009United Kingdom2026-04-06
Darci Poquette1010Russia2026-04-25
Isabel Bowley1011Japan2026-04-06
Rodrigues Campain1012Spain2026-04-30
Jones Vocelka1013Japan2026-04-05
Ricardo Gaucho1014Russia2026-04-03
Aditya Kusko1015Spain2026-04-15
Leon Oldroyd1016France2026-04-17
Jones Vocelka1017Italy2026-04-27
Maisha Rulapaugh1018Argentina2026-04-21
Jennifer Amigon1019United Kingdom2026-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadAustraliaAmy Elsner UNQUALIFIED
Isabel BowleyCanadaAsiya Javayant QUALIFIED
Mayumi KolmetzSpainXuxue Feng PROPOSAL
Rodrigues CampainItalyBernardo Dominic RENEWAL
Jones VocelkaFranceOnyama Limba PROPOSAL
Isabel BowleyAustraliaAnna Fali PROPOSAL
Silvio SlusarskiCanadaOnyama Limba QUALIFIED
Francesco ShinkoRussiaBernardo Dominic PROPOSAL
Faith GillianItalyAnna Fali NEGOTIATION
Kaitlin OstroskyJapanIvan Magalhaes QUALIFIED
Mujtaba NickaBrazilOnyama Limba NEW
David DarakjyAustraliaAsiya Javayant QUALIFIED
Faith GillianGermanyAmy Elsner NEW
Sinclair WaycottCanadaOnyama Limba PROPOSAL
Clifford RimItalyAsiya Javayant PROPOSAL
Izzy GarufiBrazilIoni Bowcher NEW
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
James ButtRussiaBernardo Dominic PROPOSAL
Johnson SergiBrazilOnyama Limba PROPOSAL
Maria MarrierSpainBernardo Dominic PROPOSAL
David DarakjyBrazilOnyama Limba NEW
Adams MorascaCanadaXuxue Feng PROPOSAL
Wickens NestleIndiaOnyama Limba NEGOTIATION
James ButtBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaCanadaAsiya Javayant RENEWAL
Julie StensethSpainBernardo Dominic RENEWAL
Deepesh ChuiRussiaIoni Bowcher NEW
Kaitlin OstroskyFranceAsiya Javayant QUALIFIED
Stacey MacleadIndiaElwin Sharvill QUALIFIED
Cody SaylorsRussiaOnyama Limba NEGOTIATION
Izzy GarufiRussiaBernardo Dominic UNQUALIFIED
Faith GillianBrazilStephen Shaw RENEWAL
Costa DilliardIndiaIvan Magalhaes NEGOTIATION
Aruna FigeroaUnited KingdomAsiya Javayant PROPOSAL
Ricardo GauchoItalyIoni Bowcher NEW
Octavia MaletIndiaBernardo Dominic NEGOTIATION
Aditya KuskoGermanyIvan Magalhaes NEW
Stacey MacleadFranceXuxue Feng NEW
Wickens NestleItalyIoni Bowcher NEW
Morrow RutaIndiaXuxue 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>