Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
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
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Deepesh U ButtBrazilIvan Magalhaes NEW
Francesco C GauchoJapanAmy Elsner QUALIFIED
Aditya R BologniaItalyAsiya Javayant NEGOTIATION
Francesco Y DarakjyCanadaAnna Fali NEGOTIATION
Rodrigues T MaletUnited KingdomAmy Elsner NEGOTIATION
Isabel S SchemmerCanadaAmy Elsner UNQUALIFIED
Darci H KolmetzIndiaIvan Magalhaes RENEWAL
Faith D VenereGermanyOnyama Limba NEW
David Y FerenczItalyIoni Bowcher QUALIFIED
Faith L ButtAustraliaAsiya Javayant NEGOTIATION
Misaki O RimUnited KingdomElwin Sharvill PROPOSAL
Mujtaba H BologniaUnited KingdomOnyama Limba QUALIFIED
Leon G CaudyJapanAsiya Javayant QUALIFIED
Mujtaba O MarrierBrazilIoni Bowcher NEGOTIATION
Morrow Z ButtItalyStephen Shaw QUALIFIED
James N DoeBrazilElwin Sharvill QUALIFIED
Jennifer Z MorascaCanadaBernardo Dominic PROPOSAL
Aruna M GauchoIndiaAsiya Javayant RENEWAL
Mayumi D GarufiAustraliaBernardo Dominic NEGOTIATION
Juan S FerenczBrazilStephen Shaw QUALIFIED
Juan H PaprockiBrazilElwin Sharvill RENEWAL
Clifford E RimArgentinaXuxue Feng UNQUALIFIED
Isabel V WieserFranceOnyama Limba NEW
Clifford A VenereRussiaElwin Sharvill QUALIFIED
Jefferson J DilliardBrazilBernardo Dominic NEGOTIATION
Maria H MarrierBrazilElwin Sharvill NEGOTIATION
Jones V TollnerRussiaAmy Elsner NEGOTIATION
Ricardo H MorascaSpainElwin Sharvill QUALIFIED
Jennifer E KolmetzUnited KingdomIoni Bowcher NEW
Maria I StensethSpainIoni Bowcher QUALIFIED
Leja A KolmetzIndiaBernardo Dominic QUALIFIED
Juan V GauchoFranceAsiya Javayant QUALIFIED
Kaitlin Y OldroydJapanIoni Bowcher PROPOSAL
Claire V BowleyAustraliaXuxue Feng QUALIFIED
Ricardo A RutaGermanyIvan Magalhaes RENEWAL
Maria M DoeAustraliaAsiya Javayant PROPOSAL
Octavia N DilliardRussiaXuxue Feng QUALIFIED
Jennifer V WieserCanadaIoni Bowcher NEGOTIATION
Octavia R IturbideArgentinaIoni Bowcher NEW
Cody I InouyeGermanyIoni Bowcher UNQUALIFIED
Claire Q MarrierIndiaIvan Magalhaes NEW
Morrow J PerinFranceOnyama Limba NEW
Maria Z IturbideFranceStephen Shaw QUALIFIED
Darci K RoysterUnited KingdomAsiya Javayant RENEWAL
Darci U PaprockiJapanBernardo Dominic QUALIFIED
Ivar K ChuiIndiaAmy Elsner QUALIFIED
Ashley A WieserBrazilOnyama Limba UNQUALIFIED
Julie X BologniaItalyOnyama Limba PROPOSAL
Antonio E OstroskyAustraliaStephen Shaw NEW
Julie X KuskoAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones Y PaprockiFranceAsiya Javayant PROPOSAL
Isabel D CaldareraGermanyOnyama Limba QUALIFIED
Ashley E CampainIndiaBernardo Dominic UNQUALIFIED
Tony F FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Jones S BowleyBrazilElwin Sharvill QUALIFIED
Ashley O GauchoFranceIvan Magalhaes NEW
Jeanfrancois X MaletArgentinaAnna Fali PROPOSAL
Rodrigues N NestleArgentinaIvan Magalhaes PROPOSAL
Misaki O MaletBrazilOnyama Limba QUALIFIED
Johnson O WieserItalyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith R RulapaughCanada2026-06-25Dorl, James J Esq NEGOTIATION13Bernardo Dominic
1001Jones R MaletUnited Kingdom2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED80Anna Fali
1002Jennifer V FollerBrazil2026-06-28Rangoni Of Florence QUALIFIED88Bernardo Dominic
1003Jones H DoeUnited Kingdom2026-07-04King, Christopher A Esq NEGOTIATION20Ioni Bowcher
1004Jefferson Y PerinJapan2026-07-09Feiner Bros NEW9Ivan Magalhaes
1005Kadeem E GlickItaly2026-07-21Chanay, Jeffrey A Esq NEW61Anna Fali
1006Wickens B SlusarskiArgentina2026-07-06Feiner Bros PROPOSAL62Amy Elsner
1007Izzy I RulapaughCanada2026-06-25Feltz Printing Service QUALIFIED78Asiya Javayant
1008Aditya R KuskoJapan2026-07-05Feiner Bros NEW83Amy Elsner
1009Mayumi D MorascaRussia2026-06-26Morlong Associates RENEWAL86Xuxue Feng
1010Maisha J FlosiIndia2026-07-08Feltz Printing Service NEGOTIATION14Ioni Bowcher
1011James H RulapaughBrazil2026-07-17Commercial Press RENEWAL63Xuxue Feng
1012Stacey V CaudyCanada2026-07-13Benton, John B Jr QUALIFIED33Ioni Bowcher
1013Chavez W StensethUnited Kingdom2026-07-14Feltz Printing Service NEGOTIATION58Elwin Sharvill
1014Alejandro O KolmetzRussia2026-06-27Printing Dimensions PROPOSAL19Onyama Limba
1015Jeanfrancois Z OldroydBrazil2026-07-17Rousseaux, Michael Esq QUALIFIED12Amy Elsner
1016Alejandro E WaycottJapan2026-06-27Printing Dimensions UNQUALIFIED50Ioni Bowcher
1017David T MorascaBrazil2026-07-18Chanay, Jeffrey A Esq NEW38Amy Elsner
1018Mayumi Z MaletUnited Kingdom2026-07-11Printing Dimensions PROPOSAL55Ioni Bowcher
1019Darci N ButtItaly2026-07-10Chapman, Ross E Esq QUALIFIED65Bernardo Dominic
1020Jennifer N KolmetzGermany2026-07-17Morlong Associates NEW44Onyama Limba
1021Sinclair I InouyeJapan2026-07-09Dorl, James J Esq QUALIFIED81Ivan Magalhaes
1022Costa T MorascaIndia2026-07-06Benton, John B Jr PROPOSAL72Amy Elsner
1023Kaitlin G MaletSpain2026-06-26Chanay, Jeffrey A Esq NEGOTIATION48Stephen Shaw
1024Cody F GlickArgentina2026-07-21Truhlar And Truhlar Attys NEW63Asiya Javayant
1025Aditya G AmigonUnited Kingdom2026-06-22King, Christopher A Esq NEGOTIATION36Amy Elsner
1026Faith R GauchoArgentina2026-07-03Rangoni Of Florence UNQUALIFIED17Amy Elsner
1027Mayumi A NickaItaly2026-07-12Buckley Miller Wright QUALIFIED15Onyama Limba
1028Silvio A MacleadAustralia2026-06-30Truhlar And Truhlar Attys UNQUALIFIED15Anna Fali
1029Julie I IturbideBrazil2026-06-25Chanay, Jeffrey A Esq UNQUALIFIED61Bernardo Dominic
1030Alejandro T MaletGermany2026-07-08Dorl, James J Esq UNQUALIFIED99Amy Elsner
1031Mujtaba S StockhamSpain2026-07-03Feiner Bros PROPOSAL7Asiya Javayant
1032Aditya R InouyeGermany2026-06-23Chemel, James L Cpa UNQUALIFIED74Elwin Sharvill
1033Claire M OstroskyGermany2026-07-21Truhlar And Truhlar Attys RENEWAL55Stephen Shaw
1034Maisha T OldroydArgentina2026-07-18Chemel, James L Cpa PROPOSAL72Bernardo Dominic
1035Munro Q FerenczArgentina2026-07-11Morlong Associates NEGOTIATION38Amy Elsner
1036Julie I TollnerUnited Kingdom2026-07-20Morlong Associates RENEWAL88Ivan Magalhaes
1037Leja Y InouyeSpain2026-07-03Chanay, Jeffrey A Esq NEW22Elwin Sharvill
1038Costa B PoquetteUnited Kingdom2026-07-11Feiner Bros RENEWAL87Elwin Sharvill
1039Deepesh F SchemmerUnited Kingdom2026-07-20Commercial Press NEGOTIATION41Xuxue Feng
1040Jefferson D RulapaughIndia2026-06-22Rousseaux, Michael Esq NEGOTIATION3Anna Fali
1041Adams R DarakjySpain2026-07-04Benton, John B Jr NEGOTIATION91Onyama Limba
1042Munro Z FigeroaAustralia2026-07-05Chapman, Ross E Esq UNQUALIFIED58Anna Fali
1043Nicolas W RoysterCanada2026-07-14Chapman, Ross E Esq PROPOSAL0Ivan Magalhaes
1044Cody Z BologniaBrazil2026-07-04Printing Dimensions UNQUALIFIED48Xuxue Feng
1045Darci F DoeItaly2026-07-13Benton, John B Jr QUALIFIED73Amy Elsner
1046Greenwood Z RoysterUnited Kingdom2026-06-27Truhlar And Truhlar Attys QUALIFIED20Xuxue Feng
1047Jones H StockhamItaly2026-07-09Commercial Press PROPOSAL70Ioni Bowcher
1048Juan A DoeArgentina2026-07-14Morlong Associates NEGOTIATION55Bernardo Dominic
1049Jeanfrancois I CampainGermany2026-06-22Commercial Press UNQUALIFIED32Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Z FigeroaAustraliaIvan Magalhaes PROPOSAL
Mayumi L RoysterAustraliaOnyama Limba NEW
Smith V ShinkoIndiaElwin Sharvill QUALIFIED
Aika U VenereArgentinaElwin Sharvill QUALIFIED
Deepesh I SchemmerFranceIoni Bowcher QUALIFIED
Juan B RulapaughRussiaOnyama Limba NEGOTIATION
Faith C ShinkoBrazilAmy Elsner QUALIFIED
Isabel B IturbideRussiaOnyama Limba QUALIFIED
Murillo M OldroydAustraliaElwin Sharvill QUALIFIED
Francesco N WaycottGermanyAsiya Javayant NEW
Emily T SaylorsGermanyOnyama Limba RENEWAL
Maisha U StensethRussiaIvan Magalhaes NEGOTIATION
Tony C BriddickAustraliaElwin Sharvill QUALIFIED
Aruna E AmigonJapanAnna Fali QUALIFIED
Maria R VenereCanadaIvan Magalhaes UNQUALIFIED
Chavez Q OstroskyItalyBernardo Dominic NEGOTIATION
Julie W SlusarskiCanadaIoni Bowcher PROPOSAL
Jennifer N NickaGermanyBernardo Dominic NEW
Aika R StensethCanadaIvan Magalhaes UNQUALIFIED
Tony R RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Morrow P KuskoArgentinaElwin Sharvill QUALIFIED
Aruna H KuskoJapanStephen Shaw RENEWAL
Isabel B MaletIndiaAnna Fali NEW
Deepesh T CampainBrazilElwin Sharvill NEGOTIATION
Kadeem C WaycottBrazilAmy Elsner PROPOSAL
Isabel C GauchoCanadaStephen Shaw UNQUALIFIED
Francesco X OstroskyIndiaAnna Fali NEGOTIATION
Ricardo V PoquetteUnited KingdomIoni Bowcher RENEWAL
Julie S PerinCanadaBernardo Dominic NEGOTIATION
Jefferson G BowleyFranceOnyama Limba PROPOSAL
Francesco M CaldareraJapanAmy Elsner NEGOTIATION
Aruna I FlosiFranceAsiya Javayant UNQUALIFIED
Deepesh S BowleySpainAmy Elsner RENEWAL
Francesco E VocelkaItalyAmy Elsner UNQUALIFIED
Rodrigues P FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Claire G MaletArgentinaAmy Elsner NEW
Ivar Q AlbaresIndiaAmy Elsner NEW
Mayumi M SlusarskiGermanyStephen Shaw PROPOSAL
Mujtaba J WaycottGermanyElwin Sharvill RENEWAL
Deepesh P SaylorsRussiaAnna Fali UNQUALIFIED
Aditya F StensethGermanyIvan Magalhaes NEW
Antonio T BologniaBrazilIoni Bowcher NEW
Rodrigues F StockhamItalyAsiya Javayant NEGOTIATION
Isabel S FlosiUnited KingdomOnyama Limba RENEWAL
Ashley C PerinBrazilOnyama Limba PROPOSAL
Leja R IturbideGermanyStephen Shaw UNQUALIFIED
Francesco F PoquetteIndiaAnna Fali PROPOSAL
Francesco W VocelkaArgentinaBernardo Dominic RENEWAL
Wickens O SaylorsArgentinaAsiya Javayant RENEWAL
Ivar R KuskoJapanElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Antonio N Figeroa
Jones M Glick
Ricardo O Caldarera
Clifford L Amigon
Ivar K Kusko
Kadeem K Caudy
Greenwood D Caldarera
Arvin O Perin
Deepesh R Maclead
Maria W Royster
Leja H Nicka
Kadeem G Albares
Chavez M Venere
Mujtaba Q Dilliard
Wickens X Slusarski
Sinclair Y Venere
Isabel M Slusarski
Mujtaba Y Ostrosky
Ashley C Sergi
Jones D Briddick
Maisha T Foller
Cody Z Rulapaugh
Adams T Ostrosky
Francesco W Slusarski
Greenwood L Caldarera
Izzy E Albares
Salvatore T Shinko
Jeanfrancois O Gaucho
Murillo Q Stenseth
Johnson W Butt
Alejandro F Ferencz
Alejandro P Rulapaugh
Ashley Q Morasca
Silvio V Rulapaugh
Chavez R Ostrosky
Jones E Rim
Mujtaba B Marrier
Deepesh V Albares
Julie I Malet
Silvio O Slusarski
Wickens I Royster
Adams D Flosi
Aruna R Sergi
Arvin W Saylors
Claire F Albares
Deepesh L Bowley
Mujtaba M Chui
Ashley C Slusarski
David H Doe
Jennifer O Rulapaugh
IdCountryDate
1000Australia2026-07-08
1001Brazil2026-07-01
1002Italy2026-07-19
1003Russia2026-07-19
1004Japan2026-07-10
1005Spain2026-07-21
1006India2026-07-21
1007India2026-07-21
1008Italy2026-07-11
1009Canada2026-07-17
1010Brazil2026-06-30
1011Italy2026-07-03
1012India2026-07-09
1013Russia2026-07-20
1014India2026-06-25
1015India2026-07-12
1016Canada2026-07-14
1017Australia2026-06-29
1018Australia2026-07-17
1019Russia2026-07-05
1020Italy2026-07-15
1021United Kingdom2026-07-12
1022Italy2026-07-09
1023India2026-07-15
1024United Kingdom2026-07-17
1025United Kingdom2026-07-04
1026Italy2026-07-18
1027France2026-07-01
1028Italy2026-06-25
1029Argentina2026-07-01
1030France2026-07-20
1031Canada2026-07-10
1032Italy2026-07-17
1033Russia2026-06-24
1034Germany2026-06-27
1035Russia2026-07-11
1036United Kingdom2026-07-06
1037Australia2026-07-19
1038Germany2026-07-05
1039Russia2026-07-16
1040Japan2026-06-28
1041Australia2026-07-21
1042India2026-07-12
1043Italy2026-06-26
1044Russia2026-07-01
1045Canada2026-07-07
1046Japan2026-06-24
1047Italy2026-07-05
1048United Kingdom2026-07-02
1049Canada2026-07-10

On-Demand Data

NameIdCountryDate
Johnson Y Schemmer1000Germany2026-07-11
Chavez V Rulapaugh1001United Kingdom2026-07-09
Octavia Q Malet1002Australia2026-07-18
Ricardo G Vocelka1003Argentina2026-07-03
Nicolas Q Amigon1004Japan2026-06-27
Ricardo E Ostrosky1005Argentina2026-07-04
Greenwood U Garufi1006Russia2026-06-30
Clifford I Rulapaugh1007Australia2026-06-22
Ashley Y Stenseth1008United Kingdom2026-07-19
Jefferson O Poquette1009Japan2026-06-27
Nicolas G Garufi1010Spain2026-07-16
Aditya C Marrier1011Brazil2026-07-04
Faith Y Nestle1012France2026-07-19
Johnson Z Garufi1013France2026-07-16
Jeanfrancois W Darakjy1014Brazil2026-07-08
Juan C Bowley1015Argentina2026-06-23
Jefferson R Oldroyd1016Japan2026-07-20
Adams A Vocelka1017India2026-06-23
Antonio T Doe1018Italy2026-06-25
Emily K Venere1019Spain2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya I IturbideItalyElwin Sharvill QUALIFIED
Rodrigues B OldroydCanadaOnyama Limba NEW
David M GauchoItalyBernardo Dominic RENEWAL
Kadeem D ShinkoSpainAnna Fali NEW
Nicolas W PaprockiCanadaBernardo Dominic NEGOTIATION
Wickens Q VenereCanadaIoni Bowcher UNQUALIFIED
Leon V BologniaJapanStephen Shaw NEGOTIATION
Octavia X OstroskyIndiaOnyama Limba NEGOTIATION
Adams P ChuiIndiaAmy Elsner QUALIFIED
James V KolmetzGermanyXuxue Feng NEGOTIATION
Salvatore T OldroydJapanIvan Magalhaes QUALIFIED
Salvatore H ButtBrazilOnyama Limba NEGOTIATION
Cody Y RoysterIndiaAsiya Javayant PROPOSAL
Octavia F GillianAustraliaOnyama Limba NEW
Octavia W PoquetteJapanAsiya Javayant NEW
Julie T GauchoIndiaOnyama Limba UNQUALIFIED
Misaki S MorascaRussiaOnyama Limba UNQUALIFIED
Mujtaba W ButtFranceAsiya Javayant NEGOTIATION
Greenwood K GarufiCanadaAmy Elsner NEW
Deepesh N PaprockiRussiaIoni Bowcher RENEWAL
Stacey T BowleyBrazilIoni Bowcher UNQUALIFIED
Sinclair C DilliardFranceElwin Sharvill PROPOSAL
Leon K SlusarskiAustraliaXuxue Feng QUALIFIED
Ricardo A PerinIndiaIvan Magalhaes UNQUALIFIED
David I DarakjyArgentinaBernardo Dominic QUALIFIED
Arvin G CaudyUnited KingdomIvan Magalhaes QUALIFIED
Wickens D RimJapanIoni Bowcher UNQUALIFIED
Jefferson G VenereFranceIoni Bowcher QUALIFIED
Adams A GarufiUnited KingdomIoni Bowcher PROPOSAL
Julie N FlosiSpainBernardo Dominic QUALIFIED
Munro O StensethFranceOnyama Limba PROPOSAL
Leja Q WhobreyIndiaAmy Elsner RENEWAL
Alejandro R RutaUnited KingdomIvan Magalhaes NEGOTIATION
Juan C FlosiAustraliaBernardo Dominic RENEWAL
Mujtaba V PaprockiSpainAnna Fali NEW
Costa Z DarakjyCanadaAmy Elsner NEW
Izzy L CaudyJapanIvan Magalhaes QUALIFIED
Ivar Y SaylorsRussiaOnyama Limba QUALIFIED
Jefferson P GauchoBrazilIoni Bowcher QUALIFIED
Izzy D MarrierArgentinaStephen Shaw 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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>