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
Antonio CaudyItalyBernardo Dominic UNQUALIFIED
Octavia MaletFranceIoni Bowcher PROPOSAL
Izzy GarufiUnited KingdomXuxue Feng RENEWAL
Johnson SergiJapanIoni Bowcher QUALIFIED
Mayumi KolmetzAustraliaAsiya Javayant NEW
Smith GlickSpainIoni Bowcher PROPOSAL
Nicolas IturbideUnited KingdomAsiya Javayant UNQUALIFIED
David DarakjyFranceBernardo Dominic RENEWAL
Aika InouyeAustraliaAnna Fali PROPOSAL
Johnson SergiRussiaIvan Magalhaes UNQUALIFIED
Darci PoquetteAustraliaBernardo Dominic UNQUALIFIED
Juan WieserItalyElwin Sharvill NEGOTIATION
Jeanfrancois VenereAustraliaAsiya Javayant QUALIFIED
Antonio CaudyBrazilAmy Elsner NEW
Leja CaldareraArgentinaAmy Elsner QUALIFIED
Isabel BowleyGermanyAmy Elsner RENEWAL
Rodrigues CampainArgentinaAmy Elsner QUALIFIED
Salvatore StockhamRussiaBernardo Dominic UNQUALIFIED
Isabel BowleySpainAsiya Javayant QUALIFIED
Julie StensethUnited KingdomOnyama Limba QUALIFIED
Octavia MaletArgentinaOnyama Limba NEGOTIATION
Leja CaldareraSpainAsiya Javayant QUALIFIED
Isabel BowleyGermanyAsiya Javayant NEGOTIATION
Kadeem FlosiUnited KingdomXuxue Feng PROPOSAL
Nicolas IturbideUnited KingdomBernardo Dominic RENEWAL
Aika InouyeFranceStephen Shaw UNQUALIFIED
Antonio CaudySpainXuxue Feng NEGOTIATION
Ricardo GauchoItalyBernardo Dominic QUALIFIED
Jones VocelkaArgentinaBernardo Dominic RENEWAL
Murillo MaletArgentinaOnyama Limba RENEWAL
Faith GillianUnited KingdomXuxue Feng NEW
Darci PoquetteBrazilAsiya Javayant QUALIFIED
Costa DilliardCanadaXuxue Feng PROPOSAL
Jennifer AmigonBrazilIvan Magalhaes NEW
Isabel BowleyAustraliaAsiya Javayant NEGOTIATION
Julie StensethIndiaAnna Fali NEW
Chavez BriddickRussiaAnna Fali UNQUALIFIED
Tony FollerCanadaXuxue Feng NEW
Jefferson SchemmerFranceAmy Elsner NEW
Salvatore StockhamJapanOnyama Limba NEW
Darci PoquetteIndiaAmy Elsner QUALIFIED
Ricardo GauchoItalyAmy Elsner QUALIFIED
Cody SaylorsItalyOnyama Limba PROPOSAL
Smith GlickRussiaIoni Bowcher PROPOSAL
Emily WhobreySpainAmy Elsner PROPOSAL
Murillo MaletBrazilIoni Bowcher RENEWAL
Leja CaldareraFranceAnna Fali NEGOTIATION
David DarakjySpainElwin Sharvill NEW
Johnson SergiItalyStephen Shaw NEW
Cody SaylorsFranceOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Clifford RimArgentinaBernardo Dominic QUALIFIED
Jennifer AmigonRussiaIoni Bowcher PROPOSAL
Izzy GarufiAustraliaBernardo Dominic NEW
Claire TollnerCanadaOnyama Limba NEW
Kaitlin OstroskyItalyXuxue Feng NEW
Jennifer AmigonFranceIoni Bowcher QUALIFIED
Munro FerenczAustraliaXuxue Feng PROPOSAL
Arvin AlbaresSpainIoni Bowcher NEGOTIATION
Jefferson SchemmerItalyElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford RimRussia2026-04-11Rousseaux, Michael Esq UNQUALIFIED87Xuxue Feng
1001Kadeem FlosiGermany2026-04-15Buckley Miller Wright NEGOTIATION59Asiya Javayant
1002Claire TollnerSpain2026-04-01Rousseaux, Michael Esq QUALIFIED43Amy Elsner
1003Aditya KuskoArgentina2026-04-01Truhlar And Truhlar Attys PROPOSAL67Ivan Magalhaes
1004Misaki RoysterAustralia2026-03-30Rousseaux, Michael Esq QUALIFIED20Ivan Magalhaes
1005Smith GlickCanada2026-04-09Dorl, James J Esq RENEWAL61Anna Fali
1006David DarakjyItaly2026-03-27Dorl, James J Esq RENEWAL0Stephen Shaw
1007Kaitlin OstroskyAustralia2026-04-02Feltz Printing Service UNQUALIFIED73Asiya Javayant
1008Misaki RoysterIndia2026-04-10Truhlar And Truhlar Attys QUALIFIED23Amy Elsner
1009Kadeem FlosiSpain2026-04-16King, Christopher A Esq NEW68Asiya Javayant
1010Jennifer AmigonUnited Kingdom2026-04-22Buckley Miller Wright NEGOTIATION33Anna Fali
1011Rodrigues CampainArgentina2026-04-25Rangoni Of Florence NEGOTIATION42Elwin Sharvill
1012Wickens NestleAustralia2026-04-08Feiner Bros NEW99Amy Elsner
1013Mayumi KolmetzFrance2026-04-15King, Christopher A Esq PROPOSAL43Onyama Limba
1014Ashley DoeCanada2026-03-29King, Christopher A Esq NEW63Anna Fali
1015Cody SaylorsFrance2026-04-14Commercial Press NEGOTIATION96Onyama Limba
1016Morrow RutaArgentina2026-04-05Rangoni Of Florence QUALIFIED89Asiya Javayant
1017Emily WhobreyGermany2026-04-19Chanay, Jeffrey A Esq NEW6Stephen Shaw
1018Francesco ShinkoRussia2026-04-23Chanay, Jeffrey A Esq PROPOSAL40Stephen Shaw
1019Greenwood BologniaRussia2026-04-16Morlong Associates UNQUALIFIED79Stephen Shaw
1020Jennifer AmigonUnited Kingdom2026-04-07Truhlar And Truhlar Attys UNQUALIFIED55Anna Fali
1021Nicolas IturbideAustralia2026-04-15Morlong Associates NEGOTIATION5Ivan Magalhaes
1022Ivar PaprockiCanada2026-04-06Rousseaux, Michael Esq UNQUALIFIED9Ivan Magalhaes
1023Munro FerenczGermany2026-04-18Benton, John B Jr UNQUALIFIED98Onyama Limba
1024Aruna FigeroaRussia2026-03-29Buckley Miller Wright NEGOTIATION6Bernardo Dominic
1025Silvio SlusarskiItaly2026-04-14Truhlar And Truhlar Attys NEGOTIATION14Amy Elsner
1026Claire TollnerSpain2026-04-11Feiner Bros UNQUALIFIED82Ioni Bowcher
1027Ashley DoeArgentina2026-04-24Commercial Press PROPOSAL70Stephen Shaw
1028Costa DilliardAustralia2026-04-25Truhlar And Truhlar Attys NEW20Amy Elsner
1029Maria MarrierUnited Kingdom2026-04-25Dorl, James J Esq UNQUALIFIED59Asiya Javayant
1030Ivar PaprockiCanada2026-04-24Rousseaux, Michael Esq QUALIFIED43Anna Fali
1031Nicolas IturbideSpain2026-04-15Printing Dimensions NEW78Ivan Magalhaes
1032Munro FerenczBrazil2026-04-07Feltz Printing Service QUALIFIED63Onyama Limba
1033Silvio SlusarskiIndia2026-04-19King, Christopher A Esq QUALIFIED30Onyama Limba
1034Cody SaylorsRussia2026-03-27Printing Dimensions PROPOSAL10Amy Elsner
1035Jefferson SchemmerRussia2026-04-04Morlong Associates PROPOSAL48Bernardo Dominic
1036Stacey MacleadCanada2026-04-24Chemel, James L Cpa UNQUALIFIED60Asiya Javayant
1037Ashley DoeCanada2026-04-16Printing Dimensions NEGOTIATION29Xuxue Feng
1038Adams MorascaItaly2026-04-06Chapman, Ross E Esq QUALIFIED61Bernardo Dominic
1039Faith GillianUnited Kingdom2026-04-14Dorl, James J Esq UNQUALIFIED78Anna Fali
1040Darci PoquetteCanada2026-04-10Rousseaux, Michael Esq NEW49Amy Elsner
1041Emily WhobreyCanada2026-04-08Rangoni Of Florence NEGOTIATION84Anna Fali
1042Mujtaba NickaBrazil2026-03-27Commercial Press RENEWAL52Anna Fali
1043Maria MarrierSpain2026-04-24Feiner Bros PROPOSAL99Xuxue Feng
1044Salvatore StockhamGermany2026-04-20Buckley Miller Wright PROPOSAL29Ivan Magalhaes
1045Salvatore StockhamAustralia2026-04-24Feltz Printing Service UNQUALIFIED37Anna Fali
1046Leon OldroydBrazil2026-04-14Morlong Associates NEW7Bernardo Dominic
1047Mayumi KolmetzIndia2026-03-28Printing Dimensions NEW44Asiya Javayant
1048Rodrigues CampainRussia2026-04-23Chanay, Jeffrey A Esq QUALIFIED19Ioni Bowcher
1049Leja CaldareraJapan2026-04-05Printing Dimensions QUALIFIED53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Claire TollnerBrazilXuxue Feng RENEWAL
Adams MorascaRussiaStephen Shaw PROPOSAL
Morrow RutaItalyXuxue Feng RENEWAL
Mujtaba NickaRussiaIvan Magalhaes UNQUALIFIED
Smith GlickUnited KingdomAnna Fali NEGOTIATION
Mujtaba NickaGermanyIvan Magalhaes QUALIFIED
Isabel BowleyItalyElwin Sharvill PROPOSAL
Rodrigues CampainCanadaStephen Shaw NEGOTIATION
Leon OldroydBrazilAnna Fali RENEWAL
Costa DilliardIndiaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereAustraliaAmy Elsner NEW
Smith GlickFranceAsiya Javayant NEGOTIATION
Silvio SlusarskiCanadaXuxue Feng UNQUALIFIED
Jennifer AmigonUnited KingdomBernardo Dominic QUALIFIED
Murillo MaletSpainElwin Sharvill RENEWAL
Faith GillianArgentinaXuxue Feng PROPOSAL
Leon OldroydIndiaElwin Sharvill NEW
Jennifer AmigonRussiaOnyama Limba NEW
Darci PoquetteArgentinaStephen Shaw NEW
Jennifer AmigonAustraliaAnna Fali QUALIFIED
James ButtItalyIoni Bowcher UNQUALIFIED
Jones VocelkaSpainAnna Fali UNQUALIFIED
Greenwood BologniaSpainAnna Fali UNQUALIFIED
Jefferson SchemmerCanadaAmy Elsner RENEWAL
Julie StensethIndiaIvan Magalhaes PROPOSAL
Ashley DoeCanadaBernardo Dominic RENEWAL
Costa DilliardUnited KingdomBernardo Dominic RENEWAL
Ashley DoeSpainIoni Bowcher RENEWAL
Ashley DoeCanadaAmy Elsner QUALIFIED
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Nicolas IturbideIndiaElwin Sharvill UNQUALIFIED
Johnson SergiArgentinaXuxue Feng UNQUALIFIED
Jennifer AmigonJapanElwin Sharvill RENEWAL
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Octavia MaletRussiaAsiya Javayant PROPOSAL
Leja CaldareraCanadaElwin Sharvill QUALIFIED
Misaki RoysterRussiaXuxue Feng NEW
Costa DilliardCanadaBernardo Dominic PROPOSAL
Jefferson SchemmerSpainIoni Bowcher NEW
Nicolas IturbideUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadIndiaAmy Elsner PROPOSAL
Nicolas IturbideSpainIoni Bowcher UNQUALIFIED
Smith GlickRussiaAmy Elsner NEW
Nicolas IturbideIndiaXuxue Feng QUALIFIED
Rodrigues CampainIndiaBernardo Dominic NEW
Smith GlickSpainBernardo Dominic NEW
Isabel BowleyRussiaIvan Magalhaes UNQUALIFIED
Julie StensethRussiaAsiya Javayant NEGOTIATION
Cody SaylorsRussiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Maria Marrier
Leon Oldroyd
Morrow Ruta
Cody Saylors
Jennifer Amigon
Wickens Nestle
Aika Inouye
Morrow Ruta
Smith Glick
Jones Vocelka
Murillo Malet
Nicolas Iturbide
Juan Wieser
Nicolas Iturbide
Kadeem Flosi
Mayumi Kolmetz
Wickens Nestle
Sinclair Waycott
Aika Inouye
Maisha Rulapaugh
Isabel Bowley
Jeanfrancois Venere
Leja Caldarera
Jones Vocelka
Maisha Rulapaugh
Octavia Malet
Murillo Malet
Morrow Ruta
Jennifer Amigon
Isabel Bowley
Tony Foller
Stacey Maclead
Silvio Slusarski
Deepesh Chui
Nicolas Iturbide
Greenwood Bolognia
Maria Marrier
Juan Wieser
Nicolas Iturbide
Arvin Albares
Leja Caldarera
David Darakjy
Izzy Garufi
David Darakjy
Izzy Garufi
Murillo Malet
Claire Tollner
Misaki Royster
Julie Stenseth
Smith Glick
IdCountryDate
1000Argentina2026-04-18
1001Brazil2026-04-23
1002Brazil2026-04-09
1003Spain2026-04-15
1004Canada2026-04-01
1005Italy2026-04-02
1006Brazil2026-03-30
1007Russia2026-04-25
1008Japan2026-04-06
1009Spain2026-04-06
1010Russia2026-04-01
1011Australia2026-04-12
1012Canada2026-04-01
1013India2026-03-28
1014Canada2026-04-02
1015Spain2026-04-18
1016Russia2026-04-18
1017Australia2026-04-10
1018Germany2026-03-28
1019Brazil2026-03-27
1020Germany2026-04-03
1021India2026-04-25
1022Canada2026-04-17
1023Brazil2026-04-21
1024United Kingdom2026-04-25
1025Spain2026-04-18
1026Japan2026-04-07
1027France2026-04-21
1028United Kingdom2026-04-13
1029Brazil2026-04-18
1030Australia2026-04-19
1031Spain2026-04-14
1032Argentina2026-04-12
1033Spain2026-03-28
1034Brazil2026-03-30
1035Russia2026-04-03
1036Brazil2026-04-07
1037France2026-04-07
1038France2026-04-09
1039France2026-04-24
1040Spain2026-03-28
1041Japan2026-04-20
1042Canada2026-04-20
1043France2026-04-10
1044Italy2026-04-03
1045Germany2026-04-15
1046Brazil2026-03-27
1047Germany2026-04-20
1048Russia2026-04-20
1049Russia2026-04-11

On-Demand Data

NameIdCountryDate
Claire Tollner1000Japan2026-04-13
Darci Poquette1001Japan2026-04-18
Stacey Maclead1002France2026-04-24
Maisha Rulapaugh1003Spain2026-04-10
Munro Ferencz1004Canada2026-04-08
Juan Wieser1005Russia2026-04-17
Leon Oldroyd1006India2026-04-09
Jones Vocelka1007United Kingdom2026-04-08
Murillo Malet1008France2026-04-14
Maria Marrier1009Australia2026-04-24
Emily Whobrey1010United Kingdom2026-04-17
Wickens Nestle1011India2026-04-12
Darci Poquette1012France2026-04-01
Cody Saylors1013United Kingdom2026-04-16
Clifford Rim1014Russia2026-04-11
Stacey Maclead1015Russia2026-04-13
Octavia Malet1016Japan2026-04-14
Nicolas Iturbide1017Australia2026-04-02
Jefferson Schemmer1018Argentina2026-04-02
Emily Whobrey1019Russia2026-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci PoquetteCanadaAmy Elsner UNQUALIFIED
Francesco ShinkoAustraliaAmy Elsner PROPOSAL
Sinclair WaycottSpainIvan Magalhaes NEW
Wickens NestleAustraliaAnna Fali NEGOTIATION
Salvatore StockhamItalyOnyama Limba NEW
Antonio CaudyBrazilBernardo Dominic PROPOSAL
Jennifer AmigonFranceOnyama Limba QUALIFIED
Rodrigues CampainGermanyIoni Bowcher RENEWAL
Mayumi KolmetzSpainAmy Elsner PROPOSAL
Sinclair WaycottIndiaBernardo Dominic PROPOSAL
Izzy GarufiJapanElwin Sharvill RENEWAL
Nicolas IturbideBrazilElwin Sharvill NEGOTIATION
Aditya KuskoGermanyAnna Fali NEW
David DarakjyRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereCanadaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyIndiaXuxue Feng NEGOTIATION
Sinclair WaycottAustraliaIoni Bowcher QUALIFIED
Leja CaldareraIndiaIvan Magalhaes UNQUALIFIED
Sinclair WaycottCanadaElwin Sharvill NEGOTIATION
Greenwood BologniaGermanyIoni Bowcher QUALIFIED
Cody SaylorsAustraliaOnyama Limba UNQUALIFIED
Leja CaldareraBrazilIoni Bowcher NEW
Aruna FigeroaSpainIoni Bowcher UNQUALIFIED
Aruna FigeroaFranceBernardo Dominic NEW
Smith GlickFranceXuxue Feng QUALIFIED
Ricardo GauchoJapanIoni Bowcher PROPOSAL
Claire TollnerGermanyIvan Magalhaes NEW
Sinclair WaycottRussiaAmy Elsner RENEWAL
Leja CaldareraBrazilXuxue Feng RENEWAL
Julie StensethArgentinaAmy Elsner PROPOSAL
Arvin AlbaresSpainIvan Magalhaes QUALIFIED
Kaitlin OstroskyUnited KingdomAsiya Javayant NEW
Leon OldroydItalyIvan Magalhaes QUALIFIED
Leon OldroydRussiaAmy Elsner NEW
Johnson SergiRussiaAmy Elsner QUALIFIED
Ivar PaprockiSpainStephen Shaw RENEWAL
Antonio CaudyGermanyIoni Bowcher PROPOSAL
Kadeem FlosiSpainAmy Elsner NEGOTIATION
Adams MorascaItalyElwin Sharvill RENEWAL
Leon OldroydCanadaStephen Shaw 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>