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
Sinclair WaycottJapanAmy Elsner QUALIFIED
Julie StensethIndiaIoni Bowcher QUALIFIED
Mayumi KolmetzRussiaIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaAsiya Javayant PROPOSAL
Nicolas IturbideJapanAnna Fali NEW
Jeanfrancois VenereBrazilBernardo Dominic QUALIFIED
Emily WhobreyArgentinaAmy Elsner RENEWAL
Jefferson SchemmerArgentinaXuxue Feng QUALIFIED
Ashley DoeRussiaAsiya Javayant RENEWAL
Wickens NestleArgentinaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyJapanBernardo Dominic NEW
Tony FollerCanadaElwin Sharvill NEW
Adams MorascaSpainXuxue Feng NEW
Jones VocelkaGermanyAsiya Javayant NEW
Mujtaba NickaSpainBernardo Dominic RENEWAL
Mayumi KolmetzArgentinaIoni Bowcher NEW
Morrow RutaIndiaElwin Sharvill UNQUALIFIED
James ButtCanadaOnyama Limba NEGOTIATION
Izzy GarufiJapanAnna Fali NEW
Claire TollnerItalyBernardo Dominic NEGOTIATION
Aditya KuskoRussiaAnna Fali NEW
Francesco ShinkoAustraliaIoni Bowcher PROPOSAL
Mujtaba NickaFranceAsiya Javayant QUALIFIED
Kaitlin OstroskyJapanElwin Sharvill UNQUALIFIED
Ricardo GauchoAustraliaAnna Fali NEW
Darci PoquetteArgentinaAnna Fali PROPOSAL
Chavez BriddickBrazilAsiya Javayant NEW
Munro FerenczBrazilStephen Shaw RENEWAL
Jennifer AmigonIndiaStephen Shaw NEW
Munro FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill PROPOSAL
Costa DilliardFranceAsiya Javayant PROPOSAL
Greenwood BologniaAustraliaBernardo Dominic UNQUALIFIED
Greenwood BologniaArgentinaBernardo Dominic QUALIFIED
Aika InouyeJapanAmy Elsner QUALIFIED
Morrow RutaSpainAnna Fali NEW
Maria MarrierJapanBernardo Dominic NEW
Aika InouyeIndiaAmy Elsner RENEWAL
Greenwood BologniaFranceStephen Shaw PROPOSAL
Francesco ShinkoJapanXuxue Feng PROPOSAL
Jennifer AmigonItalyIoni Bowcher UNQUALIFIED
Mayumi KolmetzGermanyXuxue Feng UNQUALIFIED
Silvio SlusarskiJapanAnna Fali RENEWAL
Munro FerenczIndiaBernardo Dominic RENEWAL
Emily WhobreyGermanyIoni Bowcher UNQUALIFIED
Ricardo GauchoRussiaOnyama Limba RENEWAL
Stacey MacleadJapanAnna Fali NEGOTIATION
Salvatore StockhamAustraliaBernardo Dominic UNQUALIFIED
Octavia MaletIndiaOnyama Limba RENEWAL
Munro FerenczGermanyIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickGermanyAsiya Javayant RENEWAL
Izzy GarufiGermanyAmy Elsner QUALIFIED
Morrow RutaSpainElwin Sharvill UNQUALIFIED
Julie StensethCanadaAnna Fali UNQUALIFIED
Antonio CaudyJapanStephen Shaw PROPOSAL
Octavia MaletFranceAmy Elsner QUALIFIED
Alejandro PerinRussiaAmy Elsner PROPOSAL
Ashley DoeBrazilOnyama Limba PROPOSAL
Jones VocelkaItalyIoni Bowcher UNQUALIFIED
Izzy GarufiAustraliaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoRussia2026-05-01Rangoni Of Florence RENEWAL36Bernardo Dominic
1001Johnson SergiJapan2026-04-25Chemel, James L Cpa PROPOSAL98Bernardo Dominic
1002Octavia MaletAustralia2026-04-06Morlong Associates RENEWAL90Xuxue Feng
1003Aruna FigeroaIndia2026-04-13Chanay, Jeffrey A Esq QUALIFIED29Xuxue Feng
1004Ashley DoeRussia2026-04-09Commercial Press PROPOSAL60Amy Elsner
1005Rodrigues CampainUnited Kingdom2026-04-19Feiner Bros NEW62Stephen Shaw
1006Arvin AlbaresRussia2026-04-03Rousseaux, Michael Esq UNQUALIFIED29Ivan Magalhaes
1007Emily WhobreyItaly2026-04-03Chapman, Ross E Esq PROPOSAL92Ivan Magalhaes
1008Leja CaldareraBrazil2026-04-23Buckley Miller Wright NEW72Xuxue Feng
1009Aika InouyeJapan2026-04-17Dorl, James J Esq NEGOTIATION98Stephen Shaw
1010James ButtFrance2026-04-26Rangoni Of Florence NEGOTIATION45Bernardo Dominic
1011Tony FollerIndia2026-04-11Rangoni Of Florence NEW96Stephen Shaw
1012Alejandro PerinJapan2026-04-22Printing Dimensions NEW16Ivan Magalhaes
1013Nicolas IturbideFrance2026-04-16Benton, John B Jr QUALIFIED36Ioni Bowcher
1014Wickens NestleCanada2026-04-24Feiner Bros QUALIFIED42Bernardo Dominic
1015Leja CaldareraIndia2026-04-15Buckley Miller Wright RENEWAL21Onyama Limba
1016Morrow RutaGermany2026-04-04Morlong Associates NEGOTIATION13Xuxue Feng
1017Deepesh ChuiSpain2026-04-12Rangoni Of Florence NEGOTIATION12Ioni Bowcher
1018Kaitlin OstroskyFrance2026-04-23Commercial Press NEW12Amy Elsner
1019Leja CaldareraIndia2026-04-14Chanay, Jeffrey A Esq PROPOSAL15Anna Fali
1020Silvio SlusarskiUnited Kingdom2026-04-06Feiner Bros UNQUALIFIED7Anna Fali
1021Wickens NestleGermany2026-04-14Buckley Miller Wright NEGOTIATION8Ioni Bowcher
1022Jones VocelkaJapan2026-04-02Morlong Associates PROPOSAL74Elwin Sharvill
1023Emily WhobreyBrazil2026-04-24Chanay, Jeffrey A Esq NEW74Xuxue Feng
1024Maria MarrierIndia2026-04-27Benton, John B Jr NEGOTIATION54Ivan Magalhaes
1025Ashley DoeUnited Kingdom2026-05-01Chapman, Ross E Esq NEW0Xuxue Feng
1026Mujtaba NickaItaly2026-04-14Benton, John B Jr NEGOTIATION55Onyama Limba
1027Maisha RulapaughArgentina2026-04-02Benton, John B Jr NEGOTIATION69Stephen Shaw
1028Faith GillianItaly2026-04-02Commercial Press PROPOSAL48Asiya Javayant
1029Jefferson SchemmerJapan2026-04-27Commercial Press PROPOSAL67Ivan Magalhaes
1030Murillo MaletFrance2026-04-07Chanay, Jeffrey A Esq PROPOSAL56Elwin Sharvill
1031Morrow RutaRussia2026-04-05King, Christopher A Esq QUALIFIED45Anna Fali
1032Antonio CaudySpain2026-04-15Benton, John B Jr QUALIFIED81Xuxue Feng
1033Kaitlin OstroskyAustralia2026-04-14Benton, John B Jr RENEWAL98Onyama Limba
1034Leja CaldareraUnited Kingdom2026-04-29Feiner Bros NEW51Amy Elsner
1035Ashley DoeGermany2026-04-29Morlong Associates RENEWAL9Xuxue Feng
1036Silvio SlusarskiIndia2026-04-11Truhlar And Truhlar Attys UNQUALIFIED13Elwin Sharvill
1037Adams MorascaIndia2026-04-27Printing Dimensions QUALIFIED39Amy Elsner
1038Darci PoquetteCanada2026-04-02Rangoni Of Florence PROPOSAL41Elwin Sharvill
1039Sinclair WaycottSpain2026-04-06Buckley Miller Wright NEGOTIATION26Onyama Limba
1040Aruna FigeroaItaly2026-04-29Commercial Press UNQUALIFIED57Asiya Javayant
1041Arvin AlbaresIndia2026-04-21Truhlar And Truhlar Attys QUALIFIED81Amy Elsner
1042Alejandro PerinArgentina2026-04-11Buckley Miller Wright NEGOTIATION71Ivan Magalhaes
1043Salvatore StockhamIndia2026-04-15Commercial Press RENEWAL98Bernardo Dominic
1044Mujtaba NickaBrazil2026-04-22King, Christopher A Esq QUALIFIED44Ioni Bowcher
1045Wickens NestleIndia2026-04-03Printing Dimensions NEGOTIATION28Ioni Bowcher
1046David DarakjySpain2026-04-20Feltz Printing Service NEW7Onyama Limba
1047Mujtaba NickaJapan2026-05-01King, Christopher A Esq NEW57Ioni Bowcher
1048Octavia MaletCanada2026-04-21Rousseaux, Michael Esq QUALIFIED68Amy Elsner
1049Francesco ShinkoUnited Kingdom2026-04-18Printing Dimensions QUALIFIED1Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoJapanElwin Sharvill NEW
Sinclair WaycottRussiaAmy Elsner QUALIFIED
Salvatore StockhamCanadaStephen Shaw NEGOTIATION
Juan WieserJapanElwin Sharvill PROPOSAL
Aruna FigeroaCanadaAsiya Javayant NEGOTIATION
Greenwood BologniaGermanyOnyama Limba NEW
Chavez BriddickSpainAnna Fali UNQUALIFIED
Rodrigues CampainUnited KingdomIvan Magalhaes RENEWAL
Rodrigues CampainJapanAmy Elsner NEW
Aditya KuskoAustraliaElwin Sharvill PROPOSAL
Arvin AlbaresItalyStephen Shaw NEGOTIATION
Maria MarrierAustraliaIoni Bowcher NEW
Cody SaylorsSpainAmy Elsner RENEWAL
Adams MorascaGermanyIvan Magalhaes UNQUALIFIED
Julie StensethBrazilIvan Magalhaes UNQUALIFIED
Chavez BriddickAustraliaElwin Sharvill NEW
David DarakjyAustraliaAnna Fali NEGOTIATION
David DarakjyJapanBernardo Dominic NEW
James ButtJapanXuxue Feng UNQUALIFIED
Francesco ShinkoArgentinaIoni Bowcher NEW
Murillo MaletAustraliaOnyama Limba NEGOTIATION
Silvio SlusarskiItalyAsiya Javayant RENEWAL
Isabel BowleyIndiaOnyama Limba NEW
Clifford RimFranceIvan Magalhaes NEW
Claire TollnerRussiaAsiya Javayant QUALIFIED
Juan WieserArgentinaAsiya Javayant NEGOTIATION
Jones VocelkaArgentinaElwin Sharvill RENEWAL
Emily WhobreyItalyElwin Sharvill NEGOTIATION
Jones VocelkaJapanAnna Fali PROPOSAL
Morrow RutaGermanyAmy Elsner NEW
Emily WhobreyArgentinaAsiya Javayant QUALIFIED
Alejandro PerinAustraliaXuxue Feng PROPOSAL
Stacey MacleadFranceAsiya Javayant NEW
Tony FollerCanadaElwin Sharvill QUALIFIED
Jefferson SchemmerJapanAmy Elsner PROPOSAL
Greenwood BologniaAustraliaIoni Bowcher RENEWAL
Alejandro PerinJapanBernardo Dominic QUALIFIED
Sinclair WaycottSpainAnna Fali UNQUALIFIED
Isabel BowleyGermanyXuxue Feng QUALIFIED
Leon OldroydJapanStephen Shaw NEGOTIATION
Rodrigues CampainJapanOnyama Limba QUALIFIED
Wickens NestleGermanyOnyama Limba NEGOTIATION
Clifford RimSpainElwin Sharvill QUALIFIED
Juan WieserItalyElwin Sharvill PROPOSAL
Leon OldroydSpainIoni Bowcher UNQUALIFIED
Clifford RimUnited KingdomAnna Fali RENEWAL
Johnson SergiIndiaXuxue Feng PROPOSAL
Johnson SergiRussiaElwin Sharvill UNQUALIFIED
Wickens NestleBrazilAmy Elsner NEW
James ButtBrazilAmy Elsner NEW
Frozen Columns
Name
Misaki Royster
Claire Tollner
Jones Vocelka
Jennifer Amigon
Aditya Kusko
Darci Poquette
Clifford Rim
Misaki Royster
Misaki Royster
Greenwood Bolognia
Rodrigues Campain
Alejandro Perin
Francesco Shinko
Julie Stenseth
Kadeem Flosi
Isabel Bowley
Izzy Garufi
Rodrigues Campain
Johnson Sergi
Mujtaba Nicka
Mujtaba Nicka
Arvin Albares
Julie Stenseth
Antonio Caudy
Misaki Royster
Salvatore Stockham
Nicolas Iturbide
Silvio Slusarski
Antonio Caudy
Chavez Briddick
Adams Morasca
Kadeem Flosi
Kadeem Flosi
Johnson Sergi
Leon Oldroyd
Darci Poquette
Aruna Figeroa
Aika Inouye
Maisha Rulapaugh
Chavez Briddick
Kadeem Flosi
Claire Tollner
Aruna Figeroa
Greenwood Bolognia
Arvin Albares
Silvio Slusarski
Misaki Royster
Chavez Briddick
Darci Poquette
Murillo Malet
IdCountryDate
1000Argentina2026-04-11
1001India2026-04-20
1002Spain2026-05-01
1003Japan2026-04-15
1004Italy2026-04-03
1005Russia2026-04-04
1006France2026-04-20
1007United Kingdom2026-04-16
1008Argentina2026-04-11
1009Italy2026-04-14
1010Spain2026-04-23
1011Australia2026-04-28
1012United Kingdom2026-04-03
1013Australia2026-04-16
1014Australia2026-04-25
1015France2026-04-12
1016Spain2026-04-19
1017Italy2026-04-07
1018United Kingdom2026-04-24
1019United Kingdom2026-04-07
1020Argentina2026-04-10
1021Russia2026-04-03
1022Germany2026-04-24
1023Russia2026-04-08
1024Japan2026-04-27
1025France2026-04-29
1026Russia2026-04-25
1027Argentina2026-04-26
1028France2026-04-20
1029Japan2026-04-24
1030Italy2026-04-26
1031France2026-04-13
1032Spain2026-04-27
1033Canada2026-05-01
1034India2026-04-19
1035Brazil2026-04-19
1036Brazil2026-04-09
1037Canada2026-04-07
1038France2026-04-12
1039Russia2026-04-09
1040France2026-04-02
1041Canada2026-04-18
1042Russia2026-04-12
1043France2026-04-02
1044France2026-04-04
1045Canada2026-04-11
1046France2026-04-09
1047India2026-04-14
1048Australia2026-04-19
1049Brazil2026-04-14

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Argentina2026-04-06
Aditya Kusko1001Germany2026-04-25
Salvatore Stockham1002France2026-04-23
Darci Poquette1003Japan2026-04-19
Misaki Royster1004Canada2026-04-29
Mujtaba Nicka1005Italy2026-04-27
Arvin Albares1006Spain2026-04-20
Francesco Shinko1007Germany2026-04-14
Jennifer Amigon1008India2026-04-30
Aika Inouye1009Brazil2026-04-30
Maria Marrier1010Australia2026-04-22
Misaki Royster1011France2026-04-11
Murillo Malet1012Australia2026-04-24
Aika Inouye1013Australia2026-04-16
Faith Gillian1014Australia2026-04-13
Aditya Kusko1015India2026-04-17
Antonio Caudy1016Brazil2026-04-16
Ricardo Gaucho1017Australia2026-04-12
Ivar Paprocki1018India2026-04-11
Mujtaba Nicka1019Canada2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon OldroydAustraliaStephen Shaw PROPOSAL
Jefferson SchemmerArgentinaOnyama Limba NEGOTIATION
Clifford RimCanadaAnna Fali QUALIFIED
Jeanfrancois VenereRussiaAnna Fali PROPOSAL
Mayumi KolmetzIndiaXuxue Feng NEW
Smith GlickJapanStephen Shaw NEGOTIATION
Alejandro PerinSpainAnna Fali NEGOTIATION
Leon OldroydBrazilIvan Magalhaes UNQUALIFIED
Tony FollerIndiaAnna Fali RENEWAL
Kadeem FlosiGermanyAsiya Javayant RENEWAL
Alejandro PerinGermanyAsiya Javayant PROPOSAL
Nicolas IturbideItalyAmy Elsner PROPOSAL
Alejandro PerinBrazilXuxue Feng NEW
Arvin AlbaresAustraliaAnna Fali NEGOTIATION
Isabel BowleyRussiaAsiya Javayant NEGOTIATION
Julie StensethSpainElwin Sharvill RENEWAL
Mayumi KolmetzUnited KingdomAnna Fali NEW
Claire TollnerUnited KingdomAsiya Javayant PROPOSAL
Aika InouyeBrazilStephen Shaw UNQUALIFIED
Greenwood BologniaCanadaIoni Bowcher NEGOTIATION
Aruna FigeroaAustraliaStephen Shaw NEGOTIATION
Aruna FigeroaArgentinaOnyama Limba RENEWAL
Rodrigues CampainItalyElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomAnna Fali UNQUALIFIED
Maria MarrierJapanElwin Sharvill RENEWAL
Chavez BriddickItalyBernardo Dominic NEW
Wickens NestleItalyXuxue Feng RENEWAL
Maisha RulapaughArgentinaAnna Fali QUALIFIED
Morrow RutaItalyElwin Sharvill UNQUALIFIED
Juan WieserJapanXuxue Feng QUALIFIED
Darci PoquetteCanadaOnyama Limba UNQUALIFIED
Faith GillianGermanyXuxue Feng QUALIFIED
Jeanfrancois VenereGermanyStephen Shaw PROPOSAL
James ButtAustraliaAmy Elsner NEGOTIATION
Tony FollerBrazilIvan Magalhaes NEW
Adams MorascaSpainIvan Magalhaes UNQUALIFIED
Juan WieserGermanyElwin Sharvill PROPOSAL
Maria MarrierCanadaAsiya Javayant QUALIFIED
Costa DilliardBrazilIoni Bowcher NEW
Izzy GarufiGermanyOnyama 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>