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
Jones VocelkaFranceOnyama Limba NEW
Ashley DoeBrazilXuxue Feng PROPOSAL
Smith GlickBrazilStephen Shaw NEGOTIATION
Adams MorascaBrazilXuxue Feng UNQUALIFIED
Smith GlickFranceElwin Sharvill QUALIFIED
Costa DilliardSpainIoni Bowcher RENEWAL
Jones VocelkaAustraliaXuxue Feng NEW
Juan WieserAustraliaAmy Elsner NEGOTIATION
Kadeem FlosiGermanyOnyama Limba NEGOTIATION
Stacey MacleadBrazilOnyama Limba RENEWAL
Ricardo GauchoAustraliaXuxue Feng RENEWAL
Tony FollerCanadaIvan Magalhaes PROPOSAL
Munro FerenczItalyXuxue Feng NEGOTIATION
Leja CaldareraItalyStephen Shaw NEW
Emily WhobreyArgentinaAsiya Javayant RENEWAL
Mayumi KolmetzAustraliaOnyama Limba PROPOSAL
Stacey MacleadRussiaStephen Shaw PROPOSAL
Aika InouyeUnited KingdomStephen Shaw QUALIFIED
Darci PoquetteSpainStephen Shaw NEW
Leja CaldareraFranceIvan Magalhaes UNQUALIFIED
Morrow RutaAustraliaIoni Bowcher UNQUALIFIED
Juan WieserCanadaBernardo Dominic RENEWAL
Wickens NestleFranceBernardo Dominic NEW
Leja CaldareraItalyXuxue Feng PROPOSAL
Deepesh ChuiGermanyAsiya Javayant QUALIFIED
Isabel BowleyCanadaXuxue Feng UNQUALIFIED
Smith GlickIndiaOnyama Limba UNQUALIFIED
Juan WieserItalyIoni Bowcher PROPOSAL
Leon OldroydAustraliaAnna Fali NEW
Rodrigues CampainBrazilAmy Elsner UNQUALIFIED
Emily WhobreyCanadaIvan Magalhaes PROPOSAL
Morrow RutaArgentinaAmy Elsner NEW
Maria MarrierSpainAmy Elsner QUALIFIED
Stacey MacleadAustraliaBernardo Dominic QUALIFIED
Alejandro PerinAustraliaStephen Shaw QUALIFIED
Adams MorascaJapanIoni Bowcher PROPOSAL
David DarakjyBrazilAsiya Javayant RENEWAL
Emily WhobreyItalyIvan Magalhaes UNQUALIFIED
Arvin AlbaresItalyAnna Fali NEW
Ricardo GauchoCanadaIoni Bowcher PROPOSAL
Jennifer AmigonBrazilElwin Sharvill UNQUALIFIED
Aika InouyeItalyAmy Elsner NEGOTIATION
Jones VocelkaJapanIvan Magalhaes RENEWAL
Ivar PaprockiItalyAsiya Javayant PROPOSAL
Silvio SlusarskiJapanIvan Magalhaes NEW
Darci PoquetteGermanyBernardo Dominic QUALIFIED
Jones VocelkaCanadaIoni Bowcher PROPOSAL
Smith GlickJapanElwin Sharvill PROPOSAL
Ricardo GauchoIndiaStephen Shaw UNQUALIFIED
Jennifer AmigonItalyAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyJapanOnyama Limba QUALIFIED
Chavez BriddickAustraliaElwin Sharvill UNQUALIFIED
Maisha RulapaughCanadaBernardo Dominic PROPOSAL
Greenwood BologniaFranceAnna Fali QUALIFIED
Arvin AlbaresCanadaIvan Magalhaes NEGOTIATION
Tony FollerBrazilAmy Elsner NEW
Rodrigues CampainJapanStephen Shaw RENEWAL
Aruna FigeroaAustraliaAsiya Javayant NEW
Maria MarrierRussiaElwin Sharvill PROPOSAL
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoRussia2025-07-28Rousseaux, Michael Esq NEW1Amy Elsner
1001Cody SaylorsBrazil2025-07-22King, Christopher A Esq UNQUALIFIED96Amy Elsner
1002Ivar PaprockiAustralia2025-07-31Dorl, James J Esq UNQUALIFIED26Ioni Bowcher
1003Leja CaldareraAustralia2025-07-27Dorl, James J Esq UNQUALIFIED95Elwin Sharvill
1004Greenwood BologniaIndia2025-08-01Truhlar And Truhlar Attys PROPOSAL74Amy Elsner
1005Clifford RimBrazil2025-07-25Chemel, James L Cpa UNQUALIFIED10Anna Fali
1006Misaki RoysterRussia2025-07-23Dorl, James J Esq PROPOSAL25Onyama Limba
1007Sinclair WaycottItaly2025-07-20Chapman, Ross E Esq NEGOTIATION73Stephen Shaw
1008Clifford RimItaly2025-07-20Benton, John B Jr QUALIFIED36Anna Fali
1009Ashley DoeCanada2025-07-31Printing Dimensions NEGOTIATION61Onyama Limba
1010Smith GlickArgentina2025-07-13Feiner Bros NEW53Onyama Limba
1011Aruna FigeroaJapan2025-08-03Chemel, James L Cpa PROPOSAL51Anna Fali
1012Stacey MacleadJapan2025-07-18Chemel, James L Cpa UNQUALIFIED83Bernardo Dominic
1013Chavez BriddickFrance2025-07-29Feltz Printing Service NEGOTIATION1Amy Elsner
1014Deepesh ChuiBrazil2025-08-09Commercial Press PROPOSAL88Asiya Javayant
1015Claire TollnerFrance2025-07-14Chanay, Jeffrey A Esq PROPOSAL96Stephen Shaw
1016Salvatore StockhamSpain2025-08-06Truhlar And Truhlar Attys RENEWAL17Amy Elsner
1017Smith GlickAustralia2025-07-31Feltz Printing Service NEW41Ivan Magalhaes
1018Misaki RoysterFrance2025-08-09Feiner Bros NEGOTIATION97Stephen Shaw
1019Nicolas IturbideGermany2025-08-06Feltz Printing Service RENEWAL19Asiya Javayant
1020Cody SaylorsJapan2025-07-19Printing Dimensions QUALIFIED63Onyama Limba
1021Misaki RoysterBrazil2025-07-23Printing Dimensions UNQUALIFIED42Anna Fali
1022Sinclair WaycottIndia2025-07-18King, Christopher A Esq NEW0Stephen Shaw
1023Isabel BowleyCanada2025-08-01Chemel, James L Cpa PROPOSAL14Asiya Javayant
1024Stacey MacleadRussia2025-08-06Benton, John B Jr UNQUALIFIED28Anna Fali
1025Arvin AlbaresCanada2025-08-08Chanay, Jeffrey A Esq UNQUALIFIED40Onyama Limba
1026Munro FerenczRussia2025-07-11Rangoni Of Florence UNQUALIFIED44Stephen Shaw
1027David DarakjyCanada2025-08-05Chemel, James L Cpa PROPOSAL20Onyama Limba
1028Francesco ShinkoSpain2025-07-13Chemel, James L Cpa UNQUALIFIED33Asiya Javayant
1029Jefferson SchemmerJapan2025-07-26Commercial Press NEW96Onyama Limba
1030Maria MarrierGermany2025-07-11Feltz Printing Service NEW19Anna Fali
1031Sinclair WaycottJapan2025-07-22King, Christopher A Esq PROPOSAL69Amy Elsner
1032Sinclair WaycottCanada2025-07-15Chapman, Ross E Esq UNQUALIFIED18Xuxue Feng
1033Cody SaylorsAustralia2025-07-29Commercial Press PROPOSAL4Anna Fali
1034Faith GillianArgentina2025-07-16King, Christopher A Esq RENEWAL27Amy Elsner
1035Murillo MaletJapan2025-07-12Chemel, James L Cpa NEGOTIATION39Onyama Limba
1036Leja CaldareraSpain2025-07-18Chapman, Ross E Esq UNQUALIFIED42Onyama Limba
1037Jefferson SchemmerIndia2025-07-24Dorl, James J Esq PROPOSAL99Anna Fali
1038Julie StensethAustralia2025-07-21Chapman, Ross E Esq NEW56Onyama Limba
1039James ButtCanada2025-07-26Morlong Associates NEGOTIATION22Xuxue Feng
1040Izzy GarufiSpain2025-07-13Feltz Printing Service PROPOSAL5Amy Elsner
1041Kaitlin OstroskySpain2025-07-30Printing Dimensions NEW77Stephen Shaw
1042Adams MorascaBrazil2025-07-12Benton, John B Jr UNQUALIFIED4Amy Elsner
1043Morrow RutaIndia2025-08-06Printing Dimensions QUALIFIED77Amy Elsner
1044Ricardo GauchoItaly2025-07-24Feltz Printing Service RENEWAL53Ioni Bowcher
1045Maria MarrierBrazil2025-08-07King, Christopher A Esq PROPOSAL72Xuxue Feng
1046Aditya KuskoCanada2025-07-14Chanay, Jeffrey A Esq RENEWAL97Anna Fali
1047Ivar PaprockiCanada2025-07-22Benton, John B Jr QUALIFIED86Onyama Limba
1048Alejandro PerinGermany2025-07-29King, Christopher A Esq NEGOTIATION13Amy Elsner
1049Morrow RutaCanada2025-08-06Feltz Printing Service UNQUALIFIED37Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyFranceIvan Magalhaes NEW
Wickens NestleBrazilAsiya Javayant PROPOSAL
Maria MarrierFranceStephen Shaw NEGOTIATION
Rodrigues CampainBrazilAnna Fali UNQUALIFIED
Ricardo GauchoFranceXuxue Feng UNQUALIFIED
Maisha RulapaughItalyOnyama Limba QUALIFIED
Jefferson SchemmerAustraliaBernardo Dominic RENEWAL
Cody SaylorsIndiaBernardo Dominic UNQUALIFIED
Aika InouyeSpainIoni Bowcher RENEWAL
Aruna FigeroaFranceIvan Magalhaes UNQUALIFIED
Sinclair WaycottFranceElwin Sharvill NEGOTIATION
Misaki RoysterAustraliaIvan Magalhaes QUALIFIED
Arvin AlbaresJapanIoni Bowcher NEGOTIATION
Jones VocelkaBrazilAnna Fali UNQUALIFIED
Mujtaba NickaItalyIoni Bowcher QUALIFIED
Ivar PaprockiIndiaAsiya Javayant NEGOTIATION
Kadeem FlosiSpainStephen Shaw RENEWAL
Salvatore StockhamJapanAsiya Javayant UNQUALIFIED
Smith GlickCanadaStephen Shaw PROPOSAL
Jennifer AmigonUnited KingdomOnyama Limba QUALIFIED
Cody SaylorsFranceAmy Elsner NEW
Maisha RulapaughGermanyAnna Fali QUALIFIED
Aruna FigeroaArgentinaOnyama Limba NEGOTIATION
Smith GlickSpainAmy Elsner UNQUALIFIED
Kadeem FlosiUnited KingdomStephen Shaw RENEWAL
Ashley DoeIndiaOnyama Limba QUALIFIED
Sinclair WaycottIndiaXuxue Feng PROPOSAL
Deepesh ChuiRussiaElwin Sharvill UNQUALIFIED
Costa DilliardGermanyIoni Bowcher NEW
Juan WieserUnited KingdomIoni Bowcher NEW
Murillo MaletIndiaAmy Elsner RENEWAL
Kadeem FlosiUnited KingdomIoni Bowcher QUALIFIED
Isabel BowleyFranceElwin Sharvill UNQUALIFIED
Jennifer AmigonBrazilBernardo Dominic NEW
Maisha RulapaughSpainElwin Sharvill PROPOSAL
Chavez BriddickCanadaBernardo Dominic RENEWAL
Isabel BowleyArgentinaAmy Elsner PROPOSAL
Kaitlin OstroskySpainAsiya Javayant RENEWAL
Aika InouyeRussiaIvan Magalhaes PROPOSAL
Arvin AlbaresItalyAmy Elsner PROPOSAL
Morrow RutaFranceAnna Fali UNQUALIFIED
Nicolas IturbideIndiaIoni Bowcher NEW
Jefferson SchemmerFranceAmy Elsner RENEWAL
Johnson SergiGermanyAnna Fali RENEWAL
Julie StensethArgentinaAsiya Javayant NEGOTIATION
Mujtaba NickaAustraliaAnna Fali PROPOSAL
Izzy GarufiUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiItalyAnna Fali NEW
Arvin AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer AmigonCanadaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Morrow Ruta
Jefferson Schemmer
Kadeem Flosi
Isabel Bowley
Sinclair Waycott
Aditya Kusko
Cody Saylors
Stacey Maclead
Octavia Malet
Claire Tollner
Greenwood Bolognia
Aruna Figeroa
Munro Ferencz
Costa Dilliard
Jeanfrancois Venere
Salvatore Stockham
Greenwood Bolognia
Mujtaba Nicka
Munro Ferencz
Murillo Malet
Deepesh Chui
Juan Wieser
Smith Glick
Francesco Shinko
Kadeem Flosi
Munro Ferencz
Costa Dilliard
Jefferson Schemmer
Leja Caldarera
Deepesh Chui
Mujtaba Nicka
Tony Foller
Jeanfrancois Venere
Isabel Bowley
Darci Poquette
Adams Morasca
Nicolas Iturbide
Ricardo Gaucho
Misaki Royster
Juan Wieser
Nicolas Iturbide
Faith Gillian
Tony Foller
Tony Foller
Nicolas Iturbide
Antonio Caudy
Clifford Rim
Jefferson Schemmer
Cody Saylors
Misaki Royster
IdCountryDate
1000Canada2025-08-03
1001Russia2025-08-09
1002Canada2025-08-03
1003Spain2025-07-26
1004Russia2025-07-14
1005Argentina2025-07-22
1006Australia2025-07-28
1007Brazil2025-07-28
1008Spain2025-07-30
1009Brazil2025-07-14
1010Germany2025-07-11
1011Canada2025-07-18
1012Spain2025-07-29
1013United Kingdom2025-08-05
1014India2025-08-02
1015France2025-08-02
1016India2025-07-18
1017Australia2025-07-15
1018France2025-07-18
1019Canada2025-07-14
1020India2025-07-30
1021Russia2025-07-17
1022Spain2025-07-24
1023India2025-08-04
1024Canada2025-07-27
1025Russia2025-07-27
1026Germany2025-07-21
1027Australia2025-08-01
1028India2025-08-07
1029Spain2025-07-18
1030France2025-07-28
1031Russia2025-07-28
1032Spain2025-08-03
1033France2025-07-29
1034France2025-07-14
1035Italy2025-08-05
1036Argentina2025-07-22
1037Russia2025-07-22
1038Italy2025-07-30
1039Brazil2025-07-13
1040France2025-07-26
1041Germany2025-07-24
1042Spain2025-08-01
1043Germany2025-08-07
1044Japan2025-07-18
1045Australia2025-08-05
1046Spain2025-08-09
1047India2025-07-20
1048Italy2025-07-30
1049Germany2025-07-11

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Germany2025-07-11
Munro Ferencz1001United Kingdom2025-08-07
Tony Foller1002Russia2025-07-11
Faith Gillian1003Italy2025-08-01
Alejandro Perin1004Russia2025-08-04
Ashley Doe1005United Kingdom2025-07-28
Jennifer Amigon1006United Kingdom2025-07-26
Chavez Briddick1007France2025-07-19
Octavia Malet1008Japan2025-07-22
Izzy Garufi1009India2025-07-20
Maisha Rulapaugh1010India2025-07-22
Izzy Garufi1011United Kingdom2025-07-22
Aika Inouye1012France2025-08-03
Mayumi Kolmetz1013Germany2025-07-19
Arvin Albares1014Germany2025-07-30
Munro Ferencz1015France2025-07-24
Isabel Bowley1016India2025-07-30
David Darakjy1017France2025-07-27
Francesco Shinko1018Italy2025-07-18
Nicolas Iturbide1019Argentina2025-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyFranceOnyama Limba UNQUALIFIED
Murillo MaletRussiaOnyama Limba QUALIFIED
Mujtaba NickaIndiaBernardo Dominic RENEWAL
Kaitlin OstroskyIndiaElwin Sharvill PROPOSAL
Jeanfrancois VenereJapanIvan Magalhaes RENEWAL
Francesco ShinkoFranceIoni Bowcher NEGOTIATION
Clifford RimRussiaOnyama Limba RENEWAL
Maisha RulapaughJapanAnna Fali RENEWAL
Adams MorascaArgentinaOnyama Limba RENEWAL
Mayumi KolmetzUnited KingdomAnna Fali PROPOSAL
Jeanfrancois VenereCanadaIvan Magalhaes NEGOTIATION
Isabel BowleyCanadaIoni Bowcher NEGOTIATION
Jeanfrancois VenereSpainAsiya Javayant QUALIFIED
Tony FollerArgentinaAmy Elsner UNQUALIFIED
Ivar PaprockiGermanyElwin Sharvill NEGOTIATION
Greenwood BologniaCanadaStephen Shaw NEW
Costa DilliardItalyElwin Sharvill NEGOTIATION
Munro FerenczFranceAsiya Javayant NEW
Clifford RimBrazilBernardo Dominic PROPOSAL
Leon OldroydUnited KingdomIoni Bowcher PROPOSAL
Maria MarrierUnited KingdomAnna Fali QUALIFIED
James ButtRussiaAnna Fali PROPOSAL
Izzy GarufiCanadaBernardo Dominic UNQUALIFIED
Izzy GarufiGermanyBernardo Dominic NEW
Ivar PaprockiIndiaAmy Elsner UNQUALIFIED
James ButtArgentinaElwin Sharvill RENEWAL
Darci PoquetteArgentinaElwin Sharvill UNQUALIFIED
Juan WieserCanadaAmy Elsner NEGOTIATION
Munro FerenczUnited KingdomAsiya Javayant PROPOSAL
Kadeem FlosiIndiaOnyama Limba UNQUALIFIED
Sinclair WaycottGermanyOnyama Limba NEW
Deepesh ChuiRussiaOnyama Limba QUALIFIED
Costa DilliardGermanyElwin Sharvill NEW
Ivar PaprockiIndiaElwin Sharvill RENEWAL
Ashley DoeJapanBernardo Dominic PROPOSAL
Darci PoquetteCanadaIoni Bowcher NEW
Faith GillianGermanyStephen Shaw PROPOSAL
Salvatore StockhamIndiaOnyama Limba PROPOSAL
Aruna FigeroaBrazilAsiya Javayant RENEWAL
Leon OldroydGermanyStephen Shaw NEGOTIATION

<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>