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
Smith GlickFranceAnna Fali UNQUALIFIED
Morrow RutaItalyAsiya Javayant NEW
Alejandro PerinGermanyBernardo Dominic NEGOTIATION
Claire TollnerFranceIvan Magalhaes NEGOTIATION
Stacey MacleadJapanIvan Magalhaes NEW
Silvio SlusarskiCanadaIoni Bowcher QUALIFIED
Johnson SergiGermanyXuxue Feng RENEWAL
Rodrigues CampainFranceAnna Fali NEGOTIATION
Julie StensethSpainIoni Bowcher QUALIFIED
David DarakjyRussiaElwin Sharvill UNQUALIFIED
Mujtaba NickaRussiaIvan Magalhaes UNQUALIFIED
Greenwood BologniaArgentinaOnyama Limba RENEWAL
Leon OldroydRussiaAnna Fali UNQUALIFIED
Sinclair WaycottAustraliaAmy Elsner QUALIFIED
Arvin AlbaresUnited KingdomAnna Fali NEGOTIATION
Ivar PaprockiFranceStephen Shaw NEW
Tony FollerRussiaIoni Bowcher UNQUALIFIED
Isabel BowleyJapanBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaStephen Shaw PROPOSAL
Morrow RutaCanadaAsiya Javayant NEW
Adams MorascaArgentinaAnna Fali RENEWAL
Juan WieserAustraliaStephen Shaw NEGOTIATION
Darci PoquetteRussiaAsiya Javayant NEW
Ashley DoeUnited KingdomStephen Shaw NEW
Leon OldroydSpainIoni Bowcher QUALIFIED
Julie StensethBrazilBernardo Dominic UNQUALIFIED
Izzy GarufiArgentinaIvan Magalhaes PROPOSAL
Cody SaylorsBrazilXuxue Feng QUALIFIED
Clifford RimArgentinaXuxue Feng QUALIFIED
Kaitlin OstroskyAustraliaElwin Sharvill PROPOSAL
Johnson SergiGermanyAnna Fali QUALIFIED
Claire TollnerItalyAnna Fali PROPOSAL
Francesco ShinkoArgentinaOnyama Limba RENEWAL
Antonio CaudySpainIvan Magalhaes UNQUALIFIED
Ashley DoeAustraliaAmy Elsner QUALIFIED
Stacey MacleadFranceAnna Fali RENEWAL
Jefferson SchemmerRussiaOnyama Limba RENEWAL
Clifford RimSpainBernardo Dominic PROPOSAL
Silvio SlusarskiRussiaBernardo Dominic QUALIFIED
Jefferson SchemmerAustraliaAnna Fali NEGOTIATION
Mujtaba NickaFranceXuxue Feng PROPOSAL
Ricardo GauchoSpainOnyama Limba UNQUALIFIED
Deepesh ChuiItalyAnna Fali RENEWAL
Rodrigues CampainRussiaAnna Fali UNQUALIFIED
Arvin AlbaresIndiaElwin Sharvill NEW
Wickens NestleBrazilOnyama Limba PROPOSAL
Isabel BowleyBrazilAsiya Javayant RENEWAL
Jones VocelkaArgentinaAnna Fali QUALIFIED
Izzy GarufiIndiaAmy Elsner NEW
Alejandro PerinUnited KingdomElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoJapanAnna Fali UNQUALIFIED
Silvio SlusarskiGermanyOnyama Limba PROPOSAL
Jennifer AmigonItalyXuxue Feng NEW
Rodrigues CampainBrazilAnna Fali PROPOSAL
Silvio SlusarskiFranceAnna Fali UNQUALIFIED
Sinclair WaycottArgentinaAmy Elsner PROPOSAL
David DarakjyUnited KingdomIoni Bowcher QUALIFIED
Jones VocelkaCanadaAsiya Javayant QUALIFIED
Jennifer AmigonRussiaStephen Shaw RENEWAL
David DarakjyIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonAustralia2026-03-26Chapman, Ross E Esq PROPOSAL37Xuxue Feng
1001Octavia MaletItaly2026-04-15Feltz Printing Service NEGOTIATION19Stephen Shaw
1002Claire TollnerAustralia2026-04-09King, Christopher A Esq UNQUALIFIED16Ivan Magalhaes
1003Cody SaylorsSpain2026-04-05Commercial Press UNQUALIFIED54Amy Elsner
1004Clifford RimSpain2026-04-01Truhlar And Truhlar Attys RENEWAL71Bernardo Dominic
1005Maisha RulapaughIndia2026-03-30Feiner Bros RENEWAL22Amy Elsner
1006Izzy GarufiAustralia2026-04-08Morlong Associates QUALIFIED17Anna Fali
1007Jennifer AmigonArgentina2026-03-25Rangoni Of Florence UNQUALIFIED99Onyama Limba
1008Izzy GarufiBrazil2026-04-10Printing Dimensions PROPOSAL91Bernardo Dominic
1009Aditya KuskoSpain2026-04-04Chanay, Jeffrey A Esq PROPOSAL30Onyama Limba
1010Antonio CaudyItaly2026-03-24Morlong Associates NEGOTIATION18Xuxue Feng
1011Smith GlickSpain2026-04-03Feiner Bros PROPOSAL49Anna Fali
1012Jones VocelkaCanada2026-03-29Chemel, James L Cpa NEGOTIATION30Bernardo Dominic
1013Faith GillianFrance2026-03-31Chapman, Ross E Esq QUALIFIED55Amy Elsner
1014Alejandro PerinIndia2026-03-30Feiner Bros RENEWAL39Bernardo Dominic
1015Jennifer AmigonCanada2026-03-23Truhlar And Truhlar Attys PROPOSAL11Onyama Limba
1016Izzy GarufiRussia2026-04-12Morlong Associates NEGOTIATION30Amy Elsner
1017Greenwood BologniaBrazil2026-04-02Commercial Press NEW83Anna Fali
1018Izzy GarufiUnited Kingdom2026-03-24Chemel, James L Cpa RENEWAL48Amy Elsner
1019Maria MarrierArgentina2026-03-25Chapman, Ross E Esq PROPOSAL60Amy Elsner
1020Julie StensethIndia2026-04-08Commercial Press NEGOTIATION29Asiya Javayant
1021Faith GillianBrazil2026-04-01Printing Dimensions UNQUALIFIED9Bernardo Dominic
1022Silvio SlusarskiFrance2026-04-19Chemel, James L Cpa UNQUALIFIED82Onyama Limba
1023Murillo MaletFrance2026-03-25Dorl, James J Esq QUALIFIED94Asiya Javayant
1024Jones VocelkaJapan2026-04-04Benton, John B Jr PROPOSAL27Amy Elsner
1025Ashley DoeBrazil2026-04-06Benton, John B Jr NEW11Asiya Javayant
1026Deepesh ChuiItaly2026-04-11Buckley Miller Wright PROPOSAL41Asiya Javayant
1027Isabel BowleyFrance2026-04-14Buckley Miller Wright RENEWAL29Xuxue Feng
1028Jennifer AmigonIndia2026-04-19Truhlar And Truhlar Attys PROPOSAL80Stephen Shaw
1029Francesco ShinkoBrazil2026-04-09Dorl, James J Esq UNQUALIFIED55Onyama Limba
1030Sinclair WaycottFrance2026-04-14Buckley Miller Wright NEGOTIATION76Bernardo Dominic
1031Smith GlickRussia2026-03-25Chemel, James L Cpa RENEWAL0Bernardo Dominic
1032Greenwood BologniaSpain2026-03-28Chapman, Ross E Esq NEW67Ioni Bowcher
1033Murillo MaletFrance2026-04-17Truhlar And Truhlar Attys NEW94Bernardo Dominic
1034Costa DilliardCanada2026-04-15Commercial Press QUALIFIED58Elwin Sharvill
1035Deepesh ChuiItaly2026-03-25Dorl, James J Esq NEW2Anna Fali
1036Aditya KuskoFrance2026-04-02Chapman, Ross E Esq NEGOTIATION57Asiya Javayant
1037Clifford RimUnited Kingdom2026-04-05Dorl, James J Esq QUALIFIED21Ivan Magalhaes
1038Maria MarrierItaly2026-03-28Rangoni Of Florence NEW16Bernardo Dominic
1039Arvin AlbaresItaly2026-03-24Chanay, Jeffrey A Esq UNQUALIFIED55Stephen Shaw
1040Leja CaldareraIndia2026-04-06Dorl, James J Esq QUALIFIED61Asiya Javayant
1041Murillo MaletSpain2026-03-23Commercial Press RENEWAL53Xuxue Feng
1042Mayumi KolmetzItaly2026-04-08Rangoni Of Florence QUALIFIED85Onyama Limba
1043Claire TollnerIndia2026-04-07Chemel, James L Cpa NEGOTIATION41Xuxue Feng
1044Ivar PaprockiIndia2026-04-10Rousseaux, Michael Esq PROPOSAL35Stephen Shaw
1045Mayumi KolmetzSpain2026-03-22King, Christopher A Esq NEGOTIATION44Xuxue Feng
1046Nicolas IturbideSpain2026-04-03Rousseaux, Michael Esq QUALIFIED34Onyama Limba
1047Leon OldroydUnited Kingdom2026-04-02Morlong Associates NEGOTIATION63Amy Elsner
1048David DarakjyItaly2026-04-16Morlong Associates UNQUALIFIED15Elwin Sharvill
1049Wickens NestleUnited Kingdom2026-03-23Chemel, James L Cpa NEGOTIATION4Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerBrazilOnyama Limba NEGOTIATION
Isabel BowleyAustraliaXuxue Feng NEW
Aruna FigeroaJapanOnyama Limba NEGOTIATION
Clifford RimBrazilAnna Fali RENEWAL
Misaki RoysterBrazilElwin Sharvill QUALIFIED
Maisha RulapaughSpainOnyama Limba NEW
Jennifer AmigonRussiaIvan Magalhaes NEGOTIATION
Salvatore StockhamUnited KingdomElwin Sharvill RENEWAL
Rodrigues CampainRussiaBernardo Dominic PROPOSAL
Ivar PaprockiJapanOnyama Limba NEGOTIATION
Isabel BowleyBrazilXuxue Feng UNQUALIFIED
Claire TollnerJapanStephen Shaw UNQUALIFIED
Darci PoquetteGermanyAnna Fali PROPOSAL
Izzy GarufiJapanAsiya Javayant NEW
Izzy GarufiBrazilStephen Shaw NEW
David DarakjyFranceAnna Fali NEW
Julie StensethItalyAnna Fali PROPOSAL
Arvin AlbaresUnited KingdomAmy Elsner NEW
Costa DilliardBrazilAsiya Javayant NEW
Ashley DoeUnited KingdomAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaAsiya Javayant NEGOTIATION
Smith GlickItalyStephen Shaw NEGOTIATION
Kaitlin OstroskyJapanAmy Elsner QUALIFIED
Murillo MaletSpainAnna Fali RENEWAL
Ashley DoeBrazilAmy Elsner UNQUALIFIED
Claire TollnerSpainAmy Elsner NEGOTIATION
Emily WhobreyJapanIoni Bowcher PROPOSAL
Izzy GarufiCanadaIvan Magalhaes QUALIFIED
Claire TollnerUnited KingdomElwin Sharvill RENEWAL
Mujtaba NickaUnited KingdomBernardo Dominic NEW
Jones VocelkaUnited KingdomAnna Fali NEW
Adams MorascaGermanyIvan Magalhaes QUALIFIED
Salvatore StockhamIndiaAnna Fali RENEWAL
Murillo MaletSpainOnyama Limba NEW
Stacey MacleadArgentinaAsiya Javayant PROPOSAL
Jones VocelkaItalyElwin Sharvill UNQUALIFIED
Octavia MaletRussiaAmy Elsner UNQUALIFIED
Leja CaldareraIndiaBernardo Dominic NEW
Antonio CaudyJapanIvan Magalhaes RENEWAL
Leon OldroydBrazilIoni Bowcher RENEWAL
James ButtGermanyStephen Shaw NEGOTIATION
Johnson SergiItalyAnna Fali QUALIFIED
Jeanfrancois VenereGermanyAmy Elsner PROPOSAL
Arvin AlbaresIndiaAmy Elsner QUALIFIED
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Aika InouyeGermanyOnyama Limba NEGOTIATION
Greenwood BologniaIndiaAmy Elsner NEGOTIATION
Arvin AlbaresAustraliaAmy Elsner QUALIFIED
Misaki RoysterGermanyStephen Shaw QUALIFIED
Aika InouyeJapanBernardo Dominic QUALIFIED
Frozen Columns
Name
Emily Whobrey
Nicolas Iturbide
Silvio Slusarski
Ashley Doe
Cody Saylors
Aika Inouye
Emily Whobrey
Rodrigues Campain
Antonio Caudy
Jones Vocelka
Claire Tollner
David Darakjy
Salvatore Stockham
Maria Marrier
Morrow Ruta
Isabel Bowley
Ricardo Gaucho
Clifford Rim
Greenwood Bolognia
Cody Saylors
Octavia Malet
Tony Foller
Octavia Malet
Emily Whobrey
Munro Ferencz
Clifford Rim
Ashley Doe
Jefferson Schemmer
Izzy Garufi
Deepesh Chui
Smith Glick
Ashley Doe
Arvin Albares
Salvatore Stockham
Izzy Garufi
Salvatore Stockham
Costa Dilliard
Faith Gillian
Leon Oldroyd
Tony Foller
Maria Marrier
David Darakjy
Faith Gillian
Francesco Shinko
Misaki Royster
Octavia Malet
Cody Saylors
Izzy Garufi
Leja Caldarera
Jefferson Schemmer
IdCountryDate
1000Argentina2026-03-29
1001Canada2026-04-08
1002Spain2026-03-28
1003France2026-04-13
1004United Kingdom2026-03-26
1005Germany2026-03-23
1006Australia2026-04-11
1007India2026-04-16
1008Spain2026-04-11
1009United Kingdom2026-04-01
1010Argentina2026-03-27
1011Italy2026-03-28
1012Germany2026-04-17
1013Argentina2026-04-05
1014Germany2026-04-07
1015Spain2026-04-14
1016United Kingdom2026-03-26
1017India2026-04-03
1018Brazil2026-03-23
1019Australia2026-03-26
1020Argentina2026-03-24
1021Australia2026-03-25
1022Brazil2026-04-16
1023France2026-04-16
1024Italy2026-04-01
1025Germany2026-04-14
1026France2026-03-28
1027Italy2026-04-10
1028Germany2026-04-10
1029Germany2026-04-19
1030Germany2026-04-10
1031Argentina2026-04-04
1032Argentina2026-04-18
1033United Kingdom2026-03-28
1034Italy2026-03-30
1035Australia2026-03-25
1036Argentina2026-03-25
1037Argentina2026-04-15
1038Germany2026-04-14
1039Spain2026-04-15
1040France2026-04-11
1041United Kingdom2026-03-26
1042Australia2026-04-02
1043France2026-04-03
1044India2026-04-06
1045India2026-04-18
1046Canada2026-03-27
1047United Kingdom2026-03-29
1048United Kingdom2026-04-15
1049Argentina2026-04-16

On-Demand Data

NameIdCountryDate
Faith Gillian1000Italy2026-04-12
James Butt1001Canada2026-04-20
Ivar Paprocki1002France2026-04-10
Deepesh Chui1003Brazil2026-03-25
Octavia Malet1004Italy2026-04-03
Jeanfrancois Venere1005Canada2026-04-05
Murillo Malet1006Brazil2026-03-29
Maisha Rulapaugh1007Australia2026-03-26
Misaki Royster1008Brazil2026-03-22
Leon Oldroyd1009Argentina2026-04-08
Jones Vocelka1010France2026-03-26
Maisha Rulapaugh1011Argentina2026-03-25
Kadeem Flosi1012Argentina2026-03-31
Stacey Maclead1013Germany2026-03-25
Jones Vocelka1014Germany2026-04-09
Munro Ferencz1015Russia2026-04-09
Emily Whobrey1016Canada2026-03-27
Smith Glick1017Brazil2026-04-20
Chavez Briddick1018Russia2026-03-25
Sinclair Waycott1019United Kingdom2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeUnited KingdomAmy Elsner NEW
Leon OldroydBrazilAmy Elsner RENEWAL
Greenwood BologniaJapanBernardo Dominic UNQUALIFIED
Rodrigues CampainItalyBernardo Dominic PROPOSAL
Leja CaldareraBrazilAsiya Javayant UNQUALIFIED
Octavia MaletFranceIoni Bowcher RENEWAL
Greenwood BologniaArgentinaAnna Fali NEGOTIATION
Arvin AlbaresUnited KingdomAmy Elsner PROPOSAL
Julie StensethJapanIvan Magalhaes NEW
Alejandro PerinFranceAmy Elsner NEW
Ivar PaprockiJapanAsiya Javayant QUALIFIED
Emily WhobreyItalyAsiya Javayant NEGOTIATION
Jeanfrancois VenereAustraliaOnyama Limba NEW
Munro FerenczUnited KingdomIvan Magalhaes QUALIFIED
Izzy GarufiIndiaAmy Elsner PROPOSAL
Jeanfrancois VenereCanadaAnna Fali PROPOSAL
Salvatore StockhamItalyBernardo Dominic QUALIFIED
Darci PoquetteSpainAmy Elsner RENEWAL
Sinclair WaycottAustraliaStephen Shaw NEW
Kadeem FlosiUnited KingdomElwin Sharvill PROPOSAL
Aditya KuskoJapanOnyama Limba PROPOSAL
Tony FollerItalyXuxue Feng NEW
Aditya KuskoArgentinaAsiya Javayant NEGOTIATION
Tony FollerAustraliaAmy Elsner RENEWAL
Julie StensethRussiaIvan Magalhaes QUALIFIED
Silvio SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Tony FollerUnited KingdomIvan Magalhaes QUALIFIED
Greenwood BologniaRussiaAmy Elsner QUALIFIED
Wickens NestleUnited KingdomElwin Sharvill PROPOSAL
Costa DilliardGermanyAsiya Javayant UNQUALIFIED
Morrow RutaItalyBernardo Dominic NEW
Deepesh ChuiItalyStephen Shaw NEW
Francesco ShinkoSpainIoni Bowcher NEW
Faith GillianBrazilStephen Shaw NEGOTIATION
Tony FollerBrazilAmy Elsner NEGOTIATION
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Francesco ShinkoAustraliaStephen Shaw PROPOSAL
Morrow RutaCanadaAnna Fali NEW
Chavez BriddickJapanIoni Bowcher RENEWAL
Costa DilliardArgentinaElwin 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>