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
Isabel BowleyArgentinaBernardo Dominic NEW
Octavia MaletIndiaIvan Magalhaes QUALIFIED
Jeanfrancois VenereGermanyElwin Sharvill RENEWAL
Deepesh ChuiFranceAsiya Javayant NEGOTIATION
David DarakjyItalyAnna Fali PROPOSAL
Ricardo GauchoAustraliaStephen Shaw UNQUALIFIED
Rodrigues CampainIndiaAmy Elsner NEW
Tony FollerUnited KingdomAmy Elsner UNQUALIFIED
Ivar PaprockiFranceAnna Fali QUALIFIED
Adams MorascaFranceXuxue Feng NEW
Aruna FigeroaJapanXuxue Feng QUALIFIED
Jennifer AmigonFranceAmy Elsner UNQUALIFIED
Chavez BriddickGermanyAsiya Javayant PROPOSAL
Maisha RulapaughRussiaStephen Shaw NEW
Aditya KuskoJapanElwin Sharvill NEW
Juan WieserJapanAmy Elsner QUALIFIED
Costa DilliardIndiaBernardo Dominic RENEWAL
Francesco ShinkoSpainIvan Magalhaes UNQUALIFIED
Mujtaba NickaJapanStephen Shaw NEGOTIATION
Jeanfrancois VenereJapanXuxue Feng PROPOSAL
Maisha RulapaughJapanOnyama Limba PROPOSAL
Leon OldroydJapanXuxue Feng QUALIFIED
Cody SaylorsBrazilAnna Fali QUALIFIED
Mujtaba NickaIndiaIvan Magalhaes RENEWAL
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Greenwood BologniaBrazilBernardo Dominic QUALIFIED
Maria MarrierArgentinaBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba QUALIFIED
Rodrigues CampainIndiaOnyama Limba PROPOSAL
Murillo MaletRussiaOnyama Limba PROPOSAL
Nicolas IturbideFranceAnna Fali PROPOSAL
Deepesh ChuiArgentinaIvan Magalhaes NEW
Jones VocelkaJapanXuxue Feng NEGOTIATION
Kadeem FlosiItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaFranceAnna Fali PROPOSAL
Salvatore StockhamJapanAsiya Javayant NEW
Octavia MaletGermanyIvan Magalhaes NEW
Salvatore StockhamJapanIvan Magalhaes NEGOTIATION
Emily WhobreyArgentinaXuxue Feng NEGOTIATION
Mayumi KolmetzUnited KingdomAmy Elsner PROPOSAL
Julie StensethBrazilOnyama Limba QUALIFIED
Chavez BriddickAustraliaAmy Elsner QUALIFIED
Alejandro PerinArgentinaOnyama Limba UNQUALIFIED
Juan WieserAustraliaStephen Shaw RENEWAL
Misaki RoysterIndiaIvan Magalhaes RENEWAL
Deepesh ChuiSpainIvan Magalhaes NEW
Murillo MaletFranceIvan Magalhaes RENEWAL
Stacey MacleadGermanyAsiya Javayant NEW
Darci PoquetteFranceBernardo Dominic QUALIFIED
Rodrigues CampainGermanyElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereBrazilIvan Magalhaes NEW
Adams MorascaBrazilIvan Magalhaes NEW
David DarakjyCanadaIvan Magalhaes UNQUALIFIED
Aditya KuskoArgentinaStephen Shaw RENEWAL
Misaki RoysterUnited KingdomOnyama Limba NEGOTIATION
Faith GillianBrazilXuxue Feng NEW
Izzy GarufiUnited KingdomBernardo Dominic NEGOTIATION
Leon OldroydSpainOnyama Limba NEGOTIATION
Jeanfrancois VenereJapanStephen Shaw QUALIFIED
Arvin AlbaresUnited KingdomAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethAustralia2026-05-09Rousseaux, Michael Esq QUALIFIED65Amy Elsner
1001Wickens NestleCanada2026-05-13Rousseaux, Michael Esq RENEWAL49Stephen Shaw
1002Izzy GarufiCanada2026-05-04Feltz Printing Service RENEWAL20Anna Fali
1003Adams MorascaJapan2026-05-14Chemel, James L Cpa QUALIFIED83Ivan Magalhaes
1004Aika InouyeJapan2026-04-29Buckley Miller Wright QUALIFIED54Amy Elsner
1005Ivar PaprockiGermany2026-05-13King, Christopher A Esq UNQUALIFIED71Onyama Limba
1006Jones VocelkaCanada2026-05-20Buckley Miller Wright PROPOSAL34Asiya Javayant
1007Johnson SergiAustralia2026-05-15Dorl, James J Esq RENEWAL44Stephen Shaw
1008Maria MarrierGermany2026-05-18Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1009Leon OldroydIndia2026-05-01Dorl, James J Esq NEGOTIATION69Stephen Shaw
1010Leja CaldareraRussia2026-05-01King, Christopher A Esq PROPOSAL5Stephen Shaw
1011David DarakjyIndia2026-04-30Rangoni Of Florence QUALIFIED81Anna Fali
1012Aditya KuskoJapan2026-05-10Rangoni Of Florence NEGOTIATION43Ioni Bowcher
1013Smith GlickCanada2026-04-28Commercial Press NEW8Ioni Bowcher
1014Johnson SergiArgentina2026-05-06Morlong Associates QUALIFIED50Bernardo Dominic
1015Cody SaylorsIndia2026-05-23Feltz Printing Service QUALIFIED44Asiya Javayant
1016Smith GlickGermany2026-05-14Buckley Miller Wright NEW66Stephen Shaw
1017Antonio CaudyJapan2026-04-28Rangoni Of Florence NEGOTIATION31Elwin Sharvill
1018Stacey MacleadIndia2026-05-05Chapman, Ross E Esq PROPOSAL23Anna Fali
1019Aditya KuskoAustralia2026-05-14Rangoni Of Florence NEW65Asiya Javayant
1020Faith GillianBrazil2026-05-05Rangoni Of Florence UNQUALIFIED82Onyama Limba
1021Arvin AlbaresCanada2026-05-02Morlong Associates NEW41Asiya Javayant
1022Adams MorascaCanada2026-05-11Printing Dimensions NEW32Ioni Bowcher
1023Jones VocelkaIndia2026-05-01Truhlar And Truhlar Attys NEGOTIATION59Elwin Sharvill
1024Francesco ShinkoUnited Kingdom2026-05-22Feiner Bros NEGOTIATION79Asiya Javayant
1025Kaitlin OstroskyArgentina2026-05-23Rousseaux, Michael Esq RENEWAL55Anna Fali
1026Emily WhobreyFrance2026-05-23Dorl, James J Esq QUALIFIED39Stephen Shaw
1027Chavez BriddickItaly2026-05-08Commercial Press QUALIFIED53Stephen Shaw
1028Adams MorascaFrance2026-05-11Truhlar And Truhlar Attys UNQUALIFIED94Ivan Magalhaes
1029Jennifer AmigonSpain2026-04-30Benton, John B Jr UNQUALIFIED12Xuxue Feng
1030Leon OldroydFrance2026-05-02King, Christopher A Esq UNQUALIFIED33Stephen Shaw
1031Claire TollnerArgentina2026-05-04Dorl, James J Esq PROPOSAL47Bernardo Dominic
1032Costa DilliardSpain2026-05-11Truhlar And Truhlar Attys UNQUALIFIED96Asiya Javayant
1033Emily WhobreyGermany2026-05-15Rousseaux, Michael Esq NEGOTIATION41Asiya Javayant
1034Arvin AlbaresSpain2026-05-18Feiner Bros NEGOTIATION23Asiya Javayant
1035Mayumi KolmetzBrazil2026-05-20Chanay, Jeffrey A Esq UNQUALIFIED87Amy Elsner
1036Morrow RutaFrance2026-05-11Dorl, James J Esq RENEWAL30Anna Fali
1037Murillo MaletRussia2026-05-23Commercial Press RENEWAL72Ivan Magalhaes
1038Julie StensethSpain2026-05-16Benton, John B Jr QUALIFIED29Elwin Sharvill
1039Salvatore StockhamAustralia2026-04-30King, Christopher A Esq UNQUALIFIED81Asiya Javayant
1040Munro FerenczItaly2026-05-21Rousseaux, Michael Esq NEW10Stephen Shaw
1041Octavia MaletArgentina2026-05-19Rangoni Of Florence QUALIFIED61Anna Fali
1042Kadeem FlosiRussia2026-05-04Morlong Associates NEW16Stephen Shaw
1043Costa DilliardArgentina2026-05-17Commercial Press UNQUALIFIED17Xuxue Feng
1044Jennifer AmigonCanada2026-04-30Commercial Press NEW92Anna Fali
1045Nicolas IturbideRussia2026-05-16Commercial Press NEGOTIATION69Bernardo Dominic
1046Maisha RulapaughRussia2026-04-29King, Christopher A Esq NEW44Ioni Bowcher
1047Kadeem FlosiAustralia2026-04-29Rangoni Of Florence PROPOSAL41Stephen Shaw
1048Silvio SlusarskiIndia2026-05-10Printing Dimensions RENEWAL43Ioni Bowcher
1049Maria MarrierCanada2026-05-22Feiner Bros UNQUALIFIED38Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimBrazilIvan Magalhaes NEW
Jones VocelkaItalyAmy Elsner RENEWAL
Ashley DoeSpainAsiya Javayant QUALIFIED
Leja CaldareraAustraliaBernardo Dominic PROPOSAL
Aruna FigeroaJapanOnyama Limba QUALIFIED
Juan WieserIndiaIvan Magalhaes UNQUALIFIED
Ivar PaprockiAustraliaAnna Fali QUALIFIED
Leja CaldareraIndiaAmy Elsner QUALIFIED
Rodrigues CampainIndiaIvan Magalhaes QUALIFIED
Aruna FigeroaSpainIoni Bowcher PROPOSAL
Cody SaylorsItalyAnna Fali QUALIFIED
Leon OldroydCanadaStephen Shaw PROPOSAL
Adams MorascaSpainAnna Fali PROPOSAL
Aika InouyeUnited KingdomAmy Elsner PROPOSAL
Leja CaldareraJapanOnyama Limba QUALIFIED
Smith GlickRussiaOnyama Limba NEGOTIATION
Deepesh ChuiItalyIoni Bowcher NEGOTIATION
Clifford RimIndiaAmy Elsner UNQUALIFIED
Greenwood BologniaArgentinaIoni Bowcher RENEWAL
David DarakjyJapanAmy Elsner QUALIFIED
Jennifer AmigonIndiaStephen Shaw PROPOSAL
Isabel BowleyBrazilBernardo Dominic UNQUALIFIED
Izzy GarufiItalyElwin Sharvill PROPOSAL
Rodrigues CampainFranceElwin Sharvill UNQUALIFIED
Darci PoquetteCanadaAnna Fali UNQUALIFIED
Emily WhobreyBrazilElwin Sharvill RENEWAL
Leon OldroydArgentinaXuxue Feng NEGOTIATION
Murillo MaletRussiaIvan Magalhaes PROPOSAL
Ricardo GauchoItalyElwin Sharvill NEW
Nicolas IturbideBrazilBernardo Dominic NEW
Jefferson SchemmerIndiaElwin Sharvill PROPOSAL
Juan WieserAustraliaAsiya Javayant RENEWAL
Julie StensethArgentinaAmy Elsner QUALIFIED
Aika InouyeCanadaXuxue Feng RENEWAL
Adams MorascaSpainStephen Shaw RENEWAL
Faith GillianIndiaElwin Sharvill NEGOTIATION
Ricardo GauchoGermanyStephen Shaw NEW
Morrow RutaBrazilBernardo Dominic NEW
Nicolas IturbideBrazilIvan Magalhaes PROPOSAL
Munro FerenczCanadaIoni Bowcher UNQUALIFIED
Kadeem FlosiItalyXuxue Feng NEW
Aditya KuskoGermanyStephen Shaw QUALIFIED
Antonio CaudyAustraliaIvan Magalhaes NEW
Salvatore StockhamAustraliaXuxue Feng NEW
Sinclair WaycottUnited KingdomStephen Shaw PROPOSAL
David DarakjyGermanyAnna Fali UNQUALIFIED
Alejandro PerinItalyAmy Elsner RENEWAL
James ButtFranceIvan Magalhaes UNQUALIFIED
Juan WieserArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletJapanElwin Sharvill PROPOSAL
Frozen Columns
Name
Faith Gillian
Chavez Briddick
James Butt
Isabel Bowley
Jones Vocelka
Maisha Rulapaugh
Leja Caldarera
Faith Gillian
Claire Tollner
Ashley Doe
Johnson Sergi
Isabel Bowley
Tony Foller
Izzy Garufi
Costa Dilliard
Jefferson Schemmer
Aruna Figeroa
Smith Glick
Chavez Briddick
Mujtaba Nicka
Smith Glick
Francesco Shinko
Ivar Paprocki
Leja Caldarera
James Butt
Mayumi Kolmetz
David Darakjy
Izzy Garufi
Munro Ferencz
Clifford Rim
Morrow Ruta
James Butt
Julie Stenseth
James Butt
Tony Foller
Rodrigues Campain
Morrow Ruta
Ricardo Gaucho
Jones Vocelka
James Butt
Deepesh Chui
Salvatore Stockham
Izzy Garufi
Leja Caldarera
Silvio Slusarski
Costa Dilliard
Johnson Sergi
James Butt
Silvio Slusarski
Murillo Malet
IdCountryDate
1000Argentina2026-05-19
1001Japan2026-05-23
1002Germany2026-05-04
1003Spain2026-05-25
1004Brazil2026-05-03
1005Japan2026-05-24
1006France2026-05-23
1007France2026-05-19
1008Canada2026-05-07
1009Argentina2026-04-29
1010Brazil2026-05-03
1011Germany2026-05-06
1012Brazil2026-05-25
1013Canada2026-04-29
1014France2026-04-30
1015Canada2026-05-19
1016United Kingdom2026-05-06
1017Japan2026-05-11
1018Canada2026-05-11
1019Japan2026-05-24
1020Spain2026-04-27
1021Russia2026-05-10
1022India2026-05-01
1023France2026-05-17
1024India2026-04-27
1025Germany2026-05-25
1026Argentina2026-05-20
1027France2026-04-26
1028France2026-05-05
1029India2026-05-02
1030United Kingdom2026-05-23
1031India2026-05-20
1032Argentina2026-04-29
1033United Kingdom2026-05-16
1034Spain2026-05-05
1035Brazil2026-05-20
1036Argentina2026-05-11
1037Spain2026-05-06
1038Italy2026-05-03
1039United Kingdom2026-05-10
1040Russia2026-05-17
1041France2026-05-10
1042Australia2026-05-13
1043Australia2026-05-11
1044Germany2026-05-17
1045Italy2026-05-05
1046Canada2026-05-18
1047Italy2026-05-10
1048France2026-05-16
1049Japan2026-05-16

On-Demand Data

NameIdCountryDate
Juan Wieser1000Spain2026-05-22
Munro Ferencz1001India2026-05-11
Izzy Garufi1002India2026-04-30
Jones Vocelka1003India2026-05-19
Tony Foller1004Argentina2026-05-03
Maisha Rulapaugh1005Spain2026-05-02
Aruna Figeroa1006Argentina2026-05-05
Wickens Nestle1007France2026-04-28
Salvatore Stockham1008Canada2026-04-27
Smith Glick1009Russia2026-04-27
Izzy Garufi1010India2026-05-09
Murillo Malet1011Italy2026-05-02
Clifford Rim1012Italy2026-05-03
David Darakjy1013Spain2026-05-05
Emily Whobrey1014Japan2026-05-07
Jeanfrancois Venere1015India2026-05-08
Ricardo Gaucho1016Italy2026-05-12
Ricardo Gaucho1017France2026-05-19
Greenwood Bolognia1018Canada2026-05-12
Ivar Paprocki1019Japan2026-05-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyArgentinaBernardo Dominic NEW
Jennifer AmigonJapanStephen Shaw QUALIFIED
Murillo MaletBrazilIvan Magalhaes NEGOTIATION
Munro FerenczGermanyBernardo Dominic NEW
James ButtFranceAsiya Javayant PROPOSAL
Salvatore StockhamCanadaAsiya Javayant NEW
Francesco ShinkoCanadaBernardo Dominic NEGOTIATION
Aika InouyeCanadaIvan Magalhaes NEW
Clifford RimAustraliaStephen Shaw PROPOSAL
Stacey MacleadIndiaElwin Sharvill PROPOSAL
Smith GlickJapanAsiya Javayant QUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes QUALIFIED
James ButtGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoSpainIvan Magalhaes PROPOSAL
Tony FollerItalyIoni Bowcher RENEWAL
Aditya KuskoItalyBernardo Dominic QUALIFIED
Salvatore StockhamRussiaIoni Bowcher NEGOTIATION
Mayumi KolmetzSpainElwin Sharvill RENEWAL
Francesco ShinkoFranceOnyama Limba NEW
Stacey MacleadIndiaBernardo Dominic NEGOTIATION
Kaitlin OstroskyCanadaIvan Magalhaes NEGOTIATION
Octavia MaletIndiaAmy Elsner RENEWAL
Aruna FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Maisha RulapaughBrazilOnyama Limba UNQUALIFIED
Kaitlin OstroskyCanadaAsiya Javayant QUALIFIED
Jones VocelkaJapanIoni Bowcher UNQUALIFIED
Julie StensethUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiSpainXuxue Feng NEW
Faith GillianArgentinaIvan Magalhaes NEGOTIATION
Stacey MacleadRussiaIoni Bowcher NEW
Mayumi KolmetzJapanAnna Fali UNQUALIFIED
Maria MarrierGermanyXuxue Feng UNQUALIFIED
Ivar PaprockiJapanIvan Magalhaes PROPOSAL
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Maria MarrierJapanIoni Bowcher UNQUALIFIED
Maria MarrierArgentinaIoni Bowcher NEW
Munro FerenczSpainBernardo Dominic NEW
Mayumi KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Aika InouyeCanadaXuxue Feng NEW
James ButtAustraliaAnna Fali 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>