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
David DarakjyJapanIvan Magalhaes UNQUALIFIED
Costa DilliardUnited KingdomXuxue Feng PROPOSAL
Leon OldroydBrazilAmy Elsner UNQUALIFIED
Misaki RoysterJapanElwin Sharvill NEGOTIATION
Johnson SergiBrazilBernardo Dominic QUALIFIED
Salvatore StockhamBrazilIvan Magalhaes PROPOSAL
Leon OldroydItalyStephen Shaw RENEWAL
Arvin AlbaresSpainBernardo Dominic NEW
Ivar PaprockiFranceAsiya Javayant UNQUALIFIED
Morrow RutaArgentinaIvan Magalhaes QUALIFIED
Chavez BriddickItalyAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Maria MarrierFranceAnna Fali UNQUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes RENEWAL
Emily WhobreySpainAmy Elsner PROPOSAL
David DarakjySpainBernardo Dominic NEW
Murillo MaletAustraliaAnna Fali PROPOSAL
Adams MorascaBrazilAnna Fali UNQUALIFIED
Leon OldroydFranceAmy Elsner NEW
Izzy GarufiIndiaAsiya Javayant RENEWAL
Clifford RimItalyIoni Bowcher UNQUALIFIED
Kaitlin OstroskyAustraliaElwin Sharvill UNQUALIFIED
Jones VocelkaIndiaIoni Bowcher RENEWAL
Arvin AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Leja CaldareraItalyXuxue Feng UNQUALIFIED
Jennifer AmigonIndiaAnna Fali UNQUALIFIED
Kaitlin OstroskyJapanXuxue Feng PROPOSAL
Jennifer AmigonCanadaStephen Shaw PROPOSAL
Mujtaba NickaIndiaElwin Sharvill NEW
Jefferson SchemmerSpainOnyama Limba NEW
Munro FerenczArgentinaOnyama Limba RENEWAL
Ashley DoeFranceBernardo Dominic RENEWAL
Alejandro PerinFranceIvan Magalhaes UNQUALIFIED
Aika InouyeArgentinaStephen Shaw NEW
Misaki RoysterRussiaAnna Fali PROPOSAL
Julie StensethFranceAnna Fali NEGOTIATION
Jennifer AmigonUnited KingdomOnyama Limba NEW
Stacey MacleadJapanBernardo Dominic NEGOTIATION
Maria MarrierArgentinaAsiya Javayant NEW
Costa DilliardUnited KingdomBernardo Dominic PROPOSAL
Maisha RulapaughIndiaAsiya Javayant RENEWAL
Jennifer AmigonSpainStephen Shaw NEW
Ivar PaprockiJapanElwin Sharvill PROPOSAL
Clifford RimIndiaXuxue Feng RENEWAL
Darci PoquetteJapanIoni Bowcher RENEWAL
Jennifer AmigonAustraliaIoni Bowcher QUALIFIED
Jefferson SchemmerBrazilBernardo Dominic RENEWAL
Maria MarrierSpainIoni Bowcher RENEWAL
Francesco ShinkoJapanBernardo Dominic NEW
Leon OldroydBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterGermanyBernardo Dominic PROPOSAL
Chavez BriddickRussiaBernardo Dominic NEGOTIATION
Julie StensethFranceIoni Bowcher NEW
Aditya KuskoCanadaIvan Magalhaes NEW
Octavia MaletFranceIvan Magalhaes PROPOSAL
Ashley DoeCanadaAnna Fali NEGOTIATION
Darci PoquetteSpainAmy Elsner NEW
James ButtGermanyOnyama Limba RENEWAL
Munro FerenczSpainAmy Elsner NEGOTIATION
Wickens NestleFranceIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresIndia2026-04-15Chemel, James L Cpa PROPOSAL9Anna Fali
1001Aditya KuskoArgentina2026-04-15Benton, John B Jr PROPOSAL41Xuxue Feng
1002Munro FerenczGermany2026-05-02Printing Dimensions UNQUALIFIED95Xuxue Feng
1003Izzy GarufiAustralia2026-05-07Feltz Printing Service NEW94Asiya Javayant
1004Deepesh ChuiCanada2026-04-16Benton, John B Jr QUALIFIED29Amy Elsner
1005Maisha RulapaughUnited Kingdom2026-04-15Commercial Press NEW90Amy Elsner
1006Octavia MaletCanada2026-05-08Commercial Press UNQUALIFIED7Bernardo Dominic
1007Stacey MacleadAustralia2026-04-23Feiner Bros UNQUALIFIED97Bernardo Dominic
1008Smith GlickCanada2026-04-11Benton, John B Jr PROPOSAL56Xuxue Feng
1009Julie StensethFrance2026-04-11Morlong Associates QUALIFIED78Anna Fali
1010Claire TollnerGermany2026-04-27Buckley Miller Wright QUALIFIED68Stephen Shaw
1011Greenwood BologniaRussia2026-04-28Feltz Printing Service NEW57Xuxue Feng
1012Mayumi KolmetzArgentina2026-04-14Feiner Bros NEGOTIATION66Xuxue Feng
1013Emily WhobreyAustralia2026-04-29Morlong Associates RENEWAL98Ivan Magalhaes
1014Izzy GarufiUnited Kingdom2026-05-08Printing Dimensions NEGOTIATION66Onyama Limba
1015Rodrigues CampainJapan2026-05-08Truhlar And Truhlar Attys PROPOSAL65Ioni Bowcher
1016Aika InouyeArgentina2026-05-05Rangoni Of Florence NEW47Elwin Sharvill
1017Smith GlickAustralia2026-04-11Chemel, James L Cpa QUALIFIED21Ivan Magalhaes
1018Kaitlin OstroskyIndia2026-04-26Chanay, Jeffrey A Esq QUALIFIED10Anna Fali
1019Greenwood BologniaIndia2026-05-06Feiner Bros RENEWAL62Ivan Magalhaes
1020Adams MorascaCanada2026-05-05Buckley Miller Wright PROPOSAL47Amy Elsner
1021Kadeem FlosiGermany2026-05-03Printing Dimensions UNQUALIFIED71Ioni Bowcher
1022Jones VocelkaBrazil2026-05-10Buckley Miller Wright RENEWAL97Anna Fali
1023Murillo MaletArgentina2026-04-23Benton, John B Jr NEW37Onyama Limba
1024Jones VocelkaCanada2026-04-12Chanay, Jeffrey A Esq RENEWAL4Xuxue Feng
1025Tony FollerItaly2026-05-08Chemel, James L Cpa NEGOTIATION72Xuxue Feng
1026Antonio CaudySpain2026-05-08Benton, John B Jr NEGOTIATION0Ivan Magalhaes
1027Cody SaylorsArgentina2026-05-05Dorl, James J Esq NEW71Amy Elsner
1028Jennifer AmigonCanada2026-04-12Morlong Associates UNQUALIFIED34Elwin Sharvill
1029David DarakjyUnited Kingdom2026-04-12Morlong Associates NEW66Stephen Shaw
1030Cody SaylorsGermany2026-04-26Chapman, Ross E Esq NEGOTIATION82Elwin Sharvill
1031Antonio CaudyFrance2026-04-13Commercial Press QUALIFIED27Xuxue Feng
1032Arvin AlbaresArgentina2026-04-22Feiner Bros UNQUALIFIED92Amy Elsner
1033Julie StensethSpain2026-05-04Buckley Miller Wright NEGOTIATION5Bernardo Dominic
1034Juan WieserItaly2026-05-04Morlong Associates NEGOTIATION96Elwin Sharvill
1035Julie StensethItaly2026-05-03Chemel, James L Cpa NEGOTIATION74Anna Fali
1036Aditya KuskoBrazil2026-04-27Chapman, Ross E Esq NEW4Ivan Magalhaes
1037Ashley DoeUnited Kingdom2026-04-29Rangoni Of Florence UNQUALIFIED29Ioni Bowcher
1038Isabel BowleyArgentina2026-05-06Feiner Bros UNQUALIFIED56Asiya Javayant
1039Octavia MaletArgentina2026-04-28Chapman, Ross E Esq NEGOTIATION11Ioni Bowcher
1040Jeanfrancois VenereArgentina2026-05-04Chanay, Jeffrey A Esq RENEWAL90Bernardo Dominic
1041Ashley DoeAustralia2026-04-19Feltz Printing Service UNQUALIFIED5Anna Fali
1042Alejandro PerinArgentina2026-05-09Dorl, James J Esq NEW48Ioni Bowcher
1043Cody SaylorsItaly2026-04-25Benton, John B Jr NEGOTIATION37Bernardo Dominic
1044Arvin AlbaresJapan2026-04-24King, Christopher A Esq PROPOSAL3Anna Fali
1045Arvin AlbaresArgentina2026-05-09Buckley Miller Wright RENEWAL84Asiya Javayant
1046Mayumi KolmetzAustralia2026-05-04Dorl, James J Esq NEGOTIATION46Ivan Magalhaes
1047Julie StensethCanada2026-04-12Printing Dimensions NEW56Elwin Sharvill
1048Arvin AlbaresUnited Kingdom2026-04-12Printing Dimensions UNQUALIFIED33Ivan Magalhaes
1049Jefferson SchemmerItaly2026-04-28King, Christopher A Esq QUALIFIED18Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimSpainStephen Shaw NEW
Ricardo GauchoAustraliaStephen Shaw NEW
Leja CaldareraCanadaStephen Shaw RENEWAL
Arvin AlbaresCanadaXuxue Feng NEW
Mayumi KolmetzFranceXuxue Feng NEW
Octavia MaletSpainIoni Bowcher PROPOSAL
David DarakjyCanadaOnyama Limba PROPOSAL
Francesco ShinkoSpainStephen Shaw QUALIFIED
James ButtRussiaOnyama Limba UNQUALIFIED
Ivar PaprockiUnited KingdomElwin Sharvill NEW
Aruna FigeroaGermanyIvan Magalhaes QUALIFIED
Ashley DoeAustraliaIvan Magalhaes PROPOSAL
Jennifer AmigonAustraliaBernardo Dominic RENEWAL
Ashley DoeSpainBernardo Dominic PROPOSAL
Aditya KuskoBrazilAsiya Javayant RENEWAL
Murillo MaletGermanyOnyama Limba PROPOSAL
Ashley DoeGermanyOnyama Limba PROPOSAL
Ricardo GauchoBrazilXuxue Feng NEW
Jeanfrancois VenereArgentinaStephen Shaw NEGOTIATION
Johnson SergiJapanXuxue Feng UNQUALIFIED
Kadeem FlosiJapanIoni Bowcher NEGOTIATION
Cody SaylorsJapanIvan Magalhaes QUALIFIED
Mayumi KolmetzBrazilAnna Fali NEGOTIATION
Greenwood BologniaSpainAsiya Javayant UNQUALIFIED
Aruna FigeroaFranceAmy Elsner QUALIFIED
Mujtaba NickaItalyAsiya Javayant NEW
Juan WieserSpainAnna Fali RENEWAL
Arvin AlbaresUnited KingdomAmy Elsner PROPOSAL
Greenwood BologniaArgentinaAmy Elsner QUALIFIED
Tony FollerSpainElwin Sharvill QUALIFIED
Silvio SlusarskiCanadaIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanBernardo Dominic PROPOSAL
Munro FerenczSpainElwin Sharvill QUALIFIED
Tony FollerItalyAsiya Javayant NEGOTIATION
Ricardo GauchoGermanyElwin Sharvill PROPOSAL
Tony FollerCanadaBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilAnna Fali NEW
Francesco ShinkoBrazilBernardo Dominic RENEWAL
Alejandro PerinBrazilBernardo Dominic NEGOTIATION
Arvin AlbaresFranceAsiya Javayant QUALIFIED
Jennifer AmigonSpainAsiya Javayant RENEWAL
Ashley DoeCanadaBernardo Dominic QUALIFIED
Deepesh ChuiUnited KingdomXuxue Feng PROPOSAL
Smith GlickFranceXuxue Feng NEW
Aruna FigeroaAustraliaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyBrazilIvan Magalhaes RENEWAL
Aruna FigeroaGermanyAnna Fali RENEWAL
Morrow RutaItalyStephen Shaw UNQUALIFIED
Ashley DoeRussiaIoni Bowcher NEW
Kadeem FlosiAustraliaIoni Bowcher RENEWAL
Frozen Columns
Name
Kadeem Flosi
James Butt
Misaki Royster
Mujtaba Nicka
Misaki Royster
Smith Glick
Wickens Nestle
Greenwood Bolognia
Mujtaba Nicka
Kaitlin Ostrosky
Mayumi Kolmetz
Izzy Garufi
Octavia Malet
Leon Oldroyd
Francesco Shinko
Chavez Briddick
Sinclair Waycott
Leon Oldroyd
Ricardo Gaucho
Rodrigues Campain
Aditya Kusko
Mujtaba Nicka
Francesco Shinko
Octavia Malet
Rodrigues Campain
Aditya Kusko
Leon Oldroyd
Jennifer Amigon
Maria Marrier
Jefferson Schemmer
Silvio Slusarski
Smith Glick
Aruna Figeroa
James Butt
Salvatore Stockham
Tony Foller
Munro Ferencz
Ricardo Gaucho
Kadeem Flosi
Maisha Rulapaugh
Jones Vocelka
Mujtaba Nicka
Wickens Nestle
Isabel Bowley
Costa Dilliard
Rodrigues Campain
Silvio Slusarski
Stacey Maclead
Isabel Bowley
Chavez Briddick
IdCountryDate
1000Canada2026-04-23
1001India2026-05-08
1002Germany2026-04-28
1003Australia2026-04-23
1004Spain2026-04-24
1005Germany2026-05-01
1006Germany2026-04-27
1007Italy2026-04-13
1008France2026-04-18
1009Italy2026-04-13
1010France2026-04-14
1011Argentina2026-04-19
1012Russia2026-04-26
1013France2026-04-21
1014India2026-04-27
1015India2026-04-15
1016Russia2026-04-19
1017Argentina2026-05-07
1018Argentina2026-04-24
1019Australia2026-05-07
1020India2026-05-06
1021Brazil2026-05-04
1022Germany2026-05-01
1023Canada2026-04-26
1024Canada2026-04-17
1025Germany2026-05-04
1026Argentina2026-04-24
1027Argentina2026-04-13
1028Russia2026-05-02
1029France2026-04-23
1030India2026-05-05
1031Canada2026-05-09
1032Germany2026-04-16
1033Spain2026-05-10
1034France2026-04-30
1035France2026-04-30
1036Canada2026-04-23
1037Canada2026-05-03
1038Brazil2026-05-02
1039Canada2026-04-30
1040Japan2026-04-28
1041France2026-04-14
1042Canada2026-04-15
1043Japan2026-04-27
1044Italy2026-04-21
1045Japan2026-04-16
1046Italy2026-04-29
1047India2026-05-01
1048Argentina2026-04-30
1049Japan2026-04-27

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Australia2026-04-23
Ricardo Gaucho1001Japan2026-05-05
Clifford Rim1002Brazil2026-05-10
Costa Dilliard1003France2026-04-20
Chavez Briddick1004Australia2026-05-02
Ashley Doe1005United Kingdom2026-05-02
Clifford Rim1006United Kingdom2026-04-25
Jennifer Amigon1007Argentina2026-05-01
Sinclair Waycott1008Canada2026-05-09
Francesco Shinko1009Russia2026-04-11
Francesco Shinko1010Canada2026-05-06
Adams Morasca1011United Kingdom2026-04-14
Salvatore Stockham1012Brazil2026-04-13
Faith Gillian1013United Kingdom2026-04-19
Costa Dilliard1014Spain2026-05-08
Octavia Malet1015Italy2026-05-06
Jones Vocelka1016Canada2026-04-17
Chavez Briddick1017Italy2026-04-19
Francesco Shinko1018United Kingdom2026-05-04
Ricardo Gaucho1019Australia2026-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiBrazilAmy Elsner NEGOTIATION
James ButtSpainAsiya Javayant UNQUALIFIED
Julie StensethArgentinaOnyama Limba QUALIFIED
Cody SaylorsBrazilAmy Elsner QUALIFIED
Octavia MaletIndiaElwin Sharvill NEW
Julie StensethRussiaOnyama Limba NEGOTIATION
Rodrigues CampainRussiaAsiya Javayant UNQUALIFIED
Rodrigues CampainSpainIvan Magalhaes NEGOTIATION
Aruna FigeroaIndiaIoni Bowcher RENEWAL
James ButtIndiaIoni Bowcher RENEWAL
Ricardo GauchoItalyBernardo Dominic PROPOSAL
Leja CaldareraArgentinaBernardo Dominic NEGOTIATION
Octavia MaletIndiaAnna Fali NEGOTIATION
Aruna FigeroaBrazilElwin Sharvill RENEWAL
Octavia MaletSpainXuxue Feng RENEWAL
Maria MarrierCanadaXuxue Feng RENEWAL
Deepesh ChuiFranceElwin Sharvill PROPOSAL
Silvio SlusarskiFranceOnyama Limba NEW
Maria MarrierFranceElwin Sharvill NEGOTIATION
Clifford RimJapanAmy Elsner RENEWAL
Munro FerenczArgentinaXuxue Feng NEGOTIATION
Francesco ShinkoArgentinaElwin Sharvill PROPOSAL
Adams MorascaRussiaAmy Elsner NEGOTIATION
James ButtItalyAnna Fali UNQUALIFIED
Salvatore StockhamItalyIoni Bowcher UNQUALIFIED
Julie StensethBrazilAsiya Javayant PROPOSAL
Isabel BowleyGermanyAnna Fali NEW
Alejandro PerinBrazilAmy Elsner NEW
Antonio CaudyAustraliaElwin Sharvill RENEWAL
Ricardo GauchoRussiaAsiya Javayant UNQUALIFIED
Alejandro PerinIndiaXuxue Feng PROPOSAL
Jefferson SchemmerCanadaXuxue Feng QUALIFIED
Chavez BriddickSpainIoni Bowcher RENEWAL
Juan WieserCanadaElwin Sharvill UNQUALIFIED
Aditya KuskoFranceOnyama Limba RENEWAL
James ButtUnited KingdomStephen Shaw RENEWAL
Munro FerenczItalyAmy Elsner NEW
Kadeem FlosiUnited KingdomOnyama Limba NEGOTIATION
Adams MorascaIndiaIoni Bowcher NEW
Salvatore StockhamItalyAsiya Javayant RENEWAL

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