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
Kaitlin OstroskyBrazilIoni Bowcher RENEWAL
Arvin AlbaresSpainXuxue Feng NEW
Mayumi KolmetzAustraliaXuxue Feng NEW
Arvin AlbaresArgentinaElwin Sharvill RENEWAL
Silvio SlusarskiJapanOnyama Limba RENEWAL
Costa DilliardAustraliaIvan Magalhaes PROPOSAL
Emily WhobreyUnited KingdomAmy Elsner RENEWAL
Greenwood BologniaJapanOnyama Limba NEW
Maisha RulapaughJapanStephen Shaw QUALIFIED
Tony FollerCanadaIoni Bowcher NEW
Wickens NestleItalyElwin Sharvill QUALIFIED
Octavia MaletUnited KingdomAsiya Javayant UNQUALIFIED
Adams MorascaArgentinaAmy Elsner UNQUALIFIED
Smith GlickArgentinaAmy Elsner NEW
Leon OldroydUnited KingdomIvan Magalhaes QUALIFIED
David DarakjyCanadaAsiya Javayant UNQUALIFIED
Juan WieserJapanIvan Magalhaes NEW
Maria MarrierRussiaAnna Fali QUALIFIED
Alejandro PerinRussiaAsiya Javayant UNQUALIFIED
Salvatore StockhamArgentinaXuxue Feng NEW
Isabel BowleyFranceBernardo Dominic UNQUALIFIED
Leja CaldareraIndiaAnna Fali RENEWAL
Greenwood BologniaItalyElwin Sharvill QUALIFIED
Maisha RulapaughItalyElwin Sharvill RENEWAL
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Wickens NestleSpainOnyama Limba NEGOTIATION
Julie StensethCanadaIvan Magalhaes RENEWAL
Ricardo GauchoIndiaIvan Magalhaes PROPOSAL
Darci PoquetteItalyAsiya Javayant UNQUALIFIED
Ivar PaprockiArgentinaAsiya Javayant PROPOSAL
Maisha RulapaughFranceBernardo Dominic RENEWAL
Murillo MaletBrazilBernardo Dominic NEGOTIATION
Wickens NestleJapanStephen Shaw PROPOSAL
Costa DilliardBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoJapanAmy Elsner QUALIFIED
Johnson SergiFranceXuxue Feng PROPOSAL
Ricardo GauchoArgentinaStephen Shaw UNQUALIFIED
Morrow RutaIndiaAsiya Javayant NEGOTIATION
Misaki RoysterCanadaIvan Magalhaes NEGOTIATION
Emily WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Wickens NestleAustraliaIvan Magalhaes QUALIFIED
Antonio CaudyArgentinaXuxue Feng PROPOSAL
Jeanfrancois VenereBrazilAsiya Javayant UNQUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill QUALIFIED
Mujtaba NickaBrazilXuxue Feng NEGOTIATION
Munro FerenczIndiaXuxue Feng UNQUALIFIED
Stacey MacleadUnited KingdomIoni Bowcher QUALIFIED
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Silvio SlusarskiGermanyElwin Sharvill QUALIFIED
Mayumi KolmetzRussiaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey MacleadSpainAmy Elsner UNQUALIFIED
Wickens NestleItalyOnyama Limba UNQUALIFIED
Izzy GarufiArgentinaOnyama Limba NEGOTIATION
Ivar PaprockiItalyBernardo Dominic QUALIFIED
Sinclair WaycottItalyXuxue Feng UNQUALIFIED
Aruna FigeroaArgentinaAnna Fali NEGOTIATION
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Deepesh ChuiItalyAnna Fali UNQUALIFIED
Izzy GarufiItalyBernardo Dominic NEW
Aruna FigeroaBrazilIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczJapan2025-12-11Buckley Miller Wright NEGOTIATION76Elwin Sharvill
1001Faith GillianUnited Kingdom2025-11-21Truhlar And Truhlar Attys QUALIFIED63Stephen Shaw
1002Ricardo GauchoFrance2025-12-09Morlong Associates RENEWAL15Ivan Magalhaes
1003Emily WhobreyUnited Kingdom2025-12-15Truhlar And Truhlar Attys NEGOTIATION78Asiya Javayant
1004Alejandro PerinSpain2025-11-30Dorl, James J Esq RENEWAL33Ivan Magalhaes
1005Faith GillianSpain2025-12-16King, Christopher A Esq NEGOTIATION83Anna Fali
1006Johnson SergiRussia2025-12-03Benton, John B Jr PROPOSAL81Bernardo Dominic
1007Jennifer AmigonFrance2025-11-25Buckley Miller Wright PROPOSAL52Elwin Sharvill
1008Greenwood BologniaFrance2025-12-08Benton, John B Jr PROPOSAL11Xuxue Feng
1009Jeanfrancois VenereRussia2025-12-16Dorl, James J Esq UNQUALIFIED36Xuxue Feng
1010Leja CaldareraItaly2025-12-15Rousseaux, Michael Esq NEW55Ioni Bowcher
1011Aditya KuskoBrazil2025-11-23Benton, John B Jr RENEWAL2Ivan Magalhaes
1012Jefferson SchemmerArgentina2025-12-15Dorl, James J Esq PROPOSAL98Ioni Bowcher
1013Chavez BriddickSpain2025-12-11Morlong Associates RENEWAL0Xuxue Feng
1014Cody SaylorsGermany2025-12-15Buckley Miller Wright NEGOTIATION89Xuxue Feng
1015Kadeem FlosiBrazil2025-11-25Chemel, James L Cpa QUALIFIED51Ioni Bowcher
1016Stacey MacleadIndia2025-12-07Chapman, Ross E Esq QUALIFIED58Stephen Shaw
1017Cody SaylorsJapan2025-12-13King, Christopher A Esq UNQUALIFIED62Bernardo Dominic
1018Emily WhobreyBrazil2025-12-08Chemel, James L Cpa RENEWAL29Ivan Magalhaes
1019Murillo MaletGermany2025-12-03Rangoni Of Florence RENEWAL34Amy Elsner
1020Claire TollnerFrance2025-11-21Chanay, Jeffrey A Esq PROPOSAL30Xuxue Feng
1021Chavez BriddickGermany2025-11-28Chanay, Jeffrey A Esq RENEWAL60Amy Elsner
1022Jefferson SchemmerBrazil2025-12-19Buckley Miller Wright QUALIFIED18Asiya Javayant
1023Ivar PaprockiAustralia2025-11-23Rangoni Of Florence PROPOSAL88Stephen Shaw
1024Darci PoquetteFrance2025-11-26Truhlar And Truhlar Attys NEW22Stephen Shaw
1025Cody SaylorsFrance2025-11-25Rousseaux, Michael Esq NEW3Xuxue Feng
1026Nicolas IturbideSpain2025-11-28Rangoni Of Florence UNQUALIFIED47Xuxue Feng
1027Darci PoquetteGermany2025-11-29Printing Dimensions PROPOSAL68Bernardo Dominic
1028Costa DilliardFrance2025-11-25Buckley Miller Wright PROPOSAL54Elwin Sharvill
1029Greenwood BologniaIndia2025-12-13Chanay, Jeffrey A Esq UNQUALIFIED94Ivan Magalhaes
1030Ricardo GauchoArgentina2025-11-26Chemel, James L Cpa QUALIFIED83Asiya Javayant
1031Wickens NestleItaly2025-12-16Printing Dimensions RENEWAL68Ioni Bowcher
1032Leon OldroydRussia2025-12-08Feiner Bros NEW54Asiya Javayant
1033Jennifer AmigonItaly2025-12-04Chapman, Ross E Esq PROPOSAL3Xuxue Feng
1034Octavia MaletIndia2025-12-12Chemel, James L Cpa RENEWAL8Elwin Sharvill
1035Rodrigues CampainRussia2025-11-23Rangoni Of Florence RENEWAL19Elwin Sharvill
1036Chavez BriddickAustralia2025-12-06Morlong Associates QUALIFIED89Stephen Shaw
1037Wickens NestleBrazil2025-11-28Buckley Miller Wright PROPOSAL59Onyama Limba
1038Johnson SergiAustralia2025-11-26King, Christopher A Esq PROPOSAL85Onyama Limba
1039David DarakjyIndia2025-11-22Rangoni Of Florence UNQUALIFIED95Anna Fali
1040Leja CaldareraRussia2025-12-14Rangoni Of Florence QUALIFIED42Bernardo Dominic
1041Kaitlin OstroskyArgentina2025-12-11Feltz Printing Service UNQUALIFIED8Stephen Shaw
1042Jones VocelkaJapan2025-12-05Buckley Miller Wright RENEWAL73Stephen Shaw
1043Clifford RimBrazil2025-12-19Feiner Bros NEW66Xuxue Feng
1044Maisha RulapaughSpain2025-11-24Buckley Miller Wright PROPOSAL20Ioni Bowcher
1045Jones VocelkaCanada2025-12-15Buckley Miller Wright NEW18Elwin Sharvill
1046Tony FollerItaly2025-11-20Truhlar And Truhlar Attys NEGOTIATION45Ivan Magalhaes
1047Mujtaba NickaArgentina2025-12-01Benton, John B Jr NEGOTIATION44Xuxue Feng
1048Aika InouyeSpain2025-12-05Morlong Associates PROPOSAL49Amy Elsner
1049Morrow RutaSpain2025-11-21Rangoni Of Florence QUALIFIED3Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardArgentinaIvan Magalhaes NEW
Morrow RutaSpainOnyama Limba QUALIFIED
Izzy GarufiGermanyAnna Fali UNQUALIFIED
Faith GillianBrazilOnyama Limba UNQUALIFIED
Izzy GarufiAustraliaAnna Fali NEGOTIATION
Murillo MaletJapanElwin Sharvill QUALIFIED
Johnson SergiIndiaOnyama Limba NEW
Faith GillianJapanAmy Elsner NEW
Silvio SlusarskiUnited KingdomIoni Bowcher RENEWAL
Silvio SlusarskiRussiaOnyama Limba UNQUALIFIED
Mujtaba NickaUnited KingdomAmy Elsner QUALIFIED
Smith GlickGermanyElwin Sharvill UNQUALIFIED
Kadeem FlosiCanadaStephen Shaw QUALIFIED
Leja CaldareraJapanBernardo Dominic NEW
Kadeem FlosiFranceAsiya Javayant PROPOSAL
Alejandro PerinItalyStephen Shaw UNQUALIFIED
Aditya KuskoGermanyAnna Fali PROPOSAL
Jones VocelkaGermanyOnyama Limba QUALIFIED
Arvin AlbaresGermanyBernardo Dominic NEGOTIATION
Kaitlin OstroskyUnited KingdomAmy Elsner QUALIFIED
Mujtaba NickaSpainStephen Shaw UNQUALIFIED
Misaki RoysterCanadaOnyama Limba NEW
Isabel BowleyBrazilStephen Shaw NEW
David DarakjyAustraliaAsiya Javayant NEW
Aika InouyeAustraliaXuxue Feng NEGOTIATION
Salvatore StockhamAustraliaStephen Shaw NEW
Greenwood BologniaRussiaElwin Sharvill UNQUALIFIED
Julie StensethUnited KingdomBernardo Dominic NEW
Ricardo GauchoUnited KingdomXuxue Feng RENEWAL
Leon OldroydBrazilIoni Bowcher NEW
Kadeem FlosiIndiaBernardo Dominic UNQUALIFIED
Jefferson SchemmerFranceXuxue Feng UNQUALIFIED
Claire TollnerCanadaAmy Elsner QUALIFIED
Izzy GarufiCanadaAsiya Javayant QUALIFIED
Claire TollnerCanadaBernardo Dominic NEW
Ricardo GauchoItalyElwin Sharvill NEGOTIATION
Chavez BriddickAustraliaIvan Magalhaes RENEWAL
Chavez BriddickJapanAsiya Javayant PROPOSAL
Jones VocelkaArgentinaIoni Bowcher UNQUALIFIED
Rodrigues CampainItalyIvan Magalhaes RENEWAL
Aika InouyeAustraliaAsiya Javayant NEW
Juan WieserIndiaAmy Elsner NEW
Darci PoquetteArgentinaStephen Shaw PROPOSAL
Aika InouyeRussiaIoni Bowcher UNQUALIFIED
Maisha RulapaughAustraliaBernardo Dominic RENEWAL
Ashley DoeAustraliaIvan Magalhaes NEW
Mujtaba NickaRussiaAmy Elsner RENEWAL
Costa DilliardFranceAsiya Javayant UNQUALIFIED
Chavez BriddickArgentinaAnna Fali RENEWAL
Aditya KuskoBrazilXuxue Feng NEGOTIATION
Frozen Columns
Name
Maisha Rulapaugh
Aruna Figeroa
Smith Glick
Jones Vocelka
Salvatore Stockham
Chavez Briddick
Jones Vocelka
Maisha Rulapaugh
Chavez Briddick
Greenwood Bolognia
Misaki Royster
Izzy Garufi
Jeanfrancois Venere
Tony Foller
Julie Stenseth
James Butt
Chavez Briddick
Izzy Garufi
Maria Marrier
James Butt
Chavez Briddick
Francesco Shinko
Isabel Bowley
Costa Dilliard
Salvatore Stockham
Aditya Kusko
Rodrigues Campain
Tony Foller
Clifford Rim
Tony Foller
Ricardo Gaucho
Costa Dilliard
Smith Glick
Silvio Slusarski
Silvio Slusarski
Claire Tollner
Mayumi Kolmetz
Antonio Caudy
Murillo Malet
Salvatore Stockham
Julie Stenseth
Kaitlin Ostrosky
Izzy Garufi
Wickens Nestle
Izzy Garufi
Adams Morasca
Jefferson Schemmer
Tony Foller
Stacey Maclead
Isabel Bowley
IdCountryDate
1000United Kingdom2025-12-02
1001Spain2025-12-07
1002United Kingdom2025-11-21
1003Italy2025-11-25
1004Brazil2025-12-02
1005Japan2025-12-15
1006France2025-12-07
1007France2025-12-14
1008France2025-12-06
1009Italy2025-12-06
1010Germany2025-12-17
1011Spain2025-12-06
1012United Kingdom2025-12-06
1013Japan2025-12-11
1014Italy2025-12-16
1015Brazil2025-12-10
1016France2025-11-26
1017Germany2025-11-30
1018Argentina2025-11-30
1019Argentina2025-12-04
1020Japan2025-12-16
1021Italy2025-11-25
1022Australia2025-11-22
1023Canada2025-12-16
1024United Kingdom2025-12-01
1025Argentina2025-12-07
1026Australia2025-12-14
1027Italy2025-12-10
1028Brazil2025-12-03
1029Japan2025-12-12
1030United Kingdom2025-11-30
1031India2025-12-05
1032India2025-11-25
1033Spain2025-12-16
1034Canada2025-12-05
1035Argentina2025-11-29
1036Australia2025-12-18
1037Australia2025-11-28
1038Russia2025-12-09
1039Japan2025-12-18
1040Australia2025-12-12
1041Argentina2025-11-20
1042Brazil2025-12-15
1043Spain2025-12-16
1044Japan2025-11-30
1045France2025-12-07
1046Argentina2025-12-15
1047India2025-12-17
1048India2025-12-14
1049France2025-12-02

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Japan2025-11-29
Kadeem Flosi1001India2025-12-09
Juan Wieser1002Japan2025-11-30
Tony Foller1003Australia2025-12-09
Maisha Rulapaugh1004India2025-12-15
Munro Ferencz1005Russia2025-11-26
Kadeem Flosi1006Argentina2025-12-06
Mujtaba Nicka1007India2025-12-19
Munro Ferencz1008Russia2025-12-02
Ashley Doe1009France2025-11-21
Sinclair Waycott1010Japan2025-12-15
Jeanfrancois Venere1011Spain2025-12-01
Mayumi Kolmetz1012Spain2025-11-22
Aruna Figeroa1013India2025-12-17
Johnson Sergi1014Japan2025-12-03
Greenwood Bolognia1015Germany2025-12-04
Smith Glick1016Japan2025-12-07
Aika Inouye1017India2025-12-19
Alejandro Perin1018India2025-11-26
Jones Vocelka1019Canada2025-12-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci PoquetteBrazilStephen Shaw UNQUALIFIED
Sinclair WaycottSpainXuxue Feng PROPOSAL
Julie StensethJapanOnyama Limba RENEWAL
Munro FerenczItalyOnyama Limba QUALIFIED
Murillo MaletItalyBernardo Dominic QUALIFIED
Costa DilliardIndiaOnyama Limba PROPOSAL
Rodrigues CampainSpainOnyama Limba PROPOSAL
Jefferson SchemmerItalyBernardo Dominic NEW
Ashley DoeGermanyOnyama Limba RENEWAL
Salvatore StockhamRussiaAmy Elsner NEW
Darci PoquetteAustraliaStephen Shaw PROPOSAL
David DarakjyIndiaAsiya Javayant NEW
Clifford RimSpainXuxue Feng NEW
Wickens NestleItalyIoni Bowcher PROPOSAL
Aruna FigeroaItalyBernardo Dominic PROPOSAL
Leja CaldareraCanadaXuxue Feng QUALIFIED
Munro FerenczFranceAnna Fali NEGOTIATION
Tony FollerIndiaOnyama Limba NEGOTIATION
Isabel BowleyBrazilXuxue Feng UNQUALIFIED
Salvatore StockhamAustraliaXuxue Feng PROPOSAL
Silvio SlusarskiIndiaIoni Bowcher RENEWAL
Greenwood BologniaUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois VenereFranceStephen Shaw RENEWAL
Jeanfrancois VenereBrazilElwin Sharvill NEW
Salvatore StockhamBrazilIvan Magalhaes RENEWAL
Nicolas IturbideIndiaXuxue Feng UNQUALIFIED
Faith GillianItalyStephen Shaw QUALIFIED
Jefferson SchemmerItalyElwin Sharvill RENEWAL
Johnson SergiRussiaOnyama Limba PROPOSAL
Salvatore StockhamArgentinaElwin Sharvill PROPOSAL
Smith GlickIndiaIvan Magalhaes RENEWAL
Stacey MacleadCanadaAnna Fali NEGOTIATION
Darci PoquetteBrazilAmy Elsner PROPOSAL
Leja CaldareraSpainAnna Fali NEGOTIATION
Aruna FigeroaIndiaOnyama Limba UNQUALIFIED
Silvio SlusarskiAustraliaXuxue Feng RENEWAL
Clifford RimJapanElwin Sharvill PROPOSAL
Tony FollerUnited KingdomAnna Fali QUALIFIED
Munro FerenczArgentinaAmy Elsner UNQUALIFIED
Octavia MaletArgentinaAnna Fali NEW

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