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
Julie StensethItalyXuxue Feng PROPOSAL
Adams MorascaBrazilIvan Magalhaes QUALIFIED
Misaki RoysterIndiaAmy Elsner QUALIFIED
Wickens NestleJapanXuxue Feng RENEWAL
Clifford RimFranceStephen Shaw RENEWAL
Jones VocelkaAustraliaElwin Sharvill PROPOSAL
Maisha RulapaughJapanAnna Fali PROPOSAL
Murillo MaletArgentinaXuxue Feng NEGOTIATION
Smith GlickArgentinaStephen Shaw PROPOSAL
Aruna FigeroaIndiaIoni Bowcher UNQUALIFIED
Leon OldroydRussiaXuxue Feng RENEWAL
Jennifer AmigonSpainStephen Shaw PROPOSAL
Mayumi KolmetzBrazilXuxue Feng RENEWAL
Clifford RimUnited KingdomAmy Elsner NEW
Maisha RulapaughSpainAsiya Javayant PROPOSAL
Mayumi KolmetzIndiaIoni Bowcher RENEWAL
Stacey MacleadAustraliaIvan Magalhaes NEW
Silvio SlusarskiGermanyIvan Magalhaes NEGOTIATION
Cody SaylorsItalyBernardo Dominic NEW
Jefferson SchemmerIndiaIvan Magalhaes NEW
Munro FerenczBrazilIvan Magalhaes NEGOTIATION
Adams MorascaBrazilAnna Fali QUALIFIED
Munro FerenczRussiaAmy Elsner NEGOTIATION
Leon OldroydFranceIoni Bowcher RENEWAL
James ButtIndiaBernardo Dominic UNQUALIFIED
Ivar PaprockiIndiaIoni Bowcher QUALIFIED
Johnson SergiCanadaBernardo Dominic RENEWAL
Jones VocelkaFranceAsiya Javayant NEW
James ButtJapanElwin Sharvill UNQUALIFIED
Ivar PaprockiFranceAmy Elsner RENEWAL
Adams MorascaFranceAnna Fali RENEWAL
Julie StensethItalyXuxue Feng QUALIFIED
Maria MarrierSpainAmy Elsner RENEWAL
Smith GlickBrazilAmy Elsner NEGOTIATION
Maisha RulapaughIndiaXuxue Feng NEGOTIATION
Murillo MaletIndiaAmy Elsner QUALIFIED
David DarakjyCanadaElwin Sharvill PROPOSAL
Greenwood BologniaGermanyAsiya Javayant PROPOSAL
Silvio SlusarskiJapanOnyama Limba UNQUALIFIED
Mujtaba NickaJapanXuxue Feng PROPOSAL
Stacey MacleadIndiaBernardo Dominic QUALIFIED
Sinclair WaycottGermanyStephen Shaw QUALIFIED
Tony FollerFranceElwin Sharvill RENEWAL
Adams MorascaAustraliaIoni Bowcher RENEWAL
Murillo MaletUnited KingdomBernardo Dominic UNQUALIFIED
Munro FerenczRussiaBernardo Dominic PROPOSAL
James ButtSpainBernardo Dominic NEGOTIATION
Tony FollerGermanyAsiya Javayant UNQUALIFIED
Ashley DoeGermanyElwin Sharvill RENEWAL
Alejandro PerinRussiaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams MorascaCanadaAsiya Javayant RENEWAL
Faith GillianRussiaIvan Magalhaes QUALIFIED
Maisha RulapaughAustraliaIoni Bowcher PROPOSAL
Nicolas IturbideGermanyOnyama Limba NEW
Mayumi KolmetzGermanyIvan Magalhaes RENEWAL
Tony FollerFranceStephen Shaw QUALIFIED
Emily WhobreyFranceBernardo Dominic QUALIFIED
Munro FerenczAustraliaBernardo Dominic UNQUALIFIED
Wickens NestleSpainOnyama Limba RENEWAL
Aika InouyeJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereIndia2026-04-06Rousseaux, Michael Esq UNQUALIFIED32Stephen Shaw
1001Johnson SergiRussia2026-04-26Chemel, James L Cpa NEW5Xuxue Feng
1002Sinclair WaycottJapan2026-04-07Rangoni Of Florence NEW44Amy Elsner
1003Stacey MacleadIndia2026-04-01Feltz Printing Service RENEWAL0Xuxue Feng
1004Maisha RulapaughBrazil2026-04-08Dorl, James J Esq QUALIFIED51Onyama Limba
1005Chavez BriddickItaly2026-04-23Feltz Printing Service RENEWAL82Stephen Shaw
1006Misaki RoysterCanada2026-04-29Dorl, James J Esq QUALIFIED59Ivan Magalhaes
1007Jennifer AmigonJapan2026-04-12Feiner Bros UNQUALIFIED94Asiya Javayant
1008Jennifer AmigonSpain2026-04-10Morlong Associates UNQUALIFIED69Ioni Bowcher
1009Mujtaba NickaIndia2026-04-04Rangoni Of Florence NEW22Anna Fali
1010Leja CaldareraArgentina2026-04-14Rousseaux, Michael Esq NEW86Asiya Javayant
1011Mujtaba NickaRussia2026-04-26Morlong Associates NEGOTIATION74Ioni Bowcher
1012Chavez BriddickRussia2026-04-12Benton, John B Jr NEW82Bernardo Dominic
1013Ivar PaprockiGermany2026-04-05Chapman, Ross E Esq PROPOSAL46Xuxue Feng
1014Alejandro PerinIndia2026-04-18Feiner Bros QUALIFIED47Stephen Shaw
1015Sinclair WaycottCanada2026-04-06Dorl, James J Esq NEGOTIATION29Ioni Bowcher
1016Izzy GarufiGermany2026-04-01Feiner Bros QUALIFIED54Amy Elsner
1017Johnson SergiFrance2026-04-17Rangoni Of Florence RENEWAL58Elwin Sharvill
1018Misaki RoysterItaly2026-04-22Chemel, James L Cpa NEW60Xuxue Feng
1019Ivar PaprockiArgentina2026-04-29Commercial Press NEGOTIATION33Stephen Shaw
1020Deepesh ChuiAustralia2026-04-28Printing Dimensions PROPOSAL69Asiya Javayant
1021Kaitlin OstroskyJapan2026-04-11Rousseaux, Michael Esq UNQUALIFIED11Amy Elsner
1022David DarakjyCanada2026-04-29Dorl, James J Esq NEW21Stephen Shaw
1023Antonio CaudyItaly2026-04-26King, Christopher A Esq NEGOTIATION95Xuxue Feng
1024Emily WhobreyUnited Kingdom2026-04-17Feltz Printing Service QUALIFIED18Amy Elsner
1025Rodrigues CampainArgentina2026-04-03King, Christopher A Esq PROPOSAL7Ivan Magalhaes
1026Ivar PaprockiRussia2026-04-16Feltz Printing Service QUALIFIED95Xuxue Feng
1027Greenwood BologniaSpain2026-04-19Chemel, James L Cpa RENEWAL36Ioni Bowcher
1028Leja CaldareraSpain2026-04-26Feltz Printing Service NEW78Amy Elsner
1029Greenwood BologniaRussia2026-04-02Dorl, James J Esq NEW92Stephen Shaw
1030Isabel BowleyJapan2026-04-23Chanay, Jeffrey A Esq NEW69Anna Fali
1031Aika InouyeFrance2026-04-04Morlong Associates NEGOTIATION6Bernardo Dominic
1032Faith GillianAustralia2026-04-20Rousseaux, Michael Esq QUALIFIED2Anna Fali
1033Jefferson SchemmerJapan2026-04-22Rousseaux, Michael Esq UNQUALIFIED50Ivan Magalhaes
1034Mujtaba NickaSpain2026-04-11Rangoni Of Florence QUALIFIED19Onyama Limba
1035Silvio SlusarskiJapan2026-04-23Dorl, James J Esq NEW59Anna Fali
1036Maria MarrierArgentina2026-04-18Chanay, Jeffrey A Esq QUALIFIED54Ivan Magalhaes
1037Mayumi KolmetzUnited Kingdom2026-04-10Chemel, James L Cpa PROPOSAL56Xuxue Feng
1038Kaitlin OstroskyCanada2026-04-24Feiner Bros QUALIFIED68Asiya Javayant
1039Smith GlickAustralia2026-04-22Truhlar And Truhlar Attys QUALIFIED48Ivan Magalhaes
1040Morrow RutaFrance2026-04-25Truhlar And Truhlar Attys QUALIFIED54Xuxue Feng
1041Isabel BowleyCanada2026-04-19Buckley Miller Wright NEW62Bernardo Dominic
1042Mujtaba NickaAustralia2026-04-29Buckley Miller Wright PROPOSAL15Elwin Sharvill
1043Isabel BowleyUnited Kingdom2026-04-10Rousseaux, Michael Esq NEW60Bernardo Dominic
1044Nicolas IturbideFrance2026-04-07Commercial Press QUALIFIED87Ioni Bowcher
1045Francesco ShinkoBrazil2026-04-15Rousseaux, Michael Esq UNQUALIFIED67Stephen Shaw
1046Adams MorascaAustralia2026-04-05Rangoni Of Florence RENEWAL28Onyama Limba
1047Aika InouyeIndia2026-04-01Rangoni Of Florence NEW5Elwin Sharvill
1048Darci PoquetteJapan2026-04-17Feiner Bros QUALIFIED48Bernardo Dominic
1049Kaitlin OstroskyJapan2026-04-21Chapman, Ross E Esq NEW21Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
David DarakjyArgentinaAmy Elsner QUALIFIED
Costa DilliardGermanyBernardo Dominic RENEWAL
Adams MorascaFranceAsiya Javayant NEGOTIATION
Rodrigues CampainAustraliaXuxue Feng UNQUALIFIED
Ashley DoeBrazilXuxue Feng PROPOSAL
Antonio CaudyRussiaElwin Sharvill PROPOSAL
Octavia MaletSpainBernardo Dominic RENEWAL
Maria MarrierIndiaAnna Fali RENEWAL
Leon OldroydRussiaAmy Elsner NEW
Maisha RulapaughCanadaAmy Elsner RENEWAL
James ButtBrazilStephen Shaw RENEWAL
Ricardo GauchoJapanOnyama Limba UNQUALIFIED
Tony FollerRussiaAsiya Javayant UNQUALIFIED
Jennifer AmigonRussiaAsiya Javayant NEGOTIATION
Jennifer AmigonItalyOnyama Limba RENEWAL
Ricardo GauchoArgentinaAnna Fali PROPOSAL
Mujtaba NickaFranceAnna Fali QUALIFIED
Mujtaba NickaRussiaXuxue Feng QUALIFIED
Antonio CaudyCanadaOnyama Limba UNQUALIFIED
Wickens NestleJapanStephen Shaw NEGOTIATION
Julie StensethAustraliaIvan Magalhaes NEGOTIATION
David DarakjyFranceIoni Bowcher NEGOTIATION
Faith GillianIndiaAmy Elsner UNQUALIFIED
Jennifer AmigonSpainElwin Sharvill PROPOSAL
Kadeem FlosiIndiaIvan Magalhaes NEW
Claire TollnerItalyIvan Magalhaes QUALIFIED
Murillo MaletArgentinaXuxue Feng PROPOSAL
Ivar PaprockiBrazilIvan Magalhaes PROPOSAL
Clifford RimAustraliaAmy Elsner QUALIFIED
Aika InouyeSpainOnyama Limba UNQUALIFIED
Costa DilliardItalyElwin Sharvill PROPOSAL
Costa DilliardJapanBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilAmy Elsner UNQUALIFIED
David DarakjySpainIoni Bowcher NEGOTIATION
Octavia MaletAustraliaIoni Bowcher NEW
James ButtCanadaOnyama Limba RENEWAL
David DarakjyFranceOnyama Limba NEGOTIATION
Sinclair WaycottItalyElwin Sharvill NEGOTIATION
Ashley DoeItalyElwin Sharvill UNQUALIFIED
Rodrigues CampainRussiaXuxue Feng PROPOSAL
Maisha RulapaughItalyIvan Magalhaes UNQUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng RENEWAL
Tony FollerFranceAsiya Javayant NEW
Kadeem FlosiSpainStephen Shaw QUALIFIED
Aruna FigeroaSpainAsiya Javayant UNQUALIFIED
Sinclair WaycottRussiaAmy Elsner NEW
Julie StensethCanadaAsiya Javayant RENEWAL
Darci PoquetteSpainIoni Bowcher PROPOSAL
Tony FollerFranceAnna Fali QUALIFIED
Alejandro PerinUnited KingdomIoni Bowcher NEW
Frozen Columns
Name
Munro Ferencz
Silvio Slusarski
Leon Oldroyd
Deepesh Chui
Tony Foller
Adams Morasca
Claire Tollner
Morrow Ruta
Kadeem Flosi
Francesco Shinko
Jefferson Schemmer
Aditya Kusko
Francesco Shinko
Jones Vocelka
Deepesh Chui
Greenwood Bolognia
Rodrigues Campain
Johnson Sergi
Salvatore Stockham
Arvin Albares
Isabel Bowley
Jefferson Schemmer
Izzy Garufi
Jones Vocelka
Chavez Briddick
Cody Saylors
Isabel Bowley
Jefferson Schemmer
Deepesh Chui
Stacey Maclead
Kadeem Flosi
Mayumi Kolmetz
Francesco Shinko
Ivar Paprocki
Jefferson Schemmer
Murillo Malet
Faith Gillian
Jeanfrancois Venere
Alejandro Perin
Stacey Maclead
Jeanfrancois Venere
Izzy Garufi
Maria Marrier
Salvatore Stockham
Antonio Caudy
Ricardo Gaucho
James Butt
Leja Caldarera
Juan Wieser
Jones Vocelka
IdCountryDate
1000Argentina2026-04-25
1001Italy2026-04-27
1002Germany2026-04-27
1003Spain2026-04-05
1004Canada2026-04-27
1005United Kingdom2026-04-05
1006Italy2026-04-23
1007Argentina2026-04-08
1008Argentina2026-04-04
1009Argentina2026-04-04
1010India2026-04-10
1011Australia2026-04-26
1012Canada2026-04-30
1013France2026-04-21
1014Canada2026-04-01
1015Italy2026-04-04
1016Japan2026-04-25
1017Spain2026-04-23
1018Spain2026-04-07
1019Germany2026-04-28
1020Argentina2026-04-25
1021Brazil2026-04-26
1022Japan2026-04-13
1023Russia2026-04-27
1024Italy2026-04-18
1025Russia2026-04-21
1026Canada2026-04-15
1027France2026-04-09
1028Australia2026-04-05
1029Canada2026-04-10
1030India2026-04-27
1031Germany2026-04-04
1032Russia2026-04-14
1033Argentina2026-04-11
1034Germany2026-04-21
1035Russia2026-04-08
1036Spain2026-04-03
1037Brazil2026-04-03
1038Brazil2026-04-30
1039Russia2026-04-11
1040United Kingdom2026-04-06
1041Canada2026-04-14
1042Japan2026-04-10
1043Argentina2026-04-28
1044Spain2026-04-21
1045France2026-04-28
1046Canada2026-04-09
1047Germany2026-04-11
1048United Kingdom2026-04-04
1049India2026-04-22

On-Demand Data

NameIdCountryDate
Maria Marrier1000Italy2026-04-02
Jeanfrancois Venere1001United Kingdom2026-04-14
Mujtaba Nicka1002Italy2026-04-07
Darci Poquette1003Canada2026-04-12
Mayumi Kolmetz1004Argentina2026-04-22
Jones Vocelka1005Japan2026-04-23
Jeanfrancois Venere1006United Kingdom2026-04-10
Isabel Bowley1007Argentina2026-04-14
Jefferson Schemmer1008India2026-04-08
Juan Wieser1009Germany2026-04-23
David Darakjy1010Brazil2026-04-15
Clifford Rim1011Spain2026-04-02
Faith Gillian1012Spain2026-04-17
Morrow Ruta1013United Kingdom2026-04-14
Johnson Sergi1014Canada2026-04-27
Alejandro Perin1015Germany2026-04-05
Munro Ferencz1016Japan2026-04-13
Antonio Caudy1017Australia2026-04-09
Claire Tollner1018Italy2026-04-02
Octavia Malet1019Italy2026-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel BowleyCanadaAsiya Javayant UNQUALIFIED
Maria MarrierUnited KingdomXuxue Feng PROPOSAL
Deepesh ChuiFranceStephen Shaw UNQUALIFIED
Ashley DoeRussiaOnyama Limba NEW
Ashley DoeGermanyAmy Elsner QUALIFIED
Nicolas IturbideRussiaStephen Shaw QUALIFIED
Clifford RimGermanyElwin Sharvill NEW
Jefferson SchemmerSpainAmy Elsner RENEWAL
Greenwood BologniaArgentinaElwin Sharvill UNQUALIFIED
Isabel BowleyFranceOnyama Limba NEW
Wickens NestleUnited KingdomAnna Fali RENEWAL
Izzy GarufiBrazilOnyama Limba PROPOSAL
Ricardo GauchoBrazilAnna Fali PROPOSAL
Salvatore StockhamIndiaElwin Sharvill UNQUALIFIED
Misaki RoysterRussiaAsiya Javayant QUALIFIED
Maisha RulapaughRussiaStephen Shaw NEW
Costa DilliardIndiaStephen Shaw QUALIFIED
Silvio SlusarskiAustraliaXuxue Feng PROPOSAL
Murillo MaletAustraliaAsiya Javayant NEGOTIATION
Misaki RoysterJapanXuxue Feng NEGOTIATION
Jefferson SchemmerIndiaIvan Magalhaes NEGOTIATION
Mayumi KolmetzCanadaOnyama Limba NEW
Misaki RoysterFranceElwin Sharvill NEGOTIATION
Smith GlickItalyAsiya Javayant QUALIFIED
Faith GillianFranceAmy Elsner UNQUALIFIED
Maria MarrierGermanyBernardo Dominic NEGOTIATION
Izzy GarufiSpainAsiya Javayant NEGOTIATION
Jennifer AmigonItalyAsiya Javayant UNQUALIFIED
David DarakjyUnited KingdomOnyama Limba QUALIFIED
James ButtItalyAmy Elsner PROPOSAL
Nicolas IturbideJapanBernardo Dominic PROPOSAL
Claire TollnerSpainXuxue Feng QUALIFIED
Ashley DoeCanadaIoni Bowcher RENEWAL
Juan WieserRussiaAnna Fali NEGOTIATION
Ashley DoeBrazilAnna Fali NEW
Isabel BowleyFranceAmy Elsner NEGOTIATION
Darci PoquetteItalyAnna Fali UNQUALIFIED
Isabel BowleyAustraliaAnna Fali UNQUALIFIED
Emily WhobreyBrazilOnyama Limba UNQUALIFIED
Claire TollnerSpainOnyama 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>