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
Claire TollnerAustraliaXuxue Feng NEGOTIATION
Aika InouyeIndiaAsiya Javayant QUALIFIED
Aika InouyeItalyXuxue Feng NEW
Clifford RimRussiaBernardo Dominic QUALIFIED
Rodrigues CampainFranceStephen Shaw NEW
Darci PoquetteFranceAnna Fali UNQUALIFIED
Morrow RutaRussiaXuxue Feng PROPOSAL
Alejandro PerinAustraliaBernardo Dominic RENEWAL
Ricardo GauchoIndiaIvan Magalhaes PROPOSAL
Arvin AlbaresSpainIvan Magalhaes RENEWAL
Alejandro PerinFranceAmy Elsner NEGOTIATION
Claire TollnerFranceIoni Bowcher QUALIFIED
Darci PoquetteFranceXuxue Feng NEW
Julie StensethBrazilStephen Shaw RENEWAL
Francesco ShinkoGermanyOnyama Limba UNQUALIFIED
Izzy GarufiRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereSpainAsiya Javayant NEW
Faith GillianUnited KingdomOnyama Limba PROPOSAL
Mayumi KolmetzSpainStephen Shaw QUALIFIED
Leon OldroydFranceAsiya Javayant NEGOTIATION
Francesco ShinkoJapanAnna Fali QUALIFIED
Isabel BowleyIndiaOnyama Limba NEGOTIATION
Kadeem FlosiFranceElwin Sharvill NEGOTIATION
Ivar PaprockiUnited KingdomElwin Sharvill PROPOSAL
Francesco ShinkoJapanXuxue Feng RENEWAL
Jones VocelkaJapanAnna Fali NEW
Darci PoquetteIndiaStephen Shaw RENEWAL
Juan WieserIndiaAmy Elsner NEGOTIATION
Johnson SergiSpainIvan Magalhaes RENEWAL
Kadeem FlosiRussiaOnyama Limba NEGOTIATION
David DarakjyFranceElwin Sharvill UNQUALIFIED
Julie StensethCanadaOnyama Limba QUALIFIED
Chavez BriddickSpainStephen Shaw RENEWAL
Leon OldroydCanadaXuxue Feng NEW
Greenwood BologniaIndiaIvan Magalhaes NEW
Salvatore StockhamAustraliaOnyama Limba PROPOSAL
Ivar PaprockiRussiaXuxue Feng UNQUALIFIED
Leon OldroydUnited KingdomElwin Sharvill NEW
Misaki RoysterSpainAnna Fali NEGOTIATION
Jennifer AmigonFranceIvan Magalhaes UNQUALIFIED
Murillo MaletSpainIoni Bowcher NEW
Jennifer AmigonJapanStephen Shaw QUALIFIED
Mujtaba NickaGermanyOnyama Limba RENEWAL
Isabel BowleyGermanyElwin Sharvill NEGOTIATION
Maria MarrierJapanElwin Sharvill NEGOTIATION
David DarakjyJapanIvan Magalhaes QUALIFIED
Wickens NestleAustraliaOnyama Limba UNQUALIFIED
Nicolas IturbideGermanyAnna Fali PROPOSAL
Nicolas IturbideRussiaElwin Sharvill UNQUALIFIED
Alejandro PerinIndiaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Faith GillianBrazilAsiya Javayant PROPOSAL
Nicolas IturbideCanadaStephen Shaw PROPOSAL
Deepesh ChuiCanadaAmy Elsner RENEWAL
Jefferson SchemmerGermanyIoni Bowcher RENEWAL
Isabel BowleyFranceAnna Fali RENEWAL
Nicolas IturbideUnited KingdomXuxue Feng PROPOSAL
Aika InouyeItalyStephen Shaw NEGOTIATION
Francesco ShinkoItalyAnna Fali UNQUALIFIED
Salvatore StockhamItalyOnyama Limba NEW
Murillo MaletJapanAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyJapan2026-04-20Benton, John B Jr NEW79Elwin Sharvill
1001Leon OldroydSpain2026-04-11King, Christopher A Esq RENEWAL38Ivan Magalhaes
1002Ivar PaprockiBrazil2026-05-04Chapman, Ross E Esq UNQUALIFIED73Anna Fali
1003Greenwood BologniaItaly2026-05-08Truhlar And Truhlar Attys NEGOTIATION98Bernardo Dominic
1004Cody SaylorsUnited Kingdom2026-04-23Commercial Press RENEWAL86Onyama Limba
1005Juan WieserRussia2026-04-22Printing Dimensions QUALIFIED36Asiya Javayant
1006Stacey MacleadJapan2026-05-04Feiner Bros QUALIFIED15Anna Fali
1007Rodrigues CampainAustralia2026-04-19Chanay, Jeffrey A Esq QUALIFIED64Xuxue Feng
1008Cody SaylorsSpain2026-04-19Chapman, Ross E Esq PROPOSAL1Onyama Limba
1009Costa DilliardCanada2026-04-27Buckley Miller Wright NEW23Stephen Shaw
1010Ivar PaprockiRussia2026-04-30Dorl, James J Esq NEW88Stephen Shaw
1011Deepesh ChuiRussia2026-04-24Chanay, Jeffrey A Esq RENEWAL31Asiya Javayant
1012Jeanfrancois VenereGermany2026-05-02King, Christopher A Esq NEGOTIATION8Onyama Limba
1013Maisha RulapaughBrazil2026-04-21Benton, John B Jr UNQUALIFIED89Asiya Javayant
1014Maria MarrierRussia2026-04-19Rousseaux, Michael Esq NEW25Asiya Javayant
1015Ivar PaprockiSpain2026-04-20Benton, John B Jr NEGOTIATION58Anna Fali
1016Jeanfrancois VenereCanada2026-04-20Printing Dimensions QUALIFIED58Asiya Javayant
1017Jones VocelkaCanada2026-05-06Chanay, Jeffrey A Esq NEGOTIATION93Ivan Magalhaes
1018Morrow RutaSpain2026-04-20Printing Dimensions NEW42Xuxue Feng
1019Maria MarrierIndia2026-05-01Printing Dimensions RENEWAL60Elwin Sharvill
1020Maisha RulapaughFrance2026-05-04Chemel, James L Cpa PROPOSAL50Ivan Magalhaes
1021Cody SaylorsIndia2026-04-15Feltz Printing Service NEGOTIATION87Ioni Bowcher
1022Wickens NestleGermany2026-04-15Feiner Bros QUALIFIED22Onyama Limba
1023Emily WhobreySpain2026-05-03Commercial Press NEW54Ivan Magalhaes
1024Misaki RoysterAustralia2026-04-24Morlong Associates QUALIFIED1Elwin Sharvill
1025Jeanfrancois VenereJapan2026-04-11Chemel, James L Cpa NEW12Onyama Limba
1026Jones VocelkaIndia2026-05-04Feltz Printing Service RENEWAL3Onyama Limba
1027Francesco ShinkoItaly2026-05-05Truhlar And Truhlar Attys RENEWAL81Bernardo Dominic
1028Jennifer AmigonSpain2026-05-06Buckley Miller Wright PROPOSAL19Asiya Javayant
1029Aika InouyeUnited Kingdom2026-04-12Morlong Associates NEGOTIATION20Amy Elsner
1030Juan WieserRussia2026-05-05Morlong Associates RENEWAL64Elwin Sharvill
1031Faith GillianArgentina2026-04-28Truhlar And Truhlar Attys PROPOSAL46Xuxue Feng
1032Arvin AlbaresBrazil2026-04-29Morlong Associates RENEWAL80Ivan Magalhaes
1033Salvatore StockhamAustralia2026-04-25Rangoni Of Florence UNQUALIFIED24Stephen Shaw
1034James ButtSpain2026-04-22Buckley Miller Wright UNQUALIFIED31Anna Fali
1035David DarakjyIndia2026-05-03Feiner Bros RENEWAL7Xuxue Feng
1036Arvin AlbaresUnited Kingdom2026-04-25Chemel, James L Cpa UNQUALIFIED36Ioni Bowcher
1037Juan WieserFrance2026-04-29Truhlar And Truhlar Attys RENEWAL97Anna Fali
1038Leon OldroydUnited Kingdom2026-05-07King, Christopher A Esq UNQUALIFIED52Amy Elsner
1039Costa DilliardIndia2026-05-09Commercial Press NEW70Xuxue Feng
1040Munro FerenczUnited Kingdom2026-05-05Chapman, Ross E Esq RENEWAL82Asiya Javayant
1041Sinclair WaycottGermany2026-04-29Dorl, James J Esq UNQUALIFIED13Bernardo Dominic
1042Costa DilliardFrance2026-04-23Feltz Printing Service UNQUALIFIED34Asiya Javayant
1043Francesco ShinkoBrazil2026-04-19Feltz Printing Service NEW97Asiya Javayant
1044Jeanfrancois VenereIndia2026-05-06Feiner Bros NEGOTIATION77Bernardo Dominic
1045Adams MorascaJapan2026-05-10Chapman, Ross E Esq QUALIFIED45Asiya Javayant
1046Jennifer AmigonGermany2026-05-06Chapman, Ross E Esq NEW37Xuxue Feng
1047Julie StensethCanada2026-05-02Feiner Bros NEGOTIATION93Amy Elsner
1048Ivar PaprockiItaly2026-04-13Chanay, Jeffrey A Esq NEGOTIATION47Amy Elsner
1049Wickens NestleUnited Kingdom2026-04-13Chapman, Ross E Esq PROPOSAL26Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Greenwood BologniaGermanyStephen Shaw PROPOSAL
Greenwood BologniaJapanAsiya Javayant NEGOTIATION
Johnson SergiArgentinaXuxue Feng UNQUALIFIED
Aruna FigeroaArgentinaElwin Sharvill RENEWAL
Munro FerenczSpainAmy Elsner RENEWAL
Smith GlickSpainElwin Sharvill NEGOTIATION
Sinclair WaycottItalyAnna Fali NEW
Clifford RimSpainXuxue Feng NEW
Jennifer AmigonFranceElwin Sharvill NEW
Murillo MaletArgentinaIvan Magalhaes PROPOSAL
Faith GillianFranceElwin Sharvill PROPOSAL
Arvin AlbaresIndiaOnyama Limba PROPOSAL
Deepesh ChuiRussiaXuxue Feng UNQUALIFIED
Greenwood BologniaArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyAustraliaAsiya Javayant NEW
Johnson SergiAustraliaIoni Bowcher QUALIFIED
Julie StensethGermanyElwin Sharvill UNQUALIFIED
Aditya KuskoArgentinaAmy Elsner NEGOTIATION
Misaki RoysterCanadaAsiya Javayant RENEWAL
Clifford RimUnited KingdomXuxue Feng NEGOTIATION
Leja CaldareraGermanyIvan Magalhaes NEGOTIATION
Ivar PaprockiRussiaAmy Elsner RENEWAL
Aruna FigeroaFranceStephen Shaw NEGOTIATION
Stacey MacleadBrazilIvan Magalhaes RENEWAL
Murillo MaletFranceOnyama Limba UNQUALIFIED
Rodrigues CampainCanadaAmy Elsner UNQUALIFIED
Costa DilliardSpainIoni Bowcher UNQUALIFIED
Mujtaba NickaFranceXuxue Feng UNQUALIFIED
Francesco ShinkoCanadaAsiya Javayant PROPOSAL
James ButtBrazilStephen Shaw PROPOSAL
Leon OldroydJapanElwin Sharvill NEW
Aruna FigeroaItalyBernardo Dominic UNQUALIFIED
Alejandro PerinUnited KingdomXuxue Feng RENEWAL
Julie StensethUnited KingdomIoni Bowcher NEW
Silvio SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Sinclair WaycottGermanyAnna Fali PROPOSAL
Claire TollnerItalyOnyama Limba RENEWAL
Ricardo GauchoBrazilAmy Elsner NEGOTIATION
Silvio SlusarskiSpainAsiya Javayant PROPOSAL
Cody SaylorsRussiaStephen Shaw RENEWAL
Izzy GarufiBrazilElwin Sharvill RENEWAL
Ivar PaprockiGermanyXuxue Feng QUALIFIED
Deepesh ChuiFranceElwin Sharvill UNQUALIFIED
Nicolas IturbideAustraliaElwin Sharvill UNQUALIFIED
Maria MarrierBrazilIoni Bowcher NEW
David DarakjyItalyAnna Fali UNQUALIFIED
Murillo MaletIndiaIoni Bowcher QUALIFIED
Kaitlin OstroskyJapanIoni Bowcher NEGOTIATION
Aika InouyeBrazilAsiya Javayant NEW
Leon OldroydItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Munro Ferencz
Misaki Royster
Costa Dilliard
Mayumi Kolmetz
Deepesh Chui
Aruna Figeroa
Clifford Rim
Costa Dilliard
Faith Gillian
Aruna Figeroa
Ivar Paprocki
Jefferson Schemmer
Silvio Slusarski
Kaitlin Ostrosky
Misaki Royster
Johnson Sergi
Aruna Figeroa
Kaitlin Ostrosky
Smith Glick
Salvatore Stockham
Cody Saylors
Silvio Slusarski
Aika Inouye
Stacey Maclead
Greenwood Bolognia
Greenwood Bolognia
Octavia Malet
Leja Caldarera
Julie Stenseth
Leja Caldarera
Deepesh Chui
Aruna Figeroa
Ashley Doe
Jefferson Schemmer
Costa Dilliard
Johnson Sergi
Silvio Slusarski
Aika Inouye
Alejandro Perin
Alejandro Perin
Jefferson Schemmer
Aruna Figeroa
Rodrigues Campain
Tony Foller
Sinclair Waycott
Mayumi Kolmetz
Rodrigues Campain
Chavez Briddick
David Darakjy
Chavez Briddick
IdCountryDate
1000Spain2026-04-29
1001India2026-04-18
1002Brazil2026-04-26
1003France2026-04-22
1004Brazil2026-05-08
1005Japan2026-05-05
1006Brazil2026-05-06
1007Italy2026-04-18
1008Russia2026-04-26
1009France2026-04-19
1010France2026-04-29
1011Japan2026-05-02
1012United Kingdom2026-05-02
1013Italy2026-05-08
1014Japan2026-04-29
1015Japan2026-04-21
1016Spain2026-04-27
1017Italy2026-04-15
1018Italy2026-04-15
1019Canada2026-04-16
1020Spain2026-05-01
1021Russia2026-04-24
1022France2026-04-30
1023Italy2026-05-08
1024Germany2026-04-15
1025Argentina2026-04-24
1026India2026-04-26
1027Japan2026-05-01
1028France2026-05-06
1029India2026-05-06
1030Germany2026-04-21
1031India2026-05-01
1032Italy2026-04-23
1033Canada2026-04-27
1034Argentina2026-04-30
1035Australia2026-04-25
1036Germany2026-04-14
1037Brazil2026-05-10
1038Brazil2026-05-07
1039Brazil2026-04-25
1040Germany2026-04-26
1041Spain2026-05-01
1042Russia2026-04-18
1043Canada2026-04-30
1044Australia2026-04-29
1045Brazil2026-05-08
1046Italy2026-04-15
1047Argentina2026-05-10
1048Spain2026-04-26
1049Italy2026-04-15

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000Spain2026-04-19
Jones Vocelka1001Argentina2026-04-29
Deepesh Chui1002Germany2026-04-26
Darci Poquette1003France2026-04-16
Emily Whobrey1004Russia2026-05-04
Francesco Shinko1005Italy2026-04-26
Adams Morasca1006Japan2026-04-17
Cody Saylors1007Australia2026-05-03
Jeanfrancois Venere1008Brazil2026-05-08
Arvin Albares1009Japan2026-04-17
Jeanfrancois Venere1010United Kingdom2026-04-11
Izzy Garufi1011France2026-04-27
Maria Marrier1012Argentina2026-04-23
Faith Gillian1013Australia2026-04-30
Clifford Rim1014Canada2026-05-03
Maisha Rulapaugh1015Brazil2026-04-16
Ricardo Gaucho1016Brazil2026-05-01
Cody Saylors1017Australia2026-04-28
David Darakjy1018Germany2026-04-14
Emily Whobrey1019Argentina2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonJapanXuxue Feng NEW
Misaki RoysterFranceIoni Bowcher PROPOSAL
Ricardo GauchoBrazilAnna Fali UNQUALIFIED
Maisha RulapaughGermanyAmy Elsner NEGOTIATION
Chavez BriddickItalyOnyama Limba NEGOTIATION
Adams MorascaIndiaElwin Sharvill QUALIFIED
Salvatore StockhamIndiaAsiya Javayant PROPOSAL
Nicolas IturbideAustraliaXuxue Feng QUALIFIED
Adams MorascaCanadaElwin Sharvill PROPOSAL
Deepesh ChuiGermanyIvan Magalhaes NEW
Greenwood BologniaItalyIvan Magalhaes UNQUALIFIED
Sinclair WaycottCanadaAsiya Javayant QUALIFIED
Kaitlin OstroskyFranceStephen Shaw NEW
Mujtaba NickaRussiaAmy Elsner QUALIFIED
Maisha RulapaughFranceBernardo Dominic NEGOTIATION
Aika InouyeItalyXuxue Feng QUALIFIED
Jeanfrancois VenereIndiaAnna Fali QUALIFIED
Mujtaba NickaBrazilAnna Fali NEW
Silvio SlusarskiRussiaIoni Bowcher RENEWAL
Ashley DoeArgentinaAsiya Javayant RENEWAL
Deepesh ChuiRussiaStephen Shaw NEGOTIATION
Francesco ShinkoCanadaXuxue Feng UNQUALIFIED
Leja CaldareraFranceIvan Magalhaes QUALIFIED
Jefferson SchemmerJapanOnyama Limba NEW
Silvio SlusarskiArgentinaBernardo Dominic NEW
Nicolas IturbideArgentinaBernardo Dominic QUALIFIED
James ButtUnited KingdomAnna Fali NEW
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Claire TollnerArgentinaAmy Elsner QUALIFIED
David DarakjySpainBernardo Dominic UNQUALIFIED
Costa DilliardItalyIvan Magalhaes PROPOSAL
Aditya KuskoCanadaIoni Bowcher QUALIFIED
Murillo MaletItalyXuxue Feng NEGOTIATION
Francesco ShinkoIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiGermanyAmy Elsner QUALIFIED
Jones VocelkaGermanyAsiya Javayant RENEWAL
Isabel BowleyIndiaElwin Sharvill QUALIFIED
Adams MorascaCanadaAnna Fali RENEWAL
Adams MorascaBrazilStephen Shaw NEGOTIATION
Leja CaldareraArgentinaIoni Bowcher NEW

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