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
Izzy GarufiFranceElwin Sharvill NEGOTIATION
Aditya KuskoSpainAmy Elsner RENEWAL
Chavez BriddickJapanIoni Bowcher NEW
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Arvin AlbaresRussiaAsiya Javayant QUALIFIED
Rodrigues CampainAustraliaElwin Sharvill QUALIFIED
Leon OldroydRussiaXuxue Feng NEW
Misaki RoysterIndiaAnna Fali NEW
Johnson SergiRussiaElwin Sharvill NEGOTIATION
Maria MarrierItalyAmy Elsner PROPOSAL
Morrow RutaSpainAmy Elsner QUALIFIED
Costa DilliardCanadaAnna Fali PROPOSAL
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Maisha RulapaughRussiaAsiya Javayant RENEWAL
Clifford RimItalyIoni Bowcher PROPOSAL
Munro FerenczUnited KingdomIoni Bowcher RENEWAL
Salvatore StockhamSpainIoni Bowcher QUALIFIED
Claire TollnerRussiaStephen Shaw QUALIFIED
Mujtaba NickaRussiaBernardo Dominic RENEWAL
Morrow RutaArgentinaAmy Elsner NEGOTIATION
Juan WieserCanadaIvan Magalhaes UNQUALIFIED
Arvin AlbaresSpainBernardo Dominic UNQUALIFIED
Maria MarrierUnited KingdomElwin Sharvill PROPOSAL
Mujtaba NickaAustraliaXuxue Feng QUALIFIED
Tony FollerUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois VenereBrazilIoni Bowcher UNQUALIFIED
Smith GlickAustraliaAmy Elsner PROPOSAL
Munro FerenczIndiaAsiya Javayant NEGOTIATION
Jefferson SchemmerItalyIoni Bowcher RENEWAL
Salvatore StockhamUnited KingdomXuxue Feng NEGOTIATION
Claire TollnerCanadaBernardo Dominic NEGOTIATION
James ButtFranceBernardo Dominic NEW
Aruna FigeroaJapanElwin Sharvill NEW
James ButtArgentinaAsiya Javayant RENEWAL
Kadeem FlosiIndiaIvan Magalhaes UNQUALIFIED
Munro FerenczCanadaAsiya Javayant PROPOSAL
Greenwood BologniaSpainStephen Shaw NEW
Cody SaylorsCanadaOnyama Limba UNQUALIFIED
Francesco ShinkoArgentinaAmy Elsner NEW
Kadeem FlosiFranceAnna Fali NEGOTIATION
Isabel BowleySpainXuxue Feng NEGOTIATION
Francesco ShinkoBrazilXuxue Feng RENEWAL
Octavia MaletSpainIvan Magalhaes RENEWAL
Morrow RutaRussiaAsiya Javayant NEGOTIATION
Munro FerenczFranceAsiya Javayant NEGOTIATION
Deepesh ChuiGermanyIvan Magalhaes PROPOSAL
Claire TollnerGermanyStephen Shaw NEW
Maisha RulapaughUnited KingdomBernardo Dominic PROPOSAL
Arvin AlbaresArgentinaBernardo Dominic PROPOSAL
James ButtItalyIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford RimIndiaIoni Bowcher RENEWAL
Maisha RulapaughFranceAmy Elsner NEGOTIATION
Stacey MacleadGermanyBernardo Dominic NEW
Nicolas IturbideUnited KingdomIoni Bowcher PROPOSAL
Kadeem FlosiGermanyElwin Sharvill NEW
Silvio SlusarskiBrazilAmy Elsner UNQUALIFIED
Juan WieserFranceBernardo Dominic PROPOSAL
Juan WieserIndiaBernardo Dominic UNQUALIFIED
Mujtaba NickaSpainAnna Fali UNQUALIFIED
Morrow RutaJapanOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydGermany2026-04-20Dorl, James J Esq NEW12Anna Fali
1001Arvin AlbaresRussia2026-04-09Benton, John B Jr NEGOTIATION71Anna Fali
1002Francesco ShinkoJapan2026-04-11Dorl, James J Esq NEGOTIATION48Asiya Javayant
1003Ricardo GauchoAustralia2026-04-28Feiner Bros QUALIFIED29Ioni Bowcher
1004Clifford RimArgentina2026-04-09Chemel, James L Cpa PROPOSAL0Xuxue Feng
1005Claire TollnerBrazil2026-04-24Morlong Associates QUALIFIED8Anna Fali
1006Maria MarrierSpain2026-04-28Dorl, James J Esq QUALIFIED21Ioni Bowcher
1007Claire TollnerSpain2026-04-11Commercial Press PROPOSAL55Asiya Javayant
1008Tony FollerJapan2026-04-14Chapman, Ross E Esq NEW91Onyama Limba
1009Salvatore StockhamFrance2026-04-14Printing Dimensions QUALIFIED57Onyama Limba
1010Rodrigues CampainArgentina2026-04-20Dorl, James J Esq QUALIFIED30Anna Fali
1011Adams MorascaArgentina2026-04-04Rousseaux, Michael Esq UNQUALIFIED86Ioni Bowcher
1012Juan WieserJapan2026-04-10Buckley Miller Wright UNQUALIFIED13Asiya Javayant
1013Leon OldroydCanada2026-04-10Chanay, Jeffrey A Esq QUALIFIED32Elwin Sharvill
1014Faith GillianJapan2026-04-06Truhlar And Truhlar Attys RENEWAL82Xuxue Feng
1015Jeanfrancois VenereRussia2026-04-27Dorl, James J Esq RENEWAL97Elwin Sharvill
1016Izzy GarufiSpain2026-04-05Printing Dimensions QUALIFIED26Amy Elsner
1017Leja CaldareraRussia2026-04-04Chemel, James L Cpa NEGOTIATION85Anna Fali
1018Sinclair WaycottFrance2026-04-20Printing Dimensions QUALIFIED59Elwin Sharvill
1019Chavez BriddickArgentina2026-04-16Rangoni Of Florence QUALIFIED54Stephen Shaw
1020Jeanfrancois VenereAustralia2026-04-18Benton, John B Jr RENEWAL32Onyama Limba
1021Silvio SlusarskiAustralia2026-04-27Printing Dimensions NEGOTIATION78Ivan Magalhaes
1022Misaki RoysterJapan2026-04-30Commercial Press NEW36Elwin Sharvill
1023Johnson SergiCanada2026-04-05Printing Dimensions QUALIFIED87Elwin Sharvill
1024Maria MarrierCanada2026-05-01Truhlar And Truhlar Attys QUALIFIED23Ivan Magalhaes
1025Leja CaldareraArgentina2026-04-24Feiner Bros NEW95Asiya Javayant
1026Mujtaba NickaGermany2026-04-17King, Christopher A Esq UNQUALIFIED0Anna Fali
1027Darci PoquetteFrance2026-04-11Morlong Associates NEW3Ioni Bowcher
1028Jefferson SchemmerUnited Kingdom2026-04-13Buckley Miller Wright PROPOSAL22Onyama Limba
1029Ashley DoeBrazil2026-04-03Chapman, Ross E Esq NEW50Onyama Limba
1030Deepesh ChuiJapan2026-04-29Buckley Miller Wright PROPOSAL97Amy Elsner
1031Smith GlickArgentina2026-04-09Feltz Printing Service RENEWAL92Ivan Magalhaes
1032Clifford RimCanada2026-04-18Rousseaux, Michael Esq RENEWAL41Anna Fali
1033Leja CaldareraSpain2026-04-08Benton, John B Jr NEW56Stephen Shaw
1034Clifford RimItaly2026-04-03Feiner Bros UNQUALIFIED63Bernardo Dominic
1035Misaki RoysterGermany2026-04-14Feiner Bros UNQUALIFIED3Onyama Limba
1036Octavia MaletArgentina2026-04-04Feltz Printing Service UNQUALIFIED62Anna Fali
1037Sinclair WaycottItaly2026-04-16Chanay, Jeffrey A Esq PROPOSAL87Ioni Bowcher
1038Jefferson SchemmerBrazil2026-04-16Commercial Press NEGOTIATION31Amy Elsner
1039David DarakjyCanada2026-04-22King, Christopher A Esq RENEWAL56Anna Fali
1040Misaki RoysterArgentina2026-04-09Printing Dimensions UNQUALIFIED91Stephen Shaw
1041Ashley DoeFrance2026-04-09Rangoni Of Florence NEGOTIATION97Anna Fali
1042Misaki RoysterSpain2026-04-28Rousseaux, Michael Esq PROPOSAL98Xuxue Feng
1043Izzy GarufiAustralia2026-04-30Chapman, Ross E Esq UNQUALIFIED79Amy Elsner
1044Wickens NestleFrance2026-04-13Chanay, Jeffrey A Esq NEW68Anna Fali
1045Greenwood BologniaAustralia2026-04-09Feiner Bros RENEWAL5Ioni Bowcher
1046Jones VocelkaGermany2026-04-17Commercial Press NEW17Asiya Javayant
1047Jones VocelkaCanada2026-04-29Chapman, Ross E Esq PROPOSAL73Xuxue Feng
1048Aika InouyeBrazil2026-04-13Dorl, James J Esq QUALIFIED1Bernardo Dominic
1049Ivar PaprockiCanada2026-04-05Truhlar And Truhlar Attys UNQUALIFIED21Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaRussiaXuxue Feng PROPOSAL
Deepesh ChuiRussiaAmy Elsner NEGOTIATION
Nicolas IturbideUnited KingdomElwin Sharvill NEGOTIATION
Jeanfrancois VenereAustraliaAnna Fali UNQUALIFIED
Misaki RoysterUnited KingdomStephen Shaw PROPOSAL
Aditya KuskoBrazilIoni Bowcher QUALIFIED
Julie StensethItalyElwin Sharvill QUALIFIED
James ButtRussiaOnyama Limba PROPOSAL
Izzy GarufiFranceXuxue Feng UNQUALIFIED
Julie StensethAustraliaAnna Fali QUALIFIED
Izzy GarufiBrazilElwin Sharvill NEW
Juan WieserBrazilAmy Elsner UNQUALIFIED
Kadeem FlosiSpainIoni Bowcher PROPOSAL
Ricardo GauchoFranceAsiya Javayant UNQUALIFIED
Juan WieserSpainOnyama Limba QUALIFIED
Silvio SlusarskiFranceBernardo Dominic UNQUALIFIED
Aruna FigeroaCanadaAnna Fali UNQUALIFIED
Darci PoquetteAustraliaIvan Magalhaes RENEWAL
Stacey MacleadFranceAnna Fali NEGOTIATION
Leja CaldareraGermanyIvan Magalhaes NEW
Nicolas IturbideBrazilXuxue Feng NEW
Isabel BowleyFranceBernardo Dominic QUALIFIED
Aditya KuskoBrazilAsiya Javayant RENEWAL
Faith GillianGermanyElwin Sharvill NEGOTIATION
Greenwood BologniaAustraliaIoni Bowcher NEGOTIATION
Octavia MaletUnited KingdomElwin Sharvill RENEWAL
Tony FollerCanadaAsiya Javayant QUALIFIED
Aruna FigeroaItalyAmy Elsner QUALIFIED
Juan WieserAustraliaElwin Sharvill NEW
Alejandro PerinItalyOnyama Limba PROPOSAL
Wickens NestleUnited KingdomAmy Elsner RENEWAL
Deepesh ChuiSpainIoni Bowcher QUALIFIED
Smith GlickSpainAsiya Javayant UNQUALIFIED
Octavia MaletAustraliaAsiya Javayant PROPOSAL
Aruna FigeroaFranceAmy Elsner PROPOSAL
Aditya KuskoBrazilStephen Shaw RENEWAL
Salvatore StockhamCanadaOnyama Limba PROPOSAL
James ButtGermanyAnna Fali RENEWAL
Misaki RoysterItalyXuxue Feng QUALIFIED
Mayumi KolmetzFranceIvan Magalhaes UNQUALIFIED
Adams MorascaIndiaIvan Magalhaes PROPOSAL
Maisha RulapaughUnited KingdomAmy Elsner NEGOTIATION
Kaitlin OstroskyArgentinaStephen Shaw RENEWAL
Ivar PaprockiRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamSpainIoni Bowcher NEW
Clifford RimGermanyIoni Bowcher PROPOSAL
Antonio CaudyRussiaAnna Fali QUALIFIED
Smith GlickRussiaAnna Fali RENEWAL
Cody SaylorsSpainBernardo Dominic NEGOTIATION
Tony FollerIndiaElwin Sharvill RENEWAL
Frozen Columns
Name
Arvin Albares
Murillo Malet
Murillo Malet
David Darakjy
Cody Saylors
David Darakjy
Emily Whobrey
David Darakjy
Maisha Rulapaugh
Tony Foller
David Darakjy
Darci Poquette
Silvio Slusarski
Francesco Shinko
Murillo Malet
Izzy Garufi
Alejandro Perin
Silvio Slusarski
David Darakjy
Aruna Figeroa
Juan Wieser
Alejandro Perin
Tony Foller
Juan Wieser
Costa Dilliard
Munro Ferencz
Kadeem Flosi
Aruna Figeroa
Juan Wieser
Ashley Doe
Greenwood Bolognia
Emily Whobrey
Greenwood Bolognia
Francesco Shinko
Clifford Rim
Ashley Doe
Nicolas Iturbide
Jones Vocelka
Clifford Rim
Maria Marrier
Maria Marrier
Nicolas Iturbide
Murillo Malet
Tony Foller
Mayumi Kolmetz
Jones Vocelka
Costa Dilliard
Salvatore Stockham
Francesco Shinko
Alejandro Perin
IdCountryDate
1000France2026-04-13
1001Italy2026-04-07
1002Brazil2026-04-16
1003France2026-04-06
1004Brazil2026-04-21
1005India2026-04-17
1006Japan2026-04-25
1007Australia2026-04-09
1008Japan2026-04-16
1009Spain2026-04-17
1010Australia2026-04-16
1011Brazil2026-04-05
1012France2026-04-05
1013Russia2026-04-08
1014Germany2026-05-01
1015India2026-05-02
1016India2026-04-13
1017Germany2026-04-26
1018United Kingdom2026-04-04
1019Brazil2026-04-19
1020Japan2026-04-25
1021India2026-04-17
1022Canada2026-04-14
1023Australia2026-04-08
1024Argentina2026-04-07
1025Russia2026-04-19
1026Canada2026-05-02
1027India2026-04-27
1028Spain2026-04-17
1029Italy2026-04-10
1030Italy2026-04-29
1031Canada2026-05-01
1032Australia2026-04-12
1033Italy2026-04-20
1034Spain2026-04-17
1035Australia2026-04-25
1036United Kingdom2026-04-26
1037Japan2026-05-02
1038France2026-04-14
1039Spain2026-04-26
1040Russia2026-04-13
1041Australia2026-04-18
1042Argentina2026-04-10
1043France2026-04-14
1044Argentina2026-04-06
1045Russia2026-04-23
1046Russia2026-04-27
1047United Kingdom2026-04-27
1048Brazil2026-04-08
1049Italy2026-04-07

On-Demand Data

NameIdCountryDate
Adams Morasca1000Italy2026-04-08
Sinclair Waycott1001Brazil2026-04-11
Alejandro Perin1002Argentina2026-04-04
David Darakjy1003France2026-04-11
Aika Inouye1004Italy2026-04-16
Izzy Garufi1005Argentina2026-05-01
Mujtaba Nicka1006India2026-04-07
Leja Caldarera1007Japan2026-04-04
Deepesh Chui1008Spain2026-04-09
Jennifer Amigon1009Brazil2026-04-20
Emily Whobrey1010France2026-04-21
Alejandro Perin1011Spain2026-04-20
Ricardo Gaucho1012Brazil2026-04-14
Greenwood Bolognia1013France2026-04-30
Murillo Malet1014Brazil2026-04-05
Mujtaba Nicka1015Canada2026-04-22
Antonio Caudy1016Japan2026-04-21
Julie Stenseth1017Japan2026-04-23
Jennifer Amigon1018Brazil2026-04-17
Ivar Paprocki1019Germany2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaIndiaXuxue Feng UNQUALIFIED
Nicolas IturbideCanadaIvan Magalhaes UNQUALIFIED
Smith GlickIndiaIvan Magalhaes NEW
Smith GlickIndiaAsiya Javayant NEW
Julie StensethArgentinaAmy Elsner QUALIFIED
Juan WieserJapanAnna Fali NEGOTIATION
Salvatore StockhamItalyIvan Magalhaes UNQUALIFIED
Claire TollnerBrazilElwin Sharvill PROPOSAL
Cody SaylorsSpainBernardo Dominic RENEWAL
Ivar PaprockiAustraliaIoni Bowcher NEGOTIATION
Morrow RutaBrazilOnyama Limba QUALIFIED
Julie StensethIndiaAnna Fali NEGOTIATION
Jeanfrancois VenereArgentinaAsiya Javayant PROPOSAL
Silvio SlusarskiCanadaAsiya Javayant NEGOTIATION
Antonio CaudyUnited KingdomIoni Bowcher PROPOSAL
Leja CaldareraArgentinaIoni Bowcher NEW
Antonio CaudyCanadaOnyama Limba QUALIFIED
Claire TollnerSpainIvan Magalhaes NEW
Murillo MaletIndiaBernardo Dominic UNQUALIFIED
Smith GlickCanadaIvan Magalhaes RENEWAL
Faith GillianUnited KingdomOnyama Limba QUALIFIED
Stacey MacleadSpainAmy Elsner QUALIFIED
Claire TollnerRussiaOnyama Limba NEGOTIATION
Izzy GarufiIndiaIoni Bowcher RENEWAL
Kaitlin OstroskyCanadaStephen Shaw UNQUALIFIED
Darci PoquetteItalyAsiya Javayant NEW
Deepesh ChuiArgentinaAmy Elsner UNQUALIFIED
Mujtaba NickaGermanyElwin Sharvill QUALIFIED
Ivar PaprockiGermanyAsiya Javayant QUALIFIED
Kadeem FlosiBrazilAsiya Javayant QUALIFIED
Morrow RutaItalyXuxue Feng QUALIFIED
Antonio CaudyItalyAmy Elsner PROPOSAL
Smith GlickUnited KingdomAsiya Javayant PROPOSAL
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Jennifer AmigonUnited KingdomIoni Bowcher QUALIFIED
Costa DilliardSpainAnna Fali RENEWAL
Munro FerenczGermanyOnyama Limba QUALIFIED
Emily WhobreyCanadaElwin Sharvill QUALIFIED
Johnson SergiRussiaBernardo Dominic NEGOTIATION
Johnson SergiFranceXuxue Feng 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>