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
Ivar PaprockiGermanyXuxue Feng PROPOSAL
Faith GillianAustraliaStephen Shaw NEW
Stacey MacleadSpainElwin Sharvill UNQUALIFIED
Jones VocelkaFranceBernardo Dominic NEW
Greenwood BologniaIndiaIvan Magalhaes PROPOSAL
Deepesh ChuiIndiaOnyama Limba RENEWAL
Maria MarrierAustraliaIoni Bowcher NEW
Darci PoquetteArgentinaElwin Sharvill NEW
Chavez BriddickGermanyIoni Bowcher QUALIFIED
Francesco ShinkoFranceAmy Elsner NEGOTIATION
Clifford RimBrazilXuxue Feng NEW
Faith GillianArgentinaIvan Magalhaes NEGOTIATION
Morrow RutaBrazilAnna Fali UNQUALIFIED
Antonio CaudyIndiaAmy Elsner NEW
Maisha RulapaughUnited KingdomStephen Shaw NEW
Morrow RutaRussiaBernardo Dominic NEW
Deepesh ChuiIndiaElwin Sharvill QUALIFIED
Julie StensethCanadaAmy Elsner NEW
Claire TollnerBrazilIoni Bowcher QUALIFIED
Adams MorascaUnited KingdomBernardo Dominic NEGOTIATION
Maisha RulapaughRussiaXuxue Feng PROPOSAL
Munro FerenczFranceOnyama Limba NEGOTIATION
Ivar PaprockiRussiaIoni Bowcher NEGOTIATION
Maria MarrierIndiaAnna Fali NEGOTIATION
Jones VocelkaItalyAmy Elsner NEW
Munro FerenczGermanyBernardo Dominic UNQUALIFIED
Murillo MaletGermanyIvan Magalhaes QUALIFIED
Faith GillianAustraliaElwin Sharvill RENEWAL
Leja CaldareraGermanyAnna Fali QUALIFIED
Alejandro PerinItalyIvan Magalhaes RENEWAL
Octavia MaletSpainAnna Fali PROPOSAL
Murillo MaletBrazilAmy Elsner NEGOTIATION
Emily WhobreySpainAsiya Javayant UNQUALIFIED
Octavia MaletAustraliaAnna Fali NEGOTIATION
David DarakjyItalyIoni Bowcher UNQUALIFIED
Leon OldroydJapanBernardo Dominic QUALIFIED
Jones VocelkaSpainAsiya Javayant NEW
Rodrigues CampainAustraliaAmy Elsner UNQUALIFIED
Aditya KuskoSpainIvan Magalhaes NEGOTIATION
Aditya KuskoRussiaStephen Shaw RENEWAL
Aditya KuskoArgentinaAnna Fali QUALIFIED
Aditya KuskoJapanAmy Elsner NEW
Alejandro PerinCanadaElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaElwin Sharvill UNQUALIFIED
Octavia MaletArgentinaStephen Shaw RENEWAL
Murillo MaletRussiaAmy Elsner RENEWAL
Salvatore StockhamUnited KingdomStephen Shaw PROPOSAL
Greenwood BologniaCanadaAmy Elsner UNQUALIFIED
Aruna FigeroaJapanXuxue Feng RENEWAL
Izzy GarufiGermanyIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley DoeBrazilAsiya Javayant RENEWAL
Johnson SergiRussiaXuxue Feng NEW
Arvin AlbaresItalyBernardo Dominic QUALIFIED
Francesco ShinkoItalyStephen Shaw PROPOSAL
Faith GillianSpainBernardo Dominic NEW
Cody SaylorsItalyIoni Bowcher NEW
Aika InouyeGermanyAnna Fali NEGOTIATION
Izzy GarufiArgentinaIoni Bowcher NEGOTIATION
Alejandro PerinBrazilIoni Bowcher NEW
Leon OldroydAustraliaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzAustralia2025-10-16Dorl, James J Esq PROPOSAL84Bernardo Dominic
1001Aditya KuskoGermany2025-10-04Rangoni Of Florence QUALIFIED55Onyama Limba
1002Aruna FigeroaBrazil2025-10-13King, Christopher A Esq NEGOTIATION79Ivan Magalhaes
1003Izzy GarufiJapan2025-09-21Feltz Printing Service NEW99Ioni Bowcher
1004Mujtaba NickaUnited Kingdom2025-10-07Chanay, Jeffrey A Esq QUALIFIED94Anna Fali
1005Maria MarrierArgentina2025-10-03Morlong Associates NEGOTIATION8Asiya Javayant
1006Ricardo GauchoRussia2025-09-23Feiner Bros PROPOSAL35Onyama Limba
1007Ashley DoeCanada2025-09-28Buckley Miller Wright RENEWAL16Ioni Bowcher
1008David DarakjyAustralia2025-10-09King, Christopher A Esq UNQUALIFIED52Xuxue Feng
1009Antonio CaudyFrance2025-10-07Rangoni Of Florence PROPOSAL5Asiya Javayant
1010Morrow RutaAustralia2025-09-25Printing Dimensions UNQUALIFIED43Stephen Shaw
1011David DarakjyAustralia2025-10-05Morlong Associates NEW87Amy Elsner
1012Mayumi KolmetzSpain2025-09-26Truhlar And Truhlar Attys UNQUALIFIED61Anna Fali
1013Alejandro PerinGermany2025-09-28Feltz Printing Service NEGOTIATION90Onyama Limba
1014Wickens NestleCanada2025-10-11Feltz Printing Service UNQUALIFIED99Amy Elsner
1015Cody SaylorsFrance2025-10-01Dorl, James J Esq RENEWAL43Xuxue Feng
1016Nicolas IturbideJapan2025-09-23Rousseaux, Michael Esq RENEWAL39Onyama Limba
1017Rodrigues CampainUnited Kingdom2025-10-07Rousseaux, Michael Esq NEW85Onyama Limba
1018Izzy GarufiFrance2025-10-04Benton, John B Jr PROPOSAL37Ioni Bowcher
1019Sinclair WaycottGermany2025-10-18Rangoni Of Florence NEGOTIATION32Anna Fali
1020Adams MorascaBrazil2025-10-19Morlong Associates PROPOSAL83Ioni Bowcher
1021Rodrigues CampainCanada2025-10-16Rangoni Of Florence RENEWAL0Onyama Limba
1022Deepesh ChuiItaly2025-10-16Morlong Associates UNQUALIFIED27Asiya Javayant
1023Maria MarrierRussia2025-10-05Rousseaux, Michael Esq UNQUALIFIED9Amy Elsner
1024Clifford RimSpain2025-10-17Rousseaux, Michael Esq QUALIFIED58Ioni Bowcher
1025Smith GlickAustralia2025-09-30Chemel, James L Cpa RENEWAL15Ioni Bowcher
1026Sinclair WaycottGermany2025-09-20Printing Dimensions NEGOTIATION3Bernardo Dominic
1027Aika InouyeArgentina2025-09-24Rangoni Of Florence NEW61Asiya Javayant
1028Smith GlickUnited Kingdom2025-09-21Morlong Associates PROPOSAL42Bernardo Dominic
1029Misaki RoysterRussia2025-10-11Feltz Printing Service NEGOTIATION59Asiya Javayant
1030Morrow RutaCanada2025-10-11Dorl, James J Esq QUALIFIED7Elwin Sharvill
1031Jennifer AmigonFrance2025-09-28King, Christopher A Esq NEGOTIATION84Stephen Shaw
1032Murillo MaletCanada2025-10-13King, Christopher A Esq RENEWAL21Asiya Javayant
1033Jeanfrancois VenereAustralia2025-10-11Chemel, James L Cpa QUALIFIED36Onyama Limba
1034Smith GlickCanada2025-09-28Dorl, James J Esq UNQUALIFIED78Elwin Sharvill
1035Silvio SlusarskiSpain2025-10-11Chanay, Jeffrey A Esq UNQUALIFIED65Stephen Shaw
1036Kadeem FlosiItaly2025-10-17Truhlar And Truhlar Attys QUALIFIED33Xuxue Feng
1037Costa DilliardCanada2025-10-08King, Christopher A Esq NEGOTIATION11Stephen Shaw
1038Jeanfrancois VenereGermany2025-10-17Dorl, James J Esq QUALIFIED68Stephen Shaw
1039Leon OldroydFrance2025-10-01Rangoni Of Florence NEW91Anna Fali
1040Antonio CaudyBrazil2025-10-17Morlong Associates PROPOSAL37Ioni Bowcher
1041Murillo MaletUnited Kingdom2025-10-14Chapman, Ross E Esq RENEWAL73Ivan Magalhaes
1042Ashley DoeBrazil2025-09-27Chapman, Ross E Esq NEGOTIATION2Onyama Limba
1043Greenwood BologniaArgentina2025-10-11Morlong Associates UNQUALIFIED37Stephen Shaw
1044Faith GillianFrance2025-09-26Chemel, James L Cpa UNQUALIFIED41Onyama Limba
1045Faith GillianSpain2025-10-09Truhlar And Truhlar Attys RENEWAL87Anna Fali
1046Nicolas IturbideGermany2025-10-05Chapman, Ross E Esq NEGOTIATION75Anna Fali
1047Maria MarrierCanada2025-09-22Morlong Associates RENEWAL82Ivan Magalhaes
1048Mayumi KolmetzAustralia2025-09-21Dorl, James J Esq QUALIFIED1Elwin Sharvill
1049Claire TollnerIndia2025-10-13Truhlar And Truhlar Attys RENEWAL47Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoRussiaOnyama Limba NEW
Mayumi KolmetzIndiaIoni Bowcher NEW
Tony FollerItalyOnyama Limba UNQUALIFIED
Ashley DoeJapanAnna Fali UNQUALIFIED
Aruna FigeroaRussiaAsiya Javayant NEW
Aika InouyeUnited KingdomAnna Fali UNQUALIFIED
Faith GillianUnited KingdomAsiya Javayant QUALIFIED
Jefferson SchemmerFranceAmy Elsner QUALIFIED
Nicolas IturbideItalyAsiya Javayant QUALIFIED
Izzy GarufiGermanyElwin Sharvill RENEWAL
Munro FerenczGermanyIvan Magalhaes QUALIFIED
James ButtAustraliaXuxue Feng UNQUALIFIED
David DarakjyCanadaIvan Magalhaes NEGOTIATION
Darci PoquetteAustraliaElwin Sharvill QUALIFIED
Claire TollnerJapanAmy Elsner PROPOSAL
Julie StensethRussiaBernardo Dominic QUALIFIED
Stacey MacleadAustraliaAmy Elsner UNQUALIFIED
Aika InouyeItalyBernardo Dominic PROPOSAL
Murillo MaletRussiaElwin Sharvill RENEWAL
Maisha RulapaughGermanyAnna Fali PROPOSAL
Ashley DoeBrazilAsiya Javayant NEGOTIATION
David DarakjyGermanyIvan Magalhaes QUALIFIED
Ashley DoeRussiaIvan Magalhaes NEGOTIATION
Morrow RutaSpainIoni Bowcher QUALIFIED
Chavez BriddickArgentinaAmy Elsner NEW
Nicolas IturbideUnited KingdomStephen Shaw RENEWAL
Adams MorascaRussiaAmy Elsner UNQUALIFIED
Deepesh ChuiJapanAnna Fali RENEWAL
Arvin AlbaresCanadaElwin Sharvill UNQUALIFIED
Darci PoquetteGermanyAnna Fali PROPOSAL
David DarakjyGermanyElwin Sharvill QUALIFIED
Aruna FigeroaFranceIoni Bowcher PROPOSAL
Adams MorascaArgentinaElwin Sharvill PROPOSAL
Sinclair WaycottItalyAnna Fali NEW
Arvin AlbaresSpainIoni Bowcher QUALIFIED
Ricardo GauchoIndiaAmy Elsner QUALIFIED
Murillo MaletCanadaElwin Sharvill PROPOSAL
Johnson SergiUnited KingdomIoni Bowcher NEW
Kaitlin OstroskyAustraliaOnyama Limba RENEWAL
Mujtaba NickaFranceAmy Elsner NEW
Jones VocelkaSpainOnyama Limba PROPOSAL
Darci PoquetteFranceIvan Magalhaes UNQUALIFIED
Octavia MaletSpainIvan Magalhaes NEGOTIATION
Deepesh ChuiJapanIvan Magalhaes QUALIFIED
Ivar PaprockiIndiaOnyama Limba UNQUALIFIED
Ivar PaprockiIndiaAnna Fali QUALIFIED
Nicolas IturbideSpainIvan Magalhaes UNQUALIFIED
Sinclair WaycottSpainAnna Fali RENEWAL
Chavez BriddickRussiaIvan Magalhaes NEW
Johnson SergiFranceIoni Bowcher NEW
Frozen Columns
Name
Maisha Rulapaugh
Wickens Nestle
Isabel Bowley
Kaitlin Ostrosky
Faith Gillian
Jones Vocelka
Julie Stenseth
Tony Foller
Maria Marrier
Aditya Kusko
Tony Foller
Darci Poquette
Smith Glick
Emily Whobrey
Antonio Caudy
Jeanfrancois Venere
Emily Whobrey
Adams Morasca
Ashley Doe
Murillo Malet
Izzy Garufi
Kaitlin Ostrosky
Leja Caldarera
Aruna Figeroa
Claire Tollner
Claire Tollner
Cody Saylors
Chavez Briddick
Misaki Royster
Alejandro Perin
Leja Caldarera
Mayumi Kolmetz
Stacey Maclead
Sinclair Waycott
Mayumi Kolmetz
Johnson Sergi
Alejandro Perin
Ashley Doe
Juan Wieser
Murillo Malet
Adams Morasca
Kadeem Flosi
Jefferson Schemmer
Greenwood Bolognia
Arvin Albares
Cody Saylors
Aditya Kusko
Claire Tollner
Aruna Figeroa
Tony Foller
IdCountryDate
1000India2025-10-15
1001Australia2025-09-30
1002India2025-09-23
1003Brazil2025-10-18
1004France2025-09-25
1005France2025-10-05
1006Japan2025-10-07
1007Spain2025-10-17
1008Australia2025-10-14
1009Australia2025-10-10
1010Spain2025-10-16
1011Spain2025-09-25
1012United Kingdom2025-10-19
1013Argentina2025-10-02
1014Canada2025-10-10
1015Russia2025-10-16
1016India2025-10-10
1017Russia2025-10-12
1018Germany2025-10-02
1019Spain2025-10-07
1020Japan2025-10-03
1021Japan2025-09-27
1022Japan2025-10-12
1023Germany2025-10-01
1024Argentina2025-10-09
1025Argentina2025-10-11
1026Canada2025-10-14
1027Japan2025-10-11
1028France2025-10-05
1029Spain2025-10-18
1030Japan2025-10-18
1031Japan2025-10-04
1032Italy2025-10-13
1033Spain2025-10-14
1034Brazil2025-09-26
1035Brazil2025-10-19
1036Brazil2025-10-07
1037Australia2025-10-03
1038Italy2025-10-07
1039India2025-10-05
1040India2025-10-04
1041Italy2025-09-26
1042Italy2025-09-25
1043India2025-10-11
1044India2025-10-14
1045Brazil2025-09-29
1046Argentina2025-10-11
1047Japan2025-10-17
1048Russia2025-10-15
1049Germany2025-10-05

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000Spain2025-10-19
Kaitlin Ostrosky1001Italy2025-10-13
Smith Glick1002Argentina2025-10-07
Morrow Ruta1003Argentina2025-10-01
Maisha Rulapaugh1004Argentina2025-09-25
Sinclair Waycott1005India2025-10-10
Maria Marrier1006Italy2025-09-28
Arvin Albares1007Germany2025-10-02
Murillo Malet1008Argentina2025-10-08
Maria Marrier1009United Kingdom2025-10-13
Jones Vocelka1010Brazil2025-09-20
Deepesh Chui1011India2025-10-07
Claire Tollner1012Spain2025-09-27
Misaki Royster1013Brazil2025-09-22
Kaitlin Ostrosky1014India2025-09-20
Johnson Sergi1015Italy2025-09-27
Kaitlin Ostrosky1016France2025-10-08
Leon Oldroyd1017Germany2025-09-21
Kadeem Flosi1018Argentina2025-09-27
Sinclair Waycott1019Italy2025-09-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimRussiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereCanadaAnna Fali NEW
Chavez BriddickBrazilIoni Bowcher NEGOTIATION
Isabel BowleyArgentinaElwin Sharvill NEGOTIATION
Kaitlin OstroskyRussiaStephen Shaw PROPOSAL
Wickens NestleArgentinaAsiya Javayant UNQUALIFIED
Morrow RutaItalyAnna Fali QUALIFIED
Rodrigues CampainRussiaBernardo Dominic NEW
Wickens NestleBrazilIoni Bowcher NEW
Juan WieserCanadaAsiya Javayant NEW
Ashley DoeCanadaAsiya Javayant UNQUALIFIED
Tony FollerGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaBrazilAnna Fali NEGOTIATION
Johnson SergiCanadaBernardo Dominic NEW
Deepesh ChuiSpainAnna Fali RENEWAL
Isabel BowleyRussiaAsiya Javayant RENEWAL
Stacey MacleadCanadaIvan Magalhaes NEGOTIATION
Kadeem FlosiArgentinaAnna Fali NEGOTIATION
Maria MarrierJapanAnna Fali QUALIFIED
Kaitlin OstroskyBrazilAnna Fali QUALIFIED
Aruna FigeroaFranceElwin Sharvill RENEWAL
Adams MorascaRussiaIvan Magalhaes NEGOTIATION
Deepesh ChuiItalyIoni Bowcher QUALIFIED
Misaki RoysterFranceBernardo Dominic NEW
Mayumi KolmetzItalyAmy Elsner NEGOTIATION
Johnson SergiAustraliaElwin Sharvill QUALIFIED
Julie StensethFranceBernardo Dominic QUALIFIED
Juan WieserFranceIoni Bowcher PROPOSAL
Jefferson SchemmerUnited KingdomIoni Bowcher NEW
Ricardo GauchoBrazilXuxue Feng NEW
Ricardo GauchoSpainBernardo Dominic NEW
Aditya KuskoRussiaStephen Shaw PROPOSAL
Isabel BowleyBrazilIoni Bowcher RENEWAL
Silvio SlusarskiAustraliaXuxue Feng QUALIFIED
Alejandro PerinFranceStephen Shaw QUALIFIED
Salvatore StockhamGermanyAnna Fali NEW
Aditya KuskoItalyOnyama Limba NEW
Emily WhobreyFranceIvan Magalhaes QUALIFIED
David DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Adams MorascaFranceBernardo Dominic UNQUALIFIED

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