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
Smith GlickArgentinaXuxue Feng NEGOTIATION
Stacey MacleadJapanElwin Sharvill PROPOSAL
Costa DilliardCanadaAsiya Javayant PROPOSAL
Sinclair WaycottCanadaAsiya Javayant PROPOSAL
Tony FollerCanadaAmy Elsner UNQUALIFIED
Kaitlin OstroskyItalyAnna Fali PROPOSAL
Munro FerenczJapanElwin Sharvill UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic NEGOTIATION
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Ricardo GauchoCanadaElwin Sharvill UNQUALIFIED
Sinclair WaycottItalyAnna Fali QUALIFIED
Maisha RulapaughCanadaStephen Shaw UNQUALIFIED
Murillo MaletIndiaOnyama Limba NEGOTIATION
Faith GillianSpainOnyama Limba PROPOSAL
Aruna FigeroaItalyXuxue Feng NEGOTIATION
Morrow RutaArgentinaAnna Fali NEGOTIATION
Mayumi KolmetzFranceAnna Fali UNQUALIFIED
Isabel BowleyUnited KingdomAnna Fali QUALIFIED
Murillo MaletArgentinaAmy Elsner RENEWAL
Ashley DoeJapanBernardo Dominic QUALIFIED
Adams MorascaSpainAmy Elsner RENEWAL
Adams MorascaSpainIvan Magalhaes RENEWAL
James ButtSpainStephen Shaw NEGOTIATION
Julie StensethBrazilXuxue Feng PROPOSAL
Emily WhobreyAustraliaOnyama Limba NEW
Cody SaylorsGermanyIvan Magalhaes PROPOSAL
Johnson SergiGermanyXuxue Feng RENEWAL
Francesco ShinkoGermanyBernardo Dominic UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Leja CaldareraFranceAmy Elsner PROPOSAL
Kadeem FlosiArgentinaXuxue Feng RENEWAL
Adams MorascaCanadaAnna Fali NEGOTIATION
Darci PoquetteRussiaAnna Fali QUALIFIED
Juan WieserAustraliaIoni Bowcher QUALIFIED
Costa DilliardArgentinaElwin Sharvill NEGOTIATION
Leja CaldareraFranceAsiya Javayant NEW
Aditya KuskoUnited KingdomAsiya Javayant NEGOTIATION
Johnson SergiRussiaOnyama Limba UNQUALIFIED
Julie StensethAustraliaBernardo Dominic PROPOSAL
Johnson SergiFranceBernardo Dominic NEGOTIATION
Jefferson SchemmerBrazilOnyama Limba RENEWAL
Nicolas IturbideFranceAnna Fali QUALIFIED
Silvio SlusarskiSpainElwin Sharvill RENEWAL
Alejandro PerinArgentinaAsiya Javayant PROPOSAL
Ricardo GauchoAustraliaAsiya Javayant QUALIFIED
Alejandro PerinIndiaBernardo Dominic PROPOSAL
Maisha RulapaughIndiaIvan Magalhaes PROPOSAL
Mayumi KolmetzAustraliaOnyama Limba RENEWAL
Leja CaldareraSpainIvan Magalhaes NEW
Kaitlin OstroskyCanadaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyArgentinaAnna Fali RENEWAL
Maria MarrierJapanXuxue Feng NEW
Claire TollnerJapanXuxue Feng NEGOTIATION
Julie StensethSpainBernardo Dominic QUALIFIED
Maria MarrierAustraliaAmy Elsner RENEWAL
Sinclair WaycottJapanAmy Elsner RENEWAL
Izzy GarufiArgentinaAnna Fali NEW
Claire TollnerFranceIoni Bowcher RENEWAL
Wickens NestleArgentinaXuxue Feng PROPOSAL
Leon OldroydArgentinaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideFrance2026-05-11King, Christopher A Esq NEW46Amy Elsner
1001Greenwood BologniaBrazil2026-05-11Feltz Printing Service RENEWAL89Xuxue Feng
1002Arvin AlbaresBrazil2026-05-05Rangoni Of Florence UNQUALIFIED59Xuxue Feng
1003Murillo MaletCanada2026-05-08Chemel, James L Cpa RENEWAL31Stephen Shaw
1004Salvatore StockhamFrance2026-05-01Rangoni Of Florence UNQUALIFIED9Ivan Magalhaes
1005Wickens NestleItaly2026-05-28Benton, John B Jr NEW55Asiya Javayant
1006Arvin AlbaresRussia2026-05-30Benton, John B Jr UNQUALIFIED10Ioni Bowcher
1007Johnson SergiAustralia2026-05-18Dorl, James J Esq RENEWAL3Stephen Shaw
1008Smith GlickIndia2026-05-28Feltz Printing Service RENEWAL13Ivan Magalhaes
1009Leon OldroydRussia2026-05-27Feltz Printing Service RENEWAL19Onyama Limba
1010Julie StensethUnited Kingdom2026-05-02Benton, John B Jr NEGOTIATION40Asiya Javayant
1011Costa DilliardGermany2026-05-19Rangoni Of Florence NEGOTIATION77Ioni Bowcher
1012Mujtaba NickaUnited Kingdom2026-05-03Printing Dimensions RENEWAL88Anna Fali
1013Claire TollnerCanada2026-05-10King, Christopher A Esq RENEWAL8Asiya Javayant
1014Smith GlickArgentina2026-05-13Dorl, James J Esq UNQUALIFIED31Stephen Shaw
1015Nicolas IturbideSpain2026-05-03Chapman, Ross E Esq NEGOTIATION57Onyama Limba
1016Leon OldroydCanada2026-05-02Buckley Miller Wright PROPOSAL61Elwin Sharvill
1017Greenwood BologniaRussia2026-05-25Benton, John B Jr UNQUALIFIED31Bernardo Dominic
1018Kadeem FlosiUnited Kingdom2026-05-25Dorl, James J Esq QUALIFIED2Bernardo Dominic
1019Johnson SergiBrazil2026-05-14Chapman, Ross E Esq NEW60Xuxue Feng
1020Leja CaldareraSpain2026-05-26Feiner Bros NEGOTIATION26Ivan Magalhaes
1021Arvin AlbaresUnited Kingdom2026-05-18Truhlar And Truhlar Attys UNQUALIFIED41Ioni Bowcher
1022Kaitlin OstroskyItaly2026-05-17Chemel, James L Cpa UNQUALIFIED95Ivan Magalhaes
1023Aruna FigeroaRussia2026-05-07Commercial Press RENEWAL44Elwin Sharvill
1024Darci PoquetteGermany2026-05-25Feiner Bros NEW50Xuxue Feng
1025David DarakjyUnited Kingdom2026-05-22Truhlar And Truhlar Attys RENEWAL50Anna Fali
1026Emily WhobreyAustralia2026-05-18Morlong Associates PROPOSAL53Ivan Magalhaes
1027Adams MorascaRussia2026-05-06Buckley Miller Wright PROPOSAL49Xuxue Feng
1028Rodrigues CampainBrazil2026-05-02Morlong Associates NEW93Elwin Sharvill
1029Stacey MacleadSpain2026-05-27Morlong Associates RENEWAL41Anna Fali
1030Murillo MaletSpain2026-05-15Commercial Press QUALIFIED96Amy Elsner
1031Ashley DoeFrance2026-05-02Commercial Press RENEWAL50Asiya Javayant
1032Isabel BowleyFrance2026-05-28Chapman, Ross E Esq UNQUALIFIED66Anna Fali
1033Octavia MaletAustralia2026-05-19Chapman, Ross E Esq NEGOTIATION79Stephen Shaw
1034Clifford RimJapan2026-05-10Rangoni Of Florence QUALIFIED23Amy Elsner
1035James ButtFrance2026-05-26King, Christopher A Esq NEGOTIATION83Elwin Sharvill
1036Wickens NestleAustralia2026-05-01Printing Dimensions QUALIFIED8Elwin Sharvill
1037Aditya KuskoRussia2026-05-25Printing Dimensions NEW50Elwin Sharvill
1038Murillo MaletGermany2026-05-14Printing Dimensions NEW80Bernardo Dominic
1039Kaitlin OstroskyArgentina2026-05-28Chapman, Ross E Esq QUALIFIED97Onyama Limba
1040Jefferson SchemmerJapan2026-05-15Rangoni Of Florence RENEWAL49Onyama Limba
1041Leon OldroydRussia2026-05-29Feltz Printing Service PROPOSAL91Xuxue Feng
1042Clifford RimSpain2026-05-03King, Christopher A Esq UNQUALIFIED90Bernardo Dominic
1043James ButtJapan2026-05-17King, Christopher A Esq RENEWAL96Ivan Magalhaes
1044Munro FerenczJapan2026-05-26Morlong Associates NEGOTIATION65Bernardo Dominic
1045Emily WhobreyCanada2026-05-18Printing Dimensions NEW75Onyama Limba
1046David DarakjyAustralia2026-05-13Chapman, Ross E Esq NEW38Ivan Magalhaes
1047Jennifer AmigonBrazil2026-05-01Buckley Miller Wright QUALIFIED98Stephen Shaw
1048Johnson SergiCanada2026-05-28Chemel, James L Cpa NEGOTIATION28Asiya Javayant
1049Rodrigues CampainJapan2026-05-08Chanay, Jeffrey A Esq RENEWAL54Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughGermanyElwin Sharvill UNQUALIFIED
Leja CaldareraGermanyAsiya Javayant UNQUALIFIED
Alejandro PerinUnited KingdomAsiya Javayant QUALIFIED
Mayumi KolmetzCanadaAmy Elsner UNQUALIFIED
Misaki RoysterFranceAsiya Javayant PROPOSAL
Salvatore StockhamRussiaOnyama Limba RENEWAL
Kadeem FlosiUnited KingdomOnyama Limba PROPOSAL
Salvatore StockhamItalyXuxue Feng RENEWAL
Juan WieserUnited KingdomStephen Shaw NEGOTIATION
Johnson SergiCanadaAsiya Javayant NEGOTIATION
Claire TollnerIndiaIoni Bowcher UNQUALIFIED
Claire TollnerIndiaXuxue Feng RENEWAL
Adams MorascaCanadaIoni Bowcher RENEWAL
Ricardo GauchoGermanyElwin Sharvill QUALIFIED
Darci PoquetteJapanBernardo Dominic QUALIFIED
James ButtAustraliaXuxue Feng UNQUALIFIED
Isabel BowleyBrazilBernardo Dominic PROPOSAL
Tony FollerGermanyAmy Elsner NEGOTIATION
Aditya KuskoIndiaElwin Sharvill QUALIFIED
James ButtGermanyAsiya Javayant UNQUALIFIED
Smith GlickBrazilOnyama Limba UNQUALIFIED
Rodrigues CampainJapanIvan Magalhaes NEW
Maria MarrierUnited KingdomAnna Fali NEGOTIATION
Nicolas IturbideCanadaElwin Sharvill QUALIFIED
Murillo MaletItalyAsiya Javayant RENEWAL
Izzy GarufiCanadaAnna Fali NEGOTIATION
Jeanfrancois VenereItalyAmy Elsner UNQUALIFIED
Murillo MaletJapanXuxue Feng UNQUALIFIED
Arvin AlbaresBrazilAmy Elsner QUALIFIED
Stacey MacleadRussiaStephen Shaw NEW
Leja CaldareraFranceIvan Magalhaes UNQUALIFIED
Emily WhobreyJapanBernardo Dominic UNQUALIFIED
Adams MorascaIndiaElwin Sharvill NEW
Maria MarrierItalyElwin Sharvill NEW
Octavia MaletGermanyIoni Bowcher QUALIFIED
Isabel BowleySpainBernardo Dominic QUALIFIED
Ashley DoeBrazilAnna Fali RENEWAL
Claire TollnerFranceXuxue Feng PROPOSAL
Ashley DoeBrazilElwin Sharvill NEW
Greenwood BologniaSpainAsiya Javayant NEGOTIATION
Rodrigues CampainItalyAsiya Javayant RENEWAL
Stacey MacleadArgentinaAmy Elsner QUALIFIED
Silvio SlusarskiFranceAmy Elsner UNQUALIFIED
Jeanfrancois VenereIndiaBernardo Dominic PROPOSAL
Clifford RimItalyXuxue Feng NEGOTIATION
Ricardo GauchoJapanIvan Magalhaes NEGOTIATION
Isabel BowleyAustraliaAnna Fali UNQUALIFIED
Clifford RimJapanIvan Magalhaes NEGOTIATION
Misaki RoysterFranceOnyama Limba PROPOSAL
Johnson SergiJapanXuxue Feng NEW
Frozen Columns
Name
Leja Caldarera
Octavia Malet
Julie Stenseth
Silvio Slusarski
Mujtaba Nicka
Maisha Rulapaugh
Antonio Caudy
Chavez Briddick
Mayumi Kolmetz
Leja Caldarera
Isabel Bowley
Rodrigues Campain
Julie Stenseth
Salvatore Stockham
Aruna Figeroa
Costa Dilliard
Claire Tollner
Maria Marrier
Costa Dilliard
Deepesh Chui
Jefferson Schemmer
Salvatore Stockham
Juan Wieser
Kaitlin Ostrosky
Adams Morasca
Claire Tollner
Aika Inouye
Munro Ferencz
Jeanfrancois Venere
Mayumi Kolmetz
Costa Dilliard
Aditya Kusko
Munro Ferencz
Jefferson Schemmer
Wickens Nestle
Wickens Nestle
Greenwood Bolognia
Wickens Nestle
Rodrigues Campain
Sinclair Waycott
Aditya Kusko
Deepesh Chui
Salvatore Stockham
Deepesh Chui
Deepesh Chui
Ricardo Gaucho
Ashley Doe
Maisha Rulapaugh
Johnson Sergi
Kaitlin Ostrosky
IdCountryDate
1000Japan2026-05-14
1001Canada2026-05-06
1002Germany2026-05-12
1003Japan2026-05-14
1004India2026-05-20
1005Russia2026-05-04
1006Germany2026-05-03
1007India2026-05-14
1008Japan2026-05-24
1009Russia2026-05-17
1010India2026-05-20
1011Brazil2026-05-22
1012United Kingdom2026-05-30
1013Russia2026-05-21
1014Canada2026-05-14
1015Argentina2026-05-06
1016Germany2026-05-29
1017Russia2026-05-06
1018India2026-05-15
1019France2026-05-18
1020Brazil2026-05-03
1021Russia2026-05-10
1022Italy2026-05-04
1023Italy2026-05-21
1024Brazil2026-05-20
1025Brazil2026-05-10
1026Italy2026-05-21
1027France2026-05-19
1028Italy2026-05-27
1029Japan2026-05-25
1030Russia2026-05-19
1031Brazil2026-05-22
1032Russia2026-05-13
1033Canada2026-05-20
1034Italy2026-05-30
1035Japan2026-05-17
1036Argentina2026-05-09
1037Italy2026-05-11
1038United Kingdom2026-05-29
1039United Kingdom2026-05-14
1040United Kingdom2026-05-19
1041Italy2026-05-13
1042Brazil2026-05-21
1043Italy2026-05-05
1044Argentina2026-05-02
1045Germany2026-05-23
1046Italy2026-05-16
1047India2026-05-03
1048Argentina2026-05-17
1049Canada2026-05-26

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Canada2026-05-19
Maisha Rulapaugh1001United Kingdom2026-05-24
Deepesh Chui1002Spain2026-05-08
Aruna Figeroa1003Australia2026-05-02
Tony Foller1004Brazil2026-05-19
Arvin Albares1005Argentina2026-05-14
Sinclair Waycott1006Japan2026-05-19
Leja Caldarera1007Australia2026-05-01
David Darakjy1008Spain2026-05-07
Isabel Bowley1009Spain2026-05-11
Leon Oldroyd1010India2026-05-07
Misaki Royster1011France2026-05-09
Izzy Garufi1012France2026-05-23
David Darakjy1013Russia2026-05-16
Chavez Briddick1014Italy2026-05-11
Faith Gillian1015France2026-05-14
Chavez Briddick1016Argentina2026-05-11
Adams Morasca1017India2026-05-28
Arvin Albares1018Germany2026-05-27
Julie Stenseth1019Canada2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyBrazilOnyama Limba QUALIFIED
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Silvio SlusarskiAustraliaIoni Bowcher NEW
Alejandro PerinSpainStephen Shaw NEGOTIATION
Izzy GarufiUnited KingdomBernardo Dominic PROPOSAL
Alejandro PerinBrazilIvan Magalhaes RENEWAL
Smith GlickRussiaXuxue Feng UNQUALIFIED
Munro FerenczSpainBernardo Dominic NEW
Emily WhobreyItalyAsiya Javayant QUALIFIED
Adams MorascaCanadaXuxue Feng PROPOSAL
Jefferson SchemmerSpainAmy Elsner PROPOSAL
Emily WhobreyCanadaOnyama Limba NEW
Darci PoquetteRussiaXuxue Feng QUALIFIED
David DarakjyJapanAsiya Javayant NEGOTIATION
David DarakjyJapanAnna Fali PROPOSAL
Isabel BowleyGermanyIvan Magalhaes UNQUALIFIED
James ButtIndiaElwin Sharvill UNQUALIFIED
Aika InouyeAustraliaAsiya Javayant RENEWAL
Emily WhobreyIndiaIvan Magalhaes RENEWAL
Jones VocelkaCanadaAsiya Javayant UNQUALIFIED
Arvin AlbaresFranceStephen Shaw QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill PROPOSAL
Emily WhobreyJapanElwin Sharvill QUALIFIED
Jennifer AmigonRussiaAsiya Javayant QUALIFIED
Aditya KuskoSpainElwin Sharvill QUALIFIED
Clifford RimArgentinaStephen Shaw RENEWAL
Jeanfrancois VenereBrazilXuxue Feng RENEWAL
Maisha RulapaughGermanyAmy Elsner RENEWAL
Chavez BriddickUnited KingdomBernardo Dominic NEGOTIATION
Claire TollnerIndiaElwin Sharvill UNQUALIFIED
Sinclair WaycottBrazilElwin Sharvill QUALIFIED
Alejandro PerinRussiaElwin Sharvill UNQUALIFIED
Leja CaldareraRussiaElwin Sharvill QUALIFIED
Cody SaylorsIndiaIoni Bowcher RENEWAL
Deepesh ChuiGermanyXuxue Feng NEW
Isabel BowleySpainIoni Bowcher NEW
Wickens NestleJapanIoni Bowcher RENEWAL
Faith GillianArgentinaAmy Elsner RENEWAL
Aruna FigeroaSpainXuxue Feng NEGOTIATION
Maria MarrierFranceBernardo Dominic NEW

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