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
Deepesh ChuiArgentinaElwin Sharvill RENEWAL
Arvin AlbaresArgentinaStephen Shaw PROPOSAL
Kaitlin OstroskyCanadaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiJapanStephen Shaw RENEWAL
Kadeem FlosiGermanyAnna Fali PROPOSAL
Tony FollerItalyIoni Bowcher QUALIFIED
Chavez BriddickUnited KingdomXuxue Feng NEW
Darci PoquetteIndiaOnyama Limba NEGOTIATION
Jeanfrancois VenereCanadaOnyama Limba UNQUALIFIED
Mayumi KolmetzBrazilElwin Sharvill RENEWAL
Jones VocelkaFranceIoni Bowcher PROPOSAL
Jeanfrancois VenereIndiaBernardo Dominic QUALIFIED
Deepesh ChuiBrazilIoni Bowcher UNQUALIFIED
Aruna FigeroaAustraliaStephen Shaw QUALIFIED
David DarakjyItalyOnyama Limba UNQUALIFIED
Chavez BriddickAustraliaIoni Bowcher QUALIFIED
Octavia MaletRussiaBernardo Dominic PROPOSAL
Faith GillianCanadaBernardo Dominic NEW
Misaki RoysterFranceOnyama Limba RENEWAL
Maria MarrierItalyOnyama Limba NEGOTIATION
Salvatore StockhamCanadaElwin Sharvill RENEWAL
Stacey MacleadCanadaIvan Magalhaes NEGOTIATION
Juan WieserCanadaStephen Shaw UNQUALIFIED
Antonio CaudySpainIoni Bowcher QUALIFIED
Mujtaba NickaFranceAsiya Javayant PROPOSAL
Salvatore StockhamRussiaIoni Bowcher UNQUALIFIED
Maisha RulapaughBrazilElwin Sharvill RENEWAL
Jennifer AmigonIndiaAsiya Javayant NEGOTIATION
Leja CaldareraRussiaXuxue Feng QUALIFIED
Antonio CaudyCanadaXuxue Feng PROPOSAL
Murillo MaletFranceStephen Shaw QUALIFIED
Mayumi KolmetzIndiaElwin Sharvill PROPOSAL
David DarakjyCanadaOnyama Limba NEW
Stacey MacleadAustraliaXuxue Feng UNQUALIFIED
Stacey MacleadCanadaOnyama Limba RENEWAL
Johnson SergiUnited KingdomAnna Fali NEW
Leja CaldareraCanadaAmy Elsner QUALIFIED
Nicolas IturbideSpainAnna Fali PROPOSAL
Alejandro PerinIndiaAnna Fali PROPOSAL
Aruna FigeroaUnited KingdomAnna Fali PROPOSAL
Aruna FigeroaBrazilAmy Elsner QUALIFIED
Julie StensethUnited KingdomAmy Elsner NEW
Mujtaba NickaGermanyBernardo Dominic RENEWAL
Isabel BowleyJapanAmy Elsner PROPOSAL
Smith GlickArgentinaIoni Bowcher PROPOSAL
Aditya KuskoGermanyAmy Elsner UNQUALIFIED
David DarakjyGermanyAsiya Javayant UNQUALIFIED
Salvatore StockhamRussiaXuxue Feng UNQUALIFIED
Costa DilliardItalyElwin Sharvill RENEWAL
James ButtCanadaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamSpainAmy Elsner NEW
Clifford RimJapanXuxue Feng NEGOTIATION
Smith GlickGermanyElwin Sharvill RENEWAL
Ricardo GauchoFranceIvan Magalhaes RENEWAL
Chavez BriddickBrazilElwin Sharvill PROPOSAL
Adams MorascaArgentinaBernardo Dominic NEW
Adams MorascaUnited KingdomXuxue Feng UNQUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Isabel BowleyGermanyIoni Bowcher QUALIFIED
Alejandro PerinJapanAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletIndia2026-05-04Rousseaux, Michael Esq RENEWAL49Asiya Javayant
1001Kaitlin OstroskyArgentina2026-05-22Feiner Bros NEGOTIATION33Stephen Shaw
1002Leon OldroydGermany2026-04-27Feltz Printing Service QUALIFIED28Onyama Limba
1003Maria MarrierBrazil2026-04-30Chemel, James L Cpa UNQUALIFIED68Asiya Javayant
1004Faith GillianBrazil2026-04-30Printing Dimensions QUALIFIED77Asiya Javayant
1005Mayumi KolmetzUnited Kingdom2026-05-09Feltz Printing Service UNQUALIFIED10Amy Elsner
1006David DarakjyRussia2026-05-15Benton, John B Jr QUALIFIED42Asiya Javayant
1007Darci PoquetteGermany2026-05-21Benton, John B Jr UNQUALIFIED68Anna Fali
1008Kaitlin OstroskyGermany2026-05-11Morlong Associates UNQUALIFIED85Elwin Sharvill
1009Jennifer AmigonRussia2026-05-16Commercial Press RENEWAL36Asiya Javayant
1010Tony FollerBrazil2026-05-04King, Christopher A Esq NEGOTIATION47Xuxue Feng
1011Izzy GarufiRussia2026-05-16Dorl, James J Esq NEGOTIATION78Anna Fali
1012Aika InouyeItaly2026-05-02Rangoni Of Florence NEGOTIATION2Onyama Limba
1013Jones VocelkaIndia2026-05-15Benton, John B Jr RENEWAL91Asiya Javayant
1014Jeanfrancois VenereArgentina2026-05-26Dorl, James J Esq NEW89Ivan Magalhaes
1015Ricardo GauchoJapan2026-05-11Dorl, James J Esq RENEWAL98Ivan Magalhaes
1016Rodrigues CampainArgentina2026-05-23Benton, John B Jr UNQUALIFIED32Elwin Sharvill
1017Mayumi KolmetzIndia2026-05-03Morlong Associates NEGOTIATION87Asiya Javayant
1018Francesco ShinkoGermany2026-05-17Rangoni Of Florence RENEWAL40Stephen Shaw
1019Nicolas IturbideFrance2026-05-11Feltz Printing Service NEGOTIATION83Bernardo Dominic
1020Salvatore StockhamRussia2026-05-17Chapman, Ross E Esq UNQUALIFIED83Anna Fali
1021David DarakjyIndia2026-05-11Morlong Associates NEGOTIATION34Ivan Magalhaes
1022Cody SaylorsCanada2026-05-17Rangoni Of Florence QUALIFIED26Xuxue Feng
1023Emily WhobreyCanada2026-05-08Chapman, Ross E Esq UNQUALIFIED55Bernardo Dominic
1024Antonio CaudyCanada2026-05-03Truhlar And Truhlar Attys NEGOTIATION85Elwin Sharvill
1025Mujtaba NickaCanada2026-05-22Morlong Associates RENEWAL37Onyama Limba
1026Antonio CaudyFrance2026-05-12Rousseaux, Michael Esq NEGOTIATION86Anna Fali
1027Jennifer AmigonArgentina2026-05-05Morlong Associates NEGOTIATION0Ivan Magalhaes
1028Deepesh ChuiArgentina2026-05-04King, Christopher A Esq NEW83Amy Elsner
1029Aditya KuskoArgentina2026-05-10Feiner Bros NEW38Ivan Magalhaes
1030Morrow RutaItaly2026-05-20Benton, John B Jr NEGOTIATION56Xuxue Feng
1031Isabel BowleyFrance2026-05-07Printing Dimensions PROPOSAL8Xuxue Feng
1032Costa DilliardCanada2026-05-16Chapman, Ross E Esq UNQUALIFIED51Elwin Sharvill
1033Nicolas IturbideRussia2026-05-21Benton, John B Jr NEGOTIATION36Xuxue Feng
1034Mujtaba NickaCanada2026-05-04Dorl, James J Esq NEW6Stephen Shaw
1035Ricardo GauchoSpain2026-05-03Benton, John B Jr PROPOSAL0Bernardo Dominic
1036Greenwood BologniaGermany2026-05-04Truhlar And Truhlar Attys QUALIFIED35Ioni Bowcher
1037Deepesh ChuiRussia2026-05-21Truhlar And Truhlar Attys RENEWAL40Ivan Magalhaes
1038Izzy GarufiUnited Kingdom2026-05-18Feiner Bros RENEWAL45Bernardo Dominic
1039Aruna FigeroaCanada2026-05-25Benton, John B Jr NEW67Xuxue Feng
1040Deepesh ChuiSpain2026-05-16Truhlar And Truhlar Attys RENEWAL47Anna Fali
1041Greenwood BologniaSpain2026-05-20King, Christopher A Esq UNQUALIFIED52Xuxue Feng
1042Jones VocelkaAustralia2026-05-19Rousseaux, Michael Esq NEW13Amy Elsner
1043Kaitlin OstroskyGermany2026-05-16Chapman, Ross E Esq QUALIFIED46Elwin Sharvill
1044Aika InouyeFrance2026-05-03Dorl, James J Esq UNQUALIFIED54Bernardo Dominic
1045Izzy GarufiBrazil2026-05-16Commercial Press NEW79Stephen Shaw
1046Tony FollerCanada2026-05-24Feiner Bros NEGOTIATION16Bernardo Dominic
1047Costa DilliardItaly2026-05-03Feltz Printing Service QUALIFIED35Amy Elsner
1048Sinclair WaycottSpain2026-05-04Rousseaux, Michael Esq PROPOSAL89Elwin Sharvill
1049Greenwood BologniaIndia2026-05-11Morlong Associates NEGOTIATION50Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerRussiaAmy Elsner QUALIFIED
Deepesh ChuiSpainXuxue Feng NEGOTIATION
Jones VocelkaGermanyXuxue Feng UNQUALIFIED
Morrow RutaGermanyXuxue Feng NEW
Morrow RutaArgentinaBernardo Dominic PROPOSAL
Aruna FigeroaFranceAmy Elsner UNQUALIFIED
Morrow RutaFranceAmy Elsner QUALIFIED
Sinclair WaycottJapanAmy Elsner NEW
Costa DilliardRussiaAsiya Javayant QUALIFIED
Ivar PaprockiFranceStephen Shaw UNQUALIFIED
Deepesh ChuiIndiaAnna Fali RENEWAL
Maisha RulapaughGermanyAnna Fali QUALIFIED
Emily WhobreyUnited KingdomStephen Shaw NEW
Izzy GarufiUnited KingdomOnyama Limba NEW
Jones VocelkaSpainIvan Magalhaes QUALIFIED
Murillo MaletCanadaAnna Fali RENEWAL
Isabel BowleyUnited KingdomElwin Sharvill QUALIFIED
Maisha RulapaughArgentinaAsiya Javayant RENEWAL
Antonio CaudyFranceStephen Shaw UNQUALIFIED
Ricardo GauchoJapanIvan Magalhaes NEGOTIATION
Tony FollerSpainAsiya Javayant PROPOSAL
Maria MarrierJapanStephen Shaw RENEWAL
Greenwood BologniaItalyIoni Bowcher UNQUALIFIED
Mujtaba NickaUnited KingdomAnna Fali NEW
Kadeem FlosiItalyBernardo Dominic RENEWAL
Costa DilliardItalyAsiya Javayant QUALIFIED
Octavia MaletIndiaOnyama Limba RENEWAL
Ivar PaprockiGermanyStephen Shaw NEW
Ivar PaprockiBrazilElwin Sharvill QUALIFIED
Kadeem FlosiItalyIvan Magalhaes NEW
Misaki RoysterAustraliaAsiya Javayant NEW
Izzy GarufiCanadaIvan Magalhaes QUALIFIED
Francesco ShinkoAustraliaOnyama Limba NEGOTIATION
Izzy GarufiJapanXuxue Feng UNQUALIFIED
Francesco ShinkoUnited KingdomAmy Elsner RENEWAL
Octavia MaletSpainBernardo Dominic NEW
Jeanfrancois VenereIndiaXuxue Feng UNQUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant QUALIFIED
Antonio CaudyUnited KingdomBernardo Dominic NEGOTIATION
Julie StensethCanadaAnna Fali QUALIFIED
Morrow RutaUnited KingdomXuxue Feng RENEWAL
Kadeem FlosiIndiaIoni Bowcher RENEWAL
Smith GlickUnited KingdomBernardo Dominic NEGOTIATION
Johnson SergiRussiaOnyama Limba PROPOSAL
Kaitlin OstroskyGermanyBernardo Dominic NEGOTIATION
Sinclair WaycottJapanAsiya Javayant NEGOTIATION
Silvio SlusarskiSpainAsiya Javayant NEGOTIATION
Wickens NestleGermanyOnyama Limba QUALIFIED
Jeanfrancois VenereArgentinaIoni Bowcher QUALIFIED
Frozen Columns
Name
Silvio Slusarski
Leon Oldroyd
Kadeem Flosi
Morrow Ruta
Kaitlin Ostrosky
Greenwood Bolognia
Greenwood Bolognia
Kaitlin Ostrosky
Salvatore Stockham
Sinclair Waycott
Juan Wieser
Mayumi Kolmetz
Juan Wieser
Nicolas Iturbide
Johnson Sergi
Mujtaba Nicka
Chavez Briddick
Ivar Paprocki
Ashley Doe
Jefferson Schemmer
Maria Marrier
Clifford Rim
Tony Foller
Emily Whobrey
Alejandro Perin
Antonio Caudy
Wickens Nestle
Izzy Garufi
Sinclair Waycott
Emily Whobrey
Juan Wieser
Maria Marrier
Misaki Royster
Leja Caldarera
Wickens Nestle
Ashley Doe
David Darakjy
Deepesh Chui
Julie Stenseth
Leon Oldroyd
Rodrigues Campain
Johnson Sergi
Jeanfrancois Venere
Juan Wieser
Misaki Royster
Clifford Rim
Aditya Kusko
Alejandro Perin
Darci Poquette
Maria Marrier
IdCountryDate
1000India2026-05-18
1001Japan2026-05-22
1002Germany2026-04-27
1003France2026-05-26
1004Japan2026-04-29
1005Brazil2026-04-29
1006India2026-05-03
1007Australia2026-05-18
1008Brazil2026-05-15
1009Australia2026-05-11
1010India2026-05-12
1011Spain2026-05-13
1012Brazil2026-05-05
1013France2026-04-29
1014Canada2026-05-24
1015Australia2026-05-23
1016France2026-04-28
1017France2026-05-01
1018Japan2026-05-21
1019Russia2026-04-29
1020Russia2026-05-04
1021Italy2026-05-20
1022Canada2026-05-11
1023Australia2026-05-01
1024Brazil2026-05-08
1025Canada2026-04-27
1026Russia2026-05-13
1027Argentina2026-05-20
1028Russia2026-05-10
1029Argentina2026-05-15
1030Germany2026-05-17
1031Germany2026-05-11
1032India2026-05-17
1033Germany2026-05-17
1034India2026-05-02
1035India2026-05-18
1036Germany2026-05-23
1037Canada2026-05-02
1038Russia2026-05-18
1039India2026-05-22
1040Spain2026-05-14
1041France2026-05-17
1042Canada2026-05-03
1043Japan2026-05-07
1044Argentina2026-05-06
1045India2026-05-07
1046Argentina2026-05-23
1047India2026-04-30
1048Russia2026-05-13
1049Argentina2026-05-10

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Argentina2026-05-01
Aruna Figeroa1001France2026-04-30
Mayumi Kolmetz1002Spain2026-05-12
Mujtaba Nicka1003Spain2026-05-18
Aruna Figeroa1004Russia2026-05-09
Alejandro Perin1005Germany2026-05-07
Ivar Paprocki1006Japan2026-05-13
Nicolas Iturbide1007Canada2026-04-28
Murillo Malet1008Japan2026-05-18
Claire Tollner1009France2026-05-16
Kadeem Flosi1010Canada2026-05-05
Aruna Figeroa1011Brazil2026-05-08
Jennifer Amigon1012Russia2026-05-26
David Darakjy1013Russia2026-05-15
Izzy Garufi1014United Kingdom2026-05-12
Maisha Rulapaugh1015India2026-05-09
Jeanfrancois Venere1016Argentina2026-04-27
Silvio Slusarski1017Russia2026-05-14
Emily Whobrey1018Argentina2026-05-05
Francesco Shinko1019Spain2026-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaAsiya Javayant QUALIFIED
Deepesh ChuiItalyStephen Shaw NEW
Cody SaylorsFranceBernardo Dominic NEW
Rodrigues CampainJapanAmy Elsner NEGOTIATION
Costa DilliardGermanyAnna Fali QUALIFIED
Jones VocelkaItalyIvan Magalhaes NEW
Leon OldroydAustraliaAnna Fali UNQUALIFIED
Antonio CaudyAustraliaIoni Bowcher NEGOTIATION
Ivar PaprockiSpainBernardo Dominic NEGOTIATION
Faith GillianIndiaAmy Elsner PROPOSAL
Jeanfrancois VenereIndiaAsiya Javayant NEW
Silvio SlusarskiAustraliaIvan Magalhaes PROPOSAL
Costa DilliardIndiaIoni Bowcher QUALIFIED
Faith GillianUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois VenereArgentinaAsiya Javayant RENEWAL
Murillo MaletSpainBernardo Dominic PROPOSAL
Jennifer AmigonAustraliaIoni Bowcher PROPOSAL
Deepesh ChuiJapanStephen Shaw QUALIFIED
Julie StensethIndiaAmy Elsner PROPOSAL
Ricardo GauchoSpainElwin Sharvill NEW
Misaki RoysterIndiaOnyama Limba QUALIFIED
Mujtaba NickaFranceAmy Elsner NEGOTIATION
Mujtaba NickaAustraliaAmy Elsner UNQUALIFIED
Murillo MaletSpainElwin Sharvill UNQUALIFIED
James ButtItalyIvan Magalhaes PROPOSAL
Aditya KuskoRussiaElwin Sharvill RENEWAL
Nicolas IturbideFranceStephen Shaw UNQUALIFIED
Octavia MaletBrazilAmy Elsner NEW
Ricardo GauchoSpainStephen Shaw UNQUALIFIED
Mayumi KolmetzGermanyOnyama Limba PROPOSAL
Chavez BriddickArgentinaXuxue Feng NEW
Francesco ShinkoFranceOnyama Limba QUALIFIED
Maria MarrierCanadaAsiya Javayant QUALIFIED
Wickens NestleJapanAsiya Javayant PROPOSAL
Cody SaylorsSpainIvan Magalhaes PROPOSAL
Faith GillianIndiaAsiya Javayant QUALIFIED
Julie StensethUnited KingdomXuxue Feng RENEWAL
Alejandro PerinUnited KingdomAnna Fali NEW
Aditya KuskoUnited KingdomAmy Elsner NEGOTIATION
Deepesh ChuiUnited KingdomStephen Shaw PROPOSAL

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