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 GarufiCanadaXuxue Feng PROPOSAL
Claire TollnerFranceAnna Fali NEGOTIATION
Izzy GarufiIndiaIoni Bowcher PROPOSAL
Leon OldroydSpainBernardo Dominic NEGOTIATION
Tony FollerFranceIvan Magalhaes RENEWAL
Aruna FigeroaArgentinaAnna Fali UNQUALIFIED
Stacey MacleadSpainOnyama Limba RENEWAL
Arvin AlbaresJapanElwin Sharvill NEGOTIATION
Cody SaylorsItalyStephen Shaw RENEWAL
Ashley DoeCanadaElwin Sharvill NEGOTIATION
Nicolas IturbideUnited KingdomElwin Sharvill NEGOTIATION
Salvatore StockhamRussiaIoni Bowcher NEW
Izzy GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro PerinArgentinaAmy Elsner NEGOTIATION
Jones VocelkaArgentinaIoni Bowcher NEGOTIATION
Sinclair WaycottItalyOnyama Limba QUALIFIED
Isabel BowleyGermanyElwin Sharvill NEW
Isabel BowleyGermanyAnna Fali QUALIFIED
Aruna FigeroaJapanIoni Bowcher RENEWAL
Kaitlin OstroskyJapanAsiya Javayant NEGOTIATION
Chavez BriddickRussiaOnyama Limba NEGOTIATION
Julie StensethArgentinaIvan Magalhaes NEW
Chavez BriddickAustraliaBernardo Dominic PROPOSAL
Misaki RoysterBrazilAsiya Javayant RENEWAL
Octavia MaletIndiaIoni Bowcher PROPOSAL
Maria MarrierBrazilIvan Magalhaes RENEWAL
Salvatore StockhamIndiaAsiya Javayant UNQUALIFIED
Misaki RoysterAustraliaIoni Bowcher QUALIFIED
Emily WhobreyUnited KingdomBernardo Dominic NEW
Greenwood BologniaIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher NEW
Cody SaylorsFranceAmy Elsner NEGOTIATION
Leon OldroydRussiaIoni Bowcher PROPOSAL
Ricardo GauchoSpainIoni Bowcher QUALIFIED
Misaki RoysterGermanyAsiya Javayant QUALIFIED
Tony FollerAustraliaBernardo Dominic QUALIFIED
Emily WhobreyAustraliaXuxue Feng NEW
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Jones VocelkaSpainBernardo Dominic NEW
James ButtSpainElwin Sharvill QUALIFIED
Aditya KuskoIndiaAsiya Javayant NEW
Smith GlickBrazilAsiya Javayant RENEWAL
Tony FollerAustraliaAnna Fali RENEWAL
Misaki RoysterIndiaElwin Sharvill NEGOTIATION
Ashley DoeCanadaIoni Bowcher NEGOTIATION
Darci PoquetteRussiaBernardo Dominic PROPOSAL
Ivar PaprockiFranceXuxue Feng NEGOTIATION
Misaki RoysterCanadaAsiya Javayant NEGOTIATION
Aditya KuskoItalyBernardo Dominic UNQUALIFIED
Salvatore StockhamItalyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleCanadaIvan Magalhaes UNQUALIFIED
Faith GillianIndiaAmy Elsner NEW
Faith GillianBrazilElwin Sharvill QUALIFIED
David DarakjyAustraliaOnyama Limba RENEWAL
Jefferson SchemmerBrazilOnyama Limba NEGOTIATION
Maria MarrierAustraliaIoni Bowcher NEGOTIATION
Faith GillianRussiaStephen Shaw NEW
Misaki RoysterAustraliaElwin Sharvill RENEWAL
Sinclair WaycottItalyOnyama Limba UNQUALIFIED
Ashley DoeCanadaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja CaldareraGermany2026-04-22Rangoni Of Florence NEGOTIATION55Elwin Sharvill
1001Aika InouyeFrance2026-04-02Buckley Miller Wright NEW26Onyama Limba
1002Juan WieserItaly2026-04-30Chemel, James L Cpa NEW13Asiya Javayant
1003Tony FollerSpain2026-04-30Chemel, James L Cpa RENEWAL28Ivan Magalhaes
1004Jennifer AmigonItaly2026-04-16Buckley Miller Wright RENEWAL50Anna Fali
1005Jones VocelkaAustralia2026-04-07Rangoni Of Florence QUALIFIED62Xuxue Feng
1006Emily WhobreyFrance2026-04-24Feiner Bros RENEWAL91Bernardo Dominic
1007Greenwood BologniaCanada2026-04-25Feiner Bros NEW25Ivan Magalhaes
1008Isabel BowleyFrance2026-04-05Commercial Press RENEWAL39Stephen Shaw
1009Stacey MacleadRussia2026-04-13Chemel, James L Cpa NEGOTIATION59Elwin Sharvill
1010Darci PoquetteSpain2026-04-09Feltz Printing Service NEGOTIATION69Xuxue Feng
1011Leon OldroydAustralia2026-04-10Feiner Bros NEGOTIATION80Asiya Javayant
1012Tony FollerAustralia2026-04-25Morlong Associates NEGOTIATION20Xuxue Feng
1013Smith GlickUnited Kingdom2026-04-16Commercial Press NEW43Ioni Bowcher
1014Aditya KuskoSpain2026-04-02Truhlar And Truhlar Attys RENEWAL23Elwin Sharvill
1015Faith GillianArgentina2026-04-10Chanay, Jeffrey A Esq PROPOSAL40Asiya Javayant
1016Greenwood BologniaAustralia2026-04-18Buckley Miller Wright RENEWAL9Ivan Magalhaes
1017Leon OldroydRussia2026-04-25Feltz Printing Service NEGOTIATION66Elwin Sharvill
1018Darci PoquetteGermany2026-04-10Feiner Bros PROPOSAL79Ioni Bowcher
1019Morrow RutaJapan2026-04-11Rangoni Of Florence UNQUALIFIED7Asiya Javayant
1020David DarakjyArgentina2026-04-10Buckley Miller Wright NEW61Stephen Shaw
1021Nicolas IturbideArgentina2026-04-02King, Christopher A Esq NEW82Xuxue Feng
1022Jennifer AmigonSpain2026-04-20Rousseaux, Michael Esq UNQUALIFIED94Ioni Bowcher
1023Clifford RimUnited Kingdom2026-04-04Chemel, James L Cpa RENEWAL27Elwin Sharvill
1024Aruna FigeroaSpain2026-04-19Chanay, Jeffrey A Esq QUALIFIED76Amy Elsner
1025Claire TollnerItaly2026-04-21Morlong Associates NEGOTIATION75Xuxue Feng
1026Nicolas IturbideAustralia2026-04-07Buckley Miller Wright PROPOSAL5Xuxue Feng
1027Chavez BriddickGermany2026-04-28Chanay, Jeffrey A Esq NEGOTIATION88Anna Fali
1028Kaitlin OstroskyIndia2026-04-28Rangoni Of Florence UNQUALIFIED80Xuxue Feng
1029Kaitlin OstroskyArgentina2026-04-03Chanay, Jeffrey A Esq UNQUALIFIED63Anna Fali
1030Octavia MaletBrazil2026-04-26Dorl, James J Esq RENEWAL68Elwin Sharvill
1031Wickens NestleBrazil2026-04-22Commercial Press UNQUALIFIED44Xuxue Feng
1032Ricardo GauchoJapan2026-04-22Chemel, James L Cpa RENEWAL89Ioni Bowcher
1033Sinclair WaycottBrazil2026-04-11Truhlar And Truhlar Attys RENEWAL94Xuxue Feng
1034Faith GillianFrance2026-04-10Buckley Miller Wright RENEWAL34Bernardo Dominic
1035Leon OldroydAustralia2026-04-26Rousseaux, Michael Esq NEW67Ivan Magalhaes
1036David DarakjyGermany2026-04-14Feltz Printing Service NEW6Ivan Magalhaes
1037Maisha RulapaughCanada2026-04-28Benton, John B Jr PROPOSAL59Xuxue Feng
1038Kadeem FlosiJapan2026-04-07Dorl, James J Esq QUALIFIED24Asiya Javayant
1039Jeanfrancois VenereRussia2026-04-29Feiner Bros RENEWAL66Elwin Sharvill
1040Claire TollnerFrance2026-04-27Truhlar And Truhlar Attys RENEWAL18Onyama Limba
1041Claire TollnerFrance2026-04-22Printing Dimensions PROPOSAL16Amy Elsner
1042Faith GillianCanada2026-04-25Chanay, Jeffrey A Esq UNQUALIFIED57Stephen Shaw
1043Aika InouyeUnited Kingdom2026-04-03Chanay, Jeffrey A Esq QUALIFIED41Elwin Sharvill
1044Wickens NestleRussia2026-04-02Feltz Printing Service QUALIFIED5Onyama Limba
1045Salvatore StockhamBrazil2026-04-11Chemel, James L Cpa RENEWAL73Xuxue Feng
1046Jeanfrancois VenereAustralia2026-04-29Chanay, Jeffrey A Esq NEW77Ioni Bowcher
1047Deepesh ChuiSpain2026-05-01Commercial Press PROPOSAL39Ioni Bowcher
1048Chavez BriddickAustralia2026-04-20Rangoni Of Florence NEW10Xuxue Feng
1049Jeanfrancois VenereRussia2026-04-11King, Christopher A Esq UNQUALIFIED96Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteFranceAsiya Javayant QUALIFIED
Claire TollnerBrazilIoni Bowcher QUALIFIED
Isabel BowleyArgentinaIvan Magalhaes PROPOSAL
Arvin AlbaresJapanBernardo Dominic UNQUALIFIED
Arvin AlbaresJapanAnna Fali NEGOTIATION
Cody SaylorsItalyBernardo Dominic PROPOSAL
Greenwood BologniaGermanyElwin Sharvill NEW
Ashley DoeIndiaStephen Shaw NEGOTIATION
Aditya KuskoItalyAmy Elsner PROPOSAL
Julie StensethArgentinaStephen Shaw NEW
Greenwood BologniaFranceElwin Sharvill RENEWAL
Julie StensethBrazilXuxue Feng RENEWAL
Jeanfrancois VenereItalyElwin Sharvill QUALIFIED
Wickens NestleAustraliaAmy Elsner NEGOTIATION
Julie StensethAustraliaElwin Sharvill NEGOTIATION
Alejandro PerinCanadaAnna Fali RENEWAL
David DarakjySpainAmy Elsner QUALIFIED
Munro FerenczFranceIoni Bowcher PROPOSAL
Clifford RimCanadaAmy Elsner NEW
Ricardo GauchoSpainXuxue Feng RENEWAL
Octavia MaletGermanyElwin Sharvill UNQUALIFIED
Ivar PaprockiArgentinaIoni Bowcher RENEWAL
Alejandro PerinSpainAmy Elsner RENEWAL
Adams MorascaBrazilIvan Magalhaes UNQUALIFIED
Wickens NestleJapanAmy Elsner UNQUALIFIED
Maria MarrierAustraliaElwin Sharvill QUALIFIED
Chavez BriddickItalyXuxue Feng UNQUALIFIED
Morrow RutaSpainXuxue Feng PROPOSAL
Julie StensethUnited KingdomXuxue Feng NEW
Izzy GarufiBrazilOnyama Limba RENEWAL
Adams MorascaItalyAnna Fali UNQUALIFIED
Johnson SergiAustraliaIoni Bowcher QUALIFIED
Chavez BriddickSpainAsiya Javayant NEGOTIATION
James ButtCanadaElwin Sharvill RENEWAL
Izzy GarufiUnited KingdomIvan Magalhaes RENEWAL
Clifford RimCanadaBernardo Dominic NEW
Emily WhobreyBrazilIoni Bowcher NEW
Ivar PaprockiSpainIoni Bowcher NEW
Leja CaldareraCanadaXuxue Feng NEW
Chavez BriddickUnited KingdomBernardo Dominic QUALIFIED
Sinclair WaycottIndiaIoni Bowcher RENEWAL
Jones VocelkaCanadaIvan Magalhaes RENEWAL
Cody SaylorsSpainOnyama Limba RENEWAL
Salvatore StockhamRussiaIoni Bowcher RENEWAL
Darci PoquetteAustraliaAnna Fali NEGOTIATION
Mujtaba NickaJapanOnyama Limba PROPOSAL
Izzy GarufiIndiaAnna Fali NEGOTIATION
Nicolas IturbideRussiaAnna Fali RENEWAL
Juan WieserArgentinaXuxue Feng NEGOTIATION
Greenwood BologniaBrazilOnyama Limba RENEWAL
Frozen Columns
Name
Maria Marrier
Wickens Nestle
Greenwood Bolognia
Salvatore Stockham
Morrow Ruta
Misaki Royster
Salvatore Stockham
David Darakjy
Costa Dilliard
Johnson Sergi
David Darakjy
Jones Vocelka
Izzy Garufi
Faith Gillian
Mayumi Kolmetz
Ivar Paprocki
Adams Morasca
Mujtaba Nicka
Greenwood Bolognia
Adams Morasca
Juan Wieser
Isabel Bowley
Leja Caldarera
Darci Poquette
Clifford Rim
James Butt
Sinclair Waycott
James Butt
Jeanfrancois Venere
Aruna Figeroa
Munro Ferencz
Nicolas Iturbide
Morrow Ruta
Kaitlin Ostrosky
Murillo Malet
Octavia Malet
Silvio Slusarski
Aika Inouye
Sinclair Waycott
Antonio Caudy
David Darakjy
Maria Marrier
Juan Wieser
Leja Caldarera
Cody Saylors
Darci Poquette
Jones Vocelka
Izzy Garufi
Adams Morasca
Deepesh Chui
IdCountryDate
1000Australia2026-04-18
1001Argentina2026-04-19
1002Australia2026-04-14
1003Germany2026-04-11
1004Germany2026-04-15
1005France2026-04-22
1006Australia2026-04-10
1007Australia2026-04-23
1008United Kingdom2026-04-05
1009India2026-04-25
1010Australia2026-04-14
1011Germany2026-04-18
1012Russia2026-04-20
1013Australia2026-04-07
1014Germany2026-04-12
1015India2026-04-05
1016Brazil2026-04-13
1017France2026-04-23
1018Argentina2026-04-26
1019Italy2026-05-01
1020Argentina2026-04-25
1021Japan2026-04-28
1022Canada2026-04-17
1023India2026-04-10
1024India2026-04-16
1025Japan2026-04-02
1026Italy2026-04-06
1027Italy2026-04-27
1028Spain2026-04-30
1029Argentina2026-04-29
1030Russia2026-04-20
1031Japan2026-04-23
1032India2026-04-05
1033Japan2026-04-14
1034Canada2026-04-12
1035Spain2026-04-27
1036Brazil2026-04-08
1037India2026-04-05
1038Germany2026-04-18
1039Brazil2026-04-11
1040Spain2026-04-05
1041Spain2026-04-06
1042Italy2026-04-24
1043Spain2026-04-26
1044Spain2026-04-21
1045France2026-04-19
1046France2026-04-30
1047Argentina2026-04-27
1048Argentina2026-04-11
1049Japan2026-04-12

On-Demand Data

NameIdCountryDate
Misaki Royster1000Argentina2026-04-24
Izzy Garufi1001Germany2026-04-08
Octavia Malet1002Spain2026-04-14
Costa Dilliard1003Argentina2026-04-22
Munro Ferencz1004Australia2026-04-02
Leon Oldroyd1005Italy2026-04-07
Francesco Shinko1006Argentina2026-05-01
Juan Wieser1007Canada2026-04-26
Jeanfrancois Venere1008Australia2026-04-15
Jones Vocelka1009Argentina2026-04-08
Murillo Malet1010France2026-04-30
Rodrigues Campain1011Germany2026-04-17
Deepesh Chui1012Argentina2026-04-02
Antonio Caudy1013India2026-04-13
Cody Saylors1014Argentina2026-04-05
Jefferson Schemmer1015Germany2026-04-24
Munro Ferencz1016France2026-04-18
Salvatore Stockham1017Argentina2026-04-04
Munro Ferencz1018Spain2026-04-11
Murillo Malet1019Italy2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickAustraliaElwin Sharvill PROPOSAL
Clifford RimSpainIoni Bowcher NEW
James ButtRussiaAnna Fali UNQUALIFIED
Tony FollerArgentinaAsiya Javayant NEW
Misaki RoysterSpainAmy Elsner NEGOTIATION
Sinclair WaycottCanadaStephen Shaw PROPOSAL
Cody SaylorsJapanAnna Fali NEGOTIATION
Francesco ShinkoItalyXuxue Feng UNQUALIFIED
Aditya KuskoJapanIoni Bowcher NEGOTIATION
Rodrigues CampainFranceIoni Bowcher PROPOSAL
Sinclair WaycottBrazilBernardo Dominic NEGOTIATION
Chavez BriddickJapanOnyama Limba PROPOSAL
Darci PoquetteGermanyAnna Fali NEW
Arvin AlbaresArgentinaAnna Fali NEGOTIATION
Morrow RutaItalyBernardo Dominic UNQUALIFIED
Jones VocelkaIndiaAnna Fali PROPOSAL
Tony FollerFranceBernardo Dominic UNQUALIFIED
Isabel BowleyJapanAmy Elsner NEW
Alejandro PerinFranceIvan Magalhaes RENEWAL
Chavez BriddickCanadaAnna Fali NEW
Chavez BriddickFranceAsiya Javayant QUALIFIED
Francesco ShinkoCanadaElwin Sharvill QUALIFIED
Isabel BowleyIndiaAmy Elsner NEW
Cody SaylorsJapanAsiya Javayant PROPOSAL
Ashley DoeRussiaXuxue Feng NEGOTIATION
David DarakjyGermanyElwin Sharvill UNQUALIFIED
Kadeem FlosiJapanElwin Sharvill NEGOTIATION
Aruna FigeroaCanadaIoni Bowcher UNQUALIFIED
Cody SaylorsCanadaAmy Elsner QUALIFIED
Smith GlickAustraliaXuxue Feng QUALIFIED
Faith GillianGermanyIvan Magalhaes NEGOTIATION
Francesco ShinkoJapanElwin Sharvill NEGOTIATION
Claire TollnerSpainBernardo Dominic QUALIFIED
Octavia MaletUnited KingdomAsiya Javayant PROPOSAL
Juan WieserRussiaBernardo Dominic RENEWAL
Rodrigues CampainItalyBernardo Dominic NEW
Stacey MacleadAustraliaIvan Magalhaes UNQUALIFIED
Chavez BriddickUnited KingdomBernardo Dominic NEGOTIATION
Munro FerenczArgentinaAnna Fali NEGOTIATION
Misaki RoysterArgentinaIoni Bowcher NEW

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