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
Misaki RoysterCanadaAsiya Javayant NEW
Maisha RulapaughFranceOnyama Limba RENEWAL
Jones VocelkaGermanyOnyama Limba UNQUALIFIED
Ricardo GauchoCanadaAmy Elsner RENEWAL
Arvin AlbaresIndiaXuxue Feng RENEWAL
Greenwood BologniaArgentinaElwin Sharvill NEGOTIATION
Tony FollerItalyOnyama Limba NEGOTIATION
Aruna FigeroaRussiaBernardo Dominic UNQUALIFIED
Izzy GarufiCanadaXuxue Feng PROPOSAL
Leon OldroydItalyAmy Elsner QUALIFIED
Jeanfrancois VenereIndiaBernardo Dominic NEGOTIATION
Wickens NestleSpainBernardo Dominic RENEWAL
Ivar PaprockiRussiaIvan Magalhaes NEW
Alejandro PerinItalyIoni Bowcher UNQUALIFIED
Tony FollerAustraliaIoni Bowcher RENEWAL
James ButtCanadaElwin Sharvill NEGOTIATION
Silvio SlusarskiRussiaStephen Shaw NEW
Wickens NestleUnited KingdomStephen Shaw NEGOTIATION
Kaitlin OstroskyRussiaAmy Elsner NEGOTIATION
Nicolas IturbideCanadaXuxue Feng RENEWAL
Smith GlickArgentinaElwin Sharvill NEGOTIATION
Wickens NestleCanadaStephen Shaw PROPOSAL
Jones VocelkaUnited KingdomAmy Elsner NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba PROPOSAL
Alejandro PerinSpainStephen Shaw QUALIFIED
Costa DilliardArgentinaXuxue Feng UNQUALIFIED
Johnson SergiUnited KingdomAnna Fali PROPOSAL
Nicolas IturbideSpainElwin Sharvill QUALIFIED
Jones VocelkaSpainAnna Fali UNQUALIFIED
Juan WieserItalyElwin Sharvill QUALIFIED
Julie StensethFranceXuxue Feng PROPOSAL
Nicolas IturbideUnited KingdomStephen Shaw RENEWAL
Antonio CaudyCanadaAmy Elsner NEGOTIATION
Aika InouyeAustraliaAsiya Javayant RENEWAL
Greenwood BologniaBrazilBernardo Dominic UNQUALIFIED
Jefferson SchemmerUnited KingdomOnyama Limba NEW
Faith GillianJapanStephen Shaw UNQUALIFIED
Kadeem FlosiArgentinaBernardo Dominic QUALIFIED
Silvio SlusarskiRussiaAsiya Javayant UNQUALIFIED
Morrow RutaAustraliaBernardo Dominic UNQUALIFIED
Adams MorascaUnited KingdomIoni Bowcher RENEWAL
Kaitlin OstroskyItalyAmy Elsner RENEWAL
David DarakjyArgentinaIoni Bowcher UNQUALIFIED
Francesco ShinkoRussiaIoni Bowcher NEGOTIATION
Greenwood BologniaGermanyOnyama Limba NEGOTIATION
Mujtaba NickaFranceIvan Magalhaes UNQUALIFIED
Morrow RutaRussiaBernardo Dominic NEGOTIATION
Silvio SlusarskiItalyAmy Elsner RENEWAL
Costa DilliardIndiaOnyama Limba QUALIFIED
Greenwood BologniaAustraliaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamFranceAnna Fali NEW
Claire TollnerRussiaOnyama Limba PROPOSAL
Isabel BowleyRussiaAmy Elsner RENEWAL
Misaki RoysterRussiaStephen Shaw NEGOTIATION
Faith GillianBrazilStephen Shaw PROPOSAL
James ButtIndiaAsiya Javayant RENEWAL
Antonio CaudyAustraliaXuxue Feng QUALIFIED
Juan WieserArgentinaIvan Magalhaes PROPOSAL
Greenwood BologniaSpainAmy Elsner RENEWAL
Silvio SlusarskiGermanyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletIndia2026-04-30Morlong Associates NEW75Xuxue Feng
1001Aika InouyeJapan2026-05-02Rousseaux, Michael Esq RENEWAL90Anna Fali
1002Octavia MaletItaly2026-04-18Chanay, Jeffrey A Esq QUALIFIED8Elwin Sharvill
1003Chavez BriddickRussia2026-04-25Rangoni Of Florence PROPOSAL83Bernardo Dominic
1004Leon OldroydUnited Kingdom2026-04-19Morlong Associates PROPOSAL96Anna Fali
1005Jeanfrancois VenereCanada2026-04-17Printing Dimensions UNQUALIFIED71Anna Fali
1006Jefferson SchemmerCanada2026-04-19Chemel, James L Cpa QUALIFIED86Ioni Bowcher
1007Tony FollerGermany2026-04-09Dorl, James J Esq RENEWAL65Amy Elsner
1008Morrow RutaSpain2026-04-24Chapman, Ross E Esq UNQUALIFIED47Bernardo Dominic
1009Jeanfrancois VenereIndia2026-04-06Buckley Miller Wright UNQUALIFIED18Elwin Sharvill
1010Aika InouyeCanada2026-04-16Rousseaux, Michael Esq PROPOSAL41Asiya Javayant
1011Maria MarrierArgentina2026-04-15Commercial Press RENEWAL4Elwin Sharvill
1012Aika InouyeSpain2026-04-27Truhlar And Truhlar Attys NEW81Bernardo Dominic
1013Kadeem FlosiGermany2026-05-02King, Christopher A Esq QUALIFIED47Elwin Sharvill
1014Darci PoquetteCanada2026-04-15Feiner Bros RENEWAL31Ioni Bowcher
1015Johnson SergiRussia2026-04-13Chemel, James L Cpa UNQUALIFIED94Amy Elsner
1016Jennifer AmigonRussia2026-04-15Dorl, James J Esq PROPOSAL30Ivan Magalhaes
1017James ButtFrance2026-04-19Feltz Printing Service RENEWAL6Elwin Sharvill
1018Nicolas IturbideCanada2026-04-30Printing Dimensions PROPOSAL45Stephen Shaw
1019Faith GillianSpain2026-04-20Feltz Printing Service QUALIFIED97Anna Fali
1020Clifford RimAustralia2026-04-22Morlong Associates RENEWAL46Bernardo Dominic
1021Salvatore StockhamGermany2026-04-10Commercial Press NEW69Xuxue Feng
1022Munro FerenczItaly2026-04-12Chanay, Jeffrey A Esq PROPOSAL60Ioni Bowcher
1023Aditya KuskoArgentina2026-04-23Feltz Printing Service QUALIFIED32Bernardo Dominic
1024Greenwood BologniaJapan2026-04-08Feiner Bros UNQUALIFIED85Onyama Limba
1025Octavia MaletBrazil2026-04-13Benton, John B Jr QUALIFIED91Stephen Shaw
1026Sinclair WaycottBrazil2026-04-17King, Christopher A Esq PROPOSAL29Elwin Sharvill
1027Johnson SergiUnited Kingdom2026-04-27Buckley Miller Wright PROPOSAL0Stephen Shaw
1028Cody SaylorsUnited Kingdom2026-04-28Buckley Miller Wright NEW69Anna Fali
1029Salvatore StockhamCanada2026-04-13Dorl, James J Esq QUALIFIED16Asiya Javayant
1030Maisha RulapaughCanada2026-05-02Rangoni Of Florence QUALIFIED35Onyama Limba
1031Smith GlickItaly2026-04-08Feltz Printing Service NEW35Stephen Shaw
1032Darci PoquetteUnited Kingdom2026-04-29Feiner Bros NEGOTIATION11Amy Elsner
1033Antonio CaudyGermany2026-04-07Rousseaux, Michael Esq UNQUALIFIED66Bernardo Dominic
1034James ButtAustralia2026-04-18Truhlar And Truhlar Attys PROPOSAL31Ioni Bowcher
1035Rodrigues CampainJapan2026-04-17Dorl, James J Esq PROPOSAL82Xuxue Feng
1036Alejandro PerinArgentina2026-04-14Chanay, Jeffrey A Esq RENEWAL53Ivan Magalhaes
1037Sinclair WaycottFrance2026-04-13Chemel, James L Cpa QUALIFIED65Ioni Bowcher
1038Kadeem FlosiSpain2026-04-05Rangoni Of Florence RENEWAL80Xuxue Feng
1039Maria MarrierFrance2026-04-14King, Christopher A Esq NEGOTIATION82Bernardo Dominic
1040Sinclair WaycottBrazil2026-04-06Chapman, Ross E Esq NEGOTIATION48Amy Elsner
1041Cody SaylorsCanada2026-04-17Feltz Printing Service UNQUALIFIED48Anna Fali
1042Faith GillianRussia2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED9Onyama Limba
1043Francesco ShinkoJapan2026-04-14Chemel, James L Cpa PROPOSAL88Anna Fali
1044Claire TollnerJapan2026-04-28King, Christopher A Esq NEGOTIATION23Elwin Sharvill
1045Wickens NestleIndia2026-04-27Rousseaux, Michael Esq UNQUALIFIED72Anna Fali
1046Jones VocelkaGermany2026-05-01Chanay, Jeffrey A Esq QUALIFIED96Bernardo Dominic
1047Darci PoquetteBrazil2026-04-26Chapman, Ross E Esq QUALIFIED30Ivan Magalhaes
1048Leon OldroydRussia2026-05-03Benton, John B Jr UNQUALIFIED44Anna Fali
1049Maisha RulapaughAustralia2026-04-13Buckley Miller Wright NEGOTIATION93Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyIndiaIvan Magalhaes UNQUALIFIED
David DarakjyUnited KingdomElwin Sharvill NEW
Juan WieserCanadaAmy Elsner RENEWAL
Chavez BriddickFranceElwin Sharvill NEGOTIATION
Silvio SlusarskiSpainAsiya Javayant RENEWAL
Aruna FigeroaCanadaBernardo Dominic NEW
Nicolas IturbideJapanElwin Sharvill NEW
Emily WhobreyCanadaOnyama Limba RENEWAL
Aruna FigeroaCanadaAsiya Javayant NEGOTIATION
Rodrigues CampainGermanyIvan Magalhaes PROPOSAL
Morrow RutaArgentinaAsiya Javayant PROPOSAL
Alejandro PerinCanadaIoni Bowcher NEGOTIATION
Ricardo GauchoGermanyStephen Shaw NEW
Cody SaylorsArgentinaAmy Elsner QUALIFIED
Morrow RutaGermanyXuxue Feng QUALIFIED
Misaki RoysterSpainXuxue Feng RENEWAL
Arvin AlbaresFranceAnna Fali NEGOTIATION
Darci PoquetteItalyAnna Fali QUALIFIED
Morrow RutaBrazilIoni Bowcher RENEWAL
Leon OldroydRussiaOnyama Limba QUALIFIED
Clifford RimGermanyIoni Bowcher PROPOSAL
Alejandro PerinRussiaAmy Elsner NEGOTIATION
David DarakjyIndiaElwin Sharvill QUALIFIED
Kadeem FlosiGermanyElwin Sharvill QUALIFIED
Murillo MaletFranceAsiya Javayant UNQUALIFIED
Nicolas IturbideArgentinaAsiya Javayant PROPOSAL
Antonio CaudyCanadaElwin Sharvill UNQUALIFIED
Tony FollerCanadaBernardo Dominic NEW
Aditya KuskoAustraliaIoni Bowcher NEW
Maria MarrierBrazilOnyama Limba NEW
Salvatore StockhamBrazilIvan Magalhaes RENEWAL
Izzy GarufiFranceIoni Bowcher NEW
Silvio SlusarskiRussiaAnna Fali RENEWAL
Faith GillianSpainOnyama Limba UNQUALIFIED
Jennifer AmigonItalyOnyama Limba RENEWAL
Chavez BriddickBrazilIoni Bowcher NEGOTIATION
Aditya KuskoCanadaXuxue Feng PROPOSAL
David DarakjyBrazilBernardo Dominic NEW
Claire TollnerRussiaOnyama Limba NEW
Jennifer AmigonSpainIvan Magalhaes QUALIFIED
Salvatore StockhamCanadaIvan Magalhaes UNQUALIFIED
Julie StensethItalyOnyama Limba NEGOTIATION
Jones VocelkaCanadaAsiya Javayant QUALIFIED
Rodrigues CampainCanadaAsiya Javayant PROPOSAL
Mujtaba NickaCanadaXuxue Feng PROPOSAL
Smith GlickFranceElwin Sharvill PROPOSAL
Mayumi KolmetzArgentinaXuxue Feng NEW
Maria MarrierCanadaAsiya Javayant NEW
Deepesh ChuiJapanAsiya Javayant UNQUALIFIED
Smith GlickAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Julie Stenseth
Antonio Caudy
Tony Foller
Ricardo Gaucho
Aika Inouye
Jones Vocelka
Aruna Figeroa
Misaki Royster
Jeanfrancois Venere
Aika Inouye
Aika Inouye
Costa Dilliard
Faith Gillian
Greenwood Bolognia
Jeanfrancois Venere
Chavez Briddick
Stacey Maclead
Aruna Figeroa
Jeanfrancois Venere
Mujtaba Nicka
Isabel Bowley
Izzy Garufi
Mujtaba Nicka
Octavia Malet
Misaki Royster
Arvin Albares
Costa Dilliard
Leon Oldroyd
Rodrigues Campain
Greenwood Bolognia
Maisha Rulapaugh
Maisha Rulapaugh
Aditya Kusko
Mayumi Kolmetz
Adams Morasca
Sinclair Waycott
Costa Dilliard
Silvio Slusarski
Misaki Royster
David Darakjy
Silvio Slusarski
Francesco Shinko
Alejandro Perin
Faith Gillian
Mujtaba Nicka
Silvio Slusarski
Smith Glick
Kadeem Flosi
Octavia Malet
Kaitlin Ostrosky
IdCountryDate
1000Australia2026-04-09
1001Spain2026-04-11
1002Canada2026-04-25
1003Japan2026-04-27
1004Germany2026-04-11
1005Canada2026-04-19
1006Spain2026-04-21
1007Italy2026-04-08
1008Russia2026-04-20
1009Germany2026-04-10
1010Italy2026-04-26
1011United Kingdom2026-04-24
1012Canada2026-04-11
1013Australia2026-04-26
1014France2026-04-11
1015United Kingdom2026-04-13
1016Australia2026-05-01
1017Italy2026-04-22
1018Italy2026-05-02
1019Australia2026-04-19
1020India2026-04-25
1021Germany2026-04-06
1022Canada2026-05-01
1023Argentina2026-05-04
1024Italy2026-04-05
1025Argentina2026-04-28
1026Australia2026-04-17
1027Australia2026-05-02
1028Australia2026-04-24
1029Brazil2026-04-25
1030United Kingdom2026-04-16
1031India2026-05-03
1032United Kingdom2026-04-11
1033Russia2026-05-04
1034Germany2026-04-18
1035Brazil2026-04-08
1036India2026-04-19
1037Australia2026-04-23
1038Germany2026-04-19
1039Argentina2026-04-07
1040United Kingdom2026-04-19
1041India2026-04-21
1042Australia2026-04-20
1043Brazil2026-04-20
1044Italy2026-04-30
1045Spain2026-05-03
1046Italy2026-04-06
1047Russia2026-04-27
1048Canada2026-04-07
1049India2026-05-01

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000India2026-04-15
Arvin Albares1001Canada2026-04-12
Adams Morasca1002France2026-04-17
Antonio Caudy1003Germany2026-04-19
Morrow Ruta1004Spain2026-04-30
Jones Vocelka1005Brazil2026-04-11
Murillo Malet1006Spain2026-04-25
Alejandro Perin1007Argentina2026-04-22
Sinclair Waycott1008Argentina2026-04-08
Silvio Slusarski1009Russia2026-04-14
Juan Wieser1010United Kingdom2026-04-27
Costa Dilliard1011Italy2026-04-16
Alejandro Perin1012Argentina2026-05-04
Leon Oldroyd1013Italy2026-04-10
Kadeem Flosi1014Canada2026-05-02
Arvin Albares1015Canada2026-04-22
Juan Wieser1016Germany2026-04-20
Aruna Figeroa1017United Kingdom2026-04-15
Adams Morasca1018Germany2026-04-24
David Darakjy1019Russia2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy GarufiAustraliaBernardo Dominic QUALIFIED
Maisha RulapaughSpainAmy Elsner UNQUALIFIED
Jefferson SchemmerCanadaAmy Elsner QUALIFIED
Mayumi KolmetzGermanyAmy Elsner NEW
Mujtaba NickaUnited KingdomBernardo Dominic UNQUALIFIED
Jeanfrancois VenereSpainStephen Shaw RENEWAL
Julie StensethRussiaAsiya Javayant QUALIFIED
Deepesh ChuiFranceIoni Bowcher UNQUALIFIED
Faith GillianJapanAmy Elsner RENEWAL
Emily WhobreyItalyAsiya Javayant QUALIFIED
Rodrigues CampainFranceElwin Sharvill NEGOTIATION
Adams MorascaSpainStephen Shaw PROPOSAL
Cody SaylorsItalyXuxue Feng RENEWAL
Rodrigues CampainJapanAnna Fali PROPOSAL
Stacey MacleadRussiaElwin Sharvill UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Isabel BowleyJapanAnna Fali PROPOSAL
Jeanfrancois VenereItalyAsiya Javayant UNQUALIFIED
Munro FerenczAustraliaIvan Magalhaes QUALIFIED
Aditya KuskoJapanStephen Shaw RENEWAL
Misaki RoysterItalyAnna Fali RENEWAL
Ashley DoeIndiaBernardo Dominic RENEWAL
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Cody SaylorsCanadaElwin Sharvill QUALIFIED
Mayumi KolmetzItalyXuxue Feng UNQUALIFIED
Clifford RimArgentinaStephen Shaw NEGOTIATION
Jennifer AmigonAustraliaIvan Magalhaes QUALIFIED
Kadeem FlosiIndiaBernardo Dominic NEW
Costa DilliardFranceIvan Magalhaes UNQUALIFIED
Greenwood BologniaAustraliaOnyama Limba RENEWAL
Jennifer AmigonBrazilAmy Elsner NEGOTIATION
Misaki RoysterAustraliaAsiya Javayant PROPOSAL
Kaitlin OstroskyArgentinaStephen Shaw NEGOTIATION
Jones VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Ashley DoeAustraliaAsiya Javayant UNQUALIFIED
Stacey MacleadFranceAnna Fali UNQUALIFIED
Deepesh ChuiItalyStephen Shaw NEGOTIATION
Jeanfrancois VenereRussiaStephen Shaw NEW
Faith GillianSpainIoni Bowcher NEW
Mujtaba NickaUnited KingdomOnyama Limba 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>