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
Juan WieserAustraliaOnyama Limba PROPOSAL
Adams MorascaArgentinaStephen Shaw RENEWAL
Sinclair WaycottFranceIoni Bowcher RENEWAL
Izzy GarufiAustraliaStephen Shaw NEW
Jennifer AmigonCanadaIoni Bowcher QUALIFIED
Alejandro PerinJapanIoni Bowcher NEGOTIATION
Juan WieserItalyIvan Magalhaes NEGOTIATION
Stacey MacleadIndiaAnna Fali NEGOTIATION
Tony FollerJapanAnna Fali PROPOSAL
Maria MarrierJapanAsiya Javayant NEW
Jones VocelkaSpainIvan Magalhaes NEGOTIATION
Kadeem FlosiGermanyElwin Sharvill NEGOTIATION
Juan WieserJapanBernardo Dominic QUALIFIED
Arvin AlbaresBrazilXuxue Feng QUALIFIED
Juan WieserJapanAmy Elsner UNQUALIFIED
Mujtaba NickaRussiaOnyama Limba NEW
Ivar PaprockiFranceElwin Sharvill RENEWAL
Tony FollerItalyBernardo Dominic NEW
Munro FerenczSpainXuxue Feng NEW
Ashley DoeRussiaAsiya Javayant NEW
Tony FollerUnited KingdomIvan Magalhaes NEW
Morrow RutaAustraliaBernardo Dominic PROPOSAL
Octavia MaletFranceIoni Bowcher NEGOTIATION
Julie StensethSpainAnna Fali RENEWAL
David DarakjySpainXuxue Feng NEW
Sinclair WaycottGermanyBernardo Dominic QUALIFIED
Ashley DoeIndiaOnyama Limba PROPOSAL
Deepesh ChuiItalyXuxue Feng QUALIFIED
Stacey MacleadArgentinaElwin Sharvill RENEWAL
Adams MorascaArgentinaElwin Sharvill NEW
Aruna FigeroaArgentinaIoni Bowcher QUALIFIED
Chavez BriddickAustraliaIvan Magalhaes QUALIFIED
Chavez BriddickCanadaBernardo Dominic RENEWAL
Morrow RutaJapanOnyama Limba RENEWAL
Tony FollerCanadaElwin Sharvill QUALIFIED
Aika InouyeSpainBernardo Dominic NEW
Alejandro PerinJapanAsiya Javayant PROPOSAL
Francesco ShinkoUnited KingdomXuxue Feng QUALIFIED
Johnson SergiArgentinaAnna Fali NEW
Mujtaba NickaGermanyXuxue Feng PROPOSAL
Aika InouyeBrazilBernardo Dominic NEW
David DarakjyItalyIoni Bowcher QUALIFIED
Stacey MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba NickaSpainStephen Shaw NEW
Arvin AlbaresFranceAmy Elsner NEW
Darci PoquetteGermanyBernardo Dominic UNQUALIFIED
Octavia MaletIndiaXuxue Feng NEW
Salvatore StockhamJapanIvan Magalhaes NEGOTIATION
Leon OldroydGermanyElwin Sharvill PROPOSAL
Misaki RoysterIndiaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams MorascaUnited KingdomXuxue Feng NEGOTIATION
Munro FerenczSpainAmy Elsner RENEWAL
Aika InouyeCanadaXuxue Feng NEGOTIATION
Kaitlin OstroskyIndiaBernardo Dominic QUALIFIED
Jennifer AmigonItalyElwin Sharvill RENEWAL
Antonio CaudySpainAmy Elsner RENEWAL
Octavia MaletSpainIoni Bowcher PROPOSAL
Emily WhobreyFranceIvan Magalhaes NEGOTIATION
Maisha RulapaughJapanBernardo Dominic RENEWAL
Aruna FigeroaGermanyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoArgentina2026-06-04Chemel, James L Cpa QUALIFIED63Asiya Javayant
1001Kaitlin OstroskyRussia2026-05-18Buckley Miller Wright QUALIFIED32Elwin Sharvill
1002Izzy GarufiRussia2026-06-06Feltz Printing Service QUALIFIED72Bernardo Dominic
1003Izzy GarufiJapan2026-05-23King, Christopher A Esq QUALIFIED57Ioni Bowcher
1004Octavia MaletBrazil2026-05-17Feiner Bros NEGOTIATION87Stephen Shaw
1005Munro FerenczCanada2026-06-06Chapman, Ross E Esq QUALIFIED20Onyama Limba
1006Rodrigues CampainIndia2026-05-25Truhlar And Truhlar Attys NEGOTIATION16Stephen Shaw
1007Silvio SlusarskiSpain2026-05-16Feiner Bros RENEWAL94Bernardo Dominic
1008Maria MarrierRussia2026-05-22Commercial Press NEW32Elwin Sharvill
1009Aditya KuskoIndia2026-05-31Chapman, Ross E Esq NEW80Bernardo Dominic
1010Juan WieserJapan2026-05-21Rangoni Of Florence QUALIFIED77Ioni Bowcher
1011Murillo MaletJapan2026-05-15Dorl, James J Esq NEW94Asiya Javayant
1012Jennifer AmigonUnited Kingdom2026-05-18Dorl, James J Esq UNQUALIFIED62Xuxue Feng
1013Jeanfrancois VenereCanada2026-05-30Chanay, Jeffrey A Esq RENEWAL3Elwin Sharvill
1014Izzy GarufiAustralia2026-05-24Truhlar And Truhlar Attys RENEWAL63Anna Fali
1015Jennifer AmigonFrance2026-06-10Benton, John B Jr RENEWAL26Onyama Limba
1016Silvio SlusarskiJapan2026-05-25Morlong Associates QUALIFIED6Elwin Sharvill
1017Jennifer AmigonArgentina2026-05-16Rangoni Of Florence PROPOSAL3Ivan Magalhaes
1018Silvio SlusarskiArgentina2026-06-02Dorl, James J Esq NEGOTIATION82Ivan Magalhaes
1019Jefferson SchemmerAustralia2026-05-21King, Christopher A Esq NEW72Elwin Sharvill
1020Aruna FigeroaItaly2026-05-23Benton, John B Jr NEGOTIATION77Ioni Bowcher
1021Mujtaba NickaFrance2026-06-03Chanay, Jeffrey A Esq NEGOTIATION37Xuxue Feng
1022Jennifer AmigonUnited Kingdom2026-05-19King, Christopher A Esq RENEWAL7Stephen Shaw
1023Adams MorascaSpain2026-05-28Feiner Bros NEGOTIATION63Ivan Magalhaes
1024Sinclair WaycottItaly2026-05-24Printing Dimensions UNQUALIFIED11Bernardo Dominic
1025Kaitlin OstroskySpain2026-05-20Morlong Associates UNQUALIFIED13Xuxue Feng
1026Salvatore StockhamAustralia2026-05-14Benton, John B Jr UNQUALIFIED83Elwin Sharvill
1027James ButtJapan2026-05-24Chanay, Jeffrey A Esq PROPOSAL34Ioni Bowcher
1028James ButtUnited Kingdom2026-05-20Benton, John B Jr NEGOTIATION95Amy Elsner
1029Greenwood BologniaSpain2026-05-22Feltz Printing Service NEGOTIATION35Ivan Magalhaes
1030Stacey MacleadGermany2026-05-20Chanay, Jeffrey A Esq PROPOSAL98Ivan Magalhaes
1031Ricardo GauchoRussia2026-05-29Feltz Printing Service NEW26Amy Elsner
1032Emily WhobreyAustralia2026-05-28Buckley Miller Wright NEGOTIATION16Ioni Bowcher
1033Maria MarrierGermany2026-06-10Chapman, Ross E Esq NEW57Xuxue Feng
1034David DarakjySpain2026-06-01Commercial Press RENEWAL61Onyama Limba
1035Aditya KuskoArgentina2026-06-07Truhlar And Truhlar Attys QUALIFIED60Bernardo Dominic
1036Clifford RimJapan2026-05-30Chapman, Ross E Esq RENEWAL99Ivan Magalhaes
1037Murillo MaletIndia2026-06-05Rousseaux, Michael Esq NEGOTIATION41Elwin Sharvill
1038Smith GlickCanada2026-06-11King, Christopher A Esq NEGOTIATION72Asiya Javayant
1039Arvin AlbaresGermany2026-05-15Morlong Associates NEW40Stephen Shaw
1040Stacey MacleadGermany2026-06-09Benton, John B Jr NEGOTIATION25Stephen Shaw
1041Tony FollerIndia2026-05-22King, Christopher A Esq NEGOTIATION39Elwin Sharvill
1042Jeanfrancois VenereArgentina2026-05-31Truhlar And Truhlar Attys UNQUALIFIED40Bernardo Dominic
1043Kadeem FlosiCanada2026-05-17Chapman, Ross E Esq QUALIFIED40Stephen Shaw
1044Misaki RoysterRussia2026-06-09Feiner Bros UNQUALIFIED29Anna Fali
1045David DarakjyAustralia2026-06-08Truhlar And Truhlar Attys QUALIFIED70Ioni Bowcher
1046Francesco ShinkoItaly2026-05-22King, Christopher A Esq QUALIFIED94Amy Elsner
1047Stacey MacleadBrazil2026-05-14Feltz Printing Service PROPOSAL78Elwin Sharvill
1048Silvio SlusarskiJapan2026-05-27Benton, John B Jr UNQUALIFIED15Onyama Limba
1049Emily WhobreyRussia2026-05-22Buckley Miller Wright RENEWAL68Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughIndiaElwin Sharvill NEGOTIATION
Sinclair WaycottIndiaAsiya Javayant UNQUALIFIED
Aruna FigeroaCanadaXuxue Feng NEGOTIATION
Leja CaldareraArgentinaAmy Elsner UNQUALIFIED
Kadeem FlosiGermanyIvan Magalhaes NEGOTIATION
Faith GillianSpainXuxue Feng NEGOTIATION
Emily WhobreyGermanyAsiya Javayant PROPOSAL
Ashley DoeArgentinaIvan Magalhaes NEW
Wickens NestleJapanIoni Bowcher UNQUALIFIED
Clifford RimAustraliaElwin Sharvill NEW
Salvatore StockhamCanadaXuxue Feng PROPOSAL
Munro FerenczIndiaOnyama Limba QUALIFIED
Leon OldroydJapanAnna Fali UNQUALIFIED
James ButtIndiaAnna Fali NEW
Clifford RimItalyXuxue Feng NEGOTIATION
Sinclair WaycottCanadaIvan Magalhaes UNQUALIFIED
Julie StensethArgentinaXuxue Feng PROPOSAL
Ricardo GauchoItalyXuxue Feng PROPOSAL
Mujtaba NickaGermanyIvan Magalhaes UNQUALIFIED
Jefferson SchemmerUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois VenereItalyAnna Fali QUALIFIED
Aruna FigeroaItalyBernardo Dominic QUALIFIED
Nicolas IturbideRussiaAnna Fali QUALIFIED
Stacey MacleadArgentinaOnyama Limba NEW
Aditya KuskoUnited KingdomXuxue Feng RENEWAL
James ButtItalyAsiya Javayant RENEWAL
Nicolas IturbideIndiaAsiya Javayant NEW
Morrow RutaArgentinaIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyAsiya Javayant NEW
Aditya KuskoCanadaStephen Shaw RENEWAL
Deepesh ChuiSpainStephen Shaw UNQUALIFIED
Francesco ShinkoGermanyXuxue Feng NEW
Adams MorascaItalyAsiya Javayant NEW
Deepesh ChuiItalyAsiya Javayant QUALIFIED
Costa DilliardIndiaIvan Magalhaes NEGOTIATION
Leon OldroydFranceAnna Fali NEGOTIATION
Morrow RutaCanadaIoni Bowcher RENEWAL
Jefferson SchemmerBrazilOnyama Limba NEW
Julie StensethSpainAsiya Javayant RENEWAL
Wickens NestleFranceXuxue Feng PROPOSAL
Francesco ShinkoAustraliaXuxue Feng NEW
Munro FerenczSpainIvan Magalhaes RENEWAL
Deepesh ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Darci PoquetteSpainOnyama Limba NEGOTIATION
Costa DilliardCanadaAmy Elsner NEW
Misaki RoysterSpainAnna Fali PROPOSAL
Maisha RulapaughArgentinaAmy Elsner PROPOSAL
Ashley DoeJapanAmy Elsner NEGOTIATION
Octavia MaletIndiaElwin Sharvill NEW
Francesco ShinkoSpainElwin Sharvill NEW
Frozen Columns
Name
Kadeem Flosi
Faith Gillian
Claire Tollner
James Butt
Izzy Garufi
Costa Dilliard
Aditya Kusko
Chavez Briddick
Misaki Royster
Ivar Paprocki
Ivar Paprocki
Izzy Garufi
Morrow Ruta
Julie Stenseth
Claire Tollner
Jefferson Schemmer
Arvin Albares
Jennifer Amigon
Costa Dilliard
Leja Caldarera
Cody Saylors
Stacey Maclead
Silvio Slusarski
Deepesh Chui
Nicolas Iturbide
Sinclair Waycott
Faith Gillian
Claire Tollner
Sinclair Waycott
Aditya Kusko
Chavez Briddick
Munro Ferencz
Julie Stenseth
Ivar Paprocki
Salvatore Stockham
Mujtaba Nicka
Adams Morasca
Deepesh Chui
Jones Vocelka
Jeanfrancois Venere
Costa Dilliard
Smith Glick
Jefferson Schemmer
David Darakjy
Greenwood Bolognia
Octavia Malet
Jennifer Amigon
Isabel Bowley
Juan Wieser
Leja Caldarera
IdCountryDate
1000France2026-05-17
1001Australia2026-05-18
1002Italy2026-05-26
1003United Kingdom2026-05-15
1004United Kingdom2026-06-12
1005United Kingdom2026-06-03
1006United Kingdom2026-05-25
1007Japan2026-06-11
1008Brazil2026-05-30
1009Japan2026-06-09
1010Argentina2026-05-16
1011Germany2026-05-28
1012India2026-05-27
1013Canada2026-05-20
1014Spain2026-06-06
1015Italy2026-06-11
1016Argentina2026-06-06
1017Italy2026-06-02
1018India2026-06-03
1019Australia2026-06-05
1020India2026-05-18
1021Brazil2026-05-20
1022United Kingdom2026-05-27
1023Italy2026-05-26
1024Canada2026-06-05
1025India2026-06-02
1026Argentina2026-06-09
1027Canada2026-05-20
1028Japan2026-05-23
1029France2026-05-23
1030United Kingdom2026-05-23
1031Canada2026-05-29
1032Russia2026-06-10
1033Canada2026-06-07
1034Spain2026-05-29
1035Spain2026-05-14
1036United Kingdom2026-05-24
1037India2026-05-22
1038Germany2026-06-03
1039France2026-06-06
1040Canada2026-05-25
1041Russia2026-05-29
1042Spain2026-06-11
1043Spain2026-05-29
1044Brazil2026-06-03
1045Spain2026-05-25
1046India2026-05-19
1047Germany2026-05-20
1048France2026-05-23
1049Russia2026-06-11

On-Demand Data

NameIdCountryDate
Isabel Bowley1000Australia2026-05-22
Alejandro Perin1001Japan2026-05-16
Isabel Bowley1002Japan2026-05-30
Darci Poquette1003Italy2026-05-25
David Darakjy1004Australia2026-05-21
Izzy Garufi1005Russia2026-05-18
Stacey Maclead1006United Kingdom2026-06-09
Murillo Malet1007France2026-05-21
Wickens Nestle1008Russia2026-06-08
Claire Tollner1009Australia2026-05-22
Adams Morasca1010Argentina2026-05-24
Emily Whobrey1011India2026-05-14
Munro Ferencz1012United Kingdom2026-05-25
Maisha Rulapaugh1013Spain2026-06-04
Francesco Shinko1014Spain2026-05-31
Aditya Kusko1015Italy2026-05-16
Nicolas Iturbide1016India2026-06-05
James Butt1017Brazil2026-05-19
Costa Dilliard1018India2026-05-16
Cody Saylors1019Russia2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinFranceStephen Shaw NEW
Faith GillianCanadaAnna Fali QUALIFIED
Smith GlickFranceIvan Magalhaes RENEWAL
Alejandro PerinAustraliaElwin Sharvill NEGOTIATION
Stacey MacleadArgentinaStephen Shaw PROPOSAL
Clifford RimBrazilAnna Fali PROPOSAL
Octavia MaletFranceAnna Fali NEGOTIATION
Antonio CaudyFranceBernardo Dominic RENEWAL
Rodrigues CampainUnited KingdomBernardo Dominic NEGOTIATION
Leon OldroydAustraliaAmy Elsner UNQUALIFIED
Cody SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Alejandro PerinAustraliaXuxue Feng QUALIFIED
Leon OldroydCanadaIvan Magalhaes NEW
Jennifer AmigonJapanAmy Elsner NEGOTIATION
Juan WieserIndiaStephen Shaw UNQUALIFIED
Mayumi KolmetzCanadaAmy Elsner RENEWAL
Tony FollerJapanIvan Magalhaes NEGOTIATION
Darci PoquetteFranceAnna Fali RENEWAL
Julie StensethCanadaOnyama Limba PROPOSAL
Darci PoquetteArgentinaAnna Fali QUALIFIED
Nicolas IturbideAustraliaBernardo Dominic QUALIFIED
Mayumi KolmetzFranceBernardo Dominic UNQUALIFIED
Julie StensethBrazilOnyama Limba NEGOTIATION
Maria MarrierArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzArgentinaAsiya Javayant NEGOTIATION
Wickens NestleItalyIoni Bowcher NEW
Silvio SlusarskiSpainAsiya Javayant PROPOSAL
Jeanfrancois VenereSpainStephen Shaw NEW
Greenwood BologniaGermanyOnyama Limba NEGOTIATION
Isabel BowleyCanadaIoni Bowcher PROPOSAL
Jeanfrancois VenereBrazilAnna Fali PROPOSAL
Francesco ShinkoUnited KingdomIvan Magalhaes RENEWAL
Ricardo GauchoBrazilAmy Elsner RENEWAL
Greenwood BologniaBrazilIoni Bowcher RENEWAL
Ashley DoeBrazilAnna Fali PROPOSAL
James ButtBrazilElwin Sharvill QUALIFIED
Wickens NestleArgentinaElwin Sharvill RENEWAL
Smith GlickBrazilBernardo Dominic RENEWAL
Ricardo GauchoFranceIoni Bowcher RENEWAL
Kaitlin OstroskyUnited KingdomIvan Magalhaes 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>