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
Misaki RoysterUnited KingdomOnyama Limba NEW
Maria MarrierCanadaIvan Magalhaes RENEWAL
Juan WieserGermanyBernardo Dominic QUALIFIED
Jeanfrancois VenereAustraliaIvan Magalhaes NEGOTIATION
Murillo MaletIndiaAnna Fali PROPOSAL
Darci PoquetteItalyStephen Shaw PROPOSAL
Kaitlin OstroskyArgentinaIoni Bowcher QUALIFIED
Leja CaldareraRussiaAnna Fali RENEWAL
Darci PoquetteUnited KingdomAnna Fali NEGOTIATION
Alejandro PerinBrazilIvan Magalhaes QUALIFIED
Ivar PaprockiArgentinaIoni Bowcher NEW
Octavia MaletGermanyOnyama Limba NEW
Morrow RutaSpainAnna Fali NEW
Maisha RulapaughGermanyElwin Sharvill QUALIFIED
Ricardo GauchoGermanyAmy Elsner NEGOTIATION
Mayumi KolmetzIndiaIoni Bowcher NEW
Kadeem FlosiArgentinaAnna Fali PROPOSAL
James ButtGermanyStephen Shaw NEW
James ButtFranceIoni Bowcher NEGOTIATION
Jennifer AmigonRussiaAmy Elsner RENEWAL
Ivar PaprockiAustraliaAmy Elsner RENEWAL
Munro FerenczGermanyIvan Magalhaes RENEWAL
Johnson SergiBrazilIoni Bowcher QUALIFIED
Wickens NestleSpainAsiya Javayant NEGOTIATION
Misaki RoysterFranceElwin Sharvill PROPOSAL
Julie StensethCanadaStephen Shaw UNQUALIFIED
Octavia MaletItalyBernardo Dominic UNQUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba QUALIFIED
Smith GlickCanadaAsiya Javayant NEGOTIATION
Tony FollerItalyOnyama Limba QUALIFIED
James ButtIndiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereBrazilIoni Bowcher PROPOSAL
Nicolas IturbideFranceIvan Magalhaes QUALIFIED
Izzy GarufiGermanyAnna Fali QUALIFIED
Clifford RimUnited KingdomIoni Bowcher NEW
Claire TollnerIndiaElwin Sharvill NEGOTIATION
Claire TollnerSpainStephen Shaw PROPOSAL
Octavia MaletIndiaOnyama Limba NEGOTIATION
Stacey MacleadGermanyAmy Elsner QUALIFIED
Ivar PaprockiArgentinaIvan Magalhaes RENEWAL
Leon OldroydJapanElwin Sharvill RENEWAL
Misaki RoysterArgentinaIoni Bowcher RENEWAL
Alejandro PerinRussiaAmy Elsner NEGOTIATION
Murillo MaletItalyXuxue Feng NEW
Murillo MaletUnited KingdomAnna Fali QUALIFIED
Mayumi KolmetzArgentinaAmy Elsner PROPOSAL
Ricardo GauchoAustraliaAnna Fali QUALIFIED
Izzy GarufiFranceIvan Magalhaes UNQUALIFIED
Francesco ShinkoGermanyBernardo Dominic NEW
Adams MorascaFranceIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickJapanIoni Bowcher QUALIFIED
Ricardo GauchoJapanStephen Shaw QUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant PROPOSAL
Salvatore StockhamBrazilXuxue Feng QUALIFIED
Stacey MacleadJapanStephen Shaw UNQUALIFIED
Ricardo GauchoBrazilIoni Bowcher RENEWAL
Jennifer AmigonItalyXuxue Feng NEW
Antonio CaudyArgentinaXuxue Feng NEW
Julie StensethRussiaIoni Bowcher NEGOTIATION
Antonio CaudyItalyIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaSpain2026-05-12Dorl, James J Esq UNQUALIFIED87Onyama Limba
1001Leja CaldareraCanada2026-05-06Rousseaux, Michael Esq NEGOTIATION58Bernardo Dominic
1002Adams MorascaUnited Kingdom2026-04-26Dorl, James J Esq QUALIFIED24Amy Elsner
1003Silvio SlusarskiAustralia2026-05-17Truhlar And Truhlar Attys QUALIFIED23Elwin Sharvill
1004Kaitlin OstroskyAustralia2026-05-04Chanay, Jeffrey A Esq UNQUALIFIED96Bernardo Dominic
1005Greenwood BologniaIndia2026-04-27King, Christopher A Esq RENEWAL58Xuxue Feng
1006Alejandro PerinAustralia2026-05-11Printing Dimensions PROPOSAL84Elwin Sharvill
1007Silvio SlusarskiFrance2026-05-15Dorl, James J Esq QUALIFIED54Elwin Sharvill
1008Ashley DoeGermany2026-05-06Rousseaux, Michael Esq UNQUALIFIED13Anna Fali
1009Alejandro PerinAustralia2026-04-28Printing Dimensions NEW80Asiya Javayant
1010Chavez BriddickSpain2026-05-06Commercial Press UNQUALIFIED92Asiya Javayant
1011Wickens NestleFrance2026-05-14Chapman, Ross E Esq UNQUALIFIED42Asiya Javayant
1012Aika InouyeIndia2026-05-02Benton, John B Jr QUALIFIED28Stephen Shaw
1013Johnson SergiFrance2026-05-02Morlong Associates NEGOTIATION50Onyama Limba
1014Mayumi KolmetzAustralia2026-05-09Printing Dimensions NEW91Amy Elsner
1015Mayumi KolmetzSpain2026-05-15Feiner Bros NEGOTIATION92Anna Fali
1016Johnson SergiFrance2026-05-15Truhlar And Truhlar Attys RENEWAL75Bernardo Dominic
1017Sinclair WaycottRussia2026-05-11Dorl, James J Esq UNQUALIFIED24Stephen Shaw
1018Francesco ShinkoFrance2026-05-12Morlong Associates NEGOTIATION50Stephen Shaw
1019Smith GlickSpain2026-04-30Truhlar And Truhlar Attys NEGOTIATION39Onyama Limba
1020Ricardo GauchoFrance2026-05-07Chanay, Jeffrey A Esq QUALIFIED41Ioni Bowcher
1021Sinclair WaycottSpain2026-05-22Chemel, James L Cpa QUALIFIED15Ivan Magalhaes
1022Misaki RoysterUnited Kingdom2026-04-23Feiner Bros NEGOTIATION55Ivan Magalhaes
1023Antonio CaudyGermany2026-05-07Feltz Printing Service UNQUALIFIED19Asiya Javayant
1024Francesco ShinkoBrazil2026-04-30Benton, John B Jr QUALIFIED77Asiya Javayant
1025Johnson SergiIndia2026-05-21Feiner Bros PROPOSAL32Ioni Bowcher
1026Claire TollnerSpain2026-05-21Rousseaux, Michael Esq QUALIFIED81Asiya Javayant
1027Wickens NestleBrazil2026-04-27Rousseaux, Michael Esq QUALIFIED56Bernardo Dominic
1028Deepesh ChuiSpain2026-04-27Printing Dimensions UNQUALIFIED70Amy Elsner
1029Wickens NestleArgentina2026-05-01Buckley Miller Wright PROPOSAL32Ivan Magalhaes
1030Izzy GarufiArgentina2026-05-07King, Christopher A Esq NEGOTIATION49Asiya Javayant
1031Jones VocelkaBrazil2026-05-20Commercial Press UNQUALIFIED96Stephen Shaw
1032Ashley DoeUnited Kingdom2026-05-10Printing Dimensions NEGOTIATION99Xuxue Feng
1033Murillo MaletJapan2026-05-05Feltz Printing Service RENEWAL22Elwin Sharvill
1034Aika InouyeUnited Kingdom2026-05-05Morlong Associates NEW10Anna Fali
1035Johnson SergiFrance2026-05-02Commercial Press NEW93Onyama Limba
1036Jefferson SchemmerUnited Kingdom2026-05-22Printing Dimensions PROPOSAL20Asiya Javayant
1037Aruna FigeroaCanada2026-05-18Printing Dimensions PROPOSAL67Anna Fali
1038David DarakjySpain2026-05-07Buckley Miller Wright NEGOTIATION29Amy Elsner
1039Darci PoquetteRussia2026-05-02Chapman, Ross E Esq PROPOSAL27Amy Elsner
1040Deepesh ChuiAustralia2026-05-22Dorl, James J Esq RENEWAL70Stephen Shaw
1041Faith GillianCanada2026-05-19King, Christopher A Esq NEGOTIATION22Elwin Sharvill
1042Aditya KuskoSpain2026-04-25Chanay, Jeffrey A Esq NEGOTIATION83Stephen Shaw
1043Murillo MaletItaly2026-05-05Feltz Printing Service NEGOTIATION58Elwin Sharvill
1044Sinclair WaycottFrance2026-05-16Chemel, James L Cpa PROPOSAL42Asiya Javayant
1045Jeanfrancois VenereSpain2026-05-02Morlong Associates QUALIFIED89Asiya Javayant
1046Aika InouyeUnited Kingdom2026-05-16Dorl, James J Esq NEGOTIATION95Elwin Sharvill
1047Leja CaldareraItaly2026-05-13Dorl, James J Esq QUALIFIED45Xuxue Feng
1048Munro FerenczAustralia2026-05-04Chapman, Ross E Esq NEGOTIATION17Onyama Limba
1049Arvin AlbaresJapan2026-04-25Chemel, James L Cpa NEW37Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiUnited KingdomStephen Shaw RENEWAL
Juan WieserAustraliaAnna Fali PROPOSAL
Maisha RulapaughGermanyAsiya Javayant QUALIFIED
Salvatore StockhamIndiaStephen Shaw NEW
Mujtaba NickaUnited KingdomAsiya Javayant PROPOSAL
Costa DilliardIndiaIoni Bowcher UNQUALIFIED
Francesco ShinkoArgentinaAsiya Javayant PROPOSAL
Misaki RoysterGermanyAsiya Javayant UNQUALIFIED
Murillo MaletUnited KingdomAnna Fali UNQUALIFIED
Juan WieserIndiaOnyama Limba NEW
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Stacey MacleadGermanyIvan Magalhaes QUALIFIED
Silvio SlusarskiFranceElwin Sharvill NEGOTIATION
Emily WhobreyJapanIvan Magalhaes UNQUALIFIED
Faith GillianJapanIoni Bowcher NEW
Emily WhobreyCanadaXuxue Feng UNQUALIFIED
Ashley DoeItalyAmy Elsner RENEWAL
Sinclair WaycottCanadaAnna Fali PROPOSAL
Leja CaldareraGermanyAsiya Javayant QUALIFIED
Mayumi KolmetzSpainBernardo Dominic RENEWAL
Costa DilliardUnited KingdomAnna Fali RENEWAL
Ashley DoeAustraliaOnyama Limba NEGOTIATION
Ricardo GauchoAustraliaElwin Sharvill PROPOSAL
Mujtaba NickaFranceAmy Elsner PROPOSAL
Smith GlickBrazilXuxue Feng UNQUALIFIED
Arvin AlbaresJapanElwin Sharvill UNQUALIFIED
Kadeem FlosiBrazilIvan Magalhaes PROPOSAL
Francesco ShinkoGermanyOnyama Limba NEW
Nicolas IturbideJapanAnna Fali NEGOTIATION
Smith GlickJapanAnna Fali NEW
David DarakjyIndiaIvan Magalhaes RENEWAL
Deepesh ChuiSpainIvan Magalhaes PROPOSAL
Kadeem FlosiArgentinaElwin Sharvill RENEWAL
Smith GlickBrazilAnna Fali NEW
Silvio SlusarskiGermanyOnyama Limba NEW
Leja CaldareraArgentinaElwin Sharvill NEW
Mujtaba NickaJapanStephen Shaw NEW
Clifford RimSpainAnna Fali NEW
Deepesh ChuiFranceAnna Fali NEW
Kadeem FlosiRussiaAnna Fali QUALIFIED
Francesco ShinkoBrazilAsiya Javayant PROPOSAL
David DarakjyUnited KingdomElwin Sharvill RENEWAL
Mujtaba NickaBrazilAnna Fali QUALIFIED
Johnson SergiCanadaElwin Sharvill UNQUALIFIED
Murillo MaletBrazilXuxue Feng PROPOSAL
Julie StensethUnited KingdomAmy Elsner UNQUALIFIED
Juan WieserRussiaAnna Fali RENEWAL
Izzy GarufiAustraliaBernardo Dominic PROPOSAL
Smith GlickGermanyElwin Sharvill NEGOTIATION
Octavia MaletIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Julie Stenseth
Claire Tollner
Octavia Malet
Costa Dilliard
Mayumi Kolmetz
Ricardo Gaucho
Francesco Shinko
David Darakjy
Kadeem Flosi
Claire Tollner
Munro Ferencz
Octavia Malet
Alejandro Perin
Leja Caldarera
Aika Inouye
Tony Foller
Juan Wieser
Claire Tollner
Maria Marrier
Salvatore Stockham
Jones Vocelka
Cody Saylors
Kadeem Flosi
Leon Oldroyd
Costa Dilliard
James Butt
Wickens Nestle
Salvatore Stockham
Leja Caldarera
Stacey Maclead
Nicolas Iturbide
Munro Ferencz
Octavia Malet
Kadeem Flosi
Izzy Garufi
Sinclair Waycott
Leja Caldarera
Ricardo Gaucho
Silvio Slusarski
Kadeem Flosi
Wickens Nestle
Ricardo Gaucho
Munro Ferencz
Silvio Slusarski
Izzy Garufi
Octavia Malet
Murillo Malet
Octavia Malet
Julie Stenseth
IdCountryDate
1000Japan2026-05-16
1001Japan2026-05-14
1002Australia2026-04-28
1003Russia2026-05-03
1004France2026-05-15
1005Japan2026-05-21
1006Canada2026-04-25
1007Italy2026-05-01
1008Argentina2026-05-16
1009France2026-05-22
1010Australia2026-04-28
1011Japan2026-04-28
1012Canada2026-05-14
1013Russia2026-05-21
1014Australia2026-05-13
1015Canada2026-05-18
1016Australia2026-04-29
1017United Kingdom2026-05-18
1018France2026-04-26
1019Canada2026-05-06
1020India2026-05-22
1021Australia2026-05-21
1022Germany2026-04-26
1023Brazil2026-05-20
1024Spain2026-04-28
1025United Kingdom2026-04-23
1026India2026-04-25
1027Japan2026-04-24
1028Australia2026-04-23
1029Brazil2026-05-04
1030United Kingdom2026-04-30
1031Argentina2026-04-29
1032Argentina2026-05-08
1033Canada2026-04-23
1034Brazil2026-04-30
1035Australia2026-04-25
1036Russia2026-05-19
1037United Kingdom2026-04-28
1038Spain2026-05-02
1039Argentina2026-05-13
1040Argentina2026-04-29
1041Japan2026-04-30
1042United Kingdom2026-05-08
1043Russia2026-05-05
1044France2026-05-21
1045Japan2026-05-13
1046United Kingdom2026-05-19
1047Canada2026-05-02
1048France2026-05-09
1049Brazil2026-05-19

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Japan2026-04-27
Morrow Ruta1001Italy2026-05-08
Smith Glick1002Argentina2026-05-03
Kaitlin Ostrosky1003Italy2026-05-14
Alejandro Perin1004India2026-05-19
Jones Vocelka1005Japan2026-05-21
Smith Glick1006France2026-05-19
Smith Glick1007United Kingdom2026-04-25
Murillo Malet1008Italy2026-05-01
Misaki Royster1009Germany2026-05-12
Ashley Doe1010Brazil2026-05-21
Cody Saylors1011Canada2026-05-18
Arvin Albares1012France2026-05-21
Greenwood Bolognia1013Germany2026-05-17
Juan Wieser1014India2026-05-16
Clifford Rim1015Australia2026-05-19
Ricardo Gaucho1016Australia2026-04-27
Darci Poquette1017Germany2026-05-13
Munro Ferencz1018India2026-05-05
Jennifer Amigon1019France2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiAustraliaElwin Sharvill QUALIFIED
Ivar PaprockiIndiaBernardo Dominic PROPOSAL
Aruna FigeroaUnited KingdomAmy Elsner NEGOTIATION
Ashley DoeItalyOnyama Limba PROPOSAL
Tony FollerCanadaElwin Sharvill UNQUALIFIED
Isabel BowleySpainAnna Fali QUALIFIED
Smith GlickCanadaAmy Elsner RENEWAL
Francesco ShinkoJapanOnyama Limba PROPOSAL
Ricardo GauchoGermanyOnyama Limba NEW
Ricardo GauchoGermanyStephen Shaw NEW
Jefferson SchemmerFranceOnyama Limba NEGOTIATION
Silvio SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin OstroskyAustraliaXuxue Feng UNQUALIFIED
Octavia MaletFranceIvan Magalhaes NEW
Adams MorascaItalyOnyama Limba QUALIFIED
Ricardo GauchoArgentinaXuxue Feng PROPOSAL
Maria MarrierSpainAsiya Javayant QUALIFIED
Costa DilliardCanadaAnna Fali NEW
Faith GillianArgentinaBernardo Dominic NEGOTIATION
Clifford RimCanadaElwin Sharvill PROPOSAL
Jones VocelkaCanadaStephen Shaw NEW
Jefferson SchemmerSpainStephen Shaw QUALIFIED
Jennifer AmigonSpainElwin Sharvill NEGOTIATION
Smith GlickRussiaOnyama Limba QUALIFIED
Leon OldroydCanadaXuxue Feng RENEWAL
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Salvatore StockhamSpainXuxue Feng UNQUALIFIED
Rodrigues CampainJapanStephen Shaw RENEWAL
Julie StensethJapanOnyama Limba NEGOTIATION
Kadeem FlosiItalyStephen Shaw NEW
David DarakjyIndiaXuxue Feng NEW
Sinclair WaycottIndiaXuxue Feng UNQUALIFIED
Nicolas IturbideAustraliaIvan Magalhaes PROPOSAL
Aditya KuskoFranceXuxue Feng PROPOSAL
Kadeem FlosiArgentinaStephen Shaw PROPOSAL
Emily WhobreyBrazilElwin Sharvill UNQUALIFIED
Ivar PaprockiArgentinaBernardo Dominic NEGOTIATION
Isabel BowleyGermanyOnyama Limba NEGOTIATION
Munro FerenczUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzFranceIvan Magalhaes 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>