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
Ashley DoeSpainOnyama Limba UNQUALIFIED
Ashley DoeFranceElwin Sharvill NEW
Juan WieserRussiaBernardo Dominic UNQUALIFIED
Antonio CaudyBrazilStephen Shaw NEGOTIATION
Ashley DoeUnited KingdomStephen Shaw PROPOSAL
Claire TollnerAustraliaElwin Sharvill RENEWAL
Cody SaylorsAustraliaOnyama Limba NEGOTIATION
Leon OldroydArgentinaOnyama Limba NEW
Claire TollnerJapanOnyama Limba NEGOTIATION
Nicolas IturbideFranceElwin Sharvill PROPOSAL
Emily WhobreyRussiaXuxue Feng NEGOTIATION
James ButtSpainOnyama Limba PROPOSAL
Julie StensethSpainAnna Fali PROPOSAL
Murillo MaletJapanAsiya Javayant UNQUALIFIED
Francesco ShinkoAustraliaElwin Sharvill NEGOTIATION
Wickens NestleSpainBernardo Dominic NEGOTIATION
Claire TollnerFranceAnna Fali PROPOSAL
Leja CaldareraBrazilElwin Sharvill NEGOTIATION
Ivar PaprockiFranceOnyama Limba UNQUALIFIED
Emily WhobreyGermanyXuxue Feng QUALIFIED
Sinclair WaycottArgentinaStephen Shaw QUALIFIED
Stacey MacleadBrazilOnyama Limba UNQUALIFIED
Emily WhobreyItalyOnyama Limba UNQUALIFIED
Izzy GarufiJapanOnyama Limba QUALIFIED
Misaki RoysterBrazilOnyama Limba RENEWAL
Misaki RoysterUnited KingdomIvan Magalhaes QUALIFIED
Ivar PaprockiArgentinaXuxue Feng NEGOTIATION
Maisha RulapaughRussiaXuxue Feng UNQUALIFIED
Cody SaylorsArgentinaIoni Bowcher QUALIFIED
Tony FollerArgentinaOnyama Limba PROPOSAL
Octavia MaletRussiaAmy Elsner QUALIFIED
Kaitlin OstroskyGermanyBernardo Dominic NEW
Costa DilliardIndiaOnyama Limba QUALIFIED
Faith GillianItalyOnyama Limba UNQUALIFIED
Greenwood BologniaBrazilAsiya Javayant PROPOSAL
Greenwood BologniaIndiaXuxue Feng QUALIFIED
Cody SaylorsBrazilBernardo Dominic UNQUALIFIED
Smith GlickItalyOnyama Limba RENEWAL
Misaki RoysterArgentinaAsiya Javayant NEW
Misaki RoysterItalyAmy Elsner RENEWAL
Maria MarrierIndiaOnyama Limba NEW
Nicolas IturbideFranceBernardo Dominic PROPOSAL
Salvatore StockhamBrazilIoni Bowcher NEGOTIATION
Jones VocelkaJapanOnyama Limba NEW
Tony FollerIndiaOnyama Limba RENEWAL
Maisha RulapaughFranceOnyama Limba RENEWAL
Faith GillianGermanyXuxue Feng NEW
Arvin AlbaresFranceStephen Shaw NEW
Rodrigues CampainBrazilIoni Bowcher UNQUALIFIED
Kadeem FlosiIndiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Murillo MaletItalyIvan Magalhaes NEGOTIATION
Claire TollnerSpainAmy Elsner PROPOSAL
Chavez BriddickIndiaStephen Shaw QUALIFIED
Clifford RimRussiaBernardo Dominic UNQUALIFIED
Octavia MaletIndiaElwin Sharvill RENEWAL
Chavez BriddickFranceOnyama Limba PROPOSAL
Antonio CaudySpainIvan Magalhaes NEGOTIATION
Faith GillianUnited KingdomIoni Bowcher QUALIFIED
Johnson SergiBrazilAnna Fali NEGOTIATION
Nicolas IturbideAustraliaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickRussia2026-04-26Feltz Printing Service RENEWAL57Bernardo Dominic
1001Tony FollerRussia2026-04-22Rangoni Of Florence RENEWAL72Xuxue Feng
1002Francesco ShinkoRussia2026-05-06King, Christopher A Esq QUALIFIED19Amy Elsner
1003Clifford RimJapan2026-05-04Chanay, Jeffrey A Esq UNQUALIFIED45Elwin Sharvill
1004Sinclair WaycottArgentina2026-04-21Printing Dimensions QUALIFIED85Ioni Bowcher
1005Jennifer AmigonIndia2026-04-25Feltz Printing Service NEW62Xuxue Feng
1006Salvatore StockhamFrance2026-04-21Benton, John B Jr QUALIFIED11Xuxue Feng
1007Kadeem FlosiArgentina2026-04-22Printing Dimensions QUALIFIED1Anna Fali
1008Deepesh ChuiCanada2026-04-26Dorl, James J Esq QUALIFIED13Elwin Sharvill
1009Morrow RutaAustralia2026-04-09Truhlar And Truhlar Attys PROPOSAL9Ivan Magalhaes
1010Alejandro PerinGermany2026-05-04Chanay, Jeffrey A Esq NEW0Asiya Javayant
1011Maisha RulapaughRussia2026-04-15Feiner Bros UNQUALIFIED5Bernardo Dominic
1012Johnson SergiAustralia2026-04-14Chapman, Ross E Esq NEW28Xuxue Feng
1013Isabel BowleyBrazil2026-05-07Dorl, James J Esq PROPOSAL26Stephen Shaw
1014Alejandro PerinAustralia2026-04-27Chanay, Jeffrey A Esq RENEWAL29Asiya Javayant
1015Jones VocelkaItaly2026-05-07Chemel, James L Cpa QUALIFIED75Elwin Sharvill
1016Silvio SlusarskiBrazil2026-05-03Dorl, James J Esq PROPOSAL66Elwin Sharvill
1017Ashley DoeItaly2026-04-17Commercial Press RENEWAL91Ioni Bowcher
1018Francesco ShinkoItaly2026-05-05King, Christopher A Esq RENEWAL11Amy Elsner
1019Rodrigues CampainIndia2026-04-29Rousseaux, Michael Esq PROPOSAL14Amy Elsner
1020Ashley DoeGermany2026-04-19Chanay, Jeffrey A Esq PROPOSAL37Anna Fali
1021Antonio CaudySpain2026-04-30Chemel, James L Cpa NEGOTIATION45Amy Elsner
1022Arvin AlbaresArgentina2026-04-09Feltz Printing Service NEGOTIATION37Xuxue Feng
1023Leja CaldareraBrazil2026-04-16Feltz Printing Service NEGOTIATION84Xuxue Feng
1024Leon OldroydFrance2026-04-22Feiner Bros PROPOSAL35Ioni Bowcher
1025Kaitlin OstroskyBrazil2026-04-25Chanay, Jeffrey A Esq NEW22Asiya Javayant
1026Chavez BriddickItaly2026-05-02Buckley Miller Wright PROPOSAL96Elwin Sharvill
1027Stacey MacleadSpain2026-04-10Rangoni Of Florence UNQUALIFIED58Anna Fali
1028Kaitlin OstroskyFrance2026-04-22Rousseaux, Michael Esq UNQUALIFIED51Elwin Sharvill
1029Murillo MaletIndia2026-04-23Chemel, James L Cpa QUALIFIED66Ioni Bowcher
1030Stacey MacleadAustralia2026-05-01Chanay, Jeffrey A Esq UNQUALIFIED58Amy Elsner
1031Kadeem FlosiJapan2026-05-08Chanay, Jeffrey A Esq QUALIFIED12Onyama Limba
1032Faith GillianCanada2026-04-28Printing Dimensions RENEWAL95Amy Elsner
1033Salvatore StockhamUnited Kingdom2026-04-16Buckley Miller Wright QUALIFIED96Stephen Shaw
1034Smith GlickItaly2026-04-21Morlong Associates NEGOTIATION97Anna Fali
1035James ButtBrazil2026-05-06Chapman, Ross E Esq PROPOSAL74Ivan Magalhaes
1036Misaki RoysterUnited Kingdom2026-04-24Truhlar And Truhlar Attys UNQUALIFIED14Elwin Sharvill
1037Deepesh ChuiFrance2026-04-22Morlong Associates UNQUALIFIED32Bernardo Dominic
1038Johnson SergiGermany2026-04-27Rangoni Of Florence UNQUALIFIED64Xuxue Feng
1039Deepesh ChuiItaly2026-05-06Buckley Miller Wright PROPOSAL92Elwin Sharvill
1040Wickens NestleRussia2026-04-26Truhlar And Truhlar Attys QUALIFIED65Xuxue Feng
1041Nicolas IturbideBrazil2026-04-22Chemel, James L Cpa QUALIFIED77Elwin Sharvill
1042Silvio SlusarskiRussia2026-04-29Truhlar And Truhlar Attys NEW41Amy Elsner
1043Deepesh ChuiIndia2026-04-09Rousseaux, Michael Esq UNQUALIFIED7Anna Fali
1044Ashley DoeCanada2026-04-11Chanay, Jeffrey A Esq RENEWAL15Xuxue Feng
1045Aruna FigeroaRussia2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED44Amy Elsner
1046Ivar PaprockiCanada2026-04-22Printing Dimensions QUALIFIED90Stephen Shaw
1047Costa DilliardItaly2026-04-27Feltz Printing Service UNQUALIFIED78Bernardo Dominic
1048Mujtaba NickaAustralia2026-04-23Rangoni Of Florence NEW74Onyama Limba
1049Ashley DoeCanada2026-04-24Buckley Miller Wright NEGOTIATION6Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiBrazilBernardo Dominic NEW
Darci PoquetteGermanyAsiya Javayant UNQUALIFIED
Emily WhobreyAustraliaAnna Fali NEW
Smith GlickRussiaAnna Fali QUALIFIED
Alejandro PerinItalyAnna Fali NEW
Isabel BowleyCanadaOnyama Limba RENEWAL
Cody SaylorsSpainAsiya Javayant NEGOTIATION
Antonio CaudyRussiaOnyama Limba NEW
Misaki RoysterJapanIvan Magalhaes RENEWAL
Leon OldroydItalyAnna Fali RENEWAL
Antonio CaudyGermanyIoni Bowcher PROPOSAL
Leja CaldareraUnited KingdomAnna Fali RENEWAL
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Smith GlickJapanBernardo Dominic QUALIFIED
Leon OldroydBrazilElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomAmy Elsner UNQUALIFIED
Johnson SergiItalyIvan Magalhaes UNQUALIFIED
Alejandro PerinCanadaIvan Magalhaes UNQUALIFIED
Aditya KuskoCanadaOnyama Limba QUALIFIED
Maisha RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Darci PoquetteSpainOnyama Limba RENEWAL
Greenwood BologniaAustraliaXuxue Feng UNQUALIFIED
Ashley DoeCanadaElwin Sharvill UNQUALIFIED
Murillo MaletSpainElwin Sharvill UNQUALIFIED
Aika InouyeGermanyBernardo Dominic RENEWAL
Morrow RutaArgentinaOnyama Limba UNQUALIFIED
Sinclair WaycottCanadaIvan Magalhaes QUALIFIED
Darci PoquetteGermanyAmy Elsner NEW
Leja CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Ashley DoeBrazilOnyama Limba NEW
Octavia MaletJapanAmy Elsner NEW
Julie StensethGermanyAnna Fali RENEWAL
Munro FerenczCanadaIvan Magalhaes RENEWAL
Francesco ShinkoCanadaAnna Fali PROPOSAL
Deepesh ChuiBrazilAsiya Javayant NEW
Kaitlin OstroskyFranceStephen Shaw NEW
Murillo MaletAustraliaOnyama Limba QUALIFIED
Maria MarrierItalyAsiya Javayant NEGOTIATION
James ButtFranceOnyama Limba PROPOSAL
Juan WieserItalyStephen Shaw NEGOTIATION
Julie StensethCanadaStephen Shaw UNQUALIFIED
Misaki RoysterCanadaXuxue Feng PROPOSAL
Jennifer AmigonIndiaIvan Magalhaes RENEWAL
Murillo MaletSpainIoni Bowcher RENEWAL
Tony FollerItalyIvan Magalhaes UNQUALIFIED
Darci PoquetteAustraliaStephen Shaw RENEWAL
Ashley DoeUnited KingdomStephen Shaw PROPOSAL
Claire TollnerJapanStephen Shaw NEGOTIATION
Silvio SlusarskiFranceIoni Bowcher NEW
Frozen Columns
Name
Darci Poquette
Munro Ferencz
Kadeem Flosi
Isabel Bowley
Adams Morasca
Aika Inouye
Nicolas Iturbide
Misaki Royster
Chavez Briddick
Leja Caldarera
Francesco Shinko
Chavez Briddick
Deepesh Chui
Izzy Garufi
Faith Gillian
Maisha Rulapaugh
Maria Marrier
Aruna Figeroa
Leja Caldarera
Mujtaba Nicka
Maria Marrier
Arvin Albares
James Butt
Leon Oldroyd
Johnson Sergi
Ashley Doe
Smith Glick
Morrow Ruta
Tony Foller
Darci Poquette
Leja Caldarera
James Butt
Mujtaba Nicka
Jennifer Amigon
Aruna Figeroa
Maisha Rulapaugh
Julie Stenseth
Aditya Kusko
Misaki Royster
Cody Saylors
Mayumi Kolmetz
Aruna Figeroa
Aruna Figeroa
Jeanfrancois Venere
Kadeem Flosi
Octavia Malet
Jennifer Amigon
Isabel Bowley
Francesco Shinko
Aruna Figeroa
IdCountryDate
1000Russia2026-04-11
1001Spain2026-04-21
1002Germany2026-05-05
1003Spain2026-04-12
1004Japan2026-04-27
1005Italy2026-04-18
1006India2026-05-02
1007United Kingdom2026-05-02
1008Brazil2026-04-14
1009Spain2026-04-13
1010Argentina2026-04-29
1011Canada2026-04-29
1012United Kingdom2026-04-27
1013Spain2026-04-12
1014Italy2026-04-10
1015India2026-05-03
1016Russia2026-04-20
1017Spain2026-04-26
1018Spain2026-04-17
1019India2026-04-12
1020Spain2026-04-15
1021Japan2026-04-15
1022Argentina2026-04-09
1023France2026-04-25
1024Spain2026-04-28
1025Spain2026-04-27
1026Japan2026-04-30
1027Canada2026-04-11
1028United Kingdom2026-04-11
1029Italy2026-05-04
1030Germany2026-05-05
1031Australia2026-04-15
1032France2026-05-02
1033Japan2026-04-23
1034Russia2026-04-24
1035India2026-04-14
1036France2026-04-24
1037Argentina2026-05-03
1038Argentina2026-04-10
1039Italy2026-04-29
1040France2026-04-12
1041Argentina2026-05-04
1042France2026-04-11
1043United Kingdom2026-04-23
1044Spain2026-04-20
1045Brazil2026-04-14
1046India2026-05-01
1047Argentina2026-05-03
1048Argentina2026-05-03
1049Australia2026-04-17

On-Demand Data

NameIdCountryDate
Tony Foller1000Germany2026-04-16
Aruna Figeroa1001Brazil2026-04-13
Mujtaba Nicka1002India2026-04-22
Clifford Rim1003Brazil2026-04-17
David Darakjy1004India2026-04-16
Sinclair Waycott1005Argentina2026-04-20
Morrow Ruta1006Russia2026-04-24
Antonio Caudy1007Russia2026-04-29
Jeanfrancois Venere1008Italy2026-05-05
Aika Inouye1009Germany2026-05-02
Smith Glick1010Japan2026-04-11
Isabel Bowley1011Japan2026-04-23
Stacey Maclead1012Australia2026-04-22
Aditya Kusko1013France2026-04-21
Francesco Shinko1014United Kingdom2026-04-16
Juan Wieser1015Spain2026-04-26
Claire Tollner1016Spain2026-04-27
Ricardo Gaucho1017Russia2026-04-29
Murillo Malet1018Germany2026-04-15
Mujtaba Nicka1019Germany2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimJapanAnna Fali UNQUALIFIED
Wickens NestleGermanyIvan Magalhaes QUALIFIED
Maisha RulapaughItalyIoni Bowcher UNQUALIFIED
Murillo MaletBrazilAmy Elsner NEGOTIATION
Jefferson SchemmerArgentinaAsiya Javayant QUALIFIED
Ashley DoeAustraliaStephen Shaw NEGOTIATION
Jennifer AmigonJapanAsiya Javayant RENEWAL
Wickens NestleGermanyXuxue Feng PROPOSAL
Clifford RimItalyAnna Fali RENEWAL
Jefferson SchemmerFranceBernardo Dominic NEGOTIATION
Smith GlickIndiaIvan Magalhaes RENEWAL
Ivar PaprockiItalyIoni Bowcher NEGOTIATION
Ashley DoeBrazilStephen Shaw NEW
Antonio CaudyAustraliaIoni Bowcher QUALIFIED
Kaitlin OstroskyRussiaOnyama Limba NEGOTIATION
Ivar PaprockiAustraliaIvan Magalhaes UNQUALIFIED
Sinclair WaycottArgentinaIvan Magalhaes PROPOSAL
Ivar PaprockiCanadaIvan Magalhaes NEGOTIATION
Antonio CaudyCanadaXuxue Feng RENEWAL
Silvio SlusarskiCanadaXuxue Feng NEGOTIATION
Claire TollnerGermanyAsiya Javayant RENEWAL
Salvatore StockhamItalyAnna Fali NEGOTIATION
Salvatore StockhamJapanIoni Bowcher NEW
Rodrigues CampainArgentinaOnyama Limba NEGOTIATION
Wickens NestleSpainAnna Fali QUALIFIED
Stacey MacleadCanadaAnna Fali PROPOSAL
Emily WhobreyArgentinaIvan Magalhaes QUALIFIED
David DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Aruna FigeroaUnited KingdomAnna Fali NEW
Costa DilliardCanadaElwin Sharvill PROPOSAL
Cody SaylorsArgentinaElwin Sharvill QUALIFIED
Faith GillianBrazilAsiya Javayant UNQUALIFIED
Maisha RulapaughIndiaBernardo Dominic PROPOSAL
Alejandro PerinAustraliaOnyama Limba NEW
Arvin AlbaresUnited KingdomXuxue Feng NEW
Ashley DoeRussiaAnna Fali PROPOSAL
Octavia MaletCanadaIoni Bowcher UNQUALIFIED
Nicolas IturbideItalyIvan Magalhaes PROPOSAL
Nicolas IturbideUnited KingdomStephen Shaw NEW
Murillo MaletJapanElwin Sharvill 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>