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
Aruna FigeroaItalyAsiya Javayant QUALIFIED
Mujtaba NickaJapanXuxue Feng RENEWAL
Murillo MaletRussiaXuxue Feng QUALIFIED
Tony FollerArgentinaIvan Magalhaes NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic QUALIFIED
Faith GillianSpainAnna Fali QUALIFIED
Darci PoquetteJapanStephen Shaw NEW
Clifford RimRussiaIoni Bowcher PROPOSAL
Julie StensethUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba NickaIndiaXuxue Feng QUALIFIED
Deepesh ChuiSpainBernardo Dominic PROPOSAL
Johnson SergiAustraliaBernardo Dominic NEW
David DarakjyIndiaIvan Magalhaes RENEWAL
Tony FollerRussiaXuxue Feng UNQUALIFIED
Maria MarrierAustraliaStephen Shaw NEW
Alejandro PerinItalyAnna Fali QUALIFIED
Maisha RulapaughAustraliaAmy Elsner NEW
Chavez BriddickCanadaXuxue Feng NEGOTIATION
Smith GlickGermanyAsiya Javayant NEW
Maria MarrierJapanAmy Elsner NEGOTIATION
Stacey MacleadSpainAnna Fali NEGOTIATION
Leon OldroydAustraliaIoni Bowcher NEW
Morrow RutaRussiaIoni Bowcher PROPOSAL
Faith GillianSpainElwin Sharvill RENEWAL
Aditya KuskoGermanyBernardo Dominic NEW
Rodrigues CampainItalyXuxue Feng NEGOTIATION
Costa DilliardSpainBernardo Dominic QUALIFIED
Antonio CaudyGermanyAmy Elsner QUALIFIED
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Cody SaylorsGermanyAmy Elsner RENEWAL
Maria MarrierBrazilIvan Magalhaes QUALIFIED
Aika InouyeIndiaAsiya Javayant RENEWAL
Deepesh ChuiCanadaXuxue Feng UNQUALIFIED
Silvio SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Alejandro PerinIndiaAnna Fali PROPOSAL
Greenwood BologniaAustraliaIoni Bowcher RENEWAL
Greenwood BologniaUnited KingdomOnyama Limba NEW
Cody SaylorsGermanyOnyama Limba UNQUALIFIED
Claire TollnerUnited KingdomOnyama Limba NEW
Jones VocelkaFranceAmy Elsner RENEWAL
Salvatore StockhamArgentinaXuxue Feng NEW
Arvin AlbaresCanadaElwin Sharvill QUALIFIED
Ashley DoeArgentinaStephen Shaw NEGOTIATION
Nicolas IturbideJapanBernardo Dominic PROPOSAL
Jones VocelkaSpainBernardo Dominic QUALIFIED
Faith GillianRussiaOnyama Limba NEW
Clifford RimRussiaAnna Fali UNQUALIFIED
Rodrigues CampainFranceStephen Shaw NEGOTIATION
Antonio CaudyArgentinaOnyama Limba UNQUALIFIED
Julie StensethJapanAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiJapanXuxue Feng NEGOTIATION
Munro FerenczFranceIvan Magalhaes QUALIFIED
Maisha RulapaughAustraliaIvan Magalhaes PROPOSAL
Arvin AlbaresCanadaIoni Bowcher PROPOSAL
Clifford RimArgentinaAnna Fali NEW
Jefferson SchemmerBrazilAnna Fali PROPOSAL
Emily WhobreySpainBernardo Dominic NEW
Claire TollnerJapanOnyama Limba QUALIFIED
Smith GlickUnited KingdomXuxue Feng RENEWAL
Chavez BriddickArgentinaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereSpain2026-04-22Morlong Associates QUALIFIED83Ioni Bowcher
1001Misaki RoysterBrazil2026-04-25Rousseaux, Michael Esq RENEWAL69Stephen Shaw
1002Ivar PaprockiBrazil2026-04-10Printing Dimensions QUALIFIED18Asiya Javayant
1003Ashley DoeCanada2026-05-03Feiner Bros UNQUALIFIED45Ioni Bowcher
1004Maisha RulapaughAustralia2026-04-14Benton, John B Jr PROPOSAL79Asiya Javayant
1005Sinclair WaycottAustralia2026-04-23Benton, John B Jr NEGOTIATION47Amy Elsner
1006Costa DilliardUnited Kingdom2026-04-14Chanay, Jeffrey A Esq RENEWAL47Bernardo Dominic
1007Mujtaba NickaAustralia2026-04-11Printing Dimensions NEGOTIATION37Elwin Sharvill
1008Octavia MaletGermany2026-04-29Morlong Associates UNQUALIFIED74Anna Fali
1009Juan WieserIndia2026-04-28Chemel, James L Cpa NEW56Xuxue Feng
1010Alejandro PerinArgentina2026-04-11Rousseaux, Michael Esq RENEWAL55Amy Elsner
1011Maisha RulapaughUnited Kingdom2026-04-25Printing Dimensions QUALIFIED89Ioni Bowcher
1012Cody SaylorsItaly2026-04-12Truhlar And Truhlar Attys NEW67Ivan Magalhaes
1013Aditya KuskoItaly2026-05-01Chapman, Ross E Esq RENEWAL24Ivan Magalhaes
1014Arvin AlbaresIndia2026-04-26Commercial Press NEW0Ivan Magalhaes
1015Chavez BriddickSpain2026-04-07Rangoni Of Florence NEW22Ioni Bowcher
1016Deepesh ChuiJapan2026-04-05Chanay, Jeffrey A Esq UNQUALIFIED76Onyama Limba
1017Jeanfrancois VenereCanada2026-05-02Rousseaux, Michael Esq QUALIFIED1Onyama Limba
1018Emily WhobreyIndia2026-05-01Dorl, James J Esq PROPOSAL12Bernardo Dominic
1019Costa DilliardArgentina2026-04-25King, Christopher A Esq QUALIFIED49Stephen Shaw
1020Maisha RulapaughBrazil2026-04-27Truhlar And Truhlar Attys PROPOSAL87Amy Elsner
1021Leja CaldareraIndia2026-04-30Dorl, James J Esq UNQUALIFIED95Anna Fali
1022Smith GlickBrazil2026-04-29Feltz Printing Service NEGOTIATION90Onyama Limba
1023Nicolas IturbideUnited Kingdom2026-04-21Feiner Bros PROPOSAL26Xuxue Feng
1024Kadeem FlosiSpain2026-04-09Morlong Associates NEGOTIATION25Bernardo Dominic
1025Leon OldroydItaly2026-04-26Dorl, James J Esq RENEWAL72Onyama Limba
1026David DarakjyFrance2026-04-08Benton, John B Jr PROPOSAL97Ioni Bowcher
1027Jennifer AmigonUnited Kingdom2026-04-14Buckley Miller Wright NEGOTIATION28Asiya Javayant
1028Aruna FigeroaSpain2026-04-13Chanay, Jeffrey A Esq PROPOSAL97Xuxue Feng
1029Johnson SergiFrance2026-04-19Chemel, James L Cpa NEW51Ivan Magalhaes
1030Murillo MaletArgentina2026-04-25Feltz Printing Service NEW90Anna Fali
1031Izzy GarufiJapan2026-04-29Benton, John B Jr NEGOTIATION10Amy Elsner
1032Murillo MaletBrazil2026-04-16Feltz Printing Service PROPOSAL58Onyama Limba
1033Julie StensethGermany2026-04-09Buckley Miller Wright NEGOTIATION46Onyama Limba
1034Maisha RulapaughIndia2026-04-27Chemel, James L Cpa NEGOTIATION32Xuxue Feng
1035Ashley DoeBrazil2026-04-25Commercial Press NEW26Elwin Sharvill
1036James ButtIndia2026-04-26Dorl, James J Esq NEGOTIATION48Elwin Sharvill
1037Jeanfrancois VenereCanada2026-04-16Feltz Printing Service QUALIFIED47Anna Fali
1038Faith GillianIndia2026-04-04Chemel, James L Cpa RENEWAL6Stephen Shaw
1039Aditya KuskoFrance2026-04-25Feltz Printing Service NEGOTIATION70Stephen Shaw
1040Faith GillianRussia2026-04-05Dorl, James J Esq NEGOTIATION79Elwin Sharvill
1041Juan WieserItaly2026-04-16Rousseaux, Michael Esq QUALIFIED43Elwin Sharvill
1042Deepesh ChuiItaly2026-04-06Commercial Press RENEWAL9Ioni Bowcher
1043Chavez BriddickAustralia2026-04-22Commercial Press QUALIFIED20Asiya Javayant
1044Greenwood BologniaSpain2026-04-18Printing Dimensions QUALIFIED67Elwin Sharvill
1045Murillo MaletAustralia2026-04-17Morlong Associates NEGOTIATION35Anna Fali
1046Greenwood BologniaFrance2026-04-17Truhlar And Truhlar Attys QUALIFIED28Asiya Javayant
1047Rodrigues CampainIndia2026-04-15Truhlar And Truhlar Attys NEGOTIATION48Ioni Bowcher
1048Smith GlickBrazil2026-04-25Commercial Press NEGOTIATION89Asiya Javayant
1049Octavia MaletIndia2026-04-13Truhlar And Truhlar Attys UNQUALIFIED11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerCanadaIvan Magalhaes QUALIFIED
Juan WieserGermanyBernardo Dominic UNQUALIFIED
Aruna FigeroaGermanyXuxue Feng NEGOTIATION
Jeanfrancois VenereRussiaAnna Fali NEGOTIATION
Aruna FigeroaArgentinaAsiya Javayant NEW
Francesco ShinkoRussiaAmy Elsner RENEWAL
Antonio CaudyBrazilBernardo Dominic PROPOSAL
Salvatore StockhamFranceAmy Elsner NEW
Murillo MaletIndiaStephen Shaw QUALIFIED
Juan WieserSpainOnyama Limba UNQUALIFIED
Leon OldroydArgentinaIoni Bowcher QUALIFIED
Cody SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Izzy GarufiFranceXuxue Feng UNQUALIFIED
Munro FerenczAustraliaAmy Elsner PROPOSAL
Aika InouyeJapanOnyama Limba QUALIFIED
Tony FollerSpainXuxue Feng NEGOTIATION
Stacey MacleadItalyOnyama Limba RENEWAL
Antonio CaudyIndiaAnna Fali UNQUALIFIED
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Emily WhobreyAustraliaOnyama Limba NEGOTIATION
Jefferson SchemmerCanadaAmy Elsner RENEWAL
Greenwood BologniaFranceAnna Fali RENEWAL
Aika InouyeCanadaAsiya Javayant RENEWAL
Chavez BriddickBrazilBernardo Dominic UNQUALIFIED
Jennifer AmigonGermanyIoni Bowcher PROPOSAL
Aika InouyeFranceIvan Magalhaes NEGOTIATION
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Ricardo GauchoItalyAnna Fali RENEWAL
Darci PoquetteUnited KingdomBernardo Dominic QUALIFIED
Nicolas IturbideFranceAnna Fali PROPOSAL
Maisha RulapaughArgentinaXuxue Feng PROPOSAL
Julie StensethArgentinaIoni Bowcher NEGOTIATION
Murillo MaletItalyAsiya Javayant NEGOTIATION
Claire TollnerAustraliaIvan Magalhaes QUALIFIED
Alejandro PerinArgentinaOnyama Limba UNQUALIFIED
Leja CaldareraItalyIoni Bowcher PROPOSAL
Darci PoquetteGermanyOnyama Limba PROPOSAL
Francesco ShinkoArgentinaIvan Magalhaes RENEWAL
Maria MarrierIndiaBernardo Dominic QUALIFIED
Murillo MaletJapanBernardo Dominic NEGOTIATION
Salvatore StockhamUnited KingdomXuxue Feng PROPOSAL
Maisha RulapaughItalyIvan Magalhaes UNQUALIFIED
Greenwood BologniaArgentinaBernardo Dominic NEW
Alejandro PerinSpainIvan Magalhaes NEGOTIATION
Ashley DoeBrazilElwin Sharvill UNQUALIFIED
James ButtGermanyOnyama Limba NEW
Isabel BowleyGermanyOnyama Limba RENEWAL
Jones VocelkaJapanAsiya Javayant UNQUALIFIED
Murillo MaletIndiaIvan Magalhaes RENEWAL
Morrow RutaJapanIoni Bowcher NEW
Frozen Columns
Name
Smith Glick
Murillo Malet
Kaitlin Ostrosky
Ricardo Gaucho
Misaki Royster
Faith Gillian
Morrow Ruta
Izzy Garufi
Johnson Sergi
Leja Caldarera
Maria Marrier
Chavez Briddick
Kadeem Flosi
Mayumi Kolmetz
Salvatore Stockham
Costa Dilliard
James Butt
Emily Whobrey
Kaitlin Ostrosky
Ashley Doe
Leon Oldroyd
Emily Whobrey
Izzy Garufi
Francesco Shinko
Faith Gillian
Arvin Albares
Cody Saylors
Greenwood Bolognia
Julie Stenseth
Faith Gillian
Clifford Rim
Jefferson Schemmer
Jones Vocelka
Faith Gillian
James Butt
Ricardo Gaucho
Ashley Doe
Clifford Rim
Leon Oldroyd
Claire Tollner
Francesco Shinko
Jefferson Schemmer
Emily Whobrey
Tony Foller
Clifford Rim
Misaki Royster
Leja Caldarera
Stacey Maclead
Alejandro Perin
David Darakjy
IdCountryDate
1000Australia2026-04-10
1001Australia2026-04-14
1002Russia2026-04-18
1003Italy2026-04-19
1004France2026-04-26
1005Argentina2026-04-12
1006Brazil2026-04-14
1007France2026-04-29
1008Argentina2026-04-27
1009Japan2026-04-17
1010Canada2026-04-19
1011Australia2026-04-13
1012France2026-05-03
1013Argentina2026-04-13
1014Brazil2026-04-23
1015Canada2026-04-16
1016France2026-04-28
1017India2026-04-09
1018Spain2026-04-22
1019India2026-04-27
1020Brazil2026-04-09
1021Japan2026-04-11
1022Japan2026-04-11
1023France2026-04-12
1024Germany2026-05-02
1025Argentina2026-04-05
1026Japan2026-04-09
1027Brazil2026-04-04
1028Japan2026-04-07
1029Russia2026-04-09
1030Russia2026-04-24
1031France2026-04-29
1032United Kingdom2026-04-09
1033United Kingdom2026-04-20
1034Italy2026-04-08
1035United Kingdom2026-04-15
1036France2026-04-08
1037Russia2026-05-03
1038Japan2026-04-18
1039Japan2026-04-23
1040Spain2026-04-27
1041Germany2026-04-13
1042Spain2026-04-11
1043Russia2026-04-11
1044Russia2026-04-18
1045Spain2026-04-21
1046Germany2026-04-19
1047Canada2026-04-05
1048Argentina2026-04-29
1049Russia2026-05-03

On-Demand Data

NameIdCountryDate
Francesco Shinko1000Russia2026-04-28
Maisha Rulapaugh1001Germany2026-05-03
Adams Morasca1002Japan2026-04-17
Morrow Ruta1003Spain2026-04-14
Ashley Doe1004India2026-04-20
Arvin Albares1005Brazil2026-04-16
Ivar Paprocki1006Russia2026-04-24
Maria Marrier1007Australia2026-04-23
Juan Wieser1008Brazil2026-04-29
Johnson Sergi1009France2026-04-15
Munro Ferencz1010Spain2026-04-28
Nicolas Iturbide1011Germany2026-04-19
Tony Foller1012Argentina2026-04-05
Izzy Garufi1013Australia2026-04-23
Salvatore Stockham1014United Kingdom2026-04-14
Salvatore Stockham1015United Kingdom2026-04-13
Mayumi Kolmetz1016Spain2026-04-09
Johnson Sergi1017United Kingdom2026-04-07
Deepesh Chui1018Japan2026-04-16
Chavez Briddick1019Russia2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James ButtRussiaBernardo Dominic UNQUALIFIED
Jefferson SchemmerUnited KingdomAmy Elsner NEW
Deepesh ChuiAustraliaAsiya Javayant UNQUALIFIED
Ricardo GauchoArgentinaStephen Shaw PROPOSAL
Costa DilliardBrazilBernardo Dominic RENEWAL
Adams MorascaIndiaAsiya Javayant RENEWAL
Morrow RutaFranceIoni Bowcher QUALIFIED
Morrow RutaItalyXuxue Feng RENEWAL
Kaitlin OstroskyJapanBernardo Dominic NEGOTIATION
Faith GillianJapanXuxue Feng NEGOTIATION
Claire TollnerJapanElwin Sharvill NEGOTIATION
Isabel BowleyRussiaXuxue Feng RENEWAL
Chavez BriddickRussiaIoni Bowcher NEW
James ButtAustraliaBernardo Dominic NEGOTIATION
Cody SaylorsIndiaOnyama Limba NEW
Ashley DoeCanadaAnna Fali NEGOTIATION
Antonio CaudyCanadaXuxue Feng PROPOSAL
Clifford RimUnited KingdomAnna Fali RENEWAL
Tony FollerIndiaOnyama Limba RENEWAL
Leja CaldareraAustraliaAmy Elsner NEGOTIATION
Greenwood BologniaUnited KingdomBernardo Dominic PROPOSAL
Julie StensethCanadaIoni Bowcher PROPOSAL
Leon OldroydAustraliaAsiya Javayant UNQUALIFIED
Ricardo GauchoJapanStephen Shaw NEGOTIATION
Clifford RimFranceAsiya Javayant UNQUALIFIED
Aika InouyeFranceBernardo Dominic NEGOTIATION
Isabel BowleyJapanXuxue Feng RENEWAL
Jeanfrancois VenereJapanAsiya Javayant NEGOTIATION
Darci PoquetteIndiaXuxue Feng NEGOTIATION
Leon OldroydJapanAnna Fali UNQUALIFIED
Clifford RimAustraliaAnna Fali RENEWAL
Ashley DoeBrazilIvan Magalhaes PROPOSAL
Jones VocelkaRussiaStephen Shaw UNQUALIFIED
Salvatore StockhamCanadaOnyama Limba NEW
Maria MarrierCanadaAsiya Javayant RENEWAL
Tony FollerFranceOnyama Limba PROPOSAL
Nicolas IturbideArgentinaIoni Bowcher NEGOTIATION
Wickens NestleSpainAnna Fali NEGOTIATION
Mujtaba NickaUnited KingdomElwin Sharvill QUALIFIED
Leon OldroydIndiaAnna Fali QUALIFIED

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