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
Greenwood BologniaFranceOnyama Limba PROPOSAL
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Julie StensethBrazilAmy Elsner NEGOTIATION
Ricardo GauchoSpainElwin Sharvill RENEWAL
Jones VocelkaUnited KingdomIvan Magalhaes NEW
Jeanfrancois VenereSpainAsiya Javayant NEW
Murillo MaletFranceXuxue Feng NEGOTIATION
Izzy GarufiSpainOnyama Limba NEGOTIATION
Costa DilliardRussiaIoni Bowcher NEW
Alejandro PerinFranceAsiya Javayant QUALIFIED
Leja CaldareraArgentinaAmy Elsner NEW
Sinclair WaycottFranceXuxue Feng NEGOTIATION
Ricardo GauchoItalyAnna Fali RENEWAL
Misaki RoysterFranceStephen Shaw QUALIFIED
David DarakjyIndiaAsiya Javayant PROPOSAL
Aruna FigeroaItalyElwin Sharvill NEGOTIATION
Adams MorascaCanadaOnyama Limba RENEWAL
Maria MarrierUnited KingdomAnna Fali PROPOSAL
Jennifer AmigonFranceAmy Elsner NEGOTIATION
Misaki RoysterItalyElwin Sharvill RENEWAL
Costa DilliardCanadaIvan Magalhaes RENEWAL
David DarakjyArgentinaIvan Magalhaes NEW
Alejandro PerinJapanStephen Shaw RENEWAL
Alejandro PerinIndiaAmy Elsner NEW
Octavia MaletGermanyStephen Shaw UNQUALIFIED
James ButtRussiaBernardo Dominic UNQUALIFIED
Silvio SlusarskiJapanAsiya Javayant QUALIFIED
Darci PoquetteFranceAmy Elsner NEW
Kadeem FlosiCanadaBernardo Dominic UNQUALIFIED
Sinclair WaycottSpainBernardo Dominic RENEWAL
Jefferson SchemmerJapanIvan Magalhaes NEW
Misaki RoysterRussiaAmy Elsner RENEWAL
David DarakjyRussiaAnna Fali PROPOSAL
Mujtaba NickaSpainAsiya Javayant NEW
Alejandro PerinJapanAnna Fali QUALIFIED
Rodrigues CampainCanadaAnna Fali UNQUALIFIED
David DarakjyGermanyStephen Shaw QUALIFIED
Maisha RulapaughBrazilStephen Shaw UNQUALIFIED
Francesco ShinkoBrazilIvan Magalhaes UNQUALIFIED
Sinclair WaycottItalyElwin Sharvill RENEWAL
Nicolas IturbideArgentinaElwin Sharvill NEGOTIATION
Ricardo GauchoFranceAnna Fali RENEWAL
Jefferson SchemmerGermanyAnna Fali PROPOSAL
Kaitlin OstroskyFranceStephen Shaw RENEWAL
James ButtArgentinaStephen Shaw UNQUALIFIED
James ButtJapanOnyama Limba PROPOSAL
Antonio CaudyIndiaElwin Sharvill UNQUALIFIED
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Smith GlickCanadaElwin Sharvill QUALIFIED
Antonio CaudyArgentinaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Juan WieserSpainOnyama Limba NEGOTIATION
Misaki RoysterCanadaIoni Bowcher UNQUALIFIED
Rodrigues CampainArgentinaXuxue Feng RENEWAL
Isabel BowleyBrazilAsiya Javayant PROPOSAL
Clifford RimCanadaXuxue Feng RENEWAL
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Maria MarrierSpainIvan Magalhaes QUALIFIED
Aditya KuskoUnited KingdomBernardo Dominic PROPOSAL
Salvatore StockhamItalyBernardo Dominic NEW
Costa DilliardFranceIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyJapan2026-05-02Feltz Printing Service NEW77Stephen Shaw
1001Jefferson SchemmerArgentina2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED43Stephen Shaw
1002Tony FollerFrance2026-05-06Printing Dimensions NEGOTIATION72Amy Elsner
1003Emily WhobreyGermany2026-04-25King, Christopher A Esq QUALIFIED28Stephen Shaw
1004Johnson SergiIndia2026-05-04Chapman, Ross E Esq NEW79Ioni Bowcher
1005Ricardo GauchoRussia2026-04-24Truhlar And Truhlar Attys UNQUALIFIED90Elwin Sharvill
1006Juan WieserJapan2026-05-03Feltz Printing Service QUALIFIED65Stephen Shaw
1007Misaki RoysterUnited Kingdom2026-05-11Chemel, James L Cpa NEW50Onyama Limba
1008Silvio SlusarskiItaly2026-04-18Buckley Miller Wright NEW42Bernardo Dominic
1009Munro FerenczUnited Kingdom2026-05-07Truhlar And Truhlar Attys NEGOTIATION78Elwin Sharvill
1010Francesco ShinkoRussia2026-05-12Chanay, Jeffrey A Esq NEW15Stephen Shaw
1011Julie StensethItaly2026-04-18Feiner Bros NEW46Onyama Limba
1012Greenwood BologniaItaly2026-04-16Chemel, James L Cpa NEW32Amy Elsner
1013Johnson SergiBrazil2026-05-03Truhlar And Truhlar Attys UNQUALIFIED34Bernardo Dominic
1014Kaitlin OstroskySpain2026-05-10Commercial Press NEGOTIATION24Ivan Magalhaes
1015Kadeem FlosiArgentina2026-05-14Chapman, Ross E Esq NEW55Ivan Magalhaes
1016Morrow RutaRussia2026-04-19Feiner Bros UNQUALIFIED78Xuxue Feng
1017Silvio SlusarskiFrance2026-05-11Feiner Bros QUALIFIED95Ivan Magalhaes
1018Arvin AlbaresItaly2026-04-26King, Christopher A Esq QUALIFIED9Asiya Javayant
1019Jefferson SchemmerIndia2026-05-07Feltz Printing Service RENEWAL19Asiya Javayant
1020James ButtItaly2026-04-26Feiner Bros PROPOSAL75Elwin Sharvill
1021Jennifer AmigonArgentina2026-05-12Chanay, Jeffrey A Esq PROPOSAL51Asiya Javayant
1022Johnson SergiGermany2026-04-15Feltz Printing Service NEGOTIATION25Amy Elsner
1023Leon OldroydBrazil2026-04-15Feltz Printing Service QUALIFIED55Elwin Sharvill
1024Claire TollnerCanada2026-05-06King, Christopher A Esq QUALIFIED62Ivan Magalhaes
1025Chavez BriddickSpain2026-05-09Morlong Associates NEGOTIATION4Asiya Javayant
1026Morrow RutaCanada2026-04-28Commercial Press UNQUALIFIED2Elwin Sharvill
1027David DarakjyCanada2026-04-30Benton, John B Jr UNQUALIFIED0Onyama Limba
1028Jones VocelkaUnited Kingdom2026-05-11Commercial Press PROPOSAL15Ivan Magalhaes
1029Arvin AlbaresIndia2026-05-11Buckley Miller Wright NEGOTIATION67Ivan Magalhaes
1030Jennifer AmigonFrance2026-04-16Buckley Miller Wright RENEWAL31Elwin Sharvill
1031Sinclair WaycottIndia2026-04-19Printing Dimensions NEGOTIATION72Stephen Shaw
1032Mayumi KolmetzGermany2026-04-21Benton, John B Jr NEGOTIATION38Elwin Sharvill
1033Greenwood BologniaIndia2026-05-01Buckley Miller Wright UNQUALIFIED67Asiya Javayant
1034Murillo MaletUnited Kingdom2026-04-29Feltz Printing Service UNQUALIFIED36Onyama Limba
1035Misaki RoysterJapan2026-05-10Morlong Associates NEGOTIATION26Ivan Magalhaes
1036Faith GillianSpain2026-04-16Feiner Bros NEGOTIATION36Onyama Limba
1037Jeanfrancois VenereItaly2026-05-07Printing Dimensions RENEWAL65Bernardo Dominic
1038Isabel BowleySpain2026-05-09Dorl, James J Esq UNQUALIFIED26Onyama Limba
1039Deepesh ChuiJapan2026-05-10Feltz Printing Service QUALIFIED28Ivan Magalhaes
1040David DarakjyIndia2026-05-09Benton, John B Jr UNQUALIFIED71Bernardo Dominic
1041Maisha RulapaughIndia2026-04-16Buckley Miller Wright NEGOTIATION26Xuxue Feng
1042Kaitlin OstroskyBrazil2026-05-04Rangoni Of Florence NEGOTIATION71Stephen Shaw
1043Octavia MaletCanada2026-05-07King, Christopher A Esq UNQUALIFIED30Bernardo Dominic
1044Antonio CaudyBrazil2026-04-30Morlong Associates NEW36Bernardo Dominic
1045Costa DilliardJapan2026-04-19Feltz Printing Service RENEWAL31Onyama Limba
1046Aruna FigeroaSpain2026-05-09Chanay, Jeffrey A Esq NEW70Asiya Javayant
1047Aika InouyeSpain2026-05-04Rangoni Of Florence RENEWAL93Ivan Magalhaes
1048Jeanfrancois VenereCanada2026-05-13Feltz Printing Service RENEWAL65Anna Fali
1049Stacey MacleadAustralia2026-04-18Printing Dimensions NEW55Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaUnited KingdomAmy Elsner NEGOTIATION
Leja CaldareraIndiaBernardo Dominic PROPOSAL
Murillo MaletUnited KingdomAmy Elsner UNQUALIFIED
Tony FollerSpainBernardo Dominic QUALIFIED
Emily WhobreyUnited KingdomAnna Fali PROPOSAL
Octavia MaletBrazilAnna Fali NEGOTIATION
Mujtaba NickaItalyIvan Magalhaes QUALIFIED
Maria MarrierIndiaBernardo Dominic NEW
Johnson SergiJapanAnna Fali QUALIFIED
Aditya KuskoJapanAsiya Javayant NEGOTIATION
Arvin AlbaresUnited KingdomAnna Fali NEW
Aditya KuskoCanadaElwin Sharvill NEGOTIATION
Alejandro PerinAustraliaIvan Magalhaes UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes PROPOSAL
Leon OldroydRussiaAnna Fali NEW
Alejandro PerinCanadaAnna Fali QUALIFIED
Alejandro PerinItalyElwin Sharvill NEW
Izzy GarufiUnited KingdomAmy Elsner NEW
Munro FerenczItalyOnyama Limba RENEWAL
Nicolas IturbideIndiaIoni Bowcher NEGOTIATION
Leja CaldareraCanadaBernardo Dominic QUALIFIED
Ivar PaprockiIndiaIvan Magalhaes NEGOTIATION
Maisha RulapaughUnited KingdomIoni Bowcher QUALIFIED
Tony FollerBrazilBernardo Dominic UNQUALIFIED
Greenwood BologniaUnited KingdomOnyama Limba NEW
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw QUALIFIED
Ashley DoeIndiaAmy Elsner QUALIFIED
Ashley DoeBrazilAnna Fali RENEWAL
Juan WieserSpainElwin Sharvill UNQUALIFIED
Ashley DoeBrazilBernardo Dominic RENEWAL
Juan WieserRussiaAmy Elsner NEGOTIATION
Misaki RoysterFranceXuxue Feng RENEWAL
Murillo MaletAustraliaElwin Sharvill UNQUALIFIED
Mujtaba NickaCanadaOnyama Limba NEGOTIATION
Isabel BowleyItalyAsiya Javayant UNQUALIFIED
Tony FollerJapanElwin Sharvill UNQUALIFIED
Munro FerenczItalyBernardo Dominic UNQUALIFIED
Antonio CaudyIndiaAsiya Javayant UNQUALIFIED
Isabel BowleyJapanStephen Shaw QUALIFIED
Darci PoquetteIndiaAnna Fali PROPOSAL
Arvin AlbaresCanadaAsiya Javayant NEW
Greenwood BologniaItalyIoni Bowcher RENEWAL
Octavia MaletSpainElwin Sharvill RENEWAL
Mujtaba NickaArgentinaAsiya Javayant RENEWAL
Salvatore StockhamRussiaIvan Magalhaes UNQUALIFIED
Chavez BriddickSpainIvan Magalhaes RENEWAL
Leja CaldareraGermanyAmy Elsner NEGOTIATION
Smith GlickCanadaElwin Sharvill NEW
Jennifer AmigonCanadaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Arvin Albares
Smith Glick
Mayumi Kolmetz
Mujtaba Nicka
Salvatore Stockham
Murillo Malet
Clifford Rim
Ricardo Gaucho
Jefferson Schemmer
Aika Inouye
Silvio Slusarski
Aditya Kusko
Izzy Garufi
Darci Poquette
Arvin Albares
Maria Marrier
Kadeem Flosi
Chavez Briddick
Emily Whobrey
Murillo Malet
Deepesh Chui
Aditya Kusko
Salvatore Stockham
Aditya Kusko
Maisha Rulapaugh
Jennifer Amigon
Kadeem Flosi
Aika Inouye
Leon Oldroyd
Ashley Doe
Kaitlin Ostrosky
Jennifer Amigon
Aditya Kusko
Smith Glick
David Darakjy
Murillo Malet
Leja Caldarera
Izzy Garufi
Stacey Maclead
Darci Poquette
Silvio Slusarski
Kadeem Flosi
Nicolas Iturbide
Morrow Ruta
Munro Ferencz
Silvio Slusarski
Leon Oldroyd
Aruna Figeroa
David Darakjy
Jones Vocelka
IdCountryDate
1000Russia2026-05-10
1001Canada2026-05-09
1002Argentina2026-04-19
1003Canada2026-05-13
1004Italy2026-04-28
1005Brazil2026-04-29
1006Australia2026-05-04
1007Japan2026-04-17
1008Brazil2026-04-18
1009Brazil2026-04-26
1010India2026-04-29
1011Germany2026-04-20
1012Spain2026-04-19
1013Japan2026-04-16
1014Australia2026-05-10
1015Germany2026-05-12
1016Spain2026-04-23
1017Argentina2026-05-01
1018Canada2026-05-10
1019Japan2026-04-18
1020Brazil2026-05-01
1021United Kingdom2026-04-27
1022Argentina2026-04-25
1023Spain2026-05-01
1024France2026-04-22
1025France2026-04-16
1026France2026-05-09
1027United Kingdom2026-05-11
1028Germany2026-04-22
1029Argentina2026-04-27
1030France2026-05-09
1031Canada2026-04-15
1032India2026-04-30
1033Germany2026-04-17
1034Japan2026-05-07
1035Italy2026-05-07
1036India2026-05-12
1037Canada2026-05-14
1038Brazil2026-05-08
1039Argentina2026-05-10
1040Spain2026-04-22
1041India2026-05-01
1042Japan2026-04-25
1043Italy2026-04-30
1044France2026-04-30
1045France2026-05-03
1046Russia2026-04-25
1047Australia2026-05-10
1048Canada2026-04-18
1049Japan2026-04-20

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Russia2026-05-04
Julie Stenseth1001United Kingdom2026-04-24
Rodrigues Campain1002United Kingdom2026-04-27
Leja Caldarera1003Russia2026-04-17
Morrow Ruta1004Russia2026-05-04
Darci Poquette1005Australia2026-05-14
Jefferson Schemmer1006Italy2026-04-27
Salvatore Stockham1007France2026-04-23
Clifford Rim1008Brazil2026-05-05
Deepesh Chui1009France2026-04-28
Nicolas Iturbide1010India2026-05-11
Ashley Doe1011Argentina2026-05-14
Kaitlin Ostrosky1012Japan2026-04-15
Aika Inouye1013Japan2026-05-09
Wickens Nestle1014Russia2026-05-03
Smith Glick1015India2026-05-11
Leja Caldarera1016Japan2026-04-15
Claire Tollner1017Spain2026-05-04
Kaitlin Ostrosky1018United Kingdom2026-04-26
Leon Oldroyd1019United Kingdom2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiFranceAsiya Javayant RENEWAL
Chavez BriddickAustraliaStephen Shaw NEGOTIATION
Ivar PaprockiBrazilAmy Elsner QUALIFIED
Jefferson SchemmerGermanyXuxue Feng UNQUALIFIED
Salvatore StockhamBrazilStephen Shaw UNQUALIFIED
Mujtaba NickaGermanyAnna Fali NEGOTIATION
Aruna FigeroaSpainIvan Magalhaes UNQUALIFIED
Costa DilliardItalyOnyama Limba RENEWAL
Izzy GarufiItalyElwin Sharvill UNQUALIFIED
Mujtaba NickaRussiaOnyama Limba RENEWAL
Deepesh ChuiBrazilAnna Fali UNQUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes NEGOTIATION
Murillo MaletFranceAnna Fali RENEWAL
Aditya KuskoRussiaOnyama Limba NEW
Izzy GarufiBrazilIoni Bowcher RENEWAL
Misaki RoysterUnited KingdomStephen Shaw NEW
Stacey MacleadSpainIvan Magalhaes UNQUALIFIED
Ivar PaprockiJapanStephen Shaw NEW
Isabel BowleyRussiaBernardo Dominic PROPOSAL
Rodrigues CampainFranceAsiya Javayant QUALIFIED
Jones VocelkaIndiaIoni Bowcher QUALIFIED
Adams MorascaSpainIvan Magalhaes RENEWAL
Juan WieserArgentinaXuxue Feng QUALIFIED
Aika InouyeSpainIvan Magalhaes QUALIFIED
Adams MorascaBrazilOnyama Limba NEGOTIATION
Salvatore StockhamFranceXuxue Feng PROPOSAL
Misaki RoysterGermanyAnna Fali UNQUALIFIED
David DarakjyCanadaStephen Shaw UNQUALIFIED
Tony FollerCanadaIvan Magalhaes PROPOSAL
Leon OldroydBrazilIoni Bowcher NEGOTIATION
Adams MorascaUnited KingdomXuxue Feng QUALIFIED
Darci PoquetteRussiaIvan Magalhaes UNQUALIFIED
Leja CaldareraRussiaAsiya Javayant NEW
Rodrigues CampainIndiaAnna Fali NEGOTIATION
Alejandro PerinJapanAsiya Javayant QUALIFIED
Antonio CaudyCanadaAnna Fali PROPOSAL
Alejandro PerinBrazilOnyama Limba NEGOTIATION
Clifford RimIndiaAnna Fali UNQUALIFIED
Kadeem FlosiGermanyAnna Fali PROPOSAL
Emily WhobreySpainXuxue Feng QUALIFIED

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