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
Izzy GarufiSpainElwin Sharvill NEW
Octavia MaletBrazilIoni Bowcher UNQUALIFIED
Faith GillianJapanIoni Bowcher NEW
Leja CaldareraCanadaAmy Elsner NEW
Rodrigues CampainAustraliaAmy Elsner NEW
Aika InouyeItalyElwin Sharvill RENEWAL
Darci PoquetteAustraliaAsiya Javayant QUALIFIED
Mayumi KolmetzBrazilIoni Bowcher NEGOTIATION
Julie StensethSpainXuxue Feng RENEWAL
Emily WhobreyAustraliaAsiya Javayant NEGOTIATION
Kadeem FlosiFranceAmy Elsner NEW
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw PROPOSAL
Leon OldroydItalyIvan Magalhaes RENEWAL
Wickens NestleJapanOnyama Limba NEW
Julie StensethCanadaXuxue Feng NEW
Clifford RimIndiaElwin Sharvill NEW
Claire TollnerIndiaElwin Sharvill PROPOSAL
Antonio CaudyGermanyIoni Bowcher NEW
Antonio CaudyJapanIvan Magalhaes RENEWAL
James ButtArgentinaIoni Bowcher NEGOTIATION
Wickens NestleArgentinaAsiya Javayant PROPOSAL
Francesco ShinkoUnited KingdomStephen Shaw NEGOTIATION
Rodrigues CampainRussiaAsiya Javayant RENEWAL
Deepesh ChuiItalyOnyama Limba UNQUALIFIED
Murillo MaletItalyStephen Shaw UNQUALIFIED
Greenwood BologniaAustraliaAmy Elsner UNQUALIFIED
David DarakjyFranceIoni Bowcher QUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant NEGOTIATION
Adams MorascaIndiaStephen Shaw PROPOSAL
Mayumi KolmetzRussiaBernardo Dominic NEW
Aditya KuskoJapanAnna Fali NEGOTIATION
David DarakjyCanadaElwin Sharvill NEGOTIATION
Costa DilliardUnited KingdomAsiya Javayant RENEWAL
Salvatore StockhamGermanyOnyama Limba PROPOSAL
Murillo MaletArgentinaOnyama Limba PROPOSAL
David DarakjyBrazilAnna Fali RENEWAL
David DarakjyIndiaXuxue Feng NEGOTIATION
Stacey MacleadCanadaAnna Fali QUALIFIED
Isabel BowleyItalyAmy Elsner NEGOTIATION
Jennifer AmigonFranceXuxue Feng UNQUALIFIED
Octavia MaletRussiaAmy Elsner NEGOTIATION
Claire TollnerJapanAmy Elsner QUALIFIED
Ivar PaprockiBrazilAsiya Javayant NEGOTIATION
Darci PoquetteRussiaBernardo Dominic QUALIFIED
Kaitlin OstroskyAustraliaBernardo Dominic UNQUALIFIED
Sinclair WaycottJapanAnna Fali RENEWAL
Chavez BriddickItalyStephen Shaw RENEWAL
Silvio SlusarskiRussiaStephen Shaw UNQUALIFIED
Rodrigues CampainCanadaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
David DarakjyJapanBernardo Dominic UNQUALIFIED
Johnson SergiSpainAmy Elsner PROPOSAL
Nicolas IturbideAustraliaIvan Magalhaes NEGOTIATION
Leja CaldareraBrazilElwin Sharvill UNQUALIFIED
Francesco ShinkoItalyBernardo Dominic QUALIFIED
Jeanfrancois VenereBrazilElwin Sharvill NEGOTIATION
Alejandro PerinBrazilElwin Sharvill NEW
Mujtaba NickaRussiaAsiya Javayant NEGOTIATION
Maria MarrierBrazilIoni Bowcher QUALIFIED
Tony FollerCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem FlosiBrazil2026-04-22Printing Dimensions PROPOSAL78Xuxue Feng
1001Julie StensethItaly2026-04-30Dorl, James J Esq PROPOSAL20Asiya Javayant
1002Munro FerenczItaly2026-05-05Feiner Bros UNQUALIFIED41Anna Fali
1003Johnson SergiBrazil2026-04-18Chanay, Jeffrey A Esq UNQUALIFIED79Ioni Bowcher
1004David DarakjyArgentina2026-05-08Buckley Miller Wright NEW5Elwin Sharvill
1005Aruna FigeroaBrazil2026-04-30King, Christopher A Esq NEGOTIATION47Stephen Shaw
1006Cody SaylorsJapan2026-04-29Printing Dimensions NEGOTIATION19Ivan Magalhaes
1007Munro FerenczJapan2026-04-24Printing Dimensions UNQUALIFIED63Stephen Shaw
1008Rodrigues CampainGermany2026-05-13Rangoni Of Florence NEW55Xuxue Feng
1009Jeanfrancois VenereUnited Kingdom2026-05-05Feltz Printing Service NEGOTIATION49Bernardo Dominic
1010Johnson SergiArgentina2026-04-21King, Christopher A Esq PROPOSAL75Bernardo Dominic
1011Mayumi KolmetzAustralia2026-04-24Chemel, James L Cpa NEW27Anna Fali
1012Jones VocelkaSpain2026-05-05Dorl, James J Esq NEW70Anna Fali
1013Costa DilliardIndia2026-05-09Rangoni Of Florence PROPOSAL7Anna Fali
1014Mayumi KolmetzUnited Kingdom2026-05-03Feltz Printing Service PROPOSAL54Asiya Javayant
1015Munro FerenczArgentina2026-05-10Morlong Associates NEGOTIATION95Elwin Sharvill
1016David DarakjyGermany2026-05-04Feltz Printing Service NEGOTIATION2Ivan Magalhaes
1017Greenwood BologniaArgentina2026-04-16Chanay, Jeffrey A Esq NEGOTIATION87Xuxue Feng
1018Leon OldroydAustralia2026-04-27Dorl, James J Esq PROPOSAL6Asiya Javayant
1019Faith GillianCanada2026-05-01Chemel, James L Cpa PROPOSAL62Ioni Bowcher
1020Leon OldroydBrazil2026-04-22Feltz Printing Service NEGOTIATION68Bernardo Dominic
1021Murillo MaletArgentina2026-05-12Feiner Bros QUALIFIED44Onyama Limba
1022Juan WieserRussia2026-05-07Chapman, Ross E Esq NEGOTIATION95Ivan Magalhaes
1023Maisha RulapaughUnited Kingdom2026-04-19Feiner Bros RENEWAL3Elwin Sharvill
1024Kaitlin OstroskyFrance2026-04-18Commercial Press NEW9Asiya Javayant
1025Jefferson SchemmerItaly2026-05-05Feiner Bros UNQUALIFIED27Anna Fali
1026Kaitlin OstroskyBrazil2026-05-02Morlong Associates NEGOTIATION33Amy Elsner
1027Julie StensethGermany2026-05-08Morlong Associates NEW14Onyama Limba
1028Wickens NestleFrance2026-04-20Benton, John B Jr NEGOTIATION75Ivan Magalhaes
1029Tony FollerItaly2026-05-08Feiner Bros RENEWAL97Ivan Magalhaes
1030Isabel BowleyAustralia2026-04-18Printing Dimensions QUALIFIED1Onyama Limba
1031Chavez BriddickFrance2026-04-16Buckley Miller Wright RENEWAL32Ivan Magalhaes
1032Smith GlickRussia2026-04-20King, Christopher A Esq NEGOTIATION45Ioni Bowcher
1033Jefferson SchemmerBrazil2026-04-21Truhlar And Truhlar Attys UNQUALIFIED49Bernardo Dominic
1034Alejandro PerinRussia2026-05-05Printing Dimensions NEGOTIATION43Onyama Limba
1035Ashley DoeAustralia2026-04-14Chemel, James L Cpa NEGOTIATION38Amy Elsner
1036Darci PoquetteItaly2026-04-16Morlong Associates UNQUALIFIED36Bernardo Dominic
1037Darci PoquetteSpain2026-04-21Chemel, James L Cpa NEW90Ivan Magalhaes
1038Isabel BowleyBrazil2026-05-12King, Christopher A Esq NEGOTIATION33Ivan Magalhaes
1039Arvin AlbaresJapan2026-05-08Rousseaux, Michael Esq RENEWAL9Onyama Limba
1040Mujtaba NickaGermany2026-05-04Dorl, James J Esq UNQUALIFIED12Asiya Javayant
1041Emily WhobreyGermany2026-05-04Truhlar And Truhlar Attys QUALIFIED60Xuxue Feng
1042Clifford RimGermany2026-04-28Morlong Associates UNQUALIFIED42Ivan Magalhaes
1043Julie StensethGermany2026-04-18Buckley Miller Wright QUALIFIED72Bernardo Dominic
1044Kadeem FlosiIndia2026-04-15Feltz Printing Service NEW76Anna Fali
1045Murillo MaletBrazil2026-05-01Dorl, James J Esq QUALIFIED9Onyama Limba
1046Leja CaldareraRussia2026-05-11Printing Dimensions QUALIFIED68Onyama Limba
1047Leon OldroydAustralia2026-05-05Dorl, James J Esq QUALIFIED23Ivan Magalhaes
1048Jones VocelkaUnited Kingdom2026-05-06Commercial Press NEGOTIATION97Asiya Javayant
1049Munro FerenczBrazil2026-04-17King, Christopher A Esq PROPOSAL49Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiFranceIvan Magalhaes PROPOSAL
Alejandro PerinItalyAsiya Javayant PROPOSAL
Salvatore StockhamIndiaElwin Sharvill UNQUALIFIED
Claire TollnerArgentinaXuxue Feng NEGOTIATION
Munro FerenczSpainAnna Fali RENEWAL
Maisha RulapaughCanadaIoni Bowcher QUALIFIED
Jefferson SchemmerArgentinaBernardo Dominic NEGOTIATION
Francesco ShinkoItalyElwin Sharvill QUALIFIED
Alejandro PerinArgentinaAmy Elsner QUALIFIED
Smith GlickUnited KingdomElwin Sharvill UNQUALIFIED
Morrow RutaJapanAnna Fali PROPOSAL
Greenwood BologniaGermanyElwin Sharvill NEGOTIATION
Mujtaba NickaRussiaStephen Shaw PROPOSAL
Kaitlin OstroskyJapanIvan Magalhaes UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant NEW
Jennifer AmigonSpainElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaAnna Fali RENEWAL
Faith GillianBrazilAsiya Javayant QUALIFIED
Alejandro PerinUnited KingdomIvan Magalhaes RENEWAL
Kaitlin OstroskyRussiaBernardo Dominic QUALIFIED
Jennifer AmigonIndiaElwin Sharvill NEGOTIATION
Aika InouyeCanadaIvan Magalhaes RENEWAL
Wickens NestleArgentinaAmy Elsner NEW
David DarakjyRussiaXuxue Feng NEGOTIATION
Isabel BowleyAustraliaElwin Sharvill PROPOSAL
Izzy GarufiUnited KingdomAmy Elsner PROPOSAL
Rodrigues CampainRussiaStephen Shaw RENEWAL
Francesco ShinkoFranceXuxue Feng RENEWAL
Rodrigues CampainAustraliaOnyama Limba NEW
Cody SaylorsGermanyIvan Magalhaes QUALIFIED
Aruna FigeroaBrazilElwin Sharvill UNQUALIFIED
Aika InouyeGermanyAsiya Javayant PROPOSAL
Ashley DoeAustraliaIvan Magalhaes PROPOSAL
Antonio CaudyCanadaXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaBernardo Dominic NEGOTIATION
Cody SaylorsItalyStephen Shaw NEW
Costa DilliardAustraliaIoni Bowcher NEW
Claire TollnerIndiaIoni Bowcher NEW
Aditya KuskoUnited KingdomIvan Magalhaes PROPOSAL
Deepesh ChuiCanadaStephen Shaw UNQUALIFIED
Antonio CaudyGermanyAnna Fali PROPOSAL
Mujtaba NickaUnited KingdomAnna Fali PROPOSAL
Murillo MaletRussiaAnna Fali RENEWAL
Cody SaylorsRussiaXuxue Feng QUALIFIED
Cody SaylorsCanadaIvan Magalhaes QUALIFIED
Misaki RoysterArgentinaStephen Shaw NEGOTIATION
Leon OldroydFranceIvan Magalhaes QUALIFIED
Deepesh ChuiBrazilAsiya Javayant NEGOTIATION
Sinclair WaycottJapanAsiya Javayant NEW
Faith GillianSpainXuxue Feng NEGOTIATION
Frozen Columns
Name
Faith Gillian
Mujtaba Nicka
Greenwood Bolognia
Smith Glick
Salvatore Stockham
Johnson Sergi
Clifford Rim
Stacey Maclead
David Darakjy
Julie Stenseth
Maria Marrier
Aruna Figeroa
Faith Gillian
Leon Oldroyd
Juan Wieser
David Darakjy
Silvio Slusarski
Rodrigues Campain
James Butt
Jeanfrancois Venere
Salvatore Stockham
Izzy Garufi
Claire Tollner
Emily Whobrey
Jones Vocelka
Aditya Kusko
Clifford Rim
Mujtaba Nicka
Maria Marrier
Jeanfrancois Venere
Antonio Caudy
Deepesh Chui
Jefferson Schemmer
Jennifer Amigon
Aditya Kusko
Claire Tollner
Arvin Albares
Kaitlin Ostrosky
Maria Marrier
Darci Poquette
James Butt
Ashley Doe
Isabel Bowley
Silvio Slusarski
Sinclair Waycott
Claire Tollner
Emily Whobrey
Maisha Rulapaugh
Jennifer Amigon
Jefferson Schemmer
IdCountryDate
1000France2026-04-15
1001France2026-05-05
1002Russia2026-05-13
1003United Kingdom2026-05-02
1004Spain2026-05-07
1005France2026-04-28
1006India2026-05-02
1007Argentina2026-05-06
1008India2026-04-15
1009Brazil2026-04-20
1010India2026-04-22
1011Brazil2026-04-27
1012France2026-04-15
1013India2026-05-08
1014Germany2026-04-29
1015Germany2026-05-07
1016Canada2026-04-16
1017Germany2026-05-03
1018Argentina2026-05-10
1019Japan2026-04-19
1020United Kingdom2026-04-30
1021Canada2026-04-26
1022Germany2026-04-23
1023Japan2026-05-05
1024Australia2026-05-03
1025Italy2026-05-05
1026Japan2026-04-21
1027Australia2026-05-11
1028United Kingdom2026-04-29
1029United Kingdom2026-04-21
1030Argentina2026-04-14
1031Australia2026-05-06
1032Australia2026-05-02
1033Canada2026-05-12
1034Spain2026-05-04
1035India2026-04-14
1036Australia2026-04-14
1037United Kingdom2026-04-24
1038Italy2026-04-22
1039Germany2026-05-13
1040France2026-05-06
1041United Kingdom2026-05-13
1042Germany2026-05-08
1043Argentina2026-05-12
1044Russia2026-05-12
1045Russia2026-05-01
1046Argentina2026-04-15
1047Canada2026-05-11
1048Canada2026-04-23
1049United Kingdom2026-04-24

On-Demand Data

NameIdCountryDate
Juan Wieser1000India2026-05-11
Antonio Caudy1001Russia2026-04-21
Deepesh Chui1002Japan2026-04-21
Morrow Ruta1003Australia2026-04-14
Mujtaba Nicka1004Russia2026-05-13
Jennifer Amigon1005Germany2026-04-18
Morrow Ruta1006Spain2026-04-25
Silvio Slusarski1007Australia2026-04-15
Darci Poquette1008Germany2026-05-02
Darci Poquette1009Brazil2026-04-17
Aika Inouye1010Argentina2026-04-25
Aruna Figeroa1011Italy2026-05-05
Mayumi Kolmetz1012Canada2026-04-23
Darci Poquette1013Brazil2026-05-01
Alejandro Perin1014Germany2026-04-17
Nicolas Iturbide1015Japan2026-04-21
Adams Morasca1016Brazil2026-05-09
Sinclair Waycott1017Italy2026-05-10
Sinclair Waycott1018Japan2026-04-27
Kadeem Flosi1019Germany2026-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiArgentinaOnyama Limba QUALIFIED
Nicolas IturbideAustraliaAnna Fali PROPOSAL
Sinclair WaycottUnited KingdomIoni Bowcher PROPOSAL
Johnson SergiIndiaElwin Sharvill NEGOTIATION
Tony FollerSpainOnyama Limba QUALIFIED
Misaki RoysterFranceElwin Sharvill NEGOTIATION
Maria MarrierAustraliaOnyama Limba PROPOSAL
Arvin AlbaresIndiaIvan Magalhaes PROPOSAL
Murillo MaletAustraliaBernardo Dominic QUALIFIED
Johnson SergiAustraliaIvan Magalhaes NEGOTIATION
Jones VocelkaRussiaIvan Magalhaes NEW
Smith GlickCanadaElwin Sharvill PROPOSAL
Munro FerenczRussiaAmy Elsner NEW
Clifford RimRussiaIoni Bowcher NEGOTIATION
Silvio SlusarskiBrazilOnyama Limba PROPOSAL
Maria MarrierUnited KingdomAsiya Javayant NEGOTIATION
Juan WieserIndiaAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaElwin Sharvill RENEWAL
Ivar PaprockiCanadaOnyama Limba UNQUALIFIED
Arvin AlbaresFranceBernardo Dominic UNQUALIFIED
Deepesh ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Johnson SergiAustraliaOnyama Limba QUALIFIED
Murillo MaletGermanyXuxue Feng NEW
Munro FerenczItalyElwin Sharvill NEW
Johnson SergiArgentinaOnyama Limba RENEWAL
Cody SaylorsItalyElwin Sharvill UNQUALIFIED
Silvio SlusarskiBrazilAsiya Javayant QUALIFIED
Juan WieserGermanyIvan Magalhaes QUALIFIED
Francesco ShinkoRussiaStephen Shaw QUALIFIED
Misaki RoysterGermanyElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaAmy Elsner NEW
Munro FerenczJapanElwin Sharvill NEW
Chavez BriddickFranceAmy Elsner UNQUALIFIED
Isabel BowleyGermanyStephen Shaw PROPOSAL
Murillo MaletFranceIoni Bowcher NEGOTIATION
Aika InouyeRussiaBernardo Dominic RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Julie StensethCanadaOnyama Limba NEW
Aditya KuskoUnited KingdomAsiya Javayant PROPOSAL
Stacey MacleadSpainXuxue 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>