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
Nicolas IturbideGermanyAmy Elsner QUALIFIED
Arvin AlbaresArgentinaAsiya Javayant PROPOSAL
Costa DilliardGermanyBernardo Dominic NEW
Francesco ShinkoUnited KingdomIoni Bowcher NEW
Jones VocelkaItalyBernardo Dominic NEW
Munro FerenczFranceStephen Shaw QUALIFIED
Morrow RutaAustraliaAmy Elsner NEW
Alejandro PerinAustraliaAmy Elsner UNQUALIFIED
James ButtArgentinaElwin Sharvill PROPOSAL
James ButtGermanyAnna Fali QUALIFIED
Munro FerenczBrazilOnyama Limba NEGOTIATION
Misaki RoysterAustraliaStephen Shaw PROPOSAL
Misaki RoysterArgentinaOnyama Limba PROPOSAL
Silvio SlusarskiBrazilIoni Bowcher NEW
Tony FollerGermanyOnyama Limba NEW
Emily WhobreyArgentinaAnna Fali RENEWAL
Octavia MaletItalyIvan Magalhaes UNQUALIFIED
Kadeem FlosiJapanElwin Sharvill UNQUALIFIED
Jefferson SchemmerJapanXuxue Feng PROPOSAL
Tony FollerGermanyXuxue Feng NEW
Arvin AlbaresBrazilBernardo Dominic NEGOTIATION
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Costa DilliardIndiaOnyama Limba NEW
Silvio SlusarskiJapanBernardo Dominic PROPOSAL
Cody SaylorsCanadaAmy Elsner RENEWAL
Ashley DoeSpainAnna Fali NEW
Johnson SergiSpainIoni Bowcher PROPOSAL
David DarakjyAustraliaAmy Elsner UNQUALIFIED
Octavia MaletArgentinaAmy Elsner UNQUALIFIED
Jones VocelkaRussiaElwin Sharvill PROPOSAL
Claire TollnerFranceIvan Magalhaes NEW
Maria MarrierJapanStephen Shaw PROPOSAL
Murillo MaletSpainAnna Fali PROPOSAL
Costa DilliardArgentinaXuxue Feng NEGOTIATION
Chavez BriddickIndiaIoni Bowcher RENEWAL
Aika InouyeFranceAnna Fali QUALIFIED
Mujtaba NickaArgentinaAsiya Javayant QUALIFIED
Mujtaba NickaIndiaStephen Shaw NEW
Jeanfrancois VenereBrazilIoni Bowcher NEW
Sinclair WaycottBrazilIvan Magalhaes QUALIFIED
Misaki RoysterUnited KingdomIvan Magalhaes NEW
Greenwood BologniaIndiaBernardo Dominic RENEWAL
Munro FerenczGermanyStephen Shaw QUALIFIED
Arvin AlbaresFranceStephen Shaw QUALIFIED
Tony FollerCanadaAmy Elsner PROPOSAL
Rodrigues CampainSpainAnna Fali NEW
Leja CaldareraUnited KingdomStephen Shaw NEW
Morrow RutaCanadaAsiya Javayant UNQUALIFIED
Darci PoquetteBrazilIvan Magalhaes NEW
Mayumi KolmetzJapanBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Claire TollnerItalyIvan Magalhaes NEGOTIATION
Cody SaylorsFranceStephen Shaw PROPOSAL
Rodrigues CampainSpainAmy Elsner QUALIFIED
Chavez BriddickAustraliaIoni Bowcher QUALIFIED
Ashley DoeGermanyAnna Fali NEW
Chavez BriddickJapanAmy Elsner UNQUALIFIED
Maisha RulapaughBrazilIoni Bowcher NEW
Aika InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Ashley DoeFranceAsiya Javayant RENEWAL
Silvio SlusarskiUnited KingdomAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaGermany2026-04-14Morlong Associates QUALIFIED24Ivan Magalhaes
1001Darci PoquetteJapan2026-04-17Morlong Associates NEGOTIATION9Ivan Magalhaes
1002Murillo MaletJapan2026-04-03Truhlar And Truhlar Attys NEW56Ivan Magalhaes
1003Leja CaldareraIndia2026-04-11Feltz Printing Service QUALIFIED46Xuxue Feng
1004Leon OldroydRussia2026-04-22Chapman, Ross E Esq QUALIFIED99Asiya Javayant
1005Smith GlickJapan2026-04-10Feiner Bros RENEWAL40Elwin Sharvill
1006Izzy GarufiItaly2026-04-07Rangoni Of Florence UNQUALIFIED32Ivan Magalhaes
1007Chavez BriddickGermany2026-03-31Dorl, James J Esq RENEWAL50Bernardo Dominic
1008Ivar PaprockiAustralia2026-04-07Commercial Press QUALIFIED24Amy Elsner
1009Rodrigues CampainUnited Kingdom2026-04-02Feltz Printing Service PROPOSAL99Ivan Magalhaes
1010David DarakjyIndia2026-04-03Chemel, James L Cpa QUALIFIED67Onyama Limba
1011Darci PoquetteIndia2026-04-10Rousseaux, Michael Esq UNQUALIFIED21Amy Elsner
1012Mujtaba NickaAustralia2026-04-01Chapman, Ross E Esq QUALIFIED35Amy Elsner
1013Nicolas IturbideSpain2026-04-06Dorl, James J Esq UNQUALIFIED1Ivan Magalhaes
1014Wickens NestleIndia2026-04-12Commercial Press RENEWAL46Asiya Javayant
1015Rodrigues CampainAustralia2026-04-20Chapman, Ross E Esq NEGOTIATION86Elwin Sharvill
1016Jennifer AmigonGermany2026-04-17Commercial Press PROPOSAL33Amy Elsner
1017Francesco ShinkoBrazil2026-04-06Feiner Bros RENEWAL40Bernardo Dominic
1018Aditya KuskoArgentina2026-04-23Buckley Miller Wright PROPOSAL52Ivan Magalhaes
1019Nicolas IturbideFrance2026-04-20Rousseaux, Michael Esq RENEWAL75Bernardo Dominic
1020Darci PoquetteCanada2026-04-10Benton, John B Jr QUALIFIED28Asiya Javayant
1021Ricardo GauchoCanada2026-04-20Rangoni Of Florence RENEWAL24Ioni Bowcher
1022Morrow RutaFrance2026-04-23Dorl, James J Esq NEGOTIATION27Xuxue Feng
1023Johnson SergiIndia2026-03-26Chapman, Ross E Esq PROPOSAL65Bernardo Dominic
1024Rodrigues CampainUnited Kingdom2026-04-24Dorl, James J Esq NEGOTIATION83Anna Fali
1025Costa DilliardBrazil2026-04-22Dorl, James J Esq PROPOSAL18Stephen Shaw
1026Nicolas IturbideCanada2026-04-16Printing Dimensions NEW93Ioni Bowcher
1027Isabel BowleyGermany2026-04-12Truhlar And Truhlar Attys NEW44Onyama Limba
1028Tony FollerUnited Kingdom2026-04-07Commercial Press QUALIFIED6Asiya Javayant
1029David DarakjySpain2026-04-19Commercial Press PROPOSAL38Anna Fali
1030Sinclair WaycottBrazil2026-04-03Rangoni Of Florence NEW85Ivan Magalhaes
1031Clifford RimArgentina2026-04-06Morlong Associates QUALIFIED11Ioni Bowcher
1032Salvatore StockhamFrance2026-03-28Morlong Associates PROPOSAL74Ivan Magalhaes
1033James ButtFrance2026-03-31Buckley Miller Wright PROPOSAL61Elwin Sharvill
1034Mujtaba NickaUnited Kingdom2026-03-26Chanay, Jeffrey A Esq RENEWAL79Ioni Bowcher
1035Maria MarrierCanada2026-04-12Rangoni Of Florence NEW87Anna Fali
1036Johnson SergiArgentina2026-04-24Rangoni Of Florence UNQUALIFIED67Onyama Limba
1037Antonio CaudyUnited Kingdom2026-03-26Buckley Miller Wright QUALIFIED46Ivan Magalhaes
1038Silvio SlusarskiItaly2026-04-16Feiner Bros NEGOTIATION29Stephen Shaw
1039Deepesh ChuiItaly2026-04-06Printing Dimensions PROPOSAL81Bernardo Dominic
1040Cody SaylorsAustralia2026-04-18Chanay, Jeffrey A Esq NEW59Amy Elsner
1041Misaki RoysterIndia2026-04-02Morlong Associates NEGOTIATION84Xuxue Feng
1042Antonio CaudyRussia2026-04-18Commercial Press RENEWAL60Ivan Magalhaes
1043Claire TollnerIndia2026-04-16Rousseaux, Michael Esq PROPOSAL28Ioni Bowcher
1044Tony FollerIndia2026-03-29Feiner Bros PROPOSAL3Bernardo Dominic
1045Aika InouyeFrance2026-04-24Feltz Printing Service QUALIFIED50Ioni Bowcher
1046Ashley DoeRussia2026-04-11Truhlar And Truhlar Attys UNQUALIFIED43Amy Elsner
1047Greenwood BologniaSpain2026-03-27Chemel, James L Cpa UNQUALIFIED25Ioni Bowcher
1048Jeanfrancois VenereRussia2026-04-20Chemel, James L Cpa UNQUALIFIED21Asiya Javayant
1049Izzy GarufiArgentina2026-04-20King, Christopher A Esq RENEWAL14Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Antonio CaudySpainAmy Elsner NEGOTIATION
Emily WhobreyGermanyXuxue Feng QUALIFIED
Ashley DoeArgentinaXuxue Feng NEW
Jefferson SchemmerCanadaXuxue Feng RENEWAL
Jeanfrancois VenereJapanAmy Elsner NEW
Aruna FigeroaGermanyIvan Magalhaes UNQUALIFIED
Tony FollerBrazilBernardo Dominic NEW
Wickens NestleArgentinaElwin Sharvill PROPOSAL
Jones VocelkaIndiaAmy Elsner QUALIFIED
Darci PoquetteItalyAmy Elsner NEGOTIATION
Misaki RoysterItalyAnna Fali RENEWAL
Maisha RulapaughUnited KingdomIvan Magalhaes QUALIFIED
Arvin AlbaresGermanyAmy Elsner UNQUALIFIED
Alejandro PerinBrazilIoni Bowcher QUALIFIED
Smith GlickAustraliaElwin Sharvill UNQUALIFIED
Leon OldroydCanadaAsiya Javayant RENEWAL
Mayumi KolmetzRussiaXuxue Feng RENEWAL
David DarakjyItalyAnna Fali RENEWAL
Sinclair WaycottItalyBernardo Dominic NEW
Rodrigues CampainGermanyAmy Elsner PROPOSAL
Arvin AlbaresCanadaIoni Bowcher NEGOTIATION
James ButtIndiaAmy Elsner QUALIFIED
Aika InouyeArgentinaStephen Shaw UNQUALIFIED
Salvatore StockhamFranceIoni Bowcher RENEWAL
Clifford RimGermanyAnna Fali RENEWAL
Leon OldroydBrazilAsiya Javayant NEW
Antonio CaudyCanadaOnyama Limba RENEWAL
Nicolas IturbideGermanyIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaAmy Elsner PROPOSAL
Jefferson SchemmerUnited KingdomAnna Fali RENEWAL
Stacey MacleadItalyAsiya Javayant NEW
Clifford RimItalyOnyama Limba UNQUALIFIED
Faith GillianIndiaOnyama Limba NEGOTIATION
Wickens NestleFranceAnna Fali RENEWAL
Stacey MacleadSpainXuxue Feng NEGOTIATION
Claire TollnerArgentinaXuxue Feng UNQUALIFIED
Jones VocelkaSpainElwin Sharvill NEW
Octavia MaletItalyXuxue Feng NEW
Ivar PaprockiBrazilIvan Magalhaes RENEWAL
Claire TollnerGermanyAnna Fali NEW
Clifford RimArgentinaElwin Sharvill NEGOTIATION
Jones VocelkaJapanIoni Bowcher RENEWAL
Sinclair WaycottGermanyBernardo Dominic RENEWAL
Salvatore StockhamFranceIoni Bowcher PROPOSAL
Deepesh ChuiRussiaIoni Bowcher UNQUALIFIED
Aruna FigeroaArgentinaAmy Elsner UNQUALIFIED
Leja CaldareraArgentinaAnna Fali NEW
Izzy GarufiAustraliaBernardo Dominic PROPOSAL
Jones VocelkaArgentinaAnna Fali RENEWAL
Aditya KuskoFranceXuxue Feng RENEWAL
Frozen Columns
Name
Salvatore Stockham
Tony Foller
Stacey Maclead
Cody Saylors
Arvin Albares
Maria Marrier
Juan Wieser
Jefferson Schemmer
Isabel Bowley
Silvio Slusarski
Munro Ferencz
Leon Oldroyd
Maria Marrier
Ashley Doe
Claire Tollner
Antonio Caudy
James Butt
Octavia Malet
Jeanfrancois Venere
Ricardo Gaucho
Stacey Maclead
Antonio Caudy
Emily Whobrey
Jennifer Amigon
Mayumi Kolmetz
Leja Caldarera
Emily Whobrey
Silvio Slusarski
Jeanfrancois Venere
Nicolas Iturbide
Johnson Sergi
Antonio Caudy
Chavez Briddick
Arvin Albares
Aika Inouye
Leon Oldroyd
Ricardo Gaucho
Adams Morasca
Murillo Malet
Aditya Kusko
Clifford Rim
Stacey Maclead
Chavez Briddick
Munro Ferencz
Chavez Briddick
Johnson Sergi
Faith Gillian
Leon Oldroyd
Mayumi Kolmetz
Johnson Sergi
IdCountryDate
1000Japan2026-04-13
1001Argentina2026-04-16
1002Brazil2026-04-23
1003Italy2026-04-18
1004Canada2026-04-07
1005Canada2026-04-14
1006Argentina2026-04-11
1007Brazil2026-03-27
1008Japan2026-04-21
1009Japan2026-04-17
1010France2026-04-14
1011United Kingdom2026-04-20
1012Brazil2026-04-14
1013India2026-04-17
1014France2026-03-26
1015Russia2026-04-06
1016Brazil2026-04-01
1017Russia2026-03-27
1018Spain2026-04-17
1019Japan2026-04-02
1020Canada2026-04-15
1021Australia2026-03-31
1022India2026-03-30
1023Brazil2026-04-01
1024Italy2026-04-14
1025India2026-03-28
1026Spain2026-03-28
1027Australia2026-04-12
1028Germany2026-04-14
1029India2026-04-09
1030Germany2026-04-07
1031Canada2026-04-01
1032Russia2026-03-29
1033Australia2026-04-07
1034United Kingdom2026-04-15
1035Russia2026-03-29
1036Germany2026-03-26
1037Canada2026-03-31
1038Japan2026-04-13
1039Italy2026-04-07
1040Canada2026-04-19
1041Brazil2026-03-27
1042United Kingdom2026-03-28
1043Italy2026-04-17
1044Spain2026-04-13
1045Russia2026-03-28
1046Italy2026-04-14
1047India2026-03-27
1048Australia2026-04-15
1049Japan2026-04-13

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Spain2026-03-27
Greenwood Bolognia1001Russia2026-04-03
Sinclair Waycott1002Brazil2026-03-27
Clifford Rim1003Canada2026-04-09
Misaki Royster1004Italy2026-04-24
Izzy Garufi1005Russia2026-04-15
James Butt1006Canada2026-04-16
Mujtaba Nicka1007Argentina2026-04-20
Ivar Paprocki1008Russia2026-04-12
Kadeem Flosi1009Australia2026-03-30
Costa Dilliard1010Spain2026-03-26
Chavez Briddick1011Australia2026-04-05
Darci Poquette1012France2026-04-14
Mujtaba Nicka1013United Kingdom2026-03-29
Salvatore Stockham1014Argentina2026-04-16
Aika Inouye1015Brazil2026-04-04
Greenwood Bolognia1016Australia2026-04-12
Jeanfrancois Venere1017Italy2026-03-26
Chavez Briddick1018India2026-04-20
Morrow Ruta1019India2026-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiFranceIoni Bowcher RENEWAL
Cody SaylorsArgentinaIoni Bowcher UNQUALIFIED
Emily WhobreyFranceIoni Bowcher RENEWAL
Kadeem FlosiUnited KingdomBernardo Dominic RENEWAL
Murillo MaletGermanyIoni Bowcher RENEWAL
Aditya KuskoIndiaOnyama Limba NEGOTIATION
Aika InouyeSpainIvan Magalhaes PROPOSAL
Salvatore StockhamJapanXuxue Feng NEGOTIATION
Jones VocelkaItalyAmy Elsner UNQUALIFIED
Aruna FigeroaUnited KingdomAnna Fali NEW
Jones VocelkaGermanyXuxue Feng NEGOTIATION
Kadeem FlosiSpainAmy Elsner QUALIFIED
Salvatore StockhamBrazilBernardo Dominic RENEWAL
Aditya KuskoIndiaBernardo Dominic NEGOTIATION
Kadeem FlosiArgentinaAsiya Javayant PROPOSAL
Jennifer AmigonSpainAsiya Javayant RENEWAL
Leja CaldareraArgentinaAnna Fali RENEWAL
Munro FerenczBrazilAmy Elsner PROPOSAL
Aruna FigeroaFranceIoni Bowcher PROPOSAL
Salvatore StockhamAustraliaBernardo Dominic NEW
Munro FerenczFranceBernardo Dominic NEGOTIATION
Claire TollnerJapanXuxue Feng PROPOSAL
Tony FollerItalyElwin Sharvill NEGOTIATION
Chavez BriddickAustraliaOnyama Limba NEGOTIATION
Ashley DoeGermanyIvan Magalhaes NEW
Jefferson SchemmerItalyAmy Elsner UNQUALIFIED
Emily WhobreyBrazilIoni Bowcher NEW
Nicolas IturbideItalyStephen Shaw NEW
Stacey MacleadAustraliaAmy Elsner NEW
Jennifer AmigonArgentinaAnna Fali QUALIFIED
Maria MarrierUnited KingdomAmy Elsner UNQUALIFIED
James ButtIndiaElwin Sharvill NEW
Arvin AlbaresIndiaStephen Shaw NEGOTIATION
Nicolas IturbideAustraliaIoni Bowcher PROPOSAL
Isabel BowleyItalyElwin Sharvill RENEWAL
Darci PoquetteCanadaIoni Bowcher UNQUALIFIED
David DarakjyCanadaOnyama Limba NEGOTIATION
Kaitlin OstroskySpainOnyama Limba NEW
Wickens NestleItalyAnna Fali NEGOTIATION
Octavia MaletCanadaOnyama Limba UNQUALIFIED

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