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
Sinclair WaycottSpainBernardo Dominic NEW
Ricardo GauchoArgentinaAnna Fali PROPOSAL
Aditya KuskoFranceXuxue Feng UNQUALIFIED
Octavia MaletFranceIoni Bowcher RENEWAL
Emily WhobreyAustraliaOnyama Limba RENEWAL
Antonio CaudyItalyStephen Shaw NEGOTIATION
Sinclair WaycottBrazilElwin Sharvill PROPOSAL
Jefferson SchemmerAustraliaAsiya Javayant NEW
Aruna FigeroaCanadaAsiya Javayant NEW
Kaitlin OstroskyBrazilIoni Bowcher NEGOTIATION
Greenwood BologniaAustraliaAsiya Javayant QUALIFIED
Aruna FigeroaCanadaElwin Sharvill QUALIFIED
Ashley DoeFranceAmy Elsner NEGOTIATION
Salvatore StockhamIndiaStephen Shaw NEW
Greenwood BologniaRussiaAmy Elsner RENEWAL
Chavez BriddickRussiaBernardo Dominic PROPOSAL
Alejandro PerinCanadaXuxue Feng UNQUALIFIED
Maisha RulapaughUnited KingdomIvan Magalhaes RENEWAL
Jeanfrancois VenereFranceXuxue Feng UNQUALIFIED
Silvio SlusarskiItalyIoni Bowcher NEGOTIATION
Silvio SlusarskiAustraliaElwin Sharvill RENEWAL
Alejandro PerinItalyElwin Sharvill RENEWAL
Adams MorascaJapanXuxue Feng PROPOSAL
Aika InouyeSpainElwin Sharvill RENEWAL
Arvin AlbaresRussiaAsiya Javayant QUALIFIED
Octavia MaletSpainXuxue Feng PROPOSAL
Murillo MaletIndiaXuxue Feng PROPOSAL
Faith GillianJapanIvan Magalhaes NEGOTIATION
Leon OldroydIndiaIoni Bowcher PROPOSAL
Faith GillianFranceAmy Elsner UNQUALIFIED
Aruna FigeroaGermanyAnna Fali NEGOTIATION
Wickens NestleIndiaAnna Fali NEW
Cody SaylorsItalyOnyama Limba RENEWAL
Chavez BriddickArgentinaBernardo Dominic NEW
Clifford RimIndiaOnyama Limba NEW
Costa DilliardFranceAmy Elsner NEW
Leon OldroydRussiaIvan Magalhaes RENEWAL
Aditya KuskoArgentinaXuxue Feng PROPOSAL
Jeanfrancois VenereRussiaAnna Fali PROPOSAL
Claire TollnerFranceIoni Bowcher UNQUALIFIED
Ashley DoeRussiaAsiya Javayant NEGOTIATION
Octavia MaletJapanIoni Bowcher UNQUALIFIED
Izzy GarufiJapanAmy Elsner PROPOSAL
Leon OldroydCanadaIoni Bowcher PROPOSAL
Salvatore StockhamCanadaAsiya Javayant PROPOSAL
Salvatore StockhamCanadaAmy Elsner NEGOTIATION
Tony FollerArgentinaBernardo Dominic RENEWAL
Jefferson SchemmerArgentinaIoni Bowcher QUALIFIED
Leja CaldareraIndiaStephen Shaw NEW
Faith GillianGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiRussiaXuxue Feng QUALIFIED
Wickens NestleArgentinaAmy Elsner UNQUALIFIED
Wickens NestleRussiaAmy Elsner RENEWAL
Sinclair WaycottArgentinaBernardo Dominic UNQUALIFIED
Maisha RulapaughRussiaElwin Sharvill NEW
Adams MorascaSpainAmy Elsner PROPOSAL
Maria MarrierSpainIoni Bowcher NEGOTIATION
Juan WieserRussiaElwin Sharvill NEGOTIATION
Ricardo GauchoFranceOnyama Limba RENEWAL
Tony FollerUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerUnited Kingdom2026-06-06Rousseaux, Michael Esq PROPOSAL2Asiya Javayant
1001Antonio CaudyBrazil2026-06-02King, Christopher A Esq NEGOTIATION44Xuxue Feng
1002Silvio SlusarskiBrazil2026-05-21Chanay, Jeffrey A Esq QUALIFIED97Asiya Javayant
1003Aditya KuskoItaly2026-06-01Morlong Associates RENEWAL66Ivan Magalhaes
1004Maisha RulapaughArgentina2026-06-03Feltz Printing Service RENEWAL68Amy Elsner
1005Isabel BowleyIndia2026-06-06Dorl, James J Esq NEW37Ivan Magalhaes
1006Octavia MaletItaly2026-05-23Chemel, James L Cpa NEGOTIATION21Onyama Limba
1007Ashley DoeBrazil2026-06-12Buckley Miller Wright UNQUALIFIED57Elwin Sharvill
1008Tony FollerBrazil2026-06-05Dorl, James J Esq NEGOTIATION11Anna Fali
1009Octavia MaletRussia2026-05-29Chanay, Jeffrey A Esq NEGOTIATION59Elwin Sharvill
1010Stacey MacleadBrazil2026-06-04Chapman, Ross E Esq PROPOSAL10Bernardo Dominic
1011Nicolas IturbideGermany2026-05-18Commercial Press RENEWAL86Asiya Javayant
1012Leja CaldareraBrazil2026-06-06Rangoni Of Florence NEW94Ioni Bowcher
1013Kadeem FlosiIndia2026-06-11Chemel, James L Cpa NEW1Ivan Magalhaes
1014Ricardo GauchoAustralia2026-06-12Feiner Bros NEGOTIATION86Xuxue Feng
1015Maisha RulapaughCanada2026-06-07Benton, John B Jr RENEWAL44Ioni Bowcher
1016Jefferson SchemmerIndia2026-06-07Rousseaux, Michael Esq NEGOTIATION75Xuxue Feng
1017Stacey MacleadGermany2026-05-20Feltz Printing Service UNQUALIFIED10Ivan Magalhaes
1018Wickens NestleCanada2026-05-22Chapman, Ross E Esq NEW32Onyama Limba
1019Tony FollerAustralia2026-06-15Feltz Printing Service RENEWAL71Ioni Bowcher
1020Ivar PaprockiSpain2026-06-01Morlong Associates NEGOTIATION44Stephen Shaw
1021Tony FollerCanada2026-05-26Commercial Press NEW62Elwin Sharvill
1022Emily WhobreyArgentina2026-06-05Chapman, Ross E Esq UNQUALIFIED34Onyama Limba
1023Aruna FigeroaFrance2026-05-20Feiner Bros UNQUALIFIED54Bernardo Dominic
1024Tony FollerJapan2026-06-13Chemel, James L Cpa NEGOTIATION65Amy Elsner
1025Claire TollnerAustralia2026-06-05King, Christopher A Esq PROPOSAL33Amy Elsner
1026Kaitlin OstroskyRussia2026-05-25Dorl, James J Esq RENEWAL24Bernardo Dominic
1027Johnson SergiBrazil2026-05-18Chapman, Ross E Esq UNQUALIFIED64Asiya Javayant
1028Faith GillianArgentina2026-06-15Buckley Miller Wright NEW16Anna Fali
1029Emily WhobreyCanada2026-05-19Truhlar And Truhlar Attys UNQUALIFIED38Asiya Javayant
1030Kaitlin OstroskyArgentina2026-05-22Commercial Press RENEWAL35Elwin Sharvill
1031Leon OldroydIndia2026-06-01Rousseaux, Michael Esq UNQUALIFIED98Stephen Shaw
1032Wickens NestleItaly2026-06-05Chapman, Ross E Esq NEGOTIATION78Ivan Magalhaes
1033Smith GlickItaly2026-06-07Rousseaux, Michael Esq QUALIFIED10Amy Elsner
1034Ivar PaprockiUnited Kingdom2026-05-29Commercial Press PROPOSAL2Anna Fali
1035Munro FerenczIndia2026-05-23Chanay, Jeffrey A Esq RENEWAL24Ioni Bowcher
1036Stacey MacleadCanada2026-06-11Rousseaux, Michael Esq NEW31Stephen Shaw
1037Morrow RutaJapan2026-06-09Chapman, Ross E Esq QUALIFIED73Onyama Limba
1038Izzy GarufiBrazil2026-06-13Chapman, Ross E Esq UNQUALIFIED97Amy Elsner
1039Ashley DoeUnited Kingdom2026-06-13Rangoni Of Florence UNQUALIFIED81Asiya Javayant
1040Johnson SergiAustralia2026-05-28Chemel, James L Cpa NEW17Stephen Shaw
1041Deepesh ChuiItaly2026-05-19Feiner Bros RENEWAL51Onyama Limba
1042Deepesh ChuiGermany2026-05-20Commercial Press QUALIFIED60Elwin Sharvill
1043Ashley DoeItaly2026-05-30Commercial Press PROPOSAL63Ivan Magalhaes
1044Cody SaylorsSpain2026-06-06Chemel, James L Cpa PROPOSAL8Anna Fali
1045Chavez BriddickIndia2026-05-27King, Christopher A Esq QUALIFIED78Ioni Bowcher
1046Izzy GarufiBrazil2026-05-27Feiner Bros QUALIFIED74Stephen Shaw
1047Ricardo GauchoAustralia2026-05-26Feltz Printing Service RENEWAL63Amy Elsner
1048David DarakjyItaly2026-05-29Chapman, Ross E Esq NEW78Stephen Shaw
1049Ricardo GauchoArgentina2026-06-13Rangoni Of Florence PROPOSAL49Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerJapanAsiya Javayant NEW
Kadeem FlosiFranceIvan Magalhaes NEGOTIATION
Tony FollerBrazilStephen Shaw NEW
Mujtaba NickaFranceStephen Shaw PROPOSAL
Faith GillianBrazilStephen Shaw NEW
Jeanfrancois VenereRussiaAnna Fali NEW
Emily WhobreyGermanyXuxue Feng UNQUALIFIED
Johnson SergiBrazilIoni Bowcher RENEWAL
David DarakjyGermanyOnyama Limba NEW
Murillo MaletGermanyElwin Sharvill QUALIFIED
Deepesh ChuiGermanyAmy Elsner UNQUALIFIED
James ButtRussiaAsiya Javayant RENEWAL
Aruna FigeroaFranceElwin Sharvill RENEWAL
Munro FerenczAustraliaAnna Fali RENEWAL
Aika InouyeGermanyBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill QUALIFIED
Munro FerenczIndiaStephen Shaw RENEWAL
James ButtAustraliaAnna Fali PROPOSAL
Adams MorascaFranceXuxue Feng PROPOSAL
Cody SaylorsBrazilXuxue Feng UNQUALIFIED
James ButtJapanOnyama Limba NEW
Ashley DoeBrazilAsiya Javayant RENEWAL
Maria MarrierUnited KingdomIvan Magalhaes NEGOTIATION
David DarakjyJapanBernardo Dominic NEW
Maria MarrierGermanyAmy Elsner QUALIFIED
Maria MarrierBrazilAsiya Javayant PROPOSAL
Maisha RulapaughBrazilIvan Magalhaes UNQUALIFIED
Murillo MaletJapanIoni Bowcher PROPOSAL
Salvatore StockhamArgentinaXuxue Feng NEGOTIATION
Chavez BriddickJapanAsiya Javayant RENEWAL
Ricardo GauchoJapanIvan Magalhaes UNQUALIFIED
Aditya KuskoIndiaBernardo Dominic RENEWAL
Silvio SlusarskiGermanyElwin Sharvill PROPOSAL
Wickens NestleJapanXuxue Feng NEW
Mujtaba NickaJapanBernardo Dominic PROPOSAL
Claire TollnerItalyStephen Shaw QUALIFIED
Rodrigues CampainFranceIoni Bowcher UNQUALIFIED
Mayumi KolmetzRussiaBernardo Dominic NEGOTIATION
Claire TollnerUnited KingdomElwin Sharvill QUALIFIED
Smith GlickAustraliaIvan Magalhaes UNQUALIFIED
Jennifer AmigonItalyIoni Bowcher PROPOSAL
Maria MarrierArgentinaAsiya Javayant QUALIFIED
Emily WhobreyGermanyOnyama Limba UNQUALIFIED
Cody SaylorsCanadaStephen Shaw NEGOTIATION
Jefferson SchemmerBrazilAsiya Javayant PROPOSAL
Ivar PaprockiRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher RENEWAL
James ButtRussiaAmy Elsner PROPOSAL
Jones VocelkaSpainAmy Elsner RENEWAL
Adams MorascaSpainOnyama Limba QUALIFIED
Frozen Columns
Name
Salvatore Stockham
Deepesh Chui
Darci Poquette
Antonio Caudy
Darci Poquette
Leon Oldroyd
Ashley Doe
Ashley Doe
Misaki Royster
Maria Marrier
Ivar Paprocki
Chavez Briddick
Jones Vocelka
Juan Wieser
Kaitlin Ostrosky
Leja Caldarera
Francesco Shinko
Jeanfrancois Venere
Jones Vocelka
Tony Foller
Emily Whobrey
Isabel Bowley
Aika Inouye
Clifford Rim
Wickens Nestle
Aruna Figeroa
Jeanfrancois Venere
Juan Wieser
Jeanfrancois Venere
Aruna Figeroa
Jones Vocelka
Rodrigues Campain
Misaki Royster
Jennifer Amigon
Salvatore Stockham
Stacey Maclead
Ashley Doe
Tony Foller
Misaki Royster
Wickens Nestle
Leon Oldroyd
Deepesh Chui
Smith Glick
Cody Saylors
Mujtaba Nicka
Sinclair Waycott
Arvin Albares
Maria Marrier
Darci Poquette
David Darakjy
IdCountryDate
1000Australia2026-05-21
1001Spain2026-06-03
1002Italy2026-06-07
1003Germany2026-05-17
1004Argentina2026-06-03
1005Australia2026-06-02
1006Japan2026-05-28
1007India2026-05-27
1008Canada2026-05-28
1009Canada2026-05-26
1010Argentina2026-06-02
1011Brazil2026-05-19
1012Italy2026-06-06
1013Japan2026-06-15
1014Canada2026-05-21
1015Argentina2026-05-27
1016Brazil2026-06-12
1017Australia2026-06-09
1018Japan2026-05-18
1019India2026-05-27
1020India2026-05-20
1021Japan2026-05-28
1022Canada2026-05-17
1023Argentina2026-05-31
1024United Kingdom2026-05-29
1025India2026-05-19
1026India2026-05-31
1027Argentina2026-06-07
1028India2026-06-03
1029Canada2026-06-05
1030France2026-05-28
1031Brazil2026-06-06
1032Argentina2026-06-04
1033Australia2026-06-06
1034Germany2026-06-02
1035Argentina2026-06-10
1036Russia2026-06-05
1037Italy2026-06-04
1038France2026-05-20
1039Spain2026-06-03
1040Germany2026-05-25
1041Canada2026-06-13
1042Brazil2026-06-14
1043France2026-06-06
1044Canada2026-06-03
1045Spain2026-06-04
1046Japan2026-05-17
1047United Kingdom2026-06-15
1048Japan2026-06-02
1049Argentina2026-05-19

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Japan2026-06-07
Faith Gillian1001France2026-05-18
Jeanfrancois Venere1002France2026-05-25
Wickens Nestle1003Spain2026-06-06
Stacey Maclead1004Germany2026-06-04
Costa Dilliard1005Argentina2026-06-01
Darci Poquette1006Australia2026-06-03
David Darakjy1007Japan2026-05-17
Maria Marrier1008Russia2026-06-06
Morrow Ruta1009United Kingdom2026-05-31
David Darakjy1010Canada2026-05-28
Costa Dilliard1011Russia2026-05-18
Greenwood Bolognia1012Russia2026-05-23
Aditya Kusko1013Canada2026-06-08
Jennifer Amigon1014Australia2026-06-09
Costa Dilliard1015France2026-06-03
Chavez Briddick1016Italy2026-05-27
Rodrigues Campain1017France2026-05-27
Jones Vocelka1018Japan2026-05-19
Cody Saylors1019Brazil2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardFranceStephen Shaw NEGOTIATION
Salvatore StockhamCanadaElwin Sharvill UNQUALIFIED
Wickens NestleRussiaStephen Shaw UNQUALIFIED
Costa DilliardRussiaIoni Bowcher RENEWAL
Isabel BowleyRussiaXuxue Feng UNQUALIFIED
Greenwood BologniaArgentinaOnyama Limba QUALIFIED
Wickens NestleGermanyAmy Elsner PROPOSAL
Munro FerenczFranceBernardo Dominic PROPOSAL
Darci PoquetteArgentinaIvan Magalhaes NEW
Antonio CaudyArgentinaIoni Bowcher QUALIFIED
Izzy GarufiSpainAnna Fali NEW
Francesco ShinkoSpainIoni Bowcher NEW
Jeanfrancois VenereRussiaIoni Bowcher QUALIFIED
Darci PoquetteItalyIoni Bowcher NEW
Clifford RimSpainIoni Bowcher UNQUALIFIED
Kadeem FlosiBrazilIoni Bowcher QUALIFIED
Greenwood BologniaJapanAmy Elsner NEW
Jones VocelkaAustraliaIvan Magalhaes NEW
Chavez BriddickBrazilXuxue Feng UNQUALIFIED
Ricardo GauchoSpainBernardo Dominic PROPOSAL
Leon OldroydSpainAnna Fali PROPOSAL
Jones VocelkaCanadaElwin Sharvill NEW
Ricardo GauchoCanadaAsiya Javayant UNQUALIFIED
Ricardo GauchoRussiaIvan Magalhaes NEW
Darci PoquetteArgentinaStephen Shaw QUALIFIED
Jeanfrancois VenereRussiaBernardo Dominic QUALIFIED
Clifford RimCanadaOnyama Limba PROPOSAL
Mujtaba NickaSpainBernardo Dominic PROPOSAL
Isabel BowleyBrazilElwin Sharvill RENEWAL
Kadeem FlosiIndiaStephen Shaw RENEWAL
Johnson SergiBrazilXuxue Feng UNQUALIFIED
Faith GillianItalyBernardo Dominic QUALIFIED
Alejandro PerinItalyIvan Magalhaes PROPOSAL
Munro FerenczFranceStephen Shaw RENEWAL
Morrow RutaCanadaBernardo Dominic UNQUALIFIED
Sinclair WaycottAustraliaIvan Magalhaes NEW
James ButtUnited KingdomIvan Magalhaes NEW
Ashley DoeItalyXuxue Feng PROPOSAL
Francesco ShinkoBrazilElwin Sharvill NEW
Wickens NestleItalyStephen Shaw 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>