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
Cody SaylorsJapanAsiya Javayant QUALIFIED
Jeanfrancois VenereItalyStephen Shaw UNQUALIFIED
Julie StensethUnited KingdomStephen Shaw NEW
Mujtaba NickaItalyIvan Magalhaes NEW
Isabel BowleyRussiaOnyama Limba QUALIFIED
Munro FerenczRussiaStephen Shaw NEW
Stacey MacleadJapanBernardo Dominic NEGOTIATION
Claire TollnerGermanyAsiya Javayant RENEWAL
Salvatore StockhamGermanyXuxue Feng RENEWAL
Mayumi KolmetzItalyBernardo Dominic NEGOTIATION
Aika InouyeGermanyStephen Shaw UNQUALIFIED
Wickens NestleRussiaBernardo Dominic RENEWAL
Rodrigues CampainJapanStephen Shaw QUALIFIED
Jefferson SchemmerGermanyAsiya Javayant NEW
Johnson SergiArgentinaAmy Elsner QUALIFIED
Aruna FigeroaCanadaIoni Bowcher NEW
Ashley DoeAustraliaBernardo Dominic QUALIFIED
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
David DarakjyBrazilBernardo Dominic UNQUALIFIED
Deepesh ChuiIndiaBernardo Dominic RENEWAL
Wickens NestleBrazilAsiya Javayant NEW
Kadeem FlosiGermanyIoni Bowcher NEW
Mayumi KolmetzJapanAnna Fali NEGOTIATION
Wickens NestleRussiaAnna Fali NEW
Maisha RulapaughAustraliaElwin Sharvill RENEWAL
Deepesh ChuiArgentinaIoni Bowcher UNQUALIFIED
Ricardo GauchoAustraliaStephen Shaw RENEWAL
Mujtaba NickaUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois VenereRussiaAmy Elsner RENEWAL
Mujtaba NickaGermanyBernardo Dominic QUALIFIED
Ashley DoeIndiaIvan Magalhaes RENEWAL
Murillo MaletGermanyStephen Shaw PROPOSAL
Mayumi KolmetzUnited KingdomOnyama Limba RENEWAL
Isabel BowleyBrazilAsiya Javayant NEGOTIATION
Darci PoquetteCanadaElwin Sharvill NEW
Stacey MacleadUnited KingdomAnna Fali NEW
Aruna FigeroaJapanAmy Elsner RENEWAL
Ivar PaprockiGermanyOnyama Limba NEGOTIATION
Faith GillianIndiaStephen Shaw NEW
Faith GillianItalyAnna Fali PROPOSAL
Morrow RutaArgentinaAsiya Javayant UNQUALIFIED
Maisha RulapaughIndiaIoni Bowcher RENEWAL
Deepesh ChuiArgentinaElwin Sharvill NEGOTIATION
Stacey MacleadItalyAmy Elsner QUALIFIED
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Ashley DoeUnited KingdomAsiya Javayant UNQUALIFIED
Cody SaylorsRussiaIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanBernardo Dominic NEW
Jones VocelkaJapanIoni Bowcher RENEWAL
Wickens NestleFranceStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughFranceXuxue Feng NEW
Deepesh ChuiJapanAmy Elsner NEW
Jennifer AmigonRussiaElwin Sharvill NEGOTIATION
Julie StensethItalyAsiya Javayant RENEWAL
Clifford RimBrazilBernardo Dominic NEW
Isabel BowleyArgentinaAsiya Javayant QUALIFIED
Isabel BowleyJapanXuxue Feng NEW
Misaki RoysterBrazilXuxue Feng UNQUALIFIED
Maisha RulapaughSpainStephen Shaw NEGOTIATION
Isabel BowleyGermanyAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh ChuiIndia2026-04-20Benton, John B Jr UNQUALIFIED58Bernardo Dominic
1001Jones VocelkaArgentina2026-03-30Chemel, James L Cpa PROPOSAL90Anna Fali
1002David DarakjyBrazil2026-04-07Truhlar And Truhlar Attys NEGOTIATION9Ivan Magalhaes
1003Ricardo GauchoFrance2026-03-27Truhlar And Truhlar Attys PROPOSAL61Anna Fali
1004Stacey MacleadUnited Kingdom2026-04-16Buckley Miller Wright PROPOSAL84Stephen Shaw
1005David DarakjyCanada2026-04-03Rousseaux, Michael Esq PROPOSAL46Anna Fali
1006Clifford RimFrance2026-04-10Benton, John B Jr PROPOSAL8Anna Fali
1007Juan WieserCanada2026-04-16Benton, John B Jr RENEWAL90Elwin Sharvill
1008Costa DilliardAustralia2026-04-03Chemel, James L Cpa RENEWAL66Amy Elsner
1009Faith GillianIndia2026-04-13King, Christopher A Esq NEW46Elwin Sharvill
1010Wickens NestleRussia2026-03-30Chapman, Ross E Esq UNQUALIFIED26Onyama Limba
1011Cody SaylorsCanada2026-04-04Morlong Associates NEW94Anna Fali
1012Sinclair WaycottIndia2026-04-05Rousseaux, Michael Esq RENEWAL44Onyama Limba
1013Aika InouyeItaly2026-03-31Dorl, James J Esq NEGOTIATION93Anna Fali
1014Jennifer AmigonItaly2026-04-17Buckley Miller Wright PROPOSAL41Ivan Magalhaes
1015Kadeem FlosiAustralia2026-04-02Truhlar And Truhlar Attys NEW98Ivan Magalhaes
1016Stacey MacleadCanada2026-04-02Benton, John B Jr QUALIFIED51Amy Elsner
1017Juan WieserFrance2026-04-07Feiner Bros QUALIFIED65Ivan Magalhaes
1018Ashley DoeItaly2026-03-30Dorl, James J Esq QUALIFIED42Onyama Limba
1019Rodrigues CampainIndia2026-04-11Rousseaux, Michael Esq QUALIFIED77Ioni Bowcher
1020Greenwood BologniaArgentina2026-03-28Rangoni Of Florence NEW1Stephen Shaw
1021Costa DilliardAustralia2026-04-12Feiner Bros UNQUALIFIED0Asiya Javayant
1022Silvio SlusarskiIndia2026-03-31Rousseaux, Michael Esq PROPOSAL38Asiya Javayant
1023Julie StensethJapan2026-04-16King, Christopher A Esq UNQUALIFIED89Ioni Bowcher
1024Izzy GarufiAustralia2026-04-18Benton, John B Jr NEW2Onyama Limba
1025Adams MorascaIndia2026-04-07Printing Dimensions NEGOTIATION86Ioni Bowcher
1026Aditya KuskoRussia2026-03-30Chapman, Ross E Esq RENEWAL83Elwin Sharvill
1027Arvin AlbaresJapan2026-04-09Chemel, James L Cpa NEGOTIATION67Elwin Sharvill
1028Kadeem FlosiArgentina2026-04-23Chemel, James L Cpa NEW11Amy Elsner
1029Morrow RutaBrazil2026-04-09Morlong Associates NEW17Ivan Magalhaes
1030David DarakjyCanada2026-04-23Chemel, James L Cpa PROPOSAL14Onyama Limba
1031Aditya KuskoIndia2026-04-13Feiner Bros QUALIFIED7Asiya Javayant
1032Smith GlickUnited Kingdom2026-04-10Chapman, Ross E Esq RENEWAL62Bernardo Dominic
1033Arvin AlbaresGermany2026-03-29Benton, John B Jr QUALIFIED16Amy Elsner
1034Misaki RoysterAustralia2026-03-28Buckley Miller Wright PROPOSAL34Ivan Magalhaes
1035Misaki RoysterJapan2026-04-11Dorl, James J Esq QUALIFIED36Elwin Sharvill
1036Aika InouyeSpain2026-03-28Chemel, James L Cpa UNQUALIFIED48Ioni Bowcher
1037Cody SaylorsFrance2026-04-15Chanay, Jeffrey A Esq PROPOSAL56Onyama Limba
1038Antonio CaudySpain2026-04-12Commercial Press QUALIFIED28Stephen Shaw
1039Jones VocelkaSpain2026-04-18Morlong Associates QUALIFIED7Asiya Javayant
1040Aika InouyeJapan2026-04-04Rousseaux, Michael Esq NEW30Elwin Sharvill
1041Aditya KuskoSpain2026-03-30Chapman, Ross E Esq RENEWAL85Anna Fali
1042Morrow RutaArgentina2026-04-09Benton, John B Jr QUALIFIED0Ivan Magalhaes
1043James ButtSpain2026-04-05King, Christopher A Esq QUALIFIED42Stephen Shaw
1044Izzy GarufiJapan2026-03-26Chemel, James L Cpa RENEWAL18Elwin Sharvill
1045Smith GlickGermany2026-03-29Buckley Miller Wright RENEWAL34Onyama Limba
1046Claire TollnerRussia2026-03-30Morlong Associates UNQUALIFIED98Anna Fali
1047Costa DilliardBrazil2026-04-03Printing Dimensions PROPOSAL71Ioni Bowcher
1048Jeanfrancois VenereGermany2026-04-12Buckley Miller Wright QUALIFIED90Elwin Sharvill
1049Tony FollerCanada2026-03-26Rangoni Of Florence RENEWAL48Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerGermanyBernardo Dominic NEGOTIATION
Darci PoquetteRussiaOnyama Limba QUALIFIED
James ButtCanadaIoni Bowcher UNQUALIFIED
Johnson SergiCanadaXuxue Feng NEGOTIATION
Nicolas IturbideSpainXuxue Feng QUALIFIED
Ivar PaprockiSpainIoni Bowcher PROPOSAL
Clifford RimBrazilXuxue Feng NEGOTIATION
Mujtaba NickaItalyBernardo Dominic NEGOTIATION
Francesco ShinkoCanadaAmy Elsner NEW
Cody SaylorsIndiaAnna Fali QUALIFIED
Aditya KuskoCanadaAsiya Javayant NEW
Julie StensethFranceIoni Bowcher QUALIFIED
Rodrigues CampainJapanAnna Fali PROPOSAL
Salvatore StockhamRussiaAnna Fali QUALIFIED
Arvin AlbaresGermanyIoni Bowcher QUALIFIED
Juan WieserJapanXuxue Feng QUALIFIED
Greenwood BologniaSpainAsiya Javayant NEGOTIATION
Tony FollerRussiaAsiya Javayant UNQUALIFIED
Emily WhobreyCanadaBernardo Dominic RENEWAL
Alejandro PerinArgentinaElwin Sharvill PROPOSAL
Salvatore StockhamArgentinaXuxue Feng UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner QUALIFIED
Chavez BriddickArgentinaElwin Sharvill RENEWAL
Jennifer AmigonCanadaAmy Elsner PROPOSAL
Faith GillianRussiaIvan Magalhaes PROPOSAL
Clifford RimFranceBernardo Dominic RENEWAL
Mayumi KolmetzSpainIoni Bowcher NEW
Faith GillianFranceAsiya Javayant RENEWAL
Adams MorascaJapanAsiya Javayant NEGOTIATION
Octavia MaletCanadaBernardo Dominic PROPOSAL
Juan WieserArgentinaIvan Magalhaes QUALIFIED
Aika InouyeCanadaBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaAnna Fali RENEWAL
Francesco ShinkoJapanOnyama Limba NEW
Mujtaba NickaSpainElwin Sharvill UNQUALIFIED
Claire TollnerRussiaIoni Bowcher QUALIFIED
Greenwood BologniaBrazilOnyama Limba NEW
Rodrigues CampainJapanAnna Fali NEW
Misaki RoysterAustraliaElwin Sharvill QUALIFIED
Cody SaylorsFranceAnna Fali NEW
Ivar PaprockiJapanXuxue Feng NEGOTIATION
Greenwood BologniaIndiaBernardo Dominic RENEWAL
Jefferson SchemmerIndiaOnyama Limba UNQUALIFIED
Murillo MaletItalyAmy Elsner UNQUALIFIED
Murillo MaletArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois VenereArgentinaXuxue Feng UNQUALIFIED
Arvin AlbaresJapanIoni Bowcher NEW
Tony FollerIndiaOnyama Limba NEW
Maisha RulapaughCanadaElwin Sharvill QUALIFIED
Aruna FigeroaGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Greenwood Bolognia
Costa Dilliard
Emily Whobrey
Salvatore Stockham
Jones Vocelka
Jefferson Schemmer
Adams Morasca
David Darakjy
Octavia Malet
Faith Gillian
Smith Glick
Francesco Shinko
Mayumi Kolmetz
Maisha Rulapaugh
Maria Marrier
Murillo Malet
Costa Dilliard
Leja Caldarera
Misaki Royster
Julie Stenseth
Wickens Nestle
Silvio Slusarski
Antonio Caudy
Ivar Paprocki
Munro Ferencz
Rodrigues Campain
Silvio Slusarski
Silvio Slusarski
Aika Inouye
Arvin Albares
Morrow Ruta
Murillo Malet
Darci Poquette
Ivar Paprocki
Aruna Figeroa
David Darakjy
Silvio Slusarski
Julie Stenseth
Mayumi Kolmetz
Murillo Malet
Leon Oldroyd
Octavia Malet
Jefferson Schemmer
Johnson Sergi
Aika Inouye
Jeanfrancois Venere
James Butt
Leja Caldarera
Aika Inouye
Ashley Doe
IdCountryDate
1000Germany2026-04-11
1001Spain2026-04-19
1002Brazil2026-04-06
1003Germany2026-04-20
1004Spain2026-04-21
1005United Kingdom2026-04-23
1006Brazil2026-04-13
1007United Kingdom2026-04-14
1008Russia2026-04-20
1009Japan2026-03-31
1010Australia2026-03-30
1011Japan2026-04-23
1012Argentina2026-04-08
1013Germany2026-04-20
1014United Kingdom2026-03-29
1015Italy2026-04-02
1016Russia2026-04-19
1017France2026-04-18
1018Canada2026-04-02
1019Russia2026-04-15
1020Spain2026-04-13
1021Italy2026-04-06
1022Argentina2026-04-13
1023India2026-04-07
1024United Kingdom2026-04-11
1025France2026-04-03
1026Spain2026-04-17
1027Australia2026-04-13
1028Argentina2026-04-08
1029United Kingdom2026-04-19
1030Argentina2026-04-23
1031Canada2026-03-31
1032Italy2026-03-27
1033Argentina2026-04-10
1034Argentina2026-03-27
1035Argentina2026-04-16
1036Spain2026-04-10
1037Japan2026-04-24
1038Spain2026-04-20
1039Canada2026-04-11
1040Argentina2026-04-16
1041United Kingdom2026-03-26
1042Italy2026-04-11
1043Argentina2026-04-12
1044United Kingdom2026-04-06
1045Germany2026-04-11
1046Spain2026-03-31
1047Germany2026-03-29
1048France2026-04-18
1049India2026-03-29

On-Demand Data

NameIdCountryDate
Tony Foller1000Germany2026-03-30
Jones Vocelka1001United Kingdom2026-03-27
Jefferson Schemmer1002France2026-04-17
Isabel Bowley1003India2026-03-31
Costa Dilliard1004Canada2026-04-08
Kadeem Flosi1005Canada2026-04-13
Ashley Doe1006Japan2026-04-10
Salvatore Stockham1007Australia2026-04-15
Aditya Kusko1008Australia2026-04-20
Wickens Nestle1009Spain2026-04-01
Chavez Briddick1010Spain2026-04-12
Isabel Bowley1011Russia2026-04-12
Stacey Maclead1012United Kingdom2026-03-27
Stacey Maclead1013France2026-04-19
Jones Vocelka1014Brazil2026-04-18
Greenwood Bolognia1015Germany2026-04-19
Maisha Rulapaugh1016Germany2026-04-14
Juan Wieser1017Germany2026-03-30
Salvatore Stockham1018Russia2026-03-28
Johnson Sergi1019Italy2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaFranceAmy Elsner UNQUALIFIED
Tony FollerIndiaAmy Elsner QUALIFIED
Misaki RoysterCanadaOnyama Limba RENEWAL
Julie StensethGermanyXuxue Feng UNQUALIFIED
Tony FollerBrazilOnyama Limba NEW
Salvatore StockhamGermanyStephen Shaw QUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill NEGOTIATION
Ashley DoeAustraliaAmy Elsner RENEWAL
Munro FerenczSpainAnna Fali NEGOTIATION
Wickens NestleFranceElwin Sharvill QUALIFIED
Wickens NestleAustraliaElwin Sharvill NEW
Clifford RimAustraliaAnna Fali NEGOTIATION
Chavez BriddickBrazilXuxue Feng PROPOSAL
Cody SaylorsSpainElwin Sharvill RENEWAL
Costa DilliardAustraliaXuxue Feng QUALIFIED
Kadeem FlosiBrazilAnna Fali PROPOSAL
James ButtCanadaAmy Elsner NEW
Johnson SergiRussiaStephen Shaw UNQUALIFIED
Chavez BriddickArgentinaIoni Bowcher NEW
Leja CaldareraAustraliaIvan Magalhaes NEW
Ricardo GauchoFranceAsiya Javayant PROPOSAL
Juan WieserIndiaAnna Fali NEGOTIATION
Ivar PaprockiAustraliaOnyama Limba NEGOTIATION
Misaki RoysterIndiaBernardo Dominic QUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher NEW
Maria MarrierCanadaElwin Sharvill UNQUALIFIED
Tony FollerUnited KingdomAnna Fali NEGOTIATION
Murillo MaletRussiaIoni Bowcher NEGOTIATION
Octavia MaletSpainAmy Elsner RENEWAL
Sinclair WaycottGermanyOnyama Limba NEW
Morrow RutaFranceStephen Shaw UNQUALIFIED
Sinclair WaycottBrazilElwin Sharvill QUALIFIED
Salvatore StockhamBrazilIoni Bowcher QUALIFIED
Sinclair WaycottBrazilAnna Fali NEW
Salvatore StockhamSpainBernardo Dominic PROPOSAL
Murillo MaletUnited KingdomAmy Elsner PROPOSAL
Juan WieserSpainOnyama Limba NEW
Aruna FigeroaIndiaOnyama Limba NEW
Claire TollnerRussiaIoni Bowcher QUALIFIED
Arvin AlbaresAustraliaElwin Sharvill 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>