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
Tony FollerAustraliaXuxue Feng UNQUALIFIED
Johnson SergiUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo GauchoUnited KingdomOnyama Limba QUALIFIED
Smith GlickGermanyIoni Bowcher QUALIFIED
Kaitlin OstroskyFranceIvan Magalhaes RENEWAL
Costa DilliardJapanIoni Bowcher NEW
Aruna FigeroaGermanyXuxue Feng QUALIFIED
Arvin AlbaresJapanBernardo Dominic NEGOTIATION
Greenwood BologniaArgentinaIoni Bowcher QUALIFIED
Clifford RimIndiaIvan Magalhaes UNQUALIFIED
Ashley DoeRussiaXuxue Feng NEGOTIATION
Adams MorascaJapanIoni Bowcher NEW
Clifford RimFranceStephen Shaw NEW
Faith GillianGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaItalyAnna Fali QUALIFIED
Tony FollerCanadaIvan Magalhaes QUALIFIED
Leon OldroydAustraliaAnna Fali PROPOSAL
Jeanfrancois VenereCanadaStephen Shaw NEW
Claire TollnerFranceStephen Shaw PROPOSAL
James ButtBrazilAnna Fali PROPOSAL
Mujtaba NickaAustraliaAmy Elsner RENEWAL
Ricardo GauchoArgentinaXuxue Feng QUALIFIED
Jennifer AmigonGermanyIoni Bowcher NEGOTIATION
Johnson SergiGermanyElwin Sharvill PROPOSAL
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Stacey MacleadRussiaAnna Fali QUALIFIED
Tony FollerFranceOnyama Limba QUALIFIED
Rodrigues CampainSpainXuxue Feng UNQUALIFIED
Murillo MaletCanadaAmy Elsner RENEWAL
Johnson SergiSpainAmy Elsner RENEWAL
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Juan WieserGermanyAmy Elsner PROPOSAL
Ashley DoeSpainXuxue Feng QUALIFIED
Salvatore StockhamSpainStephen Shaw NEGOTIATION
Mujtaba NickaItalyAmy Elsner UNQUALIFIED
Faith GillianAustraliaAmy Elsner QUALIFIED
Ashley DoeCanadaXuxue Feng NEGOTIATION
Munro FerenczGermanyIvan Magalhaes PROPOSAL
Sinclair WaycottJapanBernardo Dominic NEGOTIATION
Ivar PaprockiSpainIvan Magalhaes PROPOSAL
Smith GlickCanadaElwin Sharvill UNQUALIFIED
Greenwood BologniaBrazilIoni Bowcher UNQUALIFIED
Salvatore StockhamSpainAnna Fali UNQUALIFIED
Darci PoquetteAustraliaAnna Fali PROPOSAL
Claire TollnerGermanyBernardo Dominic UNQUALIFIED
Adams MorascaGermanyIvan Magalhaes PROPOSAL
Mayumi KolmetzSpainOnyama Limba QUALIFIED
Greenwood BologniaIndiaXuxue Feng NEGOTIATION
Jones VocelkaArgentinaAsiya Javayant NEW
Misaki RoysterUnited KingdomIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyAustraliaElwin Sharvill NEW
Munro FerenczGermanyBernardo Dominic NEW
Johnson SergiFranceOnyama Limba UNQUALIFIED
Izzy GarufiItalyAmy Elsner UNQUALIFIED
Maria MarrierGermanyOnyama Limba NEGOTIATION
Misaki RoysterFranceOnyama Limba NEW
Mayumi KolmetzFranceStephen Shaw PROPOSAL
Mayumi KolmetzSpainBernardo Dominic NEW
Alejandro PerinRussiaElwin Sharvill QUALIFIED
Greenwood BologniaUnited KingdomAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadBrazil2026-06-08Benton, John B Jr UNQUALIFIED80Asiya Javayant
1001Claire TollnerIndia2026-06-09Feiner Bros RENEWAL57Amy Elsner
1002Greenwood BologniaItaly2026-05-19Truhlar And Truhlar Attys RENEWAL30Anna Fali
1003Morrow RutaGermany2026-06-02Dorl, James J Esq PROPOSAL18Stephen Shaw
1004Chavez BriddickUnited Kingdom2026-05-20Chapman, Ross E Esq NEGOTIATION80Elwin Sharvill
1005Johnson SergiGermany2026-05-21Printing Dimensions NEW32Amy Elsner
1006Deepesh ChuiFrance2026-06-12Rangoni Of Florence QUALIFIED17Asiya Javayant
1007Francesco ShinkoCanada2026-05-20Chapman, Ross E Esq UNQUALIFIED94Stephen Shaw
1008David DarakjyArgentina2026-05-14Chapman, Ross E Esq QUALIFIED57Anna Fali
1009Silvio SlusarskiBrazil2026-05-19Printing Dimensions UNQUALIFIED50Stephen Shaw
1010Leja CaldareraFrance2026-06-11Truhlar And Truhlar Attys QUALIFIED73Amy Elsner
1011Nicolas IturbideRussia2026-05-16Morlong Associates RENEWAL83Anna Fali
1012Maria MarrierArgentina2026-05-17King, Christopher A Esq UNQUALIFIED74Stephen Shaw
1013Rodrigues CampainSpain2026-05-22Chapman, Ross E Esq NEW67Xuxue Feng
1014Isabel BowleyFrance2026-05-31Truhlar And Truhlar Attys UNQUALIFIED20Elwin Sharvill
1015Costa DilliardItaly2026-05-22Benton, John B Jr UNQUALIFIED50Anna Fali
1016Sinclair WaycottFrance2026-06-04Feltz Printing Service NEW35Amy Elsner
1017Greenwood BologniaGermany2026-06-07Feltz Printing Service QUALIFIED24Anna Fali
1018Darci PoquetteJapan2026-06-01Commercial Press RENEWAL21Bernardo Dominic
1019Salvatore StockhamJapan2026-05-14Chapman, Ross E Esq QUALIFIED81Asiya Javayant
1020Sinclair WaycottAustralia2026-05-30Rousseaux, Michael Esq UNQUALIFIED39Ivan Magalhaes
1021Cody SaylorsFrance2026-05-24Commercial Press NEGOTIATION58Anna Fali
1022Izzy GarufiGermany2026-06-02Chemel, James L Cpa PROPOSAL36Ioni Bowcher
1023Leon OldroydBrazil2026-06-05Chapman, Ross E Esq PROPOSAL29Ioni Bowcher
1024Greenwood BologniaArgentina2026-06-03Morlong Associates QUALIFIED20Elwin Sharvill
1025Julie StensethUnited Kingdom2026-06-02Dorl, James J Esq PROPOSAL77Ioni Bowcher
1026Wickens NestleGermany2026-05-28Chanay, Jeffrey A Esq NEGOTIATION96Anna Fali
1027Salvatore StockhamBrazil2026-05-21Commercial Press RENEWAL87Bernardo Dominic
1028Izzy GarufiGermany2026-05-23Feiner Bros QUALIFIED70Bernardo Dominic
1029Misaki RoysterIndia2026-06-10Buckley Miller Wright QUALIFIED88Stephen Shaw
1030Mayumi KolmetzSpain2026-06-02Truhlar And Truhlar Attys UNQUALIFIED64Onyama Limba
1031Cody SaylorsFrance2026-05-20Rousseaux, Michael Esq QUALIFIED89Bernardo Dominic
1032Cody SaylorsRussia2026-06-01Benton, John B Jr NEGOTIATION75Anna Fali
1033Mujtaba NickaFrance2026-06-09Chemel, James L Cpa UNQUALIFIED46Ioni Bowcher
1034Morrow RutaArgentina2026-05-25Truhlar And Truhlar Attys NEW11Anna Fali
1035Jennifer AmigonUnited Kingdom2026-06-08King, Christopher A Esq NEW49Onyama Limba
1036Jefferson SchemmerRussia2026-05-17Rousseaux, Michael Esq PROPOSAL76Xuxue Feng
1037Kaitlin OstroskyBrazil2026-05-28Commercial Press QUALIFIED2Anna Fali
1038Johnson SergiJapan2026-06-10Rangoni Of Florence QUALIFIED64Asiya Javayant
1039Maisha RulapaughJapan2026-05-22Dorl, James J Esq NEW52Bernardo Dominic
1040Emily WhobreyAustralia2026-06-03Dorl, James J Esq QUALIFIED92Amy Elsner
1041Isabel BowleyFrance2026-05-18Rangoni Of Florence QUALIFIED99Stephen Shaw
1042Ivar PaprockiJapan2026-06-02Chapman, Ross E Esq RENEWAL24Asiya Javayant
1043Ricardo GauchoJapan2026-05-14Printing Dimensions PROPOSAL61Asiya Javayant
1044Ivar PaprockiIndia2026-06-08Morlong Associates QUALIFIED11Amy Elsner
1045Smith GlickIndia2026-05-23Feltz Printing Service UNQUALIFIED14Xuxue Feng
1046Kadeem FlosiFrance2026-06-05Feiner Bros UNQUALIFIED0Anna Fali
1047Alejandro PerinBrazil2026-05-18Morlong Associates QUALIFIED90Bernardo Dominic
1048Maria MarrierSpain2026-05-16Printing Dimensions PROPOSAL16Bernardo Dominic
1049Kadeem FlosiJapan2026-05-21Rangoni Of Florence NEW50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereFranceIoni Bowcher PROPOSAL
Johnson SergiUnited KingdomAnna Fali QUALIFIED
Smith GlickItalyAmy Elsner RENEWAL
Munro FerenczGermanyIoni Bowcher PROPOSAL
Izzy GarufiSpainAnna Fali RENEWAL
Izzy GarufiGermanyAnna Fali RENEWAL
Adams MorascaRussiaStephen Shaw RENEWAL
Stacey MacleadBrazilXuxue Feng PROPOSAL
Stacey MacleadAustraliaElwin Sharvill NEW
David DarakjyGermanyAsiya Javayant RENEWAL
Cody SaylorsCanadaAsiya Javayant RENEWAL
David DarakjySpainAnna Fali RENEWAL
Leja CaldareraFranceStephen Shaw RENEWAL
Isabel BowleyCanadaAsiya Javayant NEW
Maisha RulapaughSpainAsiya Javayant PROPOSAL
Adams MorascaSpainIvan Magalhaes PROPOSAL
Aruna FigeroaSpainBernardo Dominic NEGOTIATION
Morrow RutaCanadaBernardo Dominic NEW
Sinclair WaycottAustraliaAsiya Javayant PROPOSAL
Salvatore StockhamSpainIoni Bowcher RENEWAL
Tony FollerAustraliaAnna Fali NEW
Deepesh ChuiJapanStephen Shaw NEGOTIATION
Isabel BowleyBrazilAnna Fali UNQUALIFIED
Alejandro PerinAustraliaAnna Fali PROPOSAL
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Jeanfrancois VenereCanadaIvan Magalhaes UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill PROPOSAL
Munro FerenczBrazilElwin Sharvill NEGOTIATION
Chavez BriddickItalyIvan Magalhaes RENEWAL
Octavia MaletAustraliaIoni Bowcher UNQUALIFIED
Chavez BriddickFranceIoni Bowcher PROPOSAL
Clifford RimCanadaStephen Shaw PROPOSAL
Nicolas IturbideCanadaAnna Fali PROPOSAL
Maria MarrierAustraliaIoni Bowcher PROPOSAL
Murillo MaletJapanAmy Elsner PROPOSAL
Salvatore StockhamJapanAsiya Javayant RENEWAL
Faith GillianArgentinaAmy Elsner PROPOSAL
David DarakjyArgentinaBernardo Dominic RENEWAL
Stacey MacleadAustraliaXuxue Feng RENEWAL
Antonio CaudyCanadaOnyama Limba RENEWAL
Tony FollerIndiaBernardo Dominic UNQUALIFIED
Mujtaba NickaAustraliaXuxue Feng RENEWAL
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
David DarakjyCanadaXuxue Feng RENEWAL
Ashley DoeSpainIoni Bowcher NEW
Leon OldroydFranceBernardo Dominic NEGOTIATION
Darci PoquetteRussiaStephen Shaw PROPOSAL
Smith GlickItalyIvan Magalhaes NEW
Darci PoquetteSpainStephen Shaw UNQUALIFIED
Greenwood BologniaCanadaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Claire Tollner
Jeanfrancois Venere
Munro Ferencz
Clifford Rim
Maria Marrier
Kaitlin Ostrosky
Ashley Doe
Julie Stenseth
Johnson Sergi
Adams Morasca
Antonio Caudy
Cody Saylors
Aruna Figeroa
Izzy Garufi
Greenwood Bolognia
Adams Morasca
Emily Whobrey
Tony Foller
Sinclair Waycott
Julie Stenseth
Antonio Caudy
Isabel Bowley
Darci Poquette
Arvin Albares
Stacey Maclead
Sinclair Waycott
Arvin Albares
Tony Foller
Emily Whobrey
Aditya Kusko
Johnson Sergi
Misaki Royster
Leon Oldroyd
Maria Marrier
Isabel Bowley
Sinclair Waycott
Julie Stenseth
Claire Tollner
Ricardo Gaucho
Mujtaba Nicka
Cody Saylors
Leon Oldroyd
Alejandro Perin
Jeanfrancois Venere
Misaki Royster
Emily Whobrey
Jennifer Amigon
Maisha Rulapaugh
Maria Marrier
Ivar Paprocki
IdCountryDate
1000United Kingdom2026-05-25
1001Russia2026-05-23
1002Brazil2026-06-03
1003Canada2026-05-15
1004France2026-06-06
1005India2026-06-06
1006Spain2026-05-15
1007France2026-05-20
1008Japan2026-06-11
1009India2026-05-16
1010France2026-05-25
1011Japan2026-06-12
1012Japan2026-06-12
1013Japan2026-06-10
1014India2026-06-01
1015Russia2026-05-15
1016United Kingdom2026-05-17
1017Brazil2026-05-23
1018India2026-05-31
1019Germany2026-05-26
1020Germany2026-06-03
1021Canada2026-05-30
1022India2026-05-24
1023Spain2026-05-26
1024United Kingdom2026-06-08
1025Brazil2026-05-26
1026Germany2026-05-26
1027Canada2026-06-01
1028India2026-05-29
1029Germany2026-06-09
1030Brazil2026-05-25
1031India2026-05-28
1032India2026-05-19
1033Japan2026-06-03
1034Italy2026-06-03
1035United Kingdom2026-06-12
1036Argentina2026-05-29
1037Brazil2026-06-06
1038Brazil2026-06-07
1039United Kingdom2026-05-31
1040Italy2026-05-19
1041Argentina2026-06-05
1042Argentina2026-05-26
1043Canada2026-06-07
1044Spain2026-06-09
1045Russia2026-06-11
1046Brazil2026-05-24
1047France2026-05-24
1048India2026-06-05
1049Canada2026-05-18

On-Demand Data

NameIdCountryDate
Aika Inouye1000United Kingdom2026-05-15
Juan Wieser1001Australia2026-06-08
Clifford Rim1002Germany2026-05-27
Kaitlin Ostrosky1003United Kingdom2026-05-19
Darci Poquette1004Brazil2026-06-10
Emily Whobrey1005Germany2026-05-17
Maria Marrier1006Canada2026-06-06
Clifford Rim1007Argentina2026-05-17
Johnson Sergi1008Japan2026-05-29
Smith Glick1009Brazil2026-05-29
Johnson Sergi1010Canada2026-06-09
Izzy Garufi1011Spain2026-05-22
Morrow Ruta1012Russia2026-05-22
Octavia Malet1013Japan2026-06-04
Nicolas Iturbide1014Germany2026-06-09
James Butt1015Spain2026-05-29
Ivar Paprocki1016India2026-06-11
David Darakjy1017India2026-06-12
Morrow Ruta1018Australia2026-05-25
Adams Morasca1019Germany2026-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyJapanBernardo Dominic QUALIFIED
Wickens NestleItalyAnna Fali NEGOTIATION
Tony FollerFranceIoni Bowcher QUALIFIED
Wickens NestleArgentinaOnyama Limba RENEWAL
Jennifer AmigonBrazilAnna Fali NEW
Wickens NestleGermanyStephen Shaw RENEWAL
Jones VocelkaSpainElwin Sharvill RENEWAL
Aika InouyeArgentinaBernardo Dominic RENEWAL
James ButtGermanyAsiya Javayant NEGOTIATION
Ivar PaprockiUnited KingdomIoni Bowcher RENEWAL
Jones VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Mujtaba NickaItalyBernardo Dominic NEGOTIATION
Aruna FigeroaBrazilXuxue Feng NEW
Darci PoquetteAustraliaOnyama Limba QUALIFIED
Rodrigues CampainArgentinaOnyama Limba NEW
Ashley DoeJapanIoni Bowcher PROPOSAL
Kaitlin OstroskyIndiaAmy Elsner NEGOTIATION
Costa DilliardAustraliaOnyama Limba QUALIFIED
Aruna FigeroaRussiaAnna Fali NEW
Octavia MaletAustraliaOnyama Limba QUALIFIED
Emily WhobreyArgentinaAmy Elsner QUALIFIED
Leja CaldareraUnited KingdomOnyama Limba QUALIFIED
Francesco ShinkoRussiaStephen Shaw PROPOSAL
Aditya KuskoGermanyElwin Sharvill RENEWAL
Misaki RoysterJapanXuxue Feng RENEWAL
Murillo MaletCanadaXuxue Feng NEW
Nicolas IturbideCanadaAsiya Javayant QUALIFIED
Octavia MaletItalyXuxue Feng PROPOSAL
Sinclair WaycottRussiaAmy Elsner NEGOTIATION
Silvio SlusarskiJapanXuxue Feng UNQUALIFIED
Maisha RulapaughGermanyXuxue Feng NEW
Aruna FigeroaJapanOnyama Limba NEW
Murillo MaletBrazilStephen Shaw UNQUALIFIED
Darci PoquetteUnited KingdomIoni Bowcher RENEWAL
Deepesh ChuiItalyStephen Shaw NEW
Chavez BriddickArgentinaXuxue Feng RENEWAL
Salvatore StockhamGermanyAnna Fali PROPOSAL
Clifford RimAustraliaBernardo Dominic PROPOSAL
Isabel BowleySpainBernardo Dominic NEGOTIATION
Aditya KuskoSpainElwin Sharvill NEW

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