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
Faith GillianRussiaElwin Sharvill PROPOSAL
Juan WieserFranceElwin Sharvill RENEWAL
Francesco ShinkoIndiaStephen Shaw RENEWAL
Morrow RutaAustraliaAmy Elsner PROPOSAL
Greenwood BologniaGermanyOnyama Limba NEGOTIATION
Cody SaylorsUnited KingdomAmy Elsner RENEWAL
Kaitlin OstroskyGermanyBernardo Dominic NEGOTIATION
Chavez BriddickUnited KingdomStephen Shaw RENEWAL
Maria MarrierGermanyElwin Sharvill UNQUALIFIED
Tony FollerSpainIoni Bowcher QUALIFIED
Jennifer AmigonBrazilXuxue Feng PROPOSAL
Wickens NestleArgentinaElwin Sharvill PROPOSAL
Tony FollerFranceAsiya Javayant NEW
Ivar PaprockiAustraliaIvan Magalhaes QUALIFIED
Johnson SergiJapanStephen Shaw PROPOSAL
Stacey MacleadSpainIvan Magalhaes NEW
Juan WieserItalyXuxue Feng RENEWAL
Munro FerenczAustraliaXuxue Feng NEGOTIATION
Isabel BowleyRussiaElwin Sharvill PROPOSAL
Clifford RimItalyAsiya Javayant NEW
Jennifer AmigonFranceBernardo Dominic QUALIFIED
Tony FollerCanadaIvan Magalhaes NEW
Darci PoquetteItalyAsiya Javayant QUALIFIED
Deepesh ChuiCanadaStephen Shaw UNQUALIFIED
Jefferson SchemmerJapanAmy Elsner PROPOSAL
Wickens NestleAustraliaElwin Sharvill PROPOSAL
Adams MorascaGermanyAsiya Javayant NEGOTIATION
Arvin AlbaresArgentinaBernardo Dominic NEGOTIATION
Morrow RutaIndiaAmy Elsner RENEWAL
Emily WhobreyGermanyOnyama Limba NEW
Munro FerenczBrazilStephen Shaw NEGOTIATION
Silvio SlusarskiCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill NEW
Francesco ShinkoUnited KingdomIoni Bowcher QUALIFIED
Aika InouyeGermanyXuxue Feng QUALIFIED
Aika InouyeIndiaAnna Fali PROPOSAL
Munro FerenczSpainBernardo Dominic NEW
Faith GillianUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleGermanyAsiya Javayant RENEWAL
Izzy GarufiFranceBernardo Dominic RENEWAL
Leja CaldareraItalyStephen Shaw PROPOSAL
Misaki RoysterFranceElwin Sharvill PROPOSAL
Salvatore StockhamCanadaXuxue Feng UNQUALIFIED
Leon OldroydSpainAnna Fali QUALIFIED
Maisha RulapaughItalyAnna Fali UNQUALIFIED
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Wickens NestleItalyIvan Magalhaes PROPOSAL
Aika InouyeIndiaAnna Fali PROPOSAL
Izzy GarufiGermanyXuxue Feng NEGOTIATION
Clifford RimRussiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsSpainAmy Elsner NEGOTIATION
Mayumi KolmetzAustraliaIoni Bowcher QUALIFIED
Aditya KuskoRussiaIvan Magalhaes RENEWAL
Mujtaba NickaSpainIoni Bowcher NEW
Silvio SlusarskiCanadaBernardo Dominic NEGOTIATION
Leon OldroydRussiaXuxue Feng QUALIFIED
Stacey MacleadFranceStephen Shaw NEGOTIATION
Julie StensethRussiaAmy Elsner RENEWAL
Ashley DoeFranceOnyama Limba RENEWAL
Darci PoquetteIndiaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika InouyeUnited Kingdom2026-04-26Feiner Bros QUALIFIED93Amy Elsner
1001Aditya KuskoSpain2026-04-03Rousseaux, Michael Esq NEW80Ivan Magalhaes
1002Stacey MacleadIndia2026-04-27Feltz Printing Service NEW86Xuxue Feng
1003Chavez BriddickSpain2026-04-15Feiner Bros RENEWAL60Ioni Bowcher
1004Stacey MacleadRussia2026-04-09Rangoni Of Florence RENEWAL64Ioni Bowcher
1005Jones VocelkaFrance2026-04-10Feiner Bros NEGOTIATION32Asiya Javayant
1006Antonio CaudyItaly2026-04-11Printing Dimensions PROPOSAL56Elwin Sharvill
1007Emily WhobreyCanada2026-04-02Printing Dimensions NEGOTIATION72Elwin Sharvill
1008James ButtUnited Kingdom2026-04-26Rangoni Of Florence UNQUALIFIED0Ioni Bowcher
1009Misaki RoysterRussia2026-04-12Chapman, Ross E Esq UNQUALIFIED55Xuxue Feng
1010Jones VocelkaBrazil2026-04-02Feltz Printing Service NEGOTIATION91Bernardo Dominic
1011Aditya KuskoSpain2026-04-21Morlong Associates UNQUALIFIED19Onyama Limba
1012David DarakjyFrance2026-04-24Buckley Miller Wright UNQUALIFIED24Ivan Magalhaes
1013Johnson SergiUnited Kingdom2026-04-20Truhlar And Truhlar Attys NEGOTIATION64Bernardo Dominic
1014Aruna FigeroaGermany2026-04-25Printing Dimensions NEW53Stephen Shaw
1015Faith GillianFrance2026-04-08Feiner Bros NEGOTIATION38Ioni Bowcher
1016Adams MorascaGermany2026-04-21Buckley Miller Wright QUALIFIED16Onyama Limba
1017Murillo MaletRussia2026-04-03Benton, John B Jr NEGOTIATION80Xuxue Feng
1018Chavez BriddickIndia2026-03-31Commercial Press PROPOSAL85Elwin Sharvill
1019Leon OldroydIndia2026-04-24Chapman, Ross E Esq QUALIFIED32Ivan Magalhaes
1020Claire TollnerGermany2026-04-26Chemel, James L Cpa PROPOSAL18Asiya Javayant
1021Antonio CaudyItaly2026-04-20Buckley Miller Wright QUALIFIED96Amy Elsner
1022Leon OldroydJapan2026-04-26Printing Dimensions QUALIFIED54Amy Elsner
1023Smith GlickFrance2026-04-19Feltz Printing Service NEGOTIATION72Amy Elsner
1024Johnson SergiSpain2026-04-17Feiner Bros QUALIFIED20Elwin Sharvill
1025Costa DilliardIndia2026-04-11Dorl, James J Esq NEGOTIATION78Amy Elsner
1026Julie StensethUnited Kingdom2026-04-20King, Christopher A Esq NEGOTIATION87Bernardo Dominic
1027Mujtaba NickaFrance2026-04-05Buckley Miller Wright QUALIFIED21Stephen Shaw
1028Adams MorascaUnited Kingdom2026-04-14Rousseaux, Michael Esq PROPOSAL84Elwin Sharvill
1029Chavez BriddickItaly2026-03-29Rousseaux, Michael Esq QUALIFIED6Onyama Limba
1030Murillo MaletCanada2026-04-13Feiner Bros QUALIFIED98Ivan Magalhaes
1031Smith GlickRussia2026-04-24Dorl, James J Esq UNQUALIFIED80Onyama Limba
1032Octavia MaletArgentina2026-04-15Dorl, James J Esq NEGOTIATION11Xuxue Feng
1033Izzy GarufiJapan2026-04-22Rangoni Of Florence NEW21Elwin Sharvill
1034Stacey MacleadItaly2026-04-23King, Christopher A Esq NEW59Asiya Javayant
1035Nicolas IturbideItaly2026-04-07Chanay, Jeffrey A Esq UNQUALIFIED42Onyama Limba
1036Maria MarrierUnited Kingdom2026-04-27Commercial Press NEGOTIATION53Bernardo Dominic
1037Arvin AlbaresArgentina2026-04-05Commercial Press QUALIFIED92Stephen Shaw
1038Johnson SergiArgentina2026-04-14Benton, John B Jr QUALIFIED51Anna Fali
1039Aditya KuskoJapan2026-04-15Rangoni Of Florence QUALIFIED68Anna Fali
1040Izzy GarufiGermany2026-04-23Feltz Printing Service RENEWAL4Anna Fali
1041Aditya KuskoAustralia2026-04-06Buckley Miller Wright RENEWAL70Onyama Limba
1042Costa DilliardGermany2026-04-05Printing Dimensions QUALIFIED9Stephen Shaw
1043Aditya KuskoItaly2026-04-04Chanay, Jeffrey A Esq PROPOSAL53Elwin Sharvill
1044Greenwood BologniaItaly2026-04-20Morlong Associates NEGOTIATION86Amy Elsner
1045Emily WhobreyItaly2026-03-29Benton, John B Jr PROPOSAL60Stephen Shaw
1046Mayumi KolmetzGermany2026-04-20King, Christopher A Esq QUALIFIED20Asiya Javayant
1047Cody SaylorsFrance2026-04-02Feiner Bros NEW91Ioni Bowcher
1048Murillo MaletJapan2026-04-27Rousseaux, Michael Esq NEGOTIATION57Bernardo Dominic
1049Mayumi KolmetzJapan2026-04-26Feiner Bros QUALIFIED98Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickArgentinaIoni Bowcher RENEWAL
Munro FerenczCanadaAmy Elsner RENEWAL
Stacey MacleadSpainAmy Elsner NEGOTIATION
Octavia MaletBrazilIvan Magalhaes QUALIFIED
Wickens NestleRussiaElwin Sharvill QUALIFIED
Kaitlin OstroskyRussiaXuxue Feng UNQUALIFIED
Johnson SergiJapanElwin Sharvill RENEWAL
Nicolas IturbideFranceStephen Shaw UNQUALIFIED
Faith GillianArgentinaAmy Elsner NEW
Rodrigues CampainIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaAustraliaIvan Magalhaes NEGOTIATION
Julie StensethCanadaIoni Bowcher NEGOTIATION
Claire TollnerItalyAsiya Javayant QUALIFIED
Nicolas IturbideIndiaAnna Fali UNQUALIFIED
Jefferson SchemmerGermanyIoni Bowcher NEGOTIATION
Ivar PaprockiItalyBernardo Dominic RENEWAL
Stacey MacleadFranceElwin Sharvill QUALIFIED
Wickens NestleCanadaStephen Shaw UNQUALIFIED
Chavez BriddickGermanyBernardo Dominic QUALIFIED
Claire TollnerSpainAmy Elsner QUALIFIED
Tony FollerBrazilAmy Elsner PROPOSAL
Maria MarrierFranceAnna Fali PROPOSAL
Leja CaldareraRussiaAsiya Javayant NEW
Octavia MaletIndiaStephen Shaw NEGOTIATION
Julie StensethSpainStephen Shaw NEW
Claire TollnerJapanAmy Elsner UNQUALIFIED
Arvin AlbaresFranceOnyama Limba RENEWAL
Maria MarrierCanadaBernardo Dominic RENEWAL
Cody SaylorsItalyBernardo Dominic NEW
David DarakjySpainIvan Magalhaes RENEWAL
Adams MorascaCanadaElwin Sharvill RENEWAL
Aruna FigeroaGermanyAmy Elsner UNQUALIFIED
Mayumi KolmetzBrazilXuxue Feng NEGOTIATION
Arvin AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Aditya KuskoIndiaOnyama Limba QUALIFIED
Deepesh ChuiBrazilOnyama Limba NEW
Kaitlin OstroskyAustraliaStephen Shaw PROPOSAL
Adams MorascaFranceIoni Bowcher NEGOTIATION
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Emily WhobreyArgentinaAnna Fali NEW
Johnson SergiIndiaXuxue Feng NEGOTIATION
Claire TollnerUnited KingdomBernardo Dominic NEGOTIATION
Clifford RimArgentinaIoni Bowcher RENEWAL
Tony FollerUnited KingdomOnyama Limba NEGOTIATION
Johnson SergiAustraliaAsiya Javayant PROPOSAL
Johnson SergiFranceBernardo Dominic NEGOTIATION
Clifford RimArgentinaIoni Bowcher QUALIFIED
Faith GillianFranceIvan Magalhaes PROPOSAL
Antonio CaudyIndiaIvan Magalhaes UNQUALIFIED
Murillo MaletJapanAmy Elsner RENEWAL
Frozen Columns
Name
Greenwood Bolognia
Jefferson Schemmer
Jones Vocelka
Salvatore Stockham
Morrow Ruta
Octavia Malet
Jennifer Amigon
Salvatore Stockham
Murillo Malet
Ricardo Gaucho
Juan Wieser
Sinclair Waycott
Juan Wieser
Aditya Kusko
Greenwood Bolognia
Clifford Rim
Morrow Ruta
Ashley Doe
Morrow Ruta
Smith Glick
Izzy Garufi
Emily Whobrey
Tony Foller
Antonio Caudy
Mayumi Kolmetz
Ashley Doe
Nicolas Iturbide
Aika Inouye
Ashley Doe
Morrow Ruta
Aika Inouye
Aditya Kusko
Chavez Briddick
Misaki Royster
Aruna Figeroa
Clifford Rim
Mujtaba Nicka
Aruna Figeroa
Francesco Shinko
Maria Marrier
Maisha Rulapaugh
Salvatore Stockham
Octavia Malet
Claire Tollner
Munro Ferencz
Murillo Malet
David Darakjy
Arvin Albares
Isabel Bowley
Jennifer Amigon
IdCountryDate
1000India2026-04-19
1001Japan2026-04-14
1002Argentina2026-04-09
1003India2026-04-26
1004Brazil2026-04-03
1005Canada2026-03-30
1006Germany2026-04-12
1007Brazil2026-04-01
1008United Kingdom2026-04-21
1009Brazil2026-04-11
1010Brazil2026-04-12
1011Argentina2026-04-03
1012Russia2026-04-26
1013Spain2026-04-11
1014India2026-04-04
1015India2026-04-18
1016Canada2026-04-07
1017Japan2026-04-24
1018Australia2026-04-06
1019Canada2026-04-16
1020Russia2026-04-12
1021France2026-04-04
1022Germany2026-04-02
1023Italy2026-04-24
1024Australia2026-04-04
1025Russia2026-04-12
1026Brazil2026-04-23
1027India2026-04-27
1028India2026-04-24
1029India2026-04-23
1030United Kingdom2026-04-08
1031Italy2026-04-11
1032Argentina2026-04-17
1033United Kingdom2026-04-10
1034Japan2026-04-08
1035Japan2026-04-05
1036Brazil2026-04-02
1037Brazil2026-04-01
1038Germany2026-04-20
1039Spain2026-04-01
1040India2026-03-30
1041Argentina2026-04-17
1042Japan2026-04-20
1043Australia2026-04-10
1044Brazil2026-04-18
1045Canada2026-04-21
1046Australia2026-04-18
1047Russia2026-04-07
1048Australia2026-04-13
1049India2026-04-13

On-Demand Data

NameIdCountryDate
Darci Poquette1000Australia2026-04-23
Costa Dilliard1001Australia2026-04-04
Jennifer Amigon1002Canada2026-04-20
Morrow Ruta1003Germany2026-04-19
Octavia Malet1004India2026-04-13
Chavez Briddick1005Germany2026-04-08
Jones Vocelka1006Russia2026-03-30
Misaki Royster1007Brazil2026-04-16
Tony Foller1008Russia2026-04-11
Arvin Albares1009Russia2026-04-23
Julie Stenseth1010Spain2026-04-08
Faith Gillian1011Japan2026-04-04
Salvatore Stockham1012Italy2026-04-19
Adams Morasca1013India2026-04-09
Claire Tollner1014Canada2026-03-30
Murillo Malet1015Italy2026-04-14
Aruna Figeroa1016France2026-04-07
Mujtaba Nicka1017Australia2026-03-30
David Darakjy1018Italy2026-04-02
Wickens Nestle1019United Kingdom2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamArgentinaElwin Sharvill RENEWAL
Leja CaldareraAustraliaXuxue Feng NEGOTIATION
Claire TollnerGermanyOnyama Limba UNQUALIFIED
Morrow RutaItalyStephen Shaw NEGOTIATION
Chavez BriddickUnited KingdomAnna Fali NEW
Cody SaylorsUnited KingdomIvan Magalhaes RENEWAL
Clifford RimIndiaAmy Elsner RENEWAL
Jones VocelkaCanadaIoni Bowcher RENEWAL
Greenwood BologniaItalyOnyama Limba QUALIFIED
Murillo MaletArgentinaBernardo Dominic NEW
Emily WhobreyIndiaBernardo Dominic QUALIFIED
Sinclair WaycottRussiaElwin Sharvill QUALIFIED
Leon OldroydJapanElwin Sharvill PROPOSAL
David DarakjyAustraliaIoni Bowcher QUALIFIED
Munro FerenczIndiaIvan Magalhaes UNQUALIFIED
Ashley DoeSpainBernardo Dominic NEW
Alejandro PerinCanadaIoni Bowcher QUALIFIED
Cody SaylorsUnited KingdomElwin Sharvill QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant NEW
Cody SaylorsFranceAmy Elsner UNQUALIFIED
Ivar PaprockiUnited KingdomAsiya Javayant QUALIFIED
Juan WieserGermanyXuxue Feng UNQUALIFIED
Murillo MaletUnited KingdomIoni Bowcher NEW
Clifford RimAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois VenereAustraliaStephen Shaw PROPOSAL
Aditya KuskoAustraliaXuxue Feng NEW
Sinclair WaycottRussiaIoni Bowcher QUALIFIED
Jones VocelkaCanadaAsiya Javayant RENEWAL
Juan WieserRussiaXuxue Feng QUALIFIED
Aditya KuskoFranceAnna Fali NEW
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Alejandro PerinItalyStephen Shaw PROPOSAL
Salvatore StockhamRussiaElwin Sharvill NEW
Maria MarrierIndiaStephen Shaw PROPOSAL
Munro FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Munro FerenczArgentinaIoni Bowcher RENEWAL
Jefferson SchemmerBrazilXuxue Feng UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill RENEWAL
Alejandro PerinSpainAnna Fali NEW
Greenwood BologniaIndiaXuxue Feng 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>