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
Aditya KuskoAustraliaAnna Fali NEGOTIATION
Ashley DoeAustraliaIvan Magalhaes NEGOTIATION
Mayumi KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh ChuiItalyElwin Sharvill QUALIFIED
James ButtSpainBernardo Dominic RENEWAL
Silvio SlusarskiBrazilStephen Shaw UNQUALIFIED
Jefferson SchemmerSpainIoni Bowcher NEGOTIATION
Cody SaylorsRussiaStephen Shaw QUALIFIED
Greenwood BologniaIndiaAnna Fali RENEWAL
Adams MorascaArgentinaAsiya Javayant NEW
Aditya KuskoItalyAnna Fali RENEWAL
Smith GlickRussiaAnna Fali NEW
Claire TollnerCanadaAmy Elsner PROPOSAL
Chavez BriddickSpainOnyama Limba QUALIFIED
Arvin AlbaresItalyXuxue Feng NEGOTIATION
Julie StensethBrazilBernardo Dominic QUALIFIED
Jones VocelkaJapanOnyama Limba NEGOTIATION
Deepesh ChuiRussiaAnna Fali NEGOTIATION
Murillo MaletUnited KingdomOnyama Limba NEGOTIATION
Tony FollerSpainAmy Elsner UNQUALIFIED
Munro FerenczCanadaAsiya Javayant UNQUALIFIED
Izzy GarufiUnited KingdomXuxue Feng NEW
Juan WieserArgentinaAnna Fali NEW
Costa DilliardAustraliaOnyama Limba NEW
Ivar PaprockiItalyAmy Elsner QUALIFIED
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Izzy GarufiFranceStephen Shaw PROPOSAL
Ivar PaprockiRussiaXuxue Feng QUALIFIED
Costa DilliardAustraliaBernardo Dominic UNQUALIFIED
Darci PoquetteRussiaElwin Sharvill NEW
Maisha RulapaughJapanAmy Elsner PROPOSAL
Mujtaba NickaUnited KingdomIoni Bowcher NEW
Aika InouyeFranceOnyama Limba UNQUALIFIED
Clifford RimUnited KingdomElwin Sharvill RENEWAL
Mayumi KolmetzRussiaBernardo Dominic RENEWAL
Claire TollnerAustraliaStephen Shaw PROPOSAL
Jennifer AmigonItalyStephen Shaw NEGOTIATION
Clifford RimGermanyAnna Fali NEW
Wickens NestleUnited KingdomStephen Shaw NEGOTIATION
Izzy GarufiJapanXuxue Feng UNQUALIFIED
David DarakjyCanadaIoni Bowcher PROPOSAL
Maisha RulapaughAustraliaIvan Magalhaes PROPOSAL
Nicolas IturbideItalyOnyama Limba PROPOSAL
Ivar PaprockiRussiaIvan Magalhaes NEGOTIATION
Jones VocelkaGermanyAmy Elsner NEW
Leon OldroydArgentinaXuxue Feng RENEWAL
Octavia MaletGermanyIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomElwin Sharvill RENEWAL
Costa DilliardRussiaAnna Fali PROPOSAL
Munro FerenczUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresGermanyAsiya Javayant NEGOTIATION
Faith GillianJapanElwin Sharvill NEGOTIATION
Munro FerenczCanadaElwin Sharvill PROPOSAL
Deepesh ChuiItalyXuxue Feng RENEWAL
Murillo MaletBrazilStephen Shaw NEGOTIATION
Mujtaba NickaItalyAsiya Javayant RENEWAL
Johnson SergiCanadaIvan Magalhaes NEGOTIATION
Sinclair WaycottFranceAnna Fali NEGOTIATION
Stacey MacleadFranceIvan Magalhaes NEGOTIATION
Clifford RimFranceAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletSpain2026-04-09Rangoni Of Florence UNQUALIFIED84Elwin Sharvill
1001Ivar PaprockiRussia2026-04-18Rousseaux, Michael Esq NEW82Elwin Sharvill
1002Jeanfrancois VenereItaly2026-04-17Dorl, James J Esq NEW53Ioni Bowcher
1003Maria MarrierRussia2026-04-10Chapman, Ross E Esq PROPOSAL44Ioni Bowcher
1004Jeanfrancois VenereArgentina2026-04-07Feltz Printing Service NEW36Stephen Shaw
1005Darci PoquetteBrazil2026-04-15Benton, John B Jr RENEWAL7Anna Fali
1006Jones VocelkaUnited Kingdom2026-04-08Dorl, James J Esq QUALIFIED84Asiya Javayant
1007Jones VocelkaIndia2026-04-12Printing Dimensions UNQUALIFIED44Stephen Shaw
1008Morrow RutaArgentina2026-04-15Truhlar And Truhlar Attys NEGOTIATION9Ivan Magalhaes
1009Kaitlin OstroskySpain2026-04-13Chanay, Jeffrey A Esq PROPOSAL35Onyama Limba
1010Cody SaylorsJapan2026-04-13King, Christopher A Esq UNQUALIFIED77Stephen Shaw
1011Emily WhobreyJapan2026-04-19Chemel, James L Cpa QUALIFIED99Onyama Limba
1012Leon OldroydItaly2026-04-08Chemel, James L Cpa PROPOSAL87Amy Elsner
1013Mayumi KolmetzIndia2026-04-07Commercial Press RENEWAL98Elwin Sharvill
1014Ricardo GauchoFrance2026-04-06Chemel, James L Cpa NEGOTIATION58Onyama Limba
1015Nicolas IturbideRussia2026-04-23Dorl, James J Esq RENEWAL3Elwin Sharvill
1016Johnson SergiGermany2026-04-09Feiner Bros NEGOTIATION96Asiya Javayant
1017Ashley DoeIndia2026-04-06Buckley Miller Wright NEGOTIATION61Ivan Magalhaes
1018Nicolas IturbideBrazil2026-04-29Rangoni Of Florence PROPOSAL85Stephen Shaw
1019Leja CaldareraFrance2026-04-27Morlong Associates QUALIFIED42Ivan Magalhaes
1020Misaki RoysterItaly2026-04-02Truhlar And Truhlar Attys QUALIFIED29Xuxue Feng
1021Faith GillianRussia2026-04-17Chemel, James L Cpa NEGOTIATION67Amy Elsner
1022Kadeem FlosiJapan2026-04-19Chanay, Jeffrey A Esq UNQUALIFIED44Elwin Sharvill
1023Morrow RutaRussia2026-04-22Truhlar And Truhlar Attys RENEWAL32Anna Fali
1024Alejandro PerinUnited Kingdom2026-04-07Rousseaux, Michael Esq RENEWAL85Ivan Magalhaes
1025Juan WieserGermany2026-04-14Truhlar And Truhlar Attys PROPOSAL54Anna Fali
1026Sinclair WaycottCanada2026-04-11Truhlar And Truhlar Attys UNQUALIFIED67Asiya Javayant
1027Mujtaba NickaRussia2026-04-03Rangoni Of Florence PROPOSAL65Bernardo Dominic
1028Cody SaylorsGermany2026-04-20Rangoni Of Florence PROPOSAL20Onyama Limba
1029David DarakjySpain2026-04-10Morlong Associates QUALIFIED57Bernardo Dominic
1030Nicolas IturbideItaly2026-04-03Dorl, James J Esq NEGOTIATION31Elwin Sharvill
1031Wickens NestleUnited Kingdom2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED82Anna Fali
1032Julie StensethArgentina2026-04-09Commercial Press QUALIFIED79Anna Fali
1033Julie StensethArgentina2026-04-21Buckley Miller Wright NEGOTIATION28Stephen Shaw
1034Chavez BriddickUnited Kingdom2026-04-21King, Christopher A Esq NEW73Xuxue Feng
1035Clifford RimFrance2026-04-09Dorl, James J Esq NEGOTIATION66Anna Fali
1036Darci PoquetteJapan2026-04-20King, Christopher A Esq NEGOTIATION21Elwin Sharvill
1037Isabel BowleyUnited Kingdom2026-04-10Chanay, Jeffrey A Esq QUALIFIED60Elwin Sharvill
1038Maisha RulapaughItaly2026-04-24King, Christopher A Esq UNQUALIFIED38Asiya Javayant
1039Ricardo GauchoJapan2026-04-22Feiner Bros RENEWAL81Ioni Bowcher
1040Kadeem FlosiJapan2026-04-04Buckley Miller Wright RENEWAL70Stephen Shaw
1041Rodrigues CampainJapan2026-04-14King, Christopher A Esq NEGOTIATION92Ivan Magalhaes
1042Izzy GarufiSpain2026-04-11Benton, John B Jr PROPOSAL34Ivan Magalhaes
1043Aditya KuskoSpain2026-04-12Benton, John B Jr NEW6Ivan Magalhaes
1044Isabel BowleyJapan2026-04-18Chanay, Jeffrey A Esq NEW49Bernardo Dominic
1045Francesco ShinkoAustralia2026-04-29Printing Dimensions UNQUALIFIED76Asiya Javayant
1046Antonio CaudyAustralia2026-04-25Rousseaux, Michael Esq NEGOTIATION79Xuxue Feng
1047Deepesh ChuiArgentina2026-04-25Rangoni Of Florence NEW49Elwin Sharvill
1048Kaitlin OstroskyJapan2026-04-07Feltz Printing Service NEW96Anna Fali
1049Emily WhobreyJapan2026-04-27Chapman, Ross E Esq NEGOTIATION57Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiSpainAsiya Javayant UNQUALIFIED
Emily WhobreyIndiaIoni Bowcher QUALIFIED
Ricardo GauchoIndiaAmy Elsner NEW
Aditya KuskoGermanyIoni Bowcher QUALIFIED
Aika InouyeFranceBernardo Dominic RENEWAL
Ivar PaprockiUnited KingdomBernardo Dominic QUALIFIED
James ButtUnited KingdomIoni Bowcher RENEWAL
Claire TollnerBrazilElwin Sharvill QUALIFIED
Kaitlin OstroskyFranceStephen Shaw NEGOTIATION
Salvatore StockhamSpainXuxue Feng NEW
Claire TollnerJapanOnyama Limba RENEWAL
Munro FerenczCanadaIvan Magalhaes PROPOSAL
Antonio CaudyFranceIvan Magalhaes NEW
Leja CaldareraRussiaOnyama Limba NEW
Izzy GarufiSpainAnna Fali RENEWAL
Arvin AlbaresArgentinaStephen Shaw PROPOSAL
Chavez BriddickAustraliaIvan Magalhaes UNQUALIFIED
Sinclair WaycottSpainIoni Bowcher UNQUALIFIED
Mayumi KolmetzCanadaAnna Fali NEGOTIATION
Maisha RulapaughJapanIvan Magalhaes NEGOTIATION
Kaitlin OstroskySpainAnna Fali RENEWAL
Jeanfrancois VenereItalyElwin Sharvill RENEWAL
Antonio CaudyGermanyAnna Fali RENEWAL
Wickens NestleRussiaStephen Shaw RENEWAL
Aika InouyeArgentinaOnyama Limba NEW
Faith GillianRussiaXuxue Feng PROPOSAL
Faith GillianAustraliaIvan Magalhaes NEW
Mayumi KolmetzGermanyAsiya Javayant RENEWAL
Mujtaba NickaCanadaBernardo Dominic NEGOTIATION
Faith GillianIndiaXuxue Feng PROPOSAL
Darci PoquetteItalyOnyama Limba RENEWAL
Claire TollnerIndiaOnyama Limba RENEWAL
Jennifer AmigonBrazilIvan Magalhaes RENEWAL
Jennifer AmigonFranceIoni Bowcher NEW
Juan WieserFranceBernardo Dominic NEGOTIATION
Costa DilliardAustraliaXuxue Feng UNQUALIFIED
Smith GlickFranceAsiya Javayant RENEWAL
Adams MorascaSpainIoni Bowcher UNQUALIFIED
Kaitlin OstroskyArgentinaBernardo Dominic RENEWAL
Tony FollerRussiaStephen Shaw UNQUALIFIED
Leon OldroydRussiaAmy Elsner UNQUALIFIED
Kadeem FlosiItalyAnna Fali NEGOTIATION
Deepesh ChuiJapanXuxue Feng QUALIFIED
Maisha RulapaughCanadaElwin Sharvill NEW
Adams MorascaJapanAsiya Javayant QUALIFIED
Jennifer AmigonCanadaElwin Sharvill NEW
Julie StensethIndiaBernardo Dominic PROPOSAL
Francesco ShinkoArgentinaAnna Fali PROPOSAL
Arvin AlbaresCanadaElwin Sharvill RENEWAL
Ashley DoeSpainAnna Fali RENEWAL
Frozen Columns
Name
Mujtaba Nicka
Murillo Malet
Clifford Rim
Silvio Slusarski
Rodrigues Campain
Clifford Rim
Ricardo Gaucho
Wickens Nestle
Isabel Bowley
Sinclair Waycott
Stacey Maclead
Smith Glick
Misaki Royster
Sinclair Waycott
Aika Inouye
Aika Inouye
Smith Glick
Izzy Garufi
Tony Foller
Costa Dilliard
Darci Poquette
Chavez Briddick
Sinclair Waycott
Alejandro Perin
Stacey Maclead
Chavez Briddick
Stacey Maclead
Deepesh Chui
Darci Poquette
Arvin Albares
Kadeem Flosi
James Butt
Isabel Bowley
Antonio Caudy
James Butt
Clifford Rim
Jennifer Amigon
Leon Oldroyd
Francesco Shinko
Leon Oldroyd
Jefferson Schemmer
Maisha Rulapaugh
Arvin Albares
Maria Marrier
Adams Morasca
Ashley Doe
Maisha Rulapaugh
Alejandro Perin
Smith Glick
Cody Saylors
IdCountryDate
1000Spain2026-04-17
1001Spain2026-04-23
1002Germany2026-04-24
1003Germany2026-04-12
1004Russia2026-04-07
1005Canada2026-04-05
1006Japan2026-04-24
1007India2026-04-20
1008Argentina2026-04-03
1009Russia2026-04-16
1010France2026-04-28
1011Italy2026-04-26
1012Australia2026-04-05
1013France2026-04-03
1014Spain2026-04-08
1015Japan2026-04-13
1016Canada2026-04-01
1017Italy2026-04-04
1018Germany2026-04-23
1019France2026-04-16
1020India2026-04-20
1021Japan2026-04-02
1022Canada2026-04-18
1023Canada2026-04-12
1024Germany2026-04-17
1025Russia2026-04-14
1026Italy2026-04-18
1027Canada2026-04-08
1028Argentina2026-04-03
1029Australia2026-04-07
1030Spain2026-04-10
1031Argentina2026-04-05
1032Australia2026-04-05
1033Australia2026-04-27
1034Italy2026-04-20
1035France2026-04-25
1036Australia2026-04-21
1037Germany2026-04-17
1038Canada2026-04-02
1039Russia2026-04-20
1040Japan2026-04-08
1041India2026-04-19
1042Brazil2026-04-12
1043Germany2026-04-28
1044Brazil2026-04-01
1045Russia2026-04-19
1046Canada2026-04-10
1047Spain2026-04-28
1048India2026-04-16
1049Russia2026-04-23

On-Demand Data

NameIdCountryDate
Leon Oldroyd1000Canada2026-04-09
Mayumi Kolmetz1001Australia2026-04-10
Julie Stenseth1002Brazil2026-04-23
Isabel Bowley1003Brazil2026-04-20
Tony Foller1004Australia2026-04-05
Morrow Ruta1005Canada2026-04-22
Maria Marrier1006India2026-04-11
Arvin Albares1007Russia2026-04-02
Julie Stenseth1008Argentina2026-04-10
Clifford Rim1009Italy2026-04-25
Smith Glick1010India2026-04-07
Clifford Rim1011Japan2026-04-04
Morrow Ruta1012India2026-04-21
Nicolas Iturbide1013Spain2026-04-19
Jeanfrancois Venere1014Argentina2026-04-12
Isabel Bowley1015Argentina2026-04-07
Ivar Paprocki1016Canada2026-04-01
Faith Gillian1017Italy2026-04-04
Julie Stenseth1018Germany2026-04-06
Ivar Paprocki1019Spain2026-04-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Emily WhobreyItalyBernardo Dominic NEW
Johnson SergiIndiaElwin Sharvill RENEWAL
Emily WhobreyGermanyElwin Sharvill PROPOSAL
Murillo MaletRussiaStephen Shaw NEW
Maisha RulapaughSpainStephen Shaw UNQUALIFIED
Maisha RulapaughBrazilAsiya Javayant QUALIFIED
Darci PoquetteJapanOnyama Limba UNQUALIFIED
Aditya KuskoGermanyAmy Elsner UNQUALIFIED
Faith GillianArgentinaAsiya Javayant NEW
Mujtaba NickaJapanXuxue Feng RENEWAL
Kadeem FlosiRussiaAmy Elsner RENEWAL
Emily WhobreyAustraliaBernardo Dominic NEGOTIATION
Sinclair WaycottRussiaIoni Bowcher RENEWAL
Chavez BriddickSpainOnyama Limba NEW
Greenwood BologniaIndiaXuxue Feng RENEWAL
Octavia MaletIndiaIvan Magalhaes RENEWAL
Maria MarrierFranceIvan Magalhaes QUALIFIED
Leon OldroydJapanAmy Elsner PROPOSAL
Cody SaylorsGermanyAsiya Javayant UNQUALIFIED
James ButtArgentinaAsiya Javayant UNQUALIFIED
Stacey MacleadGermanyStephen Shaw NEW
Kadeem FlosiJapanIoni Bowcher QUALIFIED
Jones VocelkaRussiaIvan Magalhaes PROPOSAL
Maisha RulapaughFranceOnyama Limba RENEWAL
Octavia MaletArgentinaOnyama Limba UNQUALIFIED
Murillo MaletItalyAsiya Javayant NEW
Alejandro PerinItalyIoni Bowcher QUALIFIED
Ricardo GauchoJapanIvan Magalhaes RENEWAL
Jennifer AmigonIndiaXuxue Feng NEW
Misaki RoysterAustraliaAnna Fali QUALIFIED
Leja CaldareraItalyAnna Fali RENEWAL
Darci PoquetteFranceXuxue Feng QUALIFIED
Isabel BowleySpainStephen Shaw NEW
Stacey MacleadFranceBernardo Dominic PROPOSAL
Cody SaylorsItalyIvan Magalhaes PROPOSAL
Aditya KuskoSpainStephen Shaw NEGOTIATION
Faith GillianGermanyIvan Magalhaes NEGOTIATION
Misaki RoysterJapanBernardo Dominic PROPOSAL
Leja CaldareraSpainAnna Fali 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>