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
David DarakjyAustraliaIvan Magalhaes QUALIFIED
Chavez BriddickBrazilXuxue Feng UNQUALIFIED
Darci PoquetteIndiaAnna Fali UNQUALIFIED
Wickens NestleCanadaIoni Bowcher NEGOTIATION
Tony FollerArgentinaIoni Bowcher QUALIFIED
Adams MorascaJapanStephen Shaw NEW
Salvatore StockhamRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereRussiaBernardo Dominic RENEWAL
Smith GlickUnited KingdomElwin Sharvill QUALIFIED
Adams MorascaSpainAnna Fali PROPOSAL
Leja CaldareraGermanyStephen Shaw NEW
Stacey MacleadBrazilAsiya Javayant UNQUALIFIED
James ButtItalyIoni Bowcher UNQUALIFIED
Aika InouyeIndiaAnna Fali UNQUALIFIED
Mujtaba NickaGermanyAsiya Javayant NEGOTIATION
Maria MarrierFranceIvan Magalhaes UNQUALIFIED
Ashley DoeFranceAsiya Javayant NEW
Maisha RulapaughUnited KingdomAmy Elsner PROPOSAL
Murillo MaletSpainStephen Shaw QUALIFIED
Morrow RutaRussiaElwin Sharvill NEW
Faith GillianCanadaStephen Shaw RENEWAL
Antonio CaudyUnited KingdomAsiya Javayant NEGOTIATION
Aditya KuskoIndiaAmy Elsner QUALIFIED
Rodrigues CampainItalyBernardo Dominic QUALIFIED
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Clifford RimArgentinaOnyama Limba NEW
Aika InouyeJapanIvan Magalhaes NEGOTIATION
Kadeem FlosiFranceBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilIoni Bowcher QUALIFIED
Claire TollnerGermanyIoni Bowcher NEW
Kaitlin OstroskyIndiaIoni Bowcher QUALIFIED
Claire TollnerJapanAmy Elsner PROPOSAL
Deepesh ChuiJapanOnyama Limba NEW
Isabel BowleyArgentinaXuxue Feng PROPOSAL
Darci PoquetteJapanElwin Sharvill QUALIFIED
Emily WhobreyGermanyOnyama Limba UNQUALIFIED
Leon OldroydJapanAnna Fali NEGOTIATION
Misaki RoysterSpainBernardo Dominic QUALIFIED
James ButtCanadaBernardo Dominic PROPOSAL
Rodrigues CampainSpainOnyama Limba UNQUALIFIED
Jefferson SchemmerItalyIvan Magalhaes PROPOSAL
Leja CaldareraFranceXuxue Feng RENEWAL
Faith GillianIndiaBernardo Dominic NEGOTIATION
Rodrigues CampainFranceAmy Elsner PROPOSAL
Jeanfrancois VenereIndiaIvan Magalhaes QUALIFIED
Tony FollerIndiaElwin Sharvill UNQUALIFIED
Arvin AlbaresGermanyAnna Fali NEW
James ButtAustraliaXuxue Feng NEGOTIATION
Juan WieserIndiaAnna Fali NEW
Maisha RulapaughBrazilAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Maria MarrierFranceIoni Bowcher RENEWAL
Greenwood BologniaUnited KingdomIoni Bowcher RENEWAL
Stacey MacleadRussiaElwin Sharvill NEGOTIATION
James ButtSpainElwin Sharvill QUALIFIED
Ivar PaprockiItalyXuxue Feng NEW
Ivar PaprockiJapanBernardo Dominic NEW
Jeanfrancois VenereUnited KingdomBernardo Dominic RENEWAL
Claire TollnerRussiaStephen Shaw NEW
Maisha RulapaughCanadaAmy Elsner UNQUALIFIED
Faith GillianRussiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardItaly2026-05-23Feltz Printing Service UNQUALIFIED25Asiya Javayant
1001Arvin AlbaresJapan2026-05-07Feltz Printing Service QUALIFIED67Anna Fali
1002Munro FerenczRussia2026-05-18Morlong Associates NEGOTIATION25Elwin Sharvill
1003Maria MarrierArgentina2026-05-20Chanay, Jeffrey A Esq NEW41Onyama Limba
1004Smith GlickBrazil2026-05-17Morlong Associates QUALIFIED57Ioni Bowcher
1005Juan WieserItaly2026-05-11Buckley Miller Wright NEGOTIATION84Onyama Limba
1006Munro FerenczSpain2026-05-24Chapman, Ross E Esq RENEWAL78Anna Fali
1007Misaki RoysterGermany2026-05-24Benton, John B Jr NEGOTIATION87Ivan Magalhaes
1008Arvin AlbaresItaly2026-05-16Benton, John B Jr RENEWAL88Asiya Javayant
1009Rodrigues CampainArgentina2026-05-12Feiner Bros NEGOTIATION52Bernardo Dominic
1010Cody SaylorsFrance2026-05-29Morlong Associates NEGOTIATION66Bernardo Dominic
1011Rodrigues CampainArgentina2026-05-18Chanay, Jeffrey A Esq PROPOSAL64Elwin Sharvill
1012Chavez BriddickBrazil2026-05-19Truhlar And Truhlar Attys NEW76Amy Elsner
1013Johnson SergiJapan2026-05-14Chanay, Jeffrey A Esq UNQUALIFIED4Anna Fali
1014Munro FerenczBrazil2026-05-21Chapman, Ross E Esq NEGOTIATION69Onyama Limba
1015Francesco ShinkoJapan2026-05-07Morlong Associates UNQUALIFIED14Amy Elsner
1016Izzy GarufiItaly2026-05-08Rousseaux, Michael Esq NEW33Amy Elsner
1017Mujtaba NickaGermany2026-05-26Commercial Press NEGOTIATION63Ioni Bowcher
1018Faith GillianCanada2026-05-20Printing Dimensions NEW33Bernardo Dominic
1019Faith GillianJapan2026-05-27Dorl, James J Esq PROPOSAL70Ivan Magalhaes
1020Maisha RulapaughAustralia2026-05-15Buckley Miller Wright NEGOTIATION87Amy Elsner
1021David DarakjyUnited Kingdom2026-05-07Buckley Miller Wright PROPOSAL67Amy Elsner
1022Juan WieserSpain2026-05-14Printing Dimensions QUALIFIED21Onyama Limba
1023Tony FollerCanada2026-05-06Printing Dimensions PROPOSAL91Ivan Magalhaes
1024Juan WieserSpain2026-05-11Chanay, Jeffrey A Esq UNQUALIFIED25Stephen Shaw
1025Octavia MaletItaly2026-05-17Rangoni Of Florence NEW75Xuxue Feng
1026Wickens NestleJapan2026-05-18Chemel, James L Cpa NEGOTIATION51Ioni Bowcher
1027Clifford RimIndia2026-05-20Feiner Bros PROPOSAL4Asiya Javayant
1028Antonio CaudyUnited Kingdom2026-05-25Chanay, Jeffrey A Esq UNQUALIFIED54Elwin Sharvill
1029Leon OldroydAustralia2026-05-21Feiner Bros NEW54Elwin Sharvill
1030Mujtaba NickaItaly2026-05-05Benton, John B Jr RENEWAL4Asiya Javayant
1031Misaki RoysterUnited Kingdom2026-05-10Rousseaux, Michael Esq RENEWAL91Ioni Bowcher
1032James ButtUnited Kingdom2026-05-18Feiner Bros PROPOSAL49Asiya Javayant
1033Greenwood BologniaJapan2026-05-20Rousseaux, Michael Esq UNQUALIFIED2Stephen Shaw
1034Salvatore StockhamSpain2026-05-28Chanay, Jeffrey A Esq RENEWAL68Amy Elsner
1035Salvatore StockhamAustralia2026-05-28Morlong Associates UNQUALIFIED13Ivan Magalhaes
1036Francesco ShinkoArgentina2026-05-15Feltz Printing Service RENEWAL68Elwin Sharvill
1037Octavia MaletFrance2026-05-28Chemel, James L Cpa QUALIFIED43Onyama Limba
1038Jones VocelkaUnited Kingdom2026-05-11King, Christopher A Esq RENEWAL67Stephen Shaw
1039Jeanfrancois VenereFrance2026-06-02Feiner Bros RENEWAL78Xuxue Feng
1040Isabel BowleyJapan2026-05-16Buckley Miller Wright UNQUALIFIED74Elwin Sharvill
1041Murillo MaletFrance2026-05-28Buckley Miller Wright UNQUALIFIED62Amy Elsner
1042Stacey MacleadCanada2026-05-30Feiner Bros RENEWAL8Xuxue Feng
1043Ivar PaprockiUnited Kingdom2026-05-27Morlong Associates NEGOTIATION87Asiya Javayant
1044Aruna FigeroaAustralia2026-05-19Feiner Bros UNQUALIFIED95Stephen Shaw
1045Francesco ShinkoItaly2026-05-10Benton, John B Jr NEGOTIATION87Anna Fali
1046Ivar PaprockiUnited Kingdom2026-05-11Rousseaux, Michael Esq NEW55Bernardo Dominic
1047Faith GillianAustralia2026-05-05Morlong Associates UNQUALIFIED31Stephen Shaw
1048Mujtaba NickaGermany2026-05-06Rangoni Of Florence NEGOTIATION50Anna Fali
1049Claire TollnerUnited Kingdom2026-05-29King, Christopher A Esq RENEWAL73Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Julie StensethBrazilIvan Magalhaes QUALIFIED
Ivar PaprockiGermanyElwin Sharvill UNQUALIFIED
Cody SaylorsArgentinaOnyama Limba NEW
Adams MorascaItalyAsiya Javayant NEGOTIATION
Emily WhobreyIndiaAsiya Javayant UNQUALIFIED
Darci PoquetteGermanyAmy Elsner QUALIFIED
Darci PoquetteJapanIvan Magalhaes NEGOTIATION
Greenwood BologniaArgentinaElwin Sharvill QUALIFIED
Costa DilliardRussiaStephen Shaw NEGOTIATION
Silvio SlusarskiRussiaIoni Bowcher PROPOSAL
Mujtaba NickaFranceIvan Magalhaes RENEWAL
Octavia MaletArgentinaIoni Bowcher QUALIFIED
Francesco ShinkoFranceIoni Bowcher QUALIFIED
Maria MarrierUnited KingdomBernardo Dominic RENEWAL
Leja CaldareraCanadaElwin Sharvill NEGOTIATION
Adams MorascaRussiaOnyama Limba QUALIFIED
Maria MarrierSpainStephen Shaw PROPOSAL
Faith GillianAustraliaXuxue Feng QUALIFIED
Juan WieserSpainXuxue Feng NEW
Morrow RutaFranceOnyama Limba NEW
Mujtaba NickaFranceAmy Elsner NEW
Faith GillianUnited KingdomElwin Sharvill NEW
Wickens NestleAustraliaIvan Magalhaes PROPOSAL
Silvio SlusarskiGermanyXuxue Feng UNQUALIFIED
Juan WieserAustraliaBernardo Dominic QUALIFIED
David DarakjyCanadaXuxue Feng QUALIFIED
Maria MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyRussiaBernardo Dominic UNQUALIFIED
Leon OldroydFranceXuxue Feng PROPOSAL
Francesco ShinkoCanadaIvan Magalhaes UNQUALIFIED
Mujtaba NickaBrazilAmy Elsner QUALIFIED
Kaitlin OstroskyItalyOnyama Limba UNQUALIFIED
Misaki RoysterJapanOnyama Limba NEGOTIATION
Greenwood BologniaAustraliaBernardo Dominic NEW
Alejandro PerinBrazilAsiya Javayant PROPOSAL
Jennifer AmigonFranceElwin Sharvill RENEWAL
Octavia MaletUnited KingdomIoni Bowcher QUALIFIED
Munro FerenczUnited KingdomOnyama Limba NEGOTIATION
Aruna FigeroaCanadaAnna Fali RENEWAL
Aditya KuskoBrazilXuxue Feng PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher QUALIFIED
Smith GlickFranceStephen Shaw NEGOTIATION
Rodrigues CampainBrazilAsiya Javayant QUALIFIED
Emily WhobreyRussiaIoni Bowcher UNQUALIFIED
Aditya KuskoAustraliaXuxue Feng NEGOTIATION
Jefferson SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Smith GlickIndiaAmy Elsner UNQUALIFIED
Leja CaldareraRussiaAmy Elsner PROPOSAL
Clifford RimArgentinaAnna Fali NEW
Costa DilliardRussiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Jones Vocelka
Kadeem Flosi
Maria Marrier
Alejandro Perin
David Darakjy
Jefferson Schemmer
Jones Vocelka
Deepesh Chui
Emily Whobrey
Alejandro Perin
Rodrigues Campain
Morrow Ruta
Jefferson Schemmer
Aruna Figeroa
Tony Foller
Wickens Nestle
Julie Stenseth
Mayumi Kolmetz
Morrow Ruta
Jennifer Amigon
James Butt
Clifford Rim
Aika Inouye
Jeanfrancois Venere
Salvatore Stockham
Mujtaba Nicka
Arvin Albares
Darci Poquette
Costa Dilliard
Jones Vocelka
Aditya Kusko
Kaitlin Ostrosky
Aditya Kusko
Clifford Rim
Ashley Doe
Leon Oldroyd
Mujtaba Nicka
Leja Caldarera
Arvin Albares
Deepesh Chui
Adams Morasca
Salvatore Stockham
Aditya Kusko
Tony Foller
Faith Gillian
Maisha Rulapaugh
Deepesh Chui
Adams Morasca
Aditya Kusko
Octavia Malet
IdCountryDate
1000Germany2026-05-27
1001Germany2026-05-27
1002France2026-05-23
1003Russia2026-05-27
1004France2026-06-02
1005Argentina2026-06-02
1006Argentina2026-05-23
1007Spain2026-05-25
1008Canada2026-05-05
1009Argentina2026-05-15
1010Argentina2026-05-08
1011Brazil2026-05-28
1012Canada2026-05-22
1013Russia2026-05-19
1014Brazil2026-05-17
1015Argentina2026-05-14
1016United Kingdom2026-05-17
1017Argentina2026-05-15
1018Spain2026-05-08
1019Japan2026-05-05
1020Japan2026-05-12
1021France2026-05-29
1022United Kingdom2026-05-16
1023Germany2026-05-08
1024Australia2026-05-05
1025Spain2026-05-22
1026Germany2026-05-27
1027Germany2026-05-31
1028Argentina2026-05-05
1029Australia2026-06-01
1030Canada2026-05-17
1031India2026-05-22
1032France2026-06-02
1033Italy2026-06-02
1034United Kingdom2026-05-24
1035Canada2026-05-16
1036Australia2026-06-01
1037Canada2026-05-08
1038Spain2026-05-22
1039Spain2026-05-12
1040France2026-05-21
1041United Kingdom2026-05-26
1042India2026-05-29
1043Australia2026-05-10
1044Italy2026-05-17
1045India2026-05-04
1046Canada2026-05-26
1047France2026-05-22
1048Brazil2026-05-11
1049Japan2026-05-27

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Australia2026-05-31
Jennifer Amigon1001United Kingdom2026-05-09
Octavia Malet1002India2026-05-12
Jennifer Amigon1003Australia2026-05-13
Silvio Slusarski1004Brazil2026-05-22
Arvin Albares1005Canada2026-05-22
Antonio Caudy1006Argentina2026-05-07
Mayumi Kolmetz1007Canada2026-05-31
Rodrigues Campain1008Canada2026-05-17
Antonio Caudy1009Japan2026-05-27
Wickens Nestle1010Russia2026-05-29
Juan Wieser1011France2026-05-27
David Darakjy1012Australia2026-05-19
Mayumi Kolmetz1013Spain2026-05-11
Maria Marrier1014Japan2026-05-15
Jefferson Schemmer1015Spain2026-05-17
Faith Gillian1016Italy2026-05-08
Jefferson Schemmer1017United Kingdom2026-05-31
Murillo Malet1018Germany2026-05-31
Isabel Bowley1019Argentina2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem FlosiFranceIoni Bowcher NEW
Clifford RimItalyElwin Sharvill UNQUALIFIED
Stacey MacleadUnited KingdomXuxue Feng UNQUALIFIED
Mujtaba NickaSpainIoni Bowcher QUALIFIED
Darci PoquetteAustraliaStephen Shaw UNQUALIFIED
Maisha RulapaughItalyIvan Magalhaes NEGOTIATION
Clifford RimItalyBernardo Dominic NEGOTIATION
Maria MarrierAustraliaXuxue Feng UNQUALIFIED
Leon OldroydGermanyElwin Sharvill RENEWAL
Aika InouyeBrazilElwin Sharvill RENEWAL
Sinclair WaycottJapanBernardo Dominic PROPOSAL
David DarakjyJapanBernardo Dominic QUALIFIED
Kadeem FlosiArgentinaAmy Elsner UNQUALIFIED
Sinclair WaycottGermanyAmy Elsner PROPOSAL
Faith GillianIndiaAsiya Javayant QUALIFIED
Jeanfrancois VenereJapanStephen Shaw NEW
Jones VocelkaBrazilAmy Elsner QUALIFIED
Maisha RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Claire TollnerAustraliaElwin Sharvill RENEWAL
Sinclair WaycottArgentinaXuxue Feng PROPOSAL
Mayumi KolmetzGermanyBernardo Dominic RENEWAL
Isabel BowleyIndiaAmy Elsner UNQUALIFIED
Ashley DoeGermanyAnna Fali QUALIFIED
Jones VocelkaBrazilAmy Elsner NEGOTIATION
Adams MorascaIndiaAnna Fali PROPOSAL
Kadeem FlosiAustraliaIvan Magalhaes UNQUALIFIED
Johnson SergiAustraliaBernardo Dominic PROPOSAL
Adams MorascaCanadaIoni Bowcher NEW
Salvatore StockhamItalyAnna Fali NEW
Rodrigues CampainCanadaOnyama Limba PROPOSAL
Ivar PaprockiGermanyAnna Fali QUALIFIED
Deepesh ChuiItalyOnyama Limba UNQUALIFIED
Wickens NestleUnited KingdomStephen Shaw NEW
Silvio SlusarskiUnited KingdomXuxue Feng PROPOSAL
Isabel BowleyFranceOnyama Limba NEW
Stacey MacleadIndiaElwin Sharvill QUALIFIED
Adams MorascaUnited KingdomIvan Magalhaes QUALIFIED
Francesco ShinkoRussiaBernardo Dominic QUALIFIED
Mayumi KolmetzFranceBernardo Dominic UNQUALIFIED
Smith GlickGermanyAsiya Javayant 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>