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
Kaitlin OstroskyAustraliaBernardo Dominic NEW
Faith GillianRussiaAmy Elsner NEW
Johnson SergiArgentinaIoni Bowcher PROPOSAL
Aditya KuskoBrazilIoni Bowcher RENEWAL
Emily WhobreyCanadaOnyama Limba RENEWAL
Maisha RulapaughSpainIvan Magalhaes QUALIFIED
Clifford RimFranceAnna Fali UNQUALIFIED
James ButtGermanyStephen Shaw PROPOSAL
Wickens NestleAustraliaBernardo Dominic PROPOSAL
Octavia MaletJapanIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanIoni Bowcher RENEWAL
Salvatore StockhamAustraliaAnna Fali NEGOTIATION
Deepesh ChuiJapanAmy Elsner UNQUALIFIED
Costa DilliardJapanOnyama Limba QUALIFIED
Cody SaylorsSpainXuxue Feng PROPOSAL
Isabel BowleyGermanyAmy Elsner NEW
Jennifer AmigonJapanIvan Magalhaes QUALIFIED
Ricardo GauchoArgentinaIoni Bowcher RENEWAL
Francesco ShinkoUnited KingdomAmy Elsner UNQUALIFIED
Wickens NestleRussiaXuxue Feng PROPOSAL
Wickens NestleCanadaIvan Magalhaes NEW
James ButtSpainBernardo Dominic NEGOTIATION
Clifford RimJapanOnyama Limba PROPOSAL
Kadeem FlosiFranceIvan Magalhaes RENEWAL
James ButtCanadaAmy Elsner NEGOTIATION
Octavia MaletItalyAmy Elsner QUALIFIED
Emily WhobreyAustraliaAmy Elsner NEGOTIATION
Alejandro PerinGermanyIoni Bowcher NEW
Octavia MaletUnited KingdomAnna Fali QUALIFIED
Claire TollnerIndiaStephen Shaw NEGOTIATION
David DarakjyAustraliaAsiya Javayant UNQUALIFIED
James ButtCanadaBernardo Dominic RENEWAL
Alejandro PerinArgentinaBernardo Dominic NEGOTIATION
Maria MarrierGermanyAnna Fali RENEWAL
Kaitlin OstroskyIndiaXuxue Feng NEW
Chavez BriddickItalyAnna Fali QUALIFIED
Morrow RutaCanadaOnyama Limba QUALIFIED
Kaitlin OstroskyUnited KingdomAnna Fali QUALIFIED
Francesco ShinkoFranceOnyama Limba RENEWAL
Aditya KuskoRussiaAnna Fali NEGOTIATION
Ashley DoeUnited KingdomIoni Bowcher UNQUALIFIED
Aditya KuskoSpainBernardo Dominic PROPOSAL
Wickens NestleAustraliaAmy Elsner RENEWAL
Francesco ShinkoSpainOnyama Limba QUALIFIED
Darci PoquetteRussiaStephen Shaw NEW
Aditya KuskoUnited KingdomStephen Shaw UNQUALIFIED
Deepesh ChuiArgentinaXuxue Feng UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic PROPOSAL
Aditya KuskoUnited KingdomOnyama Limba RENEWAL
Clifford RimCanadaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Munro FerenczCanadaIvan Magalhaes NEGOTIATION
Ashley DoeCanadaIoni Bowcher RENEWAL
Leon OldroydJapanElwin Sharvill RENEWAL
Sinclair WaycottArgentinaXuxue Feng PROPOSAL
Wickens NestleSpainAmy Elsner RENEWAL
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
David DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali RENEWAL
Claire TollnerAustraliaXuxue Feng RENEWAL
James ButtJapanOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskySpain2026-06-03King, Christopher A Esq NEW6Amy Elsner
1001Jones VocelkaAustralia2026-05-24Feiner Bros RENEWAL99Bernardo Dominic
1002James ButtCanada2026-05-21Feiner Bros NEGOTIATION55Onyama Limba
1003Aditya KuskoUnited Kingdom2026-05-06Benton, John B Jr NEW29Elwin Sharvill
1004Mayumi KolmetzSpain2026-05-19Morlong Associates QUALIFIED60Elwin Sharvill
1005Sinclair WaycottGermany2026-05-23Chemel, James L Cpa PROPOSAL77Asiya Javayant
1006Morrow RutaIndia2026-05-09Benton, John B Jr UNQUALIFIED75Bernardo Dominic
1007Tony FollerGermany2026-05-24Buckley Miller Wright NEW25Asiya Javayant
1008Clifford RimFrance2026-05-08Feiner Bros NEGOTIATION65Xuxue Feng
1009Smith GlickSpain2026-05-17Feiner Bros RENEWAL73Amy Elsner
1010Tony FollerSpain2026-05-22Chanay, Jeffrey A Esq NEW88Asiya Javayant
1011Murillo MaletUnited Kingdom2026-05-08Truhlar And Truhlar Attys RENEWAL44Amy Elsner
1012Johnson SergiSpain2026-06-01Chapman, Ross E Esq UNQUALIFIED67Anna Fali
1013Misaki RoysterFrance2026-05-08Feiner Bros NEW8Stephen Shaw
1014Mujtaba NickaFrance2026-06-02Truhlar And Truhlar Attys RENEWAL85Amy Elsner
1015Izzy GarufiCanada2026-05-23Commercial Press RENEWAL34Onyama Limba
1016Antonio CaudyArgentina2026-05-10Morlong Associates UNQUALIFIED77Ioni Bowcher
1017Salvatore StockhamGermany2026-05-10Commercial Press NEW97Anna Fali
1018Smith GlickFrance2026-06-04Printing Dimensions NEW0Asiya Javayant
1019Clifford RimBrazil2026-05-23Buckley Miller Wright QUALIFIED47Ivan Magalhaes
1020David DarakjyUnited Kingdom2026-05-29Commercial Press NEW11Onyama Limba
1021Kaitlin OstroskyIndia2026-05-17Benton, John B Jr UNQUALIFIED46Stephen Shaw
1022Darci PoquetteFrance2026-05-22Rangoni Of Florence QUALIFIED63Xuxue Feng
1023Kaitlin OstroskyItaly2026-05-11Rangoni Of Florence PROPOSAL77Ioni Bowcher
1024Smith GlickFrance2026-05-25Feiner Bros NEGOTIATION7Onyama Limba
1025Darci PoquetteArgentina2026-05-06Feltz Printing Service UNQUALIFIED51Ioni Bowcher
1026Darci PoquetteAustralia2026-05-17Dorl, James J Esq NEGOTIATION70Anna Fali
1027Ashley DoeArgentina2026-05-12Feiner Bros PROPOSAL77Ivan Magalhaes
1028Ivar PaprockiAustralia2026-05-23Commercial Press UNQUALIFIED37Ivan Magalhaes
1029Jones VocelkaFrance2026-05-28Chanay, Jeffrey A Esq RENEWAL24Ivan Magalhaes
1030Julie StensethJapan2026-05-21Chemel, James L Cpa PROPOSAL44Ioni Bowcher
1031Emily WhobreyUnited Kingdom2026-05-27Commercial Press NEW91Asiya Javayant
1032Silvio SlusarskiSpain2026-05-24Printing Dimensions UNQUALIFIED47Anna Fali
1033Jennifer AmigonJapan2026-05-09Rangoni Of Florence RENEWAL60Amy Elsner
1034Ivar PaprockiUnited Kingdom2026-05-12Feiner Bros NEW30Xuxue Feng
1035Arvin AlbaresGermany2026-05-21Commercial Press RENEWAL11Asiya Javayant
1036Misaki RoysterRussia2026-05-15King, Christopher A Esq NEGOTIATION16Asiya Javayant
1037Maria MarrierFrance2026-05-08Feiner Bros PROPOSAL31Stephen Shaw
1038Tony FollerCanada2026-06-04Dorl, James J Esq PROPOSAL45Onyama Limba
1039Wickens NestleArgentina2026-06-04Rangoni Of Florence UNQUALIFIED87Anna Fali
1040Johnson SergiRussia2026-05-13Truhlar And Truhlar Attys RENEWAL47Bernardo Dominic
1041Antonio CaudyIndia2026-06-03Commercial Press QUALIFIED13Bernardo Dominic
1042Ricardo GauchoItaly2026-06-03Chemel, James L Cpa PROPOSAL43Asiya Javayant
1043Jennifer AmigonJapan2026-05-13Benton, John B Jr NEW23Anna Fali
1044Clifford RimSpain2026-05-22King, Christopher A Esq UNQUALIFIED59Stephen Shaw
1045Leja CaldareraArgentina2026-05-15Buckley Miller Wright PROPOSAL0Ivan Magalhaes
1046Wickens NestleSpain2026-05-25Feltz Printing Service PROPOSAL73Ivan Magalhaes
1047Aruna FigeroaUnited Kingdom2026-05-12Benton, John B Jr PROPOSAL78Amy Elsner
1048Alejandro PerinCanada2026-05-10Dorl, James J Esq PROPOSAL3Elwin Sharvill
1049Ashley DoeRussia2026-05-11Truhlar And Truhlar Attys NEW4Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinUnited KingdomBernardo Dominic NEGOTIATION
Kaitlin OstroskyIndiaIvan Magalhaes QUALIFIED
Leon OldroydCanadaAsiya Javayant RENEWAL
Francesco ShinkoGermanyIvan Magalhaes UNQUALIFIED
Silvio SlusarskiItalyAmy Elsner NEGOTIATION
Izzy GarufiUnited KingdomOnyama Limba RENEWAL
Jones VocelkaFranceXuxue Feng NEW
Nicolas IturbideFranceAnna Fali RENEWAL
Murillo MaletJapanOnyama Limba NEW
Adams MorascaItalyAmy Elsner NEW
Greenwood BologniaGermanyAsiya Javayant NEW
Silvio SlusarskiAustraliaElwin Sharvill QUALIFIED
James ButtCanadaStephen Shaw NEW
Octavia MaletIndiaElwin Sharvill UNQUALIFIED
Faith GillianFranceOnyama Limba NEW
Aika InouyeUnited KingdomAsiya Javayant PROPOSAL
Wickens NestleUnited KingdomStephen Shaw PROPOSAL
Juan WieserUnited KingdomStephen Shaw NEGOTIATION
Cody SaylorsCanadaStephen Shaw UNQUALIFIED
Alejandro PerinRussiaXuxue Feng NEW
Munro FerenczFranceAmy Elsner RENEWAL
Octavia MaletCanadaAsiya Javayant QUALIFIED
Kadeem FlosiIndiaXuxue Feng NEW
Munro FerenczUnited KingdomAsiya Javayant QUALIFIED
Adams MorascaGermanyAmy Elsner NEW
Darci PoquetteUnited KingdomAsiya Javayant QUALIFIED
Stacey MacleadGermanyStephen Shaw UNQUALIFIED
Maria MarrierBrazilXuxue Feng QUALIFIED
Costa DilliardSpainElwin Sharvill NEW
Nicolas IturbideAustraliaBernardo Dominic PROPOSAL
Leja CaldareraGermanyIvan Magalhaes RENEWAL
Morrow RutaAustraliaAmy Elsner QUALIFIED
Jennifer AmigonFranceAsiya Javayant NEW
Francesco ShinkoItalyOnyama Limba PROPOSAL
Smith GlickArgentinaXuxue Feng NEGOTIATION
Maisha RulapaughAustraliaBernardo Dominic NEW
Leon OldroydBrazilAmy Elsner PROPOSAL
Leja CaldareraRussiaElwin Sharvill NEGOTIATION
Jones VocelkaArgentinaIvan Magalhaes NEGOTIATION
Francesco ShinkoGermanyElwin Sharvill RENEWAL
Munro FerenczFranceElwin Sharvill PROPOSAL
Faith GillianIndiaAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomOnyama Limba NEW
Aruna FigeroaBrazilOnyama Limba NEGOTIATION
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Salvatore StockhamItalyIoni Bowcher NEW
Ricardo GauchoBrazilAmy Elsner RENEWAL
Adams MorascaGermanyAnna Fali UNQUALIFIED
Jennifer AmigonArgentinaStephen Shaw NEW
Ashley DoeIndiaBernardo Dominic NEW
Frozen Columns
Name
Cody Saylors
Wickens Nestle
David Darakjy
Kadeem Flosi
Jeanfrancois Venere
Julie Stenseth
Aditya Kusko
Ricardo Gaucho
Cody Saylors
Aruna Figeroa
Jones Vocelka
Ivar Paprocki
Maria Marrier
Sinclair Waycott
Silvio Slusarski
Rodrigues Campain
Ivar Paprocki
Emily Whobrey
Juan Wieser
Leja Caldarera
Wickens Nestle
Francesco Shinko
Maria Marrier
Ricardo Gaucho
Kaitlin Ostrosky
Mayumi Kolmetz
Jeanfrancois Venere
Murillo Malet
Tony Foller
Aditya Kusko
Jones Vocelka
Ricardo Gaucho
Emily Whobrey
Smith Glick
Clifford Rim
Maisha Rulapaugh
Francesco Shinko
David Darakjy
Alejandro Perin
Murillo Malet
Smith Glick
Clifford Rim
Ricardo Gaucho
Izzy Garufi
Ricardo Gaucho
Isabel Bowley
Misaki Royster
James Butt
Claire Tollner
Chavez Briddick
IdCountryDate
1000Japan2026-05-10
1001Australia2026-06-03
1002Brazil2026-05-15
1003Australia2026-05-26
1004Australia2026-05-17
1005Argentina2026-05-31
1006Brazil2026-05-06
1007Argentina2026-05-11
1008India2026-05-07
1009Spain2026-05-28
1010Brazil2026-06-04
1011Argentina2026-05-11
1012Brazil2026-05-17
1013Russia2026-06-02
1014United Kingdom2026-05-29
1015Russia2026-05-20
1016Russia2026-05-21
1017Argentina2026-05-14
1018Germany2026-06-01
1019Brazil2026-06-03
1020United Kingdom2026-05-30
1021Russia2026-05-28
1022Spain2026-05-15
1023Argentina2026-05-26
1024Italy2026-06-01
1025Canada2026-05-13
1026Italy2026-05-19
1027Canada2026-05-17
1028Australia2026-06-01
1029Brazil2026-05-20
1030Russia2026-06-01
1031United Kingdom2026-05-20
1032Brazil2026-05-15
1033Germany2026-05-31
1034Australia2026-05-21
1035Argentina2026-05-23
1036United Kingdom2026-06-02
1037Brazil2026-05-27
1038United Kingdom2026-05-16
1039Germany2026-05-24
1040Germany2026-05-28
1041India2026-05-23
1042Australia2026-06-02
1043United Kingdom2026-05-07
1044Germany2026-05-13
1045France2026-06-02
1046Russia2026-05-07
1047Russia2026-05-07
1048Argentina2026-05-26
1049France2026-05-12

On-Demand Data

NameIdCountryDate
Adams Morasca1000Argentina2026-05-24
Jefferson Schemmer1001Australia2026-06-02
Julie Stenseth1002Spain2026-05-23
Adams Morasca1003Russia2026-05-07
Alejandro Perin1004France2026-05-27
Johnson Sergi1005Germany2026-06-03
Maria Marrier1006Japan2026-05-15
Tony Foller1007Russia2026-05-22
Darci Poquette1008Italy2026-05-20
Octavia Malet1009France2026-06-03
Deepesh Chui1010France2026-05-13
Octavia Malet1011France2026-05-12
Deepesh Chui1012Brazil2026-05-13
Sinclair Waycott1013Brazil2026-05-18
Johnson Sergi1014Russia2026-05-07
Murillo Malet1015Australia2026-05-07
David Darakjy1016Australia2026-05-25
Maria Marrier1017United Kingdom2026-05-24
Aika Inouye1018Argentina2026-06-04
David Darakjy1019Russia2026-05-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierItalyBernardo Dominic PROPOSAL
Aruna FigeroaItalyXuxue Feng QUALIFIED
Smith GlickGermanyXuxue Feng NEGOTIATION
Leja CaldareraIndiaBernardo Dominic UNQUALIFIED
Smith GlickCanadaStephen Shaw NEGOTIATION
Julie StensethBrazilAsiya Javayant PROPOSAL
Cody SaylorsItalyOnyama Limba PROPOSAL
Ashley DoeFranceXuxue Feng RENEWAL
Sinclair WaycottSpainStephen Shaw RENEWAL
Jeanfrancois VenereRussiaElwin Sharvill RENEWAL
Silvio SlusarskiGermanyXuxue Feng UNQUALIFIED
Leon OldroydItalyAmy Elsner PROPOSAL
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Sinclair WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
James ButtUnited KingdomAmy Elsner UNQUALIFIED
Kadeem FlosiBrazilStephen Shaw NEW
Costa DilliardIndiaBernardo Dominic PROPOSAL
Juan WieserRussiaXuxue Feng QUALIFIED
Greenwood BologniaCanadaStephen Shaw PROPOSAL
Arvin AlbaresBrazilAsiya Javayant RENEWAL
Isabel BowleyAustraliaStephen Shaw RENEWAL
Arvin AlbaresIndiaXuxue Feng QUALIFIED
Adams MorascaArgentinaIvan Magalhaes NEW
Maisha RulapaughGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoCanadaBernardo Dominic NEGOTIATION
Misaki RoysterJapanAsiya Javayant QUALIFIED
Chavez BriddickIndiaAmy Elsner UNQUALIFIED
Morrow RutaCanadaBernardo Dominic UNQUALIFIED
Ricardo GauchoUnited KingdomElwin Sharvill PROPOSAL
Greenwood BologniaFranceIvan Magalhaes NEW
Leon OldroydIndiaAsiya Javayant NEW
Izzy GarufiFranceIvan Magalhaes RENEWAL
Ashley DoeJapanElwin Sharvill PROPOSAL
Aika InouyeUnited KingdomOnyama Limba PROPOSAL
Juan WieserGermanyElwin Sharvill UNQUALIFIED
Greenwood BologniaJapanIvan Magalhaes NEW
Johnson SergiRussiaIoni Bowcher QUALIFIED
Antonio CaudyJapanAnna Fali PROPOSAL
Antonio CaudyIndiaAnna Fali UNQUALIFIED
Murillo MaletJapanOnyama Limba 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>