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
Nicolas IturbideIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinCanadaXuxue Feng PROPOSAL
Salvatore StockhamAustraliaIoni Bowcher NEGOTIATION
Octavia MaletItalyElwin Sharvill RENEWAL
Johnson SergiCanadaXuxue Feng RENEWAL
Arvin AlbaresFranceAmy Elsner NEW
Jeanfrancois VenereFranceIvan Magalhaes RENEWAL
Adams MorascaGermanyXuxue Feng PROPOSAL
Izzy GarufiUnited KingdomIvan Magalhaes RENEWAL
Munro FerenczUnited KingdomIoni Bowcher NEW
Kadeem FlosiIndiaIvan Magalhaes PROPOSAL
Octavia MaletUnited KingdomOnyama Limba RENEWAL
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Kaitlin OstroskyFranceAmy Elsner NEGOTIATION
Antonio CaudyArgentinaStephen Shaw RENEWAL
Julie StensethFranceIvan Magalhaes PROPOSAL
Rodrigues CampainAustraliaIvan Magalhaes NEW
Sinclair WaycottCanadaElwin Sharvill QUALIFIED
Clifford RimFranceElwin Sharvill UNQUALIFIED
Leja CaldareraUnited KingdomElwin Sharvill RENEWAL
Octavia MaletRussiaStephen Shaw QUALIFIED
Aruna FigeroaCanadaAnna Fali UNQUALIFIED
Mujtaba NickaAustraliaStephen Shaw RENEWAL
Leon OldroydRussiaAnna Fali PROPOSAL
Silvio SlusarskiRussiaElwin Sharvill UNQUALIFIED
Maisha RulapaughSpainStephen Shaw QUALIFIED
Mayumi KolmetzJapanIoni Bowcher RENEWAL
Antonio CaudyFranceElwin Sharvill UNQUALIFIED
Ivar PaprockiUnited KingdomStephen Shaw NEGOTIATION
Darci PoquetteArgentinaIoni Bowcher QUALIFIED
Maisha RulapaughCanadaBernardo Dominic PROPOSAL
Clifford RimIndiaAnna Fali UNQUALIFIED
Mujtaba NickaArgentinaIvan Magalhaes PROPOSAL
Aditya KuskoGermanyIoni Bowcher RENEWAL
Juan WieserItalyIvan Magalhaes UNQUALIFIED
Munro FerenczAustraliaIoni Bowcher NEGOTIATION
Mujtaba NickaIndiaAsiya Javayant UNQUALIFIED
Aika InouyeArgentinaAsiya Javayant NEGOTIATION
Costa DilliardSpainBernardo Dominic QUALIFIED
Jefferson SchemmerBrazilStephen Shaw UNQUALIFIED
Aditya KuskoRussiaIoni Bowcher UNQUALIFIED
Kadeem FlosiUnited KingdomElwin Sharvill PROPOSAL
Francesco ShinkoSpainElwin Sharvill UNQUALIFIED
Emily WhobreyUnited KingdomOnyama Limba NEGOTIATION
Izzy GarufiBrazilIoni Bowcher NEGOTIATION
James ButtFranceIvan Magalhaes NEGOTIATION
Jefferson SchemmerCanadaAnna Fali RENEWAL
James ButtUnited KingdomXuxue Feng UNQUALIFIED
Maisha RulapaughSpainIvan Magalhaes RENEWAL
Leja CaldareraBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
James ButtCanadaIoni Bowcher QUALIFIED
Aika InouyeIndiaStephen Shaw PROPOSAL
Maisha RulapaughItalyAnna Fali UNQUALIFIED
Aditya KuskoIndiaXuxue Feng QUALIFIED
Mayumi KolmetzFranceIoni Bowcher NEGOTIATION
Arvin AlbaresCanadaXuxue Feng QUALIFIED
Antonio CaudyIndiaAnna Fali QUALIFIED
Murillo MaletCanadaXuxue Feng NEGOTIATION
Murillo MaletBrazilAnna Fali NEW
Emily WhobreyIndiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethBrazil2026-04-24Chemel, James L Cpa RENEWAL92Stephen Shaw
1001Claire TollnerIndia2026-04-13Buckley Miller Wright NEGOTIATION47Stephen Shaw
1002Claire TollnerIndia2026-04-06Rangoni Of Florence QUALIFIED14Elwin Sharvill
1003Tony FollerItaly2026-04-09Buckley Miller Wright UNQUALIFIED34Ivan Magalhaes
1004Ivar PaprockiSpain2026-04-28Rangoni Of Florence NEW31Amy Elsner
1005Kadeem FlosiUnited Kingdom2026-04-27Benton, John B Jr NEGOTIATION41Anna Fali
1006Alejandro PerinFrance2026-04-05Chapman, Ross E Esq NEW3Ivan Magalhaes
1007Wickens NestleRussia2026-04-27Printing Dimensions UNQUALIFIED14Ivan Magalhaes
1008Ricardo GauchoAustralia2026-04-08Printing Dimensions NEGOTIATION24Amy Elsner
1009Darci PoquetteArgentina2026-04-09King, Christopher A Esq NEW96Ivan Magalhaes
1010Murillo MaletSpain2026-04-09Feiner Bros NEW75Ivan Magalhaes
1011Rodrigues CampainItaly2026-04-26Rangoni Of Florence NEW12Ioni Bowcher
1012Chavez BriddickItaly2026-04-30Printing Dimensions RENEWAL6Onyama Limba
1013Nicolas IturbideBrazil2026-05-02Chanay, Jeffrey A Esq NEW3Xuxue Feng
1014Octavia MaletGermany2026-04-22Truhlar And Truhlar Attys PROPOSAL5Ioni Bowcher
1015Jones VocelkaItaly2026-04-27Dorl, James J Esq RENEWAL52Asiya Javayant
1016Ivar PaprockiCanada2026-04-19Buckley Miller Wright PROPOSAL65Ioni Bowcher
1017Clifford RimArgentina2026-04-21Printing Dimensions RENEWAL29Stephen Shaw
1018Adams MorascaUnited Kingdom2026-05-02Chemel, James L Cpa RENEWAL52Anna Fali
1019Alejandro PerinBrazil2026-05-01Chapman, Ross E Esq PROPOSAL88Stephen Shaw
1020Jennifer AmigonCanada2026-04-27Feltz Printing Service NEGOTIATION33Xuxue Feng
1021Izzy GarufiItaly2026-04-18King, Christopher A Esq UNQUALIFIED72Amy Elsner
1022James ButtItaly2026-04-28Commercial Press PROPOSAL88Ioni Bowcher
1023Aruna FigeroaArgentina2026-04-26Dorl, James J Esq RENEWAL10Stephen Shaw
1024Octavia MaletAustralia2026-04-28Chapman, Ross E Esq QUALIFIED0Xuxue Feng
1025Maria MarrierRussia2026-04-25Rousseaux, Michael Esq NEW30Onyama Limba
1026Morrow RutaCanada2026-04-24Benton, John B Jr UNQUALIFIED37Bernardo Dominic
1027Izzy GarufiFrance2026-04-21Rousseaux, Michael Esq PROPOSAL52Amy Elsner
1028Juan WieserSpain2026-04-11Rangoni Of Florence RENEWAL14Asiya Javayant
1029Jefferson SchemmerIndia2026-04-29Truhlar And Truhlar Attys UNQUALIFIED46Anna Fali
1030Rodrigues CampainRussia2026-04-13Chanay, Jeffrey A Esq PROPOSAL70Xuxue Feng
1031Nicolas IturbideArgentina2026-04-12Chapman, Ross E Esq NEGOTIATION14Ioni Bowcher
1032Ashley DoeSpain2026-04-17Chapman, Ross E Esq QUALIFIED26Xuxue Feng
1033Sinclair WaycottRussia2026-04-27Dorl, James J Esq NEW15Asiya Javayant
1034Izzy GarufiFrance2026-04-06King, Christopher A Esq PROPOSAL88Anna Fali
1035Francesco ShinkoIndia2026-04-30Benton, John B Jr NEW47Stephen Shaw
1036Maria MarrierRussia2026-04-08Chapman, Ross E Esq QUALIFIED55Ioni Bowcher
1037Greenwood BologniaFrance2026-04-29Chanay, Jeffrey A Esq NEW95Onyama Limba
1038Leon OldroydItaly2026-04-29Printing Dimensions NEGOTIATION88Amy Elsner
1039Rodrigues CampainSpain2026-05-03Morlong Associates NEW79Onyama Limba
1040Clifford RimIndia2026-04-09Truhlar And Truhlar Attys RENEWAL26Xuxue Feng
1041Aruna FigeroaUnited Kingdom2026-04-06Printing Dimensions UNQUALIFIED93Stephen Shaw
1042Tony FollerItaly2026-05-02Commercial Press RENEWAL24Xuxue Feng
1043Cody SaylorsRussia2026-04-23Printing Dimensions NEW32Onyama Limba
1044Greenwood BologniaAustralia2026-04-24Rousseaux, Michael Esq QUALIFIED36Xuxue Feng
1045Salvatore StockhamIndia2026-04-18Benton, John B Jr UNQUALIFIED30Ivan Magalhaes
1046Sinclair WaycottArgentina2026-04-30Commercial Press RENEWAL54Onyama Limba
1047Rodrigues CampainRussia2026-04-23Rousseaux, Michael Esq QUALIFIED68Ivan Magalhaes
1048Octavia MaletAustralia2026-04-25Chanay, Jeffrey A Esq PROPOSAL44Anna Fali
1049Deepesh ChuiArgentina2026-04-26Chapman, Ross E Esq PROPOSAL89Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi KolmetzRussiaIoni Bowcher QUALIFIED
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Silvio SlusarskiIndiaAmy Elsner UNQUALIFIED
Aruna FigeroaArgentinaOnyama Limba NEW
Darci PoquetteArgentinaAsiya Javayant RENEWAL
Misaki RoysterJapanOnyama Limba NEGOTIATION
Jeanfrancois VenereGermanyAmy Elsner QUALIFIED
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Deepesh ChuiSpainElwin Sharvill NEGOTIATION
Tony FollerItalyIvan Magalhaes NEGOTIATION
Misaki RoysterAustraliaIoni Bowcher QUALIFIED
Johnson SergiUnited KingdomXuxue Feng UNQUALIFIED
Rodrigues CampainCanadaAsiya Javayant QUALIFIED
Ivar PaprockiRussiaElwin Sharvill UNQUALIFIED
Nicolas IturbideFranceIoni Bowcher QUALIFIED
Izzy GarufiArgentinaAsiya Javayant UNQUALIFIED
Mayumi KolmetzIndiaStephen Shaw UNQUALIFIED
Smith GlickAustraliaAsiya Javayant PROPOSAL
Darci PoquetteAustraliaStephen Shaw NEGOTIATION
Morrow RutaCanadaIoni Bowcher PROPOSAL
Aruna FigeroaCanadaElwin Sharvill PROPOSAL
Ivar PaprockiBrazilXuxue Feng NEW
Aditya KuskoJapanAnna Fali QUALIFIED
Kadeem FlosiJapanIoni Bowcher RENEWAL
Morrow RutaAustraliaIvan Magalhaes NEGOTIATION
Jeanfrancois VenereBrazilXuxue Feng UNQUALIFIED
Deepesh ChuiSpainElwin Sharvill PROPOSAL
Clifford RimBrazilStephen Shaw QUALIFIED
Jeanfrancois VenereJapanBernardo Dominic NEW
Morrow RutaItalyIoni Bowcher QUALIFIED
Murillo MaletGermanyAsiya Javayant UNQUALIFIED
Juan WieserUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaIndiaXuxue Feng PROPOSAL
Arvin AlbaresItalyAnna Fali UNQUALIFIED
Arvin AlbaresJapanStephen Shaw NEW
Johnson SergiItalyIoni Bowcher NEGOTIATION
Emily WhobreyCanadaAsiya Javayant NEGOTIATION
Antonio CaudyRussiaElwin Sharvill NEW
Faith GillianBrazilOnyama Limba NEGOTIATION
Wickens NestleBrazilAsiya Javayant NEW
Johnson SergiIndiaAmy Elsner UNQUALIFIED
Murillo MaletFranceXuxue Feng UNQUALIFIED
Arvin AlbaresGermanyXuxue Feng PROPOSAL
Ricardo GauchoJapanBernardo Dominic NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Jones VocelkaSpainIvan Magalhaes RENEWAL
Costa DilliardJapanElwin Sharvill RENEWAL
Stacey MacleadArgentinaOnyama Limba QUALIFIED
Wickens NestleArgentinaAsiya Javayant QUALIFIED
Tony FollerAustraliaIoni Bowcher QUALIFIED
Frozen Columns
Name
Arvin Albares
Jennifer Amigon
Faith Gillian
Silvio Slusarski
Maria Marrier
Octavia Malet
Cody Saylors
David Darakjy
Adams Morasca
Darci Poquette
Francesco Shinko
Johnson Sergi
Emily Whobrey
David Darakjy
Leja Caldarera
Jennifer Amigon
Francesco Shinko
Faith Gillian
Misaki Royster
Ivar Paprocki
Maria Marrier
Chavez Briddick
Ashley Doe
Leon Oldroyd
Silvio Slusarski
Sinclair Waycott
Claire Tollner
Jefferson Schemmer
Maisha Rulapaugh
Nicolas Iturbide
Izzy Garufi
Ashley Doe
Kaitlin Ostrosky
Aditya Kusko
Silvio Slusarski
Arvin Albares
Isabel Bowley
Adams Morasca
Greenwood Bolognia
Isabel Bowley
Cody Saylors
Mujtaba Nicka
Francesco Shinko
Antonio Caudy
Claire Tollner
Kaitlin Ostrosky
Misaki Royster
Kaitlin Ostrosky
Izzy Garufi
Greenwood Bolognia
IdCountryDate
1000Australia2026-04-19
1001United Kingdom2026-04-30
1002Russia2026-04-13
1003Italy2026-04-10
1004Argentina2026-04-16
1005India2026-04-20
1006Argentina2026-04-20
1007Brazil2026-05-03
1008Japan2026-04-20
1009Germany2026-04-06
1010Australia2026-04-22
1011Spain2026-05-01
1012Argentina2026-05-01
1013Brazil2026-04-24
1014France2026-04-19
1015Russia2026-04-21
1016Brazil2026-05-04
1017Russia2026-04-26
1018India2026-04-15
1019Russia2026-04-09
1020France2026-04-21
1021France2026-04-24
1022Spain2026-04-27
1023United Kingdom2026-04-25
1024Argentina2026-04-17
1025Canada2026-05-01
1026France2026-04-14
1027France2026-04-25
1028Japan2026-05-01
1029India2026-05-03
1030Brazil2026-05-04
1031Russia2026-04-20
1032Spain2026-04-27
1033United Kingdom2026-04-28
1034Italy2026-04-21
1035Spain2026-04-15
1036Italy2026-04-27
1037Russia2026-04-23
1038Canada2026-04-16
1039Canada2026-04-27
1040United Kingdom2026-04-27
1041France2026-04-17
1042United Kingdom2026-04-22
1043India2026-04-30
1044France2026-04-25
1045Japan2026-04-16
1046Japan2026-04-14
1047Germany2026-04-25
1048Spain2026-04-25
1049Italy2026-04-08

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Canada2026-04-13
Aruna Figeroa1001Spain2026-04-10
Costa Dilliard1002India2026-04-29
Aruna Figeroa1003Canada2026-04-23
Jones Vocelka1004Brazil2026-04-08
Munro Ferencz1005Spain2026-05-01
Aditya Kusko1006India2026-04-20
James Butt1007Japan2026-05-02
Morrow Ruta1008United Kingdom2026-04-08
Salvatore Stockham1009Australia2026-04-20
Wickens Nestle1010Germany2026-04-05
Kadeem Flosi1011Russia2026-04-14
Francesco Shinko1012Argentina2026-04-27
Maisha Rulapaugh1013Italy2026-04-29
Isabel Bowley1014United Kingdom2026-04-17
Claire Tollner1015Italy2026-04-11
Murillo Malet1016Brazil2026-04-05
Izzy Garufi1017Canada2026-04-13
Izzy Garufi1018Brazil2026-04-17
Cody Saylors1019Japan2026-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerArgentinaBernardo Dominic NEW
Costa DilliardGermanyBernardo Dominic NEGOTIATION
Jennifer AmigonGermanyAmy Elsner UNQUALIFIED
Faith GillianAustraliaBernardo Dominic RENEWAL
Deepesh ChuiJapanXuxue Feng PROPOSAL
Emily WhobreyGermanyXuxue Feng NEGOTIATION
Francesco ShinkoCanadaElwin Sharvill QUALIFIED
Francesco ShinkoBrazilXuxue Feng NEW
Jeanfrancois VenereSpainIoni Bowcher UNQUALIFIED
Arvin AlbaresIndiaIoni Bowcher UNQUALIFIED
Maisha RulapaughIndiaIoni Bowcher QUALIFIED
Maisha RulapaughIndiaBernardo Dominic NEW
Clifford RimBrazilElwin Sharvill UNQUALIFIED
Mujtaba NickaJapanStephen Shaw QUALIFIED
Alejandro PerinArgentinaOnyama Limba PROPOSAL
Morrow RutaCanadaBernardo Dominic RENEWAL
Alejandro PerinAustraliaAsiya Javayant PROPOSAL
Johnson SergiSpainAnna Fali UNQUALIFIED
Chavez BriddickBrazilAsiya Javayant NEW
Maria MarrierFranceXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaAnna Fali UNQUALIFIED
Jeanfrancois VenereArgentinaIvan Magalhaes NEW
Johnson SergiJapanXuxue Feng RENEWAL
Jennifer AmigonSpainIoni Bowcher NEGOTIATION
Mayumi KolmetzJapanXuxue Feng RENEWAL
Mayumi KolmetzRussiaAsiya Javayant UNQUALIFIED
Jennifer AmigonRussiaAnna Fali NEGOTIATION
Cody SaylorsItalyOnyama Limba QUALIFIED
Johnson SergiUnited KingdomOnyama Limba RENEWAL
Ivar PaprockiRussiaIvan Magalhaes NEW
Octavia MaletBrazilIvan Magalhaes UNQUALIFIED
Leon OldroydJapanXuxue Feng QUALIFIED
Ashley DoeAustraliaStephen Shaw UNQUALIFIED
Kaitlin OstroskyCanadaOnyama Limba RENEWAL
Morrow RutaFranceAsiya Javayant PROPOSAL
Costa DilliardGermanyAnna Fali PROPOSAL
Kadeem FlosiCanadaXuxue Feng NEGOTIATION
Sinclair WaycottCanadaStephen Shaw NEW
Leja CaldareraRussiaBernardo Dominic UNQUALIFIED
Aika InouyeAustraliaOnyama Limba 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>