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
Ivar PaprockiSpainXuxue Feng UNQUALIFIED
Sinclair WaycottIndiaOnyama Limba QUALIFIED
Julie StensethSpainStephen Shaw NEGOTIATION
Mayumi KolmetzIndiaAsiya Javayant QUALIFIED
Octavia MaletSpainXuxue Feng QUALIFIED
Clifford RimJapanXuxue Feng UNQUALIFIED
Morrow RutaRussiaElwin Sharvill QUALIFIED
Alejandro PerinArgentinaIoni Bowcher RENEWAL
Sinclair WaycottCanadaOnyama Limba NEGOTIATION
Tony FollerCanadaXuxue Feng NEGOTIATION
Julie StensethCanadaAsiya Javayant NEW
Maria MarrierIndiaXuxue Feng UNQUALIFIED
David DarakjyGermanyAmy Elsner NEGOTIATION
Costa DilliardSpainAsiya Javayant UNQUALIFIED
Misaki RoysterUnited KingdomBernardo Dominic NEGOTIATION
Tony FollerFranceIvan Magalhaes NEGOTIATION
Clifford RimAustraliaAmy Elsner RENEWAL
Wickens NestleRussiaBernardo Dominic UNQUALIFIED
Jones VocelkaSpainIoni Bowcher PROPOSAL
Cody SaylorsAustraliaElwin Sharvill PROPOSAL
Claire TollnerJapanIoni Bowcher NEGOTIATION
Julie StensethRussiaAnna Fali PROPOSAL
Izzy GarufiSpainBernardo Dominic PROPOSAL
Maria MarrierGermanyXuxue Feng NEGOTIATION
Misaki RoysterGermanyElwin Sharvill NEW
Sinclair WaycottSpainOnyama Limba UNQUALIFIED
Kadeem FlosiArgentinaOnyama Limba UNQUALIFIED
Alejandro PerinFranceIoni Bowcher NEGOTIATION
Silvio SlusarskiRussiaIoni Bowcher QUALIFIED
Adams MorascaFranceAsiya Javayant QUALIFIED
Jennifer AmigonIndiaAmy Elsner RENEWAL
Silvio SlusarskiRussiaElwin Sharvill PROPOSAL
Leja CaldareraBrazilStephen Shaw RENEWAL
Murillo MaletIndiaIoni Bowcher PROPOSAL
Leja CaldareraArgentinaStephen Shaw NEGOTIATION
Mujtaba NickaGermanyXuxue Feng PROPOSAL
Ivar PaprockiArgentinaAsiya Javayant NEGOTIATION
Silvio SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Silvio SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Rodrigues CampainSpainIoni Bowcher PROPOSAL
Chavez BriddickJapanIoni Bowcher PROPOSAL
Rodrigues CampainItalyAsiya Javayant NEW
Claire TollnerJapanBernardo Dominic UNQUALIFIED
Leon OldroydSpainIoni Bowcher UNQUALIFIED
Stacey MacleadUnited KingdomAsiya Javayant NEW
Rodrigues CampainItalyXuxue Feng UNQUALIFIED
Kadeem FlosiAustraliaElwin Sharvill RENEWAL
Silvio SlusarskiIndiaAsiya Javayant RENEWAL
Morrow RutaFranceIoni Bowcher UNQUALIFIED
Clifford RimAustraliaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Smith GlickIndiaXuxue Feng RENEWAL
Leon OldroydArgentinaIvan Magalhaes NEGOTIATION
Murillo MaletJapanBernardo Dominic RENEWAL
Adams MorascaCanadaXuxue Feng QUALIFIED
Juan WieserItalyXuxue Feng QUALIFIED
Greenwood BologniaAustraliaAsiya Javayant NEGOTIATION
Sinclair WaycottIndiaBernardo Dominic RENEWAL
Morrow RutaAustraliaAmy Elsner NEGOTIATION
Mujtaba NickaUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois VenereJapanStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleUnited Kingdom2026-05-28Feltz Printing Service PROPOSAL77Ioni Bowcher
1001Adams MorascaCanada2026-05-09Feltz Printing Service NEW51Anna Fali
1002Julie StensethUnited Kingdom2026-05-25Morlong Associates NEW93Stephen Shaw
1003Leon OldroydCanada2026-05-11Rangoni Of Florence UNQUALIFIED70Elwin Sharvill
1004Sinclair WaycottIndia2026-06-01Rangoni Of Florence RENEWAL4Onyama Limba
1005Ricardo GauchoJapan2026-05-26Morlong Associates QUALIFIED18Onyama Limba
1006Francesco ShinkoSpain2026-05-22Benton, John B Jr NEW58Anna Fali
1007Jeanfrancois VenereCanada2026-05-24Truhlar And Truhlar Attys PROPOSAL61Onyama Limba
1008Costa DilliardJapan2026-05-17Feltz Printing Service RENEWAL4Ioni Bowcher
1009Jeanfrancois VenereAustralia2026-05-28Chapman, Ross E Esq RENEWAL0Bernardo Dominic
1010Sinclair WaycottAustralia2026-06-04Feiner Bros NEGOTIATION51Asiya Javayant
1011Octavia MaletJapan2026-06-05Rangoni Of Florence UNQUALIFIED63Ioni Bowcher
1012Ivar PaprockiAustralia2026-06-05Feltz Printing Service QUALIFIED34Asiya Javayant
1013Ricardo GauchoBrazil2026-05-20Benton, John B Jr NEGOTIATION8Amy Elsner
1014Kadeem FlosiUnited Kingdom2026-05-17Dorl, James J Esq NEGOTIATION19Amy Elsner
1015Stacey MacleadFrance2026-05-22King, Christopher A Esq PROPOSAL84Anna Fali
1016Misaki RoysterFrance2026-06-01Chanay, Jeffrey A Esq NEGOTIATION64Stephen Shaw
1017Ricardo GauchoBrazil2026-05-18Feltz Printing Service UNQUALIFIED48Elwin Sharvill
1018Rodrigues CampainItaly2026-05-15Dorl, James J Esq PROPOSAL60Bernardo Dominic
1019Isabel BowleyUnited Kingdom2026-05-27Rangoni Of Florence NEW50Xuxue Feng
1020Faith GillianGermany2026-05-15Commercial Press NEGOTIATION31Bernardo Dominic
1021Smith GlickFrance2026-05-21Buckley Miller Wright PROPOSAL99Onyama Limba
1022Jefferson SchemmerItaly2026-05-21Feiner Bros NEGOTIATION69Anna Fali
1023Kaitlin OstroskyRussia2026-06-04Rousseaux, Michael Esq PROPOSAL45Ivan Magalhaes
1024Mayumi KolmetzGermany2026-05-26Benton, John B Jr NEGOTIATION86Ivan Magalhaes
1025Jones VocelkaItaly2026-05-31Chanay, Jeffrey A Esq QUALIFIED81Amy Elsner
1026Deepesh ChuiCanada2026-05-15Printing Dimensions NEGOTIATION23Ivan Magalhaes
1027Juan WieserIndia2026-06-03Chanay, Jeffrey A Esq NEGOTIATION58Ioni Bowcher
1028Silvio SlusarskiBrazil2026-05-29Truhlar And Truhlar Attys NEW18Elwin Sharvill
1029Smith GlickAustralia2026-05-11Benton, John B Jr NEGOTIATION80Amy Elsner
1030Tony FollerAustralia2026-05-23King, Christopher A Esq NEGOTIATION53Elwin Sharvill
1031Nicolas IturbideSpain2026-06-03Buckley Miller Wright UNQUALIFIED60Onyama Limba
1032Emily WhobreyBrazil2026-05-20King, Christopher A Esq UNQUALIFIED14Xuxue Feng
1033Ricardo GauchoRussia2026-05-29Feiner Bros NEGOTIATION57Elwin Sharvill
1034Maisha RulapaughBrazil2026-05-17Feiner Bros UNQUALIFIED45Stephen Shaw
1035Deepesh ChuiJapan2026-05-10Buckley Miller Wright RENEWAL14Anna Fali
1036Ashley DoeItaly2026-05-25Printing Dimensions UNQUALIFIED38Onyama Limba
1037Clifford RimSpain2026-05-14Feltz Printing Service NEGOTIATION97Anna Fali
1038Jefferson SchemmerBrazil2026-06-01Feltz Printing Service NEW43Onyama Limba
1039Kaitlin OstroskyArgentina2026-05-23Morlong Associates NEGOTIATION86Amy Elsner
1040Kadeem FlosiIndia2026-05-27Benton, John B Jr QUALIFIED16Bernardo Dominic
1041Adams MorascaGermany2026-05-23Feiner Bros RENEWAL3Xuxue Feng
1042Arvin AlbaresIndia2026-05-09Dorl, James J Esq NEW1Elwin Sharvill
1043Octavia MaletBrazil2026-05-23Commercial Press PROPOSAL36Amy Elsner
1044Adams MorascaFrance2026-05-09Feiner Bros RENEWAL12Bernardo Dominic
1045David DarakjyRussia2026-05-31Rousseaux, Michael Esq QUALIFIED73Asiya Javayant
1046Clifford RimArgentina2026-05-08Benton, John B Jr NEGOTIATION8Onyama Limba
1047Arvin AlbaresJapan2026-05-22Chemel, James L Cpa RENEWAL27Onyama Limba
1048Julie StensethUnited Kingdom2026-06-04Chapman, Ross E Esq RENEWAL37Xuxue Feng
1049Adams MorascaIndia2026-06-01Printing Dimensions RENEWAL79Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Arvin AlbaresCanadaIvan Magalhaes PROPOSAL
Antonio CaudyItalyAnna Fali NEGOTIATION
Octavia MaletItalyAmy Elsner RENEWAL
David DarakjyAustraliaAmy Elsner RENEWAL
Isabel BowleyJapanXuxue Feng RENEWAL
Julie StensethJapanAsiya Javayant UNQUALIFIED
Wickens NestleItalyAnna Fali QUALIFIED
Francesco ShinkoUnited KingdomBernardo Dominic QUALIFIED
Morrow RutaCanadaBernardo Dominic RENEWAL
Cody SaylorsIndiaAsiya Javayant NEW
Mujtaba NickaRussiaBernardo Dominic NEGOTIATION
Costa DilliardGermanyElwin Sharvill PROPOSAL
Munro FerenczBrazilBernardo Dominic UNQUALIFIED
Maisha RulapaughIndiaAnna Fali PROPOSAL
Clifford RimAustraliaOnyama Limba QUALIFIED
Maisha RulapaughItalyAmy Elsner RENEWAL
Wickens NestleJapanStephen Shaw RENEWAL
Adams MorascaBrazilIoni Bowcher QUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes NEGOTIATION
Mujtaba NickaUnited KingdomOnyama Limba NEGOTIATION
Claire TollnerUnited KingdomAnna Fali RENEWAL
Murillo MaletJapanAsiya Javayant RENEWAL
Salvatore StockhamBrazilAnna Fali PROPOSAL
Salvatore StockhamCanadaAsiya Javayant QUALIFIED
Claire TollnerCanadaElwin Sharvill UNQUALIFIED
Greenwood BologniaArgentinaIoni Bowcher NEW
Morrow RutaItalyAnna Fali NEGOTIATION
Julie StensethAustraliaElwin Sharvill PROPOSAL
Leon OldroydFranceIoni Bowcher NEW
Claire TollnerJapanAnna Fali RENEWAL
Ivar PaprockiAustraliaOnyama Limba UNQUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant UNQUALIFIED
Kadeem FlosiItalyOnyama Limba PROPOSAL
Ashley DoeRussiaIvan Magalhaes UNQUALIFIED
Alejandro PerinGermanyAnna Fali UNQUALIFIED
Silvio SlusarskiGermanyIvan Magalhaes PROPOSAL
Aika InouyeItalyIoni Bowcher NEGOTIATION
Clifford RimArgentinaAnna Fali NEGOTIATION
Emily WhobreyRussiaOnyama Limba UNQUALIFIED
Chavez BriddickFranceAnna Fali RENEWAL
Nicolas IturbideJapanElwin Sharvill NEW
Kaitlin OstroskyArgentinaIvan Magalhaes PROPOSAL
Clifford RimFranceXuxue Feng QUALIFIED
Jeanfrancois VenereFranceStephen Shaw UNQUALIFIED
Greenwood BologniaIndiaAsiya Javayant NEGOTIATION
Ivar PaprockiCanadaElwin Sharvill UNQUALIFIED
Jefferson SchemmerBrazilBernardo Dominic QUALIFIED
Smith GlickAustraliaAnna Fali NEGOTIATION
Rodrigues CampainAustraliaIoni Bowcher RENEWAL
Emily WhobreyCanadaAsiya Javayant PROPOSAL
Frozen Columns
Name
Julie Stenseth
Silvio Slusarski
Mujtaba Nicka
Arvin Albares
Sinclair Waycott
Ivar Paprocki
Sinclair Waycott
Emily Whobrey
Octavia Malet
Murillo Malet
Leja Caldarera
Mayumi Kolmetz
Munro Ferencz
Kadeem Flosi
Johnson Sergi
Munro Ferencz
Antonio Caudy
Leon Oldroyd
Ivar Paprocki
Claire Tollner
Deepesh Chui
Deepesh Chui
Rodrigues Campain
Deepesh Chui
Kaitlin Ostrosky
Claire Tollner
Aika Inouye
Ricardo Gaucho
Arvin Albares
Kaitlin Ostrosky
Kadeem Flosi
Nicolas Iturbide
Deepesh Chui
Wickens Nestle
Alejandro Perin
Maria Marrier
Tony Foller
Costa Dilliard
Emily Whobrey
Chavez Briddick
Nicolas Iturbide
Jennifer Amigon
Julie Stenseth
Smith Glick
Smith Glick
Sinclair Waycott
Octavia Malet
Maisha Rulapaugh
James Butt
Murillo Malet
IdCountryDate
1000United Kingdom2026-05-14
1001India2026-05-25
1002United Kingdom2026-06-03
1003United Kingdom2026-05-10
1004United Kingdom2026-05-18
1005Spain2026-05-18
1006Canada2026-05-22
1007Russia2026-05-20
1008Australia2026-05-07
1009Russia2026-05-07
1010Japan2026-06-05
1011India2026-06-01
1012Russia2026-05-26
1013Spain2026-05-27
1014Spain2026-05-15
1015Germany2026-05-29
1016Italy2026-05-08
1017Brazil2026-05-16
1018Germany2026-05-28
1019Russia2026-05-27
1020United Kingdom2026-06-03
1021France2026-05-19
1022Spain2026-06-01
1023Australia2026-05-19
1024Canada2026-05-25
1025Argentina2026-05-12
1026Italy2026-05-26
1027Brazil2026-05-13
1028Argentina2026-05-16
1029Italy2026-05-22
1030Australia2026-05-21
1031India2026-05-19
1032Spain2026-05-19
1033India2026-05-21
1034India2026-05-18
1035Brazil2026-05-19
1036Russia2026-05-11
1037India2026-05-30
1038Spain2026-05-22
1039United Kingdom2026-05-25
1040Italy2026-05-08
1041France2026-05-20
1042Brazil2026-05-20
1043United Kingdom2026-05-09
1044India2026-05-15
1045Canada2026-05-30
1046United Kingdom2026-05-15
1047United Kingdom2026-05-15
1048Argentina2026-05-24
1049Brazil2026-05-21

On-Demand Data

NameIdCountryDate
Darci Poquette1000Russia2026-05-22
Wickens Nestle1001Australia2026-05-13
Salvatore Stockham1002France2026-06-04
Alejandro Perin1003France2026-05-11
Ashley Doe1004Australia2026-05-30
Ivar Paprocki1005Russia2026-05-15
Isabel Bowley1006Russia2026-05-19
Antonio Caudy1007Argentina2026-06-03
Isabel Bowley1008Australia2026-05-07
Francesco Shinko1009Germany2026-05-29
Claire Tollner1010India2026-06-02
Kadeem Flosi1011Italy2026-05-10
Julie Stenseth1012Germany2026-05-30
Juan Wieser1013Canada2026-05-23
Claire Tollner1014France2026-05-19
Maisha Rulapaugh1015Russia2026-05-22
Jeanfrancois Venere1016United Kingdom2026-05-22
Darci Poquette1017Italy2026-05-09
Kadeem Flosi1018Italy2026-05-07
Adams Morasca1019France2026-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraJapanAsiya Javayant UNQUALIFIED
Octavia MaletIndiaAnna Fali QUALIFIED
Cody SaylorsAustraliaIoni Bowcher NEW
Stacey MacleadJapanAsiya Javayant NEW
Ashley DoeUnited KingdomStephen Shaw NEW
Murillo MaletJapanIvan Magalhaes RENEWAL
Jefferson SchemmerJapanStephen Shaw RENEWAL
Munro FerenczGermanyIvan Magalhaes NEW
Isabel BowleyGermanyBernardo Dominic UNQUALIFIED
Aika InouyeUnited KingdomAnna Fali PROPOSAL
Aruna FigeroaSpainBernardo Dominic UNQUALIFIED
Leja CaldareraJapanStephen Shaw NEGOTIATION
Mujtaba NickaAustraliaAnna Fali QUALIFIED
Adams MorascaArgentinaXuxue Feng UNQUALIFIED
Izzy GarufiCanadaAsiya Javayant PROPOSAL
James ButtAustraliaAsiya Javayant UNQUALIFIED
Arvin AlbaresCanadaStephen Shaw NEGOTIATION
Nicolas IturbideFranceIvan Magalhaes NEGOTIATION
Maria MarrierCanadaIoni Bowcher QUALIFIED
Ashley DoeFranceBernardo Dominic QUALIFIED
Jeanfrancois VenereAustraliaAnna Fali PROPOSAL
Aditya KuskoIndiaOnyama Limba PROPOSAL
Maisha RulapaughItalyStephen Shaw PROPOSAL
Mayumi KolmetzJapanOnyama Limba NEGOTIATION
Murillo MaletArgentinaBernardo Dominic UNQUALIFIED
Alejandro PerinGermanyXuxue Feng RENEWAL
Rodrigues CampainRussiaIoni Bowcher QUALIFIED
James ButtJapanAnna Fali QUALIFIED
Adams MorascaJapanAsiya Javayant QUALIFIED
Maisha RulapaughItalyIoni Bowcher PROPOSAL
Kadeem FlosiSpainAsiya Javayant RENEWAL
Salvatore StockhamArgentinaAmy Elsner PROPOSAL
James ButtSpainIvan Magalhaes NEGOTIATION
James ButtRussiaStephen Shaw NEW
James ButtJapanIvan Magalhaes QUALIFIED
David DarakjyArgentinaBernardo Dominic NEGOTIATION
Aika InouyeSpainAmy Elsner NEGOTIATION
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Adams MorascaItalyIoni Bowcher QUALIFIED
Antonio CaudySpainAmy Elsner 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>