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
Johnson SergiAustraliaBernardo Dominic QUALIFIED
Morrow RutaJapanElwin Sharvill NEGOTIATION
David DarakjyArgentinaAmy Elsner NEW
Johnson SergiBrazilStephen Shaw NEW
Mayumi KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Faith GillianJapanIoni Bowcher NEW
Sinclair WaycottSpainAnna Fali NEGOTIATION
Johnson SergiJapanIoni Bowcher NEW
Maria MarrierCanadaAmy Elsner PROPOSAL
Jennifer AmigonAustraliaAmy Elsner PROPOSAL
Wickens NestleCanadaBernardo Dominic QUALIFIED
Jones VocelkaRussiaIoni Bowcher UNQUALIFIED
Leja CaldareraUnited KingdomIvan Magalhaes NEW
Adams MorascaUnited KingdomElwin Sharvill NEGOTIATION
Silvio SlusarskiIndiaAsiya Javayant NEGOTIATION
David DarakjySpainElwin Sharvill PROPOSAL
Alejandro PerinItalyIvan Magalhaes PROPOSAL
Munro FerenczSpainAmy Elsner PROPOSAL
Clifford RimBrazilIoni Bowcher QUALIFIED
Smith GlickIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinSpainStephen Shaw RENEWAL
Octavia MaletArgentinaBernardo Dominic PROPOSAL
Darci PoquetteGermanyAnna Fali PROPOSAL
Octavia MaletIndiaAnna Fali NEW
Adams MorascaFranceIvan Magalhaes PROPOSAL
Misaki RoysterArgentinaAmy Elsner NEW
Maria MarrierAustraliaAnna Fali PROPOSAL
Jeanfrancois VenereGermanyBernardo Dominic NEGOTIATION
Nicolas IturbideRussiaStephen Shaw PROPOSAL
Maisha RulapaughIndiaIvan Magalhaes NEW
Alejandro PerinBrazilElwin Sharvill RENEWAL
Mayumi KolmetzArgentinaAsiya Javayant RENEWAL
Aruna FigeroaItalyOnyama Limba QUALIFIED
Ashley DoeIndiaOnyama Limba QUALIFIED
Tony FollerGermanyAsiya Javayant RENEWAL
Faith GillianFranceAnna Fali UNQUALIFIED
Costa DilliardAustraliaOnyama Limba NEW
Cody SaylorsAustraliaAsiya Javayant RENEWAL
Jeanfrancois VenereItalyAnna Fali PROPOSAL
Isabel BowleySpainAsiya Javayant RENEWAL
Ricardo GauchoIndiaAnna Fali PROPOSAL
Chavez BriddickFranceAsiya Javayant UNQUALIFIED
Misaki RoysterRussiaXuxue Feng UNQUALIFIED
David DarakjyCanadaXuxue Feng NEW
Aditya KuskoFranceAmy Elsner NEGOTIATION
Deepesh ChuiFranceAnna Fali NEW
Morrow RutaBrazilBernardo Dominic UNQUALIFIED
Adams MorascaCanadaOnyama Limba RENEWAL
Izzy GarufiArgentinaStephen Shaw UNQUALIFIED
Murillo MaletFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiSpainBernardo Dominic RENEWAL
Faith GillianCanadaOnyama Limba QUALIFIED
Leja CaldareraCanadaStephen Shaw NEGOTIATION
Arvin AlbaresIndiaIoni Bowcher RENEWAL
Munro FerenczItalyAmy Elsner RENEWAL
Maria MarrierAustraliaXuxue Feng UNQUALIFIED
Kaitlin OstroskyFranceIoni Bowcher UNQUALIFIED
Jeanfrancois VenereSpainOnyama Limba UNQUALIFIED
Sinclair WaycottCanadaElwin Sharvill PROPOSAL
Cody SaylorsRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaBrazil2026-05-04Buckley Miller Wright NEW23Asiya Javayant
1001Antonio CaudyArgentina2026-05-12Rousseaux, Michael Esq NEGOTIATION27Elwin Sharvill
1002Emily WhobreyAustralia2026-05-12Morlong Associates RENEWAL0Amy Elsner
1003Johnson SergiFrance2026-05-09Buckley Miller Wright NEW88Stephen Shaw
1004Claire TollnerBrazil2026-05-19Feltz Printing Service PROPOSAL51Xuxue Feng
1005Sinclair WaycottArgentina2026-05-11Truhlar And Truhlar Attys PROPOSAL29Onyama Limba
1006Jefferson SchemmerBrazil2026-04-28Rousseaux, Michael Esq QUALIFIED32Ioni Bowcher
1007Smith GlickItaly2026-05-10Chapman, Ross E Esq RENEWAL7Xuxue Feng
1008Francesco ShinkoIndia2026-05-18Rousseaux, Michael Esq NEGOTIATION70Onyama Limba
1009Ashley DoeArgentina2026-04-26Printing Dimensions QUALIFIED71Stephen Shaw
1010Jennifer AmigonSpain2026-04-29Feiner Bros NEW97Anna Fali
1011Claire TollnerBrazil2026-05-11Truhlar And Truhlar Attys QUALIFIED24Bernardo Dominic
1012Tony FollerCanada2026-05-17Morlong Associates NEGOTIATION97Anna Fali
1013Izzy GarufiSpain2026-04-27Feltz Printing Service UNQUALIFIED53Amy Elsner
1014Murillo MaletCanada2026-05-12Commercial Press NEW25Asiya Javayant
1015Kaitlin OstroskyRussia2026-05-20Buckley Miller Wright NEW77Anna Fali
1016Aruna FigeroaItaly2026-05-24King, Christopher A Esq NEGOTIATION75Bernardo Dominic
1017Francesco ShinkoGermany2026-04-26Chemel, James L Cpa RENEWAL21Stephen Shaw
1018Johnson SergiBrazil2026-04-26Chapman, Ross E Esq NEW17Bernardo Dominic
1019Chavez BriddickAustralia2026-05-05Rangoni Of Florence NEGOTIATION75Ivan Magalhaes
1020Jennifer AmigonCanada2026-05-25Buckley Miller Wright RENEWAL80Xuxue Feng
1021Mayumi KolmetzRussia2026-05-11Chapman, Ross E Esq RENEWAL45Onyama Limba
1022Julie StensethCanada2026-05-06Chemel, James L Cpa PROPOSAL86Elwin Sharvill
1023Izzy GarufiFrance2026-05-02Feltz Printing Service NEGOTIATION25Ivan Magalhaes
1024Greenwood BologniaIndia2026-05-25King, Christopher A Esq PROPOSAL21Elwin Sharvill
1025Smith GlickIndia2026-04-29Chapman, Ross E Esq PROPOSAL64Ivan Magalhaes
1026Faith GillianArgentina2026-05-06Rangoni Of Florence NEW41Ioni Bowcher
1027Morrow RutaAustralia2026-05-01Benton, John B Jr QUALIFIED0Bernardo Dominic
1028Mujtaba NickaAustralia2026-05-09Chapman, Ross E Esq UNQUALIFIED13Amy Elsner
1029Leon OldroydGermany2026-04-28Chapman, Ross E Esq UNQUALIFIED69Stephen Shaw
1030Jeanfrancois VenereItaly2026-05-11Buckley Miller Wright NEW50Bernardo Dominic
1031Mayumi KolmetzAustralia2026-05-14Printing Dimensions NEW96Ioni Bowcher
1032Octavia MaletRussia2026-05-20Rangoni Of Florence PROPOSAL63Asiya Javayant
1033Sinclair WaycottCanada2026-05-18Buckley Miller Wright NEW6Anna Fali
1034Mujtaba NickaGermany2026-05-09Buckley Miller Wright PROPOSAL77Elwin Sharvill
1035Munro FerenczGermany2026-04-29Printing Dimensions QUALIFIED64Stephen Shaw
1036Mujtaba NickaItaly2026-05-09Truhlar And Truhlar Attys UNQUALIFIED59Ioni Bowcher
1037Johnson SergiBrazil2026-04-30Rangoni Of Florence NEGOTIATION34Ioni Bowcher
1038Claire TollnerSpain2026-05-08Chemel, James L Cpa PROPOSAL46Amy Elsner
1039Smith GlickItaly2026-05-08Feltz Printing Service NEGOTIATION27Stephen Shaw
1040Cody SaylorsSpain2026-04-28Buckley Miller Wright QUALIFIED47Stephen Shaw
1041Jefferson SchemmerIndia2026-05-01Feiner Bros UNQUALIFIED1Bernardo Dominic
1042Aika InouyeItaly2026-05-04Chemel, James L Cpa NEW42Bernardo Dominic
1043Izzy GarufiItaly2026-04-26Dorl, James J Esq UNQUALIFIED54Amy Elsner
1044Johnson SergiCanada2026-05-08Rousseaux, Michael Esq NEGOTIATION48Bernardo Dominic
1045Emily WhobreyArgentina2026-05-10Morlong Associates NEGOTIATION32Bernardo Dominic
1046David DarakjyItaly2026-05-20King, Christopher A Esq PROPOSAL26Elwin Sharvill
1047Izzy GarufiCanada2026-05-19Rousseaux, Michael Esq NEW63Bernardo Dominic
1048Emily WhobreyItaly2026-05-22Truhlar And Truhlar Attys RENEWAL35Onyama Limba
1049Chavez BriddickArgentina2026-05-01King, Christopher A Esq PROPOSAL15Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierSpainIoni Bowcher NEW
David DarakjyJapanAmy Elsner QUALIFIED
Wickens NestleFranceIvan Magalhaes UNQUALIFIED
David DarakjyFranceIvan Magalhaes QUALIFIED
Rodrigues CampainJapanElwin Sharvill RENEWAL
Leon OldroydJapanAmy Elsner PROPOSAL
Wickens NestleGermanyXuxue Feng QUALIFIED
Smith GlickSpainIoni Bowcher PROPOSAL
Misaki RoysterBrazilOnyama Limba QUALIFIED
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Antonio CaudyRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereAustraliaIvan Magalhaes NEGOTIATION
Mujtaba NickaIndiaIoni Bowcher UNQUALIFIED
James ButtRussiaAsiya Javayant UNQUALIFIED
Salvatore StockhamJapanXuxue Feng NEW
Clifford RimJapanAmy Elsner QUALIFIED
Faith GillianRussiaElwin Sharvill UNQUALIFIED
Wickens NestleCanadaOnyama Limba NEW
Clifford RimCanadaBernardo Dominic NEW
Morrow RutaUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba NickaArgentinaAnna Fali NEGOTIATION
Stacey MacleadArgentinaAmy Elsner UNQUALIFIED
Maisha RulapaughGermanyIoni Bowcher RENEWAL
Arvin AlbaresFranceAnna Fali QUALIFIED
Aika InouyeBrazilElwin Sharvill UNQUALIFIED
Antonio CaudyJapanOnyama Limba RENEWAL
Emily WhobreyIndiaStephen Shaw UNQUALIFIED
Murillo MaletBrazilAmy Elsner QUALIFIED
Jefferson SchemmerFranceBernardo Dominic QUALIFIED
Jones VocelkaFranceAnna Fali NEGOTIATION
Julie StensethIndiaBernardo Dominic QUALIFIED
Mujtaba NickaGermanyXuxue Feng RENEWAL
Johnson SergiItalyAmy Elsner UNQUALIFIED
Faith GillianIndiaBernardo Dominic RENEWAL
Claire TollnerAustraliaAmy Elsner NEW
Francesco ShinkoArgentinaBernardo Dominic NEGOTIATION
Rodrigues CampainIndiaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyFranceXuxue Feng PROPOSAL
Mayumi KolmetzAustraliaElwin Sharvill UNQUALIFIED
Chavez BriddickArgentinaXuxue Feng RENEWAL
Smith GlickIndiaBernardo Dominic UNQUALIFIED
Octavia MaletItalyStephen Shaw UNQUALIFIED
Julie StensethFranceXuxue Feng UNQUALIFIED
Johnson SergiRussiaIvan Magalhaes UNQUALIFIED
Ivar PaprockiSpainOnyama Limba RENEWAL
Faith GillianUnited KingdomOnyama Limba PROPOSAL
Johnson SergiCanadaElwin Sharvill PROPOSAL
David DarakjyItalyAnna Fali RENEWAL
Nicolas IturbideIndiaIvan Magalhaes NEW
David DarakjyCanadaStephen Shaw NEGOTIATION
Frozen Columns
Name
Jennifer Amigon
Aditya Kusko
David Darakjy
Greenwood Bolognia
Kaitlin Ostrosky
Rodrigues Campain
Greenwood Bolognia
Ashley Doe
Aika Inouye
Aika Inouye
Isabel Bowley
Sinclair Waycott
Wickens Nestle
Faith Gillian
Salvatore Stockham
Aika Inouye
Ivar Paprocki
Mayumi Kolmetz
Aruna Figeroa
Kadeem Flosi
Morrow Ruta
Cody Saylors
Greenwood Bolognia
Claire Tollner
Greenwood Bolognia
Francesco Shinko
Faith Gillian
Cody Saylors
Izzy Garufi
Nicolas Iturbide
Jones Vocelka
Johnson Sergi
Juan Wieser
Cody Saylors
Wickens Nestle
Deepesh Chui
Jefferson Schemmer
Jennifer Amigon
Morrow Ruta
Faith Gillian
Alejandro Perin
Costa Dilliard
Cody Saylors
Tony Foller
Chavez Briddick
Alejandro Perin
Kaitlin Ostrosky
Emily Whobrey
Deepesh Chui
Juan Wieser
IdCountryDate
1000Spain2026-04-28
1001Australia2026-05-17
1002Germany2026-05-19
1003India2026-05-08
1004Italy2026-05-08
1005Canada2026-05-11
1006India2026-04-27
1007Australia2026-05-19
1008Canada2026-05-19
1009France2026-05-05
1010Germany2026-05-13
1011United Kingdom2026-05-05
1012France2026-05-03
1013Italy2026-05-25
1014Russia2026-04-29
1015Brazil2026-05-18
1016Argentina2026-05-02
1017Argentina2026-05-12
1018Japan2026-04-27
1019Spain2026-05-04
1020Argentina2026-05-14
1021Germany2026-05-11
1022Russia2026-05-22
1023India2026-04-27
1024Italy2026-05-10
1025Canada2026-05-15
1026Australia2026-05-24
1027Canada2026-05-11
1028France2026-05-19
1029Spain2026-05-08
1030Japan2026-05-16
1031Italy2026-05-21
1032Australia2026-05-21
1033Brazil2026-04-26
1034Argentina2026-05-09
1035Germany2026-04-27
1036Germany2026-05-10
1037India2026-05-04
1038Italy2026-04-27
1039Spain2026-05-18
1040Japan2026-05-05
1041Australia2026-05-20
1042Australia2026-05-21
1043Argentina2026-05-13
1044India2026-05-16
1045United Kingdom2026-05-03
1046Russia2026-05-17
1047Russia2026-05-05
1048Italy2026-05-13
1049Australia2026-05-23

On-Demand Data

NameIdCountryDate
Clifford Rim1000Russia2026-05-15
Silvio Slusarski1001Russia2026-04-26
Juan Wieser1002India2026-05-18
Ricardo Gaucho1003Spain2026-05-25
Kadeem Flosi1004Brazil2026-05-24
Mujtaba Nicka1005Russia2026-05-25
Adams Morasca1006India2026-05-20
Francesco Shinko1007Australia2026-05-08
Munro Ferencz1008Canada2026-05-09
Mayumi Kolmetz1009Germany2026-05-25
Juan Wieser1010Japan2026-05-17
Sinclair Waycott1011Germany2026-05-17
Octavia Malet1012United Kingdom2026-05-06
Jeanfrancois Venere1013Germany2026-05-17
Emily Whobrey1014Australia2026-05-02
Jeanfrancois Venere1015Australia2026-04-27
Nicolas Iturbide1016Brazil2026-05-02
Ivar Paprocki1017Brazil2026-05-02
Claire Tollner1018United Kingdom2026-05-25
Greenwood Bolognia1019France2026-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyItalyIoni Bowcher NEW
Aruna FigeroaRussiaAsiya Javayant PROPOSAL
Sinclair WaycottJapanIoni Bowcher RENEWAL
Ashley DoeUnited KingdomAmy Elsner NEW
Ricardo GauchoJapanAnna Fali PROPOSAL
Octavia MaletIndiaBernardo Dominic QUALIFIED
Francesco ShinkoSpainElwin Sharvill PROPOSAL
Antonio CaudyItalyElwin Sharvill PROPOSAL
Costa DilliardGermanyIvan Magalhaes PROPOSAL
Johnson SergiIndiaXuxue Feng RENEWAL
Julie StensethCanadaStephen Shaw QUALIFIED
Octavia MaletIndiaXuxue Feng RENEWAL
Faith GillianCanadaStephen Shaw RENEWAL
Kadeem FlosiUnited KingdomStephen Shaw NEGOTIATION
Chavez BriddickArgentinaStephen Shaw QUALIFIED
Aika InouyeArgentinaIoni Bowcher PROPOSAL
Maria MarrierItalyAsiya Javayant NEW
Jennifer AmigonItalyAmy Elsner NEW
Greenwood BologniaGermanyOnyama Limba NEW
Francesco ShinkoAustraliaIoni Bowcher NEGOTIATION
Greenwood BologniaJapanStephen Shaw NEGOTIATION
Costa DilliardBrazilIvan Magalhaes NEGOTIATION
Salvatore StockhamGermanyAnna Fali NEW
Maria MarrierBrazilStephen Shaw NEGOTIATION
Mujtaba NickaCanadaAnna Fali NEW
Aruna FigeroaAustraliaAsiya Javayant UNQUALIFIED
Julie StensethRussiaAsiya Javayant RENEWAL
Tony FollerAustraliaIvan Magalhaes RENEWAL
Jennifer AmigonAustraliaAsiya Javayant QUALIFIED
Kadeem FlosiRussiaAsiya Javayant PROPOSAL
Sinclair WaycottArgentinaStephen Shaw PROPOSAL
Morrow RutaArgentinaIvan Magalhaes NEGOTIATION
Emily WhobreyIndiaXuxue Feng RENEWAL
Morrow RutaJapanOnyama Limba PROPOSAL
Tony FollerArgentinaBernardo Dominic NEW
Greenwood BologniaRussiaBernardo Dominic NEGOTIATION
Faith GillianRussiaXuxue Feng PROPOSAL
Aika InouyeJapanStephen Shaw UNQUALIFIED
James ButtUnited KingdomStephen Shaw PROPOSAL
Wickens NestleIndiaStephen Shaw 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>