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
Jeanfrancois VenereCanadaAmy Elsner UNQUALIFIED
Francesco ShinkoCanadaElwin Sharvill NEGOTIATION
Rodrigues CampainRussiaElwin Sharvill PROPOSAL
Jones VocelkaUnited KingdomIvan Magalhaes NEW
Octavia MaletSpainAmy Elsner NEW
Claire TollnerArgentinaIvan Magalhaes NEGOTIATION
Antonio CaudyCanadaXuxue Feng RENEWAL
Leon OldroydCanadaAsiya Javayant RENEWAL
Jefferson SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Leon OldroydBrazilStephen Shaw NEGOTIATION
Mujtaba NickaAustraliaBernardo Dominic NEGOTIATION
Cody SaylorsIndiaStephen Shaw NEGOTIATION
Maria MarrierGermanyOnyama Limba RENEWAL
Morrow RutaJapanIvan Magalhaes RENEWAL
Izzy GarufiSpainXuxue Feng QUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes RENEWAL
Tony FollerBrazilStephen Shaw NEGOTIATION
Salvatore StockhamAustraliaIoni Bowcher QUALIFIED
Greenwood BologniaGermanyIvan Magalhaes RENEWAL
Kadeem FlosiAustraliaElwin Sharvill NEGOTIATION
Deepesh ChuiBrazilAsiya Javayant QUALIFIED
James ButtCanadaStephen Shaw QUALIFIED
Salvatore StockhamFranceIoni Bowcher RENEWAL
Darci PoquetteCanadaElwin Sharvill RENEWAL
Julie StensethUnited KingdomAmy Elsner NEGOTIATION
Murillo MaletRussiaOnyama Limba QUALIFIED
Juan WieserRussiaAnna Fali UNQUALIFIED
Mayumi KolmetzJapanAnna Fali QUALIFIED
Isabel BowleyJapanIoni Bowcher PROPOSAL
Mujtaba NickaRussiaAmy Elsner NEW
Julie StensethGermanyAmy Elsner NEGOTIATION
Faith GillianUnited KingdomIvan Magalhaes PROPOSAL
Cody SaylorsAustraliaAnna Fali RENEWAL
Jeanfrancois VenereCanadaXuxue Feng PROPOSAL
Jones VocelkaCanadaOnyama Limba NEGOTIATION
Costa DilliardGermanyOnyama Limba RENEWAL
Johnson SergiSpainStephen Shaw UNQUALIFIED
Aruna FigeroaFranceStephen Shaw RENEWAL
Greenwood BologniaSpainXuxue Feng QUALIFIED
Deepesh ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Cody SaylorsBrazilIvan Magalhaes PROPOSAL
Leon OldroydBrazilAmy Elsner QUALIFIED
Silvio SlusarskiFranceAnna Fali UNQUALIFIED
Kaitlin OstroskyFranceStephen Shaw QUALIFIED
Faith GillianFranceElwin Sharvill UNQUALIFIED
Mayumi KolmetzGermanyElwin Sharvill NEGOTIATION
Costa DilliardSpainOnyama Limba QUALIFIED
Johnson SergiGermanyIvan Magalhaes RENEWAL
Stacey MacleadBrazilElwin Sharvill UNQUALIFIED
David DarakjyCanadaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiCanadaAsiya Javayant NEGOTIATION
Morrow RutaBrazilAmy Elsner UNQUALIFIED
Aika InouyeJapanBernardo Dominic NEGOTIATION
Ivar PaprockiBrazilElwin Sharvill UNQUALIFIED
Kaitlin OstroskySpainOnyama Limba RENEWAL
Chavez BriddickItalyXuxue Feng PROPOSAL
Ashley DoeJapanIoni Bowcher NEW
Nicolas IturbideBrazilStephen Shaw QUALIFIED
Salvatore StockhamGermanyIvan Magalhaes NEGOTIATION
Munro FerenczBrazilAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierCanada2026-05-19Feltz Printing Service QUALIFIED75Ioni Bowcher
1001Emily WhobreyAustralia2026-05-03Chapman, Ross E Esq UNQUALIFIED16Onyama Limba
1002Kaitlin OstroskyArgentina2026-05-17Morlong Associates UNQUALIFIED21Onyama Limba
1003Aika InouyeAustralia2026-04-25Truhlar And Truhlar Attys UNQUALIFIED75Xuxue Feng
1004Stacey MacleadCanada2026-05-04Commercial Press RENEWAL0Stephen Shaw
1005Sinclair WaycottIndia2026-04-26Dorl, James J Esq QUALIFIED44Asiya Javayant
1006Emily WhobreyGermany2026-05-22Chemel, James L Cpa PROPOSAL90Asiya Javayant
1007Cody SaylorsRussia2026-05-05Dorl, James J Esq NEGOTIATION97Onyama Limba
1008Morrow RutaBrazil2026-04-25Benton, John B Jr UNQUALIFIED95Anna Fali
1009Alejandro PerinCanada2026-05-20King, Christopher A Esq NEGOTIATION24Stephen Shaw
1010Morrow RutaJapan2026-05-04Truhlar And Truhlar Attys RENEWAL7Bernardo Dominic
1011Maria MarrierItaly2026-05-20Chapman, Ross E Esq RENEWAL72Xuxue Feng
1012Sinclair WaycottGermany2026-05-22Morlong Associates RENEWAL13Onyama Limba
1013Leon OldroydItaly2026-04-28Printing Dimensions NEW81Elwin Sharvill
1014Mujtaba NickaGermany2026-05-05Rousseaux, Michael Esq UNQUALIFIED66Ioni Bowcher
1015Jeanfrancois VenereGermany2026-05-08Printing Dimensions PROPOSAL68Ioni Bowcher
1016Clifford RimArgentina2026-05-18Buckley Miller Wright RENEWAL70Amy Elsner
1017Johnson SergiFrance2026-05-20Feltz Printing Service NEGOTIATION47Xuxue Feng
1018Izzy GarufiCanada2026-05-12Morlong Associates PROPOSAL16Onyama Limba
1019Jennifer AmigonRussia2026-05-13Feltz Printing Service UNQUALIFIED80Stephen Shaw
1020Alejandro PerinBrazil2026-05-23Rousseaux, Michael Esq NEGOTIATION32Ivan Magalhaes
1021Adams MorascaBrazil2026-05-04Rangoni Of Florence PROPOSAL21Bernardo Dominic
1022Murillo MaletItaly2026-05-21Rousseaux, Michael Esq NEW12Amy Elsner
1023Faith GillianIndia2026-04-24Chapman, Ross E Esq UNQUALIFIED30Amy Elsner
1024Maisha RulapaughItaly2026-05-02Printing Dimensions NEW10Bernardo Dominic
1025Mayumi KolmetzJapan2026-05-19Morlong Associates NEW9Asiya Javayant
1026Aika InouyeJapan2026-05-02Buckley Miller Wright NEW66Stephen Shaw
1027Tony FollerCanada2026-05-14Truhlar And Truhlar Attys QUALIFIED16Xuxue Feng
1028Silvio SlusarskiAustralia2026-05-02Truhlar And Truhlar Attys PROPOSAL41Xuxue Feng
1029David DarakjyRussia2026-05-16Feiner Bros RENEWAL63Amy Elsner
1030Arvin AlbaresSpain2026-05-18Benton, John B Jr UNQUALIFIED47Bernardo Dominic
1031Johnson SergiBrazil2026-05-18Commercial Press RENEWAL62Elwin Sharvill
1032Chavez BriddickArgentina2026-05-04Chemel, James L Cpa QUALIFIED78Ivan Magalhaes
1033Adams MorascaRussia2026-05-22Truhlar And Truhlar Attys NEGOTIATION46Stephen Shaw
1034Deepesh ChuiRussia2026-05-19Rousseaux, Michael Esq PROPOSAL81Onyama Limba
1035Juan WieserIndia2026-05-03Commercial Press NEGOTIATION39Stephen Shaw
1036Munro FerenczBrazil2026-04-25Chemel, James L Cpa NEGOTIATION28Bernardo Dominic
1037Faith GillianArgentina2026-04-30Benton, John B Jr UNQUALIFIED82Ioni Bowcher
1038Deepesh ChuiFrance2026-05-15Commercial Press PROPOSAL82Xuxue Feng
1039Ricardo GauchoCanada2026-04-30Dorl, James J Esq NEGOTIATION19Anna Fali
1040Ashley DoeRussia2026-05-11Rousseaux, Michael Esq QUALIFIED3Amy Elsner
1041Johnson SergiItaly2026-04-24Benton, John B Jr RENEWAL6Onyama Limba
1042Aruna FigeroaArgentina2026-04-30Buckley Miller Wright PROPOSAL39Ioni Bowcher
1043Smith GlickRussia2026-05-02Dorl, James J Esq NEW49Amy Elsner
1044Isabel BowleyAustralia2026-04-25Chanay, Jeffrey A Esq UNQUALIFIED75Stephen Shaw
1045Ivar PaprockiItaly2026-05-09Rangoni Of Florence PROPOSAL94Ivan Magalhaes
1046Jefferson SchemmerRussia2026-05-23Feltz Printing Service QUALIFIED73Amy Elsner
1047Leja CaldareraCanada2026-04-29Rangoni Of Florence PROPOSAL3Anna Fali
1048Emily WhobreyIndia2026-05-03Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1049Mayumi KolmetzUnited Kingdom2026-05-21King, Christopher A Esq QUALIFIED98Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamItalyElwin Sharvill RENEWAL
James ButtIndiaOnyama Limba RENEWAL
Kadeem FlosiFranceXuxue Feng QUALIFIED
Aruna FigeroaFranceXuxue Feng QUALIFIED
Isabel BowleyItalyAnna Fali QUALIFIED
Sinclair WaycottFranceOnyama Limba PROPOSAL
Deepesh ChuiItalyAsiya Javayant NEGOTIATION
Smith GlickFranceXuxue Feng PROPOSAL
Costa DilliardCanadaXuxue Feng PROPOSAL
Alejandro PerinFranceBernardo Dominic RENEWAL
Deepesh ChuiCanadaStephen Shaw NEGOTIATION
Cody SaylorsBrazilAnna Fali RENEWAL
Claire TollnerItalyStephen Shaw UNQUALIFIED
Nicolas IturbideCanadaXuxue Feng NEGOTIATION
Costa DilliardItalyBernardo Dominic NEGOTIATION
Octavia MaletFranceIoni Bowcher UNQUALIFIED
Aruna FigeroaBrazilElwin Sharvill QUALIFIED
Leon OldroydItalyXuxue Feng UNQUALIFIED
Misaki RoysterSpainAnna Fali UNQUALIFIED
Aruna FigeroaSpainBernardo Dominic QUALIFIED
Munro FerenczArgentinaIoni Bowcher PROPOSAL
Kadeem FlosiRussiaAsiya Javayant NEGOTIATION
Mayumi KolmetzRussiaXuxue Feng UNQUALIFIED
Ivar PaprockiAustraliaBernardo Dominic QUALIFIED
Leon OldroydIndiaElwin Sharvill NEW
Johnson SergiAustraliaXuxue Feng NEGOTIATION
Costa DilliardRussiaOnyama Limba NEGOTIATION
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Silvio SlusarskiCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereRussiaElwin Sharvill PROPOSAL
Greenwood BologniaAustraliaAsiya Javayant UNQUALIFIED
Julie StensethSpainBernardo Dominic NEGOTIATION
Clifford RimCanadaIvan Magalhaes NEGOTIATION
Tony FollerJapanElwin Sharvill PROPOSAL
David DarakjySpainStephen Shaw NEW
Octavia MaletSpainStephen Shaw QUALIFIED
Julie StensethAustraliaIvan Magalhaes QUALIFIED
Munro FerenczItalyElwin Sharvill PROPOSAL
Morrow RutaItalyIoni Bowcher NEGOTIATION
Rodrigues CampainUnited KingdomOnyama Limba NEW
Octavia MaletBrazilStephen Shaw UNQUALIFIED
Jeanfrancois VenereItalyStephen Shaw QUALIFIED
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Costa DilliardIndiaBernardo Dominic UNQUALIFIED
Adams MorascaArgentinaBernardo Dominic NEGOTIATION
Salvatore StockhamItalyElwin Sharvill QUALIFIED
Greenwood BologniaFranceOnyama Limba NEW
Faith GillianBrazilIvan Magalhaes QUALIFIED
Jefferson SchemmerFranceOnyama Limba NEGOTIATION
Octavia MaletUnited KingdomBernardo Dominic NEW
Frozen Columns
Name
Izzy Garufi
Kadeem Flosi
Kadeem Flosi
Kadeem Flosi
Ashley Doe
Wickens Nestle
Greenwood Bolognia
Jennifer Amigon
Kaitlin Ostrosky
Izzy Garufi
Chavez Briddick
Ashley Doe
Tony Foller
Francesco Shinko
Nicolas Iturbide
Salvatore Stockham
Deepesh Chui
Mayumi Kolmetz
Antonio Caudy
Johnson Sergi
Murillo Malet
Adams Morasca
Cody Saylors
Chavez Briddick
Kaitlin Ostrosky
Leon Oldroyd
Francesco Shinko
Jeanfrancois Venere
Kadeem Flosi
Adams Morasca
James Butt
Rodrigues Campain
Rodrigues Campain
Aruna Figeroa
Francesco Shinko
Ashley Doe
Salvatore Stockham
Darci Poquette
Morrow Ruta
Jeanfrancois Venere
Smith Glick
Jennifer Amigon
Jennifer Amigon
Leon Oldroyd
Kaitlin Ostrosky
Maisha Rulapaugh
Misaki Royster
Faith Gillian
Julie Stenseth
Kadeem Flosi
IdCountryDate
1000India2026-05-22
1001Spain2026-05-18
1002Brazil2026-04-28
1003United Kingdom2026-05-15
1004Australia2026-04-24
1005Brazil2026-05-18
1006France2026-04-29
1007Germany2026-05-06
1008Argentina2026-05-21
1009Italy2026-05-05
1010Canada2026-05-09
1011India2026-05-10
1012Germany2026-05-05
1013India2026-05-12
1014France2026-05-05
1015Brazil2026-04-30
1016Japan2026-04-27
1017France2026-04-30
1018Spain2026-05-10
1019Russia2026-05-01
1020Spain2026-05-17
1021Brazil2026-05-17
1022India2026-04-27
1023Japan2026-05-08
1024Italy2026-04-28
1025India2026-05-21
1026Brazil2026-05-02
1027Germany2026-05-12
1028Brazil2026-05-03
1029Spain2026-05-02
1030Argentina2026-05-23
1031Argentina2026-04-28
1032Argentina2026-04-25
1033India2026-05-14
1034Brazil2026-05-14
1035Russia2026-05-01
1036Australia2026-05-04
1037Argentina2026-05-13
1038Australia2026-04-30
1039Argentina2026-05-16
1040India2026-05-23
1041Russia2026-05-17
1042Spain2026-05-12
1043Argentina2026-05-17
1044Germany2026-05-08
1045Brazil2026-05-04
1046Brazil2026-04-27
1047Russia2026-05-21
1048Argentina2026-05-09
1049Japan2026-05-04

On-Demand Data

NameIdCountryDate
James Butt1000India2026-05-16
Alejandro Perin1001Australia2026-05-05
Salvatore Stockham1002Germany2026-05-12
Silvio Slusarski1003Japan2026-04-30
Ricardo Gaucho1004Italy2026-05-11
Francesco Shinko1005Japan2026-05-21
Kadeem Flosi1006India2026-05-14
Arvin Albares1007India2026-05-09
Leon Oldroyd1008India2026-05-23
Costa Dilliard1009France2026-05-21
Antonio Caudy1010Japan2026-05-01
Ashley Doe1011Brazil2026-05-13
Murillo Malet1012Canada2026-05-20
Morrow Ruta1013France2026-04-25
Clifford Rim1014Spain2026-04-30
Isabel Bowley1015United Kingdom2026-05-09
Ashley Doe1016Italy2026-05-21
Ivar Paprocki1017Germany2026-04-26
Darci Poquette1018Canada2026-05-04
Ivar Paprocki1019Italy2026-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeCanadaAsiya Javayant UNQUALIFIED
Rodrigues CampainAustraliaElwin Sharvill NEGOTIATION
Leja CaldareraGermanyAmy Elsner NEW
Nicolas IturbideRussiaAnna Fali QUALIFIED
Deepesh ChuiFranceElwin Sharvill QUALIFIED
Aruna FigeroaIndiaStephen Shaw RENEWAL
Antonio CaudyUnited KingdomAnna Fali NEW
Emily WhobreyUnited KingdomAmy Elsner PROPOSAL
Greenwood BologniaCanadaOnyama Limba PROPOSAL
Clifford RimUnited KingdomIoni Bowcher QUALIFIED
Kaitlin OstroskyFranceIvan Magalhaes NEGOTIATION
Sinclair WaycottIndiaAmy Elsner QUALIFIED
Francesco ShinkoJapanAnna Fali NEW
Cody SaylorsCanadaIvan Magalhaes NEW
Jefferson SchemmerFranceAmy Elsner UNQUALIFIED
Stacey MacleadBrazilElwin Sharvill RENEWAL
Jeanfrancois VenereArgentinaAnna Fali NEW
Wickens NestleArgentinaAmy Elsner NEW
Jefferson SchemmerSpainAsiya Javayant RENEWAL
Deepesh ChuiAustraliaBernardo Dominic RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher NEGOTIATION
Costa DilliardSpainXuxue Feng QUALIFIED
Silvio SlusarskiFranceAmy Elsner NEW
Ivar PaprockiIndiaBernardo Dominic UNQUALIFIED
Claire TollnerAustraliaBernardo Dominic NEGOTIATION
Smith GlickIndiaOnyama Limba PROPOSAL
Claire TollnerItalyAmy Elsner NEW
Ricardo GauchoItalyIoni Bowcher QUALIFIED
Juan WieserRussiaAnna Fali QUALIFIED
Adams MorascaGermanyBernardo Dominic RENEWAL
David DarakjyJapanAsiya Javayant RENEWAL
Kaitlin OstroskyUnited KingdomAmy Elsner QUALIFIED
Julie StensethIndiaXuxue Feng NEW
Julie StensethJapanIoni Bowcher RENEWAL
Stacey MacleadSpainIoni Bowcher NEGOTIATION
Murillo MaletGermanyElwin Sharvill QUALIFIED
Leon OldroydGermanyXuxue Feng PROPOSAL
Tony FollerAustraliaIvan Magalhaes RENEWAL
Johnson SergiItalyBernardo Dominic QUALIFIED
Kadeem FlosiBrazilXuxue Feng RENEWAL

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