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 GillianRussiaOnyama Limba PROPOSAL
Murillo MaletItalyElwin Sharvill UNQUALIFIED
Smith GlickRussiaStephen Shaw NEW
James ButtJapanBernardo Dominic QUALIFIED
Ivar PaprockiCanadaIoni Bowcher RENEWAL
Sinclair WaycottSpainAmy Elsner UNQUALIFIED
Aika InouyeBrazilStephen Shaw QUALIFIED
Adams MorascaAustraliaIoni Bowcher RENEWAL
Rodrigues CampainRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaArgentinaAsiya Javayant NEW
Salvatore StockhamGermanyAsiya Javayant PROPOSAL
Jones VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Jefferson SchemmerItalyStephen Shaw QUALIFIED
Jennifer AmigonIndiaStephen Shaw QUALIFIED
Kaitlin OstroskyItalyElwin Sharvill NEW
Antonio CaudyUnited KingdomAnna Fali RENEWAL
James ButtIndiaAnna Fali NEW
Jefferson SchemmerFranceAmy Elsner NEW
Ivar PaprockiSpainBernardo Dominic NEGOTIATION
Arvin AlbaresCanadaXuxue Feng RENEWAL
Deepesh ChuiBrazilElwin Sharvill UNQUALIFIED
Morrow RutaJapanBernardo Dominic QUALIFIED
Misaki RoysterRussiaIvan Magalhaes QUALIFIED
Aruna FigeroaBrazilElwin Sharvill UNQUALIFIED
Smith GlickCanadaOnyama Limba RENEWAL
Mayumi KolmetzAustraliaIoni Bowcher NEGOTIATION
Francesco ShinkoFranceAnna Fali PROPOSAL
Jennifer AmigonJapanOnyama Limba PROPOSAL
Ricardo GauchoItalyAnna Fali PROPOSAL
James ButtIndiaBernardo Dominic UNQUALIFIED
Leja CaldareraItalyAmy Elsner PROPOSAL
Tony FollerIndiaAsiya Javayant QUALIFIED
Leja CaldareraFranceStephen Shaw NEW
Murillo MaletCanadaIvan Magalhaes UNQUALIFIED
Claire TollnerJapanIvan Magalhaes PROPOSAL
Claire TollnerGermanyAmy Elsner RENEWAL
Jones VocelkaJapanAsiya Javayant NEGOTIATION
Izzy GarufiJapanBernardo Dominic RENEWAL
Kadeem FlosiFranceXuxue Feng NEW
Salvatore StockhamFranceXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaOnyama Limba NEGOTIATION
Jefferson SchemmerItalyAnna Fali NEW
Clifford RimSpainAnna Fali NEW
Greenwood BologniaJapanBernardo Dominic UNQUALIFIED
Francesco ShinkoAustraliaOnyama Limba NEGOTIATION
Chavez BriddickRussiaAnna Fali RENEWAL
Kadeem FlosiIndiaStephen Shaw PROPOSAL
Nicolas IturbideSpainAnna Fali UNQUALIFIED
Silvio SlusarskiAustraliaBernardo Dominic PROPOSAL
Jefferson SchemmerArgentinaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Maria MarrierArgentinaBernardo Dominic RENEWAL
Juan WieserArgentinaElwin Sharvill QUALIFIED
Leon OldroydSpainIvan Magalhaes NEGOTIATION
Silvio SlusarskiItalyElwin Sharvill RENEWAL
Greenwood BologniaAustraliaXuxue Feng RENEWAL
Stacey MacleadItalyAsiya Javayant NEGOTIATION
Tony FollerRussiaIvan Magalhaes RENEWAL
Deepesh ChuiRussiaIvan Magalhaes NEW
Sinclair WaycottArgentinaIvan Magalhaes NEGOTIATION
Sinclair WaycottAustraliaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaAustralia2026-05-07Rousseaux, Michael Esq RENEWAL99Amy Elsner
1001Tony FollerRussia2026-05-19Morlong Associates PROPOSAL41Asiya Javayant
1002Faith GillianItaly2026-05-30Truhlar And Truhlar Attys NEW81Xuxue Feng
1003Ashley DoeSpain2026-05-02Printing Dimensions RENEWAL97Asiya Javayant
1004Julie StensethArgentina2026-05-11King, Christopher A Esq NEGOTIATION3Asiya Javayant
1005Johnson SergiBrazil2026-05-09Feltz Printing Service NEGOTIATION28Elwin Sharvill
1006Aditya KuskoJapan2026-05-23Chemel, James L Cpa NEW54Ivan Magalhaes
1007Ashley DoeRussia2026-05-16Chapman, Ross E Esq NEW72Anna Fali
1008Cody SaylorsIndia2026-05-15Rangoni Of Florence PROPOSAL11Elwin Sharvill
1009Emily WhobreyItaly2026-05-18Chanay, Jeffrey A Esq PROPOSAL24Ioni Bowcher
1010Wickens NestleJapan2026-05-26Buckley Miller Wright PROPOSAL96Stephen Shaw
1011Aruna FigeroaGermany2026-05-25Chapman, Ross E Esq NEW79Amy Elsner
1012Ashley DoeUnited Kingdom2026-05-17Rousseaux, Michael Esq NEW87Stephen Shaw
1013Aditya KuskoUnited Kingdom2026-05-13Feiner Bros QUALIFIED21Stephen Shaw
1014Nicolas IturbideRussia2026-05-01Buckley Miller Wright NEGOTIATION56Anna Fali
1015Jeanfrancois VenereArgentina2026-05-16Feltz Printing Service NEW10Amy Elsner
1016Juan WieserAustralia2026-05-07Chapman, Ross E Esq QUALIFIED78Onyama Limba
1017Kadeem FlosiGermany2026-05-25Feiner Bros UNQUALIFIED68Ivan Magalhaes
1018Antonio CaudyFrance2026-05-10Feiner Bros QUALIFIED62Amy Elsner
1019Morrow RutaRussia2026-05-04Truhlar And Truhlar Attys PROPOSAL65Onyama Limba
1020Izzy GarufiJapan2026-05-28Chapman, Ross E Esq QUALIFIED77Anna Fali
1021Stacey MacleadBrazil2026-05-04Commercial Press NEGOTIATION78Ivan Magalhaes
1022Kaitlin OstroskyAustralia2026-05-13Buckley Miller Wright NEW33Ivan Magalhaes
1023Nicolas IturbideItaly2026-05-26Chapman, Ross E Esq NEW1Elwin Sharvill
1024Cody SaylorsIndia2026-05-30Chapman, Ross E Esq UNQUALIFIED30Amy Elsner
1025Murillo MaletItaly2026-05-18Commercial Press QUALIFIED20Elwin Sharvill
1026Aditya KuskoSpain2026-05-18Buckley Miller Wright QUALIFIED31Anna Fali
1027Salvatore StockhamBrazil2026-05-11Chemel, James L Cpa RENEWAL11Asiya Javayant
1028Jefferson SchemmerJapan2026-05-09Benton, John B Jr QUALIFIED77Stephen Shaw
1029Chavez BriddickArgentina2026-05-18Chanay, Jeffrey A Esq RENEWAL1Asiya Javayant
1030Stacey MacleadItaly2026-05-24Truhlar And Truhlar Attys NEGOTIATION11Xuxue Feng
1031Misaki RoysterIndia2026-05-07Chemel, James L Cpa PROPOSAL35Amy Elsner
1032Julie StensethSpain2026-05-05Chanay, Jeffrey A Esq UNQUALIFIED95Onyama Limba
1033Aika InouyeBrazil2026-05-26Feiner Bros QUALIFIED18Onyama Limba
1034Clifford RimCanada2026-05-23Printing Dimensions UNQUALIFIED7Elwin Sharvill
1035Rodrigues CampainCanada2026-05-20Chapman, Ross E Esq NEW93Xuxue Feng
1036Johnson SergiJapan2026-05-23Commercial Press PROPOSAL99Stephen Shaw
1037Munro FerenczFrance2026-05-03Chanay, Jeffrey A Esq PROPOSAL19Xuxue Feng
1038Faith GillianUnited Kingdom2026-05-30Morlong Associates QUALIFIED59Ioni Bowcher
1039Mayumi KolmetzArgentina2026-05-05King, Christopher A Esq NEW84Ioni Bowcher
1040Antonio CaudyFrance2026-05-07Rangoni Of Florence PROPOSAL11Bernardo Dominic
1041Emily WhobreyRussia2026-05-15Chapman, Ross E Esq NEW80Xuxue Feng
1042Octavia MaletJapan2026-05-30Benton, John B Jr PROPOSAL10Asiya Javayant
1043Jeanfrancois VenereFrance2026-05-13Feltz Printing Service QUALIFIED22Onyama Limba
1044Wickens NestleUnited Kingdom2026-05-18Rousseaux, Michael Esq PROPOSAL44Bernardo Dominic
1045Jeanfrancois VenereRussia2026-05-05Buckley Miller Wright NEGOTIATION62Xuxue Feng
1046Stacey MacleadArgentina2026-05-05Chemel, James L Cpa NEW11Onyama Limba
1047Ricardo GauchoRussia2026-05-06Feltz Printing Service NEGOTIATION70Elwin Sharvill
1048Jennifer AmigonJapan2026-05-10Rousseaux, Michael Esq NEGOTIATION56Ioni Bowcher
1049Tony FollerJapan2026-05-16Buckley Miller Wright PROPOSAL5Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadArgentinaAnna Fali NEGOTIATION
Jeanfrancois VenereBrazilStephen Shaw NEW
Ivar PaprockiIndiaAsiya Javayant UNQUALIFIED
Emily WhobreyFranceElwin Sharvill UNQUALIFIED
Francesco ShinkoArgentinaIvan Magalhaes PROPOSAL
Kaitlin OstroskyArgentinaElwin Sharvill NEGOTIATION
Nicolas IturbideItalyIvan Magalhaes QUALIFIED
David DarakjyAustraliaOnyama Limba NEW
Maria MarrierJapanStephen Shaw RENEWAL
Octavia MaletGermanyBernardo Dominic QUALIFIED
Julie StensethRussiaStephen Shaw PROPOSAL
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Stacey MacleadItalyAmy Elsner QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher RENEWAL
Faith GillianCanadaAmy Elsner PROPOSAL
Aditya KuskoGermanyIoni Bowcher NEW
Greenwood BologniaCanadaIoni Bowcher UNQUALIFIED
Misaki RoysterCanadaXuxue Feng NEW
Munro FerenczSpainIvan Magalhaes QUALIFIED
Johnson SergiBrazilBernardo Dominic PROPOSAL
Tony FollerFranceXuxue Feng NEGOTIATION
Maisha RulapaughItalyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill NEW
Aditya KuskoBrazilAsiya Javayant NEW
Darci PoquetteFranceStephen Shaw UNQUALIFIED
Silvio SlusarskiJapanXuxue Feng RENEWAL
Rodrigues CampainRussiaOnyama Limba PROPOSAL
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Mujtaba NickaRussiaIoni Bowcher NEW
Jefferson SchemmerFranceIoni Bowcher QUALIFIED
Clifford RimGermanyXuxue Feng PROPOSAL
Juan WieserArgentinaAnna Fali NEW
Jennifer AmigonIndiaStephen Shaw NEW
Claire TollnerItalyAnna Fali UNQUALIFIED
Adams MorascaGermanyIvan Magalhaes RENEWAL
Murillo MaletIndiaXuxue Feng PROPOSAL
Silvio SlusarskiIndiaXuxue Feng UNQUALIFIED
Faith GillianArgentinaAnna Fali RENEWAL
Antonio CaudyRussiaIvan Magalhaes UNQUALIFIED
Octavia MaletCanadaAmy Elsner RENEWAL
Stacey MacleadAustraliaAnna Fali PROPOSAL
Ivar PaprockiIndiaAmy Elsner RENEWAL
Mujtaba NickaGermanyAnna Fali RENEWAL
Maria MarrierIndiaIoni Bowcher RENEWAL
Aika InouyeAustraliaAmy Elsner NEW
Mujtaba NickaItalyStephen Shaw QUALIFIED
Clifford RimFranceXuxue Feng PROPOSAL
Greenwood BologniaFranceStephen Shaw QUALIFIED
Deepesh ChuiGermanyXuxue Feng PROPOSAL
Francesco ShinkoSpainElwin Sharvill NEW
Frozen Columns
Name
Emily Whobrey
Stacey Maclead
Murillo Malet
Murillo Malet
Jennifer Amigon
Emily Whobrey
Mayumi Kolmetz
Maisha Rulapaugh
Arvin Albares
Ricardo Gaucho
Sinclair Waycott
Antonio Caudy
Morrow Ruta
Maria Marrier
Antonio Caudy
Misaki Royster
Clifford Rim
Misaki Royster
Salvatore Stockham
Chavez Briddick
David Darakjy
Smith Glick
Stacey Maclead
Nicolas Iturbide
Arvin Albares
Jennifer Amigon
Greenwood Bolognia
Aditya Kusko
Arvin Albares
Izzy Garufi
Aruna Figeroa
Stacey Maclead
Aruna Figeroa
Julie Stenseth
Alejandro Perin
Mayumi Kolmetz
Maisha Rulapaugh
Isabel Bowley
Antonio Caudy
David Darakjy
David Darakjy
Sinclair Waycott
Aditya Kusko
Munro Ferencz
Maria Marrier
Ivar Paprocki
Cody Saylors
Chavez Briddick
Jennifer Amigon
Faith Gillian
IdCountryDate
1000Italy2026-05-08
1001Russia2026-05-01
1002Italy2026-05-15
1003Australia2026-05-26
1004Spain2026-05-02
1005Australia2026-05-20
1006Russia2026-05-07
1007Japan2026-05-04
1008Spain2026-05-23
1009France2026-05-20
1010Australia2026-05-16
1011United Kingdom2026-05-17
1012Spain2026-05-03
1013Italy2026-05-04
1014Japan2026-05-05
1015Germany2026-05-21
1016United Kingdom2026-05-01
1017United Kingdom2026-05-26
1018Germany2026-05-15
1019United Kingdom2026-05-28
1020Russia2026-05-06
1021India2026-05-21
1022Russia2026-05-19
1023France2026-05-10
1024Germany2026-05-23
1025Brazil2026-05-06
1026Brazil2026-05-28
1027Canada2026-05-30
1028Japan2026-05-04
1029Italy2026-05-25
1030Canada2026-05-06
1031Brazil2026-05-21
1032Japan2026-05-03
1033France2026-05-04
1034Spain2026-05-12
1035India2026-05-30
1036Russia2026-05-20
1037Russia2026-05-09
1038Canada2026-05-05
1039India2026-05-24
1040Argentina2026-05-17
1041Italy2026-05-27
1042Argentina2026-05-06
1043Spain2026-05-15
1044Canada2026-05-06
1045Spain2026-05-17
1046Germany2026-05-25
1047Italy2026-05-22
1048Canada2026-05-29
1049Australia2026-05-18

On-Demand Data

NameIdCountryDate
Wickens Nestle1000Italy2026-05-09
Tony Foller1001France2026-05-14
Maisha Rulapaugh1002Russia2026-05-11
Jeanfrancois Venere1003United Kingdom2026-05-30
Rodrigues Campain1004France2026-05-29
Stacey Maclead1005United Kingdom2026-05-22
Misaki Royster1006Japan2026-05-06
Cody Saylors1007Japan2026-05-02
Mayumi Kolmetz1008India2026-05-19
Ashley Doe1009Canada2026-05-12
Mayumi Kolmetz1010Canada2026-05-29
Ashley Doe1011Italy2026-05-06
Wickens Nestle1012India2026-05-05
Faith Gillian1013Japan2026-05-26
Nicolas Iturbide1014Russia2026-05-10
Rodrigues Campain1015Russia2026-05-27
Jennifer Amigon1016Germany2026-05-10
Cody Saylors1017Spain2026-05-01
Nicolas Iturbide1018Australia2026-05-28
Faith Gillian1019Brazil2026-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzSpainIoni Bowcher NEW
Munro FerenczIndiaIvan Magalhaes RENEWAL
Claire TollnerSpainIvan Magalhaes PROPOSAL
Jones VocelkaGermanyIoni Bowcher RENEWAL
Jeanfrancois VenereGermanyIoni Bowcher UNQUALIFIED
Murillo MaletBrazilStephen Shaw QUALIFIED
Leon OldroydFranceAnna Fali UNQUALIFIED
Smith GlickAustraliaAsiya Javayant QUALIFIED
Juan WieserGermanyStephen Shaw NEW
Jennifer AmigonArgentinaStephen Shaw NEW
Darci PoquetteRussiaBernardo Dominic NEGOTIATION
Clifford RimGermanyAnna Fali PROPOSAL
Faith GillianFranceAmy Elsner PROPOSAL
Deepesh ChuiUnited KingdomStephen Shaw NEW
Ricardo GauchoJapanOnyama Limba QUALIFIED
Leon OldroydRussiaAnna Fali UNQUALIFIED
Octavia MaletCanadaElwin Sharvill NEGOTIATION
Leja CaldareraArgentinaElwin Sharvill QUALIFIED
Nicolas IturbideRussiaIvan Magalhaes UNQUALIFIED
Misaki RoysterGermanyIvan Magalhaes QUALIFIED
Kadeem FlosiFranceAnna Fali UNQUALIFIED
Ivar PaprockiFranceXuxue Feng QUALIFIED
Morrow RutaJapanOnyama Limba NEW
Leja CaldareraCanadaIvan Magalhaes NEW
Cody SaylorsAustraliaAnna Fali RENEWAL
Leon OldroydSpainBernardo Dominic QUALIFIED
Emily WhobreySpainStephen Shaw RENEWAL
Maria MarrierBrazilAmy Elsner NEGOTIATION
Mujtaba NickaJapanAsiya Javayant UNQUALIFIED
Tony FollerGermanyBernardo Dominic NEW
Arvin AlbaresCanadaIoni Bowcher QUALIFIED
Deepesh ChuiCanadaOnyama Limba NEGOTIATION
Mayumi KolmetzGermanyAmy Elsner NEGOTIATION
Kadeem FlosiSpainAnna Fali NEW
Sinclair WaycottFranceXuxue Feng NEW
Alejandro PerinRussiaAnna Fali PROPOSAL
Morrow RutaItalyStephen Shaw NEW
Izzy GarufiArgentinaAmy Elsner NEW
Maisha RulapaughSpainIoni Bowcher UNQUALIFIED
Ricardo GauchoItalyAmy Elsner QUALIFIED

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