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
Clifford RimSpainIoni Bowcher UNQUALIFIED
Jennifer AmigonItalyAsiya Javayant QUALIFIED
Cody SaylorsAustraliaXuxue Feng UNQUALIFIED
David DarakjyRussiaStephen Shaw UNQUALIFIED
David DarakjyAustraliaXuxue Feng QUALIFIED
Clifford RimBrazilAsiya Javayant NEW
Costa DilliardGermanyBernardo Dominic PROPOSAL
Maria MarrierGermanyAmy Elsner PROPOSAL
Aruna FigeroaSpainAnna Fali QUALIFIED
Costa DilliardBrazilAmy Elsner QUALIFIED
Ashley DoeJapanOnyama Limba UNQUALIFIED
Smith GlickFranceAsiya Javayant QUALIFIED
Ivar PaprockiGermanyIoni Bowcher NEW
Leon OldroydGermanyOnyama Limba NEW
Antonio CaudyBrazilIoni Bowcher NEGOTIATION
Morrow RutaArgentinaElwin Sharvill NEW
Chavez BriddickBrazilElwin Sharvill QUALIFIED
Leon OldroydIndiaBernardo Dominic RENEWAL
Francesco ShinkoRussiaAmy Elsner UNQUALIFIED
Kadeem FlosiSpainXuxue Feng UNQUALIFIED
Stacey MacleadCanadaXuxue Feng UNQUALIFIED
Faith GillianUnited KingdomAnna Fali NEW
Deepesh ChuiFranceAsiya Javayant RENEWAL
Deepesh ChuiArgentinaAnna Fali QUALIFIED
Rodrigues CampainJapanAnna Fali NEW
Julie StensethJapanAmy Elsner RENEWAL
Clifford RimArgentinaXuxue Feng UNQUALIFIED
Tony FollerJapanAsiya Javayant RENEWAL
Juan WieserIndiaOnyama Limba UNQUALIFIED
Kaitlin OstroskyFranceAmy Elsner RENEWAL
Kaitlin OstroskyArgentinaElwin Sharvill QUALIFIED
Nicolas IturbideFranceOnyama Limba QUALIFIED
Maria MarrierUnited KingdomStephen Shaw QUALIFIED
Tony FollerGermanyOnyama Limba QUALIFIED
Antonio CaudyFranceAmy Elsner UNQUALIFIED
Francesco ShinkoAustraliaElwin Sharvill RENEWAL
Ashley DoeUnited KingdomIoni Bowcher PROPOSAL
Octavia MaletBrazilOnyama Limba QUALIFIED
Francesco ShinkoJapanBernardo Dominic UNQUALIFIED
James ButtRussiaAnna Fali RENEWAL
Mayumi KolmetzSpainStephen Shaw NEW
Mujtaba NickaUnited KingdomAmy Elsner NEW
Aika InouyeFranceXuxue Feng NEGOTIATION
Stacey MacleadItalyIoni Bowcher QUALIFIED
Mayumi KolmetzUnited KingdomAsiya Javayant PROPOSAL
Ashley DoeFranceStephen Shaw NEGOTIATION
Francesco ShinkoIndiaElwin Sharvill QUALIFIED
Rodrigues CampainGermanyOnyama Limba PROPOSAL
Silvio SlusarskiGermanyStephen Shaw PROPOSAL
Maisha RulapaughSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaRussiaAnna Fali NEW
Mayumi KolmetzFranceXuxue Feng NEW
Tony FollerBrazilStephen Shaw QUALIFIED
Leon OldroydGermanyIoni Bowcher RENEWAL
Silvio SlusarskiUnited KingdomAsiya Javayant PROPOSAL
Tony FollerCanadaIvan Magalhaes PROPOSAL
Leja CaldareraItalyOnyama Limba NEW
Jeanfrancois VenereRussiaAnna Fali NEW
Antonio CaudyCanadaAnna Fali UNQUALIFIED
Leja CaldareraItalyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyGermany2026-06-03Chanay, Jeffrey A Esq RENEWAL96Anna Fali
1001Munro FerenczAustralia2026-05-15Chanay, Jeffrey A Esq RENEWAL68Amy Elsner
1002Morrow RutaIndia2026-06-02Benton, John B Jr NEGOTIATION11Asiya Javayant
1003Rodrigues CampainFrance2026-05-28Commercial Press PROPOSAL61Asiya Javayant
1004Francesco ShinkoGermany2026-05-25Feltz Printing Service RENEWAL76Onyama Limba
1005Misaki RoysterJapan2026-05-23Rousseaux, Michael Esq NEGOTIATION89Elwin Sharvill
1006Leja CaldareraRussia2026-05-07Morlong Associates PROPOSAL43Anna Fali
1007Julie StensethCanada2026-05-06Chanay, Jeffrey A Esq PROPOSAL92Stephen Shaw
1008Nicolas IturbideItaly2026-05-16Rangoni Of Florence RENEWAL18Xuxue Feng
1009Nicolas IturbideItaly2026-05-30Benton, John B Jr NEW39Xuxue Feng
1010Francesco ShinkoFrance2026-05-30Rousseaux, Michael Esq PROPOSAL97Ivan Magalhaes
1011Izzy GarufiArgentina2026-05-26Chapman, Ross E Esq PROPOSAL40Bernardo Dominic
1012Faith GillianSpain2026-05-22Feiner Bros QUALIFIED19Amy Elsner
1013Claire TollnerArgentina2026-05-08Rousseaux, Michael Esq UNQUALIFIED44Bernardo Dominic
1014Morrow RutaCanada2026-05-31Buckley Miller Wright NEGOTIATION22Amy Elsner
1015Nicolas IturbideArgentina2026-05-07Printing Dimensions UNQUALIFIED2Asiya Javayant
1016Julie StensethFrance2026-05-23Commercial Press UNQUALIFIED54Bernardo Dominic
1017Isabel BowleyRussia2026-05-18Truhlar And Truhlar Attys NEW87Asiya Javayant
1018Octavia MaletJapan2026-05-10Rousseaux, Michael Esq PROPOSAL58Stephen Shaw
1019Emily WhobreyCanada2026-05-06Printing Dimensions NEGOTIATION64Anna Fali
1020Nicolas IturbideCanada2026-05-15Chapman, Ross E Esq QUALIFIED12Ioni Bowcher
1021Juan WieserUnited Kingdom2026-05-25Feiner Bros NEGOTIATION77Ivan Magalhaes
1022Rodrigues CampainSpain2026-05-15Commercial Press RENEWAL50Anna Fali
1023Salvatore StockhamBrazil2026-05-22King, Christopher A Esq PROPOSAL25Amy Elsner
1024Greenwood BologniaIndia2026-05-05Morlong Associates NEW5Ioni Bowcher
1025Costa DilliardGermany2026-06-01Chemel, James L Cpa PROPOSAL10Elwin Sharvill
1026Murillo MaletBrazil2026-05-07Truhlar And Truhlar Attys RENEWAL85Anna Fali
1027Cody SaylorsArgentina2026-05-07Feiner Bros QUALIFIED0Stephen Shaw
1028Isabel BowleyArgentina2026-05-31Feiner Bros QUALIFIED63Ivan Magalhaes
1029Alejandro PerinGermany2026-05-12Feltz Printing Service NEW67Bernardo Dominic
1030Juan WieserJapan2026-05-25King, Christopher A Esq QUALIFIED0Xuxue Feng
1031Juan WieserSpain2026-05-08Morlong Associates NEW85Stephen Shaw
1032David DarakjySpain2026-05-09Feltz Printing Service PROPOSAL12Elwin Sharvill
1033Antonio CaudyJapan2026-05-31Morlong Associates NEW61Bernardo Dominic
1034Aruna FigeroaUnited Kingdom2026-05-18Chemel, James L Cpa NEGOTIATION24Bernardo Dominic
1035Nicolas IturbideIndia2026-05-25Chemel, James L Cpa PROPOSAL52Anna Fali
1036Ivar PaprockiRussia2026-05-05Chanay, Jeffrey A Esq NEW64Amy Elsner
1037Juan WieserFrance2026-05-20Rangoni Of Florence NEW78Onyama Limba
1038Adams MorascaRussia2026-05-10Morlong Associates RENEWAL61Anna Fali
1039Alejandro PerinArgentina2026-05-29Rangoni Of Florence NEGOTIATION95Elwin Sharvill
1040Julie StensethJapan2026-05-30Chemel, James L Cpa RENEWAL20Onyama Limba
1041Aditya KuskoItaly2026-05-19Printing Dimensions PROPOSAL36Asiya Javayant
1042Julie StensethJapan2026-05-11King, Christopher A Esq RENEWAL44Bernardo Dominic
1043Jefferson SchemmerArgentina2026-05-10Feiner Bros NEGOTIATION30Ivan Magalhaes
1044Salvatore StockhamCanada2026-05-17Truhlar And Truhlar Attys NEGOTIATION49Asiya Javayant
1045Greenwood BologniaUnited Kingdom2026-05-22King, Christopher A Esq NEW13Onyama Limba
1046Greenwood BologniaCanada2026-05-09Feiner Bros UNQUALIFIED38Stephen Shaw
1047Leon OldroydJapan2026-05-25Printing Dimensions QUALIFIED2Ivan Magalhaes
1048Clifford RimBrazil2026-05-28Rangoni Of Florence RENEWAL37Elwin Sharvill
1049Ricardo GauchoAustralia2026-05-09Chapman, Ross E Esq NEGOTIATION99Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerFranceStephen Shaw PROPOSAL
Leja CaldareraBrazilStephen Shaw UNQUALIFIED
James ButtBrazilOnyama Limba RENEWAL
Leja CaldareraIndiaStephen Shaw UNQUALIFIED
Antonio CaudyItalyAmy Elsner NEGOTIATION
Stacey MacleadArgentinaAsiya Javayant QUALIFIED
Smith GlickCanadaStephen Shaw NEW
Tony FollerRussiaBernardo Dominic PROPOSAL
Leja CaldareraJapanIoni Bowcher NEGOTIATION
Kaitlin OstroskyAustraliaAsiya Javayant NEW
David DarakjyItalyIoni Bowcher RENEWAL
Claire TollnerAustraliaBernardo Dominic UNQUALIFIED
Chavez BriddickSpainIoni Bowcher UNQUALIFIED
Misaki RoysterSpainAmy Elsner PROPOSAL
Jones VocelkaUnited KingdomAmy Elsner NEW
Darci PoquetteGermanyAnna Fali PROPOSAL
Mujtaba NickaSpainAsiya Javayant UNQUALIFIED
Ricardo GauchoJapanAsiya Javayant NEW
Claire TollnerGermanyIvan Magalhaes NEGOTIATION
Faith GillianFranceIoni Bowcher PROPOSAL
Stacey MacleadBrazilIoni Bowcher NEW
Leja CaldareraGermanyAsiya Javayant QUALIFIED
Aika InouyeSpainIvan Magalhaes QUALIFIED
Salvatore StockhamJapanElwin Sharvill PROPOSAL
Cody SaylorsArgentinaBernardo Dominic RENEWAL
Kaitlin OstroskyGermanyXuxue Feng NEW
Tony FollerUnited KingdomAnna Fali QUALIFIED
Ashley DoeArgentinaOnyama Limba QUALIFIED
Francesco ShinkoJapanXuxue Feng NEW
Tony FollerBrazilAmy Elsner UNQUALIFIED
Mujtaba NickaUnited KingdomOnyama Limba RENEWAL
Chavez BriddickAustraliaAmy Elsner RENEWAL
Faith GillianFranceBernardo Dominic RENEWAL
Wickens NestleItalyAsiya Javayant NEW
Faith GillianArgentinaOnyama Limba RENEWAL
Emily WhobreyAustraliaElwin Sharvill QUALIFIED
Emily WhobreyBrazilAnna Fali UNQUALIFIED
Faith GillianGermanyBernardo Dominic RENEWAL
Antonio CaudyBrazilAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaXuxue Feng NEW
Jeanfrancois VenereArgentinaAmy Elsner QUALIFIED
Ashley DoeSpainOnyama Limba NEGOTIATION
Greenwood BologniaFranceBernardo Dominic PROPOSAL
Chavez BriddickSpainOnyama Limba RENEWAL
Kaitlin OstroskyAustraliaOnyama Limba UNQUALIFIED
James ButtFranceAmy Elsner QUALIFIED
Tony FollerCanadaStephen Shaw PROPOSAL
Maisha RulapaughAustraliaStephen Shaw UNQUALIFIED
Salvatore StockhamUnited KingdomAmy Elsner PROPOSAL
Arvin AlbaresIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Arvin Albares
Aruna Figeroa
Arvin Albares
Juan Wieser
Claire Tollner
Ivar Paprocki
Smith Glick
Costa Dilliard
Leja Caldarera
Silvio Slusarski
Johnson Sergi
Leon Oldroyd
Silvio Slusarski
Kaitlin Ostrosky
Salvatore Stockham
Faith Gillian
Sinclair Waycott
James Butt
Francesco Shinko
Jennifer Amigon
Mayumi Kolmetz
Kaitlin Ostrosky
Costa Dilliard
Juan Wieser
Johnson Sergi
Chavez Briddick
Leja Caldarera
Ricardo Gaucho
Wickens Nestle
Isabel Bowley
Cody Saylors
Misaki Royster
Jeanfrancois Venere
Leon Oldroyd
Morrow Ruta
Salvatore Stockham
Aika Inouye
Emily Whobrey
Claire Tollner
Chavez Briddick
Ivar Paprocki
Francesco Shinko
Alejandro Perin
Clifford Rim
Arvin Albares
Julie Stenseth
Kadeem Flosi
Jones Vocelka
Leja Caldarera
Wickens Nestle
IdCountryDate
1000Japan2026-05-13
1001Australia2026-05-14
1002Germany2026-05-18
1003Australia2026-05-27
1004France2026-05-05
1005Russia2026-05-17
1006Australia2026-05-10
1007France2026-06-03
1008Spain2026-05-15
1009United Kingdom2026-05-21
1010Spain2026-05-16
1011Germany2026-05-21
1012France2026-06-01
1013Russia2026-05-20
1014United Kingdom2026-05-09
1015Italy2026-05-17
1016Brazil2026-05-22
1017Canada2026-05-23
1018France2026-06-01
1019Russia2026-05-18
1020Canada2026-05-13
1021Argentina2026-05-24
1022Russia2026-05-12
1023Italy2026-05-22
1024France2026-05-19
1025Brazil2026-05-10
1026France2026-05-15
1027Australia2026-05-10
1028Australia2026-06-02
1029Italy2026-05-19
1030Germany2026-05-23
1031Canada2026-05-19
1032India2026-05-20
1033Canada2026-05-29
1034Australia2026-05-21
1035Argentina2026-05-12
1036Russia2026-05-24
1037Russia2026-05-31
1038Germany2026-05-24
1039Australia2026-05-19
1040France2026-05-06
1041Germany2026-05-27
1042Australia2026-05-06
1043Germany2026-06-03
1044France2026-05-14
1045Japan2026-05-19
1046Australia2026-05-29
1047Germany2026-05-17
1048Australia2026-05-15
1049Germany2026-05-14

On-Demand Data

NameIdCountryDate
Claire Tollner1000Brazil2026-05-06
Morrow Ruta1001India2026-05-13
Jones Vocelka1002France2026-05-21
Darci Poquette1003Spain2026-05-19
Ivar Paprocki1004Japan2026-05-21
Aika Inouye1005Spain2026-06-02
Kaitlin Ostrosky1006Spain2026-06-03
Clifford Rim1007India2026-05-06
Faith Gillian1008Italy2026-05-27
Greenwood Bolognia1009Germany2026-05-27
Adams Morasca1010Brazil2026-05-21
Octavia Malet1011France2026-05-21
Nicolas Iturbide1012Germany2026-05-13
Leja Caldarera1013Germany2026-05-14
Leon Oldroyd1014India2026-05-28
Jefferson Schemmer1015Italy2026-05-17
Aditya Kusko1016Russia2026-05-23
Antonio Caudy1017Brazil2026-05-12
Jeanfrancois Venere1018India2026-05-11
Nicolas Iturbide1019Russia2026-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes PROPOSAL
Jeanfrancois VenereItalyXuxue Feng QUALIFIED
Julie StensethItalyOnyama Limba NEGOTIATION
Salvatore StockhamBrazilAnna Fali UNQUALIFIED
Alejandro PerinSpainIoni Bowcher PROPOSAL
Chavez BriddickRussiaAmy Elsner NEGOTIATION
Aika InouyeGermanyXuxue Feng QUALIFIED
Chavez BriddickArgentinaAmy Elsner UNQUALIFIED
Nicolas IturbideJapanBernardo Dominic UNQUALIFIED
Aditya KuskoArgentinaAsiya Javayant NEW
Mujtaba NickaUnited KingdomStephen Shaw UNQUALIFIED
Jennifer AmigonArgentinaElwin Sharvill QUALIFIED
David DarakjyGermanyElwin Sharvill NEGOTIATION
Jeanfrancois VenereItalyOnyama Limba QUALIFIED
Smith GlickBrazilBernardo Dominic QUALIFIED
Aika InouyeCanadaBernardo Dominic PROPOSAL
Aruna FigeroaBrazilAsiya Javayant NEW
Adams MorascaArgentinaAnna Fali NEW
Wickens NestleGermanyAmy Elsner QUALIFIED
Cody SaylorsSpainStephen Shaw NEGOTIATION
Deepesh ChuiFranceElwin Sharvill QUALIFIED
Kadeem FlosiBrazilBernardo Dominic QUALIFIED
Mayumi KolmetzGermanyXuxue Feng NEGOTIATION
Mujtaba NickaSpainElwin Sharvill NEGOTIATION
Stacey MacleadCanadaIoni Bowcher UNQUALIFIED
Maria MarrierBrazilIoni Bowcher PROPOSAL
Ivar PaprockiCanadaBernardo Dominic NEW
Adams MorascaItalyAmy Elsner UNQUALIFIED
Silvio SlusarskiRussiaXuxue Feng NEGOTIATION
Francesco ShinkoAustraliaXuxue Feng QUALIFIED
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Tony FollerUnited KingdomBernardo Dominic RENEWAL
Ashley DoeBrazilIoni Bowcher QUALIFIED
Izzy GarufiCanadaBernardo Dominic PROPOSAL
Ricardo GauchoCanadaAsiya Javayant NEGOTIATION
Leja CaldareraFranceOnyama Limba NEW
Munro FerenczBrazilOnyama Limba NEW
Aditya KuskoArgentinaBernardo Dominic RENEWAL
Stacey MacleadSpainXuxue Feng 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>