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 SergiBrazilXuxue Feng PROPOSAL
Juan M CaldareraCanadaAmy Elsner PROPOSAL
Maria Z FerenczJapanBernardo Dominic PROPOSAL
Misaki N StockhamArgentinaIvan Magalhaes PROPOSAL
Maria Z SaylorsUnited KingdomAmy Elsner QUALIFIED
Smith Y GauchoJapanBernardo Dominic UNQUALIFIED
Munro E NickaFranceXuxue Feng UNQUALIFIED
Francesco Q WhobreyArgentinaStephen Shaw NEW
Alejandro M GarufiSpainXuxue Feng NEGOTIATION
Ashley B SaylorsJapanElwin Sharvill NEW
Jefferson T MacleadItalyIvan Magalhaes UNQUALIFIED
Jefferson G SchemmerIndiaOnyama Limba PROPOSAL
Greenwood G AlbaresAustraliaOnyama Limba NEW
Clifford S WieserRussiaIoni Bowcher PROPOSAL
Smith V BologniaAustraliaAmy Elsner QUALIFIED
Misaki T NickaUnited KingdomBernardo Dominic NEGOTIATION
Darci V AlbaresBrazilIoni Bowcher UNQUALIFIED
David Z SchemmerCanadaBernardo Dominic RENEWAL
Alejandro E RutaIndiaAmy Elsner QUALIFIED
Nicolas Z GarufiFranceOnyama Limba NEW
Julie F DarakjyCanadaIvan Magalhaes NEW
Rodrigues K GarufiJapanIvan Magalhaes PROPOSAL
Ivar Y DarakjyUnited KingdomAsiya Javayant NEW
Tony X PoquetteIndiaElwin Sharvill QUALIFIED
David Z GillianItalyElwin Sharvill UNQUALIFIED
Jones V ButtBrazilAmy Elsner RENEWAL
Tony L CampainFranceAnna Fali NEW
Antonio U BologniaCanadaAnna Fali UNQUALIFIED
Salvatore M RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Antonio F AmigonSpainXuxue Feng QUALIFIED
Ivar G SergiArgentinaXuxue Feng QUALIFIED
Jefferson E WhobreyArgentinaElwin Sharvill RENEWAL
Kaitlin T WaycottBrazilAnna Fali PROPOSAL
Ivar F SlusarskiItalyIoni Bowcher RENEWAL
Tony F GauchoRussiaBernardo Dominic RENEWAL
Tony F ShinkoJapanIoni Bowcher NEGOTIATION
Julie K CaudyIndiaStephen Shaw QUALIFIED
Aika G CaldareraRussiaAmy Elsner PROPOSAL
Nicolas Z KolmetzFranceStephen Shaw PROPOSAL
Jones S OstroskySpainStephen Shaw UNQUALIFIED
Ashley V FigeroaAustraliaIoni Bowcher PROPOSAL
Aruna J StensethArgentinaAnna Fali NEGOTIATION
Rodrigues Z DoeFranceAmy Elsner QUALIFIED
Misaki H SchemmerJapanStephen Shaw NEW
Nicolas K CampainIndiaAmy Elsner PROPOSAL
Misaki N SlusarskiJapanIvan Magalhaes QUALIFIED
Ivar U MaletGermanyStephen Shaw QUALIFIED
Chavez U BowleyFranceIvan Magalhaes NEGOTIATION
Antonio M StensethFranceElwin Sharvill QUALIFIED
Misaki L NestleIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody C StockhamArgentinaIoni Bowcher NEW
Maisha T RoysterUnited KingdomAnna Fali UNQUALIFIED
Kadeem V MaletAustraliaElwin Sharvill PROPOSAL
Munro I NickaAustraliaXuxue Feng UNQUALIFIED
Francesco M BowleyArgentinaOnyama Limba NEW
Mayumi R DarakjyAustraliaStephen Shaw NEGOTIATION
James C KuskoAustraliaOnyama Limba NEGOTIATION
Arvin M FlosiItalyElwin Sharvill NEW
James A BowleyAustraliaAmy Elsner PROPOSAL
Aditya B InouyeFranceXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem E BowleyRussia2026-08-20Benton, John B Jr QUALIFIED56Asiya Javayant
1001Stacey S IturbideIndia2026-08-01Chapman, Ross E Esq NEW42Elwin Sharvill
1002Morrow Q MarrierIndia2026-08-01Chapman, Ross E Esq PROPOSAL87Elwin Sharvill
1003Ricardo K NestleArgentina2026-08-26Dorl, James J Esq UNQUALIFIED17Ivan Magalhaes
1004Izzy K GlickAustralia2026-08-26Feiner Bros RENEWAL83Xuxue Feng
1005Deepesh Z ButtBrazil2026-08-25Buckley Miller Wright PROPOSAL46Amy Elsner
1006Clifford Q RimBrazil2026-08-07Chemel, James L Cpa UNQUALIFIED87Ivan Magalhaes
1007Costa X WaycottFrance2026-08-21Chanay, Jeffrey A Esq QUALIFIED50Xuxue Feng
1008Jefferson I KolmetzSpain2026-07-30Feltz Printing Service NEGOTIATION59Anna Fali
1009Kadeem A AlbaresGermany2026-08-08Morlong Associates NEW94Ioni Bowcher
1010Cody J SlusarskiJapan2026-08-03Chanay, Jeffrey A Esq NEGOTIATION31Ivan Magalhaes
1011Tony T SlusarskiUnited Kingdom2026-08-24Morlong Associates RENEWAL55Ioni Bowcher
1012Aruna U GauchoJapan2026-08-25King, Christopher A Esq PROPOSAL11Ivan Magalhaes
1013Faith F IturbideItaly2026-08-06Feltz Printing Service NEW37Anna Fali
1014Ivar J MacleadCanada2026-08-20King, Christopher A Esq NEW95Elwin Sharvill
1015Salvatore C BriddickAustralia2026-08-11Rangoni Of Florence UNQUALIFIED91Amy Elsner
1016Silvio O GillianItaly2026-08-05King, Christopher A Esq QUALIFIED40Amy Elsner
1017James I BowleyUnited Kingdom2026-08-12Chanay, Jeffrey A Esq QUALIFIED14Xuxue Feng
1018Ivar K OldroydAustralia2026-08-16Feltz Printing Service NEW68Elwin Sharvill
1019Salvatore M FerenczAustralia2026-08-03Commercial Press NEGOTIATION81Onyama Limba
1020Maria K PaprockiGermany2026-08-26Dorl, James J Esq NEGOTIATION8Amy Elsner
1021Greenwood L DoeFrance2026-08-17Feiner Bros RENEWAL83Bernardo Dominic
1022Sinclair D MarrierIndia2026-08-23Printing Dimensions PROPOSAL85Ioni Bowcher
1023Antonio T RimSpain2026-08-04Rangoni Of Florence QUALIFIED47Ivan Magalhaes
1024Kaitlin G MaletCanada2026-08-10Buckley Miller Wright NEGOTIATION27Xuxue Feng
1025Tony D KuskoFrance2026-08-10Chapman, Ross E Esq RENEWAL65Ivan Magalhaes
1026Clifford I OldroydArgentina2026-08-27Benton, John B Jr UNQUALIFIED26Ioni Bowcher
1027Misaki L InouyeIndia2026-08-16Benton, John B Jr RENEWAL74Ioni Bowcher
1028Greenwood F MacleadCanada2026-08-23Chapman, Ross E Esq QUALIFIED8Xuxue Feng
1029Morrow Z AlbaresArgentina2026-08-02Rangoni Of Florence NEW85Amy Elsner
1030Jeanfrancois O FerenczRussia2026-08-27Printing Dimensions PROPOSAL91Elwin Sharvill
1031Deepesh Z TollnerBrazil2026-08-07Rousseaux, Michael Esq QUALIFIED77Ivan Magalhaes
1032Francesco S GauchoIndia2026-08-01Rousseaux, Michael Esq UNQUALIFIED39Onyama Limba
1033Ashley G MaletArgentina2026-07-31Feiner Bros NEGOTIATION55Ivan Magalhaes
1034Chavez K PerinUnited Kingdom2026-08-21Chanay, Jeffrey A Esq NEGOTIATION86Onyama Limba
1035James O MarrierCanada2026-08-25Chanay, Jeffrey A Esq RENEWAL62Asiya Javayant
1036Darci X RulapaughGermany2026-08-05Printing Dimensions PROPOSAL45Xuxue Feng
1037Tony V StensethAustralia2026-08-24Printing Dimensions UNQUALIFIED81Asiya Javayant
1038Cody A VocelkaFrance2026-08-27Buckley Miller Wright RENEWAL14Bernardo Dominic
1039Leja U StockhamRussia2026-07-29Buckley Miller Wright NEGOTIATION47Xuxue Feng
1040Izzy J SaylorsRussia2026-08-15Buckley Miller Wright QUALIFIED37Anna Fali
1041Mayumi J MacleadGermany2026-08-15Truhlar And Truhlar Attys QUALIFIED77Onyama Limba
1042Adams I RoysterFrance2026-08-26Rangoni Of Florence NEW28Onyama Limba
1043Kaitlin P MacleadJapan2026-08-08Buckley Miller Wright UNQUALIFIED64Stephen Shaw
1044Tony G DilliardArgentina2026-08-22Rousseaux, Michael Esq QUALIFIED8Bernardo Dominic
1045Izzy K NestleUnited Kingdom2026-08-25Rousseaux, Michael Esq QUALIFIED10Onyama Limba
1046Smith L NickaUnited Kingdom2026-08-10Commercial Press NEW80Xuxue Feng
1047Sinclair U CaudyFrance2026-08-21Morlong Associates UNQUALIFIED42Anna Fali
1048Morrow J SchemmerJapan2026-08-06King, Christopher A Esq QUALIFIED72Ivan Magalhaes
1049Emily I SchemmerIndia2026-08-11Truhlar And Truhlar Attys QUALIFIED38Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith W FollerCanadaAmy Elsner NEGOTIATION
Aika B PaprockiBrazilAnna Fali NEW
Claire L BowleyFranceXuxue Feng UNQUALIFIED
Aditya G GarufiBrazilElwin Sharvill NEGOTIATION
Kaitlin S PaprockiIndiaElwin Sharvill QUALIFIED
Deepesh A FigeroaItalyElwin Sharvill NEW
Nicolas Y AlbaresItalyAsiya Javayant QUALIFIED
Leon E BowleyIndiaAsiya Javayant QUALIFIED
Stacey L WieserCanadaIoni Bowcher NEGOTIATION
Ivar W AmigonGermanyAmy Elsner PROPOSAL
Wickens K TollnerUnited KingdomXuxue Feng RENEWAL
Munro G SlusarskiJapanAsiya Javayant NEW
Chavez C DoeAustraliaStephen Shaw NEW
Clifford K GarufiRussiaOnyama Limba QUALIFIED
Sinclair L SchemmerAustraliaElwin Sharvill NEW
Jeanfrancois N ChuiJapanIoni Bowcher NEW
David E NickaCanadaAsiya Javayant NEGOTIATION
Clifford N IturbideRussiaStephen Shaw QUALIFIED
Alejandro M ShinkoAustraliaOnyama Limba NEGOTIATION
Maisha W TollnerArgentinaOnyama Limba NEGOTIATION
Jennifer A WaycottFranceAsiya Javayant NEW
Stacey F DoeArgentinaBernardo Dominic NEW
Maria R VenereCanadaIvan Magalhaes UNQUALIFIED
Izzy F MacleadUnited KingdomXuxue Feng UNQUALIFIED
Misaki Q BologniaGermanyAnna Fali NEW
Stacey G OldroydFranceAmy Elsner QUALIFIED
Silvio C SlusarskiBrazilElwin Sharvill NEW
Cody C StensethAustraliaStephen Shaw NEGOTIATION
Greenwood U MarrierJapanBernardo Dominic QUALIFIED
Morrow F RulapaughUnited KingdomIvan Magalhaes RENEWAL
James K CaudyArgentinaAsiya Javayant PROPOSAL
Johnson V TollnerCanadaIvan Magalhaes QUALIFIED
Rodrigues E BowleyArgentinaAmy Elsner RENEWAL
Maisha N VenereItalyIvan Magalhaes QUALIFIED
Maria N SchemmerJapanIvan Magalhaes UNQUALIFIED
Leja G WaycottSpainAnna Fali QUALIFIED
Sinclair P VenereJapanBernardo Dominic PROPOSAL
Isabel R WhobreyBrazilBernardo Dominic UNQUALIFIED
Salvatore E RutaUnited KingdomIoni Bowcher PROPOSAL
Maisha D PaprockiArgentinaAmy Elsner PROPOSAL
Darci X ChuiUnited KingdomAmy Elsner UNQUALIFIED
Greenwood L SlusarskiCanadaBernardo Dominic RENEWAL
Stacey U GillianUnited KingdomXuxue Feng UNQUALIFIED
Sinclair D DoeIndiaAnna Fali NEGOTIATION
Morrow E GlickFranceIoni Bowcher NEGOTIATION
Jones W WieserBrazilBernardo Dominic NEGOTIATION
Alejandro Y InouyeIndiaOnyama Limba NEW
Alejandro X NickaRussiaIvan Magalhaes UNQUALIFIED
James D MorascaBrazilAnna Fali QUALIFIED
Sinclair J FlosiBrazilStephen Shaw QUALIFIED
Frozen Columns
Name
Misaki Z Rim
Costa C Butt
Mujtaba B Malet
Izzy G Stockham
Maria R Dilliard
David C Poquette
Rodrigues F Vocelka
Mayumi V Ferencz
Deepesh G Flosi
Kaitlin Y Saylors
Aditya V Bolognia
Misaki V Briddick
Kaitlin A Bowley
Alejandro K Nestle
Kaitlin E Nicka
Sinclair B Inouye
Nicolas B Whobrey
Munro K Garufi
Salvatore W Caudy
Juan U Briddick
Antonio S Saylors
Julie E Rulapaugh
Jones T Amigon
Leja W Caudy
Sinclair V Nicka
Faith D Ferencz
Sinclair T Slusarski
Clifford E Venere
Johnson P Poquette
Clifford O Nicka
Ashley X Malet
Aika B Caudy
Aruna C Paprocki
Clifford S Albares
Juan Q Paprocki
Darci X Bolognia
Faith M Oldroyd
Mujtaba R Gillian
Salvatore G Nestle
Greenwood E Caldarera
Stacey Y Gaucho
Julie T Rulapaugh
Jefferson T Vocelka
Sinclair B Rulapaugh
Munro S Nestle
Nicolas V Albares
Silvio Q Shinko
Claire W Nestle
Arvin H Malet
Ivar Y Darakjy
IdCountryDate
1000Italy2026-08-07
1001United Kingdom2026-08-09
1002United Kingdom2026-08-13
1003Germany2026-08-13
1004Spain2026-07-30
1005Russia2026-08-10
1006Australia2026-08-27
1007Russia2026-08-03
1008Argentina2026-08-24
1009Italy2026-08-09
1010Russia2026-08-02
1011Canada2026-08-08
1012Russia2026-08-21
1013Brazil2026-08-04
1014Japan2026-08-17
1015Japan2026-08-19
1016Germany2026-08-03
1017Brazil2026-08-13
1018France2026-08-09
1019Spain2026-08-20
1020Brazil2026-08-12
1021Brazil2026-08-04
1022Canada2026-08-13
1023Canada2026-07-29
1024Brazil2026-08-16
1025United Kingdom2026-07-30
1026Canada2026-08-14
1027France2026-08-09
1028Canada2026-08-19
1029Spain2026-08-17
1030Germany2026-08-05
1031Canada2026-08-20
1032Australia2026-08-21
1033Canada2026-08-10
1034Spain2026-08-27
1035France2026-08-12
1036Canada2026-08-23
1037India2026-07-30
1038Spain2026-08-05
1039Germany2026-08-14
1040Germany2026-08-16
1041Canada2026-08-27
1042Japan2026-08-10
1043Brazil2026-07-30
1044Argentina2026-08-15
1045Argentina2026-08-22
1046United Kingdom2026-07-29
1047Argentina2026-08-17
1048United Kingdom2026-07-30
1049Germany2026-08-25

On-Demand Data

NameIdCountryDate
Darci O Kolmetz1000France2026-08-19
Mayumi I Ostrosky1001Italy2026-08-17
Alejandro E Royster1002India2026-08-22
Izzy C Poquette1003United Kingdom2026-08-13
Isabel G Amigon1004Japan2026-08-10
Johnson X Butt1005Japan2026-08-09
Adams O Ostrosky1006Russia2026-08-11
Emily R Waycott1007Australia2026-07-29
Kadeem K Kolmetz1008Argentina2026-08-06
Rodrigues V Nicka1009Germany2026-08-10
Arvin U Flosi1010France2026-08-22
Darci W Kolmetz1011Germany2026-07-31
David I Saylors1012India2026-08-13
Aika A Bolognia1013United Kingdom2026-08-04
Murillo F Perin1014Russia2026-08-15
Cody U Whobrey1015Brazil2026-08-19
Wickens L Wieser1016India2026-08-06
Tony T Bolognia1017Italy2026-08-22
Ivar U Glick1018France2026-08-21
Nicolas C Iturbide1019Australia2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey C NickaJapanIvan Magalhaes UNQUALIFIED
Greenwood S FollerBrazilElwin Sharvill QUALIFIED
Salvatore I AlbaresRussiaBernardo Dominic UNQUALIFIED
Julie M BriddickRussiaOnyama Limba UNQUALIFIED
Darci F SaylorsBrazilElwin Sharvill QUALIFIED
Jennifer Z AmigonUnited KingdomAsiya Javayant QUALIFIED
Ashley J WhobreyIndiaIvan Magalhaes UNQUALIFIED
Clifford Q CaldareraCanadaStephen Shaw RENEWAL
Jones R PoquetteIndiaAsiya Javayant UNQUALIFIED
Adams C WaycottJapanAmy Elsner NEGOTIATION
Faith S OldroydFranceAnna Fali NEGOTIATION
Izzy J WieserItalyAnna Fali UNQUALIFIED
Ivar B FigeroaArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois R OldroydArgentinaElwin Sharvill QUALIFIED
Juan Y SaylorsCanadaOnyama Limba NEGOTIATION
Murillo Z StensethJapanStephen Shaw PROPOSAL
Rodrigues T GlickArgentinaXuxue Feng UNQUALIFIED
Chavez M DoeRussiaAnna Fali QUALIFIED
Aruna D BowleyAustraliaAsiya Javayant NEGOTIATION
Juan Z InouyeBrazilOnyama Limba QUALIFIED
Octavia C MacleadAustraliaAmy Elsner NEW
Francesco D DoeCanadaIvan Magalhaes NEGOTIATION
Maisha Q PerinArgentinaBernardo Dominic PROPOSAL
Jones C WaycottSpainOnyama Limba RENEWAL
Leja L SergiGermanyXuxue Feng NEW
Maisha K FigeroaItalyAnna Fali UNQUALIFIED
Cody D FigeroaFranceIoni Bowcher QUALIFIED
Ricardo U SaylorsBrazilStephen Shaw NEW
Mayumi I ButtArgentinaIoni Bowcher QUALIFIED
Chavez G WhobreyFranceAnna Fali UNQUALIFIED
David P RulapaughCanadaIoni Bowcher NEW
Octavia A ChuiArgentinaAsiya Javayant QUALIFIED
Alejandro P KuskoRussiaElwin Sharvill UNQUALIFIED
Antonio H RoysterFranceAsiya Javayant RENEWAL
Maisha S KuskoSpainXuxue Feng RENEWAL
Adams L DilliardSpainStephen Shaw NEGOTIATION
Francesco X WaycottBrazilAnna Fali QUALIFIED
Francesco L FerenczItalyAmy Elsner PROPOSAL
Aditya Z TollnerArgentinaXuxue Feng NEW
Costa A PoquetteRussiaAnna Fali NEW

<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>