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
Wickens C CaldareraCanadaAnna Fali NEW
Jeanfrancois W MaletItalyOnyama Limba QUALIFIED
Salvatore B GauchoAustraliaElwin Sharvill RENEWAL
Leon C MorascaItalyAnna Fali RENEWAL
Aditya E GillianGermanyAmy Elsner NEW
Mayumi W SchemmerIndiaXuxue Feng UNQUALIFIED
Jeanfrancois P PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez K WaycottUnited KingdomBernardo Dominic NEGOTIATION
Adams P CaudyJapanAnna Fali UNQUALIFIED
Maria H OstroskyCanadaStephen Shaw NEW
Ashley W NestleRussiaIoni Bowcher UNQUALIFIED
Octavia F StensethItalyIoni Bowcher UNQUALIFIED
Isabel P BologniaFranceIvan Magalhaes QUALIFIED
Antonio L DoeSpainAsiya Javayant QUALIFIED
Deepesh L InouyeFranceIvan Magalhaes NEGOTIATION
Aika D FerenczBrazilAmy Elsner RENEWAL
Maisha Q CaldareraRussiaAsiya Javayant PROPOSAL
Kadeem E KuskoJapanIvan Magalhaes RENEWAL
Ashley T DarakjyBrazilAnna Fali PROPOSAL
Kaitlin O CaldareraFranceAsiya Javayant PROPOSAL
Tony M MacleadArgentinaBernardo Dominic UNQUALIFIED
Murillo T KuskoItalyIvan Magalhaes QUALIFIED
Kadeem S WhobreyIndiaBernardo Dominic PROPOSAL
Juan B IturbideItalyAmy Elsner QUALIFIED
Claire Q AlbaresFranceOnyama Limba PROPOSAL
Jefferson X DoeUnited KingdomIvan Magalhaes NEGOTIATION
David F NickaJapanAnna Fali PROPOSAL
James T InouyeIndiaAnna Fali UNQUALIFIED
Claire M CaldareraItalyIvan Magalhaes UNQUALIFIED
Adams P PerinBrazilOnyama Limba NEGOTIATION
Adams U WaycottItalyIoni Bowcher PROPOSAL
Julie U DilliardIndiaIoni Bowcher NEW
Alejandro J DilliardUnited KingdomAsiya Javayant QUALIFIED
Arvin E PaprockiSpainXuxue Feng NEGOTIATION
Adams T NickaRussiaStephen Shaw UNQUALIFIED
Aruna Y CampainIndiaIoni Bowcher NEGOTIATION
Octavia J CampainCanadaIoni Bowcher PROPOSAL
Octavia P CaldareraUnited KingdomXuxue Feng PROPOSAL
Jones G InouyeAustraliaStephen Shaw NEGOTIATION
Morrow K SlusarskiArgentinaIoni Bowcher RENEWAL
Greenwood P BriddickGermanyXuxue Feng NEGOTIATION
Jeanfrancois F MorascaArgentinaIoni Bowcher RENEWAL
Aika P DoeArgentinaAmy Elsner NEW
Adams X PaprockiArgentinaElwin Sharvill NEW
Faith Z KolmetzItalyXuxue Feng RENEWAL
Maisha Q WaycottItalyElwin Sharvill NEGOTIATION
Leja S IturbideItalyOnyama Limba NEW
Kaitlin S RutaBrazilElwin Sharvill RENEWAL
Aruna W RutaItalyAnna Fali NEGOTIATION
Claire Z VocelkaAustraliaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja L PerinItalyStephen Shaw QUALIFIED
Ashley G StensethItalyIvan Magalhaes RENEWAL
Jones M CaudyIndiaOnyama Limba RENEWAL
Jeanfrancois C CampainItalyStephen Shaw NEGOTIATION
Faith I PaprockiRussiaAmy Elsner UNQUALIFIED
Aika B AlbaresUnited KingdomBernardo Dominic QUALIFIED
Antonio S FollerJapanElwin Sharvill PROPOSAL
Darci K SlusarskiBrazilAsiya Javayant NEGOTIATION
Ashley G BologniaFranceAmy Elsner PROPOSAL
Adams U PaprockiJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie F FerenczJapan2026-08-05Dorl, James J Esq NEW54Onyama Limba
1001Kadeem V GauchoSpain2026-08-25Printing Dimensions PROPOSAL52Elwin Sharvill
1002Emily I RutaAustralia2026-08-14Chapman, Ross E Esq NEW50Onyama Limba
1003Munro Q BologniaBrazil2026-08-09Chanay, Jeffrey A Esq NEGOTIATION43Stephen Shaw
1004Maria L VenereAustralia2026-08-19Chemel, James L Cpa QUALIFIED30Anna Fali
1005Arvin F PaprockiSpain2026-08-22King, Christopher A Esq QUALIFIED96Stephen Shaw
1006Costa N GillianRussia2026-08-10Morlong Associates NEGOTIATION37Elwin Sharvill
1007Stacey M PaprockiFrance2026-08-10Dorl, James J Esq NEGOTIATION25Elwin Sharvill
1008Murillo Z FigeroaRussia2026-08-12Rousseaux, Michael Esq RENEWAL89Onyama Limba
1009Emily L DilliardAustralia2026-08-11King, Christopher A Esq NEW0Ioni Bowcher
1010Smith H MaletFrance2026-08-27King, Christopher A Esq NEW56Stephen Shaw
1011Aditya F MaletBrazil2026-08-06Chapman, Ross E Esq PROPOSAL64Amy Elsner
1012Octavia K InouyeBrazil2026-08-04Feltz Printing Service PROPOSAL88Ivan Magalhaes
1013Greenwood F RimSpain2026-08-28Benton, John B Jr NEW83Amy Elsner
1014Sinclair K OstroskyBrazil2026-08-27Feiner Bros QUALIFIED29Ioni Bowcher
1015Emily F GillianRussia2026-08-18Chemel, James L Cpa RENEWAL6Elwin Sharvill
1016Sinclair A CaudyAustralia2026-08-12Rousseaux, Michael Esq QUALIFIED83Elwin Sharvill
1017Costa X MorascaGermany2026-08-22Benton, John B Jr NEW51Ioni Bowcher
1018Kaitlin H AlbaresBrazil2026-08-12Benton, John B Jr RENEWAL80Ivan Magalhaes
1019Alejandro N PaprockiRussia2026-08-07Feltz Printing Service NEW80Bernardo Dominic
1020Mayumi F DarakjyFrance2026-08-08Dorl, James J Esq RENEWAL54Anna Fali
1021Tony I KolmetzFrance2026-08-10Dorl, James J Esq RENEWAL72Bernardo Dominic
1022Maisha L InouyeGermany2026-08-06Feltz Printing Service UNQUALIFIED8Anna Fali
1023Smith P AmigonJapan2026-08-05Chemel, James L Cpa QUALIFIED85Onyama Limba
1024Ricardo O RimIndia2026-08-13Dorl, James J Esq RENEWAL83Bernardo Dominic
1025Isabel R KolmetzArgentina2026-08-15King, Christopher A Esq NEGOTIATION10Stephen Shaw
1026Claire J CaldareraGermany2026-07-31Rangoni Of Florence QUALIFIED12Ivan Magalhaes
1027Chavez K PaprockiItaly2026-08-28Morlong Associates NEGOTIATION0Amy Elsner
1028Ricardo U ChuiItaly2026-07-30Rangoni Of Florence NEW28Stephen Shaw
1029Munro N AmigonBrazil2026-08-07Benton, John B Jr PROPOSAL49Stephen Shaw
1030Munro V RimUnited Kingdom2026-08-16Chapman, Ross E Esq NEW29Ivan Magalhaes
1031Kadeem N CaudyUnited Kingdom2026-08-09Commercial Press RENEWAL46Elwin Sharvill
1032Misaki D NickaItaly2026-08-05Truhlar And Truhlar Attys PROPOSAL78Ioni Bowcher
1033Kadeem Q FigeroaGermany2026-08-18Feltz Printing Service NEW41Ioni Bowcher
1034Jones S MarrierUnited Kingdom2026-08-28Chapman, Ross E Esq NEW9Bernardo Dominic
1035Morrow Y FollerJapan2026-08-25Morlong Associates NEW59Xuxue Feng
1036Claire R RutaBrazil2026-07-31King, Christopher A Esq UNQUALIFIED92Elwin Sharvill
1037Ivar H KolmetzJapan2026-07-31Commercial Press PROPOSAL83Xuxue Feng
1038Jennifer W OstroskyUnited Kingdom2026-08-23Feltz Printing Service NEGOTIATION68Bernardo Dominic
1039Alejandro Q NickaItaly2026-08-22Rousseaux, Michael Esq QUALIFIED14Anna Fali
1040Stacey L FerenczAustralia2026-08-11Truhlar And Truhlar Attys QUALIFIED16Ivan Magalhaes
1041Stacey I BowleyGermany2026-08-27Printing Dimensions QUALIFIED33Ivan Magalhaes
1042Jeanfrancois K WieserRussia2026-08-16Chapman, Ross E Esq UNQUALIFIED42Ivan Magalhaes
1043Kaitlin I SlusarskiSpain2026-08-24Printing Dimensions UNQUALIFIED79Ioni Bowcher
1044Jefferson A KolmetzSpain2026-08-18Rousseaux, Michael Esq UNQUALIFIED38Elwin Sharvill
1045Wickens K VenereAustralia2026-08-17Truhlar And Truhlar Attys QUALIFIED39Asiya Javayant
1046Clifford Z SchemmerIndia2026-08-02Benton, John B Jr QUALIFIED38Bernardo Dominic
1047Nicolas U GarufiArgentina2026-08-05Feiner Bros UNQUALIFIED39Ioni Bowcher
1048Nicolas Z RimGermany2026-08-02Buckley Miller Wright UNQUALIFIED86Ivan Magalhaes
1049Alejandro X BowleyUnited Kingdom2026-07-30Feltz Printing Service PROPOSAL60Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Alejandro D DoeIndiaOnyama Limba QUALIFIED
Kadeem C VenereIndiaIoni Bowcher UNQUALIFIED
Jennifer H SergiItalyBernardo Dominic NEGOTIATION
Aditya O FlosiSpainOnyama Limba NEGOTIATION
Aruna B OldroydCanadaAmy Elsner NEW
Johnson N PerinFranceBernardo Dominic NEGOTIATION
Julie N IturbideAustraliaElwin Sharvill NEGOTIATION
Ivar G RulapaughItalyAnna Fali PROPOSAL
Salvatore I CampainJapanXuxue Feng RENEWAL
Smith W DilliardArgentinaIoni Bowcher RENEWAL
Maria F MorascaSpainElwin Sharvill QUALIFIED
Arvin C FollerUnited KingdomIvan Magalhaes NEGOTIATION
Munro B FollerArgentinaIoni Bowcher PROPOSAL
Stacey E PerinJapanStephen Shaw QUALIFIED
Leon O AlbaresIndiaAmy Elsner UNQUALIFIED
Julie U FlosiIndiaStephen Shaw NEGOTIATION
Octavia Y TollnerArgentinaIoni Bowcher UNQUALIFIED
Maisha B FlosiAustraliaAmy Elsner NEGOTIATION
Emily W FigeroaSpainElwin Sharvill NEW
Juan S FerenczItalyIvan Magalhaes RENEWAL
Alejandro F CampainSpainAnna Fali RENEWAL
Leja K SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Emily Z ChuiFranceAsiya Javayant NEW
Silvio I BologniaCanadaIvan Magalhaes NEGOTIATION
Adams Z SchemmerBrazilAmy Elsner NEGOTIATION
Isabel B FollerBrazilAmy Elsner QUALIFIED
Ivar Y RulapaughSpainAmy Elsner NEGOTIATION
David T KolmetzCanadaIvan Magalhaes RENEWAL
Stacey X CaudyCanadaElwin Sharvill NEW
Jeanfrancois R OstroskyJapanXuxue Feng QUALIFIED
Munro P KolmetzItalyIvan Magalhaes NEW
Murillo V InouyeRussiaIvan Magalhaes NEW
Julie M PaprockiFranceIvan Magalhaes PROPOSAL
Greenwood X GarufiUnited KingdomElwin Sharvill PROPOSAL
Misaki U InouyeRussiaAmy Elsner UNQUALIFIED
Adams C CampainBrazilXuxue Feng UNQUALIFIED
Deepesh X GillianCanadaIoni Bowcher QUALIFIED
Chavez U SlusarskiFranceIoni Bowcher NEGOTIATION
Alejandro Z GauchoRussiaAsiya Javayant QUALIFIED
Maisha L CaudyJapanBernardo Dominic NEW
Kadeem I KuskoCanadaAmy Elsner UNQUALIFIED
Johnson Z AlbaresArgentinaStephen Shaw QUALIFIED
Deepesh Y FerenczCanadaStephen Shaw PROPOSAL
Aika N MorascaCanadaXuxue Feng RENEWAL
Cody V GillianRussiaXuxue Feng NEW
Stacey T ShinkoSpainBernardo Dominic QUALIFIED
Jefferson B GauchoArgentinaOnyama Limba PROPOSAL
Antonio H MarrierUnited KingdomOnyama Limba PROPOSAL
Stacey M ShinkoIndiaAmy Elsner PROPOSAL
Izzy C TollnerUnited KingdomAsiya Javayant NEW
Frozen Columns
Name
Salvatore G Saylors
Costa Z Stockham
Mujtaba V Venere
Chavez K Bowley
Aditya M Oldroyd
Arvin P Sergi
Greenwood N Iturbide
Salvatore Y Inouye
Isabel E Kolmetz
Claire Z Sergi
Mujtaba X Bowley
Adams S Schemmer
Jefferson L Kusko
Costa E Campain
Clifford W Bowley
Costa D Malet
Jones T Maclead
Kadeem L Ferencz
Darci J Kolmetz
Kaitlin Z Ferencz
Cody E Butt
Antonio B Tollner
Wickens B Sergi
Ricardo E Vocelka
Izzy F Doe
Jeanfrancois R Vocelka
Arvin X Chui
Francesco I Flosi
Octavia B Caldarera
Smith A Waycott
Aika P Iturbide
Maria X Ruta
Wickens A Morasca
Kadeem M Saylors
Julie D Royster
Mujtaba D Bowley
Silvio A Glick
Rodrigues N Stockham
Aruna A Bowley
Francesco L Poquette
Rodrigues S Poquette
Greenwood N Perin
Arvin R Figeroa
Alejandro B Flosi
Francesco G Perin
Francesco O Whobrey
Costa H Bolognia
Stacey H Slusarski
Claire G Glick
Claire V Ruta
IdCountryDate
1000Argentina2026-08-14
1001Italy2026-08-26
1002Japan2026-08-24
1003Argentina2026-08-25
1004Argentina2026-08-04
1005India2026-08-27
1006Russia2026-08-26
1007Germany2026-08-25
1008India2026-08-19
1009India2026-08-27
1010Argentina2026-08-24
1011Russia2026-08-04
1012United Kingdom2026-08-07
1013Russia2026-08-02
1014Russia2026-08-01
1015Italy2026-08-09
1016Italy2026-08-16
1017Italy2026-08-01
1018Russia2026-08-06
1019Japan2026-08-03
1020Canada2026-08-27
1021Spain2026-08-21
1022Australia2026-08-13
1023United Kingdom2026-08-02
1024France2026-08-03
1025India2026-08-17
1026Argentina2026-08-22
1027Argentina2026-08-28
1028United Kingdom2026-08-10
1029Argentina2026-08-21
1030Brazil2026-08-13
1031Japan2026-08-17
1032Argentina2026-08-12
1033France2026-08-16
1034Germany2026-08-03
1035Russia2026-08-01
1036Germany2026-08-02
1037Russia2026-08-22
1038Argentina2026-08-23
1039Canada2026-08-23
1040France2026-08-06
1041Australia2026-08-01
1042Canada2026-08-24
1043Japan2026-08-17
1044Japan2026-08-02
1045United Kingdom2026-08-07
1046Russia2026-08-19
1047Brazil2026-08-26
1048United Kingdom2026-08-28
1049Brazil2026-08-03

On-Demand Data

NameIdCountryDate
Faith C Marrier1000Argentina2026-07-31
Ashley Q Kolmetz1001United Kingdom2026-08-27
Leon O Paprocki1002Russia2026-08-08
Aruna E Dilliard1003Spain2026-08-27
Cody F Malet1004Italy2026-08-16
Arvin X Paprocki1005United Kingdom2026-08-14
Aika O Tollner1006Japan2026-08-09
Sinclair U Marrier1007Argentina2026-08-20
Claire Q Rulapaugh1008India2026-08-07
Tony Q Perin1009Argentina2026-08-08
Izzy J Bolognia1010United Kingdom2026-08-03
Rodrigues O Campain1011Japan2026-07-31
Jefferson H Morasca1012Brazil2026-08-19
Aditya C Campain1013Argentina2026-08-20
Faith V Stenseth1014United Kingdom2026-08-17
Claire F Glick1015France2026-08-03
Clifford S Sergi1016Italy2026-08-23
Munro X Slusarski1017France2026-08-09
Darci K Slusarski1018Italy2026-08-19
Sinclair L Iturbide1019Argentina2026-08-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha Z KuskoBrazilAmy Elsner NEW
Salvatore Y AmigonGermanyStephen Shaw QUALIFIED
Wickens N WieserFranceElwin Sharvill PROPOSAL
Munro V MorascaSpainXuxue Feng QUALIFIED
Antonio H WaycottBrazilOnyama Limba UNQUALIFIED
Murillo T ChuiSpainAsiya Javayant PROPOSAL
Kadeem R CaldareraBrazilIvan Magalhaes NEW
Adams M VenereUnited KingdomIoni Bowcher PROPOSAL
Julie Q FlosiRussiaAnna Fali QUALIFIED
Claire A MaletItalyStephen Shaw PROPOSAL
Misaki C CaldareraJapanBernardo Dominic QUALIFIED
Kadeem Q ButtBrazilIoni Bowcher RENEWAL
Antonio Q CampainAustraliaBernardo Dominic RENEWAL
David M GlickAustraliaOnyama Limba NEGOTIATION
Adams V PerinRussiaOnyama Limba RENEWAL
Jefferson H MaletSpainAmy Elsner PROPOSAL
Smith C FollerSpainStephen Shaw NEGOTIATION
Antonio T SergiGermanyAsiya Javayant UNQUALIFIED
Salvatore I MacleadJapanIvan Magalhaes QUALIFIED
Juan J DarakjyCanadaStephen Shaw PROPOSAL
Misaki Q WieserGermanyOnyama Limba PROPOSAL
Ivar Z FerenczGermanyAmy Elsner PROPOSAL
Nicolas S BowleyGermanyAnna Fali UNQUALIFIED
Kadeem G WieserItalyAsiya Javayant PROPOSAL
David P PerinArgentinaBernardo Dominic UNQUALIFIED
Sinclair Y SchemmerArgentinaAmy Elsner QUALIFIED
James B DilliardAustraliaStephen Shaw QUALIFIED
Octavia Q RutaBrazilBernardo Dominic QUALIFIED
Misaki E PoquetteCanadaBernardo Dominic QUALIFIED
Nicolas E DarakjyJapanAnna Fali NEW
Mujtaba N ButtAustraliaXuxue Feng UNQUALIFIED
Morrow Q PoquetteIndiaOnyama Limba UNQUALIFIED
Julie N GarufiAustraliaElwin Sharvill UNQUALIFIED
Aika S MarrierArgentinaAmy Elsner NEW
Ricardo L DoeItalyIoni Bowcher QUALIFIED
Juan S PerinItalyXuxue Feng QUALIFIED
Izzy M WhobreyFranceIoni Bowcher UNQUALIFIED
Jeanfrancois O WaycottArgentinaAnna Fali PROPOSAL
Kaitlin O VocelkaCanadaIoni Bowcher RENEWAL
Ricardo X AmigonGermanyIoni Bowcher 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.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>