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
Costa DilliardItalyIoni Bowcher QUALIFIED
Darci PoquetteSpainAmy Elsner QUALIFIED
Stacey MacleadSpainAsiya Javayant NEGOTIATION
Aditya KuskoIndiaAnna Fali NEGOTIATION
Deepesh ChuiArgentinaAnna Fali UNQUALIFIED
James ButtUnited KingdomOnyama Limba RENEWAL
Johnson SergiBrazilOnyama Limba NEGOTIATION
Aditya KuskoSpainAsiya Javayant PROPOSAL
Jones VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin OstroskyFranceAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Leon OldroydJapanXuxue Feng UNQUALIFIED
Nicolas IturbideSpainAmy Elsner NEW
Leon OldroydItalyAnna Fali PROPOSAL
Aika InouyeArgentinaAnna Fali UNQUALIFIED
Deepesh ChuiRussiaOnyama Limba UNQUALIFIED
Stacey MacleadArgentinaBernardo Dominic QUALIFIED
Alejandro PerinCanadaElwin Sharvill UNQUALIFIED
Ashley DoeItalyStephen Shaw PROPOSAL
Sinclair WaycottFranceAnna Fali NEGOTIATION
Kaitlin OstroskyCanadaStephen Shaw NEW
Costa DilliardRussiaStephen Shaw RENEWAL
David DarakjyCanadaAmy Elsner UNQUALIFIED
Salvatore StockhamRussiaOnyama Limba UNQUALIFIED
Misaki RoysterArgentinaBernardo Dominic NEW
Julie StensethItalyIvan Magalhaes NEW
Costa DilliardFranceBernardo Dominic QUALIFIED
Jefferson SchemmerArgentinaIoni Bowcher NEW
Ricardo GauchoIndiaIvan Magalhaes NEGOTIATION
Jefferson SchemmerArgentinaIoni Bowcher NEW
Munro FerenczIndiaStephen Shaw RENEWAL
Darci PoquetteRussiaXuxue Feng QUALIFIED
Adams MorascaRussiaBernardo Dominic QUALIFIED
Maria MarrierUnited KingdomOnyama Limba QUALIFIED
Isabel BowleyRussiaStephen Shaw NEW
Morrow RutaIndiaOnyama Limba NEW
Francesco ShinkoGermanyAmy Elsner RENEWAL
Aika InouyeIndiaBernardo Dominic UNQUALIFIED
Aruna FigeroaSpainAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomOnyama Limba QUALIFIED
Johnson SergiCanadaBernardo Dominic UNQUALIFIED
Leon OldroydUnited KingdomElwin Sharvill RENEWAL
Adams MorascaGermanyAnna Fali UNQUALIFIED
Darci PoquetteRussiaXuxue Feng UNQUALIFIED
Kaitlin OstroskyGermanyStephen Shaw QUALIFIED
Murillo MaletArgentinaXuxue Feng UNQUALIFIED
Salvatore StockhamItalyBernardo Dominic RENEWAL
Silvio SlusarskiItalyXuxue Feng NEGOTIATION
Stacey MacleadItalyAsiya Javayant RENEWAL
Smith GlickAustraliaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Isabel BowleySpainXuxue Feng QUALIFIED
Faith GillianArgentinaAnna Fali NEW
Clifford RimAustraliaOnyama Limba PROPOSAL
Jennifer AmigonArgentinaAnna Fali NEGOTIATION
Faith GillianRussiaStephen Shaw QUALIFIED
Morrow RutaItalyIoni Bowcher NEW
Mujtaba NickaRussiaAmy Elsner NEGOTIATION
David DarakjyBrazilXuxue Feng UNQUALIFIED
Claire TollnerSpainAsiya Javayant QUALIFIED
Tony FollerJapanAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickSpain2026-04-14Morlong Associates QUALIFIED83Elwin Sharvill
1001Munro FerenczFrance2026-04-14Feltz Printing Service NEGOTIATION61Amy Elsner
1002David DarakjyGermany2026-04-15Benton, John B Jr QUALIFIED77Onyama Limba
1003Aika InouyeAustralia2026-04-10Benton, John B Jr NEW69Amy Elsner
1004Sinclair WaycottJapan2026-04-17Rousseaux, Michael Esq UNQUALIFIED49Anna Fali
1005Aruna FigeroaRussia2026-04-04Feltz Printing Service NEW89Anna Fali
1006Julie StensethArgentina2026-04-16Chapman, Ross E Esq NEW97Xuxue Feng
1007Johnson SergiGermany2026-04-22Chemel, James L Cpa PROPOSAL35Ioni Bowcher
1008Murillo MaletJapan2026-04-26Truhlar And Truhlar Attys NEW37Anna Fali
1009Francesco ShinkoRussia2026-04-10Commercial Press UNQUALIFIED7Anna Fali
1010Leja CaldareraGermany2026-04-04Printing Dimensions NEW93Stephen Shaw
1011Isabel BowleyItaly2026-04-10Feltz Printing Service RENEWAL55Anna Fali
1012Costa DilliardArgentina2026-04-05Chemel, James L Cpa PROPOSAL66Elwin Sharvill
1013Clifford RimFrance2026-04-26Feiner Bros RENEWAL78Ioni Bowcher
1014Aruna FigeroaFrance2026-04-12Chanay, Jeffrey A Esq NEGOTIATION83Elwin Sharvill
1015Francesco ShinkoAustralia2026-04-13Truhlar And Truhlar Attys PROPOSAL30Onyama Limba
1016Kaitlin OstroskyBrazil2026-05-03Feiner Bros PROPOSAL38Xuxue Feng
1017Emily WhobreySpain2026-04-27Chapman, Ross E Esq UNQUALIFIED93Bernardo Dominic
1018Mujtaba NickaCanada2026-04-11Rangoni Of Florence NEW8Xuxue Feng
1019Ivar PaprockiCanada2026-04-22King, Christopher A Esq NEGOTIATION69Amy Elsner
1020Octavia MaletCanada2026-04-06Commercial Press UNQUALIFIED17Amy Elsner
1021Juan WieserItaly2026-04-19Feiner Bros PROPOSAL87Amy Elsner
1022Antonio CaudyGermany2026-04-17Chapman, Ross E Esq UNQUALIFIED16Amy Elsner
1023Juan WieserRussia2026-04-15Rousseaux, Michael Esq PROPOSAL51Asiya Javayant
1024Faith GillianGermany2026-04-16Truhlar And Truhlar Attys QUALIFIED44Anna Fali
1025Mujtaba NickaBrazil2026-04-04Feltz Printing Service PROPOSAL20Ioni Bowcher
1026Maisha RulapaughCanada2026-04-28Dorl, James J Esq NEGOTIATION70Xuxue Feng
1027Francesco ShinkoCanada2026-04-06Feiner Bros NEW11Ioni Bowcher
1028Aika InouyeJapan2026-04-08King, Christopher A Esq NEW73Asiya Javayant
1029Kaitlin OstroskyRussia2026-04-23Printing Dimensions NEGOTIATION66Stephen Shaw
1030Juan WieserRussia2026-05-01Chapman, Ross E Esq PROPOSAL88Onyama Limba
1031Maisha RulapaughItaly2026-04-06Rousseaux, Michael Esq NEW30Ivan Magalhaes
1032Silvio SlusarskiItaly2026-04-10Feltz Printing Service NEW41Anna Fali
1033Mujtaba NickaAustralia2026-04-13Commercial Press NEGOTIATION38Ioni Bowcher
1034Ricardo GauchoCanada2026-04-17Morlong Associates QUALIFIED51Anna Fali
1035Salvatore StockhamSpain2026-04-05Feltz Printing Service QUALIFIED75Onyama Limba
1036David DarakjyIndia2026-04-24Dorl, James J Esq NEGOTIATION55Asiya Javayant
1037Wickens NestleIndia2026-05-03Commercial Press NEW51Elwin Sharvill
1038Deepesh ChuiItaly2026-04-12Dorl, James J Esq PROPOSAL97Anna Fali
1039Francesco ShinkoIndia2026-04-19Commercial Press PROPOSAL27Ioni Bowcher
1040Tony FollerIndia2026-04-05Truhlar And Truhlar Attys RENEWAL8Ioni Bowcher
1041Alejandro PerinCanada2026-04-19Chanay, Jeffrey A Esq QUALIFIED11Bernardo Dominic
1042Emily WhobreyGermany2026-04-15Commercial Press NEGOTIATION25Amy Elsner
1043Mujtaba NickaIndia2026-04-20Buckley Miller Wright NEW91Anna Fali
1044Leja CaldareraJapan2026-04-13Feiner Bros NEW7Asiya Javayant
1045Wickens NestleUnited Kingdom2026-04-12Buckley Miller Wright QUALIFIED43Amy Elsner
1046Jennifer AmigonAustralia2026-05-03King, Christopher A Esq NEW71Onyama Limba
1047James ButtRussia2026-04-05King, Christopher A Esq PROPOSAL67Anna Fali
1048Jennifer AmigonUnited Kingdom2026-04-17Feltz Printing Service PROPOSAL63Amy Elsner
1049James ButtUnited Kingdom2026-04-05Morlong Associates RENEWAL2Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mayumi KolmetzUnited KingdomIoni Bowcher NEW
Jeanfrancois VenereRussiaAmy Elsner UNQUALIFIED
Ivar PaprockiFranceXuxue Feng NEGOTIATION
Wickens NestleAustraliaAnna Fali RENEWAL
Costa DilliardArgentinaXuxue Feng RENEWAL
Octavia MaletAustraliaIoni Bowcher QUALIFIED
Arvin AlbaresItalyAnna Fali NEGOTIATION
Deepesh ChuiUnited KingdomBernardo Dominic RENEWAL
Mujtaba NickaRussiaIoni Bowcher NEW
Costa DilliardIndiaStephen Shaw QUALIFIED
Juan WieserUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois VenereFranceElwin Sharvill QUALIFIED
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Kaitlin OstroskySpainIvan Magalhaes QUALIFIED
Sinclair WaycottArgentinaAmy Elsner PROPOSAL
Claire TollnerJapanOnyama Limba PROPOSAL
Aditya KuskoJapanElwin Sharvill RENEWAL
Silvio SlusarskiAustraliaXuxue Feng RENEWAL
Arvin AlbaresJapanOnyama Limba NEGOTIATION
Chavez BriddickArgentinaAmy Elsner PROPOSAL
Munro FerenczIndiaAsiya Javayant QUALIFIED
Stacey MacleadGermanyIvan Magalhaes QUALIFIED
Aika InouyeGermanyIoni Bowcher NEGOTIATION
Antonio CaudyItalyIoni Bowcher RENEWAL
Tony FollerSpainIvan Magalhaes NEGOTIATION
Munro FerenczBrazilStephen Shaw NEGOTIATION
Cody SaylorsCanadaAnna Fali UNQUALIFIED
Aditya KuskoArgentinaStephen Shaw QUALIFIED
Isabel BowleyGermanyElwin Sharvill UNQUALIFIED
Antonio CaudyUnited KingdomAnna Fali PROPOSAL
Antonio CaudyBrazilIvan Magalhaes QUALIFIED
Darci PoquetteItalyBernardo Dominic PROPOSAL
Kadeem FlosiUnited KingdomAnna Fali NEGOTIATION
Silvio SlusarskiIndiaBernardo Dominic PROPOSAL
Adams MorascaUnited KingdomElwin Sharvill RENEWAL
Nicolas IturbideGermanyAnna Fali QUALIFIED
Ashley DoeCanadaOnyama Limba UNQUALIFIED
Juan WieserCanadaXuxue Feng QUALIFIED
Leja CaldareraArgentinaAmy Elsner RENEWAL
Darci PoquetteAustraliaBernardo Dominic RENEWAL
Arvin AlbaresCanadaBernardo Dominic PROPOSAL
Leon OldroydJapanAmy Elsner NEGOTIATION
Mayumi KolmetzBrazilBernardo Dominic QUALIFIED
David DarakjyGermanyIvan Magalhaes NEGOTIATION
Sinclair WaycottItalyStephen Shaw RENEWAL
Izzy GarufiSpainAmy Elsner NEW
Johnson SergiAustraliaElwin Sharvill RENEWAL
Silvio SlusarskiFranceXuxue Feng QUALIFIED
Emily WhobreyArgentinaIvan Magalhaes NEW
Leja CaldareraIndiaOnyama Limba RENEWAL
Frozen Columns
Name
Emily Whobrey
Alejandro Perin
Arvin Albares
Deepesh Chui
Adams Morasca
Chavez Briddick
Kadeem Flosi
Emily Whobrey
Izzy Garufi
Cody Saylors
Aruna Figeroa
Stacey Maclead
Chavez Briddick
Jennifer Amigon
Alejandro Perin
Smith Glick
Faith Gillian
Alejandro Perin
Ricardo Gaucho
Johnson Sergi
Francesco Shinko
Kaitlin Ostrosky
Maria Marrier
Deepesh Chui
Smith Glick
Stacey Maclead
Deepesh Chui
Nicolas Iturbide
Ashley Doe
Jones Vocelka
Ricardo Gaucho
Ivar Paprocki
Aika Inouye
Ashley Doe
Wickens Nestle
Octavia Malet
Cody Saylors
Silvio Slusarski
Alejandro Perin
Morrow Ruta
Aika Inouye
Morrow Ruta
Johnson Sergi
Cody Saylors
Alejandro Perin
Leon Oldroyd
Maisha Rulapaugh
David Darakjy
Faith Gillian
Chavez Briddick
IdCountryDate
1000Russia2026-04-07
1001Brazil2026-04-10
1002Argentina2026-04-27
1003India2026-04-30
1004United Kingdom2026-04-28
1005Italy2026-04-19
1006Argentina2026-04-24
1007Germany2026-04-17
1008Canada2026-04-05
1009Canada2026-04-26
1010Italy2026-04-20
1011Russia2026-04-18
1012Argentina2026-04-28
1013Spain2026-04-06
1014Argentina2026-04-07
1015Brazil2026-04-05
1016Germany2026-04-20
1017Australia2026-04-22
1018United Kingdom2026-04-06
1019Argentina2026-05-03
1020United Kingdom2026-04-13
1021Russia2026-04-07
1022Japan2026-04-14
1023France2026-04-19
1024Brazil2026-04-16
1025Canada2026-04-23
1026Spain2026-04-15
1027Canada2026-04-09
1028United Kingdom2026-04-06
1029Canada2026-04-22
1030Canada2026-04-04
1031Japan2026-05-01
1032Russia2026-04-15
1033Japan2026-04-28
1034Argentina2026-04-17
1035Canada2026-04-19
1036Australia2026-05-02
1037France2026-04-06
1038Brazil2026-04-23
1039Argentina2026-04-13
1040Japan2026-04-21
1041Russia2026-04-25
1042Japan2026-04-22
1043Canada2026-04-09
1044Spain2026-04-21
1045Canada2026-04-11
1046France2026-04-04
1047Italy2026-04-26
1048Canada2026-04-30
1049Japan2026-05-03

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Canada2026-04-04
Murillo Malet1001Australia2026-04-29
Jones Vocelka1002Russia2026-05-02
Munro Ferencz1003Canada2026-04-15
Smith Glick1004Germany2026-04-26
Isabel Bowley1005Russia2026-04-06
Darci Poquette1006Germany2026-04-21
Claire Tollner1007Spain2026-04-25
Arvin Albares1008Australia2026-04-22
Mujtaba Nicka1009Australia2026-04-05
Sinclair Waycott1010Brazil2026-04-05
Izzy Garufi1011Argentina2026-04-26
Octavia Malet1012United Kingdom2026-04-26
Emily Whobrey1013Russia2026-04-27
Morrow Ruta1014Italy2026-04-13
Murillo Malet1015India2026-04-30
Mujtaba Nicka1016Argentina2026-04-15
Johnson Sergi1017United Kingdom2026-04-10
Faith Gillian1018Argentina2026-05-01
Isabel Bowley1019Canada2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerFranceOnyama Limba PROPOSAL
Wickens NestleItalyIvan Magalhaes RENEWAL
Tony FollerGermanyBernardo Dominic QUALIFIED
Cody SaylorsCanadaBernardo Dominic PROPOSAL
Munro FerenczFranceBernardo Dominic QUALIFIED
Ivar PaprockiBrazilIoni Bowcher PROPOSAL
Deepesh ChuiArgentinaIoni Bowcher UNQUALIFIED
Claire TollnerCanadaIoni Bowcher NEGOTIATION
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Claire TollnerGermanyIvan Magalhaes QUALIFIED
Kadeem FlosiSpainOnyama Limba UNQUALIFIED
Jennifer AmigonFranceBernardo Dominic NEGOTIATION
Arvin AlbaresCanadaStephen Shaw NEW
Morrow RutaSpainElwin Sharvill QUALIFIED
Misaki RoysterSpainOnyama Limba NEGOTIATION
Aditya KuskoGermanyBernardo Dominic RENEWAL
Aruna FigeroaIndiaAnna Fali UNQUALIFIED
Misaki RoysterArgentinaStephen Shaw QUALIFIED
Mujtaba NickaArgentinaElwin Sharvill NEW
Greenwood BologniaBrazilBernardo Dominic RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali UNQUALIFIED
David DarakjyBrazilElwin Sharvill QUALIFIED
Rodrigues CampainCanadaBernardo Dominic NEW
Deepesh ChuiAustraliaAsiya Javayant NEW
Faith GillianBrazilStephen Shaw PROPOSAL
James ButtGermanyIoni Bowcher NEW
Francesco ShinkoJapanXuxue Feng QUALIFIED
Sinclair WaycottSpainAnna Fali QUALIFIED
Nicolas IturbideAustraliaAmy Elsner RENEWAL
Greenwood BologniaSpainOnyama Limba PROPOSAL
Stacey MacleadFranceStephen Shaw NEGOTIATION
Cody SaylorsSpainElwin Sharvill NEW
Darci PoquetteBrazilAsiya Javayant QUALIFIED
Jeanfrancois VenereUnited KingdomAnna Fali RENEWAL
Mayumi KolmetzArgentinaOnyama Limba PROPOSAL
Ashley DoeJapanIvan Magalhaes NEGOTIATION
Julie StensethArgentinaIvan Magalhaes PROPOSAL
Maria MarrierAustraliaBernardo Dominic PROPOSAL
Rodrigues CampainAustraliaIvan Magalhaes RENEWAL
Darci PoquetteBrazilIvan Magalhaes NEGOTIATION

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