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 WieserGermanyAnna Fali UNQUALIFIED
Mayumi KolmetzArgentinaBernardo Dominic NEGOTIATION
Izzy GarufiItalyAnna Fali UNQUALIFIED
Izzy GarufiArgentinaAsiya Javayant NEW
Smith GlickUnited KingdomOnyama Limba NEGOTIATION
Morrow RutaRussiaElwin Sharvill NEGOTIATION
Emily WhobreyArgentinaStephen Shaw QUALIFIED
Faith GillianIndiaIoni Bowcher QUALIFIED
Nicolas IturbideSpainBernardo Dominic NEGOTIATION
Isabel BowleyJapanIvan Magalhaes UNQUALIFIED
Claire TollnerAustraliaAnna Fali QUALIFIED
Juan WieserItalyIoni Bowcher NEGOTIATION
Jennifer AmigonIndiaXuxue Feng RENEWAL
Silvio SlusarskiGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteGermanyIoni Bowcher NEGOTIATION
Silvio SlusarskiIndiaAmy Elsner UNQUALIFIED
Alejandro PerinArgentinaAmy Elsner QUALIFIED
Ricardo GauchoGermanyXuxue Feng UNQUALIFIED
Munro FerenczGermanyAnna Fali UNQUALIFIED
Aika InouyeJapanStephen Shaw PROPOSAL
Mayumi KolmetzUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoFranceAsiya Javayant UNQUALIFIED
Kaitlin OstroskyArgentinaAnna Fali NEW
Munro FerenczIndiaElwin Sharvill NEW
Johnson SergiGermanyAmy Elsner QUALIFIED
Izzy GarufiCanadaAnna Fali NEW
Costa DilliardRussiaOnyama Limba UNQUALIFIED
Morrow RutaUnited KingdomAsiya Javayant UNQUALIFIED
Maisha RulapaughBrazilElwin Sharvill NEW
Cody SaylorsUnited KingdomAnna Fali RENEWAL
Sinclair WaycottRussiaAsiya Javayant PROPOSAL
James ButtGermanyIoni Bowcher NEGOTIATION
Misaki RoysterBrazilIvan Magalhaes PROPOSAL
Isabel BowleyAustraliaOnyama Limba UNQUALIFIED
Kaitlin OstroskyItalyStephen Shaw QUALIFIED
Aika InouyeJapanXuxue Feng NEW
Maria MarrierUnited KingdomAnna Fali PROPOSAL
James ButtItalyAmy Elsner RENEWAL
Murillo MaletGermanyAnna Fali PROPOSAL
Emily WhobreySpainAmy Elsner NEGOTIATION
Wickens NestleIndiaIoni Bowcher QUALIFIED
Ricardo GauchoAustraliaElwin Sharvill NEW
Francesco ShinkoRussiaBernardo Dominic NEW
Claire TollnerIndiaBernardo Dominic NEGOTIATION
Johnson SergiRussiaIvan Magalhaes NEW
Julie StensethCanadaIvan Magalhaes NEW
Leja CaldareraRussiaIoni Bowcher UNQUALIFIED
Johnson SergiIndiaAmy Elsner UNQUALIFIED
Deepesh ChuiRussiaAmy Elsner PROPOSAL
Stacey MacleadItalyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon OldroydJapanElwin Sharvill RENEWAL
Darci PoquetteJapanOnyama Limba UNQUALIFIED
Murillo MaletArgentinaAmy Elsner RENEWAL
Antonio CaudyBrazilAsiya Javayant RENEWAL
Emily WhobreyUnited KingdomAnna Fali QUALIFIED
Ricardo GauchoSpainAnna Fali NEW
Faith GillianGermanyElwin Sharvill RENEWAL
Chavez BriddickIndiaAnna Fali NEW
Mayumi KolmetzGermanyAnna Fali NEW
Darci PoquetteBrazilIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainAustralia2026-06-07Dorl, James J Esq NEW34Ioni Bowcher
1001Greenwood BologniaArgentina2026-06-10Benton, John B Jr NEGOTIATION61Ioni Bowcher
1002Kadeem FlosiGermany2026-06-09Printing Dimensions NEW2Asiya Javayant
1003Ivar PaprockiSpain2026-06-03Chemel, James L Cpa NEW74Stephen Shaw
1004Leon OldroydGermany2026-05-21Morlong Associates NEW3Elwin Sharvill
1005Silvio SlusarskiFrance2026-06-16Feltz Printing Service UNQUALIFIED86Asiya Javayant
1006Johnson SergiGermany2026-05-22Morlong Associates NEGOTIATION84Anna Fali
1007Munro FerenczBrazil2026-06-12Feltz Printing Service NEW68Anna Fali
1008Chavez BriddickSpain2026-05-27Rousseaux, Michael Esq RENEWAL52Bernardo Dominic
1009Salvatore StockhamJapan2026-06-16Buckley Miller Wright RENEWAL37Stephen Shaw
1010Emily WhobreyIndia2026-06-02Dorl, James J Esq RENEWAL31Stephen Shaw
1011Claire TollnerFrance2026-06-09Printing Dimensions NEGOTIATION79Ioni Bowcher
1012Aruna FigeroaIndia2026-05-22Dorl, James J Esq QUALIFIED58Asiya Javayant
1013Maria MarrierJapan2026-05-28Feltz Printing Service NEGOTIATION48Ioni Bowcher
1014Ashley DoeArgentina2026-06-18Feltz Printing Service PROPOSAL63Ioni Bowcher
1015Adams MorascaBrazil2026-06-08Dorl, James J Esq PROPOSAL11Stephen Shaw
1016Stacey MacleadIndia2026-05-23Truhlar And Truhlar Attys NEW83Elwin Sharvill
1017Rodrigues CampainItaly2026-06-09Rangoni Of Florence PROPOSAL70Ivan Magalhaes
1018Misaki RoysterCanada2026-05-20Buckley Miller Wright QUALIFIED89Ivan Magalhaes
1019Rodrigues CampainJapan2026-06-17Chemel, James L Cpa QUALIFIED17Elwin Sharvill
1020Stacey MacleadCanada2026-06-06Rangoni Of Florence NEW1Xuxue Feng
1021Silvio SlusarskiGermany2026-05-27Benton, John B Jr NEW79Onyama Limba
1022Leon OldroydArgentina2026-06-15Printing Dimensions NEW7Bernardo Dominic
1023Ivar PaprockiArgentina2026-06-10Commercial Press NEGOTIATION86Onyama Limba
1024Isabel BowleyIndia2026-06-10Dorl, James J Esq QUALIFIED62Asiya Javayant
1025James ButtItaly2026-05-31Truhlar And Truhlar Attys RENEWAL88Onyama Limba
1026Cody SaylorsCanada2026-06-02Rousseaux, Michael Esq PROPOSAL38Bernardo Dominic
1027Juan WieserFrance2026-06-18Feiner Bros UNQUALIFIED66Asiya Javayant
1028Jones VocelkaCanada2026-05-27Morlong Associates RENEWAL5Amy Elsner
1029Mujtaba NickaBrazil2026-06-15Chapman, Ross E Esq UNQUALIFIED18Xuxue Feng
1030Clifford RimJapan2026-05-23Morlong Associates QUALIFIED18Amy Elsner
1031Jennifer AmigonUnited Kingdom2026-05-27Feiner Bros NEGOTIATION19Xuxue Feng
1032Antonio CaudyAustralia2026-06-14Chanay, Jeffrey A Esq NEW68Ivan Magalhaes
1033Aika InouyeAustralia2026-05-22Feiner Bros RENEWAL0Elwin Sharvill
1034Nicolas IturbideRussia2026-05-27Feltz Printing Service NEGOTIATION65Bernardo Dominic
1035Misaki RoysterGermany2026-06-18King, Christopher A Esq UNQUALIFIED13Xuxue Feng
1036Morrow RutaRussia2026-06-05Feiner Bros PROPOSAL58Amy Elsner
1037Ricardo GauchoFrance2026-05-25Chapman, Ross E Esq NEGOTIATION38Stephen Shaw
1038Sinclair WaycottAustralia2026-06-07Chanay, Jeffrey A Esq NEGOTIATION37Asiya Javayant
1039Leon OldroydRussia2026-05-28Chanay, Jeffrey A Esq UNQUALIFIED48Xuxue Feng
1040James ButtBrazil2026-05-27Dorl, James J Esq UNQUALIFIED92Onyama Limba
1041Claire TollnerRussia2026-05-29Morlong Associates UNQUALIFIED40Ioni Bowcher
1042Kadeem FlosiIndia2026-05-29Printing Dimensions NEGOTIATION19Asiya Javayant
1043Juan WieserUnited Kingdom2026-05-26Chapman, Ross E Esq NEGOTIATION96Elwin Sharvill
1044Salvatore StockhamRussia2026-05-22Rousseaux, Michael Esq NEW49Xuxue Feng
1045Deepesh ChuiIndia2026-06-05Dorl, James J Esq RENEWAL22Xuxue Feng
1046Clifford RimJapan2026-06-15Chemel, James L Cpa PROPOSAL75Anna Fali
1047Chavez BriddickArgentina2026-06-07Feltz Printing Service NEGOTIATION36Xuxue Feng
1048Wickens NestleAustralia2026-05-27Printing Dimensions QUALIFIED4Asiya Javayant
1049Ashley DoeJapan2026-06-01Buckley Miller Wright QUALIFIED57Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczCanadaStephen Shaw PROPOSAL
Darci PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Johnson SergiIndiaXuxue Feng NEGOTIATION
Maisha RulapaughJapanStephen Shaw UNQUALIFIED
Clifford RimItalyElwin Sharvill UNQUALIFIED
Wickens NestleArgentinaAnna Fali NEGOTIATION
Izzy GarufiBrazilElwin Sharvill NEW
Deepesh ChuiJapanElwin Sharvill RENEWAL
Ivar PaprockiArgentinaIoni Bowcher NEW
Sinclair WaycottSpainAmy Elsner RENEWAL
Leja CaldareraItalyBernardo Dominic QUALIFIED
Morrow RutaCanadaIvan Magalhaes RENEWAL
Tony FollerAustraliaStephen Shaw QUALIFIED
Wickens NestleFranceXuxue Feng PROPOSAL
Chavez BriddickIndiaIoni Bowcher QUALIFIED
Jeanfrancois VenereRussiaXuxue Feng NEGOTIATION
Munro FerenczBrazilIoni Bowcher NEW
Arvin AlbaresArgentinaOnyama Limba NEW
Cody SaylorsSpainAmy Elsner NEW
Julie StensethUnited KingdomIoni Bowcher PROPOSAL
Alejandro PerinUnited KingdomAsiya Javayant QUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher QUALIFIED
Smith GlickCanadaAnna Fali PROPOSAL
Cody SaylorsUnited KingdomAsiya Javayant PROPOSAL
Adams MorascaRussiaXuxue Feng RENEWAL
Munro FerenczArgentinaStephen Shaw RENEWAL
Juan WieserArgentinaBernardo Dominic RENEWAL
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
James ButtAustraliaIvan Magalhaes QUALIFIED
Wickens NestleSpainOnyama Limba NEW
Clifford RimRussiaAmy Elsner UNQUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Juan WieserFranceBernardo Dominic UNQUALIFIED
Mayumi KolmetzBrazilXuxue Feng RENEWAL
Greenwood BologniaArgentinaElwin Sharvill NEGOTIATION
Clifford RimUnited KingdomAmy Elsner RENEWAL
Munro FerenczFranceIvan Magalhaes NEGOTIATION
Claire TollnerJapanOnyama Limba QUALIFIED
Isabel BowleyRussiaAmy Elsner PROPOSAL
Chavez BriddickRussiaAsiya Javayant UNQUALIFIED
Leja CaldareraSpainAmy Elsner RENEWAL
Clifford RimJapanIoni Bowcher NEW
Adams MorascaUnited KingdomXuxue Feng UNQUALIFIED
Stacey MacleadAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereArgentinaElwin Sharvill NEGOTIATION
Kadeem FlosiItalyOnyama Limba UNQUALIFIED
Smith GlickJapanBernardo Dominic PROPOSAL
Salvatore StockhamBrazilIoni Bowcher UNQUALIFIED
Salvatore StockhamRussiaElwin Sharvill NEW
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Frozen Columns
Name
Morrow Ruta
Clifford Rim
Faith Gillian
Octavia Malet
Leja Caldarera
Wickens Nestle
Kaitlin Ostrosky
Aika Inouye
Claire Tollner
Costa Dilliard
Aika Inouye
Stacey Maclead
Faith Gillian
Emily Whobrey
Aruna Figeroa
Deepesh Chui
Leja Caldarera
Jennifer Amigon
Kadeem Flosi
Jeanfrancois Venere
Aruna Figeroa
Jennifer Amigon
Maria Marrier
Costa Dilliard
Silvio Slusarski
Aditya Kusko
Nicolas Iturbide
Jeanfrancois Venere
Deepesh Chui
Stacey Maclead
Maria Marrier
Misaki Royster
Costa Dilliard
Ashley Doe
Mujtaba Nicka
Salvatore Stockham
David Darakjy
Isabel Bowley
Morrow Ruta
Greenwood Bolognia
Octavia Malet
James Butt
Aika Inouye
Adams Morasca
Mujtaba Nicka
Aika Inouye
Morrow Ruta
Juan Wieser
Arvin Albares
Aruna Figeroa
IdCountryDate
1000Argentina2026-06-18
1001India2026-05-29
1002Australia2026-06-09
1003Germany2026-06-07
1004United Kingdom2026-06-03
1005Italy2026-06-01
1006Spain2026-05-25
1007Japan2026-06-16
1008Canada2026-05-20
1009Argentina2026-06-09
1010United Kingdom2026-05-22
1011Japan2026-05-24
1012Germany2026-06-14
1013Brazil2026-06-01
1014Australia2026-05-27
1015Germany2026-05-24
1016Italy2026-05-26
1017India2026-06-04
1018Spain2026-05-20
1019Canada2026-06-04
1020Germany2026-05-26
1021Italy2026-06-12
1022France2026-05-28
1023Italy2026-06-11
1024Canada2026-06-16
1025Brazil2026-06-08
1026India2026-06-09
1027Germany2026-06-17
1028France2026-06-05
1029Japan2026-05-30
1030Germany2026-06-02
1031United Kingdom2026-06-07
1032Russia2026-06-06
1033France2026-05-29
1034Germany2026-05-26
1035France2026-06-17
1036India2026-06-05
1037Italy2026-06-18
1038Germany2026-06-07
1039Spain2026-05-26
1040Russia2026-06-10
1041France2026-06-12
1042Japan2026-05-30
1043India2026-06-05
1044Japan2026-05-23
1045Germany2026-05-22
1046Australia2026-06-03
1047Japan2026-06-16
1048Italy2026-05-22
1049Italy2026-05-26

On-Demand Data

NameIdCountryDate
Adams Morasca1000Spain2026-06-06
Smith Glick1001Germany2026-05-24
Ivar Paprocki1002Russia2026-05-21
David Darakjy1003France2026-06-11
Cody Saylors1004Russia2026-06-07
Costa Dilliard1005Brazil2026-06-10
Tony Foller1006Australia2026-05-31
Izzy Garufi1007Spain2026-05-31
Jones Vocelka1008India2026-06-13
Francesco Shinko1009Japan2026-06-11
Ashley Doe1010Italy2026-05-30
Ivar Paprocki1011Germany2026-05-24
Julie Stenseth1012Germany2026-06-12
Clifford Rim1013Russia2026-06-15
Nicolas Iturbide1014Japan2026-05-23
Jefferson Schemmer1015Argentina2026-06-01
Chavez Briddick1016Australia2026-06-11
Sinclair Waycott1017Russia2026-05-24
Claire Tollner1018United Kingdom2026-06-12
Murillo Malet1019France2026-05-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresSpainIvan Magalhaes QUALIFIED
Stacey MacleadGermanyBernardo Dominic PROPOSAL
Clifford RimBrazilIoni Bowcher NEW
Arvin AlbaresItalyStephen Shaw RENEWAL
Izzy GarufiFranceStephen Shaw RENEWAL
Emily WhobreySpainAnna Fali QUALIFIED
Antonio CaudyCanadaXuxue Feng PROPOSAL
Leon OldroydSpainIoni Bowcher RENEWAL
Jeanfrancois VenereBrazilAmy Elsner RENEWAL
Jefferson SchemmerFranceXuxue Feng QUALIFIED
Tony FollerFranceAsiya Javayant NEGOTIATION
Munro FerenczSpainBernardo Dominic NEGOTIATION
Cody SaylorsFranceAsiya Javayant NEW
Ashley DoeGermanyAsiya Javayant NEW
Johnson SergiArgentinaIoni Bowcher NEGOTIATION
Juan WieserRussiaAsiya Javayant RENEWAL
Nicolas IturbideBrazilStephen Shaw NEW
David DarakjyGermanyElwin Sharvill RENEWAL
Misaki RoysterFranceAsiya Javayant PROPOSAL
Clifford RimAustraliaIoni Bowcher QUALIFIED
Silvio SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Clifford RimCanadaIvan Magalhaes NEGOTIATION
Leon OldroydArgentinaElwin Sharvill QUALIFIED
Izzy GarufiCanadaIoni Bowcher RENEWAL
Greenwood BologniaBrazilAmy Elsner RENEWAL
Antonio CaudyBrazilAsiya Javayant PROPOSAL
Claire TollnerFranceBernardo Dominic UNQUALIFIED
Kaitlin OstroskyIndiaElwin Sharvill NEGOTIATION
Cody SaylorsAustraliaStephen Shaw RENEWAL
James ButtCanadaAsiya Javayant UNQUALIFIED
Murillo MaletCanadaBernardo Dominic RENEWAL
Smith GlickArgentinaXuxue Feng PROPOSAL
Nicolas IturbideUnited KingdomXuxue Feng UNQUALIFIED
Faith GillianFranceXuxue Feng NEW
Alejandro PerinRussiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyXuxue Feng NEW
Jeanfrancois VenereJapanElwin Sharvill RENEWAL
Cody SaylorsAustraliaBernardo Dominic RENEWAL
Aditya KuskoCanadaAnna Fali RENEWAL
Arvin AlbaresUnited KingdomAmy Elsner 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>