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
Francesco ShinkoUnited KingdomBernardo Dominic NEW
Alejandro PerinRussiaIvan Magalhaes NEW
Jones VocelkaSpainBernardo Dominic RENEWAL
Alejandro PerinIndiaIvan Magalhaes NEW
Smith GlickRussiaXuxue Feng PROPOSAL
Chavez BriddickFranceAsiya Javayant PROPOSAL
Ricardo GauchoJapanElwin Sharvill PROPOSAL
Johnson SergiSpainAnna Fali NEGOTIATION
Mujtaba NickaFranceElwin Sharvill UNQUALIFIED
Morrow RutaUnited KingdomAmy Elsner RENEWAL
Jennifer AmigonSpainIvan Magalhaes NEW
Johnson SergiCanadaIvan Magalhaes RENEWAL
Ricardo GauchoGermanyXuxue Feng RENEWAL
Aruna FigeroaJapanAnna Fali QUALIFIED
Nicolas IturbideSpainAmy Elsner QUALIFIED
Wickens NestleRussiaElwin Sharvill PROPOSAL
David DarakjyBrazilAmy Elsner PROPOSAL
Mujtaba NickaUnited KingdomIoni Bowcher NEW
Maria MarrierArgentinaBernardo Dominic UNQUALIFIED
Aditya KuskoItalyOnyama Limba PROPOSAL
Arvin AlbaresSpainAsiya Javayant PROPOSAL
Aika InouyeAustraliaBernardo Dominic PROPOSAL
Morrow RutaRussiaXuxue Feng NEGOTIATION
Darci PoquetteJapanIoni Bowcher RENEWAL
Rodrigues CampainGermanyStephen Shaw NEW
Jeanfrancois VenereIndiaXuxue Feng NEGOTIATION
Chavez BriddickRussiaIvan Magalhaes UNQUALIFIED
Izzy GarufiItalyBernardo Dominic RENEWAL
Nicolas IturbideJapanIvan Magalhaes QUALIFIED
Kadeem FlosiItalyAnna Fali UNQUALIFIED
David DarakjyIndiaAsiya Javayant NEW
Johnson SergiJapanAsiya Javayant RENEWAL
Maisha RulapaughRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Smith GlickFranceAnna Fali UNQUALIFIED
Aditya KuskoAustraliaIoni Bowcher PROPOSAL
Greenwood BologniaSpainAnna Fali PROPOSAL
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Smith GlickBrazilAnna Fali UNQUALIFIED
Maisha RulapaughRussiaElwin Sharvill RENEWAL
Ashley DoeJapanXuxue Feng PROPOSAL
Kaitlin OstroskyGermanyOnyama Limba PROPOSAL
Jeanfrancois VenereGermanyAnna Fali PROPOSAL
Faith GillianSpainOnyama Limba NEW
Mujtaba NickaRussiaAsiya Javayant PROPOSAL
Rodrigues CampainSpainAsiya Javayant QUALIFIED
Tony FollerJapanAmy Elsner RENEWAL
Emily WhobreyRussiaAmy Elsner NEW
Jeanfrancois VenereFranceElwin Sharvill RENEWAL
Rodrigues CampainArgentinaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardSpainAsiya Javayant QUALIFIED
Greenwood BologniaCanadaOnyama Limba QUALIFIED
Arvin AlbaresSpainAnna Fali NEW
Kadeem FlosiAustraliaAsiya Javayant NEGOTIATION
James ButtArgentinaIvan Magalhaes RENEWAL
David DarakjyIndiaXuxue Feng QUALIFIED
Alejandro PerinBrazilStephen Shaw QUALIFIED
Smith GlickUnited KingdomIvan Magalhaes RENEWAL
Ivar PaprockiIndiaIoni Bowcher NEGOTIATION
Francesco ShinkoCanadaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonAustralia2026-06-04Chanay, Jeffrey A Esq PROPOSAL83Onyama Limba
1001Wickens NestleRussia2026-05-24Chanay, Jeffrey A Esq PROPOSAL10Xuxue Feng
1002Misaki RoysterSpain2026-05-15Commercial Press NEW63Ivan Magalhaes
1003Leja CaldareraBrazil2026-05-23Rangoni Of Florence QUALIFIED58Bernardo Dominic
1004Sinclair WaycottUnited Kingdom2026-06-02Dorl, James J Esq NEW28Ivan Magalhaes
1005Jeanfrancois VenereUnited Kingdom2026-05-07Truhlar And Truhlar Attys QUALIFIED58Ivan Magalhaes
1006Munro FerenczCanada2026-05-24Commercial Press PROPOSAL18Bernardo Dominic
1007Claire TollnerSpain2026-05-17Chapman, Ross E Esq NEGOTIATION93Anna Fali
1008Sinclair WaycottJapan2026-05-20Buckley Miller Wright PROPOSAL90Ivan Magalhaes
1009Izzy GarufiGermany2026-06-02King, Christopher A Esq RENEWAL27Elwin Sharvill
1010Aika InouyeGermany2026-05-27Printing Dimensions PROPOSAL84Stephen Shaw
1011Aika InouyeAustralia2026-05-28Chemel, James L Cpa QUALIFIED18Xuxue Feng
1012Ashley DoeFrance2026-05-09Chemel, James L Cpa NEW63Elwin Sharvill
1013Rodrigues CampainIndia2026-05-09Rangoni Of Florence PROPOSAL86Anna Fali
1014Arvin AlbaresItaly2026-05-09Morlong Associates PROPOSAL96Asiya Javayant
1015Rodrigues CampainItaly2026-05-27Dorl, James J Esq QUALIFIED20Asiya Javayant
1016Costa DilliardFrance2026-05-11Morlong Associates QUALIFIED14Ivan Magalhaes
1017Ivar PaprockiGermany2026-05-09Benton, John B Jr PROPOSAL31Anna Fali
1018Leja CaldareraIndia2026-06-03Commercial Press UNQUALIFIED62Elwin Sharvill
1019Alejandro PerinBrazil2026-05-11Printing Dimensions QUALIFIED49Asiya Javayant
1020Sinclair WaycottJapan2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED3Anna Fali
1021Misaki RoysterSpain2026-05-20Buckley Miller Wright NEW42Ioni Bowcher
1022Ivar PaprockiRussia2026-05-14Chanay, Jeffrey A Esq NEGOTIATION71Anna Fali
1023Salvatore StockhamGermany2026-05-19Chapman, Ross E Esq QUALIFIED59Asiya Javayant
1024Chavez BriddickFrance2026-05-10Printing Dimensions PROPOSAL47Ivan Magalhaes
1025Greenwood BologniaUnited Kingdom2026-05-14Feltz Printing Service RENEWAL35Amy Elsner
1026Aditya KuskoJapan2026-05-26Commercial Press UNQUALIFIED5Stephen Shaw
1027Juan WieserGermany2026-05-07Morlong Associates NEW4Anna Fali
1028Alejandro PerinFrance2026-05-23Morlong Associates UNQUALIFIED12Bernardo Dominic
1029Greenwood BologniaCanada2026-05-28Chanay, Jeffrey A Esq NEW80Xuxue Feng
1030Maria MarrierGermany2026-05-10King, Christopher A Esq NEGOTIATION46Asiya Javayant
1031Ricardo GauchoAustralia2026-05-11Buckley Miller Wright RENEWAL8Xuxue Feng
1032Alejandro PerinIndia2026-05-14Chanay, Jeffrey A Esq PROPOSAL34Ioni Bowcher
1033Jennifer AmigonBrazil2026-05-11Commercial Press NEW30Stephen Shaw
1034Salvatore StockhamGermany2026-05-08Feiner Bros NEW74Ioni Bowcher
1035Johnson SergiIndia2026-05-18Feiner Bros NEGOTIATION11Bernardo Dominic
1036Jones VocelkaFrance2026-05-18Feiner Bros NEW94Onyama Limba
1037Murillo MaletJapan2026-05-31Rangoni Of Florence PROPOSAL79Xuxue Feng
1038Rodrigues CampainCanada2026-05-30King, Christopher A Esq NEW68Ivan Magalhaes
1039Jeanfrancois VenereItaly2026-05-25Benton, John B Jr RENEWAL67Bernardo Dominic
1040Alejandro PerinRussia2026-05-27Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1041Izzy GarufiFrance2026-05-20Buckley Miller Wright PROPOSAL38Bernardo Dominic
1042Mujtaba NickaCanada2026-06-03Feltz Printing Service QUALIFIED60Xuxue Feng
1043Ashley DoeJapan2026-05-13Chemel, James L Cpa NEGOTIATION62Stephen Shaw
1044Alejandro PerinItaly2026-05-26Feltz Printing Service RENEWAL58Xuxue Feng
1045Octavia MaletBrazil2026-05-29Feltz Printing Service NEW80Anna Fali
1046Tony FollerGermany2026-05-09Chanay, Jeffrey A Esq RENEWAL90Xuxue Feng
1047Antonio CaudyIndia2026-06-03Rousseaux, Michael Esq UNQUALIFIED15Ioni Bowcher
1048Nicolas IturbideAustralia2026-05-14Chanay, Jeffrey A Esq RENEWAL2Xuxue Feng
1049Salvatore StockhamRussia2026-05-24Rousseaux, Michael Esq RENEWAL92Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie StensethBrazilStephen Shaw UNQUALIFIED
Rodrigues CampainUnited KingdomElwin Sharvill NEW
Rodrigues CampainSpainOnyama Limba NEW
Munro FerenczFranceIoni Bowcher UNQUALIFIED
Jennifer AmigonFranceIoni Bowcher NEGOTIATION
Chavez BriddickCanadaAnna Fali NEGOTIATION
Faith GillianGermanyXuxue Feng RENEWAL
Clifford RimBrazilOnyama Limba PROPOSAL
Emily WhobreyBrazilIvan Magalhaes NEGOTIATION
Smith GlickCanadaOnyama Limba NEW
Claire TollnerCanadaXuxue Feng NEGOTIATION
Aditya KuskoFranceElwin Sharvill NEW
Juan WieserCanadaAsiya Javayant NEGOTIATION
Jeanfrancois VenereAustraliaIvan Magalhaes NEW
Nicolas IturbideBrazilAnna Fali RENEWAL
Sinclair WaycottCanadaIvan Magalhaes UNQUALIFIED
Ricardo GauchoGermanyOnyama Limba UNQUALIFIED
Ricardo GauchoCanadaStephen Shaw NEW
Jeanfrancois VenereSpainAmy Elsner NEW
Kadeem FlosiCanadaBernardo Dominic PROPOSAL
Johnson SergiGermanyAnna Fali PROPOSAL
Leon OldroydBrazilXuxue Feng UNQUALIFIED
Leon OldroydSpainXuxue Feng QUALIFIED
Misaki RoysterArgentinaAsiya Javayant RENEWAL
Mujtaba NickaGermanyAnna Fali RENEWAL
Smith GlickAustraliaAnna Fali QUALIFIED
Ivar PaprockiFranceAnna Fali UNQUALIFIED
Jefferson SchemmerArgentinaIoni Bowcher QUALIFIED
James ButtItalyIvan Magalhaes NEGOTIATION
Mujtaba NickaIndiaStephen Shaw PROPOSAL
Salvatore StockhamBrazilStephen Shaw PROPOSAL
Clifford RimAustraliaXuxue Feng QUALIFIED
Leja CaldareraItalyElwin Sharvill RENEWAL
Munro FerenczFranceAnna Fali QUALIFIED
Aika InouyeCanadaBernardo Dominic NEGOTIATION
Aika InouyeIndiaAsiya Javayant UNQUALIFIED
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes PROPOSAL
Rodrigues CampainIndiaAnna Fali QUALIFIED
Aika InouyeJapanStephen Shaw UNQUALIFIED
Murillo MaletUnited KingdomBernardo Dominic QUALIFIED
Silvio SlusarskiIndiaStephen Shaw QUALIFIED
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Jeanfrancois VenereSpainElwin Sharvill UNQUALIFIED
Alejandro PerinArgentinaOnyama Limba PROPOSAL
Ashley DoeAustraliaBernardo Dominic RENEWAL
Munro FerenczRussiaOnyama Limba UNQUALIFIED
Jones VocelkaCanadaBernardo Dominic RENEWAL
Ivar PaprockiSpainXuxue Feng NEGOTIATION
Jeanfrancois VenereGermanyXuxue Feng RENEWAL
Frozen Columns
Name
Ricardo Gaucho
Greenwood Bolognia
Jeanfrancois Venere
Jefferson Schemmer
Smith Glick
Claire Tollner
Leon Oldroyd
Tony Foller
Aruna Figeroa
Arvin Albares
Leon Oldroyd
Morrow Ruta
Darci Poquette
Juan Wieser
Francesco Shinko
Mujtaba Nicka
Johnson Sergi
Jeanfrancois Venere
David Darakjy
Maisha Rulapaugh
Claire Tollner
David Darakjy
Kaitlin Ostrosky
Morrow Ruta
Tony Foller
Rodrigues Campain
Darci Poquette
Kaitlin Ostrosky
Mujtaba Nicka
Izzy Garufi
Misaki Royster
Julie Stenseth
Cody Saylors
Jones Vocelka
Antonio Caudy
Cody Saylors
Darci Poquette
Ricardo Gaucho
Costa Dilliard
Leon Oldroyd
Deepesh Chui
Chavez Briddick
Emily Whobrey
Kaitlin Ostrosky
Clifford Rim
Wickens Nestle
Silvio Slusarski
Arvin Albares
Aruna Figeroa
Izzy Garufi
IdCountryDate
1000Germany2026-06-02
1001Russia2026-05-09
1002Australia2026-06-02
1003Italy2026-05-13
1004Brazil2026-06-02
1005India2026-05-30
1006India2026-05-11
1007Argentina2026-05-16
1008Japan2026-05-23
1009United Kingdom2026-05-30
1010Italy2026-05-23
1011Russia2026-05-28
1012Italy2026-05-29
1013India2026-05-31
1014Germany2026-05-10
1015India2026-05-13
1016Germany2026-05-27
1017France2026-05-09
1018Germany2026-05-16
1019United Kingdom2026-05-31
1020Argentina2026-05-27
1021Argentina2026-06-01
1022Germany2026-05-12
1023Brazil2026-05-12
1024United Kingdom2026-05-08
1025United Kingdom2026-05-11
1026Canada2026-05-27
1027Canada2026-05-10
1028Australia2026-05-22
1029Germany2026-05-30
1030Australia2026-05-09
1031Russia2026-05-26
1032Spain2026-05-29
1033Spain2026-05-19
1034United Kingdom2026-05-09
1035Russia2026-05-11
1036Brazil2026-05-14
1037France2026-05-22
1038Germany2026-05-24
1039Russia2026-05-24
1040Italy2026-05-14
1041Italy2026-05-09
1042Germany2026-06-04
1043Canada2026-05-30
1044Japan2026-05-20
1045Russia2026-05-28
1046Argentina2026-05-14
1047Brazil2026-05-06
1048France2026-05-12
1049Japan2026-05-20

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Russia2026-05-16
Aika Inouye1001India2026-06-01
Maisha Rulapaugh1002India2026-05-27
Maisha Rulapaugh1003Brazil2026-05-18
Mayumi Kolmetz1004Italy2026-05-13
Silvio Slusarski1005Japan2026-06-03
Smith Glick1006Japan2026-05-19
Aruna Figeroa1007Argentina2026-06-03
Rodrigues Campain1008France2026-05-26
Clifford Rim1009Australia2026-06-03
Julie Stenseth1010Germany2026-05-08
Mujtaba Nicka1011Canada2026-05-28
Tony Foller1012Argentina2026-05-27
Julie Stenseth1013Japan2026-05-21
Jeanfrancois Venere1014Russia2026-05-22
Maisha Rulapaugh1015India2026-05-09
Isabel Bowley1016United Kingdom2026-05-16
Maisha Rulapaugh1017Italy2026-05-28
Silvio Slusarski1018Canada2026-05-25
Tony Foller1019Argentina2026-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiItalyOnyama Limba UNQUALIFIED
Leja CaldareraRussiaIoni Bowcher RENEWAL
Ivar PaprockiUnited KingdomIoni Bowcher PROPOSAL
Maria MarrierCanadaAmy Elsner UNQUALIFIED
Rodrigues CampainUnited KingdomAnna Fali QUALIFIED
Emily WhobreyJapanIoni Bowcher RENEWAL
Jeanfrancois VenereCanadaXuxue Feng PROPOSAL
Sinclair WaycottRussiaXuxue Feng NEW
Salvatore StockhamCanadaAnna Fali RENEWAL
James ButtGermanyIvan Magalhaes QUALIFIED
Aruna FigeroaIndiaStephen Shaw PROPOSAL
David DarakjyRussiaAmy Elsner PROPOSAL
Chavez BriddickBrazilIvan Magalhaes PROPOSAL
Kaitlin OstroskyBrazilIoni Bowcher UNQUALIFIED
Julie StensethArgentinaIoni Bowcher QUALIFIED
Jones VocelkaSpainElwin Sharvill QUALIFIED
Octavia MaletCanadaAmy Elsner UNQUALIFIED
Jefferson SchemmerGermanyXuxue Feng NEGOTIATION
Ashley DoeUnited KingdomIvan Magalhaes QUALIFIED
Jennifer AmigonRussiaAsiya Javayant PROPOSAL
Smith GlickGermanyBernardo Dominic RENEWAL
Chavez BriddickRussiaElwin Sharvill QUALIFIED
Rodrigues CampainSpainBernardo Dominic UNQUALIFIED
Maria MarrierSpainAsiya Javayant QUALIFIED
Aika InouyeGermanyIoni Bowcher RENEWAL
Greenwood BologniaUnited KingdomIvan Magalhaes PROPOSAL
Arvin AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Francesco ShinkoGermanyAmy Elsner UNQUALIFIED
Darci PoquetteSpainAmy Elsner PROPOSAL
Morrow RutaGermanyElwin Sharvill PROPOSAL
Leon OldroydAustraliaAsiya Javayant QUALIFIED
Ricardo GauchoAustraliaStephen Shaw UNQUALIFIED
Mujtaba NickaJapanOnyama Limba QUALIFIED
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Jones VocelkaIndiaOnyama Limba QUALIFIED
Izzy GarufiRussiaAsiya Javayant RENEWAL
Jeanfrancois VenereJapanBernardo Dominic QUALIFIED
Kadeem FlosiRussiaIoni Bowcher NEGOTIATION
Jefferson SchemmerItalyAnna Fali NEW
Juan WieserUnited KingdomIvan Magalhaes 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>