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
Jennifer AmigonIndiaAnna Fali QUALIFIED
Sinclair WaycottCanadaIvan Magalhaes UNQUALIFIED
Alejandro PerinItalyAsiya Javayant QUALIFIED
Tony FollerFranceAsiya Javayant NEW
Rodrigues CampainArgentinaIoni Bowcher UNQUALIFIED
Ivar PaprockiRussiaAmy Elsner QUALIFIED
David DarakjySpainStephen Shaw QUALIFIED
Misaki RoysterCanadaAsiya Javayant RENEWAL
Ivar PaprockiItalyIvan Magalhaes PROPOSAL
Wickens NestleItalyAnna Fali QUALIFIED
Maria MarrierUnited KingdomIvan Magalhaes PROPOSAL
Cody SaylorsArgentinaAmy Elsner UNQUALIFIED
Stacey MacleadGermanyAmy Elsner UNQUALIFIED
Kaitlin OstroskySpainBernardo Dominic RENEWAL
Salvatore StockhamAustraliaOnyama Limba NEW
Jennifer AmigonUnited KingdomXuxue Feng RENEWAL
David DarakjyJapanAsiya Javayant NEGOTIATION
Ashley DoeAustraliaOnyama Limba NEW
Aika InouyeRussiaElwin Sharvill PROPOSAL
Sinclair WaycottIndiaStephen Shaw UNQUALIFIED
Faith GillianUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamArgentinaAsiya Javayant RENEWAL
Aditya KuskoJapanElwin Sharvill RENEWAL
Leja CaldareraFranceAmy Elsner UNQUALIFIED
Ashley DoeFranceXuxue Feng UNQUALIFIED
Kadeem FlosiUnited KingdomAsiya Javayant PROPOSAL
Chavez BriddickFranceXuxue Feng NEGOTIATION
James ButtSpainStephen Shaw UNQUALIFIED
Izzy GarufiFranceIoni Bowcher PROPOSAL
Isabel BowleyArgentinaIvan Magalhaes NEW
Nicolas IturbideBrazilAmy Elsner PROPOSAL
Stacey MacleadItalyXuxue Feng RENEWAL
Morrow RutaFranceBernardo Dominic UNQUALIFIED
Alejandro PerinGermanyStephen Shaw RENEWAL
Ricardo GauchoRussiaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyGermanyIoni Bowcher NEW
Nicolas IturbideArgentinaStephen Shaw QUALIFIED
Cody SaylorsFranceIoni Bowcher QUALIFIED
David DarakjyUnited KingdomXuxue Feng NEGOTIATION
Kaitlin OstroskyGermanyStephen Shaw NEGOTIATION
Chavez BriddickIndiaOnyama Limba RENEWAL
Jefferson SchemmerIndiaAsiya Javayant RENEWAL
Costa DilliardGermanyAnna Fali RENEWAL
Isabel BowleyGermanyAmy Elsner NEW
Isabel BowleySpainStephen Shaw QUALIFIED
Clifford RimArgentinaElwin Sharvill UNQUALIFIED
Smith GlickUnited KingdomElwin Sharvill NEGOTIATION
Antonio CaudyGermanyAnna Fali RENEWAL
Octavia MaletBrazilIoni Bowcher NEW
Leon OldroydItalyOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson SchemmerFranceOnyama Limba PROPOSAL
Maria MarrierSpainElwin Sharvill NEW
Francesco ShinkoFranceAmy Elsner PROPOSAL
Jones VocelkaRussiaBernardo Dominic NEW
Ricardo GauchoIndiaIvan Magalhaes NEGOTIATION
Maisha RulapaughRussiaIvan Magalhaes UNQUALIFIED
Maria MarrierBrazilAnna Fali PROPOSAL
Deepesh ChuiGermanyStephen Shaw PROPOSAL
Chavez BriddickCanadaAsiya Javayant PROPOSAL
Clifford RimJapanAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith GillianCanada2025-09-19Chemel, James L Cpa NEGOTIATION17Xuxue Feng
1001Salvatore StockhamFrance2025-10-02Dorl, James J Esq QUALIFIED40Elwin Sharvill
1002Murillo MaletItaly2025-09-08Dorl, James J Esq NEGOTIATION53Anna Fali
1003Ashley DoeGermany2025-09-10Buckley Miller Wright NEW3Stephen Shaw
1004Antonio CaudyFrance2025-09-17Printing Dimensions PROPOSAL38Elwin Sharvill
1005Aditya KuskoUnited Kingdom2025-10-03Chemel, James L Cpa PROPOSAL61Onyama Limba
1006Maisha RulapaughSpain2025-09-04Commercial Press RENEWAL1Asiya Javayant
1007Deepesh ChuiFrance2025-09-06Chemel, James L Cpa QUALIFIED30Ivan Magalhaes
1008Ricardo GauchoAustralia2025-09-17Rangoni Of Florence NEGOTIATION48Stephen Shaw
1009Rodrigues CampainAustralia2025-09-04Feiner Bros UNQUALIFIED27Elwin Sharvill
1010Adams MorascaSpain2025-09-25Truhlar And Truhlar Attys QUALIFIED0Amy Elsner
1011Aruna FigeroaIndia2025-09-18Buckley Miller Wright QUALIFIED74Onyama Limba
1012Faith GillianArgentina2025-09-05Chanay, Jeffrey A Esq UNQUALIFIED41Elwin Sharvill
1013Ashley DoeFrance2025-09-21Feltz Printing Service NEW26Ioni Bowcher
1014Alejandro PerinArgentina2025-10-02Chanay, Jeffrey A Esq RENEWAL45Stephen Shaw
1015Jones VocelkaArgentina2025-09-15Truhlar And Truhlar Attys NEW59Elwin Sharvill
1016Antonio CaudyFrance2025-09-18Chanay, Jeffrey A Esq QUALIFIED53Anna Fali
1017Kaitlin OstroskyIndia2025-09-26Rangoni Of Florence NEGOTIATION96Elwin Sharvill
1018Tony FollerAustralia2025-09-21Truhlar And Truhlar Attys NEGOTIATION59Bernardo Dominic
1019Wickens NestleRussia2025-09-27Feltz Printing Service NEW10Xuxue Feng
1020Arvin AlbaresArgentina2025-09-21Truhlar And Truhlar Attys PROPOSAL33Amy Elsner
1021Julie StensethCanada2025-09-22Rangoni Of Florence RENEWAL25Stephen Shaw
1022Maisha RulapaughArgentina2025-09-30Benton, John B Jr UNQUALIFIED24Ivan Magalhaes
1023Murillo MaletSpain2025-09-09Dorl, James J Esq NEW55Ioni Bowcher
1024Leja CaldareraUnited Kingdom2025-09-16Buckley Miller Wright NEW42Bernardo Dominic
1025James ButtGermany2025-10-01Benton, John B Jr RENEWAL40Xuxue Feng
1026Ashley DoeAustralia2025-09-26King, Christopher A Esq NEGOTIATION57Asiya Javayant
1027Kaitlin OstroskyCanada2025-09-20Commercial Press QUALIFIED25Onyama Limba
1028Maria MarrierItaly2025-09-05Benton, John B Jr UNQUALIFIED19Asiya Javayant
1029David DarakjyAustralia2025-09-27Chapman, Ross E Esq RENEWAL54Elwin Sharvill
1030Jefferson SchemmerAustralia2025-09-30Truhlar And Truhlar Attys RENEWAL96Stephen Shaw
1031Deepesh ChuiGermany2025-09-28Morlong Associates UNQUALIFIED44Elwin Sharvill
1032Emily WhobreyArgentina2025-09-30King, Christopher A Esq NEW81Elwin Sharvill
1033Rodrigues CampainItaly2025-09-15King, Christopher A Esq QUALIFIED98Amy Elsner
1034Octavia MaletIndia2025-09-08Printing Dimensions QUALIFIED87Bernardo Dominic
1035Darci PoquetteCanada2025-09-10Morlong Associates NEGOTIATION52Elwin Sharvill
1036Ashley DoeBrazil2025-09-05Benton, John B Jr NEW11Ioni Bowcher
1037Maria MarrierAustralia2025-09-24Chanay, Jeffrey A Esq QUALIFIED36Onyama Limba
1038Jefferson SchemmerRussia2025-09-06Chanay, Jeffrey A Esq NEGOTIATION83Amy Elsner
1039Clifford RimBrazil2025-09-21Truhlar And Truhlar Attys UNQUALIFIED86Bernardo Dominic
1040Octavia MaletJapan2025-09-17Commercial Press QUALIFIED44Xuxue Feng
1041Jeanfrancois VenereAustralia2025-09-27Printing Dimensions QUALIFIED30Bernardo Dominic
1042James ButtRussia2025-09-12Rangoni Of Florence PROPOSAL22Ioni Bowcher
1043Ashley DoeBrazil2025-09-22Chemel, James L Cpa QUALIFIED88Xuxue Feng
1044Julie StensethJapan2025-09-23Rousseaux, Michael Esq NEW15Amy Elsner
1045Alejandro PerinAustralia2025-09-05Feiner Bros QUALIFIED54Ioni Bowcher
1046Silvio SlusarskiItaly2025-09-05Benton, John B Jr UNQUALIFIED66Xuxue Feng
1047Aditya KuskoRussia2025-09-08Printing Dimensions QUALIFIED33Stephen Shaw
1048Claire TollnerAustralia2025-09-09Morlong Associates NEGOTIATION47Elwin Sharvill
1049Mujtaba NickaBrazil2025-09-19Dorl, James J Esq PROPOSAL15Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Deepesh ChuiArgentinaIvan Magalhaes UNQUALIFIED
Smith GlickAustraliaStephen Shaw RENEWAL
Aditya KuskoCanadaIoni Bowcher PROPOSAL
James ButtUnited KingdomAmy Elsner RENEWAL
Rodrigues CampainItalyAnna Fali NEGOTIATION
Jefferson SchemmerCanadaBernardo Dominic RENEWAL
Claire TollnerUnited KingdomXuxue Feng NEW
James ButtSpainAmy Elsner QUALIFIED
Francesco ShinkoItalyOnyama Limba NEGOTIATION
Johnson SergiAustraliaOnyama Limba RENEWAL
Salvatore StockhamBrazilAnna Fali PROPOSAL
Mujtaba NickaBrazilIvan Magalhaes QUALIFIED
Ivar PaprockiJapanXuxue Feng NEGOTIATION
Ivar PaprockiCanadaAnna Fali QUALIFIED
Jones VocelkaSpainIvan Magalhaes PROPOSAL
Emily WhobreySpainBernardo Dominic PROPOSAL
Juan WieserAustraliaOnyama Limba UNQUALIFIED
Claire TollnerCanadaBernardo Dominic QUALIFIED
Faith GillianCanadaElwin Sharvill QUALIFIED
Mayumi KolmetzItalyAnna Fali NEW
Rodrigues CampainJapanAsiya Javayant QUALIFIED
Munro FerenczJapanAmy Elsner NEW
Clifford RimAustraliaElwin Sharvill QUALIFIED
Aruna FigeroaSpainXuxue Feng NEGOTIATION
Aika InouyeItalyBernardo Dominic PROPOSAL
Izzy GarufiCanadaBernardo Dominic NEW
Jefferson SchemmerArgentinaIoni Bowcher QUALIFIED
Sinclair WaycottItalyAsiya Javayant PROPOSAL
Stacey MacleadArgentinaXuxue Feng NEGOTIATION
Julie StensethSpainElwin Sharvill QUALIFIED
Murillo MaletIndiaAsiya Javayant RENEWAL
Misaki RoysterIndiaAmy Elsner QUALIFIED
Smith GlickCanadaAsiya Javayant NEGOTIATION
Arvin AlbaresCanadaAnna Fali PROPOSAL
Murillo MaletItalyAnna Fali RENEWAL
Aika InouyeArgentinaStephen Shaw NEGOTIATION
Faith GillianBrazilBernardo Dominic NEGOTIATION
David DarakjyGermanyXuxue Feng QUALIFIED
Salvatore StockhamSpainIvan Magalhaes UNQUALIFIED
Mujtaba NickaJapanAnna Fali NEW
Leon OldroydUnited KingdomElwin Sharvill NEW
Morrow RutaUnited KingdomAmy Elsner RENEWAL
Cody SaylorsGermanyBernardo Dominic QUALIFIED
Chavez BriddickIndiaStephen Shaw QUALIFIED
Alejandro PerinRussiaIvan Magalhaes NEGOTIATION
Maisha RulapaughUnited KingdomOnyama Limba PROPOSAL
Johnson SergiUnited KingdomAnna Fali UNQUALIFIED
Julie StensethArgentinaAmy Elsner QUALIFIED
Isabel BowleyRussiaBernardo Dominic PROPOSAL
Maria MarrierAustraliaStephen Shaw RENEWAL
Frozen Columns
Name
Stacey Maclead
Alejandro Perin
Emily Whobrey
Ashley Doe
Smith Glick
Faith Gillian
Leon Oldroyd
Emily Whobrey
Maria Marrier
Stacey Maclead
Emily Whobrey
Misaki Royster
Sinclair Waycott
Emily Whobrey
Ashley Doe
James Butt
Wickens Nestle
Deepesh Chui
Juan Wieser
Nicolas Iturbide
Misaki Royster
Aika Inouye
Tony Foller
Aditya Kusko
Greenwood Bolognia
Morrow Ruta
David Darakjy
Misaki Royster
Ricardo Gaucho
Adams Morasca
James Butt
Faith Gillian
Stacey Maclead
Adams Morasca
Faith Gillian
Francesco Shinko
Kadeem Flosi
Murillo Malet
Misaki Royster
Maisha Rulapaugh
Mayumi Kolmetz
Leja Caldarera
Juan Wieser
Cody Saylors
Kadeem Flosi
Mujtaba Nicka
Aditya Kusko
Costa Dilliard
Kadeem Flosi
Wickens Nestle
IdCountryDate
1000India2025-09-13
1001Japan2025-09-16
1002Brazil2025-09-09
1003United Kingdom2025-09-17
1004Canada2025-09-13
1005Germany2025-10-03
1006Brazil2025-09-07
1007Argentina2025-09-05
1008Russia2025-09-11
1009Russia2025-09-20
1010Brazil2025-09-19
1011Brazil2025-09-13
1012Brazil2025-09-14
1013India2025-09-11
1014Spain2025-09-23
1015Germany2025-09-20
1016Russia2025-09-25
1017United Kingdom2025-09-19
1018Brazil2025-09-20
1019Australia2025-09-28
1020Argentina2025-09-26
1021Russia2025-09-07
1022France2025-09-14
1023Spain2025-09-04
1024India2025-09-05
1025India2025-10-02
1026Brazil2025-09-13
1027Argentina2025-09-18
1028India2025-09-17
1029Germany2025-09-28
1030Canada2025-09-07
1031Germany2025-09-29
1032Australia2025-09-07
1033France2025-09-30
1034Russia2025-09-07
1035Germany2025-10-02
1036France2025-09-28
1037Italy2025-09-05
1038India2025-09-17
1039India2025-09-14
1040Argentina2025-09-07
1041Brazil2025-09-05
1042Argentina2025-09-07
1043Russia2025-09-09
1044Australia2025-09-07
1045Japan2025-09-22
1046United Kingdom2025-09-12
1047Russia2025-09-16
1048Spain2025-09-10
1049Brazil2025-09-06

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000Russia2025-09-15
Maisha Rulapaugh1001Brazil2025-09-29
Stacey Maclead1002Brazil2025-09-28
Maisha Rulapaugh1003Japan2025-09-05
Octavia Malet1004Canada2025-09-16
Izzy Garufi1005Canada2025-09-27
Clifford Rim1006India2025-09-25
Maria Marrier1007United Kingdom2025-09-29
Jones Vocelka1008Italy2025-09-10
Johnson Sergi1009France2025-09-18
Greenwood Bolognia1010Brazil2025-09-29
Stacey Maclead1011Russia2025-09-24
Darci Poquette1012India2025-09-06
Kadeem Flosi1013Australia2025-09-29
Francesco Shinko1014Brazil2025-10-03
Stacey Maclead1015Argentina2025-09-28
Smith Glick1016Brazil2025-09-30
Maria Marrier1017Brazil2025-09-18
Murillo Malet1018Italy2025-09-27
Munro Ferencz1019United Kingdom2025-09-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiArgentinaIvan Magalhaes UNQUALIFIED
Maisha RulapaughAustraliaBernardo Dominic UNQUALIFIED
Deepesh ChuiCanadaOnyama Limba QUALIFIED
Maisha RulapaughSpainStephen Shaw NEGOTIATION
Aika InouyeAustraliaBernardo Dominic NEGOTIATION
Clifford RimArgentinaIoni Bowcher RENEWAL
Maria MarrierArgentinaStephen Shaw NEGOTIATION
Salvatore StockhamArgentinaAsiya Javayant QUALIFIED
Isabel BowleyBrazilElwin Sharvill UNQUALIFIED
Tony FollerRussiaAmy Elsner NEW
Arvin AlbaresFranceXuxue Feng PROPOSAL
Smith GlickUnited KingdomStephen Shaw NEGOTIATION
Claire TollnerJapanAnna Fali RENEWAL
Wickens NestleSpainBernardo Dominic QUALIFIED
Adams MorascaGermanyElwin Sharvill QUALIFIED
Octavia MaletAustraliaXuxue Feng QUALIFIED
Silvio SlusarskiIndiaIvan Magalhaes RENEWAL
Maisha RulapaughJapanBernardo Dominic QUALIFIED
Tony FollerGermanyOnyama Limba RENEWAL
Misaki RoysterJapanBernardo Dominic PROPOSAL
Morrow RutaArgentinaXuxue Feng UNQUALIFIED
Ivar PaprockiIndiaAmy Elsner PROPOSAL
Munro FerenczCanadaBernardo Dominic QUALIFIED
Antonio CaudyItalyBernardo Dominic NEGOTIATION
Julie StensethGermanyXuxue Feng NEGOTIATION
Julie StensethRussiaXuxue Feng RENEWAL
Costa DilliardSpainXuxue Feng NEGOTIATION
Johnson SergiAustraliaStephen Shaw NEW
Wickens NestleItalyElwin Sharvill PROPOSAL
Arvin AlbaresCanadaStephen Shaw QUALIFIED
Mayumi KolmetzGermanyAnna Fali RENEWAL
Aika InouyeAustraliaAnna Fali NEW
Antonio CaudyFranceElwin Sharvill NEGOTIATION
Murillo MaletFranceStephen Shaw QUALIFIED
Murillo MaletAustraliaXuxue Feng PROPOSAL
Antonio CaudyFranceStephen Shaw UNQUALIFIED
Arvin AlbaresArgentinaAnna Fali UNQUALIFIED
Mayumi KolmetzSpainAmy Elsner NEW
Cody SaylorsArgentinaAnna Fali QUALIFIED
Jones VocelkaGermanyBernardo Dominic 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>