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
Morrow RutaArgentinaAnna Fali NEW
Nicolas IturbideCanadaIoni Bowcher QUALIFIED
Smith GlickArgentinaBernardo Dominic NEW
Antonio CaudyFranceElwin Sharvill NEW
Smith GlickItalyOnyama Limba UNQUALIFIED
Aruna FigeroaCanadaElwin Sharvill RENEWAL
Jefferson SchemmerFranceOnyama Limba RENEWAL
Maisha RulapaughArgentinaAmy Elsner UNQUALIFIED
Costa DilliardGermanyAnna Fali PROPOSAL
Cody SaylorsBrazilXuxue Feng QUALIFIED
Alejandro PerinAustraliaIoni Bowcher NEW
Aruna FigeroaSpainXuxue Feng RENEWAL
Cody SaylorsUnited KingdomAnna Fali QUALIFIED
Misaki RoysterFranceOnyama Limba RENEWAL
Murillo MaletCanadaStephen Shaw PROPOSAL
Emily WhobreyArgentinaXuxue Feng NEGOTIATION
Alejandro PerinRussiaAmy Elsner NEW
Stacey MacleadFranceXuxue Feng NEW
Aditya KuskoCanadaElwin Sharvill NEW
Misaki RoysterJapanOnyama Limba RENEWAL
Costa DilliardAustraliaXuxue Feng NEW
Ricardo GauchoGermanyBernardo Dominic NEGOTIATION
Darci PoquetteJapanAsiya Javayant RENEWAL
Jones VocelkaIndiaAmy Elsner PROPOSAL
Alejandro PerinCanadaOnyama Limba NEW
Aika InouyeCanadaXuxue Feng UNQUALIFIED
Salvatore StockhamAustraliaAnna Fali UNQUALIFIED
Aruna FigeroaBrazilAmy Elsner NEW
Jennifer AmigonArgentinaIoni Bowcher RENEWAL
Aika InouyeSpainStephen Shaw PROPOSAL
Silvio SlusarskiSpainXuxue Feng QUALIFIED
Wickens NestleFranceElwin Sharvill PROPOSAL
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Antonio CaudyJapanXuxue Feng QUALIFIED
Munro FerenczArgentinaElwin Sharvill PROPOSAL
Antonio CaudySpainAnna Fali NEGOTIATION
Stacey MacleadArgentinaElwin Sharvill PROPOSAL
Ashley DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya KuskoUnited KingdomAnna Fali PROPOSAL
Ricardo GauchoFranceIvan Magalhaes NEGOTIATION
Octavia MaletArgentinaBernardo Dominic NEW
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Faith GillianCanadaAsiya Javayant UNQUALIFIED
Silvio SlusarskiArgentinaXuxue Feng NEGOTIATION
David DarakjyItalyElwin Sharvill QUALIFIED
Mujtaba NickaUnited KingdomXuxue Feng NEW
Greenwood BologniaCanadaAmy Elsner NEW
Silvio SlusarskiGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteBrazilOnyama Limba PROPOSAL
Kadeem FlosiCanadaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereCanadaOnyama Limba NEW
Johnson SergiBrazilStephen Shaw QUALIFIED
Ivar PaprockiJapanIoni Bowcher UNQUALIFIED
Izzy GarufiBrazilBernardo Dominic QUALIFIED
Aika InouyeAustraliaOnyama Limba NEGOTIATION
Jeanfrancois VenereCanadaElwin Sharvill UNQUALIFIED
Jefferson SchemmerArgentinaXuxue Feng QUALIFIED
Mujtaba NickaJapanAmy Elsner NEGOTIATION
Kadeem FlosiGermanyIvan Magalhaes RENEWAL
Clifford RimUnited KingdomBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleySpain2026-05-15Chemel, James L Cpa PROPOSAL48Xuxue Feng
1001Greenwood BologniaUnited Kingdom2026-06-05Feltz Printing Service NEW3Bernardo Dominic
1002Ricardo GauchoFrance2026-05-15Rangoni Of Florence NEW26Xuxue Feng
1003Kadeem FlosiIndia2026-05-20Chanay, Jeffrey A Esq UNQUALIFIED82Bernardo Dominic
1004Mayumi KolmetzRussia2026-05-13Feltz Printing Service PROPOSAL14Onyama Limba
1005Alejandro PerinCanada2026-05-27Rousseaux, Michael Esq NEGOTIATION25Asiya Javayant
1006Leja CaldareraBrazil2026-05-14Truhlar And Truhlar Attys NEGOTIATION93Ioni Bowcher
1007Antonio CaudyItaly2026-05-14Printing Dimensions RENEWAL33Ivan Magalhaes
1008Chavez BriddickUnited Kingdom2026-05-09Truhlar And Truhlar Attys RENEWAL32Asiya Javayant
1009Kadeem FlosiIndia2026-05-18Morlong Associates UNQUALIFIED6Ioni Bowcher
1010David DarakjyUnited Kingdom2026-05-23Commercial Press NEGOTIATION37Amy Elsner
1011Jefferson SchemmerJapan2026-06-02Commercial Press QUALIFIED66Bernardo Dominic
1012Isabel BowleyItaly2026-06-04King, Christopher A Esq RENEWAL65Ivan Magalhaes
1013Chavez BriddickRussia2026-06-02Commercial Press PROPOSAL21Elwin Sharvill
1014Octavia MaletCanada2026-05-16Rousseaux, Michael Esq NEGOTIATION40Xuxue Feng
1015Mujtaba NickaItaly2026-05-19Commercial Press RENEWAL46Amy Elsner
1016Isabel BowleyIndia2026-05-30Morlong Associates PROPOSAL67Elwin Sharvill
1017David DarakjyGermany2026-05-22Commercial Press PROPOSAL6Onyama Limba
1018Wickens NestleItaly2026-05-21Rousseaux, Michael Esq NEW72Onyama Limba
1019Smith GlickCanada2026-05-15Benton, John B Jr NEW52Ioni Bowcher
1020Kadeem FlosiArgentina2026-05-09Chapman, Ross E Esq QUALIFIED97Xuxue Feng
1021David DarakjyCanada2026-05-30Truhlar And Truhlar Attys NEW28Ivan Magalhaes
1022Johnson SergiBrazil2026-05-15King, Christopher A Esq NEW3Stephen Shaw
1023Kaitlin OstroskyIndia2026-05-18Chanay, Jeffrey A Esq QUALIFIED51Amy Elsner
1024Munro FerenczSpain2026-05-27Feiner Bros QUALIFIED8Asiya Javayant
1025Octavia MaletGermany2026-05-18Chanay, Jeffrey A Esq RENEWAL38Ioni Bowcher
1026Kadeem FlosiSpain2026-05-18Chemel, James L Cpa PROPOSAL59Elwin Sharvill
1027Jones VocelkaArgentina2026-05-09Chapman, Ross E Esq NEGOTIATION49Amy Elsner
1028Izzy GarufiBrazil2026-06-03Morlong Associates PROPOSAL13Stephen Shaw
1029Arvin AlbaresJapan2026-05-28Feiner Bros NEGOTIATION41Ivan Magalhaes
1030Adams MorascaSpain2026-05-22Benton, John B Jr NEGOTIATION1Onyama Limba
1031Salvatore StockhamRussia2026-06-05Morlong Associates UNQUALIFIED7Onyama Limba
1032Kadeem FlosiItaly2026-05-21Benton, John B Jr NEGOTIATION51Ioni Bowcher
1033Antonio CaudyItaly2026-05-11Chapman, Ross E Esq UNQUALIFIED83Amy Elsner
1034Maria MarrierRussia2026-05-17Morlong Associates RENEWAL93Amy Elsner
1035Jennifer AmigonItaly2026-05-16Rangoni Of Florence NEGOTIATION9Stephen Shaw
1036Julie StensethArgentina2026-06-03Morlong Associates QUALIFIED93Xuxue Feng
1037Costa DilliardSpain2026-06-01Dorl, James J Esq QUALIFIED6Anna Fali
1038Sinclair WaycottGermany2026-05-26Printing Dimensions UNQUALIFIED10Anna Fali
1039Munro FerenczAustralia2026-05-26Truhlar And Truhlar Attys PROPOSAL63Stephen Shaw
1040Alejandro PerinItaly2026-06-04King, Christopher A Esq NEW90Anna Fali
1041Ivar PaprockiCanada2026-06-05Rangoni Of Florence NEGOTIATION84Anna Fali
1042Kadeem FlosiArgentina2026-06-02Commercial Press NEGOTIATION79Ivan Magalhaes
1043James ButtGermany2026-05-16Buckley Miller Wright RENEWAL35Ivan Magalhaes
1044Maisha RulapaughSpain2026-06-06King, Christopher A Esq NEW31Bernardo Dominic
1045Chavez BriddickUnited Kingdom2026-05-11Commercial Press RENEWAL33Xuxue Feng
1046Francesco ShinkoUnited Kingdom2026-05-13Dorl, James J Esq QUALIFIED92Bernardo Dominic
1047Ashley DoeJapan2026-05-27Chapman, Ross E Esq PROPOSAL78Amy Elsner
1048Maria MarrierAustralia2026-05-30Chapman, Ross E Esq QUALIFIED1Elwin Sharvill
1049Johnson SergiIndia2026-05-08Morlong Associates RENEWAL34Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyFranceOnyama Limba NEW
Morrow RutaJapanAsiya Javayant QUALIFIED
Darci PoquetteAustraliaElwin Sharvill NEW
Chavez BriddickSpainElwin Sharvill NEW
Deepesh ChuiRussiaOnyama Limba NEW
Mujtaba NickaRussiaStephen Shaw UNQUALIFIED
Izzy GarufiIndiaIoni Bowcher UNQUALIFIED
Aruna FigeroaIndiaAsiya Javayant RENEWAL
Faith GillianGermanyIvan Magalhaes NEGOTIATION
James ButtUnited KingdomBernardo Dominic NEW
James ButtSpainAmy Elsner PROPOSAL
Claire TollnerSpainXuxue Feng RENEWAL
Mujtaba NickaCanadaIoni Bowcher UNQUALIFIED
Francesco ShinkoUnited KingdomAmy Elsner RENEWAL
Isabel BowleyJapanElwin Sharvill UNQUALIFIED
Leon OldroydArgentinaElwin Sharvill NEW
Faith GillianIndiaElwin Sharvill RENEWAL
Maria MarrierRussiaXuxue Feng NEGOTIATION
Maria MarrierItalyStephen Shaw UNQUALIFIED
Kaitlin OstroskyJapanBernardo Dominic QUALIFIED
David DarakjySpainOnyama Limba RENEWAL
Jefferson SchemmerAustraliaAnna Fali UNQUALIFIED
Octavia MaletAustraliaAnna Fali PROPOSAL
Izzy GarufiFranceBernardo Dominic PROPOSAL
Sinclair WaycottCanadaOnyama Limba UNQUALIFIED
Maria MarrierSpainIvan Magalhaes UNQUALIFIED
Rodrigues CampainSpainElwin Sharvill NEW
Octavia MaletRussiaAsiya Javayant PROPOSAL
Ashley DoeRussiaAmy Elsner NEW
Faith GillianBrazilAsiya Javayant QUALIFIED
Aditya KuskoJapanXuxue Feng RENEWAL
Jeanfrancois VenereIndiaAsiya Javayant QUALIFIED
Morrow RutaItalyXuxue Feng NEGOTIATION
Maria MarrierSpainOnyama Limba NEGOTIATION
Jennifer AmigonBrazilAsiya Javayant NEGOTIATION
Arvin AlbaresJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraCanadaAnna Fali RENEWAL
Mayumi KolmetzArgentinaAsiya Javayant NEGOTIATION
Aditya KuskoAustraliaIoni Bowcher RENEWAL
Morrow RutaBrazilAmy Elsner NEGOTIATION
Jennifer AmigonAustraliaAmy Elsner QUALIFIED
Maisha RulapaughSpainStephen Shaw NEGOTIATION
Wickens NestleAustraliaIvan Magalhaes PROPOSAL
David DarakjyFranceIvan Magalhaes PROPOSAL
Mujtaba NickaUnited KingdomIoni Bowcher NEGOTIATION
Leon OldroydFranceIvan Magalhaes RENEWAL
Stacey MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Julie StensethIndiaAsiya Javayant UNQUALIFIED
Leon OldroydItalyAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Frozen Columns
Name
Tony Foller
Jeanfrancois Venere
Stacey Maclead
Cody Saylors
Salvatore Stockham
Isabel Bowley
David Darakjy
Salvatore Stockham
Jefferson Schemmer
Darci Poquette
Wickens Nestle
Emily Whobrey
Mujtaba Nicka
Mayumi Kolmetz
Claire Tollner
Arvin Albares
Smith Glick
Tony Foller
Aditya Kusko
Morrow Ruta
Aditya Kusko
Munro Ferencz
Jefferson Schemmer
Johnson Sergi
Juan Wieser
Tony Foller
Mujtaba Nicka
Ashley Doe
Jeanfrancois Venere
Alejandro Perin
Wickens Nestle
Leon Oldroyd
David Darakjy
Aika Inouye
Wickens Nestle
Jennifer Amigon
Aditya Kusko
Ivar Paprocki
Costa Dilliard
Murillo Malet
Kadeem Flosi
Smith Glick
Ashley Doe
Kaitlin Ostrosky
Stacey Maclead
Aruna Figeroa
Mujtaba Nicka
Clifford Rim
Wickens Nestle
Izzy Garufi
IdCountryDate
1000Argentina2026-05-16
1001Brazil2026-05-30
1002Brazil2026-05-13
1003United Kingdom2026-05-12
1004Brazil2026-05-19
1005Brazil2026-05-11
1006Russia2026-05-26
1007Canada2026-05-29
1008Russia2026-05-13
1009Italy2026-05-23
1010Germany2026-05-11
1011Germany2026-06-04
1012France2026-05-10
1013Japan2026-05-11
1014Canada2026-05-08
1015Argentina2026-06-04
1016Australia2026-05-15
1017Australia2026-05-24
1018United Kingdom2026-05-13
1019Australia2026-05-19
1020Germany2026-05-15
1021India2026-05-16
1022Australia2026-05-08
1023Spain2026-05-18
1024Spain2026-05-26
1025Russia2026-05-25
1026Canada2026-05-31
1027Japan2026-05-16
1028Spain2026-05-15
1029Italy2026-05-09
1030France2026-05-09
1031Australia2026-05-15
1032Canada2026-05-15
1033Argentina2026-05-18
1034Australia2026-05-10
1035Germany2026-05-17
1036Italy2026-05-09
1037Germany2026-05-08
1038Russia2026-05-08
1039Canada2026-05-20
1040France2026-05-31
1041United Kingdom2026-05-12
1042Spain2026-05-19
1043Canada2026-05-13
1044United Kingdom2026-05-27
1045United Kingdom2026-06-05
1046India2026-05-20
1047United Kingdom2026-05-28
1048India2026-05-28
1049Russia2026-05-29

On-Demand Data

NameIdCountryDate
Johnson Sergi1000Spain2026-05-11
Tony Foller1001Canada2026-05-20
Leja Caldarera1002Germany2026-05-16
Misaki Royster1003Italy2026-05-19
Mayumi Kolmetz1004Russia2026-05-12
Kadeem Flosi1005Spain2026-05-11
Smith Glick1006France2026-05-18
Misaki Royster1007Brazil2026-06-01
Wickens Nestle1008Italy2026-05-18
Maria Marrier1009Canada2026-05-24
Chavez Briddick1010United Kingdom2026-05-19
Leon Oldroyd1011Italy2026-05-22
Francesco Shinko1012Russia2026-05-29
Ashley Doe1013Russia2026-05-10
Jones Vocelka1014Canada2026-05-20
Adams Morasca1015Russia2026-05-25
Deepesh Chui1016Canada2026-05-25
Stacey Maclead1017Japan2026-05-16
Salvatore Stockham1018Brazil2026-06-01
Smith Glick1019France2026-05-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtGermanyIoni Bowcher PROPOSAL
Aika InouyeSpainOnyama Limba UNQUALIFIED
Smith GlickGermanyAnna Fali PROPOSAL
Ashley DoeArgentinaXuxue Feng RENEWAL
Murillo MaletBrazilAmy Elsner RENEWAL
Julie StensethAustraliaStephen Shaw NEGOTIATION
Kadeem FlosiItalyIvan Magalhaes PROPOSAL
Tony FollerGermanyIvan Magalhaes QUALIFIED
Sinclair WaycottItalyElwin Sharvill RENEWAL
Rodrigues CampainRussiaOnyama Limba NEW
Wickens NestleCanadaXuxue Feng RENEWAL
Francesco ShinkoBrazilOnyama Limba NEGOTIATION
Emily WhobreySpainAsiya Javayant PROPOSAL
Isabel BowleyCanadaAsiya Javayant NEW
Claire TollnerItalyIvan Magalhaes NEW
Wickens NestleAustraliaAnna Fali UNQUALIFIED
Ashley DoeItalyOnyama Limba RENEWAL
Aika InouyeBrazilAmy Elsner UNQUALIFIED
Deepesh ChuiGermanyStephen Shaw PROPOSAL
Antonio CaudyJapanOnyama Limba PROPOSAL
Jennifer AmigonSpainAnna Fali NEW
Jones VocelkaSpainAmy Elsner PROPOSAL
Isabel BowleyJapanStephen Shaw UNQUALIFIED
Izzy GarufiUnited KingdomStephen Shaw RENEWAL
Mayumi KolmetzSpainAmy Elsner RENEWAL
Misaki RoysterIndiaOnyama Limba NEW
Smith GlickGermanyStephen Shaw PROPOSAL
James ButtGermanyXuxue Feng RENEWAL
Aditya KuskoArgentinaBernardo Dominic NEW
Darci PoquetteArgentinaXuxue Feng QUALIFIED
Isabel BowleyFranceIvan Magalhaes QUALIFIED
Smith GlickUnited KingdomBernardo Dominic UNQUALIFIED
Octavia MaletIndiaStephen Shaw RENEWAL
Leja CaldareraGermanyStephen Shaw NEW
Johnson SergiBrazilElwin Sharvill NEGOTIATION
Misaki RoysterIndiaStephen Shaw QUALIFIED
Jones VocelkaJapanStephen Shaw NEW
Tony FollerRussiaElwin Sharvill RENEWAL
Leon OldroydFranceAsiya Javayant QUALIFIED
Cody SaylorsIndiaOnyama Limba PROPOSAL

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