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
Munro FerenczSpainIvan Magalhaes RENEWAL
Darci PoquetteBrazilStephen Shaw PROPOSAL
Ashley DoeUnited KingdomOnyama Limba QUALIFIED
Maria MarrierJapanOnyama Limba NEGOTIATION
Munro FerenczJapanXuxue Feng NEGOTIATION
Stacey MacleadAustraliaIvan Magalhaes NEW
Smith GlickFranceIoni Bowcher UNQUALIFIED
Jefferson SchemmerSpainBernardo Dominic NEW
Deepesh ChuiUnited KingdomXuxue Feng PROPOSAL
James ButtFranceBernardo Dominic NEGOTIATION
Cody SaylorsIndiaBernardo Dominic NEGOTIATION
Adams MorascaIndiaAsiya Javayant NEW
Murillo MaletUnited KingdomStephen Shaw PROPOSAL
Jennifer AmigonAustraliaAsiya Javayant QUALIFIED
Julie StensethBrazilIoni Bowcher NEW
Izzy GarufiFranceAmy Elsner RENEWAL
Aditya KuskoSpainAsiya Javayant QUALIFIED
Murillo MaletAustraliaAnna Fali QUALIFIED
Salvatore StockhamCanadaOnyama Limba QUALIFIED
Jones VocelkaAustraliaStephen Shaw NEW
Sinclair WaycottIndiaAsiya Javayant QUALIFIED
James ButtUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin OstroskySpainBernardo Dominic RENEWAL
Salvatore StockhamCanadaAmy Elsner PROPOSAL
Sinclair WaycottUnited KingdomAnna Fali NEW
Kaitlin OstroskyArgentinaAsiya Javayant NEW
Octavia MaletJapanXuxue Feng NEGOTIATION
Ivar PaprockiIndiaXuxue Feng UNQUALIFIED
Salvatore StockhamIndiaXuxue Feng NEGOTIATION
Murillo MaletRussiaAnna Fali QUALIFIED
Clifford RimIndiaAsiya Javayant PROPOSAL
James ButtAustraliaBernardo Dominic NEW
Clifford RimIndiaStephen Shaw RENEWAL
Alejandro PerinIndiaIoni Bowcher NEGOTIATION
Tony FollerUnited KingdomElwin Sharvill RENEWAL
Juan WieserCanadaOnyama Limba UNQUALIFIED
Jennifer AmigonIndiaXuxue Feng UNQUALIFIED
Juan WieserCanadaAsiya Javayant UNQUALIFIED
Emily WhobreyAustraliaAsiya Javayant PROPOSAL
Misaki RoysterArgentinaIoni Bowcher UNQUALIFIED
David DarakjyIndiaAmy Elsner QUALIFIED
Stacey MacleadItalyIvan Magalhaes NEW
Chavez BriddickJapanXuxue Feng NEW
Nicolas IturbideIndiaAmy Elsner RENEWAL
Clifford RimGermanyBernardo Dominic RENEWAL
Misaki RoysterCanadaAnna Fali QUALIFIED
Julie StensethArgentinaStephen Shaw PROPOSAL
Mujtaba NickaAustraliaAmy Elsner RENEWAL
Isabel BowleyUnited KingdomStephen Shaw NEW
Deepesh ChuiIndiaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteJapanAmy Elsner RENEWAL
James ButtFranceBernardo Dominic RENEWAL
Morrow RutaIndiaAnna Fali RENEWAL
Adams MorascaIndiaAnna Fali RENEWAL
Deepesh ChuiGermanyElwin Sharvill NEW
Mayumi KolmetzSpainIvan Magalhaes PROPOSAL
Sinclair WaycottGermanyOnyama Limba PROPOSAL
Morrow RutaItalyIvan Magalhaes QUALIFIED
Nicolas IturbideItalyIvan Magalhaes NEW
Ashley DoeBrazilOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoGermany2026-05-11Chemel, James L Cpa PROPOSAL25Asiya Javayant
1001Izzy GarufiArgentina2026-05-14Buckley Miller Wright QUALIFIED33Onyama Limba
1002Isabel BowleyIndia2026-05-20Benton, John B Jr QUALIFIED6Amy Elsner
1003Johnson SergiUnited Kingdom2026-05-25Printing Dimensions NEGOTIATION85Ivan Magalhaes
1004Kaitlin OstroskyCanada2026-05-07Feltz Printing Service NEW49Anna Fali
1005Murillo MaletRussia2026-05-03Feiner Bros PROPOSAL60Asiya Javayant
1006Aditya KuskoRussia2026-05-22Chapman, Ross E Esq UNQUALIFIED92Elwin Sharvill
1007Jones VocelkaIndia2026-05-07Dorl, James J Esq UNQUALIFIED96Onyama Limba
1008Julie StensethBrazil2026-05-04Chanay, Jeffrey A Esq NEW88Amy Elsner
1009Kaitlin OstroskyUnited Kingdom2026-05-07Chemel, James L Cpa NEW25Asiya Javayant
1010Rodrigues CampainArgentina2026-05-20Benton, John B Jr QUALIFIED34Stephen Shaw
1011Antonio CaudyUnited Kingdom2026-05-13Rousseaux, Michael Esq PROPOSAL54Elwin Sharvill
1012Julie StensethAustralia2026-05-10Buckley Miller Wright UNQUALIFIED85Ivan Magalhaes
1013Rodrigues CampainItaly2026-05-04Feiner Bros NEW66Xuxue Feng
1014Adams MorascaCanada2026-05-21Rangoni Of Florence NEGOTIATION26Anna Fali
1015Mujtaba NickaAustralia2026-05-04Rousseaux, Michael Esq PROPOSAL75Bernardo Dominic
1016Darci PoquetteItaly2026-05-19Rousseaux, Michael Esq NEW50Ioni Bowcher
1017Ivar PaprockiCanada2026-05-12Chapman, Ross E Esq RENEWAL66Amy Elsner
1018Francesco ShinkoItaly2026-05-26Morlong Associates NEGOTIATION91Anna Fali
1019Greenwood BologniaAustralia2026-05-18Printing Dimensions RENEWAL96Xuxue Feng
1020Jennifer AmigonAustralia2026-05-03Chapman, Ross E Esq NEGOTIATION65Stephen Shaw
1021Octavia MaletGermany2026-05-16Truhlar And Truhlar Attys RENEWAL0Asiya Javayant
1022Juan WieserBrazil2026-05-08King, Christopher A Esq NEW32Amy Elsner
1023Aika InouyeJapan2026-05-17Chanay, Jeffrey A Esq PROPOSAL48Ivan Magalhaes
1024Munro FerenczGermany2026-05-19Morlong Associates UNQUALIFIED38Amy Elsner
1025Rodrigues CampainFrance2026-05-12Chanay, Jeffrey A Esq NEGOTIATION98Ioni Bowcher
1026Kaitlin OstroskyArgentina2026-05-29Feiner Bros QUALIFIED89Bernardo Dominic
1027Adams MorascaCanada2026-05-04Rousseaux, Michael Esq RENEWAL32Anna Fali
1028Francesco ShinkoCanada2026-05-29Truhlar And Truhlar Attys NEW81Ivan Magalhaes
1029Nicolas IturbideIndia2026-05-30Chanay, Jeffrey A Esq PROPOSAL66Asiya Javayant
1030Nicolas IturbideSpain2026-05-08Commercial Press NEGOTIATION99Ioni Bowcher
1031Antonio CaudyBrazil2026-05-17Morlong Associates QUALIFIED95Onyama Limba
1032Mayumi KolmetzAustralia2026-05-10Dorl, James J Esq UNQUALIFIED61Amy Elsner
1033Johnson SergiCanada2026-05-14Truhlar And Truhlar Attys PROPOSAL7Ioni Bowcher
1034Octavia MaletItaly2026-05-18Commercial Press NEW11Amy Elsner
1035Salvatore StockhamItaly2026-05-09Printing Dimensions NEGOTIATION15Xuxue Feng
1036Maisha RulapaughItaly2026-05-30Chanay, Jeffrey A Esq NEGOTIATION23Asiya Javayant
1037Jefferson SchemmerCanada2026-05-02Chemel, James L Cpa RENEWAL9Elwin Sharvill
1038Aruna FigeroaRussia2026-05-30Commercial Press PROPOSAL29Anna Fali
1039Murillo MaletAustralia2026-05-30Feiner Bros RENEWAL55Amy Elsner
1040Greenwood BologniaJapan2026-05-23Buckley Miller Wright RENEWAL13Ioni Bowcher
1041Silvio SlusarskiBrazil2026-05-16Chapman, Ross E Esq UNQUALIFIED47Ioni Bowcher
1042Darci PoquetteItaly2026-05-16Chemel, James L Cpa UNQUALIFIED77Ivan Magalhaes
1043Kadeem FlosiArgentina2026-05-10Chemel, James L Cpa PROPOSAL96Elwin Sharvill
1044Jeanfrancois VenereArgentina2026-05-12Commercial Press UNQUALIFIED20Stephen Shaw
1045Murillo MaletJapan2026-05-12Buckley Miller Wright PROPOSAL11Xuxue Feng
1046David DarakjyItaly2026-05-28Rousseaux, Michael Esq NEGOTIATION13Anna Fali
1047Ivar PaprockiGermany2026-05-03Morlong Associates NEGOTIATION0Amy Elsner
1048Sinclair WaycottAustralia2026-05-21Commercial Press QUALIFIED48Amy Elsner
1049Deepesh ChuiUnited Kingdom2026-05-07Commercial Press PROPOSAL95Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickArgentinaElwin Sharvill NEW
Antonio CaudySpainAnna Fali NEW
Juan WieserGermanyIoni Bowcher PROPOSAL
Costa DilliardIndiaAnna Fali NEGOTIATION
Munro FerenczGermanyOnyama Limba QUALIFIED
Faith GillianFranceAmy Elsner NEW
Stacey MacleadSpainBernardo Dominic NEGOTIATION
Maria MarrierIndiaIoni Bowcher NEW
Claire TollnerSpainStephen Shaw PROPOSAL
Rodrigues CampainCanadaAsiya Javayant UNQUALIFIED
Maria MarrierFranceElwin Sharvill PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher PROPOSAL
Leon OldroydAustraliaAnna Fali QUALIFIED
Clifford RimAustraliaIoni Bowcher PROPOSAL
Leja CaldareraIndiaAsiya Javayant NEGOTIATION
Adams MorascaGermanyBernardo Dominic QUALIFIED
Maisha RulapaughItalyAnna Fali UNQUALIFIED
Leon OldroydIndiaIvan Magalhaes QUALIFIED
Aika InouyeArgentinaOnyama Limba NEW
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Jennifer AmigonGermanyBernardo Dominic QUALIFIED
Smith GlickGermanyBernardo Dominic PROPOSAL
James ButtCanadaAmy Elsner PROPOSAL
Antonio CaudyUnited KingdomXuxue Feng PROPOSAL
Francesco ShinkoIndiaIoni Bowcher UNQUALIFIED
Isabel BowleyGermanyAsiya Javayant NEW
Jennifer AmigonAustraliaBernardo Dominic PROPOSAL
Costa DilliardCanadaStephen Shaw PROPOSAL
Kaitlin OstroskyIndiaIvan Magalhaes UNQUALIFIED
Adams MorascaArgentinaElwin Sharvill UNQUALIFIED
Jennifer AmigonArgentinaIoni Bowcher NEW
Munro FerenczBrazilOnyama Limba NEW
Chavez BriddickArgentinaBernardo Dominic QUALIFIED
Maisha RulapaughCanadaAnna Fali PROPOSAL
Kadeem FlosiUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois VenereIndiaStephen Shaw NEW
Clifford RimFranceXuxue Feng RENEWAL
Misaki RoysterCanadaIvan Magalhaes UNQUALIFIED
Julie StensethArgentinaElwin Sharvill NEGOTIATION
Isabel BowleySpainStephen Shaw NEGOTIATION
Stacey MacleadBrazilElwin Sharvill UNQUALIFIED
Maisha RulapaughRussiaElwin Sharvill NEW
Isabel BowleyJapanAsiya Javayant PROPOSAL
Leon OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Munro FerenczAustraliaStephen Shaw PROPOSAL
James ButtRussiaStephen Shaw NEGOTIATION
Aditya KuskoCanadaOnyama Limba NEGOTIATION
Kaitlin OstroskyGermanyOnyama Limba NEW
Jefferson SchemmerRussiaIvan Magalhaes UNQUALIFIED
Tony FollerSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
David Darakjy
Morrow Ruta
Misaki Royster
Johnson Sergi
Jefferson Schemmer
Murillo Malet
Claire Tollner
Costa Dilliard
Munro Ferencz
Johnson Sergi
Salvatore Stockham
Deepesh Chui
Julie Stenseth
Mujtaba Nicka
Stacey Maclead
Nicolas Iturbide
Chavez Briddick
Wickens Nestle
David Darakjy
Costa Dilliard
Wickens Nestle
Aditya Kusko
Aditya Kusko
Cody Saylors
Emily Whobrey
Aika Inouye
Emily Whobrey
Clifford Rim
Julie Stenseth
Cody Saylors
Wickens Nestle
Claire Tollner
Mujtaba Nicka
Chavez Briddick
Salvatore Stockham
Francesco Shinko
Claire Tollner
Octavia Malet
Aruna Figeroa
Deepesh Chui
Kaitlin Ostrosky
Wickens Nestle
Leja Caldarera
Ivar Paprocki
Morrow Ruta
Mujtaba Nicka
Ashley Doe
Misaki Royster
Claire Tollner
Faith Gillian
IdCountryDate
1000India2026-05-26
1001Russia2026-05-21
1002Spain2026-05-12
1003Australia2026-05-26
1004Australia2026-05-21
1005Spain2026-05-25
1006Germany2026-05-11
1007Germany2026-05-19
1008Italy2026-05-10
1009France2026-05-06
1010Spain2026-05-17
1011Spain2026-05-12
1012Argentina2026-05-25
1013Italy2026-05-09
1014Japan2026-05-19
1015Brazil2026-05-08
1016United Kingdom2026-05-24
1017Italy2026-05-08
1018Japan2026-05-08
1019Japan2026-05-11
1020Australia2026-05-19
1021Argentina2026-05-30
1022Germany2026-05-11
1023Australia2026-05-10
1024Japan2026-05-23
1025Argentina2026-05-16
1026India2026-05-13
1027Japan2026-05-21
1028France2026-05-02
1029India2026-05-24
1030Spain2026-05-30
1031Canada2026-05-24
1032Russia2026-05-11
1033Japan2026-05-16
1034Argentina2026-05-05
1035Italy2026-05-19
1036Brazil2026-05-20
1037Japan2026-05-24
1038Argentina2026-05-23
1039Russia2026-05-23
1040Spain2026-05-10
1041Russia2026-05-17
1042France2026-05-22
1043India2026-05-20
1044Germany2026-05-15
1045Spain2026-05-14
1046Brazil2026-05-10
1047Brazil2026-05-11
1048Italy2026-05-15
1049Brazil2026-05-29

On-Demand Data

NameIdCountryDate
Misaki Royster1000Japan2026-05-08
Murillo Malet1001Australia2026-05-18
Izzy Garufi1002Canada2026-05-27
Jennifer Amigon1003Brazil2026-05-01
Maisha Rulapaugh1004Germany2026-05-11
Nicolas Iturbide1005Spain2026-05-20
Isabel Bowley1006Canada2026-05-03
Costa Dilliard1007United Kingdom2026-05-06
Ivar Paprocki1008Brazil2026-05-14
Julie Stenseth1009Australia2026-05-03
Mujtaba Nicka1010Argentina2026-05-01
Clifford Rim1011Brazil2026-05-22
Francesco Shinko1012India2026-05-12
Isabel Bowley1013Spain2026-05-18
Mayumi Kolmetz1014United Kingdom2026-05-11
Isabel Bowley1015India2026-05-21
Morrow Ruta1016Spain2026-05-25
Arvin Albares1017Germany2026-05-03
Ivar Paprocki1018Russia2026-05-24
Isabel Bowley1019Australia2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideCanadaElwin Sharvill UNQUALIFIED
Costa DilliardJapanStephen Shaw UNQUALIFIED
Ivar PaprockiItalyXuxue Feng QUALIFIED
Leja CaldareraUnited KingdomAmy Elsner QUALIFIED
Maisha RulapaughRussiaIvan Magalhaes UNQUALIFIED
James ButtArgentinaXuxue Feng QUALIFIED
Ivar PaprockiJapanOnyama Limba QUALIFIED
Claire TollnerIndiaAnna Fali UNQUALIFIED
Johnson SergiCanadaBernardo Dominic PROPOSAL
Salvatore StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Morrow RutaRussiaBernardo Dominic QUALIFIED
Aditya KuskoAustraliaAsiya Javayant RENEWAL
Faith GillianJapanAnna Fali RENEWAL
Julie StensethSpainIoni Bowcher NEW
Alejandro PerinItalyAnna Fali NEGOTIATION
Faith GillianIndiaIoni Bowcher PROPOSAL
Maria MarrierAustraliaAnna Fali RENEWAL
Jones VocelkaCanadaOnyama Limba QUALIFIED
Morrow RutaCanadaOnyama Limba QUALIFIED
Isabel BowleyArgentinaAsiya Javayant UNQUALIFIED
Cody SaylorsArgentinaStephen Shaw NEGOTIATION
Salvatore StockhamRussiaIvan Magalhaes NEW
Ivar PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Ricardo GauchoItalyAsiya Javayant NEGOTIATION
Faith GillianCanadaOnyama Limba NEW
Claire TollnerGermanyXuxue Feng NEGOTIATION
Kaitlin OstroskyItalyIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaElwin Sharvill RENEWAL
Jeanfrancois VenereJapanElwin Sharvill QUALIFIED
Johnson SergiItalyIvan Magalhaes NEW
Rodrigues CampainGermanyStephen Shaw NEW
Arvin AlbaresJapanStephen Shaw UNQUALIFIED
Claire TollnerSpainOnyama Limba QUALIFIED
Ricardo GauchoGermanyBernardo Dominic NEGOTIATION
Izzy GarufiBrazilAnna Fali UNQUALIFIED
Antonio CaudyItalyElwin Sharvill QUALIFIED
Greenwood BologniaArgentinaAnna Fali RENEWAL
Johnson SergiJapanAmy Elsner QUALIFIED
Munro FerenczIndiaIoni Bowcher UNQUALIFIED
Johnson SergiBrazilAnna Fali PROPOSAL

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